@acedatacloud/nexior 3.351.0 → 3.351.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (263) hide show
  1. package/dist/apple-touch-icon.png +0 -0
  2. package/dist/assets/ApiCodeButton-BJzi5tyz.js +1 -0
  3. package/dist/assets/ApiCodeButton-CQW-tfDj.css +1 -0
  4. package/dist/assets/{Artifacts-BquAKPo2.js → Artifacts-MMO1OdpT.js} +1 -1
  5. package/dist/assets/{AskUserQuestionCard-79J14AAR.js → AskUserQuestionCard-J0rQ2_X2.js} +1 -1
  6. package/dist/assets/{AudioPreview-CSDaj9pT.js → AudioPreview-DHnIvnV1.js} +1 -1
  7. package/dist/assets/{Auth-DNy0xfIQ.js → Auth-B9RTGhcb.js} +1 -1
  8. package/dist/assets/{Bare-Dk7Fea7z.js → Bare-Dntc5pwa.js} +1 -1
  9. package/dist/assets/{BotPlaceholder-ozgWBXZZ.js → BotPlaceholder-DLGHIQS6.js} +1 -1
  10. package/dist/assets/{BottomFooter-klE-Yvfa.js → BottomFooter-DYsQDDxM.js} +1 -1
  11. package/dist/assets/{BrowserPairingDialog-QrCud3vC.js → BrowserPairingDialog-Bo2uEUzY.js} +1 -1
  12. package/dist/assets/{Callback-cGZMt0bu.js → Callback-BvGbO9wJ.js} +1 -1
  13. package/dist/assets/{CodeSnippet-CEI3_Lg1.js → CodeSnippet-B3bsS2LJ.js} +1 -1
  14. package/dist/assets/{Console-DUjghDqv.js → Console-m71NOva3.js} +1 -1
  15. package/dist/assets/{Consumption-Df5_TTmd.js → Consumption-JEEofYog.js} +1 -1
  16. package/dist/assets/{Conversation-DNFd_0Er.js → Conversation-C9d7mp-Q.js} +1 -1
  17. package/dist/assets/{Conversation-B4qekHn_.js → Conversation-DAOR3s3V.js} +1 -1
  18. package/dist/assets/{CopyToClipboard-BJY08VAg.js → CopyToClipboard-DaW2jH2E.js} +1 -1
  19. package/dist/assets/{Detail-Dt06aJmG.js → Detail-CmZdshoM.js} +2 -2
  20. package/dist/assets/{Extra-BpUNNgQn.js → Extra-Be46iuq1.js} +1 -1
  21. package/dist/assets/{FilePreview-C-2WjDQt.js → FilePreview-aI8mvQrY.js} +1 -1
  22. package/dist/assets/{Hailuo-YmF9UPQ9.js → Hailuo-DqGV3Jlx.js} +1 -1
  23. package/dist/assets/{History-yyj_lDyF.js → History-BbyRej3U.js} +1 -1
  24. package/dist/assets/{ImagePreview-Cp9W6Bga.js → ImagePreview-CZw5RcMp.js} +1 -1
  25. package/dist/assets/{ImageWrapper-ykkNZD7e.js → ImageWrapper-qlYGoYD4.js} +1 -1
  26. package/dist/assets/{Index-hRsKSuxl.js → Index-1hWjuxzE.js} +1 -1
  27. package/dist/assets/{Index-DaO9bq8z.js → Index-2nvPLCt5.js} +1 -1
  28. package/dist/assets/{Index-D1BwbXSa2.js → Index-BDsy-18M2.js} +1 -1
  29. package/dist/assets/{Index-CxNPk9KA.js → Index-BFo6CS_h.js} +1 -1
  30. package/dist/assets/{Index-CmbCf9X1.js → Index-BKkQ8DTT.js} +1 -1
  31. package/dist/assets/{Index-DDDOtIim.js → Index-BN68sJXx.js} +1 -1
  32. package/dist/assets/{Index-CcfX8iyN.js → Index-BRQsofLh.js} +1 -1
  33. package/dist/assets/{Index-A0Bfzr7f.js → Index-BcVYK8bE.js} +1 -1
  34. package/dist/assets/{Index-v19PXQRm.js → Index-Bomg953t.js} +1 -1
  35. package/dist/assets/{Index-CwfmZ_yR2.js → Index-BuRofMri2.js} +1 -1
  36. package/dist/assets/{Index-UK9E0Kps.js → Index-C-ISR1SL.js} +1 -1
  37. package/dist/assets/{Index-uvwc0eZT.js → Index-C7w4KUQX.js} +1 -1
  38. package/dist/assets/{Index-CHI07GVz2.js → Index-CBM2s6B82.js} +1 -1
  39. package/dist/assets/{Index-BzDy0UMl.js → Index-CHTK_QRU.js} +1 -1
  40. package/dist/assets/{Index-CYhmq9sr.js → Index-CHVgLR-X.js} +1 -1
  41. package/dist/assets/{Index-Ca3QX3ck.js → Index-CHktntg9.js} +1 -1
  42. package/dist/assets/{Index-CuXsWO5T.js → Index-CNF-Lr1_.js} +1 -1
  43. package/dist/assets/Index-CYp09HW1.js +1 -0
  44. package/dist/assets/{Index-D8hNrQZQ.js → Index-CjEhAioQ.js} +1 -1
  45. package/dist/assets/{Index-YyUK_1C9.js → Index-CmHu1jNb.js} +1 -1
  46. package/dist/assets/{Index-BMUOJvl1.js → Index-CsWY4jDf.js} +1 -1
  47. package/dist/assets/{Index-BkxN-DDw.js → Index-D3fK4dy3.js} +1 -1
  48. package/dist/assets/{Index-CEjJb6rC.js → Index-D3x7351K.js} +1 -1
  49. package/dist/assets/{Index-CPUnYyBc.js → Index-D9c7jWVJ.js} +1 -1
  50. package/dist/assets/{Index-8Papvd2j.js → Index-DD16I8AO.js} +1 -1
  51. package/dist/assets/{Index-rfQFpN-l.js → Index-DJUjbyg4.js} +1 -1
  52. package/dist/assets/{Index-5laYQ_Vn.js → Index-DPrb3bSk.js} +1 -1
  53. package/dist/assets/{Index-LAaK38Sg2.js → Index-DtbaAFDg2.js} +1 -1
  54. package/dist/assets/{Index-DMVsiHu5.js → Index-I6GmKo0U.js} +1 -1
  55. package/dist/assets/{Index-BW9BqZHz2.js → Index-WQffu7dU2.js} +1 -1
  56. package/dist/assets/{Index-CMDwKQ-Q.js → Index-j9b0__h8.js} +1 -1
  57. package/dist/assets/{Index-BELjHtbo2.js → Index-pJ9GtTcQ2.js} +1 -1
  58. package/dist/assets/{Index-CctUkyy2.js → Index-tjID4Nzn.js} +1 -1
  59. package/dist/assets/{Invitees-BImCOTE1.js → Invitees-B7R99e8_.js} +1 -1
  60. package/dist/assets/{List-DBsb4sYk.js → List-0ajr0QZz.js} +1 -1
  61. package/dist/assets/{List-DbCY-Wxx.js → List-DtdzMyu4.js} +1 -1
  62. package/dist/assets/{List-DEJDc1BH.js → List-SleFKHdi.js} +1 -1
  63. package/dist/assets/{LocalTools-BdiINkTj.js → LocalTools-Brm2FBZ_.js} +1 -1
  64. package/dist/assets/{LocalTools-CNyJ6nqg.js → LocalTools-CmIT5f18.js} +1 -1
  65. package/dist/assets/{Logo-DbTkIiEY.js → Logo-K_E4mDXH.js} +1 -1
  66. package/dist/assets/{Main-DIbtQuvJ.js → Main-DS78OeUW.js} +1 -1
  67. package/dist/assets/{Message-CPnKlip3.js → Message-D_yFGQ7E.js} +1 -1
  68. package/dist/assets/{Model-DjcwYSlG.js → Model-CE2yGHsA.js} +1 -1
  69. package/dist/assets/{Navigator-CsDG8j_a.js → Navigator-Bb61UvZC.js} +3 -3
  70. package/dist/assets/{NotFound-B6urYGYX.js → NotFound-Brp6KOxD.js} +1 -1
  71. package/dist/assets/{PageHeader-DDqDpqWL.js → PageHeader-BO64QAoT.js} +1 -1
  72. package/dist/assets/{Pay-BpHvI1xK.js → Pay-B-9GHL_U.js} +1 -1
  73. package/dist/assets/{Player-DL7XVATT.js → Player-Ck1GkA4v.js} +1 -1
  74. package/dist/assets/{Poivelle-BNOCz_iS.js → Poivelle-BfkcxV8P.js} +1 -1
  75. package/dist/assets/{PromptTextarea-CkuHuU4h.js → PromptTextarea-CAvwbYfl.js} +1 -1
  76. package/dist/assets/{RealtimeCall-CSQ7URMB.js → RealtimeCall-IejvXDiC.js} +1 -1
  77. package/dist/assets/{ReportButton-C11rSSUR.js → ReportButton-QNLl-twb.js} +1 -1
  78. package/dist/assets/{ReportDialog-CeCZOulR.js → ReportDialog-CFQmwYNO.js} +1 -1
  79. package/dist/assets/{ScheduledTasks-DzpvhlDc.js → ScheduledTasks-B7GXLdTR.js} +1 -1
  80. package/dist/assets/{Status-BJmBSwOc.js → Status-4FMzaNsl.js} +1 -1
  81. package/dist/assets/{Subscribe-B8bJWC_X.js → Subscribe-BE_x38cp.js} +1 -1
  82. package/dist/assets/{TabSwitcher-AwWzrNKU.js → TabSwitcher-DeBVyyDT.js} +1 -1
  83. package/dist/assets/{Tts-44KDVGgK.js → Tts-25noNpoZ.js} +1 -1
  84. package/dist/assets/{VideoPlayer-DdGrgCh3.js → VideoPlayer-CFlwMJfi.js} +1 -1
  85. package/dist/assets/arrow-down--rFLhVc-.js +1 -0
  86. package/dist/assets/{arrow-down-wide-narrow-n1PEQKPc.js → arrow-down-wide-narrow-B7NNh0N_.js} +1 -1
  87. package/dist/assets/arrow-left-BEfUKt4l.js +1 -0
  88. package/dist/assets/arrow-right-BeesmDSH.js +1 -0
  89. package/dist/assets/arrow-up-De4PQDE3.js +1 -0
  90. package/dist/assets/{authorizeFlow-Bp4vivKk.js → authorizeFlow-Bpx6UJ_y.js} +1 -1
  91. package/dist/assets/{avatar-B-X3ncVX.js → avatar-DLsasDX2.js} +1 -1
  92. package/dist/assets/{basic--W9DSyf-.js → basic-C1nf5gtX.js} +1 -1
  93. package/dist/assets/{book-open-CshIfIXG.js → book-open-CA63GgoT.js} +1 -1
  94. package/dist/assets/{box-BprjWv9J.js → box-BVRNvOkq.js} +1 -1
  95. package/dist/assets/{boxes-CHpHhI6p.js → boxes-D-6gL6OU.js} +1 -1
  96. package/dist/assets/{brain-a2_WMpPf.js → brain-CpBDTBOm.js} +1 -1
  97. package/dist/assets/{chart-no-axes-combined-Bh2ivW5I.js → chart-no-axes-combined-DbsHUyFg.js} +1 -1
  98. package/dist/assets/{chat-CvQY-nei.js → chat-D_396u-v.js} +1 -1
  99. package/dist/assets/check-DU3fWk08.js +1 -0
  100. package/dist/assets/chevron-down-BGKaZsf4.js +1 -0
  101. package/dist/assets/chevron-right-DNGokh2S.js +1 -0
  102. package/dist/assets/circle-check-DG3Dg_Gr.js +1 -0
  103. package/dist/assets/{circle-question-mark-BC--6L_U.js → circle-question-mark--QHga2iN.js} +1 -1
  104. package/dist/assets/{clipboard-list-DUwddl2Q.js → clipboard-list-CZkPw7f3.js} +1 -1
  105. package/dist/assets/clock-CVw8rZJk.js +1 -0
  106. package/dist/assets/code-CxrjOPnS.js +1 -0
  107. package/dist/assets/{codingBridge-5gbiNCQP.js → codingBridge-CwslFpz0.js} +1 -1
  108. package/dist/assets/{codingBridgeNotify-T098YZg9.js → codingBridgeNotify-DhSIa9P_.js} +2 -2
  109. package/dist/assets/{coins-B0X_VfQM.js → coins-BAQZbHDX.js} +1 -1
  110. package/dist/assets/{collapse-_ywhL20o.js → collapse-BH809l6f.js} +1 -1
  111. package/dist/assets/{constants-FVNrPctQ.js → constants-DdiBRvPy.js} +1 -1
  112. package/dist/assets/{copy-CE10KZzA.js → copy-B4tOxgJH.js} +1 -1
  113. package/dist/assets/{createTaskActions-CoD6GtFP.js → createTaskActions-QIArJVSX.js} +1 -1
  114. package/dist/assets/{digitalhuman-eo1cGWlH.js → digitalhuman-CXjK3uDM.js} +1 -1
  115. package/dist/assets/{dollar-sign-YqEk_g49.js → dollar-sign-DZob5zH9.js} +1 -1
  116. package/dist/assets/{download-Db4cPdrm.js → download-sjMA6DCS.js} +1 -1
  117. package/dist/assets/{drawer-BoDb3Fpk.js → drawer-Cnm2ONDq.js} +1 -1
  118. package/dist/assets/{dropdown-DYA_Zh5D.js → dropdown-DsuDMmtm.js} +1 -1
  119. package/dist/assets/{dropdown-CuGfoCz7.js → dropdown-if7DDYSk.js} +1 -1
  120. package/dist/assets/{ellipsis-DhKh4HoQ.js → ellipsis-Bkccs3QE.js} +1 -1
  121. package/dist/assets/{esm-jjRLjKCY.js → esm-B8FyJb2l.js} +1 -1
  122. package/dist/assets/esm-BK4Phl0t.js +1 -0
  123. package/dist/assets/{esm-BuiPu-uD.js → esm-C3X_Ovgg.js} +1 -1
  124. package/dist/assets/{esm-CuCLOtdT.js → esm-D3PrA6O8.js} +2 -2
  125. package/dist/assets/{esm-Dbqm8YEH.js → esm-DDGjWMIZ.js} +2 -2
  126. package/dist/assets/{esm-C_0csb-S.js → esm-NcCcGRUV.js} +3 -3
  127. package/dist/assets/{esm-BA38U0V_.js → esm-QtC2WA4X.js} +1 -1
  128. package/dist/assets/{external-link-BVEANwpQ.js → external-link-DJNYGnH-.js} +1 -1
  129. package/dist/assets/{eye-A1wi6LDg.js → eye-KtaV-Fp9.js} +1 -1
  130. package/dist/assets/favicon-DcXA9lGi.ico +0 -0
  131. package/dist/assets/{file-BJ7NA_Hj.js → file-FXUEQR63.js} +1 -1
  132. package/dist/assets/{file-output-eDdpV5My.js → file-output-B8wwknW4.js} +1 -1
  133. package/dist/assets/{file-text-Cj-XHlv4.js → file-text-frIq7xXe.js} +1 -1
  134. package/dist/assets/{fish-VlyHmOi-.js → fish-C-z87y5x.js} +1 -1
  135. package/dist/assets/{flux-CTJPPAfO.js → flux-BhCiNufa.js} +1 -1
  136. package/dist/assets/{folder-Bn1WbCJW.js → folder-BtswUsoc.js} +1 -1
  137. package/dist/assets/gauge-Djt7pxD9.js +1 -0
  138. package/dist/assets/{globe-B4LywX9k.js → globe-w7GzyQrb.js} +1 -1
  139. package/dist/assets/{grokvideo-DqsaoFx1.js → grokvideo-DP_zjEZ9.js} +1 -1
  140. package/dist/assets/{hailuo-C7EW-LyR.js → hailuo-DlJKPEVo.js} +1 -1
  141. package/dist/assets/{headphones-BCA_0Vs7.js → headphones-CyjAi0jI.js} +1 -1
  142. package/dist/assets/{history--cQ6Ihwu.js → history-BEKrOGlx.js} +1 -1
  143. package/dist/assets/{house-ClnRE4Ga.js → house-gQegAXtD.js} +1 -1
  144. package/dist/assets/{image-Cccgy4sa.js → image-Dj2OLaW1.js} +1 -1
  145. package/dist/assets/{index-DCEwxRXS.js → index-DSIuJ3Ml.js} +5 -5
  146. package/dist/assets/{index.browser.esm-A_-cf__u.js → index.browser.esm-oa5I3XXn.js} +1 -1
  147. package/dist/assets/{index.es-DmPzk19m.js → index.es--kGwBbSU.js} +1 -1
  148. package/dist/assets/{info-Ckusq785.js → info-CaaWfQ5G.js} +1 -1
  149. package/dist/assets/{input-number-D5Q8Bypi.js → input-number-CXyGkQc9.js} +1 -1
  150. package/dist/assets/{key-round-DhCiaAL9.js → key-round-Cx5ppFpb.js} +1 -1
  151. package/dist/assets/{kling-B4HfS7eO.js → kling-B5K_F9VK.js} +1 -1
  152. package/dist/assets/{languages-T6ytzsQj.js → languages-DHV0MWhc.js} +1 -1
  153. package/dist/assets/{laptop-HK6RbDv4.js → laptop-DTlDRl_Y.js} +1 -1
  154. package/dist/assets/{lightbulb-Cus9q2UQ.js → lightbulb-BDStFAwU.js} +1 -1
  155. package/dist/assets/{link-CEQaYDR2.js → link-2an_YebR.js} +1 -1
  156. package/dist/assets/loader-circle-FJNV85C3.js +1 -0
  157. package/dist/assets/{lock-B91o356X.js → lock-DLH1dqbx.js} +1 -1
  158. package/dist/assets/{luma-0CliOjcQ.js → luma-CjrBomd8.js} +1 -1
  159. package/dist/assets/{maestro-w99vogBe.js → maestro-A6yOgN_V.js} +1 -1
  160. package/dist/assets/{maestro-CdGOukyQ.js → maestro-Cvg871o7.js} +1 -1
  161. package/dist/assets/{mail-YrrOz6GB.js → mail-BJUjxuyo.js} +1 -1
  162. package/dist/assets/{message-circle-DwdFZd5Y.js → message-circle-Cc9A9mbi.js} +1 -1
  163. package/dist/assets/{mic-H4hIsQH-.js → mic-BmXMqOZU.js} +1 -1
  164. package/dist/assets/{midjourney-BHUJfNPU.js → midjourney-Dmdk1X7P.js} +1 -1
  165. package/dist/assets/{mobileLocalExec-DLdo_9Z0.js → mobileLocalExec-AAZnsTn-.js} +2 -2
  166. package/dist/assets/{models-BAyJ5pH0.js → models-CfZmiKuz.js} +1 -1
  167. package/dist/assets/{monitor-DXmTPW1a.js → monitor-C9bcD98n.js} +1 -1
  168. package/dist/assets/{mouse-pointer-2-BvRYkj_X.js → mouse-pointer-2-CKIVz57k.js} +1 -1
  169. package/dist/assets/music-2-CnpHN-4z.js +1 -0
  170. package/dist/assets/{nanobanana-DgnxEhaX.js → nanobanana-D36H-XIY.js} +1 -1
  171. package/dist/assets/{omni-B8DDnhRg.js → omni--0XcWQsP.js} +1 -1
  172. package/dist/assets/{openaiimage-DRmd8dzY.js → openaiimage-BNl3ubwb.js} +1 -1
  173. package/dist/assets/{pagination-Zcuxd8JC.js → pagination-CGAsm_gH.js} +1 -1
  174. package/dist/assets/{pagination-CFTXw3xu.js → pagination-CZulzVrG.js} +1 -1
  175. package/dist/assets/{pagination-DbhEDijW.js → pagination-CxGbe3zt.js} +1 -1
  176. package/dist/assets/{palette-BIXfAS5K.js → palette-D4wwPAFL.js} +1 -1
  177. package/dist/assets/{paperclip-CNvGU_N8.js → paperclip-D_Wm7SdY.js} +1 -1
  178. package/dist/assets/{pause-zy_6nymn.js → pause-Dz5XtZVA.js} +1 -1
  179. package/dist/assets/{pencil-DkYXjNh_.js → pencil-Cx8pvmc5.js} +1 -1
  180. package/dist/assets/{pika-x90m_BSl.js → pika-DgaMy98F.js} +1 -1
  181. package/dist/assets/{pixverse-CMjGSip0.js → pixverse-CGqnn0pH.js} +1 -1
  182. package/dist/assets/play-CzpWdcef.js +1 -0
  183. package/dist/assets/{plug-C7b6Pipr.js → plug-Bs6kWN-O.js} +1 -1
  184. package/dist/assets/plus-C9b56Sqj.js +1 -0
  185. package/dist/assets/{poivelle-BGGM0xYB.js → poivelle-4varOjms.js} +1 -1
  186. package/dist/assets/{popover-BS2yPfjg.js → popover-LyHxU6WZ.js} +1 -1
  187. package/dist/assets/{producer--r51orqd.js → producer-DdUC8NOg.js} +1 -1
  188. package/dist/assets/{qrart-vHdiIRDa.js → qrart-BOoiUz44.js} +1 -1
  189. package/dist/assets/{realtime-Cngzys8N.js → realtime-CLS9HIQM.js} +1 -1
  190. package/dist/assets/{refresh-cw-D8bDFb1i.js → refresh-cw-CUzT_oDu.js} +1 -1
  191. package/dist/assets/rotate-ccw-xw2yS9Ly.js +1 -0
  192. package/dist/assets/rotate-cw-BIq0i1nK.js +1 -0
  193. package/dist/assets/{row-CWrBj9xB.js → row-DFp6lzUY.js} +1 -1
  194. package/dist/assets/search-DYd0_Y9a.js +1 -0
  195. package/dist/assets/{seedance-BoOdIfcM.js → seedance-BEp7Wwm2.js} +1 -1
  196. package/dist/assets/{seedream-B2WSbp--.js → seedream-CKHjYulr.js} +1 -1
  197. package/dist/assets/{select-1w7Zpr6O.js → select-BpS-bYES.js} +1 -1
  198. package/dist/assets/{serp-D67hXb_0.js → serp-BfeSKGit.js} +1 -1
  199. package/dist/assets/{shield-DImarZG1.js → shield-CBgOMcFH.js} +1 -1
  200. package/dist/assets/{shuffle-jrwk-0R5.js → shuffle-BTU8mbfU.js} +1 -1
  201. package/dist/assets/{slider-B1_GHRb5.js → slider-BnJ21MN1.js} +1 -1
  202. package/dist/assets/{sliders-horizontal-KUkgCOdn.js → sliders-horizontal-B_DMl5Dn.js} +1 -1
  203. package/dist/assets/{solana-wallets-Dv1BiqAc.js → solana-wallets-D0SdGP8c.js} +2 -2
  204. package/dist/assets/{solana-wallets-vue-Dqm6hqrZ.js → solana-wallets-vue-DRCCtBjy.js} +1 -1
  205. package/dist/assets/{sora-DJERWbLd.js → sora-UsL7zDOL.js} +1 -1
  206. package/dist/assets/{sparkles-TMKxmA_C.js → sparkles-Djp80sa_.js} +1 -1
  207. package/dist/assets/square-B6AgmEI8.js +1 -0
  208. package/dist/assets/{store-CXxBY3lZ.js → store-2C23o8iJ.js} +1 -1
  209. package/dist/assets/{suno-CqHczeAx.js → suno-DVW0NoQE.js} +1 -1
  210. package/dist/assets/{switch-Ddz6wK95.js → switch-VRq5ipbW.js} +1 -1
  211. package/dist/assets/{table-D27hm8JC.js → table-BFFBn1XT.js} +1 -1
  212. package/dist/assets/{tabs-XDjg0hvL.js → tabs-CJ6H3uSi.js} +1 -1
  213. package/dist/assets/{tag-B1WyQD51.js → tag-CoDFojoH.js} +1 -1
  214. package/dist/assets/terminal-DHQKC33e.js +1 -0
  215. package/dist/assets/{time-picker-CdYyc8Bp.js → time-picker-BWbn-F5j.js} +1 -1
  216. package/dist/assets/{tooltip-CnN93uDP.js → tooltip-iglteC5t.js} +1 -1
  217. package/dist/assets/{trash-2-C5utNutX.js → trash-2-DXpwwp30.js} +1 -1
  218. package/dist/assets/{triangle-alert-DkHeaWG2.js → triangle-alert-BlTA75VV.js} +1 -1
  219. package/dist/assets/{upload-Bcc_2RIh.js → upload-BeiqlzEw.js} +1 -1
  220. package/dist/assets/{upload-CVuy8NY8.js → upload-jWHoCQb0.js} +1 -1
  221. package/dist/assets/user-CHNnnBrI.js +1 -0
  222. package/dist/assets/{veo-zDO64ca8.js → veo-ZCY3POsO.js} +1 -1
  223. package/dist/assets/{video-D_1cn8if.js → video-B4VaUcVJ.js} +1 -1
  224. package/dist/assets/{volume-2-C2qDPZzt.js → volume-2-Bg8G9NGT.js} +1 -1
  225. package/dist/assets/{wallet-Cbrc_KTc.js → wallet-Bh1qMcsQ.js} +1 -1
  226. package/dist/assets/{wan-CGoerQ1H.js → wan-CEePVa2e.js} +1 -1
  227. package/dist/assets/{wand-sparkles-Duz2fMGa.js → wand-sparkles-M6We7RZu.js} +1 -1
  228. package/dist/assets/{web-C4_WPIz7.js → web-10Bjd4d3.js} +1 -1
  229. package/dist/assets/{web-1UHsOk_H.js → web-BSrRo6Ox.js} +1 -1
  230. package/dist/assets/{web-DRQWt7l3.js → web-DmJtpVX_.js} +1 -1
  231. package/dist/assets/{web-CulIGmsl.js → web-ETCGCKka.js} +1 -1
  232. package/dist/assets/{web-ChMqK7uc.js → web-pypqD4p-.js} +1 -1
  233. package/dist/assets/{webextrator-CDUc8bpQ.js → webextrator-CEFICi59.js} +1 -1
  234. package/dist/assets/{zap-DDtjfRic.js → zap-B6cQ7gSm.js} +1 -1
  235. package/dist/favicon.ico +0 -0
  236. package/dist/index.html +5 -4
  237. package/package.json +1 -1
  238. package/dist/assets/ApiCodeButton-DpFaPPQc.css +0 -1
  239. package/dist/assets/ApiCodeButton-l1_BzkCH.js +0 -1
  240. package/dist/assets/Index-CejG1Bud.js +0 -1
  241. package/dist/assets/arrow-down-Bi7CLyGU.js +0 -1
  242. package/dist/assets/arrow-left-BQagie4B.js +0 -1
  243. package/dist/assets/arrow-right-Blty4CyS.js +0 -1
  244. package/dist/assets/arrow-up-C7M7_aoy.js +0 -1
  245. package/dist/assets/check-BXUMT8ed.js +0 -1
  246. package/dist/assets/chevron-down-BT59D8sk.js +0 -1
  247. package/dist/assets/chevron-right-CQ3zs56g.js +0 -1
  248. package/dist/assets/circle-check-BiuRUkJb.js +0 -1
  249. package/dist/assets/clock-BWo5B4kH.js +0 -1
  250. package/dist/assets/code-j4VlLDfA.js +0 -1
  251. package/dist/assets/esm-BNYyuGx2.js +0 -1
  252. package/dist/assets/favicon-kB9rzRjQ.ico +0 -0
  253. package/dist/assets/gauge-C_cegmx1.js +0 -1
  254. package/dist/assets/loader-circle-BPHNkdJW.js +0 -1
  255. package/dist/assets/music-2-wlAjwG7s.js +0 -1
  256. package/dist/assets/play-DqmUkkVt.js +0 -1
  257. package/dist/assets/plus-DYfT7DDK.js +0 -1
  258. package/dist/assets/rotate-ccw-BJYywQ9_.js +0 -1
  259. package/dist/assets/rotate-cw-DG_O3Vek.js +0 -1
  260. package/dist/assets/search-CWmYT17R.js +0 -1
  261. package/dist/assets/square-Dgb1FciS.js +0 -1
  262. package/dist/assets/terminal-CoJHnwAK.js +0 -1
  263. package/dist/assets/user-DSlDon3v.js +0 -1
@@ -1 +1 @@
1
- import"./rolldown-runtime--c01j_DQ.js";import{A as e,C as t,Gt as n,I as r,Jt as i,K as a,L as o,M as s,Mt as c,N as l,Q as u,S as d,St as f,T as p,Vt as m,Wt as h,b as g,ft as _,ht as v,it as y,j as b,k as x,mt as S,qt as C,rt as w,st as T,tt as E,wt as D,z as O}from"./vendor-chart-Dw-P17PN.js";import{$ as k,X as A,dt as ee,et as j,rt as te,st as ne,wt as re,xt as M}from"./icon-CDmWyIgD.js";import{a as N,c as P,t as F}from"./install-Cn-SLM3u.js";import{r as ie,t as I}from"./select-1w7Zpr6O.js";import{t as L}from"./use-aria-DApzlmKf.js";import{n as R,t as z}from"./form-BdKMEyCR.js";import{r as B,t as V}from"./event-BGnHezxC.js";import{_ as ae,h as oe,v as se}from"./models-BAyJ5pH0.js";import{a as ce,c as le,i as ue,n as de,r as fe}from"./use-deprecated-BAB4ggjd.js";import{t as pe}from"./input-number-D5Q8Bypi.js";import{t as me}from"./arrow-left-BQagie4B.js";import{t as he}from"./arrow-right-Blty4CyS.js";import{t as ge}from"./arrow-up-C7M7_aoy.js";import{t as _e}from"./box-BprjWv9J.js";import{t as H}from"./check-BXUMT8ed.js";import{t as ve}from"./chevron-down-BT59D8sk.js";import{t as ye}from"./chevron-right-CQ3zs56g.js";import{t as be}from"./copy-CE10KZzA.js";import{t as xe}from"./download-Db4cPdrm.js";import{t as U}from"./file-text-Cj-XHlv4.js";import{t as Se}from"./history--cQ6Ihwu.js";import{t as W}from"./house-ClnRE4Ga.js";import{t as Ce}from"./image-Cccgy4sa.js";import{t as we}from"./loader-circle-BPHNkdJW.js";import{t as G}from"./mouse-pointer-2-BvRYkj_X.js";import{t as K}from"./music-2-wlAjwG7s.js";import{t as Te}from"./play-DqmUkkVt.js";import{t as Ee}from"./plus-DYfT7DDK.js";import{t as De}from"./search-CWmYT17R.js";import{t as Oe}from"./sparkles-TMKxmA_C.js";import{t as ke}from"./trash-2-C5utNutX.js";import{t as Ae}from"./triangle-alert-DkHeaWG2.js";import{t as je}from"./upload-Bcc_2RIh.js";import{t as Me}from"./video-D_1cn8if.js";import{i as q}from"./i18n-D6da1vRb.js";import{Bi as J,Ci as Ne,Mi as Y,O as X,_i as Z,vi as Pe}from"./index-DCEwxRXS.js";import{t as Fe}from"./VideoPlayer-DdGrgCh3.js";var Ie={label:`label`,value:`value`,disabled:`disabled`},Le=k({direction:{type:j(String),default:`horizontal`},options:{type:j(Array),default:()=>[]},modelValue:{type:[String,Number,Boolean],default:void 0},props:{type:j(Object),default:()=>Ie},block:Boolean,size:A,disabled:Boolean,validateEvent:{type:Boolean,default:!0},id:String,name:String,...L([`ariaLabel`])}),Re={[B]:e=>h(e)||re(e)||M(e),[V]:e=>h(e)||re(e)||M(e)},ze=F(N(O({...O({name:`ElSegmented`}),props:Le,emits:Re,setup(t,{emit:a}){let o=t,u=P(`segmented`),d=le(),h=fe(),g=de(),{formItem:v}=ue(),{inputId:b,isLabeledByFormItem:S}=ce(o,{formItemContext:v}),T=D(null),O=ne(),k=f({isInit:!1,width:0,height:0,translateX:0,translateY:0,focusVisible:!1}),A=e=>{let t=re(e);a(B,t),a(V,t)},j=x(()=>({...Ie,...o.props})),re=e=>m(e)?e[j.value.value]:e,M=e=>m(e)?e[j.value.label]:e,N=e=>!!(g.value||m(e)&&e[j.value.disabled]),F=e=>o.modelValue===re(e),ie=e=>o.options.find(t=>re(t)===e),I=e=>[u.e(`item`),u.is(`selected`,F(e)),u.is(`disabled`,N(e))],L=()=>{if(!T.value)return;let e=T.value.querySelector(`.is-selected`),t=T.value.querySelector(`.is-selected input`);if(!e||!t){k.width=0,k.height=0,k.translateX=0,k.translateY=0,k.focusVisible=!1;return}let n=e.getBoundingClientRect();k.isInit=!0,o.direction===`vertical`?(k.height=n.height,k.translateY=e.offsetTop):(k.width=n.width,k.translateX=e.offsetLeft);try{k.focusVisible=t.matches(`:focus-visible`)}catch{}},R=x(()=>[u.b(),u.m(h.value),u.is(`block`,o.block)]),z=x(()=>({width:o.direction===`vertical`?`100%`:`${k.width}px`,height:o.direction===`vertical`?`${k.height}px`:`100%`,transform:o.direction===`vertical`?`translateY(${k.translateY}px)`:`translateX(${k.translateX}px)`,display:k.isInit?`block`:`none`})),ae=x(()=>[u.e(`item-selected`),u.is(`disabled`,N(ie(o.modelValue))),u.is(`focus-visible`,k.focusVisible)]),oe=x(()=>o.name||d.value);return ee(T,L),_(O,L),_(()=>o.modelValue,()=>{var e;L(),o.validateEvent&&((e=v?.validate)==null||e.call(v,`change`).catch(e=>te(e)))},{flush:`post`}),(t,a)=>t.options.length?(E(),l(`div`,{key:0,id:c(b),ref_key:`segmentedRef`,ref:T,class:n(c(R)),role:`radiogroup`,"aria-label":c(S)?void 0:t.ariaLabel||`segmented`,"aria-labelledby":c(S)?c(v).labelId:void 0},[e(`div`,{class:n([c(u).e(`group`),c(u).m(o.direction)])},[e(`div`,{style:C(c(z)),class:n(c(ae))},null,6),(E(!0),l(p,null,w(t.options,(a,o)=>(E(),l(`label`,{key:o,class:n(I(a))},[e(`input`,{class:n(c(u).e(`item-input`)),type:`radio`,name:c(oe),disabled:N(a),checked:F(a),onChange:e=>A(a)},null,42,[`name`,`disabled`,`checked`,`onChange`]),e(`div`,{class:n(c(u).e(`item-label`))},[y(t.$slots,`default`,{item:a},()=>[r(i(M(a)),1)])],2)],2))),128))],2)],10,[`id`,`aria-label`,`aria-labelledby`])):s(`v-if`,!0)}}),[[`__file`,`segmented.vue`]])),Be=Z(`audio-lines`,[[`path`,{d:`M2 10v3`,key:`1fnikh`}],[`path`,{d:`M6 6v11`,key:`11sgs0`}],[`path`,{d:`M10 3v18`,key:`yhl04a`}],[`path`,{d:`M14 8v7`,key:`3a1oy3`}],[`path`,{d:`M18 5v13`,key:`123xd1`}],[`path`,{d:`M22 10v3`,key:`154ddg`}]]),Ve=Z(`bot`,[[`path`,{d:`M12 8V4H8`,key:`hb8ula`}],[`rect`,{width:`16`,height:`12`,x:`4`,y:`8`,rx:`2`,key:`enze0r`}],[`path`,{d:`M2 14h2`,key:`vft8re`}],[`path`,{d:`M20 14h2`,key:`4cs60a`}],[`path`,{d:`M15 13v2`,key:`1xurst`}],[`path`,{d:`M9 13v2`,key:`rq6x2g`}]]),He=Z(`building-2`,[[`path`,{d:`M10 12h4`,key:`a56b0p`}],[`path`,{d:`M10 8h4`,key:`1sr2af`}],[`path`,{d:`M14 21v-3a2 2 0 0 0-4 0v3`,key:`1rgiei`}],[`path`,{d:`M6 10H4a2 2 0 0 0-2 2v7a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V9a2 2 0 0 0-2-2h-2`,key:`secmi2`}],[`path`,{d:`M6 21V5a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v16`,key:`16ra0t`}]]),Q=Z(`clapperboard`,[[`path`,{d:`m12.296 3.464 3.02 3.956`,key:`qash78`}],[`path`,{d:`M20.2 6 3 11l-.9-2.4c-.3-1.1.3-2.2 1.3-2.5l13.5-4c1.1-.3 2.2.3 2.5 1.3z`,key:`1h7j8b`}],[`path`,{d:`M3 11h18v8a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z`,key:`4lm6w1`}],[`path`,{d:`m6.18 5.276 3.1 3.899`,key:`zjj9t3`}]]),Ue=Z(`film`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}],[`path`,{d:`M7 3v18`,key:`bbkbws`}],[`path`,{d:`M3 7.5h4`,key:`zfgn84`}],[`path`,{d:`M3 12h18`,key:`1i2n21`}],[`path`,{d:`M3 16.5h4`,key:`1230mu`}],[`path`,{d:`M17 3v18`,key:`in4fa5`}],[`path`,{d:`M17 7.5h4`,key:`myr1c1`}],[`path`,{d:`M17 16.5h4`,key:`go4c1d`}]]),We=Z(`git-commit-horizontal`,[[`circle`,{cx:`12`,cy:`12`,r:`3`,key:`1v7zrd`}],[`line`,{x1:`3`,x2:`9`,y1:`12`,y2:`12`,key:`1dyftd`}],[`line`,{x1:`15`,x2:`21`,y1:`12`,y2:`12`,key:`oup4p8`}]]),Ge=Z(`git-branch`,[[`path`,{d:`M15 6a9 9 0 0 0-9 9V3`,key:`1cii5b`}],[`circle`,{cx:`18`,cy:`6`,r:`3`,key:`1h7g24`}],[`circle`,{cx:`6`,cy:`18`,r:`3`,key:`fqmcym`}]]),Ke=Z(`list-checks`,[[`path`,{d:`M13 5h8`,key:`a7qcls`}],[`path`,{d:`M13 12h8`,key:`h98zly`}],[`path`,{d:`M13 19h8`,key:`c3s6r1`}],[`path`,{d:`m3 17 2 2 4-4`,key:`1jhpwq`}],[`path`,{d:`m3 7 2 2 4-4`,key:`1obspn`}]]),qe=Z(`lock-keyhole`,[[`circle`,{cx:`12`,cy:`16`,r:`1`,key:`1au0dj`}],[`rect`,{x:`3`,y:`10`,width:`18`,height:`12`,rx:`2`,key:`6s8ecr`}],[`path`,{d:`M7 10V7a5 5 0 0 1 10 0v3`,key:`1pqi11`}]]),Je=Z(`rows-3`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}],[`path`,{d:`M21 9H3`,key:`1338ky`}],[`path`,{d:`M21 15H3`,key:`9uk58r`}]]),Ye=Z(`shield-check`,[[`path`,{d:`M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z`,key:`oel41y`}],[`path`,{d:`m9 12 2 2 4-4`,key:`dzmm74`}]]),Xe={class:`discovery-home`},Ze={class:`discovery-header`},Qe={class:`brand`},$e={class:`project-links`},et=[`title`,`aria-label`,`onClick`],$={key:0,class:`discovery-state`,role:`status`},tt={class:`creator`,"aria-labelledby":`poivelle-create-title`},nt={class:`creator-kicker`},rt={id:`poivelle-create-title`},it=[`aria-label`],at=[`disabled`,`onClick`],ot=[`placeholder`,`disabled`],st={class:`composer-footer`},ct=[`disabled`,`title`],lt={class:`prompt-starters`},ut=[`disabled`,`onClick`],dt={class:`works`,"aria-labelledby":`poivelle-works-title`},ft={class:`works-heading`},pt={id:`poivelle-works-title`},mt={class:`search`},ht=[`placeholder`,`aria-label`],gt={class:`category-tabs`},_t=[`onClick`],vt={class:`work-grid`},yt={class:`cover`},bt=[`src`,`alt`,`onError`],xt={key:2,class:`film-badge`},St=[`aria-label`,`onClick`],Ct={class:`duration-badge`},wt={class:`work-copy`},Tt={class:`work-meta`},Et={class:`work-actions`},Dt=[`onClick`],Ot=[`disabled`,`onClick`],kt={key:0,class:`film-dialog-heading`},At={id:`poivelle-film-dialog-title`},jt=X(O({__name:`DiscoveryHome`,emits:[`open-studio`],setup(a,{emit:d}){let f=d,m=ae(),h=x(()=>m.state.poivelle),_=x(()=>h.value?.projects??[]),y=x(()=>h.value?.discoveryWorks??[]),C=D(``),O=D(``),k=D(!1),A=D(),ee=D(new Set),j=D(`official:pulsecam`),te=D(`all`),ne=[{workId:`official:pulsecam`,label:`poivelle.discovery.commercial`,icon:Q},{workId:`official:moonlit-signal`,label:`poivelle.discovery.musicVideo`,icon:K},{workId:`official:northstar-origin`,label:`poivelle.discovery.documentary`,icon:He}],re=[`poivelle.discovery.starterProduct`,`poivelle.discovery.starterMusic`,`poivelle.discovery.starterDocumentary`],M=[{value:`all`,label:`poivelle.discovery.all`},{value:`commercial`,label:`poivelle.discovery.commercial`},{value:`music_video`,label:`poivelle.discovery.musicVideo`},{value:`narrative`,label:`poivelle.discovery.narrative`},{value:`documentary`,label:`poivelle.discovery.documentary`},{value:`community`,label:`poivelle.discovery.community`}],N=x(()=>{let e=O.value.trim().toLowerCase();return y.value.filter(t=>(te.value===`all`||t.category===te.value)&&(!e||`${t.title} ${t.description} ${t.creator_name} ${(t.tags??[]).join(` `)}`.toLowerCase().includes(e)))}),P=x(()=>h.value?.status?.bootstrap===oe.Request),F=x(()=>h.value?.error),ie=x({get:()=>!!A.value,set:e=>{e||(A.value=void 0)}}),I=x(()=>{let e=y.value.find(e=>e.id===j.value);return e&&e.copyable!==!1?e:y.value.find(e=>e.copyable!==!1)}),L=()=>m.dispatch(`poivelle/bootstrap`,{loadProject:!1}),R=e=>{ee.value=new Set([...ee.value,e])},z=e=>e.video_url?.startsWith(`https://`)?e.video_url:void 0,B=e=>{if(e&&typeof e==`object`&&`response`in e){let t=e.response?.data?.detail;if(typeof t==`string`)return t;if(typeof t?.message==`string`)return t.message}return e instanceof Error?e.message:q(`poivelle.error.generic`)},V=e=>{let t=Math.floor(e/60),n=e%60;return t?`${t}:${n.toString().padStart(2,`0`)}`:`0:${n.toString().padStart(2,`0`)}`},ce=async e=>{await m.dispatch(`poivelle/loadProject`,e),f(`open-studio`)},le=async(e,t)=>{if(!k.value){k.value=!0;try{await m.dispatch(`poivelle/copyDiscoveryWork`,{work_id:e.id,prompt:t,title:t.slice(0,80)}),f(`open-studio`)}catch(e){se.error(B(e))}finally{k.value=!1}}},ue=async()=>{let e=I.value;e&&C.value.trim()&&await le(e,C.value.trim())},de=async e=>{await le(e,C.value.trim()||`${q(`poivelle.discovery.copyPrefix`)} ${e.title}`)};return u(L),(a,u)=>(E(),l(`main`,Xe,[e(`header`,Ze,[e(`div`,Qe,[o(c(Q),{size:19,"aria-hidden":`true`}),u[3]||=r(` POIVELLE`,-1)]),e(`div`,$e,[(E(!0),l(p,null,w(_.value.slice(0,3),e=>(E(),l(`button`,{key:e.id,type:`button`,title:e.title,"aria-label":e.title,onClick:t=>ce(e.id)},[r(i(e.title)+` `,1),o(c(ye),{size:13,"aria-hidden":`true`})],8,et))),128))])]),P.value||F.value?(E(),l(`div`,$,[P.value?(E(),b(c(we),{key:0,size:16,class:`spinning`,"aria-hidden":`true`})):s(``,!0),e(`span`,null,i(P.value?a.$t(`poivelle.status.loading`):F.value),1),F.value?(E(),l(`button`,{key:1,type:`button`,onClick:L},i(a.$t(`poivelle.action.retry`)),1)):s(``,!0)])):s(``,!0),e(`section`,tt,[e(`p`,nt,i(a.$t(`poivelle.discovery.kicker`)),1),e(`h1`,rt,i(a.$t(`poivelle.discovery.title`)),1),e(`div`,{class:`mode-switch`,"aria-label":a.$t(`poivelle.discovery.skills`)},[(E(),l(p,null,w(ne,t=>e(`button`,{key:t.workId,type:`button`,class:n({active:j.value===t.workId}),disabled:P.value,onClick:e=>j.value=t.workId},[(E(),b(T(t.icon),{size:15,"aria-hidden":`true`})),r(` `+i(a.$t(t.label)),1)],10,at)),64))],8,it),e(`form`,{class:`composer`,onSubmit:t(ue,[`prevent`])},[v(e(`textarea`,{"onUpdate:modelValue":u[0]||=e=>C.value=e,placeholder:a.$t(`poivelle.discovery.placeholder`),disabled:P.value,maxlength:`500`,rows:`4`},null,8,ot),[[g,C.value]]),e(`div`,st,[e(`span`,null,i(C.value.length)+`/500`,1),e(`button`,{type:`submit`,disabled:!C.value.trim()||!I.value||P.value||k.value,title:a.$t(`poivelle.discovery.create`)},[k.value?(E(),b(c(we),{key:0,size:18,class:`spinning`,"aria-hidden":`true`})):(E(),b(c(ge),{key:1,size:18,"aria-hidden":`true`}))],8,ct)])],32),e(`div`,lt,[(E(),l(p,null,w(re,t=>e(`button`,{key:t,type:`button`,disabled:P.value,onClick:e=>C.value=a.$t(t)},i(a.$t(t)),9,ut)),64))])]),e(`section`,dt,[e(`div`,ft,[e(`div`,null,[e(`span`,null,i(a.$t(`poivelle.discovery.galleryKicker`)),1),e(`h2`,pt,i(a.$t(`poivelle.discovery.gallery`)),1)]),e(`label`,mt,[o(c(De),{size:16,"aria-hidden":`true`}),v(e(`input`,{"onUpdate:modelValue":u[1]||=e=>O.value=e,placeholder:a.$t(`poivelle.discovery.search`),"aria-label":a.$t(`poivelle.discovery.search`)},null,8,ht),[[g,O.value]])])]),e(`div`,gt,[(E(),l(p,null,w(M,t=>e(`button`,{key:t.value,type:`button`,class:n({active:te.value===t.value}),onClick:e=>te.value=t.value},i(a.$t(t.label)),11,_t)),64))]),e(`div`,vt,[(E(!0),l(p,null,w(N.value,t=>(E(),l(`article`,{key:t.id,class:`work-card`},[e(`div`,yt,[t.cover_url&&!ee.value.has(t.id)?(E(),l(`img`,{key:0,src:t.cover_url,alt:t.title,onError:e=>R(t.id)},null,40,bt)):(E(),b(c(Ue),{key:1,size:32,"aria-hidden":`true`})),z(t)?(E(),l(`span`,xt,i(a.$t(`poivelle.discovery.finishedFilm`)),1)):s(``,!0),z(t)?(E(),l(`button`,{key:3,type:`button`,class:`cover-play`,"aria-label":`${a.$t(`poivelle.discovery.playFilm`)}: ${t.title}`,onClick:e=>A.value=t},[o(c(Te),{size:18,fill:`currentColor`,"aria-hidden":`true`}),r(` `+i(a.$t(`poivelle.discovery.playFilm`)),1)],8,St)):s(``,!0),e(`span`,Ct,i(t.duration_seconds?V(t.duration_seconds):a.$t(`poivelle.discovery.community`)),1)]),e(`div`,wt,[e(`div`,Tt,[e(`span`,null,i(t.creator_name),1),e(`strong`,null,i(t.title),1),e(`p`,null,i(t.description),1)]),e(`div`,Et,[z(t)?(E(),l(`button`,{key:0,type:`button`,class:`play-button`,onClick:e=>A.value=t},[o(c(Te),{size:14,fill:`currentColor`,"aria-hidden":`true`}),r(` `+i(a.$t(`poivelle.discovery.play`)),1)],8,Dt)):s(``,!0),t.copyable===!1?s(``,!0):(E(),l(`button`,{key:1,type:`button`,class:`copy-button`,disabled:P.value||k.value,onClick:e=>de(t)},[o(c(be),{size:14,"aria-hidden":`true`}),r(` `+i(a.$t(`poivelle.discovery.copy`)),1)],8,Ot))])])]))),128))])]),o(c(Ne),{modelValue:ie.value,"onUpdate:modelValue":u[2]||=e=>ie.value=e,class:`film-preview-dialog`,"aria-labelledby":`poivelle-film-dialog-title`,width:`min(920px, calc(100vw - 32px))`,"align-center":``,"append-to-body":``,"destroy-on-close":``},{header:S(()=>[A.value?(E(),l(`div`,kt,[e(`span`,null,i(a.$t(`poivelle.discovery.finishedFilm`)),1),e(`strong`,At,i(A.value.title),1),e(`small`,null,[r(i(A.value.creator_name)+` `,1),A.value.duration_seconds?(E(),l(p,{key:0},[r(` · `+i(V(A.value.duration_seconds)),1)],64)):s(``,!0)])])):s(``,!0)]),default:S(()=>[A.value&&z(A.value)?(E(),b(Fe,{key:`${A.value.id}-${A.value.video_url}`,src:z(A.value)},null,8,[`src`])):s(``,!0)]),_:1},8,[`modelValue`])]))}}),[[`__scopeId`,`data-v-91feafb0`]]),Mt={class:`studio-header`},Nt={class:`identity`},Pt=[`title`],Ft={class:`wordmark`},It={key:0,class:`version`},Lt={class:`actions`},Rt={class:`sync-state`},zt=[`title`],Bt=[`disabled`],Vt=X(O({__name:`StudioHeader`,props:{projectTitle:{},graphVersion:{},canRun:{type:Boolean},canEdit:{type:Boolean},primaryLabel:{}},emits:[`open-projects`,`home`,`commit`,`run`],setup(t){return(n,a)=>(E(),l(`header`,Mt,[e(`div`,Nt,[e(`button`,{class:`home-button`,type:`button`,title:n.$t(`poivelle.discovery.back`),onClick:a[0]||=e=>n.$emit(`home`)},[o(c(me),{size:16,"aria-hidden":`true`})],8,Pt),e(`span`,Ft,[o(c(Q),{size:15,"aria-hidden":`true`}),a[4]||=r(` POIVELLE`,-1)]),e(`button`,{class:`project-button`,type:`button`,onClick:a[1]||=e=>n.$emit(`open-projects`)},[e(`span`,null,i(t.projectTitle||n.$t(`poivelle.project.noProject`)),1),o(c(ve),{size:14,"aria-hidden":`true`})]),t.graphVersion===void 0?s(``,!0):(E(),l(`span`,It,`Graph v`+i(t.graphVersion),1))]),e(`div`,Lt,[e(`span`,Rt,[a[5]||=e(`span`,{class:`sync-dot`},null,-1),r(` `+i(n.$t(`poivelle.status.synced`)),1)]),t.canEdit?(E(),l(`button`,{key:0,class:`icon-button`,type:`button`,title:n.$t(`poivelle.action.commit`),onClick:a[2]||=e=>n.$emit(`commit`)},[o(c(We),{size:17,"aria-hidden":`true`})],8,zt)):s(``,!0),e(`button`,{class:`primary-button`,type:`button`,disabled:!t.canRun,onClick:a[3]||=e=>n.$emit(`run`)},[o(c(Te),{size:15,fill:`currentColor`,"aria-hidden":`true`}),r(` `+i(t.primaryLabel||n.$t(`poivelle.action.runSkill`)),1)],8,Bt)])]))}}),[[`__scopeId`,`data-v-86d45f69`]]),Ht={class:`production-rail`},Ut={class:`rail-section`},Wt={class:`section-heading`},Gt=[`title`],Kt={class:`project-list`},qt=[`onClick`],Jt={key:0,class:`empty-copy`},Yt={class:`rail-section assets-section`},Xt={class:`section-heading`},Zt=[`title`],Qt={class:`asset-filters`},$t=[`onClick`],en={class:`asset-list`},tn={key:0,class:`empty-copy`},nn={class:`rail-section compact-section`},rn={class:`section-heading static`},an={class:`revision-list`},on={key:0,class:`empty-copy`},sn=X(O({__name:`ProductionRail`,props:{projects:{},currentProjectId:{},assets:{},revisions:{},canEdit:{type:Boolean}},emits:[`select-project`,`create-project`,`import-asset`],setup(t){let r=t,a=[`all`,`character`,`location`,`image`,`video`,`voice`],u=D(`all`),d=x(()=>u.value===`all`?r.assets:r.assets.filter(e=>e.kind===u.value)),f=e=>e===`video`?Me:e===`voice`||e===`music`||e===`sfx`?Be:e===`script`||e===`brand`?U:Ce;return(r,m)=>(E(),l(`aside`,Ht,[e(`div`,Ut,[e(`div`,Wt,[e(`span`,null,i(r.$t(`poivelle.section.projects`)),1),t.canEdit?(E(),l(`button`,{key:0,type:`button`,title:r.$t(`poivelle.project.create`),onClick:m[0]||=e=>r.$emit(`create-project`)},[o(c(Ee),{size:15,"aria-hidden":`true`})],8,Gt)):s(``,!0)]),e(`div`,Kt,[(E(!0),l(p,null,w(t.projects,a=>(E(),l(`button`,{key:a.id,type:`button`,class:n([`project-row`,{active:a.id===t.currentProjectId}]),onClick:e=>r.$emit(`select-project`,a.id)},[o(c(Q),{size:15,"aria-hidden":`true`}),e(`span`,null,i(a.title),1),e(`small`,null,`v`+i(a.graph_version),1)],10,qt))),128)),t.projects.length?s(``,!0):(E(),l(`p`,Jt,i(r.$t(`poivelle.project.empty`)),1))])]),e(`div`,Yt,[e(`div`,Xt,[e(`span`,null,i(r.$t(`poivelle.section.assets`)),1),t.canEdit?(E(),l(`button`,{key:0,type:`button`,title:r.$t(`poivelle.asset.import`),onClick:m[1]||=e=>r.$emit(`import-asset`)},[o(c(je),{size:15,"aria-hidden":`true`})],8,Zt)):s(``,!0)]),e(`div`,Qt,[(E(),l(p,null,w(a,t=>e(`button`,{key:t,type:`button`,class:n({active:u.value===t}),onClick:e=>u.value=t},i(t===`all`?r.$t(`poivelle.asset.all`):t),11,$t)),64))]),e(`div`,en,[(E(!0),l(p,null,w(d.value,t=>(E(),l(`button`,{key:t.id,type:`button`,class:`asset-row`},[(E(),b(T(f(t.kind)),{size:15,"aria-hidden":`true`})),e(`span`,null,[e(`strong`,null,i(t.title),1),e(`small`,null,i(t.kind)+` · `+i(t.scope),1)])]))),128)),d.value.length?s(``,!0):(E(),l(`p`,tn,i(r.$t(`poivelle.asset.empty`)),1))])]),e(`div`,nn,[e(`div`,rn,[e(`span`,null,i(r.$t(`poivelle.section.revisions`)),1),o(c(Se),{size:14,"aria-hidden":`true`})]),e(`div`,an,[(E(!0),l(p,null,w(t.revisions.slice(0,4),t=>(E(),l(`div`,{key:t.id,class:`revision-row`},[e(`span`,null,`R`+i(t.revision_number),1),e(`small`,null,`Graph v`+i(t.graph_version),1)]))),128)),t.revisions.length?s(``,!0):(E(),l(`p`,on,i(r.$t(`poivelle.revision.empty`)),1))])])]))}}),[[`__scopeId`,`data-v-71c6054d`]]),cn=[`aria-label`],ln=[`onClick`],un=X(O({__name:`ProjectionTabs`,props:{modelValue:{},canEdit:{type:Boolean}},emits:[`update:modelValue`,`create-node`],setup(t){let a=[{value:`overview`,label:`poivelle.projection.overview`,icon:W},{value:`canvas`,label:`poivelle.projection.advanced`,icon:Ge},{value:`storyboard`,label:`poivelle.projection.storyboard`,icon:Q},{value:`timeline`,label:`poivelle.projection.timeline`,icon:Je},{value:`review`,label:`poivelle.projection.review`,icon:Ke}];return(u,d)=>(E(),l(`nav`,{class:`projection-tabs`,"aria-label":u.$t(`poivelle.projection.label`)},[(E(),l(p,null,w(a,a=>e(`button`,{key:a.value,type:`button`,class:n({active:t.modelValue===a.value}),onClick:e=>u.$emit(`update:modelValue`,a.value)},[(E(),b(T(a.icon),{size:14,"aria-hidden":`true`})),r(` `+i(u.$t(a.label)),1)],10,ln)),64)),d[1]||=e(`span`,{class:`spacer`},null,-1),t.canEdit?(E(),l(`button`,{key:0,class:`add-node`,type:`button`,onClick:d[0]||=e=>u.$emit(`create-node`)},[o(c(Ee),{size:14,"aria-hidden":`true`}),r(` `+i(u.$t(`poivelle.node.create`)),1)])):s(``,!0)],8,cn))}}),[[`__scopeId`,`data-v-393d2d3e`]]),dn={class:`connections`,"aria-hidden":`true`},fn=[`x1`,`y1`,`x2`,`y2`],pn=[`onClick`],mn={class:`node-type`},hn={class:`node-summary`},gn={key:0,class:`lock-mark`},_n={key:0,class:`empty-canvas`},vn=X(O({__name:`GraphCanvas`,props:{graph:{},selectedNodeId:{},canEdit:{type:Boolean}},emits:[`select-node`,`create-node`],setup(a){let u=a,d=x(()=>new Map(u.graph.layouts.map(e=>[e.node_id,e]))),f=e=>{let t=u.graph.nodes.findIndex(t=>t.id===e);return{x:52+t%3*250,y:54+Math.floor(t/3)*170,width:208,height:116}},m=e=>d.value.get(e)??f(e),h=e=>{let t=m(e);return{x:t.x+t.width/2,y:t.y+t.height/2}},g=e=>{let t=m(e);return{left:`${t.x}px`,top:`${t.y}px`,width:`${t.width}px`,minHeight:`${t.height}px`}},_=x(()=>u.graph.edges.filter(e=>u.graph.nodes.some(t=>t.id===e.source.node_id)&&u.graph.nodes.some(t=>t.id===e.target.node_id))),v=e=>{let t=e.payload.text??e.payload.prompt??e.payload.description;return typeof t==`string`&&t?t:`Version ${e.version}`};return(u,d)=>(E(),l(`div`,{class:`graph-canvas`,onClick:d[1]||=t(e=>u.$emit(`select-node`,void 0),[`self`])},[(E(),l(`svg`,dn,[(E(!0),l(p,null,w(_.value,e=>(E(),l(`line`,{key:e.id,x1:h(e.source.node_id).x,y1:h(e.source.node_id).y,x2:h(e.target.node_id).x,y2:h(e.target.node_id).y},null,8,fn))),128))])),(E(!0),l(p,null,w(a.graph.nodes,f=>(E(),l(`button`,{key:f.id,type:`button`,class:n([`graph-node`,`type-${f.node_type}`,{selected:f.id===a.selectedNodeId}]),style:C(g(f.id)),onClick:t(e=>u.$emit(`select-node`,f.id),[`stop`])},[e(`span`,mn,i(f.node_type),1),e(`strong`,null,i(f.title),1),e(`span`,hn,i(v(f)),1),f.locked_paths.length?(E(),l(`span`,gn,[o(c(qe),{size:11}),d[2]||=r(` locked`,-1)])):s(``,!0)],14,pn))),128)),a.graph.nodes.length?s(``,!0):(E(),l(`div`,_n,[o(c(Ge),{size:28,"stroke-width":`1.5`,"aria-hidden":`true`}),e(`h2`,null,i(u.$t(`poivelle.graph.emptyTitle`)),1),e(`p`,null,i(u.$t(`poivelle.graph.emptyBody`)),1),a.canEdit?(E(),l(`button`,{key:0,type:`button`,onClick:d[0]||=e=>u.$emit(`create-node`)},[o(c(Ee),{size:15,"aria-hidden":`true`}),r(` `+i(u.$t(`poivelle.node.create`)),1)])):s(``,!0)]))]))}}),[[`__scopeId`,`data-v-cd67c1fc`]]),yn={class:`media-lane`},bn={key:0,class:`candidate-strip`},xn=[`src`],Sn=[`src`],Cn=[`onClick`],wn={key:1},Tn=[`onClick`],En={key:1,class:`unavailable-takes`},Dn={key:2,class:`empty-candidates`},On=X(O({__name:`StoryboardMediaLane`,props:{title:{},kind:{},nodeIds:{},artifacts:{},takes:{},selections:{},canEdit:{type:Boolean},canSelect:{type:Boolean}},emits:[`select-node`,`select-take`],setup(t){let r=t,a=x(()=>{let e=new Set(r.nodeIds),t=new Map(r.artifacts.map(e=>[e.id,e])),n=r.takes.filter(t=>e.has(t.target_node_id)&&t.state===`ready`).flatMap(e=>[...new Set(e.artifact_ids)].map(e=>t.get(e)).filter(e=>!!e).map(t=>({key:`${e.id}:${t.id}`,take:e,artifact:t,selected:r.selections.some(t=>t.target_node_id===e.target_node_id&&t.take_id===e.id)}))),i=new Set(n.map(e=>e.artifact.id)),a=r.artifacts.filter(t=>e.has(t.node_id??``)&&t.kind===r.kind&&!i.has(t.id)).map(e=>({key:e.id,take:void 0,artifact:e,selected:!1}));return[...n,...a]}),o=x(()=>r.takes.filter(e=>r.nodeIds.includes(e.target_node_id)&&e.state!==`ready`)),c=D([]),u=e=>{c.value=c.value.includes(e)?c.value.filter(t=>t!==e):[...c.value.slice(-1),e]};return(r,d)=>(E(),l(`section`,yn,[e(`header`,null,[e(`span`,null,i(t.title),1),t.nodeIds[0]?(E(),l(`button`,{key:0,type:`button`,onClick:d[0]||=e=>r.$emit(`select-node`,t.nodeIds[0])},i(r.$t(`poivelle.storyboard.openNode`)),1)):s(``,!0)]),a.value.length?(E(),l(`div`,bn,[(E(!0),l(p,null,w(a.value,a=>(E(),l(`article`,{key:a.key,class:n([`candidate`,{selected:a.selected,comparing:c.value.includes(a.key)}])},[t.kind===`image`?(E(),l(`img`,{key:0,src:a.artifact.storage_url,alt:``},null,8,xn)):(E(),l(`video`,{key:1,src:a.artifact.storage_url,controls:``,preload:`metadata`},null,8,Sn)),e(`div`,null,[e(`span`,null,i(a.take?`TAKE`:`ARTIFACT`),1),e(`strong`,null,i(a.artifact.id.slice(-8)),1),t.canEdit&&t.canSelect&&a.take&&!a.selected?(E(),l(`button`,{key:0,type:`button`,onClick:e=>r.$emit(`select-take`,{target_node_id:a.take.target_node_id,take_id:a.take.id})},i(r.$t(`poivelle.storyboard.selectTake`)),9,Cn)):a.selected?(E(),l(`em`,wn,i(r.$t(`poivelle.storyboard.selected`)),1)):s(``,!0),e(`button`,{type:`button`,class:`compare-toggle`,onClick:e=>u(a.key)},i(c.value.includes(a.key)?r.$t(`poivelle.storyboard.comparing`):r.$t(`poivelle.storyboard.compare`)),9,Tn)])],2))),128))])):s(``,!0),o.value.length?(E(),l(`div`,En,[(E(!0),l(p,null,w(o.value,e=>(E(),l(`span`,{key:e.id},i(e.state===`failed`?r.$t(`poivelle.storyboard.failedTake`):r.$t(`poivelle.storyboard.restrictedTake`)),1))),128))])):s(``,!0),!a.value.length&&!o.value.length?(E(),l(`div`,Dn,i(r.$t(`poivelle.storyboard.noCandidates`)),1)):s(``,!0)]))}}),[[`__scopeId`,`data-v-4e385f6a`]]),kn={class:`storyboard-view`},An={key:0,class:`storyboard-heading`},jn={class:`section-label`},Mn=[`onClick`],Nn={class:`shot-number`},Pn={class:`shot-production`},Fn={class:`shot-metadata`},In={class:`prompt-columns`},Ln={class:`candidate-columns`},Rn=[`onClick`],zn={key:0,class:`empty-view`},Bn=X(O({__name:`StoryboardView`,props:{graph:{},storyboard:{},artifacts:{},takes:{},selections:{},selectedNodeId:{},canEdit:{type:Boolean},canSelect:{type:Boolean}},emits:[`select-node`,`select-take`],setup(t){let r=t,a=x(()=>r.storyboard?.sections.reduce((e,t)=>e+t.shots.length,0)??0),u=x(()=>r.graph.nodes.filter(e=>[`storyboard`,`scene`,`shot`,`image`,`video`].includes(e.node_type)));return(r,d)=>(E(),l(`div`,kn,[t.storyboard?(E(),l(`header`,An,[e(`div`,null,[e(`span`,null,i(t.storyboard.schema_ref),1),e(`h2`,null,i(t.storyboard.title),1)]),e(`dl`,null,[e(`div`,null,[e(`dt`,null,i(r.$t(`poivelle.storyboard.product`)),1),e(`dd`,null,i(t.storyboard.product_name),1)]),e(`div`,null,[e(`dt`,null,i(r.$t(`poivelle.storyboard.duration`)),1),e(`dd`,null,i(t.storyboard.target_duration_seconds)+`s`,1)]),e(`div`,null,[e(`dt`,null,i(r.$t(`poivelle.storyboard.shots`)),1),e(`dd`,null,i(a.value),1)])])])):s(``,!0),t.storyboard?(E(!0),l(p,{key:1},w(t.storyboard.sections,a=>(E(),l(`section`,{key:a.id,class:`story-section`},[e(`div`,jn,[e(`span`,null,i(String(a.order).padStart(2,`0`)),1),e(`h3`,null,i(a.title),1)]),(E(!0),l(p,null,w(a.shots,a=>(E(),l(`article`,{key:a.row.id,class:n([`shot-row`,{selected:a.shot_node_id===t.selectedNodeId}])},[e(`button`,{class:`shot-brief`,type:`button`,onClick:e=>r.$emit(`select-node`,a.shot_node_id)},[e(`span`,Nn,`SHOT `+i(String(a.row.shot_number).padStart(2,`0`)),1),e(`strong`,null,i(a.row.plot_description),1),e(`span`,null,i(a.row.duration_seconds)+`s · `+i(a.row.shot_size),1)],8,Mn),e(`div`,Pn,[e(`dl`,Fn,[e(`div`,null,[e(`dt`,null,i(r.$t(`poivelle.storyboard.action`)),1),e(`dd`,null,i(a.row.character_action||`—`),1)]),e(`div`,null,[e(`dt`,null,i(r.$t(`poivelle.storyboard.emotion`)),1),e(`dd`,null,i(a.row.emotion||`—`),1)]),e(`div`,null,[e(`dt`,null,i(r.$t(`poivelle.storyboard.lighting`)),1),e(`dd`,null,i(a.row.lighting_and_atmosphere),1)]),e(`div`,null,[e(`dt`,null,i(r.$t(`poivelle.storyboard.audio`)),1),e(`dd`,null,i(a.row.audio_effects),1)])]),e(`div`,In,[e(`div`,null,[e(`span`,null,i(r.$t(`poivelle.storyboard.imagePrompt`)),1),e(`p`,null,i(a.row.image_generation_prompt),1)]),e(`div`,null,[e(`span`,null,i(r.$t(`poivelle.storyboard.motionPrompt`)),1),e(`p`,null,i(a.row.video_motion_prompt),1)])])]),e(`div`,Ln,[o(On,{title:r.$t(`poivelle.storyboard.frames`),kind:`image`,"node-ids":a.image_node_ids,artifacts:t.artifacts,takes:t.takes,selections:t.selections,"can-edit":t.canEdit,"can-select":t.canSelect,onSelectNode:d[0]||=e=>r.$emit(`select-node`,e),onSelectTake:d[1]||=e=>r.$emit(`select-take`,e)},null,8,[`title`,`node-ids`,`artifacts`,`takes`,`selections`,`can-edit`,`can-select`]),o(On,{title:r.$t(`poivelle.storyboard.motion`),kind:`video`,"node-ids":a.video_node_ids,artifacts:t.artifacts,takes:t.takes,selections:t.selections,"can-edit":t.canEdit,"can-select":t.canSelect,onSelectNode:d[2]||=e=>r.$emit(`select-node`,e),onSelectTake:d[3]||=e=>r.$emit(`select-take`,e)},null,8,[`title`,`node-ids`,`artifacts`,`takes`,`selections`,`can-edit`,`can-select`])])],2))),128))]))),128)):(E(),l(p,{key:2},[(E(!0),l(p,null,w(u.value,(a,s)=>(E(),l(`button`,{key:a.id,type:`button`,class:n([`legacy-card`,{selected:a.id===t.selectedNodeId}]),onClick:e=>r.$emit(`select-node`,a.id)},[e(`span`,null,i(String(s+1).padStart(2,`0`)),1),o(c(Q),{size:26,"stroke-width":`1.25`,"aria-hidden":`true`}),e(`strong`,null,i(a.title),1)],10,Rn))),128)),u.value.length?s(``,!0):(E(),l(`div`,zn,[o(c(Q),{size:30,"stroke-width":`1.4`}),e(`h2`,null,i(r.$t(`poivelle.storyboard.emptyTitle`)),1),e(`p`,null,i(r.$t(`poivelle.storyboard.emptyBody`)),1)]))],64))]))}}),[[`__scopeId`,`data-v-ce90da94`]]),Vn={class:`timeline-view`},Hn={key:0,class:`master-output`,"aria-labelledby":`poivelle-master-title`},Un={class:`master-heading`},Wn={class:`master-kicker`},Gn={id:`poivelle-master-title`},Kn=[`href`],qn=[`src`,`aria-label`],Jn={key:0,class:`master-status`,role:`status`},Yn={key:1,class:`master-status is-error`,role:`alert`},Xn={class:`master-metadata`},Zn={class:`timeline-ruler`},Qn={key:1,class:`tracks`},$n={class:`track-label`},er={class:`track-lane`},tr=[`title`],nr=[`aria-label`],rr={key:0,class:`clip-actions`},ir=[`disabled`,`onClick`],ar=[`disabled`,`onClick`],or={key:2,class:`empty-timeline`},sr=120/5e3,cr=X(O({__name:`TimelineView`,props:{timeline:{},graph:{},artifacts:{},canEdit:{type:Boolean}},emits:[`move-clip`],setup(t){let n=t,a=x(()=>{let e=new Set(n.graph.nodes.filter(e=>e.node_type===`composition`).map(e=>e.id));return[...n.artifacts??[]].filter(t=>t.kind===`video`&&t.state===`committed`&&t.restriction_watermark===0&&!!t.node_id&&e.has(t.node_id)&&t.metadata?.operation===`compose.timeline@1`).sort((e,t)=>t.created_at.localeCompare(e.created_at))[0]}),u=D(!0),d=D(!1);_(()=>a.value?.id,()=>{u.value=!0,d.value=!1});let f=()=>{u.value=!0,d.value=!1},m=()=>{u.value=!1,d.value=!0},h=e=>{let t=a.value?.metadata?.[e];return typeof t==`number`&&Number.isFinite(t)?t:void 0},g=x(()=>{let e=h(`duration_ms`);return e===void 0?`—`:`${(e/1e3).toFixed(1)}s`}),v=x(()=>{let e=h(`width`),t=h(`height`);return e&&t?`${e} × ${t}`:`—`}),y=x(()=>{let e=h(`width`),t=h(`height`);return e&&t?{aspectRatio:`${e} / ${t}`}:void 0}),b=e=>n.timeline?.clips.filter(t=>t.track_id===e)??[],S=e=>e.artifact_id.slice(-6),T=e=>({left:`${e.timeline_start_ms*sr}px`,width:`${Math.max(48,(e.source_out_ms-e.source_in_ms)/(e.speed??1)*sr)}px`});return(n,_)=>(E(),l(`div`,Vn,[a.value?(E(),l(`section`,Hn,[e(`div`,Un,[e(`div`,null,[e(`span`,Wn,i(n.$t(`poivelle.timeline.deliverable`)),1),e(`h2`,Gn,i(n.$t(`poivelle.timeline.masterTitle`)),1)]),e(`a`,{class:`master-download`,href:a.value.storage_url,target:`_blank`,rel:`noopener noreferrer`,download:``},[o(c(xe),{size:15,"aria-hidden":`true`}),r(` `+i(n.$t(`poivelle.timeline.download`)),1)],8,Kn)]),e(`div`,{class:`master-media`,style:C(y.value)},[e(`video`,{class:`master-player`,src:a.value.storage_url,"aria-label":n.$t(`poivelle.timeline.playerLabel`),controls:``,playsinline:``,preload:`metadata`,onLoadstart:f,onLoadedmetadata:_[0]||=e=>u.value=!1,onCanplay:_[1]||=e=>u.value=!1,onError:m},null,40,qn),u.value&&!d.value?(E(),l(`div`,Jn,[o(c(we),{size:24,class:`is-spinning`,"aria-hidden":`true`}),e(`span`,null,i(n.$t(`poivelle.timeline.loading`)),1)])):s(``,!0),d.value?(E(),l(`div`,Yn,[o(c(Ae),{size:24,"aria-hidden":`true`}),e(`span`,null,i(n.$t(`poivelle.timeline.loadError`)),1)])):s(``,!0)],4),e(`dl`,Xn,[e(`div`,null,[e(`dt`,null,i(n.$t(`poivelle.timeline.duration`)),1),e(`dd`,null,i(g.value),1)]),e(`div`,null,[e(`dt`,null,i(n.$t(`poivelle.timeline.frame`)),1),e(`dd`,null,i(v.value),1)]),e(`div`,null,[e(`dt`,null,i(n.$t(`poivelle.timeline.videoClips`)),1),e(`dd`,null,i(h(`video_clips`)??`—`),1)]),e(`div`,null,[e(`dt`,null,i(n.$t(`poivelle.timeline.audioClips`)),1),e(`dd`,null,i(h(`audio_clips`)??`—`),1)])])])):s(``,!0),e(`div`,Zn,[(E(),l(p,null,w(10,t=>e(`span`,{key:t},i((t-1)*5)+`s`,1)),64))]),t.timeline?.tracks.length?(E(),l(`div`,Qn,[(E(!0),l(p,null,w(t.timeline.tracks,r=>(E(),l(`div`,{key:r.id,class:`track-row`},[e(`div`,$n,i(r.title||r.kind||r.id),1),e(`div`,er,[(E(!0),l(p,null,w(b(r.id),(a,o)=>(E(),l(`div`,{key:a.id,class:`timeline-clip`,style:C(T(a)),title:a.artifact_id},[e(`button`,{type:`button`,"aria-label":a.artifact_id},i(S(a)),9,nr),t.canEdit&&r.kind===`video`?(E(),l(`span`,rr,[e(`button`,{type:`button`,disabled:o===0,onClick:e=>n.$emit(`move-clip`,{trackId:r.id,clipId:a.id,direction:-1})},` ‹ `,8,ir),e(`button`,{type:`button`,disabled:o===b(r.id).length-1,onClick:e=>n.$emit(`move-clip`,{trackId:r.id,clipId:a.id,direction:1})},` › `,8,ar)])):s(``,!0)],12,tr))),128))])]))),128))])):(E(),l(`div`,or,[o(c(Ue),{size:30,"stroke-width":`1.4`}),e(`h2`,null,i(n.$t(`poivelle.timeline.emptyTitle`)),1),e(`p`,null,i(n.$t(`poivelle.timeline.emptyBody`)),1)]))]))}}),[[`__scopeId`,`data-v-37eb37c8`]]),lr={class:`review-view`},ur={class:`review-summary`},dr={class:`eyebrow`},fr={class:`summary-metrics`},pr={class:`review-columns`},mr={key:0,class:`item-actions`},hr=[`onClick`],gr={key:0,class:`empty-copy`},_r=[`onClick`],vr=[`onClick`],yr={key:0,class:`empty-copy`},br={key:1,class:`run-detail`},xr={key:0},Sr=[`onClick`],Cr={key:2,class:`forensic-failures`,role:`alert`},wr=X(O({__name:`ReviewView`,props:{graph:{},proposals:{},revisions:{},runs:{},activeRun:{},evaluations:{},forensicValidations:{},costs:{},canEdit:{type:Boolean}},emits:[`reject-proposal`,`cancel-run`,`open-run`,`retry-step`],setup(a){let o=a,c=x(()=>o.proposals.filter(e=>e.state===`awaiting_approval`)),u=e=>![`release_pending`,`succeeded`,`failed`,`cancelled`].includes(e.state),d=x(()=>o.evaluations.filter(e=>e.verdict===`pass`).length),f=x(()=>o.forensicValidations[0]),m=x(()=>f.value?.result.checks.filter(e=>e.verdict===`fail`)??[]),h=e=>[...o.activeRun?.attempts??[]].filter(t=>t.step_run_id===e).sort((e,t)=>t.created_at.localeCompare(e.created_at))[0],g=e=>(e/1e6).toFixed(2);return(o,_)=>(E(),l(`div`,lr,[e(`section`,ur,[e(`div`,null,[e(`span`,dr,i(o.$t(`poivelle.review.heading`)),1),e(`h2`,null,i(a.revisions.length?`Revision ${a.revisions[0].revision_number}`:o.$t(`poivelle.review.noRevision`)),1)]),e(`div`,fr,[e(`span`,null,[e(`strong`,null,i(a.graph.nodes.length),1),r(i(o.$t(`poivelle.review.nodes`)),1)]),e(`span`,null,[e(`strong`,null,i(a.proposals.length),1),r(i(o.$t(`poivelle.review.proposals`)),1)]),e(`span`,null,[e(`strong`,null,i(a.runs.length),1),r(i(o.$t(`poivelle.review.runs`)),1)]),e(`span`,null,[e(`strong`,null,i(g(a.costs?.totals_microcredits.final??0)),1),r(i(o.$t(`poivelle.review.finalCost`)),1)]),e(`span`,null,[e(`strong`,null,i(d.value)+`/`+i(a.evaluations.length),1),r(i(o.$t(`poivelle.review.qualityChecks`)),1)]),e(`span`,null,[e(`strong`,{class:n(f.value?.result.verdict===`fail`?`metric-fail`:``)},i(f.value?.result.verdict??`—`),3),r(i(o.$t(`poivelle.review.forensics`)),1)])])]),e(`section`,pr,[e(`div`,null,[e(`h3`,null,i(o.$t(`poivelle.review.pendingProposals`)),1),(E(!0),l(p,null,w(c.value,t=>(E(),l(`article`,{key:t.id,class:`review-item`},[e(`span`,{class:n([`risk`,`risk-${t.risk_class}`])},i(t.risk_class),3),e(`strong`,null,i(t.intent),1),e(`p`,null,i(t.rationale),1),a.canEdit?(E(),l(`div`,mr,[e(`span`,null,i(o.$t(`poivelle.review.approvalTokenRequired`)),1),e(`button`,{type:`button`,onClick:e=>o.$emit(`reject-proposal`,t.id)},i(o.$t(`poivelle.review.reject`)),9,hr)])):s(``,!0)]))),128)),c.value.length?s(``,!0):(E(),l(`p`,gr,i(o.$t(`poivelle.review.noProposals`)),1))]),e(`div`,null,[e(`h3`,null,i(o.$t(`poivelle.review.execution`)),1),(E(!0),l(p,null,w(a.runs,r=>(E(),l(`article`,{key:r.id,class:n([`run-item`,{active:a.activeRun?.run.id===r.id}]),onClick:e=>o.$emit(`open-run`,r.id)},[e(`span`,{class:n([`run-state`,`state-${r.state}`])},null,2),e(`div`,null,[e(`strong`,null,i(r.state),1),e(`small`,null,i(r.id),1)]),a.canEdit&&u(r)?(E(),l(`button`,{key:0,type:`button`,class:`cancel-run`,onClick:t(e=>o.$emit(`cancel-run`,r.id),[`stop`])},i(o.$t(`poivelle.run.cancel`)),9,vr)):s(``,!0)],10,_r))),128)),a.runs.length?s(``,!0):(E(),l(`p`,yr,i(o.$t(`poivelle.review.noRuns`)),1)),a.activeRun?(E(),l(`section`,br,[e(`header`,null,[e(`strong`,null,i(o.$t(`poivelle.review.runDetail`)),1),e(`span`,null,i(a.activeRun.attempts.length)+` `+i(o.$t(`poivelle.review.attempts`)),1)]),(E(!0),l(p,null,w(a.activeRun.steps,r=>(E(),l(`article`,{key:r.id,class:`step-item`},[e(`span`,{class:n([`run-state`,`state-${r.state}`])},null,2),e(`div`,null,[e(`strong`,null,i(r.operation),1),e(`small`,null,i(r.state)+` · `+i(r.node_id),1),h(r.id)?.error?(E(),l(`p`,xr,i(h(r.id)?.error?.code??`provider_error`)+`: `+i(h(r.id)?.error?.message??o.$t(`poivelle.error.generic`)),1)):s(``,!0)]),a.canEdit&&[`failed`,`manual_recovery`].includes(r.state)?(E(),l(`button`,{key:0,type:`button`,class:`retry-step`,onClick:t(e=>o.$emit(`retry-step`,r),[`stop`])},i(o.$t(`poivelle.review.retryStep`)),9,Sr)):s(``,!0)]))),128))])):s(``,!0),m.value.length?(E(),l(`section`,Cr,[e(`strong`,null,i(o.$t(`poivelle.review.forensics`)),1),(E(!0),l(p,null,w(m.value,e=>(E(),l(`p`,{key:e.code},i(e.code)+` · `+i(String(e.actual??`—`))+` / `+i(String(e.expected??`—`)),1))),128))])):s(``,!0)])])]))}}),[[`__scopeId`,`data-v-e66361d5`]]),Tr={class:`inspector-panel`},Er={class:`inspector-heading`},Dr={class:`field`},Or={class:`field`},kr=[`value`],Ar={class:`field grow`},jr={class:`node-meta`},Mr={key:1,class:`empty-inspector`},Nr=X(O({__name:`InspectorPanel`,props:{node:{}},emits:[`update`,`delete`],setup(t,{emit:n}){let a=t,s=n,u=D(``),f=D(``);_(()=>a.node,e=>{u.value=e?.title??``;let t=e?.payload.prompt??e?.payload.text??``;f.value=typeof t==`string`?t:``},{immediate:!0});let m=x(()=>a.node?a.node.node_type===`video`?Me:a.node.node_type===`audio`?Be:[`shot`,`scene`,`storyboard`].includes(a.node.node_type)?Q:[`image`,`character`,`location`].includes(a.node.node_type)?Ce:a.node.node_type===`script`||a.node.node_type===`text`?U:_e:G),h=()=>{let e=u.value.trim();a.node&&e&&e!==a.node.title&&s(`update`,{path:`/title`,value:e})},y=()=>{if(!a.node)return;let e=a.node.payload.prompt===void 0?`text`:`prompt`;f.value!==a.node.payload[e]&&s(`update`,{path:`/payload/${e}`,value:f.value})};return(n,a)=>(E(),l(`aside`,Tr,[e(`div`,Er,[e(`div`,null,[e(`span`,null,i(n.$t(`poivelle.section.inspector`)),1),e(`strong`,null,i(t.node?.title||n.$t(`poivelle.inspector.noSelection`)),1)]),(E(),b(T(m.value),{size:18,"aria-hidden":`true`}))]),t.node?(E(),l(p,{key:0},[e(`label`,Dr,[e(`span`,null,i(n.$t(`poivelle.field.title`)),1),v(e(`input`,{"onUpdate:modelValue":a[0]||=e=>u.value=e,type:`text`,onBlur:h,onKeydown:d(h,[`enter`])},null,544),[[g,u.value]])]),e(`label`,Or,[e(`span`,null,i(n.$t(`poivelle.field.type`)),1),e(`input`,{value:t.node.node_type,type:`text`,disabled:``},null,8,kr)]),e(`label`,Ar,[e(`span`,null,i(n.$t(`poivelle.field.prompt`)),1),v(e(`textarea`,{"onUpdate:modelValue":a[1]||=e=>f.value=e,rows:`8`,onBlur:y},null,544),[[g,f.value]])]),e(`div`,jr,[a[3]||=e(`span`,null,`NODE`,-1),e(`code`,null,i(t.node.id),1),a[4]||=e(`span`,null,`VERSION`,-1),e(`code`,null,i(t.node.version),1)]),e(`button`,{class:`danger-button`,type:`button`,onClick:a[2]||=e=>n.$emit(`delete`)},[o(c(ke),{size:14,"aria-hidden":`true`}),r(` `+i(n.$t(`poivelle.node.delete`)),1)])],64)):(E(),l(`div`,Mr,[o(c(G),{size:24,"stroke-width":`1.4`}),e(`p`,null,i(n.$t(`poivelle.inspector.empty`)),1)]))]))}}),[[`__scopeId`,`data-v-7a6ae318`]]),Pr={class:`agent-dock`},Fr={class:`agent-identity`},Ir={class:`proposal-strip`},Lr=[`onClick`],Rr={key:0},zr=[`disabled`],Br=X(O({__name:`AgentDock`,props:{proposals:{},selectedNodeId:{},skill:{},canEdit:{type:Boolean}},emits:[`run`,`open-proposal`],setup(t){let a=t,u=x(()=>a.proposals.filter(e=>e.state===`awaiting_approval`));return(a,d)=>(E(),l(`section`,Pr,[e(`div`,Fr,[o(c(Ve),{size:16,"aria-hidden":`true`}),e(`div`,null,[e(`strong`,null,i(a.$t(`poivelle.agent.title`)),1),e(`span`,null,i(t.skill),1)])]),e(`div`,Ir,[(E(!0),l(p,null,w(u.value,t=>(E(),l(`button`,{key:t.id,type:`button`,onClick:e=>a.$emit(`open-proposal`,t.id)},[e(`span`,{class:n([`risk-dot`,`risk-${t.risk_class}`])},null,2),e(`strong`,null,i(t.intent),1),e(`small`,null,i(t.state),1)],8,Lr))),128)),u.value.length?s(``,!0):(E(),l(`p`,Rr,i(a.$t(`poivelle.agent.noProposals`)),1))]),t.canEdit?(E(),l(`button`,{key:0,class:`agent-button`,type:`button`,disabled:!t.selectedNodeId,onClick:d[0]||=e=>a.$emit(`run`)},[o(c(Oe),{size:15,"aria-hidden":`true`}),r(` `+i(a.$t(`poivelle.agent.plan`)),1)],8,zr)):s(``,!0)]))}}),[[`__scopeId`,`data-v-81fac9f8`]]),Vr={class:`project-guide`,"aria-labelledby":`project-guide-title`},Hr={class:`guide-copy`},Ur={id:`project-guide-title`},Wr={class:`guide-body`},Gr={class:`project-facts`},Kr={class:`guide-actions`},qr=[`disabled`],Jr={class:`cost-note`},Yr={class:`production-steps`},Xr={class:`done`},Zr=[`value`,`max`],Qr=[`value`,`max`],$r=X(O({__name:`ProjectGuide`,props:{projectTitle:{},graph:{},storyboard:{},artifacts:{},takes:{},selections:{},canEdit:{type:Boolean},busy:{type:Boolean}},emits:[`generate-node`,`open-storyboard`],setup(t){let a=t,u=x(()=>a.storyboard?a.storyboard.sections.flatMap(e=>e.shots.flatMap(e=>e.image_node_ids)):a.graph.nodes.filter(e=>e.node_type===`image`).map(e=>e.id)),d=x(()=>a.storyboard?a.storyboard.sections.flatMap(e=>e.shots.flatMap(e=>e.video_node_ids)):a.graph.nodes.filter(e=>e.node_type===`video`).map(e=>e.id)),f=x(()=>new Set([...a.artifacts.filter(e=>e.state===`committed`).flatMap(e=>e.node_id??[]),...a.takes.filter(e=>e.state===`ready`).map(e=>e.target_node_id)])),p=x(()=>u.value.filter(e=>f.value.has(e)).length),m=x(()=>d.value.filter(e=>f.value.has(e)).length),h=x(()=>new Set(a.selections.map(e=>e.target_node_id))),g=x(()=>u.value.filter(e=>h.value.has(e)).length),_=x(()=>d.value.filter(e=>h.value.has(e)).length),v=x(()=>p.value===u.value.length&&g.value<u.value.length||m.value===d.value.length&&_.value<d.value.length),y=x(()=>a.graph.nodes.some(e=>e.node_type===`output`)),S=x(()=>{let e=new Set(a.graph.nodes.filter(e=>e.node_type===`output`).map(e=>e.id));return a.artifacts.some(t=>t.state===`committed`&&!!t.node_id&&e.has(t.node_id))}),C=x(()=>{let e=u.value.find(e=>!f.value.has(e));if(e)return a.graph.nodes.find(t=>t.id===e);if(g.value<u.value.length)return;let t=d.value.find(e=>!f.value.has(e));if(t)return a.graph.nodes.find(e=>e.id===t);if(!(_.value<d.value.length))return a.graph.nodes.find(e=>e.node_type===`audio`&&!f.value.has(e.id))}),w=x(()=>(a.storyboard?.sections.reduce((e,t)=>e+t.shots.length,0)??a.graph.nodes.filter(e=>e.node_type===`shot`).length)||d.value.length),T=x(()=>{let e=a.graph.nodes.find(e=>e.node_type===`script`),t=Number(e?.payload?.target_duration_seconds);return a.storyboard?.target_duration_seconds??(Number.isFinite(t)?t:40)}),D=x(()=>{let e=a.graph.nodes.find(e=>e.node_type===`script`);return String(e?.payload?.aspect_ratio??`16:9`)}),O=x(()=>C.value?.node_type===`image`?q(`poivelle.guide.generateFrame`,{current:p.value+1,total:u.value.length}):C.value?.node_type===`video`?q(`poivelle.guide.generateMotion`,{current:m.value+1,total:d.value.length}):q(`poivelle.guide.generateScore`));return(a,f)=>(E(),l(`section`,Vr,[e(`div`,Hr,[e(`p`,null,i(a.$t(`poivelle.guide.kicker`)),1),e(`h1`,Ur,i(a.$t(`poivelle.guide.title`,{title:t.projectTitle})),1),e(`p`,Wr,i(a.$t(`poivelle.guide.body`)),1),e(`dl`,Gr,[e(`div`,null,[e(`dt`,null,i(a.$t(`poivelle.guide.duration`)),1),e(`dd`,null,i(T.value)+`s`,1)]),e(`div`,null,[e(`dt`,null,i(a.$t(`poivelle.guide.shots`)),1),e(`dd`,null,i(w.value),1)]),e(`div`,null,[e(`dt`,null,i(a.$t(`poivelle.guide.format`)),1),e(`dd`,null,i(D.value),1)])]),e(`div`,Kr,[C.value?(E(),l(`button`,{key:0,type:`button`,class:`primary-action`,disabled:!t.canEdit||t.busy,onClick:f[0]||=e=>a.$emit(`generate-node`,C.value.id)},[t.busy?(E(),b(c(we),{key:0,size:17,class:`spinning`,"aria-hidden":`true`})):(E(),b(c(Oe),{key:1,size:17,"aria-hidden":`true`})),r(` `+i(O.value),1)],8,qr)):(E(),l(`button`,{key:1,type:`button`,class:`primary-action`,onClick:f[1]||=e=>a.$emit(`open-storyboard`)},[o(c(Q),{size:17,"aria-hidden":`true`}),r(` `+i(v.value?a.$t(`poivelle.guide.chooseResults`):a.$t(`poivelle.guide.reviewResults`)),1)])),e(`button`,{type:`button`,class:`secondary-action`,onClick:f[2]||=e=>a.$emit(`open-storyboard`)},[r(i(a.$t(`poivelle.guide.reviewPlan`))+` `,1),o(c(he),{size:15,"aria-hidden":`true`})])]),e(`p`,Jr,[o(c(Ye),{size:14,"aria-hidden":`true`}),r(` `+i(a.$t(`poivelle.guide.costNote`)),1)])]),e(`ol`,Yr,[e(`li`,Xr,[e(`span`,null,[o(c(H),{size:15,"aria-hidden":`true`})]),e(`div`,null,[e(`strong`,null,i(a.$t(`poivelle.guide.stepPlan`)),1),e(`p`,null,i(a.$t(`poivelle.guide.stepPlanBody`,{shots:w.value})),1)]),e(`small`,null,i(a.$t(`poivelle.guide.ready`)),1)]),e(`li`,{class:n({current:g.value<u.value.length,done:u.value.length>0&&g.value===u.value.length})},[f[3]||=e(`span`,null,`2`,-1),e(`div`,null,[e(`strong`,null,i(a.$t(`poivelle.guide.stepFrames`)),1),e(`p`,null,i(a.$t(`poivelle.guide.stepFramesBody`)),1),e(`progress`,{value:p.value,max:Math.max(u.value.length,1)},null,8,Zr)]),e(`small`,null,i(p.value)+` `+i(a.$t(`poivelle.guide.generated`))+` · `+i(g.value)+` `+i(a.$t(`poivelle.guide.selected`)),1)],2),e(`li`,{class:n({current:g.value===u.value.length&&_.value<d.value.length,done:d.value.length>0&&_.value===d.value.length})},[f[4]||=e(`span`,null,`3`,-1),e(`div`,null,[e(`strong`,null,i(a.$t(`poivelle.guide.stepMotion`)),1),e(`p`,null,i(a.$t(`poivelle.guide.stepMotionBody`)),1),e(`progress`,{value:m.value,max:Math.max(d.value.length,1)},null,8,Qr)]),e(`small`,null,i(m.value)+` `+i(a.$t(`poivelle.guide.generated`))+` · `+i(_.value)+` `+i(a.$t(`poivelle.guide.selected`)),1)],2),y.value?(E(),l(`li`,{key:0,class:n({current:_.value===d.value.length&&!S.value,done:S.value})},[f[5]||=e(`span`,null,`4`,-1),e(`div`,null,[e(`strong`,null,i(a.$t(`poivelle.guide.stepMaster`)),1),e(`p`,null,i(a.$t(`poivelle.guide.stepMasterBody`)),1)]),e(`small`,null,i(S.value?a.$t(`poivelle.guide.ready`):a.$t(`poivelle.guide.waiting`)),1)],2)):s(``,!0)])]))}}),[[`__scopeId`,`data-v-86112731`]]),ei={class:`poivelle-studio`},ti={key:0,class:`error-banner`},ni={key:1,class:`loading-state`},ri={key:2,class:`studio-body`},ii={class:`projection-workspace`},ai={class:`projection-content`},oi={key:3,class:`onboarding`},si={key:0,class:`dry-run-summary`},ci={class:`dry-run-note`},li=X(O({__name:`StudioWorkspace`,emits:[`back-home`],setup(n){let d=ae(),m=x(()=>d.state.poivelle),h=x(()=>m.value?.workspaces??[]),g=x(()=>m.value?.projects??[]),_=x(()=>m.value?.graph),v=x(()=>m.value?.assets??[]),y=x(()=>m.value?.artifacts??[]),C=x(()=>m.value?.takes??[]),T=x(()=>m.value?.selections??[]),O=x(()=>m.value?.storyboard),k=x(()=>m.value?.revisions??[]),A=x(()=>m.value?.proposals??[]),ee=x(()=>m.value?.runs??[]),j=x(()=>m.value?.activeRun),te=x(()=>m.value?.evaluations??[]),ne=x(()=>m.value?.forensicValidations??[]),re=x(()=>m.value?.costs),M=x(()=>m.value?.timeline),N=x(()=>m.value?.projection??`overview`),P=x(()=>m.value?.selectedNodeId),F=x(()=>_.value?.nodes.find(e=>e.id===P.value)),L=x(()=>g.value.find(e=>e.id===m.value?.currentProjectId)),B=x(()=>[`owner`,`producer`,`director`,`editor`].includes(m.value?.currentMembership?.role??``)),V=x(()=>m.value?.dryRun),ce=x(()=>m.value?.error),le=x(()=>[m.value?.status?.bootstrap,m.value?.status?.graph].includes(oe.Request)),ue=x(()=>new Set([...y.value.filter(e=>e.state===`committed`).flatMap(e=>e.node_id??[]),...C.value.filter(e=>e.state===`ready`).map(e=>e.target_node_id)])),de=x(()=>new Set(T.value.map(e=>e.target_node_id))),fe=x(()=>O.value?O.value.sections.flatMap(e=>e.shots.flatMap(e=>e.image_node_ids)):_.value?.nodes.filter(e=>e.node_type===`image`).map(e=>e.id)??[]),me=x(()=>O.value?O.value.sections.flatMap(e=>e.shots.flatMap(e=>e.video_node_ids)):_.value?.nodes.filter(e=>e.node_type===`video`).map(e=>e.id)??[]),he=x(()=>fe.value.length>0&&fe.value.every(e=>ue.value.has(e))&&fe.value.some(e=>!de.value.has(e))||me.value.length>0&&me.value.every(e=>ue.value.has(e))&&me.value.some(e=>!de.value.has(e))),ge=x(()=>{let e=fe.value.find(e=>!ue.value.has(e));if(e)return _.value?.nodes.find(t=>t.id===e);if(fe.value.some(e=>!de.value.has(e)))return;let t=me.value.find(e=>!ue.value.has(e));if(t)return _.value?.nodes.find(e=>e.id===t);if(me.value.some(e=>!de.value.has(e)))return;let n=_.value?.nodes.find(e=>e.node_type===`audio`&&!ue.value.has(e.id));if(n)return n}),_e=x(()=>ge.value?.node_type===`image`?q(`poivelle.guide.generateNextFrame`):ge.value?.node_type===`video`?q(`poivelle.guide.generateNextMotion`):ge.value?.node_type===`audio`?q(`poivelle.guide.generateScore`):q(`poivelle.guide.continue`)),H=D(!1),ve=D(!1),ye=D(!1),be=D(!1),xe=D(!1),U=D(!1),Se=f({name:``,monthly_limit_microcredits:void 0}),W=f({workspace_id:``,title:``,workflow:`blank`,skill:`film.drama.short@1.0.0`,product_name:``,product_category:`professional action imaging device`,brand_tone:`precise, fearless, cinematic, premium`,aspect_ratio:`16:9`}),Ce=[{label:q(`poivelle.project.blankWorkflow`),value:`blank`},{label:q(`poivelle.project.commercialTVC`),value:`commercial_tvc`}],G=f({node_type:`scene`,title:``,prompt:``}),K=f({title:``,kind:`image`,source_url:``,content_hash:``}),Te=[`script`,`character`,`location`,`prop`,`storyboard`,`scene`,`shot`,`image`,`video`,`audio`,`subtitle`,`composition`,`output`,`note`],De=[`character`,`location`,`prop`,`image`,`video`,`voice`,`music`,`sfx`,`brand`],Oe=()=>d.dispatch(`poivelle/bootstrap`),ke=e=>d.dispatch(`poivelle/loadProject`,e),je=e=>d.dispatch(`poivelle/selectNode`,e),Me=e=>d.dispatch(`poivelle/setProjection`,e),X=()=>{W.workspace_id=m.value?.currentWorkspaceId??h.value[0]?.id??``,ye.value=!0},Z=async()=>{Se.name.trim()&&await $(async()=>{await d.dispatch(`poivelle/createWorkspace`,{...Se,name:Se.name.trim()}),ve.value=!1,X()})},Fe=async()=>{!W.workspace_id||!W.title.trim()||await $(async()=>{W.workflow===`commercial_tvc`?(await d.dispatch(`poivelle/createCommercialTVCProject`,{workspace_id:W.workspace_id,title:W.title.trim(),product_name:W.product_name.trim()||W.title.trim(),product_category:W.product_category.trim(),brand_tone:W.brand_tone.trim(),aspect_ratio:W.aspect_ratio,managed_execution:!1}),Me(`storyboard`)):await d.dispatch(`poivelle/createProject`,{workspace_id:W.workspace_id,title:W.title.trim(),skill:W.skill,domain:`film.drama.short`}),ye.value=!1,W.title=``})},Ie=async()=>{G.title.trim()&&await $(async()=>{await d.dispatch(`poivelle/createNode`,{node_type:G.node_type,title:G.title.trim(),payload:{prompt:G.prompt}}),be.value=!1,G.title=``,G.prompt=``})},Le=async()=>{!m.value?.currentWorkspaceId||!K.title||!K.source_url||!K.content_hash||await $(async()=>{await d.dispatch(`poivelle/importAsset`,{...K,project_id:m.value.currentProjectId}),xe.value=!1})},Re=e=>d.dispatch(`poivelle/updateSelectedNode`,e),Be=async()=>{await Pe.confirm(q(`poivelle.node.deleteConfirm`),``,{type:`warning`}),await d.dispatch(`poivelle/deleteSelectedNode`)},Ve=async()=>{await d.dispatch(`poivelle/commitRevision`,`Studio checkpoint`),se.success(q(`poivelle.revision.committed`))},He=async()=>{F.value&&await $(async()=>{await d.dispatch(`poivelle/dryRun`,F.value?.node_type===`composition`?`compose`:`generate`),U.value=!0})},We=async e=>{await je(e),await a(),await He()},Ge=async()=>{if(N.value===`overview`){ge.value?await We(ge.value.id):he.value&&Me(`storyboard`);return}F.value&&await He()},Ke=async()=>{await $(async()=>{let e=await d.dispatch(`poivelle/confirmDryRun`);U.value=!1,e&&se.success(q(`poivelle.run.queued`))})},qe=e=>{Me(`review`),se.info(`${q(`poivelle.agent.proposal`)} ${e.slice(-8)}`)},Je=async e=>{await Pe.confirm(q(`poivelle.review.rejectConfirm`),``,{type:`warning`}),await $(()=>d.dispatch(`poivelle/rejectProposal`,e))},Ye=async e=>{await Pe.confirm(q(`poivelle.run.cancelConfirm`),``,{type:`warning`}),await $(()=>d.dispatch(`poivelle/cancelRun`,e))},Xe=e=>$(()=>d.dispatch(`poivelle/loadRun`,e)),Ze=async e=>{await $(async()=>{await d.dispatch(`poivelle/retryStep`,e),U.value=!0})},Qe=async e=>{if(!M.value)return;let t=M.value.clips.map(e=>({...e})),n=t.filter(t=>t.track_id===e.trackId).sort((e,t)=>e.timeline_start_ms-t.timeline_start_ms),r=n.findIndex(t=>t.id===e.clipId),i=r+e.direction;if(r<0||i<0||i>=n.length)return;[n[r],n[i]]=[n[i],n[r]];let a=0;n.forEach(e=>{let t=typeof e.speed==`number`&&Number.isFinite(e.speed)&&e.speed>0?e.speed:1;e.timeline_start_ms=a,a+=(e.source_out_ms-e.source_in_ms)/t}),await $(()=>d.dispatch(`poivelle/saveTimeline`,{...M.value,clips:t}))},$e=async e=>{await $(async()=>{await d.dispatch(`poivelle/selectTake`,e),se.success(q(`poivelle.storyboard.selectionSaved`))})},et=e=>`${(e/1e6).toFixed(2)} credits`,$=async e=>{H.value=!0;try{await e()}catch(e){se.error(e?.response?.data?.detail?.message??e?.response?.data?.detail??e?.message??q(`poivelle.error.generic`))}finally{H.value=!1}};return u(Oe),(n,a)=>(E(),l(`main`,ei,[o(Vt,{"project-title":L.value?.title,"graph-version":_.value?.graph_version,"can-run":B.value&&(N.value===`overview`?!!ge.value||he.value:!!F.value),"can-edit":B.value,"primary-label":N.value===`overview`?he.value?n.$t(`poivelle.guide.chooseResults`):_e.value:void 0,onOpenProjects:a[0]||=e=>ye.value=!0,onHome:a[1]||=e=>n.$emit(`back-home`),onCommit:Ve,onRun:Ge},null,8,[`project-title`,`graph-version`,`can-run`,`can-edit`,`primary-label`]),ce.value?(E(),l(`div`,ti,[o(c(Ae),{size:15,"aria-hidden":`true`}),e(`span`,null,i(ce.value),1),e(`button`,{type:`button`,onClick:Oe},i(n.$t(`poivelle.action.retry`)),1)])):s(``,!0),le.value&&!_.value?(E(),l(`div`,ni,[o(c(we),{size:25,class:`is-spinning`,"aria-hidden":`true`}),e(`span`,null,i(n.$t(`poivelle.status.loading`)),1)])):L.value&&_.value?(E(),l(`div`,ri,[N.value===`overview`?s(``,!0):(E(),b(sn,{key:0,projects:g.value,"current-project-id":L.value.id,assets:v.value,revisions:k.value,"can-edit":B.value,onSelectProject:ke,onCreateProject:X,onImportAsset:a[2]||=e=>xe.value=!0},null,8,[`projects`,`current-project-id`,`assets`,`revisions`,`can-edit`])),e(`section`,ii,[o(un,{"model-value":N.value,"can-edit":B.value,"onUpdate:modelValue":Me,onCreateNode:a[3]||=e=>be.value=!0},null,8,[`model-value`,`can-edit`]),e(`div`,ai,[N.value===`overview`?(E(),b($r,{key:0,"project-title":L.value.title,graph:_.value,storyboard:O.value,artifacts:y.value,takes:C.value,selections:T.value,"can-edit":B.value,busy:H.value,onGenerateNode:We,onOpenStoryboard:a[4]||=e=>Me(`storyboard`)},null,8,[`project-title`,`graph`,`storyboard`,`artifacts`,`takes`,`selections`,`can-edit`,`busy`])):N.value===`canvas`?(E(),b(vn,{key:1,graph:_.value,"selected-node-id":P.value,"can-edit":B.value,onSelectNode:je,onCreateNode:a[5]||=e=>be.value=!0},null,8,[`graph`,`selected-node-id`,`can-edit`])):N.value===`storyboard`?(E(),b(Bn,{key:2,graph:_.value,storyboard:O.value,artifacts:y.value,takes:C.value,selections:T.value,"selected-node-id":P.value,"can-edit":B.value,"can-select":B.value&&k.value.length>0,onSelectNode:je,onSelectTake:$e},null,8,[`graph`,`storyboard`,`artifacts`,`takes`,`selections`,`selected-node-id`,`can-edit`,`can-select`])):N.value===`timeline`?(E(),b(cr,{key:3,timeline:M.value,graph:_.value,artifacts:y.value,"can-edit":B.value,onMoveClip:Qe},null,8,[`timeline`,`graph`,`artifacts`,`can-edit`])):(E(),b(wr,{key:4,graph:_.value,proposals:A.value,revisions:k.value,runs:ee.value,"active-run":j.value,evaluations:te.value,"forensic-validations":ne.value,costs:re.value,"can-edit":B.value,onRejectProposal:Je,onCancelRun:Ye,onOpenRun:Xe,onRetryStep:Ze},null,8,[`graph`,`proposals`,`revisions`,`runs`,`active-run`,`evaluations`,`forensic-validations`,`costs`,`can-edit`]))]),N.value===`overview`?s(``,!0):(E(),b(Br,{key:0,proposals:A.value,"selected-node-id":P.value,skill:L.value.active_skill,"can-edit":B.value,onRun:He,onOpenProposal:qe},null,8,[`proposals`,`selected-node-id`,`skill`,`can-edit`]))]),B.value&&N.value===`canvas`?(E(),b(Nr,{key:1,node:F.value,onUpdate:Re,onDelete:Be},null,8,[`node`])):s(``,!0)])):(E(),l(`section`,oi,[a[38]||=e(`div`,{class:`onboarding-number`},`01 / STUDIO`,-1),o(c(Ue),{size:34,"stroke-width":`1.25`,"aria-hidden":`true`}),e(`h1`,null,i(n.$t(`poivelle.onboarding.title`)),1),e(`p`,null,i(n.$t(`poivelle.onboarding.body`)),1),h.value.length?B.value?(E(),l(`button`,{key:1,type:`button`,onClick:X},[o(c(Q),{size:15,"aria-hidden":`true`}),r(` `+i(n.$t(`poivelle.project.create`)),1)])):s(``,!0):(E(),l(`button`,{key:0,type:`button`,onClick:a[6]||=e=>ve.value=!0},[o(c(Ee),{size:15,"aria-hidden":`true`}),r(` `+i(n.$t(`poivelle.workspace.create`)),1)]))])),o(c(Ne),{modelValue:ve.value,"onUpdate:modelValue":a[11]||=e=>ve.value=e,title:n.$t(`poivelle.workspace.create`),width:`420px`},{footer:S(()=>[o(c(Y),{onClick:a[10]||=e=>ve.value=!1},{default:S(()=>[r(i(n.$t(`common.button.cancel`)),1)]),_:1}),o(c(Y),{type:`primary`,loading:H.value,onClick:Z},{default:S(()=>[r(i(n.$t(`common.button.confirm`)),1)]),_:1},8,[`loading`])]),default:S(()=>[o(c(z),{"label-position":`top`,onSubmit:a[9]||=t(()=>{},[`prevent`])},{default:S(()=>[o(c(R),{label:n.$t(`poivelle.workspace.name`)},{default:S(()=>[o(c(J),{modelValue:Se.name,"onUpdate:modelValue":a[7]||=e=>Se.name=e,maxlength:`120`,autofocus:``},null,8,[`modelValue`])]),_:1},8,[`label`]),o(c(R),{label:n.$t(`poivelle.workspace.budget`)},{default:S(()=>[o(c(pe),{modelValue:Se.monthly_limit_microcredits,"onUpdate:modelValue":a[8]||=e=>Se.monthly_limit_microcredits=e,min:0,step:1e6},null,8,[`modelValue`])]),_:1},8,[`label`])]),_:1})]),_:1},8,[`modelValue`,`title`]),o(c(Ne),{modelValue:ye.value,"onUpdate:modelValue":a[22]||=e=>ye.value=e,title:n.$t(`poivelle.project.create`),width:`460px`},{footer:S(()=>[o(c(Y),{onClick:a[21]||=e=>ye.value=!1},{default:S(()=>[r(i(n.$t(`common.button.cancel`)),1)]),_:1}),o(c(Y),{type:`primary`,loading:H.value,onClick:Fe},{default:S(()=>[r(i(n.$t(`common.button.confirm`)),1)]),_:1},8,[`loading`])]),default:S(()=>[o(c(z),{"label-position":`top`,onSubmit:a[20]||=t(()=>{},[`prevent`])},{default:S(()=>[o(c(R),{label:n.$t(`poivelle.project.workspace`)},{default:S(()=>[o(c(ie),{modelValue:W.workspace_id,"onUpdate:modelValue":a[12]||=e=>W.workspace_id=e,style:{width:`100%`}},{default:S(()=>[(E(!0),l(p,null,w(h.value,e=>(E(),b(c(I),{key:e.id,label:e.name,value:e.id},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`])]),_:1},8,[`label`]),o(c(R),{label:n.$t(`poivelle.project.title`)},{default:S(()=>[o(c(J),{modelValue:W.title,"onUpdate:modelValue":a[13]||=e=>W.title=e,maxlength:`200`},null,8,[`modelValue`])]),_:1},8,[`label`]),o(c(R),{label:n.$t(`poivelle.project.workflow`)},{default:S(()=>[o(c(ze),{modelValue:W.workflow,"onUpdate:modelValue":a[14]||=e=>W.workflow=e,options:Ce,block:``},null,8,[`modelValue`])]),_:1},8,[`label`]),W.workflow===`commercial_tvc`?(E(),l(p,{key:0},[o(c(R),{label:n.$t(`poivelle.project.productName`)},{default:S(()=>[o(c(J),{modelValue:W.product_name,"onUpdate:modelValue":a[15]||=e=>W.product_name=e,maxlength:`120`},null,8,[`modelValue`])]),_:1},8,[`label`]),o(c(R),{label:n.$t(`poivelle.project.productCategory`)},{default:S(()=>[o(c(J),{modelValue:W.product_category,"onUpdate:modelValue":a[16]||=e=>W.product_category=e,maxlength:`180`},null,8,[`modelValue`])]),_:1},8,[`label`]),o(c(R),{label:n.$t(`poivelle.project.brandTone`)},{default:S(()=>[o(c(J),{modelValue:W.brand_tone,"onUpdate:modelValue":a[17]||=e=>W.brand_tone=e,type:`textarea`,rows:2,maxlength:`240`},null,8,[`modelValue`])]),_:1},8,[`label`]),o(c(R),{label:n.$t(`poivelle.project.aspectRatio`)},{default:S(()=>[o(c(ze),{modelValue:W.aspect_ratio,"onUpdate:modelValue":a[18]||=e=>W.aspect_ratio=e,options:[`16:9`,`9:16`,`1:1`]},null,8,[`modelValue`])]),_:1},8,[`label`])],64)):s(``,!0),o(c(R),{label:n.$t(`poivelle.project.skill`)},{default:S(()=>[W.workflow===`blank`?(E(),b(c(ie),{key:0,modelValue:W.skill,"onUpdate:modelValue":a[19]||=e=>W.skill=e,style:{width:`100%`}},{default:S(()=>[o(c(I),{label:`Short drama · professional`,value:`film.drama.short@1.0.0`}),o(c(I),{label:`Commercial film · professional`,value:`film.commercial@1.0.0`}),o(c(I),{label:`Music video · professional`,value:`film.music-video@1.0.0`})]),_:1},8,[`modelValue`])):s(``,!0)]),_:1},8,[`label`])]),_:1})]),_:1},8,[`modelValue`,`title`]),o(c(Ne),{modelValue:be.value,"onUpdate:modelValue":a[28]||=e=>be.value=e,title:n.$t(`poivelle.node.create`),width:`460px`},{footer:S(()=>[o(c(Y),{onClick:a[27]||=e=>be.value=!1},{default:S(()=>[r(i(n.$t(`common.button.cancel`)),1)]),_:1}),o(c(Y),{type:`primary`,loading:H.value,onClick:Ie},{default:S(()=>[r(i(n.$t(`common.button.confirm`)),1)]),_:1},8,[`loading`])]),default:S(()=>[o(c(z),{"label-position":`top`,onSubmit:a[26]||=t(()=>{},[`prevent`])},{default:S(()=>[o(c(R),{label:n.$t(`poivelle.field.type`)},{default:S(()=>[o(c(ie),{modelValue:G.node_type,"onUpdate:modelValue":a[23]||=e=>G.node_type=e,style:{width:`100%`}},{default:S(()=>[(E(),l(p,null,w(Te,e=>o(c(I),{key:e,label:e,value:e},null,8,[`label`,`value`])),64))]),_:1},8,[`modelValue`])]),_:1},8,[`label`]),o(c(R),{label:n.$t(`poivelle.field.title`)},{default:S(()=>[o(c(J),{modelValue:G.title,"onUpdate:modelValue":a[24]||=e=>G.title=e,maxlength:`240`},null,8,[`modelValue`])]),_:1},8,[`label`]),o(c(R),{label:n.$t(`poivelle.field.prompt`)},{default:S(()=>[o(c(J),{modelValue:G.prompt,"onUpdate:modelValue":a[25]||=e=>G.prompt=e,type:`textarea`,rows:5},null,8,[`modelValue`])]),_:1},8,[`label`])]),_:1})]),_:1},8,[`modelValue`,`title`]),o(c(Ne),{modelValue:xe.value,"onUpdate:modelValue":a[35]||=e=>xe.value=e,title:n.$t(`poivelle.asset.import`),width:`500px`},{footer:S(()=>[o(c(Y),{onClick:a[34]||=e=>xe.value=!1},{default:S(()=>[r(i(n.$t(`common.button.cancel`)),1)]),_:1}),o(c(Y),{type:`primary`,loading:H.value,onClick:Le},{default:S(()=>[r(i(n.$t(`common.button.confirm`)),1)]),_:1},8,[`loading`])]),default:S(()=>[o(c(z),{"label-position":`top`,onSubmit:a[33]||=t(()=>{},[`prevent`])},{default:S(()=>[o(c(R),{label:n.$t(`poivelle.asset.title`)},{default:S(()=>[o(c(J),{modelValue:K.title,"onUpdate:modelValue":a[29]||=e=>K.title=e,maxlength:`240`},null,8,[`modelValue`])]),_:1},8,[`label`]),o(c(R),{label:n.$t(`poivelle.field.type`)},{default:S(()=>[o(c(ie),{modelValue:K.kind,"onUpdate:modelValue":a[30]||=e=>K.kind=e,style:{width:`100%`}},{default:S(()=>[(E(),l(p,null,w(De,e=>o(c(I),{key:e,label:e,value:e},null,8,[`label`,`value`])),64))]),_:1},8,[`modelValue`])]),_:1},8,[`label`]),o(c(R),{label:n.$t(`poivelle.asset.url`)},{default:S(()=>[o(c(J),{modelValue:K.source_url,"onUpdate:modelValue":a[31]||=e=>K.source_url=e},null,8,[`modelValue`])]),_:1},8,[`label`]),o(c(R),{label:n.$t(`poivelle.asset.hash`)},{default:S(()=>[o(c(J),{modelValue:K.content_hash,"onUpdate:modelValue":a[32]||=e=>K.content_hash=e,placeholder:`sha256:...`},null,8,[`modelValue`])]),_:1},8,[`label`])]),_:1})]),_:1},8,[`modelValue`,`title`]),o(c(Ne),{modelValue:U.value,"onUpdate:modelValue":a[37]||=e=>U.value=e,title:n.$t(`poivelle.run.confirmTitle`),width:`520px`},{footer:S(()=>[o(c(Y),{onClick:a[36]||=e=>U.value=!1},{default:S(()=>[r(i(n.$t(`common.button.cancel`)),1)]),_:1}),o(c(Y),{type:`primary`,loading:H.value,onClick:Ke},{default:S(()=>[r(i(n.$t(`poivelle.run.confirm`)),1)]),_:1},8,[`loading`])]),default:S(()=>[V.value?(E(),l(`div`,si,[e(`div`,null,[e(`span`,null,i(n.$t(`poivelle.run.targets`)),1),e(`strong`,null,i(V.value.dependency_closure.length),1)]),e(`div`,null,[e(`span`,null,i(n.$t(`poivelle.run.maximum`)),1),e(`strong`,null,i(et(V.value.max_cost_microcredits)),1)]),e(`div`,null,[e(`span`,null,i(n.$t(`poivelle.run.approval`)),1),e(`strong`,null,i(V.value.required_approval),1)])])):s(``,!0),e(`p`,ci,i(n.$t(`poivelle.run.confirmBody`)),1)]),_:1},8,[`modelValue`,`title`])]))}}),[[`__scopeId`,`data-v-1b367de3`]]),ui=O({__name:`Index`,setup(e){let t=D(`discovery`);return(e,n)=>t.value===`discovery`?(E(),b(jt,{key:0,onOpenStudio:n[0]||=e=>t.value=`studio`})):(E(),b(li,{key:1,onBackHome:n[1]||=e=>t.value=`discovery`}))}});export{ui as default};
1
+ import"./rolldown-runtime--c01j_DQ.js";import{A as e,C as t,Gt as n,I as r,Jt as i,K as a,L as o,M as s,Mt as c,N as l,Q as u,S as d,St as f,T as p,Vt as m,Wt as h,b as g,ft as _,ht as v,it as y,j as b,k as x,mt as S,qt as C,rt as w,st as T,tt as E,wt as D,z as O}from"./vendor-chart-Dw-P17PN.js";import{$ as k,X as A,dt as ee,et as j,rt as te,st as ne,wt as re,xt as M}from"./icon-CDmWyIgD.js";import{a as N,c as P,t as F}from"./install-Cn-SLM3u.js";import{r as ie,t as I}from"./select-BpS-bYES.js";import{t as L}from"./use-aria-DApzlmKf.js";import{n as R,t as z}from"./form-BdKMEyCR.js";import{r as B,t as V}from"./event-BGnHezxC.js";import{_ as ae,h as oe,v as se}from"./models-CfZmiKuz.js";import{a as ce,c as le,i as ue,n as de,r as fe}from"./use-deprecated-BAB4ggjd.js";import{t as pe}from"./input-number-CXyGkQc9.js";import{t as me}from"./arrow-left-BEfUKt4l.js";import{t as he}from"./arrow-right-BeesmDSH.js";import{t as ge}from"./arrow-up-De4PQDE3.js";import{t as _e}from"./box-BVRNvOkq.js";import{t as H}from"./check-DU3fWk08.js";import{t as ve}from"./chevron-down-BGKaZsf4.js";import{t as ye}from"./chevron-right-DNGokh2S.js";import{t as be}from"./copy-B4tOxgJH.js";import{t as xe}from"./download-sjMA6DCS.js";import{t as U}from"./file-text-frIq7xXe.js";import{t as Se}from"./history-BEKrOGlx.js";import{t as W}from"./house-gQegAXtD.js";import{t as Ce}from"./image-Dj2OLaW1.js";import{t as we}from"./loader-circle-FJNV85C3.js";import{t as G}from"./mouse-pointer-2-CKIVz57k.js";import{t as K}from"./music-2-CnpHN-4z.js";import{t as Te}from"./play-CzpWdcef.js";import{t as Ee}from"./plus-C9b56Sqj.js";import{t as De}from"./search-DYd0_Y9a.js";import{t as Oe}from"./sparkles-Djp80sa_.js";import{t as ke}from"./trash-2-DXpwwp30.js";import{t as Ae}from"./triangle-alert-BlTA75VV.js";import{t as je}from"./upload-BeiqlzEw.js";import{t as Me}from"./video-B4VaUcVJ.js";import{i as q}from"./i18n-D6da1vRb.js";import{Bi as J,Ci as Ne,Mi as Y,O as X,_i as Z,vi as Pe}from"./index-DSIuJ3Ml.js";import{t as Fe}from"./VideoPlayer-CFlwMJfi.js";var Ie={label:`label`,value:`value`,disabled:`disabled`},Le=k({direction:{type:j(String),default:`horizontal`},options:{type:j(Array),default:()=>[]},modelValue:{type:[String,Number,Boolean],default:void 0},props:{type:j(Object),default:()=>Ie},block:Boolean,size:A,disabled:Boolean,validateEvent:{type:Boolean,default:!0},id:String,name:String,...L([`ariaLabel`])}),Re={[B]:e=>h(e)||re(e)||M(e),[V]:e=>h(e)||re(e)||M(e)},ze=F(N(O({...O({name:`ElSegmented`}),props:Le,emits:Re,setup(t,{emit:a}){let o=t,u=P(`segmented`),d=le(),h=fe(),g=de(),{formItem:v}=ue(),{inputId:b,isLabeledByFormItem:S}=ce(o,{formItemContext:v}),T=D(null),O=ne(),k=f({isInit:!1,width:0,height:0,translateX:0,translateY:0,focusVisible:!1}),A=e=>{let t=re(e);a(B,t),a(V,t)},j=x(()=>({...Ie,...o.props})),re=e=>m(e)?e[j.value.value]:e,M=e=>m(e)?e[j.value.label]:e,N=e=>!!(g.value||m(e)&&e[j.value.disabled]),F=e=>o.modelValue===re(e),ie=e=>o.options.find(t=>re(t)===e),I=e=>[u.e(`item`),u.is(`selected`,F(e)),u.is(`disabled`,N(e))],L=()=>{if(!T.value)return;let e=T.value.querySelector(`.is-selected`),t=T.value.querySelector(`.is-selected input`);if(!e||!t){k.width=0,k.height=0,k.translateX=0,k.translateY=0,k.focusVisible=!1;return}let n=e.getBoundingClientRect();k.isInit=!0,o.direction===`vertical`?(k.height=n.height,k.translateY=e.offsetTop):(k.width=n.width,k.translateX=e.offsetLeft);try{k.focusVisible=t.matches(`:focus-visible`)}catch{}},R=x(()=>[u.b(),u.m(h.value),u.is(`block`,o.block)]),z=x(()=>({width:o.direction===`vertical`?`100%`:`${k.width}px`,height:o.direction===`vertical`?`${k.height}px`:`100%`,transform:o.direction===`vertical`?`translateY(${k.translateY}px)`:`translateX(${k.translateX}px)`,display:k.isInit?`block`:`none`})),ae=x(()=>[u.e(`item-selected`),u.is(`disabled`,N(ie(o.modelValue))),u.is(`focus-visible`,k.focusVisible)]),oe=x(()=>o.name||d.value);return ee(T,L),_(O,L),_(()=>o.modelValue,()=>{var e;L(),o.validateEvent&&((e=v?.validate)==null||e.call(v,`change`).catch(e=>te(e)))},{flush:`post`}),(t,a)=>t.options.length?(E(),l(`div`,{key:0,id:c(b),ref_key:`segmentedRef`,ref:T,class:n(c(R)),role:`radiogroup`,"aria-label":c(S)?void 0:t.ariaLabel||`segmented`,"aria-labelledby":c(S)?c(v).labelId:void 0},[e(`div`,{class:n([c(u).e(`group`),c(u).m(o.direction)])},[e(`div`,{style:C(c(z)),class:n(c(ae))},null,6),(E(!0),l(p,null,w(t.options,(a,o)=>(E(),l(`label`,{key:o,class:n(I(a))},[e(`input`,{class:n(c(u).e(`item-input`)),type:`radio`,name:c(oe),disabled:N(a),checked:F(a),onChange:e=>A(a)},null,42,[`name`,`disabled`,`checked`,`onChange`]),e(`div`,{class:n(c(u).e(`item-label`))},[y(t.$slots,`default`,{item:a},()=>[r(i(M(a)),1)])],2)],2))),128))],2)],10,[`id`,`aria-label`,`aria-labelledby`])):s(`v-if`,!0)}}),[[`__file`,`segmented.vue`]])),Be=Z(`audio-lines`,[[`path`,{d:`M2 10v3`,key:`1fnikh`}],[`path`,{d:`M6 6v11`,key:`11sgs0`}],[`path`,{d:`M10 3v18`,key:`yhl04a`}],[`path`,{d:`M14 8v7`,key:`3a1oy3`}],[`path`,{d:`M18 5v13`,key:`123xd1`}],[`path`,{d:`M22 10v3`,key:`154ddg`}]]),Ve=Z(`bot`,[[`path`,{d:`M12 8V4H8`,key:`hb8ula`}],[`rect`,{width:`16`,height:`12`,x:`4`,y:`8`,rx:`2`,key:`enze0r`}],[`path`,{d:`M2 14h2`,key:`vft8re`}],[`path`,{d:`M20 14h2`,key:`4cs60a`}],[`path`,{d:`M15 13v2`,key:`1xurst`}],[`path`,{d:`M9 13v2`,key:`rq6x2g`}]]),He=Z(`building-2`,[[`path`,{d:`M10 12h4`,key:`a56b0p`}],[`path`,{d:`M10 8h4`,key:`1sr2af`}],[`path`,{d:`M14 21v-3a2 2 0 0 0-4 0v3`,key:`1rgiei`}],[`path`,{d:`M6 10H4a2 2 0 0 0-2 2v7a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V9a2 2 0 0 0-2-2h-2`,key:`secmi2`}],[`path`,{d:`M6 21V5a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v16`,key:`16ra0t`}]]),Q=Z(`clapperboard`,[[`path`,{d:`m12.296 3.464 3.02 3.956`,key:`qash78`}],[`path`,{d:`M20.2 6 3 11l-.9-2.4c-.3-1.1.3-2.2 1.3-2.5l13.5-4c1.1-.3 2.2.3 2.5 1.3z`,key:`1h7j8b`}],[`path`,{d:`M3 11h18v8a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z`,key:`4lm6w1`}],[`path`,{d:`m6.18 5.276 3.1 3.899`,key:`zjj9t3`}]]),Ue=Z(`film`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}],[`path`,{d:`M7 3v18`,key:`bbkbws`}],[`path`,{d:`M3 7.5h4`,key:`zfgn84`}],[`path`,{d:`M3 12h18`,key:`1i2n21`}],[`path`,{d:`M3 16.5h4`,key:`1230mu`}],[`path`,{d:`M17 3v18`,key:`in4fa5`}],[`path`,{d:`M17 7.5h4`,key:`myr1c1`}],[`path`,{d:`M17 16.5h4`,key:`go4c1d`}]]),We=Z(`git-commit-horizontal`,[[`circle`,{cx:`12`,cy:`12`,r:`3`,key:`1v7zrd`}],[`line`,{x1:`3`,x2:`9`,y1:`12`,y2:`12`,key:`1dyftd`}],[`line`,{x1:`15`,x2:`21`,y1:`12`,y2:`12`,key:`oup4p8`}]]),Ge=Z(`git-branch`,[[`path`,{d:`M15 6a9 9 0 0 0-9 9V3`,key:`1cii5b`}],[`circle`,{cx:`18`,cy:`6`,r:`3`,key:`1h7g24`}],[`circle`,{cx:`6`,cy:`18`,r:`3`,key:`fqmcym`}]]),Ke=Z(`list-checks`,[[`path`,{d:`M13 5h8`,key:`a7qcls`}],[`path`,{d:`M13 12h8`,key:`h98zly`}],[`path`,{d:`M13 19h8`,key:`c3s6r1`}],[`path`,{d:`m3 17 2 2 4-4`,key:`1jhpwq`}],[`path`,{d:`m3 7 2 2 4-4`,key:`1obspn`}]]),qe=Z(`lock-keyhole`,[[`circle`,{cx:`12`,cy:`16`,r:`1`,key:`1au0dj`}],[`rect`,{x:`3`,y:`10`,width:`18`,height:`12`,rx:`2`,key:`6s8ecr`}],[`path`,{d:`M7 10V7a5 5 0 0 1 10 0v3`,key:`1pqi11`}]]),Je=Z(`rows-3`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,key:`afitv7`}],[`path`,{d:`M21 9H3`,key:`1338ky`}],[`path`,{d:`M21 15H3`,key:`9uk58r`}]]),Ye=Z(`shield-check`,[[`path`,{d:`M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z`,key:`oel41y`}],[`path`,{d:`m9 12 2 2 4-4`,key:`dzmm74`}]]),Xe={class:`discovery-home`},Ze={class:`discovery-header`},Qe={class:`brand`},$e={class:`project-links`},et=[`title`,`aria-label`,`onClick`],$={key:0,class:`discovery-state`,role:`status`},tt={class:`creator`,"aria-labelledby":`poivelle-create-title`},nt={class:`creator-kicker`},rt={id:`poivelle-create-title`},it=[`aria-label`],at=[`disabled`,`onClick`],ot=[`placeholder`,`disabled`],st={class:`composer-footer`},ct=[`disabled`,`title`],lt={class:`prompt-starters`},ut=[`disabled`,`onClick`],dt={class:`works`,"aria-labelledby":`poivelle-works-title`},ft={class:`works-heading`},pt={id:`poivelle-works-title`},mt={class:`search`},ht=[`placeholder`,`aria-label`],gt={class:`category-tabs`},_t=[`onClick`],vt={class:`work-grid`},yt={class:`cover`},bt=[`src`,`alt`,`onError`],xt={key:2,class:`film-badge`},St=[`aria-label`,`onClick`],Ct={class:`duration-badge`},wt={class:`work-copy`},Tt={class:`work-meta`},Et={class:`work-actions`},Dt=[`onClick`],Ot=[`disabled`,`onClick`],kt={key:0,class:`film-dialog-heading`},At={id:`poivelle-film-dialog-title`},jt=X(O({__name:`DiscoveryHome`,emits:[`open-studio`],setup(a,{emit:d}){let f=d,m=ae(),h=x(()=>m.state.poivelle),_=x(()=>h.value?.projects??[]),y=x(()=>h.value?.discoveryWorks??[]),C=D(``),O=D(``),k=D(!1),A=D(),ee=D(new Set),j=D(`official:pulsecam`),te=D(`all`),ne=[{workId:`official:pulsecam`,label:`poivelle.discovery.commercial`,icon:Q},{workId:`official:moonlit-signal`,label:`poivelle.discovery.musicVideo`,icon:K},{workId:`official:northstar-origin`,label:`poivelle.discovery.documentary`,icon:He}],re=[`poivelle.discovery.starterProduct`,`poivelle.discovery.starterMusic`,`poivelle.discovery.starterDocumentary`],M=[{value:`all`,label:`poivelle.discovery.all`},{value:`commercial`,label:`poivelle.discovery.commercial`},{value:`music_video`,label:`poivelle.discovery.musicVideo`},{value:`narrative`,label:`poivelle.discovery.narrative`},{value:`documentary`,label:`poivelle.discovery.documentary`},{value:`community`,label:`poivelle.discovery.community`}],N=x(()=>{let e=O.value.trim().toLowerCase();return y.value.filter(t=>(te.value===`all`||t.category===te.value)&&(!e||`${t.title} ${t.description} ${t.creator_name} ${(t.tags??[]).join(` `)}`.toLowerCase().includes(e)))}),P=x(()=>h.value?.status?.bootstrap===oe.Request),F=x(()=>h.value?.error),ie=x({get:()=>!!A.value,set:e=>{e||(A.value=void 0)}}),I=x(()=>{let e=y.value.find(e=>e.id===j.value);return e&&e.copyable!==!1?e:y.value.find(e=>e.copyable!==!1)}),L=()=>m.dispatch(`poivelle/bootstrap`,{loadProject:!1}),R=e=>{ee.value=new Set([...ee.value,e])},z=e=>e.video_url?.startsWith(`https://`)?e.video_url:void 0,B=e=>{if(e&&typeof e==`object`&&`response`in e){let t=e.response?.data?.detail;if(typeof t==`string`)return t;if(typeof t?.message==`string`)return t.message}return e instanceof Error?e.message:q(`poivelle.error.generic`)},V=e=>{let t=Math.floor(e/60),n=e%60;return t?`${t}:${n.toString().padStart(2,`0`)}`:`0:${n.toString().padStart(2,`0`)}`},ce=async e=>{await m.dispatch(`poivelle/loadProject`,e),f(`open-studio`)},le=async(e,t)=>{if(!k.value){k.value=!0;try{await m.dispatch(`poivelle/copyDiscoveryWork`,{work_id:e.id,prompt:t,title:t.slice(0,80)}),f(`open-studio`)}catch(e){se.error(B(e))}finally{k.value=!1}}},ue=async()=>{let e=I.value;e&&C.value.trim()&&await le(e,C.value.trim())},de=async e=>{await le(e,C.value.trim()||`${q(`poivelle.discovery.copyPrefix`)} ${e.title}`)};return u(L),(a,u)=>(E(),l(`main`,Xe,[e(`header`,Ze,[e(`div`,Qe,[o(c(Q),{size:19,"aria-hidden":`true`}),u[3]||=r(` POIVELLE`,-1)]),e(`div`,$e,[(E(!0),l(p,null,w(_.value.slice(0,3),e=>(E(),l(`button`,{key:e.id,type:`button`,title:e.title,"aria-label":e.title,onClick:t=>ce(e.id)},[r(i(e.title)+` `,1),o(c(ye),{size:13,"aria-hidden":`true`})],8,et))),128))])]),P.value||F.value?(E(),l(`div`,$,[P.value?(E(),b(c(we),{key:0,size:16,class:`spinning`,"aria-hidden":`true`})):s(``,!0),e(`span`,null,i(P.value?a.$t(`poivelle.status.loading`):F.value),1),F.value?(E(),l(`button`,{key:1,type:`button`,onClick:L},i(a.$t(`poivelle.action.retry`)),1)):s(``,!0)])):s(``,!0),e(`section`,tt,[e(`p`,nt,i(a.$t(`poivelle.discovery.kicker`)),1),e(`h1`,rt,i(a.$t(`poivelle.discovery.title`)),1),e(`div`,{class:`mode-switch`,"aria-label":a.$t(`poivelle.discovery.skills`)},[(E(),l(p,null,w(ne,t=>e(`button`,{key:t.workId,type:`button`,class:n({active:j.value===t.workId}),disabled:P.value,onClick:e=>j.value=t.workId},[(E(),b(T(t.icon),{size:15,"aria-hidden":`true`})),r(` `+i(a.$t(t.label)),1)],10,at)),64))],8,it),e(`form`,{class:`composer`,onSubmit:t(ue,[`prevent`])},[v(e(`textarea`,{"onUpdate:modelValue":u[0]||=e=>C.value=e,placeholder:a.$t(`poivelle.discovery.placeholder`),disabled:P.value,maxlength:`500`,rows:`4`},null,8,ot),[[g,C.value]]),e(`div`,st,[e(`span`,null,i(C.value.length)+`/500`,1),e(`button`,{type:`submit`,disabled:!C.value.trim()||!I.value||P.value||k.value,title:a.$t(`poivelle.discovery.create`)},[k.value?(E(),b(c(we),{key:0,size:18,class:`spinning`,"aria-hidden":`true`})):(E(),b(c(ge),{key:1,size:18,"aria-hidden":`true`}))],8,ct)])],32),e(`div`,lt,[(E(),l(p,null,w(re,t=>e(`button`,{key:t,type:`button`,disabled:P.value,onClick:e=>C.value=a.$t(t)},i(a.$t(t)),9,ut)),64))])]),e(`section`,dt,[e(`div`,ft,[e(`div`,null,[e(`span`,null,i(a.$t(`poivelle.discovery.galleryKicker`)),1),e(`h2`,pt,i(a.$t(`poivelle.discovery.gallery`)),1)]),e(`label`,mt,[o(c(De),{size:16,"aria-hidden":`true`}),v(e(`input`,{"onUpdate:modelValue":u[1]||=e=>O.value=e,placeholder:a.$t(`poivelle.discovery.search`),"aria-label":a.$t(`poivelle.discovery.search`)},null,8,ht),[[g,O.value]])])]),e(`div`,gt,[(E(),l(p,null,w(M,t=>e(`button`,{key:t.value,type:`button`,class:n({active:te.value===t.value}),onClick:e=>te.value=t.value},i(a.$t(t.label)),11,_t)),64))]),e(`div`,vt,[(E(!0),l(p,null,w(N.value,t=>(E(),l(`article`,{key:t.id,class:`work-card`},[e(`div`,yt,[t.cover_url&&!ee.value.has(t.id)?(E(),l(`img`,{key:0,src:t.cover_url,alt:t.title,onError:e=>R(t.id)},null,40,bt)):(E(),b(c(Ue),{key:1,size:32,"aria-hidden":`true`})),z(t)?(E(),l(`span`,xt,i(a.$t(`poivelle.discovery.finishedFilm`)),1)):s(``,!0),z(t)?(E(),l(`button`,{key:3,type:`button`,class:`cover-play`,"aria-label":`${a.$t(`poivelle.discovery.playFilm`)}: ${t.title}`,onClick:e=>A.value=t},[o(c(Te),{size:18,fill:`currentColor`,"aria-hidden":`true`}),r(` `+i(a.$t(`poivelle.discovery.playFilm`)),1)],8,St)):s(``,!0),e(`span`,Ct,i(t.duration_seconds?V(t.duration_seconds):a.$t(`poivelle.discovery.community`)),1)]),e(`div`,wt,[e(`div`,Tt,[e(`span`,null,i(t.creator_name),1),e(`strong`,null,i(t.title),1),e(`p`,null,i(t.description),1)]),e(`div`,Et,[z(t)?(E(),l(`button`,{key:0,type:`button`,class:`play-button`,onClick:e=>A.value=t},[o(c(Te),{size:14,fill:`currentColor`,"aria-hidden":`true`}),r(` `+i(a.$t(`poivelle.discovery.play`)),1)],8,Dt)):s(``,!0),t.copyable===!1?s(``,!0):(E(),l(`button`,{key:1,type:`button`,class:`copy-button`,disabled:P.value||k.value,onClick:e=>de(t)},[o(c(be),{size:14,"aria-hidden":`true`}),r(` `+i(a.$t(`poivelle.discovery.copy`)),1)],8,Ot))])])]))),128))])]),o(c(Ne),{modelValue:ie.value,"onUpdate:modelValue":u[2]||=e=>ie.value=e,class:`film-preview-dialog`,"aria-labelledby":`poivelle-film-dialog-title`,width:`min(920px, calc(100vw - 32px))`,"align-center":``,"append-to-body":``,"destroy-on-close":``},{header:S(()=>[A.value?(E(),l(`div`,kt,[e(`span`,null,i(a.$t(`poivelle.discovery.finishedFilm`)),1),e(`strong`,At,i(A.value.title),1),e(`small`,null,[r(i(A.value.creator_name)+` `,1),A.value.duration_seconds?(E(),l(p,{key:0},[r(` · `+i(V(A.value.duration_seconds)),1)],64)):s(``,!0)])])):s(``,!0)]),default:S(()=>[A.value&&z(A.value)?(E(),b(Fe,{key:`${A.value.id}-${A.value.video_url}`,src:z(A.value)},null,8,[`src`])):s(``,!0)]),_:1},8,[`modelValue`])]))}}),[[`__scopeId`,`data-v-91feafb0`]]),Mt={class:`studio-header`},Nt={class:`identity`},Pt=[`title`],Ft={class:`wordmark`},It={key:0,class:`version`},Lt={class:`actions`},Rt={class:`sync-state`},zt=[`title`],Bt=[`disabled`],Vt=X(O({__name:`StudioHeader`,props:{projectTitle:{},graphVersion:{},canRun:{type:Boolean},canEdit:{type:Boolean},primaryLabel:{}},emits:[`open-projects`,`home`,`commit`,`run`],setup(t){return(n,a)=>(E(),l(`header`,Mt,[e(`div`,Nt,[e(`button`,{class:`home-button`,type:`button`,title:n.$t(`poivelle.discovery.back`),onClick:a[0]||=e=>n.$emit(`home`)},[o(c(me),{size:16,"aria-hidden":`true`})],8,Pt),e(`span`,Ft,[o(c(Q),{size:15,"aria-hidden":`true`}),a[4]||=r(` POIVELLE`,-1)]),e(`button`,{class:`project-button`,type:`button`,onClick:a[1]||=e=>n.$emit(`open-projects`)},[e(`span`,null,i(t.projectTitle||n.$t(`poivelle.project.noProject`)),1),o(c(ve),{size:14,"aria-hidden":`true`})]),t.graphVersion===void 0?s(``,!0):(E(),l(`span`,It,`Graph v`+i(t.graphVersion),1))]),e(`div`,Lt,[e(`span`,Rt,[a[5]||=e(`span`,{class:`sync-dot`},null,-1),r(` `+i(n.$t(`poivelle.status.synced`)),1)]),t.canEdit?(E(),l(`button`,{key:0,class:`icon-button`,type:`button`,title:n.$t(`poivelle.action.commit`),onClick:a[2]||=e=>n.$emit(`commit`)},[o(c(We),{size:17,"aria-hidden":`true`})],8,zt)):s(``,!0),e(`button`,{class:`primary-button`,type:`button`,disabled:!t.canRun,onClick:a[3]||=e=>n.$emit(`run`)},[o(c(Te),{size:15,fill:`currentColor`,"aria-hidden":`true`}),r(` `+i(t.primaryLabel||n.$t(`poivelle.action.runSkill`)),1)],8,Bt)])]))}}),[[`__scopeId`,`data-v-86d45f69`]]),Ht={class:`production-rail`},Ut={class:`rail-section`},Wt={class:`section-heading`},Gt=[`title`],Kt={class:`project-list`},qt=[`onClick`],Jt={key:0,class:`empty-copy`},Yt={class:`rail-section assets-section`},Xt={class:`section-heading`},Zt=[`title`],Qt={class:`asset-filters`},$t=[`onClick`],en={class:`asset-list`},tn={key:0,class:`empty-copy`},nn={class:`rail-section compact-section`},rn={class:`section-heading static`},an={class:`revision-list`},on={key:0,class:`empty-copy`},sn=X(O({__name:`ProductionRail`,props:{projects:{},currentProjectId:{},assets:{},revisions:{},canEdit:{type:Boolean}},emits:[`select-project`,`create-project`,`import-asset`],setup(t){let r=t,a=[`all`,`character`,`location`,`image`,`video`,`voice`],u=D(`all`),d=x(()=>u.value===`all`?r.assets:r.assets.filter(e=>e.kind===u.value)),f=e=>e===`video`?Me:e===`voice`||e===`music`||e===`sfx`?Be:e===`script`||e===`brand`?U:Ce;return(r,m)=>(E(),l(`aside`,Ht,[e(`div`,Ut,[e(`div`,Wt,[e(`span`,null,i(r.$t(`poivelle.section.projects`)),1),t.canEdit?(E(),l(`button`,{key:0,type:`button`,title:r.$t(`poivelle.project.create`),onClick:m[0]||=e=>r.$emit(`create-project`)},[o(c(Ee),{size:15,"aria-hidden":`true`})],8,Gt)):s(``,!0)]),e(`div`,Kt,[(E(!0),l(p,null,w(t.projects,a=>(E(),l(`button`,{key:a.id,type:`button`,class:n([`project-row`,{active:a.id===t.currentProjectId}]),onClick:e=>r.$emit(`select-project`,a.id)},[o(c(Q),{size:15,"aria-hidden":`true`}),e(`span`,null,i(a.title),1),e(`small`,null,`v`+i(a.graph_version),1)],10,qt))),128)),t.projects.length?s(``,!0):(E(),l(`p`,Jt,i(r.$t(`poivelle.project.empty`)),1))])]),e(`div`,Yt,[e(`div`,Xt,[e(`span`,null,i(r.$t(`poivelle.section.assets`)),1),t.canEdit?(E(),l(`button`,{key:0,type:`button`,title:r.$t(`poivelle.asset.import`),onClick:m[1]||=e=>r.$emit(`import-asset`)},[o(c(je),{size:15,"aria-hidden":`true`})],8,Zt)):s(``,!0)]),e(`div`,Qt,[(E(),l(p,null,w(a,t=>e(`button`,{key:t,type:`button`,class:n({active:u.value===t}),onClick:e=>u.value=t},i(t===`all`?r.$t(`poivelle.asset.all`):t),11,$t)),64))]),e(`div`,en,[(E(!0),l(p,null,w(d.value,t=>(E(),l(`button`,{key:t.id,type:`button`,class:`asset-row`},[(E(),b(T(f(t.kind)),{size:15,"aria-hidden":`true`})),e(`span`,null,[e(`strong`,null,i(t.title),1),e(`small`,null,i(t.kind)+` · `+i(t.scope),1)])]))),128)),d.value.length?s(``,!0):(E(),l(`p`,tn,i(r.$t(`poivelle.asset.empty`)),1))])]),e(`div`,nn,[e(`div`,rn,[e(`span`,null,i(r.$t(`poivelle.section.revisions`)),1),o(c(Se),{size:14,"aria-hidden":`true`})]),e(`div`,an,[(E(!0),l(p,null,w(t.revisions.slice(0,4),t=>(E(),l(`div`,{key:t.id,class:`revision-row`},[e(`span`,null,`R`+i(t.revision_number),1),e(`small`,null,`Graph v`+i(t.graph_version),1)]))),128)),t.revisions.length?s(``,!0):(E(),l(`p`,on,i(r.$t(`poivelle.revision.empty`)),1))])])]))}}),[[`__scopeId`,`data-v-71c6054d`]]),cn=[`aria-label`],ln=[`onClick`],un=X(O({__name:`ProjectionTabs`,props:{modelValue:{},canEdit:{type:Boolean}},emits:[`update:modelValue`,`create-node`],setup(t){let a=[{value:`overview`,label:`poivelle.projection.overview`,icon:W},{value:`canvas`,label:`poivelle.projection.advanced`,icon:Ge},{value:`storyboard`,label:`poivelle.projection.storyboard`,icon:Q},{value:`timeline`,label:`poivelle.projection.timeline`,icon:Je},{value:`review`,label:`poivelle.projection.review`,icon:Ke}];return(u,d)=>(E(),l(`nav`,{class:`projection-tabs`,"aria-label":u.$t(`poivelle.projection.label`)},[(E(),l(p,null,w(a,a=>e(`button`,{key:a.value,type:`button`,class:n({active:t.modelValue===a.value}),onClick:e=>u.$emit(`update:modelValue`,a.value)},[(E(),b(T(a.icon),{size:14,"aria-hidden":`true`})),r(` `+i(u.$t(a.label)),1)],10,ln)),64)),d[1]||=e(`span`,{class:`spacer`},null,-1),t.canEdit?(E(),l(`button`,{key:0,class:`add-node`,type:`button`,onClick:d[0]||=e=>u.$emit(`create-node`)},[o(c(Ee),{size:14,"aria-hidden":`true`}),r(` `+i(u.$t(`poivelle.node.create`)),1)])):s(``,!0)],8,cn))}}),[[`__scopeId`,`data-v-393d2d3e`]]),dn={class:`connections`,"aria-hidden":`true`},fn=[`x1`,`y1`,`x2`,`y2`],pn=[`onClick`],mn={class:`node-type`},hn={class:`node-summary`},gn={key:0,class:`lock-mark`},_n={key:0,class:`empty-canvas`},vn=X(O({__name:`GraphCanvas`,props:{graph:{},selectedNodeId:{},canEdit:{type:Boolean}},emits:[`select-node`,`create-node`],setup(a){let u=a,d=x(()=>new Map(u.graph.layouts.map(e=>[e.node_id,e]))),f=e=>{let t=u.graph.nodes.findIndex(t=>t.id===e);return{x:52+t%3*250,y:54+Math.floor(t/3)*170,width:208,height:116}},m=e=>d.value.get(e)??f(e),h=e=>{let t=m(e);return{x:t.x+t.width/2,y:t.y+t.height/2}},g=e=>{let t=m(e);return{left:`${t.x}px`,top:`${t.y}px`,width:`${t.width}px`,minHeight:`${t.height}px`}},_=x(()=>u.graph.edges.filter(e=>u.graph.nodes.some(t=>t.id===e.source.node_id)&&u.graph.nodes.some(t=>t.id===e.target.node_id))),v=e=>{let t=e.payload.text??e.payload.prompt??e.payload.description;return typeof t==`string`&&t?t:`Version ${e.version}`};return(u,d)=>(E(),l(`div`,{class:`graph-canvas`,onClick:d[1]||=t(e=>u.$emit(`select-node`,void 0),[`self`])},[(E(),l(`svg`,dn,[(E(!0),l(p,null,w(_.value,e=>(E(),l(`line`,{key:e.id,x1:h(e.source.node_id).x,y1:h(e.source.node_id).y,x2:h(e.target.node_id).x,y2:h(e.target.node_id).y},null,8,fn))),128))])),(E(!0),l(p,null,w(a.graph.nodes,f=>(E(),l(`button`,{key:f.id,type:`button`,class:n([`graph-node`,`type-${f.node_type}`,{selected:f.id===a.selectedNodeId}]),style:C(g(f.id)),onClick:t(e=>u.$emit(`select-node`,f.id),[`stop`])},[e(`span`,mn,i(f.node_type),1),e(`strong`,null,i(f.title),1),e(`span`,hn,i(v(f)),1),f.locked_paths.length?(E(),l(`span`,gn,[o(c(qe),{size:11}),d[2]||=r(` locked`,-1)])):s(``,!0)],14,pn))),128)),a.graph.nodes.length?s(``,!0):(E(),l(`div`,_n,[o(c(Ge),{size:28,"stroke-width":`1.5`,"aria-hidden":`true`}),e(`h2`,null,i(u.$t(`poivelle.graph.emptyTitle`)),1),e(`p`,null,i(u.$t(`poivelle.graph.emptyBody`)),1),a.canEdit?(E(),l(`button`,{key:0,type:`button`,onClick:d[0]||=e=>u.$emit(`create-node`)},[o(c(Ee),{size:15,"aria-hidden":`true`}),r(` `+i(u.$t(`poivelle.node.create`)),1)])):s(``,!0)]))]))}}),[[`__scopeId`,`data-v-cd67c1fc`]]),yn={class:`media-lane`},bn={key:0,class:`candidate-strip`},xn=[`src`],Sn=[`src`],Cn=[`onClick`],wn={key:1},Tn=[`onClick`],En={key:1,class:`unavailable-takes`},Dn={key:2,class:`empty-candidates`},On=X(O({__name:`StoryboardMediaLane`,props:{title:{},kind:{},nodeIds:{},artifacts:{},takes:{},selections:{},canEdit:{type:Boolean},canSelect:{type:Boolean}},emits:[`select-node`,`select-take`],setup(t){let r=t,a=x(()=>{let e=new Set(r.nodeIds),t=new Map(r.artifacts.map(e=>[e.id,e])),n=r.takes.filter(t=>e.has(t.target_node_id)&&t.state===`ready`).flatMap(e=>[...new Set(e.artifact_ids)].map(e=>t.get(e)).filter(e=>!!e).map(t=>({key:`${e.id}:${t.id}`,take:e,artifact:t,selected:r.selections.some(t=>t.target_node_id===e.target_node_id&&t.take_id===e.id)}))),i=new Set(n.map(e=>e.artifact.id)),a=r.artifacts.filter(t=>e.has(t.node_id??``)&&t.kind===r.kind&&!i.has(t.id)).map(e=>({key:e.id,take:void 0,artifact:e,selected:!1}));return[...n,...a]}),o=x(()=>r.takes.filter(e=>r.nodeIds.includes(e.target_node_id)&&e.state!==`ready`)),c=D([]),u=e=>{c.value=c.value.includes(e)?c.value.filter(t=>t!==e):[...c.value.slice(-1),e]};return(r,d)=>(E(),l(`section`,yn,[e(`header`,null,[e(`span`,null,i(t.title),1),t.nodeIds[0]?(E(),l(`button`,{key:0,type:`button`,onClick:d[0]||=e=>r.$emit(`select-node`,t.nodeIds[0])},i(r.$t(`poivelle.storyboard.openNode`)),1)):s(``,!0)]),a.value.length?(E(),l(`div`,bn,[(E(!0),l(p,null,w(a.value,a=>(E(),l(`article`,{key:a.key,class:n([`candidate`,{selected:a.selected,comparing:c.value.includes(a.key)}])},[t.kind===`image`?(E(),l(`img`,{key:0,src:a.artifact.storage_url,alt:``},null,8,xn)):(E(),l(`video`,{key:1,src:a.artifact.storage_url,controls:``,preload:`metadata`},null,8,Sn)),e(`div`,null,[e(`span`,null,i(a.take?`TAKE`:`ARTIFACT`),1),e(`strong`,null,i(a.artifact.id.slice(-8)),1),t.canEdit&&t.canSelect&&a.take&&!a.selected?(E(),l(`button`,{key:0,type:`button`,onClick:e=>r.$emit(`select-take`,{target_node_id:a.take.target_node_id,take_id:a.take.id})},i(r.$t(`poivelle.storyboard.selectTake`)),9,Cn)):a.selected?(E(),l(`em`,wn,i(r.$t(`poivelle.storyboard.selected`)),1)):s(``,!0),e(`button`,{type:`button`,class:`compare-toggle`,onClick:e=>u(a.key)},i(c.value.includes(a.key)?r.$t(`poivelle.storyboard.comparing`):r.$t(`poivelle.storyboard.compare`)),9,Tn)])],2))),128))])):s(``,!0),o.value.length?(E(),l(`div`,En,[(E(!0),l(p,null,w(o.value,e=>(E(),l(`span`,{key:e.id},i(e.state===`failed`?r.$t(`poivelle.storyboard.failedTake`):r.$t(`poivelle.storyboard.restrictedTake`)),1))),128))])):s(``,!0),!a.value.length&&!o.value.length?(E(),l(`div`,Dn,i(r.$t(`poivelle.storyboard.noCandidates`)),1)):s(``,!0)]))}}),[[`__scopeId`,`data-v-4e385f6a`]]),kn={class:`storyboard-view`},An={key:0,class:`storyboard-heading`},jn={class:`section-label`},Mn=[`onClick`],Nn={class:`shot-number`},Pn={class:`shot-production`},Fn={class:`shot-metadata`},In={class:`prompt-columns`},Ln={class:`candidate-columns`},Rn=[`onClick`],zn={key:0,class:`empty-view`},Bn=X(O({__name:`StoryboardView`,props:{graph:{},storyboard:{},artifacts:{},takes:{},selections:{},selectedNodeId:{},canEdit:{type:Boolean},canSelect:{type:Boolean}},emits:[`select-node`,`select-take`],setup(t){let r=t,a=x(()=>r.storyboard?.sections.reduce((e,t)=>e+t.shots.length,0)??0),u=x(()=>r.graph.nodes.filter(e=>[`storyboard`,`scene`,`shot`,`image`,`video`].includes(e.node_type)));return(r,d)=>(E(),l(`div`,kn,[t.storyboard?(E(),l(`header`,An,[e(`div`,null,[e(`span`,null,i(t.storyboard.schema_ref),1),e(`h2`,null,i(t.storyboard.title),1)]),e(`dl`,null,[e(`div`,null,[e(`dt`,null,i(r.$t(`poivelle.storyboard.product`)),1),e(`dd`,null,i(t.storyboard.product_name),1)]),e(`div`,null,[e(`dt`,null,i(r.$t(`poivelle.storyboard.duration`)),1),e(`dd`,null,i(t.storyboard.target_duration_seconds)+`s`,1)]),e(`div`,null,[e(`dt`,null,i(r.$t(`poivelle.storyboard.shots`)),1),e(`dd`,null,i(a.value),1)])])])):s(``,!0),t.storyboard?(E(!0),l(p,{key:1},w(t.storyboard.sections,a=>(E(),l(`section`,{key:a.id,class:`story-section`},[e(`div`,jn,[e(`span`,null,i(String(a.order).padStart(2,`0`)),1),e(`h3`,null,i(a.title),1)]),(E(!0),l(p,null,w(a.shots,a=>(E(),l(`article`,{key:a.row.id,class:n([`shot-row`,{selected:a.shot_node_id===t.selectedNodeId}])},[e(`button`,{class:`shot-brief`,type:`button`,onClick:e=>r.$emit(`select-node`,a.shot_node_id)},[e(`span`,Nn,`SHOT `+i(String(a.row.shot_number).padStart(2,`0`)),1),e(`strong`,null,i(a.row.plot_description),1),e(`span`,null,i(a.row.duration_seconds)+`s · `+i(a.row.shot_size),1)],8,Mn),e(`div`,Pn,[e(`dl`,Fn,[e(`div`,null,[e(`dt`,null,i(r.$t(`poivelle.storyboard.action`)),1),e(`dd`,null,i(a.row.character_action||`—`),1)]),e(`div`,null,[e(`dt`,null,i(r.$t(`poivelle.storyboard.emotion`)),1),e(`dd`,null,i(a.row.emotion||`—`),1)]),e(`div`,null,[e(`dt`,null,i(r.$t(`poivelle.storyboard.lighting`)),1),e(`dd`,null,i(a.row.lighting_and_atmosphere),1)]),e(`div`,null,[e(`dt`,null,i(r.$t(`poivelle.storyboard.audio`)),1),e(`dd`,null,i(a.row.audio_effects),1)])]),e(`div`,In,[e(`div`,null,[e(`span`,null,i(r.$t(`poivelle.storyboard.imagePrompt`)),1),e(`p`,null,i(a.row.image_generation_prompt),1)]),e(`div`,null,[e(`span`,null,i(r.$t(`poivelle.storyboard.motionPrompt`)),1),e(`p`,null,i(a.row.video_motion_prompt),1)])])]),e(`div`,Ln,[o(On,{title:r.$t(`poivelle.storyboard.frames`),kind:`image`,"node-ids":a.image_node_ids,artifacts:t.artifacts,takes:t.takes,selections:t.selections,"can-edit":t.canEdit,"can-select":t.canSelect,onSelectNode:d[0]||=e=>r.$emit(`select-node`,e),onSelectTake:d[1]||=e=>r.$emit(`select-take`,e)},null,8,[`title`,`node-ids`,`artifacts`,`takes`,`selections`,`can-edit`,`can-select`]),o(On,{title:r.$t(`poivelle.storyboard.motion`),kind:`video`,"node-ids":a.video_node_ids,artifacts:t.artifacts,takes:t.takes,selections:t.selections,"can-edit":t.canEdit,"can-select":t.canSelect,onSelectNode:d[2]||=e=>r.$emit(`select-node`,e),onSelectTake:d[3]||=e=>r.$emit(`select-take`,e)},null,8,[`title`,`node-ids`,`artifacts`,`takes`,`selections`,`can-edit`,`can-select`])])],2))),128))]))),128)):(E(),l(p,{key:2},[(E(!0),l(p,null,w(u.value,(a,s)=>(E(),l(`button`,{key:a.id,type:`button`,class:n([`legacy-card`,{selected:a.id===t.selectedNodeId}]),onClick:e=>r.$emit(`select-node`,a.id)},[e(`span`,null,i(String(s+1).padStart(2,`0`)),1),o(c(Q),{size:26,"stroke-width":`1.25`,"aria-hidden":`true`}),e(`strong`,null,i(a.title),1)],10,Rn))),128)),u.value.length?s(``,!0):(E(),l(`div`,zn,[o(c(Q),{size:30,"stroke-width":`1.4`}),e(`h2`,null,i(r.$t(`poivelle.storyboard.emptyTitle`)),1),e(`p`,null,i(r.$t(`poivelle.storyboard.emptyBody`)),1)]))],64))]))}}),[[`__scopeId`,`data-v-ce90da94`]]),Vn={class:`timeline-view`},Hn={key:0,class:`master-output`,"aria-labelledby":`poivelle-master-title`},Un={class:`master-heading`},Wn={class:`master-kicker`},Gn={id:`poivelle-master-title`},Kn=[`href`],qn=[`src`,`aria-label`],Jn={key:0,class:`master-status`,role:`status`},Yn={key:1,class:`master-status is-error`,role:`alert`},Xn={class:`master-metadata`},Zn={class:`timeline-ruler`},Qn={key:1,class:`tracks`},$n={class:`track-label`},er={class:`track-lane`},tr=[`title`],nr=[`aria-label`],rr={key:0,class:`clip-actions`},ir=[`disabled`,`onClick`],ar=[`disabled`,`onClick`],or={key:2,class:`empty-timeline`},sr=120/5e3,cr=X(O({__name:`TimelineView`,props:{timeline:{},graph:{},artifacts:{},canEdit:{type:Boolean}},emits:[`move-clip`],setup(t){let n=t,a=x(()=>{let e=new Set(n.graph.nodes.filter(e=>e.node_type===`composition`).map(e=>e.id));return[...n.artifacts??[]].filter(t=>t.kind===`video`&&t.state===`committed`&&t.restriction_watermark===0&&!!t.node_id&&e.has(t.node_id)&&t.metadata?.operation===`compose.timeline@1`).sort((e,t)=>t.created_at.localeCompare(e.created_at))[0]}),u=D(!0),d=D(!1);_(()=>a.value?.id,()=>{u.value=!0,d.value=!1});let f=()=>{u.value=!0,d.value=!1},m=()=>{u.value=!1,d.value=!0},h=e=>{let t=a.value?.metadata?.[e];return typeof t==`number`&&Number.isFinite(t)?t:void 0},g=x(()=>{let e=h(`duration_ms`);return e===void 0?`—`:`${(e/1e3).toFixed(1)}s`}),v=x(()=>{let e=h(`width`),t=h(`height`);return e&&t?`${e} × ${t}`:`—`}),y=x(()=>{let e=h(`width`),t=h(`height`);return e&&t?{aspectRatio:`${e} / ${t}`}:void 0}),b=e=>n.timeline?.clips.filter(t=>t.track_id===e)??[],S=e=>e.artifact_id.slice(-6),T=e=>({left:`${e.timeline_start_ms*sr}px`,width:`${Math.max(48,(e.source_out_ms-e.source_in_ms)/(e.speed??1)*sr)}px`});return(n,_)=>(E(),l(`div`,Vn,[a.value?(E(),l(`section`,Hn,[e(`div`,Un,[e(`div`,null,[e(`span`,Wn,i(n.$t(`poivelle.timeline.deliverable`)),1),e(`h2`,Gn,i(n.$t(`poivelle.timeline.masterTitle`)),1)]),e(`a`,{class:`master-download`,href:a.value.storage_url,target:`_blank`,rel:`noopener noreferrer`,download:``},[o(c(xe),{size:15,"aria-hidden":`true`}),r(` `+i(n.$t(`poivelle.timeline.download`)),1)],8,Kn)]),e(`div`,{class:`master-media`,style:C(y.value)},[e(`video`,{class:`master-player`,src:a.value.storage_url,"aria-label":n.$t(`poivelle.timeline.playerLabel`),controls:``,playsinline:``,preload:`metadata`,onLoadstart:f,onLoadedmetadata:_[0]||=e=>u.value=!1,onCanplay:_[1]||=e=>u.value=!1,onError:m},null,40,qn),u.value&&!d.value?(E(),l(`div`,Jn,[o(c(we),{size:24,class:`is-spinning`,"aria-hidden":`true`}),e(`span`,null,i(n.$t(`poivelle.timeline.loading`)),1)])):s(``,!0),d.value?(E(),l(`div`,Yn,[o(c(Ae),{size:24,"aria-hidden":`true`}),e(`span`,null,i(n.$t(`poivelle.timeline.loadError`)),1)])):s(``,!0)],4),e(`dl`,Xn,[e(`div`,null,[e(`dt`,null,i(n.$t(`poivelle.timeline.duration`)),1),e(`dd`,null,i(g.value),1)]),e(`div`,null,[e(`dt`,null,i(n.$t(`poivelle.timeline.frame`)),1),e(`dd`,null,i(v.value),1)]),e(`div`,null,[e(`dt`,null,i(n.$t(`poivelle.timeline.videoClips`)),1),e(`dd`,null,i(h(`video_clips`)??`—`),1)]),e(`div`,null,[e(`dt`,null,i(n.$t(`poivelle.timeline.audioClips`)),1),e(`dd`,null,i(h(`audio_clips`)??`—`),1)])])])):s(``,!0),e(`div`,Zn,[(E(),l(p,null,w(10,t=>e(`span`,{key:t},i((t-1)*5)+`s`,1)),64))]),t.timeline?.tracks.length?(E(),l(`div`,Qn,[(E(!0),l(p,null,w(t.timeline.tracks,r=>(E(),l(`div`,{key:r.id,class:`track-row`},[e(`div`,$n,i(r.title||r.kind||r.id),1),e(`div`,er,[(E(!0),l(p,null,w(b(r.id),(a,o)=>(E(),l(`div`,{key:a.id,class:`timeline-clip`,style:C(T(a)),title:a.artifact_id},[e(`button`,{type:`button`,"aria-label":a.artifact_id},i(S(a)),9,nr),t.canEdit&&r.kind===`video`?(E(),l(`span`,rr,[e(`button`,{type:`button`,disabled:o===0,onClick:e=>n.$emit(`move-clip`,{trackId:r.id,clipId:a.id,direction:-1})},` ‹ `,8,ir),e(`button`,{type:`button`,disabled:o===b(r.id).length-1,onClick:e=>n.$emit(`move-clip`,{trackId:r.id,clipId:a.id,direction:1})},` › `,8,ar)])):s(``,!0)],12,tr))),128))])]))),128))])):(E(),l(`div`,or,[o(c(Ue),{size:30,"stroke-width":`1.4`}),e(`h2`,null,i(n.$t(`poivelle.timeline.emptyTitle`)),1),e(`p`,null,i(n.$t(`poivelle.timeline.emptyBody`)),1)]))]))}}),[[`__scopeId`,`data-v-37eb37c8`]]),lr={class:`review-view`},ur={class:`review-summary`},dr={class:`eyebrow`},fr={class:`summary-metrics`},pr={class:`review-columns`},mr={key:0,class:`item-actions`},hr=[`onClick`],gr={key:0,class:`empty-copy`},_r=[`onClick`],vr=[`onClick`],yr={key:0,class:`empty-copy`},br={key:1,class:`run-detail`},xr={key:0},Sr=[`onClick`],Cr={key:2,class:`forensic-failures`,role:`alert`},wr=X(O({__name:`ReviewView`,props:{graph:{},proposals:{},revisions:{},runs:{},activeRun:{},evaluations:{},forensicValidations:{},costs:{},canEdit:{type:Boolean}},emits:[`reject-proposal`,`cancel-run`,`open-run`,`retry-step`],setup(a){let o=a,c=x(()=>o.proposals.filter(e=>e.state===`awaiting_approval`)),u=e=>![`release_pending`,`succeeded`,`failed`,`cancelled`].includes(e.state),d=x(()=>o.evaluations.filter(e=>e.verdict===`pass`).length),f=x(()=>o.forensicValidations[0]),m=x(()=>f.value?.result.checks.filter(e=>e.verdict===`fail`)??[]),h=e=>[...o.activeRun?.attempts??[]].filter(t=>t.step_run_id===e).sort((e,t)=>t.created_at.localeCompare(e.created_at))[0],g=e=>(e/1e6).toFixed(2);return(o,_)=>(E(),l(`div`,lr,[e(`section`,ur,[e(`div`,null,[e(`span`,dr,i(o.$t(`poivelle.review.heading`)),1),e(`h2`,null,i(a.revisions.length?`Revision ${a.revisions[0].revision_number}`:o.$t(`poivelle.review.noRevision`)),1)]),e(`div`,fr,[e(`span`,null,[e(`strong`,null,i(a.graph.nodes.length),1),r(i(o.$t(`poivelle.review.nodes`)),1)]),e(`span`,null,[e(`strong`,null,i(a.proposals.length),1),r(i(o.$t(`poivelle.review.proposals`)),1)]),e(`span`,null,[e(`strong`,null,i(a.runs.length),1),r(i(o.$t(`poivelle.review.runs`)),1)]),e(`span`,null,[e(`strong`,null,i(g(a.costs?.totals_microcredits.final??0)),1),r(i(o.$t(`poivelle.review.finalCost`)),1)]),e(`span`,null,[e(`strong`,null,i(d.value)+`/`+i(a.evaluations.length),1),r(i(o.$t(`poivelle.review.qualityChecks`)),1)]),e(`span`,null,[e(`strong`,{class:n(f.value?.result.verdict===`fail`?`metric-fail`:``)},i(f.value?.result.verdict??`—`),3),r(i(o.$t(`poivelle.review.forensics`)),1)])])]),e(`section`,pr,[e(`div`,null,[e(`h3`,null,i(o.$t(`poivelle.review.pendingProposals`)),1),(E(!0),l(p,null,w(c.value,t=>(E(),l(`article`,{key:t.id,class:`review-item`},[e(`span`,{class:n([`risk`,`risk-${t.risk_class}`])},i(t.risk_class),3),e(`strong`,null,i(t.intent),1),e(`p`,null,i(t.rationale),1),a.canEdit?(E(),l(`div`,mr,[e(`span`,null,i(o.$t(`poivelle.review.approvalTokenRequired`)),1),e(`button`,{type:`button`,onClick:e=>o.$emit(`reject-proposal`,t.id)},i(o.$t(`poivelle.review.reject`)),9,hr)])):s(``,!0)]))),128)),c.value.length?s(``,!0):(E(),l(`p`,gr,i(o.$t(`poivelle.review.noProposals`)),1))]),e(`div`,null,[e(`h3`,null,i(o.$t(`poivelle.review.execution`)),1),(E(!0),l(p,null,w(a.runs,r=>(E(),l(`article`,{key:r.id,class:n([`run-item`,{active:a.activeRun?.run.id===r.id}]),onClick:e=>o.$emit(`open-run`,r.id)},[e(`span`,{class:n([`run-state`,`state-${r.state}`])},null,2),e(`div`,null,[e(`strong`,null,i(r.state),1),e(`small`,null,i(r.id),1)]),a.canEdit&&u(r)?(E(),l(`button`,{key:0,type:`button`,class:`cancel-run`,onClick:t(e=>o.$emit(`cancel-run`,r.id),[`stop`])},i(o.$t(`poivelle.run.cancel`)),9,vr)):s(``,!0)],10,_r))),128)),a.runs.length?s(``,!0):(E(),l(`p`,yr,i(o.$t(`poivelle.review.noRuns`)),1)),a.activeRun?(E(),l(`section`,br,[e(`header`,null,[e(`strong`,null,i(o.$t(`poivelle.review.runDetail`)),1),e(`span`,null,i(a.activeRun.attempts.length)+` `+i(o.$t(`poivelle.review.attempts`)),1)]),(E(!0),l(p,null,w(a.activeRun.steps,r=>(E(),l(`article`,{key:r.id,class:`step-item`},[e(`span`,{class:n([`run-state`,`state-${r.state}`])},null,2),e(`div`,null,[e(`strong`,null,i(r.operation),1),e(`small`,null,i(r.state)+` · `+i(r.node_id),1),h(r.id)?.error?(E(),l(`p`,xr,i(h(r.id)?.error?.code??`provider_error`)+`: `+i(h(r.id)?.error?.message??o.$t(`poivelle.error.generic`)),1)):s(``,!0)]),a.canEdit&&[`failed`,`manual_recovery`].includes(r.state)?(E(),l(`button`,{key:0,type:`button`,class:`retry-step`,onClick:t(e=>o.$emit(`retry-step`,r),[`stop`])},i(o.$t(`poivelle.review.retryStep`)),9,Sr)):s(``,!0)]))),128))])):s(``,!0),m.value.length?(E(),l(`section`,Cr,[e(`strong`,null,i(o.$t(`poivelle.review.forensics`)),1),(E(!0),l(p,null,w(m.value,e=>(E(),l(`p`,{key:e.code},i(e.code)+` · `+i(String(e.actual??`—`))+` / `+i(String(e.expected??`—`)),1))),128))])):s(``,!0)])])]))}}),[[`__scopeId`,`data-v-e66361d5`]]),Tr={class:`inspector-panel`},Er={class:`inspector-heading`},Dr={class:`field`},Or={class:`field`},kr=[`value`],Ar={class:`field grow`},jr={class:`node-meta`},Mr={key:1,class:`empty-inspector`},Nr=X(O({__name:`InspectorPanel`,props:{node:{}},emits:[`update`,`delete`],setup(t,{emit:n}){let a=t,s=n,u=D(``),f=D(``);_(()=>a.node,e=>{u.value=e?.title??``;let t=e?.payload.prompt??e?.payload.text??``;f.value=typeof t==`string`?t:``},{immediate:!0});let m=x(()=>a.node?a.node.node_type===`video`?Me:a.node.node_type===`audio`?Be:[`shot`,`scene`,`storyboard`].includes(a.node.node_type)?Q:[`image`,`character`,`location`].includes(a.node.node_type)?Ce:a.node.node_type===`script`||a.node.node_type===`text`?U:_e:G),h=()=>{let e=u.value.trim();a.node&&e&&e!==a.node.title&&s(`update`,{path:`/title`,value:e})},y=()=>{if(!a.node)return;let e=a.node.payload.prompt===void 0?`text`:`prompt`;f.value!==a.node.payload[e]&&s(`update`,{path:`/payload/${e}`,value:f.value})};return(n,a)=>(E(),l(`aside`,Tr,[e(`div`,Er,[e(`div`,null,[e(`span`,null,i(n.$t(`poivelle.section.inspector`)),1),e(`strong`,null,i(t.node?.title||n.$t(`poivelle.inspector.noSelection`)),1)]),(E(),b(T(m.value),{size:18,"aria-hidden":`true`}))]),t.node?(E(),l(p,{key:0},[e(`label`,Dr,[e(`span`,null,i(n.$t(`poivelle.field.title`)),1),v(e(`input`,{"onUpdate:modelValue":a[0]||=e=>u.value=e,type:`text`,onBlur:h,onKeydown:d(h,[`enter`])},null,544),[[g,u.value]])]),e(`label`,Or,[e(`span`,null,i(n.$t(`poivelle.field.type`)),1),e(`input`,{value:t.node.node_type,type:`text`,disabled:``},null,8,kr)]),e(`label`,Ar,[e(`span`,null,i(n.$t(`poivelle.field.prompt`)),1),v(e(`textarea`,{"onUpdate:modelValue":a[1]||=e=>f.value=e,rows:`8`,onBlur:y},null,544),[[g,f.value]])]),e(`div`,jr,[a[3]||=e(`span`,null,`NODE`,-1),e(`code`,null,i(t.node.id),1),a[4]||=e(`span`,null,`VERSION`,-1),e(`code`,null,i(t.node.version),1)]),e(`button`,{class:`danger-button`,type:`button`,onClick:a[2]||=e=>n.$emit(`delete`)},[o(c(ke),{size:14,"aria-hidden":`true`}),r(` `+i(n.$t(`poivelle.node.delete`)),1)])],64)):(E(),l(`div`,Mr,[o(c(G),{size:24,"stroke-width":`1.4`}),e(`p`,null,i(n.$t(`poivelle.inspector.empty`)),1)]))]))}}),[[`__scopeId`,`data-v-7a6ae318`]]),Pr={class:`agent-dock`},Fr={class:`agent-identity`},Ir={class:`proposal-strip`},Lr=[`onClick`],Rr={key:0},zr=[`disabled`],Br=X(O({__name:`AgentDock`,props:{proposals:{},selectedNodeId:{},skill:{},canEdit:{type:Boolean}},emits:[`run`,`open-proposal`],setup(t){let a=t,u=x(()=>a.proposals.filter(e=>e.state===`awaiting_approval`));return(a,d)=>(E(),l(`section`,Pr,[e(`div`,Fr,[o(c(Ve),{size:16,"aria-hidden":`true`}),e(`div`,null,[e(`strong`,null,i(a.$t(`poivelle.agent.title`)),1),e(`span`,null,i(t.skill),1)])]),e(`div`,Ir,[(E(!0),l(p,null,w(u.value,t=>(E(),l(`button`,{key:t.id,type:`button`,onClick:e=>a.$emit(`open-proposal`,t.id)},[e(`span`,{class:n([`risk-dot`,`risk-${t.risk_class}`])},null,2),e(`strong`,null,i(t.intent),1),e(`small`,null,i(t.state),1)],8,Lr))),128)),u.value.length?s(``,!0):(E(),l(`p`,Rr,i(a.$t(`poivelle.agent.noProposals`)),1))]),t.canEdit?(E(),l(`button`,{key:0,class:`agent-button`,type:`button`,disabled:!t.selectedNodeId,onClick:d[0]||=e=>a.$emit(`run`)},[o(c(Oe),{size:15,"aria-hidden":`true`}),r(` `+i(a.$t(`poivelle.agent.plan`)),1)],8,zr)):s(``,!0)]))}}),[[`__scopeId`,`data-v-81fac9f8`]]),Vr={class:`project-guide`,"aria-labelledby":`project-guide-title`},Hr={class:`guide-copy`},Ur={id:`project-guide-title`},Wr={class:`guide-body`},Gr={class:`project-facts`},Kr={class:`guide-actions`},qr=[`disabled`],Jr={class:`cost-note`},Yr={class:`production-steps`},Xr={class:`done`},Zr=[`value`,`max`],Qr=[`value`,`max`],$r=X(O({__name:`ProjectGuide`,props:{projectTitle:{},graph:{},storyboard:{},artifacts:{},takes:{},selections:{},canEdit:{type:Boolean},busy:{type:Boolean}},emits:[`generate-node`,`open-storyboard`],setup(t){let a=t,u=x(()=>a.storyboard?a.storyboard.sections.flatMap(e=>e.shots.flatMap(e=>e.image_node_ids)):a.graph.nodes.filter(e=>e.node_type===`image`).map(e=>e.id)),d=x(()=>a.storyboard?a.storyboard.sections.flatMap(e=>e.shots.flatMap(e=>e.video_node_ids)):a.graph.nodes.filter(e=>e.node_type===`video`).map(e=>e.id)),f=x(()=>new Set([...a.artifacts.filter(e=>e.state===`committed`).flatMap(e=>e.node_id??[]),...a.takes.filter(e=>e.state===`ready`).map(e=>e.target_node_id)])),p=x(()=>u.value.filter(e=>f.value.has(e)).length),m=x(()=>d.value.filter(e=>f.value.has(e)).length),h=x(()=>new Set(a.selections.map(e=>e.target_node_id))),g=x(()=>u.value.filter(e=>h.value.has(e)).length),_=x(()=>d.value.filter(e=>h.value.has(e)).length),v=x(()=>p.value===u.value.length&&g.value<u.value.length||m.value===d.value.length&&_.value<d.value.length),y=x(()=>a.graph.nodes.some(e=>e.node_type===`output`)),S=x(()=>{let e=new Set(a.graph.nodes.filter(e=>e.node_type===`output`).map(e=>e.id));return a.artifacts.some(t=>t.state===`committed`&&!!t.node_id&&e.has(t.node_id))}),C=x(()=>{let e=u.value.find(e=>!f.value.has(e));if(e)return a.graph.nodes.find(t=>t.id===e);if(g.value<u.value.length)return;let t=d.value.find(e=>!f.value.has(e));if(t)return a.graph.nodes.find(e=>e.id===t);if(!(_.value<d.value.length))return a.graph.nodes.find(e=>e.node_type===`audio`&&!f.value.has(e.id))}),w=x(()=>(a.storyboard?.sections.reduce((e,t)=>e+t.shots.length,0)??a.graph.nodes.filter(e=>e.node_type===`shot`).length)||d.value.length),T=x(()=>{let e=a.graph.nodes.find(e=>e.node_type===`script`),t=Number(e?.payload?.target_duration_seconds);return a.storyboard?.target_duration_seconds??(Number.isFinite(t)?t:40)}),D=x(()=>{let e=a.graph.nodes.find(e=>e.node_type===`script`);return String(e?.payload?.aspect_ratio??`16:9`)}),O=x(()=>C.value?.node_type===`image`?q(`poivelle.guide.generateFrame`,{current:p.value+1,total:u.value.length}):C.value?.node_type===`video`?q(`poivelle.guide.generateMotion`,{current:m.value+1,total:d.value.length}):q(`poivelle.guide.generateScore`));return(a,f)=>(E(),l(`section`,Vr,[e(`div`,Hr,[e(`p`,null,i(a.$t(`poivelle.guide.kicker`)),1),e(`h1`,Ur,i(a.$t(`poivelle.guide.title`,{title:t.projectTitle})),1),e(`p`,Wr,i(a.$t(`poivelle.guide.body`)),1),e(`dl`,Gr,[e(`div`,null,[e(`dt`,null,i(a.$t(`poivelle.guide.duration`)),1),e(`dd`,null,i(T.value)+`s`,1)]),e(`div`,null,[e(`dt`,null,i(a.$t(`poivelle.guide.shots`)),1),e(`dd`,null,i(w.value),1)]),e(`div`,null,[e(`dt`,null,i(a.$t(`poivelle.guide.format`)),1),e(`dd`,null,i(D.value),1)])]),e(`div`,Kr,[C.value?(E(),l(`button`,{key:0,type:`button`,class:`primary-action`,disabled:!t.canEdit||t.busy,onClick:f[0]||=e=>a.$emit(`generate-node`,C.value.id)},[t.busy?(E(),b(c(we),{key:0,size:17,class:`spinning`,"aria-hidden":`true`})):(E(),b(c(Oe),{key:1,size:17,"aria-hidden":`true`})),r(` `+i(O.value),1)],8,qr)):(E(),l(`button`,{key:1,type:`button`,class:`primary-action`,onClick:f[1]||=e=>a.$emit(`open-storyboard`)},[o(c(Q),{size:17,"aria-hidden":`true`}),r(` `+i(v.value?a.$t(`poivelle.guide.chooseResults`):a.$t(`poivelle.guide.reviewResults`)),1)])),e(`button`,{type:`button`,class:`secondary-action`,onClick:f[2]||=e=>a.$emit(`open-storyboard`)},[r(i(a.$t(`poivelle.guide.reviewPlan`))+` `,1),o(c(he),{size:15,"aria-hidden":`true`})])]),e(`p`,Jr,[o(c(Ye),{size:14,"aria-hidden":`true`}),r(` `+i(a.$t(`poivelle.guide.costNote`)),1)])]),e(`ol`,Yr,[e(`li`,Xr,[e(`span`,null,[o(c(H),{size:15,"aria-hidden":`true`})]),e(`div`,null,[e(`strong`,null,i(a.$t(`poivelle.guide.stepPlan`)),1),e(`p`,null,i(a.$t(`poivelle.guide.stepPlanBody`,{shots:w.value})),1)]),e(`small`,null,i(a.$t(`poivelle.guide.ready`)),1)]),e(`li`,{class:n({current:g.value<u.value.length,done:u.value.length>0&&g.value===u.value.length})},[f[3]||=e(`span`,null,`2`,-1),e(`div`,null,[e(`strong`,null,i(a.$t(`poivelle.guide.stepFrames`)),1),e(`p`,null,i(a.$t(`poivelle.guide.stepFramesBody`)),1),e(`progress`,{value:p.value,max:Math.max(u.value.length,1)},null,8,Zr)]),e(`small`,null,i(p.value)+` `+i(a.$t(`poivelle.guide.generated`))+` · `+i(g.value)+` `+i(a.$t(`poivelle.guide.selected`)),1)],2),e(`li`,{class:n({current:g.value===u.value.length&&_.value<d.value.length,done:d.value.length>0&&_.value===d.value.length})},[f[4]||=e(`span`,null,`3`,-1),e(`div`,null,[e(`strong`,null,i(a.$t(`poivelle.guide.stepMotion`)),1),e(`p`,null,i(a.$t(`poivelle.guide.stepMotionBody`)),1),e(`progress`,{value:m.value,max:Math.max(d.value.length,1)},null,8,Qr)]),e(`small`,null,i(m.value)+` `+i(a.$t(`poivelle.guide.generated`))+` · `+i(_.value)+` `+i(a.$t(`poivelle.guide.selected`)),1)],2),y.value?(E(),l(`li`,{key:0,class:n({current:_.value===d.value.length&&!S.value,done:S.value})},[f[5]||=e(`span`,null,`4`,-1),e(`div`,null,[e(`strong`,null,i(a.$t(`poivelle.guide.stepMaster`)),1),e(`p`,null,i(a.$t(`poivelle.guide.stepMasterBody`)),1)]),e(`small`,null,i(S.value?a.$t(`poivelle.guide.ready`):a.$t(`poivelle.guide.waiting`)),1)],2)):s(``,!0)])]))}}),[[`__scopeId`,`data-v-86112731`]]),ei={class:`poivelle-studio`},ti={key:0,class:`error-banner`},ni={key:1,class:`loading-state`},ri={key:2,class:`studio-body`},ii={class:`projection-workspace`},ai={class:`projection-content`},oi={key:3,class:`onboarding`},si={key:0,class:`dry-run-summary`},ci={class:`dry-run-note`},li=X(O({__name:`StudioWorkspace`,emits:[`back-home`],setup(n){let d=ae(),m=x(()=>d.state.poivelle),h=x(()=>m.value?.workspaces??[]),g=x(()=>m.value?.projects??[]),_=x(()=>m.value?.graph),v=x(()=>m.value?.assets??[]),y=x(()=>m.value?.artifacts??[]),C=x(()=>m.value?.takes??[]),T=x(()=>m.value?.selections??[]),O=x(()=>m.value?.storyboard),k=x(()=>m.value?.revisions??[]),A=x(()=>m.value?.proposals??[]),ee=x(()=>m.value?.runs??[]),j=x(()=>m.value?.activeRun),te=x(()=>m.value?.evaluations??[]),ne=x(()=>m.value?.forensicValidations??[]),re=x(()=>m.value?.costs),M=x(()=>m.value?.timeline),N=x(()=>m.value?.projection??`overview`),P=x(()=>m.value?.selectedNodeId),F=x(()=>_.value?.nodes.find(e=>e.id===P.value)),L=x(()=>g.value.find(e=>e.id===m.value?.currentProjectId)),B=x(()=>[`owner`,`producer`,`director`,`editor`].includes(m.value?.currentMembership?.role??``)),V=x(()=>m.value?.dryRun),ce=x(()=>m.value?.error),le=x(()=>[m.value?.status?.bootstrap,m.value?.status?.graph].includes(oe.Request)),ue=x(()=>new Set([...y.value.filter(e=>e.state===`committed`).flatMap(e=>e.node_id??[]),...C.value.filter(e=>e.state===`ready`).map(e=>e.target_node_id)])),de=x(()=>new Set(T.value.map(e=>e.target_node_id))),fe=x(()=>O.value?O.value.sections.flatMap(e=>e.shots.flatMap(e=>e.image_node_ids)):_.value?.nodes.filter(e=>e.node_type===`image`).map(e=>e.id)??[]),me=x(()=>O.value?O.value.sections.flatMap(e=>e.shots.flatMap(e=>e.video_node_ids)):_.value?.nodes.filter(e=>e.node_type===`video`).map(e=>e.id)??[]),he=x(()=>fe.value.length>0&&fe.value.every(e=>ue.value.has(e))&&fe.value.some(e=>!de.value.has(e))||me.value.length>0&&me.value.every(e=>ue.value.has(e))&&me.value.some(e=>!de.value.has(e))),ge=x(()=>{let e=fe.value.find(e=>!ue.value.has(e));if(e)return _.value?.nodes.find(t=>t.id===e);if(fe.value.some(e=>!de.value.has(e)))return;let t=me.value.find(e=>!ue.value.has(e));if(t)return _.value?.nodes.find(e=>e.id===t);if(me.value.some(e=>!de.value.has(e)))return;let n=_.value?.nodes.find(e=>e.node_type===`audio`&&!ue.value.has(e.id));if(n)return n}),_e=x(()=>ge.value?.node_type===`image`?q(`poivelle.guide.generateNextFrame`):ge.value?.node_type===`video`?q(`poivelle.guide.generateNextMotion`):ge.value?.node_type===`audio`?q(`poivelle.guide.generateScore`):q(`poivelle.guide.continue`)),H=D(!1),ve=D(!1),ye=D(!1),be=D(!1),xe=D(!1),U=D(!1),Se=f({name:``,monthly_limit_microcredits:void 0}),W=f({workspace_id:``,title:``,workflow:`blank`,skill:`film.drama.short@1.0.0`,product_name:``,product_category:`professional action imaging device`,brand_tone:`precise, fearless, cinematic, premium`,aspect_ratio:`16:9`}),Ce=[{label:q(`poivelle.project.blankWorkflow`),value:`blank`},{label:q(`poivelle.project.commercialTVC`),value:`commercial_tvc`}],G=f({node_type:`scene`,title:``,prompt:``}),K=f({title:``,kind:`image`,source_url:``,content_hash:``}),Te=[`script`,`character`,`location`,`prop`,`storyboard`,`scene`,`shot`,`image`,`video`,`audio`,`subtitle`,`composition`,`output`,`note`],De=[`character`,`location`,`prop`,`image`,`video`,`voice`,`music`,`sfx`,`brand`],Oe=()=>d.dispatch(`poivelle/bootstrap`),ke=e=>d.dispatch(`poivelle/loadProject`,e),je=e=>d.dispatch(`poivelle/selectNode`,e),Me=e=>d.dispatch(`poivelle/setProjection`,e),X=()=>{W.workspace_id=m.value?.currentWorkspaceId??h.value[0]?.id??``,ye.value=!0},Z=async()=>{Se.name.trim()&&await $(async()=>{await d.dispatch(`poivelle/createWorkspace`,{...Se,name:Se.name.trim()}),ve.value=!1,X()})},Fe=async()=>{!W.workspace_id||!W.title.trim()||await $(async()=>{W.workflow===`commercial_tvc`?(await d.dispatch(`poivelle/createCommercialTVCProject`,{workspace_id:W.workspace_id,title:W.title.trim(),product_name:W.product_name.trim()||W.title.trim(),product_category:W.product_category.trim(),brand_tone:W.brand_tone.trim(),aspect_ratio:W.aspect_ratio,managed_execution:!1}),Me(`storyboard`)):await d.dispatch(`poivelle/createProject`,{workspace_id:W.workspace_id,title:W.title.trim(),skill:W.skill,domain:`film.drama.short`}),ye.value=!1,W.title=``})},Ie=async()=>{G.title.trim()&&await $(async()=>{await d.dispatch(`poivelle/createNode`,{node_type:G.node_type,title:G.title.trim(),payload:{prompt:G.prompt}}),be.value=!1,G.title=``,G.prompt=``})},Le=async()=>{!m.value?.currentWorkspaceId||!K.title||!K.source_url||!K.content_hash||await $(async()=>{await d.dispatch(`poivelle/importAsset`,{...K,project_id:m.value.currentProjectId}),xe.value=!1})},Re=e=>d.dispatch(`poivelle/updateSelectedNode`,e),Be=async()=>{await Pe.confirm(q(`poivelle.node.deleteConfirm`),``,{type:`warning`}),await d.dispatch(`poivelle/deleteSelectedNode`)},Ve=async()=>{await d.dispatch(`poivelle/commitRevision`,`Studio checkpoint`),se.success(q(`poivelle.revision.committed`))},He=async()=>{F.value&&await $(async()=>{await d.dispatch(`poivelle/dryRun`,F.value?.node_type===`composition`?`compose`:`generate`),U.value=!0})},We=async e=>{await je(e),await a(),await He()},Ge=async()=>{if(N.value===`overview`){ge.value?await We(ge.value.id):he.value&&Me(`storyboard`);return}F.value&&await He()},Ke=async()=>{await $(async()=>{let e=await d.dispatch(`poivelle/confirmDryRun`);U.value=!1,e&&se.success(q(`poivelle.run.queued`))})},qe=e=>{Me(`review`),se.info(`${q(`poivelle.agent.proposal`)} ${e.slice(-8)}`)},Je=async e=>{await Pe.confirm(q(`poivelle.review.rejectConfirm`),``,{type:`warning`}),await $(()=>d.dispatch(`poivelle/rejectProposal`,e))},Ye=async e=>{await Pe.confirm(q(`poivelle.run.cancelConfirm`),``,{type:`warning`}),await $(()=>d.dispatch(`poivelle/cancelRun`,e))},Xe=e=>$(()=>d.dispatch(`poivelle/loadRun`,e)),Ze=async e=>{await $(async()=>{await d.dispatch(`poivelle/retryStep`,e),U.value=!0})},Qe=async e=>{if(!M.value)return;let t=M.value.clips.map(e=>({...e})),n=t.filter(t=>t.track_id===e.trackId).sort((e,t)=>e.timeline_start_ms-t.timeline_start_ms),r=n.findIndex(t=>t.id===e.clipId),i=r+e.direction;if(r<0||i<0||i>=n.length)return;[n[r],n[i]]=[n[i],n[r]];let a=0;n.forEach(e=>{let t=typeof e.speed==`number`&&Number.isFinite(e.speed)&&e.speed>0?e.speed:1;e.timeline_start_ms=a,a+=(e.source_out_ms-e.source_in_ms)/t}),await $(()=>d.dispatch(`poivelle/saveTimeline`,{...M.value,clips:t}))},$e=async e=>{await $(async()=>{await d.dispatch(`poivelle/selectTake`,e),se.success(q(`poivelle.storyboard.selectionSaved`))})},et=e=>`${(e/1e6).toFixed(2)} credits`,$=async e=>{H.value=!0;try{await e()}catch(e){se.error(e?.response?.data?.detail?.message??e?.response?.data?.detail??e?.message??q(`poivelle.error.generic`))}finally{H.value=!1}};return u(Oe),(n,a)=>(E(),l(`main`,ei,[o(Vt,{"project-title":L.value?.title,"graph-version":_.value?.graph_version,"can-run":B.value&&(N.value===`overview`?!!ge.value||he.value:!!F.value),"can-edit":B.value,"primary-label":N.value===`overview`?he.value?n.$t(`poivelle.guide.chooseResults`):_e.value:void 0,onOpenProjects:a[0]||=e=>ye.value=!0,onHome:a[1]||=e=>n.$emit(`back-home`),onCommit:Ve,onRun:Ge},null,8,[`project-title`,`graph-version`,`can-run`,`can-edit`,`primary-label`]),ce.value?(E(),l(`div`,ti,[o(c(Ae),{size:15,"aria-hidden":`true`}),e(`span`,null,i(ce.value),1),e(`button`,{type:`button`,onClick:Oe},i(n.$t(`poivelle.action.retry`)),1)])):s(``,!0),le.value&&!_.value?(E(),l(`div`,ni,[o(c(we),{size:25,class:`is-spinning`,"aria-hidden":`true`}),e(`span`,null,i(n.$t(`poivelle.status.loading`)),1)])):L.value&&_.value?(E(),l(`div`,ri,[N.value===`overview`?s(``,!0):(E(),b(sn,{key:0,projects:g.value,"current-project-id":L.value.id,assets:v.value,revisions:k.value,"can-edit":B.value,onSelectProject:ke,onCreateProject:X,onImportAsset:a[2]||=e=>xe.value=!0},null,8,[`projects`,`current-project-id`,`assets`,`revisions`,`can-edit`])),e(`section`,ii,[o(un,{"model-value":N.value,"can-edit":B.value,"onUpdate:modelValue":Me,onCreateNode:a[3]||=e=>be.value=!0},null,8,[`model-value`,`can-edit`]),e(`div`,ai,[N.value===`overview`?(E(),b($r,{key:0,"project-title":L.value.title,graph:_.value,storyboard:O.value,artifacts:y.value,takes:C.value,selections:T.value,"can-edit":B.value,busy:H.value,onGenerateNode:We,onOpenStoryboard:a[4]||=e=>Me(`storyboard`)},null,8,[`project-title`,`graph`,`storyboard`,`artifacts`,`takes`,`selections`,`can-edit`,`busy`])):N.value===`canvas`?(E(),b(vn,{key:1,graph:_.value,"selected-node-id":P.value,"can-edit":B.value,onSelectNode:je,onCreateNode:a[5]||=e=>be.value=!0},null,8,[`graph`,`selected-node-id`,`can-edit`])):N.value===`storyboard`?(E(),b(Bn,{key:2,graph:_.value,storyboard:O.value,artifacts:y.value,takes:C.value,selections:T.value,"selected-node-id":P.value,"can-edit":B.value,"can-select":B.value&&k.value.length>0,onSelectNode:je,onSelectTake:$e},null,8,[`graph`,`storyboard`,`artifacts`,`takes`,`selections`,`selected-node-id`,`can-edit`,`can-select`])):N.value===`timeline`?(E(),b(cr,{key:3,timeline:M.value,graph:_.value,artifacts:y.value,"can-edit":B.value,onMoveClip:Qe},null,8,[`timeline`,`graph`,`artifacts`,`can-edit`])):(E(),b(wr,{key:4,graph:_.value,proposals:A.value,revisions:k.value,runs:ee.value,"active-run":j.value,evaluations:te.value,"forensic-validations":ne.value,costs:re.value,"can-edit":B.value,onRejectProposal:Je,onCancelRun:Ye,onOpenRun:Xe,onRetryStep:Ze},null,8,[`graph`,`proposals`,`revisions`,`runs`,`active-run`,`evaluations`,`forensic-validations`,`costs`,`can-edit`]))]),N.value===`overview`?s(``,!0):(E(),b(Br,{key:0,proposals:A.value,"selected-node-id":P.value,skill:L.value.active_skill,"can-edit":B.value,onRun:He,onOpenProposal:qe},null,8,[`proposals`,`selected-node-id`,`skill`,`can-edit`]))]),B.value&&N.value===`canvas`?(E(),b(Nr,{key:1,node:F.value,onUpdate:Re,onDelete:Be},null,8,[`node`])):s(``,!0)])):(E(),l(`section`,oi,[a[38]||=e(`div`,{class:`onboarding-number`},`01 / STUDIO`,-1),o(c(Ue),{size:34,"stroke-width":`1.25`,"aria-hidden":`true`}),e(`h1`,null,i(n.$t(`poivelle.onboarding.title`)),1),e(`p`,null,i(n.$t(`poivelle.onboarding.body`)),1),h.value.length?B.value?(E(),l(`button`,{key:1,type:`button`,onClick:X},[o(c(Q),{size:15,"aria-hidden":`true`}),r(` `+i(n.$t(`poivelle.project.create`)),1)])):s(``,!0):(E(),l(`button`,{key:0,type:`button`,onClick:a[6]||=e=>ve.value=!0},[o(c(Ee),{size:15,"aria-hidden":`true`}),r(` `+i(n.$t(`poivelle.workspace.create`)),1)]))])),o(c(Ne),{modelValue:ve.value,"onUpdate:modelValue":a[11]||=e=>ve.value=e,title:n.$t(`poivelle.workspace.create`),width:`420px`},{footer:S(()=>[o(c(Y),{onClick:a[10]||=e=>ve.value=!1},{default:S(()=>[r(i(n.$t(`common.button.cancel`)),1)]),_:1}),o(c(Y),{type:`primary`,loading:H.value,onClick:Z},{default:S(()=>[r(i(n.$t(`common.button.confirm`)),1)]),_:1},8,[`loading`])]),default:S(()=>[o(c(z),{"label-position":`top`,onSubmit:a[9]||=t(()=>{},[`prevent`])},{default:S(()=>[o(c(R),{label:n.$t(`poivelle.workspace.name`)},{default:S(()=>[o(c(J),{modelValue:Se.name,"onUpdate:modelValue":a[7]||=e=>Se.name=e,maxlength:`120`,autofocus:``},null,8,[`modelValue`])]),_:1},8,[`label`]),o(c(R),{label:n.$t(`poivelle.workspace.budget`)},{default:S(()=>[o(c(pe),{modelValue:Se.monthly_limit_microcredits,"onUpdate:modelValue":a[8]||=e=>Se.monthly_limit_microcredits=e,min:0,step:1e6},null,8,[`modelValue`])]),_:1},8,[`label`])]),_:1})]),_:1},8,[`modelValue`,`title`]),o(c(Ne),{modelValue:ye.value,"onUpdate:modelValue":a[22]||=e=>ye.value=e,title:n.$t(`poivelle.project.create`),width:`460px`},{footer:S(()=>[o(c(Y),{onClick:a[21]||=e=>ye.value=!1},{default:S(()=>[r(i(n.$t(`common.button.cancel`)),1)]),_:1}),o(c(Y),{type:`primary`,loading:H.value,onClick:Fe},{default:S(()=>[r(i(n.$t(`common.button.confirm`)),1)]),_:1},8,[`loading`])]),default:S(()=>[o(c(z),{"label-position":`top`,onSubmit:a[20]||=t(()=>{},[`prevent`])},{default:S(()=>[o(c(R),{label:n.$t(`poivelle.project.workspace`)},{default:S(()=>[o(c(ie),{modelValue:W.workspace_id,"onUpdate:modelValue":a[12]||=e=>W.workspace_id=e,style:{width:`100%`}},{default:S(()=>[(E(!0),l(p,null,w(h.value,e=>(E(),b(c(I),{key:e.id,label:e.name,value:e.id},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`])]),_:1},8,[`label`]),o(c(R),{label:n.$t(`poivelle.project.title`)},{default:S(()=>[o(c(J),{modelValue:W.title,"onUpdate:modelValue":a[13]||=e=>W.title=e,maxlength:`200`},null,8,[`modelValue`])]),_:1},8,[`label`]),o(c(R),{label:n.$t(`poivelle.project.workflow`)},{default:S(()=>[o(c(ze),{modelValue:W.workflow,"onUpdate:modelValue":a[14]||=e=>W.workflow=e,options:Ce,block:``},null,8,[`modelValue`])]),_:1},8,[`label`]),W.workflow===`commercial_tvc`?(E(),l(p,{key:0},[o(c(R),{label:n.$t(`poivelle.project.productName`)},{default:S(()=>[o(c(J),{modelValue:W.product_name,"onUpdate:modelValue":a[15]||=e=>W.product_name=e,maxlength:`120`},null,8,[`modelValue`])]),_:1},8,[`label`]),o(c(R),{label:n.$t(`poivelle.project.productCategory`)},{default:S(()=>[o(c(J),{modelValue:W.product_category,"onUpdate:modelValue":a[16]||=e=>W.product_category=e,maxlength:`180`},null,8,[`modelValue`])]),_:1},8,[`label`]),o(c(R),{label:n.$t(`poivelle.project.brandTone`)},{default:S(()=>[o(c(J),{modelValue:W.brand_tone,"onUpdate:modelValue":a[17]||=e=>W.brand_tone=e,type:`textarea`,rows:2,maxlength:`240`},null,8,[`modelValue`])]),_:1},8,[`label`]),o(c(R),{label:n.$t(`poivelle.project.aspectRatio`)},{default:S(()=>[o(c(ze),{modelValue:W.aspect_ratio,"onUpdate:modelValue":a[18]||=e=>W.aspect_ratio=e,options:[`16:9`,`9:16`,`1:1`]},null,8,[`modelValue`])]),_:1},8,[`label`])],64)):s(``,!0),o(c(R),{label:n.$t(`poivelle.project.skill`)},{default:S(()=>[W.workflow===`blank`?(E(),b(c(ie),{key:0,modelValue:W.skill,"onUpdate:modelValue":a[19]||=e=>W.skill=e,style:{width:`100%`}},{default:S(()=>[o(c(I),{label:`Short drama · professional`,value:`film.drama.short@1.0.0`}),o(c(I),{label:`Commercial film · professional`,value:`film.commercial@1.0.0`}),o(c(I),{label:`Music video · professional`,value:`film.music-video@1.0.0`})]),_:1},8,[`modelValue`])):s(``,!0)]),_:1},8,[`label`])]),_:1})]),_:1},8,[`modelValue`,`title`]),o(c(Ne),{modelValue:be.value,"onUpdate:modelValue":a[28]||=e=>be.value=e,title:n.$t(`poivelle.node.create`),width:`460px`},{footer:S(()=>[o(c(Y),{onClick:a[27]||=e=>be.value=!1},{default:S(()=>[r(i(n.$t(`common.button.cancel`)),1)]),_:1}),o(c(Y),{type:`primary`,loading:H.value,onClick:Ie},{default:S(()=>[r(i(n.$t(`common.button.confirm`)),1)]),_:1},8,[`loading`])]),default:S(()=>[o(c(z),{"label-position":`top`,onSubmit:a[26]||=t(()=>{},[`prevent`])},{default:S(()=>[o(c(R),{label:n.$t(`poivelle.field.type`)},{default:S(()=>[o(c(ie),{modelValue:G.node_type,"onUpdate:modelValue":a[23]||=e=>G.node_type=e,style:{width:`100%`}},{default:S(()=>[(E(),l(p,null,w(Te,e=>o(c(I),{key:e,label:e,value:e},null,8,[`label`,`value`])),64))]),_:1},8,[`modelValue`])]),_:1},8,[`label`]),o(c(R),{label:n.$t(`poivelle.field.title`)},{default:S(()=>[o(c(J),{modelValue:G.title,"onUpdate:modelValue":a[24]||=e=>G.title=e,maxlength:`240`},null,8,[`modelValue`])]),_:1},8,[`label`]),o(c(R),{label:n.$t(`poivelle.field.prompt`)},{default:S(()=>[o(c(J),{modelValue:G.prompt,"onUpdate:modelValue":a[25]||=e=>G.prompt=e,type:`textarea`,rows:5},null,8,[`modelValue`])]),_:1},8,[`label`])]),_:1})]),_:1},8,[`modelValue`,`title`]),o(c(Ne),{modelValue:xe.value,"onUpdate:modelValue":a[35]||=e=>xe.value=e,title:n.$t(`poivelle.asset.import`),width:`500px`},{footer:S(()=>[o(c(Y),{onClick:a[34]||=e=>xe.value=!1},{default:S(()=>[r(i(n.$t(`common.button.cancel`)),1)]),_:1}),o(c(Y),{type:`primary`,loading:H.value,onClick:Le},{default:S(()=>[r(i(n.$t(`common.button.confirm`)),1)]),_:1},8,[`loading`])]),default:S(()=>[o(c(z),{"label-position":`top`,onSubmit:a[33]||=t(()=>{},[`prevent`])},{default:S(()=>[o(c(R),{label:n.$t(`poivelle.asset.title`)},{default:S(()=>[o(c(J),{modelValue:K.title,"onUpdate:modelValue":a[29]||=e=>K.title=e,maxlength:`240`},null,8,[`modelValue`])]),_:1},8,[`label`]),o(c(R),{label:n.$t(`poivelle.field.type`)},{default:S(()=>[o(c(ie),{modelValue:K.kind,"onUpdate:modelValue":a[30]||=e=>K.kind=e,style:{width:`100%`}},{default:S(()=>[(E(),l(p,null,w(De,e=>o(c(I),{key:e,label:e,value:e},null,8,[`label`,`value`])),64))]),_:1},8,[`modelValue`])]),_:1},8,[`label`]),o(c(R),{label:n.$t(`poivelle.asset.url`)},{default:S(()=>[o(c(J),{modelValue:K.source_url,"onUpdate:modelValue":a[31]||=e=>K.source_url=e},null,8,[`modelValue`])]),_:1},8,[`label`]),o(c(R),{label:n.$t(`poivelle.asset.hash`)},{default:S(()=>[o(c(J),{modelValue:K.content_hash,"onUpdate:modelValue":a[32]||=e=>K.content_hash=e,placeholder:`sha256:...`},null,8,[`modelValue`])]),_:1},8,[`label`])]),_:1})]),_:1},8,[`modelValue`,`title`]),o(c(Ne),{modelValue:U.value,"onUpdate:modelValue":a[37]||=e=>U.value=e,title:n.$t(`poivelle.run.confirmTitle`),width:`520px`},{footer:S(()=>[o(c(Y),{onClick:a[36]||=e=>U.value=!1},{default:S(()=>[r(i(n.$t(`common.button.cancel`)),1)]),_:1}),o(c(Y),{type:`primary`,loading:H.value,onClick:Ke},{default:S(()=>[r(i(n.$t(`poivelle.run.confirm`)),1)]),_:1},8,[`loading`])]),default:S(()=>[V.value?(E(),l(`div`,si,[e(`div`,null,[e(`span`,null,i(n.$t(`poivelle.run.targets`)),1),e(`strong`,null,i(V.value.dependency_closure.length),1)]),e(`div`,null,[e(`span`,null,i(n.$t(`poivelle.run.maximum`)),1),e(`strong`,null,i(et(V.value.max_cost_microcredits)),1)]),e(`div`,null,[e(`span`,null,i(n.$t(`poivelle.run.approval`)),1),e(`strong`,null,i(V.value.required_approval),1)])])):s(``,!0),e(`p`,ci,i(n.$t(`poivelle.run.confirmBody`)),1)]),_:1},8,[`modelValue`,`title`])]))}}),[[`__scopeId`,`data-v-1b367de3`]]),ui=O({__name:`Index`,setup(e){let t=D(`discovery`);return(e,n)=>t.value===`discovery`?(E(),b(jt,{key:0,onOpenStudio:n[0]||=e=>t.value=`studio`})):(E(),b(li,{key:1,onBackHome:n[1]||=e=>t.value=`discovery`}))}});export{ui as default};
@@ -0,0 +1 @@
1
+ import"./rolldown-runtime--c01j_DQ.js";import{A as e,C as t,I as n,Jt as r,L as i,M as a,N as o,T as s,at as c,ht as l,it as u,j as d,mt as f,rt as p,tt as m,x as h,z as g}from"./vendor-chart-Dw-P17PN.js";import{r as _,t as v}from"./select-BpS-bYES.js";import{t as y}from"./upload-jWHoCQb0.js";import{t as b}from"./tooltip-iglteC5t.js";import{t as x}from"./alert-BprQRUmf.js";import{h as S,v as C}from"./models-CfZmiKuz.js";import{n as w,r as T}from"./radio-BNhFzeBO.js";import{t as E}from"./drawer-Cnm2ONDq.js";import{t as D}from"./progress-BuyYfFZn.js";import{t as O}from"./check-DU3fWk08.js";import{t as k}from"./clock-CVw8rZJk.js";import{t as A}from"./image-Dj2OLaW1.js";import{t as j}from"./info-CaaWfQ5G.js";import{t as M}from"./mic-BmXMqOZU.js";import{t as N}from"./music-2-CnpHN-4z.js";import{t as P}from"./sliders-horizontal-B_DMl5Dn.js";import{t as F}from"./trash-2-DXpwwp30.js";import{t as I}from"./triangle-alert-BlTA75VV.js";import{t as L}from"./upload-BeiqlzEw.js";import{t as R}from"./user-CHNnnBrI.js";import{t as z}from"./video-B4VaUcVJ.js";import{t as ee}from"./wand-sparkles-M6We7RZu.js";import{Ar as te,Cr as ne,Dr as B,Sr as V,wr as H,xr as U}from"./constants-DdiBRvPy.js";import{Bi as W,Gt as G,Mi as K,O as q,Qt as J,Xn as Y,Xt as X,Yt as Z,Zt as re,ii as ie,kr as ae,tn as oe,un as se,vi as ce}from"./index-DSIuJ3Ml.js";import{t as le}from"./CopyToClipboard-DaW2jH2E.js";import{t as ue}from"./ReportButton-QNLl-twb.js";import{n as de}from"./taskDrawerMixin-DyAUhFEq.js";import{t as fe}from"./Consumption-JEEofYog.js";import{a as pe,n as me,r as he,t as ge}from"./pagination-CGAsm_gH.js";import{t as _e}from"./VideoPlayer-CFlwMJfi.js";import{t as ve}from"./ApiCodeButton-BJzi5tyz.js";import{t as ye}from"./BotPlaceholder-DLGHIQS6.js";var be=g({name:`LayoutDigitalHuman`,components:{UserIcon:R,ElDrawer:E,ElButton:K},mixins:[de]}),xe={class:`main flex flex-row flex-1`},Se={class:`config w-[320px] flex-none h-full min-h-0 overflow-hidden flex flex-col bg-[var(--app-sidebar-bg)] border-r border-[var(--app-border-subtle)]`},Ce={class:`result h-full p-6 flex-1 flex flex-col min-w-0 overflow-x-hidden bg-[var(--app-content-bg)]`};function we(t,n,r,a,s,d){let p=c(`user-icon`),g=c(`el-button`),_=c(`el-drawer`);return m(),o(`div`,xe,[e(`div`,Se,[u(t.$slots,`config`,{},void 0,!0)]),e(`div`,Ce,[u(t.$slots,`result`,{},void 0,!0)]),l(i(g,{circle:``,class:`menu`,"aria-label":t.$t(`common.button.openMenu`),title:t.$t(`common.button.openMenu`),onClick:n[0]||=e=>t.drawer=!0},{default:f(()=>[i(p,{size:`1em`,"aria-hidden":`true`,focusable:`false`})]),_:1},8,[`aria-label`,`title`]),[[h,!t.tasksEmpty]]),i(_,{modelValue:t.drawer,"onUpdate:modelValue":n[1]||=e=>t.drawer=e,direction:`ltr`,"with-header":!1,size:`340px`,class:`generator-drawer`},{default:f(()=>[u(t.$slots,`config`,{},void 0,!0)]),_:3},8,[`modelValue`])])}var Te=q(be,[[`render`,we],[`__scopeId`,`data-v-e912fd04`]]),Ee=g({name:`DigitalHumanFileInput`,components:{ElUpload:y,ElButton:K,ImageIcon:A,MicrophoneIcon:M,MusicIcon:N,UploadIcon:L,VideoIcon:z},mixins:[J,G,X],props:{accept:{type:String,default:``},buttonText:{type:String,default:``},icon:{type:String,default:`upload`}},emits:[`change`],data(){return{fileList:[],uploadUrl:ie()+`/api/v1/files/`}},computed:{headers(){return{Authorization:`Bearer ${this.$store.state.token.access}`}}},methods:{onExceed(e){let t=this.$refs.uploader;t?.clearFiles();let n=e[0];n&&(t?.handleStart?.(n),t?.submit?.())},onError(){C.error(this.$t(`digitalhuman.message.uploadError`))},onChange(){let e=this.fileList?.[0]?.response?.file_url;this.$emit(`change`,e)}}});function De(e,t,a,s,l,u){let p=c(`video-icon`),h=c(`image-icon`),g=c(`microphone-icon`),_=c(`music-icon`),v=c(`upload-icon`),y=c(`el-button`),b=c(`el-upload`);return m(),o(`div`,null,[i(b,{ref:`uploader`,"file-list":e.fileList,"onUpdate:fileList":t[0]||=t=>e.fileList=t,accept:e.accept,name:`file`,class:`w-full`,limit:1,"before-upload":e.beforeUploadSizeGuard,action:e.uploadUrl,headers:e.headers,"on-exceed":e.onExceed,"on-error":e.onError,"on-success":e.onChange,"on-remove":e.onChange},{default:f(()=>[i(y,{size:`small`,round:``},{default:f(()=>[e.icon===`video`?(m(),d(p,{key:0,class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`})):e.icon===`image`?(m(),d(h,{key:1,class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`})):e.icon===`microphone`?(m(),d(g,{key:2,class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`})):e.icon===`music`?(m(),d(_,{key:3,class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`})):(m(),d(v,{key:4,class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`})),n(` `+r(e.buttonText),1)]),_:1})]),_:1},8,[`file-list`,`accept`,`before-upload`,`action`,`headers`,`on-exceed`,`on-error`,`on-success`,`on-remove`])])}var Q=q(Ee,[[`render`,De]]),Oe=3e3,ke=60,Ae=g({name:`VoiceClone`,components:{ConfirmIcon:O,MagicIcon:ee,ElButton:K,ElSelect:_,ElOption:v,ElAlert:x,FileInput:Q},data(){return{sampleUrl:void 0,lang:`zh`,cloning:!1,destroyed:!1,runId:0,DIGITALHUMAN_ALLOWED_LANGS:V,DIGITALHUMAN_AUDIO_ACCEPT:H}},computed:{credentialToken(){return this.$store.state.digitalhuman?.credential?.token},voiceId(){return this.$store.state.digitalhuman?.config?.voice_id}},watch:{lang(){this.invalidate()}},beforeUnmount(){this.destroyed=!0,this.runId++},methods:{onSampleChange(e){this.sampleUrl=e,this.invalidate()},invalidate(){this.runId++,this.cloning=!1,this.voiceId&&this.setVoiceId(void 0)},isStale(e){return this.destroyed||e!==this.runId},setVoiceId(e){this.$store.commit(`digitalhuman/setConfig`,{...this.$store.state.digitalhuman?.config,voice_id:e})},sleep(e){return new Promise(t=>setTimeout(t,e))},async onClone(){let e=this.credentialToken;if(!this.sampleUrl||!e)return;let t=++this.runId;this.cloning=!0,this.setVoiceId(void 0);try{let{data:n}=await Y.cloneVoice({audio_url:this.sampleUrl,lang:this.lang},{token:e});if(this.isStale(t))return;if(n?.voice_id){this.onCloned(n.voice_id);return}if(n?.task_id)await this.pollVoice(n.task_id,e,t);else throw Error(`no task`)}catch{this.isStale(t)||C.error(this.$t(`digitalhuman.message.voiceCloneFailed`))}finally{this.isStale(t)||(this.cloning=!1)}},async pollVoice(e,t,n){for(let r=0;r<ke;r++){if(this.isStale(n)||(await this.sleep(Oe),this.isStale(n)))return;let{data:r}=await Y.pollTask(e,{token:t});if(this.isStale(n))return;if(r?.voice_id){this.onCloned(r.voice_id);return}if(r?.state===`failed`)throw Error(`clone failed`)}throw Error(`timeout`)},onCloned(e){this.setVoiceId(e),C.success(this.$t(`digitalhuman.message.voiceCloneSuccess`))}}}),je={class:`voice-clone`},Me={class:`text-xs text-[var(--el-text-color-secondary)] mb-2`},Ne={class:`flex flex-row items-center gap-2 mb-2`},Pe={class:`text-xs mb-0`};function Fe(t,l,u,h,g,_){let v=c(`file-input`),y=c(`el-option`),b=c(`el-select`),x=c(`magic-icon`),S=c(`el-button`),C=c(`confirm-icon`),w=c(`el-alert`);return m(),o(`div`,je,[e(`p`,Me,r(t.$t(`digitalhuman.description.voiceClone`)),1),e(`div`,Ne,[i(v,{accept:t.DIGITALHUMAN_AUDIO_ACCEPT,"button-text":t.$t(`digitalhuman.button.uploadSample`),icon:`microphone`,onChange:t.onSampleChange},null,8,[`accept`,`button-text`,`onChange`]),i(b,{modelValue:t.lang,"onUpdate:modelValue":l[0]||=e=>t.lang=e,size:`small`,class:`!w-[90px]`},{default:f(()=>[(m(!0),o(s,null,p(t.DIGITALHUMAN_ALLOWED_LANGS,e=>(m(),d(y,{key:e,label:e,value:e},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`])]),i(S,{size:`small`,type:`primary`,round:``,loading:t.cloning,disabled:!t.sampleUrl||t.cloning,onClick:t.onClone},{default:f(()=>[i(x,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),n(` `+r(t.cloning?t.$t(`digitalhuman.button.cloning`):t.$t(`digitalhuman.button.clone`)),1)]),_:1},8,[`loading`,`disabled`,`onClick`]),t.voiceId?(m(),d(w,{key:0,closable:!1,type:`success`,class:`mt-2`},{default:f(()=>[e(`p`,Pe,[i(C,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),n(` `+r(t.$t(`digitalhuman.name.voiceReady`))+`: `+r(t.voiceId),1)])]),_:1})):a(``,!0)])}var Ie=g({name:`ConfigPanel`,components:{UserIcon:R,ElButton:K,ElInput:W,ElRadioGroup:T,ElRadioButton:w,Consumption:fe,InfoIcon:pe,FileInput:Q,VoiceClone:q(Ae,[[`render`,Fe]])},emits:[`generate`],data(){return{faceMode:`video`,voiceMode:`audio`,DIGITALHUMAN_ALLOWED_ENGINES:U,DIGITALHUMAN_ALLOWED_RESOLUTIONS:ne,DIGITALHUMAN_VIDEO_ACCEPT:te,DIGITALHUMAN_IMAGE_ACCEPT:B,DIGITALHUMAN_AUDIO_ACCEPT:H}},computed:{config(){return this.$store.state.digitalhuman?.config},service(){return this.$store.state.digitalhuman?.service},consumption(){return oe(this.config,this.service?.cost)},canGenerate(){let e=this.faceMode===`video`?!!this.config?.video_url:!!this.config?.image_url,t=this.voiceMode===`audio`?!!this.config?.audio_url:!!this.config?.text?.trim()&&!!this.config?.voice_id;return e&&t},text:{get(){return this.config?.text},set(e){this.update({text:e})}},engine:{get(){return this.config?.engine},set(e){this.update({engine:e})}},resolution:{get(){return this.config?.resolution},set(e){this.update({resolution:e})}}},mounted(){this.config?.image_url&&!this.config?.video_url&&(this.faceMode=`photo`),(this.config?.text||this.config?.voice_id)&&(this.voiceMode=`text`),this.update({engine:this.config?.engine??`latentsync`,resolution:this.config?.resolution??`720p`})},methods:{update(e){this.$store.commit(`digitalhuman/setConfig`,{...this.config,...e})},onFaceModeChange(e){this.update(e===`video`?{image_url:void 0}:{video_url:void 0})},onVoiceModeChange(e){this.update(e===`audio`?{text:void 0,voice_id:void 0}:{audio_url:void 0})},onFaceVideoChange(e){this.update({video_url:e})},onFacePhotoChange(e){this.update({image_url:e})},onAudioChange(e){this.update({audio_url:e})},onGenerate(){let e=this.config||{},t={engine:e.engine,resolution:e.resolution};this.faceMode===`video`?t.video_url=e.video_url:t.image_url=e.image_url,this.voiceMode===`audio`?t.audio_url=e.audio_url:(t.text=e.text,t.voice_id=e.voice_id),this.$emit(`generate`,t)}}}),Le={class:`flex flex-col h-full`},Re={class:`flex-1 overflow-y-auto p-5`},ze={class:`field-block mb-5`},Be={class:`field-head`},Ve={class:`field-title font-bold`},He={class:`field-block mb-5`},Ue={class:`field-head`},We={class:`field-title font-bold`},Ge={class:`field-block mb-5`},Ke={class:`field-head`},qe={class:`field-title font-bold`},Je={class:`field-block`},Ye={class:`field-head`},Xe={class:`field-title font-bold`},Ze={class:`flex flex-col items-center justify-center px-5 pb-5`};function Qe(t,a,l,u,h,g){let _=c(`info-icon`),v=c(`el-radio-button`),y=c(`el-radio-group`),b=c(`file-input`),x=c(`el-input`),S=c(`voice-clone`),C=c(`consumption`),w=c(`user-icon`),T=c(`el-button`);return m(),o(`div`,Le,[e(`div`,Re,[e(`div`,ze,[e(`div`,Be,[e(`h2`,Ve,r(t.$t(`digitalhuman.name.face`)),1),i(_,{content:t.$t(`digitalhuman.description.face`),class:`ml-1`},null,8,[`content`])]),i(y,{modelValue:t.faceMode,"onUpdate:modelValue":a[0]||=e=>t.faceMode=e,class:`w-full mb-2`,onChange:t.onFaceModeChange},{default:f(()=>[i(v,{value:`video`},{default:f(()=>[n(r(t.$t(`digitalhuman.name.faceVideo`)),1)]),_:1}),i(v,{value:`photo`},{default:f(()=>[n(r(t.$t(`digitalhuman.name.facePhoto`)),1)]),_:1})]),_:1},8,[`modelValue`,`onChange`]),t.faceMode===`video`?(m(),d(b,{key:0,accept:t.DIGITALHUMAN_VIDEO_ACCEPT,"button-text":t.$t(`digitalhuman.button.uploadVideo`),icon:`video`,onChange:t.onFaceVideoChange},null,8,[`accept`,`button-text`,`onChange`])):(m(),d(b,{key:1,accept:t.DIGITALHUMAN_IMAGE_ACCEPT,"button-text":t.$t(`digitalhuman.button.uploadPhoto`),icon:`image`,onChange:t.onFacePhotoChange},null,8,[`accept`,`button-text`,`onChange`]))]),e(`div`,He,[e(`div`,Ue,[e(`h2`,We,r(t.$t(`digitalhuman.name.voice`)),1)]),i(y,{modelValue:t.voiceMode,"onUpdate:modelValue":a[1]||=e=>t.voiceMode=e,class:`w-full mb-2`,onChange:t.onVoiceModeChange},{default:f(()=>[i(v,{value:`audio`},{default:f(()=>[n(r(t.$t(`digitalhuman.name.voiceAudio`)),1)]),_:1}),i(v,{value:`text`},{default:f(()=>[n(r(t.$t(`digitalhuman.name.voiceText`)),1)]),_:1})]),_:1},8,[`modelValue`,`onChange`]),t.voiceMode===`audio`?(m(),d(b,{key:0,accept:t.DIGITALHUMAN_AUDIO_ACCEPT,"button-text":t.$t(`digitalhuman.button.uploadAudio`),icon:`music`,onChange:t.onAudioChange},null,8,[`accept`,`button-text`,`onChange`])):(m(),o(s,{key:1},[i(x,{modelValue:t.text,"onUpdate:modelValue":a[2]||=e=>t.text=e,type:`textarea`,rows:4,placeholder:t.$t(`digitalhuman.placeholder.text`),class:`mb-2`},null,8,[`modelValue`,`placeholder`]),i(S)],64))]),e(`div`,Ge,[e(`div`,Ke,[e(`h2`,qe,r(t.$t(`digitalhuman.name.engine`)),1)]),i(y,{modelValue:t.engine,"onUpdate:modelValue":a[3]||=e=>t.engine=e,class:`w-full`},{default:f(()=>[(m(!0),o(s,null,p(t.DIGITALHUMAN_ALLOWED_ENGINES,e=>(m(),d(v,{key:e,value:e},{default:f(()=>[n(r(e),1)]),_:2},1032,[`value`]))),128))]),_:1},8,[`modelValue`])]),e(`div`,Je,[e(`div`,Ye,[e(`h2`,Xe,r(t.$t(`digitalhuman.name.resolution`)),1)]),i(y,{modelValue:t.resolution,"onUpdate:modelValue":a[4]||=e=>t.resolution=e,class:`w-full`},{default:f(()=>[(m(!0),o(s,null,p(t.DIGITALHUMAN_ALLOWED_RESOLUTIONS,e=>(m(),d(v,{key:e,value:e},{default:f(()=>[n(r(e),1)]),_:2},1032,[`value`]))),128))]),_:1},8,[`modelValue`])])]),e(`div`,Ze,[i(C,{value:t.consumption,service:t.service},null,8,[`value`,`service`]),i(T,{type:`primary`,class:`btn w-full`,round:``,disabled:!t.canGenerate,onClick:t.onGenerate},{default:f(()=>[i(w,{class:`mr-2`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),n(` `+r(t.$t(`digitalhuman.button.generate`)),1)]),_:1},8,[`disabled`,`onClick`])])])}var $e=q(Ie,[[`render`,Qe],[`__scopeId`,`data-v-5ae1f07d`]]),et=g({name:`TaskPreview`,components:{DeleteIcon:F,ElTooltip:b,ControlsIcon:P,ImageIcon:A,InfoIcon:j,TimeIcon:k,UserIcon:R,VideoIcon:z,WarningIcon:I,CopyToClipboard:le,ElAlert:x,ElProgress:D,VideoPlayer:_e,ElButton:K,ApiCodeButton:ve,ReportButton:ue},props:{modelValue:{type:Object,required:!0}},computed:{status(){return this.modelValue?.status||this.modelValue?.response?.state||`pending`},isSuccess(){return[`succeed`,`succeeded`].includes(this.status)||!!this.modelValue?.response?.video_url},isFailure(){return[`failed`,`dead`].includes(this.status)||this.modelValue?.response?.success===!1},isTerminal(){return this.isSuccess||this.isFailure},videoUrl(){return this.modelValue?.response?.video_url},progressPct(){let e=this.modelValue?.response?.progress;return typeof e==`number`?e:0},voiceLabel(){return this.modelValue?.request?.audio_url?this.$t(`digitalhuman.name.audioDriven`):this.$t(`digitalhuman.name.textDriven`)},faceLabel(){return this.modelValue?.request?.image_url?this.$t(`digitalhuman.name.facePhoto`):this.$t(`digitalhuman.name.faceVideo`)},engineLabel(){return this.modelValue?.request?.engine||this.modelValue?.response?.engine||`latentsync`},statusLabel(){let e=`digitalhuman.status.${this.status}`,t=this.$t(e);return t===e?this.$t(`digitalhuman.status.processing`):t},failureReason(){let e=this.modelValue?.response?.error;if(e)return typeof e==`string`?e:e?.message}},methods:{async onDelete(){let e=this.modelValue?.id;if(e){try{await ce.confirm(this.$t(`common.message.deleteTaskConfirm`),this.$t(`common.button.delete`),{type:`warning`,confirmButtonText:this.$t(`common.button.delete`),cancelButtonText:this.$t(`common.button.cancel`),confirmButtonClass:`el-button--danger`})}catch{return}try{await this.$store.dispatch(`digitalhuman/deleteTask`,{id:e}),C.success(this.$t(`common.message.deleteTaskSuccess`))}catch{C.error(this.$t(`common.message.deleteTaskFailed`))}}},onDownload(e,t){e?.stopPropagation(),window.open(t,`_blank`)}}}),tt={class:`preview`},nt={class:`left`},rt={class:`main`},it={class:`bot`},at={class:`datetime`},ot=[`aria-label`],st={class:`info`},ct={key:0,class:`prompt mt-2`},lt={key:0},ut={key:1,class:`prompt mt-2`},dt={key:0},ft={class:`text-xs text-[var(--el-text-color-secondary)] mb-1`},pt={class:`ml-2`},mt={key:0,class:`content`},ht={class:`text-xs text-[var(--el-text-color-secondary)] mb-1`},gt={key:1,class:`content`},_t={class:`operations mt-2`},vt={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},yt={key:0,class:`text-[var(--el-text-color-regular)] text-xs mb-0`},$={key:2,class:`content`},bt={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},xt={key:0,class:`text-[var(--el-text-color-regular)] text-xs mb-0`};function St(s,l,u,p,h,g){let _=c(`capability-presentation`),v=c(`delete-icon`),y=c(`el-tooltip`),b=c(`image-icon`),x=c(`video-icon`),S=c(`controls-icon`),C=c(`el-progress`),w=c(`video-player`),T=c(`el-button`),E=c(`api-code-button`),D=c(`report-button`),O=c(`user-icon`),k=c(`copy-to-clipboard`),A=c(`time-icon`),j=c(`el-alert`),M=c(`warning-icon`),N=c(`info-icon`);return m(),o(`div`,tt,[e(`div`,nt,[i(_,{capability:`digitalhuman`,part:`avatar`,class:`avatar`})]),e(`div`,rt,[e(`div`,it,[i(_,{capability:`digitalhuman`,part:`name`}),e(`span`,at,r(s.$dayjs.format(``+new Date(parseFloat((s.modelValue?.created_at||``).toString())*1e3))),1),i(y,{effect:`dark`,content:s.$t(`common.button.delete`),placement:`top`},{default:f(()=>[s.modelValue?.id?(m(),o(`button`,{key:0,type:`button`,class:`btn-delete`,"aria-label":s.$t(`common.button.delete`),onClick:l[0]||=t((...e)=>s.onDelete&&s.onDelete(...e),[`stop`])},[i(v,{size:`1em`,"aria-hidden":`true`,focusable:`false`})],8,ot)):a(``,!0)]),_:1},8,[`content`])]),e(`div`,st,[s.modelValue?.request?.text?(m(),o(`p`,ct,[n(r(s.modelValue?.request?.text)+` `,1),s.isTerminal?a(``,!0):(m(),o(`span`,lt,` - (`+r(s.statusLabel)+`) `,1))])):(m(),o(`p`,ut,[n(r(s.voiceLabel)+` `,1),s.isTerminal?a(``,!0):(m(),o(`span`,dt,` - (`+r(s.statusLabel)+`) `,1))])),e(`p`,ft,[s.modelValue?.request?.image_url?(m(),d(b,{key:0,class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`})):(m(),d(x,{key:1,class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`})),n(` `+r(s.faceLabel)+` `,1),e(`span`,pt,[i(S,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),n(r(s.engineLabel),1)])])]),s.isTerminal?a(``,!0):(m(),o(`div`,mt,[e(`p`,ht,r(s.statusLabel),1),i(C,{percentage:s.progressPct,"stroke-width":6},null,8,[`percentage`])])),s.isSuccess?(m(),o(`div`,gt,[s.videoUrl?(m(),d(w,{key:0,src:s.videoUrl},null,8,[`src`])):a(``,!0),e(`div`,_t,[s.videoUrl?(m(),d(T,{key:0,type:`info`,size:`small`,class:`btn-action`,onClick:l[1]||=e=>s.onDownload(e,s.videoUrl)},{default:f(()=>[n(r(s.$t(`digitalhuman.button.download`)),1)]),_:1})):a(``,!0),i(E,{path:`/digital-human/videos`,body:s.modelValue?.request},null,8,[`body`]),i(D,{service:`digitalhuman`,"target-id":s.modelValue?.id,snapshot:{text:s.modelValue?.request?.text}},null,8,[`target-id`,`snapshot`])]),i(j,{closable:!1,class:`mt-2 success`},{default:f(()=>[e(`p`,vt,[i(O,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),n(` `+r(s.$t(`digitalhuman.name.taskId`))+`: `+r(s.modelValue?.id)+` `,1),i(k,{content:s.modelValue?.id},null,8,[`content`])]),s.modelValue?.elapsed?(m(),o(`p`,yt,[i(A,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),n(` `+r(s.$t(`digitalhuman.name.elapsed`))+`: `+r(s.modelValue?.elapsed?.toFixed(2))+`s `,1)])):a(``,!0)]),_:1})])):a(``,!0),s.isFailure?(m(),o(`div`,$,[i(j,{closable:!1,class:`failure`},{template:f(()=>[i(M,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),n(` `+r(s.$t(`digitalhuman.name.failure`)),1)]),default:f(()=>[e(`p`,bt,[i(O,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),n(` `+r(s.$t(`digitalhuman.name.taskId`))+`: `+r(s.modelValue?.id)+` `,1),i(k,{content:s.modelValue?.id},null,8,[`content`])]),s.failureReason?(m(),o(`p`,xt,[i(N,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),n(` `+r(s.$t(`digitalhuman.name.failureReason`))+`: `+r(s.failureReason),1)])):a(``,!0)]),_:1})])):a(``,!0)])])}var Ct=g({name:`RecentPanel`,components:{TaskPreview:q(et,[[`render`,St],[`__scopeId`,`data-v-41712a8b`]]),NoTasks:he,BotPlaceholder:ye,ScrollList:me},props:{loading:{type:Boolean,default:!1}},emits:[`reach-top`],computed:{tasks(){return{...this.$store.state.digitalhuman?.tasks,items:this.$store.state.digitalhuman?.tasks?.items?.slice()}}},methods:{getScrollElement(){return this.$refs.scrollList?.getScrollElement?.()}}}),wt={key:0},Tt={key:2,class:`w-full h-full flex items-center justify-center`};function Et(e,t,n,r,l,u){let h=c(`bot-placeholder`),g=c(`task-preview`),_=c(`scroll-list`),v=c(`no-tasks`);return m(),o(s,null,[e.tasks?.items===void 0?(m(),o(`div`,wt,[i(h)])):e.tasks?.items?.length&&e.tasks?.items?.length>0?(m(),d(_,{key:1,ref:`scrollList`,class:`tasks h-full w-full overflow-y-auto`,loading:e.loading,onReachTop:t[0]||=t=>e.$emit(`reach-top`)},{default:f(()=>[(m(!0),o(s,null,p(e.tasks?.items,(e,t)=>(m(),d(g,{key:t,"model-value":e},null,8,[`model-value`]))),128))]),_:1},8,[`loading`])):a(``,!0),e.tasks?.items?.length===0?(m(),o(`div`,Tt,[i(v)])):a(``,!0)],64)}var Dt=g({name:`DigitalHumanIndex`,components:{ConfigPanel:$e,Layout:Te,RecentPanel:q(Ct,[[`render`,Et]])},mixins:[re],inject:[`initialized`],data(){return{job:0,loadingMore:!1,fetchingTasks:!1}},computed:{applicationsLoading(){return this.$store.state.digitalhuman?.status?.getApplications===S.Request},tasksLoading(){return this.$store.state.digitalhuman?.status?.getTasks===S.Request||this.fetchingTasks},credential(){return this.$store.state.digitalhuman.credential},config(){return this.$store.state.digitalhuman.config},tasks(){return this.$store.state.digitalhuman.tasks}},watch:{initialized:{async handler(e){window.clearInterval(this.job),e&&(await this.onGetTasks(),await this.onScrollDown(),this.job=window.setInterval(()=>{this.onGetTasks()},5e3))},immediate:!0}},async mounted(){await this.onGetService()},async unmounted(){window.clearInterval(this.job)},methods:{async onReachTop(){await ge({tasks:this.tasks,getTasks:()=>this.tasks,loading:this.loadingMore,setLoading:e=>this.loadingMore=e,isBlocked:()=>this.tasksLoading||this.applicationsLoading,fetch:e=>this.onGetTasks({createdAtMax:e}),getScrollElement:()=>this.getTasksScrollElement()})},async onGetService(){await this.$store.dispatch(`digitalhuman/getService`)},async onScrollDown(){await this.$nextTick();let e=this.getTasksScrollElement();e&&(e.scrollTop=e.scrollHeight)},async onGetTasks(e){if(this.applicationsLoading||this.fetchingTasks)return;let{limit:t=5,createdAtMin:n,createdAtMax:r}=e||{};this.fetchingTasks=!0;try{await this.$store.dispatch(`digitalhuman/getTasks`,{limit:t,createdAtMin:n,createdAtMax:r})}finally{this.fetchingTasks=!1}},async onGenerate(e){if(!Z(this.uploadTracker,e=>this.$t(e),e=>C.warning(e))||!se())return;let t=this.credential?.token;if(!t){console.error(`no token specified`);return}C.info(this.$t(`digitalhuman.message.startingTask`)),ae(`digitalhuman`,Y.generate(e,{token:t})).then(()=>{C.success(this.$t(`digitalhuman.message.startTaskSuccess`))}).catch(e=>{(e?.response?.data)?.error?.code===`used_up`?C.error(this.$t(`digitalhuman.message.usedUp`)):C.error(this.$t(`digitalhuman.message.startTaskFailed`))}).finally(async()=>{setTimeout(async()=>{await this.onGetTasks(),await this.onScrollDown()},1e3)})},getTasksScrollElement(){return this.$refs.recentPanel?.getScrollElement?.()}}});function Ot(e,t,n,r,a,o){let s=c(`config-panel`),l=c(`recent-panel`),u=c(`layout`);return m(),d(u,null,{config:f(()=>[i(s,{onGenerate:e.onGenerate},null,8,[`onGenerate`])]),result:f(()=>[i(l,{ref:`recentPanel`,loading:e.loadingMore,onReachTop:e.onReachTop},null,8,[`loading`,`onReachTop`])]),_:1})}var kt=q(Dt,[[`render`,Ot]]);export{kt as default};
@@ -1 +1 @@
1
- import"./rolldown-runtime--c01j_DQ.js";import{A as e,C as t,Gt as n,I as r,Jt as i,L as a,M as o,N as s,T as c,at as l,ht as u,it as d,j as f,mt as p,rt as m,tt as h,x as g,z as _}from"./vendor-chart-Dw-P17PN.js";import{r as v,t as y}from"./select-1w7Zpr6O.js";import{t as b}from"./upload-CVuy8NY8.js";import{t as x}from"./tooltip-CnN93uDP.js";import{t as S}from"./alert-BprQRUmf.js";import{h as C,v as w}from"./models-BAyJ5pH0.js";import{t as T}from"./drawer-BoDb3Fpk.js";import{t as E}from"./input-number-D5Q8Bypi.js";import{t as D}from"./slider-B1_GHRb5.js";import{t as O}from"./clock-BWo5B4kH.js";import{r as k,t as A}from"./PromptTextarea-CkuHuU4h.js";import{t as j}from"./info-Ckusq785.js";import{t as ee}from"./trash-2-C5utNutX.js";import{t as M}from"./triangle-alert-DkHeaWG2.js";import{t as N}from"./upload-Bcc_2RIh.js";import{t as P}from"./wand-sparkles-Duz2fMGa.js";import{dr as te,fr as ne,ur as F}from"./constants-FVNrPctQ.js";import{$t as I,Gt as L,Jn as R,Mi as z,O as B,Qt as V,Xt as H,Yt as U,Zt as W,ii as G,kr as K,tn as q,un as J,vi as Y}from"./index-DCEwxRXS.js";import{t as X}from"./CopyToClipboard-BJY08VAg.js";import{t as Z}from"./ReportButton-C11rSSUR.js";import{t as re}from"./ImagePreview-Cp9W6Bga.js";import{n as ie}from"./taskDrawerMixin-DyAUhFEq.js";import{t as ae}from"./Consumption-Df5_TTmd.js";import{a as Q,n as oe,r as se,t as ce}from"./pagination-Zcuxd8JC.js";import{t as le}from"./ApiCodeButton-l1_BzkCH.js";import{t as ue}from"./BotPlaceholder-ozgWBXZZ.js";import{t as de}from"./ImageWrapper-ykkNZD7e.js";var fe=_({name:`LayoutFlux`,components:{MagicIcon:P,ElDrawer:T,ElButton:z},mixins:[ie]}),pe={class:`main flex flex-row flex-1`},me={class:`config w-[320px] flex-none h-full min-h-0 overflow-hidden flex flex-col bg-[var(--app-sidebar-bg)] border-r border-[var(--app-border-subtle)]`},he={class:`result h-full p-6 flex-1 flex flex-col min-w-0 overflow-x-hidden bg-[var(--app-content-bg)]`};function ge(t,n,r,i,o,c){let f=l(`magic-icon`),m=l(`el-button`),_=l(`el-drawer`);return h(),s(`div`,pe,[e(`div`,me,[d(t.$slots,`config`,{},void 0,!0)]),e(`div`,he,[d(t.$slots,`result`,{},void 0,!0)]),u(a(m,{circle:``,class:`menu`,"aria-label":t.$t(`common.button.openMenu`),title:t.$t(`common.button.openMenu`),onClick:n[0]||=e=>t.drawer=!0},{default:p(()=>[a(f,{size:`1em`,"aria-hidden":`true`,focusable:`false`})]),_:1},8,[`aria-label`,`title`]),[[g,!t.tasksEmpty]]),a(_,{modelValue:t.drawer,"onUpdate:modelValue":n[1]||=e=>t.drawer=e,direction:`ltr`,"with-header":!1,size:`340px`,class:`drawer generator-drawer`},{default:p(()=>[d(t.$slots,`config`,{},void 0,!0)]),_:3},8,[`modelValue`])])}var _e=B(fe,[[`render`,ge],[`__scopeId`,`data-v-72e82d52`]]),ve=_({name:`ModelSelector`,components:{ElSelect:v,ElOption:y},props:{modelValue:{type:String,default:void 0}},emits:[`update:modelValue`],data(){return{options:[{value:`flux-dev`,label:`flux-dev`},{value:`flux-pro`,label:`flux-pro`},{value:`flux-kontext-pro`,label:`flux-kontext-pro`},{value:`flux-kontext-max`,label:`flux-kontext-max`},{value:`flux-2-flex`,label:`flux-2-flex`},{value:`flux-2-pro`,label:`flux-2-pro`},{value:`flux-2-max`,label:`flux-2-max`}]}},computed:{value:{get(){return this.$store.state.flux?.config?.model},set(e){this.$store.commit(`flux/setConfig`,{...this.$store.state.flux.config,model:e})}}},mounted(){this.value||=ne}}),ye={class:`field`},be={class:`title font-bold`};function xe(t,n,r,o,u,d){let g=l(`el-option`),_=l(`el-select`);return h(),s(`div`,ye,[e(`h2`,be,i(t.$t(`flux.name.model`)),1),a(_,{modelValue:t.value,"onUpdate:modelValue":n[0]||=e=>t.value=e,class:`value`,placeholder:t.$t(`flux.placeholder.select`)},{default:p(()=>[(h(!0),s(c,null,m(t.options,e=>(h(),f(g,{key:e.value,label:e.label,value:e.value},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`])])}var Se=B(ve,[[`render`,xe],[`__scopeId`,`data-v-e9b17945`]]),Ce=_({name:`CountSelector`,components:{ElSlider:D,InfoIcon:Q,ElInputNumber:E},computed:{value:{get(){return this.$store.state.flux?.config?.count},set(e){console.debug(`set count`,e),this.$store.commit(`flux/setConfig`,{...this.$store.state.flux?.config,count:e})}}},mounted(){this.value||=1}}),we={class:`flex justify-between`},Te={class:`flex justify-start items-center`},Ee={class:`text-sm font-bold`},De={class:`flex justify-end items-center`},Oe={class:`w-full`};function ke(t,n,r,o,c,u){let d=l(`info-icon`),f=l(`el-input-number`),p=l(`el-slider`);return h(),s(`div`,null,[e(`div`,we,[e(`div`,Te,[e(`span`,Ee,i(t.$t(`flux.name.numbers`)),1),a(d,{content:t.$t(`flux.description.numbers`)},null,8,[`content`])]),e(`div`,De,[a(f,{modelValue:t.value,"onUpdate:modelValue":n[0]||=e=>t.value=e,"controls-position":`right`},null,8,[`modelValue`])])]),e(`div`,Oe,[a(p,{modelValue:t.value,"onUpdate:modelValue":n[1]||=e=>t.value=e,min:1,max:4,step:1},null,8,[`modelValue`])])])}var Ae=B(Ce,[[`render`,ke]]),je=_({name:`ActionSelector`,components:{ElSelect:v,ElOption:y},props:{modelValue:{type:String,default:void 0}},emits:[`update:modelValue`],data(){return{options:[{value:`generate`,label:this.$t(`flux.name.generate`)},{value:`edits`,label:this.$t(`flux.name.edits`)}]}},computed:{value:{get(){return this.$store.state.flux?.config?.action},set(e){this.$store.commit(`flux/setConfig`,{...this.$store.state.flux.config,action:e})}}},mounted(){this.value||=te}}),Me={class:`field`},Ne={class:`title font-bold`};function Pe(t,n,r,o,u,d){let g=l(`el-option`),_=l(`el-select`);return h(),s(`div`,Me,[e(`h2`,Ne,i(t.$t(`flux.name.task`)),1),a(_,{modelValue:t.value,"onUpdate:modelValue":n[0]||=e=>t.value=e,class:`value`,placeholder:t.$t(`flux.placeholder.select`)},{default:p(()=>[(h(!0),s(c,null,m(t.options,e=>(h(),f(g,{key:e.value,label:e.label,value:e.value},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`])])}var Fe=B(je,[[`render`,Pe],[`__scopeId`,`data-v-81fd05e5`]]),Ie=_({name:`ImageUrlInput`,components:{UploadIcon:N,ElUpload:b,ElButton:z,InfoIcon:Q,ImagePreview:re},mixins:[I,V,H,L],emits:[`change`],data(){return{fileList:[],uploadUrl:G()+`/api/v1/files/`}},computed:{headers(){return{Authorization:`Bearer ${this.$store.state.token.access}`}},urls(){return this.fileList.map(e=>e?.response?.file_url)}},watch:{urls:{handler(e){console.debug(`URLs changed:`,e),this.$store.commit(`flux/setConfig`,{...this.$store.state.flux.config,image_url:e[0]})}}},methods:{onExceed(){w.warning(this.$t(`flux.message.uploadStartImageExceed`))},onError(){w.error(this.$t(`flux.message.uploadStartImageError`))}}}),Le={class:`relative`},Re={class:`flex justify-between`},ze={class:`flex justify-start items-center`},Be={class:`text-sm font-bold`};function Ve(t,n,o,c,u,d){let f=l(`info-icon`),m=l(`image-preview`),g=l(`upload-icon`),_=l(`el-button`),v=l(`el-upload`);return h(),s(`div`,Le,[e(`div`,Re,[e(`div`,ze,[e(`span`,Be,i(t.$t(`flux.name.imageUrl`)),1),a(f,{content:t.$t(`flux.description.imageUrl`)},null,8,[`content`])])]),a(v,{ref:`uploader`,"file-list":t.fileList,"onUpdate:fileList":n[0]||=e=>t.fileList=e,name:`file`,limit:5,class:`upload-wrapper`,accept:`.png,.jpg,.jpeg,.gif,.bmp,.webp`,multiple:!0,"list-type":`picture`,"before-upload":t.beforeUploadSizeGuard,action:t.uploadUrl,"on-exceed":t.onExceed,"on-error":t.onError,headers:t.headers},{file:p(({file:e})=>[a(m,{url:e.url||e.response?.file_url,name:e.name,percentage:e.percentage,onRemove:n=>t.fileList.splice(t.fileList.indexOf(e),1)},null,8,[`url`,`name`,`percentage`,`onRemove`])]),default:p(()=>[a(_,{round:``,type:`primary`,size:`small`,class:`btn btn-upload`},{default:p(()=>[a(g,{class:`icon mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(t.$t(`flux.button.uploadImageUrl`)),1)]),_:1})]),_:1},8,[`file-list`,`before-upload`,`action`,`on-exceed`,`on-error`,`headers`])])}var He=B(Ie,[[`render`,Ve],[`__scopeId`,`data-v-9830e0c3`]]),Ue=_({name:`PromptInput`,components:{PromptTextarea:A},computed:{prompt:{get(){return this.$store.state.flux?.config?.prompt},set(e){this.$store.commit(`flux/setConfig`,{...this.$store.state.flux?.config,prompt:e})}}},mounted(){this.prompt||=``}});function We(e,t,n,r,i,a){let o=l(`prompt-textarea`);return h(),f(o,{modelValue:e.prompt,"onUpdate:modelValue":t[0]||=t=>e.prompt=t,title:e.$t(`flux.name.prompt`),info:e.$t(`flux.description.prompt`),placeholder:e.$t(`flux.placeholder.prompt`)},null,8,[`modelValue`,`title`,`info`,`placeholder`])}var Ge=B(Ue,[[`render`,We]]),Ke=_({name:`SizeSelector`,components:{ElSelect:v,ElOption:y},data(){return{options:F}},computed:{value:{get(){return this.$store.state.flux?.config?.size},set(e){this.$store.commit(`flux/setConfig`,{...this.$store.state.flux?.config,size:e})}}},mounted(){this.value||=`1:1`}}),qe={class:`field`},Je={class:`title font-bold`};function Ye(t,n,r,o,u,d){let g=l(`el-option`),_=l(`el-select`);return h(),s(`div`,qe,[e(`h2`,Je,i(t.$t(`flux.name.ratio`)),1),a(_,{modelValue:t.value,"onUpdate:modelValue":n[0]||=e=>t.value=e,class:`value`,placeholder:t.$t(`flux.placeholder.select`)},{default:p(()=>[(h(!0),s(c,null,m(t.options,e=>(h(),f(g,{key:e,label:e,value:e},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`])])}var Xe=_({name:`PresetPanel`,components:{MagicIcon:P,ElButton:z,PromptInput:Ge,ModelSelector:Se,CountSelector:Ae,Consumption:ae,ActionSelector:Fe,ImageUrlInput:He,SizeSelector:B(Ke,[[`render`,Ye],[`__scopeId`,`data-v-8c58dc91`]])},emits:[`generate`],computed:{config(){return this.$store.state.flux?.config},consumption(){return q(this.config,this.service?.cost)},service(){return this.$store.state.flux?.service}},methods:{onGenerate(){this.$emit(`generate`)}}}),Ze={class:`flex flex-col h-full`},Qe={class:`flex-1 overflow-y-auto p-5`},$e={class:`flex flex-col items-center justify-center px-5 pb-5`};function et(t,n,c,u,d,m){let g=l(`action-selector`),_=l(`prompt-input`),v=l(`image-url-input`),y=l(`model-selector`),b=l(`size-selector`),x=l(`count-selector`),S=l(`consumption`),C=l(`magic-icon`),w=l(`el-button`);return h(),s(`div`,Ze,[e(`div`,Qe,[a(g,{class:`mb-4`}),a(_,{class:`mb-4`}),t.config?.action===`edits`?(h(),f(v,{key:0,class:`mb-4`})):o(``,!0),a(y,{class:`mb-4`}),a(b,{class:`mb-4`}),a(x,{class:`mb-4`})]),e(`div`,$e,[a(S,{value:t.consumption,service:t.service},null,8,[`value`,`service`]),a(w,{type:`primary`,class:`btn w-full`,round:``,onClick:t.onGenerate},{default:p(()=>[a(C,{class:`mr-2`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(t.$t(`flux.button.generate`)),1)]),_:1},8,[`onClick`])])])}var tt=B(Xe,[[`render`,et]]),nt=_({name:`TaskPreview`,components:{DeleteIcon:ee,ElTooltip:x,ChannelIcon:k,InfoIcon:j,MagicIcon:P,TimeIcon:O,WarningIcon:M,CopyToClipboard:X,ElAlert:S,ImageWrapper:de,ApiCodeButton:le,ReportButton:Z},props:{modelValue:{type:Object,required:!0}},data(){return{}},computed:{application(){return this.$store.state.flux?.application},config(){return this.$store.state.flux?.config},images(){let e=[],t=this.modelValue?.request?.action;return Array.isArray(this.modelValue?.response?.data)&&this.modelValue?.response?.data?.forEach(n=>{let r=n;t&&(r.action=t),e.push(r)}),e}},methods:{async onDelete(){let e=this.modelValue?.id;if(e){try{await Y.confirm(this.$t(`common.message.deleteTaskConfirm`),this.$t(`common.button.delete`),{type:`warning`,confirmButtonText:this.$t(`common.button.delete`),cancelButtonText:this.$t(`common.button.cancel`),confirmButtonClass:`el-button--danger`})}catch{return}try{await this.$store.dispatch(`flux/deleteTask`,{id:e}),w.success(this.$t(`common.message.deleteTaskSuccess`))}catch{w.error(this.$t(`common.message.deleteTaskFailed`))}}},onDownload(e,t){e?.stopPropagation(),console.log(`on download`),window.open(t,`_blank`)},onOpenImage(e){window.open(e,`_blank`)}}}),rt={class:`preview`},it={class:`left`},at={class:`main`},ot={class:`bot`},st={class:`datetime`},ct=[`aria-label`],lt={class:`info`},ut={key:0,class:`prompt mt-2`},dt={key:0},ft={key:0,class:n({content:!0,failed:!0})},pt={class:`flex justify-start items-center gap-4 w-full overflow-x-auto`},mt={class:n({operations:!0,"mt-2":!0,"mb-2":!0})},ht={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},gt={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},_t={key:0,class:`text-[var(--el-text-color-regular)] text-xs mb-0`},vt={key:1,class:n({content:!0})},yt={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},$={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},bt={key:0,class:`text-[var(--el-text-color-regular)] text-xs mb-2`},xt={class:`text-[var(--el-text-color-regular)] text-xs mb-0`},St={key:2,class:n({content:!0})},Ct={class:`text-[var(--el-text-color-regular)] text-xs mb-0`};function wt(n,u,d,g,_,v){let y=l(`capability-presentation`),b=l(`delete-icon`),x=l(`el-tooltip`),S=l(`image-wrapper`),C=l(`api-code-button`),w=l(`report-button`),T=l(`channel-icon`),E=l(`magic-icon`),D=l(`copy-to-clipboard`),O=l(`time-icon`),k=l(`el-alert`),A=l(`warning-icon`),j=l(`info-icon`);return h(),s(`div`,rt,[e(`div`,it,[a(y,{capability:`flux`,part:`avatar`,class:`avatar`})]),e(`div`,at,[e(`div`,ot,[a(y,{capability:`flux`,part:`name`}),e(`span`,st,i(n.$dayjs.format(``+new Date(parseFloat((n.modelValue?.created_at||``).toString())*1e3))),1),a(x,{effect:`dark`,content:n.$t(`common.button.delete`),placement:`top`},{default:p(()=>[n.modelValue?.id?(h(),s(`button`,{key:0,type:`button`,class:`btn-delete`,"aria-label":n.$t(`common.button.delete`),onClick:u[0]||=t((...e)=>n.onDelete&&n.onDelete(...e),[`stop`])},[a(b,{size:`1em`,"aria-hidden":`true`,focusable:`false`})],8,ct)):o(``,!0)]),_:1},8,[`content`])]),e(`div`,lt,[n.modelValue?.request?.prompt?(h(),s(`p`,ut,[r(i(n.modelValue?.request?.prompt)+` `,1),n.modelValue?.response?o(``,!0):(h(),s(`span`,dt,` - (`+i(n.$t(`flux.status.pending`))+`) `,1))])):o(``,!0)]),n.modelValue?.response?.success===!0?(h(),s(`div`,ft,[e(`div`,pt,[(h(!0),s(c,null,m(n.images,(e,t)=>(h(),f(S,{key:t,src:e?.image_url,"raw-src":e?.image_url,"model-value":e},null,8,[`src`,`raw-src`,`model-value`]))),128))]),e(`div`,mt,[a(C,{path:`/flux/images`,body:n.modelValue?.request},null,8,[`body`]),a(w,{service:`flux`,"target-id":n.modelValue?.id,snapshot:{prompt:n.modelValue?.request?.prompt}},null,8,[`target-id`,`snapshot`])]),a(k,{closable:!1,class:`mt-2 success`},{default:p(()=>[e(`p`,ht,[a(T,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`flux.name.model`))+`: `+i(n.modelValue?.request?.model),1)]),e(`p`,gt,[a(E,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`flux.name.taskId`))+`: `+i(n.modelValue?.id)+` `,1),a(D,{content:n.modelValue?.id,class:`btn-copy inline-block`},null,8,[`content`])]),n.modelValue?.elapsed?(h(),s(`p`,_t,[a(O,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`flux.name.elapsed`))+`: `+i(n.modelValue?.elapsed?.toFixed(2))+`s `,1)])):o(``,!0)]),_:1})])):o(``,!0),n.modelValue?.response?.success===!1?(h(),s(`div`,vt,[a(k,{closable:!1,class:`failure`},{template:p(()=>[a(A,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`flux.name.failure`)),1)]),default:p(()=>[e(`p`,yt,[a(E,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`flux.name.taskId`))+`: `+i(n.modelValue?.id)+` `,1),a(D,{content:n.modelValue?.id,class:`btn-copy`},null,8,[`content`])]),e(`p`,$,[a(j,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`flux.name.failureReason`))+`: `+i(n.modelValue?.response?.error?.message)+` `,1),a(D,{content:n.modelValue?.response?.error?.message,class:`btn-copy`},null,8,[`content`])]),n.modelValue?.elapsed?(h(),s(`p`,bt,[a(O,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`flux.name.elapsed`))+`: `+i(n.modelValue?.elapsed?.toFixed(2))+`s `,1)])):o(``,!0),e(`p`,xt,[a(T,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`flux.name.traceId`))+`: `+i(n.modelValue?.response?.trace_id)+` `,1),a(D,{content:n.modelValue?.response?.trace_id,class:`btn-copy`},null,8,[`content`])])]),_:1})])):o(``,!0),n.modelValue?.response?o(``,!0):(h(),s(`div`,St,[a(k,{closable:!1,class:`info`},{template:p(()=>[a(O,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`flux.status.pending`)),1)]),default:p(()=>[e(`p`,Ct,[a(E,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`flux.name.taskId`))+`: `+i(n.modelValue?.id)+` `,1),a(D,{content:n.modelValue?.id,class:`btn-copy`},null,8,[`content`])])]),_:1})]))])])}var Tt=_({name:`RecentPanel`,components:{TaskPreview:B(nt,[[`render`,wt],[`__scopeId`,`data-v-cbf7ee77`]]),BotPlaceholder:ue,NoTasks:se,ScrollList:oe},props:{loading:{type:Boolean,default:!1}},emits:[`reach-top`],data(){return{job:0}},computed:{tasks(){return{...this.$store.state.flux?.tasks,items:this.$store.state.flux?.tasks?.items?.slice()}}},methods:{getScrollElement(){return this.$refs.scrollList?.getScrollElement?.()}}}),Et={key:0},Dt={key:2,class:`w-full h-full flex items-center justify-center`};function Ot(e,t,n,r,i,u){let d=l(`bot-placeholder`),g=l(`task-preview`),_=l(`scroll-list`),v=l(`no-tasks`);return h(),s(c,null,[e.tasks?.items===void 0?(h(),s(`div`,Et,[a(d)])):e.tasks?.items?.length&&e.tasks?.items?.length>0?(h(),f(_,{key:1,ref:`scrollList`,class:`tasks h-full w-full overflow-y-auto`,loading:e.loading,onReachTop:t[0]||=t=>e.$emit(`reach-top`)},{default:p(()=>[(h(!0),s(c,null,m(e.tasks?.items,e=>(h(),f(g,{key:e.id,"model-value":e},null,8,[`model-value`]))),128))]),_:1},8,[`loading`])):o(``,!0),e.tasks?.items?.length===0?(h(),s(`div`,Dt,[a(v)])):o(``,!0)],64)}var kt=_({name:`FluxIndex`,components:{ConfigPanel:tt,Layout:_e,RecentPanel:B(Tt,[[`render`,Ot]])},mixins:[W],inject:[`initialized`],data(){return{task:void 0,job:0,loadingMore:!1,fetchingTasks:!1}},computed:{applicationsLoading(){return this.$store.state.flux?.status?.getApplications===C.Request},tasksLoading(){return this.$store.state.flux?.status?.getTasks===C.Request||this.fetchingTasks},credential(){return this.$store.state.flux?.credential},config(){return this.$store.state.flux?.config},application(){return this.$store.state.flux?.application},tasks(){return this.$store.state.flux?.tasks}},watch:{tasks:{handler(e,t){e?.items?.length>t?.items?.length&&console.debug(`new tasks detected`)},deep:!0},initialized:{async handler(e){e&&(console.debug(`layout initialized`),await this.onGetTasks(),await this.onScrollDown(),this.job=window.setInterval(()=>{this.onGetTasks()},5e3))},immediate:!0}},async mounted(){await this.onGetService()},async unmounted(){window.clearInterval(this.job)},methods:{async onReachTop(){await ce({tasks:this.tasks,getTasks:()=>this.tasks,loading:this.loadingMore,setLoading:e=>this.loadingMore=e,isBlocked:()=>this.tasksLoading||this.applicationsLoading,fetch:e=>this.onGetTasks({createdAtMax:e}),getScrollElement:()=>this.getTasksScrollElement()})},async onGetService(){console.debug(`start onGetService`),await this.$store.dispatch(`flux/getService`),console.debug(`end onGetService`)},async onGetApplication(){console.debug(`start onGetApplication`),await this.$store.dispatch(`flux/getApplications`),console.debug(`end onGetApplication`),await this.onGetTasks()},async onScrollDown(){await this.$nextTick();let e=this.getTasksScrollElement();e&&(e.scrollTop=e.scrollHeight)},async onGetTasks(e){if(this.applicationsLoading||this.fetchingTasks){console.debug(`loading`);return}console.debug(`start onGetTasks`,e);let{limit:t=5,createdAtMin:n,createdAtMax:r}=e||{};console.debug(`limit`,t,`createdAtMin`,n,`createdAtMax`,r),this.fetchingTasks=!0;try{await this.$store.dispatch(`flux/getTasks`,{limit:t,createdAtMin:n,createdAtMax:r})}finally{this.fetchingTasks=!1}},async onGenerate(){if(!U(this.uploadTracker,e=>this.$t(e),e=>w.warning(e)))return;let e={...this.config,async:!0};if(!J())return;let t=this.credential?.token;if(!t){console.error(`no token specified`);return}w.info(this.$t(`flux.message.startingTask`)),K(`flux`,R.generate(e,{token:t})).then(()=>{w.success(this.$t(`flux.message.startTaskSuccess`))}).catch(e=>{let t=e?.response?.data;t?.error?.code===`used_up`?w.error(this.$t(`flux.message.usedUp`)):w.error(this.$t(`flux.message.startTaskFailed`)+t?.error?.message)}).finally(async()=>{setTimeout(async()=>{await this.onGetTasks(),await this.onScrollDown()},1e3)})},getTasksScrollElement(){return this.$refs.recentPanel?.getScrollElement?.()}}});function At(e,t,n,r,i,o){let s=l(`config-panel`),c=l(`recent-panel`),u=l(`layout`);return h(),f(u,null,{config:p(()=>[a(s,{onGenerate:e.onGenerate},null,8,[`onGenerate`])]),result:p(()=>[a(c,{ref:`recentPanel`,loading:e.loadingMore,onReachTop:e.onReachTop},null,8,[`loading`,`onReachTop`])]),_:1})}var jt=B(kt,[[`render`,At]]);export{jt as default};
1
+ import"./rolldown-runtime--c01j_DQ.js";import{A as e,C as t,Gt as n,I as r,Jt as i,L as a,M as o,N as s,T as c,at as l,ht as u,it as d,j as f,mt as p,rt as m,tt as h,x as g,z as _}from"./vendor-chart-Dw-P17PN.js";import{r as v,t as y}from"./select-BpS-bYES.js";import{t as b}from"./upload-jWHoCQb0.js";import{t as x}from"./tooltip-iglteC5t.js";import{t as S}from"./alert-BprQRUmf.js";import{h as C,v as w}from"./models-CfZmiKuz.js";import{t as T}from"./drawer-Cnm2ONDq.js";import{t as E}from"./input-number-CXyGkQc9.js";import{t as D}from"./slider-BnJ21MN1.js";import{t as O}from"./clock-CVw8rZJk.js";import{r as k,t as A}from"./PromptTextarea-CAvwbYfl.js";import{t as j}from"./info-CaaWfQ5G.js";import{t as ee}from"./trash-2-DXpwwp30.js";import{t as M}from"./triangle-alert-BlTA75VV.js";import{t as N}from"./upload-BeiqlzEw.js";import{t as P}from"./wand-sparkles-M6We7RZu.js";import{dr as te,fr as ne,ur as F}from"./constants-DdiBRvPy.js";import{$t as I,Gt as L,Jn as R,Mi as z,O as B,Qt as V,Xt as H,Yt as U,Zt as W,ii as G,kr as K,tn as q,un as J,vi as Y}from"./index-DSIuJ3Ml.js";import{t as X}from"./CopyToClipboard-DaW2jH2E.js";import{t as Z}from"./ReportButton-QNLl-twb.js";import{t as re}from"./ImagePreview-CZw5RcMp.js";import{n as ie}from"./taskDrawerMixin-DyAUhFEq.js";import{t as ae}from"./Consumption-JEEofYog.js";import{a as Q,n as oe,r as se,t as ce}from"./pagination-CGAsm_gH.js";import{t as le}from"./ApiCodeButton-BJzi5tyz.js";import{t as ue}from"./BotPlaceholder-DLGHIQS6.js";import{t as de}from"./ImageWrapper-qlYGoYD4.js";var fe=_({name:`LayoutFlux`,components:{MagicIcon:P,ElDrawer:T,ElButton:z},mixins:[ie]}),pe={class:`main flex flex-row flex-1`},me={class:`config w-[320px] flex-none h-full min-h-0 overflow-hidden flex flex-col bg-[var(--app-sidebar-bg)] border-r border-[var(--app-border-subtle)]`},he={class:`result h-full p-6 flex-1 flex flex-col min-w-0 overflow-x-hidden bg-[var(--app-content-bg)]`};function ge(t,n,r,i,o,c){let f=l(`magic-icon`),m=l(`el-button`),_=l(`el-drawer`);return h(),s(`div`,pe,[e(`div`,me,[d(t.$slots,`config`,{},void 0,!0)]),e(`div`,he,[d(t.$slots,`result`,{},void 0,!0)]),u(a(m,{circle:``,class:`menu`,"aria-label":t.$t(`common.button.openMenu`),title:t.$t(`common.button.openMenu`),onClick:n[0]||=e=>t.drawer=!0},{default:p(()=>[a(f,{size:`1em`,"aria-hidden":`true`,focusable:`false`})]),_:1},8,[`aria-label`,`title`]),[[g,!t.tasksEmpty]]),a(_,{modelValue:t.drawer,"onUpdate:modelValue":n[1]||=e=>t.drawer=e,direction:`ltr`,"with-header":!1,size:`340px`,class:`drawer generator-drawer`},{default:p(()=>[d(t.$slots,`config`,{},void 0,!0)]),_:3},8,[`modelValue`])])}var _e=B(fe,[[`render`,ge],[`__scopeId`,`data-v-72e82d52`]]),ve=_({name:`ModelSelector`,components:{ElSelect:v,ElOption:y},props:{modelValue:{type:String,default:void 0}},emits:[`update:modelValue`],data(){return{options:[{value:`flux-dev`,label:`flux-dev`},{value:`flux-pro`,label:`flux-pro`},{value:`flux-kontext-pro`,label:`flux-kontext-pro`},{value:`flux-kontext-max`,label:`flux-kontext-max`},{value:`flux-2-flex`,label:`flux-2-flex`},{value:`flux-2-pro`,label:`flux-2-pro`},{value:`flux-2-max`,label:`flux-2-max`}]}},computed:{value:{get(){return this.$store.state.flux?.config?.model},set(e){this.$store.commit(`flux/setConfig`,{...this.$store.state.flux.config,model:e})}}},mounted(){this.value||=ne}}),ye={class:`field`},be={class:`title font-bold`};function xe(t,n,r,o,u,d){let g=l(`el-option`),_=l(`el-select`);return h(),s(`div`,ye,[e(`h2`,be,i(t.$t(`flux.name.model`)),1),a(_,{modelValue:t.value,"onUpdate:modelValue":n[0]||=e=>t.value=e,class:`value`,placeholder:t.$t(`flux.placeholder.select`)},{default:p(()=>[(h(!0),s(c,null,m(t.options,e=>(h(),f(g,{key:e.value,label:e.label,value:e.value},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`])])}var Se=B(ve,[[`render`,xe],[`__scopeId`,`data-v-e9b17945`]]),Ce=_({name:`CountSelector`,components:{ElSlider:D,InfoIcon:Q,ElInputNumber:E},computed:{value:{get(){return this.$store.state.flux?.config?.count},set(e){console.debug(`set count`,e),this.$store.commit(`flux/setConfig`,{...this.$store.state.flux?.config,count:e})}}},mounted(){this.value||=1}}),we={class:`flex justify-between`},Te={class:`flex justify-start items-center`},Ee={class:`text-sm font-bold`},De={class:`flex justify-end items-center`},Oe={class:`w-full`};function ke(t,n,r,o,c,u){let d=l(`info-icon`),f=l(`el-input-number`),p=l(`el-slider`);return h(),s(`div`,null,[e(`div`,we,[e(`div`,Te,[e(`span`,Ee,i(t.$t(`flux.name.numbers`)),1),a(d,{content:t.$t(`flux.description.numbers`)},null,8,[`content`])]),e(`div`,De,[a(f,{modelValue:t.value,"onUpdate:modelValue":n[0]||=e=>t.value=e,"controls-position":`right`},null,8,[`modelValue`])])]),e(`div`,Oe,[a(p,{modelValue:t.value,"onUpdate:modelValue":n[1]||=e=>t.value=e,min:1,max:4,step:1},null,8,[`modelValue`])])])}var Ae=B(Ce,[[`render`,ke]]),je=_({name:`ActionSelector`,components:{ElSelect:v,ElOption:y},props:{modelValue:{type:String,default:void 0}},emits:[`update:modelValue`],data(){return{options:[{value:`generate`,label:this.$t(`flux.name.generate`)},{value:`edits`,label:this.$t(`flux.name.edits`)}]}},computed:{value:{get(){return this.$store.state.flux?.config?.action},set(e){this.$store.commit(`flux/setConfig`,{...this.$store.state.flux.config,action:e})}}},mounted(){this.value||=te}}),Me={class:`field`},Ne={class:`title font-bold`};function Pe(t,n,r,o,u,d){let g=l(`el-option`),_=l(`el-select`);return h(),s(`div`,Me,[e(`h2`,Ne,i(t.$t(`flux.name.task`)),1),a(_,{modelValue:t.value,"onUpdate:modelValue":n[0]||=e=>t.value=e,class:`value`,placeholder:t.$t(`flux.placeholder.select`)},{default:p(()=>[(h(!0),s(c,null,m(t.options,e=>(h(),f(g,{key:e.value,label:e.label,value:e.value},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`])])}var Fe=B(je,[[`render`,Pe],[`__scopeId`,`data-v-81fd05e5`]]),Ie=_({name:`ImageUrlInput`,components:{UploadIcon:N,ElUpload:b,ElButton:z,InfoIcon:Q,ImagePreview:re},mixins:[I,V,H,L],emits:[`change`],data(){return{fileList:[],uploadUrl:G()+`/api/v1/files/`}},computed:{headers(){return{Authorization:`Bearer ${this.$store.state.token.access}`}},urls(){return this.fileList.map(e=>e?.response?.file_url)}},watch:{urls:{handler(e){console.debug(`URLs changed:`,e),this.$store.commit(`flux/setConfig`,{...this.$store.state.flux.config,image_url:e[0]})}}},methods:{onExceed(){w.warning(this.$t(`flux.message.uploadStartImageExceed`))},onError(){w.error(this.$t(`flux.message.uploadStartImageError`))}}}),Le={class:`relative`},Re={class:`flex justify-between`},ze={class:`flex justify-start items-center`},Be={class:`text-sm font-bold`};function Ve(t,n,o,c,u,d){let f=l(`info-icon`),m=l(`image-preview`),g=l(`upload-icon`),_=l(`el-button`),v=l(`el-upload`);return h(),s(`div`,Le,[e(`div`,Re,[e(`div`,ze,[e(`span`,Be,i(t.$t(`flux.name.imageUrl`)),1),a(f,{content:t.$t(`flux.description.imageUrl`)},null,8,[`content`])])]),a(v,{ref:`uploader`,"file-list":t.fileList,"onUpdate:fileList":n[0]||=e=>t.fileList=e,name:`file`,limit:5,class:`upload-wrapper`,accept:`.png,.jpg,.jpeg,.gif,.bmp,.webp`,multiple:!0,"list-type":`picture`,"before-upload":t.beforeUploadSizeGuard,action:t.uploadUrl,"on-exceed":t.onExceed,"on-error":t.onError,headers:t.headers},{file:p(({file:e})=>[a(m,{url:e.url||e.response?.file_url,name:e.name,percentage:e.percentage,onRemove:n=>t.fileList.splice(t.fileList.indexOf(e),1)},null,8,[`url`,`name`,`percentage`,`onRemove`])]),default:p(()=>[a(_,{round:``,type:`primary`,size:`small`,class:`btn btn-upload`},{default:p(()=>[a(g,{class:`icon mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(t.$t(`flux.button.uploadImageUrl`)),1)]),_:1})]),_:1},8,[`file-list`,`before-upload`,`action`,`on-exceed`,`on-error`,`headers`])])}var He=B(Ie,[[`render`,Ve],[`__scopeId`,`data-v-9830e0c3`]]),Ue=_({name:`PromptInput`,components:{PromptTextarea:A},computed:{prompt:{get(){return this.$store.state.flux?.config?.prompt},set(e){this.$store.commit(`flux/setConfig`,{...this.$store.state.flux?.config,prompt:e})}}},mounted(){this.prompt||=``}});function We(e,t,n,r,i,a){let o=l(`prompt-textarea`);return h(),f(o,{modelValue:e.prompt,"onUpdate:modelValue":t[0]||=t=>e.prompt=t,title:e.$t(`flux.name.prompt`),info:e.$t(`flux.description.prompt`),placeholder:e.$t(`flux.placeholder.prompt`)},null,8,[`modelValue`,`title`,`info`,`placeholder`])}var Ge=B(Ue,[[`render`,We]]),Ke=_({name:`SizeSelector`,components:{ElSelect:v,ElOption:y},data(){return{options:F}},computed:{value:{get(){return this.$store.state.flux?.config?.size},set(e){this.$store.commit(`flux/setConfig`,{...this.$store.state.flux?.config,size:e})}}},mounted(){this.value||=`1:1`}}),qe={class:`field`},Je={class:`title font-bold`};function Ye(t,n,r,o,u,d){let g=l(`el-option`),_=l(`el-select`);return h(),s(`div`,qe,[e(`h2`,Je,i(t.$t(`flux.name.ratio`)),1),a(_,{modelValue:t.value,"onUpdate:modelValue":n[0]||=e=>t.value=e,class:`value`,placeholder:t.$t(`flux.placeholder.select`)},{default:p(()=>[(h(!0),s(c,null,m(t.options,e=>(h(),f(g,{key:e,label:e,value:e},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`])])}var Xe=_({name:`PresetPanel`,components:{MagicIcon:P,ElButton:z,PromptInput:Ge,ModelSelector:Se,CountSelector:Ae,Consumption:ae,ActionSelector:Fe,ImageUrlInput:He,SizeSelector:B(Ke,[[`render`,Ye],[`__scopeId`,`data-v-8c58dc91`]])},emits:[`generate`],computed:{config(){return this.$store.state.flux?.config},consumption(){return q(this.config,this.service?.cost)},service(){return this.$store.state.flux?.service}},methods:{onGenerate(){this.$emit(`generate`)}}}),Ze={class:`flex flex-col h-full`},Qe={class:`flex-1 overflow-y-auto p-5`},$e={class:`flex flex-col items-center justify-center px-5 pb-5`};function et(t,n,c,u,d,m){let g=l(`action-selector`),_=l(`prompt-input`),v=l(`image-url-input`),y=l(`model-selector`),b=l(`size-selector`),x=l(`count-selector`),S=l(`consumption`),C=l(`magic-icon`),w=l(`el-button`);return h(),s(`div`,Ze,[e(`div`,Qe,[a(g,{class:`mb-4`}),a(_,{class:`mb-4`}),t.config?.action===`edits`?(h(),f(v,{key:0,class:`mb-4`})):o(``,!0),a(y,{class:`mb-4`}),a(b,{class:`mb-4`}),a(x,{class:`mb-4`})]),e(`div`,$e,[a(S,{value:t.consumption,service:t.service},null,8,[`value`,`service`]),a(w,{type:`primary`,class:`btn w-full`,round:``,onClick:t.onGenerate},{default:p(()=>[a(C,{class:`mr-2`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(t.$t(`flux.button.generate`)),1)]),_:1},8,[`onClick`])])])}var tt=B(Xe,[[`render`,et]]),nt=_({name:`TaskPreview`,components:{DeleteIcon:ee,ElTooltip:x,ChannelIcon:k,InfoIcon:j,MagicIcon:P,TimeIcon:O,WarningIcon:M,CopyToClipboard:X,ElAlert:S,ImageWrapper:de,ApiCodeButton:le,ReportButton:Z},props:{modelValue:{type:Object,required:!0}},data(){return{}},computed:{application(){return this.$store.state.flux?.application},config(){return this.$store.state.flux?.config},images(){let e=[],t=this.modelValue?.request?.action;return Array.isArray(this.modelValue?.response?.data)&&this.modelValue?.response?.data?.forEach(n=>{let r=n;t&&(r.action=t),e.push(r)}),e}},methods:{async onDelete(){let e=this.modelValue?.id;if(e){try{await Y.confirm(this.$t(`common.message.deleteTaskConfirm`),this.$t(`common.button.delete`),{type:`warning`,confirmButtonText:this.$t(`common.button.delete`),cancelButtonText:this.$t(`common.button.cancel`),confirmButtonClass:`el-button--danger`})}catch{return}try{await this.$store.dispatch(`flux/deleteTask`,{id:e}),w.success(this.$t(`common.message.deleteTaskSuccess`))}catch{w.error(this.$t(`common.message.deleteTaskFailed`))}}},onDownload(e,t){e?.stopPropagation(),console.log(`on download`),window.open(t,`_blank`)},onOpenImage(e){window.open(e,`_blank`)}}}),rt={class:`preview`},it={class:`left`},at={class:`main`},ot={class:`bot`},st={class:`datetime`},ct=[`aria-label`],lt={class:`info`},ut={key:0,class:`prompt mt-2`},dt={key:0},ft={key:0,class:n({content:!0,failed:!0})},pt={class:`flex justify-start items-center gap-4 w-full overflow-x-auto`},mt={class:n({operations:!0,"mt-2":!0,"mb-2":!0})},ht={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},gt={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},_t={key:0,class:`text-[var(--el-text-color-regular)] text-xs mb-0`},vt={key:1,class:n({content:!0})},yt={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},$={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},bt={key:0,class:`text-[var(--el-text-color-regular)] text-xs mb-2`},xt={class:`text-[var(--el-text-color-regular)] text-xs mb-0`},St={key:2,class:n({content:!0})},Ct={class:`text-[var(--el-text-color-regular)] text-xs mb-0`};function wt(n,u,d,g,_,v){let y=l(`capability-presentation`),b=l(`delete-icon`),x=l(`el-tooltip`),S=l(`image-wrapper`),C=l(`api-code-button`),w=l(`report-button`),T=l(`channel-icon`),E=l(`magic-icon`),D=l(`copy-to-clipboard`),O=l(`time-icon`),k=l(`el-alert`),A=l(`warning-icon`),j=l(`info-icon`);return h(),s(`div`,rt,[e(`div`,it,[a(y,{capability:`flux`,part:`avatar`,class:`avatar`})]),e(`div`,at,[e(`div`,ot,[a(y,{capability:`flux`,part:`name`}),e(`span`,st,i(n.$dayjs.format(``+new Date(parseFloat((n.modelValue?.created_at||``).toString())*1e3))),1),a(x,{effect:`dark`,content:n.$t(`common.button.delete`),placement:`top`},{default:p(()=>[n.modelValue?.id?(h(),s(`button`,{key:0,type:`button`,class:`btn-delete`,"aria-label":n.$t(`common.button.delete`),onClick:u[0]||=t((...e)=>n.onDelete&&n.onDelete(...e),[`stop`])},[a(b,{size:`1em`,"aria-hidden":`true`,focusable:`false`})],8,ct)):o(``,!0)]),_:1},8,[`content`])]),e(`div`,lt,[n.modelValue?.request?.prompt?(h(),s(`p`,ut,[r(i(n.modelValue?.request?.prompt)+` `,1),n.modelValue?.response?o(``,!0):(h(),s(`span`,dt,` - (`+i(n.$t(`flux.status.pending`))+`) `,1))])):o(``,!0)]),n.modelValue?.response?.success===!0?(h(),s(`div`,ft,[e(`div`,pt,[(h(!0),s(c,null,m(n.images,(e,t)=>(h(),f(S,{key:t,src:e?.image_url,"raw-src":e?.image_url,"model-value":e},null,8,[`src`,`raw-src`,`model-value`]))),128))]),e(`div`,mt,[a(C,{path:`/flux/images`,body:n.modelValue?.request},null,8,[`body`]),a(w,{service:`flux`,"target-id":n.modelValue?.id,snapshot:{prompt:n.modelValue?.request?.prompt}},null,8,[`target-id`,`snapshot`])]),a(k,{closable:!1,class:`mt-2 success`},{default:p(()=>[e(`p`,ht,[a(T,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`flux.name.model`))+`: `+i(n.modelValue?.request?.model),1)]),e(`p`,gt,[a(E,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`flux.name.taskId`))+`: `+i(n.modelValue?.id)+` `,1),a(D,{content:n.modelValue?.id,class:`btn-copy inline-block`},null,8,[`content`])]),n.modelValue?.elapsed?(h(),s(`p`,_t,[a(O,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`flux.name.elapsed`))+`: `+i(n.modelValue?.elapsed?.toFixed(2))+`s `,1)])):o(``,!0)]),_:1})])):o(``,!0),n.modelValue?.response?.success===!1?(h(),s(`div`,vt,[a(k,{closable:!1,class:`failure`},{template:p(()=>[a(A,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`flux.name.failure`)),1)]),default:p(()=>[e(`p`,yt,[a(E,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`flux.name.taskId`))+`: `+i(n.modelValue?.id)+` `,1),a(D,{content:n.modelValue?.id,class:`btn-copy`},null,8,[`content`])]),e(`p`,$,[a(j,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`flux.name.failureReason`))+`: `+i(n.modelValue?.response?.error?.message)+` `,1),a(D,{content:n.modelValue?.response?.error?.message,class:`btn-copy`},null,8,[`content`])]),n.modelValue?.elapsed?(h(),s(`p`,bt,[a(O,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`flux.name.elapsed`))+`: `+i(n.modelValue?.elapsed?.toFixed(2))+`s `,1)])):o(``,!0),e(`p`,xt,[a(T,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`flux.name.traceId`))+`: `+i(n.modelValue?.response?.trace_id)+` `,1),a(D,{content:n.modelValue?.response?.trace_id,class:`btn-copy`},null,8,[`content`])])]),_:1})])):o(``,!0),n.modelValue?.response?o(``,!0):(h(),s(`div`,St,[a(k,{closable:!1,class:`info`},{template:p(()=>[a(O,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`flux.status.pending`)),1)]),default:p(()=>[e(`p`,Ct,[a(E,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`flux.name.taskId`))+`: `+i(n.modelValue?.id)+` `,1),a(D,{content:n.modelValue?.id,class:`btn-copy`},null,8,[`content`])])]),_:1})]))])])}var Tt=_({name:`RecentPanel`,components:{TaskPreview:B(nt,[[`render`,wt],[`__scopeId`,`data-v-cbf7ee77`]]),BotPlaceholder:ue,NoTasks:se,ScrollList:oe},props:{loading:{type:Boolean,default:!1}},emits:[`reach-top`],data(){return{job:0}},computed:{tasks(){return{...this.$store.state.flux?.tasks,items:this.$store.state.flux?.tasks?.items?.slice()}}},methods:{getScrollElement(){return this.$refs.scrollList?.getScrollElement?.()}}}),Et={key:0},Dt={key:2,class:`w-full h-full flex items-center justify-center`};function Ot(e,t,n,r,i,u){let d=l(`bot-placeholder`),g=l(`task-preview`),_=l(`scroll-list`),v=l(`no-tasks`);return h(),s(c,null,[e.tasks?.items===void 0?(h(),s(`div`,Et,[a(d)])):e.tasks?.items?.length&&e.tasks?.items?.length>0?(h(),f(_,{key:1,ref:`scrollList`,class:`tasks h-full w-full overflow-y-auto`,loading:e.loading,onReachTop:t[0]||=t=>e.$emit(`reach-top`)},{default:p(()=>[(h(!0),s(c,null,m(e.tasks?.items,e=>(h(),f(g,{key:e.id,"model-value":e},null,8,[`model-value`]))),128))]),_:1},8,[`loading`])):o(``,!0),e.tasks?.items?.length===0?(h(),s(`div`,Dt,[a(v)])):o(``,!0)],64)}var kt=_({name:`FluxIndex`,components:{ConfigPanel:tt,Layout:_e,RecentPanel:B(Tt,[[`render`,Ot]])},mixins:[W],inject:[`initialized`],data(){return{task:void 0,job:0,loadingMore:!1,fetchingTasks:!1}},computed:{applicationsLoading(){return this.$store.state.flux?.status?.getApplications===C.Request},tasksLoading(){return this.$store.state.flux?.status?.getTasks===C.Request||this.fetchingTasks},credential(){return this.$store.state.flux?.credential},config(){return this.$store.state.flux?.config},application(){return this.$store.state.flux?.application},tasks(){return this.$store.state.flux?.tasks}},watch:{tasks:{handler(e,t){e?.items?.length>t?.items?.length&&console.debug(`new tasks detected`)},deep:!0},initialized:{async handler(e){e&&(console.debug(`layout initialized`),await this.onGetTasks(),await this.onScrollDown(),this.job=window.setInterval(()=>{this.onGetTasks()},5e3))},immediate:!0}},async mounted(){await this.onGetService()},async unmounted(){window.clearInterval(this.job)},methods:{async onReachTop(){await ce({tasks:this.tasks,getTasks:()=>this.tasks,loading:this.loadingMore,setLoading:e=>this.loadingMore=e,isBlocked:()=>this.tasksLoading||this.applicationsLoading,fetch:e=>this.onGetTasks({createdAtMax:e}),getScrollElement:()=>this.getTasksScrollElement()})},async onGetService(){console.debug(`start onGetService`),await this.$store.dispatch(`flux/getService`),console.debug(`end onGetService`)},async onGetApplication(){console.debug(`start onGetApplication`),await this.$store.dispatch(`flux/getApplications`),console.debug(`end onGetApplication`),await this.onGetTasks()},async onScrollDown(){await this.$nextTick();let e=this.getTasksScrollElement();e&&(e.scrollTop=e.scrollHeight)},async onGetTasks(e){if(this.applicationsLoading||this.fetchingTasks){console.debug(`loading`);return}console.debug(`start onGetTasks`,e);let{limit:t=5,createdAtMin:n,createdAtMax:r}=e||{};console.debug(`limit`,t,`createdAtMin`,n,`createdAtMax`,r),this.fetchingTasks=!0;try{await this.$store.dispatch(`flux/getTasks`,{limit:t,createdAtMin:n,createdAtMax:r})}finally{this.fetchingTasks=!1}},async onGenerate(){if(!U(this.uploadTracker,e=>this.$t(e),e=>w.warning(e)))return;let e={...this.config,async:!0};if(!J())return;let t=this.credential?.token;if(!t){console.error(`no token specified`);return}w.info(this.$t(`flux.message.startingTask`)),K(`flux`,R.generate(e,{token:t})).then(()=>{w.success(this.$t(`flux.message.startTaskSuccess`))}).catch(e=>{let t=e?.response?.data;t?.error?.code===`used_up`?w.error(this.$t(`flux.message.usedUp`)):w.error(this.$t(`flux.message.startTaskFailed`)+t?.error?.message)}).finally(async()=>{setTimeout(async()=>{await this.onGetTasks(),await this.onScrollDown()},1e3)})},getTasksScrollElement(){return this.$refs.recentPanel?.getScrollElement?.()}}});function At(e,t,n,r,i,o){let s=l(`config-panel`),c=l(`recent-panel`),u=l(`layout`);return h(),f(u,null,{config:p(()=>[a(s,{onGenerate:e.onGenerate},null,8,[`onGenerate`])]),result:p(()=>[a(c,{ref:`recentPanel`,loading:e.loadingMore,onReachTop:e.onReachTop},null,8,[`loading`,`onReachTop`])]),_:1})}var jt=B(kt,[[`render`,At]]);export{jt as default};
@@ -1 +1 @@
1
- import"./rolldown-runtime--c01j_DQ.js";import{A as e,C as t,Gt as n,I as r,Jt as i,L as a,M as o,N as s,T as c,at as l,ht as u,it as d,j as f,mt as p,qt as m,rt as h,tt as g,x as _,z as v}from"./vendor-chart-Dw-P17PN.js";import{r as y,t as b}from"./select-1w7Zpr6O.js";import{t as x}from"./upload-CVuy8NY8.js";import{t as S}from"./tooltip-CnN93uDP.js";import{t as C}from"./alert-BprQRUmf.js";import{h as w,v as T}from"./models-BAyJ5pH0.js";import{t as E}from"./drawer-BoDb3Fpk.js";import{t as D}from"./clock-BWo5B4kH.js";import{r as O,t as k}from"./PromptTextarea-CkuHuU4h.js";import{t as A}from"./info-Ckusq785.js";import{t as j}from"./trash-2-C5utNutX.js";import{t as M}from"./triangle-alert-DkHeaWG2.js";import{t as N}from"./upload-Bcc_2RIh.js";import{t as P}from"./wand-sparkles-Duz2fMGa.js";import{$r as ee,Qr as te,Zr as F,ai as I,ei as L,ii as R,ni as z,ti as B}from"./constants-FVNrPctQ.js";import{$n as V,$t as H,Gt as U,Mi as W,O as G,Qt as K,Xt as q,Yt as J,Zt as Y,ii as X,kr as Z,tn as Q,un as ne,vi as re}from"./index-DCEwxRXS.js";import{t as ie}from"./CopyToClipboard-BJY08VAg.js";import{t as ae}from"./ReportButton-C11rSSUR.js";import{t as oe}from"./ImagePreview-Cp9W6Bga.js";import{n as se}from"./taskDrawerMixin-DyAUhFEq.js";import{t as ce}from"./Consumption-Df5_TTmd.js";import{a as le,n as ue,r as de,t as fe}from"./pagination-Zcuxd8JC.js";import{t as pe}from"./VideoPlayer-DdGrgCh3.js";import{t as me}from"./ApiCodeButton-l1_BzkCH.js";import{t as he}from"./BotPlaceholder-ozgWBXZZ.js";var ge=v({name:`LayoutSora`,components:{MagicIcon:P,ElDrawer:E,ElButton:W},mixins:[se]}),_e={class:`main flex flex-row flex-1`},ve={class:`config w-[320px] flex-none h-full min-h-0 overflow-hidden flex flex-col bg-[var(--app-sidebar-bg)] border-r border-[var(--app-border-subtle)]`},ye={class:`result h-full p-6 flex-1 flex flex-col min-w-0 overflow-x-hidden bg-[var(--app-content-bg)]`};function be(t,n,r,i,o,c){let f=l(`magic-icon`),m=l(`el-button`),h=l(`el-drawer`);return g(),s(`div`,_e,[e(`div`,ve,[d(t.$slots,`config`,{},void 0,!0)]),e(`div`,ye,[d(t.$slots,`result`,{},void 0,!0)]),u(a(m,{circle:``,class:`menu`,"aria-label":t.$t(`common.button.openMenu`),title:t.$t(`common.button.openMenu`),onClick:n[0]||=e=>t.drawer=!0},{default:p(()=>[a(f,{size:`1em`,"aria-hidden":`true`,focusable:`false`})]),_:1},8,[`aria-label`,`title`]),[[_,!t.tasksEmpty]]),a(h,{modelValue:t.drawer,"onUpdate:modelValue":n[1]||=e=>t.drawer=e,direction:`ltr`,"with-header":!1,size:`340px`,class:`generator-drawer`},{default:p(()=>[d(t.$slots,`config`,{},void 0,!0)]),_:3},8,[`modelValue`])])}var xe=G(ge,[[`render`,be],[`__scopeId`,`data-v-b8cedc77`]]),Se=v({name:`ModelSelector`,components:{ElSelect:y,ElOption:b},props:{modelValue:{type:String,default:void 0}},emits:[`update:modelValue`],data(){return{options:[{value:I,label:`sora-2`},{value:R,label:`sora-2-pro`}]}},computed:{value:{get(){return this.$store.state.sora?.config?.model},set(e){let t=this.$store.state.sora?.config||{},n=F[e]||[10],r=t.duration,i=r&&n.includes(r)?r:n.includes(10)?10:n[0],a={...t,model:e,duration:i,size:t.size||`small`};this.$store.commit(`sora/setConfig`,a)}}},mounted(){this.value||=L}}),Ce={class:`field`},we={class:`title font-bold`};function Te(t,n,r,o,u,d){let m=l(`el-option`),_=l(`el-select`);return g(),s(`div`,Ce,[e(`h2`,we,i(t.$t(`sora.name.model`)),1),a(_,{modelValue:t.value,"onUpdate:modelValue":n[0]||=e=>t.value=e,class:`value`,placeholder:t.$t(`sora.placeholder.select`)},{default:p(()=>[(g(!0),s(c,null,h(t.options,e=>(g(),f(m,{key:e.value,label:e.label,value:e.value},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`])])}var Ee=G(Se,[[`render`,Te],[`__scopeId`,`data-v-0cb7913d`]]),De=v({name:`ActionSelector`,components:{ElSelect:y,ElOption:b},data(){return{}},computed:{options(){return[{value:`text2video`,label:this.$t(`sora.button.action1`)},{value:`image2video`,label:this.$t(`sora.button.action2`)}]},value:{get(){return this.$store.state.sora?.config?.action},set(e){this.$store.commit(`sora/setConfig`,{...this.$store.state.sora?.config,action:e})}}},mounted(){this.value||=ee}}),Oe={class:`field`},ke={class:`title font-bold`},Ae={class:`float-left`};function je(t,n,r,o,u,d){let m=l(`el-option`),_=l(`el-select`);return g(),s(`div`,Oe,[e(`h2`,ke,i(t.$t(`sora.name.action`)),1),a(_,{modelValue:t.value,"onUpdate:modelValue":n[0]||=e=>t.value=e,class:`value`,placeholder:t.$t(`sora.placeholder.select`),clearable:``},{default:p(()=>[(g(!0),s(c,null,h(t.options,t=>(g(),f(m,{key:t.value,label:t.label,value:t.value},{default:p(()=>[e(`span`,Ae,i(t.label),1)]),_:2},1032,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`])])}var Me=G(De,[[`render`,je],[`__scopeId`,`data-v-7b82fa7f`]]),Ne=v({name:`DurationSelector`,components:{ElSelect:y,ElOption:b},computed:{model(){return this.$store.state.sora?.config?.model||`sora-2`},allowedDurations(){return F[this.model]||[10]},optionsForModel(){return this.allowedDurations.map(e=>({value:e,label:`${e}s`}))},value:{get(){return this.$store.state.sora?.config?.duration},set(e){let t=this.$store.state.sora?.config||{};this.$store.commit(`sora/setConfig`,{...t,duration:e})}}},watch:{allowedDurations(){let e=this.allowedDurations;if(!e.includes(this.value)){let t=e.includes(10)?10:e[0];this.value=t}}},mounted(){this.value||=10}}),Pe={class:`field`},Fe={class:`control`},Ie={class:`title font-bold`};function Le(t,n,r,o,u,d){let m=l(`el-option`),_=l(`el-select`);return g(),s(`div`,Pe,[e(`div`,Fe,[e(`h2`,Ie,i(t.$t(`sora.name.duration`)),1),a(_,{modelValue:t.value,"onUpdate:modelValue":n[0]||=e=>t.value=e,class:`value`,placeholder:t.$t(`sora.placeholder.select`)},{default:p(()=>[(g(!0),s(c,null,h(t.optionsForModel,e=>(g(),f(m,{key:e.value,label:e.label,value:e.value},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`])])])}var Re=G(Ne,[[`render`,Le],[`__scopeId`,`data-v-c2934598`]]),ze=v({name:`OrientationSelector`,data(){return{options:[{value:`portrait`,labelKey:`sora.option.portrait`,width:13,height:25},{value:`landscape`,labelKey:`sora.option.landscape`,width:25,height:13}]}},computed:{active(){let e=this.options.findIndex(e=>e.value===this.value);return e>=0?e:0},value:{get(){return this.$store.state.sora?.config?.orientation},set(e){console.debug(`set orientation`,e),this.$store.commit(`sora/setConfig`,{...this.$store.state?.sora?.config,orientation:e})}}},mounted(){this.value||=B}}),Be={class:`text-sm font-bold mb-2 block`},Ve={class:`items`},He=[`onClick`],Ue={class:`name`};function We(t,r,a,o,l,u){return g(),s(`div`,null,[e(`span`,Be,i(t.$t(`sora.name.orientation`)),1),e(`div`,Ve,[(g(!0),s(c,null,h(t.options,(r,a)=>(g(),s(`div`,{key:a,class:n({active:t.active===a,item:!0}),onClick:e=>t.value=r.value},[e(`div`,{class:n([`preview`,r.value])},[e(`div`,{class:`rect`,style:m({width:r.width+`px`,height:r.height+`px`})},null,4)],2),e(`p`,Ue,i(t.$t(r.labelKey)),1)],10,He))),128))])])}var Ge=G(ze,[[`render`,We],[`__scopeId`,`data-v-a20be6d9`]]),Ke=v({name:`StartEndImage`,components:{UploadIcon:N,ElUpload:x,ElButton:W,InfoIcon:le,ImagePreview:oe},mixins:[H,K,q,U],emits:[`change`],data(){return{fileList:[],uploadUrl:X()+`/api/v1/files/`}},computed:{headers(){return{Authorization:`Bearer ${this.$store.state.token.access}`}},urls(){return this.fileList.map(e=>e?.response?.file_url)},value:{get(){return this.$store.state?.sora?.config?.image_urls},set(){}}},mounted(){this.value||=void 0,this.onSetStartEndImageUrl()},methods:{onExceed(){T.warning(this.$t(`sora.message.uploadReferencesExceed`))},onError(){T.error(this.$t(`sora.message.uploadReferencesError`))},onSetStartEndImageUrl(){let e=this.urls;this.$store.commit(`sora/setConfig`,{...this.$store.state?.sora?.config,image_urls:e})},async onSuccess(){this.onSetStartEndImageUrl()}}}),qe={class:`relative`},Je={class:`flex justify-between`},Ye={class:`flex justify-start items-center`},Xe={class:`text-sm font-bold`};function Ze(t,n,c,u,d,m){let h=l(`info-icon`),_=l(`image-preview`),v=l(`upload-icon`),y=l(`el-button`),b=l(`el-upload`);return g(),s(`div`,qe,[e(`div`,Je,[e(`div`,Ye,[e(`span`,Xe,i(t.$t(`sora.name.startEndImage`)),1),a(h,{content:t.$t(`sora.description.uploadStartEndImage`)},null,8,[`content`])])]),a(b,{ref:`uploader`,"file-list":t.fileList,"onUpdate:fileList":n[0]||=e=>t.fileList=e,name:`file`,accept:`.png,.jpg,.jpeg,.gif,.bmp,.webp`,limit:2,class:`upload-wrapper`,multiple:!1,"before-upload":t.beforeUploadSizeGuard,action:t.uploadUrl,"list-type":`picture`,"on-exceed":t.onExceed,"on-error":t.onError,"on-success":t.onSuccess,headers:t.headers},{file:p(({file:e})=>[e.url&&e.percentage!==void 0?(g(),f(_,{key:0,url:e.url,name:e.name,percentage:e.percentage,onRemove:n=>t.fileList.splice(t.fileList.indexOf(e),1)},null,8,[`url`,`name`,`percentage`,`onRemove`])):o(``,!0)]),default:p(()=>[a(y,{round:``,type:`primary`,size:`small`,class:`btn btn-upload`},{default:p(()=>[a(v,{class:`icon mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(t.$t(`sora.button.uploadReferences`)),1)]),_:1})]),_:1},8,[`file-list`,`before-upload`,`action`,`on-exceed`,`on-error`,`on-success`,`headers`])])}var Qe=G(Ke,[[`render`,Ze],[`__scopeId`,`data-v-01b87539`]]),$e=e=>e&&e.charAt(0).toUpperCase()+e.slice(1),et=v({name:`SizeSelector`,components:{ElSelect:y,ElOption:b},data(){return{options:te.map(e=>({value:e,label:$e(e)}))}},computed:{value:{get(){return this.$store.state.sora?.config?.size},set(e){let t=this.$store.state.sora?.config||{};this.$store.commit(`sora/setConfig`,{...t,size:e})}}},mounted(){this.value||=z}}),tt={class:`field`},nt={class:`control`},rt={class:`title font-bold`};function it(t,n,r,o,u,d){let m=l(`el-option`),_=l(`el-select`);return g(),s(`div`,tt,[e(`div`,nt,[e(`h2`,rt,i(t.$t(`sora.name.size`)),1),a(_,{modelValue:t.value,"onUpdate:modelValue":n[0]||=e=>t.value=e,class:`value`,placeholder:t.$t(`sora.placeholder.select`)},{default:p(()=>[(g(!0),s(c,null,h(t.options,e=>(g(),f(m,{key:e.value,label:e.label,value:e.value},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`])])])}var at=G(et,[[`render`,it],[`__scopeId`,`data-v-8c485f0f`]]),ot=v({name:`PromptInput`,components:{PromptTextarea:k},computed:{prompt:{get(){return this.$store.state.sora?.config?.prompt},set(e){this.$store.commit(`sora/setConfig`,{...this.$store.state.sora?.config,prompt:e})}}},mounted(){this.prompt||=``}});function st(e,t,n,r,i,a){let o=l(`prompt-textarea`);return g(),f(o,{modelValue:e.prompt,"onUpdate:modelValue":t[0]||=t=>e.prompt=t,title:e.$t(`sora.name.prompt`),info:e.$t(`sora.description.prompt`),placeholder:e.$t(`sora.placeholder.prompt`)},null,8,[`modelValue`,`title`,`info`,`placeholder`])}var ct=v({name:`ConfigPanel`,components:{MagicIcon:P,ElButton:W,Consumption:ce,PromptInput:G(ot,[[`render`,st]]),ModelSelector:Ee,StartEndImage:Qe,SizeSelector:at,ActionSelector:Me,OrientationSelector:Ge,DurationSelector:Re},emits:[`generate`],computed:{config(){return this.$store.state.sora?.config},consumption(){return Q(this.config,this.service?.cost)},service(){return this.$store.state.sora?.service}},methods:{onGenerate(){this.$emit(`generate`)}}}),lt={class:`flex flex-col h-full`},ut={class:`flex-1 overflow-y-auto p-5`},dt={class:`flex flex-col items-center justify-center px-5 pb-5`};function ft(t,n,o,c,d,f){let m=l(`model-selector`),h=l(`action-selector`),v=l(`duration-selector`),y=l(`size-selector`),b=l(`orientation-selector`),x=l(`prompt-input`),S=l(`start-end-image`),C=l(`consumption`),w=l(`magic-icon`),T=l(`el-button`);return g(),s(`div`,lt,[e(`div`,ut,[a(m,{class:`mb-4`}),a(h,{class:`mb-4`}),a(v,{class:`mb-4`}),a(y,{class:`mb-4`}),a(b,{class:`mb-4`}),a(x,{class:`mb-4`}),u(a(S,{class:`mb-4`},null,512),[[_,t.config?.action===`image2video`]])]),e(`div`,dt,[a(C,{value:t.consumption,service:t.service},null,8,[`value`,`service`]),a(T,{type:`primary`,class:`btn w-full`,round:``,onClick:t.onGenerate},{default:p(()=>[a(w,{class:`mr-2`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(t.$t(`sora.button.generate`)),1)]),_:1},8,[`onClick`])])])}var pt=G(ct,[[`render`,ft]]),mt=v({name:`TaskPreview`,components:{DeleteIcon:j,ChannelIcon:O,InfoIcon:A,MagicIcon:P,TimeIcon:D,WarningIcon:M,CopyToClipboard:ie,ElAlert:C,VideoPlayer:pe,ElTooltip:S,ElButton:W,ApiCodeButton:me,ReportButton:ae},props:{modelValue:{type:Object,required:!0}},data(){return{}},computed:{application(){return this.$store.state.sora?.application},config(){return this.$store.state.sora?.config}},methods:{async onDelete(){let e=this.modelValue?.id;if(e){try{await re.confirm(this.$t(`common.message.deleteTaskConfirm`),this.$t(`common.button.delete`),{type:`warning`,confirmButtonText:this.$t(`common.button.delete`),cancelButtonText:this.$t(`common.button.cancel`),confirmButtonClass:`el-button--danger`})}catch{return}try{await this.$store.dispatch(`sora/deleteTask`,{id:e}),T.success(this.$t(`common.message.deleteTaskSuccess`))}catch{T.error(this.$t(`common.message.deleteTaskFailed`))}}},onDownload(e,t){e?.stopPropagation(),console.log(`on download`),window.open(t,`_blank`)},onOpenVideo(e){window.open(e,`_blank`)}}}),ht={class:`preview`},gt={class:`left`},_t={class:`main`},vt={class:`bot`},yt={class:`datetime`},bt=[`aria-label`],xt={class:`info`},St={key:0,class:`prompt mt-2`},Ct={key:0},wt={key:1},Tt={key:0,class:n({content:!0,failed:!0})},Et={key:0,class:`mb-4`},Dt={key:1,class:n({operations:!0,"mt-2":!0})},Ot={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},kt={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},At={key:0,class:`text-[var(--el-text-color-regular)] text-xs mb-0`},jt={key:1,class:n({content:!0})},Mt={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},Nt={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},$={key:0,class:`text-[var(--el-text-color-regular)] text-xs mb-2`},Pt={key:1,class:`text-[var(--el-text-color-regular)] text-xs mb-0`},Ft={key:2,class:n({content:!0})},It={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},Lt={key:0,class:`text-[var(--el-text-color-regular)] text-xs mb-0`};function Rt(n,c,u,d,m,h){let _=l(`capability-presentation`),v=l(`delete-icon`),y=l(`el-tooltip`),b=l(`video-player`),x=l(`el-button`),S=l(`api-code-button`),C=l(`report-button`),w=l(`channel-icon`),T=l(`magic-icon`),E=l(`copy-to-clipboard`),D=l(`time-icon`),O=l(`el-alert`),k=l(`warning-icon`),A=l(`info-icon`);return g(),s(`div`,ht,[e(`div`,gt,[a(_,{capability:`sora`,part:`avatar`,class:`avatar`})]),e(`div`,_t,[e(`div`,vt,[a(_,{capability:`sora`,part:`name`}),e(`span`,yt,i(n.$dayjs.format(``+new Date(parseFloat((n.modelValue?.created_at||``).toString())*1e3))),1),a(y,{effect:`dark`,content:n.$t(`common.button.delete`),placement:`top`},{default:p(()=>[n.modelValue?.id?(g(),s(`button`,{key:0,type:`button`,class:`btn-delete`,"aria-label":n.$t(`common.button.delete`),onClick:c[0]||=t((...e)=>n.onDelete&&n.onDelete(...e),[`stop`])},[a(v,{size:`1em`,"aria-hidden":`true`,focusable:`false`})],8,bt)):o(``,!0)]),_:1},8,[`content`])]),e(`div`,xt,[n.modelValue?.request?.prompt?(g(),s(`p`,St,[r(i(n.modelValue?.request?.prompt)+` `,1),n.modelValue?.response?o(``,!0):(g(),s(`span`,Ct,` - (`+i(n.$t(`sora.status.pending`))+`) `,1)),n.modelValue?.response&&n.modelValue?.response?.success===void 0?(g(),s(`span`,wt,` - (`+i(n.$t(`sora.status.processing`))+`) `,1)):o(``,!0)])):o(``,!0)]),n.modelValue?.response?.success===!0&&n.modelValue?.response?.data?(g(),s(`div`,Tt,[n.modelValue?.response?.data[0]?.video_url?(g(),s(`div`,Et,[a(b,{src:n.modelValue?.response?.data[0]?.video_url},null,8,[`src`])])):o(``,!0),n.modelValue?.response.success?(g(),s(`div`,Dt,[a(y,{class:`box-item`,effect:`dark`,content:n.$t(`sora.message.downloadVideo`),placement:`top-start`},{default:p(()=>[n.modelValue?.response?.data[0]?.video_url?(g(),f(x,{key:0,type:`info`,size:`small`,class:`btn-action`,onClick:c[1]||=e=>n.onDownload(e,n.modelValue?.response?.data[0]?.video_url)},{default:p(()=>[r(i(n.$t(`sora.button.download`)),1)]),_:1})):o(``,!0)]),_:1},8,[`content`]),a(S,{path:`/sora/videos`,body:n.modelValue?.request},null,8,[`body`]),a(C,{service:`sora`,"target-id":n.modelValue?.id,snapshot:{prompt:n.modelValue?.request?.prompt}},null,8,[`target-id`,`snapshot`])])):o(``,!0),a(O,{closable:!1,class:`mt-2 success`},{default:p(()=>[e(`p`,Ot,[a(w,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`sora.name.model`))+`: `+i(n.modelValue?.request?.model),1)]),e(`p`,kt,[a(T,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`sora.name.taskId`))+`: `+i(n.modelValue?.id)+` `,1),a(E,{content:n.modelValue?.id},null,8,[`content`])]),n.modelValue?.elapsed?(g(),s(`p`,At,[a(D,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`sora.name.elapsed`))+`: `+i(n.modelValue?.elapsed?.toFixed(2))+`s `,1)])):o(``,!0)]),_:1})])):o(``,!0),n.modelValue?.response?.success===!1?(g(),s(`div`,jt,[a(O,{closable:!1,class:`failure`},{template:p(()=>[a(k,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`sora.name.failure`)),1)]),default:p(()=>[e(`p`,Mt,[a(T,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`sora.name.taskId`))+`: `+i(n.modelValue?.id)+` `,1),a(E,{content:n.modelValue?.id},null,8,[`content`])]),e(`p`,Nt,[a(A,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`sora.name.failureReason`))+`: `+i(n.modelValue?.response?.error?.message)+` `,1),a(E,{content:n.modelValue?.response?.error?.message},null,8,[`content`])]),n.modelValue?.elapsed?(g(),s(`p`,$,[a(D,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`sora.name.elapsed`))+`: `+i(n.modelValue?.elapsed?.toFixed(2))+`s `,1)])):o(``,!0),n.modelValue?.response?.trace_id?(g(),s(`p`,Pt,[a(w,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`sora.name.traceId`))+`: `+i(n.modelValue?.response?.trace_id)+` `,1),a(E,{content:n.modelValue?.response?.trace_id},null,8,[`content`])])):o(``,!0)]),_:1})])):o(``,!0),n.modelValue?.response?.success===void 0?(g(),s(`div`,Ft,[a(O,{closable:!1,class:`info`},{template:p(()=>[a(D,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(n.modelValue?.response?`sora.status.processing`:`sora.status.pending`)),1)]),default:p(()=>[e(`p`,It,[a(T,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`sora.name.taskId`))+`: `+i(n.modelValue?.id)+` `,1),a(E,{content:n.modelValue?.id},null,8,[`content`])]),n.modelValue?.response?.trace_id?(g(),s(`p`,Lt,[a(w,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`sora.name.traceId`))+`: `+i(n.modelValue?.response?.trace_id)+` `,1),a(E,{content:n.modelValue?.response?.trace_id},null,8,[`content`])])):o(``,!0)]),_:1})])):o(``,!0)])])}var zt=v({name:`RecentPanel`,components:{TaskPreview:G(mt,[[`render`,Rt],[`__scopeId`,`data-v-fe48227a`]]),NoTasks:de,BotPlaceholder:he,ScrollList:ue},props:{loading:{type:Boolean,default:!1}},emits:[`reach-top`],data(){return{job:0}},computed:{tasks(){return{...this.$store.state.sora?.tasks,items:this.$store.state.sora?.tasks?.items?.slice()}}},methods:{getScrollElement(){return this.$refs.scrollList?.getScrollElement?.()}}}),Bt={key:0},Vt={key:2,class:`w-full h-full flex items-center justify-center`};function Ht(e,t,n,r,i,u){let d=l(`bot-placeholder`),m=l(`task-preview`),_=l(`scroll-list`),v=l(`no-tasks`);return g(),s(c,null,[e.tasks?.items===void 0?(g(),s(`div`,Bt,[a(d)])):e.tasks?.items?.length&&e.tasks?.items?.length>0?(g(),f(_,{key:1,ref:`scrollList`,class:`tasks h-full w-full overflow-y-auto`,loading:e.loading,onReachTop:t[0]||=t=>e.$emit(`reach-top`)},{default:p(()=>[(g(!0),s(c,null,h(e.tasks?.items,(e,t)=>(g(),f(m,{key:t,"model-value":e},null,8,[`model-value`]))),128))]),_:1},8,[`loading`])):o(``,!0),e.tasks?.items?.length===0?(g(),s(`div`,Vt,[a(v)])):o(``,!0)],64)}var Ut=v({name:`SoraIndex`,components:{ConfigPanel:pt,Layout:xe,RecentPanel:G(zt,[[`render`,Ht]])},mixins:[Y],inject:[`initialized`],data(){return{task:void 0,job:0,loadingMore:!1,fetchingTasks:!1}},computed:{applicationsLoading(){return this.$store.state.sora?.status?.getApplications===w.Request},tasksLoading(){return this.$store.state.sora?.status?.getTasks===w.Request||this.fetchingTasks},credential(){return this.$store.state.sora.credential},config(){return this.$store.state.sora.config},tasks(){return this.$store.state.sora.tasks}},watch:{tasks:{handler(e,t){e?.items?.length>t?.items?.length&&console.debug(`new tasks detected`)},deep:!0},initialized:{async handler(e){e&&(console.debug(`layout initialized`),await this.onGetTasks(),await this.onScrollDown(),this.job=window.setInterval(()=>{this.onGetTasks()},5e3))},immediate:!0}},async mounted(){await this.onGetService()},async unmounted(){window.clearInterval(this.job)},methods:{async onReachTop(){await fe({tasks:this.tasks,getTasks:()=>this.tasks,loading:this.loadingMore,setLoading:e=>this.loadingMore=e,isBlocked:()=>this.tasksLoading||this.applicationsLoading,fetch:e=>this.onGetTasks({createdAtMax:e}),getScrollElement:()=>this.getTasksScrollElement()})},async onGetService(){console.debug(`start onGetService`),await this.$store.dispatch(`sora/getService`),console.debug(`end onGetService`)},async onGetApplication(){console.debug(`start onGetApplication`),await this.$store.dispatch(`sora/getApplications`),console.debug(`end onGetApplication`),await this.onGetTasks()},async onScrollDown(){await this.$nextTick();let e=this.getTasksScrollElement();e&&(e.scrollTop=e.scrollHeight)},async onGetTasks(e){if(this.applicationsLoading||this.fetchingTasks){console.debug(`loading`);return}console.debug(`start onGetTasks`,e);let{limit:t=5,createdAtMin:n,createdAtMax:r}=e||{};console.debug(`limit`,t,`createdAtMin`,n,`createdAtMax`,r),this.fetchingTasks=!0;try{await this.$store.dispatch(`sora/getTasks`,{limit:t,createdAtMin:n,createdAtMax:r})}finally{this.fetchingTasks=!1}},async onGenerate(){if(!J(this.uploadTracker,e=>this.$t(e),e=>T.warning(e)))return;let e={...this.config,async:!0};if(!ne())return;let t=this.credential?.token;if(!t){console.error(`no token specified`);return}T.info(this.$t(`sora.message.startingTask`)),Z(`sora`,V.generate(e,{token:t})).then(()=>{T.success(this.$t(`sora.message.startTaskSuccess`))}).catch(e=>{(e?.response?.data)?.error?.code===`used_up`?T.error(this.$t(`sora.message.usedUp`)):T.error(this.$t(`sora.message.startTaskFailed`))}).finally(async()=>{setTimeout(async()=>{await this.onGetTasks(),await this.onScrollDown()},1e3)})},getTasksScrollElement(){return this.$refs.recentPanel?.getScrollElement?.()}}});function Wt(e,t,n,r,i,o){let s=l(`config-panel`),c=l(`recent-panel`),u=l(`layout`);return g(),f(u,null,{config:p(()=>[a(s,{onGenerate:e.onGenerate},null,8,[`onGenerate`])]),result:p(()=>[a(c,{ref:`recentPanel`,loading:e.loadingMore,onReachTop:e.onReachTop},null,8,[`loading`,`onReachTop`])]),_:1})}var Gt=G(Ut,[[`render`,Wt]]);export{Gt as default};
1
+ import"./rolldown-runtime--c01j_DQ.js";import{A as e,C as t,Gt as n,I as r,Jt as i,L as a,M as o,N as s,T as c,at as l,ht as u,it as d,j as f,mt as p,qt as m,rt as h,tt as g,x as _,z as v}from"./vendor-chart-Dw-P17PN.js";import{r as y,t as b}from"./select-BpS-bYES.js";import{t as x}from"./upload-jWHoCQb0.js";import{t as S}from"./tooltip-iglteC5t.js";import{t as C}from"./alert-BprQRUmf.js";import{h as w,v as T}from"./models-CfZmiKuz.js";import{t as E}from"./drawer-Cnm2ONDq.js";import{t as D}from"./clock-CVw8rZJk.js";import{r as O,t as k}from"./PromptTextarea-CAvwbYfl.js";import{t as A}from"./info-CaaWfQ5G.js";import{t as j}from"./trash-2-DXpwwp30.js";import{t as M}from"./triangle-alert-BlTA75VV.js";import{t as N}from"./upload-BeiqlzEw.js";import{t as P}from"./wand-sparkles-M6We7RZu.js";import{$r as ee,Qr as te,Zr as F,ai as I,ei as L,ii as R,ni as z,ti as B}from"./constants-DdiBRvPy.js";import{$n as V,$t as H,Gt as U,Mi as W,O as G,Qt as K,Xt as q,Yt as J,Zt as Y,ii as X,kr as Z,tn as Q,un as ne,vi as re}from"./index-DSIuJ3Ml.js";import{t as ie}from"./CopyToClipboard-DaW2jH2E.js";import{t as ae}from"./ReportButton-QNLl-twb.js";import{t as oe}from"./ImagePreview-CZw5RcMp.js";import{n as se}from"./taskDrawerMixin-DyAUhFEq.js";import{t as ce}from"./Consumption-JEEofYog.js";import{a as le,n as ue,r as de,t as fe}from"./pagination-CGAsm_gH.js";import{t as pe}from"./VideoPlayer-CFlwMJfi.js";import{t as me}from"./ApiCodeButton-BJzi5tyz.js";import{t as he}from"./BotPlaceholder-DLGHIQS6.js";var ge=v({name:`LayoutSora`,components:{MagicIcon:P,ElDrawer:E,ElButton:W},mixins:[se]}),_e={class:`main flex flex-row flex-1`},ve={class:`config w-[320px] flex-none h-full min-h-0 overflow-hidden flex flex-col bg-[var(--app-sidebar-bg)] border-r border-[var(--app-border-subtle)]`},ye={class:`result h-full p-6 flex-1 flex flex-col min-w-0 overflow-x-hidden bg-[var(--app-content-bg)]`};function be(t,n,r,i,o,c){let f=l(`magic-icon`),m=l(`el-button`),h=l(`el-drawer`);return g(),s(`div`,_e,[e(`div`,ve,[d(t.$slots,`config`,{},void 0,!0)]),e(`div`,ye,[d(t.$slots,`result`,{},void 0,!0)]),u(a(m,{circle:``,class:`menu`,"aria-label":t.$t(`common.button.openMenu`),title:t.$t(`common.button.openMenu`),onClick:n[0]||=e=>t.drawer=!0},{default:p(()=>[a(f,{size:`1em`,"aria-hidden":`true`,focusable:`false`})]),_:1},8,[`aria-label`,`title`]),[[_,!t.tasksEmpty]]),a(h,{modelValue:t.drawer,"onUpdate:modelValue":n[1]||=e=>t.drawer=e,direction:`ltr`,"with-header":!1,size:`340px`,class:`generator-drawer`},{default:p(()=>[d(t.$slots,`config`,{},void 0,!0)]),_:3},8,[`modelValue`])])}var xe=G(ge,[[`render`,be],[`__scopeId`,`data-v-b8cedc77`]]),Se=v({name:`ModelSelector`,components:{ElSelect:y,ElOption:b},props:{modelValue:{type:String,default:void 0}},emits:[`update:modelValue`],data(){return{options:[{value:I,label:`sora-2`},{value:R,label:`sora-2-pro`}]}},computed:{value:{get(){return this.$store.state.sora?.config?.model},set(e){let t=this.$store.state.sora?.config||{},n=F[e]||[10],r=t.duration,i=r&&n.includes(r)?r:n.includes(10)?10:n[0],a={...t,model:e,duration:i,size:t.size||`small`};this.$store.commit(`sora/setConfig`,a)}}},mounted(){this.value||=L}}),Ce={class:`field`},we={class:`title font-bold`};function Te(t,n,r,o,u,d){let m=l(`el-option`),_=l(`el-select`);return g(),s(`div`,Ce,[e(`h2`,we,i(t.$t(`sora.name.model`)),1),a(_,{modelValue:t.value,"onUpdate:modelValue":n[0]||=e=>t.value=e,class:`value`,placeholder:t.$t(`sora.placeholder.select`)},{default:p(()=>[(g(!0),s(c,null,h(t.options,e=>(g(),f(m,{key:e.value,label:e.label,value:e.value},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`])])}var Ee=G(Se,[[`render`,Te],[`__scopeId`,`data-v-0cb7913d`]]),De=v({name:`ActionSelector`,components:{ElSelect:y,ElOption:b},data(){return{}},computed:{options(){return[{value:`text2video`,label:this.$t(`sora.button.action1`)},{value:`image2video`,label:this.$t(`sora.button.action2`)}]},value:{get(){return this.$store.state.sora?.config?.action},set(e){this.$store.commit(`sora/setConfig`,{...this.$store.state.sora?.config,action:e})}}},mounted(){this.value||=ee}}),Oe={class:`field`},ke={class:`title font-bold`},Ae={class:`float-left`};function je(t,n,r,o,u,d){let m=l(`el-option`),_=l(`el-select`);return g(),s(`div`,Oe,[e(`h2`,ke,i(t.$t(`sora.name.action`)),1),a(_,{modelValue:t.value,"onUpdate:modelValue":n[0]||=e=>t.value=e,class:`value`,placeholder:t.$t(`sora.placeholder.select`),clearable:``},{default:p(()=>[(g(!0),s(c,null,h(t.options,t=>(g(),f(m,{key:t.value,label:t.label,value:t.value},{default:p(()=>[e(`span`,Ae,i(t.label),1)]),_:2},1032,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`])])}var Me=G(De,[[`render`,je],[`__scopeId`,`data-v-7b82fa7f`]]),Ne=v({name:`DurationSelector`,components:{ElSelect:y,ElOption:b},computed:{model(){return this.$store.state.sora?.config?.model||`sora-2`},allowedDurations(){return F[this.model]||[10]},optionsForModel(){return this.allowedDurations.map(e=>({value:e,label:`${e}s`}))},value:{get(){return this.$store.state.sora?.config?.duration},set(e){let t=this.$store.state.sora?.config||{};this.$store.commit(`sora/setConfig`,{...t,duration:e})}}},watch:{allowedDurations(){let e=this.allowedDurations;if(!e.includes(this.value)){let t=e.includes(10)?10:e[0];this.value=t}}},mounted(){this.value||=10}}),Pe={class:`field`},Fe={class:`control`},Ie={class:`title font-bold`};function Le(t,n,r,o,u,d){let m=l(`el-option`),_=l(`el-select`);return g(),s(`div`,Pe,[e(`div`,Fe,[e(`h2`,Ie,i(t.$t(`sora.name.duration`)),1),a(_,{modelValue:t.value,"onUpdate:modelValue":n[0]||=e=>t.value=e,class:`value`,placeholder:t.$t(`sora.placeholder.select`)},{default:p(()=>[(g(!0),s(c,null,h(t.optionsForModel,e=>(g(),f(m,{key:e.value,label:e.label,value:e.value},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`])])])}var Re=G(Ne,[[`render`,Le],[`__scopeId`,`data-v-c2934598`]]),ze=v({name:`OrientationSelector`,data(){return{options:[{value:`portrait`,labelKey:`sora.option.portrait`,width:13,height:25},{value:`landscape`,labelKey:`sora.option.landscape`,width:25,height:13}]}},computed:{active(){let e=this.options.findIndex(e=>e.value===this.value);return e>=0?e:0},value:{get(){return this.$store.state.sora?.config?.orientation},set(e){console.debug(`set orientation`,e),this.$store.commit(`sora/setConfig`,{...this.$store.state?.sora?.config,orientation:e})}}},mounted(){this.value||=B}}),Be={class:`text-sm font-bold mb-2 block`},Ve={class:`items`},He=[`onClick`],Ue={class:`name`};function We(t,r,a,o,l,u){return g(),s(`div`,null,[e(`span`,Be,i(t.$t(`sora.name.orientation`)),1),e(`div`,Ve,[(g(!0),s(c,null,h(t.options,(r,a)=>(g(),s(`div`,{key:a,class:n({active:t.active===a,item:!0}),onClick:e=>t.value=r.value},[e(`div`,{class:n([`preview`,r.value])},[e(`div`,{class:`rect`,style:m({width:r.width+`px`,height:r.height+`px`})},null,4)],2),e(`p`,Ue,i(t.$t(r.labelKey)),1)],10,He))),128))])])}var Ge=G(ze,[[`render`,We],[`__scopeId`,`data-v-a20be6d9`]]),Ke=v({name:`StartEndImage`,components:{UploadIcon:N,ElUpload:x,ElButton:W,InfoIcon:le,ImagePreview:oe},mixins:[H,K,q,U],emits:[`change`],data(){return{fileList:[],uploadUrl:X()+`/api/v1/files/`}},computed:{headers(){return{Authorization:`Bearer ${this.$store.state.token.access}`}},urls(){return this.fileList.map(e=>e?.response?.file_url)},value:{get(){return this.$store.state?.sora?.config?.image_urls},set(){}}},mounted(){this.value||=void 0,this.onSetStartEndImageUrl()},methods:{onExceed(){T.warning(this.$t(`sora.message.uploadReferencesExceed`))},onError(){T.error(this.$t(`sora.message.uploadReferencesError`))},onSetStartEndImageUrl(){let e=this.urls;this.$store.commit(`sora/setConfig`,{...this.$store.state?.sora?.config,image_urls:e})},async onSuccess(){this.onSetStartEndImageUrl()}}}),qe={class:`relative`},Je={class:`flex justify-between`},Ye={class:`flex justify-start items-center`},Xe={class:`text-sm font-bold`};function Ze(t,n,c,u,d,m){let h=l(`info-icon`),_=l(`image-preview`),v=l(`upload-icon`),y=l(`el-button`),b=l(`el-upload`);return g(),s(`div`,qe,[e(`div`,Je,[e(`div`,Ye,[e(`span`,Xe,i(t.$t(`sora.name.startEndImage`)),1),a(h,{content:t.$t(`sora.description.uploadStartEndImage`)},null,8,[`content`])])]),a(b,{ref:`uploader`,"file-list":t.fileList,"onUpdate:fileList":n[0]||=e=>t.fileList=e,name:`file`,accept:`.png,.jpg,.jpeg,.gif,.bmp,.webp`,limit:2,class:`upload-wrapper`,multiple:!1,"before-upload":t.beforeUploadSizeGuard,action:t.uploadUrl,"list-type":`picture`,"on-exceed":t.onExceed,"on-error":t.onError,"on-success":t.onSuccess,headers:t.headers},{file:p(({file:e})=>[e.url&&e.percentage!==void 0?(g(),f(_,{key:0,url:e.url,name:e.name,percentage:e.percentage,onRemove:n=>t.fileList.splice(t.fileList.indexOf(e),1)},null,8,[`url`,`name`,`percentage`,`onRemove`])):o(``,!0)]),default:p(()=>[a(y,{round:``,type:`primary`,size:`small`,class:`btn btn-upload`},{default:p(()=>[a(v,{class:`icon mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(t.$t(`sora.button.uploadReferences`)),1)]),_:1})]),_:1},8,[`file-list`,`before-upload`,`action`,`on-exceed`,`on-error`,`on-success`,`headers`])])}var Qe=G(Ke,[[`render`,Ze],[`__scopeId`,`data-v-01b87539`]]),$e=e=>e&&e.charAt(0).toUpperCase()+e.slice(1),et=v({name:`SizeSelector`,components:{ElSelect:y,ElOption:b},data(){return{options:te.map(e=>({value:e,label:$e(e)}))}},computed:{value:{get(){return this.$store.state.sora?.config?.size},set(e){let t=this.$store.state.sora?.config||{};this.$store.commit(`sora/setConfig`,{...t,size:e})}}},mounted(){this.value||=z}}),tt={class:`field`},nt={class:`control`},rt={class:`title font-bold`};function it(t,n,r,o,u,d){let m=l(`el-option`),_=l(`el-select`);return g(),s(`div`,tt,[e(`div`,nt,[e(`h2`,rt,i(t.$t(`sora.name.size`)),1),a(_,{modelValue:t.value,"onUpdate:modelValue":n[0]||=e=>t.value=e,class:`value`,placeholder:t.$t(`sora.placeholder.select`)},{default:p(()=>[(g(!0),s(c,null,h(t.options,e=>(g(),f(m,{key:e.value,label:e.label,value:e.value},null,8,[`label`,`value`]))),128))]),_:1},8,[`modelValue`,`placeholder`])])])}var at=G(et,[[`render`,it],[`__scopeId`,`data-v-8c485f0f`]]),ot=v({name:`PromptInput`,components:{PromptTextarea:k},computed:{prompt:{get(){return this.$store.state.sora?.config?.prompt},set(e){this.$store.commit(`sora/setConfig`,{...this.$store.state.sora?.config,prompt:e})}}},mounted(){this.prompt||=``}});function st(e,t,n,r,i,a){let o=l(`prompt-textarea`);return g(),f(o,{modelValue:e.prompt,"onUpdate:modelValue":t[0]||=t=>e.prompt=t,title:e.$t(`sora.name.prompt`),info:e.$t(`sora.description.prompt`),placeholder:e.$t(`sora.placeholder.prompt`)},null,8,[`modelValue`,`title`,`info`,`placeholder`])}var ct=v({name:`ConfigPanel`,components:{MagicIcon:P,ElButton:W,Consumption:ce,PromptInput:G(ot,[[`render`,st]]),ModelSelector:Ee,StartEndImage:Qe,SizeSelector:at,ActionSelector:Me,OrientationSelector:Ge,DurationSelector:Re},emits:[`generate`],computed:{config(){return this.$store.state.sora?.config},consumption(){return Q(this.config,this.service?.cost)},service(){return this.$store.state.sora?.service}},methods:{onGenerate(){this.$emit(`generate`)}}}),lt={class:`flex flex-col h-full`},ut={class:`flex-1 overflow-y-auto p-5`},dt={class:`flex flex-col items-center justify-center px-5 pb-5`};function ft(t,n,o,c,d,f){let m=l(`model-selector`),h=l(`action-selector`),v=l(`duration-selector`),y=l(`size-selector`),b=l(`orientation-selector`),x=l(`prompt-input`),S=l(`start-end-image`),C=l(`consumption`),w=l(`magic-icon`),T=l(`el-button`);return g(),s(`div`,lt,[e(`div`,ut,[a(m,{class:`mb-4`}),a(h,{class:`mb-4`}),a(v,{class:`mb-4`}),a(y,{class:`mb-4`}),a(b,{class:`mb-4`}),a(x,{class:`mb-4`}),u(a(S,{class:`mb-4`},null,512),[[_,t.config?.action===`image2video`]])]),e(`div`,dt,[a(C,{value:t.consumption,service:t.service},null,8,[`value`,`service`]),a(T,{type:`primary`,class:`btn w-full`,round:``,onClick:t.onGenerate},{default:p(()=>[a(w,{class:`mr-2`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(t.$t(`sora.button.generate`)),1)]),_:1},8,[`onClick`])])])}var pt=G(ct,[[`render`,ft]]),mt=v({name:`TaskPreview`,components:{DeleteIcon:j,ChannelIcon:O,InfoIcon:A,MagicIcon:P,TimeIcon:D,WarningIcon:M,CopyToClipboard:ie,ElAlert:C,VideoPlayer:pe,ElTooltip:S,ElButton:W,ApiCodeButton:me,ReportButton:ae},props:{modelValue:{type:Object,required:!0}},data(){return{}},computed:{application(){return this.$store.state.sora?.application},config(){return this.$store.state.sora?.config}},methods:{async onDelete(){let e=this.modelValue?.id;if(e){try{await re.confirm(this.$t(`common.message.deleteTaskConfirm`),this.$t(`common.button.delete`),{type:`warning`,confirmButtonText:this.$t(`common.button.delete`),cancelButtonText:this.$t(`common.button.cancel`),confirmButtonClass:`el-button--danger`})}catch{return}try{await this.$store.dispatch(`sora/deleteTask`,{id:e}),T.success(this.$t(`common.message.deleteTaskSuccess`))}catch{T.error(this.$t(`common.message.deleteTaskFailed`))}}},onDownload(e,t){e?.stopPropagation(),console.log(`on download`),window.open(t,`_blank`)},onOpenVideo(e){window.open(e,`_blank`)}}}),ht={class:`preview`},gt={class:`left`},_t={class:`main`},vt={class:`bot`},yt={class:`datetime`},bt=[`aria-label`],xt={class:`info`},St={key:0,class:`prompt mt-2`},Ct={key:0},wt={key:1},Tt={key:0,class:n({content:!0,failed:!0})},Et={key:0,class:`mb-4`},Dt={key:1,class:n({operations:!0,"mt-2":!0})},Ot={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},kt={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},At={key:0,class:`text-[var(--el-text-color-regular)] text-xs mb-0`},jt={key:1,class:n({content:!0})},Mt={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},Nt={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},$={key:0,class:`text-[var(--el-text-color-regular)] text-xs mb-2`},Pt={key:1,class:`text-[var(--el-text-color-regular)] text-xs mb-0`},Ft={key:2,class:n({content:!0})},It={class:`text-[var(--el-text-color-regular)] text-xs mb-2`},Lt={key:0,class:`text-[var(--el-text-color-regular)] text-xs mb-0`};function Rt(n,c,u,d,m,h){let _=l(`capability-presentation`),v=l(`delete-icon`),y=l(`el-tooltip`),b=l(`video-player`),x=l(`el-button`),S=l(`api-code-button`),C=l(`report-button`),w=l(`channel-icon`),T=l(`magic-icon`),E=l(`copy-to-clipboard`),D=l(`time-icon`),O=l(`el-alert`),k=l(`warning-icon`),A=l(`info-icon`);return g(),s(`div`,ht,[e(`div`,gt,[a(_,{capability:`sora`,part:`avatar`,class:`avatar`})]),e(`div`,_t,[e(`div`,vt,[a(_,{capability:`sora`,part:`name`}),e(`span`,yt,i(n.$dayjs.format(``+new Date(parseFloat((n.modelValue?.created_at||``).toString())*1e3))),1),a(y,{effect:`dark`,content:n.$t(`common.button.delete`),placement:`top`},{default:p(()=>[n.modelValue?.id?(g(),s(`button`,{key:0,type:`button`,class:`btn-delete`,"aria-label":n.$t(`common.button.delete`),onClick:c[0]||=t((...e)=>n.onDelete&&n.onDelete(...e),[`stop`])},[a(v,{size:`1em`,"aria-hidden":`true`,focusable:`false`})],8,bt)):o(``,!0)]),_:1},8,[`content`])]),e(`div`,xt,[n.modelValue?.request?.prompt?(g(),s(`p`,St,[r(i(n.modelValue?.request?.prompt)+` `,1),n.modelValue?.response?o(``,!0):(g(),s(`span`,Ct,` - (`+i(n.$t(`sora.status.pending`))+`) `,1)),n.modelValue?.response&&n.modelValue?.response?.success===void 0?(g(),s(`span`,wt,` - (`+i(n.$t(`sora.status.processing`))+`) `,1)):o(``,!0)])):o(``,!0)]),n.modelValue?.response?.success===!0&&n.modelValue?.response?.data?(g(),s(`div`,Tt,[n.modelValue?.response?.data[0]?.video_url?(g(),s(`div`,Et,[a(b,{src:n.modelValue?.response?.data[0]?.video_url},null,8,[`src`])])):o(``,!0),n.modelValue?.response.success?(g(),s(`div`,Dt,[a(y,{class:`box-item`,effect:`dark`,content:n.$t(`sora.message.downloadVideo`),placement:`top-start`},{default:p(()=>[n.modelValue?.response?.data[0]?.video_url?(g(),f(x,{key:0,type:`info`,size:`small`,class:`btn-action`,onClick:c[1]||=e=>n.onDownload(e,n.modelValue?.response?.data[0]?.video_url)},{default:p(()=>[r(i(n.$t(`sora.button.download`)),1)]),_:1})):o(``,!0)]),_:1},8,[`content`]),a(S,{path:`/sora/videos`,body:n.modelValue?.request},null,8,[`body`]),a(C,{service:`sora`,"target-id":n.modelValue?.id,snapshot:{prompt:n.modelValue?.request?.prompt}},null,8,[`target-id`,`snapshot`])])):o(``,!0),a(O,{closable:!1,class:`mt-2 success`},{default:p(()=>[e(`p`,Ot,[a(w,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`sora.name.model`))+`: `+i(n.modelValue?.request?.model),1)]),e(`p`,kt,[a(T,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`sora.name.taskId`))+`: `+i(n.modelValue?.id)+` `,1),a(E,{content:n.modelValue?.id},null,8,[`content`])]),n.modelValue?.elapsed?(g(),s(`p`,At,[a(D,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`sora.name.elapsed`))+`: `+i(n.modelValue?.elapsed?.toFixed(2))+`s `,1)])):o(``,!0)]),_:1})])):o(``,!0),n.modelValue?.response?.success===!1?(g(),s(`div`,jt,[a(O,{closable:!1,class:`failure`},{template:p(()=>[a(k,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`sora.name.failure`)),1)]),default:p(()=>[e(`p`,Mt,[a(T,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`sora.name.taskId`))+`: `+i(n.modelValue?.id)+` `,1),a(E,{content:n.modelValue?.id},null,8,[`content`])]),e(`p`,Nt,[a(A,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`sora.name.failureReason`))+`: `+i(n.modelValue?.response?.error?.message)+` `,1),a(E,{content:n.modelValue?.response?.error?.message},null,8,[`content`])]),n.modelValue?.elapsed?(g(),s(`p`,$,[a(D,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`sora.name.elapsed`))+`: `+i(n.modelValue?.elapsed?.toFixed(2))+`s `,1)])):o(``,!0),n.modelValue?.response?.trace_id?(g(),s(`p`,Pt,[a(w,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`sora.name.traceId`))+`: `+i(n.modelValue?.response?.trace_id)+` `,1),a(E,{content:n.modelValue?.response?.trace_id},null,8,[`content`])])):o(``,!0)]),_:1})])):o(``,!0),n.modelValue?.response?.success===void 0?(g(),s(`div`,Ft,[a(O,{closable:!1,class:`info`},{template:p(()=>[a(D,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(n.modelValue?.response?`sora.status.processing`:`sora.status.pending`)),1)]),default:p(()=>[e(`p`,It,[a(T,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`sora.name.taskId`))+`: `+i(n.modelValue?.id)+` `,1),a(E,{content:n.modelValue?.id},null,8,[`content`])]),n.modelValue?.response?.trace_id?(g(),s(`p`,Lt,[a(w,{class:`mr-1`,size:`1em`,"aria-hidden":`true`,focusable:`false`}),r(` `+i(n.$t(`sora.name.traceId`))+`: `+i(n.modelValue?.response?.trace_id)+` `,1),a(E,{content:n.modelValue?.response?.trace_id},null,8,[`content`])])):o(``,!0)]),_:1})])):o(``,!0)])])}var zt=v({name:`RecentPanel`,components:{TaskPreview:G(mt,[[`render`,Rt],[`__scopeId`,`data-v-fe48227a`]]),NoTasks:de,BotPlaceholder:he,ScrollList:ue},props:{loading:{type:Boolean,default:!1}},emits:[`reach-top`],data(){return{job:0}},computed:{tasks(){return{...this.$store.state.sora?.tasks,items:this.$store.state.sora?.tasks?.items?.slice()}}},methods:{getScrollElement(){return this.$refs.scrollList?.getScrollElement?.()}}}),Bt={key:0},Vt={key:2,class:`w-full h-full flex items-center justify-center`};function Ht(e,t,n,r,i,u){let d=l(`bot-placeholder`),m=l(`task-preview`),_=l(`scroll-list`),v=l(`no-tasks`);return g(),s(c,null,[e.tasks?.items===void 0?(g(),s(`div`,Bt,[a(d)])):e.tasks?.items?.length&&e.tasks?.items?.length>0?(g(),f(_,{key:1,ref:`scrollList`,class:`tasks h-full w-full overflow-y-auto`,loading:e.loading,onReachTop:t[0]||=t=>e.$emit(`reach-top`)},{default:p(()=>[(g(!0),s(c,null,h(e.tasks?.items,(e,t)=>(g(),f(m,{key:t,"model-value":e},null,8,[`model-value`]))),128))]),_:1},8,[`loading`])):o(``,!0),e.tasks?.items?.length===0?(g(),s(`div`,Vt,[a(v)])):o(``,!0)],64)}var Ut=v({name:`SoraIndex`,components:{ConfigPanel:pt,Layout:xe,RecentPanel:G(zt,[[`render`,Ht]])},mixins:[Y],inject:[`initialized`],data(){return{task:void 0,job:0,loadingMore:!1,fetchingTasks:!1}},computed:{applicationsLoading(){return this.$store.state.sora?.status?.getApplications===w.Request},tasksLoading(){return this.$store.state.sora?.status?.getTasks===w.Request||this.fetchingTasks},credential(){return this.$store.state.sora.credential},config(){return this.$store.state.sora.config},tasks(){return this.$store.state.sora.tasks}},watch:{tasks:{handler(e,t){e?.items?.length>t?.items?.length&&console.debug(`new tasks detected`)},deep:!0},initialized:{async handler(e){e&&(console.debug(`layout initialized`),await this.onGetTasks(),await this.onScrollDown(),this.job=window.setInterval(()=>{this.onGetTasks()},5e3))},immediate:!0}},async mounted(){await this.onGetService()},async unmounted(){window.clearInterval(this.job)},methods:{async onReachTop(){await fe({tasks:this.tasks,getTasks:()=>this.tasks,loading:this.loadingMore,setLoading:e=>this.loadingMore=e,isBlocked:()=>this.tasksLoading||this.applicationsLoading,fetch:e=>this.onGetTasks({createdAtMax:e}),getScrollElement:()=>this.getTasksScrollElement()})},async onGetService(){console.debug(`start onGetService`),await this.$store.dispatch(`sora/getService`),console.debug(`end onGetService`)},async onGetApplication(){console.debug(`start onGetApplication`),await this.$store.dispatch(`sora/getApplications`),console.debug(`end onGetApplication`),await this.onGetTasks()},async onScrollDown(){await this.$nextTick();let e=this.getTasksScrollElement();e&&(e.scrollTop=e.scrollHeight)},async onGetTasks(e){if(this.applicationsLoading||this.fetchingTasks){console.debug(`loading`);return}console.debug(`start onGetTasks`,e);let{limit:t=5,createdAtMin:n,createdAtMax:r}=e||{};console.debug(`limit`,t,`createdAtMin`,n,`createdAtMax`,r),this.fetchingTasks=!0;try{await this.$store.dispatch(`sora/getTasks`,{limit:t,createdAtMin:n,createdAtMax:r})}finally{this.fetchingTasks=!1}},async onGenerate(){if(!J(this.uploadTracker,e=>this.$t(e),e=>T.warning(e)))return;let e={...this.config,async:!0};if(!ne())return;let t=this.credential?.token;if(!t){console.error(`no token specified`);return}T.info(this.$t(`sora.message.startingTask`)),Z(`sora`,V.generate(e,{token:t})).then(()=>{T.success(this.$t(`sora.message.startTaskSuccess`))}).catch(e=>{(e?.response?.data)?.error?.code===`used_up`?T.error(this.$t(`sora.message.usedUp`)):T.error(this.$t(`sora.message.startTaskFailed`))}).finally(async()=>{setTimeout(async()=>{await this.onGetTasks(),await this.onScrollDown()},1e3)})},getTasksScrollElement(){return this.$refs.recentPanel?.getScrollElement?.()}}});function Wt(e,t,n,r,i,o){let s=l(`config-panel`),c=l(`recent-panel`),u=l(`layout`);return g(),f(u,null,{config:p(()=>[a(s,{onGenerate:e.onGenerate},null,8,[`onGenerate`])]),result:p(()=>[a(c,{ref:`recentPanel`,loading:e.loadingMore,onReachTop:e.onReachTop},null,8,[`loading`,`onReachTop`])]),_:1})}var Gt=G(Ut,[[`render`,Wt]]);export{Gt as default};