@acedatacloud/nexior 3.378.1 → 3.379.0

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 (483) hide show
  1. package/README.md +6 -6
  2. package/dist/assets/{ApiCodeButton-DPrhCmGA.js → ApiCodeButton-BVdwvbqZ.js} +1 -1
  3. package/dist/assets/{ApiCodeDialog-B88iMSf-.js → ApiCodeDialog-DnvWQSux.js} +2 -2
  4. package/dist/assets/Artifacts-DBlRS6V-.js +1 -0
  5. package/dist/assets/{AskUserQuestionCard-Igw4avZ9.js → AskUserQuestionCard-BnGXxHXH.js} +1 -1
  6. package/dist/assets/{AudioPreview-Hgj7qr7-.js → AudioPreview-BW-v9N1F.js} +1 -1
  7. package/dist/assets/{Auth-A5mFQDbi.js → Auth-2sHUtbN3.js} +1 -1
  8. package/dist/assets/{Bare-C1d16HXP.js → Bare-MY2982fx.js} +1 -1
  9. package/dist/assets/{BotPlaceholder-CRexoh1F.js → BotPlaceholder-BMvZ2r7e.js} +1 -1
  10. package/dist/assets/{BottomFooter-Dq7zUPrb.js → BottomFooter-BK8fSgo8.js} +1 -1
  11. package/dist/assets/BrowseConnectors-BynonX3o.js +1 -0
  12. package/dist/assets/BrowserPairingDialog-BpL_PLZ2.js +1 -0
  13. package/dist/assets/{Callback-DNF_0oPj.js → Callback-CftlVK5U.js} +1 -1
  14. package/dist/assets/{CodeSnippet-zV_2WFu7.js → CodeSnippet-CWKbGbqf.js} +1 -1
  15. package/dist/assets/Console-D5tMRa4O.js +1 -0
  16. package/dist/assets/Conversation-CfGZLMUg.css +1 -0
  17. package/dist/assets/Conversation-Dvzqt09M.js +2 -0
  18. package/dist/assets/{Conversation-DhRWnomD.js → Conversation-DyPJerS9.js} +1 -1
  19. package/dist/assets/CopyToClipboard-BareDE14.css +1 -0
  20. package/dist/assets/{CopyToClipboard-OOLvOJao.js → CopyToClipboard-DwbsH1C3.js} +1 -1
  21. package/dist/assets/Detail-60SJz85a.js +2 -0
  22. package/dist/assets/Extra-a9kjI6xu.js +1 -0
  23. package/dist/assets/{FilePreview-8gEj6A92.js → FilePreview-LQggJd0m.js} +1 -1
  24. package/dist/assets/{Hailuo-Az72d73P.js → Hailuo-wSOJTcJX.js} +1 -1
  25. package/dist/assets/History-BKuvOkpU.css +1 -0
  26. package/dist/assets/History-CotgV_jP.js +1 -0
  27. package/dist/assets/{ImagePreview-BxZfDCVX.js → ImagePreview-BLcOkAKu.js} +1 -1
  28. package/dist/assets/{ImageWrapper-B42tXFcX.js → ImageWrapper-CbWVwZRD.js} +1 -1
  29. package/dist/assets/{Index-DwfM2ZdM.css → Index-B1YAGuTX.css} +1 -1
  30. package/dist/assets/Index-B2iSDu_B.js +2 -0
  31. package/dist/assets/Index-B5eICayB.js +1 -0
  32. package/dist/assets/Index-BEXZOWNw.js +1 -0
  33. package/dist/assets/Index-BTN8UlrZ.js +1 -0
  34. package/dist/assets/Index-BefFog-a.css +1 -0
  35. package/dist/assets/Index-Bi6tCc2m.js +1 -0
  36. package/dist/assets/{Index-CseJcmnm.js → Index-BiXFhCWk.js} +1 -1
  37. package/dist/assets/Index-BkELRl77.js +1 -0
  38. package/dist/assets/Index-BmqhuNpp.js +1 -0
  39. package/dist/assets/Index-BptenMvy.js +1 -0
  40. package/dist/assets/Index-BtYp1mWJ.js +1 -0
  41. package/dist/assets/Index-Bz1tQjLN.js +1 -0
  42. package/dist/assets/Index-C4b0Sbyi.js +1 -0
  43. package/dist/assets/Index-C63AcaAz.js +1 -0
  44. package/dist/assets/Index-C7jnoMyw.js +1 -0
  45. package/dist/assets/Index-C7nNUO1i.js +2 -0
  46. package/dist/assets/Index-CB-LRpKw.js +1 -0
  47. package/dist/assets/Index-CC8t-QBU2.js +1 -0
  48. package/dist/assets/Index-CDo_fKen.js +1 -0
  49. package/dist/assets/Index-CFwbMt9f.js +1 -0
  50. package/dist/assets/Index-CVJaenIO.js +1 -0
  51. package/dist/assets/Index-CYCyIq0c.js +1 -0
  52. package/dist/assets/{Index-BJ4tC9AY.js → Index-CYbuu0Uy.js} +1 -1
  53. package/dist/assets/Index-CjA_cn01.js +1 -0
  54. package/dist/assets/Index-CljLq_wO.js +1 -0
  55. package/dist/assets/Index-CnfZftjV.js +1 -0
  56. package/dist/assets/Index-CpvCmtSL.js +1 -0
  57. package/dist/assets/Index-CwbJeN2Z.css +1 -0
  58. package/dist/assets/Index-D-Y3090O.js +1 -0
  59. package/dist/assets/Index-DHcNXOjD.js +1 -0
  60. package/dist/assets/{Index-CjdtRbc3.js → Index-DNXXlgZI.js} +1 -1
  61. package/dist/assets/Index-HacBQi5S.js +1 -0
  62. package/dist/assets/Index-InwJndDx.js +1 -0
  63. package/dist/assets/{Index-BzZ1BzmC.js → Index-KeKnmleO.js} +1 -1
  64. package/dist/assets/Index-LByTkG1R.js +1 -0
  65. package/dist/assets/Index-PWI4LACm.js +2 -0
  66. package/dist/assets/Index-TKC7spBk.css +1 -0
  67. package/dist/assets/{Index-Bzg0ghxa.js → Index-f7b3Hnhj.js} +2 -2
  68. package/dist/assets/Index-vUiofO0R.js +1 -0
  69. package/dist/assets/{Invitees-Ez2iurxW.js → Invitees-BG-VxiML.js} +1 -1
  70. package/dist/assets/List-BZZ7J6hV.js +1 -0
  71. package/dist/assets/List-CVQKqACY.js +1 -0
  72. package/dist/assets/List-C_5R7MsB.js +1 -0
  73. package/dist/assets/{LocalTools-B98RJfjb.js → LocalTools-B-v6mWjd.js} +2 -2
  74. package/dist/assets/{LocalTools-Di47buKM.js → LocalTools-d_Cpvudx.js} +1 -1
  75. package/dist/assets/{Logo-B_2Nij9a.js → Logo-vsdlOXNx.js} +1 -1
  76. package/dist/assets/Main-z44znHEo.js +1 -0
  77. package/dist/assets/Message-DvXog9lv.js +3 -0
  78. package/dist/assets/Model-CS9NafTK.js +1 -0
  79. package/dist/assets/Navigator-ByU36BlB.js +8 -0
  80. package/dist/assets/Navigator-DzzTUqkr.css +1 -0
  81. package/dist/assets/{NotFound-DnjqMaxC.js → NotFound-B7O570we.js} +1 -1
  82. package/dist/assets/{PageHeader-BoQ3i56E.js → PageHeader-XQ2ZI5oi.js} +1 -1
  83. package/dist/assets/Pay-CJMoRNwf.js +1 -0
  84. package/dist/assets/Player-BjAhlM5i.js +1 -0
  85. package/dist/assets/{Poivelle-BOenJF8p.js → Poivelle-gikHHTGX.js} +1 -1
  86. package/dist/assets/{RealtimeCall-BW6Cs7Sh.js → RealtimeCall-BqLTAntp.js} +3 -3
  87. package/dist/assets/{ReportButton-D8C8AdnZ.js → ReportButton-Bzz2CkcM.js} +1 -1
  88. package/dist/assets/ReportDialog-2njW70jE.js +1 -0
  89. package/dist/assets/{ScenarioPaymentMode-BcNzNOmt.js → ScenarioPaymentMode-BaLVOrFz.js} +1 -1
  90. package/dist/assets/{ScheduledTasks-VGAnCvRo.js → ScheduledTasks-UXKOx_R9.js} +2 -2
  91. package/dist/assets/ServicePricingSummary-CDYYBNdf.js +1 -0
  92. package/dist/assets/{SharedMarkdown-BSRpQZXQ.js → SharedMarkdown-DgMJ5yS6.js} +1 -1
  93. package/dist/assets/{ShowcaseGrid-8q8RxkPj.js → ShowcaseGrid-CQU8y-_p.js} +1 -1
  94. package/dist/assets/ShowcaseResultTabs-BrMvxK_-.js +1 -0
  95. package/dist/assets/{SolanaWalletPickerDialog-eF8mpt1K.js → SolanaWalletPickerDialog-ZEJq2-js.js} +1 -1
  96. package/dist/assets/Status-CbijUb1r.js +1 -0
  97. package/dist/assets/Subscribe-CHJXeMK_.js +1 -0
  98. package/dist/assets/{TabSwitcher-CV_8wyfO.js → TabSwitcher-B68j0iog.js} +1 -1
  99. package/dist/assets/Tts-kUJ8t6Tj.js +1 -0
  100. package/dist/assets/{VideoPlayer-BcGlUuhp.js → VideoPlayer-D5QyowLz.js} +1 -1
  101. package/dist/assets/{VideoPreview-ktd6jhNp.js → VideoPreview-B3Ge1y5k.js} +1 -1
  102. package/dist/assets/{VueMarkdown-CM5T1qmf.js → VueMarkdown-CnCNB7jR.js} +2 -2
  103. package/dist/assets/WriteSkillDialog-D6u0DtZm.js +1 -0
  104. package/dist/assets/WriteSkillDialog-Dq7Pnanc.css +1 -0
  105. package/dist/assets/{airwallexCheckout-CXYUuVVc.js → airwallexCheckout-Cxx1AabL.js} +1 -1
  106. package/dist/assets/arrow-down-CrxnnUzu.js +1 -0
  107. package/dist/assets/{arrow-down-wide-narrow-KjIBFADl.js → arrow-down-wide-narrow-BlIlUIjt.js} +1 -1
  108. package/dist/assets/arrow-left-Do_3QC8F.js +1 -0
  109. package/dist/assets/arrow-right-BQL1_QMW.js +1 -0
  110. package/dist/assets/arrow-up-BQh_uho_.js +1 -0
  111. package/dist/assets/{authorizeFlow-CTVRDemZ.js → authorizeFlow-BJdepJ3R.js} +1 -1
  112. package/dist/assets/avatar-CGtlW6zU.js +1 -0
  113. package/dist/assets/{back-navigation-DqyKRVXU.js → back-navigation-BIrHIWJy.js} +1 -1
  114. package/dist/assets/{basic-DG1CanPj.js → basic-DFEogfXq.js} +1 -1
  115. package/dist/assets/{book-open-CrVc_9Va.js → book-open-_guxQcoA.js} +1 -1
  116. package/dist/assets/{box-0ZdSw--w.js → box-CYBPc1Rz.js} +1 -1
  117. package/dist/assets/{boxes-CILmS9oc.js → boxes-Dczys5iR.js} +1 -1
  118. package/dist/assets/{brain-Bg4BFxle.js → brain-C3F88E04.js} +1 -1
  119. package/dist/assets/{chart-no-axes-combined-DzqyC_3P.js → chart-no-axes-combined-sr2W-cy-.js} +1 -1
  120. package/dist/assets/chat-KmdJ9Xcn.js +1 -0
  121. package/dist/assets/check-CvzlOh9y.js +1 -0
  122. package/dist/assets/chevron-down-B4V8oKg4.js +1 -0
  123. package/dist/assets/chevron-right-BC5ylckn.js +1 -0
  124. package/dist/assets/{circle-alert-BvrD-umn.js → circle-alert-CMUvmX0p.js} +1 -1
  125. package/dist/assets/circle-check-DtG7_-0o.js +1 -0
  126. package/dist/assets/{circle-question-mark-BKjf4U2z.js → circle-question-mark-BXwYW3M_.js} +1 -1
  127. package/dist/assets/{clipboard-list-C7qDVyXw.js → clipboard-list-D3Jcr1wW.js} +1 -1
  128. package/dist/assets/clock-IAci-Zzy.js +1 -0
  129. package/dist/assets/code-C0f79oRQ.js +1 -0
  130. package/dist/assets/{codingBridge-DJxa2Ctr.js → codingBridge-BnXqGUk-.js} +1 -1
  131. package/dist/assets/{codingBridge-DNaWsf8h.js → codingBridge-Byj8IN6B.js} +1 -1
  132. package/dist/assets/{codingBridge-C4w0uRt_.js → codingBridge-C3-XZ2S-.js} +1 -1
  133. package/dist/assets/{codingBridge-CWYAzcU4.js → codingBridge-C4S3TQ2O.js} +1 -1
  134. package/dist/assets/codingBridge-CMi6fCj5.js +2 -0
  135. package/dist/assets/{codingBridge-BDEdzBFe.js → codingBridge-CX2T1MoG.js} +1 -1
  136. package/dist/assets/{codingBridge-2jZjSYGT.js → codingBridge-DE8OuFkd.js} +1 -1
  137. package/dist/assets/{codingBridge-B0S_pFNE.js → codingBridge-DNYbt9Wj.js} +1 -1
  138. package/dist/assets/{codingBridge-CmbX76zB.js → codingBridge-DS7LKip0.js} +1 -1
  139. package/dist/assets/{codingBridge-co3msHz2.js → codingBridge-DWX5O1-q.js} +1 -1
  140. package/dist/assets/{codingBridge-C-7r6SDr.js → codingBridge-Dcrg2PjU.js} +1 -1
  141. package/dist/assets/{codingBridge-CmImNHXz.js → codingBridge-DjgK0jYZ.js} +1 -1
  142. package/dist/assets/codingBridge-ybbC8NBB.js +1 -0
  143. package/dist/assets/{codingBridgeNotify-5aH35f9g.js → codingBridgeNotify-Bwf5NQbl.js} +2 -2
  144. package/dist/assets/{coins-ByOkYoJ7.js → coins-BQ6zVtEX.js} +1 -1
  145. package/dist/assets/collapse-B0Wi9F4l.js +1 -0
  146. package/dist/assets/common-B0IDRASJ.js +1 -0
  147. package/dist/assets/common-BJ-Az-vA.js +1 -0
  148. package/dist/assets/common-BnGMhmEr.js +1 -0
  149. package/dist/assets/common-CUZl0lkV.js +1 -0
  150. package/dist/assets/common-D8s1fMEF.js +1 -0
  151. package/dist/assets/common-DIFVLaNh.js +1 -0
  152. package/dist/assets/common-DKecTXML.js +1 -0
  153. package/dist/assets/common-DeqClFGz.js +1 -0
  154. package/dist/assets/common-DlE175vL.js +1 -0
  155. package/dist/assets/common-MVvgvCjP.js +1 -0
  156. package/dist/assets/common-RzLnaRJN.js +1 -0
  157. package/dist/assets/common-kO_UBrO5.js +1 -0
  158. package/dist/assets/console-5v8LzR_v.js +1 -0
  159. package/dist/assets/console-BBZn8pM7.js +1 -0
  160. package/dist/assets/console-BuHKYX9X.js +1 -0
  161. package/dist/assets/console-COPzvKke.js +1 -0
  162. package/dist/assets/console-ChRHd4hW.js +1 -0
  163. package/dist/assets/console-CiX-QKAj.js +1 -0
  164. package/dist/assets/console-D-SaYNid.js +1 -0
  165. package/dist/assets/console-D5dQI25O.js +1 -0
  166. package/dist/assets/console-DUCTsjPA.js +1 -0
  167. package/dist/assets/console-DePWpRMI.js +1 -0
  168. package/dist/assets/console-PhNDi1ry.js +1 -0
  169. package/dist/assets/console-YJglHgj3.js +1 -0
  170. package/dist/assets/constants-XMLzMJVJ.js +3 -0
  171. package/dist/assets/{copy-BJPAr10s.js → copy-VxF2BScc.js} +1 -1
  172. package/dist/assets/createTaskActions-DoijteH6.js +1 -0
  173. package/dist/assets/date-picker-CCvbZlsC.js +1 -0
  174. package/dist/assets/{digitalhuman-9F-0rc7S.js → digitalhuman-COquG9OT.js} +1 -1
  175. package/dist/assets/{distribution-BJg3yUi1.js → distribution-ATagO31u.js} +1 -1
  176. package/dist/assets/{distribution-zXx9jCd8.js → distribution-B6rpEDSh.js} +1 -1
  177. package/dist/assets/{distribution-CLwMNLyT.js → distribution-BD_UlcWf.js} +1 -1
  178. package/dist/assets/{distribution-cVe2gdNN.js → distribution-BUdflwwz.js} +1 -1
  179. package/dist/assets/{distribution-7Fh-IyXM.js → distribution-BuGlQh86.js} +1 -1
  180. package/dist/assets/{distribution-DjBA4MaX.js → distribution-CYbeU4Kx.js} +1 -1
  181. package/dist/assets/{distribution-Ci3qUjd1.js → distribution-D1tzKj8Z.js} +1 -1
  182. package/dist/assets/{distribution-DvTAlUfh.js → distribution-D60ESr4w.js} +1 -1
  183. package/dist/assets/{distribution-BsauWM2Q.js → distribution-D9OF7j8R.js} +1 -1
  184. package/dist/assets/{distribution-CltEcoqH.js → distribution-DYe_3hS7.js} +1 -1
  185. package/dist/assets/{distribution-mxjAGVCN.js → distribution-Dx7f4qch.js} +1 -1
  186. package/dist/assets/{distribution-DG81HykN.js → distribution-ryO3eAPQ.js} +1 -1
  187. package/dist/assets/{dollar-sign-n-Tt9Cpo.js → dollar-sign-DUccWNag.js} +1 -1
  188. package/dist/assets/{download-B0q5f2E1.js → download-e2JcTyyo.js} +1 -1
  189. package/dist/assets/{drawer-DamI5uaf.js → drawer-BVEcNx1I.js} +1 -1
  190. package/dist/assets/dropdown-6Dhj8aGv.js +1 -0
  191. package/dist/assets/dropdown-DVWMF6_3.js +1 -0
  192. package/dist/assets/{ellipsis-BYLu3V6h.js → ellipsis-BtC3IBcT.js} +1 -1
  193. package/dist/assets/{esm-B0cqglkS.js → esm-BF1E2FMw.js} +2 -2
  194. package/dist/assets/{esm-RN6r0DQ-.js → esm-BWUcVVKJ.js} +2 -2
  195. package/dist/assets/esm-CoJds8QY.js +1 -0
  196. package/dist/assets/{external-link-BqV1WK-s.js → external-link-DHAxzeng.js} +1 -1
  197. package/dist/assets/{eye-CJBA6WA0.js → eye-D_qht_hF.js} +1 -1
  198. package/dist/assets/{file-DqnxaGHl.js → file-DpjGg0Y_.js} +1 -1
  199. package/dist/assets/{file-output-o_l1QqqL.js → file-output-Bi4vq7Ue.js} +1 -1
  200. package/dist/assets/{file-text-Bj3BXvCE.js → file-text-Cy_bvnO7.js} +1 -1
  201. package/dist/assets/{fish-dIocUzvp.js → fish-DnPwoPWE.js} +1 -1
  202. package/dist/assets/{pixverse-DqT1iBtw.js → flux-WBOJvTOp.js} +1 -1
  203. package/dist/assets/{folder-B3JHv5LN.js → folder-mtavbhFP.js} +1 -1
  204. package/dist/assets/gauge-Dr0RTbvf.js +1 -0
  205. package/dist/assets/{generationInput-DCls0eJq.js → generationInput-ClY8zxHb.js} +1 -1
  206. package/dist/assets/{globe-D4HWyujz.js → globe-t_hc2uvW.js} +1 -1
  207. package/dist/assets/{grokvideo-Dva6b1oG.js → grokvideo-wIrAkg60.js} +1 -1
  208. package/dist/assets/{hailuo-CMeJI4gQ.js → hailuo-CLFyD3vr.js} +1 -1
  209. package/dist/assets/{hash-Diu_HqIl.js → hash-CGhR3E3W.js} +1 -1
  210. package/dist/assets/{headphones-BfmIa5rB.js → headphones-BGX9rE2z.js} +1 -1
  211. package/dist/assets/{history-CwtrOjRB.js → history-BNoxEv4L.js} +1 -1
  212. package/dist/assets/{house-CXwKJDjH.js → house-Cq29AjkF.js} +1 -1
  213. package/dist/assets/{image-NtJngVEl.js → image-D-Qn2R2s.js} +1 -1
  214. package/dist/assets/{imageRequests-BqW0AmGk.js → imageRequests-Dpxiq1GM.js} +1 -1
  215. package/dist/assets/index-B_mDD17T.js +572 -0
  216. package/dist/assets/index-DKAHKezv.css +1 -0
  217. package/dist/assets/{index.es-CdB-J-wx.js → index.es-DbG45pQU.js} +1 -1
  218. package/dist/assets/{info-BUW8TMM-.js → info-AarYb6UU.js} +1 -1
  219. package/dist/assets/{input-number-BBNx1mU6.js → input-number-BweR5GSS.js} +1 -1
  220. package/dist/assets/{kling-CT9ojeoM.js → kling-Bu2NuHka.js} +1 -1
  221. package/dist/assets/{languages-DMbcIpFi.js → languages-q4pS3WIA.js} +1 -1
  222. package/dist/assets/{laptop-Vv5AbmfX.js → laptop-D3ytrLBJ.js} +1 -1
  223. package/dist/assets/{lightbulb-D_3ZlKhj.js → lightbulb-C5S29mMv.js} +1 -1
  224. package/dist/assets/{link-rOb35aon.js → link-CwjIRcQu.js} +1 -1
  225. package/dist/assets/loader-circle-ly_u_IQt.js +1 -0
  226. package/dist/assets/{veo-CdYZ-jlQ.js → luma-DSTa_ctL.js} +1 -1
  227. package/dist/assets/{maestro-joeqtyF6.js → maestro-Cgi6iLeE.js} +1 -1
  228. package/dist/assets/{maestroLanguages-D_2GELQ8.js → maestroLanguages-DwLnUjSV.js} +1 -1
  229. package/dist/assets/{mail-7XHkNoFd.js → mail-VqGM1wzH.js} +1 -1
  230. package/dist/assets/{message-circle-B1K_DkmL.js → message-circle-BIELZnpU.js} +1 -1
  231. package/dist/assets/{mic-DCxmIWeo.js → mic-DhjvDuzZ.js} +1 -1
  232. package/dist/assets/midjourney-YlQQ7xGW.js +1 -0
  233. package/dist/assets/minimax-CYpaxOzz.js +1 -0
  234. package/dist/assets/{mobileLocalExec-DMOHRvWj.js → mobileLocalExec-BGEH-cVh.js} +2 -2
  235. package/dist/assets/{monitor-CmlS88DG.js → monitor-w2z0MlEY.js} +1 -1
  236. package/dist/assets/{mouse-pointer-2-Bcu7fPMf.js → mouse-pointer-2-Dktit1x1.js} +1 -1
  237. package/dist/assets/music-2-TpIjRQXw.js +1 -0
  238. package/dist/assets/{nanobanana-Dc2G3sMQ.js → nanobanana-B5-IKS73.js} +1 -1
  239. package/dist/assets/{omni-BbnO_EW8.js → omni-ROlnzeCN.js} +1 -1
  240. package/dist/assets/{openaiimage-DAzqleNX.js → openaiimage-DoIMIVMy.js} +1 -1
  241. package/dist/assets/{pagination-Bh-dYjHO.js → pagination-7tCwz5Wb.js} +1 -1
  242. package/dist/assets/pagination-CVG3qxWX.js +1 -0
  243. package/dist/assets/pagination-CVnl1h3Q.css +1 -0
  244. package/dist/assets/{pagination-XDC_l2z2.js → pagination-DkzSLsHS.js} +1 -1
  245. package/dist/assets/{palette-Ce6UYKUL.js → palette-B-I3eqTr.js} +1 -1
  246. package/dist/assets/{paperclip-mrCkQ8Vb.js → paperclip-CiVURlUk.js} +1 -1
  247. package/dist/assets/{pause-I57M9rCW.js → pause-hlQVsPkR.js} +1 -1
  248. package/dist/assets/{pencil-CA98uaFE.js → pencil-B83LjyZM.js} +1 -1
  249. package/dist/assets/{pika-DpFqsyus.js → pika-CsJCe7Ud.js} +1 -1
  250. package/dist/assets/{flux-DK16Fm29.js → pixverse-CdoZ8UDF.js} +1 -1
  251. package/dist/assets/play-BHPb6zRT.js +1 -0
  252. package/dist/assets/{plug-Cnm29xXZ.js → plug-BJ2TKjcm.js} +1 -1
  253. package/dist/assets/plus-BgGyj7OG.js +1 -0
  254. package/dist/assets/poivelle-B_KpomXv.js +1 -0
  255. package/dist/assets/{popover-DAFcE4hu.js → popover-BNuza1no.js} +1 -1
  256. package/dist/assets/producer-Cftxullw.js +1 -0
  257. package/dist/assets/{qrart-DpJc8-WJ.js → qrart-ggf6-aqL.js} +1 -1
  258. package/dist/assets/qwenimage-CbH5cDWi.js +1 -0
  259. package/dist/assets/realtime-C3GP19Ox.js +1 -0
  260. package/dist/assets/{refresh-cw-BdkNZ1NR.js → refresh-cw-Bvqf2cXR.js} +1 -1
  261. package/dist/assets/rotate-ccw-B1viIggk.js +1 -0
  262. package/dist/assets/rotate-cw-BFAaVvoq.js +1 -0
  263. package/dist/assets/row-CgEMxZUK.js +1 -0
  264. package/dist/assets/scroll-text-DNioxlF3.js +1 -0
  265. package/dist/assets/search-D9sS2zks.js +1 -0
  266. package/dist/assets/{seedance-CrIzkaF9.js → seedance-vjO0LxfY.js} +1 -1
  267. package/dist/assets/seedream-DDubAk0V.js +1 -0
  268. package/dist/assets/select-BqzezbgS.js +1 -0
  269. package/dist/assets/serp-B9uitIQK.js +1 -0
  270. package/dist/assets/{shield-CUuYhjpy.js → shield-BidAVgcr.js} +1 -1
  271. package/dist/assets/{showcase-D0ME1wU6.js → showcase-C-f0cCbc.js} +1 -1
  272. package/dist/assets/showcaseRecreateMixin-BWDEj-jO.js +1 -0
  273. package/dist/assets/{shuffle-BfoDOPEE.js → shuffle-C-ey6c0w.js} +1 -1
  274. package/dist/assets/{siteHome-DrgalPiu.js → siteHome-Cm4ERvnr.js} +1 -1
  275. package/dist/assets/{skill-5gP4o8NV.js → skill-0g_luo5R.js} +1 -1
  276. package/dist/assets/{skill-CJNW57N1.js → skill-B07Ijn5i.js} +1 -1
  277. package/dist/assets/{skill-D8LRqjJi.js → skill-BJgaq7OZ.js} +1 -1
  278. package/dist/assets/{skill-wRgUszIb.js → skill-Byo5cYNZ.js} +1 -1
  279. package/dist/assets/{skill-DmG9UgOb.js → skill-CQGW8Q1T.js} +1 -1
  280. package/dist/assets/{skill-DYANzYm8.js → skill-CpCuyQYr.js} +1 -1
  281. package/dist/assets/{skill-BOoRqnxn.js → skill-DH20CjXt.js} +1 -1
  282. package/dist/assets/{skill-BMiuMGjA.js → skill-DIEOWjK5.js} +1 -1
  283. package/dist/assets/{skill-DsMsj3gk.js → skill-Dx9sM0VW.js} +1 -1
  284. package/dist/assets/{skill-oNOc8c8Z.js → skill-iYzmeC7M.js} +1 -1
  285. package/dist/assets/{skill-DUHHh8_i.js → skill-l_jxXvUb.js} +1 -1
  286. package/dist/assets/{skill-AkEOeI8W.js → skill-qbrFbNq8.js} +1 -1
  287. package/dist/assets/slider-fnY2n6px.js +1 -0
  288. package/dist/assets/{solana-wallets-C-nQwZCV.js → solana-wallets-BERlGY2O.js} +2 -2
  289. package/dist/assets/{sora-cnZM57SD.js → sora-BUctVwZa.js} +1 -1
  290. package/dist/assets/{sparkles-CIwtlX9g.js → sparkles-BvDv6ds2.js} +1 -1
  291. package/dist/assets/square-RZDqdJlO.js +1 -0
  292. package/dist/assets/suno-Be9UhEcX.js +1 -0
  293. package/dist/assets/{switch-ow_qyizo.js → switch-C6gnvMgV.js} +1 -1
  294. package/dist/assets/{table-BiG_SGtw.js → table-dVwxM5TO.js} +1 -1
  295. package/dist/assets/tabs-CwdrUb8P.js +1 -0
  296. package/dist/assets/{tag-DJAL_nkG.js → tag-BOA3YC3-.js} +1 -1
  297. package/dist/assets/{taskPolling-CWPvewf9.js → taskPolling-BRIyWeSm.js} +1 -1
  298. package/dist/assets/terminal-CihWj-P8.js +1 -0
  299. package/dist/assets/time-picker-B7Amze8v.js +1 -0
  300. package/dist/assets/tooltip-BBrV3AZK.js +1 -0
  301. package/dist/assets/{trash-2-B7gaXM-v.js → trash-2-BPjzpfWl.js} +1 -1
  302. package/dist/assets/{triangle-alert-DwX9xyA4.js → triangle-alert-hVh_-DcV.js} +1 -1
  303. package/dist/assets/{upload-B3KR4brI.js → upload-Cra0_3dJ.js} +1 -1
  304. package/dist/assets/upload-XUGlysu6.js +1 -0
  305. package/dist/assets/user-BEv2qjci.js +1 -0
  306. package/dist/assets/{vendor-highlight-Dd94xpKT.js → vendor-highlight-PMOaWWrP.js} +4 -4
  307. package/dist/assets/vendor-highlight-XQIgUEMi.css +1 -0
  308. package/dist/assets/veo-DJ8zjGWr.js +1 -0
  309. package/dist/assets/{video-C3ioZP-q.js → video-DM7P7XL-.js} +1 -1
  310. package/dist/assets/{volume-2-Mh3tZ8_0.js → volume-2-DoGYvPKH.js} +1 -1
  311. package/dist/assets/vuex.esm-bundler-BxNPLO2l.js +1 -0
  312. package/dist/assets/{wallet-DsigGR_d.js → wallet-DCbr1SCc.js} +1 -1
  313. package/dist/assets/{wan-yeAqB-Mq.js → wan-CJgJf4gd.js} +1 -1
  314. package/dist/assets/{wand-sparkles-DhtJfk2J.js → wand-sparkles-B3s3EW_F.js} +1 -1
  315. package/dist/assets/{web-D4t_NNCi.js → web-B0taMipw.js} +1 -1
  316. package/dist/assets/{web-H_L6W1pi.js → web-CMCs3BWX.js} +1 -1
  317. package/dist/assets/{web-D_c6mC_e.js → web-DOauQbLK.js} +1 -1
  318. package/dist/assets/{web-CiT31oCv.js → web-OTda-796.js} +1 -1
  319. package/dist/assets/{web-CysHSf7q.js → web-nb5LyGMf.js} +1 -1
  320. package/dist/assets/webextrator-CgBbtaN5.js +1 -0
  321. package/dist/assets/{zap-BeO4t3CC.js → zap-CLXFE1AD.js} +1 -1
  322. package/dist/index.html +4 -4
  323. package/package.json +2 -2
  324. package/dist/assets/Artifacts-Y24bFfPx.js +0 -1
  325. package/dist/assets/BrowseConnectors-2CUtlbwj.js +0 -1
  326. package/dist/assets/BrowserPairingDialog-jmxpc8Gu.js +0 -1
  327. package/dist/assets/Console-DxXpHVHe.js +0 -1
  328. package/dist/assets/Conversation-BZ_zkoDf.js +0 -2
  329. package/dist/assets/Conversation-BegVTuHA.css +0 -1
  330. package/dist/assets/CopyToClipboard-B9SD8m8Y.css +0 -1
  331. package/dist/assets/Detail-BUIBlR_J.js +0 -2
  332. package/dist/assets/Extra-TXH0ckMs.js +0 -1
  333. package/dist/assets/History-BwksNUme.css +0 -1
  334. package/dist/assets/History-CnaeAbbd.js +0 -1
  335. package/dist/assets/Index-1JGUGTcX.js +0 -1
  336. package/dist/assets/Index-4bSNyYiv.js +0 -1
  337. package/dist/assets/Index-5F8TNYz3.js +0 -1
  338. package/dist/assets/Index-7truovwu.js +0 -1
  339. package/dist/assets/Index-B6FhkcRt.js +0 -1
  340. package/dist/assets/Index-BRYvcNd9.js +0 -1
  341. package/dist/assets/Index-BRe0Aonn.js +0 -1
  342. package/dist/assets/Index-BYrd7Qs5.js +0 -1
  343. package/dist/assets/Index-BbNoTeuK.js +0 -1
  344. package/dist/assets/Index-BgVk3ylC2.js +0 -1
  345. package/dist/assets/Index-BrIloBoh.js +0 -1
  346. package/dist/assets/Index-By3amIzk.js +0 -1
  347. package/dist/assets/Index-C-9XOn0Q.js +0 -1
  348. package/dist/assets/Index-CHNkHLSz.css +0 -1
  349. package/dist/assets/Index-CJUvfNcR.js +0 -1
  350. package/dist/assets/Index-CPbpAJ9X.js +0 -1
  351. package/dist/assets/Index-CUMkU6oY.js +0 -1
  352. package/dist/assets/Index-CaRBh1qH.js +0 -1
  353. package/dist/assets/Index-Cgay68bZ.js +0 -1
  354. package/dist/assets/Index-CojUOAeF.js +0 -1
  355. package/dist/assets/Index-Cr2GFWfm.js +0 -1
  356. package/dist/assets/Index-CyT52slQ.js +0 -1
  357. package/dist/assets/Index-CzhFnxhW.js +0 -2
  358. package/dist/assets/Index-D43Dd82s.js +0 -2
  359. package/dist/assets/Index-DLBEktwN.css +0 -1
  360. package/dist/assets/Index-DOtlpIox.js +0 -1
  361. package/dist/assets/Index-DPdfb10s.js +0 -1
  362. package/dist/assets/Index-DpC9wqXK.js +0 -2
  363. package/dist/assets/Index-Dq9TZSG6.js +0 -1
  364. package/dist/assets/Index-I3Kb9vqq.js +0 -1
  365. package/dist/assets/Index-KPbML_BV.js +0 -1
  366. package/dist/assets/Index-K_w30vLh.js +0 -1
  367. package/dist/assets/Index-TO2KXhk7.css +0 -1
  368. package/dist/assets/Index-ZZyJytnH.js +0 -1
  369. package/dist/assets/List-B1LT-QgX.js +0 -1
  370. package/dist/assets/List-BMvs8mb-.js +0 -1
  371. package/dist/assets/List-D4PRDTN7.js +0 -1
  372. package/dist/assets/Main-GMU9DZhA.js +0 -1
  373. package/dist/assets/Message-BXD7WDHV.js +0 -3
  374. package/dist/assets/Model-BQZsp1Rc.js +0 -1
  375. package/dist/assets/Navigator-CiVhSyY2.css +0 -1
  376. package/dist/assets/Navigator-QmK3o7i1.js +0 -8
  377. package/dist/assets/Pay-DQDtZbAF.js +0 -1
  378. package/dist/assets/Player-B8uUoiJP.js +0 -1
  379. package/dist/assets/ReportDialog-c0CEn7t9.js +0 -1
  380. package/dist/assets/ServicePricingSummary-DScjReci.js +0 -1
  381. package/dist/assets/ShowcaseResultTabs-BE8TSkDF.js +0 -1
  382. package/dist/assets/Status-UNRNVAzV.js +0 -1
  383. package/dist/assets/Subscribe-7v8zCaUN.js +0 -1
  384. package/dist/assets/Tts-Bc4f_kpk.js +0 -1
  385. package/dist/assets/WriteSkillDialog-BT8b9orV.js +0 -1
  386. package/dist/assets/WriteSkillDialog-DkwaroE4.css +0 -1
  387. package/dist/assets/arrow-down-BmapFvbA.js +0 -1
  388. package/dist/assets/arrow-left-MLdzkhb5.js +0 -1
  389. package/dist/assets/arrow-right-CIcwdNpm.js +0 -1
  390. package/dist/assets/arrow-up-nmldwjKJ.js +0 -1
  391. package/dist/assets/avatar-Csc3l-if.js +0 -1
  392. package/dist/assets/byok-3n6T0alx.js +0 -1
  393. package/dist/assets/byok-B2r5VmII.js +0 -1
  394. package/dist/assets/byok-BC48N7S1.js +0 -1
  395. package/dist/assets/byok-BRMIr-M_.js +0 -1
  396. package/dist/assets/byok-CRFX2Iok.js +0 -1
  397. package/dist/assets/byok-CUiGQSQq.js +0 -1
  398. package/dist/assets/byok-Cdgjel5C.js +0 -1
  399. package/dist/assets/byok-Ct580UbG.js +0 -1
  400. package/dist/assets/byok-DUt6CQuB.js +0 -1
  401. package/dist/assets/byok-D_PsUQ7p.js +0 -1
  402. package/dist/assets/byok-DrBDAGst.js +0 -1
  403. package/dist/assets/byok-FiYHQNUV.js +0 -1
  404. package/dist/assets/chat-Byctvz9k.js +0 -1
  405. package/dist/assets/check-BIYQE6-Q.js +0 -1
  406. package/dist/assets/chevron-down-BBSnjpXo.js +0 -1
  407. package/dist/assets/chevron-right-D69HhqiD.js +0 -1
  408. package/dist/assets/circle-check-gnxlR6Vj.js +0 -1
  409. package/dist/assets/clock-RIcgmtyy.js +0 -1
  410. package/dist/assets/code-Bp64dHhF.js +0 -1
  411. package/dist/assets/codingBridge-BwG9a_T6.js +0 -2
  412. package/dist/assets/codingBridge-C0TmJx0P.js +0 -1
  413. package/dist/assets/collapse-dp1hZF2q.js +0 -1
  414. package/dist/assets/common-BRlXUNLP.js +0 -1
  415. package/dist/assets/common-B_M3LvGi.js +0 -1
  416. package/dist/assets/common-C2o8NoAy.js +0 -1
  417. package/dist/assets/common-C7rflxoL.js +0 -1
  418. package/dist/assets/common-CPTNrFOS.js +0 -1
  419. package/dist/assets/common-CqOkQeeX.js +0 -1
  420. package/dist/assets/common-CtJf9Xwg.js +0 -1
  421. package/dist/assets/common-DgIwz66M.js +0 -1
  422. package/dist/assets/common-DxAXLCCZ.js +0 -1
  423. package/dist/assets/common-IucWu3x6.js +0 -1
  424. package/dist/assets/common-LWAeT3Rn.js +0 -1
  425. package/dist/assets/common-PEbspY5C.js +0 -1
  426. package/dist/assets/console-BTcbcYrg.js +0 -1
  427. package/dist/assets/console-Bmj64vgr.js +0 -1
  428. package/dist/assets/console-BoJwfPRy.js +0 -1
  429. package/dist/assets/console-CCcbT9C5.js +0 -1
  430. package/dist/assets/console-CURLllmA.js +0 -1
  431. package/dist/assets/console-Ce9JZpHL.js +0 -1
  432. package/dist/assets/console-CjJjT6T_.js +0 -1
  433. package/dist/assets/console-DOrcPqaf.js +0 -1
  434. package/dist/assets/console-DShIPOu2.js +0 -1
  435. package/dist/assets/console-Dkfs_so8.js +0 -1
  436. package/dist/assets/console-Doi1l5z7.js +0 -1
  437. package/dist/assets/console-FxBtsGxI.js +0 -1
  438. package/dist/assets/constants-_IZvla_Y.js +0 -3
  439. package/dist/assets/createTaskActions-DNstg_gL.js +0 -1
  440. package/dist/assets/date-picker-CJwu-g9C.js +0 -1
  441. package/dist/assets/dropdown-CDGSS4A4.js +0 -1
  442. package/dist/assets/dropdown-CxemIApF.js +0 -1
  443. package/dist/assets/empty-C5KjRN0h.js +0 -1
  444. package/dist/assets/esm-DteZMVvz.js +0 -1
  445. package/dist/assets/gauge-CGeQiphY.js +0 -1
  446. package/dist/assets/index-8jAipDuW.js +0 -572
  447. package/dist/assets/index-fwviPdJe.css +0 -1
  448. package/dist/assets/key-round-CFuL3UL-.js +0 -1
  449. package/dist/assets/loader-circle-CTS1wrQv.js +0 -1
  450. package/dist/assets/lock-Lv2blr-R.js +0 -1
  451. package/dist/assets/luma-an2eRYhS.js +0 -1
  452. package/dist/assets/midjourney-VprAIft5.js +0 -1
  453. package/dist/assets/minimax-B8ruwoSa.js +0 -1
  454. package/dist/assets/models-CCu2QuuH.js +0 -1
  455. package/dist/assets/music-2-C-M-RW67.js +0 -1
  456. package/dist/assets/pagination-4021RoIz.js +0 -1
  457. package/dist/assets/pagination-4fpGtxqE.css +0 -1
  458. package/dist/assets/play-C3KPmQgK.js +0 -1
  459. package/dist/assets/plus-Gmd8kdtd.js +0 -1
  460. package/dist/assets/poivelle-C4848O1X.js +0 -1
  461. package/dist/assets/producer-CFabW3wj.js +0 -1
  462. package/dist/assets/qwenimage-BpTJ7amQ.js +0 -1
  463. package/dist/assets/realtime-Mzm9poPy.js +0 -1
  464. package/dist/assets/rotate-ccw-Ekt5q49b.js +0 -1
  465. package/dist/assets/rotate-cw-CrW-EOmI.js +0 -1
  466. package/dist/assets/row-Czn2Kkld.js +0 -1
  467. package/dist/assets/search-CQEBM7oa.js +0 -1
  468. package/dist/assets/seedream-CCmhQGAi.js +0 -1
  469. package/dist/assets/select-BuOkom3f.js +0 -1
  470. package/dist/assets/serp-Ce6rVkIQ.js +0 -1
  471. package/dist/assets/showcaseRecreateMixin-Br3tohbC.js +0 -1
  472. package/dist/assets/slider-DJ0s7duw.js +0 -1
  473. package/dist/assets/square-Csk5tTKc.js +0 -1
  474. package/dist/assets/store-Cdgt5X4R.js +0 -1
  475. package/dist/assets/suno-3kLibWTB.js +0 -1
  476. package/dist/assets/tabs-WluDlUQJ.js +0 -1
  477. package/dist/assets/terminal-xkdU2scH.js +0 -1
  478. package/dist/assets/time-picker-DJrjdHxJ.js +0 -1
  479. package/dist/assets/tooltip-th739z_F.js +0 -1
  480. package/dist/assets/upload-BHQ8IZ4_.js +0 -1
  481. package/dist/assets/user-Bmkto59I.js +0 -1
  482. package/dist/assets/vendor-highlight-B4zA4Q-i.css +0 -1
  483. package/dist/assets/webextrator-CMCiswOO.js +0 -1
