aitu-app 0.6.78 → 0.6.80

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 (203) hide show
  1. package/README.md +3 -3
  2. package/assets/CanvasAudioPlayer-CSFENxi6.js +2 -0
  3. package/assets/ChatDrawer-CWZQP5R5.css +1 -0
  4. package/assets/ChatDrawer-sVEVW11M.js +11 -0
  5. package/assets/ChatMessagesArea-Cnb94V8-.js +7 -0
  6. package/assets/ChatMessagesArea-PlF5AwzD.css +1 -0
  7. package/assets/DeferredAIInputBar-D99l6sBS.js +8 -0
  8. package/assets/DrawnixDeferredFeatures-78cIu-ev.js +2 -0
  9. package/assets/{KnowledgeBaseContent-DcX5Jofx.js → KnowledgeBaseContent-DZ-1fPZa.js} +10 -10
  10. package/assets/{MVCreator-DllHozYg.js → MVCreator-BV8KDR6E.js} +8 -8
  11. package/assets/ModelBenchmarkWorkbench-DL6r0Z_5.js +2 -0
  12. package/assets/MusicAnalyzer-D9Bpmhym.css +1 -0
  13. package/assets/{MusicAnalyzer-DDeT6g3c.js → MusicAnalyzer-DQtjf36o.js} +2 -2
  14. package/assets/{MusicAnalyzer-CHcQ5t4P.js → MusicAnalyzer-u_5sy56T.js} +1 -1
  15. package/assets/PromptHistoryTool-B-ktaOpK.js +2 -0
  16. package/assets/PromptHistoryTool-BH7hq916.css +1 -0
  17. package/assets/ResizableDivider-BpUFdkte.js +1 -0
  18. package/assets/TaskQueuePanel-BLD1r7_I.js +1 -0
  19. package/assets/{VideoAnalyzer-BSLz1FaI.js → VideoAnalyzer-Bjv9pyDs.js} +2 -2
  20. package/assets/ai-generation-preferences-service-BSpgVCHz.js +1 -0
  21. package/assets/arc-CnA_FoJK.js +1 -0
  22. package/assets/{arc-BU2KKCa_.js → arc-DDvk_-VM.js} +1 -1
  23. package/assets/{batch-image-generation-Bg68r_Ql.js → batch-image-generation-N-lwbjRE.js} +3 -3
  24. package/assets/{blockDiagram-38ab4fdb-BCGEnMME.js → blockDiagram-38ab4fdb-B2G4wjZe.js} +6 -6
  25. package/assets/{blockDiagram-38ab4fdb-CsZR5uC5.js → blockDiagram-38ab4fdb-DBkZWrKk.js} +1 -1
  26. package/assets/{browser-DpICcNby.js → browser-ZXTF4AKv.js} +1 -1
  27. package/assets/{c4Diagram-3d4e48cf-9fuiuFdV.js → c4Diagram-3d4e48cf-BFg-wccg.js} +1 -1
  28. package/assets/{c4Diagram-3d4e48cf-WM4wd_GR.js → c4Diagram-3d4e48cf-CmyNnfip.js} +1 -1
  29. package/assets/{canvas-insertion-CdUQF7IV.js → canvas-insertion-CKIoVZ9a.js} +1 -1
  30. package/assets/channel-BQh3J7kz.js +1 -0
  31. package/assets/channel-CPsF_uSp.js +1 -0
  32. package/assets/{classDiagram-70f12bd4-DcYDedz1.js → classDiagram-70f12bd4-BoP-e23u.js} +2 -2
  33. package/assets/{classDiagram-70f12bd4-CBVHTwQu.js → classDiagram-70f12bd4-UTHJc2XA.js} +1 -1
  34. package/assets/classDiagram-v2-f2320105-BeBc2H-D.js +2 -0
  35. package/assets/{classDiagram-v2-f2320105-jpCwaHEd.js → classDiagram-v2-f2320105-Bjwz5ljW.js} +1 -1
  36. package/assets/{clipper-jvd5rF5a.js → clipper-NoHaeWV4.js} +1 -1
  37. package/assets/clone-CA2KqVCK.js +1 -0
  38. package/assets/createText-2e5e7dd3-Bsu7vT-L.js +8 -0
  39. package/assets/{createText-2e5e7dd3-x5lOIwut.js → createText-2e5e7dd3-DrWUfa-s.js} +1 -1
  40. package/assets/{edges-e0da2a9e-CbrF4nbD.js → edges-e0da2a9e-B9sYOHRt.js} +1 -1
  41. package/assets/{edges-e0da2a9e-Ch6PBwWs.js → edges-e0da2a9e-DX4IQMED.js} +1 -1
  42. package/assets/{erDiagram-9861fffd-DSlNVuAZ.js → erDiagram-9861fffd-B-LfsIMf.js} +1 -1
  43. package/assets/{erDiagram-9861fffd-Bq07elcI.js → erDiagram-9861fffd-DPdud_LA.js} +1 -1
  44. package/assets/{flowDb-956e92f1-Ti5YC4Vv.js → flowDb-956e92f1-C3xKlizM.js} +1 -1
  45. package/assets/{flowDb-956e92f1-BqPCJlZp.js → flowDb-956e92f1-Ck5oiEta.js} +1 -1
  46. package/assets/{flowDiagram-66a62f08-CPDuG3rY.js → flowDiagram-66a62f08-Bkt2NoHM.js} +4 -4
  47. package/assets/{flowDiagram-66a62f08-D3GSABFi.js → flowDiagram-66a62f08-CJnxo6dI.js} +1 -1
  48. package/assets/flowDiagram-v2-96b9c2cf-MnwxRDMO.js +1 -0
  49. package/assets/flowDiagram-v2-96b9c2cf-U7nNPvdl.js +1 -0
  50. package/assets/{flowchart-elk-definition-4a651766-BH09NeLA.js → flowchart-elk-definition-4a651766-2XkrsdKI.js} +2 -2
  51. package/assets/{flowchart-elk-definition-4a651766-BLaLPCDV.js → flowchart-elk-definition-4a651766-ec8y1a8S.js} +1 -1
  52. package/assets/{ganttDiagram-c361ad54-DL9ZeaEc.js → ganttDiagram-c361ad54-1TA0mZY_.js} +3 -3
  53. package/assets/{ganttDiagram-c361ad54-Sp9M1KHP.js → ganttDiagram-c361ad54-D-OrVtXV.js} +3 -3
  54. package/assets/{gitGraphDiagram-72cf32ee-BWwmRKo-.js → gitGraphDiagram-72cf32ee-Blt3RsBD.js} +1 -1
  55. package/assets/{gitGraphDiagram-72cf32ee-BSf1fsDV.js → gitGraphDiagram-72cf32ee-CKf6xgO1.js} +1 -1
  56. package/assets/{graph-g-2U7grQ.js → graph-CUYgHJmb.js} +1 -1
  57. package/assets/{graph--nPw8zXQ.js → graph-WeSRtsZO.js} +1 -1
  58. package/assets/{index-ZrVeQUWo.js → index--MqiaN5t.js} +1 -1
  59. package/assets/{index-C5eu4uSl.js → index-0b_TeH8L.js} +11 -11
  60. package/assets/{index-3862675e-BXwbZ2pz.js → index-3862675e-C2ipEQC8.js} +1 -1
  61. package/assets/{index-3862675e-D6Zy95zZ.js → index-3862675e-CeX6VlsU.js} +1 -1
  62. package/assets/{index-CLJUfzvO.js → index-B-J0JJak.js} +1 -1
  63. package/assets/{index-TkfyNewx.js → index-B7Hj7g41.js} +1 -1
  64. package/assets/{index-eZfwJ9bV.js → index-BS_v5cOh.js} +1 -1
  65. package/assets/index-Btk31p7r.js +1 -0
  66. package/assets/{index-DH12_HTj.js → index-C-Samsu3.js} +2 -2
  67. package/assets/index-C-llNX01.js +1 -0
  68. package/assets/index-C8c9icsH.js +2 -0
  69. package/assets/{index-D7b5fX1d.js → index-CAn2jfNg.js} +1 -1
  70. package/assets/{index-Dz8sghkK.js → index-CK2zt94U.js} +1 -1
  71. package/assets/{index-CfgvFFx3.js → index-CP51k4n6.js} +17 -17
  72. package/assets/{index-DI0OV6F8.js → index-CXBhIy30.js} +1 -1
  73. package/assets/index-C_Mj1wbj.js +2 -0
  74. package/assets/{index-BwSnJN93.js → index-CbfE0MBd.js} +1 -1
  75. package/assets/{index-C3qD42ws.js → index-CjeDxq0c.js} +1 -1
  76. package/assets/{index-DqMndQiP.js → index-Ct7OFnWK.js} +1 -1
  77. package/assets/{index-BaCHOxhI.js → index-CxxUIkx1.js} +1 -1
  78. package/assets/{index-B2dttXd7.js → index-D2Kc-3MO.js} +1 -1
  79. package/assets/{index-Bq8mPedC.js → index-DK0XEByD.js} +1 -1
  80. package/assets/{index-DllL1sx1.js → index-DQcV2DYj.js} +1 -1
  81. package/assets/{index-BP77pG9S.js → index-DSKRBuhn.js} +73 -73
  82. package/assets/{index-BXzGHPXz.js → index-DXqL8NRE.js} +2 -2
  83. package/assets/{index-B7V7-Vxz.js → index-DcLrRIlS.js} +1 -1
  84. package/assets/{index-D4pIkh3S.js → index-DdA-dF0D.js} +1 -1
  85. package/assets/{index-QkP3EC02.js → index-DdxTnVj5.js} +1 -1
  86. package/assets/{index-CmyOpFTN.js → index-DmrnShhc.js} +1 -1
  87. package/assets/{index-Bti3m-iW.js → index-QO0uGVDP.js} +1 -1
  88. package/assets/{index-BPR_DyGD.js → index-aIKXDB1M.js} +1 -1
  89. package/assets/{index-DIiIUyb-.js → index-n6JhNACm.js} +1 -1
  90. package/assets/{index-BWrcsh8u.js → index-qbS_W7PW.js} +1 -1
  91. package/assets/index-v7iKPBEu.css +1 -0
  92. package/assets/{infoDiagram-f8f76790-DpFqCCNv.js → infoDiagram-f8f76790-DEWQ3NXc.js} +1 -1
  93. package/assets/{infoDiagram-f8f76790-G2JpJJP7.js → infoDiagram-f8f76790-u_qjHFCm.js} +3 -3
  94. package/assets/{journeyDiagram-49397b02-DLLTobRM.js → journeyDiagram-49397b02-C8A30CBr.js} +1 -1
  95. package/assets/{journeyDiagram-49397b02-BdESGMrv.js → journeyDiagram-49397b02-hQJfqZih.js} +1 -1
  96. package/assets/{layout-WSR0vNPO.js → layout-CFKTKeqQ.js} +1 -1
  97. package/assets/{layout-CVkuImk4.js → layout-DvRyabpG.js} +1 -1
  98. package/assets/{line-D3bnG227.js → line-C72F34Po.js} +1 -1
  99. package/assets/{line-DQuMJveY.js → line-W5R41tQ1.js} +1 -1
  100. package/assets/{linear-CciP-97N.js → linear-7FXykgHM.js} +1 -1
  101. package/assets/{linear-Z6vFvuwc.js → linear-CVyOPUvz.js} +1 -1
  102. package/assets/main-BO0HWBB1.js +42 -0
  103. package/assets/{main-8DNjLY6L.css → main-DAuE07rf.css} +1 -1
  104. package/assets/{mermaid.core-CwZQb0ud.js → mermaid.core-2VcXhn43.js} +4 -4
  105. package/assets/{mindmap-definition-fc14e90a-BnJ8OOTI.js → mindmap-definition-fc14e90a-CcVXKGg4.js} +1 -1
  106. package/assets/{mindmap-definition-fc14e90a-CxQMydCW.js → mindmap-definition-fc14e90a-DRDYXe84.js} +2 -2
  107. package/assets/model-benchmark-launcher-C2qBiDlM.js +1 -0
  108. package/assets/{photo-wall-splitter-BZ88W5Zy.js → photo-wall-splitter-CFntSOdS.js} +1 -1
  109. package/assets/{pieDiagram-8a3498a8-BSDdkTeu.js → pieDiagram-8a3498a8-Be9dl9pU.js} +1 -1
  110. package/assets/{pieDiagram-8a3498a8-D6VtAoja.js → pieDiagram-8a3498a8-DXZOJYBv.js} +5 -5
  111. package/assets/ppt-generation-B5fKT_by.js +48 -0
  112. package/assets/{quadrantDiagram-120e2f19-C8k2xuBd.js → quadrantDiagram-120e2f19-DoU7aQSp.js} +3 -3
  113. package/assets/{quadrantDiagram-120e2f19-BbFV0VXY.js → quadrantDiagram-120e2f19-l5K9mx26.js} +1 -1
  114. package/assets/{requirementDiagram-deff3bca-C3xMdzJV.js → requirementDiagram-deff3bca-DN_87Wxe.js} +1 -1
  115. package/assets/{requirementDiagram-deff3bca-CpjqKjYZ.js → requirementDiagram-deff3bca-DOooq7kx.js} +1 -1
  116. package/assets/retry-image-BmIVuAVu.js +6 -0
  117. package/assets/{sankeyDiagram-04a897e0-Bjvig9bW.js → sankeyDiagram-04a897e0-BB33nO6_.js} +1 -1
  118. package/assets/{sankeyDiagram-04a897e0-BBJJgsFv.js → sankeyDiagram-04a897e0-CCa0hwml.js} +2 -2
  119. package/assets/{sequenceDiagram-704730f1-PFC_9IFI.js → sequenceDiagram-704730f1-CNhXZiix.js} +1 -1
  120. package/assets/{sequenceDiagram-704730f1-DX1MmBN_.js → sequenceDiagram-704730f1-ZqQ1QrY-.js} +1 -1
  121. package/assets/settings-dialog-BFuWTeQR.js +1 -0
  122. package/assets/{skill-dsl-parser-syNWYxFu.js → skill-dsl-parser-b-aB3P5u.js} +1 -1
  123. package/assets/{stateDiagram-587899a1-Dc3mI_B_.js → stateDiagram-587899a1-BBlOIJr7.js} +1 -1
  124. package/assets/{stateDiagram-587899a1-SFMUVAam.js → stateDiagram-587899a1-BhomZ0AN.js} +1 -1
  125. package/assets/{stateDiagram-v2-d93cdb3a-P4Yt2p_j.js → stateDiagram-v2-d93cdb3a-BpJsgMa0.js} +1 -1
  126. package/assets/stateDiagram-v2-d93cdb3a-CuOn9du2.js +1 -0
  127. package/assets/{styles-6aaf32cf-C3jnr3hV.js → styles-6aaf32cf-C2WEewoA.js} +1 -1
  128. package/assets/{styles-6aaf32cf-b6AdP7fu.js → styles-6aaf32cf-CTtf8moq.js} +1 -1
  129. package/assets/{styles-9a916d00-BUiD9iBe.js → styles-9a916d00-44Xi2-39.js} +1 -1
  130. package/assets/{styles-9a916d00-ii0XTdIm.js → styles-9a916d00-DUU3VgNe.js} +4 -4
  131. package/assets/{styles-c10674c1-DbTSpy3W.js → styles-c10674c1--AhWSGg7.js} +1 -1
  132. package/assets/styles-c10674c1-DS-wE3tK.js +116 -0
  133. package/assets/{svgDrawCommon-08f97a94-D4gIV05W.js → svgDrawCommon-08f97a94-CXcvtSSy.js} +1 -1
  134. package/assets/{svgDrawCommon-08f97a94-BK6lD4D6.js → svgDrawCommon-08f97a94-Dyqh4V2s.js} +1 -1
  135. package/assets/{timeline-definition-85554ec2-Bl2y548G.js → timeline-definition-85554ec2-k788753O.js} +1 -1
  136. package/assets/{timeline-definition-85554ec2-CWKg_JxG.js → timeline-definition-85554ec2-sw6-UuBe.js} +1 -1
  137. package/assets/tool-windows-BEnZdJqF.js +2948 -0
  138. package/assets/{tool-windows-CUNbW1Tz.css → tool-windows-D61Le6TE.css} +1 -1
  139. package/assets/ttd-dialog-BJzXAZ0l.js +99 -0
  140. package/assets/useCharacters-DRBoWvvj.css +1 -0
  141. package/assets/useCharacters-gsV4K8Hn.js +2 -0
  142. package/assets/{useWorkflowSubmission-BizuDmuw.js → useWorkflowSubmission-XRR21P6Y.js} +10 -10
  143. package/assets/{video-analyze-6v3Y-rUE.js → video-analyze-CpbnpSiI.js} +1 -1
  144. package/assets/{video-generation-DnmTlWnm.js → video-generation-BXhS7x-a.js} +2 -2
  145. package/assets/video-recovery-service-6G2lkWcu.js +1 -0
  146. package/assets/workflow-generation-utils-CYxtSHl0.js +3 -0
  147. package/assets/workflow-submission-service-DygSzydV.js +4 -0
  148. package/assets/{xychartDiagram-e933f94c-CJX9_9WF.js → xychartDiagram-e933f94c-CvTTDwPb.js} +3 -3
  149. package/assets/{xychartDiagram-e933f94c-Cep8CQEH.js → xychartDiagram-e933f94c-Ga9zi9ha.js} +1 -1
  150. package/changelog.json +45 -0
  151. package/idle-prefetch-manifest.json +310 -306
  152. package/manifest.json +3 -3
  153. package/package.json +1 -1
  154. package/precache-manifest.json +10 -10
  155. package/sitemap.xml +37 -0
  156. package/sw-debug/app.js +269 -156
  157. package/sw-debug/backup-restore.js +235 -103
  158. package/sw-debug/crypto-helper.js +116 -120
  159. package/sw-debug/duplex-client.js +33 -19
  160. package/sw-debug/gist-management.js +938 -655
  161. package/sw-debug/sw-communication.js +87 -50
  162. package/sw.js +5 -5
  163. package/version.json +7 -17
  164. package/assets/CanvasAudioPlayer-DutgwdiU.js +0 -2
  165. package/assets/ChatDrawer-0jNvKIoI.css +0 -1
  166. package/assets/ChatDrawer-E6Fog16I.js +0 -11
  167. package/assets/ChatMessagesArea-Bgwiz_XP.js +0 -250
  168. package/assets/ChatMessagesArea-DyR_wHFQ.css +0 -1
  169. package/assets/DeferredAIInputBar-CPkD8Cv9.js +0 -8
  170. package/assets/DrawnixDeferredFeatures-Cul76-88.js +0 -2
  171. package/assets/ModelBenchmarkWorkbench-Dv9SNYTi.js +0 -2
  172. package/assets/MusicAnalyzer-DhtRGpAp.css +0 -1
  173. package/assets/ResizableDivider-CaG9JQbJ.js +0 -1
  174. package/assets/TaskQueuePanel-BNhNzGp5.js +0 -1
  175. package/assets/ai-generation-preferences-service-BF7QkuJp.js +0 -1
  176. package/assets/arc-DmGoDCEL.js +0 -1
  177. package/assets/channel-CZjE-WNp.js +0 -1
  178. package/assets/channel-SXZD6bG3.js +0 -1
  179. package/assets/classDiagram-v2-f2320105-CsxWGkSy.js +0 -2
  180. package/assets/clone-C4mvvMDb.js +0 -1
  181. package/assets/createText-2e5e7dd3-CkXS3l7I.js +0 -5
  182. package/assets/flowDiagram-v2-96b9c2cf-BCcJ-cre.js +0 -1
  183. package/assets/flowDiagram-v2-96b9c2cf-DCVaFEgV.js +0 -1
  184. package/assets/index-3eqA7Bag.js +0 -1
  185. package/assets/index-7Q-aiwln.js +0 -4
  186. package/assets/index-B1XP5g7P.css +0 -1
  187. package/assets/index-BHPTfCZM.js +0 -1
  188. package/assets/index-BqHZCcen.js +0 -2
  189. package/assets/index-DcZrElEK.js +0 -2
  190. package/assets/index-gQ7LgvSv.js +0 -12
  191. package/assets/main-BFEkxCOK.js +0 -56
  192. package/assets/model-benchmark-launcher-Ct3lYXVq.js +0 -1
  193. package/assets/ppt-generation-FzjP_rp0.js +0 -48
  194. package/assets/settings-dialog-CQM4v791.js +0 -1
  195. package/assets/stateDiagram-v2-d93cdb3a-DmnBjHpC.js +0 -1
  196. package/assets/styles-c10674c1-Bt89Yy8Q.js +0 -116
  197. package/assets/tool-windows-DOIu9TAD.js +0 -2975
  198. package/assets/ttd-dialog-DI4kQSg8.js +0 -99
  199. package/assets/useCharacters-Chv4Ky7x.js +0 -7
  200. package/assets/useCharacters-OrDbG69o.css +0 -1
  201. package/assets/video-recovery-service-BeRoh0s2.js +0 -1
  202. package/assets/workflow-generation-utils-me381Cax.js +0 -3
  203. package/assets/workflow-submission-service-YOpo7g37.js +0 -4
