hermes-web-ui 0.6.40 → 0.6.41

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (287) hide show
  1. package/dist/client/assets/js/{AppSidebar-CaSVcbCW.js → AppSidebar-CNkSiv3l.js} +1 -1
  2. package/dist/client/assets/js/{ChannelsView-hdAXa1hf.js → ChannelsView-6rEo6RBl.js} +1 -1
  3. package/dist/client/assets/js/{ChatPanel-C6sX6idm.js → ChatPanel-ANAZWluc.js} +3 -3
  4. package/dist/client/assets/js/{ChatView-B68k_-D9.js → ChatView-DFcPsmRF.js} +1 -1
  5. package/dist/client/assets/js/{CodingAgentsView-CsIjwbXR.js → CodingAgentsView-CpIY0SHT.js} +1 -1
  6. package/dist/client/assets/js/{DefaultCredentialPrompt-BRhb4DOa.js → DefaultCredentialPrompt-DmNeotSW.js} +1 -1
  7. package/dist/client/assets/js/{DesktopBrowserPanel-BlBfS64w.js → DesktopBrowserPanel-CWjTU-3y.js} +1 -1
  8. package/dist/client/assets/js/{DesktopBrowserView-JukL0QuS.js → DesktopBrowserView-D9Qb3fIV.js} +1 -1
  9. package/dist/client/assets/js/{DesktopPetView-DWq4EiRU.js → DesktopPetView-B7REtC57.js} +1 -1
  10. package/dist/client/assets/js/{DesktopTitleBar-DphP4oa6.js → DesktopTitleBar-Dej_16hB.js} +1 -1
  11. package/dist/client/assets/js/{DevicesView-BFtrfqJs.js → DevicesView--d4HCkch.js} +1 -1
  12. package/dist/client/assets/js/{DocxFilePreview-CmVJ9Jxx.js → DocxFilePreview-BQz6WC7r.js} +2 -2
  13. package/dist/client/assets/js/{FileEditor-CdkNYp7b.js → FileEditor-BBegs-5i.js} +2 -2
  14. package/dist/client/assets/js/{FilePreview-CJrVRPRs.js → FilePreview-B7WqYvZs.js} +2 -2
  15. package/dist/client/assets/js/{FileRenameModal-mghyEXU4.js → FileRenameModal-82RkAZkd.js} +1 -1
  16. package/dist/client/assets/js/{FilesPanel-B9cKB5lX.js → FilesPanel-BHcg6CpC.js} +2 -2
  17. package/dist/client/assets/js/{FilesView-iKZu70E9.js → FilesView-Dl15WTar.js} +2 -2
  18. package/dist/client/assets/js/{GlobalAgentView-JZsss0gx.js → GlobalAgentView-dxEX611f.js} +1 -1
  19. package/dist/client/assets/js/{GlobalPendingActions-BRQIt5vl.js → GlobalPendingActions-CeK96C3G.js} +1 -1
  20. package/dist/client/assets/js/{GroupChatLinkView-CNrV8lnT.js → GroupChatLinkView-CJhI9DVE.js} +1 -1
  21. package/dist/client/assets/js/{GroupChatPanel-WK4zBasl.js → GroupChatPanel-CLa3s08V.js} +3 -3
  22. package/dist/client/assets/js/{GroupChatView-BlMUD1MW.js → GroupChatView-CUwvu-6F.js} +1 -1
  23. package/dist/client/assets/js/{HistoryMessageList-D8zoQ1Zs.js → HistoryMessageList-BdD8GJYM.js} +1 -1
  24. package/dist/client/assets/js/{HistoryView-Bpr8N2lC.js → HistoryView-Ro92tP5R.js} +1 -1
  25. package/dist/client/assets/js/{HtmlFilePreview-Bj3_-hMo.js → HtmlFilePreview-xYn7YtmC.js} +1 -1
  26. package/dist/client/assets/js/{JobsView-CZK26gTw.js → JobsView-BaNA1Yaa.js} +2 -2
  27. package/dist/client/assets/js/{JourneyView-BPUsLj4o.js → JourneyView-Bw-05mCF.js} +1 -1
  28. package/dist/client/assets/js/{KanbanView-B7d-2_z9.js → KanbanView-BYC32l2Q.js} +1 -1
  29. package/dist/client/assets/js/{LoginView-BpYyv831.js → LoginView-KrpCkwOr.js} +1 -1
  30. package/dist/client/assets/js/{LogsView-CabFHk0v.js → LogsView-Dgm4v5sN.js} +1 -1
  31. package/dist/client/assets/js/{MarkdownRenderer-CVtmHZwc.js → MarkdownRenderer-BIPowjr-.js} +3 -3
  32. package/dist/client/assets/js/{McpManagerView-C-ou8vf3.js → McpManagerView-DTtkUIvq.js} +1 -1
  33. package/dist/client/assets/js/{MemoryView-QGFW4iZo.js → MemoryView-BnL7xzux.js} +2 -2
  34. package/dist/client/assets/js/{MessageList-DZR-TFjD.js → MessageList-5tytzhb0.js} +3 -3
  35. package/dist/client/assets/js/{ModelsView-DiWdSWOW.js → ModelsView-ComCz0Ce.js} +1 -1
  36. package/dist/client/assets/js/{OutlinePanel-Dlr5svMY.js → OutlinePanel-CF_XPCRn.js} +1 -1
  37. package/dist/client/assets/js/{PageSidebarFooter-Bic1fUmG.js → PageSidebarFooter-dvLzcTIm.js} +1 -1
  38. package/dist/client/assets/js/{PdfFilePreview-Dkpan1ay.js → PdfFilePreview-COOAoJ4V.js} +2 -2
  39. package/dist/client/assets/js/{PerformanceView-LrZaED_Z.js → PerformanceView-D6dKifJh.js} +1 -1
  40. package/dist/client/assets/js/{PetdexView-Bv8RioGL.js → PetdexView-CmvzDYwf.js} +1 -1
  41. package/dist/client/assets/js/{PluginsView-CbtdIGlq.js → PluginsView-zJV9FE9c.js} +1 -1
  42. package/dist/client/assets/js/{PptxFilePreview-5if_GbU6.js → PptxFilePreview-dC4JxV6j.js} +2 -2
  43. package/dist/client/assets/js/{ProfileAvatar-DI9ciJxS.js → ProfileAvatar-C8xoALCI.js} +1 -1
  44. package/dist/client/assets/js/{ProfilesView-C-FSiKMU.js → ProfilesView-CxVxJRN_.js} +1 -1
  45. package/dist/client/assets/js/{ProviderConfigurationPrompt-BUoWC41Y.js → ProviderConfigurationPrompt-zwk1UwoP.js} +1 -1
  46. package/dist/client/assets/js/{SessionSearchModal-CEKvSihp.js → SessionSearchModal-DhwGsV-i.js} +1 -1
  47. package/dist/client/assets/js/{SettingRow-CSfiJmxx.js → SettingRow-DHqhLX3M.js} +1 -1
  48. package/dist/client/assets/js/{SettingsCircuitBadge-DHIEFyTR.js → SettingsCircuitBadge-CnWSfQZd.js} +1 -1
  49. package/dist/client/assets/js/{SettingsView-DbNJroV3.js → SettingsView-Cbroga25.js} +1 -1
  50. package/dist/client/assets/js/{SharedGroupChatView-CTYjqWcO.js → SharedGroupChatView-DXfqtQ33.js} +1 -1
  51. package/dist/client/assets/js/{SkillsUsageView-BqZ3GtfT.js → SkillsUsageView-C34i3lOQ.js} +1 -1
  52. package/dist/client/assets/js/{SkillsView-Bhla7821.js → SkillsView-DRG_1esx.js} +2 -2
  53. package/dist/client/assets/js/{SpreadsheetFilePreview-CGK8HDAx.js → SpreadsheetFilePreview-DRw4kIx5.js} +1 -1
  54. package/dist/client/assets/js/{TerminalPanel-CtBTLOwq.js → TerminalPanel-Da1nL9P8.js} +1 -1
  55. package/dist/client/assets/js/{TerminalView-BID7fupB.js → TerminalView-B6z-VaGq.js} +1 -1
  56. package/dist/client/assets/js/{ThemeView-Cx3ucIus.js → ThemeView-CAaJ9MH-.js} +1 -1
  57. package/dist/client/assets/js/{UsageView-ByGCsw7o.js → UsageView-B_hLsp0k.js} +1 -1
  58. package/dist/client/assets/js/{VersionPreviewView-DiAK1ind.js → VersionPreviewView-DKXL6anl.js} +1 -1
  59. package/dist/client/assets/js/{WebPet-CdIqrnp1.js → WebPet-BUvrfjpq.js} +1 -1
  60. package/dist/client/assets/js/{WorkflowView-DmBOhSuq.js → WorkflowView-r46Ap9FY.js} +1 -1
  61. package/dist/client/assets/js/{WorkspaceDiffPreview-dHIGp-9F.js → WorkspaceDiffPreview-EwZAE18F.js} +2 -2
  62. package/dist/client/assets/js/{abap-Dj8IFKiF.js → abap-C7gkFu-A.js} +1 -1
  63. package/dist/client/assets/js/{aiden0z-pptx-renderer.es-6vi5-jAN.js → aiden0z-pptx-renderer.es-DOpVaH_k.js} +1 -1
  64. package/dist/client/assets/js/{apex-C3INPUEt.js → apex-DZOtRowu.js} +1 -1
  65. package/dist/client/assets/js/{ar-Gk9y3ZfO.js → ar-8iThLSJQ.js} +1 -1
  66. package/dist/client/assets/js/architecture-7EHR7CIX-BrfhYGuP.js +1 -0
  67. package/dist/client/assets/js/{architectureDiagram-3BPJPVTR-DLZYeivB.js → architectureDiagram-3BPJPVTR-DEsTTzKd.js} +1 -1
  68. package/dist/client/assets/js/{auth-D1ZFqv22.js → auth-B52zm2Ir.js} +1 -1
  69. package/dist/client/assets/js/{azcli-UBzLhJq5.js → azcli-KxuicZQh.js} +1 -1
  70. package/dist/client/assets/js/{bat-P3O4jldt.js → bat-DfFP4HF-.js} +1 -1
  71. package/dist/client/assets/js/{bicep-DdQR9RxE.js → bicep-Co4bntVh.js} +1 -1
  72. package/dist/client/assets/js/{blockDiagram-GPEHLZMM-UWFo8sm5.js → blockDiagram-GPEHLZMM-NsxYeUKd.js} +1 -1
  73. package/dist/client/assets/js/{c4Diagram-AAUBKEIU-jgyj0wOb.js → c4Diagram-AAUBKEIU-D68asSzm.js} +1 -1
  74. package/dist/client/assets/js/{cameligo-Bb4ubW_C.js → cameligo-Xi0l_9Wr.js} +1 -1
  75. package/dist/client/assets/js/{chat-DdHii4Qz.js → chat-fUZW3YFa.js} +1 -1
  76. package/dist/client/assets/js/{chat-input-height-CSPwB9it.js → chat-input-height-lvFawuv9.js} +1 -1
  77. package/dist/client/assets/js/{chat-timestamp-DGQ8fmtT.js → chat-timestamp-4wWFcZWv.js} +1 -1
  78. package/dist/client/assets/js/{chunk-2J33WTMH-Br9OWF5a.js → chunk-2J33WTMH-CEU5sLIh.js} +1 -1
  79. package/dist/client/assets/js/{chunk-3OPIFGDE-Cb40LuI4.js → chunk-3OPIFGDE-DEhbKkCl.js} +1 -1
  80. package/dist/client/assets/js/{chunk-4BX2VUAB-jYtdiafd.js → chunk-4BX2VUAB-OIZUstuy.js} +1 -1
  81. package/dist/client/assets/js/{chunk-55IACEB6-CBtymeHY.js → chunk-55IACEB6-DQHKZCBG.js} +1 -1
  82. package/dist/client/assets/js/{chunk-5ZQYHXKU-yj9xqmex.js → chunk-5ZQYHXKU-BU3pQVVl.js} +1 -1
  83. package/dist/client/assets/js/{chunk-727SXJPM-er_5tB5X.js → chunk-727SXJPM-jj97gdnP.js} +1 -1
  84. package/dist/client/assets/js/{chunk-AQP2D5EJ-C4mDD6xK.js → chunk-AQP2D5EJ-jv-oWlkb.js} +1 -1
  85. package/dist/client/assets/js/{chunk-BSJP7CBP-QZesZe57.js → chunk-BSJP7CBP-DkKsepNF.js} +1 -1
  86. package/dist/client/assets/js/{chunk-CSCIHK7Q-5LH118bT.js → chunk-CSCIHK7Q-CLgoBoCF.js} +3 -3
  87. package/dist/client/assets/js/{chunk-FMBD7UC4-CQho6QZ5.js → chunk-FMBD7UC4-Bx1bCKUR.js} +1 -1
  88. package/dist/client/assets/js/{chunk-KSCS5N6A-DONM1Omv.js → chunk-KSCS5N6A-CZHZ6pBd.js} +1 -1
  89. package/dist/client/assets/js/{chunk-L5ZTLDWV-FN_zFWkp.js → chunk-L5ZTLDWV-dz9D3kOb.js} +1 -1
  90. package/dist/client/assets/js/{chunk-LZXEDZCA-CEEUVvpS.js → chunk-LZXEDZCA-CQiSQehC.js} +2 -2
  91. package/dist/client/assets/js/{chunk-ND2GUHAM-DWckpxQD.js → chunk-ND2GUHAM-mWODKb8v.js} +1 -1
  92. package/dist/client/assets/js/{chunk-NZK2D7GU-0mKZmkuV.js → chunk-NZK2D7GU-ivCkjCOR.js} +1 -1
  93. package/dist/client/assets/js/{chunk-O5CBEL6O-DIDAOkT_.js → chunk-O5CBEL6O-BRUisK47.js} +1 -1
  94. package/dist/client/assets/js/{chunk-QZHKN3VN-D3c-TMz-.js → chunk-QZHKN3VN-BHjgTrzY.js} +1 -1
  95. package/dist/client/assets/js/{chunk-WU5MYG2G-BZvSpwm4.js → chunk-WU5MYG2G-CNW1rcpL.js} +1 -1
  96. package/dist/client/assets/js/{chunk-XPW4576I-xdyJtk-s.js → chunk-XPW4576I-DP3dJbOu.js} +1 -1
  97. package/dist/client/assets/js/classDiagram-4FO5ZUOK-BVBBe3DQ.js +1 -0
  98. package/dist/client/assets/js/classDiagram-v2-Q7XG4LA2-DJUe3i9Y.js +1 -0
  99. package/dist/client/assets/js/{clipboard-DQ_A8ns-.js → clipboard-DHZFaAvO.js} +1 -1
  100. package/dist/client/assets/js/{clipboard-files-bDrcGKPe.js → clipboard-files-CBDy-02Y.js} +1 -1
  101. package/dist/client/assets/js/{clojure-ku7aCU1_.js → clojure-DuyGwS8X.js} +1 -1
  102. package/dist/client/assets/js/{coding-agents-DfHyBvky.js → coding-agents-BNTHD6kd.js} +1 -1
  103. package/dist/client/assets/js/{codingAgentProviders-BM18FAW9.js → codingAgentProviders-DM_ouxbL.js} +1 -1
  104. package/dist/client/assets/js/{coffee-DnRIdJlY.js → coffee-C5p7vzpa.js} +1 -1
  105. package/dist/client/assets/js/{completion-notification-XxjbntI8.js → completion-notification-CzdnhuX3.js} +1 -1
  106. package/dist/client/assets/js/{cose-bilkent-S5V4N54A-w891sIF1.js → cose-bilkent-S5V4N54A-De_ZdqY0.js} +1 -1
  107. package/dist/client/assets/js/{cpp-CN8i6ISX.js → cpp-II5hDbTe.js} +1 -1
  108. package/dist/client/assets/js/{csharp-B-fxig7O.js → csharp-D0POzSpv.js} +1 -1
  109. package/dist/client/assets/js/{csp-Bar9LGt4.js → csp-CwtuRkR3.js} +1 -1
  110. package/dist/client/assets/js/{css-DFtC5xZN.js → css-Dc2fJIqQ.js} +1 -1
  111. package/dist/client/assets/js/{cssMode-DH5XKKL2.js → cssMode-CC6jRvHF.js} +1 -1
  112. package/dist/client/assets/js/{cypher-BkJexWsv.js → cypher-DBcQoWDH.js} +1 -1
  113. package/dist/client/assets/js/{cytoscape.esm-BDsvr8Aq.js → cytoscape.esm-C9FMRqxM.js} +1 -1
  114. package/dist/client/assets/js/{dagre-BM42HDAG-BuT885pa.js → dagre-BM42HDAG-CvJIC410.js} +1 -1
  115. package/dist/client/assets/js/{dagre-BVUDh8Sh.js → dagre-BtgEsAtK.js} +1 -1
  116. package/dist/client/assets/js/{dart-B7W8hAtN.js → dart-Jf_Hmp2o.js} +1 -1
  117. package/dist/client/assets/js/{de-LDpd8WHJ.js → de-7hLSwCEx.js} +1 -1
  118. package/dist/client/assets/js/{defineProperty-DdPu4ZVv.js → defineProperty-DHkErCmG.js} +1 -1
  119. package/dist/client/assets/js/{desktop-browser-xrRFPNUg.js → desktop-browser-C6AhY0uu.js} +1 -1
  120. package/dist/client/assets/js/{diagram-2AECGRRQ-B1sSf-09.js → diagram-2AECGRRQ-CvPeU5Lm.js} +1 -1
  121. package/dist/client/assets/js/{diagram-5GNKFQAL-BffX22pf.js → diagram-5GNKFQAL-CBniYlkH.js} +1 -1
  122. package/dist/client/assets/js/{diagram-KO2AKTUF-D8QvpUpn.js → diagram-KO2AKTUF-C_yFaVRj.js} +1 -1
  123. package/dist/client/assets/js/{diagram-LMA3HP47-DkG7p3lQ.js → diagram-LMA3HP47-BzM1IxNe.js} +1 -1
  124. package/dist/client/assets/js/{diagram-OG6HWLK6-RjvNNvXM.js → diagram-OG6HWLK6-yvmf_3ax.js} +1 -1
  125. package/dist/client/assets/js/{dist-Bk0VKtV3.js → dist-BHzBn3v7.js} +1 -1
  126. package/dist/client/assets/js/{dockerfile-C4m7j8sy.js → dockerfile-J3d6ZPDJ.js} +1 -1
  127. package/dist/client/assets/js/{docx-preview-BpTW-GN7.js → docx-preview-Rqt8wMjQ.js} +1 -1
  128. package/dist/client/assets/js/{download-CX8EG48r.js → download-xhRMWMda.js} +1 -1
  129. package/dist/client/assets/js/{ecl-EHV358Ls.js → ecl-XnlT0p97.js} +1 -1
  130. package/dist/client/assets/js/{editor.api2-CnHBqh_d.js → editor.api2-ChO5nUQb.js} +1 -1
  131. package/dist/client/assets/js/{elixir-DLfp2Dwn.js → elixir-BEJbxH-B.js} +1 -1
  132. package/dist/client/assets/js/{en-D6VVFwFU.js → en-D2WSXgkM.js} +1 -1
  133. package/dist/client/assets/js/{erDiagram-TEJ5UH35-CLlLC6xx.js → erDiagram-TEJ5UH35-DZysD9r9.js} +1 -1
  134. package/dist/client/assets/js/{es-BIMLuyVP.js → es-B7Mq1P0U.js} +1 -1
  135. package/dist/client/assets/js/{esm-C8D4M0Yn.js → esm-DnZPPtmx.js} +1 -1
  136. package/dist/client/assets/js/eventmodeling-FCH6USID-vlE3-g2j.js +1 -0
  137. package/dist/client/assets/js/{file-preview-BvgwVZXh.js → file-preview-C417aixJ.js} +1 -1
  138. package/dist/client/assets/js/{files-CJkCqsUx.js → files-DjI-npgn.js} +1 -1
  139. package/dist/client/assets/js/{flow9-CtBaUnAi.js → flow9-j5XT_8TQ.js} +1 -1
  140. package/dist/client/assets/js/{flowDiagram-I6XJVG4X-VTRTPnqD.js → flowDiagram-I6XJVG4X-Dt5ZtyHz.js} +1 -1
  141. package/dist/client/assets/js/{fr-C2lf0cY2.js → fr-DvClrDOw.js} +1 -1
  142. package/dist/client/assets/js/{freemarker2-XLeMvhl_.js → freemarker2-BzCf_0SN.js} +1 -1
  143. package/dist/client/assets/js/{fsharp-Db0uaBQv.js → fsharp-ClU_Sdjr.js} +1 -1
  144. package/dist/client/assets/js/{ganttDiagram-6RSMTGT7-CdKcIZ8_.js → ganttDiagram-6RSMTGT7-Bca3rPWi.js} +1 -1
  145. package/dist/client/assets/js/gitGraph-WXDBUCRP-Cyd4P6XH.js +1 -0
  146. package/dist/client/assets/js/{gitGraphDiagram-PVQCEYII-Bcuyw6fo.js → gitGraphDiagram-PVQCEYII-Co29qnTg.js} +1 -1
  147. package/dist/client/assets/js/{go-DwaTlB-B.js → go-D3iUyCM0.js} +1 -1
  148. package/dist/client/assets/js/{graphlib-vAI4Pw7R.js → graphlib-Bln6qd-Z.js} +1 -1
  149. package/dist/client/assets/js/{graphql-Cf2XhNJR.js → graphql-z8koqyyL.js} +1 -1
  150. package/dist/client/assets/js/{group-agent-avatar-CPehpiK0.js → group-agent-avatar-CwqtaKGw.js} +1 -1
  151. package/dist/client/assets/js/{group-chat-CY62vc77.js → group-chat-Buz8HP-N.js} +1 -1
  152. package/dist/client/assets/js/{group-chat-xkdjC2Jt.js → group-chat-CgFAwCtr.js} +1 -1
  153. package/dist/client/assets/js/{group-chat-agent-link-DdSNKasF.js → group-chat-agent-link-N5IFeN_j.js} +1 -1
  154. package/dist/client/assets/js/{handlebars-CNEKu_p8.js → handlebars-C_JvhUYs.js} +1 -1
  155. package/dist/client/assets/js/{hcl-6UZbq6h2.js → hcl-X7TzviIX.js} +1 -1
  156. package/dist/client/assets/js/{highlight-DwtBT6t1.js → highlight-C4yUBxwQ.js} +1 -1
  157. package/dist/client/assets/js/{html-DfSIHhKA.js → html-B-rCQB0N.js} +1 -1
  158. package/dist/client/assets/js/{htmlMode-iGw9-O-W.js → htmlMode-CAeEf_yf.js} +1 -1
  159. package/dist/client/assets/js/{index-DnjQJzX4.js → index-DN4SafrP.js} +5 -5
  160. package/dist/client/assets/js/info-J43DQDTF-B9tkQ2Sb.js +1 -0
  161. package/dist/client/assets/js/{infoDiagram-5YYISTIA-85450Zam.js → infoDiagram-5YYISTIA-BWQGayms.js} +1 -1
  162. package/dist/client/assets/js/{ini-8em8V_Af.js → ini-LTHHN4J-.js} +1 -1
  163. package/dist/client/assets/js/{ishikawaDiagram-YF4QCWOH-BZ4az7UA.js → ishikawaDiagram-YF4QCWOH-Dhuplz_z.js} +1 -1
  164. package/dist/client/assets/js/{ja-C1bBXgr_.js → ja-D7BeX2_D.js} +1 -1
  165. package/dist/client/assets/js/{java-CP1MdIkO.js → java-BRFX-ya0.js} +1 -1
  166. package/dist/client/assets/js/{javascript-Cr8_LHYa.js → javascript-ZXiVmjXn.js} +1 -1
  167. package/dist/client/assets/js/{journeyDiagram-JHISSGLW-DGMB8Tgc.js → journeyDiagram-JHISSGLW-CJeatAU9.js} +1 -1
  168. package/dist/client/assets/js/{jsonMode-HCZ-1lFH.js → jsonMode-C6FcMe0o.js} +1 -1
  169. package/dist/client/assets/js/{jszip.min-BkR6b8DY.js → jszip.min-skZCUzWf.js} +1 -1
  170. package/dist/client/assets/js/{julia-DMTMxa5q.js → julia-Bph8N3CL.js} +1 -1
  171. package/dist/client/assets/js/{kanban-definition-UN3LZRKU-F5cH_RpB.js → kanban-definition-UN3LZRKU-tvWuOdSr.js} +1 -1
  172. package/dist/client/assets/js/{katex-CYbEJAbZ.js → katex-hSGJNERm.js} +1 -1
  173. package/dist/client/assets/js/{ko-qgOeHd8L.js → ko-BsVa-If_.js} +1 -1
  174. package/dist/client/assets/js/{kotlin-Blzus47W.js → kotlin-_c4-tPQp.js} +1 -1
  175. package/dist/client/assets/js/{less-DWCHpDyf.js → less-5oVo4jfQ.js} +1 -1
  176. package/dist/client/assets/js/{lexon-YXdlYGbJ.js → lexon-DE4YtGwF.js} +1 -1
  177. package/dist/client/assets/js/{liquid-DSQgvRwe.js → liquid-BGfieGMG.js} +1 -1
  178. package/dist/client/assets/js/{lspLanguageFeatures-0Hx2Vnc-.js → lspLanguageFeatures-DU_1H2uW.js} +1 -1
  179. package/dist/client/assets/js/{lua-Cyv3mTkg.js → lua-7WJSZJqD.js} +1 -1
  180. package/dist/client/assets/js/{m3-CPY3Ym7_.js → m3-gZlfoR19.js} +1 -1
  181. package/dist/client/assets/js/{markdown-DaPQ1nuG.js → markdown-BYF71orA.js} +1 -1
  182. package/dist/client/assets/js/{mdx-BqA6Xr9V.js → mdx-CunEIV3g.js} +1 -1
  183. package/dist/client/assets/js/{mermaid-parser.core-D4HRUOce.js → mermaid-parser.core-DU_SX15F.js} +3 -3
  184. package/dist/client/assets/js/{mermaid.core-w6kHmgOG.js → mermaid.core-8vsbhG5J.js} +3 -3
  185. package/dist/client/assets/js/{message-scroll-position-C5yRCyBU.js → message-scroll-position-C9_YO3pX.js} +2 -2
  186. package/dist/client/assets/js/{mindmap-definition-RKZ34NQL-CnzhnJ7Z.js → mindmap-definition-RKZ34NQL-HPtlKqL1.js} +1 -1
  187. package/dist/client/assets/js/{mips-BfqBfLvN.js → mips-DXkvw9aZ.js} +1 -1
  188. package/dist/client/assets/js/{models-wrytxWnf.js → models-BILDy2sV.js} +1 -1
  189. package/dist/client/assets/js/{monaco.contribution-Bc-DesyO.js → monaco.contribution-DDqeHGl3.js} +2 -2
  190. package/dist/client/assets/js/{msdax-DgMip49g.js → msdax-BbHEBDvP.js} +1 -1
  191. package/dist/client/assets/js/{mysql-DPUvF1g2.js → mysql-7I1rlwh7.js} +1 -1
  192. package/dist/client/assets/js/{objective-c-BQ3llrPW.js → objective-c-Dk03REAv.js} +1 -1
  193. package/dist/client/assets/js/packet-YPE3B663-DlTFK3Wo.js +1 -0
  194. package/dist/client/assets/js/{pascal-bFWHV7MZ.js → pascal-BCfNkzYY.js} +1 -1
  195. package/dist/client/assets/js/{pascaligo-C8Qza2pK.js → pascaligo-D-DslS98.js} +1 -1
  196. package/dist/client/assets/js/{pdf-Cb7x495t.js → pdf-B_OYWxSy.js} +1 -1
  197. package/dist/client/assets/js/{pdf.worker.min-DDUKJ6cJ.js → pdf.worker.min--q2RLEHa.js} +1 -1
  198. package/dist/client/assets/js/{perl-x25gw0_p.js → perl-MUnuTclx.js} +1 -1
  199. package/dist/client/assets/js/{pets-BfRsvl7D.js → pets-D74G2jqA.js} +1 -1
  200. package/dist/client/assets/js/{pgsql-DAUcGeRq.js → pgsql-BxCBktNe.js} +1 -1
  201. package/dist/client/assets/js/{php-nri1eqb2.js → php-zp9UgH03.js} +1 -1
  202. package/dist/client/assets/js/pie-LRSECV5Y-BtnBGhFZ.js +1 -0
  203. package/dist/client/assets/js/{pieDiagram-4H26LBE5-4LODdtT_.js → pieDiagram-4H26LBE5-CG8_pcHr.js} +1 -1
  204. package/dist/client/assets/js/{pla-CHi5LWNL.js → pla-DGCtmYZC.js} +1 -1
  205. package/dist/client/assets/js/{postiats-Bk7jD0AA.js → postiats-DHSW8gnY.js} +1 -1
  206. package/dist/client/assets/js/{powerquery-UTqJ0Vs7.js → powerquery-BGsPEmJe.js} +1 -1
  207. package/dist/client/assets/js/{powershell-CuPY3Rqk.js → powershell-BItlb0hE.js} +1 -1
  208. package/dist/client/assets/js/{profiles-D-vlI-Ec.js → profiles-BK5JKD7h.js} +1 -1
  209. package/dist/client/assets/js/{protobuf-Be4AIz9j.js → protobuf-BIhm6JYx.js} +1 -1
  210. package/dist/client/assets/js/{pt-D7_udWb3.js → pt-BSORCDMm.js} +1 -1
  211. package/dist/client/assets/js/{pug-CZFx15Ey.js → pug-BtnM7KZj.js} +1 -1
  212. package/dist/client/assets/js/{python-BgRg6Ez6.js → python-DxzTx1Q_.js} +1 -1
  213. package/dist/client/assets/js/{qsharp-BiBiLhRS.js → qsharp-B_8MSfaB.js} +1 -1
  214. package/dist/client/assets/js/{quadrantDiagram-W4KKPZXB-g_q9-dXx.js → quadrantDiagram-W4KKPZXB-CsbkMYuV.js} +1 -1
  215. package/dist/client/assets/js/{r-DM7NVSbZ.js → r-kvKC59jk.js} +1 -1
  216. package/dist/client/assets/js/radar-GUYGQ44K-BTKMKX4G.js +1 -0
  217. package/dist/client/assets/js/{razor-CiWy0jCW.js → razor-BwZ0MkaL.js} +1 -1
  218. package/dist/client/assets/js/{redis-BR2LPmFL.js → redis-5j1U_i85.js} +1 -1
  219. package/dist/client/assets/js/{redshift-B0sdAV16.js → redshift-CX1dFLA1.js} +1 -1
  220. package/dist/client/assets/js/{requirementDiagram-4Y6WPE33-EedCclad.js → requirementDiagram-4Y6WPE33-CKC7CQCX.js} +1 -1
  221. package/dist/client/assets/js/{restructuredtext-kQOBLN1M.js → restructuredtext-MV0-Naya.js} +1 -1
  222. package/dist/client/assets/js/{rough.esm-Dyx_2DON.js → rough.esm-CV1rL6PC.js} +1 -1
  223. package/dist/client/assets/js/{ru-CVQQmreT.js → ru-JsH6TKyg.js} +1 -1
  224. package/dist/client/assets/js/{ruby-CbdJXy6J.js → ruby-Bhyejf9X.js} +1 -1
  225. package/dist/client/assets/js/{rust-DZanYksk.js → rust-CR8d_FC1.js} +1 -1
  226. package/dist/client/assets/js/{sankeyDiagram-5OEKKPKP-DFC0nzsd.js → sankeyDiagram-5OEKKPKP-CKlqlvAe.js} +1 -1
  227. package/dist/client/assets/js/{sb-C5-WiqDZ.js → sb-hLW2EM2L.js} +1 -1
  228. package/dist/client/assets/js/{scala-Bk7i9nV-.js → scala-DVUhALEZ.js} +1 -1
  229. package/dist/client/assets/js/{scheme-CaZSWmJ2.js → scheme-BS6yNanr.js} +1 -1
  230. package/dist/client/assets/js/{scss-ByOYuc7K.js → scss-BfoRsElt.js} +1 -1
  231. package/dist/client/assets/js/{sequenceDiagram-3UESZ5HK-hWjPfqXt.js → sequenceDiagram-3UESZ5HK-CTimhD6H.js} +1 -1
  232. package/dist/client/assets/js/{session-browser-prefs-Br8OYA4_.js → session-browser-prefs-BT1woDux.js} +1 -1
  233. package/dist/client/assets/js/{sessions-iGK9S6zk.js → sessions-IkLKgnN6.js} +1 -1
  234. package/dist/client/assets/js/{settings-pbanANH0.js → settings-roYY6G3W.js} +1 -1
  235. package/dist/client/assets/js/{shell-Di0TEySc.js → shell-BO_Lyczz.js} +1 -1
  236. package/dist/client/assets/js/{skills-DC-UPcXj.js → skills-a5LPwmiT.js} +1 -1
  237. package/dist/client/assets/js/{solidity-BNTjAuuA.js → solidity-D3T2Ki4l.js} +1 -1
  238. package/dist/client/assets/js/{sophia-LY__8Yob.js → sophia-iJmIEvi8.js} +1 -1
  239. package/dist/client/assets/js/{sparql-CWnLfgGS.js → sparql-C2HCEExr.js} +1 -1
  240. package/dist/client/assets/js/{sql-B0ypQ9lR.js → sql-DM6_3GBc.js} +1 -1
  241. package/dist/client/assets/js/{src-BihFroE7.js → src-DD_TpJde.js} +1 -1
  242. package/dist/client/assets/js/{st-CqVFKTbZ.js → st-DSb39Fm5.js} +1 -1
  243. package/dist/client/assets/js/{stateDiagram-AJRCARHV-B7wEnYVe.js → stateDiagram-AJRCARHV-DwBGmBj6.js} +1 -1
  244. package/dist/client/assets/js/stateDiagram-v2-BHNVJYJU-5bNcwBne.js +1 -0
  245. package/dist/client/assets/js/{style-DDAg_jVj.js → style-B5xXhBlp.js} +1 -1
  246. package/dist/client/assets/js/{swift-B4ZZmDxc.js → swift-DrZYSZK3.js} +1 -1
  247. package/dist/client/assets/js/{systemverilog-zLt-O1mT.js → systemverilog-BAWNCaf6.js} +1 -1
  248. package/dist/client/assets/js/{tcl-DCSZmA-l.js → tcl-DY15ex6v.js} +1 -1
  249. package/dist/client/assets/js/{timeline-definition-PNZ67QCA-BN_LfleE.js → timeline-definition-PNZ67QCA-B8xuIu6g.js} +1 -1
  250. package/dist/client/assets/js/treeView-BLDUP644-DvZPUnGM.js +1 -0
  251. package/dist/client/assets/js/treemap-LRROVOQU-Bis1djYh.js +1 -0
  252. package/dist/client/assets/js/{tsMode-BjUcuHrq.js → tsMode-BE8JCSCE.js} +1 -1
  253. package/dist/client/assets/js/{ttsHelpers-BLunFYsq.js → ttsHelpers-BLNiQExI.js} +1 -1
  254. package/dist/client/assets/js/{twig-CuJlVpUG.js → twig-BpHF_18K.js} +1 -1
  255. package/dist/client/assets/js/{typescript-De40YVFt.js → typescript-FQ3z9hVG.js} +1 -1
  256. package/dist/client/assets/js/{typespec-8QcsIc3c.js → typespec-BKvcn6aE.js} +1 -1
  257. package/dist/client/assets/js/{useSttSettings-B1-KXN44.js → useSttSettings-DHX06G8A.js} +1 -1
  258. package/dist/client/assets/js/{vb-DEGTdhxf.js → vb-B74ucE43.js} +1 -1
  259. package/dist/client/assets/js/{vennDiagram-CIIHVFJN-hL8ax7wF.js → vennDiagram-CIIHVFJN-DtEu04QR.js} +1 -1
  260. package/dist/client/assets/js/wardley-L42UT6IY-CD4dIN63.js +1 -0
  261. package/dist/client/assets/js/{wardleyDiagram-YWT4CUSO-BIR-RA6Y.js → wardleyDiagram-YWT4CUSO-DdNKCPsp.js} +1 -1
  262. package/dist/client/assets/js/{wgsl-CmbiucmY.js → wgsl-DEf5Vdqv.js} +1 -1
  263. package/dist/client/assets/js/{workers-BgWBq4qY.js → workers-BbaiLVxx.js} +1 -1
  264. package/dist/client/assets/js/{workflow-socket-DZ9Ceffc.js → workflow-socket-DH402vxO.js} +1 -1
  265. package/dist/client/assets/js/{xml-SZLdwDmk.js → xml-zjE51I7v.js} +1 -1
  266. package/dist/client/assets/js/{xterm-D6CotCNH.js → xterm-Djy4rCx0.js} +1 -1
  267. package/dist/client/assets/js/{xychartDiagram-2RQKCTM6-DHa486uP.js → xychartDiagram-2RQKCTM6-CKqN7g7r.js} +1 -1
  268. package/dist/client/assets/js/{yaml-CgQpCgM5.js → yaml-DabeGoTc.js} +1 -1
  269. package/dist/client/assets/js/{zh-BDlMioZr.js → zh-CI4-L3JY.js} +1 -1
  270. package/dist/client/assets/js/{zh-TW-DTbLWR1A.js → zh-TW-wYlj-uOZ.js} +1 -1
  271. package/dist/client/index.html +1 -1
  272. package/dist/server/index.js +3 -3
  273. package/dist/server/openapi.json +1 -1
  274. package/package.json +9 -1
  275. package/dist/client/assets/js/architecture-7EHR7CIX-Cl4Qi40R.js +0 -1
  276. package/dist/client/assets/js/classDiagram-4FO5ZUOK-DC0BcY8x.js +0 -1
  277. package/dist/client/assets/js/classDiagram-v2-Q7XG4LA2-BfDDH_fm.js +0 -1
  278. package/dist/client/assets/js/eventmodeling-FCH6USID-Bgzwnvkn.js +0 -1
  279. package/dist/client/assets/js/gitGraph-WXDBUCRP-CwFrpI3e.js +0 -1
  280. package/dist/client/assets/js/info-J43DQDTF-wMwkmIWM.js +0 -1
  281. package/dist/client/assets/js/packet-YPE3B663-DYmKXJOE.js +0 -1
  282. package/dist/client/assets/js/pie-LRSECV5Y-Dx0hbcjV.js +0 -1
  283. package/dist/client/assets/js/radar-GUYGQ44K-D-t-QJhi.js +0 -1
  284. package/dist/client/assets/js/stateDiagram-v2-BHNVJYJU-CoMhBVvo.js +0 -1
  285. package/dist/client/assets/js/treeView-BLDUP644-CMJGhbWk.js +0 -1
  286. package/dist/client/assets/js/treemap-LRROVOQU-_j4KoVDh.js +0 -1
  287. package/dist/client/assets/js/wardley-L42UT6IY-BeOvmJoM.js +0 -1