@@ -1 +1 @@
1
- var e={"nodeList.title":{message:`Dispositivos`,description:`Título da lista de dispositivos do Coding Bridge`},"nodeList.refresh":{message:`Atualizar`,description:`Atualiza a lista de dispositivos`},"nodeList.pair":{message:`Parear dispositivo`,description:`Abre a caixa de diálogo para parear dispositivos`},"nodeList.empty":{message:`Nenhum dispositivo pareado ainda.`,description:`Mensagem quando a lista de dispositivos está vazia`},"nodeList.pairFirst":{message:`Parear primeiro dispositivo`,description:`Botão de pareamento no estado vazio`},"nodeList.rename":{message:`Renomear`,description:`Rename a device`},"nodeList.renamePrompt":{message:`Dê um nome a este dispositivo. O nome é sincronizado com todos os seus dispositivos conectados.`,description:`Rename device input prompt`},"nodeList.renameEmpty":{message:`O nome não pode ficar vazio.`,description:`Rename device empty-name validation`},"nodeList.renameTooLong":{message:`O nome deve ter no máximo {max} caracteres.`,description:`Rename device too-long validation`},"nodeList.renameSuccess":{message:`Dispositivo renomeado.`,description:`Rename device success`},"nodeList.renameFailed":{message:`Falha ao renomear o dispositivo.`,description:`Rename device failure`},"nodeList.remove":{message:`Remover`,description:`Remove um dispositivo`},"nodeList.removeConfirm":{message:`Remover o dispositivo “{name}”? Após a remoção, será necessário parear novamente.`,description:`Confirmação para remover um dispositivo`},"nodeList.removeSuccess":{message:`Dispositivo removido.`,description:`Mensagem de sucesso ao remover um dispositivo`},"nodeList.removeFailed":{message:`Falha ao remover o dispositivo.`,description:`Mensagem de falha ao tentar remover um dispositivo`},"status.online":{message:`Online`,description:`Estado do dispositivo online`},"status.offline":{message:`Offline`,description:`Estado do dispositivo offline`},"connection.disconnected":{message:`Desconectado`,description:`A conexão do relé foi desconectada`},"connection.connecting":{message:`Conectando…`,description:`O relé está se conectando`},"connection.connected":{message:`Conectado`,description:`O relé está conectado`},"connection.error":{message:`Erro de conexão`,description:`Erro na conexão do relé`},"pair.title":{message:`Parear dispositivo`,description:`Título da caixa de diálogo de pareamento`},"pair.intro":{message:`Execute o proxy Coding Bridge no seu computador e insira o código de pareamento aqui para controlá-lo pela web.`,description:`Introdução da caixa de diálogo de pareamento`},"pair.step1":{message:`Instale o proxy (requer Python 3.10+):`,description:`Passo 1 do pareamento`},"pair.step2":{message:`Inicie e siga as instruções:`,description:`Passo 2 do pareamento`},"pair.step3":{message:`Insira o código de pareamento exibido abaixo.`,description:`Passo 3 do pareamento`},"pair.codePlaceholder":{message:`Código de pareamento`,description:`Placeholder para o campo de entrada do código de pareamento`},"pair.claim":{message:`Parear dispositivo`,description:`Botão de confirmação para parear`},"pair.success":{message:`Dispositivo “{name}” pareado.`,description:`Mensagem de sucesso ao parear um dispositivo`},"pair.invalidCode":{message:`Código de pareamento inválido ou expirado.`,description:`Erro de código de pareamento inválido`},"pair.usedCode":{message:`Este código de pareamento já foi utilizado.`,description:`Erro de código de pareamento já utilizado`},"pair.failed":{message:`Falha ao parear dispositivo.`,description:`Erro genérico de pareamento`},"permission.title":{message:`Autorização necessária`,description:`Título da caixa de diálogo de autorização`},"permission.subtitle":{message:`A autorização para usar uma ferramenta é necessária, continue após a aprovação.`,description:`Subtítulo da caixa de diálogo de autorização`},"permission.deny":{message:`Negar`,description:`Negar ferramenta de autorização`},"permission.allow":{message:`Permitir`,description:`Permitir ferramenta de autorização`},"session.noDevice":{message:`Selecione um dispositivo para começar a codificar.`,description:`Placeholder quando nenhum dispositivo é selecionado`},"session.newSession":{message:`Nova sessão`,description:`Iniciar nova sessão`},"session.deviceOffline":{message:`Este dispositivo está offline. Por favor, inicie o proxy Coding Bridge neste dispositivo para continuar.`,description:`Aviso de dispositivo offline`},"session.nodeId":{message:`ID do dispositivo`,description:`Diagnostic label for the node id`},"session.sessionId":{message:`ID da sessão`,description:`Diagnostic label for the session id`},"session.traceId":{message:`ID de rastreamento`,description:`Diagnostic label for the trace id`},"session.startHint":{message:`Envie uma mensagem para iniciar a sessão neste dispositivo.`,description:`Dica para iniciar uma nova sessão`},"session.cwdPlaceholder":{message:`Diretório de trabalho (opcional)`,description:`Placeholder para o campo de entrada do diretório de trabalho`},"session.modelPlaceholder":{message:`Modelo (opcional)`,description:`Placeholder para o campo de entrada do modelo`},"session.promptPlaceholder":{message:`Envie uma mensagem ao proxy…`,description:`Placeholder para o campo de entrada do prompt`},"session.send":{message:`Enviar`,description:`Botão para enviar a mensagem`},"session.voiceInput":{message:`Entrada de voz`,description:`Iniciar a conversão de voz em texto`},"session.voiceStop":{message:`Parar entrada de voz`,description:`Parar a transcrição de voz`},"session.voiceListening":{message:`Ouvindo, você pode editar o texto após parar.`,description:`Mensagem de entrada enquanto o reconhecimento de voz está em andamento`},"session.voiceStopping":{message:`Finalizando a transcrição de voz…`,description:`Aguardando a saída final do reconhecimento de voz`},"session.voicePermissionDenied":{message:`Permissão de microfone negada, por favor, permita nas configurações do sistema ou do navegador e tente novamente.`,description:`Permissão de microfone foi negada`},"session.voiceMicrophoneUnavailable":{message:`Microfone não encontrado ou indisponível.`,description:`Microfone não está disponível`},"session.voiceNoSpeech":{message:`Nenhuma fala detectada, por favor tente novamente.`,description:`O reconhecimento de voz não detectou fala`},"session.voiceNetworkError":{message:`O serviço de reconhecimento de voz está temporariamente indisponível, por favor verifique a rede e tente novamente.`,description:`Erro de rede no reconhecimento de voz`},"session.voiceError":{message:`Falha na entrada de voz, por favor tente novamente.`,description:`Erro genérico de reconhecimento de voz`},"session.retry":{message:`Tentar novamente`,description:`Re-run the last prompt after a failure`},"session.editPrompt":{message:`Editar`,description:`Editar um prompt enviado e reenviá-lo como uma nova rodada`},"session.editingBanner":{message:`Editando — enviar irá retroceder a conversa para este ponto`,description:`Banner exibido enquanto edita um prompt anterior`},"session.editRestoreCode":{message:`Reverter código também`,description:`Checkbox para reverter também as alterações de arquivo ao editar`},"session.editCancel":{message:`Cancelar`,description:`Cancelar edição de um prompt anterior`},"session.editSubmit":{message:`Atualizar`,description:`Enviar um prompt editado (retroceder e reexecutar)`},"session.enterHint":{message:`Pressione Enter para enviar, Shift+Enter para nova linha.`,description:`Dica de teclado para o campo de entrada`},"transcript.turnFailed":{message:`Falha na execução`,description:`Rótulo de resultado da rodada falhou`},"transcript.turnDone":{message:`Concluído`,description:`Rótulo de resultado da rodada concluído`},"transcript.todoProgress":{message:`Concluído {done}/{total}`,description:`Progresso da lista de tarefas`},"transcript.todoOverflow":{message:`…mais {count} itens não exibidos`,description:`Dica de omissão para lista de tarefas longa`},"transcript.todoCompleted":{message:`Concluído`,description:`Lista de tarefas: estado concluído (leitura acessível)`},"transcript.todoInProgress":{message:`Em andamento`,description:`Lista de tarefas: estado em andamento (leitura acessível)`},"transcript.todoPending":{message:`Pendente`,description:`Lista de tarefas: estado pendente (leitura acessível)`},"history.button":{message:`Histórico`,description:`Open the conversation history drawer`},"history.title":{message:`Histórico de conversas`,description:`History drawer title`},"history.intro":{message:`Sessões anteriores do Claude Code, do Codex e do GitHub Copilot neste dispositivo.`,description:`History drawer intro`},"history.refresh":{message:`Atualizar`,description:`Reload the history list`},"history.loading":{message:`Carregando histórico…`,description:`History loading message`},"history.empty":{message:`Nenhum histórico encontrado neste dispositivo.`,description:`Empty history message`},"history.filterAll":{message:`Todos`,description:`Remove os filtros de origem e exibe todas as conversas.`},"history.filterEmpty":{message:`Não há conversas com o filtro atual.`,description:`Mensagem de aviso quando o resultado após o filtro está vazio.`},"history.messages":{message:`{count} mensagens`,description:`History item message count`},"history.readonly":{message:`Esta conversa do Codex é somente leitura e não pode ser continuada. Inicie uma nova sessão para continuar programando.`,description:`Read-only replay notice`},"history.running":{message:`Em execução`,description:`Marks a history conversation that is currently live on the device`},"history.unread":{message:`Não lido`,description:`Marca para sessões históricas que foram concluídas, mas o usuário ainda não as visualizou`},"history.resumeHint":{message:`Enviar uma mensagem retomará esta conversa no dispositivo.`,description:`Resume composer hint`},"history.claudeLabel":{message:`Histórico do Claude`,description:`Replayed Claude session label`},"history.codexLabel":{message:`Histórico do Codex (somente leitura)`,description:`Replayed Codex session label`},"session.permissionModeLabel":{message:`Modo de permissões`,description:`Permission-mode selector label`},"session.permissionModeDefault":{message:`Padrão (perguntar sempre)`,description:`Permission mode: ask before each tool use`},"session.permissionModeAcceptEdits":{message:`Aceitar edições automaticamente`,description:`Permission mode: auto-accept file edits`},"session.permissionModePlan":{message:`Modo de planejamento (somente leitura)`,description:`Permission mode: read-only planning`},"session.permissionModeBypass":{message:`Ignorar todas as permissões`,description:`Permission mode: bypass all permission prompts`},"session.providerLabel":{message:`Backend`,description:`Rótulo do seletor de backend do agente`},"session.providerClaude":{message:`Claude Code`,description:`Backend option: Claude Code`},"session.providerCodex":{message:`Codex`,description:`Backend option: Codex`},"session.providerUnavailable":{message:`(não instalado)`,description:`Suffix shown next to a backend whose CLI is not installed on the node`},"session.providerUnavailableHint":{message:`{name} não está instalado neste dispositivo.`,description:`Composer hint shown when the selected backend is not installed on the node`},"session.effortLabel":{message:`Esforço de raciocínio`,description:`Reasoning-effort selector label`},"session.effortDefault":{message:`Padrão`,description:`Reasoning effort: backend default`},"session.effortLow":{message:`Baixo`,description:`Reasoning effort: low`},"session.effortMedium":{message:`Médio`,description:`Reasoning effort: medium`},"session.effortHigh":{message:`Alto`,description:`Reasoning effort: high`},"session.effortMax":{message:`Máximo`,description:`Reasoning effort: maximum (Claude only)`},"directory.title":{message:`Escolher diretório de trabalho`,description:`Working-directory picker dialog title`},"directory.choose":{message:`Usar este diretório`,description:`Button: select the current directory`},"directory.up":{message:`Diretório pai`,description:`Button: go to the parent directory`},"directory.refresh":{message:`Atualizar`,description:`Button: reload the current directory`},"directory.pathPlaceholder":{message:`Digite o caminho (como D:\\) e pressione Enter`,description:`Texto de espaço reservado para o campo de entrada do caminho do diretório editável`},"directory.go":{message:`Ir`,description:`Botão: navegar para o caminho do diretório digitado`},"directory.loading":{message:`A carregar…`,description:`Directory listing loading hint`},"directory.empty":{message:`Este diretório está vazio.`,description:`Empty directory hint`},"directory.truncated":{message:`A mostrar as primeiras 1000 entradas.`,description:`Hint shown when the listing was truncated`},"session.attachImage":{message:`Anexar imagem`,description:`Attach image button title`},"session.removeImage":{message:`Remover imagem`,description:`Remove attached image button title`},"session.imageAlt":{message:`Imagem anexada`,description:`Attached image thumbnail alt text`},"session.imageTooLarge":{message:`A imagem é muito grande; mantenha cada uma abaixo de 12 MB.`,description:`Warning shown when an image exceeds the size limit`},"session.imageLimit":{message:`Você pode anexar até {count} imagens.`,description:`Warning shown when exceeding the max number of images`},"session.modelDefault":{message:`Modelo padrão`,description:`Modelo padrão`},"session.cwdDefault":{message:`Diretório padrão`,description:`Diretório padrão`},"session.settings":{message:`Configurações da Sessão`,description:`Configurações da sessão`},"session.settingsLocked":{message:`As configurações desta sessão estão bloqueadas`,description:`As configurações estão bloqueadas para esta sessão`},"session.attachFile":{message:`Adicionar arquivo`,description:`Anexar arquivo`},"session.attachmentImageAlt":{message:`Imagem anexada`,description:`Imagem anexada`},"session.removeAttachment":{message:`Remover anexo`,description:`Remover anexo`},"session.uploadingAttachment":{message:`Anexo sendo enviado…`,description:`Carregando anexos…`},"session.attachmentTooLarge":{message:`Arquivo muito grande, mantenha cada arquivo abaixo de 50 MB.`,description:`Arquivo é muito grande; mantenha cada um abaixo de 50 MB.`},"session.attachmentLimit":{message:`Você pode anexar até {count} arquivos.`,description:`Você pode anexar até {count} arquivos.`},"session.attachmentUploadError":{message:`Falha ao enviar anexo.`,description:`Falha ao enviar anexo.`},"notice.slashUnavailable":{message:`/{command} é um comando interativo e não pode ser executado numa sessão remota.`,description:`Notice shown when a slash command can't run in a remote session`},"notice.slashCodexUnsupported":{message:`/{command} não está disponível para o Codex numa sessão remota.`,description:`Notice shown when a Codex slash command isn't supported remotely`},"notify.enable":{message:`Ativar notificações`,description:`Tooltip on the notification bell when notifications are off`},"notify.disable":{message:`Desativar notificações`,description:`Tooltip on the notification bell when notifications are on`},"notify.enabled":{message:`Notificações ativadas. Avisaremos quando uma sessão precisar de aprovação.`,description:`Toast after enabling notifications`},"notify.disabled":{message:`Notificações desativadas.`,description:`Toast after disabling notifications`},"notify.denied":{message:`As notificações estão bloqueadas. Permita-as nas configurações do navegador para receber alertas de aprovação.`,description:`Toast when notification permission is denied`},"notify.unsupported":{message:`As notificações não são compatíveis com este dispositivo.`,description:`Toast when notifications are unsupported`},"notify.failed":{message:`Não foi possível atualizar as configurações de notificação.`,description:`Toast when enabling or disabling notifications errors`}};export{e as default};
1
+ var e={"nodeList.title":{message:`Dispositivos`,description:`Título da lista de dispositivos do Coding Bridge`},"nodeList.refresh":{message:`Atualizar`,description:`Atualiza a lista de dispositivos`},"nodeList.pair":{message:`Parear dispositivo`,description:`Abre a caixa de diálogo para parear dispositivos`},"nodeList.empty":{message:`Nenhum dispositivo pareado ainda.`,description:`Mensagem quando a lista de dispositivos está vazia`},"nodeList.pairFirst":{message:`Parear primeiro dispositivo`,description:`Botão de pareamento no estado vazio`},"nodeList.rename":{message:`Renomear`,description:`Rename a device`},"nodeList.renamePrompt":{message:`Dê um nome a este dispositivo. O nome é sincronizado com todos os seus dispositivos conectados.`,description:`Rename device input prompt`},"nodeList.renameEmpty":{message:`O nome não pode ficar vazio.`,description:`Rename device empty-name validation`},"nodeList.renameTooLong":{message:`O nome deve ter no máximo {max} caracteres.`,description:`Rename device too-long validation`},"nodeList.renameSuccess":{message:`Dispositivo renomeado.`,description:`Rename device success`},"nodeList.renameFailed":{message:`Falha ao renomear o dispositivo.`,description:`Rename device failure`},"nodeList.remove":{message:`Remover`,description:`Remove um dispositivo`},"nodeList.removeConfirm":{message:`Remover o dispositivo “{name}”? Após a remoção, será necessário parear novamente.`,description:`Confirmação para remover um dispositivo`},"nodeList.removeSuccess":{message:`Dispositivo removido.`,description:`Mensagem de sucesso ao remover um dispositivo`},"nodeList.removeFailed":{message:`Falha ao remover o dispositivo.`,description:`Mensagem de falha ao tentar remover um dispositivo`},"status.online":{message:`Online`,description:`Estado online do dispositivo`},"status.offline":{message:`Offline`,description:`Estado offline do dispositivo`},"connection.disconnected":{message:`Desconectado`,description:`A conexão do relé foi desconectada`},"connection.connecting":{message:`Conectando…`,description:`O relé está se conectando`},"connection.connected":{message:`Conectado`,description:`O relé está conectado`},"connection.error":{message:`Erro de conexão`,description:`Erro na conexão do relé`},"pair.title":{message:`Parear dispositivo`,description:`Título da caixa de diálogo de pareamento`},"pair.intro":{message:`Execute o proxy Coding Bridge no seu computador e insira o código de pareamento aqui para controlá-lo pela web.`,description:`Introdução da caixa de diálogo de pareamento`},"pair.step1":{message:`Instale o proxy (requer Python 3.10+):`,description:`Passo 1 do pareamento`},"pair.step2":{message:`Inicie e siga as instruções:`,description:`Passo 2 do pareamento`},"pair.step3":{message:`Insira o código de pareamento exibido abaixo.`,description:`Passo 3 do pareamento`},"pair.codePlaceholder":{message:`Código de pareamento`,description:`Placeholder para o campo de entrada do código de pareamento`},"pair.claim":{message:`Parear dispositivo`,description:`Botão de confirmação para parear`},"pair.success":{message:`Dispositivo “{name}” pareado.`,description:`Mensagem de sucesso ao parear um dispositivo`},"pair.invalidCode":{message:`Código de pareamento inválido ou expirado.`,description:`Erro de código de pareamento inválido`},"pair.usedCode":{message:`Este código de pareamento já foi utilizado.`,description:`Erro de código de pareamento já utilizado`},"pair.failed":{message:`Falha ao parear dispositivo.`,description:`Erro genérico de pareamento`},"permission.title":{message:`Autorização necessária`,description:`Título da caixa de diálogo de autorização`},"permission.subtitle":{message:`A autorização para usar uma ferramenta é necessária, continue após a aprovação.`,description:`Subtítulo da caixa de diálogo de autorização`},"permission.deny":{message:`Negar`,description:`Negar ferramenta de autorização`},"permission.allow":{message:`Permitir`,description:`Permitir ferramenta de autorização`},"session.noDevice":{message:`Selecione um dispositivo para começar a codificar.`,description:`Placeholder quando nenhum dispositivo é selecionado`},"session.newSession":{message:`Nova sessão`,description:`Iniciar nova sessão`},"session.deviceOffline":{message:`Este dispositivo está offline. Por favor, inicie o proxy Coding Bridge neste dispositivo para continuar.`,description:`Aviso de dispositivo offline`},"session.nodeId":{message:`ID do dispositivo`,description:`Diagnostic label for the node id`},"session.sessionId":{message:`ID da sessão`,description:`Diagnostic label for the session id`},"session.traceId":{message:`ID de rastreamento`,description:`Diagnostic label for the trace id`},"session.startHint":{message:`Envie uma mensagem para iniciar a sessão neste dispositivo.`,description:`Dica para iniciar uma nova sessão`},"session.cwdPlaceholder":{message:`Diretório de trabalho (opcional)`,description:`Placeholder para o campo de entrada do diretório de trabalho`},"session.modelPlaceholder":{message:`Modelo (opcional)`,description:`Placeholder para o campo de entrada do modelo`},"session.promptPlaceholder":{message:`Envie uma mensagem ao proxy…`,description:`Placeholder para o campo de entrada do prompt`},"session.send":{message:`Enviar`,description:`Botão para enviar a mensagem`},"session.voiceInput":{message:`Entrada de voz`,description:`Iniciar a conversão de voz em texto`},"session.voiceStop":{message:`Parar entrada de voz`,description:`Parar a transcrição de voz`},"session.voiceListening":{message:`Ouvindo, você pode editar o texto após parar.`,description:`Mensagem de entrada enquanto o reconhecimento de voz está em andamento`},"session.voiceStopping":{message:`Finalizando a transcrição de voz…`,description:`Aguardando a saída final do reconhecimento de voz`},"session.voicePermissionDenied":{message:`Permissão de microfone negada, por favor, permita nas configurações do sistema ou do navegador e tente novamente.`,description:`Permissão de microfone foi negada`},"session.voiceMicrophoneUnavailable":{message:`Microfone não encontrado ou indisponível.`,description:`Microfone não está disponível`},"session.voiceNoSpeech":{message:`Nenhuma fala detectada, por favor tente novamente.`,description:`O reconhecimento de voz não detectou fala`},"session.voiceNetworkError":{message:`O serviço de reconhecimento de voz está temporariamente indisponível, por favor verifique a rede e tente novamente.`,description:`Erro de rede no reconhecimento de voz`},"session.voiceError":{message:`Falha na entrada de voz, por favor tente novamente.`,description:`Erro genérico de reconhecimento de voz`},"session.retry":{message:`Tentar novamente`,description:`Re-run the last prompt after a failure`},"session.editPrompt":{message:`Editar`,description:`Editar um prompt enviado e reenviá-lo como uma nova rodada`},"session.editingBanner":{message:`Editando — enviar irá retroceder a conversa para este ponto`,description:`Banner exibido enquanto edita um prompt anterior`},"session.editRestoreCode":{message:`Reverter código também`,description:`Checkbox para reverter também as alterações de arquivo ao editar`},"session.editCancel":{message:`Cancelar`,description:`Cancelar edição de um prompt anterior`},"session.editSubmit":{message:`Atualizar`,description:`Enviar um prompt editado (retroceder e reexecutar)`},"session.enterHint":{message:`Pressione Enter para enviar, Shift+Enter para nova linha.`,description:`Dica de teclado para o campo de entrada`},"transcript.turnFailed":{message:`Falha na execução`,description:`Rótulo de resultado da rodada falhou`},"transcript.turnDone":{message:`Concluído`,description:`Rótulo de resultado da rodada concluído`},"transcript.todoProgress":{message:`Concluído {done}/{total}`,description:`Progresso da lista de tarefas`},"transcript.todoOverflow":{message:`…mais {count} itens não exibidos`,description:`Dica de omissão para lista de tarefas longa`},"transcript.todoCompleted":{message:`Concluído`,description:`Lista de tarefas: estado concluído (leitura acessível)`},"transcript.todoInProgress":{message:`Em andamento`,description:`Lista de tarefas: estado em andamento (leitura acessível)`},"transcript.todoPending":{message:`Pendente`,description:`Lista de tarefas: estado pendente (leitura acessível)`},"history.button":{message:`Histórico`,description:`Open the conversation history drawer`},"history.title":{message:`Histórico de conversas`,description:`History drawer title`},"history.intro":{message:`Sessões anteriores do Claude Code, do Codex e do GitHub Copilot neste dispositivo.`,description:`History drawer intro`},"history.refresh":{message:`Atualizar`,description:`Reload the history list`},"history.loading":{message:`Carregando histórico…`,description:`History loading message`},"history.empty":{message:`Nenhum histórico encontrado neste dispositivo.`,description:`Empty history message`},"history.filterAll":{message:`Todos`,description:`Remove os filtros de origem e exibe todas as conversas.`},"history.filterEmpty":{message:`Não há conversas com o filtro atual.`,description:`Mensagem de aviso quando o resultado após o filtro está vazio.`},"history.messages":{message:`{count} mensagens`,description:`History item message count`},"history.readonly":{message:`Esta conversa do Codex é somente leitura e não pode ser continuada. Inicie uma nova sessão para continuar programando.`,description:`Read-only replay notice`},"history.running":{message:`Em execução`,description:`Marks a history conversation that is currently live on the device`},"history.unread":{message:`Não lido`,description:`Marca para sessões históricas que foram concluídas, mas o usuário ainda não as visualizou`},"history.resumeHint":{message:`Enviar uma mensagem retomará esta conversa no dispositivo.`,description:`Resume composer hint`},"history.claudeLabel":{message:`Histórico do Claude`,description:`Replayed Claude session label`},"history.codexLabel":{message:`Histórico do Codex (somente leitura)`,description:`Replayed Codex session label`},"session.permissionModeLabel":{message:`Modo de permissões`,description:`Permission-mode selector label`},"session.permissionModeDefault":{message:`Padrão (segue as regras de aprovação deste dispositivo)`,description:`Modo de permissão: perguntar antes de cada uso de ferramenta`},"session.permissionModeAcceptEdits":{message:`Aceitar edições automaticamente`,description:`Permission mode: auto-accept file edits`},"session.permissionModePlan":{message:`Modo de planejamento (somente leitura)`,description:`Permission mode: read-only planning`},"session.permissionModeBypass":{message:`Ignorar todas as permissões`,description:`Permission mode: bypass all permission prompts`},"session.providerLabel":{message:`Back-end`,description:`Rótulo do seletor de back-end do agente`},"session.providerClaude":{message:`Claude Code`,description:`Backend option: Claude Code`},"session.providerCodex":{message:`Codex`,description:`Backend option: Codex`},"session.providerUnavailable":{message:`(não instalado)`,description:`Suffix shown next to a backend whose CLI is not installed on the node`},"session.providerUnavailableHint":{message:`{name} não está instalado neste dispositivo.`,description:`Composer hint shown when the selected backend is not installed on the node`},"session.effortLabel":{message:`Esforço de raciocínio`,description:`Reasoning-effort selector label`},"session.effortDefault":{message:`Padrão`,description:`Reasoning effort: backend default`},"session.effortLow":{message:`Baixo`,description:`Reasoning effort: low`},"session.effortMedium":{message:`Médio`,description:`Reasoning effort: medium`},"session.effortHigh":{message:`Alto`,description:`Reasoning effort: high`},"session.effortMax":{message:`Máximo`,description:`Reasoning effort: maximum (Claude only)`},"directory.title":{message:`Escolher diretório de trabalho`,description:`Working-directory picker dialog title`},"directory.choose":{message:`Usar este diretório`,description:`Button: select the current directory`},"directory.up":{message:`Diretório pai`,description:`Button: go to the parent directory`},"directory.refresh":{message:`Atualizar`,description:`Button: reload the current directory`},"directory.pathPlaceholder":{message:`Digite o caminho (como D:\\) e pressione Enter`,description:`Texto de espaço reservado para o campo de entrada do caminho do diretório editável`},"directory.go":{message:`Ir`,description:`Botão: navegar para o caminho do diretório digitado`},"directory.loading":{message:`A carregar…`,description:`Directory listing loading hint`},"directory.empty":{message:`Este diretório está vazio.`,description:`Empty directory hint`},"directory.truncated":{message:`A mostrar as primeiras 1000 entradas.`,description:`Hint shown when the listing was truncated`},"session.attachImage":{message:`Anexar imagem`,description:`Attach image button title`},"session.removeImage":{message:`Remover imagem`,description:`Remove attached image button title`},"session.imageAlt":{message:`Imagem anexada`,description:`Attached image thumbnail alt text`},"session.imageTooLarge":{message:`A imagem é muito grande; mantenha cada uma abaixo de 12 MB.`,description:`Warning shown when an image exceeds the size limit`},"session.imageLimit":{message:`Você pode anexar até {count} imagens.`,description:`Warning shown when exceeding the max number of images`},"session.modelDefault":{message:`Modelo padrão`,description:`Modelo padrão`},"session.cwdDefault":{message:`Diretório padrão`,description:`Diretório padrão`},"session.settings":{message:`Configurações da Sessão`,description:`Configurações da sessão`},"session.settingsLocked":{message:`As configurações desta sessão estão bloqueadas`,description:`As configurações estão bloqueadas para esta sessão`},"session.attachFile":{message:`Adicionar arquivo`,description:`Anexar arquivo`},"session.attachmentImageAlt":{message:`Imagem anexada`,description:`Imagem anexada`},"session.removeAttachment":{message:`Remover anexo`,description:`Remover anexo`},"session.uploadingAttachment":{message:`Anexo sendo enviado…`,description:`Carregando anexos…`},"session.attachmentTooLarge":{message:`Arquivo muito grande, mantenha cada arquivo abaixo de 50 MB.`,description:`Arquivo é muito grande; mantenha cada um abaixo de 50 MB.`},"session.attachmentLimit":{message:`Você pode anexar até {count} arquivos.`,description:`Você pode anexar até {count} arquivos.`},"session.attachmentUploadError":{message:`Falha ao enviar anexo.`,description:`Falha ao enviar anexo.`},"notice.slashUnavailable":{message:`/{command} é um comando interativo e não pode ser executado numa sessão remota.`,description:`Notice shown when a slash command can't run in a remote session`},"notice.slashCodexUnsupported":{message:`/{command} não está disponível para o Codex numa sessão remota.`,description:`Notice shown when a Codex slash command isn't supported remotely`},"notify.enable":{message:`Ativar notificações`,description:`Tooltip on the notification bell when notifications are off`},"notify.disable":{message:`Desativar notificações`,description:`Tooltip on the notification bell when notifications are on`},"notify.enabled":{message:`Notificações ativadas. Avisaremos quando uma sessão precisar de aprovação.`,description:`Toast after enabling notifications`},"notify.disabled":{message:`Notificações desativadas.`,description:`Toast after disabling notifications`},"notify.denied":{message:`As notificações estão bloqueadas. Permita-as nas configurações do navegador para receber alertas de aprovação.`,description:`Toast when notification permission is denied`},"notify.unsupported":{message:`As notificações não são compatíveis com este dispositivo.`,description:`Toast when notifications are unsupported`},"notify.failed":{message:`Não foi possível atualizar as configurações de notificação.`,description:`Toast when enabling or disabling notifications errors`},"session.working":{message:`Em execução…`,description:`Sessão em execução`},"session.permissionModeWorkspace":{message:`Permissões do espaço de trabalho (sem confirmação a cada vez)`,description:`Permissões do espaço de trabalho da sessão`},"transcript.interrupted":{message:`Interrompido`,description:`Transcrição interrompida`}};export{e as default};
@@ -1 +1 @@
1
- var e={"nodeList.title":{message:`장치`,description:`Coding Bridge 장치 목록 제목입니다.`},"nodeList.refresh":{message:`새로 고침`,description:`장치 목록을 새로 고칩니다.`},"nodeList.pair":{message:`장치 연결`,description:`장치 연결 대화 상자를 엽니다.`},"nodeList.empty":{message:`아직 장치를 연결하지 않았습니다.`,description:`장치 목록이 비어 있을 때의 안내 메시지입니다.`},"nodeList.pairFirst":{message:`첫 번째 장치 연결`,description:`비어 있는 상태에서의 연결 버튼입니다.`},"nodeList.rename":{message:`이름 변경`,description:`Rename a device`},"nodeList.renamePrompt":{message:`이 기기의 이름을 지정하세요. 이름은 로그인된 모든 기기에 동기화됩니다.`,description:`Rename device input prompt`},"nodeList.renameEmpty":{message:`이름은 비워 둘 수 없습니다.`,description:`Rename device empty-name validation`},"nodeList.renameTooLong":{message:`이름은 최대 {max}자까지 입력할 수 있습니다.`,description:`Rename device too-long validation`},"nodeList.renameSuccess":{message:`기기 이름을 변경했습니다.`,description:`Rename device success`},"nodeList.renameFailed":{message:`기기 이름을 변경하지 못했습니다.`,description:`Rename device failure`},"nodeList.remove":{message:`제거`,description:`장치를 제거합니다.`},"nodeList.removeConfirm":{message:`장치 “{name}”를 제거하시겠습니까? 제거 후 다시 연결해야 합니다.`,description:`장치 제거 확인 메시지입니다.`},"nodeList.removeSuccess":{message:`장치가 제거되었습니다.`,description:`장치 제거 성공 안내 메시지입니다.`},"nodeList.removeFailed":{message:`장치 제거 실패.`,description:`장치 제거 실패 안내 메시지입니다.`},"status.online":{message:`온라인`,description:`장치 온라인 상태`},"status.offline":{message:`오프라인`,description:`장치 오프라인 상태`},"connection.disconnected":{message:`연결 끊김`,description:`중계 연결이 끊어졌습니다.`},"connection.connecting":{message:`연결 중…`,description:`중계가 연결되고 있습니다.`},"connection.connected":{message:`연결됨`,description:`중계가 연결되었습니다.`},"connection.error":{message:`연결 오류`,description:`중계 연결 중 오류가 발생했습니다.`},"pair.title":{message:`장치 연결`,description:`장치 연결 대화 상자 제목입니다.`},"pair.intro":{message:`컴퓨터에서 Coding Bridge 프록시를 실행한 후, 여기에서 연결 코드를 입력하여 웹에서 제어할 수 있습니다.`,description:`장치 연결 대화 상자 소개입니다.`},"pair.step1":{message:`프록시 설치 (Python 3.10+ 필요):`,description:`장치 연결 단계 1입니다.`},"pair.step2":{message:`시작하고 안내에 따라 진행하세요:`,description:`장치 연결 단계 2입니다.`},"pair.step3":{message:`아래에 표시된 연결 코드를 입력하세요.`,description:`장치 연결 단계 3입니다.`},"pair.codePlaceholder":{message:`연결 코드`,description:`연결 코드 입력란의 자리 표시자입니다.`},"pair.claim":{message:`장치 연결`,description:`연결 확인 버튼입니다.`},"pair.success":{message:`장치 “{name}”가 연결되었습니다.`,description:`장치 연결 성공 안내 메시지입니다.`},"pair.invalidCode":{message:`연결 코드가 유효하지 않거나 만료되었습니다.`,description:`연결 코드 유효성 오류입니다.`},"pair.usedCode":{message:`해당 연결 코드는 이미 사용되었습니다.`,description:`연결 코드가 이미 사용된 오류입니다.`},"pair.failed":{message:`장치 연결 실패.`,description:`장치 연결 중 일반 오류입니다.`},"permission.title":{message:`권한이 필요합니다`,description:`권한 부여 대화 상자 제목`},"permission.subtitle":{message:`도구 사용을 위한 요청을 대리하며, 승인 후 계속 진행합니다.`,description:`권한 부여 대화 상자 부제목`},"permission.deny":{message:`거부`,description:`도구 권한 부여 거부`},"permission.allow":{message:`허용`,description:`도구 권한 부여 허용`},"session.noDevice":{message:`코딩을 시작할 장치를 선택하세요.`,description:`장치를 선택하지 않았을 때의 자리 표시자`},"session.newSession":{message:`새 세션`,description:`새 세션 시작`},"session.deviceOffline":{message:`이 장치는 오프라인입니다. 해당 장치에서 Coding Bridge 프록시를 시작한 후 계속 진행하세요.`,description:`장치 오프라인 경고`},"session.nodeId":{message:`기기 ID`,description:`Diagnostic label for the node id`},"session.sessionId":{message:`세션 ID`,description:`Diagnostic label for the session id`},"session.traceId":{message:`추적 ID`,description:`Diagnostic label for the trace id`},"session.startHint":{message:`이 장치에서 세션을 시작하려면 메시지를 보내세요.`,description:`빈 기록에 대한 힌트`},"session.cwdPlaceholder":{message:`작업 디렉토리(선택 사항)`,description:`작업 디렉토리 입력란의 자리 표시자`},"session.modelPlaceholder":{message:`모델(선택 사항)`,description:`모델 입력란의 자리 표시자`},"session.promptPlaceholder":{message:`프록시에게 메시지 전송…`,description:`프롬프트 입력란의 자리 표시자`},"session.send":{message:`전송`,description:`프롬프트 전송 버튼`},"session.voiceInput":{message:`음성 입력`,description:`음성을 텍스트로 변환하기 시작`},"session.voiceStop":{message:`음성 입력 중지`,description:`음성 전사 중지`},"session.voiceListening":{message:`듣고 있습니다. 중지 후 텍스트를 편집할 수 있습니다.`,description:`음성 인식 진행 중 입력창 안내`},"session.voiceStopping":{message:`음성 전사를 완료하고 있습니다…`,description:`음성 인식 최종 결과 출력 대기`},"session.voicePermissionDenied":{message:`마이크 권한이 거부되었습니다. 시스템 또는 브라우저 설정에서 허용한 후 다시 시도하세요.`,description:`마이크 권한이 거부된 경우에 대한 메시지입니다.`},"session.voiceMicrophoneUnavailable":{message:`마이크를 찾을 수 없거나 사용할 수 없습니다.`,description:`마이크가 사용 불가능함`},"session.voiceNoSpeech":{message:`음성이 감지되지 않았습니다. 다시 시도해 주세요.`,description:`음성 인식이 말을 감지하지 못함`},"session.voiceNetworkError":{message:`음성 인식 서비스가 일시적으로 사용할 수 없습니다. 네트워크를 확인한 후 다시 시도해 주세요.`,description:`음성 인식 네트워크 오류`},"session.voiceError":{message:`음성 입력 실패, 다시 시도해 주세요.`,description:`음성 인식 일반 오류`},"session.retry":{message:`다시 시도`,description:`Re-run the last prompt after a failure`},"session.editPrompt":{message:`편집`,description:`전송된 프롬프트를 편집하고 새로 다시 전송`},"session.editingBanner":{message:`편집 중 — 전송 시 대화가 이 지점으로 되돌아갑니다`,description:`이전 프롬프트 편집 중 표시되는 배너`},"session.editRestoreCode":{message:`코드도 동시에 되돌리기`,description:`편집 시 파일 변경 사항도 되돌리기 위한 체크박스`},"session.editCancel":{message:`취소`,description:`이전 프롬프트 편집 취소`},"session.editSubmit":{message:`업데이트`,description:`편집된 프롬프트 제출(되감기 및 재실행)`},"session.enterHint":{message:`Enter로 전송, Shift+Enter로 줄 바꿈.`,description:`입력란 키보드 힌트`},"transcript.turnFailed":{message:`실행 실패`,description:`턴 결과 실패 라벨`},"transcript.turnDone":{message:`완료`,description:`턴 결과 완료 라벨`},"transcript.todoProgress":{message:`완료 {done}/{total}`,description:`할 일 목록 진행 상황`},"transcript.todoOverflow":{message:`…또한 {count} 항목이 표시되지 않음`,description:`할 일 목록 초과 표시 힌트`},"transcript.todoCompleted":{message:`완료됨`,description:`할 일 목록: 완료 상태 (장애인 접근성 읽기)`},"transcript.todoInProgress":{message:`진행 중`,description:`할 일 목록: 진행 중 상태 (장애인 접근성 읽기)`},"transcript.todoPending":{message:`대기 중`,description:`할 일 목록: 대기 중 상태 (장애인 접근성 읽기)`},"history.button":{message:`기록`,description:`Open the conversation history drawer`},"history.title":{message:`대화 기록`,description:`History drawer title`},"history.intro":{message:`이 기기의 이전 Claude Code, Codex 및 GitHub Copilot 세션입니다.`,description:`History drawer intro`},"history.refresh":{message:`새로 고침`,description:`Reload the history list`},"history.loading":{message:`기록을 불러오는 중…`,description:`History loading message`},"history.empty":{message:`이 기기에서 기록을 찾을 수 없습니다.`,description:`Empty history message`},"history.filterAll":{message:`모두`,description:`소스 필터를 지우고 모든 대화를 표시합니다.`},"history.filterEmpty":{message:`현재 필터링된 결과에 대화가 없습니다.`,description:`필터링 후 결과가 비어있음을 알리는 메시지입니다.`},"history.messages":{message:`메시지 {count}개`,description:`History item message count`},"history.readonly":{message:`이 Codex 대화는 읽기 전용이라 이어갈 수 없습니다. 계속 코딩하려면 새 세션을 시작하세요.`,description:`Read-only replay notice`},"history.running":{message:`실행 중`,description:`Marks a history conversation that is currently live on the device`},"history.unread":{message:`읽지 않음`,description:`역사 세션이 완료되었지만 사용자가 아직 보지 않은 표시입니다.`},"history.resumeHint":{message:`메시지를 보내면 기기에서 이 대화가 다시 시작됩니다.`,description:`Resume composer hint`},"history.claudeLabel":{message:`Claude 기록`,description:`Replayed Claude session label`},"history.codexLabel":{message:`Codex 기록 (읽기 전용)`,description:`Replayed Codex session label`},"session.permissionModeLabel":{message:`권한 모드`,description:`Permission-mode selector label`},"session.permissionModeDefault":{message:`기본값(매번 확인)`,description:`Permission mode: ask before each tool use`},"session.permissionModeAcceptEdits":{message:`편집 자동 수락`,description:`Permission mode: auto-accept file edits`},"session.permissionModePlan":{message:`계획 모드(읽기 전용)`,description:`Permission mode: read-only planning`},"session.permissionModeBypass":{message:`모든 권한 우회`,description:`Permission mode: bypass all permission prompts`},"session.providerLabel":{message:`백엔드`,description:`Agent backend selector label`},"session.providerClaude":{message:`Claude Code`,description:`Backend option: Claude Code`},"session.providerCodex":{message:`Codex`,description:`Backend option: Codex`},"session.providerUnavailable":{message:`(설치되지 않음)`,description:`Suffix shown next to a backend whose CLI is not installed on the node`},"session.providerUnavailableHint":{message:`{name}이(가) 이 기기에 설치되어 있지 않습니다.`,description:`Composer hint shown when the selected backend is not installed on the node`},"session.effortLabel":{message:`추론 강도`,description:`Reasoning-effort selector label`},"session.effortDefault":{message:`기본값`,description:`Reasoning effort: backend default`},"session.effortLow":{message:`낮음`,description:`Reasoning effort: low`},"session.effortMedium":{message:`보통`,description:`Reasoning effort: medium`},"session.effortHigh":{message:`높음`,description:`Reasoning effort: high`},"session.effortMax":{message:`최대`,description:`Reasoning effort: maximum (Claude only)`},"directory.title":{message:`작업 디렉터리 선택`,description:`Working-directory picker dialog title`},"directory.choose":{message:`이 디렉터리 사용`,description:`Button: select the current directory`},"directory.up":{message:`상위 디렉터리`,description:`Button: go to the parent directory`},"directory.refresh":{message:`새로 고침`,description:`Button: reload the current directory`},"directory.pathPlaceholder":{message:`경로 입력 (예: D:\\) 후 엔터`,description:`편집 가능한 디렉토리 경로 입력란의 플레이스홀더입니다.`},"directory.go":{message:`이동`,description:`버튼: 입력한 디렉토리 경로로 이동합니다.`},"directory.loading":{message:`불러오는 중…`,description:`Directory listing loading hint`},"directory.empty":{message:`이 디렉터리는 비어 있습니다.`,description:`Empty directory hint`},"directory.truncated":{message:`처음 1000개 항목을 표시합니다.`,description:`Hint shown when the listing was truncated`},"session.attachImage":{message:`이미지 첨부`,description:`Attach image button title`},"session.removeImage":{message:`이미지 제거`,description:`Remove attached image button title`},"session.imageAlt":{message:`첨부된 이미지`,description:`Attached image thumbnail alt text`},"session.imageTooLarge":{message:`이미지가 너무 큽니다. 각 이미지를 12MB 이하로 유지하세요.`,description:`Warning shown when an image exceeds the size limit`},"session.imageLimit":{message:`최대 {count}개의 이미지를 첨부할 수 있습니다.`,description:`Warning shown when exceeding the max number of images`},"session.modelDefault":{message:`기본 모델`,description:`기본 모델`},"session.cwdDefault":{message:`기본 디렉토리`,description:`기본 디렉토리`},"session.settings":{message:`세션 설정`,description:`세션 설정`},"session.settingsLocked":{message:`이 세션의 설정이 잠겨 있습니다`,description:`이 세션의 설정이 잠겨 있습니다`},"session.attachFile":{message:`파일 추가`,description:`파일 첨부`},"session.attachmentImageAlt":{message:`첨부된 이미지`,description:`첨부된 이미지`},"session.removeAttachment":{message:`첨부 파일 제거`,description:`첨부 파일 제거`},"session.uploadingAttachment":{message:`첨부파일 업로드 중…`,description:`첨부파일 업로드 중…`},"session.attachmentTooLarge":{message:`파일이 너무 큽니다. 각 파일은 50 MB 이하로 유지하세요.`,description:`파일이 너무 큽니다; 각 파일을 50 MB 이하로 유지하세요.`},"session.attachmentLimit":{message:`최대 {count} 개의 파일을 첨부할 수 있습니다.`,description:`{count} 개의 파일까지 첨부할 수 있습니다.`},"session.attachmentUploadError":{message:`첨부 파일 업로드 실패.`,description:`첨부 파일 업로드 실패.`},"notice.slashUnavailable":{message:`/{command} 은(는) 대화형 명령이라 원격 세션에서는 실행할 수 없습니다.`,description:`Notice shown when a slash command can't run in a remote session`},"notice.slashCodexUnsupported":{message:`/{command} 은(는) 원격 세션의 Codex에서 사용할 수 없습니다.`,description:`Notice shown when a Codex slash command isn't supported remotely`},"notify.enable":{message:`알림 켜기`,description:`Tooltip on the notification bell when notifications are off`},"notify.disable":{message:`알림 끄기`,description:`Tooltip on the notification bell when notifications are on`},"notify.enabled":{message:`알림이 켜졌습니다. 세션에 승인이 필요하면 알려드립니다.`,description:`Toast after enabling notifications`},"notify.disabled":{message:`알림이 꺼졌습니다.`,description:`Toast after disabling notifications`},"notify.denied":{message:`알림이 차단되어 있습니다. 승인 알림을 받으려면 브라우저 설정에서 허용하세요.`,description:`Toast when notification permission is denied`},"notify.unsupported":{message:`이 기기에서는 알림이 지원되지 않습니다.`,description:`Toast when notifications are unsupported`},"notify.failed":{message:`알림 설정을 업데이트하지 못했습니다.`,description:`Toast when enabling or disabling notifications errors`}};export{e as default};
1
+ var e={"nodeList.title":{message:`장치`,description:`Coding Bridge 장치 목록 제목입니다.`},"nodeList.refresh":{message:`새로 고침`,description:`장치 목록을 새로 고칩니다.`},"nodeList.pair":{message:`장치 연결`,description:`장치 연결 대화 상자를 엽니다.`},"nodeList.empty":{message:`아직 장치를 연결하지 않았습니다.`,description:`장치 목록이 비어 있을 때의 안내 메시지입니다.`},"nodeList.pairFirst":{message:`첫 번째 장치 연결`,description:`비어 있는 상태에서의 연결 버튼입니다.`},"nodeList.rename":{message:`이름 변경`,description:`Rename a device`},"nodeList.renamePrompt":{message:`이 기기의 이름을 지정하세요. 이름은 로그인된 모든 기기에 동기화됩니다.`,description:`Rename device input prompt`},"nodeList.renameEmpty":{message:`이름은 비워 둘 수 없습니다.`,description:`Rename device empty-name validation`},"nodeList.renameTooLong":{message:`이름은 최대 {max}자까지 입력할 수 있습니다.`,description:`Rename device too-long validation`},"nodeList.renameSuccess":{message:`기기 이름을 변경했습니다.`,description:`Rename device success`},"nodeList.renameFailed":{message:`기기 이름을 변경하지 못했습니다.`,description:`Rename device failure`},"nodeList.remove":{message:`제거`,description:`장치를 제거합니다.`},"nodeList.removeConfirm":{message:`장치 “{name}”를 제거하시겠습니까? 제거 후 다시 연결해야 합니다.`,description:`장치 제거 확인 메시지입니다.`},"nodeList.removeSuccess":{message:`장치가 제거되었습니다.`,description:`장치 제거 성공 안내 메시지입니다.`},"nodeList.removeFailed":{message:`장치 제거 실패.`,description:`장치 제거 실패 안내 메시지입니다.`},"status.online":{message:`온라인`,description:`장치 온라인 상태`},"status.offline":{message:`오프라인`,description:`장치 오프라인 상태`},"connection.disconnected":{message:`연결 끊김`,description:`중계 연결이 끊어졌습니다.`},"connection.connecting":{message:`연결 중…`,description:`중계가 연결되고 있습니다.`},"connection.connected":{message:`연결됨`,description:`중계가 연결되었습니다.`},"connection.error":{message:`연결 오류`,description:`중계 연결 중 오류가 발생했습니다.`},"pair.title":{message:`장치 연결`,description:`장치 연결 대화 상자 제목입니다.`},"pair.intro":{message:`컴퓨터에서 Coding Bridge 프록시를 실행한 후, 여기에서 연결 코드를 입력하여 웹에서 제어할 수 있습니다.`,description:`장치 연결 대화 상자 소개입니다.`},"pair.step1":{message:`프록시 설치 (Python 3.10+ 필요):`,description:`장치 연결 단계 1입니다.`},"pair.step2":{message:`시작하고 안내에 따라 진행하세요:`,description:`장치 연결 단계 2입니다.`},"pair.step3":{message:`아래에 표시된 연결 코드를 입력하세요.`,description:`장치 연결 단계 3입니다.`},"pair.codePlaceholder":{message:`연결 코드`,description:`연결 코드 입력란의 자리 표시자입니다.`},"pair.claim":{message:`장치 연결`,description:`연결 확인 버튼입니다.`},"pair.success":{message:`장치 “{name}”가 연결되었습니다.`,description:`장치 연결 성공 안내 메시지입니다.`},"pair.invalidCode":{message:`연결 코드가 유효하지 않거나 만료되었습니다.`,description:`연결 코드 유효성 오류입니다.`},"pair.usedCode":{message:`해당 연결 코드는 이미 사용되었습니다.`,description:`연결 코드가 이미 사용된 오류입니다.`},"pair.failed":{message:`장치 연결 실패.`,description:`장치 연결 중 일반 오류입니다.`},"permission.title":{message:`권한이 필요합니다`,description:`권한 부여 대화 상자 제목`},"permission.subtitle":{message:`도구 사용을 위한 요청을 대리하며, 승인 후 계속 진행합니다.`,description:`권한 부여 대화 상자 부제목`},"permission.deny":{message:`거부`,description:`도구 권한 부여 거부`},"permission.allow":{message:`허용`,description:`도구 권한 부여 허용`},"session.noDevice":{message:`코딩을 시작할 장치를 선택하세요.`,description:`장치를 선택하지 않았을 때의 자리 표시자`},"session.newSession":{message:`새 세션`,description:`새 세션 시작`},"session.deviceOffline":{message:`이 장치는 오프라인입니다. 해당 장치에서 Coding Bridge 프록시를 시작한 후 계속 진행하세요.`,description:`장치 오프라인 경고`},"session.nodeId":{message:`기기 ID`,description:`Diagnostic label for the node id`},"session.sessionId":{message:`세션 ID`,description:`Diagnostic label for the session id`},"session.traceId":{message:`추적 ID`,description:`Diagnostic label for the trace id`},"session.startHint":{message:`이 장치에서 세션을 시작하려면 메시지를 보내세요.`,description:`빈 기록에 대한 힌트`},"session.cwdPlaceholder":{message:`작업 디렉토리(선택 사항)`,description:`작업 디렉토리 입력란의 자리 표시자`},"session.modelPlaceholder":{message:`모델(선택 사항)`,description:`모델 입력란의 자리 표시자`},"session.promptPlaceholder":{message:`프록시에게 메시지 전송…`,description:`프롬프트 입력란의 자리 표시자`},"session.send":{message:`전송`,description:`프롬프트 전송 버튼`},"session.voiceInput":{message:`음성 입력`,description:`음성을 텍스트로 변환하기 시작`},"session.voiceStop":{message:`음성 입력 중지`,description:`음성 전사 중지`},"session.voiceListening":{message:`듣고 있습니다. 중지 후 텍스트를 편집할 수 있습니다.`,description:`음성 인식 진행 중 입력창 안내`},"session.voiceStopping":{message:`음성 전사를 완료하고 있습니다…`,description:`음성 인식 최종 결과 출력 대기`},"session.voicePermissionDenied":{message:`마이크 권한이 거부되었습니다. 시스템 또는 브라우저 설정에서 허용한 후 다시 시도하세요.`,description:`마이크 권한이 거부된 경우에 대한 메시지입니다.`},"session.voiceMicrophoneUnavailable":{message:`마이크를 찾을 수 없거나 사용할 수 없습니다.`,description:`마이크가 사용 불가능함`},"session.voiceNoSpeech":{message:`음성이 감지되지 않았습니다. 다시 시도해 주세요.`,description:`음성 인식이 말을 감지하지 못함`},"session.voiceNetworkError":{message:`음성 인식 서비스가 일시적으로 사용할 수 없습니다. 네트워크를 확인한 후 다시 시도해 주세요.`,description:`음성 인식 네트워크 오류`},"session.voiceError":{message:`음성 입력 실패, 다시 시도해 주세요.`,description:`음성 인식 일반 오류`},"session.retry":{message:`다시 시도`,description:`Re-run the last prompt after a failure`},"session.editPrompt":{message:`편집`,description:`전송된 프롬프트를 편집하고 새로 다시 전송`},"session.editingBanner":{message:`편집 중 — 전송 시 대화가 이 지점으로 되돌아갑니다`,description:`이전 프롬프트 편집 중 표시되는 배너`},"session.editRestoreCode":{message:`코드도 동시에 되돌리기`,description:`편집 시 파일 변경 사항도 되돌리기 위한 체크박스`},"session.editCancel":{message:`취소`,description:`이전 프롬프트 편집 취소`},"session.editSubmit":{message:`업데이트`,description:`편집된 프롬프트 제출(되감기 및 재실행)`},"session.enterHint":{message:`Enter로 전송, Shift+Enter로 줄 바꿈.`,description:`입력란 키보드 힌트`},"transcript.turnFailed":{message:`실행 실패`,description:`턴 결과 실패 라벨`},"transcript.turnDone":{message:`완료`,description:`턴 결과 완료 라벨`},"transcript.todoProgress":{message:`완료 {done}/{total}`,description:`할 일 목록 진행 상황`},"transcript.todoOverflow":{message:`…또한 {count} 항목이 표시되지 않음`,description:`할 일 목록 초과 표시 힌트`},"transcript.todoCompleted":{message:`완료됨`,description:`할 일 목록: 완료 상태 (장애인 접근성 읽기)`},"transcript.todoInProgress":{message:`진행 중`,description:`할 일 목록: 진행 중 상태 (장애인 접근성 읽기)`},"transcript.todoPending":{message:`대기 중`,description:`할 일 목록: 대기 중 상태 (장애인 접근성 읽기)`},"history.button":{message:`기록`,description:`Open the conversation history drawer`},"history.title":{message:`대화 기록`,description:`History drawer title`},"history.intro":{message:`이 기기의 이전 Claude Code, Codex 및 GitHub Copilot 세션입니다.`,description:`History drawer intro`},"history.refresh":{message:`새로 고침`,description:`Reload the history list`},"history.loading":{message:`기록을 불러오는 중…`,description:`History loading message`},"history.empty":{message:`이 기기에서 기록을 찾을 수 없습니다.`,description:`Empty history message`},"history.filterAll":{message:`모두`,description:`소스 필터를 지우고 모든 대화를 표시합니다.`},"history.filterEmpty":{message:`현재 필터링된 결과에 대화가 없습니다.`,description:`필터링 후 결과가 비어있음을 알리는 메시지입니다.`},"history.messages":{message:`메시지 {count}개`,description:`History item message count`},"history.readonly":{message:`이 Codex 대화는 읽기 전용이라 이어갈 수 없습니다. 계속 코딩하려면 새 세션을 시작하세요.`,description:`Read-only replay notice`},"history.running":{message:`실행 중`,description:`Marks a history conversation that is currently live on the device`},"history.unread":{message:`읽지 않음`,description:`역사 세션이 완료되었지만 사용자가 아직 보지 않은 표시입니다.`},"history.resumeHint":{message:`메시지를 보내면 기기에서 이 대화가 다시 시작됩니다.`,description:`Resume composer hint`},"history.claudeLabel":{message:`Claude 기록`,description:`Replayed Claude session label`},"history.codexLabel":{message:`Codex 기록 (읽기 전용)`,description:`Replayed Codex session label`},"session.permissionModeLabel":{message:`권한 모드`,description:`Permission-mode selector label`},"session.permissionModeDefault":{message:`기본값(이 컴퓨터의 승인 규칙 따름)`,description:`권한 모드: 각 도구 사용 전에 확인`},"session.permissionModeAcceptEdits":{message:`편집 자동 수락`,description:`Permission mode: auto-accept file edits`},"session.permissionModePlan":{message:`계획 모드(읽기 전용)`,description:`Permission mode: read-only planning`},"session.permissionModeBypass":{message:`모든 권한 우회`,description:`Permission mode: bypass all permission prompts`},"session.providerLabel":{message:`백엔드`,description:`Agent backend selector label`},"session.providerClaude":{message:`Claude Code`,description:`Backend option: Claude Code`},"session.providerCodex":{message:`Codex`,description:`Backend option: Codex`},"session.providerUnavailable":{message:`(설치되지 않음)`,description:`Suffix shown next to a backend whose CLI is not installed on the node`},"session.providerUnavailableHint":{message:`{name}이(가) 이 기기에 설치되어 있지 않습니다.`,description:`Composer hint shown when the selected backend is not installed on the node`},"session.effortLabel":{message:`추론 강도`,description:`Reasoning-effort selector label`},"session.effortDefault":{message:`기본값`,description:`Reasoning effort: backend default`},"session.effortLow":{message:`낮음`,description:`Reasoning effort: low`},"session.effortMedium":{message:`보통`,description:`Reasoning effort: medium`},"session.effortHigh":{message:`높음`,description:`Reasoning effort: high`},"session.effortMax":{message:`최대`,description:`Reasoning effort: maximum (Claude only)`},"directory.title":{message:`작업 디렉터리 선택`,description:`Working-directory picker dialog title`},"directory.choose":{message:`이 디렉터리 사용`,description:`Button: select the current directory`},"directory.up":{message:`상위 디렉터리`,description:`Button: go to the parent directory`},"directory.refresh":{message:`새로 고침`,description:`Button: reload the current directory`},"directory.pathPlaceholder":{message:`경로 입력 (예: D:\\) 후 엔터`,description:`편집 가능한 디렉토리 경로 입력란의 플레이스홀더입니다.`},"directory.go":{message:`이동`,description:`버튼: 입력한 디렉토리 경로로 이동합니다.`},"directory.loading":{message:`불러오는 중…`,description:`Directory listing loading hint`},"directory.empty":{message:`이 디렉터리는 비어 있습니다.`,description:`Empty directory hint`},"directory.truncated":{message:`처음 1000개 항목을 표시합니다.`,description:`Hint shown when the listing was truncated`},"session.attachImage":{message:`이미지 첨부`,description:`Attach image button title`},"session.removeImage":{message:`이미지 제거`,description:`Remove attached image button title`},"session.imageAlt":{message:`첨부된 이미지`,description:`Attached image thumbnail alt text`},"session.imageTooLarge":{message:`이미지가 너무 큽니다. 각 이미지를 12MB 이하로 유지하세요.`,description:`Warning shown when an image exceeds the size limit`},"session.imageLimit":{message:`최대 {count}개의 이미지를 첨부할 수 있습니다.`,description:`Warning shown when exceeding the max number of images`},"session.modelDefault":{message:`기본 모델`,description:`기본 모델`},"session.cwdDefault":{message:`기본 디렉토리`,description:`기본 디렉토리`},"session.settings":{message:`세션 설정`,description:`세션 설정`},"session.settingsLocked":{message:`이 세션의 설정이 잠겨 있습니다`,description:`이 세션의 설정이 잠겨 있습니다`},"session.attachFile":{message:`파일 추가`,description:`파일 첨부`},"session.attachmentImageAlt":{message:`첨부된 이미지`,description:`첨부된 이미지`},"session.removeAttachment":{message:`첨부 파일 제거`,description:`첨부 파일 제거`},"session.uploadingAttachment":{message:`첨부파일 업로드 중…`,description:`첨부파일 업로드 중…`},"session.attachmentTooLarge":{message:`파일이 너무 큽니다. 각 파일은 50 MB 이하로 유지하세요.`,description:`파일이 너무 큽니다; 각 파일을 50 MB 이하로 유지하세요.`},"session.attachmentLimit":{message:`최대 {count} 개의 파일을 첨부할 수 있습니다.`,description:`{count} 개의 파일까지 첨부할 수 있습니다.`},"session.attachmentUploadError":{message:`첨부 파일 업로드 실패.`,description:`첨부 파일 업로드 실패.`},"notice.slashUnavailable":{message:`/{command} 은(는) 대화형 명령이라 원격 세션에서는 실행할 수 없습니다.`,description:`Notice shown when a slash command can't run in a remote session`},"notice.slashCodexUnsupported":{message:`/{command} 은(는) 원격 세션의 Codex에서 사용할 수 없습니다.`,description:`Notice shown when a Codex slash command isn't supported remotely`},"notify.enable":{message:`알림 켜기`,description:`Tooltip on the notification bell when notifications are off`},"notify.disable":{message:`알림 끄기`,description:`Tooltip on the notification bell when notifications are on`},"notify.enabled":{message:`알림이 켜졌습니다. 세션에 승인이 필요하면 알려드립니다.`,description:`Toast after enabling notifications`},"notify.disabled":{message:`알림이 꺼졌습니다.`,description:`Toast after disabling notifications`},"notify.denied":{message:`알림이 차단되어 있습니다. 승인 알림을 받으려면 브라우저 설정에서 허용하세요.`,description:`Toast when notification permission is denied`},"notify.unsupported":{message:`이 기기에서는 알림이 지원되지 않습니다.`,description:`Toast when notifications are unsupported`},"notify.failed":{message:`알림 설정을 업데이트하지 못했습니다.`,description:`Toast when enabling or disabling notifications errors`},"session.working":{message:`실행 중…`,description:`세션 실행 중`},"session.permissionModeWorkspace":{message:`워크스페이스 권한(매번 확인하지 않음)`,description:`세션 권한 모드: 워크스페이스`},"transcript.interrupted":{message:`중지됨`,description:`트랜스크립트 중단됨`}};export{e as default};
@@ -1 +1 @@
1
- var e={"nodeList.title":{message:`الأجهزة`,description:`عنوان قائمة أجهزة Coding Bridge`},"nodeList.refresh":{message:`تحديث`,description:`تحديث قائمة الأجهزة`},"nodeList.pair":{message:`اقتران جهاز`,description:`فتح مربع حوار الاقتران`},"nodeList.empty":{message:`لم يتم اقتران أي جهاز بعد.`,description:`رسالة تظهر عندما تكون قائمة الأجهزة فارغة`},"nodeList.pairFirst":{message:`اقتران أول جهاز`,description:`زر الاقتران في حالة الفراغ`},"nodeList.rename":{message:`إعادة تسمية`,description:`Rename a device`},"nodeList.renamePrompt":{message:`امنح هذا الجهاز اسمًا. تتم مزامنة الاسم مع جميع أجهزتك التي سجّلت الدخول منها.`,description:`Rename device input prompt`},"nodeList.renameEmpty":{message:`لا يمكن أن يكون الاسم فارغًا.`,description:`Rename device empty-name validation`},"nodeList.renameTooLong":{message:`يجب ألا يزيد الاسم عن {max} حرفًا.`,description:`Rename device too-long validation`},"nodeList.renameSuccess":{message:`تمت إعادة تسمية الجهاز.`,description:`Rename device success`},"nodeList.renameFailed":{message:`تعذّرت إعادة تسمية الجهاز.`,description:`Rename device failure`},"nodeList.remove":{message:`إزالة`,description:`إزالة جهاز`},"nodeList.removeConfirm":{message:`هل تريد إزالة الجهاز “{name}”? بعد الإزالة، ستحتاج إلى إعادة الاقتران.`,description:`تأكيد إزالة الجهاز`},"nodeList.removeSuccess":{message:`تمت إزالة الجهاز.`,description:`رسالة نجاح إزالة الجهاز`},"nodeList.removeFailed":{message:`فشل في إزالة الجهاز.`,description:`رسالة فشل إزالة الجهاز`},"status.online":{message:`متصل`,description:`حالة الجهاز متصل`},"status.offline":{message:`غير متصل`,description:`حالة الجهاز غير متصل`},"connection.disconnected":{message:`مفصول`,description:`تم فصل الاتصال بالوسيط`},"connection.connecting":{message:`جارٍ الاتصال…`,description:`يتم الاتصال بالوسيط`},"connection.connected":{message:`متصل`,description:`تم الاتصال بالوسيط`},"connection.error":{message:`خطأ في الاتصال`,description:`حدث خطأ في الاتصال بالوسيط`},"pair.title":{message:`اقتران جهاز`,description:`عنوان مربع حوار الاقتران`},"pair.intro":{message:`قم بتشغيل وكيل Coding Bridge على جهاز الكمبيوتر الخاص بك، ثم أدخل رمز الاقتران هنا للتحكم فيه عبر الويب.`,description:`مقدمة مربع حوار الاقتران`},"pair.step1":{message:`تثبيت الوكيل (يتطلب Python 3.10+):`,description:`الخطوة 1 من الاقتران`},"pair.step2":{message:`قم بتشغيله واتبع التعليمات:`,description:`الخطوة 2 من الاقتران`},"pair.step3":{message:`أدخل رمز الاقتران المعروض أدناه.`,description:`الخطوة 3 من الاقتران`},"pair.codePlaceholder":{message:`رمز الاقتران`,description:`نص العنصر النائب في حقل إدخال رمز الاقتران`},"pair.claim":{message:`اقتران جهاز`,description:`زر تأكيد الاقتران`},"pair.success":{message:`تم اقتران الجهاز “{name}”.`,description:`رسالة نجاح الاقتران`},"pair.invalidCode":{message:`رمز الاقتران غير صالح أو منتهي الصلاحية.`,description:`خطأ رمز الاقتران غير صالح`},"pair.usedCode":{message:`تم استخدام هذا الرمز مسبقًا.`,description:`خطأ رمز الاقتران تم استخدامه`},"pair.failed":{message:`فشل في اقتران الجهاز.`,description:`خطأ عام في الاقتران`},"permission.title":{message:`يتطلب إذن`,description:`عنوان نافذة الإذن`},"permission.subtitle":{message:`يرجى الموافقة على استخدام الأداة للطلب بالوكالة، ثم المتابعة.`,description:`العنوان الفرعي لنافذة الإذن`},"permission.deny":{message:`رفض`,description:`رفض إذن الأداة`},"permission.allow":{message:`السماح`,description:`السماح للأداة بالتصريح`},"session.noDevice":{message:`اختر جهازًا لبدء الترميز.`,description:`نص العنصر النائب عند عدم اختيار جهاز`},"session.newSession":{message:`جلسة جديدة`,description:`بدء جلسة جديدة`},"session.deviceOffline":{message:`هذا الجهاز غير متصل بالإنترنت. يرجى تشغيل وكيل Coding Bridge على هذا الجهاز للمتابعة.`,description:`تحذير عند عدم اتصال الجهاز بالإنترنت`},"session.nodeId":{message:`معرّف الجهاز`,description:`Diagnostic label for the node id`},"session.sessionId":{message:`معرّف الجلسة`,description:`Diagnostic label for the session id`},"session.traceId":{message:`معرّف التتبع`,description:`Diagnostic label for the trace id`},"session.startHint":{message:`أرسل رسالة لبدء الجلسة على هذا الجهاز.`,description:`تلميح لبدء الجلسة`},"session.cwdPlaceholder":{message:`الدليل العامل (اختياري)`,description:`نص العنصر النائب لحقل إدخال الدليل العامل`},"session.modelPlaceholder":{message:`النموذج (اختياري)`,description:`نص العنصر النائب لحقل إدخال النموذج`},"session.promptPlaceholder":{message:`أرسل رسالة إلى الوكيل…`,description:`نص العنصر النائب لحقل إدخال الموجه`},"session.send":{message:`إرسال`,description:`زر إرسال الموجه`},"session.voiceInput":{message:`إدخال الصوت`,description:`بدء تحويل الصوت إلى كلمات`},"session.voiceStop":{message:`إيقاف إدخال الصوت`,description:`إيقاف تحويل الصوت إلى نص`},"session.voiceListening":{message:`يتم الاستماع، يمكن تعديل النص بعد التوقف.`,description:`提示框 أثناء إدخال التعرف على الصوت`},"session.voiceStopping":{message:`يتم إكمال تحويل الصوت...`,description:`انتظار إخراج نتيجة التعرف على الصوت النهائية`},"session.voicePermissionDenied":{message:`تم رفض إذن الميكروفون، يرجى السماح به في إعدادات النظام أو المتصفح ثم إعادة المحاولة.`,description:`تم رفض إذن الميكروفون`},"session.voiceMicrophoneUnavailable":{message:`لم يتم العثور على ميكروفون أو لا يمكن استخدامه.`,description:`الميكروفون غير متاح`},"session.voiceNoSpeech":{message:`لم يتم الكشف عن صوت، يرجى المحاولة مرة أخرى.`,description:`لم يتم الكشف عن الكلام في التعرف على الصوت`},"session.voiceNetworkError":{message:`خدمة التعرف على الصوت غير متاحة مؤقتًا، يرجى التحقق من الشبكة ثم المحاولة مرة أخرى.`,description:`خطأ في شبكة التعرف على الصوت`},"session.voiceError":{message:`فشل إدخال الصوت، يرجى المحاولة مرة أخرى.`,description:`خطأ عام في التعرف على الصوت`},"session.retry":{message:`إعادة المحاولة`,description:`Re-run the last prompt after a failure`},"session.editPrompt":{message:`تحرير`,description:`تحرير الموجه المرسل وإعادة إرساله كجولة جديدة`},"session.editingBanner":{message:`جاري التحرير - الإرسال سيعيد المحادثة إلى هنا`,description:`شعار يظهر أثناء تحرير موجه سابق`},"session.editRestoreCode":{message:`استعادة الشيفرة أيضًا`,description:`خيار لاستعادة تغييرات الملف أيضًا عند التحرير`},"session.editCancel":{message:`إلغاء`,description:`إلغاء تعديل موجه سابق`},"session.editSubmit":{message:`تحديث`,description:`إرسال موجه تم تحريره (إعادة تشغيل وإعادة تنفيذ)`},"session.enterHint":{message:`اضغط على Enter للإرسال، Shift + Enter للانتقال إلى السطر التالي.`,description:`تلميح لوحة المفاتيح لحقل الإدخال`},"transcript.turnFailed":{message:`فشل التنفيذ`,description:`علامة فشل نتيجة الجولة`},"transcript.turnDone":{message:`تم الانتهاء`,description:`علامة انتهاء نتيجة الجولة`},"transcript.todoProgress":{message:`اكتمل {done}/{total}`,description:`تقدم قائمة المهام`},"transcript.todoOverflow":{message:`…هناك {count} عنصر غير معروض`,description:`إشعار بتجاوز قائمة المهام`},"transcript.todoCompleted":{message:`مكتمل`,description:`قائمة المهام: حالة مكتملة (للقراءة الصوتية الميسرة)`},"transcript.todoInProgress":{message:`قيد التنفيذ`,description:`قائمة المهام: حالة قيد التنفيذ (للقراءة الصوتية الميسرة)`},"transcript.todoPending":{message:`معلق`,description:`قائمة المهام: حالة المعلق (للقراءة الصوتية)`},"history.button":{message:`السجل`,description:`Open the conversation history drawer`},"history.title":{message:`سجل المحادثات`,description:`History drawer title`},"history.intro":{message:`جلسات Claude Code وCodex وGitHub Copilot السابقة على هذا الجهاز.`,description:`History drawer intro`},"history.refresh":{message:`تحديث`,description:`Reload the history list`},"history.loading":{message:`جارٍ تحميل السجل…`,description:`History loading message`},"history.empty":{message:`لا يوجد سجل على هذا الجهاز.`,description:`Empty history message`},"history.filterAll":{message:`الكل`,description:`إزالة تصفية المصدر، عرض جميع المحادثات`},"history.filterEmpty":{message:`لا توجد محادثات تحت التصفية الحالية.`,description:`تنبيه عند كون النتائج فارغة بعد التصفية`},"history.messages":{message:`{count} رسالة`,description:`History item message count`},"history.readonly":{message:`محادثة Codex هذه للقراءة فقط ولا يمكن متابعتها. ابدأ جلسة جديدة لمواصلة البرمجة.`,description:`Read-only replay notice`},"history.running":{message:`قيد التشغيل`,description:`Marks a history conversation that is currently live on the device`},"history.unread":{message:`غير مقروء`,description:`علامة للمحادثات التاريخية التي تم تشغيلها ولكن المستخدم لم يقم بمشاهدتها بعد`},"history.resumeHint":{message:`سيؤدي إرسال رسالة إلى استئناف هذه المحادثة على الجهاز.`,description:`Resume composer hint`},"history.claudeLabel":{message:`سجل Claude`,description:`Replayed Claude session label`},"history.codexLabel":{message:`سجل Codex (للقراءة فقط)`,description:`Replayed Codex session label`},"session.permissionModeLabel":{message:`وضع الأذونات`,description:`Permission-mode selector label`},"session.permissionModeDefault":{message:`افتراضي (السؤال في كل مرة)`,description:`Permission mode: ask before each tool use`},"session.permissionModeAcceptEdits":{message:`قبول التعديلات تلقائيًا`,description:`Permission mode: auto-accept file edits`},"session.permissionModePlan":{message:`وضع التخطيط (للقراءة فقط)`,description:`Permission mode: read-only planning`},"session.permissionModeBypass":{message:`تجاوز كل الأذونات`,description:`Permission mode: bypass all permission prompts`},"session.providerLabel":{message:`الخلفية`,description:`Agent backend selector label`},"session.providerClaude":{message:`Claude Code`,description:`Backend option: Claude Code`},"session.providerCodex":{message:`Codex`,description:`Backend option: Codex`},"session.providerUnavailable":{message:`(غير مثبّت)`,description:`Suffix shown next to a backend whose CLI is not installed on the node`},"session.providerUnavailableHint":{message:`‏{name} غير مثبّت على هذا الجهاز.`,description:`Composer hint shown when the selected backend is not installed on the node`},"session.effortLabel":{message:`مستوى الاستدلال`,description:`Reasoning-effort selector label`},"session.effortDefault":{message:`افتراضي`,description:`Reasoning effort: backend default`},"session.effortLow":{message:`منخفض`,description:`Reasoning effort: low`},"session.effortMedium":{message:`متوسط`,description:`Reasoning effort: medium`},"session.effortHigh":{message:`مرتفع`,description:`Reasoning effort: high`},"session.effortMax":{message:`أقصى`,description:`Reasoning effort: maximum (Claude only)`},"directory.title":{message:`اختر دليل العمل`,description:`Working-directory picker dialog title`},"directory.choose":{message:`استخدم هذا الدليل`,description:`Button: select the current directory`},"directory.up":{message:`الدليل الأصل`,description:`Button: go to the parent directory`},"directory.refresh":{message:`تحديث`,description:`Button: reload the current directory`},"directory.pathPlaceholder":{message:`أدخل المسار (مثل D:\\) ثم اضغط إدخال`,description:`نص توضيحي لحقل إدخال مسار الدليل القابل للتعديل`},"directory.go":{message:`انتقل`,description:`زر: الانتقال إلى مسار الدليل المدخل`},"directory.loading":{message:`جارٍ التحميل…`,description:`Directory listing loading hint`},"directory.empty":{message:`هذا الدليل فارغ.`,description:`Empty directory hint`},"directory.truncated":{message:`عرض أول 1000 عنصر.`,description:`Hint shown when the listing was truncated`},"session.attachImage":{message:`إرفاق صورة`,description:`Attach image button title`},"session.removeImage":{message:`إزالة الصورة`,description:`Remove attached image button title`},"session.imageAlt":{message:`الصورة المرفقة`,description:`Attached image thumbnail alt text`},"session.imageTooLarge":{message:`الصورة كبيرة جدًا؛ يجب أن تكون كل صورة أقل من 12 ميغابايت.`,description:`Warning shown when an image exceeds the size limit`},"session.imageLimit":{message:`يمكنك إرفاق ما يصل إلى {count} صورة.`,description:`Warning shown when exceeding the max number of images`},"session.modelDefault":{message:`النموذج الافتراضي`,description:`النموذج الافتراضي`},"session.cwdDefault":{message:`الدليل الافتراضي`,description:`الدليل الافتراضي`},"session.settings":{message:`إعدادات الجلسة`,description:`إعدادات الجلسة`},"session.settingsLocked":{message:`تم قفل إعدادات هذه الجلسة`,description:`الإعدادات مقفلة لهذه الجلسة`},"session.attachFile":{message:`إضافة ملف`,description:`إرفاق ملف`},"session.attachmentImageAlt":{message:`صورة مرفقة`,description:`صورة مرفقة`},"session.removeAttachment":{message:`إزالة المرفق`,description:`إزالة المرفق`},"session.uploadingAttachment":{message:`جارٍ رفع المرفق...`,description:`رفع المرفقات...`},"session.attachmentTooLarge":{message:`الملف كبير جدًا، يرجى الحفاظ على حجم كل ملف أقل من 50 ميجابايت.`,description:`الملف كبير جدًا؛ يجب أن يكون كل ملف أقل من 50 ميجابايت.`},"session.attachmentLimit":{message:`يمكنك إرفاق ما يصل إلى {count} ملف.`,description:`يمكنك إرفاق ما يصل إلى {count} ملف.`},"session.attachmentUploadError":{message:`فشل تحميل المرفق.`,description:`فشل في تحميل المرفق.`},"notice.slashUnavailable":{message:`‏/{command} أمر تفاعلي ولا يمكن تشغيله في جلسة عن بُعد.`,description:`Notice shown when a slash command can't run in a remote session`},"notice.slashCodexUnsupported":{message:`‏/{command} غير متاح لـ Codex في جلسة عن بُعد.`,description:`Notice shown when a Codex slash command isn't supported remotely`},"notify.enable":{message:`تفعيل الإشعارات`,description:`Tooltip on the notification bell when notifications are off`},"notify.disable":{message:`إيقاف الإشعارات`,description:`Tooltip on the notification bell when notifications are on`},"notify.enabled":{message:`تم تفعيل الإشعارات. سننبّهك عندما تحتاج الجلسة إلى موافقة.`,description:`Toast after enabling notifications`},"notify.disabled":{message:`تم إيقاف الإشعارات.`,description:`Toast after disabling notifications`},"notify.denied":{message:`الإشعارات محظورة. اسمح بها في إعدادات المتصفح لتلقّي تنبيهات الموافقة.`,description:`Toast when notification permission is denied`},"notify.unsupported":{message:`الإشعارات غير مدعومة على هذا الجهاز.`,description:`Toast when notifications are unsupported`},"notify.failed":{message:`تعذّر تحديث إعدادات الإشعارات.`,description:`Toast when enabling or disabling notifications errors`}};export{e as default};
1
+ var e={"nodeList.title":{message:`الأجهزة`,description:`عنوان قائمة أجهزة Coding Bridge`},"nodeList.refresh":{message:`تحديث`,description:`تحديث قائمة الأجهزة`},"nodeList.pair":{message:`اقتران جهاز`,description:`فتح مربع حوار الاقتران`},"nodeList.empty":{message:`لم يتم اقتران أي جهاز بعد.`,description:`رسالة تظهر عندما تكون قائمة الأجهزة فارغة`},"nodeList.pairFirst":{message:`اقتران أول جهاز`,description:`زر الاقتران في حالة الفراغ`},"nodeList.rename":{message:`إعادة تسمية`,description:`Rename a device`},"nodeList.renamePrompt":{message:`امنح هذا الجهاز اسمًا. تتم مزامنة الاسم مع جميع أجهزتك التي سجّلت الدخول منها.`,description:`Rename device input prompt`},"nodeList.renameEmpty":{message:`لا يمكن أن يكون الاسم فارغًا.`,description:`Rename device empty-name validation`},"nodeList.renameTooLong":{message:`يجب ألا يزيد الاسم عن {max} حرفًا.`,description:`Rename device too-long validation`},"nodeList.renameSuccess":{message:`تمت إعادة تسمية الجهاز.`,description:`Rename device success`},"nodeList.renameFailed":{message:`تعذّرت إعادة تسمية الجهاز.`,description:`Rename device failure`},"nodeList.remove":{message:`إزالة`,description:`إزالة جهاز`},"nodeList.removeConfirm":{message:`هل تريد إزالة الجهاز “{name}”? بعد الإزالة، ستحتاج إلى إعادة الاقتران.`,description:`تأكيد إزالة الجهاز`},"nodeList.removeSuccess":{message:`تمت إزالة الجهاز.`,description:`رسالة نجاح إزالة الجهاز`},"nodeList.removeFailed":{message:`فشل في إزالة الجهاز.`,description:`رسالة فشل إزالة الجهاز`},"status.online":{message:`متصل`,description:`حالة الجهاز متصل`},"status.offline":{message:`غير متصل`,description:`حالة الجهاز غير متصل`},"connection.disconnected":{message:`مفصول`,description:`تم فصل الاتصال بالوسيط`},"connection.connecting":{message:`جارٍ الاتصال…`,description:`يتم الاتصال بالوسيط`},"connection.connected":{message:`متصل`,description:`تم الاتصال بالوسيط`},"connection.error":{message:`خطأ في الاتصال`,description:`حدث خطأ في الاتصال بالوسيط`},"pair.title":{message:`اقتران جهاز`,description:`عنوان مربع حوار الاقتران`},"pair.intro":{message:`قم بتشغيل وكيل Coding Bridge على جهاز الكمبيوتر الخاص بك، ثم أدخل رمز الاقتران هنا للتحكم فيه عبر الويب.`,description:`مقدمة مربع حوار الاقتران`},"pair.step1":{message:`تثبيت الوكيل (يتطلب Python 3.10+):`,description:`الخطوة 1 من الاقتران`},"pair.step2":{message:`قم بتشغيله واتبع التعليمات:`,description:`الخطوة 2 من الاقتران`},"pair.step3":{message:`أدخل رمز الاقتران المعروض أدناه.`,description:`الخطوة 3 من الاقتران`},"pair.codePlaceholder":{message:`رمز الاقتران`,description:`نص العنصر النائب في حقل إدخال رمز الاقتران`},"pair.claim":{message:`اقتران جهاز`,description:`زر تأكيد الاقتران`},"pair.success":{message:`تم اقتران الجهاز “{name}”.`,description:`رسالة نجاح الاقتران`},"pair.invalidCode":{message:`رمز الاقتران غير صالح أو منتهي الصلاحية.`,description:`خطأ رمز الاقتران غير صالح`},"pair.usedCode":{message:`تم استخدام هذا الرمز مسبقًا.`,description:`خطأ رمز الاقتران تم استخدامه`},"pair.failed":{message:`فشل في اقتران الجهاز.`,description:`خطأ عام في الاقتران`},"permission.title":{message:`يتطلب إذن`,description:`عنوان نافذة الإذن`},"permission.subtitle":{message:`يرجى الموافقة على استخدام الأداة للطلب بالوكالة، ثم المتابعة.`,description:`العنوان الفرعي لنافذة الإذن`},"permission.deny":{message:`رفض`,description:`رفض إذن الأداة`},"permission.allow":{message:`السماح`,description:`السماح للأداة بالتصريح`},"session.noDevice":{message:`اختر جهازًا لبدء الترميز.`,description:`نص العنصر النائب عند عدم اختيار جهاز`},"session.newSession":{message:`جلسة جديدة`,description:`بدء جلسة جديدة`},"session.deviceOffline":{message:`هذا الجهاز غير متصل بالإنترنت. يرجى تشغيل وكيل Coding Bridge على هذا الجهاز للمتابعة.`,description:`تحذير عند عدم اتصال الجهاز بالإنترنت`},"session.nodeId":{message:`معرّف الجهاز`,description:`Diagnostic label for the node id`},"session.sessionId":{message:`معرّف الجلسة`,description:`Diagnostic label for the session id`},"session.traceId":{message:`معرّف التتبع`,description:`Diagnostic label for the trace id`},"session.startHint":{message:`أرسل رسالة لبدء الجلسة على هذا الجهاز.`,description:`تلميح لبدء الجلسة`},"session.cwdPlaceholder":{message:`الدليل العامل (اختياري)`,description:`نص العنصر النائب لحقل إدخال الدليل العامل`},"session.modelPlaceholder":{message:`النموذج (اختياري)`,description:`نص العنصر النائب لحقل إدخال النموذج`},"session.promptPlaceholder":{message:`أرسل رسالة إلى الوكيل…`,description:`نص العنصر النائب لحقل إدخال الموجه`},"session.send":{message:`إرسال`,description:`زر إرسال الموجه`},"session.voiceInput":{message:`إدخال الصوت`,description:`بدء تحويل الصوت إلى كلمات`},"session.voiceStop":{message:`إيقاف إدخال الصوت`,description:`إيقاف تحويل الصوت إلى نص`},"session.voiceListening":{message:`يتم الاستماع، يمكن تعديل النص بعد التوقف.`,description:`提示框 أثناء إدخال التعرف على الصوت`},"session.voiceStopping":{message:`يتم إكمال تحويل الصوت...`,description:`انتظار إخراج نتيجة التعرف على الصوت النهائية`},"session.voicePermissionDenied":{message:`تم رفض إذن الميكروفون، يرجى السماح به في إعدادات النظام أو المتصفح ثم إعادة المحاولة.`,description:`تم رفض إذن الميكروفون`},"session.voiceMicrophoneUnavailable":{message:`لم يتم العثور على ميكروفون أو لا يمكن استخدامه.`,description:`الميكروفون غير متاح`},"session.voiceNoSpeech":{message:`لم يتم الكشف عن صوت، يرجى المحاولة مرة أخرى.`,description:`لم يتم الكشف عن الكلام في التعرف على الصوت`},"session.voiceNetworkError":{message:`خدمة التعرف على الصوت غير متاحة مؤقتًا، يرجى التحقق من الشبكة ثم المحاولة مرة أخرى.`,description:`خطأ في شبكة التعرف على الصوت`},"session.voiceError":{message:`فشل إدخال الصوت، يرجى المحاولة مرة أخرى.`,description:`خطأ عام في التعرف على الصوت`},"session.retry":{message:`إعادة المحاولة`,description:`Re-run the last prompt after a failure`},"session.editPrompt":{message:`تحرير`,description:`تحرير الموجه المرسل وإعادة إرساله كجولة جديدة`},"session.editingBanner":{message:`جاري التحرير - الإرسال سيعيد المحادثة إلى هنا`,description:`شعار يظهر أثناء تحرير موجه سابق`},"session.editRestoreCode":{message:`استعادة الشيفرة أيضًا`,description:`خيار لاستعادة تغييرات الملف أيضًا عند التحرير`},"session.editCancel":{message:`إلغاء`,description:`إلغاء تعديل موجه سابق`},"session.editSubmit":{message:`تحديث`,description:`إرسال موجه تم تحريره (إعادة تشغيل وإعادة تنفيذ)`},"session.enterHint":{message:`اضغط على Enter للإرسال، Shift + Enter للانتقال إلى السطر التالي.`,description:`تلميح لوحة المفاتيح لحقل الإدخال`},"transcript.turnFailed":{message:`فشل التنفيذ`,description:`علامة فشل نتيجة الجولة`},"transcript.turnDone":{message:`تم الانتهاء`,description:`علامة انتهاء نتيجة الجولة`},"transcript.todoProgress":{message:`اكتمل {done}/{total}`,description:`تقدم قائمة المهام`},"transcript.todoOverflow":{message:`…هناك {count} عنصر غير معروض`,description:`إشعار بتجاوز قائمة المهام`},"transcript.todoCompleted":{message:`مكتمل`,description:`قائمة المهام: حالة مكتملة (للقراءة الصوتية الميسرة)`},"transcript.todoInProgress":{message:`قيد التنفيذ`,description:`قائمة المهام: حالة قيد التنفيذ (للقراءة الصوتية الميسرة)`},"transcript.todoPending":{message:`معلق`,description:`قائمة المهام: حالة المعلق (للقراءة الصوتية)`},"history.button":{message:`السجل`,description:`Open the conversation history drawer`},"history.title":{message:`سجل المحادثات`,description:`History drawer title`},"history.intro":{message:`جلسات Claude Code وCodex وGitHub Copilot السابقة على هذا الجهاز.`,description:`History drawer intro`},"history.refresh":{message:`تحديث`,description:`Reload the history list`},"history.loading":{message:`جارٍ تحميل السجل…`,description:`History loading message`},"history.empty":{message:`لا يوجد سجل على هذا الجهاز.`,description:`Empty history message`},"history.filterAll":{message:`الكل`,description:`إزالة تصفية المصدر، عرض جميع المحادثات`},"history.filterEmpty":{message:`لا توجد محادثات تحت التصفية الحالية.`,description:`تنبيه عند كون النتائج فارغة بعد التصفية`},"history.messages":{message:`{count} رسالة`,description:`History item message count`},"history.readonly":{message:`محادثة Codex هذه للقراءة فقط ولا يمكن متابعتها. ابدأ جلسة جديدة لمواصلة البرمجة.`,description:`Read-only replay notice`},"history.running":{message:`قيد التشغيل`,description:`Marks a history conversation that is currently live on the device`},"history.unread":{message:`غير مقروء`,description:`علامة للمحادثات التاريخية التي تم تشغيلها ولكن المستخدم لم يقم بمشاهدتها بعد`},"history.resumeHint":{message:`سيؤدي إرسال رسالة إلى استئناف هذه المحادثة على الجهاز.`,description:`Resume composer hint`},"history.claudeLabel":{message:`سجل Claude`,description:`Replayed Claude session label`},"history.codexLabel":{message:`سجل Codex (للقراءة فقط)`,description:`Replayed Codex session label`},"session.permissionModeLabel":{message:`وضع الأذونات`,description:`Permission-mode selector label`},"session.permissionModeDefault":{message:`افتراضي (اتباع قواعد الموافقة المحلية)`,description:`وضع الأذونات: طلب الموافقة قبل كل استخدام للأداة`},"session.permissionModeAcceptEdits":{message:`قبول التعديلات تلقائيًا`,description:`Permission mode: auto-accept file edits`},"session.permissionModePlan":{message:`وضع التخطيط (للقراءة فقط)`,description:`Permission mode: read-only planning`},"session.permissionModeBypass":{message:`تجاوز كل الأذونات`,description:`Permission mode: bypass all permission prompts`},"session.providerLabel":{message:`الخلفية`,description:`Agent backend selector label`},"session.providerClaude":{message:`Claude Code`,description:`Backend option: Claude Code`},"session.providerCodex":{message:`Codex`,description:`Backend option: Codex`},"session.providerUnavailable":{message:`(غير مثبّت)`,description:`Suffix shown next to a backend whose CLI is not installed on the node`},"session.providerUnavailableHint":{message:`‏{name} غير مثبّت على هذا الجهاز.`,description:`Composer hint shown when the selected backend is not installed on the node`},"session.effortLabel":{message:`مستوى الاستدلال`,description:`Reasoning-effort selector label`},"session.effortDefault":{message:`افتراضي`,description:`Reasoning effort: backend default`},"session.effortLow":{message:`منخفض`,description:`Reasoning effort: low`},"session.effortMedium":{message:`متوسط`,description:`Reasoning effort: medium`},"session.effortHigh":{message:`مرتفع`,description:`Reasoning effort: high`},"session.effortMax":{message:`أقصى`,description:`Reasoning effort: maximum (Claude only)`},"directory.title":{message:`اختر دليل العمل`,description:`Working-directory picker dialog title`},"directory.choose":{message:`استخدم هذا الدليل`,description:`Button: select the current directory`},"directory.up":{message:`الدليل الأصل`,description:`Button: go to the parent directory`},"directory.refresh":{message:`تحديث`,description:`Button: reload the current directory`},"directory.pathPlaceholder":{message:`أدخل المسار (مثل D:\\) ثم اضغط إدخال`,description:`نص توضيحي لحقل إدخال مسار الدليل القابل للتعديل`},"directory.go":{message:`انتقل`,description:`زر: الانتقال إلى مسار الدليل المدخل`},"directory.loading":{message:`جارٍ التحميل…`,description:`Directory listing loading hint`},"directory.empty":{message:`هذا الدليل فارغ.`,description:`Empty directory hint`},"directory.truncated":{message:`عرض أول 1000 عنصر.`,description:`Hint shown when the listing was truncated`},"session.attachImage":{message:`إرفاق صورة`,description:`Attach image button title`},"session.removeImage":{message:`إزالة الصورة`,description:`Remove attached image button title`},"session.imageAlt":{message:`الصورة المرفقة`,description:`Attached image thumbnail alt text`},"session.imageTooLarge":{message:`الصورة كبيرة جدًا؛ يجب أن تكون كل صورة أقل من 12 ميغابايت.`,description:`Warning shown when an image exceeds the size limit`},"session.imageLimit":{message:`يمكنك إرفاق ما يصل إلى {count} صورة.`,description:`Warning shown when exceeding the max number of images`},"session.modelDefault":{message:`النموذج الافتراضي`,description:`النموذج الافتراضي`},"session.cwdDefault":{message:`الدليل الافتراضي`,description:`الدليل الافتراضي`},"session.settings":{message:`إعدادات الجلسة`,description:`إعدادات الجلسة`},"session.settingsLocked":{message:`تم قفل إعدادات هذه الجلسة`,description:`الإعدادات مقفلة لهذه الجلسة`},"session.attachFile":{message:`إضافة ملف`,description:`إرفاق ملف`},"session.attachmentImageAlt":{message:`صورة مرفقة`,description:`صورة مرفقة`},"session.removeAttachment":{message:`إزالة المرفق`,description:`إزالة المرفق`},"session.uploadingAttachment":{message:`جارٍ رفع المرفق...`,description:`رفع المرفقات...`},"session.attachmentTooLarge":{message:`الملف كبير جدًا، يرجى الحفاظ على حجم كل ملف أقل من 50 ميجابايت.`,description:`الملف كبير جدًا؛ يجب أن يكون كل ملف أقل من 50 ميجابايت.`},"session.attachmentLimit":{message:`يمكنك إرفاق ما يصل إلى {count} ملف.`,description:`يمكنك إرفاق ما يصل إلى {count} ملف.`},"session.attachmentUploadError":{message:`فشل تحميل المرفق.`,description:`فشل في تحميل المرفق.`},"notice.slashUnavailable":{message:`‏/{command} أمر تفاعلي ولا يمكن تشغيله في جلسة عن بُعد.`,description:`Notice shown when a slash command can't run in a remote session`},"notice.slashCodexUnsupported":{message:`‏/{command} غير متاح لـ Codex في جلسة عن بُعد.`,description:`Notice shown when a Codex slash command isn't supported remotely`},"notify.enable":{message:`تفعيل الإشعارات`,description:`Tooltip on the notification bell when notifications are off`},"notify.disable":{message:`إيقاف الإشعارات`,description:`Tooltip on the notification bell when notifications are on`},"notify.enabled":{message:`تم تفعيل الإشعارات. سننبّهك عندما تحتاج الجلسة إلى موافقة.`,description:`Toast after enabling notifications`},"notify.disabled":{message:`تم إيقاف الإشعارات.`,description:`Toast after disabling notifications`},"notify.denied":{message:`الإشعارات محظورة. اسمح بها في إعدادات المتصفح لتلقّي تنبيهات الموافقة.`,description:`Toast when notification permission is denied`},"notify.unsupported":{message:`الإشعارات غير مدعومة على هذا الجهاز.`,description:`Toast when notifications are unsupported`},"notify.failed":{message:`تعذّر تحديث إعدادات الإشعارات.`,description:`Toast when enabling or disabling notifications errors`},"session.working":{message:`جارٍ التنفيذ…`,description:`حالة الجلسة: قيد التنفيذ`},"session.permissionModeWorkspace":{message:`أذونات مساحة العمل (من دون تأكيد في كل مرة)`,description:`وضع أذونات مساحة العمل`},"transcript.interrupted":{message:`تم الإيقاف`,description:`تم إيقاف النص المُفرَّغ`}};export{e as default};
@@ -0,0 +1,2 @@
1
+ import{_ as e}from"./vuex.esm-bundler-BxNPLO2l.js";import{A as t,B as n,C as r,D as i,E as a,F as o,G as s,H as c,I as l,L as u,M as d,N as f,O as p,P as ee,R as te,S as ne,So as m,T as h,U as g,V as _,W as v,_ as y,a as b,b as x,c as re,d as ie,f as S,g as C,h as w,i as ae,io as T,j as oe,k as se,l as ce,m as E,n as D,o as O,p as k,r as A,s as j,t as M,to as N,u as P,v as F,w as I,x as L,y as R,z}from"./constants-XMLzMJVJ.js";import{In as B,Zi as V,ra as H}from"./index-B_mDD17T.js";import{a as U,i as W,n as G,o as le,r as ue}from"./codingBridgeNotify-Bwf5NQbl.js";function de(e,t){e.sessions[t.session_id]={...e.sessions[t.session_id],...t},e.events[t.session_id]??=[]}function fe(e,t,n){if(t===n||!e.sessions[t])return;e.sessions[n]={...e.sessions[n],...e.sessions[t],session_id:n},delete e.sessions[t];let r=e.events[t];r&&(r.length||!e.events[n]?.length)&&(e.events[n]=r),delete e.events[t],delete e.lastSeq[t],delete e.seqChecked[t],delete e.seqChecked[n];for(let r of e.permissions)r.session_id===t&&(r.session_id=n);e.currentSessionId===t&&(e.currentSessionId=n)}function pe(e,t){e.events[t.session_id]??=[],e.events[t.session_id].push(t)}function me(e,t,n,r){let i=e.events[t]?.find(e=>e.kind===`text`&&e.stream_id===n&&e.streaming);return i?(i.text=(i.text??``)+r,!0):!1}function he(e,t,n,r){let i=e.events[t]?.find(e=>e.kind===`text`&&e.stream_id===n);return i?(typeof r==`string`&&(i.text=r),i.streaming=!1,!0):!1}function ge(e,t){for(let n of e.events[t]??[])n.streaming&&=!1}function _e(e,t,n){let r=e.events[t];if(!r)return;if(!n){e.events[t]=[];return}let i=r.findIndex(e=>e.kind===`result`&&e.cut_uuid===n);i>=0&&(e.events[t]=r.slice(0,i+1))}var ve=()=>typeof crypto<`u`&&typeof crypto.randomUUID==`function`?crypto.randomUUID().replace(/-/g,``):`${Date.now().toString(16)}${Math.random().toString(16).slice(2)}`,ye=()=>{try{return typeof localStorage<`u`&&localStorage.getItem(`cbDebug`)===`1`}catch{return!1}},K=(e,t)=>{if(!ye())return;let n=t?.payload??{};console.debug(`[codingBridge]`,e,{type:t?.type,id:t?.id,node_id:t?.node_id??t?.from_node,action:n?.action,event:n?.event,session_id:n?.session_id,trace_id:n?.trace_id})},be=class{ws;token;handlers;reconnectDelay=s;reconnectTimer;closedByUser=!1;constructor(e){this.token=V(),this.handlers=e}get isOpen(){return this.ws?.readyState===WebSocket.OPEN}connect(){this.closedByUser=!1,this.open()}open(){if(this.ws&&(this.ws.readyState===WebSocket.OPEN||this.ws.readyState===WebSocket.CONNECTING))return;let e=`${m}?token=${encodeURIComponent(this.token)}`,t;try{t=new WebSocket(e)}catch(e){console.warn(`[codingBridge] failed to open socket`,e),this.scheduleReconnect();return}this.ws=t,t.onopen=()=>{this.reconnectDelay=s,this.handlers.onOpen?.()},t.onmessage=e=>this.onMessage(e),t.onclose=()=>{this.handlers.onClose?.(),this.closedByUser||this.scheduleReconnect()},t.onerror=()=>{t.close()}}onMessage(e){let t;try{t=JSON.parse(e.data)}catch{return}let r=t?.payload??{};switch(K(`recv`,t),t?.type){case g:this.handlers.onEvent?.(r,t?.from_node);break;case n:this.handlers.onNodesSnapshot?.(r.nodes??[]);break;case c:this.handlers.onNodeStatus?.(r.node_id,r.status);break;case _:this.handlers.onNodeRenamed?.(r.node_id,r.name);break;case y:this.handlers.onRelayError?.(r.code??`error`,r.message??``);break;default:break}}scheduleReconnect(){if(this.closedByUser||this.reconnectTimer)return;let e=this.reconnectDelay;this.reconnectTimer=setTimeout(()=>{this.reconnectTimer=void 0,this.open()},e),this.reconnectDelay=Math.min(this.reconnectDelay*2,v)}sendEnvelope(e,t){if(!this.isOpen)return;let n={v:2,id:ve(),ts:Date.now(),type:e,...t};K(`send`,n),this.ws?.send(JSON.stringify(n))}sendToNode(e,t){this.sendEnvelope(C,{node_id:e,payload:t})}listNodes(){this.sendEnvelope(E,{})}resume(e){this.sendEnvelope(w,{payload:{resume_from:e}})}close(){if(this.closedByUser=!0,this.reconnectTimer&&=(clearTimeout(this.reconnectTimer),void 0),this.ws){this.ws.onclose=null,this.ws.onerror=null,this.ws.onmessage=null,this.ws.onopen=null;try{this.ws.close()}catch{}this.ws=void 0}}},q,J=()=>typeof crypto<`u`&&typeof crypto.randomUUID==`function`?crypto.randomUUID().replace(/-/g,``):`${Date.now().toString(16)}${Math.random().toString(16).slice(2)}`,Y=(e,t,n)=>({id:J(),session_id:e,kind:t,ts:Date.now(),...n}),X=e=>{try{let t=JSON.parse(e);if(t&&typeof t==`object`)return t}catch{}return{answers:{}}},xe=e=>{let t=X(e).answers??{};return Object.entries(t).map(([e,t])=>`${e} → ${Array.isArray(t)?t.join(`, `):t}`).join(`
2
+ `)},Se=(e,t)=>{G({title:`Approval needed`,body:`Claude wants to use ${t.tool||`a tool`}. Tap to review.`,data:t},t=>{t.node_id&&e(`selectNode`,t.node_id)})},Ce=(n,s,c,m,g)=>{let _=m?.event,v=m?.session_id,y=m?.trace_id,b=m?.seq;if(typeof b==`number`&&v){let e=c.lastSeq[v];if(e!==void 0&&b<=e){if(c.seqChecked[v])return;n(`resetLastSeq`,v),s(`resyncSession`,v)}n(`markSeqChecked`,v),n(`setLastSeq`,{session_id:v,seq:b})}switch(v&&y&&n(`updateSession`,{session_id:v,trace_id:y}),_){case d:n(`upsertSession`,{session_id:v,node_id:g,status:`running`,cwd:m.cwd,model:m.model,resolved_model:m.resolved_model,...m.effort===void 0?{}:{effort:m.effort},...m.permission_mode===void 0?{}:{permission_mode:m.permission_mode},trace_id:y});break;case p:{let e=m.sdk_session_id;v&&e&&e!==v&&n(`renameSession`,{from:v,to:e});break}case o:{let e=m.id;e&&c.events[v]?.find(t=>t.kind===`text`&&t.stream_id===e)?n(`appendDelta`,{session_id:v,stream_id:e,text:m.text??``}):n(`appendEvent`,Y(v,`text`,{text:m.text??``,stream_id:e,streaming:!0,trace_id:y}));break}case ee:{let e=m.id;e&&c.events[v]?.find(t=>t.kind===`text`&&t.stream_id===e)?n(`finalizeStream`,{session_id:v,stream_id:e,text:m.text}):n(`appendEvent`,Y(v,`text`,{text:m.text,trace_id:y}));break}case l:n(`appendEvent`,Y(v,`thinking`,{text:m.text,trace_id:y}));break;case te:n(`appendEvent`,Y(v,`tool_use`,{tool:m.tool,tool_use_id:m.tool_use_id,input:m.input,trace_id:y}));break;case u:n(`appendEvent`,Y(v,`tool_result`,{tool_use_id:m.tool_use_id,content:m.content,is_error:m.is_error,trace_id:y}));break;case r:n(`addPermission`,{request_id:m.request_id,session_id:v,node_id:g,tool:m.tool,input:m.input,title:m.title,display_name:m.display_name,description:m.description}),Se(s,{node_id:g,session_id:v,request_id:m.request_id,tool:m.display_name||m.title||m.tool});break;case ne:for(let e of m.requests??[])n(`addPermission`,{request_id:e.request_id,session_id:e.session_id,node_id:g,tool:e.tool,input:e.input,title:e.title,display_name:e.display_name,description:e.description});break;case I:n(`removePermission`,m.request_id);break;case t:n(`finalizeAllStreams`,{session_id:v}),n(`appendEvent`,Y(v,`result`,{subtype:m.subtype,is_error:m.is_error,text:m.result,cost_usd:m.cost_usd,cut_uuid:m.cut_uuid,sdk_session_id:m.sdk_session_id,trace_id:y})),n(`updateSession`,{session_id:v,status:`idle`,cost_usd:m.cost_usd});break;case se:n(`appendEvent`,Y(v,`notice`,{text:m.text,subtype:m.code,command:m.command,level:m.level}));break;case i:n(`finalizeAllStreams`,{session_id:v}),n(`appendEvent`,Y(v,`error`,{text:m.message,trace_id:y})),n(`updateSession`,{session_id:v,status:`error`}),n(`updateStatus`,{key:`getHistoryDetail`,value:e.Success});break;case a:n(`finalizeAllStreams`,{session_id:v}),n(`updateSession`,{session_id:v,status:`closed`}),n(`clearSeqCheckedFor`,v);break;case oe:n(`rewindToCut`,{session_id:v,cut_uuid:m.cut_uuid}),m.prompt&&n(`appendEvent`,Y(v,`prompt`,{text:m.prompt,trace_id:y})),n(`updateSession`,{session_id:v,status:`running`});break;case f:n(`resetLastSeq`,v),n(`clearSeqCheckedFor`,v),s(`resyncSession`,v);break;case h:for(let e of m.sessions??[]){let t=e.model;n(`upsertSession`,{session_id:e.session_id,node_id:g,status:e.status??`running`,started:!0,cwd:e.cwd,model:t,resolved_model:e.resolved_model,...e.effort===void 0?{}:{effort:e.effort},...e.permission_mode===void 0?{}:{permission_mode:e.permission_mode}})}break;case L:if(g){n(`setHistory`,{node_id:g,sessions:m.sessions??[]}),n(`updateStatus`,{key:`getHistory`,value:e.Success});let t=c.historyRef;t&&t.node_id===g&&!c.currentSessionId&&s(`reattachSession`,t)}break;case x:we(n,c,m,g),n(`updateStatus`,{key:`getHistoryDetail`,value:e.Success});break;case R:n(`setDirectory`,{path:m.path,parent:m.parent??null,sep:m.sep??`/`,entries:m.entries??[],truncated:m.truncated,error:m.error});break;case F:g&&n(`setCapabilities`,{node_id:g,capabilities:{providers:m.providers??[]}});break;default:break}},we=(e,t,n,r)=>{let i=n?.session_id,a=Te(n?.provider);if(!i||!r)return;let o=a===`claude`||a===`codex`||a===`copilot`,s=t.sessions[i],c=!!s&&(s.started===!0||s.status===`running`||s.status===`starting`),l=t.lastComposer?.[r]??{},u=(n.resolved_model===void 0?void 0:n.model)??s?.model;e(`upsertSession`,{session_id:i,node_id:r,status:c?s.status:`idle`,cwd:n.cwd??s?.cwd??l.cwd,model:u,resolved_model:n.resolved_model??s?.resolved_model,effort:n.effort??s?.effort??l.effort,permission_mode:n.permission_mode??s?.permission_mode??l.permissionMode,provider:a,started:!!c,readonly:!o&&!c});let d=t.events[i]?.length??0,f=(n.events??[]).length,p=s?.status===`running`||s?.status===`starting`;c&&d>0&&(p||d>=f)||e(`setEvents`,{session_id:i,events:(n.events??[]).map((e,t)=>({id:J(),session_id:i,kind:e.kind,ts:typeof e.ts==`number`?e.ts:Date.now()+t,text:e.text,tool:e.tool,tool_use_id:e.tool_use_id,input:e.input,content:e.content,is_error:e.is_error,subtype:e.subtype,cost_usd:e.cost_usd}))}),e(`setCurrentNode`,r),e(`setCurrentSession`,i),e(`setHistoryRef`,{node_id:r,provider:a,session_id:i})},Te=e=>e===`codex`||e===`copilot`?e:`claude`,Z=0,Q=new Map,Ee=({commit:e})=>{Q.clear(),e(`resetAll`)},De=async()=>{},Oe=async()=>{},ke=(e,t,n)=>{e(`setNodeName`,{node_id:t,name:n})},$={namespaced:!0,state:H,mutations:{resetAll:e=>{Object.assign(e,H())},updateStatus:(e,t)=>{e.status[t.key]=t.value},setConnection:(e,t)=>{e.connection=t},setNodes:(e,t)=>{e.nodes=t},mergeNodeSnapshot:(e,t)=>{let n=new Set(t.map(e=>e.node_id)),r=new Map(t.map(e=>[e.node_id,e.name]));for(let t of e.nodes){t.status=n.has(t.node_id)?`online`:`offline`;let e=r.get(t.node_id);e&&(t.name=e)}for(let n of t)e.nodes.some(e=>e.node_id===n.node_id)||e.nodes.push({...n,status:`online`})},setNodeStatus:(e,t)=>{let n=e.nodes.find(e=>e.node_id===t.node_id);n&&(n.status=t.status)},setNodeName:(e,t)=>{let n=e.nodes.find(e=>e.node_id===t.node_id);n&&(n.name=t.name)},setCurrentNode:(e,t)=>{e.currentNodeId=t},setCurrentSession:(e,t)=>{e.currentSessionId=t},upsertSession:(e,t)=>{de(e,t)},updateSession:(e,t)=>{let n=e.sessions[t.session_id];n&&(e.sessions[t.session_id]={...n,...t})},renameSession:(e,t)=>{fe(e,t.from,t.to),e.historyRef?.session_id===t.from&&(e.historyRef={...e.historyRef,session_id:t.to})},appendEvent:(e,t)=>{pe(e,t)},truncateEventsBefore:(e,t)=>{let n=e.events[t.session_id];if(!n)return;let r=n.findIndex(e=>e.id===t.event_id);r>=0&&(e.events[t.session_id]=n.slice(0,r))},rewindToCut:(e,t)=>{_e(e,t.session_id,t.cut_uuid)},setLastSeq:(e,t)=>{let n=e.lastSeq[t.session_id]??0;t.seq>n&&(e.lastSeq[t.session_id]=t.seq)},resetLastSeq:(e,t)=>{delete e.lastSeq[t]},markSeqChecked:(e,t)=>{e.seqChecked[t]=!0},clearSeqChecked:e=>{e.seqChecked={}},clearSeqCheckedFor:(e,t)=>{delete e.seqChecked[t]},appendDelta:(e,t)=>{me(e,t.session_id,t.stream_id,t.text)},finalizeStream:(e,t)=>{he(e,t.session_id,t.stream_id,t.text)},finalizeAllStreams:(e,t)=>{ge(e,t.session_id)},setEvents:(e,t)=>{e.events[t.session_id]=t.events},setHistory:(e,t)=>{e.history[t.node_id]=t.sessions},setHistoryRef:(e,t)=>{e.historyRef=t},setDirectory:(e,t)=>{e.directory=t,e.directoryLoading=!1},setDirectoryLoading:(e,t)=>{e.directoryLoading=t},setLastComposer:(e,t)=>{e.lastComposer={...e.lastComposer,[t.node_id]:{...e.lastComposer[t.node_id],...t.prefs}}},setCapabilities:(e,t)=>{e.capabilities[t.node_id]=t.capabilities},addPermission:(e,t)=>{e.permissions.some(e=>e.request_id===t.request_id)||e.permissions.push(t)},removePermission:(e,t)=>{e.permissions=e.permissions.filter(e=>e.request_id!==t)},removeNodeData:(e,t)=>{delete e.history[t],delete e.capabilities[t],e.historyRef?.node_id===t&&(e.historyRef=void 0);for(let n of Object.values(e.sessions))n.node_id===t&&(delete e.sessions[n.session_id],delete e.events[n.session_id],delete e.lastSeq[n.session_id],delete e.seqChecked[n.session_id],e.currentSessionId===n.session_id&&(e.currentSessionId=void 0))}},actions:{resetAll:Ee,getApplications:De,setApplication:Oe,getNodes:async({commit:t,rootState:n})=>{let r=n.token?.access;if(!r)return[];t(`updateStatus`,{key:`getNodes`,value:e.Request});let i=Z;try{let{data:n}=await B.getNodes({token:r}),a=(n.nodes??[]).map(e=>{let t=Q.get(e.node_id);return t&&t.at>i?{...e,name:t.name}:e});return t(`setNodes`,a),t(`updateStatus`,{key:`getNodes`,value:e.Success}),a}catch(n){throw t(`updateStatus`,{key:`getNodes`,value:e.Error}),n}},claimPair:async({commit:t,dispatch:n,rootState:r},i)=>{let a=r.token?.access;if(!a)throw Error(`not authenticated`);t(`updateStatus`,{key:`claimPair`,value:e.Request});try{let{data:r}=await B.claimPair(i.trim(),{token:a});return t(`updateStatus`,{key:`claimPair`,value:e.Success}),await n(`getNodes`),r.node_name}catch(n){throw t(`updateStatus`,{key:`claimPair`,value:e.Error}),n}},deleteNode:async({commit:t,dispatch:n,state:r,rootState:i},a)=>{let o=i.token?.access;if(!o)throw Error(`not authenticated`);t(`updateStatus`,{key:`deleteNode`,value:e.Request});try{await B.deleteNode(a,{token:o}),t(`removeNodeData`,a),r.currentNodeId===a&&(t(`setCurrentNode`,void 0),t(`setCurrentSession`,void 0)),t(`updateStatus`,{key:`deleteNode`,value:e.Success}),await n(`getNodes`)}catch(n){throw t(`updateStatus`,{key:`deleteNode`,value:e.Error}),n}},renameNode:async({commit:t,rootState:n},r)=>{let i=n.token?.access;if(!i)throw Error(`not authenticated`);let a=r.name.trim();if(!a)throw Error(`name must not be empty`);t(`updateStatus`,{key:`renameNode`,value:e.Request});try{let{data:n}=await B.renameNode(r.nodeId,a,{token:i}),o=n?.name??a;Q.size>=50&&Q.clear(),Q.set(r.nodeId,{name:o,at:++Z}),t(`setNodeName`,{node_id:r.nodeId,name:o}),t(`updateStatus`,{key:`renameNode`,value:e.Success})}catch(n){throw t(`updateStatus`,{key:`renameNode`,value:e.Error}),n}},connect:({commit:e,dispatch:t,state:n,rootState:r})=>{r.token?.access&&(q?.isOpen||(q?.close(),e(`setConnection`,`connecting`),q=new be({onOpen:()=>{e(`setConnection`,`connected`),e(`clearSeqChecked`);let r={...n.lastSeq};Object.keys(r).length&&q?.resume(r),n.currentNodeId&&(t(`getHistory`,n.currentNodeId),t(`getCapabilities`,n.currentNodeId),t(`requestSessions`,n.currentNodeId),t(`requestPendingPermissions`,n.currentNodeId))},onClose:()=>e(`setConnection`,`disconnected`),onEvent:(r,i)=>Ce(e,t,n,r,i),onNodesSnapshot:n=>{e(`mergeNodeSnapshot`,n),t(`getNodes`)},onNodeStatus:(r,i)=>{e(`setNodeStatus`,{node_id:r,status:i}),i===`online`&&r===n.currentNodeId&&(t(`getHistory`,r),t(`getCapabilities`,r),t(`requestSessions`,r),t(`requestPendingPermissions`,r))},onNodeRenamed:(t,n)=>{ke(e,t,n)},onRelayError:(e,t)=>console.warn(`[codingBridge] relay error`,e,t)}),q.connect()))},disconnect:({commit:e})=>{q?.close(),q=void 0,e(`setConnection`,`disconnected`)},selectNode:({commit:e,dispatch:t,state:n},r)=>{if(e(`setCurrentNode`,r),!r){e(`setCurrentSession`,void 0);return}let i=Object.values(n.sessions).filter(e=>e.node_id===r).map(e=>e.session_id);e(`setCurrentSession`,i.length?i[i.length-1]:void 0),t(`getHistory`,r),t(`getCapabilities`,r),t(`requestSessions`,r),t(`requestPendingPermissions`,r)},requestSessions:({state:e},t)=>{let n=t??e.currentNodeId;!n||!q||q.sendToNode(n,{action:re})},requestPendingPermissions:({state:e},t)=>{let n=t??e.currentNodeId;!n||!q||q.sendToNode(n,{action:O})},enableNotifications:async({dispatch:e,rootState:t})=>{let n=t.token?.access;if(!n)return`unsupported`;if(T()){let t=await ue(t=>{t?.node_id&&(e(`selectNode`,t.node_id),e(`requestPendingPermissions`,t.node_id))});return t?(await B.savePushSubscription({kind:N()?`apns`:`fcm`,token:t,ua:navigator.userAgent},{token:n}),`enabled`):`denied`}let r=await W();if(r===`unsupported`)return`unsupported`;if(r!==`granted`)return`denied`;try{let{data:e}=await B.getPushConfig();if(e.web_push_enabled&&e.vapid_public_key){let t=await U(e.vapid_public_key);t&&await B.savePushSubscription({kind:`webpush`,subscription:t,ua:navigator.userAgent},{token:n})}}catch(e){console.warn(`[codingBridge] web push setup skipped`,e)}return`enabled`},disableNotifications:async({rootState:e})=>{let t=e.token?.access;if(T()||!t)return;let n=await le();if(n)try{await B.deletePushSubscription({endpoint:n},{token:t})}catch(e){console.warn(`[codingBridge] failed to deregister web push`,e)}},newSession:({commit:e})=>{e(`setCurrentSession`,void 0),e(`setHistoryRef`,void 0)},sendPrompt:({commit:e,state:t},n)=>{let r=t.currentNodeId,i=n.prompt?.trim(),a=n.images?.length?n.images:void 0,o=n.attachments?.length?n.attachments:void 0;if(!r||!q||!i&&!a&&!o)return;let s=J(),c=t.currentSessionId,l=c?t.sessions[c]:void 0;if(!l||!l.started){let t=l?.provider||n.provider||`claude`;l?(c=l.session_id,e(`updateSession`,{session_id:c,status:`starting`,trace_id:s,...n.cwd?{cwd:n.cwd}:{},...n.model===void 0?{}:{model:n.model},...n.effort===void 0?{}:{effort:n.effort},...n.permissionMode===void 0?{}:{permission_mode:n.permissionMode}})):(c=J(),e(`upsertSession`,{session_id:c,node_id:r,status:`starting`,cwd:n.cwd,model:n.model,effort:n.effort,permission_mode:n.permissionMode,provider:t,trace_id:s}),e(`setCurrentSession`,c),e(`setHistoryRef`,{node_id:r,provider:t,session_id:c})),e(`appendEvent`,Y(c,`prompt`,{text:i,images:a,attachments:o,trace_id:s})),e(`updateSession`,{session_id:c,started:!0}),q.sendToNode(r,{action:k,session_id:c,trace_id:s,prompt:i,cwd:n.cwd||l?.cwd||void 0,model:n.model||l?.model||void 0,permission_mode:n.permissionMode||`default`,provider:t,effort:n.effort||void 0,images:a,attachments:o,resume_session_id:l?.session_id||void 0})}else e(`updateSession`,{session_id:c,trace_id:s}),e(`appendEvent`,Y(c,`prompt`,{text:i,images:a,attachments:o,trace_id:s})),e(`updateSession`,{session_id:c,status:`running`,model:n.model||void 0,...n.effort===void 0?{}:{effort:n.effort},...n.permissionMode===void 0?{}:{permission_mode:n.permissionMode}}),q.sendToNode(r,{action:S,session_id:c,trace_id:s,prompt:i,model:n.model??``,...n.effort===void 0?{}:{effort:n.effort},...n.permissionMode===void 0?{}:{permission_mode:n.permissionMode},images:a,attachments:o})},editPrompt:({commit:e,state:t},n)=>{let r=t.currentNodeId,i=t.currentSessionId,a=n.prompt?.trim();if(!r||!i||!q||!a)return;let o=t.sessions[i],s=t.events[i]??[],c=s.findIndex(e=>e.id===n.eventId);if(!o||c<0)return;let l;for(let e=c-1;e>=0;e--)if(s[e].kind===`result`&&s[e].cut_uuid){l=s[e].cut_uuid;break}let u=n.images?.length?n.images:void 0,d=n.attachments?.length?n.attachments:void 0,f=J();e(`truncateEventsBefore`,{session_id:i,event_id:n.eventId}),e(`updateSession`,{session_id:i,status:`running`,trace_id:f,model:n.model||o.model||void 0,...n.effort===void 0?{}:{effort:n.effort},...n.permissionMode===void 0?{}:{permission_mode:n.permissionMode}}),e(`appendEvent`,Y(i,`prompt`,{text:a,images:u,attachments:d,trace_id:f})),q.sendToNode(r,{action:P,session_id:i,trace_id:f,cut_uuid:l,prompt:a,model:n.model||o.model||void 0,permission_mode:n.permissionMode||void 0,effort:n.effort||void 0,images:u,attachments:d,restore_code:!!n.restoreCode})},retryLastPrompt:({commit:e,dispatch:t,state:n})=>{let r=n.currentSessionId;if(!r)return;let i=n.sessions[r],a=[...n.events[r]??[]].reverse().find(e=>e.kind===`prompt`);!i||!a||(e(`updateSession`,{session_id:r,started:!1}),t(`sendPrompt`,{prompt:a.text??``,cwd:i.cwd,model:i.model,provider:i.provider,images:a.images,attachments:a.attachments}))},interruptSession:({state:e})=>{let t=e.currentSessionId,n=e.currentNodeId;!t||!n||!q||q.sendToNode(n,{action:ie,session_id:t})},closeSession:({commit:e,state:t},n)=>{let r=n??t.currentSessionId;if(!r)return;let i=t.sessions[r]?.node_id??t.currentNodeId;i&&q&&q.sendToNode(i,{action:ce,session_id:r}),e(`updateSession`,{session_id:r,status:`closed`}),t.currentSessionId===r&&e(`setCurrentSession`,void 0)},resolvePermission:({commit:e,state:t},n)=>{let r=t.permissions.find(e=>e.request_id===n.request_id);r&&(q?.sendToNode(r.node_id,{action:j,request_id:n.request_id,decision:n.decision}),e(`removePermission`,n.request_id))},answerQuestion:({commit:e,state:t},n)=>{let r=t.permissions.find(e=>e.request_id===n.request_id);r&&(q?.sendToNode(r.node_id,{action:j,request_id:n.request_id,decision:`allow`,answer:X(n.output),answer_text:xe(n.output)}),e(`removePermission`,n.request_id))},getHistory:({commit:t,state:n},r)=>{let i=r??n.currentNodeId;!i||!q||(t(`updateStatus`,{key:`getHistory`,value:e.Request}),q.sendToNode(i,{action:ae,limit:z}))},getHistoryDetail:({commit:t},n)=>{!n?.node_id||!n?.session_id||!q||(t(`updateStatus`,{key:`getHistoryDetail`,value:e.Request}),q.sendToNode(n.node_id,{action:A,provider:n.provider,session_id:n.session_id}),setTimeout(()=>t(`updateStatus`,{key:`getHistoryDetail`,value:e.Success}),12e3))},markHistoryRead:(e,t)=>{!t?.node_id||!t?.session_id||!t?.provider||!q||q.sendToNode(t.node_id,{action:b,provider:t.provider,session_id:t.session_id,updated_at:t.updated_at,limit:z})},reattachSession:({state:e,commit:t,dispatch:n},r)=>{if(!r?.node_id||!r?.session_id)return;t(`setCurrentNode`,r.node_id),t(`setCurrentSession`,r.session_id),n(`getHistoryDetail`,r),n(`requestSessions`,r.node_id),n(`requestPendingPermissions`,r.node_id);let i=e.lastSeq[r.session_id];i!==void 0&&q?.resume({[r.session_id]:i})},resyncSession:({state:e,dispatch:t},n)=>{let r=e.sessions[n];r?.node_id&&t(`getHistoryDetail`,{node_id:r.node_id,session_id:n,provider:r.provider??`claude`})},browseDir:({commit:e,state:t},n)=>{let r=t.currentNodeId;!r||!q||(e(`setDirectoryLoading`,!0),q.sendToNode(r,{action:D,path:n||void 0}))},clearDirectory:({commit:e})=>{e(`setDirectory`,void 0)},getCapabilities:({state:e},t)=>{let n=t??e.currentNodeId;!n||!q||q.sendToNode(n,{action:M})}}};export{$ as codingBridge,$ as default};
@@ -1 +1 @@
1
- var e={"nodeList.title":{message:`Dispositivi`,description:`Titolo dell'elenco dei dispositivi di Coding Bridge`},"nodeList.refresh":{message:`Aggiorna`,description:`Aggiorna l'elenco dei dispositivi`},"nodeList.pair":{message:`Accoppia dispositivo`,description:`Apre la finestra di dialogo per l'accoppiamento`},"nodeList.empty":{message:`Nessun dispositivo accoppiato.`,description:`Messaggio quando l'elenco dei dispositivi è vuoto`},"nodeList.pairFirst":{message:`Accoppia il primo dispositivo`,description:`Pulsante di accoppiamento in stato vuoto`},"nodeList.rename":{message:`Rinomina`,description:`Rename a device`},"nodeList.renamePrompt":{message:`Assegna un nome a questo dispositivo. Il nome viene sincronizzato su tutti i dispositivi in cui hai effettuato l’accesso.`,description:`Rename device input prompt`},"nodeList.renameEmpty":{message:`Il nome non può essere vuoto.`,description:`Rename device empty-name validation`},"nodeList.renameTooLong":{message:`Il nome deve contenere al massimo {max} caratteri.`,description:`Rename device too-long validation`},"nodeList.renameSuccess":{message:`Dispositivo rinominato.`,description:`Rename device success`},"nodeList.renameFailed":{message:`Impossibile rinominare il dispositivo.`,description:`Rename device failure`},"nodeList.remove":{message:`Rimuovi`,description:`Rimuove un dispositivo`},"nodeList.removeConfirm":{message:`Rimuovere il dispositivo “{name}”? Dopo la rimozione sarà necessario accoppiarlo di nuovo.`,description:`Conferma la rimozione del dispositivo`},"nodeList.removeSuccess":{message:`Dispositivo rimosso.`,description:`Messaggio di successo per la rimozione del dispositivo`},"nodeList.removeFailed":{message:`Rimozione del dispositivo fallita.`,description:`Messaggio di errore per la rimozione del dispositivo`},"status.online":{message:`Online`,description:`Stato del dispositivo online`},"status.offline":{message:`Offline`,description:`Stato del dispositivo offline`},"connection.disconnected":{message:`Disconnesso`,description:`La connessione del relay è stata interrotta`},"connection.connecting":{message:`Connessione in corso…`,description:`Il relay sta tentando di connettersi`},"connection.connected":{message:`Connesso`,description:`Il relay è connesso`},"connection.error":{message:`Errore di connessione`,description:`Si è verificato un errore nella connessione del relay`},"pair.title":{message:`Accoppia dispositivo`,description:`Titolo della finestra di dialogo di accoppiamento`},"pair.intro":{message:`Esegui il proxy Coding Bridge sul tuo computer e inserisci qui il codice di accoppiamento per controllarlo dal browser.`,description:`Introduzione alla finestra di dialogo di accoppiamento`},"pair.step1":{message:`Installa il proxy (richiede Python 3.10+):`,description:`Passo 1 per l'accoppiamento`},"pair.step2":{message:`Avvia e segui le istruzioni:`,description:`Passo 2 per l'accoppiamento`},"pair.step3":{message:`Inserisci il codice di accoppiamento mostrato qui sotto.`,description:`Passo 3 per l'accoppiamento`},"pair.codePlaceholder":{message:`Codice di accoppiamento`,description:`Segnaposto per il campo di input del codice di accoppiamento`},"pair.claim":{message:`Accoppia dispositivo`,description:`Pulsante di conferma per l'accoppiamento`},"pair.success":{message:`Dispositivo “{name}” accoppiato.`,description:`Messaggio di successo per l'accoppiamento`},"pair.invalidCode":{message:`Il codice di accoppiamento è invalido o è scaduto.`,description:`Errore di codice di accoppiamento invalido`},"pair.usedCode":{message:`Questo codice di accoppiamento è già stato utilizzato.`,description:`Errore di codice di accoppiamento già utilizzato`},"pair.failed":{message:`Accoppiamento del dispositivo fallito.`,description:`Errore generico di accoppiamento`},"permission.title":{message:`Autorizzazione necessaria`,description:`Titolo della finestra di autorizzazione`},"permission.subtitle":{message:`Richiesta di autorizzazione per utilizzare uno strumento, continua dopo l'approvazione.`,description:`Sottotitolo della finestra di autorizzazione`},"permission.deny":{message:`Rifiuta`,description:`Rifiuta l'autorizzazione dello strumento`},"permission.allow":{message:`Consenti`,description:`Consenti l'autorizzazione dello strumento`},"session.noDevice":{message:`Seleziona un dispositivo per iniziare a codificare.`,description:`Suggerimento segnaposto quando non è stato selezionato alcun dispositivo`},"session.newSession":{message:`Nuova sessione`,description:`Inizia una nuova sessione`},"session.deviceOffline":{message:`Questo dispositivo è offline. Per favore, avvia il proxy Coding Bridge su questo dispositivo per continuare.`,description:`Avviso di dispositivo offline`},"session.nodeId":{message:`ID dispositivo`,description:`Diagnostic label for the node id`},"session.sessionId":{message:`ID sessione`,description:`Diagnostic label for the session id`},"session.traceId":{message:`ID traccia`,description:`Diagnostic label for the trace id`},"session.startHint":{message:`Invia un messaggio per iniziare la sessione su questo dispositivo.`,description:`Suggerimento per un record vuoto`},"session.cwdPlaceholder":{message:`Directory di lavoro (opzionale)`,description:`Segnaposto per il campo di input della directory di lavoro`},"session.modelPlaceholder":{message:`Modello (opzionale)`,description:`Segnaposto per il campo di input del modello`},"session.promptPlaceholder":{message:`Invia un messaggio al proxy…`,description:`Segnaposto per il campo di input del prompt`},"session.send":{message:`Invia`,description:`Pulsante per inviare il messaggio`},"session.voiceInput":{message:`Input vocale`,description:`Inizia a convertire la voce in suggerimenti`},"session.voiceStop":{message:`Ferma input vocale`,description:`Ferma la trascrizione vocale`},"session.voiceListening":{message:`In ascolto, puoi modificare il testo dopo aver fermato.`,description:`Messaggio di input durante il riconoscimento vocale in corso`},"session.voiceStopping":{message:`Completando la trascrizione vocale…`,description:`In attesa del risultato finale del riconoscimento vocale`},"session.voicePermissionDenied":{message:`Permesso del microfono negato, consenti nelle impostazioni di sistema o del browser e riprova.`,description:`Permesso del microfono negato`},"session.voiceMicrophoneUnavailable":{message:`Microfono non trovato o non disponibile.`,description:`Microfono non disponibile`},"session.voiceNoSpeech":{message:`Nessuna voce rilevata, riprova.`,description:`Il riconoscimento vocale non ha rilevato alcuna parola`},"session.voiceNetworkError":{message:`Servizio di riconoscimento vocale temporaneamente non disponibile, controlla la rete e riprova.`,description:`Errore di rete nel riconoscimento vocale`},"session.voiceError":{message:`Errore nell'input vocale, riprova.`,description:`Errore generico nel riconoscimento vocale`},"session.retry":{message:`Riprova`,description:`Re-run the last prompt after a failure`},"session.editPrompt":{message:`Modifica`,description:`Modifica il prompt inviato e invialo nuovamente come un nuovo`},"session.editingBanner":{message:`In modifica — l'invio riporterà la conversazione a questo punto`,description:`Banner mostrato durante la modifica di un prompt precedente`},"session.editRestoreCode":{message:`Ripristina anche il codice`,description:`Checkbox per ripristinare anche le modifiche ai file durante la modifica`},"session.editCancel":{message:`Annulla`,description:`Annulla la modifica di un prompt precedente`},"session.editSubmit":{message:`Aggiorna`,description:`Invia un prompt modificato (riavvolgi e riesegui)`},"session.enterHint":{message:`Invio per inviare, Shift+Invio per andare a capo.`,description:`Suggerimento per la tastiera nel campo di input`},"transcript.turnFailed":{message:`Esecuzione fallita`,description:`Etichetta di fallimento del risultato del turno`},"transcript.turnDone":{message:`Completato`,description:`Etichetta di completamento del risultato del turno`},"transcript.todoProgress":{message:`Completato {done}/{total}`,description:`Progresso dell'elenco delle attività`},"transcript.todoOverflow":{message:`…ci sono altre {count} voci non visualizzate`,description:`Suggerimento per un elenco di attività troppo lungo`},"transcript.todoCompleted":{message:`Completato`,description:`Elenco delle attività: stato completato (lettura accessibile)`},"transcript.todoInProgress":{message:`In corso`,description:`Elenco delle attività: stato in corso (lettura accessibile)`},"transcript.todoPending":{message:`Da fare`,description:`Elenco delle attività: stato da fare (lettura accessibile)`},"history.button":{message:`Cronologia`,description:`Open the conversation history drawer`},"history.title":{message:`Cronologia delle conversazioni`,description:`History drawer title`},"history.intro":{message:`Sessioni Claude Code, Codex e GitHub Copilot precedenti su questo dispositivo.`,description:`History drawer intro`},"history.refresh":{message:`Aggiorna`,description:`Reload the history list`},"history.loading":{message:`Caricamento della cronologia…`,description:`History loading message`},"history.empty":{message:`Nessuna cronologia trovata su questo dispositivo.`,description:`Empty history message`},"history.filterAll":{message:`Tutti`,description:`Rimuove il filtro di origine e mostra tutte le conversazioni.`},"history.filterEmpty":{message:`Non ci sono conversazioni con il filtro attuale.`,description:`Messaggio che indica che i risultati sono vuoti dopo l'applicazione del filtro.`},"history.messages":{message:`{count} messaggi`,description:`History item message count`},"history.readonly":{message:`Questa conversazione Codex è di sola lettura e non può essere continuata. Avvia una nuova sessione per continuare a programmare.`,description:`Read-only replay notice`},"history.running":{message:`In esecuzione`,description:`Marks a history conversation that is currently live on the device`},"history.unread":{message:`Non letto`,description:`Indicatore di sessioni storiche completate ma non ancora visualizzate dall'utente`},"history.resumeHint":{message:`L’invio di un messaggio riprenderà questa conversazione sul dispositivo.`,description:`Resume composer hint`},"history.claudeLabel":{message:`Cronologia Claude`,description:`Replayed Claude session label`},"history.codexLabel":{message:`Cronologia Codex (sola lettura)`,description:`Replayed Codex session label`},"session.permissionModeLabel":{message:`Modalità autorizzazioni`,description:`Permission-mode selector label`},"session.permissionModeDefault":{message:`Predefinito (chiedi ogni volta)`,description:`Permission mode: ask before each tool use`},"session.permissionModeAcceptEdits":{message:`Accetta automaticamente le modifiche`,description:`Permission mode: auto-accept file edits`},"session.permissionModePlan":{message:`Modalità pianificazione (sola lettura)`,description:`Permission mode: read-only planning`},"session.permissionModeBypass":{message:`Ignora tutte le autorizzazioni`,description:`Permission mode: bypass all permission prompts`},"session.providerLabel":{message:`Backend`,description:`Etichetta per il selettore del backend dell'agente`},"session.providerClaude":{message:`Claude Code`,description:`Backend option: Claude Code`},"session.providerCodex":{message:`Codex`,description:`Backend option: Codex`},"session.providerUnavailable":{message:`(non installato)`,description:`Suffix shown next to a backend whose CLI is not installed on the node`},"session.providerUnavailableHint":{message:`{name} non è installato su questo dispositivo.`,description:`Composer hint shown when the selected backend is not installed on the node`},"session.effortLabel":{message:`Sforzo di ragionamento`,description:`Reasoning-effort selector label`},"session.effortDefault":{message:`Predefinito`,description:`Reasoning effort: backend default`},"session.effortLow":{message:`Basso`,description:`Reasoning effort: low`},"session.effortMedium":{message:`Medio`,description:`Reasoning effort: medium`},"session.effortHigh":{message:`Alto`,description:`Reasoning effort: high`},"session.effortMax":{message:`Massimo`,description:`Reasoning effort: maximum (Claude only)`},"directory.title":{message:`Scegli la directory di lavoro`,description:`Working-directory picker dialog title`},"directory.choose":{message:`Usa questa directory`,description:`Button: select the current directory`},"directory.up":{message:`Directory superiore`,description:`Button: go to the parent directory`},"directory.refresh":{message:`Aggiorna`,description:`Button: reload the current directory`},"directory.pathPlaceholder":{message:`Inserisci il percorso (es. D:\\) e premi invio`,description:`Segnaposto per l'input del percorso della directory modificabile`},"directory.go":{message:`Vai`,description:`Pulsante: naviga al percorso della directory digitato`},"directory.loading":{message:`Caricamento…`,description:`Directory listing loading hint`},"directory.empty":{message:`Questa directory è vuota.`,description:`Empty directory hint`},"directory.truncated":{message:`Mostrate le prime 1000 voci.`,description:`Hint shown when the listing was truncated`},"session.attachImage":{message:`Allega immagine`,description:`Attach image button title`},"session.removeImage":{message:`Rimuovi immagine`,description:`Remove attached image button title`},"session.imageAlt":{message:`Immagine allegata`,description:`Attached image thumbnail alt text`},"session.imageTooLarge":{message:`L'immagine è troppo grande; mantieni ciascuna sotto i 12 MB.`,description:`Warning shown when an image exceeds the size limit`},"session.imageLimit":{message:`Puoi allegare fino a {count} immagini.`,description:`Warning shown when exceeding the max number of images`},"session.modelDefault":{message:`Modello predefinito`,description:`Modello predefinito`},"session.cwdDefault":{message:`Directory predefinita`,description:`Directory predefinita`},"session.settings":{message:`Impostazioni della sessione`,description:`Impostazioni della sessione`},"session.settingsLocked":{message:`Le impostazioni di questa sessione sono bloccate`,description:`Le impostazioni sono bloccate per questa sessione`},"session.attachFile":{message:`Aggiungi file`,description:`Allega un file`},"session.attachmentImageAlt":{message:`Immagine allegata`,description:`Immagine allegata`},"session.removeAttachment":{message:`Rimuovi allegato`,description:`Rimuovi l'allegato`},"session.uploadingAttachment":{message:`Caricamento allegato in corso…`,description:`Caricamento degli allegati…`},"session.attachmentTooLarge":{message:`File troppo grande, mantieni ogni file sotto i 50 MB.`,description:`Il file è troppo grande; mantieni ciascuno sotto i 50 MB.`},"session.attachmentLimit":{message:`Puoi allegare al massimo {count} file.`,description:`Puoi allegare fino a {count} file.`},"session.attachmentUploadError":{message:`Errore nel caricamento dell'allegato.`,description:`Impossibile caricare l'allegato.`},"notice.slashUnavailable":{message:`/{command} è un comando interattivo e non può essere eseguito in una sessione remota.`,description:`Notice shown when a slash command can't run in a remote session`},"notice.slashCodexUnsupported":{message:`/{command} non è disponibile per Codex in una sessione remota.`,description:`Notice shown when a Codex slash command isn't supported remotely`},"notify.enable":{message:`Attiva le notifiche`,description:`Tooltip on the notification bell when notifications are off`},"notify.disable":{message:`Disattiva le notifiche`,description:`Tooltip on the notification bell when notifications are on`},"notify.enabled":{message:`Notifiche attivate. Ti avviseremo quando una sessione richiede un'approvazione.`,description:`Toast after enabling notifications`},"notify.disabled":{message:`Notifiche disattivate.`,description:`Toast after disabling notifications`},"notify.denied":{message:`Le notifiche sono bloccate. Consentile nelle impostazioni del browser per ricevere gli avvisi di approvazione.`,description:`Toast when notification permission is denied`},"notify.unsupported":{message:`Le notifiche non sono supportate su questo dispositivo.`,description:`Toast when notifications are unsupported`},"notify.failed":{message:`Impossibile aggiornare le impostazioni delle notifiche.`,description:`Toast when enabling or disabling notifications errors`}};export{e as default};
1
+ var e={"nodeList.title":{message:`Dispositivi`,description:`Titolo dell'elenco dei dispositivi di Coding Bridge`},"nodeList.refresh":{message:`Aggiorna`,description:`Aggiorna l'elenco dei dispositivi`},"nodeList.pair":{message:`Accoppia dispositivo`,description:`Apre la finestra di dialogo per l'accoppiamento`},"nodeList.empty":{message:`Nessun dispositivo accoppiato.`,description:`Messaggio quando l'elenco dei dispositivi è vuoto`},"nodeList.pairFirst":{message:`Accoppia il primo dispositivo`,description:`Pulsante di accoppiamento in stato vuoto`},"nodeList.rename":{message:`Rinomina`,description:`Rename a device`},"nodeList.renamePrompt":{message:`Assegna un nome a questo dispositivo. Il nome viene sincronizzato su tutti i dispositivi in cui hai effettuato l’accesso.`,description:`Rename device input prompt`},"nodeList.renameEmpty":{message:`Il nome non può essere vuoto.`,description:`Rename device empty-name validation`},"nodeList.renameTooLong":{message:`Il nome deve contenere al massimo {max} caratteri.`,description:`Rename device too-long validation`},"nodeList.renameSuccess":{message:`Dispositivo rinominato.`,description:`Rename device success`},"nodeList.renameFailed":{message:`Impossibile rinominare il dispositivo.`,description:`Rename device failure`},"nodeList.remove":{message:`Rimuovi`,description:`Rimuove un dispositivo`},"nodeList.removeConfirm":{message:`Rimuovere il dispositivo “{name}”? Dopo la rimozione sarà necessario accoppiarlo di nuovo.`,description:`Conferma la rimozione del dispositivo`},"nodeList.removeSuccess":{message:`Dispositivo rimosso.`,description:`Messaggio di successo per la rimozione del dispositivo`},"nodeList.removeFailed":{message:`Rimozione del dispositivo fallita.`,description:`Messaggio di errore per la rimozione del dispositivo`},"status.online":{message:`Online`,description:`Stato del dispositivo online`},"status.offline":{message:`Offline`,description:`Stato del dispositivo offline`},"connection.disconnected":{message:`Disconnesso`,description:`La connessione del relay è stata interrotta`},"connection.connecting":{message:`Connessione in corso…`,description:`Il relay sta tentando di connettersi`},"connection.connected":{message:`Connesso`,description:`Il relay è connesso`},"connection.error":{message:`Errore di connessione`,description:`Si è verificato un errore nella connessione del relay`},"pair.title":{message:`Accoppia dispositivo`,description:`Titolo della finestra di dialogo di accoppiamento`},"pair.intro":{message:`Esegui il proxy Coding Bridge sul tuo computer e inserisci qui il codice di accoppiamento per controllarlo dal browser.`,description:`Introduzione alla finestra di dialogo di accoppiamento`},"pair.step1":{message:`Installa il proxy (richiede Python 3.10+):`,description:`Passo 1 per l'accoppiamento`},"pair.step2":{message:`Avvia e segui le istruzioni:`,description:`Passo 2 per l'accoppiamento`},"pair.step3":{message:`Inserisci il codice di accoppiamento mostrato qui sotto.`,description:`Passo 3 per l'accoppiamento`},"pair.codePlaceholder":{message:`Codice di accoppiamento`,description:`Segnaposto per il campo di input del codice di accoppiamento`},"pair.claim":{message:`Accoppia dispositivo`,description:`Pulsante di conferma per l'accoppiamento`},"pair.success":{message:`Dispositivo “{name}” accoppiato.`,description:`Messaggio di successo per l'accoppiamento`},"pair.invalidCode":{message:`Il codice di accoppiamento è invalido o è scaduto.`,description:`Errore di codice di accoppiamento invalido`},"pair.usedCode":{message:`Questo codice di accoppiamento è già stato utilizzato.`,description:`Errore di codice di accoppiamento già utilizzato`},"pair.failed":{message:`Accoppiamento del dispositivo fallito.`,description:`Errore generico di accoppiamento`},"permission.title":{message:`Autorizzazione necessaria`,description:`Titolo della finestra di autorizzazione`},"permission.subtitle":{message:`Richiesta di autorizzazione per utilizzare uno strumento, continua dopo l'approvazione.`,description:`Sottotitolo della finestra di autorizzazione`},"permission.deny":{message:`Rifiuta`,description:`Rifiuta l'autorizzazione dello strumento`},"permission.allow":{message:`Consenti`,description:`Consenti l'autorizzazione dello strumento`},"session.noDevice":{message:`Seleziona un dispositivo per iniziare a codificare.`,description:`Suggerimento segnaposto quando non è stato selezionato alcun dispositivo`},"session.newSession":{message:`Nuova sessione`,description:`Inizia una nuova sessione`},"session.deviceOffline":{message:`Questo dispositivo è offline. Per favore, avvia il proxy Coding Bridge su questo dispositivo per continuare.`,description:`Avviso di dispositivo offline`},"session.nodeId":{message:`ID dispositivo`,description:`Diagnostic label for the node id`},"session.sessionId":{message:`ID sessione`,description:`Diagnostic label for the session id`},"session.traceId":{message:`ID traccia`,description:`Diagnostic label for the trace id`},"session.startHint":{message:`Invia un messaggio per iniziare la sessione su questo dispositivo.`,description:`Suggerimento per un record vuoto`},"session.cwdPlaceholder":{message:`Directory di lavoro (opzionale)`,description:`Segnaposto per il campo di input della directory di lavoro`},"session.modelPlaceholder":{message:`Modello (opzionale)`,description:`Segnaposto per il campo di input del modello`},"session.promptPlaceholder":{message:`Invia un messaggio al proxy…`,description:`Segnaposto per il campo di input del prompt`},"session.send":{message:`Invia`,description:`Pulsante per inviare il messaggio`},"session.voiceInput":{message:`Input vocale`,description:`Inizia a convertire la voce in suggerimenti`},"session.voiceStop":{message:`Ferma input vocale`,description:`Ferma la trascrizione vocale`},"session.voiceListening":{message:`In ascolto, puoi modificare il testo dopo aver fermato.`,description:`Messaggio di input durante il riconoscimento vocale in corso`},"session.voiceStopping":{message:`Completando la trascrizione vocale…`,description:`In attesa del risultato finale del riconoscimento vocale`},"session.voicePermissionDenied":{message:`Permesso del microfono negato, consenti nelle impostazioni di sistema o del browser e riprova.`,description:`Permesso del microfono negato`},"session.voiceMicrophoneUnavailable":{message:`Microfono non trovato o non disponibile.`,description:`Microfono non disponibile`},"session.voiceNoSpeech":{message:`Nessuna voce rilevata, riprova.`,description:`Il riconoscimento vocale non ha rilevato alcuna parola`},"session.voiceNetworkError":{message:`Servizio di riconoscimento vocale temporaneamente non disponibile, controlla la rete e riprova.`,description:`Errore di rete nel riconoscimento vocale`},"session.voiceError":{message:`Errore nell'input vocale, riprova.`,description:`Errore generico nel riconoscimento vocale`},"session.retry":{message:`Riprova`,description:`Re-run the last prompt after a failure`},"session.editPrompt":{message:`Modifica`,description:`Modifica il prompt inviato e invialo nuovamente come un nuovo`},"session.editingBanner":{message:`In modifica — l'invio riporterà la conversazione a questo punto`,description:`Banner mostrato durante la modifica di un prompt precedente`},"session.editRestoreCode":{message:`Ripristina anche il codice`,description:`Checkbox per ripristinare anche le modifiche ai file durante la modifica`},"session.editCancel":{message:`Annulla`,description:`Annulla la modifica di un prompt precedente`},"session.editSubmit":{message:`Aggiorna`,description:`Invia un prompt modificato (riavvolgi e riesegui)`},"session.enterHint":{message:`Invio per inviare, Shift+Invio per andare a capo.`,description:`Suggerimento per la tastiera nel campo di input`},"transcript.turnFailed":{message:`Esecuzione fallita`,description:`Etichetta di fallimento del risultato del turno`},"transcript.turnDone":{message:`Completato`,description:`Etichetta di completamento del risultato del turno`},"transcript.todoProgress":{message:`Completato {done}/{total}`,description:`Progresso dell'elenco delle attività`},"transcript.todoOverflow":{message:`…ci sono altre {count} voci non visualizzate`,description:`Suggerimento per un elenco di attività troppo lungo`},"transcript.todoCompleted":{message:`Completato`,description:`Elenco delle attività: stato completato (lettura accessibile)`},"transcript.todoInProgress":{message:`In corso`,description:`Elenco delle attività: stato in corso (lettura accessibile)`},"transcript.todoPending":{message:`Da fare`,description:`Elenco delle attività: stato da fare (lettura accessibile)`},"history.button":{message:`Cronologia`,description:`Open the conversation history drawer`},"history.title":{message:`Cronologia delle conversazioni`,description:`History drawer title`},"history.intro":{message:`Sessioni Claude Code, Codex e GitHub Copilot precedenti su questo dispositivo.`,description:`History drawer intro`},"history.refresh":{message:`Aggiorna`,description:`Reload the history list`},"history.loading":{message:`Caricamento della cronologia…`,description:`History loading message`},"history.empty":{message:`Nessuna cronologia trovata su questo dispositivo.`,description:`Empty history message`},"history.filterAll":{message:`Tutti`,description:`Rimuove il filtro di origine e mostra tutte le conversazioni.`},"history.filterEmpty":{message:`Non ci sono conversazioni con il filtro attuale.`,description:`Messaggio che indica che i risultati sono vuoti dopo l'applicazione del filtro.`},"history.messages":{message:`{count} messaggi`,description:`History item message count`},"history.readonly":{message:`Questa conversazione Codex è di sola lettura e non può essere continuata. Avvia una nuova sessione per continuare a programmare.`,description:`Read-only replay notice`},"history.running":{message:`In esecuzione`,description:`Marks a history conversation that is currently live on the device`},"history.unread":{message:`Non letto`,description:`Indicatore di sessioni storiche completate ma non ancora visualizzate dall'utente`},"history.resumeHint":{message:`L’invio di un messaggio riprenderà questa conversazione sul dispositivo.`,description:`Resume composer hint`},"history.claudeLabel":{message:`Cronologia Claude`,description:`Replayed Claude session label`},"history.codexLabel":{message:`Cronologia Codex (sola lettura)`,description:`Replayed Codex session label`},"session.permissionModeLabel":{message:`Modalità autorizzazioni`,description:`Permission-mode selector label`},"session.permissionModeDefault":{message:`Predefinito (segue le regole di approvazione di questo dispositivo)`,description:`Modalità autorizzazioni: chiedi prima di ogni utilizzo dello strumento`},"session.permissionModeAcceptEdits":{message:`Accetta automaticamente le modifiche`,description:`Permission mode: auto-accept file edits`},"session.permissionModePlan":{message:`Modalità pianificazione (sola lettura)`,description:`Permission mode: read-only planning`},"session.permissionModeBypass":{message:`Ignora tutte le autorizzazioni`,description:`Permission mode: bypass all permission prompts`},"session.providerLabel":{message:`Backend`,description:`Etichetta del selettore del backend dell'agente`},"session.providerClaude":{message:`Claude Code`,description:`Backend option: Claude Code`},"session.providerCodex":{message:`Codex`,description:`Backend option: Codex`},"session.providerUnavailable":{message:`(non installato)`,description:`Suffix shown next to a backend whose CLI is not installed on the node`},"session.providerUnavailableHint":{message:`{name} non è installato su questo dispositivo.`,description:`Composer hint shown when the selected backend is not installed on the node`},"session.effortLabel":{message:`Sforzo di ragionamento`,description:`Reasoning-effort selector label`},"session.effortDefault":{message:`Predefinito`,description:`Reasoning effort: backend default`},"session.effortLow":{message:`Basso`,description:`Reasoning effort: low`},"session.effortMedium":{message:`Medio`,description:`Reasoning effort: medium`},"session.effortHigh":{message:`Alto`,description:`Reasoning effort: high`},"session.effortMax":{message:`Massimo`,description:`Reasoning effort: maximum (Claude only)`},"directory.title":{message:`Scegli la directory di lavoro`,description:`Working-directory picker dialog title`},"directory.choose":{message:`Usa questa directory`,description:`Button: select the current directory`},"directory.up":{message:`Directory superiore`,description:`Button: go to the parent directory`},"directory.refresh":{message:`Aggiorna`,description:`Button: reload the current directory`},"directory.pathPlaceholder":{message:`Inserisci il percorso (es. D:\\) e premi invio`,description:`Segnaposto per l'input del percorso della directory modificabile`},"directory.go":{message:`Vai`,description:`Pulsante: naviga al percorso della directory digitato`},"directory.loading":{message:`Caricamento…`,description:`Directory listing loading hint`},"directory.empty":{message:`Questa directory è vuota.`,description:`Empty directory hint`},"directory.truncated":{message:`Mostrate le prime 1000 voci.`,description:`Hint shown when the listing was truncated`},"session.attachImage":{message:`Allega immagine`,description:`Attach image button title`},"session.removeImage":{message:`Rimuovi immagine`,description:`Remove attached image button title`},"session.imageAlt":{message:`Immagine allegata`,description:`Attached image thumbnail alt text`},"session.imageTooLarge":{message:`L'immagine è troppo grande; mantieni ciascuna sotto i 12 MB.`,description:`Warning shown when an image exceeds the size limit`},"session.imageLimit":{message:`Puoi allegare fino a {count} immagini.`,description:`Warning shown when exceeding the max number of images`},"session.modelDefault":{message:`Modello predefinito`,description:`Modello predefinito`},"session.cwdDefault":{message:`Directory predefinita`,description:`Directory predefinita`},"session.settings":{message:`Impostazioni della sessione`,description:`Impostazioni della sessione`},"session.settingsLocked":{message:`Le impostazioni di questa sessione sono bloccate`,description:`Le impostazioni sono bloccate per questa sessione`},"session.attachFile":{message:`Aggiungi file`,description:`Allega un file`},"session.attachmentImageAlt":{message:`Immagine allegata`,description:`Immagine allegata`},"session.removeAttachment":{message:`Rimuovi allegato`,description:`Rimuovi l'allegato`},"session.uploadingAttachment":{message:`Caricamento allegato in corso…`,description:`Caricamento degli allegati…`},"session.attachmentTooLarge":{message:`File troppo grande, mantieni ogni file sotto i 50 MB.`,description:`Il file è troppo grande; mantieni ciascuno sotto i 50 MB.`},"session.attachmentLimit":{message:`Puoi allegare al massimo {count} file.`,description:`Puoi allegare fino a {count} file.`},"session.attachmentUploadError":{message:`Errore nel caricamento dell'allegato.`,description:`Impossibile caricare l'allegato.`},"notice.slashUnavailable":{message:`/{command} è un comando interattivo e non può essere eseguito in una sessione remota.`,description:`Notice shown when a slash command can't run in a remote session`},"notice.slashCodexUnsupported":{message:`/{command} non è disponibile per Codex in una sessione remota.`,description:`Notice shown when a Codex slash command isn't supported remotely`},"notify.enable":{message:`Attiva le notifiche`,description:`Tooltip on the notification bell when notifications are off`},"notify.disable":{message:`Disattiva le notifiche`,description:`Tooltip on the notification bell when notifications are on`},"notify.enabled":{message:`Notifiche attivate. Ti avviseremo quando una sessione richiede un'approvazione.`,description:`Toast after enabling notifications`},"notify.disabled":{message:`Notifiche disattivate.`,description:`Toast after disabling notifications`},"notify.denied":{message:`Le notifiche sono bloccate. Consentile nelle impostazioni del browser per ricevere gli avvisi di approvazione.`,description:`Toast when notification permission is denied`},"notify.unsupported":{message:`Le notifiche non sono supportate su questo dispositivo.`,description:`Toast when notifications are unsupported`},"notify.failed":{message:`Impossibile aggiornare le impostazioni delle notifiche.`,description:`Toast when enabling or disabling notifications errors`},"session.working":{message:`In esecuzione…`,description:`Stato di esecuzione della sessione`},"session.permissionModeWorkspace":{message:`Permessi dell'area di lavoro (senza conferma ogni volta)`,description:`Modalità dei permessi dell'area di lavoro`},"transcript.interrupted":{message:`Interrotto`,description:`Stato della trascrizione interrotta`}};export{e as default};
@@ -1 +1 @@
1
- var e={"nodeList.title":{message:`Dispositivos`,description:`Título de la lista de dispositivos de Coding Bridge`},"nodeList.refresh":{message:`Actualizar`,description:`Actualizar la lista de dispositivos`},"nodeList.pair":{message:`Emparejar dispositivo`,description:`Abrir el cuadro de diálogo de emparejamiento`},"nodeList.empty":{message:`No se han emparejado dispositivos.`,description:`Mensaje cuando la lista de dispositivos está vacía`},"nodeList.pairFirst":{message:`Emparejar primer dispositivo`,description:`Botón de emparejamiento en estado vacío`},"nodeList.rename":{message:`Cambiar nombre`,description:`Rename a device`},"nodeList.renamePrompt":{message:`Ponle un nombre a este dispositivo. El nombre se sincroniza con todos tus dispositivos con sesión iniciada.`,description:`Rename device input prompt`},"nodeList.renameEmpty":{message:`El nombre no puede estar vacío.`,description:`Rename device empty-name validation`},"nodeList.renameTooLong":{message:`El nombre debe tener como máximo {max} caracteres.`,description:`Rename device too-long validation`},"nodeList.renameSuccess":{message:`Dispositivo renombrado.`,description:`Rename device success`},"nodeList.renameFailed":{message:`No se pudo cambiar el nombre del dispositivo.`,description:`Rename device failure`},"nodeList.remove":{message:`Eliminar`,description:`Eliminar dispositivo`},"nodeList.removeConfirm":{message:`¿Eliminar el dispositivo “{name}”? Se necesita emparejar de nuevo después de eliminar.`,description:`Confirmación para eliminar el dispositivo`},"nodeList.removeSuccess":{message:`Dispositivo eliminado.`,description:`Mensaje de éxito al eliminar el dispositivo`},"nodeList.removeFailed":{message:`Error al eliminar el dispositivo.`,description:`Mensaje de error al eliminar el dispositivo`},"status.online":{message:`Conectado`,description:`Estado de conexión del dispositivo`},"status.offline":{message:`Desconectado`,description:`Estado de desconexión del dispositivo`},"connection.disconnected":{message:`Desconectado`,description:`La conexión del intermediario ha sido desconectada`},"connection.connecting":{message:`Conectando…`,description:`El intermediario se está conectando`},"connection.connected":{message:`Conectado`,description:`El intermediario está conectado`},"connection.error":{message:`Error de conexión`,description:`Error en la conexión del intermediario`},"pair.title":{message:`Emparejar dispositivo`,description:`Título del cuadro de diálogo de emparejamiento`},"pair.intro":{message:`Ejecuta el proxy de Coding Bridge en tu computadora y luego ingresa el código de emparejamiento aquí para controlarlo desde la web.`,description:`Introducción al cuadro de diálogo de emparejamiento`},"pair.step1":{message:`Instala el proxy (requiere Python 3.10+):`,description:`Paso 1 del emparejamiento`},"pair.step2":{message:`Inicia y sigue las instrucciones:`,description:`Paso 2 del emparejamiento`},"pair.step3":{message:`Ingresa el código de emparejamiento que se muestra abajo.`,description:`Paso 3 del emparejamiento`},"pair.codePlaceholder":{message:`Código de emparejamiento`,description:`Placeholder del campo de entrada del código de emparejamiento`},"pair.claim":{message:`Emparejar dispositivo`,description:`Botón de confirmación de emparejamiento`},"pair.success":{message:`El dispositivo “{name}” ha sido emparejado.`,description:`Mensaje de éxito al emparejar`},"pair.invalidCode":{message:`El código de emparejamiento es inválido o ha expirado.`,description:`Error de código de emparejamiento inválido`},"pair.usedCode":{message:`Este código de emparejamiento ya ha sido utilizado.`,description:`Error de código de emparejamiento ya utilizado`},"pair.failed":{message:`Error al emparejar el dispositivo.`,description:`Error general de emparejamiento`},"permission.title":{message:`Se requiere autorización`,description:`Título del cuadro de autorización`},"permission.subtitle":{message:`Solicitar el uso de una herramienta, continuar tras la aprobación.`,description:`Subtítulo del cuadro de autorización`},"permission.deny":{message:`Denegar`,description:`Denegar la autorización de la herramienta`},"permission.allow":{message:`Permitir`,description:`Permitir la autorización de la herramienta`},"session.noDevice":{message:`Selecciona un dispositivo para comenzar a codificar.`,description:`Sugerencia de marcador de posición cuando no se ha seleccionado un dispositivo`},"session.newSession":{message:`Nueva sesión`,description:`Iniciar una nueva sesión`},"session.deviceOffline":{message:`Este dispositivo está desconectado. Por favor, inicia el proxy Coding Bridge en este dispositivo y continúa.`,description:`Advertencia de dispositivo desconectado`},"session.nodeId":{message:`ID de dispositivo`,description:`Diagnostic label for the node id`},"session.sessionId":{message:`ID de sesión`,description:`Diagnostic label for the session id`},"session.traceId":{message:`ID de seguimiento`,description:`Diagnostic label for the trace id`},"session.startHint":{message:`Envía un mensaje para comenzar la sesión en este dispositivo.`,description:`Sugerencia para iniciar la sesión`},"session.cwdPlaceholder":{message:`Directorio de trabajo (opcional)`,description:`Marcador de posición para el cuadro de entrada del directorio de trabajo`},"session.modelPlaceholder":{message:`Modelo (opcional)`,description:`Marcador de posición para el cuadro de entrada del modelo`},"session.promptPlaceholder":{message:`Enviar un mensaje al proxy…`,description:`Marcador de posición para el cuadro de entrada del aviso`},"session.send":{message:`Enviar`,description:`Botón para enviar el mensaje`},"session.voiceInput":{message:`Entrada de voz`,description:`Comienza a convertir la voz en palabras clave`},"session.voiceStop":{message:`Detener entrada de voz`,description:`Detener la transcripción de voz`},"session.voiceListening":{message:`Escuchando, puedes editar el texto después de detener.`,description:`Mensaje en el cuadro de entrada durante el reconocimiento de voz`},"session.voiceStopping":{message:`Finalizando la transcripción de voz…`,description:`Esperando la salida final del reconocimiento de voz`},"session.voicePermissionDenied":{message:`Permiso de micrófono denegado, por favor permite en la configuración del sistema o del navegador y vuelve a intentarlo.`,description:`El permiso de micrófono ha sido denegado`},"session.voiceMicrophoneUnavailable":{message:`No se encontró o no se puede usar el micrófono.`,description:`Micrófono no disponible`},"session.voiceNoSpeech":{message:`No se detectó voz, por favor intenta de nuevo.`,description:`El reconocimiento de voz no detectó habla`},"session.voiceNetworkError":{message:`El servicio de reconocimiento de voz no está disponible temporalmente, por favor verifica la red y vuelve a intentarlo.`,description:`Error de red en el reconocimiento de voz`},"session.voiceError":{message:`Error en la entrada de voz, por favor intenta de nuevo.`,description:`Error general de reconocimiento de voz`},"session.retry":{message:`Reintentar`,description:`Re-run the last prompt after a failure`},"session.editPrompt":{message:`Editar`,description:`Editar el aviso enviado y reenviarlo como una nueva ronda`},"session.editingBanner":{message:`Editando — Enviar volverá a este punto en la conversación`,description:`Banner mostrado mientras se edita un aviso anterior`},"session.editRestoreCode":{message:`Revertir código también`,description:`Casilla de verificación para revertir también los cambios en el archivo al editar`},"session.editCancel":{message:`Cancelar`,description:`Cancelar la edición de un aviso anterior`},"session.editSubmit":{message:`Actualizar`,description:`Enviar un aviso editado (rebobinar y volver a ejecutar)`},"session.enterHint":{message:`Presiona Enter para enviar, Shift+Enter para nueva línea.`,description:`Sugerencia de teclado para el cuadro de entrada`},"transcript.turnFailed":{message:`Error en la ejecución`,description:`Etiqueta de resultado de turno fallido`},"transcript.turnDone":{message:`Finalizado`,description:`Etiqueta de resultado de turno completado`},"transcript.todoProgress":{message:`Completado {done}/{total}`,description:`Progreso de la lista de tareas`},"transcript.todoOverflow":{message:`…hay {count} elementos no mostrados`,description:`Sugerencia de desbordamiento para la lista de tareas`},"transcript.todoCompleted":{message:`Completado`,description:`Lista de tareas: estado completado (lectura accesible)`},"transcript.todoInProgress":{message:`En progreso`,description:`Lista de tareas: estado en progreso (lectura accesible)`},"transcript.todoPending":{message:`Pendiente`,description:`Lista de tareas: estado pendiente (lectura accesible)`},"history.button":{message:`Historial`,description:`Open the conversation history drawer`},"history.title":{message:`Historial de conversaciones`,description:`History drawer title`},"history.intro":{message:`Sesiones anteriores de Claude Code, Codex y GitHub Copilot en este dispositivo.`,description:`History drawer intro`},"history.refresh":{message:`Actualizar`,description:`Reload the history list`},"history.loading":{message:`Cargando historial…`,description:`History loading message`},"history.empty":{message:`No se encontró historial en este dispositivo.`,description:`Empty history message`},"history.filterAll":{message:`Todo`,description:`Eliminar el filtro de origen y mostrar todas las sesiones.`},"history.filterEmpty":{message:`No hay sesiones bajo el filtro actual.`,description:`Mensaje que indica que no hay resultados después de aplicar el filtro.`},"history.messages":{message:`{count} mensajes`,description:`History item message count`},"history.readonly":{message:`Esta conversación de Codex es de solo lectura y no se puede continuar. Inicia una nueva sesión para seguir programando.`,description:`Read-only replay notice`},"history.running":{message:`En ejecución`,description:`Marks a history conversation that is currently live on the device`},"history.unread":{message:`No leído`,description:`Marcador de sesiones históricas que han terminado pero que el usuario aún no ha visto`},"history.resumeHint":{message:`Enviar un mensaje reanudará esta conversación en el dispositivo.`,description:`Resume composer hint`},"history.claudeLabel":{message:`Historial de Claude`,description:`Replayed Claude session label`},"history.codexLabel":{message:`Historial de Codex (solo lectura)`,description:`Replayed Codex session label`},"session.permissionModeLabel":{message:`Modo de permisos`,description:`Permission-mode selector label`},"session.permissionModeDefault":{message:`Predeterminado (preguntar cada vez)`,description:`Permission mode: ask before each tool use`},"session.permissionModeAcceptEdits":{message:`Aceptar cambios automáticamente`,description:`Permission mode: auto-accept file edits`},"session.permissionModePlan":{message:`Modo de planificación (solo lectura)`,description:`Permission mode: read-only planning`},"session.permissionModeBypass":{message:`Omitir todos los permisos`,description:`Permission mode: bypass all permission prompts`},"session.providerLabel":{message:`Backend`,description:`Etiqueta del selector de backend del agente`},"session.providerClaude":{message:`Claude Code`,description:`Backend option: Claude Code`},"session.providerCodex":{message:`Codex`,description:`Backend option: Codex`},"session.providerUnavailable":{message:`(no instalado)`,description:`Suffix shown next to a backend whose CLI is not installed on the node`},"session.providerUnavailableHint":{message:`{name} no está instalado en este dispositivo.`,description:`Composer hint shown when the selected backend is not installed on the node`},"session.effortLabel":{message:`Esfuerzo de razonamiento`,description:`Reasoning-effort selector label`},"session.effortDefault":{message:`Predeterminado`,description:`Reasoning effort: backend default`},"session.effortLow":{message:`Bajo`,description:`Reasoning effort: low`},"session.effortMedium":{message:`Medio`,description:`Reasoning effort: medium`},"session.effortHigh":{message:`Alto`,description:`Reasoning effort: high`},"session.effortMax":{message:`Máximo`,description:`Reasoning effort: maximum (Claude only)`},"directory.title":{message:`Elegir directorio de trabajo`,description:`Working-directory picker dialog title`},"directory.choose":{message:`Usar este directorio`,description:`Button: select the current directory`},"directory.up":{message:`Directorio superior`,description:`Button: go to the parent directory`},"directory.refresh":{message:`Actualizar`,description:`Button: reload the current directory`},"directory.pathPlaceholder":{message:`Introduce la ruta (por ejemplo, D:\\) y presiona Enter`,description:`Marcador de posición para la entrada editable de la ruta del directorio`},"directory.go":{message:`Ir`,description:`Botón: navegar a la ruta de directorio escrita`},"directory.loading":{message:`Cargando…`,description:`Directory listing loading hint`},"directory.empty":{message:`Este directorio está vacío.`,description:`Empty directory hint`},"directory.truncated":{message:`Mostrando las primeras 1000 entradas.`,description:`Hint shown when the listing was truncated`},"session.attachImage":{message:`Adjuntar imagen`,description:`Attach image button title`},"session.removeImage":{message:`Quitar imagen`,description:`Remove attached image button title`},"session.imageAlt":{message:`Imagen adjunta`,description:`Attached image thumbnail alt text`},"session.imageTooLarge":{message:`La imagen es demasiado grande; mantén cada una por debajo de 12 MB.`,description:`Warning shown when an image exceeds the size limit`},"session.imageLimit":{message:`Puedes adjuntar hasta {count} imágenes.`,description:`Warning shown when exceeding the max number of images`},"session.modelDefault":{message:`Modelo predeterminado`,description:`Modelo predeterminado`},"session.cwdDefault":{message:`Directorio predeterminado`,description:`Directorio predeterminado`},"session.settings":{message:`Configuración de la sesión`,description:`Configuraciones de la sesión`},"session.settingsLocked":{message:`La configuración de esta sesión está bloqueada`,description:`Las configuraciones están bloqueadas para esta sesión`},"session.attachFile":{message:`Agregar archivo`,description:`Adjuntar archivo`},"session.attachmentImageAlt":{message:`Imagen adjunta`,description:`Imagen adjunta`},"session.removeAttachment":{message:`Eliminar archivo adjunto`,description:`Eliminar archivo adjunto`},"session.uploadingAttachment":{message:`Subiendo archivo…`,description:`Subiendo archivos…`},"session.attachmentTooLarge":{message:`El archivo es demasiado grande; mantén cada uno por debajo de 50 MB.`,description:`El archivo es demasiado grande; mantén cada uno por debajo de 50 MB.`},"session.attachmentLimit":{message:`Se pueden adjuntar hasta {count} archivos.`,description:`Puedes adjuntar hasta {count} archivos.`},"session.attachmentUploadError":{message:`Error al subir el archivo adjunto.`,description:`Error al subir el archivo adjunto.`},"notice.slashUnavailable":{message:`/{command} es un comando interactivo y no puede ejecutarse en una sesión remota.`,description:`Notice shown when a slash command can't run in a remote session`},"notice.slashCodexUnsupported":{message:`/{command} no está disponible para Codex en una sesión remota.`,description:`Notice shown when a Codex slash command isn't supported remotely`},"notify.enable":{message:`Activar notificaciones`,description:`Tooltip on the notification bell when notifications are off`},"notify.disable":{message:`Desactivar notificaciones`,description:`Tooltip on the notification bell when notifications are on`},"notify.enabled":{message:`Notificaciones activadas. Te avisaremos cuando una sesión necesite aprobación.`,description:`Toast after enabling notifications`},"notify.disabled":{message:`Notificaciones desactivadas.`,description:`Toast after disabling notifications`},"notify.denied":{message:`Las notificaciones están bloqueadas. Permítelas en la configuración del navegador para recibir avisos de aprobación.`,description:`Toast when notification permission is denied`},"notify.unsupported":{message:`Las notificaciones no son compatibles con este dispositivo.`,description:`Toast when notifications are unsupported`},"notify.failed":{message:`No se pudo actualizar la configuración de notificaciones.`,description:`Toast when enabling or disabling notifications errors`}};export{e as default};
1
+ var e={"nodeList.title":{message:`Dispositivos`,description:`Título de la lista de dispositivos de Coding Bridge`},"nodeList.refresh":{message:`Actualizar`,description:`Actualizar la lista de dispositivos`},"nodeList.pair":{message:`Emparejar dispositivo`,description:`Abrir el cuadro de diálogo de emparejamiento`},"nodeList.empty":{message:`No se han emparejado dispositivos.`,description:`Mensaje cuando la lista de dispositivos está vacía`},"nodeList.pairFirst":{message:`Emparejar primer dispositivo`,description:`Botón de emparejamiento en estado vacío`},"nodeList.rename":{message:`Cambiar nombre`,description:`Rename a device`},"nodeList.renamePrompt":{message:`Ponle un nombre a este dispositivo. El nombre se sincroniza con todos tus dispositivos con sesión iniciada.`,description:`Rename device input prompt`},"nodeList.renameEmpty":{message:`El nombre no puede estar vacío.`,description:`Rename device empty-name validation`},"nodeList.renameTooLong":{message:`El nombre debe tener como máximo {max} caracteres.`,description:`Rename device too-long validation`},"nodeList.renameSuccess":{message:`Dispositivo renombrado.`,description:`Rename device success`},"nodeList.renameFailed":{message:`No se pudo cambiar el nombre del dispositivo.`,description:`Rename device failure`},"nodeList.remove":{message:`Eliminar`,description:`Eliminar dispositivo`},"nodeList.removeConfirm":{message:`¿Eliminar el dispositivo “{name}”? Se necesita emparejar de nuevo después de eliminar.`,description:`Confirmación para eliminar el dispositivo`},"nodeList.removeSuccess":{message:`Dispositivo eliminado.`,description:`Mensaje de éxito al eliminar el dispositivo`},"nodeList.removeFailed":{message:`Error al eliminar el dispositivo.`,description:`Mensaje de error al eliminar el dispositivo`},"status.online":{message:`Conectado`,description:`Estado de conexión del dispositivo`},"status.offline":{message:`Desconectado`,description:`Estado de desconexión del dispositivo`},"connection.disconnected":{message:`Desconectado`,description:`La conexión del intermediario ha sido desconectada`},"connection.connecting":{message:`Conectando…`,description:`El intermediario se está conectando`},"connection.connected":{message:`Conectado`,description:`El intermediario está conectado`},"connection.error":{message:`Error de conexión`,description:`Error en la conexión del intermediario`},"pair.title":{message:`Emparejar dispositivo`,description:`Título del cuadro de diálogo de emparejamiento`},"pair.intro":{message:`Ejecuta el proxy de Coding Bridge en tu computadora y luego ingresa el código de emparejamiento aquí para controlarlo desde la web.`,description:`Introducción al cuadro de diálogo de emparejamiento`},"pair.step1":{message:`Instala el proxy (requiere Python 3.10+):`,description:`Paso 1 del emparejamiento`},"pair.step2":{message:`Inicia y sigue las instrucciones:`,description:`Paso 2 del emparejamiento`},"pair.step3":{message:`Ingresa el código de emparejamiento que se muestra abajo.`,description:`Paso 3 del emparejamiento`},"pair.codePlaceholder":{message:`Código de emparejamiento`,description:`Placeholder del campo de entrada del código de emparejamiento`},"pair.claim":{message:`Emparejar dispositivo`,description:`Botón de confirmación de emparejamiento`},"pair.success":{message:`El dispositivo “{name}” ha sido emparejado.`,description:`Mensaje de éxito al emparejar`},"pair.invalidCode":{message:`El código de emparejamiento es inválido o ha expirado.`,description:`Error de código de emparejamiento inválido`},"pair.usedCode":{message:`Este código de emparejamiento ya ha sido utilizado.`,description:`Error de código de emparejamiento ya utilizado`},"pair.failed":{message:`Error al emparejar el dispositivo.`,description:`Error general de emparejamiento`},"permission.title":{message:`Se requiere autorización`,description:`Título del cuadro de autorización`},"permission.subtitle":{message:`Solicitar el uso de una herramienta, continuar tras la aprobación.`,description:`Subtítulo del cuadro de autorización`},"permission.deny":{message:`Denegar`,description:`Denegar la autorización de la herramienta`},"permission.allow":{message:`Permitir`,description:`Permitir la autorización de la herramienta`},"session.noDevice":{message:`Selecciona un dispositivo para comenzar a codificar.`,description:`Sugerencia de marcador de posición cuando no se ha seleccionado un dispositivo`},"session.newSession":{message:`Nueva sesión`,description:`Iniciar una nueva sesión`},"session.deviceOffline":{message:`Este dispositivo está desconectado. Por favor, inicia el proxy Coding Bridge en este dispositivo y continúa.`,description:`Advertencia de dispositivo desconectado`},"session.nodeId":{message:`ID de dispositivo`,description:`Diagnostic label for the node id`},"session.sessionId":{message:`ID de sesión`,description:`Diagnostic label for the session id`},"session.traceId":{message:`ID de seguimiento`,description:`Diagnostic label for the trace id`},"session.startHint":{message:`Envía un mensaje para comenzar la sesión en este dispositivo.`,description:`Sugerencia para iniciar la sesión`},"session.cwdPlaceholder":{message:`Directorio de trabajo (opcional)`,description:`Marcador de posición para el cuadro de entrada del directorio de trabajo`},"session.modelPlaceholder":{message:`Modelo (opcional)`,description:`Marcador de posición para el cuadro de entrada del modelo`},"session.promptPlaceholder":{message:`Enviar un mensaje al proxy…`,description:`Marcador de posición para el cuadro de entrada del aviso`},"session.send":{message:`Enviar`,description:`Botón para enviar el mensaje`},"session.voiceInput":{message:`Entrada de voz`,description:`Comienza a convertir la voz en palabras clave`},"session.voiceStop":{message:`Detener entrada de voz`,description:`Detener la transcripción de voz`},"session.voiceListening":{message:`Escuchando, puedes editar el texto después de detener.`,description:`Mensaje en el cuadro de entrada durante el reconocimiento de voz`},"session.voiceStopping":{message:`Finalizando la transcripción de voz…`,description:`Esperando la salida final del reconocimiento de voz`},"session.voicePermissionDenied":{message:`Permiso de micrófono denegado, por favor permite en la configuración del sistema o del navegador y vuelve a intentarlo.`,description:`El permiso de micrófono ha sido denegado`},"session.voiceMicrophoneUnavailable":{message:`No se encontró o no se puede usar el micrófono.`,description:`Micrófono no disponible`},"session.voiceNoSpeech":{message:`No se detectó voz, por favor intenta de nuevo.`,description:`El reconocimiento de voz no detectó habla`},"session.voiceNetworkError":{message:`El servicio de reconocimiento de voz no está disponible temporalmente, por favor verifica la red y vuelve a intentarlo.`,description:`Error de red en el reconocimiento de voz`},"session.voiceError":{message:`Error en la entrada de voz, por favor intenta de nuevo.`,description:`Error general de reconocimiento de voz`},"session.retry":{message:`Reintentar`,description:`Re-run the last prompt after a failure`},"session.editPrompt":{message:`Editar`,description:`Editar el aviso enviado y reenviarlo como una nueva ronda`},"session.editingBanner":{message:`Editando — Enviar volverá a este punto en la conversación`,description:`Banner mostrado mientras se edita un aviso anterior`},"session.editRestoreCode":{message:`Revertir código también`,description:`Casilla de verificación para revertir también los cambios en el archivo al editar`},"session.editCancel":{message:`Cancelar`,description:`Cancelar la edición de un aviso anterior`},"session.editSubmit":{message:`Actualizar`,description:`Enviar un aviso editado (rebobinar y volver a ejecutar)`},"session.enterHint":{message:`Presiona Enter para enviar, Shift+Enter para nueva línea.`,description:`Sugerencia de teclado para el cuadro de entrada`},"transcript.turnFailed":{message:`Error en la ejecución`,description:`Etiqueta de resultado de turno fallido`},"transcript.turnDone":{message:`Finalizado`,description:`Etiqueta de resultado de turno completado`},"transcript.todoProgress":{message:`Completado {done}/{total}`,description:`Progreso de la lista de tareas`},"transcript.todoOverflow":{message:`…hay {count} elementos no mostrados`,description:`Sugerencia de desbordamiento para la lista de tareas`},"transcript.todoCompleted":{message:`Completado`,description:`Lista de tareas: estado completado (lectura accesible)`},"transcript.todoInProgress":{message:`En progreso`,description:`Lista de tareas: estado en progreso (lectura accesible)`},"transcript.todoPending":{message:`Pendiente`,description:`Lista de tareas: estado pendiente (lectura accesible)`},"history.button":{message:`Historial`,description:`Open the conversation history drawer`},"history.title":{message:`Historial de conversaciones`,description:`History drawer title`},"history.intro":{message:`Sesiones anteriores de Claude Code, Codex y GitHub Copilot en este dispositivo.`,description:`History drawer intro`},"history.refresh":{message:`Actualizar`,description:`Reload the history list`},"history.loading":{message:`Cargando historial…`,description:`History loading message`},"history.empty":{message:`No se encontró historial en este dispositivo.`,description:`Empty history message`},"history.filterAll":{message:`Todo`,description:`Eliminar el filtro de origen y mostrar todas las sesiones.`},"history.filterEmpty":{message:`No hay sesiones bajo el filtro actual.`,description:`Mensaje que indica que no hay resultados después de aplicar el filtro.`},"history.messages":{message:`{count} mensajes`,description:`History item message count`},"history.readonly":{message:`Esta conversación de Codex es de solo lectura y no se puede continuar. Inicia una nueva sesión para seguir programando.`,description:`Read-only replay notice`},"history.running":{message:`En ejecución`,description:`Marks a history conversation that is currently live on the device`},"history.unread":{message:`No leído`,description:`Marcador de sesiones históricas que han terminado pero que el usuario aún no ha visto`},"history.resumeHint":{message:`Enviar un mensaje reanudará esta conversación en el dispositivo.`,description:`Resume composer hint`},"history.claudeLabel":{message:`Historial de Claude`,description:`Replayed Claude session label`},"history.codexLabel":{message:`Historial de Codex (solo lectura)`,description:`Replayed Codex session label`},"session.permissionModeLabel":{message:`Modo de permisos`,description:`Permission-mode selector label`},"session.permissionModeDefault":{message:`Predeterminado (seguir las reglas de aprobación locales)`,description:`Modo de permisos: preguntar antes de cada uso de herramientas`},"session.permissionModeAcceptEdits":{message:`Aceptar cambios automáticamente`,description:`Permission mode: auto-accept file edits`},"session.permissionModePlan":{message:`Modo de planificación (solo lectura)`,description:`Permission mode: read-only planning`},"session.permissionModeBypass":{message:`Omitir todos los permisos`,description:`Permission mode: bypass all permission prompts`},"session.providerLabel":{message:`Backend`,description:`Etiqueta del selector del backend del agente`},"session.providerClaude":{message:`Claude Code`,description:`Backend option: Claude Code`},"session.providerCodex":{message:`Codex`,description:`Backend option: Codex`},"session.providerUnavailable":{message:`(no instalado)`,description:`Suffix shown next to a backend whose CLI is not installed on the node`},"session.providerUnavailableHint":{message:`{name} no está instalado en este dispositivo.`,description:`Composer hint shown when the selected backend is not installed on the node`},"session.effortLabel":{message:`Esfuerzo de razonamiento`,description:`Reasoning-effort selector label`},"session.effortDefault":{message:`Predeterminado`,description:`Reasoning effort: backend default`},"session.effortLow":{message:`Bajo`,description:`Reasoning effort: low`},"session.effortMedium":{message:`Medio`,description:`Reasoning effort: medium`},"session.effortHigh":{message:`Alto`,description:`Reasoning effort: high`},"session.effortMax":{message:`Máximo`,description:`Reasoning effort: maximum (Claude only)`},"directory.title":{message:`Elegir directorio de trabajo`,description:`Working-directory picker dialog title`},"directory.choose":{message:`Usar este directorio`,description:`Button: select the current directory`},"directory.up":{message:`Directorio superior`,description:`Button: go to the parent directory`},"directory.refresh":{message:`Actualizar`,description:`Button: reload the current directory`},"directory.pathPlaceholder":{message:`Introduce la ruta (por ejemplo, D:\\) y presiona Enter`,description:`Marcador de posición para la entrada editable de la ruta del directorio`},"directory.go":{message:`Ir`,description:`Botón: navegar a la ruta de directorio escrita`},"directory.loading":{message:`Cargando…`,description:`Directory listing loading hint`},"directory.empty":{message:`Este directorio está vacío.`,description:`Empty directory hint`},"directory.truncated":{message:`Mostrando las primeras 1000 entradas.`,description:`Hint shown when the listing was truncated`},"session.attachImage":{message:`Adjuntar imagen`,description:`Attach image button title`},"session.removeImage":{message:`Quitar imagen`,description:`Remove attached image button title`},"session.imageAlt":{message:`Imagen adjunta`,description:`Attached image thumbnail alt text`},"session.imageTooLarge":{message:`La imagen es demasiado grande; mantén cada una por debajo de 12 MB.`,description:`Warning shown when an image exceeds the size limit`},"session.imageLimit":{message:`Puedes adjuntar hasta {count} imágenes.`,description:`Warning shown when exceeding the max number of images`},"session.modelDefault":{message:`Modelo predeterminado`,description:`Modelo predeterminado`},"session.cwdDefault":{message:`Directorio predeterminado`,description:`Directorio predeterminado`},"session.settings":{message:`Configuración de la sesión`,description:`Configuraciones de la sesión`},"session.settingsLocked":{message:`La configuración de esta sesión está bloqueada`,description:`Las configuraciones están bloqueadas para esta sesión`},"session.attachFile":{message:`Agregar archivo`,description:`Adjuntar archivo`},"session.attachmentImageAlt":{message:`Imagen adjunta`,description:`Imagen adjunta`},"session.removeAttachment":{message:`Eliminar archivo adjunto`,description:`Eliminar archivo adjunto`},"session.uploadingAttachment":{message:`Subiendo archivo…`,description:`Subiendo archivos…`},"session.attachmentTooLarge":{message:`El archivo es demasiado grande; mantén cada uno por debajo de 50 MB.`,description:`El archivo es demasiado grande; mantén cada uno por debajo de 50 MB.`},"session.attachmentLimit":{message:`Se pueden adjuntar hasta {count} archivos.`,description:`Puedes adjuntar hasta {count} archivos.`},"session.attachmentUploadError":{message:`Error al subir el archivo adjunto.`,description:`Error al subir el archivo adjunto.`},"notice.slashUnavailable":{message:`/{command} es un comando interactivo y no puede ejecutarse en una sesión remota.`,description:`Notice shown when a slash command can't run in a remote session`},"notice.slashCodexUnsupported":{message:`/{command} no está disponible para Codex en una sesión remota.`,description:`Notice shown when a Codex slash command isn't supported remotely`},"notify.enable":{message:`Activar notificaciones`,description:`Tooltip on the notification bell when notifications are off`},"notify.disable":{message:`Desactivar notificaciones`,description:`Tooltip on the notification bell when notifications are on`},"notify.enabled":{message:`Notificaciones activadas. Te avisaremos cuando una sesión necesite aprobación.`,description:`Toast after enabling notifications`},"notify.disabled":{message:`Notificaciones desactivadas.`,description:`Toast after disabling notifications`},"notify.denied":{message:`Las notificaciones están bloqueadas. Permítelas en la configuración del navegador para recibir avisos de aprobación.`,description:`Toast when notification permission is denied`},"notify.unsupported":{message:`Las notificaciones no son compatibles con este dispositivo.`,description:`Toast when notifications are unsupported`},"notify.failed":{message:`No se pudo actualizar la configuración de notificaciones.`,description:`Toast when enabling or disabling notifications errors`},"session.working":{message:`Ejecutando…`,description:`Sesión en curso`},"session.permissionModeWorkspace":{message:`Permisos del espacio de trabajo (sin confirmación individual)`,description:`Permisos del espacio de trabajo de la sesión`},"transcript.interrupted":{message:`Detenido`,description:`Transcripción interrumpida`}};export{e as default};
@@ -1 +1 @@
1
- var e={"nodeList.title":{message:`设备`,description:`Coding Bridge 设备列表标题`},"nodeList.refresh":{message:`刷新`,description:`刷新设备列表`},"nodeList.pair":{message:`配对设备`,description:`打开配对对话框`},"nodeList.empty":{message:`尚未配对任何设备。`,description:`设备列表为空时的提示`},"nodeList.pairFirst":{message:`配对第一台设备`,description:`空状态下的配对按钮`},"nodeList.rename":{message:`重命名`,description:`重命名设备`},"nodeList.renamePrompt":{message:`给这台设备起个名字,所有登录的设备都会看到。`,description:`重命名设备输入提示`},"nodeList.renameEmpty":{message:`名称不能为空。`,description:`重命名设备名称为空的校验提示`},"nodeList.renameTooLong":{message:`名称最长 {max} 个字符。`,description:`重命名设备名称过长的校验提示`},"nodeList.renameSuccess":{message:`设备已重命名。`,description:`重命名设备成功提示`},"nodeList.renameFailed":{message:`重命名设备失败。`,description:`重命名设备失败提示`},"nodeList.remove":{message:`移除`,description:`移除设备`},"nodeList.removeConfirm":{message:`移除设备“{name}”?移除后需要重新配对。`,description:`移除设备确认`},"nodeList.removeSuccess":{message:`设备已移除。`,description:`移除设备成功提示`},"nodeList.removeFailed":{message:`移除设备失败。`,description:`移除设备失败提示`},"status.online":{message:`在线`,description:`设备在线状态`},"status.offline":{message:`离线`,description:`设备离线状态`},"connection.disconnected":{message:`已断开`,description:`中继连接已断开`},"connection.connecting":{message:`连接中…`,description:`中继连接中`},"connection.connected":{message:`已连接`,description:`中继已连接`},"connection.error":{message:`连接出错`,description:`中继连接出错`},"pair.title":{message:`配对设备`,description:`配对对话框标题`},"pair.intro":{message:`在你的电脑上运行 Coding Bridge 代理,然后在此输入配对码即可在网页端控制它。`,description:`配对对话框介绍`},"pair.step1":{message:`安装代理(需要 Python 3.10+):`,description:`配对步骤 1`},"pair.step2":{message:`启动并按提示操作:`,description:`配对步骤 2`},"pair.step3":{message:`输入下方显示的配对码。`,description:`配对步骤 3`},"pair.codePlaceholder":{message:`配对码`,description:`配对码输入框占位符`},"pair.claim":{message:`配对设备`,description:`配对确认按钮`},"pair.success":{message:`设备“{name}”已配对。`,description:`配对成功提示`},"pair.invalidCode":{message:`配对码无效或已过期。`,description:`配对码无效错误`},"pair.usedCode":{message:`该配对码已被使用。`,description:`配对码已使用错误`},"pair.failed":{message:`配对设备失败。`,description:`配对通用错误`},"permission.title":{message:`需要授权`,description:`授权对话框标题`},"permission.subtitle":{message:`代理请求使用一个工具,批准后继续。`,description:`授权对话框副标题`},"permission.deny":{message:`拒绝`,description:`拒绝工具授权`},"permission.allow":{message:`允许`,description:`允许工具授权`},"session.noDevice":{message:`选择一台设备开始编码。`,description:`未选择设备时的占位提示`},"session.newSession":{message:`新会话`,description:`开始新会话`},"session.deviceOffline":{message:`该设备已离线。请在该设备上启动 Coding Bridge 代理后继续。`,description:`设备离线警告`},"session.nodeId":{message:`设备 ID`,description:`节点 id 的诊断标签`},"session.sessionId":{message:`会话 ID`,description:`会话 id 的诊断标签`},"session.traceId":{message:`追踪 ID`,description:`追踪 id 的诊断标签`},"session.startHint":{message:`发送一条消息以在该设备上开始会话。`,description:`空白记录提示`},"session.cwdPlaceholder":{message:`工作目录(可选)`,description:`工作目录输入框占位符`},"session.modelPlaceholder":{message:`模型(可选)`,description:`模型输入框占位符`},"session.promptPlaceholder":{message:`向代理发送消息…`,description:`提示词输入框占位符`},"session.send":{message:`发送`,description:`发送提示词按钮`},"session.voiceInput":{message:`语音输入`,description:`开始把语音转成提示词`},"session.voiceStop":{message:`停止语音输入`,description:`停止语音转写`},"session.voiceListening":{message:`正在听写,停止后可编辑文字。`,description:`语音识别进行中的输入框提示`},"session.voiceStopping":{message:`正在完成语音转写…`,description:`等待语音识别输出最终结果`},"session.voicePermissionDenied":{message:`麦克风权限被拒绝,请在系统或浏览器设置中允许后重试。`,description:`麦克风权限被拒绝`},"session.voiceMicrophoneUnavailable":{message:`未找到或无法使用麦克风。`,description:`麦克风不可用`},"session.voiceNoSpeech":{message:`未检测到语音,请重试。`,description:`语音识别没有检测到讲话`},"session.voiceNetworkError":{message:`语音识别服务暂时不可用,请检查网络后重试。`,description:`语音识别网络错误`},"session.voiceError":{message:`语音输入失败,请重试。`,description:`语音识别通用错误`},"session.retry":{message:`重试`,description:`失败后重新执行上一条提示词`},"session.editPrompt":{message:`编辑`,description:`编辑已发送的提示词并作为新一轮重新发送`},"session.editingBanner":{message:`编辑中 — 发送将把对话回退到此处`,description:`Banner shown while editing a past prompt`},"session.editRestoreCode":{message:`同时回退代码`,description:`Checkbox to also roll back file changes when editing`},"session.editCancel":{message:`取消`,description:`Cancel editing a past prompt`},"session.editSubmit":{message:`更新`,description:`Submit an edited prompt (rewind and re-run)`},"session.enterHint":{message:`回车发送,Shift+回车换行。`,description:`输入框键盘提示`},"transcript.turnFailed":{message:`执行失败`,description:`回合结果失败标签`},"transcript.turnDone":{message:`完成`,description:`回合结果完成标签`},"transcript.todoProgress":{message:`已完成 {done}/{total}`,description:`任务清单进度`},"transcript.todoOverflow":{message:`…另有 {count} 项未显示`,description:`任务清单超长省略提示`},"transcript.todoCompleted":{message:`已完成`,description:`任务清单:已完成状态(无障碍朗读)`},"transcript.todoInProgress":{message:`进行中`,description:`任务清单:进行中状态(无障碍朗读)`},"transcript.todoPending":{message:`待办`,description:`任务清单:待办状态(无障碍朗读)`},"history.button":{message:`历史会话`,description:`打开历史会话抽屉`},"history.title":{message:`历史会话`,description:`历史会话抽屉标题`},"history.intro":{message:`此设备上的 Claude Code、Codex 与 GitHub Copilot 历史会话。`,description:`历史会话抽屉说明`},"history.refresh":{message:`刷新`,description:`重新加载历史列表`},"history.loading":{message:`正在加载历史…`,description:`历史加载提示`},"history.empty":{message:`此设备上没有找到历史会话。`,description:`历史为空提示`},"history.filterAll":{message:`全部`,description:`清除来源筛选,显示全部会话`},"history.filterEmpty":{message:`当前筛选下没有会话。`,description:`筛选后结果为空的提示`},"history.messages":{message:`{count} 条消息`,description:`历史条目消息数`},"history.readonly":{message:`此 Codex 会话为只读,无法继续。开始新会话以继续编码。`,description:`只读回放提示`},"history.running":{message:`运行中`,description:`历史会话当前正在设备上运行的标记`},"history.unread":{message:`未读`,description:`历史会话已运行完但用户尚未查看的标记`},"history.resumeHint":{message:`发送消息将在设备上续接此会话。`,description:`续接输入框提示`},"history.claudeLabel":{message:`Claude 历史`,description:`回放的 Claude 会话标签`},"history.codexLabel":{message:`Codex 历史(只读)`,description:`回放的 Codex 会话标签`},"session.permissionModeLabel":{message:`权限模式`,description:`Permission-mode selector label`},"session.permissionModeDefault":{message:`默认(每次询问)`,description:`Permission mode: ask before each tool use`},"session.permissionModeAcceptEdits":{message:`自动接受修改`,description:`Permission mode: auto-accept file edits`},"session.permissionModePlan":{message:`规划模式(只读)`,description:`Permission mode: read-only planning`},"session.permissionModeBypass":{message:`绕过所有权限`,description:`Permission mode: bypass all permission prompts`},"session.providerLabel":{message:`后端`,description:`Agent backend selector label`},"session.providerClaude":{message:`Claude Code`,description:`Backend option: Claude Code`},"session.providerCodex":{message:`Codex`,description:`Backend option: Codex`},"session.providerUnavailable":{message:`(未安装)`,description:`Suffix shown next to a backend whose CLI is not installed on the node`},"session.providerUnavailableHint":{message:`{name} 未安装在该设备上。`,description:`Composer hint shown when the selected backend is not installed on the node`},"session.effortLabel":{message:`推理强度`,description:`Reasoning-effort selector label`},"session.effortDefault":{message:`默认`,description:`Reasoning effort: backend default`},"session.effortLow":{message:`低`,description:`Reasoning effort: low`},"session.effortMedium":{message:`中`,description:`Reasoning effort: medium`},"session.effortHigh":{message:`高`,description:`Reasoning effort: high`},"session.effortMax":{message:`最高`,description:`Reasoning effort: maximum (Claude only)`},"directory.title":{message:`选择工作目录`,description:`Working-directory picker dialog title`},"directory.choose":{message:`使用此目录`,description:`Button: select the current directory`},"directory.up":{message:`上级目录`,description:`Button: go to the parent directory`},"directory.refresh":{message:`刷新`,description:`Button: reload the current directory`},"directory.pathPlaceholder":{message:`输入路径(如 D:\\)后回车`,description:`Placeholder for the editable directory path input`},"directory.go":{message:`跳转`,description:`Button: navigate to the typed directory path`},"directory.loading":{message:`正在加载…`,description:`Directory listing loading hint`},"directory.empty":{message:`此目录为空。`,description:`Empty directory hint`},"directory.truncated":{message:`仅显示前 1000 项。`,description:`Hint shown when the listing was truncated`},"session.attachImage":{message:`添加图片`,description:`Attach image button title`},"session.removeImage":{message:`移除图片`,description:`Remove attached image button title`},"session.imageAlt":{message:`附加的图片`,description:`Attached image thumbnail alt text`},"session.imageTooLarge":{message:`图片过大,单张请控制在 12 MB 以内。`,description:`Warning shown when an image exceeds the size limit`},"session.imageLimit":{message:`最多可附加 {count} 张图片。`,description:`Warning shown when exceeding the max number of images`},"session.modelDefault":{message:`默认模型`,description:`Default model`},"session.cwdDefault":{message:`默认目录`,description:`Default directory`},"session.settings":{message:`会话设置`,description:`Session settings`},"session.settingsLocked":{message:`本会话设置已锁定`,description:`Settings are locked for this session`},"session.attachFile":{message:`添加文件`,description:`Attach file`},"session.attachmentImageAlt":{message:`已附加图片`,description:`Attached image`},"session.removeAttachment":{message:`移除附件`,description:`Remove attachment`},"session.uploadingAttachment":{message:`附件上传中…`,description:`Uploading attachments…`},"session.attachmentTooLarge":{message:`文件过大,请保持每个文件不超过 50 MB。`,description:`File is too large; keep each under 50 MB.`},"session.attachmentLimit":{message:`最多可附加 {count} 个文件。`,description:`You can attach up to {count} files.`},"session.attachmentUploadError":{message:`附件上传失败。`,description:`Failed to upload attachment.`},"notice.slashUnavailable":{message:`/{command} 是交互式命令,无法在远程会话中运行。`,description:`Notice shown when a slash command can't run in a remote session`},"notice.slashCodexUnsupported":{message:`/{command} 在远程会话中暂不支持 Codex。`,description:`Notice shown when a Codex slash command isn't supported remotely`},"notify.enable":{message:`开启通知`,description:`Tooltip on the notification bell when notifications are off`},"notify.disable":{message:`关闭通知`,description:`Tooltip on the notification bell when notifications are on`},"notify.enabled":{message:`通知已开启,会话需要授权时会提醒你。`,description:`Toast after enabling notifications`},"notify.disabled":{message:`通知已关闭。`,description:`Toast after disabling notifications`},"notify.denied":{message:`通知已被阻止,请在浏览器设置中允许通知以接收授权提醒。`,description:`Toast when notification permission is denied`},"notify.unsupported":{message:`当前设备不支持通知。`,description:`Toast when notifications are unsupported`},"notify.failed":{message:`无法更新通知设置。`,description:`Toast when enabling or disabling notifications errors`}};export{e as default};
1
+ var e={"nodeList.title":{message:`设备`,description:`Coding Bridge 设备列表标题`},"nodeList.refresh":{message:`刷新`,description:`刷新设备列表`},"nodeList.pair":{message:`配对设备`,description:`打开配对对话框`},"nodeList.empty":{message:`尚未配对任何设备。`,description:`设备列表为空时的提示`},"nodeList.pairFirst":{message:`配对第一台设备`,description:`空状态下的配对按钮`},"nodeList.rename":{message:`重命名`,description:`重命名设备`},"nodeList.renamePrompt":{message:`给这台设备起个名字,所有登录的设备都会看到。`,description:`重命名设备输入提示`},"nodeList.renameEmpty":{message:`名称不能为空。`,description:`重命名设备名称为空的校验提示`},"nodeList.renameTooLong":{message:`名称最长 {max} 个字符。`,description:`重命名设备名称过长的校验提示`},"nodeList.renameSuccess":{message:`设备已重命名。`,description:`重命名设备成功提示`},"nodeList.renameFailed":{message:`重命名设备失败。`,description:`重命名设备失败提示`},"nodeList.remove":{message:`移除`,description:`移除设备`},"nodeList.removeConfirm":{message:`移除设备“{name}”?移除后需要重新配对。`,description:`移除设备确认`},"nodeList.removeSuccess":{message:`设备已移除。`,description:`移除设备成功提示`},"nodeList.removeFailed":{message:`移除设备失败。`,description:`移除设备失败提示`},"status.online":{message:`在线`,description:`设备在线状态`},"status.offline":{message:`离线`,description:`设备离线状态`},"connection.disconnected":{message:`已断开`,description:`中继连接已断开`},"connection.connecting":{message:`连接中…`,description:`中继连接中`},"connection.connected":{message:`已连接`,description:`中继已连接`},"connection.error":{message:`连接出错`,description:`中继连接出错`},"pair.title":{message:`配对设备`,description:`配对对话框标题`},"pair.intro":{message:`在你的电脑上运行 Coding Bridge 代理,然后在此输入配对码即可在网页端控制它。`,description:`配对对话框介绍`},"pair.step1":{message:`安装代理(需要 Python 3.10+):`,description:`配对步骤 1`},"pair.step2":{message:`启动并按提示操作:`,description:`配对步骤 2`},"pair.step3":{message:`输入下方显示的配对码。`,description:`配对步骤 3`},"pair.codePlaceholder":{message:`配对码`,description:`配对码输入框占位符`},"pair.claim":{message:`配对设备`,description:`配对确认按钮`},"pair.success":{message:`设备“{name}”已配对。`,description:`配对成功提示`},"pair.invalidCode":{message:`配对码无效或已过期。`,description:`配对码无效错误`},"pair.usedCode":{message:`该配对码已被使用。`,description:`配对码已使用错误`},"pair.failed":{message:`配对设备失败。`,description:`配对通用错误`},"permission.title":{message:`需要授权`,description:`授权对话框标题`},"permission.subtitle":{message:`代理请求使用一个工具,批准后继续。`,description:`授权对话框副标题`},"permission.deny":{message:`拒绝`,description:`拒绝工具授权`},"permission.allow":{message:`允许`,description:`允许工具授权`},"session.noDevice":{message:`选择一台设备开始编码。`,description:`未选择设备时的占位提示`},"session.newSession":{message:`新会话`,description:`开始新会话`},"session.deviceOffline":{message:`该设备已离线。请在该设备上启动 Coding Bridge 代理后继续。`,description:`设备离线警告`},"session.nodeId":{message:`设备 ID`,description:`节点 id 的诊断标签`},"session.sessionId":{message:`会话 ID`,description:`会话 id 的诊断标签`},"session.traceId":{message:`追踪 ID`,description:`追踪 id 的诊断标签`},"session.startHint":{message:`发送一条消息以在该设备上开始会话。`,description:`空白记录提示`},"session.cwdPlaceholder":{message:`工作目录(可选)`,description:`工作目录输入框占位符`},"session.modelPlaceholder":{message:`模型(可选)`,description:`模型输入框占位符`},"session.promptPlaceholder":{message:`向代理发送消息…`,description:`提示词输入框占位符`},"session.send":{message:`发送`,description:`发送提示词按钮`},"session.voiceInput":{message:`语音输入`,description:`开始把语音转成提示词`},"session.voiceStop":{message:`停止语音输入`,description:`停止语音转写`},"session.voiceListening":{message:`正在听写,停止后可编辑文字。`,description:`语音识别进行中的输入框提示`},"session.voiceStopping":{message:`正在完成语音转写…`,description:`等待语音识别输出最终结果`},"session.voicePermissionDenied":{message:`麦克风权限被拒绝,请在系统或浏览器设置中允许后重试。`,description:`麦克风权限被拒绝`},"session.voiceMicrophoneUnavailable":{message:`未找到或无法使用麦克风。`,description:`麦克风不可用`},"session.voiceNoSpeech":{message:`未检测到语音,请重试。`,description:`语音识别没有检测到讲话`},"session.voiceNetworkError":{message:`语音识别服务暂时不可用,请检查网络后重试。`,description:`语音识别网络错误`},"session.voiceError":{message:`语音输入失败,请重试。`,description:`语音识别通用错误`},"session.retry":{message:`重试`,description:`失败后重新执行上一条提示词`},"session.editPrompt":{message:`编辑`,description:`编辑已发送的提示词并作为新一轮重新发送`},"session.editingBanner":{message:`编辑中 — 发送将把对话回退到此处`,description:`Banner shown while editing a past prompt`},"session.editRestoreCode":{message:`同时回退代码`,description:`Checkbox to also roll back file changes when editing`},"session.editCancel":{message:`取消`,description:`Cancel editing a past prompt`},"session.editSubmit":{message:`更新`,description:`Submit an edited prompt (rewind and re-run)`},"session.enterHint":{message:`回车发送,Shift+回车换行。`,description:`输入框键盘提示`},"transcript.turnFailed":{message:`执行失败`,description:`回合结果失败标签`},"transcript.turnDone":{message:`完成`,description:`回合结果完成标签`},"transcript.todoProgress":{message:`已完成 {done}/{total}`,description:`任务清单进度`},"transcript.todoOverflow":{message:`…另有 {count} 项未显示`,description:`任务清单超长省略提示`},"transcript.todoCompleted":{message:`已完成`,description:`任务清单:已完成状态(无障碍朗读)`},"transcript.todoInProgress":{message:`进行中`,description:`任务清单:进行中状态(无障碍朗读)`},"transcript.todoPending":{message:`待办`,description:`任务清单:待办状态(无障碍朗读)`},"history.button":{message:`历史会话`,description:`打开历史会话抽屉`},"history.title":{message:`历史会话`,description:`历史会话抽屉标题`},"history.intro":{message:`此设备上的 Claude Code、Codex 与 GitHub Copilot 历史会话。`,description:`历史会话抽屉说明`},"history.refresh":{message:`刷新`,description:`重新加载历史列表`},"history.loading":{message:`正在加载历史…`,description:`历史加载提示`},"history.empty":{message:`此设备上没有找到历史会话。`,description:`历史为空提示`},"history.filterAll":{message:`全部`,description:`清除来源筛选,显示全部会话`},"history.filterEmpty":{message:`当前筛选下没有会话。`,description:`筛选后结果为空的提示`},"history.messages":{message:`{count} 条消息`,description:`历史条目消息数`},"history.readonly":{message:`此 Codex 会话为只读,无法继续。开始新会话以继续编码。`,description:`只读回放提示`},"history.running":{message:`运行中`,description:`历史会话当前正在设备上运行的标记`},"history.unread":{message:`未读`,description:`历史会话已运行完但用户尚未查看的标记`},"history.resumeHint":{message:`发送消息将在设备上续接此会话。`,description:`续接输入框提示`},"history.claudeLabel":{message:`Claude 历史`,description:`回放的 Claude 会话标签`},"history.codexLabel":{message:`Codex 历史(只读)`,description:`回放的 Codex 会话标签`},"session.permissionModeLabel":{message:`权限模式`,description:`Permission-mode selector label`},"session.permissionModeDefault":{message:`默认(遵循本机审批规则)`,description:`Permission mode: ask before each tool use`},"session.permissionModeAcceptEdits":{message:`自动接受修改`,description:`Permission mode: auto-accept file edits`},"session.permissionModePlan":{message:`规划模式(只读)`,description:`Permission mode: read-only planning`},"session.permissionModeBypass":{message:`绕过所有权限`,description:`Permission mode: bypass all permission prompts`},"session.providerLabel":{message:`后端`,description:`Agent backend selector label`},"session.providerClaude":{message:`Claude Code`,description:`Backend option: Claude Code`},"session.providerCodex":{message:`Codex`,description:`Backend option: Codex`},"session.providerUnavailable":{message:`(未安装)`,description:`Suffix shown next to a backend whose CLI is not installed on the node`},"session.providerUnavailableHint":{message:`{name} 未安装在该设备上。`,description:`Composer hint shown when the selected backend is not installed on the node`},"session.effortLabel":{message:`推理强度`,description:`Reasoning-effort selector label`},"session.effortDefault":{message:`默认`,description:`Reasoning effort: backend default`},"session.effortLow":{message:`低`,description:`Reasoning effort: low`},"session.effortMedium":{message:`中`,description:`Reasoning effort: medium`},"session.effortHigh":{message:`高`,description:`Reasoning effort: high`},"session.effortMax":{message:`最高`,description:`Reasoning effort: maximum (Claude only)`},"directory.title":{message:`选择工作目录`,description:`Working-directory picker dialog title`},"directory.choose":{message:`使用此目录`,description:`Button: select the current directory`},"directory.up":{message:`上级目录`,description:`Button: go to the parent directory`},"directory.refresh":{message:`刷新`,description:`Button: reload the current directory`},"directory.pathPlaceholder":{message:`输入路径(如 D:\\)后回车`,description:`Placeholder for the editable directory path input`},"directory.go":{message:`跳转`,description:`Button: navigate to the typed directory path`},"directory.loading":{message:`正在加载…`,description:`Directory listing loading hint`},"directory.empty":{message:`此目录为空。`,description:`Empty directory hint`},"directory.truncated":{message:`仅显示前 1000 项。`,description:`Hint shown when the listing was truncated`},"session.attachImage":{message:`添加图片`,description:`Attach image button title`},"session.removeImage":{message:`移除图片`,description:`Remove attached image button title`},"session.imageAlt":{message:`附加的图片`,description:`Attached image thumbnail alt text`},"session.imageTooLarge":{message:`图片过大,单张请控制在 12 MB 以内。`,description:`Warning shown when an image exceeds the size limit`},"session.imageLimit":{message:`最多可附加 {count} 张图片。`,description:`Warning shown when exceeding the max number of images`},"session.modelDefault":{message:`默认模型`,description:`Default model`},"session.cwdDefault":{message:`默认目录`,description:`Default directory`},"session.settings":{message:`会话设置`,description:`Session settings`},"session.settingsLocked":{message:`本会话设置已锁定`,description:`Settings are locked for this session`},"session.attachFile":{message:`添加文件`,description:`Attach file`},"session.attachmentImageAlt":{message:`已附加图片`,description:`Attached image`},"session.removeAttachment":{message:`移除附件`,description:`Remove attachment`},"session.uploadingAttachment":{message:`附件上传中…`,description:`Uploading attachments…`},"session.attachmentTooLarge":{message:`文件过大,请保持每个文件不超过 50 MB。`,description:`File is too large; keep each under 50 MB.`},"session.attachmentLimit":{message:`最多可附加 {count} 个文件。`,description:`You can attach up to {count} files.`},"session.attachmentUploadError":{message:`附件上传失败。`,description:`Failed to upload attachment.`},"notice.slashUnavailable":{message:`/{command} 是交互式命令,无法在远程会话中运行。`,description:`Notice shown when a slash command can't run in a remote session`},"notice.slashCodexUnsupported":{message:`/{command} 在远程会话中暂不支持 Codex。`,description:`Notice shown when a Codex slash command isn't supported remotely`},"notify.enable":{message:`开启通知`,description:`Tooltip on the notification bell when notifications are off`},"notify.disable":{message:`关闭通知`,description:`Tooltip on the notification bell when notifications are on`},"notify.enabled":{message:`通知已开启,会话需要授权时会提醒你。`,description:`Toast after enabling notifications`},"notify.disabled":{message:`通知已关闭。`,description:`Toast after disabling notifications`},"notify.denied":{message:`通知已被阻止,请在浏览器设置中允许通知以接收授权提醒。`,description:`Toast when notification permission is denied`},"notify.unsupported":{message:`当前设备不支持通知。`,description:`Toast when notifications are unsupported`},"notify.failed":{message:`无法更新通知设置。`,description:`Toast when enabling or disabling notifications errors`},"session.working":{message:`执行中…`,description:`session.working`},"session.permissionModeWorkspace":{message:`工作区权限(无需逐次确认)`,description:`session.permissionModeWorkspace`},"transcript.interrupted":{message:`已停止`,description:`transcript.interrupted`}};export{e as default};