@acedatacloud/nexior 3.292.0 → 3.292.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (196) hide show
  1. package/dist/assets/{ApiCodeButton-dtlnlJeD.js → ApiCodeButton-ClN3H3w1.js} +1 -1
  2. package/dist/assets/{AskUserQuestionCard-3Mc4cCJx.js → AskUserQuestionCard-BjQ1787D.js} +2 -2
  3. package/dist/assets/{Auth-BJfSuDja.js → Auth-D_v_93EM.js} +1 -1
  4. package/dist/assets/{Bare-BqIFxbY1.js → Bare-BmKhNUmV.js} +1 -1
  5. package/dist/assets/{BotPlaceholder-Cb3oxcNj.js → BotPlaceholder-lV3Aa152.js} +1 -1
  6. package/dist/assets/{BottomFooter-C0bnBABU.js → BottomFooter-CtrBQlnG.js} +1 -1
  7. package/dist/assets/{Callback-BniljsJf.js → Callback-Clz6SyOX.js} +1 -1
  8. package/dist/assets/{CodeSnippet-BX_bC1K5.js → CodeSnippet-B2RCg9tg.js} +1 -1
  9. package/dist/assets/{Console-BDW9sPDz.js → Console-BQCydo34.js} +1 -1
  10. package/dist/assets/{Consumption-BeCSi9Ah.js → Consumption-CGU0vcV2.js} +1 -1
  11. package/dist/assets/{Conversation-BF3ipgX-.js → Conversation-C0OkeWDR.js} +2 -2
  12. package/dist/assets/{CopyToClipboard-CTZ6Mo2m.js → CopyToClipboard-CO1AynIe.js} +1 -1
  13. package/dist/assets/Detail-Dt1JZzWr.js +2 -0
  14. package/dist/assets/{Extra-cZ-u2Xrk.js → Extra-DJdtE-MF.js} +1 -1
  15. package/dist/assets/{FilePreview-CO7nMSUU.js → FilePreview-C8P8T7Ei.js} +1 -1
  16. package/dist/assets/{Hailuo-gM67g7pV.js → Hailuo-BHuriP3C.js} +1 -1
  17. package/dist/assets/{History-CeOme-Gv.js → History-BippF194.js} +1 -1
  18. package/dist/assets/{ImagePreview-Bq8bSNZi.js → ImagePreview-CUTFSGLq.js} +1 -1
  19. package/dist/assets/{ImageWrapper-CWlWGBvo.js → ImageWrapper-CMBvFhTl.js} +1 -1
  20. package/dist/assets/{Index-wyz2RKlP.js → Index-5Q5UpArP.js} +1 -1
  21. package/dist/assets/{Index-BrUntT6e.js → Index-BABMIYLh.js} +1 -1
  22. package/dist/assets/{Index-CzN_R-GS.js → Index-BM9pei4z.js} +1 -1
  23. package/dist/assets/Index-BXgzPmSD.js +1 -0
  24. package/dist/assets/Index-BYNxAQvg.js +1 -0
  25. package/dist/assets/{Index-DKGoEgy0.js → Index-BeoO8vWg.js} +2 -2
  26. package/dist/assets/{Index-C5x1sWT2.js → Index-BgEcehqn.js} +1 -1
  27. package/dist/assets/{Index-CBcX1Xyn.js → Index-Bn5q5mwP.js} +1 -1
  28. package/dist/assets/Index-BomKfPSW.js +1 -0
  29. package/dist/assets/Index-Bq4dlIl6.js +1 -0
  30. package/dist/assets/{Index-DgQPLziS.js → Index-C2uZ0lDR.js} +1 -1
  31. package/dist/assets/{Index-Bwp5TOAm.js → Index-CMyjWW8c.js} +1 -1
  32. package/dist/assets/{Index-zaDhkWLa.js → Index-CNkMi2s4.js} +1 -1
  33. package/dist/assets/Index-CTk9-BVI.css +1 -0
  34. package/dist/assets/{Index-DplpzmZU.js → Index-CxRX5TQe.js} +1 -1
  35. package/dist/assets/Index-CyhpX25F.js +1 -0
  36. package/dist/assets/{Index-BtfTwY31.js → Index-D0-itlKh.js} +1 -1
  37. package/dist/assets/{Index-C1WK_2wb.js → Index-DQ5ovI7T.js} +1 -1
  38. package/dist/assets/{Index-35v4tHvR.js → Index-DV00ZNF9.js} +1 -1
  39. package/dist/assets/{Index-CQuYinhn.js → Index-DelN88D4.js} +1 -1
  40. package/dist/assets/Index-Dv0U5sbv.js +1 -0
  41. package/dist/assets/Index-a8sgjhRD.js +1 -0
  42. package/dist/assets/{Index-lnZrne5l.js → Index-brWELMmP.js} +1 -1
  43. package/dist/assets/Index-jbQpDn9n.js +1 -0
  44. package/dist/assets/Index-lwbeoRTh.js +1 -0
  45. package/dist/assets/{Index-D8PkWsFM.js → Index-mtTt--uN.js} +1 -1
  46. package/dist/assets/{Index-C_7nT4IX.js → Index-uzjkCQVY.js} +1 -1
  47. package/dist/assets/{Index-B2VxCdhV.js → Index-yBhTfrdR.js} +1 -1
  48. package/dist/assets/{Index-DgLYZYLU.js → Index-zwFk9SSc.js} +1 -1
  49. package/dist/assets/{Invitees-BEps2g2L.js → Invitees-DbXgjW_x.js} +1 -1
  50. package/dist/assets/{List-shYlXH-9.js → List-BwJjlc6c.js} +1 -1
  51. package/dist/assets/{List-DBnjdpkV.js → List-DiuMG4pZ.js} +1 -1
  52. package/dist/assets/{List-DO8FxMvA.js → List-hiAU-ZR3.js} +1 -1
  53. package/dist/assets/{LocalTools-DbeEhRUB.js → LocalTools-CGnMKjs-.js} +1 -1
  54. package/dist/assets/{LocalTools-Dj9RW_fw.js → LocalTools-CqyeENAa.js} +1 -1
  55. package/dist/assets/{Main-B0HqTYPJ.js → Main-CiQI1zDU.js} +1 -1
  56. package/dist/assets/Model-BpYhyxPg.js +1 -0
  57. package/dist/assets/{Navigator-B7CyEa94.css → Navigator-CCjpZXOW.css} +1 -1
  58. package/dist/assets/{Navigator-CU3DvSK2.js → Navigator-D2rOf0EJ.js} +4 -4
  59. package/dist/assets/{NoTasks-BZyGsSwG.js → NoTasks-tgfYxa6S.js} +1 -1
  60. package/dist/assets/{NotFound-BCspt6Fd.js → NotFound-CWEw9oBF.js} +1 -1
  61. package/dist/assets/{Pagination-DnaCWRA8.js → Pagination-DVguRxDD.js} +1 -1
  62. package/dist/assets/Pay-C73IIA8S.js +1 -0
  63. package/dist/assets/{Player-BhErJbR9.js → Player-D0ZFXu3H.js} +1 -1
  64. package/dist/assets/{PromptTextarea--nEpXE0q.js → PromptTextarea-BRYoZn2E.js} +1 -1
  65. package/dist/assets/{RealtimeCall-WHcRV0Bc.js → RealtimeCall-whTISuu5.js} +1 -1
  66. package/dist/assets/{ScheduledTasks-EY7yDy7n.js → ScheduledTasks-BouayqA-.js} +2 -2
  67. package/dist/assets/{Status-c8OJubPG.js → Status-59nA7jct.js} +1 -1
  68. package/dist/assets/Subscribe-DBwjymUV.js +1 -0
  69. package/dist/assets/TabSwitcher-DDxDlk0E.js +1 -0
  70. package/dist/assets/Tts-yqxbQRvW.js +1 -0
  71. package/dist/assets/{VideoPlayer-BfrdgzoM.js → VideoPlayer-nLp9Fue2.js} +1 -1
  72. package/dist/assets/{avatar-7dMpKNlo.js → avatar-BO4cdVRL.js} +1 -1
  73. package/dist/assets/{basic-C-gFzN6M.js → basic-CIX5okPv.js} +1 -1
  74. package/dist/assets/{chat-DhRSOdJw.js → chat-DZzgMLyg.js} +1 -1
  75. package/dist/assets/codingBridge-D8kb3z5C.js +2 -0
  76. package/dist/assets/{codingBridgeNotify-BI2e5GEJ.js → codingBridgeNotify-rQPtfAnV.js} +2 -2
  77. package/dist/assets/{collapse-C76-gfpL.js → collapse-RRpNyCZs.js} +1 -1
  78. package/dist/assets/common-3rnE1HXZ.js +1 -0
  79. package/dist/assets/common-B7hm_zFL.js +1 -0
  80. package/dist/assets/common-B8AFTGuG.js +1 -0
  81. package/dist/assets/common-BBsrixPJ.js +1 -0
  82. package/dist/assets/common-Bx1sJKJH.js +1 -0
  83. package/dist/assets/common-BzY23NQp.js +1 -0
  84. package/dist/assets/common-C00dTbgd.js +1 -0
  85. package/dist/assets/common-CEgzr3ti.js +1 -0
  86. package/dist/assets/common-CPlNJmu1.js +1 -0
  87. package/dist/assets/common-CXCllppJ.js +1 -0
  88. package/dist/assets/common-CgQPu1a8.js +1 -0
  89. package/dist/assets/common-CwWf0j1z.js +1 -0
  90. package/dist/assets/common-D3yt6uCv.js +1 -0
  91. package/dist/assets/common-DQzurF4E.js +1 -0
  92. package/dist/assets/common-DgMQQr5K.js +1 -0
  93. package/dist/assets/common-Drvmn48z.js +1 -0
  94. package/dist/assets/common-SncIg5aX.js +1 -0
  95. package/dist/assets/common-xH511a_S.js +1 -0
  96. package/dist/assets/{constants-9Rd-ZRoh.js → constants-MMMyjdpT.js} +1 -1
  97. package/dist/assets/{createTaskActions-DjTuLTUD.js → createTaskActions-DfEAWHBQ.js} +1 -1
  98. package/dist/assets/{date-picker-C6i4Ail5.js → date-picker-DxBToOLW.js} +1 -1
  99. package/dist/assets/{digitalhuman-Ds6YcYmc.js → digitalhuman-C4thWZqP.js} +1 -1
  100. package/dist/assets/{dropdown-Cu-FXjDd.js → dropdown-ByF3hQpL.js} +1 -1
  101. package/dist/assets/{esm-BJNQctSy.js → esm--jvPJl8C.js} +2 -2
  102. package/dist/assets/{esm-Bn9nYwfl.js → esm-5zom4rJS.js} +3 -3
  103. package/dist/assets/{esm-6Zn2PT4C.js → esm-BYixlWnc.js} +1 -1
  104. package/dist/assets/esm-BjcGM19K.js +1 -0
  105. package/dist/assets/{esm-BAW3Ih4l.js → esm-D5L4Mf7R.js} +1 -1
  106. package/dist/assets/{esm-BlIa4oGf.js → esm-DaoSdi91.js} +1 -1
  107. package/dist/assets/{esm-CjgzWACP.js → esm-DbPVAI-g.js} +2 -2
  108. package/dist/assets/{fish-ZQEiJ__P.js → fish-gNsopE0m.js} +1 -1
  109. package/dist/assets/{flux-CWLeD1pd.js → flux-CHoxp83h.js} +1 -1
  110. package/dist/assets/{grokvideo-9IWl2EEO.js → grokvideo-DFhuj9Jg.js} +1 -1
  111. package/dist/assets/{maestro-7tabbAgK.js → hailuo-DhW75Ou-.js} +1 -1
  112. package/dist/assets/{veo-Dypv5o-K.js → headshots-DuTVlkoD.js} +1 -1
  113. package/dist/assets/image-2Z64T0b4.js +1 -0
  114. package/dist/assets/{index-Z1kRavm5.js → index-D-Qqijue.js} +16 -16
  115. package/dist/assets/{index.browser.esm-DRtET0dt.js → index.browser.esm-DostSlsA.js} +1 -1
  116. package/dist/assets/{index.es-CKXxm3Ib.js → index.es-PNv_H_Xs.js} +2 -2
  117. package/dist/assets/{input-number-JZku1180.js → input-number-2hM2c7pj.js} +1 -1
  118. package/dist/assets/{kling-DDi7XZ_0.js → kling-Cs7aXpb6.js} +1 -1
  119. package/dist/assets/{luma-Czxuee9m.js → luma-DDDYYbmL.js} +1 -1
  120. package/dist/assets/{hailuo-DRgkK5kk.js → maestro-DNnxEJTp.js} +1 -1
  121. package/dist/assets/midjourney-Cm8PkGG9.js +1 -0
  122. package/dist/assets/{nanobanana-Cay-brc5.js → nanobanana-DbABHNau.js} +1 -1
  123. package/dist/assets/{openaiimage-WxXEeab_.js → openaiimage-DQGgyzbi.js} +1 -1
  124. package/dist/assets/{pagination-Ds1aixpX.js → pagination-CuBmtmwA.js} +1 -1
  125. package/dist/assets/{pika-D4UNCnHW.js → pika-CphUmPS5.js} +1 -1
  126. package/dist/assets/pixverse-53fVkn_k.js +1 -0
  127. package/dist/assets/{popover-BkH662_5.js → popover-IXfiUgCO.js} +1 -1
  128. package/dist/assets/{producer-VFT4xOp3.js → producer-BFXuZiNU.js} +1 -1
  129. package/dist/assets/{qrart-BZUxQhoQ.js → qrart-BpxjacUm.js} +1 -1
  130. package/dist/assets/realtime-BapBeQQj.js +1 -0
  131. package/dist/assets/{row-CwcHpwCz.js → row-DIYqBnV-.js} +1 -1
  132. package/dist/assets/{seedance-Bns0jQNo.js → seedance-3ZvIzvDl.js} +1 -1
  133. package/dist/assets/{seedream-CAusmgG9.js → seedream-d0crZjTb.js} +1 -1
  134. package/dist/assets/{select-CTQ_C6Wb.js → select-D8-MrXlh.js} +1 -1
  135. package/dist/assets/serp-DrqtA05w.js +1 -0
  136. package/dist/assets/{slider-DEEcIb84.js → slider-D-sIyihy.js} +1 -1
  137. package/dist/assets/{solana-wallets-CYT8o1sl.js → solana-wallets-BD-91s3k.js} +2 -2
  138. package/dist/assets/{solana-wallets-vue-UQysDenU.js → solana-wallets-vue-BN7vwDg-.js} +1 -1
  139. package/dist/assets/{sora-DFIHjXG1.js → sora-CpiAltQm.js} +1 -1
  140. package/dist/assets/{suno-mRL8qMuz.js → suno-Dn2Kc9PH.js} +1 -1
  141. package/dist/assets/{switch-Bxj_py3N.js → switch-Bre-1sLo.js} +1 -1
  142. package/dist/assets/{tabs-DgAW19Rf.js → tabs-DeLDBcg4.js} +1 -1
  143. package/dist/assets/{time-picker-C82g5obL.js → time-picker-CE-kZjBQ.js} +1 -1
  144. package/dist/assets/{upload-BRnXALUA.js → upload-tclXtS3C.js} +1 -1
  145. package/dist/assets/{headshots-3KJXnULe.js → veo-DE11LP67.js} +1 -1
  146. package/dist/assets/{wan-BosSN2Ic.js → wan-B9YWfRHo.js} +1 -1
  147. package/dist/assets/{web-BSdOobMe.js → web-BVYSZrrw.js} +1 -1
  148. package/dist/assets/{web-BSyJ0EcA.js → web-CQKy79Ew.js} +1 -1
  149. package/dist/assets/{web-b8ifr9Yu.js → web-CgAZNso0.js} +1 -1
  150. package/dist/assets/{web-tvOZdhiP.js → web-Cx5H069d.js} +1 -1
  151. package/dist/assets/{web-BeZOBjRB.js → web-DOodaFyR.js} +1 -1
  152. package/dist/assets/webextrator-D3OA0DWx.js +1 -0
  153. package/dist/index.html +2 -2
  154. package/package.json +1 -1
  155. package/dist/assets/Detail-CcCqTuIf.js +0 -2
  156. package/dist/assets/Index-CxL8h3X8.css +0 -1
  157. package/dist/assets/Index-D17Yt1Tu.js +0 -1
  158. package/dist/assets/Index-D1rg7Ah1.js +0 -1
  159. package/dist/assets/Index-DJenVZe2.js +0 -1
  160. package/dist/assets/Index-DtY_CJIw.js +0 -1
  161. package/dist/assets/Index-GxXs3BX9.js +0 -1
  162. package/dist/assets/Index-SIiimvtW.js +0 -1
  163. package/dist/assets/Index-fJIdilWN.js +0 -1
  164. package/dist/assets/Index-lAFCil1d.js +0 -1
  165. package/dist/assets/Index-nm1BRPrG.js +0 -1
  166. package/dist/assets/Model-CW_Qetzx.js +0 -1
  167. package/dist/assets/Pay-BqExstsj.js +0 -1
  168. package/dist/assets/Subscribe-CWk0x_c1.js +0 -1
  169. package/dist/assets/TabSwitcher-BVPCtePQ.js +0 -1
  170. package/dist/assets/Tts-BazUMMLr.js +0 -1
  171. package/dist/assets/codingBridge-Dt51aUxs.js +0 -2
  172. package/dist/assets/common-BDgOk4yO.js +0 -1
  173. package/dist/assets/common-BKiTKfCZ.js +0 -1
  174. package/dist/assets/common-BYSuwQLC.js +0 -1
  175. package/dist/assets/common-BZ8lg89m.js +0 -1
  176. package/dist/assets/common-BadzwSl_.js +0 -1
  177. package/dist/assets/common-BqIXfpaM.js +0 -1
  178. package/dist/assets/common-CJkY4xit.js +0 -1
  179. package/dist/assets/common-C_NU_LCx.js +0 -1
  180. package/dist/assets/common-Cb5pGc1I.js +0 -1
  181. package/dist/assets/common-CujE7bDQ.js +0 -1
  182. package/dist/assets/common-Cy5866HL.js +0 -1
  183. package/dist/assets/common-D6R0ucpY.js +0 -1
  184. package/dist/assets/common-DO92Unv4.js +0 -1
  185. package/dist/assets/common-D_6UUHZD.js +0 -1
  186. package/dist/assets/common-DgVz9BDw.js +0 -1
  187. package/dist/assets/common-Dsqa3laP.js +0 -1
  188. package/dist/assets/common-opULgssG.js +0 -1
  189. package/dist/assets/common-tYOShTH6.js +0 -1
  190. package/dist/assets/esm-DVxhi1et.js +0 -1
  191. package/dist/assets/image-ZpHwPPzf.js +0 -1
  192. package/dist/assets/midjourney-BntgulJa.js +0 -1
  193. package/dist/assets/pixverse-DTbQc6WS.js +0 -1
  194. package/dist/assets/realtime-BJ_bXv41.js +0 -1
  195. package/dist/assets/serp-DhzcHT0l.js +0 -1
  196. package/dist/assets/webextrator-BY-mKbXu.js +0 -1
