@acedatacloud/nexior 3.358.0 → 3.359.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (408) hide show
  1. package/dist/assets/{ApiCodeButton-CiNqmFYp.js → ApiCodeButton-baHNMZlA.js} +1 -1
  2. package/dist/assets/{ApiCodeDialog-z5vXc7Xi.js → ApiCodeDialog-Deo-0c8D.js} +2 -2
  3. package/dist/assets/{Artifacts-BgCwr5i5.js → Artifacts-rB1PHjtI.js} +1 -1
  4. package/dist/assets/{AskUserQuestionCard-c9PYBcSn.js → AskUserQuestionCard-nQkThZB8.js} +1 -1
  5. package/dist/assets/{AudioPreview-uUWI_oVU.js → AudioPreview-D4mig8P6.js} +1 -1
  6. package/dist/assets/{Auth-D7rXWt2c.js → Auth-Dtpa1HYL.js} +1 -1
  7. package/dist/assets/{Bare-QIH-zKDl.js → Bare-D1d7aC_A.js} +1 -1
  8. package/dist/assets/{BotPlaceholder-CDv27X3P.js → BotPlaceholder-DErOB9Ll.js} +1 -1
  9. package/dist/assets/{BottomFooter-CgjUhGFP.js → BottomFooter-CDvP9lAN.js} +1 -1
  10. package/dist/assets/{BrowseConnectors-1biG2Qgb.js → BrowseConnectors-D7-yVc6L.js} +1 -1
  11. package/dist/assets/BrowserPairingDialog-D2PzntfQ.js +1 -0
  12. package/dist/assets/BrowserPairingDialog-FTM3lWFY.css +1 -0
  13. package/dist/assets/{Callback-CgQSpuL1.js → Callback-BMfUhR1v.js} +1 -1
  14. package/dist/assets/{CodeSnippet-CBWP_eZL.js → CodeSnippet-CcBzIfVs.js} +1 -1
  15. package/dist/assets/{Console-XKqCKdZn.js → Console-BPD03jAG.js} +1 -1
  16. package/dist/assets/{Consumption-Byk7yTVz.js → Consumption-Bdsy-uO_.js} +1 -1
  17. package/dist/assets/{Conversation-D8Wm_Zri.js → Conversation-C3fEjLqE.js} +1 -1
  18. package/dist/assets/{Conversation-CA6VWzAh.css → Conversation-lrKxdgf9.css} +1 -1
  19. package/dist/assets/Conversation-xjI0r6fo.js +1 -0
  20. package/dist/assets/CopyToClipboard-CBPEp-6G.css +1 -0
  21. package/dist/assets/CopyToClipboard-DPpOVvXZ.js +1 -0
  22. package/dist/assets/Detail-DTjEGOWO.js +2 -0
  23. package/dist/assets/{Extra-xrdEsbzz.js → Extra-CfX3wLRe.js} +1 -1
  24. package/dist/assets/{FilePreview-B2BrZCN4.js → FilePreview-Doy3Cjm9.js} +1 -1
  25. package/dist/assets/{Hailuo-C2sgwciH.js → Hailuo-D3sm0zE3.js} +1 -1
  26. package/dist/assets/{History-DwzwIr-b.js → History-WaZ3yJDQ.js} +1 -1
  27. package/dist/assets/{ImagePreview-ESZQ89R1.js → ImagePreview-BZEtZTR7.js} +1 -1
  28. package/dist/assets/{ImageWrapper-ByG7FJxY.js → ImageWrapper-BTkthxgU.js} +1 -1
  29. package/dist/assets/Index-0ZyKxn2M.js +1 -0
  30. package/dist/assets/{Index-DG5VlJU5.js → Index-B-GwQwv9.js} +1 -1
  31. package/dist/assets/Index-B3X2-fiB.js +1 -0
  32. package/dist/assets/Index-BALQCGVc.js +1 -0
  33. package/dist/assets/Index-BBI6agf7.js +1 -0
  34. package/dist/assets/Index-BBlw9DGd.js +1 -0
  35. package/dist/assets/{Index-CirWkDBR.js → Index-BCZwNO9a2.js} +1 -1
  36. package/dist/assets/Index-BDYRqCMC.js +1 -0
  37. package/dist/assets/Index-BG6dY3R2.js +1 -0
  38. package/dist/assets/{Index-CiwW7_xF.js → Index-BHSv428B.js} +1 -1
  39. package/dist/assets/Index-BJleeA3Z.js +1 -0
  40. package/dist/assets/{Index-vI1pmCgu.js → Index-BUeOXlBx.js} +1 -1
  41. package/dist/assets/{Index-DSE4_905.js → Index-BgLLnPGz.js} +1 -1
  42. package/dist/assets/{Index-CQX-mX8l.js → Index-C3FefzE1.js} +1 -1
  43. package/dist/assets/{Index-DrFIjAC4.js → Index-CGALs0sN.js} +1 -1
  44. package/dist/assets/Index-CMuq2nPV.js +1 -0
  45. package/dist/assets/{Index-D2m8ATNJ.js → Index-CNKf3lQA.js} +2 -2
  46. package/dist/assets/{Index-Dh6I-L3l.js → Index-ClHTOQOC.js} +1 -1
  47. package/dist/assets/{Index-C8I0_0Jk.css → Index-CsbX_HB_.css} +1 -1
  48. package/dist/assets/{Index-CRHRqEjI.js → Index-D0Q_drcq.js} +1 -1
  49. package/dist/assets/{Index-B-nXto0t.css → Index-D14ip-eO.css} +1 -1
  50. package/dist/assets/Index-D7iBfETy.js +1 -0
  51. package/dist/assets/Index-DA--vrkW.js +1 -0
  52. package/dist/assets/Index-DGT5UfG3.js +1 -0
  53. package/dist/assets/{Index-D8Zqoj4n.js → Index-DL5ChMsT.js} +1 -1
  54. package/dist/assets/Index-DLeqFTBZ.js +1 -0
  55. package/dist/assets/{Index-C7p8OXFc.css → Index-DMFbiTzd.css} +1 -1
  56. package/dist/assets/{Index-Cb9NGvy_.css → Index-DMm2-tI2.css} +1 -1
  57. package/dist/assets/Index-DNazCuED.js +1 -0
  58. package/dist/assets/{Index-YcZrDvKK.js → Index-DS3D6Fzl.js} +1 -1
  59. package/dist/assets/{Index-D8yq23DF.js → Index-DS_6NkkW.js} +1 -1
  60. package/dist/assets/Index-DU66vdch.js +1 -0
  61. package/dist/assets/Index-Dar0Uput.js +1 -0
  62. package/dist/assets/Index-DbITpawu.js +1 -0
  63. package/dist/assets/Index-Di1j4uRc.js +1 -0
  64. package/dist/assets/{Index-alCHtqWd.js → Index-QRNZHaL2.js} +1 -1
  65. package/dist/assets/{Index-CFip9nIj.css → Index-fWSMR3_L.css} +1 -1
  66. package/dist/assets/Index-g_TwNs3z.js +1 -0
  67. package/dist/assets/{Index-D53QUcJW.css → Index-kkW-6KV5.css} +1 -1
  68. package/dist/assets/{Index-BSvC21Tn.js → Index-nfzi6Z2R.js} +1 -1
  69. package/dist/assets/{Index-CIZ0JZtW.css → Index-q3hfYQ5i.css} +1 -1
  70. package/dist/assets/Index-wxkUGoGb.js +1 -0
  71. package/dist/assets/{Invitees-DV3QywcL.js → Invitees-D7yNrFFY.js} +1 -1
  72. package/dist/assets/List-BJC4kROk.css +1 -0
  73. package/dist/assets/List-BM3h2VIo.js +1 -0
  74. package/dist/assets/List-BjJNmIEV.js +1 -0
  75. package/dist/assets/List-CtuRYTLZ.js +1 -0
  76. package/dist/assets/List-DZk_5yHu.css +1 -0
  77. package/dist/assets/{LocalTools-B5ToSxwe.js → LocalTools-DWJ1S3qn.js} +1 -1
  78. package/dist/assets/LocalTools-wQ4F_rrL.js +5 -0
  79. package/dist/assets/Logo-C2UASpQp.js +1 -0
  80. package/dist/assets/Logo-fKY-0-aK.css +1 -0
  81. package/dist/assets/Main-B3xu4dYY.css +1 -0
  82. package/dist/assets/Main-DVdsLiTj.js +1 -0
  83. package/dist/assets/{Message-Dr93wREd.css → Message-D6tWmQRB.css} +1 -1
  84. package/dist/assets/Message-D8PCk54R.js +3 -0
  85. package/dist/assets/{Model-Dt3P_UQQ.js → Model-BwK13Mj9.js} +1 -1
  86. package/dist/assets/Navigator-C1hy0s1U.js +8 -0
  87. package/dist/assets/Navigator-DJAPAK_Y.css +1 -0
  88. package/dist/assets/{NotFound-BopsMgLM.js → NotFound-Dqa6fAIE.js} +1 -1
  89. package/dist/assets/{PageHeader-Cd9mBW43.js → PageHeader-DELqXfxi.js} +1 -1
  90. package/dist/assets/Pay-Ca_NWGhM.js +1 -0
  91. package/dist/assets/{Player-DQNg6dOq.js → Player--lSClNNH.js} +1 -1
  92. package/dist/assets/{Poivelle-0k_mctcv.js → Poivelle-C11Cmr7C.js} +1 -1
  93. package/dist/assets/{RealtimeCall-BgkQdni0.js → RealtimeCall-C1WJIXj6.js} +1 -1
  94. package/dist/assets/{ReportButton-CuTsbpH1.js → ReportButton-DHPSYmbK.js} +1 -1
  95. package/dist/assets/{ReportDialog-dN-kkVrJ.js → ReportDialog-CiMYnLJx.js} +1 -1
  96. package/dist/assets/ScenarioPaymentMode-KgrScg5P.js +1 -0
  97. package/dist/assets/ScheduledTasks-BFqkFza_.js +2 -0
  98. package/dist/assets/ScheduledTasks-Bw4xzuMD.css +1 -0
  99. package/dist/assets/{SolanaWalletPickerDialog-CS7bSwXe.js → SolanaWalletPickerDialog-BZUGBOj2.js} +1 -1
  100. package/dist/assets/Status-DN2GAXps.js +1 -0
  101. package/dist/assets/{Status-BDIpm7RB.css → Status-Dqmgq95G.css} +1 -1
  102. package/dist/assets/{Subscribe-zhWEFj1j.js → Subscribe-CY0bXYPC.js} +1 -1
  103. package/dist/assets/{TabSwitcher-C4UtlgZ0.js → TabSwitcher-BC4B1I3N.js} +1 -1
  104. package/dist/assets/Tts-rq3pVjBP.js +1 -0
  105. package/dist/assets/{VideoPlayer-B9ZoxGwN.js → VideoPlayer-deIEsBH5.js} +1 -1
  106. package/dist/assets/{VideoPreview-D0f8om32.js → VideoPreview-Yit2lulu.js} +1 -1
  107. package/dist/assets/arrow-down-GWeZNjBE.js +1 -0
  108. package/dist/assets/{arrow-down-wide-narrow-D9hT9P8T.js → arrow-down-wide-narrow-Baf9DH9Q.js} +1 -1
  109. package/dist/assets/arrow-left-Cb3bQp-f.js +1 -0
  110. package/dist/assets/arrow-right-DvDuE99k.js +1 -0
  111. package/dist/assets/arrow-up-B1VLgauu.js +1 -0
  112. package/dist/assets/{authorizeFlow-DjzUZZcO.js → authorizeFlow-CZQ9fXHX.js} +1 -1
  113. package/dist/assets/{avatar-DIY5kVwM.js → avatar-CNqzEu5a.js} +1 -1
  114. package/dist/assets/{basic-C9st9xfO.js → basic-Dehq1VKY.js} +1 -1
  115. package/dist/assets/{book-open-89ot7rat.js → book-open-k-8h6AQM.js} +1 -1
  116. package/dist/assets/{box-C1K_05R1.js → box-DMe33HP5.js} +1 -1
  117. package/dist/assets/{boxes-CVfQGj6z.js → boxes-BddRpfmw.js} +1 -1
  118. package/dist/assets/{brain-DFSeKAZC.js → brain-DnV6VrrB.js} +1 -1
  119. package/dist/assets/{chart-no-axes-combined-k3QiYa3s.js → chart-no-axes-combined-Cwjs5nYT.js} +1 -1
  120. package/dist/assets/{chat-CPepUbBA.js → chat-CLjz6JEm.js} +1 -1
  121. package/dist/assets/{chat-CPyDS1s8.js → chat-CXkcYUKq.js} +1 -1
  122. package/dist/assets/{chat-BY9DKfAi.js → chat-CcSpUgkY.js} +1 -1
  123. package/dist/assets/{chat-yJqk9kt9.js → chat-CgPWqT6E.js} +1 -1
  124. package/dist/assets/{chat-DCsVMCF2.js → chat-CvN3CWdu.js} +1 -1
  125. package/dist/assets/{chat-duM8vKdA.js → chat-D91Hmjlb.js} +1 -1
  126. package/dist/assets/{chat-DPYlE44u.js → chat-DEkZV9iK.js} +1 -1
  127. package/dist/assets/{chat-CA0MD_st.js → chat-DIpceuMx.js} +1 -1
  128. package/dist/assets/{chat-C1uZputZ.js → chat-DPB9kvDA.js} +1 -1
  129. package/dist/assets/{chat-tfvZdHmk.js → chat-DjqHq4_f.js} +1 -1
  130. package/dist/assets/{chat-DsACa9Pk.js → chat-DrKLvU2W.js} +1 -1
  131. package/dist/assets/{chat-CFPaNnVM.js → chat-Dtw60MWq.js} +1 -1
  132. package/dist/assets/{chat-BbW_31UJ.js → chat-ElsfXAuZ.js} +1 -1
  133. package/dist/assets/{chat-CwJDPmon.js → chat-NA5rrX_r.js} +1 -1
  134. package/dist/assets/{chat-C-7WVcbW.js → chat-WG_nIFDy.js} +1 -1
  135. package/dist/assets/{chat-CmjlhXy_.js → chat-geiX4yJF.js} +1 -1
  136. package/dist/assets/{chat-D0orhGlF.js → chat-hwzsraaF.js} +1 -1
  137. package/dist/assets/{chat-DpRbp8uT.js → chat-lMTbLC_k.js} +1 -1
  138. package/dist/assets/{chat-CK9a-_Ni.js → chat-s_gscg0W.js} +1 -1
  139. package/dist/assets/check-DkM8oHOT.js +1 -0
  140. package/dist/assets/chevron-down-Dx4wMgRS.js +1 -0
  141. package/dist/assets/chevron-right-CncLbKEy.js +1 -0
  142. package/dist/assets/circle-check-D2nSO1dk.js +1 -0
  143. package/dist/assets/{circle-question-mark-C5ETt-Gy.js → circle-question-mark-DoJBAerP.js} +1 -1
  144. package/dist/assets/{clipboard-list-BaOyMkLK.js → clipboard-list-DegNGwms.js} +1 -1
  145. package/dist/assets/clock-CKSPDogH.js +1 -0
  146. package/dist/assets/code-DEZlEcJn.js +1 -0
  147. package/dist/assets/{codingBridge-ZH5aQjeX.js → codingBridge-rAAvOFbf.js} +2 -2
  148. package/dist/assets/{codingBridgeNotify-Djdt8v1B.js → codingBridgeNotify-B4DkodFC.js} +2 -2
  149. package/dist/assets/{coins-o7-8OSvE.js → coins-BOWvY_pO.js} +1 -1
  150. package/dist/assets/{collapse-B7B33h1p.js → collapse-BrPGjxsq.js} +1 -1
  151. package/dist/assets/{constants-CX4j41GC.js → constants-BAu6gjb8.js} +1 -1
  152. package/dist/assets/{copy-CS92scYJ.js → copy-De64oDma.js} +1 -1
  153. package/dist/assets/{createTaskActions-DLdbSeB0.js → createTaskActions-DipdneQM.js} +1 -1
  154. package/dist/assets/{digitalhuman-CRLcje7j.js → digitalhuman-C-NZBpp5.js} +1 -1
  155. package/dist/assets/{dollar-sign-Dp4uO1oi.js → dollar-sign-DlotqO8S.js} +1 -1
  156. package/dist/assets/{download-BdbUJy-0.js → download-BF36b2VY.js} +1 -1
  157. package/dist/assets/{drawer-BWJ3_fqW.js → drawer-DZIcn6a0.js} +1 -1
  158. package/dist/assets/{dropdown--LXlsWOR.js → dropdown-3j2HoEGx.js} +1 -1
  159. package/dist/assets/{dropdown-gJTX6f0h.js → dropdown-DL_-rt-E.js} +1 -1
  160. package/dist/assets/{ellipsis-CGG2t4rN.js → ellipsis-di9jyoc-.js} +1 -1
  161. package/dist/assets/esm-B5A_43-8.js +1 -0
  162. package/dist/assets/{esm-DJYfkLDv.js → esm-BXqbS1_p.js} +3 -3
  163. package/dist/assets/{esm-BdQ3IlZD.js → esm-CtPBfBCD.js} +1 -1
  164. package/dist/assets/{esm-BbAKv0FA.js → esm-DN67DjmJ.js} +1 -1
  165. package/dist/assets/{esm-xK2aBMtJ.js → esm-DzxH8W0e.js} +2 -2
  166. package/dist/assets/{esm-COArLl5w.js → esm-bSzrNAkV.js} +2 -2
  167. package/dist/assets/{esm-ClxEw27d.js → esm-hNLAIKn7.js} +1 -1
  168. package/dist/assets/{external-link-B_1us9v2.js → external-link-CpeuWi9e.js} +1 -1
  169. package/dist/assets/{eye-B7qn04JQ.js → eye-DufEFP8H.js} +1 -1
  170. package/dist/assets/{file-BexmqRy7.js → file-AYkZYXWl.js} +1 -1
  171. package/dist/assets/{file-output-BJhPINIu.js → file-output-wt5a08Gq.js} +1 -1
  172. package/dist/assets/{file-text-CJaP1sSt.js → file-text-CvQozW4t.js} +1 -1
  173. package/dist/assets/{fish-BJ8_esph.js → fish-CyMK1KL4.js} +1 -1
  174. package/dist/assets/{flux-St5avyWB.js → flux-BzXgowgs.js} +1 -1
  175. package/dist/assets/{folder-CVwMb5LW.js → folder-CAZNmXsx.js} +1 -1
  176. package/dist/assets/gauge-CethS0V1.js +1 -0
  177. package/dist/assets/{globe-BUY6KxOP.js → globe-CzHj-iBe.js} +1 -1
  178. package/dist/assets/{grokvideo-BzBXIfSN.js → grokvideo-BGu4Ran5.js} +1 -1
  179. package/dist/assets/{hailuo-Ehj7U293.js → hailuo-D59CuJ9s.js} +1 -1
  180. package/dist/assets/{headphones-DP3Pmamv.js → headphones-dyZLv3o9.js} +1 -1
  181. package/dist/assets/{history-Drg92s0e.js → history-HWyScJMt.js} +1 -1
  182. package/dist/assets/{house-B1TwBkue.js → house-gqPOr4M0.js} +1 -1
  183. package/dist/assets/{i18n-thhk7vzg.js → i18n-D4nr5BAx.js} +1 -1
  184. package/dist/assets/{image-DLh3kiN0.js → image-BBBtc1dR.js} +1 -1
  185. package/dist/assets/imageRequests-DayCUFyY.js +1 -0
  186. package/dist/assets/{index-DW-VIENs.css → index-BIRoiZhq.css} +1 -1
  187. package/dist/assets/index-Bbaw1dFE.js +570 -0
  188. package/dist/assets/{index.browser.esm-D1e4_8C8.js → index.browser.esm-SuvzsTe4.js} +1 -1
  189. package/dist/assets/{index.es-lCrLu01L.js → index.es-ijsIYXTm.js} +1 -1
  190. package/dist/assets/{info-JrDUNc3f.js → info-BLyQemIV.js} +1 -1
  191. package/dist/assets/{input-number-C61XfqeG.js → input-number-DEovBxHn.js} +1 -1
  192. package/dist/assets/{key-round-DXFWRMd5.js → key-round-CUFYztec.js} +1 -1
  193. package/dist/assets/{kling-DoGXHJTZ.js → kling-CaPRmmka.js} +1 -1
  194. package/dist/assets/{languages-Cgvplr1A.js → languages-LdWj9uNe.js} +1 -1
  195. package/dist/assets/{laptop-I-UIq9Vj.js → laptop-DIczZ0nW.js} +1 -1
  196. package/dist/assets/{lightbulb-DQPhT5Fv.js → lightbulb-Ds4_3-FZ.js} +1 -1
  197. package/dist/assets/{link-DqeldxUU.js → link-BYgr6z-k.js} +1 -1
  198. package/dist/assets/loader-circle-Dk_AuDkG.js +1 -0
  199. package/dist/assets/{lock-Cyg1wnc-.js → lock-C9wBz4Q3.js} +1 -1
  200. package/dist/assets/{qrart-qKp7QNwE.js → luma-bxTSJLlY.js} +1 -1
  201. package/dist/assets/maestro-C4xjgIjN.js +1 -0
  202. package/dist/assets/maestroLanguages-DNQExYYZ.js +1 -0
  203. package/dist/assets/{mail-qBSkwZDU.js → mail-BNNvssIj.js} +1 -1
  204. package/dist/assets/{message-circle-BQZnKfis.js → message-circle-DGTFJhdt.js} +1 -1
  205. package/dist/assets/{mic-DcJCGd7v.js → mic-CUCTvrr3.js} +1 -1
  206. package/dist/assets/{midjourney-CT0W-uYP.js → midjourney-DQB1dyIJ.js} +1 -1
  207. package/dist/assets/{minimax-Pf3RXf5W.js → minimax-BvBea-tF.js} +1 -1
  208. package/dist/assets/{mobileLocalExec-ChALdNhl.js → mobileLocalExec-CqYbbTdR.js} +2 -2
  209. package/dist/assets/{models-D6J60Ang.js → models-PmOthmjQ.js} +1 -1
  210. package/dist/assets/{monitor-C6EmGPtA.js → monitor-DTCuS4Hl.js} +1 -1
  211. package/dist/assets/{mouse-pointer-2-BJ6u3j3g.js → mouse-pointer-2-BjFZVXsj.js} +1 -1
  212. package/dist/assets/music-2-DGqemmHA.js +1 -0
  213. package/dist/assets/{nanobanana-DHdmNSY7.js → nanobanana-ColWxO29.js} +1 -1
  214. package/dist/assets/{omni-DNB82gzr.js → omni-DaowrSHF.js} +1 -1
  215. package/dist/assets/{openaiimage-67EecuUS.js → openaiimage-B9aka7O4.js} +1 -1
  216. package/dist/assets/{pagination-D8oUwQ9k.js → pagination-C-DvTKA-.js} +1 -1
  217. package/dist/assets/{pagination-D0KEjXO1.js → pagination-CqsKOl-X.js} +1 -1
  218. package/dist/assets/{pagination-Bh_-G5Ma.js → pagination-DRvbhg2q.js} +1 -1
  219. package/dist/assets/{palette-BP1_UTBm.js → palette-DGuioZZF.js} +1 -1
  220. package/dist/assets/{paperclip-bLPkbpvE.js → paperclip-CkNjqGug.js} +1 -1
  221. package/dist/assets/{pause-DThYSFfn.js → pause-D84fJY8f.js} +1 -1
  222. package/dist/assets/{pencil-U1H8ouvD.js → pencil-DW3hdHFT.js} +1 -1
  223. package/dist/assets/{sora-BkHyNKjN.js → pika-Ck3fX2XP.js} +1 -1
  224. package/dist/assets/{pixverse-DzV6JmiT.js → pixverse-DvSDFq2f.js} +1 -1
  225. package/dist/assets/play-9WbpHjQ8.js +1 -0
  226. package/dist/assets/{plug-qlX-ubkq.js → plug-jykIaLNB.js} +1 -1
  227. package/dist/assets/plus-LG0WgSW0.js +1 -0
  228. package/dist/assets/{poivelle-BpE_pkIX.js → poivelle-BKgEX3Qw.js} +1 -1
  229. package/dist/assets/{popover-Bf9u8EI7.js → popover-98sSPRJY.js} +1 -1
  230. package/dist/assets/{producer-B0atTy_p.js → producer-hwOOSO2-.js} +1 -1
  231. package/dist/assets/{luma-gSaEzmni.js → qrart-BrkPke-G.js} +1 -1
  232. package/dist/assets/{realtime-C9h-cRy7.js → realtime-IEDv2Q4_.js} +1 -1
  233. package/dist/assets/{refresh-cw-DKpjew0c.js → refresh-cw-Bj0HdfbL.js} +1 -1
  234. package/dist/assets/rotate-ccw-DwqCr7Li.js +1 -0
  235. package/dist/assets/rotate-cw-Dhpw9MQa.js +1 -0
  236. package/dist/assets/{row-CSMwp8He.js → row-CsAJ25m0.js} +1 -1
  237. package/dist/assets/{scenarioPayment-BQxaybOL.js → scenarioPayment-s_hqMl_Z.js} +1 -1
  238. package/dist/assets/search-XuVnwR9U.js +1 -0
  239. package/dist/assets/{seedance-CgiMOVoI.js → seedance-BxOSM3-u.js} +1 -1
  240. package/dist/assets/{seedream-CCN_-T37.js → seedream-CFf-n3Jr.js} +1 -1
  241. package/dist/assets/{select-BPmmsYsL.js → select-D0gYN9N3.js} +1 -1
  242. package/dist/assets/serp-Bm-4BqzA.js +1 -0
  243. package/dist/assets/{shield-DYsoSjvj.js → shield-DnkMrYoN.js} +1 -1
  244. package/dist/assets/{shuffle-C2cXZMq5.js → shuffle-m5wb4Z8n.js} +1 -1
  245. package/dist/assets/site-B9bNGPDp.js +1 -0
  246. package/dist/assets/{site-KpCMucOQ.js → site-BBY-KjEs.js} +1 -1
  247. package/dist/assets/site-BFzbqR6B.js +1 -0
  248. package/dist/assets/site-BUAevgYO.js +1 -0
  249. package/dist/assets/site-BU_tgBOc.js +1 -0
  250. package/dist/assets/site-Bt-5LCIk.js +1 -0
  251. package/dist/assets/site-C1s3m4wS.js +1 -0
  252. package/dist/assets/site-C8Q7Vs05.js +1 -0
  253. package/dist/assets/site-CGDFhgEE.js +1 -0
  254. package/dist/assets/site-CXE47oRI.js +1 -0
  255. package/dist/assets/site-CgY1dD-J.js +1 -0
  256. package/dist/assets/site-CjYXcRar.js +1 -0
  257. package/dist/assets/site-CqAZVRQ5.js +1 -0
  258. package/dist/assets/site-CsGR8gMq.js +1 -0
  259. package/dist/assets/site-DsmH5PLg.js +1 -0
  260. package/dist/assets/site-DzMlHY0-.js +1 -0
  261. package/dist/assets/site-Vo2MP55Y.js +1 -0
  262. package/dist/assets/site-zGUINcZY.js +1 -0
  263. package/dist/assets/{slider-BkpC12ud.js → slider-BQkmPGd3.js} +1 -1
  264. package/dist/assets/{solana-BXAF_MAk.js → solana-CyLlZ_GW.js} +2 -2
  265. package/dist/assets/{solana-wallets-DX1uEpyK.js → solana-wallets-qhTWyZRX.js} +2 -2
  266. package/dist/assets/{solana-wallets-vue-BnsXwDtg.js → solana-wallets-vue-BzpfUPqi.js} +1 -1
  267. package/dist/assets/{wan-DKcIIxSa.js → sora-BAU8CxCb.js} +1 -1
  268. package/dist/assets/{sparkles-BwWvghRX.js → sparkles-UH-VPT1H.js} +1 -1
  269. package/dist/assets/square-gUBZkyxY.js +1 -0
  270. package/dist/assets/{store-p6xQ2bAP.js → store-B5pp5uHg.js} +1 -1
  271. package/dist/assets/{suno-CFFLk4vG.js → suno-CJUkgptx.js} +1 -1
  272. package/dist/assets/{switch-B42bu5O7.js → switch-SImeRhlM.js} +1 -1
  273. package/dist/assets/{table-BD6Hv1lx.js → table-6sUUiL5j.js} +1 -1
  274. package/dist/assets/{tabs-MtKgGPfn.js → tabs-Djxk5aEt.js} +1 -1
  275. package/dist/assets/{tag-q7oTj4uz.js → tag-Cnl9tJWZ.js} +1 -1
  276. package/dist/assets/terminal-DwaDxW8S.js +1 -0
  277. package/dist/assets/{time-picker-BcOKI3mu.js → time-picker-Cz-FczVa.js} +1 -1
  278. package/dist/assets/{tooltip-DKF_sGto.js → tooltip-Cfbg70mI.js} +1 -1
  279. package/dist/assets/{trash-2-Cf1lYl_N.js → trash-2-D1buIvtL.js} +1 -1
  280. package/dist/assets/{triangle-alert-_LVPy92s.js → triangle-alert-CKxXMrIy.js} +1 -1
  281. package/dist/assets/{upload-C1h3h1KN.js → upload-1qOyy5pc.js} +1 -1
  282. package/dist/assets/{upload-CTvrSmVZ.js → upload-CatJa7lp.js} +1 -1
  283. package/dist/assets/{usage-Dppnw4Fs.js → usage-04z9NZRc.js} +1 -1
  284. package/dist/assets/{usage-BwijwtIt.js → usage-73yEs7Mu.js} +1 -1
  285. package/dist/assets/{usage-BhJBxTFm.js → usage-AXtTdmov.js} +1 -1
  286. package/dist/assets/{usage-BT3Vpw6D.js → usage-BCx4gHkz.js} +1 -1
  287. package/dist/assets/{usage-P0GwdDpe.js → usage-BbLzE6-S.js} +1 -1
  288. package/dist/assets/{usage-CpAzsFQJ.js → usage-BrU23hEz.js} +1 -1
  289. package/dist/assets/usage-BtE70Zyx.js +1 -0
  290. package/dist/assets/{usage-0JZzyYFH.js → usage-CQF8OlL9.js} +1 -1
  291. package/dist/assets/{usage-DT-44dxH.js → usage-D2P27yNE.js} +1 -1
  292. package/dist/assets/{usage-L3l5Eufa.js → usage-DPrYoBCw.js} +1 -1
  293. package/dist/assets/{usage-CnsPzezH.js → usage-DcCek_bo.js} +1 -1
  294. package/dist/assets/{usage-BzIokmAu.js → usage-DdyGDvEE.js} +1 -1
  295. package/dist/assets/usage-Dja9rFWB.js +1 -0
  296. package/dist/assets/{usage--Zn0QeyQ.js → usage-Dp2RJpVP.js} +1 -1
  297. package/dist/assets/{usage-DdlX40M5.js → usage-DzHuO39g.js} +1 -1
  298. package/dist/assets/{usage-C1FkKtgn.js → usage-IPVqlr7d.js} +1 -1
  299. package/dist/assets/{usage-XjEHiZAl.js → usage-ROzxvUW5.js} +1 -1
  300. package/dist/assets/{usage-CAL51pBB.js → usage-h3vAtDis.js} +1 -1
  301. package/dist/assets/user-DuM9h92v.js +1 -0
  302. package/dist/assets/{veo-sG-RXLUg.js → veo-DSe5f36P.js} +1 -1
  303. package/dist/assets/{video-BaKcHmj6.js → video-CSoIuko1.js} +1 -1
  304. package/dist/assets/{volume-2-CY9fv2mC.js → volume-2-DN7QqF1y.js} +1 -1
  305. package/dist/assets/{wallet-3BCb_2vC.js → wallet-C0zjncIV.js} +1 -1
  306. package/dist/assets/{pika-CWpxgVbz.js → wan-BU-IhRnG.js} +1 -1
  307. package/dist/assets/{wand-sparkles-DNHHWq-f.js → wand-sparkles-C0IhvDEL.js} +1 -1
  308. package/dist/assets/{web-CFTtGOqY.js → web-BUTrUhex.js} +1 -1
  309. package/dist/assets/{web-DK27GiIu.js → web-CXenM2_s.js} +1 -1
  310. package/dist/assets/{web-oUobTiGG.js → web-YEbwbdEF.js} +1 -1
  311. package/dist/assets/{web-CFOndwVN.js → web-aStpYMNw.js} +1 -1
  312. package/dist/assets/{web-BLn3-jMx.js → web-iHTGPlJN.js} +1 -1
  313. package/dist/assets/{webextrator-C8hHzuf5.js → webextrator-D5ICXMRu.js} +1 -1
  314. package/dist/assets/x402-CPM8RH8s.js +1 -0
  315. package/dist/assets/{zap-BQE62bDm.js → zap-D48bHrSH.js} +1 -1
  316. package/dist/index.html +5 -5
  317. package/package.json +2 -2
  318. package/dist/assets/BrowserPairingDialog-BIBE8_J9.js +0 -1
  319. package/dist/assets/BrowserPairingDialog-DJiPCPev.css +0 -1
  320. package/dist/assets/Conversation-dprhbIvD.js +0 -1
  321. package/dist/assets/CopyToClipboard-BMiCg7d2.js +0 -1
  322. package/dist/assets/CopyToClipboard-CAM7F2fv.css +0 -1
  323. package/dist/assets/Detail-BxuN8k_9.js +0 -2
  324. package/dist/assets/Index-B3f-1Ux6.js +0 -1
  325. package/dist/assets/Index-B8RYaLCH.js +0 -1
  326. package/dist/assets/Index-BMpUhZ9q.js +0 -1
  327. package/dist/assets/Index-B_Iz0WQh.js +0 -1
  328. package/dist/assets/Index-Bpb4LsMP.js +0 -1
  329. package/dist/assets/Index-C6oXyNiR.js +0 -1
  330. package/dist/assets/Index-CP8kmAF9.js +0 -1
  331. package/dist/assets/Index-CZTEOg82.js +0 -1
  332. package/dist/assets/Index-C_69L5xX.js +0 -1
  333. package/dist/assets/Index-Cj5n4RJn2.js +0 -1
  334. package/dist/assets/Index-CmbZFmpj.js +0 -1
  335. package/dist/assets/Index-CvB6FNVL.js +0 -1
  336. package/dist/assets/Index-D3VSffBn.js +0 -1
  337. package/dist/assets/Index-DK143DDK.js +0 -1
  338. package/dist/assets/Index-DOXpcGvC.js +0 -1
  339. package/dist/assets/Index-DfULgGDk.js +0 -1
  340. package/dist/assets/Index-DpsQqW9b.js +0 -1
  341. package/dist/assets/Index-DtxAmXcP.js +0 -1
  342. package/dist/assets/Index-DzfWc7R3.js +0 -1
  343. package/dist/assets/Index-iHUpduNy.js +0 -1
  344. package/dist/assets/List-BARsKpTh.js +0 -1
  345. package/dist/assets/List-BW8OTe4G.js +0 -1
  346. package/dist/assets/List-DEqv2XDz.css +0 -1
  347. package/dist/assets/List-DPzL-ykG.css +0 -1
  348. package/dist/assets/List-DuRVdIUe.js +0 -1
  349. package/dist/assets/LocalTools-BhSf8_Y4.js +0 -5
  350. package/dist/assets/Logo-BCsapzVO.js +0 -1
  351. package/dist/assets/Logo-WBk_MhiY.css +0 -1
  352. package/dist/assets/Main-Cy6-Ifg-.js +0 -1
  353. package/dist/assets/Main-DWK8rjPk.css +0 -1
  354. package/dist/assets/Message-DlnFjCzr.js +0 -3
  355. package/dist/assets/Navigator-DcUhkdaf.css +0 -1
  356. package/dist/assets/Navigator-E7FCgVs1.js +0 -8
  357. package/dist/assets/Pay-0x3gmRoq.js +0 -1
  358. package/dist/assets/ScheduledTasks-CvrES_A8.css +0 -1
  359. package/dist/assets/ScheduledTasks-D-qGHm0o.js +0 -2
  360. package/dist/assets/Status-AZzfal7k.js +0 -1
  361. package/dist/assets/Tts-CqGAcIoB.js +0 -1
  362. package/dist/assets/arrow-down-CnzBxJOK.js +0 -1
  363. package/dist/assets/arrow-left-igb8AMz_.js +0 -1
  364. package/dist/assets/arrow-right-CGXNgdDZ.js +0 -1
  365. package/dist/assets/arrow-up-Drhcfl9s.js +0 -1
  366. package/dist/assets/check-sZ3LdzYe.js +0 -1
  367. package/dist/assets/chevron-down-B9A1h-il.js +0 -1
  368. package/dist/assets/chevron-right-CSsOai_n.js +0 -1
  369. package/dist/assets/circle-check-Cm0vi3QJ.js +0 -1
  370. package/dist/assets/clock-BRjX06BR.js +0 -1
  371. package/dist/assets/code-4fXy3EJM.js +0 -1
  372. package/dist/assets/esm-D0SEwzQg.js +0 -1
  373. package/dist/assets/gauge-DZ-l2vCx.js +0 -1
  374. package/dist/assets/imageRequests-BMlSTRGz.js +0 -1
  375. package/dist/assets/index-DKnFv8oI.js +0 -570
  376. package/dist/assets/loader-circle-BOu6l4ZA.js +0 -1
  377. package/dist/assets/maestro-DpyfDSpq.js +0 -1
  378. package/dist/assets/maestro-EccNg3GS.js +0 -1
  379. package/dist/assets/music-2-CuTbesAz.js +0 -1
  380. package/dist/assets/play-DUVZyA7n.js +0 -1
  381. package/dist/assets/plus-Coq-6ZBW.js +0 -1
  382. package/dist/assets/rotate-ccw-mdSBnuP9.js +0 -1
  383. package/dist/assets/rotate-cw-C-F1OyBK.js +0 -1
  384. package/dist/assets/search-C73sRSFS.js +0 -1
  385. package/dist/assets/serp-75AFhZeM.js +0 -1
  386. package/dist/assets/site-AhbD1cAy.js +0 -1
  387. package/dist/assets/site-ApsDzXmT.js +0 -1
  388. package/dist/assets/site-B5aK2u48.js +0 -1
  389. package/dist/assets/site-BSs5bzZR.js +0 -1
  390. package/dist/assets/site-Bp09pxfx.js +0 -1
  391. package/dist/assets/site-CAj6esyl.js +0 -1
  392. package/dist/assets/site-CFOpzeB9.js +0 -1
  393. package/dist/assets/site-CgKjNFLm.js +0 -1
  394. package/dist/assets/site-CpvOXr5j.js +0 -1
  395. package/dist/assets/site-Cz55lBe5.js +0 -1
  396. package/dist/assets/site-D0_3FJ19.js +0 -1
  397. package/dist/assets/site-DSnZF7EC.js +0 -1
  398. package/dist/assets/site-DUtm0lCL.js +0 -1
  399. package/dist/assets/site-Dyw5SF13.js +0 -1
  400. package/dist/assets/site-HEpGPpP9.js +0 -1
  401. package/dist/assets/site-awqEUONZ.js +0 -1
  402. package/dist/assets/site-wXX_sllY.js +0 -1
  403. package/dist/assets/square-B1xtLDOg.js +0 -1
  404. package/dist/assets/terminal-bgNmS1ov.js +0 -1
  405. package/dist/assets/usage-CMQfpqxQ.js +0 -1
  406. package/dist/assets/usage-UhwLGkJP.js +0 -1
  407. package/dist/assets/user-F688Rsm5.js +0 -1
  408. /package/dist/assets/{imageRequests-DGx3ElFQ.css → ScenarioPaymentMode-DGx3ElFQ.css} +0 -0