@@ -1,6 +1,6 @@
1
- import{ai as e,aH as Ke,a4 as Le,aj as s,es as ue,et as ge,be as se,bl as fe,eu as $e,bd as qe,cb as pe,W as _,ev as Ye,T as F,b0 as We,ew as He,ex as Oe,b1 as Re,ey as Qe,bH as Ne,bx as ye,de as xe,ez as Se,eA as Ce,eB as Je,eC as Xe,cW as Ze,eD as ea,eE as he,eF as aa,eG as sa,eH as ia,d_ as na,bY as ra,bz as ie,aO as ua,a$ as la}from"./tool-windows-DOIu9TAD.js";import{quickInsert as Fe}from"./canvas-insertion-CdUQF7IV.js";import{s as Ve,i as ta,g as ca,a as da}from"./MusicAnalyzer-CHcQ5t4P.js";/* empty css */const Ie=[{id:"create",label:"创作"},{id:"lyrics",label:"歌词"},{id:"generate",label:"生成"}],oa=({current:a,onNavigate:n,hasRecord:u})=>{const v=Ie.findIndex(c=>c.id===a);return e.jsxDEV("div",{className:"va-step-bar",children:Ie.map((c,h)=>{const g=c.id===a,k=h<v,N=!u&&h>0;return e.jsxDEV(Ke.Fragment,{children:[h>0&&e.jsxDEV("span",{className:"va-step-arrow",children:"→"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/components/StepBar.tsx",lineNumber:32,columnNumber:27},void 0),e.jsxDEV("button",{className:`va-step ${g?"active":""} ${k?"past":""}`,onClick:()=>!N&&n(c.id),disabled:N,children:[e.jsxDEV("span",{className:"va-step-num",children:h+1},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/components/StepBar.tsx",lineNumber:38,columnNumber:15},void 0),c.label]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/components/StepBar.tsx",lineNumber:33,columnNumber:13},void 0)]},c.id,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/components/StepBar.tsx",lineNumber:31,columnNumber:11},void 0)})},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/components/StepBar.tsx",lineNumber:24,columnNumber:5},void 0)};function Te(a){return(a||"").trim().toLowerCase().replace(/[^a-z0-9]/g,"")||"mp3"}function ma(a){const n=a.name.split(".").pop();return n&&n.length<=8?Te(n):Te(a.type.split("/")[1])}async function pa(a,n){const u=ma(a),c=`/__aitu_cache__/audio/${`music-analyzer-source-${Date.now()}-${Math.random().toString(36).slice(2,8)}`}.${u}`;return await Le.cacheMediaFromBlob(c,a,"audio",{metadata:{source:"music-analyzer-input",fileName:a.name,mimeType:a.type||"audio/mpeg",size:a.size}}),{type:"upload",cacheUrl:c,fileName:a.name||`music-source.${u}`,mimeType:a.type||"audio/mpeg",size:a.size}}async function fa(a){if(!a||a.type!=="upload")return null;const n=await Le.getCachedBlob(a.cacheUrl);return n?new File([n],a.fileName||"music-source.mp3",{type:a.mimeType||n.type||"audio/mpeg",lastModified:Date.now()}):null}const je="gemini-2.5-pro",ve="music-analyzer:model",ke="music-analyzer:lyrics-model",Ue="music-analyzer:creation-prompt";function ga(a){return`${(a/1024/1024).toFixed(1)}MB`}function Na(){try{return sessionStorage.getItem(Ue)||""}catch{return""}}function Ae(a){try{if(a){sessionStorage.setItem(Ue,a);return}sessionStorage.removeItem(Ue)}catch{}}const ya=({existingRecord:a,onComplete:n,onRecordsChange:u,onCreateNew:v,onNext:c,onLyricsReady:h})=>{const[g,k]=s.useState((a==null?void 0:a.source)==="upload"?"reference":"scratch"),[N,S]=s.useState(()=>(a==null?void 0:a.creationPrompt)||Na()),[w,A]=s.useState(()=>(a==null?void 0:a.pendingLyricsGenTaskId)||null),[z,C]=s.useState(""),[m,P]=s.useState(null),[t,y]=s.useState(null),[d,j]=s.useState(""),[o,f]=s.useState(!0),[B,ee]=s.useState(""),[L,le]=s.useState(""),[K,ne]=s.useState(""),re=s.useRef(null),M=s.useRef(null),Q=s.useRef(),[D,U]=s.useState(""),[$,ce]=s.useState(()=>(a==null?void 0:a.analysisModel)||ue(ve,je).modelId),[J,te]=s.useState(()=>(a==null?void 0:a.analysisModelRef)||ue(ve,je).modelRef),[V,X]=s.useState(()=>ue(ke,xe()).modelId),[H,I]=s.useState(()=>ue(ke,xe()).modelRef),l=s.useCallback((r,x)=>{ce(r),te(x||null),ge(ve,r,x)},[]),b=s.useCallback((r,x)=>{X(r),I(x||null),ge(ke,r,x)},[]),q=s.useMemo(()=>{if(M.current&&URL.revokeObjectURL(M.current),!m)return M.current=null,null;const r=URL.createObjectURL(m);return M.current=r,r},[m]);s.useEffect(()=>()=>{M.current&&URL.revokeObjectURL(M.current)},[]),s.useEffect(()=>{let r=!1;return(async()=>{if(!a){!t&&!w&&(P(null),U(""));return}ce(a.analysisModel||je),te(a.analysisModelRef||null),S(a.creationPrompt||"");const p=a.analysis?qe(a.analysis):null;if(ee(a.title||(p==null?void 0:p.sunoTitle)||""),le((a.styleTags||(p==null?void 0:p.sunoStyleTags)||(p==null?void 0:p.genreTags)||[]).join(", ")),ne(a.lyricsDraft||(p==null?void 0:p.sunoLyricsDraft)||""),U(""),a.source==="upload"){const T=await fa(a.sourceSnapshot);if(r)return;P(T),T||U("原上传音频缓存已失效,无法自动回填音频")}})(),()=>{r=!0}},[a,t,w]),s.useEffect(()=>{if((a==null?void 0:a.source)==="scratch"){Ae(a.creationPrompt||"");return}a||Ae(N)},[N,a]),s.useEffect(()=>{if(!(!a||g!=="reference"))return clearTimeout(Q.current),Q.current=setTimeout(async()=>{const r=L.split(",").map(T=>T.trim()).filter(Boolean),x=await se(a.id,{title:B.trim(),styleTags:r,lyricsDraft:K});u(x);const p=x.find(T=>T.id===a.id);p&&n(p)},400),()=>clearTimeout(Q.current)},[K,L,B,a,g,n,u]);const W=fe("text"),O=s.useMemo(()=>W.filter(r=>/^gemini/i.test(r.id)),[W]),i=fe("audio"),G=s.useMemo(()=>$e(W,i),[W,i]),E=s.useMemo(()=>a!=null&&a.analysis?qe(a.analysis):null,[a==null?void 0:a.analysis]),ae=s.useCallback(r=>{var p;const x=(p=r.target.files)==null?void 0:p[0];x!=null&&x.type.startsWith("audio/")?(P(x),U("")):U("请选择音频文件")},[]),Y=s.useCallback(r=>{r.preventDefault();const x=r.dataTransfer.files[0];x!=null&&x.type.startsWith("audio/")?(P(x),U("")):U("请选择音频文件")},[]),R=s.useCallback(async()=>{if(!m){U("请先上传音频");return}pe.trackUIInteraction({area:"popular_music_tool",action:"audio_analysis_started",control:"analyze_audio",source:"music_analyzer_create_page",metadata:{fileSizeBytes:m.size,hasModelRef:!!J}}),U(""),j("缓存音频...");try{const r=await pa(m),x=_.createTask({prompt:`分析音频:${m.name||"本地音频"}`,model:$,modelRef:J,mimeType:r.mimeType,audioCacheUrl:r.cacheUrl,musicAnalyzerAction:"analyze",musicAnalyzerPrompt:Ye,musicAnalyzerSource:"upload",musicAnalyzerSourceLabel:r.fileName,musicAnalyzerSourceSnapshot:r,autoInsertToCanvas:!1},F.CHAT);y(x.id),j("音频分析中 0%")}catch(r){U(r.message||"音频分析失败")}},[m,$,J]),de=s.useCallback(async()=>{if(!N.trim()){U("请先描述你想创作的歌曲");return}const r=He(V);pe.trackUIInteraction({area:"popular_music_tool",action:"lyrics_generation_started",control:"generate_lyrics",source:"music_analyzer_create_page",metadata:{engine:r?"suno":"text_model",promptLength:N.trim().length,hasModelRef:!!H}}),U(""),C(r?"歌词生成中...":"歌词草稿生成中 0%");try{const x={id:We(),createdAt:Date.now(),source:"scratch",sourceLabel:N.slice(0,30)||"从零创作",creationPrompt:N,starred:!1},p=r?_.createTask({prompt:N,model:V,modelRef:H,sunoAction:"lyrics",musicAnalyzerAction:"lyrics-gen",musicAnalyzerRecordId:x.id,autoInsertToCanvas:!1},F.AUDIO):_.createTask({prompt:`从零创作歌词:${x.sourceLabel}`,model:V,modelRef:H,musicAnalyzerAction:"lyrics-gen",musicAnalyzerPrompt:Oe({userPrompt:N,mode:"create"}),musicAnalyzerRecordId:x.id,autoInsertToCanvas:!1},F.CHAT);x.pendingLyricsGenTaskId=p.id;const T=await Re(x);u(T),n(x),A(p.id)}catch(x){U(x.message||"歌词生成失败"),C("")}},[N,n,u,V,H]);s.useEffect(()=>{if(!t)return;const r=_.getTask(t);typeof(r==null?void 0:r.progress)=="number"&&j(`音频分析中 ${Math.round(r.progress)}%`);const x=_.observeTaskUpdates().subscribe(p=>{var T;if(p.task.id===t){if(p.task.status==="failed"){y(null),j(""),U(((T=p.task.error)==null?void 0:T.message)||"音频分析失败");return}if(p.task.status==="completed"){Ve(p.task).then(Z=>{Z&&(u(Z.records),n(Z.record))}).catch(Z=>U(Z.message||"分析结果同步失败")).finally(()=>{y(null),j("")});return}typeof p.task.progress=="number"&&j(`音频分析中 ${Math.round(p.task.progress)}%`)}});return()=>x.unsubscribe()},[t,n,u]),s.useEffect(()=>{if(!w)return;const r=_.getTask(w);if(typeof(r==null?void 0:r.progress)=="number"){const p=r.type===F.CHAT?"歌词草稿生成中":"歌词生成中";C(`${p} ${Math.round(r.progress)}%`)}const x=_.observeTaskUpdates().subscribe(p=>{var T;if(p.task.id===w){if(p.task.status==="failed"){const Z=String(p.task.params.musicAnalyzerRecordId||"").trim();A(null),C(""),U(((T=p.task.error)==null?void 0:T.message)||"歌词生成失败"),Z&&se(Z,{pendingLyricsGenTaskId:null}).then(u);return}if(p.task.status==="completed"){A(null),C(""),h==null||h();return}if(typeof p.task.progress=="number"){const Z=p.task.type===F.CHAT?"歌词草稿生成中":"歌词生成中";C(`${Z} ${Math.round(p.task.progress)}%`)}}});return()=>x.unsubscribe()},[h,u,w]);const be=s.useCallback(async()=>{E&&(await Fe("text",Qe(E)),pe.trackUIInteraction({area:"popular_music_tool",action:"analysis_inserted_to_canvas",control:"insert_analysis",source:"music_analyzer_create_page",metadata:{hasSunoTitle:!!E.sunoTitle,tagsCount:E.sunoStyleTags.length}}))},[E]);return e.jsxDEV("div",{className:"ma-create-page",children:[e.jsxDEV("div",{className:"ma-mode-toggle",children:[e.jsxDEV("button",{className:`ma-mode-btn ${g==="scratch"?"active":""}`,onClick:()=>k("scratch"),children:"从零创作"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:488,columnNumber:9},void 0),e.jsxDEV("button",{className:`ma-mode-btn ${g==="reference"?"active":""}`,onClick:()=>k("reference"),children:"参考音频"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:494,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:487,columnNumber:7},void 0),e.jsxDEV("div",{className:"va-page",children:[g==="scratch"?e.jsxDEV(e.Fragment,{children:[e.jsxDEV("div",{className:"ma-card",children:[e.jsxDEV("div",{className:"ma-card-header",children:[e.jsxDEV("span",{children:"歌词草稿模型"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:508,columnNumber:15},void 0),e.jsxDEV("span",{className:"ma-muted",children:"文本模型会补齐 Suno 所需标题/标签/歌词"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:509,columnNumber:15},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:507,columnNumber:13},void 0),e.jsxDEV(Ne,{selectedModel:V,selectedSelectionKey:ye(V,H),onSelect:b,models:G,variant:"form",placement:"down",placeholder:"选择歌词草稿模型"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:511,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:506,columnNumber:11},void 0),e.jsxDEV("div",{className:"ma-card",children:[e.jsxDEV("div",{className:"ma-card-header",children:e.jsxDEV("span",{children:"描述你想创作的歌曲"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:524,columnNumber:15},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:523,columnNumber:13},void 0),e.jsxDEV("textarea",{className:"ma-textarea",value:N,onChange:r=>S(r.target.value),rows:6,placeholder:"例如:一首关于夏天海边的轻快流行歌,女声,带有吉他和电子节拍"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:526,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:522,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:505,columnNumber:9},void 0):e.jsxDEV(e.Fragment,{children:[e.jsxDEV("div",{className:"ma-card",children:[e.jsxDEV("div",{className:"ma-card-header",children:[e.jsxDEV("span",{children:"上传音频"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:539,columnNumber:15},void 0),m&&e.jsxDEV("span",{className:"ma-muted",children:ga(m.size)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:540,columnNumber:29},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:538,columnNumber:13},void 0),e.jsxDEV("div",{className:"va-dropzone ma-dropzone",onClick:()=>{var r;return(r=re.current)==null?void 0:r.click()},onDragOver:r=>r.preventDefault(),onDrop:Y,children:m?e.jsxDEV("div",{className:"ma-audio-preview",children:[e.jsxDEV("div",{className:"ma-audio-preview__meta",children:[e.jsxDEV("strong",{children:m.name},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:551,columnNumber:21},void 0),e.jsxDEV("button",{className:"va-nav-btn",onClick:r=>{r.stopPropagation(),P(null),U(""),re.current&&(re.current.value="")},children:"清空"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:552,columnNumber:21},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:550,columnNumber:19},void 0),q&&e.jsxDEV("audio",{controls:!0,src:q},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:564,columnNumber:39},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:549,columnNumber:17},void 0):e.jsxDEV("div",{className:"ma-dropzone__placeholder",children:[e.jsxDEV("span",{children:"点击或拖拽上传本地音频"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:568,columnNumber:19},void 0),e.jsxDEV("small",{children:"支持 mp3、wav、m4a 等常见格式"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:569,columnNumber:19},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:567,columnNumber:17},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:542,columnNumber:13},void 0),e.jsxDEV("input",{ref:re,type:"file",accept:"audio/*",hidden:!0,onChange:ae},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:573,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:537,columnNumber:11},void 0),e.jsxDEV("div",{className:"ma-card",children:[e.jsxDEV("div",{className:"ma-card-header",children:e.jsxDEV("span",{children:"分析模型"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:584,columnNumber:15},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:583,columnNumber:13},void 0),e.jsxDEV(Ne,{selectedModel:$,selectedSelectionKey:ye($,J),onSelect:l,models:O,variant:"form",placement:"down",placeholder:"选择 Gemini 分析模型"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:586,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:582,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:536,columnNumber:9},void 0),E&&g==="reference"&&e.jsxDEV("div",{className:"ma-card",children:[e.jsxDEV("button",{className:"ma-section-toggle",onClick:()=>f(r=>!r),children:[e.jsxDEV("span",{children:"分析摘要"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:606,columnNumber:13},void 0),e.jsxDEV("span",{children:o?"收起":"展开"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:607,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:602,columnNumber:11},void 0),o&&e.jsxDEV("div",{className:"ma-analysis-summary",children:[e.jsxDEV("p",{children:E.summary},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:611,columnNumber:15},void 0),e.jsxDEV("div",{className:"ma-chip-row",children:[e.jsxDEV("span",{className:"ma-chip",children:E.language||"未知语言"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:613,columnNumber:17},void 0),e.jsxDEV("span",{className:"ma-chip",children:E.mood||"未知情绪"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:614,columnNumber:17},void 0),E.genreTags.map(r=>e.jsxDEV("span",{className:"ma-chip ma-chip--accent",children:r},r,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:616,columnNumber:19},void 0))]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:612,columnNumber:15},void 0),e.jsxDEV("div",{className:"ma-tag-row",children:E.structure.map(r=>e.jsxDEV("code",{children:r},r,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:621,columnNumber:19},void 0))},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:619,columnNumber:15},void 0),E.titleSuggestions.length>0&&e.jsxDEV("div",{className:"ma-suggestions",children:["推荐标题:",E.titleSuggestions.join(" / ")]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:625,columnNumber:17},void 0),(E.sunoTitle||E.sunoStyleTags.length>0||E.sunoLyricsDraft)&&e.jsxDEV("div",{className:"ma-suno-summary",children:[e.jsxDEV("div",{className:"ma-suno-summary__title",children:"Suno 生成草稿"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:633,columnNumber:19},void 0),e.jsxDEV("div",{className:"ma-suno-summary__form",children:[e.jsxDEV("label",{className:"ma-suno-summary__field",children:[e.jsxDEV("span",{children:"歌曲标题"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:636,columnNumber:23},void 0),e.jsxDEV("input",{className:"ma-input",value:B,onChange:r=>ee(r.target.value),placeholder:"可直接用于 Suno 的标题"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:637,columnNumber:23},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:635,columnNumber:21},void 0),e.jsxDEV("label",{className:"ma-suno-summary__field",children:[e.jsxDEV("span",{children:"Suno 风格标签"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:645,columnNumber:23},void 0),e.jsxDEV("input",{className:"ma-input",value:L,onChange:r=>le(r.target.value),placeholder:"逗号分隔的风格标签"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:646,columnNumber:23},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:644,columnNumber:21},void 0),e.jsxDEV("label",{className:"ma-suno-summary__field",children:[e.jsxDEV("span",{children:"带 Suno 标签的歌词草稿"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:654,columnNumber:23},void 0),e.jsxDEV("textarea",{className:"ma-textarea",rows:12,value:K,onChange:r=>ne(r.target.value),placeholder:"分析阶段整理出的可用歌词草稿"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:655,columnNumber:23},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:653,columnNumber:21},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:634,columnNumber:19},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:632,columnNumber:17},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:610,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:601,columnNumber:9},void 0),(D||d||z)&&e.jsxDEV("div",{className:"ma-status-stack",children:[D&&e.jsxDEV("div",{className:"ma-error",children:D},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:673,columnNumber:21},void 0),d&&e.jsxDEV("div",{className:"ma-progress",children:d},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:674,columnNumber:24},void 0),z&&e.jsxDEV("div",{className:"ma-progress",children:z},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:675,columnNumber:33},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:672,columnNumber:9},void 0),e.jsxDEV("div",{className:"va-page-actions",children:g==="scratch"?e.jsxDEV("button",{className:"va-btn-primary",onClick:de,disabled:!N.trim()||!!w,children:"生成歌词"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:681,columnNumber:11},void 0):e.jsxDEV(e.Fragment,{children:[e.jsxDEV("button",{onClick:v,children:"新建"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:690,columnNumber:13},void 0),e.jsxDEV("button",{onClick:be,disabled:!(a!=null&&a.analysis),children:"插入分析"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:691,columnNumber:13},void 0),e.jsxDEV("button",{className:"va-btn-primary",onClick:R,disabled:!m||!!t,children:"开始分析"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:694,columnNumber:13},void 0),e.jsxDEV("button",{onClick:c,disabled:!a,children:"下一步"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:701,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:689,columnNumber:11},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:679,columnNumber:7},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:502,columnNumber:7},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:485,columnNumber:5},void 0)},we="music-analyzer:model",Me="gemini-2.5-pro",xa=({record:a,onRecordUpdate:n,onRecordsChange:u,onNext:v})=>{var V,X,H,I;const[c,h]=s.useState(()=>Se(a)),[g,k]=s.useState(a.lyricsDraft||""),[N,S]=s.useState(a.title||((X=(V=a.analysis)==null?void 0:V.titleSuggestions)==null?void 0:X[0])||""),[w,A]=s.useState((a.styleTags||((H=a.analysis)==null?void 0:H.genreTags)||[]).join(", ")),[z,C]=s.useState(()=>a.pendingRewriteTaskId||null),[m,P]=s.useState(""),[t,y]=s.useState(""),[d,j]=s.useState(()=>a.analysisModel||ue(we,Me).modelId),[o,f]=s.useState(()=>a.analysisModelRef||ue(we,Me).modelRef),[B,ee]=s.useState(!1),L=s.useRef(),le=s.useCallback((l,b)=>{j(l),f(b||null),ge(we,l,b)},[]);s.useEffect(()=>{var l,b,q;h(Se(a)),k(a.lyricsDraft||""),S(a.title||((b=(l=a.analysis)==null?void 0:l.titleSuggestions)==null?void 0:b[0])||""),A((a.styleTags||((q=a.analysis)==null?void 0:q.genreTags)||[]).join(", ")),C(a.pendingRewriteTaskId||null)},[a]),s.useEffect(()=>(clearTimeout(L.current),L.current=setTimeout(async()=>{const l=w.split(",").map(q=>q.trim()).filter(Boolean),b=await se(a.id,{rewritePrompt:c,lyricsDraft:g,title:N,styleTags:l,pendingRewriteTaskId:z});u(b),n({...a,rewritePrompt:c,lyricsDraft:g,title:N,styleTags:l,pendingRewriteTaskId:z})},400),()=>clearTimeout(L.current)),[g,n,u,z,a.id,c,w,N]);const K=fe("text"),ne=fe("audio"),re=s.useMemo(()=>$e(K,ne),[K,ne]),M=s.useMemo(()=>He(d),[d]),Q=s.useMemo(()=>{const l=[{id:Ce,label:"原始版本"}];for(const b of a.lyricsVersions||[])l.push({id:b.id,label:b.label});return l},[a.lyricsVersions]),D=a.activeVersionId||Ce,U=Q.length>1,$=String(a.creationPrompt||"").trim(),ce=s.useCallback(async l=>{const b=Je(a,l);if(!b)return;const q=await se(a.id,b);u(q),n({...a,...b}),ee(!1)},[n,u,a]),J=s.useCallback(async()=>{y(""),P(M?"歌词生成中...":"歌词改写中 0%"),pe.trackUIInteraction({area:"popular_music_tool",action:"lyrics_rewrite_started",control:"rewrite_lyrics",source:"music_analyzer_lyrics_page",metadata:{engine:M?"suno":"text_model",hasRewritePrompt:!!c.trim(),lyricsLength:g.trim().length}});try{let l;if(M){const W=[c.trim()?`本轮改写要求:
1
+ import{$ as e,aJ as Ke,_ as Le,Y as s,eC as ue,eD as ge,bg as se,bn as fe,eE as $e,bf as qe,y as pe,X as _,eF as Ye,T as F,b2 as Re,eG as He,eH as Oe,b3 as Je,eI as Qe,bJ as Ne,bz as ye,eJ as We,ds as xe,eK as Se,eL as Ce,eM as Xe,eN as Ze,d8 as ea,eO as aa,eP as he,eQ as sa,eR as ia,eS as na,e9 as ra,ca as ua,bB as ie,aQ as la,b1 as ta}from"./tool-windows-BEnZdJqF.js";import{quickInsert as Fe}from"./canvas-insertion-CKIoVZ9a.js";import{s as Ve,i as ca,g as da,a as oa}from"./MusicAnalyzer-u_5sy56T.js";/* empty css */const Ie=[{id:"create",label:"创作"},{id:"lyrics",label:"歌词"},{id:"generate",label:"生成"}],ma=({current:a,onNavigate:n,hasRecord:u})=>{const v=Ie.findIndex(c=>c.id===a);return e.jsxDEV("div",{className:"va-step-bar",children:Ie.map((c,h)=>{const g=c.id===a,k=h<v,N=!u&&h>0;return e.jsxDEV(Ke.Fragment,{children:[h>0&&e.jsxDEV("span",{className:"va-step-arrow",children:"→"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/components/StepBar.tsx",lineNumber:32,columnNumber:27},void 0),e.jsxDEV("button",{className:`va-step ${g?"active":""} ${k?"past":""}`,onClick:()=>!N&&n(c.id),disabled:N,children:[e.jsxDEV("span",{className:"va-step-num",children:h+1},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/components/StepBar.tsx",lineNumber:38,columnNumber:15},void 0),c.label]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/components/StepBar.tsx",lineNumber:33,columnNumber:13},void 0)]},c.id,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/components/StepBar.tsx",lineNumber:31,columnNumber:11},void 0)})},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/components/StepBar.tsx",lineNumber:24,columnNumber:5},void 0)};function Te(a){return(a||"").trim().toLowerCase().replace(/[^a-z0-9]/g,"")||"mp3"}function pa(a){const n=a.name.split(".").pop();return n&&n.length<=8?Te(n):Te(a.type.split("/")[1])}async function fa(a,n){const u=pa(a),c=`/__aitu_cache__/audio/${`music-analyzer-source-${Date.now()}-${Math.random().toString(36).slice(2,8)}`}.${u}`;return await Le.cacheMediaFromBlob(c,a,"audio",{metadata:{source:"music-analyzer-input",fileName:a.name,mimeType:a.type||"audio/mpeg",size:a.size}}),{type:"upload",cacheUrl:c,fileName:a.name||`music-source.${u}`,mimeType:a.type||"audio/mpeg",size:a.size}}async function ga(a){if(!a||a.type!=="upload")return null;const n=await Le.getCachedBlob(a.cacheUrl);return n?new File([n],a.fileName||"music-source.mp3",{type:a.mimeType||n.type||"audio/mpeg",lastModified:Date.now()}):null}const je="gemini-2.5-pro",ve="music-analyzer:model",ke="music-analyzer:lyrics-model",Pe="music-analyzer:creation-prompt";function Na(a){return`${(a/1024/1024).toFixed(1)}MB`}function ya(){try{return sessionStorage.getItem(Pe)||""}catch{return""}}function Ae(a){try{if(a){sessionStorage.setItem(Pe,a);return}sessionStorage.removeItem(Pe)}catch{}}const xa=({existingRecord:a,onComplete:n,onRecordsChange:u,onCreateNew:v,onNext:c,onLyricsReady:h})=>{const[g,k]=s.useState((a==null?void 0:a.source)==="upload"?"reference":"scratch"),[N,S]=s.useState(()=>(a==null?void 0:a.creationPrompt)||ya()),[w,A]=s.useState(()=>(a==null?void 0:a.pendingLyricsGenTaskId)||null),[z,C]=s.useState(""),[m,U]=s.useState(null),[t,y]=s.useState(null),[d,j]=s.useState(""),[o,f]=s.useState(!0),[B,ee]=s.useState(""),[L,le]=s.useState(""),[K,ne]=s.useState(""),re=s.useRef(null),M=s.useRef(null),Q=s.useRef(),[D,P]=s.useState(""),[$,ce]=s.useState(()=>(a==null?void 0:a.analysisModel)||ue(ve,je).modelId),[W,te]=s.useState(()=>(a==null?void 0:a.analysisModelRef)||ue(ve,je).modelRef),[V,X]=s.useState(()=>ue(ke,xe()).modelId),[H,I]=s.useState(()=>ue(ke,xe()).modelRef),l=s.useCallback((r,x)=>{ce(r),te(x||null),ge(ve,r,x)},[]),b=s.useCallback((r,x)=>{X(r),I(x||null),ge(ke,r,x)},[]),q=s.useMemo(()=>{if(M.current&&URL.revokeObjectURL(M.current),!m)return M.current=null,null;const r=URL.createObjectURL(m);return M.current=r,r},[m]);s.useEffect(()=>()=>{M.current&&URL.revokeObjectURL(M.current)},[]),s.useEffect(()=>{let r=!1;return(async()=>{if(!a){!t&&!w&&(U(null),P(""));return}ce(a.analysisModel||je),te(a.analysisModelRef||null),S(a.creationPrompt||"");const p=a.analysis?qe(a.analysis):null;if(ee(a.title||(p==null?void 0:p.sunoTitle)||""),le((a.styleTags||(p==null?void 0:p.sunoStyleTags)||(p==null?void 0:p.genreTags)||[]).join(", ")),ne(a.lyricsDraft||(p==null?void 0:p.sunoLyricsDraft)||""),P(""),a.source==="upload"){const T=await ga(a.sourceSnapshot);if(r)return;U(T),T||P("原上传音频缓存已失效,无法自动回填音频")}})(),()=>{r=!0}},[a,t,w]),s.useEffect(()=>{if((a==null?void 0:a.source)==="scratch"){Ae(a.creationPrompt||"");return}a||Ae(N)},[N,a]),s.useEffect(()=>{if(!(!a||g!=="reference"))return clearTimeout(Q.current),Q.current=setTimeout(async()=>{const r=L.split(",").map(T=>T.trim()).filter(Boolean),x=await se(a.id,{title:B.trim(),styleTags:r,lyricsDraft:K});u(x);const p=x.find(T=>T.id===a.id);p&&n(p)},400),()=>clearTimeout(Q.current)},[K,L,B,a,g,n,u]);const R=fe("text"),O=s.useMemo(()=>R.filter(r=>/^gemini/i.test(r.id)),[R]),i=fe("audio"),G=s.useMemo(()=>$e(R,i),[R,i]),E=s.useMemo(()=>a!=null&&a.analysis?qe(a.analysis):null,[a==null?void 0:a.analysis]),ae=s.useCallback(r=>{var p;const x=(p=r.target.files)==null?void 0:p[0];x!=null&&x.type.startsWith("audio/")?(U(x),P("")):P("请选择音频文件")},[]),Y=s.useCallback(r=>{r.preventDefault();const x=r.dataTransfer.files[0];x!=null&&x.type.startsWith("audio/")?(U(x),P("")):P("请选择音频文件")},[]),J=s.useCallback(async()=>{if(!m){P("请先上传音频");return}pe.trackUIInteraction({area:"popular_music_tool",action:"audio_analysis_started",control:"analyze_audio",source:"music_analyzer_create_page",metadata:{fileSizeBytes:m.size,hasModelRef:!!W}}),P(""),j("缓存音频...");try{const r=await fa(m),x=_.createTask({prompt:`分析音频:${m.name||"本地音频"}`,model:$,modelRef:W,mimeType:r.mimeType,audioCacheUrl:r.cacheUrl,musicAnalyzerAction:"analyze",musicAnalyzerPrompt:Ye,musicAnalyzerSource:"upload",musicAnalyzerSourceLabel:r.fileName,musicAnalyzerSourceSnapshot:r,autoInsertToCanvas:!1},F.CHAT);y(x.id),j("音频分析中 0%")}catch(r){P(r.message||"音频分析失败")}},[m,$,W]),de=s.useCallback(async()=>{if(!N.trim()){P("请先描述你想创作的歌曲");return}const r=He(V);pe.trackUIInteraction({area:"popular_music_tool",action:"lyrics_generation_started",control:"generate_lyrics",source:"music_analyzer_create_page",metadata:{engine:r?"suno":"text_model",promptLength:N.trim().length,hasModelRef:!!H}}),P(""),C(r?"歌词生成中...":"歌词草稿生成中 0%");try{const x={id:Re(),createdAt:Date.now(),source:"scratch",sourceLabel:N.slice(0,30)||"从零创作",creationPrompt:N,starred:!1},p=r?_.createTask({prompt:N,model:V,modelRef:H,sunoAction:"lyrics",musicAnalyzerAction:"lyrics-gen",musicAnalyzerRecordId:x.id,autoInsertToCanvas:!1},F.AUDIO):_.createTask({prompt:`从零创作歌词:${x.sourceLabel}`,model:V,modelRef:H,musicAnalyzerAction:"lyrics-gen",musicAnalyzerPrompt:Oe({userPrompt:N,mode:"create"}),musicAnalyzerRecordId:x.id,autoInsertToCanvas:!1},F.CHAT);x.pendingLyricsGenTaskId=p.id;const T=await Je(x);u(T),n(x),A(p.id)}catch(x){P(x.message||"歌词生成失败"),C("")}},[N,n,u,V,H]);s.useEffect(()=>{if(!t)return;const r=_.getTask(t);typeof(r==null?void 0:r.progress)=="number"&&j(`音频分析中 ${Math.round(r.progress)}%`);const x=_.observeTaskUpdates().subscribe(p=>{var T;if(p.task.id===t){if(p.task.status==="failed"){y(null),j(""),P(((T=p.task.error)==null?void 0:T.message)||"音频分析失败");return}if(p.task.status==="completed"){Ve(p.task).then(Z=>{Z&&(u(Z.records),n(Z.record))}).catch(Z=>P(Z.message||"分析结果同步失败")).finally(()=>{y(null),j("")});return}typeof p.task.progress=="number"&&j(`音频分析中 ${Math.round(p.task.progress)}%`)}});return()=>x.unsubscribe()},[t,n,u]),s.useEffect(()=>{if(!w)return;const r=_.getTask(w);if(typeof(r==null?void 0:r.progress)=="number"){const p=r.type===F.CHAT?"歌词草稿生成中":"歌词生成中";C(`${p} ${Math.round(r.progress)}%`)}const x=_.observeTaskUpdates().subscribe(p=>{var T;if(p.task.id===w){if(p.task.status==="failed"){const Z=String(p.task.params.musicAnalyzerRecordId||"").trim();A(null),C(""),P(((T=p.task.error)==null?void 0:T.message)||"歌词生成失败"),Z&&se(Z,{pendingLyricsGenTaskId:null}).then(u);return}if(p.task.status==="completed"){A(null),C(""),h==null||h();return}if(typeof p.task.progress=="number"){const Z=p.task.type===F.CHAT?"歌词草稿生成中":"歌词生成中";C(`${Z} ${Math.round(p.task.progress)}%`)}}});return()=>x.unsubscribe()},[h,u,w]);const be=s.useCallback(async()=>{E&&(await Fe("text",Qe(E)),pe.trackUIInteraction({area:"popular_music_tool",action:"analysis_inserted_to_canvas",control:"insert_analysis",source:"music_analyzer_create_page",metadata:{hasSunoTitle:!!E.sunoTitle,tagsCount:E.sunoStyleTags.length}}))},[E]);return e.jsxDEV("div",{className:"ma-create-page",children:[e.jsxDEV("div",{className:"ma-mode-toggle",children:[e.jsxDEV("button",{className:`ma-mode-btn ${g==="scratch"?"active":""}`,onClick:()=>k("scratch"),children:"从零创作"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:489,columnNumber:9},void 0),e.jsxDEV("button",{className:`ma-mode-btn ${g==="reference"?"active":""}`,onClick:()=>k("reference"),children:"参考音频"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:495,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:488,columnNumber:7},void 0),e.jsxDEV("div",{className:"va-page",children:[g==="scratch"?e.jsxDEV(e.Fragment,{children:[e.jsxDEV("div",{className:"ma-card",children:[e.jsxDEV("div",{className:"ma-card-header",children:[e.jsxDEV("span",{children:"歌词草稿模型"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:509,columnNumber:15},void 0),e.jsxDEV("span",{className:"ma-muted",children:"文本模型会补齐 Suno 所需标题/标签/歌词"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:510,columnNumber:15},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:508,columnNumber:13},void 0),e.jsxDEV(Ne,{selectedModel:V,selectedSelectionKey:ye(V,H),onSelect:b,models:G,variant:"form",placement:"down",placeholder:"选择歌词草稿模型"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:512,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:507,columnNumber:11},void 0),e.jsxDEV("div",{className:"ma-card",children:[e.jsxDEV("div",{className:"ma-card-header",children:[e.jsxDEV("span",{children:"描述你想创作的歌曲"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:525,columnNumber:15},void 0),e.jsxDEV(We,{className:"ma-icon-btn",originalPrompt:N,language:"zh",scenarioId:"music.create-song",onApply:S},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:526,columnNumber:15},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:524,columnNumber:13},void 0),e.jsxDEV("textarea",{className:"ma-textarea",value:N,onChange:r=>S(r.target.value),rows:6,placeholder:"例如:一首关于夏天海边的轻快流行歌,女声,带有吉他和电子节拍"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:534,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:523,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:506,columnNumber:9},void 0):e.jsxDEV(e.Fragment,{children:[e.jsxDEV("div",{className:"ma-card",children:[e.jsxDEV("div",{className:"ma-card-header",children:[e.jsxDEV("span",{children:"上传音频"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:547,columnNumber:15},void 0),m&&e.jsxDEV("span",{className:"ma-muted",children:Na(m.size)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:548,columnNumber:29},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:546,columnNumber:13},void 0),e.jsxDEV("div",{className:"va-dropzone ma-dropzone",onClick:()=>{var r;return(r=re.current)==null?void 0:r.click()},onDragOver:r=>r.preventDefault(),onDrop:Y,children:m?e.jsxDEV("div",{className:"ma-audio-preview",children:[e.jsxDEV("div",{className:"ma-audio-preview__meta",children:[e.jsxDEV("strong",{children:m.name},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:559,columnNumber:21},void 0),e.jsxDEV("button",{className:"va-nav-btn",onClick:r=>{r.stopPropagation(),U(null),P(""),re.current&&(re.current.value="")},children:"清空"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:560,columnNumber:21},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:558,columnNumber:19},void 0),q&&e.jsxDEV("audio",{controls:!0,src:q},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:572,columnNumber:39},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:557,columnNumber:17},void 0):e.jsxDEV("div",{className:"ma-dropzone__placeholder",children:[e.jsxDEV("span",{children:"点击或拖拽上传本地音频"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:576,columnNumber:19},void 0),e.jsxDEV("small",{children:"支持 mp3、wav、m4a 等常见格式"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:577,columnNumber:19},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:575,columnNumber:17},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:550,columnNumber:13},void 0),e.jsxDEV("input",{ref:re,type:"file",accept:"audio/*",hidden:!0,onChange:ae},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:581,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:545,columnNumber:11},void 0),e.jsxDEV("div",{className:"ma-card",children:[e.jsxDEV("div",{className:"ma-card-header",children:e.jsxDEV("span",{children:"分析模型"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:592,columnNumber:15},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:591,columnNumber:13},void 0),e.jsxDEV(Ne,{selectedModel:$,selectedSelectionKey:ye($,W),onSelect:l,models:O,variant:"form",placement:"down",placeholder:"选择 Gemini 分析模型"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:594,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:590,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:544,columnNumber:9},void 0),E&&g==="reference"&&e.jsxDEV("div",{className:"ma-card",children:[e.jsxDEV("button",{className:"ma-section-toggle",onClick:()=>f(r=>!r),children:[e.jsxDEV("span",{children:"分析摘要"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:614,columnNumber:13},void 0),e.jsxDEV("span",{children:o?"收起":"展开"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:615,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:610,columnNumber:11},void 0),o&&e.jsxDEV("div",{className:"ma-analysis-summary",children:[e.jsxDEV("p",{children:E.summary},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:619,columnNumber:15},void 0),e.jsxDEV("div",{className:"ma-chip-row",children:[e.jsxDEV("span",{className:"ma-chip",children:E.language||"未知语言"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:621,columnNumber:17},void 0),e.jsxDEV("span",{className:"ma-chip",children:E.mood||"未知情绪"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:622,columnNumber:17},void 0),E.genreTags.map(r=>e.jsxDEV("span",{className:"ma-chip ma-chip--accent",children:r},r,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:624,columnNumber:19},void 0))]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:620,columnNumber:15},void 0),e.jsxDEV("div",{className:"ma-tag-row",children:E.structure.map(r=>e.jsxDEV("code",{children:r},r,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:629,columnNumber:19},void 0))},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:627,columnNumber:15},void 0),E.titleSuggestions.length>0&&e.jsxDEV("div",{className:"ma-suggestions",children:["推荐标题:",E.titleSuggestions.join(" / ")]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:633,columnNumber:17},void 0),(E.sunoTitle||E.sunoStyleTags.length>0||E.sunoLyricsDraft)&&e.jsxDEV("div",{className:"ma-suno-summary",children:[e.jsxDEV("div",{className:"ma-suno-summary__title",children:"Suno 生成草稿"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:641,columnNumber:19},void 0),e.jsxDEV("div",{className:"ma-suno-summary__form",children:[e.jsxDEV("label",{className:"ma-suno-summary__field",children:[e.jsxDEV("span",{children:"歌曲标题"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:644,columnNumber:23},void 0),e.jsxDEV("input",{className:"ma-input",value:B,onChange:r=>ee(r.target.value),placeholder:"可直接用于 Suno 的标题"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:645,columnNumber:23},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:643,columnNumber:21},void 0),e.jsxDEV("label",{className:"ma-suno-summary__field",children:[e.jsxDEV("span",{children:"Suno 风格标签"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:653,columnNumber:23},void 0),e.jsxDEV("input",{className:"ma-input",value:L,onChange:r=>le(r.target.value),placeholder:"逗号分隔的风格标签"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:654,columnNumber:23},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:652,columnNumber:21},void 0),e.jsxDEV("label",{className:"ma-suno-summary__field",children:[e.jsxDEV("span",{children:"带 Suno 标签的歌词草稿"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:662,columnNumber:23},void 0),e.jsxDEV("textarea",{className:"ma-textarea",rows:12,value:K,onChange:r=>ne(r.target.value),placeholder:"分析阶段整理出的可用歌词草稿"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:663,columnNumber:23},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:661,columnNumber:21},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:642,columnNumber:19},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:640,columnNumber:17},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:618,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:609,columnNumber:9},void 0),(D||d||z)&&e.jsxDEV("div",{className:"ma-status-stack",children:[D&&e.jsxDEV("div",{className:"ma-error",children:D},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:681,columnNumber:21},void 0),d&&e.jsxDEV("div",{className:"ma-progress",children:d},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:682,columnNumber:24},void 0),z&&e.jsxDEV("div",{className:"ma-progress",children:z},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:683,columnNumber:33},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:680,columnNumber:9},void 0),e.jsxDEV("div",{className:"va-page-actions",children:g==="scratch"?e.jsxDEV("button",{className:"va-btn-primary",onClick:de,disabled:!N.trim()||!!w,children:"生成歌词"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:689,columnNumber:11},void 0):e.jsxDEV(e.Fragment,{children:[e.jsxDEV("button",{onClick:v,children:"新建"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:698,columnNumber:13},void 0),e.jsxDEV("button",{onClick:be,disabled:!(a!=null&&a.analysis),children:"插入分析"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:699,columnNumber:13},void 0),e.jsxDEV("button",{className:"va-btn-primary",onClick:J,disabled:!m||!!t,children:"开始分析"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:702,columnNumber:13},void 0),e.jsxDEV("button",{onClick:c,disabled:!a,children:"下一步"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:709,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:697,columnNumber:11},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:687,columnNumber:7},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:503,columnNumber:7},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/CreatePage.tsx",lineNumber:486,columnNumber:5},void 0)},we="music-analyzer:model",Me="gemini-2.5-pro",ba=({record:a,onRecordUpdate:n,onRecordsChange:u,onNext:v})=>{var V,X,H,I;const[c,h]=s.useState(()=>Se(a)),[g,k]=s.useState(a.lyricsDraft||""),[N,S]=s.useState(a.title||((X=(V=a.analysis)==null?void 0:V.titleSuggestions)==null?void 0:X[0])||""),[w,A]=s.useState((a.styleTags||((H=a.analysis)==null?void 0:H.genreTags)||[]).join(", ")),[z,C]=s.useState(()=>a.pendingRewriteTaskId||null),[m,U]=s.useState(""),[t,y]=s.useState(""),[d,j]=s.useState(()=>a.analysisModel||ue(we,Me).modelId),[o,f]=s.useState(()=>a.analysisModelRef||ue(we,Me).modelRef),[B,ee]=s.useState(!1),L=s.useRef(),le=s.useCallback((l,b)=>{j(l),f(b||null),ge(we,l,b)},[]);s.useEffect(()=>{var l,b,q;h(Se(a)),k(a.lyricsDraft||""),S(a.title||((b=(l=a.analysis)==null?void 0:l.titleSuggestions)==null?void 0:b[0])||""),A((a.styleTags||((q=a.analysis)==null?void 0:q.genreTags)||[]).join(", ")),C(a.pendingRewriteTaskId||null)},[a]),s.useEffect(()=>(clearTimeout(L.current),L.current=setTimeout(async()=>{const l=w.split(",").map(q=>q.trim()).filter(Boolean),b=await se(a.id,{rewritePrompt:c,lyricsDraft:g,title:N,styleTags:l,pendingRewriteTaskId:z});u(b),n({...a,rewritePrompt:c,lyricsDraft:g,title:N,styleTags:l,pendingRewriteTaskId:z})},400),()=>clearTimeout(L.current)),[g,n,u,z,a.id,c,w,N]);const K=fe("text"),ne=fe("audio"),re=s.useMemo(()=>$e(K,ne),[K,ne]),M=s.useMemo(()=>He(d),[d]),Q=s.useMemo(()=>{const l=[{id:Ce,label:"原始版本"}];for(const b of a.lyricsVersions||[])l.push({id:b.id,label:b.label});return l},[a.lyricsVersions]),D=a.activeVersionId||Ce,P=Q.length>1,$=String(a.creationPrompt||"").trim(),ce=s.useCallback(async l=>{const b=Xe(a,l);if(!b)return;const q=await se(a.id,b);u(q),n({...a,...b}),ee(!1)},[n,u,a]),W=s.useCallback(async()=>{y(""),U(M?"歌词生成中...":"歌词改写中 0%"),pe.trackUIInteraction({area:"popular_music_tool",action:"lyrics_rewrite_started",control:"rewrite_lyrics",source:"music_analyzer_lyrics_page",metadata:{engine:M?"suno":"text_model",hasRewritePrompt:!!c.trim(),lyricsLength:g.trim().length}});try{let l;if(M){const R=[c.trim()?`本轮改写要求:
2
2
  ${c.trim()}`:"",$&&$!==c.trim()?`第一步创作提示词:
3
3
  ${$}`:"",g.trim()?`当前歌词草稿:
4
4
  ${g.trim()}`:""].filter(Boolean).join(`
5
5
 
6
- `)||c||g||a.sourceLabel;l=_.createTask({prompt:W,model:d,modelRef:o||null,sunoAction:"lyrics",musicAnalyzerAction:"lyrics-gen",musicAnalyzerRecordId:a.id,autoInsertToCanvas:!1},F.AUDIO)}else l=_.createTask({prompt:`改写歌词:${a.sourceLabel}`,model:d,modelRef:o||null,musicAnalyzerAction:"rewrite",musicAnalyzerPrompt:Oe({analysis:a.analysis,userPrompt:c,originalPrompt:$,currentLyrics:g}),musicAnalyzerRecordId:a.id,autoInsertToCanvas:!1},F.CHAT);C(l.id);const b=await se(a.id,{rewritePrompt:c,pendingRewriteTaskId:l.id});u(b),n({...a,rewritePrompt:c,pendingRewriteTaskId:l.id})}catch(l){y(l.message||"歌词改写失败"),P("")}},[g,n,u,a,c,d,o,M]);s.useEffect(()=>{if(!z)return;const l=_.getTask(z);typeof(l==null?void 0:l.progress)=="number"&&P(`歌词改写中 ${Math.round(l.progress)}%`);const b=_.observeTaskUpdates().subscribe(q=>{var W;if(q.task.id===z){if(q.task.status==="failed"){C(null),P(""),y(((W=q.task.error)==null?void 0:W.message)||"歌词改写失败"),se(a.id,{pendingRewriteTaskId:null}).then(u);return}if(q.task.status==="completed"){Ve(q.task).then(O=>{O&&(u(O.records),n(O.record),k(O.record.lyricsDraft||""),S(O.record.title||""),A((O.record.styleTags||[]).join(", ")))}).catch(O=>{y(O.message||"改写结果同步失败")}).finally(()=>{C(null),P("")});return}typeof q.task.progress=="number"&&P(`歌词改写中 ${Math.round(q.task.progress)}%`)}});return()=>b.unsubscribe()},[n,u,z,a.id]);const te=s.useCallback(async()=>{const l=await Fe("text",Xe({title:N,styleTags:w.split(",").map(b=>b.trim()).filter(Boolean),lyricsDraft:g}));if(!l.success){y(l.error||"插入失败,请确认画布已打开");return}pe.trackUIInteraction({area:"popular_music_tool",action:"lyrics_inserted_to_canvas",control:"insert_lyrics",source:"music_analyzer_lyrics_page",metadata:{lyricsLength:g.trim().length,tagsCount:w.split(",").filter(b=>b.trim()).length}})},[g,w,N]);return e.jsxDEV("div",{className:"va-page",children:[e.jsxDEV("div",{className:"ma-card",children:[e.jsxDEV("div",{className:"ma-card-header",children:[e.jsxDEV("span",{children:"歌词模型"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:311,columnNumber:11},void 0),U&&e.jsxDEV("div",{className:"ma-version-dropdown",children:[e.jsxDEV("button",{className:"ma-version-btn",onClick:()=>ee(l=>!l),children:[((I=Q.find(l=>l.id===D))==null?void 0:I.label)||"原始版本",e.jsxDEV("span",{className:"ma-version-arrow",children:B?"▲":"▼"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:320,columnNumber:17},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:315,columnNumber:15},void 0),B&&e.jsxDEV("div",{className:"ma-version-menu",children:Q.map(l=>e.jsxDEV("button",{className:`ma-version-menu-item ${l.id===D?"active":""}`,onClick:()=>ce(l.id),children:l.label},l.id,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:325,columnNumber:21},void 0))},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:323,columnNumber:17},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:314,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:310,columnNumber:9},void 0),e.jsxDEV(Ne,{selectedModel:d,selectedSelectionKey:ye(d,o),onSelect:le,models:re,variant:"form",placement:"down",placeholder:"选择歌词模型"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:338,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:309,columnNumber:7},void 0),e.jsxDEV("div",{className:"ma-card",children:[e.jsxDEV("div",{className:"ma-card-header",children:e.jsxDEV("span",{children:"改写要求"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:351,columnNumber:11},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:350,columnNumber:9},void 0),e.jsxDEV("textarea",{className:"ma-textarea",value:c,onChange:l=>h(l.target.value),rows:4,placeholder:"告诉 AI 要保留什么、强化什么、改成什么风格"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:353,columnNumber:9},void 0),e.jsxDEV("button",{className:"va-btn-primary ma-rewrite-submit",onClick:J,children:M?"Suno 生成歌词":"AI 改写"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:360,columnNumber:9},void 0),m&&e.jsxDEV("div",{className:"ma-progress",children:m},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:363,columnNumber:29},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:349,columnNumber:7},void 0),e.jsxDEV("div",{className:"ma-card",children:[e.jsxDEV("div",{className:"ma-card-header",children:e.jsxDEV("span",{children:"歌曲标题"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:368,columnNumber:11},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:367,columnNumber:9},void 0),e.jsxDEV("input",{className:"ma-input",value:N,onChange:l=>S(l.target.value),placeholder:"歌曲标题"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:370,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:366,columnNumber:7},void 0),e.jsxDEV("div",{className:"ma-card",children:[e.jsxDEV("div",{className:"ma-card-header",children:e.jsxDEV("span",{children:"Suno 风格标签"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:380,columnNumber:11},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:379,columnNumber:9},void 0),e.jsxDEV("input",{className:"ma-input",value:w,onChange:l=>A(l.target.value),placeholder:"例如 cinematic pop, female vocal, uplifting"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:382,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:378,columnNumber:7},void 0),e.jsxDEV("div",{className:"ma-card",children:[e.jsxDEV("div",{className:"ma-card-header",children:e.jsxDEV("span",{children:"歌词草稿"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:392,columnNumber:11},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:391,columnNumber:9},void 0),e.jsxDEV("textarea",{className:"ma-textarea",value:g,onChange:l=>k(l.target.value),rows:14,placeholder:"AI 改写结果会出现在这里,可继续手改"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:394,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:390,columnNumber:7},void 0),t&&e.jsxDEV("div",{className:"ma-error",children:t},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:403,columnNumber:17},void 0),e.jsxDEV("div",{className:"va-page-actions",children:[e.jsxDEV("button",{onClick:te,disabled:!g.trim(),children:"插入歌词"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:406,columnNumber:9},void 0),e.jsxDEV("button",{className:"va-btn-primary",onClick:v,disabled:!g.trim(),children:"下一步"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:409,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:405,columnNumber:7},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:308,columnNumber:5},void 0)},ze="music-analyzer:audio-model",Pe=[{id:"generate",label:"新生成",hint:"从零生成完整音乐"},{id:"continue",label:"续写",hint:"从已有片段继续创作"},{id:"infill",label:"Infill",hint:"局部重绘指定时间窗口"}];function oe(a){const n=a.trim();if(!n)return null;const u=Number(n);return Number.isFinite(u)?u:null}function me(a){return typeof a=="number"&&Number.isFinite(a)?String(a):""}function Ee(a){return a.split(",").map(n=>n.trim()).filter(Boolean)}function Ge(a){var n;return((n=Pe.find(u=>u.id===a))==null?void 0:n.label)||"新生成"}function ba(a){return typeof a.duration=="number"&&Number.isFinite(a.duration)?String(Math.max(0,Math.round(a.duration))):""}function _e(a){const n=a.title||"未命名片段",u=a.duration!=null?` · ${Be(a.duration)}`:"",v=a.clipId?` · ${a.clipId.slice(0,8)}`:"";return`${n}${u}${v}`}const ha=({record:a,onRecordUpdate:n,onRecordsChange:u,onRestart:v})=>{var O;const[c,h]=s.useState(a.title||""),[g,k]=s.useState((a.styleTags||[]).join(", ")),[N,S]=s.useState(a.lyricsDraft||""),[w,A]=s.useState("chirp-v5-5"),[z,C]=s.useState(1),[m,P]=s.useState(()=>ue(ze,xe()).modelId),[t,y]=s.useState(()=>ue(ze,xe()).modelRef),[d,j]=s.useState(a.musicEditAction||"generate"),[o,f]=s.useState(a.continueFromClipId||""),[B,ee]=s.useState(me(a.continueAt)),[L,le]=s.useState(me(a.infillStartS)),[K,ne]=s.useState(me(a.infillEndS)),[re,M]=s.useState(!1),[Q,D]=s.useState(""),U=s.useRef(),$=s.useRef(!1),ce=s.useCallback((i,G)=>{P(i),y(G||null),ge(ze,i,G)},[]);s.useEffect(()=>{h(a.title||""),k((a.styleTags||[]).join(", ")),S(a.lyricsDraft||""),j(a.musicEditAction||"generate"),f(a.continueFromClipId||""),ee(me(a.continueAt)),le(me(a.infillStartS)),ne(me(a.infillEndS))},[a]),s.useEffect(()=>(clearTimeout(U.current),U.current=setTimeout(async()=>{const i=Ee(g),G=oe(B),E=oe(L),ae=oe(K),Y={title:c,styleTags:i,lyricsDraft:N,musicEditAction:d,continueFromClipId:o||null,continueAt:G,infillStartS:E,infillEndS:ae},R=await se(a.id,Y);u(R),n({...a,...Y})},400),()=>clearTimeout(U.current)),[d,B,o,K,L,n,u,N,a.id,g,c]);const J=fe("audio"),te=s.useMemo(()=>J.filter(i=>{const G=Array.isArray(i.tags)?i.tags.join(" "):"";return/suno/i.test(i.id)||/suno/i.test(G)}),[J]),V=s.useMemo(()=>Ze(m).find(i=>i.id==="mv"),[m]);s.useEffect(()=>{V!=null&&V.defaultValue&&A(i=>i||String(V.defaultValue))},[V==null?void 0:V.defaultValue]);const X=a.generatedClips||[],H=s.useMemo(()=>X.filter(i=>!!String(i.clipId||"").trim()),[X]),I=s.useMemo(()=>H.find(i=>i.clipId===o)||null,[o,H]),l=d!=="generate",b=d==="infill",q=s.useCallback((i,G)=>{if(!i.clipId){D("该片段尚未拿到真实 clip_id,暂时不能继续创作");return}j(G),f(i.clipId),ee(E=>E||ba(i)),D(G==="continue"?`已带入片段「${i.title||i.clipId.slice(0,8)}」用于续写`:`已带入片段「${i.title||i.clipId.slice(0,8)}」用于 Infill`)},[]),W=s.useCallback(async()=>{const i=N.trim(),G=c.trim(),E=g.trim(),ae=oe(B),Y=oe(L),R=oe(K);if(!i){D("请先准备歌词或生成提示词");return}if(l&&!o){D("请先选择要续写的片段");return}if(l&&!(I!=null&&I.taskId)){D("当前片段缺少来源 task_id,请先重新同步或重新生成一次片段");return}if(l&&ae==null){D("请填写续写起点秒数");return}if(ae!=null&&ae<0){D("续写起点秒数不能小于 0");return}if(b&&Y==null){D("请填写 Infill 开始秒数");return}if(b&&R==null){D("请填写 Infill 结束秒数");return}if(Y!=null&&Y<0){D("Infill 开始秒数不能小于 0");return}if(R!=null&&R<0){D("Infill 结束秒数不能小于 0");return}if(b&&Y!=null&&R!=null&&Y>=R){D("Infill 开始秒数必须小于结束秒数");return}if(!$.current){$.current=!0,pe.trackUIInteraction({area:"popular_music_tool",action:"music_generation_started",control:"generate_music",source:"music_analyzer_generate_page",metadata:{editAction:d,batchCount:z,promptLength:i.length,hasTitle:!!G,tagsCount:Ee(E).length,hasMv:!!w,hasModelRef:!!t}}),M(!0),D("");try{const de=[],be=d==="generate"?"gen":d;for(let p=0;p<z;p+=1){const T=_.createTask({prompt:i,model:m,modelRef:t,sunoAction:"music",title:G,tags:E,mv:w,continueClipId:l?o:void 0,continueTaskId:l?I==null?void 0:I.taskId:void 0,continueAt:l?ae??void 0:void 0,infillStartS:b?Y??void 0:void 0,infillEndS:b?R??void 0:void 0,batchId:`ma_${a.id}_${be}_${p}`,batchIndex:p,batchTotal:z,autoInsertToCanvas:!0},F.AUDIO);de.push(T.id)}const r={generateTaskIds:[...a.generateTaskIds||[],...de],title:G,styleTags:Ee(E),lyricsDraft:i,musicEditAction:d,continueFromClipId:o||null,continueAt:ae,infillStartS:Y,infillEndS:R},x=await se(a.id,r);u(x),n({...a,...r}),D(`已提交 ${z} 次${Ge(d)}任务到 Suno 队列`)}catch(de){D(de.message||"提交生成任务失败")}finally{M(!1),$.current=!1}}},[d,z,B,o,K,L,w,n,u,N,a,l,b,I==null?void 0:I.taskId,m,t,g,c]);return e.jsxDEV("div",{className:"va-page",children:[e.jsxDEV("div",{className:"ma-card",children:[e.jsxDEV("div",{className:"ma-card-header",children:[e.jsxDEV("span",{children:"创作动作"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:372,columnNumber:11},void 0),e.jsxDEV("span",{className:"ma-muted",children:(O=Pe.find(i=>i.id===d))==null?void 0:O.hint},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:373,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:371,columnNumber:9},void 0),e.jsxDEV("div",{className:"ma-action-toggle",children:Pe.map(i=>e.jsxDEV("button",{className:`ma-action-btn ${d===i.id?"active":""}`,onClick:()=>j(i.id),children:i.label},i.id,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:379,columnNumber:13},void 0))},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:377,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:370,columnNumber:7},void 0),e.jsxDEV("div",{className:"ma-card",children:[e.jsxDEV("div",{className:"ma-card-header",children:e.jsxDEV("span",{children:"Suno 模型"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:392,columnNumber:11},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:391,columnNumber:9},void 0),e.jsxDEV(Ne,{selectedModel:m,selectedSelectionKey:ye(m,t),onSelect:ce,models:te.length>0?te:J,variant:"form",placement:"down",placeholder:"选择音频生成模型"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:394,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:390,columnNumber:7},void 0),(V==null?void 0:V.options)&&V.options.length>0&&e.jsxDEV("div",{className:"ma-card",children:[e.jsxDEV("div",{className:"ma-card-header",children:e.jsxDEV("span",{children:"Suno 版本"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:408,columnNumber:13},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:407,columnNumber:11},void 0),e.jsxDEV("select",{className:"ma-select",value:w,onChange:i=>A(i.target.value),children:V.options.map(i=>e.jsxDEV("option",{value:String(i.value),children:i.label},i.value,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:416,columnNumber:15},void 0))},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:410,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:406,columnNumber:9},void 0),l&&e.jsxDEV("div",{className:"ma-card",children:[e.jsxDEV("div",{className:"ma-card-header",children:[e.jsxDEV("span",{children:"目标片段"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:427,columnNumber:13},void 0),e.jsxDEV("span",{className:"ma-muted",children:"自动使用轮询得到的真实 clip_id"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:428,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:426,columnNumber:11},void 0),H.length>0?e.jsxDEV("select",{className:"ma-select",value:o,onChange:i=>f(i.target.value),children:[e.jsxDEV("option",{value:"",children:"请选择已生成片段"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:436,columnNumber:15},void 0),H.map(i=>e.jsxDEV("option",{value:i.clipId,children:_e(i)},i.clipId,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:438,columnNumber:17},void 0))]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:431,columnNumber:13},void 0):e.jsxDEV("div",{className:"ma-hint",children:"先生成至少一个片段,才能使用续写或 Infill。"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:444,columnNumber:13},void 0),I&&e.jsxDEV("div",{className:"ma-hint",children:["当前片段:",_e(I)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:447,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:425,columnNumber:9},void 0),l&&e.jsxDEV("div",{className:"ma-card",children:[e.jsxDEV("div",{className:"ma-card-header",children:e.jsxDEV("span",{children:"编辑参数"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:457,columnNumber:13},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:456,columnNumber:11},void 0),e.jsxDEV("div",{className:`ma-fields-grid ${b?"ma-fields-grid--triple":""}`,children:[e.jsxDEV("label",{className:"ma-field",children:[e.jsxDEV("span",{children:"续写起点秒数"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:461,columnNumber:15},void 0),e.jsxDEV("input",{className:"ma-input",type:"number",min:"0",step:"0.1",value:B,onChange:i=>ee(i.target.value),placeholder:"例如 30"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:462,columnNumber:15},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:460,columnNumber:13},void 0),b&&e.jsxDEV("label",{className:"ma-field",children:[e.jsxDEV("span",{children:"Infill 开始秒数"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:474,columnNumber:17},void 0),e.jsxDEV("input",{className:"ma-input",type:"number",min:"0",step:"0.1",value:L,onChange:i=>le(i.target.value),placeholder:"例如 8"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:475,columnNumber:17},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:473,columnNumber:15},void 0),b&&e.jsxDEV("label",{className:"ma-field",children:[e.jsxDEV("span",{children:"Infill 结束秒数"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:488,columnNumber:17},void 0),e.jsxDEV("input",{className:"ma-input",type:"number",min:"0",step:"0.1",value:K,onChange:i=>ne(i.target.value),placeholder:"例如 16"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:489,columnNumber:17},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:487,columnNumber:15},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:459,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:455,columnNumber:9},void 0),e.jsxDEV("div",{className:"ma-card",children:[e.jsxDEV("div",{className:"ma-card-header",children:e.jsxDEV("span",{children:"歌曲标题"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:506,columnNumber:11},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:505,columnNumber:9},void 0),e.jsxDEV("input",{className:"ma-input",value:c,onChange:i=>h(i.target.value),placeholder:"歌曲标题"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:508,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:504,columnNumber:7},void 0),e.jsxDEV("div",{className:"ma-card",children:[e.jsxDEV("div",{className:"ma-card-header",children:e.jsxDEV("span",{children:"风格标签"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:518,columnNumber:11},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:517,columnNumber:9},void 0),e.jsxDEV("input",{className:"ma-input",value:g,onChange:i=>k(i.target.value),placeholder:"逗号分隔,例如 edm, intense, female vocal"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:520,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:516,columnNumber:7},void 0),e.jsxDEV("div",{className:"ma-card",children:[e.jsxDEV("div",{className:"ma-card-header",children:e.jsxDEV("span",{children:"提交给 Suno 的歌词/提示词"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:530,columnNumber:11},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:529,columnNumber:9},void 0),e.jsxDEV("textarea",{className:"ma-textarea",rows:10,value:N,onChange:i=>S(i.target.value),placeholder:"这里的内容会直接作为 prompt 提交给 Suno"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:532,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:528,columnNumber:7},void 0),e.jsxDEV("div",{className:"ma-card",children:[e.jsxDEV("div",{className:"ma-card-header",children:[e.jsxDEV("span",{children:"调用次数"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:543,columnNumber:11},void 0),e.jsxDEV("span",{className:"ma-muted",children:"每次返回 2 首"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:544,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:542,columnNumber:9},void 0),e.jsxDEV("div",{className:"ma-batch-selector",children:[1,2,3,4].map(i=>e.jsxDEV("button",{className:`ma-batch-btn ${z===i?"active":""}`,onClick:()=>C(i),children:[i," 次"]},i,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:548,columnNumber:13},void 0))},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:546,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:541,columnNumber:7},void 0),X.length>0&&e.jsxDEV("div",{className:"ma-card",children:[e.jsxDEV("div",{className:"ma-card-header",children:[e.jsxDEV("span",{children:["已生成片段 (",X.length,")"]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:562,columnNumber:13},void 0),e.jsxDEV("span",{className:"ma-muted",children:"可直接带入续写或 Infill"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:563,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:561,columnNumber:11},void 0),e.jsxDEV("div",{className:"ma-clips-gallery",children:X.map(i=>e.jsxDEV(ja,{clip:i,selected:l&&!!i.clipId&&o===i.clipId,onContinue:()=>q(i,"continue"),onInfill:()=>q(i,"infill")},`${i.taskId}:${i.clipId||i.audioUrl}`,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:567,columnNumber:15},void 0))},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:565,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:560,columnNumber:9},void 0),Q&&e.jsxDEV("div",{className:"ma-progress",children:Q},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:583,columnNumber:19},void 0),e.jsxDEV("div",{className:"va-page-actions",children:[e.jsxDEV("button",{onClick:v,children:"重新开始"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:586,columnNumber:9},void 0),e.jsxDEV("button",{className:"va-btn-primary",onClick:W,disabled:re,children:[Ge(d)," ",z," 次"]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:587,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:585,columnNumber:7},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:369,columnNumber:5},void 0)},ja=({clip:a,selected:n,onContinue:u,onInfill:v})=>{const c=!!String(a.clipId||"").trim();return e.jsxDEV("div",{className:`ma-clip-row ${n?"is-selected":""}`,children:[a.imageUrl?e.jsxDEV("img",{className:"ma-clip-thumb",src:a.imageUrl,alt:"",referrerPolicy:"no-referrer"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:610,columnNumber:9},void 0):e.jsxDEV("div",{className:"ma-clip-thumb ma-clip-thumb--placeholder",children:"♪"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:617,columnNumber:9},void 0),e.jsxDEV("div",{className:"ma-clip-meta",children:[e.jsxDEV("span",{className:"ma-clip-title",children:a.title||"未命名"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:620,columnNumber:9},void 0),a.duration!=null&&e.jsxDEV("span",{className:"ma-clip-duration",children:Be(a.duration)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:622,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:619,columnNumber:7},void 0),e.jsxDEV("audio",{controls:!0,src:a.audioUrl,className:"ma-clip-player",preload:"metadata"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:625,columnNumber:7},void 0),e.jsxDEV("div",{className:"ma-clip-actions",children:[e.jsxDEV("button",{className:"ma-clip-action-btn",onClick:u,disabled:!c,children:"续写"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:627,columnNumber:9},void 0),e.jsxDEV("button",{className:"ma-clip-action-btn",onClick:v,disabled:!c,children:"Infill"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:634,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:626,columnNumber:7},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:608,columnNumber:5},void 0)};function Be(a){const n=Math.floor(a/60),u=Math.round(a%60);return`${n}:${String(u).padStart(2,"0")}`}function va(a){switch(a){case ie.COMPLETED:return"已完成";case ie.PROCESSING:return"进行中";case ie.PENDING:return"等待中";case ie.FAILED:return"失败";default:return""}}function ka(a){switch(a){case ie.COMPLETED:return"completed";case ie.PROCESSING:return"processing";case ie.PENDING:return"pending";case ie.FAILED:return"failed";default:return"pending"}}function wa(a){const n=new Date(a);return`${n.getMonth()+1}/${n.getDate()} ${String(n.getHours()).padStart(2,"0")}:${String(n.getMinutes()).padStart(2,"0")}`}function za(a){var v,c,h,g;const n=a.params.musicAnalyzerAction;if(n==="rewrite"){const k=(v=a.result)!=null&&v.analysisData&&typeof a.result.analysisData=="object"?a.result.analysisData:null,N=typeof(k==null?void 0:k.title)=="string"&&k.title.trim()?k.title.trim():"";if(N)return N}if(n==="lyrics-gen"){const k=(c=a.result)!=null&&c.analysisData&&typeof a.result.analysisData=="object"?a.result.analysisData:null,N=typeof(k==null?void 0:k.title)=="string"&&k.title.trim()?k.title.trim():"";if(N)return N;const S=typeof((h=a.result)==null?void 0:h.lyricsTitle)=="string"&&a.result.lyricsTitle.trim()?a.result.lyricsTitle.trim():typeof((g=a.result)==null?void 0:g.title)=="string"&&a.result.title.trim()?a.result.title.trim():"";if(S)return S}const u=String(a.params.prompt||"");return u.length>40?`${u.slice(0,40)}…`:u}const Ea=({records:a,onSelect:n,onRecordsChange:u,showStarredOnly:v=!1,onSelectLyrics:c})=>{const h=v?a.filter(t=>t.starred):a,[g,k]=s.useState(null),[N,S]=s.useState(null),{tasks:w}=ea(),A=s.useMemo(()=>{const t=new Map,y=new Set(a.map(j=>j.id)),d=()=>({rewrite:[],lyricsGen:[],audio:[]});for(const j of w){const o=j.params;if(j.type===F.CHAT&&o.musicAnalyzerAction==="rewrite"&&typeof o.musicAnalyzerRecordId=="string"&&y.has(o.musicAnalyzerRecordId)){const f=o.musicAnalyzerRecordId;he(t,f,"rewrite",j,d);continue}if((j.type===F.AUDIO||j.type===F.CHAT)&&o.musicAnalyzerAction==="lyrics-gen"&&typeof o.musicAnalyzerRecordId=="string"&&y.has(o.musicAnalyzerRecordId)){const f=o.musicAnalyzerRecordId;he(t,f,"lyricsGen",j,d);continue}if(j.type===F.AUDIO&&typeof o.batchId=="string"&&o.batchId.startsWith("ma_")){const f=aa(o.batchId,"ma_",y);f&&he(t,f,"audio",j,d)}}return sa(t)},[w,a]),z=s.useCallback(async(t,y)=>{t.stopPropagation();const d=await se(y.id,{starred:!y.starred});u(d)},[u]),C=s.useCallback((t,y)=>{t.stopPropagation(),S(y)},[]),m=s.useCallback(async()=>{if(!N)return;const t=await ia(N);u(t),S(null)},[u,N]),P=s.useCallback((t,y)=>{t.stopPropagation(),k(d=>d===y?null:y)},[]);return h.length===0?e.jsxDEV("div",{className:"va-page va-empty",children:e.jsxDEV("span",{children:v?"暂无收藏":"暂无分析记录"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:195,columnNumber:9},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:194,columnNumber:7},void 0):e.jsxDEV(e.Fragment,{children:[e.jsxDEV("div",{className:"va-page",children:e.jsxDEV("div",{className:"va-history-list",children:h.map(t=>{var o;const y=A.get(t.id),d=!!(y&&y.rewrite.length+y.lyricsGen.length+y.audio.length>0),j=g===t.id;return e.jsxDEV("div",{className:"va-history-item",onClick:()=>n(t),children:[e.jsxDEV("div",{className:"va-history-header",children:[e.jsxDEV("span",{className:"va-history-source",children:[e.jsxDEV("span",{role:"img","aria-label":"audio",children:t.source==="scratch"?"✨":"🎵"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:215,columnNumber:19},void 0)," ",t.sourceLabel]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:214,columnNumber:17},void 0),e.jsxDEV("button",{className:`va-star-btn ${t.starred?"starred":""}`,onClick:f=>z(f,t),children:t.starred?"★":"☆"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:220,columnNumber:17},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:213,columnNumber:15},void 0),e.jsxDEV("div",{className:"va-history-meta",children:[d&&e.jsxDEV("button",{className:`va-history-expand-btn ${j?"expanded":""}`,onClick:f=>P(f,t.id),children:[e.jsxDEV(na,{size:12},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:233,columnNumber:21},void 0),e.jsxDEV("span",{children:j?"收起":"关联任务"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:234,columnNumber:21},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:229,columnNumber:19},void 0),e.jsxDEV("span",{children:new Date(t.createdAt).toLocaleString()},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:237,columnNumber:17},void 0),e.jsxDEV("span",{children:t.analysisModel||t.source},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:238,columnNumber:17},void 0),e.jsxDEV("button",{className:"va-history-delete",onClick:f=>C(f,t.id),children:"删除"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:239,columnNumber:17},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:227,columnNumber:15},void 0),e.jsxDEV("div",{className:"ma-history-title",children:t.title||"未命名歌曲"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:246,columnNumber:15},void 0),e.jsxDEV("div",{className:"ma-history-summary",children:((o=t.analysis)==null?void 0:o.summary)||t.creationPrompt||"暂无摘要"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:247,columnNumber:15},void 0),t.generatedClips&&t.generatedClips.length>0&&e.jsxDEV("div",{className:"ma-history-clips-count",children:[t.generatedClips.length," 首已生成"]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:251,columnNumber:17},void 0),j&&y&&e.jsxDEV("div",{className:"va-history-related",onClick:f=>f.stopPropagation(),children:[y.lyricsGen.length>0&&e.jsxDEV("div",{children:[e.jsxDEV("div",{className:"va-history-related-group-title",children:["歌词生成 (",y.lyricsGen.length,")"]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:259,columnNumber:23},void 0),y.lyricsGen.map(f=>e.jsxDEV(De,{task:f,onClick:()=>c==null?void 0:c(t)},f.id,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:263,columnNumber:25},void 0))]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:258,columnNumber:21},void 0),y.rewrite.length>0&&e.jsxDEV("div",{children:[e.jsxDEV("div",{className:"va-history-related-group-title",children:["歌词改写 (",y.rewrite.length,")"]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:273,columnNumber:23},void 0),y.rewrite.map(f=>e.jsxDEV(De,{task:f,onClick:()=>c==null?void 0:c(t)},f.id,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:277,columnNumber:25},void 0))]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:272,columnNumber:21},void 0),y.audio.length>0&&e.jsxDEV("div",{children:[e.jsxDEV("div",{className:"va-history-related-group-title",children:["音乐生成 (",y.audio.length,")"]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:287,columnNumber:23},void 0),y.audio.map(f=>e.jsxDEV(De,{task:f},f.id,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:291,columnNumber:25},void 0))]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:286,columnNumber:21},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:256,columnNumber:17},void 0)]},t.id,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:212,columnNumber:13},void 0)})},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:203,columnNumber:9},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:202,columnNumber:7},void 0),e.jsxDEV(ra,{open:N!==null,title:"确认删除",description:"确定要删除这条音乐分析记录吗?此操作不可撤销。",confirmText:"删除",cancelText:"取消",danger:!0,onOpenChange:t=>{t||S(null)},onConfirm:m},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:303,columnNumber:7},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:201,columnNumber:5},void 0)},De=({task:a,onClick:n})=>{var c;const u=a.status===ie.COMPLETED,v=u&&((c=a.result)==null?void 0:c.url)||"";return e.jsxDEV(ua,{content:va(a.status),showArrow:!1,children:e.jsxDEV("div",{className:"va-history-related-task",onClick:n,style:n?{cursor:"pointer"}:void 0,children:[e.jsxDEV("span",{className:`va-history-related-task-status ${ka(a.status)}`},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:332,columnNumber:9},void 0),e.jsxDEV("span",{className:"va-history-related-task-prompt",children:za(a)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:335,columnNumber:9},void 0),e.jsxDEV("span",{className:"va-history-related-task-time",children:wa(a.createdAt)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:338,columnNumber:9},void 0),u&&v&&a.type===F.AUDIO&&e.jsxDEV("audio",{controls:!0,src:v,preload:"metadata",className:"ma-related-task-audio",onClick:h=>h.stopPropagation()},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:342,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:327,columnNumber:7},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:326,columnNumber:5},void 0)},qa=()=>{const[a,n]=s.useState("create"),[u,v]=s.useState(null),[c,h]=s.useState([]),[g,k]=s.useState(!1);s.useEffect(()=>{la().then(h)},[]),s.useEffect(()=>{let m=!1;const P=new Set,t=async d=>{if(P.has(d.id))return;if(ta(d)){P.add(d.id);try{const o=await Ve(d);if(!o||m)return;h(o.records),v(f=>(f==null?void 0:f.id)===o.record.id||!f?o.record:f)}catch(o){console.error("[MusicAnalyzer] Failed to sync task result:",o)}finally{P.delete(d.id)}return}const j=ca(d);if(j){P.add(d.id);try{const o=await da(d,j);if(!o||m)return;h(o.records),v(f=>(f==null?void 0:f.id)===o.record.id?o.record:f)}catch(o){console.error("[MusicAnalyzer] Failed to sync generation task:",o)}finally{P.delete(d.id)}}};_.getAllTasks().forEach(d=>{d.status==="completed"&&t(d)});const y=_.observeTaskUpdates().subscribe(d=>{d.task.status==="completed"&&t(d.task)});return()=>{m=!0,y.unsubscribe()}},[]);const N=s.useCallback(m=>{v(m)},[]),S=s.useCallback(m=>{v(m),n("create")},[]),w=s.useCallback(m=>{v(m),n("lyrics")},[]),A=s.useCallback(m=>{v(m)},[]),z=s.useCallback(()=>{v(null),n("create")},[]),C=s.useCallback(m=>{n(m)},[]);return e.jsxDEV("div",{className:"video-analyzer music-analyzer",children:[e.jsxDEV("div",{className:"va-nav",children:a==="history"?e.jsxDEV(e.Fragment,{children:[e.jsxDEV("button",{className:"va-nav-back",onClick:()=>n("create"),children:"←"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/MusicAnalyzer.tsx",lineNumber:124,columnNumber:13},void 0),e.jsxDEV("span",{className:"va-nav-title",children:g?"收藏":"历史记录"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/MusicAnalyzer.tsx",lineNumber:127,columnNumber:13},void 0),e.jsxDEV("button",{className:`va-nav-btn ${g?"active":""}`,onClick:()=>k(m=>!m),children:g?"★ 收藏":"☆ 全部"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/MusicAnalyzer.tsx",lineNumber:128,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/MusicAnalyzer.tsx",lineNumber:123,columnNumber:11},void 0):e.jsxDEV(e.Fragment,{children:[e.jsxDEV(oa,{current:a,onNavigate:C,hasRecord:!!u},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/MusicAnalyzer.tsx",lineNumber:137,columnNumber:13},void 0),e.jsxDEV("div",{className:"va-nav-actions",children:[e.jsxDEV("button",{className:"va-nav-btn",onClick:()=>{k(!1),n("history")},children:[e.jsxDEV("span",{role:"img","aria-label":"history",children:"📋"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/MusicAnalyzer.tsx",lineNumber:146,columnNumber:17},void 0),c.length>0&&e.jsxDEV("span",{className:"va-nav-count",children:c.length},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/MusicAnalyzer.tsx",lineNumber:149,columnNumber:40},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/MusicAnalyzer.tsx",lineNumber:139,columnNumber:15},void 0),e.jsxDEV("button",{className:"va-nav-btn",onClick:()=>{k(!0),n("history")},children:[e.jsxDEV("span",{role:"img","aria-label":"starred",children:"⭐"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/MusicAnalyzer.tsx",lineNumber:158,columnNumber:17},void 0),c.filter(m=>m.starred).length>0&&e.jsxDEV("span",{className:"va-nav-count",children:c.filter(m=>m.starred).length},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/MusicAnalyzer.tsx",lineNumber:162,columnNumber:19},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/MusicAnalyzer.tsx",lineNumber:151,columnNumber:15},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/MusicAnalyzer.tsx",lineNumber:138,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/MusicAnalyzer.tsx",lineNumber:136,columnNumber:11},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/MusicAnalyzer.tsx",lineNumber:121,columnNumber:7},void 0),a==="create"&&e.jsxDEV(ya,{existingRecord:u,onComplete:N,onRecordsChange:h,onCreateNew:z,onNext:u?()=>n("lyrics"):void 0,onLyricsReady:()=>n("lyrics")},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/MusicAnalyzer.tsx",lineNumber:173,columnNumber:9},void 0),a==="lyrics"&&u&&e.jsxDEV(xa,{record:u,onRecordUpdate:A,onRecordsChange:h,onNext:()=>n("generate")},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/MusicAnalyzer.tsx",lineNumber:183,columnNumber:9},void 0),a==="generate"&&u&&e.jsxDEV(ha,{record:u,onRecordUpdate:A,onRecordsChange:h,onRestart:z},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/MusicAnalyzer.tsx",lineNumber:191,columnNumber:9},void 0),a==="history"&&e.jsxDEV(Ea,{records:c,onSelect:S,onRecordsChange:h,showStarredOnly:g,onSelectLyrics:w},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/MusicAnalyzer.tsx",lineNumber:199,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/MusicAnalyzer.tsx",lineNumber:120,columnNumber:5},void 0)};export{qa as default};
6
+ `)||c||g||a.sourceLabel;l=_.createTask({prompt:R,model:d,modelRef:o||null,sunoAction:"lyrics",musicAnalyzerAction:"lyrics-gen",musicAnalyzerRecordId:a.id,autoInsertToCanvas:!1},F.AUDIO)}else l=_.createTask({prompt:`改写歌词:${a.sourceLabel}`,model:d,modelRef:o||null,musicAnalyzerAction:"rewrite",musicAnalyzerPrompt:Oe({analysis:a.analysis,userPrompt:c,originalPrompt:$,currentLyrics:g}),musicAnalyzerRecordId:a.id,autoInsertToCanvas:!1},F.CHAT);C(l.id);const b=await se(a.id,{rewritePrompt:c,pendingRewriteTaskId:l.id});u(b),n({...a,rewritePrompt:c,pendingRewriteTaskId:l.id})}catch(l){y(l.message||"歌词改写失败"),U("")}},[g,n,u,a,c,d,o,M]);s.useEffect(()=>{if(!z)return;const l=_.getTask(z);typeof(l==null?void 0:l.progress)=="number"&&U(`歌词改写中 ${Math.round(l.progress)}%`);const b=_.observeTaskUpdates().subscribe(q=>{var R;if(q.task.id===z){if(q.task.status==="failed"){C(null),U(""),y(((R=q.task.error)==null?void 0:R.message)||"歌词改写失败"),se(a.id,{pendingRewriteTaskId:null}).then(u);return}if(q.task.status==="completed"){Ve(q.task).then(O=>{O&&(u(O.records),n(O.record),k(O.record.lyricsDraft||""),S(O.record.title||""),A((O.record.styleTags||[]).join(", ")))}).catch(O=>{y(O.message||"改写结果同步失败")}).finally(()=>{C(null),U("")});return}typeof q.task.progress=="number"&&U(`歌词改写中 ${Math.round(q.task.progress)}%`)}});return()=>b.unsubscribe()},[n,u,z,a.id]);const te=s.useCallback(async()=>{const l=await Fe("text",Ze({title:N,styleTags:w.split(",").map(b=>b.trim()).filter(Boolean),lyricsDraft:g}));if(!l.success){y(l.error||"插入失败,请确认画布已打开");return}pe.trackUIInteraction({area:"popular_music_tool",action:"lyrics_inserted_to_canvas",control:"insert_lyrics",source:"music_analyzer_lyrics_page",metadata:{lyricsLength:g.trim().length,tagsCount:w.split(",").filter(b=>b.trim()).length}})},[g,w,N]);return e.jsxDEV("div",{className:"va-page",children:[e.jsxDEV("div",{className:"ma-card",children:[e.jsxDEV("div",{className:"ma-card-header",children:[e.jsxDEV("span",{children:"歌词模型"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:311,columnNumber:11},void 0),P&&e.jsxDEV("div",{className:"ma-version-dropdown",children:[e.jsxDEV("button",{className:"ma-version-btn",onClick:()=>ee(l=>!l),children:[((I=Q.find(l=>l.id===D))==null?void 0:I.label)||"原始版本",e.jsxDEV("span",{className:"ma-version-arrow",children:B?"▲":"▼"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:320,columnNumber:17},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:315,columnNumber:15},void 0),B&&e.jsxDEV("div",{className:"ma-version-menu",children:Q.map(l=>e.jsxDEV("button",{className:`ma-version-menu-item ${l.id===D?"active":""}`,onClick:()=>ce(l.id),children:l.label},l.id,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:325,columnNumber:21},void 0))},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:323,columnNumber:17},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:314,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:310,columnNumber:9},void 0),e.jsxDEV(Ne,{selectedModel:d,selectedSelectionKey:ye(d,o),onSelect:le,models:re,variant:"form",placement:"down",placeholder:"选择歌词模型"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:338,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:309,columnNumber:7},void 0),e.jsxDEV("div",{className:"ma-card",children:[e.jsxDEV("div",{className:"ma-card-header",children:e.jsxDEV("span",{children:"改写要求"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:351,columnNumber:11},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:350,columnNumber:9},void 0),e.jsxDEV("textarea",{className:"ma-textarea",value:c,onChange:l=>h(l.target.value),rows:4,placeholder:"告诉 AI 要保留什么、强化什么、改成什么风格"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:353,columnNumber:9},void 0),e.jsxDEV("button",{className:"va-btn-primary ma-rewrite-submit",onClick:W,children:M?"Suno 生成歌词":"AI 改写"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:360,columnNumber:9},void 0),m&&e.jsxDEV("div",{className:"ma-progress",children:m},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:363,columnNumber:29},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:349,columnNumber:7},void 0),e.jsxDEV("div",{className:"ma-card",children:[e.jsxDEV("div",{className:"ma-card-header",children:e.jsxDEV("span",{children:"歌曲标题"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:368,columnNumber:11},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:367,columnNumber:9},void 0),e.jsxDEV("input",{className:"ma-input",value:N,onChange:l=>S(l.target.value),placeholder:"歌曲标题"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:370,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:366,columnNumber:7},void 0),e.jsxDEV("div",{className:"ma-card",children:[e.jsxDEV("div",{className:"ma-card-header",children:e.jsxDEV("span",{children:"Suno 风格标签"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:380,columnNumber:11},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:379,columnNumber:9},void 0),e.jsxDEV("input",{className:"ma-input",value:w,onChange:l=>A(l.target.value),placeholder:"例如 cinematic pop, female vocal, uplifting"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:382,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:378,columnNumber:7},void 0),e.jsxDEV("div",{className:"ma-card",children:[e.jsxDEV("div",{className:"ma-card-header",children:e.jsxDEV("span",{children:"歌词草稿"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:392,columnNumber:11},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:391,columnNumber:9},void 0),e.jsxDEV("textarea",{className:"ma-textarea",value:g,onChange:l=>k(l.target.value),rows:14,placeholder:"AI 改写结果会出现在这里,可继续手改"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:394,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:390,columnNumber:7},void 0),t&&e.jsxDEV("div",{className:"ma-error",children:t},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:403,columnNumber:17},void 0),e.jsxDEV("div",{className:"va-page-actions",children:[e.jsxDEV("button",{onClick:te,disabled:!g.trim(),children:"插入歌词"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:406,columnNumber:9},void 0),e.jsxDEV("button",{className:"va-btn-primary",onClick:v,disabled:!g.trim(),children:"下一步"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:409,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:405,columnNumber:7},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/LyricsPage.tsx",lineNumber:308,columnNumber:5},void 0)},ze="music-analyzer:audio-model",Ue=[{id:"generate",label:"新生成",hint:"从零生成完整音乐"},{id:"continue",label:"续写",hint:"从已有片段继续创作"},{id:"infill",label:"Infill",hint:"局部重绘指定时间窗口"}];function oe(a){const n=a.trim();if(!n)return null;const u=Number(n);return Number.isFinite(u)?u:null}function me(a){return typeof a=="number"&&Number.isFinite(a)?String(a):""}function Ee(a){return a.split(",").map(n=>n.trim()).filter(Boolean)}function Ge(a){var n;return((n=Ue.find(u=>u.id===a))==null?void 0:n.label)||"新生成"}function ha(a){return typeof a.duration=="number"&&Number.isFinite(a.duration)?String(Math.max(0,Math.round(a.duration))):""}function _e(a){const n=a.title||"未命名片段",u=a.duration!=null?` · ${Be(a.duration)}`:"",v=a.clipId?` · ${a.clipId.slice(0,8)}`:"";return`${n}${u}${v}`}const ja=({record:a,onRecordUpdate:n,onRecordsChange:u,onRestart:v})=>{var O;const[c,h]=s.useState(a.title||""),[g,k]=s.useState((a.styleTags||[]).join(", ")),[N,S]=s.useState(a.lyricsDraft||""),[w,A]=s.useState("chirp-v5-5"),[z,C]=s.useState(1),[m,U]=s.useState(()=>ue(ze,xe()).modelId),[t,y]=s.useState(()=>ue(ze,xe()).modelRef),[d,j]=s.useState(a.musicEditAction||"generate"),[o,f]=s.useState(a.continueFromClipId||""),[B,ee]=s.useState(me(a.continueAt)),[L,le]=s.useState(me(a.infillStartS)),[K,ne]=s.useState(me(a.infillEndS)),[re,M]=s.useState(!1),[Q,D]=s.useState(""),P=s.useRef(),$=s.useRef(!1),ce=s.useCallback((i,G)=>{U(i),y(G||null),ge(ze,i,G)},[]);s.useEffect(()=>{h(a.title||""),k((a.styleTags||[]).join(", ")),S(a.lyricsDraft||""),j(a.musicEditAction||"generate"),f(a.continueFromClipId||""),ee(me(a.continueAt)),le(me(a.infillStartS)),ne(me(a.infillEndS))},[a]),s.useEffect(()=>(clearTimeout(P.current),P.current=setTimeout(async()=>{const i=Ee(g),G=oe(B),E=oe(L),ae=oe(K),Y={title:c,styleTags:i,lyricsDraft:N,musicEditAction:d,continueFromClipId:o||null,continueAt:G,infillStartS:E,infillEndS:ae},J=await se(a.id,Y);u(J),n({...a,...Y})},400),()=>clearTimeout(P.current)),[d,B,o,K,L,n,u,N,a.id,g,c]);const W=fe("audio"),te=s.useMemo(()=>W.filter(i=>{const G=Array.isArray(i.tags)?i.tags.join(" "):"";return/suno/i.test(i.id)||/suno/i.test(G)}),[W]),V=s.useMemo(()=>ea(m).find(i=>i.id==="mv"),[m]);s.useEffect(()=>{V!=null&&V.defaultValue&&A(i=>i||String(V.defaultValue))},[V==null?void 0:V.defaultValue]);const X=a.generatedClips||[],H=s.useMemo(()=>X.filter(i=>!!String(i.clipId||"").trim()),[X]),I=s.useMemo(()=>H.find(i=>i.clipId===o)||null,[o,H]),l=d!=="generate",b=d==="infill",q=s.useCallback((i,G)=>{if(!i.clipId){D("该片段尚未拿到真实 clip_id,暂时不能继续创作");return}j(G),f(i.clipId),ee(E=>E||ha(i)),D(G==="continue"?`已带入片段「${i.title||i.clipId.slice(0,8)}」用于续写`:`已带入片段「${i.title||i.clipId.slice(0,8)}」用于 Infill`)},[]),R=s.useCallback(async()=>{const i=N.trim(),G=c.trim(),E=g.trim(),ae=oe(B),Y=oe(L),J=oe(K);if(!i){D("请先准备歌词或生成提示词");return}if(l&&!o){D("请先选择要续写的片段");return}if(l&&!(I!=null&&I.taskId)){D("当前片段缺少来源 task_id,请先重新同步或重新生成一次片段");return}if(l&&ae==null){D("请填写续写起点秒数");return}if(ae!=null&&ae<0){D("续写起点秒数不能小于 0");return}if(b&&Y==null){D("请填写 Infill 开始秒数");return}if(b&&J==null){D("请填写 Infill 结束秒数");return}if(Y!=null&&Y<0){D("Infill 开始秒数不能小于 0");return}if(J!=null&&J<0){D("Infill 结束秒数不能小于 0");return}if(b&&Y!=null&&J!=null&&Y>=J){D("Infill 开始秒数必须小于结束秒数");return}if(!$.current){$.current=!0,pe.trackUIInteraction({area:"popular_music_tool",action:"music_generation_started",control:"generate_music",source:"music_analyzer_generate_page",metadata:{editAction:d,batchCount:z,promptLength:i.length,hasTitle:!!G,tagsCount:Ee(E).length,hasMv:!!w,hasModelRef:!!t}}),M(!0),D("");try{const de=[],be=d==="generate"?"gen":d;for(let p=0;p<z;p+=1){const T=_.createTask({prompt:i,model:m,modelRef:t,sunoAction:"music",title:G,tags:E,mv:w,continueClipId:l?o:void 0,continueTaskId:l?I==null?void 0:I.taskId:void 0,continueAt:l?ae??void 0:void 0,infillStartS:b?Y??void 0:void 0,infillEndS:b?J??void 0:void 0,batchId:`ma_${a.id}_${be}_${p}`,batchIndex:p,batchTotal:z,autoInsertToCanvas:!0},F.AUDIO);de.push(T.id)}const r={generateTaskIds:[...a.generateTaskIds||[],...de],title:G,styleTags:Ee(E),lyricsDraft:i,musicEditAction:d,continueFromClipId:o||null,continueAt:ae,infillStartS:Y,infillEndS:J},x=await se(a.id,r);u(x),n({...a,...r}),D(`已提交 ${z} 次${Ge(d)}任务到 Suno 队列`)}catch(de){D(de.message||"提交生成任务失败")}finally{M(!1),$.current=!1}}},[d,z,B,o,K,L,w,n,u,N,a,l,b,I==null?void 0:I.taskId,m,t,g,c]);return e.jsxDEV("div",{className:"va-page",children:[e.jsxDEV("div",{className:"ma-card",children:[e.jsxDEV("div",{className:"ma-card-header",children:[e.jsxDEV("span",{children:"创作动作"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:372,columnNumber:11},void 0),e.jsxDEV("span",{className:"ma-muted",children:(O=Ue.find(i=>i.id===d))==null?void 0:O.hint},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:373,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:371,columnNumber:9},void 0),e.jsxDEV("div",{className:"ma-action-toggle",children:Ue.map(i=>e.jsxDEV("button",{className:`ma-action-btn ${d===i.id?"active":""}`,onClick:()=>j(i.id),children:i.label},i.id,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:379,columnNumber:13},void 0))},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:377,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:370,columnNumber:7},void 0),e.jsxDEV("div",{className:"ma-card",children:[e.jsxDEV("div",{className:"ma-card-header",children:e.jsxDEV("span",{children:"Suno 模型"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:392,columnNumber:11},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:391,columnNumber:9},void 0),e.jsxDEV(Ne,{selectedModel:m,selectedSelectionKey:ye(m,t),onSelect:ce,models:te.length>0?te:W,variant:"form",placement:"down",placeholder:"选择音频生成模型"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:394,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:390,columnNumber:7},void 0),(V==null?void 0:V.options)&&V.options.length>0&&e.jsxDEV("div",{className:"ma-card",children:[e.jsxDEV("div",{className:"ma-card-header",children:e.jsxDEV("span",{children:"Suno 版本"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:408,columnNumber:13},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:407,columnNumber:11},void 0),e.jsxDEV("select",{className:"ma-select",value:w,onChange:i=>A(i.target.value),children:V.options.map(i=>e.jsxDEV("option",{value:String(i.value),children:i.label},i.value,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:416,columnNumber:15},void 0))},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:410,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:406,columnNumber:9},void 0),l&&e.jsxDEV("div",{className:"ma-card",children:[e.jsxDEV("div",{className:"ma-card-header",children:[e.jsxDEV("span",{children:"目标片段"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:427,columnNumber:13},void 0),e.jsxDEV("span",{className:"ma-muted",children:"自动使用轮询得到的真实 clip_id"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:428,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:426,columnNumber:11},void 0),H.length>0?e.jsxDEV("select",{className:"ma-select",value:o,onChange:i=>f(i.target.value),children:[e.jsxDEV("option",{value:"",children:"请选择已生成片段"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:436,columnNumber:15},void 0),H.map(i=>e.jsxDEV("option",{value:i.clipId,children:_e(i)},i.clipId,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:438,columnNumber:17},void 0))]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:431,columnNumber:13},void 0):e.jsxDEV("div",{className:"ma-hint",children:"先生成至少一个片段,才能使用续写或 Infill。"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:444,columnNumber:13},void 0),I&&e.jsxDEV("div",{className:"ma-hint",children:["当前片段:",_e(I)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:447,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:425,columnNumber:9},void 0),l&&e.jsxDEV("div",{className:"ma-card",children:[e.jsxDEV("div",{className:"ma-card-header",children:e.jsxDEV("span",{children:"编辑参数"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:457,columnNumber:13},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:456,columnNumber:11},void 0),e.jsxDEV("div",{className:`ma-fields-grid ${b?"ma-fields-grid--triple":""}`,children:[e.jsxDEV("label",{className:"ma-field",children:[e.jsxDEV("span",{children:"续写起点秒数"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:461,columnNumber:15},void 0),e.jsxDEV("input",{className:"ma-input",type:"number",min:"0",step:"0.1",value:B,onChange:i=>ee(i.target.value),placeholder:"例如 30"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:462,columnNumber:15},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:460,columnNumber:13},void 0),b&&e.jsxDEV("label",{className:"ma-field",children:[e.jsxDEV("span",{children:"Infill 开始秒数"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:474,columnNumber:17},void 0),e.jsxDEV("input",{className:"ma-input",type:"number",min:"0",step:"0.1",value:L,onChange:i=>le(i.target.value),placeholder:"例如 8"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:475,columnNumber:17},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:473,columnNumber:15},void 0),b&&e.jsxDEV("label",{className:"ma-field",children:[e.jsxDEV("span",{children:"Infill 结束秒数"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:488,columnNumber:17},void 0),e.jsxDEV("input",{className:"ma-input",type:"number",min:"0",step:"0.1",value:K,onChange:i=>ne(i.target.value),placeholder:"例如 16"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:489,columnNumber:17},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:487,columnNumber:15},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:459,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:455,columnNumber:9},void 0),e.jsxDEV("div",{className:"ma-card",children:[e.jsxDEV("div",{className:"ma-card-header",children:e.jsxDEV("span",{children:"歌曲标题"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:506,columnNumber:11},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:505,columnNumber:9},void 0),e.jsxDEV("input",{className:"ma-input",value:c,onChange:i=>h(i.target.value),placeholder:"歌曲标题"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:508,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:504,columnNumber:7},void 0),e.jsxDEV("div",{className:"ma-card",children:[e.jsxDEV("div",{className:"ma-card-header",children:e.jsxDEV("span",{children:"风格标签"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:518,columnNumber:11},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:517,columnNumber:9},void 0),e.jsxDEV("input",{className:"ma-input",value:g,onChange:i=>k(i.target.value),placeholder:"逗号分隔,例如 edm, intense, female vocal"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:520,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:516,columnNumber:7},void 0),e.jsxDEV("div",{className:"ma-card",children:[e.jsxDEV("div",{className:"ma-card-header",children:e.jsxDEV("span",{children:"提交给 Suno 的歌词/提示词"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:530,columnNumber:11},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:529,columnNumber:9},void 0),e.jsxDEV("textarea",{className:"ma-textarea",rows:10,value:N,onChange:i=>S(i.target.value),placeholder:"这里的内容会直接作为 prompt 提交给 Suno"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:532,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:528,columnNumber:7},void 0),e.jsxDEV("div",{className:"ma-card",children:[e.jsxDEV("div",{className:"ma-card-header",children:[e.jsxDEV("span",{children:"调用次数"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:543,columnNumber:11},void 0),e.jsxDEV("span",{className:"ma-muted",children:"每次返回 2 首"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:544,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:542,columnNumber:9},void 0),e.jsxDEV("div",{className:"ma-batch-selector",children:[1,2,3,4].map(i=>e.jsxDEV("button",{className:`ma-batch-btn ${z===i?"active":""}`,onClick:()=>C(i),children:[i," 次"]},i,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:548,columnNumber:13},void 0))},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:546,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:541,columnNumber:7},void 0),X.length>0&&e.jsxDEV("div",{className:"ma-card",children:[e.jsxDEV("div",{className:"ma-card-header",children:[e.jsxDEV("span",{children:["已生成片段 (",X.length,")"]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:562,columnNumber:13},void 0),e.jsxDEV("span",{className:"ma-muted",children:"可直接带入续写或 Infill"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:563,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:561,columnNumber:11},void 0),e.jsxDEV("div",{className:"ma-clips-gallery",children:X.map(i=>e.jsxDEV(va,{clip:i,selected:l&&!!i.clipId&&o===i.clipId,onContinue:()=>q(i,"continue"),onInfill:()=>q(i,"infill")},`${i.taskId}:${i.clipId||i.audioUrl}`,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:567,columnNumber:15},void 0))},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:565,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:560,columnNumber:9},void 0),Q&&e.jsxDEV("div",{className:"ma-progress",children:Q},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:583,columnNumber:19},void 0),e.jsxDEV("div",{className:"va-page-actions",children:[e.jsxDEV("button",{onClick:v,children:"重新开始"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:586,columnNumber:9},void 0),e.jsxDEV("button",{className:"va-btn-primary",onClick:R,disabled:re,children:[Ge(d)," ",z," 次"]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:587,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:585,columnNumber:7},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:369,columnNumber:5},void 0)},va=({clip:a,selected:n,onContinue:u,onInfill:v})=>{const c=!!String(a.clipId||"").trim();return e.jsxDEV("div",{className:`ma-clip-row ${n?"is-selected":""}`,children:[a.imageUrl?e.jsxDEV("img",{className:"ma-clip-thumb",src:a.imageUrl,alt:"",referrerPolicy:"no-referrer"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:610,columnNumber:9},void 0):e.jsxDEV("div",{className:"ma-clip-thumb ma-clip-thumb--placeholder",children:"♪"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:617,columnNumber:9},void 0),e.jsxDEV("div",{className:"ma-clip-meta",children:[e.jsxDEV("span",{className:"ma-clip-title",children:a.title||"未命名"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:620,columnNumber:9},void 0),a.duration!=null&&e.jsxDEV("span",{className:"ma-clip-duration",children:Be(a.duration)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:622,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:619,columnNumber:7},void 0),e.jsxDEV("audio",{controls:!0,src:a.audioUrl,className:"ma-clip-player",preload:"metadata"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:625,columnNumber:7},void 0),e.jsxDEV("div",{className:"ma-clip-actions",children:[e.jsxDEV("button",{className:"ma-clip-action-btn",onClick:u,disabled:!c,children:"续写"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:627,columnNumber:9},void 0),e.jsxDEV("button",{className:"ma-clip-action-btn",onClick:v,disabled:!c,children:"Infill"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:634,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:626,columnNumber:7},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/GeneratePage.tsx",lineNumber:608,columnNumber:5},void 0)};function Be(a){const n=Math.floor(a/60),u=Math.round(a%60);return`${n}:${String(u).padStart(2,"0")}`}function ka(a){switch(a){case ie.COMPLETED:return"已完成";case ie.PROCESSING:return"进行中";case ie.PENDING:return"等待中";case ie.FAILED:return"失败";default:return""}}function wa(a){switch(a){case ie.COMPLETED:return"completed";case ie.PROCESSING:return"processing";case ie.PENDING:return"pending";case ie.FAILED:return"failed";default:return"pending"}}function za(a){const n=new Date(a);return`${n.getMonth()+1}/${n.getDate()} ${String(n.getHours()).padStart(2,"0")}:${String(n.getMinutes()).padStart(2,"0")}`}function Ea(a){var v,c,h,g;const n=a.params.musicAnalyzerAction;if(n==="rewrite"){const k=(v=a.result)!=null&&v.analysisData&&typeof a.result.analysisData=="object"?a.result.analysisData:null,N=typeof(k==null?void 0:k.title)=="string"&&k.title.trim()?k.title.trim():"";if(N)return N}if(n==="lyrics-gen"){const k=(c=a.result)!=null&&c.analysisData&&typeof a.result.analysisData=="object"?a.result.analysisData:null,N=typeof(k==null?void 0:k.title)=="string"&&k.title.trim()?k.title.trim():"";if(N)return N;const S=typeof((h=a.result)==null?void 0:h.lyricsTitle)=="string"&&a.result.lyricsTitle.trim()?a.result.lyricsTitle.trim():typeof((g=a.result)==null?void 0:g.title)=="string"&&a.result.title.trim()?a.result.title.trim():"";if(S)return S}const u=String(a.params.prompt||"");return u.length>40?`${u.slice(0,40)}…`:u}const Da=({records:a,onSelect:n,onRecordsChange:u,showStarredOnly:v=!1,onSelectLyrics:c})=>{const h=v?a.filter(t=>t.starred):a,[g,k]=s.useState(null),[N,S]=s.useState(null),{tasks:w}=aa(),A=s.useMemo(()=>{const t=new Map,y=new Set(a.map(j=>j.id)),d=()=>({rewrite:[],lyricsGen:[],audio:[]});for(const j of w){const o=j.params;if(j.type===F.CHAT&&o.musicAnalyzerAction==="rewrite"&&typeof o.musicAnalyzerRecordId=="string"&&y.has(o.musicAnalyzerRecordId)){const f=o.musicAnalyzerRecordId;he(t,f,"rewrite",j,d);continue}if((j.type===F.AUDIO||j.type===F.CHAT)&&o.musicAnalyzerAction==="lyrics-gen"&&typeof o.musicAnalyzerRecordId=="string"&&y.has(o.musicAnalyzerRecordId)){const f=o.musicAnalyzerRecordId;he(t,f,"lyricsGen",j,d);continue}if(j.type===F.AUDIO&&typeof o.batchId=="string"&&o.batchId.startsWith("ma_")){const f=sa(o.batchId,"ma_",y);f&&he(t,f,"audio",j,d)}}return ia(t)},[w,a]),z=s.useCallback(async(t,y)=>{t.stopPropagation();const d=await se(y.id,{starred:!y.starred});u(d)},[u]),C=s.useCallback((t,y)=>{t.stopPropagation(),S(y)},[]),m=s.useCallback(async()=>{if(!N)return;const t=await na(N);u(t),S(null)},[u,N]),U=s.useCallback((t,y)=>{t.stopPropagation(),k(d=>d===y?null:y)},[]);return h.length===0?e.jsxDEV("div",{className:"va-page va-empty",children:e.jsxDEV("span",{children:v?"暂无收藏":"暂无分析记录"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:195,columnNumber:9},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:194,columnNumber:7},void 0):e.jsxDEV(e.Fragment,{children:[e.jsxDEV("div",{className:"va-page",children:e.jsxDEV("div",{className:"va-history-list",children:h.map(t=>{var o;const y=A.get(t.id),d=!!(y&&y.rewrite.length+y.lyricsGen.length+y.audio.length>0),j=g===t.id;return e.jsxDEV("div",{className:"va-history-item",onClick:()=>n(t),children:[e.jsxDEV("div",{className:"va-history-header",children:[e.jsxDEV("span",{className:"va-history-source",children:[e.jsxDEV("span",{role:"img","aria-label":"audio",children:t.source==="scratch"?"✨":"🎵"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:215,columnNumber:19},void 0)," ",t.sourceLabel]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:214,columnNumber:17},void 0),e.jsxDEV("button",{className:`va-star-btn ${t.starred?"starred":""}`,onClick:f=>z(f,t),children:t.starred?"★":"☆"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:220,columnNumber:17},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:213,columnNumber:15},void 0),e.jsxDEV("div",{className:"va-history-meta",children:[d&&e.jsxDEV("button",{className:`va-history-expand-btn ${j?"expanded":""}`,onClick:f=>U(f,t.id),children:[e.jsxDEV(ra,{size:12},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:233,columnNumber:21},void 0),e.jsxDEV("span",{children:j?"收起":"关联任务"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:234,columnNumber:21},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:229,columnNumber:19},void 0),e.jsxDEV("span",{children:new Date(t.createdAt).toLocaleString()},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:237,columnNumber:17},void 0),e.jsxDEV("span",{children:t.analysisModel||t.source},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:238,columnNumber:17},void 0),e.jsxDEV("button",{className:"va-history-delete",onClick:f=>C(f,t.id),children:"删除"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:239,columnNumber:17},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:227,columnNumber:15},void 0),e.jsxDEV("div",{className:"ma-history-title",children:t.title||"未命名歌曲"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:246,columnNumber:15},void 0),e.jsxDEV("div",{className:"ma-history-summary",children:((o=t.analysis)==null?void 0:o.summary)||t.creationPrompt||"暂无摘要"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:247,columnNumber:15},void 0),t.generatedClips&&t.generatedClips.length>0&&e.jsxDEV("div",{className:"ma-history-clips-count",children:[t.generatedClips.length," 首已生成"]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:251,columnNumber:17},void 0),j&&y&&e.jsxDEV("div",{className:"va-history-related",onClick:f=>f.stopPropagation(),children:[y.lyricsGen.length>0&&e.jsxDEV("div",{children:[e.jsxDEV("div",{className:"va-history-related-group-title",children:["歌词生成 (",y.lyricsGen.length,")"]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:259,columnNumber:23},void 0),y.lyricsGen.map(f=>e.jsxDEV(De,{task:f,onClick:()=>c==null?void 0:c(t)},f.id,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:263,columnNumber:25},void 0))]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:258,columnNumber:21},void 0),y.rewrite.length>0&&e.jsxDEV("div",{children:[e.jsxDEV("div",{className:"va-history-related-group-title",children:["歌词改写 (",y.rewrite.length,")"]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:273,columnNumber:23},void 0),y.rewrite.map(f=>e.jsxDEV(De,{task:f,onClick:()=>c==null?void 0:c(t)},f.id,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:277,columnNumber:25},void 0))]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:272,columnNumber:21},void 0),y.audio.length>0&&e.jsxDEV("div",{children:[e.jsxDEV("div",{className:"va-history-related-group-title",children:["音乐生成 (",y.audio.length,")"]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:287,columnNumber:23},void 0),y.audio.map(f=>e.jsxDEV(De,{task:f},f.id,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:291,columnNumber:25},void 0))]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:286,columnNumber:21},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:256,columnNumber:17},void 0)]},t.id,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:212,columnNumber:13},void 0)})},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:203,columnNumber:9},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:202,columnNumber:7},void 0),e.jsxDEV(ua,{open:N!==null,title:"确认删除",description:"确定要删除这条音乐分析记录吗?此操作不可撤销。",confirmText:"删除",cancelText:"取消",danger:!0,onOpenChange:t=>{t||S(null)},onConfirm:m},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:303,columnNumber:7},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:201,columnNumber:5},void 0)},De=({task:a,onClick:n})=>{var c;const u=a.status===ie.COMPLETED,v=u&&((c=a.result)==null?void 0:c.url)||"";return e.jsxDEV(la,{content:ka(a.status),showArrow:!1,children:e.jsxDEV("div",{className:"va-history-related-task",onClick:n,style:n?{cursor:"pointer"}:void 0,children:[e.jsxDEV("span",{className:`va-history-related-task-status ${wa(a.status)}`},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:332,columnNumber:9},void 0),e.jsxDEV("span",{className:"va-history-related-task-prompt",children:Ea(a)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:335,columnNumber:9},void 0),e.jsxDEV("span",{className:"va-history-related-task-time",children:za(a.createdAt)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:338,columnNumber:9},void 0),u&&v&&a.type===F.AUDIO&&e.jsxDEV("audio",{controls:!0,src:v,preload:"metadata",className:"ma-related-task-audio",onClick:h=>h.stopPropagation()},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:342,columnNumber:11},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:327,columnNumber:7},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/pages/HistoryPage.tsx",lineNumber:326,columnNumber:5},void 0)},Sa=()=>{const[a,n]=s.useState("create"),[u,v]=s.useState(null),[c,h]=s.useState([]),[g,k]=s.useState(!1);s.useEffect(()=>{ta().then(h)},[]),s.useEffect(()=>{let m=!1;const U=new Set,t=async d=>{if(U.has(d.id))return;if(ca(d)){U.add(d.id);try{const o=await Ve(d);if(!o||m)return;h(o.records),v(f=>(f==null?void 0:f.id)===o.record.id||!f?o.record:f)}catch(o){console.error("[MusicAnalyzer] Failed to sync task result:",o)}finally{U.delete(d.id)}return}const j=da(d);if(j){U.add(d.id);try{const o=await oa(d,j);if(!o||m)return;h(o.records),v(f=>(f==null?void 0:f.id)===o.record.id?o.record:f)}catch(o){console.error("[MusicAnalyzer] Failed to sync generation task:",o)}finally{U.delete(d.id)}}};_.getAllTasks().forEach(d=>{d.status==="completed"&&t(d)});const y=_.observeTaskUpdates().subscribe(d=>{d.task.status==="completed"&&t(d.task)});return()=>{m=!0,y.unsubscribe()}},[]);const N=s.useCallback(m=>{v(m)},[]),S=s.useCallback(m=>{v(m),n("create")},[]),w=s.useCallback(m=>{v(m),n("lyrics")},[]),A=s.useCallback(m=>{v(m)},[]),z=s.useCallback(()=>{v(null),n("create")},[]),C=s.useCallback(m=>{n(m)},[]);return e.jsxDEV("div",{className:"video-analyzer music-analyzer",children:[e.jsxDEV("div",{className:"va-nav",children:a==="history"?e.jsxDEV(e.Fragment,{children:[e.jsxDEV("button",{className:"va-nav-back",onClick:()=>n("create"),children:"←"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/MusicAnalyzer.tsx",lineNumber:124,columnNumber:13},void 0),e.jsxDEV("span",{className:"va-nav-title",children:g?"收藏":"历史记录"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/MusicAnalyzer.tsx",lineNumber:127,columnNumber:13},void 0),e.jsxDEV("button",{className:`va-nav-btn ${g?"active":""}`,onClick:()=>k(m=>!m),children:g?"★ 收藏":"☆ 全部"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/MusicAnalyzer.tsx",lineNumber:128,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/MusicAnalyzer.tsx",lineNumber:123,columnNumber:11},void 0):e.jsxDEV(e.Fragment,{children:[e.jsxDEV(ma,{current:a,onNavigate:C,hasRecord:!!u},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/MusicAnalyzer.tsx",lineNumber:137,columnNumber:13},void 0),e.jsxDEV("div",{className:"va-nav-actions",children:[e.jsxDEV("button",{className:"va-nav-btn",onClick:()=>{k(!1),n("history")},children:[e.jsxDEV("span",{role:"img","aria-label":"history",children:"📋"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/MusicAnalyzer.tsx",lineNumber:146,columnNumber:17},void 0),c.length>0&&e.jsxDEV("span",{className:"va-nav-count",children:c.length},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/MusicAnalyzer.tsx",lineNumber:149,columnNumber:40},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/MusicAnalyzer.tsx",lineNumber:139,columnNumber:15},void 0),e.jsxDEV("button",{className:"va-nav-btn",onClick:()=>{k(!0),n("history")},children:[e.jsxDEV("span",{role:"img","aria-label":"starred",children:"⭐"},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/MusicAnalyzer.tsx",lineNumber:158,columnNumber:17},void 0),c.filter(m=>m.starred).length>0&&e.jsxDEV("span",{className:"va-nav-count",children:c.filter(m=>m.starred).length},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/MusicAnalyzer.tsx",lineNumber:162,columnNumber:19},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/MusicAnalyzer.tsx",lineNumber:151,columnNumber:15},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/MusicAnalyzer.tsx",lineNumber:138,columnNumber:13},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/MusicAnalyzer.tsx",lineNumber:136,columnNumber:11},void 0)},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/MusicAnalyzer.tsx",lineNumber:121,columnNumber:7},void 0),a==="create"&&e.jsxDEV(xa,{existingRecord:u,onComplete:N,onRecordsChange:h,onCreateNew:z,onNext:u?()=>n("lyrics"):void 0,onLyricsReady:()=>n("lyrics")},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/MusicAnalyzer.tsx",lineNumber:173,columnNumber:9},void 0),a==="lyrics"&&u&&e.jsxDEV(ba,{record:u,onRecordUpdate:A,onRecordsChange:h,onNext:()=>n("generate")},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/MusicAnalyzer.tsx",lineNumber:183,columnNumber:9},void 0),a==="generate"&&u&&e.jsxDEV(ja,{record:u,onRecordUpdate:A,onRecordsChange:h,onRestart:z},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/MusicAnalyzer.tsx",lineNumber:191,columnNumber:9},void 0),a==="history"&&e.jsxDEV(Da,{records:c,onSelect:S,onRecordsChange:h,showStarredOnly:g,onSelectLyrics:w},void 0,!1,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/MusicAnalyzer.tsx",lineNumber:199,columnNumber:9},void 0)]},void 0,!0,{fileName:"/Users/ljq/code/shuidiyu/aitu/packages/drawnix/src/components/music-analyzer/MusicAnalyzer.tsx",lineNumber:120,columnNumber:5},void 0)};export{Sa as default};
@@ -1 +1 @@
1
- import{a$ as g,b0 as C,b1 as M,b2 as D,b3 as S,b4 as R,T as I,b5 as b,b6 as h,b7 as w,b8 as G,b9 as P,ba as v,bb as B,bc as F,bd as U,be as A}from"./tool-windows-DOIu9TAD.js";function x(t){return B(t,"musicAnalyzerAction",["analyze","rewrite","lyrics-gen"])}function V(t){return F(t,{missingMessage:"分析任务缺少结果内容",fromStructured:r=>U(r)})}function $(t){const r=t.params.musicAnalyzerSourceSnapshot;return(r==null?void 0:r.type)==="upload"?r:null}function z(t){var i;const r=(i=t.result)==null?void 0:i.analysisData;return!r||typeof r!="object"||typeof r.lyricsDraft!="string"&&typeof r.title!="string"&&!Array.isArray(r.styleTags)?null:{title:String(r.title||"").trim(),styleTags:Array.isArray(r.styleTags)?r.styleTags.map(u=>String(u||"").trim()).filter(Boolean):[],lyricsDraft:String(r.lyricsDraft||"").trim()}}async function H(t){if(t.status!=="completed")return null;const r=x(t);if(!r)return null;if(r==="analyze"){const l=await g(),p=l.find(m=>m.analyzeTaskId===t.id);if(p)return{records:l,record:p};const e=V(t),n=$(t),c=String(t.params.musicAnalyzerSourceLabel||(n==null?void 0:n.fileName)||"本地音频").trim(),o={id:C(),createdAt:Date.now(),source:"upload",sourceLabel:c,sourceSnapshot:n,analysisModel:String(t.params.model||""),analysisModelRef:t.params.modelRef||null,analysis:e,styleTags:e.sunoStyleTags.length>0?e.sunoStyleTags:e.genreTags,title:e.sunoTitle||e.titleSuggestions[0]||c.replace(/\.[^.]+$/,""),lyricsDraft:e.sunoLyricsDraft||"",analyzeTaskId:t.id,starred:!1};return{records:await M(o),record:o}}if(r==="lyrics-gen"){const l=D(t,"musicAnalyzerRecordId");if(!l)return null;const e=(await g()).find(L=>L.id===l);if(!e||e.pendingLyricsGenTaskId!==t.id)return null;const n=O(t),c=(n==null?void 0:n.title)||e.title||"",o=n&&n.styleTags.length>0?n.styleTags:e.styleTags||[],d=(n==null?void 0:n.lyricsDraft)||e.lyricsDraft||"",m=n?S({...e,title:c,styleTags:o,lyricsDraft:d},R({...e,title:c,styleTags:o,lyricsDraft:d},t.type===I.CHAT?"AI 草稿":"Suno 歌词",e.creationPrompt)):{};return b(e,{title:c,styleTags:o,lyricsDraft:d,...m,pendingLyricsGenTaskId:null},A)}const i=D(t,"musicAnalyzerRecordId");if(!i)return null;const s=(await g()).find(l=>l.id===i);if(!s||s.pendingRewriteTaskId!==t.id)return null;const a=z(t)||h(w(t)),y=(s.lyricsVersions||[]).length,f=R({...s,title:a.title||s.title,styleTags:a.styleTags.length>0?a.styleTags:s.styleTags,lyricsDraft:a.lyricsDraft||s.lyricsDraft},`AI 改写 #${y+1}`,s.rewritePrompt),T=S(s,f);return b(s,{title:a.title||s.title,styleTags:a.styleTags.length>0?a.styleTags:s.styleTags,lyricsDraft:a.lyricsDraft||s.lyricsDraft,pendingRewriteTaskId:null,...T},A)}function O(t){const r=t.result;if(!r)return null;const i=z(t);if(i)return i;const u=w(t);if(u)try{return h(u)}catch{}const s=r.lyricsText||"",a=r.lyricsTitle||r.title||"",y=r.lyricsTags;if(!s&&!a)return null;const f=Array.isArray(y)?y.map(T=>String(T||"").trim()).filter(Boolean):[];return{title:String(a).trim(),styleTags:f,lyricsDraft:String(s).trim()}}function J(t){return v(t)}async function N(t,r){return P(t,r,{loadRecords:g,updateRecord:A})}function W(t){return x(t)!==null}function _(t){if(t.type!==I.AUDIO)return null;const r=t.params.batchId;return r?G(r,{prefix:"ma_"}):null}export{N as a,J as e,_ as g,W as i,H as s};
1
+ import{b1 as g,b2 as C,b3 as M,b4 as D,b5 as S,b6 as b,T as I,b7 as R,b8 as h,b9 as w,ba as G,bb as P,bc as v,bd as B,be as F,bf as U,bg as A}from"./tool-windows-BEnZdJqF.js";function x(t){return B(t,"musicAnalyzerAction",["analyze","rewrite","lyrics-gen"])}function V(t){return F(t,{missingMessage:"分析任务缺少结果内容",fromStructured:r=>U(r)})}function O(t){const r=t.params.musicAnalyzerSourceSnapshot;return(r==null?void 0:r.type)==="upload"?r:null}function z(t){var i;const r=(i=t.result)==null?void 0:i.analysisData;return!r||typeof r!="object"||typeof r.lyricsDraft!="string"&&typeof r.title!="string"&&!Array.isArray(r.styleTags)?null:{title:String(r.title||"").trim(),styleTags:Array.isArray(r.styleTags)?r.styleTags.map(u=>String(u||"").trim()).filter(Boolean):[],lyricsDraft:String(r.lyricsDraft||"").trim()}}async function H(t){if(t.status!=="completed")return null;const r=x(t);if(!r)return null;if(r==="analyze"){const l=await g(),p=l.find(m=>m.analyzeTaskId===t.id);if(p)return{records:l,record:p};const e=V(t),n=O(t),c=String(t.params.musicAnalyzerSourceLabel||(n==null?void 0:n.fileName)||"本地音频").trim(),o={id:C(),createdAt:Date.now(),source:"upload",sourceLabel:c,sourceSnapshot:n,analysisModel:String(t.params.model||""),analysisModelRef:t.params.modelRef||null,analysis:e,styleTags:e.sunoStyleTags.length>0?e.sunoStyleTags:e.genreTags,title:e.sunoTitle||e.titleSuggestions[0]||c.replace(/\.[^.]+$/,""),lyricsDraft:e.sunoLyricsDraft||"",analyzeTaskId:t.id,starred:!1};return{records:await M(o),record:o}}if(r==="lyrics-gen"){const l=D(t,"musicAnalyzerRecordId");if(!l)return null;const e=(await g()).find(L=>L.id===l);if(!e||e.pendingLyricsGenTaskId!==t.id)return null;const n=$(t),c=(n==null?void 0:n.title)||e.title||"",o=n&&n.styleTags.length>0?n.styleTags:e.styleTags||[],d=(n==null?void 0:n.lyricsDraft)||e.lyricsDraft||"",m=n?S({...e,title:c,styleTags:o,lyricsDraft:d},b({...e,title:c,styleTags:o,lyricsDraft:d},t.type===I.CHAT?"AI 草稿":"Suno 歌词",e.creationPrompt)):{};return R(e,{title:c,styleTags:o,lyricsDraft:d,...m,pendingLyricsGenTaskId:null},A)}const i=D(t,"musicAnalyzerRecordId");if(!i)return null;const s=(await g()).find(l=>l.id===i);if(!s||s.pendingRewriteTaskId!==t.id)return null;const a=z(t)||h(w(t)),y=(s.lyricsVersions||[]).length,f=b({...s,title:a.title||s.title,styleTags:a.styleTags.length>0?a.styleTags:s.styleTags,lyricsDraft:a.lyricsDraft||s.lyricsDraft},`AI 改写 #${y+1}`,s.rewritePrompt),T=S(s,f);return R(s,{title:a.title||s.title,styleTags:a.styleTags.length>0?a.styleTags:s.styleTags,lyricsDraft:a.lyricsDraft||s.lyricsDraft,pendingRewriteTaskId:null,...T},A)}function $(t){const r=t.result;if(!r)return null;const i=z(t);if(i)return i;const u=w(t);if(u)try{return h(u)}catch{}const s=r.lyricsText||"",a=r.lyricsTitle||r.title||"",y=r.lyricsTags;if(!s&&!a)return null;const f=Array.isArray(y)?y.map(T=>String(T||"").trim()).filter(Boolean):[];return{title:String(a).trim(),styleTags:f,lyricsDraft:String(s).trim()}}function J(t){return v(t)}async function N(t,r){return P(t,r,{loadRecords:g,updateRecord:A})}function W(t){return x(t)!==null}function _(t){if(t.type!==I.AUDIO)return null;const r=t.params.batchId;return r?G(r,{prefix:"ma_"}):null}export{N as a,J as e,_ as g,W as i,H as s};