@acedatacloud/nexior 3.329.4 → 3.329.6
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.
- package/README.md +1 -1
- package/dist/assets/ApiCodeButton-7MU3l2KK.js +1 -0
- package/dist/assets/ApiCodeButton-DLEOjAZK.css +1 -0
- package/dist/assets/{Artifacts-CbYFPOX3.js → Artifacts-DR134v3p.js} +1 -1
- package/dist/assets/{AskUserQuestionCard-Dz4FPI12.js → AskUserQuestionCard-CkKA3Z-0.js} +2 -2
- package/dist/assets/{AudioPreview-D339qZf3.js → AudioPreview-WkIezWg8.js} +1 -1
- package/dist/assets/{Auth-Ckae1ZBJ.js → Auth-mvOTQz73.js} +1 -1
- package/dist/assets/{Bare-DwoeqQE6.js → Bare-AK27m7WL.js} +1 -1
- package/dist/assets/{BotPlaceholder-DpT4BnQ9.js → BotPlaceholder-CBSqVffX.js} +1 -1
- package/dist/assets/{BottomFooter-DnZMtl88.js → BottomFooter-Dumc0nVJ.js} +1 -1
- package/dist/assets/{Callback-eo836hGk.js → Callback-Iup2RNOS.js} +1 -1
- package/dist/assets/{CodeSnippet-C9csth17.js → CodeSnippet-g-KrKEqA.js} +1 -1
- package/dist/assets/{Console-Bd18l7Bq.js → Console-D0cMI4nU.js} +1 -1
- package/dist/assets/{Consumption-BXIvYakD.js → Consumption-nXHgQ00A.js} +1 -1
- package/dist/assets/Conversation-DHkgX7bp.js +1 -0
- package/dist/assets/{Conversation-BNoEnUq5.js → Conversation-DqVnhtFz.js} +1 -1
- package/dist/assets/{CopyToClipboard-dN_hdXoM.js → CopyToClipboard-CJJeusOi.js} +1 -1
- package/dist/assets/{Detail-D9i_W4TK.js → Detail-Cdrcwpq6.js} +2 -2
- package/dist/assets/{Extra-BQZPVMeh.js → Extra-BxQUOF1t.js} +1 -1
- package/dist/assets/{FilePreview-BERWHOEO.js → FilePreview-DnumnZaL.js} +1 -1
- package/dist/assets/{Hailuo-BywGqxLq.js → Hailuo-D1p0BHKR.js} +1 -1
- package/dist/assets/{History-DBCyFmX7.js → History-J26IKaD3.js} +1 -1
- package/dist/assets/{ImagePreview-BLRlwhuO.js → ImagePreview-B5oQ44hn.js} +1 -1
- package/dist/assets/{ImageWrapper-BfkSqxl3.js → ImageWrapper-BApbYDq3.js} +1 -1
- package/dist/assets/Index-3o2Ktfht.js +1 -0
- package/dist/assets/Index-9_8ejG7V.js +1 -0
- package/dist/assets/Index-B9Gzk06d.js +1 -0
- package/dist/assets/Index-BHAOzW6Q.js +1 -0
- package/dist/assets/Index-BUzyBi1N.js +1 -0
- package/dist/assets/Index-Bd-M6dDz.css +1 -0
- package/dist/assets/{Index-DnN80xxj.js → Index-BhnXpSUO.js} +1 -1
- package/dist/assets/Index-BrrkM6VA.js +1 -0
- package/dist/assets/Index-Bsxy14xI.js +1 -0
- package/dist/assets/{Index-DXwxUbUg.js → Index-BxbtsVsl.js} +1 -1
- package/dist/assets/Index-C4ixbfal.js +1 -0
- package/dist/assets/Index-CF2bq6TM.js +1 -0
- package/dist/assets/{Index-BgkuiANU.js → Index-CGFma1w8.js} +1 -1
- package/dist/assets/Index-CMg59xhW.js +1 -0
- package/dist/assets/Index-CQjOA0CL.js +1 -0
- package/dist/assets/Index-C_ChlIGy.js +1 -0
- package/dist/assets/Index-CsQvkabO.js +1 -0
- package/dist/assets/{Index-o0YCx8f42.js → Index-D4AUQ-Ad.js} +2 -2
- package/dist/assets/Index-DEoArOaj.js +1 -0
- package/dist/assets/Index-DEsqq0oP.js +1 -0
- package/dist/assets/Index-DQSmEML9.js +1 -0
- package/dist/assets/Index-EqT2ezJi.js +1 -0
- package/dist/assets/Index-HIeGLA47.js +1 -0
- package/dist/assets/Index-IVdJ9kxy.js +1 -0
- package/dist/assets/Index-JRpQg1fR.js +1 -0
- package/dist/assets/{Index-BuiSnHP9.js → Index-L6FU2vSf.js} +1 -1
- package/dist/assets/Index-bvj-4IlQ.js +1 -0
- package/dist/assets/{Index-Co2GeEMZ.js → Index-dlpqoXtz.js} +1 -1
- package/dist/assets/Index-g4vxgliG.js +1 -0
- package/dist/assets/Index-vHs29ug8.js +1 -0
- package/dist/assets/{Invitees-BXecokc4.js → Invitees-CMh4aWst.js} +1 -1
- package/dist/assets/{List-Dv92XoJh.js → List-DQMPpmRY.js} +1 -1
- package/dist/assets/{List-7HfJLw-N.js → List-DdFD_d_T.js} +1 -1
- package/dist/assets/List-Dz_abUl_.js +1 -0
- package/dist/assets/{LocalTools-HOkWiWSD.js → LocalTools-DEbr_Xeh.js} +1 -1
- package/dist/assets/{LocalTools-Dv-u4zYc.js → LocalTools-DwKRNtIR.js} +3 -3
- package/dist/assets/{Main-Cnj2q1T3.js → Main-VHEBLJb7.js} +1 -1
- package/dist/assets/{Message-B8hPNpuB.js → Message-CNydf7q-.js} +2 -2
- package/dist/assets/{Model-BFtBbFCb.js → Model-DxFuuzEp.js} +1 -1
- package/dist/assets/Navigator-C3gDk6fD.js +8 -0
- package/dist/assets/{Navigator-BwmJzSDQ.css → Navigator-DgTvoCKR.css} +1 -1
- package/dist/assets/{NotFound-BbZhPh8d.js → NotFound-Dm_IMRcn.js} +1 -1
- package/dist/assets/{Pay-DAmr2upg.js → Pay-B7Mu6CgO.js} +1 -1
- package/dist/assets/{Player-CRRJFvS8.js → Player-eiNb_aow.js} +1 -1
- package/dist/assets/{PromptTextarea-BTV-qSKb.js → PromptTextarea-DdzmCcj7.js} +1 -1
- package/dist/assets/{RealtimeCall-xTXMIchj.js → RealtimeCall-DW47CN8b.js} +1 -1
- package/dist/assets/{ScheduledTasks-BpYaVfb7.js → ScheduledTasks-ew4l0vwR.js} +2 -2
- package/dist/assets/{Status-B1leWf6C.js → Status-C9xfV-zi.js} +1 -1
- package/dist/assets/{Subscribe-h-GE5YDG.js → Subscribe-CBudTHGm.js} +1 -1
- package/dist/assets/{TabSwitcher-hrVHuBQY.js → TabSwitcher-BHItNbNO.js} +1 -1
- package/dist/assets/Tts-Dzz7JmoO.js +1 -0
- package/dist/assets/{VideoPlayer-DmRL-Q-u.js → VideoPlayer-DqKYDPju.js} +1 -1
- package/dist/assets/{alert-Rus_FRqg.js → alert-CtGJs36-.js} +1 -1
- package/dist/assets/ar-DvMUD-XF.js +1 -0
- package/dist/assets/avatar-BAEOccVT.js +1 -0
- package/dist/assets/{basic-DYddy-Y7.js → basic-DlpX_Pod.js} +1 -1
- package/dist/assets/{chat-D7pYA5_K.js → chat-Ccuk0qOO.js} +1 -1
- package/dist/assets/codingBridge-7FtAxd-w.js +2 -0
- package/dist/assets/{codingBridgeNotify-DMu8O3yh.js → codingBridgeNotify-UISW0YSc.js} +2 -2
- package/dist/assets/{collapse-BJESX6Av.js → collapse-DtqtFr93.js} +1 -1
- package/dist/assets/common-4x3C2y7l.js +1 -0
- package/dist/assets/common-B2Y9SnCM.js +1 -0
- package/dist/assets/common-B9SIqYYv.js +1 -0
- package/dist/assets/common-BSGO5P-X.js +1 -0
- package/dist/assets/common-Bbh8EWub.js +1 -0
- package/dist/assets/common-Bd9pIu2X.js +1 -0
- package/dist/assets/common-BkH82O8j.js +1 -0
- package/dist/assets/common-CN000y41.js +1 -0
- package/dist/assets/common-CSORFgfd.js +1 -0
- package/dist/assets/common-CjkDS6zy.js +1 -0
- package/dist/assets/{common-CtP4rahV.js → common-ClPfRGT1.js} +1 -1
- package/dist/assets/common-CtLgsB05.js +1 -0
- package/dist/assets/common-DQcscPfw.js +1 -0
- package/dist/assets/common-DabenOXA.js +1 -0
- package/dist/assets/common-Dd4Zv55n.js +1 -0
- package/dist/assets/common-QBSm6mLW.js +1 -0
- package/dist/assets/common-op4LdHqu.js +1 -0
- package/dist/assets/common-tRfKi-0D.js +1 -0
- package/dist/assets/{constants-DL6fvaZc.js → constants-DQfS7BSo.js} +1 -1
- package/dist/assets/{createTaskActions-Be8kEIvh.js → createTaskActions-D-q5zsxI.js} +1 -1
- package/dist/assets/{date-picker-L2GfIL9g.js → date-picker-CjIYxzJu.js} +1 -1
- package/dist/assets/de-wGFGO9Dl.js +1 -0
- package/dist/assets/{digitalhuman-DBZq8heb.js → digitalhuman-CmQ_v1T8.js} +1 -1
- package/dist/assets/{drawer-CgVYanRZ.js → drawer-C_7nshMk.js} +1 -1
- package/dist/assets/{dropdown-CLwW5KPh.js → dropdown-CFbxXDG7.js} +1 -1
- package/dist/assets/{dropdown-BT8DftI7.js → dropdown-DUcn37st.js} +1 -1
- package/dist/assets/el-CS_UUGgQ.js +1 -0
- package/dist/assets/en-xV7WILfZ.js +1 -0
- package/dist/assets/es-C8A-bxFJ.js +1 -0
- package/dist/assets/{esm-D3i4oQN3.js → esm-ABoffs6a.js} +2 -2
- package/dist/assets/{esm-DWjhkZjq.js → esm-B0yUh9bE.js} +1 -1
- package/dist/assets/{esm-4-WHD-MV.js → esm-B6R4HFpj.js} +1 -1
- package/dist/assets/esm-BdAyzFUX.js +1 -0
- package/dist/assets/{esm-jLKS8pXC.js → esm-CCCzHvzX.js} +2 -2
- package/dist/assets/{esm-g9_IAjbk.js → esm-D1sO24tJ.js} +3 -3
- package/dist/assets/{esm-CQl4WycQ.js → esm-DUQRz3nt.js} +1 -1
- package/dist/assets/fi-cFEVlg7O.js +1 -0
- package/dist/assets/{fish-DpR5NHal.js → fish-CGlu2j5j.js} +1 -1
- package/dist/assets/{flux-SKrmYgf0.js → flux-B0jvwhSg.js} +1 -1
- package/dist/assets/fr-DEJy6OoJ.js +1 -0
- package/dist/assets/{grokvideo-CI7s5jUJ.js → grokvideo-CtneTTnO.js} +1 -1
- package/dist/assets/{pixverse-DJn64LHw.js → hailuo-BM_mNjn4.js} +1 -1
- package/dist/assets/{i18n-BLDpPa-U.js → i18n-DU3VJhfd.js} +1 -1
- package/dist/assets/image-BFwotXVI.js +1 -0
- package/dist/assets/index-ChRossza.js +570 -0
- package/dist/assets/{index.browser.esm-B_BYriqB.js → index.browser.esm-C3WTi0nD.js} +1 -1
- package/dist/assets/{index.es-Da04vp1J.js → index.es-tbxMvNUD.js} +1 -1
- package/dist/assets/{input-number-C8MmclMt.js → input-number-zwfli-dd.js} +1 -1
- package/dist/assets/it-QK98ROL3.js +1 -0
- package/dist/assets/ja-DobLOoOV.js +1 -0
- package/dist/assets/{kling-CoQSiDf4.js → kling-oxeMrOad.js} +1 -1
- package/dist/assets/ko-BBI7MTeW.js +1 -0
- package/dist/assets/{qrart-Cm3w0RyL.js → luma-vqHYJbCa.js} +1 -1
- package/dist/assets/{maestro-BZoloSYP.js → maestro-B4jd_3Os.js} +1 -1
- package/dist/assets/{maestro-DxNvDO9W.js → maestro-BDMO3HUE.js} +1 -1
- package/dist/assets/{midjourney-YweY4H5M.js → midjourney-D5VMmyLX.js} +1 -1
- package/dist/assets/{mobileLocalExec-CPKlem21.js → mobileLocalExec-CTVNEJo3.js} +2 -2
- package/dist/assets/{nanobanana-D2YAQP2Y.js → nanobanana-DegxpdDE.js} +1 -1
- package/dist/assets/{omni-DClCZEZ8.js → omni-BrIISBLv.js} +1 -1
- package/dist/assets/{openaiimage-Cb6wp-vv.js → openaiimage-BCrAFy57.js} +1 -1
- package/dist/assets/{pagination-DiPjbPcF.js → pagination-Bn3_TUfw.js} +4 -4
- package/dist/assets/{pagination-B0W_6vbW.js → pagination-vybLVVWw.js} +1 -1
- package/dist/assets/{pika-CBUyM3jR.js → pika-DJBzJTev.js} +1 -1
- package/dist/assets/{hailuo-DjkThVtT.js → pixverse-dHhqcI1h.js} +1 -1
- package/dist/assets/pl-KuxiS7Nd.js +1 -0
- package/dist/assets/{popover-CtDhK95i.js → popover-mQF9u1xj.js} +1 -1
- package/dist/assets/{producer-N0fP9HZ8.js → producer-B4-3YyMx.js} +1 -1
- package/dist/assets/pt-BmzZiI2t.js +1 -0
- package/dist/assets/{luma-DnkXsoHW.js → qrart-CzF58_dy.js} +1 -1
- package/dist/assets/realtime-BZ7wzssE.js +1 -0
- package/dist/assets/{row-CQpXFLYH.js → row-UElVq1lm.js} +1 -1
- package/dist/assets/ru-cEjbEVoK.js +1 -0
- package/dist/assets/{seedance-CbFqugor.js → seedance-DNWTqJNQ.js} +1 -1
- package/dist/assets/{seedream-BsWe8bcX.js → seedream-BRcaVh_y.js} +1 -1
- package/dist/assets/{select-0z-uAP9i.js → select-Cjjs0Cbz.js} +1 -1
- package/dist/assets/{serp-BgmVYY3j.js → serp-N8BOyLr1.js} +1 -1
- package/dist/assets/site-BHcDiKLj.js +1 -0
- package/dist/assets/site-BQfQMZQr.js +1 -0
- package/dist/assets/site-BZZemKxl.js +1 -0
- package/dist/assets/site-BxVWTq4g.js +1 -0
- package/dist/assets/site-C3CQKmZq.js +1 -0
- package/dist/assets/site-CAGh6TQC.js +1 -0
- package/dist/assets/site-CMkx2yEz.js +1 -0
- package/dist/assets/site-COpAulnW.js +1 -0
- package/dist/assets/site-CcpoFc-S.js +1 -0
- package/dist/assets/site-DP__i3mc.js +1 -0
- package/dist/assets/site-DY_MbOG6.js +1 -0
- package/dist/assets/site-DdK3qhCu.js +1 -0
- package/dist/assets/site-DwtePFCn.js +1 -0
- package/dist/assets/site-MZ1zU7Z_.js +1 -0
- package/dist/assets/site-YwfevR16.js +1 -0
- package/dist/assets/site-_Jqcri8U.js +1 -0
- package/dist/assets/site-panwJIyw.js +1 -0
- package/dist/assets/site-yMcGuPHd.js +1 -0
- package/dist/assets/{slider-C3r4Tina.js → slider-DrBczmSm.js} +1 -1
- package/dist/assets/{solana-wallets-hlKO3Eo_.js → solana-wallets-Cuohe8dW.js} +2 -2
- package/dist/assets/{solana-wallets-vue-DCK_08bA.js → solana-wallets-vue-XrcMjTtZ.js} +1 -1
- package/dist/assets/{sora-CLK_QOSi.js → sora-BAv5rlkG.js} +1 -1
- package/dist/assets/sr-CmEGqqiY.js +1 -0
- package/dist/assets/{suno-B_p-QYmP.js → suno-DrnmYubQ.js} +1 -1
- package/dist/assets/sv-DNftPkt8.js +1 -0
- package/dist/assets/{switch-CU1MBzwr.js → switch-Dd0l6NLU.js} +1 -1
- package/dist/assets/{table-_SEx5cio.js → table-DDF3_KyP.js} +1 -1
- package/dist/assets/{tabs-BqQGAINi.js → tabs-CEwGvum0.js} +1 -1
- package/dist/assets/{time-picker-DoFLS1_O.js → time-picker-CUItu-ro.js} +1 -1
- package/dist/assets/{tooltip-DK6bCg2d.js → tooltip-DRvBzJp7.js} +1 -1
- package/dist/assets/uk-DK7pyD0I.js +1 -0
- package/dist/assets/{upload-hk4FmcSq.js → upload-CRGH8TL7.js} +1 -1
- package/dist/assets/{veo-DC86Ittg.js → veo-obimZNxI.js} +1 -1
- package/dist/assets/{wan-ChU2aiPI.js → wan-D7QsJe5q.js} +1 -1
- package/dist/assets/{web-DWgUgKQ-.js → web-B6OG7v4K.js} +1 -1
- package/dist/assets/{web-YxaoXuPj.js → web-CDQQdbSW.js} +1 -1
- package/dist/assets/{web-BrKtWB3t.js → web-Cp-Wc1Gw.js} +1 -1
- package/dist/assets/{web-BP5qgwFY.js → web-Cvgj1RVz.js} +1 -1
- package/dist/assets/{web-Bl9xCjU6.js → web-NcMajZN2.js} +1 -1
- package/dist/assets/{webextrator-BlNaRo-L.js → webextrator-DaEs2ucO.js} +1 -1
- package/dist/assets/zh-CN-n6Cv-8b8.js +1 -0
- package/dist/assets/zh-TW-ZJBzuieM.js +1 -0
- package/dist/index.html +3 -3
- package/dist/llms.txt +0 -1
- package/dist/robots.txt +0 -1
- package/dist/sitemap.xml +0 -5
- package/package.json +1 -1
- package/dist/assets/ApiCodeButton-BZxzh5jU.css +0 -1
- package/dist/assets/ApiCodeButton-CDsb5B0b.js +0 -1
- package/dist/assets/Conversation-D9GuzwHF.js +0 -1
- package/dist/assets/Index-9d9qE0ta.js +0 -1
- package/dist/assets/Index-BgnX7Oc0.js +0 -1
- package/dist/assets/Index-BvQVmq8R.js +0 -1
- package/dist/assets/Index-C6smauoU.js +0 -1
- package/dist/assets/Index-CE5NxTHr.js +0 -1
- package/dist/assets/Index-CUdTkIS-2.js +0 -1
- package/dist/assets/Index-CXflTfRj.js +0 -1
- package/dist/assets/Index-CZkuYOTK.js +0 -1
- package/dist/assets/Index-C_5D2Nmc.js +0 -1
- package/dist/assets/Index-CcnHuEqZ.js +0 -1
- package/dist/assets/Index-ClEpOuY-.js +0 -1
- package/dist/assets/Index-ClL3MwRb.js +0 -1
- package/dist/assets/Index-CokTw_ml2.js +0 -1
- package/dist/assets/Index-D5xn_-Fx2.js +0 -1
- package/dist/assets/Index-DPnIwBMd.js +0 -1
- package/dist/assets/Index-DXD5dR9s.js +0 -1
- package/dist/assets/Index-Db4O525T2.js +0 -1
- package/dist/assets/Index-DlC3_jAy.css +0 -1
- package/dist/assets/Index-NFTGcA3N2.js +0 -1
- package/dist/assets/Index-RYOYvAQs.js +0 -1
- package/dist/assets/Index-RzrQB1OW.js +0 -1
- package/dist/assets/Index-Vi5_hN0Z.js +0 -1
- package/dist/assets/Index-ggp4IQ5B2.js +0 -1
- package/dist/assets/Index-ie4OX51-.css +0 -1
- package/dist/assets/Index-rrxOdM0x.js +0 -1
- package/dist/assets/Index-yHWbwo46.js +0 -1
- package/dist/assets/List-DYQ9jTfk.js +0 -1
- package/dist/assets/Navigator-C4AJcu0v.js +0 -8
- package/dist/assets/NoTasks-D_weyyRm.js +0 -1
- package/dist/assets/Tts-re0zeCCf.js +0 -1
- package/dist/assets/ar-Bw8k9YuL.js +0 -1
- package/dist/assets/avatar-zWS7uf-0.js +0 -1
- package/dist/assets/codingBridge-B-O_wA-v.js +0 -2
- package/dist/assets/common-7Q5o6gM-.js +0 -1
- package/dist/assets/common-B-ohYxCX.js +0 -1
- package/dist/assets/common-B1FHfW9v.js +0 -1
- package/dist/assets/common-Bd72w7MH.js +0 -1
- package/dist/assets/common-C5ZmmHrA.js +0 -1
- package/dist/assets/common-Cf9CFOaz.js +0 -1
- package/dist/assets/common-CleVQgOe.js +0 -1
- package/dist/assets/common-CooYdLX1.js +0 -1
- package/dist/assets/common-Cs7AuUVP.js +0 -1
- package/dist/assets/common-DEQEJoSQ.js +0 -1
- package/dist/assets/common-DGTJNjb0.js +0 -1
- package/dist/assets/common-DGm_Ys8S.js +0 -1
- package/dist/assets/common-Dgxvbj6q.js +0 -1
- package/dist/assets/common-Din9qyzk.js +0 -1
- package/dist/assets/common-DlQq8PNu.js +0 -1
- package/dist/assets/common-DuhIgjlk.js +0 -1
- package/dist/assets/common-ZewnhqmB.js +0 -1
- package/dist/assets/de-B7ElpqOd.js +0 -1
- package/dist/assets/el-CFaNrhu7.js +0 -1
- package/dist/assets/en-CfE7LpWc.js +0 -1
- package/dist/assets/es-DTykt3Qo.js +0 -1
- package/dist/assets/esm-BLr91rxv.js +0 -1
- package/dist/assets/fi-eD5aTtc1.js +0 -1
- package/dist/assets/fr-Dv_mdYjN.js +0 -1
- package/dist/assets/headshots-B3P8IRvl.js +0 -1
- package/dist/assets/headshots-BHMP1LrR.js +0 -1
- package/dist/assets/headshots-BMJtOTF3.js +0 -1
- package/dist/assets/headshots-B_KVuZUH.js +0 -1
- package/dist/assets/headshots-B_M0TZxg.js +0 -1
- package/dist/assets/headshots-Bau_wsoU.js +0 -1
- package/dist/assets/headshots-BtAmHu33.js +0 -1
- package/dist/assets/headshots-C4aYhWZ8.js +0 -1
- package/dist/assets/headshots-C5a_eGMs.js +0 -1
- package/dist/assets/headshots-CbjHTMOo.js +0 -1
- package/dist/assets/headshots-Cl6cF-y9.js +0 -1
- package/dist/assets/headshots-CzyJSWab.js +0 -1
- package/dist/assets/headshots-DEmlsNMC.js +0 -1
- package/dist/assets/headshots-DIveAbiF.js +0 -1
- package/dist/assets/headshots-DRJyzqs9.js +0 -1
- package/dist/assets/headshots-DY9eXOiD.js +0 -1
- package/dist/assets/headshots-Drq9ejfk.js +0 -1
- package/dist/assets/headshots-EXpQgGTk.js +0 -1
- package/dist/assets/headshots-Ox-cX1pf.js +0 -1
- package/dist/assets/image-9D7mn7Ju.js +0 -1
- package/dist/assets/index-DtNdkcor.js +0 -570
- package/dist/assets/it-OHBaRD2P.js +0 -1
- package/dist/assets/ja-g5KofTAk.js +0 -1
- package/dist/assets/ko-YTu33EaB.js +0 -1
- package/dist/assets/pl-BZ8s7Bf2.js +0 -1
- package/dist/assets/pt-BHdBXUR6.js +0 -1
- package/dist/assets/realtime-LLJzZeVk.js +0 -1
- package/dist/assets/ru-B2uFRW1k.js +0 -1
- package/dist/assets/site-8VlM9PrK.js +0 -1
- package/dist/assets/site-BfkVUosO.js +0 -1
- package/dist/assets/site-Bl8rWB2M.js +0 -1
- package/dist/assets/site-Bski9Pmj.js +0 -1
- package/dist/assets/site-Bt5OBlDD.js +0 -1
- package/dist/assets/site-Bz-KveSe.js +0 -1
- package/dist/assets/site-CDnx5UcA.js +0 -1
- package/dist/assets/site-CIcXJe9e.js +0 -1
- package/dist/assets/site-COdY5Xna.js +0 -1
- package/dist/assets/site-Cmi5-2P3.js +0 -1
- package/dist/assets/site-DAZbi99v.js +0 -1
- package/dist/assets/site-DDe480PH.js +0 -1
- package/dist/assets/site-DYGv6Hq3.js +0 -1
- package/dist/assets/site-Dco6WgLf.js +0 -1
- package/dist/assets/site-Dlt7w9A9.js +0 -1
- package/dist/assets/site-DmoJwpZj.js +0 -1
- package/dist/assets/site-fFgFUwmd.js +0 -1
- package/dist/assets/site-nW4vlrdx.js +0 -1
- package/dist/assets/sr-D74Uj4G1.js +0 -1
- package/dist/assets/sv-Dy9Er0Vf.js +0 -1
- package/dist/assets/uk-Cbgef0tF.js +0 -1
- package/dist/assets/zh-CN-C4ZUzDMP.js +0 -1
- package/dist/assets/zh-TW-6mr3sIiX.js +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"./rolldown-runtime--c01j_DQ.js";import{A as e,C as t,I as n,Jt as r,L as i,M as a,N as o,T as s,at as c,j as l,mt as u,rt as d,tt as f,z as p}from"./vendor-chart-Dw-P17PN.js";import{r as m,t as h}from"./select-0z-uAP9i.js";import{t as g}from"./image-9D7mn7Ju.js";import{t as _}from"./alert-Rus_FRqg.js";import{t as v}from"./slider-C3r4Tina.js";import{ct as y,dt as b}from"./constants-DL6fvaZc.js";import{G as x,Mi as S,Pn as C,Ui as w,_n as T,an as ee,cn as te,jr as E,rn as D,vi as O}from"./index-DtNdkcor.js";import{t as k}from"./index.es-Da04vp1J.js";import{t as A}from"./CopyToClipboard-dN_hdXoM.js";import{t as j}from"./Consumption-BXIvYakD.js";import{n as M,t as N}from"./pagination-DiPjbPcF.js";import{t as P}from"./ApiCodeButton-CDsb5B0b.js";import{t as F}from"./BotPlaceholder-DpT4BnQ9.js";import{t as I}from"./NoTasks-D_weyyRm.js";import{t as L}from"./Hailuo-BywGqxLq.js";import{t as R}from"./TabSwitcher-hrVHuBQY.js";import{t as z}from"./PromptTextarea-BTV-qSKb.js";var B=p({name:`FishTextInput`,components:{PromptTextarea:z},computed:{text:{get(){return this.$store.state.fish?.config?.text},set(e){this.$store.commit(`fish/setConfig`,{...this.$store.state.fish?.config,text:e})}}}});function V(e,t,n,r,i,a){let o=c(`prompt-textarea`);return f(),l(o,{modelValue:e.text,"onUpdate:modelValue":t[0]||=t=>e.text=t,title:e.$t(`fish.name.text`),info:e.$t(`fish.description.text`),placeholder:e.$t(`fish.placeholder.text`)},null,8,[`modelValue`,`title`,`info`,`placeholder`])}var H=x(B,[[`render`,V]]),U=p({name:`FishModelSelector`,components:{ElSelect:m,ElOption:h},computed:{options(){return[{value:b,label:this.$t(`fish.button.modelS2Pro`)},{value:`s1`,label:this.$t(`fish.button.modelS1`)}]},value:{get(){return this.$store.state.fish?.config?.model},set(e){this.$store.commit(`fish/setConfig`,{...this.$store.state.fish?.config,model:e})}}},mounted(){this.value||=y}}),W={class:`field`},G={class:`title font-bold`};function K(t,n,a,p,m,h){let g=c(`el-option`),_=c(`el-select`);return f(),o(`div`,W,[e(`h2`,G,r(t.$t(`fish.name.model`)),1),i(_,{modelValue:t.value,"onUpdate:modelValue":n[0]||=e=>t.value=e,class:`value`,placeholder:t.$t(`fish.placeholder.select`)},{default:u(()=>[(f(!0),o(s,null,d(t.options,e=>(f(),l(g,{key:e.value,label:e.label,value:e.value},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`])])}var q=x(U,[[`render`,K],[`__scopeId`,`data-v-9702e6d3`]]),J=p({name:`FishVoicePicker`,components:{ElSelect:m,ElOption:h},computed:{loading(){return this.$store.state.fish?.status?.getApplications===O.Request},options(){return this.$store.state.fish?.voices??[]},displayOptions(){return this.options.map(e=>{let t=e,n=(t.id||t._id||t.reference_id||``).toString();return{value:n,label:t.title||n}}).filter(e=>!!e.value)},credential(){return this.$store.state.fish?.credential},value:{get(){return this.$store.state.fish?.config?.reference_id},set(e){this.$store.commit(`fish/setConfig`,{...this.$store.state.fish?.config,reference_id:e||void 0})}}},watch:{credential:{immediate:!0,handler(e){if(!e?.token)return;let t=this.$store.state.fish?.voices;(t===void 0||t.length===0)&&this.$store.dispatch(`fish/getVoices`)}}}}),Y={class:`field`},X={class:`title font-bold`};function Z(t,n,a,p,m,h){let g=c(`el-option`),_=c(`el-select`);return f(),o(`div`,Y,[e(`h2`,X,r(t.$t(`fish.name.voice`)),1),i(_,{modelValue:t.value,"onUpdate:modelValue":n[0]||=e=>t.value=e,class:`value`,placeholder:t.$t(`fish.placeholder.voice`),clearable:``,filterable:``,loading:t.loading,"no-data-text":t.$t(`fish.message.noVoices`)},{default:u(()=>[(f(!0),o(s,null,d(t.displayOptions,e=>(f(),l(g,{key:e.value,label:e.label,value:e.value},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`,`loading`,`no-data-text`])])}var Q=p({name:`FishConfigPanel`,components:{ElButton:w,ElSlider:v,FontAwesomeIcon:k,TextInput:H,ModelSelector:q,VoicePicker:x(J,[[`render`,Z],[`__scopeId`,`data-v-ac9e3a92`]]),Consumption:j},emits:[`generate`],computed:{config(){return this.$store.state.fish?.config},consumption(){return te(this.config,this.service?.cost)},service(){return this.$store.state.fish?.service},canGenerate(){let e=this.config?.text;return typeof e==`string`&&e.trim().length>0},speed:{get(){return this.config?.prosody?.speed??1},set(e){this.$store.commit(`fish/setConfig`,{...this.config,prosody:{...this.config?.prosody??{},speed:e}})}}},methods:{onGenerate(){this.$emit(`generate`)}}}),ne={class:`flex flex-col h-full`},re={class:`flex-1 overflow-y-auto p-5`},ie={class:`field mb-2`},ae={class:`title font-bold`},oe={class:`flex flex-col items-center justify-center px-5 pb-5`};function se(t,a,s,l,d,p){let m=c(`text-input`),h=c(`model-selector`),g=c(`voice-picker`),_=c(`el-slider`),v=c(`consumption`),y=c(`font-awesome-icon`),b=c(`el-button`);return f(),o(`div`,ne,[e(`div`,re,[i(m,{class:`mb-4`}),i(h,{class:`mb-4`}),i(g,{class:`mb-4`}),e(`div`,ie,[e(`h2`,ae,r(t.$t(`fish.name.speed`)),1),i(_,{modelValue:t.speed,"onUpdate:modelValue":a[0]||=e=>t.speed=e,min:.5,max:2,step:.1,class:`value`,"show-input":``},null,8,[`modelValue`])])]),e(`div`,oe,[i(v,{value:t.consumption,service:t.service},null,8,[`value`,`service`]),i(b,{type:`primary`,class:`btn w-full`,round:``,disabled:!t.canGenerate,onClick:t.onGenerate},{default:u(()=>[i(y,{icon:`fa-solid fa-magic`,class:`mr-2`}),n(` `+r(t.$t(`fish.button.generate`)),1)]),_:1},8,[`disabled`,`onClick`])])])}var ce=x(Q,[[`render`,se],[`__scopeId`,`data-v-1ccd36ba`]]),le=p({name:`FishTaskPreview`,components:{ElImage:g,CopyToClipboard:A,FontAwesomeIcon:k,ElAlert:_,ElButton:w,ApiCodeButton:P},props:{modelValue:{type:Object,required:!0}},computed:{prompt(){return this.modelValue?.request?.text},audioUrl(){return this.modelValue?.response?.audio_url}},methods:{onDownload(e){window.open(e,`_blank`)}}}),ue={class:`preview`},de={class:`left`},fe={class:`main`},pe={class:`bot`},me={class:`datetime`},he={class:`info`},ge={key:0,class:`prompt mt-2`},_e={key:0},ve={key:0,class:`content`},ye=[`src`],be={class:`operations mt-2`},xe={key:0,class:`text-[var(--el-text-color-regular)] text-xs mb-2`},Se={key:1,class:`text-[var(--el-text-color-regular)] text-xs mb-2`},Ce={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},we={key:2,class:`text-[var(--el-text-color-regular)] text-xs mb-0`},Te={key:1,class:`content`},Ee={class:`text-[var(--el-text-color-regular)] text-xs mb-0`};function De(s,l,d,p,m,h){let g=c(`el-image`),_=c(`el-button`),v=c(`api-code-button`),y=c(`font-awesome-icon`),b=c(`copy-to-clipboard`),x=c(`el-alert`);return f(),o(`div`,ue,[e(`div`,de,[i(g,{src:`https://cdn.acedata.cloud/e40fccc727.png`,class:`avatar`})]),e(`div`,fe,[e(`div`,pe,[n(r(s.$t(`fish.name.fishBot`))+` `,1),e(`span`,me,r(s.$dayjs.format(``+new Date(parseFloat((s.modelValue?.created_at||``).toString())*1e3))),1)]),e(`div`,he,[s.prompt?(f(),o(`p`,ge,[n(r(s.prompt)+` `,1),s.modelValue?.response?a(``,!0):(f(),o(`span`,_e,` - (`+r(s.$t(`fish.status.pending`))+`) `,1))])):a(``,!0)]),s.audioUrl?(f(),o(`div`,ve,[e(`audio`,{src:s.audioUrl,controls:``,preload:`metadata`,class:`w-full mb-3`},null,8,ye),e(`div`,be,[i(_,{type:`info`,size:`small`,class:`mb-2`,onClick:l[0]||=t(e=>s.onDownload(s.audioUrl),[`stop`])},{default:u(()=>[n(r(s.$t(`fish.button.download`)),1)]),_:1}),i(v,{path:`/fish/tts`,body:s.modelValue?.request},null,8,[`body`])]),i(x,{closable:!1,class:`mt-2 success`},{default:u(()=>[s.modelValue?.request?.model?(f(),o(`p`,xe,[i(y,{icon:`fa-solid fa-microchip`,class:`mr-1`}),n(` `+r(s.$t(`fish.name.model`))+`: `+r(s.modelValue?.request?.model),1)])):a(``,!0),s.modelValue?.request?.reference_id?(f(),o(`p`,Se,[i(y,{icon:`fa-solid fa-microphone`,class:`mr-1`}),n(` `+r(s.$t(`fish.name.referenceId`))+`: `+r(s.modelValue?.request?.reference_id)+` `,1),i(b,{content:s.modelValue?.request?.reference_id},null,8,[`content`])])):a(``,!0),e(`p`,Ce,[i(y,{icon:`fa-solid fa-magic`,class:`mr-1`}),n(` `+r(s.$t(`fish.name.taskId`))+`: `+r(s.modelValue?.id)+` `,1),i(b,{content:s.modelValue?.id},null,8,[`content`])]),s.modelValue?.elapsed?(f(),o(`p`,we,[i(y,{icon:`fa-solid fa-clock`,class:`mr-1`}),n(` `+r(s.$t(`fish.name.elapsed`))+`: `+r(s.modelValue?.elapsed?.toFixed(2))+`s `,1)])):a(``,!0)]),_:1})])):(f(),o(`div`,Te,[i(x,{closable:!1,class:`info`},{default:u(()=>[e(`p`,Ee,[i(y,{icon:`fa-solid fa-magic`,class:`mr-1`}),n(` `+r(s.$t(`fish.name.taskId`))+`: `+r(s.modelValue?.id)+` `,1),i(b,{content:s.modelValue?.id},null,8,[`content`])])]),_:1})]))])])}var $=p({name:`FishRecentPanel`,components:{TaskPreview:x(le,[[`render`,De],[`__scopeId`,`data-v-754753f2`]]),BotPlaceholder:F,NoTasks:I,ScrollList:M},props:{loading:{type:Boolean,default:!1}},emits:[`reach-top`],computed:{tasks(){return{...this.$store.state.fish?.tasks,items:this.$store.state.fish?.tasks?.items?.slice()}}},methods:{getScrollElement(){return this.$refs.scrollList?.getScrollElement?.()}}}),Oe={key:0},ke={key:2,class:`w-full h-full flex items-center justify-center`};function Ae(e,t,n,r,p,m){let h=c(`bot-placeholder`),g=c(`task-preview`),_=c(`scroll-list`),v=c(`no-tasks`);return f(),o(s,null,[e.tasks?.items===void 0?(f(),o(`div`,Oe,[i(h)])):e.tasks?.items?.length&&e.tasks?.items?.length>0?(f(),l(_,{key:1,ref:`scrollList`,class:`tasks w-full h-full overflow-y-auto`,loading:e.loading,onReachTop:t[0]||=t=>e.$emit(`reach-top`)},{default:u(()=>[(f(!0),o(s,null,d(e.tasks?.items,e=>(f(),l(g,{key:e.id,"model-value":e},null,8,[`model-value`]))),128))]),_:1},8,[`loading`])):a(``,!0),e.tasks?.items?.length===0?(f(),o(`div`,ke,[i(v)])):a(``,!0)],64)}var je=p({name:`FishTtsIndex`,components:{ConfigPanel:ce,Layout:L,RecentPanel:x($,[[`render`,Ae]]),TabSwitcher:R},mixins:[ee],inject:[`initialized`],data(){return{task:void 0,job:0,loadingMore:!1,fetchingTasks:!1}},computed:{applicationsLoading(){return this.$store.state.fish?.status?.getApplications===O.Request},tasksLoading(){return this.$store.state.fish?.status?.getTasks===O.Request||this.fetchingTasks},credential(){return this.$store.state.fish?.credential},config(){return this.$store.state.fish?.config},application(){return this.$store.state.fish?.application},tasks(){return this.$store.state.fish?.tasks}},watch:{initialized:{async handler(e){e&&(await this.onGetTasks(),await this.onScrollDown(),this.job=window.setInterval(()=>{this.onGetTasks()},5e3))},immediate:!0}},async mounted(){await this.onGetService(),await this.$store.dispatch(`fish/getVoices`)},async unmounted(){window.clearInterval(this.job)},methods:{async onReachTop(){await N({tasks:this.tasks,getTasks:()=>this.tasks,loading:this.loadingMore,setLoading:e=>this.loadingMore=e,isBlocked:()=>this.tasksLoading||this.applicationsLoading,fetch:e=>this.onGetTasks({createdAtMax:e}),getScrollElement:()=>this.getTasksScrollElement()})},async onGetService(){await this.$store.dispatch(`fish/getService`)},async onScrollDown(){await this.$nextTick();let e=this.getTasksScrollElement();e&&(e.scrollTop=e.scrollHeight)},async onGetTasks(e){if(this.applicationsLoading||this.fetchingTasks)return;let{limit:t=5,createdAtMin:n,createdAtMax:r}=e||{};this.fetchingTasks=!0;try{await this.$store.dispatch(`fish/getTasks`,{limit:t,createdAtMin:n,createdAtMax:r})}finally{this.fetchingTasks=!1}},async onGenerate(){if(!D(this.uploadTracker,e=>this.$t(e),e=>S.warning(e)))return;let e=this.config??{},t=e.text?.trim();if(!t){S.warning(this.$t(`fish.message.textRequired`));return}if(!T())return;let n=this.credential?.token;if(!n){console.error(`no token specified`);return}let r=e.model||`s2-pro`,i={text:t,async:!0};e.reference_id&&(i.reference_id=e.reference_id),e.format&&(i.format=e.format),e.prosody&&Object.keys(e.prosody).length>0&&(i.prosody=e.prosody),S.info(this.$t(`fish.message.startingTask`)),E(`fish`,C.generateTts(i,{token:n,model:r})).then(()=>{S.success(this.$t(`fish.message.startTaskSuccess`))}).catch(e=>{(e?.response?.data)?.error?.code===`used_up`?S.error(this.$t(`fish.message.usedUp`)):S.error(this.$t(`fish.message.startTaskFailed`))}).finally(async()=>{setTimeout(async()=>{await this.onGetTasks(),await this.onScrollDown()},1e3)})},getTasksScrollElement(){return this.$refs.recentPanel?.getScrollElement?.()}}}),Me={class:`flex flex-col h-full`},Ne={class:`flex-1 min-h-0`};function Pe(t,n,r,a,o,s){let d=c(`tab-switcher`),p=c(`config-panel`),m=c(`recent-panel`),h=c(`layout`);return f(),l(h,null,{config:u(()=>[e(`div`,Me,[i(d),e(`div`,Ne,[i(p,{onGenerate:t.onGenerate},null,8,[`onGenerate`])])])]),result:u(()=>[i(m,{ref:`recentPanel`,loading:t.loadingMore,onReachTop:t.onReachTop},null,8,[`loading`,`onReachTop`])]),_:1})}var Fe=x(je,[[`render`,Pe]]);export{Fe as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e={"title.chat":{message:`الدردشة بالذكاء الاصطناعي`,description:`عنوان قسم الدردشة بالذكاء الاصطناعي`},"title.midjourney":{message:`الرسم بالذكاء الاصطناعي`,description:`عنوان قسم الرسم بالذكاء الاصطناعي`},"title.qrart":{message:`رمز الاستجابة السريعة الفني بالذكاء الاصطناعي`,description:`عنوان قسم رمز الاستجابة السريعة الفني بالذكاء الاصطناعي`},"title.suno":{message:`الموسيقى بالذكاء الاصطناعي`,description:`عنوان قسم الموسيقى بالذكاء الاصطناعي`},"title.luma":{message:`الفيديو بالذكاء الاصطناعي`,description:`عنوان قسم الفيديو بالذكاء الاصطناعي`},"title.headshots":{message:`الصور الشخصية بالذكاء الاصطناعي`,description:`عنوان قسم الصور الشخصية بالذكاء الاصطناعي`},"title.comments":{message:`تقييمات العملاء`,description:`عنوان قسم تقييمات العملاء`},"title.introduction":{message:`خدماتنا`,description:`مقدمة الموقع`},"subtitle.banner":{message:`تمكين الذكاء الاصطناعي لزيادة إنتاجيتك بشكل شامل.`,description:`العنوان الفرعي للموقع`},"subtitle.chat":{message:`يدعم نماذج متعددة للأسئلة والأجوبة، مع إمكانية الاتصال بالإنترنت، وقادر على التعرف على الصور والملفات والفيديوهات.`,description:`عنوان قسم الدردشة بالذكاء الاصطناعي`},"subtitle.midjourney":{message:`يتكامل مع أحدث نموذج Midjourney، لتوليد الصور بأنماط مختلفة بضغطة زر واحدة مع التعديل المستمر.`,description:`عنوان قسم الرسم بالذكاء الاصطناعي`},"subtitle.qrart":{message:`يدعم أنماط متعددة لرموز الاستجابة السريعة الفنية، ويسمح بتحميل الرموز الحالية لتحويلها إلى فن بصري فريد.`,description:`عنوان قسم رمز الاستجابة السريعة الفني بالذكاء الاصطناعي`},"subtitle.suno":{message:`يدعم أنماط موسيقية متعددة، لتوليد الموسيقى التي تريدها بسهولة، مع خيارات مرنة لتمديد الطول.`,description:`عنوان قسم الموسيقى بالذكاء الاصطناعي`},"subtitle.luma":{message:`يتكامل مع أحدث نموذج Luma، لتوليد الفيديوهات المخصصة بضغطة زر واحدة مع خيارات مرنة لتمديد الفيديو.`,description:`عنوان قسم الفيديو بالذكاء الاصطناعي`},"subtitle.headshots":{message:`يتكامل مع أحدث نموذج للذكاء الاصطناعي، لتوليد الصور الشخصية المخصصة بضغطة زر واحدة مع دعم لأنماط متعددة.`,description:`عنوان قسم الصور الشخصية بالذكاء الاصطناعي`},"subtitle.comments":{message:`نحن سعداء بمساعدة هؤلاء العملاء الذين قدموا تقييمات عالية لخدماتنا.`,description:`عنوان قسم تقييمات العملاء`},"subtitle.introduction":{message:`نحن نقدم خدمات ذكاء اصطناعي شاملة، بما في ذلك الأسئلة والأجوبة، الرسم، رموز الاستجابة السريعة، الموسيقى، وغيرها لتلبية احتياجاتك المتنوعة.`,description:`مقدمة الموقع`},"button.try":{message:`ابدأ مجانًا`,description:`محتوى النص`},"button.testEnv":{message:`بيئة الاختبار`,description:`زر بيئة الاختبار`},"customers.name1":{message:`فرانك`,description:`اسم العميل`},"customers.job1":{message:`مهندس برمجيات`,description:`وظيفة العميل`},"customers.comment1":{message:`هذه الخدمة المتكاملة مريحة للغاية، يمكنني استخدام أدوات الذكاء الاصطناعي المتنوعة على منصة واحدة، رائع جدًا!`,description:`تعليق العميل`},"customers.name2":{message:`جاكوب`,description:`اسم العميل`},"customers.job2":{message:`مدير منتج`,description:`وظيفة العميل`},"customers.comment2":{message:`المنصة سهلة الاستخدام للغاية، وجودة الخدمة ممتازة، وقد حررت إنتاجيتي بشكل كبير.`,description:`تعليق العميل`},"customers.name3":{message:`لاري`,description:`اسم العميل`},"customers.job3":{message:`مصمم`,description:`وظيفة العميل`},"customers.comment3":{message:`هناك العديد من منصات الذكاء الاصطناعي، لكن هذه المنصة سهلة الاستخدام حقًا وبأسعار معقولة، آمل أن تتحسن أكثر!`,description:`تعليق العميل`},"badge.hero":{message:`جديد · منصة إبداعية شاملة بالذكاء الاصطناعي`,description:`شعار البطل في الصفحة الرئيسية`},"subtitle.hero":{message:`الدردشة · الرسم · الموسيقى · الفيديو، كل شيء في منصة واحدة`,description:`شرح قصير تحت العنوان الفرعي للبطل في الصفحة الرئيسية`},"button.explore":{message:`استكشاف الميزات`,description:`زر ثانوي في البطل بالصفحة الرئيسية، ينقر للتمرير إلى قسم تقديم الخدمات`},"title.models":{message:`نماذج كبيرة رائدة مدمجة`,description:`عنوان منطقة النماذج الكبيرة في الصفحة الرئيسية`},"subtitle.models":{message:`الوصول الفوري إلى النماذج الكبيرة الرائدة عالميًا، دون الحاجة للتنقل بين أدوات متعددة`,description:`العنوان الفرعي لمنطقة النماذج الكبيرة في الصفحة الرئيسية`},"title.cta":{message:`ابدأ إبداعك بالذكاء الاصطناعي الآن`,description:`عنوان دعوة العمل في أسفل الصفحة الرئيسية`},"subtitle.cta":{message:`سجل مجانًا، وابدأ تجربة قدرات الذكاء الاصطناعي الشاملة الآن`,description:`العنوان الفرعي لدعوة العمل في أسفل الصفحة الرئيسية`}};export{e as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{A as e,B as t,G as n,Gt as r,H as i,I as a,Jt as o,K as s,Mt as c,N as l,Ot as u,Q as d,Rt as f,St as p,T as m,U as h,Vt as g,Wt as _,Y as v,ft as y,ht as b,it as x,j as S,k as C,mt as w,nt as T,p as E,pt as D,tt as O,wt as k,x as ee,z as A}from"./vendor-chart-Dw-P17PN.js";import{a as j,c as M,i as N,t as P}from"./install-Cn-SLM3u.js";import{c as te,d as F,n as I,r as L,u as R}from"./runtime-BTM7t9of.js";import{At as ne,Ct as z,R as B,_ as re,h as ie,m as V,nt as ae,ot as H,rt as U,st as W,wt as G,zt as oe}from"./use-deprecated-B-uvyrTL.js";import{t as se}from"./tooltip-DK6bCg2d.js";import{r as K}from"./aria-8oQuUBWy.js";import{n as ce}from"./vnode-tCZAUc1D.js";import{t as q}from"./click-outside-CPwvCpQu.js";import{t as le}from"./collapse-transition-BUGXhx7B.js";import{G as J,Gi as Y,Yi as X,ra as ue}from"./index-DtNdkcor.js";var de=class{constructor(e,t){this.parent=e,this.domNode=t,this.subIndex=0,this.subIndex=0,this.init()}init(){this.subMenuItems=this.domNode.querySelectorAll(`li`),this.addListeners()}gotoSubIndex(e){e===this.subMenuItems.length?e=0:e<0&&(e=this.subMenuItems.length-1),this.subMenuItems[e].focus(),this.subIndex=e}addListeners(){let e=this.parent.domNode;Array.prototype.forEach.call(this.subMenuItems,t=>{t.addEventListener(`keydown`,t=>{let n=!1;switch(t.code){case X.down:this.gotoSubIndex(this.subIndex+1),n=!0;break;case X.up:this.gotoSubIndex(this.subIndex-1),n=!0;break;case X.tab:K(e,`mouseleave`);break;case X.enter:case X.numpadEnter:case X.space:n=!0,t.currentTarget.click();break}return n&&(t.preventDefault(),t.stopPropagation()),!1})})}},fe=class{constructor(e,t){this.domNode=e,this.submenu=null,this.submenu=null,this.init(t)}init(e){this.domNode.setAttribute(`tabindex`,`0`);let t=this.domNode.querySelector(`.${e}-menu`);t&&(this.submenu=new de(this,t)),this.addListeners()}addListeners(){this.domNode.addEventListener(`keydown`,e=>{let t=!1;switch(e.code){case X.down:K(e.currentTarget,`mouseenter`),this.submenu&&this.submenu.gotoSubIndex(0),t=!0;break;case X.up:K(e.currentTarget,`mouseenter`),this.submenu&&this.submenu.gotoSubIndex(this.submenu.subMenuItems.length-1),t=!0;break;case X.tab:K(e.currentTarget,`mouseleave`);break;case X.enter:case X.numpadEnter:case X.space:t=!0,e.currentTarget.click();break}t&&e.preventDefault()})}},pe=class{constructor(e,t){this.domNode=e,this.init(t)}init(e){let t=this.domNode.childNodes;Array.from(t).forEach(t=>{t.nodeType===1&&new fe(t,e)})}},me=j(A({...A({name:`ElMenuCollapseTransition`}),setup(e){let t=M(`menu`),r={onBeforeEnter:e=>e.style.opacity=`0.2`,onEnter(e,n){U(e,`${t.namespace.value}-opacity-transition`),e.style.opacity=`1`,n()},onAfterEnter(e){W(e,`${t.namespace.value}-opacity-transition`),e.style.opacity=``},onBeforeLeave(e){e.dataset||={},H(e,t.m(`collapse`))?(W(e,t.m(`collapse`)),e.dataset.oldOverflow=e.style.overflow,e.dataset.scrollWidth=e.clientWidth.toString(),U(e,t.m(`collapse`))):(U(e,t.m(`collapse`)),e.dataset.oldOverflow=e.style.overflow,e.dataset.scrollWidth=e.clientWidth.toString(),W(e,t.m(`collapse`))),e.style.width=`${e.scrollWidth}px`,e.style.overflow=`hidden`},onLeave(e){U(e,`horizontal-collapse-transition`),e.style.width=`${e.dataset.scrollWidth}px`}};return(e,t)=>(O(),S(E,n({mode:`out-in`},c(r)),{default:w(()=>[x(e.$slots,`default`)]),_:3},16))}}),[[`__file`,`menu-collapse-transition.vue`]]);function he(e,t){let n=C(()=>{let n=e.parent,r=[t.value];for(;n.type.name!==`ElMenu`;)n.props.index&&r.unshift(n.props.index),n=n.parent;return r});return{parentMenu:C(()=>{let t=e.parent;for(;t&&![`ElMenu`,`ElSubMenu`].includes(t.type.name);)t=t.parent;return t}),indexPath:n}}function ge(e){return C(()=>{let t=e.backgroundColor;return t?new Y(t).shade(20).toString():``})}var _e=(e,t)=>{let n=M(`menu`);return C(()=>n.cssVarBlock({"text-color":e.textColor||``,"hover-text-color":e.textColor||``,"bg-color":e.backgroundColor||``,"hover-bg-color":ge(e).value||``,"active-color":e.activeTextColor||``,level:`${t}`}))},Z=`rootMenu`,Q=`subMenu:`,ve=I({index:{type:String,required:!0},showTimeout:Number,hideTimeout:Number,popperClass:String,disabled:Boolean,teleported:{type:Boolean,default:void 0},popperOffset:Number,expandCloseIcon:{type:V},expandOpenIcon:{type:V},collapseCloseIcon:{type:V},collapseOpenIcon:{type:V}}),ye=`ElSubMenu`,be=A({name:ye,props:ve,setup(e,{slots:n,expose:r}){let a=t(),{indexPath:o,parentMenu:s}=he(a,C(()=>e.index)),c=M(`menu`),l=M(`sub-menu`),u=h(Z);u||G(ye,`can not inject root menu`);let f=h(`${Q}${s.value.uid}`);f||G(ye,`can not inject sub menu`);let g=k({}),x=k({}),S,w=k(!1),E=k(),D=k(),O=C(()=>L.value===`horizontal`&&j.value?`bottom-start`:`right-start`),A=C(()=>L.value===`horizontal`&&j.value||L.value===`vertical`&&!u.props.collapse?e.expandCloseIcon&&e.expandOpenIcon?F.value?e.expandOpenIcon:e.expandCloseIcon:ie:e.collapseCloseIcon&&e.collapseOpenIcon?F.value?e.collapseOpenIcon:e.collapseCloseIcon:re),j=C(()=>f.level===0),N=C(()=>{let t=e.teleported;return R(t)?j.value:t}),P=C(()=>u.props.collapse?`${c.namespace.value}-zoom-in-left`:`${c.namespace.value}-zoom-in-top`),te=C(()=>L.value===`horizontal`&&j.value?[`bottom-start`,`bottom-end`,`top-start`,`top-end`,`right-start`,`left-start`]:[`right-start`,`right`,`right-end`,`left-start`,`bottom-start`,`bottom-end`,`top-start`,`top-end`]),F=C(()=>u.openedMenus.includes(e.index)),I=C(()=>[...Object.values(g.value),...Object.values(x.value)].some(({active:e})=>e)),L=C(()=>u.props.mode),ne=C(()=>u.props.persistent),z=p({index:e.index,indexPath:o,active:I}),B=_e(u.props,f.level+1),V=C(()=>e.popperOffset??u.props.popperOffset),H=C(()=>e.popperClass??u.props.popperClass),U=C(()=>e.showTimeout??u.props.showTimeout),W=C(()=>e.hideTimeout??u.props.hideTimeout),K=()=>(D.value?.popperRef?.popperInstanceRef)?.destroy(),ce=e=>{e||K()},q=()=>{u.props.menuTrigger===`hover`&&u.props.mode===`horizontal`||u.props.collapse&&u.props.mode===`vertical`||e.disabled||u.handleSubMenuClick({index:e.index,indexPath:o.value,active:I.value})},J=(t,n=U.value)=>{var r;if(t.type!==`focus`){if(u.props.menuTrigger===`click`&&u.props.mode===`horizontal`||!u.props.collapse&&u.props.mode===`vertical`||e.disabled){f.mouseInChild.value=!0;return}f.mouseInChild.value=!0,S?.(),{stop:S}=oe(()=>{u.openMenu(e.index,o.value)},n),N.value&&((r=s.value.vnode.el)==null||r.dispatchEvent(new MouseEvent(`mouseenter`)))}},Y=(t=!1)=>{var n;if(u.props.menuTrigger===`click`&&u.props.mode===`horizontal`||!u.props.collapse&&u.props.mode===`vertical`){f.mouseInChild.value=!1;return}S?.(),f.mouseInChild.value=!1,{stop:S}=oe(()=>!w.value&&u.closeMenu(e.index,o.value),W.value),N.value&&t&&((n=f.handleMouseleave)==null||n.call(f,!0))};return y(()=>u.props.collapse,e=>ce(!!e)),T(`${Q}${a.uid}`,{addSubMenu:e=>{x.value[e.index]=e},removeSubMenu:e=>{delete x.value[e.index]},handleMouseleave:Y,mouseInChild:w,level:f.level+1}),r({opened:F}),d(()=>{u.addSubMenu(z),f.addSubMenu(z)}),v(()=>{f.removeSubMenu(z),u.removeSubMenu(z)}),()=>{let t=[n.title?.call(n),i(ae,{class:l.e(`icon-arrow`),style:{transform:F.value?e.expandCloseIcon&&e.expandOpenIcon||e.collapseCloseIcon&&e.collapseOpenIcon&&u.props.collapse?`none`:`rotateZ(180deg)`:`none`}},{default:()=>_(A.value)?i(a.appContext.components[A.value]):i(A.value)})],r=u.isMenuPopup?i(se,{ref:D,visible:F.value,effect:`light`,pure:!0,offset:V.value,showArrow:!1,persistent:ne.value,popperClass:H.value,placement:O.value,teleported:N.value,fallbackPlacements:te.value,transition:P.value,gpuAcceleration:!1},{content:()=>i(`div`,{class:[c.m(L.value),c.m(`popup-container`),H.value],onMouseenter:e=>J(e,100),onMouseleave:()=>Y(!0),onFocus:e=>J(e,100)},[i(`ul`,{class:[c.b(),c.m(`popup`),c.m(`popup-${O.value}`)],style:B.value},[n.default?.call(n)])]),default:()=>i(`div`,{class:l.e(`title`),onClick:q},t)}):i(m,{},[i(`div`,{class:l.e(`title`),ref:E,onClick:q},t),i(le,{},{default:()=>b(i(`ul`,{role:`menu`,class:[c.b(),c.m(`inline`)],style:B.value},[n.default?.call(n)]),[[ee,F.value]])})]);return i(`li`,{class:[l.b(),l.is(`active`,I.value),l.is(`opened`,F.value),l.is(`disabled`,e.disabled)],role:`menuitem`,ariaHaspopup:!0,ariaExpanded:F.value,onMouseenter:J,onMouseleave:()=>Y(),onFocus:J},[r])}}}),xe=I({mode:{type:String,values:[`horizontal`,`vertical`],default:`vertical`},defaultActive:{type:String,default:``},defaultOpeneds:{type:L(Array),default:()=>ue([])},uniqueOpened:Boolean,router:Boolean,menuTrigger:{type:String,values:[`hover`,`click`],default:`hover`},collapse:Boolean,backgroundColor:String,textColor:String,activeTextColor:String,closeOnClickOutside:Boolean,collapseTransition:{type:Boolean,default:!0},ellipsis:{type:Boolean,default:!0},popperOffset:{type:Number,default:6},ellipsisIcon:{type:V,default:()=>B},popperEffect:{type:L(String),default:`dark`},popperClass:String,showTimeout:{type:Number,default:300},hideTimeout:{type:Number,default:300},persistent:{type:Boolean,default:!0}}),Se=e=>f(e)&&e.every(e=>_(e)),Ce=A({name:`ElMenu`,props:xe,emits:{close:(e,t)=>_(e)&&Se(t),open:(e,t)=>_(e)&&Se(t),select:(e,t,n,r)=>_(e)&&Se(t)&&g(n)&&(R(r)||r instanceof Promise)},setup(e,{emit:n,slots:r,expose:a}){let o=t(),c=o.appContext.config.globalProperties.$router,l=k(),u=M(`menu`),f=M(`sub-menu`),m=k(-1),h=k(e.defaultOpeneds&&!e.collapse?e.defaultOpeneds.slice(0):[]),g=k(e.defaultActive),_=k({}),v=k({}),x=C(()=>e.mode===`horizontal`||e.mode===`vertical`&&e.collapse),S=()=>{let t=g.value&&_.value[g.value];!t||e.mode===`horizontal`||e.collapse||t.indexPath.forEach(e=>{let t=v.value[e];t&&w(e,t.indexPath)})},w=(t,r)=>{h.value.includes(t)||(e.uniqueOpened&&(h.value=h.value.filter(e=>r.includes(e))),h.value.push(t),n(`open`,t,r))},E=e=>{let t=h.value.indexOf(e);t!==-1&&h.value.splice(t,1)},O=(e,t)=>{E(e),n(`close`,e,t)},ee=({index:e,indexPath:t})=>{h.value.includes(e)?O(e,t):w(e,t)},A=t=>{(e.mode===`horizontal`||e.collapse)&&(h.value=[]);let{index:r,indexPath:i}=t;if(!(F(r)||F(i)))if(e.router&&c){let e=t.route||r,a=c.push(e).then(e=>(e||(g.value=r),e));n(`select`,r,i,{index:r,indexPath:i,route:e},a)}else g.value=r,n(`select`,r,i,{index:r,indexPath:i})},j=t=>{let n=_.value;g.value=(n[t]||g.value&&n[g.value]||n[e.defaultActive])?.index??t},N=e=>{let t=getComputedStyle(e),n=Number.parseInt(t.marginLeft,10),r=Number.parseInt(t.marginRight,10);return e.offsetWidth+n+r||0},P=()=>{if(!l.value)return-1;let e=Array.from(l.value?.childNodes??[]).filter(e=>e.nodeName!==`#text`||e.nodeValue),t=getComputedStyle(l.value),n=Number.parseInt(t.paddingLeft,10),r=Number.parseInt(t.paddingRight,10),i=l.value.clientWidth-n-r,a=0,o=0;return e.forEach((e,t)=>{e.nodeName!==`#comment`&&(a+=N(e),a<=i-64&&(o=t+1))}),o===e.length?-1:o},te=e=>v.value[e].indexPath,I=(e,t=33.34)=>{let n;return()=>{n&&clearTimeout(n),n=setTimeout(()=>{e()},t)}},L=!0,R=()=>{if(m.value===P())return;let e=()=>{m.value=-1,s(()=>{m.value=P()})};L?e():I(e)(),L=!1};y(()=>e.defaultActive,e=>{_.value[e]||(g.value=``),j(e)}),y(()=>e.collapse,e=>{e&&(h.value=[])}),y(_.value,S);let z;D(()=>{e.mode===`horizontal`&&e.ellipsis?z=ne(l,R).stop:z?.()});let B=k(!1);{let t=e=>{v.value[e.index]=e},n=e=>{delete v.value[e.index]};T(Z,p({props:e,openedMenus:h,items:_,subMenus:v,activeIndex:g,isMenuPopup:x,addMenuItem:e=>{_.value[e.index]=e},removeMenuItem:e=>{delete _.value[e.index]},addSubMenu:t,removeSubMenu:n,openMenu:w,closeMenu:O,handleMenuItemClick:A,handleSubMenuClick:ee})),T(`${Q}${o.uid}`,{addSubMenu:t,removeSubMenu:n,mouseInChild:B,level:0})}d(()=>{e.mode===`horizontal`&&new pe(o.vnode.el,u.namespace.value)}),a({open:e=>{let{indexPath:t}=v.value[e];t.forEach(e=>w(e,t))},close:E,updateActiveIndex:j,handleResize:R});let re=_e(e,0);return()=>{let t=r.default?.call(r)??[],a=[];if(e.mode===`horizontal`&&l.value){let n=ce(t),r=m.value===-1?n:n.slice(0,m.value),o=m.value===-1?[]:n.slice(m.value);o?.length&&e.ellipsis&&(t=r,a.push(i(be,{index:`sub-menu-more`,class:f.e(`hide-arrow`),popperOffset:e.popperOffset},{title:()=>i(ae,{class:f.e(`icon-more`)},{default:()=>i(e.ellipsisIcon)}),default:()=>o})))}let o=e.closeOnClickOutside?[[q,()=>{h.value.length&&(B.value||(h.value.forEach(e=>n(`close`,e,te(e))),h.value=[]))}]]:[],s=b(i(`ul`,{key:String(e.collapse),role:`menubar`,ref:l,style:re.value,class:{[u.b()]:!0,[u.m(e.mode)]:!0,[u.m(`collapse`)]:e.collapse}},[...t,...a]),o);return e.collapseTransition&&e.mode===`vertical`?i(me,()=>s):s}}}),we=I({index:{type:L([String,null]),default:null},route:{type:L([String,Object])},disabled:Boolean}),Te={click:e=>_(e.index)&&f(e.indexPath)},$=`ElMenuItem`,Ee=j(A({...A({name:$}),props:we,emits:Te,setup(n,{expose:i,emit:a}){let o=n;te(o.index)&&z($,`Missing required prop: "index"`);let s=t(),f=h(Z),g=M(`menu`),_=M(`menu-item`);f||G($,`can not inject root menu`);let{parentMenu:y,indexPath:b}=he(s,u(o,`index`)),T=h(`${Q}${y.value.uid}`);T||G($,`can not inject sub menu`);let E=C(()=>o.index===f.activeIndex),D=p({index:o.index,indexPath:b,active:E}),k=()=>{o.disabled||(f.handleMenuItemClick({index:o.index,indexPath:b.value,route:o.route}),a(`click`,D))};return d(()=>{T.addSubMenu(D),f.addMenuItem(D)}),v(()=>{T.removeSubMenu(D),f.removeMenuItem(D)}),i({parentMenu:y,rootMenu:f,active:E,nsMenu:g,nsMenuItem:_,handleClick:k}),(t,n)=>(O(),l(`li`,{class:r([c(_).b(),c(_).is(`active`,c(E)),c(_).is(`disabled`,t.disabled)]),role:`menuitem`,tabindex:`-1`,onClick:k},[c(y).type.name===`ElMenu`&&c(f).props.collapse&&t.$slots.title?(O(),S(c(se),{key:0,effect:c(f).props.popperEffect,placement:`right`,"fallback-placements":[`left`],persistent:c(f).props.persistent},{content:w(()=>[x(t.$slots,`title`)]),default:w(()=>[e(`div`,{class:r(c(g).be(`tooltip`,`trigger`))},[x(t.$slots,`default`)],2)]),_:3},8,[`effect`,`persistent`])):(O(),l(m,{key:1},[x(t.$slots,`default`),x(t.$slots,`title`)],64))],2))}}),[[`__file`,`menu-item.vue`]]),De={title:String},Oe=j(A({...A({name:`ElMenuItemGroup`}),props:De,setup(t){let n=M(`menu-item-group`);return(t,i)=>(O(),l(`li`,{class:r(c(n).b())},[e(`div`,{class:r(c(n).e(`title`))},[t.$slots.title?x(t.$slots,`title`,{key:1}):(O(),l(m,{key:0},[a(o(t.title),1)],64))],2),e(`ul`,null,[x(t.$slots,`default`)])],2))}}),[[`__file`,`menu-item-group.vue`]]),ke=P(Ce,{MenuItem:Ee,MenuItemGroup:Oe,SubMenu:be}),Ae=N(Ee);N(Oe);var je=N(be),Me=A({props:{collapsed:{type:Boolean,default:!1}},emits:[`click`],computed:{siteTitle(){return this.$store.state.site?.title||`AceData`},url(){let e=this.$store.state.site,t=`https://platform.acedata.cloud/favicon.ico`;return this.collapsed?e?.favicon||e?.logo||t:e?.logo||e?.favicon||t}}}),Ne=[`aria-label`],Pe=[`src`,`alt`];function Fe(t,n,r,i,a,o){return O(),l(`button`,{type:`button`,class:`brand-logo`,"aria-label":t.siteTitle,onClick:n[0]||=e=>t.$emit(`click`)},[e(`img`,{src:t.url,class:`brand-logo__image`,alt:t.siteTitle},null,8,Pe)],8,Ne)}var Ie=J(Me,[[`render`,Fe],[`__scopeId`,`data-v-fefbbe27`]]),Le=`data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALQAAAC0CAMAAAAKE/YAAAAAMFBMVEX///+3t7f4+Pi8vLzAwMDExMTS0tLIyMjk5OTz8/PY2NjOzs7u7u7d3d3p6enh4eFVKkJDAAAIfUlEQVR4nNVd15akOAylyRRQ9f9/O02BZJtgBQszfR/2zPahsJCvguVUFJYop35ux66pq6r6+fn9T910bTv3U2najBXK9zw2PxE07fz+n0Qf+raOyetL3g9PS7vgzRUYULfvZyXuR5nAgLF/SuK3UuJN7gf0PbyErDiieuU1zKmLyFJ3Y9u+vmh//V9dXT/b5VN3f+HbFq82nGivHH6999Vv8rC7P+NFzfBlF56xvl/sEy1Xbc8mZ9m3R7bcrO0jl+vXJH7J0YY78UvYKNuDjpWNTQd9tzd5ks9ePUm92u877WMlp4dhR+Y2OYkYdh3XmKclc9iATVwoXyFLZouXIobuBpEXlK+QcYbK7gOF2NpMaN2Vmfdr71LGirAbW5N3lr4F1rckC0GQbQw6cqrM1XACvzOr5EjT+2q+L24Vk6/sRGL7no6t5un9eQE+7JG4r+wk3+e9iGfXwzyeZHLjzDGFt0fEBB564ymOeRwzCg8dHaZ9kx8NZGZ8+UyOv0bSW3o9q5Tac5+0luajjGfqpsT2krIuTeaKZGQf4UUIKpx6xFbo2nGD9HSlpJZAGfSQILVjV02Z4CQsJhD2UdbcJ/dwyRfpNvozwaLo4q/0nMhLIrMThJSZZ4EhiJd6Ugti43SvzCTlPKnZmUNZMV+u4cYKwp85XlfcTBi/s6Z+MZ2LxADhGZzUDU9m5zjIr0woQhLxasAHWS7E9TgZU/Z1EBEIjbzxQYYxOudOxu73qTBcUGEaIzqD1hi96W6JTgzRoDSI/UhmITP7yUPFSYqaagD1R4wJkP8VnT8nTwVQqnauN06QjvtCvYt2IL3Zm/Uk9jjDz0RmMLggwx3SOuIUSniGpJv3bAJo1SAFr9mKH8aI+LqkI0RFtoIh9/L76Cc8GLCDoxxSjyAHgxxFYSEzJ18Ggly4YHQHnCQ2LRoCGINXQirim0JYUJpDatf/p24PP4mVwSblSg6MEhDGuzNVg6J5o8nEvAPAGZiAfk5MDRXNqxcmx/AVHPMprx8G1TEHwOzqTByseTgoDRxYDT6akSh9YSMzr6aLidOeTGCj3EqDkdC8GU9Q9c6voYlyJzxy0sOxOnRs8C3sQpSR92DOO4EDCXkAzoA935bPTy8AIgTBCIIyvyZsExF/uM2Byfk9A7VafuksfdyygFmJcc35NZ7tT5xUYMNwJYcI/FouGP7xOyT1YBOh+aVcsCHHBWCHZHLTxOfxF6ZA8HP82P7ASv4BJj5PMNMO/g3+H9ghqrtnGm4hIJLAd7byVxg5asGCA+AH2N2meYHvKPxZmQRIGtyMaOMweC/ZXJJJdJE0CF27Bm0oK8kWLKSWHxeILB8s7xN8gmxFi0VIFAkNqd5KiI3S7JBqJ7Ssycb70vAL2LAofMiE9hkBrQvX4OTXNLS4eGpwA8KlaxaGKHOy4OWWcSVoXSZz9ohYYLaxpB8bv4V2aFGeFiYOvqTb74V2mHkQ8IXjBKhMuKrMJIoLOQlmVGIiIlyPmXdguwJ6d8J/CZ1H0m4iB1Gr4D569HjCZalPaNoxeWtd5jKf4TRkpy30syh3KbLXPVZsWdIIQUK6dO8Jl+dkbUB6GfRranwIWx3hUzeVi5fRmggtDA6b/dWO3ELkLiF4QldqoXOPxhe8QOjt57LUpXhguGUhtEUFUtq9EBzUQluQWrphIV1oA1JLm0R6VFqh0z21eH30XmjFdofbF14dgC5PG1zS0w9pjuYFF2UYL9KHiXJGYhhXJkwLEk1RvrEMZVWmpgvSVC1XtEtNlYOAL1JYrdESOg3lcGtFQsVGs+Nu++msHdiu0BNEQQ5vYKssIWxQx3JNc1AqnbTFmg3qSoKmYz0mb//S7QDU1k5Vdu+VSnUFyA3aBES1ca9zkqb4PPVQUUVG74OVRfUNSqencXh+UR1sUnfqgy6+qLrVn75QThRt0I26VG0FU4dbRNfE1ULpqVVBIZBTN/kJ0PBDxY6QEbpp5v27JFCxI5xm1k3oIxT+Q+Wowgl93dIJhHzqVrW5erd0QrdIxUE8wFXxcL9IBXSlSRcLuSnq3NR+OZBq4ZWD1FXr8sn9wivVEjcPwtVuKtd6XOKmWUzoQeY/dCczHBcTKpZtnr2QB104gN70ukm+QNaHzBJV7DhbIAt/040ERMMXnbUDAwOtgvZVsUo0KaCi9Omib/SCqleKhE7KSsNIIt7IkFXoi40MSBrNO28X+ooHOKxWqPpuoVHRh7FDo3+pyHsorOZyG5R0w5kPUZmJffYFIrLhTLi1DzFJT0X+aWaZ3JGtfcJNlCvesTOuIpAcLBrdRIms5g4s+jFlM0PFPYY6ul1VtDG4PJzwqQHnGGpKKlA1fVKN0VqxX31Tx1DjOTBXaRFvs3vaWdkniPIEF3hdGgEmxpev0VpeHNf8ZuiROMBhet0hMch9qkogR2wXbeSojHI22jd5ifp1cLbY9dHB8NWhJCbOgkYzBxpFzxH3wu74F++ro8ckWsM7a5l7/IuzVnAxJX1MojGQ3shHslKCPPimY+b+jYfmU0qONPIOj5rzK9lDi33OyQttVpEaglXXMFoabQVmqny3QxaBW4opM3o4CtwDJazWGZtAUMi12ONkAtGMrNGS/1QI5yb+CxciLmc8EwoDKEokefK6CBKPRf47Mj/MEIujvv+MzA/6kKQLCR7y18q5Y8AjiWryrR1T9uwp/RqJ3YUdGWBxYUeR2RzN7gThn6ifCrtLaA7X/dwG4xtusvg+24uVihzKtr/Cqrh7OFPdcVlYcXItmyHS7x67ROwyxxTceAHegqsLHVOQ4WLH00sdE5DhUsev2IbaznR95gKrCnDGi0oXDOmTRrmvhP3i712+u+LvXXO84u9dKL2Cf3V33X7+i6u7N/y5S9IdvOvoF0G/19GP9tfR/wPQ21eEI8clLwAAAABJRU5ErkJggg==`;export{je as a,Ae as i,Ie as n,ke as r,Le as t};
|
|
@@ -1,2 +0,0 @@
|
|
|
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 m,T as h,V as g,_,a as v,aa as y,b,c as x,d as S,f as C,g as w,h as ee,i as te,j as ne,k as re,l as ie,m as ae,n as oe,o as T,p as E,r as D,s as O,t as k,u as A,v as j,w as M,x as N,y as P,z as F}from"./constants-DL6fvaZc.js";import{Nr as I,Oi as L,Ti as R,jn as z,vi as B}from"./index-DtNdkcor.js";import{a as se,i as V,n as H,o as U,r as W}from"./codingBridgeNotify-DMu8O3yh.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=`${y}?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 w: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,g)}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(ee,{node_id:e,payload:t})}listNodes(){this.sendEnvelope(E,{})}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,g,v)=>{let y=g?.event,x=g?.session_id,S=g?.trace_id,C=g?.seq;if(typeof C==`number`&&x){let e=p.lastSeq[x];if(e!==void 0&&C<=e)return;t(`setLastSeq`,{session_id:x,seq:C})}switch(x&&S&&t(`updateSession`,{session_id:x,trace_id:S}),y){case ne:t(`upsertSession`,{session_id:x,node_id:v,status:`running`,cwd:g.cwd,model:g.model,...g.effort===void 0?{}:{effort:g.effort},...g.permission_mode===void 0?{}:{permission_mode:g.permission_mode},trace_id:S});break;case r:{let e=g.sdk_session_id;x&&e&&e!==x&&t(`renameSession`,{from:x,to:e});break}case f:{let e=g.id;e&&p.events[x]?.find(t=>t.kind===`text`&&t.stream_id===e)?t(`appendDelta`,{session_id:x,stream_id:e,text:g.text??``}):t(`appendEvent`,X(x,`text`,{text:g.text??``,stream_id:e,streaming:!0,trace_id:S}));break}case u:{let e=g.id;e&&p.events[x]?.find(t=>t.kind===`text`&&t.stream_id===e)?t(`finalizeStream`,{session_id:x,stream_id:e,text:g.text}):t(`appendEvent`,X(x,`text`,{text:g.text,trace_id:S}));break}case a:t(`appendEvent`,X(x,`thinking`,{text:g.text,trace_id:S}));break;case c:t(`appendEvent`,X(x,`tool_use`,{tool:g.tool,tool_use_id:g.tool_use_id,input:g.input,trace_id:S}));break;case s:t(`appendEvent`,X(x,`tool_result`,{tool_use_id:g.tool_use_id,content:g.content,is_error:g.is_error,trace_id:S}));break;case m:t(`addPermission`,{request_id:g.request_id,session_id:x,node_id:v,tool:g.tool,input:g.input,title:g.title,display_name:g.display_name,description:g.description}),ue(o,{node_id:v,session_id:x,request_id:g.request_id,tool:g.display_name||g.title||g.tool});break;case N:for(let e of g.requests??[])t(`addPermission`,{request_id:e.request_id,session_id:e.session_id,node_id:v,tool:e.tool,input:e.input,title:e.title,display_name:e.display_name,description:e.description});break;case n:t(`removePermission`,g.request_id);break;case re:t(`finalizeAllStreams`,{session_id:x}),t(`appendEvent`,X(x,`result`,{subtype:g.subtype,is_error:g.is_error,text:g.result,cost_usd:g.cost_usd,cut_uuid:g.cut_uuid,sdk_session_id:g.sdk_session_id,trace_id:S})),t(`updateSession`,{session_id:x,status:`idle`,cost_usd:g.cost_usd});break;case d:t(`appendEvent`,X(x,`notice`,{text:g.text,subtype:g.code,command:g.command,level:g.level}));break;case i:t(`finalizeAllStreams`,{session_id:x}),t(`appendEvent`,X(x,`error`,{text:g.message,trace_id:S})),t(`updateSession`,{session_id:x,status:`error`}),t(`updateStatus`,{key:`getHistoryDetail`,value:B.Success});break;case h:t(`finalizeAllStreams`,{session_id:x}),t(`updateSession`,{session_id:x,status:`closed`});break;case e:t(`rewindToCut`,{session_id:x,cut_uuid:g.cut_uuid}),g.prompt&&t(`appendEvent`,X(x,`prompt`,{text:g.prompt,trace_id:S})),t(`updateSession`,{session_id:x,status:`running`});break;case l:o(`resyncSession`,x);break;case M:for(let e of g.sessions??[])t(`upsertSession`,{session_id:e.session_id,node_id:v,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 b:if(v){t(`setHistory`,{node_id:v,sessions:g.sessions??[]}),t(`updateStatus`,{key:`getHistory`,value:B.Success});let e=p.historyRef;e&&e.node_id===v&&!p.currentSessionId&&o(`reattachSession`,e)}break;case P:de(t,p,g,v),t(`updateStatus`,{key:`getHistoryDetail`,value:B.Success});break;case j:t(`setDirectory`,{path:g.path,parent:g.parent??null,sep:g.sep??`/`,entries:g.entries??[],truncated:g.truncated,error:g.error});break;case _:v&&t(`setCapabilities`,{node_id:v,capabilities:{providers:g.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:I,mutations:{resetAll:e=>{Object.assign(e,I())},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:B.Request});try{let{data:t}=await z.getNodes({token:n});return e(`setNodes`,t.nodes??[]),e(`updateStatus`,{key:`getNodes`,value:B.Success}),t.nodes??[]}catch(t){throw e(`updateStatus`,{key:`getNodes`,value:B.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:B.Request});try{let{data:n}=await z.claimPair(r.trim(),{token:i});return e(`updateStatus`,{key:`claimPair`,value:B.Success}),await t(`getNodes`),n.node_name}catch(t){throw e(`updateStatus`,{key:`claimPair`,value:B.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:B.Request});try{await z.deleteNode(i,{token:a}),e(`removeNodeData`,i),n.currentNodeId===i&&(e(`setCurrentNode`,void 0),e(`setCurrentSession`,void 0)),e(`updateStatus`,{key:`deleteNode`,value:B.Success}),await t(`getNodes`)}catch(t){throw e(`updateStatus`,{key:`deleteNode`,value:B.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:O})},requestPendingPermissions:({state:e},t)=>{let n=t??e.currentNodeId;!n||!J||J.sendToNode(n,{action:v})},enableNotifications:async({dispatch:e,rootState:t})=>{let n=t.token?.access;if(!n)return`unsupported`;if(L()){let t=await W(t=>{t?.node_id&&(e(`selectNode`,t.node_id),e(`requestPendingPermissions`,t.node_id))});return t?(await z.savePushSubscription({kind:R()?`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 z.getPushConfig();if(e.web_push_enabled&&e.vapid_public_key){let t=await se(e.vapid_public_key);t&&await z.savePushSubscription({kind:`webpush`,subscription:t,ua:navigator.userAgent},{token:n})}}catch(e){console.warn(`[codingBridge] web push setup skipped`,e)}return`enabled`},disableNotifications:async({rootState:e})=>{let t=e.token?.access;if(L()||!t)return;let n=await U();if(n)try{await z.deletePushSubscription({endpoint:n},{token:t})}catch(e){console.warn(`[codingBridge] failed to deregister web push`,e)}},newSession:({commit:e})=>{e(`setCurrentSession`,void 0),e(`setHistoryRef`,void 0)},sendPrompt:({commit:e,state:t},n)=>{let r=t.currentNodeId,i=n.prompt?.trim(),a=n.images?.length?n.images:void 0,o=n.attachments?.length?n.attachments:void 0;if(!r||!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:C,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:S,session_id:c,trace_id:s,prompt:i,model:n.model??``,...n.effort===void 0?{}:{effort:n.effort},...n.permissionMode===void 0?{}:{permission_mode:n.permissionMode},images:a,attachments:o})},editPrompt:({commit:e,state:t},n)=>{let r=t.currentNodeId,i=t.currentSessionId,a=n.prompt?.trim();if(!r||!i||!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:x,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:T,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:T,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:B.Request}),J.sendToNode(r,{action:te,limit:200}))},getHistoryDetail:({commit:e},t)=>{!t?.node_id||!t?.session_id||!J||(e(`updateStatus`,{key:`getHistoryDetail`,value:B.Request}),J.sendToNode(t.node_id,{action:D,provider:t.provider,session_id:t.session_id}),setTimeout(()=>e(`updateStatus`,{key:`getHistoryDetail`,value:B.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:k})}}};export{$ as codingBridge,$ as default};
|
|
@@ -1 +0,0 @@
|
|
|
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.guestTasks":{message:`Faça login para iniciar uma tarefa e ver suas criações aqui.`,description:`Prompt shown in the task list area for not-logged-in guests`},"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.sendShortcut":{message:`Enviar mensagem`,description:`Title of the send-message shortcut row in General settings: choose Enter or modifier+Enter to send.`},"sendShortcut.enter":{message:`Enviar com Enter`,description:`Send-shortcut option: press Enter to send the message.`},"sendShortcut.modEnter":{message:`Enviar com {key} + Enter`,description:`Send-shortcut option: press the platform modifier (⌘ or Ctrl) plus Enter to send. {key} is the modifier symbol.`},"settings.loginMode":{message:`Modo de login`,description:`Login-mode row title in general settings`},"loginMode.iframe":{message:`Pop-up incorporado`,description:`Login mode option: embedded iframe popup`},"loginMode.redirect":{message:`Redirecionamento de página inteira`,description:`Login mode option: full-page redirect`},"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:`Recursos`,description:`Title for the site capabilities section in the settings page`},"settings.auth":{message:`Autenticação`,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)`},"settings.memory":{message:`Memória`,description:`Configura o rótulo 'Memória' na barra lateral da janela de configurações, onde o usuário pode visualizar e gerenciar as informações que o assistente lembra sobre si.`},"settings.memoryIntro":{message:`O assistente lembrará informações úteis que você menciona nas conversas, proporcionando respostas mais personalizadas em diferentes diálogos. Você tem controle total — pode visualizar o conteúdo salvo e excluir partes que não deseja que ele lembre.`,description:`Texto de introdução no topo da aba de configurações de memória.`},"settings.memoryNeedsChat":{message:`Por favor, inicie uma conversa para ativar a funcionalidade de memória.`,description:`Exibido na aba de configurações de memória quando o aplicativo de chat/token ainda não foi carregado.`},"settings.memoryStored":{message:`Memórias salvas`,description:`Título da seção acima da lista de itens de memória armazenados.`},"settings.memoryEmpty":{message:`Nenhuma memória salva até o momento. À medida que você utiliza, o assistente lembrará de preferências e informações duradouras aqui.`,description:`Estado vazio exibido quando o usuário não tem memórias armazenadas.`},"settings.memoryForget":{message:`Esquecer`,description:`Botão para excluir uma única memória na linha do item de memória.`},"settings.memoryClearAll":{message:`Limpar tudo`,description:`Botão para excluir todas as memórias armazenadas de uma só vez.`},"settings.memoryClearConfirm":{message:`Isso irá excluir permanentemente todas as informações que o assistente lembra sobre você e não pode ser desfeito.`,description:`Conteúdo da janela de confirmação antes de limpar todas as memórias.`},"settings.memoryError":{message:`A operação falhou, por favor, tente novamente.`,description:`Mensagem de erro exibida quando a operação de exclusão/limpeza de memória falha.`},"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.localToolsComputerUseTitle":{message:`Computer Use (experimental)`,description:`Heading for the opt-in Computer Use (screen + mouse/keyboard control) toggle.`},"settings.localToolsComputerUseHint":{message:`Let the AI see your screen and control the mouse and keyboard on this computer. Off by default — turn it on only when you need it. On macOS, grant Screen Recording and Accessibility permissions below. Each action still asks for your confirmation.`,description:`Help text under the Computer Use toggle.`},"settings.localToolsAndroidSkillsTitle":{message:`Habilidades de Automação do Telefone`,description:`Título para a seção exclusiva do Android que instala habilidades que controlam aplicativos no telefone via Operação do Computador.`},"settings.localToolsAndroidSkillsHint":{message:`Instale habilidades que permitem ao assistente operar aplicativos nativos. Elas funcionam através da 'Operação do Computador', então, primeiro, conceda permissões de acessibilidade acima e ative a operação do computador. Cada ação ainda seguirá suas configurações de confirmação de operação do computador.`,description:`Texto de ajuda sob o título de habilidades de automação do telefone.`},"settings.localToolsAndroidSkillsXhsName":{message:`Resposta Automática de Mensagens Diretas do Xiaohongshu`,description:`Nome exibido da habilidade de resposta automática de mensagens diretas do Xiaohongshu (RED).`},"settings.localToolsAndroidSkillsXhsDesc":{message:`Leia novas mensagens diretas no App Xiaohongshu e redija respostas, que serão confirmadas antes do envio.`,description:`Descrição em uma linha da habilidade de DM do Xiaohongshu.`},"settings.localToolsAndroidSkillsInstall":{message:`Instalar`,description:`Botão que instala a habilidade na conta do usuário.`},"settings.localToolsAndroidSkillsInstalled":{message:`Instalado`,description:`Etiqueta exibida quando a habilidade já está instalada.`},"settings.localToolsAndroidSkillsLoading":{message:`Carregando habilidades disponíveis...`,description:`Placeholder enquanto o diretório de habilidades está sendo buscado.`},"settings.localToolsAndroidSkillsUnavailable":{message:`Nenhuma habilidade de telefone disponível para instalação.`,description:`Estado vazio quando nenhuma habilidade de telefone instalável é encontrada.`},"settings.localToolsAndroidSkillsNeedComputerUse":{message:`Antes de instalar, conceda permissões de acessibilidade e ative a operação do computador acima.`,description:`Dica exibida quando o botão de instalação está desativado devido à falta de pré-requisitos.`},"settings.localToolsAndroidSkillsNextTurn":{message:`Instalado, estará ativo na sua próxima conversa.`,description:`Confirmação exibida após uma instalação bem-sucedida.`},"settings.localToolsAndroidSkillsInstallFailed":{message:`Instalação falhou, por favor, tente novamente.`,description:`Erro exibido quando a solicitação de instalação falha.`},"settings.localToolsAndroidSkillsLoadFailed":{message:`Falha ao carregar habilidades disponíveis, por favor, tente novamente.`,description:`Erro exibido quando a busca pelo diretório de habilidades falha.`},"settings.localToolsPreauthorizeAll":`Pré-aprovar todas as ações do computador`,"settings.localToolsPreauthorizeHint":`Permite de uma vez captura de tela, clique, digitação, teclas e todas as ações, e solicita as permissões do sistema necessárias.`,"settings.localToolsCuA11yLabel":{message:`Serviço de Acessibilidade`,description:`Etiqueta na linha de status de Usabilidade do Uso do Computador, indicando se o serviço de acessibilidade está realmente em execução.`},"settings.localToolsCuReady":{message:`Pronto, disponível`,description:`Status verde exibido quando o serviço de acessibilidade está em execução e o Uso do Computador está realmente disponível.`},"settings.localToolsCuA11yMissing":{message:`Desativado, Uso do Computador indisponível`,description:`Aviso vermelho exibido quando o interruptor está ativado, mas o serviço de acessibilidade não está em execução.`},"settings.localToolsCuActionsTitle":`Permitir ações individuais`,"settings.localToolsCuActionsHint":`Ative apenas as ações que você aceita que a IA execute sem perguntar toda vez. Cada uma continua revogável aqui.`,"settings.localToolsCuScreenshot":`Captura de tela`,"settings.localToolsCuClick":`Clique`,"settings.localToolsCuMove":`Mover o ponteiro`,"settings.localToolsCuType":`Digitar texto`,"settings.localToolsCuKey":`Pressionar teclas`,"settings.localToolsCuScroll":`Rolagem`,"settings.localToolsBuiltinTitle":`Ferramentas integradas`,"settings.localToolsBuiltinHint":`Ative uma ferramenta para a IA executá-la sem perguntar. O Shell pode executar qualquer comando nesta máquina — ative apenas se confiar. As ferramentas de arquivo continuam limitadas às suas pastas autorizadas.`,"settings.localToolsBuiltinRisky":`Acesso total`,"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.localToolsMcpTitle":{message:`MCP servers`,description:`Section title for local MCP server configuration in Local Tools settings.`},"settings.localToolsMcpHint":{message:`Connect local MCP servers over stdio. Their tools become available to the AI, gated by the same per-call confirmation. Changes take effect immediately.`,description:`Explains what local MCP servers do and that changes apply without a restart.`},"settings.localToolsMcpAdd":{message:`Add server`,description:`Button to add a new local MCP server row.`},"settings.localToolsMcpName":{message:`Name`,description:`Label for the MCP server name/id field.`},"settings.localToolsMcpCommand":{message:`Command`,description:`Label for the MCP server launch command field.`},"settings.localToolsMcpArgs":{message:`Arguments`,description:`Label for the MCP server command arguments field.`},"settings.localToolsMcpArgsHint":{message:`One argument per line.`,description:`Placeholder/hint for the MCP arguments textarea.`},"settings.localToolsMcpEnv":{message:`Environment`,description:`Label for the MCP server environment variables field.`},"settings.localToolsMcpEnvHint":{message:`One KEY=VALUE per line.`,description:`Placeholder/hint for the MCP environment variables textarea.`},"settings.localToolsMcpNoServers":{message:`No MCP servers configured.`,description:`Empty state shown when no MCP servers are configured.`},"settings.localToolsMcpNamePlaceholder":{message:`e.g. filesystem`,description:`Placeholder for the MCP server name input.`},"settings.localToolsMcpCommandPlaceholder":{message:`e.g. npx`,description:`Placeholder for the MCP server command input.`},"settings.localToolsMcpNameRequired":{message:`Each server needs a name and a command.`,description:`Validation error when a server row is missing a name or command.`},"settings.localToolsMcpDuplicateName":{message:`Server names must be unique.`,description:`Validation error when two servers share the same name.`},"settings.localToolsMcpNameInvalid":{message:`Name may only contain letters, numbers, hyphens and underscores.`,description:`Validation error when a server name contains invalid characters.`},"settings.localToolsMcpEnabled":{message:`On`,description:`Toggle label to enable/disable a local MCP server.`},"settings.localToolsMcpReconnect":{message:`Test / Reconnect`,description:`Button to re-spawn one MCP server and refresh its status.`},"settings.localToolsMcpConnecting":{message:`Connecting…`,description:`Badge while an MCP server is being (re)connected.`},"settings.localToolsMcpNotSaved":{message:`Not saved yet`,description:`Badge for an MCP server row that hasn't been saved/connected yet.`},"settings.localToolsMcpConnected":{message:`Connected · {n} tools`,description:`Badge when an MCP server connected; {n} is the tool count.`},"settings.localToolsMcpDisabled":{message:`Disabled`,description:`Badge when an MCP server is turned off.`},"settings.localToolsMcpFailed":{message:`Failed to connect`,description:`Badge when an MCP server failed to start; the reason is shown below.`},"settings.localToolsMcpPlatformHint":{message:`Tip: use a command on your PATH such as npx or uvx (e.g. npx -y {'@'}modelcontextprotocol/server-filesystem ~/Documents). On Windows, npx/node resolve automatically. If a server shows "spawn … ENOENT", set the command to a full path.`,description:`Cross-platform hint for configuring the MCP launch command.`},"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`},"settings.contactSupport":{message:`Contatar suporte`,description:`Section title on the About page listing the site owner's customer-service channels`},"settings.contactSupportTip":{message:`Fale com nossa equipe de suporte por qualquer um dos canais abaixo.`,description:`Subtitle under the support contacts section on the About page`},"settings.contactInvalidUrl":{message:`{field} deve ser um link http(s) válido`,description:`Validation error shown when a contact URL is not a valid http(s) link`},"settings.contactInvalidPhone":{message:`Insira um número de telefone válido`,description:`Validation error shown when the phone number is invalid`},"settings.contactInvalidEmail":{message:`Insira um endereço de e-mail válido`,description:`Validation error shown when the email address is invalid`},"settings.contactType":{message:`Tipo`,description:`Placeholder for the contact type picker in the editor`},"settings.contactType_phone":{message:`Telefone`,description:`Display name for the phone contact type`},"settings.contactType_email":{message:`E-mail`,description:`Display name for the email contact type`},"settings.contactType_website":{message:`Site`,description:`Display name for the website contact type`},"settings.contactType_wechat":{message:`WeChat`,description:`Display name for the WeChat contact type`},"settings.contactLabelPlaceholder":{message:`Rótulo (opcional), ex.: Vendas`,description:`Placeholder for the optional contact label input`},"settings.contactValuePlaceholder":{message:`Conta / texto exibido`,description:`Placeholder for the generic contact value input`},"settings.contactQr":{message:`QR code`,description:`Label for a contact's QR-code image`},"settings.contactQrTip":{message:`Envie um QR code que os usuários possam escanear.`,description:`Tip for the contact QR-code uploader`},"settings.contactAdd":{message:`Adicionar contato`,description:`Button to add another contact entry`},"settings.contactEditorHint":{message:`Escolha um tipo por canal e preencha ao menos um valor, link ou QR. Adicione quantos quiser.`,description:`Hint at the top of the contacts editor dialog`},"settings.contactInvalidType":{message:`O tipo só pode conter minúsculas, dígitos, '-' e '_'`,description:`Validation error for an invalid contact type slug`},"settings.contactRowNeedsValue":{message:`Cada contato precisa de ao menos um valor, link ou QR code`,description:`Validation error when a contact row has no value/url/qr`},"settings.contactInvalidValue":{message:`Um campo de contato é inválido ou muito longo`,description:`Validation error when a contact value/label is invalid or too long`},"settings.contactTooMany":{message:`Você pode adicionar no máximo {max} contatos`,description:`Validation error when too many contacts are added`},"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`},"settings.localToolsAndroidPermHint":{message:`Enable the accessibility service so the assistant can see and control your screen. You can pre-authorize individual actions below.`,description:`Hint for the Android Computer Use accessibility permission section in Settings.`},"settings.cuConsentTitle":{message:`Allow action?`,description:`Title of the on-demand consent dialog shown when the assistant requests a screen action.`},"settings.cuConsentMessage":{message:`The assistant wants to run "{action}" on your phone. Allow it?`,description:`Body of the on-demand consent dialog; {action} is the computer.* action name.`},"settings.cuConsentAllow":{message:`Allow once`,description:`Allow button of the on-demand consent dialog.`},"settings.cuConsentAlways":{message:`Always allow`,description:`Always-allow button of the on-demand consent dialog; persists a grant so this action never prompts again.`},"settings.cuConsentDeny":{message:`Deny`,description:`Deny button of the on-demand consent dialog.`},"settings.siteServices":{message:`Preço`},"settings.memoryEnabled":{message:`Use memory`,description:`Title for the switch that controls whether chats use saved memory and learn new memory`},"settings.memoryEnabledHint":{message:`When off, saved memories are not used and new chats do not create memories. Existing memories are kept.`,description:`Behavior explanation shown below the memory switch`},"nav.omni":{message:`Omni Video`,description:`Nav label for the Omni video module`},"settings.memoryImport":{message:`Import`,description:`Button that opens the memory import dialog`},"settings.memoryImportTitle":{message:`Import memory from another AI`,description:`Title of the memory import dialog`},"settings.memoryImportExportStep":{message:`1. Ask your current AI to export its memory`,description:`First step heading in the memory import dialog`},"settings.memoryImportPrompt":{message:`I'm moving to another AI service. List every saved memory and durable context you have learned about me. Put everything in one code block, with exactly one memory per line. Format each line as: [date saved, if available] - memory content. Include response preferences, personal details, projects, goals, tools, languages, frameworks, and corrections I have made. Preserve my words where possible. Do not include secrets or sensitive information.`,description:`Prompt users copy into another AI service to export memories`},"settings.memoryImportCopy":{message:`Copy prompt`,description:`Button that copies the memory export prompt`},"settings.memoryImportCopied":{message:`Prompt copied`,description:`Toast shown after copying the memory export prompt`},"settings.memoryImportPasteStep":{message:`2. Paste the exported memory`,description:`Second step heading in the memory import dialog`},"settings.memoryImportPlaceholder":{message:`Paste the memory text returned by ChatGPT, Claude, Gemini, or another AI…`,description:`Placeholder for pasted memory export text`},"settings.memoryImportSubmit":{message:`Add to memory`,description:`Button that submits pasted memories for import`},"settings.memoryImportSuccess":{message:`Imported {count} memory entries`,description:`Success toast after importing memory; count is the number of accepted entries`},"settings.memoryImportPartial":{message:`Processed {processed} entries; {rejected} unsafe or invalid entries were skipped.`,description:`Warning shown after a partial memory import`},"settings.memoryImportInvalid":{message:`No memory could be imported. Make sure memory is on and paste one plain fact per line.`,description:`Actionable error shown when the memory import request is invalid`}};export{e as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e={"button.setup":{message:`Inställningar`,description:`Text i knappen för att göra inställningar`},"button.start":{message:`Starta`,description:`Text i knappen för att påbörja vissa åtgärder`},"button.copy":{message:`Kopiera`,description:`Text i knappen för att kopiera något`},"button.copied":{message:`Kopierad`,description:`Text i knappen för att indikera att innehållet har kopierats`},"button.restart":{message:`Återställ`,description:`Text i knappen för att återställa något`},"button.preview":{message:`Förhandsgranska`,description:`Text i knappen för att öppna en förhandsvisning av en fil via URL`},"button.seeRawImage":{message:`Visa originalbild`,description:`Text i knappen för att visa den ursprungliga bilden`},"button.seeRawVideo":{message:`Visa video`,description:`Text i knappen för att visa den ursprungliga videon`},"button.edit":{message:`Redigera`,description:`Text i knappen för att redigera innehåll`},"button.login":{message:`Logga in`,description:`Text i knappen för att logga in`},"button.logout":{message:`Logga ut`,description:`Text i knappen för att logga ut`},"button.new":{message:`Ny`,description:`Text i knappen för att skapa ett nytt objekt`},"button.delete":{message:`Ta bort`,description:`Text i knappen för att ta bort innehåll`},"button.deletePermanently":{message:`Radera kontot permanent`,description:`Final red delete button at the bottom of the delete confirmation dialog`},"button.confirm":{message:`Bekräfta`,description:`Text i knappen för att bekräfta en åtgärd`},"button.cancel":{message:`Avbryt`,description:`Text i knappen för att avbryta en åtgärd`},"button.close":{message:`Stäng`,description:`Text i knappen för att stänga en dialogruta eller panel`},"button.expand":{message:`Expandera`,description:`Knappens text som används för att öppna en fullskärmsredigerare för inmatning av tips.`},"button.alert":{message:`Varning`,description:`Text i knappen för att utfärda en varning`},"button.info":{message:`Information`,description:`Text i knappen för att visa information`},"button.publish":{message:`Publicera`,description:`Text i knappen för att publicera innehåll`},"button.watch":{message:`Titta`,description:`Text i knappen för att titta på något`},"button.verify":{message:`Verifiera identitet`,description:`Text i knappen för att låta användaren verifiera sin identitet`},"button.profile":{message:`Profil`,description:`Text i knappen för att visa användarens profil`},"button.console":{message:`Konsol`,description:`Text i knappen för att visa konsolsidan för att kontrollera något på webbsidan`},"button.learn":{message:`Lär dig`,description:`Text i knappen för att låta användaren lära sig något`},"button.buy":{message:`Köp`,description:`Text i knappen för att låta användaren köpa något`},"button.try":{message:`Prova`,description:`Text i knappen för att låta användaren prova något`},"button.startForFree":{message:`Börja gratis`,description:`Text i knappen för att låta användaren börja gratis`},"button.download":{message:`Ladda ner`,description:`Text i knappen för att ladda ner filer (som ljud, video, bilder)`},"button.downloadAndroid":{message:`Ladda ner Android`,description:`Text i knappen för att ladda ner Android-installationspaketet`},"button.downloadIos":{message:`Ladda ner iOS-installationspaket`,description:`Text i knappen för att ladda ner iOS-installationspaketet`},"button.downloadWindows":{message:`Ladda ner för Windows`,description:`Text in button for downloading the Windows desktop installer`},"button.downloadMac":{message:`Ladda ner för macOS`,description:`Text in button for downloading the macOS desktop installer`},"button.installIos":{message:`Installera iOS`,description:`Text i knappen för att installera iOS-appen`},"button.apply":{message:`Ansök`,description:`Text i knappen för att låta användaren ansöka om API-tjänst`},"button.refresh":{message:`Uppdatera`,description:`Text i knappen för att uppdatera sidan`},"button.pay":{message:`Betala`,description:`Text i knappen för att låta användaren betala för tjänster`},"button.repay":{message:`Fortsätt betala`,description:`Text i knappen för att låta användaren fortsätta betala för tjänster`},"button.applied":{message:`Ansökt`,description:`Text i knappen för att visa att användaren har ansökt om tjänsten`},"button.acquire":{message:`Få`,description:`Text i knappen för att låta användaren få API-tjänstens token eller nyckel`},"button.fillExample":{message:`Fyll i exempel`,description:`Text i knappen för att låta användaren fylla i exempeldata`},"button.buyMore":{message:`Toppa upp`,description:`Text i knappen för att låta användaren toppa upp. Engelsk översättning måste vara 'Top Up', svensk översättning är 'Toppa upp'.`},"button.update":{message:`Uppdatera`,description:`Text i knappen för att uppdatera innehåll`},"button.view":{message:`Visa`,description:`Text i knappen för att visa något`},"button.create":{message:`Skapa`,description:`Text i knappen för att skapa något`},"button.referralEarnings":{message:`Rekommenderade intäkter`,description:`Text i knappen som visar rekommenderade intäkter, vilket innebär att användaren kan tjäna pengar genom att bjuda in andra att använda tjänsten.`},"button.finish":{message:`Färdig`,description:`Text i knappen för att slutföra en åtgärd`},"entity.id":{message:`ID`,description:`Visar den unika identifieraren för en enhet`},"entity.type":{message:`Typ`,description:`Visar typen av enhet`},"entity.website":{message:`Ace Data Cloud`,description:`Webbplatsens namn, ingen översättning behövs, behåll som 'Ace Data Cloud'`},"entity.copyright":{message:`Upphovsrätt`,description:`Text som visar upphovsrätt`},"entity.platform":{message:`Plattform`,description:`Text som indikerar att detta är en API-tjänstplattform`},"entity.title":{message:`Titel`,description:`Titeln på enheten`},"entity.icon":{message:`Ikon`,description:`Ikonen för enheten`},"entity.status":{message:`Status`,description:`Status för enheten`},"status.loading":{message:`Laddar...`,description:`Statusmeddelande som visas när innehållet laddas`},"error.appleSignInFailed":{message:`Det gick inte att logga in med Apple. Försök igen eller använd en annan inloggningsmetod.`,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:`Åtgärd`,description:`Åtgärden för enheten`},"entity.description":{message:`Beskrivning`,description:`Beskrivningen av enheten`},"entity.createdAt":{message:`Skapad`,description:`Tiden då enheten skapades`},"entity.updatedAt":{message:`Uppdaterad`,description:`Tiden då enheten uppdaterades`},"entity.order":{message:`Beställning`,description:`Beställningen för enheten, som innehåller pengar och tjänsteinformation som användaren behöver betala för`},"message.noTasks":{message:`Inga historiska uppgifter, börja en ny uppgift~`,description:`Meddelande när det inte finns några uppgifter`},"message.guestTasks":{message:`Logga in för att starta en uppgift och se dina skapelser här.`,description:`Prompt shown in the task list area for not-logged-in guests`},"message.usedAmount":{message:`Använt belopp`,description:`Visar det belopp som har använts för tjänsten`},"message.mobileAppDescription":{message:`Använd AceData direkt på mobilen, för närvarande tillgänglig för nedladdning av Android APK, iOS-installationspaket kommer att göras tillgängligt efter signering.`,description:`Beskrivning på nedladdningssidan för mobilapplikationen`},"message.mobileAndroidHint":{message:`För Android-telefoner och surfplattor, skanna för att ladda ner den senaste APK.`,description:`Beskrivning på Android-nedladdningskortet`},"message.mobileAndroidPending":{message:`Android-installationspaketet är inte klart än, försök igen senare.`,description:`Meddelande när Android-installationspaketet inte är tillgängligt`},"message.mobileAvailableNow":{message:`Android är tillgänglig för nedladdning`,description:`Visar att Android nu kan laddas ner`},"message.mobileSecureDelivery":{message:`Säker CDN-distribution`,description:`Betonar att nedladdningslänken levereras via CDN`},"message.mobileDirectInstall":{message:`Direkt APK-installation`,description:`Beskriver att Android-installationen är en direkt APK-installation`},"message.mobileLatestRelease":{message:`Aktuell offentlig version`,description:`Visar att den aktuella versionen är den senaste offentliga versionen`},"message.mobileSharedAccount":{message:`Dela konto och kvot med webbversionen`,description:`Förklarar att mobilversionen delar konto med webbversionen`},"message.mobileIosHint":{message:`För iPhone och iPad, kan installeras direkt online; om systemet blockerar kan du först ladda ner IPA och sedan distribuera.`,description:`Beskrivning på iOS-nedladdningskortet`},"message.mobileIosPending":{message:`iOS-installationspaketet är inte tillgängligt för nedladdning än, kommer att göras tillgängligt efter att Apple-certifikat och beskrivningsfil är klara.`,description:`Meddelande när iOS-installationspaketet inte är tillgängligt`},"message.mobileComingSoon":{message:`Kommer snart`,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:`För Windows 10 och senare (64-bitars). Ladda ner installationsprogrammet och dubbelklicka för att installera.`,description:`Windows desktop download card description`},"message.desktopMacHint":{message:`För macOS 11 och senare. Välj versionen som passar din Mac — Apple Silicon (M-serien) eller Intel.`,description:`macOS desktop download card description`},"message.desktopUnsignedNote":{message:`Skrivbordsapparna är osignerade beta-versioner. I Windows väljer du ”Mer information → Kör ändå” vid SmartScreen-meddelandet; i macOS högerklickar du på appen och väljer ”Öppna” för att kringgå Gatekeeper.`,description:`Note explaining the desktop builds are unsigned betas and how to open them`},"button.getOnGooglePlay":{message:`Hämta på 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:`Ingen åtkomst till Google Play? Ladda ner APK-filen direkt.`,description:`Shown next to a secondary button offering a direct APK download for users who cannot access Google Play`},"message.mobilePlayStoreHint":{message:`Skanna för att öppna 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:`Vid första installationen av företags- eller Ad Hoc-paket på iOS kan systemet kräva att du först litar på certifikatet i 'Inställningar > Allmänt > VPN och enhetsadministration'.`,description:`Meddelande om installation av mobilapplikation`},"title.mobileApp":{message:`Nedladdning för mobil`,description:`Titel på nedladdningssidan för mobilapplikationen`},"title.mobileFastAccess":{message:`Snabbare åtkomst, ingen appbutik`,description:`Titel på fördelar på nedladdningssidan, betonar snabb installation`},"title.mobileTrustedRelease":{message:`Versioner centralt hanterade, stabil distribution`,description:`Titel på fördelar på nedladdningssidan, betonar stabilitet i versioner och distribution`},"title.mobileUnifiedExperience":{message:`Mobil och webbupplevelse är enhetlig`,description:`Titel på fördelar på nedladdningssidan, betonar enhetlig upplevelse`},"nav.mobileApp":{message:`Mobil`,description:`Nedladdningslänk för mobilapplikation i navigeringen`},"message.mobileFastAccess":{message:`Användare kan skanna för att installera direkt på mobilen, eller ladda ner APK på skrivbordet och sedan distribuera till teammedlemmar, lämpligt för snabba tester och intern testning.`,description:`Fördelar på nedladdningssidan, betonar snabb åtkomst`},"message.mobileTrustedRelease":{message:`Nedladdningslänkar är centralt placerade på samma sida, versionsnummer, plattformsstatus och installationsmetod är tydliga, vilket minskar kommunikationskostnader på grund av spridd information.`,description:`Fördelar på nedladdningssidan, betonar enhetlig distribution`},"message.mobileUnifiedExperience":{message:`Kontosystem, kvoter och tjänsteingångar efter inloggning är enhetliga med webbversionen, vilket gör det enkelt för användare att växla mellan skrivbord och mobil.`,description:`Fördelar på nedladdningssidan, betonar enhetlig kontoupplevelse`},"message.remainingAmount":{message:`Återstående belopp`,description:`Visar det återstående beloppet för tjänsten`},"message.copied":{message:`Kopierad`,description:`Visar meddelande om att innehållet har kopierats framgångsrikt`},"message.restart":{message:`Återgenerera`,description:`Används för att visa meddelande om att innehållet har kopierats framgångsrikt`},"message.confirmDelete":{message:`Är du säker på att du vill ta bort?`,description:`Bekräfta meddelande för att användaren ska ta bort något innehåll`},"message.expiredAt":{message:`Utgångstid`,description:`Används för att visa tjänstens utgångstid`},"message.alert":{message:`Varning`,description:`Meddelande för att varna användaren`},"message.deleteAccountConfirm":{message:`Detta raderar permanent ditt konto och all tillhörande data. Åtgärden kan inte ångras. Är du säker på att du vill fortsätta?`,description:`Confirmation message shown before permanently deleting the user account`},"message.deleteAccountSuccess":{message:`Ditt konto har raderats.`,description:`Message shown after the user account is successfully deleted`},"message.deleteAccountFailed":{message:`Det gick inte att radera ditt konto. Försök igen senare.`,description:`Message shown when account deletion fails`},"message.deleteAccountWarning":{message:`Den här åtgärden kan inte ångras! Ditt konto och all dess data raderas permanent och kan inte återställas.`,description:`Red warning banner at the top of the delete confirmation dialog`},"message.deleteAccountConsequences":{message:`Raderas permanent: profil, saldo och krediter, applikationer och prenumerationer, API-nycklar och tredjeparts inloggningskopplingar.`,description:`Explains what data will be removed in the delete confirmation dialog`},"message.deleteAccountTypePrompt":{message:`Skriv ditt användarnamn för att bekräfta raderingen:`,description:`Instructs the user to type their username to confirm; the username is shown separately below`},"message.deleteAccountPlaceholder":{message:`Ange ditt användarnamn här`,description:`Placeholder for the username confirmation input`},"message.info":{message:`Information`,description:`Meddelande för att visa information`},"message.free":{message:`Gratis`,description:`Meddelande som visar att tjänsten är gratis, vilket innebär att användaren inte behöver betala`},"message.startPrice":{message:`Startpris`,description:`Meddelande som visar tjänstens lägsta pris`},"message.joinDiscord":{message:`Gå med i Discord`,description:`Meddelande för att låta användaren gå med i Discord-kanalen`},"message.addWeChat":{message:`Lägg till WeChat`,description:`Meddelande för att låta användaren lägga till WeChat-konto`},"message.serviceTech":{message:`Teknisk support`,description:`Meddelande för att visa teknisk support`},"message.businessCooperation":{message:`Data & Affärssamarbete`,description:`Meddelande för att visa affärssamarbete`},"message.noData":{message:`Inga data`,description:`Meddelande för att visa att det inte finns några data i tabellen eller listan`},"nav.home":{message:`Hem`,description:`Text i webbplatsens navigeringsfält för att visa hemsidan`},"nav.content":{message:`Innehåll`,description:`Text i webbplatsens navigeringsfält för att visa innehållssidan`},"nav.category":{message:`Kategori`,description:`Text i webbplatsens navigeringsfält för att visa kategorisidan`},"nav.service":{message:`Alla tjänster`,description:`Text i webbplatsens navigeringsfält för att visa tjänstersidan`},"nav.profile":{message:`Min profil`,description:`Text i webbplatsens navigeringsfält för att visa profilsidan`},"nav.products":{message:`Produkter`,description:`Text i webbplatsens navigeringsfält för att visa produktsidan`},"nav.referral":{message:`Intäktsallians`,description:`Text i webbplatsens navigeringsfält för att visa rekommendationssidan`},"nav.apiPlatform":{message:`API Plattform`,description:`Text i webbplatsens navigeringsfält för att visa API-plattformssidan`},"nav.document":{message:`Utvecklingsdokumentation`,description:`Text i webbplatsens navigeringsfält för att visa dokumentationssidan`},"nav.console":{message:`Konsol`,description:`Text i webbplatsens navigeringsfält för att visa konsolsidan`},"nav.chatgpt":{message:`ChatGPT`,description:`Text i webbplatsens navigeringsfält för att visa ChatGPT-sidan, vänligen översätt inte detta fält, det måste förbli 'ChatGPT'`},"nav.deepseek":{message:`DeepSeek`,description:`Text i webbplatsens navigeringsfält för att visa DeepSeek-sidan, vänligen översätt inte detta fält, det måste förbli 'DeepSeek'`},"nav.grok":{message:`Grok`,description:`Text i webbplatsens navigeringsfält för att visa Grok-sidan, vänligen översätt inte detta fält, det måste förbli 'Grok'`},"nav.chat":{message:`Chat`,description:`Text i webbplatsens navigeringsfält för att visa chatt-sidan, vänligen översätt inte detta fält, det måste förbli 'Chat'`},"nav.veo":{message:`Veo`,description:`Text i webbplatsens navigeringsfält för att visa chatt-sidan, vänligen översätt inte detta fält, det måste förbli 'Veo'`},"nav.sora":{message:`Sora`,description:`Text i webbplatsens navigeringsfält för att visa chatt-sidan, vänligen översätt inte detta fält, det måste förbli 'Sora'`},"nav.midjourney":{message:`Midjourney`,description:`Text i webbplatsens navigeringsfält för att visa Midjourney-sidan, vänligen översätt inte detta fält, det måste förbli 'Midjourney'`},"nav.qrart":{message:`QRArt`,description:`Text i webbplatsens navigeringsfält för att visa QRArt-sidan, vänligen översätt inte detta fält, det måste förbli 'QRArt'`},"nav.suno":{message:`Suno`,description:`Text i webbplatsens navigeringsfält för att visa Suno-sidan, vänligen översätt inte detta fält, det måste förbli 'Suno'`},"nav.pixverse":{message:`Pixverse`,description:`Text i webbplatsens navigeringsfält för att visa Pixverse-sidan, vänligen översätt inte detta fält, det måste förbli 'Pixverse'`},"nav.flux":{message:`Flux`,description:`Text i webbplatsens navigeringsfält för att visa Flux-sidan, vänligen översätt inte detta fält, det måste förbli 'Flux'`},"nav.nanobanana":{message:`Nano Banana`,description:`Text i webbplatsens navigeringsfält för att visa Nano Banana-sidan, vänligen översätt inte detta fält, det måste förbli 'Nano Banana'`},"nav.openaiimage":{message:`OpenAI Bild`,description:`Text i webbplatsens navigeringsfält för att visa OpenAI Bild-sidan, vänligen översätt inte detta fält, det måste förbli 'OpenAI Image'`},"nav.seedream":{message:`SeeDream`,description:`Text in the website navigation bar to display the SeeDream page, do not translate this field, must remain as 'SeeDream'`},"nav.seedance":{message:`SeeDance`,description:`Text in the website navigation bar for displaying the SeeDance page, must remain '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:`Text in the website navigation bar for displaying the Luma page, must remain 'Luma'`},"nav.pika":{message:`Pika`,description:`Text in the website navigation bar for displaying the Pika page, must remain 'Pika'`},"nav.kling":{message:`Kling`,description:`Text in the website navigation bar for displaying the Kling page, must remain 'Kling'`},"nav.hailuo":{message:`Hailuo`,description:`Text in the website navigation bar for displaying the Hailuo page, must remain 'Hailuo'`},"nav.wan":{message:`Wan`,description:`Text in the website navigation bar for displaying the Wan page, must remain 'Wan'`},"nav.producer":{message:`Producer`,description:`Text in the website navigation bar for displaying the Producer page, must remain 'Producer'`},"nav.fish":{message:`Fish Audio`,description:`Text i navigationsfältet på webbplatsen som används för att visa Fish Audio-sidan, vänligen översätt inte detta fält, det måste förbli 'Fish Audio'`},"nav.kimi":{message:`Kimi`,description:`Text in the website navigation bar for displaying the Kimi page, must remain 'Kimi'`},"nav.serp":{message:`SERP`,description:`Text in the website navigation bar for displaying the SERP page, must remain '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:`Bild`,description:`Text in the website navigation bar for displaying the image page`},"nav.music":{message:`Musik`,description:`Text in the website navigation bar for displaying the music page`},"nav.video":{message:`Video`,description:`Text in the website navigation bar for displaying the video page`},"nav.distribution":{message:`Rekommenderad inkomst`,description:`Text in the website navigation bar for displaying the recommended income page`},"nav.connections":{message:`Anslutningar`,description:`Menu item to navigate to the connection management page at auth.acedata.cloud`},"nav.logOut":{message:`Logga ut`,description:`Text in the website navigation bar for logging out`},"nav.deleteAccount":{message:`Radera konto`,description:`Menu item to permanently delete the current user account`},"nav.site":{message:`Webbplatsinställningar`,description:`Text in the website navigation bar for displaying the site configuration page`},"nav.subsite":{message:`Mina undersidor`,description:`Sidebar entry for 'My Subsite', displayed only when features.subsite is enabled`},"nav.setting":{message:`Inställningar`,description:`Text in the website navigation bar for displaying the settings page`},"nav.headshots":{message:`AI ID-foto`,description:`Text in the website navigation bar for displaying the site configuration page`},"nav.more":{message:`Mer`,description:`Text in the website navigation bar for expanding more services`},"nav.locale":{message:`Språkinställningar`,description:`Text in the website navigation bar for changing the language`},"nav.support":{message:`Kundsupport`,description:`Text in the website navigation bar for displaying the contact page`},"nav.darkMode":{message:`Mörkt läge`,description:`Text in the website navigation bar for switching to dark theme`},"title.alert":{message:`Varning`,description:`Title for warning messages`},"title.placeholderOfSelect":{message:`Vänligen välj`,description:`Placeholder for select input`},"title.placeholderOfInput":{message:`Vänligen fyll i`,description:`Placeholder for input`},"title.allApplications":{message:`Alla ansökningar`,description:`Page title for displaying all applications`},"title.allOrders":{message:`Alla beställningar`,description:`Page title for displaying all orders`},"title.orderInfo":{message:`Beställningsinformation`,description:`Page title for displaying order information`},"title.buyMore":{message:`Top Up`,description:`Page title for recharging. Must be translated to 'Top Up'.`},"title.distribution":{message:`Rekommenderad inkomst`,description:`Page title for displaying recommended income, meaning users can earn by inviting others to use the service`},"title.site":{message:`Webbplatsinställningar`,description:`Page title for displaying site configuration`},"title.distributionHistory":{message:`Rekommendationshistorik`,description:`Page title for displaying recommendation history`},"title.invitee":{message:`Inbjuden`,description:`Page title for displaying the inviter`},"title.allUsages":{message:`Användningshistorik`,description:`Page title for displaying all usages of the API service`},"title.allCredentials":{message:`Nycklar`,description:`Page title for displaying all credentials used to access the API`},"about.title1":{message:`Kontakta oss`,description:`Delens rubrik som visar kontaktinformation`},"about.title2":{message:`Resurser`,description:`Visar delrubrik för länkar`},"about.title3":{message:`Länkar`,description:`Visar delrubrik för supportinformation`},"about.address":{message:`131 Continental Dr, Suite 305, Newark, Delaware 19713, USA`,description:`Företagets adress`},"about.email":{message:`office{'@'}acedata.cloud`,description:`Företagets e-post`},"about.link1":{message:`Tjänster`,description:`Länk till dokumentationssidan`},"about.link2":{message:`Utvecklardokumentation`,description:`Länk till tjänstesidan`},"about.link3":{message:`Konsol`,description:`Länk till konsolsidan`},"about.link4":{message:`Profil`,description:`Länk till profilsidan`},"about.link5":{message:`UI-plattform`,description:`Länk till centralsidan`},"about.link6":{message:`Rekommenderade intäkter`,description:`Länk till sidan för rekommenderade intäkter`},"about.link7":{message:`Support`,description:`Länk till supportsidan`},"about.link8":{message:`Användarvillkor`,description:`Länk till sidan för användarvillkor`},"about.link9":{message:`Integritetspolicy`,description:`Länk till sidan för integritetspolicy`},"theme.light":{message:`Ljust tema`,description:`Namn på det ljusa temat`},"theme.dark":{message:`Mörkt tema`,description:`Namn på det mörka temat`},"theme.system":{message:`System`,description:`Namn på systemtemat, indikerar automatisk växling av tema baserat på systeminställningar`},"settings.general":{message:`Allmänna inställningar`,description:`Rubrik för allmänna inställningar på inställningssidan`},"settings.language":{message:`Språk`,description:`Rubrik för språkinställningar på inställningssidan`},"settings.theme":{message:`Tema`,description:`Rubrik för tema-inställningar på inställningssidan`},"settings.sendShortcut":{message:`Skicka meddelande`,description:`Title of the send-message shortcut row in General settings: choose Enter or modifier+Enter to send.`},"sendShortcut.enter":{message:`Skicka med Enter`,description:`Send-shortcut option: press Enter to send the message.`},"sendShortcut.modEnter":{message:`Skicka med {key} + Enter`,description:`Send-shortcut option: press the platform modifier (⌘ or Ctrl) plus Enter to send. {key} is the modifier symbol.`},"settings.loginMode":{message:`Inloggningsläge`,description:`Login-mode row title in general settings`},"loginMode.iframe":{message:`Inbäddad popup`,description:`Login mode option: embedded iframe popup`},"loginMode.redirect":{message:`Helsidesomdirigering`,description:`Login mode option: full-page redirect`},"settings.seo":{message:`SEO-inställningar`,description:`Rubrik för SEO-inställningar på inställningssidan`},"settings.site":{message:`Webbplatsinställningar`,description:`Rubrik för webbplatsinställningar på inställningssidan`},"settings.distribution":{message:`Distribueringsinställningar`,description:`Rubrik för distribueringsinställningar på inställningssidan`},"settings.function":{message:`Funktioner`,description:`Title for the site capabilities section in the settings page`},"settings.auth":{message:`Autentisering`,description:`Inställningssidans sidofältets fliktitel för 'Inloggningsmetod' — konfigurerar de inloggningsmetoder som tillåts på denna webbplats samt standardinloggningsmetod, endast synlig för webbplatsadministratörer.`},"settings.apiKey":{message:`API-nyckel`,description:`API-nyckel etikett i sidofältet på inställningssidan - hantering av API-nycklar från uppströmsleverantörer (BYOK)`},"settings.memory":{message:`Minne`,description:`Inställning för sidofältet i popup-fönstret med etiketten 'Minne', där användaren kan se och hantera information som assistenten har kommit ihåg om sig själv.`},"settings.memoryIntro":{message:`Assistenten kommer att komma ihåg användbar information som du nämner i konversationer för att ge mer personliga svar i olika samtal. Du har full kontroll - du kan se det sparade innehållet och ta bort det du inte vill att den ska komma ihåg.`,description:`Introduktionstexten högst upp på minnesinställningssidan.`},"settings.memoryNeedsChat":{message:`Vänligen starta en konversation för att aktivera minnesfunktionen.`,description:`Visas på minnesinställningssidan när chattapplikationen/token ännu inte har laddats.`},"settings.memoryStored":{message:`Sparade minnen`,description:`Rubriken ovanför listan med sparade minnesposter.`},"settings.memoryEmpty":{message:`Inga sparade minnen än. Med tiden kommer assistenten att komma ihåg dina bestående preferenser och information här.`,description:`Visas när användaren inte har några sparade minnen.`},"settings.memoryForget":{message:`Glöm`,description:`Knappen för att ta bort en specifik minnespost på raden för minnesposten.`},"settings.memoryClearAll":{message:`Rensa allt`,description:`En knapp för att permanent ta bort all sparad information på en gång.`},"settings.memoryClearConfirm":{message:`Detta kommer permanent att ta bort all information som assistenten har kommit ihåg om dig och kan inte ångras.`,description:`Bekräftelseinnehållet innan all minnesinformation rensas.`},"settings.memoryError":{message:`Åtgärden misslyckades, försök igen.`,description:`Felmeddelande som visas när radering/rensning av minne misslyckas.`},"field.operations":{message:`Åtgärder`,description:`Allmän kolumnrubrik: kolumn för åtgärdsknappar i tabellrader (redigera, ta bort etc.)`},"nav.gemini":{message:`Gemini`,description:`Text i webbplatsens navigeringsfält för att visa Gemini-sidan, måste förbli som 'Gemini'`},"nav.claude":{message:`Claude`,description:`Text i webbplatsens navigeringsfält för att visa Claude-sidan, måste förbli som 'Claude'`},"button.detail":{message:`Visa detaljer`,description:``},"button.testEnv":{message:`Testmiljö`,description:`Text i knappen för att växla till testmiljö`},"button.upload":{message:`Ladda upp`,description:`Text i knappen för att ladda upp filer eller innehåll`},"message.cnbeian":{message:`Kina-regionens registrering`,description:`Information om registrering i Kina-regionen`},"message.copyFailed":{message:`Kopiering misslyckades`,description:`Meddelande om att innehållet inte kunde kopieras`},"nav.tryNow":{message:`Prova nu`,description:`Text i webbplatsens navigeringsfält för att låta användare prova tjänsten`},"title.coin":{message:`Kryptovaluta`,description:`Visar sidrubrik för kryptovaluta`},"title.distributionRank":{message:`Rekommendationsrankning`,description:`Visar sidrubrik för rekommendationsrankning`},"title.distributionPlatformRank":{message:`Plattformsrankning`,description:`Visar sidrubrik för plattformsrankning`},"customers.name1":{message:`Mark Du`,description:`Kundens namn`},"customers.job1":{message:`Programvaruingenjör`,description:`Kundens yrke`},"customers.comment1":{message:`Ace Data Cloud har gett vårt team utmärkt service och hjälpt oss att öka produktiviteten. Mycket nöjd!`,description:`Kundens omdöme`},"customers.name2":{message:`Jacob Williams`,description:`Kundens namn`},"customers.job2":{message:`Produktchef`,description:`Kundens yrke`},"customers.comment2":{message:`Ace Data Cloud är en fantastisk integrationsplattform med utmärkt servicekvalitet.`,description:`Kundens omdöme`},"customers.name3":{message:`Larry Henry`,description:`Kundens namn`},"customers.job3":{message:`Designer`,description:`Kundens yrke`},"customers.comment3":{message:`Jag älskar Ace Data Clouds tjänster, de är användarvänliga och prisvärda. Hoppas de blir ännu bättre!`,description:`Kundens omdöme`},"nav.github":{message:`GitHub`,description:`Länk till GitHub-repo`},"settings.github":{message:`Källkod`,description:`Länk för att se källkoden på GitHub`},"settings.about":{message:`Om`,description:`Inställningssidans om-sektionens rubrik`},"settings.localTools":{message:`Lokala verktyg`,description:`Desktop-only settings tab for managing local tool folders, permissions and grants.`},"settings.localToolsDesktopOnly":{message:`Endast tillgängligt i skrivbordsappen.`,description:`Shown when the Local Tools tab is opened on web/mobile.`},"settings.localToolsFoldersTitle":{message:`Auktoriserade mappar`,description:`Heading for the list of folders the AI may read/write locally.`},"settings.localToolsFoldersHint":{message:`Mappar som AI:n får läsa och skriva på den här datorn. Verktygen körs lokalt; ingenting lämnar din enhet utan ditt samtycke.`,description:`Help text under the authorized-folders heading.`},"settings.localToolsComputerUseTitle":{message:`Computer Use (experimental)`,description:`Heading for the opt-in Computer Use (screen + mouse/keyboard control) toggle.`},"settings.localToolsComputerUseHint":{message:`Let the AI see your screen and control the mouse and keyboard on this computer. Off by default — turn it on only when you need it. On macOS, grant Screen Recording and Accessibility permissions below. Each action still asks for your confirmation.`,description:`Help text under the Computer Use toggle.`},"settings.localToolsAndroidSkillsTitle":{message:`Telefonautomationsfärdigheter`,description:`Rubrik för Android-endast sektionen som installerar färdigheter som styr appar på telefonen via datoranvändning.`},"settings.localToolsAndroidSkillsHint":{message:`Installera färdigheter som gör att assistenten kan styra inhemska appar. De körs via "datoranvändning", vänligen ge tillgång till tillgänglighetsbehörigheter ovan och aktivera datoranvändning. Varje åtgärd följer fortfarande dina inställningar för bekräftelse av datoranvändning.`,description:`Hjälptext under rubriken för telefonautomationsfärdigheter.`},"settings.localToolsAndroidSkillsXhsName":{message:`Xiaohongshu meddelande automatisk svar`,description:`Visningsnamn för Xiaohongshu (RED) direktmeddelande automatisk svar färdigheten.`},"settings.localToolsAndroidSkillsXhsDesc":{message:`Läsa nya meddelanden i Xiaohongshu-appen och utarbeta svar, du kommer att bekräfta innan det skickas.`,description:`En rad beskrivning av Xiaohongshu DM-färdigheten.`},"settings.localToolsAndroidSkillsInstall":{message:`Installera`,description:`Knapp som installerar färdigheten i användarens konto.`},"settings.localToolsAndroidSkillsInstalled":{message:`Installerad`,description:`Tagg som visas när färdigheten redan är installerad.`},"settings.localToolsAndroidSkillsLoading":{message:`Laddar tillgängliga färdigheter…`,description:`Platshållare medan färdighetskatalogen hämtas.`},"settings.localToolsAndroidSkillsUnavailable":{message:`Inga telefonfärdigheter tillgängliga för installation.`,description:`Tomt tillstånd när ingen installabel telefonfärdighet hittas.`},"settings.localToolsAndroidSkillsNeedComputerUse":{message:`Vänligen ge tillgång till tillgänglighetsbehörigheter och aktivera datoranvändning ovan innan installation.`,description:`Hint som visas när installationsknappen är inaktiverad på grund av saknade förutsättningar.`},"settings.localToolsAndroidSkillsNextTurn":{message:`Installerad, kommer att träda i kraft vid ditt nästa samtal.`,description:`Bekräftelse som visas efter en lyckad installation.`},"settings.localToolsAndroidSkillsInstallFailed":{message:`Installationen misslyckades, vänligen försök igen.`,description:`Felmeddelande som visas när installationsförfrågan misslyckas.`},"settings.localToolsAndroidSkillsLoadFailed":{message:`Misslyckades med att ladda tillgängliga färdigheter, vänligen försök igen.`,description:`Felmeddelande som visas när hämtningen av färdighetskatalogen misslyckas.`},"settings.localToolsPreauthorizeAll":`Förgodkänn alla datoråtgärder`,"settings.localToolsPreauthorizeHint":`Tillåt på en gång skärmbild, klick, skrivning, tangenter och alla åtgärder och begär nödvändiga systembehörigheter.`,"settings.localToolsCuA11yLabel":{message:`Tillgänglighetstjänster`,description:`Etikett för tillgänglighetsstatusraden för Computer Use, som indikerar om tillgänglighetstjänsterna verkligen är aktiva.`},"settings.localToolsCuReady":{message:`Redo, tillgänglig`,description:`Grön status som visas när tillgänglighetstjänsterna är aktiva och Computer Use verkligen är tillgänglig.`},"settings.localToolsCuA11yMissing":{message:`Inte aktiverad, Computer Use är för tillfället inte tillgänglig`,description:`Röd varning som visas när strömbrytaren är påslagen men tillgänglighetstjänsterna inte är aktiva.`},"settings.localToolsCuActionsTitle":`Tillåt enskilda åtgärder`,"settings.localToolsCuActionsHint":`Aktivera bara de åtgärder du är bekväm med att låta AI:n utföra utan att fråga varje gång. Var och en kan återkallas här.`,"settings.localToolsCuScreenshot":`Skärmbild`,"settings.localToolsCuClick":`Klick`,"settings.localToolsCuMove":`Flytta pekaren`,"settings.localToolsCuType":`Skriv text`,"settings.localToolsCuKey":`Tryck på tangenter`,"settings.localToolsCuScroll":`Rulla`,"settings.localToolsBuiltinTitle":`Inbyggda verktyg`,"settings.localToolsBuiltinHint":`Aktivera ett verktyg så att AI:n kör det utan att fråga varje gång. Shell kan köra vilket kommando som helst på den här datorn — aktivera bara om du litar på det. Filverktyg begränsas till dina godkända mappar.`,"settings.localToolsBuiltinRisky":`Full åtkomst`,"settings.localToolsAddFolder":{message:`Lägg till mapp`,description:`Button to pick a folder to authorize.`},"settings.localToolsRemove":{message:`Ta bort`,description:`Button to remove an authorized folder.`},"settings.localToolsNoFolders":{message:`Inga auktoriserade mappar ännu.`,description:`Empty state for the authorized-folders list.`},"settings.localToolsSave":{message:`Spara`,description:`Save the authorized folders.`},"settings.localToolsMcpTitle":{message:`MCP servers`,description:`Section title for local MCP server configuration in Local Tools settings.`},"settings.localToolsMcpHint":{message:`Connect local MCP servers over stdio. Their tools become available to the AI, gated by the same per-call confirmation. Changes take effect immediately.`,description:`Explains what local MCP servers do and that changes apply without a restart.`},"settings.localToolsMcpAdd":{message:`Add server`,description:`Button to add a new local MCP server row.`},"settings.localToolsMcpName":{message:`Name`,description:`Label for the MCP server name/id field.`},"settings.localToolsMcpCommand":{message:`Command`,description:`Label for the MCP server launch command field.`},"settings.localToolsMcpArgs":{message:`Arguments`,description:`Label for the MCP server command arguments field.`},"settings.localToolsMcpArgsHint":{message:`One argument per line.`,description:`Placeholder/hint for the MCP arguments textarea.`},"settings.localToolsMcpEnv":{message:`Environment`,description:`Label for the MCP server environment variables field.`},"settings.localToolsMcpEnvHint":{message:`One KEY=VALUE per line.`,description:`Placeholder/hint for the MCP environment variables textarea.`},"settings.localToolsMcpNoServers":{message:`No MCP servers configured.`,description:`Empty state shown when no MCP servers are configured.`},"settings.localToolsMcpNamePlaceholder":{message:`e.g. filesystem`,description:`Placeholder for the MCP server name input.`},"settings.localToolsMcpCommandPlaceholder":{message:`e.g. npx`,description:`Placeholder for the MCP server command input.`},"settings.localToolsMcpNameRequired":{message:`Each server needs a name and a command.`,description:`Validation error when a server row is missing a name or command.`},"settings.localToolsMcpDuplicateName":{message:`Server names must be unique.`,description:`Validation error when two servers share the same name.`},"settings.localToolsMcpNameInvalid":{message:`Name may only contain letters, numbers, hyphens and underscores.`,description:`Validation error when a server name contains invalid characters.`},"settings.localToolsMcpEnabled":{message:`On`,description:`Toggle label to enable/disable a local MCP server.`},"settings.localToolsMcpReconnect":{message:`Test / Reconnect`,description:`Button to re-spawn one MCP server and refresh its status.`},"settings.localToolsMcpConnecting":{message:`Connecting…`,description:`Badge while an MCP server is being (re)connected.`},"settings.localToolsMcpNotSaved":{message:`Not saved yet`,description:`Badge for an MCP server row that hasn't been saved/connected yet.`},"settings.localToolsMcpConnected":{message:`Connected · {n} tools`,description:`Badge when an MCP server connected; {n} is the tool count.`},"settings.localToolsMcpDisabled":{message:`Disabled`,description:`Badge when an MCP server is turned off.`},"settings.localToolsMcpFailed":{message:`Failed to connect`,description:`Badge when an MCP server failed to start; the reason is shown below.`},"settings.localToolsMcpPlatformHint":{message:`Tip: use a command on your PATH such as npx or uvx (e.g. npx -y {'@'}modelcontextprotocol/server-filesystem ~/Documents). On Windows, npx/node resolve automatically. If a server shows "spawn … ENOENT", set the command to a full path.`,description:`Cross-platform hint for configuring the MCP launch command.`},"settings.localToolsSaved":{message:`Sparat`,description:`Transient confirmation after saving local-tool folders.`},"settings.localToolsActiveTools":{message:`Aktiva verktyg`,description:`Label before the list of currently available local tools.`},"settings.localToolsGrantsTitle":{message:`Alltid tillåtna åtgärder`,description:`Heading for the persistent consent grants list.`},"settings.localToolsGrantsHint":{message:`Verktygsanrop som du valt att alltid tillåta. De körs utan att fråga igen. Återkalla något för att aktivera bekräftelsen igen.`,description:`Help text under the always-allowed actions heading.`},"settings.localToolsRevoke":{message:`Återkalla`,description:`Button to revoke a single always-allow grant.`},"settings.localToolsRevokeAll":{message:`Återkalla alla`,description:`Button to revoke every always-allow grant.`},"settings.localToolsNoGrants":{message:`Inga alltid tillåtna åtgärder. Du tillfrågas före varje lokalt verktyg.`,description:`Empty state for the always-allowed actions list.`},"settings.localToolsPermsTitle":{message:`Systembehörigheter`,description:`Heading for the macOS system-permission section.`},"settings.localToolsPermsHint":{message:`Valfritt. Mappåtkomsten ovan behöver inga av dessa – bevilja bara det som en viss uppgift kräver.`,description:`Help text under the system-permissions heading.`},"settings.localToolsPermFullDisk":{message:`Fullständig diskåtkomst`,description:`macOS Full Disk Access permission row.`},"settings.localToolsPermScreen":{message:`Skärminspelning`,description:`macOS Screen Recording permission row.`},"settings.localToolsPermAccessibility":{message:`Hjälpmedel`,description:`macOS Accessibility permission row.`},"settings.localToolsGranted":{message:`Beviljad`,description:`Status tag when a system permission is granted.`},"settings.localToolsNotGranted":{message:`Inte beviljad`,description:`Status tag when a system permission is not granted.`},"settings.localToolsOpen":{message:`Öppna…`,description:`Button to open the relevant macOS System Settings pane.`},"settings.subsites":{message:`Mina underwebbplatser`,description:`Rubriken för fliken för underwebbplatsadministration i inställningsfönstret. Syns endast på officiella huvudwebbplatsen, underwebbplatser visas inte.`},"settings.adminOnlyHint":{message:`Denna sektion är endast synlig för webbplatsadministratörer, vanliga användare har inte tillgång.`,description:`En hint som visas högst upp i fliken för webbplatsinställningar / SEO-inställningar / distributionsinställningar / funktionsinställningar som endast är synlig för administratörer.`},"settings.officialOnlyHint":{message:`Denna sektion är endast synlig på huvudwebbplatsen, underwebbplatser visas inte.`,description:`En hint som visas högst upp i fliken 'Mina underwebbplatser', som förklarar att denna ingång endast visas på den officiella huvudwebbplatsen.`},"settings.customDomain":{message:`Anpassad domän`,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:`Bygg nu`,description:`Texten för knappen 'Bygg underwebbplats med ett klick' på om-sidan, syns endast på officiella huvudwebbplatsen`},"settings.poweredBy":{message:`Öppen källkod`,description:`Rubriken som visar vilken öppen källkodsprojekt webbplatsen är baserad på på om-sidan`},"settings.poweredByTip":{message:`Denna webbplats är baserad på Nexior öppen källkodsprojekt, koden är helt öppen källkod.`,description:`Beskrivningen av vilket öppen källkodsprojekt webbplatsen är baserad på på om-sidan`},"settings.apiService":{message:`API-tjänst`,description:`Rubriken som visar API-tjänsteleverantören på om-sidan`},"settings.apiServiceTip":{message:`Denna webbplats API-tjänst tillhandahålls av Ace Data Cloud.`,description:`Beskrivningen av API-tjänsteleverantören på om-sidan`},"settings.buildYourOwn":{message:`Bygg din egen`,description:`Rubriken som uppmanar användare att bygga en liknande webbplats på om-sidan`},"settings.buildYourOwnTip":{message:`Vill du bygga en liknande AI-webbplats? Kontakta oss för distributionssupport.`,description:`Beskrivningen av att bygga en liknande webbplats på om-sidan`},"settings.contactUs":{message:`Kontakta support`,description:`Texten för knappen för att kontakta support`},"settings.contactSupport":{message:`Kontakta support`,description:`Section title on the About page listing the site owner's customer-service channels`},"settings.contactSupportTip":{message:`Nå vårt supportteam via någon av kanalerna nedan.`,description:`Subtitle under the support contacts section on the About page`},"settings.contactInvalidUrl":{message:`{field} måste vara en giltig http(s)-länk`,description:`Validation error shown when a contact URL is not a valid http(s) link`},"settings.contactInvalidPhone":{message:`Ange ett giltigt telefonnummer`,description:`Validation error shown when the phone number is invalid`},"settings.contactInvalidEmail":{message:`Ange en giltig e-postadress`,description:`Validation error shown when the email address is invalid`},"settings.contactType":{message:`Typ`,description:`Placeholder for the contact type picker in the editor`},"settings.contactType_phone":{message:`Telefon`,description:`Display name for the phone contact type`},"settings.contactType_email":{message:`E-post`,description:`Display name for the email contact type`},"settings.contactType_website":{message:`Webbplats`,description:`Display name for the website contact type`},"settings.contactType_wechat":{message:`WeChat`,description:`Display name for the WeChat contact type`},"settings.contactLabelPlaceholder":{message:`Label (optional), e.g. Sales`,description:`Placeholder for the optional contact label input`},"settings.contactValuePlaceholder":{message:`Account / display text`,description:`Placeholder for the generic contact value input`},"settings.contactQr":{message:`QR-kod`,description:`Label for a contact's QR-code image`},"settings.contactQrTip":{message:`Upload a QR code users can scan to add you.`,description:`Tip for the contact QR-code uploader`},"settings.contactAdd":{message:`Lägg till kontakt`,description:`Button to add another contact entry`},"settings.contactEditorHint":{message:`Pick a type for each channel and fill in at least a value, link or QR. Add as many as you like.`,description:`Hint at the top of the contacts editor dialog`},"settings.contactInvalidType":{message:`Type may only contain lowercase letters, digits, '-' and '_'`,description:`Validation error for an invalid contact type slug`},"settings.contactRowNeedsValue":{message:`Each contact needs at least a value, link or QR code`,description:`Validation error when a contact row has no value/url/qr`},"settings.contactInvalidValue":{message:`A contact field is invalid or too long`,description:`Validation error when a contact value/label is invalid or too long`},"settings.contactTooMany":{message:`You can add at most {max} contacts`,description:`Validation error when too many contacts are added`},"message.viewOnGithub":{message:`Visa på GitHub`,description:`Texten för länken för att se projektet på GitHub`},"title.notFound":{message:`Sidan försvann`,description:`Rubriken för 404-sidan`},"message.notFound":{message:`Sidan du besöker finns inte, länken kan ha ändrats eller tagits bort. Gå till startsidan för att fortsätta utforska AceData's AI-tjänster.`,description:`Underrubriken för 404-sidan`},"message.notFoundEyebrow":{message:`Något gick fel`,description:`Texten för den lilla etiketten högst upp på 404-sidan`},"message.notFoundPath":{message:`Begärd väg`,description:`Etiketten som visar den aktuella begärda vägen på 404-sidan`},"button.backToHome":{message:`Tillbaka till startsidan`,description:`Texten för knappen som används för att gå tillbaka till startsidan`},"button.goBack":{message:`Tillbaka`,description:`Texten för knappen som används för att gå tillbaka till föregående sida i webbläsarhistoriken`},"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:`Begäran`,description:`API-koddialogens fliketikett för begärningssnutten (koden som återskapar det aktuella resultatet).`},"tab.apiResponse":{message:`Svar`,description:`API-koddialogens fliketikett för det live-svar som returneras efter att ha klickat på 'Kör'.`},"button.apiRun":{message:`Kör igen`,description:`API-kod dialogknapp som kör begäran live mot API:et med användarens nyckel. Resultatet finns redan, så att klicka kör det igen, och det är debiterbart.`},"button.apiRunning":{message:`Körs…`,description:`API-koddialogens 'Kör'-knappens etikett medan den live begäran är på väg.`},"button.apiRunConfirm":{message:`Bekräfta körning`,description:`Bekräfta-knappens etikett i dialogrutan som varnar för att körning här förbrukar extra krediter.`},"button.viewDocs":{message:`Visa dokumentation`,description:`API-kod dialogfotknapp som öppnar den matchande API-dokumentationssidan på plattformen.`},"message.apiClickRun":{message:`Klicka på "Kör igen" för att använda din API-nyckel för att köra denna begäran i realtid.`,description:`API-kod dialogens svarstabells tomma tillstånd, som visas innan användaren har kört begäran.`},"message.apiRunConfirmTitle":{message:`Bekräfta körning`,description:`Titeln på bekräftelsedialogen som visas innan en begäran körs igen från API-kod dialogen.`},"message.apiRunConfirmDesc":{message:`Denna körning kommer att använda din API-nyckel för att göra ett verkligt anrop till gränssnittet och förbruka extra poäng, bekräftar du att du vill fortsätta?`,description:`Innehållet i bekräftelsedialogen som varnar för att omkörning av begäran är ett verkligt, debiterbart API-anrop.`},"message.apiRunConfirmSkip":{message:`Visa inte igen`,description:`Checkbox i bekräftelsedialogen som, när den är ikryssad, döljer varningen vid efterföljande körningar.`},"message.apiRunTaskCreated":{message:`Uppgiften har skapats, stäng detta fönster för att se de senaste resultaten nedan.`,description:`Framgångsbanner som visas i API-koddialogen efter att en körning returnerar ett uppgifts-id, vilket antyder att den nya uppgiften redan visas i listan bakom dialogen.`},"button.apiViewLatest":{message:`Stäng och visa`,description:`Knapp i API-koddialogens framgångsbanner som stänger dialogen så att användaren kan se den nyligen skapade uppgiften i listan nedan.`},"message.uploadInProgress":{message:`Referensuppladdningarna pågår fortfarande – vänta ett ögonblick.`,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:`Texten för Maestro-artikeln på videoproduktionssidan i navigeringsfältet, hålls som 'Maestro'`},"nav.digitalhuman":{message:`Digital Human`,description:`Text in the website navigation bar for the Digital Human talking-head page`},"settings.localToolsAndroidPermHint":{message:`Enable the accessibility service so the assistant can see and control your screen. You can pre-authorize individual actions below.`,description:`Hint for the Android Computer Use accessibility permission section in Settings.`},"settings.cuConsentTitle":{message:`Allow action?`,description:`Title of the on-demand consent dialog shown when the assistant requests a screen action.`},"settings.cuConsentMessage":{message:`The assistant wants to run "{action}" on your phone. Allow it?`,description:`Body of the on-demand consent dialog; {action} is the computer.* action name.`},"settings.cuConsentAllow":{message:`Allow once`,description:`Allow button of the on-demand consent dialog.`},"settings.cuConsentAlways":{message:`Always allow`,description:`Always-allow button of the on-demand consent dialog; persists a grant so this action never prompts again.`},"settings.cuConsentDeny":{message:`Deny`,description:`Deny button of the on-demand consent dialog.`},"settings.siteServices":{message:`Pris`},"settings.memoryEnabled":{message:`Use memory`,description:`Title for the switch that controls whether chats use saved memory and learn new memory`},"settings.memoryEnabledHint":{message:`When off, saved memories are not used and new chats do not create memories. Existing memories are kept.`,description:`Behavior explanation shown below the memory switch`},"nav.omni":{message:`Omni Video`,description:`Nav label for the Omni video module`},"settings.memoryImport":{message:`Import`,description:`Button that opens the memory import dialog`},"settings.memoryImportTitle":{message:`Import memory from another AI`,description:`Title of the memory import dialog`},"settings.memoryImportExportStep":{message:`1. Ask your current AI to export its memory`,description:`First step heading in the memory import dialog`},"settings.memoryImportPrompt":{message:`I'm moving to another AI service. List every saved memory and durable context you have learned about me. Put everything in one code block, with exactly one memory per line. Format each line as: [date saved, if available] - memory content. Include response preferences, personal details, projects, goals, tools, languages, frameworks, and corrections I have made. Preserve my words where possible. Do not include secrets or sensitive information.`,description:`Prompt users copy into another AI service to export memories`},"settings.memoryImportCopy":{message:`Copy prompt`,description:`Button that copies the memory export prompt`},"settings.memoryImportCopied":{message:`Prompt copied`,description:`Toast shown after copying the memory export prompt`},"settings.memoryImportPasteStep":{message:`2. Paste the exported memory`,description:`Second step heading in the memory import dialog`},"settings.memoryImportPlaceholder":{message:`Paste the memory text returned by ChatGPT, Claude, Gemini, or another AI…`,description:`Placeholder for pasted memory export text`},"settings.memoryImportSubmit":{message:`Add to memory`,description:`Button that submits pasted memories for import`},"settings.memoryImportSuccess":{message:`Imported {count} memory entries`,description:`Success toast after importing memory; count is the number of accepted entries`},"settings.memoryImportPartial":{message:`Processed {processed} entries; {rejected} unsafe or invalid entries were skipped.`,description:`Warning shown after a partial memory import`},"settings.memoryImportInvalid":{message:`No memory could be imported. Make sure memory is on and paste one plain fact per line.`,description:`Actionable error shown when the memory import request is invalid`}};export{e as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e={"button.setup":{message:`设置`,description:`按钮中的文本,用于进行设置`},"button.start":{message:`开始`,description:`按钮文本,用于开始某些操作`},"button.copy":{message:`复制`,description:`按钮中的文本,用于复制某项内容`},"button.copied":{message:`已复制`,description:`按钮文本,用于表示内容已复制`},"button.restart":{message:`重新生成`,description:`按钮文本,用于设置某些内容`},"button.preview":{message:`预览`,description:`按钮文本,用于通过URL打开预览某个文件`},"button.seeRawImage":{message:`查看原图`,description:`按钮文本,用于查看原始图片`},"button.seeRawVideo":{message:`查看视频`,description:`按钮文本,用于查看原始图片`},"button.edit":{message:`编辑`,description:`按钮中的文本,用于编辑内容`},"button.login":{message:`登录`,description:`按钮中的文本,用于登录`},"button.logout":{message:`注销`,description:`按钮中的文本,用于注销`},"button.new":{message:`新建`,description:`按钮中的文本,用于创建新项`},"button.delete":{message:`删除`,description:`按钮中的文本,用于删除内容`},"button.deletePermanently":{message:`永久删除账号`,description:`删除账号确认对话框底部的红色最终删除按钮文本,translate to 'Permanently delete account'`},"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:`当原生“通过 Apple 登录”因用户取消以外的原因失败时显示的错误提示。`},"error.loginLinkExpired":{message:`登录链接已失效,请重新登录。`,description:`桌面客户端 OAuth 回调因 state 校验失败/过期被丢弃时显示的错误提示。`},"entity.operation":{message:`操作`,description:`实体的操作`},"entity.description":{message:`描述`,description:`实体的描述`},"entity.createdAt":{message:`创建于`,description:`实体创建的时间`},"entity.updatedAt":{message:`更新于`,description:`实体更新的时间`},"entity.order":{message:`订单`,description:`实体的订单,订单包含金钱、服务信息,用户需要为其支付`},"message.noTasks":{message:`没有历史任务,请开始新的任务吧~`,description:`没有任务时的消息`},"message.guestTasks":{message:`登录后即可发起任务,并在这里查看你的作品。`,description:`未登录访客在任务列表区域看到的提示`},"message.usedAmount":{message:`已使用金额`,description:`用于显示服务已使用的金额`},"message.mobileAppDescription":{message:`随时随地使用完整的 AceData 创作工具 —— 支持 Android、iPhone、iPad、Windows 与 macOS。一键安装,或扫码前往。`,description:`应用下载页的说明文案`},"message.mobileAndroidHint":{message:`适用于 Android 手机和平板。可从 Google Play 安装以获得自动更新,也可直接下载 APK。`,description:`Android 下载卡片说明`},"message.mobileAndroidPending":{message:`Android 安装包暂未就绪,请稍后再试。`,description:`Android 安装包暂未可用时的提示`},"message.mobileAvailableNow":{message:`已上架 Google Play`,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,可直接从 App Store 安装,与网页端共用账号和额度。`,description:`iOS 下载卡片说明`},"message.mobileIosPending":{message:`iOS 版正在完成 Apple 证书与描述文件签名,稍后将在此开放下载。`,description:`iOS 安装包暂未可用时的提示`},"message.mobileComingSoon":{message:`即将推出`,description:`用于标记某个平台(如 iOS)即将开放下载的短状态标签`},"message.mobileNowOnAppStore":{message:`已上架 App Store`,description:`Status label shown on the iOS card when the app is live on the App Store`},"message.desktopWindowsHint":{message:`适用于 Windows 10 及以上版本(64 位)。下载安装程序后双击即可安装。`,description:`Windows desktop download card description`},"message.desktopMacHint":{message:`适用于 macOS 11 及以上版本。请按你的机型选择 —— Apple 芯片(M 系列)或 Intel。`,description:`macOS desktop download card description`},"message.desktopUnsignedNote":{message:`桌面版目前为未签名的 Beta 版本。Windows 在 SmartScreen 提示中选择“更多信息 → 仍要运行”;macOS 请右键点按应用并选择“打开”以绕过 Gatekeeper。`,description:`Note explaining the desktop builds are unsigned betas and how to open them`},"button.getOnGooglePlay":{message:`在 Google Play 上获取`,description:`Button label that opens the app's Google Play Store listing`},"button.getOnAppStore":{message:`在 App Store 下载`,description:`Button label that opens the app's Apple App Store listing`},"message.mobileApkFallback":{message:`无法访问 Google Play?可直接下载 APK 安装包。`,description:`Shown next to a secondary button offering a direct APK download for users who cannot access Google Play`},"message.mobilePlayStoreHint":{message:`扫码前往 Google Play`,description:`Hint under the QR code explaining that scanning it opens the Google Play listing`},"message.mobileAppStoreHint":{message:`扫码前往 App Store`,description:`Hint under the QR code explaining that scanning it opens the App Store listing`},"message.mobileInstallNote":{message:`iOS 首次安装企业或 Ad Hoc 包时,系统可能要求先在“设置 > 通用 > VPN 与设备管理”中信任证书。`,description:`移动应用安装提示`},"title.mobileApp":{message:`获取 AceData 客户端`,description:`应用下载页标题`},"title.mobileFastAccess":{message:`更快触达,不绕应用商店`,description:`下载页优势卡片标题,强调快速安装`},"title.mobileTrustedRelease":{message:`版本集中管理,分发更稳`,description:`下载页优势卡片标题,强调版本和分发稳定性`},"title.mobileUnifiedExperience":{message:`移动端与网页端体验保持一致`,description:`下载页优势卡片标题,强调统一体验`},"nav.mobileApp":{message:`客户端`,description:`导航中的应用下载入口(移动端 + 桌面端)`},"message.mobileFastAccess":{message:`用户可以在手机扫码直接安装,也可以在桌面端先下载 APK 再分发给团队成员,适合需要快速试用和内测的场景。`,description:`下载页优势说明,强调快速接入`},"message.mobileTrustedRelease":{message:`下载入口集中在同一页面,版本号、平台状态和安装方式一眼可见,减少因为链路分散造成的沟通成本。`,description:`下载页优势说明,强调统一分发`},"message.mobileUnifiedExperience":{message:`登录后的账号体系、额度和服务入口与 Web 保持一致,方便用户在桌面端和移动端之间无缝切换。`,description:`下载页优势说明,强调统一账号体验`},"message.remainingAmount":{message:`剩余金额`,description:`用于显示服务剩余的金额`},"message.copied":{message:`复制成功`,description:`显示内容已成功复制的消息`},"message.restart":{message:`重新生成`,description:`用于显示内容已成功复制的消息`},"message.confirmDelete":{message:`您确定要删除吗?`,description:`确认用户要删除某项内容的消息`},"message.expiredAt":{message:`过期时间`,description:`用于显示服务的过期时间`},"message.alert":{message:`警告`,description:`警告用户的消息`},"message.deleteAccountConfirm":{message:`此操作将永久删除您的账号及所有相关数据,且无法恢复。确定要继续吗?`,description:`永久删除用户账号前显示的确认消息`},"message.deleteAccountSuccess":{message:`您的账号已删除。`,description:`成功删除用户账号后显示的消息`},"message.deleteAccountFailed":{message:`删除账号失败,请稍后重试。`,description:`删除账号失败时显示的消息`},"message.deleteAccountWarning":{message:`此操作不可逆!您的账号及其所有数据将被永久删除,无法找回。`,description:`删除账号确认对话框顶部的红色警示横幅文本,必须强烈警告操作不可撤销`},"message.deleteAccountConsequences":{message:`将永久删除:个人资料、余额与积分、应用与订阅、API 密钥及第三方登录绑定。`,description:`删除账号确认对话框中列出将被删除内容的说明文本`},"message.deleteAccountTypePrompt":{message:`请输入您的用户名以确认删除:`,description:`提示用户必须逐字输入自己的用户名才能确认删除;紧随其后会单独显示该用户名`},"message.deleteAccountPlaceholder":{message:`在此输入您的用户名`,description:`用户名确认输入框的占位符`},"message.info":{message:`提示`,description:`显示信息的消息`},"message.free":{message:`免费`,description:`显示该服务是免费的消息,意味着用户无需支付`},"message.startPrice":{message:`起始`,description:`显示服务的最低价格的消息`},"message.joinDiscord":{message:`加入Discord`,description:`让用户加入Discord频道的消息`},"message.addWeChat":{message:`微信服务`,description:`让用户添加微信账户的消息`},"message.serviceTech":{message:`技术支持`,description:`显示技术支持的消息`},"message.businessCooperation":{message:`数据 & 商业合作`,description:`显示商业合作的消息`},"message.noData":{message:`没有数据`,description:`显示表或列表中没有数据的消息`},"nav.home":{message:`首页`,description:`网站导航栏中的文本,用于显示首页`},"nav.content":{message:`内容`,description:`网站导航栏中的文本,用于显示内容页面`},"nav.category":{message:`类别`,description:`网站导航栏中的文本,用于显示类别页面`},"nav.service":{message:`所有服务`,description:`网站导航栏中的文本,用于显示服务页面`},"nav.profile":{message:`我`,description:`网站导航栏中的文本,用于显示个人资料页面`},"nav.products":{message:`产品`,description:`网站导航栏中的文本,用于显示产品页面`},"nav.referral":{message:`创收联盟`,description:`网站导航栏中的文本,用于显示推荐页面`},"nav.apiPlatform":{message:`API 平台`,description:`网站导航栏中的文本,用于显示API平台页面`},"nav.document":{message:`开发文档`,description:`网站导航栏中的文本,用于显示文档页面`},"nav.console":{message:`控制台`,description:`网站导航栏中的文本,用于显示控制台页面`},"nav.chatgpt":{message:`ChatGPT`,description:`网站导航栏中的文本,用于显示ChatGPT页面,请不要翻译此字段,必须保持为'ChatGPT'`},"nav.deepseek":{message:`DeepSeek`,description:`网站导航栏中的文本,用于显示DeepSeek页面,请不要翻译此字段,必须保持为'DeepSeek'`},"nav.grok":{message:`Grok`,description:`网站导航栏中的文本,用于显示Grok页面,请不要翻译此字段,必须保持为'Grok'`},"nav.chat":{message:`Chat`,description:`网站导航栏中的文本,用于显示聊天页面,请不要翻译此字段,必须保持为'Chat'`},"nav.veo":{message:`Veo`,description:`网站导航栏中的文本,用于显示聊天页面,请不要翻译此字段,必须保持为'Veo'`},"nav.sora":{message:`Sora`,description:`网站导航栏中的文本,用于显示聊天页面,请不要翻译此字段,必须保持为'Sora'`},"nav.midjourney":{message:`Midjourney`,description:`网站导航栏中的文本,用于显示中途之旅页面,请不要翻译此字段,必须保持为'Midjourney'`},"nav.qrart":{message:`QRArt`,description:`网站导航栏中的文本,用于显示二维艺术页面,请不要翻译此字段,必须保持为'QRArt'`},"nav.suno":{message:`Suno`,description:`网站导航栏中的文本,用于显示Suno页面,请不要翻译此字段,必须保持为'Suno'`},"nav.pixverse":{message:`Pixverse`,description:`网站导航栏中的文本,用于显示Pixverse页面,请不要翻译此字段,必须保持为'Pixverse'`},"nav.flux":{message:`Flux`,description:`网站导航栏中的文本,用于显示Flux页面,请不要翻译此字段,必须保持为'Flux'`},"nav.nanobanana":{message:`Nano Banana`,description:`网站导航栏中的文本,用于显示Nano Banana页面,请不要翻译此字段,必须保持为'Nano Banana'`},"nav.openaiimage":{message:`OpenAI Image`,description:`网站导航栏中的文本,用于显示OpenAI Image页面,请不要翻译此字段,必须保持为'OpenAI Image'`},"nav.seedream":{message:`SeeDream`,description:`网站导航栏中的文本,用于显示SeeDream页面,请不要翻译此字段,必须保持为'SeeDream'`},"nav.seedance":{message:`SeeDance`,description:`网站导航栏中的文本,用于显示SeeDance页面,请不要翻译此字段,必须保持为'SeeDance'`},"nav.grokvideo":{message:`Grok 视频`,description:`网站导航栏中的文本,用于显示 Grok Imagine 视频页面`},"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:`网站导航栏中的文本,用于显示 Coding Bridge 页面,请不要翻译此字段,必须保持为'Coding Bridge'`},"nav.webextrator":{message:`WebExtrator`,description:`网站导航栏中的文本,用于显示WebExtrator页面,请不要翻译此字段,必须保持为'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:`用于永久删除当前用户账号的菜单项`},"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.sendShortcut":{message:`发送消息快捷键`,description:`设置页面中的发送消息快捷键行标题:选择按 Enter 发送还是按修饰键+Enter 发送`},"sendShortcut.enter":{message:`Enter 发送`,description:`发送快捷键选项:按 Enter 键直接发送消息`},"sendShortcut.modEnter":{message:`{key} + Enter 发送`,description:`发送快捷键选项:按修饰键(⌘ 或 Ctrl)加 Enter 发送消息,{key} 是平台修饰键符号`},"settings.loginMode":{message:`登录跳转方式`,description:`Auth 设置 tab 中的登录跳转方式行标题:选择登录时用弹窗嵌入(iframe)还是整页跳转。站点级配置,仅管理员可见`},"loginMode.iframe":{message:`弹窗嵌入`,description:`登录方式选项:在当前页面内以内嵌 iframe 弹窗完成登录,不跳走`},"loginMode.redirect":{message:`整页跳转`,description:`登录方式选项:跳转到登录页面完成登录后再返回`},"settings.seo":{message:`SEO设置`,description:`设置页面中的SEO设置部分的标题`},"settings.site":{message:`站点设置`,description:`设置页面中的站点设置部分的标题`},"settings.distribution":{message:`分发设置`,description:`设置页面中的分发设置部分的标题`},"settings.function":{message:`能力`,description:`设置页面中的站点能力部分标题`},"settings.auth":{message:`认证`,description:`设置页面侧边栏的『Auth』tab 标题——配置本站允许使用的登录方式、默认登录方式,以及登录跳转方式(整页跳转 / 内嵌弹窗),仅站点管理员可见`},"settings.apiKey":{message:`API Key`,description:`设置页面侧边栏的 API Key 标签——用户自带(BYOK)的上游服务商 API Key 管理`},"settings.memory":{message:`记忆`,description:`设置弹窗侧边栏的「记忆」标签,用户在此查看和管理助手记住的关于自己的信息`},"settings.memoryIntro":{message:`助手会记住你在对话中提到的有用信息,从而在不同对话里给出更贴合你的个性化回复。你拥有完全的控制权——可以查看已保存的内容,并删除不希望它记住的部分。`,description:`记忆设置标签页顶部的介绍文字`},"settings.memoryEnabled":{message:`使用记忆`,description:`控制助手是否在聊天中使用已保存的记忆并继续学习新记忆的开关标题`},"settings.memoryEnabledHint":{message:`关闭后,助手不会读取已保存的记忆,也不会从新对话中保存记忆。已有内容不会被删除。`,description:`记忆开关下方的行为说明`},"settings.memoryNeedsChat":{message:`请先开始一次对话以启用记忆功能。`,description:`当聊天应用/令牌尚未加载时,在记忆设置标签页显示`},"settings.memoryStored":{message:`已保存的记忆`,description:`已存储记忆条目列表上方的分区标题`},"settings.memoryImport":{message:`导入`,description:`打开记忆导入弹窗的按钮`},"settings.memoryImportTitle":{message:`从其他 AI 导入记忆`,description:`记忆导入弹窗标题`},"settings.memoryImportExportStep":{message:`1. 让当前使用的 AI 导出记忆`,description:`记忆导入弹窗第一步标题`},"settings.memoryImportPrompt":{message:`我要迁移到另一个 AI 服务。请列出你保存的关于我的每一条记忆,以及从过往对话中学到的持久信息。把全部内容放在一个代码块中,每行只写一条记忆,格式为:[保存日期,如有] - 记忆内容。请包括回复偏好、个人信息、项目、目标、常用工具、语言、框架,以及我对你做过的纠正。尽量保留我的原话,不要包含密码、密钥等敏感信息。`,description:`复制到其他 AI 服务中用于导出记忆的提示词`},"settings.memoryImportCopy":{message:`复制提示词`,description:`复制记忆导出提示词的按钮`},"settings.memoryImportCopied":{message:`提示词已复制`,description:`成功复制记忆导出提示词后的提示`},"settings.memoryImportPasteStep":{message:`2. 粘贴导出的记忆`,description:`记忆导入弹窗第二步标题`},"settings.memoryImportPlaceholder":{message:`粘贴 ChatGPT、Claude、Gemini 或其他 AI 返回的记忆内容…`,description:`粘贴导出记忆内容的输入框占位文字`},"settings.memoryImportSubmit":{message:`添加到记忆`,description:`提交粘贴内容进行导入的按钮`},"settings.memoryImportSuccess":{message:`已处理 {count} 条记忆,请在下方检查保存结果。`,description:`记忆导入成功提示,count 为去重和容量限制前通过校验的输入条目数`},"settings.memoryImportPartial":{message:`已处理 {processed} 条内容,另有 {rejected} 条不安全或无效内容已跳过。`,description:`部分记忆导入成功时显示的警告`},"settings.memoryImportInvalid":{message:`未能导入记忆。请确认记忆已开启,并按每行一条普通事实的格式粘贴。`,description:`记忆导入请求无效时显示的可操作错误提示`},"settings.memoryEmpty":{message:`暂无保存的记忆。随着你的使用,助手会在这里记住持久的偏好和信息。`,description:`用户没有任何已存储记忆时显示的空状态`},"settings.memoryForget":{message:`忘记`,description:`记忆条目行上删除该单条记忆的按钮`},"settings.memoryClearAll":{message:`清空全部`,description:`一次性删除所有已存储记忆的按钮`},"settings.memoryClearConfirm":{message:`这将永久删除助手记住的关于你的所有信息,且无法撤销。`,description:`清空全部记忆前的确认弹窗内容`},"settings.memoryError":{message:`操作失败,请重试。`,description:`记忆删除/清空操作失败时显示的错误提示`},"field.operations":{message:`操作`,description:`通用列标题:表格行的操作按钮列(编辑、删除等)`},"nav.gemini":{message:`Gemini`,description:`Text in the website navigation bar to display the Gemini page, must remain as 'Gemini'`},"nav.claude":{message:`Claude`,description:`Text in the website navigation bar to display the Claude page, must remain as '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:`桌面专属设置 tab:管理本地工具的授权文件夹、系统权限与永久授权。`},"settings.localToolsDesktopOnly":{message:`仅在桌面应用中可用。`,description:`在 web/移动端打开本地工具 tab 时的提示。`},"settings.localToolsFoldersTitle":{message:`已授权文件夹`,description:`AI 可在本地读写的文件夹列表标题。`},"settings.localToolsFoldersHint":{message:`AI 可在本机读写的文件夹。工具在本地执行;未经你同意,任何内容都不会离开你的设备。`,description:`已授权文件夹标题下的说明。`},"settings.localToolsComputerUseTitle":{message:`电脑操作(实验性)`,description:`Heading for the opt-in Computer Use (screen + mouse/keyboard control) toggle.`},"settings.localToolsComputerUseHint":{message:`让 AI 看到你的屏幕并控制本机的鼠标和键盘。默认关闭,按需开启。macOS 上需在下方授予「屏幕录制」和「辅助功能」权限。每个操作仍会请求你的确认。`,description:`Help text under the Computer Use toggle.`},"settings.localToolsAndroidSkillsTitle":{message:`手机自动化技能`,description:`Heading for the Android-only section that installs skills which drive apps on the phone via Computer Use.`},"settings.localToolsAndroidSkillsHint":{message:`安装能让助手操作本机 App 的技能。它们通过「电脑操作」运行,请先在上方授予无障碍权限并开启电脑操作。每步动作仍遵循你的电脑操作确认设置。`,description:`Help text under the phone-automation skills heading.`},"settings.localToolsAndroidSkillsXhsName":{message:`小红书私信自动回复`,description:`Display name of the Xiaohongshu (RED) direct-message auto-reply skill.`},"settings.localToolsAndroidSkillsXhsDesc":{message:`读取小红书 App 里的新私信并起草回复,发送前会先请你确认。`,description:`One-line description of the Xiaohongshu DM skill.`},"settings.localToolsAndroidSkillsInstall":{message:`安装`,description:`Button that installs the skill into the user's account.`},"settings.localToolsAndroidSkillsInstalled":{message:`已安装`,description:`Tag shown when the skill is already installed.`},"settings.localToolsAndroidSkillsLoading":{message:`正在加载可用技能……`,description:`Placeholder while the skill directory is being fetched.`},"settings.localToolsAndroidSkillsUnavailable":{message:`暂无可安装的手机技能。`,description:`Empty state when no installable phone skill is found.`},"settings.localToolsAndroidSkillsNeedComputerUse":{message:`安装前请先授予无障碍权限并在上方开启电脑操作。`,description:`Hint shown when the install button is disabled because prerequisites are missing.`},"settings.localToolsAndroidSkillsNextTurn":{message:`已安装,将在你下次对话时生效。`,description:`Confirmation shown after a successful install.`},"settings.localToolsAndroidSkillsInstallFailed":{message:`安装失败,请重试。`,description:`Error shown when the install request fails.`},"settings.localToolsAndroidSkillsLoadFailed":{message:`加载可用技能失败,请重试。`,description:`Error shown when fetching the skill directory fails.`},"settings.localToolsPreauthorizeAll":`预先允许所有电脑操作`,"settings.localToolsPreauthorizeHint":`一次性允许截图、点击、输入、按键等所有电脑操作,并触发所需的系统权限。`,"settings.localToolsCuA11yLabel":{message:`无障碍服务`,description:`Computer Use 可用性状态行的标签,指示无障碍服务是否真正在运行。`},"settings.localToolsCuReady":{message:`已就绪,可用`,description:`无障碍服务已运行、Computer Use 真正可用时显示的绿色状态。`},"settings.localToolsCuA11yMissing":{message:`未开启,Computer Use 暂不可用`,description:`开关已打开但无障碍服务没有运行时显示的红色警告。`},"settings.localToolsCuActionsTitle":`逐项允许操作`,"settings.localToolsCuActionsHint":`只打开你愿意让 AI 免确认执行的操作,其余仍会逐次询问。每一项都可在此撤销。`,"settings.localToolsCuScreenshot":`截图`,"settings.localToolsCuClick":`点击`,"settings.localToolsCuMove":`移动指针`,"settings.localToolsCuType":`输入文字`,"settings.localToolsCuKey":`按键`,"settings.localToolsCuScroll":`滚动`,"settings.localToolsBuiltinTitle":`内置工具`,"settings.localToolsBuiltinHint":`打开某个工具后,AI 调用它将不再逐次询问。Shell 可执行本机任意命令——请谨慎开启;文件工具仍限制在你已授权的文件夹内。`,"settings.localToolsBuiltinRisky":`完全访问`,"settings.localToolsAddFolder":{message:`添加文件夹`,description:`选择要授权的文件夹的按钮。`},"settings.localToolsRemove":{message:`移除`,description:`移除已授权文件夹的按钮。`},"settings.localToolsNoFolders":{message:`还没有授权任何文件夹。`,description:`已授权文件夹列表的空状态。`},"settings.localToolsSave":{message:`保存`,description:`保存已授权文件夹。`},"settings.localToolsMcpTitle":{message:`MCP 服务器`,description:`本地工具设置中本地 MCP 服务器配置的分区标题。`},"settings.localToolsMcpHint":{message:`通过 stdio 连接本地 MCP 服务器。它们的工具会提供给 AI 使用,并受同样的逐次调用确认保护。修改后立即生效。`,description:`说明本地 MCP 服务器的作用,以及修改无需重启即可生效。`},"settings.localToolsMcpAdd":{message:`添加服务器`,description:`添加一个新的本地 MCP 服务器行的按钮。`},"settings.localToolsMcpName":{message:`名称`,description:`MCP 服务器名称/标识字段的标签。`},"settings.localToolsMcpCommand":{message:`命令`,description:`MCP 服务器启动命令字段的标签。`},"settings.localToolsMcpArgs":{message:`参数`,description:`MCP 服务器命令参数字段的标签。`},"settings.localToolsMcpArgsHint":{message:`每行一个参数。`,description:`MCP 参数文本框的占位提示。`},"settings.localToolsMcpEnv":{message:`环境变量`,description:`MCP 服务器环境变量字段的标签。`},"settings.localToolsMcpEnvHint":{message:`每行一个 KEY=VALUE。`,description:`MCP 环境变量文本框的占位提示。`},"settings.localToolsMcpNoServers":{message:`尚未配置 MCP 服务器。`,description:`未配置任何 MCP 服务器时显示的空状态。`},"settings.localToolsMcpNamePlaceholder":{message:`例如 filesystem`,description:`MCP 服务器名称输入框的占位符。`},"settings.localToolsMcpCommandPlaceholder":{message:`例如 npx`,description:`MCP 服务器命令输入框的占位符。`},"settings.localToolsMcpNameRequired":{message:`每个服务器都需要名称和命令。`,description:`服务器行缺少名称或命令时的校验错误。`},"settings.localToolsMcpDuplicateName":{message:`服务器名称必须唯一。`,description:`两个服务器名称重复时的校验错误。`},"settings.localToolsMcpNameInvalid":{message:`名称只能包含字母、数字、连字符和下划线。`,description:`服务器名称含非法字符时的校验错误。`},"settings.localToolsMcpEnabled":{message:`启用`,description:`启用/停用某个本地 MCP 服务器的开关标签。`},"settings.localToolsMcpReconnect":{message:`测试 / 重连`,description:`重新启动某个 MCP 服务器并刷新其状态的按钮。`},"settings.localToolsMcpConnecting":{message:`连接中…`,description:`MCP 服务器正在(重新)连接时的状态标签。`},"settings.localToolsMcpNotSaved":{message:`尚未保存`,description:`尚未保存/连接的 MCP 服务器行的状态标签。`},"settings.localToolsMcpConnected":{message:`已连接 · {n} 个工具`,description:`MCP 服务器连接成功时的标签;{n} 为工具数量。`},"settings.localToolsMcpDisabled":{message:`已停用`,description:`MCP 服务器被关闭时的标签。`},"settings.localToolsMcpFailed":{message:`连接失败`,description:`MCP 服务器启动失败时的标签;原因显示在下方。`},"settings.localToolsMcpPlatformHint":{message:`提示:使用 PATH 中的命令,如 npx 或 uvx(例如 npx -y {'@'}modelcontextprotocol/server-filesystem ~/Documents)。Windows 上 npx/node 会自动解析。若某服务器显示 “spawn … ENOENT”,请把命令改为完整路径。`,description:`配置 MCP 启动命令的跨平台提示。`},"settings.localToolsSaved":{message:`已保存`,description:`保存本地工具文件夹后的短暂确认。`},"settings.localToolsActiveTools":{message:`可用工具`,description:`当前可用本地工具列表前的标签。`},"settings.localToolsGrantsTitle":{message:`永久允许的操作`,description:`永久授权列表的标题。`},"settings.localToolsGrantsHint":{message:`你选择「永久允许」的工具调用,将不再询问直接执行。撤销任意一项可重新开启确认弹窗。`,description:`永久允许操作标题下的说明。`},"settings.localToolsRevoke":{message:`撤销`,description:`撤销单条永久授权的按钮。`},"settings.localToolsRevokeAll":{message:`全部撤销`,description:`撤销所有永久授权的按钮。`},"settings.localToolsNoGrants":{message:`暂无永久允许的操作。每次执行本地工具前都会先征求你的同意。`,description:`永久允许操作列表的空状态。`},"settings.localToolsPermsTitle":{message:`系统权限`,description:`macOS 系统权限区块的标题。`},"settings.localToolsPermsHint":{message:`可选。上面的文件夹访问无需这些权限——只授予某个任务真正需要的。`,description:`系统权限标题下的说明。`},"settings.localToolsPermFullDisk":{message:`完全磁盘访问权限`,description:`macOS 完全磁盘访问权限行。`},"settings.localToolsPermScreen":{message:`屏幕录制`,description:`macOS 屏幕录制权限行。`},"settings.localToolsPermAccessibility":{message:`辅助功能`,description:`macOS 辅助功能权限行。`},"settings.localToolsGranted":{message:`已授权`,description:`系统权限已授权时的状态标签。`},"settings.localToolsNotGranted":{message:`未授权`,description:`系统权限未授权时的状态标签。`},"settings.localToolsOpen":{message:`打开`,description:`打开对应 macOS 系统设置面板的按钮。`},"settings.subsites":{message:`我的分站`,description:`设置弹窗中分站管理 tab 的标题。仅在 official 主站可见,分站不显示。`},"settings.adminOnlyHint":{message:`此栏目仅站点管理员可见,普通用户无法访问。`,description:`在站点设置 / SEO 设置 / 分发设置 / 功能设置 等仅管理员可见的设置 tab 顶部展示的提示语。`},"settings.officialOnlyHint":{message:`此栏目仅主站可见,分站不会显示。`,description:`在『我的分站』tab 顶部展示的提示语,说明该入口只在 official 主站出现。`},"settings.customDomain":{message:`自定义域名`,description:`Title for the custom-domain management tab in the settings popup. Visible only on subsites (non-main-official hosts) for site admins.`},"settings.buildNow":{message:`一键搭建`,description:`关于页面中『一键搭建分站』按钮的文本,仅 official 主站显示`},"settings.poweredBy":{message:`开源项目`,description:`关于页面中展示本站基于哪个开源项目搭建的标题`},"settings.poweredByTip":{message:`本站基于 Nexior 开源项目搭建,代码完全开源。`,description:`关于页面中展示本站基于哪个开源项目的说明`},"settings.apiService":{message:`API 服务`,description:`关于页面中展示API服务提供方的标题`},"settings.apiServiceTip":{message:`本站 API 服务由 Ace Data Cloud 提供。`,description:`关于页面中展示API服务提供方的说明`},"settings.buildYourOwn":{message:`搭建同款`,description:`关于页面中提示用户可以搭建同款站点的标题`},"settings.buildYourOwnTip":{message:`想搭建同样的 AI 站点?联系我们获取部署支持。`,description:`关于页面中搭建同款的说明`},"settings.contactUs":{message:`联系客服`,description:`联系客服按钮的文本`},"settings.contactSupport":{message:`联系客服`,description:`关于页面中展示站长客服渠道的栏目标题`},"settings.contactSupportTip":{message:`可通过以下任一方式联系我们的客服。`,description:`关于页面客服栏目下方的副标题`},"settings.contactInvalidUrl":{message:`{field} 需要是有效的 http(s) 链接`,description:`联系方式链接无效时的校验错误提示`},"settings.contactInvalidPhone":{message:`请输入有效的电话号码`,description:`电话号码无效时的校验错误提示`},"settings.contactInvalidEmail":{message:`请输入有效的邮箱地址`,description:`邮箱地址无效时的校验错误提示`},"settings.contactType":{message:`类型`,description:`Placeholder for the contact type picker in the editor`},"settings.contactType_phone":{message:`电话`,description:`Display name for the phone contact type`},"settings.contactType_email":{message:`邮箱`,description:`Display name for the email contact type`},"settings.contactType_website":{message:`网站`,description:`Display name for the website contact type`},"settings.contactType_wechat":{message:`微信`,description:`Display name for the WeChat contact type`},"settings.contactLabelPlaceholder":{message:`备注(可选),如:售前`,description:`Placeholder for the optional contact label input`},"settings.contactValuePlaceholder":{message:`账号 / 展示文本`,description:`Placeholder for the generic contact value input`},"settings.contactQr":{message:`二维码`,description:`Label for a contact's QR-code image`},"settings.contactQrTip":{message:`上传一张二维码,用户扫码即可添加你。`,description:`Tip for the contact QR-code uploader`},"settings.contactAdd":{message:`添加联系方式`,description:`Button to add another contact entry`},"settings.contactEditorHint":{message:`为每个渠道选择类型,并至少填写 值 / 链接 / 二维码 之一;可添加多条。`,description:`Hint at the top of the contacts editor dialog`},"settings.contactInvalidType":{message:`类型只能包含小写字母、数字、- 和 _`,description:`Validation error for an invalid contact type slug`},"settings.contactRowNeedsValue":{message:`每条联系方式至少填写 值、链接 或 二维码 之一`,description:`Validation error when a contact row has no value/url/qr`},"settings.contactInvalidValue":{message:`联系方式内容无效或过长`,description:`Validation error when a contact value/label is invalid or too long`},"settings.contactTooMany":{message:`最多可添加 {max} 条联系方式`,description:`Validation error when too many contacts are added`},"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 代码`,description:`对话框标题:展示当前结果对应的 curl / Python / Node API 调用代码`},"message.viewCodeHint":{message:`查看本次请求对应的 API 代码`,description:`结果卡片操作按钮(U1/U2/下载/扩展…)旁边的 View Code 按钮的悬浮提示。点击按钮会弹出对话框,展示 curl / Python / Node 三种语言下与当前结果等价的 API 调用代码。`},"button.viewCode":{message:`查看代码`,description:`按钮文本:打开对话框,展示当前结果对应的 curl / Python / Node API 调用代码(类似 OpenAI Playground 的 View code)`},"button.getApiKey":{message:`获取 API Key`,description:`API 代码对话框底部的链接文本:点击后跳转到平台控制台用于创建 API Key 的页面`},"button.apiPlatform":{message:`API 平台`,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:`在你自己的代码里运行下面任意一段即可复现当前结果。`,description:`API code dialog: short hint shown above the language tabs. Explains that the snippet below reproduces the current result when run from the user's own code.`},"tab.apiRequest":{message:`请求`,description:`API code dialog tab label for the request snippet (the code that reproduces the current result).`},"tab.apiResponse":{message:`响应`,description:`API code dialog tab label for the live response returned after clicking Run.`},"button.apiRun":{message:`再次运行`,description:`API code dialog button that re-runs the request live against the API using the user's key. The result already exists, so clicking runs it again, and it is billable.`},"button.apiRunning":{message:`运行中…`,description:`API code dialog Run button label while the live request is in flight.`},"button.apiRunConfirm":{message:`确认运行`,description:`Confirm-button label in the dialog that warns running here consumes extra credits.`},"button.viewDocs":{message:`查看文档`,description:`API code dialog footer button that opens the matching API documentation page on the platform.`},"message.apiClickRun":{message:`点击「再次运行」即可使用你的 API Key 实时执行本次请求。`,description:`API code dialog Response tab empty state, shown before the user has run the request.`},"message.apiRunConfirmTitle":{message:`确认运行`,description:`Title of the confirmation dialog shown before re-running a request from the API code dialog.`},"message.apiRunConfirmDesc":{message:`本次运行会用你的 API Key 真实调用接口并额外消耗积分,确认继续吗?`,description:`Body of the confirmation dialog warning that re-running the request is a real, billable API call.`},"message.apiRunConfirmSkip":{message:`不再提示`,description:`Checkbox in the run-confirmation dialog that, when ticked, suppresses the warning on subsequent runs.`},"message.apiRunTaskCreated":{message:`任务已创建,关闭此窗口即可在下方查看最新结果。`,description:`Success banner shown in the API code dialog after a run returns a task id, hinting that the new task already appears in the list behind the dialog.`},"button.apiViewLatest":{message:`关闭并查看`,description:`Button in the API code dialog success banner that closes the dialog so the user can see the newly created task in the list below.`},"message.uploadInProgress":{message:`参考文件正在上传,请稍候再生成`,description:`用户在参考图/视频/音频还未上传完成时点击生成按钮,会弹出的轻量提示,要求用户等待上传完成后再次点击生成。`},"appUpgrade.title":{message:`需要升级`,description:`原生 App 启动时的版本闸门弹窗标题。当客户端版本低于服务端要求时显示,告知用户需要升级 App。`},"appUpgrade.blockMessage":{message:`当前版本过低,请前往应用商店更新到最新版本后再使用。`,description:`强制升级弹窗正文。当客户端版本低于 min_supported 时显示,无法关闭,唯一按钮跳转到应用商店。`},"appUpgrade.softMessage":{message:`有新版本可用,建议前往应用商店更新以获得最佳体验。`,description:`可选升级提示正文。当客户端版本低于 latest 但高于 min_supported 时显示,用户可以选择稍后再说继续使用。`},"appUpgrade.openStore":{message:`前往更新`,description:`升级弹窗主按钮:在系统浏览器中打开 App Store / Play Store 链接。`},"appUpgrade.later":{message:`稍后再说`,description:`软提示升级弹窗的次按钮:忽略本次提示继续使用,仅在非强制升级场景出现。`},"nav.maestro":{message:`Maestro`,description:`导航栏中 Maestro 文章转视频页面的文字,保持为 'Maestro'`},"nav.digitalhuman":{message:`数字人`,description:`导航栏中数字人口播页面的文字`},"settings.localToolsAndroidPermHint":{message:`启用无障碍服务后,AI 助手才能查看并操作你的屏幕。你可以在下方逐项提前授权具体操作。`,description:`Android 设置里 Computer Use 无障碍权限区块的说明。`},"settings.cuConsentTitle":{message:`允许操作?`,description:`按需授权对话框的标题(模型请求执行某个屏幕操作时弹出)。`},"settings.cuConsentMessage":{message:`AI 助手想在你的手机上执行「{action}」操作,是否允许?`,description:`按需授权对话框正文;{action} 为具体的 computer.* 操作名。`},"settings.cuConsentAllow":{message:`允许一次`,description:`按需授权对话框的允许按钮。`},"settings.cuConsentAlways":{message:`总是允许`,description:`按需授权对话框的总是允许按钮;持久化授权,此操作以后不再询问。`},"settings.cuConsentDeny":{message:`拒绝`,description:`按需授权对话框的拒绝按钮。`},"settings.siteServices":{message:`价格`,description:`用户设置弹窗中「全站与服务价格」Tab 的导航标签`},"nav.omni":{message:`Omni 视频`,description:`Omni 视频模块的导航标签`}};export{e as default};
|