@@ -0,0 +1,2 @@
1
+ import{A as e,B as t,C as n,D as r,E as i,F as a,H as o,I as s,L as c,M as l,N as u,O as d,P as f,R as p,S as ee,T as m,V as h,_ as g,a as _,b as v,c as y,d as b,f as x,g as S,h as C,i as te,j as ne,k as re,l as ie,m as ae,n as oe,o as w,p as T,r as E,s as D,t as O,ta as k,u as A,v as j,w as M,x as N,y as P,z as F}from"./constants-MMMyjdpT.js";import{Br as I,Nr as L,Ur as R,Yn as z,en as B}from"./index-D-Qqijue.js";import{a as se,i as V,n as H,o as U,r as W}from"./codingBridgeNotify-rQPtfAnV.js";var G=()=>typeof crypto<`u`&&typeof crypto.randomUUID==`function`?crypto.randomUUID().replace(/-/g,``):`${Date.now().toString(16)}${Math.random().toString(16).slice(2)}`,K=()=>{try{return typeof localStorage<`u`&&localStorage.getItem(`cbDebug`)===`1`}catch{return!1}},q=(e,t)=>{if(!K())return;let n=t?.payload??{};console.debug(`[codingBridge]`,e,{type:t?.type,id:t?.id,node_id:t?.node_id??t?.from_node,action:n?.action,event:n?.event,session_id:n?.session_id,trace_id:n?.trace_id})},ce=class{ws;token;handlers;reconnectDelay=o;reconnectTimer;closedByUser=!1;constructor(e,t){this.token=e,this.handlers=t}get isOpen(){return this.ws?.readyState===WebSocket.OPEN}connect(){this.closedByUser=!1,this.open()}open(){if(this.ws&&(this.ws.readyState===WebSocket.OPEN||this.ws.readyState===WebSocket.CONNECTING))return;let e=`${k}?token=${encodeURIComponent(this.token)}`,t;try{t=new WebSocket(e)}catch(e){console.warn(`[codingBridge] failed to open socket`,e),this.scheduleReconnect();return}this.ws=t,t.onopen=()=>{this.reconnectDelay=o,this.handlers.onOpen?.()},t.onmessage=e=>this.onMessage(e),t.onclose=()=>{this.handlers.onClose?.(),this.closedByUser||this.scheduleReconnect()},t.onerror=()=>{t.close()}}onMessage(e){let n;try{n=JSON.parse(e.data)}catch{return}let r=n?.payload??{};switch(q(`recv`,n),n?.type){case t:this.handlers.onEvent?.(r,n?.from_node);break;case p:this.handlers.onNodesSnapshot?.(r.nodes??[]);break;case F:this.handlers.onNodeStatus?.(r.node_id,r.status);break;case S:this.handlers.onRelayError?.(r.code??`error`,r.message??``);break;default:break}}scheduleReconnect(){if(this.closedByUser||this.reconnectTimer)return;let e=this.reconnectDelay;this.reconnectTimer=setTimeout(()=>{this.reconnectTimer=void 0,this.open()},e),this.reconnectDelay=Math.min(this.reconnectDelay*2,h)}sendEnvelope(e,t){if(!this.isOpen)return;let n={v:2,id:G(),ts:Date.now(),type:e,...t};q(`send`,n),this.ws?.send(JSON.stringify(n))}sendToNode(e,t){this.sendEnvelope(C,{node_id:e,payload:t})}listNodes(){this.sendEnvelope(T,{})}resume(e){this.sendEnvelope(ae,{payload:{resume_from:e}})}close(){if(this.closedByUser=!0,this.reconnectTimer&&=(clearTimeout(this.reconnectTimer),void 0),this.ws){this.ws.onclose=null,this.ws.onerror=null,this.ws.onmessage=null,this.ws.onopen=null;try{this.ws.close()}catch{}this.ws=void 0}}},J,Y=()=>typeof crypto<`u`&&typeof crypto.randomUUID==`function`?crypto.randomUUID().replace(/-/g,``):`${Date.now().toString(16)}${Math.random().toString(16).slice(2)}`,X=(e,t,n)=>({id:Y(),session_id:e,kind:t,ts:Date.now(),...n}),Z=e=>{try{let t=JSON.parse(e);if(t&&typeof t==`object`)return t}catch{}return{answers:{}}},le=e=>{let t=Z(e).answers??{};return Object.entries(t).map(([e,t])=>`${e} → ${Array.isArray(t)?t.join(`, `):t}`).join(`
2
+ `)},ue=(e,t)=>{H({title:`Approval needed`,body:`Claude wants to use ${t.tool||`a tool`}. Tap to review.`,data:t},t=>{t.node_id&&e(`selectNode`,t.node_id)})},Q=(t,o,p,h,_)=>{let y=h?.event,b=h?.session_id,x=h?.trace_id,S=h?.seq;if(typeof S==`number`&&b){let e=p.lastSeq[b];if(e!==void 0&&S<=e)return;t(`setLastSeq`,{session_id:b,seq:S})}switch(b&&x&&t(`updateSession`,{session_id:b,trace_id:x}),y){case ne:t(`upsertSession`,{session_id:b,node_id:_,status:`running`,cwd:h.cwd,model:h.model,...h.effort===void 0?{}:{effort:h.effort},...h.permission_mode===void 0?{}:{permission_mode:h.permission_mode},trace_id:x});break;case r:{let e=h.sdk_session_id;b&&e&&e!==b&&t(`renameSession`,{from:b,to:e});break}case f:{let e=h.id;e&&p.events[b]?.find(t=>t.kind===`text`&&t.stream_id===e)?t(`appendDelta`,{session_id:b,stream_id:e,text:h.text??``}):t(`appendEvent`,X(b,`text`,{text:h.text??``,stream_id:e,streaming:!0,trace_id:x}));break}case u:{let e=h.id;e&&p.events[b]?.find(t=>t.kind===`text`&&t.stream_id===e)?t(`finalizeStream`,{session_id:b,stream_id:e,text:h.text}):t(`appendEvent`,X(b,`text`,{text:h.text,trace_id:x}));break}case a:t(`appendEvent`,X(b,`thinking`,{text:h.text,trace_id:x}));break;case c:t(`appendEvent`,X(b,`tool_use`,{tool:h.tool,tool_use_id:h.tool_use_id,input:h.input,trace_id:x}));break;case s:t(`appendEvent`,X(b,`tool_result`,{tool_use_id:h.tool_use_id,content:h.content,is_error:h.is_error,trace_id:x}));break;case ee:t(`addPermission`,{request_id:h.request_id,session_id:b,node_id:_,tool:h.tool,input:h.input,title:h.title,display_name:h.display_name,description:h.description}),ue(o,{node_id:_,session_id:b,request_id:h.request_id,tool:h.display_name||h.title||h.tool});break;case N:for(let e of h.requests??[])t(`addPermission`,{request_id:e.request_id,session_id:e.session_id,node_id:_,tool:e.tool,input:e.input,title:e.title,display_name:e.display_name,description:e.description});break;case n:t(`removePermission`,h.request_id);break;case re:t(`finalizeAllStreams`,{session_id:b}),t(`appendEvent`,X(b,`result`,{subtype:h.subtype,is_error:h.is_error,text:h.result,cost_usd:h.cost_usd,cut_uuid:h.cut_uuid,sdk_session_id:h.sdk_session_id,trace_id:x})),t(`updateSession`,{session_id:b,status:`idle`,cost_usd:h.cost_usd});break;case d:t(`appendEvent`,X(b,`notice`,{text:h.text,subtype:h.code,command:h.command,level:h.level}));break;case i:t(`finalizeAllStreams`,{session_id:b}),t(`appendEvent`,X(b,`error`,{text:h.message,trace_id:x})),t(`updateSession`,{session_id:b,status:`error`}),t(`updateStatus`,{key:`getHistoryDetail`,value:L.Success});break;case m:t(`finalizeAllStreams`,{session_id:b}),t(`updateSession`,{session_id:b,status:`closed`});break;case e:t(`rewindToCut`,{session_id:b,cut_uuid:h.cut_uuid}),h.prompt&&t(`appendEvent`,X(b,`prompt`,{text:h.prompt,trace_id:x})),t(`updateSession`,{session_id:b,status:`running`});break;case l:o(`resyncSession`,b);break;case M:for(let e of h.sessions??[])t(`upsertSession`,{session_id:e.session_id,node_id:_,status:e.status??`running`,started:!0,cwd:e.cwd,model:e.model,...e.effort===void 0?{}:{effort:e.effort},...e.permission_mode===void 0?{}:{permission_mode:e.permission_mode}});break;case v:if(_){t(`setHistory`,{node_id:_,sessions:h.sessions??[]}),t(`updateStatus`,{key:`getHistory`,value:L.Success});let e=p.historyRef;e&&e.node_id===_&&!p.currentSessionId&&o(`reattachSession`,e)}break;case P:de(t,p,h,_),t(`updateStatus`,{key:`getHistoryDetail`,value:L.Success});break;case j:t(`setDirectory`,{path:h.path,parent:h.parent??null,sep:h.sep??`/`,entries:h.entries??[],truncated:h.truncated,error:h.error});break;case g:_&&t(`setCapabilities`,{node_id:_,capabilities:{providers:h.providers??[]}});break;default:break}},de=(e,t,n,r)=>{let i=n?.session_id,a=fe(n?.provider);if(!i||!r)return;let o=a===`claude`||a===`codex`||a===`copilot`,s=t.sessions[i],c=!!s&&(s.started===!0||s.status===`running`||s.status===`starting`),l=t.lastComposer?.[r]??{};e(`upsertSession`,{session_id:i,node_id:r,status:c?s.status:`idle`,cwd:n.cwd??s?.cwd??l.cwd,model:n.model??s?.model??l.model,effort:n.effort??s?.effort??l.effort,permission_mode:n.permission_mode??s?.permission_mode??l.permissionMode,provider:a,started:!!c,readonly:!o&&!c});let u=t.events[i]?.length??0,d=(n.events??[]).length,f=s?.status===`running`||s?.status===`starting`;c&&u>0&&(f||u>=d)||e(`setEvents`,{session_id:i,events:(n.events??[]).map((e,t)=>({id:Y(),session_id:i,kind:e.kind,ts:typeof e.ts==`number`?e.ts:Date.now()+t,text:e.text,tool:e.tool,tool_use_id:e.tool_use_id,input:e.input,content:e.content,is_error:e.is_error,subtype:e.subtype,cost_usd:e.cost_usd}))}),e(`setCurrentNode`,r),e(`setCurrentSession`,i),e(`setHistoryRef`,{node_id:r,provider:a,session_id:i})},fe=e=>e===`codex`||e===`copilot`?e:`claude`,$={namespaced:!0,state:z,mutations:{resetAll:e=>{Object.assign(e,z())},updateStatus:(e,t)=>{e.status[t.key]=t.value},setConnection:(e,t)=>{e.connection=t},setNodes:(e,t)=>{e.nodes=t},mergeNodeSnapshot:(e,t)=>{let n=new Set(t.map(e=>e.node_id));for(let t of e.nodes)t.status=n.has(t.node_id)?`online`:`offline`;for(let n of t)e.nodes.some(e=>e.node_id===n.node_id)||e.nodes.push({...n,status:`online`})},setNodeStatus:(e,t)=>{let n=e.nodes.find(e=>e.node_id===t.node_id);n&&(n.status=t.status)},setCurrentNode:(e,t)=>{e.currentNodeId=t},setCurrentSession:(e,t)=>{e.currentSessionId=t},upsertSession:(e,t)=>{e.sessions[t.session_id]={...e.sessions[t.session_id],...t},e.events[t.session_id]||(e.events[t.session_id]=[])},updateSession:(e,t)=>{let n=e.sessions[t.session_id];n&&(e.sessions[t.session_id]={...n,...t})},renameSession:(e,t)=>{let{from:n,to:r}=t;if(n===r||!e.sessions[n])return;e.sessions[r]={...e.sessions[r],...e.sessions[n],session_id:r},delete e.sessions[n];let i=e.events[n];i&&(i.length||!e.events[r]?.length)&&(e.events[r]=i),delete e.events[n],delete e.lastSeq[n],e.lastSeq[r]=0;for(let t of e.permissions)t.session_id===n&&(t.session_id=r);e.currentSessionId===n&&(e.currentSessionId=r),e.historyRef?.session_id===n&&(e.historyRef={...e.historyRef,session_id:r})},appendEvent:(e,t)=>{e.events[t.session_id]||(e.events[t.session_id]=[]),e.events[t.session_id].push(t)},truncateEventsBefore:(e,t)=>{let n=e.events[t.session_id];if(!n)return;let r=n.findIndex(e=>e.id===t.event_id);r>=0&&(e.events[t.session_id]=n.slice(0,r))},rewindToCut:(e,t)=>{let n=e.events[t.session_id];if(!n)return;if(!t.cut_uuid){e.events[t.session_id]=[];return}let r=n.findIndex(e=>e.kind===`result`&&e.cut_uuid===t.cut_uuid);r>=0&&(e.events[t.session_id]=n.slice(0,r+1))},setLastSeq:(e,t)=>{let n=e.lastSeq[t.session_id]??0;t.seq>n&&(e.lastSeq[t.session_id]=t.seq)},appendDelta:(e,t)=>{let n=e.events[t.session_id];if(!n)return;let r=n.find(e=>e.kind===`text`&&e.stream_id===t.stream_id);r&&(r.text=(r.text??``)+(t.text??``))},finalizeStream:(e,t)=>{let n=e.events[t.session_id];if(!n)return;let r=n.find(e=>e.kind===`text`&&e.stream_id===t.stream_id);r&&(typeof t.text==`string`&&(r.text=t.text),r.streaming=!1)},finalizeAllStreams:(e,t)=>{let n=e.events[t.session_id];if(n)for(let e of n)e.streaming&&=!1},setEvents:(e,t)=>{e.events[t.session_id]=t.events},setHistory:(e,t)=>{e.history[t.node_id]=t.sessions},setHistoryRef:(e,t)=>{e.historyRef=t},setDirectory:(e,t)=>{e.directory=t,e.directoryLoading=!1},setDirectoryLoading:(e,t)=>{e.directoryLoading=t},setLastComposer:(e,t)=>{e.lastComposer={...e.lastComposer,[t.node_id]:{...e.lastComposer[t.node_id],...t.prefs}}},setCapabilities:(e,t)=>{e.capabilities[t.node_id]=t.capabilities},addPermission:(e,t)=>{e.permissions.some(e=>e.request_id===t.request_id)||e.permissions.push(t)},removePermission:(e,t)=>{e.permissions=e.permissions.filter(e=>e.request_id!==t)},removeNodeData:(e,t)=>{delete e.history[t],delete e.capabilities[t],e.historyRef?.node_id===t&&(e.historyRef=void 0);for(let n of Object.values(e.sessions))n.node_id===t&&(delete e.sessions[n.session_id],delete e.events[n.session_id],delete e.lastSeq[n.session_id],e.currentSessionId===n.session_id&&(e.currentSessionId=void 0))}},actions:{resetAll:({commit:e})=>{e(`resetAll`)},getApplications:async()=>{},setApplication:async()=>{},getNodes:async({commit:e,rootState:t})=>{let n=t.token?.access;if(!n)return[];e(`updateStatus`,{key:`getNodes`,value:L.Request});try{let{data:t}=await B.getNodes({token:n});return e(`setNodes`,t.nodes??[]),e(`updateStatus`,{key:`getNodes`,value:L.Success}),t.nodes??[]}catch(t){throw e(`updateStatus`,{key:`getNodes`,value:L.Error}),t}},claimPair:async({commit:e,dispatch:t,rootState:n},r)=>{let i=n.token?.access;if(!i)throw Error(`not authenticated`);e(`updateStatus`,{key:`claimPair`,value:L.Request});try{let{data:n}=await B.claimPair(r.trim(),{token:i});return e(`updateStatus`,{key:`claimPair`,value:L.Success}),await t(`getNodes`),n.node_name}catch(t){throw e(`updateStatus`,{key:`claimPair`,value:L.Error}),t}},deleteNode:async({commit:e,dispatch:t,state:n,rootState:r},i)=>{let a=r.token?.access;if(!a)throw Error(`not authenticated`);e(`updateStatus`,{key:`deleteNode`,value:L.Request});try{await B.deleteNode(i,{token:a}),e(`removeNodeData`,i),n.currentNodeId===i&&(e(`setCurrentNode`,void 0),e(`setCurrentSession`,void 0)),e(`updateStatus`,{key:`deleteNode`,value:L.Success}),await t(`getNodes`)}catch(t){throw e(`updateStatus`,{key:`deleteNode`,value:L.Error}),t}},connect:({commit:e,dispatch:t,state:n,rootState:r})=>{let i=r.token?.access;i&&(J?.isOpen||(J?.close(),e(`setConnection`,`connecting`),J=new ce(i,{onOpen:()=>{e(`setConnection`,`connected`);let r={...n.lastSeq};Object.keys(r).length&&J?.resume(r),n.currentNodeId&&(t(`getHistory`,n.currentNodeId),t(`getCapabilities`,n.currentNodeId),t(`requestSessions`,n.currentNodeId),t(`requestPendingPermissions`,n.currentNodeId))},onClose:()=>e(`setConnection`,`disconnected`),onEvent:(r,i)=>Q(e,t,n,r,i),onNodesSnapshot:t=>{e(`mergeNodeSnapshot`,t)},onNodeStatus:(r,i)=>{e(`setNodeStatus`,{node_id:r,status:i}),i===`online`&&r===n.currentNodeId&&(t(`getHistory`,r),t(`getCapabilities`,r),t(`requestSessions`,r),t(`requestPendingPermissions`,r))},onRelayError:(e,t)=>console.warn(`[codingBridge] relay error`,e,t)}),J.connect()))},disconnect:({commit:e})=>{J?.close(),J=void 0,e(`setConnection`,`disconnected`)},selectNode:({commit:e,dispatch:t,state:n},r)=>{if(e(`setCurrentNode`,r),!r){e(`setCurrentSession`,void 0);return}let i=Object.values(n.sessions).filter(e=>e.node_id===r).map(e=>e.session_id);e(`setCurrentSession`,i.length?i[i.length-1]:void 0),t(`getHistory`,r),t(`getCapabilities`,r),t(`requestSessions`,r),t(`requestPendingPermissions`,r)},requestSessions:({state:e},t)=>{let n=t??e.currentNodeId;!n||!J||J.sendToNode(n,{action:D})},requestPendingPermissions:({state:e},t)=>{let n=t??e.currentNodeId;!n||!J||J.sendToNode(n,{action:_})},enableNotifications:async({dispatch:e,rootState:t})=>{let n=t.token?.access;if(!n)return`unsupported`;if(R()){let t=await W(t=>{t?.node_id&&(e(`selectNode`,t.node_id),e(`requestPendingPermissions`,t.node_id))});return t?(await B.savePushSubscription({kind:I()?`apns`:`fcm`,token:t,ua:navigator.userAgent},{token:n}),`enabled`):`denied`}let r=await V();if(r===`unsupported`)return`unsupported`;if(r!==`granted`)return`denied`;try{let{data:e}=await B.getPushConfig();if(e.web_push_enabled&&e.vapid_public_key){let t=await se(e.vapid_public_key);t&&await B.savePushSubscription({kind:`webpush`,subscription:t,ua:navigator.userAgent},{token:n})}}catch(e){console.warn(`[codingBridge] web push setup skipped`,e)}return`enabled`},disableNotifications:async({rootState:e})=>{let t=e.token?.access;if(R()||!t)return;let n=await U();if(n)try{await B.deletePushSubscription({endpoint:n},{token:t})}catch(e){console.warn(`[codingBridge] failed to deregister web push`,e)}},newSession:({commit:e})=>{e(`setCurrentSession`,void 0),e(`setHistoryRef`,void 0)},sendPrompt:({commit:e,state:t},n)=>{let r=t.currentNodeId,i=n.prompt?.trim(),a=n.images?.length?n.images:void 0,o=n.attachments?.length?n.attachments:void 0;if(!r||!J||!i&&!a&&!o)return;let s=Y(),c=t.currentSessionId,l=c?t.sessions[c]:void 0;if(!l||!l.started){let t=l?.provider||n.provider||`claude`;l?(c=l.session_id,e(`updateSession`,{session_id:c,status:`starting`,trace_id:s,...n.cwd?{cwd:n.cwd}:{},...n.model===void 0?{}:{model:n.model},...n.effort===void 0?{}:{effort:n.effort},...n.permissionMode===void 0?{}:{permission_mode:n.permissionMode}})):(c=Y(),e(`upsertSession`,{session_id:c,node_id:r,status:`starting`,cwd:n.cwd,model:n.model,effort:n.effort,permission_mode:n.permissionMode,provider:t,trace_id:s}),e(`setCurrentSession`,c),e(`setHistoryRef`,{node_id:r,provider:t,session_id:c})),e(`appendEvent`,X(c,`prompt`,{text:i,images:a,attachments:o,trace_id:s})),e(`updateSession`,{session_id:c,started:!0}),J.sendToNode(r,{action:x,session_id:c,trace_id:s,prompt:i,cwd:n.cwd||l?.cwd||void 0,model:n.model||l?.model||void 0,permission_mode:n.permissionMode||`bypassPermissions`,provider:t,effort:n.effort||void 0,images:a,attachments:o,resume_session_id:l?.session_id||void 0})}else e(`updateSession`,{session_id:c,trace_id:s}),e(`appendEvent`,X(c,`prompt`,{text:i,images:a,attachments:o,trace_id:s})),e(`updateSession`,{session_id:c,status:`running`,model:n.model||void 0,...n.effort===void 0?{}:{effort:n.effort},...n.permissionMode===void 0?{}:{permission_mode:n.permissionMode}}),J.sendToNode(r,{action:b,session_id:c,trace_id:s,prompt:i,model:n.model??``,...n.effort===void 0?{}:{effort:n.effort},...n.permissionMode===void 0?{}:{permission_mode:n.permissionMode},images:a,attachments:o})},editPrompt:({commit:e,state:t},n)=>{let r=t.currentNodeId,i=t.currentSessionId,a=n.prompt?.trim();if(!r||!i||!J||!a)return;let o=t.sessions[i],s=t.events[i]??[],c=s.findIndex(e=>e.id===n.eventId);if(!o||c<0)return;let l;for(let e=c-1;e>=0;e--)if(s[e].kind===`result`&&s[e].cut_uuid){l=s[e].cut_uuid;break}let u=n.images?.length?n.images:void 0,d=n.attachments?.length?n.attachments:void 0,f=Y();e(`truncateEventsBefore`,{session_id:i,event_id:n.eventId}),e(`updateSession`,{session_id:i,status:`running`,trace_id:f,model:n.model||o.model||void 0,...n.effort===void 0?{}:{effort:n.effort},...n.permissionMode===void 0?{}:{permission_mode:n.permissionMode}}),e(`appendEvent`,X(i,`prompt`,{text:a,images:u,attachments:d,trace_id:f})),J.sendToNode(r,{action:ie,session_id:i,trace_id:f,cut_uuid:l,prompt:a,model:n.model||o.model||void 0,permission_mode:n.permissionMode||void 0,effort:n.effort||void 0,images:u,attachments:d,restore_code:!!n.restoreCode})},retryLastPrompt:({commit:e,dispatch:t,state:n})=>{let r=n.currentSessionId;if(!r)return;let i=n.sessions[r],a=[...n.events[r]??[]].reverse().find(e=>e.kind===`prompt`);!i||!a||(e(`updateSession`,{session_id:r,started:!1}),t(`sendPrompt`,{prompt:a.text??``,cwd:i.cwd,model:i.model,provider:i.provider,images:a.images,attachments:a.attachments}))},interruptSession:({state:e})=>{let t=e.currentSessionId,n=e.currentNodeId;!t||!n||!J||J.sendToNode(n,{action:A,session_id:t})},closeSession:({commit:e,state:t},n)=>{let r=n??t.currentSessionId;if(!r)return;let i=t.sessions[r]?.node_id??t.currentNodeId;i&&J&&J.sendToNode(i,{action:y,session_id:r}),e(`updateSession`,{session_id:r,status:`closed`}),t.currentSessionId===r&&e(`setCurrentSession`,void 0)},resolvePermission:({commit:e,state:t},n)=>{let r=t.permissions.find(e=>e.request_id===n.request_id);r&&(J?.sendToNode(r.node_id,{action:w,request_id:n.request_id,decision:n.decision}),e(`removePermission`,n.request_id))},answerQuestion:({commit:e,state:t},n)=>{let r=t.permissions.find(e=>e.request_id===n.request_id);r&&(J?.sendToNode(r.node_id,{action:w,request_id:n.request_id,decision:`allow`,answer:Z(n.output),answer_text:le(n.output)}),e(`removePermission`,n.request_id))},getHistory:({commit:e,state:t},n)=>{let r=n??t.currentNodeId;!r||!J||(e(`updateStatus`,{key:`getHistory`,value:L.Request}),J.sendToNode(r,{action:te,limit:200}))},getHistoryDetail:({commit:e},t)=>{!t?.node_id||!t?.session_id||!J||(e(`updateStatus`,{key:`getHistoryDetail`,value:L.Request}),J.sendToNode(t.node_id,{action:E,provider:t.provider,session_id:t.session_id}),setTimeout(()=>e(`updateStatus`,{key:`getHistoryDetail`,value:L.Success}),12e3))},reattachSession:({state:e,commit:t,dispatch:n},r)=>{!r?.node_id||!r?.session_id||(t(`setCurrentNode`,r.node_id),t(`setCurrentSession`,r.session_id),n(`getHistoryDetail`,r),n(`requestSessions`,r.node_id),n(`requestPendingPermissions`,r.node_id),J?.resume({[r.session_id]:e.lastSeq[r.session_id]??0}))},resyncSession:({state:e,dispatch:t},n)=>{let r=e.sessions[n];r?.node_id&&t(`getHistoryDetail`,{node_id:r.node_id,session_id:n,provider:r.provider??`claude`})},browseDir:({commit:e,state:t},n)=>{let r=t.currentNodeId;!r||!J||(e(`setDirectoryLoading`,!0),J.sendToNode(r,{action:oe,path:n||void 0}))},clearDirectory:({commit:e})=>{e(`setDirectory`,void 0)},getCapabilities:({state:e},t)=>{let n=t??e.currentNodeId;!n||!J||J.sendToNode(n,{action:O})}}};export{$ as codingBridge,$ as default};
@@ -1,2 +1,2 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/esm-BJNQctSy.js","assets/index-Z1kRavm5.js","assets/rolldown-runtime--c01j_DQ.js","assets/preload-helper-zJ_50EbN.js","assets/constants-9Rd-ZRoh.js","assets/vendor-chart-BJCvKk8-.js","assets/vendor-axios-Ck2ffRoh.js","assets/button-BydTr5nV.js","assets/use-deprecated-B-NFNg3W.js","assets/install-CmiepWqE.js","assets/en-CpRrS3Ur.js","assets/runtime-B1Eal4u3.js","assets/vendor-vue-CCKiwo0U.js","assets/vendor-dayjs-C9ICuEWn.js","assets/use-dialog-BA0DNk5w.js","assets/teleport-BEkn5-id.js","assets/aria-CQaCu-Fx.js","assets/event-BGnHezxC.js","assets/scroll-CgpW_lTC.js","assets/vnode-BKrYEsqE.js","assets/use-aria-QsRrwtXj.js","assets/vendor-vue-router-WDnlh53U.js","assets/index-C9sJvT6s.css","assets/esm-DVxhi1et.js"])))=>i.map(i=>d[i]);
2
- import{t as e}from"./preload-helper-zJ_50EbN.js";import{Hr as t}from"./index-Z1kRavm5.js";var n=`/sw.js`,r=()=>typeof window<`u`&&`Notification`in window,i=()=>typeof navigator<`u`&&`serviceWorker`in navigator,a=()=>i()&&`PushManager`in window,o=()=>r()?Notification.permission:`unsupported`,s=e=>{let t=(e+`=`.repeat((4-e.length%4)%4)).replace(/-/g,`+`).replace(/_/g,`/`),n=atob(t),r=new Uint8Array(n.length);for(let e=0;e<n.length;e++)r[e]=n.charCodeAt(e);return r},c=async()=>{if(!i())return null;try{return await navigator.serviceWorker.getRegistration(n)??await navigator.serviceWorker.register(n)}catch(e){return console.warn(`[codingBridge] service worker registration failed`,e),null}},l=async()=>{if(!r())return`unsupported`;if(Notification.permission!==`default`)return Notification.permission;try{return await Notification.requestPermission()}catch{return`denied`}},u=(e,n)=>{if(!(typeof document<`u`&&document.visibilityState===`visible`)){if(t()){d(e);return}if(!(!r()||Notification.permission!==`granted`))try{let t=new Notification(e.title,{body:e.body,tag:e.data.request_id||`coding-bridge-permission`,data:e.data});t.onclick=()=>{try{window.focus()}catch{}n?.(e.data),t.close()}}catch(e){console.warn(`[codingBridge] failed to raise local notification`,e)}}},d=async t=>{try{let{LocalNotifications:n}=await e(async()=>{let{LocalNotifications:e}=await import(`./esm-BJNQctSy.js`);return{LocalNotifications:e}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22]));if((await n.checkPermissions()).display!==`granted`&&(await n.requestPermissions()).display!==`granted`)return;await n.schedule({notifications:[{id:f(t.data.request_id||`permission`),title:t.title,body:t.body,extra:t.data}]})}catch(e){console.warn(`[codingBridge] native local notification failed`,e)}},f=e=>{let t=0;for(let n=0;n<e.length;n++)t=t*31+e.charCodeAt(n)|0;return Math.abs(t)%2147483e3},p=async e=>{if(!a()||!e||await l()!==`granted`)return null;let t=await c();if(!t)return null;try{return(await t.pushManager.getSubscription()??await t.pushManager.subscribe({userVisibleOnly:!0,applicationServerKey:s(e)})).toJSON()}catch(e){return console.warn(`[codingBridge] web push subscribe failed`,e),null}},m=async()=>{if(!a())return null;let e=await(await c())?.pushManager.getSubscription();if(!e)return null;let t=e.endpoint;try{await e.unsubscribe()}catch{}return t},h=async n=>{if(!t())return null;try{let{PushNotifications:t}=await e(async()=>{let{PushNotifications:e}=await import(`./esm-DVxhi1et.js`);return{PushNotifications:e}},__vite__mapDeps([23,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22])),r=await t.requestPermissions();if(r.receive!==`granted`)return console.warn(`[codingBridge] push permission not granted (receive=${r.receive})`),null;let i=await new Promise(e=>{let n=setTimeout(()=>{console.warn(`[codingBridge] push registration timed out — no device token`),e(null)},1e4);t.addListener(`registration`,t=>{clearTimeout(n),e(t.value)}),t.addListener(`registrationError`,t=>{clearTimeout(n),console.warn(`[codingBridge] push registrationError`,t),e(null)}),t.register()});return n&&t.addListener(`pushNotificationActionPerformed`,e=>{n(e.notification?.data??{})}),i}catch(e){return e?.code===`UNIMPLEMENTED`?console.warn(`[codingBridge] PushNotifications plugin not available in this build`,e):console.warn(`[codingBridge] native push registration failed`,e),null}};export{p as a,l as i,u as n,m as o,h as r,r as s,o as t};
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/esm--jvPJl8C.js","assets/index-D-Qqijue.js","assets/rolldown-runtime--c01j_DQ.js","assets/preload-helper-zJ_50EbN.js","assets/constants-MMMyjdpT.js","assets/vendor-chart-BJCvKk8-.js","assets/vendor-axios-Ck2ffRoh.js","assets/button-BydTr5nV.js","assets/use-deprecated-B-NFNg3W.js","assets/install-CmiepWqE.js","assets/en-CpRrS3Ur.js","assets/runtime-B1Eal4u3.js","assets/vendor-vue-CCKiwo0U.js","assets/vendor-dayjs-C9ICuEWn.js","assets/use-dialog-BA0DNk5w.js","assets/teleport-BEkn5-id.js","assets/aria-CQaCu-Fx.js","assets/event-BGnHezxC.js","assets/scroll-CgpW_lTC.js","assets/vnode-BKrYEsqE.js","assets/use-aria-QsRrwtXj.js","assets/vendor-vue-router-WDnlh53U.js","assets/index-C9sJvT6s.css","assets/esm-BjcGM19K.js"])))=>i.map(i=>d[i]);
2
+ import{t as e}from"./preload-helper-zJ_50EbN.js";import{Ur as t}from"./index-D-Qqijue.js";var n=`/sw.js`,r=()=>typeof window<`u`&&`Notification`in window,i=()=>typeof navigator<`u`&&`serviceWorker`in navigator,a=()=>i()&&`PushManager`in window,o=()=>r()?Notification.permission:`unsupported`,s=e=>{let t=(e+`=`.repeat((4-e.length%4)%4)).replace(/-/g,`+`).replace(/_/g,`/`),n=atob(t),r=new Uint8Array(n.length);for(let e=0;e<n.length;e++)r[e]=n.charCodeAt(e);return r},c=async()=>{if(!i())return null;try{return await navigator.serviceWorker.getRegistration(n)??await navigator.serviceWorker.register(n)}catch(e){return console.warn(`[codingBridge] service worker registration failed`,e),null}},l=async()=>{if(!r())return`unsupported`;if(Notification.permission!==`default`)return Notification.permission;try{return await Notification.requestPermission()}catch{return`denied`}},u=(e,n)=>{if(!(typeof document<`u`&&document.visibilityState===`visible`)){if(t()){d(e);return}if(!(!r()||Notification.permission!==`granted`))try{let t=new Notification(e.title,{body:e.body,tag:e.data.request_id||`coding-bridge-permission`,data:e.data});t.onclick=()=>{try{window.focus()}catch{}n?.(e.data),t.close()}}catch(e){console.warn(`[codingBridge] failed to raise local notification`,e)}}},d=async t=>{try{let{LocalNotifications:n}=await e(async()=>{let{LocalNotifications:e}=await import(`./esm--jvPJl8C.js`);return{LocalNotifications:e}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22]));if((await n.checkPermissions()).display!==`granted`&&(await n.requestPermissions()).display!==`granted`)return;await n.schedule({notifications:[{id:f(t.data.request_id||`permission`),title:t.title,body:t.body,extra:t.data}]})}catch(e){console.warn(`[codingBridge] native local notification failed`,e)}},f=e=>{let t=0;for(let n=0;n<e.length;n++)t=t*31+e.charCodeAt(n)|0;return Math.abs(t)%2147483e3},p=async e=>{if(!a()||!e||await l()!==`granted`)return null;let t=await c();if(!t)return null;try{return(await t.pushManager.getSubscription()??await t.pushManager.subscribe({userVisibleOnly:!0,applicationServerKey:s(e)})).toJSON()}catch(e){return console.warn(`[codingBridge] web push subscribe failed`,e),null}},m=async()=>{if(!a())return null;let e=await(await c())?.pushManager.getSubscription();if(!e)return null;let t=e.endpoint;try{await e.unsubscribe()}catch{}return t},h=async n=>{if(!t())return null;try{let{PushNotifications:t}=await e(async()=>{let{PushNotifications:e}=await import(`./esm-BjcGM19K.js`);return{PushNotifications:e}},__vite__mapDeps([23,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22])),r=await t.requestPermissions();if(r.receive!==`granted`)return console.warn(`[codingBridge] push permission not granted (receive=${r.receive})`),null;let i=await new Promise(e=>{let n=setTimeout(()=>{console.warn(`[codingBridge] push registration timed out — no device token`),e(null)},1e4);t.addListener(`registration`,t=>{clearTimeout(n),e(t.value)}),t.addListener(`registrationError`,t=>{clearTimeout(n),console.warn(`[codingBridge] push registrationError`,t),e(null)}),t.register()});return n&&t.addListener(`pushNotificationActionPerformed`,e=>{n(e.notification?.data??{})}),i}catch(e){return e?.code===`UNIMPLEMENTED`?console.warn(`[codingBridge] PushNotifications plugin not available in this build`,e):console.warn(`[codingBridge] native push registration failed`,e),null}};export{p as a,l as i,u as n,m as o,h as r,r as s,o as t};
@@ -1 +1 @@
1
- import{A as e,Bt as t,D as n,E as r,F as i,N as a,O as o,Ot as s,P as c,Pt as l,Q as u,Vt as d,Wt as f,Z as p,b as m,bt as h,ct as g,dt as _,et as v,rt as y,ut as b,v as x,y as S,z as C,zt as w}from"./vendor-chart-BJCvKk8-.js";import{a as T,c as E,i as D,t as O}from"./install-CmiepWqE.js";import{i as k,n as A,r as j,s as M}from"./runtime-B1Eal4u3.js";import{Ct as N,_ as P,l as ee,m as F,nt as I,wt as L}from"./use-deprecated-B-NFNg3W.js";import{t as R}from"./castArray-B2xuZZNf.js";import{r as z,t as B}from"./event-BGnHezxC.js";import{t as V}from"./collapse-transition-C9jp2nDh.js";import{ni as H}from"./index-Z1kRavm5.js";var U=e=>M(e)||t(e)||l(e),W=A({accordion:Boolean,modelValue:{type:j([Array,String,Number]),default:()=>H([])},expandIconPosition:{type:j([String]),default:`right`},beforeCollapse:{type:j(Function)}}),G={[z]:U,[B]:U},K=Symbol(`collapseContextKey`),q=`ElCollapse`,J=(e,t)=>{let n=h(R(e.modelValue)),r=r=>{n.value=r;let i=e.accordion?n.value[0]:n.value;t(z,i),t(B,i)},i=t=>{if(e.accordion)r([n.value[0]===t?``:t]);else{let e=[...n.value],i=e.indexOf(t);i>-1?e.splice(i,1):e.push(t),r(e)}};return g(()=>e.modelValue,()=>n.value=R(e.modelValue),{deep:!0}),u(K,{activeNames:n,handleItemClick:async t=>{let{beforeCollapse:n}=e;if(!n){i(t);return}let r=n(t);[w(r),k(r)].includes(!0)||L(q,"beforeCollapse must return type `Promise<boolean>` or `boolean`"),w(r)?r.then(e=>{e!==!1&&i(t)}).catch(e=>{N(q,`some error occurred: ${e}`)}):r&&i(t)}}),{activeNames:n,setActiveNames:r}},Y=e=>{let t=E(`collapse`);return{rootKls:r(()=>[t.b(),t.b(`icon-position-${e.expandIconPosition}`)])}},X=T(i({...i({name:`ElCollapse`}),props:W,emits:G,setup(t,{expose:n,emit:r}){let i=t,{activeNames:a,setActiveNames:o}=J(i,r),{rootKls:c}=Y(i);return n({activeNames:a,setActiveNames:o}),(t,n)=>(p(),e(`div`,{class:d(s(c))},[v(t.$slots,`default`)],2))}}),[[`__file`,`collapse.vue`]]),Z=A({title:{type:String,default:``},name:{type:j([String,Number]),default:void 0},icon:{type:F,default:P},disabled:Boolean}),Q=e=>{let t=C(K),{namespace:n}=E(`collapse`),i=h(!1),a=h(!1),o=ee(),c=r(()=>o.current++),l=r(()=>e.name??`${n.value}-id-${o.prefix}-${s(c)}`);return{focusing:i,id:c,isActive:r(()=>t?.activeNames.value.includes(s(l))),handleFocus:()=>{setTimeout(()=>{a.value?a.value=!1:i.value=!0},50)},handleHeaderClick:n=>{e.disabled||n.target?.closest(`input, textarea, select`)||(t?.handleItemClick(s(l)),i.value=!1,a.value=!0)},handleEnterClick:e=>{e.target?.closest(`input, textarea, select`)||(e.preventDefault(),t?.handleItemClick(s(l)))}}},te=(e,{focusing:t,isActive:n,id:i})=>{let a=E(`collapse`),o=r(()=>[a.b(`item`),a.is(`active`,s(n)),a.is(`disabled`,e.disabled)]),c=r(()=>[a.be(`item`,`header`),a.is(`active`,s(n)),{focusing:s(t)&&!e.disabled}]),l=r(()=>[a.be(`item`,`arrow`),a.is(`active`,s(n))]);return{itemTitleKls:r(()=>[a.be(`item`,`title`)]),arrowKls:l,headKls:c,rootKls:o,itemWrapperKls:r(()=>a.be(`item`,`wrap`)),itemContentKls:r(()=>a.be(`item`,`content`)),scopedContentId:r(()=>a.b(`content-${s(i)}`)),scopedHeadId:r(()=>a.b(`head-${s(i)}`))}},$=T(i({...i({name:`ElCollapseItem`}),props:Z,setup(t,{expose:r}){let i=t,{focusing:l,id:u,isActive:h,handleFocus:g,handleHeaderClick:C,handleEnterClick:w}=Q(i),{arrowKls:T,headKls:E,rootKls:D,itemTitleKls:O,itemWrapperKls:k,itemContentKls:A,scopedContentId:j,scopedHeadId:M}=te(i,{focusing:l,isActive:h,id:u});return r({isActive:h}),(t,r)=>(p(),e(`div`,{class:d(s(D))},[n(`div`,{id:s(M),class:d(s(E)),"aria-expanded":s(h),"aria-controls":s(j),"aria-describedby":s(j),tabindex:t.disabled?-1:0,role:`button`,onClick:s(C),onKeydown:S(m(s(w),[`stop`]),[`space`,`enter`]),onFocus:s(g),onBlur:e=>l.value=!1},[n(`span`,{class:d(s(O))},[v(t.$slots,`title`,{isActive:s(h)},()=>[a(f(t.title),1)])],2),v(t.$slots,`icon`,{isActive:s(h)},()=>[c(s(I),{class:d(s(T))},{default:b(()=>[(p(),o(y(t.icon)))]),_:1},8,[`class`])])],42,[`id`,`aria-expanded`,`aria-controls`,`aria-describedby`,`tabindex`,`onClick`,`onKeydown`,`onFocus`,`onBlur`]),c(s(V),null,{default:b(()=>[_(n(`div`,{id:s(j),role:`region`,class:d(s(k)),"aria-hidden":!s(h),"aria-labelledby":s(M)},[n(`div`,{class:d(s(A))},[v(t.$slots,`default`)],2)],10,[`id`,`aria-hidden`,`aria-labelledby`]),[[x,s(h)]])]),_:3})],2))}}),[[`__file`,`collapse-item.vue`]]),ne=O(X,{CollapseItem:$}),re=D($);export{re as n,ne as t};
1
+ import{A as e,Bt as t,D as n,E as r,F as i,N as a,O as o,Ot as s,P as c,Pt as l,Q as u,Vt as d,Wt as f,Z as p,b as m,bt as h,ct as g,dt as _,et as v,rt as y,ut as b,v as x,y as S,z as C,zt as w}from"./vendor-chart-BJCvKk8-.js";import{a as T,c as E,i as D,t as O}from"./install-CmiepWqE.js";import{i as k,n as A,r as j,s as M}from"./runtime-B1Eal4u3.js";import{Ct as N,_ as P,l as ee,m as F,nt as I,wt as L}from"./use-deprecated-B-NFNg3W.js";import{t as R}from"./castArray-B2xuZZNf.js";import{r as z,t as B}from"./event-BGnHezxC.js";import{t as V}from"./collapse-transition-C9jp2nDh.js";import{ii as H}from"./index-D-Qqijue.js";var U=e=>M(e)||t(e)||l(e),W=A({accordion:Boolean,modelValue:{type:j([Array,String,Number]),default:()=>H([])},expandIconPosition:{type:j([String]),default:`right`},beforeCollapse:{type:j(Function)}}),G={[z]:U,[B]:U},K=Symbol(`collapseContextKey`),q=`ElCollapse`,J=(e,t)=>{let n=h(R(e.modelValue)),r=r=>{n.value=r;let i=e.accordion?n.value[0]:n.value;t(z,i),t(B,i)},i=t=>{if(e.accordion)r([n.value[0]===t?``:t]);else{let e=[...n.value],i=e.indexOf(t);i>-1?e.splice(i,1):e.push(t),r(e)}};return g(()=>e.modelValue,()=>n.value=R(e.modelValue),{deep:!0}),u(K,{activeNames:n,handleItemClick:async t=>{let{beforeCollapse:n}=e;if(!n){i(t);return}let r=n(t);[w(r),k(r)].includes(!0)||L(q,"beforeCollapse must return type `Promise<boolean>` or `boolean`"),w(r)?r.then(e=>{e!==!1&&i(t)}).catch(e=>{N(q,`some error occurred: ${e}`)}):r&&i(t)}}),{activeNames:n,setActiveNames:r}},Y=e=>{let t=E(`collapse`);return{rootKls:r(()=>[t.b(),t.b(`icon-position-${e.expandIconPosition}`)])}},X=T(i({...i({name:`ElCollapse`}),props:W,emits:G,setup(t,{expose:n,emit:r}){let i=t,{activeNames:a,setActiveNames:o}=J(i,r),{rootKls:c}=Y(i);return n({activeNames:a,setActiveNames:o}),(t,n)=>(p(),e(`div`,{class:d(s(c))},[v(t.$slots,`default`)],2))}}),[[`__file`,`collapse.vue`]]),Z=A({title:{type:String,default:``},name:{type:j([String,Number]),default:void 0},icon:{type:F,default:P},disabled:Boolean}),Q=e=>{let t=C(K),{namespace:n}=E(`collapse`),i=h(!1),a=h(!1),o=ee(),c=r(()=>o.current++),l=r(()=>e.name??`${n.value}-id-${o.prefix}-${s(c)}`);return{focusing:i,id:c,isActive:r(()=>t?.activeNames.value.includes(s(l))),handleFocus:()=>{setTimeout(()=>{a.value?a.value=!1:i.value=!0},50)},handleHeaderClick:n=>{e.disabled||n.target?.closest(`input, textarea, select`)||(t?.handleItemClick(s(l)),i.value=!1,a.value=!0)},handleEnterClick:e=>{e.target?.closest(`input, textarea, select`)||(e.preventDefault(),t?.handleItemClick(s(l)))}}},te=(e,{focusing:t,isActive:n,id:i})=>{let a=E(`collapse`),o=r(()=>[a.b(`item`),a.is(`active`,s(n)),a.is(`disabled`,e.disabled)]),c=r(()=>[a.be(`item`,`header`),a.is(`active`,s(n)),{focusing:s(t)&&!e.disabled}]),l=r(()=>[a.be(`item`,`arrow`),a.is(`active`,s(n))]);return{itemTitleKls:r(()=>[a.be(`item`,`title`)]),arrowKls:l,headKls:c,rootKls:o,itemWrapperKls:r(()=>a.be(`item`,`wrap`)),itemContentKls:r(()=>a.be(`item`,`content`)),scopedContentId:r(()=>a.b(`content-${s(i)}`)),scopedHeadId:r(()=>a.b(`head-${s(i)}`))}},$=T(i({...i({name:`ElCollapseItem`}),props:Z,setup(t,{expose:r}){let i=t,{focusing:l,id:u,isActive:h,handleFocus:g,handleHeaderClick:C,handleEnterClick:w}=Q(i),{arrowKls:T,headKls:E,rootKls:D,itemTitleKls:O,itemWrapperKls:k,itemContentKls:A,scopedContentId:j,scopedHeadId:M}=te(i,{focusing:l,isActive:h,id:u});return r({isActive:h}),(t,r)=>(p(),e(`div`,{class:d(s(D))},[n(`div`,{id:s(M),class:d(s(E)),"aria-expanded":s(h),"aria-controls":s(j),"aria-describedby":s(j),tabindex:t.disabled?-1:0,role:`button`,onClick:s(C),onKeydown:S(m(s(w),[`stop`]),[`space`,`enter`]),onFocus:s(g),onBlur:e=>l.value=!1},[n(`span`,{class:d(s(O))},[v(t.$slots,`title`,{isActive:s(h)},()=>[a(f(t.title),1)])],2),v(t.$slots,`icon`,{isActive:s(h)},()=>[c(s(I),{class:d(s(T))},{default:b(()=>[(p(),o(y(t.icon)))]),_:1},8,[`class`])])],42,[`id`,`aria-expanded`,`aria-controls`,`aria-describedby`,`tabindex`,`onClick`,`onKeydown`,`onFocus`,`onBlur`]),c(s(V),null,{default:b(()=>[_(n(`div`,{id:s(j),role:`region`,class:d(s(k)),"aria-hidden":!s(h),"aria-labelledby":s(M)},[n(`div`,{class:d(s(A))},[v(t.$slots,`default`)],2)],10,[`id`,`aria-hidden`,`aria-labelledby`]),[[x,s(h)]])]),_:3})],2))}}),[[`__file`,`collapse-item.vue`]]),ne=O(X,{CollapseItem:$}),re=D($);export{re as n,ne as t};
@@ -0,0 +1 @@
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:`안드로이드 다운로드`,description:`버튼의 텍스트, 안드로이드 설치 파일을 다운로드하는 데 사용`},"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:`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:`작업`,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 휴대폰 및 태블릿에 적합하며, QR 코드를 스캔하여 최신 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:`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 이상(64비트)용. 설치 프로그램을 내려받아 두 번 클릭하면 설치됩니다.`,description:`Windows desktop download card description`},"message.desktopMacHint":{message:`macOS 11 이상용. 사용 중인 Mac에 맞는 빌드를 선택하세요 — Apple Silicon(M 시리즈) 또는 Intel.`,description:`macOS desktop download card description`},"message.desktopUnsignedNote":{message:`데스크톱 앱은 서명되지 않은 베타 빌드입니다. 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:`Get it on the 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:`Scan to open the 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:`사용자는 휴대폰에서 QR 코드를 스캔하여 직접 설치할 수 있으며, 데스크탑에서 APK를 다운로드한 후 팀원에게 배포할 수 있습니다. 빠른 사용 및 내부 테스트에 적합합니다.`,description:`다운로드 페이지 장점 설명, 빠른 접근 강조`},"message.mobileTrustedRelease":{message:`다운로드 링크가 동일한 페이지에 집중되어 있어 버전 번호, 플랫폼 상태 및 설치 방법을 한눈에 볼 수 있어, 링크 분산으로 인한 커뮤니케이션 비용을 줄입니다.`,description:`다운로드 페이지 장점 설명, 통합 배포 강조`},"message.mobileUnifiedExperience":{message:`로그인 후 계정 시스템, 한도 및 서비스 진입점이 웹과 일치하여 사용자가 데스크탑과 모바일 간에 원활하게 전환할 수 있습니다.`,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:`WeChat 추가`,description:`사용자가 WeChat 계정을 추가하도록 유도하는 메시지`},"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:`채팅`,description:`웹사이트 내비게이션 바의 텍스트로, 채팅 페이지를 표시, 이 필드는 번역하지 말고 'Chat'로 유지해야 함`},"nav.veo":{message:`Veo`,description:`웹사이트 내비게이션 바의 텍스트로, 채팅 페이지를 표시, 이 필드는 번역하지 말고 'Veo'로 유지해야 함`},"nav.sora":{message:`Sora`,description:`웹사이트 내비게이션 바의 텍스트로, 채팅 페이지를 표시, 이 필드는 번역하지 말고 'Sora'로 유지해야 함`},"nav.midjourney":{message:`Midjourney`,description:`웹사이트 내비게이션 바의 텍스트로, Midjourney 페이지를 표시, 이 필드는 번역하지 말고 'Midjourney'로 유지해야 함`},"nav.qrart":{message:`QRArt`,description:`웹사이트 내비게이션 바의 텍스트로, 2D 아트 페이지를 표시, 이 필드는 번역하지 말고 '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 이미지`,description:`웹사이트 내비게이션 바의 텍스트로, OpenAI 이미지 페이지를 표시, 이 필드는 번역하지 말고 '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 키 레이블 - 사용자가 제공하는 상위 서비스 제공업체 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.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:`설정 팝업의 서브사이트 관리 탭 제목. 공식 메인 사이트에서만 표시되며, 서브사이트는 표시되지 않음.`},"settings.adminOnlyHint":{message:`이 섹션은 사이트 관리자만 볼 수 있으며, 일반 사용자는 접근할 수 없습니다.`,description:`사이트 설정 / SEO 설정 / 배포 설정 / 기능 설정 등에서 관리자만 볼 수 있는 설정 탭 상단에 표시되는 안내 문구입니다.`},"settings.officialOnlyHint":{message:`이 섹션은 본 사이트에서만 볼 수 있으며, 하위 사이트에서는 표시되지 않습니다.`,description:`'내 하위 사이트' 탭 상단에 표시되는 안내 문구로, 해당 항목이 공식 본 사이트에서만 나타난다는 것을 설명합니다.`},"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:`정보 페이지의 '원클릭 서브사이트 구축' 버튼 텍스트, 공식 메인 사이트에서만 표시`},"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 키로 이 요청을 실시간으로 실행하세요.`,description:`사용자가 요청을 실행하기 전에 표시되는 API 코드 대화 상자의 응답 탭 빈 상태입니다.`},"message.apiRunConfirmTitle":{message:`실행 확인`,description:`API 코드 대화 상자에서 요청을 다시 실행하기 전에 표시되는 확인 대화 상자의 제목입니다.`},"message.apiRunConfirmDesc":{message:`이번 실행은 당신의 API 키를 사용하여 실제로 API를 호출하고 추가 포인트를 소모합니다. 계속 진행하시겠습니까?`,description:`요청을 다시 실행하는 것이 실제로 청구되는 API 호출이라는 경고가 있는 확인 대화 상자의 본문입니다.`},"message.apiRunConfirmSkip":{message:`더 이상 알림 표시 안 함`,description:`실행 확인 대화 상자에서 체크하면 이후 실행 시 경고를 억제하는 체크박스입니다.`},"message.apiRunTaskCreated":{message:`작업이 생성되었습니다. 이 창을 닫으면 아래에서 최신 결과를 확인할 수 있습니다.`,description:`실행 후 작업 ID가 반환되면 API 코드 대화 상자에 표시되는 성공 배너로, 새 작업이 대화 상자 뒤의 목록에 이미 나타나 있음을 암시합니다.`},"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:`Digital Human`,description:`Text in the website navigation bar for the Digital Human talking-head page`}};export{e as default};
@@ -0,0 +1 @@
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:`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:`Операція`,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 телефонів та планшетів, скануйте QR-код для завантаження останнього 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:`Для опису способу прямого встановлення APK на Android`},"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:`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 і новіших (64-біт). Завантажте інсталятор і двічі клацніть, щоб установити.`,description:`Windows desktop download card description`},"message.desktopMacHint":{message:`Для macOS 11 і новіших. Виберіть збірку для вашого Mac — Apple Silicon (серія M) або Intel.`,description:`macOS desktop download card description`},"message.desktopUnsignedNote":{message:`Настільні застосунки — це непідписані бета-збірки. У 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:`Get it on the 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:`Scan to open the App Store`,description:`Hint under the QR code explaining that scanning it opens the App Store listing`},"message.mobileInstallNote":{message:`При першому встановленні корпоративного або Ad Hoc пакету на iOS, система може вимагати спочатку довірити сертифікат у 'Налаштування > Загальні > 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:`Користувачі можуть сканувати QR-код для прямого встановлення на телефоні або спочатку завантажити APK на настільному комп'ютері та розповсюдити його серед членів команди, що підходить для швидкого тестування та бета-тестування.`,description:`Опис переваг на сторінці завантаження, підкреслює швидкий доступ`},"message.mobileTrustedRelease":{message:`Всі посилання для завантаження зосереджені на одній сторінці, номер версії, статус платформи та спосіб встановлення видно з першого погляду, що зменшує витрати на комунікацію через розподіл ланцюгів.`,description:`Опис переваг на сторінці завантаження, підкреслює єдність доставки`},"message.mobileUnifiedExperience":{message:`Система акаунтів, ліміти та входи до послуг після входу залишаються однаковими з веб-версією, що дозволяє користувачам безперешкодно перемикатися між настільним та мобільним пристроями.`,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:`Сервіс WeChat`,description:`Повідомлення для запрошення користувача додати обліковий запис WeChat`},"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:`Чат`,description:`Текст у навігаційній панелі сайту для відображення сторінки чату, не перекладати, залишити 'Chat'`},"nav.veo":{message:`Veo`,description:`Текст у навігаційній панелі сайту для відображення сторінки чату, не перекладати, залишити 'Veo'`},"nav.sora":{message:`Sora`,description:`Текст у навігаційній панелі сайту для відображення сторінки чату, не перекладати, залишити 'Sora'`},"nav.midjourney":{message:`Midjourney`,description:`Текст у навігаційній панелі сайту для відображення сторінки Midjourney, не перекладати, залишити 'Midjourney'`},"nav.qrart":{message:`QRArt`,description:`Текст у навігаційній панелі сайту для відображення сторінки QRArt, не перекладати, залишити '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:`Заголовок сторінки для поповнення рахунку. Має бути перекладено як 'Поповнити рахунок'.`},"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 Continental Dr, Suite 305, Newark, DE 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 Key`,description:`Мітка API Key на бічній панелі сторінки налаштувань — управління API Key постачальників послуг, що надаються користувачем (BYOK)`},"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:`Папки, які ШІ може читати та записувати на цьому пристрої. Інструменти виконуються локально; ніщо не залишає ваш пристрій без вашої згоди.`,description:`Help text under the authorized-folders heading.`},"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:`Заголовок вкладки управління підсайтами в спливаючому вікні налаштувань. Видно лише на офіційному головному сайті, підсайти не відображаються.`},"settings.adminOnlyHint":{message:`Цей розділ видимий лише для адміністраторів сайту, звичайні користувачі не можуть отримати доступ.`,description:`Цей текст є підказкою, що відображається у верхній частині вкладок налаштувань сайту / SEO налаштувань / налаштувань розповсюдження / налаштувань функцій, які видимі лише для адміністраторів.`},"settings.officialOnlyHint":{message:`Цей розділ видимий лише на основному сайті, підсайти не відображатимуть його.`,description:`Цей текст є підказкою, що відображається у верхній частині вкладки 'Мої підсайти', пояснюючи, що цей вхід доступний лише на офіційному основному сайті.`},"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:`Текст кнопки 'Створити підсайт' на сторінці 'Про нас', відображається лише на офіційному головному сайті`},"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:`Сторінка, яку ви відвідали, не існує, можливо, посилання було змінено або видалено. Поверніться на головну, щоб продовжити дослідження AI послуг AceData.`,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 коду, яка повторно запускає запит в реальному часі з використанням ключа користувача. Результат вже існує, тому натискання запускає його знову, і це підлягає оплаті.`},"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-коду після виконання, яке повертає ідентифікатор завдання, натякаючи, що нове завдання вже з'явилося в списку за діалогом.`},"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:`Digital Human`,description:`Text in the website navigation bar for the Digital Human talking-head page`}};export{e as default};
@@ -0,0 +1 @@
1
+ var e={"button.setup":{message:`Configurar`,description:`Texto no botão para realizar configurações`},"button.start":{message:`Iniciar`,description:`Texto no botão para iniciar alguma operação`},"button.copy":{message:`Copiar`,description:`Texto no botão para copiar algum conteúdo`},"button.copied":{message:`Copiado`,description:`Texto no botão para indicar que o conteúdo foi copiado`},"button.restart":{message:`Regerar`,description:`Texto no botão para regenerar algum conteúdo`},"button.preview":{message:`Pré-visualizar`,description:`Texto no botão para abrir a pré-visualização de um arquivo via URL`},"button.seeRawImage":{message:`Ver Imagem Original`,description:`Texto no botão para ver a imagem original`},"button.seeRawVideo":{message:`Ver Vídeo`,description:`Texto no botão para ver o vídeo original`},"button.edit":{message:`Editar`,description:`Texto no botão para editar conteúdo`},"button.login":{message:`Entrar`,description:`Texto no botão para fazer login`},"button.logout":{message:`Sair`,description:`Texto no botão para fazer logout`},"button.new":{message:`Novo`,description:`Texto no botão para criar um novo item`},"button.delete":{message:`Excluir`,description:`Texto no botão para excluir conteúdo`},"button.deletePermanently":{message:`Excluir conta permanentemente`,description:`Final red delete button at the bottom of the delete confirmation dialog`},"button.confirm":{message:`Confirmar`,description:`Texto no botão para confirmar uma operação`},"button.cancel":{message:`Cancelar`,description:`Texto no botão para cancelar uma operação`},"button.close":{message:`Fechar`,description:`Texto no botão para fechar uma caixa de diálogo ou painel`},"button.expand":{message:`Expandir`,description:`Texto do botão que indica a ação de abrir o editor em tela cheia para a entrada de sugestões.`},"button.alert":{message:`Alerta`,description:`Texto no botão para emitir um alerta`},"button.info":{message:`Informação`,description:`Texto no botão para exibir informações`},"button.publish":{message:`Publicar`,description:`Texto no botão para publicar conteúdo`},"button.watch":{message:`Assistir`,description:`Texto no botão para assistir a algum conteúdo`},"button.verify":{message:`Verificação de Identidade`,description:`Texto no botão para permitir que o usuário faça a verificação de identidade`},"button.profile":{message:`Perfil`,description:`Texto no botão para exibir o perfil do usuário`},"button.console":{message:`Console`,description:`Texto no botão para exibir a página do console para controlar algum conteúdo na web`},"button.learn":{message:`Aprender`,description:`Texto no botão para permitir que o usuário aprenda algo`},"button.buy":{message:`Comprar`,description:`Texto no botão para permitir que o usuário compre algo`},"button.try":{message:`Experimentar`,description:`Texto no botão para permitir que o usuário experimente algo`},"button.startForFree":{message:`Começar Grátis`,description:`Texto no botão para permitir que o usuário comece gratuitamente`},"button.download":{message:`Baixar`,description:`Texto no botão para baixar arquivos (como áudio, vídeo, imagem)`},"button.downloadAndroid":{message:`Baixar Android`,description:`Texto no botão para baixar o pacote de instalação do Android`},"button.downloadIos":{message:`Baixar iOS`,description:`Texto no botão para baixar o arquivo de instalação do iOS`},"button.downloadWindows":{message:`Baixar para Windows`,description:`Text in button for downloading the Windows desktop installer`},"button.downloadMac":{message:`Baixar para macOS`,description:`Text in button for downloading the macOS desktop installer`},"button.installIos":{message:`Instalar iOS`,description:`Texto no botão para instalar o aplicativo iOS`},"button.apply":{message:`Solicitar`,description:`Texto no botão para permitir que o usuário solicite o serviço de API`},"button.refresh":{message:`Atualizar`,description:`Texto no botão para atualizar a página`},"button.pay":{message:`Pagar`,description:`Texto no botão para permitir que o usuário pague a taxa de serviço`},"button.repay":{message:`Continuar Pagamento`,description:`Texto no botão para permitir que o usuário continue o pagamento da taxa de serviço`},"button.applied":{message:`Solicitado`,description:`Texto no botão para indicar que o usuário já solicitou o serviço`},"button.acquire":{message:`Obter`,description:`Texto no botão para permitir que o usuário obtenha o token ou chave do serviço de API`},"button.fillExample":{message:`Preencher Exemplo`,description:`Texto no botão para permitir que o usuário preencha dados de exemplo`},"button.buyMore":{message:`Recarregar`,description:`Texto no botão para permitir que o usuário recarregue. O inglês deve ser traduzido como 'Top Up', o chinês como '充值'.`},"button.update":{message:`Atualizar`,description:`Texto no botão para atualizar conteúdo`},"button.view":{message:`Ver`,description:`Texto no botão para ver algum conteúdo`},"button.create":{message:`Criar`,description:`Texto no botão para criar algum conteúdo`},"button.referralEarnings":{message:`Renda de Referência`,description:`Texto no botão que exibe a renda de referência, indicando que o usuário pode ganhar dinheiro convidando outras pessoas a usar o serviço`},"button.finish":{message:`Concluir`,description:`Texto no botão para finalizar uma operação`},"entity.id":{message:`ID`,description:`Identificador único para exibir a entidade`},"entity.type":{message:`Tipo`,description:`Tipo da entidade`},"entity.website":{message:`Ace Data Cloud`,description:`Nome do site, não precisa ser traduzido, mantenha como 'Ace Data Cloud'`},"entity.copyright":{message:`Copyright`,description:`Texto que exibe o copyright`},"entity.platform":{message:`Plataforma`,description:`Texto que indica que este é um serviço de plataforma API`},"entity.title":{message:`Título`,description:`Título da entidade`},"entity.icon":{message:`Ícone`,description:`Ícone da entidade`},"entity.status":{message:`Status`,description:`Status da entidade`},"status.loading":{message:`Carregando...`,description:`Texto de status exibido enquanto o conteúdo está sendo carregado`},"error.appleSignInFailed":{message:`Falha ao iniciar sessão com a Apple. Tente novamente ou utilize outro método de início de sessão.`,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:`Operação`,description:`Operação da entidade`},"entity.description":{message:`Descrição`,description:`Descrição da entidade`},"entity.createdAt":{message:`Criado em`,description:`Data de criação da entidade`},"entity.updatedAt":{message:`Atualizado em`,description:`Data de atualização da entidade`},"entity.order":{message:`Pedido`,description:`Pedido da entidade, que inclui informações financeiras e de serviço, que o usuário precisa pagar`},"message.noTasks":{message:`Nenhuma tarefa histórica, comece uma nova tarefa~`,description:`Mensagem exibida quando não há tarefas`},"message.usedAmount":{message:`Valor utilizado`,description:`Usado para exibir o valor já utilizado do serviço`},"message.mobileAppDescription":{message:`Use o AceData diretamente no celular, atualmente disponível para download do APK Android, pacote de instalação iOS será disponibilizado após a assinatura.`,description:`Texto explicativo na página de download do aplicativo móvel`},"message.mobileAndroidHint":{message:`Compatível com celulares e tablets Android, escaneie para baixar e instalar o APK mais recente.`,description:`Descrição do cartão de download Android`},"message.mobileAndroidPending":{message:`Pacote de instalação Android ainda não está pronto, por favor, tente novamente mais tarde.`,description:`Mensagem quando o pacote de instalação Android não está disponível`},"message.mobileAvailableNow":{message:`Android disponível para download`,description:`Usado para exibir o status de que o Android está disponível para download`},"message.mobileSecureDelivery":{message:`Distribuição segura via CDN`,description:`Usado para enfatizar que o link de download é entregue via CDN`},"message.mobileDirectInstall":{message:`Instalação direta do APK`,description:`Usado para descrever que a instalação no Android é feita diretamente via APK`},"message.mobileLatestRelease":{message:`Versão pública atual`,description:`Usado para indicar que a versão exibida é a mais recente disponível`},"message.mobileSharedAccount":{message:`Conta e créditos compartilhados com a versão web`,description:`Usado para indicar que a versão móvel compartilha a conta com a versão web`},"message.mobileIosHint":{message:`Compatível com iPhone e iPad, pode ser instalado online; se o sistema bloquear, você pode baixar o IPA e depois distribuir.`,description:`Descrição do cartão de download iOS`},"message.mobileIosPending":{message:`Pacote de instalação iOS ainda não disponível para download, será disponibilizado após a finalização do certificado e do perfil da Apple.`,description:`Mensagem quando o pacote de instalação iOS não está disponível`},"message.mobileComingSoon":{message:`Em breve`,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:`Para Windows 10 e posterior (64 bits). Baixe o instalador e clique duas vezes para instalar.`,description:`Windows desktop download card description`},"message.desktopMacHint":{message:`Para macOS 11 e posterior. Escolha a versão que corresponde ao seu Mac — Apple Silicon (série M) ou Intel.`,description:`macOS desktop download card description`},"message.desktopUnsignedNote":{message:`Os aplicativos de desktop são versões beta não assinadas. No Windows, escolha «Mais informações → Executar assim mesmo» no aviso do SmartScreen; no macOS, clique com o botão direito no app e escolha «Abrir» para ignorar o Gatekeeper.`,description:`Note explaining the desktop builds are unsigned betas and how to open them`},"button.getOnGooglePlay":{message:`Disponível no 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:`Sem acesso ao Google Play? Baixe o APK diretamente.`,description:`Shown next to a secondary button offering a direct APK download for users who cannot access Google Play`},"message.mobilePlayStoreHint":{message:`Escaneie para abrir o 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:`Ao instalar pela primeira vez um pacote corporativo ou Ad Hoc no iOS, o sistema pode solicitar que você confie no certificado em 'Ajustes > Geral > VPN e Gerenciamento de Dispositivos'.`,description:`Dica de instalação do aplicativo móvel`},"title.mobileApp":{message:`Download do Móvel`,description:`Título da página de download do aplicativo móvel`},"title.mobileFastAccess":{message:`Acesso mais rápido, sem passar pela loja de aplicativos`,description:`Título do cartão de vantagens na página de download, enfatizando a instalação rápida`},"title.mobileTrustedRelease":{message:`Gerenciamento centralizado de versões, distribuição mais estável`,description:`Título do cartão de vantagens na página de download, enfatizando a estabilidade de versões e distribuição`},"title.mobileUnifiedExperience":{message:`Experiência móvel e web consistente`,description:`Título do cartão de vantagens na página de download, enfatizando a experiência unificada`},"nav.mobileApp":{message:`Aplicativo Móvel`,description:`Entrada de download do aplicativo móvel na navegação`},"message.mobileFastAccess":{message:`Os usuários podem escanear para instalar diretamente no celular ou baixar o APK no desktop e depois distribuir para os membros da equipe, ideal para testes rápidos e cenários de beta.`,description:`Descrição de vantagens na página de download, enfatizando o acesso rápido`},"message.mobileTrustedRelease":{message:`Os links de download estão centralizados em uma única página, com número da versão, status da plataforma e método de instalação visíveis, reduzindo os custos de comunicação causados pela dispersão de links.`,description:`Descrição de vantagens na página de download, enfatizando a distribuição unificada`},"message.mobileUnifiedExperience":{message:`O sistema de contas, créditos e entradas de serviço após o login é consistente com a versão web, facilitando a troca sem costura entre desktop e móvel.`,description:`Descrição de vantagens na página de download, enfatizando a experiência de conta unificada`},"message.remainingAmount":{message:`Valor restante`,description:`Usado para exibir o valor restante do serviço`},"message.copied":{message:`Copiado com sucesso`,description:`Mensagem que indica que o conteúdo foi copiado com sucesso`},"message.restart":{message:`Regerar`,description:`Mensagem para mostrar que o conteúdo foi copiado com sucesso`},"message.confirmDelete":{message:`Você tem certeza que deseja excluir?`,description:`Mensagem para confirmar que o usuário deseja excluir um item`},"message.expiredAt":{message:`Data de expiração`,description:`Mensagem para mostrar a data de expiração do serviço`},"message.alert":{message:`Atenção`,description:`Mensagem para alertar o usuário`},"message.deleteAccountConfirm":{message:`Isto irá eliminar permanentemente a sua conta e todos os dados associados. Esta ação não pode ser desfeita. Tem a certeza de que deseja continuar?`,description:`Confirmation message shown before permanently deleting the user account`},"message.deleteAccountSuccess":{message:`A sua conta foi eliminada.`,description:`Message shown after the user account is successfully deleted`},"message.deleteAccountFailed":{message:`Falha ao eliminar a sua conta. Tente novamente mais tarde.`,description:`Message shown when account deletion fails`},"message.deleteAccountWarning":{message:`Esta ação é irreversível! Sua conta e todos os seus dados serão excluídos permanentemente e não poderão ser recuperados.`,description:`Red warning banner at the top of the delete confirmation dialog`},"message.deleteAccountConsequences":{message:`Excluídos permanentemente: perfil, saldo e créditos, aplicativos e assinaturas, chaves de API e vínculos de login de terceiros.`,description:`Explains what data will be removed in the delete confirmation dialog`},"message.deleteAccountTypePrompt":{message:`Digite seu nome de usuário para confirmar a exclusão:`,description:`Instructs the user to type their username to confirm; the username is shown separately below`},"message.deleteAccountPlaceholder":{message:`Digite seu nome de usuário aqui`,description:`Placeholder for the username confirmation input`},"message.info":{message:`Informação`,description:`Mensagem para exibir informações`},"message.free":{message:`Gratuito`,description:`Mensagem para mostrar que o serviço é gratuito, ou seja, o usuário não precisa pagar`},"message.startPrice":{message:`A partir de`,description:`Mensagem para mostrar o preço mínimo do serviço`},"message.joinDiscord":{message:`Entrar no Discord`,description:`Mensagem para convidar o usuário a entrar no canal do Discord`},"message.addWeChat":{message:`Adicionar WeChat`,description:`Mensagem para convidar o usuário a adicionar uma conta do WeChat`},"message.serviceTech":{message:`Suporte Técnico`,description:`Mensagem para mostrar suporte técnico`},"message.businessCooperation":{message:`Cooperação de Dados & Negócios`,description:`Mensagem para mostrar cooperação comercial`},"message.noData":{message:`Sem dados`,description:`Mensagem para mostrar que não há dados na tabela ou lista`},"nav.home":{message:`Início`,description:`Texto na barra de navegação do site para mostrar a página inicial`},"nav.content":{message:`Conteúdo`,description:`Texto na barra de navegação do site para mostrar a página de conteúdo`},"nav.category":{message:`Categoria`,description:`Texto na barra de navegação do site para mostrar a página de categorias`},"nav.service":{message:`Todos os Serviços`,description:`Texto na barra de navegação do site para mostrar a página de serviços`},"nav.profile":{message:`Meu Perfil`,description:`Texto na barra de navegação do site para mostrar a página de perfil`},"nav.products":{message:`Produtos`,description:`Texto na barra de navegação do site para mostrar a página de produtos`},"nav.referral":{message:`Programa de Indicação`,description:`Texto na barra de navegação do site para mostrar a página de indicações`},"nav.apiPlatform":{message:`Plataforma API`,description:`Texto na barra de navegação do site para mostrar a página da plataforma API`},"nav.document":{message:`Documentação de Desenvolvimento`,description:`Texto na barra de navegação do site para mostrar a página de documentação`},"nav.console":{message:`Console`,description:`Texto na barra de navegação do site para mostrar a página do console`},"nav.chatgpt":{message:`ChatGPT`,description:`Texto na barra de navegação do site para mostrar a página do ChatGPT, não deve ser traduzido, deve permanecer como 'ChatGPT'`},"nav.deepseek":{message:`DeepSeek`,description:`Texto na barra de navegação do site para mostrar a página do DeepSeek, não deve ser traduzido, deve permanecer como 'DeepSeek'`},"nav.grok":{message:`Grok`,description:`Texto na barra de navegação do site para mostrar a página do Grok, não deve ser traduzido, deve permanecer como 'Grok'`},"nav.chat":{message:`Chat`,description:`Texto na barra de navegação do site para mostrar a página de chat, não deve ser traduzido, deve permanecer como 'Chat'`},"nav.veo":{message:`Veo`,description:`Texto na barra de navegação do site para mostrar a página de chat, não deve ser traduzido, deve permanecer como 'Veo'`},"nav.sora":{message:`Sora`,description:`Texto na barra de navegação do site para mostrar a página de chat, não deve ser traduzido, deve permanecer como 'Sora'`},"nav.midjourney":{message:`Midjourney`,description:`Texto na barra de navegação do site para mostrar a página do Midjourney, não deve ser traduzido, deve permanecer como 'Midjourney'`},"nav.qrart":{message:`QRArt`,description:`Texto na barra de navegação do site para mostrar a página de arte 2D, não deve ser traduzido, deve permanecer como 'QRArt'`},"nav.suno":{message:`Suno`,description:`Texto na barra de navegação do site para mostrar a página do Suno, não deve ser traduzido, deve permanecer como 'Suno'`},"nav.pixverse":{message:`Pixverse`,description:`Texto na barra de navegação do site para mostrar a página do Pixverse, não deve ser traduzido, deve permanecer como 'Pixverse'`},"nav.flux":{message:`Flux`,description:`Texto na barra de navegação do site para mostrar a página do Flux, não deve ser traduzido, deve permanecer como 'Flux'`},"nav.nanobanana":{message:`Nano Banana`,description:`Texto na barra de navegação do site para mostrar a página do Nano Banana, não deve ser traduzido, deve permanecer como 'Nano Banana'`},"nav.openaiimage":{message:`OpenAI Image`,description:`Texto na barra de navegação do site para mostrar a página do OpenAI Image, não deve ser traduzido, deve permanecer como 'OpenAI Image'`},"nav.seedream":{message:`SeeDream`,description:`Texto na barra de navegação do site, usado para exibir a página SeeDream, não deve ser traduzido, deve permanecer como 'SeeDream'`},"nav.seedance":{message:`SeeDance`,description:`Texto na barra de navegação do site para exibir a página SeeDance, não deve ser traduzido, deve permanecer como '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:`Texto na barra de navegação do site para exibir a página Luma, não deve ser traduzido, deve permanecer como 'Luma'`},"nav.pika":{message:`Pika`,description:`Texto na barra de navegação do site para exibir a página Pika, não deve ser traduzido, deve permanecer como 'Pika'`},"nav.kling":{message:`Kling`,description:`Texto na barra de navegação do site para exibir a página Kling, não deve ser traduzido, deve permanecer como 'Kling'`},"nav.hailuo":{message:`Hailuo`,description:`Texto na barra de navegação do site para exibir a página Hailuo, não deve ser traduzido, deve permanecer como 'Hailuo'`},"nav.wan":{message:`Wan`,description:`Texto na barra de navegação do site para exibir a página Wan, não deve ser traduzido, deve permanecer como 'Wan'`},"nav.producer":{message:`Producer`,description:`Texto na barra de navegação do site para exibir a página Producer, não deve ser traduzido, deve permanecer como 'Producer'`},"nav.fish":{message:`Fish Audio`,description:`Texto na barra de navegação do site que exibe a página Fish Audio, por favor, não traduza este campo, deve permanecer como 'Fish Audio'`},"nav.kimi":{message:`Kimi`,description:`Texto na barra de navegação do site para exibir a página Kimi, não deve ser traduzido, deve permanecer como 'Kimi'`},"nav.serp":{message:`SERP`,description:`Texto na barra de navegação do site para exibir a página SERP, não deve ser traduzido, deve permanecer como '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:`Imagem`,description:`Texto na barra de navegação do site para exibir a página de imagens`},"nav.music":{message:`Música`,description:`Texto na barra de navegação do site para exibir a página de música`},"nav.video":{message:`Vídeo`,description:`Texto na barra de navegação do site para exibir a página de vídeo`},"nav.distribution":{message:`Rendimentos de Recomendação`,description:`Texto na barra de navegação do site para exibir a página de rendimentos de recomendação`},"nav.connections":{message:`Conexões`,description:`Item de menu que leva à página de gerenciamento de conexões em auth.acedata.cloud`},"nav.logOut":{message:`Sair`,description:`Texto na barra de navegação do site para sair da conta`},"nav.deleteAccount":{message:`Excluir conta`,description:`Menu item to permanently delete the current user account`},"nav.site":{message:`Configuração do Site`,description:`Texto na barra de navegação do site para exibir a página de configuração do site`},"nav.subsite":{message:`Meu Subsite`,description:`Entrada 'Meu Subsite' na barra lateral, exibida apenas quando a funcionalidade features.subsite está ativada`},"nav.setting":{message:`Configurações`,description:`Texto na barra de navegação do site para exibir a página de configurações`},"nav.headshots":{message:`Foto de Identidade AI`,description:`Texto na barra de navegação do site para exibir a página de configuração do site`},"nav.more":{message:`Mais`,description:`Texto na barra de navegação do site para expandir mais serviços`},"nav.locale":{message:`Configurações de Idioma`,description:`Texto na barra de navegação do site para alterar o idioma`},"nav.support":{message:`Suporte ao Cliente`,description:`Texto na barra de navegação do site para exibir a página de contato`},"nav.darkMode":{message:`Modo Escuro`,description:`Texto na barra de navegação do site para alternar para o tema escuro`},"title.alert":{message:`Aviso`,description:`Título da mensagem de aviso`},"title.placeholderOfSelect":{message:`Por favor, selecione`,description:`Placeholder para entrada de seleção`},"title.placeholderOfInput":{message:`Por favor, preencha`,description:`Placeholder para entrada de texto`},"title.allApplications":{message:`Todas as Aplicações`,description:`Título da página que exibe todas as aplicações`},"title.allOrders":{message:`Todos os Pedidos`,description:`Título da página que exibe todos os pedidos`},"title.orderInfo":{message:`Informações do Pedido`,description:`Título da página que exibe informações do pedido`},"title.buyMore":{message:`Recarregar`,description:`Título da página para recarregar. Deve ser traduzido como 'Recarregar'.`},"title.distribution":{message:`Rendimentos de Recomendação`,description:`Título da página que exibe rendimentos de recomendação, indicando que o usuário pode ganhar dinheiro convidando outros a usar o serviço`},"title.site":{message:`Configuração do Site`,description:`Título da página que exibe a configuração do site`},"title.distributionHistory":{message:`Histórico de Recomendações`,description:`Título da página que exibe o histórico de recomendações`},"title.invitee":{message:`Convidado`,description:`Título da página que exibe informações sobre o convidado`},"title.allUsages":{message:`Histórico de Uso`,description:`Título da página que exibe todos os usos do serviço API`},"title.allCredentials":{message:`Credenciais`,description:`Título da página que exibe todas as credenciais, usadas para acessar a API`},"about.title1":{message:`Contato`,description:`Título da seção que exibe informações de contato`},"about.title2":{message:`Recursos`,description:`Título da seção que exibe links`},"about.title3":{message:`Links`,description:`Título da seção que exibe informações de suporte`},"about.address":{message:`131 Continental Dr, Suite 305, Newark, DE 19713, EUA`,description:`Endereço da empresa`},"about.email":{message:`office@acedata.cloud`,description:`E-mail da empresa`},"about.link1":{message:`Serviços`,description:`Link para a página de documentação`},"about.link2":{message:`Documentação do Desenvolvedor`,description:`Link para a página de serviços`},"about.link3":{message:`Console`,description:`Link para a página do console`},"about.link4":{message:`Perfil`,description:`Link para a página de perfil`},"about.link5":{message:`Plataforma UI`,description:`Link para a página central`},"about.link6":{message:`Rendimentos de Referência`,description:`Link para a página de rendimentos de referência`},"about.link7":{message:`Suporte`,description:`Link para a página de suporte`},"about.link8":{message:`Termos de Serviço`,description:`Link para a página de termos de serviço`},"about.link9":{message:`Política de Privacidade`,description:`Link para a página de política de privacidade`},"theme.light":{message:`Claro`,description:`Nome do tema claro`},"theme.dark":{message:`Escuro`,description:`Nome do tema escuro`},"theme.system":{message:`Sistema`,description:`Nome do tema do sistema, indicando a troca automática de tema com base nas configurações do sistema`},"settings.general":{message:`Configurações Gerais`,description:`Título da seção de configurações gerais na página de configurações`},"settings.language":{message:`Idioma`,description:`Título da seção de configurações de idioma na página de configurações`},"settings.theme":{message:`Tema`,description:`Título da seção de configurações de tema na página de configurações`},"settings.seo":{message:`Configurações de SEO`,description:`Título da seção de configurações de SEO na página de configurações`},"settings.site":{message:`Configurações do Site`,description:`Título da seção de configurações do site na página de configurações`},"settings.distribution":{message:`Configurações de Distribuição`,description:`Título da seção de configurações de distribuição na página de configurações`},"settings.function":{message:`Configurações de Funcionalidade`,description:`Título da seção de configurações de funcionalidade na página de configurações`},"settings.auth":{message:`Método de Login`,description:`Título da aba 'Método de Login' na barra lateral da página de configurações — configura os métodos de login permitidos e o método de login padrão do site, visível apenas para administradores do site.`},"settings.apiKey":{message:`Chave da API`,description:`Rótulo da Chave da API na barra lateral da página de configurações - gerenciamento da Chave da API do provedor de serviços upstream (BYOK)`},"field.operations":{message:`Operações`,description:`Título da coluna genérica: coluna de botões de operação da linha da tabela (editar, excluir, etc.)`},"nav.gemini":{message:`Gemini`,description:`Texto na barra de navegação do site para exibir a página Gemini, deve permanecer como 'Gemini'`},"nav.claude":{message:`Claude`,description:`Texto na barra de navegação do site para exibir a página Claude, deve permanecer como 'Claude'`},"button.detail":{message:`Ver Detalhes`,description:``},"button.testEnv":{message:`Ambiente de Teste`,description:`Texto no botão para alternar para o ambiente de teste`},"button.upload":{message:`Enviar`,description:`Texto no botão para enviar arquivos ou conteúdo`},"message.cnbeian":{message:`Registro na China`,description:`Informação de registro na China`},"message.copyFailed":{message:`Falha ao Copiar`,description:`Mensagem exibida quando a cópia do conteúdo falha`},"nav.tryNow":{message:`Experimente Agora`,description:`Texto na barra de navegação do site para permitir que os usuários experimentem o serviço`},"title.coin":{message:`Criptomoeda`,description:`Título da página que exibe criptomoedas`},"title.distributionRank":{message:`Ranking de Referências`,description:`Título da página que exibe o ranking de referências`},"title.distributionPlatformRank":{message:`Ranking de Plataformas`,description:`Título da página que exibe o ranking de plataformas`},"customers.name1":{message:`Mark Du`,description:`Nome do cliente`},"customers.job1":{message:`Engenheiro de Software`,description:`Profissão do cliente`},"customers.comment1":{message:`A Ace Data Cloud forneceu um ótimo serviço para nossa equipe, ajudando-nos a aumentar a produtividade. Adoramos!`,description:`Avaliação do cliente`},"customers.name2":{message:`Jacob Williams`,description:`Nome do cliente`},"customers.job2":{message:`Gerente de Produto`,description:`Profissão do cliente`},"customers.comment2":{message:`A Ace Data Cloud é uma ótima plataforma de integração, com qualidade de serviço excepcional.`,description:`Avaliação do cliente`},"customers.name3":{message:`Larry Henry`,description:`Nome do cliente`},"customers.job3":{message:`Designer`,description:`Profissão do cliente`},"customers.comment3":{message:`Adoro os serviços da Ace Data Cloud, são fáceis de usar e com preços justos. Espero que melhorem cada vez mais!`,description:`Avaliação do cliente`},"nav.github":{message:`GitHub`,description:`Link para o repositório do GitHub`},"settings.github":{message:`Código Fonte`,description:`Link para ver o código fonte no GitHub`},"settings.about":{message:`Sobre`,description:`Título da seção sobre na página de configurações`},"settings.localTools":{message:`Ferramentas locais`,description:`Desktop-only settings tab for managing local tool folders, permissions and grants.`},"settings.localToolsDesktopOnly":{message:`Disponível apenas no aplicativo de desktop.`,description:`Shown when the Local Tools tab is opened on web/mobile.`},"settings.localToolsFoldersTitle":{message:`Pastas autorizadas`,description:`Heading for the list of folders the AI may read/write locally.`},"settings.localToolsFoldersHint":{message:`Pastas que a IA pode ler e gravar nesta máquina. As ferramentas são executadas localmente; nada sai do seu dispositivo sem o seu consentimento.`,description:`Help text under the authorized-folders heading.`},"settings.localToolsAddFolder":{message:`Adicionar pasta`,description:`Button to pick a folder to authorize.`},"settings.localToolsRemove":{message:`Remover`,description:`Button to remove an authorized folder.`},"settings.localToolsNoFolders":{message:`Nenhuma pasta autorizada ainda.`,description:`Empty state for the authorized-folders list.`},"settings.localToolsSave":{message:`Salvar`,description:`Save the authorized folders.`},"settings.localToolsSaved":{message:`Salvo`,description:`Transient confirmation after saving local-tool folders.`},"settings.localToolsActiveTools":{message:`Ferramentas ativas`,description:`Label before the list of currently available local tools.`},"settings.localToolsGrantsTitle":{message:`Ações sempre permitidas`,description:`Heading for the persistent consent grants list.`},"settings.localToolsGrantsHint":{message:`Chamadas de ferramentas que você optou por sempre permitir. Elas são executadas sem perguntar novamente. Revogue qualquer uma para reativar a confirmação.`,description:`Help text under the always-allowed actions heading.`},"settings.localToolsRevoke":{message:`Revogar`,description:`Button to revoke a single always-allow grant.`},"settings.localToolsRevokeAll":{message:`Revogar tudo`,description:`Button to revoke every always-allow grant.`},"settings.localToolsNoGrants":{message:`Nenhuma ação sempre permitida. Você será perguntado antes de cada ferramenta local.`,description:`Empty state for the always-allowed actions list.`},"settings.localToolsPermsTitle":{message:`Permissões do sistema`,description:`Heading for the macOS system-permission section.`},"settings.localToolsPermsHint":{message:`Opcional. O acesso às pastas acima não precisa de nenhuma — conceda apenas o que uma tarefa específica exigir.`,description:`Help text under the system-permissions heading.`},"settings.localToolsPermFullDisk":{message:`Acesso total ao disco`,description:`macOS Full Disk Access permission row.`},"settings.localToolsPermScreen":{message:`Gravação de tela`,description:`macOS Screen Recording permission row.`},"settings.localToolsPermAccessibility":{message:`Acessibilidade`,description:`macOS Accessibility permission row.`},"settings.localToolsGranted":{message:`Concedido`,description:`Status tag when a system permission is granted.`},"settings.localToolsNotGranted":{message:`Não concedido`,description:`Status tag when a system permission is not granted.`},"settings.localToolsOpen":{message:`Abrir…`,description:`Button to open the relevant macOS System Settings pane.`},"settings.subsites":{message:`Meus Subsites`,description:`Título da aba de gerenciamento de subsites na janela de configurações. Visível apenas no site oficial, subsites não são exibidos.`},"settings.adminOnlyHint":{message:`Esta seção é visível apenas para administradores do site, usuários comuns não podem acessar.`,description:`Mensagem exibida no topo das configurações do site / configurações de SEO / configurações de distribuição / configurações de funcionalidades, indicando que apenas administradores podem ver essas configurações.`},"settings.officialOnlyHint":{message:`Esta seção é visível apenas no site principal, não será exibida nas subestações.`,description:`Mensagem exibida no topo da aba 'Minhas Subestações', informando que este acesso aparece apenas no site oficial principal.`},"settings.customDomain":{message:`Domínio personalizado`,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:`Construir Agora`,description:`Texto do botão 'Construir Subsite' na página sobre, visível apenas no site oficial`},"settings.poweredBy":{message:`Projeto Open Source`,description:`Título que mostra em qual projeto open source o site é baseado na página sobre`},"settings.poweredByTip":{message:`Este site é baseado no projeto open source Nexior, com código totalmente aberto.`,description:`Descrição que mostra em qual projeto open source o site é baseado na página sobre`},"settings.apiService":{message:`Serviço API`,description:`Título que mostra o provedor do serviço API na página sobre`},"settings.apiServiceTip":{message:`O serviço API deste site é fornecido pela Ace Data Cloud.`,description:`Descrição que mostra o provedor do serviço API na página sobre`},"settings.buildYourOwn":{message:`Construa o Seu`,description:`Título que informa ao usuário que ele pode construir um site semelhante na página sobre`},"settings.buildYourOwnTip":{message:`Quer construir um site de IA semelhante? Entre em contato para obter suporte de implantação.`,description:`Descrição sobre como construir um site semelhante na página sobre`},"settings.contactUs":{message:`Fale Conosco`,description:`Texto do botão para entrar em contato com o suporte`},"message.viewOnGithub":{message:`Ver no GitHub`,description:`Texto do link para visualizar o projeto no GitHub`},"title.notFound":{message:`Página Não Encontrada`,description:`Título da página 404`},"message.notFound":{message:`A página que você acessou não existe, o link pode ter sido alterado ou removido. Volte para a página inicial e continue explorando os serviços de IA da AceData.`,description:`Descrição da página 404`},"message.notFoundEyebrow":{message:`Ocorreu um Erro`,description:`Texto da pequena etiqueta no topo da página 404`},"message.notFoundPath":{message:`Caminho da Solicitação`,description:`Etiqueta que exibe o caminho da solicitação atual na página 404`},"button.backToHome":{message:`Voltar para a Página Inicial`,description:`Texto do botão para retornar à página inicial`},"button.goBack":{message:`Voltar à Página Anterior`,description:`Texto do botão para voltar à página anterior no histórico de navegação`},"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:`Solicitação`,description:`Rótulo da aba do diálogo de código da API para o trecho de solicitação (o código que reproduz o resultado atual).`},"tab.apiResponse":{message:`Resposta`,description:`Rótulo da aba do diálogo de código da API para a resposta ao vivo retornada após clicar em Executar.`},"button.apiRun":{message:`Executar novamente`,description:`Botão do diálogo de código da API que executa novamente a solicitação ao vivo contra a API usando a chave do usuário. O resultado já existe, então clicar executa novamente, e é cobrado.`},"button.apiRunning":{message:`Executando…`,description:`Rótulo do botão Executar no diálogo de código da API enquanto a solicitação ao vivo está em andamento.`},"button.apiRunConfirm":{message:`Confirmar execução`,description:`Rótulo do botão de confirmação no diálogo que avisa que a execução aqui consome créditos extras.`},"button.viewDocs":{message:`Ver documentação`,description:`Botão no rodapé do diálogo de código da API que abre a página de documentação da API correspondente na plataforma.`},"message.apiClickRun":{message:`Clique em 'Executar novamente' para usar sua chave da API e executar esta solicitação em tempo real.`,description:`Estado vazio da aba de Resposta do diálogo de código da API, exibido antes que o usuário execute a solicitação.`},"message.apiRunConfirmTitle":{message:`Confirmar execução`,description:`Título do diálogo de confirmação exibido antes de reexecutar uma solicitação do diálogo de código da API.`},"message.apiRunConfirmDesc":{message:`Esta execução usará sua chave da API para chamar o endpoint de forma real e consumirá créditos adicionais. Você confirma que deseja continuar?`,description:`Corpo do diálogo de confirmação avisando que a reexecução da solicitação é uma chamada real da API que gera cobrança.`},"message.apiRunConfirmSkip":{message:`Não avisar novamente`,description:`Caixa de seleção no diálogo de confirmação de execução que, quando marcada, suprime o aviso em execuções subsequentes.`},"message.apiRunTaskCreated":{message:`Tarefa criada, feche esta janela para ver os resultados mais recentes abaixo.`,description:`Banner de sucesso exibido no diálogo de código da API após uma execução retornar um ID de tarefa, indicando que a nova tarefa já aparece na lista atrás do diálogo.`},"button.apiViewLatest":{message:`Fechar e Ver`,description:`Botão no banner de sucesso do diálogo de código da API que fecha o diálogo para que o usuário possa ver a nova tarefa criada na lista abaixo.`},"message.uploadInProgress":{message:`Os envios de referência ainda estão em andamento — aguarde um momento.`,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:`Texto da página de conversão de artigos em vídeos do Maestro na barra de navegação, mantenha como 'Maestro'`},"nav.digitalhuman":{message:`Digital Human`,description:`Text in the website navigation bar for the Digital Human talking-head page`}};export{e as default};