@acedatacloud/nexior 3.300.0 → 3.301.1

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 (174) hide show
  1. package/dist/assets/{ApiCodeButton-WTDv4Iht.js → ApiCodeButton-iFdKrmjW.js} +1 -1
  2. package/dist/assets/{AskUserQuestionCard-Bf9Jn0UW.js → AskUserQuestionCard-BWesIV3E.js} +1 -1
  3. package/dist/assets/{Auth-Be66KI1Q.js → Auth-C5WPT1S4.js} +1 -1
  4. package/dist/assets/{Bare-BZgC5upU.js → Bare-rgmRJDC_.js} +1 -1
  5. package/dist/assets/BotPlaceholder-DDwaLEFg.js +1 -0
  6. package/dist/assets/{BottomFooter-XU5dsYcK.js → BottomFooter--7kxUgbQ.js} +1 -1
  7. package/dist/assets/{Callback-CoRdynJ-.js → Callback-Tvivporw.js} +1 -1
  8. package/dist/assets/{CodeSnippet-ClimqwIC.js → CodeSnippet-BPdOoWnX.js} +1 -1
  9. package/dist/assets/{Console-DvnqTdFe.js → Console-TtY2KdhY.js} +1 -1
  10. package/dist/assets/{Consumption-e7sLU4co.js → Consumption-CjN6Uzvy.js} +1 -1
  11. package/dist/assets/{Conversation-vV-Zwuhz.js → Conversation-Bt8-w6IR.js} +1 -1
  12. package/dist/assets/{CopyToClipboard-DEgxx40e.js → CopyToClipboard--OaZthmC.js} +1 -1
  13. package/dist/assets/{Detail-Cc19auAT.js → Detail-DNX-mRbQ.js} +2 -2
  14. package/dist/assets/{Extra-BaFWM-wd.js → Extra-B0yLuPM5.js} +1 -1
  15. package/dist/assets/{FilePreview-CGvPLzHy.js → FilePreview-DhArySz6.js} +1 -1
  16. package/dist/assets/{Hailuo-Beyy6ejN.js → Hailuo-CNiXmupe.js} +1 -1
  17. package/dist/assets/{History-BZM_qRBQ.js → History-CgYlGbkR.js} +1 -1
  18. package/dist/assets/{ImagePreview-F142hGFg.js → ImagePreview-B-qjuW-u.js} +1 -1
  19. package/dist/assets/{ImageWrapper-zGvmIrLR.js → ImageWrapper-Bqi9W8z2.js} +1 -1
  20. package/dist/assets/{Index-DSG6qDO6.js → Index-3bI0G4RL.js} +1 -1
  21. package/dist/assets/{Index-CxDFrRgq.js → Index-4AFtULKm.js} +1 -1
  22. package/dist/assets/{Index-BEIV3ksK.js → Index-6_FGVUl0.js} +1 -1
  23. package/dist/assets/{Index-CgOAzpMZ.js → Index-AvrwYK-e.js} +1 -1
  24. package/dist/assets/{Index-CqvXGMlk.js → Index-BNL2qK8q.js} +1 -1
  25. package/dist/assets/{Index-FhPeKySj.js → Index-BOYcErqE.js} +1 -1
  26. package/dist/assets/{Index-dBGqYV0o.js → Index-BQPhPe97.js} +1 -1
  27. package/dist/assets/{Index-B6tKblGW.css → Index-BX0ClxT-.css} +1 -1
  28. package/dist/assets/{Index-FIE4WtPH.js → Index-BXsuB4Bq.js} +1 -1
  29. package/dist/assets/{Index-DEoFEF-W.js → Index-BaQm-Nd_.js} +1 -1
  30. package/dist/assets/{Index-CoC9avN9.js → Index-Bq4Z3JOn.js} +1 -1
  31. package/dist/assets/{Index-8AEFpLEs.js → Index-C2zBQ6kM.js} +1 -1
  32. package/dist/assets/Index-C6bivWJf.js +1 -0
  33. package/dist/assets/{Index-Ckgdz9vg.js → Index-C6de71gX.js} +1 -1
  34. package/dist/assets/{Index-n6ngR1a9.js → Index-CHZJfA1w.js} +1 -1
  35. package/dist/assets/{Index-Cjy6bWBi.js → Index-C_crgw34.js} +1 -1
  36. package/dist/assets/{Index-4kaeLFwi.js → Index-Cc8oS9QC.js} +1 -1
  37. package/dist/assets/{Index-BFTyNy6y.js → Index-Ci85gQCQ.js} +1 -1
  38. package/dist/assets/{Index-B4T4dOOj.js → Index-DIK-XcJc.js} +1 -1
  39. package/dist/assets/{Index-dndc_R8o.js → Index-DT6BbbZf.js} +1 -1
  40. package/dist/assets/{Index-BlsyfYkn.js → Index-Da3EO7jQ.js} +1 -1
  41. package/dist/assets/{Index-DTBuBbA5.js → Index-DsFF87OK.js} +1 -1
  42. package/dist/assets/{Index-D4OQjPcy.js → Index-Dy2aMgh_.js} +1 -1
  43. package/dist/assets/{Index-FtcY3gTS.js → Index-H-XLT04-.js} +1 -1
  44. package/dist/assets/{Index-CjYULHMJ.js → Index-MgRFF2mB.js} +1 -1
  45. package/dist/assets/{Index-CpuuFXEY.js → Index-RTQZ0HbN.js} +1 -1
  46. package/dist/assets/{Index-CzEztk_D.js → Index-_0oXc8_l.js} +1 -1
  47. package/dist/assets/{Index-B2yusFeT.js → Index-ct4mBIZF.js} +1 -1
  48. package/dist/assets/{Index-lS_2mPNb.js → Index-p6DMsAbs.js} +1 -1
  49. package/dist/assets/{Invitees-xNxfqhS0.js → Invitees-CHgw_eZz.js} +1 -1
  50. package/dist/assets/{List-BLoqUujC.js → List-CP9lK7j-.js} +1 -1
  51. package/dist/assets/{List-CWRnzqyj.js → List-CZIs9LCD.js} +1 -1
  52. package/dist/assets/{List-C5qAtFum.js → List-ChctTTqw.js} +1 -1
  53. package/dist/assets/{LocalTools-i1svYxDG.js → LocalTools-39Zu2TFP.js} +1 -1
  54. package/dist/assets/{LocalTools-CWP5b9ZS.js → LocalTools-BCFL1PK0.js} +1 -1
  55. package/dist/assets/{Main-3hIW53Kw.js → Main-iJSRg0w1.js} +1 -1
  56. package/dist/assets/{Model-CpgF5o3d.js → Model-xbwbX9cH.js} +1 -1
  57. package/dist/assets/{Navigator-CZfRgbR5.js → Navigator-DJZmsUBr.js} +1 -1
  58. package/dist/assets/{NoTasks-CYkJOw8y.js → NoTasks-CaxUABsC.js} +1 -1
  59. package/dist/assets/{NotFound-BaCpJ25c.js → NotFound-BFvv0cg5.js} +1 -1
  60. package/dist/assets/{Pagination-DnFtnl0t.js → Pagination-CLkPRwsW.js} +1 -1
  61. package/dist/assets/{Pay-Cs8u0KSj.js → Pay-SZc31z0v.js} +1 -1
  62. package/dist/assets/{Player-BRcnbTEz.js → Player-D6mIQooU.js} +1 -1
  63. package/dist/assets/{PromptTextarea-BfV8-ItH.js → PromptTextarea-CBKbo1eg.js} +1 -1
  64. package/dist/assets/{RealtimeCall-CEldqbJo.js → RealtimeCall-Q5vY1PFN.js} +1 -1
  65. package/dist/assets/{ScheduledTasks-9Vjn8PbS.js → ScheduledTasks-DZRvSmmy.js} +1 -1
  66. package/dist/assets/{Status-2Q2Ssc-n.js → Status-CZsJ1VOT.js} +1 -1
  67. package/dist/assets/{Subscribe-OYuL2wuT.js → Subscribe-CJy3gzAj.js} +1 -1
  68. package/dist/assets/{TabSwitcher-Bc2_upAi.js → TabSwitcher-UX76QX5N.js} +1 -1
  69. package/dist/assets/{Tts-TyuJOp-U.js → Tts-D9S8f5Bc.js} +1 -1
  70. package/dist/assets/{VideoPlayer-A609aNVM.js → VideoPlayer-DcpZ-TkF.js} +1 -1
  71. package/dist/assets/{avatar-ChpTqLRZ.js → avatar-DVT47DDh.js} +1 -1
  72. package/dist/assets/{basic-DHIALzfB.js → basic-xclnoZ63.js} +1 -1
  73. package/dist/assets/{chat-trbEuBMh.js → chat-BSZ80DzO.js} +1 -1
  74. package/dist/assets/{codingBridge-BRG_mmKB.js → codingBridge-tRJkO41x.js} +1 -1
  75. package/dist/assets/{codingBridgeNotify-Dstv5sbd.js → codingBridgeNotify-DsJeOFOx.js} +2 -2
  76. package/dist/assets/{collapse-DQkuygyb.js → collapse-BF0JonF5.js} +1 -1
  77. package/dist/assets/common-BD7RMY6h.js +1 -0
  78. package/dist/assets/common-BEmuj-dN.js +1 -0
  79. package/dist/assets/common-BLSj3N4Y.js +1 -0
  80. package/dist/assets/common-BSLEaPHL.js +1 -0
  81. package/dist/assets/common-BWvN9qW7.js +1 -0
  82. package/dist/assets/{common-DA4wbTAN.js → common-Bi4XTSQh.js} +1 -1
  83. package/dist/assets/common-CP4YHNZP.js +1 -0
  84. package/dist/assets/common-CV90Fqn_.js +1 -0
  85. package/dist/assets/common-CmJCEEtT.js +1 -0
  86. package/dist/assets/common-CqxBfNgZ.js +1 -0
  87. package/dist/assets/common-CsFlmHpd.js +1 -0
  88. package/dist/assets/common-CvLof8d7.js +1 -0
  89. package/dist/assets/common-D4UPrFza.js +1 -0
  90. package/dist/assets/common-D6oYnDog.js +1 -0
  91. package/dist/assets/common-DVNIxCxR.js +1 -0
  92. package/dist/assets/common-DbrPElXQ.js +1 -0
  93. package/dist/assets/common-DeorAYZG.js +1 -0
  94. package/dist/assets/common-MTBIk2I0.js +1 -0
  95. package/dist/assets/{constants-i23Cwi4Q.js → constants-TxsrYHvi.js} +1 -1
  96. package/dist/assets/{createTaskActions-C2p6j6kO.js → createTaskActions-D2qggEr1.js} +1 -1
  97. package/dist/assets/{date-picker-DWFqCSBu.js → date-picker-yh-c2_g5.js} +1 -1
  98. package/dist/assets/{digitalhuman-BXq_7XpO.js → digitalhuman-Dhkcx4W1.js} +1 -1
  99. package/dist/assets/{dropdown-DDDFiixH.js → dropdown-p8EExWX2.js} +1 -1
  100. package/dist/assets/{esm-BXvkRmAw.js → esm-0M4AV1gS.js} +1 -1
  101. package/dist/assets/esm-Bnb_NCCm.js +1 -0
  102. package/dist/assets/{esm-ZJoZfdYI.js → esm-CGBeoXuj.js} +3 -3
  103. package/dist/assets/{esm-DALZr8Jl.js → esm-CKxzegnX.js} +2 -2
  104. package/dist/assets/{esm-11x56KwF.js → esm-CdwDjXX_.js} +1 -1
  105. package/dist/assets/{esm-DXwt7aes.js → esm-DWm314UR.js} +1 -1
  106. package/dist/assets/{esm-DONtpz69.js → esm-DmTGEkHR.js} +2 -2
  107. package/dist/assets/{fish-BaWvBYwM.js → fish-DDlp863y.js} +1 -1
  108. package/dist/assets/{flux-D0da1RlQ.js → flux-CdNzvZLk.js} +1 -1
  109. package/dist/assets/{grokvideo-DgCwtLRw.js → grokvideo-DmOcGjYt.js} +1 -1
  110. package/dist/assets/{hailuo-DFJVMlPW.js → hailuo-Bss6NJBr.js} +1 -1
  111. package/dist/assets/{headshots-BBYpE-AU.js → headshots-BDH6ttNC.js} +1 -1
  112. package/dist/assets/{image-D18T851F.js → image-8THZBhgY.js} +1 -1
  113. package/dist/assets/{index-D-URUWE_.js → index-C5HvewDI.js} +10 -10
  114. package/dist/assets/{index-C9sJvT6s.css → index-CLltCyMj.css} +1 -1
  115. package/dist/assets/{index.browser.esm-C7OTCgKk.js → index.browser.esm-DHDsRcem.js} +1 -1
  116. package/dist/assets/{index.es-50YkBvqU.js → index.es-CIKK67m-.js} +1 -1
  117. package/dist/assets/{input-number-D_QkK8Zm.js → input-number-BtPExP6c.js} +1 -1
  118. package/dist/assets/{kling-BermCu3h.js → kling-C8NPi6xl.js} +1 -1
  119. package/dist/assets/{luma-D5vTZ2_e.js → luma-BkMkfTsK.js} +1 -1
  120. package/dist/assets/{maestro-_drWkjvY.js → maestro-8YibA4UF.js} +1 -1
  121. package/dist/assets/{midjourney-B1hjfoTA.js → midjourney-CSN3zGYR.js} +1 -1
  122. package/dist/assets/{nanobanana-8mawtjI3.js → nanobanana-By-JGy8-.js} +1 -1
  123. package/dist/assets/{openaiimage-Bbv6RYg7.js → openaiimage-C26iwIrZ.js} +1 -1
  124. package/dist/assets/{pagination-DRI8MDHC.js → pagination-BHQgg2ag.js} +1 -1
  125. package/dist/assets/{pika-zPOXWSoH.js → pika-DFCIGo2U.js} +1 -1
  126. package/dist/assets/{pixverse-BzBl0uOq.js → pixverse-r4YesxDL.js} +1 -1
  127. package/dist/assets/{popover-BAmJBkUs.js → popover-CDRuCCk4.js} +1 -1
  128. package/dist/assets/{producer-icYY77ME.js → producer-DjQRaoUD.js} +1 -1
  129. package/dist/assets/{qrart-DziKGb6K.js → qrart-rTbmKWsL.js} +1 -1
  130. package/dist/assets/{realtime-Ch__Q_nG.js → realtime-fDiiGsqa.js} +1 -1
  131. package/dist/assets/{row-DoOtlz4m.js → row-dvFwsYJJ.js} +1 -1
  132. package/dist/assets/{seedance-CWMJIaji.js → seedance-DmYG5BA4.js} +1 -1
  133. package/dist/assets/{seedream-DnbOYzBH.js → seedream-D2AwX6Ck.js} +1 -1
  134. package/dist/assets/{select-B2-qazgo.js → select-BjExJ9Sd.js} +1 -1
  135. package/dist/assets/{serp-RhKizxTS.js → serp-Bh6OgndF.js} +1 -1
  136. package/dist/assets/{slider-I6kWgXsR.js → slider-Dtqa5c0Y.js} +1 -1
  137. package/dist/assets/{solana-wallets-Gdn0Y9r7.js → solana-wallets-86wo83nF.js} +2 -2
  138. package/dist/assets/{solana-wallets-vue-BoVl2J_D.js → solana-wallets-vue-mPdaV78J.js} +1 -1
  139. package/dist/assets/{sora-RD2HbmAP.js → sora-skCVUUBo.js} +1 -1
  140. package/dist/assets/{suno-B6fvji0p.js → suno-vww4R2Jl.js} +1 -1
  141. package/dist/assets/{switch-HL6gHC5_.js → switch-AKtVB3t5.js} +1 -1
  142. package/dist/assets/{tabs-D5hvBIr9.js → tabs-BiA5H9Gv.js} +1 -1
  143. package/dist/assets/{time-picker-DI3ioa42.js → time-picker-Dzsknnuc.js} +1 -1
  144. package/dist/assets/{upload-DKMgPHEM.js → upload-wOw5apdK.js} +1 -1
  145. package/dist/assets/{veo-DjGVbMqD.js → veo-DnZqlQsi.js} +1 -1
  146. package/dist/assets/{wan-D7kDCzKi.js → wan-BYFVYTFd.js} +1 -1
  147. package/dist/assets/{web-DarH-FGr.js → web-Bi15shxN.js} +1 -1
  148. package/dist/assets/{web-Ci-YiIGl.js → web-C7mpkpFv.js} +1 -1
  149. package/dist/assets/{web-B2tcur1G.js → web-DLXDVM9V.js} +1 -1
  150. package/dist/assets/{web-CkKuYGoB.js → web-DdfN3nld.js} +1 -1
  151. package/dist/assets/{web-cESTVKtC.js → web-wpejEcOR.js} +1 -1
  152. package/dist/assets/{webextrator-DkesLxxB.js → webextrator-kd1WflAh.js} +1 -1
  153. package/dist/index.html +3 -3
  154. package/package.json +1 -1
  155. package/dist/assets/BotPlaceholder-B7ASXPgo.js +0 -1
  156. package/dist/assets/Index-BonZ82cf.js +0 -1
  157. package/dist/assets/common-2fcZkR2X.js +0 -1
  158. package/dist/assets/common-B2noKXCJ.js +0 -1
  159. package/dist/assets/common-BDB2FW0K.js +0 -1
  160. package/dist/assets/common-BrjC4_bf.js +0 -1
  161. package/dist/assets/common-C7huZgxv.js +0 -1
  162. package/dist/assets/common-CNnHa1w2.js +0 -1
  163. package/dist/assets/common-CZ6hXCM-.js +0 -1
  164. package/dist/assets/common-Cmg3kt4Y.js +0 -1
  165. package/dist/assets/common-CnTxzprP.js +0 -1
  166. package/dist/assets/common-Cy5p0-Rf.js +0 -1
  167. package/dist/assets/common-D-yAkB79.js +0 -1
  168. package/dist/assets/common-DLvCiLSV.js +0 -1
  169. package/dist/assets/common-DXeqa5IW.js +0 -1
  170. package/dist/assets/common-DYB1Pjo5.js +0 -1
  171. package/dist/assets/common-DdCcc8Ca.js +0 -1
  172. package/dist/assets/common-Wu2Vw-3i.js +0 -1
  173. package/dist/assets/common-h9SfJ3U_.js +0 -1
  174. package/dist/assets/esm-C0hEn48P.js +0 -1