@@ -1 +1 @@
1
- var e={"thinking.inProgress":{message:`En cours de réflexion...`,description:`Étiquette affichée pendant que le modèle génère le processus de raisonnement`},"thinking.done":{message:`Processus de réflexion`,description:`Étiquette utilisée pour plier l'affichage du processus de raisonnement une fois le modèle terminé`},"button.thinkDeeper":{message:`Réfléchir plus profondément`,description:`Bouton pour réfléchir plus profondément`},"button.deepsearch":{message:`Recherche approfondie`,description:`Bouton pour une recherche approfondie`},"button.search":{message:`Rechercher`,description:`Bouton de recherche`},"button.edit":{message:`Modifier le message`,description:`Modifier le message envoyé`},"modelGroup.chatgpt":{message:`ChatGPT`,description:`Nom du modèle du service, c'est-à-dire GPT`},"modelGroup.chatgptDescription":{message:`Modèle d'IA développé par OpenAI`,description:`Description du modèle ChatGPT`},"modelGroup.deepseek":{message:`DeepSeek`,description:`Nom du modèle du service, c'est-à-dire DeepSeek`},"modelGroup.deepseekDescription":{message:`Modèle d'IA développé par DeepSeek`,description:`Description du modèle DeepSeek`},"modelGroup.grok":{message:`Grok`,description:`Nom du modèle du service, c'est-à-dire Grok`},"modelGroup.grokDescription":{message:`Modèle d'IA développé par xAI`,description:`Description du modèle Grok3`},"modelGroup.gemini":{message:`Gemini`,description:`Nom du modèle du service, c'est-à-dire Gemini`},"modelGroup.geminiDescription":{message:`Modèle d'IA développé par Google`,description:`Description du groupe de modèles Gemini`},"modelGroup.claude":{message:`Claude`,description:`Nom du modèle du service, c'est-à-dire Claude`},"modelGroup.claudeDescription":{message:`Modèle d'IA développé par Anthropic`,description:`Description du groupe de modèles Claude`},"modelGroup.kimi":{message:`Kimi`,description:`Nom du modèle du service, c'est-à-dire Kimi`},"modelGroup.kimiDescription":{message:`Modèle d'IA développé par Dark Side of the Moon`,description:`Description du groupe de modèles Kimi`},"modelGroup.glm":{message:`GLM`,description:`Nom du modèle du service, c'est-à-dire GLM`},"modelGroup.glmDescription":{message:`Modèle de langage développé par Zhiyu AI`,description:`Description du groupe de modèles GLM`},"model.56Sol":{message:`gpt-5.6-sol`,description:`Nom du modèle du service, c'est-à-dire GPT 5.6 Sol`},"model.56SolDescription":{message:`Modèle phare de dernière génération GPT 5.6 Sol`,description:`Description du modèle GPT 5.6 Sol`},"model.56Terra":{message:`gpt-5.6-terra`,description:`Nom du modèle du service, c'est-à-dire GPT 5.6`},"model.56TerraDescription":{message:`Modèle phare de dernière génération GPT 5.6`,description:`Description du modèle GPT 5.6`},"model.56Luna":{message:`gpt-5.6-luna`,description:`Nom du modèle du service, c'est-à-dire GPT 5.6 Luna`},"model.56LunaDescription":{message:`Modèle GPT 5.6 plus rapide et plus léger`,description:`Description du modèle GPT 5.6 Luna`},"model.freeTag":{message:`Gratuit`,description:`Badge affiché à côté des modèles gratuits dans le sélecteur de modèles`},"model.deepseekChat":{message:`3.0`,description:`Nom du modèle du service, c'est-à-dire DeepSeek Chat`},"model.deepseekChatDescription":{message:`Pour les tâches quotidiennes`,description:`Description du modèle DeepSeek Chat`},"model.deepseekReasoner":{message:`R1`,description:`Nom du modèle du service, c'est-à-dire DeepSeek Reasoner`},"model.deepseekReasonerDescription":{message:`Pour le raisonnement et les questions de réflexion approfondie`,description:`Description du modèle DeepSeek Reasoner`},"model.deepseekChat32":{message:`3.2`,description:`Nom du modèle du service, c'est-à-dire DeepSeek V3.2 Exp`},"model.deepseekChat32Description":{message:`Dernière version expérimentale`,description:`Description du modèle expérimental DeepSeek V3.2`},"model.deepseekV4Flash":{message:`4.0`,description:`Nom du modèle du service, c'est-à-dire DeepSeek V4 Flash`},"model.deepseekV4FlashDescription":{message:`Modèle phare léger de dernière génération, 1M de contexte`,description:`Description du modèle DeepSeek V4 Flash`},"model.grok4":{message:`grok-4`,description:`Nom du modèle du service, c'est-à-dire Grok 4`},"model.grok4Description":{message:`General-purpose K2 model for compatible workflows`,description:`Description du modèle Grok 4`},"model.grok3":{message:`grok-3`,description:`Nom du modèle du service`},"model.grok3Description":{message:`Pour la plupart des tâches`,description:`Description du modèle Grok3`},"model.gemini30Pro":{message:`gemini-3.0-pro`,description:`Nom du modèle du service, c'est-à-dire Gemini 3.0 Pro`},"model.gemini30ProDescription":{message:`Modèle le plus avancé actuellement`,description:`Description du modèle Gemini 3.0 Pro`},"model.gemini31Pro":{message:`gemini-3.1-pro`,description:`Nom du modèle du service, c'est-à-dire Gemini 3.0 Pro`},"model.gemini31ProDescription":{message:`Modèle le plus avancé actuellement`,description:`Description du modèle Gemini 3.0 Pro`},"model.gemini25Pro":{message:`gemini-2.5-pro`,description:`Nom du modèle du service, c'est-à-dire Gemini 2.5 Pro`},"model.gemini25ProDescription":{message:`Pour des tâches de raisonnement complexes`,description:`Description du modèle Gemini 2.5 Pro`},"model.gemini25Flash":{message:`gemini-2.5-flash`,description:`Nom du modèle du service, c'est-à-dire Gemini 2.5 Flash`},"model.gemini25FlashDescription":{message:`Modèle plus rapide et plus léger`,description:`Description du modèle Gemini 2.5 Flash`},"model.gemini35Flash":{message:`gemini-3.5-flash`,description:`Nom du modèle du service, c'est-à-dire Gemini 2.5 Flash`},"model.gemini35FlashDescription":{message:`Modèle plus rapide et plus léger`,description:`Description du modèle Gemini 2.5 Flash`},"model.claudeOpus5":{message:`claude-opus-5`,description:`Name of the service model, i.e., Claude Opus 5`},"model.claudeOpus5Description":{message:`Modèle le plus avancé actuellement`,description:`Description du modèle Claude Opus 5`},"model.claudeOpus48":{message:`claude-opus-4.8`,description:`Nom du modèle du service, c'est-à-dire Claude Opus 4.8`},"model.claudeOpus48Description":{message:`Le modèle le plus avancé actuellement`,description:`Description du modèle Claude Opus 4.8`},"model.claudeSonnet46":{message:`claude-sonnet-4.6`,description:`Nom du modèle du service, c'est-à-dire Claude Sonnet 4.6`},"model.claudeSonnet46Description":{message:`Convient à la plupart des tâches`,description:`Description du modèle Claude Sonnet 4.6`},"model.claudeHaiku45":{message:`claude-haiku-4.5`,description:`Nom du modèle du service, c'est-à-dire Claude Haiku 4.5`},"model.claudeHaiku45Description":{message:`Modèle léger et rapide`,description:`Description du modèle Claude Haiku 4.5`},"model.kimiK3":{message:`kimi-k3`,description:`Name of Moonshot AI's Kimi K3 flagship model`},"model.kimiK3Description":{message:`Modèle phare prenant en charge le raisonnement, la vision et un contexte de 1 million de tokens`,description:`Description du modèle Kimi K3`},"model.kimiK26":{message:`kimi-k2.6`,description:`Name of the Kimi K2.6 model`},"model.kimiK26Description":{message:`Modèle de raisonnement et de vision compatible avec le flux de travail K2`,description:`Description du modèle Kimi K2.6`},"model.kimiK25":{message:`kimi-k2.5`,description:`Nom du modèle du service, c'est-à-dire Kimi K2.5`},"model.kimiK25Description":{message:`Modèle le plus avancé actuellement`,description:`Description du modèle Kimi K2.5`},"model.kimiK2Thinking":{message:`kimi-k2 Raisonnement`,description:`Nom du modèle du service, c'est-à-dire Kimi K2 Raisonnement`},"model.kimiK2ThinkingDescription":{message:`Convient pour le raisonnement et la réflexion approfondie`,description:`Description du modèle Kimi K2 Raisonnement`},"model.kimiK2ThinkingTurbo":{message:`kimi-k2 Raisonnement Turbo`,description:`Nom du modèle du service, c'est-à-dire Kimi K2 Raisonnement Turbo`},"model.kimiK2ThinkingTurboDescription":{message:`Modèle de raisonnement plus rapide`,description:`Description du modèle Kimi K2 Raisonnement Turbo`},"model.glm51":{message:`glm-5.1`,description:`Nom du modèle du service, c'est-à-dire GLM 5.1`},"model.glm51Description":{message:`Modèle phare le plus récent de Zhipu`,description:`Description du modèle GLM 5.1`},"model.glm47":{message:`glm-4.7`,description:`Nom du modèle du service, c'est-à-dire GLM 4.7`},"model.glm47Description":{message:`Équilibre entre performance et coût`,description:`Description du modèle GLM 4.7`},"message.startNewChat":{message:`Démarrer une nouvelle conversation`,description:`Message sur la page web, informant l'utilisateur de commencer une nouvelle conversation`},"message.uploadFile":{message:`Télécharger un fichier`,description:`Message sur la page web, informant l'utilisateur de télécharger un fichier`},"message.noToken":{message:`Veuillez d'abord demander le service approprié`,description:`Message sur la page web, informant l'utilisateur de demander d'abord le service approprié`},"message.newMessagePlaceholder":{message:`Veuillez entrer votre question...`,description:`Placeholder sur la page web, informant l'utilisateur d'entrer une question`},"message.noInput":{message:`La question ne peut pas être vide`,description:`Message sur la page web, informant l'utilisateur que la question ne peut pas être vide`},"message.uploadReferencesExceed":{message:`Vous ne pouvez télécharger qu'un seul fichier`,description:`Message sur la page web, informant l'utilisateur qu'il ne peut télécharger qu'un seul fichier`},"message.uploadReferencesError":{message:`Échec du téléchargement du fichier, veuillez réessayer plus tard`,description:`Message sur la page web, informant l'utilisateur que le téléchargement du fichier a échoué, veuillez réessayer plus tard`},"message.uploadReferencesTooLarge":{message:`La taille du fichier {size} dépasse la limite {max}, veuillez compresser et réessayer`,description:`Message sur la page web informant l'utilisateur que le fichier dépasse la limite de taille de téléchargement et qu'il doit être compressé avant de réessayer`},"message.notApplied":{message:`Vous n'avez pas encore demandé ce service, veuillez le faire d'abord`,description:`Message sur la page web, informant l'utilisateur qu'il n'a pas encore demandé ce service, veuillez le faire d'abord`},"message.tryForFree":{message:`Essai gratuit`,description:`Message sur la page web, informant l'utilisateur de l'essai gratuit`},"message.question1":{message:`Créer un plan d'entraînement`,description:`Exemple de question pour commencer la conversation, demandant à l'utilisateur d'écrire un code JavaScript qui affiche Hello World`},"message.question2":{message:`Créer une page personnelle`,description:`Exemple de question pour commencer la conversation, demandant à l'utilisateur d'écrire un e-mail à Mike pour lui dire que je viens de déménager`},"message.question3":{message:`Concevoir un jeu de programmation amusant`,description:`Exemple de question pour commencer la conversation, demandant à l'utilisateur d'expliquer les principes de base de l'informatique quantique en termes simples`},"message.question4":{message:`Vivre Séoul comme un local`,description:`Exemple de question pour commencer la conversation, demandant à l'utilisateur d'expliquer l'impact de la réalité virtuelle sur la création artistique`},"message.question5":{message:`Qui est plus grand, 9.8 ou 9.11 ?`,description:`Exemple de question pour commencer la conversation, demandant de comparer la taille de deux nombres`},"message.question6":{message:`Quel impact l'IA aura-t-elle sur l'avenir ?`,description:`Exemple de question pour commencer la conversation, demandant quel impact l'IA aura sur l'avenir`},"message.question7":{message:`Comment améliorer l'efficacité d'apprentissage ?`,description:`Exemple de question pour commencer la conversation, demandant comment améliorer son efficacité d'apprentissage`},"message.question8":{message:`Comment améliorer sa concentration ?`,description:`Exemple de question pour commencer la conversation, demandant comment améliorer sa concentration`},"message.errorApiError":{message:`Échec de la réponse, veuillez réessayer plus tard`,description:`Message sur la page web, informant l'utilisateur que la réponse a échoué, veuillez réessayer plus tard`},"message.errorBadRequest":{message:`Contenu de la demande non conforme, veuillez reformuler votre question`,description:`Message sur la page web, informant l'utilisateur que le contenu de la demande n'est pas conforme, veuillez reformuler votre question`},"message.errorNoConversation":{message:`La conversation n'existe pas ou a expiré, veuillez commencer une nouvelle conversation`,description:`Message sur la page web, informant l'utilisateur que la conversation n'existe pas ou a expiré, veuillez commencer une nouvelle conversation`},"message.errorContentTooLarge":{message:`Le contenu de la question est trop long, veuillez le raccourcir et réessayer`,description:`Message sur la page web, informant l'utilisateur que le contenu de la question est trop long, veuillez le raccourcir et réessayer`},"message.errorTooManyRequests":{message:`Vos demandes sont trop fréquentes, veuillez réessayer plus tard`,description:`Message sur la page, informant l'utilisateur que ses demandes sont trop fréquentes et qu'il doit réessayer plus tard`},"message.errorBusy":{message:`Le serveur est occupé, veuillez réessayer plus tard`,description:`Message sur la page web informant l'utilisateur que le serveur est occupé, veuillez réessayer plus tard`},"message.errorUsedUp":{message:`Vous avez épuisé votre quota, veuillez en acheter davantage pour continuer`,description:`Message sur la page web informant l'utilisateur qu'il a épuisé son quota, veuillez en acheter davantage pour continuer`},"message.errorUnknown":{message:`Une erreur inconnue s'est produite sur le serveur, veuillez réessayer plus tard ou contacter le support`,description:`Message sur la page web informant l'utilisateur qu'une erreur inconnue s'est produite sur le serveur, veuillez réessayer plus tard ou contacter le support`},"message.errorTimeout":{message:`Le temps de réponse a expiré, veuillez réessayer plus tard`,description:`Message sur la page web informant l'utilisateur que le temps de réponse a expiré, veuillez réessayer plus tard`},"message.errorNotApplied":{message:`Vous n'avez pas demandé ce service, veuillez d'abord faire une demande avant de continuer`,description:`Message sur la page web informant l'utilisateur qu'il n'a pas demandé ce service, veuillez d'abord faire une demande avant de continuer`},"message.confirmDelete":{message:`Confirmer la suppression`,description:`Message sur la page web informant l'utilisateur de confirmer la suppression`},"message.howToUse":{message:`L'IA peut se tromper, veuillez vérifier les informations importantes.`,description:`Message sur la page web informant l'utilisateur que l'IA peut se tromper, veuillez vérifier les informations importantes`},"title.chat":{message:`Chat IA`,description:`Titre de la page web, c'est-à-dire Chat IA`},"title.example":{message:`Exemple`,description:`Titre de la page web, c'est-à-dire Exemple`},"title.capabilities":{message:`Fonctionnalités`,description:`Titre de la page web, c'est-à-dire Fonctionnalités`},"title.limitations":{message:`Limitations`,description:`Titre dans la page web, indiquant que cette section concerne les limitations techniques du service`},"title.complexQuestion":{message:`Répondre à des questions complexes`,description:`Titre sur la page web, indiquant que cette section concerne la capacité du service à répondre à des questions complexes`},"title.professionalQuestion":{message:`Consulter des questions professionnelles`,description:`Titre sur la page web, indiquant que cette section concerne la capacité du service à consulter des questions professionnelles`},"title.getTips":{message:`Obtenir des idées et de l'inspiration`,description:`Titre sur la page web, indiquant que cette section concerne la capacité du service à obtenir des idées et de l'inspiration`},"group.today":{message:`Aujourd'hui`,description:`Nom du groupe sur la page web, c'est-à-dire Aujourd'hui`},"group.yesterday":{message:`Hier`,description:`Nom du groupe sur la page web, c'est-à-dire Hier`},"group.thisWeek":{message:`Cette semaine`,description:`Nom du groupe sur la page web, c'est-à-dire Cette semaine`},"group.earlier":{message:`Plus tôt`,description:`Nom du groupe sur la page web, c'est-à-dire Plus tôt`},"connections.tooltip":{message:`Gestion des connexions`,description:`Astuce pour le bouton redirigeant vers la page de gestion des connexions auth.acedata.cloud`},"skill.tooltip":{message:`Gestion des compétences`,description:`Astuce pour le bouton redirigeant vers la page de gestion des compétences auth.acedata.cloud`},"composer.addAction":{message:`Ajouter du contenu`,description:`Astuce pour le bouton plus sous la zone de saisie, permettant de télécharger des fichiers, d'ouvrir la gestion des compétences ou des connexions`},"composer.addFiles":{message:`Ajouter des photos ou des fichiers`,description:`Élément du menu contextuel du bouton plus : télécharger des images ou des fichiers`},"composer.skills":{message:`Compétences`,description:`Élément du menu contextuel du bouton plus : ouvrir la gestion des compétences`},"composer.connections":{message:`Connexions`,description:`Élément du menu contextuel du bouton plus : ouvrir la gestion des connexions`},"agent.title":{message:`Agent de bureau`,description:`Titre de la boîte de dialogue de gestion des agents`},"agent.tooltip":{message:`Agent de bureau`,description:`Astuce pour le bouton de l'agent`},"agent.connected":{message:`Connecté`,description:`État de connexion de l'agent`},"agent.notConnected":{message:`Non connecté`,description:`État de non connexion de l'agent`},"agent.description":{message:`Connectez l'agent de bureau pour accéder aux fichiers locaux, exécuter des commandes et utiliser le serveur MCP local dans les conversations IA.`,description:`Description de l'agent`},"agent.name":{message:`Nom de l'agent`,description:`Étiquette pour le nom de l'agent`},"agent.tools":{message:`Outils disponibles`,description:`Étiquette pour le nombre d'outils de l'agent`},"agent.connectedSince":{message:`Temps de connexion`,description:`Étiquette pour le temps de connexion de l'agent`},"agent.connectedHint":{message:`Votre agent de bureau est connecté et prêt à l'emploi.`,description:`Astuce indiquant que l'agent est connecté`},"agent.installLabel":{message:`Installer l'agent de bureau :`,description:`Étiquette d'instructions d'installation`},"agent.runLabel":{message:`Exécuter l'agent :`,description:`Étiquette d'instruction d'exécution`},"askUserQuestion.submit":{message:`Soumettre`,description:`Bouton de soumission pour la dernière question de l'assistant ask-user-question`},"askUserQuestion.next":{message:`Question suivante`,description:`Avancer à la question suivante dans l'assistant ask-user-question`},"askUserQuestion.back":{message:`Question précédente`,description:`Revenir à la question précédente dans l'assistant ask-user-question`},"askUserQuestion.skipAll":{message:`Tout sauter`,description:`Sauter tout l'assistant ask-user-question, permettant au modèle de continuer sans réponse`},"askUserQuestion.other":{message:`Autre`,description:`Option fictive ; lorsque sélectionnée, cette question ouvre un champ de saisie de texte personnalisé`},"askUserQuestion.otherDesc":{message:`Entrez votre propre réponse`,description:`Description d'assistance sous l'option autre`},"askUserQuestion.placeholder":{message:`Veuillez entrer votre réponse…`,description:`Texte d'espace réservé pour le champ de saisie de réponse personnalisé de chaque question`},"askUserQuestion.multiSelectHint":{message:`Choisissez une ou plusieurs options`,description:`Indication affichée lors de questions à choix multiples`},"askUserQuestion.collapsedAnswerLabel":{message:`Votre réponse`,description:`Texte de secours lorsque la réponse spécifique ne peut pas être extraite de l'historique`},"consent.title":{message:`Autorisation de connecteur requise`,description:`Titre de la carte d'autorisation du connecteur`},"consent.matchAny":{message:`Autoriser au moins un`,description:`Étiquette : n'importe quel connecteur de ce groupe suffit`},"consent.matchAll":{message:`Tous doivent être autorisés`,description:`Étiquette : tous les connecteurs de ce groupe doivent être autorisés`},"consent.authorize":{message:`Autoriser`,description:`Bouton d'autorisation, clique pour ouvrir la page d'autorisation d'un tiers`},"consent.skip":{message:`Ignorer pour l'instant`,description:`Bouton pour passer l'autorisation, le modèle continuera sans ce connecteur`},"consent.continue":{message:`Continuer`,description:`Bouton Continuer affiché lorsque, après le retour OAuth, on détecte que le connecteur est connecté ; un clic soumet l'autorisation.`},"consent.selectScopes":{message:`Sélectionnez les portées d'autorisation {provider}`,description:`Title of the scope picker dialog opened from the consent card; {provider} is the upstream provider name (e.g. Gmail).`},"consent.selectScopesHint":{message:`Sélectionnez les permissions que vous souhaitez autoriser. Plusieurs choix possibles, par défaut, seules les informations de connexion de base sont accordées.`,description:`Body copy explaining that the user can opt out of specific scopes; rendered above the checkbox group.`},"consent.installFailed":{message:`L'autorisation a échoué. Veuillez réessayer.`,description:`Toast shown when the AuthBackend install endpoint returns an error from the consent card.`},"consent.statusConnected":{message:`Connecté`,description:`Badge indiquant qu'un connecteur est connecté`},"consent.statusUnconnected":{message:`Non connecté`,description:`Badge indiquant qu'un connecteur n'est pas connecté (affiché lorsque aucun lien d'autorisation n'existe)`},"consent.resolvedAuthorized":{message:`Autorisé : {list}`,description:`Texte au bas de la carte après l'autorisation de l'utilisateur, {list} représente la liste des connecteurs autorisés`},"consent.resolvedSkipped":{message:`Autorisation du connecteur ignorée`,description:`Texte au bas de la carte après que l'utilisateur ait sauté l'autorisation`},"browserTool.title":{message:`Activité du navigateur`,description:`Titre par défaut pour l'activité de l'outil BrowserDevice`},"browserTool.state.starting_session":{message:`Démarrage de la session du navigateur`,description:``},"browserTool.state.attaching_tab":{message:`Connexion à l'onglet du navigateur`,description:``},"browserTool.state.ready":{message:`Navigateur prêt`,description:``},"browserTool.state.device_offline":{message:`L'appareil du navigateur est hors ligne`,description:`L'appareil du navigateur sélectionné n'est pas en ligne`},"browserTool.state.device_busy":{message:`L'appareil du navigateur est occupé`,description:``},"browserTool.state.authorization_required":{message:`Autorisation requise dans Studio`,description:``},"browserTool.state.executing":{message:`Exécution dans le navigateur`,description:`L'appareil du navigateur exécute l'outil`},"browserTool.state.completed":{message:`Terminé`,description:`Exécution de l'outil du navigateur terminée`},"browserTool.state.stopped":{message:`Session du navigateur arrêtée`,description:``},"browserTool.state.expired":{message:`La demande du navigateur a expiré`,description:`La demande d'exécution de l'outil du navigateur a expiré`},"browserTool.state.debugger_unavailable":{message:`Veuillez fermer les outils de développement pour continuer`,description:``},"browserTool.state.unknown_outcome":{message:`Résultat d'exécution inconnu, veuillez vérifier et réessayer`,description:``},"browserTool.state.failed":{message:`Échec de l'opération du navigateur`,description:``},"browserTool.stop":{message:`Arrêter`,description:``},"browserTool.recovery.open-device-manager":{message:`Gérer les appareils`,description:``},"browserTool.recovery.stop-other-session":{message:`Arrêter l'autre session`,description:``},"browserTool.recovery.close-devtools":{message:`Fermer les outils de développement`,description:``},"browserTool.recovery.open-consent-card":{message:`Voir l'autorisation`,description:``},"scheduledTasks.navTitle":{message:`Tâches planifiées`,description:`Entrée des tâches planifiées dans la barre latérale`},"scheduledTasks.tab.tasks":{message:`Tâches planifiées`,description:`Page des tâches planifiées - Onglet des tâches`},"scheduledTasks.tab.runs":{message:`Enregistrements d'exécution`,description:`Page des tâches planifiées - Onglet de tous les enregistrements d'exécution`},"scheduledTasks.filterAll":{message:`Tout`,description:`Filtre d'état des enregistrements d'exécution - Tout`},"scheduledTasks.title":{message:`Tâches planifiées`,description:`Titre de la page`},"scheduledTasks.create":{message:`Nouveau`,description:`Bouton pour créer une tâche planifiée`},"scheduledTasks.edit":{message:`Modifier la tâche`,description:`Titre de la boîte de dialogue d'édition`},"scheduledTasks.duplicate":{message:`Dupliquer la tâche`,description:`Bouton pour dupliquer une tâche, pré-remplissant le formulaire de création basé sur une tâche existante`},"scheduledTasks.empty":{message:`Aucune tâche planifiée pour le moment, cliquez sur « Nouveau » pour en créer une`,description:`Message d'état vide`},"scheduledTasks.noRuns":{message:`Pas encore exécuté`,description:`Aucune historique d'exécution`},"scheduledTasks.loadError":{message:`Échec du chargement`,description:`Message d'erreur de chargement`},"scheduledTasks.deleteConfirm":{message:`Confirmer la suppression de « {name} » ? La tâche cessera de fonctionner après la suppression.`,description:`Confirmation de suppression`},"scheduledTasks.triggerNow":{message:`Déclencher maintenant`,description:`Exécuter manuellement la tâche immédiatement`},"scheduledTasks.triggerSuccess":{message:`Déclenché, vous pourrez voir le résultat dans l'historique d'exécution plus tard.`,description:`Message de succès de déclenchement manuel`},"scheduledTasks.triggerError":{message:`Échec du déclenchement, veuillez réessayer plus tard.`,description:`Message d'échec de déclenchement manuel`},"scheduledTasks.viewResult":{message:`Voir le résultat`,description:`Accéder à la conversation`},"scheduledTasks.viewRuns":{message:`Historique des exécutions`,description:`Voir l'historique des exécutions en bas de la carte`},"scheduledTasks.noConversation":{message:`Aucun enregistrement de conversation`,description:`Exécution sans conversation associée (version ancienne)`},"scheduledTasks.jitterHint":{message:`±60s de variation`,description:`Explication de la variation de l'heure d'exécution`},"scheduledTasks.runCount":{message:`Exécuté {count} fois`,description:`Nombre d'exécutions`},"scheduledTasks.state.enabled":{message:`En cours`,description:`État activé`},"scheduledTasks.state.disabled":{message:`Suspendu`,description:`État désactivé`},"scheduledTasks.state.error":{message:`Erreur`,description:`État d'erreur`},"scheduledTasks.run.queued":{message:`En attente`,description:`État en attente`},"scheduledTasks.run.running":{message:`En cours`,description:`État en cours`},"scheduledTasks.run.success":{message:`Réussi`,description:`État de succès`},"scheduledTasks.run.failed":{message:`Échoué`,description:`État d'échec`},"scheduledTasks.run.indeterminate":{message:`Non confirmé`,description:`Indeterminate run status (judge could not verify; not a failure)`},"scheduledTasks.run.reason.max_turns":{message:`Limite d'étapes atteinte`},"scheduledTasks.run.reason.max_budget_usd":{message:`Limite de budget atteinte`},"scheduledTasks.run.reason.tool_call_loop":{message:`Boucle d'appels d'outils détectée`},"scheduledTasks.run.reason.prompt_too_long":{message:`Invite trop longue`},"scheduledTasks.run.reason.aborted_streaming":{message:`Interrompu`},"scheduledTasks.run.reason.aborted_tools":{message:`Interrompu`},"scheduledTasks.run.reason.awaiting_user_input":{message:`En attente de votre saisie`},"scheduledTasks.run.reason.error":{message:`Erreur`},"scheduledTasks.run.reason.unknown":{message:`Erreur inconnue`},"scheduledTasks.run.reason.balance_insufficient":{message:`Solde insuffisant`},"scheduledTasks.run.reason.billing_gate_failed":{message:`Échec de l’autorisation de facturation`},"scheduledTasks.run.reason.unauthorized":{message:`Non autorisé`},"scheduledTasks.run.reason.timeout":{message:`Délai dépassé`},"scheduledTasks.run.reason.internal_error":{message:`Erreur interne`},"scheduledTasks.run.needs_user_input":{message:`Nécessite une action`,description:`État nécessitant une action de l'utilisateur`},"scheduledTasks.run.reason.browser_device_offline":{message:`L'appareil du navigateur est hors ligne`,description:``},"scheduledTasks.run.reason.browser_authorization_stale":{message:`L'autorisation du navigateur a changé, veuillez modifier cette tâche`,description:``},"scheduledTasks.scheduleType.daily":{message:`Quotidien`,description:`Exécution quotidienne`},"scheduledTasks.scheduleType.minutely":{message:`Chaque minute`},"scheduledTasks.scheduleType.hourly":{message:`Horaire`,description:`Exécution horaire`},"scheduledTasks.scheduleType.weekly":{message:`Hebdomadaire`,description:`Exécution hebdomadaire`},"scheduledTasks.scheduleType.cron":{message:`Expression Cron`,description:`Cron personnalisé`},"scheduledTasks.scheduleType.interval":{message:`Tous les`,description:`Exécution à intervalles réguliers`},"scheduledTasks.form.intervalUnit.minute":{message:`Minute`,description:`Unité d'intervalle : minute`},"scheduledTasks.form.intervalUnit.hour":{message:`Heure`,description:`Unité d'intervalle : heure`},"scheduledTasks.form.intervalUnit.day":{message:`Jour`,description:`Unité d'intervalle : jour`},"scheduledTasks.form.hourlyMinute":{message:`Minute de déclenchement`,description:`Minute à laquelle la tâche se déclenche chaque heure`},"scheduledTasks.form.hourlyMinuteHint":{message:`Minute de déclenchement chaque heure (0–59)`,description:`Explication des minutes par heure`},"scheduledTasks.form.intervalHint":{message:`Exécute une fois à intervalles fixes depuis la dernière exécution (minimum 1 minute)`,description:`Explication des intervalles fixes`},"scheduledTasks.form.cronHint":{message:`Expression Cron standard à 5 segments : minute heure jour mois semaine`,description:`Explication de Cron`},"scheduledTasks.form.schedulePreview":{message:`Fréquence d'exécution : {text}`,description:`Aperçu de la fréquence`},"scheduledTasks.humanize.everyNMinutes":{message:`Toutes les {n} minutes`,description:`Lisible par l'homme : toutes les N minutes`},"scheduledTasks.humanize.everyNHours":{message:`Toutes les {n} heures`,description:`Lisible par l'homme : toutes les N heures`},"scheduledTasks.humanize.everyNDays":{message:`Tous les {n} jours`,description:`Lisible par l'homme : tous les N jours`},"scheduledTasks.humanize.hourlyAtMinute":{message:`À la {n} minute de chaque heure`,description:`Lisible par l'homme : à la N minute de chaque heure`},"scheduledTasks.humanize.dailyAt":{message:`Chaque jour à {time}`,description:`Lisible par l'homme : chaque jour à un moment donné`},"scheduledTasks.humanize.weeklyAt":{message:`Chaque semaine {weekday} à {time}`,description:`Lisible par l'homme : chaque semaine à un moment donné`},"scheduledTasks.humanize.cronRaw":{message:`Cron : {cron}`,description:`Lisible par l'homme : Cron brut`},"scheduledTasks.humanize.once":{message:`Une seule fois à {time}`,description:`Lisible par l'homme : une seule fois`},"scheduledTasks.form.name":{message:`Nom de la tâche`,description:`Champ de nom`},"scheduledTasks.form.namePlaceholder":{message:`Ex : Résumé des informations quotidiennes`,description:`Placeholder pour le nom`},"scheduledTasks.form.model":{message:`Modèle`,description:`Sélection du modèle`},"scheduledTasks.form.prompt":{message:`Mot d'invite`,description:`Champ pour le mot d'invite`},"scheduledTasks.form.promptPlaceholder":{message:`Entrez la question ou la commande à exécuter régulièrement, prenant en charge les variables {'{{date}}'}, {'{{run_count}}'}, {'{{last_output}}'}`,description:`Espace réservé pour le mot d'invite`},"scheduledTasks.form.promptHint":{message:`Variables de modèle prises en charge : {'{{date}}'} date d'aujourd'hui, {'{{run_count}}'} numéro de la course, {'{{last_output}}'} résumé du dernier résultat`,description:`Explication du mot d'invite`},"scheduledTasks.form.schedule":{message:`Fréquence d'exécution`,description:`Choix de la fréquence`},"scheduledTasks.form.time":{message:`Heure d'exécution`,description:`Champ pour l'heure`},"scheduledTasks.form.timezone":{message:`Fuseau horaire`},"scheduledTasks.form.timezoneHint":{message:`Les nouvelles tâches utilisent par défaut le fuseau horaire de cet appareil : {timezone}. Une fois enregistré, il reste associé à la tâche.`},"scheduledTasks.form.timezoneInvalid":{message:`Sélectionnez un fuseau horaire IANA valide`},"scheduledTasks.form.weekday":{message:`Jour de la semaine`,description:`Champ pour le jour de la semaine`},"scheduledTasks.form.cron":{message:`Expression Cron`,description:`Champ pour l'expression cron`},"scheduledTasks.form.skills":{message:`Autoriser les Skills`,description:`Sélection multiple pour l'autorisation des skills dans les tâches planifiées sans supervision`},"scheduledTasks.form.skillsPlaceholder":{message:`Sélectionnez les Skills autorisés à s'exécuter automatiquement pour cette tâche`,description:`Espace réservé pour l'autorisation des skills`},"scheduledTasks.form.skillsHint":{message:`Les Skills sélectionnés peuvent s'exécuter en arrière-plan lors des tâches planifiées sans confirmation manuelle ; les Skills non sélectionnés ne peuvent que prévisualiser ou attendre une confirmation.`,description:`Explication de l'autorisation des skills`},"scheduledTasks.form.browserConnection":{message:`Connexion du navigateur`,description:``},"scheduledTasks.form.browserEffects":{message:`Peut exécuter les effets externes suivants : {effects}`,description:``},"scheduledTasks.form.authorizationExpires":{message:`Heure d'expiration de l'autorisation sans surveillance : {time}`,description:``},"scheduledTasks.form.browserBindingInvalid":{message:`Veuillez sélectionner une connexion de navigateur en ligne et compatible avant de sauvegarder`,description:``},"scheduledTasks.form.connectionAccount":`Account for {connector}`,"scheduledTasks.form.connectionAccountDefault":`Use the default account`,"scheduledTasks.form.accountIsDefault":`default`,"scheduledTasks.form.skillMissing":{message:`Non connecté`,description:`skill manque de connexion`},"scheduledTasks.form.mcpServers":{message:`Autoriser MCP`,description:`Sélection multiple des serveurs MCP pour les tâches planifiées sans supervision.`},"scheduledTasks.form.mcpServersPlaceholder":{message:`Sélectionnez les serveurs MCP autorisés à charger automatiquement cette tâche`,description:`Espace réservé pour l'autorisation des serveurs MCP.`},"scheduledTasks.form.mcpServersHint":{message:`Les serveurs MCP sélectionnés peuvent être chargés et exécutés en arrière-plan des tâches planifiées ; les serveurs MCP non sélectionnés ne seront pas chargés en mode sans supervision.`,description:`Explication sur l'autorisation des serveurs MCP.`},"scheduledTasks.form.maxTurns":{message:`Tours maximum`,description:`Scheduled task per-run agent turn cap`},"scheduledTasks.form.maxTurnsHint":{message:`Nombre maximal de tours de l'agent par exécution (1–50). Une limite trop basse arrête les tâches en plusieurs étapes (par ex. des skills exécutant plusieurs étapes Bash/recherche de docs) avant leur fin, sans résultat final. Par défaut 50.`,description:`Scheduled task per-run agent turn cap`},"scheduledTasks.form.skillsConfirmTitle":{message:`Confirmer l'autorisation sans supervision`,description:`Titre de la confirmation d'autorisation`},"scheduledTasks.form.skillsConfirm":{message:`Cette tâche permettra à {count} Skills de s'exécuter en arrière-plan sans confirmation manuelle : {skills}. Ces Skills peuvent envoyer des messages, publier du contenu ou écrire dans des services externes, veuillez confirmer.`,description:`Texte de confirmation d'autorisation`},"scheduledTasks.form.skillNotActiveTitle":{message:`Vous devez d'abord lier la compétence`,description:`Titre de la boîte de dialogue affichée lorsqu'une compétence/MCP autorisée pour une tâche planifiée n'est pas encore liée pour l'utilisateur.`},"scheduledTasks.form.skillNotActiveMessage":{message:`La compétence « {name} » n'est pas encore liée ou activée sur votre compte. Si vous ne liez pas d'abord, la tâche planifiée peut ne pas pouvoir l'utiliser lors de son exécution automatique en arrière-plan. Il est conseillé de lier d'abord avant d'enregistrer, ou cliquez sur le bouton ci-dessous pour continuer à enregistrer.`,description:`Corps d'avertissement ; {name} est le nom de la compétence/MCP. Explique qu'elle n'est pas liée et propose de sauvegarder quand même.`},"scheduledTasks.form.skillNotActiveForce":{message:`Voulez-vous vraiment continuer à enregistrer`,description:`Bouton de confirmation qui enregistre la tâche planifiée malgré tout, en contournant la vérification de liaison (forcer).`},"scheduledTasks.form.required":{message:`Veuillez remplir le nom de la tâche et le mot d'invite`,description:`Validation des champs obligatoires`},"artifacts.navTitle":{message:`Productions`,description:`Entrée de la barre latérale pour les productions`},"artifacts.title":{message:`Mes productions`,description:`Titre de la page de production`},"artifacts.summaryTotal":{message:`Un total de {count} productions cette période`,description:`Résumé du nombre total de productions`},"artifacts.filterAll":{message:`Tout`,description:`Filtre de type de production - Tout`},"artifacts.empty":{message:`Aucune production pour le moment. Laissez l'IA vous aider à rédiger des articles, générer des images ou envoyer des e-mails, et la production apparaîtra ici automatiquement.`,description:`Alerte lorsque la production est vide`},"artifacts.loadError":{message:`Échec du chargement de la production`,description:`Alerte d'erreur lors du chargement de la production`},"artifacts.actionError":{message:`Échec de l'opération, veuillez réessayer`,description:`Alerte d'erreur lors de l'opération de production`},"artifacts.open":{message:`Ouvrir`,description:`Bouton pour ouvrir le lien original de la production`},"artifacts.hide":{message:`Masquer`,description:`Bouton pour masquer la production`},"artifacts.unhide":{message:`Annuler le caché`,description:`Bouton pour restaurer un Artifact caché`},"artifacts.showHidden":{message:`Afficher les cachés`,description:`Commutateur pour afficher les Artifacts cachés dans la barre de filtrage`},"artifacts.hiddenBadge":{message:`Caché`,description:`Badge indiquant que l'Artifact a été caché`},"artifacts.delete":{message:`Supprimer`,description:`Bouton de suppression de la production`},"artifacts.deleteConfirm":{message:`Êtes-vous sûr de vouloir supprimer définitivement cet enregistrement de production ?`,description:`Alerte de confirmation pour la suppression de la production`},"artifacts.loadMore":{message:`Charger plus`,description:`Bouton pour charger plus de productions`},"artifacts.sourceAuto":{message:`Capture automatique`,description:`Étiquette de source pour la capture automatique`},"artifacts.kind.article":{message:`Article`,description:`Type de production - Article`},"artifacts.kind.image":{message:`Image`,description:`Type de production - Image`},"artifacts.kind.video":{message:`Vidéo`,description:`Type de production - Vidéo`},"artifacts.kind.audio":{message:`Audio`,description:`Type de production - Audio`},"artifacts.kind.document":{message:`Document`,description:`Type de production - Document`},"artifacts.kind.email":{message:`E-mail`,description:`Type de production - E-mail`},"artifacts.kind.message":{message:`Message`,description:`Type de production - Message`},"artifacts.kind.dataset":{message:`Données`,description:`Type de production - Données`},"artifacts.kind.link":{message:`Lien`,description:`Type de production - Lien`},"artifacts.kind.other":{message:`Autre`,description:`Type de production - Autre`},"share.menu":{message:`Partager`,description:`Élément de menu pour ouvrir la boîte de dialogue de partage dans la barre latérale / la barre d'outils`},"share.dialogTitle":{message:`Partager la conversation`,description:`Titre de la boîte de dialogue de partage`},"share.description":{message:`Quiconque ayant le lien peut voir cette conversation, mais ne peut pas continuer à discuter.`,description:`Explique ce qui se passe après le partage de la conversation`},"share.createLink":{message:`Créer un lien de partage`,description:`Bouton pour créer un lien de partage public pour la conversation`},"share.copy":{message:`Copier le lien`,description:`Bouton pour copier le lien de partage dans le presse-papiers`},"share.copied":{message:`Copié`,description:`Indication apparaissant brièvement sur le bouton après une copie réussie`},"share.disable":{message:`Désactiver le lien`,description:`Bouton pour révoquer le lien de partage et rendre l'URL invalide`},"share.disabled":{message:`Le lien de partage a été désactivé.`,description:`Indication après que le lien de partage a été désactivé`},"share.needLogin":{message:`Veuillez vous connecter d'abord, puis partager cette conversation.`,description:`Indication pour les visiteurs non connectés essayant de partager une conversation`},"share.noConversation":{message:`Veuillez d'abord ouvrir une conversation avant de partager.`,description:`Indication lorsque le bouton de partage est cliqué sans conversation active`},"share.createFailed":{message:`Échec de la création du lien de partage, veuillez réessayer plus tard.`,description:`Message d'erreur lorsque la création du lien de partage échoue`},"share.disableFailed":{message:`Échec de la désactivation du lien de partage, veuillez réessayer plus tard.`,description:`Message d'erreur lorsque la désactivation du lien de partage échoue`},"share.startYourOwn":{message:`Allez démarrer ma propre conversation`,description:`Appel à l'action sur la page publique de partage pour guider les visiteurs anonymes vers la page d'accueil de l'application`},"share.unavailableTitle":{message:`Cette conversation partagée n'est pas disponible.`,description:`Titre de la page publique de partage lorsque le lien est invalide ou non disponible`},"share.unavailableHint":{message:`L'autre partie a peut-être désactivé le lien, ou l'URL est incorrecte.`,description:`Indication lorsque le lien de partage est invalide ou non disponible`},"share.viewOnly":{message:`Conversation de partage en lecture seule`,description:`Étiquette indiquant que la conversation est en lecture seule sur la page publique de partage`},"share.untitled":{message:`Conversation sans titre`,description:`Texte d'espace réservé utilisé lorsque la conversation partagée n'a pas de titre`},"share.footerNote":{message:`Vous consultez une conversation partagée. Cliquez ci-dessus pour discuter avec l'IA vous-même.`,description:`Explication sous la conversation sur la page publique partagée`},"scheduledTasks.run.reason.goal_not_achieved":{message:`Objectif non atteint`,description:``},"scheduledTasks.run.reason.outcome_unknown":{message:`Résultat en attente de confirmation`,description:``},"scheduledTasks.run.reason.run_abandoned":{message:`État d'exécution inconnu`},"actions.rename":{message:`Renommer`,description:`Élément de menu de renommage dans le menu d'opération de la conversation.`},"actions.renameTitle":{message:`Renommer la conversation`,description:`Titre de la boîte de dialogue pour renommer la conversation.`},"actions.renameEmpty":{message:`Veuillez entrer un nom`,description:`Message indiquant que le nom est vide lors du renommage.`},"actions.renameSuccess":{message:`Renommé`,description:`Message indiquant que la conversation a été renommée avec succès.`},"actions.renameFailed":{message:`Échec du renommage, veuillez réessayer plus tard`,description:`Message indiquant que le renommage de la conversation a échoué.`},"actions.deleteConfirm":{message:`Confirmer la suppression de cette conversation ? La suppression est irréversible.`,description:`Explication de confirmation avant la suppression de la conversation.`},"actions.deleteSuccess":{message:`Supprimé`,description:`Message indiquant que la conversation a été supprimée avec succès.`},"actions.deleteFailed":{message:`Échec de la suppression, veuillez réessayer plus tard`,description:`Message indiquant que la suppression de la conversation a échoué.`},"actions.tokenMissing":{message:`Le token n'existe pas, veuillez vous reconnecter`,description:`Message d'erreur indiquant qu'il manque des informations d'identification lors de l'opération de conversation.`},"actions.conversationMissing":{message:`La conversation n'existe pas`,description:`Message d'erreur indiquant que la conversation cible n'existe pas lors de l'opération de conversation.`},"scheduledTasks.form.execution":{message:`Emplacement d'exécution`,description:`Choisissez si la tâche s'exécute dans le cloud ou sur l'appareil local`},"scheduledTasks.execution.cloud":{message:`Cloud`,description:`Mode d'exécution dans le cloud`},"scheduledTasks.execution.local":{message:`Cet appareil`,description:`Mode d'exécution local`},"scheduledTasks.execution.localNamed":{message:`Cet appareil ({device})`,description:`Mode d'exécution local avec nom de l'appareil`},"scheduledTasks.form.executionCloudHint":{message:`Déclenché à temps par la plateforme, fonctionnera même si l'ordinateur est éteint.`,description:`Explication du mode cloud`},"scheduledTasks.form.executionLocalHint":{message:`Déclenché à temps par cet appareil, peut lire et écrire des fichiers locaux, exécuter des commandes locales. Ne s'exécutera pas si l'appareil est éteint ou si l'application est quittée, les occurrences manquées ne seront que notées, pas de reprise.`,description:`Explication du mode local`},"scheduledTasks.form.executionMobileUnsupported":{message:`L'exécution locale n'est pas prise en charge sur mobile`,description:`Raison pour laquelle l'exécution locale n'est pas prise en charge sur mobile`},"scheduledTasks.form.executionWebUnsupported":{message:`L'exécution locale nécessite l'application de bureau`,description:`Raison pour laquelle l'exécution locale n'est pas prise en charge sur le web`},"scheduledTasks.form.executionDeviceUnavailable":{message:`Impossible d'obtenir les informations de l'appareil local, veuillez redémarrer l'application et réessayer`,description:`Informations sur l'appareil de bureau non disponibles`},"scheduledTasks.form.localTools":{message:`Autorisation des outils locaux`,description:`Champ d'autorisation des outils locaux`},"scheduledTasks.form.localToolsPlaceholder":{message:`Sélectionnez les outils locaux autorisés pour cette tâche`,description:`Placeholder pour la sélection des outils locaux`},"scheduledTasks.form.localToolsHint":{message:`Aucune confirmation d'autorisation ne s'affichera lors de l'exécution sans surveillance, seuls les outils sélectionnés ici seront disponibles.`,description:`Explication de l'autorisation des outils locaux`},"scheduledTasks.run.skipped":{message:`Sauté`,description:`État d'exécution : l'appareil n'était pas en ligne à ce moment-là, n'a pas été exécuté`},"workingDir.choose":{message:`Choisir le répertoire de travail`,description:`Bouton au-dessus de la zone de saisie de chat sur le bureau : choisir le dossier de projet pour les opérations AI ; impossible d'envoyer un message avant d'avoir fait un choix`},"workingDir.switchHint":{message:`Cliquez pour changer le répertoire de travail`,description:`Astuce flottante pour le chemin lorsque le répertoire de travail est sélectionné`},"scheduledTasks.triggerLocalUnavailable":{message:`C'est une tâche locale, elle ne peut être exécutée manuellement que sur la version de bureau de l'appareil lié`,description:`La tâche locale ne peut pas être déclenchée manuellement sur un appareil non lié`},"scheduledTasks.triggerWrongDevice":{message:`Cette tâche est liée à un autre appareil`,description:`La tâche locale n'appartient pas à l'appareil actuel`},"scheduledTasks.triggerSignedOut":{message:`La planification locale n'est pas connectée, veuillez vous reconnecter et réessayer`,description:`Le daemon ne détient pas de jeton d'authentification`},"scheduledTasks.triggerAlreadyRunning":{message:`Cette tâche est en cours d'exécution`,description:`La tâche est déjà en cours d'exécution`},"actionConfirmation.confirm":{message:`Confirmer`,description:`Bouton de confirmation de la carte de confirmation avant exécution.`},"actionConfirmation.cancel":{message:`Annuler`,description:`Bouton d'annulation de la carte de confirmation avant exécution.`},"actionConfirmation.resolvedConfirmed":{message:`Confirmé, en cours d'exécution`,description:`Carte de confirmation avant exécution : l'utilisateur a confirmé, les actions suivantes sont en cours d'exécution.`},"actionConfirmation.resolvedCancelled":{message:`Annulé`,description:`Alerte repliée après que l'utilisateur a annulé sur la carte de confirmation avant exécution.`},"actionConfirmation.mediaLoading":{message:`Chargement de l'aperçu des médias…`,description:`Carte de confirmation avant exécution : état de chargement des médias`},"actionConfirmation.mediaUnavailable":{message:`Impossible de lire l'aperçu ici`,description:`Carte de confirmation avant exécution : titre de l'échec de lecture des médias`},"actionConfirmation.mediaUnavailableHint":{message:`Le lien du média peut avoir expiré ou le navigateur actuel ne prend pas en charge ce format. Veuillez ouvrir le fichier original pour vérification avant publication.`,description:`Carte de confirmation avant exécution : explication de l'échec de lecture des médias`},"actionConfirmation.openMedia":{message:`Ouvrir le fichier original`,description:`Carte de confirmation avant exécution : ouvrir le lien des médias`},"actionConfirmation.tiktok.reviewBadge":{message:`Confirmation avant publication`,description:`Étiquette d'état de la carte de confirmation de publication TikTok`},"actionConfirmation.tiktok.publishTitle":{message:`Publier sur TikTok`,description:`Titre de la carte de confirmation de publication TikTok`},"actionConfirmation.tiktok.publishSummary":{message:`Après confirmation, cette vidéo sera publiée sur votre compte TikTok.`,description:`Résumé de la carte de confirmation de publication TikTok`},"actionConfirmation.tiktok.publishButton":{message:`Publier`,description:`Bouton de soumission de la carte de confirmation de publication TikTok`},"actionConfirmation.tiktok.postingTo":{message:`Publier sur`,description:`Étiquette de compte dans la confirmation de publication TikTok.`},"actionConfirmation.tiktok.connected":{message:`Connecté`,description:`Confirmation de publication TikTok : état de connexion du compte`},"actionConfirmation.tiktok.unknownAccount":{message:`Informations sur le compte non disponibles`,description:`Confirmation de publication TikTok : texte d'espace réservé lorsque le nom du compte est manquant`},"actionConfirmation.tiktok.detailsUnavailable":{message:`Les paramètres de publication ne sont pas encore prêts`,description:`Confirmation de publication TikTok : titre manquant d'informations sur le créateur`},"actionConfirmation.tiktok.detailsUnavailableHint":{message:`Impossible de lire la portée visible prise en charge par ce compte. Veuillez annuler et laisser l'assistant récupérer à nouveau les paramètres de publication TikTok.`,description:`Confirmation de publication TikTok : explication du manque d'informations sur le créateur`},"actionConfirmation.tiktok.videoTooLongTitle":{message:`La durée de la vidéo ne respecte pas la limite du compte`,description:`Confirmation de publication TikTok : titre pour vidéo trop longue`},"actionConfirmation.tiktok.postDetails":{message:`Contenu à publier`,description:`Confirmation de publication TikTok : titre de la section des paramètres de contenu`},"actionConfirmation.tiktok.requiredNote":{message:`* Champ requis`,description:`Confirmation de publication TikTok : explication des champs obligatoires`},"actionConfirmation.tiktok.caption":{message:`Légende`,description:`Étiquette du champ de saisie de légende dans la confirmation de publication TikTok.`},"actionConfirmation.tiktok.captionPlaceholder":{message:`Rédigez une légende — les hashtags et les mentions sont pris en charge`,description:`TikTok publish confirmation: caption placeholder`},"actionConfirmation.tiktok.privacy":{message:`Qui peut voir`,description:`Étiquette du menu déroulant de visibilité dans la confirmation de publication TikTok.`},"actionConfirmation.tiktok.privacyPlaceholder":{message:`Veuillez sélectionner…`,description:`Espace réservé pour la visibilité dans la confirmation de publication TikTok, ne peut pas avoir de valeur par défaut selon les exigences de TikTok.`},"actionConfirmation.tiktok.noPrivacyOptions":{message:`Aucune portée visible disponible, publication impossible pour le moment`,description:`Confirmation de publication TikTok : portée visible vide`},"actionConfirmation.tiktok.privacyPublic":{message:`Tout le monde`,description:`Visibilité TikTok : publique.`},"actionConfirmation.tiktok.privacyFriends":{message:`Amis mutuels`,description:`Visibilité TikTok : visible par les amis qui se suivent mutuellement.`},"actionConfirmation.tiktok.privacyFollowers":{message:`Mes abonnés`,description:`Visibilité TikTok : visible par les abonnés.`},"actionConfirmation.tiktok.privacySelf":{message:`Uniquement moi`,description:`Visibilité TikTok : visible uniquement par soi-même.`},"actionConfirmation.tiktok.interactions":{message:`Autoriser les interactions`,description:`Étiquette de groupe pour le commutateur d'interaction dans la confirmation de publication TikTok.`},"actionConfirmation.tiktok.interactionsHint":{message:`Seules les méthodes d'interaction actuellement autorisées pour ce compte peuvent être activées ; par défaut, toutes sont désactivées.`,description:`Confirmation de publication TikTok : explication de l'activation des interactions`},"actionConfirmation.tiktok.disabledByAccount":{message:`Ce compte est désactivé : {list}`,description:`Confirmation de publication TikTok : capacités d'interaction désactivées du compte`},"actionConfirmation.tiktok.allowComment":{message:`Commentaires`,description:`Commutateur d'interaction TikTok : autoriser les commentaires.`},"actionConfirmation.tiktok.allowDuet":{message:`Duo`,description:`Commutateur d'interaction TikTok : autoriser les duos.`},"actionConfirmation.tiktok.allowStitch":{message:`Assemblage`,description:`Commutateur d'interaction TikTok : autoriser les stitches.`},"actionConfirmation.tiktok.disclosure":{message:`Divulgation de contenu`,description:`Confirmation de publication TikTok : titre de la section de contenu commercial`},"actionConfirmation.tiktok.commercial":{message:`Ceci est un contenu commercial`,description:`Confirmation de publication TikTok : commutateur de divulgation de contenu commercial.`},"actionConfirmation.tiktok.commercialHint":{message:`Si le contenu promeut une marque, un produit ou un service, veuillez divulguer en conséquence.`,description:`Confirmation de publication TikTok : explication de la divulgation de contenu commercial`},"actionConfirmation.tiktok.yourBrand":{message:`votre marque`,description:`Contenu commercial TikTok : promotion de votre propre entreprise`},"actionConfirmation.tiktok.yourBrandHint":{message:`Faites la promotion de vous-même ou de votre entreprise`,description:`Contenu commercial TikTok : explication sur la promotion de son propre entreprise`},"actionConfirmation.tiktok.brandedContent":{message:`Contenu de marque`,description:`Contenu commercial TikTok : collaboration payante.`},"actionConfirmation.tiktok.brandedContentHint":{message:`Promotion d'un tiers en raison d'un paiement, d'un cadeau ou d'autres avantages`,description:`Contenu commercial TikTok : explication de la collaboration payante`},"actionConfirmation.tiktok.labelPromotional":{message:`La vidéo sera marquée comme « contenu promotionnel »`,description:`Contenu commercial TikTok : alerte après avoir sélectionné votre marque.`},"actionConfirmation.tiktok.labelPaidPartnership":{message:`La vidéo sera marquée comme « partenariat rémunéré »`,description:`Contenu commercial TikTok : alerte après avoir sélectionné le contenu de marque.`},"actionConfirmation.tiktok.brandedNotPrivate":{message:`La portée du contenu de marque ne peut pas être définie sur « uniquement moi »`,description:`Confirmation de publication TikTok : alerte sur l'incompatibilité entre le contenu de marque et la visibilité uniquement pour soi.`},"actionConfirmation.tiktok.tooLong":{message:`La vidéo dépasse la limite de durée de ce compte ({max} secondes)`,description:`Confirmation de publication TikTok : erreur de durée excessive de la vidéo.`},"actionConfirmation.tiktok.beforePublishing":{message:`Veuillez confirmer avant la publication`,description:`Confirmation de publication TikTok : titre de l'explication de la politique`},"actionConfirmation.tiktok.policyIntro":{message:`En cliquant sur « Publier », vous confirmez que vous avez les droits d'utilisation du contenu et de la musique, et que vous acceptez les conditions d'utilisation de la musique de TikTok.`,description:`Confirmation de publication TikTok : explication de la politique de contenu général`},"actionConfirmation.tiktok.policyIntroBranded":{message:`En cliquant sur « Publier », vous confirmez que les informations divulguées sont exactes et que vous acceptez la politique de contenu de marque et les conditions d'utilisation de la musique de TikTok.`,description:`Confirmation de publication TikTok : explication de la politique de contenu de marque`},"actionConfirmation.tiktok.musicUsageLink":{message:`Voir la « Confirmation d'utilisation de la musique »`,description:`Confirmation de publication TikTok : lien vers la confirmation d'utilisation de la musique`},"actionConfirmation.tiktok.brandedPolicyLink":{message:`Voir la « Politique de contenu de marque »`,description:`Confirmation de publication TikTok : lien vers la politique de contenu de marque`},"actionConfirmation.tiktok.fixDetailsFirst":{message:`Les informations de publication sont incomplètes, veuillez annuler puis régénérer la carte de confirmation`,description:`Confirmation de publication TikTok : raison de la désactivation du bouton en cas de détails manquants`},"actionConfirmation.tiktok.useShorterVideo":{message:`Veuillez utiliser une vidéo conforme à la limite de durée de ce compte`,description:`Confirmation de publication TikTok : raison pour laquelle le bouton est désactivé lorsque la vidéo est trop longue`},"actionConfirmation.tiktok.selectPrivacyFirst":{message:`Veuillez sélectionner qui peut voir cette vidéo`,description:`Confirmation de publication TikTok : raison de la désactivation du bouton lorsque la portée visible n'est pas sélectionnée`},"actionConfirmation.tiktok.selectDisclosureType":{message:`Veuillez sélectionner le type de contenu commercial`,description:`Confirmation de publication TikTok : raison de la désactivation du bouton lorsque le type de divulgation commerciale n'est pas sélectionné`},"scheduledTemplates.title":{message:`Modèle d'automatisation`,description:`Texte du centre de modèles de tâches planifiées`},"scheduledTemplates.createFromTemplate":{message:`Créer à partir d'un modèle`,description:`Copie du centre de modèles de tâches planifiées`},"scheduledTemplates.createCustom":{message:`Créer personnalisé`,description:`Copie du centre de modèles de tâches planifiées`},"scheduledTemplates.emptyTitle":{message:`Laissez l'IA accomplir votre travail à temps`,description:`Copie du centre de modèles de tâches planifiées`},"scheduledTemplates.emptyDescription":{message:`Choisissez un modèle officiel, connectez les comptes nécessaires, et après un essai réussi, il pourra s'exécuter automatiquement.`,description:`Copie du centre de modèles de tâches planifiées`},"scheduledTemplates.browse":{message:`Parcourir les modèles`,description:`Copie du centre de modèles de tâches planifiées`},"scheduledTemplates.step.choose":{message:`Choisir un modèle`,description:`Copie du centre de modèles de tâches planifiées`},"scheduledTemplates.step.configure":{message:`Configuration simple`,description:`Copie du centre de modèles de tâches planifiées`},"scheduledTemplates.step.connect":{message:`Connecter un compte`,description:`Copie du centre de modèles de tâches planifiées`},"scheduledTemplates.step.test":{message:`Exécuter un test`,description:`Copie du centre de modèles de tâches planifiées`},"scheduledTemplates.step.enable":{message:`Confirmer l'activation`,description:`Copie du centre de modèles de tâches planifiées`},"scheduledTemplates.search":{message:`Rechercher un modèle`,description:`Copie du centre de modèles de tâches planifiées`},"scheduledTemplates.featured":{message:`Recommandé`,description:`Copie du centre de modèles de tâches planifiées`},"scheduledTemplates.ready":{message:`Prêt à l'emploi`,description:`Copie du centre de modèles de tâches planifiées`},"scheduledTemplates.missingCount":{message:`Besoin de connecter {count} éléments`,description:`Copie du centre de modèles de tâches planifiées`},"scheduledTemplates.schedule":{message:`Heure d'exécution`,description:`Copie du centre de modèles de tâches planifiées`},"scheduledTemplates.connectionTitle":{message:`Préparer les connexions nécessaires`,description:`Copie du centre de modèles de tâches planifiées`},"scheduledTemplates.noConnections":{message:`Aucun autre compte à connecter`,description:`Copie du centre de modèles de tâches planifiées`},"scheduledTemplates.connected":{message:`Connecté`,description:`Copie du centre de modèles de tâches planifiées`},"scheduledTemplates.notConnected":{message:`Pas encore connecté`,description:`Copie du centre de modèles de tâches planifiées`},"scheduledTemplates.chooseAccount":{message:`Choisir un compte`,description:`Copie du centre de modèles de tâches planifiées`},"scheduledTemplates.connect":{message:`Se connecter`,description:`Copie du centre de modèles de tâches planifiées`},"scheduledTemplates.testTitle":{message:`Exécutez un test d'abord`,description:`Texte du centre de modèles de tâches planifiées`},"scheduledTemplates.testHint":{message:`La tâche restera d'abord désactivée. Elle commencera à s'exécuter périodiquement uniquement après un test réussi et confirmé.`,description:`Copie du centre de modèles de tâches planifiées`},"scheduledTemplates.runTest":{message:`Générer et exécuter un test`,description:`Copie du centre de modèles de tâches planifiées`},"scheduledTemplates.refreshTest":{message:`Rafraîchir les résultats`,description:`Copie du centre de modèles de tâches planifiées`},"scheduledTemplates.testRunning":{message:`Test en cours, veuillez rafraîchir plus tard`,description:`Copie du centre de modèles de tâches planifiées`},"scheduledTemplates.testSucceeded":{message:`Test réussi`,description:`Texte du centre de modèles de tâches planifiées`},"scheduledTemplates.testFailed":{message:`Échec de l'exécution du test, veuillez vérifier la configuration ou la connexion`,description:`Copie du centre de modèles de tâches planifiées`},"scheduledTemplates.enableTitle":{message:`Confirmer l'activation de l'automatisation`,description:`Copie du centre de modèles de tâches planifiées`},"scheduledTemplates.template":{message:`Modèle`,description:`Copie du centre de modèles de tâches planifiées`},"scheduledTemplates.permissions":{message:`Autoriser les capacités`,description:`Copie du centre de modèles de tâches planifiées`},"scheduledTemplates.none":{message:`Aucun`,description:`Copie du centre de modèles de tâches planifiées`},"scheduledTemplates.enableHint":{message:`Une fois activé, les tâches s'exécuteront automatiquement à l'heure prévue ; vous pouvez les suspendre à tout moment.`,description:`Copie du centre de modèles de tâches planifiées`},"scheduledTemplates.enable":{message:`Activer l'automatisation`,description:`Copie du centre de modèles de tâches planifiées`},"scheduledTemplates.enabled":{message:`L'automatisation est activée`,description:`Copie du centre de modèles de tâches planifiées`},"scheduledTemplates.enableFailed":{message:`Impossible d'activer, veuillez confirmer que l'essai a réussi`,description:`Copie du centre de modèles de tâches planifiées`},"scheduledTemplates.loadError":{message:`Échec du chargement du modèle, veuillez réessayer plus tard`,description:`Copie du centre de modèles de tâches planifiées`},"scheduledTemplates.category.all":{message:`Tout`,description:`Copie du centre de modèles de tâches planifiées`},"scheduledTemplates.category.marketing":{message:`Croissance marketing`,description:`Copie du centre de modèles de tâches planifiées`},"scheduledTemplates.category.content":{message:`Création de contenu`,description:`Copie du centre de modèles de tâches planifiées`},"scheduledTemplates.category.productivity":{message:`Efficacité au travail`,description:`Copie du centre de modèles de tâches planifiées`},"scheduledTemplates.category.research":{message:`Renseignements et recherche`,description:`Copie du centre de modèles de tâches planifiées`},"scheduledTemplates.category.development":{message:`Développement et opérations`,description:`Copie du centre de modèles de tâches planifiées`},"scheduledTemplates.category.personal":{message:`Assistant personnel`,description:`Copie du centre de modèles de tâches planifiées`},"scheduledTemplates.previous":{message:`Précédent`,description:`Navigation dans l'assistant de modèle programmé et conseils de connexion`},"scheduledTemplates.next":{message:`Suivant`,description:`Navigation dans l'assistant de modèle programmé et conseils de connexion`},"scheduledTemplates.connectionDescription":{message:`Nous n'utiliserons que les connexions nécessaires à ce modèle ; les comptes connectés seront automatiquement réutilisés.`,description:`Navigation dans l'assistant de modèle programmé et conseils de connexion`},"scheduledTemplates.noConnectionsHint":{message:`Ce modèle utilise uniquement des capacités intégrées, vous pouvez directement passer à l'exécution d'essai.`,description:`Navigation dans l'assistant de modèle programmé et conseils de connexion`},"scheduledTemplates.connectionMissingHint":{message:`Vous pouvez continuer après avoir terminé la connexion.`,description:`Navigation dans l'assistant de modèle programmé et conseils de connexion`},"scheduledTemplates.connectionBoundHint":{message:`Cette tâche utilisera le compte que vous avez sélectionné.`,description:`Navigation dans l'assistant de modèle programmé et conseils de connexion`},"scheduledTemplates.connectionMcpHint":{message:`Exécutez via une connexion MCP autorisée, sans besoin de lier un compte supplémentaire.`,description:`Navigation dans l'assistant de modèle programmé et conseils de connexion`},"actionConfirmation.tiktok.music":{message:`La publication signifie que vous acceptez la « confirmation d'utilisation de la musique » de TikTok`,description:`Confirmation de publication TikTok : déclaration sur l'utilisation de la musique.`},"actionConfirmation.tiktok.musicBranded":{message:`La publication signifie que vous acceptez la « politique de contenu de marque » et la « confirmation d'utilisation de la musique » de TikTok`,description:`Confirmation de publication TikTok : déclaration après avoir coché le contenu de marque.`},"model.claudeOpus47":{message:`claude-opus-4.7`,description:`Nom du modèle du service, c'est-à-dire Claude Opus 4.7`},"model.claudeOpus47Description":{message:`Modèle le plus avancé actuellement`,description:`Description du modèle Claude Opus 4.7`}};export{e as default};
1
+ var e={"thinking.inProgress":{message:`En cours de réflexion...`,description:`Étiquette affichée pendant que le modèle génère le processus de raisonnement`},"thinking.done":{message:`Processus de réflexion`,description:`Étiquette utilisée pour plier l'affichage du processus de raisonnement une fois le modèle terminé`},"button.thinkDeeper":{message:`Réfléchir plus profondément`,description:`Bouton pour réfléchir plus profondément`},"button.deepsearch":{message:`Recherche approfondie`,description:`Bouton pour une recherche approfondie`},"button.search":{message:`Rechercher`,description:`Bouton de recherche`},"button.edit":{message:`Modifier le message`,description:`Modifier le message envoyé`},"modelGroup.chatgpt":{message:`ChatGPT`,description:`Nom du modèle du service, c'est-à-dire GPT`},"modelGroup.chatgptDescription":{message:`Modèle d'IA développé par OpenAI`,description:`Description du modèle ChatGPT`},"modelGroup.deepseek":{message:`DeepSeek`,description:`Nom du modèle du service, c'est-à-dire DeepSeek`},"modelGroup.deepseekDescription":{message:`Modèle d'IA développé par DeepSeek`,description:`Description du modèle DeepSeek`},"modelGroup.grok":{message:`Grok`,description:`Nom du modèle du service, c'est-à-dire Grok`},"modelGroup.grokDescription":{message:`Modèle d'IA développé par xAI`,description:`Description du modèle Grok3`},"modelGroup.gemini":{message:`Gemini`,description:`Nom du modèle du service, c'est-à-dire Gemini`},"modelGroup.geminiDescription":{message:`Modèle d'IA développé par Google`,description:`Description du groupe de modèles Gemini`},"modelGroup.claude":{message:`Claude`,description:`Nom du modèle du service, c'est-à-dire Claude`},"modelGroup.claudeDescription":{message:`Modèle d'IA développé par Anthropic`,description:`Description du groupe de modèles Claude`},"modelGroup.kimi":{message:`Kimi`,description:`Nom du modèle du service, c'est-à-dire Kimi`},"modelGroup.kimiDescription":{message:`Modèle d'IA développé par Dark Side of the Moon`,description:`Description du groupe de modèles Kimi`},"modelGroup.glm":{message:`GLM`,description:`Nom du modèle du service, c'est-à-dire GLM`},"modelGroup.glmDescription":{message:`Modèle de langage développé par Zhiyu AI`,description:`Description du groupe de modèles GLM`},"model.56Sol":{message:`gpt-5.6-sol`,description:`Nom du modèle du service, c'est-à-dire GPT 5.6 Sol`},"model.56SolDescription":{message:`Modèle phare de dernière génération GPT 5.6 Sol`,description:`Description du modèle GPT 5.6 Sol`},"model.56Terra":{message:`gpt-5.6-terra`,description:`Nom du modèle du service, c'est-à-dire GPT 5.6`},"model.56TerraDescription":{message:`Modèle phare de dernière génération GPT 5.6`,description:`Description du modèle GPT 5.6`},"model.56Luna":{message:`gpt-5.6-luna`,description:`Nom du modèle du service, c'est-à-dire GPT 5.6 Luna`},"model.56LunaDescription":{message:`Modèle GPT 5.6 plus rapide et plus léger`,description:`Description du modèle GPT 5.6 Luna`},"model.freeTag":{message:`Gratuit`,description:`Badge affiché à côté des modèles gratuits dans le sélecteur de modèles`},"model.deepseekChat":{message:`3.0`,description:`Nom du modèle du service, c'est-à-dire DeepSeek Chat`},"model.deepseekChatDescription":{message:`Pour les tâches quotidiennes`,description:`Description du modèle DeepSeek Chat`},"model.deepseekReasoner":{message:`R1`,description:`Nom du modèle du service, c'est-à-dire DeepSeek Reasoner`},"model.deepseekReasonerDescription":{message:`Pour le raisonnement et les questions de réflexion approfondie`,description:`Description du modèle DeepSeek Reasoner`},"model.deepseekChat32":{message:`3.2`,description:`Nom du modèle du service, c'est-à-dire DeepSeek V3.2 Exp`},"model.deepseekChat32Description":{message:`Dernière version expérimentale`,description:`Description du modèle expérimental DeepSeek V3.2`},"model.deepseekV4Flash":{message:`4.0`,description:`Nom du modèle du service, c'est-à-dire DeepSeek V4 Flash`},"model.deepseekV4FlashDescription":{message:`Modèle phare léger de dernière génération, 1M de contexte`,description:`Description du modèle DeepSeek V4 Flash`},"model.grok4":{message:`grok-4`,description:`Nom du modèle du service, c'est-à-dire Grok 4`},"model.grok4Description":{message:`General-purpose K2 model for compatible workflows`,description:`Description du modèle Grok 4`},"model.grok3":{message:`grok-3`,description:`Nom du modèle du service`},"model.grok3Description":{message:`Pour la plupart des tâches`,description:`Description du modèle Grok3`},"model.gemini30Pro":{message:`gemini-3.0-pro`,description:`Nom du modèle du service, c'est-à-dire Gemini 3.0 Pro`},"model.gemini30ProDescription":{message:`Modèle le plus avancé actuellement`,description:`Description du modèle Gemini 3.0 Pro`},"model.gemini31Pro":{message:`gemini-3.1-pro`,description:`Nom du modèle du service, c'est-à-dire Gemini 3.0 Pro`},"model.gemini31ProDescription":{message:`Modèle le plus avancé actuellement`,description:`Description du modèle Gemini 3.0 Pro`},"model.gemini25Pro":{message:`gemini-2.5-pro`,description:`Nom du modèle du service, c'est-à-dire Gemini 2.5 Pro`},"model.gemini25ProDescription":{message:`Pour des tâches de raisonnement complexes`,description:`Description du modèle Gemini 2.5 Pro`},"model.gemini25Flash":{message:`gemini-2.5-flash`,description:`Nom du modèle du service, c'est-à-dire Gemini 2.5 Flash`},"model.gemini25FlashDescription":{message:`Modèle plus rapide et plus léger`,description:`Description du modèle Gemini 2.5 Flash`},"model.gemini35Flash":{message:`gemini-3.5-flash`,description:`Nom du modèle du service, c'est-à-dire Gemini 2.5 Flash`},"model.gemini35FlashDescription":{message:`Modèle plus rapide et plus léger`,description:`Description du modèle Gemini 2.5 Flash`},"model.claudeOpus5":{message:`claude-opus-5`,description:`Name of the service model, i.e., Claude Opus 5`},"model.claudeOpus5Description":{message:`Modèle le plus avancé actuellement`,description:`Description du modèle Claude Opus 5`},"model.claudeOpus48":{message:`claude-opus-4.8`,description:`Nom du modèle du service, c'est-à-dire Claude Opus 4.8`},"model.claudeOpus48Description":{message:`Le modèle le plus avancé actuellement`,description:`Description du modèle Claude Opus 4.8`},"model.claudeSonnet46":{message:`claude-sonnet-4.6`,description:`Nom du modèle du service, c'est-à-dire Claude Sonnet 4.6`},"model.claudeSonnet46Description":{message:`Convient à la plupart des tâches`,description:`Description du modèle Claude Sonnet 4.6`},"model.claudeHaiku45":{message:`claude-haiku-4.5`,description:`Nom du modèle du service, c'est-à-dire Claude Haiku 4.5`},"model.claudeHaiku45Description":{message:`Modèle léger et rapide`,description:`Description du modèle Claude Haiku 4.5`},"model.kimiK3":{message:`kimi-k3`,description:`Name of Moonshot AI's Kimi K3 flagship model`},"model.kimiK3Description":{message:`Modèle phare prenant en charge le raisonnement, la vision et un contexte de 1 million de tokens`,description:`Description du modèle Kimi K3`},"model.kimiK26":{message:`kimi-k2.6`,description:`Name of the Kimi K2.6 model`},"model.kimiK26Description":{message:`Modèle de raisonnement et de vision compatible avec le flux de travail K2`,description:`Description du modèle Kimi K2.6`},"model.kimiK25":{message:`kimi-k2.5`,description:`Nom du modèle du service, c'est-à-dire Kimi K2.5`},"model.kimiK25Description":{message:`Modèle le plus avancé actuellement`,description:`Description du modèle Kimi K2.5`},"model.kimiK2Thinking":{message:`kimi-k2 Raisonnement`,description:`Nom du modèle du service, c'est-à-dire Kimi K2 Raisonnement`},"model.kimiK2ThinkingDescription":{message:`Convient pour le raisonnement et la réflexion approfondie`,description:`Description du modèle Kimi K2 Raisonnement`},"model.kimiK2ThinkingTurbo":{message:`kimi-k2 Raisonnement Turbo`,description:`Nom du modèle du service, c'est-à-dire Kimi K2 Raisonnement Turbo`},"model.kimiK2ThinkingTurboDescription":{message:`Modèle de raisonnement plus rapide`,description:`Description du modèle Kimi K2 Raisonnement Turbo`},"model.glm51":{message:`glm-5.1`,description:`Nom du modèle du service, c'est-à-dire GLM 5.1`},"model.glm51Description":{message:`Modèle phare le plus récent de Zhipu`,description:`Description du modèle GLM 5.1`},"model.glm47":{message:`glm-4.7`,description:`Nom du modèle du service, c'est-à-dire GLM 4.7`},"model.glm47Description":{message:`Équilibre entre performance et coût`,description:`Description du modèle GLM 4.7`},"message.startNewChat":{message:`Démarrer une nouvelle conversation`,description:`Message sur la page web, informant l'utilisateur de commencer une nouvelle conversation`},"message.uploadFile":{message:`Télécharger un fichier`,description:`Message sur la page web, informant l'utilisateur de télécharger un fichier`},"message.noToken":{message:`Veuillez d'abord demander le service approprié`,description:`Message sur la page web, informant l'utilisateur de demander d'abord le service approprié`},"message.newMessagePlaceholder":{message:`Veuillez entrer votre question...`,description:`Placeholder sur la page web, informant l'utilisateur d'entrer une question`},"message.noInput":{message:`La question ne peut pas être vide`,description:`Message sur la page web, informant l'utilisateur que la question ne peut pas être vide`},"message.uploadReferencesExceed":{message:`Vous ne pouvez télécharger qu'un seul fichier`,description:`Message sur la page web, informant l'utilisateur qu'il ne peut télécharger qu'un seul fichier`},"message.uploadReferencesError":{message:`Échec du téléchargement du fichier, veuillez réessayer plus tard`,description:`Message sur la page web, informant l'utilisateur que le téléchargement du fichier a échoué, veuillez réessayer plus tard`},"message.uploadReferencesTooLarge":{message:`La taille du fichier {size} dépasse la limite {max}, veuillez compresser et réessayer`,description:`Message sur la page web informant l'utilisateur que le fichier dépasse la limite de taille de téléchargement et qu'il doit être compressé avant de réessayer`},"message.notApplied":{message:`Vous n'avez pas encore demandé ce service, veuillez le faire d'abord`,description:`Message sur la page web, informant l'utilisateur qu'il n'a pas encore demandé ce service, veuillez le faire d'abord`},"message.tryForFree":{message:`Essai gratuit`,description:`Message sur la page web, informant l'utilisateur de l'essai gratuit`},"message.question1":{message:`Créer un plan d'entraînement`,description:`Exemple de question pour commencer la conversation, demandant à l'utilisateur d'écrire un code JavaScript qui affiche Hello World`},"message.question2":{message:`Créer une page personnelle`,description:`Exemple de question pour commencer la conversation, demandant à l'utilisateur d'écrire un e-mail à Mike pour lui dire que je viens de déménager`},"message.question3":{message:`Concevoir un jeu de programmation amusant`,description:`Exemple de question pour commencer la conversation, demandant à l'utilisateur d'expliquer les principes de base de l'informatique quantique en termes simples`},"message.question4":{message:`Vivre Séoul comme un local`,description:`Exemple de question pour commencer la conversation, demandant à l'utilisateur d'expliquer l'impact de la réalité virtuelle sur la création artistique`},"message.question5":{message:`Qui est plus grand, 9.8 ou 9.11 ?`,description:`Exemple de question pour commencer la conversation, demandant de comparer la taille de deux nombres`},"message.question6":{message:`Quel impact l'IA aura-t-elle sur l'avenir ?`,description:`Exemple de question pour commencer la conversation, demandant quel impact l'IA aura sur l'avenir`},"message.question7":{message:`Comment améliorer l'efficacité d'apprentissage ?`,description:`Exemple de question pour commencer la conversation, demandant comment améliorer son efficacité d'apprentissage`},"message.question8":{message:`Comment améliorer sa concentration ?`,description:`Exemple de question pour commencer la conversation, demandant comment améliorer sa concentration`},"message.errorApiError":{message:`Échec de la réponse, veuillez réessayer plus tard`,description:`Message sur la page web, informant l'utilisateur que la réponse a échoué, veuillez réessayer plus tard`},"message.errorBadRequest":{message:`Contenu de la demande non conforme, veuillez reformuler votre question`,description:`Message sur la page web, informant l'utilisateur que le contenu de la demande n'est pas conforme, veuillez reformuler votre question`},"message.errorNoConversation":{message:`La conversation n'existe pas ou a expiré, veuillez commencer une nouvelle conversation`,description:`Message sur la page web, informant l'utilisateur que la conversation n'existe pas ou a expiré, veuillez commencer une nouvelle conversation`},"message.errorContentTooLarge":{message:`Le contenu de la question est trop long, veuillez le raccourcir et réessayer`,description:`Message sur la page web, informant l'utilisateur que le contenu de la question est trop long, veuillez le raccourcir et réessayer`},"message.errorTooManyRequests":{message:`Vos demandes sont trop fréquentes, veuillez réessayer plus tard`,description:`Message sur la page, informant l'utilisateur que ses demandes sont trop fréquentes et qu'il doit réessayer plus tard`},"message.errorBusy":{message:`Le serveur est occupé, veuillez réessayer plus tard`,description:`Message sur la page web informant l'utilisateur que le serveur est occupé, veuillez réessayer plus tard`},"message.errorUsedUp":{message:`Vous avez épuisé votre quota, veuillez en acheter davantage pour continuer`,description:`Message sur la page web informant l'utilisateur qu'il a épuisé son quota, veuillez en acheter davantage pour continuer`},"message.errorUnknown":{message:`Une erreur inconnue s'est produite sur le serveur, veuillez réessayer plus tard ou contacter le support`,description:`Message sur la page web informant l'utilisateur qu'une erreur inconnue s'est produite sur le serveur, veuillez réessayer plus tard ou contacter le support`},"message.errorTimeout":{message:`Le temps de réponse a expiré, veuillez réessayer plus tard`,description:`Message sur la page web informant l'utilisateur que le temps de réponse a expiré, veuillez réessayer plus tard`},"message.errorNotApplied":{message:`Vous n'avez pas demandé ce service, veuillez d'abord faire une demande avant de continuer`,description:`Message sur la page web informant l'utilisateur qu'il n'a pas demandé ce service, veuillez d'abord faire une demande avant de continuer`},"message.confirmDelete":{message:`Confirmer la suppression`,description:`Message sur la page web informant l'utilisateur de confirmer la suppression`},"message.howToUse":{message:`L'IA peut se tromper, veuillez vérifier les informations importantes.`,description:`Message sur la page web informant l'utilisateur que l'IA peut se tromper, veuillez vérifier les informations importantes`},"title.chat":{message:`Chat IA`,description:`Titre de la page web, c'est-à-dire Chat IA`},"title.example":{message:`Exemple`,description:`Titre de la page web, c'est-à-dire Exemple`},"title.capabilities":{message:`Fonctionnalités`,description:`Titre de la page web, c'est-à-dire Fonctionnalités`},"title.limitations":{message:`Limitations`,description:`Titre dans la page web, indiquant que cette section concerne les limitations techniques du service`},"title.complexQuestion":{message:`Répondre à des questions complexes`,description:`Titre sur la page web, indiquant que cette section concerne la capacité du service à répondre à des questions complexes`},"title.professionalQuestion":{message:`Consulter des questions professionnelles`,description:`Titre sur la page web, indiquant que cette section concerne la capacité du service à consulter des questions professionnelles`},"title.getTips":{message:`Obtenir des idées et de l'inspiration`,description:`Titre sur la page web, indiquant que cette section concerne la capacité du service à obtenir des idées et de l'inspiration`},"group.today":{message:`Aujourd'hui`,description:`Nom du groupe sur la page web, c'est-à-dire Aujourd'hui`},"group.yesterday":{message:`Hier`,description:`Nom du groupe sur la page web, c'est-à-dire Hier`},"group.thisWeek":{message:`Cette semaine`,description:`Nom du groupe sur la page web, c'est-à-dire Cette semaine`},"group.earlier":{message:`Plus tôt`,description:`Nom du groupe sur la page web, c'est-à-dire Plus tôt`},"connections.tooltip":{message:`Gestion des connexions`,description:`Astuce pour le bouton redirigeant vers la page de gestion des connexions auth.acedata.cloud`},"skill.tooltip":{message:`Gestion des compétences`,description:`Astuce pour le bouton redirigeant vers la page de gestion des compétences auth.acedata.cloud`},"composer.addAction":{message:`Ajouter du contenu`,description:`Astuce pour le bouton plus sous la zone de saisie, permettant de télécharger des fichiers, d'ouvrir la gestion des compétences ou des connexions`},"composer.addFiles":{message:`Ajouter des photos ou des fichiers`,description:`Élément du menu contextuel du bouton plus : télécharger des images ou des fichiers`},"composer.skills":{message:`Compétences`,description:`Élément du menu contextuel du bouton plus : ouvrir la gestion des compétences`},"composer.connections":{message:`Connexions`,description:`Élément du menu contextuel du bouton plus : ouvrir la gestion des connexions`},"agent.title":{message:`Agent de bureau`,description:`Titre de la boîte de dialogue de gestion des agents`},"agent.tooltip":{message:`Agent de bureau`,description:`Astuce pour le bouton de l'agent`},"agent.connected":{message:`Connecté`,description:`État de connexion de l'agent`},"agent.notConnected":{message:`Non connecté`,description:`État de non connexion de l'agent`},"agent.description":{message:`Connectez l'agent de bureau pour accéder aux fichiers locaux, exécuter des commandes et utiliser le serveur MCP local dans les conversations IA.`,description:`Description de l'agent`},"agent.name":{message:`Nom de l'agent`,description:`Étiquette pour le nom de l'agent`},"agent.tools":{message:`Outils disponibles`,description:`Étiquette pour le nombre d'outils de l'agent`},"agent.connectedSince":{message:`Temps de connexion`,description:`Étiquette pour le temps de connexion de l'agent`},"agent.connectedHint":{message:`Votre agent de bureau est connecté et prêt à l'emploi.`,description:`Astuce indiquant que l'agent est connecté`},"agent.installLabel":{message:`Installer l'agent de bureau :`,description:`Étiquette d'instructions d'installation`},"agent.runLabel":{message:`Exécuter l'agent :`,description:`Étiquette d'instruction d'exécution`},"askUserQuestion.submit":{message:`Soumettre`,description:`Bouton de soumission pour la dernière question de l'assistant ask-user-question`},"askUserQuestion.next":{message:`Question suivante`,description:`Avancer à la question suivante dans l'assistant ask-user-question`},"askUserQuestion.back":{message:`Question précédente`,description:`Revenir à la question précédente dans l'assistant ask-user-question`},"askUserQuestion.skipAll":{message:`Tout sauter`,description:`Sauter tout l'assistant ask-user-question, permettant au modèle de continuer sans réponse`},"askUserQuestion.other":{message:`Autre`,description:`Option fictive ; lorsque sélectionnée, cette question ouvre un champ de saisie de texte personnalisé`},"askUserQuestion.otherDesc":{message:`Entrez votre propre réponse`,description:`Description d'assistance sous l'option autre`},"askUserQuestion.placeholder":{message:`Veuillez entrer votre réponse…`,description:`Texte d'espace réservé pour le champ de saisie de réponse personnalisé de chaque question`},"askUserQuestion.multiSelectHint":{message:`Choisissez une ou plusieurs options`,description:`Indication affichée lors de questions à choix multiples`},"askUserQuestion.collapsedAnswerLabel":{message:`Votre réponse`,description:`Texte de secours lorsque la réponse spécifique ne peut pas être extraite de l'historique`},"consent.title":{message:`Autorisation de connecteur requise`,description:`Titre de la carte d'autorisation du connecteur`},"consent.matchAny":{message:`Autoriser au moins un`,description:`Étiquette : n'importe quel connecteur de ce groupe suffit`},"consent.matchAll":{message:`Tous doivent être autorisés`,description:`Étiquette : tous les connecteurs de ce groupe doivent être autorisés`},"consent.authorize":{message:`Autoriser`,description:`Bouton d'autorisation, clique pour ouvrir la page d'autorisation d'un tiers`},"consent.skip":{message:`Ignorer pour l'instant`,description:`Bouton pour passer l'autorisation, le modèle continuera sans ce connecteur`},"consent.continue":{message:`Continuer`,description:`Bouton Continuer affiché lorsque, après le retour OAuth, on détecte que le connecteur est connecté ; un clic soumet l'autorisation.`},"consent.selectScopes":{message:`Sélectionnez les portées d'autorisation {provider}`,description:`Title of the scope picker dialog opened from the consent card; {provider} is the upstream provider name (e.g. Gmail).`},"consent.selectScopesHint":{message:`Sélectionnez les permissions que vous souhaitez autoriser. Plusieurs choix possibles, par défaut, seules les informations de connexion de base sont accordées.`,description:`Body copy explaining that the user can opt out of specific scopes; rendered above the checkbox group.`},"consent.installFailed":{message:`L'autorisation a échoué. Veuillez réessayer.`,description:`Toast shown when the AuthBackend install endpoint returns an error from the consent card.`},"consent.statusConnected":{message:`Connecté`,description:`Badge indiquant qu'un connecteur est connecté`},"consent.statusUnconnected":{message:`Non connecté`,description:`Badge indiquant qu'un connecteur n'est pas connecté (affiché lorsque aucun lien d'autorisation n'existe)`},"consent.resolvedAuthorized":{message:`Autorisé : {list}`,description:`Texte au bas de la carte après l'autorisation de l'utilisateur, {list} représente la liste des connecteurs autorisés`},"consent.resolvedSkipped":{message:`Autorisation du connecteur ignorée`,description:`Texte au bas de la carte après que l'utilisateur ait sauté l'autorisation`},"browserTool.title":{message:`Activité du navigateur`,description:`Titre par défaut pour l'activité de l'outil BrowserDevice`},"browserTool.state.starting_session":{message:`Démarrage de la session du navigateur`,description:``},"browserTool.state.attaching_tab":{message:`Connexion à l'onglet du navigateur`,description:``},"browserTool.state.ready":{message:`Navigateur prêt`,description:``},"browserTool.state.device_offline":{message:`L'appareil du navigateur est hors ligne`,description:`L'appareil du navigateur sélectionné n'est pas en ligne`},"browserTool.state.device_busy":{message:`L'appareil du navigateur est occupé`,description:``},"browserTool.state.authorization_required":{message:`Autorisation requise dans Studio`,description:``},"browserTool.state.executing":{message:`Exécution dans le navigateur`,description:`L'appareil du navigateur exécute l'outil`},"browserTool.state.completed":{message:`Terminé`,description:`Exécution de l'outil du navigateur terminée`},"browserTool.state.stopped":{message:`Session du navigateur arrêtée`,description:``},"browserTool.state.expired":{message:`La demande du navigateur a expiré`,description:`La demande d'exécution de l'outil du navigateur a expiré`},"browserTool.state.debugger_unavailable":{message:`Veuillez fermer les outils de développement pour continuer`,description:``},"browserTool.state.unknown_outcome":{message:`Résultat d'exécution inconnu, veuillez vérifier et réessayer`,description:``},"browserTool.state.failed":{message:`Échec de l'opération du navigateur`,description:``},"browserTool.stop":{message:`Arrêter`,description:``},"browserTool.recovery.open-device-manager":{message:`Gérer les appareils`,description:``},"browserTool.recovery.stop-other-session":{message:`Arrêter l'autre session`,description:``},"browserTool.recovery.close-devtools":{message:`Fermer les outils de développement`,description:``},"browserTool.recovery.open-consent-card":{message:`Voir l'autorisation`,description:``},"scheduledTasks.navTitle":{message:`Tâches planifiées`,description:`Entrée des tâches planifiées dans la barre latérale`},"scheduledTasks.tab.tasks":{message:`Tâches planifiées`,description:`Page des tâches planifiées - Onglet des tâches`},"scheduledTasks.tab.runs":{message:`Enregistrements d'exécution`,description:`Page des tâches planifiées - Onglet de tous les enregistrements d'exécution`},"scheduledTasks.filterAll":{message:`Tout`,description:`Filtre d'état des enregistrements d'exécution - Tout`},"scheduledTasks.title":{message:`Tâches planifiées`,description:`Titre de la page`},"scheduledTasks.create":{message:`Nouveau`,description:`Bouton pour créer une tâche planifiée`},"scheduledTasks.edit":{message:`Modifier la tâche`,description:`Titre de la boîte de dialogue d'édition`},"scheduledTasks.duplicate":{message:`Dupliquer la tâche`,description:`Bouton pour dupliquer une tâche, pré-remplissant le formulaire de création basé sur une tâche existante`},"scheduledTasks.empty":{message:`Aucune tâche planifiée pour le moment, cliquez sur « Nouveau » pour en créer une`,description:`Message d'état vide`},"scheduledTasks.noRuns":{message:`Pas encore exécuté`,description:`Aucune historique d'exécution`},"scheduledTasks.loadError":{message:`Échec du chargement`,description:`Message d'erreur de chargement`},"scheduledTasks.deleteConfirm":{message:`Confirmer la suppression de « {name} » ? La tâche cessera de fonctionner après la suppression.`,description:`Confirmation de suppression`},"scheduledTasks.triggerNow":{message:`Déclencher maintenant`,description:`Exécuter manuellement la tâche immédiatement`},"scheduledTasks.triggerSuccess":{message:`Déclenché, vous pourrez voir le résultat dans l'historique d'exécution plus tard.`,description:`Message de succès de déclenchement manuel`},"scheduledTasks.triggerError":{message:`Échec du déclenchement, veuillez réessayer plus tard.`,description:`Message d'échec de déclenchement manuel`},"scheduledTasks.viewResult":{message:`Voir le résultat`,description:`Accéder à la conversation`},"scheduledTasks.viewRuns":{message:`Historique des exécutions`,description:`Voir l'historique des exécutions en bas de la carte`},"scheduledTasks.noConversation":{message:`Aucun enregistrement de conversation`,description:`Exécution sans conversation associée (version ancienne)`},"scheduledTasks.jitterHint":{message:`±60s de variation`,description:`Explication de la variation de l'heure d'exécution`},"scheduledTasks.runCount":{message:`Exécuté {count} fois`,description:`Nombre d'exécutions`},"scheduledTasks.state.enabled":{message:`En cours`,description:`État activé`},"scheduledTasks.state.disabled":{message:`Suspendu`,description:`État désactivé`},"scheduledTasks.state.error":{message:`Erreur`,description:`État d'erreur`},"scheduledTasks.run.queued":{message:`En attente`,description:`État en attente`},"scheduledTasks.run.running":{message:`En cours`,description:`État en cours`},"scheduledTasks.run.success":{message:`Réussi`,description:`État de succès`},"scheduledTasks.run.failed":{message:`Échoué`,description:`État d'échec`},"scheduledTasks.run.indeterminate":{message:`Non confirmé`,description:`Indeterminate run status (judge could not verify; not a failure)`},"scheduledTasks.run.reason.max_turns":{message:`Limite d'étapes atteinte`},"scheduledTasks.run.reason.max_budget_usd":{message:`Limite de budget atteinte`},"scheduledTasks.run.reason.tool_call_loop":{message:`Boucle d'appels d'outils détectée`},"scheduledTasks.run.reason.prompt_too_long":{message:`Invite trop longue`},"scheduledTasks.run.reason.aborted_streaming":{message:`Interrompu`},"scheduledTasks.run.reason.aborted_tools":{message:`Interrompu`},"scheduledTasks.run.reason.awaiting_user_input":{message:`En attente de votre saisie`},"scheduledTasks.run.reason.error":{message:`Erreur`},"scheduledTasks.run.reason.unknown":{message:`Erreur inconnue`},"scheduledTasks.run.reason.balance_insufficient":{message:`Solde insuffisant`},"scheduledTasks.run.reason.billing_gate_failed":{message:`Échec de l’autorisation de facturation`},"scheduledTasks.run.reason.unauthorized":{message:`Non autorisé`},"scheduledTasks.run.reason.timeout":{message:`Délai dépassé`},"scheduledTasks.run.reason.internal_error":{message:`Erreur interne`},"scheduledTasks.run.needs_user_input":{message:`Nécessite une action`,description:`État nécessitant une action de l'utilisateur`},"scheduledTasks.run.reason.browser_device_offline":{message:`L'appareil du navigateur est hors ligne`,description:``},"scheduledTasks.run.reason.browser_authorization_stale":{message:`L'autorisation du navigateur a changé, veuillez modifier cette tâche`,description:``},"scheduledTasks.scheduleType.daily":{message:`Quotidien`,description:`Exécution quotidienne`},"scheduledTasks.scheduleType.minutely":{message:`Chaque minute`},"scheduledTasks.scheduleType.hourly":{message:`Horaire`,description:`Exécution horaire`},"scheduledTasks.scheduleType.weekly":{message:`Hebdomadaire`,description:`Exécution hebdomadaire`},"scheduledTasks.scheduleType.cron":{message:`Expression Cron`,description:`Cron personnalisé`},"scheduledTasks.scheduleType.interval":{message:`Tous les`,description:`Exécution à intervalles réguliers`},"scheduledTasks.form.intervalUnit.minute":{message:`Minute`,description:`Unité d'intervalle : minute`},"scheduledTasks.form.intervalUnit.hour":{message:`Heure`,description:`Unité d'intervalle : heure`},"scheduledTasks.form.intervalUnit.day":{message:`Jour`,description:`Unité d'intervalle : jour`},"scheduledTasks.form.hourlyMinute":{message:`Minute de déclenchement`,description:`Minute à laquelle la tâche se déclenche chaque heure`},"scheduledTasks.form.hourlyMinuteHint":{message:`Minute de déclenchement chaque heure (0–59)`,description:`Explication des minutes par heure`},"scheduledTasks.form.intervalHint":{message:`Exécute une fois à intervalles fixes depuis la dernière exécution (minimum 1 minute)`,description:`Explication des intervalles fixes`},"scheduledTasks.form.cronHint":{message:`Expression Cron standard à 5 segments : minute heure jour mois semaine`,description:`Explication de Cron`},"scheduledTasks.form.schedulePreview":{message:`Fréquence d'exécution : {text}`,description:`Aperçu de la fréquence`},"scheduledTasks.humanize.everyNMinutes":{message:`Toutes les {n} minutes`,description:`Lisible par l'homme : toutes les N minutes`},"scheduledTasks.humanize.everyNHours":{message:`Toutes les {n} heures`,description:`Lisible par l'homme : toutes les N heures`},"scheduledTasks.humanize.everyNDays":{message:`Tous les {n} jours`,description:`Lisible par l'homme : tous les N jours`},"scheduledTasks.humanize.hourlyAtMinute":{message:`À la {n} minute de chaque heure`,description:`Lisible par l'homme : à la N minute de chaque heure`},"scheduledTasks.humanize.dailyAt":{message:`Chaque jour à {time}`,description:`Lisible par l'homme : chaque jour à un moment donné`},"scheduledTasks.humanize.weeklyAt":{message:`Chaque semaine {weekday} à {time}`,description:`Lisible par l'homme : chaque semaine à un moment donné`},"scheduledTasks.humanize.cronRaw":{message:`Cron : {cron}`,description:`Lisible par l'homme : Cron brut`},"scheduledTasks.humanize.once":{message:`Une seule fois à {time}`,description:`Lisible par l'homme : une seule fois`},"scheduledTasks.form.name":{message:`Nom de la tâche`,description:`Champ de nom`},"scheduledTasks.form.namePlaceholder":{message:`Ex : Résumé des informations quotidiennes`,description:`Placeholder pour le nom`},"scheduledTasks.form.model":{message:`Modèle`,description:`Sélection du modèle`},"scheduledTasks.form.prompt":{message:`Mot d'invite`,description:`Champ pour le mot d'invite`},"scheduledTasks.form.promptPlaceholder":{message:`Entrez la question ou la commande à exécuter régulièrement, prenant en charge les variables {'{{date}}'}, {'{{run_count}}'}, {'{{last_output}}'}`,description:`Espace réservé pour le mot d'invite`},"scheduledTasks.form.promptHint":{message:`Variables de modèle prises en charge : {'{{date}}'} date d'aujourd'hui, {'{{run_count}}'} numéro de la course, {'{{last_output}}'} résumé du dernier résultat`,description:`Explication du mot d'invite`},"scheduledTasks.form.schedule":{message:`Fréquence d'exécution`,description:`Choix de la fréquence`},"scheduledTasks.form.time":{message:`Heure d'exécution`,description:`Champ pour l'heure`},"scheduledTasks.form.timezone":{message:`Fuseau horaire`},"scheduledTasks.form.timezoneHint":{message:`Les nouvelles tâches utilisent par défaut le fuseau horaire de cet appareil : {timezone}. Une fois enregistré, il reste associé à la tâche.`},"scheduledTasks.form.timezoneInvalid":{message:`Sélectionnez un fuseau horaire IANA valide`},"scheduledTasks.form.weekday":{message:`Jour de la semaine`,description:`Champ pour le jour de la semaine`},"scheduledTasks.form.cron":{message:`Expression Cron`,description:`Champ pour l'expression cron`},"scheduledTasks.form.skills":{message:`Autoriser les Skills`,description:`Sélection multiple pour l'autorisation des skills dans les tâches planifiées sans supervision`},"scheduledTasks.form.skillsPlaceholder":{message:`Sélectionnez les Skills autorisés à s'exécuter automatiquement pour cette tâche`,description:`Espace réservé pour l'autorisation des skills`},"scheduledTasks.form.skillsHint":{message:`Les Skills sélectionnés peuvent s'exécuter en arrière-plan lors des tâches planifiées sans confirmation manuelle ; les Skills non sélectionnés ne peuvent que prévisualiser ou attendre une confirmation.`,description:`Explication de l'autorisation des skills`},"scheduledTasks.form.browserConnection":{message:`Connexion du navigateur`,description:``},"scheduledTasks.form.browserEffects":{message:`Peut exécuter les effets externes suivants : {effects}`,description:``},"scheduledTasks.form.authorizationExpires":{message:`Heure d'expiration de l'autorisation sans surveillance : {time}`,description:``},"scheduledTasks.form.browserBindingInvalid":{message:`Veuillez sélectionner une connexion de navigateur en ligne et compatible avant de sauvegarder`,description:``},"scheduledTasks.form.connectionAccount":`Account for {connector}`,"scheduledTasks.form.connectionAccountDefault":`Use the default account`,"scheduledTasks.form.accountIsDefault":`default`,"scheduledTasks.form.skillMissing":{message:`Non connecté`,description:`skill manque de connexion`},"scheduledTasks.form.mcpServers":{message:`Autoriser MCP`,description:`Sélection multiple des serveurs MCP pour les tâches planifiées sans supervision.`},"scheduledTasks.form.mcpServersPlaceholder":{message:`Sélectionnez les serveurs MCP autorisés à charger automatiquement cette tâche`,description:`Espace réservé pour l'autorisation des serveurs MCP.`},"scheduledTasks.form.mcpServersHint":{message:`Les serveurs MCP sélectionnés peuvent être chargés et exécutés en arrière-plan des tâches planifiées ; les serveurs MCP non sélectionnés ne seront pas chargés en mode sans supervision.`,description:`Explication sur l'autorisation des serveurs MCP.`},"scheduledTasks.form.maxTurns":{message:`Tours maximum`,description:`Scheduled task per-run agent turn cap`},"scheduledTasks.form.maxTurnsHint":{message:`Nombre maximal de tours de l'agent par exécution (1–50). Une limite trop basse arrête les tâches en plusieurs étapes (par ex. des skills exécutant plusieurs étapes Bash/recherche de docs) avant leur fin, sans résultat final. Par défaut 50.`,description:`Scheduled task per-run agent turn cap`},"scheduledTasks.form.skillsConfirmTitle":{message:`Confirmer l'autorisation sans supervision`,description:`Titre de la confirmation d'autorisation`},"scheduledTasks.form.skillsConfirm":{message:`Cette tâche permettra à {count} Skills de s'exécuter en arrière-plan sans confirmation manuelle : {skills}. Ces Skills peuvent envoyer des messages, publier du contenu ou écrire dans des services externes, veuillez confirmer.`,description:`Texte de confirmation d'autorisation`},"scheduledTasks.form.skillNotActiveTitle":{message:`Vous devez d'abord lier la compétence`,description:`Titre de la boîte de dialogue affichée lorsqu'une compétence/MCP autorisée pour une tâche planifiée n'est pas encore liée pour l'utilisateur.`},"scheduledTasks.form.skillNotActiveMessage":{message:`La compétence « {name} » n'est pas encore liée ou activée sur votre compte. Si vous ne liez pas d'abord, la tâche planifiée peut ne pas pouvoir l'utiliser lors de son exécution automatique en arrière-plan. Il est conseillé de lier d'abord avant d'enregistrer, ou cliquez sur le bouton ci-dessous pour continuer à enregistrer.`,description:`Corps d'avertissement ; {name} est le nom de la compétence/MCP. Explique qu'elle n'est pas liée et propose de sauvegarder quand même.`},"scheduledTasks.form.skillNotActiveForce":{message:`Voulez-vous vraiment continuer à enregistrer`,description:`Bouton de confirmation qui enregistre la tâche planifiée malgré tout, en contournant la vérification de liaison (forcer).`},"scheduledTasks.form.required":{message:`Veuillez remplir le nom de la tâche et le mot d'invite`,description:`Validation des champs obligatoires`},"artifacts.navTitle":{message:`Productions`,description:`Entrée de la barre latérale pour les productions`},"artifacts.title":{message:`Mes productions`,description:`Titre de la page de production`},"artifacts.summaryTotal":{message:`Un total de {count} productions cette période`,description:`Résumé du nombre total de productions`},"artifacts.filterAll":{message:`Tout`,description:`Filtre de type de production - Tout`},"artifacts.empty":{message:`Aucune production pour le moment. Laissez l'IA vous aider à rédiger des articles, générer des images ou envoyer des e-mails, et la production apparaîtra ici automatiquement.`,description:`Alerte lorsque la production est vide`},"artifacts.loadError":{message:`Échec du chargement de la production`,description:`Alerte d'erreur lors du chargement de la production`},"artifacts.actionError":{message:`Échec de l'opération, veuillez réessayer`,description:`Alerte d'erreur lors de l'opération de production`},"artifacts.open":{message:`Ouvrir`,description:`Bouton pour ouvrir le lien original de la production`},"artifacts.hide":{message:`Masquer`,description:`Bouton pour masquer la production`},"artifacts.unhide":{message:`Annuler le caché`,description:`Bouton pour restaurer un Artifact caché`},"artifacts.showHidden":{message:`Afficher les cachés`,description:`Commutateur pour afficher les Artifacts cachés dans la barre de filtrage`},"artifacts.hiddenBadge":{message:`Caché`,description:`Badge indiquant que l'Artifact a été caché`},"artifacts.delete":{message:`Supprimer`,description:`Bouton de suppression de la production`},"artifacts.deleteConfirm":{message:`Êtes-vous sûr de vouloir supprimer définitivement cet enregistrement de production ?`,description:`Alerte de confirmation pour la suppression de la production`},"artifacts.loadMore":{message:`Charger plus`,description:`Bouton pour charger plus de productions`},"artifacts.sourceAuto":{message:`Capture automatique`,description:`Étiquette de source pour la capture automatique`},"artifacts.kind.article":{message:`Article`,description:`Type de production - Article`},"artifacts.kind.image":{message:`Image`,description:`Type de production - Image`},"artifacts.kind.video":{message:`Vidéo`,description:`Type de production - Vidéo`},"artifacts.kind.audio":{message:`Audio`,description:`Type de production - Audio`},"artifacts.kind.document":{message:`Document`,description:`Type de production - Document`},"artifacts.kind.email":{message:`E-mail`,description:`Type de production - E-mail`},"artifacts.kind.message":{message:`Message`,description:`Type de production - Message`},"artifacts.kind.dataset":{message:`Données`,description:`Type de production - Données`},"artifacts.kind.link":{message:`Lien`,description:`Type de production - Lien`},"artifacts.kind.other":{message:`Autre`,description:`Type de production - Autre`},"share.menu":{message:`Partager`,description:`Élément de menu pour ouvrir la boîte de dialogue de partage dans la barre latérale / la barre d'outils`},"share.dialogTitle":{message:`Partager la conversation`,description:`Titre de la boîte de dialogue de partage`},"share.description":{message:`Quiconque ayant le lien peut voir cette conversation, mais ne peut pas continuer à discuter.`,description:`Explique ce qui se passe après le partage de la conversation`},"share.createLink":{message:`Créer un lien de partage`,description:`Bouton pour créer un lien de partage public pour la conversation`},"share.copy":{message:`Copier le lien`,description:`Bouton pour copier le lien de partage dans le presse-papiers`},"share.copied":{message:`Copié`,description:`Indication apparaissant brièvement sur le bouton après une copie réussie`},"share.disable":{message:`Désactiver le lien`,description:`Bouton pour révoquer le lien de partage et rendre l'URL invalide`},"share.disabled":{message:`Le lien de partage a été désactivé.`,description:`Indication après que le lien de partage a été désactivé`},"share.needLogin":{message:`Veuillez vous connecter d'abord, puis partager cette conversation.`,description:`Indication pour les visiteurs non connectés essayant de partager une conversation`},"share.noConversation":{message:`Veuillez d'abord ouvrir une conversation avant de partager.`,description:`Indication lorsque le bouton de partage est cliqué sans conversation active`},"share.createFailed":{message:`Échec de la création du lien de partage, veuillez réessayer plus tard.`,description:`Message d'erreur lorsque la création du lien de partage échoue`},"share.disableFailed":{message:`Échec de la désactivation du lien de partage, veuillez réessayer plus tard.`,description:`Message d'erreur lorsque la désactivation du lien de partage échoue`},"share.startYourOwn":{message:`Allez démarrer ma propre conversation`,description:`Appel à l'action sur la page publique de partage pour guider les visiteurs anonymes vers la page d'accueil de l'application`},"share.unavailableTitle":{message:`Cette conversation partagée n'est pas disponible.`,description:`Titre de la page publique de partage lorsque le lien est invalide ou non disponible`},"share.unavailableHint":{message:`L'autre partie a peut-être désactivé le lien, ou l'URL est incorrecte.`,description:`Indication lorsque le lien de partage est invalide ou non disponible`},"share.viewOnly":{message:`Conversation de partage en lecture seule`,description:`Étiquette indiquant que la conversation est en lecture seule sur la page publique de partage`},"share.untitled":{message:`Conversation sans titre`,description:`Texte d'espace réservé utilisé lorsque la conversation partagée n'a pas de titre`},"share.footerNote":{message:`Vous consultez une conversation partagée. Cliquez ci-dessus pour discuter avec l'IA vous-même.`,description:`Explication sous la conversation sur la page publique partagée`},"scheduledTasks.run.reason.goal_not_achieved":{message:`Objectif non atteint`,description:``},"scheduledTasks.run.reason.outcome_unknown":{message:`Résultat en attente de confirmation`,description:``},"scheduledTasks.run.reason.run_abandoned":{message:`État d'exécution inconnu`},"actions.rename":{message:`Renommer`,description:`Élément de menu de renommage dans le menu d'opération de la conversation.`},"actions.renameTitle":{message:`Renommer la conversation`,description:`Titre de la boîte de dialogue pour renommer la conversation.`},"actions.renameEmpty":{message:`Veuillez entrer un nom`,description:`Message indiquant que le nom est vide lors du renommage.`},"actions.renameSuccess":{message:`Renommé`,description:`Message indiquant que la conversation a été renommée avec succès.`},"actions.renameFailed":{message:`Échec du renommage, veuillez réessayer plus tard`,description:`Message indiquant que le renommage de la conversation a échoué.`},"actions.deleteConfirm":{message:`Confirmer la suppression de cette conversation ? La suppression est irréversible.`,description:`Explication de confirmation avant la suppression de la conversation.`},"actions.deleteSuccess":{message:`Supprimé`,description:`Message indiquant que la conversation a été supprimée avec succès.`},"actions.deleteFailed":{message:`Échec de la suppression, veuillez réessayer plus tard`,description:`Message indiquant que la suppression de la conversation a échoué.`},"actions.tokenMissing":{message:`Le token n'existe pas, veuillez vous reconnecter`,description:`Message d'erreur indiquant qu'il manque des informations d'identification lors de l'opération de conversation.`},"actions.conversationMissing":{message:`La conversation n'existe pas`,description:`Message d'erreur indiquant que la conversation cible n'existe pas lors de l'opération de conversation.`},"scheduledTasks.form.execution":{message:`Emplacement d'exécution`,description:`Choisissez si la tâche s'exécute dans le cloud ou sur l'appareil local`},"scheduledTasks.execution.cloud":{message:`Cloud`,description:`Mode d'exécution dans le cloud`},"scheduledTasks.execution.local":{message:`Cet appareil`,description:`Mode d'exécution local`},"scheduledTasks.execution.localNamed":{message:`Cet appareil ({device})`,description:`Mode d'exécution local avec nom de l'appareil`},"scheduledTasks.form.executionCloudHint":{message:`Déclenché à temps par la plateforme, fonctionnera même si l'ordinateur est éteint.`,description:`Explication du mode cloud`},"scheduledTasks.form.executionLocalHint":{message:`Déclenché à temps par cet appareil, peut lire et écrire des fichiers locaux, exécuter des commandes locales. Ne s'exécutera pas si l'appareil est éteint ou si l'application est quittée, les occurrences manquées ne seront que notées, pas de reprise.`,description:`Explication du mode local`},"scheduledTasks.form.executionMobileUnsupported":{message:`L'exécution locale n'est pas prise en charge sur mobile`,description:`Raison pour laquelle l'exécution locale n'est pas prise en charge sur mobile`},"scheduledTasks.form.executionWebUnsupported":{message:`L'exécution locale nécessite l'application de bureau`,description:`Raison pour laquelle l'exécution locale n'est pas prise en charge sur le web`},"scheduledTasks.form.executionDeviceUnavailable":{message:`Impossible d'obtenir les informations de l'appareil local, veuillez redémarrer l'application et réessayer`,description:`Informations sur l'appareil de bureau non disponibles`},"scheduledTasks.form.localTools":{message:`Autorisation des outils locaux`,description:`Champ d'autorisation des outils locaux`},"scheduledTasks.form.localToolsPlaceholder":{message:`Sélectionnez les outils locaux autorisés pour cette tâche`,description:`Placeholder pour la sélection des outils locaux`},"scheduledTasks.form.localToolsHint":{message:`Aucune confirmation d'autorisation ne s'affichera lors de l'exécution sans surveillance, seuls les outils sélectionnés ici seront disponibles.`,description:`Explication de l'autorisation des outils locaux`},"scheduledTasks.run.skipped":{message:`Sauté`,description:`État d'exécution : l'appareil n'était pas en ligne à ce moment-là, n'a pas été exécuté`},"workingDir.choose":{message:`Choisir le répertoire de travail`,description:`Bouton au-dessus de la zone de saisie de chat sur le bureau : choisir le dossier de projet pour les opérations AI ; impossible d'envoyer un message avant d'avoir fait un choix`},"workingDir.switchHint":{message:`Cliquez pour changer le répertoire de travail`,description:`Astuce flottante pour le chemin lorsque le répertoire de travail est sélectionné`},"scheduledTasks.triggerLocalUnavailable":{message:`C'est une tâche locale, elle ne peut être exécutée manuellement que sur la version de bureau de l'appareil lié`,description:`La tâche locale ne peut pas être déclenchée manuellement sur un appareil non lié`},"scheduledTasks.triggerWrongDevice":{message:`Cette tâche est liée à un autre appareil`,description:`La tâche locale n'appartient pas à l'appareil actuel`},"scheduledTasks.triggerSignedOut":{message:`La planification locale n'est pas connectée, veuillez vous reconnecter et réessayer`,description:`Le daemon ne détient pas de jeton d'authentification`},"scheduledTasks.triggerAlreadyRunning":{message:`Cette tâche est en cours d'exécution`,description:`La tâche est déjà en cours d'exécution`},"actionConfirmation.confirm":{message:`Confirmer`,description:`Bouton de confirmation de la carte de confirmation avant exécution.`},"actionConfirmation.cancel":{message:`Annuler`,description:`Bouton d'annulation de la carte de confirmation avant exécution.`},"actionConfirmation.resolvedConfirmed":{message:`Confirmé, en cours d'exécution`,description:`Carte de confirmation avant exécution : l'utilisateur a confirmé, les actions suivantes sont en cours d'exécution.`},"actionConfirmation.resolvedCancelled":{message:`Annulé`,description:`Alerte repliée après que l'utilisateur a annulé sur la carte de confirmation avant exécution.`},"actionConfirmation.mediaLoading":{message:`Chargement de l'aperçu des médias…`,description:`Carte de confirmation avant exécution : état de chargement des médias`},"actionConfirmation.mediaUnavailable":{message:`Impossible de lire l'aperçu ici`,description:`Carte de confirmation avant exécution : titre de l'échec de lecture des médias`},"actionConfirmation.mediaUnavailableHint":{message:`Le lien du média peut avoir expiré ou le navigateur actuel ne prend pas en charge ce format. Veuillez ouvrir le fichier original pour vérification avant publication.`,description:`Carte de confirmation avant exécution : explication de l'échec de lecture des médias`},"actionConfirmation.openMedia":{message:`Ouvrir le fichier original`,description:`Carte de confirmation avant exécution : ouvrir le lien des médias`},"actionConfirmation.tiktok.reviewBadge":{message:`Confirmation avant publication`,description:`Étiquette d'état de la carte de confirmation de publication TikTok`},"actionConfirmation.tiktok.publishTitle":{message:`Publier sur TikTok`,description:`Titre de la carte de confirmation de publication TikTok`},"actionConfirmation.tiktok.publishSummary":{message:`Après confirmation, cette vidéo sera publiée sur votre compte TikTok.`,description:`Résumé de la carte de confirmation de publication TikTok`},"actionConfirmation.tiktok.publishButton":{message:`Publier`,description:`Bouton de soumission de la carte de confirmation de publication TikTok`},"actionConfirmation.tiktok.postingTo":{message:`Publier sur`,description:`Étiquette de compte dans la confirmation de publication TikTok.`},"actionConfirmation.tiktok.connected":{message:`Connecté`,description:`Confirmation de publication TikTok : état de connexion du compte`},"actionConfirmation.tiktok.unknownAccount":{message:`Informations sur le compte non disponibles`,description:`Confirmation de publication TikTok : texte d'espace réservé lorsque le nom du compte est manquant`},"actionConfirmation.tiktok.detailsUnavailable":{message:`Les paramètres de publication ne sont pas encore prêts`,description:`Confirmation de publication TikTok : titre manquant d'informations sur le créateur`},"actionConfirmation.tiktok.detailsUnavailableHint":{message:`Impossible de lire la portée visible prise en charge par ce compte. Veuillez annuler et laisser l'assistant récupérer à nouveau les paramètres de publication TikTok.`,description:`Confirmation de publication TikTok : explication du manque d'informations sur le créateur`},"actionConfirmation.tiktok.videoTooLongTitle":{message:`La durée de la vidéo ne respecte pas la limite du compte`,description:`Confirmation de publication TikTok : titre pour vidéo trop longue`},"actionConfirmation.tiktok.postDetails":{message:`Contenu à publier`,description:`Confirmation de publication TikTok : titre de la section des paramètres de contenu`},"actionConfirmation.tiktok.requiredNote":{message:`* Champ requis`,description:`Confirmation de publication TikTok : explication des champs obligatoires`},"actionConfirmation.tiktok.caption":{message:`Légende`,description:`Étiquette du champ de saisie de légende dans la confirmation de publication TikTok.`},"actionConfirmation.tiktok.captionPlaceholder":{message:`Rédigez une légende — les hashtags et les mentions sont pris en charge`,description:`TikTok publish confirmation: caption placeholder`},"actionConfirmation.tiktok.privacy":{message:`Qui peut voir`,description:`Étiquette du menu déroulant de visibilité dans la confirmation de publication TikTok.`},"actionConfirmation.tiktok.privacyPlaceholder":{message:`Veuillez sélectionner…`,description:`Espace réservé pour la visibilité dans la confirmation de publication TikTok, ne peut pas avoir de valeur par défaut selon les exigences de TikTok.`},"actionConfirmation.tiktok.noPrivacyOptions":{message:`Aucune portée visible disponible, publication impossible pour le moment`,description:`Confirmation de publication TikTok : portée visible vide`},"actionConfirmation.tiktok.privacyPublic":{message:`Tout le monde`,description:`Visibilité TikTok : publique.`},"actionConfirmation.tiktok.privacyFriends":{message:`Amis mutuels`,description:`Visibilité TikTok : visible par les amis qui se suivent mutuellement.`},"actionConfirmation.tiktok.privacyFollowers":{message:`Mes abonnés`,description:`Visibilité TikTok : visible par les abonnés.`},"actionConfirmation.tiktok.privacySelf":{message:`Uniquement moi`,description:`Visibilité TikTok : visible uniquement par soi-même.`},"actionConfirmation.tiktok.interactions":{message:`Autoriser les interactions`,description:`Étiquette de groupe pour le commutateur d'interaction dans la confirmation de publication TikTok.`},"actionConfirmation.tiktok.interactionsHint":{message:`Seules les méthodes d'interaction actuellement autorisées pour ce compte peuvent être activées ; par défaut, toutes sont désactivées.`,description:`Confirmation de publication TikTok : explication de l'activation des interactions`},"actionConfirmation.tiktok.disabledByAccount":{message:`Ce compte est désactivé : {list}`,description:`Confirmation de publication TikTok : capacités d'interaction désactivées du compte`},"actionConfirmation.tiktok.allowComment":{message:`Commentaires`,description:`Commutateur d'interaction TikTok : autoriser les commentaires.`},"actionConfirmation.tiktok.allowDuet":{message:`Duo`,description:`Commutateur d'interaction TikTok : autoriser les duos.`},"actionConfirmation.tiktok.allowStitch":{message:`Assemblage`,description:`Commutateur d'interaction TikTok : autoriser les stitches.`},"actionConfirmation.tiktok.disclosure":{message:`Divulgation de contenu`,description:`Confirmation de publication TikTok : titre de la section de contenu commercial`},"actionConfirmation.tiktok.commercial":{message:`Ceci est un contenu commercial`,description:`Confirmation de publication TikTok : commutateur de divulgation de contenu commercial.`},"actionConfirmation.tiktok.commercialHint":{message:`Si le contenu promeut une marque, un produit ou un service, veuillez divulguer en conséquence.`,description:`Confirmation de publication TikTok : explication de la divulgation de contenu commercial`},"actionConfirmation.tiktok.yourBrand":{message:`votre marque`,description:`Contenu commercial TikTok : promotion de votre propre entreprise`},"actionConfirmation.tiktok.yourBrandHint":{message:`Faites la promotion de vous-même ou de votre entreprise`,description:`Contenu commercial TikTok : explication sur la promotion de son propre entreprise`},"actionConfirmation.tiktok.brandedContent":{message:`Contenu de marque`,description:`Contenu commercial TikTok : collaboration payante.`},"actionConfirmation.tiktok.brandedContentHint":{message:`Promotion d'un tiers en raison d'un paiement, d'un cadeau ou d'autres avantages`,description:`Contenu commercial TikTok : explication de la collaboration payante`},"actionConfirmation.tiktok.labelPromotional":{message:`La vidéo sera marquée comme « contenu promotionnel »`,description:`Contenu commercial TikTok : alerte après avoir sélectionné votre marque.`},"actionConfirmation.tiktok.labelPaidPartnership":{message:`La vidéo sera marquée comme « partenariat rémunéré »`,description:`Contenu commercial TikTok : alerte après avoir sélectionné le contenu de marque.`},"actionConfirmation.tiktok.brandedNotPrivate":{message:`La portée du contenu de marque ne peut pas être définie sur « uniquement moi »`,description:`Confirmation de publication TikTok : alerte sur l'incompatibilité entre le contenu de marque et la visibilité uniquement pour soi.`},"actionConfirmation.tiktok.tooLong":{message:`La vidéo dépasse la limite de durée de ce compte ({max} secondes)`,description:`Confirmation de publication TikTok : erreur de durée excessive de la vidéo.`},"actionConfirmation.tiktok.beforePublishing":{message:`Veuillez confirmer avant la publication`,description:`Confirmation de publication TikTok : titre de l'explication de la politique`},"actionConfirmation.tiktok.policyIntro":{message:`En cliquant sur « Publier », vous confirmez que vous avez les droits d'utilisation du contenu et de la musique, et que vous acceptez les conditions d'utilisation de la musique de TikTok.`,description:`Confirmation de publication TikTok : explication de la politique de contenu général`},"actionConfirmation.tiktok.policyIntroBranded":{message:`En cliquant sur « Publier », vous confirmez que les informations divulguées sont exactes et que vous acceptez la politique de contenu de marque et les conditions d'utilisation de la musique de TikTok.`,description:`Confirmation de publication TikTok : explication de la politique de contenu de marque`},"actionConfirmation.tiktok.musicUsageLink":{message:`Voir la « Confirmation d'utilisation de la musique »`,description:`Confirmation de publication TikTok : lien vers la confirmation d'utilisation de la musique`},"actionConfirmation.tiktok.brandedPolicyLink":{message:`Voir la « Politique de contenu de marque »`,description:`Confirmation de publication TikTok : lien vers la politique de contenu de marque`},"actionConfirmation.tiktok.fixDetailsFirst":{message:`Les informations de publication sont incomplètes, veuillez annuler puis régénérer la carte de confirmation`,description:`Confirmation de publication TikTok : raison de la désactivation du bouton en cas de détails manquants`},"actionConfirmation.tiktok.useShorterVideo":{message:`Veuillez utiliser une vidéo conforme à la limite de durée de ce compte`,description:`Confirmation de publication TikTok : raison pour laquelle le bouton est désactivé lorsque la vidéo est trop longue`},"actionConfirmation.tiktok.selectPrivacyFirst":{message:`Veuillez sélectionner qui peut voir cette vidéo`,description:`Confirmation de publication TikTok : raison de la désactivation du bouton lorsque la portée visible n'est pas sélectionnée`},"actionConfirmation.tiktok.selectDisclosureType":{message:`Veuillez sélectionner le type de contenu commercial`,description:`Confirmation de publication TikTok : raison de la désactivation du bouton lorsque le type de divulgation commerciale n'est pas sélectionné`},"scheduledTemplates.title":{message:`Modèle d'automatisation`,description:`Texte du centre de modèles de tâches planifiées`},"scheduledTemplates.createFromTemplate":{message:`Créer à partir d'un modèle`,description:`Copie du centre de modèles de tâches planifiées`},"scheduledTemplates.createCustom":{message:`Créer personnalisé`,description:`Copie du centre de modèles de tâches planifiées`},"scheduledTemplates.emptyTitle":{message:`Laissez l'IA accomplir votre travail à temps`,description:`Copie du centre de modèles de tâches planifiées`},"scheduledTemplates.emptyDescription":{message:`Sélectionnez un modèle officiel et connectez le compte requis. La tâche peut être exécutée immédiatement sur la carte après sa création.`,description:`Guide pour la création et l'activation d'un modèle de tâche planifiée`},"scheduledTemplates.browse":{message:`Parcourir les modèles`,description:`Copie du centre de modèles de tâches planifiées`},"scheduledTemplates.step.choose":{message:`Choisir un modèle`,description:`Copie du centre de modèles de tâches planifiées`},"scheduledTemplates.step.configure":{message:`Configuration simple`,description:`Copie du centre de modèles de tâches planifiées`},"scheduledTemplates.step.connect":{message:`Connecter un compte`,description:`Copie du centre de modèles de tâches planifiées`},"scheduledTemplates.search":{message:`Rechercher un modèle`,description:`Copie du centre de modèles de tâches planifiées`},"scheduledTemplates.featured":{message:`Recommandé`,description:`Copie du centre de modèles de tâches planifiées`},"scheduledTemplates.ready":{message:`Prêt à l'emploi`,description:`Copie du centre de modèles de tâches planifiées`},"scheduledTemplates.missingCount":{message:`Besoin de connecter {count} éléments`,description:`Copie du centre de modèles de tâches planifiées`},"scheduledTemplates.schedule":{message:`Heure d'exécution`,description:`Copie du centre de modèles de tâches planifiées`},"scheduledTemplates.connectionTitle":{message:`Préparer les connexions nécessaires`,description:`Copie du centre de modèles de tâches planifiées`},"scheduledTemplates.noConnections":{message:`Aucun autre compte à connecter`,description:`Copie du centre de modèles de tâches planifiées`},"scheduledTemplates.connected":{message:`Connecté`,description:`Copie du centre de modèles de tâches planifiées`},"scheduledTemplates.notConnected":{message:`Pas encore connecté`,description:`Copie du centre de modèles de tâches planifiées`},"scheduledTemplates.chooseAccount":{message:`Choisir un compte`,description:`Copie du centre de modèles de tâches planifiées`},"scheduledTemplates.connect":{message:`Se connecter`,description:`Copie du centre de modèles de tâches planifiées`},"scheduledTemplates.create":{message:`Créer une tâche`,description:`Guide pour la création et l'activation d'un modèle de tâche planifiée`},"scheduledTemplates.createFailed":{message:`Échec de la création de la tâche, veuillez vérifier la configuration ou la connexion`,description:`Guide pour la création et l'activation d'un modèle de tâche planifiée`},"scheduledTemplates.createdDisabled":{message:`La tâche a été créée et reste désactivée. Veuillez d'abord l'exécuter immédiatement sur la carte, puis l'activer après le succès.`,description:`Guide pour la création et l'activation d'un modèle de tâche planifiée`},"scheduledTemplates.enableFailed":{message:`Impossible de l'activer pour le moment. Veuillez d'abord exécuter la tâche immédiatement et confirmer le succès ; certains modèles nécessitent également la génération d'un brouillon spécifique.`,description:`Guide pour la création et l'activation d'un modèle de tâche planifiée`},"scheduledTemplates.loadError":{message:`Échec du chargement du modèle, veuillez réessayer plus tard`,description:`Copie du centre de modèles de tâches planifiées`},"scheduledTemplates.category.all":{message:`Tout`,description:`Copie du centre de modèles de tâches planifiées`},"scheduledTemplates.category.marketing":{message:`Croissance marketing`,description:`Copie du centre de modèles de tâches planifiées`},"scheduledTemplates.category.content":{message:`Création de contenu`,description:`Copie du centre de modèles de tâches planifiées`},"scheduledTemplates.category.productivity":{message:`Efficacité au travail`,description:`Copie du centre de modèles de tâches planifiées`},"scheduledTemplates.category.research":{message:`Renseignements et recherche`,description:`Copie du centre de modèles de tâches planifiées`},"scheduledTemplates.category.development":{message:`Développement et opérations`,description:`Copie du centre de modèles de tâches planifiées`},"scheduledTemplates.category.personal":{message:`Assistant personnel`,description:`Copie du centre de modèles de tâches planifiées`},"scheduledTemplates.previous":{message:`Précédent`,description:`Navigation dans l'assistant de modèle programmé et conseils de connexion`},"scheduledTemplates.next":{message:`Suivant`,description:`Navigation dans l'assistant de modèle programmé et conseils de connexion`},"scheduledTemplates.connectionDescription":{message:`Nous n'utiliserons que les connexions nécessaires à ce modèle ; les comptes connectés seront automatiquement réutilisés.`,description:`Navigation dans l'assistant de modèle programmé et conseils de connexion`},"scheduledTemplates.noConnectionsHint":{message:`Ce modèle utilise uniquement des capacités intégrées, vous pouvez créer la tâche directement.`,description:`Guide pour la création et l'activation d'un modèle de tâche planifiée`},"scheduledTemplates.connectionMissingHint":{message:`Vous pouvez continuer après avoir terminé la connexion.`,description:`Navigation dans l'assistant de modèle programmé et conseils de connexion`},"scheduledTemplates.connectionBoundHint":{message:`Cette tâche utilisera le compte que vous avez sélectionné.`,description:`Navigation dans l'assistant de modèle programmé et conseils de connexion`},"scheduledTemplates.connectionMcpHint":{message:`Exécutez via une connexion MCP autorisée, sans besoin de lier un compte supplémentaire.`,description:`Navigation dans l'assistant de modèle programmé et conseils de connexion`},"actionConfirmation.tiktok.music":{message:`La publication signifie que vous acceptez la « confirmation d'utilisation de la musique » de TikTok`,description:`Confirmation de publication TikTok : déclaration sur l'utilisation de la musique.`},"actionConfirmation.tiktok.musicBranded":{message:`La publication signifie que vous acceptez la « politique de contenu de marque » et la « confirmation d'utilisation de la musique » de TikTok`,description:`Confirmation de publication TikTok : déclaration après avoir coché le contenu de marque.`},"model.claudeOpus47":{message:`claude-opus-4.7`,description:`Nom du modèle du service, c'est-à-dire Claude Opus 4.7`},"model.claudeOpus47Description":{message:`Modèle le plus avancé actuellement`,description:`Description du modèle Claude Opus 4.7`}};export{e as default};
@@ -0,0 +1 @@
1
+ import{Yi as e}from"./index-Bbaw1dFE.js";var t=e(`check`,[[`path`,{d:`M20 6 9 17l-5-5`,key:`1gmf2c`}]]);export{t};
@@ -0,0 +1 @@
1
+ import{Yi as e}from"./index-Bbaw1dFE.js";var t=e(`chevron-down`,[[`path`,{d:`m6 9 6 6 6-6`,key:`qrunsl`}]]);export{t};
@@ -0,0 +1 @@
1
+ import{Yi as e}from"./index-Bbaw1dFE.js";var t=e(`chevron-right`,[[`path`,{d:`m9 18 6-6-6-6`,key:`mthhwq`}]]);export{t};
@@ -0,0 +1 @@
1
+ import{Yi as e}from"./index-Bbaw1dFE.js";var t=e(`circle-check`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`m9 12 2 2 4-4`,key:`dzmm74`}]]);export{t};
@@ -1 +1 @@
1
- import{Ei as e}from"./index-DKnFv8oI.js";var t=e(`circle-question-mark`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3`,key:`1u773s`}],[`path`,{d:`M12 17h.01`,key:`p32p05`}]]);export{t};
1
+ import{Yi as e}from"./index-Bbaw1dFE.js";var t=e(`circle-question-mark`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3`,key:`1u773s`}],[`path`,{d:`M12 17h.01`,key:`p32p05`}]]);export{t};
@@ -1 +1 @@
1
- import{Ei as e}from"./index-DKnFv8oI.js";var t=e(`clipboard-list`,[[`rect`,{width:`8`,height:`4`,x:`8`,y:`2`,rx:`1`,ry:`1`,key:`tgr4d6`}],[`path`,{d:`M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2`,key:`116196`}],[`path`,{d:`M12 11h4`,key:`1jrz19`}],[`path`,{d:`M12 16h4`,key:`n85exb`}],[`path`,{d:`M8 11h.01`,key:`1dfujw`}],[`path`,{d:`M8 16h.01`,key:`18s6g9`}]]);export{t};
1
+ import{Yi as e}from"./index-Bbaw1dFE.js";var t=e(`clipboard-list`,[[`rect`,{width:`8`,height:`4`,x:`8`,y:`2`,rx:`1`,ry:`1`,key:`tgr4d6`}],[`path`,{d:`M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2`,key:`116196`}],[`path`,{d:`M12 11h4`,key:`1jrz19`}],[`path`,{d:`M12 16h4`,key:`n85exb`}],[`path`,{d:`M8 11h.01`,key:`1dfujw`}],[`path`,{d:`M8 16h.01`,key:`18s6g9`}]]);export{t};
@@ -0,0 +1 @@
1
+ import{Yi as e}from"./index-Bbaw1dFE.js";var t=e(`clock`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M12 6v6l4 2`,key:`mmk7yg`}]]);export{t};
@@ -0,0 +1 @@
1
+ import{Yi as e}from"./index-Bbaw1dFE.js";var t=e(`code`,[[`path`,{d:`m16 18 6-6-6-6`,key:`eg8j8`}],[`path`,{d:`m8 6-6 6 6 6`,key:`ppft3o`}]]);export{t};
@@ -1,2 +1,2 @@
1
- import{h as e}from"./models-D6J60Ang.js";import{A as t,B as n,C as r,D as i,E as a,F as o,H as s,I as c,L as l,M as u,N as d,O as f,P as p,R as m,S as h,T as g,U as _,V as v,W as y,_ as b,a as x,b as S,c as C,d as w,f as ee,g as te,h as ne,i as re,j as ie,k as ae,l as oe,m as se,n as ce,o as T,p as E,pa as D,r as O,s as k,t as A,u as j,v as M,w as N,x as P,y as F,z as I}from"./constants-CX4j41GC.js";import{Nn as L,Si as R,yi as z,zr as B}from"./index-DKnFv8oI.js";import{a as V,i as H,n as U,o as W,r as le}from"./codingBridgeNotify-Djdt8v1B.js";var ue=()=>typeof crypto<`u`&&typeof crypto.randomUUID==`function`?crypto.randomUUID().replace(/-/g,``):`${Date.now().toString(16)}${Math.random().toString(16).slice(2)}`,de=()=>{try{return typeof localStorage<`u`&&localStorage.getItem(`cbDebug`)===`1`}catch{return!1}},G=(e,t)=>{if(!de())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})},fe=class{ws;token;handlers;reconnectDelay=y;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=`${D}?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=y,this.handlers.onOpen?.()},t.onmessage=e=>this.onMessage(e),t.onclose=()=>{this.handlers.onClose?.(),this.closedByUser||this.scheduleReconnect()},t.onerror=()=>{t.close()}}onMessage(e){let t;try{t=JSON.parse(e.data)}catch{return}let r=t?.payload??{};switch(G(`recv`,t),t?.type){case s:this.handlers.onEvent?.(r,t?.from_node);break;case I:this.handlers.onNodesSnapshot?.(r.nodes??[]);break;case v:this.handlers.onNodeStatus?.(r.node_id,r.status);break;case n:this.handlers.onNodeRenamed?.(r.node_id,r.name);break;case b:this.handlers.onRelayError?.(r.code??`error`,r.message??``);break;default:break}}scheduleReconnect(){if(this.closedByUser||this.reconnectTimer)return;let e=this.reconnectDelay;this.reconnectTimer=setTimeout(()=>{this.reconnectTimer=void 0,this.open()},e),this.reconnectDelay=Math.min(this.reconnectDelay*2,_)}sendEnvelope(e,t){if(!this.isOpen)return;let n={v:2,id:ue(),ts:Date.now(),type:e,...t};G(`send`,n),this.ws?.send(JSON.stringify(n))}sendToNode(e,t){this.sendEnvelope(te,{node_id:e,payload:t})}listNodes(){this.sendEnvelope(se,{})}resume(e){this.sendEnvelope(ne,{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}}},K,q=()=>typeof crypto<`u`&&typeof crypto.randomUUID==`function`?crypto.randomUUID().replace(/-/g,``):`${Date.now().toString(16)}${Math.random().toString(16).slice(2)}`,J=(e,t,n)=>({id:q(),session_id:e,kind:t,ts:Date.now(),...n}),Y=e=>{try{let t=JSON.parse(e);if(t&&typeof t==`object`)return t}catch{}return{answers:{}}},pe=e=>{let t=Y(e).answers??{};return Object.entries(t).map(([e,t])=>`${e} → ${Array.isArray(t)?t.join(`, `):t}`).join(`
2
- `)},me=(e,t)=>{U({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)})},he=(n,s,_,v,y)=>{let b=v?.event,x=v?.session_id,C=v?.trace_id,w=v?.seq;if(typeof w==`number`&&x){let e=_.lastSeq[x];if(e!==void 0&&w<=e){if(_.seqChecked[x])return;n(`resetLastSeq`,x),s(`resyncSession`,x)}n(`markSeqChecked`,x),n(`setLastSeq`,{session_id:x,seq:w})}switch(x&&C&&n(`updateSession`,{session_id:x,trace_id:C}),b){case u:n(`upsertSession`,{session_id:x,node_id:y,status:`running`,cwd:v.cwd,model:v.model,resolved_model:v.resolved_model,...v.effort===void 0?{}:{effort:v.effort},...v.permission_mode===void 0?{}:{permission_mode:v.permission_mode},trace_id:C});break;case f:{let e=v.sdk_session_id;x&&e&&e!==x&&n(`renameSession`,{from:x,to:e});break}case o:{let e=v.id;e&&_.events[x]?.find(t=>t.kind===`text`&&t.stream_id===e)?n(`appendDelta`,{session_id:x,stream_id:e,text:v.text??``}):n(`appendEvent`,J(x,`text`,{text:v.text??``,stream_id:e,streaming:!0,trace_id:C}));break}case p:{let e=v.id;e&&_.events[x]?.find(t=>t.kind===`text`&&t.stream_id===e)?n(`finalizeStream`,{session_id:x,stream_id:e,text:v.text}):n(`appendEvent`,J(x,`text`,{text:v.text,trace_id:C}));break}case c:n(`appendEvent`,J(x,`thinking`,{text:v.text,trace_id:C}));break;case m:n(`appendEvent`,J(x,`tool_use`,{tool:v.tool,tool_use_id:v.tool_use_id,input:v.input,trace_id:C}));break;case l:n(`appendEvent`,J(x,`tool_result`,{tool_use_id:v.tool_use_id,content:v.content,is_error:v.is_error,trace_id:C}));break;case r:n(`addPermission`,{request_id:v.request_id,session_id:x,node_id:y,tool:v.tool,input:v.input,title:v.title,display_name:v.display_name,description:v.description}),me(s,{node_id:y,session_id:x,request_id:v.request_id,tool:v.display_name||v.title||v.tool});break;case h:for(let e of v.requests??[])n(`addPermission`,{request_id:e.request_id,session_id:e.session_id,node_id:y,tool:e.tool,input:e.input,title:e.title,display_name:e.display_name,description:e.description});break;case N:n(`removePermission`,v.request_id);break;case t:n(`finalizeAllStreams`,{session_id:x}),n(`appendEvent`,J(x,`result`,{subtype:v.subtype,is_error:v.is_error,text:v.result,cost_usd:v.cost_usd,cut_uuid:v.cut_uuid,sdk_session_id:v.sdk_session_id,trace_id:C})),n(`updateSession`,{session_id:x,status:`idle`,cost_usd:v.cost_usd});break;case ae:n(`appendEvent`,J(x,`notice`,{text:v.text,subtype:v.code,command:v.command,level:v.level}));break;case i:n(`finalizeAllStreams`,{session_id:x}),n(`appendEvent`,J(x,`error`,{text:v.message,trace_id:C})),n(`updateSession`,{session_id:x,status:`error`}),n(`updateStatus`,{key:`getHistoryDetail`,value:e.Success});break;case a:n(`finalizeAllStreams`,{session_id:x}),n(`updateSession`,{session_id:x,status:`closed`}),n(`clearSeqCheckedFor`,x);break;case ie:n(`rewindToCut`,{session_id:x,cut_uuid:v.cut_uuid}),v.prompt&&n(`appendEvent`,J(x,`prompt`,{text:v.prompt,trace_id:C})),n(`updateSession`,{session_id:x,status:`running`});break;case d:n(`resetLastSeq`,x),n(`clearSeqCheckedFor`,x),s(`resyncSession`,x);break;case g:for(let e of v.sessions??[]){let t=e.model;n(`upsertSession`,{session_id:e.session_id,node_id:y,status:e.status??`running`,started:!0,cwd:e.cwd,model:t,resolved_model:e.resolved_model,...e.effort===void 0?{}:{effort:e.effort},...e.permission_mode===void 0?{}:{permission_mode:e.permission_mode}})}break;case P:if(y){n(`setHistory`,{node_id:y,sessions:v.sessions??[]}),n(`updateStatus`,{key:`getHistory`,value:e.Success});let t=_.historyRef;t&&t.node_id===y&&!_.currentSessionId&&s(`reattachSession`,t)}break;case S:ge(n,_,v,y),n(`updateStatus`,{key:`getHistoryDetail`,value:e.Success});break;case F:n(`setDirectory`,{path:v.path,parent:v.parent??null,sep:v.sep??`/`,entries:v.entries??[],truncated:v.truncated,error:v.error});break;case M:y&&n(`setCapabilities`,{node_id:y,capabilities:{providers:v.providers??[]}});break;default:break}},ge=(e,t,n,r)=>{let i=n?.session_id,a=X(n?.provider);if(!i||!r)return;let o=a===`claude`||a===`codex`||a===`copilot`,s=t.sessions[i],c=!!s&&(s.started===!0||s.status===`running`||s.status===`starting`),l=t.lastComposer?.[r]??{},u=(n.resolved_model===void 0?void 0:n.model)??s?.model;e(`upsertSession`,{session_id:i,node_id:r,status:c?s.status:`idle`,cwd:n.cwd??s?.cwd??l.cwd,model:u,resolved_model:n.resolved_model??s?.resolved_model,effort:n.effort??s?.effort??l.effort,permission_mode:n.permission_mode??s?.permission_mode??l.permissionMode,provider:a,started:!!c,readonly:!o&&!c});let d=t.events[i]?.length??0,f=(n.events??[]).length,p=s?.status===`running`||s?.status===`starting`;c&&d>0&&(p||d>=f)||e(`setEvents`,{session_id:i,events:(n.events??[]).map((e,t)=>({id:q(),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})},X=e=>e===`codex`||e===`copilot`?e:`claude`,Z=0,Q=new Map,_e=({commit:e})=>{Q.clear(),e(`resetAll`)},ve=async()=>{},ye=async()=>{},be=(e,t,n)=>{e(`setNodeName`,{node_id:t,name:n})},$={namespaced:!0,state:B,mutations:{resetAll:e=>{Object.assign(e,B())},updateStatus:(e,t)=>{e.status[t.key]=t.value},setConnection:(e,t)=>{e.connection=t},setNodes:(e,t)=>{e.nodes=t},mergeNodeSnapshot:(e,t)=>{let n=new Set(t.map(e=>e.node_id)),r=new Map(t.map(e=>[e.node_id,e.name]));for(let t of e.nodes){t.status=n.has(t.node_id)?`online`:`offline`;let e=r.get(t.node_id);e&&(t.name=e)}for(let n of t)e.nodes.some(e=>e.node_id===n.node_id)||e.nodes.push({...n,status:`online`})},setNodeStatus:(e,t)=>{let n=e.nodes.find(e=>e.node_id===t.node_id);n&&(n.status=t.status)},setNodeName:(e,t)=>{let n=e.nodes.find(e=>e.node_id===t.node_id);n&&(n.name=t.name)},setCurrentNode:(e,t)=>{e.currentNodeId=t},setCurrentSession:(e,t)=>{e.currentSessionId=t},upsertSession:(e,t)=>{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],delete e.seqChecked[n],delete e.seqChecked[r];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)},resetLastSeq:(e,t)=>{delete e.lastSeq[t]},markSeqChecked:(e,t)=>{e.seqChecked[t]=!0},clearSeqChecked:e=>{e.seqChecked={}},clearSeqCheckedFor:(e,t)=>{delete e.seqChecked[t]},appendDelta:(e,t)=>{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],delete e.seqChecked[n.session_id],e.currentSessionId===n.session_id&&(e.currentSessionId=void 0))}},actions:{resetAll:_e,getApplications:ve,setApplication:ye,getNodes:async({commit:t,rootState:n})=>{let r=n.token?.access;if(!r)return[];t(`updateStatus`,{key:`getNodes`,value:e.Request});let i=Z;try{let{data:n}=await L.getNodes({token:r}),a=(n.nodes??[]).map(e=>{let t=Q.get(e.node_id);return t&&t.at>i?{...e,name:t.name}:e});return t(`setNodes`,a),t(`updateStatus`,{key:`getNodes`,value:e.Success}),a}catch(n){throw t(`updateStatus`,{key:`getNodes`,value:e.Error}),n}},claimPair:async({commit:t,dispatch:n,rootState:r},i)=>{let a=r.token?.access;if(!a)throw Error(`not authenticated`);t(`updateStatus`,{key:`claimPair`,value:e.Request});try{let{data:r}=await L.claimPair(i.trim(),{token:a});return t(`updateStatus`,{key:`claimPair`,value:e.Success}),await n(`getNodes`),r.node_name}catch(n){throw t(`updateStatus`,{key:`claimPair`,value:e.Error}),n}},deleteNode:async({commit:t,dispatch:n,state:r,rootState:i},a)=>{let o=i.token?.access;if(!o)throw Error(`not authenticated`);t(`updateStatus`,{key:`deleteNode`,value:e.Request});try{await L.deleteNode(a,{token:o}),t(`removeNodeData`,a),r.currentNodeId===a&&(t(`setCurrentNode`,void 0),t(`setCurrentSession`,void 0)),t(`updateStatus`,{key:`deleteNode`,value:e.Success}),await n(`getNodes`)}catch(n){throw t(`updateStatus`,{key:`deleteNode`,value:e.Error}),n}},renameNode:async({commit:t,rootState:n},r)=>{let i=n.token?.access;if(!i)throw Error(`not authenticated`);let a=r.name.trim();if(!a)throw Error(`name must not be empty`);t(`updateStatus`,{key:`renameNode`,value:e.Request});try{let{data:n}=await L.renameNode(r.nodeId,a,{token:i}),o=n?.name??a;Q.size>=50&&Q.clear(),Q.set(r.nodeId,{name:o,at:++Z}),t(`setNodeName`,{node_id:r.nodeId,name:o}),t(`updateStatus`,{key:`renameNode`,value:e.Success})}catch(n){throw t(`updateStatus`,{key:`renameNode`,value:e.Error}),n}},connect:({commit:e,dispatch:t,state:n,rootState:r})=>{let i=r.token?.access;i&&(K?.isOpen||(K?.close(),e(`setConnection`,`connecting`),K=new fe(i,{onOpen:()=>{e(`setConnection`,`connected`),e(`clearSeqChecked`);let r={...n.lastSeq};Object.keys(r).length&&K?.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)=>he(e,t,n,r,i),onNodesSnapshot:n=>{e(`mergeNodeSnapshot`,n),t(`getNodes`)},onNodeStatus:(r,i)=>{e(`setNodeStatus`,{node_id:r,status:i}),i===`online`&&r===n.currentNodeId&&(t(`getHistory`,r),t(`getCapabilities`,r),t(`requestSessions`,r),t(`requestPendingPermissions`,r))},onNodeRenamed:(t,n)=>{be(e,t,n)},onRelayError:(e,t)=>console.warn(`[codingBridge] relay error`,e,t)}),K.connect()))},disconnect:({commit:e})=>{K?.close(),K=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||!K||K.sendToNode(n,{action:C})},requestPendingPermissions:({state:e},t)=>{let n=t??e.currentNodeId;!n||!K||K.sendToNode(n,{action:T})},enableNotifications:async({dispatch:e,rootState:t})=>{let n=t.token?.access;if(!n)return`unsupported`;if(R()){let t=await le(t=>{t?.node_id&&(e(`selectNode`,t.node_id),e(`requestPendingPermissions`,t.node_id))});return t?(await L.savePushSubscription({kind:z()?`apns`:`fcm`,token:t,ua:navigator.userAgent},{token:n}),`enabled`):`denied`}let r=await H();if(r===`unsupported`)return`unsupported`;if(r!==`granted`)return`denied`;try{let{data:e}=await L.getPushConfig();if(e.web_push_enabled&&e.vapid_public_key){let t=await V(e.vapid_public_key);t&&await L.savePushSubscription({kind:`webpush`,subscription:t,ua:navigator.userAgent},{token:n})}}catch(e){console.warn(`[codingBridge] web push setup skipped`,e)}return`enabled`},disableNotifications:async({rootState:e})=>{let t=e.token?.access;if(R()||!t)return;let n=await W();if(n)try{await L.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||!K||!i&&!a&&!o)return;let s=q(),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=q(),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`,J(c,`prompt`,{text:i,images:a,attachments:o,trace_id:s})),e(`updateSession`,{session_id:c,started:!0}),K.sendToNode(r,{action:E,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`,J(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}}),K.sendToNode(r,{action:ee,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||!K||!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=q();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`,J(i,`prompt`,{text:a,images:u,attachments:d,trace_id:f})),K.sendToNode(r,{action:j,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||!K||K.sendToNode(n,{action:w,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&&K&&K.sendToNode(i,{action:oe,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&&(K?.sendToNode(r.node_id,{action:k,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&&(K?.sendToNode(r.node_id,{action:k,request_id:n.request_id,decision:`allow`,answer:Y(n.output),answer_text:pe(n.output)}),e(`removePermission`,n.request_id))},getHistory:({commit:t,state:n},r)=>{let i=r??n.currentNodeId;!i||!K||(t(`updateStatus`,{key:`getHistory`,value:e.Request}),K.sendToNode(i,{action:re,limit:200}))},getHistoryDetail:({commit:t},n)=>{!n?.node_id||!n?.session_id||!K||(t(`updateStatus`,{key:`getHistoryDetail`,value:e.Request}),K.sendToNode(n.node_id,{action:O,provider:n.provider,session_id:n.session_id}),setTimeout(()=>t(`updateStatus`,{key:`getHistoryDetail`,value:e.Success}),12e3))},markHistoryRead:(e,t)=>{!t?.node_id||!t?.session_id||!t?.provider||!K||K.sendToNode(t.node_id,{action:x,provider:t.provider,session_id:t.session_id,updated_at:t.updated_at,limit:200})},reattachSession:({state:e,commit:t,dispatch:n},r)=>{if(!r?.node_id||!r?.session_id)return;t(`setCurrentNode`,r.node_id),t(`setCurrentSession`,r.session_id),n(`getHistoryDetail`,r),n(`requestSessions`,r.node_id),n(`requestPendingPermissions`,r.node_id);let i=e.lastSeq[r.session_id];i!==void 0&&K?.resume({[r.session_id]:i})},resyncSession:({state:e,dispatch:t},n)=>{let r=e.sessions[n];r?.node_id&&t(`getHistoryDetail`,{node_id:r.node_id,session_id:n,provider:r.provider??`claude`})},browseDir:({commit:e,state:t},n)=>{let r=t.currentNodeId;!r||!K||(e(`setDirectoryLoading`,!0),K.sendToNode(r,{action:ce,path:n||void 0}))},clearDirectory:({commit:e})=>{e(`setDirectory`,void 0)},getCapabilities:({state:e},t)=>{let n=t??e.currentNodeId;!n||!K||K.sendToNode(n,{action:A})}}};export{$ as codingBridge,$ as default};
1
+ import{h as e}from"./models-PmOthmjQ.js";import{A as t,B as n,C as r,D as i,E as a,F as o,H as s,I as c,L as l,M as u,N as d,O as f,P as p,R as m,S as h,T as g,U as _,V as v,W as y,_ as b,a as x,b as S,c as C,d as w,f as ee,g as te,h as ne,i as re,j as ie,k as ae,l as oe,m as se,n as ce,o as T,p as E,pa as D,r as O,s as k,t as A,u as j,v as M,w as N,x as P,y as F,z as I}from"./constants-BAu6gjb8.js";import{Gi as L,Hi as R,Nn as z,ci as B}from"./index-Bbaw1dFE.js";import{a as V,i as H,n as U,o as W,r as le}from"./codingBridgeNotify-B4DkodFC.js";var ue=()=>typeof crypto<`u`&&typeof crypto.randomUUID==`function`?crypto.randomUUID().replace(/-/g,``):`${Date.now().toString(16)}${Math.random().toString(16).slice(2)}`,de=()=>{try{return typeof localStorage<`u`&&localStorage.getItem(`cbDebug`)===`1`}catch{return!1}},G=(e,t)=>{if(!de())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})},fe=class{ws;token;handlers;reconnectDelay=y;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=`${D}?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=y,this.handlers.onOpen?.()},t.onmessage=e=>this.onMessage(e),t.onclose=()=>{this.handlers.onClose?.(),this.closedByUser||this.scheduleReconnect()},t.onerror=()=>{t.close()}}onMessage(e){let t;try{t=JSON.parse(e.data)}catch{return}let r=t?.payload??{};switch(G(`recv`,t),t?.type){case s:this.handlers.onEvent?.(r,t?.from_node);break;case I:this.handlers.onNodesSnapshot?.(r.nodes??[]);break;case v:this.handlers.onNodeStatus?.(r.node_id,r.status);break;case n:this.handlers.onNodeRenamed?.(r.node_id,r.name);break;case b:this.handlers.onRelayError?.(r.code??`error`,r.message??``);break;default:break}}scheduleReconnect(){if(this.closedByUser||this.reconnectTimer)return;let e=this.reconnectDelay;this.reconnectTimer=setTimeout(()=>{this.reconnectTimer=void 0,this.open()},e),this.reconnectDelay=Math.min(this.reconnectDelay*2,_)}sendEnvelope(e,t){if(!this.isOpen)return;let n={v:2,id:ue(),ts:Date.now(),type:e,...t};G(`send`,n),this.ws?.send(JSON.stringify(n))}sendToNode(e,t){this.sendEnvelope(te,{node_id:e,payload:t})}listNodes(){this.sendEnvelope(se,{})}resume(e){this.sendEnvelope(ne,{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}}},K,q=()=>typeof crypto<`u`&&typeof crypto.randomUUID==`function`?crypto.randomUUID().replace(/-/g,``):`${Date.now().toString(16)}${Math.random().toString(16).slice(2)}`,J=(e,t,n)=>({id:q(),session_id:e,kind:t,ts:Date.now(),...n}),Y=e=>{try{let t=JSON.parse(e);if(t&&typeof t==`object`)return t}catch{}return{answers:{}}},pe=e=>{let t=Y(e).answers??{};return Object.entries(t).map(([e,t])=>`${e} → ${Array.isArray(t)?t.join(`, `):t}`).join(`
2
+ `)},me=(e,t)=>{U({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)})},he=(n,s,_,v,y)=>{let b=v?.event,x=v?.session_id,C=v?.trace_id,w=v?.seq;if(typeof w==`number`&&x){let e=_.lastSeq[x];if(e!==void 0&&w<=e){if(_.seqChecked[x])return;n(`resetLastSeq`,x),s(`resyncSession`,x)}n(`markSeqChecked`,x),n(`setLastSeq`,{session_id:x,seq:w})}switch(x&&C&&n(`updateSession`,{session_id:x,trace_id:C}),b){case u:n(`upsertSession`,{session_id:x,node_id:y,status:`running`,cwd:v.cwd,model:v.model,resolved_model:v.resolved_model,...v.effort===void 0?{}:{effort:v.effort},...v.permission_mode===void 0?{}:{permission_mode:v.permission_mode},trace_id:C});break;case f:{let e=v.sdk_session_id;x&&e&&e!==x&&n(`renameSession`,{from:x,to:e});break}case o:{let e=v.id;e&&_.events[x]?.find(t=>t.kind===`text`&&t.stream_id===e)?n(`appendDelta`,{session_id:x,stream_id:e,text:v.text??``}):n(`appendEvent`,J(x,`text`,{text:v.text??``,stream_id:e,streaming:!0,trace_id:C}));break}case p:{let e=v.id;e&&_.events[x]?.find(t=>t.kind===`text`&&t.stream_id===e)?n(`finalizeStream`,{session_id:x,stream_id:e,text:v.text}):n(`appendEvent`,J(x,`text`,{text:v.text,trace_id:C}));break}case c:n(`appendEvent`,J(x,`thinking`,{text:v.text,trace_id:C}));break;case m:n(`appendEvent`,J(x,`tool_use`,{tool:v.tool,tool_use_id:v.tool_use_id,input:v.input,trace_id:C}));break;case l:n(`appendEvent`,J(x,`tool_result`,{tool_use_id:v.tool_use_id,content:v.content,is_error:v.is_error,trace_id:C}));break;case r:n(`addPermission`,{request_id:v.request_id,session_id:x,node_id:y,tool:v.tool,input:v.input,title:v.title,display_name:v.display_name,description:v.description}),me(s,{node_id:y,session_id:x,request_id:v.request_id,tool:v.display_name||v.title||v.tool});break;case h:for(let e of v.requests??[])n(`addPermission`,{request_id:e.request_id,session_id:e.session_id,node_id:y,tool:e.tool,input:e.input,title:e.title,display_name:e.display_name,description:e.description});break;case N:n(`removePermission`,v.request_id);break;case t:n(`finalizeAllStreams`,{session_id:x}),n(`appendEvent`,J(x,`result`,{subtype:v.subtype,is_error:v.is_error,text:v.result,cost_usd:v.cost_usd,cut_uuid:v.cut_uuid,sdk_session_id:v.sdk_session_id,trace_id:C})),n(`updateSession`,{session_id:x,status:`idle`,cost_usd:v.cost_usd});break;case ae:n(`appendEvent`,J(x,`notice`,{text:v.text,subtype:v.code,command:v.command,level:v.level}));break;case i:n(`finalizeAllStreams`,{session_id:x}),n(`appendEvent`,J(x,`error`,{text:v.message,trace_id:C})),n(`updateSession`,{session_id:x,status:`error`}),n(`updateStatus`,{key:`getHistoryDetail`,value:e.Success});break;case a:n(`finalizeAllStreams`,{session_id:x}),n(`updateSession`,{session_id:x,status:`closed`}),n(`clearSeqCheckedFor`,x);break;case ie:n(`rewindToCut`,{session_id:x,cut_uuid:v.cut_uuid}),v.prompt&&n(`appendEvent`,J(x,`prompt`,{text:v.prompt,trace_id:C})),n(`updateSession`,{session_id:x,status:`running`});break;case d:n(`resetLastSeq`,x),n(`clearSeqCheckedFor`,x),s(`resyncSession`,x);break;case g:for(let e of v.sessions??[]){let t=e.model;n(`upsertSession`,{session_id:e.session_id,node_id:y,status:e.status??`running`,started:!0,cwd:e.cwd,model:t,resolved_model:e.resolved_model,...e.effort===void 0?{}:{effort:e.effort},...e.permission_mode===void 0?{}:{permission_mode:e.permission_mode}})}break;case P:if(y){n(`setHistory`,{node_id:y,sessions:v.sessions??[]}),n(`updateStatus`,{key:`getHistory`,value:e.Success});let t=_.historyRef;t&&t.node_id===y&&!_.currentSessionId&&s(`reattachSession`,t)}break;case S:ge(n,_,v,y),n(`updateStatus`,{key:`getHistoryDetail`,value:e.Success});break;case F:n(`setDirectory`,{path:v.path,parent:v.parent??null,sep:v.sep??`/`,entries:v.entries??[],truncated:v.truncated,error:v.error});break;case M:y&&n(`setCapabilities`,{node_id:y,capabilities:{providers:v.providers??[]}});break;default:break}},ge=(e,t,n,r)=>{let i=n?.session_id,a=X(n?.provider);if(!i||!r)return;let o=a===`claude`||a===`codex`||a===`copilot`,s=t.sessions[i],c=!!s&&(s.started===!0||s.status===`running`||s.status===`starting`),l=t.lastComposer?.[r]??{},u=(n.resolved_model===void 0?void 0:n.model)??s?.model;e(`upsertSession`,{session_id:i,node_id:r,status:c?s.status:`idle`,cwd:n.cwd??s?.cwd??l.cwd,model:u,resolved_model:n.resolved_model??s?.resolved_model,effort:n.effort??s?.effort??l.effort,permission_mode:n.permission_mode??s?.permission_mode??l.permissionMode,provider:a,started:!!c,readonly:!o&&!c});let d=t.events[i]?.length??0,f=(n.events??[]).length,p=s?.status===`running`||s?.status===`starting`;c&&d>0&&(p||d>=f)||e(`setEvents`,{session_id:i,events:(n.events??[]).map((e,t)=>({id:q(),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})},X=e=>e===`codex`||e===`copilot`?e:`claude`,Z=0,Q=new Map,_e=({commit:e})=>{Q.clear(),e(`resetAll`)},ve=async()=>{},ye=async()=>{},be=(e,t,n)=>{e(`setNodeName`,{node_id:t,name:n})},$={namespaced:!0,state:B,mutations:{resetAll:e=>{Object.assign(e,B())},updateStatus:(e,t)=>{e.status[t.key]=t.value},setConnection:(e,t)=>{e.connection=t},setNodes:(e,t)=>{e.nodes=t},mergeNodeSnapshot:(e,t)=>{let n=new Set(t.map(e=>e.node_id)),r=new Map(t.map(e=>[e.node_id,e.name]));for(let t of e.nodes){t.status=n.has(t.node_id)?`online`:`offline`;let e=r.get(t.node_id);e&&(t.name=e)}for(let n of t)e.nodes.some(e=>e.node_id===n.node_id)||e.nodes.push({...n,status:`online`})},setNodeStatus:(e,t)=>{let n=e.nodes.find(e=>e.node_id===t.node_id);n&&(n.status=t.status)},setNodeName:(e,t)=>{let n=e.nodes.find(e=>e.node_id===t.node_id);n&&(n.name=t.name)},setCurrentNode:(e,t)=>{e.currentNodeId=t},setCurrentSession:(e,t)=>{e.currentSessionId=t},upsertSession:(e,t)=>{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],delete e.seqChecked[n],delete e.seqChecked[r];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)},resetLastSeq:(e,t)=>{delete e.lastSeq[t]},markSeqChecked:(e,t)=>{e.seqChecked[t]=!0},clearSeqChecked:e=>{e.seqChecked={}},clearSeqCheckedFor:(e,t)=>{delete e.seqChecked[t]},appendDelta:(e,t)=>{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],delete e.seqChecked[n.session_id],e.currentSessionId===n.session_id&&(e.currentSessionId=void 0))}},actions:{resetAll:_e,getApplications:ve,setApplication:ye,getNodes:async({commit:t,rootState:n})=>{let r=n.token?.access;if(!r)return[];t(`updateStatus`,{key:`getNodes`,value:e.Request});let i=Z;try{let{data:n}=await z.getNodes({token:r}),a=(n.nodes??[]).map(e=>{let t=Q.get(e.node_id);return t&&t.at>i?{...e,name:t.name}:e});return t(`setNodes`,a),t(`updateStatus`,{key:`getNodes`,value:e.Success}),a}catch(n){throw t(`updateStatus`,{key:`getNodes`,value:e.Error}),n}},claimPair:async({commit:t,dispatch:n,rootState:r},i)=>{let a=r.token?.access;if(!a)throw Error(`not authenticated`);t(`updateStatus`,{key:`claimPair`,value:e.Request});try{let{data:r}=await z.claimPair(i.trim(),{token:a});return t(`updateStatus`,{key:`claimPair`,value:e.Success}),await n(`getNodes`),r.node_name}catch(n){throw t(`updateStatus`,{key:`claimPair`,value:e.Error}),n}},deleteNode:async({commit:t,dispatch:n,state:r,rootState:i},a)=>{let o=i.token?.access;if(!o)throw Error(`not authenticated`);t(`updateStatus`,{key:`deleteNode`,value:e.Request});try{await z.deleteNode(a,{token:o}),t(`removeNodeData`,a),r.currentNodeId===a&&(t(`setCurrentNode`,void 0),t(`setCurrentSession`,void 0)),t(`updateStatus`,{key:`deleteNode`,value:e.Success}),await n(`getNodes`)}catch(n){throw t(`updateStatus`,{key:`deleteNode`,value:e.Error}),n}},renameNode:async({commit:t,rootState:n},r)=>{let i=n.token?.access;if(!i)throw Error(`not authenticated`);let a=r.name.trim();if(!a)throw Error(`name must not be empty`);t(`updateStatus`,{key:`renameNode`,value:e.Request});try{let{data:n}=await z.renameNode(r.nodeId,a,{token:i}),o=n?.name??a;Q.size>=50&&Q.clear(),Q.set(r.nodeId,{name:o,at:++Z}),t(`setNodeName`,{node_id:r.nodeId,name:o}),t(`updateStatus`,{key:`renameNode`,value:e.Success})}catch(n){throw t(`updateStatus`,{key:`renameNode`,value:e.Error}),n}},connect:({commit:e,dispatch:t,state:n,rootState:r})=>{let i=r.token?.access;i&&(K?.isOpen||(K?.close(),e(`setConnection`,`connecting`),K=new fe(i,{onOpen:()=>{e(`setConnection`,`connected`),e(`clearSeqChecked`);let r={...n.lastSeq};Object.keys(r).length&&K?.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)=>he(e,t,n,r,i),onNodesSnapshot:n=>{e(`mergeNodeSnapshot`,n),t(`getNodes`)},onNodeStatus:(r,i)=>{e(`setNodeStatus`,{node_id:r,status:i}),i===`online`&&r===n.currentNodeId&&(t(`getHistory`,r),t(`getCapabilities`,r),t(`requestSessions`,r),t(`requestPendingPermissions`,r))},onNodeRenamed:(t,n)=>{be(e,t,n)},onRelayError:(e,t)=>console.warn(`[codingBridge] relay error`,e,t)}),K.connect()))},disconnect:({commit:e})=>{K?.close(),K=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||!K||K.sendToNode(n,{action:C})},requestPendingPermissions:({state:e},t)=>{let n=t??e.currentNodeId;!n||!K||K.sendToNode(n,{action:T})},enableNotifications:async({dispatch:e,rootState:t})=>{let n=t.token?.access;if(!n)return`unsupported`;if(L()){let t=await le(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 H();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 V(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 W();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||!K||!i&&!a&&!o)return;let s=q(),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=q(),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`,J(c,`prompt`,{text:i,images:a,attachments:o,trace_id:s})),e(`updateSession`,{session_id:c,started:!0}),K.sendToNode(r,{action:E,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`,J(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}}),K.sendToNode(r,{action:ee,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||!K||!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=q();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`,J(i,`prompt`,{text:a,images:u,attachments:d,trace_id:f})),K.sendToNode(r,{action:j,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||!K||K.sendToNode(n,{action:w,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&&K&&K.sendToNode(i,{action:oe,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&&(K?.sendToNode(r.node_id,{action:k,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&&(K?.sendToNode(r.node_id,{action:k,request_id:n.request_id,decision:`allow`,answer:Y(n.output),answer_text:pe(n.output)}),e(`removePermission`,n.request_id))},getHistory:({commit:t,state:n},r)=>{let i=r??n.currentNodeId;!i||!K||(t(`updateStatus`,{key:`getHistory`,value:e.Request}),K.sendToNode(i,{action:re,limit:200}))},getHistoryDetail:({commit:t},n)=>{!n?.node_id||!n?.session_id||!K||(t(`updateStatus`,{key:`getHistoryDetail`,value:e.Request}),K.sendToNode(n.node_id,{action:O,provider:n.provider,session_id:n.session_id}),setTimeout(()=>t(`updateStatus`,{key:`getHistoryDetail`,value:e.Success}),12e3))},markHistoryRead:(e,t)=>{!t?.node_id||!t?.session_id||!t?.provider||!K||K.sendToNode(t.node_id,{action:x,provider:t.provider,session_id:t.session_id,updated_at:t.updated_at,limit:200})},reattachSession:({state:e,commit:t,dispatch:n},r)=>{if(!r?.node_id||!r?.session_id)return;t(`setCurrentNode`,r.node_id),t(`setCurrentSession`,r.session_id),n(`getHistoryDetail`,r),n(`requestSessions`,r.node_id),n(`requestPendingPermissions`,r.node_id);let i=e.lastSeq[r.session_id];i!==void 0&&K?.resume({[r.session_id]:i})},resyncSession:({state:e,dispatch:t},n)=>{let r=e.sessions[n];r?.node_id&&t(`getHistoryDetail`,{node_id:r.node_id,session_id:n,provider:r.provider??`claude`})},browseDir:({commit:e,state:t},n)=>{let r=t.currentNodeId;!r||!K||(e(`setDirectoryLoading`,!0),K.sendToNode(r,{action:ce,path:n||void 0}))},clearDirectory:({commit:e})=>{e(`setDirectory`,void 0)},getCapabilities:({state:e},t)=>{let n=t??e.currentNodeId;!n||!K||K.sendToNode(n,{action:A})}}};export{$ as codingBridge,$ as default};
@@ -1,2 +1,2 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/esm-COArLl5w.js","assets/index-DKnFv8oI.js","assets/rolldown-runtime--c01j_DQ.js","assets/preload-helper-zJ_50EbN.js","assets/i18n-thhk7vzg.js","assets/vendor-chart-Dw-P17PN.js","assets/vendor-axios-Ck2ffRoh.js","assets/icon-CDmWyIgD.js","assets/install-Cn-SLM3u.js","assets/en-CpRrS3Ur.js","assets/vendor-dayjs-C9ICuEWn.js","assets/models-D6J60Ang.js","assets/vendor-vue-CCKiwo0U.js","assets/constants-CX4j41GC.js","assets/use-deprecated-BAB4ggjd.js","assets/event-BGnHezxC.js","assets/use-aria-DApzlmKf.js","assets/aria-8oQuUBWy.js","assets/scroll-kDH1KTep.js","assets/vnode-B_FEx-YD.js","assets/debounce-5xtusvLq.js","assets/vendor-vue-router-Cnr45FPb.js","assets/index-DW-VIENs.css","assets/esm-D0SEwzQg.js"])))=>i.map(i=>d[i]);
2
- import{t as e}from"./preload-helper-zJ_50EbN.js";import{Si as t}from"./index-DKnFv8oI.js";var n=`/sw.js`,r=()=>typeof window<`u`&&`Notification`in window,i=()=>typeof navigator<`u`&&`serviceWorker`in navigator,a=()=>i()&&`PushManager`in window,o=()=>r()?Notification.permission:`unsupported`,s=e=>{let t=(e+`=`.repeat((4-e.length%4)%4)).replace(/-/g,`+`).replace(/_/g,`/`),n=atob(t),r=new Uint8Array(n.length);for(let e=0;e<n.length;e++)r[e]=n.charCodeAt(e);return r},c=async()=>{if(!i())return null;try{return await navigator.serviceWorker.getRegistration(n)??await navigator.serviceWorker.register(n)}catch(e){return console.warn(`[codingBridge] service worker registration failed`,e),null}},l=async()=>{if(!r())return`unsupported`;if(Notification.permission!==`default`)return Notification.permission;try{return await Notification.requestPermission()}catch{return`denied`}},u=(e,n)=>{if(!(typeof document<`u`&&document.visibilityState===`visible`)){if(t()){d(e);return}if(!(!r()||Notification.permission!==`granted`))try{let t=new Notification(e.title,{body:e.body,tag:e.data.request_id||`coding-bridge-permission`,data:e.data});t.onclick=()=>{try{window.focus()}catch{}n?.(e.data),t.close()}}catch(e){console.warn(`[codingBridge] failed to raise local notification`,e)}}},d=async t=>{try{let{LocalNotifications:n}=await e(async()=>{let{LocalNotifications:e}=await import(`./esm-COArLl5w.js`);return{LocalNotifications:e}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22]));if((await n.checkPermissions()).display!==`granted`&&(await n.requestPermissions()).display!==`granted`)return;await n.schedule({notifications:[{id:f(t.data.request_id||`permission`),title:t.title,body:t.body,extra:t.data}]})}catch(e){console.warn(`[codingBridge] native local notification failed`,e)}},f=e=>{let t=0;for(let n=0;n<e.length;n++)t=t*31+e.charCodeAt(n)|0;return Math.abs(t)%2147483e3},p=async e=>{if(!a()||!e||await l()!==`granted`)return null;let t=await c();if(!t)return null;try{return(await t.pushManager.getSubscription()??await t.pushManager.subscribe({userVisibleOnly:!0,applicationServerKey:s(e)})).toJSON()}catch(e){return console.warn(`[codingBridge] web push subscribe failed`,e),null}},m=async()=>{if(!a())return null;let e=await(await c())?.pushManager.getSubscription();if(!e)return null;let t=e.endpoint;try{await e.unsubscribe()}catch{}return t},h=async n=>{if(!t())return null;try{let{PushNotifications:t}=await e(async()=>{let{PushNotifications:e}=await import(`./esm-D0SEwzQg.js`);return{PushNotifications:e}},__vite__mapDeps([23,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22])),r=await t.requestPermissions();if(r.receive!==`granted`)return console.warn(`[codingBridge] push permission not granted (receive=${r.receive})`),null;let i=await new Promise(e=>{let n=setTimeout(()=>{console.warn(`[codingBridge] push registration timed out — no device token`),e(null)},1e4);t.addListener(`registration`,t=>{clearTimeout(n),e(t.value)}),t.addListener(`registrationError`,t=>{clearTimeout(n),console.warn(`[codingBridge] push registrationError`,t),e(null)}),t.register()});return n&&t.addListener(`pushNotificationActionPerformed`,e=>{n(e.notification?.data??{})}),i}catch(e){return e?.code===`UNIMPLEMENTED`?console.warn(`[codingBridge] PushNotifications plugin not available in this build`,e):console.warn(`[codingBridge] native push registration failed`,e),null}};export{p as a,l as i,u as n,m as o,h as r,r as s,o as t};
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/esm-bSzrNAkV.js","assets/index-Bbaw1dFE.js","assets/rolldown-runtime--c01j_DQ.js","assets/preload-helper-zJ_50EbN.js","assets/i18n-D4nr5BAx.js","assets/vendor-chart-Dw-P17PN.js","assets/vendor-axios-Ck2ffRoh.js","assets/icon-CDmWyIgD.js","assets/install-Cn-SLM3u.js","assets/en-CpRrS3Ur.js","assets/vendor-dayjs-C9ICuEWn.js","assets/models-PmOthmjQ.js","assets/vendor-vue-CCKiwo0U.js","assets/constants-BAu6gjb8.js","assets/use-deprecated-BAB4ggjd.js","assets/event-BGnHezxC.js","assets/use-aria-DApzlmKf.js","assets/aria-8oQuUBWy.js","assets/scroll-kDH1KTep.js","assets/vnode-B_FEx-YD.js","assets/debounce-5xtusvLq.js","assets/vendor-vue-router-Cnr45FPb.js","assets/index-BIRoiZhq.css","assets/esm-B5A_43-8.js"])))=>i.map(i=>d[i]);
2
+ import{t as e}from"./preload-helper-zJ_50EbN.js";import{Gi as t}from"./index-Bbaw1dFE.js";var n=`/sw.js`,r=()=>typeof window<`u`&&`Notification`in window,i=()=>typeof navigator<`u`&&`serviceWorker`in navigator,a=()=>i()&&`PushManager`in window,o=()=>r()?Notification.permission:`unsupported`,s=e=>{let t=(e+`=`.repeat((4-e.length%4)%4)).replace(/-/g,`+`).replace(/_/g,`/`),n=atob(t),r=new Uint8Array(n.length);for(let e=0;e<n.length;e++)r[e]=n.charCodeAt(e);return r},c=async()=>{if(!i())return null;try{return await navigator.serviceWorker.getRegistration(n)??await navigator.serviceWorker.register(n)}catch(e){return console.warn(`[codingBridge] service worker registration failed`,e),null}},l=async()=>{if(!r())return`unsupported`;if(Notification.permission!==`default`)return Notification.permission;try{return await Notification.requestPermission()}catch{return`denied`}},u=(e,n)=>{if(!(typeof document<`u`&&document.visibilityState===`visible`)){if(t()){d(e);return}if(!(!r()||Notification.permission!==`granted`))try{let t=new Notification(e.title,{body:e.body,tag:e.data.request_id||`coding-bridge-permission`,data:e.data});t.onclick=()=>{try{window.focus()}catch{}n?.(e.data),t.close()}}catch(e){console.warn(`[codingBridge] failed to raise local notification`,e)}}},d=async t=>{try{let{LocalNotifications:n}=await e(async()=>{let{LocalNotifications:e}=await import(`./esm-bSzrNAkV.js`);return{LocalNotifications:e}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22]));if((await n.checkPermissions()).display!==`granted`&&(await n.requestPermissions()).display!==`granted`)return;await n.schedule({notifications:[{id:f(t.data.request_id||`permission`),title:t.title,body:t.body,extra:t.data}]})}catch(e){console.warn(`[codingBridge] native local notification failed`,e)}},f=e=>{let t=0;for(let n=0;n<e.length;n++)t=t*31+e.charCodeAt(n)|0;return Math.abs(t)%2147483e3},p=async e=>{if(!a()||!e||await l()!==`granted`)return null;let t=await c();if(!t)return null;try{return(await t.pushManager.getSubscription()??await t.pushManager.subscribe({userVisibleOnly:!0,applicationServerKey:s(e)})).toJSON()}catch(e){return console.warn(`[codingBridge] web push subscribe failed`,e),null}},m=async()=>{if(!a())return null;let e=await(await c())?.pushManager.getSubscription();if(!e)return null;let t=e.endpoint;try{await e.unsubscribe()}catch{}return t},h=async n=>{if(!t())return null;try{let{PushNotifications:t}=await e(async()=>{let{PushNotifications:e}=await import(`./esm-B5A_43-8.js`);return{PushNotifications:e}},__vite__mapDeps([23,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22])),r=await t.requestPermissions();if(r.receive!==`granted`)return console.warn(`[codingBridge] push permission not granted (receive=${r.receive})`),null;let i=await new Promise(e=>{let n=setTimeout(()=>{console.warn(`[codingBridge] push registration timed out — no device token`),e(null)},1e4);t.addListener(`registration`,t=>{clearTimeout(n),e(t.value)}),t.addListener(`registrationError`,t=>{clearTimeout(n),console.warn(`[codingBridge] push registrationError`,t),e(null)}),t.register()});return n&&t.addListener(`pushNotificationActionPerformed`,e=>{n(e.notification?.data??{})}),i}catch(e){return e?.code===`UNIMPLEMENTED`?console.warn(`[codingBridge] PushNotifications plugin not available in this build`,e):console.warn(`[codingBridge] native push registration failed`,e),null}};export{p as a,l as i,u as n,m as o,h as r,r as s,o as t};
@@ -1 +1 @@
1
- import{Ei as e}from"./index-DKnFv8oI.js";var t=e(`coins`,[[`path`,{d:`M13.744 17.736a6 6 0 1 1-7.48-7.48`,key:`bq4yh3`}],[`path`,{d:`M15 6h1v4`,key:`11y1tn`}],[`path`,{d:`m6.134 14.768.866-.5 2 3.464`,key:`17snzx`}],[`circle`,{cx:`16`,cy:`8`,r:`6`,key:`14bfc9`}]]);export{t};
1
+ import{Yi as e}from"./index-Bbaw1dFE.js";var t=e(`coins`,[[`path`,{d:`M13.744 17.736a6 6 0 1 1-7.48-7.48`,key:`bq4yh3`}],[`path`,{d:`M15 6h1v4`,key:`11y1tn`}],[`path`,{d:`m6.134 14.768.866-.5 2 3.464`,key:`17snzx`}],[`circle`,{cx:`16`,cy:`8`,r:`6`,key:`14bfc9`}]]);export{t};
@@ -1 +1 @@
1
- import{A as e,C as t,Gt as n,I as r,Jt as i,L as a,Mt as o,N as s,Rt as c,S as l,U as u,Ut as d,Wt as f,ft as p,ht as m,it as h,j as ee,k as g,mt as _,nt as v,st as y,tt as b,wt as x,x as S,z as C}from"./vendor-chart-Dw-P17PN.js";import{$ as w,F as T,a as E,c as D,et as O,it as k,rt as A,wt as j,xt as M}from"./icon-CDmWyIgD.js";import{a as N,c as P,i as F,t as I}from"./install-Cn-SLM3u.js";import{t as L}from"./castArray-YUixYP4Q.js";import{r as R,t as z}from"./event-BGnHezxC.js";import{x as B}from"./models-D6J60Ang.js";import{l as V}from"./use-deprecated-BAB4ggjd.js";import{t as H}from"./collapse-transition-BUGXhx7B.js";var U=e=>j(e)||f(e)||c(e),W=w({accordion:Boolean,modelValue:{type:O([Array,String,Number]),default:()=>B([])},expandIconPosition:{type:O([String]),default:`right`},beforeCollapse:{type:O(Function)}}),G={[R]:U,[z]:U},K=Symbol(`collapseContextKey`),q=`ElCollapse`,J=(e,t)=>{let n=x(L(e.modelValue)),r=r=>{n.value=r;let i=e.accordion?n.value[0]:n.value;t(R,i),t(z,i)},i=t=>{if(e.accordion)r([n.value[0]===t?``:t]);else{let e=[...n.value],i=e.indexOf(t);i>-1?e.splice(i,1):e.push(t),r(e)}};return p(()=>e.modelValue,()=>n.value=L(e.modelValue),{deep:!0}),v(K,{activeNames:n,handleItemClick:async t=>{let{beforeCollapse:n}=e;if(!n){i(t);return}let r=n(t);[d(r),M(r)].includes(!0)||k(q,"beforeCollapse must return type `Promise<boolean>` or `boolean`"),d(r)?r.then(e=>{e!==!1&&i(t)}).catch(e=>{A(q,`some error occurred: ${e}`)}):r&&i(t)}}),{activeNames:n,setActiveNames:r}},Y=e=>{let t=P(`collapse`);return{rootKls:g(()=>[t.b(),t.b(`icon-position-${e.expandIconPosition}`)])}},X=N(C({...C({name:`ElCollapse`}),props:W,emits:G,setup(e,{expose:t,emit:r}){let i=e,{activeNames:a,setActiveNames:c}=J(i,r),{rootKls:l}=Y(i);return t({activeNames:a,setActiveNames:c}),(e,t)=>(b(),s(`div`,{class:n(o(l))},[h(e.$slots,`default`)],2))}}),[[`__file`,`collapse.vue`]]),Z=w({title:{type:String,default:``},name:{type:O([String,Number]),default:void 0},icon:{type:E,default:D},disabled:Boolean}),Q=e=>{let t=u(K),{namespace:n}=P(`collapse`),r=x(!1),i=x(!1),a=V(),s=g(()=>a.current++),c=g(()=>e.name??`${n.value}-id-${a.prefix}-${o(s)}`);return{focusing:r,id:s,isActive:g(()=>t?.activeNames.value.includes(o(c))),handleFocus:()=>{setTimeout(()=>{i.value?i.value=!1:r.value=!0},50)},handleHeaderClick:n=>{e.disabled||n.target?.closest(`input, textarea, select`)||(t?.handleItemClick(o(c)),r.value=!1,i.value=!0)},handleEnterClick:e=>{e.target?.closest(`input, textarea, select`)||(e.preventDefault(),t?.handleItemClick(o(c)))}}},te=(e,{focusing:t,isActive:n,id:r})=>{let i=P(`collapse`),a=g(()=>[i.b(`item`),i.is(`active`,o(n)),i.is(`disabled`,e.disabled)]),s=g(()=>[i.be(`item`,`header`),i.is(`active`,o(n)),{focusing:o(t)&&!e.disabled}]),c=g(()=>[i.be(`item`,`arrow`),i.is(`active`,o(n))]);return{itemTitleKls:g(()=>[i.be(`item`,`title`)]),arrowKls:c,headKls:s,rootKls:a,itemWrapperKls:g(()=>i.be(`item`,`wrap`)),itemContentKls:g(()=>i.be(`item`,`content`)),scopedContentId:g(()=>i.b(`content-${o(r)}`)),scopedHeadId:g(()=>i.b(`head-${o(r)}`))}},$=N(C({...C({name:`ElCollapseItem`}),props:Z,setup(c,{expose:u}){let d=c,{focusing:f,id:p,isActive:g,handleFocus:v,handleHeaderClick:x,handleEnterClick:C}=Q(d),{arrowKls:w,headKls:E,rootKls:D,itemTitleKls:O,itemWrapperKls:k,itemContentKls:A,scopedContentId:j,scopedHeadId:M}=te(d,{focusing:f,isActive:g,id:p});return u({isActive:g}),(c,u)=>(b(),s(`div`,{class:n(o(D))},[e(`div`,{id:o(M),class:n(o(E)),"aria-expanded":o(g),"aria-controls":o(j),"aria-describedby":o(j),tabindex:c.disabled?-1:0,role:`button`,onClick:o(x),onKeydown:l(t(o(C),[`stop`]),[`space`,`enter`]),onFocus:o(v),onBlur:e=>f.value=!1},[e(`span`,{class:n(o(O))},[h(c.$slots,`title`,{isActive:o(g)},()=>[r(i(c.title),1)])],2),h(c.$slots,`icon`,{isActive:o(g)},()=>[a(o(T),{class:n(o(w))},{default:_(()=>[(b(),ee(y(c.icon)))]),_:1},8,[`class`])])],42,[`id`,`aria-expanded`,`aria-controls`,`aria-describedby`,`tabindex`,`onClick`,`onKeydown`,`onFocus`,`onBlur`]),a(o(H),null,{default:_(()=>[m(e(`div`,{id:o(j),role:`region`,class:n(o(k)),"aria-hidden":!o(g),"aria-labelledby":o(M)},[e(`div`,{class:n(o(A))},[h(c.$slots,`default`)],2)],10,[`id`,`aria-hidden`,`aria-labelledby`]),[[S,o(g)]])]),_:3})],2))}}),[[`__file`,`collapse-item.vue`]]),ne=I(X,{CollapseItem:$}),re=F($);export{re as n,ne as t};
1
+ import{A as e,C as t,Gt as n,I as r,Jt as i,L as a,Mt as o,N as s,Rt as c,S as l,U as u,Ut as d,Wt as f,ft as p,ht as m,it as h,j as ee,k as g,mt as _,nt as v,st as y,tt as b,wt as x,x as S,z as C}from"./vendor-chart-Dw-P17PN.js";import{$ as w,F as T,a as E,c as D,et as O,it as k,rt as A,wt as j,xt as M}from"./icon-CDmWyIgD.js";import{a as N,c as P,i as F,t as I}from"./install-Cn-SLM3u.js";import{t as L}from"./castArray-YUixYP4Q.js";import{r as R,t as z}from"./event-BGnHezxC.js";import{x as B}from"./models-PmOthmjQ.js";import{l as V}from"./use-deprecated-BAB4ggjd.js";import{t as H}from"./collapse-transition-BUGXhx7B.js";var U=e=>j(e)||f(e)||c(e),W=w({accordion:Boolean,modelValue:{type:O([Array,String,Number]),default:()=>B([])},expandIconPosition:{type:O([String]),default:`right`},beforeCollapse:{type:O(Function)}}),G={[R]:U,[z]:U},K=Symbol(`collapseContextKey`),q=`ElCollapse`,J=(e,t)=>{let n=x(L(e.modelValue)),r=r=>{n.value=r;let i=e.accordion?n.value[0]:n.value;t(R,i),t(z,i)},i=t=>{if(e.accordion)r([n.value[0]===t?``:t]);else{let e=[...n.value],i=e.indexOf(t);i>-1?e.splice(i,1):e.push(t),r(e)}};return p(()=>e.modelValue,()=>n.value=L(e.modelValue),{deep:!0}),v(K,{activeNames:n,handleItemClick:async t=>{let{beforeCollapse:n}=e;if(!n){i(t);return}let r=n(t);[d(r),M(r)].includes(!0)||k(q,"beforeCollapse must return type `Promise<boolean>` or `boolean`"),d(r)?r.then(e=>{e!==!1&&i(t)}).catch(e=>{A(q,`some error occurred: ${e}`)}):r&&i(t)}}),{activeNames:n,setActiveNames:r}},Y=e=>{let t=P(`collapse`);return{rootKls:g(()=>[t.b(),t.b(`icon-position-${e.expandIconPosition}`)])}},X=N(C({...C({name:`ElCollapse`}),props:W,emits:G,setup(e,{expose:t,emit:r}){let i=e,{activeNames:a,setActiveNames:c}=J(i,r),{rootKls:l}=Y(i);return t({activeNames:a,setActiveNames:c}),(e,t)=>(b(),s(`div`,{class:n(o(l))},[h(e.$slots,`default`)],2))}}),[[`__file`,`collapse.vue`]]),Z=w({title:{type:String,default:``},name:{type:O([String,Number]),default:void 0},icon:{type:E,default:D},disabled:Boolean}),Q=e=>{let t=u(K),{namespace:n}=P(`collapse`),r=x(!1),i=x(!1),a=V(),s=g(()=>a.current++),c=g(()=>e.name??`${n.value}-id-${a.prefix}-${o(s)}`);return{focusing:r,id:s,isActive:g(()=>t?.activeNames.value.includes(o(c))),handleFocus:()=>{setTimeout(()=>{i.value?i.value=!1:r.value=!0},50)},handleHeaderClick:n=>{e.disabled||n.target?.closest(`input, textarea, select`)||(t?.handleItemClick(o(c)),r.value=!1,i.value=!0)},handleEnterClick:e=>{e.target?.closest(`input, textarea, select`)||(e.preventDefault(),t?.handleItemClick(o(c)))}}},te=(e,{focusing:t,isActive:n,id:r})=>{let i=P(`collapse`),a=g(()=>[i.b(`item`),i.is(`active`,o(n)),i.is(`disabled`,e.disabled)]),s=g(()=>[i.be(`item`,`header`),i.is(`active`,o(n)),{focusing:o(t)&&!e.disabled}]),c=g(()=>[i.be(`item`,`arrow`),i.is(`active`,o(n))]);return{itemTitleKls:g(()=>[i.be(`item`,`title`)]),arrowKls:c,headKls:s,rootKls:a,itemWrapperKls:g(()=>i.be(`item`,`wrap`)),itemContentKls:g(()=>i.be(`item`,`content`)),scopedContentId:g(()=>i.b(`content-${o(r)}`)),scopedHeadId:g(()=>i.b(`head-${o(r)}`))}},$=N(C({...C({name:`ElCollapseItem`}),props:Z,setup(c,{expose:u}){let d=c,{focusing:f,id:p,isActive:g,handleFocus:v,handleHeaderClick:x,handleEnterClick:C}=Q(d),{arrowKls:w,headKls:E,rootKls:D,itemTitleKls:O,itemWrapperKls:k,itemContentKls:A,scopedContentId:j,scopedHeadId:M}=te(d,{focusing:f,isActive:g,id:p});return u({isActive:g}),(c,u)=>(b(),s(`div`,{class:n(o(D))},[e(`div`,{id:o(M),class:n(o(E)),"aria-expanded":o(g),"aria-controls":o(j),"aria-describedby":o(j),tabindex:c.disabled?-1:0,role:`button`,onClick:o(x),onKeydown:l(t(o(C),[`stop`]),[`space`,`enter`]),onFocus:o(v),onBlur:e=>f.value=!1},[e(`span`,{class:n(o(O))},[h(c.$slots,`title`,{isActive:o(g)},()=>[r(i(c.title),1)])],2),h(c.$slots,`icon`,{isActive:o(g)},()=>[a(o(T),{class:n(o(w))},{default:_(()=>[(b(),ee(y(c.icon)))]),_:1},8,[`class`])])],42,[`id`,`aria-expanded`,`aria-controls`,`aria-describedby`,`tabindex`,`onClick`,`onKeydown`,`onFocus`,`onBlur`]),a(o(H),null,{default:_(()=>[m(e(`div`,{id:o(j),role:`region`,class:n(o(k)),"aria-hidden":!o(g),"aria-labelledby":o(M)},[e(`div`,{class:n(o(A))},[h(c.$slots,`default`)],2)],10,[`id`,`aria-hidden`,`aria-labelledby`]),[[S,o(g)]])]),_:3})],2))}}),[[`__file`,`collapse-item.vue`]]),ne=I(X,{CollapseItem:$}),re=F($);export{re as n,ne as t};