@acedatacloud/nexior 3.362.0 → 3.362.2

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 (315) hide show
  1. package/dist/assets/{ApiCodeButton-DS2Ao54g.js → ApiCodeButton-BAkOBxie.js} +1 -1
  2. package/dist/assets/{ApiCodeDialog-DwzHFYT0.js → ApiCodeDialog-bM2jYt0k.js} +1 -1
  3. package/dist/assets/{Artifacts-CMPcwqzq.js → Artifacts-CkTmSnAa.js} +1 -1
  4. package/dist/assets/{AskUserQuestionCard-BuHKFaaU.js → AskUserQuestionCard-CCaEhOiC.js} +1 -1
  5. package/dist/assets/{AudioPreview-DYsYS9-X.js → AudioPreview-LQ8lEoP-.js} +1 -1
  6. package/dist/assets/{Auth-DLaTz14-.js → Auth-_gOgHSU0.js} +1 -1
  7. package/dist/assets/{Bare-Dog93A8A.js → Bare-CNmtrwAx.js} +1 -1
  8. package/dist/assets/{BotPlaceholder-B9J3potY.js → BotPlaceholder-CBS4lAjm.js} +1 -1
  9. package/dist/assets/{BottomFooter-DMH1xV4k.js → BottomFooter-Bk_ZWz98.js} +1 -1
  10. package/dist/assets/{BrowseConnectors-DEbdsLQa.js → BrowseConnectors-DndkuWdA.js} +1 -1
  11. package/dist/assets/{BrowserPairingDialog-BM5xagGs.js → BrowserPairingDialog-CPIZhuOj.js} +1 -1
  12. package/dist/assets/{Callback-D1JpyPgl.js → Callback-Bh4XDEf8.js} +1 -1
  13. package/dist/assets/{CodeSnippet-0XBuWbAo.js → CodeSnippet-CK5oFt1I.js} +1 -1
  14. package/dist/assets/{Console-CrAyBgSp.js → Console-DhPXYBDT.js} +1 -1
  15. package/dist/assets/{Consumption-DT871xlT.js → Consumption-CQoAp-2Q.js} +1 -1
  16. package/dist/assets/{Conversation-CwqFcJJM.js → Conversation-DrM-uZU6.js} +1 -1
  17. package/dist/assets/{Conversation-ZnbnnBn6.js → Conversation-r8FTBMps.js} +1 -1
  18. package/dist/assets/{CopyToClipboard-BllQPGdv.js → CopyToClipboard-Bt4pNx5a.js} +1 -1
  19. package/dist/assets/{Detail-Cq2hmaUD.js → Detail-CSr9u2KG.js} +1 -1
  20. package/dist/assets/{Extra-DVzRrk9_.js → Extra-mJj6WzGA.js} +1 -1
  21. package/dist/assets/{FilePreview-Cp3nq75_.js → FilePreview-YdzEP0Sz.js} +1 -1
  22. package/dist/assets/{Hailuo-Cvdqs0f9.js → Hailuo-vHQDSZct.js} +1 -1
  23. package/dist/assets/{History-Bp55Ac2-.js → History-DFR9ymyJ.js} +1 -1
  24. package/dist/assets/{ImagePreview-Bhm_fdxQ.js → ImagePreview-BtYz7VS_.js} +1 -1
  25. package/dist/assets/{ImageWrapper-C-50b2__.js → ImageWrapper-CyPuHE9N.js} +1 -1
  26. package/dist/assets/{Index-CFMlitR6.js → Index-3kZfb74S.js} +1 -1
  27. package/dist/assets/{Index-B6Sl2jwY.js → Index-88JgM0mD.js} +1 -1
  28. package/dist/assets/{Index-BS2gdNe1.js → Index-9_g65T_M.js} +1 -1
  29. package/dist/assets/{Index-CSTD-_H5.js → Index-B1qLgswn.js} +1 -1
  30. package/dist/assets/{Index-CDXYTvXf.js → Index-B2kQl_Nl.js} +1 -1
  31. package/dist/assets/{Index-QdGgnGvK.js → Index-B2tLj-vo.js} +1 -1
  32. package/dist/assets/{Index-eHfL7e1j.js → Index-BBuN1uFz.js} +1 -1
  33. package/dist/assets/{Index-xIeLL2hx.css → Index-BJThkL2I.css} +1 -1
  34. package/dist/assets/{Index-DTOhcXnh.js → Index-BNlrj2wD.js} +1 -1
  35. package/dist/assets/{Index-C41f5__l.js → Index-BNxzh_mB.js} +1 -1
  36. package/dist/assets/{Index-BDMy6K2J.js → Index-BSQTk3rZ.js} +1 -1
  37. package/dist/assets/{Index-Cey_Ip_R.js → Index-B_uHHqnQ.js} +1 -1
  38. package/dist/assets/{Index-C6bSVJZC.js → Index-Bbf-APQ0.js} +1 -1
  39. package/dist/assets/{Index-BcG22o7d.js → Index-Bkn1S261.js} +1 -1
  40. package/dist/assets/{Index-MQ29rw4N.js → Index-BoqiiuYt.js} +1 -1
  41. package/dist/assets/{Index-DLqbQOo8.js → Index-CExuBc9s.js} +1 -1
  42. package/dist/assets/{Index-DKJvNvAm.js → Index-CK1x76Mr.js} +1 -1
  43. package/dist/assets/{Index-CBoUASsH.js → Index-CLo709z7.js} +1 -1
  44. package/dist/assets/{Index-BuWIyao2.js → Index-CXszXqLV.js} +1 -1
  45. package/dist/assets/{Index-dsCXona22.js → Index-CjsRfqWv2.js} +1 -1
  46. package/dist/assets/{Index-DUU5J8pH.js → Index-CvTkZUQP.js} +1 -1
  47. package/dist/assets/{Index-B2R6CxpE.js → Index-D1G9rIK2.js} +1 -1
  48. package/dist/assets/{Index-C3ZS-VrP.js → Index-D4AvUtiV.js} +1 -1
  49. package/dist/assets/{Index-DL4CNICy.js → Index-DMpNerdn.js} +1 -1
  50. package/dist/assets/{Index-BuIBBQYo.js → Index-DOFJea9M.js} +1 -1
  51. package/dist/assets/{Index-sGN_ZPv6.js → Index-DQmVpjTa.js} +1 -1
  52. package/dist/assets/{Index-D6X0KKXE.js → Index-DSOompWN.js} +1 -1
  53. package/dist/assets/{Index-DWgYMuNl.js → Index-DbLuorqR.js} +1 -1
  54. package/dist/assets/{Index-x2Ww5hHB.js → Index-Dl2CguWw.js} +1 -1
  55. package/dist/assets/{Index-TzFBcvA1.js → Index-JDa64RPr.js} +1 -1
  56. package/dist/assets/{Index-XxYOwo94.js → Index-Ogxhmlx4.js} +1 -1
  57. package/dist/assets/{Index-BchtdjyR.js → Index-Ui9BQQkK.js} +1 -1
  58. package/dist/assets/{Index-Bd3ELHRU.js → Index-XMu_83Jn.js} +1 -1
  59. package/dist/assets/{Index-BT8hdBTH.js → Index-YQBqTqZX.js} +1 -1
  60. package/dist/assets/Index-hVwk1uL4.js +2 -0
  61. package/dist/assets/{Index-DQZOc-z4.js → Index-mgP9Xz4i.js} +1 -1
  62. package/dist/assets/{Invitees-De0LZUT_.js → Invitees-DKvjecGv.js} +1 -1
  63. package/dist/assets/{List-DHhHFA_s.js → List-CFZ-KClZ.js} +1 -1
  64. package/dist/assets/{List-BZTfgs1Q.js → List-DO-95ZUQ.js} +1 -1
  65. package/dist/assets/{List-ZLZnbjPc.js → List-Do1_hkFr.js} +1 -1
  66. package/dist/assets/{LocalTools-CleiuQvI.js → LocalTools-B2UBvw3T.js} +1 -1
  67. package/dist/assets/{LocalTools-C7xPDZqG.js → LocalTools-Y7QXXXv1.js} +1 -1
  68. package/dist/assets/{Logo-CNPu_phh.js → Logo-CkZtONM-.js} +1 -1
  69. package/dist/assets/{Main-BQj7C7i2.js → Main-B6vmpMi_.js} +1 -1
  70. package/dist/assets/{Message-D8DC3Knl.js → Message-bYB4o6ns.js} +1 -1
  71. package/dist/assets/{Model-CLYOOaGI.js → Model-2qlcrdM5.js} +1 -1
  72. package/dist/assets/{Navigator-FK1udvuJ.js → Navigator-UlEQflv0.js} +3 -3
  73. package/dist/assets/{NotFound-ErfeN-V3.js → NotFound-q1Yogbs6.js} +1 -1
  74. package/dist/assets/{PageHeader--HyntvO8.js → PageHeader-DFCQCtrg.js} +1 -1
  75. package/dist/assets/{Pay-Bw6Wn_Mf.js → Pay-D55gLkzf.js} +1 -1
  76. package/dist/assets/{Player-BkRIKQsw.js → Player-BZsDcGuL.js} +1 -1
  77. package/dist/assets/{Poivelle-jvq64g0g.js → Poivelle-D57_tC8_.js} +1 -1
  78. package/dist/assets/{RealtimeCall-B3fu-Kd8.js → RealtimeCall-DyuHg2Bi.js} +1 -1
  79. package/dist/assets/{ReportButton-kdxIkkPa.js → ReportButton-DzpX6LE5.js} +1 -1
  80. package/dist/assets/{ReportDialog-BoxOamaC.js → ReportDialog-CCnN0lJe.js} +1 -1
  81. package/dist/assets/{ScenarioPaymentMode-C5pnkQaV.js → ScenarioPaymentMode-CqRu92vx.js} +1 -1
  82. package/dist/assets/{ScheduledTasks-ZuB3rwgg.js → ScheduledTasks-QN5AxC-v.js} +1 -1
  83. package/dist/assets/{SolanaWalletPickerDialog-C53lV2pG.js → SolanaWalletPickerDialog-DOSCBh2r.js} +1 -1
  84. package/dist/assets/{Status-yVX3ZxHB.js → Status-COhaglgv.js} +1 -1
  85. package/dist/assets/{Subscribe-B2474KBY.js → Subscribe-DAz47Cap.js} +1 -1
  86. package/dist/assets/{TabSwitcher-DzHdKt9n.js → TabSwitcher-BGVRfEet.js} +1 -1
  87. package/dist/assets/{Tts-CiQKye2M.js → Tts-DMDt8Xcl.js} +1 -1
  88. package/dist/assets/{UpdateMenuItem-DEKVCYWj.js → UpdateMenuItem-D2dQe6OD.js} +1 -1
  89. package/dist/assets/{VideoPlayer-O2873A0q.js → VideoPlayer-Coh2RFTi.js} +1 -1
  90. package/dist/assets/{VideoPreview-vwMJEAH5.js → VideoPreview-C5oYTkjm.js} +1 -1
  91. package/dist/assets/arrow-down-CqF-cU9W.js +1 -0
  92. package/dist/assets/{arrow-down-wide-narrow-DV_jDQwG.js → arrow-down-wide-narrow-B-Hw44Fp.js} +1 -1
  93. package/dist/assets/arrow-left-CoDtXesZ.js +1 -0
  94. package/dist/assets/arrow-right-Bkg9RgYl.js +1 -0
  95. package/dist/assets/arrow-up-BzNg9m4O.js +1 -0
  96. package/dist/assets/{authorizeFlow-CSEHxU5k.js → authorizeFlow-BcYpJg7c.js} +1 -1
  97. package/dist/assets/{basic-C1CRGoRM.js → basic-DiyvIczP.js} +1 -1
  98. package/dist/assets/{book-open-aMMNqezM.js → book-open-DwN99mbQ.js} +1 -1
  99. package/dist/assets/{box-DOPiuA2Y.js → box-BVjGLFxS.js} +1 -1
  100. package/dist/assets/{boxes-CJC2GfcK.js → boxes-c9GATTtV.js} +1 -1
  101. package/dist/assets/{brain-B6YrlY0J.js → brain-BB-39nEa.js} +1 -1
  102. package/dist/assets/{chart-no-axes-combined-Q-oVi8mc.js → chart-no-axes-combined-DO-Wi2EC.js} +1 -1
  103. package/dist/assets/{chat-DMHJjANe.js → chat-Npxrt_kQ.js} +1 -1
  104. package/dist/assets/check-6cv1CZ0l.js +1 -0
  105. package/dist/assets/chevron-down-Ben_YIW6.js +1 -0
  106. package/dist/assets/chevron-right-C3lMw0qC.js +1 -0
  107. package/dist/assets/circle-check-CDbPCRg6.js +1 -0
  108. package/dist/assets/{circle-question-mark-DOtVb48l.js → circle-question-mark-CSxm0VWD.js} +1 -1
  109. package/dist/assets/{clipboard-list-B9xWFhcC.js → clipboard-list-BxHeRww6.js} +1 -1
  110. package/dist/assets/clock-CEYSZpiZ.js +1 -0
  111. package/dist/assets/code-DnM_OC9R.js +1 -0
  112. package/dist/assets/codingBridge-2jZjSYGT.js +1 -0
  113. package/dist/assets/codingBridge-B0S_pFNE.js +1 -0
  114. package/dist/assets/codingBridge-BDEdzBFe.js +1 -0
  115. package/dist/assets/codingBridge-BHI0iozm.js +1 -0
  116. package/dist/assets/codingBridge-BOWR_lJQ.js +1 -0
  117. package/dist/assets/codingBridge-BbfAxNQS.js +1 -0
  118. package/dist/assets/codingBridge-C-7r6SDr.js +1 -0
  119. package/dist/assets/codingBridge-C0TmJx0P.js +1 -0
  120. package/dist/assets/codingBridge-C4w0uRt_.js +1 -0
  121. package/dist/assets/codingBridge-CWYAzcU4.js +1 -0
  122. package/dist/assets/codingBridge-CYD6uZWc.js +1 -0
  123. package/dist/assets/codingBridge-CmImNHXz.js +1 -0
  124. package/dist/assets/codingBridge-CmbX76zB.js +1 -0
  125. package/dist/assets/codingBridge-DJxa2Ctr.js +1 -0
  126. package/dist/assets/codingBridge-DNaWsf8h.js +1 -0
  127. package/dist/assets/{codingBridge-BFVZJ5MB.js → codingBridge-Dl514gEP.js} +1 -1
  128. package/dist/assets/codingBridge-co3msHz2.js +1 -0
  129. package/dist/assets/codingBridge-pO1u-DNE.js +1 -0
  130. package/dist/assets/codingBridge-vJH_tqU-.js +1 -0
  131. package/dist/assets/{codingBridgeNotify-C3UvYyZR.js → codingBridgeNotify-CDQKwxBX.js} +2 -2
  132. package/dist/assets/{coins-CnFSairO.js → coins-sq7NECLS.js} +1 -1
  133. package/dist/assets/{collapse-BBPAUwkb.js → collapse-Cr16lHVf.js} +1 -1
  134. package/dist/assets/{common-CuPxTZGi.js → common-1BuWg_Ck.js} +1 -1
  135. package/dist/assets/{common-BUOKedMn.js → common-9nCXGYVx.js} +1 -1
  136. package/dist/assets/{common-w17leeAE.js → common-B-c9sxdB.js} +1 -1
  137. package/dist/assets/{common-BYclcXpM.js → common-B5oDmIry.js} +1 -1
  138. package/dist/assets/{common-WoHC2Z1D.js → common-BFJA3ieK.js} +1 -1
  139. package/dist/assets/{common-DNVpMRaC.js → common-BKCz97Y2.js} +1 -1
  140. package/dist/assets/{common-B4JQhkdy.js → common-BUVCx2e_.js} +1 -1
  141. package/dist/assets/{common-C31VUHxp.js → common-Bg0zh9_g.js} +1 -1
  142. package/dist/assets/{common-DzOBf50F.js → common-BlzM4u-K.js} +1 -1
  143. package/dist/assets/{common-D09NRuQP.js → common-BsYNmdlc.js} +1 -1
  144. package/dist/assets/{common-BYro2bF9.js → common-CFSDnaPx.js} +1 -1
  145. package/dist/assets/{common-i2XU2w9Y.js → common-CIkh1cBe.js} +1 -1
  146. package/dist/assets/{common-lPA87Lk8.js → common-Cj6O6oFE.js} +1 -1
  147. package/dist/assets/{common-4w5mCTO4.js → common-DIkr6DUT.js} +1 -1
  148. package/dist/assets/{common-BL8iFS5Q.js → common-DIrEHT0L.js} +1 -1
  149. package/dist/assets/{common-Clhk4bF9.js → common-DrrHfeAt.js} +1 -1
  150. package/dist/assets/{common-BZ-u417v.js → common-Mi7Vx9F5.js} +1 -1
  151. package/dist/assets/{common-BtW4DFeI.js → common-t5cLjCgd.js} +1 -1
  152. package/dist/assets/{constants-DQiaG9QL.js → constants-DlrPFkyM.js} +1 -1
  153. package/dist/assets/{copy-D80bbL4I.js → copy-C5QvMUhF.js} +1 -1
  154. package/dist/assets/{createTaskActions-Byj7dDzc.js → createTaskActions-Buml4YZY.js} +1 -1
  155. package/dist/assets/{digitalhuman-b3QRH9IP.js → digitalhuman-BtCdcmzi.js} +1 -1
  156. package/dist/assets/{dollar-sign-DtmHiFYP.js → dollar-sign-ZSrTaxmA.js} +1 -1
  157. package/dist/assets/{download-B2DNdjjU.js → download-PdN43Ii9.js} +1 -1
  158. package/dist/assets/{drawer-BEFc3IO1.js → drawer-C9ziMa5D.js} +1 -1
  159. package/dist/assets/{dropdown-BaRTacsr.js → dropdown-BWJ6QGiC.js} +1 -1
  160. package/dist/assets/{dropdown-CyNWLxHe.js → dropdown-CirLmBbl.js} +1 -1
  161. package/dist/assets/{ellipsis-DNSwvGoT.js → ellipsis-DCgVjflW.js} +1 -1
  162. package/dist/assets/esm-D_6POuvI.js +1 -0
  163. package/dist/assets/{esm-DGogS-Kg.js → esm-Hgtd-cm8.js} +2 -2
  164. package/dist/assets/{esm-9vIEDDie.js → esm-oy9-x-4m.js} +2 -2
  165. package/dist/assets/{external-link-CcrrlE2G.js → external-link-Ik947zOn.js} +1 -1
  166. package/dist/assets/{eye-BoHyFhNG.js → eye-VFrDoEk4.js} +1 -1
  167. package/dist/assets/{file-CYklVd0M.js → file-BJi6f11L.js} +1 -1
  168. package/dist/assets/{file-output-CW29fMX5.js → file-output-CUNyohca.js} +1 -1
  169. package/dist/assets/{file-text-BQYfEBw5.js → file-text-CVGRb3Sl.js} +1 -1
  170. package/dist/assets/{fish-CBAqcbap.js → fish-IghNxwsq.js} +1 -1
  171. package/dist/assets/{flux-DkfbyZKG.js → flux-B9-kDmTH.js} +1 -1
  172. package/dist/assets/{focus-trap-B2_8AKNj.js → focus-trap-DOoImtBk.js} +1 -1
  173. package/dist/assets/{folder-DqsEg2BZ.js → folder-BNDnFq4V.js} +1 -1
  174. package/dist/assets/gauge-aYfGw3VQ.js +1 -0
  175. package/dist/assets/{globe-86p3Kmjh.js → globe-jnFJnwZn.js} +1 -1
  176. package/dist/assets/{grokvideo-LBh0Qa48.js → grokvideo-B5anjmYK.js} +1 -1
  177. package/dist/assets/{hailuo-m0ib0aCd.js → hailuo-Cv8EX1ss.js} +1 -1
  178. package/dist/assets/{headphones-CWuZYiKK.js → headphones-B212Wbvy.js} +1 -1
  179. package/dist/assets/{history-KglegjqD.js → history-C_-QR2T6.js} +1 -1
  180. package/dist/assets/{house-B72YCDEB.js → house-D_GT9GCN.js} +1 -1
  181. package/dist/assets/{i18n-krBZIXd-.js → i18n-CQJsUptL.js} +1 -1
  182. package/dist/assets/{image-DXwJhoIg.js → image-Bh2YK2ql.js} +1 -1
  183. package/dist/assets/{imageRequests-BIJt9lt9.js → imageRequests-BKbsl9tT.js} +1 -1
  184. package/dist/assets/{index-DhsoJc0z.js → index-BOCSBfUe.js} +10 -10
  185. package/dist/assets/{index-S1OTlWvU.css → index-Dfp2KQ3h.css} +1 -1
  186. package/dist/assets/{index.es-BtzlknRv.js → index.es-DcSmGa6z.js} +1 -1
  187. package/dist/assets/{info-CK99OcWH.js → info-DlDYYYyz.js} +1 -1
  188. package/dist/assets/{input-number-B2Undkcy.js → input-number-D2KUI1kN.js} +1 -1
  189. package/dist/assets/{key-round-DpGlu3oT.js → key-round-C7Ox29cM.js} +1 -1
  190. package/dist/assets/{kling-K__XduXp.js → kling-DI9XZTw6.js} +1 -1
  191. package/dist/assets/{languages-BNuOBbhf.js → languages-CeIhdhQe.js} +1 -1
  192. package/dist/assets/{laptop-BIzBC5uc.js → laptop-DWSIh2KY.js} +1 -1
  193. package/dist/assets/{lightbulb-CbLt2u6n.js → lightbulb-6SCo6aGb.js} +1 -1
  194. package/dist/assets/{link-DQgmNJQw.js → link-Cag6_8_J.js} +1 -1
  195. package/dist/assets/loader-circle-CD3osO-L.js +1 -0
  196. package/dist/assets/{lock-ImlWL0Jb.js → lock-BfsTRjoQ.js} +1 -1
  197. package/dist/assets/{luma-CyoPJpeW.js → luma-My7-Qacg.js} +1 -1
  198. package/dist/assets/{maestro-ZQm9Fzsr.js → maestro-DtFqFbfA.js} +1 -1
  199. package/dist/assets/{maestroLanguages-DPk-wYNq.js → maestroLanguages-Dj908WCy.js} +1 -1
  200. package/dist/assets/{mail-BFE87hxa.js → mail-DTKcIUlX.js} +1 -1
  201. package/dist/assets/{message-circle-C03E67HV.js → message-circle-CIzM-ib3.js} +1 -1
  202. package/dist/assets/{mic-RZA92lvo.js → mic-lqwIrsvy.js} +1 -1
  203. package/dist/assets/{midjourney-Bjq3Ni2Z.js → midjourney-B6ZymwTx.js} +1 -1
  204. package/dist/assets/{minimax-uPDbVnGb.js → minimax-BOtBLzBq.js} +1 -1
  205. package/dist/assets/{mobileLocalExec-Ch5N6Z-2.js → mobileLocalExec-BPI41lV6.js} +2 -2
  206. package/dist/assets/{models-D_Ijt5J2.js → models-CwklOk8Z.js} +1 -1
  207. package/dist/assets/{monitor-9BUDOxP8.js → monitor-ipgmClj0.js} +1 -1
  208. package/dist/assets/{mouse-pointer-2-BXChDVqu.js → mouse-pointer-2-BrOji6Vv.js} +1 -1
  209. package/dist/assets/music-2-CuQ41Wjt.js +1 -0
  210. package/dist/assets/{nanobanana-CSS1PyBP.js → nanobanana-x8-A4AiB.js} +1 -1
  211. package/dist/assets/{omni-B9F1tN2h.js → omni-CuQKUq0R.js} +1 -1
  212. package/dist/assets/{openaiimage-aYjFCneq.js → openaiimage-DWNeaPEk.js} +1 -1
  213. package/dist/assets/{pagination-wmGHiMT8.js → pagination-A4M5O80l.js} +1 -1
  214. package/dist/assets/{pagination-l4G2kgO9.js → pagination-B8FPaRIA.js} +1 -1
  215. package/dist/assets/{pagination-BBCo7tyn.js → pagination-CacbU_h5.js} +1 -1
  216. package/dist/assets/{palette-CcXHh4s1.js → palette-BH9uLfke.js} +1 -1
  217. package/dist/assets/{paperclip-BaCbMzgp.js → paperclip-DU2unXPs.js} +1 -1
  218. package/dist/assets/{pause-y7E75GMp.js → pause-DKVsTcCD.js} +1 -1
  219. package/dist/assets/{pencil-DM77Dtmz.js → pencil-DDlb_Eqp.js} +1 -1
  220. package/dist/assets/{pika-CtnSQzxl.js → pika-Twbh_o5m.js} +1 -1
  221. package/dist/assets/{pixverse-BWGwXp82.js → pixverse-CZeByPsP.js} +1 -1
  222. package/dist/assets/play-DFLhwX31.js +1 -0
  223. package/dist/assets/{plug-ChvIdUer.js → plug-pRt1uLP-.js} +1 -1
  224. package/dist/assets/plus-2XEDA9oZ.js +1 -0
  225. package/dist/assets/{poivelle-ax82Gew6.js → poivelle-CwbJUDMA.js} +1 -1
  226. package/dist/assets/{popover-BpONuj2c.js → popover-CujDeM9r.js} +1 -1
  227. package/dist/assets/{producer-BIN9TstO.js → producer-Cp-dqK1U.js} +1 -1
  228. package/dist/assets/{qrart-CCbJvGM4.js → qrart-BMaggLhc.js} +1 -1
  229. package/dist/assets/{realtime-C2MWT-aW.js → realtime-Cof4IZ5A.js} +1 -1
  230. package/dist/assets/{refresh-cw-DQTLL0Fu.js → refresh-cw-zGJ1ywed.js} +1 -1
  231. package/dist/assets/rotate-ccw-C6ZbozHT.js +1 -0
  232. package/dist/assets/rotate-cw-DZMWXKfh.js +1 -0
  233. package/dist/assets/{row-CQm5hGL0.js → row-Da6HRJnU.js} +1 -1
  234. package/dist/assets/search-CYoqYABP.js +1 -0
  235. package/dist/assets/{seedance-Bn5OcN3S.js → seedance-qDCXPkNU.js} +1 -1
  236. package/dist/assets/{seedream-5A-UgmfZ.js → seedream-D8s98koo.js} +1 -1
  237. package/dist/assets/{select-B2nBHYVL.js → select-Bs3ZkE9R.js} +1 -1
  238. package/dist/assets/{serp-DCqDl0lE.js → serp-CFeB3pNt.js} +1 -1
  239. package/dist/assets/{shield-Ve6wUrzX.js → shield-8Az-w1Iq.js} +1 -1
  240. package/dist/assets/{shuffle-CiNePLEt.js → shuffle-BVyO1vuc.js} +1 -1
  241. package/dist/assets/{slider-wRZgZS6X.js → slider-CrHYkY12.js} +1 -1
  242. package/dist/assets/{solana-wallets-DmkEq_yy.js → solana-wallets-BMvn-gtj.js} +2 -2
  243. package/dist/assets/{sora-Bvq6LBVO.js → sora-B6njcLzj.js} +1 -1
  244. package/dist/assets/{sparkles-DbwlBAbX.js → sparkles-DVlEhR_I.js} +1 -1
  245. package/dist/assets/square-zuxAeD3b.js +1 -0
  246. package/dist/assets/{store-CFQxGXHA.js → store-DdwflqCY.js} +1 -1
  247. package/dist/assets/{suno-Dwo1T9pn.js → suno-DKzj3RPQ.js} +1 -1
  248. package/dist/assets/{switch-Ced3buNb.js → switch-DRwxl6Da.js} +1 -1
  249. package/dist/assets/{table-Jsdyt2jK.js → table-CUPLKsew.js} +1 -1
  250. package/dist/assets/{tabs-C-kdAFYX.js → tabs-0et25VV-.js} +1 -1
  251. package/dist/assets/{tag-DsIGkfrh.js → tag-CDE6lSVO.js} +1 -1
  252. package/dist/assets/terminal-D7o7TjCB.js +1 -0
  253. package/dist/assets/{time-picker-6tCfROey.js → time-picker-m83G80k1.js} +1 -1
  254. package/dist/assets/{tooltip-CSvADT1R.js → tooltip-DtiQm14e.js} +1 -1
  255. package/dist/assets/{trash-2-Dp9KxzvW.js → trash-2-84jnyEiH.js} +1 -1
  256. package/dist/assets/{triangle-alert-Ck-fexMl.js → triangle-alert-DijP-r53.js} +1 -1
  257. package/dist/assets/{upload-CA58oZUA.js → upload-B-GObY7P.js} +1 -1
  258. package/dist/assets/{upload-Be9WFYRM.js → upload-uY7VeHmd.js} +1 -1
  259. package/dist/assets/user-DmAQfp79.js +1 -0
  260. package/dist/assets/{veo-BeTujbPq.js → veo-DplvtxRw.js} +1 -1
  261. package/dist/assets/{video-CBZh3wRV.js → video-BIEggF64.js} +1 -1
  262. package/dist/assets/{volume-2-BXZziCoO.js → volume-2-CzcGTWGH.js} +1 -1
  263. package/dist/assets/{wallet-ChFkOUBs.js → wallet-HjhzyIUc.js} +1 -1
  264. package/dist/assets/{wan-Dwf0To-A.js → wan-CXPoan9e.js} +1 -1
  265. package/dist/assets/{wand-sparkles-BE8CtE8H.js → wand-sparkles-dlhWJtt5.js} +1 -1
  266. package/dist/assets/{web-Dh1Q7CHh.js → web-BimdZWc-.js} +1 -1
  267. package/dist/assets/{web-CWKtgwUo.js → web-Cos5bHDu.js} +1 -1
  268. package/dist/assets/{web-DmHmjdgd.js → web-CpLFSuwG.js} +1 -1
  269. package/dist/assets/{web-DS7q3xbO.js → web-D3WhI-pp.js} +1 -1
  270. package/dist/assets/{web-Duf8qX65.js → web-DnTVcAMQ.js} +1 -1
  271. package/dist/assets/{webextrator-oVHj3km7.js → webextrator-BPt59Czo.js} +1 -1
  272. package/dist/assets/{zap-QiFIBGaJ.js → zap-CVI9h9l6.js} +1 -1
  273. package/dist/index.html +6 -6
  274. package/package.json +1 -1
  275. package/dist/assets/Index-B3wP2M2t.js +0 -1
  276. package/dist/assets/arrow-down-D0CODfQ8.js +0 -1
  277. package/dist/assets/arrow-left-CqE2PziJ.js +0 -1
  278. package/dist/assets/arrow-right-a64_Brjq.js +0 -1
  279. package/dist/assets/arrow-up-CU5hnyEt.js +0 -1
  280. package/dist/assets/check-j4xr44O1.js +0 -1
  281. package/dist/assets/chevron-down-BdZ0L2fG.js +0 -1
  282. package/dist/assets/chevron-right-CDyIpXAQ.js +0 -1
  283. package/dist/assets/circle-check-DaeE306y.js +0 -1
  284. package/dist/assets/clock-Co3T-_ZJ.js +0 -1
  285. package/dist/assets/code-CqCvWD5A.js +0 -1
  286. package/dist/assets/codingBridge-3C9vjgC1.js +0 -1
  287. package/dist/assets/codingBridge-9pHUdQjg.js +0 -1
  288. package/dist/assets/codingBridge-BMfn2JG7.js +0 -1
  289. package/dist/assets/codingBridge-BW-rhWIc.js +0 -1
  290. package/dist/assets/codingBridge-BY-gokeA.js +0 -1
  291. package/dist/assets/codingBridge-CGY-sU3w.js +0 -1
  292. package/dist/assets/codingBridge-Crh6mRO1.js +0 -1
  293. package/dist/assets/codingBridge-D7F_ji3T.js +0 -1
  294. package/dist/assets/codingBridge-DGjbu3uQ.js +0 -1
  295. package/dist/assets/codingBridge-DMiY2VvN.js +0 -1
  296. package/dist/assets/codingBridge-DZNLbOjo.js +0 -1
  297. package/dist/assets/codingBridge-DgC2kZpa.js +0 -1
  298. package/dist/assets/codingBridge-Lx_Ad7Bi.js +0 -1
  299. package/dist/assets/codingBridge-RPB_6mZR.js +0 -1
  300. package/dist/assets/codingBridge-TPMRNn8h.js +0 -1
  301. package/dist/assets/codingBridge-VV5cmxye.js +0 -1
  302. package/dist/assets/codingBridge-YP6TW3Qq.js +0 -1
  303. package/dist/assets/codingBridge-ibBC9ffL.js +0 -1
  304. package/dist/assets/esm-aniHCobr.js +0 -1
  305. package/dist/assets/gauge-nnmG2QDw.js +0 -1
  306. package/dist/assets/loader-circle-2yAQOSFe.js +0 -1
  307. package/dist/assets/music-2-MI0VXkw_.js +0 -1
  308. package/dist/assets/play-B3yU42DB.js +0 -1
  309. package/dist/assets/plus-BhipPsH1.js +0 -1
  310. package/dist/assets/rotate-ccw-CreMIvrc.js +0 -1
  311. package/dist/assets/rotate-cw-Cd6Inbyq.js +0 -1
  312. package/dist/assets/search-V3YVXcFc.js +0 -1
  313. package/dist/assets/square-CY7NB4Lk.js +0 -1
  314. package/dist/assets/terminal-BCq07L89.js +0 -1
  315. package/dist/assets/user-wtZBliSS.js +0 -1