@@ -1 +0,0 @@
1
- import"./rolldown-runtime--c01j_DQ.js";import{$ as e,A as t,D as n,F as r,N as i,O as a,P as o,S as s,Vt as c,Wt as l,Z as u,b as d,dt as f,k as p,nt as m,tt as h,ut as g,y as _}from"./vendor-chart-BJCvKk8-.js";import{t as v}from"./button-BydTr5nV.js";import{t as y}from"./upload-DKMgPHEM.js";import{t as b}from"./checkbox-BC1X4B2U.js";import{t as x}from"./drawer-R6pcaap2.js";import{n as S,r as C,t as w}from"./dropdown-DDDFiixH.js";import{t as T}from"./popover-BAmJBkUs.js";import{n as E,t as D}from"./skeleton-BwNBivMN.js";import{Gt as O,Kr as k,Lr as A,O as j,Pr as M,Vt as N,Wr as P,Xr as F,ei as I,qr as L}from"./index-D-URUWE_.js";import"./vendor-highlight-BtIeKitL.js";import{t as R}from"./index.es-50YkBvqU.js";import{t as z}from"./CopyToClipboard-DEgxx40e.js";import{n as ee,t as te}from"./AskUserQuestionCard-Bf9Jn0UW.js";import{s as ne,t as re}from"./codingBridgeNotify-Dstv5sbd.js";import{t as ie}from"./CodeSnippet-ClimqwIC.js";var ae=r({name:`CodingBridgeNotificationToggle`,components:{ElButton:v,FontAwesomeIcon:R},data(){return{enabled:!1,busy:!1}},computed:{supported(){return P()||ne()}},mounted(){this.enabled=!P()&&re()===`granted`},methods:{async onToggle(){this.busy=!0;try{if(this.enabled){await this.$store.dispatch(`codingBridge/disableNotifications`),this.enabled=!1,L.success(this.$t(`codingBridge.notify.disabled`));return}let e=await this.$store.dispatch(`codingBridge/enableNotifications`);e===`enabled`?(this.enabled=!0,L.success(this.$t(`codingBridge.notify.enabled`))):e===`denied`?L.warning(this.$t(`codingBridge.notify.denied`)):L.warning(this.$t(`codingBridge.notify.unsupported`))}catch{L.error(this.$t(`codingBridge.notify.failed`))}finally{this.busy=!1}}}});function oe(e,t,n,r,i,o){let s=h(`font-awesome-icon`),c=h(`el-button`);return e.supported?(u(),a(c,{key:0,circle:``,size:`small`,type:e.enabled?`primary`:`default`,title:e.enabled?e.$t(`codingBridge.notify.disable`):e.$t(`codingBridge.notify.enable`),disabled:e.busy,onClick:e.onToggle},{default:g(()=>[e.busy?(u(),a(s,{key:0,icon:`fa-solid fa-spinner`,spin:``})):(u(),a(s,{key:1,icon:e.enabled?`fa-solid fa-bell`:`fa-regular fa-bell`},null,8,[`icon`]))]),_:1},8,[`type`,`title`,`disabled`,`onClick`])):p(``,!0)}var se=r({name:`CodingBridgeNodeList`,components:{ElButton:v,FontAwesomeIcon:R,NotificationToggle:j(ae,[[`render`,oe]])},emits:[`pair`],computed:{nodes(){return this.$store.state.codingBridge?.nodes??[]},currentNodeId(){return this.$store.state.codingBridge?.currentNodeId},connection(){return this.$store.state.codingBridge?.connection??`disconnected`},connectionLabel(){return this.$t(`codingBridge.connection.${this.connection}`)},connectionDotClass(){switch(this.connection){case`connected`:return`bg-[var(--el-color-success)]`;case`connecting`:return`bg-[var(--el-color-warning)]`;case`error`:return`bg-[var(--el-color-danger)]`;default:return`bg-[var(--app-text-subtle)]`}}},methods:{onSelect(e){this.$store.dispatch(`codingBridge/selectNode`,e)},onRefresh(){this.$store.dispatch(`codingBridge/getNodes`)},async onDelete(e){try{await k.confirm(this.$t(`codingBridge.nodeList.removeConfirm`,{name:e.name}),this.$t(`codingBridge.nodeList.remove`),{confirmButtonText:this.$t(`codingBridge.nodeList.remove`),cancelButtonText:this.$t(`common.button.cancel`),type:`warning`})}catch{return}try{await this.$store.dispatch(`codingBridge/deleteNode`,e.node_id),L.success(this.$t(`codingBridge.nodeList.removeSuccess`))}catch{L.error(this.$t(`codingBridge.nodeList.removeFailed`))}}}}),ce={class:`node-list flex flex-col h-full bg-[var(--app-sidebar-bg)] border-r border-[var(--app-border-subtle)]`},le={class:`flex items-center justify-between px-4 py-3 border-b border-[var(--app-border-subtle)]`},ue={class:`flex items-center gap-2 font-medium`},de={class:`flex items-center gap-1`},fe={class:`flex items-center gap-2 px-4 py-2 text-xs border-b border-[var(--app-border-subtle)]`},B={class:`text-[var(--app-text-subtle)]`},V={class:`flex-1 overflow-y-auto`},pe={key:0,class:`p-6 text-center text-sm text-[var(--app-text-subtle)]`},me={class:`mb-3`},he={key:1,class:`list-none m-0 p-0`},ge=[`onClick`],_e={class:`flex-1 min-w-0`},ve={class:`flex items-center gap-2`},ye={class:`truncate font-medium`},be=[`title`],xe={class:`text-xs text-[var(--app-text-subtle)] truncate`};function Se(r,a,f,p,m,_){let v=h(`font-awesome-icon`),y=h(`notification-toggle`),b=h(`el-button`);return u(),t(`div`,ce,[n(`div`,le,[n(`div`,ue,[o(v,{icon:`fa-solid fa-laptop-code`}),n(`span`,null,l(r.$t(`codingBridge.nodeList.title`)),1)]),n(`div`,de,[o(y),o(b,{circle:``,size:`small`,title:r.$t(`codingBridge.nodeList.refresh`),onClick:r.onRefresh},{default:g(()=>[o(v,{icon:`fa-solid fa-rotate-right`})]),_:1},8,[`title`,`onClick`]),o(b,{type:`primary`,circle:``,size:`small`,title:r.$t(`codingBridge.nodeList.pair`),onClick:a[0]||=e=>r.$emit(`pair`)},{default:g(()=>[o(v,{icon:`fa-solid fa-plus`})]),_:1},8,[`title`])])]),n(`div`,fe,[n(`span`,{class:c([`inline-block w-2 h-2 rounded-full`,r.connectionDotClass])},null,2),n(`span`,B,l(r.connectionLabel),1)]),n(`div`,V,[r.nodes.length?(u(),t(`ul`,he,[(u(!0),t(s,null,e(r.nodes,e=>(u(),t(`li`,{key:e.node_id,class:c([`group flex items-center gap-3 px-4 py-3 cursor-pointer border-b border-[var(--app-border-subtle)] hover:bg-[var(--app-content-bg)]`,{"bg-[var(--app-content-bg)]":e.node_id===r.currentNodeId}]),onClick:t=>r.onSelect(e.node_id)},[o(v,{icon:`fa-solid fa-desktop`,class:`text-[var(--app-text-subtle)]`}),n(`div`,_e,[n(`div`,ve,[n(`span`,ye,l(e.name),1),n(`span`,{class:c([`inline-block w-2 h-2 rounded-full flex-none`,e.status===`online`?`bg-[var(--el-color-success)]`:`bg-[var(--app-text-subtle)]`]),title:e.status===`online`?r.$t(`codingBridge.status.online`):r.$t(`codingBridge.status.offline`)},null,10,be)]),n(`div`,xe,l(e.status===`online`?r.$t(`codingBridge.status.online`):r.$t(`codingBridge.status.offline`)),1)]),o(b,{class:`opacity-0 group-hover:opacity-100`,text:``,circle:``,size:`small`,title:r.$t(`codingBridge.nodeList.remove`),onClick:d(t=>r.onDelete(e),[`stop`])},{default:g(()=>[o(v,{icon:`fa-solid fa-trash`})]),_:1},8,[`title`,`onClick`])],10,ge))),128))])):(u(),t(`div`,pe,[n(`p`,me,l(r.$t(`codingBridge.nodeList.empty`)),1),o(b,{type:`primary`,round:``,size:`small`,onClick:a[1]||=e=>r.$emit(`pair`)},{default:g(()=>[o(v,{icon:`fa-solid fa-plus`,class:`mr-1`}),i(` `+l(r.$t(`codingBridge.nodeList.pairFirst`)),1)]),_:1})]))])])}var Ce=j(se,[[`render`,Se]]),we=e=>{let t=e?.questions;return Array.isArray(t)&&t.length>0&&t.every(e=>e&&typeof e.question==`string`&&Array.isArray(e.options))},H=e=>e?(e.tool||``).toLowerCase()===`askuserquestion`?!0:we(e.input):!1,Te=e=>({questions:e.input?.questions??[]}),Ee=100,U=4e4,De=12e3,W=6e3,G=(e,t)=>{if(e.length<=t)return e;let n=((e.length-t)/1024).toFixed(1);return`${e.slice(0,t)}\n\n··· +${n} KB ···`},Oe=r({name:`CodingBridgeTranscriptItem`,directives:{highlight:O},components:{FontAwesomeIcon:R,VueMarkdown:ee,CodeSnippet:ie,CopyToClipboard:z},props:{event:{type:Object,required:!0},editable:{type:Boolean,default:!1}},emits:[`edit`],data(){return{renderedText:G(this.event.text||``,U),streamTimer:0}},computed:{commandText(){let e=this.event.input;if(!e)return``;for(let t of[`command`,`cmd`,`script`]){let n=e[t];if(typeof n==`string`&&n.trim())return G(n,W)}return``},filePath(){let e=this.event.input;if(!e)return``;for(let t of[`file_path`,`filePath`,`path`,`notebook_path`,`filename`]){let n=e[t];if(typeof n==`string`&&n.trim())return n}return``},toolDescription(){let e=this.event.input?.description;return typeof e==`string`?e:``},toolIcon(){if(this.commandText)return`fa-solid fa-terminal`;let e=(this.event.tool??``).toLowerCase();return/read|cat|view/.test(e)?`fa-solid fa-file-lines`:/write|edit|create|update|insert/.test(e)?`fa-solid fa-pen`:/grep|glob|search|find|list/.test(e)?`fa-solid fa-magnifying-glass`:`fa-solid fa-code`},questionLines(){let e=(this.event.tool??``).toLowerCase(),t=this.event.input?.questions;return!(e===`askuserquestion`||Array.isArray(t))||!Array.isArray(t)?[]:t.filter(e=>e&&typeof e.question==`string`).map(e=>({header:typeof e.header==`string`?e.header:``,question:e.question}))},inputText(){let e=this.event.input;if(!e)return``;let t={};for(let[n,r]of Object.entries(e))n===`timeout`||n===`description`||(t[n]=r);if(Object.keys(t).length===0)return``;try{return G(JSON.stringify(t,null,2),W)}catch{return G(String(e),W)}},thinkingText(){return G(this.event.text||``,U)},resultText(){let e=this.event.content;return typeof e==`string`&&e.length>0?e:`—`},resultDisplay(){return G(this.resultText,De)},resultLabel(){let e=[];return this.event.is_error?e.push(this.$t(`codingBridge.transcript.turnFailed`)):e.push(this.$t(`codingBridge.transcript.turnDone`)),typeof this.event.cost_usd==`number`&&this.event.cost_usd>0&&e.push(`$${this.event.cost_usd.toFixed(4)}`),e.join(` · `)},hasAttachments(){return!!this.event.attachments?.length},noticeText(){let e=this.event.subtype,t=this.event.command;if(t){if(e===`slash_unavailable`)return this.$t(`codingBridge.notice.slashUnavailable`,{command:t});if(e===`slash_codex_unsupported`)return this.$t(`codingBridge.notice.slashCodexUnsupported`,{command:t})}return this.event.text||``}},watch:{"event.text"(){this.scheduleRender()},"event.streaming"(e){e||this.flushRender()}},beforeUnmount(){this.streamTimer&&window.clearTimeout(this.streamTimer)},methods:{scheduleRender(){if(!this.event.streaming){this.flushRender();return}this.streamTimer||=window.setTimeout(()=>{this.streamTimer=0,this.renderedText=G(this.event.text||``,U)},Ee)},flushRender(){this.streamTimer&&=(window.clearTimeout(this.streamTimer),0),this.renderedText=G(this.event.text||``,U)}}}),ke={key:0,class:`group flex items-end justify-end gap-1.5`},Ae=[`title`,`aria-label`],je={class:`max-w-[85%] rounded-lg px-3 py-2 bg-[var(--el-color-primary)] text-white whitespace-pre-wrap break-words`},Me=[`src`],Ne=[`href`],Pe=[`src`],Fe={key:1,class:`flex h-9 w-9 items-center justify-center rounded bg-white/15`},Ie={class:`min-w-0 truncate`},Le={key:2},Re={key:2,class:`whitespace-pre-wrap break-words italic text-[var(--app-text-subtle)] border-l-2 border-[var(--app-border-subtle)] pl-3`},ze={key:3,class:`overflow-hidden rounded-md bg-[var(--app-sidebar-bg)] border border-[var(--app-border-subtle)]`},Be={class:`flex items-center gap-2 px-2.5 py-1.5 font-medium text-[var(--app-text-subtle)]`},Ve={key:0,class:`min-w-0 truncate text-xs font-normal opacity-70`},He={key:0,class:`flex flex-col gap-1.5 px-2.5 pb-2`},Ue={key:0,class:`font-medium text-[var(--app-text)]`},We={class:`whitespace-pre-wrap break-words text-[var(--app-text-subtle)]`},Ge={key:1,class:`px-2.5 pb-2`},Ke={key:2,class:`px-2.5 pb-2 font-mono text-xs break-all text-[var(--app-text-subtle)]`},qe={key:3,class:`px-2.5 pb-2`},Je={key:0,class:`absolute right-1.5 top-1.5 z-10 rounded bg-[var(--app-content-bg)] px-1 opacity-0 transition-opacity group-hover:opacity-100 focus-within:opacity-100`},Ye={key:5,class:`flex items-center gap-2 text-xs text-[var(--app-text-subtle)]`},Xe={key:6,class:`flex items-start gap-2 rounded-md bg-[var(--app-sidebar-bg)] border border-[var(--app-border-subtle)] text-[var(--app-text-subtle)] px-3 py-2 text-xs`},Ze={class:`whitespace-pre-wrap break-words`},Qe={key:7,class:`rounded-md bg-[var(--el-color-danger-light-9)] text-[var(--el-color-danger)] px-3 py-2 whitespace-pre-wrap break-words`};function $e(r,i,a,d,g,_){let v=h(`font-awesome-icon`),y=h(`vue-markdown`),b=h(`code-snippet`),x=h(`copy-to-clipboard`),S=m(`highlight`);return u(),t(`div`,{class:c([`transcript-item text-sm leading-relaxed`,`kind-${r.event.kind}`])},[r.event.kind===`prompt`?(u(),t(`div`,ke,[r.editable?(u(),t(`button`,{key:0,type:`button`,class:`cb-edit-btn opacity-0 transition-opacity group-hover:opacity-100 focus-visible:opacity-100`,title:r.$t(`codingBridge.session.editPrompt`),"aria-label":r.$t(`codingBridge.session.editPrompt`),onClick:i[0]||=e=>r.$emit(`edit`,r.event)},[o(v,{icon:`fa-solid fa-pen`})],8,Ae)):p(``,!0),n(`div`,je,[r.event.images&&r.event.images.length?(u(),t(`div`,{key:0,class:c([`flex flex-wrap gap-1.5`,{"mb-1.5":r.event.text||r.hasAttachments}])},[(u(!0),t(s,null,e(r.event.images,(e,n)=>(u(),t(`img`,{key:n,src:e,class:`w-16 h-16 rounded object-cover`,alt:``},null,8,Me))),128))],2)):p(``,!0),r.hasAttachments?(u(),t(`div`,{key:1,class:c([`flex flex-wrap gap-1.5`,{"mb-1.5":r.event.text}])},[(u(!0),t(s,null,e(r.event.attachments,(e,r)=>(u(),t(`a`,{key:`${e.url}-${r}`,href:e.url,target:`_blank`,rel:`noopener noreferrer`,class:`flex max-w-[220px] items-center gap-2 rounded-md bg-white/15 px-2 py-1.5 text-xs text-white hover:bg-white/20`},[e.type===`image`?(u(),t(`img`,{key:0,src:e.url,class:`h-9 w-9 rounded object-cover`,alt:``},null,8,Pe)):(u(),t(`span`,Fe,[o(v,{icon:`fa-solid fa-file`})])),n(`span`,Ie,l(e.name||e.url),1)],8,Ne))),128))],2)):p(``,!0),r.event.text?(u(),t(`span`,Le,l(r.event.text),1)):p(``,!0)])])):r.event.kind===`text`?(u(),t(`div`,{key:1,class:c([`cb-stream-text`,{"is-streaming":r.event.streaming}])},[f(o(y,{source:r.renderedText,class:`markdown-body bg-transparent text-[var(--app-text)]`},null,8,[`source`]),[[S]])],2)):r.event.kind===`thinking`?(u(),t(`div`,Re,l(r.thinkingText),1)):r.event.kind===`tool_use`?(u(),t(`div`,ze,[n(`div`,Be,[o(v,{icon:r.toolIcon,class:`text-[var(--el-color-primary)]`},null,8,[`icon`]),n(`span`,null,l(r.event.tool),1),r.toolDescription?(u(),t(`span`,Ve,l(r.toolDescription),1)):p(``,!0)]),r.questionLines.length?(u(),t(`div`,He,[(u(!0),t(s,null,e(r.questionLines,(e,r)=>(u(),t(`div`,{key:r,class:`rounded border border-[var(--app-border-subtle)] bg-[var(--app-content-bg)] px-2.5 py-1.5 text-xs`},[e.header?(u(),t(`div`,Ue,l(e.header),1)):p(``,!0),n(`div`,We,l(e.question),1)]))),128))])):r.commandText?(u(),t(`div`,Ge,[o(b,{code:r.commandText,lang:`bash`,copyable:``},null,8,[`code`])])):r.filePath?(u(),t(`div`,Ke,l(r.filePath),1)):r.inputText?(u(),t(`div`,qe,[o(b,{code:r.inputText,lang:`json`,copyable:``},null,8,[`code`])])):p(``,!0)])):r.event.kind===`tool_result`?(u(),t(`div`,{key:4,class:c([`group relative overflow-hidden rounded-md`,r.event.is_error?`bg-[var(--el-color-danger-light-9)]`:`bg-[var(--app-sidebar-bg)]`])},[r.event.content?(u(),t(`div`,Je,[o(x,{content:r.resultText},null,8,[`content`])])):p(``,!0),n(`pre`,{class:c([`m-0 max-h-72 overflow-auto whitespace-pre-wrap break-words px-2.5 py-2 font-mono text-xs`,r.event.is_error?`text-[var(--el-color-danger)]`:`text-[var(--app-text-subtle)]`])},l(r.resultDisplay),3)],2)):r.event.kind===`result`?(u(),t(`div`,Ye,[o(v,{icon:r.event.is_error?`fa-solid fa-xmark`:`fa-solid fa-check`},null,8,[`icon`]),n(`span`,null,l(r.resultLabel),1)])):r.event.kind===`notice`?(u(),t(`div`,Xe,[o(v,{icon:`fa-solid fa-circle-info`,class:`mt-0.5 flex-none text-[var(--el-color-primary)]`}),n(`span`,Ze,l(r.noticeText),1)])):r.event.kind===`error`?(u(),t(`div`,Qe,l(r.event.text),1)):p(``,!0)],2)}var et=j(Oe,[[`render`,$e],[`__scopeId`,`data-v-1b7ef381`]]),K=[`⠋`,`⠙`,`⠹`,`⠸`,`⠼`,`⠴`,`⠦`,`⠧`,`⠇`,`⠏`],tt=`Pondering.Noodling.Conjuring.Brewing.Cooking.Crafting.Churning.Simmering.Percolating.Ruminating.Musing.Marinating.Synthesizing.Computing.Hatching.Forging.Vibing.Working.Thinking.Cogitating.Mulling.Stewing.Tinkering.Wrangling.Spinning.Reticulating.Manifesting.Deliberating`.split(`.`),nt=[`思考中`,`酝酿中`,`沉思中`,`推敲中`,`构思中`,`计算中`,`琢磨中`,`捣鼓中`,`炼制中`,`召唤中`,`编织中`,`烹饪中`,`咀嚼中`,`盘算中`,`发酵中`,`运转中`,`冥想中`,`鼓捣中`,`熬制中`,`神游中`,`演算中`,`雕琢中`,`头脑风暴中`,`反复斟酌中`],rt=80,q=60,it=1500,J=28,at=r({name:`CodingBridgeThinkingIndicator`,data(){return{spinnerIndex:0,display:``,elapsed:0,charIndex:0,phase:`typing`,currentWord:``,spinnerTimer:0,elapsedTimer:0,typeTimer:0}},computed:{spinnerFrame(){return K[this.spinnerIndex]},words(){return this.$i18n.locale.startsWith(`zh`)?nt:tt}},mounted(){this.currentWord=this.pickWord(),this.spinnerTimer=window.setInterval(()=>{this.spinnerIndex=(this.spinnerIndex+1)%K.length},rt),this.elapsedTimer=window.setInterval(()=>{this.elapsed+=1},1e3),this.scheduleType(q)},beforeUnmount(){window.clearInterval(this.spinnerTimer),window.clearInterval(this.elapsedTimer),window.clearTimeout(this.typeTimer)},methods:{pickWord(){let e=this.words;if(e.length<=1)return e[0]??``;let t=this.currentWord;for(;t===this.currentWord;)t=e[Math.floor(Math.random()*e.length)];return t},scheduleType(e){this.typeTimer=window.setTimeout(this.advance,e)},advance(){let e=this.currentWord;this.phase===`typing`?(this.charIndex+=1,this.display=e.slice(0,this.charIndex),this.charIndex>=e.length?(this.phase=`holding`,this.scheduleType(it)):this.scheduleType(q)):this.phase===`holding`?(this.phase=`deleting`,this.scheduleType(J)):(--this.charIndex,this.display=e.slice(0,Math.max(0,this.charIndex)),this.charIndex<=0?(this.currentWord=this.pickWord(),this.phase=`typing`,this.scheduleType(q)):this.scheduleType(J))}}}),ot={class:`cb-thinking flex items-center gap-2 text-sm text-[var(--app-text-subtle)] py-1`},st={class:`cb-thinking__spinner text-[var(--el-color-primary)]`},ct={class:`cb-thinking__word`},lt={class:`cb-thinking__elapsed tabular-nums opacity-60`};function ut(e,r,a,o,s,c){return u(),t(`div`,ot,[n(`span`,st,l(e.spinnerFrame),1),n(`span`,ct,[i(l(e.display),1),r[0]||=n(`span`,{class:`cb-thinking__caret`},`▋`,-1)]),n(`span`,lt,`(`+l(e.elapsed)+`s)`,1)])}var dt=j(at,[[`render`,ut],[`__scopeId`,`data-v-6087e9e6`]]),ft=r({name:`CodingBridgeDirectoryDialog`,components:{ElDialog:F,ElButton:v,ElInput:I,FontAwesomeIcon:R},props:{visible:{type:Boolean,default:!1},initialPath:{type:String,default:``}},emits:[`update:visible`,`select`],data(){return{pathInput:``}},computed:{listing(){return this.$store.state.codingBridge?.directory},loading(){return this.$store.state.codingBridge?.directoryLoading===!0},directories(){return(this.listing?.entries??[]).filter(e=>e.type===`dir`)},files(){return(this.listing?.entries??[]).filter(e=>e.type===`file`)},isEmpty(){return!!this.listing&&!this.listing.error&&(this.listing.entries??[]).length===0}},watch:{"listing.path"(e){this.pathInput=e??``}},methods:{onOpen(){this.pathInput=this.initialPath||``,this.$store.dispatch(`codingBridge/browseDir`,this.initialPath||void 0)},goPath(){let e=this.pathInput.trim();e&&this.$store.dispatch(`codingBridge/browseDir`,e)},syncPathInput(){this.pathInput=this.listing?.path??``},onVisibleChange(e){this.$emit(`update:visible`,e),e||this.$store.dispatch(`codingBridge/clearDirectory`)},openDir(e){this.$store.dispatch(`codingBridge/browseDir`,e)},goParent(){this.listing?.parent&&this.$store.dispatch(`codingBridge/browseDir`,this.listing.parent)},refresh(){this.$store.dispatch(`codingBridge/browseDir`,this.listing?.path||this.initialPath||void 0)},chooseCurrent(){this.listing&&!this.listing.error&&(this.$emit(`select`,this.listing.path),this.onVisibleChange(!1))}}}),pt={class:`flex flex-col gap-2`},mt={class:`flex items-center gap-2 min-w-0`},ht={class:`h-72 overflow-y-auto border border-[var(--app-border-subtle)] rounded-md divide-y divide-[var(--app-border-subtle)]`},gt={key:0,class:`h-full flex items-center justify-center text-sm text-[var(--app-text-subtle)]`},_t={key:1,class:`h-full flex items-center justify-center text-sm text-[var(--el-color-danger)]`},vt=[`onClick`],yt={class:`truncate`,dir:`ltr`},bt={class:`truncate`,dir:`ltr`},xt={key:0,class:`h-full flex items-center justify-center text-sm text-[var(--app-text-subtle)] py-8`},St={key:0,class:`text-[11px] text-[var(--app-text-subtle)] px-1`},Ct={class:`flex items-center justify-end gap-2`};function wt(r,c,d,f,m,v){let y=h(`font-awesome-icon`),b=h(`el-button`),x=h(`el-input`),S=h(`el-dialog`);return u(),a(S,{"model-value":r.visible,title:r.$t(`codingBridge.directory.title`),width:`520px`,"append-to-body":``,"onUpdate:modelValue":r.onVisibleChange,onOpen:r.onOpen},{footer:g(()=>[n(`div`,Ct,[o(b,{round:``,onClick:c[1]||=e=>r.onVisibleChange(!1)},{default:g(()=>[i(l(r.$t(`common.button.cancel`)),1)]),_:1}),o(b,{type:`primary`,round:``,disabled:!r.listing||!!r.listing.error,onClick:r.chooseCurrent},{default:g(()=>[i(l(r.$t(`codingBridge.directory.choose`)),1)]),_:1},8,[`disabled`,`onClick`])])]),default:g(()=>[n(`div`,pt,[n(`div`,mt,[o(b,{size:`small`,circle:``,disabled:!r.listing||!r.listing.parent||r.loading,title:r.$t(`codingBridge.directory.up`),onClick:r.goParent},{default:g(()=>[o(y,{icon:`fa-solid fa-arrow-up`})]),_:1},8,[`disabled`,`title`,`onClick`]),o(x,{modelValue:r.pathInput,"onUpdate:modelValue":c[0]||=e=>r.pathInput=e,size:`small`,class:`flex-1 min-w-0`,dir:`ltr`,placeholder:r.$t(`codingBridge.directory.pathPlaceholder`),disabled:r.loading,onKeyup:_(r.goPath,[`enter`]),onBlur:r.syncPathInput},{append:g(()=>[o(b,{title:r.$t(`codingBridge.directory.go`),disabled:r.loading||!r.pathInput.trim(),onClick:r.goPath},{default:g(()=>[o(y,{icon:`fa-solid fa-arrow-right`})]),_:1},8,[`title`,`disabled`,`onClick`])]),_:1},8,[`modelValue`,`placeholder`,`disabled`,`onKeyup`,`onBlur`]),o(b,{size:`small`,circle:``,disabled:r.loading,title:r.$t(`codingBridge.directory.refresh`),onClick:r.refresh},{default:g(()=>[o(y,{icon:`fa-solid fa-rotate-right`,spin:r.loading},null,8,[`spin`])]),_:1},8,[`disabled`,`title`,`onClick`])]),n(`div`,ht,[r.loading&&!r.listing?(u(),t(`div`,gt,l(r.$t(`codingBridge.directory.loading`)),1)):r.listing&&r.listing.error?(u(),t(`div`,_t,l(r.listing.error),1)):(u(),t(s,{key:2},[(u(!0),t(s,null,e(r.directories,e=>(u(),t(`button`,{key:e.path,type:`button`,class:`w-full flex items-center gap-2 px-3 py-2 text-left text-sm hover:bg-[var(--app-content-hover-bg)]`,onClick:t=>r.openDir(e.path)},[o(y,{icon:`fa-solid fa-folder`,class:`text-[var(--el-color-warning)]`}),n(`span`,yt,l(e.name),1)],8,vt))),128)),(u(!0),t(s,null,e(r.files,e=>(u(),t(`div`,{key:e.path,class:`w-full flex items-center gap-2 px-3 py-2 text-sm text-[var(--app-text-subtle)]`},[o(y,{icon:`fa-solid fa-file`}),n(`span`,bt,l(e.name),1)]))),128)),r.isEmpty?(u(),t(`div`,xt,l(r.$t(`codingBridge.directory.empty`)),1)):p(``,!0)],64))]),r.listing&&r.listing.truncated?(u(),t(`p`,St,l(r.$t(`codingBridge.directory.truncated`)),1)):p(``,!0)])]),_:1},8,[`model-value`,`title`,`onUpdate:modelValue`,`onOpen`])}var Tt=j(ft,[[`render`,wt]]),Y=`data:image/svg+xml,%3csvg%20fill='%23D97757'%20role='img'%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eClaude%3c/title%3e%3cpath%20d='m4.7144%2015.9555%204.7174-2.6471.079-.2307-.079-.1275h-.2307l-.7893-.0486-2.6956-.0729-2.3375-.0971-2.2646-.1214-.5707-.1215-.5343-.7042.0546-.3522.4797-.3218.686.0608%201.5179.1032%202.2767.1578%201.6514.0972%202.4468.255h.3886l.0546-.1579-.1336-.0971-.1032-.0972L6.973%209.8356l-2.55-1.6879-1.3356-.9714-.7225-.4918-.3643-.4614-.1578-1.0078.6557-.7225.8803.0607.2246.0607.8925.686%201.9064%201.4754%202.4893%201.8336.3643.3035.1457-.1032.0182-.0728-.164-.2733-1.3539-2.4467-1.445-2.4893-.6435-1.032-.17-.6194c-.0607-.255-.1032-.4674-.1032-.7285L6.287.1335%206.6997%200l.9957.1336.419.3642.6192%201.4147%201.0018%202.2282%201.5543%203.0296.4553.8985.2429.8318.091.255h.1579v-.1457l.1275-1.706.2368-2.0947.2307-2.6957.0789-.7589.3764-.9107.7468-.4918.5828.2793.4797.686-.0668.4433-.2853%201.8517-.5586%202.9021-.3643%201.9429h.2125l.2429-.2429.9835-1.3053%201.6514-2.0643.7286-.8196.85-.9046.5464-.4311h1.0321l.759%201.1293-.34%201.1657-1.0625%201.3478-.8804%201.1414-1.2628%201.7-.7893%201.36.0729.1093.1882-.0183%202.8535-.607%201.5421-.2794%201.8396-.3157.8318.3886.091.3946-.3278.8075-1.967.4857-2.3072.4614-3.4364.8136-.0425.0304.0486.0607%201.5482.1457.6618.0364h1.621l3.0175.2247.7892.522.4736.6376-.079.4857-1.2142.6193-1.6393-.3886-3.825-.9107-1.3113-.3279h-.1822v.1093l1.0929%201.0686%202.0035%201.8092%202.5075%202.3314.1275.5768-.3218.4554-.34-.0486-2.2039-1.6575-.85-.7468-1.9246-1.621h-.1275v.17l.4432.6496%202.3436%203.5214.1214%201.0807-.17.3521-.6071.2125-.6679-.1214-1.3721-1.9246L14.38%2017.959l-1.1414-1.9428-.1397.079-.674%207.2552-.3156.3703-.7286.2793-.6071-.4614-.3218-.7468.3218-1.4753.3886-1.9246.3157-1.53.2853-1.9004.17-.6314-.0121-.0425-.1397.0182-1.4328%201.9672-2.1796%202.9446-1.7243%201.8456-.4128.164-.7164-.3704.0667-.6618.4008-.5889%202.386-3.0357%201.4389-1.882.929-1.0868-.0062-.1579h-.0546l-6.3385%204.1164-1.1293.1457-.4857-.4554.0608-.7467.2307-.2429%201.9064-1.3114Z'/%3e%3c/svg%3e`,X=`data:image/svg+xml,%3csvg%20fill='%23000000'%20role='img'%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%3e%3ctitle%3eOpenAI%3c/title%3e%3cpath%20d='M22.282%209.821a5.985%205.985%200%200%200-.516-4.91%206.046%206.046%200%200%200-6.51-2.9A6.065%206.065%200%200%200%204.981%204.18a5.985%205.985%200%200%200-3.998%202.9%206.046%206.046%200%200%200%20.743%207.097%205.98%205.98%200%200%200%20.51%204.911%206.051%206.051%200%200%200%206.515%202.9A5.985%205.985%200%200%200%2013.26%2024a6.056%206.056%200%200%200%205.772-4.206%205.99%205.99%200%200%200%203.997-2.9%206.056%206.056%200%200%200-.747-7.073zM13.26%2022.43a4.476%204.476%200%200%201-2.876-1.04l.141-.081%204.779-2.758a.795.795%200%200%200%20.392-.681v-6.737l2.02%201.168a.071.071%200%200%201%20.038.052v5.583a4.504%204.504%200%200%201-4.494%204.494zM3.6%2018.304a4.47%204.47%200%200%201-.535-3.014l.142.085%204.783%202.759a.771.771%200%200%200%20.78%200l5.843-3.369v2.332a.08.08%200%200%201-.033.062L9.74%2019.95a4.5%204.5%200%200%201-6.14-1.646zM2.34%207.896a4.485%204.485%200%200%201%202.366-1.973V11.6a.766.766%200%200%200%20.388.676l5.815%203.355-2.02%201.168a.076.076%200%200%201-.071%200l-4.83-2.786A4.504%204.504%200%200%201%202.34%207.872zm16.597%203.855l-5.833-3.387L15.119%207.2a.076.076%200%200%201%20.071%200l4.83%202.791a4.494%204.494%200%200%201-.676%208.105v-5.678a.79.79%200%200%200-.407-.667zm2.01-3.023l-.141-.085-4.774-2.782a.776.776%200%200%200-.785%200L9.409%209.23V6.897a.066.066%200%200%201%20.028-.061l4.83-2.787a4.5%204.5%200%200%201%206.68%204.66zm-12.64%204.135l-2.02-1.164a.08.08%200%200%201-.038-.057V6.075a4.5%204.5%200%200%201%207.375-3.453l-.142.08L8.704%205.46a.795.795%200%200%200-.393.681zm1.097-2.365l2.602-1.5%202.607%201.5v2.999l-2.597%201.5-2.607-1.5z'/%3e%3c/svg%3e`,Et=50*1024*1024,Z=10,Q=60,Dt=60,Ot={claude:{src:Y,invertOnDark:!1},codex:{src:X,invertOnDark:!0}},kt=r({name:`CodingBridgeSessionView`,components:{ElInput:I,ElButton:v,ElPopover:T,ElDropdown:w,ElDropdownMenu:C,ElDropdownItem:S,ElUpload:y,ElCheckbox:b,ElSkeleton:D,ElSkeletonItem:E,FontAwesomeIcon:R,TranscriptItem:et,ThinkingIndicator:dt,DirectoryDialog:Tt,AskUserQuestionCard:te,CopyToClipboard:z},mixins:[N],emits:[`history`,`devices`],data(){return{prompt:``,cwd:``,model:``,customModelDraft:``,permissionMode:`bypassPermissions`,provider:`claude`,effort:``,directoryVisible:!1,slashMenuOpen:!1,slashActiveIndex:0,editingEventId:``,restoreCode:!1,attachmentFileList:[],uploadUrl:A()+`/api/v1/files/`,maxAttachments:Z,visibleCount:Q}},computed:{headers(){return{Authorization:`Bearer ${this.$store.state.token.access}`}},currentNodeId(){return this.$store.state.codingBridge?.currentNodeId},lastComposer(){let e=this.currentNodeId;return(e?this.$store.state.codingBridge?.lastComposer?.[e]:void 0)??{}},currentNode(){return this.$store.state.codingBridge?.nodes?.find(e=>e.node_id===this.currentNodeId)},nodeOnline(){return this.currentNode?.status===`online`},currentSessionId(){return this.$store.state.codingBridge?.currentSessionId},currentSession(){let e=this.currentSessionId;return e?this.$store.state.codingBridge?.sessions?.[e]:void 0},events(){let e=this.currentSessionId;return e?this.$store.state.codingBridge?.events?.[e]??[]:[]},visibleEvents(){let e=this.events;return e.length>this.visibleCount?e.slice(-this.visibleCount):e},hiddenEventCount(){return Math.max(0,this.events.length-this.visibleCount)},historyLoading(){return this.$store.state.codingBridge?.status?.getHistoryDetail===M.Request},pendingQuestion(){let e=this.currentSessionId;if(!e)return;let t=(this.$store.state.codingBridge?.permissions??[]).find(t=>t.session_id===e&&H(t));return t?{request_id:t.request_id,payload:Te(t)}:void 0},isNewSession(){return!this.currentSessionId},canPickCwd(){return this.isNewSession||!this.currentSession?.started},readonly(){return this.currentSession?.readonly===!0},resumeHint(){return!!this.currentSession?.provider&&!this.currentSession?.started&&!this.readonly},replayLabel(){return!this.currentSession?.provider||this.currentSession?.started?``:this.currentSession.provider===`codex`?this.$t(`codingBridge.history.codexLabel`):this.currentSession.provider===`claude`?this.$t(`codingBridge.history.claudeLabel`):this.providerName(this.currentSession.provider)},running(){let e=this.currentSession?.status;return e===`running`||e===`starting`},thinking(){return this.running&&!this.pendingQuestion},connected(){return this.$store.state.codingBridge?.connection===`connected`},canRetry(){return this.currentSession?.status===`error`&&!this.readonly&&this.connected&&this.nodeOnline&&this.events.some(e=>e.kind===`prompt`)},attachments(){return(this.attachmentFileList||[]).map(e=>{let t=e.response?.file_url||(typeof e.url==`string`&&!e.url.startsWith(`blob:`)?e.url:``);if(!t)return;let n=e.raw,r=n?.type||e.mime_type||``;return{type:this.isImageAttachment(e)?`image`:`file`,url:t,name:e.name,mime_type:r,size:n?.size}}).filter(e=>!!e)},uploadingAttachments(){return(this.attachmentFileList||[]).some(e=>this.isAttachmentUploading(e))},canSend(){return(!!this.prompt.trim()||this.attachments.length>0)&&!this.uploadingAttachments&&this.connected&&this.nodeOnline},composerHint(){return this.uploadingAttachments?this.$t(`codingBridge.session.uploadingAttachment`):this.providerCaps.length&&!this.currentProviderAvailable?this.$t(`codingBridge.session.providerUnavailableHint`,{name:this.providerName(this.provider)}):this.resumeHint?this.$t(`codingBridge.history.resumeHint`):this.$t(`codingBridge.session.enterHint`)},nodeCapabilities(){let e=this.currentNodeId;return e?this.$store.state.codingBridge?.capabilities?.[e]:void 0},providerCaps(){return this.nodeCapabilities?.providers??[]},currentProviderCap(){return this.providerCaps.find(e=>e.name===this.provider)},canEdit(){return this.readonly?!1:!!this.providerCaps.find(e=>e.name===this.activeProviderName)?.supports_edit},canRestoreCode(){return!!this.providerCaps.find(e=>e.name===this.activeProviderName)?.supports_code_restore},editingActive(){return!!this.editingEventId},currentProviderAvailable(){return this.providerCaps.length?this.currentProviderCap?.available!==!1:!0},providerOptions(){return this.providerCaps.length?this.providerCaps.map(e=>({value:e.name,label:e.label,available:e.available!==!1})):[{label:this.$t(`codingBridge.session.providerClaude`),value:`claude`,available:!0},{label:this.$t(`codingBridge.session.providerCodex`),value:`codex`,available:!0},{label:`GitHub Copilot`,value:`copilot`,available:!0}]},modelOptions(){return this.currentProviderCap?.models??[]},allowCustomModel(){return this.currentProviderCap?.allow_custom_model??!0},effortOptions(){let e=this.currentProviderCap?.efforts;return(e&&e.length?e:[``]).map(e=>({value:e,label:this.effortLabel(e)}))},permissionModeOptions(){let e=this.currentProviderCap?.permission_modes;return(e&&e.length?e:[`default`,`acceptEdits`,`plan`,`bypassPermissions`]).map(e=>({value:e,label:this.permissionModeLabel(e)}))},sessionMeta(){let e=this.currentSession;if(!e)return``;let t=[];return e.provider&&t.push(this.providerName(e.provider)),e.cwd&&t.push(e.cwd),e.model&&t.push(e.model),t.join(` · `)},activeProviderName(){return this.currentSession?.provider||this.provider},slashCommands(){let e=this.activeProviderName;return this.providerCaps.find(t=>t.name===e)?.commands??[]},slashMatches(){let e=this.prompt.match(/^\/(\S*)$/);if(!e)return[];let t=e[1].toLowerCase();return this.slashCommands.filter(e=>[e.name,...e.aliases??[]].some(e=>e.toLowerCase().startsWith(t)))},slashMenuVisible(){return this.slashMenuOpen&&this.slashMatches.length>0},diagnostics(){let e=[];return this.currentNodeId&&e.push({label:this.$t(`codingBridge.session.nodeId`),value:this.currentNodeId}),this.currentSessionId&&e.push({label:this.$t(`codingBridge.session.sessionId`),value:this.currentSessionId}),this.currentSession?.trace_id&&e.push({label:this.$t(`codingBridge.session.traceId`),value:this.currentSession.trace_id}),e}},watch:{events(){this.scrollToBottom()},pendingQuestion(){this.scrollToBottom()},thinking(){this.scrollToBottom()},currentSessionId(){this.scrollToBottom(),this.visibleCount=Q,this.editingEventId=``,this.restoreCode=!1,this.syncSessionSettings()},currentNodeId(){this.requestCapabilities(),this.isNewSession&&this.restoreComposerPrefs()},providerCaps(){if(!this.isNewSession||!this.providerCaps.length)return;let e=this.providerCaps.find(e=>e.name===this.provider);if(!e||e.available===!1){let e=this.providerCaps.find(e=>e.available!==!1);e&&(this.provider=e.name)}},provider(){this.isNewSession&&(this.model=``,this.effort=``)},prompt(e){this.slashMenuOpen=/^\/\S*$/.test(e),this.slashActiveIndex>=this.slashMatches.length&&(this.slashActiveIndex=0)}},mounted(){this.requestCapabilities(),this.syncSessionSettings()},methods:{requestCapabilities(){this.currentNodeId&&this.$store.dispatch(`codingBridge/getCapabilities`,this.currentNodeId)},effortLabel(e){let t={"":`codingBridge.session.effortDefault`,low:`codingBridge.session.effortLow`,medium:`codingBridge.session.effortMedium`,high:`codingBridge.session.effortHigh`,max:`codingBridge.session.effortMax`}[e];return t?this.$t(t):e},permissionModeLabel(e){let t={default:`codingBridge.session.permissionModeDefault`,acceptEdits:`codingBridge.session.permissionModeAcceptEdits`,plan:`codingBridge.session.permissionModePlan`,bypassPermissions:`codingBridge.session.permissionModeBypass`}[e];return t?this.$t(t):e},providerName(e){let t=this.providerCaps.find(t=>t.name===e);return t?t.label:{claude:this.$t(`codingBridge.session.providerClaude`),codex:this.$t(`codingBridge.session.providerCodex`),copilot:`GitHub Copilot`}[e]??e},providerIcon(e){return Ot[e]??null},syncSessionSettings(){let e=this.currentSession;if(!e){this.restoreComposerPrefs();return}let t=this.lastComposer;e.provider&&(this.provider=e.provider),this.model=e.model??``,this.customModelDraft=``,this.cwd=e.cwd??t.cwd??``,this.effort=e.effort??t.effort??``,this.permissionMode=e.permission_mode??t.permissionMode??`bypassPermissions`},selectModel(e){this.model=e,this.customModelDraft=``,this.closeModelPopover()},applyCustomModel(){let e=this.customModelDraft.trim();e&&(this.model=e,this.customModelDraft=``,this.closeModelPopover())},closeModelPopover(){this.$refs.modelPopover?.hide?.()},onComposerEnter(e){let t=e;t.isComposing||t.keyCode===229||t.shiftKey||t.ctrlKey||t.metaKey||t.altKey||(t.preventDefault(),this.onSend())},onComposerKeydown(e){let t=e;if(this.slashMenuVisible&&!t.isComposing&&t.keyCode!==229){if(t.key===`ArrowDown`){t.preventDefault(),this.moveSlash(1);return}if(t.key===`ArrowUp`){t.preventDefault(),this.moveSlash(-1);return}if(t.key===`Escape`){t.preventDefault(),this.slashMenuOpen=!1;return}if(t.key===`Tab`||t.key===`Enter`&&!t.shiftKey){t.preventDefault(),this.applySlash(this.slashMatches[this.slashActiveIndex]);return}}t.key===`Enter`&&this.onComposerEnter(t)},moveSlash(e){let t=this.slashMatches.length;t&&(this.slashActiveIndex=(this.slashActiveIndex+e+t)%t,this.$nextTick(()=>{(this.$el?.querySelector?.(`.cb-slash-menu__item--active`))?.scrollIntoView({block:`nearest`})}))},applySlash(e){e&&(this.prompt=`/${e.name} `,this.slashMenuOpen=!1,this.slashActiveIndex=0)},onSend(){if(!this.canSend)return;let e=this.attachments;if(this.editingEventId){this.$store.dispatch(`codingBridge/editPrompt`,{eventId:this.editingEventId,prompt:this.prompt,model:this.model,permissionMode:this.permissionMode,effort:this.effort,attachments:e.length?e:void 0,restoreCode:this.restoreCode}),this.resetComposer();return}this.currentNodeId&&this.$store.commit(`codingBridge/setLastComposer`,{node_id:this.currentNodeId,prefs:{cwd:this.cwd,provider:this.provider,model:this.model,permissionMode:this.permissionMode,effort:this.effort}}),this.$store.dispatch(`codingBridge/sendPrompt`,{prompt:this.prompt,cwd:this.cwd,model:this.model,permissionMode:this.permissionMode,provider:this.provider,effort:this.effort,attachments:e.length?e:void 0}),this.resetComposer()},resetComposer(){this.prompt=``,this.slashMenuOpen=!1,this.slashActiveIndex=0,this.editingEventId=``,this.restoreCode=!1,this.clearAttachments()},cancelEdit(){this.resetComposer()},onAnswerQuestion(e){this.$store.dispatch(`codingBridge/answerQuestion`,{request_id:e.tool_use_id,output:e.output})},onSkipQuestion(e){this.$store.dispatch(`codingBridge/resolvePermission`,{request_id:e.tool_use_id,decision:`deny`})},beforeAttachmentUpload(e){return this.attachmentFileList.length>=Z?(L.warning(this.$t(`codingBridge.session.attachmentLimit`,{count:Z})),!1):e.size>Et?(L.warning(this.$t(`codingBridge.session.attachmentTooLarge`)),!1):!0},onAttachmentChange(e){if(!e.url&&e.raw&&this.isImageAttachment(e))try{e.url=URL.createObjectURL(e.raw)}catch{}},onAttachmentSuccess(e,t){e?.file_url&&(this.revokeBlobUrl(t),t.url=e.file_url,t.response=e)},onAttachmentError(){L.error(this.$t(`codingBridge.session.attachmentUploadError`))},onAttachmentExceed(){L.warning(this.$t(`codingBridge.session.attachmentLimit`,{count:Z}))},onTriggerAttachmentUpload(){this.$nextTick(()=>{let e=this.$refs.uploader?.$el;(e?.querySelector(`input.el-upload__input`)||e?.querySelector(`input[type="file"]`))?.click()})},isAttachmentUploading(e){return e.status===`ready`||e.status===`uploading`},isImageAttachment(e){return(e.raw?.type||``).startsWith(`image/`)?!0:/\.(png|jpe?g|gif|webp|bmp|svg)$/i.test(e.name||e.url||``)},attachmentPreviewUrl(e){return this.isImageAttachment(e)&&(e.url||e.response?.file_url)||``},removeAttachment(e,t){this.revokeBlobUrl(t),this.attachmentFileList.splice(e,1)},clearAttachments(){for(let e of this.attachmentFileList)this.revokeBlobUrl(e);this.attachmentFileList=[]},revokeBlobUrl(e){if(e.url?.startsWith(`blob:`))try{URL.revokeObjectURL(e.url)}catch{}},onInterrupt(){this.$store.dispatch(`codingBridge/interruptSession`)},onRetry(){this.$store.dispatch(`codingBridge/retryLastPrompt`)},onEditPrompt(e){this.canEdit&&(this.editingEventId=e.id,this.restoreCode=!1,this.prompt=e.text??``,this.slashMenuOpen=!1,this.slashActiveIndex=0,this.clearAttachments(),this.attachmentFileList=(e.attachments??[]).map((e,t)=>({name:e.name||e.url,url:e.url,status:`success`,percentage:100,uid:Date.now()+t,response:{file_url:e.url},mime_type:e.mime_type})),this.$nextTick(()=>{(this.$el?.querySelector?.(`.cb-composer__input textarea`))?.focus()}))},openDirectory(){this.directoryVisible=!0},onDirectorySelect(e){this.cwd=e},onNewSession(){this.$store.dispatch(`codingBridge/newSession`),this.restoreComposerPrefs(),this.resetComposer()},restoreComposerPrefs(){let e=this.lastComposer;this.cwd=e.cwd??``,this.provider=e.provider??`claude`,this.permissionMode=e.permissionMode??`bypassPermissions`,this.customModelDraft=``,this.$nextTick(()=>{this.model=e.model??``,this.effort=e.effort??``})},scrollToBottom(){this.$nextTick(()=>{let e=this.$refs.transcript;e&&(e.scrollTop=e.scrollHeight)})},loadEarlier(){let e=this.$refs.transcript,t=e?.scrollHeight??0;this.visibleCount+=Dt,this.$nextTick(()=>{e&&(e.scrollTop=e.scrollHeight-t+e.scrollTop)})}}}),At={class:`session-view flex flex-col h-full bg-[var(--app-content-bg)]`},jt={key:0,class:`flex-1 flex flex-col items-center justify-center text-center p-8 text-[var(--app-text-subtle)]`},Mt={class:`text-sm`},Nt={class:`flex items-center justify-between gap-3 px-5 py-3 border-b border-[var(--app-border-subtle)]`},Pt={class:`flex items-center gap-2 min-w-0`},Ft=[`title`,`aria-label`],It={class:`min-w-0`},Lt={class:`flex items-center gap-2 font-medium`},Rt={class:`truncate`},zt={key:0,class:`text-xs text-[var(--app-text-subtle)] truncate`},Bt={key:0,class:`text-[var(--el-color-primary)]`},Vt={class:`flex items-center gap-2 flex-none`},Ht={key:0,class:`px-5 py-2 text-xs bg-[var(--el-color-warning-light-9)] text-[var(--el-color-warning)] border-b border-[var(--app-border-subtle)]`},Ut={key:1,class:`flex flex-wrap items-center gap-x-4 gap-y-1 px-5 py-1.5 text-[11px] text-[var(--app-text-subtle)] border-b border-[var(--app-border-subtle)]`},Wt={class:`opacity-70 flex-none`},Gt=[`title`],Kt={ref:`transcript`,class:`flex-1 min-h-0 overflow-y-auto px-5 py-4 flex flex-col gap-3`},qt={key:0,class:`cb-skeleton`},Jt={class:`flex flex-col gap-4`},Yt={class:`flex justify-end`},Xt={class:`flex flex-col gap-1.5`},Zt={class:`flex justify-end`},Qt={class:`flex flex-col gap-1.5`},$t={key:1,class:`m-auto text-center text-sm text-[var(--app-text-subtle)]`},en=[`title`],tn={key:4,class:`flex justify-center pt-1`},nn={key:2,class:`cb-question-dock flex-none px-5`},rn={class:`border-t border-[var(--app-border-subtle)] p-3`},an={key:0,class:`flex items-center gap-2 text-xs text-[var(--app-text-subtle)] px-1 py-2`},on={key:0,class:`mb-2 flex flex-wrap items-center gap-x-3 gap-y-1.5 rounded-lg bg-[var(--el-color-primary-light-9)] px-3 py-2 text-xs text-[var(--app-text)]`},sn={class:`inline-flex items-center gap-1.5`},cn={class:`cb-composer rounded-2xl border border-[var(--app-border-subtle)] bg-[var(--app-content-bg)] px-3 py-2.5 transition-colors focus-within:border-[var(--el-color-primary-light-5)]`},ln={key:0,class:`flex flex-wrap gap-2 pb-2`},un=[`src`,`alt`],dn={key:1,class:`flex h-8 w-8 items-center justify-center rounded bg-[var(--app-content-bg)]`},fn=[`title`],pn={key:2,class:`text-[10px] text-[var(--app-text-subtle)]`},mn=[`title`,`onClick`],hn={key:1,class:`cb-slash-menu`},gn=[`onMousedown`,`onMouseenter`],_n={class:`cb-slash-menu__name`},vn={key:0,class:`cb-slash-menu__hint`},yn={key:1,class:`cb-slash-menu__desc`},bn={ref:`attachmentUploadTrigger`,class:`block h-0 w-0`,"aria-hidden":`true`},xn={class:`mt-1.5 flex items-center gap-1.5`},Sn=[`title`],Cn={class:`flex min-w-0 flex-1 flex-wrap items-center gap-1.5`},wn={type:`button`,class:`cb-pill`},Tn=[`src`],En={class:`truncate`},Dn=[`src`],On={key:1,class:`ml-1 text-xs opacity-60`},kn={key:1,class:`cb-pill cb-pill--static`},An=[`src`],jn={class:`truncate`},Mn={type:`button`,class:`cb-pill`},Nn={class:`truncate`},Pn={class:`cb-model-menu`},Fn={class:`truncate`},In=[`onClick`],Ln={class:`truncate`},Rn={key:0,class:`cb-model-custom`},zn={type:`button`,class:`cb-pill`},Bn={class:`truncate`},Vn={type:`button`,class:`cb-pill`},Hn={class:`truncate`},Un={type:`button`,class:`cb-pill`},Wn={class:`truncate`},Gn=[`title`,`aria-label`],Kn={key:4,class:`cb-pill cb-pill--static`},qn={class:`truncate`},Jn={class:`text-[11px] text-[var(--app-text-subtle)] mt-1 px-1`};function Yn(r,f,m,v,y,b){let x=h(`font-awesome-icon`),S=h(`el-button`),C=h(`copy-to-clipboard`),w=h(`el-skeleton-item`),T=h(`el-skeleton`),E=h(`transcript-item`),D=h(`thinking-indicator`),O=h(`ask-user-question-card`),k=h(`el-checkbox`),A=h(`el-input`),j=h(`el-upload`),M=h(`el-dropdown-item`),N=h(`el-dropdown-menu`),P=h(`el-dropdown`),F=h(`el-popover`),I=h(`directory-dialog`);return u(),t(`div`,At,[r.currentNode?(u(),t(s,{key:1},[n(`div`,Nt,[n(`div`,Pt,[n(`button`,{type:`button`,class:`cb-devices-btn md:hidden`,title:r.$t(`codingBridge.nodeList.title`),"aria-label":r.$t(`codingBridge.nodeList.title`),onClick:f[1]||=e=>r.$emit(`devices`)},[o(x,{icon:`fa-solid fa-laptop-code`})],8,Ft),n(`div`,It,[n(`div`,Lt,[n(`span`,Rt,l(r.currentNode.name),1),n(`span`,{class:c([`inline-block w-2 h-2 rounded-full flex-none`,r.nodeOnline?`bg-[var(--el-color-success)]`:`bg-[var(--app-text-subtle)]`])},null,2)]),r.currentSession?(u(),t(`div`,zt,[n(`span`,null,l(r.sessionMeta),1),r.replayLabel?(u(),t(`span`,Bt,` · `+l(r.replayLabel),1)):p(``,!0)])):p(``,!0)])]),n(`div`,Vt,[o(S,{size:`small`,round:``,onClick:f[2]||=e=>r.$emit(`history`)},{default:g(()=>[o(x,{icon:`fa-solid fa-clock-rotate-left`,class:`mr-1`}),i(` `+l(r.$t(`codingBridge.history.button`)),1)]),_:1}),r.currentSessionId?(u(),a(S,{key:0,size:`small`,round:``,onClick:r.onNewSession},{default:g(()=>[o(x,{icon:`fa-solid fa-plus`,class:`mr-1`}),i(` `+l(r.$t(`codingBridge.session.newSession`)),1)]),_:1},8,[`onClick`])):p(``,!0)])]),r.nodeOnline?p(``,!0):(u(),t(`div`,Ht,l(r.$t(`codingBridge.session.deviceOffline`)),1)),r.diagnostics.length?(u(),t(`div`,Ut,[(u(!0),t(s,null,e(r.diagnostics,e=>(u(),t(`span`,{key:e.label,class:`inline-flex items-center gap-1 min-w-0`},[n(`span`,Wt,l(e.label)+`:`,1),n(`span`,{class:`font-mono break-all`,title:e.value},l(e.value),9,Gt),o(C,{content:e.value,class:`inline-block flex-none`},null,8,[`content`])]))),128))])):p(``,!0),n(`div`,Kt,[r.historyLoading&&!r.events.length?(u(),t(`div`,qt,[o(T,{animated:``},{template:g(()=>[n(`div`,Jt,[n(`div`,Yt,[o(w,{variant:`rect`,class:`cb-sk cb-sk--user`})]),n(`div`,Xt,[o(w,{variant:`text`,style:{width:`55%`}}),o(w,{variant:`text`,style:{width:`88%`}}),o(w,{variant:`text`,style:{width:`70%`}})]),o(w,{variant:`rect`,class:`cb-sk cb-sk--tool`}),n(`div`,Zt,[o(w,{variant:`rect`,class:`cb-sk cb-sk--user-sm`})]),n(`div`,Qt,[o(w,{variant:`text`,style:{width:`80%`}}),o(w,{variant:`text`,style:{width:`45%`}})])])]),_:1})])):r.events.length?p(``,!0):(u(),t(`div`,$t,l(r.$t(`codingBridge.session.startHint`)),1)),r.hiddenEventCount>0?(u(),t(`button`,{key:2,type:`button`,class:`cb-load-earlier mx-auto mb-1 flex items-center gap-1.5 rounded-full border border-[var(--app-border-subtle)] bg-[var(--app-content-bg)] px-3 py-1 text-xs text-[var(--app-text-subtle)] hover:text-[var(--el-color-primary)]`,title:`+${r.hiddenEventCount}`,onClick:f[3]||=(...e)=>r.loadEarlier&&r.loadEarlier(...e)},[o(x,{icon:`fa-solid fa-arrow-up`}),i(` `+l(r.hiddenEventCount),1)],8,en)):p(``,!0),(u(!0),t(s,null,e(r.visibleEvents,e=>(u(),a(E,{key:e.id,event:e,editable:r.canEdit,onEdit:r.onEditPrompt},null,8,[`event`,`editable`,`onEdit`]))),128)),r.thinking?(u(),a(D,{key:3})):p(``,!0),r.canRetry?(u(),t(`div`,tn,[o(S,{size:`small`,round:``,onClick:r.onRetry},{default:g(()=>[o(x,{icon:`fa-solid fa-rotate-right`,class:`mr-1`}),i(` `+l(r.$t(`codingBridge.session.retry`)),1)]),_:1},8,[`onClick`])])):p(``,!0)],512),r.pendingQuestion?(u(),t(`div`,nn,[(u(),a(O,{key:r.pendingQuestion.request_id,"tool-use-id":r.pendingQuestion.request_id,payload:r.pendingQuestion.payload,onSubmit:r.onAnswerQuestion,onSkip:r.onSkipQuestion},null,8,[`tool-use-id`,`payload`,`onSubmit`,`onSkip`]))])):p(``,!0),n(`div`,rn,[r.readonly?(u(),t(`div`,an,[o(x,{icon:`fa-solid fa-eye`}),n(`span`,null,l(r.$t(`codingBridge.history.readonly`)),1),o(S,{class:`ml-auto`,size:`small`,round:``,onClick:r.onNewSession},{default:g(()=>[i(l(r.$t(`codingBridge.session.newSession`)),1)]),_:1},8,[`onClick`])])):(u(),t(s,{key:1},[r.editingActive?(u(),t(`div`,on,[n(`span`,sn,[o(x,{icon:`fa-solid fa-pen`,class:`text-[var(--el-color-primary)]`}),i(` `+l(r.$t(`codingBridge.session.editingBanner`)),1)]),r.canRestoreCode?(u(),a(k,{key:0,modelValue:r.restoreCode,"onUpdate:modelValue":f[4]||=e=>r.restoreCode=e,size:`small`,class:`cb-restore-code`},{default:g(()=>[i(l(r.$t(`codingBridge.session.editRestoreCode`)),1)]),_:1},8,[`modelValue`])):p(``,!0),n(`button`,{type:`button`,class:`ml-auto cb-edit-cancel`,onClick:f[5]||=(...e)=>r.cancelEdit&&r.cancelEdit(...e)},l(r.$t(`codingBridge.session.editCancel`)),1)])):p(``,!0),n(`div`,cn,[r.attachmentFileList.length?(u(),t(`div`,ln,[(u(!0),t(s,null,e(r.attachmentFileList,(e,i)=>(u(),t(`div`,{key:e.uid||e.name||i,class:`group relative flex max-w-[220px] items-center gap-2 rounded-md border border-[var(--app-border-subtle)] bg-[var(--app-sidebar-bg)] px-2 py-1.5 text-xs`},[r.attachmentPreviewUrl(e)?(u(),t(`img`,{key:0,src:r.attachmentPreviewUrl(e),class:`h-8 w-8 rounded object-cover`,alt:r.$t(`codingBridge.session.attachmentImageAlt`)},null,8,un)):(u(),t(`span`,dn,[o(x,{icon:`fa-solid fa-file`})])),n(`span`,{class:`min-w-0 flex-1 truncate`,title:e.name},l(e.name),9,fn),r.isAttachmentUploading(e)?(u(),t(`span`,pn,l(Math.round(e.percentage||0))+`% `,1)):p(``,!0),n(`button`,{type:`button`,class:`flex h-5 w-5 items-center justify-center rounded-full text-[var(--app-text-subtle)] hover:bg-[var(--app-content-hover-bg)] hover:text-[var(--el-color-danger)]`,title:r.$t(`codingBridge.session.removeAttachment`),onClick:t=>r.removeAttachment(i,e)},[o(x,{icon:`fa-solid fa-xmark`})],8,mn)]))),128))])):p(``,!0),r.slashMenuVisible?(u(),t(`ul`,hn,[(u(!0),t(s,null,e(r.slashMatches,(e,i)=>(u(),t(`li`,{key:e.name,class:c([`cb-slash-menu__item`,{"cb-slash-menu__item--active":i===r.slashActiveIndex}]),onMousedown:d(t=>r.applySlash(e),[`prevent`]),onMouseenter:e=>r.slashActiveIndex=i},[n(`span`,_n,`/`+l(e.name),1),e.argument_hint?(u(),t(`span`,vn,l(e.argument_hint),1)):p(``,!0),e.description?(u(),t(`span`,yn,l(e.description),1)):p(``,!0)],42,gn))),128))])):p(``,!0),o(A,{modelValue:r.prompt,"onUpdate:modelValue":f[6]||=e=>r.prompt=e,type:`textarea`,autosize:{minRows:2,maxRows:12},resize:`none`,class:`cb-composer__input`,placeholder:r.$t(`codingBridge.session.promptPlaceholder`),onKeydown:r.onComposerKeydown},null,8,[`modelValue`,`placeholder`,`onKeydown`]),o(j,{ref:`uploader`,"file-list":r.attachmentFileList,"onUpdate:fileList":f[7]||=e=>r.attachmentFileList=e,class:`h-0 w-0 overflow-hidden opacity-0`,name:`file`,action:r.uploadUrl,headers:r.headers,multiple:!0,limit:r.maxAttachments,"show-file-list":!1,"before-upload":r.beforeAttachmentUpload,"on-change":r.onAttachmentChange,"on-success":r.onAttachmentSuccess,"on-error":r.onAttachmentError,"on-exceed":r.onAttachmentExceed},{default:g(()=>[n(`span`,bn,null,512)]),_:1},8,[`file-list`,`action`,`headers`,`limit`,`before-upload`,`on-change`,`on-success`,`on-error`,`on-exceed`]),n(`div`,xn,[n(`button`,{type:`button`,class:`cb-icon-btn`,title:r.$t(`codingBridge.session.attachFile`),onClick:f[8]||=(...e)=>r.onTriggerAttachmentUpload&&r.onTriggerAttachmentUpload(...e)},[o(x,{icon:`fa-solid fa-paperclip`})],8,Sn),n(`div`,Cn,[r.isNewSession?(u(),a(P,{key:0,trigger:`click`,onCommand:f[9]||=e=>r.provider=e},{dropdown:g(()=>[o(N,null,{default:g(()=>[(u(!0),t(s,null,e(r.providerOptions,e=>(u(),a(M,{key:e.value,command:e.value,disabled:!e.available},{default:g(()=>[o(x,{icon:`fa-solid fa-check`,class:c([`mr-2`,e.value===r.provider?`opacity-100`:`opacity-0`])},null,8,[`class`]),r.providerIcon(e.value)?(u(),t(`img`,{key:0,src:r.providerIcon(e.value).src,class:c([`cb-pill__brand mr-1.5`,{"cb-pill__brand--invert":r.providerIcon(e.value).invertOnDark}]),alt:``},null,10,Dn)):p(``,!0),i(` `+l(e.label)+` `,1),e.available?p(``,!0):(u(),t(`span`,On,l(r.$t(`codingBridge.session.providerUnavailable`)),1))]),_:2},1032,[`command`,`disabled`]))),128))]),_:1})]),default:g(()=>[n(`button`,wn,[r.providerIcon(r.provider)?(u(),t(`img`,{key:0,src:r.providerIcon(r.provider).src,class:c([`cb-pill__brand`,{"cb-pill__brand--invert":r.providerIcon(r.provider).invertOnDark}]),alt:``},null,10,Tn)):(u(),a(x,{key:1,icon:`fa-solid fa-code`,class:`cb-pill__icon`})),n(`span`,En,l(r.providerName(r.provider)),1),o(x,{icon:`fa-solid fa-chevron-down`,class:`cb-pill__caret`})])]),_:1})):(u(),t(`span`,kn,[r.providerIcon(r.currentSession?.provider||`claude`)?(u(),t(`img`,{key:0,src:r.providerIcon(r.currentSession?.provider||`claude`).src,class:c([`cb-pill__brand`,{"cb-pill__brand--invert":r.providerIcon(r.currentSession?.provider||`claude`).invertOnDark}]),alt:``},null,10,An)):(u(),a(x,{key:1,icon:`fa-solid fa-code`,class:`cb-pill__icon`})),n(`span`,jn,l(r.providerName(r.currentSession?.provider||`claude`)),1)])),o(F,{ref:`modelPopover`,trigger:`click`,placement:`top-start`,width:260},{reference:g(()=>[n(`button`,Mn,[o(x,{icon:`fa-solid fa-brain`,class:`cb-pill__icon`}),n(`span`,Nn,l(r.model||r.$t(`codingBridge.session.modelDefault`)),1),o(x,{icon:`fa-solid fa-chevron-down`,class:`cb-pill__caret`})])]),default:g(()=>[n(`div`,Pn,[n(`button`,{type:`button`,class:`cb-model-option`,onClick:f[10]||=e=>r.selectModel(``)},[o(x,{icon:`fa-solid fa-check`,class:c([`cb-model-option__check`,r.model?`opacity-0`:`opacity-100`])},null,8,[`class`]),n(`span`,Fn,l(r.$t(`codingBridge.session.modelDefault`)),1)]),(u(!0),t(s,null,e(r.modelOptions,e=>(u(),t(`button`,{key:e.value,type:`button`,class:`cb-model-option`,onClick:t=>r.selectModel(e.value)},[o(x,{icon:`fa-solid fa-check`,class:c([`cb-model-option__check`,e.value===r.model?`opacity-100`:`opacity-0`])},null,8,[`class`]),n(`span`,Ln,l(e.label),1)],8,In))),128)),r.allowCustomModel?(u(),t(`div`,Rn,[o(A,{modelValue:r.customModelDraft,"onUpdate:modelValue":f[11]||=e=>r.customModelDraft=e,size:`small`,placeholder:r.$t(`codingBridge.session.modelPlaceholder`),onKeyup:_(r.applyCustomModel,[`enter`])},{append:g(()=>[o(S,{disabled:!r.customModelDraft.trim(),onClick:r.applyCustomModel},{default:g(()=>[o(x,{icon:`fa-solid fa-check`})]),_:1},8,[`disabled`,`onClick`])]),_:1},8,[`modelValue`,`placeholder`,`onKeyup`])])):p(``,!0)])]),_:1},512),r.effortOptions.length>1?(u(),a(P,{key:2,trigger:`click`,onCommand:f[12]||=e=>r.effort=e},{dropdown:g(()=>[o(N,null,{default:g(()=>[(u(!0),t(s,null,e(r.effortOptions,e=>(u(),a(M,{key:e.value,command:e.value},{default:g(()=>[o(x,{icon:`fa-solid fa-check`,class:c([`mr-2`,e.value===r.effort?`opacity-100`:`opacity-0`])},null,8,[`class`]),i(` `+l(e.label),1)]),_:2},1032,[`command`]))),128))]),_:1})]),default:g(()=>[n(`button`,zn,[o(x,{icon:`fa-solid fa-gauge-high`,class:`cb-pill__icon`}),n(`span`,Bn,l(r.effortLabel(r.effort)),1),o(x,{icon:`fa-solid fa-chevron-down`,class:`cb-pill__caret`})])]),_:1})):p(``,!0),o(P,{trigger:`click`,onCommand:f[13]||=e=>r.permissionMode=e},{dropdown:g(()=>[o(N,null,{default:g(()=>[(u(!0),t(s,null,e(r.permissionModeOptions,e=>(u(),a(M,{key:e.value,command:e.value},{default:g(()=>[o(x,{icon:`fa-solid fa-check`,class:c([`mr-2`,e.value===r.permissionMode?`opacity-100`:`opacity-0`])},null,8,[`class`]),i(` `+l(e.label),1)]),_:2},1032,[`command`]))),128))]),_:1})]),default:g(()=>[n(`button`,Vn,[o(x,{icon:`fa-solid fa-shield-halved`,class:`cb-pill__icon`}),n(`span`,Hn,l(r.permissionModeLabel(r.permissionMode)),1),o(x,{icon:`fa-solid fa-chevron-down`,class:`cb-pill__caret`})])]),_:1}),r.canPickCwd?(u(),a(F,{key:3,trigger:`click`,placement:`top-start`,width:320},{reference:g(()=>[n(`button`,Un,[o(x,{icon:`fa-solid fa-folder-open`,class:`cb-pill__icon`}),n(`span`,Wn,l(r.cwd||r.$t(`codingBridge.session.cwdDefault`)),1),o(x,{icon:`fa-solid fa-chevron-down`,class:`cb-pill__caret`})])]),default:g(()=>[o(A,{modelValue:r.cwd,"onUpdate:modelValue":f[17]||=e=>r.cwd=e,size:`small`,clearable:``,class:`cb-cwd-input`,placeholder:r.$t(`codingBridge.session.cwdPlaceholder`)},{suffix:g(()=>[n(`span`,{class:`cb-cwd-browse`,role:`button`,tabindex:`0`,title:r.$t(`codingBridge.directory.title`),"aria-label":r.$t(`codingBridge.directory.title`),onClick:f[14]||=(...e)=>r.openDirectory&&r.openDirectory(...e),onKeydown:[f[15]||=_(d((...e)=>r.openDirectory&&r.openDirectory(...e),[`prevent`]),[`enter`]),f[16]||=_(d((...e)=>r.openDirectory&&r.openDirectory(...e),[`prevent`]),[`space`])]},[o(x,{icon:`fa-solid fa-folder-open`})],40,Gn)]),_:1},8,[`modelValue`,`placeholder`])]),_:1})):r.currentSession?.cwd?(u(),t(`span`,Kn,[o(x,{icon:`fa-solid fa-folder-open`,class:`cb-pill__icon`}),n(`span`,qn,l(r.currentSession?.cwd),1)])):p(``,!0)]),r.running?(u(),a(S,{key:0,circle:``,onClick:r.onInterrupt},{default:g(()=>[o(x,{icon:`fa-solid fa-stop`})]),_:1},8,[`onClick`])):p(``,!0),o(S,{type:`primary`,round:``,disabled:!r.canSend,onClick:r.onSend},{default:g(()=>[i(l(r.editingActive?r.$t(`codingBridge.session.editSubmit`):r.$t(`codingBridge.session.send`)),1)]),_:1},8,[`disabled`,`onClick`])])]),n(`p`,Jn,l(r.composerHint),1)],64))])],64)):(u(),t(`div`,jt,[o(x,{icon:`fa-solid fa-laptop-code`,class:`text-4xl mb-3`}),n(`p`,Mt,l(r.$t(`codingBridge.session.noDevice`)),1),o(S,{class:`md:hidden mt-4`,round:``,onClick:f[0]||=e=>r.$emit(`devices`)},{default:g(()=>[o(x,{icon:`fa-solid fa-laptop-code`,class:`mr-1`}),i(` `+l(r.$t(`codingBridge.nodeList.title`)),1)]),_:1})])),o(I,{visible:r.directoryVisible,"onUpdate:visible":f[18]||=e=>r.directoryVisible=e,"initial-path":r.cwd,onSelect:r.onDirectorySelect},null,8,[`visible`,`initial-path`,`onSelect`])])}var Xn=j(kt,[[`render`,Yn],[`__scopeId`,`data-v-f49f4ab0`]]),Zn=r({name:`CodingBridgePairDialog`,components:{ElDialog:F,ElInput:I,ElButton:v,FontAwesomeIcon:R},props:{visible:{type:Boolean,default:!1},initialCode:{type:String,default:``}},emits:[`update:visible`],data(){return{code:``}},computed:{claiming(){return this.$store.state.codingBridge?.status?.claimPair===M.Request}},watch:{visible(e){e&&this.initialCode&&(this.code=this.initialCode)},initialCode(e){e&&(this.code=e)}},methods:{async onClaim(){let e=this.code.trim();if(e)try{let t=await this.$store.dispatch(`codingBridge/claimPair`,e);L.success(this.$t(`codingBridge.pair.success`,{name:t})),this.code=``,this.$emit(`update:visible`,!1)}catch(e){let t=e?.response?.status;t===404?L.error(this.$t(`codingBridge.pair.invalidCode`)):t===409?L.error(this.$t(`codingBridge.pair.usedCode`)):L.error(this.$t(`codingBridge.pair.failed`))}}}}),Qn={class:`content`},$n={class:`text-sm text-[var(--app-text-subtle)] mb-4`},er={class:`steps list-none m-0 p-0 mb-4`},tr={class:`flex gap-3 mb-3`},nr={class:`flex-1 min-w-0`},rr={class:`text-sm mb-1`},ir={class:`flex gap-3 mb-3`},ar={class:`flex-1 min-w-0`},or={class:`text-sm mb-1`},sr={class:`flex gap-3`},cr={class:`flex-1 min-w-0`},lr={class:`text-sm`};function ur(e,t,r,s,c,d){let f=h(`el-input`),p=h(`font-awesome-icon`),m=h(`el-button`),v=h(`el-dialog`);return u(),a(v,{"model-value":e.visible,width:`520px`,title:e.$t(`codingBridge.pair.title`),center:``,"onUpdate:modelValue":t[1]||=t=>e.$emit(`update:visible`,t)},{default:g(()=>[n(`div`,Qn,[n(`p`,$n,l(e.$t(`codingBridge.pair.intro`)),1),n(`ol`,er,[n(`li`,tr,[t[3]||=n(`span`,{class:`step-index`},`1`,-1),n(`div`,nr,[n(`p`,rr,l(e.$t(`codingBridge.pair.step1`)),1),t[2]||=n(`code`,{class:`cmd`},`pip install coding-bridge`,-1)])]),n(`li`,ir,[t[5]||=n(`span`,{class:`step-index`},`2`,-1),n(`div`,ar,[n(`p`,or,l(e.$t(`codingBridge.pair.step2`)),1),t[4]||=n(`code`,{class:`cmd`},`coding-bridge up`,-1)])]),n(`li`,sr,[t[6]||=n(`span`,{class:`step-index`},`3`,-1),n(`div`,cr,[n(`p`,lr,l(e.$t(`codingBridge.pair.step3`)),1)])])]),o(f,{modelValue:e.code,"onUpdate:modelValue":t[0]||=t=>e.code=t,size:`large`,class:`mb-3`,placeholder:e.$t(`codingBridge.pair.codePlaceholder`),clearable:``,onKeyup:_(e.onClaim,[`enter`])},null,8,[`modelValue`,`placeholder`,`onKeyup`]),o(m,{type:`primary`,round:``,class:`w-full`,loading:e.claiming,disabled:!e.code.trim(),onClick:e.onClaim},{default:g(()=>[o(p,{icon:`fa-solid fa-link`,class:`mr-1`}),i(` `+l(e.$t(`codingBridge.pair.claim`)),1)]),_:1},8,[`loading`,`disabled`,`onClick`])])]),_:1},8,[`model-value`,`title`])}var dr=j(Zn,[[`render`,ur],[`__scopeId`,`data-v-085c4083`]]),fr=r({name:`CodingBridgePermissionDialog`,components:{ElDialog:F,ElButton:v,FontAwesomeIcon:R},computed:{request(){return(this.$store.state.codingBridge?.permissions??[]).find(e=>!H(e))},hasInput(){return!!this.request?.input&&Object.keys(this.request.input).length>0},inputText(){try{return JSON.stringify(this.request?.input,null,2)}catch{return String(this.request?.input??``)}}},methods:{onAllow(){this.request&&this.$store.dispatch(`codingBridge/resolvePermission`,{request_id:this.request.request_id,decision:`allow`})},onDeny(){this.request&&this.$store.dispatch(`codingBridge/resolvePermission`,{request_id:this.request.request_id,decision:`deny`})}}}),pr={key:0,class:`content`},mr={class:`text-sm text-[var(--app-text-subtle)] mb-3`},hr={class:`rounded-md border border-[var(--app-border-subtle)] p-3 mb-3`},gr={class:`flex items-center gap-2 font-medium`},_r={key:0,class:`text-xs text-[var(--app-text-subtle)] mt-1`},vr={key:1,class:`mt-2 text-xs overflow-x-auto whitespace-pre-wrap break-words text-[var(--app-text-subtle)] max-h-[200px]`},yr={class:`flex justify-end gap-2`};function br(e,r,s,c,d,f){let m=h(`font-awesome-icon`),_=h(`el-button`),v=h(`el-dialog`);return u(),a(v,{"model-value":!!e.request,width:`480px`,title:e.$t(`codingBridge.permission.title`),"close-on-click-modal":!1,"show-close":!1,center:``},{footer:g(()=>[n(`div`,yr,[o(_,{round:``,onClick:e.onDeny},{default:g(()=>[o(m,{icon:`fa-solid fa-xmark`,class:`mr-1`}),i(` `+l(e.$t(`codingBridge.permission.deny`)),1)]),_:1},8,[`onClick`]),o(_,{type:`primary`,round:``,onClick:e.onAllow},{default:g(()=>[o(m,{icon:`fa-solid fa-check`,class:`mr-1`}),i(` `+l(e.$t(`codingBridge.permission.allow`)),1)]),_:1},8,[`onClick`])])]),default:g(()=>[e.request?(u(),t(`div`,pr,[n(`p`,mr,l(e.$t(`codingBridge.permission.subtitle`)),1),n(`div`,hr,[n(`div`,gr,[o(m,{icon:`fa-solid fa-code`}),n(`span`,null,l(e.request.display_name||e.request.title||e.request.tool),1)]),e.request.description?(u(),t(`p`,_r,l(e.request.description),1)):p(``,!0),e.hasInput?(u(),t(`pre`,vr,l(e.inputText),1)):p(``,!0)])])):p(``,!0)]),_:1},8,[`model-value`,`title`])}var xr=j(fr,[[`render`,br]]),Sr={claude:{src:Y,invertOnDark:!1},codex:{src:X,invertOnDark:!0}},Cr=r({name:`CodingBridgeHistoryDrawer`,components:{ElDrawer:x,ElButton:v,FontAwesomeIcon:R},props:{visible:{type:Boolean,default:!1}},emits:[`update:visible`],computed:{currentNodeId(){return this.$store.state.codingBridge?.currentNodeId},loading(){return this.$store.state.codingBridge?.status?.getHistory===M.Request},sessions(){let e=this.currentNodeId;return[...e?this.$store.state.codingBridge?.history?.[e]??[]:[]].sort((e,t)=>(t.updated_at??0)-(e.updated_at??0))}},watch:{visible(e){e&&this.currentNodeId&&this.$store.dispatch(`codingBridge/getHistory`,this.currentNodeId)}},methods:{providerLabel(e){return{claude:`Claude Code`,codex:`Codex`,copilot:`GitHub Copilot`}[e]??e},providerIcon(e){return Sr[e]??null},refresh(){this.currentNodeId&&this.$store.dispatch(`codingBridge/getHistory`,this.currentNodeId)},open(e){this.currentNodeId&&(this.$store.dispatch(`codingBridge/reattachSession`,{node_id:this.currentNodeId,provider:e.provider,session_id:e.session_id}),this.$emit(`update:visible`,!1))},formatTime(e){try{return new Date(e).toLocaleString()}catch{return``}}}}),wr={class:`flex flex-col h-full`},Tr={class:`flex items-center justify-between mb-3`},$={class:`text-xs text-[var(--app-text-subtle)] m-0`},Er={key:0,class:`m-auto text-sm text-[var(--app-text-subtle)]`},Dr={key:1,class:`m-auto text-sm text-[var(--app-text-subtle)]`},Or={key:2,class:`m-auto text-sm text-[var(--app-text-subtle)] text-center`},kr={key:3,class:`list-none m-0 p-0 flex-1 overflow-y-auto flex flex-col gap-2`},Ar=[`onClick`],jr={class:`flex items-center gap-2 mb-1`},Mr=[`src`,`alt`],Nr={class:`text-sm font-medium truncate flex-1`},Pr=[`title`],Fr={class:`text-[11px] text-[var(--app-text-subtle)] truncate`},Ir={key:0},Lr={key:1},Rr={class:`text-[11px] text-[var(--app-text-subtle)] mt-0.5`},zr={key:0},Br={key:1};function Vr(r,d,f,m,_,v){let y=h(`font-awesome-icon`),b=h(`el-button`),x=h(`el-drawer`);return u(),a(x,{"model-value":r.visible,direction:`rtl`,size:`380px`,title:r.$t(`codingBridge.history.title`),"onUpdate:modelValue":d[0]||=e=>r.$emit(`update:visible`,e)},{default:g(()=>[n(`div`,wr,[n(`div`,Tr,[n(`p`,$,l(r.$t(`codingBridge.history.intro`)),1),o(b,{size:`small`,round:``,loading:r.loading,onClick:r.refresh},{default:g(()=>[r.loading?p(``,!0):(u(),a(y,{key:0,icon:`fa-solid fa-rotate-right`,class:`mr-1`})),i(` `+l(r.$t(`codingBridge.history.refresh`)),1)]),_:1},8,[`loading`,`onClick`])]),r.currentNodeId?r.loading&&!r.sessions.length?(u(),t(`div`,Dr,l(r.$t(`codingBridge.history.loading`)),1)):r.sessions.length?(u(),t(`ul`,kr,[(u(!0),t(s,null,e(r.sessions,e=>(u(),t(`li`,{key:e.provider+`:`+e.session_id,class:`item rounded-lg p-3 cursor-pointer border border-[var(--app-border-subtle)]`,onClick:t=>r.open(e)},[n(`div`,jr,[r.providerIcon(e.provider)?(u(),t(`img`,{key:0,src:r.providerIcon(e.provider).src,class:c([`provider-icon`,{"provider-icon--invert":r.providerIcon(e.provider).invertOnDark}]),alt:r.providerLabel(e.provider)},null,10,Mr)):(u(),a(y,{key:1,icon:`fa-solid fa-code`,class:`provider-icon`,title:r.providerLabel(e.provider)},null,8,[`title`])),n(`span`,Nr,l(e.title),1),e.running?(u(),t(`span`,{key:2,class:`running-dot`,title:r.$t(`codingBridge.history.running`)},null,8,Pr)):p(``,!0)]),n(`div`,Fr,[e.cwd?(u(),t(`span`,Ir,l(e.cwd),1)):p(``,!0),e.git_branch?(u(),t(`span`,Lr,` · `+l(e.git_branch),1)):p(``,!0)]),n(`div`,Rr,[e.updated_at?(u(),t(`span`,zr,l(r.formatTime(e.updated_at)),1)):p(``,!0),e.message_count?(u(),t(`span`,Br,` · `+l(r.$t(`codingBridge.history.messages`,{count:e.message_count})),1)):p(``,!0)])],8,Ar))),128))])):(u(),t(`div`,Or,l(r.$t(`codingBridge.history.empty`)),1)):(u(),t(`div`,Er,l(r.$t(`codingBridge.session.noDevice`)),1))])]),_:1},8,[`model-value`,`title`])}var Hr=r({name:`CodingBridgeIndex`,components:{ElDrawer:x,NodeList:Ce,SessionView:Xn,PairDialog:dr,PermissionDialog:xr,HistoryDrawer:j(Cr,[[`render`,Vr],[`__scopeId`,`data-v-ac1b9c7e`]])},data(){return{drawer:!1,pairVisible:!1,historyVisible:!1,initialCode:``}},mounted(){this.$store.dispatch(`codingBridge/connect`),this.$store.dispatch(`codingBridge/getNodes`);let e=this.$route.query.code;typeof e==`string`&&e&&(this.initialCode=e,this.pairVisible=!0),this.restoreFromUrl(),this.handleNotificationDeepLink(),this.cleanUrl()},beforeUnmount(){this.$store.dispatch(`codingBridge/disconnect`)},methods:{openPair(){this.initialCode=``,this.pairVisible=!0},openPairFromDrawer(){this.drawer=!1,this.openPair()},restoreFromUrl(){let e=this.$route.query,t=typeof e.session==`string`?e.session:``,n=typeof e.node==`string`?e.node:``;if(!t||!n)return;let r=e.provider===`codex`||e.provider===`copilot`?e.provider:`claude`;this.$store.commit(`codingBridge/setCurrentNode`,n),this.$store.commit(`codingBridge/setHistoryRef`,{node_id:n,provider:r,session_id:t}),this.$store.dispatch(`codingBridge/getHistory`,n),this.$store.dispatch(`codingBridge/requestSessions`,n)},cleanUrl(){let e=this.$route.query,t=[`session`,`node`,`provider`,`request`,`code`];if(!t.some(t=>t in e))return;let n={...e};t.forEach(e=>delete n[e]),this.$router.replace({query:n}).catch(()=>{})},handleNotificationDeepLink(){let e=this.$route.query.node;typeof e==`string`&&e&&(this.$route.query.session||this.$store.dispatch(`codingBridge/selectNode`,e),this.$store.dispatch(`codingBridge/requestPendingPermissions`,e))}}}),Ur={class:`coding-bridge flex flex-row h-full relative`};function Wr(e,n,r,i,a,s){let c=h(`node-list`),l=h(`session-view`),d=h(`el-drawer`),f=h(`pair-dialog`),p=h(`permission-dialog`),m=h(`history-drawer`);return u(),t(`div`,Ur,[o(c,{class:`sidebar w-[300px] flex-none`,onPair:e.openPair},null,8,[`onPair`]),o(l,{class:`flex-1 min-w-0`,onHistory:n[0]||=t=>e.historyVisible=!0,onDevices:n[1]||=t=>e.drawer=!0}),o(d,{modelValue:e.drawer,"onUpdate:modelValue":n[2]||=t=>e.drawer=t,direction:`ltr`,"with-header":!1,size:`300px`,class:`drawer`},{default:g(()=>[o(c,{onPair:e.openPairFromDrawer},null,8,[`onPair`])]),_:1},8,[`modelValue`]),o(f,{visible:e.pairVisible,"onUpdate:visible":n[3]||=t=>e.pairVisible=t,"initial-code":e.initialCode},null,8,[`visible`,`initial-code`]),o(p),o(m,{visible:e.historyVisible,"onUpdate:visible":n[4]||=t=>e.historyVisible=t},null,8,[`visible`])])}var Gr=j(Hr,[[`render`,Wr],[`__scopeId`,`data-v-2879fe0f`]]);export{Gr as default};
@@ -1 +0,0 @@
1
- var e={"button.setup":{message:`Aseta`,description:`Painikkeen teksti, jota käytetään asetusten tekemiseen`},"button.start":{message:`Aloita`,description:`Painikkeen teksti, jota käytetään joidenkin toimintojen aloittamiseen`},"button.copy":{message:`Kopioi`,description:`Painikkeen teksti, jota käytetään sisällön kopioimiseen`},"button.copied":{message:`Kopioitu`,description:`Painikkeen teksti, joka osoittaa, että sisältö on kopioitu`},"button.restart":{message:`Uudelleen`,description:`Painikkeen teksti, jota käytetään joidenkin sisältöjen asettamiseen`},"button.preview":{message:`Esikatselu`,description:`Painikkeen teksti, jota käytetään tiedoston esikatselun avaamiseen URL-osoitteen kautta`},"button.seeRawImage":{message:`Näytä alkuperäinen kuva`,description:`Painikkeen teksti, jota käytetään alkuperäisen kuvan katsomiseen`},"button.seeRawVideo":{message:`Näytä video`,description:`Painikkeen teksti, jota käytetään alkuperäisen videon katsomiseen`},"button.edit":{message:`Muokkaa`,description:`Painikkeen teksti, jota käytetään sisällön muokkaamiseen`},"button.login":{message:`Kirjaudu sisään`,description:`Painikkeen teksti, jota käytetään kirjautumiseen`},"button.logout":{message:`Kirjaudu ulos`,description:`Painikkeen teksti, jota käytetään uloskirjautumiseen`},"button.new":{message:`Uusi`,description:`Painikkeen teksti, jota käytetään uuden kohteen luomiseen`},"button.delete":{message:`Poista`,description:`Painikkeen teksti, jota käytetään sisällön poistamiseen`},"button.deletePermanently":{message:`Poista tili pysyvästi`,description:`Final red delete button at the bottom of the delete confirmation dialog`},"button.confirm":{message:`Vahvista`,description:`Painikkeen teksti, jota käytetään toiminnan vahvistamiseen`},"button.cancel":{message:`Peruuta`,description:`Painikkeen teksti, jota käytetään toiminnan peruuttamiseen`},"button.close":{message:`Sulje`,description:`Painikkeen teksti, jota käytetään dialogin tai paneelin sulkemiseen`},"button.expand":{message:`Laajenna`,description:`Painikkeen ohjeteksti, jota käytetään avamaan ohjeiden syöttökentän koko näytön muokkaustila.`},"button.alert":{message:`Varoitus`,description:`Painikkeen teksti, jota käytetään varoituksen antamiseen`},"button.info":{message:`Tietoa`,description:`Painikkeen teksti, jota käytetään tiedon näyttämiseen`},"button.publish":{message:`Julkaise`,description:`Painikkeen teksti, jota käytetään sisällön julkaisemiseen`},"button.watch":{message:`Katso`,description:`Painikkeen teksti, jota käytetään sisällön katsomiseen`},"button.verify":{message:`Vahvista henkilöllisyys`,description:`Painikkeen teksti, joka mahdollistaa käyttäjän henkilöllisyyden vahvistamisen`},"button.profile":{message:`Profiili`,description:`Painikkeen teksti, jota käytetään käyttäjäprofiilin näyttämiseen`},"button.console":{message:`Konsoli`,description:`Painikkeen teksti, jota käytetään konsolisivun näyttämiseen, jotta voidaan hallita verkkosivun sisältöä`},"button.learn":{message:`Opi`,description:`Painikkeen teksti, jota käytetään käyttäjän opettamiseen`},"button.buy":{message:`Osta`,description:`Painikkeen teksti, jota käytetään käyttäjän ostamiseen`},"button.try":{message:`Kokeile`,description:`Painikkeen teksti, jota käytetään käyttäjän kokeiluun`},"button.startForFree":{message:`Aloita ilmaiseksi`,description:`Painikkeen teksti, jota käytetään käyttäjän ilmaiseksi aloittamiseen`},"button.download":{message:`Lataa`,description:`Painikkeen teksti, jota käytetään tiedostojen lataamiseen (esim. ääni, video, kuva)`},"button.downloadAndroid":{message:`Lataa Android`,description:`Painikkeen teksti, jota käytetään Android-asennustiedoston lataamiseen`},"button.downloadIos":{message:`Lataa iOS-asennustiedosto`,description:`Painikkeen teksti, jota käytetään iOS-asennustiedoston lataamiseen`},"button.downloadWindows":{message:`Lataa Windowsille`,description:`Text in button for downloading the Windows desktop installer`},"button.downloadMac":{message:`Lataa macOS:lle`,description:`Text in button for downloading the macOS desktop installer`},"button.installIos":{message:`Asenna iOS`,description:`Painikkeen teksti, jota käytetään iOS-sovelluksen asentamiseen`},"button.apply":{message:`Hae`,description:`Painikkeen teksti, jota käytetään käyttäjän API-palvelun hakemiseen`},"button.refresh":{message:`Päivitä`,description:`Painikkeen teksti, jota käytetään sivun päivittämiseen`},"button.pay":{message:`Maksa`,description:`Painikkeen teksti, jota käytetään käyttäjän maksamiseen palvelumaksuista`},"button.repay":{message:`Jatka maksamista`,description:`Painikkeen teksti, jota käytetään käyttäjän maksamisen jatkamiseen`},"button.applied":{message:`Hakemus lähetetty`,description:`Painikkeen teksti, jota käytetään näyttämään, että käyttäjä on hakenut palvelua`},"button.acquire":{message:`Hanki`,description:`Painikkeen teksti, jota käytetään käyttäjän API-palvelun tokenin tai avaimen hankkimiseen`},"button.fillExample":{message:`Täytä esimerkki`,description:`Painikkeen teksti, jota käytetään käyttäjän esimerkkidatan täyttämiseen`},"button.buyMore":{message:`Lataa lisää`,description:`Painikkeen teksti, jota käytetään käyttäjän lataamiseen. Englanniksi on käännettävä 'Top Up', suomeksi 'Lataa lisää'.`},"button.update":{message:`Päivitä`,description:`Painikkeen teksti, jota käytetään sisällön päivittämiseen`},"button.view":{message:`Näytä`,description:`Painikkeen teksti, jota käytetään sisällön näyttämiseen`},"button.create":{message:`Luo`,description:`Painikkeen teksti, jota käytetään sisällön luomiseen`},"button.referralEarnings":{message:`Suositustulot`,description:`Painikkeen teksti, joka näyttää suositustulot, tarkoittaa, että käyttäjä voi ansaita kutsumalla muita käyttämään palvelua`},"button.finish":{message:`Valmis`,description:`Painikkeen teksti, joka käytetään toiminnon loppuunsaattamiseen`},"entity.id":{message:`ID`,description:`Näyttää entiteetin ainutlaatuisen tunnisteen`},"entity.type":{message:`Tyyppi`,description:`Näyttää entiteetin tyypin`},"entity.website":{message:`Ace Data Cloud`,description:`Verkkosivuston nimi, ei tarvitse kääntää, pidä 'Ace Data Cloud'`},"entity.copyright":{message:`Tekijänoikeus`,description:`Näyttää tekijänoikeustekstin`},"entity.platform":{message:`Alusta`,description:`Teksti, joka osoittaa, että tämä on API-palvelualusta`},"entity.title":{message:`Otsikko`,description:`Entiteetin otsikko`},"entity.icon":{message:`Ikoni`,description:`Entiteetin ikoni`},"entity.status":{message:`Tila`,description:`Entiteetin tila`},"status.loading":{message:`Ladataan...`,description:`Sisällön lataamisen aikana näytettävä tilateksti`},"error.appleSignInFailed":{message:`Apple-kirjautuminen epäonnistui. Yritä uudelleen tai käytä toista kirjautumistapaa.`,description:`Error toast shown when native Apple sign-in fails for a reason other than user cancellation`},"error.loginLinkExpired":{message:`Login link expired. Please sign in again.`,description:`Shown on the desktop client when an OAuth callback is dropped (state mismatch or expired).`},"entity.operation":{message:`Toiminto`,description:`Entiteetin toiminto`},"entity.description":{message:`Kuvaus`,description:`Entiteetin kuvaus`},"entity.createdAt":{message:`Luotu`,description:`Entiteetin luomisaika`},"entity.updatedAt":{message:`Päivitetty`,description:`Entiteetin päivitysaika`},"entity.order":{message:`Tilaus`,description:`Entiteetin tilaus, joka sisältää rahaa ja palvelutietoja, joista käyttäjän on maksettava`},"message.noTasks":{message:`Ei historiallisia tehtäviä, aloita uusi tehtävä~`,description:`Viesti, kun tehtäviä ei ole`},"message.usedAmount":{message:`Käytetty määrä`,description:`Näyttää käytetyn palvelumäärän`},"message.mobileAppDescription":{message:`Käytä AceData suoraan puhelimella, tällä hetkellä saatavilla Android APK:n lataaminen, iOS-asennuspaketti avataan latausta varten, kun se on allekirjoitettu.`,description:`Mobiilisovelluksen lataussivun selitys`},"message.mobileAndroidHint":{message:`Sopii Android-puhelimille ja -tableteille, skannaa koodi ja asenna uusin APK.`,description:`Android-latauskortin selitys`},"message.mobileAndroidPending":{message:`Android-asennuspaketti ei ole vielä valmis, yritä myöhemmin uudelleen.`,description:`Vihje, kun Android-asennuspaketti ei ole saatavilla`},"message.mobileAvailableNow":{message:`Android on nyt ladattavissa`,description:`Näyttää, että Android on ladattavissa`},"message.mobileSecureDelivery":{message:`Turvallinen CDN-jakelu`,description:`Korostaa, että latauslinkki toimitetaan CDN:n kautta`},"message.mobileDirectInstall":{message:`Suora APK-asennus`,description:`Kuvaa, että Android-puolella on suora APK-asennustapa`},"message.mobileLatestRelease":{message:`Nykyinen julkinen versio`,description:`Selittää, että näytettävä on uusin julkinen versio`},"message.mobileSharedAccount":{message:`Jaettu tili ja käyttöoikeus verkkosivuston kanssa`,description:`Selittää, että mobiiliversio jakaa tilin verkkosivuston kanssa`},"message.mobileIosHint":{message:`Sopii iPhoneen ja iPadiin, voidaan asentaa suoraan verkosta; jos järjestelmä estää, voit myös ladata IPA:n ja jakaa sen.`,description:`iOS-latauskortin selitys`},"message.mobileIosPending":{message:`iOS-asennuspaketti ei ole vielä ladattavissa, Apple-sertifikaatti ja -profiili ovat työn alla.`,description:`Vihje, kun iOS-asennuspaketti ei ole saatavilla`},"message.mobileComingSoon":{message:`Tulossa pian`,description:`Short status label shown on a platform card (e.g. iOS) while its build is being prepared`},"message.mobileNowOnAppStore":{message:`Now on the App Store`,description:`Status label shown on the iOS card when the app is live on the App Store`},"message.desktopWindowsHint":{message:`Windows 10:lle ja uudemmille (64-bittinen). Lataa asennusohjelma ja asenna kaksoisnapsauttamalla.`,description:`Windows desktop download card description`},"message.desktopMacHint":{message:`macOS 11:lle ja uudemmille. Valitse Maciisi sopiva versio — Apple Silicon (M-sarja) tai Intel.`,description:`macOS desktop download card description`},"message.desktopUnsignedNote":{message:`Työpöytäsovellukset ovat allekirjoittamattomia beta-versioita. Valitse Windowsissa SmartScreen-ilmoituksessa »Lisätietoja → Suorita silti«; valitse macOS:ssä sovellusta hiiren oikealla painikkeella »Avaa« ohittaaksesi Gatekeeperin.`,description:`Note explaining the desktop builds are unsigned betas and how to open them`},"button.getOnGooglePlay":{message:`Lataa Google Playsta`,description:`Button label that opens the app's Google Play Store listing`},"button.getOnAppStore":{message:`Get it on the App Store`,description:`Button label that opens the app's Apple App Store listing`},"message.mobileApkFallback":{message:`Eikö Google Play ole käytettävissä? Lataa APK suoraan.`,description:`Shown next to a secondary button offering a direct APK download for users who cannot access Google Play`},"message.mobilePlayStoreHint":{message:`Skannaa avataksesi Google Playn`,description:`Hint under the QR code explaining that scanning it opens the Google Play listing`},"message.mobileAppStoreHint":{message:`Scan to open the App Store`,description:`Hint under the QR code explaining that scanning it opens the App Store listing`},"message.mobileInstallNote":{message:`Kun asennat iOS:lle ensimmäistä kertaa yritys- tai Ad Hoc-pakettia, järjestelmä saattaa vaatia ensin luottamusta sertifikaattiin 'Asetukset > Yleiset > VPN ja laitehallinta' -valikossa.`,description:`Mobiilisovelluksen asennusvinkki`},"title.mobileApp":{message:`Mobiililataus`,description:`Mobiilisovelluksen lataussivun otsikko`},"title.mobileFastAccess":{message:`Nopeampi pääsy, ei sovelluskauppaa`,description:`Lataussivun etuuskortin otsikko, korostaa nopeaa asennusta`},"title.mobileTrustedRelease":{message:`Versioiden keskitetty hallinta, vakaampi jakelu`,description:`Lataussivun etuuskortin otsikko, korostaa versiota ja jakelun vakautta`},"title.mobileUnifiedExperience":{message:`Mobiiliversion ja verkkosivuston kokemus on yhtenäinen`,description:`Lataussivun etuuskortin otsikko, korostaa yhtenäistä kokemusta`},"nav.mobileApp":{message:`Mobiiliversio`,description:`Navigoinnin mobiilisovelluksen latauslinkki`},"message.mobileFastAccess":{message:`Käyttäjät voivat skannata koodin puhelimella ja asentaa suoraan, tai he voivat ladata APK:n työpöydältä ja jakaa sen tiimin jäsenille, sopii nopeaa kokeilua ja sisäistä testausta varten.`,description:`Lataussivun etuusselitys, korostaa nopeaa pääsyä`},"message.mobileTrustedRelease":{message:`Latauslinkit on keskitetty yhdelle sivulle, versiotiedot, alustan tila ja asennustapa ovat heti nähtävissä, mikä vähentää viestintäkustannuksia, jotka johtuvat linkkien hajautumisesta.`,description:`Lataussivun etuusselitys, korostaa yhtenäistä jakelua`},"message.mobileUnifiedExperience":{message:`Kirjautumisen jälkeen tilijärjestelmä, käyttöoikeudet ja palvelulinkit ovat yhtenäisiä verkkosivuston kanssa, mikä helpottaa käyttäjien saumattomaa siirtymistä työpöydän ja mobiilin välillä.`,description:`Lataussivun etuusselitys, korostaa yhtenäistä tilikokemusta`},"message.remainingAmount":{message:`Jäljellä oleva määrä`,description:`Näyttää jäljellä olevan palvelumäärän`},"message.copied":{message:`Kopioitu`,description:`Näyttää viestin, että sisältö on onnistuneesti kopioitu`},"message.restart":{message:`Uudelleenluo`,description:`Viesti, joka ilmoittaa, että sisältö on onnistuneesti kopioitu`},"message.confirmDelete":{message:`Haluatko varmasti poistaa tämän?`,description:`Vahvistusviesti käyttäjälle, että hän haluaa poistaa jonkin sisällön`},"message.expiredAt":{message:`Vanhentumisaika`,description:`Viesti palvelun vanhentumisajasta`},"message.alert":{message:`Varoitus`,description:`Viesti, joka varoittaa käyttäjää`},"message.deleteAccountConfirm":{message:`Tämä poistaa tilisi ja kaikki siihen liittyvät tiedot pysyvästi. Tätä toimintoa ei voi peruuttaa. Haluatko varmasti jatkaa?`,description:`Confirmation message shown before permanently deleting the user account`},"message.deleteAccountSuccess":{message:`Tilisi on poistettu.`,description:`Message shown after the user account is successfully deleted`},"message.deleteAccountFailed":{message:`Tilisi poistaminen epäonnistui. Yritä myöhemmin uudelleen.`,description:`Message shown when account deletion fails`},"message.deleteAccountWarning":{message:`Tätä toimintoa ei voi peruuttaa! Tilisi ja kaikki sen tiedot poistetaan pysyvästi eikä niitä voi palauttaa.`,description:`Red warning banner at the top of the delete confirmation dialog`},"message.deleteAccountConsequences":{message:`Poistetaan pysyvästi: profiili, saldo ja krediitit, sovellukset ja tilaukset, API-avaimet sekä kolmannen osapuolen kirjautumissidokset.`,description:`Explains what data will be removed in the delete confirmation dialog`},"message.deleteAccountTypePrompt":{message:`Kirjoita käyttäjänimesi vahvistaaksesi poiston:`,description:`Instructs the user to type their username to confirm; the username is shown separately below`},"message.deleteAccountPlaceholder":{message:`Kirjoita käyttäjänimesi tähän`,description:`Placeholder for the username confirmation input`},"message.info":{message:`Tietoa`,description:`Viesti, joka näyttää tietoa`},"message.free":{message:`Ilmainen`,description:`Viesti, joka ilmoittaa, että palvelu on ilmainen, mikä tarkoittaa, että käyttäjän ei tarvitse maksaa`},"message.startPrice":{message:`Alkaen`,description:`Viesti palvelun alimmasta hinnasta`},"message.joinDiscord":{message:`Liity Discordiin`,description:`Viesti, joka kehottaa käyttäjää liittymään Discord-kanavalle`},"message.addWeChat":{message:`Lisää WeChat`,description:`Viesti, joka kehottaa käyttäjää lisäämään WeChat-tilin`},"message.serviceTech":{message:`Tekninen tuki`,description:`Viesti teknisestä tuesta`},"message.businessCooperation":{message:`Data & Liiketoimintayhteistyö`,description:`Viesti liiketoimintayhteistyöstä`},"message.noData":{message:`Ei tietoja`,description:`Viesti, joka ilmoittaa, että taulukossa tai luettelossa ei ole tietoja`},"nav.home":{message:`Etusivu`,description:`Verkkosivuston navigointipalkin teksti, joka näyttää etusivun`},"nav.content":{message:`Sisältö`,description:`Verkkosivuston navigointipalkin teksti, joka näyttää sisältösivun`},"nav.category":{message:`Kategoria`,description:`Verkkosivuston navigointipalkin teksti, joka näyttää kategoriasivun`},"nav.service":{message:`Kaikki palvelut`,description:`Verkkosivuston navigointipalkin teksti, joka näyttää palvelusivun`},"nav.profile":{message:`Profiilini`,description:`Verkkosivuston navigointipalkin teksti, joka näyttää profiilisivun`},"nav.products":{message:`Tuotteet`,description:`Verkkosivuston navigointipalkin teksti, joka näyttää tuotesivun`},"nav.referral":{message:`Kumppanuusohjelma`,description:`Verkkosivuston navigointipalkin teksti, joka näyttää suosittelusivun`},"nav.apiPlatform":{message:`API-alusta`,description:`Verkkosivuston navigointipalkin teksti, joka näyttää API-alustasivun`},"nav.document":{message:`Kehittäjädokumentaatio`,description:`Verkkosivuston navigointipalkin teksti, joka näyttää dokumentaatiosivun`},"nav.console":{message:`Konsoli`,description:`Verkkosivuston navigointipalkin teksti, joka näyttää konsolisivun`},"nav.chatgpt":{message:`ChatGPT`,description:`Verkkosivuston navigointipalkin teksti, joka näyttää ChatGPT-sivun, älä käännä tätä kenttää, se on säilytettävä 'ChatGPT'`},"nav.deepseek":{message:`DeepSeek`,description:`Verkkosivuston navigointipalkin teksti, joka näyttää DeepSeek-sivun, älä käännä tätä kenttää, se on säilytettävä 'DeepSeek'`},"nav.grok":{message:`Grok`,description:`Verkkosivuston navigointipalkin teksti, joka näyttää Grok-sivun, älä käännä tätä kenttää, se on säilytettävä 'Grok'`},"nav.chat":{message:`Chat`,description:`Verkkosivuston navigointipalkin teksti, joka näyttää chattasivun, älä käännä tätä kenttää, se on säilytettävä 'Chat'`},"nav.veo":{message:`Veo`,description:`Verkkosivuston navigointipalkin teksti, joka näyttää chattasivun, älä käännä tätä kenttää, se on säilytettävä 'Veo'`},"nav.sora":{message:`Sora`,description:`Verkkosivuston navigointipalkin teksti, joka näyttää chattasivun, älä käännä tätä kenttää, se on säilytettävä 'Sora'`},"nav.midjourney":{message:`Midjourney`,description:`Verkkosivuston navigointipalkin teksti, joka näyttää Midjourney-sivun, älä käännä tätä kenttää, se on säilytettävä 'Midjourney'`},"nav.qrart":{message:`QRArt`,description:`Verkkosivuston navigointipalkin teksti, joka näyttää QRArt-sivun, älä käännä tätä kenttää, se on säilytettävä 'QRArt'`},"nav.suno":{message:`Suno`,description:`Verkkosivuston navigointipalkin teksti, joka näyttää Suno-sivun, älä käännä tätä kenttää, se on säilytettävä 'Suno'`},"nav.pixverse":{message:`Pixverse`,description:`Verkkosivuston navigointipalkin teksti, joka näyttää Pixverse-sivun, älä käännä tätä kenttää, se on säilytettävä 'Pixverse'`},"nav.flux":{message:`Flux`,description:`Verkkosivuston navigointipalkin teksti, joka näyttää Flux-sivun, älä käännä tätä kenttää, se on säilytettävä 'Flux'`},"nav.nanobanana":{message:`Nano Banana`,description:`Verkkosivuston navigointipalkin teksti, joka näyttää Nano Banana -sivun, älä käännä tätä kenttää, se on säilytettävä 'Nano Banana'`},"nav.openaiimage":{message:`OpenAI Image`,description:`Verkkosivuston navigointipalkin teksti, joka näyttää OpenAI Image -sivun, älä käännä tätä kenttää, se on säilytettävä 'OpenAI Image'`},"nav.seedream":{message:`SeeDream`,description:`Verkkosivuston navigointipalkissa oleva teksti, joka näyttää SeeDream-sivun, älä käännä tätä kenttää, se on säilytettävä 'SeeDream'`},"nav.seedance":{message:`SeeDance`,description:`网站导航栏中的文本,用于显示SeeDance页面,请不要翻译此字段,必须保持为'SeeDance'`},"nav.grokvideo":{message:`Grok Video`,description:`Text in the website navigation bar to display the Grok Imagine video page`},"nav.luma":{message:`Luma`,description:`网站导航栏中的文本,用于显示Luma页面,请不要翻译此字段,必须保持为'Luma'`},"nav.pika":{message:`Pika`,description:`网站导航栏中的文本,用于显示Pika页面,请不要翻译此字段,必须保持为'Pika'`},"nav.kling":{message:`Kling`,description:`网站导航栏中的文本,用于显示Kling页面,请不要翻译此字段,必须保持为'Kling'`},"nav.hailuo":{message:`Hailuo`,description:`网站导航栏中的文本,用于显示Hailuo页面,请不要翻译此字段,必须保持为'Hailuo'`},"nav.wan":{message:`Wan`,description:`网站导航栏中的文本,用于显示Wan页面,请不要翻译此字段,必须保持为'Wan'`},"nav.producer":{message:`Producer`,description:`网站导航栏中的文本,用于显示Producer页面,请不要翻译此字段,必须保持为'Producer'`},"nav.fish":{message:`Fish Audio`,description:`Sivuston navigointipalkissa oleva teksti, joka näyttää Fish Audio -sivun, älä käännä tätä kenttää, sen on oltava 'Fish Audio'`},"nav.kimi":{message:`Kimi`,description:`网站导航栏中的文本,用于显示Kimi页面,请不要翻译此字段,必须保持为'Kimi'`},"nav.serp":{message:`SERP`,description:`网站导航栏中的文本,用于显示SERP页面,请不要翻译此字段,必须保持为'SERP'`},"nav.codingBridge":{message:`Coding Bridge`,description:`Text in the website navigation bar to display the Coding Bridge page, must remain as 'Coding Bridge'`},"nav.webextrator":{message:`WebExtrator`,description:`Text in the website navigation bar to display the WebExtrator page, must remain as 'WebExtrator'`},"nav.image":{message:`Kuva`,description:`网站导航栏中的文本,用于显示图片页面`},"nav.music":{message:`Musiikki`,description:`网站导航栏中的文本,用于显示音乐页面`},"nav.video":{message:`Video`,description:`网站导航栏中的文本,用于显示视频页面`},"nav.distribution":{message:`Suositustulot`,description:`网站导航栏中的文本,用于显示推荐收益页面`},"nav.connections":{message:`Yhteydet`,description:`跳转到 auth.acedata.cloud 连接管理页的菜单项`},"nav.logOut":{message:`Kirjaudu ulos`,description:`网站导航栏中的文本,用于退出登录`},"nav.deleteAccount":{message:`Poista tili`,description:`Menu item to permanently delete the current user account`},"nav.site":{message:`Sivuston asetukset`,description:`网站导航栏中的文本,用于显示站点配置页面`},"nav.subsite":{message:`Oma alisivusto`,description:`侧边栏“我的分站”入口,仅在站点开启 features.subsite 时显示`},"nav.setting":{message:`Asetukset`,description:`网站导航栏中的文本,用于显示设置页面`},"nav.headshots":{message:`AI-profiilikuva`,description:`网站导航栏中的文本,用于显示站点配置页面`},"nav.more":{message:`Lisää`,description:`网站导航栏中的文本,用于展开更多服务`},"nav.locale":{message:`Kieliasetukset`,description:`网站导航栏中的文本,用于更改语言`},"nav.support":{message:`Asiakastuki`,description:`网站导航栏中的文本,用于显示联系页面`},"nav.darkMode":{message:`Tumma tila`,description:`网站导航栏中的文本,用于切换到深色主题`},"title.alert":{message:`Varoitus`,description:`警告消息的标题`},"title.placeholderOfSelect":{message:`Valitse`,description:`选择输入的占位符`},"title.placeholderOfInput":{message:`Täytä`,description:`输入的占位符`},"title.allApplications":{message:`Kaikki hakemukset`,description:`显示所有申请的页面标题`},"title.allOrders":{message:`Kaikki tilaukset`,description:`显示所有订单的页面标题`},"title.orderInfo":{message:`Tilaustiedot`,description:`显示订单信息的页面标题`},"title.buyMore":{message:`Lataus`,description:`页面标题,用于充值。英文必须翻译为“Top Up”,中文为“充值”。`},"title.distribution":{message:`Suositustulot`,description:`显示推荐收入的页面标题,意味着用户可以通过邀请他人使用该服务来赚钱`},"title.site":{message:`Sivuston asetukset`,description:`显示站点配置的页面标题`},"title.distributionHistory":{message:`Suositushistoria`,description:`显示推荐历史的页面标题`},"title.invitee":{message:`Kutsuja`,description:`显示邀请人的页面标题`},"title.allUsages":{message:`Käyttöhistoria`,description:`显示API服务所有使用的页面标题`},"title.allCredentials":{message:`Avaimet`,description:`显示所有凭证的页面标题,凭证用于访问API`},"about.title1":{message:`Ota yhteyttä`,description:`Näyttää yhteystiedot -osion pääotsikon`},"about.title2":{message:`Resurssit`,description:`Näyttää linkkien osan otsikon`},"about.title3":{message:`Linkit`,description:`Näyttää tukitietojen osan otsikon`},"about.address":{message:`131 Continental Dr, Suite 305, Newark, Delaware 19713, USA`,description:`Yrityksen osoite`},"about.email":{message:`office@acedata.cloud`,description:`Yrityksen sähköposti`},"about.link1":{message:`Palvelut`,description:`Linkki asiakirjasivulle`},"about.link2":{message:`Kehittäjädokumentaatio`,description:`Linkki palvelusivulle`},"about.link3":{message:`Konsoli`,description:`Linkki konsolisivulle`},"about.link4":{message:`Profiili`,description:`Linkki profiilisivulle`},"about.link5":{message:`UI-alusta`,description:`Linkki keskussivulle`},"about.link6":{message:`Suositustulot`,description:`Linkki suositustulojen sivulle`},"about.link7":{message:`Tuki`,description:`Linkki tukisivulle`},"about.link8":{message:`Käyttöehdot`,description:`Linkki käyttöehtosivulle`},"about.link9":{message:`Tietosuojakäytäntö`,description:`Linkki tietosuojakäytännön sivulle`},"theme.light":{message:`Vaalea`,description:`Vaalean teeman nimi`},"theme.dark":{message:`Tumma`,description:`Tumman teeman nimi`},"theme.system":{message:`Järjestelmä`,description:`Järjestelmäteeman nimi, joka tarkoittaa automaattista teeman vaihtamista järjestelmäasetusten mukaan`},"settings.general":{message:`Yleiset asetukset`,description:`Asetussivun yleisten asetusten osan otsikko`},"settings.language":{message:`Kieli`,description:`Asetussivun kieliasetusten osan otsikko`},"settings.theme":{message:`Teema`,description:`Asetussivun teemavalintojen osan otsikko`},"settings.seo":{message:`SEO-asetukset`,description:`Asetussivun SEO-asetusten osan otsikko`},"settings.site":{message:`Sivuston asetukset`,description:`Asetussivun sivuston asetusten osan otsikko`},"settings.distribution":{message:`Jakeluasetukset`,description:`Asetussivun jakeluasetusten osan otsikko`},"settings.function":{message:`Toiminta-asetukset`,description:`Asetussivun toiminta-asetusten osan otsikko`},"settings.auth":{message:`Kirjautumistapa`,description:`Asetussivun sivupalkin 'Kirjautumistapa' välilehden otsikko - määritä, mitä kirjautumistapoja sivustolla sallitaan ja mikä on oletuskirjautumistapa, näkyy vain sivuston ylläpitäjille.`},"settings.apiKey":{message:`API-avain`,description:`Asetussivun sivupalkin API-avain -käytön hallinta`},"field.operations":{message:`Toiminnot`,description:`Yleinen sarakeotsikko: taulukon rivien toimintopainikkeet (muokkaa, poista jne.)`},"nav.gemini":{message:`Gemini`,description:`Teksti verkkosivuston navigointipalkissa, joka näyttää Gemini-sivun, on säilytettävä 'Gemini'`},"nav.claude":{message:`Claude`,description:`Teksti verkkosivuston navigointipalkissa, joka näyttää Claude-sivun, on säilytettävä 'Claude'`},"button.detail":{message:`Näytä tiedot`,description:``},"button.testEnv":{message:`Testiympäristö`,description:`Painikkeen teksti, joka vaihtaa testiympäristöön`},"button.upload":{message:`Lataa`,description:`Painikkeen teksti, joka lataa tiedostoja tai sisältöä`},"message.cnbeian":{message:`Kiinan alueen rekisteröinti`,description:`Kiinan alueen rekisteröinnin selitys`},"message.copyFailed":{message:`Kopiointi epäonnistui`,description:`Näyttää viestin, että sisällön kopiointi epäonnistui`},"nav.tryNow":{message:`Kokeile nyt`,description:`Verkkosivuston navigointipalkissa oleva teksti, joka kannustaa käyttäjää kokeilemaan palvelua`},"title.coin":{message:`Kryptovaluutta`,description:`Näyttää kryptovaluuttojen sivun otsikon`},"title.distributionRank":{message:`Suositusranking`,description:`Näyttää suositusranking-sivun otsikon`},"title.distributionPlatformRank":{message:`Alustaranking`,description:`Näyttää alustaranking-sivun otsikon`},"customers.name1":{message:`Mark Du`,description:`Asiakkaan nimi`},"customers.job1":{message:`Ohjelmistosuunnittelija`,description:`Asiakkaan ammatti`},"customers.comment1":{message:`Ace Data Cloud on tarjonnut erinomaisia palveluja tiimillemme ja auttanut meitä parantamaan tuottavuutta. Erittäin tyytyväinen!`,description:`Asiakkaan arvio`},"customers.name2":{message:`Jacob Williams`,description:`Asiakkaan nimi`},"customers.job2":{message:`Tuotepäällikkö`,description:`Asiakkaan ammatti`},"customers.comment2":{message:`Ace Data Cloud on loistava integrointialusta, palvelun laatu on erinomaista.`,description:`Asiakkaan arvio`},"customers.name3":{message:`Larry Henry`,description:`Asiakkaan nimi`},"customers.job3":{message:`Suunnittelija`,description:`Asiakkaan ammatti`},"customers.comment3":{message:`Pidän Ace Data Cloudin palveluista, ne ovat helppokäyttöisiä ja kohtuuhintaisia, toivon niiden paranevan entisestään!`,description:`Asiakkaan arvio`},"nav.github":{message:`GitHub`,description:`GitHub-repositorion linkki`},"settings.github":{message:`Lähdekoodi`,description:`Linkki lähdekoodin tarkasteluun GitHubissa`},"settings.about":{message:`Tietoja`,description:`Asetussivun tietoja-osan otsikko`},"settings.localTools":{message:`Paikalliset työkalut`,description:`Desktop-only settings tab for managing local tool folders, permissions and grants.`},"settings.localToolsDesktopOnly":{message:`Käytettävissä vain työpöytäsovelluksessa.`,description:`Shown when the Local Tools tab is opened on web/mobile.`},"settings.localToolsFoldersTitle":{message:`Valtuutetut kansiot`,description:`Heading for the list of folders the AI may read/write locally.`},"settings.localToolsFoldersHint":{message:`Kansiot, joita tekoäly saa lukea ja kirjoittaa tällä laitteella. Työkalut suoritetaan paikallisesti; mikään ei poistu laitteeltasi ilman suostumustasi.`,description:`Help text under the authorized-folders heading.`},"settings.localToolsComputerUseTitle":{message:`Computer Use (experimental)`,description:`Heading for the opt-in Computer Use (screen + mouse/keyboard control) toggle.`},"settings.localToolsComputerUseHint":{message:`Let the AI see your screen and control the mouse and keyboard on this computer. Off by default — turn it on only when you need it. On macOS, grant Screen Recording and Accessibility permissions below. Each action still asks for your confirmation.`,description:`Help text under the Computer Use toggle.`},"settings.localToolsPreauthorizeAll":`Esihyväksy kaikki tietokoneen toiminnot`,"settings.localToolsPreauthorizeHint":`Salli kerralla kuvakaappaus, napsautus, kirjoitus, näppäimet ja kaikki toiminnot ja pyydä tarvittavat järjestelmäoikeudet.`,"settings.localToolsAddFolder":{message:`Lisää kansio`,description:`Button to pick a folder to authorize.`},"settings.localToolsRemove":{message:`Poista`,description:`Button to remove an authorized folder.`},"settings.localToolsNoFolders":{message:`Ei vielä valtuutettuja kansioita.`,description:`Empty state for the authorized-folders list.`},"settings.localToolsSave":{message:`Tallenna`,description:`Save the authorized folders.`},"settings.localToolsSaved":{message:`Tallennettu`,description:`Transient confirmation after saving local-tool folders.`},"settings.localToolsActiveTools":{message:`Aktiiviset työkalut`,description:`Label before the list of currently available local tools.`},"settings.localToolsGrantsTitle":{message:`Aina sallitut toiminnot`,description:`Heading for the persistent consent grants list.`},"settings.localToolsGrantsHint":{message:`Työkalukutsut, jotka valitsit sallittavaksi aina. Ne suoritetaan kysymättä uudelleen. Peru mikä tahansa ottaaksesi vahvistuksen taas käyttöön.`,description:`Help text under the always-allowed actions heading.`},"settings.localToolsRevoke":{message:`Peru`,description:`Button to revoke a single always-allow grant.`},"settings.localToolsRevokeAll":{message:`Peru kaikki`,description:`Button to revoke every always-allow grant.`},"settings.localToolsNoGrants":{message:`Ei aina sallittuja toimintoja. Sinulta kysytään ennen jokaista paikallista työkalua.`,description:`Empty state for the always-allowed actions list.`},"settings.localToolsPermsTitle":{message:`Järjestelmän käyttöoikeudet`,description:`Heading for the macOS system-permission section.`},"settings.localToolsPermsHint":{message:`Valinnainen. Yllä oleva kansiokäyttö ei tarvitse näitä – myönnä vain se, mitä tietty tehtävä vaatii.`,description:`Help text under the system-permissions heading.`},"settings.localToolsPermFullDisk":{message:`Täysi levyn käyttöoikeus`,description:`macOS Full Disk Access permission row.`},"settings.localToolsPermScreen":{message:`Näytön tallennus`,description:`macOS Screen Recording permission row.`},"settings.localToolsPermAccessibility":{message:`Käyttöapu`,description:`macOS Accessibility permission row.`},"settings.localToolsGranted":{message:`Myönnetty`,description:`Status tag when a system permission is granted.`},"settings.localToolsNotGranted":{message:`Ei myönnetty`,description:`Status tag when a system permission is not granted.`},"settings.localToolsOpen":{message:`Avaa…`,description:`Button to open the relevant macOS System Settings pane.`},"settings.subsites":{message:`Omat alisivustot`,description:`Asetusikkunassa alisivustojen hallinta-välilehden otsikko. Näkyy vain virallisella pääsivustolla, alisivustot eivät näy.`},"settings.adminOnlyHint":{message:`Tämä osio on vain sivuston ylläpitäjille, tavalliset käyttäjät eivät pääse siihen käsiksi.`,description:`Vihje, joka näytetään ylläpitäjille näkyvissä olevien asetusten välilehden yläosassa, kuten sivuston asetukset / SEO-asetukset / jakeluasetukset / toiminta-asetukset.`},"settings.officialOnlyHint":{message:`Tämä osio on vain pääsivustolla näkyvissä, alisivustot eivät näytä sitä.`,description:`Vihje, joka näytetään 'Omat alisivustot' -välilehden yläosassa, ilmoittaen, että tämä pääsy on vain virallisella pääsivustolla.`},"settings.customDomain":{message:`Mukautettu verkkotunnus`,description:`Title for the custom-domain management tab in the settings popup. Visible only on subsites (non-main-official hosts) for site admins.`},"settings.buildNow":{message:`Yksi napsautus rakentamiseen`,description:`Tietoja-sivun 'Yksi napsautus alisivuston rakentamiseen' -painikkeen teksti, näkyy vain virallisella pääsivustolla`},"settings.poweredBy":{message:`Avoimen lähdekoodin projekti`,description:`Tietoja-sivulla esitettävä otsikko, joka kertoo, mihin avoimen lähdekoodin projektiin tämä sivusto perustuu`},"settings.poweredByTip":{message:`Tämä sivusto perustuu Nexior-avoimen lähdekoodin projektiin, koodi on täysin avointa.`,description:`Tietoja-sivulla esitettävä selitys, joka kertoo, mihin avoimen lähdekoodin projektiin tämä sivusto perustuu`},"settings.apiService":{message:`API-palvelu`,description:`Tietoja-sivulla esitettävä otsikko, joka kertoo API-palvelun tarjoajasta`},"settings.apiServiceTip":{message:`Tämän sivuston API-palvelun tarjoaa Ace Data Cloud.`,description:`Tietoja-sivulla esitettävä selitys, joka kertoo API-palvelun tarjoajasta`},"settings.buildYourOwn":{message:`Rakenna oma`,description:`Tietoja-sivulla käyttäjälle, joka voi rakentaa samanlaisen sivuston, esitettävä otsikko`},"settings.buildYourOwnTip":{message:`Haluatko rakentaa samanlaisen AI-sivuston? Ota meihin yhteyttä saadaksesi käyttöönottoapua.`,description:`Tietoja-sivulla samanlaisen rakentamisen selitys`},"settings.contactUs":{message:`Ota yhteyttä asiakaspalveluun`,description:`Asiakaspalveluun ottamisen painikkeen teksti`},"message.viewOnGithub":{message:`Katso GitHubissa`,description:`Linkkiteksti projektin katsomiseen GitHubissa`},"title.notFound":{message:`Sivu on kadonnut`,description:`404-sivun otsikko`},"message.notFound":{message:`Käyttämäsi sivu ei ole olemassa, linkki on saattanut muuttua tai poistettu. Palaa etusivulle jatkaaksesi AceData AI -palveluiden tutkimista.`,description:`404-sivun alaotsikon kuvaus`},"message.notFoundEyebrow":{message:`Virhe`,description:`404-sivun yläosan pieni etiketti`},"message.notFoundPath":{message:`Pyyntöpolku`,description:`404-sivulla nykyisen pyyntöpolun esittämiseen käytettävä etiketti`},"button.backToHome":{message:`Palaa etusivulle`,description:`Painikkeen teksti, jota käytetään palaamaan etusivulle`},"button.goBack":{message:`Palaa edelliselle sivulle`,description:`Painikkeen teksti, jota käytetään palaamaan selaushistoriassa edelliselle sivulle`},"title.apiCode":{message:`API code for this request`,description:`Title of the dialog that shows the equivalent API code (curl / Python / Node) that would reproduce a result generated inside the product`},"message.viewCodeHint":{message:`Show API code for this request`,description:`Tooltip text on the View Code button shown alongside result-card action buttons (U1/U2/Download/Extend/...). Clicking the button opens a dialog with curl / Python / Node snippets that reproduce the same generation via the public API.`},"button.viewCode":{message:`View code`,description:`Button text that opens a dialog with the equivalent API code (curl / Python / Node) for the current result, similar to the OpenAI Playground 'View code' affordance`},"button.getApiKey":{message:`Get an API key`,description:`Link text in the API code dialog footer that opens the platform console page where users can create an API key`},"button.apiPlatform":{message:`API Platform`,description:`API code dialog footer button label. Clicking opens https://platform.acedata.cloud/ in a new tab so users can manage their API keys, balance and usage.`},"message.apiCodeIntro":{message:`Run this from your own code to produce the same result. Replace <YOUR_API_KEY> with a key from your platform console.`,description:`Helper text shown above the code tabs in the API code dialog, explaining how to use the snippet`},"tab.apiRequest":{message:`Pyyntö`,description:`API-koodin dialogin välilehden etiketti pyyntökoodille (koodi, joka toistaa nykyisen tuloksen).`},"tab.apiResponse":{message:`Vastaus`,description:`API-koodin dialogin välilehden etiketti reaaliaikaiselle vastaukselle, joka palautuu Suorita-painiketta napsautettaessa.`},"button.apiRun":{message:`Suorita uudelleen`,description:`API-koodin dialogin painike, joka suorittaa pyynnön uudelleen reaaliaikaisesti API:ta käyttäen käyttäjän avainta. Tulos on jo olemassa, joten napsauttaminen suorittaa sen uudelleen, ja se on laskutettavaa.`},"button.apiRunning":{message:`Suoritetaan…`,description:`API-koodin dialogin Suorita-painikkeen etiketti, kun reaaliaikainen pyyntö on käynnissä.`},"button.apiRunConfirm":{message:`Vahvista suoritus`,description:`Vahvistuspainikkeen etiketti dialogissa, joka varoittaa, että suorittaminen kuluttaa ylimääräisiä krediittejä.`},"button.viewDocs":{message:`Näytä asiakirjat`,description:`API-koodin dialogin alatunnisteen painike, joka avaa vastaavan API-dokumentaatiosivun alustalla.`},"message.apiClickRun":{message:`Napsauta 'Suorita uudelleen' käyttääksesi API-avaintasi tämän pyynnön suorittamiseen reaaliaikaisesti.`,description:`API-koodin dialogin vastaustabin tyhjät tilat, jotka näytetään ennen kuin käyttäjä on suorittanut pyynnön.`},"message.apiRunConfirmTitle":{message:`Vahvista suoritus`,description:`Vahvistusdialogin otsikko, joka näytetään ennen pyynnön uudelleen suorittamista API-koodin dialogista.`},"message.apiRunConfirmDesc":{message:`Tämä suoritus käyttää API-avaintasi ja tekee todellisen kutsun rajapintaan, mikä kuluttaa ylimääräisiä pisteitä. Vahvistatko jatkamisen?`,description:`Vahvistusdialogin runko, joka varoittaa, että pyynnön uudelleen suorittaminen on todellinen, laskutettava API-kutsu.`},"message.apiRunConfirmSkip":{message:`Älä enää muistuta`,description:`Valintaruutu suoritusvahvistusdialogissa, joka, kun se on valittuna, estää varoituksen seuraavilla suorituksilla.`},"message.apiRunTaskCreated":{message:`Tehtävä on luotu, sulje tämä ikkuna nähdäksesi uusimmat tulokset alla.`,description:`Onnistumisbanneri, joka näytetään API-koodin dialogissa sen jälkeen, kun suoritus palauttaa tehtävän ID:n, vihjaten että uusi tehtävä näkyy jo dialogin takana olevassa luettelossa.`},"button.apiViewLatest":{message:`Sulje ja katso`,description:`Painike API-koodin dialogin onnistumisbannerissa, joka sulkee dialogin, jotta käyttäjä voi nähdä juuri luodun tehtävän alla olevassa luettelossa.`},"message.uploadInProgress":{message:`Viiteaineistojen lataus on yhä käynnissä – odota hetki.`,description:`Toast shown when the user clicks the Generate button while one or more reference uploads are still in flight. Asks them to wait for uploads to complete before retrying.`},"appUpgrade.title":{message:`Update required`,description:`Title of the native-app version gate modal shown at startup when the installed build is older than what the backend supports.`},"appUpgrade.blockMessage":{message:`This version is no longer supported. Please update from the app store to continue.`,description:`Body text of the hard-block upgrade modal shown when the installed version is below min_supported. The modal has no dismiss affordance — the only button opens the app store.`},"appUpgrade.softMessage":{message:`A newer version is available. Update from the app store for the best experience.`,description:`Body text of the soft upgrade prompt shown when the installed version is below latest but above min_supported. The user can dismiss and keep using the app.`},"appUpgrade.openStore":{message:`Update now`,description:`Primary button on the upgrade modal — opens the App Store / Play Store URL in the system browser.`},"appUpgrade.later":{message:`Later`,description:`Secondary button on the soft upgrade prompt — dismisses the modal and lets the user keep using the current version. Only shown for non-forced upgrades.`},"nav.maestro":{message:`Maestro`,description:`Navigointipalkissa Maestro-artikkeleiden muuntaminen videoiksi -sivun teksti, säilytä 'Maestro'`},"nav.digitalhuman":{message:`Digital Human`,description:`Text in the website navigation bar for the Digital Human talking-head page`}};export{e as default};
@@ -1 +0,0 @@
1
- var e={"button.setup":{message:`Ustawienia`,description:`Tekst w przycisku, używany do przeprowadzania ustawień`},"button.start":{message:`Rozpocznij`,description:`Tekst w przycisku, używany do rozpoczęcia pewnych działań`},"button.copy":{message:`Kopiuj`,description:`Tekst w przycisku, używany do kopiowania treści`},"button.copied":{message:`Skopiowano`,description:`Tekst w przycisku, używany do oznaczenia, że treść została skopiowana`},"button.restart":{message:`Generuj ponownie`,description:`Tekst w przycisku, używany do ustawienia pewnych treści`},"button.preview":{message:`Podgląd`,description:`Tekst w przycisku, używany do otwierania podglądu pliku przez URL`},"button.seeRawImage":{message:`Zobacz oryginał`,description:`Tekst w przycisku, używany do przeglądania oryginalnego obrazu`},"button.seeRawVideo":{message:`Zobacz wideo`,description:`Tekst w przycisku, używany do przeglądania oryginalnego wideo`},"button.edit":{message:`Edytuj`,description:`Tekst w przycisku, używany do edytowania treści`},"button.login":{message:`Zaloguj się`,description:`Tekst w przycisku, używany do logowania`},"button.logout":{message:`Wyloguj się`,description:`Tekst w przycisku, używany do wylogowania`},"button.new":{message:`Nowy`,description:`Tekst w przycisku, używany do tworzenia nowego elementu`},"button.delete":{message:`Usuń`,description:`Tekst w przycisku, używany do usuwania treści`},"button.deletePermanently":{message:`Trwale usuń konto`,description:`Final red delete button at the bottom of the delete confirmation dialog`},"button.confirm":{message:`Potwierdź`,description:`Tekst w przycisku, używany do potwierdzania pewnych działań`},"button.cancel":{message:`Anuluj`,description:`Tekst w przycisku, używany do anulowania pewnych działań`},"button.close":{message:`Zamknij`,description:`Tekst w przycisku, używany do zamykania okna dialogowego lub panelu`},"button.expand":{message:`Rozwiń`,description:`Tekst przycisku, używany do otwierania edytora pełnoekranowego dla pola wprowadzania podpowiedzi.`},"button.alert":{message:`Ostrzeżenie`,description:`Tekst w przycisku, używany do wydawania ostrzeżenia`},"button.info":{message:`Informacje`,description:`Tekst w przycisku, używany do wyświetlania informacji`},"button.publish":{message:`Opublikuj`,description:`Tekst w przycisku, używany do publikowania treści`},"button.watch":{message:`Obejrzyj`,description:`Tekst w przycisku, używany do oglądania pewnej treści`},"button.verify":{message:`Weryfikacja`,description:`Tekst w przycisku, umożliwiający użytkownikowi przeprowadzenie weryfikacji`},"button.profile":{message:`Profil`,description:`Tekst w przycisku, używany do wyświetlania profilu użytkownika`},"button.console":{message:`Konsola`,description:`Tekst w przycisku, używany do wyświetlania strony konsoli, aby kontrolować pewne treści na stronie`},"button.learn":{message:`Ucz się`,description:`Tekst w przycisku, używany do umożliwienia użytkownikowi nauki pewnej treści`},"button.buy":{message:`Kup`,description:`Tekst w przycisku, używany do umożliwienia użytkownikowi zakupu pewnej treści`},"button.try":{message:`Wypróbuj`,description:`Tekst w przycisku, używany do umożliwienia użytkownikowi wypróbowania pewnej treści`},"button.startForFree":{message:`Rozpocznij za darmo`,description:`Tekst w przycisku, używany do umożliwienia użytkownikowi darmowego rozpoczęcia`},"button.download":{message:`Pobierz`,description:`Tekst w przycisku, używany do pobierania plików (np. audio, wideo, obrazy)`},"button.downloadAndroid":{message:`Pobierz Android`,description:`Tekst w przycisku, używany do pobierania pakietu instalacyjnego Android`},"button.downloadIos":{message:`Pobierz pakiet instalacyjny iOS`,description:`Tekst w przycisku, używany do pobierania pliku instalacyjnego iOS`},"button.downloadWindows":{message:`Pobierz dla Windows`,description:`Text in button for downloading the Windows desktop installer`},"button.downloadMac":{message:`Pobierz dla macOS`,description:`Text in button for downloading the macOS desktop installer`},"button.installIos":{message:`Zainstaluj iOS`,description:`Tekst w przycisku, używany do instalacji aplikacji iOS`},"button.apply":{message:`Aplikuj`,description:`Tekst w przycisku, używany do umożliwienia użytkownikowi aplikacji o usługę API`},"button.refresh":{message:`Odśwież`,description:`Tekst w przycisku, używany do odświeżania strony`},"button.pay":{message:`Zapłać`,description:`Tekst w przycisku, używany do umożliwienia użytkownikowi zapłaty za usługi`},"button.repay":{message:`Kontynuuj płatność`,description:`Tekst w przycisku, używany do umożliwienia użytkownikowi kontynuowania płatności za usługi`},"button.applied":{message:`Złożono`,description:`Tekst w przycisku, używany do wyświetlania, że użytkownik złożył wniosek o tę usługę`},"button.acquire":{message:`Uzyskaj`,description:`Tekst w przycisku, używany do umożliwienia użytkownikowi uzyskania tokena lub klucza usługi API`},"button.fillExample":{message:`Wypełnij przykład`,description:`Tekst w przycisku, używany do umożliwienia użytkownikowi wypełnienia przykładowych danych`},"button.buyMore":{message:`Doładuj`,description:`Tekst w przycisku, używany do umożliwienia użytkownikowi doładowania. Angielski musi być przetłumaczony na 'Top Up', a chiński na '充值'.`},"button.update":{message:`Aktualizuj`,description:`Tekst w przycisku, używany do aktualizacji treści`},"button.view":{message:`Zobacz`,description:`Tekst w przycisku, używany do przeglądania pewnej treści`},"button.create":{message:`Utwórz`,description:`Tekst w przycisku, używany do tworzenia pewnej treści`},"button.referralEarnings":{message:`Zarobki z polecenia`,description:`Tekst w przycisku, który wyświetla zarobki z polecenia, oznacza, że użytkownik może zarabiać, zapraszając innych do korzystania z tej usługi`},"button.finish":{message:`Zakończ`,description:`Tekst w przycisku, który służy do zakończenia operacji`},"entity.id":{message:`ID`,description:`Unikalny identyfikator wyświetlający encję`},"entity.type":{message:`Typ`,description:`Typ wyświetlający encję`},"entity.website":{message:`Ace Data Cloud`,description:`Nazwa strony, nie wymaga tłumaczenia, pozostaje 'Ace Data Cloud'`},"entity.copyright":{message:`Prawa autorskie`,description:`Tekst wyświetlający prawa autorskie`},"entity.platform":{message:`Platforma`,description:`Tekst wskazujący, że to platforma usług API`},"entity.title":{message:`Tytuł`,description:`Tytuł encji`},"entity.icon":{message:`Ikona`,description:`Ikona encji`},"entity.status":{message:`Status`,description:`Status encji`},"status.loading":{message:`Ładowanie...`,description:`Tekst stanu wyświetlany podczas ładowania treści`},"error.appleSignInFailed":{message:`Logowanie przez Apple nie powiodło się. Spróbuj ponownie lub użyj innej metody logowania.`,description:`Error toast shown when native Apple sign-in fails for a reason other than user cancellation`},"error.loginLinkExpired":{message:`Login link expired. Please sign in again.`,description:`Shown on the desktop client when an OAuth callback is dropped (state mismatch or expired).`},"entity.operation":{message:`Operacja`,description:`Operacja encji`},"entity.description":{message:`Opis`,description:`Opis encji`},"entity.createdAt":{message:`Utworzono`,description:`Czas utworzenia encji`},"entity.updatedAt":{message:`Zaktualizowano`,description:`Czas aktualizacji encji`},"entity.order":{message:`Zamówienie`,description:`Zamówienie encji, które zawiera informacje o pieniądzach i usługach, za które użytkownik musi zapłacić`},"message.noTasks":{message:`Brak historii zadań, rozpocznij nowe zadanie~`,description:`Wiadomość wyświetlana, gdy nie ma zadań`},"message.usedAmount":{message:`Wykorzystana kwota`,description:`Tekst wyświetlający kwotę wykorzystaną w usłudze`},"message.mobileAppDescription":{message:`Bezpośrednio korzystaj z AceData na telefonie, obecnie dostępne do pobrania Android APK, pakiet instalacyjny iOS będzie dostępny po podpisaniu.`,description:`Opis na stronie pobierania aplikacji mobilnej`},"message.mobileAndroidHint":{message:`Dla telefonów i tabletów z Androidem, zeskanuj kod QR, aby pobrać najnowsze APK.`,description:`Opis karty pobierania Android`},"message.mobileAndroidPending":{message:`Pakiet instalacyjny Android nie jest jeszcze gotowy, spróbuj ponownie później.`,description:`Wskazówka, gdy pakiet instalacyjny Android nie jest dostępny`},"message.mobileAvailableNow":{message:`Android dostępny do pobrania`,description:`Tekst wyświetlający status dostępności Android`},"message.mobileSecureDelivery":{message:`Bezpieczna dystrybucja CDN`,description:`Podkreślenie, że link do pobrania jest dostarczany przez CDN`},"message.mobileDirectInstall":{message:`Bezpośrednia instalacja APK`,description:`Opis metody bezpośredniej instalacji APK na Androidzie`},"message.mobileLatestRelease":{message:`Obecna wersja publiczna`,description:`Wyjaśnienie, że aktualnie wyświetlana jest najnowsza wersja publiczna`},"message.mobileSharedAccount":{message:`Wspólne konto i limity z wersją webową`,description:`Wyjaśnienie, że mobilna wersja korzysta z tego samego konta co wersja webowa`},"message.mobileIosHint":{message:`Dla iPhone'a i iPada, można zainstalować bezpośrednio online; jeśli system zablokuje, można najpierw pobrać IPA, a następnie rozprowadzić.`,description:`Opis karty pobierania iOS`},"message.mobileIosPending":{message:`Pakiet instalacyjny iOS nie jest jeszcze dostępny do pobrania, będzie dostępny po uzupełnieniu certyfikatów Apple i plików konfiguracyjnych.`,description:`Wskazówka, gdy pakiet instalacyjny iOS nie jest dostępny`},"message.mobileComingSoon":{message:`Wkrótce`,description:`Short status label shown on a platform card (e.g. iOS) while its build is being prepared`},"message.mobileNowOnAppStore":{message:`Now on the App Store`,description:`Status label shown on the iOS card when the app is live on the App Store`},"message.desktopWindowsHint":{message:`Dla Windows 10 i nowszych (64-bit). Pobierz instalator i kliknij dwukrotnie, aby zainstalować.`,description:`Windows desktop download card description`},"message.desktopMacHint":{message:`Dla macOS 11 i nowszych. Wybierz wersję pasującą do Twojego Maca — Apple Silicon (seria M) lub Intel.`,description:`macOS desktop download card description`},"message.desktopUnsignedNote":{message:`Aplikacje na komputer to niepodpisane wersje beta. W systemie Windows wybierz „Więcej informacji → Uruchom mimo to” w oknie SmartScreen; w systemie macOS kliknij aplikację prawym przyciskiem myszy i wybierz „Otwórz”, aby pominąć Gatekeeper.`,description:`Note explaining the desktop builds are unsigned betas and how to open them`},"button.getOnGooglePlay":{message:`Pobierz z Google Play`,description:`Button label that opens the app's Google Play Store listing`},"button.getOnAppStore":{message:`Get it on the App Store`,description:`Button label that opens the app's Apple App Store listing`},"message.mobileApkFallback":{message:`Brak dostępu do Google Play? Pobierz plik APK bezpośrednio.`,description:`Shown next to a secondary button offering a direct APK download for users who cannot access Google Play`},"message.mobilePlayStoreHint":{message:`Zeskanuj, aby otworzyć Google Play`,description:`Hint under the QR code explaining that scanning it opens the Google Play listing`},"message.mobileAppStoreHint":{message:`Scan to open the App Store`,description:`Hint under the QR code explaining that scanning it opens the App Store listing`},"message.mobileInstallNote":{message:`Podczas pierwszej instalacji pakietu korporacyjnego lub Ad Hoc na iOS, system może poprosić o zaufanie certyfikatowi w 'Ustawienia > Ogólne > VPN i zarządzanie urządzeniem'.`,description:`Wskazówka dotycząca instalacji aplikacji mobilnej`},"title.mobileApp":{message:`Pobieranie mobilne`,description:`Tytuł strony pobierania aplikacji mobilnej`},"title.mobileFastAccess":{message:`Szybszy dostęp, bez przechodzenia przez sklep z aplikacjami`,description:`Tytuł karty z zaletami na stronie pobierania, podkreślający szybkie instalacje`},"title.mobileTrustedRelease":{message:`Zarządzanie wersjami w jednym miejscu, stabilniejsza dystrybucja`,description:`Tytuł karty z zaletami na stronie pobierania, podkreślający stabilność wersji i dystrybucji`},"title.mobileUnifiedExperience":{message:`Jednolita doświadczenie na mobilnych i webowych`,description:`Tytuł karty z zaletami na stronie pobierania, podkreślający jednolite doświadczenie`},"nav.mobileApp":{message:`Aplikacja mobilna`,description:`Wejście do pobierania aplikacji mobilnej w nawigacji`},"message.mobileFastAccess":{message:`Użytkownicy mogą zeskanować kod QR, aby zainstalować bezpośrednio na telefonie, lub najpierw pobrać APK na komputerze i rozprowadzić je wśród członków zespołu, co jest odpowiednie dla szybkiego testowania i beta testów.`,description:`Opis zalet na stronie pobierania, podkreślający szybki dostęp`},"message.mobileTrustedRelease":{message:`Wszystkie linki do pobrania w jednym miejscu, numery wersji, status platformy i metody instalacji są widoczne na pierwszy rzut oka, co zmniejsza koszty komunikacji spowodowane rozproszeniem linków.`,description:`Opis zalet na stronie pobierania, podkreślający jednolitą dystrybucję`},"message.mobileUnifiedExperience":{message:`System konta, limity i wejścia do usług po zalogowaniu są zgodne z wersją webową, co ułatwia użytkownikom płynne przełączanie się między wersją desktopową a mobilną.`,description:`Opis zalet na stronie pobierania, podkreślający jednolite doświadczenie konta`},"message.remainingAmount":{message:`Pozostała kwota`,description:`Tekst wyświetlający pozostałą kwotę w usłudze`},"message.copied":{message:`Skopiowano`,description:`Wyświetla wiadomość o pomyślnym skopiowaniu treści`},"message.restart":{message:`Generuj ponownie`,description:`Używane do wyświetlenia komunikatu, że zawartość została pomyślnie skopiowana`},"message.confirmDelete":{message:`Czy na pewno chcesz usunąć?`,description:`Potwierdzenie, że użytkownik chce usunąć jakąś zawartość`},"message.expiredAt":{message:`Czas wygaśnięcia`,description:`Używane do wyświetlenia czasu wygaśnięcia usługi`},"message.alert":{message:`Ostrzeżenie`,description:`Komunikat ostrzegający użytkownika`},"message.deleteAccountConfirm":{message:`Spowoduje to trwałe usunięcie Twojego konta i wszystkich powiązanych danych. Tej operacji nie można cofnąć. Czy na pewno chcesz kontynuować?`,description:`Confirmation message shown before permanently deleting the user account`},"message.deleteAccountSuccess":{message:`Twoje konto zostało usunięte.`,description:`Message shown after the user account is successfully deleted`},"message.deleteAccountFailed":{message:`Nie udało się usunąć konta. Spróbuj ponownie później.`,description:`Message shown when account deletion fails`},"message.deleteAccountWarning":{message:`Tej czynności nie można cofnąć! Twoje konto i wszystkie jego dane zostaną trwale usunięte i nie będzie można ich odzyskać.`,description:`Red warning banner at the top of the delete confirmation dialog`},"message.deleteAccountConsequences":{message:`Trwale usunięte: profil, saldo i kredyty, aplikacje i subskrypcje, klucze API oraz powiązania logowania zewnętrznego.`,description:`Explains what data will be removed in the delete confirmation dialog`},"message.deleteAccountTypePrompt":{message:`Wpisz swoją nazwę użytkownika, aby potwierdzić usunięcie:`,description:`Instructs the user to type their username to confirm; the username is shown separately below`},"message.deleteAccountPlaceholder":{message:`Wpisz tutaj swoją nazwę użytkownika`,description:`Placeholder for the username confirmation input`},"message.info":{message:`Informacja`,description:`Komunikat wyświetlający informacje`},"message.free":{message:`Darmowe`,description:`Komunikat informujący, że usługa jest darmowa, co oznacza, że użytkownik nie musi płacić`},"message.startPrice":{message:`Cena początkowa`,description:`Komunikat wyświetlający najniższą cenę usługi`},"message.joinDiscord":{message:`Dołącz do Discorda`,description:`Komunikat zachęcający użytkownika do dołączenia do kanału Discord`},"message.addWeChat":{message:`Usługa WeChat`,description:`Komunikat zachęcający użytkownika do dodania konta WeChat`},"message.serviceTech":{message:`Wsparcie techniczne`,description:`Komunikat wyświetlający wsparcie techniczne`},"message.businessCooperation":{message:`Współpraca biznesowa`,description:`Komunikat wyświetlający informacje o współpracy biznesowej`},"message.noData":{message:`Brak danych`,description:`Komunikat wyświetlający, że w tabeli lub liście nie ma danych`},"nav.home":{message:`Strona główna`,description:`Tekst w nawigacji strony, używany do wyświetlenia strony głównej`},"nav.content":{message:`Treść`,description:`Tekst w nawigacji strony, używany do wyświetlenia strony z treścią`},"nav.category":{message:`Kategoria`,description:`Tekst w nawigacji strony, używany do wyświetlenia strony kategorii`},"nav.service":{message:`Wszystkie usługi`,description:`Tekst w nawigacji strony, używany do wyświetlenia strony usług`},"nav.profile":{message:`Mój profil`,description:`Tekst w nawigacji strony, używany do wyświetlenia strony profilu`},"nav.products":{message:`Produkty`,description:`Tekst w nawigacji strony, używany do wyświetlenia strony produktów`},"nav.referral":{message:`Program partnerski`,description:`Tekst w nawigacji strony, używany do wyświetlenia strony poleceń`},"nav.apiPlatform":{message:`Platforma API`,description:`Tekst w nawigacji strony, używany do wyświetlenia strony platformy API`},"nav.document":{message:`Dokumentacja dewelopera`,description:`Tekst w nawigacji strony, używany do wyświetlenia strony dokumentacji`},"nav.console":{message:`Konsola`,description:`Tekst w nawigacji strony, używany do wyświetlenia strony konsoli`},"nav.chatgpt":{message:`ChatGPT`,description:`Tekst w nawigacji strony, używany do wyświetlenia strony ChatGPT, nie tłumacz tego pola, musi pozostać jako 'ChatGPT'`},"nav.deepseek":{message:`DeepSeek`,description:`Tekst w nawigacji strony, używany do wyświetlenia strony DeepSeek, nie tłumacz tego pola, musi pozostać jako 'DeepSeek'`},"nav.grok":{message:`Grok`,description:`Tekst w nawigacji strony, używany do wyświetlenia strony Grok, nie tłumacz tego pola, musi pozostać jako 'Grok'`},"nav.chat":{message:`Czat`,description:`Tekst w nawigacji strony, używany do wyświetlenia strony czatu, nie tłumacz tego pola, musi pozostać jako 'Chat'`},"nav.veo":{message:`Veo`,description:`Tekst w nawigacji strony, używany do wyświetlenia strony czatu, nie tłumacz tego pola, musi pozostać jako 'Veo'`},"nav.sora":{message:`Sora`,description:`Tekst w nawigacji strony, używany do wyświetlenia strony czatu, nie tłumacz tego pola, musi pozostać jako 'Sora'`},"nav.midjourney":{message:`Midjourney`,description:`Tekst w nawigacji strony, używany do wyświetlenia strony Midjourney, nie tłumacz tego pola, musi pozostać jako 'Midjourney'`},"nav.qrart":{message:`QRArt`,description:`Tekst w nawigacji strony, używany do wyświetlenia strony sztuki 2D, nie tłumacz tego pola, musi pozostać jako 'QRArt'`},"nav.suno":{message:`Suno`,description:`Tekst w nawigacji strony, używany do wyświetlenia strony Suno, nie tłumacz tego pola, musi pozostać jako 'Suno'`},"nav.pixverse":{message:`Pixverse`,description:`Tekst w nawigacji strony, używany do wyświetlenia strony Pixverse, nie tłumacz tego pola, musi pozostać jako 'Pixverse'`},"nav.flux":{message:`Flux`,description:`Tekst w nawigacji strony, używany do wyświetlenia strony Flux, nie tłumacz tego pola, musi pozostać jako 'Flux'`},"nav.nanobanana":{message:`Nano Banana`,description:`Tekst w nawigacji strony, używany do wyświetlenia strony Nano Banana, nie tłumacz tego pola, musi pozostać jako 'Nano Banana'`},"nav.openaiimage":{message:`OpenAI Image`,description:`Tekst w nawigacji strony, używany do wyświetlenia strony OpenAI Image, nie tłumacz tego pola, musi pozostać jako 'OpenAI Image'`},"nav.seedream":{message:`SeeDream`,description:`Tekst w nawigacji strony, który wyświetla stronę SeeDream, proszę nie tłumaczyć tego pola, musi pozostać jako 'SeeDream'`},"nav.seedance":{message:`SeeDance`,description:`Tekst w nawigacji strony, który wyświetla stronę SeeDance, nie tłumaczyć, musi pozostać 'SeeDance'`},"nav.grokvideo":{message:`Grok Video`,description:`Text in the website navigation bar to display the Grok Imagine video page`},"nav.luma":{message:`Luma`,description:`Tekst w nawigacji strony, który wyświetla stronę Luma, nie tłumaczyć, musi pozostać 'Luma'`},"nav.pika":{message:`Pika`,description:`Tekst w nawigacji strony, który wyświetla stronę Pika, nie tłumaczyć, musi pozostać 'Pika'`},"nav.kling":{message:`Kling`,description:`Tekst w nawigacji strony, który wyświetla stronę Kling, nie tłumaczyć, musi pozostać 'Kling'`},"nav.hailuo":{message:`Hailuo`,description:`Tekst w nawigacji strony, który wyświetla stronę Hailuo, nie tłumaczyć, musi pozostać 'Hailuo'`},"nav.wan":{message:`Wan`,description:`Tekst w nawigacji strony, który wyświetla stronę Wan, nie tłumaczyć, musi pozostać 'Wan'`},"nav.producer":{message:`Producer`,description:`Tekst w nawigacji strony, który wyświetla stronę Producer, nie tłumaczyć, musi pozostać 'Producer'`},"nav.fish":{message:`Fish Audio`,description:`Tekst w pasku nawigacyjnym strony, używany do wyświetlania strony Fish Audio, proszę nie tłumaczyć tego pola, musi pozostać jako 'Fish Audio'`},"nav.kimi":{message:`Kimi`,description:`Tekst w nawigacji strony, który wyświetla stronę Kimi, nie tłumaczyć, musi pozostać 'Kimi'`},"nav.serp":{message:`SERP`,description:`Tekst w nawigacji strony, który wyświetla stronę SERP, nie tłumaczyć, musi pozostać 'SERP'`},"nav.codingBridge":{message:`Coding Bridge`,description:`Text in the website navigation bar to display the Coding Bridge page, must remain as 'Coding Bridge'`},"nav.webextrator":{message:`WebExtrator`,description:`Text in the website navigation bar to display the WebExtrator page, must remain as 'WebExtrator'`},"nav.image":{message:`Obraz`,description:`Tekst w nawigacji strony, który wyświetla stronę obrazu`},"nav.music":{message:`Muzyka`,description:`Tekst w nawigacji strony, który wyświetla stronę muzyki`},"nav.video":{message:`Wideo`,description:`Tekst w nawigacji strony, który wyświetla stronę wideo`},"nav.distribution":{message:`Zyski z poleceń`,description:`Tekst w nawigacji strony, który wyświetla stronę zysków z poleceń`},"nav.connections":{message:`Połączenia`,description:`Element menu prowadzący do strony zarządzania połączeniami auth.acedata.cloud`},"nav.logOut":{message:`Wyloguj się`,description:`Tekst w nawigacji strony, który służy do wylogowania`},"nav.deleteAccount":{message:`Usuń konto`,description:`Menu item to permanently delete the current user account`},"nav.site":{message:`Konfiguracja strony`,description:`Tekst w nawigacji strony, który wyświetla stronę konfiguracji strony`},"nav.subsite":{message:`Moje podstrony`,description:`Element bocznego menu 'Moje podstrony', widoczny tylko gdy funkcja features.subsite jest włączona`},"nav.setting":{message:`Ustawienia`,description:`Tekst w nawigacji strony, który wyświetla stronę ustawień`},"nav.headshots":{message:`AI Zdjęcia`,description:`Tekst w nawigacji strony, który wyświetla stronę konfiguracji strony`},"nav.more":{message:`Więcej`,description:`Tekst w nawigacji strony, który rozwija więcej usług`},"nav.locale":{message:`Ustawienia języka`,description:`Tekst w nawigacji strony, który służy do zmiany języka`},"nav.support":{message:`Wsparcie`,description:`Tekst w nawigacji strony, który wyświetla stronę kontaktową`},"nav.darkMode":{message:`Tryb ciemny`,description:`Tekst w nawigacji strony, który służy do przełączania na ciemny motyw`},"title.alert":{message:`Ostrzeżenie`,description:`Tytuł wiadomości ostrzegawczej`},"title.placeholderOfSelect":{message:`Wybierz`,description:`Placeholder dla wyboru`},"title.placeholderOfInput":{message:`Wypełnij`,description:`Placeholder dla wejścia`},"title.allApplications":{message:`Wszystkie aplikacje`,description:`Tytuł strony wyświetlającej wszystkie aplikacje`},"title.allOrders":{message:`Wszystkie zamówienia`,description:`Tytuł strony wyświetlającej wszystkie zamówienia`},"title.orderInfo":{message:`Informacje o zamówieniu`,description:`Tytuł strony wyświetlającej informacje o zamówieniu`},"title.buyMore":{message:`Doładuj`,description:`Tytuł strony do doładowania. Musi być przetłumaczone na 'Doładuj'.`},"title.distribution":{message:`Zyski z poleceń`,description:`Tytuł strony wyświetlającej zyski z poleceń, co oznacza, że użytkownik może zarabiać, zapraszając innych do korzystania z tej usługi`},"title.site":{message:`Konfiguracja strony`,description:`Tytuł strony wyświetlającej konfigurację strony`},"title.distributionHistory":{message:`Historia poleceń`,description:`Tytuł strony wyświetlającej historię poleceń`},"title.invitee":{message:`Osoba zapraszająca`,description:`Tytuł strony wyświetlającej osobę zapraszającą`},"title.allUsages":{message:`Historia użycia`,description:`Tytuł strony wyświetlającej wszystkie użycia usługi API`},"title.allCredentials":{message:`Klucze`,description:`Tytuł strony wyświetlającej wszystkie poświadczenia, które służą do uzyskania dostępu do API`},"about.title1":{message:`Kontakt`,description:`Tytuł sekcji wyświetlającej informacje kontaktowe`},"about.title2":{message:`Zasoby`,description:`Wyświetla część tytułu z linkami`},"about.title3":{message:`Linki`,description:`Wyświetla część tytułu z informacjami wsparcia`},"about.address":{message:`131 Continental Dr, Suite 305, Newark, DE 19713, USA`,description:`Adres firmy`},"about.email":{message:`office@acedata.cloud`,description:`E-mail firmy`},"about.link1":{message:`Usługi`,description:`Link do strony dokumentacji`},"about.link2":{message:`Dokumentacja dewelopera`,description:`Link do strony usług`},"about.link3":{message:`Konsola`,description:`Link do strony konsoli`},"about.link4":{message:`Profil`,description:`Link do strony profilu`},"about.link5":{message:`Platforma UI`,description:`Link do strony głównej`},"about.link6":{message:`Zyski z poleceń`,description:`Link do strony zysków z poleceń`},"about.link7":{message:`Wsparcie`,description:`Link do strony wsparcia`},"about.link8":{message:`Warunki korzystania`,description:`Link do strony warunków korzystania`},"about.link9":{message:`Polityka prywatności`,description:`Link do strony polityki prywatności`},"theme.light":{message:`Jasny`,description:`Nazwa jasnego motywu`},"theme.dark":{message:`Ciemny`,description:`Nazwa ciemnego motywu`},"theme.system":{message:`Systemowy`,description:`Nazwa motywu systemowego, oznaczająca automatyczne przełączanie motywu w zależności od ustawień systemowych`},"settings.general":{message:`Ustawienia ogólne`,description:`Tytuł sekcji ustawień ogólnych na stronie ustawień`},"settings.language":{message:`Język`,description:`Tytuł sekcji ustawień językowych na stronie ustawień`},"settings.theme":{message:`Motyw`,description:`Tytuł sekcji ustawień motywu na stronie ustawień`},"settings.seo":{message:`Ustawienia SEO`,description:`Tytuł sekcji ustawień SEO na stronie ustawień`},"settings.site":{message:`Ustawienia witryny`,description:`Tytuł sekcji ustawień witryny na stronie ustawień`},"settings.distribution":{message:`Ustawienia dystrybucji`,description:`Tytuł sekcji ustawień dystrybucji na stronie ustawień`},"settings.function":{message:`Ustawienia funkcji`,description:`Tytuł sekcji ustawień funkcji na stronie ustawień`},"settings.auth":{message:`Metoda logowania`,description:`Tytuł zakładki „Metoda logowania” w bocznym pasku ustawień — konfiguruje dostępne metody logowania oraz domyślną metodę logowania, widoczną tylko dla administratorów witryny.`},"settings.apiKey":{message:`Klucz API`,description:`Etykieta Klucz API w bocznym pasku na stronie ustawień - zarządzanie kluczem API dostawcy usług upstream (BYOK)`},"field.operations":{message:`Operacje`,description:`Ogólny tytuł kolumny: kolumna przycisków operacji w wierszach tabeli (edytuj, usuń itp.)`},"nav.gemini":{message:`Gemini`,description:`Tekst w pasku nawigacyjnym strony, aby wyświetlić stronę Gemini, musi pozostać jako 'Gemini'`},"nav.claude":{message:`Claude`,description:`Tekst w pasku nawigacyjnym strony, aby wyświetlić stronę Claude, musi pozostać jako 'Claude'`},"button.detail":{message:`Szczegóły`,description:``},"button.testEnv":{message:`Środowisko testowe`,description:`Tekst w przycisku do przełączania na środowisko testowe`},"button.upload":{message:`Prześlij`,description:`Tekst w przycisku do przesyłania plików lub treści`},"message.cnbeian":{message:`Rejestracja w Chinach`,description:`Informacje o rejestracji w Chinach`},"message.copyFailed":{message:`Kopiowanie nie powiodło się`,description:`Komunikat o niepowodzeniu kopiowania treści`},"nav.tryNow":{message:`Wypróbuj teraz`,description:`Tekst w pasku nawigacyjnym strony, aby umożliwić użytkownikowi wypróbowanie usługi`},"title.coin":{message:`Kryptowaluty`,description:`Tytuł strony wyświetlającej kryptowaluty`},"title.distributionRank":{message:`Ranking poleceń`,description:`Tytuł strony wyświetlającej ranking poleceń`},"title.distributionPlatformRank":{message:`Ranking platform`,description:`Tytuł strony wyświetlającej ranking platform`},"customers.name1":{message:`Mark Du`,description:`Imię i nazwisko klienta`},"customers.job1":{message:`Inżynier oprogramowania`,description:`Zawód klienta`},"customers.comment1":{message:`Ace Data Cloud zapewnił naszemu zespołowi doskonałą obsługę, pomagając nam zwiększyć wydajność. Bardzo polecam!`,description:`Ocena klienta`},"customers.name2":{message:`Jacob Williams`,description:`Imię i nazwisko klienta`},"customers.job2":{message:`Menadżer produktu`,description:`Zawód klienta`},"customers.comment2":{message:`Ace Data Cloud to świetna platforma integracyjna, jakość usług jest doskonała.`,description:`Ocena klienta`},"customers.name3":{message:`Larry Henry`,description:`Imię i nazwisko klienta`},"customers.job3":{message:`Projektant`,description:`Zawód klienta`},"customers.comment3":{message:`Uwielbiam usługi Ace Data Cloud, są łatwe w użyciu i w przystępnej cenie, mam nadzieję, że będą coraz lepsze!`,description:`Ocena klienta`},"nav.github":{message:`GitHub`,description:`Link do repozytorium GitHub`},"settings.github":{message:`Kod źródłowy`,description:`Link do przeglądania kodu źródłowego na GitHubie`},"settings.about":{message:`O aplikacji`,description:`Tytuł sekcji o aplikacji na stronie ustawień`},"settings.localTools":{message:`Narzędzia lokalne`,description:`Desktop-only settings tab for managing local tool folders, permissions and grants.`},"settings.localToolsDesktopOnly":{message:`Dostępne tylko w aplikacji desktopowej.`,description:`Shown when the Local Tools tab is opened on web/mobile.`},"settings.localToolsFoldersTitle":{message:`Autoryzowane foldery`,description:`Heading for the list of folders the AI may read/write locally.`},"settings.localToolsFoldersHint":{message:`Foldery, które AI może odczytywać i zapisywać na tym urządzeniu. Narzędzia działają lokalnie; nic nie opuszcza urządzenia bez Twojej zgody.`,description:`Help text under the authorized-folders heading.`},"settings.localToolsComputerUseTitle":{message:`Computer Use (experimental)`,description:`Heading for the opt-in Computer Use (screen + mouse/keyboard control) toggle.`},"settings.localToolsComputerUseHint":{message:`Let the AI see your screen and control the mouse and keyboard on this computer. Off by default — turn it on only when you need it. On macOS, grant Screen Recording and Accessibility permissions below. Each action still asks for your confirmation.`,description:`Help text under the Computer Use toggle.`},"settings.localToolsPreauthorizeAll":`Wstępnie zatwierdź wszystkie działania komputera`,"settings.localToolsPreauthorizeHint":`Zezwól od razu na zrzut ekranu, kliknięcie, pisanie, klawisze i wszystkie działania oraz poproś o wymagane uprawnienia systemowe.`,"settings.localToolsAddFolder":{message:`Dodaj folder`,description:`Button to pick a folder to authorize.`},"settings.localToolsRemove":{message:`Usuń`,description:`Button to remove an authorized folder.`},"settings.localToolsNoFolders":{message:`Brak autoryzowanych folderów.`,description:`Empty state for the authorized-folders list.`},"settings.localToolsSave":{message:`Zapisz`,description:`Save the authorized folders.`},"settings.localToolsSaved":{message:`Zapisano`,description:`Transient confirmation after saving local-tool folders.`},"settings.localToolsActiveTools":{message:`Aktywne narzędzia`,description:`Label before the list of currently available local tools.`},"settings.localToolsGrantsTitle":{message:`Zawsze dozwolone działania`,description:`Heading for the persistent consent grants list.`},"settings.localToolsGrantsHint":{message:`Wywołania narzędzi, które wybrałeś, aby zawsze zezwalać. Działają bez ponownego pytania. Cofnij dowolne, aby ponownie włączyć potwierdzenie.`,description:`Help text under the always-allowed actions heading.`},"settings.localToolsRevoke":{message:`Cofnij`,description:`Button to revoke a single always-allow grant.`},"settings.localToolsRevokeAll":{message:`Cofnij wszystkie`,description:`Button to revoke every always-allow grant.`},"settings.localToolsNoGrants":{message:`Brak zawsze dozwolonych działań. Przed każdym lokalnym narzędziem pojawi się pytanie.`,description:`Empty state for the always-allowed actions list.`},"settings.localToolsPermsTitle":{message:`Uprawnienia systemowe`,description:`Heading for the macOS system-permission section.`},"settings.localToolsPermsHint":{message:`Opcjonalne. Dostęp do folderów powyżej ich nie wymaga — przyznawaj tylko to, czego wymaga konkretne zadanie.`,description:`Help text under the system-permissions heading.`},"settings.localToolsPermFullDisk":{message:`Pełny dostęp do dysku`,description:`macOS Full Disk Access permission row.`},"settings.localToolsPermScreen":{message:`Nagrywanie ekranu`,description:`macOS Screen Recording permission row.`},"settings.localToolsPermAccessibility":{message:`Dostępność`,description:`macOS Accessibility permission row.`},"settings.localToolsGranted":{message:`Przyznano`,description:`Status tag when a system permission is granted.`},"settings.localToolsNotGranted":{message:`Nie przyznano`,description:`Status tag when a system permission is not granted.`},"settings.localToolsOpen":{message:`Otwórz…`,description:`Button to open the relevant macOS System Settings pane.`},"settings.subsites":{message:`Moje podstrony`,description:`Tytuł zakładki zarządzania podstronami w oknie ustawień. Widoczne tylko na oficjalnej stronie głównej, podstrony nie są wyświetlane.`},"settings.adminOnlyHint":{message:`Ten dział jest widoczny tylko dla administratorów witryny, zwykli użytkownicy nie mają dostępu.`,description:`To jest komunikat wyświetlany na górze zakładek w ustawieniach witryny / ustawieniach SEO / ustawieniach dystrybucji / ustawieniach funkcji, które są widoczne tylko dla administratorów.`},"settings.officialOnlyHint":{message:`Ten dział jest widoczny tylko na głównej stronie, nie będzie wyświetlany na podstronach.`,description:`To jest komunikat wyświetlany na górze zakładki 'Moje podstrony', informujący, że ten dostęp jest dostępny tylko na oficjalnej głównej stronie.`},"settings.customDomain":{message:`Domena niestandardowa`,description:`Title for the custom-domain management tab in the settings popup. Visible only on subsites (non-main-official hosts) for site admins.`},"settings.buildNow":{message:`Zbuduj teraz`,description:`Tekst przycisku 'Zbuduj podstronę' na stronie o aplikacji, widoczny tylko na oficjalnej stronie głównej`},"settings.poweredBy":{message:`Projekt open source`,description:`Tytuł sekcji na stronie o aplikacji, która pokazuje, na jakim projekcie open source oparta jest ta strona`},"settings.poweredByTip":{message:`Ta strona oparta jest na projekcie open source Nexior, kod jest całkowicie otwarty.`,description:`Opis na stronie o aplikacji, który pokazuje, na jakim projekcie open source oparta jest ta strona`},"settings.apiService":{message:`Usługa API`,description:`Tytuł sekcji na stronie o aplikacji, która pokazuje dostawcę usługi API`},"settings.apiServiceTip":{message:`Usługa API tej strony jest dostarczana przez Ace Data Cloud.`,description:`Opis na stronie o aplikacji, który pokazuje dostawcę usługi API`},"settings.buildYourOwn":{message:`Zbuduj własną`,description:`Tytuł sekcji na stronie o aplikacji, która informuje użytkowników, że mogą zbudować podobną stronę`},"settings.buildYourOwnTip":{message:`Chcesz zbudować podobną stronę AI? Skontaktuj się z nami, aby uzyskać wsparcie w zakresie wdrożenia.`,description:`Opis na stronie o aplikacji dotyczący budowy podobnej strony`},"settings.contactUs":{message:`Skontaktuj się z nami`,description:`Tekst przycisku do kontaktu z obsługą klienta`},"message.viewOnGithub":{message:`Zobacz na GitHubie`,description:`Tekst linku do przeglądania projektu na GitHubie`},"title.notFound":{message:`Strona nie znaleziona`,description:`Tytuł strony 404`},"message.notFound":{message:`Strona, którą próbujesz odwiedzić, nie istnieje, być może link został zmieniony lub usunięty. Wróć na stronę główną, aby kontynuować odkrywanie usług AI AceData.`,description:`Opis podtytułu na stronie 404`},"message.notFoundEyebrow":{message:`Coś poszło nie tak`,description:`Tekst małej etykiety na górze strony 404`},"message.notFoundPath":{message:`Ścieżka żądania`,description:`Etykieta wyświetlająca aktualną ścieżkę żądania na stronie 404`},"button.backToHome":{message:`Wróć na stronę główną`,description:`Tekst przycisku do powrotu na stronę główną`},"button.goBack":{message:`Wróć do poprzedniej strony`,description:`Tekst przycisku do powrotu do poprzedniej strony w historii przeglądania`},"title.apiCode":{message:`API code for this request`,description:`Title of the dialog that shows the equivalent API code (curl / Python / Node) that would reproduce a result generated inside the product`},"message.viewCodeHint":{message:`Show API code for this request`,description:`Tooltip text on the View Code button shown alongside result-card action buttons (U1/U2/Download/Extend/...). Clicking the button opens a dialog with curl / Python / Node snippets that reproduce the same generation via the public API.`},"button.viewCode":{message:`View code`,description:`Button text that opens a dialog with the equivalent API code (curl / Python / Node) for the current result, similar to the OpenAI Playground 'View code' affordance`},"button.getApiKey":{message:`Get an API key`,description:`Link text in the API code dialog footer that opens the platform console page where users can create an API key`},"button.apiPlatform":{message:`API Platform`,description:`API code dialog footer button label. Clicking opens https://platform.acedata.cloud/ in a new tab so users can manage their API keys, balance and usage.`},"message.apiCodeIntro":{message:`Run this from your own code to produce the same result. Replace <YOUR_API_KEY> with a key from your platform console.`,description:`Helper text shown above the code tabs in the API code dialog, explaining how to use the snippet`},"tab.apiRequest":{message:`Żądanie`,description:`Etykieta zakładki dialogu kodu API dla fragmentu żądania (kod, który reprodukuje aktualny wynik).`},"tab.apiResponse":{message:`Odpowiedź`,description:`Etykieta zakładki dialogu kodu API dla odpowiedzi na żywo zwróconej po kliknięciu Uruchom.`},"button.apiRun":{message:`Uruchom ponownie`,description:`Przycisk w dialogu kodu API, który ponownie uruchamia żądanie na żywo za pomocą klucza użytkownika. Wynik już istnieje, więc kliknięcie uruchamia go ponownie i jest płatne.`},"button.apiRunning":{message:`Uruchamianie…`,description:`Etykieta przycisku Uruchom w dialogu kodu API, gdy żądanie na żywo jest w trakcie realizacji.`},"button.apiRunConfirm":{message:`Potwierdź uruchomienie`,description:`Etykieta przycisku potwierdzenia w dialogu, który ostrzega, że uruchomienie tutaj zużywa dodatkowe kredyty.`},"button.viewDocs":{message:`Zobacz dokumentację`,description:`Przycisk w stopce dialogu kodu API, który otwiera odpowiednią stronę dokumentacji API na platformie.`},"message.apiClickRun":{message:`Kliknij „Uruchom ponownie”, aby użyć swojego klucza API do wykonania tego żądania na żywo.`,description:`Stan pusty zakładki Odpowiedź w dialogu kodu API, wyświetlany przed uruchomieniem żądania przez użytkownika.`},"message.apiRunConfirmTitle":{message:`Potwierdź uruchomienie`,description:`Tytuł dialogu potwierdzenia wyświetlanego przed ponownym uruchomieniem żądania z dialogu kodu API.`},"message.apiRunConfirmDesc":{message:`To uruchomienie użyje twojego klucza API do rzeczywistego wywołania interfejsu i dodatkowo zużyje punkty, czy chcesz kontynuować?`,description:`Treść dialogu potwierdzenia ostrzegającego, że ponowne uruchomienie żądania to rzeczywiste, płatne wywołanie API.`},"message.apiRunConfirmSkip":{message:`Nie pokazuj ponownie`,description:`Pole wyboru w dialogu potwierdzenia uruchomienia, które, gdy jest zaznaczone, tłumi ostrzeżenie przy kolejnych uruchomieniach.`},"message.apiRunTaskCreated":{message:`Zadanie zostało utworzone, zamknij to okno, aby zobaczyć najnowsze wyniki poniżej.`,description:`Baner sukcesu wyświetlany w oknie dialogowym kodu API po uruchomieniu, które zwraca identyfikator zadania, sugerując, że nowe zadanie już pojawia się na liście za oknem dialogowym.`},"button.apiViewLatest":{message:`Zamknij i zobacz`,description:`Przycisk w banerze sukcesu okna dialogowego kodu API, który zamyka okno, aby użytkownik mógł zobaczyć nowo utworzone zadanie na liście poniżej.`},"message.uploadInProgress":{message:`Przesyłanie plików referencyjnych nadal trwa — proszę chwilę poczekać.`,description:`Toast shown when the user clicks the Generate button while one or more reference uploads are still in flight. Asks them to wait for uploads to complete before retrying.`},"appUpgrade.title":{message:`Update required`,description:`Title of the native-app version gate modal shown at startup when the installed build is older than what the backend supports.`},"appUpgrade.blockMessage":{message:`This version is no longer supported. Please update from the app store to continue.`,description:`Body text of the hard-block upgrade modal shown when the installed version is below min_supported. The modal has no dismiss affordance — the only button opens the app store.`},"appUpgrade.softMessage":{message:`A newer version is available. Update from the app store for the best experience.`,description:`Body text of the soft upgrade prompt shown when the installed version is below latest but above min_supported. The user can dismiss and keep using the app.`},"appUpgrade.openStore":{message:`Update now`,description:`Primary button on the upgrade modal — opens the App Store / Play Store URL in the system browser.`},"appUpgrade.later":{message:`Later`,description:`Secondary button on the soft upgrade prompt — dismisses the modal and lets the user keep using the current version. Only shown for non-forced upgrades.`},"nav.maestro":{message:`Maestro`,description:`Tekst na stronie przejścia z artykułu na wideo w nawigacji, pozostaje jako 'Maestro'`},"nav.digitalhuman":{message:`Digital Human`,description:`Text in the website navigation bar for the Digital Human talking-head page`}};export{e as default};
@@ -1 +0,0 @@
1
- var e={"button.setup":{message:`設定`,description:`按鈕中的文本,用於進行設定`},"button.start":{message:`開始`,description:`按鈕文本,用於開始某些操作`},"button.copy":{message:`複製`,description:`按鈕中的文本,用於複製某項內容`},"button.copied":{message:`已複製`,description:`按鈕文本,用於表示內容已複製`},"button.restart":{message:`重新生成`,description:`按鈕文本,用於設定某些內容`},"button.preview":{message:`預覽`,description:`按鈕文本,用於通過URL打開預覽某個文件`},"button.seeRawImage":{message:`查看原圖`,description:`按鈕文本,用於查看原始圖片`},"button.seeRawVideo":{message:`查看視頻`,description:`按鈕文本,用於查看原始視頻`},"button.edit":{message:`編輯`,description:`按鈕中的文本,用於編輯內容`},"button.login":{message:`登入`,description:`按鈕中的文本,用於登入`},"button.logout":{message:`登出`,description:`按鈕中的文本,用於登出`},"button.new":{message:`新建`,description:`按鈕中的文本,用於創建新項`},"button.delete":{message:`刪除`,description:`按鈕中的文本,用於刪除內容`},"button.deletePermanently":{message:`永久刪除帳號`,description:`Final red delete button at the bottom of the delete confirmation dialog`},"button.confirm":{message:`確認`,description:`按鈕中的文本,用於確認某項操作`},"button.cancel":{message:`取消`,description:`按鈕中的文本,用於取消某項操作`},"button.close":{message:`關閉`,description:`按鈕中的文本,用於關閉對話框或面板`},"button.expand":{message:`展開`,description:`按鈕提示文本,用於打開提示詞輸入框的全屏編輯器`},"button.alert":{message:`警告`,description:`按鈕中的文本,用於發出警報`},"button.info":{message:`資訊`,description:`按鈕中的文本,用於顯示資訊`},"button.publish":{message:`發布`,description:`按鈕中的文本,用於發布內容`},"button.watch":{message:`查看`,description:`按鈕中的文本,用於觀看某項內容`},"button.verify":{message:`實名認證`,description:`按鈕中的文本,讓用戶進行實名認證`},"button.profile":{message:`個人資料`,description:`按鈕中的文本,用於顯示個人資料`},"button.console":{message:`控制台`,description:`按鈕中的文本,用於顯示控制台頁面,以控制網頁中某項內容`},"button.learn":{message:`學習`,description:`按鈕中的文本,用於讓用戶學習某項內容`},"button.buy":{message:`購買`,description:`按鈕中的文本,用於讓用戶購買某項內容`},"button.try":{message:`測試`,description:`按鈕中的文本,用於讓用戶嘗試某項內容`},"button.startForFree":{message:`免費開始`,description:`按鈕中的文本,用於讓用戶免費開始`},"button.download":{message:`下載`,description:`按鈕中的文本,用於下載文件(如音頻、視頻、圖片)`},"button.downloadAndroid":{message:`下載 Android`,description:`按鈕中的文本,用於下載 Android 安裝包`},"button.downloadIos":{message:`下載 iOS 安裝包`,description:`按鈕中的文本,用於下載 iOS 安裝包文件`},"button.downloadWindows":{message:`下載 Windows 版`,description:`Text in button for downloading the Windows desktop installer`},"button.downloadMac":{message:`下載 macOS 版`,description:`Text in button for downloading the macOS desktop installer`},"button.installIos":{message:`安裝 iOS`,description:`按鈕中的文本,用於安裝 iOS 應用`},"button.apply":{message:`申請`,description:`按鈕中的文本,用於讓用戶申請API服務`},"button.refresh":{message:`刷新`,description:`按鈕中的文本,用於刷新頁面`},"button.pay":{message:`支付`,description:`按鈕中的文本,用於讓用戶支付服務費用`},"button.repay":{message:`繼續支付`,description:`按鈕中的文本,用於讓用戶繼續支付服務費用`},"button.applied":{message:`已申請`,description:`按鈕中的文本,用於顯示用戶已申請該服務`},"button.acquire":{message:`獲取`,description:`按鈕中的文本,用於讓用戶獲取API服務的令牌或密鑰`},"button.fillExample":{message:`填寫示例`,description:`按鈕中的文本,用於讓用戶填寫示例數據`},"button.buyMore":{message:`充值`,description:`按鈕中的文本,用於讓用戶充值。英文必須翻譯為“Top Up”,中文為“充值”。`},"button.update":{message:`更新`,description:`按鈕中的文本,用於更新內容`},"button.view":{message:`查看`,description:`按鈕中的文本,用於查看某項內容`},"button.create":{message:`創建`,description:`按鈕中的文本,用於創建某項內容`},"button.referralEarnings":{message:`推薦收入`,description:`按鈕中的文本,用於顯示推薦收入,意味著用戶可以通過邀請他人使用該服務來賺錢`},"button.finish":{message:`完成`,description:`按钮中的文本,用于完成某项操作`},"entity.id":{message:`ID`,description:`用于显示实体的唯一标识符`},"entity.type":{message:`類型`,description:`用于显示实体的类型`},"entity.website":{message:`Ace Data Cloud`,description:`网站名称,无需翻译,保持为'Ace Data Cloud'`},"entity.copyright":{message:`版權`,description:`显示版权的文本`},"entity.platform":{message:`平台`,description:`指示这是API服务平台的文本`},"entity.title":{message:`標題`,description:`实体的标题`},"entity.icon":{message:`圖示`,description:`实体的图标`},"entity.status":{message:`狀態`,description:`实体的状态`},"status.loading":{message:`載入中...`,description:`内容加载时显示的状态文案`},"error.appleSignInFailed":{message:`透過 Apple 登入失敗,請重試或使用其他登入方式。`,description:`Error toast shown when native Apple sign-in fails for a reason other than user cancellation`},"error.loginLinkExpired":{message:`登入連結已失效,請重新登入。`,description:`桌面客戶端 OAuth 回呼因 state 驗證失敗/過期被丟棄時顯示的錯誤提示。`},"entity.operation":{message:`操作`,description:`实体的操作`},"entity.description":{message:`描述`,description:`实体的描述`},"entity.createdAt":{message:`創建於`,description:`实体创建的时间`},"entity.updatedAt":{message:`更新於`,description:`实体更新的时间`},"entity.order":{message:`訂單`,description:`实体的订单,订单包含金钱、服务信息,用户需要为其支付`},"message.noTasks":{message:`沒有歷史任務,請開始新的任務吧~`,description:`没有任务时的消息`},"message.usedAmount":{message:`已使用金額`,description:`用于显示服务已使用的金额`},"message.mobileAppDescription":{message:`在手機上直接使用 AceData,當前提供 Android APK 下載安裝,iOS 安裝包完成簽名後開放下載。`,description:`移动应用下载页的说明文案`},"message.mobileAndroidHint":{message:`適用於 Android 手機和平板,掃碼即可下載最新 APK。`,description:`Android 下载卡片说明`},"message.mobileAndroidPending":{message:`Android 安裝包暫未就緒,請稍後再試。`,description:`Android 安装包暂未可用时的提示`},"message.mobileAvailableNow":{message:`Android 已開放下載`,description:`用于显示 Android 已可下载的状态`},"message.mobileSecureDelivery":{message:`安全 CDN 分發`,description:`用于强调下载链接通过 CDN 交付`},"message.mobileDirectInstall":{message:`直接 APK 安裝`,description:`用于描述 Android 端为直接 APK 安装方式`},"message.mobileLatestRelease":{message:`當前公開版本`,description:`用于说明当前展示的是最新公开版本`},"message.mobileSharedAccount":{message:`與網頁端共用帳號和額度`,description:`用于说明移动端与网页端共用账号`},"message.mobileIosHint":{message:`適用於 iPhone 和 iPad,可直接在線安裝;如果系統攔截,也可以先下載 IPA 再分發。`,description:`iOS 下载卡片说明`},"message.mobileIosPending":{message:`iOS 安裝包暫未開放下載,正在補齊 Apple 證書和描述文件後提供。`,description:`iOS 安装包暂未可用时的提示`},"message.mobileComingSoon":{message:`即將推出`,description:`Short status label shown on a platform card (e.g. iOS) while its build is being prepared`},"message.mobileNowOnAppStore":{message:`已上架 App Store`,description:`Status label shown on the iOS card when the app is live on the App Store`},"message.desktopWindowsHint":{message:`適用於 Windows 10 及以上版本(64 位元)。下載安裝程式後按兩下即可安裝。`,description:`Windows desktop download card description`},"message.desktopMacHint":{message:`適用於 macOS 11 及以上版本。請依你的機型選擇 —— Apple 晶片(M 系列)或 Intel。`,description:`macOS desktop download card description`},"message.desktopUnsignedNote":{message:`桌面版目前為未簽署的 Beta 版本。Windows 在 SmartScreen 提示中選擇「更多資訊 → 仍要執行」;macOS 請按右鍵點選應用程式並選擇「打開」以略過 Gatekeeper。`,description:`Note explaining the desktop builds are unsigned betas and how to open them`},"button.getOnGooglePlay":{message:`在 Google Play 取得`,description:`Button label that opens the app's Google Play Store listing`},"button.getOnAppStore":{message:`在 App Store 下載`,description:`Button label that opens the app's Apple App Store listing`},"message.mobileApkFallback":{message:`無法存取 Google Play?可直接下載 APK 安裝檔。`,description:`Shown next to a secondary button offering a direct APK download for users who cannot access Google Play`},"message.mobilePlayStoreHint":{message:`掃碼前往 Google Play`,description:`Hint under the QR code explaining that scanning it opens the Google Play listing`},"message.mobileAppStoreHint":{message:`掃碼前往 App Store`,description:`Hint under the QR code explaining that scanning it opens the App Store listing`},"message.mobileInstallNote":{message:`iOS 首次安裝企業或 Ad Hoc 包時,系統可能要求先在“設定 > 通用 > VPN 與設備管理”中信任證書。`,description:`移动应用安装提示`},"title.mobileApp":{message:`移動端下載`,description:`移动应用下载页标题`},"title.mobileFastAccess":{message:`更快觸達,不繞應用商店`,description:`下载页优势卡片标题,强调快速安装`},"title.mobileTrustedRelease":{message:`版本集中管理,分發更穩`,description:`下载页优势卡片标题,强调版本和分发稳定性`},"title.mobileUnifiedExperience":{message:`移動端與網頁端體驗保持一致`,description:`下载页优势卡片标题,强调统一体验`},"nav.mobileApp":{message:`移動端`,description:`导航中的移动应用下载入口`},"message.mobileFastAccess":{message:`用戶可以在手機掃碼直接安裝,也可以在桌面端先下載 APK 再分發給團隊成員,適合需要快速試用和內測的場景。`,description:`下载页优势说明,强调快速接入`},"message.mobileTrustedRelease":{message:`下載入口集中在同一頁面,版本號、平台狀態和安裝方式一眼可見,減少因為鏈路分散造成的溝通成本。`,description:`下载页优势说明,强调统一分发`},"message.mobileUnifiedExperience":{message:`登錄後的帳號體系、額度和服務入口與 Web 保持一致,方便用戶在桌面端和移動端之間無縫切換。`,description:`下载页优势说明,强调统一账号体验`},"message.remainingAmount":{message:`剩餘金額`,description:`用于显示服务剩余的金额`},"message.copied":{message:`已複製`,description:`顯示內容已成功複製的消息`},"message.restart":{message:`重新生成`,description:`用于显示内容已成功复制的消息`},"message.confirmDelete":{message:`您確定要刪除嗎?`,description:`確認用戶要刪除某項內容的消息`},"message.expiredAt":{message:`過期時間`,description:`用於顯示服務的過期時間`},"message.alert":{message:`警告`,description:`警告用戶的消息`},"message.deleteAccountConfirm":{message:`此操作將永久刪除您的帳號及所有相關資料,且無法復原。確定要繼續嗎?`,description:`Confirmation message shown before permanently deleting the user account`},"message.deleteAccountSuccess":{message:`您的帳號已刪除。`,description:`Message shown after the user account is successfully deleted`},"message.deleteAccountFailed":{message:`刪除帳號失敗,請稍後再試。`,description:`Message shown when account deletion fails`},"message.deleteAccountWarning":{message:`此操作不可逆!您的帳號及其所有資料將被永久刪除,無法找回。`,description:`Red warning banner at the top of the delete confirmation dialog`},"message.deleteAccountConsequences":{message:`將永久刪除:個人資料、餘額與點數、應用與訂閱、API 金鑰及第三方登入綁定。`,description:`Explains what data will be removed in the delete confirmation dialog`},"message.deleteAccountTypePrompt":{message:`請輸入您的使用者名稱以確認刪除:`,description:`Instructs the user to type their username to confirm; the username is shown separately below`},"message.deleteAccountPlaceholder":{message:`在此輸入您的使用者名稱`,description:`Placeholder for the username confirmation input`},"message.info":{message:`提示`,description:`顯示信息的消息`},"message.free":{message:`免費`,description:`顯示該服務是免費的消息,意味著用戶無需支付`},"message.startPrice":{message:`起始`,description:`顯示服務的最低價格的消息`},"message.joinDiscord":{message:`加入Discord`,description:`讓用戶加入Discord頻道的消息`},"message.addWeChat":{message:`添加微信`,description:`讓用戶添加微信賬戶的消息`},"message.serviceTech":{message:`技術支持`,description:`顯示技術支持的消息`},"message.businessCooperation":{message:`數據 & 商業合作`,description:`顯示商業合作的消息`},"message.noData":{message:`沒有數據`,description:`顯示表或列表中沒有數據的消息`},"nav.home":{message:`首頁`,description:`網站導航欄中的文本,用於顯示首頁`},"nav.content":{message:`內容`,description:`網站導航欄中的文本,用於顯示內容頁面`},"nav.category":{message:`類別`,description:`網站導航欄中的文本,用於顯示類別頁面`},"nav.service":{message:`所有服務`,description:`網站導航欄中的文本,用於顯示服務頁面`},"nav.profile":{message:`我`,description:`網站導航欄中的文本,用於顯示個人資料頁面`},"nav.products":{message:`產品`,description:`網站導航欄中的文本,用於顯示產品頁面`},"nav.referral":{message:`創收聯盟`,description:`網站導航欄中的文本,用於顯示推薦頁面`},"nav.apiPlatform":{message:`API 平台`,description:`網站導航欄中的文本,用於顯示API平台頁面`},"nav.document":{message:`開發文檔`,description:`網站導航欄中的文本,用於顯示文檔頁面`},"nav.console":{message:`控制台`,description:`網站導航欄中的文本,用於顯示控制台頁面`},"nav.chatgpt":{message:`ChatGPT`,description:`網站導航欄中的文本,用於顯示ChatGPT頁面,請不要翻譯此字段,必須保持為'ChatGPT'`},"nav.deepseek":{message:`DeepSeek`,description:`網站導航欄中的文本,用於顯示DeepSeek頁面,請不要翻譯此字段,必須保持為'DeepSeek'`},"nav.grok":{message:`Grok`,description:`網站導航欄中的文本,用於顯示Grok頁面,請不要翻譯此字段,必須保持為'Grok'`},"nav.chat":{message:`Chat`,description:`網站導航欄中的文本,用於顯示聊天頁面,請不要翻譯此字段,必須保持為'Chat'`},"nav.veo":{message:`Veo`,description:`網站導航欄中的文本,用於顯示聊天頁面,請不要翻譯此字段,必須保持為'Veo'`},"nav.sora":{message:`Sora`,description:`網站導航欄中的文本,用於顯示聊天頁面,請不要翻譯此字段,必須保持為'Sora'`},"nav.midjourney":{message:`Midjourney`,description:`網站導航欄中的文本,用於顯示中途之旅頁面,請不要翻譯此字段,必須保持為'Midjourney'`},"nav.qrart":{message:`QRArt`,description:`網站導航欄中的文本,用於顯示二維藝術頁面,請不要翻譯此字段,必須保持為'QRArt'`},"nav.suno":{message:`Suno`,description:`網站導航欄中的文本,用於顯示Suno頁面,請不要翻譯此字段,必須保持為'Suno'`},"nav.pixverse":{message:`Pixverse`,description:`網站導航欄中的文本,用於顯示Pixverse頁面,請不要翻譯此字段,必須保持為'Pixverse'`},"nav.flux":{message:`Flux`,description:`網站導航欄中的文本,用於顯示Flux頁面,請不要翻譯此字段,必須保持為'Flux'`},"nav.nanobanana":{message:`Nano Banana`,description:`網站導航欄中的文本,用於顯示Nano Banana頁面,請不要翻譯此字段,必須保持為'Nano Banana'`},"nav.openaiimage":{message:`OpenAI Image`,description:`網站導航欄中的文本,用於顯示OpenAI Image頁面,請不要翻譯此字段,必須保持為'OpenAI Image'`},"nav.seedream":{message:`SeeDream`,description:`網站導航欄中的文本,用於顯示SeeDream頁面,請不要翻譯此字段,必須保持為'SeeDream'`},"nav.seedance":{message:`SeeDance`,description:`網站導航欄中的文本,用於顯示SeeDance頁面,請不要翻譯此字段,必須保持為'SeeDance'`},"nav.grokvideo":{message:`Grok Video`,description:`Text in the website navigation bar to display the Grok Imagine video page`},"nav.luma":{message:`Luma`,description:`網站導航欄中的文本,用於顯示Luma頁面,請不要翻譯此字段,必須保持為'Luma'`},"nav.pika":{message:`Pika`,description:`網站導航欄中的文本,用於顯示Pika頁面,請不要翻譯此字段,必須保持為'Pika'`},"nav.kling":{message:`Kling`,description:`網站導航欄中的文本,用於顯示Kling頁面,請不要翻譯此字段,必須保持為'Kling'`},"nav.hailuo":{message:`Hailuo`,description:`網站導航欄中的文本,用於顯示Hailuo頁面,請不要翻譯此字段,必須保持為'Hailuo'`},"nav.wan":{message:`Wan`,description:`網站導航欄中的文本,用於顯示Wan頁面,請不要翻譯此字段,必須保持為'Wan'`},"nav.producer":{message:`Producer`,description:`網站導航欄中的文本,用於顯示Producer頁面,請不要翻譯此字段,必須保持為'Producer'`},"nav.fish":{message:`Fish Audio`,description:`網站導航欄中的文本,用於顯示Fish Audio頁面,請不要翻譯此字段,必須保持為'Fish Audio'`},"nav.kimi":{message:`Kimi`,description:`網站導航欄中的文本,用於顯示Kimi頁面,請不要翻譯此字段,必須保持為'Kimi'`},"nav.serp":{message:`SERP`,description:`網站導航欄中的文本,用於顯示SERP頁面,請不要翻譯此字段,必須保持為'SERP'`},"nav.codingBridge":{message:`Coding Bridge`,description:`Text in the website navigation bar to display the Coding Bridge page, must remain as 'Coding Bridge'`},"nav.webextrator":{message:`WebExtrator`,description:`Text in the website navigation bar to display the WebExtrator page, must remain as 'WebExtrator'`},"nav.image":{message:`圖片`,description:`網站導航欄中的文本,用於顯示圖片頁面`},"nav.music":{message:`音樂`,description:`網站導航欄中的文本,用於顯示音樂頁面`},"nav.video":{message:`視頻`,description:`網站導航欄中的文本,用於顯示視頻頁面`},"nav.distribution":{message:`推薦收益`,description:`網站導航欄中的文本,用於顯示推薦收益頁面`},"nav.connections":{message:`連接`,description:`跳轉到 auth.acedata.cloud 連接管理頁的菜單項`},"nav.logOut":{message:`登出`,description:`網站導航欄中的文本,用於登出`},"nav.deleteAccount":{message:`刪除帳號`,description:`Menu item to permanently delete the current user account`},"nav.site":{message:`站點配置`,description:`網站導航欄中的文本,用於顯示站點配置頁面`},"nav.subsite":{message:`我的分站`,description:`側邊欄“我的分站”入口,僅在站點開啟 features.subsite 時顯示`},"nav.setting":{message:`設定`,description:`網站導航欄中的文本,用於顯示設定頁面`},"nav.headshots":{message:`AI證件照`,description:`網站導航欄中的文本,用於顯示站點配置頁面`},"nav.more":{message:`更多`,description:`網站導航欄中的文本,用於展開更多服務`},"nav.locale":{message:`語言設定`,description:`網站導航欄中的文本,用於更改語言`},"nav.support":{message:`客服支持`,description:`網站導航欄中的文本,用於顯示聯繫頁面`},"nav.darkMode":{message:`深色模式`,description:`網站導航欄中的文本,用於切換到深色主題`},"title.alert":{message:`警告`,description:`警告消息的標題`},"title.placeholderOfSelect":{message:`請選擇`,description:`選擇輸入的佔位符`},"title.placeholderOfInput":{message:`請填寫`,description:`輸入的佔位符`},"title.allApplications":{message:`所有申請`,description:`顯示所有申請的頁面標題`},"title.allOrders":{message:`所有訂單`,description:`顯示所有訂單的頁面標題`},"title.orderInfo":{message:`訂單信息`,description:`顯示訂單信息的頁面標題`},"title.buyMore":{message:`充值`,description:`頁面標題,用於充值。英文必須翻譯為“Top Up”,中文為“充值”。`},"title.distribution":{message:`推薦收益`,description:`顯示推薦收入的頁面標題,意味著用戶可以通過邀請他人使用該服務來賺錢`},"title.site":{message:`站點配置`,description:`顯示站點配置的頁面標題`},"title.distributionHistory":{message:`推薦歷史`,description:`顯示推薦歷史的頁面標題`},"title.invitee":{message:`邀請人`,description:`顯示邀請人的頁面標題`},"title.allUsages":{message:`使用歷史`,description:`顯示API服務所有使用的頁面標題`},"title.allCredentials":{message:`密鑰`,description:`顯示所有憑證的頁面標題,憑證用於訪問API`},"about.title1":{message:`聯絡我們`,description:`顯示聯絡資訊的部分標題`},"about.title2":{message:`資源`,description:`顯示連結的部分標題`},"about.title3":{message:`連結`,description:`顯示支持信息的部分標題`},"about.address":{message:`美國特拉華州紐瓦克大陸路131號305室,郵遞區號19713`,description:`公司的地址`},"about.email":{message:`office@acedata.cloud`,description:`公司的電子郵件`},"about.link1":{message:`服務`,description:`指向文檔頁面的連結`},"about.link2":{message:`開發文檔`,description:`指向服務頁面的連結`},"about.link3":{message:`控制台`,description:`指向控制台頁面的連結`},"about.link4":{message:`個人資料`,description:`指向個人資料頁面的連結`},"about.link5":{message:`UI平台`,description:`指向中心頁面的連結`},"about.link6":{message:`推薦收益`,description:`指向推薦收入頁面的連結`},"about.link7":{message:`支持`,description:`指向支持頁面的連結`},"about.link8":{message:`服務條款`,description:`指向服務條款頁面的連結`},"about.link9":{message:`隱私政策`,description:`指向隱私政策頁面的連結`},"theme.light":{message:`淺色`,description:`淺色主題的名稱`},"theme.dark":{message:`深色`,description:`深色主題的名稱`},"theme.system":{message:`系統`,description:`系統主題的名稱,表示根據系統設置自動切換主題`},"settings.general":{message:`通用設置`,description:`設置頁面中的通用設置部分的標題`},"settings.language":{message:`語言`,description:`設置頁面中的語言設置部分的標題`},"settings.theme":{message:`主題`,description:`設置頁面中的主題設置部分的標題`},"settings.seo":{message:`SEO設置`,description:`設置頁面中的SEO設置部分的標題`},"settings.site":{message:`站點設置`,description:`設置頁面中的站點設置部分的標題`},"settings.distribution":{message:`分發設置`,description:`設置頁面中的分發設置部分的標題`},"settings.function":{message:`功能設置`,description:`設置頁面中的功能設置部分的標題`},"settings.auth":{message:`登入方式`,description:`設定頁面側邊欄的『登入方式』標籤標題——配置本站允許使用的登入方式及預設登入方式,僅站點管理員可見`},"settings.apiKey":{message:`API金鑰`,description:`設置頁面側邊欄的 API 金鑰標籤——用戶自帶(BYOK)的上游服務商 API 金鑰管理`},"field.operations":{message:`操作`,description:`通用列標題:表格行的操作按鈕列(編輯、刪除等)`},"nav.gemini":{message:`Gemini`,description:`網站導航欄中的文本,用於顯示 Gemini 頁面,必須保持為 'Gemini'`},"nav.claude":{message:`Claude`,description:`網站導航欄中的文本,用於顯示 Claude 頁面,必須保持為 'Claude'`},"button.detail":{message:`查看詳情`,description:``},"button.testEnv":{message:`測試環境`,description:`按鈕中的文本,用於切換到測試環境`},"button.upload":{message:`上傳`,description:`按鈕中的文本,用於上傳文件或內容`},"message.cnbeian":{message:`中國區備案`,description:`中國區備案的說明信息`},"message.copyFailed":{message:`複製失敗`,description:`顯示內容複製失敗的消息`},"nav.tryNow":{message:`快速體驗`,description:`網站導航欄中的文本,用於讓用戶嘗試服務`},"title.coin":{message:`加密貨幣`,description:`顯示加密貨幣的頁面標題`},"title.distributionRank":{message:`推薦排行`,description:`顯示推薦排行的頁面標題`},"title.distributionPlatformRank":{message:`平台排行`,description:`顯示平台排行的頁面標題`},"customers.name1":{message:`馬克·杜`,description:`客戶的姓名`},"customers.job1":{message:`軟體工程師`,description:`客戶的職業`},"customers.comment1":{message:`Ace Data Cloud 為我們的團隊提供了很好的服務,幫助我們提高了生產力。非常喜歡!`,description:`客戶的評價`},"customers.name2":{message:`雅各布·威廉姆斯`,description:`客戶的姓名`},"customers.job2":{message:`產品經理`,description:`客戶的職業`},"customers.comment2":{message:`Ace Data Cloud 是一個很好的集成平台,服務質量優秀。`,description:`客戶的評價`},"customers.name3":{message:`拉里·亨利`,description:`客戶的姓名`},"customers.job3":{message:`設計師`,description:`客戶的職業`},"customers.comment3":{message:`我喜歡 Ace Data Cloud 的服務,使用方便,價格合理,希望能越來越好!`,description:`客戶的評價`},"nav.github":{message:`GitHub`,description:`GitHub倉庫連結`},"settings.github":{message:`源碼`,description:`在GitHub上查看源碼的連結`},"settings.about":{message:`關於`,description:`設定頁面中的關於部分的標題`},"settings.localTools":{message:`本機工具`,description:`Desktop-only settings tab for managing local tool folders, permissions and grants.`},"settings.localToolsDesktopOnly":{message:`僅在桌面應用程式中可用。`,description:`Shown when the Local Tools tab is opened on web/mobile.`},"settings.localToolsFoldersTitle":{message:`已授權資料夾`,description:`Heading for the list of folders the AI may read/write locally.`},"settings.localToolsFoldersHint":{message:`AI 可在本機讀寫的資料夾。工具於本機執行;未經你同意,任何內容都不會離開你的裝置。`,description:`Help text under the authorized-folders heading.`},"settings.localToolsComputerUseTitle":{message:`電腦操作(實驗性)`,description:`Heading for the opt-in Computer Use (screen + mouse/keyboard control) toggle.`},"settings.localToolsComputerUseHint":{message:`讓 AI 看到你的螢幕並控制本機的滑鼠和鍵盤。預設關閉,按需開啟。macOS 上需在下方授予「螢幕錄製」和「輔助使用」權限。每個操作仍會請求你的確認。`,description:`Help text under the Computer Use toggle.`},"settings.localToolsPreauthorizeAll":`預先允許所有電腦操作`,"settings.localToolsPreauthorizeHint":`一次性允許截圖、點擊、輸入、按鍵等所有電腦操作,並觸發所需的系統權限。`,"settings.localToolsAddFolder":{message:`新增資料夾`,description:`Button to pick a folder to authorize.`},"settings.localToolsRemove":{message:`移除`,description:`Button to remove an authorized folder.`},"settings.localToolsNoFolders":{message:`尚未授權任何資料夾。`,description:`Empty state for the authorized-folders list.`},"settings.localToolsSave":{message:`儲存`,description:`Save the authorized folders.`},"settings.localToolsSaved":{message:`已儲存`,description:`Transient confirmation after saving local-tool folders.`},"settings.localToolsActiveTools":{message:`可用工具`,description:`Label before the list of currently available local tools.`},"settings.localToolsGrantsTitle":{message:`永久允許的操作`,description:`Heading for the persistent consent grants list.`},"settings.localToolsGrantsHint":{message:`你選擇「永久允許」的工具呼叫,將不再詢問直接執行。撤銷任一項可重新開啟確認提示。`,description:`Help text under the always-allowed actions heading.`},"settings.localToolsRevoke":{message:`撤銷`,description:`Button to revoke a single always-allow grant.`},"settings.localToolsRevokeAll":{message:`全部撤銷`,description:`Button to revoke every always-allow grant.`},"settings.localToolsNoGrants":{message:`尚無永久允許的操作。每次執行本機工具前都會先徵求你的同意。`,description:`Empty state for the always-allowed actions list.`},"settings.localToolsPermsTitle":{message:`系統權限`,description:`Heading for the macOS system-permission section.`},"settings.localToolsPermsHint":{message:`選用。上方的資料夾存取不需要這些權限——只授予特定工作真正需要的。`,description:`Help text under the system-permissions heading.`},"settings.localToolsPermFullDisk":{message:`完整磁碟存取權`,description:`macOS Full Disk Access permission row.`},"settings.localToolsPermScreen":{message:`螢幕錄製`,description:`macOS Screen Recording permission row.`},"settings.localToolsPermAccessibility":{message:`輔助使用`,description:`macOS Accessibility permission row.`},"settings.localToolsGranted":{message:`已授權`,description:`Status tag when a system permission is granted.`},"settings.localToolsNotGranted":{message:`未授權`,description:`Status tag when a system permission is not granted.`},"settings.localToolsOpen":{message:`開啟…`,description:`Button to open the relevant macOS System Settings pane.`},"settings.subsites":{message:`我的分站`,description:`設定彈窗中分站管理 tab 的標題。僅在 official 主站可見,分站不顯示。`},"settings.adminOnlyHint":{message:`此栏目仅站点管理员可见,普通用户无法访问。`,description:`在站点设置 / SEO 设置 / 分发设置 / 功能设置 等仅管理员可见的设置 tab 顶部展示的提示語。`},"settings.officialOnlyHint":{message:`此栏目仅主站可见,分站不会显示。`,description:`在『我的分站』tab 顶部展示的提示語,說明該入口只在 official 主站出現。`},"settings.customDomain":{message:`自訂網域`,description:`Title for the custom-domain management tab in the settings popup. Visible only on subsites (non-main-official hosts) for site admins.`},"settings.buildNow":{message:`一鍵搭建`,description:`關於頁面中『一鍵搭建分站』按鈕的文本,僅 official 主站顯示`},"settings.poweredBy":{message:`開源專案`,description:`關於頁面中展示本站基於哪個開源專案搭建的標題`},"settings.poweredByTip":{message:`本站基於 Nexior 開源專案搭建,程式碼完全開源。`,description:`關於頁面中展示本站基於哪個開源專案的說明`},"settings.apiService":{message:`API 服務`,description:`關於頁面中展示API服務提供方的標題`},"settings.apiServiceTip":{message:`本站 API 服務由 Ace Data Cloud 提供。`,description:`關於頁面中展示API服務提供方的說明`},"settings.buildYourOwn":{message:`搭建同款`,description:`關於頁面中提示用戶可以搭建同款站點的標題`},"settings.buildYourOwnTip":{message:`想搭建同樣的 AI 站點?聯繫我們獲取部署支持。`,description:`關於頁面中搭建同款的說明`},"settings.contactUs":{message:`聯繫客服`,description:`聯繫客服按鈕的文本`},"message.viewOnGithub":{message:`在 GitHub 上查看`,description:`在GitHub上查看專案的連結文本`},"title.notFound":{message:`頁面走失了`,description:`404 頁面的標題`},"message.notFound":{message:`你訪問的頁面不存在,可能連結已經更換或被移除。回首頁繼續探索 AceData 的 AI 服務吧。`,description:`404 頁面的副標題描述`},"message.notFoundEyebrow":{message:`出錯了`,description:`404 頁面頂部小標籤文本`},"message.notFoundPath":{message:`請求路徑`,description:`404 頁面展示當前請求路徑的標籤`},"button.backToHome":{message:`返回首頁`,description:`按鈕文本,用於跳轉回首頁`},"button.goBack":{message:`返回上一頁`,description:`按鈕文本,用於返回瀏覽歷史的上一頁`},"title.apiCode":{message:`API code for this request`,description:`Title of the dialog that shows the equivalent API code (curl / Python / Node) that would reproduce a result generated inside the product`},"message.viewCodeHint":{message:`Show API code for this request`,description:`Tooltip text on the View Code button shown alongside result-card action buttons (U1/U2/Download/Extend/...). Clicking the button opens a dialog with curl / Python / Node snippets that reproduce the same generation via the public API.`},"button.viewCode":{message:`View code`,description:`Button text that opens a dialog with the equivalent API code (curl / Python / Node) for the current result, similar to the OpenAI Playground 'View code' affordance`},"button.getApiKey":{message:`Get an API key`,description:`Link text in the API code dialog footer that opens the platform console page where users can create an API key`},"button.apiPlatform":{message:`API Platform`,description:`API code dialog footer button label. Clicking opens https://platform.acedata.cloud/ in a new tab so users can manage their API keys, balance and usage.`},"message.apiCodeIntro":{message:`Run this from your own code to produce the same result. Replace <YOUR_API_KEY> with a key from your platform console.`,description:`Helper text shown above the code tabs in the API code dialog, explaining how to use the snippet`},"tab.apiRequest":{message:`請求`,description:`API 代碼對話框中請求片段的標籤(重現當前結果的代碼)。`},"tab.apiResponse":{message:`響應`,description:`API 代碼對話框中在點擊運行後返回的實時響應的標籤。`},"button.apiRun":{message:`再次運行`,description:`API 代碼對話框中的按鈕,使用用戶的 API 金鑰實時重新運行請求。結果已存在,因此點擊後會再次運行,並且會計費。`},"button.apiRunning":{message:`運行中…`,description:`當實時請求正在進行時,API 代碼對話框中的運行按鈕標籤。`},"button.apiRunConfirm":{message:`確認運行`,description:`對話框中的確認按鈕標籤,警告運行此操作會消耗額外的積分。`},"button.viewDocs":{message:`查看文檔`,description:`API 代碼對話框底部的按鈕,打開平台上相應的 API 文檔頁面。`},"message.apiClickRun":{message:`點擊「再次運行」即可使用你的 API Key 實時執行本次請求。`,description:`API 代碼對話框響應標籤的空狀態,在用戶運行請求之前顯示。`},"message.apiRunConfirmTitle":{message:`確認運行`,description:`在從 API 代碼對話框重新運行請求之前顯示的確認對話框標題。`},"message.apiRunConfirmDesc":{message:`本次運行會用你的 API Key 真實調用接口並額外消耗積分,確認繼續嗎?`,description:`確認對話框的主體,警告重新運行請求是一個真實的、可計費的 API 調用。`},"message.apiRunConfirmSkip":{message:`不再提示`,description:`在運行確認對話框中的復選框,勾選後將在後續運行中抑制警告。`},"message.apiRunTaskCreated":{message:`任務已創建,關閉此窗口即可在下方查看最新結果。`,description:`在 API 代碼對話框中,當運行返回任務 ID 後顯示的成功橫幅,提示新任務已經出現在對話框後面的列表中。`},"button.apiViewLatest":{message:`關閉並查看`,description:`在 API 代碼對話框成功橫幅中的按鈕,關閉對話框以便用戶可以查看下方新創建的任務列表。`},"message.uploadInProgress":{message:`參考檔案仍在上傳,請稍候再生成。`,description:`Toast shown when the user clicks the Generate button while one or more reference uploads are still in flight. Asks them to wait for uploads to complete before retrying.`},"appUpgrade.title":{message:`Update required`,description:`Title of the native-app version gate modal shown at startup when the installed build is older than what the backend supports.`},"appUpgrade.blockMessage":{message:`This version is no longer supported. Please update from the app store to continue.`,description:`Body text of the hard-block upgrade modal shown when the installed version is below min_supported. The modal has no dismiss affordance — the only button opens the app store.`},"appUpgrade.softMessage":{message:`A newer version is available. Update from the app store for the best experience.`,description:`Body text of the soft upgrade prompt shown when the installed version is below latest but above min_supported. The user can dismiss and keep using the app.`},"appUpgrade.openStore":{message:`Update now`,description:`Primary button on the upgrade modal — opens the App Store / Play Store URL in the system browser.`},"appUpgrade.later":{message:`Later`,description:`Secondary button on the soft upgrade prompt — dismisses the modal and lets the user keep using the current version. Only shown for non-forced upgrades.`},"nav.maestro":{message:`Maestro`,description:`導航欄中 Maestro 文章轉視頻頁面的文字,保持為 'Maestro'`},"nav.digitalhuman":{message:`數字人`,description:`Text in the website navigation bar for the Digital Human talking-head page`}};export{e as default};