@@ -1 +1 @@
1
- var e={browser:{title:"브라우저",settings:"브라우저 설정",desktopOnly:"내장 브라우저는 Hermes Studio Desktop에서만 사용할 수 있습니다.",newTab:"새 탭",back:"뒤로",forward:"앞으로",reload:"새로고침",stop:"중지",addressPlaceholder:"검색 또는 주소 입력",selectElement:"요소 선택",selectRegion:"영역 선택",annotationPlaceholder:"Agent가 확인하거나 변경할 내용을 입력하세요…",selectionData:"브라우저 선택 데이터",annotationAdded:"스크린샷을 채팅 입력창에 추가했습니다",annotationCount:"주석 {count}개",annotationLabel:"주석 {index}",clearAnnotations:"주석 지우기",finishAnnotation:"완료",agent:"Agent",agentControlling:"{agent}가 이 탭을 제어 중",agentWaiting:"{agent}가 확인을 기다리는 중",takeOver:"제어권 가져오기",tabCrashed:"이 탭이 비정상 종료되었습니다.",recoverTab:"탭 새로고침",profiles:"프로필",profileName:"프로필 이름",addProfile:"프로필 추가",currentProfile:"활성 프로필",switchProfile:"프로필 전환",editProfile:"프로필 편집",profileDirectory:"프로필 데이터 경로",downloadDirectory:"다운로드 경로",profileRootDirectory:"프로필 루트 경로",chooseProfileRootDirectory:"빈 경로 선택",profileRootDirectoryHint:"빈 경로를 선택하세요. 데이터는 {data}, 다운로드는 {download}를 사용합니다.",proxy:"프록시",proxyMode:"프록시 모드",proxyDirect:"직접 연결",proxySystem:"시스템 프록시",proxyCustom:"사용자 지정 프록시",proxyServer:"프록시 서버",proxyServerPlaceholder:"예: http://127.0.0.1:7890 또는 socks5://127.0.0.1:1080",askBeforeDownload:"저장 위치 항상 묻기",downloadConflictPolicy:"중복 파일 이름",uniquifyDownloads:"고유 이름 만들기",askOnConflict:"파일이 있으면 묻기",downloads:"다운로드",downloadStateProgressing:"다운로드 중",downloadStateCompleted:"완료됨",downloadStateCancelled:"취소됨",downloadStateInterrupted:"중단됨",downloadStateBlocked:"차단됨",permissions:"권한",permissionsHint:"원격 페이지 권한은 기본적으로 거부되며 감사용으로 표시됩니다.",blocked:"차단됨",profileSwitchTitle:"프로필을 전환할까요?",profileSwitchWarning:"Agent 작업 {agents}개, 다운로드 {downloads}개, 주석 {annotations}개가 중단될 수 있습니다.",deleteProfileTitle:"프로필을 삭제할까요?",deleteProfileWarning:"관리 데이터는 휴지통으로 이동하며 사용자 지정 경로는 유지됩니다.",clearCache:"캐시 지우기",clearPermissionAudit:"권한 기록 지우기",clearSiteData:"사이트 데이터 지우기",clearSiteDataWarning:"선택한 프로필의 로그인, 쿠키 및 로컬 저장소를 지웁니다.",dataCleared:"브라우저 데이터를 지웠습니다",loadFailed:"내장 브라우저를 시작하지 못했습니다"},kanban:{board:{defaultArchiveUnavailable:"기본 칸반은 보관할 수 없습니다"},action:{archive:"작업 보관",archiveConfirm:"완료된 이 작업을 보관하시겠습니까?"},message:{taskArchived:"작업이 보관되었습니다"}},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 형식 오류",invalidYaml:"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:"터미널",browser:"브라우저",singleChat:"채팅",globalAgent:"Global Agent",files:"파일",devices:"기기",groupChat:"그룹 채팅",groupConversation:"대화",groupConversationShort:"대화",groupAgent:"에이전트",groupAgentShort:"에전",groupSystem:"시스템",groupSystemShort:"시스템",groupMonitoring:"모니터링",groupMonitoringShort:"모니터",theme:"테마",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",currentHermesAgentVersion:"현재 Hermes Agent 버전",activeRuntimeDirectory:"현재 Runtime 경로",cliUpdateDescription:"Hermes Runtime 0.19.1 이상에서는 다음 명령으로 내장 Hermes Agent만 업데이트할 수 있습니다. Hermes Studio 데스크톱 앱이나 Web UI는 업데이트되지 않습니다. 실행 전에 Hermes Studio를 완전히 종료하세요:",webUiTitle:"Web UI",platform:"플랫폼",currentWebUi:"현재 Web UI",activeVersion:"활성 버전",runtimeDirectory:"Runtime 저장 디렉터리",chooseRuntimeDirectory:"디렉터리 선택",resetRuntimeDirectory:"시스템 기본값 사용",runtimeDirectoryHint:"다음 재시작 시 로컬 서비스 시작 전에 현재 Runtime을 복사하고 검증합니다. 이전 저장소는 유지되며 이후 Runtime 다운로드도 여기에 저장됩니다.",runtimeDirectorySaved:"Runtime 마이그레이션을 예약했습니다. Hermes Studio를 다시 시작하면 실행됩니다.",runtimeMigrationPending:"마이그레이션 예정 위치: {directory}",runtimeMigrationFailed:"저장소 마이그레이션에 실패하여 이전 저장소를 계속 사용합니다",runtimeActivationFailed:"선택한 Runtime을 시작할 수 없어 Hermes Studio가 설치된 다른 버전을 사용했습니다",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 optional",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 URL",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:"대화 개요",outlineEmpty:"대화 내용이 없습니다",outlineUserQuestion:"사용자 질문",inputPlaceholder:"메시지를 입력하세요... (Enter로 전송, Shift+Enter로 줄바꿈)",inputHeightResizeHint:"드래그해서 채팅 입력창 높이를 바꾸고, 더블클릭하면 자동 높이로 돌아갑니다.",slashCommandArgs:{message:"<메시지>",title:"<제목>",text:"<텍스트>"},slashCommands:{usage:"현재 세션 사용량 계산",status:"세션 상태와 대기열 표시",yolo:"세션 YOLO 모드를 전환하고 위험한 명령 승인을 건너뛰기",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:"스킬 명령 다시 로드",bundles:"스킬 번들 보기",bundlesCreate:"스킬 번들 만들기"},bundlePicker:{title:"스킬 번들",create:"번들 만들기",searchPlaceholder:"번들 검색...",skillCount:"스킬 {count}개",skillsLabel:"스킬",noSkills:"설정된 스킬 없음",deleteBundle:"{name} 삭제",deleteTitle:"번들 삭제",deleteConfirm:"이 프로필에서 “{name}”을 삭제할까요? 되돌릴 수 없습니다.",deleteFailed:"번들을 삭제하지 못했습니다",deleted:"번들을 삭제했습니다",noBundles:"아직 번들이 없습니다. 여러 스킬을 묶어 만들어 보세요.",noMatch:"일치하는 번들이 없습니다"},bundleCreator:{title:"스킬 번들 만들기",name:"이름",namePlaceholder:"예: PR Review Team",nameHint:"영문자, 숫자, 공백, 하이픈 또는 밑줄만 사용할 수 있습니다.",description:"설명",descriptionPlaceholder:"이 번들을 어떤 작업에 사용할까요?",skills:"스킬",skillsPlaceholder:"하나 이상의 스킬 선택",nameRequired:"번들 이름을 입력하세요",nameInvalid:"영문자가 하나 이상 포함된 영어 이름을 입력하세요",skillsRequired:"스킬을 하나 이상 선택하세요",skillsLoadFailed:"스킬을 불러오지 못했습니다",createFailed:"번들을 만들지 못했습니다",created:"번들을 만들었습니다"},attachFiles:"파일 첨부",reasoningEffort:{tooltip:"추론 노력",defaultLabel:"기본값",options:{default:"기본값 (config.yaml)",none:"없음",minimal:"최소",low:"낮음",medium:"중간",high:"높음",max:"Max",xhigh:"매우 높음",ultra:"울트라"}},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:"세션 없음",recent:"최근",recentCount:"최근 세션 수",loadMoreSessions:"세션 더 불러오기",newChat:"새 채팅",category:"카테고리",uncategorized:"미분류",categoryPlaceholder:"카테고리 선택 또는 만들기",categoryCreateHint:"이름을 입력하고 Enter 키를 눌러 만드세요.",categoryCreated:'카테고리 "{name}" 생성됨',categoryCreateFailed:"카테고리를 만들지 못했습니다",categoryLoadFailed:"카테고리를 불러오지 못했습니다",moveToCategory:"카테고리로 이동",categoryUpdated:"카테고리가 업데이트되었습니다",categoryUpdateFailed:"카테고리를 업데이트하지 못했습니다",renameCategory:"카테고리 이름 변경",deleteCategory:"카테고리 삭제",enterCategoryName:"카테고리 이름 입력",confirmDeleteCategory:"“{name}”을(를) 삭제할까요? 세션은 미분류로 이동합니다.",categoryRenamed:"카테고리 이름이 변경되었습니다",categoryRenameFailed:"카테고리 이름을 변경하지 못했습니다",categoryDeleted:"카테고리가 삭제되었습니다",categoryDeleteFailed:"카테고리를 삭제하지 못했습니다",agent:"Agent",approvalKicker:"도구 권한",toolResultUnavailable:"실행이 중단되어 도구 결과를 받지 못했습니다",approvalCommand:"실행할 명령",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:"새 탭에서 열기",openSessionInNewWindow:"새 창에서 열기",sessionLinkCopied:"Session link copied",copySessionId:"세션 ID 복사",export:"내보내기",editConfig:"구성 편집",exportFull:"전체 내보내기 (JSON)",exportCompressed:"압축 내보내기 (TXT)",exportCompressing:"컨텍스트 압축 중, 잠시 기다려주세요...",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:"Workspace 폴더가 없습니다",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:"스케줄을 입력해 주세요",promptRequired:"프롬프트를 입력해 주세요",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:"파일을 불러오지 못했습니다",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} 비활성화됨",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:"모델 캐시 새로고침 실패",refreshModels:"모델 새로고침",restoreModels:"이전 모델 목록 복원",refreshModelsConfirmTitle:"모델 목록 변경 확인",refreshModelsConfirmContent:"이 새로고침은 모델 {removed}개를 제거하고 {added}개를 추가합니다. 제거 대상: {removedList}",refreshModelsConfirmAction:"모델 목록 교체",refreshModelsSuccess:"모델 목록을 업데이트했습니다(총 {count}개, 사용 불가 {unavailable}개)",refreshModelsFailed:"Provider 모델 새로고침 실패",restoreModelsSuccess:"이전 모델 목록을 복원했습니다(총 {count}개)",restoreModelsFailed:"이전 모델 목록 복원 실패",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가 비활성화되었습니다",defaultProviderUpdated:"기본 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 프리셋을 설정합니다. 참조 모델이 먼저 관점을 제공하고, 이후 하나의 집계 모델이 최종 응답과 도구 호출을 처리합니다.",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:"인증이 만료되었습니다. 다시 시도하세요.",minimaxLoginTitle:"MiniMax Coding Plan 로그인",minimaxRegionHint:"Coding Plan 계정의 MiniMax 지역을 선택하세요.",minimaxGlobal:"글로벌",minimaxChina:"중국",minimaxStart:"인증 시작",minimaxWaiting:"MiniMax 인증 페이지를 열고 이 코드를 입력하세요. 승인되면 창이 자동으로 닫힙니다.",minimaxOpenLink:"MiniMax 인증 페이지 열기",minimaxApproved:"로그인 성공!",minimaxExpired:"인증이 만료되었습니다. 다시 시도하세요.",visibilitySelectOne:"최소 하나의 표시 모델을 유지하세요",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:"프로필 내보내기 실패",exportTimeout:"내보내기 시간이 초과되었습니다. 이 프로필이 너무 큽니다 — 보통 workspace 아래의 캐시와 가상 환경이 원인입니다.",importTimeout:"서버에서 아카이브를 푸는 동안 가져오기 시간이 초과되었습니다. 더 빠른 저장소에서 다시 시도하거나 Hermes CLI로 가져오세요.",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:"활성",activeTag:"현재",idle:"대기 중",checking:"확인 중",running:"실행 중",stopped:"중지됨",restartGateway:"Gateway 재시작",restartProfile:"프로필 재시작",switchProfile:"프론트엔드 프로필 전환",gatewayRestarted:"Gateway가 재시작되었습니다: {name}",gatewayRestartFailed:"Gateway 재시작 실패",profileRestarted:"프로필이 재시작되었습니다: {name}",profileRestartFailed:"프로필 재시작 실패"}},logs:{title:"로그",all:"전체",searchPlaceholder:"검색...",refresh:"새로고침",noEntries:"로그 항목 없음"},theme:{title:"테마",saved:"테마가 저장되었습니다",saveFailed:"테마를 저장하지 못했습니다",reset:"기본값 복원",resetSuccess:"기본 테마를 복원했습니다",appearance:"모양",appearanceHint:"변경 사항이 전체 인터페이스에 실시간으로 표시됩니다",mode:"밝기",modeHint:"밝은 또는 어두운 색상표 선택",modeSystem:"시스템 설정",modeLight:"라이트",modeDark:"다크",style:"스타일",styleHint:"인터페이스 분위기 선택",styleInk:"수묵",styleComic:"코믹",fontSize:"텍스트 크기",fontSizeHint:"인터페이스와 대화의 기본 텍스트 크기",textColor:"텍스트 색상",textColorHint:"보조 텍스트 색상은 자동으로 생성됩니다",accentColor:"선택 색상",accentColorHint:"활성 항목, 선택 영역 및 기본 버튼에 사용",background:"배경 이미지",backgroundHint:"개인 작업 공간 배경 업로드",backgroundTypeError:"PNG, JPEG, WebP 또는 GIF 이미지를 사용하세요",backgroundSizeError:"배경 이미지는 10 MB 이하여야 합니다",backgroundUploaded:"배경 이미지가 업데이트되었습니다",backgroundUploadFailed:"배경 이미지를 업로드하지 못했습니다",backgroundRemoved:"배경 이미지가 제거되었습니다",backgroundRemoveFailed:"배경 이미지를 제거하지 못했습니다",backgroundReplace:"이미지 변경",backgroundUpload:"이미지 업로드",backgroundRemove:"제거",backgroundEmpty:"배경 이미지 없음",backgroundNote:"이미지는 계정에 저장되며 로컬 캐시로 로딩 시 깜박임을 방지합니다.",preview:"미리 보기",previewTitle:"나만의 작업 공간과 분위기",previewText:"텍스트와 선택 색상이 전체 인터페이스에 적용됩니다.",previewAction:"선택된 작업"},settings:{title:"설정",saved:"저장됨",saveFailed:"저장 실패",tabs:{display:"표시",account:"현재 계정",users:"계정 관리",webhooks:"웹훅",agent:"에이전트",proxy:"프록시",memory:"메모리",compression:"압축",session:"세션",privacy:"개인정보",apiServer:"API 서버",models:"모델",voice:"음성"},webhooks:{title:"웹훅",description:"채팅 실행을 차단하지 않고 Chat Run 수명 주기 이벤트를 외부 시스템으로 전송합니다.",deliveryNote:"전송에는 크기가 제한된 메모리 큐를 사용합니다. 엔드포인트는 병렬로 처리되며 동일한 엔드포인트에서는 이벤트 순서를 유지합니다. 서버를 다시 시작하면 대기 중인 전송은 유지되지 않습니다.",createTitle:"웹훅 추가",editTitle:"웹훅 편집",allProfiles:"모든 프로필",queued:"{count}개 대기 중",deleteConfirm:"이 웹훅을 삭제할까요? 대기 중인 전송도 함께 삭제됩니다.",localInboxTitle:"로컬 테스트 수신함",localInboxDescription:"내장 테스트 수신기가 최근 받은 이벤트 {count}개입니다. 메모리에만 보관되며 서버를 재시작하면 삭제됩니다.",localInboxEmpty:"아직 받은 로컬 테스트 이벤트가 없습니다.",localInboxPayloadTitle:"수신한 웹훅 페이로드",clearInboxConfirm:"로컬 테스트 수신함의 모든 이벤트를 지울까요?",columns:{name:"이름",url:"URL",events:"이벤트",profiles:"프로필",status:"상태",actions:"작업",receivedAt:"수신 시간",event:"이벤트",eventId:"이벤트 ID",deliveryId:"전송 ID"},events:{messageCreated:"사용자 메시지 생성됨",runQueued:"실행 대기열 추가됨",runStarted:"실행 시작됨",toolStarted:"도구 시작됨",toolCompleted:"도구 완료됨",toolFailed:"도구 실패",approvalRequested:"승인 요청됨",approvalResolved:"승인 처리됨",clarificationRequested:"확인 요청됨",clarificationResolved:"확인 처리됨",completed:"실행 완료",failed:"실행 실패"},status:{enabled:"활성화됨",disabled:"비활성화됨"},runtime:{idle:"대기",delivering:"전송 중",retrying:"재시도 대기",success:"전송됨",failed:"실패",dropped:"삭제됨"},actions:{add:"웹훅 추가",localTest:"로컬 테스트 수신기 사용",test:"테스트",enable:"활성화",disable:"비활성화",refresh:"새로고침",clear:"지우기",view:"보기"},form:{name:"이름",localTestName:"로컬 웹훅 테스트",namePlaceholder:"예: 운영 알림",url:"엔드포인트 URL",secret:"서명 시크릿",secretPlaceholder:"선택 사항인 HMAC-SHA256 서명 시크릿",secretKeepPlaceholder:"현재 시크릿을 유지하려면 비워 두세요",clearSecret:"저장된 시크릿 삭제",events:"이벤트",profiles:"프로필",profilesPlaceholder:"모든 프로필을 받으려면 비워 두세요",maxRetries:"첫 실패 후 재시도 횟수(0~10)",includeContent:"어시스턴트의 최종 텍스트 포함",includeContentHint:"최종 답변에 민감한 정보가 포함될 수 있습니다. 추론, 시스템 프롬프트, 도구 인수는 전송되지 않습니다.",includeUserContent:"사용자 메시지 텍스트 포함",includeUserContentHint:"사용자 메시지에는 민감한 정보가 포함될 수 있습니다. 기본적으로 비활성화되며 시스템 프롬프트, 추론, 도구 인수 및 결과는 포함되지 않습니다.",allowPrivateNetwork:"사설 또는 로컬 네트워크 주소 허용",allowPrivateNetworkHint:"신뢰할 수 있는 내부 엔드포인트에만 활성화하세요. 전송할 때마다 DNS를 다시 확인합니다.",enabled:"활성화"},messages:{required:"이름과 URL은 필수입니다",eventRequired:"이벤트를 하나 이상 선택하세요",loadFailed:"웹훅을 불러오지 못했습니다",saved:"웹훅이 저장되었습니다",saveFailed:"웹훅을 저장하지 못했습니다",deleted:"웹훅이 삭제되었습니다",deleteFailed:"웹훅을 삭제하지 못했습니다",testSucceeded:"테스트 웹훅이 전송되었습니다",testFailed:"테스트 웹훅 전송에 실패했습니다",localTestFailed:"로컬 테스트 수신기를 만들지 못했습니다",inboxLoadFailed:"로컬 테스트 이벤트를 불러오지 못했습니다",inboxCleared:"로컬 테스트 이벤트를 지웠습니다",inboxClearFailed:"로컬 테스트 이벤트를 지우지 못했습니다"}},display:{streaming:"스트리밍 응답",streamingHint:"AI 응답을 실시간으로 표시",compact:"컴팩트 모드",compactHint:"메시지 간격 줄이기",showReasoning:"추론 과정 표시",showReasoningHint:"모델의 생각 과정 표시",showCost:"비용 표시",showCostHint:"응답에 토큰 사용량 표시",inlineDiffs:"인라인 변경사항",inlineDiffsHint:"코드 변경사항을 인라인으로 표시",bellOnComplete:"완료 알림음",bellOnCompleteHint:"AI 응답 완료 시 알림음 재생",notifyOnComplete:"완료 알림",notifyOnApproval:"Approval Desktop Notification",notifyOnApprovalHint:"Show a system notification when a new approval or clarification needs attention while Studio is in the background",notifyOnApprovalTest:"Approval desktop notifications are enabled.",notifyOnApprovalTestButton:"Test",notifyOnApprovalTestSent:"Approval notification sent",notifyOnApprovalTestFailed:"Failed to send approval notification",approvalNotificationTitle:"Approval required",approvalNotificationClarifyTitle:"Clarification required",approvalNotificationBody:"Open Hermes Studio to review and respond.",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:"도구 호출 실행 모드 제어",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:"민감 정보 자동 감지 및 숨김 (비밀번호, 키 등)"},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:"마이크와 음성 입력 흐름에서 사용하는 음성 텍스트 변환 연동을 관리합니다.",localSttModelTitle:"로컬 중영 STT",localSttModelDescription:"오디오를 클라우드에 올리지 않고 이 기기에서 인식합니다.",localSttModelUnavailable:"로컬 STT 모델을 다운로드하고 검증한 뒤 활성화하세요.",localSttModelReady:"사용 가능",localSttModelDownloading:"다운로드 중",localSttModelNotInstalled:"설치되지 않음",localSttLanguages:"언어",localSttLanguagesValue:"중국어 + 영어",localSttDownloadSize:"다운로드 크기",localSttRuntime:"런타임",localSttDownloadCf:"Cloudflare 다운로드",localSttDownloadGithub:"GitHub 다운로드",localSttBackgroundHint:"다운로드, 체크섬 확인, 압축 해제 및 모델 검증은 백그라운드에서 실행됩니다.",localSttDownloadFailed:"로컬 STT 모델 다운로드 실패: {error}",localSttStage:{queued:"다운로드 대기 중…",resolve:"다운로드 준비 중…",download:"모델 다운로드 중…",verify:"체크섬 확인 중…",extract:"모델 압축 해제 중…",validate:"모델 검증 중…",install:"모델 설치 중…",completed:"모델 사용 가능",failed:"다운로드 실패"},hermesConfigTitle:"Hermes Agent 설정",hermesConfigDescription:"Hermes 프로필의 기존 네이티브 제공자는 유지되며 Web UI 제공자는 Hermes Studio로 표시됩니다.",hermesActiveProvider:"활성 제공자",hermesConfiguredProviders:"설정된 제공자",hermesStudioProvider:"Hermes Studio",providerSpeed:"속도",providerSampleRate:"샘플 레이트",providerBitRate:"비트 레이트",providerGroupId:"그룹 ID",providerVolume:"볼륨",providerEmotion:"감정",providerDiarize:"화자 분리",providerFormatText:"전사문 형식화",providerTagAudioEvents:"오디오 이벤트 태그",optionEnabled:"사용",optionDisabled:"사용 안 함",nativeProvider:"Hermes 네이티브 제공자",selectNativeProvider:"Hermes 네이티브 제공자 선택",useHermesStudioProvider:"Hermes Studio 제공자 사용",presetElevenLabsTtsLabel:"ElevenLabs TTS",presetGeminiTtsLabel:"Gemini TTS",presetXaiTtsLabel:"xAI TTS",presetMistralTtsLabel:"Mistral TTS",presetMinimaxTtsLabel:"MiniMax TTS",presetDeepInfraTtsLabel:"DeepInfra TTS",presetMistralSttLabel:"Mistral STT",presetXaiSttLabel:"xAI STT",presetElevenLabsSttLabel:"ElevenLabs STT",presetDeepInfraSttLabel:"DeepInfra STT",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:"테스트에 실패했습니다. 제공자 설정을 확인하고 다시 시도하세요.",showDetails:"세부 정보 표시",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}",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:"음성 합성 모델 선택",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:"삭제 중",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",encryptKey:"암호화 키",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:{title:"워크플로",profile:"프로필",namePlaceholder:"워크플로 이름",canvasAriaLabel:"워크플로 캔버스",workspace:{title:"작업 공간 선택",select:"작업 공간 선택",clear:"작업 공간 지우기"},actions:{newWorkflow:"새 워크플로",addNode:"노드 추가",createWorkflowFirst:"먼저 워크플로를 만들어 주세요",reset:"초기화",startExecution:"실행 시작",executionPending:"워크플로 실행이 아직 연결되지 않았습니다",executionStarted:"워크플로 실행을 시작했습니다",executionCompleted:"워크플로 실행이 완료되었습니다",executionFailed:"워크플로 실행에 실패했습니다",rerunDownstreamKeepNode:"이 노드를 유지하고 하위 노드 실행",rerunDownstreamClearNode:"이 노드를 지우고 하위 노드 실행",rerunDownstreamStarted:"하위 노드 재실행을 시작했습니다",rerunFromNodeStarted:"이 노드부터 재실행을 시작했습니다",rerunFailed:"워크플로 재실행에 실패했습니다",deleteNode:"노드 삭제",deleteEdge:"연결 삭제",editEdge:"연결 편집",undo:"실행 취소",importWorkflow:"Workflow 가져오기",exportWorkflow:"Workflow 내보내기",imported:"Workflow를 가져왔습니다",exported:"Workflow를 내보냈습니다",importFailed:"Workflow 가져오기에 실패했습니다",exportFailed:"Workflow 내보내기에 실패했습니다"},batch:{toggle:"일괄 선택",selectAll:"모두 선택",confirmDelete:"선택한 워크플로 {count}개를 삭제할까요?",deleteSuccess:"워크플로 {count}개를 삭제했습니다",deletePartial:"워크플로 {failed}개를 삭제하지 못했습니다",deleteFailed:"일괄 삭제에 실패했습니다"},validation:{nodesRequired:"노드를 하나 이상 추가해 주세요",nodeNameRequired:"노드 {node}에 이름이 필요합니다",providerRequired:"노드 {node}에 제공자가 필요합니다",modelRequired:"노드 {node}에 모델이 필요합니다",apiModeRequired:"노드 {node}에 API 모드가 필요합니다",inputRequired:"노드 {node}에 입력이 필요합니다",invalidEdge:"연결이 존재하지 않는 노드를 참조합니다",invalidConnectionDirection:"연결은 오른쪽 출력에서 왼쪽 입력으로 이어져야 합니다",orphanNode:"노드 {node}가 워크플로에 연결되지 않았습니다",disconnectedFlow:"워크플로를 서로 분리된 여러 흐름으로 나눌 수 없습니다",cycle:"워크플로에 순환이 있습니다. 저장하기 전에 연결을 조정해 주세요."},stats:{nodes:"노드",edges:"연결"},runs:{title:"실행 기록",refresh:"새로 고침",empty:"실행 기록 없음",startNodes:"시작 노드 {count}개",snapshotIndicator:"이 실행이 시작된 시점의 고정 스냅샷",show:"실행 기록 표시",hide:"실행 기록 숨기기",nodeSessionTitle:"노드 세션 - {node}",noNodeSession:"이 노드에는 아직 세션 기록이 없습니다",loadNodeSessionFailed:"노드 세션을 불러오지 못했습니다",stop:"실행 중지",stopRequested:"중지를 요청했습니다",stopFailed:"실행을 중지하지 못했습니다",delete:"기록 삭제",deleteSuccess:"실행 기록을 삭제했습니다"},inspector:{selected:"선택한 노드",none:"선택한 노드 없음"},agents:{planner:"계획 담당",researcher:"조사 담당",builder:"구현 담당",reviewer:"검토 담당"},models:{default:"기본 모델",fast:"빠른 모델",reasoning:"추론 모델"},initialNodes:{node1:"노드 1",node2:"노드 2",node3:"노드 3",plan:"계획",execute:"실행",review:"검토"},initialPrompts:{node1:"이 노드의 입력을 작성하세요.",node2:"이 노드의 입력을 작성하세요.",node3:"이 노드의 입력을 작성하세요.",plan:"요청을 실행 가능한 단계로 나누세요.",execute:"구현 단계를 실행하고 결과물을 만드세요.",review:"출력 품질을 검토하고 후속 작업을 식별하세요."},newNodeTitle:"노드 {count}",schedule:{title:"워크플로 일정",manage:"일정 관리",createTitle:"일정 만들기",editTitle:"일정 편집",create:"일정 만들기",save:"일정 저장",edit:"일정 편집",delete:"일정 삭제",deleteConfirm:"이 일정을 삭제할까요?",deleted:"일정이 삭제되었습니다",enable:"일정 사용",disable:"일정 사용 안 함",enabled:"사용",disabled:"사용 안 함",empty:"일정이 없습니다",cron:"Cron 일정",cronPlaceholder:"예: 0 9 * * * 또는 {'@'}daily",timezone:"시간대",timezonePlaceholder:"IANA 시간대(예: Asia/Shanghai)",initialInput:"초기 입력",initialInputPlaceholder:"각 예약 실행에 사용할 선택 입력",startNodes:"시작 노드",startNodesPlaceholder:"기본 워크플로 시작 노드",timeout:"전체 시간 제한(분)",timeoutPlaceholder:"시간 제한 없음",policies:"동시 실행: 건너뛰기 · 누락 실행: 건너뛰기",lastScheduled:"마지막 예약 시간",nextRun:"다음 실행",lastRun:"마지막 실행",never:"없음",loadFailed:"일정을 불러오지 못했습니다",saveFailed:"일정을 저장하지 못했습니다",saved:"일정이 저장되었습니다",deleteFailed:"일정을 삭제하지 못했습니다",required:"Cron 일정과 시간대가 필요합니다",reset:"재설정",presets:{hourly:"매시간",daily:"매일",weekly:"매주",monthly:"매월"}},evidence:{historyPage:"실행 기록",detailsPage:"실행 상세",backToRuns:"실행 기록으로 돌아가기",resultStatus:"상태",duration:"소요 시간",budgetLabel:"예산",actualExecution:"실제 실행",otherJudgments:"기타 판단",loopEvents:"루프 이벤트",evaluatedNotExecuted:"판단됨, 실행 안 됨",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:"기타 세부 정보 숨기기",runDetails:"실행 세부 정보",actualPathSteps:"실제 경로 단계",nodeBudgetDetails:"시간 예산 세부 정보",condition:"조건",conditionMatched:"일치",conditionNotMatched:"불일치",sourceOutcome:"노드 결과",sourceReturned:"정상 응답",sourceFailed:"실행 실패",sourceSkippedStatus:"실행 안 됨",checkedData:"검사한 데이터",entireReplyText:"전체 응답 텍스트",errorText:"오류 텍스트",jsonFieldValue:"JSON 필드 하나의 값",advancedPathValue:"고급 경로 값",comparison:"비교 방법",textToFind:"찾을 텍스트",expectedFieldValue:"예상 필드 값",parsedBusinessDecision:"파싱한 비즈니스 결론",failedGateLabel:"실패 단계(failed_gate 필드 값)",failedGateValue:"실패 단계(failed_gate 필드 값): {gate}",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:"이 경로가 선택되었습니다.",pathEvaluatedNotUsed:"이 연결은 후보로 평가되었지만 대상 노드가 실제로 사용하지 않았습니다.",sourceSkipped:"상위 노드가 실행되지 않아 이번 실행에서 이 경로를 사용하지 않았습니다.",failureRouteAfterSuccess:"상위 노드는 정상 응답했습니다. 이 경로는 노드 실행 실패 시에만 사용됩니다.",successRouteAfterFailure:"상위 노드 실행이 실패했습니다. 이 경로는 정상 응답 시에만 사용됩니다.",businessBlocked:"“{source}” 단계가 워크플로를 중단했습니다({decision}): {reason}. 따라서 “{target}” 단계는 실행되지 않았습니다.",businessBlockedWithCondition:"“{source}” 단계가 워크플로를 중단했습니다({decision}): {reason}. 계속하려면 “{expected}”이(가) 필요했지만 상위 결과는 “{actual}”이었으므로 “{target}” 단계는 실행되지 않았습니다.",conditionMismatchDetail:"계속하려면 “{expected}”이(가) 필요했지만 상위 결과는 “{actual}”이었으므로 “{target}” 단계는 실행되지 않았습니다."},loopOutcomes:{continued:"조건 일치; 다음 회차로 계속",iterationLimitReached:"최대 횟수에서 중지",conditionNotMatched:"조건 불일치로 종료",finished:"루프 종료"}},budget:{runTitle:"Run 시간 예산 선택",rerunTitle:"Rerun 시간 예산 선택",totalLabel:"전체 Run 예산",customMinutes:"사용자 지정 분",customPlaceholder:"분",invalidCustom:"사용자 지정 Run 예산은 0.1~1440분이어야 합니다",help:"전체 Run이 공유하는 절대 마감 시간입니다. 각 노드는 시작 시점의 남은 시간만 받으며 반복은 예산을 재설정하지 않습니다.",options:{unlimited:"마감 없음",30:"30분",60:"60분",90:"90분",custom:"사용자 지정"},unlimitedSummary:"마감 없음",unlimitedHelp:"이 Run에는 시간 마감이 설정되지 않았습니다.",summary:"전체 {total} · 경과 {elapsed} · 남음 {remaining}",deadline:"마감: {deadline}",nodeStartRemaining:"노드 시작 시 남은 전체 예산: {remaining}"},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 필드 하나의 값 (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:"선택한 연산자는 {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:{title:"노드 이름",agent:"에이전트",model:"모델",apiMode:"API 모드",input:"입력",approvalRequired:"완료 후 승인",join:"합류 전략",joinAll:"모든 입력 경로",joinAny:"입력 경로 중 하나",joinAllHelp:"모든 입력 경로가 선택되어야 실행하며 하나라도 불일치하면 건너뜁니다.",joinAnyHelp:"첫 번째 입력 경로가 선택되면 한 번 실행하며 모두 불일치할 때만 건너뜁니다.",promptPlaceholder:"이 에이전트가 수행할 작업을 설명하세요...",skillsPlaceholder:"스킬을 입력하고 Enter로 추가",uploadImages:"이미지 업로드"},status:{idle:"대기",queued:"대기열",running:"실행 중",pending_approval:"승인 대기",completed:"완료",skipped:"건너뜀",failed:"실패",approval_rejected:"승인 거부",canceled:"취소됨"}},groupChat:{agentLinkButton:"내 Agent 참여시키기",agentOwner:"소유자: {name}",agentLinkTitle:"이 방에 Agent 참여시키기",agentLinkDescription:"자신의 Hermes 서비스에 연결합니다. 서비스가 암호화된 아웃바운드 연결을 만들며, 방은 로그인 자격 증명이나 작업 공간 접근 권한을 받지 않습니다.",agentLinkTargetUrl:"Hermes 서비스 URL",agentLinkTargetPlaceholder:"http://127.0.0.1:8748 or https://your-hermes.example.com",agentLinkTargetRequired:"Hermes 서비스 URL을 입력하세요.",agentLinkInvalidTarget:"자격 증명, 경로, 쿼리 또는 프래그먼트가 없는 HTTP 또는 HTTPS 오리진을 입력하세요.",agentLinkOpenTarget:"로그인하고 Agent 선택",agentLinkPopupBlocked:"인증 창이 차단되었습니다. 이 페이지의 팝업을 허용한 후 다시 시도하세요.",agentLinkParentUnavailable:"인증 창과 초대 페이지의 연결이 끊어졌습니다. 창을 닫고 다시 시작하세요.",agentLinkParentUnconfirmed:"초대 페이지에서 이 요청을 확인하지 못했습니다. 초대 페이지를 열어 둔 채 인증을 다시 시작하세요.",agentLinkIncompleteConfiguration:"연결을 요청하기 전에 Profile, 제공자 및 모델을 모두 선택하세요.",agentLinkWaitingApproval:"방 소유자가 이 Agent를 승인하기를 기다리는 중…",agentLinkApproved:"승인되었습니다. Agent에 연결하는 중…",agentLinkConnected:"Agent가 방에 연결되었습니다.",agentLinkError:"이 Agent에 연결할 수 없습니다.",agentLinkRejected:"방 소유자가 Agent 연결 요청을 거부했습니다.",agentLinkExpired:"Agent 연결 요청이 만료되었습니다. 새 요청을 시작하세요.",agentLinkPairingCode:"수동 페어링 코드",agentLinkPairingCodeHint:"인증 창이 이 페이지와 통신할 수 없으면, 이 단기 코드를 인증 창에 붙여 넣으세요.",agentLinkCopyCode:"페어링 코드 복사",agentLinkAuthorizeTitle:"그룹 채팅 Agent 인증",agentLinkAuthorizeDescription:"연결할 로컬 Agent를 선택하세요. 그룹은 메시지를 보낼 수 있지만 로컬 작업 공간을 탐색할 수는 없습니다.",agentLinkSelectAgent:"Agent",agentLinkRequestConnection:"연결 요청",agentLinkOrPairingCode:"또는 수동 페어링 코드 사용",agentLinkPairingCodePlaceholder:"HGC1 페어링 코드 붙여 넣기",agentLinkConnect:"Agent 연결",agentLinkSecurityHint:"알고 있는 방만 승인하세요. 페어링 티켓은 한 번만 사용할 수 있으며 곧 만료됩니다.",agentLinkLoadFailed:"로컬 Agent를 불러올 수 없습니다.",agentLinkConnectFailed:"선택한 Agent에 연결할 수 없습니다.",agentLinkInvalidPairingCode:"이 페어링 코드는 유효하지 않습니다.",agentLinkClose:"닫기",agentLinkApprovalMismatch:"승인 후 연결 요청이 변경되었습니다. Agent를 확인하고 다시 시도하세요.",guestAgentsDisabled:"방 소유자가 게스트 Agent를 활성화하지 않았습니다.",guestAgentSettings:"게스트 Agent 연결",allowGuestAgents:"멤버가 자신의 Agent를 참여시키도록 허용",maxGuestAgentsPerMember:"멤버당 최대 Agent 수",ownerApprovalHint:"각 Agent는 여전히 방 소유자의 명시적인 승인이 필요합니다.",allowRemoteWorkspaceAccess:"원격 Agent의 그룹 작업 공간 읽기 및 쓰기 허용",remoteWorkspaceAccessHint:"활성화하면 승인된 원격 Agent가 실행할 때마다 단기 접근 권한을 받습니다. 민감한 파일과 방 작업 공간 외부 경로는 계속 차단됩니다.",agentPairingRequestTitle:"Agent 연결 요청",agentPairingRequestDescription:"{user} 님이 {origin}에서 Agent를 연결하려고 합니다.",approveAgent:"Agent 승인",rejectAgent:"거부",agentPairingApproved:"Agent 연결이 승인되었습니다",agentPairingRejected:"Agent 연결이 거부되었습니다",emptyState:"그룹 대화를 시작하세요",title:"그룹 채팅",refactorNoticeTitle:"그룹 채팅 업데이트 안내",refactorNoticeMessage:"그룹 채팅이 대폭 개편되었습니다. 채팅할 수 없는 경우 새 방을 만들어 주세요.",createRoom:"방 만들기",joinByCode:"초대 코드로 참여",shareTitle:"그룹 채팅 참여",shareSubtitle:"초대 코드만 입력하면 참여할 수 있으며 계정 로그인이 필요하지 않습니다.",shareCodeHint:"이 초대 코드는 해당 그룹 채팅방에만 접근 권한을 부여합니다.",shareInvalidCode:"초대 코드가 유효하지 않거나 변경되었습니다. 공유한 사람에게 새 링크를 요청하세요.",shareJoining:"그룹 채팅에 참여하는 중…",shareNameSubtitle:"방에 들어가기 전에 이름을 설정하세요.",shareNameConflict:"이미 이 방에서 사용 중인 이름입니다. 다른 이름을 선택하세요.",shareNameReserved:"예약된 이름입니다. 다른 이름을 선택하세요.",shareEnterRoom:"방 입장",roomName:"방 이름",roomNamePlaceholder:"방 이름 입력",inviteCode:"초대 코드",autoGenerate:"자동 생성",noRooms:"아직 방이 없습니다",localRooms:"로컬",remoteRooms:"원격",remoteRoomOffline:"원격 연결이 오프라인입니다.",renameRemoteRoom:"원격 방 이름 변경",renameRemoteRoomHint:"이 기기에 표시되는 이름만 변경합니다.",remoteRoomRenamed:"원격 방 표시 이름을 변경했습니다",remoteRoomRenameFailed:"원격 방 표시 이름을 변경하지 못했습니다",leaveRemoteRoom:"방 나가기",leaveRemoteRoomConfirm:"“{name}”에서 나갈까요? 이 기기에서 연결한 모든 Agent가 원격 방에서 제거되고 로컬 연결 기록도 삭제됩니다.",remoteRoomLeft:"원격 방에서 나갔습니다",remoteRoomLeaveFailed:"원격 방에서 나가지 못했습니다",remoteRoomLeavePartial:"로컬 기록은 삭제했지만 원격 방이 오프라인이어서 Agent 연결 {count}개에 나가기를 알리지 못했습니다.",selectOrCreate:"방을 선택하거나 만들어 채팅을 시작하세요",agents:"에이전트",allAgents:"모든 Agent",addAgent:"에이전트 추가",agentType:"에이전트",agentTypes:{hermes:"Hermes",ekko:"Ekko",codex:"Codex",claude:"Claude"},selectProfile:"Profile 선택",agentAdded:"에이전트가 추가되었습니다",selectRoomFirst:"먼저 방을 선택하세요",agentAlreadyInRoom:"이 에이전트는 이미 방에 있습니다",agentAddFailedCount:"에이전트 {count}개를 추가하지 못했습니다: {details}",editAgentTitle:"{name} 편집",removeMember:"내보내기",memberRemoved:"{name} 님을 방에서 내보냈습니다",memberRemovedNotice:"방 소유자가 회원님을 내보냈습니다. 초대가 유효한 동안 다시 참여할 수 있습니다.",noAgents:"이 방에는 에이전트가 없습니다",members:"멤버 {count}명",roomCreated:"방이 생성되었습니다",roomDeleted:"방이 삭제되었습니다",roomCloned:"방이 복제되었습니다",cloneRoom:"방 복제",copyRoomLink:"방 링크 복사",manualCopyRoomLinkHint:"브라우저에서 자동으로 복사하지 못했습니다. 링크를 선택해 직접 복사하세요.",deleteRoomConfirm:"이 방을 삭제할까요?",clearContext:"컨텍스트 지우기",clearContextConfirm:"이 방의 컨텍스트를 지울까요? 메시지와 압축 스냅샷은 삭제되지만 에이전트와 멤버는 유지됩니다.",contextCleared:"컨텍스트를 지웠습니다",you:"나",joined:"방에 참여했습니다",joinFailed:"방 참여 실패",inputPlaceholder:"메시지 입력... (Enter로 전송)",messageDisplayLimit:"그룹 채팅에는 최대 600개의 메시지가 표시됩니다",enterCode:"초대 코드 입력",yourName:"내 이름",yourNamePlaceholder:"표시 이름 입력",yourDescription:"설명(선택 사항)",yourDescriptionPlaceholder:"자신을 소개해 주세요...",agentName:"에이전트 이름",agentNamePlaceholder:"사용자 지정 이름(비워 두면 Profile 이름 사용)",agentDesc:"에이전트 설명",agentDescPlaceholder:"이 에이전트의 역할을 설명하세요...",agentReplying:"응답 중...",agentCompressing:"컨텍스트 압축 중...",compressionSettings:"압축 설정",triggerTokens:"트리거 토큰",triggerTokensDesc:"컨텍스트 압축을 시작할 토큰 임계값",maxHistoryTokens:"최대 기록 토큰",maxHistoryTokensDesc:"LLM에 전송할 압축 컨텍스트의 최대 토큰 수",tailMessageCount:"최근 메시지 유지 수",tailMessageCountDesc:"압축 후 원문 그대로 유지할 최근 메시지 수",compressionConfig:"압축 구성",compressionSaved:"압축 설정을 저장했습니다",roomSettings:"방 설정",inviteCodeSettings:"초대 코드 설정",inviteCodePlaceholder:"새 초대 코드 입력",generateInviteCode:"초대 코드 생성",inviteCodeRotateHint:"업데이트하면 이전 코드는 새 참여에 사용할 수 없습니다.",inviteCodeUpdated:"초대 코드가 업데이트되었습니다",inviteCodeUpdateFailed:"초대 코드 업데이트 실패",saveCompression:"압축 설정 저장",compressNow:"지금 압축",compressingInProgress:"압축 중입니다. 잠시 기다려 주세요",summarySettings:"롤링 요약",summarySettingsDesc:"깨끗한 Ekko Agent가 지정한 사용자 대화 턴마다 공유 요약을 갱신합니다.",summaryProvider:"요약 Provider",summaryProviderPlaceholder:"Provider 선택",summaryModel:"요약 모델",summaryModelPlaceholder:"모델 선택",summaryApiMode:"API 모드",summaryEveryTurns:"N턴마다 요약",summaryEveryTurnsDesc:"한 턴은 사용자 메시지 한 개입니다.",summaryConfigSaved:"요약 설정을 저장했습니다",summaryConfigurationRequired:"이 방에는 요약기가 아직 설정되지 않았습니다. Profile, Provider, Model, API Mode를 선택한 뒤 저장하세요.",summaryConfigurationOwnerRequired:"이 방에는 요약기가 아직 설정되지 않았습니다. 메시지를 보내기 전에 방 관리자에게 설정을 요청하세요.",saveSummaryConfig:"요약 설정 저장",currentSummary:"현재 요약",summaryStatus:{idle:"대기",summarizing:"요약 중",success:"성공",failed:"실패"},summaryUpdatedAt:"마지막 업데이트",summarizedTurns:"요약된 턴",summaryAnchor:"요약 앵커",summaryMessagesAbove:"위 내용 요약 완료",summaryNoAnchor:"아직 앵커 없음",summaryContent:"요약 내용",summaryEmpty:"아직 요약이 없습니다",summaryEditKeepsAnchor:"요약을 수정해도 현재 앵커는 유지됩니다.",saveSummary:"요약 저장",summaryUpdated:"요약을 업데이트했습니다",summaryNever:"없음",summaryLoadFailed:"방 요약을 불러오지 못했습니다"},files:{attachToChat:"채팅에 추가",attachFailed:"파일을 채팅에 추가하지 못했습니다",previewMode:"미리보기",sourceMode:"소스",tableMode:"표",worksheet:"워크시트",htmlPreviewTitle:"격리된 HTML 미리보기",previewLoading:"미리보기 불러오는 중...",previewFailed:"미리보기를 사용할 수 없음",previewMimeMismatch:"파일 형식이 미리보기 형식과 일치하지 않습니다.",downloadInstead:"대신 다운로드",previousPage:"이전",nextPage:"다음",pageStatus:"{total}페이지 중 {page}페이지",zoom:"확대/축소",pdfPageLimit:"처음 {count}페이지만 표시합니다.",tableTruncated:"미리보기가 제한되었습니다. 모든 행과 열을 보려면 파일을 다운로드하세요."},changelog:{new_0_6_40_1:"이번 릴리스에는 v0.6.39 이후 병합된 40개 PR 전체가 포함되며 안전한 원격 그룹 채팅, 로컬 음성 인식, Workflow 예약, 전역 승인, Chat Run 웹훅, MCU 및 Coding Agent 안정성을 개선합니다",new_0_6_40_2:"그룹 채팅에 안전한 공유 방과 원격 Agent를 추가하고 Agent 인계, 접속 상태 및 철회 흐름을 안정화했습니다. 오프라인 소유자 아바타를 유지하며 클립보드 API를 사용할 수 없을 때 방 링크를 수동 복사할 수 있습니다(#2408, #2410, #2411, #2415, #2423)",new_0_6_40_3:"원격 Agent가 파일 전송과 클라우드 workspace 업로드를 지원합니다. 소유자가 아닌 사용자의 요청에는 workspace, 민감 정보 및 개인 기억 경계를 더 엄격히 적용하고 소유권과 승인 라우팅을 수정했습니다(#2413, #2430, #2433, #2435)",new_0_6_40_4:"기존 Agent Link 마이그레이션을 중단하고 접을 수 있는 로컬·원격 방 목록, 원격 방의 로컬 별칭, 공유 페이지 이동 및 완전한 나가기 정리를 추가했습니다(#2424, #2459)",new_0_6_40_5:"그룹 채팅 기록을 자동 삭제하지 않고 mention이 포함된 도구 결과를 제한된 메시지 ID로 안전하게 저장합니다. 고립된 도구, 승인 정렬과 라우팅, token 계산 중 이벤트 루프 정체도 수정했습니다(#2390, #2420, #2426, #2427, #2429, #2445)",new_0_6_40_6:"최근 세션과 그룹 채팅 활동 피드백이 더 빨라졌고 도구 패널이 부드러운 애니메이션으로 펼쳐집니다(#2389, #2414)",new_0_6_40_7:"전역 승인이 기존 프롬프트를 이어받고 더 명확한 명령 미리보기를 표시하며 대기 중 작업을 시스템 알림으로 알려 줍니다(#2406, #2425, #2432)",new_0_6_40_8:"sherpa-onnx 기반 중영 로컬 스트리밍 STT를 추가했습니다. 끝부분 무음으로 마지막 단어를 보존하고 macOS와 Windows에서 Electron 호환 오디오 버퍼를 사용합니다(#2447, #2448, #2461)",new_0_6_40_9:"Workflow에 영구 예약 실행과 생성, 편집, 활성화, 비활성화 및 삭제를 지원하는 전체 관리 UI를 추가했습니다(#2434, #2441)",new_0_6_40_10:"Chat Run 수명 주기 웹훅을 추가하고 사용하지 않는 기존 엔드포인트를 제거했으며 서버에 경량 상태 확인 엔드포인트를 추가했습니다(#2422, #2452, #2453)",new_0_6_40_11:"MCU에서 Ekko와 Hermes Agent 런타임을 선택할 수 있고 Global Agent 아바타와 MCU 상태 표시도 정확하게 나타납니다(#2438, #2442)",new_0_6_40_12:"Coding Agent에 실행 ID를 필수화하고 Windows 실행 영속성 격리, MCP 시간 초과, 모델 간 reasoning 재생, 컨텍스트 사용량 추정 및 중복 Studio 안내를 수정했습니다(#2387, #2392, #2395, #2396, #2398, #2416)",new_0_6_40_13:"MoA 프리셋에서 모델별 추론 강도를 설정할 수 있으며 이미지 생성은 불필요한 원격 보관을 막기 위해 Responses 저장을 비활성화합니다(#2439, #2449)",new_0_6_39_1:"Ekko Agent가 명시적으로 초기화되고 승인으로 보호된 제한형 Node.js/Python 코드 실행을 지원하며, 포그라운드 실행을 멈추고 텍스트 또는 선택형 질문에 답을 받은 뒤 이어갈 수 있습니다(#2362, #2368)",new_0_6_39_2:"Group Chat이 방 참가 확인 후 메시지를 보내 재연결 시 간헐적으로 발생하던 “Not in room” 오류를 해결했습니다. 입력 상태는 제한된 하트비트로 전송되며 다른 멤버의 아바타에 글자 없는 호흡 표시로만 나타납니다(#2373)",new_0_6_39_3:"Single Chat과 Group Chat의 Coding Agent 도구 이벤트가 네이티브 CLI 수명 주기를 따르고 인자가 완성된 뒤 시작 이벤트를 한 번만 보냅니다. 중복되거나 남는 도구 카드와 큰 방에서 도구 JSON이 한 글자씩 갱신되던 지연을 없앴습니다(#2366, #2372)",new_0_6_39_4:"Coding Agent 프롬프트를 stdin으로 전달해 여러 줄과 이미지 입력을 보존하면서 Windows 명령 길이 제한을 피합니다. Group Chat도 실행 중인 Codex, Claude Code 또는 Ekko 작업을 고정 2분 뒤 중단하지 않습니다(#2354, #2357)",new_0_6_39_5:"Codex가 복구 가능한 Provider 프록시 연결 끊김에도 네이티브 JSONL과 프로세스 종료를 최종 상태로 사용해 완료된 작업이 Group Chat 실패로 잘못 표시되지 않습니다(#2375)",new_0_6_39_6:"버전 관리가 Runtime 완전성을 확인하고 데스크톱 폴백 이유를 표시합니다. 잘못된 Runtime은 활성화할 수 없으며 Web UI 업데이트가 데스크톱 설치 프로그램으로 제공되므로 다운로드와 전환 UI는 숨겨졌습니다(#2353)",new_0_6_39_7:"Group Chat 실행 헤더가 Agent 이름만 표시해 반복 설명을 없애고 메시지 그룹을 더 간결하게 보여 줍니다(#2352)",new_0_6_39_8:"ESP32-C3 원격 연결이 장치 검색 중에도 Socket.IO를 유지하고 제한된 음성 버퍼를 재사용하며 백오프로 재연결하고 Studio의 일시적 연결 끊김에도 로그인을 보존해 원격 검색과 음성 대화가 더 빠르고 안정적입니다(#2383)",new_0_6_38_1:"Windows 데스크톱 시작 시 Agent 업데이트가 캐시된 Hermes Runtime 환경에 남긴 잘못된 Python 상대 경로를 자동 복구해 업데이트, Runtime 전환 또는 저장소 마이그레이션 후 CLI, 로그와 Gateway를 정상화합니다",new_0_6_38_2:"웹사이트 호환 버전 목록이 Hermes 0.19.0을 다시 인식해 해당 데스크톱 다운로드와 호환성 검사를 계속 사용할 수 있습니다(#2348)",new_0_6_37_1:"14개 PR을 담은 이번 릴리스의 핵심은 Group Chat 전면 재구축입니다. 각 Agent가 Profile, Provider, 모델, API 모드, 추론 강도, 정체성과 workspace를 독립적으로 선택할 수 있습니다(#2334)",new_0_6_37_2:"Group Chat은 매번 새로 격리된 실행을 시작하고 각 답변을 reasoning 및 도구 과정과 함께 묶어 표시합니다. 공유 편집형 롤링 요약, 상태와 경계, Agent mention, 방/workspace drawer 및 이전 방 마이그레이션 안내도 추가했습니다. 음성 자동 재생은 서로 다른 Profile의 TTS를 미리 생성하고 같은 Profile의 합성은 단일 동시 실행으로 제한한 뒤 FIFO로 재생하므로 새 답변이 재생 중인 음성을 덮어쓰지 않습니다(#2334)",new_0_6_37_3:"MiniMax Coding Plan OAuth가 Global 및 중국 리전을 지원하며 Codex, xAI, Anthropic, Nous, MiniMax 인증 정보는 영구 Runtime Bridge를 통해 자동 갱신됩니다(#2337)",new_0_6_37_4:"ESP32-C3 v1/v2에 로컬 VAD, 프리롤 오디오, 무음 종료 및 재생 억제를 갖춘 선택형 자동 듣기 모드를 추가하고 기존 푸시투토크 조작을 유지했습니다(#2338)",new_0_6_37_5:"MCU Global Agent는 간결한 Ekko 음성 모드를 사용하고 안전한 백그라운드 작업을 위임할 수 있습니다. 세션 기록과 workspace를 보존하며 큰 도구 결과를 장치로 전달하지 않습니다(#2326)",new_0_6_37_6:"Custom 및 OpenAI 호환 TTS가 Provider 지원 오디오 형식으로 자동 재시도하고 MP3가 아닌 출력을 Hermes 재생용으로 변환합니다(#2328)",new_0_6_37_7:"Profile 가져오기와 내보내기는 최대 10분 동안 실행되며 명확한 시간 초과 오류, 동시 아카이브 격리, 파일명 정리 및 임시 파일 삭제를 지원합니다(#2310, #2324)",new_0_6_37_8:"Hermes Agent Bridge가 모델별 기본 추론 강도를 적용하면서 실행별 명시적 재정의와 이전 Runtime 폴백을 유지합니다(#2325)",new_0_6_37_9:"버전 관리가 실제 설치된 Hermes Agent 버전과 Runtime 경로를 별도로 표시하고 CLI 업데이트 범위와 Studio 완전 종료 요구 사항을 명확히 안내합니다(#2323)",new_0_6_37_10:"Workspace 파일 트리의 들여쓰기를 줄여 깊게 중첩된 이름도 잘 보이도록 했습니다(#2340)",new_0_6_37_11:"데스크톱 기본값을 Hermes Agent 0.20.0으로 올리고 고정 소스와 휴대용 Node/npm을 사용합니다. Windows 업데이트 후 재생성된 런처, 시스템 Python 없는 업데이트와 숨겨진 관리 Gateway를 지원합니다(#2321, #2344)",new_0_6_37_12:"Windows Runtime 저장소 마이그레이션이 관리자 권한 없이 업데이트 생성 링크를 처리하고 Python 경로를 재설정하며 Unicode 사용자 경로를 지원하고 첫 재시작에서 CLI/MCP shim을 갱신합니다(#2345)",new_0_6_37_13:"macOS 데스크톱 서명은 명시적 임시 keychain을 사용해 두 아키텍처 모두 macOS 26 runner의 엄격 모드와 호환됩니다(#2315)",new_0_6_36_1:"이번 릴리스에는 0.6.35 이후 병합된 28개 PR이 모두 포함되며 음성, 아랍어와 RTL, App Relay, Agent 안정성, 채팅 UX, Kanban, Journey, MCU 자막 및 Ekko 요청 로그를 개선합니다",new_0_6_36_2:"음성 설정을 모델 화면에서 Hermes 네이티브 및 Web UI Provider용으로 통합했습니다. Custom TTS는 음성 선택을, Edge TTS는 임의의 Voice ID와 아랍어 옵션을 지원합니다(#2260, #2265, #2267)",new_0_6_36_3:"아랍어와 종단 간 RTL 지원이 문서 흐름, Naive UI, 채팅, 그룹 채팅, Workflow, 오버레이, 드로어, 블록별 텍스트 방향 및 수정된 Profile 문구까지 확장되었습니다(#2269, #2270, #2271, #2273, #2277, #2294, #2303)",new_0_6_36_4:"활성 백그라운드 위임은 작업이 끝날 때까지 Agent Bridge 세션을 유지하여 유휴 정리가 장시간 작업을 중단하지 않도록 합니다(#2254)",new_0_6_36_5:"데스크톱 그룹 채팅 Agent 목록을 다시 클릭할 수 있으며, 메인 창을 모바일 레이아웃으로 전환하지 않고 769px까지 줄일 수 있습니다(#2259, #2263)",new_0_6_36_6:"Codex, Claude Code 및 Ekko의 workspace diff는 실시간, 복원 및 그룹 채팅에서 이를 생성한 정확한 어시스턴트 메시지에만 표시됩니다(#2264)",new_0_6_36_7:"영문 및 중문 README를 현재 제품과 CLI에 맞게 업데이트하고 웹사이트에서 버전 0.6.12에 고정된 오래된 매뉴얼을 제거했습니다(#2268)",new_0_6_36_8:"독립형 헤드리스 App Relay는 Studio를 직접 노출하지 않고 안전한 페어링과 인증된 원격 접근으로 허용된 로컬 API 및 채팅 스트리밍을 제공합니다(#2275)",new_0_6_36_9:"Desktop Agent Browser는 긴 접근성 텍스트를 안전하게 페이지 단위로 읽고 snapshot 참조가 보이는 텍스트를 가리키는 컨트롤을 작동할 수 있습니다(#2278)",new_0_6_36_10:"채팅에 고정 Provider 컨트롤, 메시지 기반 스크롤 복원, 컴팩트한 도구 및 터미널 레일, 전체 크기 미리보기와 전체 너비 workspace diff가 추가되었습니다(#2279, #2282, #2283, #2293)",new_0_6_36_11:"새 Ekko 세션에는 Profile별로 격리된 기본 workspace가 제공되며 기존 또는 명시적으로 선택한 workspace는 변경되지 않습니다(#2289)",new_0_6_36_12:"Memory와 Skill 승인 결과를 구조화하고 직렬화하여 잘못된 성공 메시지와 동일 Profile 내 동시 쓰기를 방지합니다(#2295)",new_0_6_36_13:"Kanban은 안정적인 작업 보관과 이동 가능한 보드를 제공하고, Journey는 간결하고 결정적인 Memory-to-Skill 관계 지도로 새로워졌습니다(#2296, #2297)",new_0_6_36_14:"실시간 reasoning이 도구 경계에서도 안정적으로 유지되고 올바른 메시지 또는 도구에 복원되며 빈 하위 Agent 말풍선을 더 이상 만들지 않습니다(#2299)",new_0_6_36_15:"MCU 음성은 ESP32-C3 v1 및 v2에서 오디오 재생을 방해하지 않고 동기화된 페이지형 GB2312 자막을 표시합니다(#2305)",new_0_6_36_16:"Ekko는 컨텍스트 압축을 포함해 모델 시도마다 하나의 간결한 model.request 로그를 기록하고 도구가 없으면 tool_choice를 생략합니다(#2311)",new_0_6_35_1:"Ekko Agent 영구 메모리가 프로덕션에서 활성화되었습니다. 프로필별로 격리된 SQLite 저장소, 4,000토큰 자동 회상 예산, 전체 메모리 관련성 검색 개선 및 더 안전한 모델 요청 처리를 제공합니다(#2246)",new_0_6_34_1:"이번 릴리스에는 0.6.33 이후 병합된 21개 PR이 모두 포함되며 사용자별 테마, Ekko와 Coding Agent 개선, 데스크톱과 브라우저, 자동화 및 안정성 수정을 제공합니다",new_0_6_34_2:"글자 크기, 텍스트와 강조 색상, workspace 배경을 계정별로 설정하고 모든 화면에서 일관된 반투명 테마를 사용할 수 있습니다. Windows 창과 브라우저 설정도 테마를 따르며 Ekko 브라우저 명령이 Windows에서 정상적으로 실행됩니다(#2242, #2243, #2244)",new_0_6_34_3:"Ekko를 프로덕션에서 사용할 수 있고 필요할 때 Skill을 탐색하며 멀티모달 입력을 처리합니다. 보호된 Skill 진화, Profile별 로그, 프로토콜 유지 및 Responses 추론 요약으로 안전성과 기능도 향상됩니다(#2215, #2236)",new_0_6_34_4:"Ekko 메모리에 선호도, 관계, 습관, 장기 목표 등을 정확히 조회하는 구조화 Kind가 추가되었으며 긴 대화는 공유 스냅샷 기반 컨텍스트 압축 수명 주기를 사용합니다(#2229, #2230)",new_0_6_34_5:"Coding Agent는 Codex, Claude Code 및 범위가 지정된 Provider 프로토콜 사이에서 이미지 입력을 보존하고, 지나치게 큰 Responses 도구 출력을 잘라내며, 런타임 설정과 지연 이벤트를 세션별로 격리합니다(#2222, #2232, #2238)",new_0_6_34_6:"Hermes Workflow 기능 검사는 API 모드 메타데이터가 없는 유효한 대상을 더 이상 거부하지 않습니다. Kanban은 Hermes Agent 0.19 작업 동작과 첨부 미리보기에 맞춰졌고 Cron 즉시 실행은 강화된 생성 검증과 함께 안전하게 백그라운드에서 시작됩니다(#2239, #2216, #2228)",new_0_6_34_7:"데스크톱에 집중형 독립 채팅 창이 추가되고 브라우저 자동화가 비밀번호, 결제 및 파일 입력을 조작할 수 있습니다. Group Chat의 사용자 이름과 설명도 방마다 독립적으로 유지됩니다(#2209, #2210, #2212)",new_0_6_34_8:"세션별 /yolo 명령으로 승인 우회를 전환하고 Agent 최대 턴 수의 UI 200회 제한을 제거했습니다. Markdown은 ASCII 직선 따옴표를 보존하며 pt-BR 카탈로그의 누락된 발음 구별 부호도 복원했습니다(#2223, #2225, #2234, #2221)",new_0_6_34_9:"ESP32-C3에 설정 가능한 연결 대기 모드가 추가되어 Wi-Fi, 로그인, Profile 및 Socket.IO 상태를 유지하면서 유휴 전력을 줄이고 즉시 깨우기와 영구 타임아웃 설정을 지원합니다(#2218)",new_0_6_33_1:"이번 릴리스에는 0.6.32 이후 병합된 16개 PR이 모두 포함되며 데스크톱 Agent Browser, Workflow 실행 근거와 제한 시간, 파일과 채팅 상호작용, Provider 모델 새로 고침 및 안정성을 개선합니다",new_0_6_33_2:"데스크톱에 표시 가능한 다중 탭 Agent Browser를 추가해 격리된 Profile, 프록시·저장소·다운로드 관리, 암호화된 쿠키 유지, 보호된 Agent 작업, 지연 MCP 도구 탐색을 지원합니다(#2177, #2182)",new_0_6_33_3:"개인·그룹 채팅 링크와 인증된 HTML 미리보기를 내장 브라우저에서 열 수 있으며 권한 작업 간격, 크로스플랫폼 탐색 아이콘, Windows 사이드바와 제목 표시줄 연동도 개선했습니다(#2191, #2194, #2198)",new_0_6_33_4:"Workflow Run은 시작 시점의 변경 불가능한 시각 스냅샷을 보존하고 Run/Rerun 전체 제한 시간과 경과·남은 시간 근거를 표시하며, 기록과 상세 화면은 실제 소비 경로를 반영한 페이지 방식으로 제공됩니다(#2171, #2173, #2180)",new_0_6_33_5:"임의의 파일을 개인·그룹 채팅에 바로 붙여넣거나 workspace 우클릭 메뉴에서 첨부할 수 있으며, 간결해진 메타데이터 열이 파일 이름에 더 많은 공간을 제공합니다(#2175, #2176)",new_0_6_33_6:"설정된 각 Provider에서 모델 목록을 개별 새로 고침하고 삭제 확인, 사용할 수 없는 기본 모델 유지, 1회 복원을 수행할 수 있습니다. OAuth Provider, 전체 언어 및 폼 자동 완성 동작도 지원합니다(#2115)",new_0_6_33_7:"중단·일시정지 상태를 채팅 세션별로 격리해 백그라운드 대화가 현재 중지 버튼에 영향을 주지 않으며, 데스크톱의 선택 텍스트와 입력란에는 네이티브 우클릭 작업도 추가했습니다(#2203, #2204)",new_0_6_33_8:"데스크톱 종료·업데이트·설치는 시간 제한이 있는 정상 종료를 사용하고 정리 기한이 지난 뒤에만 남은 Agent Bridge, MCP, 브라우저 및 Web UI 프로세스 트리를 강제 종료합니다(#2193)",new_0_6_33_9:"MCU 음성 세션은 포그라운드와 백그라운드 결과를 격리하며, MiniMax 호환 MCP 도구 이름은 기존 호출자를 깨뜨리지 않고 Provider 길이 제한을 지킵니다(#2181, #2169)",new_0_6_32_1:"이번 릴리스에는 0.6.31 이후 병합된 14개 PR이 모두 포함되며 세션 구성과 압축, 그룹 채팅, Workflow 라우팅, Skill Bundle, Ekko 메모리, Hermes 0.19 및 데스크톱 창 UI를 개선합니다",new_0_6_32_2:"그룹 채팅 {'@'}멘션이 CJK 텍스트, 이모지, 문장 부호 뒤에서도 작동하며 방 소유자는 설정에서 초대 코드를 확인하고 생성하거나 교체할 수 있습니다(#2133, #2141)",new_0_6_32_3:"Workflow는 핸드오프와 재연결 과정에서도 각 Hermes Bridge 실행 출처를 보존하며 범위가 지정된 Codex 및 Claude Code 노드는 유효한 API Key 대상에 launcher 지원 프로토콜을 사용할 수 있습니다(#2137, #2154)",new_0_6_32_4:"세션에 전역 카테고리, Markdown을 인식하는 더 정확한 검색 순위, 편집·분기·동시 실행에서도 정확성을 유지하며 기록을 제한하는 커서 기반 압축이 추가되었고 전체 압축 설계도 문서화되었습니다(#2139, #2143, #2145, #2146)",new_0_6_32_5:"Profile 범위 Skill Bundle을 채팅에서 직접 만들고 탐색하고 실행하고 삭제할 수 있으며 포함된 Skill도 명확히 확인할 수 있습니다(#2156)",new_0_6_32_6:"Ekko 메모리는 Profile별로 격리된 단일 표준 모델을 사용하며 revision 검증 변경, 강화된 출처 감사, 더 엄격한 관련성 필터링을 지원합니다(#2159)",new_0_6_32_7:"Hermes 0.19의 어시스턴트 중간 메시지가 별도 말풍선으로 스트리밍 및 저장되며 일반 1:1 채팅은 백그라운드 위임의 영구 결과를 비동기로 전달받을 수 있습니다(#2160)",new_0_6_32_8:"새 데스크톱 Runtime 빌드, 대체 경로 및 Windows CLI shim은 이제 Hermes Agent 0.19.0을 기본으로 사용합니다(#2161)",new_0_6_32_9:"데스크톱 창 컨트롤을 페이지 UI에 통합하여 macOS 신호등 버튼은 사이드바에, Windows 컨트롤은 메인 콘텐츠 위에 배치하고 Linux는 기본 창 장식을 유지합니다(#2162)",new_0_6_32_10:"개발자 문서는 이제 현재 checkout과 선택적인 격리 Git worktree 방식을 모두 지원합니다(#2155)"}};export{e as default};
1
+ var e={browser:{title:"브라우저",settings:"브라우저 설정",desktopOnly:"내장 브라우저는 Hermes Studio Desktop에서만 사용할 수 있습니다.",newTab:"새 탭",back:"뒤로",forward:"앞으로",reload:"새로고침",stop:"중지",addressPlaceholder:"검색 또는 주소 입력",selectElement:"요소 선택",selectRegion:"영역 선택",annotationPlaceholder:"Agent가 확인하거나 변경할 내용을 입력하세요…",selectionData:"브라우저 선택 데이터",annotationAdded:"스크린샷을 채팅 입력창에 추가했습니다",annotationCount:"주석 {count}개",annotationLabel:"주석 {index}",clearAnnotations:"주석 지우기",finishAnnotation:"완료",agent:"Agent",agentControlling:"{agent}가 이 탭을 제어 중",agentWaiting:"{agent}가 확인을 기다리는 중",takeOver:"제어권 가져오기",tabCrashed:"이 탭이 비정상 종료되었습니다.",recoverTab:"탭 새로고침",profiles:"프로필",profileName:"프로필 이름",addProfile:"프로필 추가",currentProfile:"활성 프로필",switchProfile:"프로필 전환",editProfile:"프로필 편집",profileDirectory:"프로필 데이터 경로",downloadDirectory:"다운로드 경로",profileRootDirectory:"프로필 루트 경로",chooseProfileRootDirectory:"빈 경로 선택",profileRootDirectoryHint:"빈 경로를 선택하세요. 데이터는 {data}, 다운로드는 {download}를 사용합니다.",proxy:"프록시",proxyMode:"프록시 모드",proxyDirect:"직접 연결",proxySystem:"시스템 프록시",proxyCustom:"사용자 지정 프록시",proxyServer:"프록시 서버",proxyServerPlaceholder:"예: http://127.0.0.1:7890 또는 socks5://127.0.0.1:1080",askBeforeDownload:"저장 위치 항상 묻기",downloadConflictPolicy:"중복 파일 이름",uniquifyDownloads:"고유 이름 만들기",askOnConflict:"파일이 있으면 묻기",downloads:"다운로드",downloadStateProgressing:"다운로드 중",downloadStateCompleted:"완료됨",downloadStateCancelled:"취소됨",downloadStateInterrupted:"중단됨",downloadStateBlocked:"차단됨",permissions:"권한",permissionsHint:"원격 페이지 권한은 기본적으로 거부되며 감사용으로 표시됩니다.",blocked:"차단됨",profileSwitchTitle:"프로필을 전환할까요?",profileSwitchWarning:"Agent 작업 {agents}개, 다운로드 {downloads}개, 주석 {annotations}개가 중단될 수 있습니다.",deleteProfileTitle:"프로필을 삭제할까요?",deleteProfileWarning:"관리 데이터는 휴지통으로 이동하며 사용자 지정 경로는 유지됩니다.",clearCache:"캐시 지우기",clearPermissionAudit:"권한 기록 지우기",clearSiteData:"사이트 데이터 지우기",clearSiteDataWarning:"선택한 프로필의 로그인, 쿠키 및 로컬 저장소를 지웁니다.",dataCleared:"브라우저 데이터를 지웠습니다",loadFailed:"내장 브라우저를 시작하지 못했습니다"},kanban:{board:{defaultArchiveUnavailable:"기본 칸반은 보관할 수 없습니다"},action:{archive:"작업 보관",archiveConfirm:"완료된 이 작업을 보관하시겠습니까?"},message:{taskArchived:"작업이 보관되었습니다"}},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 형식 오류",invalidYaml:"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:"터미널",browser:"브라우저",singleChat:"채팅",globalAgent:"Global Agent",files:"파일",devices:"기기",groupChat:"그룹 채팅",groupConversation:"대화",groupConversationShort:"대화",groupAgent:"에이전트",groupAgentShort:"에전",groupSystem:"시스템",groupSystemShort:"시스템",groupMonitoring:"모니터링",groupMonitoringShort:"모니터",theme:"테마",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",currentHermesAgentVersion:"현재 Hermes Agent 버전",activeRuntimeDirectory:"현재 Runtime 경로",cliUpdateDescription:"Hermes Runtime 0.19.1 이상에서는 다음 명령으로 내장 Hermes Agent만 업데이트할 수 있습니다. Hermes Studio 데스크톱 앱이나 Web UI는 업데이트되지 않습니다. 실행 전에 Hermes Studio를 완전히 종료하세요:",webUiTitle:"Web UI",platform:"플랫폼",currentWebUi:"현재 Web UI",activeVersion:"활성 버전",runtimeDirectory:"Runtime 저장 디렉터리",chooseRuntimeDirectory:"디렉터리 선택",resetRuntimeDirectory:"시스템 기본값 사용",runtimeDirectoryHint:"다음 재시작 시 로컬 서비스 시작 전에 현재 Runtime을 복사하고 검증합니다. 이전 저장소는 유지되며 이후 Runtime 다운로드도 여기에 저장됩니다.",runtimeDirectorySaved:"Runtime 마이그레이션을 예약했습니다. Hermes Studio를 다시 시작하면 실행됩니다.",runtimeMigrationPending:"마이그레이션 예정 위치: {directory}",runtimeMigrationFailed:"저장소 마이그레이션에 실패하여 이전 저장소를 계속 사용합니다",runtimeActivationFailed:"선택한 Runtime을 시작할 수 없어 Hermes Studio가 설치된 다른 버전을 사용했습니다",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 optional",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 URL",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:"대화 개요",outlineEmpty:"대화 내용이 없습니다",outlineUserQuestion:"사용자 질문",inputPlaceholder:"메시지를 입력하세요... (Enter로 전송, Shift+Enter로 줄바꿈)",inputHeightResizeHint:"드래그해서 채팅 입력창 높이를 바꾸고, 더블클릭하면 자동 높이로 돌아갑니다.",slashCommandArgs:{message:"<메시지>",title:"<제목>",text:"<텍스트>"},slashCommands:{usage:"현재 세션 사용량 계산",status:"세션 상태와 대기열 표시",yolo:"세션 YOLO 모드를 전환하고 위험한 명령 승인을 건너뛰기",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:"스킬 명령 다시 로드",bundles:"스킬 번들 보기",bundlesCreate:"스킬 번들 만들기"},bundlePicker:{title:"스킬 번들",create:"번들 만들기",searchPlaceholder:"번들 검색...",skillCount:"스킬 {count}개",skillsLabel:"스킬",noSkills:"설정된 스킬 없음",deleteBundle:"{name} 삭제",deleteTitle:"번들 삭제",deleteConfirm:"이 프로필에서 “{name}”을 삭제할까요? 되돌릴 수 없습니다.",deleteFailed:"번들을 삭제하지 못했습니다",deleted:"번들을 삭제했습니다",noBundles:"아직 번들이 없습니다. 여러 스킬을 묶어 만들어 보세요.",noMatch:"일치하는 번들이 없습니다"},bundleCreator:{title:"스킬 번들 만들기",name:"이름",namePlaceholder:"예: PR Review Team",nameHint:"영문자, 숫자, 공백, 하이픈 또는 밑줄만 사용할 수 있습니다.",description:"설명",descriptionPlaceholder:"이 번들을 어떤 작업에 사용할까요?",skills:"스킬",skillsPlaceholder:"하나 이상의 스킬 선택",nameRequired:"번들 이름을 입력하세요",nameInvalid:"영문자가 하나 이상 포함된 영어 이름을 입력하세요",skillsRequired:"스킬을 하나 이상 선택하세요",skillsLoadFailed:"스킬을 불러오지 못했습니다",createFailed:"번들을 만들지 못했습니다",created:"번들을 만들었습니다"},attachFiles:"파일 첨부",reasoningEffort:{tooltip:"추론 노력",defaultLabel:"기본값",options:{default:"기본값 (config.yaml)",none:"없음",minimal:"최소",low:"낮음",medium:"중간",high:"높음",max:"Max",xhigh:"매우 높음",ultra:"울트라"}},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:"세션 없음",recent:"최근",recentCount:"최근 세션 수",loadMoreSessions:"세션 더 불러오기",newChat:"새 채팅",category:"카테고리",uncategorized:"미분류",categoryPlaceholder:"카테고리 선택 또는 만들기",categoryCreateHint:"이름을 입력하고 Enter 키를 눌러 만드세요.",categoryCreated:'카테고리 "{name}" 생성됨',categoryCreateFailed:"카테고리를 만들지 못했습니다",categoryLoadFailed:"카테고리를 불러오지 못했습니다",moveToCategory:"카테고리로 이동",categoryUpdated:"카테고리가 업데이트되었습니다",categoryUpdateFailed:"카테고리를 업데이트하지 못했습니다",renameCategory:"카테고리 이름 변경",deleteCategory:"카테고리 삭제",enterCategoryName:"카테고리 이름 입력",confirmDeleteCategory:"“{name}”을(를) 삭제할까요? 세션은 미분류로 이동합니다.",categoryRenamed:"카테고리 이름이 변경되었습니다",categoryRenameFailed:"카테고리 이름을 변경하지 못했습니다",categoryDeleted:"카테고리가 삭제되었습니다",categoryDeleteFailed:"카테고리를 삭제하지 못했습니다",agent:"Agent",approvalKicker:"도구 권한",toolResultUnavailable:"실행이 중단되어 도구 결과를 받지 못했습니다",approvalCommand:"실행할 명령",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:"새 탭에서 열기",openSessionInNewWindow:"새 창에서 열기",sessionLinkCopied:"Session link copied",copySessionId:"세션 ID 복사",export:"내보내기",editConfig:"구성 편집",exportFull:"전체 내보내기 (JSON)",exportCompressed:"압축 내보내기 (TXT)",exportCompressing:"컨텍스트 압축 중, 잠시 기다려주세요...",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:"Workspace 폴더가 없습니다",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:"스케줄을 입력해 주세요",promptRequired:"프롬프트를 입력해 주세요",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:"파일을 불러오지 못했습니다",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} 비활성화됨",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:"모델 캐시 새로고침 실패",refreshModels:"모델 새로고침",restoreModels:"이전 모델 목록 복원",refreshModelsConfirmTitle:"모델 목록 변경 확인",refreshModelsConfirmContent:"이 새로고침은 모델 {removed}개를 제거하고 {added}개를 추가합니다. 제거 대상: {removedList}",refreshModelsConfirmAction:"모델 목록 교체",refreshModelsSuccess:"모델 목록을 업데이트했습니다(총 {count}개, 사용 불가 {unavailable}개)",refreshModelsFailed:"Provider 모델 새로고침 실패",restoreModelsSuccess:"이전 모델 목록을 복원했습니다(총 {count}개)",restoreModelsFailed:"이전 모델 목록 복원 실패",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가 비활성화되었습니다",defaultProviderUpdated:"기본 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 프리셋을 설정합니다. 참조 모델이 먼저 관점을 제공하고, 이후 하나의 집계 모델이 최종 응답과 도구 호출을 처리합니다.",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:"인증이 만료되었습니다. 다시 시도하세요.",minimaxLoginTitle:"MiniMax Coding Plan 로그인",minimaxRegionHint:"Coding Plan 계정의 MiniMax 지역을 선택하세요.",minimaxGlobal:"글로벌",minimaxChina:"중국",minimaxStart:"인증 시작",minimaxWaiting:"MiniMax 인증 페이지를 열고 이 코드를 입력하세요. 승인되면 창이 자동으로 닫힙니다.",minimaxOpenLink:"MiniMax 인증 페이지 열기",minimaxApproved:"로그인 성공!",minimaxExpired:"인증이 만료되었습니다. 다시 시도하세요.",visibilitySelectOne:"최소 하나의 표시 모델을 유지하세요",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:"프로필 내보내기 실패",exportTimeout:"내보내기 시간이 초과되었습니다. 이 프로필이 너무 큽니다 — 보통 workspace 아래의 캐시와 가상 환경이 원인입니다.",importTimeout:"서버에서 아카이브를 푸는 동안 가져오기 시간이 초과되었습니다. 더 빠른 저장소에서 다시 시도하거나 Hermes CLI로 가져오세요.",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:"활성",activeTag:"현재",idle:"대기 중",checking:"확인 중",running:"실행 중",stopped:"중지됨",restartGateway:"Gateway 재시작",restartProfile:"프로필 재시작",switchProfile:"프론트엔드 프로필 전환",gatewayRestarted:"Gateway가 재시작되었습니다: {name}",gatewayRestartFailed:"Gateway 재시작 실패",profileRestarted:"프로필이 재시작되었습니다: {name}",profileRestartFailed:"프로필 재시작 실패"}},logs:{title:"로그",all:"전체",searchPlaceholder:"검색...",refresh:"새로고침",noEntries:"로그 항목 없음"},theme:{title:"테마",saved:"테마가 저장되었습니다",saveFailed:"테마를 저장하지 못했습니다",reset:"기본값 복원",resetSuccess:"기본 테마를 복원했습니다",appearance:"모양",appearanceHint:"변경 사항이 전체 인터페이스에 실시간으로 표시됩니다",mode:"밝기",modeHint:"밝은 또는 어두운 색상표 선택",modeSystem:"시스템 설정",modeLight:"라이트",modeDark:"다크",style:"스타일",styleHint:"인터페이스 분위기 선택",styleInk:"수묵",styleComic:"코믹",fontSize:"텍스트 크기",fontSizeHint:"인터페이스와 대화의 기본 텍스트 크기",textColor:"텍스트 색상",textColorHint:"보조 텍스트 색상은 자동으로 생성됩니다",accentColor:"선택 색상",accentColorHint:"활성 항목, 선택 영역 및 기본 버튼에 사용",background:"배경 이미지",backgroundHint:"개인 작업 공간 배경 업로드",backgroundTypeError:"PNG, JPEG, WebP 또는 GIF 이미지를 사용하세요",backgroundSizeError:"배경 이미지는 10 MB 이하여야 합니다",backgroundUploaded:"배경 이미지가 업데이트되었습니다",backgroundUploadFailed:"배경 이미지를 업로드하지 못했습니다",backgroundRemoved:"배경 이미지가 제거되었습니다",backgroundRemoveFailed:"배경 이미지를 제거하지 못했습니다",backgroundReplace:"이미지 변경",backgroundUpload:"이미지 업로드",backgroundRemove:"제거",backgroundEmpty:"배경 이미지 없음",backgroundNote:"이미지는 계정에 저장되며 로컬 캐시로 로딩 시 깜박임을 방지합니다.",preview:"미리 보기",previewTitle:"나만의 작업 공간과 분위기",previewText:"텍스트와 선택 색상이 전체 인터페이스에 적용됩니다.",previewAction:"선택된 작업"},settings:{title:"설정",saved:"저장됨",saveFailed:"저장 실패",tabs:{display:"표시",account:"현재 계정",users:"계정 관리",webhooks:"웹훅",agent:"에이전트",proxy:"프록시",memory:"메모리",compression:"압축",session:"세션",privacy:"개인정보",apiServer:"API 서버",models:"모델",voice:"음성"},webhooks:{title:"웹훅",description:"채팅 실행을 차단하지 않고 Chat Run 수명 주기 이벤트를 외부 시스템으로 전송합니다.",deliveryNote:"전송에는 크기가 제한된 메모리 큐를 사용합니다. 엔드포인트는 병렬로 처리되며 동일한 엔드포인트에서는 이벤트 순서를 유지합니다. 서버를 다시 시작하면 대기 중인 전송은 유지되지 않습니다.",createTitle:"웹훅 추가",editTitle:"웹훅 편집",allProfiles:"모든 프로필",queued:"{count}개 대기 중",deleteConfirm:"이 웹훅을 삭제할까요? 대기 중인 전송도 함께 삭제됩니다.",localInboxTitle:"로컬 테스트 수신함",localInboxDescription:"내장 테스트 수신기가 최근 받은 이벤트 {count}개입니다. 메모리에만 보관되며 서버를 재시작하면 삭제됩니다.",localInboxEmpty:"아직 받은 로컬 테스트 이벤트가 없습니다.",localInboxPayloadTitle:"수신한 웹훅 페이로드",clearInboxConfirm:"로컬 테스트 수신함의 모든 이벤트를 지울까요?",columns:{name:"이름",url:"URL",events:"이벤트",profiles:"프로필",status:"상태",actions:"작업",receivedAt:"수신 시간",event:"이벤트",eventId:"이벤트 ID",deliveryId:"전송 ID"},events:{messageCreated:"사용자 메시지 생성됨",runQueued:"실행 대기열 추가됨",runStarted:"실행 시작됨",toolStarted:"도구 시작됨",toolCompleted:"도구 완료됨",toolFailed:"도구 실패",approvalRequested:"승인 요청됨",approvalResolved:"승인 처리됨",clarificationRequested:"확인 요청됨",clarificationResolved:"확인 처리됨",completed:"실행 완료",failed:"실행 실패"},status:{enabled:"활성화됨",disabled:"비활성화됨"},runtime:{idle:"대기",delivering:"전송 중",retrying:"재시도 대기",success:"전송됨",failed:"실패",dropped:"삭제됨"},actions:{add:"웹훅 추가",localTest:"로컬 테스트 수신기 사용",test:"테스트",enable:"활성화",disable:"비활성화",refresh:"새로고침",clear:"지우기",view:"보기"},form:{name:"이름",localTestName:"로컬 웹훅 테스트",namePlaceholder:"예: 운영 알림",url:"엔드포인트 URL",secret:"서명 시크릿",secretPlaceholder:"선택 사항인 HMAC-SHA256 서명 시크릿",secretKeepPlaceholder:"현재 시크릿을 유지하려면 비워 두세요",clearSecret:"저장된 시크릿 삭제",events:"이벤트",profiles:"프로필",profilesPlaceholder:"모든 프로필을 받으려면 비워 두세요",maxRetries:"첫 실패 후 재시도 횟수(0~10)",includeContent:"어시스턴트의 최종 텍스트 포함",includeContentHint:"최종 답변에 민감한 정보가 포함될 수 있습니다. 추론, 시스템 프롬프트, 도구 인수는 전송되지 않습니다.",includeUserContent:"사용자 메시지 텍스트 포함",includeUserContentHint:"사용자 메시지에는 민감한 정보가 포함될 수 있습니다. 기본적으로 비활성화되며 시스템 프롬프트, 추론, 도구 인수 및 결과는 포함되지 않습니다.",allowPrivateNetwork:"사설 또는 로컬 네트워크 주소 허용",allowPrivateNetworkHint:"신뢰할 수 있는 내부 엔드포인트에만 활성화하세요. 전송할 때마다 DNS를 다시 확인합니다.",enabled:"활성화"},messages:{required:"이름과 URL은 필수입니다",eventRequired:"이벤트를 하나 이상 선택하세요",loadFailed:"웹훅을 불러오지 못했습니다",saved:"웹훅이 저장되었습니다",saveFailed:"웹훅을 저장하지 못했습니다",deleted:"웹훅이 삭제되었습니다",deleteFailed:"웹훅을 삭제하지 못했습니다",testSucceeded:"테스트 웹훅이 전송되었습니다",testFailed:"테스트 웹훅 전송에 실패했습니다",localTestFailed:"로컬 테스트 수신기를 만들지 못했습니다",inboxLoadFailed:"로컬 테스트 이벤트를 불러오지 못했습니다",inboxCleared:"로컬 테스트 이벤트를 지웠습니다",inboxClearFailed:"로컬 테스트 이벤트를 지우지 못했습니다"}},display:{streaming:"스트리밍 응답",streamingHint:"AI 응답을 실시간으로 표시",compact:"컴팩트 모드",compactHint:"메시지 간격 줄이기",showReasoning:"추론 과정 표시",showReasoningHint:"모델의 생각 과정 표시",showCost:"비용 표시",showCostHint:"응답에 토큰 사용량 표시",inlineDiffs:"인라인 변경사항",inlineDiffsHint:"코드 변경사항을 인라인으로 표시",bellOnComplete:"완료 알림음",bellOnCompleteHint:"AI 응답 완료 시 알림음 재생",notifyOnComplete:"완료 알림",notifyOnApproval:"Approval Desktop Notification",notifyOnApprovalHint:"Show a system notification when a new approval or clarification needs attention while Studio is in the background",notifyOnApprovalTest:"Approval desktop notifications are enabled.",notifyOnApprovalTestButton:"Test",notifyOnApprovalTestSent:"Approval notification sent",notifyOnApprovalTestFailed:"Failed to send approval notification",approvalNotificationTitle:"Approval required",approvalNotificationClarifyTitle:"Clarification required",approvalNotificationBody:"Open Hermes Studio to review and respond.",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:"도구 호출 실행 모드 제어",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:"민감 정보 자동 감지 및 숨김 (비밀번호, 키 등)"},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:"마이크와 음성 입력 흐름에서 사용하는 음성 텍스트 변환 연동을 관리합니다.",localSttModelTitle:"로컬 중영 STT",localSttModelDescription:"오디오를 클라우드에 올리지 않고 이 기기에서 인식합니다.",localSttModelUnavailable:"로컬 STT 모델을 다운로드하고 검증한 뒤 활성화하세요.",localSttModelReady:"사용 가능",localSttModelDownloading:"다운로드 중",localSttModelNotInstalled:"설치되지 않음",localSttLanguages:"언어",localSttLanguagesValue:"중국어 + 영어",localSttDownloadSize:"다운로드 크기",localSttRuntime:"런타임",localSttDownloadCf:"Cloudflare 다운로드",localSttDownloadGithub:"GitHub 다운로드",localSttBackgroundHint:"다운로드, 체크섬 확인, 압축 해제 및 모델 검증은 백그라운드에서 실행됩니다.",localSttDownloadFailed:"로컬 STT 모델 다운로드 실패: {error}",localSttStage:{queued:"다운로드 대기 중…",resolve:"다운로드 준비 중…",download:"모델 다운로드 중…",verify:"체크섬 확인 중…",extract:"모델 압축 해제 중…",validate:"모델 검증 중…",install:"모델 설치 중…",completed:"모델 사용 가능",failed:"다운로드 실패"},hermesConfigTitle:"Hermes Agent 설정",hermesConfigDescription:"Hermes 프로필의 기존 네이티브 제공자는 유지되며 Web UI 제공자는 Hermes Studio로 표시됩니다.",hermesActiveProvider:"활성 제공자",hermesConfiguredProviders:"설정된 제공자",hermesStudioProvider:"Hermes Studio",providerSpeed:"속도",providerSampleRate:"샘플 레이트",providerBitRate:"비트 레이트",providerGroupId:"그룹 ID",providerVolume:"볼륨",providerEmotion:"감정",providerDiarize:"화자 분리",providerFormatText:"전사문 형식화",providerTagAudioEvents:"오디오 이벤트 태그",optionEnabled:"사용",optionDisabled:"사용 안 함",nativeProvider:"Hermes 네이티브 제공자",selectNativeProvider:"Hermes 네이티브 제공자 선택",useHermesStudioProvider:"Hermes Studio 제공자 사용",presetElevenLabsTtsLabel:"ElevenLabs TTS",presetGeminiTtsLabel:"Gemini TTS",presetXaiTtsLabel:"xAI TTS",presetMistralTtsLabel:"Mistral TTS",presetMinimaxTtsLabel:"MiniMax TTS",presetDeepInfraTtsLabel:"DeepInfra TTS",presetMistralSttLabel:"Mistral STT",presetXaiSttLabel:"xAI STT",presetElevenLabsSttLabel:"ElevenLabs STT",presetDeepInfraSttLabel:"DeepInfra STT",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:"테스트에 실패했습니다. 제공자 설정을 확인하고 다시 시도하세요.",showDetails:"세부 정보 표시",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}",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:"음성 합성 모델 선택",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:"삭제 중",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",encryptKey:"암호화 키",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:{title:"워크플로",profile:"프로필",namePlaceholder:"워크플로 이름",canvasAriaLabel:"워크플로 캔버스",workspace:{title:"작업 공간 선택",select:"작업 공간 선택",clear:"작업 공간 지우기"},actions:{newWorkflow:"새 워크플로",addNode:"노드 추가",createWorkflowFirst:"먼저 워크플로를 만들어 주세요",reset:"초기화",startExecution:"실행 시작",executionPending:"워크플로 실행이 아직 연결되지 않았습니다",executionStarted:"워크플로 실행을 시작했습니다",executionCompleted:"워크플로 실행이 완료되었습니다",executionFailed:"워크플로 실행에 실패했습니다",rerunDownstreamKeepNode:"이 노드를 유지하고 하위 노드 실행",rerunDownstreamClearNode:"이 노드를 지우고 하위 노드 실행",rerunDownstreamStarted:"하위 노드 재실행을 시작했습니다",rerunFromNodeStarted:"이 노드부터 재실행을 시작했습니다",rerunFailed:"워크플로 재실행에 실패했습니다",deleteNode:"노드 삭제",deleteEdge:"연결 삭제",editEdge:"연결 편집",undo:"실행 취소",importWorkflow:"Workflow 가져오기",exportWorkflow:"Workflow 내보내기",imported:"Workflow를 가져왔습니다",exported:"Workflow를 내보냈습니다",importFailed:"Workflow 가져오기에 실패했습니다",exportFailed:"Workflow 내보내기에 실패했습니다"},batch:{toggle:"일괄 선택",selectAll:"모두 선택",confirmDelete:"선택한 워크플로 {count}개를 삭제할까요?",deleteSuccess:"워크플로 {count}개를 삭제했습니다",deletePartial:"워크플로 {failed}개를 삭제하지 못했습니다",deleteFailed:"일괄 삭제에 실패했습니다"},validation:{nodesRequired:"노드를 하나 이상 추가해 주세요",nodeNameRequired:"노드 {node}에 이름이 필요합니다",providerRequired:"노드 {node}에 제공자가 필요합니다",modelRequired:"노드 {node}에 모델이 필요합니다",apiModeRequired:"노드 {node}에 API 모드가 필요합니다",inputRequired:"노드 {node}에 입력이 필요합니다",invalidEdge:"연결이 존재하지 않는 노드를 참조합니다",invalidConnectionDirection:"연결은 오른쪽 출력에서 왼쪽 입력으로 이어져야 합니다",orphanNode:"노드 {node}가 워크플로에 연결되지 않았습니다",disconnectedFlow:"워크플로를 서로 분리된 여러 흐름으로 나눌 수 없습니다",cycle:"워크플로에 순환이 있습니다. 저장하기 전에 연결을 조정해 주세요."},stats:{nodes:"노드",edges:"연결"},runs:{title:"실행 기록",refresh:"새로 고침",empty:"실행 기록 없음",startNodes:"시작 노드 {count}개",snapshotIndicator:"이 실행이 시작된 시점의 고정 스냅샷",show:"실행 기록 표시",hide:"실행 기록 숨기기",nodeSessionTitle:"노드 세션 - {node}",noNodeSession:"이 노드에는 아직 세션 기록이 없습니다",loadNodeSessionFailed:"노드 세션을 불러오지 못했습니다",stop:"실행 중지",stopRequested:"중지를 요청했습니다",stopFailed:"실행을 중지하지 못했습니다",delete:"기록 삭제",deleteSuccess:"실행 기록을 삭제했습니다"},inspector:{selected:"선택한 노드",none:"선택한 노드 없음"},agents:{planner:"계획 담당",researcher:"조사 담당",builder:"구현 담당",reviewer:"검토 담당"},models:{default:"기본 모델",fast:"빠른 모델",reasoning:"추론 모델"},initialNodes:{node1:"노드 1",node2:"노드 2",node3:"노드 3",plan:"계획",execute:"실행",review:"검토"},initialPrompts:{node1:"이 노드의 입력을 작성하세요.",node2:"이 노드의 입력을 작성하세요.",node3:"이 노드의 입력을 작성하세요.",plan:"요청을 실행 가능한 단계로 나누세요.",execute:"구현 단계를 실행하고 결과물을 만드세요.",review:"출력 품질을 검토하고 후속 작업을 식별하세요."},newNodeTitle:"노드 {count}",schedule:{title:"워크플로 일정",manage:"일정 관리",createTitle:"일정 만들기",editTitle:"일정 편집",create:"일정 만들기",save:"일정 저장",edit:"일정 편집",delete:"일정 삭제",deleteConfirm:"이 일정을 삭제할까요?",deleted:"일정이 삭제되었습니다",enable:"일정 사용",disable:"일정 사용 안 함",enabled:"사용",disabled:"사용 안 함",empty:"일정이 없습니다",cron:"Cron 일정",cronPlaceholder:"예: 0 9 * * * 또는 {'@'}daily",timezone:"시간대",timezonePlaceholder:"IANA 시간대(예: Asia/Shanghai)",initialInput:"초기 입력",initialInputPlaceholder:"각 예약 실행에 사용할 선택 입력",startNodes:"시작 노드",startNodesPlaceholder:"기본 워크플로 시작 노드",timeout:"전체 시간 제한(분)",timeoutPlaceholder:"시간 제한 없음",policies:"동시 실행: 건너뛰기 · 누락 실행: 건너뛰기",lastScheduled:"마지막 예약 시간",nextRun:"다음 실행",lastRun:"마지막 실행",never:"없음",loadFailed:"일정을 불러오지 못했습니다",saveFailed:"일정을 저장하지 못했습니다",saved:"일정이 저장되었습니다",deleteFailed:"일정을 삭제하지 못했습니다",required:"Cron 일정과 시간대가 필요합니다",reset:"재설정",presets:{hourly:"매시간",daily:"매일",weekly:"매주",monthly:"매월"}},evidence:{historyPage:"실행 기록",detailsPage:"실행 상세",backToRuns:"실행 기록으로 돌아가기",resultStatus:"상태",duration:"소요 시간",budgetLabel:"예산",actualExecution:"실제 실행",otherJudgments:"기타 판단",loopEvents:"루프 이벤트",evaluatedNotExecuted:"판단됨, 실행 안 됨",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:"기타 세부 정보 숨기기",runDetails:"실행 세부 정보",actualPathSteps:"실제 경로 단계",nodeBudgetDetails:"시간 예산 세부 정보",condition:"조건",conditionMatched:"일치",conditionNotMatched:"불일치",sourceOutcome:"노드 결과",sourceReturned:"정상 응답",sourceFailed:"실행 실패",sourceSkippedStatus:"실행 안 됨",checkedData:"검사한 데이터",entireReplyText:"전체 응답 텍스트",errorText:"오류 텍스트",jsonFieldValue:"JSON 필드 하나의 값",advancedPathValue:"고급 경로 값",comparison:"비교 방법",textToFind:"찾을 텍스트",expectedFieldValue:"예상 필드 값",parsedBusinessDecision:"파싱한 비즈니스 결론",failedGateLabel:"실패 단계(failed_gate 필드 값)",failedGateValue:"실패 단계(failed_gate 필드 값): {gate}",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:"이 경로가 선택되었습니다.",pathEvaluatedNotUsed:"이 연결은 후보로 평가되었지만 대상 노드가 실제로 사용하지 않았습니다.",sourceSkipped:"상위 노드가 실행되지 않아 이번 실행에서 이 경로를 사용하지 않았습니다.",failureRouteAfterSuccess:"상위 노드는 정상 응답했습니다. 이 경로는 노드 실행 실패 시에만 사용됩니다.",successRouteAfterFailure:"상위 노드 실행이 실패했습니다. 이 경로는 정상 응답 시에만 사용됩니다.",businessBlocked:"“{source}” 단계가 워크플로를 중단했습니다({decision}): {reason}. 따라서 “{target}” 단계는 실행되지 않았습니다.",businessBlockedWithCondition:"“{source}” 단계가 워크플로를 중단했습니다({decision}): {reason}. 계속하려면 “{expected}”이(가) 필요했지만 상위 결과는 “{actual}”이었으므로 “{target}” 단계는 실행되지 않았습니다.",conditionMismatchDetail:"계속하려면 “{expected}”이(가) 필요했지만 상위 결과는 “{actual}”이었으므로 “{target}” 단계는 실행되지 않았습니다."},loopOutcomes:{continued:"조건 일치; 다음 회차로 계속",iterationLimitReached:"최대 횟수에서 중지",conditionNotMatched:"조건 불일치로 종료",finished:"루프 종료"}},budget:{runTitle:"Run 시간 예산 선택",rerunTitle:"Rerun 시간 예산 선택",totalLabel:"전체 Run 예산",customMinutes:"사용자 지정 분",customPlaceholder:"분",invalidCustom:"사용자 지정 Run 예산은 0.1~1440분이어야 합니다",help:"전체 Run이 공유하는 절대 마감 시간입니다. 각 노드는 시작 시점의 남은 시간만 받으며 반복은 예산을 재설정하지 않습니다.",options:{unlimited:"마감 없음",30:"30분",60:"60분",90:"90분",custom:"사용자 지정"},unlimitedSummary:"마감 없음",unlimitedHelp:"이 Run에는 시간 마감이 설정되지 않았습니다.",summary:"전체 {total} · 경과 {elapsed} · 남음 {remaining}",deadline:"마감: {deadline}",nodeStartRemaining:"노드 시작 시 남은 전체 예산: {remaining}"},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 필드 하나의 값 (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:"선택한 연산자는 {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:{title:"노드 이름",agent:"에이전트",model:"모델",apiMode:"API 모드",input:"입력",approvalRequired:"완료 후 승인",join:"합류 전략",joinAll:"모든 입력 경로",joinAny:"입력 경로 중 하나",joinAllHelp:"모든 입력 경로가 선택되어야 실행하며 하나라도 불일치하면 건너뜁니다.",joinAnyHelp:"첫 번째 입력 경로가 선택되면 한 번 실행하며 모두 불일치할 때만 건너뜁니다.",promptPlaceholder:"이 에이전트가 수행할 작업을 설명하세요...",skillsPlaceholder:"스킬을 입력하고 Enter로 추가",uploadImages:"이미지 업로드"},status:{idle:"대기",queued:"대기열",running:"실행 중",pending_approval:"승인 대기",completed:"완료",skipped:"건너뜀",failed:"실패",approval_rejected:"승인 거부",canceled:"취소됨"}},groupChat:{agentLinkButton:"내 Agent 참여시키기",agentOwner:"소유자: {name}",agentLinkTitle:"이 방에 Agent 참여시키기",agentLinkDescription:"자신의 Hermes 서비스에 연결합니다. 서비스가 암호화된 아웃바운드 연결을 만들며, 방은 로그인 자격 증명이나 작업 공간 접근 권한을 받지 않습니다.",agentLinkTargetUrl:"Hermes 서비스 URL",agentLinkTargetPlaceholder:"http://127.0.0.1:8748 or https://your-hermes.example.com",agentLinkTargetRequired:"Hermes 서비스 URL을 입력하세요.",agentLinkInvalidTarget:"자격 증명, 경로, 쿼리 또는 프래그먼트가 없는 HTTP 또는 HTTPS 오리진을 입력하세요.",agentLinkOpenTarget:"로그인하고 Agent 선택",agentLinkPopupBlocked:"인증 창이 차단되었습니다. 이 페이지의 팝업을 허용한 후 다시 시도하세요.",agentLinkParentUnavailable:"인증 창과 초대 페이지의 연결이 끊어졌습니다. 창을 닫고 다시 시작하세요.",agentLinkParentUnconfirmed:"초대 페이지에서 이 요청을 확인하지 못했습니다. 초대 페이지를 열어 둔 채 인증을 다시 시작하세요.",agentLinkIncompleteConfiguration:"연결을 요청하기 전에 Profile, 제공자 및 모델을 모두 선택하세요.",agentLinkWaitingApproval:"방 소유자가 이 Agent를 승인하기를 기다리는 중…",agentLinkApproved:"승인되었습니다. Agent에 연결하는 중…",agentLinkConnected:"Agent가 방에 연결되었습니다.",agentLinkError:"이 Agent에 연결할 수 없습니다.",agentLinkRejected:"방 소유자가 Agent 연결 요청을 거부했습니다.",agentLinkExpired:"Agent 연결 요청이 만료되었습니다. 새 요청을 시작하세요.",agentLinkPairingCode:"수동 페어링 코드",agentLinkPairingCodeHint:"인증 창이 이 페이지와 통신할 수 없으면, 이 단기 코드를 인증 창에 붙여 넣으세요.",agentLinkCopyCode:"페어링 코드 복사",agentLinkAuthorizeTitle:"그룹 채팅 Agent 인증",agentLinkAuthorizeDescription:"연결할 로컬 Agent를 선택하세요. 그룹은 메시지를 보낼 수 있지만 로컬 작업 공간을 탐색할 수는 없습니다.",agentLinkSelectAgent:"Agent",agentLinkRequestConnection:"연결 요청",agentLinkOrPairingCode:"또는 수동 페어링 코드 사용",agentLinkPairingCodePlaceholder:"HGC1 페어링 코드 붙여 넣기",agentLinkConnect:"Agent 연결",agentLinkSecurityHint:"알고 있는 방만 승인하세요. 페어링 티켓은 한 번만 사용할 수 있으며 곧 만료됩니다.",agentLinkLoadFailed:"로컬 Agent를 불러올 수 없습니다.",agentLinkConnectFailed:"선택한 Agent에 연결할 수 없습니다.",agentLinkInvalidPairingCode:"이 페어링 코드는 유효하지 않습니다.",agentLinkClose:"닫기",agentLinkApprovalMismatch:"승인 후 연결 요청이 변경되었습니다. Agent를 확인하고 다시 시도하세요.",guestAgentsDisabled:"방 소유자가 게스트 Agent를 활성화하지 않았습니다.",guestAgentSettings:"게스트 Agent 연결",allowGuestAgents:"멤버가 자신의 Agent를 참여시키도록 허용",maxGuestAgentsPerMember:"멤버당 최대 Agent 수",ownerApprovalHint:"각 Agent는 여전히 방 소유자의 명시적인 승인이 필요합니다.",allowRemoteWorkspaceAccess:"원격 Agent의 그룹 작업 공간 읽기 및 쓰기 허용",remoteWorkspaceAccessHint:"활성화하면 승인된 원격 Agent가 실행할 때마다 단기 접근 권한을 받습니다. 민감한 파일과 방 작업 공간 외부 경로는 계속 차단됩니다.",agentPairingRequestTitle:"Agent 연결 요청",agentPairingRequestDescription:"{user} 님이 {origin}에서 Agent를 연결하려고 합니다.",approveAgent:"Agent 승인",rejectAgent:"거부",agentPairingApproved:"Agent 연결이 승인되었습니다",agentPairingRejected:"Agent 연결이 거부되었습니다",emptyState:"그룹 대화를 시작하세요",title:"그룹 채팅",refactorNoticeTitle:"그룹 채팅 업데이트 안내",refactorNoticeMessage:"그룹 채팅이 대폭 개편되었습니다. 채팅할 수 없는 경우 새 방을 만들어 주세요.",createRoom:"방 만들기",joinByCode:"초대 코드로 참여",shareTitle:"그룹 채팅 참여",shareSubtitle:"초대 코드만 입력하면 참여할 수 있으며 계정 로그인이 필요하지 않습니다.",shareCodeHint:"이 초대 코드는 해당 그룹 채팅방에만 접근 권한을 부여합니다.",shareInvalidCode:"초대 코드가 유효하지 않거나 변경되었습니다. 공유한 사람에게 새 링크를 요청하세요.",shareJoining:"그룹 채팅에 참여하는 중…",shareNameSubtitle:"방에 들어가기 전에 이름을 설정하세요.",shareNameConflict:"이미 이 방에서 사용 중인 이름입니다. 다른 이름을 선택하세요.",shareNameReserved:"예약된 이름입니다. 다른 이름을 선택하세요.",shareEnterRoom:"방 입장",roomName:"방 이름",roomNamePlaceholder:"방 이름 입력",inviteCode:"초대 코드",autoGenerate:"자동 생성",noRooms:"아직 방이 없습니다",localRooms:"로컬",remoteRooms:"원격",remoteRoomOffline:"원격 연결이 오프라인입니다.",renameRemoteRoom:"원격 방 이름 변경",renameRemoteRoomHint:"이 기기에 표시되는 이름만 변경합니다.",remoteRoomRenamed:"원격 방 표시 이름을 변경했습니다",remoteRoomRenameFailed:"원격 방 표시 이름을 변경하지 못했습니다",leaveRemoteRoom:"방 나가기",leaveRemoteRoomConfirm:"“{name}”에서 나갈까요? 이 기기에서 연결한 모든 Agent가 원격 방에서 제거되고 로컬 연결 기록도 삭제됩니다.",remoteRoomLeft:"원격 방에서 나갔습니다",remoteRoomLeaveFailed:"원격 방에서 나가지 못했습니다",remoteRoomLeavePartial:"로컬 기록은 삭제했지만 원격 방이 오프라인이어서 Agent 연결 {count}개에 나가기를 알리지 못했습니다.",selectOrCreate:"방을 선택하거나 만들어 채팅을 시작하세요",agents:"에이전트",allAgents:"모든 Agent",addAgent:"에이전트 추가",agentType:"에이전트",agentTypes:{hermes:"Hermes",ekko:"Ekko",codex:"Codex",claude:"Claude"},selectProfile:"Profile 선택",agentAdded:"에이전트가 추가되었습니다",selectRoomFirst:"먼저 방을 선택하세요",agentAlreadyInRoom:"이 에이전트는 이미 방에 있습니다",agentAddFailedCount:"에이전트 {count}개를 추가하지 못했습니다: {details}",editAgentTitle:"{name} 편집",removeMember:"내보내기",memberRemoved:"{name} 님을 방에서 내보냈습니다",memberRemovedNotice:"방 소유자가 회원님을 내보냈습니다. 초대가 유효한 동안 다시 참여할 수 있습니다.",noAgents:"이 방에는 에이전트가 없습니다",members:"멤버 {count}명",roomCreated:"방이 생성되었습니다",roomDeleted:"방이 삭제되었습니다",roomCloned:"방이 복제되었습니다",cloneRoom:"방 복제",copyRoomLink:"방 링크 복사",manualCopyRoomLinkHint:"브라우저에서 자동으로 복사하지 못했습니다. 링크를 선택해 직접 복사하세요.",deleteRoomConfirm:"이 방을 삭제할까요?",clearContext:"컨텍스트 지우기",clearContextConfirm:"이 방의 컨텍스트를 지울까요? 메시지와 압축 스냅샷은 삭제되지만 에이전트와 멤버는 유지됩니다.",contextCleared:"컨텍스트를 지웠습니다",you:"나",joined:"방에 참여했습니다",joinFailed:"방 참여 실패",inputPlaceholder:"메시지 입력... (Enter로 전송)",messageDisplayLimit:"그룹 채팅에는 최대 600개의 메시지가 표시됩니다",enterCode:"초대 코드 입력",yourName:"내 이름",yourNamePlaceholder:"표시 이름 입력",yourDescription:"설명(선택 사항)",yourDescriptionPlaceholder:"자신을 소개해 주세요...",agentName:"에이전트 이름",agentNamePlaceholder:"사용자 지정 이름(비워 두면 Profile 이름 사용)",agentDesc:"에이전트 설명",agentDescPlaceholder:"이 에이전트의 역할을 설명하세요...",agentReplying:"응답 중...",agentCompressing:"컨텍스트 압축 중...",compressionSettings:"압축 설정",triggerTokens:"트리거 토큰",triggerTokensDesc:"컨텍스트 압축을 시작할 토큰 임계값",maxHistoryTokens:"최대 기록 토큰",maxHistoryTokensDesc:"LLM에 전송할 압축 컨텍스트의 최대 토큰 수",tailMessageCount:"최근 메시지 유지 수",tailMessageCountDesc:"압축 후 원문 그대로 유지할 최근 메시지 수",compressionConfig:"압축 구성",compressionSaved:"압축 설정을 저장했습니다",roomSettings:"방 설정",inviteCodeSettings:"초대 코드 설정",inviteCodePlaceholder:"새 초대 코드 입력",generateInviteCode:"초대 코드 생성",inviteCodeRotateHint:"업데이트하면 이전 코드는 새 참여에 사용할 수 없습니다.",inviteCodeUpdated:"초대 코드가 업데이트되었습니다",inviteCodeUpdateFailed:"초대 코드 업데이트 실패",saveCompression:"압축 설정 저장",compressNow:"지금 압축",compressingInProgress:"압축 중입니다. 잠시 기다려 주세요",summarySettings:"롤링 요약",summarySettingsDesc:"깨끗한 Ekko Agent가 지정한 사용자 대화 턴마다 공유 요약을 갱신합니다.",summaryProvider:"요약 Provider",summaryProviderPlaceholder:"Provider 선택",summaryModel:"요약 모델",summaryModelPlaceholder:"모델 선택",summaryApiMode:"API 모드",summaryEveryTurns:"N턴마다 요약",summaryEveryTurnsDesc:"한 턴은 사용자 메시지 한 개입니다.",summaryConfigSaved:"요약 설정을 저장했습니다",summaryConfigurationRequired:"이 방에는 요약기가 아직 설정되지 않았습니다. Profile, Provider, Model, API Mode를 선택한 뒤 저장하세요.",summaryConfigurationOwnerRequired:"이 방에는 요약기가 아직 설정되지 않았습니다. 메시지를 보내기 전에 방 관리자에게 설정을 요청하세요.",saveSummaryConfig:"요약 설정 저장",currentSummary:"현재 요약",summaryStatus:{idle:"대기",summarizing:"요약 중",success:"성공",failed:"실패"},summaryUpdatedAt:"마지막 업데이트",summarizedTurns:"요약된 턴",summaryAnchor:"요약 앵커",summaryMessagesAbove:"위 내용 요약 완료",summaryNoAnchor:"아직 앵커 없음",summaryContent:"요약 내용",summaryEmpty:"아직 요약이 없습니다",summaryEditKeepsAnchor:"요약을 수정해도 현재 앵커는 유지됩니다.",saveSummary:"요약 저장",summaryUpdated:"요약을 업데이트했습니다",summaryNever:"없음",summaryLoadFailed:"방 요약을 불러오지 못했습니다"},files:{attachToChat:"채팅에 추가",attachFailed:"파일을 채팅에 추가하지 못했습니다",previewMode:"미리보기",sourceMode:"소스",tableMode:"표",worksheet:"워크시트",htmlPreviewTitle:"격리된 HTML 미리보기",previewLoading:"미리보기 불러오는 중...",previewFailed:"미리보기를 사용할 수 없음",previewMimeMismatch:"파일 형식이 미리보기 형식과 일치하지 않습니다.",downloadInstead:"대신 다운로드",previousPage:"이전",nextPage:"다음",pageStatus:"{total}페이지 중 {page}페이지",zoom:"확대/축소",pdfPageLimit:"처음 {count}페이지만 표시합니다.",tableTruncated:"미리보기가 제한되었습니다. 모든 행과 열을 보려면 파일을 다운로드하세요."},changelog:{new_0_6_41_1:"npm으로 설치한 Hermes Web UI에서 로컬 STT가 안정적으로 작동하도록 macOS, Windows, Linux의 sherpa-onnx 네이티브 런타임을 Node.js 래퍼와 동일한 버전으로 고정했습니다(#2464)",new_0_6_40_1:"이번 릴리스에는 v0.6.39 이후 병합된 40개 PR 전체가 포함되며 안전한 원격 그룹 채팅, 로컬 음성 인식, Workflow 예약, 전역 승인, Chat Run 웹훅, MCU 및 Coding Agent 안정성을 개선합니다",new_0_6_40_2:"그룹 채팅에 안전한 공유 방과 원격 Agent를 추가하고 Agent 인계, 접속 상태 및 철회 흐름을 안정화했습니다. 오프라인 소유자 아바타를 유지하며 클립보드 API를 사용할 수 없을 때 방 링크를 수동 복사할 수 있습니다(#2408, #2410, #2411, #2415, #2423)",new_0_6_40_3:"원격 Agent가 파일 전송과 클라우드 workspace 업로드를 지원합니다. 소유자가 아닌 사용자의 요청에는 workspace, 민감 정보 및 개인 기억 경계를 더 엄격히 적용하고 소유권과 승인 라우팅을 수정했습니다(#2413, #2430, #2433, #2435)",new_0_6_40_4:"기존 Agent Link 마이그레이션을 중단하고 접을 수 있는 로컬·원격 방 목록, 원격 방의 로컬 별칭, 공유 페이지 이동 및 완전한 나가기 정리를 추가했습니다(#2424, #2459)",new_0_6_40_5:"그룹 채팅 기록을 자동 삭제하지 않고 mention이 포함된 도구 결과를 제한된 메시지 ID로 안전하게 저장합니다. 고립된 도구, 승인 정렬과 라우팅, token 계산 중 이벤트 루프 정체도 수정했습니다(#2390, #2420, #2426, #2427, #2429, #2445)",new_0_6_40_6:"최근 세션과 그룹 채팅 활동 피드백이 더 빨라졌고 도구 패널이 부드러운 애니메이션으로 펼쳐집니다(#2389, #2414)",new_0_6_40_7:"전역 승인이 기존 프롬프트를 이어받고 더 명확한 명령 미리보기를 표시하며 대기 중 작업을 시스템 알림으로 알려 줍니다(#2406, #2425, #2432)",new_0_6_40_8:"sherpa-onnx 기반 중영 로컬 스트리밍 STT를 추가했습니다. 끝부분 무음으로 마지막 단어를 보존하고 macOS와 Windows에서 Electron 호환 오디오 버퍼를 사용합니다(#2447, #2448, #2461)",new_0_6_40_9:"Workflow에 영구 예약 실행과 생성, 편집, 활성화, 비활성화 및 삭제를 지원하는 전체 관리 UI를 추가했습니다(#2434, #2441)",new_0_6_40_10:"Chat Run 수명 주기 웹훅을 추가하고 사용하지 않는 기존 엔드포인트를 제거했으며 서버에 경량 상태 확인 엔드포인트를 추가했습니다(#2422, #2452, #2453)",new_0_6_40_11:"MCU에서 Ekko와 Hermes Agent 런타임을 선택할 수 있고 Global Agent 아바타와 MCU 상태 표시도 정확하게 나타납니다(#2438, #2442)",new_0_6_40_12:"Coding Agent에 실행 ID를 필수화하고 Windows 실행 영속성 격리, MCP 시간 초과, 모델 간 reasoning 재생, 컨텍스트 사용량 추정 및 중복 Studio 안내를 수정했습니다(#2387, #2392, #2395, #2396, #2398, #2416)",new_0_6_40_13:"MoA 프리셋에서 모델별 추론 강도를 설정할 수 있으며 이미지 생성은 불필요한 원격 보관을 막기 위해 Responses 저장을 비활성화합니다(#2439, #2449)",new_0_6_39_1:"Ekko Agent가 명시적으로 초기화되고 승인으로 보호된 제한형 Node.js/Python 코드 실행을 지원하며, 포그라운드 실행을 멈추고 텍스트 또는 선택형 질문에 답을 받은 뒤 이어갈 수 있습니다(#2362, #2368)",new_0_6_39_2:"Group Chat이 방 참가 확인 후 메시지를 보내 재연결 시 간헐적으로 발생하던 “Not in room” 오류를 해결했습니다. 입력 상태는 제한된 하트비트로 전송되며 다른 멤버의 아바타에 글자 없는 호흡 표시로만 나타납니다(#2373)",new_0_6_39_3:"Single Chat과 Group Chat의 Coding Agent 도구 이벤트가 네이티브 CLI 수명 주기를 따르고 인자가 완성된 뒤 시작 이벤트를 한 번만 보냅니다. 중복되거나 남는 도구 카드와 큰 방에서 도구 JSON이 한 글자씩 갱신되던 지연을 없앴습니다(#2366, #2372)",new_0_6_39_4:"Coding Agent 프롬프트를 stdin으로 전달해 여러 줄과 이미지 입력을 보존하면서 Windows 명령 길이 제한을 피합니다. Group Chat도 실행 중인 Codex, Claude Code 또는 Ekko 작업을 고정 2분 뒤 중단하지 않습니다(#2354, #2357)",new_0_6_39_5:"Codex가 복구 가능한 Provider 프록시 연결 끊김에도 네이티브 JSONL과 프로세스 종료를 최종 상태로 사용해 완료된 작업이 Group Chat 실패로 잘못 표시되지 않습니다(#2375)",new_0_6_39_6:"버전 관리가 Runtime 완전성을 확인하고 데스크톱 폴백 이유를 표시합니다. 잘못된 Runtime은 활성화할 수 없으며 Web UI 업데이트가 데스크톱 설치 프로그램으로 제공되므로 다운로드와 전환 UI는 숨겨졌습니다(#2353)",new_0_6_39_7:"Group Chat 실행 헤더가 Agent 이름만 표시해 반복 설명을 없애고 메시지 그룹을 더 간결하게 보여 줍니다(#2352)",new_0_6_39_8:"ESP32-C3 원격 연결이 장치 검색 중에도 Socket.IO를 유지하고 제한된 음성 버퍼를 재사용하며 백오프로 재연결하고 Studio의 일시적 연결 끊김에도 로그인을 보존해 원격 검색과 음성 대화가 더 빠르고 안정적입니다(#2383)",new_0_6_38_1:"Windows 데스크톱 시작 시 Agent 업데이트가 캐시된 Hermes Runtime 환경에 남긴 잘못된 Python 상대 경로를 자동 복구해 업데이트, Runtime 전환 또는 저장소 마이그레이션 후 CLI, 로그와 Gateway를 정상화합니다",new_0_6_38_2:"웹사이트 호환 버전 목록이 Hermes 0.19.0을 다시 인식해 해당 데스크톱 다운로드와 호환성 검사를 계속 사용할 수 있습니다(#2348)",new_0_6_37_1:"14개 PR을 담은 이번 릴리스의 핵심은 Group Chat 전면 재구축입니다. 각 Agent가 Profile, Provider, 모델, API 모드, 추론 강도, 정체성과 workspace를 독립적으로 선택할 수 있습니다(#2334)",new_0_6_37_2:"Group Chat은 매번 새로 격리된 실행을 시작하고 각 답변을 reasoning 및 도구 과정과 함께 묶어 표시합니다. 공유 편집형 롤링 요약, 상태와 경계, Agent mention, 방/workspace drawer 및 이전 방 마이그레이션 안내도 추가했습니다. 음성 자동 재생은 서로 다른 Profile의 TTS를 미리 생성하고 같은 Profile의 합성은 단일 동시 실행으로 제한한 뒤 FIFO로 재생하므로 새 답변이 재생 중인 음성을 덮어쓰지 않습니다(#2334)",new_0_6_37_3:"MiniMax Coding Plan OAuth가 Global 및 중국 리전을 지원하며 Codex, xAI, Anthropic, Nous, MiniMax 인증 정보는 영구 Runtime Bridge를 통해 자동 갱신됩니다(#2337)",new_0_6_37_4:"ESP32-C3 v1/v2에 로컬 VAD, 프리롤 오디오, 무음 종료 및 재생 억제를 갖춘 선택형 자동 듣기 모드를 추가하고 기존 푸시투토크 조작을 유지했습니다(#2338)",new_0_6_37_5:"MCU Global Agent는 간결한 Ekko 음성 모드를 사용하고 안전한 백그라운드 작업을 위임할 수 있습니다. 세션 기록과 workspace를 보존하며 큰 도구 결과를 장치로 전달하지 않습니다(#2326)",new_0_6_37_6:"Custom 및 OpenAI 호환 TTS가 Provider 지원 오디오 형식으로 자동 재시도하고 MP3가 아닌 출력을 Hermes 재생용으로 변환합니다(#2328)",new_0_6_37_7:"Profile 가져오기와 내보내기는 최대 10분 동안 실행되며 명확한 시간 초과 오류, 동시 아카이브 격리, 파일명 정리 및 임시 파일 삭제를 지원합니다(#2310, #2324)",new_0_6_37_8:"Hermes Agent Bridge가 모델별 기본 추론 강도를 적용하면서 실행별 명시적 재정의와 이전 Runtime 폴백을 유지합니다(#2325)",new_0_6_37_9:"버전 관리가 실제 설치된 Hermes Agent 버전과 Runtime 경로를 별도로 표시하고 CLI 업데이트 범위와 Studio 완전 종료 요구 사항을 명확히 안내합니다(#2323)",new_0_6_37_10:"Workspace 파일 트리의 들여쓰기를 줄여 깊게 중첩된 이름도 잘 보이도록 했습니다(#2340)",new_0_6_37_11:"데스크톱 기본값을 Hermes Agent 0.20.0으로 올리고 고정 소스와 휴대용 Node/npm을 사용합니다. Windows 업데이트 후 재생성된 런처, 시스템 Python 없는 업데이트와 숨겨진 관리 Gateway를 지원합니다(#2321, #2344)",new_0_6_37_12:"Windows Runtime 저장소 마이그레이션이 관리자 권한 없이 업데이트 생성 링크를 처리하고 Python 경로를 재설정하며 Unicode 사용자 경로를 지원하고 첫 재시작에서 CLI/MCP shim을 갱신합니다(#2345)",new_0_6_37_13:"macOS 데스크톱 서명은 명시적 임시 keychain을 사용해 두 아키텍처 모두 macOS 26 runner의 엄격 모드와 호환됩니다(#2315)",new_0_6_36_1:"이번 릴리스에는 0.6.35 이후 병합된 28개 PR이 모두 포함되며 음성, 아랍어와 RTL, App Relay, Agent 안정성, 채팅 UX, Kanban, Journey, MCU 자막 및 Ekko 요청 로그를 개선합니다",new_0_6_36_2:"음성 설정을 모델 화면에서 Hermes 네이티브 및 Web UI Provider용으로 통합했습니다. Custom TTS는 음성 선택을, Edge TTS는 임의의 Voice ID와 아랍어 옵션을 지원합니다(#2260, #2265, #2267)",new_0_6_36_3:"아랍어와 종단 간 RTL 지원이 문서 흐름, Naive UI, 채팅, 그룹 채팅, Workflow, 오버레이, 드로어, 블록별 텍스트 방향 및 수정된 Profile 문구까지 확장되었습니다(#2269, #2270, #2271, #2273, #2277, #2294, #2303)",new_0_6_36_4:"활성 백그라운드 위임은 작업이 끝날 때까지 Agent Bridge 세션을 유지하여 유휴 정리가 장시간 작업을 중단하지 않도록 합니다(#2254)",new_0_6_36_5:"데스크톱 그룹 채팅 Agent 목록을 다시 클릭할 수 있으며, 메인 창을 모바일 레이아웃으로 전환하지 않고 769px까지 줄일 수 있습니다(#2259, #2263)",new_0_6_36_6:"Codex, Claude Code 및 Ekko의 workspace diff는 실시간, 복원 및 그룹 채팅에서 이를 생성한 정확한 어시스턴트 메시지에만 표시됩니다(#2264)",new_0_6_36_7:"영문 및 중문 README를 현재 제품과 CLI에 맞게 업데이트하고 웹사이트에서 버전 0.6.12에 고정된 오래된 매뉴얼을 제거했습니다(#2268)",new_0_6_36_8:"독립형 헤드리스 App Relay는 Studio를 직접 노출하지 않고 안전한 페어링과 인증된 원격 접근으로 허용된 로컬 API 및 채팅 스트리밍을 제공합니다(#2275)",new_0_6_36_9:"Desktop Agent Browser는 긴 접근성 텍스트를 안전하게 페이지 단위로 읽고 snapshot 참조가 보이는 텍스트를 가리키는 컨트롤을 작동할 수 있습니다(#2278)",new_0_6_36_10:"채팅에 고정 Provider 컨트롤, 메시지 기반 스크롤 복원, 컴팩트한 도구 및 터미널 레일, 전체 크기 미리보기와 전체 너비 workspace diff가 추가되었습니다(#2279, #2282, #2283, #2293)",new_0_6_36_11:"새 Ekko 세션에는 Profile별로 격리된 기본 workspace가 제공되며 기존 또는 명시적으로 선택한 workspace는 변경되지 않습니다(#2289)",new_0_6_36_12:"Memory와 Skill 승인 결과를 구조화하고 직렬화하여 잘못된 성공 메시지와 동일 Profile 내 동시 쓰기를 방지합니다(#2295)",new_0_6_36_13:"Kanban은 안정적인 작업 보관과 이동 가능한 보드를 제공하고, Journey는 간결하고 결정적인 Memory-to-Skill 관계 지도로 새로워졌습니다(#2296, #2297)",new_0_6_36_14:"실시간 reasoning이 도구 경계에서도 안정적으로 유지되고 올바른 메시지 또는 도구에 복원되며 빈 하위 Agent 말풍선을 더 이상 만들지 않습니다(#2299)",new_0_6_36_15:"MCU 음성은 ESP32-C3 v1 및 v2에서 오디오 재생을 방해하지 않고 동기화된 페이지형 GB2312 자막을 표시합니다(#2305)",new_0_6_36_16:"Ekko는 컨텍스트 압축을 포함해 모델 시도마다 하나의 간결한 model.request 로그를 기록하고 도구가 없으면 tool_choice를 생략합니다(#2311)",new_0_6_35_1:"Ekko Agent 영구 메모리가 프로덕션에서 활성화되었습니다. 프로필별로 격리된 SQLite 저장소, 4,000토큰 자동 회상 예산, 전체 메모리 관련성 검색 개선 및 더 안전한 모델 요청 처리를 제공합니다(#2246)",new_0_6_34_1:"이번 릴리스에는 0.6.33 이후 병합된 21개 PR이 모두 포함되며 사용자별 테마, Ekko와 Coding Agent 개선, 데스크톱과 브라우저, 자동화 및 안정성 수정을 제공합니다",new_0_6_34_2:"글자 크기, 텍스트와 강조 색상, workspace 배경을 계정별로 설정하고 모든 화면에서 일관된 반투명 테마를 사용할 수 있습니다. Windows 창과 브라우저 설정도 테마를 따르며 Ekko 브라우저 명령이 Windows에서 정상적으로 실행됩니다(#2242, #2243, #2244)",new_0_6_34_3:"Ekko를 프로덕션에서 사용할 수 있고 필요할 때 Skill을 탐색하며 멀티모달 입력을 처리합니다. 보호된 Skill 진화, Profile별 로그, 프로토콜 유지 및 Responses 추론 요약으로 안전성과 기능도 향상됩니다(#2215, #2236)",new_0_6_34_4:"Ekko 메모리에 선호도, 관계, 습관, 장기 목표 등을 정확히 조회하는 구조화 Kind가 추가되었으며 긴 대화는 공유 스냅샷 기반 컨텍스트 압축 수명 주기를 사용합니다(#2229, #2230)",new_0_6_34_5:"Coding Agent는 Codex, Claude Code 및 범위가 지정된 Provider 프로토콜 사이에서 이미지 입력을 보존하고, 지나치게 큰 Responses 도구 출력을 잘라내며, 런타임 설정과 지연 이벤트를 세션별로 격리합니다(#2222, #2232, #2238)",new_0_6_34_6:"Hermes Workflow 기능 검사는 API 모드 메타데이터가 없는 유효한 대상을 더 이상 거부하지 않습니다. Kanban은 Hermes Agent 0.19 작업 동작과 첨부 미리보기에 맞춰졌고 Cron 즉시 실행은 강화된 생성 검증과 함께 안전하게 백그라운드에서 시작됩니다(#2239, #2216, #2228)",new_0_6_34_7:"데스크톱에 집중형 독립 채팅 창이 추가되고 브라우저 자동화가 비밀번호, 결제 및 파일 입력을 조작할 수 있습니다. Group Chat의 사용자 이름과 설명도 방마다 독립적으로 유지됩니다(#2209, #2210, #2212)",new_0_6_34_8:"세션별 /yolo 명령으로 승인 우회를 전환하고 Agent 최대 턴 수의 UI 200회 제한을 제거했습니다. Markdown은 ASCII 직선 따옴표를 보존하며 pt-BR 카탈로그의 누락된 발음 구별 부호도 복원했습니다(#2223, #2225, #2234, #2221)",new_0_6_34_9:"ESP32-C3에 설정 가능한 연결 대기 모드가 추가되어 Wi-Fi, 로그인, Profile 및 Socket.IO 상태를 유지하면서 유휴 전력을 줄이고 즉시 깨우기와 영구 타임아웃 설정을 지원합니다(#2218)",new_0_6_33_1:"이번 릴리스에는 0.6.32 이후 병합된 16개 PR이 모두 포함되며 데스크톱 Agent Browser, Workflow 실행 근거와 제한 시간, 파일과 채팅 상호작용, Provider 모델 새로 고침 및 안정성을 개선합니다",new_0_6_33_2:"데스크톱에 표시 가능한 다중 탭 Agent Browser를 추가해 격리된 Profile, 프록시·저장소·다운로드 관리, 암호화된 쿠키 유지, 보호된 Agent 작업, 지연 MCP 도구 탐색을 지원합니다(#2177, #2182)",new_0_6_33_3:"개인·그룹 채팅 링크와 인증된 HTML 미리보기를 내장 브라우저에서 열 수 있으며 권한 작업 간격, 크로스플랫폼 탐색 아이콘, Windows 사이드바와 제목 표시줄 연동도 개선했습니다(#2191, #2194, #2198)",new_0_6_33_4:"Workflow Run은 시작 시점의 변경 불가능한 시각 스냅샷을 보존하고 Run/Rerun 전체 제한 시간과 경과·남은 시간 근거를 표시하며, 기록과 상세 화면은 실제 소비 경로를 반영한 페이지 방식으로 제공됩니다(#2171, #2173, #2180)",new_0_6_33_5:"임의의 파일을 개인·그룹 채팅에 바로 붙여넣거나 workspace 우클릭 메뉴에서 첨부할 수 있으며, 간결해진 메타데이터 열이 파일 이름에 더 많은 공간을 제공합니다(#2175, #2176)",new_0_6_33_6:"설정된 각 Provider에서 모델 목록을 개별 새로 고침하고 삭제 확인, 사용할 수 없는 기본 모델 유지, 1회 복원을 수행할 수 있습니다. OAuth Provider, 전체 언어 및 폼 자동 완성 동작도 지원합니다(#2115)",new_0_6_33_7:"중단·일시정지 상태를 채팅 세션별로 격리해 백그라운드 대화가 현재 중지 버튼에 영향을 주지 않으며, 데스크톱의 선택 텍스트와 입력란에는 네이티브 우클릭 작업도 추가했습니다(#2203, #2204)",new_0_6_33_8:"데스크톱 종료·업데이트·설치는 시간 제한이 있는 정상 종료를 사용하고 정리 기한이 지난 뒤에만 남은 Agent Bridge, MCP, 브라우저 및 Web UI 프로세스 트리를 강제 종료합니다(#2193)",new_0_6_33_9:"MCU 음성 세션은 포그라운드와 백그라운드 결과를 격리하며, MiniMax 호환 MCP 도구 이름은 기존 호출자를 깨뜨리지 않고 Provider 길이 제한을 지킵니다(#2181, #2169)",new_0_6_32_1:"이번 릴리스에는 0.6.31 이후 병합된 14개 PR이 모두 포함되며 세션 구성과 압축, 그룹 채팅, Workflow 라우팅, Skill Bundle, Ekko 메모리, Hermes 0.19 및 데스크톱 창 UI를 개선합니다",new_0_6_32_2:"그룹 채팅 {'@'}멘션이 CJK 텍스트, 이모지, 문장 부호 뒤에서도 작동하며 방 소유자는 설정에서 초대 코드를 확인하고 생성하거나 교체할 수 있습니다(#2133, #2141)",new_0_6_32_3:"Workflow는 핸드오프와 재연결 과정에서도 각 Hermes Bridge 실행 출처를 보존하며 범위가 지정된 Codex 및 Claude Code 노드는 유효한 API Key 대상에 launcher 지원 프로토콜을 사용할 수 있습니다(#2137, #2154)",new_0_6_32_4:"세션에 전역 카테고리, Markdown을 인식하는 더 정확한 검색 순위, 편집·분기·동시 실행에서도 정확성을 유지하며 기록을 제한하는 커서 기반 압축이 추가되었고 전체 압축 설계도 문서화되었습니다(#2139, #2143, #2145, #2146)",new_0_6_32_5:"Profile 범위 Skill Bundle을 채팅에서 직접 만들고 탐색하고 실행하고 삭제할 수 있으며 포함된 Skill도 명확히 확인할 수 있습니다(#2156)",new_0_6_32_6:"Ekko 메모리는 Profile별로 격리된 단일 표준 모델을 사용하며 revision 검증 변경, 강화된 출처 감사, 더 엄격한 관련성 필터링을 지원합니다(#2159)",new_0_6_32_7:"Hermes 0.19의 어시스턴트 중간 메시지가 별도 말풍선으로 스트리밍 및 저장되며 일반 1:1 채팅은 백그라운드 위임의 영구 결과를 비동기로 전달받을 수 있습니다(#2160)",new_0_6_32_8:"새 데스크톱 Runtime 빌드, 대체 경로 및 Windows CLI shim은 이제 Hermes Agent 0.19.0을 기본으로 사용합니다(#2161)",new_0_6_32_9:"데스크톱 창 컨트롤을 페이지 UI에 통합하여 macOS 신호등 버튼은 사이드바에, Windows 컨트롤은 메인 콘텐츠 위에 배치하고 Linux는 기본 창 장식을 유지합니다(#2162)",new_0_6_32_10:"개발자 문서는 이제 현재 checkout과 선택적인 격리 Git worktree 방식을 모두 지원합니다(#2155)"}};export{e as default};