@@ -0,0 +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:\\) і натисніть Enter`,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};
@@ -0,0 +1 @@
1
+ var e={"nodeList.title":{message:`Devices`,description:`Coding Bridge device list title`},"nodeList.refresh":{message:`Refresh`,description:`Refresh the device list`},"nodeList.pair":{message:`Pair device`,description:`Open the pairing dialog`},"nodeList.empty":{message:`No devices paired yet.`,description:`Empty device list message`},"nodeList.pairFirst":{message:`Pair your first device`,description:`Empty-state pairing button`},"nodeList.rename":{message:`Rename`,description:`Rename a device`},"nodeList.renamePrompt":{message:`Name this device. The name is synced to all your signed-in devices.`,description:`Rename device input prompt`},"nodeList.renameEmpty":{message:`Name must not be empty.`,description:`Rename device empty-name validation`},"nodeList.renameTooLong":{message:`Name must be at most {max} characters.`,description:`Rename device too-long validation`},"nodeList.renameSuccess":{message:`Device renamed.`,description:`Rename device success`},"nodeList.renameFailed":{message:`Failed to rename the device.`,description:`Rename device failure`},"nodeList.remove":{message:`Remove`,description:`Remove a device`},"nodeList.removeConfirm":{message:`Remove device "{name}"? It will need to be paired again.`,description:`Device removal confirmation`},"nodeList.removeSuccess":{message:`Device removed.`,description:`Device removed toast`},"nodeList.removeFailed":{message:`Failed to remove device.`,description:`Device removal error toast`},"status.online":{message:`Online`,description:`Device online status`},"status.offline":{message:`Offline`,description:`Device offline status`},"connection.disconnected":{message:`Disconnected`,description:`Relay connection disconnected`},"connection.connecting":{message:`Connecting…`,description:`Relay connection connecting`},"connection.connected":{message:`Connected`,description:`Relay connection connected`},"connection.error":{message:`Connection error`,description:`Relay connection error`},"pair.title":{message:`Pair a device`,description:`Pairing dialog title`},"pair.intro":{message:`Run the Coding Bridge agent on your computer, then enter its pairing code here to control it from the web.`,description:`Pairing dialog intro`},"pair.step1":{message:`Install the agent (requires Python 3.10+):`,description:`Pairing step 1`},"pair.step2":{message:`Start it and follow the prompt:`,description:`Pairing step 2`},"pair.step3":{message:`Enter the pairing code it shows below.`,description:`Pairing step 3`},"pair.codePlaceholder":{message:`Pairing code`,description:`Pairing code input placeholder`},"pair.claim":{message:`Pair device`,description:`Pairing confirm button`},"pair.success":{message:`Device "{name}" paired.`,description:`Pairing success toast`},"pair.invalidCode":{message:`Invalid or expired pairing code.`,description:`Pairing invalid code error`},"pair.usedCode":{message:`This pairing code has already been used.`,description:`Pairing used code error`},"pair.failed":{message:`Failed to pair device.`,description:`Pairing generic error`},"permission.title":{message:`Permission required`,description:`Permission dialog title`},"permission.subtitle":{message:`The agent wants to use a tool. Approve to continue.`,description:`Permission dialog subtitle`},"permission.deny":{message:`Deny`,description:`Deny a tool permission`},"permission.allow":{message:`Allow`,description:`Allow a tool permission`},"session.noDevice":{message:`Select a device to start coding.`,description:`No device selected placeholder`},"session.newSession":{message:`New session`,description:`Start a new session`},"session.deviceOffline":{message:`This device is offline. Start the Coding Bridge agent on it to continue.`,description:`Device offline warning`},"session.nodeId":{message:`Device ID`,description:`Diagnostic label for the node id`},"session.sessionId":{message:`Session ID`,description:`Diagnostic label for the session id`},"session.traceId":{message:`Trace ID`,description:`Diagnostic label for the trace id`},"session.startHint":{message:`Send a message to start a session on this device.`,description:`Empty transcript hint`},"session.cwdPlaceholder":{message:`Working directory (optional)`,description:`Working directory input placeholder`},"session.modelPlaceholder":{message:`Model (optional)`,description:`Model input placeholder`},"session.promptPlaceholder":{message:`Send a message to the agent…`,description:`Prompt input placeholder`},"session.send":{message:`Send`,description:`Send prompt button`},"session.voiceInput":{message:`Voice input`,description:`Start turning speech into prompt text`},"session.voiceStop":{message:`Stop voice input`,description:`Stop speech transcription`},"session.voiceListening":{message:`Listening… You can edit the text after stopping.`,description:`Composer hint while speech recognition is active`},"session.voiceStopping":{message:`Finishing transcription…`,description:`Waiting for the final speech recognition result`},"session.voicePermissionDenied":{message:`Microphone access was denied. Allow it in your system or browser settings and try again.`,description:`Microphone permission denied`},"session.voiceMicrophoneUnavailable":{message:`No microphone was found or it could not be used.`,description:`Microphone unavailable`},"session.voiceNoSpeech":{message:`No speech was detected. Try again.`,description:`Speech recognition detected no speech`},"session.voiceNetworkError":{message:`Speech recognition is temporarily unavailable. Check your network and try again.`,description:`Speech recognition network error`},"session.voiceError":{message:`Voice input failed. Try again.`,description:`Generic speech recognition error`},"session.retry":{message:`Retry`,description:`Re-run the last prompt after a failure`},"session.editPrompt":{message:`Edit`,description:`Edit a sent prompt and resend it as a new turn`},"session.editingBanner":{message:`Editing — sending rewinds the conversation to this point.`,description:`Banner shown while editing a past prompt`},"session.editRestoreCode":{message:`Also restore code`,description:`Checkbox to also roll back file changes when editing`},"session.editCancel":{message:`Cancel`,description:`Cancel editing a past prompt`},"session.editSubmit":{message:`Update`,description:`Submit an edited prompt (rewind and re-run)`},"session.enterHint":{message:`Enter to send, Shift+Enter for a new line.`,description:`Composer keyboard hint`},"transcript.turnFailed":{message:`Turn failed`,description:`Turn result failed label`},"transcript.turnDone":{message:`Done`,description:`Turn result done label`},"transcript.todoProgress":{message:`{done}/{total} completed`,description:`Todo list progress`},"transcript.todoOverflow":{message:`…and {count} more`,description:`Todo list overflow hint`},"transcript.todoCompleted":{message:`Completed`,description:`Todo list: completed status for screen readers`},"transcript.todoInProgress":{message:`In progress`,description:`Todo list: in-progress status for screen readers`},"transcript.todoPending":{message:`Pending`,description:`Todo list: pending status for screen readers`},"history.button":{message:`History`,description:`Open the conversation history drawer`},"history.title":{message:`Conversation history`,description:`History drawer title`},"history.intro":{message:`Past Claude Code, Codex & GitHub Copilot sessions on this device.`,description:`History drawer intro`},"history.refresh":{message:`Refresh`,description:`Reload the history list`},"history.loading":{message:`Loading history…`,description:`History loading message`},"history.empty":{message:`No history found on this device.`,description:`Empty history message`},"history.filterAll":{message:`All`,description:`Clear the provider filter and show every session`},"history.filterEmpty":{message:`No conversations match this filter.`,description:`Empty result under the current provider filter`},"history.messages":{message:`{count} messages`,description:`History item message count`},"history.readonly":{message:`This Codex conversation is read-only and cannot be continued. Start a new session to keep coding.`,description:`Read-only replay notice`},"history.running":{message:`Running`,description:`Marks a history conversation that is currently live on the device`},"history.unread":{message:`Unread`,description:`Marks a finished history conversation the user has not opened yet`},"history.resumeHint":{message:`Sending a message will resume this conversation on the device.`,description:`Resume composer hint`},"history.claudeLabel":{message:`Claude history`,description:`Replayed Claude session label`},"history.codexLabel":{message:`Codex history (read-only)`,description:`Replayed Codex session label`},"session.permissionModeLabel":{message:`Permission mode`,description:`Permission-mode selector label`},"session.permissionModeDefault":{message:`Default (ask each time)`,description:`Permission mode: ask before each tool use`},"session.permissionModeAcceptEdits":{message:`Auto-accept edits`,description:`Permission mode: auto-accept file edits`},"session.permissionModePlan":{message:`Plan mode (read-only)`,description:`Permission mode: read-only planning`},"session.permissionModeBypass":{message:`Bypass all permissions`,description:`Permission mode: bypass all permission prompts`},"session.providerLabel":{message:`Backend`,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:`(not installed)`,description:`Suffix shown next to a backend whose CLI is not installed on the node`},"session.providerUnavailableHint":{message:`{name} is not installed on this device.`,description:`Composer hint shown when the selected backend is not installed on the node`},"session.effortLabel":{message:`Reasoning effort`,description:`Reasoning-effort selector label`},"session.effortDefault":{message:`Default`,description:`Reasoning effort: backend default`},"session.effortLow":{message:`Low`,description:`Reasoning effort: low`},"session.effortMedium":{message:`Medium`,description:`Reasoning effort: medium`},"session.effortHigh":{message:`High`,description:`Reasoning effort: high`},"session.effortMax":{message:`Max`,description:`Reasoning effort: maximum (Claude only)`},"directory.title":{message:`Choose working directory`,description:`Working-directory picker dialog title`},"directory.choose":{message:`Use this directory`,description:`Button: select the current directory`},"directory.up":{message:`Parent directory`,description:`Button: go to the parent directory`},"directory.refresh":{message:`Refresh`,description:`Button: reload the current directory`},"directory.pathPlaceholder":{message:`Type a path (e.g. D:\\) and press Enter`,description:`Placeholder for the editable directory path input`},"directory.go":{message:`Go`,description:`Button: navigate to the typed directory path`},"directory.loading":{message:`Loading…`,description:`Directory listing loading hint`},"directory.empty":{message:`This directory is empty.`,description:`Empty directory hint`},"directory.truncated":{message:`Showing the first 1000 entries.`,description:`Hint shown when the listing was truncated`},"session.attachImage":{message:`Attach image`,description:`Attach image button title`},"session.removeImage":{message:`Remove image`,description:`Remove attached image button title`},"session.imageAlt":{message:`Attached image`,description:`Attached image thumbnail alt text`},"session.imageTooLarge":{message:`Image is too large; keep each under 12 MB.`,description:`Warning shown when an image exceeds the size limit`},"session.imageLimit":{message:`You can attach up to {count} images.`,description:`Warning shown when exceeding the max number of images`},"session.modelDefault":{message:`Default model`,description:`Default model`},"session.cwdDefault":{message:`Default directory`,description:`Default directory`},"session.settings":{message:`Session settings`,description:`Session settings`},"session.settingsLocked":{message:`Settings are locked for this session`,description:`Settings are locked for this session`},"session.attachFile":{message:`Attach file`,description:`Attach file`},"session.attachmentImageAlt":{message:`Attached image`,description:`Attached image`},"session.removeAttachment":{message:`Remove attachment`,description:`Remove attachment`},"session.uploadingAttachment":{message:`Uploading attachments…`,description:`Uploading attachments…`},"session.attachmentTooLarge":{message:`File is too large; keep each under 50 MB.`,description:`File is too large; keep each under 50 MB.`},"session.attachmentLimit":{message:`You can attach up to {count} files.`,description:`You can attach up to {count} files.`},"session.attachmentUploadError":{message:`Failed to upload attachment.`,description:`Failed to upload attachment.`},"notice.slashUnavailable":{message:`/{command} is an interactive command and isn't available in a remote session.`,description:`Notice shown when a slash command can't run in a remote session`},"notice.slashCodexUnsupported":{message:`/{command} isn't available for Codex in a remote session.`,description:`Notice shown when a Codex slash command isn't supported remotely`},"notify.enable":{message:`Enable notifications`,description:`Tooltip on the notification bell when notifications are off`},"notify.disable":{message:`Disable notifications`,description:`Tooltip on the notification bell when notifications are on`},"notify.enabled":{message:`Notifications enabled. We'll alert you when a session needs approval.`,description:`Toast after enabling notifications`},"notify.disabled":{message:`Notifications disabled.`,description:`Toast after disabling notifications`},"notify.denied":{message:`Notifications are blocked. Allow them in your browser settings to get approval alerts.`,description:`Toast when notification permission is denied`},"notify.unsupported":{message:`Notifications aren't supported on this device.`,description:`Toast when notifications are unsupported`},"notify.failed":{message:`Couldn't update notification settings.`,description:`Toast when enabling or disabling notifications errors`}};export{e as default};
@@ -0,0 +1 @@
1
+ var e={"nodeList.title":{message:`Geräte`,description:`Titel der Geräteliste von Coding Bridge`},"nodeList.refresh":{message:`Aktualisieren`,description:`Aktualisiert die Geräteliste`},"nodeList.pair":{message:`Gerät koppeln`,description:`Öffnet das Dialogfeld zum Koppeln`},"nodeList.empty":{message:`Es sind noch keine Geräte gekoppelt.`,description:`Hinweis, wenn die Geräteliste leer ist`},"nodeList.pairFirst":{message:`Erstes Gerät koppeln`,description:`Kopplungsbutton im leeren Zustand`},"nodeList.rename":{message:`Umbenennen`,description:`Rename a device`},"nodeList.renamePrompt":{message:`Gib diesem Gerät einen Namen. Der Name wird mit all deinen angemeldeten Geräten synchronisiert.`,description:`Rename device input prompt`},"nodeList.renameEmpty":{message:`Der Name darf nicht leer sein.`,description:`Rename device empty-name validation`},"nodeList.renameTooLong":{message:`Der Name darf höchstens {max} Zeichen lang sein.`,description:`Rename device too-long validation`},"nodeList.renameSuccess":{message:`Gerät umbenannt.`,description:`Rename device success`},"nodeList.renameFailed":{message:`Gerät konnte nicht umbenannt werden.`,description:`Rename device failure`},"nodeList.remove":{message:`Entfernen`,description:`Entfernt ein Gerät`},"nodeList.removeConfirm":{message:`Gerät „{name}“ entfernen? Nach dem Entfernen muss es erneut gekoppelt werden.`,description:`Bestätigung zum Entfernen eines Geräts`},"nodeList.removeSuccess":{message:`Gerät wurde entfernt.`,description:`Hinweis bei erfolgreichem Entfernen eines Geräts`},"nodeList.removeFailed":{message:`Gerät entfernen fehlgeschlagen.`,description:`Hinweis bei fehlgeschlagenem Entfernen eines Geräts`},"status.online":{message:`Online`,description:`Gerät ist online`},"status.offline":{message:`Offline`,description:`Gerät ist offline`},"connection.disconnected":{message:`Getrennt`,description:`Die Verbindung zum Relay wurde getrennt`},"connection.connecting":{message:`Verbindung wird hergestellt…`,description:`Der Relay wird verbunden`},"connection.connected":{message:`Verbunden`,description:`Der Relay ist verbunden`},"connection.error":{message:`Verbindungsfehler`,description:`Fehler bei der Verbindung zum Relay`},"pair.title":{message:`Gerät koppeln`,description:`Titel des Kopplungsdialogs`},"pair.intro":{message:`Führen Sie den Coding Bridge Agenten auf Ihrem Computer aus und geben Sie hier den Kopplungscode ein, um ihn über die Webseite zu steuern.`,description:`Einführung im Kopplungsdialog`},"pair.step1":{message:`Agenten installieren (benötigt Python 3.10+):`,description:`Kopplungsschritt 1`},"pair.step2":{message:`Starten und den Anweisungen folgen:`,description:`Kopplungsschritt 2`},"pair.step3":{message:`Geben Sie den unten angezeigten Kopplungscode ein.`,description:`Kopplungsschritt 3`},"pair.codePlaceholder":{message:`Kopplungscode`,description:`Platzhalter im Eingabefeld für den Kopplungscode`},"pair.claim":{message:`Gerät koppeln`,description:`Bestätigungsbutton zum Koppeln`},"pair.success":{message:`Gerät „{name}“ wurde gekoppelt.`,description:`Hinweis bei erfolgreichem Koppeln`},"pair.invalidCode":{message:`Kopplungscode ungültig oder abgelaufen.`,description:`Fehler bei ungültigem Kopplungscode`},"pair.usedCode":{message:`Dieser Kopplungscode wurde bereits verwendet.`,description:`Fehler bei bereits verwendetem Kopplungscode`},"pair.failed":{message:`Gerät koppeln fehlgeschlagen.`,description:`Allgemeiner Fehler beim Koppeln`},"permission.title":{message:`Genehmigung erforderlich`,description:`Titel des Genehmigungsdialogfelds.`},"permission.subtitle":{message:`Genehmigen Sie die Verwendung eines Tools für die Anfrage, um fortzufahren.`,description:`Untertitel des Genehmigungsdialogfelds.`},"permission.deny":{message:`Ablehnen`,description:`Ablehnen des Zugriffs auf das Tool.`},"permission.allow":{message:`Erlauben`,description:`Erlauben Sie das Tool, Zugriff zu erhalten.`},"session.noDevice":{message:`Wählen Sie ein Gerät, um mit dem Codieren zu beginnen.`,description:`Platzhalterhinweis, wenn kein Gerät ausgewählt ist.`},"session.newSession":{message:`Neue Sitzung`,description:`Neue Sitzung starten.`},"session.deviceOffline":{message:`Dieses Gerät ist offline. Bitte starten Sie den Coding Bridge-Agent auf diesem Gerät, um fortzufahren.`,description:`Warnung, dass das Gerät offline ist.`},"session.nodeId":{message:`Geräte-ID`,description:`Diagnostic label for the node id`},"session.sessionId":{message:`Sitzungs-ID`,description:`Diagnostic label for the session id`},"session.traceId":{message:`Trace-ID`,description:`Diagnostic label for the trace id`},"session.startHint":{message:`Senden Sie eine Nachricht, um die Sitzung auf diesem Gerät zu starten.`,description:`Hinweis für leere Aufzeichnungen`},"session.cwdPlaceholder":{message:`Arbeitsverzeichnis (optional)`,description:`Platzhalter für das Eingabefeld des Arbeitsverzeichnisses.`},"session.modelPlaceholder":{message:`Modell (optional)`,description:`Platzhalter für das Eingabefeld des Modells.`},"session.promptPlaceholder":{message:`Nachricht an den Agenten senden…`,description:`Platzhalter für das Eingabefeld des Prompts.`},"session.send":{message:`Senden`,description:`Button zum Senden von Eingaben`},"session.voiceInput":{message:`Sprachinput`,description:`Beginnen Sie, Sprache in Eingabewörter umzuwandeln`},"session.voiceStop":{message:`Sprachinput stoppen`,description:`Stoppen der Sprachtranskription`},"session.voiceListening":{message:`Hörmodus aktiv, nach dem Stoppen kann der Text bearbeitet werden.`,description:`Hinweis im Eingabefeld während der aktiven Spracherkennung`},"session.voiceStopping":{message:`Sprachtranskription wird abgeschlossen…`,description:`Warten auf das endgültige Ergebnis der Spracherkennung`},"session.voicePermissionDenied":{message:`Mikrofonberechtigung verweigert. Bitte erlauben Sie sie in den System- oder Browsereinstellungen und versuchen Sie es erneut.`,description:`Mikrofonberechtigung wurde verweigert`},"session.voiceMicrophoneUnavailable":{message:`Mikrofon nicht gefunden oder nicht verfügbar.`,description:`Mikrofon ist nicht verfügbar`},"session.voiceNoSpeech":{message:`Keine Sprache erkannt, bitte erneut versuchen.`,description:`Die Spracherkennung hat kein Sprechen erkannt`},"session.voiceNetworkError":{message:`Der Spracherkennungsdienst ist vorübergehend nicht verfügbar, bitte überprüfen Sie das Netzwerk und versuchen Sie es erneut.`,description:`Netzwerkfehler bei der Spracherkennung`},"session.voiceError":{message:`Sprachinput fehlgeschlagen, bitte erneut versuchen.`,description:`Allgemeiner Fehler bei der Spracherkennung`},"session.retry":{message:`Erneut versuchen`,description:`Re-run the last prompt after a failure`},"session.editPrompt":{message:`Bearbeiten`,description:`Bearbeiten Sie den gesendeten Prompt und senden Sie ihn als neue Runde erneut.`},"session.editingBanner":{message:`Bearbeitung — Senden wird das Gespräch an dieser Stelle zurücksetzen`,description:`Banner, das während der Bearbeitung eines früheren Prompts angezeigt wird.`},"session.editRestoreCode":{message:`Code ebenfalls zurücksetzen`,description:`Checkbox, um auch die Dateiänderungen beim Bearbeiten zurückzusetzen.`},"session.editCancel":{message:`Abbrechen`,description:`Bearbeitung eines früheren Prompts abbrechen.`},"session.editSubmit":{message:`Aktualisieren`,description:`Einen bearbeiteten Prompt einreichen (zurückspulen und erneut ausführen).`},"session.enterHint":{message:`Enter zum Senden, Shift+Enter für einen Zeilenumbruch.`,description:`Tastaturhinweis im Eingabefeld.`},"transcript.turnFailed":{message:`Ausführung fehlgeschlagen`,description:`Label für das Ergebnis der Runde, fehlgeschlagen`},"transcript.turnDone":{message:`Fertig`,description:`Label für das Ergebnis der Runde, abgeschlossen`},"transcript.todoProgress":{message:`{done}/{total} abgeschlossen`,description:`Fortschritt der Aufgabenliste`},"transcript.todoOverflow":{message:`…es gibt noch {count} weitere Elemente, die nicht angezeigt werden`,description:`Hinweis für überlange Aufgabenliste`},"transcript.todoCompleted":{message:`Abgeschlossen`,description:`Aufgabenliste: Abgeschlossen (für Barrierefreiheit vorlesen)`},"transcript.todoInProgress":{message:`In Bearbeitung`,description:`Aufgabenliste: In Bearbeitung (für Barrierefreiheit vorlesen)`},"transcript.todoPending":{message:`Ausstehend`,description:`Aufgabenliste: Ausstehend (für Barrierefreiheit vorlesen)`},"history.button":{message:`Verlauf`,description:`Open the conversation history drawer`},"history.title":{message:`Konversationsverlauf`,description:`History drawer title`},"history.intro":{message:`Frühere Claude-Code-, Codex- und GitHub-Copilot-Sitzungen auf diesem Gerät.`,description:`History drawer intro`},"history.refresh":{message:`Aktualisieren`,description:`Reload the history list`},"history.loading":{message:`Verlauf wird geladen…`,description:`History loading message`},"history.empty":{message:`Kein Verlauf auf diesem Gerät gefunden.`,description:`Empty history message`},"history.filterAll":{message:`Alle`,description:`Entfernt die Quellenfilter und zeigt alle Sitzungen an.`},"history.filterEmpty":{message:`Unter der aktuellen Filterung gibt es keine Sitzungen.`,description:`Hinweis, dass das Ergebnis nach der Filterung leer ist.`},"history.messages":{message:`{count} Nachrichten`,description:`History item message count`},"history.readonly":{message:`Diese Codex-Konversation ist schreibgeschützt und kann nicht fortgesetzt werden. Starte eine neue Sitzung, um weiterzuarbeiten.`,description:`Read-only replay notice`},"history.running":{message:`Läuft`,description:`Marks a history conversation that is currently live on the device`},"history.unread":{message:`Ungelesen`,description:`Markierung für historische Sitzungen, die abgeschlossen sind, aber vom Benutzer noch nicht angesehen wurden`},"history.resumeHint":{message:`Eine Nachricht setzt diese Konversation auf dem Gerät fort.`,description:`Resume composer hint`},"history.claudeLabel":{message:`Claude-Verlauf`,description:`Replayed Claude session label`},"history.codexLabel":{message:`Codex-Verlauf (schreibgeschützt)`,description:`Replayed Codex session label`},"session.permissionModeLabel":{message:`Berechtigungsmodus`,description:`Permission-mode selector label`},"session.permissionModeDefault":{message:`Standard (jedes Mal fragen)`,description:`Permission mode: ask before each tool use`},"session.permissionModeAcceptEdits":{message:`Änderungen automatisch akzeptieren`,description:`Permission mode: auto-accept file edits`},"session.permissionModePlan":{message:`Planungsmodus (schreibgeschützt)`,description:`Permission mode: read-only planning`},"session.permissionModeBypass":{message:`Alle Berechtigungen umgehen`,description:`Permission mode: bypass all permission prompts`},"session.providerLabel":{message:`Backend`,description:`Label für die Auswahl des Agenten-Backends`},"session.providerClaude":{message:`Claude Code`,description:`Backend option: Claude Code`},"session.providerCodex":{message:`Codex`,description:`Backend option: Codex`},"session.providerUnavailable":{message:`(nicht installiert)`,description:`Suffix shown next to a backend whose CLI is not installed on the node`},"session.providerUnavailableHint":{message:`{name} ist auf diesem Gerät nicht installiert.`,description:`Composer hint shown when the selected backend is not installed on the node`},"session.effortLabel":{message:`Denkaufwand`,description:`Reasoning-effort selector label`},"session.effortDefault":{message:`Standard`,description:`Reasoning effort: backend default`},"session.effortLow":{message:`Niedrig`,description:`Reasoning effort: low`},"session.effortMedium":{message:`Mittel`,description:`Reasoning effort: medium`},"session.effortHigh":{message:`Hoch`,description:`Reasoning effort: high`},"session.effortMax":{message:`Maximal`,description:`Reasoning effort: maximum (Claude only)`},"directory.title":{message:`Arbeitsverzeichnis wählen`,description:`Working-directory picker dialog title`},"directory.choose":{message:`Dieses Verzeichnis verwenden`,description:`Button: select the current directory`},"directory.up":{message:`Übergeordnetes Verzeichnis`,description:`Button: go to the parent directory`},"directory.refresh":{message:`Aktualisieren`,description:`Button: reload the current directory`},"directory.pathPlaceholder":{message:`Geben Sie den Pfad ein (z. B. D:\\) und drücken Sie die Eingabetaste`,description:`Platzhalter für das bearbeitbare Eingabefeld des Verzeichnis-Pfads`},"directory.go":{message:`Gehe zu`,description:`Schaltfläche: navigiere zum eingegebenen Verzeichnis-Pfad`},"directory.loading":{message:`Wird geladen…`,description:`Directory listing loading hint`},"directory.empty":{message:`Dieses Verzeichnis ist leer.`,description:`Empty directory hint`},"directory.truncated":{message:`Die ersten 1000 Einträge werden angezeigt.`,description:`Hint shown when the listing was truncated`},"session.attachImage":{message:`Bild anhängen`,description:`Attach image button title`},"session.removeImage":{message:`Bild entfernen`,description:`Remove attached image button title`},"session.imageAlt":{message:`Angehängtes Bild`,description:`Attached image thumbnail alt text`},"session.imageTooLarge":{message:`Bild ist zu groß; halte jedes unter 12 MB.`,description:`Warning shown when an image exceeds the size limit`},"session.imageLimit":{message:`Du kannst bis zu {count} Bilder anhängen.`,description:`Warning shown when exceeding the max number of images`},"session.modelDefault":{message:`Standardmodell`,description:`Standardmodell.`},"session.cwdDefault":{message:`Standardverzeichnis`,description:`Standardverzeichnis.`},"session.settings":{message:`Sitzungseinstellungen`,description:`Einstellungen für die Sitzung`},"session.settingsLocked":{message:`Die Einstellungen dieser Sitzung sind gesperrt`,description:`Einstellungen sind für diese Sitzung gesperrt`},"session.attachFile":{message:`Datei hinzufügen`,description:`Datei anhängen.`},"session.attachmentImageAlt":{message:`Bild angehängt`,description:`Angehängtes Bild.`},"session.removeAttachment":{message:`Anhang entfernen`,description:`Anhang entfernen.`},"session.uploadingAttachment":{message:`Datei wird hochgeladen…`,description:`Hochladen von Anhängen…`},"session.attachmentTooLarge":{message:`Datei zu groß, bitte jede Datei unter 50 MB halten.`,description:`Datei ist zu groß; jede unter 50 MB halten.`},"session.attachmentLimit":{message:`Maximal {count} Dateien können angehängt werden.`,description:`Sie können bis zu {count} Dateien anhängen.`},"session.attachmentUploadError":{message:`Fehler beim Hochladen des Anhangs.`,description:`Fehler beim Hochladen des Anhangs.`},"notice.slashUnavailable":{message:`/{command} ist ein interaktiver Befehl und kann in einer Remote-Sitzung nicht ausgeführt werden.`,description:`Notice shown when a slash command can't run in a remote session`},"notice.slashCodexUnsupported":{message:`/{command} ist für Codex in einer Remote-Sitzung nicht verfügbar.`,description:`Notice shown when a Codex slash command isn't supported remotely`},"notify.enable":{message:`Benachrichtigungen aktivieren`,description:`Tooltip on the notification bell when notifications are off`},"notify.disable":{message:`Benachrichtigungen deaktivieren`,description:`Tooltip on the notification bell when notifications are on`},"notify.enabled":{message:`Benachrichtigungen aktiviert. Wir melden uns, wenn eine Sitzung eine Freigabe benötigt.`,description:`Toast after enabling notifications`},"notify.disabled":{message:`Benachrichtigungen deaktiviert.`,description:`Toast after disabling notifications`},"notify.denied":{message:`Benachrichtigungen sind blockiert. Erlaube sie in deinen Browser-Einstellungen, um Freigabe-Hinweise zu erhalten.`,description:`Toast when notification permission is denied`},"notify.unsupported":{message:`Benachrichtigungen werden auf diesem Gerät nicht unterstützt.`,description:`Toast when notifications are unsupported`},"notify.failed":{message:`Benachrichtigungseinstellungen konnten nicht aktualisiert werden.`,description:`Toast when enabling or disabling notifications errors`}};export{e as default};
@@ -0,0 +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};
@@ -0,0 +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};
@@ -0,0 +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:`Дијагностичка ознака за 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:`Dozvola za mikrofon je odbijena, molimo dozvolite je u sistemskim ili postavkama pregledača pa pokušajte ponovo.`,description:`Dozvola za mikrofon je odbijena.`},"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:`Трака приказана током уређивања ранијег упита`},"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:`Отвори фиоку историје разговора`},"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:`Ознака бирача режима дозвола`},"session.permissionModeDefault":{message:`Подразумевано (питај сваки пут)`,description:`Режим дозвола: питај пре сваке употребе алата`},"session.permissionModeAcceptEdits":{message:`Аутоматски прихватај измене`,description:`Режим дозвола: аутоматски прихвати измене датотека`},"session.permissionModePlan":{message:`Режим планирања (само за читање)`,description:`Режим дозвола: планирање само за читање`},"session.permissionModeBypass":{message:`Заобиђи све дозволе`,description:`Режим дозвола: заобиђи све упите за дозволу`},"session.providerLabel":{message:`Бекенд`,description:`Ознака бирача агентског бекенда`},"session.providerClaude":{message:`Claude Code`,description:`Опција бекенда: Claude Code`},"session.providerCodex":{message:`Codex`,description:`Опција бекенда: Codex`},"session.providerUnavailable":{message:`(није инсталирано)`,description:`Наставак приказан поред бекенда чији CLI није инсталиран на чвору`},"session.providerUnavailableHint":{message:`{name} није инсталиран на овом уређају.`,description:`Савет у уносу када изабрани бекенд није инсталиран на чвору`},"session.effortLabel":{message:`Ниво размишљања`,description:`Ознака бирача нивоа размишљања`},"session.effortDefault":{message:`Подразумевано`,description:`Ниво размишљања: подразумевани бекенд`},"session.effortLow":{message:`Низак`,description:`Ниво размишљања: низак`},"session.effortMedium":{message:`Средњи`,description:`Ниво размишљања: средњи`},"session.effortHigh":{message:`Висок`,description:`Ниво размишљања: висок`},"session.effortMax":{message:`Максималан`,description:`Ниво размишљања: максималан (само Claude)`},"directory.title":{message:`Изаберите радни директоријум`,description:`Наслов дијалога за избор радног директоријума`},"directory.choose":{message:`Користи овај директоријум`,description:`Дугме: изабери тренутни директоријум`},"directory.up":{message:`Надређени директоријум`,description:`Дугме: иди у надређени директоријум`},"directory.refresh":{message:`Освежи`,description:`Дугме: поново учитај тренутни директоријум`},"directory.pathPlaceholder":{message:`Унесите путању (нпр. D:\\) и притисните Enter`,description:`placeholder за unos putanje direktorijuma`},"directory.go":{message:`Иди`,description:` dugme: navigiraj do unete putanje direktorijuma`},"directory.loading":{message:`Учитавање…`,description:`Савет током учитавања списка директоријума`},"directory.empty":{message:`Овај директоријум је празан.`,description:`Савет за празан директоријум`},"directory.truncated":{message:`Приказано првих 1000 ставки.`,description:`Савет када је списак скраћен`},"session.attachImage":{message:`Приложи слику`,description:`Наслов дугмета за прилагање слике`},"session.removeImage":{message:`Уклони слику`,description:`Наслов дугмета за уклањање приложене слике`},"session.imageAlt":{message:`Приложена слика`,description:`Alt текст умањеног приказа приложене слике`},"session.imageTooLarge":{message:`Слика је превелика; нека свака буде испод 12 MB.`,description:`Упозорење када слика премаши ограничење величине`},"session.imageLimit":{message:`Можеш приложити највише {count} слика.`,description:`Упозорење када се премаши највећи број слика`},"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:`Обавештење када slash команда не може да ради у удаљеној сесији`},"notice.slashCodexUnsupported":{message:`/{command} није доступна за Codex у удаљеној сесији.`,description:`Обавештење када Codex slash команда није подржана удаљено`},"notify.enable":{message:`Омогући обавештења`,description:`Tooltip на звону за обавештења када су обавештења искључена`},"notify.disable":{message:`Онемогући обавештења`,description:`Tooltip на звону за обавештења када су обавештења укључена`},"notify.enabled":{message:`Обавештења су омогућена. Обавестићемо вас када сесија захтева одобрење.`,description:`Обавештење након укључивања обавештења`},"notify.disabled":{message:`Обавештења су онемогућена.`,description:`Обавештење након искључивања обавештења`},"notify.denied":{message:`Обавештења су блокирана. Дозволите их у подешавањима прегледача да бисте примали обавештења о одобрењу.`,description:`Обавештење када је дозвола за обавештења одбијена`},"notify.unsupported":{message:`Обавештења нису подржана на овом уређају.`,description:`Обавештење када обавештења нису подржана`},"notify.failed":{message:`Ажурирање подешавања обавештења није успело.`,description:`Обавештење када укључивање или искључивање обавештења не успе`}};export{e as default};
@@ -0,0 +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:`ノード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:`過去のプロンプトを編集中に表示されるバナー`},"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:`会話履歴ドロワーを開く`},"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:`権限モード選択ラベル`},"session.permissionModeDefault":{message:`デフォルト(毎回確認)`,description:`権限モード:ツール使用前に確認する`},"session.permissionModeAcceptEdits":{message:`編集を自動承認`,description:`権限モード:ファイル編集を自動承認`},"session.permissionModePlan":{message:`プランモード(読み取り専用)`,description:`権限モード:読み取り専用の計画モード`},"session.permissionModeBypass":{message:`すべての権限をバイパス`,description:`権限モード:すべての権限確認をバイパス`},"session.providerLabel":{message:`バックエンド`,description:`エージェントバックエンド選択ラベル`},"session.providerClaude":{message:`Claude Code`,description:`バックエンドオプション:Claude Code`},"session.providerCodex":{message:`Codex`,description:`バックエンドオプション:Codex`},"session.providerUnavailable":{message:`(未インストール)`,description:`CLIがノードにインストールされていないバックエンドの横に表示されるサフィックス`},"session.providerUnavailableHint":{message:`{name} はこのデバイスにインストールされていません。`,description:`選択したバックエンドがノードにインストールされていない場合に表示されるコンポーザーヒント`},"session.effortLabel":{message:`推論の強度`,description:`推論努力度セレクターラベル`},"session.effortDefault":{message:`デフォルト`,description:`推論努力度:バックエンドのデフォルト`},"session.effortLow":{message:`低`,description:`推論努力度:低`},"session.effortMedium":{message:`中`,description:`推論努力度:中`},"session.effortHigh":{message:`高`,description:`推論努力度:高`},"session.effortMax":{message:`最大`,description:`推論努力度:最大(Claudeのみ)`},"directory.title":{message:`作業ディレクトリを選択`,description:`作業ディレクトリ選択ダイアログのタイトル`},"directory.choose":{message:`このディレクトリを使用`,description:`ボタン:現在のディレクトリを選択`},"directory.up":{message:`親ディレクトリ`,description:`ボタン:親ディレクトリに移動`},"directory.refresh":{message:`更新`,description:`ボタン:現在のディレクトリを再読み込み`},"directory.pathPlaceholder":{message:`パスを入力(例: D:\\)してエンター`,description:`編集可能なディレクトリパス入力のプレースホルダー`},"directory.go":{message:`移動`,description:`ボタン: 入力したディレクトリパスに移動する`},"directory.loading":{message:`読み込み中…`,description:`ディレクトリ一覧読み込み中のヒント`},"directory.empty":{message:`このディレクトリは空です。`,description:`空のディレクトリのヒント`},"directory.truncated":{message:`最初の 1000 件を表示しています。`,description:`一覧が切り詰められた場合に表示されるヒント`},"session.attachImage":{message:`画像を添付`,description:`画像添付ボタンのタイトル`},"session.removeImage":{message:`画像を削除`,description:`添付画像削除ボタンのタイトル`},"session.imageAlt":{message:`添付された画像`,description:`添付画像サムネイルの代替テキスト`},"session.imageTooLarge":{message:`画像が大きすぎます。1 枚あたり 12 MB 以内にしてください。`,description:`画像がサイズ制限を超えた場合の警告`},"session.imageLimit":{message:`画像は最大 {count} 枚まで添付できます。`,description:`添付画像の最大数を超えた場合の警告`},"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:`ファイルが大きすぎます。各ファイルは50MB以下にしてください。`,description:`ファイルが大きすぎます(各50MB以下にしてください)`},"session.attachmentLimit":{message:`{count}個まで添付できます。`,description:`{count}個まで添付できます`},"session.attachmentUploadError":{message:`添付ファイルのアップロードに失敗しました。`,description:`添付ファイルのアップロードに失敗しました`},"notice.slashUnavailable":{message:`/{command} は対話型コマンドのため、リモートセッションでは実行できません。`,description:`スラッシュコマンドがリモートセッションで実行できない場合の通知`},"notice.slashCodexUnsupported":{message:`/{command} はリモートセッションの Codex では利用できません。`,description:`Codexスラッシュコマンドがリモートでサポートされていない場合の通知`},"notify.enable":{message:`通知を有効にする`,description:`通知がオフのときの通知ベルのツールチップ`},"notify.disable":{message:`通知を無効にする`,description:`通知がオンのときの通知ベルのツールチップ`},"notify.enabled":{message:`通知を有効にしました。セッションで承認が必要なときにお知らせします。`,description:`通知を有効にした後のトースト`},"notify.disabled":{message:`通知を無効にしました。`,description:`通知を無効にした後のトースト`},"notify.denied":{message:`通知がブロックされています。承認通知を受け取るにはブラウザの設定で許可してください。`,description:`通知権限が拒否された場合のトースト`},"notify.unsupported":{message:`このデバイスでは通知がサポートされていません。`,description:`通知がサポートされていない場合のトースト`},"notify.failed":{message:`通知設定を更新できませんでした。`,description:`通知の有効化または無効化でエラーが発生した場合のトースト`}};export{e as default};
@@ -0,0 +1 @@
1
+ var e={"nodeList.title":{message:`Appareils`,description:`Titre de la liste des appareils Coding Bridge`},"nodeList.refresh":{message:`Rafraîchir`,description:`Rafraîchir la liste des appareils`},"nodeList.pair":{message:`Appairer un appareil`,description:`Ouvre la boîte de dialogue d'appairage`},"nodeList.empty":{message:`Aucun appareil appairé.`,description:`Message lorsque la liste des appareils est vide`},"nodeList.pairFirst":{message:`Appairer le premier appareil`,description:`Bouton d'appairage dans l'état vide`},"nodeList.rename":{message:`Renommer`,description:`Rename a device`},"nodeList.renamePrompt":{message:`Donnez un nom à cet appareil. Le nom est synchronisé avec tous vos appareils connectés.`,description:`Rename device input prompt`},"nodeList.renameEmpty":{message:`Le nom ne peut pas être vide.`,description:`Rename device empty-name validation`},"nodeList.renameTooLong":{message:`Le nom doit comporter au maximum {max} caractères.`,description:`Rename device too-long validation`},"nodeList.renameSuccess":{message:`Appareil renommé.`,description:`Rename device success`},"nodeList.renameFailed":{message:`Échec du renommage de l’appareil.`,description:`Rename device failure`},"nodeList.remove":{message:`Retirer`,description:`Retirer un appareil`},"nodeList.removeConfirm":{message:`Retirer l'appareil « {name} » ? Vous devrez le réappairer après.`,description:`Confirmation pour retirer un appareil`},"nodeList.removeSuccess":{message:`L'appareil a été retiré.`,description:`Message de succès lors de la suppression d'un appareil`},"nodeList.removeFailed":{message:`Échec de la suppression de l'appareil.`,description:`Message d'échec lors de la suppression d'un appareil`},"status.online":{message:`En ligne`,description:`État en ligne de l'appareil`},"status.offline":{message:`Hors ligne`,description:`État hors ligne de l'appareil`},"connection.disconnected":{message:`Déconnecté`,description:`La connexion au relais a été interrompue`},"connection.connecting":{message:`Connexion en cours…`,description:`Le relais est en cours de connexion`},"connection.connected":{message:`Connecté`,description:`Le relais est connecté`},"connection.error":{message:`Erreur de connexion`,description:`Erreur lors de la connexion au relais`},"pair.title":{message:`Appairer un appareil`,description:`Titre de la boîte de dialogue d'appairage`},"pair.intro":{message:`Exécutez le proxy Coding Bridge sur votre ordinateur, puis saisissez le code d'appairage ici pour le contrôler depuis le web.`,description:`Introduction à la boîte de dialogue d'appairage`},"pair.step1":{message:`Installez le proxy (nécessite Python 3.10+):`,description:`Étape 1 de l'appairage`},"pair.step2":{message:`Démarrez et suivez les instructions :`,description:`Étape 2 de l'appairage`},"pair.step3":{message:`Entrez le code d'appairage affiché ci-dessous.`,description:`Étape 3 de l'appairage`},"pair.codePlaceholder":{message:`Code d'appairage`,description:`Placeholder pour le champ de saisie du code d'appairage`},"pair.claim":{message:`Appairer un appareil`,description:`Bouton de confirmation d'appairage`},"pair.success":{message:`L'appareil « {name} » a été appairé.`,description:`Message de succès lors de l'appairage`},"pair.invalidCode":{message:`Code d'appairage invalide ou expiré.`,description:`Erreur de code d'appairage invalide`},"pair.usedCode":{message:`Ce code de pair a déjà été utilisé.`,description:`Le code de pair a été utilisé.`},"pair.failed":{message:`Échec de l'appairage de l'appareil.`,description:`Erreur générale d'appairage`},"permission.title":{message:`Autorisation requise`,description:`Titre de la boîte de dialogue d'autorisation.`},"permission.subtitle":{message:`La demande d'agent utilise un outil, continuez après approbation.`,description:`Sous-titre de la boîte de dialogue d'autorisation.`},"permission.deny":{message:`Refuser`,description:`Refuser l'accès à l'outil.`},"permission.allow":{message:`Autoriser`,description:`Autoriser l'accès à l'outil.`},"session.noDevice":{message:`Sélectionnez un appareil pour commencer à coder.`,description:`Indication lorsque aucun appareil n'est sélectionné.`},"session.newSession":{message:`Nouvelle session`,description:`Commencer une nouvelle session.`},"session.deviceOffline":{message:`Cet appareil est hors ligne. Veuillez démarrer le proxy Coding Bridge sur cet appareil pour continuer.`,description:`Avertissement d'appareil hors ligne.`},"session.nodeId":{message:`ID de l'appareil`,description:`Diagnostic label for the node id`},"session.sessionId":{message:`ID de session`,description:`Diagnostic label for the session id`},"session.traceId":{message:`ID de trace`,description:`Diagnostic label for the trace id`},"session.startHint":{message:`Envoyez un message pour commencer la session sur cet appareil.`,description:`Indication pour un enregistrement vide`},"session.cwdPlaceholder":{message:`Répertoire de travail (optionnel)`,description:`Espace réservé pour le champ de saisie du répertoire de travail.`},"session.modelPlaceholder":{message:`Modèle (optionnel)`,description:`Espace réservé pour le champ de saisie du modèle.`},"session.promptPlaceholder":{message:`Envoyer un message à l'agent…`,description:`Espace réservé pour le champ de saisie de l'invite.`},"session.send":{message:`Envoyer`,description:`Bouton pour envoyer le message`},"session.voiceInput":{message:`Entrée vocale`,description:`Commencer à convertir la voix en mots`},"session.voiceStop":{message:`Arrêter l'entrée vocale`,description:`Arrêter la transcription vocale`},"session.voiceListening":{message:`Écoute en cours, vous pouvez éditer le texte après l'arrêt.`,description:`Indication dans le champ de saisie pendant la reconnaissance vocale`},"session.voiceStopping":{message:`Finalisation de la transcription vocale…`,description:`Attente du résultat final de la reconnaissance vocale`},"session.voicePermissionDenied":{message:`Autorisation du microphone refusée, veuillez autoriser dans les paramètres du système ou du navigateur et réessayer.`,description:`Autorisation du microphone refusée`},"session.voiceMicrophoneUnavailable":{message:`Microphone introuvable ou non disponible.`,description:`Microphone non disponible`},"session.voiceNoSpeech":{message:`Aucune voix détectée, veuillez réessayer.`,description:`La reconnaissance vocale n'a pas détecté de parole`},"session.voiceNetworkError":{message:`Le service de reconnaissance vocale est temporairement indisponible, veuillez vérifier votre réseau et réessayer.`,description:`Erreur réseau de reconnaissance vocale`},"session.voiceError":{message:`Échec de l'entrée vocale, veuillez réessayer.`,description:`Erreur générale de reconnaissance vocale`},"session.retry":{message:`Réessayer`,description:`Re-run the last prompt after a failure`},"session.editPrompt":{message:`Éditer`,description:`Modifier l'invite envoyée et la renvoyer comme une nouvelle.`},"session.editingBanner":{message:`En cours d'édition — l'envoi ramènera la conversation ici`,description:`Bannière affichée lors de l'édition d'une invite précédente.`},"session.editRestoreCode":{message:`Rétrograder également le code`,description:`Case à cocher pour également annuler les modifications de fichier lors de l'édition.`},"session.editCancel":{message:`Annuler`,description:`Annuler l'édition d'une invite précédente.`},"session.editSubmit":{message:`Mettre à jour`,description:`Soumettre une invite modifiée (rembobiner et relancer).`},"session.enterHint":{message:`Appuyez sur Entrée pour envoyer, Maj + Entrée pour un saut de ligne.`,description:`Indication au clavier pour le champ de saisie.`},"transcript.turnFailed":{message:`Échec de l'exécution`,description:`Étiquette de résultat de tour échoué`},"transcript.turnDone":{message:`Terminé`,description:`Étiquette de résultat de tour terminé`},"transcript.todoProgress":{message:`Terminé {done}/{total}`,description:`Progrès de la liste de tâches`},"transcript.todoOverflow":{message:`…il y a {count} éléments supplémentaires non affichés`,description:`Indication d'éléments supplémentaires dans la liste de tâches`},"transcript.todoCompleted":{message:`Terminé`,description:`Liste de tâches : état terminé (lecture accessible)`},"transcript.todoInProgress":{message:`En cours`,description:`Liste de tâches : état en cours (lecture accessible)`},"transcript.todoPending":{message:`À faire`,description:`Liste de tâches : état à faire (lecture accessible)`},"history.button":{message:`Historique`,description:`Open the conversation history drawer`},"history.title":{message:`Historique des conversations`,description:`History drawer title`},"history.intro":{message:`Sessions Claude Code, Codex et GitHub Copilot précédentes sur cet appareil.`,description:`History drawer intro`},"history.refresh":{message:`Actualiser`,description:`Reload the history list`},"history.loading":{message:`Chargement de l’historique…`,description:`History loading message`},"history.empty":{message:`Aucun historique trouvé sur cet appareil.`,description:`Empty history message`},"history.filterAll":{message:`Tout`,description:`Efface le filtre de source et affiche toutes les conversations.`},"history.filterEmpty":{message:`Aucune conversation sous le filtre actuel.`,description:`Message indiquant qu'aucun résultat n'est disponible après le filtrage.`},"history.messages":{message:`{count} messages`,description:`Nombre de messages dans l'historique`},"history.readonly":{message:`Cette conversation Codex est en lecture seule et ne peut pas être poursuivie. Démarrez une nouvelle session pour continuer à coder.`,description:`Read-only replay notice`},"history.running":{message:`En cours`,description:`Marks a history conversation that is currently live on the device`},"history.unread":{message:`Non lu`,description:`Indicateur pour les sessions historiques terminées mais non consultées par l'utilisateur`},"history.resumeHint":{message:`Envoyer un message reprendra cette conversation sur l’appareil.`,description:`Resume composer hint`},"history.claudeLabel":{message:`Historique Claude`,description:`Replayed Claude session label`},"history.codexLabel":{message:`Historique Codex (lecture seule)`,description:`Replayed Codex session label`},"session.permissionModeLabel":{message:`Mode d'autorisation`,description:`Permission-mode selector label`},"session.permissionModeDefault":{message:`Par défaut (demander à chaque fois)`,description:`Permission mode: ask before each tool use`},"session.permissionModeAcceptEdits":{message:`Accepter automatiquement les modifications`,description:`Permission mode: auto-accept file edits`},"session.permissionModePlan":{message:`Mode plan (lecture seule)`,description:`Permission mode: read-only planning`},"session.permissionModeBypass":{message:`Ignorer toutes les autorisations`,description:`Permission mode: bypass all permission prompts`},"session.providerLabel":{message:`Backend`,description:`Étiquette du sélecteur d'agent backend`},"session.providerClaude":{message:`Claude Code`,description:`Backend option: Claude Code`},"session.providerCodex":{message:`Codex`,description:`Backend option: Codex`},"session.providerUnavailable":{message:`(non installé)`,description:`Suffix shown next to a backend whose CLI is not installed on the node`},"session.providerUnavailableHint":{message:`{name} n'est pas installé sur cet appareil.`,description:`Composer hint shown when the selected backend is not installed on the node`},"session.effortLabel":{message:`Effort de raisonnement`,description:`Reasoning-effort selector label`},"session.effortDefault":{message:`Par défaut`,description:`Reasoning effort: backend default`},"session.effortLow":{message:`Faible`,description:`Reasoning effort: low`},"session.effortMedium":{message:`Moyen`,description:`Reasoning effort: medium`},"session.effortHigh":{message:`Élevé`,description:`Reasoning effort: high`},"session.effortMax":{message:`Maximum`,description:`Reasoning effort: maximum (Claude only)`},"directory.title":{message:`Choisir le répertoire de travail`,description:`Working-directory picker dialog title`},"directory.choose":{message:`Utiliser ce répertoire`,description:`Button: select the current directory`},"directory.up":{message:`Répertoire parent`,description:`Button: go to the parent directory`},"directory.refresh":{message:`Actualiser`,description:`Button: reload the current directory`},"directory.pathPlaceholder":{message:`Entrez le chemin (par exemple D:\\) puis appuyez sur Entrée`,description:`Espace réservé pour le champ de saisie du chemin de répertoire modifiable`},"directory.go":{message:`Aller`,description:`Bouton : naviguer vers le chemin de répertoire saisi`},"directory.loading":{message:`Chargement…`,description:`Directory listing loading hint`},"directory.empty":{message:`Ce répertoire est vide.`,description:`Empty directory hint`},"directory.truncated":{message:`Affichage des 1000 premières entrées.`,description:`Hint shown when the listing was truncated`},"session.attachImage":{message:`Joindre une image`,description:`Attach image button title`},"session.removeImage":{message:`Supprimer l'image`,description:`Remove attached image button title`},"session.imageAlt":{message:`Image jointe`,description:`Attached image thumbnail alt text`},"session.imageTooLarge":{message:`L'image est trop volumineuse ; gardez chacune sous 12 Mo.`,description:`Warning shown when an image exceeds the size limit`},"session.imageLimit":{message:`Vous pouvez joindre jusqu'à {count} images.`,description:`Warning shown when exceeding the max number of images`},"session.modelDefault":{message:`Modèle par défaut`,description:`Modèle par défaut.`},"session.cwdDefault":{message:`Répertoire par défaut`,description:`Répertoire par défaut.`},"session.settings":{message:`Paramètres de la session`,description:`Paramètres de la session`},"session.settingsLocked":{message:`Les paramètres de cette session sont verrouillés`,description:`Les paramètres sont verrouillés pour cette session`},"session.attachFile":{message:`Ajouter un fichier`,description:`Ajouter un fichier.`},"session.attachmentImageAlt":{message:`Image jointe`,description:`Image jointe.`},"session.removeAttachment":{message:`Retirer l'attachement`,description:`Retirer l'attachement`},"session.uploadingAttachment":{message:`Téléchargement de l'attachement…`,description:`Téléchargement des attachements…`},"session.attachmentTooLarge":{message:`Fichier trop volumineux, veuillez garder chaque fichier en dessous de 50 Mo.`,description:`Le fichier est trop volumineux ; gardez chaque fichier en dessous de 50 Mo.`},"session.attachmentLimit":{message:`Vous pouvez joindre jusqu'à {count} fichiers.`,description:`Vous pouvez joindre jusqu'à {count} fichiers.`},"session.attachmentUploadError":{message:`Échec de l'upload de l'attachement.`,description:`Échec de l'upload de l'attachement.`},"notice.slashUnavailable":{message:`/{command} est une commande interactive et ne peut pas s'exécuter dans une session distante.`,description:`Notice shown when a slash command can't run in a remote session`},"notice.slashCodexUnsupported":{message:`/{command} n'est pas disponible pour Codex dans une session distante.`,description:`Notice shown when a Codex slash command isn't supported remotely`},"notify.enable":{message:`Activer les notifications`,description:`Tooltip on the notification bell when notifications are off`},"notify.disable":{message:`Désactiver les notifications`,description:`Tooltip on the notification bell when notifications are on`},"notify.enabled":{message:`Notifications activées. Nous vous préviendrons lorsqu'une session nécessite une approbation.`,description:`Toast after enabling notifications`},"notify.disabled":{message:`Notifications désactivées.`,description:`Toast after disabling notifications`},"notify.denied":{message:`Les notifications sont bloquées. Autorisez-les dans les paramètres de votre navigateur pour recevoir les alertes d'approbation.`,description:`Toast when notification permission is denied`},"notify.unsupported":{message:`Les notifications ne sont pas prises en charge sur cet appareil.`,description:`Toast when notifications are unsupported`},"notify.failed":{message:`Impossible de mettre à jour les paramètres de notification.`,description:`Toast when enabling or disabling notifications errors`}};export{e as default};
@@ -0,0 +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:`Статус relay-соединения: отключено`},"connection.connecting":{message:`Подключение…`,description:`Статус relay-соединения: подключение`},"connection.connected":{message:`Подключено`,description:`Статус relay-соединения: подключено`},"connection.error":{message:`Ошибка подключения`,description:`Ошибка relay-соединения`},"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:`Баннер при редактировании предыдущего запроса`},"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:`Открывает панель истории разговоров`},"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:`Метка выбора режима разрешений`},"session.permissionModeDefault":{message:`По умолчанию (спрашивать каждый раз)`,description:`Режим разрешений: спрашивать перед каждым использованием инструмента`},"session.permissionModeAcceptEdits":{message:`Автоматически принимать правки`,description:`Режим разрешений: автоматически принимать правки файлов`},"session.permissionModePlan":{message:`Режим планирования (только чтение)`,description:`Режим разрешений: планирование только для чтения`},"session.permissionModeBypass":{message:`Обойти все разрешения`,description:`Режим разрешений: обход всех запросов разрешений`},"session.providerLabel":{message:`Бэкенд`,description:`Метка выбора бэкенда агента`},"session.providerClaude":{message:`Claude Code`,description:`Параметр бэкенда: Claude Code`},"session.providerCodex":{message:`Codex`,description:`Параметр бэкенда: Codex`},"session.providerUnavailable":{message:`(не установлено)`,description:`Суффикс для бэкенда, CLI которого не установлен на устройстве`},"session.providerUnavailableHint":{message:`{name} не установлен на этом устройстве.`,description:`Подсказка, когда выбранный бэкенд не установлен на устройстве`},"session.effortLabel":{message:`Уровень рассуждений`,description:`Метка выбора уровня рассуждений`},"session.effortDefault":{message:`По умолчанию`,description:`Уровень рассуждений: значение бэкенда по умолчанию`},"session.effortLow":{message:`Низкий`,description:`Уровень рассуждений: низкий`},"session.effortMedium":{message:`Средний`,description:`Уровень рассуждений: средний`},"session.effortHigh":{message:`Высокий`,description:`Уровень рассуждений: высокий`},"session.effortMax":{message:`Максимальный`,description:`Уровень рассуждений: максимальный (только Claude)`},"directory.title":{message:`Выберите рабочий каталог`,description:`Заголовок диалога выбора рабочего каталога`},"directory.choose":{message:`Использовать этот каталог`,description:`Кнопка выбора текущего каталога`},"directory.up":{message:`Родительский каталог`,description:`Кнопка перехода в родительский каталог`},"directory.refresh":{message:`Обновить`,description:`Кнопка обновления текущего каталога`},"directory.pathPlaceholder":{message:`Введите путь (например, D:\\) и нажмите Enter`,description:`Заполнитель для редактируемого ввода пути директории`},"directory.go":{message:`Перейти`,description:`Кнопка: перейти к введенному пути директории`},"directory.loading":{message:`Загрузка…`,description:`Подсказка при загрузке списка каталогов`},"directory.empty":{message:`Этот каталог пуст.`,description:`Подсказка для пустого каталога`},"directory.truncated":{message:`Показаны первые 1000 записей.`,description:`Подсказка при усечённом списке`},"session.attachImage":{message:`Прикрепить изображение`,description:`Кнопка прикрепления изображения`},"session.removeImage":{message:`Удалить изображение`,description:`Кнопка удаления прикреплённого изображения`},"session.imageAlt":{message:`Прикреплённое изображение`,description:`Alt-текст миниатюры прикреплённого изображения`},"session.imageTooLarge":{message:`Изображение слишком большое; размер каждого должен быть меньше 12 МБ.`,description:`Предупреждение, когда изображение превышает допустимый размер`},"session.imageLimit":{message:`Можно прикрепить до {count} изображений.`,description:`Предупреждение при превышении максимального числа изображений`},"session.modelDefault":{message:`Модель по умолчанию`,description:`Модель по умолчанию`},"session.cwdDefault":{message:`Каталог по умолчанию`,description:`Каталог по умолчанию`},"session.settings":{message:`Настройки сессии`,description:`Настройки сессии`},"session.settingsLocked":{message:`Настройки этой сессии заблокированы`,description:`Настройки этой сессии заблокированы`},"session.attachFile":{message:`Прикрепить файл`,description:`Кнопка прикрепления файла`},"session.attachmentImageAlt":{message:`Прикреплённое изображение`,description:`Alt-текст прикреплённого изображения`},"session.removeAttachment":{message:`Удалить вложение`,description:`Удаление вложения`},"session.uploadingAttachment":{message:`Загрузка вложений…`,description:`Сообщение о загрузке вложений`},"session.attachmentTooLarge":{message:`Файл слишком большой: размер каждого файла должен быть меньше 50 МБ.`,description:`Предупреждение, когда файл превышает допустимый размер`},"session.attachmentLimit":{message:`Можно прикрепить до {count} файлов.`,description:`Предупреждение при превышении максимального числа файлов`},"session.attachmentUploadError":{message:`Не удалось загрузить вложение.`,description:`Ошибка загрузки вложения`},"notice.slashUnavailable":{message:`/{command} — интерактивная команда, её нельзя выполнить в удалённом сеансе.`,description:`Уведомление, когда slash-команду нельзя выполнить в удалённой сессии`},"notice.slashCodexUnsupported":{message:`/{command} недоступна для Codex в удалённом сеансе.`,description:`Уведомление, когда slash-команда Codex не поддерживается удалённо`},"notify.enable":{message:`Включить уведомления`,description:`Подсказка на значке уведомлений, когда уведомления выключены`},"notify.disable":{message:`Отключить уведомления`,description:`Подсказка на значке уведомлений, когда уведомления включены`},"notify.enabled":{message:`Уведомления включены. Мы сообщим, когда сессии потребуется подтверждение.`,description:`Уведомление после включения уведомлений`},"notify.disabled":{message:`Уведомления отключены.`,description:`Уведомление после выключения уведомлений`},"notify.denied":{message:`Уведомления заблокированы. Разрешите их в настройках браузера, чтобы получать оповещения о подтверждении.`,description:`Уведомление, когда разрешение на уведомления отклонено`},"notify.unsupported":{message:`Уведомления не поддерживаются на этом устройстве.`,description:`Уведомление, когда уведомления не поддерживаются`},"notify.failed":{message:`Не удалось обновить настройки уведомлений.`,description:`Уведомление об ошибке при изменении настроек уведомлений`}};export{e as default};
@@ -0,0 +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,2 +1,2 @@
1
- import{h as e}from"./models-D_Ijt5J2.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,T as m,U as h,V as g,W as _,_ as v,a as y,b as re,c as b,d as ie,f as x,g as S,h as C,ha as w,i as T,j as ae,k as oe,l as se,m as ce,n as E,o as D,p as O,r as k,s as A,t as j,u as M,v as N,w as P,x as F,y as I,z as L}from"./constants-DQiaG9QL.js";import{Ai as R,Mn as z,pa as B,ua as V}from"./index-DhsoJc0z.js";import{a as H,i as U,n as W,o as G,r as le}from"./codingBridgeNotify-C3UvYyZR.js";function ue(e,t){e.sessions[t.session_id]={...e.sessions[t.session_id],...t},e.events[t.session_id]??=[]}function de(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 fe(e,t){e.events[t.session_id]??=[],e.events[t.session_id].push(t)}function pe(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 me(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 he(e,t){for(let n of e.events[t]??[])n.streaming&&=!1}function ge(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 _e=()=>typeof crypto<`u`&&typeof crypto.randomUUID==`function`?crypto.randomUUID().replace(/-/g,``):`${Date.now().toString(16)}${Math.random().toString(16).slice(2)}`,ve=()=>{try{return typeof localStorage<`u`&&localStorage.getItem(`cbDebug`)===`1`}catch{return!1}},K=(e,t)=>{if(!ve())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})},ye=class{ws;token;handlers;reconnectDelay=s;reconnectTimer;closedByUser=!1;constructor(e,t){this.token=e,this.handlers=t}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=`${w}?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 h: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 g:this.handlers.onNodeRenamed?.(r.node_id,r.name);break;case v: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,_)}sendEnvelope(e,t){if(!this.isOpen)return;let n={v:2,id:_e(),ts:Date.now(),type:e,...t};K(`send`,n),this.ws?.send(JSON.stringify(n))}sendToNode(e,t){this.sendEnvelope(S,{node_id:e,payload:t})}listNodes(){this.sendEnvelope(ce,{})}resume(e){this.sendEnvelope(C,{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:{}}},be=e=>{let t=X(e).answers??{};return Object.entries(t).map(([e,t])=>`${e} → ${Array.isArray(t)?t.join(`, `):t}`).join(`
1
+ import{h as e}from"./models-CwklOk8Z.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,T as m,U as h,V as g,W as _,_ as v,a as y,b as re,c as b,d as ie,f as x,g as S,h as C,ha as w,i as T,j as ae,k as oe,l as se,m as ce,n as E,o as D,p as O,r as k,s as A,t as j,u as M,v as N,w as P,x as F,y as I,z as L}from"./constants-DlrPFkyM.js";import{Ai as R,Mn as z,pa as B,ua as V}from"./index-BOCSBfUe.js";import{a as H,i as U,n as W,o as G,r as le}from"./codingBridgeNotify-CDQKwxBX.js";function ue(e,t){e.sessions[t.session_id]={...e.sessions[t.session_id],...t},e.events[t.session_id]??=[]}function de(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 fe(e,t){e.events[t.session_id]??=[],e.events[t.session_id].push(t)}function pe(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 me(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 he(e,t){for(let n of e.events[t]??[])n.streaming&&=!1}function ge(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 _e=()=>typeof crypto<`u`&&typeof crypto.randomUUID==`function`?crypto.randomUUID().replace(/-/g,``):`${Date.now().toString(16)}${Math.random().toString(16).slice(2)}`,ve=()=>{try{return typeof localStorage<`u`&&localStorage.getItem(`cbDebug`)===`1`}catch{return!1}},K=(e,t)=>{if(!ve())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})},ye=class{ws;token;handlers;reconnectDelay=s;reconnectTimer;closedByUser=!1;constructor(e,t){this.token=e,this.handlers=t}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=`${w}?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 h: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 g:this.handlers.onNodeRenamed?.(r.node_id,r.name);break;case v: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,_)}sendEnvelope(e,t){if(!this.isOpen)return;let n={v:2,id:_e(),ts:Date.now(),type:e,...t};K(`send`,n),this.ws?.send(JSON.stringify(n))}sendToNode(e,t){this.sendEnvelope(S,{node_id:e,payload:t})}listNodes(){this.sendEnvelope(ce,{})}resume(e){this.sendEnvelope(C,{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:{}}},be=e=>{let t=X(e).answers??{};return Object.entries(t).map(([e,t])=>`${e} → ${Array.isArray(t)?t.join(`, `):t}`).join(`
2
2
  `)},xe=(e,t)=>{W({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)})},Se=(n,s,c,h,g)=>{let _=h?.event,v=h?.session_id,y=h?.trace_id,b=h?.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:h.cwd,model:h.model,resolved_model:h.resolved_model,...h.effort===void 0?{}:{effort:h.effort},...h.permission_mode===void 0?{}:{permission_mode:h.permission_mode},trace_id:y});break;case p:{let e=h.sdk_session_id;v&&e&&e!==v&&n(`renameSession`,{from:v,to:e});break}case o:{let e=h.id;e&&c.events[v]?.find(t=>t.kind===`text`&&t.stream_id===e)?n(`appendDelta`,{session_id:v,stream_id:e,text:h.text??``}):n(`appendEvent`,Y(v,`text`,{text:h.text??``,stream_id:e,streaming:!0,trace_id:y}));break}case ee:{let e=h.id;e&&c.events[v]?.find(t=>t.kind===`text`&&t.stream_id===e)?n(`finalizeStream`,{session_id:v,stream_id:e,text:h.text}):n(`appendEvent`,Y(v,`text`,{text:h.text,trace_id:y}));break}case l:n(`appendEvent`,Y(v,`thinking`,{text:h.text,trace_id:y}));break;case te:n(`appendEvent`,Y(v,`tool_use`,{tool:h.tool,tool_use_id:h.tool_use_id,input:h.input,trace_id:y}));break;case u:n(`appendEvent`,Y(v,`tool_result`,{tool_use_id:h.tool_use_id,content:h.content,is_error:h.is_error,trace_id:y}));break;case r:n(`addPermission`,{request_id:h.request_id,session_id:v,node_id:g,tool:h.tool,input:h.input,title:h.title,display_name:h.display_name,description:h.description}),xe(s,{node_id:g,session_id:v,request_id:h.request_id,tool:h.display_name||h.title||h.tool});break;case ne:for(let e of h.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 P:n(`removePermission`,h.request_id);break;case t:n(`finalizeAllStreams`,{session_id:v}),n(`appendEvent`,Y(v,`result`,{subtype:h.subtype,is_error:h.is_error,text:h.result,cost_usd:h.cost_usd,cut_uuid:h.cut_uuid,sdk_session_id:h.sdk_session_id,trace_id:y})),n(`updateSession`,{session_id:v,status:`idle`,cost_usd:h.cost_usd});break;case oe:n(`appendEvent`,Y(v,`notice`,{text:h.text,subtype:h.code,command:h.command,level:h.level}));break;case i:n(`finalizeAllStreams`,{session_id:v}),n(`appendEvent`,Y(v,`error`,{text:h.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 ae:n(`rewindToCut`,{session_id:v,cut_uuid:h.cut_uuid}),h.prompt&&n(`appendEvent`,Y(v,`prompt`,{text:h.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 m:for(let e of h.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 F:if(g){n(`setHistory`,{node_id:g,sessions:h.sessions??[]}),n(`updateStatus`,{key:`getHistory`,value:e.Success});let t=c.historyRef;t&&t.node_id===g&&!c.currentSessionId&&s(`reattachSession`,t)}break;case re:Ce(n,c,h,g),n(`updateStatus`,{key:`getHistoryDetail`,value:e.Success});break;case I:n(`setDirectory`,{path:h.path,parent:h.parent??null,sep:h.sep??`/`,entries:h.entries??[],truncated:h.truncated,error:h.error});break;case N:g&&n(`setCapabilities`,{node_id:g,capabilities:{providers:h.providers??[]}});break;default:break}},Ce=(e,t,n,r)=>{let i=n?.session_id,a=we(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})},we=e=>e===`codex`||e===`copilot`?e:`claude`,Z=0,Q=new Map,Te=({commit:e})=>{Q.clear(),e(`resetAll`)},Ee=async()=>{},De=async()=>{},Oe=(e,t,n)=>{e(`setNodeName`,{node_id:t,name:n})},$={namespaced:!0,state:R,mutations:{resetAll:e=>{Object.assign(e,R())},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)=>{ue(e,t)},updateSession:(e,t)=>{let n=e.sessions[t.session_id];n&&(e.sessions[t.session_id]={...n,...t})},renameSession:(e,t)=>{de(e,t.from,t.to),e.historyRef?.session_id===t.from&&(e.historyRef={...e.historyRef,session_id:t.to})},appendEvent:(e,t)=>{fe(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)=>{ge(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)=>{pe(e,t.session_id,t.stream_id,t.text)},finalizeStream:(e,t)=>{me(e,t.session_id,t.stream_id,t.text)},finalizeAllStreams:(e,t)=>{he(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:Te,getApplications:Ee,setApplication:De,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 z.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 z.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 z.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 z.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})=>{let i=r.token?.access;i&&(q?.isOpen||(q?.close(),e(`setConnection`,`connecting`),q=new ye(i,{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)=>Se(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)=>{Oe(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:b})},requestPendingPermissions:({state:e},t)=>{let n=t??e.currentNodeId;!n||!q||q.sendToNode(n,{action:D})},enableNotifications:async({dispatch:e,rootState:t})=>{let n=t.token?.access;if(!n)return`unsupported`;if(B()){let t=await le(t=>{t?.node_id&&(e(`selectNode`,t.node_id),e(`requestPendingPermissions`,t.node_id))});return t?(await z.savePushSubscription({kind:V()?`apns`:`fcm`,token:t,ua:navigator.userAgent},{token:n}),`enabled`):`denied`}let r=await U();if(r===`unsupported`)return`unsupported`;if(r!==`granted`)return`denied`;try{let{data:e}=await z.getPushConfig();if(e.web_push_enabled&&e.vapid_public_key){let t=await H(e.vapid_public_key);t&&await z.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(B()||!t)return;let n=await G();if(n)try{await z.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:O,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||`bypassPermissions`,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:x,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:M,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:se,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:A,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:A,request_id:n.request_id,decision:`allow`,answer:X(n.output),answer_text:be(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:T,limit:L}))},getHistoryDetail:({commit:t},n)=>{!n?.node_id||!n?.session_id||!q||(t(`updateStatus`,{key:`getHistoryDetail`,value:e.Request}),q.sendToNode(n.node_id,{action:k,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:y,provider:t.provider,session_id:t.session_id,updated_at:t.updated_at,limit:L})},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:E,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:j})}}};export{$ as codingBridge,$ as default};
@@ -0,0 +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:`節點 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:`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:`開啟歷史會話抽屜`},"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:`可編輯目錄路徑輸入框的佔位符`},"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 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};