chainlesschain 0.161.2 → 0.161.4

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 (224) hide show
  1. package/package.json +6 -6
  2. package/src/assets/web-panel/.build-hash +1 -1
  3. package/src/assets/web-panel/assets/AIOps-K85peDCg.js +1 -0
  4. package/src/assets/web-panel/assets/{ActionButton-BvMi4awy.js → ActionButton-DoRABhmk.js} +1 -1
  5. package/src/assets/web-panel/assets/{Analytics-hRk2ziup.js → Analytics-B7p7X_lS.js} +2 -2
  6. package/src/assets/web-panel/assets/AppLayout-BQb9-BUE.js +1 -0
  7. package/src/assets/web-panel/assets/AppLayout-P7jhSfLy.css +1 -0
  8. package/src/assets/web-panel/assets/Audit-CHj8w38X.js +1 -0
  9. package/src/assets/web-panel/assets/Backup-BsgPajcJ.js +1 -0
  10. package/src/assets/web-panel/assets/BaseInput-kGeksnCj.js +1 -0
  11. package/src/assets/web-panel/assets/Chat-2e3EGiwk.js +7 -0
  12. package/src/assets/web-panel/assets/Chat-D4oAhi11.css +1 -0
  13. package/src/assets/web-panel/assets/{Checkbox-C9dkWb-7.js → Checkbox-DirndeMM.js} +1 -1
  14. package/src/assets/web-panel/assets/Codegen-UQuEF6rH.js +1 -0
  15. package/src/assets/web-panel/assets/{Col-JyQOivHb.js → Col-myVf7h0M.js} +1 -1
  16. package/src/assets/web-panel/assets/Community-C3Gt4JNP.js +1 -0
  17. package/src/assets/web-panel/assets/Compact-B4TJcIuz.js +1 -0
  18. package/src/assets/web-panel/assets/Compliance-DKye9lMe.js +1 -0
  19. package/src/assets/web-panel/assets/{Cowork-V-tDxtrt.js → Cowork-bD9Z8K9J.js} +3 -3
  20. package/src/assets/web-panel/assets/{Cron-YgEeQvdV.js → Cron-BrQZ3zwQ.js} +2 -2
  21. package/src/assets/web-panel/assets/Crosschain-C7m4dIrR.js +1 -0
  22. package/src/assets/web-panel/assets/{DID-swdBCdMZ.js → DID-CGniRypj.js} +2 -2
  23. package/src/assets/web-panel/assets/Dashboard-BqQfrJLe.js +3 -0
  24. package/src/assets/web-panel/assets/{Dropdown-mlITwb7d.js → Dropdown-Csici42Z.js} +1 -1
  25. package/src/assets/web-panel/assets/Federation-D2boc2WU.js +1 -0
  26. package/src/assets/web-panel/assets/{FormItemContext-BYmWDwAT.js → FormItemContext-BpXHcM06.js} +1 -1
  27. package/src/assets/web-panel/assets/{Git-Du1k1iHz.js → Git-C7QHt3Hy.js} +2 -2
  28. package/src/assets/web-panel/assets/Governance-DPBJNo9u.js +1 -0
  29. package/src/assets/web-panel/assets/Inference-Ca8VokDu.js +1 -0
  30. package/src/assets/web-panel/assets/KnowledgeGraph-CrFGz4u2.js +1 -0
  31. package/src/assets/web-panel/assets/{Logs-CElvIBBJ.js → Logs-DMhNTvH6.js} +2 -2
  32. package/src/assets/web-panel/assets/Marketplace-DB0lVRRk.js +1 -0
  33. package/src/assets/web-panel/assets/{McpTools-BpHkrlka.js → McpTools-BmFQp5wQ.js} +3 -3
  34. package/src/assets/web-panel/assets/{Memory-DeU9ys_m.js → Memory-DDooyF2l.js} +2 -2
  35. package/src/assets/web-panel/assets/Mtc-Ci6BDiRi.js +6 -0
  36. package/src/assets/web-panel/assets/Mtc-DHwbdUqA.css +1 -0
  37. package/src/assets/web-panel/assets/MtcAudit-B0x8gahq.css +1 -0
  38. package/src/assets/web-panel/assets/MtcAudit-J-DgVOwR.js +19 -0
  39. package/src/assets/web-panel/assets/NLProgramming-Uv0jicWQ.js +1 -0
  40. package/src/assets/web-panel/assets/Notes-BHauapxR.css +1 -0
  41. package/src/assets/web-panel/assets/Notes-SGtdMwfH.js +7 -0
  42. package/src/assets/web-panel/assets/NotificationSettings-Cg4yXikq.js +1 -0
  43. package/src/assets/web-panel/assets/NotificationSettings-Co0e0uEO.css +1 -0
  44. package/src/assets/web-panel/assets/{Organization-B_SHESSc.js → Organization-Bij8W2mU.js} +4 -4
  45. package/src/assets/web-panel/assets/{Overflow-R2SOGT0l.js → Overflow-DNGM4vCD.js} +1 -1
  46. package/src/assets/web-panel/assets/{OverrideContext-Nubhv68k.js → OverrideContext-DSwW21YS.js} +1 -1
  47. package/src/assets/web-panel/assets/{P2P-IYYy3cEd.js → P2P-9DlPC_rr.js} +2 -2
  48. package/src/assets/web-panel/assets/{Permissions-CR1N42yW.js → Permissions-BVJwnBDW.js} +3 -3
  49. package/src/assets/web-panel/assets/Pipeline-lWCcdQ9k.js +1 -0
  50. package/src/assets/web-panel/assets/Privacy-BN60IEMG.js +1 -0
  51. package/src/assets/web-panel/assets/{ProjectSettings-CEDhpgbs.js → ProjectSettings-GJoyBlLy.js} +2 -2
  52. package/src/assets/web-panel/assets/{Projects-DABi6ylb.js → Projects-Dvs_UqGv.js} +2 -2
  53. package/src/assets/web-panel/assets/{Providers-HzrcE8ma.js → Providers-A5KukRrJ.js} +2 -2
  54. package/src/assets/web-panel/assets/QuickAsk-D4K2pIHJ.js +1 -0
  55. package/src/assets/web-panel/assets/Recommend-DQKR520B.js +1 -0
  56. package/src/assets/web-panel/assets/Reputation-BVntfhQV.js +1 -0
  57. package/src/assets/web-panel/assets/Row-Do4ULXpm.js +1 -0
  58. package/src/assets/web-panel/assets/RssFeed-FAHzJo-E.js +3 -0
  59. package/src/assets/web-panel/assets/Search-DsOTkKd1.js +1 -0
  60. package/src/assets/web-panel/assets/{Security-DdW4hu_4.js → Security-hglxmoVZ.js} +3 -3
  61. package/src/assets/web-panel/assets/{Services-CnzEzGFN.js → Services-C6Rv4i8z.js} +2 -2
  62. package/src/assets/web-panel/assets/{Skeleton-D6RevdW2.js → Skeleton-D-dXFspp.js} +2 -2
  63. package/src/assets/web-panel/assets/Skills-D6sVDuOT.js +1 -0
  64. package/src/assets/web-panel/assets/Sla-8O-JYjQq.js +1 -0
  65. package/src/assets/web-panel/assets/SpeechSettings-DSOYsk6R.js +1 -0
  66. package/src/assets/web-panel/assets/SyncSettings-C5nhT_6b.js +1 -0
  67. package/src/assets/web-panel/assets/SyncSettings-C6cDrwDR.css +1 -0
  68. package/src/assets/web-panel/assets/Tasks-NrpJCUFD.js +1 -0
  69. package/src/assets/web-panel/assets/Templates-Ca2HO-Ff.js +1 -0
  70. package/src/assets/web-panel/assets/Tenant-BWXC1pLX.js +1 -0
  71. package/src/assets/web-panel/assets/Tokens-DUtMwWxZ.js +1 -0
  72. package/src/assets/web-panel/assets/{Trigger-DkSZjOlY.js → Trigger-TyynxipZ.js} +1 -1
  73. package/src/assets/web-panel/assets/Trust-b4KDouFb.js +1 -0
  74. package/src/assets/web-panel/assets/UkeySign-CJpVhu8c.js +1 -0
  75. package/src/assets/web-panel/assets/VideoEditing-Bpn0V8T2.js +1 -0
  76. package/src/assets/web-panel/assets/{Wallet-DHbi5dHt.js → Wallet-CzBLjCnl.js} +4 -4
  77. package/src/assets/web-panel/assets/{WebAuthn-BkGDI33-.js → WebAuthn-HnRCEu5Q.js} +5 -5
  78. package/src/assets/web-panel/assets/WorkflowEditor-CMWDod4n.js +1 -0
  79. package/src/assets/web-panel/assets/{_getTag-CWA3v-Ds.js → _getTag-BVc6NQ_K.js} +1 -1
  80. package/src/assets/web-panel/assets/chat-D7QE42qx.js +1 -0
  81. package/src/assets/web-panel/assets/{collapseMotion-BIjDVXtT.js → collapseMotion-6-_FbiKl.js} +1 -1
  82. package/src/assets/web-panel/assets/{colors-D2tTvuDI.js → colors-BO5nQJrH.js} +1 -1
  83. package/src/assets/web-panel/assets/{compact-item-CqCEUZiy.js → compact-item-By0t_ZDX.js} +1 -1
  84. package/src/assets/web-panel/assets/{createContext-C6HFlAQP.js → createContext-CHZw2WQy.js} +1 -1
  85. package/src/assets/web-panel/assets/{debounce-Q0BOJsYd.js → debounce-D9xTw4Sx.js} +1 -1
  86. package/src/assets/web-panel/assets/{echarts-DmBLM6YO.js → echarts-BrEnqXDv.js} +1 -1
  87. package/src/assets/web-panel/assets/{hasIn-yp2CbhYc.js → hasIn-CHScXGSD.js} +1 -1
  88. package/src/assets/web-panel/assets/icons-B2G69bhT.js +57 -0
  89. package/src/assets/web-panel/assets/index-B-VML4Pz.js +1 -0
  90. package/src/assets/web-panel/assets/index-B6FaCH6K.js +55 -0
  91. package/src/assets/web-panel/assets/index-BCoEssNV.js +1 -0
  92. package/src/assets/web-panel/assets/index-BFMpMM1y.js +21 -0
  93. package/src/assets/web-panel/assets/index-BIoymtmG.js +1 -0
  94. package/src/assets/web-panel/assets/{index-B2qFUwGb.js → index-BVL4FbJ3.js} +2 -2
  95. package/src/assets/web-panel/assets/{index-B0jkl2Zb.js → index-BXXqtwrw.js} +1 -1
  96. package/src/assets/web-panel/assets/{index-Cpfx7-LN.js → index-BY-BnqWj.js} +2 -2
  97. package/src/assets/web-panel/assets/{index-DnehXcB-.js → index-Bbf4Smm-.js} +1 -1
  98. package/src/assets/web-panel/assets/{index-w1xShUDf.js → index-BdOG1g8i.js} +1 -1
  99. package/src/assets/web-panel/assets/{index-DlgMVieO.js → index-BgAPyeU5.js} +1 -1
  100. package/src/assets/web-panel/assets/index-Bn_0bupT.js +69 -0
  101. package/src/assets/web-panel/assets/index-BnaKc6VJ.js +1 -0
  102. package/src/assets/web-panel/assets/index-BqMhh2pY.js +1 -0
  103. package/src/assets/web-panel/assets/{index-CucxAdwN.js → index-BuzilAPw.js} +2 -2
  104. package/src/assets/web-panel/assets/{index-BTL2yIvT.js → index-By3TOq5w.js} +1 -1
  105. package/src/assets/web-panel/assets/index-C1ssAFdz.js +1 -0
  106. package/src/assets/web-panel/assets/{index-DEKuiAPQ.js → index-CAPiTJT4.js} +2 -2
  107. package/src/assets/web-panel/assets/{index-BlVnFOFL.js → index-CCOGrBpN.js} +1 -1
  108. package/src/assets/web-panel/assets/{index-JszcDpsT.js → index-COVlQxSz.js} +2 -2
  109. package/src/assets/web-panel/assets/{index-Dj4P0iWm.js → index-CYCwDDoS.js} +1 -1
  110. package/src/assets/web-panel/assets/{index-D34iabcS.js → index-C_EIwaP7.js} +8 -8
  111. package/src/assets/web-panel/assets/{index-CXf0zL5i.js → index-CfZqQ0JR.js} +3 -3
  112. package/src/assets/web-panel/assets/{index-CcwZodUl.js → index-CpHzrw8g.js} +1 -1
  113. package/src/assets/web-panel/assets/index-CszhN_r3.js +1 -0
  114. package/src/assets/web-panel/assets/index-Czk89HQF.js +1 -0
  115. package/src/assets/web-panel/assets/{index-BxSsO6Sm.js → index-D3WrGn-J.js} +2 -2
  116. package/src/assets/web-panel/assets/index-DS0o68gc.js +3 -0
  117. package/src/assets/web-panel/assets/{index-NNymVAza.js → index-DZ4t_1f-.js} +2 -2
  118. package/src/assets/web-panel/assets/{index-B8Qxu0q2.js → index-D_QlAaj5.js} +1 -1
  119. package/src/assets/web-panel/assets/index-DgWJBqLh.js +13 -0
  120. package/src/assets/web-panel/assets/{index-CFoFkVUt.js → index-DiHryOr_.js} +4 -4
  121. package/src/assets/web-panel/assets/index-DqPwMq7i.js +1 -0
  122. package/src/assets/web-panel/assets/{index-Blq49aTW.js → index-Qm6Kn3iq.js} +1 -1
  123. package/src/assets/web-panel/assets/index-U1O0AXXH.js +1 -0
  124. package/src/assets/web-panel/assets/index-jRQNL6Yj.js +12 -0
  125. package/src/assets/web-panel/assets/index-sgVQrC2c.js +1 -0
  126. package/src/assets/web-panel/assets/{index-CrEEL63u.js → index-yLdzB8i-.js} +1 -1
  127. package/src/assets/web-panel/assets/{initDefaultProps-DfdVxwz6.js → initDefaultProps-CMFUJGsa.js} +1 -1
  128. package/src/assets/web-panel/assets/{isPlainObject-DSTnI585.js → isPlainObject-_gz-soRW.js} +1 -1
  129. package/src/assets/web-panel/assets/isSymbol-DAy2hlR5.js +1 -0
  130. package/src/assets/web-panel/assets/{motion-CL0bdvJg.js → motion-CTtMugIF.js} +2 -2
  131. package/src/assets/web-panel/assets/{move-Bo9Fgzv7.js → move-DHjaLqhq.js} +1 -1
  132. package/src/assets/web-panel/assets/mtc-parser-Cc3pB9Xm.js +1 -0
  133. package/src/assets/web-panel/assets/{omit-C-cc6wHr.js → omit-COm0v71g.js} +1 -1
  134. package/src/assets/web-panel/assets/operationUnit-vCu2co3e.js +1 -0
  135. package/src/assets/web-panel/assets/{pickAttrs-CjLp5RN-.js → pickAttrs-C3Ftf-sl.js} +1 -1
  136. package/src/assets/web-panel/assets/{placementArrow-CJa8gsqa.js → placementArrow-IJhTwCmF.js} +1 -1
  137. package/src/assets/web-panel/assets/{responsiveObserve-CcDj3P-p.js → responsiveObserve-Cmu2mrKT.js} +1 -1
  138. package/src/assets/web-panel/assets/{slide-CpvbHO26.js → slide-CnWCDeu_.js} +1 -1
  139. package/src/assets/web-panel/assets/{statusUtils-BK69kP1U.js → statusUtils-CSOJeZ-L.js} +1 -1
  140. package/src/assets/web-panel/assets/{styleChecker-CDvBRzsG.js → styleChecker-94VBD7Xs.js} +1 -1
  141. package/src/assets/web-panel/assets/useFlexGapSupport-CBjbWuc9.js +1 -0
  142. package/src/assets/web-panel/assets/useFs-DfXp51Mk.js +1 -0
  143. package/src/assets/web-panel/assets/{useMergedState-TP9VIF2K.js → useMergedState-n0f81Aew.js} +1 -1
  144. package/src/assets/web-panel/assets/{useRefs-BhIz_lC3.js → useRefs-CTh0C9xI.js} +1 -1
  145. package/src/assets/web-panel/assets/{useState-CpKsyozn.js → useState-4T1Ntfpx.js} +1 -1
  146. package/src/assets/web-panel/assets/{vendor-B6ToihkA.js → vendor-Ci2pTZ_t.js} +1 -1
  147. package/src/assets/web-panel/assets/{vnode-Bzp-FsbB.js → vnode-CGY3YRLi.js} +1 -1
  148. package/src/assets/web-panel/assets/{zoom-BHqpWXJV.js → zoom-CZllDiMO.js} +1 -1
  149. package/src/assets/web-panel/index.html +3 -3
  150. package/src/commands/mtc.js +2 -0
  151. package/src/gateways/ws/chat-intent-protocol.js +192 -0
  152. package/src/gateways/ws/message-dispatcher.js +6 -0
  153. package/src/gateways/ws/ws-server.js +20 -0
  154. package/src/lib/chat-intent-service.js +530 -0
  155. package/src/lib/config-manager.js +3 -1
  156. package/src/lib/governance-v2-helpers.js +1 -1
  157. package/src/lib/sync-manager.js +119 -25
  158. package/src/assets/web-panel/assets/AIOps-CoZ9bIqF.js +0 -1
  159. package/src/assets/web-panel/assets/AppLayout-CtGprHSx.css +0 -1
  160. package/src/assets/web-panel/assets/AppLayout-_JR3Gko8.js +0 -1
  161. package/src/assets/web-panel/assets/Audit-D8WmaHdX.js +0 -1
  162. package/src/assets/web-panel/assets/Backup-CogYVeiE.js +0 -1
  163. package/src/assets/web-panel/assets/BaseInput-NAp5_OPY.js +0 -1
  164. package/src/assets/web-panel/assets/Chat-ByiYUboW.css +0 -1
  165. package/src/assets/web-panel/assets/Chat-DkQnhjfk.js +0 -2
  166. package/src/assets/web-panel/assets/Codegen-BHyJ3j-p.js +0 -1
  167. package/src/assets/web-panel/assets/Community-UMq5QuBA.js +0 -1
  168. package/src/assets/web-panel/assets/Compact-DGlwooBJ.js +0 -1
  169. package/src/assets/web-panel/assets/Compliance-2rWGO55k.js +0 -1
  170. package/src/assets/web-panel/assets/Crosschain-Cgd5cRKn.js +0 -1
  171. package/src/assets/web-panel/assets/Dashboard-ClnWtxsT.js +0 -3
  172. package/src/assets/web-panel/assets/Federation-DtUN3wQa.js +0 -1
  173. package/src/assets/web-panel/assets/Governance-B2TFaWsf.js +0 -1
  174. package/src/assets/web-panel/assets/Inference-Cm_hmXla.js +0 -1
  175. package/src/assets/web-panel/assets/KnowledgeGraph-DLaLMo4r.js +0 -1
  176. package/src/assets/web-panel/assets/Marketplace-BlR3RCDV.js +0 -1
  177. package/src/assets/web-panel/assets/Mtc-CCJZpnJo.js +0 -6
  178. package/src/assets/web-panel/assets/Mtc-Cc8OJxe_.css +0 -1
  179. package/src/assets/web-panel/assets/NLProgramming-B_Tie6j1.js +0 -1
  180. package/src/assets/web-panel/assets/Notes-BcpuirPj.js +0 -7
  181. package/src/assets/web-panel/assets/Notes-DKkPfXlY.css +0 -1
  182. package/src/assets/web-panel/assets/Pipeline-nwFpKsU_.js +0 -1
  183. package/src/assets/web-panel/assets/Privacy-BGpz72PX.js +0 -1
  184. package/src/assets/web-panel/assets/QuickAsk-6FgX9DC6.js +0 -1
  185. package/src/assets/web-panel/assets/Recommend-BPhQwye7.js +0 -1
  186. package/src/assets/web-panel/assets/Reputation-BL6hTN1s.js +0 -1
  187. package/src/assets/web-panel/assets/Row-2akLU3YS.js +0 -1
  188. package/src/assets/web-panel/assets/RssFeed-D6qNq6Ht.js +0 -3
  189. package/src/assets/web-panel/assets/Search-R_b-u9oL.js +0 -1
  190. package/src/assets/web-panel/assets/Skills-DD5ReHH7.js +0 -1
  191. package/src/assets/web-panel/assets/Sla-CaQOOsjD.js +0 -1
  192. package/src/assets/web-panel/assets/SpeechSettings-D-pGIn9Z.js +0 -1
  193. package/src/assets/web-panel/assets/Tasks-BbdO_i4Q.js +0 -1
  194. package/src/assets/web-panel/assets/Templates-CupAugDn.js +0 -1
  195. package/src/assets/web-panel/assets/Tenant-rseAzHcY.js +0 -1
  196. package/src/assets/web-panel/assets/Tokens-DXMokNbR.js +0 -1
  197. package/src/assets/web-panel/assets/Trust-CKb7QDH1.js +0 -1
  198. package/src/assets/web-panel/assets/UkeySign-Cux8_Ib_.js +0 -1
  199. package/src/assets/web-panel/assets/VideoEditing-CSOjdBZg.js +0 -1
  200. package/src/assets/web-panel/assets/WorkflowEditor-BFZ3RYva.js +0 -1
  201. package/src/assets/web-panel/assets/chat-BQ-Nk2XY.js +0 -1
  202. package/src/assets/web-panel/assets/icons-DvZE-RKs.js +0 -57
  203. package/src/assets/web-panel/assets/index-4cn1LmJ9.js +0 -1
  204. package/src/assets/web-panel/assets/index-B74gWYqD.js +0 -1
  205. package/src/assets/web-panel/assets/index-B9b_mz4I.js +0 -55
  206. package/src/assets/web-panel/assets/index-BAA1SFp1.js +0 -1
  207. package/src/assets/web-panel/assets/index-BJeE7n_I.js +0 -12
  208. package/src/assets/web-panel/assets/index-BJoK7MkB.js +0 -13
  209. package/src/assets/web-panel/assets/index-CA3g3EpL.js +0 -1
  210. package/src/assets/web-panel/assets/index-CWhXxdyo.js +0 -1
  211. package/src/assets/web-panel/assets/index-Cd6m6ynF.js +0 -1
  212. package/src/assets/web-panel/assets/index-Cfy9l115.js +0 -1
  213. package/src/assets/web-panel/assets/index-CijiVpfO.js +0 -1
  214. package/src/assets/web-panel/assets/index-CvuBD5TK.js +0 -3
  215. package/src/assets/web-panel/assets/index-Cw4v7ezB.js +0 -65
  216. package/src/assets/web-panel/assets/index-DjeNNVwu.js +0 -1
  217. package/src/assets/web-panel/assets/index-KdFFI-p3.js +0 -1
  218. package/src/assets/web-panel/assets/index-aw2DwKj-.js +0 -21
  219. package/src/assets/web-panel/assets/index-nzDx0JAR.js +0 -1
  220. package/src/assets/web-panel/assets/isSymbol-CsP9Ob42.js +0 -1
  221. package/src/assets/web-panel/assets/mtc-parser-pGMSt10g.js +0 -1
  222. package/src/assets/web-panel/assets/useFlexGapSupport-CRN_hzJt.js +0 -1
  223. package/src/assets/web-panel/assets/useFs-BD-YRwbU.js +0 -1
  224. package/src/assets/web-panel/assets/ws-D_5-FRIb.js +0 -1
@@ -0,0 +1,69 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./AppLayout-BQb9-BUE.js","./vendor-Ci2pTZ_t.js","./useShellMode-CgR0wCYM.js","./icons-B2G69bhT.js","./index-Qm6Kn3iq.js","./KeyCode-D63Tfrq7.js","./omit-COm0v71g.js","./pickAttrs-C3Ftf-sl.js","./initDefaultProps-CMFUJGsa.js","./motion-CTtMugIF.js","./raf-Deuc0E8-.js","./index-B-VML4Pz.js","./index-CpHzrw8g.js","./isVisible-C7tPsqfj.js","./useState-4T1Ntfpx.js","./devWarning-CNIS3FrJ.js","./warning-Pq00owYb.js","./compact-item-By0t_ZDX.js","./createContext-CHZw2WQy.js","./Compact-B4TJcIuz.js","./_getTag-BVc6NQ_K.js","./styleChecker-94VBD7Xs.js","./zoom-CZllDiMO.js","./ActionButton-DoRABhmk.js","./vnode-CGY3YRLi.js","./AppLayout-P7jhSfLy.css","./Dashboard-BqQfrJLe.js","./chat-D7QE42qx.js","./community-parser-CO25nZFt.js","./Dashboard-MFDcsVcM.css","./Chat-2e3EGiwk.js","./markdown-vYH_ziAO.js","./markdown-xjUYbPSW.js","./markdown-Dfs9RUU9.css","./Chat-D4oAhi11.css","./QuickAsk-D4K2pIHJ.js","./UkeySign-CJpVhu8c.js","./Cowork-bD9Z8K9J.js","./Cowork-DsOst4XK.css","./Services-C6Rv4i8z.js","./Services-C8Qs6KXv.css","./Logs-DMhNTvH6.js","./Logs-Gf_Mv9Nx.css","./Skills-D6sVDuOT.js","./parsers-DftYMnlk.js","./Skills-BdjRyorN.css","./Providers-A5KukRrJ.js","./Providers-BEakqcO5.css","./McpTools-BmFQp5wQ.js","./McpTools-CDjHmzxH.css","./ProjectSettings-GJoyBlLy.js","./ProjectSettings-pLSae-wy.css","./SpeechSettings-DSOYsk6R.js","./SpeechSettings-DYPJTDKz.css","./SyncSettings-C5nhT_6b.js","./SyncSettings-C6cDrwDR.css","./NotificationSettings-Cg4yXikq.js","./NotificationSettings-Co0e0uEO.css","./Notes-SGtdMwfH.js","./useFs-DfXp51Mk.js","./Notes-BHauapxR.css","./Memory-DDooyF2l.js","./Memory-Bcc2hxOA.css","./KnowledgeGraph-CrFGz4u2.js","./echarts-BrEnqXDv.js","./KnowledgeGraph-CztPDA96.css","./Cron-BrQZ3zwQ.js","./WorkflowEditor-CMWDod4n.js","./WorkflowEditor-IiwsD8Kh.css","./Tasks-NrpJCUFD.js","./Tasks-BJjN_YEm.css","./Security-hglxmoVZ.js","./Security-13K57V_v.css","./DID-CGniRypj.js","./mtc-parser-Cc3pB9Xm.js","./DID-BX6k3jZi.css","./Permissions-BVJwnBDW.js","./Permissions-C9WlkGl-.css","./P2P-9DlPC_rr.js","./P2P-Cx88UaiD.css","./Git-C7QHt3Hy.js","./Git-DPuaGtg7.css","./Projects-Dvs_UqGv.js","./Projects-B5IgXt-x.css","./Wallet-CzBLjCnl.js","./Wallet-gR0ZvZbK.css","./Organization-Bij8W2mU.js","./Organization-BX-cIO8M.css","./Analytics-B7p7X_lS.js","./Analytics-C1-TXmTC.css","./Templates-Ca2HO-Ff.js","./Templates-BWTV8-2E.css","./Backup-BsgPajcJ.js","./Backup-CY9QozR7.css","./RssFeed-FAHzJo-E.js","./RssFeed-BlFC20eg.css","./WebAuthn-HnRCEu5Q.js","./WebAuthn-SSh5VhVO.css","./Community-C3Gt4JNP.js","./Community-C2RejeOY.css","./Governance-DPBJNo9u.js","./Governance-BoipmXaM.css","./Audit-CHj8w38X.js","./Audit-6ZMsXmrO.css","./Reputation-BVntfhQV.js","./Reputation-D6VPNEd0.css","./Recommend-DQKR520B.js","./Recommend-CH6wKzGo.css","./Sla-8O-JYjQq.js","./Sla-K19oOyQc.css","./Codegen-UQuEF6rH.js","./Codegen-BLP7id2a.css","./Search-DsOTkKd1.js","./Search-B6RalzTB.css","./Tokens-DUtMwWxZ.js","./Tokens-BBOdNRHQ.css","./Trust-b4KDouFb.js","./Trust-DeOo0xAh.css","./Federation-D2boc2WU.js","./Federation-CgmfLbx1.css","./Marketplace-DB0lVRRk.js","./Marketplace-Djp5q9dS.css","./Crosschain-C7m4dIrR.js","./Crosschain-C7Le4Pte.css","./AIOps-K85peDCg.js","./AIOps-Cchx1iXI.css","./Compliance-DKye9lMe.js","./Compliance-DOys4Ov1.css","./Privacy-BN60IEMG.js","./Privacy-CrsfSFKd.css","./Inference-Ca8VokDu.js","./Inference-BWxYJF9-.css","./NLProgramming-Uv0jicWQ.js","./NLProgramming-CLOvy-35.css","./Tenant-BWXC1pLX.js","./Tenant-D3zkSAV0.css","./Pipeline-lWCcdQ9k.js","./Pipeline-DxkXqrH2.css","./VideoEditing-Bpn0V8T2.js","./VideoEditing-DksiizfS.css","./Mtc-Ci6BDiRi.js","./Mtc-DHwbdUqA.css","./MtcAudit-J-DgVOwR.js","./index-BY-BnqWj.js","./FormItemContext-BpXHcM06.js","./statusUtils-CSOJeZ-L.js","./BaseInput-kGeksnCj.js","./index-Bbf4Smm-.js","./isPlainObject-_gz-soRW.js","./index-BdOG1g8i.js","./ResizeObserver.es-D6qJbdzf.js","./operationUnit-vCu2co3e.js","./index-BnaKc6VJ.js","./Trigger-TyynxipZ.js","./placementArrow-IJhTwCmF.js","./firstNotUndefined-CLFzEa0p.js","./colors-BO5nQJrH.js","./useMergedState-n0f81Aew.js","./index-CAPiTJT4.js","./index-DS0o68gc.js","./index-CfZqQ0JR.js","./_arrayIncludes-B8uzE354.js","./injectionKey-BXVc-oGP.js","./Overflow-DNGM4vCD.js","./collapseMotion-6-_FbiKl.js","./slide-CnWCDeu_.js","./OverrideContext-DSwW21YS.js","./Dropdown-Csici42Z.js","./useRefs-CTh0C9xI.js","./hasIn-CHScXGSD.js","./isSymbol-DAy2hlR5.js","./isMobile--2fOlCHx.js","./index-By3TOq5w.js","./Row-Do4ULXpm.js","./responsiveObserve-Cmu2mrKT.js","./useFlexGapSupport-CBjbWuc9.js","./index-yLdzB8i-.js","./debounce-D9xTw4Sx.js","./Col-myVf7h0M.js","./index-CCOGrBpN.js","./index-D_QlAaj5.js","./index-C_EIwaP7.js","./Skeleton-D-dXFspp.js","./index-Czk89HQF.js","./index-CszhN_r3.js","./index-BIoymtmG.js","./index-C1ssAFdz.js","./index-BFMpMM1y.js","./index-DiHryOr_.js","./move-DHjaLqhq.js","./index-DgWJBqLh.js","./MtcAudit-B0x8gahq.css","./index-U1O0AXXH.js","./isNumeric-DjvBa-1E.js","./index-COVlQxSz.js","./Checkbox-DirndeMM.js","./index-BqMhh2pY.js","./index-BuzilAPw.js","./index-BXXqtwrw.js","./index-D3WrGn-J.js","./index-CYCwDDoS.js","./index-DqPwMq7i.js","./index-DZ4t_1f-.js","./index-BVL4FbJ3.js","./index-BCoEssNV.js","./index-sgVQrC2c.js","./index-jRQNL6Yj.js","./index-BgAPyeU5.js","./index-B6FaCH6K.js"])))=>i.map(i=>d[i]);
2
+ import{F as rt,k as Gt,C as $l,T as jn,i as $e,f as F,p as ot,r as ve,u as Qe,d as pe,s as Ie,g as Nt,w as Se,b as Ba,e as Bl,l as Hl,c as R,h as qt,m as Ao,o as ya,q as jl,n as Ul,v as wo,a as ca,x as Un,y as Oo,z as Vl,A as gr,B as Wl,D as zl,E as Do,G as Gl,j as ql,H as Yl,I as Fo,J as Kl,K as mt,L as bn,M as Xl,N as je,O as hr,P as on,Q as Ro,R as Jl,S as Ql,U as Zl,V as es,W as ts,X as as}from"./vendor-Ci2pTZ_t.js";import{T as ue,g as Mt,L as Vn,E as Ha,C as ja,a as Ua,I as Va,b as Wn,c as ns,d as rs,e as os,f as is,R as ls}from"./icons-B2G69bhT.js";(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const r of document.querySelectorAll('link[rel="modulepreload"]'))n(r);new MutationObserver(r=>{for(const o of r)if(o.type==="childList")for(const i of o.addedNodes)i.tagName==="LINK"&&i.rel==="modulepreload"&&n(i)}).observe(document,{childList:!0,subtree:!0});function a(r){const o={};return r.integrity&&(o.integrity=r.integrity),r.referrerPolicy&&(o.referrerPolicy=r.referrerPolicy),r.crossOrigin==="use-credentials"?o.credentials="include":r.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function n(r){if(r.ep)return;r.ep=!0;const o=a(r);fetch(r.href,o)}})();function da(e){"@babel/helpers - typeof";return da=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},da(e)}function ss(e,t){if(da(e)!="object"||!e)return e;var a=e[Symbol.toPrimitive];if(a!==void 0){var n=a.call(e,t);if(da(n)!="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function cs(e){var t=ss(e,"string");return da(t)=="symbol"?t:t+""}function ds(e,t,a){return(t=cs(t))in e?Object.defineProperty(e,t,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[t]=a,e}function br(e,t){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(r){return Object.getOwnPropertyDescriptor(e,r).enumerable})),a.push.apply(a,n)}return a}function be(e){for(var t=1;t<arguments.length;t++){var a=arguments[t]!=null?arguments[t]:{};t%2?br(Object(a),!0).forEach(function(n){ds(e,n,a[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):br(Object(a)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(a,n))})}return e}function T(){return T=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)({}).hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e},T.apply(null,arguments)}const us=e=>typeof e=="function",ms=Array.isArray,ps=e=>typeof e=="string",fs=e=>e!==null&&typeof e=="object",gs=/^on[^a-z]/,hs=e=>gs.test(e),zn=e=>{const t=Object.create(null);return a=>t[a]||(t[a]=e(a))},bs=/-(\w)/g,xo=zn(e=>e.replace(bs,(t,a)=>a?a.toUpperCase():"")),ys=/\B([A-Z])/g,vs=zn(e=>e.replace(ys,"-$1").toLowerCase()),zg=zn(e=>e.charAt(0).toUpperCase()+e.slice(1)),_s=Object.prototype.hasOwnProperty,yr=(e,t)=>_s.call(e,t);function Cs(e,t,a,n){const r=e[a];if(r!=null){const o=yr(r,"default");if(o&&n===void 0){const i=r.default;n=r.type!==Function&&us(i)?i():i}r.type===Boolean&&(!yr(t,a)&&!o?n=!1:n===""&&(n=!0))}return n}function Gg(e){return Object.keys(e).reduce((t,a)=>((a.startsWith("data-")||a.startsWith("aria-"))&&(t[a]=e[a]),t),{})}function qg(e){return typeof e=="number"?`${e}px`:e}function At(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},a=arguments.length>2?arguments[2]:void 0;return typeof e=="function"?e(t):e??a}function ks(e){let t;const a=new Promise(r=>{t=e(()=>{r(!0)})}),n=()=>{t?.()};return n.then=(r,o)=>a.then(r,o),n.promise=a,n}function Pe(){const e=[];for(let t=0;t<arguments.length;t++){const a=t<0||arguments.length<=t?void 0:arguments[t];if(a){if(ps(a))e.push(a);else if(ms(a))for(let n=0;n<a.length;n++){const r=Pe(a[n]);r&&e.push(r)}else if(fs(a))for(const n in a)a[n]&&e.push(n)}}return e.join(" ")}const Ss=e=>e!=null&&e!=="",Ps=e=>{const t=Object.keys(e),a={},n={},r={};for(let o=0,i=t.length;o<i;o++){const l=t[o];hs(l)?(a[l[2].toLowerCase()+l.slice(3)]=e[l],n[l]=e[l]):r[l]=e[l]}return{onEvents:n,events:a,extraAttrs:r}},Ls=function(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"",t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;const a={},n=/;(?![^(]*\))/g,r=/:(.+)/;return typeof e=="object"?e:(e.split(n).forEach(function(o){if(o){const i=o.split(r);if(i.length>1){const l=t?xo(i[0].trim()):i[0].trim();a[l]=i[1].trim()}}}),a)},Yg=(e,t)=>e[t]!==void 0,Ts=Symbol("skipFlatten"),Dt=function(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;const a=Array.isArray(e)?e:[e],n=[];return a.forEach(r=>{Array.isArray(r)?n.push(...Dt(r,t)):r&&r.type===rt?r.key===Ts?n.push(r):n.push(...Dt(r.children,t)):r&&Gt(r)?t&&!No(r)?n.push(r):t||n.push(r):Ss(r)&&n.push(r)}),n},Kg=function(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"default",a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};if(Gt(e))return e.type===rt?t==="default"?Dt(e.children):[]:e.children&&e.children[t]?Dt(e.children[t](a)):[];{const n=e.$slots[t]&&e.$slots[t](a);return Dt(n)}},Xg=e=>{var t;let a=((t=e?.vnode)===null||t===void 0?void 0:t.el)||e&&(e.$el||e);for(;a&&!a.tagName;)a=a.nextSibling;return a},Jg=e=>{const t={};if(e.$&&e.$.vnode){const a=e.$.vnode.props||{};Object.keys(e.$props).forEach(n=>{const r=e.$props[n],o=vs(n);(r!==void 0||o in a)&&(t[n]=r)})}else if(Gt(e)&&typeof e.type=="object"){const a=e.props||{},n={};Object.keys(a).forEach(o=>{n[xo(o)]=a[o]});const r=e.type.props||{};Object.keys(r).forEach(o=>{const i=Cs(r,n,o,n[o]);(i!==void 0||o in n)&&(t[o]=i)})}return t},Qg=function(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"default",a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:e,n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!0,r;if(e.$){const o=e[t];if(o!==void 0)return typeof o=="function"&&n?o(a):o;r=e.$slots[t],r=n&&r?r(a):r}else if(Gt(e)){const o=e.props&&e.props[t];if(o!==void 0&&e.props!==null)return typeof o=="function"&&n?o(a):o;e.type===rt?r=e.children:e.children&&e.children[t]&&(r=e.children[t],r=n&&r?r(a):r)}return Array.isArray(r)&&(r=Dt(r),r=r.length===1?r[0]:r,r=r.length===0?void 0:r),r};function Zg(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,a={};return e.$?a=T(T({},a),e.$attrs):a=T(T({},a),e.props),Ps(a)[t?"onEvents":"events"]}function eh(e){const a=((Gt(e)?e.props:e.$attrs)||{}).class||{};let n={};return typeof a=="string"?a.split(" ").forEach(r=>{n[r.trim()]=!0}):Array.isArray(a)?Pe(a).split(" ").forEach(r=>{n[r.trim()]=!0}):n=T(T({},n),a),n}function th(e,t){let n=((Gt(e)?e.props:e.$attrs)||{}).style||{};return typeof n=="string"&&(n=Ls(n,t)),n}function ah(e){return e.length===1&&e[0].type===rt}function No(e){return e&&(e.type===$l||e.type===rt&&e.children.length===0||e.type===jn&&e.children.trim()==="")}function nh(e){return e&&e.type===jn}function Gn(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[];const t=[];return e.forEach(a=>{Array.isArray(a)?t.push(...a):a?.type===rt?t.push(...Gn(a.children)):t.push(a)}),t.filter(a=>!No(a))}function rh(e){if(e){const t=Gn(e);return t.length?t:void 0}else return e}function oh(e){return Array.isArray(e)&&e.length===1&&(e=e[0]),e&&e.__v_isVNode&&typeof e.type!="symbol"}function ih(e,t){let a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"default";var n,r;return(n=t[a])!==null&&n!==void 0?n:(r=e[a])===null||r===void 0?void 0:r.call(e)}const Es=function(){for(var e=arguments.length,t=new Array(e),a=0;a<e;a++)t[a]=arguments[a];return t},lh=function(){for(var e=arguments.length,t=new Array(e),a=0;a<e;a++)t[a]=arguments[a];return t},qn=e=>{const t=e;return t.install=function(a){a.component(t.displayName||t.name,e)},e};function sh(){return{type:[Function,Array]}}function Ee(e){return{type:Object,default:e}}function ln(e){return{type:Boolean,default:e}}function ch(e){return{type:Function,default:e}}function yn(e,t){return{validator:()=>!0,default:e}}function dh(){return{validator:()=>!0}}function vr(e){return{type:Array,default:e}}function _r(e){return{type:String,default:e}}function Is(e,t){return e?{type:e,default:t}:yn(t)}const Wa="anticon",Mo=Symbol("GlobalFormContextKey"),As=e=>{ot(Mo,e)},uh=()=>$e(Mo,{validateMessages:F(()=>{})}),ws=()=>({iconPrefixCls:String,getTargetContainer:{type:Function},getPopupContainer:{type:Function},prefixCls:String,getPrefixCls:{type:Function},renderEmpty:{type:Function},transformCellText:{type:Function},csp:Ee(),input:Ee(),autoInsertSpaceInButton:{type:Boolean,default:void 0},locale:Ee(),pageHeader:Ee(),componentSize:{type:String},componentDisabled:{type:Boolean,default:void 0},direction:{type:String,default:"ltr"},space:Ee(),virtual:{type:Boolean,default:void 0},dropdownMatchSelectWidth:{type:[Number,Boolean],default:!0},form:Ee(),pagination:Ee(),theme:Ee(),select:Ee(),wave:Ee()}),Yn=Symbol("configProvider"),$o={getPrefixCls:(e,t)=>t||(e?`ant-${e}`:"ant"),iconPrefixCls:F(()=>Wa),getPopupContainer:F(()=>()=>document.body),direction:F(()=>"ltr")},Bo=()=>$e(Yn,$o),Os=e=>ot(Yn,e),Ho=Symbol("DisabledContextKey"),jo=()=>$e(Ho,ve(void 0)),Ds=e=>{const t=jo();return ot(Ho,F(()=>{var a;return(a=e.value)!==null&&a!==void 0?a:t.value})),e},Fs={items_per_page:"/ page",jump_to:"Go to",jump_to_confirm:"confirm",page:"",prev_page:"Previous Page",next_page:"Next Page",prev_5:"Previous 5 Pages",next_5:"Next 5 Pages",prev_3:"Previous 3 Pages",next_3:"Next 3 Pages"},Rs={locale:"en_US",today:"Today",now:"Now",backToToday:"Back to today",ok:"Ok",clear:"Clear",month:"Month",year:"Year",timeSelect:"select time",dateSelect:"select date",weekSelect:"Choose a week",monthSelect:"Choose a month",yearSelect:"Choose a year",decadeSelect:"Choose a decade",yearFormat:"YYYY",dateFormat:"M/D/YYYY",dayFormat:"D",dateTimeFormat:"M/D/YYYY HH:mm:ss",monthBeforeYear:!0,previousMonth:"Previous month (PageUp)",nextMonth:"Next month (PageDown)",previousYear:"Last year (Control + left)",nextYear:"Next year (Control + right)",previousDecade:"Last decade",nextDecade:"Next decade",previousCentury:"Last century",nextCentury:"Next century"},Uo={placeholder:"Select time",rangePlaceholder:["Start time","End time"]},Cr={lang:T({placeholder:"Select date",yearPlaceholder:"Select year",quarterPlaceholder:"Select quarter",monthPlaceholder:"Select month",weekPlaceholder:"Select week",rangePlaceholder:["Start date","End date"],rangeYearPlaceholder:["Start year","End year"],rangeQuarterPlaceholder:["Start quarter","End quarter"],rangeMonthPlaceholder:["Start month","End month"],rangeWeekPlaceholder:["Start week","End week"]},Rs),timePickerLocale:T({},Uo)},Le="${label} is not a valid ${type}",yt={locale:"en",Pagination:Fs,DatePicker:Cr,TimePicker:Uo,Calendar:Cr,global:{placeholder:"Please select"},Table:{filterTitle:"Filter menu",filterConfirm:"OK",filterReset:"Reset",filterEmptyText:"No filters",filterCheckall:"Select all items",filterSearchPlaceholder:"Search in filters",emptyText:"No data",selectAll:"Select current page",selectInvert:"Invert current page",selectNone:"Clear all data",selectionAll:"Select all data",sortTitle:"Sort",expand:"Expand row",collapse:"Collapse row",triggerDesc:"Click to sort descending",triggerAsc:"Click to sort ascending",cancelSort:"Click to cancel sorting"},Tour:{Next:"Next",Previous:"Previous",Finish:"Finish"},Modal:{okText:"OK",cancelText:"Cancel",justOkText:"OK"},Popconfirm:{okText:"OK",cancelText:"Cancel"},Transfer:{titles:["",""],searchPlaceholder:"Search here",itemUnit:"item",itemsUnit:"items",remove:"Remove",selectCurrent:"Select current page",removeCurrent:"Remove current page",selectAll:"Select all data",removeAll:"Remove all data",selectInvert:"Invert current page"},Upload:{uploading:"Uploading...",removeFile:"Remove file",uploadError:"Upload error",previewFile:"Preview file",downloadFile:"Download file"},Empty:{description:"No data"},Icon:{icon:"icon"},Text:{edit:"Edit",copy:"Copy",copied:"Copied",expand:"Expand"},PageHeader:{back:"Back"},Form:{optional:"(optional)",defaultValidateMessages:{default:"Field validation error for ${label}",required:"Please enter ${label}",enum:"${label} must be one of [${enum}]",whitespace:"${label} cannot be a blank character",date:{format:"${label} date format is invalid",parse:"${label} cannot be converted to a date",invalid:"${label} is an invalid date"},types:{string:Le,method:Le,array:Le,object:Le,number:Le,date:Le,boolean:Le,integer:Le,float:Le,regexp:Le,email:Le,url:Le,hex:Le},string:{len:"${label} must be ${len} characters",min:"${label} must be at least ${min} characters",max:"${label} must be up to ${max} characters",range:"${label} must be between ${min}-${max} characters"},number:{len:"${label} must be equal to ${len}",min:"${label} must be minimum ${min}",max:"${label} must be maximum ${max}",range:"${label} must be between ${min}-${max}"},array:{len:"Must be ${len} ${label}",min:"At least ${min} ${label}",max:"At most ${max} ${label}",range:"The amount of ${label} must be between ${min}-${max}"},pattern:{mismatch:"${label} does not match the pattern ${pattern}"}}},Image:{preview:"Preview"},QRCode:{expired:"QR code expired",refresh:"Refresh",scanned:"Scanned"}},Vo=pe({compatConfig:{MODE:3},name:"LocaleReceiver",props:{componentName:String,defaultLocale:{type:[Object,Function]},children:{type:Function}},setup(e,t){let{slots:a}=t;const n=$e("localeData",{}),r=F(()=>{const{componentName:i="global",defaultLocale:l}=e,s=l||yt[i||"global"],{antLocale:c}=n,u=i&&c?c[i]:{};return T(T({},typeof s=="function"?s():s),u||{})}),o=F(()=>{const{antLocale:i}=n,l=i&&i.locale;return i&&i.exist&&!l?yt.locale:l});return()=>{const i=e.children||a.default,{antLocale:l}=n;return i?.(r.value,o.value,l)}}});function mh(e,t,a){const n=$e("localeData",{});return[F(()=>{const{antLocale:o}=n,i=Qe(t)||yt[e||"global"],l=e&&o?o[e]:{};return T(T(T({},typeof i=="function"?i():i),l||{}),Qe(a)||{})})]}function Kn(e){for(var t=0,a,n=0,r=e.length;r>=4;++n,r-=4)a=e.charCodeAt(n)&255|(e.charCodeAt(++n)&255)<<8|(e.charCodeAt(++n)&255)<<16|(e.charCodeAt(++n)&255)<<24,a=(a&65535)*1540483477+((a>>>16)*59797<<16),a^=a>>>24,t=(a&65535)*1540483477+((a>>>16)*59797<<16)^(t&65535)*1540483477+((t>>>16)*59797<<16);switch(r){case 3:t^=(e.charCodeAt(n+2)&255)<<16;case 2:t^=(e.charCodeAt(n+1)&255)<<8;case 1:t^=e.charCodeAt(n)&255,t=(t&65535)*1540483477+((t>>>16)*59797<<16)}return t^=t>>>13,t=(t&65535)*1540483477+((t>>>16)*59797<<16),((t^t>>>15)>>>0).toString(36)}const kr="%";class xs{constructor(t){this.cache=new Map,this.instanceId=t}get(t){return this.cache.get(Array.isArray(t)?t.join(kr):t)||null}update(t,a){const n=Array.isArray(t)?t.join(kr):t,r=this.cache.get(n),o=a(r);o===null?this.cache.delete(n):this.cache.set(n,o)}}const Wo="data-token-hash",gt="data-css-hash",wt="__cssinjs_instance__";function ua(){const e=Math.random().toString(12).slice(2);if(typeof document<"u"&&document.head&&document.body){const t=document.body.querySelectorAll(`style[${gt}]`)||[],{firstChild:a}=document.head;Array.from(t).forEach(r=>{r[wt]=r[wt]||e,r[wt]===e&&document.head.insertBefore(r,a)});const n={};Array.from(document.querySelectorAll(`style[${gt}]`)).forEach(r=>{var o;const i=r.getAttribute(gt);n[i]?r[wt]===e&&((o=r.parentNode)===null||o===void 0||o.removeChild(r)):n[i]=!0})}return new xs(e)}const zo=Symbol("StyleContextKey"),Ns=()=>{var e,t,a;const n=Nt();let r;if(n&&n.appContext){const o=(a=(t=(e=n.appContext)===null||e===void 0?void 0:e.config)===null||t===void 0?void 0:t.globalProperties)===null||a===void 0?void 0:a.__ANTDV_CSSINJS_CACHE__;o?r=o:(r=ua(),n.appContext.config.globalProperties&&(n.appContext.config.globalProperties.__ANTDV_CSSINJS_CACHE__=r))}else r=ua();return r},Go={cache:ua(),defaultCache:!0,hashPriority:"low"},za=()=>{const e=Ns();return $e(zo,Ie(T(T({},Go),{cache:e})))},Ms=e=>{const t=za(),a=Ie(T(T({},Go),{cache:ua()}));return Se([()=>Qe(e),t],()=>{const n=T({},t.value),r=Qe(e);Object.keys(r).forEach(i=>{const l=r[i];r[i]!==void 0&&(n[i]=l)});const{cache:o}=r;n.cache=n.cache||ua(),n.defaultCache=!o&&t.value.defaultCache,a.value=n},{immediate:!0}),ot(zo,a),a},$s=()=>({autoClear:ln(),mock:_r(),cache:Ee(),defaultCache:ln(),hashPriority:_r(),container:Is(),ssrInline:ln(),transformers:vr(),linters:vr()});qn(pe({name:"AStyleProvider",inheritAttrs:!1,props:$s(),setup(e,t){let{slots:a}=t;return Ms(e),()=>{var n;return(n=a.default)===null||n===void 0?void 0:n.call(a)}}}));function qo(e,t,a,n){const r=za(),o=Ie(""),i=Ie();Ba(()=>{o.value=[e,...t.value].join("%")});const l=s=>{r.value.cache.update(s,c=>{const[u=0,d]=c||[];return u-1===0?(n?.(d,!1),null):[u-1,d]})};return Se(o,(s,c)=>{c&&l(c),r.value.cache.update(s,u=>{const[d=0,m]=u||[],C=m||a();return[d+1,C]}),i.value=r.value.cache.get(o.value)[1]},{immediate:!0}),Bl(()=>{l(o.value)}),i}function Yt(){return!!(typeof window<"u"&&window.document&&window.document.createElement)}function Bs(e,t){return e&&e.contains?e.contains(t):!1}const Sr="data-vc-order",Hs="vc-util-key",vn=new Map;function Yo(){let{mark:e}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return e?e.startsWith("data-")?e:`data-${e}`:Hs}function Ga(e){return e.attachTo?e.attachTo:document.querySelector("head")||document.body}function js(e){return e==="queue"?"prependQueue":e?"prepend":"append"}function Ko(e){return Array.from((vn.get(e)||e).children).filter(t=>t.tagName==="STYLE")}function Xo(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(!Yt())return null;const{csp:a,prepend:n}=t,r=document.createElement("style");r.setAttribute(Sr,js(n)),a?.nonce&&(r.nonce=a?.nonce),r.innerHTML=e;const o=Ga(t),{firstChild:i}=o;if(n){if(n==="queue"){const l=Ko(o).filter(s=>["prepend","prependQueue"].includes(s.getAttribute(Sr)));if(l.length)return o.insertBefore(r,l[l.length-1].nextSibling),r}o.insertBefore(r,i)}else o.appendChild(r);return r}function Jo(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const a=Ga(t);return Ko(a).find(n=>n.getAttribute(Yo(t))===e)}function Qo(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const a=Jo(e,t);a&&Ga(t).removeChild(a)}function Us(e,t){const a=vn.get(e);if(!a||!Bs(document,a)){const n=Xo("",t),{parentNode:r}=n;vn.set(e,r),e.removeChild(n)}}function Fa(e,t){let a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};var n,r,o;const i=Ga(a);Us(i,a);const l=Jo(t,a);if(l)return!((n=a.csp)===null||n===void 0)&&n.nonce&&l.nonce!==((r=a.csp)===null||r===void 0?void 0:r.nonce)&&(l.nonce=(o=a.csp)===null||o===void 0?void 0:o.nonce),l.innerHTML!==e&&(l.innerHTML=e),l;const s=Xo(e,a);return s.setAttribute(Yo(a),t),s}function Vs(e,t){if(e.length!==t.length)return!1;for(let a=0;a<e.length;a++)if(e[a]!==t[a])return!1;return!0}class $t{constructor(){this.cache=new Map,this.keys=[],this.cacheCallTimes=0}size(){return this.keys.length}internalGet(t){let a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1,n={map:this.cache};return t.forEach(r=>{var o;n?n=(o=n?.map)===null||o===void 0?void 0:o.get(r):n=void 0}),n?.value&&a&&(n.value[1]=this.cacheCallTimes++),n?.value}get(t){var a;return(a=this.internalGet(t,!0))===null||a===void 0?void 0:a[0]}has(t){return!!this.internalGet(t)}set(t,a){if(!this.has(t)){if(this.size()+1>$t.MAX_CACHE_SIZE+$t.MAX_CACHE_OFFSET){const[r]=this.keys.reduce((o,i)=>{const[,l]=o;return this.internalGet(i)[1]<l?[i,this.internalGet(i)[1]]:o},[this.keys[0],this.cacheCallTimes]);this.delete(r)}this.keys.push(t)}let n=this.cache;t.forEach((r,o)=>{if(o===t.length-1)n.set(r,{value:[a,this.cacheCallTimes++]});else{const i=n.get(r);i?i.map||(i.map=new Map):n.set(r,{map:new Map}),n=n.get(r).map}})}deleteByPath(t,a){var n;const r=t.get(a[0]);if(a.length===1)return r.map?t.set(a[0],{map:r.map}):t.delete(a[0]),(n=r.value)===null||n===void 0?void 0:n[0];const o=this.deleteByPath(r.map,a.slice(1));return(!r.map||r.map.size===0)&&!r.value&&t.delete(a[0]),o}delete(t){if(this.has(t))return this.keys=this.keys.filter(a=>!Vs(a,t)),this.deleteByPath(this.cache,t)}}$t.MAX_CACHE_SIZE=20;$t.MAX_CACHE_OFFSET=5;function Ws(){}let Zo=Ws,Pr=0;class ei{constructor(t){this.derivatives=Array.isArray(t)?t:[t],this.id=Pr,t.length===0&&Zo(t.length>0),Pr+=1}getDerivativeToken(t){return this.derivatives.reduce((a,n)=>n(t,a),void 0)}}const sn=new $t;function ti(e){const t=Array.isArray(e)?e:[e];return sn.has(t)||sn.set(t,new ei(t)),sn.get(t)}const Lr=new WeakMap;function Ra(e){let t=Lr.get(e)||"";return t||(Object.keys(e).forEach(a=>{const n=e[a];t+=a,n instanceof ei?t+=n.id:n&&typeof n=="object"?t+=Ra(n):t+=n}),Lr.set(e,t)),t}function zs(e,t){return Kn(`${t}_${Ra(e)}`)}const sa=`random-${Date.now()}-${Math.random()}`.replace(/\./g,""),ai="_bAmBoO_";function Gs(e,t,a){var n,r;if(Yt()){Fa(e,sa);const o=document.createElement("div");o.style.position="fixed",o.style.left="0",o.style.top="0",t?.(o),document.body.appendChild(o);const i=a?a(o):(n=getComputedStyle(o).content)===null||n===void 0?void 0:n.includes(ai);return(r=o.parentNode)===null||r===void 0||r.removeChild(o),Qo(sa),i}return!1}let cn;function qs(){return cn===void 0&&(cn=Gs(`@layer ${sa} { .${sa} { content: "${ai}"!important; } }`,e=>{e.className=sa})),cn}const Tr={},Ys="css",pt=new Map;function Ks(e){pt.set(e,(pt.get(e)||0)+1)}function Xs(e,t){typeof document<"u"&&document.querySelectorAll(`style[${Wo}="${e}"]`).forEach(n=>{var r;n[wt]===t&&((r=n.parentNode)===null||r===void 0||r.removeChild(n))})}const Js=0;function Qs(e,t){pt.set(e,(pt.get(e)||0)-1);const a=Array.from(pt.keys()),n=a.filter(r=>(pt.get(r)||0)<=0);a.length-n.length>Js&&n.forEach(r=>{Xs(r,t),pt.delete(r)})}const Zs=(e,t,a,n)=>{const r=a.getDerivativeToken(e);let o=T(T({},r),t);return n&&(o=n(o)),o};function ec(e,t){let a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:ve({});const n=za(),r=F(()=>T({},...t.value)),o=F(()=>Ra(r.value)),i=F(()=>Ra(a.value.override||Tr));return qo("token",F(()=>[a.value.salt||"",e.value.id,o.value,i.value]),()=>{const{salt:s="",override:c=Tr,formatToken:u,getComputedToken:d}=a.value,m=d?d(r.value,c,e.value):Zs(r.value,c,e.value,u),h=zs(m,s);m._tokenKey=h,Ks(h);const C=`${Ys}-${Kn(h)}`;return m._hashId=C,[m,C]},s=>{var c;Qs(s[0]._tokenKey,(c=n.value)===null||c===void 0?void 0:c.cache.instanceId)})}var tc={animationIterationCount:1,aspectRatio:1,borderImageOutset:1,borderImageSlice:1,borderImageWidth:1,boxFlex:1,boxFlexGroup:1,boxOrdinalGroup:1,columnCount:1,columns:1,flex:1,flexGrow:1,flexPositive:1,flexShrink:1,flexNegative:1,flexOrder:1,gridRow:1,gridRowEnd:1,gridRowSpan:1,gridRowStart:1,gridColumn:1,gridColumnEnd:1,gridColumnSpan:1,gridColumnStart:1,msGridRow:1,msGridRowSpan:1,msGridColumn:1,msGridColumnSpan:1,fontWeight:1,lineHeight:1,opacity:1,order:1,orphans:1,tabSize:1,widows:1,zIndex:1,zoom:1,WebkitLineClamp:1,fillOpacity:1,floodOpacity:1,stopOpacity:1,strokeDasharray:1,strokeDashoffset:1,strokeMiterlimit:1,strokeOpacity:1,strokeWidth:1},ni="comm",ri="rule",oi="decl",ac="@import",nc="@namespace",rc="@keyframes",oc="@layer",ii=Math.abs,Xn=String.fromCharCode;function li(e){return e.trim()}function Ta(e,t,a){return e.replace(t,a)}function ic(e,t,a){return e.indexOf(t,a)}function Ft(e,t){return e.charCodeAt(t)|0}function Bt(e,t,a){return e.slice(t,a)}function Ue(e){return e.length}function lc(e){return e.length}function Ca(e,t){return t.push(e),e}var qa=1,Ht=1,si=0,Fe=0,ce=0,Kt="";function Jn(e,t,a,n,r,o,i,l){return{value:e,root:t,parent:a,type:n,props:r,children:o,line:qa,column:Ht,length:i,return:"",siblings:l}}function sc(){return ce}function cc(){return ce=Fe>0?Ft(Kt,--Fe):0,Ht--,ce===10&&(Ht=1,qa--),ce}function Me(){return ce=Fe<si?Ft(Kt,Fe++):0,Ht++,ce===10&&(Ht=1,qa++),ce}function at(){return Ft(Kt,Fe)}function Ea(){return Fe}function Ya(e,t){return Bt(Kt,e,t)}function ma(e){switch(e){case 0:case 9:case 10:case 13:case 32:return 5;case 33:case 43:case 44:case 47:case 62:case 64:case 126:case 59:case 123:case 125:return 4;case 58:return 3;case 34:case 39:case 40:case 91:return 2;case 41:case 93:return 1}return 0}function dc(e){return qa=Ht=1,si=Ue(Kt=e),Fe=0,[]}function uc(e){return Kt="",e}function dn(e){return li(Ya(Fe-1,_n(e===91?e+2:e===40?e+1:e)))}function mc(e){for(;(ce=at())&&ce<33;)Me();return ma(e)>2||ma(ce)>3?"":" "}function pc(e,t){for(;--t&&Me()&&!(ce<48||ce>102||ce>57&&ce<65||ce>70&&ce<97););return Ya(e,Ea()+(t<6&&at()==32&&Me()==32))}function _n(e){for(;Me();)switch(ce){case e:return Fe;case 34:case 39:e!==34&&e!==39&&_n(ce);break;case 40:e===41&&_n(e);break;case 92:Me();break}return Fe}function fc(e,t){for(;Me()&&e+ce!==57;)if(e+ce===84&&at()===47)break;return"/*"+Ya(t,Fe-1)+"*"+Xn(e===47?e:Me())}function gc(e){for(;!ma(at());)Me();return Ya(e,Fe)}function hc(e){return uc(Ia("",null,null,null,[""],e=dc(e),0,[0],e))}function Ia(e,t,a,n,r,o,i,l,s){for(var c=0,u=0,d=i,m=0,h=0,C=0,v=1,P=1,S=1,A=0,b="",y=r,_=o,k=n,f=b;P;)switch(C=A,A=Me()){case 40:if(C!=108&&Ft(f,d-1)==58){ic(f+=Ta(dn(A),"&","&\f"),"&\f",ii(c?l[c-1]:0))!=-1&&(S=-1);break}case 34:case 39:case 91:f+=dn(A);break;case 9:case 10:case 13:case 32:f+=mc(C);break;case 92:f+=pc(Ea()-1,7);continue;case 47:switch(at()){case 42:case 47:Ca(bc(fc(Me(),Ea()),t,a,s),s),(ma(C||1)==5||ma(at()||1)==5)&&Ue(f)&&Bt(f,-1,void 0)!==" "&&(f+=" ");break;default:f+="/"}break;case 123*v:l[c++]=Ue(f)*S;case 125*v:case 59:case 0:switch(A){case 0:case 125:P=0;case 59+u:S==-1&&(f=Ta(f,/\f/g,"")),h>0&&(Ue(f)-d||v===0&&C===47)&&Ca(h>32?Ir(f+";",n,a,d-1,s):Ir(Ta(f," ","")+";",n,a,d-2,s),s);break;case 59:f+=";";default:if(Ca(k=Er(f,t,a,c,u,r,l,b,y=[],_=[],d,o),o),A===123)if(u===0)Ia(f,t,k,k,y,o,d,l,_);else{switch(m){case 99:if(Ft(f,3)===110)break;case 108:if(Ft(f,2)===97)break;default:u=0;case 100:case 109:case 115:}u?Ia(e,k,k,n&&Ca(Er(e,k,k,0,0,r,l,b,r,y=[],d,_),_),r,_,d,l,n?y:_):Ia(f,k,k,k,[""],_,0,l,_)}}c=u=h=0,v=S=1,b=f="",d=i;break;case 58:d=1+Ue(f),h=C;default:if(v<1){if(A==123)--v;else if(A==125&&v++==0&&cc()==125)continue}switch(f+=Xn(A),A*v){case 38:S=u>0?1:(f+="\f",-1);break;case 44:l[c++]=(Ue(f)-1)*S,S=1;break;case 64:at()===45&&(f+=dn(Me())),m=at(),u=d=Ue(b=f+=gc(Ea())),A++;break;case 45:C===45&&Ue(f)==2&&(v=0)}}return o}function Er(e,t,a,n,r,o,i,l,s,c,u,d){for(var m=r-1,h=r===0?o:[""],C=lc(h),v=0,P=0,S=0;v<n;++v)for(var A=0,b=Bt(e,m+1,m=ii(P=i[v])),y=e;A<C;++A)(y=li(P>0?h[A]+" "+b:Ta(b,/&\f/g,h[A])))&&(s[S++]=y);return Jn(e,t,a,r===0?ri:l,s,c,u,d)}function bc(e,t,a,n){return Jn(e,t,a,ni,Xn(sc()),Bt(e,2,-2),0,n)}function Ir(e,t,a,n,r){return Jn(e,t,a,oi,Bt(e,0,n),Bt(e,n+1,-1),n,r)}function Cn(e,t){for(var a="",n=0;n<e.length;n++)a+=t(e[n],n,e,t)||"";return a}function yc(e,t,a,n){switch(e.type){case oc:if(e.children.length)break;case ac:case nc:case oi:return e.return=e.return||e.value;case ni:return"";case rc:return e.return=e.value+"{"+Cn(e.children,n)+"}";case ri:if(!Ue(e.value=e.props.join(",")))return""}return Ue(a=Cn(e.children,n))?e.return=e.value+"{"+a+"}":""}const Ar="data-ant-cssinjs-cache-path",vc="_FILE_STYLE__";let ht,ci=!0;function _c(){var e;if(!ht&&(ht={},Yt())){const t=document.createElement("div");t.className=Ar,t.style.position="fixed",t.style.visibility="hidden",t.style.top="-9999px",document.body.appendChild(t);let a=getComputedStyle(t).content||"";a=a.replace(/^"/,"").replace(/"$/,""),a.split(";").forEach(r=>{const[o,i]=r.split(":");ht[o]=i});const n=document.querySelector(`style[${Ar}]`);n&&(ci=!1,(e=n.parentNode)===null||e===void 0||e.removeChild(n)),document.body.removeChild(t)}}function Cc(e){return _c(),!!ht[e]}function kc(e){const t=ht[e];let a=null;if(t&&Yt())if(ci)a=vc;else{const n=document.querySelector(`style[${gt}="${ht[e]}"]`);n?a=n.innerHTML:delete ht[e]}return[a,t]}const wr=Yt(),Sc="_skip_check_",di="_multi_value_";function Or(e){return Cn(hc(e),yc).replace(/\{%%%\:[^;];}/g,";")}function Pc(e){return typeof e=="object"&&e&&(Sc in e||di in e)}function Lc(e,t,a){if(!t)return e;const n=`.${t}`,r=a==="low"?`:where(${n})`:n;return e.split(",").map(i=>{var l;const s=i.trim().split(/\s+/);let c=s[0]||"";const u=((l=c.match(/^\w+/))===null||l===void 0?void 0:l[0])||"";return c=`${u}${r}${c.slice(u.length)}`,[c,...s.slice(1)].join(" ")}).join(",")}const Dr=new Set,kn=function(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},{root:a,injectHash:n,parentSelectors:r}=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{root:!0,parentSelectors:[]};const{hashId:o,layer:i,path:l,hashPriority:s,transformers:c=[],linters:u=[]}=t;let d="",m={};function h(P){const S=P.getName(o);if(!m[S]){const[A]=kn(P.style,t,{root:!1,parentSelectors:r});m[S]=`@keyframes ${P.getName(o)}${A}`}}function C(P){let S=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[];return P.forEach(A=>{Array.isArray(A)?C(A,S):A&&S.push(A)}),S}if(C(Array.isArray(e)?e:[e]).forEach(P=>{const S=typeof P=="string"&&!a?{}:P;if(typeof S=="string")d+=`${S}
3
+ `;else if(S._keyframe)h(S);else{const A=c.reduce((b,y)=>{var _;return((_=y?.visit)===null||_===void 0?void 0:_.call(y,b))||b},S);Object.keys(A).forEach(b=>{var y;const _=A[b];if(typeof _=="object"&&_&&(b!=="animationName"||!_._keyframe)&&!Pc(_)){let k=!1,f=b.trim(),I=!1;(a||n)&&o?f.startsWith("@")?k=!0:f=Lc(b,o,s):a&&!o&&(f==="&"||f==="")&&(f="",I=!0);const[w,K]=kn(_,t,{root:I,injectHash:k,parentSelectors:[...r,f]});m=T(T({},m),K),d+=`${f}${w}`}else{let k=function(I,w){const K=I.replace(/[A-Z]/g,U=>`-${U.toLowerCase()}`);let ee=w;!tc[I]&&typeof ee=="number"&&ee!==0&&(ee=`${ee}px`),I==="animationName"&&w?._keyframe&&(h(w),ee=w.getName(o)),d+=`${K}:${ee};`};const f=(y=_?.value)!==null&&y!==void 0?y:_;typeof _=="object"&&_?.[di]&&Array.isArray(f)?f.forEach(I=>{k(b,I)}):k(b,f)}})}}),!a)d=`{${d}}`;else if(i&&qs()){const P=i.split(",");d=`@layer ${P[P.length-1].trim()} {${d}}`,P.length>1&&(d=`@layer ${i}{%%%:%}${d}`)}return[d,m]};function Tc(e,t){return Kn(`${e.join("%")}${t}`)}function Sn(e,t){const a=za(),n=F(()=>e.value.token._tokenKey),r=F(()=>[n.value,...e.value.path]);let o=wr;return qo("style",r,()=>{const{path:i,hashId:l,layer:s,nonce:c,clientOnly:u,order:d=0}=e.value,m=r.value.join("|");if(Cc(m)){const[f,I]=kc(m);if(f)return[f,n.value,I,{},u,d]}const h=t(),{hashPriority:C,container:v,transformers:P,linters:S,cache:A}=a.value,[b,y]=kn(h,{hashId:l,hashPriority:C,layer:s,path:i.join("-"),transformers:P,linters:S}),_=Or(b),k=Tc(r.value,_);if(o){const f={mark:gt,prepend:"queue",attachTo:v,priority:d},I=typeof c=="function"?c():c;I&&(f.csp={nonce:I});const w=Fa(_,k,f);w[wt]=A.instanceId,w.setAttribute(Wo,n.value),Object.keys(y).forEach(K=>{Dr.has(K)||(Dr.add(K),Fa(Or(y[K]),`_effect-${K}`,{mark:gt,prepend:"queue",attachTo:v}))})}return[_,n.value,k,y,u,d]},(i,l)=>{let[,,s]=i;(l||a.value.autoClear)&&wr&&Qo(s,{mark:gt})}),i=>i}class bt{constructor(t,a){this._keyframe=!0,this.name=t,this.style=a}getName(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"";return t?`${t}-${this.name}`:this.name}}const Ec="4.2.6",Ic=e=>{const{controlHeight:t}=e;return{controlHeightSM:t*.75,controlHeightXS:t*.5,controlHeightLG:t*1.25}};function Ac(e){const{sizeUnit:t,sizeStep:a}=e;return{sizeXXL:t*(a+8),sizeXL:t*(a+4),sizeLG:t*(a+2),sizeMD:t*(a+1),sizeMS:t*a,size:t*a,sizeSM:t*(a-1),sizeXS:t*(a-2),sizeXXS:t*(a-3)}}const Qn={blue:"#1677ff",purple:"#722ED1",cyan:"#13C2C2",green:"#52C41A",magenta:"#EB2F96",pink:"#eb2f96",red:"#F5222D",orange:"#FA8C16",yellow:"#FADB14",volcano:"#FA541C",geekblue:"#2F54EB",gold:"#FAAD14",lime:"#A0D911"},Ka=T(T({},Qn),{colorPrimary:"#1677ff",colorSuccess:"#52c41a",colorWarning:"#faad14",colorError:"#ff4d4f",colorInfo:"#1677ff",colorTextBase:"",colorBgBase:"",fontFamily:`-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial,
4
+ 'Noto Sans', sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol',
5
+ 'Noto Color Emoji'`,fontSize:14,lineWidth:1,lineType:"solid",motionUnit:.1,motionBase:0,motionEaseOutCirc:"cubic-bezier(0.08, 0.82, 0.17, 1)",motionEaseInOutCirc:"cubic-bezier(0.78, 0.14, 0.15, 0.86)",motionEaseOut:"cubic-bezier(0.215, 0.61, 0.355, 1)",motionEaseInOut:"cubic-bezier(0.645, 0.045, 0.355, 1)",motionEaseOutBack:"cubic-bezier(0.12, 0.4, 0.29, 1.46)",motionEaseInBack:"cubic-bezier(0.71, -0.46, 0.88, 0.6)",motionEaseInQuint:"cubic-bezier(0.755, 0.05, 0.855, 0.06)",motionEaseOutQuint:"cubic-bezier(0.23, 1, 0.32, 1)",borderRadius:6,sizeUnit:4,sizeStep:4,sizePopupArrow:16,controlHeight:32,zIndexBase:0,zIndexPopupBase:1e3,opacityImage:1,wireframe:!1});function ui(e,t){let{generateColorPalettes:a,generateNeutralColorPalettes:n}=t;const{colorSuccess:r,colorWarning:o,colorError:i,colorInfo:l,colorPrimary:s,colorBgBase:c,colorTextBase:u}=e,d=a(s),m=a(r),h=a(o),C=a(i),v=a(l),P=n(c,u);return T(T({},P),{colorPrimaryBg:d[1],colorPrimaryBgHover:d[2],colorPrimaryBorder:d[3],colorPrimaryBorderHover:d[4],colorPrimaryHover:d[5],colorPrimary:d[6],colorPrimaryActive:d[7],colorPrimaryTextHover:d[8],colorPrimaryText:d[9],colorPrimaryTextActive:d[10],colorSuccessBg:m[1],colorSuccessBgHover:m[2],colorSuccessBorder:m[3],colorSuccessBorderHover:m[4],colorSuccessHover:m[4],colorSuccess:m[6],colorSuccessActive:m[7],colorSuccessTextHover:m[8],colorSuccessText:m[9],colorSuccessTextActive:m[10],colorErrorBg:C[1],colorErrorBgHover:C[2],colorErrorBorder:C[3],colorErrorBorderHover:C[4],colorErrorHover:C[5],colorError:C[6],colorErrorActive:C[7],colorErrorTextHover:C[8],colorErrorText:C[9],colorErrorTextActive:C[10],colorWarningBg:h[1],colorWarningBgHover:h[2],colorWarningBorder:h[3],colorWarningBorderHover:h[4],colorWarningHover:h[4],colorWarning:h[6],colorWarningActive:h[7],colorWarningTextHover:h[8],colorWarningText:h[9],colorWarningTextActive:h[10],colorInfoBg:v[1],colorInfoBgHover:v[2],colorInfoBorder:v[3],colorInfoBorderHover:v[4],colorInfoHover:v[4],colorInfo:v[6],colorInfoActive:v[7],colorInfoTextHover:v[8],colorInfoText:v[9],colorInfoTextActive:v[10],colorBgMask:new ue("#000").setAlpha(.45).toRgbString(),colorWhite:"#fff"})}const wc=e=>{let t=e,a=e,n=e,r=e;return e<6&&e>=5?t=e+1:e<16&&e>=6?t=e+2:e>=16&&(t=16),e<7&&e>=5?a=4:e<8&&e>=7?a=5:e<14&&e>=8?a=6:e<16&&e>=14?a=7:e>=16&&(a=8),e<6&&e>=2?n=1:e>=6&&(n=2),e>4&&e<8?r=4:e>=8&&(r=6),{borderRadius:e>16?16:e,borderRadiusXS:n,borderRadiusSM:a,borderRadiusLG:t,borderRadiusOuter:r}};function Oc(e){const{motionUnit:t,motionBase:a,borderRadius:n,lineWidth:r}=e;return T({motionDurationFast:`${(a+t).toFixed(1)}s`,motionDurationMid:`${(a+t*2).toFixed(1)}s`,motionDurationSlow:`${(a+t*3).toFixed(1)}s`,lineWidthBold:r+1},wc(n))}const Ye=(e,t)=>new ue(e).setAlpha(t).toRgbString(),oa=(e,t)=>new ue(e).darken(t).toHexString(),Dc=e=>{const t=Mt(e);return{1:t[0],2:t[1],3:t[2],4:t[3],5:t[4],6:t[5],7:t[6],8:t[4],9:t[5],10:t[6]}},Fc=(e,t)=>{const a=e||"#fff",n=t||"#000";return{colorBgBase:a,colorTextBase:n,colorText:Ye(n,.88),colorTextSecondary:Ye(n,.65),colorTextTertiary:Ye(n,.45),colorTextQuaternary:Ye(n,.25),colorFill:Ye(n,.15),colorFillSecondary:Ye(n,.06),colorFillTertiary:Ye(n,.04),colorFillQuaternary:Ye(n,.02),colorBgLayout:oa(a,4),colorBgContainer:oa(a,0),colorBgElevated:oa(a,0),colorBgSpotlight:Ye(n,.85),colorBorder:oa(a,15),colorBorderSecondary:oa(a,6)}};function Rc(e){const t=new Array(10).fill(null).map((a,n)=>{const r=n-1,o=e*Math.pow(2.71828,r/5),i=n>1?Math.floor(o):Math.ceil(o);return Math.floor(i/2)*2});return t[1]=e,t.map(a=>{const n=a+8;return{size:a,lineHeight:n/a}})}const xc=e=>{const t=Rc(e),a=t.map(r=>r.size),n=t.map(r=>r.lineHeight);return{fontSizeSM:a[0],fontSize:a[1],fontSizeLG:a[2],fontSizeXL:a[3],fontSizeHeading1:a[6],fontSizeHeading2:a[5],fontSizeHeading3:a[4],fontSizeHeading4:a[3],fontSizeHeading5:a[2],lineHeight:n[1],lineHeightLG:n[2],lineHeightSM:n[0],lineHeightHeading1:n[6],lineHeightHeading2:n[5],lineHeightHeading3:n[4],lineHeightHeading4:n[3],lineHeightHeading5:n[2]}};function Zn(e){const t=Object.keys(Qn).map(a=>{const n=Mt(e[a]);return new Array(10).fill(1).reduce((r,o,i)=>(r[`${a}-${i+1}`]=n[i],r),{})}).reduce((a,n)=>(a=T(T({},a),n),a),{});return T(T(T(T(T(T(T({},e),t),ui(e,{generateColorPalettes:Dc,generateNeutralColorPalettes:Fc})),xc(e.fontSize)),Ac(e)),Ic(e)),Oc(e))}function un(e){return e>=0&&e<=255}function ka(e,t){const{r:a,g:n,b:r,a:o}=new ue(e).toRgb();if(o<1)return e;const{r:i,g:l,b:s}=new ue(t).toRgb();for(let c=.01;c<=1;c+=.01){const u=Math.round((a-i*(1-c))/c),d=Math.round((n-l*(1-c))/c),m=Math.round((r-s*(1-c))/c);if(un(u)&&un(d)&&un(m))return new ue({r:u,g:d,b:m,a:Math.round(c*100)/100}).toRgbString()}return new ue({r:a,g:n,b:r,a:1}).toRgbString()}var Nc=function(e,t){var a={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(a[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,n=Object.getOwnPropertySymbols(e);r<n.length;r++)t.indexOf(n[r])<0&&Object.prototype.propertyIsEnumerable.call(e,n[r])&&(a[n[r]]=e[n[r]]);return a};function Mc(e){const{override:t}=e,a=Nc(e,["override"]),n=T({},t);Object.keys(Ka).forEach(h=>{delete n[h]});const r=T(T({},a),n),o=480,i=576,l=768,s=992,c=1200,u=1600,d=2e3;return T(T(T({},r),{colorLink:r.colorInfoText,colorLinkHover:r.colorInfoHover,colorLinkActive:r.colorInfoActive,colorFillContent:r.colorFillSecondary,colorFillContentHover:r.colorFill,colorFillAlter:r.colorFillQuaternary,colorBgContainerDisabled:r.colorFillTertiary,colorBorderBg:r.colorBgContainer,colorSplit:ka(r.colorBorderSecondary,r.colorBgContainer),colorTextPlaceholder:r.colorTextQuaternary,colorTextDisabled:r.colorTextQuaternary,colorTextHeading:r.colorText,colorTextLabel:r.colorTextSecondary,colorTextDescription:r.colorTextTertiary,colorTextLightSolid:r.colorWhite,colorHighlight:r.colorError,colorBgTextHover:r.colorFillSecondary,colorBgTextActive:r.colorFill,colorIcon:r.colorTextTertiary,colorIconHover:r.colorText,colorErrorOutline:ka(r.colorErrorBg,r.colorBgContainer),colorWarningOutline:ka(r.colorWarningBg,r.colorBgContainer),fontSizeIcon:r.fontSizeSM,lineWidth:r.lineWidth,controlOutlineWidth:r.lineWidth*2,controlInteractiveSize:r.controlHeight/2,controlItemBgHover:r.colorFillTertiary,controlItemBgActive:r.colorPrimaryBg,controlItemBgActiveHover:r.colorPrimaryBgHover,controlItemBgActiveDisabled:r.colorFill,controlTmpOutline:r.colorFillQuaternary,controlOutline:ka(r.colorPrimaryBg,r.colorBgContainer),lineType:r.lineType,borderRadius:r.borderRadius,borderRadiusXS:r.borderRadiusXS,borderRadiusSM:r.borderRadiusSM,borderRadiusLG:r.borderRadiusLG,fontWeightStrong:600,opacityLoading:.65,linkDecoration:"none",linkHoverDecoration:"none",linkFocusDecoration:"none",controlPaddingHorizontal:12,controlPaddingHorizontalSM:8,paddingXXS:r.sizeXXS,paddingXS:r.sizeXS,paddingSM:r.sizeSM,padding:r.size,paddingMD:r.sizeMD,paddingLG:r.sizeLG,paddingXL:r.sizeXL,paddingContentHorizontalLG:r.sizeLG,paddingContentVerticalLG:r.sizeMS,paddingContentHorizontal:r.sizeMS,paddingContentVertical:r.sizeSM,paddingContentHorizontalSM:r.size,paddingContentVerticalSM:r.sizeXS,marginXXS:r.sizeXXS,marginXS:r.sizeXS,marginSM:r.sizeSM,margin:r.size,marginMD:r.sizeMD,marginLG:r.sizeLG,marginXL:r.sizeXL,marginXXL:r.sizeXXL,boxShadow:`
6
+ 0 1px 2px 0 rgba(0, 0, 0, 0.03),
7
+ 0 1px 6px -1px rgba(0, 0, 0, 0.02),
8
+ 0 2px 4px 0 rgba(0, 0, 0, 0.02)
9
+ `,boxShadowSecondary:`
10
+ 0 6px 16px 0 rgba(0, 0, 0, 0.08),
11
+ 0 3px 6px -4px rgba(0, 0, 0, 0.12),
12
+ 0 9px 28px 8px rgba(0, 0, 0, 0.05)
13
+ `,boxShadowTertiary:`
14
+ 0 1px 2px 0 rgba(0, 0, 0, 0.03),
15
+ 0 1px 6px -1px rgba(0, 0, 0, 0.02),
16
+ 0 2px 4px 0 rgba(0, 0, 0, 0.02)
17
+ `,screenXS:o,screenXSMin:o,screenXSMax:i-1,screenSM:i,screenSMMin:i,screenSMMax:l-1,screenMD:l,screenMDMin:l,screenMDMax:s-1,screenLG:s,screenLGMin:s,screenLGMax:c-1,screenXL:c,screenXLMin:c,screenXLMax:u-1,screenXXL:u,screenXXLMin:u,screenXXLMax:d-1,screenXXXL:d,screenXXXLMin:d,boxShadowPopoverArrow:"3px 3px 7px rgba(0, 0, 0, 0.1)",boxShadowCard:`
18
+ 0 1px 2px -2px ${new ue("rgba(0, 0, 0, 0.16)").toRgbString()},
19
+ 0 3px 6px 0 ${new ue("rgba(0, 0, 0, 0.12)").toRgbString()},
20
+ 0 5px 12px 4px ${new ue("rgba(0, 0, 0, 0.09)").toRgbString()}
21
+ `,boxShadowDrawerRight:`
22
+ -6px 0 16px 0 rgba(0, 0, 0, 0.08),
23
+ -3px 0 6px -4px rgba(0, 0, 0, 0.12),
24
+ -9px 0 28px 8px rgba(0, 0, 0, 0.05)
25
+ `,boxShadowDrawerLeft:`
26
+ 6px 0 16px 0 rgba(0, 0, 0, 0.08),
27
+ 3px 0 6px -4px rgba(0, 0, 0, 0.12),
28
+ 9px 0 28px 8px rgba(0, 0, 0, 0.05)
29
+ `,boxShadowDrawerUp:`
30
+ 0 6px 16px 0 rgba(0, 0, 0, 0.08),
31
+ 0 3px 6px -4px rgba(0, 0, 0, 0.12),
32
+ 0 9px 28px 8px rgba(0, 0, 0, 0.05)
33
+ `,boxShadowDrawerDown:`
34
+ 0 -6px 16px 0 rgba(0, 0, 0, 0.08),
35
+ 0 -3px 6px -4px rgba(0, 0, 0, 0.12),
36
+ 0 -9px 28px 8px rgba(0, 0, 0, 0.05)
37
+ `,boxShadowTabsOverflowLeft:"inset 10px 0 8px -8px rgba(0, 0, 0, 0.08)",boxShadowTabsOverflowRight:"inset -10px 0 8px -8px rgba(0, 0, 0, 0.08)",boxShadowTabsOverflowTop:"inset 0 10px 8px -8px rgba(0, 0, 0, 0.08)",boxShadowTabsOverflowBottom:"inset 0 -10px 8px -8px rgba(0, 0, 0, 0.08)"}),n)}const ph={overflow:"hidden",whiteSpace:"nowrap",textOverflow:"ellipsis"},mi=e=>({boxSizing:"border-box",margin:0,padding:0,color:e.colorText,fontSize:e.fontSize,lineHeight:e.lineHeight,listStyle:"none",fontFamily:e.fontFamily}),$c=()=>({display:"inline-flex",alignItems:"center",color:"inherit",fontStyle:"normal",lineHeight:0,textAlign:"center",textTransform:"none",verticalAlign:"-0.125em",textRendering:"optimizeLegibility","-webkit-font-smoothing":"antialiased","-moz-osx-font-smoothing":"grayscale","> *":{lineHeight:1},svg:{display:"inline-block"}}),fh=()=>({"&::before":{display:"table",content:'""'},"&::after":{display:"table",clear:"both",content:'""'}}),Bc=e=>({a:{color:e.colorLink,textDecoration:e.linkDecoration,backgroundColor:"transparent",outline:"none",cursor:"pointer",transition:`color ${e.motionDurationSlow}`,"-webkit-text-decoration-skip":"objects","&:hover":{color:e.colorLinkHover},"&:active":{color:e.colorLinkActive},"&:active,\n &:hover":{textDecoration:e.linkHoverDecoration,outline:0},"&:focus":{textDecoration:e.linkFocusDecoration,outline:0},"&[disabled]":{color:e.colorTextDisabled,cursor:"not-allowed"}}}),Hc=(e,t)=>{const{fontFamily:a,fontSize:n}=e,r=`[class^="${t}"], [class*=" ${t}"]`;return{[r]:{fontFamily:a,fontSize:n,boxSizing:"border-box","&::before, &::after":{boxSizing:"border-box"},[r]:{boxSizing:"border-box","&::before, &::after":{boxSizing:"border-box"}}}}},jc=e=>({outline:`${e.lineWidthBold}px solid ${e.colorPrimaryBorder}`,outlineOffset:1,transition:"outline-offset 0s, outline 0s"}),gh=e=>({"&:focus-visible":T({},jc(e))});function er(e,t,a){return n=>{const r=F(()=>n?.value),[o,i,l]=Ja(),{getPrefixCls:s,iconPrefixCls:c}=Bo(),u=F(()=>s()),d=F(()=>({theme:o.value,token:i.value,hashId:l.value,path:["Shared",u.value]}));Sn(d,()=>[{"&":Bc(i.value)}]);const m=F(()=>({theme:o.value,token:i.value,hashId:l.value,path:[e,r.value,c.value]}));return[Sn(m,()=>{const{token:h,flush:C}=Vc(i.value),v=typeof a=="function"?a(h):a,P=T(T({},v),i.value[e]),S=`.${r.value}`,A=Xa(h,{componentCls:S,prefixCls:r.value,iconCls:`.${c.value}`,antCls:`.${u.value}`},P),b=t(A,{hashId:l.value,prefixCls:r.value,rootPrefixCls:u.value,iconPrefixCls:c.value,overrideComponentToken:i.value[e]});return C(e,P),[Hc(i.value,r.value),b]}),l]}}const pi=typeof CSSINJS_STATISTIC<"u";let Pn=!0;function Xa(){for(var e=arguments.length,t=new Array(e),a=0;a<e;a++)t[a]=arguments[a];if(!pi)return T({},...t);Pn=!1;const n={};return t.forEach(r=>{Object.keys(r).forEach(i=>{Object.defineProperty(n,i,{configurable:!0,enumerable:!0,get:()=>r[i]})})}),Pn=!0,n}function Uc(){}function Vc(e){let t,a=e,n=Uc;return pi&&(t=new Set,a=new Proxy(e,{get(r,o){return Pn&&t.add(o),r[o]}}),n=(r,o)=>{Array.from(t)}),{token:a,keys:t,flush:n}}const Wc=ti(Zn),tr={token:Ka,hashed:!0},fi=Symbol("DesignTokenContext"),Ln=Ie(),zc=e=>{ot(fi,e),Se(e,()=>{Ln.value=Qe(e),Hl(Ln)},{immediate:!0,deep:!0})},Gc=pe({props:{value:Ee()},setup(e,t){let{slots:a}=t;return zc(F(()=>e.value)),()=>{var n;return(n=a.default)===null||n===void 0?void 0:n.call(a)}}});function Ja(){const e=$e(fi,F(()=>Ln.value||tr)),t=F(()=>`${Ec}-${e.value.hashed||""}`),a=F(()=>e.value.theme||Wc),n=ec(a,F(()=>[Ka,e.value.token]),F(()=>({salt:t.value,override:T({override:e.value.token},e.value.components),formatToken:Mc})));return[a,F(()=>n.value[0]),F(()=>e.value.hashed?n.value[1]:"")]}const ar=pe({compatConfig:{MODE:3},setup(){const[,e]=Ja(),t=F(()=>new ue(e.value.colorBgBase).toHsl().l<.5?{opacity:.65}:{});return()=>R("svg",{style:t.value,width:"184",height:"152",viewBox:"0 0 184 152",xmlns:"http://www.w3.org/2000/svg"},[R("g",{fill:"none","fill-rule":"evenodd"},[R("g",{transform:"translate(24 31.67)"},[R("ellipse",{"fill-opacity":".8",fill:"#F5F5F7",cx:"67.797",cy:"106.89",rx:"67.797",ry:"12.668"},null),R("path",{d:"M122.034 69.674L98.109 40.229c-1.148-1.386-2.826-2.225-4.593-2.225h-51.44c-1.766 0-3.444.839-4.592 2.225L13.56 69.674v15.383h108.475V69.674z",fill:"#AEB8C2"},null),R("path",{d:"M101.537 86.214L80.63 61.102c-1.001-1.207-2.507-1.867-4.048-1.867H31.724c-1.54 0-3.047.66-4.048 1.867L6.769 86.214v13.792h94.768V86.214z",fill:"url(#linearGradient-1)",transform:"translate(13.56)"},null),R("path",{d:"M33.83 0h67.933a4 4 0 0 1 4 4v93.344a4 4 0 0 1-4 4H33.83a4 4 0 0 1-4-4V4a4 4 0 0 1 4-4z",fill:"#F5F5F7"},null),R("path",{d:"M42.678 9.953h50.237a2 2 0 0 1 2 2V36.91a2 2 0 0 1-2 2H42.678a2 2 0 0 1-2-2V11.953a2 2 0 0 1 2-2zM42.94 49.767h49.713a2.262 2.262 0 1 1 0 4.524H42.94a2.262 2.262 0 0 1 0-4.524zM42.94 61.53h49.713a2.262 2.262 0 1 1 0 4.525H42.94a2.262 2.262 0 0 1 0-4.525zM121.813 105.032c-.775 3.071-3.497 5.36-6.735 5.36H20.515c-3.238 0-5.96-2.29-6.734-5.36a7.309 7.309 0 0 1-.222-1.79V69.675h26.318c2.907 0 5.25 2.448 5.25 5.42v.04c0 2.971 2.37 5.37 5.277 5.37h34.785c2.907 0 5.277-2.421 5.277-5.393V75.1c0-2.972 2.343-5.426 5.25-5.426h26.318v33.569c0 .617-.077 1.216-.221 1.789z",fill:"#DCE0E6"},null)]),R("path",{d:"M149.121 33.292l-6.83 2.65a1 1 0 0 1-1.317-1.23l1.937-6.207c-2.589-2.944-4.109-6.534-4.109-10.408C138.802 8.102 148.92 0 161.402 0 173.881 0 184 8.102 184 18.097c0 9.995-10.118 18.097-22.599 18.097-4.528 0-8.744-1.066-12.28-2.902z",fill:"#DCE0E6"},null),R("g",{transform:"translate(149.65 15.383)",fill:"#FFF"},[R("ellipse",{cx:"20.654",cy:"3.167",rx:"2.849",ry:"2.815"},null),R("path",{d:"M5.698 5.63H0L2.898.704zM9.259.704h4.985V5.63H9.259z"},null)])])])}});ar.PRESENTED_IMAGE_DEFAULT=!0;const gi=pe({compatConfig:{MODE:3},setup(){const[,e]=Ja(),t=F(()=>{const{colorFill:a,colorFillTertiary:n,colorFillQuaternary:r,colorBgContainer:o}=e.value;return{borderColor:new ue(a).onBackground(o).toHexString(),shadowColor:new ue(n).onBackground(o).toHexString(),contentColor:new ue(r).onBackground(o).toHexString()}});return()=>R("svg",{width:"64",height:"41",viewBox:"0 0 64 41",xmlns:"http://www.w3.org/2000/svg"},[R("g",{transform:"translate(0 1)",fill:"none","fill-rule":"evenodd"},[R("ellipse",{fill:t.value.shadowColor,cx:"32",cy:"33",rx:"32",ry:"7"},null),R("g",{"fill-rule":"nonzero",stroke:t.value.borderColor},[R("path",{d:"M55 12.76L44.854 1.258C44.367.474 43.656 0 42.907 0H21.093c-.749 0-1.46.474-1.947 1.257L9 12.761V22h46v-9.24z"},null),R("path",{d:"M41.613 15.931c0-1.605.994-2.93 2.227-2.931H55v18.137C55 33.26 53.68 35 52.05 35h-40.1C10.32 35 9 33.259 9 31.137V13h11.16c1.233 0 2.227 1.323 2.227 2.928v.022c0 1.605 1.005 2.901 2.237 2.901h14.752c1.232 0 2.237-1.308 2.237-2.913v-.007z",fill:t.value.contentColor},null)])])])}});gi.PRESENTED_IMAGE_SIMPLE=!0;const qc=e=>{const{componentCls:t,margin:a,marginXS:n,marginXL:r,fontSize:o,lineHeight:i}=e;return{[t]:{marginInline:n,fontSize:o,lineHeight:i,textAlign:"center",[`${t}-image`]:{height:e.emptyImgHeight,marginBottom:n,opacity:e.opacityImage,img:{height:"100%"},svg:{height:"100%",margin:"auto"}},[`${t}-footer`]:{marginTop:a},"&-normal":{marginBlock:r,color:e.colorTextDisabled,[`${t}-image`]:{height:e.emptyImgHeightMD}},"&-small":{marginBlock:n,color:e.colorTextDisabled,[`${t}-image`]:{height:e.emptyImgHeightSM}}}}},Yc=er("Empty",e=>{const{componentCls:t,controlHeightLG:a}=e,n=Xa(e,{emptyImgCls:`${t}-img`,emptyImgHeight:a*2.5,emptyImgHeightMD:a,emptyImgHeightSM:a*.875});return[qc(n)]});var Kc=function(e,t){var a={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(a[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,n=Object.getOwnPropertySymbols(e);r<n.length;r++)t.indexOf(n[r])<0&&Object.prototype.propertyIsEnumerable.call(e,n[r])&&(a[n[r]]=e[n[r]]);return a};const hi=()=>({prefixCls:String,imageStyle:Ee(),image:yn(),description:yn()}),nr=pe({name:"AEmpty",compatConfig:{MODE:3},inheritAttrs:!1,props:hi(),setup(e,t){let{slots:a={},attrs:n}=t;const{direction:r,prefixCls:o}=Qa("empty",e),[i,l]=Yc(o);return()=>{var s,c;const u=o.value,d=T(T({},e),n),{image:m=((s=a.image)===null||s===void 0?void 0:s.call(a))||qt(ar),description:h=((c=a.description)===null||c===void 0?void 0:c.call(a))||void 0,imageStyle:C,class:v=""}=d,P=Kc(d,["image","description","imageStyle","class"]),S=typeof m=="function"?m():m,A=typeof S=="object"&&"type"in S&&S.type.PRESENTED_IMAGE_SIMPLE;return i(R(Vo,{componentName:"Empty",children:b=>{const y=typeof h<"u"?h:b.description,_=typeof y=="string"?y:"empty";let k=null;return typeof S=="string"?k=R("img",{alt:_,src:S},null):k=S,R("div",be({class:Pe(u,v,l.value,{[`${u}-normal`]:A,[`${u}-rtl`]:r.value==="rtl"})},P),[R("div",{class:`${u}-image`,style:C},[k]),y&&R("p",{class:`${u}-description`},[y]),a.default&&R("div",{class:`${u}-footer`},[Gn(a.default())])])}},null))}}});nr.PRESENTED_IMAGE_DEFAULT=()=>qt(ar);nr.PRESENTED_IMAGE_SIMPLE=()=>qt(gi);const Et=qn(nr),Xc=Object.freeze(Object.defineProperty({__proto__:null,default:Et,emptyProps:hi},Symbol.toStringTag,{value:"Module"})),bi=e=>{const{prefixCls:t}=Qa("empty",e);return(n=>{switch(n){case"Table":case"List":return R(Et,{image:Et.PRESENTED_IMAGE_SIMPLE},null);case"Select":case"TreeSelect":case"Cascader":case"Transfer":case"Mentions":return R(Et,{image:Et.PRESENTED_IMAGE_SIMPLE,class:`${t.value}-small`},null);default:return R(Et,null,null)}})(e.componentName)};function Jc(e){return R(bi,{componentName:e},null)}const yi=Symbol("SizeContextKey"),vi=()=>$e(yi,ve(void 0)),Qc=e=>{const t=vi();return ot(yi,F(()=>e.value||t.value)),e},Qa=((e,t)=>{const a=vi(),n=jo(),r=$e(Yn,T(T({},$o),{renderEmpty:f=>qt(bi,{componentName:f})})),o=F(()=>r.getPrefixCls(e,t.prefixCls)),i=F(()=>{var f,I;return(f=t.direction)!==null&&f!==void 0?f:(I=r.direction)===null||I===void 0?void 0:I.value}),l=F(()=>{var f;return(f=t.iconPrefixCls)!==null&&f!==void 0?f:r.iconPrefixCls.value}),s=F(()=>r.getPrefixCls()),c=F(()=>{var f;return(f=r.autoInsertSpaceInButton)===null||f===void 0?void 0:f.value}),u=r.renderEmpty,d=r.space,m=r.pageHeader,h=r.form,C=F(()=>{var f,I;return(f=t.getTargetContainer)!==null&&f!==void 0?f:(I=r.getTargetContainer)===null||I===void 0?void 0:I.value}),v=F(()=>{var f,I,w;return(I=(f=t.getContainer)!==null&&f!==void 0?f:t.getPopupContainer)!==null&&I!==void 0?I:(w=r.getPopupContainer)===null||w===void 0?void 0:w.value}),P=F(()=>{var f,I;return(f=t.dropdownMatchSelectWidth)!==null&&f!==void 0?f:(I=r.dropdownMatchSelectWidth)===null||I===void 0?void 0:I.value}),S=F(()=>{var f;return(t.virtual===void 0?((f=r.virtual)===null||f===void 0?void 0:f.value)!==!1:t.virtual!==!1)&&P.value!==!1}),A=F(()=>t.size||a.value),b=F(()=>{var f,I,w;return(f=t.autocomplete)!==null&&f!==void 0?f:(w=(I=r.input)===null||I===void 0?void 0:I.value)===null||w===void 0?void 0:w.autocomplete}),y=F(()=>{var f;return(f=t.disabled)!==null&&f!==void 0?f:n.value}),_=F(()=>{var f;return(f=t.csp)!==null&&f!==void 0?f:r.csp}),k=F(()=>{var f,I;return(f=t.wave)!==null&&f!==void 0?f:(I=r.wave)===null||I===void 0?void 0:I.value});return{configProvider:r,prefixCls:o,direction:i,size:A,getTargetContainer:C,getPopupContainer:v,space:d,pageHeader:m,form:h,autoInsertSpaceInButton:c,renderEmpty:u,virtual:S,dropdownMatchSelectWidth:P,rootPrefixCls:s,getPrefixCls:r.getPrefixCls,autocomplete:b,csp:_,iconPrefixCls:l,disabled:y,select:r.select,wave:k}});function Zc(e,t){for(var a=0;a<t.length;a++){var n=t[a];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function _i(e,t,a){return a&&Zc(e,a),e}function Aa(){return(Aa=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var n in a)Object.prototype.hasOwnProperty.call(a,n)&&(e[n]=a[n])}return e}).apply(this,arguments)}function Ci(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}function ki(e,t){if(e==null)return{};var a,n,r={},o=Object.keys(e);for(n=0;n<o.length;n++)t.indexOf(a=o[n])>=0||(r[a]=e[a]);return r}function Fr(e){return((t=e)!=null&&typeof t=="object"&&Array.isArray(t)===!1)==1&&Object.prototype.toString.call(e)==="[object Object]";var t}var Si=Object.prototype,Pi=Si.toString,ed=Si.hasOwnProperty,Li=/^\s*function (\w+)/;function Rr(e){var t,a=(t=e?.type)!==null&&t!==void 0?t:e;if(a){var n=a.toString().match(Li);return n?n[1]:""}return""}var vt=function(e){var t,a;return Fr(e)!==!1&&typeof(t=e.constructor)=="function"&&Fr(a=t.prototype)!==!1&&a.hasOwnProperty("isPrototypeOf")!==!1},td=function(e){return e},Ae=td,pa=function(e,t){return ed.call(e,t)},ad=Number.isInteger||function(e){return typeof e=="number"&&isFinite(e)&&Math.floor(e)===e},jt=Array.isArray||function(e){return Pi.call(e)==="[object Array]"},Ut=function(e){return Pi.call(e)==="[object Function]"},xa=function(e){return vt(e)&&pa(e,"_vueTypes_name")},Ti=function(e){return vt(e)&&(pa(e,"type")||["_vueTypes_name","validator","default","required"].some(function(t){return pa(e,t)}))};function rr(e,t){return Object.defineProperty(e.bind(t),"__original",{value:e})}function _t(e,t,a){var n,r=!0,o="";n=vt(e)?e:{type:e};var i=xa(n)?n._vueTypes_name+" - ":"";if(Ti(n)&&n.type!==null){if(n.type===void 0||n.type===!0||!n.required&&t===void 0)return r;jt(n.type)?(r=n.type.some(function(d){return _t(d,t)===!0}),o=n.type.map(function(d){return Rr(d)}).join(" or ")):r=(o=Rr(n))==="Array"?jt(t):o==="Object"?vt(t):o==="String"||o==="Number"||o==="Boolean"||o==="Function"?(function(d){if(d==null)return"";var m=d.constructor.toString().match(Li);return m?m[1]:""})(t)===o:t instanceof n.type}if(!r){var l=i+'value "'+t+'" should be of type "'+o+'"';return l}if(pa(n,"validator")&&Ut(n.validator)){var s=Ae,c=[];if(Ae=function(d){c.push(d)},r=n.validator(t),Ae=s,!r){var u=(c.length>1?"* ":"")+c.join(`
38
+ * `);return c.length=0,u}}return r}function we(e,t){var a=Object.defineProperties(t,{_vueTypes_name:{value:e,writable:!0},isRequired:{get:function(){return this.required=!0,this}},def:{value:function(r){return r!==void 0||this.default?Ut(r)||_t(this,r)===!0?(this.default=jt(r)?function(){return[].concat(r)}:vt(r)?function(){return Object.assign({},r)}:r,this):(Ae(this._vueTypes_name+' - invalid default value: "'+r+'"'),this):this}}}),n=a.validator;return Ut(n)&&(a.validator=rr(n,a)),a}function Ge(e,t){var a=we(e,t);return Object.defineProperty(a,"validate",{value:function(n){return Ut(this.validator)&&Ae(this._vueTypes_name+` - calling .validate() will overwrite the current custom validator function. Validator info:
39
+ `+JSON.stringify(this)),this.validator=rr(n,this),this}})}function xr(e,t,a){var n,r,o=(n=t,r={},Object.getOwnPropertyNames(n).forEach(function(d){r[d]=Object.getOwnPropertyDescriptor(n,d)}),Object.defineProperties({},r));if(o._vueTypes_name=e,!vt(a))return o;var i,l,s=a.validator,c=ki(a,["validator"]);if(Ut(s)){var u=o.validator;u&&(u=(l=(i=u).__original)!==null&&l!==void 0?l:i),o.validator=rr(u?function(d){return u.call(this,d)&&s.call(this,d)}:s,o)}return Object.assign(o,c)}function Za(e){return e.replace(/^(?!\s*$)/gm," ")}var nd=function(){return Ge("any",{})},rd=function(){return Ge("function",{type:Function})},od=function(){return Ge("boolean",{type:Boolean})},id=function(){return Ge("string",{type:String})},ld=function(){return Ge("number",{type:Number})},sd=function(){return Ge("array",{type:Array})},cd=function(){return Ge("object",{type:Object})},dd=function(){return we("integer",{type:Number,validator:function(e){return ad(e)}})},ud=function(){return we("symbol",{validator:function(e){return typeof e=="symbol"}})};function md(e,t){if(t===void 0&&(t="custom validation failed"),typeof e!="function")throw new TypeError("[VueTypes error]: You must provide a function as argument");return we(e.name||"<<anonymous function>>",{validator:function(a){var n=e(a);return n||Ae(this._vueTypes_name+" - "+t),n}})}function pd(e){if(!jt(e))throw new TypeError("[VueTypes error]: You must provide an array as argument.");var t='oneOf - value should be one of "'+e.join('", "')+'".',a=e.reduce(function(n,r){if(r!=null){var o=r.constructor;n.indexOf(o)===-1&&n.push(o)}return n},[]);return we("oneOf",{type:a.length>0?a:void 0,validator:function(n){var r=e.indexOf(n)!==-1;return r||Ae(t),r}})}function fd(e){if(!jt(e))throw new TypeError("[VueTypes error]: You must provide an array as argument");for(var t=!1,a=[],n=0;n<e.length;n+=1){var r=e[n];if(Ti(r)){if(xa(r)&&r._vueTypes_name==="oneOf"){a=a.concat(r.type);continue}if(Ut(r.validator)&&(t=!0),r.type!==!0&&r.type){a=a.concat(r.type);continue}}a.push(r)}return a=a.filter(function(o,i){return a.indexOf(o)===i}),we("oneOfType",t?{type:a,validator:function(o){var i=[],l=e.some(function(s){var c=_t(xa(s)&&s._vueTypes_name==="oneOf"?s.type||null:s,o);return typeof c=="string"&&i.push(c),c===!0});return l||Ae("oneOfType - provided value does not match any of the "+i.length+` passed-in validators:
40
+ `+Za(i.join(`
41
+ `))),l}}:{type:a})}function gd(e){return we("arrayOf",{type:Array,validator:function(t){var a,n=t.every(function(r){return(a=_t(e,r))===!0});return n||Ae(`arrayOf - value validation error:
42
+ `+Za(a)),n}})}function hd(e){return we("instanceOf",{type:e})}function bd(e){return we("objectOf",{type:Object,validator:function(t){var a,n=Object.keys(t).every(function(r){return(a=_t(e,t[r]))===!0});return n||Ae(`objectOf - value validation error:
43
+ `+Za(a)),n}})}function yd(e){var t=Object.keys(e),a=t.filter(function(r){var o;return!!(!((o=e[r])===null||o===void 0)&&o.required)}),n=we("shape",{type:Object,validator:function(r){var o=this;if(!vt(r))return!1;var i=Object.keys(r);if(a.length>0&&a.some(function(s){return i.indexOf(s)===-1})){var l=a.filter(function(s){return i.indexOf(s)===-1});return Ae(l.length===1?'shape - required property "'+l[0]+'" is not defined.':'shape - required properties "'+l.join('", "')+'" are not defined.'),!1}return i.every(function(s){if(t.indexOf(s)===-1)return o._vueTypes_isLoose===!0||(Ae('shape - shape definition does not include a "'+s+'" property. Allowed keys: "'+t.join('", "')+'".'),!1);var c=_t(e[s],r[s]);return typeof c=="string"&&Ae('shape - "'+s+`" property validation error:
44
+ `+Za(c)),c===!0})}});return Object.defineProperty(n,"_vueTypes_isLoose",{writable:!0,value:!1}),Object.defineProperty(n,"loose",{get:function(){return this._vueTypes_isLoose=!0,this}}),n}var He=(function(){function e(){}return e.extend=function(t){var a=this;if(jt(t))return t.forEach(function(d){return a.extend(d)}),this;var n=t.name,r=t.validate,o=r!==void 0&&r,i=t.getter,l=i!==void 0&&i,s=ki(t,["name","validate","getter"]);if(pa(this,n))throw new TypeError('[VueTypes error]: Type "'+n+'" already defined');var c,u=s.type;return xa(u)?(delete s.type,Object.defineProperty(this,n,l?{get:function(){return xr(n,u,s)}}:{value:function(){var d,m=xr(n,u,s);return m.validator&&(m.validator=(d=m.validator).bind.apply(d,[m].concat([].slice.call(arguments)))),m}})):(c=l?{get:function(){var d=Object.assign({},s);return o?Ge(n,d):we(n,d)},enumerable:!0}:{value:function(){var d,m,h=Object.assign({},s);return d=o?Ge(n,h):we(n,h),h.validator&&(d.validator=(m=h.validator).bind.apply(m,[d].concat([].slice.call(arguments)))),d},enumerable:!0},Object.defineProperty(this,n,c))},_i(e,null,[{key:"any",get:function(){return nd()}},{key:"func",get:function(){return rd().def(this.defaults.func)}},{key:"bool",get:function(){return od().def(this.defaults.bool)}},{key:"string",get:function(){return id().def(this.defaults.string)}},{key:"number",get:function(){return ld().def(this.defaults.number)}},{key:"array",get:function(){return sd().def(this.defaults.array)}},{key:"object",get:function(){return cd().def(this.defaults.object)}},{key:"integer",get:function(){return dd().def(this.defaults.integer)}},{key:"symbol",get:function(){return ud()}}]),e})();function Ei(e){var t;return e===void 0&&(e={func:function(){},bool:!0,string:"",number:0,array:function(){return[]},object:function(){return{}},integer:0}),(t=(function(a){function n(){return a.apply(this,arguments)||this}return Ci(n,a),_i(n,null,[{key:"sensibleDefaults",get:function(){return Aa({},this.defaults)},set:function(r){this.defaults=r!==!1?Aa({},r!==!0?r:e):{}}}]),n})(He)).defaults=Aa({},e),t}He.defaults={},He.custom=md,He.oneOf=pd,He.instanceOf=hd,He.oneOfType=fd,He.arrayOf=gd,He.objectOf=bd,He.shape=yd,He.utils={validate:function(e,t){return _t(t,e)===!0},toType:function(e,t,a){return a===void 0&&(a=!1),a?Ge(e,t):we(e,t)}};(function(e){function t(){return e.apply(this,arguments)||this}return Ci(t,e),t})(Ei());const Ii=Ei({func:void 0,bool:void 0,string:void 0,number:void 0,array:void 0,object:void 0,integer:void 0});Ii.extend([{name:"looseBool",getter:!0,type:Boolean,default:void 0},{name:"style",getter:!0,type:[String,Object],default:void 0},{name:"VueNode",getter:!0,type:null}]);function hh(e){return e.default=void 0,e}function vd(e){let{prefixCls:t,animation:a,transitionName:n}=e;return a?{name:`${t}-${a}`}:n?{name:n}:{}}Es("bottomLeft","bottomRight","topLeft","topRight");const bh=e=>e!==void 0&&(e==="topLeft"||e==="topRight")?"slide-down":"slide-up",yh=function(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return T(e?{name:e,appear:!0,enterFromClass:`${e}-enter ${e}-enter-prepare ${e}-enter-start`,enterActiveClass:`${e}-enter ${e}-enter-prepare`,enterToClass:`${e}-enter ${e}-enter-active`,leaveFromClass:` ${e}-leave`,leaveActiveClass:`${e}-leave ${e}-leave-active`,leaveToClass:`${e}-leave ${e}-leave-active`}:{css:!1},t)},Ai=function(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return T(e?{name:e,appear:!0,appearActiveClass:`${e}`,appearToClass:`${e}-appear ${e}-appear-active`,enterFromClass:`${e}-appear ${e}-enter ${e}-appear-prepare ${e}-enter-prepare`,enterActiveClass:`${e}`,enterToClass:`${e}-enter ${e}-appear ${e}-appear-active ${e}-enter-active`,leaveActiveClass:`${e} ${e}-leave`,leaveToClass:`${e}-leave-active`}:{css:!1},t)},vh=(e,t,a)=>a!==void 0?a:`${e}-${t}`,wi=Symbol("PortalContextKey"),_d=function(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{inTriggerContext:!0};ot(wi,{inTriggerContext:t.inTriggerContext,shouldRender:F(()=>{const{sPopupVisible:a,popupRef:n,forceRender:r,autoDestroy:o}=e||{};let i=!1;return(a||n||r)&&(i=!0),!a&&o&&(i=!1),i})})},Cd=()=>{_d({},{inTriggerContext:!1});const e=$e(wi,{shouldRender:F(()=>!1),inTriggerContext:!1});return{shouldRender:F(()=>e.shouldRender.value||e.inTriggerContext===!1)}},kd=pe({compatConfig:{MODE:3},name:"Portal",inheritAttrs:!1,props:{getContainer:Ii.func.isRequired,didUpdate:Function},setup(e,t){let{slots:a}=t,n=!0,r;const{shouldRender:o}=Cd();function i(){o.value&&(r=e.getContainer())}Ao(()=>{n=!1,i()}),ya(()=>{r||i()});const l=Se(o,()=>{o.value&&!r&&(r=e.getContainer()),r&&l()});return jl(()=>{Ul(()=>{var s;o.value&&((s=e.didUpdate)===null||s===void 0||s.call(e,e))})}),()=>{var s;return o.value?n?(s=a.default)===null||s===void 0?void 0:s.call(a):r?R(wo,{to:r},a):null:null}}});let wa=T({},yt.Modal);function Sd(e){e?wa=T(T({},wa),e):wa=T({},yt.Modal)}function _h(){return wa}const Tn="internalMark",Oa=pe({compatConfig:{MODE:3},name:"ALocaleProvider",props:{locale:{type:Object},ANT_MARK__:String},setup(e,t){let{slots:a}=t;Zo(e.ANT_MARK__===Tn);const n=ca({antLocale:T(T({},e.locale),{exist:!0}),ANT_MARK__:Tn});return ot("localeData",n),Se(()=>e.locale,r=>{Sd(r&&r.Modal),n.antLocale=T(T({},r),{exist:!0})},{immediate:!0}),()=>{var r;return(r=a.default)===null||r===void 0?void 0:r.call(a)}}});Oa.install=function(e){return e.component(Oa.name,Oa),e};const Pd=qn(Oa),Oi=pe({name:"Notice",inheritAttrs:!1,props:["prefixCls","duration","updateMark","noticeKey","closeIcon","closable","props","onClick","onClose","holder","visible"],setup(e,t){let{attrs:a,slots:n}=t,r,o=!1;const i=F(()=>e.duration===void 0?4.5:e.duration),l=()=>{i.value&&!o&&(r=setTimeout(()=>{c()},i.value*1e3))},s=()=>{r&&(clearTimeout(r),r=null)},c=d=>{d&&d.stopPropagation(),s();const{onClose:m,noticeKey:h}=e;m&&m(h)},u=()=>{s(),l()};return ya(()=>{l()}),Un(()=>{o=!0,s()}),Se([i,()=>e.updateMark,()=>e.visible],(d,m)=>{let[h,C,v]=d,[P,S,A]=m;(h!==P||C!==S||v!==A&&A)&&u()},{flush:"post"}),()=>{var d,m;const{prefixCls:h,closable:C,closeIcon:v=(d=n.closeIcon)===null||d===void 0?void 0:d.call(n),onClick:P,holder:S}=e,{class:A,style:b}=a,y=`${h}-notice`,_=Object.keys(a).reduce((f,I)=>((I.startsWith("data-")||I.startsWith("aria-")||I==="role")&&(f[I]=a[I]),f),{}),k=R("div",be({class:Pe(y,A,{[`${y}-closable`]:C}),style:b,onMouseenter:s,onMouseleave:l,onClick:P},_),[R("div",{class:`${y}-content`},[(m=n.default)===null||m===void 0?void 0:m.call(n)]),C?R("a",{tabindex:0,onClick:c,class:`${y}-close`},[v||R("span",{class:`${y}-close-x`},null)]):null]);return S?R(wo,{to:S},{default:()=>k}):k}}});var Ld=function(e,t){var a={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(a[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,n=Object.getOwnPropertySymbols(e);r<n.length;r++)t.indexOf(n[r])<0&&Object.prototype.propertyIsEnumerable.call(e,n[r])&&(a[n[r]]=e[n[r]]);return a};let Nr=0;const Td=Date.now();function Mr(){const e=Nr;return Nr+=1,`rcNotification_${Td}_${e}`}const Na=pe({name:"Notification",inheritAttrs:!1,props:["prefixCls","transitionName","animation","maxCount","closeIcon","hashId"],setup(e,t){let{attrs:a,expose:n,slots:r}=t;const o=new Map,i=ve([]),l=F(()=>{const{prefixCls:u,animation:d="fade"}=e;let m=e.transitionName;return!m&&d&&(m=`${u}-${d}`),Ai(m)}),s=(u,d)=>{const m=u.key||Mr(),h=T(T({},u),{key:m}),{maxCount:C}=e,v=i.value.map(S=>S.notice.key).indexOf(m),P=i.value.concat();v!==-1?P.splice(v,1,{notice:h,holderCallback:d}):(C&&i.value.length>=C&&(h.key=P[0].notice.key,h.updateMark=Mr(),h.userPassKey=m,P.shift()),P.push({notice:h,holderCallback:d})),i.value=P},c=u=>{i.value=Vl(i.value).filter(d=>{let{notice:{key:m,userPassKey:h}}=d;return(h||m)!==u})};return n({add:s,remove:c,notices:i}),()=>{var u;const{prefixCls:d,closeIcon:m=(u=r.closeIcon)===null||u===void 0?void 0:u.call(r,{prefixCls:d})}=e,h=i.value.map((v,P)=>{let{notice:S,holderCallback:A}=v;const b=P===i.value.length-1?S.updateMark:void 0,{key:y,userPassKey:_}=S,{content:k}=S,f=T(T(T({prefixCls:d,closeIcon:typeof m=="function"?m({prefixCls:d}):m},S),S.props),{key:y,noticeKey:_||y,updateMark:b,onClose:I=>{var w;c(I),(w=S.onClose)===null||w===void 0||w.call(S)},onClick:S.onClick});return A?R("div",{key:y,class:`${d}-hook-holder`,ref:I=>{typeof y>"u"||(I?(o.set(y,I),A(I,f)):o.delete(y))}},null):R(Oi,be(be({},f),{},{class:Pe(f.class,e.hashId)}),{default:()=>[typeof k=="function"?k({prefixCls:d}):k]})}),C={[d]:1,[a.class]:!!a.class,[e.hashId]:!0};return R("div",{class:C,style:a.style||{top:"65px",left:"50%"}},[R(Oo,be({tag:"div"},l.value),{default:()=>[h]})])}}});Na.newInstance=function(t,a){const n=t||{},{name:r="notification",getContainer:o,appContext:i,prefixCls:l,rootPrefixCls:s,transitionName:c,hasTransitionName:u,useStyle:d}=n,m=Ld(n,["name","getContainer","appContext","prefixCls","rootPrefixCls","transitionName","hasTransitionName","useStyle"]),h=document.createElement("div");o?o().appendChild(h):document.body.appendChild(h);const C=pe({compatConfig:{MODE:3},name:"NotificationWrapper",setup(P,S){let{attrs:A}=S;const b=Ie(),y=F(()=>he.getPrefixCls(r,l)),[,_]=d(y);return ya(()=>{a({notice(k){var f;(f=b.value)===null||f===void 0||f.add(k)},removeNotice(k){var f;(f=b.value)===null||f===void 0||f.remove(k)},destroy(){gr(null,h),h.parentNode&&h.parentNode.removeChild(h)},component:b})}),()=>{const k=he,f=k.getRootPrefixCls(s,y.value),I=u?c:`${y.value}-${c}`;return R(xt,be(be({},k),{},{prefixCls:f}),{default:()=>[R(Na,be(be({ref:b},A),{},{prefixCls:y.value,transitionName:I,hashId:_.value}),null)]})}}}),v=R(C,m);v.appContext=i||v.appContext,gr(v,h)};let $r=0;const Ed=Date.now();function Br(){const e=$r;return $r+=1,`rcNotification_${Ed}_${e}`}const Id=pe({name:"HookNotification",inheritAttrs:!1,props:["prefixCls","transitionName","animation","maxCount","closeIcon","hashId","remove","notices","getStyles","getClassName","onAllRemoved","getContainer"],setup(e,t){let{attrs:a,slots:n}=t;const r=new Map,o=F(()=>e.notices),i=F(()=>{let u=e.transitionName;if(!u&&e.animation)switch(typeof e.animation){case"string":u=e.animation;break;case"function":u=e.animation().name;break;case"object":u=e.animation.name;break;default:u=`${e.prefixCls}-fade`;break}return Ai(u)}),l=u=>e.remove(u),s=ve({});Se(o,()=>{const u={};Object.keys(s.value).forEach(d=>{u[d]=[]}),e.notices.forEach(d=>{const{placement:m="topRight"}=d.notice;m&&(u[m]=u[m]||[],u[m].push(d))}),s.value=u});const c=F(()=>Object.keys(s.value));return()=>{var u;const{prefixCls:d,closeIcon:m=(u=n.closeIcon)===null||u===void 0?void 0:u.call(n,{prefixCls:d})}=e,h=c.value.map(C=>{var v,P;const S=s.value[C],A=(v=e.getClassName)===null||v===void 0?void 0:v.call(e,C),b=(P=e.getStyles)===null||P===void 0?void 0:P.call(e,C),y=S.map((f,I)=>{let{notice:w,holderCallback:K}=f;const ee=I===o.value.length-1?w.updateMark:void 0,{key:U,userPassKey:oe}=w,{content:M}=w,L=T(T(T({prefixCls:d,closeIcon:typeof m=="function"?m({prefixCls:d}):m},w),w.props),{key:U,noticeKey:oe||U,updateMark:ee,onClose:x=>{var z;l(x),(z=w.onClose)===null||z===void 0||z.call(w)},onClick:w.onClick});return K?R("div",{key:U,class:`${d}-hook-holder`,ref:x=>{typeof U>"u"||(x?(r.set(U,x),K(x,L)):r.delete(U))}},null):R(Oi,be(be({},L),{},{class:Pe(L.class,e.hashId)}),{default:()=>[typeof M=="function"?M({prefixCls:d}):M]})}),_={[d]:1,[`${d}-${C}`]:1,[a.class]:!!a.class,[e.hashId]:!0,[A]:!!A};function k(){var f;S.length>0||(Reflect.deleteProperty(s.value,C),(f=e.onAllRemoved)===null||f===void 0||f.call(e))}return R("div",{key:C,class:_,style:a.style||b||{top:"65px",left:"50%"}},[R(Oo,be(be({tag:"div"},i.value),{},{onAfterLeave:k}),{default:()=>[y]})])});return R(kd,{getContainer:e.getContainer},{default:()=>[h]})}}});var Ad=function(e,t){var a={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(a[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,n=Object.getOwnPropertySymbols(e);r<n.length;r++)t.indexOf(n[r])<0&&Object.prototype.propertyIsEnumerable.call(e,n[r])&&(a[n[r]]=e[n[r]]);return a};const wd=()=>document.body;let Hr=0;function Od(){const e={};for(var t=arguments.length,a=new Array(t),n=0;n<t;n++)a[n]=arguments[n];return a.forEach(r=>{r&&Object.keys(r).forEach(o=>{const i=r[o];i!==void 0&&(e[o]=i)})}),e}function Di(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};const{getContainer:t=wd,motion:a,prefixCls:n,maxCount:r,getClassName:o,getStyles:i,onAllRemoved:l}=e,s=Ad(e,["getContainer","motion","prefixCls","maxCount","getClassName","getStyles","onAllRemoved"]),c=Ie([]),u=Ie(),d=(S,A)=>{const b=S.key||Br(),y=T(T({},S),{key:b}),_=c.value.map(f=>f.notice.key).indexOf(b),k=c.value.concat();_!==-1?k.splice(_,1,{notice:y,holderCallback:A}):(r&&c.value.length>=r&&(y.key=k[0].notice.key,y.updateMark=Br(),y.userPassKey=b,k.shift()),k.push({notice:y,holderCallback:A})),c.value=k},m=S=>{c.value=c.value.filter(A=>{let{notice:{key:b,userPassKey:y}}=A;return(y||b)!==S})},h=()=>{c.value=[]},C=()=>R(Id,{ref:u,prefixCls:n,maxCount:r,notices:c.value,remove:m,getClassName:o,getStyles:i,animation:a,hashId:e.hashId,onAllRemoved:l,getContainer:t},null),v=Ie([]),P={open:S=>{const A=Od(s,S);(A.key===null||A.key===void 0)&&(A.key=`vc-notification-${Hr}`,Hr+=1),v.value=[...v.value,{type:"open",config:A}]},close:S=>{v.value=[...v.value,{type:"close",key:S}]},destroy:()=>{v.value=[...v.value,{type:"destroy"}]}};return Se(v,()=>{v.value.length&&(v.value.forEach(S=>{switch(S.type){case"open":d(S.config);break;case"close":m(S.key);break;case"destroy":h();break}}),v.value=[])}),[P,C]}const Dd=e=>{const{componentCls:t,iconCls:a,boxShadowSecondary:n,colorBgElevated:r,colorSuccess:o,colorError:i,colorWarning:l,colorInfo:s,fontSizeLG:c,motionEaseInOutCirc:u,motionDurationSlow:d,marginXS:m,paddingXS:h,borderRadiusLG:C,zIndexPopup:v,messageNoticeContentPadding:P}=e,S=new bt("MessageMoveIn",{"0%":{padding:0,transform:"translateY(-100%)",opacity:0},"100%":{padding:h,transform:"translateY(0)",opacity:1}}),A=new bt("MessageMoveOut",{"0%":{maxHeight:e.height,padding:h,opacity:1},"100%":{maxHeight:0,padding:0,opacity:0}});return[{[t]:T(T({},mi(e)),{position:"fixed",top:m,left:"50%",transform:"translateX(-50%)",width:"100%",pointerEvents:"none",zIndex:v,[`${t}-move-up`]:{animationFillMode:"forwards"},[`
45
+ ${t}-move-up-appear,
46
+ ${t}-move-up-enter
47
+ `]:{animationName:S,animationDuration:d,animationPlayState:"paused",animationTimingFunction:u},[`
48
+ ${t}-move-up-appear${t}-move-up-appear-active,
49
+ ${t}-move-up-enter${t}-move-up-enter-active
50
+ `]:{animationPlayState:"running"},[`${t}-move-up-leave`]:{animationName:A,animationDuration:d,animationPlayState:"paused",animationTimingFunction:u},[`${t}-move-up-leave${t}-move-up-leave-active`]:{animationPlayState:"running"},"&-rtl":{direction:"rtl",span:{direction:"rtl"}}})},{[`${t}-notice`]:{padding:h,textAlign:"center",[a]:{verticalAlign:"text-bottom",marginInlineEnd:m,fontSize:c},[`${t}-notice-content`]:{display:"inline-block",padding:P,background:r,borderRadius:C,boxShadow:n,pointerEvents:"all"},[`${t}-success ${a}`]:{color:o},[`${t}-error ${a}`]:{color:i},[`${t}-warning ${a}`]:{color:l},[`
51
+ ${t}-info ${a},
52
+ ${t}-loading ${a}`]:{color:s}}},{[`${t}-notice-pure-panel`]:{padding:0,textAlign:"start"}}]},Fi=er("Message",e=>{const t=Xa(e,{messageNoticeContentPadding:`${(e.controlHeightLG-e.fontSize*e.lineHeight)/2}px ${e.paddingSM}px`});return[Dd(t)]},e=>({height:150,zIndexPopup:e.zIndexPopupBase+10})),Fd={info:R(Va,null,null),success:R(Ua,null,null),error:R(ja,null,null),warning:R(Ha,null,null),loading:R(Vn,null,null)},Rd=pe({name:"PureContent",inheritAttrs:!1,props:["prefixCls","type","icon"],setup(e,t){let{slots:a}=t;return()=>{var n;return R("div",{class:Pe(`${e.prefixCls}-custom-content`,`${e.prefixCls}-${e.type}`)},[e.icon||Fd[e.type],R("span",null,[(n=a.default)===null||n===void 0?void 0:n.call(a)])])}}});var xd=function(e,t){var a={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(a[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,n=Object.getOwnPropertySymbols(e);r<n.length;r++)t.indexOf(n[r])<0&&Object.prototype.propertyIsEnumerable.call(e,n[r])&&(a[n[r]]=e[n[r]]);return a};const Nd=8,Md=3,$d=pe({name:"Holder",inheritAttrs:!1,props:["top","prefixCls","getContainer","maxCount","duration","rtl","transitionName","onAllRemoved","animation","staticGetContainer"],setup(e,t){let{expose:a}=t;var n,r;const{getPrefixCls:o,getPopupContainer:i}=Qa("message",e),l=F(()=>o("message",e.prefixCls)),[,s]=Fi(l),c=()=>{var v;const P=(v=e.top)!==null&&v!==void 0?v:Nd;return{left:"50%",transform:"translateX(-50%)",top:typeof P=="number"?`${P}px`:P}},u=()=>Pe(s.value,e.rtl?`${l.value}-rtl`:""),d=()=>{var v;return vd({prefixCls:l.value,animation:(v=e.animation)!==null&&v!==void 0?v:"move-up",transitionName:e.transitionName})},m=R("span",{class:`${l.value}-close-x`},[R(Wn,{class:`${l.value}-close-icon`},null)]),[h,C]=Di({getStyles:c,prefixCls:l.value,getClassName:u,motion:d,closable:!1,closeIcon:m,duration:(n=e.duration)!==null&&n!==void 0?n:Md,getContainer:(r=e.staticGetContainer)!==null&&r!==void 0?r:i.value,maxCount:e.maxCount,onAllRemoved:e.onAllRemoved});return a(T(T({},h),{prefixCls:l,hashId:s})),C}});let jr=0;function Bd(e){const t=Ie(null),a=Symbol("messageHolderKey"),n=s=>{var c;(c=t.value)===null||c===void 0||c.close(s)},r=s=>{if(!t.value){const _=()=>{};return _.then=()=>{},_}const{open:c,prefixCls:u,hashId:d}=t.value,m=`${u}-notice`,{content:h,icon:C,type:v,key:P,class:S,onClose:A}=s,b=xd(s,["content","icon","type","key","class","onClose"]);let y=P;return y==null&&(jr+=1,y=`antd-message-${jr}`),ks(_=>(c(T(T({},b),{key:y,content:()=>R(Rd,{prefixCls:u,type:v,icon:typeof C=="function"?C():C},{default:()=>[typeof h=="function"?h():h]}),placement:"top",class:Pe(v&&`${m}-${v}`,d,S),onClose:()=>{A?.(),_()}})),()=>{n(y)}))},i={open:r,destroy:s=>{var c;s!==void 0?n(s):(c=t.value)===null||c===void 0||c.destroy()}};return["info","success","warning","error","loading"].forEach(s=>{const c=(u,d,m)=>{let h;u&&typeof u=="object"&&"content"in u?h=u:h={content:u};let C,v;typeof d=="function"?v=d:(C=d,v=m);const P=T(T({onClose:v,duration:C},h),{type:s});return r(P)};i[s]=c}),[i,()=>R($d,be(be({key:a},e),{},{ref:t}),null)]}function Hd(e){return Bd(e)}let Ri=3,xi,Ce,jd=1,Ni="",Mi="move-up",$i=!1,Bi=()=>document.body,Hi,ji=!1;function Ud(){return jd++}function Vd(e){e.top!==void 0&&(xi=e.top,Ce=null),e.duration!==void 0&&(Ri=e.duration),e.prefixCls!==void 0&&(Ni=e.prefixCls),e.getContainer!==void 0&&(Bi=e.getContainer,Ce=null),e.transitionName!==void 0&&(Mi=e.transitionName,Ce=null,$i=!0),e.maxCount!==void 0&&(Hi=e.maxCount,Ce=null),e.rtl!==void 0&&(ji=e.rtl)}function Wd(e,t){if(Ce){t(Ce);return}Na.newInstance({appContext:e.appContext,prefixCls:e.prefixCls||Ni,rootPrefixCls:e.rootPrefixCls,transitionName:Mi,hasTransitionName:$i,style:{top:xi},getContainer:Bi||e.getPopupContainer,maxCount:Hi,name:"message",useStyle:Fi},a=>{if(Ce){t(Ce);return}Ce=a,t(a)})}const Ui={info:Va,success:Ua,error:ja,warning:Ha,loading:Vn},zd=Object.keys(Ui);function Gd(e){const t=e.duration!==void 0?e.duration:Ri,a=e.key||Ud(),n=new Promise(o=>{const i=()=>(typeof e.onClose=="function"&&e.onClose(),o(!0));Wd(e,l=>{l.notice({key:a,duration:t,style:e.style||{},class:e.class,content:s=>{let{prefixCls:c}=s;const u=Ui[e.type],d=u?R(u,null,null):"",m=Pe(`${c}-custom-content`,{[`${c}-${e.type}`]:e.type,[`${c}-rtl`]:ji===!0});return R("div",{class:m},[typeof e.icon=="function"?e.icon():e.icon||d,R("span",null,[typeof e.content=="function"?e.content():e.content])])},onClose:i,onClick:e.onClick})})}),r=()=>{Ce&&Ce.removeNotice(a)};return r.then=(o,i)=>n.then(o,i),r.promise=n,r}function qd(e){return Object.prototype.toString.call(e)==="[object Object]"&&!!e.content}const Ve={open:Gd,config:Vd,destroy(e){if(Ce)if(e){const{removeNotice:t}=Ce;t(e)}else{const{destroy:t}=Ce;t(),Ce=null}}};function Yd(e,t){e[t]=(a,n,r)=>qd(a)?e.open(T(T({},a),{type:t})):(typeof n=="function"&&(r=n,n=void 0),e.open({content:a,duration:n,type:t,onClose:r}))}zd.forEach(e=>Yd(Ve,e));Ve.warn=Ve.warning;Ve.useMessage=Hd;const Kd=e=>{const{componentCls:t,width:a,notificationMarginEdge:n}=e,r=new bt("antNotificationTopFadeIn",{"0%":{marginTop:"-100%",opacity:0},"100%":{marginTop:0,opacity:1}}),o=new bt("antNotificationBottomFadeIn",{"0%":{marginBottom:"-100%",opacity:0},"100%":{marginBottom:0,opacity:1}}),i=new bt("antNotificationLeftFadeIn",{"0%":{right:{_skip_check_:!0,value:a},opacity:0},"100%":{right:{_skip_check_:!0,value:0},opacity:1}});return{[`&${t}-top, &${t}-bottom`]:{marginInline:0},[`&${t}-top`]:{[`${t}-fade-enter${t}-fade-enter-active, ${t}-fade-appear${t}-fade-appear-active`]:{animationName:r}},[`&${t}-bottom`]:{[`${t}-fade-enter${t}-fade-enter-active, ${t}-fade-appear${t}-fade-appear-active`]:{animationName:o}},[`&${t}-topLeft, &${t}-bottomLeft`]:{marginInlineEnd:0,marginInlineStart:n,[`${t}-fade-enter${t}-fade-enter-active, ${t}-fade-appear${t}-fade-appear-active`]:{animationName:i}}}},Xd=e=>{const{iconCls:t,componentCls:a,boxShadowSecondary:n,fontSizeLG:r,notificationMarginBottom:o,borderRadiusLG:i,colorSuccess:l,colorInfo:s,colorWarning:c,colorError:u,colorTextHeading:d,notificationBg:m,notificationPadding:h,notificationMarginEdge:C,motionDurationMid:v,motionEaseInOut:P,fontSize:S,lineHeight:A,width:b,notificationIconSize:y}=e,_=`${a}-notice`,k=new bt("antNotificationFadeIn",{"0%":{left:{_skip_check_:!0,value:b},opacity:0},"100%":{left:{_skip_check_:!0,value:0},opacity:1}}),f=new bt("antNotificationFadeOut",{"0%":{maxHeight:e.animationMaxHeight,marginBottom:o,opacity:1},"100%":{maxHeight:0,marginBottom:0,paddingTop:0,paddingBottom:0,opacity:0}});return[{[a]:T(T(T(T({},mi(e)),{position:"fixed",zIndex:e.zIndexPopup,marginInlineEnd:C,[`${a}-hook-holder`]:{position:"relative"},[`&${a}-top, &${a}-bottom`]:{[`${a}-notice`]:{marginInline:"auto auto"}},[`&${a}-topLeft, &${a}-bottomLeft`]:{[`${a}-notice`]:{marginInlineEnd:"auto",marginInlineStart:0}},[`${a}-fade-enter, ${a}-fade-appear`]:{animationDuration:e.motionDurationMid,animationTimingFunction:P,animationFillMode:"both",opacity:0,animationPlayState:"paused"},[`${a}-fade-leave`]:{animationTimingFunction:P,animationFillMode:"both",animationDuration:v,animationPlayState:"paused"},[`${a}-fade-enter${a}-fade-enter-active, ${a}-fade-appear${a}-fade-appear-active`]:{animationName:k,animationPlayState:"running"},[`${a}-fade-leave${a}-fade-leave-active`]:{animationName:f,animationPlayState:"running"}}),Kd(e)),{"&-rtl":{direction:"rtl",[`${a}-notice-btn`]:{float:"left"}}})},{[_]:{position:"relative",width:b,maxWidth:`calc(100vw - ${C*2}px)`,marginBottom:o,marginInlineStart:"auto",padding:h,overflow:"hidden",lineHeight:A,wordWrap:"break-word",background:m,borderRadius:i,boxShadow:n,[`${a}-close-icon`]:{fontSize:S,cursor:"pointer"},[`${_}-message`]:{marginBottom:e.marginXS,color:d,fontSize:r,lineHeight:e.lineHeightLG},[`${_}-description`]:{fontSize:S},[`&${_}-closable ${_}-message`]:{paddingInlineEnd:e.paddingLG},[`${_}-with-icon ${_}-message`]:{marginBottom:e.marginXS,marginInlineStart:e.marginSM+y,fontSize:r},[`${_}-with-icon ${_}-description`]:{marginInlineStart:e.marginSM+y,fontSize:S},[`${_}-icon`]:{position:"absolute",fontSize:y,lineHeight:0,[`&-success${t}`]:{color:l},[`&-info${t}`]:{color:s},[`&-warning${t}`]:{color:c},[`&-error${t}`]:{color:u}},[`${_}-close`]:{position:"absolute",top:e.notificationPaddingVertical,insetInlineEnd:e.notificationPaddingHorizontal,color:e.colorIcon,outline:"none",width:e.notificationCloseButtonSize,height:e.notificationCloseButtonSize,borderRadius:e.borderRadiusSM,transition:`background-color ${e.motionDurationMid}, color ${e.motionDurationMid}`,display:"flex",alignItems:"center",justifyContent:"center","&:hover":{color:e.colorIconHover,backgroundColor:e.wireframe?"transparent":e.colorFillContent}},[`${_}-btn`]:{float:"right",marginTop:e.marginSM}}},{[`${_}-pure-panel`]:{margin:0}}]},Vi=er("Notification",e=>{const t=e.paddingMD,a=e.paddingLG,n=Xa(e,{notificationBg:e.colorBgElevated,notificationPaddingVertical:t,notificationPaddingHorizontal:a,notificationPadding:`${e.paddingMD}px ${e.paddingContentHorizontalLG}px`,notificationMarginBottom:e.margin,notificationMarginEdge:e.marginLG,animationMaxHeight:150,notificationIconSize:e.fontSizeLG*e.lineHeightLG,notificationCloseButtonSize:e.controlHeightLG*.55});return[Xd(n)]},e=>({zIndexPopup:e.zIndexPopupBase+50,width:384}));function Jd(e,t){return t||R("span",{class:`${e}-close-x`},[R(Wn,{class:`${e}-close-icon`},null)])}R(Va,null,null),R(Ua,null,null),R(ja,null,null),R(Ha,null,null),R(Vn,null,null);const Qd={success:Ua,info:Va,error:ja,warning:Ha};function Zd(e){let{prefixCls:t,icon:a,type:n,message:r,description:o,btn:i}=e,l=null;if(a)l=R("span",{class:`${t}-icon`},[At(a)]);else if(n){const s=Qd[n];l=R(s,{class:`${t}-icon ${t}-icon-${n}`},null)}return R("div",{class:Pe({[`${t}-with-icon`]:l}),role:"alert"},[l,R("div",{class:`${t}-message`},[r]),R("div",{class:`${t}-description`},[o]),i&&R("div",{class:`${t}-btn`},[i])])}function Wi(e,t,a){let n;switch(t=typeof t=="number"?`${t}px`:t,a=typeof a=="number"?`${a}px`:a,e){case"top":n={left:"50%",transform:"translateX(-50%)",right:"auto",top:t,bottom:"auto"};break;case"topLeft":n={left:0,top:t,bottom:"auto"};break;case"topRight":n={right:0,top:t,bottom:"auto"};break;case"bottom":n={left:"50%",transform:"translateX(-50%)",right:"auto",top:"auto",bottom:a};break;case"bottomLeft":n={left:0,top:"auto",bottom:a};break;default:n={right:0,top:"auto",bottom:a};break}return n}function eu(e){return{name:`${e}-fade`}}var tu=function(e,t){var a={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(a[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,n=Object.getOwnPropertySymbols(e);r<n.length;r++)t.indexOf(n[r])<0&&Object.prototype.propertyIsEnumerable.call(e,n[r])&&(a[n[r]]=e[n[r]]);return a};const Ur=24,au=4.5,nu=pe({name:"Holder",inheritAttrs:!1,props:["prefixCls","class","type","icon","content","onAllRemoved"],setup(e,t){let{expose:a}=t;const{getPrefixCls:n,getPopupContainer:r}=Qa("notification",e),o=F(()=>e.prefixCls||n("notification")),i=m=>{var h,C;return Wi(m,(h=e.top)!==null&&h!==void 0?h:Ur,(C=e.bottom)!==null&&C!==void 0?C:Ur)},[,l]=Vi(o),s=()=>Pe(l.value,{[`${o.value}-rtl`]:e.rtl}),c=()=>eu(o.value),[u,d]=Di({prefixCls:o.value,getStyles:i,getClassName:s,motion:c,closable:!0,closeIcon:Jd(o.value),duration:au,getContainer:()=>{var m,h;return((m=e.getPopupContainer)===null||m===void 0?void 0:m.call(e))||((h=r.value)===null||h===void 0?void 0:h.call(r))||document.body},maxCount:e.maxCount,hashId:l.value,onAllRemoved:e.onAllRemoved});return a(T(T({},u),{prefixCls:o.value,hashId:l})),d}});function ru(e){const t=Ie(null),a=Symbol("notificationHolderKey"),n=l=>{if(!t.value)return;const{open:s,prefixCls:c,hashId:u}=t.value,d=`${c}-notice`,{message:m,description:h,icon:C,type:v,btn:P,class:S}=l,A=tu(l,["message","description","icon","type","btn","class"]);return s(T(T({placement:"topRight"},A),{content:()=>R(Zd,{prefixCls:d,icon:typeof C=="function"?C():C,type:v,message:typeof m=="function"?m():m,description:typeof h=="function"?h():h,btn:typeof P=="function"?P():P},null),class:Pe(v&&`${d}-${v}`,u,S)}))},o={open:n,destroy:l=>{var s,c;l!==void 0?(s=t.value)===null||s===void 0||s.close(l):(c=t.value)===null||c===void 0||c.destroy()}};return["success","info","warning","error"].forEach(l=>{o[l]=s=>n(T(T({},s),{type:l}))}),[o,()=>R(nu,be(be({key:a},e),{},{ref:t}),null)]}function ou(e){return ru(e)}const ft={};let zi=4.5,Gi="24px",qi="24px",En="",Yi="topRight",Ki=()=>document.body,Xi=null,In=!1,Ji;function iu(e){const{duration:t,placement:a,bottom:n,top:r,getContainer:o,closeIcon:i,prefixCls:l}=e;l!==void 0&&(En=l),t!==void 0&&(zi=t),a!==void 0&&(Yi=a),n!==void 0&&(qi=typeof n=="number"?`${n}px`:n),r!==void 0&&(Gi=typeof r=="number"?`${r}px`:r),o!==void 0&&(Ki=o),i!==void 0&&(Xi=i),e.rtl!==void 0&&(In=e.rtl),e.maxCount!==void 0&&(Ji=e.maxCount)}function lu(e,t){let{prefixCls:a,placement:n=Yi,getContainer:r=Ki,top:o,bottom:i,closeIcon:l=Xi,appContext:s}=e;const{getPrefixCls:c}=el(),u=c("notification",a||En),d=`${u}-${n}-${In}`,m=ft[d];if(m){Promise.resolve(m).then(C=>{t(C)});return}const h=Pe(`${u}-${n}`,{[`${u}-rtl`]:In===!0});Na.newInstance({name:"notification",prefixCls:a||En,useStyle:Vi,class:h,style:Wi(n,o??Gi,i??qi),appContext:s,getContainer:r,closeIcon:C=>{let{prefixCls:v}=C;return R("span",{class:`${v}-close-x`},[At(l,{},R(Wn,{class:`${v}-close-icon`},null))])},maxCount:Ji,hasTransitionName:!0},C=>{ft[d]=C,t(C)})}const su={success:is,info:os,error:rs,warning:ns};function cu(e){const{icon:t,type:a,description:n,message:r,btn:o}=e,i=e.duration===void 0?zi:e.duration;lu(e,l=>{l.notice({content:s=>{let{prefixCls:c}=s;const u=`${c}-notice`;let d=null;if(t)d=()=>R("span",{class:`${u}-icon`},[At(t)]);else if(a){const m=su[a];d=()=>R(m,{class:`${u}-icon ${u}-icon-${a}`},null)}return R("div",{class:d?`${u}-with-icon`:""},[d&&d(),R("div",{class:`${u}-message`},[!n&&d?R("span",{class:`${u}-message-single-line-auto-margin`},null):null,At(r)]),R("div",{class:`${u}-description`},[At(n)]),o?R("span",{class:`${u}-btn`},[At(o)]):null])},duration:i,closable:!0,onClose:e.onClose,onClick:e.onClick,key:e.key,style:e.style||{},class:e.class})})}const Vt={open:cu,close(e){Object.keys(ft).forEach(t=>Promise.resolve(ft[t]).then(a=>{a.removeNotice(e)}))},config:iu,destroy(){Object.keys(ft).forEach(e=>{Promise.resolve(ft[e]).then(t=>{t.destroy()}),delete ft[e]})}},du=["success","info","warning","error"];du.forEach(e=>{Vt[e]=t=>Vt.open(T(T({},t),{type:e}))});Vt.warn=Vt.warning;Vt.useNotification=ou;const uu=`-ant-${Date.now()}-${Math.random()}`;function mu(e,t){const a={},n=(i,l)=>{let s=i.clone();return s=l?.(s)||s,s.toRgbString()},r=(i,l)=>{const s=new ue(i),c=Mt(s.toRgbString());a[`${l}-color`]=n(s),a[`${l}-color-disabled`]=c[1],a[`${l}-color-hover`]=c[4],a[`${l}-color-active`]=c[6],a[`${l}-color-outline`]=s.clone().setAlpha(.2).toRgbString(),a[`${l}-color-deprecated-bg`]=c[0],a[`${l}-color-deprecated-border`]=c[2]};if(t.primaryColor){r(t.primaryColor,"primary");const i=new ue(t.primaryColor),l=Mt(i.toRgbString());l.forEach((c,u)=>{a[`primary-${u+1}`]=c}),a["primary-color-deprecated-l-35"]=n(i,c=>c.lighten(35)),a["primary-color-deprecated-l-20"]=n(i,c=>c.lighten(20)),a["primary-color-deprecated-t-20"]=n(i,c=>c.tint(20)),a["primary-color-deprecated-t-50"]=n(i,c=>c.tint(50)),a["primary-color-deprecated-f-12"]=n(i,c=>c.setAlpha(c.getAlpha()*.12));const s=new ue(l[0]);a["primary-color-active-deprecated-f-30"]=n(s,c=>c.setAlpha(c.getAlpha()*.3)),a["primary-color-active-deprecated-d-02"]=n(s,c=>c.darken(2))}return t.successColor&&r(t.successColor,"success"),t.warningColor&&r(t.warningColor,"warning"),t.errorColor&&r(t.errorColor,"error"),t.infoColor&&r(t.infoColor,"info"),`
53
+ :root {
54
+ ${Object.keys(a).map(i=>`--${e}-${i}: ${a[i]};`).join(`
55
+ `)}
56
+ }
57
+ `.trim()}function pu(e,t){const a=mu(e,t);Yt()&&Fa(a,`${uu}-dynamic-theme`)}const fu=e=>{const[t,a]=Ja();return Sn(F(()=>({theme:t.value,token:a.value,hashId:"",path:["ant-design-icons",e.value]})),()=>[{[`.${e.value}`]:T(T({},$c()),{[`.${e.value} .${e.value}-icon`]:{display:"block"}})}])};function gu(e,t){const a=F(()=>e?.value||{}),n=F(()=>a.value.inherit===!1||!t?.value?tr:t.value);return F(()=>{if(!e?.value)return t?.value;const o=T({},n.value.components);return Object.keys(e.value.components||{}).forEach(i=>{o[i]=T(T({},o[i]),e.value.components[i])}),T(T(T({},n.value),a.value),{token:T(T({},n.value.token),a.value.token),components:o})})}var hu=function(e,t){var a={};for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.indexOf(n)<0&&(a[n]=e[n]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,n=Object.getOwnPropertySymbols(e);r<n.length;r++)t.indexOf(n[r])<0&&Object.prototype.propertyIsEnumerable.call(e,n[r])&&(a[n[r]]=e[n[r]]);return a};const Qi="ant";function Rt(){return he.prefixCls||Qi}function Zi(){return he.iconPrefixCls||Wa}const or=ca({}),he=ca({}),bu=["getTargetContainer","getPopupContainer","rootPrefixCls","getPrefixCls","renderEmpty","csp","autoInsertSpaceInButton","locale","pageHeader"];Ba(()=>{T(he,or),he.prefixCls=Rt(),he.iconPrefixCls=Zi(),he.getPrefixCls=(e,t)=>t||(e?`${he.prefixCls}-${e}`:he.prefixCls),he.getRootPrefixCls=()=>he.prefixCls?he.prefixCls:Rt()});let mn;const yu=e=>{mn&&mn(),mn=Ba(()=>{T(or,ca(e)),T(he,ca(e))}),e.theme&&pu(Rt(),e.theme)},el=()=>({getPrefixCls:(e,t)=>t||(e?`${Rt()}-${e}`:Rt()),getIconPrefixCls:Zi,getRootPrefixCls:()=>he.prefixCls?he.prefixCls:Rt()}),xt=pe({compatConfig:{MODE:3},name:"AConfigProvider",inheritAttrs:!1,props:ws(),setup(e,t){let{slots:a}=t;const n=Bo(),r=(L,x)=>{const{prefixCls:z="ant"}=e;if(x)return x;const q=z||n.getPrefixCls("");return L?`${q}-${L}`:q},o=F(()=>e.iconPrefixCls||n.iconPrefixCls.value||Wa),i=F(()=>o.value!==n.iconPrefixCls.value),l=F(()=>{var L;return e.csp||((L=n.csp)===null||L===void 0?void 0:L.value)}),s=fu(o),c=gu(F(()=>e.theme),F(()=>{var L;return(L=n.theme)===null||L===void 0?void 0:L.value})),u=L=>(e.renderEmpty||a.renderEmpty||n.renderEmpty||Jc)(L),d=F(()=>{var L,x;return(L=e.autoInsertSpaceInButton)!==null&&L!==void 0?L:(x=n.autoInsertSpaceInButton)===null||x===void 0?void 0:x.value}),m=F(()=>{var L;return e.locale||((L=n.locale)===null||L===void 0?void 0:L.value)});Se(m,()=>{or.locale=m.value},{immediate:!0});const h=F(()=>{var L;return e.direction||((L=n.direction)===null||L===void 0?void 0:L.value)}),C=F(()=>{var L,x;return(L=e.space)!==null&&L!==void 0?L:(x=n.space)===null||x===void 0?void 0:x.value}),v=F(()=>{var L,x;return(L=e.virtual)!==null&&L!==void 0?L:(x=n.virtual)===null||x===void 0?void 0:x.value}),P=F(()=>{var L,x;return(L=e.dropdownMatchSelectWidth)!==null&&L!==void 0?L:(x=n.dropdownMatchSelectWidth)===null||x===void 0?void 0:x.value}),S=F(()=>{var L;return e.getTargetContainer!==void 0?e.getTargetContainer:(L=n.getTargetContainer)===null||L===void 0?void 0:L.value}),A=F(()=>{var L;return e.getPopupContainer!==void 0?e.getPopupContainer:(L=n.getPopupContainer)===null||L===void 0?void 0:L.value}),b=F(()=>{var L;return e.pageHeader!==void 0?e.pageHeader:(L=n.pageHeader)===null||L===void 0?void 0:L.value}),y=F(()=>{var L;return e.input!==void 0?e.input:(L=n.input)===null||L===void 0?void 0:L.value}),_=F(()=>{var L;return e.pagination!==void 0?e.pagination:(L=n.pagination)===null||L===void 0?void 0:L.value}),k=F(()=>{var L;return e.form!==void 0?e.form:(L=n.form)===null||L===void 0?void 0:L.value}),f=F(()=>{var L;return e.select!==void 0?e.select:(L=n.select)===null||L===void 0?void 0:L.value}),I=F(()=>e.componentSize),w=F(()=>e.componentDisabled),K=F(()=>{var L,x;return(L=e.wave)!==null&&L!==void 0?L:(x=n.wave)===null||x===void 0?void 0:x.value}),ee={csp:l,autoInsertSpaceInButton:d,locale:m,direction:h,space:C,virtual:v,dropdownMatchSelectWidth:P,getPrefixCls:r,iconPrefixCls:o,theme:F(()=>{var L,x;return(L=c.value)!==null&&L!==void 0?L:(x=n.theme)===null||x===void 0?void 0:x.value}),renderEmpty:u,getTargetContainer:S,getPopupContainer:A,pageHeader:b,input:y,pagination:_,form:k,select:f,componentSize:I,componentDisabled:w,transformCellText:F(()=>e.transformCellText),wave:K},U=F(()=>{const L=c.value||{},{algorithm:x,token:z}=L,q=hu(L,["algorithm","token"]),fe=x&&(!Array.isArray(x)||x.length>0)?ti(x):void 0;return T(T({},q),{theme:fe,token:T(T({},Ka),z)})}),oe=F(()=>{var L,x;let z={};return m.value&&(z=((L=m.value.Form)===null||L===void 0?void 0:L.defaultValidateMessages)||((x=yt.Form)===null||x===void 0?void 0:x.defaultValidateMessages)||{}),e.form&&e.form.validateMessages&&(z=T(T({},z),e.form.validateMessages)),z});Os(ee),As({validateMessages:oe}),Qc(I),Ds(w);const M=L=>{var x,z;let q=i.value?s((x=a.default)===null||x===void 0?void 0:x.call(a)):(z=a.default)===null||z===void 0?void 0:z.call(a);if(e.theme){const fe=(function(){return q})();q=R(Gc,{value:U.value},{default:()=>[fe]})}return R(Pd,{locale:m.value||L,ANT_MARK__:Tn},{default:()=>[q]})};return Ba(()=>{h.value&&(Ve.config({rtl:h.value==="rtl"}),Vt.config({rtl:h.value==="rtl"}))}),()=>R(Vo,{children:(L,x,z)=>M(z)},null)}});xt.config=yu;xt.install=function(e){e.component(xt.name,xt)};const vu=Object.freeze(Object.defineProperty({__proto__:null,configConsumerProps:bu,default:xt,defaultIconPrefixCls:Wa,defaultPrefixCls:Qi,globalConfig:el,globalConfigForApi:he},Symbol.toStringTag,{value:"Module"})),_u={items_per_page:"条/页",jump_to:"跳至",jump_to_confirm:"确定",page:"页",prev_page:"上一页",next_page:"下一页",prev_5:"向前 5 页",next_5:"向后 5 页",prev_3:"向前 3 页",next_3:"向后 3 页"},et=(e,t)=>new ue(e).setAlpha(t).toRgbString(),Lt=(e,t)=>new ue(e).lighten(t).toHexString(),Cu=e=>{const t=Mt(e,{theme:"dark"});return{1:t[0],2:t[1],3:t[2],4:t[3],5:t[6],6:t[5],7:t[4],8:t[6],9:t[5],10:t[4]}},ku=(e,t)=>{const a=e||"#000",n=t||"#fff";return{colorBgBase:a,colorTextBase:n,colorText:et(n,.85),colorTextSecondary:et(n,.65),colorTextTertiary:et(n,.45),colorTextQuaternary:et(n,.25),colorFill:et(n,.18),colorFillSecondary:et(n,.12),colorFillTertiary:et(n,.08),colorFillQuaternary:et(n,.04),colorBgElevated:Lt(a,12),colorBgContainer:Lt(a,8),colorBgLayout:Lt(a,0),colorBgSpotlight:Lt(a,26),colorBorder:Lt(a,26),colorBorderSecondary:Lt(a,19)}},Su=(e,t)=>{const a=Object.keys(Qn).map(r=>{const o=Mt(e[r],{theme:"dark"});return new Array(10).fill(1).reduce((i,l,s)=>(i[`${r}-${s+1}`]=o[s],i),{})}).reduce((r,o)=>(r=T(T({},r),o),r),{}),n=t??Zn(e);return T(T(T({},n),a),ui(e,{generateColorPalettes:Cu,generateNeutralColorPalettes:ku}))},Sa={defaultSeed:tr.token,defaultAlgorithm:Zn,darkAlgorithm:Su},Pu="modulepreload",Lu=function(e,t){return new URL(e,t).href},Vr={},O=function(t,a,n){let r=Promise.resolve();if(a&&a.length>0){let c=function(u){return Promise.all(u.map(d=>Promise.resolve(d).then(m=>({status:"fulfilled",value:m}),m=>({status:"rejected",reason:m}))))};const i=document.getElementsByTagName("link"),l=document.querySelector("meta[property=csp-nonce]"),s=l?.nonce||l?.getAttribute("nonce");r=c(a.map(u=>{if(u=Lu(u,n),u in Vr)return;Vr[u]=!0;const d=u.endsWith(".css"),m=d?'[rel="stylesheet"]':"";if(n)for(let C=i.length-1;C>=0;C--){const v=i[C];if(v.href===u&&(!d||v.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${u}"]${m}`))return;const h=document.createElement("link");if(h.rel=d?"stylesheet":Pu,d||(h.as="script"),h.crossOrigin="",h.href=u,s&&h.setAttribute("nonce",s),document.head.appendChild(h),d)return new Promise((C,v)=>{h.addEventListener("load",C),h.addEventListener("error",()=>v(new Error(`Unable to preload CSS for ${u}`)))})}))}function o(i){const l=new Event("vite:preloadError",{cancelable:!0});if(l.payload=i,window.dispatchEvent(l),!l.defaultPrevented)throw i}return r.then(i=>{for(const l of i||[])l.status==="rejected"&&o(l.reason);return t().catch(o)})},Tu=[{path:"/",component:()=>O(()=>import("./AppLayout-BQb9-BUE.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25]),import.meta.url),children:[{path:"",redirect:"/dashboard"},{path:"dashboard",name:"Dashboard",component:()=>O(()=>import("./Dashboard-BqQfrJLe.js"),__vite__mapDeps([26,1,27,28,3,29]),import.meta.url)},{path:"chat",name:"Chat",component:()=>O(()=>import("./Chat-2e3EGiwk.js"),__vite__mapDeps([30,1,27,3,31,32,33,34]),import.meta.url)},{path:"quick-ask",name:"QuickAsk",component:()=>O(()=>import("./QuickAsk-D4K2pIHJ.js"),__vite__mapDeps([35,1,3]),import.meta.url)},{path:"ukey-sign",name:"UkeySign",component:()=>O(()=>import("./UkeySign-CJpVhu8c.js"),__vite__mapDeps([36,2,3,1]),import.meta.url)},{path:"cowork",name:"Cowork",component:()=>O(()=>import("./Cowork-bD9Z8K9J.js"),__vite__mapDeps([37,1,27,31,32,33,3,38]),import.meta.url)},{path:"services",name:"Services",component:()=>O(()=>import("./Services-C6Rv4i8z.js"),__vite__mapDeps([39,3,1,40]),import.meta.url)},{path:"logs",name:"Logs",component:()=>O(()=>import("./Logs-DMhNTvH6.js"),__vite__mapDeps([41,3,1,42]),import.meta.url)},{path:"skills",name:"Skills",component:()=>O(()=>import("./Skills-D6sVDuOT.js"),__vite__mapDeps([43,1,2,44,27,3,45]),import.meta.url)},{path:"providers",name:"Providers",component:()=>O(()=>import("./Providers-A5KukRrJ.js"),__vite__mapDeps([46,1,44,3,47]),import.meta.url)},{path:"mcp",name:"McpTools",component:()=>O(()=>import("./McpTools-BmFQp5wQ.js"),__vite__mapDeps([48,3,1,49]),import.meta.url)},{path:"project-settings",name:"ProjectSettings",component:()=>O(()=>import("./ProjectSettings-GJoyBlLy.js"),__vite__mapDeps([50,3,1,51]),import.meta.url)},{path:"speech-settings",name:"SpeechSettings",component:()=>O(()=>import("./SpeechSettings-DSOYsk6R.js"),__vite__mapDeps([52,3,1,53]),import.meta.url)},{path:"sync-settings",name:"SyncSettings",component:()=>O(()=>import("./SyncSettings-C5nhT_6b.js"),__vite__mapDeps([54,3,1,55]),import.meta.url)},{path:"notification-settings",name:"NotificationSettings",component:()=>O(()=>import("./NotificationSettings-Cg4yXikq.js"),__vite__mapDeps([56,2,1,3,57]),import.meta.url)},{path:"notes",name:"Notes",component:()=>O(()=>import("./Notes-SGtdMwfH.js"),__vite__mapDeps([58,1,59,2,3,60]),import.meta.url)},{path:"memory",name:"Memory",component:()=>O(()=>import("./Memory-DDooyF2l.js"),__vite__mapDeps([61,3,1,62]),import.meta.url)},{path:"knowledge",name:"Knowledge",component:()=>O(()=>import("./KnowledgeGraph-CrFGz4u2.js"),__vite__mapDeps([63,64,1,3,65]),import.meta.url)},{path:"cron",name:"Cron",component:()=>O(()=>import("./Cron-BrQZ3zwQ.js"),__vite__mapDeps([66,3,1]),import.meta.url)},{path:"workflow",name:"Workflow",component:()=>O(()=>import("./WorkflowEditor-CMWDod4n.js"),__vite__mapDeps([67,1,59,2,3,68]),import.meta.url)},{path:"tasks",name:"Tasks",component:()=>O(()=>import("./Tasks-NrpJCUFD.js"),__vite__mapDeps([69,1,3,70]),import.meta.url)},{path:"security",name:"Security",component:()=>O(()=>import("./Security-hglxmoVZ.js"),__vite__mapDeps([71,3,1,72]),import.meta.url)},{path:"did",name:"DID",component:()=>O(()=>import("./DID-CGniRypj.js"),__vite__mapDeps([73,74,28,3,1,75]),import.meta.url)},{path:"permissions",name:"Permissions",component:()=>O(()=>import("./Permissions-BVJwnBDW.js"),__vite__mapDeps([76,3,1,77]),import.meta.url)},{path:"p2p",name:"P2P",component:()=>O(()=>import("./P2P-9DlPC_rr.js"),__vite__mapDeps([78,3,1,79]),import.meta.url)},{path:"git",name:"Git",component:()=>O(()=>import("./Git-C7QHt3Hy.js"),__vite__mapDeps([80,3,1,81]),import.meta.url)},{path:"projects",name:"Projects",component:()=>O(()=>import("./Projects-Dvs_UqGv.js"),__vite__mapDeps([82,59,2,3,1,83]),import.meta.url)},{path:"wallet",name:"Wallet",component:()=>O(()=>import("./Wallet-CzBLjCnl.js"),__vite__mapDeps([84,3,1,85]),import.meta.url)},{path:"organization",name:"Organization",component:()=>O(()=>import("./Organization-Bij8W2mU.js"),__vite__mapDeps([86,1,3,87]),import.meta.url)},{path:"analytics",name:"Analytics",component:()=>O(()=>import("./Analytics-B7p7X_lS.js"),__vite__mapDeps([88,3,1,89]),import.meta.url)},{path:"templates",name:"Templates",component:()=>O(()=>import("./Templates-Ca2HO-Ff.js"),__vite__mapDeps([90,1,59,2,3,91]),import.meta.url)},{path:"backup",name:"Backup",component:()=>O(()=>import("./Backup-BsgPajcJ.js"),__vite__mapDeps([92,59,2,3,1,93]),import.meta.url)},{path:"rssfeed",name:"RssFeed",component:()=>O(()=>import("./RssFeed-FAHzJo-E.js"),__vite__mapDeps([94,1,3,95]),import.meta.url)},{path:"webauthn",name:"WebAuthn",component:()=>O(()=>import("./WebAuthn-HnRCEu5Q.js"),__vite__mapDeps([96,3,1,97]),import.meta.url)},{path:"community",name:"Community",component:()=>O(()=>import("./Community-C3Gt4JNP.js"),__vite__mapDeps([98,28,3,1,99]),import.meta.url)},{path:"governance",name:"Governance",component:()=>O(()=>import("./Governance-DPBJNo9u.js"),__vite__mapDeps([100,28,3,1,101]),import.meta.url)},{path:"audit",name:"Audit",component:()=>O(()=>import("./Audit-CHj8w38X.js"),__vite__mapDeps([102,59,2,28,3,1,103]),import.meta.url)},{path:"reputation",name:"Reputation",component:()=>O(()=>import("./Reputation-BVntfhQV.js"),__vite__mapDeps([104,28,3,1,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,105]),import.meta.url)},{path:"recommend",name:"Recommend",component:()=>O(()=>import("./Recommend-DQKR520B.js"),__vite__mapDeps([106,28,3,1,107]),import.meta.url)},{path:"sla",name:"Sla",component:()=>O(()=>import("./Sla-8O-JYjQq.js"),__vite__mapDeps([108,28,3,1,109]),import.meta.url)},{path:"codegen",name:"Codegen",component:()=>O(()=>import("./Codegen-UQuEF6rH.js"),__vite__mapDeps([110,28,3,1,111]),import.meta.url)},{path:"search",name:"Search",component:()=>O(()=>import("./Search-DsOTkKd1.js"),__vite__mapDeps([112,1,28,3,113]),import.meta.url)},{path:"tokens",name:"Tokens",component:()=>O(()=>import("./Tokens-DUtMwWxZ.js"),__vite__mapDeps([114,28,3,1,115]),import.meta.url)},{path:"trust",name:"Trust",component:()=>O(()=>import("./Trust-b4KDouFb.js"),__vite__mapDeps([116,28,3,1,117]),import.meta.url)},{path:"federation",name:"Federation",component:()=>O(()=>import("./Federation-D2boc2WU.js"),__vite__mapDeps([118,28,3,1,119]),import.meta.url)},{path:"marketplace",name:"Marketplace",component:()=>O(()=>import("./Marketplace-DB0lVRRk.js"),__vite__mapDeps([120,28,3,1,121]),import.meta.url)},{path:"crosschain",name:"Crosschain",component:()=>O(()=>import("./Crosschain-C7m4dIrR.js"),__vite__mapDeps([122,28,3,1,123]),import.meta.url)},{path:"aiops",name:"AIOps",component:()=>O(()=>import("./AIOps-K85peDCg.js"),__vite__mapDeps([124,28,3,1,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,125]),import.meta.url)},{path:"compliance",name:"Compliance",component:()=>O(()=>import("./Compliance-DKye9lMe.js"),__vite__mapDeps([126,28,3,1,127]),import.meta.url)},{path:"privacy",name:"Privacy",component:()=>O(()=>import("./Privacy-BN60IEMG.js"),__vite__mapDeps([128,28,3,1,129]),import.meta.url)},{path:"inference",name:"Inference",component:()=>O(()=>import("./Inference-Ca8VokDu.js"),__vite__mapDeps([130,28,3,1,131]),import.meta.url)},{path:"nlprog",name:"NLProgramming",component:()=>O(()=>import("./NLProgramming-Uv0jicWQ.js"),__vite__mapDeps([132,28,3,1,133]),import.meta.url)},{path:"tenant",name:"Tenant",component:()=>O(()=>import("./Tenant-BWXC1pLX.js"),__vite__mapDeps([134,28,3,1,135]),import.meta.url)},{path:"pipeline",name:"Pipeline",component:()=>O(()=>import("./Pipeline-lWCcdQ9k.js"),__vite__mapDeps([136,28,3,1,137]),import.meta.url)},{path:"video",name:"VideoEditing",component:()=>O(()=>import("./VideoEditing-Bpn0V8T2.js"),__vite__mapDeps([138,3,1,139]),import.meta.url)},{path:"mtc",name:"Mtc",component:()=>O(()=>import("./Mtc-Ci6BDiRi.js"),__vite__mapDeps([140,1,2,74,28,3,141]),import.meta.url)},{path:"mtc-audit",name:"MtcAudit",component:()=>O(()=>import("./MtcAudit-J-DgVOwR.js"),__vite__mapDeps([142,1,2,5,10,21,143,144,18,145,6,24,146,3,19,20,147,17,11,12,13,14,15,16,8,148,149,150,151,152,153,9,154,155,156,22,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,7,189,190,4,23,191]),import.meta.url)}]}],Eu=Wl({history:zl(),routes:Tu}),Wr="cc_theme",pn={dark:{label:"暗黑",icon:"🌑",antd:{algorithm:Sa.darkAlgorithm,token:{colorPrimary:"#1677ff",colorBgBase:"#141414",colorBgContainer:"#1f1f1f",colorBgElevated:"#2a2a2a",borderRadius:8,fontFamily:'system-ui, -apple-system, "Segoe UI", sans-serif'},components:{Layout:{siderBg:"#1c1c1c",headerBg:"#1c1c1c",bodyBg:"#141414"},Menu:{darkItemBg:"#1c1c1c",darkSubMenuItemBg:"#171717"}}},vars:{"--bg-base":"#141414","--bg-sidebar":"#1c1c1c","--bg-header":"#1c1c1c","--bg-card":"#1f1f1f","--bg-card-hover":"#262626","--border-color":"#252525","--border-subtle":"#1e1e1e","--text-primary":"#e0e0e0","--text-secondary":"#888","--text-muted":"#444","--logo-text":"#ffffff","--menu-mode":"dark","--shadow-card":"0 2px 8px rgba(0,0,0,.45)","--group-title":"#3a3a3a"}},light:{label:"亮白",icon:"☀️",antd:{algorithm:Sa.defaultAlgorithm,token:{colorPrimary:"#1677ff",colorBgBase:"#ffffff",colorBgContainer:"#ffffff",colorBgElevated:"#ffffff",borderRadius:8,fontFamily:'system-ui, -apple-system, "Segoe UI", sans-serif'},components:{Layout:{siderBg:"#ffffff",headerBg:"#ffffff",bodyBg:"#f4f6fb"},Menu:{itemBg:"#ffffff"}}},vars:{"--bg-base":"#f4f6fb","--bg-sidebar":"#ffffff","--bg-header":"#ffffff","--bg-card":"#ffffff","--bg-card-hover":"#f0f4ff","--border-color":"#e8edf5","--border-subtle":"#f0f0f0","--text-primary":"#1a1a2e","--text-secondary":"#5a6474","--text-muted":"#b0b8c8","--logo-text":"#1a1a2e","--menu-mode":"light","--shadow-card":"0 2px 12px rgba(0,0,0,.07)","--group-title":"#aab0bc"}},blue:{label:"深蓝",icon:"🌊",antd:{algorithm:Sa.darkAlgorithm,token:{colorPrimary:"#2f80ed",colorBgBase:"#0d1117",colorBgContainer:"#161b22",colorBgElevated:"#1c2230",borderRadius:8,fontFamily:'system-ui, -apple-system, "Segoe UI", sans-serif'},components:{Layout:{siderBg:"#0f1923",headerBg:"#0f1923",bodyBg:"#0d1117"},Menu:{darkItemBg:"#0f1923",darkSubMenuItemBg:"#0b1520"}}},vars:{"--bg-base":"#0d1117","--bg-sidebar":"#0f1923","--bg-header":"#0f1923","--bg-card":"#161b22","--bg-card-hover":"#1c2230","--border-color":"#21303f","--border-subtle":"#182030","--text-primary":"#c9d8ef","--text-secondary":"#6e8caa","--text-muted":"#2d4060","--logo-text":"#e0eeff","--menu-mode":"dark","--shadow-card":"0 2px 8px rgba(0,40,80,.5)","--group-title":"#2d4060"}},green:{label:"翠绿",icon:"🌿",antd:{algorithm:Sa.darkAlgorithm,token:{colorPrimary:"#29a270",colorBgBase:"#0a1a12",colorBgContainer:"#0f2318",colorBgElevated:"#152e20",borderRadius:8,fontFamily:'system-ui, -apple-system, "Segoe UI", sans-serif'},components:{Layout:{siderBg:"#0c1e14",headerBg:"#0c1e14",bodyBg:"#0a1a12"},Menu:{darkItemBg:"#0c1e14",darkSubMenuItemBg:"#091810"}}},vars:{"--bg-base":"#0a1a12","--bg-sidebar":"#0c1e14","--bg-header":"#0c1e14","--bg-card":"#0f2318","--bg-card-hover":"#152e20","--border-color":"#1a3828","--border-subtle":"#122a1c","--text-primary":"#c0e8c8","--text-secondary":"#5a9a6a","--text-muted":"#1e4028","--logo-text":"#d8f0e0","--menu-mode":"dark","--shadow-card":"0 2px 8px rgba(0,40,20,.5)","--group-title":"#1e4028"}}},Iu=Do("theme",()=>{const e=ve(localStorage.getItem(Wr)||"light"),t=F(()=>pn[e.value]||pn.dark),a=F(()=>t.value.antd),n=F(()=>e.value!=="light");function r(){const l=t.value.vars,s=document.documentElement;for(const[c,u]of Object.entries(l))s.style.setProperty(c,u);s.setAttribute("data-theme",e.value)}function o(l){pn[l]&&(e.value=l,localStorage.setItem(Wr,l),r())}function i(){r()}return{current:e,config:t,antdTheme:a,isDark:n,setTheme:o,init:i}});let Au=0;const Tt=()=>`wp-${++Au}`,An=new Set;function ut(e,t={},a={}){return{type:e,kind:a.kind||"server",sessionId:a.sessionId||t.sessionId||null,timestamp:a.timestamp||Date.now(),payload:t}}function wu(e){const t=e?.type,a=e?.payload||{};switch(t){case"task:notification":return ut("task:notification",{task:e.task||a.task},{kind:"server"});case"session-created":case"session.started":return ut("session:start",{sessionId:e.sessionId||a.sessionId,sessionType:e.sessionType||a.sessionType||null,record:e.record||a.record||{id:e.sessionId||a.sessionId,type:e.sessionType||a.sessionType||null,status:"created",history:[],messageCount:0}},{kind:"server",sessionId:e.sessionId||a.sessionId});case"session-resumed":case"session.resumed":{const n=e.sessionId||a.sessionId,r=e.history||a.history||[];return ut("session:resume",{sessionId:n,history:r,historyCount:Array.isArray(r)?r.length:0,record:e.record||a.record||{id:n,type:null,status:"resumed",history:r,messageCount:Array.isArray(r)?r.length:0}},{kind:"server",sessionId:n})}case"worktree-diff":case"worktree.diff":return ut("worktree:diff:ready",{requestId:e.requestId||e.id||null,record:e.record||a.record||{branch:e.branch||a.branch||null,summary:e.summary||a.summary||null,previewEntrypoints:[{type:"worktree-diff",branch:e.branch||a.branch||null}]}},{kind:"server"});case"worktree-merged":case"worktree.merged":return ut("worktree:merge:completed",{requestId:e.requestId||e.id||null,record:e.record||a.record||{branch:e.branch||a.branch||null,summary:e.summary||a.summary||null,conflicts:e.conflicts||a.conflicts||[],previewEntrypoints:e.previewEntrypoints||a.previewEntrypoints||[]}},{kind:"server"});case"compression-stats":case"context.compaction.completed":return ut("compression:summary",{requestId:e.requestId||e.id||null,summary:e.summary||a.summary||{}},{kind:"server"});default:return null}}function zr(e,t=null){An.forEach(a=>a(e,t||e))}function Ou(e){if(!e)return null;const t=e.record||{id:e.id||null,type:e.type||null,provider:e.provider||null,model:e.model||null,projectRoot:e.projectRoot||null,messageCount:e.messageCount??0,history:e.history||[],status:e.status||null};return{...e,id:e.id||t.id,type:e.type||t.type,provider:e.provider||t.provider,model:e.model||t.model,projectRoot:e.projectRoot||t.projectRoot,messageCount:e.messageCount??t.messageCount??0,status:e.status||t.status||null,record:t}}const Du=Do("ws",()=>{const e=ve(null),t=ve("disconnected"),a=ve(null),n=new Map,r=new Map;let o=null,i=1e3,l=!1;const s=window.__CC_CONFIG__||{},c=F(()=>`ws://${s.wsHost||"127.0.0.1"}:${s.wsPort||18800}`);function u(){if(!(e.value?.readyState===WebSocket.OPEN||e.value?.readyState===WebSocket.CONNECTING)){clearTimeout(o),o=null,l=!1,t.value="connecting",a.value=null;try{const M=new WebSocket(c.value);e.value=M,M.onopen=()=>{i=1e3,s.wsToken?A({type:"auth",id:Tt(),token:s.wsToken}).then(()=>{t.value="connected"}).catch(()=>{t.value="connected"}):t.value="connected"},M.onmessage=L=>{let x;try{x=JSON.parse(L.data)}catch{return}h(x)},M.onerror=()=>{a.value="WebSocket error",t.value="error"},M.onclose=()=>{if(t.value="disconnected",e.value=null,n.forEach(({reject:L})=>L(new Error("WebSocket closed"))),n.clear(),b.forEach(({reject:L,clear:x})=>{try{x()}catch{}L(new Error("WebSocket closed"))}),b.clear(),l){l=!1,o=null;return}o=setTimeout(()=>{i=Math.min(i*2,3e4),o=null,u()},i)}}catch(M){t.value="error",a.value=M.message}}}function d(){clearTimeout(o),o=null,l=!0,e.value?.close(),e.value=null,t.value="disconnected"}function m(M){if(!M.version&&!M.payload)return M;const L=M.payload||{};return{...M,...L,type:M.type,sessionId:M.sessionId||L.sessionId||null}}function h(M){const{type:L}=M,x=M.requestId||M.id;let z=!1;if(x&&b.has(x)&&typeof L=="string"){const de=b.get(x);if(L.endsWith(".chunk")){try{de.onChunk(M.chunk)}catch{}return de.rearm(),!0}if(L.endsWith(".result"))return b.delete(x),de.clear(),M.ok===!1?de.reject(new Error(M.error||"Stream error")):de.resolve(M.result??null),!0}if(x&&n.has(x)){const{resolve:de,reject:ne,timeout:ie}=n.get(x);clearTimeout(ie),n.delete(x),z=!0;const Oe=m(M);Oe.id=x,L==="error"?ne(new Error(Oe.message||"Unknown error")):de(Oe)}const q=M.sessionId||M.payload&&M.payload.sessionId||null;if(q&&r.has(q)){const de=m(M);r.get(q).forEach(ie=>ie(de))}C.forEach(de=>de(M));const fe=wu(M);return fe&&zr(fe,M),z}const C=new Set;function v(M){return C.add(M),()=>C.delete(M)}function P(M){return An.add(M),()=>An.delete(M)}function S(M,L){return r.has(M)||r.set(M,new Set),r.get(M).add(L),()=>{r.get(M)?.delete(L),r.get(M)?.size===0&&r.delete(M)}}function A(M,L=15e3){return new Promise((x,z)=>{if(e.value?.readyState!==WebSocket.OPEN){z(new Error("WebSocket not connected"));return}const q=M.id||Tt(),fe=setTimeout(()=>{n.delete(q),z(new Error("Request timeout"))},L);n.set(q,{resolve:x,reject:z,timeout:fe}),e.value.send(JSON.stringify({...M,id:q}))})}const b=new Map;function y(M,L={}){return new Promise((x,z)=>{if(e.value?.readyState!==WebSocket.OPEN){z(new Error("WebSocket not connected"));return}const q=M.id||Tt(),fe=L.idleMs??3e4,de=typeof L.onChunk=="function"?L.onChunk:()=>{},ne=L.signal;if(ne?.aborted){const qe=ne.reason instanceof Error?ne.reason:new Error("aborted");z(qe);return}let ie=null;const Oe=()=>{fe&&(ie&&clearTimeout(ie),ie=setTimeout(()=>{b.has(q)&&(b.delete(q),z(new Error("Stream idle timeout")))},fe))},Be=()=>{if(!b.has(q))return;b.delete(q),ie&&(clearTimeout(ie),ie=null);try{e.value?.readyState===WebSocket.OPEN&&e.value.send(JSON.stringify({type:`${M.type}.cancel`,id:q}))}catch{}const qe=ne?.reason instanceof Error?ne.reason:new Error("aborted");z(qe)};b.set(q,{onChunk:de,resolve:x,reject:z,clear:()=>{if(ie&&clearTimeout(ie),ie=null,ne&&Be)try{ne.removeEventListener("abort",Be)}catch{}},rearm:Oe}),Oe(),ne&&ne.addEventListener("abort",Be,{once:!0}),e.value.send(JSON.stringify({...M,id:q}))})}function _(M=8e3){return t.value==="connected"?Promise.resolve():new Promise((L,x)=>{const z=Date.now()+M,q=()=>{if(t.value==="connected")return L();if(t.value==="error"||Date.now()>=z)return x(new Error(`WS not ready: ${t.value}`));setTimeout(q,150)};t.value==="disconnected"&&u(),q()})}async function k(M,L=3e4){await _(8e3);const x=await A({type:"execute",command:M},L),z=x.output??x.stdout??"",q=x.stderr??"";return{output:z||q,exitCode:x.exitCode??0}}async function f(M,L=3e4){const{output:x,exitCode:z}=await k(M,L);if(z!==0)throw new Error(`Command failed: ${x}`);try{return JSON.parse(x.trim())}catch{const q=x.match(/\{[\s\S]*\}|\[[\s\S]*\]/);if(q)return JSON.parse(q[0]);throw new Error(`Invalid JSON output: ${x.slice(0,200)}`)}}async function I(M="chat",L=null,x={}){await _(8e3);const q={type:"session-create",id:Tt(),sessionType:M,projectRoot:L||s.projectRoot||null};return x.systemPromptExtension&&(q.systemPromptExtension=x.systemPromptExtension),Array.isArray(x.shellPolicyOverrides)&&x.shellPolicyOverrides.length&&(q.shellPolicyOverrides=x.shellPolicyOverrides),(await A(q)).sessionId}function w(M,L){e.value?.readyState===WebSocket.OPEN&&e.value.send(JSON.stringify({type:"session-message",id:Tt(),sessionId:M,content:L}))}function K(M,L,x){e.value?.readyState===WebSocket.OPEN&&e.value.send(JSON.stringify({type:"session-answer",id:Tt(),sessionId:M,requestId:L,answer:x}))}async function ee(){return await _(8e3),((await A({type:"session-list"},1e4)).sessions||[]).map(Ou).filter(Boolean)}async function U(M){try{await A({type:"session-close",sessionId:M},5e3),zr(ut("session:end",{sessionId:M},{kind:"server",sessionId:M}),{type:"result",sessionId:M,success:!0})}catch{}}async function oe(M){return await _(8e3),await A({type:"session-resume",sessionId:M},1e4)}return{status:t,error:a,wsUrl:c,connect:u,disconnect:d,waitConnected:_,onMessage:v,onRuntimeEvent:P,onSession:S,sendRaw:A,sendStream:y,execute:k,executeJson:f,createSession:I,resumeSession:oe,sendSessionMessage:w,answerQuestion:K,listSessions:ee,closeSession:U}});function Fu(e,t){typeof console<"u"&&(console.warn("[intlify] "+e),t&&console.warn(t.stack))}const Ma=typeof window<"u",it=(e,t=!1)=>t?Symbol.for(e):Symbol(e),Ru=(e,t,a)=>xu({l:e,k:t,s:a}),xu=e=>JSON.stringify(e).replace(/\u2028/g,"\\u2028").replace(/\u2029/g,"\\u2029").replace(/\u0027/g,"\\u0027"),se=e=>typeof e=="number"&&isFinite(e),Nu=e=>al(e)==="[object Date]",nt=e=>al(e)==="[object RegExp]",en=e=>W(e)&&Object.keys(e).length===0,ye=Object.assign,Mu=Object.create,Q=(e=null)=>Mu(e);let Gr;const Je=()=>Gr||(Gr=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:Q());function qr(e){return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&apos;").replace(/\//g,"&#x2F;").replace(/=/g,"&#x3D;")}function Yr(e){return e.replace(/&(?![a-zA-Z0-9#]{2,6};)/g,"&amp;").replace(/"/g,"&quot;").replace(/'/g,"&apos;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function $u(e){return e=e.replace(/(\w+)\s*=\s*"([^"]*)"/g,(n,r,o)=>`${r}="${Yr(o)}"`),e=e.replace(/(\w+)\s*=\s*'([^']*)'/g,(n,r,o)=>`${r}='${Yr(o)}'`),/\s*on\w+\s*=\s*["']?[^"'>]+["']?/gi.test(e)&&(e=e.replace(/(\s+)(on)(\w+\s*=)/gi,"$1&#111;n$3")),[/(\s+(?:href|src|action|formaction)\s*=\s*["']?)\s*javascript:/gi,/(style\s*=\s*["'][^"']*url\s*\(\s*)javascript:/gi].forEach(n=>{e=e.replace(n,"$1javascript&#58;")}),e}const Bu=Object.prototype.hasOwnProperty;function xe(e,t){return Bu.call(e,t)}const ae=Array.isArray,te=e=>typeof e=="function",B=e=>typeof e=="string",Y=e=>typeof e=="boolean",X=e=>e!==null&&typeof e=="object",Hu=e=>X(e)&&te(e.then)&&te(e.catch),tl=Object.prototype.toString,al=e=>tl.call(e),W=e=>{if(!X(e))return!1;const t=Object.getPrototypeOf(e);return t===null||t.constructor===Object},ju=e=>e==null?"":ae(e)||W(e)&&e.toString===tl?JSON.stringify(e,null,2):String(e);function Uu(e,t=""){return e.reduce((a,n,r)=>r===0?a+n:a+t+n,"")}function tn(e){let t=e;return()=>++t}const Pa=e=>!X(e)||ae(e);function Da(e,t){if(Pa(e)||Pa(t))throw new Error("Invalid value");const a=[{src:e,des:t}];for(;a.length;){const{src:n,des:r}=a.pop();Object.keys(n).forEach(o=>{o!=="__proto__"&&(X(n[o])&&!X(r[o])&&(r[o]=Array.isArray(n[o])?[]:Q()),Pa(r[o])||Pa(n[o])?r[o]=n[o]:a.push({src:n[o],des:r[o]}))})}}function Vu(e,t,a){return{line:e,column:t,offset:a}}function $a(e,t,a){return{start:e,end:t}}const Wu=/\{([0-9a-zA-Z]+)\}/g;function nl(e,...t){return t.length===1&&zu(t[0])&&(t=t[0]),(!t||!t.hasOwnProperty)&&(t={}),e.replace(Wu,(a,n)=>t.hasOwnProperty(n)?t[n]:"")}const rl=Object.assign,Kr=e=>typeof e=="string",zu=e=>e!==null&&typeof e=="object";function ol(e,t=""){return e.reduce((a,n,r)=>r===0?a+n:a+t+n,"")}const ir={USE_MODULO_SYNTAX:1,__EXTEND_POINT__:2},Gu={[ir.USE_MODULO_SYNTAX]:"Use modulo before '{{0}}'."};function qu(e,t,...a){const n=nl(Gu[e],...a||[]),r={message:String(n),code:e};return t&&(r.location=t),r}const V={EXPECTED_TOKEN:1,INVALID_TOKEN_IN_PLACEHOLDER:2,UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER:3,UNKNOWN_ESCAPE_SEQUENCE:4,INVALID_UNICODE_ESCAPE_SEQUENCE:5,UNBALANCED_CLOSING_BRACE:6,UNTERMINATED_CLOSING_BRACE:7,EMPTY_PLACEHOLDER:8,NOT_ALLOW_NEST_PLACEHOLDER:9,INVALID_LINKED_FORMAT:10,MUST_HAVE_MESSAGES_IN_PLURAL:11,UNEXPECTED_EMPTY_LINKED_MODIFIER:12,UNEXPECTED_EMPTY_LINKED_KEY:13,UNEXPECTED_LEXICAL_ANALYSIS:14,UNHANDLED_CODEGEN_NODE_TYPE:15,UNHANDLED_MINIFIER_NODE_TYPE:16,__EXTEND_POINT__:17},Yu={[V.EXPECTED_TOKEN]:"Expected token: '{0}'",[V.INVALID_TOKEN_IN_PLACEHOLDER]:"Invalid token in placeholder: '{0}'",[V.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER]:"Unterminated single quote in placeholder",[V.UNKNOWN_ESCAPE_SEQUENCE]:"Unknown escape sequence: \\{0}",[V.INVALID_UNICODE_ESCAPE_SEQUENCE]:"Invalid unicode escape sequence: {0}",[V.UNBALANCED_CLOSING_BRACE]:"Unbalanced closing brace",[V.UNTERMINATED_CLOSING_BRACE]:"Unterminated closing brace",[V.EMPTY_PLACEHOLDER]:"Empty placeholder",[V.NOT_ALLOW_NEST_PLACEHOLDER]:"Not allowed nest placeholder",[V.INVALID_LINKED_FORMAT]:"Invalid linked format",[V.MUST_HAVE_MESSAGES_IN_PLURAL]:"Plural must have messages",[V.UNEXPECTED_EMPTY_LINKED_MODIFIER]:"Unexpected empty linked modifier",[V.UNEXPECTED_EMPTY_LINKED_KEY]:"Unexpected empty linked key",[V.UNEXPECTED_LEXICAL_ANALYSIS]:"Unexpected lexical analysis in token: '{0}'",[V.UNHANDLED_CODEGEN_NODE_TYPE]:"unhandled codegen node type: '{0}'",[V.UNHANDLED_MINIFIER_NODE_TYPE]:"unhandled mimifier node type: '{0}'"};function Xt(e,t,a={}){const{domain:n,messages:r,args:o}=a,i=nl((r||Yu)[e]||"",...o||[]),l=new SyntaxError(String(i));return l.code=e,t&&(l.location=t),l.domain=n,l}function Ku(e){throw e}const Ke=" ",Xu="\r",_e=`
58
+ `,Ju="\u2028",Qu="\u2029";function Zu(e){const t=e;let a=0,n=1,r=1,o=0;const i=f=>t[f]===Xu&&t[f+1]===_e,l=f=>t[f]===_e,s=f=>t[f]===Qu,c=f=>t[f]===Ju,u=f=>i(f)||l(f)||s(f)||c(f),d=()=>a,m=()=>n,h=()=>r,C=()=>o,v=f=>i(f)||s(f)||c(f)?_e:t[f],P=()=>v(a),S=()=>v(a+o);function A(){return o=0,u(a)&&(n++,r=0),i(a)&&a++,a++,r++,t[a]}function b(){return i(a+o)&&o++,o++,t[a+o]}function y(){a=0,n=1,r=1,o=0}function _(f=0){o=f}function k(){const f=a+o;for(;f!==a;)A();o=0}return{index:d,line:m,column:h,peekOffset:C,charAt:v,currentChar:P,currentPeek:S,next:A,peek:b,reset:y,resetPeek:_,skipToPeek:k}}const tt=void 0,em=".",Xr="'",tm="tokenizer";function am(e,t={}){const a=t.location!==!1,n=Zu(e),r=()=>n.index(),o=()=>Vu(n.line(),n.column(),n.index()),i=o(),l=r(),s={currentType:14,offset:l,startLoc:i,endLoc:i,lastType:14,lastOffset:l,lastStartLoc:i,lastEndLoc:i,braceNest:0,inLinked:!1,text:""},c=()=>s,{onError:u}=t;function d(p,g,D,...H){const re=c();if(g.column+=D,g.offset+=D,u){const G=a?$a(re.startLoc,g):null,E=Xt(p,G,{domain:tm,args:H});u(E)}}function m(p,g,D){p.endLoc=o(),p.currentType=g;const H={type:g};return a&&(H.loc=$a(p.startLoc,p.endLoc)),D!=null&&(H.value=D),H}const h=p=>m(p,14);function C(p,g){return p.currentChar()===g?(p.next(),g):(d(V.EXPECTED_TOKEN,o(),0,g),"")}function v(p){let g="";for(;p.currentPeek()===Ke||p.currentPeek()===_e;)g+=p.currentPeek(),p.peek();return g}function P(p){const g=v(p);return p.skipToPeek(),g}function S(p){if(p===tt)return!1;const g=p.charCodeAt(0);return g>=97&&g<=122||g>=65&&g<=90||g===95}function A(p){if(p===tt)return!1;const g=p.charCodeAt(0);return g>=48&&g<=57}function b(p,g){const{currentType:D}=g;if(D!==2)return!1;v(p);const H=S(p.currentPeek());return p.resetPeek(),H}function y(p,g){const{currentType:D}=g;if(D!==2)return!1;v(p);const H=p.currentPeek()==="-"?p.peek():p.currentPeek(),re=A(H);return p.resetPeek(),re}function _(p,g){const{currentType:D}=g;if(D!==2)return!1;v(p);const H=p.currentPeek()===Xr;return p.resetPeek(),H}function k(p,g){const{currentType:D}=g;if(D!==8)return!1;v(p);const H=p.currentPeek()===".";return p.resetPeek(),H}function f(p,g){const{currentType:D}=g;if(D!==9)return!1;v(p);const H=S(p.currentPeek());return p.resetPeek(),H}function I(p,g){const{currentType:D}=g;if(!(D===8||D===12))return!1;v(p);const H=p.currentPeek()===":";return p.resetPeek(),H}function w(p,g){const{currentType:D}=g;if(D!==10)return!1;const H=()=>{const G=p.currentPeek();return G==="{"?S(p.peek()):G==="@"||G==="%"||G==="|"||G===":"||G==="."||G===Ke||!G?!1:G===_e?(p.peek(),H()):U(p,!1)},re=H();return p.resetPeek(),re}function K(p){v(p);const g=p.currentPeek()==="|";return p.resetPeek(),g}function ee(p){const g=v(p),D=p.currentPeek()==="%"&&p.peek()==="{";return p.resetPeek(),{isModulo:D,hasSpace:g.length>0}}function U(p,g=!0){const D=(re=!1,G="",E=!1)=>{const N=p.currentPeek();return N==="{"?G==="%"?!1:re:N==="@"||!N?G==="%"?!0:re:N==="%"?(p.peek(),D(re,"%",!0)):N==="|"?G==="%"||E?!0:!(G===Ke||G===_e):N===Ke?(p.peek(),D(!0,Ke,E)):N===_e?(p.peek(),D(!0,_e,E)):!0},H=D();return g&&p.resetPeek(),H}function oe(p,g){const D=p.currentChar();return D===tt?tt:g(D)?(p.next(),D):null}function M(p){const g=p.charCodeAt(0);return g>=97&&g<=122||g>=65&&g<=90||g>=48&&g<=57||g===95||g===36}function L(p){return oe(p,M)}function x(p){const g=p.charCodeAt(0);return g>=97&&g<=122||g>=65&&g<=90||g>=48&&g<=57||g===95||g===36||g===45}function z(p){return oe(p,x)}function q(p){const g=p.charCodeAt(0);return g>=48&&g<=57}function fe(p){return oe(p,q)}function de(p){const g=p.charCodeAt(0);return g>=48&&g<=57||g>=65&&g<=70||g>=97&&g<=102}function ne(p){return oe(p,de)}function ie(p){let g="",D="";for(;g=fe(p);)D+=g;return D}function Oe(p){P(p);const g=p.currentChar();return g!=="%"&&d(V.EXPECTED_TOKEN,o(),0,g),p.next(),"%"}function Be(p){let g="";for(;;){const D=p.currentChar();if(D==="{"||D==="}"||D==="@"||D==="|"||!D)break;if(D==="%")if(U(p))g+=D,p.next();else break;else if(D===Ke||D===_e)if(U(p))g+=D,p.next();else{if(K(p))break;g+=D,p.next()}else g+=D,p.next()}return g}function qe(p){P(p);let g="",D="";for(;g=z(p);)D+=g;return p.currentChar()===tt&&d(V.UNTERMINATED_CLOSING_BRACE,o(),0),D}function Qt(p){P(p);let g="";return p.currentChar()==="-"?(p.next(),g+=`-${ie(p)}`):g+=ie(p),p.currentChar()===tt&&d(V.UNTERMINATED_CLOSING_BRACE,o(),0),g}function va(p){return p!==Xr&&p!==_e}function Zt(p){P(p),C(p,"'");let g="",D="";for(;g=oe(p,va);)g==="\\"?D+=ea(p):D+=g;const H=p.currentChar();return H===_e||H===tt?(d(V.UNTERMINATED_SINGLE_QUOTE_IN_PLACEHOLDER,o(),0),H===_e&&(p.next(),C(p,"'")),D):(C(p,"'"),D)}function ea(p){const g=p.currentChar();switch(g){case"\\":case"'":return p.next(),`\\${g}`;case"u":return Ct(p,g,4);case"U":return Ct(p,g,6);default:return d(V.UNKNOWN_ESCAPE_SEQUENCE,o(),0,g),""}}function Ct(p,g,D){C(p,g);let H="";for(let re=0;re<D;re++){const G=ne(p);if(!G){d(V.INVALID_UNICODE_ESCAPE_SEQUENCE,o(),0,`\\${g}${H}${p.currentChar()}`);break}H+=G}return`\\${g}${H}`}function ta(p){return p!=="{"&&p!=="}"&&p!==Ke&&p!==_e}function aa(p){P(p);let g="",D="";for(;g=oe(p,ta);)D+=g;return D}function na(p){let g="",D="";for(;g=L(p);)D+=g;return D}function $(p){const g=D=>{const H=p.currentChar();return H==="{"||H==="%"||H==="@"||H==="|"||H==="("||H===")"||!H||H===Ke?D:(D+=H,p.next(),g(D))};return g("")}function J(p){P(p);const g=C(p,"|");return P(p),g}function kt(p,g){let D=null;switch(p.currentChar()){case"{":return g.braceNest>=1&&d(V.NOT_ALLOW_NEST_PLACEHOLDER,o(),0),p.next(),D=m(g,2,"{"),P(p),g.braceNest++,D;case"}":return g.braceNest>0&&g.currentType===2&&d(V.EMPTY_PLACEHOLDER,o(),0),p.next(),D=m(g,3,"}"),g.braceNest--,g.braceNest>0&&P(p),g.inLinked&&g.braceNest===0&&(g.inLinked=!1),D;case"@":return g.braceNest>0&&d(V.UNTERMINATED_CLOSING_BRACE,o(),0),D=St(p,g)||h(g),g.braceNest=0,D;default:{let re=!0,G=!0,E=!0;if(K(p))return g.braceNest>0&&d(V.UNTERMINATED_CLOSING_BRACE,o(),0),D=m(g,1,J(p)),g.braceNest=0,g.inLinked=!1,D;if(g.braceNest>0&&(g.currentType===5||g.currentType===6||g.currentType===7))return d(V.UNTERMINATED_CLOSING_BRACE,o(),0),g.braceNest=0,ra(p,g);if(re=b(p,g))return D=m(g,5,qe(p)),P(p),D;if(G=y(p,g))return D=m(g,6,Qt(p)),P(p),D;if(E=_(p,g))return D=m(g,7,Zt(p)),P(p),D;if(!re&&!G&&!E)return D=m(g,13,aa(p)),d(V.INVALID_TOKEN_IN_PLACEHOLDER,o(),0,D.value),P(p),D;break}}return D}function St(p,g){const{currentType:D}=g;let H=null;const re=p.currentChar();switch((D===8||D===9||D===12||D===10)&&(re===_e||re===Ke)&&d(V.INVALID_LINKED_FORMAT,o(),0),re){case"@":return p.next(),H=m(g,8,"@"),g.inLinked=!0,H;case".":return P(p),p.next(),m(g,9,".");case":":return P(p),p.next(),m(g,10,":");default:return K(p)?(H=m(g,1,J(p)),g.braceNest=0,g.inLinked=!1,H):k(p,g)||I(p,g)?(P(p),St(p,g)):f(p,g)?(P(p),m(g,12,na(p))):w(p,g)?(P(p),re==="{"?kt(p,g)||H:m(g,11,$(p))):(D===8&&d(V.INVALID_LINKED_FORMAT,o(),0),g.braceNest=0,g.inLinked=!1,ra(p,g))}}function ra(p,g){let D={type:14};if(g.braceNest>0)return kt(p,g)||h(g);if(g.inLinked)return St(p,g)||h(g);switch(p.currentChar()){case"{":return kt(p,g)||h(g);case"}":return d(V.UNBALANCED_CLOSING_BRACE,o(),0),p.next(),m(g,3,"}");case"@":return St(p,g)||h(g);default:{if(K(p))return D=m(g,1,J(p)),g.braceNest=0,g.inLinked=!1,D;const{isModulo:re,hasSpace:G}=ee(p);if(re)return G?m(g,0,Be(p)):m(g,4,Oe(p));if(U(p))return m(g,0,Be(p));break}}return D}function rn(){const{currentType:p,offset:g,startLoc:D,endLoc:H}=s;return s.lastType=p,s.lastOffset=g,s.lastStartLoc=D,s.lastEndLoc=H,s.offset=r(),s.startLoc=o(),n.currentChar()===tt?m(s,14):ra(n,s)}return{nextToken:rn,currentOffset:r,currentPosition:o,context:c}}const nm="parser",rm=/(?:\\\\|\\'|\\u([0-9a-fA-F]{4})|\\U([0-9a-fA-F]{6}))/g;function om(e,t,a){switch(e){case"\\\\":return"\\";case"\\'":return"'";default:{const n=parseInt(t||a,16);return n<=55295||n>=57344?String.fromCodePoint(n):"�"}}}function im(e={}){const t=e.location!==!1,{onError:a,onWarn:n}=e;function r(b,y,_,k,...f){const I=b.currentPosition();if(I.offset+=k,I.column+=k,a){const w=t?$a(_,I):null,K=Xt(y,w,{domain:nm,args:f});a(K)}}function o(b,y,_,k,...f){const I=b.currentPosition();if(I.offset+=k,I.column+=k,n){const w=t?$a(_,I):null;n(qu(y,w,f))}}function i(b,y,_){const k={type:b};return t&&(k.start=y,k.end=y,k.loc={start:_,end:_}),k}function l(b,y,_,k){t&&(b.end=y,b.loc&&(b.loc.end=_))}function s(b,y){const _=b.context(),k=i(3,_.offset,_.startLoc);return k.value=y,l(k,b.currentOffset(),b.currentPosition()),k}function c(b,y){const _=b.context(),{lastOffset:k,lastStartLoc:f}=_,I=i(5,k,f);return I.index=parseInt(y,10),b.nextToken(),l(I,b.currentOffset(),b.currentPosition()),I}function u(b,y,_){const k=b.context(),{lastOffset:f,lastStartLoc:I}=k,w=i(4,f,I);return w.key=y,_===!0&&(w.modulo=!0),b.nextToken(),l(w,b.currentOffset(),b.currentPosition()),w}function d(b,y){const _=b.context(),{lastOffset:k,lastStartLoc:f}=_,I=i(9,k,f);return I.value=y.replace(rm,om),b.nextToken(),l(I,b.currentOffset(),b.currentPosition()),I}function m(b){const y=b.nextToken(),_=b.context(),{lastOffset:k,lastStartLoc:f}=_,I=i(8,k,f);return y.type!==12?(r(b,V.UNEXPECTED_EMPTY_LINKED_MODIFIER,_.lastStartLoc,0),I.value="",l(I,k,f),{nextConsumeToken:y,node:I}):(y.value==null&&r(b,V.UNEXPECTED_LEXICAL_ANALYSIS,_.lastStartLoc,0,Re(y)),I.value=y.value||"",l(I,b.currentOffset(),b.currentPosition()),{node:I})}function h(b,y){const _=b.context(),k=i(7,_.offset,_.startLoc);return k.value=y,l(k,b.currentOffset(),b.currentPosition()),k}function C(b){const y=b.context(),_=i(6,y.offset,y.startLoc);let k=b.nextToken();if(k.type===9){const f=m(b);_.modifier=f.node,k=f.nextConsumeToken||b.nextToken()}switch(k.type!==10&&r(b,V.UNEXPECTED_LEXICAL_ANALYSIS,y.lastStartLoc,0,Re(k)),k=b.nextToken(),k.type===2&&(k=b.nextToken()),k.type){case 11:k.value==null&&r(b,V.UNEXPECTED_LEXICAL_ANALYSIS,y.lastStartLoc,0,Re(k)),_.key=h(b,k.value||"");break;case 5:k.value==null&&r(b,V.UNEXPECTED_LEXICAL_ANALYSIS,y.lastStartLoc,0,Re(k)),_.key=u(b,k.value||"");break;case 6:k.value==null&&r(b,V.UNEXPECTED_LEXICAL_ANALYSIS,y.lastStartLoc,0,Re(k)),_.key=c(b,k.value||"");break;case 7:k.value==null&&r(b,V.UNEXPECTED_LEXICAL_ANALYSIS,y.lastStartLoc,0,Re(k)),_.key=d(b,k.value||"");break;default:{r(b,V.UNEXPECTED_EMPTY_LINKED_KEY,y.lastStartLoc,0);const f=b.context(),I=i(7,f.offset,f.startLoc);return I.value="",l(I,f.offset,f.startLoc),_.key=I,l(_,f.offset,f.startLoc),{nextConsumeToken:k,node:_}}}return l(_,b.currentOffset(),b.currentPosition()),{node:_}}function v(b){const y=b.context(),_=y.currentType===1?b.currentOffset():y.offset,k=y.currentType===1?y.endLoc:y.startLoc,f=i(2,_,k);f.items=[];let I=null,w=null;do{const U=I||b.nextToken();switch(I=null,U.type){case 0:U.value==null&&r(b,V.UNEXPECTED_LEXICAL_ANALYSIS,y.lastStartLoc,0,Re(U)),f.items.push(s(b,U.value||""));break;case 6:U.value==null&&r(b,V.UNEXPECTED_LEXICAL_ANALYSIS,y.lastStartLoc,0,Re(U)),f.items.push(c(b,U.value||""));break;case 4:w=!0;break;case 5:U.value==null&&r(b,V.UNEXPECTED_LEXICAL_ANALYSIS,y.lastStartLoc,0,Re(U)),f.items.push(u(b,U.value||"",!!w)),w&&(o(b,ir.USE_MODULO_SYNTAX,y.lastStartLoc,0,Re(U)),w=null);break;case 7:U.value==null&&r(b,V.UNEXPECTED_LEXICAL_ANALYSIS,y.lastStartLoc,0,Re(U)),f.items.push(d(b,U.value||""));break;case 8:{const oe=C(b);f.items.push(oe.node),I=oe.nextConsumeToken||null;break}}}while(y.currentType!==14&&y.currentType!==1);const K=y.currentType===1?y.lastOffset:b.currentOffset(),ee=y.currentType===1?y.lastEndLoc:b.currentPosition();return l(f,K,ee),f}function P(b,y,_,k){const f=b.context();let I=k.items.length===0;const w=i(1,y,_);w.cases=[],w.cases.push(k);do{const K=v(b);I||(I=K.items.length===0),w.cases.push(K)}while(f.currentType!==14);return I&&r(b,V.MUST_HAVE_MESSAGES_IN_PLURAL,_,0),l(w,b.currentOffset(),b.currentPosition()),w}function S(b){const y=b.context(),{offset:_,startLoc:k}=y,f=v(b);return y.currentType===14?f:P(b,_,k,f)}function A(b){const y=am(b,rl({},e)),_=y.context(),k=i(0,_.offset,_.startLoc);return t&&k.loc&&(k.loc.source=b),k.body=S(y),e.onCacheKey&&(k.cacheKey=e.onCacheKey(b)),_.currentType!==14&&r(y,V.UNEXPECTED_LEXICAL_ANALYSIS,_.lastStartLoc,0,b[_.offset]||""),l(k,y.currentOffset(),y.currentPosition()),k}return{parse:A}}function Re(e){if(e.type===14)return"EOF";const t=(e.value||"").replace(/\r?\n/gu,"\\n");return t.length>10?t.slice(0,9)+"…":t}function lm(e,t={}){const a={ast:e,helpers:new Set};return{context:()=>a,helper:o=>(a.helpers.add(o),o)}}function Jr(e,t){for(let a=0;a<e.length;a++)lr(e[a],t)}function lr(e,t){switch(e.type){case 1:Jr(e.cases,t),t.helper("plural");break;case 2:Jr(e.items,t);break;case 6:{lr(e.key,t),t.helper("linked"),t.helper("type");break}case 5:t.helper("interpolate"),t.helper("list");break;case 4:t.helper("interpolate"),t.helper("named");break}}function sm(e,t={}){const a=lm(e);a.helper("normalize"),e.body&&lr(e.body,a);const n=a.context();e.helpers=Array.from(n.helpers)}function cm(e){const t=e.body;return t.type===2?Qr(t):t.cases.forEach(a=>Qr(a)),e}function Qr(e){if(e.items.length===1){const t=e.items[0];(t.type===3||t.type===9)&&(e.static=t.value,delete t.value)}else{const t=[];for(let a=0;a<e.items.length;a++){const n=e.items[a];if(!(n.type===3||n.type===9)||n.value==null)break;t.push(n.value)}if(t.length===e.items.length){e.static=ol(t);for(let a=0;a<e.items.length;a++){const n=e.items[a];(n.type===3||n.type===9)&&delete n.value}}}}const dm="minifier";function It(e){switch(e.t=e.type,e.type){case 0:{const t=e;It(t.body),t.b=t.body,delete t.body;break}case 1:{const t=e,a=t.cases;for(let n=0;n<a.length;n++)It(a[n]);t.c=a,delete t.cases;break}case 2:{const t=e,a=t.items;for(let n=0;n<a.length;n++)It(a[n]);t.i=a,delete t.items,t.static&&(t.s=t.static,delete t.static);break}case 3:case 9:case 8:case 7:{const t=e;t.value&&(t.v=t.value,delete t.value);break}case 6:{const t=e;It(t.key),t.k=t.key,delete t.key,t.modifier&&(It(t.modifier),t.m=t.modifier,delete t.modifier);break}case 5:{const t=e;t.i=t.index,delete t.index;break}case 4:{const t=e;t.k=t.key,delete t.key;break}default:throw Xt(V.UNHANDLED_MINIFIER_NODE_TYPE,null,{domain:dm,args:[e.type]})}delete e.type}const um="parser";function mm(e,t){const{filename:a,breakLineCode:n,needIndent:r}=t,o=t.location!==!1,i={filename:a,code:"",column:1,line:1,offset:0,map:void 0,breakLineCode:n,needIndent:r,indentLevel:0};o&&e.loc&&(i.source=e.loc.source);const l=()=>i;function s(v,P){i.code+=v}function c(v,P=!0){const S=P?n:"";s(r?S+" ".repeat(v):S)}function u(v=!0){const P=++i.indentLevel;v&&c(P)}function d(v=!0){const P=--i.indentLevel;v&&c(P)}function m(){c(i.indentLevel)}return{context:l,push:s,indent:u,deindent:d,newline:m,helper:v=>`_${v}`,needIndent:()=>i.needIndent}}function pm(e,t){const{helper:a}=e;e.push(`${a("linked")}(`),Wt(e,t.key),t.modifier?(e.push(", "),Wt(e,t.modifier),e.push(", _type")):e.push(", undefined, _type"),e.push(")")}function fm(e,t){const{helper:a,needIndent:n}=e;e.push(`${a("normalize")}([`),e.indent(n());const r=t.items.length;for(let o=0;o<r&&(Wt(e,t.items[o]),o!==r-1);o++)e.push(", ");e.deindent(n()),e.push("])")}function gm(e,t){const{helper:a,needIndent:n}=e;if(t.cases.length>1){e.push(`${a("plural")}([`),e.indent(n());const r=t.cases.length;for(let o=0;o<r&&(Wt(e,t.cases[o]),o!==r-1);o++)e.push(", ");e.deindent(n()),e.push("])")}}function hm(e,t){t.body?Wt(e,t.body):e.push("null")}function Wt(e,t){const{helper:a}=e;switch(t.type){case 0:hm(e,t);break;case 1:gm(e,t);break;case 2:fm(e,t);break;case 6:pm(e,t);break;case 8:e.push(JSON.stringify(t.value),t);break;case 7:e.push(JSON.stringify(t.value),t);break;case 5:e.push(`${a("interpolate")}(${a("list")}(${t.index}))`,t);break;case 4:e.push(`${a("interpolate")}(${a("named")}(${JSON.stringify(t.key)}))`,t);break;case 9:e.push(JSON.stringify(t.value),t);break;case 3:e.push(JSON.stringify(t.value),t);break;default:throw Xt(V.UNHANDLED_CODEGEN_NODE_TYPE,null,{domain:um,args:[t.type]})}}const bm=(e,t={})=>{const a=Kr(t.mode)?t.mode:"normal",n=Kr(t.filename)?t.filename:"message.intl";t.sourceMap;const r=t.breakLineCode!=null?t.breakLineCode:a==="arrow"?";":`
59
+ `,o=t.needIndent?t.needIndent:a!=="arrow",i=e.helpers||[],l=mm(e,{filename:n,breakLineCode:r,needIndent:o});l.push(a==="normal"?"function __msg__ (ctx) {":"(ctx) => {"),l.indent(o),i.length>0&&(l.push(`const { ${ol(i.map(u=>`${u}: _${u}`),", ")} } = ctx`),l.newline()),l.push("return "),Wt(l,e),l.deindent(o),l.push("}"),delete e.helpers;const{code:s,map:c}=l.context();return{ast:e,code:s,map:c?c.toJSON():void 0}};function ym(e,t={}){const a=rl({},t),n=!!a.jit,r=!!a.minify,o=a.optimize==null?!0:a.optimize,l=im(a).parse(e);return n?(o&&cm(l),r&&It(l),{ast:l,code:""}):(sm(l,a),bm(l,a))}function vm(){typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&(Je().__INTLIFY_PROD_DEVTOOLS__=!1),typeof __INTLIFY_JIT_COMPILATION__!="boolean"&&(Je().__INTLIFY_JIT_COMPILATION__=!1),typeof __INTLIFY_DROP_MESSAGE_COMPILER__!="boolean"&&(Je().__INTLIFY_DROP_MESSAGE_COMPILER__=!1)}function ze(e){return X(e)&&sr(e)===0&&(xe(e,"b")||xe(e,"body"))}const il=["b","body"];function _m(e){return lt(e,il)}const ll=["c","cases"];function Cm(e){return lt(e,ll,[])}const sl=["s","static"];function km(e){return lt(e,sl)}const cl=["i","items"];function Sm(e){return lt(e,cl,[])}const dl=["t","type"];function sr(e){return lt(e,dl)}const ul=["v","value"];function La(e,t){const a=lt(e,ul);if(a!=null)return a;throw fa(t)}const ml=["m","modifier"];function Pm(e){return lt(e,ml)}const pl=["k","key"];function Lm(e){const t=lt(e,pl);if(t)return t;throw fa(6)}function lt(e,t,a){for(let n=0;n<t.length;n++){const r=t[n];if(xe(e,r)&&e[r]!=null)return e[r]}return a}const fl=[...il,...ll,...sl,...cl,...pl,...ml,...ul,...dl];function fa(e){return new Error(`unhandled node type: ${e}`)}const st=[];st[0]={w:[0],i:[3,0],"[":[4],o:[7]};st[1]={w:[1],".":[2],"[":[4],o:[7]};st[2]={w:[2],i:[3,0],0:[3,0]};st[3]={i:[3,0],0:[3,0],w:[1,1],".":[2,1],"[":[4,1],o:[7,1]};st[4]={"'":[5,0],'"':[6,0],"[":[4,2],"]":[1,3],o:8,l:[4,0]};st[5]={"'":[4,0],o:8,l:[5,0]};st[6]={'"':[4,0],o:8,l:[6,0]};const Tm=/^\s?(?:true|false|-?[\d.]+|'[^']*'|"[^"]*")\s?$/;function Em(e){return Tm.test(e)}function Im(e){const t=e.charCodeAt(0),a=e.charCodeAt(e.length-1);return t===a&&(t===34||t===39)?e.slice(1,-1):e}function Am(e){if(e==null)return"o";switch(e.charCodeAt(0)){case 91:case 93:case 46:case 34:case 39:return e;case 95:case 36:case 45:return"i";case 9:case 10:case 13:case 160:case 65279:case 8232:case 8233:return"w"}return"i"}function wm(e){const t=e.trim();return e.charAt(0)==="0"&&isNaN(parseInt(e))?!1:Em(t)?Im(t):"*"+t}function Om(e){const t=[];let a=-1,n=0,r=0,o,i,l,s,c,u,d;const m=[];m[0]=()=>{i===void 0?i=l:i+=l},m[1]=()=>{i!==void 0&&(t.push(i),i=void 0)},m[2]=()=>{m[0](),r++},m[3]=()=>{if(r>0)r--,n=4,m[0]();else{if(r=0,i===void 0||(i=wm(i),i===!1))return!1;m[1]()}};function h(){const C=e[a+1];if(n===5&&C==="'"||n===6&&C==='"')return a++,l="\\"+C,m[0](),!0}for(;n!==null;)if(a++,o=e[a],!(o==="\\"&&h())){if(s=Am(o),d=st[n],c=d[s]||d.l||8,c===8||(n=c[0],c[1]!==void 0&&(u=m[c[1]],u&&(l=o,u()===!1))))return;if(n===7)return t}}const Zr=new Map;function Dm(e,t){return X(e)?e[t]:null}function Fm(e,t){if(!X(e))return null;let a=Zr.get(t);if(a||(a=Om(t),a&&Zr.set(t,a)),!a)return null;const n=a.length;let r=e,o=0;for(;o<n;){const i=a[o];if(fl.includes(i)&&ze(r))return null;const l=r[i];if(l===void 0||te(r))return null;r=l,o++}return r}const Rm=e=>e,xm=e=>"",Nm="text",Mm=e=>e.length===0?"":Uu(e),$m=ju;function eo(e,t){return e=Math.abs(e),t===2?e?e>1?1:0:1:e?Math.min(e,2):0}function Bm(e){const t=se(e.pluralIndex)?e.pluralIndex:-1;return e.named&&(se(e.named.count)||se(e.named.n))?se(e.named.count)?e.named.count:se(e.named.n)?e.named.n:t:t}function Hm(e,t){t.count||(t.count=e),t.n||(t.n=e)}function jm(e={}){const t=e.locale,a=Bm(e),n=X(e.pluralRules)&&B(t)&&te(e.pluralRules[t])?e.pluralRules[t]:eo,r=X(e.pluralRules)&&B(t)&&te(e.pluralRules[t])?eo:void 0,o=S=>S[n(a,S.length,r)],i=e.list||[],l=S=>i[S],s=e.named||Q();se(e.pluralIndex)&&Hm(a,s);const c=S=>s[S];function u(S){const A=te(e.messages)?e.messages(S):X(e.messages)?e.messages[S]:!1;return A||(e.parent?e.parent.message(S):xm)}const d=S=>e.modifiers?e.modifiers[S]:Rm,m=W(e.processor)&&te(e.processor.normalize)?e.processor.normalize:Mm,h=W(e.processor)&&te(e.processor.interpolate)?e.processor.interpolate:$m,C=W(e.processor)&&B(e.processor.type)?e.processor.type:Nm,P={list:l,named:c,plural:o,linked:(S,...A)=>{const[b,y]=A;let _="text",k="";A.length===1?X(b)?(k=b.modifier||k,_=b.type||_):B(b)&&(k=b||k):A.length===2&&(B(b)&&(k=b||k),B(y)&&(_=y||_));const f=u(S)(P),I=_==="vnode"&&ae(f)&&k?f[0]:f;return k?d(k)(I,_):I},message:u,type:C,interpolate:h,normalize:m,values:ye(Q(),i,s)};return P}let ga=null;function Um(e){ga=e}function Vm(e,t,a){ga&&ga.emit("i18n:init",{timestamp:Date.now(),i18n:e,version:t,meta:a})}const Wm=zm("function:translate");function zm(e){return t=>ga&&ga.emit(e,t)}const Gm=ir.__EXTEND_POINT__,ct=tn(Gm),qm={FALLBACK_TO_TRANSLATE:ct(),CANNOT_FORMAT_NUMBER:ct(),FALLBACK_TO_NUMBER_FORMAT:ct(),CANNOT_FORMAT_DATE:ct(),FALLBACK_TO_DATE_FORMAT:ct(),EXPERIMENTAL_CUSTOM_MESSAGE_COMPILER:ct(),__EXTEND_POINT__:ct()},gl=V.__EXTEND_POINT__,dt=tn(gl),Ne={INVALID_ARGUMENT:gl,INVALID_DATE_ARGUMENT:dt(),INVALID_ISO_DATE_ARGUMENT:dt(),NOT_SUPPORT_NON_STRING_MESSAGE:dt(),NOT_SUPPORT_LOCALE_PROMISE_VALUE:dt(),NOT_SUPPORT_LOCALE_ASYNC_FUNCTION:dt(),NOT_SUPPORT_LOCALE_TYPE:dt(),__EXTEND_POINT__:dt()};function We(e){return Xt(e,null,void 0)}function cr(e,t){return t.locale!=null?to(t.locale):to(e.locale)}let fn;function to(e){if(B(e))return e;if(te(e)){if(e.resolvedOnce&&fn!=null)return fn;if(e.constructor.name==="Function"){const t=e();if(Hu(t))throw We(Ne.NOT_SUPPORT_LOCALE_PROMISE_VALUE);return fn=t}else throw We(Ne.NOT_SUPPORT_LOCALE_ASYNC_FUNCTION)}else throw We(Ne.NOT_SUPPORT_LOCALE_TYPE)}function Ym(e,t,a){return[...new Set([a,...ae(t)?t:X(t)?Object.keys(t):B(t)?[t]:[a]])]}function hl(e,t,a){const n=B(a)?a:zt,r=e;r.__localeChainCache||(r.__localeChainCache=new Map);let o=r.__localeChainCache.get(n);if(!o){o=[];let i=[a];for(;ae(i);)i=ao(o,i,t);const l=ae(t)||!W(t)?t:t.default?t.default:null;i=B(l)?[l]:l,ae(i)&&ao(o,i,!1),r.__localeChainCache.set(n,o)}return o}function ao(e,t,a){let n=!0;for(let r=0;r<t.length&&Y(n);r++){const o=t[r];B(o)&&(n=Km(e,t[r],a))}return n}function Km(e,t,a){let n;const r=t.split("-");do{const o=r.join("-");n=Xm(e,o,a),r.splice(-1,1)}while(r.length&&n===!0);return n}function Xm(e,t,a){let n=!1;if(!e.includes(t)&&(n=!0,t)){n=t[t.length-1]!=="!";const r=t.replace(/!/g,"");e.push(r),(ae(a)||W(a))&&a[r]&&(n=a[r])}return n}const Jm="9.14.5",an=-1,zt="en-US",no="",ro=e=>`${e.charAt(0).toLocaleUpperCase()}${e.substr(1)}`;function Qm(){return{upper:(e,t)=>t==="text"&&B(e)?e.toUpperCase():t==="vnode"&&X(e)&&"__v_isVNode"in e?e.children.toUpperCase():e,lower:(e,t)=>t==="text"&&B(e)?e.toLowerCase():t==="vnode"&&X(e)&&"__v_isVNode"in e?e.children.toLowerCase():e,capitalize:(e,t)=>t==="text"&&B(e)?ro(e):t==="vnode"&&X(e)&&"__v_isVNode"in e?ro(e.children):e}}let bl;function oo(e){bl=e}let yl;function Zm(e){yl=e}let vl;function ep(e){vl=e}let _l=null;const tp=e=>{_l=e},ap=()=>_l;let Cl=null;const io=e=>{Cl=e},np=()=>Cl;let lo=0;function rp(e={}){const t=te(e.onWarn)?e.onWarn:Fu,a=B(e.version)?e.version:Jm,n=B(e.locale)||te(e.locale)?e.locale:zt,r=te(n)?zt:n,o=ae(e.fallbackLocale)||W(e.fallbackLocale)||B(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:r,i=W(e.messages)?e.messages:gn(r),l=W(e.datetimeFormats)?e.datetimeFormats:gn(r),s=W(e.numberFormats)?e.numberFormats:gn(r),c=ye(Q(),e.modifiers,Qm()),u=e.pluralRules||Q(),d=te(e.missing)?e.missing:null,m=Y(e.missingWarn)||nt(e.missingWarn)?e.missingWarn:!0,h=Y(e.fallbackWarn)||nt(e.fallbackWarn)?e.fallbackWarn:!0,C=!!e.fallbackFormat,v=!!e.unresolving,P=te(e.postTranslation)?e.postTranslation:null,S=W(e.processor)?e.processor:null,A=Y(e.warnHtmlMessage)?e.warnHtmlMessage:!0,b=!!e.escapeParameter,y=te(e.messageCompiler)?e.messageCompiler:bl,_=te(e.messageResolver)?e.messageResolver:yl||Dm,k=te(e.localeFallbacker)?e.localeFallbacker:vl||Ym,f=X(e.fallbackContext)?e.fallbackContext:void 0,I=e,w=X(I.__datetimeFormatters)?I.__datetimeFormatters:new Map,K=X(I.__numberFormatters)?I.__numberFormatters:new Map,ee=X(I.__meta)?I.__meta:{};lo++;const U={version:a,cid:lo,locale:n,fallbackLocale:o,messages:i,modifiers:c,pluralRules:u,missing:d,missingWarn:m,fallbackWarn:h,fallbackFormat:C,unresolving:v,postTranslation:P,processor:S,warnHtmlMessage:A,escapeParameter:b,messageCompiler:y,messageResolver:_,localeFallbacker:k,fallbackContext:f,onWarn:t,__meta:ee};return U.datetimeFormats=l,U.numberFormats=s,U.__datetimeFormatters=w,U.__numberFormatters=K,__INTLIFY_PROD_DEVTOOLS__&&Vm(U,a,ee),U}const gn=e=>({[e]:Q()});function dr(e,t,a,n,r){const{missing:o,onWarn:i}=e;if(o!==null){const l=o(e,a,t,r);return B(l)?l:t}else return t}function ia(e,t,a){const n=e;n.__localeChainCache=new Map,e.localeFallbacker(e,a,t)}function op(e,t){return e===t?!1:e.split("-")[0]===t.split("-")[0]}function ip(e,t){const a=t.indexOf(e);if(a===-1)return!1;for(let n=a+1;n<t.length;n++)if(op(e,t[n]))return!0;return!1}function hn(e){return a=>lp(a,e)}function lp(e,t){const a=_m(t);if(a==null)throw fa(0);if(sr(a)===1){const o=Cm(a);return e.plural(o.reduce((i,l)=>[...i,so(e,l)],[]))}else return so(e,a)}function so(e,t){const a=km(t);if(a!=null)return e.type==="text"?a:e.normalize([a]);{const n=Sm(t).reduce((r,o)=>[...r,wn(e,o)],[]);return e.normalize(n)}}function wn(e,t){const a=sr(t);switch(a){case 3:return La(t,a);case 9:return La(t,a);case 4:{const n=t;if(xe(n,"k")&&n.k)return e.interpolate(e.named(n.k));if(xe(n,"key")&&n.key)return e.interpolate(e.named(n.key));throw fa(a)}case 5:{const n=t;if(xe(n,"i")&&se(n.i))return e.interpolate(e.list(n.i));if(xe(n,"index")&&se(n.index))return e.interpolate(e.list(n.index));throw fa(a)}case 6:{const n=t,r=Pm(n),o=Lm(n);return e.linked(wn(e,o),r?wn(e,r):void 0,e.type)}case 7:return La(t,a);case 8:return La(t,a);default:throw new Error(`unhandled node on format message part: ${a}`)}}const kl=e=>e;let Ot=Q();function Sl(e,t={}){let a=!1;const n=t.onError||Ku;return t.onError=r=>{a=!0,n(r)},{...ym(e,t),detectError:a}}const sp=(e,t)=>{if(!B(e))throw We(Ne.NOT_SUPPORT_NON_STRING_MESSAGE);{Y(t.warnHtmlMessage)&&t.warnHtmlMessage;const n=(t.onCacheKey||kl)(e),r=Ot[n];if(r)return r;const{code:o,detectError:i}=Sl(e,t),l=new Function(`return ${o}`)();return i?l:Ot[n]=l}};function cp(e,t){if(__INTLIFY_JIT_COMPILATION__&&!__INTLIFY_DROP_MESSAGE_COMPILER__&&B(e)){Y(t.warnHtmlMessage)&&t.warnHtmlMessage;const n=(t.onCacheKey||kl)(e),r=Ot[n];if(r)return r;const{ast:o,detectError:i}=Sl(e,{...t,location:!1,jit:!0}),l=hn(o);return i?l:Ot[n]=l}else{const a=e.cacheKey;if(a){const n=Ot[a];return n||(Ot[a]=hn(e))}else return hn(e)}}const co=()=>"",De=e=>te(e);function uo(e,...t){const{fallbackFormat:a,postTranslation:n,unresolving:r,messageCompiler:o,fallbackLocale:i,messages:l}=e,[s,c]=On(...t),u=Y(c.missingWarn)?c.missingWarn:e.missingWarn,d=Y(c.fallbackWarn)?c.fallbackWarn:e.fallbackWarn,m=Y(c.escapeParameter)?c.escapeParameter:e.escapeParameter,h=!!c.resolvedMessage,C=B(c.default)||Y(c.default)?Y(c.default)?o?s:()=>s:c.default:a?o?s:()=>s:"",v=a||C!=="",P=cr(e,c);m&&dp(c);let[S,A,b]=h?[s,P,l[P]||Q()]:Pl(e,s,P,i,d,u),y=S,_=s;if(!h&&!(B(y)||ze(y)||De(y))&&v&&(y=C,_=y),!h&&(!(B(y)||ze(y)||De(y))||!B(A)))return r?an:s;let k=!1;const f=()=>{k=!0},I=De(y)?y:Ll(e,s,A,y,_,f);if(k)return y;const w=pp(e,A,b,c),K=jm(w),ee=up(e,I,K);let U=n?n(ee,s):ee;if(m&&B(U)&&(U=$u(U)),__INTLIFY_PROD_DEVTOOLS__){const oe={timestamp:Date.now(),key:B(s)?s:De(y)?y.key:"",locale:A||(De(y)?y.locale:""),format:B(y)?y:De(y)?y.source:"",message:U};oe.meta=ye({},e.__meta,ap()||{}),Wm(oe)}return U}function dp(e){ae(e.list)?e.list=e.list.map(t=>B(t)?qr(t):t):X(e.named)&&Object.keys(e.named).forEach(t=>{B(e.named[t])&&(e.named[t]=qr(e.named[t]))})}function Pl(e,t,a,n,r,o){const{messages:i,onWarn:l,messageResolver:s,localeFallbacker:c}=e,u=c(e,n,a);let d=Q(),m,h=null;const C="translate";for(let v=0;v<u.length&&(m=u[v],d=i[m]||Q(),(h=s(d,t))===null&&(h=d[t]),!(B(h)||ze(h)||De(h)));v++)if(!ip(m,u)){const P=dr(e,t,m,o,C);P!==t&&(h=P)}return[h,m,d]}function Ll(e,t,a,n,r,o){const{messageCompiler:i,warnHtmlMessage:l}=e;if(De(n)){const c=n;return c.locale=c.locale||a,c.key=c.key||t,c}if(i==null){const c=(()=>n);return c.locale=a,c.key=t,c}const s=i(n,mp(e,a,r,n,l,o));return s.locale=a,s.key=t,s.source=n,s}function up(e,t,a){return t(a)}function On(...e){const[t,a,n]=e,r=Q();if(!B(t)&&!se(t)&&!De(t)&&!ze(t))throw We(Ne.INVALID_ARGUMENT);const o=se(t)?String(t):(De(t),t);return se(a)?r.plural=a:B(a)?r.default=a:W(a)&&!en(a)?r.named=a:ae(a)&&(r.list=a),se(n)?r.plural=n:B(n)?r.default=n:W(n)&&ye(r,n),[o,r]}function mp(e,t,a,n,r,o){return{locale:t,key:a,warnHtmlMessage:r,onError:i=>{throw o&&o(i),i},onCacheKey:i=>Ru(t,a,i)}}function pp(e,t,a,n){const{modifiers:r,pluralRules:o,messageResolver:i,fallbackLocale:l,fallbackWarn:s,missingWarn:c,fallbackContext:u}=e,m={locale:t,modifiers:r,pluralRules:o,messages:h=>{let C=i(a,h);if(C==null&&u){const[,,v]=Pl(u,h,t,l,s,c);C=i(v,h)}if(B(C)||ze(C)){let v=!1;const S=Ll(e,h,t,C,h,()=>{v=!0});return v?co:S}else return De(C)?C:co}};return e.processor&&(m.processor=e.processor),n.list&&(m.list=n.list),n.named&&(m.named=n.named),se(n.plural)&&(m.pluralIndex=n.plural),m}function mo(e,...t){const{datetimeFormats:a,unresolving:n,fallbackLocale:r,onWarn:o,localeFallbacker:i}=e,{__datetimeFormatters:l}=e,[s,c,u,d]=Dn(...t),m=Y(u.missingWarn)?u.missingWarn:e.missingWarn;Y(u.fallbackWarn)?u.fallbackWarn:e.fallbackWarn;const h=!!u.part,C=cr(e,u),v=i(e,r,C);if(!B(s)||s==="")return new Intl.DateTimeFormat(C,d).format(c);let P={},S,A=null;const b="datetime format";for(let k=0;k<v.length&&(S=v[k],P=a[S]||{},A=P[s],!W(A));k++)dr(e,s,S,m,b);if(!W(A)||!B(S))return n?an:s;let y=`${S}__${s}`;en(d)||(y=`${y}__${JSON.stringify(d)}`);let _=l.get(y);return _||(_=new Intl.DateTimeFormat(S,ye({},A,d)),l.set(y,_)),h?_.formatToParts(c):_.format(c)}const Tl=["localeMatcher","weekday","era","year","month","day","hour","minute","second","timeZoneName","formatMatcher","hour12","timeZone","dateStyle","timeStyle","calendar","dayPeriod","numberingSystem","hourCycle","fractionalSecondDigits"];function Dn(...e){const[t,a,n,r]=e,o=Q();let i=Q(),l;if(B(t)){const s=t.match(/(\d{4}-\d{2}-\d{2})(T|\s)?(.*)/);if(!s)throw We(Ne.INVALID_ISO_DATE_ARGUMENT);const c=s[3]?s[3].trim().startsWith("T")?`${s[1].trim()}${s[3].trim()}`:`${s[1].trim()}T${s[3].trim()}`:s[1].trim();l=new Date(c);try{l.toISOString()}catch{throw We(Ne.INVALID_ISO_DATE_ARGUMENT)}}else if(Nu(t)){if(isNaN(t.getTime()))throw We(Ne.INVALID_DATE_ARGUMENT);l=t}else if(se(t))l=t;else throw We(Ne.INVALID_ARGUMENT);return B(a)?o.key=a:W(a)&&Object.keys(a).forEach(s=>{Tl.includes(s)?i[s]=a[s]:o[s]=a[s]}),B(n)?o.locale=n:W(n)&&(i=n),W(r)&&(i=r),[o.key||"",l,o,i]}function po(e,t,a){const n=e;for(const r in a){const o=`${t}__${r}`;n.__datetimeFormatters.has(o)&&n.__datetimeFormatters.delete(o)}}function fo(e,...t){const{numberFormats:a,unresolving:n,fallbackLocale:r,onWarn:o,localeFallbacker:i}=e,{__numberFormatters:l}=e,[s,c,u,d]=Fn(...t),m=Y(u.missingWarn)?u.missingWarn:e.missingWarn;Y(u.fallbackWarn)?u.fallbackWarn:e.fallbackWarn;const h=!!u.part,C=cr(e,u),v=i(e,r,C);if(!B(s)||s==="")return new Intl.NumberFormat(C,d).format(c);let P={},S,A=null;const b="number format";for(let k=0;k<v.length&&(S=v[k],P=a[S]||{},A=P[s],!W(A));k++)dr(e,s,S,m,b);if(!W(A)||!B(S))return n?an:s;let y=`${S}__${s}`;en(d)||(y=`${y}__${JSON.stringify(d)}`);let _=l.get(y);return _||(_=new Intl.NumberFormat(S,ye({},A,d)),l.set(y,_)),h?_.formatToParts(c):_.format(c)}const El=["localeMatcher","style","currency","currencyDisplay","currencySign","useGrouping","minimumIntegerDigits","minimumFractionDigits","maximumFractionDigits","minimumSignificantDigits","maximumSignificantDigits","compactDisplay","notation","signDisplay","unit","unitDisplay","roundingMode","roundingPriority","roundingIncrement","trailingZeroDisplay"];function Fn(...e){const[t,a,n,r]=e,o=Q();let i=Q();if(!se(t))throw We(Ne.INVALID_ARGUMENT);const l=t;return B(a)?o.key=a:W(a)&&Object.keys(a).forEach(s=>{El.includes(s)?i[s]=a[s]:o[s]=a[s]}),B(n)?o.locale=n:W(n)&&(i=n),W(r)&&(i=r),[o.key||"",l,o,i]}function go(e,t,a){const n=e;for(const r in a){const o=`${t}__${r}`;n.__numberFormatters.has(o)&&n.__numberFormatters.delete(o)}}vm();const fp="9.14.5";function gp(){typeof __VUE_I18N_FULL_INSTALL__!="boolean"&&(Je().__VUE_I18N_FULL_INSTALL__=!0),typeof __VUE_I18N_LEGACY_API__!="boolean"&&(Je().__VUE_I18N_LEGACY_API__=!0),typeof __INTLIFY_JIT_COMPILATION__!="boolean"&&(Je().__INTLIFY_JIT_COMPILATION__=!1),typeof __INTLIFY_DROP_MESSAGE_COMPILER__!="boolean"&&(Je().__INTLIFY_DROP_MESSAGE_COMPILER__=!1),typeof __INTLIFY_PROD_DEVTOOLS__!="boolean"&&(Je().__INTLIFY_PROD_DEVTOOLS__=!1)}const hp=qm.__EXTEND_POINT__,Xe=tn(hp);Xe(),Xe(),Xe(),Xe(),Xe(),Xe(),Xe(),Xe(),Xe();const Il=Ne.__EXTEND_POINT__,ke=tn(Il),me={UNEXPECTED_RETURN_TYPE:Il,INVALID_ARGUMENT:ke(),MUST_BE_CALL_SETUP_TOP:ke(),NOT_INSTALLED:ke(),NOT_AVAILABLE_IN_LEGACY_MODE:ke(),REQUIRED_VALUE:ke(),INVALID_VALUE:ke(),CANNOT_SETUP_VUE_DEVTOOLS_PLUGIN:ke(),NOT_INSTALLED_WITH_PROVIDE:ke(),UNEXPECTED_ERROR:ke(),NOT_COMPATIBLE_LEGACY_VUE_I18N:ke(),BRIDGE_SUPPORT_VUE_2_ONLY:ke(),MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION:ke(),NOT_AVAILABLE_COMPOSITION_IN_LEGACY:ke(),__EXTEND_POINT__:ke()};function ge(e,...t){return Xt(e,null,void 0)}const Rn=it("__translateVNode"),xn=it("__datetimeParts"),Nn=it("__numberParts"),Al=it("__setPluralRules"),wl=it("__injectWithOption"),Mn=it("__dispose");function ha(e){if(!X(e)||ze(e))return e;for(const t in e)if(xe(e,t))if(!t.includes("."))X(e[t])&&ha(e[t]);else{const a=t.split("."),n=a.length-1;let r=e,o=!1;for(let i=0;i<n;i++){if(a[i]==="__proto__")throw new Error(`unsafe key: ${a[i]}`);if(a[i]in r||(r[a[i]]=Q()),!X(r[a[i]])){o=!0;break}r=r[a[i]]}if(o||(ze(r)?fl.includes(a[n])||delete e[t]:(r[a[n]]=e[t],delete e[t])),!ze(r)){const i=r[a[n]];X(i)&&ha(i)}}return e}function nn(e,t){const{messages:a,__i18n:n,messageResolver:r,flatJson:o}=t,i=W(a)?a:ae(n)?Q():{[e]:Q()};if(ae(n)&&n.forEach(l=>{if("locale"in l&&"resource"in l){const{locale:s,resource:c}=l;s?(i[s]=i[s]||Q(),Da(c,i[s])):Da(c,i)}else B(l)&&Da(JSON.parse(l),i)}),r==null&&o)for(const l in i)xe(i,l)&&ha(i[l]);return i}function Ol(e){return e.type}function Dl(e,t,a){let n=X(t.messages)?t.messages:Q();"__i18nGlobal"in a&&(n=nn(e.locale.value,{messages:n,__i18n:a.__i18nGlobal}));const r=Object.keys(n);r.length&&r.forEach(o=>{e.mergeLocaleMessage(o,n[o])});{if(X(t.datetimeFormats)){const o=Object.keys(t.datetimeFormats);o.length&&o.forEach(i=>{e.mergeDateTimeFormat(i,t.datetimeFormats[i])})}if(X(t.numberFormats)){const o=Object.keys(t.numberFormats);o.length&&o.forEach(i=>{e.mergeNumberFormat(i,t.numberFormats[i])})}}}function ho(e){return R(jn,null,e,0)}const bo="__INTLIFY_META__",yo=()=>[],bp=()=>!1;let vo=0;function _o(e){return((t,a,n,r)=>e(a,n,Nt()||void 0,r))}const yp=()=>{const e=Nt();let t=null;return e&&(t=Ol(e)[bo])?{[bo]:t}:null};function ur(e={},t){const{__root:a,__injectWithOption:n}=e,r=a===void 0,o=e.flatJson,i=Ma?ve:Ie,l=!!e.translateExistCompatible;let s=Y(e.inheritLocale)?e.inheritLocale:!0;const c=i(a&&s?a.locale.value:B(e.locale)?e.locale:zt),u=i(a&&s?a.fallbackLocale.value:B(e.fallbackLocale)||ae(e.fallbackLocale)||W(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:c.value),d=i(nn(c.value,e)),m=i(W(e.datetimeFormats)?e.datetimeFormats:{[c.value]:{}}),h=i(W(e.numberFormats)?e.numberFormats:{[c.value]:{}});let C=a?a.missingWarn:Y(e.missingWarn)||nt(e.missingWarn)?e.missingWarn:!0,v=a?a.fallbackWarn:Y(e.fallbackWarn)||nt(e.fallbackWarn)?e.fallbackWarn:!0,P=a?a.fallbackRoot:Y(e.fallbackRoot)?e.fallbackRoot:!0,S=!!e.fallbackFormat,A=te(e.missing)?e.missing:null,b=te(e.missing)?_o(e.missing):null,y=te(e.postTranslation)?e.postTranslation:null,_=a?a.warnHtmlMessage:Y(e.warnHtmlMessage)?e.warnHtmlMessage:!0,k=!!e.escapeParameter;const f=a?a.modifiers:W(e.modifiers)?e.modifiers:{};let I=e.pluralRules||a&&a.pluralRules,w;w=(()=>{r&&io(null);const E={version:fp,locale:c.value,fallbackLocale:u.value,messages:d.value,modifiers:f,pluralRules:I,missing:b===null?void 0:b,missingWarn:C,fallbackWarn:v,fallbackFormat:S,unresolving:!0,postTranslation:y===null?void 0:y,warnHtmlMessage:_,escapeParameter:k,messageResolver:e.messageResolver,messageCompiler:e.messageCompiler,__meta:{framework:"vue"}};E.datetimeFormats=m.value,E.numberFormats=h.value,E.__datetimeFormatters=W(w)?w.__datetimeFormatters:void 0,E.__numberFormatters=W(w)?w.__numberFormatters:void 0;const N=rp(E);return r&&io(N),N})(),ia(w,c.value,u.value);function ee(){return[c.value,u.value,d.value,m.value,h.value]}const U=F({get:()=>c.value,set:E=>{c.value=E,w.locale=c.value}}),oe=F({get:()=>u.value,set:E=>{u.value=E,w.fallbackLocale=u.value,ia(w,c.value,E)}}),M=F(()=>d.value),L=F(()=>m.value),x=F(()=>h.value);function z(){return te(y)?y:null}function q(E){y=E,w.postTranslation=E}function fe(){return A}function de(E){E!==null&&(b=_o(E)),A=E,w.missing=b}const ne=(E,N,Z,le,Ze,_a)=>{ee();let Pt;try{__INTLIFY_PROD_DEVTOOLS__,r||(w.fallbackContext=a?np():void 0),Pt=E(w)}finally{__INTLIFY_PROD_DEVTOOLS__,r||(w.fallbackContext=void 0)}if(Z!=="translate exists"&&se(Pt)&&Pt===an||Z==="translate exists"&&!Pt){const[Ml,Ug]=N();return a&&P?le(a):Ze(Ml)}else{if(_a(Pt))return Pt;throw ge(me.UNEXPECTED_RETURN_TYPE)}};function ie(...E){return ne(N=>Reflect.apply(uo,null,[N,...E]),()=>On(...E),"translate",N=>Reflect.apply(N.t,N,[...E]),N=>N,N=>B(N))}function Oe(...E){const[N,Z,le]=E;if(le&&!X(le))throw ge(me.INVALID_ARGUMENT);return ie(N,Z,ye({resolvedMessage:!0},le||{}))}function Be(...E){return ne(N=>Reflect.apply(mo,null,[N,...E]),()=>Dn(...E),"datetime format",N=>Reflect.apply(N.d,N,[...E]),()=>no,N=>B(N))}function qe(...E){return ne(N=>Reflect.apply(fo,null,[N,...E]),()=>Fn(...E),"number format",N=>Reflect.apply(N.n,N,[...E]),()=>no,N=>B(N))}function Qt(E){return E.map(N=>B(N)||se(N)||Y(N)?ho(String(N)):N)}const Zt={normalize:Qt,interpolate:E=>E,type:"vnode"};function ea(...E){return ne(N=>{let Z;const le=N;try{le.processor=Zt,Z=Reflect.apply(uo,null,[le,...E])}finally{le.processor=null}return Z},()=>On(...E),"translate",N=>N[Rn](...E),N=>[ho(N)],N=>ae(N))}function Ct(...E){return ne(N=>Reflect.apply(fo,null,[N,...E]),()=>Fn(...E),"number format",N=>N[Nn](...E),yo,N=>B(N)||ae(N))}function ta(...E){return ne(N=>Reflect.apply(mo,null,[N,...E]),()=>Dn(...E),"datetime format",N=>N[xn](...E),yo,N=>B(N)||ae(N))}function aa(E){I=E,w.pluralRules=I}function na(E,N){return ne(()=>{if(!E)return!1;const Z=B(N)?N:c.value,le=kt(Z),Ze=w.messageResolver(le,E);return l?Ze!=null:ze(Ze)||De(Ze)||B(Ze)},()=>[E],"translate exists",Z=>Reflect.apply(Z.te,Z,[E,N]),bp,Z=>Y(Z))}function $(E){let N=null;const Z=hl(w,u.value,c.value);for(let le=0;le<Z.length;le++){const Ze=d.value[Z[le]]||{},_a=w.messageResolver(Ze,E);if(_a!=null){N=_a;break}}return N}function J(E){const N=$(E);return N??(a?a.tm(E)||{}:{})}function kt(E){return d.value[E]||{}}function St(E,N){if(o){const Z={[E]:N};for(const le in Z)xe(Z,le)&&ha(Z[le]);N=Z[E]}d.value[E]=N,w.messages=d.value}function ra(E,N){d.value[E]=d.value[E]||{};const Z={[E]:N};if(o)for(const le in Z)xe(Z,le)&&ha(Z[le]);N=Z[E],Da(N,d.value[E]),w.messages=d.value}function rn(E){return m.value[E]||{}}function p(E,N){m.value[E]=N,w.datetimeFormats=m.value,po(w,E,N)}function g(E,N){m.value[E]=ye(m.value[E]||{},N),w.datetimeFormats=m.value,po(w,E,N)}function D(E){return h.value[E]||{}}function H(E,N){h.value[E]=N,w.numberFormats=h.value,go(w,E,N)}function re(E,N){h.value[E]=ye(h.value[E]||{},N),w.numberFormats=h.value,go(w,E,N)}vo++,a&&Ma&&(Se(a.locale,E=>{s&&(c.value=E,w.locale=E,ia(w,c.value,u.value))}),Se(a.fallbackLocale,E=>{s&&(u.value=E,w.fallbackLocale=E,ia(w,c.value,u.value))}));const G={id:vo,locale:U,fallbackLocale:oe,get inheritLocale(){return s},set inheritLocale(E){s=E,E&&a&&(c.value=a.locale.value,u.value=a.fallbackLocale.value,ia(w,c.value,u.value))},get availableLocales(){return Object.keys(d.value).sort()},messages:M,get modifiers(){return f},get pluralRules(){return I||{}},get isGlobal(){return r},get missingWarn(){return C},set missingWarn(E){C=E,w.missingWarn=C},get fallbackWarn(){return v},set fallbackWarn(E){v=E,w.fallbackWarn=v},get fallbackRoot(){return P},set fallbackRoot(E){P=E},get fallbackFormat(){return S},set fallbackFormat(E){S=E,w.fallbackFormat=S},get warnHtmlMessage(){return _},set warnHtmlMessage(E){_=E,w.warnHtmlMessage=E},get escapeParameter(){return k},set escapeParameter(E){k=E,w.escapeParameter=E},t:ie,getLocaleMessage:kt,setLocaleMessage:St,mergeLocaleMessage:ra,getPostTranslationHandler:z,setPostTranslationHandler:q,getMissingHandler:fe,setMissingHandler:de,[Al]:aa};return G.datetimeFormats=L,G.numberFormats=x,G.rt=Oe,G.te=na,G.tm=J,G.d=Be,G.n=qe,G.getDateTimeFormat=rn,G.setDateTimeFormat=p,G.mergeDateTimeFormat=g,G.getNumberFormat=D,G.setNumberFormat=H,G.mergeNumberFormat=re,G[wl]=n,G[Rn]=ea,G[xn]=ta,G[Nn]=Ct,G}function vp(e){const t=B(e.locale)?e.locale:zt,a=B(e.fallbackLocale)||ae(e.fallbackLocale)||W(e.fallbackLocale)||e.fallbackLocale===!1?e.fallbackLocale:t,n=te(e.missing)?e.missing:void 0,r=Y(e.silentTranslationWarn)||nt(e.silentTranslationWarn)?!e.silentTranslationWarn:!0,o=Y(e.silentFallbackWarn)||nt(e.silentFallbackWarn)?!e.silentFallbackWarn:!0,i=Y(e.fallbackRoot)?e.fallbackRoot:!0,l=!!e.formatFallbackMessages,s=W(e.modifiers)?e.modifiers:{},c=e.pluralizationRules,u=te(e.postTranslation)?e.postTranslation:void 0,d=B(e.warnHtmlInMessage)?e.warnHtmlInMessage!=="off":!0,m=!!e.escapeParameterHtml,h=Y(e.sync)?e.sync:!0;let C=e.messages;if(W(e.sharedMessages)){const k=e.sharedMessages;C=Object.keys(k).reduce((I,w)=>{const K=I[w]||(I[w]={});return ye(K,k[w]),I},C||{})}const{__i18n:v,__root:P,__injectWithOption:S}=e,A=e.datetimeFormats,b=e.numberFormats,y=e.flatJson,_=e.translateExistCompatible;return{locale:t,fallbackLocale:a,messages:C,flatJson:y,datetimeFormats:A,numberFormats:b,missing:n,missingWarn:r,fallbackWarn:o,fallbackRoot:i,fallbackFormat:l,modifiers:s,pluralRules:c,postTranslation:u,warnHtmlMessage:d,escapeParameter:m,messageResolver:e.messageResolver,inheritLocale:h,translateExistCompatible:_,__i18n:v,__root:P,__injectWithOption:S}}function $n(e={},t){{const a=ur(vp(e)),{__extender:n}=e,r={id:a.id,get locale(){return a.locale.value},set locale(o){a.locale.value=o},get fallbackLocale(){return a.fallbackLocale.value},set fallbackLocale(o){a.fallbackLocale.value=o},get messages(){return a.messages.value},get datetimeFormats(){return a.datetimeFormats.value},get numberFormats(){return a.numberFormats.value},get availableLocales(){return a.availableLocales},get formatter(){return{interpolate(){return[]}}},set formatter(o){},get missing(){return a.getMissingHandler()},set missing(o){a.setMissingHandler(o)},get silentTranslationWarn(){return Y(a.missingWarn)?!a.missingWarn:a.missingWarn},set silentTranslationWarn(o){a.missingWarn=Y(o)?!o:o},get silentFallbackWarn(){return Y(a.fallbackWarn)?!a.fallbackWarn:a.fallbackWarn},set silentFallbackWarn(o){a.fallbackWarn=Y(o)?!o:o},get modifiers(){return a.modifiers},get formatFallbackMessages(){return a.fallbackFormat},set formatFallbackMessages(o){a.fallbackFormat=o},get postTranslation(){return a.getPostTranslationHandler()},set postTranslation(o){a.setPostTranslationHandler(o)},get sync(){return a.inheritLocale},set sync(o){a.inheritLocale=o},get warnHtmlInMessage(){return a.warnHtmlMessage?"warn":"off"},set warnHtmlInMessage(o){a.warnHtmlMessage=o!=="off"},get escapeParameterHtml(){return a.escapeParameter},set escapeParameterHtml(o){a.escapeParameter=o},get preserveDirectiveContent(){return!0},set preserveDirectiveContent(o){},get pluralizationRules(){return a.pluralRules||{}},__composer:a,t(...o){const[i,l,s]=o,c={};let u=null,d=null;if(!B(i))throw ge(me.INVALID_ARGUMENT);const m=i;return B(l)?c.locale=l:ae(l)?u=l:W(l)&&(d=l),ae(s)?u=s:W(s)&&(d=s),Reflect.apply(a.t,a,[m,u||d||{},c])},rt(...o){return Reflect.apply(a.rt,a,[...o])},tc(...o){const[i,l,s]=o,c={plural:1};let u=null,d=null;if(!B(i))throw ge(me.INVALID_ARGUMENT);const m=i;return B(l)?c.locale=l:se(l)?c.plural=l:ae(l)?u=l:W(l)&&(d=l),B(s)?c.locale=s:ae(s)?u=s:W(s)&&(d=s),Reflect.apply(a.t,a,[m,u||d||{},c])},te(o,i){return a.te(o,i)},tm(o){return a.tm(o)},getLocaleMessage(o){return a.getLocaleMessage(o)},setLocaleMessage(o,i){a.setLocaleMessage(o,i)},mergeLocaleMessage(o,i){a.mergeLocaleMessage(o,i)},d(...o){return Reflect.apply(a.d,a,[...o])},getDateTimeFormat(o){return a.getDateTimeFormat(o)},setDateTimeFormat(o,i){a.setDateTimeFormat(o,i)},mergeDateTimeFormat(o,i){a.mergeDateTimeFormat(o,i)},n(...o){return Reflect.apply(a.n,a,[...o])},getNumberFormat(o){return a.getNumberFormat(o)},setNumberFormat(o,i){a.setNumberFormat(o,i)},mergeNumberFormat(o,i){a.mergeNumberFormat(o,i)},getChoiceIndex(o,i){return-1}};return r.__extender=n,r}}const mr={tag:{type:[String,Object]},locale:{type:String},scope:{type:String,validator:e=>e==="parent"||e==="global",default:"parent"},i18n:{type:Object}};function _p({slots:e},t){return t.length===1&&t[0]==="default"?(e.default?e.default():[]).reduce((n,r)=>[...n,...r.type===rt?r.children:[r]],[]):t.reduce((a,n)=>{const r=e[n];return r&&(a[n]=r()),a},Q())}function Fl(e){return rt}const Cp=pe({name:"i18n-t",props:ye({keypath:{type:String,required:!0},plural:{type:[Number,String],validator:e=>se(e)||!isNaN(e)}},mr),setup(e,t){const{slots:a,attrs:n}=t,r=e.i18n||pr({useScope:e.scope,__useComponent:!0});return()=>{const o=Object.keys(a).filter(d=>d!=="_"),i=Q();e.locale&&(i.locale=e.locale),e.plural!==void 0&&(i.plural=B(e.plural)?+e.plural:e.plural);const l=_p(t,o),s=r[Rn](e.keypath,l,i),c=ye(Q(),n),u=B(e.tag)||X(e.tag)?e.tag:Fl();return qt(u,c,s)}}}),Co=Cp;function kp(e){return ae(e)&&!B(e[0])}function Rl(e,t,a,n){const{slots:r,attrs:o}=t;return()=>{const i={part:!0};let l=Q();e.locale&&(i.locale=e.locale),B(e.format)?i.key=e.format:X(e.format)&&(B(e.format.key)&&(i.key=e.format.key),l=Object.keys(e.format).reduce((m,h)=>a.includes(h)?ye(Q(),m,{[h]:e.format[h]}):m,Q()));const s=n(e.value,i,l);let c=[i.key];ae(s)?c=s.map((m,h)=>{const C=r[m.type],v=C?C({[m.type]:m.value,index:h,parts:s}):[m.value];return kp(v)&&(v[0].key=`${m.type}-${h}`),v}):B(s)&&(c=[s]);const u=ye(Q(),o),d=B(e.tag)||X(e.tag)?e.tag:Fl();return qt(d,u,c)}}const Sp=pe({name:"i18n-n",props:ye({value:{type:Number,required:!0},format:{type:[String,Object]}},mr),setup(e,t){const a=e.i18n||pr({useScope:e.scope,__useComponent:!0});return Rl(e,t,El,(...n)=>a[Nn](...n))}}),ko=Sp,Pp=pe({name:"i18n-d",props:ye({value:{type:[Number,Date],required:!0},format:{type:[String,Object]}},mr),setup(e,t){const a=e.i18n||pr({useScope:e.scope,__useComponent:!0});return Rl(e,t,Tl,(...n)=>a[xn](...n))}}),So=Pp;function Lp(e,t){const a=e;if(e.mode==="composition")return a.__getInstance(t)||e.global;{const n=a.__getInstance(t);return n!=null?n.__composer:e.global.__composer}}function Tp(e){const t=i=>{const{instance:l,modifiers:s,value:c}=i;if(!l||!l.$)throw ge(me.UNEXPECTED_ERROR);const u=Lp(e,l.$),d=Po(c);return[Reflect.apply(u.t,u,[...Lo(d)]),u]};return{created:(i,l)=>{const[s,c]=t(l);Ma&&e.global===c&&(i.__i18nWatcher=Se(c.locale,()=>{l.instance&&l.instance.$forceUpdate()})),i.__composer=c,i.textContent=s},unmounted:i=>{Ma&&i.__i18nWatcher&&(i.__i18nWatcher(),i.__i18nWatcher=void 0,delete i.__i18nWatcher),i.__composer&&(i.__composer=void 0,delete i.__composer)},beforeUpdate:(i,{value:l})=>{if(i.__composer){const s=i.__composer,c=Po(l);i.textContent=Reflect.apply(s.t,s,[...Lo(c)])}},getSSRProps:i=>{const[l]=t(i);return{textContent:l}}}}function Po(e){if(B(e))return{path:e};if(W(e)){if(!("path"in e))throw ge(me.REQUIRED_VALUE,"path");return e}else throw ge(me.INVALID_VALUE)}function Lo(e){const{path:t,locale:a,args:n,choice:r,plural:o}=e,i={},l=n||{};return B(a)&&(i.locale=a),se(r)&&(i.plural=r),se(o)&&(i.plural=o),[t,l,i]}function Ep(e,t,...a){const n=W(a[0])?a[0]:{},r=!!n.useI18nComponentName;(!Y(n.globalInstall)||n.globalInstall)&&([r?"i18n":Co.name,"I18nT"].forEach(i=>e.component(i,Co)),[ko.name,"I18nN"].forEach(i=>e.component(i,ko)),[So.name,"I18nD"].forEach(i=>e.component(i,So))),e.directive("t",Tp(t))}function Ip(e,t,a){return{beforeCreate(){const n=Nt();if(!n)throw ge(me.UNEXPECTED_ERROR);const r=this.$options;if(r.i18n){const o=r.i18n;if(r.__i18n&&(o.__i18n=r.__i18n),o.__root=t,this===this.$root)this.$i18n=To(e,o);else{o.__injectWithOption=!0,o.__extender=a.__vueI18nExtend,this.$i18n=$n(o);const i=this.$i18n;i.__extender&&(i.__disposer=i.__extender(this.$i18n))}}else if(r.__i18n)if(this===this.$root)this.$i18n=To(e,r);else{this.$i18n=$n({__i18n:r.__i18n,__injectWithOption:!0,__extender:a.__vueI18nExtend,__root:t});const o=this.$i18n;o.__extender&&(o.__disposer=o.__extender(this.$i18n))}else this.$i18n=e;r.__i18nGlobal&&Dl(t,r,r),this.$t=(...o)=>this.$i18n.t(...o),this.$rt=(...o)=>this.$i18n.rt(...o),this.$tc=(...o)=>this.$i18n.tc(...o),this.$te=(o,i)=>this.$i18n.te(o,i),this.$d=(...o)=>this.$i18n.d(...o),this.$n=(...o)=>this.$i18n.n(...o),this.$tm=o=>this.$i18n.tm(o),a.__setInstance(n,this.$i18n)},mounted(){},unmounted(){const n=Nt();if(!n)throw ge(me.UNEXPECTED_ERROR);const r=this.$i18n;delete this.$t,delete this.$rt,delete this.$tc,delete this.$te,delete this.$d,delete this.$n,delete this.$tm,r.__disposer&&(r.__disposer(),delete r.__disposer,delete r.__extender),a.__deleteInstance(n),delete this.$i18n}}}function To(e,t){e.locale=t.locale||e.locale,e.fallbackLocale=t.fallbackLocale||e.fallbackLocale,e.missing=t.missing||e.missing,e.silentTranslationWarn=t.silentTranslationWarn||e.silentFallbackWarn,e.silentFallbackWarn=t.silentFallbackWarn||e.silentFallbackWarn,e.formatFallbackMessages=t.formatFallbackMessages||e.formatFallbackMessages,e.postTranslation=t.postTranslation||e.postTranslation,e.warnHtmlInMessage=t.warnHtmlInMessage||e.warnHtmlInMessage,e.escapeParameterHtml=t.escapeParameterHtml||e.escapeParameterHtml,e.sync=t.sync||e.sync,e.__composer[Al](t.pluralizationRules||e.pluralizationRules);const a=nn(e.locale,{messages:t.messages,__i18n:t.__i18n});return Object.keys(a).forEach(n=>e.mergeLocaleMessage(n,a[n])),t.datetimeFormats&&Object.keys(t.datetimeFormats).forEach(n=>e.mergeDateTimeFormat(n,t.datetimeFormats[n])),t.numberFormats&&Object.keys(t.numberFormats).forEach(n=>e.mergeNumberFormat(n,t.numberFormats[n])),e}const Ap=it("global-vue-i18n");function wp(e={},t){const a=__VUE_I18N_LEGACY_API__&&Y(e.legacy)?e.legacy:__VUE_I18N_LEGACY_API__,n=Y(e.globalInjection)?e.globalInjection:!0,r=__VUE_I18N_LEGACY_API__&&a?!!e.allowComposition:!0,o=new Map,[i,l]=Op(e,a),s=it("");function c(m){return o.get(m)||null}function u(m,h){o.set(m,h)}function d(m){o.delete(m)}{const m={get mode(){return __VUE_I18N_LEGACY_API__&&a?"legacy":"composition"},get allowComposition(){return r},async install(h,...C){if(h.__VUE_I18N_SYMBOL__=s,h.provide(h.__VUE_I18N_SYMBOL__,m),W(C[0])){const S=C[0];m.__composerExtend=S.__composerExtend,m.__vueI18nExtend=S.__vueI18nExtend}let v=null;!a&&n&&(v=Hp(h,m.global)),__VUE_I18N_FULL_INSTALL__&&Ep(h,m,...C),__VUE_I18N_LEGACY_API__&&a&&h.mixin(Ip(l,l.__composer,m));const P=h.unmount;h.unmount=()=>{v&&v(),m.dispose(),P()}},get global(){return l},dispose(){i.stop()},__instances:o,__getInstance:c,__setInstance:u,__deleteInstance:d};return m}}function pr(e={}){const t=Nt();if(t==null)throw ge(me.MUST_BE_CALL_SETUP_TOP);if(!t.isCE&&t.appContext.app!=null&&!t.appContext.app.__VUE_I18N_SYMBOL__)throw ge(me.NOT_INSTALLED);const a=Dp(t),n=Rp(a),r=Ol(t),o=Fp(e,r);if(__VUE_I18N_LEGACY_API__&&a.mode==="legacy"&&!e.__useComponent){if(!a.allowComposition)throw ge(me.NOT_AVAILABLE_IN_LEGACY_MODE);return $p(t,o,n,e)}if(o==="global")return Dl(n,e,r),n;if(o==="parent"){let s=xp(a,t,e.__useComponent);return s==null&&(s=n),s}const i=a;let l=i.__getInstance(t);if(l==null){const s=ye({},e);"__i18n"in r&&(s.__i18n=r.__i18n),n&&(s.__root=n),l=ur(s),i.__composerExtend&&(l[Mn]=i.__composerExtend(l)),Mp(i,t,l),i.__setInstance(t,l)}return l}function Op(e,t,a){const n=Gl();{const r=__VUE_I18N_LEGACY_API__&&t?n.run(()=>$n(e)):n.run(()=>ur(e));if(r==null)throw ge(me.UNEXPECTED_ERROR);return[n,r]}}function Dp(e){{const t=$e(e.isCE?Ap:e.appContext.app.__VUE_I18N_SYMBOL__);if(!t)throw ge(e.isCE?me.NOT_INSTALLED_WITH_PROVIDE:me.UNEXPECTED_ERROR);return t}}function Fp(e,t){return en(e)?"__i18n"in t?"local":"global":e.useScope?e.useScope:"local"}function Rp(e){return e.mode==="composition"?e.global:e.global.__composer}function xp(e,t,a=!1){let n=null;const r=t.root;let o=Np(t,a);for(;o!=null;){const i=e;if(e.mode==="composition")n=i.__getInstance(o);else if(__VUE_I18N_LEGACY_API__){const l=i.__getInstance(o);l!=null&&(n=l.__composer,a&&n&&!n[wl]&&(n=null))}if(n!=null||r===o)break;o=o.parent}return n}function Np(e,t=!1){return e==null?null:t&&e.vnode.ctx||e.parent}function Mp(e,t,a){ya(()=>{},t),Un(()=>{const n=a;e.__deleteInstance(t);const r=n[Mn];r&&(r(),delete n[Mn])},t)}function $p(e,t,a,n={}){const r=t==="local",o=Ie(null);if(r&&e.proxy&&!(e.proxy.$options.i18n||e.proxy.$options.__i18n))throw ge(me.MUST_DEFINE_I18N_OPTION_IN_ALLOW_COMPOSITION);const i=Y(n.inheritLocale)?n.inheritLocale:!B(n.locale),l=ve(!r||i?a.locale.value:B(n.locale)?n.locale:zt),s=ve(!r||i?a.fallbackLocale.value:B(n.fallbackLocale)||ae(n.fallbackLocale)||W(n.fallbackLocale)||n.fallbackLocale===!1?n.fallbackLocale:l.value),c=ve(nn(l.value,n)),u=ve(W(n.datetimeFormats)?n.datetimeFormats:{[l.value]:{}}),d=ve(W(n.numberFormats)?n.numberFormats:{[l.value]:{}}),m=r?a.missingWarn:Y(n.missingWarn)||nt(n.missingWarn)?n.missingWarn:!0,h=r?a.fallbackWarn:Y(n.fallbackWarn)||nt(n.fallbackWarn)?n.fallbackWarn:!0,C=r?a.fallbackRoot:Y(n.fallbackRoot)?n.fallbackRoot:!0,v=!!n.fallbackFormat,P=te(n.missing)?n.missing:null,S=te(n.postTranslation)?n.postTranslation:null,A=r?a.warnHtmlMessage:Y(n.warnHtmlMessage)?n.warnHtmlMessage:!0,b=!!n.escapeParameter,y=r?a.modifiers:W(n.modifiers)?n.modifiers:{},_=n.pluralRules||r&&a.pluralRules;function k(){return[l.value,s.value,c.value,u.value,d.value]}const f=F({get:()=>o.value?o.value.locale.value:l.value,set:$=>{o.value&&(o.value.locale.value=$),l.value=$}}),I=F({get:()=>o.value?o.value.fallbackLocale.value:s.value,set:$=>{o.value&&(o.value.fallbackLocale.value=$),s.value=$}}),w=F(()=>o.value?o.value.messages.value:c.value),K=F(()=>u.value),ee=F(()=>d.value);function U(){return o.value?o.value.getPostTranslationHandler():S}function oe($){o.value&&o.value.setPostTranslationHandler($)}function M(){return o.value?o.value.getMissingHandler():P}function L($){o.value&&o.value.setMissingHandler($)}function x($){return k(),$()}function z(...$){return o.value?x(()=>Reflect.apply(o.value.t,null,[...$])):x(()=>"")}function q(...$){return o.value?Reflect.apply(o.value.rt,null,[...$]):""}function fe(...$){return o.value?x(()=>Reflect.apply(o.value.d,null,[...$])):x(()=>"")}function de(...$){return o.value?x(()=>Reflect.apply(o.value.n,null,[...$])):x(()=>"")}function ne($){return o.value?o.value.tm($):{}}function ie($,J){return o.value?o.value.te($,J):!1}function Oe($){return o.value?o.value.getLocaleMessage($):{}}function Be($,J){o.value&&(o.value.setLocaleMessage($,J),c.value[$]=J)}function qe($,J){o.value&&o.value.mergeLocaleMessage($,J)}function Qt($){return o.value?o.value.getDateTimeFormat($):{}}function va($,J){o.value&&(o.value.setDateTimeFormat($,J),u.value[$]=J)}function Zt($,J){o.value&&o.value.mergeDateTimeFormat($,J)}function ea($){return o.value?o.value.getNumberFormat($):{}}function Ct($,J){o.value&&(o.value.setNumberFormat($,J),d.value[$]=J)}function ta($,J){o.value&&o.value.mergeNumberFormat($,J)}const aa={get id(){return o.value?o.value.id:-1},locale:f,fallbackLocale:I,messages:w,datetimeFormats:K,numberFormats:ee,get inheritLocale(){return o.value?o.value.inheritLocale:i},set inheritLocale($){o.value&&(o.value.inheritLocale=$)},get availableLocales(){return o.value?o.value.availableLocales:Object.keys(c.value)},get modifiers(){return o.value?o.value.modifiers:y},get pluralRules(){return o.value?o.value.pluralRules:_},get isGlobal(){return o.value?o.value.isGlobal:!1},get missingWarn(){return o.value?o.value.missingWarn:m},set missingWarn($){o.value&&(o.value.missingWarn=$)},get fallbackWarn(){return o.value?o.value.fallbackWarn:h},set fallbackWarn($){o.value&&(o.value.missingWarn=$)},get fallbackRoot(){return o.value?o.value.fallbackRoot:C},set fallbackRoot($){o.value&&(o.value.fallbackRoot=$)},get fallbackFormat(){return o.value?o.value.fallbackFormat:v},set fallbackFormat($){o.value&&(o.value.fallbackFormat=$)},get warnHtmlMessage(){return o.value?o.value.warnHtmlMessage:A},set warnHtmlMessage($){o.value&&(o.value.warnHtmlMessage=$)},get escapeParameter(){return o.value?o.value.escapeParameter:b},set escapeParameter($){o.value&&(o.value.escapeParameter=$)},t:z,getPostTranslationHandler:U,setPostTranslationHandler:oe,getMissingHandler:M,setMissingHandler:L,rt:q,d:fe,n:de,tm:ne,te:ie,getLocaleMessage:Oe,setLocaleMessage:Be,mergeLocaleMessage:qe,getDateTimeFormat:Qt,setDateTimeFormat:va,mergeDateTimeFormat:Zt,getNumberFormat:ea,setNumberFormat:Ct,mergeNumberFormat:ta};function na($){$.locale.value=l.value,$.fallbackLocale.value=s.value,Object.keys(c.value).forEach(J=>{$.mergeLocaleMessage(J,c.value[J])}),Object.keys(u.value).forEach(J=>{$.mergeDateTimeFormat(J,u.value[J])}),Object.keys(d.value).forEach(J=>{$.mergeNumberFormat(J,d.value[J])}),$.escapeParameter=b,$.fallbackFormat=v,$.fallbackRoot=C,$.fallbackWarn=h,$.missingWarn=m,$.warnHtmlMessage=A}return Ao(()=>{if(e.proxy==null||e.proxy.$i18n==null)throw ge(me.NOT_AVAILABLE_COMPOSITION_IN_LEGACY);const $=o.value=e.proxy.$i18n.__composer;t==="global"?(l.value=$.locale.value,s.value=$.fallbackLocale.value,c.value=$.messages.value,u.value=$.datetimeFormats.value,d.value=$.numberFormats.value):r&&na($)}),aa}const Bp=["locale","fallbackLocale","availableLocales"],Eo=["t","rt","d","n","tm","te"];function Hp(e,t){const a=Object.create(null);return Bp.forEach(r=>{const o=Object.getOwnPropertyDescriptor(t,r);if(!o)throw ge(me.UNEXPECTED_ERROR);const i=ql(o.value)?{get(){return o.value.value},set(l){o.value.value=l}}:{get(){return o.get&&o.get()}};Object.defineProperty(a,r,i)}),e.config.globalProperties.$i18n=a,Eo.forEach(r=>{const o=Object.getOwnPropertyDescriptor(t,r);if(!o||!o.value)throw ge(me.UNEXPECTED_ERROR);Object.defineProperty(e.config.globalProperties,`$${r}`,o)}),()=>{delete e.config.globalProperties.$i18n,Eo.forEach(r=>{delete e.config.globalProperties[`$${r}`]})}}gp();__INTLIFY_JIT_COMPILATION__?oo(cp):oo(sp);Zm(Fm);ep(hl);if(__INTLIFY_PROD_DEVTOOLS__){const e=Je();e.__INTLIFY__=!0,Um(e.__INTLIFY_DEVTOOLS_GLOBAL_HOOK__)}const jp={refresh:"刷新",save:"保存",cancel:"取消",confirm:"确认",delete:"删除",edit:"编辑",create:"创建",loading:"加载中...",empty:"暂无数据",search:"搜索",back:"返回"},Up={label:"语言",switch:"中文","zh-CN":"中文",en:"English"},Vp={boundary:{title:"此页面渲染失败",retry:"重试",goHome:"返回仪表板",stack:"错误堆栈(仅开发模式可见)"},runtime:"运行时错误"},Wp={title:"Quick Ask",subtitle:"单次流式提问 — 不保存会话历史,直接走 LLMManager.chatStream(桌面 web-shell 模式)",promptPlaceholder:"输入问题,Ctrl+Enter 发送",modelPlaceholder:"model(留空走默认)",charsSuffix:"字符",tokensSuffix:"tokens",send:"发送",cancel:"取消",clear:"清空",answerCardTitle:"回复",streaming:"流式接收中...",done:"完成",waitingFirstToken:"等待第一个 token..."},zp={title:"合规与威胁情报",subtitle:"威胁指标 (IoC) · 用户行为分析 (UEBA)",refresh:"刷新",actionDropdown:"操作 ▼",actions:{match:"匹配指标",uebaBuild:"构建基线",uebaAnalyze:"行为分析"},stats:{iocTotal:"IoC 总数",iocTypes:"IoC 类型",riskEntities:"风险实体",highRisk:"高风险 (≥70)",recentAnomalies:"近期异常"},typeBreakdown:"IoC 类型分布",tabs:{threat:"威胁情报",ueba:"行为分析 (UEBA)"},filter:{all:"全部"},cols:{type:"类型",value:"值",labels:"标签",confidence:"置信度",source:"来源",lastSeen:"最近见到",action:"操作",entity:"实体",riskScore:"风险分",eventCount:"事件数",failureRate:"失败率",uniqueResources:"资源数",burstiness:"突发度"},table:{totalSuffix:"共 {n} 条",delete:"删除",deleteConfirm:"删除该指标?",deleteOk:"删除",cancel:"取消",emptyThreatsLine1:"暂无威胁指标。需通过 CLI 导入 STIX bundle:",emptyAuditEntities:"审计日志为空,无可分析实体",emptyRiskEntities:"暂无风险实体",noAnomalies:"无异常"},ueba:{noAuditLog:"尚无审计日志",noAuditLogDesc:"UEBA 基于 audit_log 表的审计事件。先在桌面端或 CLI 触发一些受审计的操作(如 cc auth login / cc note add),再回来运行「构建基线」。",errorMessage:"UEBA 错误:{err}",topRiskTitle:"高风险实体 (Top {count})",anomalyTitle:"近期异常 ({count})"},match:{modalTitle:"匹配威胁指标",ok:"匹配",close:"关闭",label:"可观测值",placeholder:"IP / 域名 / URL / 邮箱 / 文件哈希",result:"匹配结果",hit:"命中",miss:"未命中",detectType:"检测类型:",sourcePrefix:"来源:",confidencePrefix:"置信度:"},build:{modalTitle:"构建 UEBA 基线",ok:"构建",cancel:"取消",entityLabel:"实体(可选)",entityPlaceholder:"留空则全量",daysLabel:"天数",daysPlaceholder:"例如 30",footnote:"从 audit_log 读取最近 N 天的事件,按实体计算事件计数 / 失败率 / 资源覆盖等基线指标。"},analyze:{modalTitle:"运行行为分析",ok:"分析",cancel:"取消",entityLabel:"实体(可选)",entityPlaceholder:"留空则全量",thresholdLabel:"阈值",daysLabel:"天数",footnote:"将最近 N 天事件与已存基线对比;分数 ≥ 阈值的事件作为异常输出。"},msg:{loadFailed:"加载合规数据失败",matchEmpty:"请输入要匹配的可观测值",matchFailed:"匹配失败",matchHit:"命中威胁指标 ({type})",matchUnknownType:"无法识别该可观测值类型",matchMiss:"未命中(已识别为 {type})",deleteFailed:"删除失败",deleteSuccess:"指标已删除",auditEmptyBuild:"audit_log 表为空,无法构建基线",buildFailed:"构建失败",buildSuccess:"基线已构建",auditEmptyAnalyze:"audit_log 表为空,无可分析事件",analyzeFailed:"分析失败",analyzeSuccess:"分析完成,发现 {n} 个异常"}},Gp={title:"开发流水线",subtitle:"7 阶段 AI 开发流水线 · 质量门 · 部署策略",refresh:"刷新",create:"创建流水线",noDb:{message:"该模块需要项目级数据库",description:"`cc pipeline ...` 命令仅在 chainlesschain 项目目录下可用。请先运行 `cc init` 初始化项目,或在已初始化的目录启动 `cc serve`。"},stats:{totalPipelines:"流水线总数",running:"运行中",totalStages:"阶段总数",totalArtifacts:"制品",totalDeploys:"部署"},stagesCardTitle:"7 阶段流水线",tabs:{pipelines:"流水线",deploys:"部署",templates:"模板"},filters:{allTemplates:"全部模板",allStatuses:"全部状态"},table:{totalSuffix:"共 {n} 条",unnamed:"(未命名)",actions:{details:"详情",start:"启动",pause:"暂停",resume:"继续",approveGate:"批准门",cancel:"取消"},cancelConfirm:"取消该流水线?",cancelOk:"取消",cancelBack:"返回",emptyFiltered:"没有符合条件的流水线",empty:'暂无流水线,点"创建流水线"创建第一条',emptyDeploys:"暂无部署记录"},cols:{name:"名称",template:"模板",progress:"进度",currentStage:"当前阶段",status:"状态",createdAt:"创建时间",action:"操作",pipeline:"流水线",strategy:"策略"},create_modal:{title:"创建流水线",ok:"创建",cancel:"取消",templateLabel:"模板",nameLabel:"名称",namePlaceholder:"可选,例如: 修复登录 Bug",configLabel:"配置 (JSON)",configPlaceholder:"JSON 对象,例如 repo=web、ticket=PROJ-123"},details:{title:"流水线详情:{label}",template:"模板",status:"状态",progress:"进度",createdAt:"创建时间",startedAt:"开始时间",stagesHeader:"阶段详情",needsApproval:"需要审批",approved:"(已批准)",errorPrefix:"错误:"},templateLabels:{feature:"功能开发",bugfix:"缺陷修复",refactor:"重构","security-audit":"安全审计"},stageLabels:{requirement:"需求",architecture:"架构","code-generation":"代码生成",testing:"测试","code-review":"代码评审",deploy:"部署",monitoring:"监控"},pipelineStatusLabels:{pending:"待启动",running:"运行中",paused:"已暂停",completed:"已完成",failed:"失败",cancelled:"已取消"},stageStatusLabels:{pending:"待处理",running:"运行中","gate-waiting":"等待审批",completed:"已完成",failed:"失败",skipped:"跳过"},deployStatusLabels:{pending:"待部署",running:"部署中",succeeded:"成功",failed:"失败","rolled-back":"已回滚"},msg:{loadFailed:"加载流水线数据失败",selectTemplate:"请选择模板",badConfigJson:"配置 JSON 格式错误",needCcInit:"需要先 cc init 初始化项目",createFailed:"创建失败",createSuccess:"流水线已创建",actionFailed:"操作失败",started:"已启动",paused:"已暂停",resumed:"已恢复",gateApproved:"门已批准",cancelled:"已取消"}},qp={title:"DID 身份管理",subtitle:"去中心化身份 / 密钥 / 签名验证",refresh:"刷新",create:"创建身份",stats:{count:"身份数量",default:"默认身份",method:"DID 方法",signable:"可签名",yes:"是",no:"否",unsetDefault:"未设置",noMethod:"无"},webOnly:{message:"仅 Web 模式",description:"助记词备份/恢复 与 DHT 网络发布 仅在桌面端可用。本页面提供创建/签名/删除/查看 DID Document 等核心操作,通过 CLI 转发执行。"},table:{totalSuffix:"共 {n} 条",defaultTag:"默认",empty:"暂无 DID 身份,点击「创建身份」添加"},cols:{did:"DID",name:"名称",method:"方法",createdAt:"创建时间",default:"默认",action:"操作"},actions:{details:"详情",sign:"签名",setDefault:"设为默认",delete:"删除"},deleteConfirm:{title:"确定删除该 DID 身份吗?删除后私钥将无法找回。",ok:"删除",cancel:"取消"},create_modal:{title:"创建 DID 身份",ok:"创建",cancel:"取消",nameLabel:"显示名称",namePlaceholder:"可选 — 用于识别身份"},details:{title:"身份详情:{label}",did:"DID",name:"名称",method:"方法",default:"默认",yes:"是",no:"否",createdAt:"创建时间",publicKey:"公钥(hex)",publicKeyLoading:"加载中...",viewDoc:"查看 DID Document",docHeader:"DID Document (W3C):"},sign_modal:{title:"签名消息:{label}...",defaultIdentityFallback:"默认身份",ok:"签名",cancel:"取消",messageLabel:"消息",messagePlaceholder:"请输入要签名的消息",resultHeader:"签名结果(hex):"},msg:{loadFailed:"加载 DID 列表失败",createFailed:"创建失败",createSuccess:"DID 身份已创建",setDefaultFailed:"设置失败",setDefaultSuccess:"已设为默认身份",deleteFailed:"删除失败",deleteSuccess:"身份已删除",loadDocFailed:"加载 DID Document 失败",signEmpty:"请输入要签名的消息",signSuccess:"签名成功",signFailed:"签名失败"}},Yp={title:"知识图谱",subtitle:"实体 / 关系 / 多跳推理 / 力导向图谱",refresh:"刷新",addEntity:"添加实体",addRelation:"添加关系",stats:{entityCount:"实体数量",relationCount:"关系数量",avgDegree:"平均度",density:"密度"},webOnly:{message:"仅 Web 模式",description:"AI 自动抽取(从笔记/对话生成实体与关系)仅在桌面端可用,本页面禁用相关按钮。所有 CRUD/推理/统计操作通过 CLI 转发执行。"},tabs:{graph:"图谱",entities:"实体({n})",relations:"关系({n})",distribution:"分布"},table:{totalSuffix:"共 {n} 条",emptyGraph:"暂无实体数据。点击「添加实体」开始构建知识图谱",emptyEntities:"暂无实体",emptyRelations:"暂无关系",emptyData:"暂无数据"},entityCols:{id:"ID",name:"名称",type:"类型",tags:"标签",action:"操作"},relationCols:{source:"源",target:"目标",relationType:"关系",weight:"权重"},actions:{reason:"推理",delete:"删除"},deleteConfirm:{title:"删除实体?关联的关系将级联删除。",ok:"删除",cancel:"取消"},distribution:{entityTypes:"实体类型分布",relationTypes:"关系类型分布"},addEntity_modal:{title:"添加实体",ok:"添加",cancel:"取消",nameLabel:"名称",namePlaceholder:"实体名称(如 Alice / ChainlessChain / RAG)",typeLabel:"类型",typePlaceholder:"请选择实体类型",tagsLabel:"标签",tagsPlaceholder:"逗号分隔,如 ai, project"},addRelation_modal:{title:"添加关系",ok:"添加",cancel:"取消",sourceLabel:"源实体",sourcePlaceholder:"选择源实体",targetLabel:"目标实体",targetPlaceholder:"选择目标实体",relationTypeLabel:"关系类型",relationTypePlaceholder:"如 知道 / 属于 / 创建",weightLabel:"权重"},reason_modal:{title:"多跳推理:{name}",maxDepth:"最大深度",direction:"方向",directionOut:"出",directionIn:"入",directionBoth:"双向",run:"执行",hint:"点击「执行」查看从此实体出发可达的实体"},msg:{loadEntitiesFailed:"加载实体失败",loadRelationsFailed:"加载关系失败",loadStatsFailed:"加载统计失败",loadEntityTypesFailed:"加载实体类型失败",addEntityEmpty:"请输入名称并选择类型",addEntityFailed:"添加失败",addEntitySuccess:"实体已添加",addRelationEmpty:"请填写源、目标和关系类型",addRelationSelfLoop:"源和目标不能是同一实体",addRelationFailed:"添加失败",addRelationSuccess:"关系已添加",deleteFailed:"删除失败",deleteSuccess:"实体已删除",reasonEmpty:"从该实体无可达节点",reasonFailed:"推理失败"}},Kp={title:"社区治理",subtitle:"提案 · 加权投票 · 启发式影响分析 · 投票预测",refresh:"刷新",create:"创建提案",noDb:{message:"该模块需要项目级数据库",description:"`cc governance ...` 命令仅在 chainlesschain 项目目录下可用。请先运行 `cc init` 初始化项目,或在已初始化的目录启动 `cc serve`。"},stats:{total:"提案总数",active:"进行中",passed:"已通过",rejected:"被否决",votes:"投票总数"},typesCard:"提案类型",tabs:{proposals:"提案",breakdown:"状态分布"},filter:{allStatuses:"全部状态",allTypes:"全部类型"},table:{totalSuffix:"共 {n} 条",unnamed:"(未命名)",emptyFiltered:"没有符合条件的提案",empty:'暂无提案,点"创建提案"创建第一条'},cols:{title:"标题",type:"类型",status:"状态",tally:"票数",impact:"影响",createdAt:"创建时间",action:"操作"},actions:{details:"详情",activate:"启动投票",vote:"投票",close:"关闭",analyze:"影响分析",predict:"预测"},closeConfirm:{title:"关闭投票并按当前票数结算?",ok:"关闭",cancel:"返回"},breakdown:{byStatus:"按状态",byType:"按类型"},create_modal:{title:"创建提案",ok:"创建",cancel:"取消",titleLabel:"标题",titlePlaceholder:"例如: 增加深色模式支持",typeLabel:"类型",proposerLabel:"提案人 DID",proposerPlaceholder:"可选,例如 did:key:z6Mk...",descLabel:"描述",descPlaceholder:"提案的背景、动机、范围(描述越详细,影响分析的 benefit 评分越高)"},vote_modal:{title:"对提案投票:{title}",ok:"投票",cancel:"取消",voterLabel:"投票人 DID",valueLabel:"选项",yes:"赞成",no:"反对",abstain:"弃权",weightLabel:"权重",weightHint:"默认 1.0",reasonLabel:"理由",reasonPlaceholder:"可选,说明投票理由"},details:{title:"提案详情:{title}",id:"ID",type:"类型",status:"状态",proposer:"提案人",proposerUnset:"未指定",description:"描述",tally:"投票汇总",tallyYes:"赞成: {n}",tallyNo:"反对: {n}",tallyAbstain:"弃权: {n}",impact:"影响等级",createdAt:"创建时间",votingStartsAt:"投票开始",votingEndsAt:"投票结束",votesHeader:"投票记录",votesEmpty:"暂无投票"},analysis:{title:"影响分析:{title}",impactLevel:"影响等级",effort:"工作量",sentiment:"社区情绪",riskBenefit:"风险 / 收益",riskScore:"风险评分",benefitScore:"收益评分",components:"影响组件",recommendations:"建议"},prediction:{title:"投票预测:{title}",outcomePass:"预计通过",outcomeReject:"预计否决",confidence:"置信度",basedOn:"预测依据",basedOnVotes:"已有投票",basedOnHeuristic:"启发式(无投票)",sampleSize:"样本数",yesProb:"赞成概率",noProb:"反对概率",abstainProb:"弃权概率"},statusLabels:{draft:"草稿",active:"进行中",passed:"已通过",rejected:"已否决",expired:"已过期"},typeLabels:{parameter_change:"参数变更",feature_request:"功能请求",policy_update:"策略更新",budget_allocation:"预算分配"},impactLabels:{low:"低",medium:"中",high:"高",critical:"关键"},voteLabels:{yes:"赞成",no:"反对",abstain:"弃权"},effortLabels:{small:"小",medium:"中",large:"大"},sentimentLabels:{positive:"积极",cautious:"谨慎",negative:"负面"},msg:{loadFailed:"加载治理数据失败",titleEmpty:"请填写标题",needCcInit:"需要先 cc init 初始化项目",createFailed:"创建失败",createSuccess:"提案已创建(草稿)",actionFailed:"操作失败",activated:"已启动投票",closed:"投票已关闭",voterEmpty:"请填写投票人 DID",voteFailed:"投票失败",voteSuccess:"投票已记录",analyzeFailed:"分析失败",predictFailed:"预测失败"}},Xp={title:"隐私计算",subtitle:"联邦学习 · 多方计算 · 差分隐私 · 同态加密",refresh:"刷新",actionDropdown:"操作 ▼",actions:{model:"创建联邦学习模型",computation:"创建 MPC 计算",dp:"差分隐私发布",he:"同态加密查询"},stats:{models:"FL 模型",avgAccuracy:"平均准确度",computations:"MPC 计算",budget:"预算余量 ε",budgetState:"预算状态",exhausted:"已耗尽",ample:"充足"},catalog:{protocols:"MPC 协议",dp:"DP 噪声机制",he:"HE 同态方案"},tabs:{models:"联邦学习",computations:"MPC 计算"},filter:{all:"全部",allProtocols:"全部协议",allStatuses:"全部状态"},table:{totalSuffix:"共 {n} 条",rounds:"{cur} / {total} 轮",trainOne:"训练一轮",failConfirm:"标记该模型为失败?",failOk:"确认",failCancel:"取消",failMark:"标记失败",submitShare:"提交份额",emptyModelsFiltered:"没有符合条件的模型",emptyModels:'暂无 FL 模型,点"操作 → 创建联邦学习模型"创建第一个',emptyComputations:'暂无 MPC 计算,点"操作 → 创建 MPC 计算"创建第一个'},modelCols:{name:"名称",status:"状态",progress:"进度",accuracy:"准确度",participants:"参与方",budget:"预算 ε",updatedAt:"更新时间",action:"操作"},computationCols:{type:"类型",protocol:"协议",progress:"份额进度",status:"状态",time:"耗时",createdAt:"创建时间",action:"操作"},flStatusLabels:{initializing:"初始化",training:"训练中",aggregating:"聚合中",completed:"已完成",failed:"失败"},mpcStatusLabels:{pending:"待处理",computing:"计算中",completed:"已完成"},model_modal:{title:"创建联邦学习模型",ok:"创建",cancel:"取消",nameLabel:"模型名称",namePlaceholder:"例如: fraud-detector",typeLabel:"模型类型",typePlaceholder:"neural_network(默认)",archLabel:"架构",archPlaceholder:"mlp(默认)",roundsLabel:"总轮次",lrLabel:"学习率",participantsLabel:"参与方数量"},computation_modal:{title:"创建 MPC 计算",ok:"创建",cancel:"取消",typeLabel:"计算类型",typePlaceholder:"例如: sum / multiplication",protocolLabel:"协议",participantsLabel:"参与方 ID",participantsPlaceholder:"逗号分隔,例如: alice,bob,carol",thresholdLabel:"所需份额",thresholdPlaceholder:"留空自动取半数"},dp_modal:{title:"差分隐私发布",ok:"发布",cancel:"关闭",dataLabel:"数据",dataPlaceholder:"数字或 JSON 数组,例如 10 或 [1,2,3]",mechanismLabel:"噪声机制",epsilonLabel:"ε (epsilon)",deltaLabel:"δ (delta)",sensitivityLabel:"敏感度",noisedTitle:"加噪后数据",spentLine:"消耗预算: {n}",remainingLine:"剩余预算: {n}",mechanismLine:"机制: {name} (ε={epsilon})",failedTitle:"发布失败"},he_modal:{title:"同态加密查询",ok:"查询",cancel:"关闭",dataLabel:"数据",dataPlaceholder:"JSON 数组,例如 [1,2,3,4,5]",operationLabel:"操作",schemeLabel:"同态方案",resultTitle:"加密计算结果",schemeLine:"方案: {name}",operationLine:"操作: {name}",inputCountLine:"输入项数: {n}",encrypted:"已加密"},msg:{loadFailed:"加载隐私计算数据失败",modelNameEmpty:"请输入模型名称",modelCreateFailed:"创建失败",modelCreateSuccess:"FL 模型已创建",computationTypeEmpty:"请输入计算类型",computationCreateFailed:"创建失败",computationCreateSuccess:"MPC 计算已创建",trainFailed:"训练失败",trainSuccess:"训练一轮完成",failMarkFailed:"标记失败",failMarkSuccess:"已标记为失败",submitFailed:"提交失败",submitSuccess:"份额已提交",dataEmpty:"请输入数据",dataInvalidJson:"数据格式错误,请输入合法 JSON 数组",dpFailed:"发布失败",dpSuccess:"已发布",dpRejected:"发布拒绝: {reason}",heFailed:"查询失败",heSuccess:"计算完成 ({scheme}/{op})"}},Jp={title:"AIOps 自治运维",subtitle:"异常检测 · 事件管理 · 自动化 Playbook",refresh:"刷新",newDropdown:"新建 ▼",actions:{incident:"创建事件",playbook:"创建 Playbook",baseline:"更新基线",detect:"异常检测"},stats:{incidents:"事件总数",pending:"待处理",playbooks:"Playbook",enabled:"启用 Playbook",baselines:"基线指标"},severityCard:"严重度分布",avgResolveLabel:"平均解决时间: {time}",tabs:{incidents:"事件",playbooks:"Playbook",baselines:"基线"},filter:{all:"全部",allStatuses:"全部状态"},table:{totalSuffix:"共 {n} 条",incidentEmptyFiltered:"没有符合条件的事件",incidentEmpty:'暂无事件,可点"新建 → 创建事件"或运行"异常检测"自动触发',playbookEmpty:'暂无 Playbook,点"新建 → 创建 Playbook"创建第一个',baselineEmpty:'暂无基线,点"新建 → 更新基线"喂入指标样本',successCount:"成功 {n}",failureCount:"失败 {n}"},incidentActions:{ack:"确认",resolve:"解决",close:"关闭",postmortem:"复盘"},playbookActions:{success:"+ 成功",failure:"+ 失败"},incidentCols:{severity:"严重度",metric:"指标",description:"描述",status:"状态",createdAt:"创建时间",action:"操作"},playbookCols:{name:"名称",enabled:"启用",stats:"执行统计",createdAt:"创建时间",action:"操作"},baselineCols:{metric:"指标",mean:"均值 / σ",iqr:"四分位",sampleCount:"样本数",updatedAt:"更新时间"},incident_modal:{title:"创建事件",ok:"创建",cancel:"取消",severityLabel:"严重度",metricLabel:"指标",metricPlaceholder:"例如: cpu_usage(可选)",descLabel:"描述"},playbook_modal:{title:"创建 Playbook",ok:"创建",cancel:"取消",nameLabel:"名称",namePlaceholder:"restart-pod",triggerLabel:"触发条件 (JSON)",triggerPlaceholder:"例如 metric=cpu, threshold=90",stepsLabel:"步骤 (JSON)",stepsPlaceholder:"JSON 数组,例如 action=restart, target=pod-1"},baseline_modal:{title:"更新基线",ok:"更新",cancel:"取消",metricLabel:"指标名",metricPlaceholder:"cpu_usage",valuesLabel:"样本值",valuesPlaceholder:"逗号分隔的数值,例如: 45.2, 47.1, 50.8, 49.3"},detect_modal:{title:"异常检测",ok:"检测",cancel:"关闭",metricLabel:"指标名",metricPlaceholder:"选择已建立基线的指标",metricOptionLabel:"{name}(n={count})",valueLabel:"测试值",algorithmLabel:"算法",resultTitle:"检测结果",anomaly:"异常",normal:"正常",reasonLine:"原因: {reason}",scoreLine:"得分: {score} (阈值 {threshold})",baselineLine:"基线: 均值 {mean}, σ {stdDev}",incidentCreated:"已自动创建 {severity} 事件"},statusLabels:{open:"待处理",acknowledged:"已确认",resolved:"已解决",closed:"已关闭"},reasonLabels:{no_baseline:'该指标尚无基线,请先"更新基线"',zero_stddev:"基线方差为零(样本完全相同)",missing_metric_name:"缺少指标名",missing_value:"缺少测试值",unknown_algorithm:"未知算法"},duration:{none:"—"},msg:{loadFailed:"加载 AIOps 数据失败",descEmpty:"请填写事件描述",createFailed:"创建失败",incidentCreated:"事件已创建",playbookNameEmpty:"请填写 Playbook 名称",jsonInvalid:"{label} JSON 格式错误",playbookCreated:"Playbook 已创建",metricEmpty:"请填写指标名",valuesInvalid:"请输入至少一个有效数值(逗号或空白分隔)",baselineUpdateFailed:"更新失败",baselineUpdated:"基线已更新(n={n})",detectFieldsEmpty:"请选择指标并填写测试值",detectFailed:"检测失败",detectAnomaly:"检测到异常 ({severity})",incidentTransitionFailed:"转换失败",incidentAcked:"事件已确认",incidentResolved:"事件已解决",incidentClosed:"事件已关闭",postmortemTitle:"事件 {id} 复盘",postmortemEmpty:"(无内容)",postmortemFailed:"生成复盘失败",playbookToggleFailed:"切换失败",playbookEnabled:"Playbook 已启用",playbookDisabled:"Playbook 已禁用",playbookRecordFailed:"记录失败",playbookRecordSuccess:"已记录成功执行",playbookRecordFailure:"已记录失败执行",triggerLabel:"触发条件",stepsLabel:"步骤"}},Qp={title:"声誉优化",subtitle:"观察记录 · 衰减模型 · 异常检测 · 贝叶斯参数优化",refresh:"刷新",actions:{anomalies:"异常检测",optimize:"启动优化"},noDb:{message:"该模块需要项目级数据库",description:"`cc reputation ...` 命令仅在 chainlesschain 项目目录下可用。请先运行 `cc init` 初始化项目,或在已初始化的目录启动 `cc serve`。"},stats:{trackedDids:"跟踪 DID",totalObservations:"观察总数",optimizationRuns:"优化运行",active:"进行中",bestEver:"历史最佳"},tabs:{scores:"评分排行",runs:"优化运行",breakdown:"分布统计"},filter:{decayLabel:"衰减模型:",addObservation:"添加观察"},scoreColumns:{rank:"排名",did:"DID",score:"声誉分数",observations:"观察数",weightTotal:"权重和"},runColumns:{runId:"Run ID",objective:"目标",iterations:"迭代",bestScore:"最佳分数",status:"状态",createdAt:"创建时间",action:"操作"},totals:{dids:"共 {count} 个 DID",rows:"共 {count} 条"},empty:{scores:"暂无声誉数据,点添加观察记录第一条",runs:"暂无优化运行,点启动优化开始第一次"},rowActions:{analyze:"分析",apply:"应用"},breakdown:{byStatus:"按状态",byObjective:"按目标"},observe:{title:"添加观察记录",ok:"记录",didLabel:"DID",didPlaceholder:"did:key:...",scoreLabel:"评分",scoreRange:"范围 0.0 ~ 1.0",kindLabel:"种类",weightLabel:"权重"},optimize:{title:"启动优化",ok:"启动",objectiveLabel:"目标",iterationsLabel:"迭代次数",iterationsRange:"范围 1 ~ 1000,默认 50",syncMessage:"同步执行",syncDescription:"优化将运行所有迭代后立即返回最佳参数与建议(CLI lib 内置启发式 Bayesian 模拟)。"},anomaly:{title:"异常评分检测",methodLabel:"检测方法",zScoreLabel:"Z 分数 (3σ)",iqrLabel:"IQR (1.5×)",thresholdLabel:"阈值",thresholdHint:"默认 z_score=2.5 / iqr=1.5",decayLabel:"衰减模型",start:"开始检测",notDetected:"尚未检测",totalSamples:"样本数",threshold:"阈值",anomalies:"异常数",scoreTag:"score: {score}",zNote:"z={value}"},analytics:{title:"运行详情:{runId}",objective:"目标",status:"状态",iterations:"迭代次数",bestScore:"最佳分数",createdAt:"创建时间",completedAt:"完成时间",bestParams:"最佳参数",errorMessage:"错误信息",distributionTitle:"声誉分布",mean:"平均: {value}",stdDev:"标准差: {value}",recommendations:"建议"},decay:{none:"无",exponential:"指数",linear:"线性",step:"步进"},kind:{generic:"通用",task:"任务",review:"评审",vote:"投票"},objective:{accuracy:"准确性",fairness:"公平性",resilience:"抗扰动",convergence_speed:"收敛速度"},objectiveDesc:{accuracy:"最大化对真实声誉的拟合",fairness:"降低衰减强度,平等对待各 DID",resilience:"提高对异常值的容忍度",convergence_speed:"尽量少迭代获得稳定结果"},status:{running:"运行中",complete:"已完成",applied:"已应用",failed:"失败",cancelled:"已取消"},applyConfirm:{title:"应用本次优化结果?",content:"Run {runId} 的最佳参数将被标记为已应用。",ok:"应用",cancel:"取消"},messages:{loadFailed:"加载声誉数据失败: {err}",loadScoresFailed:"加载评分失败: {err}",didRequired:"请填写 DID",scoreRange:"评分必须在 0 ~ 1 之间",needInit:"需要先 cc init 初始化项目",observeFailed:"记录失败: {err}",observeOk:"观察已记录",optimizeFailed:"优化失败: {err}",optimizeOk:"优化完成,最佳分数 {score}",applyFailed:"应用失败: {err}",applyOk:"已应用",detectFailed:"检测失败: {err}"}},Zp={title:"联邦强化",subtitle:"熔断器 FSM · 健康检查 · 连接池模拟",refresh:"刷新",newDropdown:"新建 ▼",newMenu:{register:"注册节点",check:"记录健康检查",pool:"新建连接池"},stats:{breakers:"熔断器节点",checks:"健康检查",pools:"连接池",degraded:"降级节点",availability:"可用率",breakerSub:"{closed} 闭合 · {open} 开",checkSub:"{healthy} 健康 · {unhealthy} 不可用",poolSub:"{active} 活跃 · {idle} 空闲",degradedSub:"{halfOpen} 半开"},tabs:{breakers:"熔断器",checks:"健康检查",pools:"连接池",nodeHealth:"节点健康聚合"},filter:{allStates:"全部状态",allMetrics:"全部指标"},totals:{rows:"共 {count} 条"},breakerColumns:{node:"节点",state:"状态",failure:"失败计数",success:"成功计数",openTimeout:"超时 (ms)",updatedAt:"更新时间",action:"操作"},checkColumns:{id:"ID",node:"节点",metric:"指标",status:"状态",metrics:"指标值",checkedAt:"采集时间"},poolColumns:{node:"节点",active:"活跃",idle:"空闲",max:"上限",utilization:"使用率",waiting:"排队中",totalCreated:"已创建",createdAt:"创建时间",action:"操作"},latestColumns:{metric:"指标",status:"状态",checkedAt:"采集时间"},breakerActions:{failure:"失败",success:"成功",halfOpen:"半开",reset:"重置",remove:"移除",removeConfirm:"移除该节点?所有相关熔断器与健康检查会被删除"},poolActions:{acquire:"取连接",release:"还连接",destroy:"销毁",destroyConfirm:"销毁该连接池?"},empty:{breakers:"暂无熔断器",checks:"暂无健康检查记录",pools:"暂无连接池",noLatest:"无最近检查"},nodeHealth:{inputPlaceholder:"节点 ID",query:"查询",node:"节点",status:"聚合状态",checkCount:"检查总数",latestTitle:"最近各指标状态"},register:{title:"注册联邦节点",nodeIdLabel:"节点 ID",nodeIdPlaceholder:"如 node-shanghai-01",failureThresholdLabel:"失败阈值(默认 5)",successThresholdLabel:"成功阈值(默认 2)",openTimeoutLabel:"开路超时 (ms)(默认 60000)"},check:{title:"记录健康检查",nodeIdLabel:"节点 ID",nodeIdPlaceholder:"必须先注册节点",metricLabel:"指标类型",statusLabel:"健康状态",metricsLabel:"指标 JSON(可选,例如 latencyMs:42)",metricsPlaceholder:"metrics 字符串:例如 latencyMs=42, cpu=0.4"},pool:{title:"新建连接池",nodeIdLabel:"节点 ID",nodeIdPlaceholder:"如 node-shanghai-01",minLabel:"最小连接数(默认 5)",maxLabel:"最大连接数(默认 50)",idleTimeoutLabel:"空闲超时 (ms)(默认 300000)"},state:{closed:"闭合",open:"开路",half_open:"半开"},metric:{heartbeat:"心跳",latency:"延迟",success_rate:"成功率",cpu_usage:"CPU",memory_usage:"内存"},health:{healthy:"健康",degraded:"降级",unhealthy:"不可用",unknown:"未知"},messages:{loadFailed:"加载数据失败: {err}",nodeIdRequired:"请填写节点 ID",registerFailed:"注册失败: {err}",registerOk:"节点已注册:{id}",checkFailed:"记录失败: {err}",checkOk:"检查已记录:{id}",poolFailed:"创建失败: {err}",poolOk:"连接池已创建:{id}",removeFailed:"移除失败: {err}",removeOk:"节点已移除",operationFailed:"操作失败: {err}",operationNoEffect:"操作未生效",operationCooldown:"操作未生效(还需 {ms}ms)",transitionMsg:"{from} → {to}",resetMsg:"熔断器已重置",recordedMsg:"已记录",destroyMsg:"连接池已销毁",acquireMsg:"已获取(活跃 {active} · 空闲 {idle})",releaseMsg:"已释放(活跃 {active} · 空闲 {idle})",queryFailed:"查询失败: {err}"}},ef={title:"智能推荐",subtitle:"兴趣画像 · 主题衰减 · 内容评分 · 反馈学习",refresh:"刷新",createProfile:"创建画像",userBar:{currentUser:"当前用户:",selectPlaceholder:"选择用户档案",applyDecay:"应用衰减",suggest:"建议调整",topicSuffix:"{count} topics"},stats:{profiles:"用户档案",totalRecs:"推荐总数",pending:"待查看",feedbackRate:"反馈率",avgScore:"平均分"},typeCatalogue:"内容类型",tabs:{recs:"推荐流",profiles:"用户档案",interests:"兴趣画像"},filter:{allStatuses:"全部状态",allTypes:"全部类型"},totals:{rows:"共 {count} 条",profiles:"共 {count} 个档案"},recColumns:{title:"标题",contentType:"类型",score:"评分",reason:"理由",status:"状态",feedback:"反馈",action:"操作"},profileColumns:{userId:"用户 ID",topicCount:"主题数",decayFactor:"衰减因子",updateCount:"更新次数",lastUpdated:"最后更新",action:"操作"},noTitle:"(无标题)",feedbackDropdown:"反馈 ▼",feedbackMenu:{like:"赞",dislike:"踩",later:"稍后"},rowActions:{view:"查看",dismiss:"忽略",dismissConfirmTitle:"忽略该推荐?",dismissOk:"忽略",details:"详情",switch:"切换",delete:"删除",deleteConfirmTitle:"删除该档案?",deleteOk:"删除"},empty:{selectUser:"请先选择用户档案",filtered:"没有符合条件的推荐",noRecsHint:"该用户暂无推荐 — 用 cc recommend generate 从内容池生成",noProfiles:"暂无用户档案",noInterests:"该用户暂无兴趣权重",noSuggestions:"暂无建议 — 需要更多反馈",noTopics:"无主题权重"},interest:{topicWeights:"主题权重",feedbackSuggest:"反馈建议",boost:"提升",lower:"降低"},topicTagSuffix:"{count} 主题",create:{title:"创建用户档案",ok:"创建",userIdLabel:"用户 ID",userIdPlaceholder:"例如 alice",topicsLabel:"主题权重",topicsPlaceholder:"可选 JSON:例如 ai=0.8, vue=0.5",weightsLabel:"交互权重",weightsPlaceholder:"可选 JSON:例如 like=1.0, view=0.3"},details:{title:"档案详情:{userId}",id:"ID",topicCount:"主题数",decayFactor:"衰减因子",updateCount:"更新次数",lastUpdated:"最后更新",topicWeights:"主题权重",interactionWeights:"交互权重"},type:{note:"笔记",post:"帖子",article:"文章",document:"文档"},status:{pending:"待查看",viewed:"已查看",dismissed:"已忽略"},feedbackLabel:{like:"赞",dislike:"踩",later:"稍后"},messages:{loadProfilesFailed:"加载档案失败: {err}",loadUserFailed:"加载用户数据失败: {err}",userIdRequired:"请填写用户 ID",topicsJsonInvalid:"主题权重 JSON 格式错误",weightsJsonInvalid:"交互权重 JSON 格式错误",createFailed:"创建失败: {err}",createOk:"档案已创建:{id}",decayFailed:"衰减失败: {err}",decayOkTopics:"衰减已应用,剩余 {count} 个主题",decayOk:"衰减已应用",suggestNone:"暂无建议 — 需要更多反馈",suggestFound:"找到 {count} 条建议",loadSuggestFailed:"加载建议失败: {err}",deleteFailed:"删除失败: {err}",deleteOk:"档案已删除",viewFailed:"标记失败: {err}",viewOk:"已标记为已查看",feedbackFailed:"反馈失败: {err}",feedbackOk:"反馈已记录",dismissFailed:"忽略失败: {err}",dismissOk:"已忽略"}},tf={title:"组织管理",subtitle:"组织 / 成员 / 审批",refresh:"刷新",tabs:{orgs:"组织列表",members:"成员管理",approvals:"审批管理"},totals:{rows:"共 {count} 条"},orgs:{createButton:"创建组织",createTitle:"创建组织",createOk:"创建",nameLabel:"名称",namePlaceholder:"请输入组织名称",descriptionLabel:"描述",descriptionPlaceholder:"请输入组织描述(可选)",emptyText:"暂无组织,点击创建组织添加",detailTitle:"组织详情: {name}",detailLabels:{id:"ID",name:"名称",owner:"所有者",description:"描述",memberCount:"成员数",createdAt:"创建时间"}},orgColumns:{id:"ID",name:"名称",owner:"所有者",description:"描述",memberCount:"成员数"},members:{selectPlaceholder:"选择组织",inviteButton:"邀请成员",emptyMembers:"暂无成员",selectFirst:"请先选择一个组织",teamsTitle:"团队",createTeamButton:"创建团队",emptyTeams:"暂无团队",inviteTitle:"邀请成员",inviteOk:"邀请",userIdLabel:"用户 ID",userIdPlaceholder:"请输入用户 ID",nameLabel:"名称",namePlaceholder:"请输入用户名称",roleLabel:"角色",roleAdmin:"管理员 (admin)",roleMember:"成员 (member)",roleViewer:"查看者 (viewer)",createTeamTitle:"创建团队",createTeamOk:"创建",teamNameLabel:"团队名称",teamNamePlaceholder:"请输入团队名称",teamDescLabel:"描述",teamDescPlaceholder:"请输入团队描述(可选)",teamLeadLabel:"负责人",teamLeadPlaceholder:"请输入负责人 ID(可选)"},memberColumns:{userId:"用户 ID",name:"名称",role:"角色",joinedAt:"加入时间"},teamColumns:{name:"团队名称",description:"描述",lead:"负责人"},approvals:{submitButton:"提交审批",submitTitle:"提交审批",submitOk:"提交",orgLabel:"组织",orgPlaceholder:"选择组织",titleLabel:"标题",titlePlaceholder:"请输入审批标题",typeLabel:"类型",typePlaceholder:"请输入审批类型",descLabel:"描述",descPlaceholder:"请输入审批描述(可选)",approve:"通过",reject:"拒绝",emptyText:"暂无审批记录"},approvalColumns:{id:"ID",title:"标题",type:"类型",requester:"申请人",status:"状态",actions:"操作"},messages:{loadOrgsFailed:"加载组织列表失败: {err}",orgNameRequired:"请输入组织名称",orgCreateFailed:"创建失败: {err}",orgCreateOk:"组织已创建",loadDetailFailed:"加载详情失败: {err}",loadMembersFailed:"加载成员失败: {err}",loadTeamsFailed:"加载团队失败: {err}",userIdRequired:"请输入用户 ID",inviteFailed:"邀请失败: {err}",inviteOk:"邀请已发送",teamNameRequired:"请输入团队名称",teamCreateFailed:"创建失败: {err}",teamCreateOk:"团队已创建",loadApprovalsFailed:"加载审批列表失败: {err}",approveFailed:"审批失败: {err}",approveOk:"已通过",rejectFailed:"拒绝失败: {err}",rejectOk:"已拒绝",orgRequired:"请选择组织",approvalTitleRequired:"请输入审批标题",submitFailed:"提交失败: {err}",submitOk:"审批已提交"}},af={title:"推理网络",subtitle:"去中心化推理节点 · 任务调度 · 隐私模式",refresh:"刷新",actionDropdown:"操作 ▼",actions:{register:"注册节点",submit:"提交推理任务"},stats:{totalNodes:"节点总数",onlineNodes:"在线节点",totalTasks:"任务总数",queued:"排队中",avgDuration:"平均耗时"},breakdown:{title:"节点状态分布",online:"在线 {count}",busy:"忙碌 {count}",offline:"离线 {count}",extra:"完成: {complete} · 失败: {failed}"},tabs:{nodes:"节点",tasks:"任务"},filter:{all:"全部",allStatuses:"全部状态",allModes:"全部模式"},totals:{rows:"共 {count} 条"},nodeColumns:{nodeId:"节点 ID",capabilities:"能力",gpu:"GPU",status:"状态",taskCount:"任务数",lastHeartbeat:"最近心跳",action:"操作"},taskColumns:{model:"模型",privacyMode:"隐私",priority:"优先级",assignedNode:"执行节点",status:"状态",duration:"耗时",createdAt:"提交时间",action:"操作"},rowActions:{heartbeat:"心跳",statusDropdown:"状态 ▼",unregister:"注销",unregisterConfirm:"注销该节点?",unregisterOk:"注销",complete:"完成",fail:"失败",failConfirm:"标记任务失败?",failOk:"确认"},empty:{filteredNodes:"没有符合条件的节点",noNodes:"暂无节点,点操作 → 注册节点添加第一个",filteredTasks:"没有符合条件的任务",noTasks:"暂无任务,点操作 → 提交推理任务创建第一个"},register:{title:"注册推理节点",ok:"注册",nodeIdLabel:"节点 ID",nodeIdPlaceholder:"例如: gpu-host-1",endpointLabel:"端点 URL",endpointPlaceholder:"https://node.example.com(可选)",capabilitiesLabel:"能力列表",capabilitiesPlaceholder:"逗号分隔,例如: llama2,mistral,gpt-4",gpuLabel:"GPU 内存 (MB)"},submit:{title:"提交推理任务",ok:"提交",modelLabel:"模型",modelPlaceholder:"例如: llama2-7b",inputLabel:"输入",priorityLabel:"优先级",modeLabel:"隐私模式"},nodeStatus:{online:"在线",offline:"离线",busy:"忙碌",degraded:"降级"},taskStatus:{queued:"排队中",dispatched:"已派发",running:"运行中",complete:"已完成",failed:"失败"},privacy:{standard:"标准",encrypted:"加密",federated:"联邦"},messages:{loadFailed:"加载推理网络数据失败: {err}",nodeIdRequired:"请填写节点 ID",registerFailed:"注册失败: {err}",registerOk:"节点已注册",modelRequired:"请填写模型名",submitFailed:"提交失败: {err}",submitOk:"任务已提交",heartbeatFailed:"心跳失败: {err}",heartbeatOk:"心跳已更新",statusFailed:"状态转换失败: {err}",statusOk:"节点状态已更新为 {status}",unregisterFailed:"注销失败: {err}",unregisterOk:"节点已注销",completeFailed:"完成失败: {err}",completeOk:"任务已完成",failFailed:"标记失败: {err}",failOk:"已标记为失败"}},nf={title:"钱包管理",subtitle:"资产 / 转账 / 历史",refresh:"刷新",stats:{walletCount:"钱包数量",assetCount:"总资产数",defaultWallet:"默认钱包",defaultUnset:"未设置",totalTx:"总交易数"},tabs:{wallets:"钱包列表",assets:"资产管理",transfer:"转账"},totals:{rows:"共 {count} 条"},wallets:{refreshList:"刷新列表",createButton:"创建钱包",createTitle:"创建钱包",createOk:"创建",nameLabel:"钱包名称",namePlaceholder:"请输入钱包名称",emptyText:"暂无钱包,点击创建钱包添加",default:"默认",currentDefault:"当前默认",setDefault:"设为默认"},walletColumns:{address:"地址",name:"名称",isDefault:"默认",balance:"余额",action:"操作"},assets:{refreshAssets:"刷新资产",registerButton:"注册资产",registerTitle:"注册资产",registerOk:"注册",nameLabel:"资产名称",namePlaceholder:"请输入资产名称",typeLabel:"资产类型",typePlaceholder:"请选择类型",descLabel:"描述",descPlaceholder:"资产描述(可选)",emptyText:"暂无资产,点击注册资产添加"},assetColumns:{name:"名称",type:"类型",description:"描述",address:"地址"},transfer:{formCardTitle:"发起转账",assetIdLabel:"资产 ID",assetIdPlaceholder:"请输入资产 ID",toAddressLabel:"目标地址",toAddressPlaceholder:"请输入接收方地址",amountLabel:"数量",amountPlaceholder:"转账数量",submitButton:"确认转账",successTag:"成功",failureTag:"失败",historyCardTitle:"交易历史",historyEmpty:"暂无交易记录",confirmTitle:"确认转账",confirmIntro:"请确认以下转账信息:",confirmOk:"确认"},historyColumns:{time:"时间",type:"类型",amount:"数量",to:"目标"},messages:{loadWalletsFailed:"加载钱包列表失败: {err}",walletNameRequired:"请输入钱包名称",walletCreateFailed:"创建失败: {err}",walletCreateOk:"钱包已创建",setDefaultFailed:"设置失败: {err}",setDefaultOk:"已设为默认钱包",loadAssetsFailed:"加载资产列表失败: {err}",assetNameRequired:"请输入资产名称",assetRegisterFailed:"注册失败: {err}",assetRegisterOk:"资产已注册",transferIncomplete:"请填写完整的转账信息",transferOk:"转账成功",transferDefault:"转账已提交",transferFailed:"转账失败: {err}",loadHistoryFailed:"加载交易历史失败: {err}"}},rf={title:"社区",subtitle:"联系人 · 好友 · 帖子(去中心化社交平台)",refresh:"刷新",publishButton:"发布帖子",addContactButton:"添加联系人",stats:{contacts:"联系人",friends:"好友",posts:"帖子",messages:"消息",pendingRequests:"待处理请求"},tabs:{posts:"帖子",friends:"好友",contacts:"联系人"},totals:{rows:"共 {count} 条"},posts:{emptyText:"暂无帖子,点击发布帖子创建第一条",publishTitle:"发布帖子",publishOk:"发布",authorLabel:"作者",authorPlaceholder:"可选,留空则使用 cli-user",contentLabel:"内容",contentPlaceholder:"说点什么..."},friends:{removeConfirm:"移除该好友?",removeOk:"移除",remove:"移除",emptyText:"暂无好友。在联系人标签页给联系人发送好友请求。"},friendColumns:{contact:"联系人",status:"状态",createdAt:"建立时间",action:"操作"},contacts:{addFriend:"添加好友",alreadyFriend:"已是好友",deleteConfirm:"删除该联系人?",deleteOk:"删除",delete:"删除",emptyText:"暂无联系人,点击添加联系人创建",addTitle:"添加联系人",addOk:"添加",nameLabel:"姓名",namePlaceholder:"联系人显示名称",didLabel:"DID",didPlaceholder:"did:key:... (可选)",emailLabel:"邮箱",emailPlaceholder:"可选",notesLabel:"备注"},contactColumns:{name:"姓名",did:"DID",email:"邮箱",createdAt:"创建时间",action:"操作"},status:{accepted:"已接受",pending:"待处理",blocked:"已屏蔽"},messages:{loadFailed:"加载社区数据失败: {err}",contentRequired:"请输入帖子内容",publishFailed:"发布失败: {err}",publishOk:"帖子已发布",nameRequired:"请输入联系人姓名",addFailed:"添加失败: {err}",addOk:"联系人已添加",deleteFailed:"删除失败: {err}",deleteOk:"联系人已删除",friendRequestFailed:"好友请求失败: {err}",friendRequestOk:"好友请求已发送",removeFailed:"移除失败: {err}",removeOk:"已移除好友",likeFailed:"点赞失败: {err}"}},of={title:"认证管理",subtitle:"WebAuthn / SSO / 双因素认证",refresh:"刷新",tabs:{webauthn:"WebAuthn",sso:"SSO 配置",tfa:"双因素认证"},totals:{rows:"共 {count} 条"},credentials:{registerButton:"注册新凭证",registerTitle:"注册 WebAuthn 凭证",registerOk:"注册",nameLabel:"凭证名称",namePlaceholder:"例如:YubiKey-5, TouchID",deleteConfirm:"确定要删除此凭证吗?",deleteOk:"确定",delete:"删除",emptyText:"暂无 WebAuthn 凭证,点击注册新凭证添加"},credentialColumns:{id:"ID",name:"名称",type:"类型",createdAt:"创建时间",lastUsed:"最后使用",actions:"操作"},sso:{currentTitle:"当前 SSO 配置",providerLabel:"提供商",clientIdLabel:"Client ID",redirectUrlLabel:"Redirect URL",statusLabel:"状态",configureButton:"配置 SSO",modalTitle:"配置 SSO",modalOk:"保存",providerPlaceholder:"选择 SSO 提供商",clientIdPlaceholder:"输入 Client ID",clientSecretLabel:"Client Secret",clientSecretPlaceholder:"输入 Client Secret",issuerLabel:"Issuer URL",issuerPlaceholder:"https://sso.example.com",notConfigured:"未配置",enabled:"已启用",disabled:"未启用"},tfa:{totpCardTitle:"TOTP 双因素认证",statusPrefix:"状态:",enabled:"已启用",disabled:"未启用",enableButton:"启用 TOTP",disableConfirm:"确定要禁用双因素认证吗?这会降低账户安全性。",disableOk:"确定禁用",disableButton:"禁用",recoveryCardTitle:"恢复码",recoveryHint:"恢复码可在丢失 TOTP 设备时用于登录。请妥善保管。",generateButton:"生成恢复码",saveAlert:"请立即保存这些恢复码,关闭后将无法再次查看。",totpResultPrefix:"TOTP Secret: {secret}",totpResultUrl:"OTP Auth URL: {url}"},messages:{loadFailed:"加载 WebAuthn 凭证失败: {err}",credNameRequired:"请输入凭证名称",registerFailed:"注册失败: {err}",registerOk:"WebAuthn 凭证已注册",deleteFailed:"删除失败: {err}",deleteOk:"凭证已删除",providerRequired:"请选择 SSO 提供商",clientIdRequired:"请输入 Client ID",ssoSaveFailed:"保存失败: {err}",ssoSaveOk:"SSO 配置已保存",totpEnableFailed:"启用失败: {err}",totpEnableOk:"TOTP 已启用",totpDisableFailed:"禁用失败: {err}",totpDisableOk:"双因素认证已禁用",codesFailed:"生成恢复码失败: {err}",codesOk:"恢复码已生成",codesUnable:"无法生成恢复码"}},lf={title:"默克尔树证书 (MTC)",subtitle:"Audit 双轨状态 · Marketplace publisher 历史 · 离线验证工具",refresh:"刷新状态",tabs:{status:"Audit 双轨状态",publisher:"Marketplace publisher",verify:"Envelope 验证工具"},status:{enabledLabel:"启用状态",enabled:"已启用",disabled:"未启用",intervalLabel:"批次间隔",stagingLabel:"待批次关闭",stagingMalformed:"{count} 损坏",totalBatches:"累计批次",configCard:"配置",lastBatchSize:"size={size} · {time}",noBatches:"尚未关批",loadFailMessage:"状态加载失败",loadFailDescription:"`cc audit mtc status --json` 没返回有效输出。请确认 cc serve 在运行,且当前账户能读 audit-mtc 目录。",notEnabledMessage:"audit-mtc 未启用 · 已就绪",notEnabledDescription:"法务出函阻塞已于 2026-05-01 解除。运行 `cc audit mtc enable --interval [60|3600] --namespace [ns] --issuer [issuer]` 即可在本租户启用双轨签名。"},publisher:{stateFileLabel:"状态文件路径",stateFilePlaceholder:"e.g. ~/.chainlesschain/marketplace-state.json",queryButton:"查询",missingMessage:"状态文件不存在",missingDescription:"路径 {path} 还没有任何发布记录。运行一次 cc mtc publish-skills 后此处会出现历史。",lastSeq:"last seq",historyEntries:"历史条目",lastPublished:"last published"},historyColumns:{seq:"Seq",namespace:"Namespace",treeSize:"Tree size",treeHeadId:"Tree head",publishedAt:"Published"},verify:{infoMessage:"只读验证 · 通过本机 cc serve 运行",infoDescription:"此工具调用 `cc mtc verify` 子命令。Envelope + landmark 文件必须已在本机磁盘上 — 浏览器只把路径转给 cc serve,不会上传文件内容。",envelopeLabel:"Envelope 文件路径",envelopePlaceholder:"e.g. ./mtc-out/envelope-000000.json",landmarkLabel:"Landmark 文件路径",landmarkPlaceholder:"e.g. ./mtc-out/landmark.json",runButton:"运行 cc mtc verify",passTitle:"✓ 验证通过",failTitle:"✗ 验证失败",resultLabel:"结果",errorCodeLabel:"错误码",errorCodeNone:"(none)",recoverable:"可恢复",subjectLabel:"Subject",kindLabel:"Kind",treeSizeLabel:"Tree size",issuerLabel:"Issuer",rawHeader:"原始 JSON 输出"},messages:{loadStatusFailed:"状态加载失败: {err}",stateFileRequired:"请输入状态文件路径",loadPublishFailed:"publisher 状态加载失败: {err}",verifyPathsRequired:"请填写 envelope 和 landmark 路径",verifyNoJson:"验证命令未返回 JSON。请检查路径是否正确。",verifyFailed:"验证失败: {err}"}},sf={title:"Token 用量",subtitle:"LLM 调用追踪 · 成本核算 · 响应缓存",refresh:"刷新",noDb:{message:"该模块需要项目级数据库",description:"`cc tokens ...` 命令仅在 chainlesschain 项目目录下可用。请先运行 `cc init` 初始化项目,或在已初始化的目录启动 `cc serve`。"},periodLabel:"时间范围:",period:{today:"今日",week:"近 7 日",month:"近 30 日",all:"全部"},stats:{calls:"调用次数",callsToday:"今日 {count}",totalTokens:"Token 总数",tokensInOut:"{inputs} 入 / {outputs} 出",totalCost:"累计成本",costToday:"今日 {amount}",avgResponse:"平均响应",cacheHits:"缓存命中",cacheTokensSaved:"省 {count} tokens"},tabs:{breakdown:"模型成本",recent:"最近调用",cache:"响应缓存"},totals:{models:"共 {count} 个模型",rows:"共 {count} 条"},breakdownColumns:{provider:"提供商",model:"模型",calls:"调用",totalTokens:"Token",costUsd:"成本",avgCost:"均价/次"},breakdownDetails:{tokensInOut:"{inputs} 入 / {outputs} 出"},recentColumns:{createdAt:"时间",provider:"提供商",model:"模型",tokens:"Tokens",costUsd:"成本",responseTimeMs:"响应",endpoint:"端点"},empty:{breakdown:"暂无用量数据",recent:"暂无调用记录"},cache:{totalEntries:"缓存条目",totalHits:"命中次数",totalTokensSaved:"节省 Tokens",expiredEntries:"过期条目",maintenanceTitle:"缓存维护",cleanupConfirm:"移除所有过期缓存?",cleanupOk:"清理",cleanupButton:"清理过期条目 ({count})",clearConfirm:"清空整个响应缓存?此操作不可撤销。",clearOk:"清空",clearButton:"清空全部缓存"},v2:{cardTitle:"V2 预算治理",budgetsTitle:"预算 (Budgets V2)",recordsTitle:"使用记录 (Records V2)"},budgetStatus:{planning:"筹划",active:"活跃",suspended:"暂停",archived:"已归档"},recordStatus:{pending:"待处理",recorded:"已记录",billed:"已结算",rejected:"已拒绝",refunded:"已退款"},messages:{loadFailed:"加载用量数据失败: {err}",loadShowFailed:"加载用量失败: {err}",needInit:"需要先 cc init 初始化项目",cleanupFailed:"清理失败: {err}",cleanupOk:"过期条目已清理",clearFailed:"清空失败: {err}",clearOk:"缓存已清空"}},cf={title:"备份与同步",subtitle:"备份管理 / 数据同步 / IPFS",refresh:"刷新",tabs:{backup:"备份管理",sync:"数据同步",ipfs:"IPFS 存储"},backup:{cardTitle:"备份操作",exportButton:"导出列表",createButton:"创建备份",emptyText:"暂无备份记录",lastResultLabel:"最近操作结果",createDefaultMessage:"备份已创建",restoreTitle:"确认恢复备份",restoreOk:"确认恢复",restoreIntro:"确定要恢复以下备份吗?此操作将覆盖当前数据。",backupIdPrefix:"备份 ID:",createdAtPrefix:"创建时间:",restoreDefaultMessage:"恢复完成"},backupColumns:{id:"备份 ID",size:"大小",createdAt:"创建时间",action:"操作",restore:"恢复"},sync:{statusLabel:"同步状态",pendingLabel:"待同步变更",lastSyncLabel:"最近同步",noLastSync:"无",synced:"已同步",notSynced:"未同步",unknown:"未知",pushButton:"推送",pullButton:"拉取",outputLabel:"操作结果",conflictsTitle:"冲突列表",conflictDefault:"冲突",pushDefaultMessage:"推送完成",pullDefaultMessage:"拉取完成"},conflictColumns:{path:"文件路径",type:"冲突类型"},ipfs:{statusCardTitle:"IPFS 状态",online:"在线",offline:"离线",nodeStatusLabel:"节点状态",connected:"已连接",disconnected:"未连接",pinnedLabel:"已固定文件",peerIdLabel:"Peer ID",pinListTitle:"固定文件列表",pinFileButton:"固定文件",pinEmptyText:"暂无固定文件",unpinConfirm:"确定取消固定?",unpinOk:"确定",unpinAction:"取消固定",pinModalTitle:"固定文件到 IPFS",pinModalOk:"固定",pinModalIntro:"请输入要固定的文件路径",pinModalPlaceholder:"文件路径,例如: /path/to/file.txt",pinDefaultSuccess:"固定成功"},pinColumns:{cid:"CID",name:"名称",size:"大小",pinnedAt:"固定时间",action:"操作"},messages:{loadBackupsFailed:"加载备份列表失败: {err}",createBackupFailed:"创建备份失败: {err}",restoreFailed:"恢复失败: {err}",loadSyncFailed:"加载同步状态失败: {err}",pushFailed:"推送失败: {err}",pullFailed:"拉取失败: {err}",loadIpfsFailed:"加载 IPFS 状态失败: {err}",loadPinsFailed:"加载固定列表失败: {err}",pinFailed:"固定失败: {err}",unpinFailed:"取消固定失败: {err}",exportOk:"已导出 {count} 条备份信息到 {path}",exportOkDefault:"已导出",exportFailed:"导出失败: {err}"}},df={title:"MCP 工具",subtitle:"Model Context Protocol — 已挂载工具与服务器",refresh:"刷新",stats:{servers:"服务器数量",tools:"工具数量",running:"运行状态",ready:"就绪"},servers:{title:"已配置服务器",emptyHintPrefix:"暂无 MCP 服务器,运行",emptyHintCommand:"chainlesschain mcp add",emptyHintSuffix:"添加"},tools:{title:"可用工具",searchPlaceholder:"搜索工具...",runAction:"运行",desktopOnly:"仅桌面模式",emptyText:"暂无可用工具"},toolColumns:{name:"工具名称",server:"服务器",description:"描述",action:"操作"},resources:{title:"可用资源",searchPlaceholder:"搜索资源...",emptyHint:"当前无 MCP 资源(部分服务器不暴露 resources,是正常的)",emptyTable:"无匹配资源",readAction:"读取"},resourceColumns:{uri:"URI",server:"服务器",mime:"MIME",action:"操作"},run:{okIdle:"运行",okRunning:"运行中...",cancel:"关闭",fallbackTitle:"运行 MCP 工具",modalTitle:"运行 {server}.{tool}",serverLabel:"服务器 / 工具",descriptionLabel:"描述",schemaLabel:"参数 schema",paramsLabel:"参数",modeForm:"表单",modeJson:"JSON",jsonParseFailed:"JSON 解析失败:{err}",paramsMustBeObject:"参数必须是 JSON 对象",errorTitle:"运行失败",resultLabel:"结果"},read:{fallbackTitle:"读取 MCP 资源",modalTitle:"读取 {server}",serverLabel:"服务器 / URI",descriptionLabel:"描述",spinnerTip:"读取中...",errorTitle:"读取失败",contentsLabel:"内容({count} 段)",binaryNote:"[二进制 blob,{count} 字符 base64 — 此 demo 不渲染]",emptyContent:"[空内容]"}},uf={title:"审计日志",subtitle:"安全事件追踪 · 风险评估 · 合规导出",refresh:"刷新",exportJson:"导出 JSON",noDb:{message:"该模块需要项目级数据库",description:"`cc audit ...` 命令仅在 chainlesschain 项目目录下可用。请先运行 `cc init` 初始化项目,或在已初始化的目录启动 `cc serve`。"},stats:{total:"事件总数",failures:"失败次数",highRisk:"高风险",critical:"关键事件",successRate:"成功率"},typeCatalogueTitle:"事件类型",tabs:{events:"事件流",breakdown:"分布统计"},filter:{searchPlaceholder:"搜索操作 / 角色 / 目标...",allTypes:"全部类型",allRisks:"全部风险",failuresOnly:"仅失败"},totals:{rows:"共 {count} 条"},logColumns:{createdAt:"时间",eventType:"类型",operation:"操作",actor:"角色",target:"目标",riskLevel:"风险",success:"状态",mtc:"MTC",action:"操作"},rowAction:{details:"详情"},empty:{filtered:"没有符合条件的事件",noEvents:"暂无审计事件"},breakdown:{byType:"按事件类型",byRisk:"按风险等级"},details:{title:"事件详情:{id}",id:"ID",eventType:"事件类型",riskLevel:"风险等级",operation:"操作",status:"状态",success:"成功",failure:"失败",time:"时间",actor:"角色",target:"目标",ip:"IP",userAgent:"User-Agent",errorMessage:"错误信息",details:"详细信息"},type:{auth:"认证",permission:"权限",data:"数据",system:"系统",file:"文件",did:"DID",crypto:"加密",api:"API"},risk:{low:"低",medium:"中",high:"高",critical:"关键"},mtc:{noneTooltip:"此事件未走 MTC 双轨(audit-mtc 未对该租户启用)",signedNotChecked:"已签 · 未查",stagingLabel:"待关批",batchedLabel:"已关批 #{batchId}",unknownLabel:"未知",tooltipBase:"event_id: {id}",tooltipNotChecked:"{base} — 点击查询 reconcile 状态",tooltipStaging:`{base}
60
+ 仍在 staging,等待下次 reconcile`,tooltipBatched:`{base}
61
+ 已落入 batch #{batchId}
62
+ tree_head_id: {treeHead}`,noJson:"reconcile-check 没返回 JSON",checkFailed:"reconcile-check 失败: {err}"},messages:{loadFailed:"加载审计日志失败: {err}",needInit:"需要先 cc init 初始化项目",exportFailed:"导出失败: {err}",exportOk:"已导出到 {path}",exportOkDefault:"已导出"}},mf={title:"RAG 搜索",subtitle:"BM25 · 向量检索 · 混合 RRF 融合",refreshIndex:"刷新索引",noDb:{message:"该模块需要项目级数据库",description:"`cc search` 命令仅在 chainlesschain 项目目录下可用。请先运行 `cc init` 初始化项目,或在已初始化的目录启动 `cc serve`。"},form:{queryPlaceholder:"输入查询,例如:vue 防抖组件、AES 加密原理...",topKPlaceholder:"topK",submit:"搜索"},recent:{label:"最近:",clear:"清空"},stats:{indexedNotes:"索引笔记",categories:"分类数",tags:"标签数",results:"结果数",topScore:"最高分"},tabs:{results:"搜索结果",index:"索引浏览"},results:{promptEmpty:"输入查询后开始搜索",noMatch:'没有找到与 "{query}" 匹配的笔记',viewFull:"查看完整",noTitle:"(无标题)"},index:{allCategories:"全部分类",tagFilterPlaceholder:"按标签筛选...",topTagsLabel:"高频标签:",rowAction:{view:"查看",similar:"相似搜索"}},totals:{rows:"共 {count} 条"},noteColumns:{title:"标题",category:"分类",tags:"标签",createdAt:"创建时间",action:"操作"},empty:{filtered:"没有符合条件的笔记",noNotes:"暂无笔记"},mode:{bm25:"BM25",vector:"向量",hybrid:"混合"},note:{title:"笔记详情:{title}",id:"ID",category:"分类",tags:"标签",createdAt:"创建时间",updatedAt:"更新时间",content:"正文",emptyContent:"笔记内容为空"},messages:{loadIndexFailed:"加载索引失败: {err}",queryRequired:"请输入查询",searchFailed:"搜索失败: {err}",needInit:"需要先 cc init 初始化项目",noteLoadFailed:"笔记加载失败",loadFailed:"加载失败: {err}"}},pf={title:"模板中心",subtitle:"项目模板 / BI 模板 / Prompt 模板",tabs:{project:"项目模板",bi:"BI 模板",prompts:"Prompt 模板"},project:{initButton:"初始化",initSuccessAlert:"初始化成功",initFailureAlert:"初始化失败",confirmTitle:"确认初始化",confirmOk:"确认",confirmIntro:"确定要使用模板",confirmIntroSuffix:"初始化项目吗?",confirmHint:"这将在当前工作目录创建项目结构。",items:{"code-project":"代码项目 — 代码审查、重构、单元测试","data-science":"数据科学 — ML/数据分析、可视化",devops:"DevOps — 基础设施、部署、监控","medical-triage":"医疗分诊 — 症状分析、分诊建议","agriculture-expert":"农业专家 — 作物管理、病虫害","general-assistant":"通用助手 — 日常问答、任务管理","ai-media-creator":"AI 媒体创作 — 图文生成、视频脚本","ai-doc-creator":"AI 文档创作 — 文档生成、格式转换",empty:"空白模板 — 最小项目结构"}},bi:{loadingHint:"加载 BI 模板...",emptyText:"暂无 BI 模板",noDescription:"暂无描述",createButton:"创建仪表板",createSuccessAlert:"仪表板创建成功",createFailureAlert:"创建失败"},prompts:{newButton:"新建模板",exportAll:"导出全部",import:"导入",emptyText:"暂无 Prompt 模板,点击上方按钮创建",useButton:"使用",copyButton:"复制",deleteButton:"删除",modalTitle:"新建 Prompt 模板",modalOk:"保存",nameLabel:"模板名称",namePlaceholder:"输入模板名称",categoryLabel:"分类",contentLabel:"模板内容",contentPlaceholder:"输入 Prompt 模板内容",filePickerTitle:"选择 prompt-templates JSON"},messages:{initFailed:"初始化失败: {err}",createFailed:"创建失败: {err}",promptSaved:"模板已保存",promptDeleted:"模板已删除",exportOk:"已导出 {count} 条到 {path}",exportOkDefault:"已导出",exportFailed:"导出失败: {err}",fileTooLarge:"文件过大",jsonParseFailed:"JSON 解析失败: {err}",fileShapeUnknown:"文件格式不识别(期待 {expected} 或数组)",importedCount:"已导入 {count} 条",importEmpty:"文件中没有有效的 prompt 条目",importFailed:"导入失败: {err}",copiedClipboard:"已复制到剪贴板",copyFailed:"复制失败"}},ff={title:"安全中心",subtitle:"DID 身份 / 加密 / 审计",refresh:"刷新",tabs:{did:"DID 身份",encrypt:"文件加密",audit:"审计日志"},totals:{rows:"共 {count} 条"},did:{createButton:"创建身份",signButton:"签名消息",default:"默认",available:"可用",emptyText:"暂无 DID 身份,点击创建身份添加",signTitle:"DID 签名",signOk:"签名",messageLabel:"消息",messagePlaceholder:"请输入要签名的消息",signResultLabel:"签名结果:"},didColumns:{did:"DID",method:"方法",created:"创建时间",status:"状态"},encrypt:{encryptCardTitle:"加密文件",decryptCardTitle:"解密文件",pathLabel:"文件路径",encryptPlaceholder:"输入文件路径,如 /path/to/file.txt",decryptPlaceholder:"输入加密文件路径,如 /path/to/file.txt.enc",encryptButton:"加密",decryptButton:"解密",successTag:"成功",failureTag:"失败",encryptDefault:"加密完成",decryptDefault:"解密完成"},audit:{emptyText:"暂无审计日志",totalEvents:"总事件数",statusLabel:"状态",ready:"就绪"},auditColumns:{time:"时间",event:"事件",user:"用户",level:"级别",detail:"详情"},messages:{loadDidsFailed:"加载 DID 列表失败: {err}",didCreateFailed:"创建失败: {err}",didCreateOk:"DID 身份已创建",messageRequired:"请输入消息",signFailed:"签名失败: {err}",signOk:"签名成功",encryptFailed:"加密失败: {err}",encryptOk:"文件加密成功",decryptFailed:"解密失败: {err}",decryptOk:"文件解密成功",loadAuditFailed:"加载审计日志失败: {err}"}},gf={title:"定时任务",subtitle:"定时任务调度管理",newTask:"新建任务",refresh:"刷新",stats:{all:"全部任务",active:"启用中",paused:"已暂停",presets:"预设方案"},presetsCardTitle:"快速添加预设",presets:{every5m:"每5分钟",every15m:"每15分钟",everyHour:"每小时",every9am:"每天9点",every6pm:"每天18点",weeklyMon9:"每周一9点",monthly1:"每月1号"},running:"运行中",paused:"已暂停",actions:{run:"运行",pause:"暂停",enable:"启用",delete:"删除",deleteConfirm:"确认删除此任务?"},emptyText:"暂无定时任务",modal:{title:"新建定时任务",nameLabel:"任务名称",namePlaceholder:"任务名称",cronLabel:"Cron 表达式",cronPlaceholder:"如: 0 9 * * * (每天9点)",cronHint:"格式: 分 时 日 月 周",payloadLabel:"任务内容",payloadPlaceholder:"要执行的 AI 任务描述...",descriptionLabel:"描述",descriptionPlaceholder:"可选描述",enabledLabel:"立即启用"},columns:{name:"任务名称",cron:"Cron",status:"状态",actions:"操作"},messages:{nameAndCronRequired:"请填写任务名称和 Cron 表达式",createOk:"任务已创建",createFailed:"创建失败: {err}",runOk:"任务 {name} 已触发",runFailed:"触发失败: {err}",toggleEnabled:"任务已启用",togglePaused:"任务已暂停",toggleFailed:"操作失败",deleteOk:"任务已删除",deleteFailed:"删除失败"}},hf={title:"使用分析",subtitle:"Token 用量 / 成本 / 缓存",refresh:"刷新",period:{today:"今天",week:"本周",month:"本月",all:"全部"},summary:{totalCalls:"总调用次数",callsSuffix:"次",totalTokens:"总 Token 数",totalCost:"总费用",avgResponseTime:"平均响应时间"},totals:{rows:"共 {count} 条"},providerCardTitle:"Provider 分布",providerEmpty:"暂无调用记录",recentCardTitle:"最近调用记录",recentEmpty:"暂无调用记录",sessionCardTitle:"Session Token Usage",sessionStats:{totalCalls:"Session 调用总次数",inputTokens:"Input Tokens",outputTokens:"Output Tokens",totalTokens:"Total Tokens"},sessionEmpty:"暂无 Session 用量数据 — 使用 cc chat 后刷新",cacheCardTitle:"缓存状态",cacheActions:{cleanup:"清理过期",clear:"清理缓存"},cacheStats:{entries:"缓存条目",hits:"命中次数",tokensSaved:"节省 Token",expired:"已过期"},breakdownColumns:{calls:"调用次数",inputTokens:"Input Tokens",outputTokens:"Output Tokens",totalTokens:"Total Tokens",cost:"费用 (USD)",avgResponseTime:"平均响应"},recentColumns:{timestamp:"时间",input:"Input",output:"Output",cost:"费用",responseTime:"响应时间"},sessionUsageColumns:{calls:"调用次数"},messages:{cacheClearOk:"缓存已清理",cacheClearFailed:"清理缓存失败: {err}",cacheCleanupOk:"过期缓存已清理",cacheCleanupFailed:"清理过期失败: {err}"}},bf={title:"语音识别配置",subtitle:"引擎选择 / Web Speech / Whisper API / Whisper Local",refresh:"刷新",alert:{message:"部分配置仍在桌面端",description:"高级 storage / audio / 知识库集成 / 性能选项仍在桌面端 SystemSettings 编辑(低频使用,未迁移)。本页覆盖引擎选择 + 三种引擎各自的核心配置。"},engineCardTitle:"识别引擎",engineLabel:"默认引擎",engineOptions:{webspeech:"Web Speech API(浏览器内置)","whisper-api":"Whisper API(OpenAI 云端)","whisper-local":"Whisper Local(本地服务)"},engineHint:{webspeech:"✓ 免费,无需配置;准确度较低","whisper-api":"⚠ 需要 OpenAI API 密钥,按使用量计费;准确度高","whisper-local":"✓ 免费,需要本地部署 Whisper 服务;准确度高"},webSpeech:{cardTitle:"Web Speech API 配置",langLabel:"语言",langOptions:{"zh-CN":"中文(简体)","zh-TW":"中文(繁体)","en-US":"English (US)","en-GB":"English (UK)","ja-JP":"日本語","ko-KR":"한국어"}},whisperAPI:{cardTitle:"Whisper API 配置",apiKeyLabel:"API Key",baseUrlLabel:"Base URL",modelLabel:"模型",languageLabel:"语言代码",timeoutLabel:"超时(毫秒)"},whisperLocal:{cardTitle:"Whisper Local 配置",serverUrlLabel:"服务地址",modelSizeLabel:"模型规模",deviceLabel:"设备",timeoutLabel:"超时(毫秒)"},buttons:{reset:"重置",save:"保存配置"},dirtyHint:"有未保存的修改",messages:{loadFailed:"加载配置失败: {err}",noChanges:"没有需要保存的修改",saveItemFailed:"保存 speech.{key} 失败: {err}",saveOk:"保存成功({count} 项)",savePartial:"部分保存成功:{ok} 成功 / {fail} 失败"}},yf={title:"项目管理",subtitle:"初始化 / 状态 / 诊断",refresh:"刷新",stats:{system:"系统状态",running:"运行中",notRunning:"未运行",editionPrefix:"版本: {edition}",llmProvider:"LLM 提供商",notConfigured:"未配置",init:"初始化",done:"已完成",notDone:"未完成",config:"项目配置",loaded:"已加载",notLoaded:"未加载"},configCardTitle:"项目配置",initCardTitle:"项目初始化",templateCount:"{count} 个模板",selected:"已选择",templates:{"code-project":"代码项目模板 — 代码审查、重构、单元测试生成","medical-triage":"医疗分诊模板 — 症状分析、分诊建议、病历管理","agriculture-expert":"农业专家模板 — 作物管理、病虫害识别、农事建议","general-assistant":"通用助手模板 — 日常问答、文档处理、任务管理","ai-media-creator":"AI 媒体创作模板 — 图文生成、视频脚本、内容编辑","ai-doc-creator":"AI 文档创作模板 — 文档生成、格式转换、文档编辑"},actions:{initInFolder:"在所选文件夹初始化",initCwd:"初始化(当前目录)",pickFolder:"选择文件夹...",clear:"清除",templatePrefix:"模板: {name}"},folder:{alreadyProject:"已是项目",pendingInit:"待初始化",alreadyMessage:"该文件夹已是 ChainlessChain 项目",alreadyDescription:"检测到 .chainlesschain/config.json。无需重新初始化 — 重新启动 cc ui 时把工作目录指向这里即可使用现有配置。",pickerTitle:"选择项目文件夹"},initResult:{success:"初始化成功",failure:"初始化失败"},doctor:{cardTitle:"环境诊断",runButton:"运行诊断",runningHint:"正在诊断环境...",emptyHint:"点击运行诊断检查环境状态"},messages:{initFailed:"初始化失败: {err}",alreadyProjectInfo:"该文件夹已是项目,无需重新初始化",browserUnsupported:"浏览器模式不支持选择文件夹 — 请在桌面壳里使用此功能",pickFolderFailed:"选择文件夹失败: {err}",doctorFailed:"诊断失败: {err}"}},vf={title:"视频剪辑",subtitle:"长视频素材 + 音乐 → 节奏化蒙太奇(CutClaw 风格)",refreshAssets:"刷新资产",library:{title:"素材库",empty:"暂无已解构素材",emptyHint:"请先执行解构"},workspace:{title:"编辑工作台",videoLabel:"视频文件",videoPlaceholder:"/path/to/video.mp4",audioLabel:"音乐文件",audioPlaceholder:"/path/to/bgm.mp3(可选)",srtLabel:"字幕文件",srtPlaceholder:"/path/to/subtitle.srt(可选,跳过 ASR)",instructionLabel:"剪辑指令",instructionPlaceholder:"节奏感强的角色蒙太奇...",fpsLabel:"采样 FPS",characterLabel:"主角名",outputLabel:"输出路径",outputPlaceholder:"./output.mp4",actions:{fullPipeline:"一键剪辑",deconstruct:"仅解构",plan:"生成计划",cancel:"取消"}},progress:{title:"进度",waiting:"等待开始..."},shotPlan:{title:"分镜时间轴",summary:"{sections} 段 / {shots} 镜头"},events:{title:"事件日志"},preview:{title:"成片预览",copyButton:"复制路径"},messages:{completed:"完成",failed:"失败",copied:"已复制"}},_f={title:"P2P 网络",subtitle:"设备管理与数据同步",refresh:"刷新",peers:{cardTitle:"P2P 设备",pairButton:"配对设备",sendButton:"发送消息",online:"在线",offline:"离线",emptyText:"暂无已连接设备",rowSend:"发送"},peerColumns:{name:"设备名称",id:"Peer ID",status:"状态",action:"操作"},sync:{cardTitle:"同步状态",synced:"已同步",notSynced:"未同步",unknown:"未知",statusLabel:"同步状态",pendingLabel:"待推送",lastSyncLabel:"最近同步",noLastSync:"无",pushButton:"推送变更",pullButton:"拉取变更",outputLabel:"操作结果",pushDefault:"推送完成",pullDefault:"拉取完成"},pair:{title:"配对新设备",ok:"配对",intro:"请输入要配对的设备名称",placeholder:"设备名称,例如: My Phone"},send:{title:"发送消息",ok:"发送",targetLabel:"选择目标设备",targetPlaceholder:"选择设备",messageLabel:"消息内容",messagePlaceholder:"输入消息内容",messageDefault:"消息已发送"},messages:{loadPeersFailed:"加载失败: {err}",pairFailed:"配对失败: {err}",sendFailed:"发送失败: {err}",loadSyncFailed:"加载失败: {err}",pushFailed:"推送失败: {err}",pullFailed:"拉取失败: {err}"}},Cf={title:"记忆文件",subtitle:"分层记忆系统 — 短期 / 长期 / 核心记忆",storeButton:"存储记忆",refresh:"刷新",stats:{shortTerm:"短期记忆",shortTermHint:"最近会话内容",longTerm:"长期记忆",longTermHint:"巩固后的重要信息",core:"核心记忆",coreHint:"高重要性长期保留"},card:{title:"记忆内容",tabs:{short:"短期",long:"长期",core:"核心"},searchPlaceholder:"语义搜索记忆...",emptyText:"暂无记忆内容,点击存储记忆添加",importanceLabel:"重要度 {value}"},layer:{"short-term":"短期","long-term":"长期",core:"核心"},consolidateButton:"巩固记忆(短期 → 长期晋升)",modal:{title:"存储新记忆",contentLabel:"内容",contentPlaceholder:"要存储的记忆内容...",importanceLabel:"重要度",marks:{low:"低",mid:"中",high:"高"}},messages:{contentRequired:"请输入记忆内容",storeOk:"记忆已存储",storeDefault:"存储完成",storeFailed:"存储失败: {err}",consolidateOk:"记忆巩固完成",consolidateFailed:"巩固失败: {err}"}},kf={title:"Git 与数据",subtitle:"版本控制 / 导入导出",tabs:{git:"Git 仓库",io:"导入导出"},actions:{refresh:"刷新状态",autoCommit:"自动提交"},status:{changedCount:"{count} 个文件变更",clean:"工作区干净",emptyHint:"点击刷新状态查看 Git 信息",commitSuccessAlert:"提交成功",commitResultAlert:"提交结果"},import:{cardTitle:"导入数据",pathLabel:"文件路径",pathPlaceholder:"输入文件或目录路径,如 ./docs",formatLabel:"格式",submit:"导入"},export:{cardTitle:"导出站点",pathLabel:"输出路径",pathPlaceholder:"输出目录,如 ./site",submit:"导出为静态站点"},io:{successAlert:"操作成功",resultAlert:"操作结果",outputCardTitle:"命令输出",importIssue:"导入过程中可能存在问题,请查看输出",importDone:"导入完成",exportIssue:"导出过程中可能存在问题,请查看输出",exportDone:"导出完成"},confirm:{title:"确认自动提交",ok:"确认提交",intro1:"将执行",intro2:"自动提交当前所有变更。请确认工作区文件已准备就绪。"},messages:{statusFailed:"获取 Git 状态失败: {err}",commitOk:"自动提交完成",commitFailedToast:"自动提交失败",commitFailedDetail:"提交失败: {err}",importPathRequired:"请输入文件路径",importOk:"导入成功",importFailed:"导入失败",importFailedDetail:"导入失败: {err}",exportPathRequired:"请输入输出路径",exportOk:"导出成功",exportFailed:"导出失败",exportFailedDetail:"导出失败: {err}"}},Sf={groups:{overview:"概 览",config:"配 置",data:"数 据",advanced:"高 级",enterprise:"企 业",social:"社 交",media:"媒 体",extension:"扩 展",desktop:"桌面专属"},items:{dashboard:"仪表板",chat:"AI 对话",quickAsk:"Quick Ask",cowork:"日常协作",services:"服务管理",aiops:"AIOps",tokens:"Token 用量",logs:"日志查看",skills:"技能管理",providers:"LLM 配置",mcp:"MCP 工具",projectSettings:"项目存储",speechSettings:"语音识别",notificationSettings:"通知设置",syncSettings:"同步设置",nlprog:"自然语言编程",codegen:"代码生成",notes:"笔记管理",search:"RAG 搜索",memory:"记忆文件",knowledge:"知识图谱",marketplace:"技能市场",cron:"定时任务",workflow:"工作流编辑",pipeline:"开发流水线",tasks:"后台任务",security:"安全中心",ukeySign:"U-Key 签名",trust:"信任与安全",audit:"审计日志",mtc:"MTC 默克尔证书",did:"DID 身份",permissions:"权限管理",p2p:"P2P 网络",backup:"备份同步",git:"Git 与数据",projects:"项目管理",crosschain:"跨链桥",compliance:"合规与情报",privacy:"隐私计算",inference:"推理网络",federation:"联邦强化",wallet:"钱包管理",organization:"组织管理",tenant:"多租户 SaaS",sla:"SLA 管理",analytics:"使用分析",templates:"模板中心",community:"社区",governance:"社区治理",reputation:"声誉优化",recommend:"智能推荐",video:"视频剪辑",rssfeed:"RSS 订阅",webauthn:"身份认证",desktopHardware:"硬件钱包",desktopBackup:"备份与恢复",desktopLlmTest:"LLM 测试",desktopSettings:"系统设置"},scope:{fallbackProject:"项目",global:"全局模式",projectPanel:"项目级面板"},shellSwitch:"切换到桌面壳(保存后重启生效)",wsStatus:{connected:"已连接",connecting:"连接中",disconnected:"断开"},footerStatus:{connected:"已连接",connecting:"连接中...",error:"连接错误",disconnected:"未连接",unknown:"未知"}},Pf={title:"跨链桥",subtitle:"链间资产桥接 · HTLC 原子交换 · 跨链消息",refresh:"刷新",newDropdown:"新建 ▼",feeEstimate:"费用估算",actions:{bridge:"桥接资产",swap:"HTLC 原子交换",message:"跨链消息"},stats:{chains:"支持链",bridges:"桥接交易",swaps:"原子交换",messages:"跨链消息",volume:"总交易额"},chainsCard:"支持的区块链",tabs:{bridges:"桥接交易",swaps:"原子交换",messages:"跨链消息"},table:{totalSuffix:"共 {n} 条",retrySuffix:"{n} 次",emptyBridges:'暂无桥接交易,点"新建 → 桥接资产"发起',emptySwaps:'暂无原子交换,点"新建 → HTLC 原子交换"发起',emptyMessages:'暂无跨链消息,点"新建 → 跨链消息"发送'},bridgeCols:{route:"路径",amount:"金额",fee:"费用",status:"状态",createdAt:"创建时间"},swapCols:{route:"路径",amount:"金额",hashLock:"哈希锁",status:"状态",expiresAt:"过期时间"},messageCols:{route:"路径",payload:"消息",retries:"重试",status:"状态",createdAt:"创建时间"},bridge_modal:{title:"桥接资产",ok:"发起桥接",cancel:"取消",fromChain:"源链",fromChainPlaceholder:"选择源链",toChain:"目标链",toChainPlaceholder:"选择目标链",amount:"金额",asset:"资产",assetPlaceholder:"native(默认)",sender:"发送方",senderPlaceholder:"0x...(可选)",recipient:"接收方",recipientPlaceholder:"0x...(可选)"},swap_modal:{title:"HTLC 原子交换",ok:"发起交换",cancel:"取消",fromChain:"源链",fromChainPlaceholder:"选择源链",toChain:"目标链",toChainPlaceholder:"选择目标链",amount:"金额",fromAsset:"源资产",toAsset:"目标资产",assetPlaceholder:"native(默认)",counterparty:"对手方",counterpartyPlaceholder:"0x...(可选)",timeoutMs:"超时 (ms)",timeoutPlaceholder:"默认 24h"},message_modal:{title:"发送跨链消息",ok:"发送",cancel:"取消",fromChain:"源链",fromChainPlaceholder:"选择源链",toChain:"目标链",toChainPlaceholder:"选择目标链",payload:"消息",contract:"目标合约",contractPlaceholder:"0x...(可选)"},fee_modal:{title:"费用估算",ok:"估算",cancel:"关闭",fromChain:"源链",toChain:"目标链",amount:"金额",resultTitle:"预估费用",sourceFee:"源链费: {fee} {currency}",destFee:"目标链费: {fee} {currency}",bridgeFee:"桥接费: {fee} {currency}"},statusLabels:{pending:"待处理",locked:"已锁定",minted:"已铸造",completed:"已完成",refunded:"已退款",failed:"失败",initiated:"已发起",hash_locked:"哈希锁定",claimed:"已领取",expired:"已过期",sent:"已发送",delivered:"已送达"},msg:{loadFailed:"加载跨链数据失败",pairEmpty:"请选择源链和目标链",pairSame:"源链和目标链必须不同",amountInvalid:"请输入正数金额",bridgeFailed:"桥接发起失败",bridgeSuccess:"桥接已发起",swapFailed:"原子交换发起失败",swapSuccess:"原子交换已发起",sendFailed:"消息发送失败",sendSuccess:"消息已发送",feeFailed:"费用估算失败"}},Lf={title:"自然语言编程",subtitle:"意图识别 · 实体抽取 · 技术栈检测 · 自然语言→规约",refresh:"刷新",actionDropdown:"操作 ▼",actions:{analyze:"文本分析",translate:"翻译为规约",convention:"添加约定"},stats:{translations:"翻译总数",avgCompleteness:"平均完整度",drafts:"草稿",completed:"已完成",conventions:"项目约定"},intentCard:"意图分布",tabs:{translations:"翻译",conventions:"项目约定"},filter:{allIntents:"全部意图",allStatuses:"全部状态",allCategories:"全部"},table:{totalSuffix:"共 {n} 条",actionDetails:"详情",actionStatusDropdown:"状态 ▼",emptyTranslationsFiltered:"没有符合条件的翻译",emptyTranslations:'暂无翻译,点"操作 → 翻译为规约"创建第一个',emptyConventions:'暂无约定,点"操作 → 添加约定"创建第一个'},deleteTranslationConfirm:{title:"删除该翻译?",ok:"删除",cancel:"取消"},deleteConventionConfirm:{title:"删除该约定?",ok:"删除",cancel:"取消"},translationCols:{inputText:"原文",intent:"意图",completeness:"完整度",status:"状态",updatedAt:"更新时间",action:"操作"},conventionCols:{category:"类别",pattern:"模式",examples:"示例",confidence:"置信度",createdAt:"创建时间",action:"操作"},analyze_modal:{title:"文本分析(无状态)",ok:"分析",cancel:"关闭",textLabel:"文本",textPlaceholder:"例如: create a login button component using React",intent:"意图",confidenceLine:"置信度: {pct}%",entities:"实体({n})",notDetected:"未识别到",stack:"技术栈",stackPrimary:"主: {name}"},translate_modal:{title:"翻译为规约",ok:"翻译",cancel:"取消",textLabel:"自然语言",textPlaceholder:"例如: create a Vue 3 LoginForm component with email and password fields",intentLabel:"意图覆盖",intentPlaceholder:"留空则自动识别",noDbMessage:"该命令需要项目级数据库",noDbDescription:"`cc nlprog translate` 仅在 chainlesschain 项目目录下可用。请先运行 `cc init` 初始化项目,或在已初始化的目录启动 `cc serve`。"},convention_modal:{title:"添加项目约定",ok:"添加",cancel:"取消",categoryLabel:"类别",patternLabel:"模式",patternPlaceholder:"例如: kebab-case for file names",examplesLabel:"示例",examplesPlaceholder:'JSON 数组,例如 ["login-form.vue","user-card.vue"]',confidenceLabel:"置信度"},details:{title:"翻译详情:{id}",intent:"意图",status:"状态",completeness:"完整度",createdAt:"创建时间",updatedAt:"更新时间",inputText:"原文",entities:"实体",techStack:"技术栈",spec:"规约"},intentLabels:{create_component:"创建组件",add_feature:"新增功能",fix_bug:"修复 Bug",refactor:"重构",add_api:"加 API",add_test:"加测试",update_style:"改样式",configure:"配置",general:"通用"},statusLabels:{draft:"草稿",complete:"已完成",refined:"已精炼"},categoryLabels:{naming:"命名",architecture:"架构",testing:"测试",style:"样式",imports:"导入",components:"组件"},msg:{loadFailed:"加载 NL 数据失败",textEmpty:"请输入文本",analyzeFailed:"分析失败",translateTextEmpty:"请输入自然语言文本",translateFailed:"翻译失败",translateSuccess:"翻译完成 (完整度 {pct}%)",transitionFailed:"状态转换失败",transitionSuccess:"已更新为 {label}",deleteFailed:"删除失败",deleteSuccess:"已删除",patternEmpty:"请填写模式",examplesBadJson:"示例 JSON 格式错误",addFailed:"添加失败",addSuccess:"约定已添加"}},Tf={title:"多租户 SaaS",subtitle:"租户管理 · 订阅计费 · 用量计量 · 配额检查",refresh:"刷新",actionDropdown:"操作 ▼",actions:{tenant:"创建租户",quota:"检查配额",record:"记录用量"},stats:{total:"租户总数",active:"活跃订阅",mrr:"月度收入",apiCalls:"API 调用",storage:"存储用量"},plansCard:"计划分布",summarySuffix:"活跃 {active} · 暂停 {suspended} · 已删除 {deleted}",tabs:{tenants:"租户",subscriptions:"订阅",plans:"计划"},filter:{allPlans:"全部计划",allStatuses:"全部状态"},table:{totalSuffix:"共 {n} 条",actionSubscribe:"订阅",actionPlanDropdown:"计划 ▼",actionSuspend:"暂停",actionActivate:"激活",emptyTenantsFiltered:"没有符合条件的租户",emptyTenants:'暂无租户,点"操作 → 创建租户"添加第一个',emptySubscriptions:"暂无订阅记录"},deleteConfirm:{title:"软删除该租户?",ok:"删除",cancel:"取消"},cancelConfirm:{title:"取消该订阅?",ok:"取消订阅",cancel:"返回"},tenantCols:{name:"租户",plan:"计划",status:"状态",owner:"所有者",createdAt:"创建时间",action:"操作"},subscriptionCols:{tenant:"租户",plan:"计划",amount:"金额",status:"状态",startedAt:"开始",expiresAt:"到期",action:"操作"},planCard:{monthlySuffix:"/ 月",contactSales:"联系销售",quotas:"配额",features:"特性",unlimited:"无限"},deletedTenant:"(已删除)",create_modal:{title:"创建租户",ok:"创建",cancel:"取消",nameLabel:"名称",namePlaceholder:"例如: Acme Corp",slugLabel:"Slug",slugPlaceholder:"小写字母数字+连字符,例如: acme-corp",planLabel:"计划",ownerLabel:"所有者 ID",ownerPlaceholder:"可选"},subscribe_modal:{title:"订阅:{name}",ok:"订阅",cancel:"取消",planLabel:"计划",amountLabel:"金额覆盖",amountPlaceholder:"留空使用计划默认价",durationLabel:"周期",duration30:"30 天",duration90:"90 天",duration365:"1 年"},quota_modal:{title:"配额检查",ok:"检查",cancel:"关闭",tenantLabel:"租户",tenantPlaceholder:"选择租户",metricLabel:"指标",periodLabel:"周期",periodPlaceholder:"YYYY-MM,留空则当前月",resultTitle:"配额状态",unlimited:"无限",exceeded:"已超额",ok_state:"正常",planLine:"计划:",periodLine:"周期: {period}",usedLine:"已用:",limitLine:"上限:"},record_modal:{title:"记录用量",ok:"记录",cancel:"取消",tenantLabel:"租户",tenantPlaceholder:"选择租户",metricLabel:"指标",valueLabel:"数量",periodLabel:"周期",periodPlaceholder:"YYYY-MM,留空则当前月"},planLabels:{free:"免费版",starter:"入门版",pro:"专业版",enterprise:"企业版"},tenantStatusLabels:{active:"活跃",suspended:"已暂停",deleted:"已删除"},subStatusLabels:{active:"活跃",cancelled:"已取消",expired:"已过期",past_due:"逾期"},msg:{loadFailed:"加载租户数据失败",createFieldsEmpty:"请填写名称和 slug",slugInvalid:"slug 必须为小写字母数字 + 连字符",createFailed:"创建失败",createSuccess:"租户已创建",subscribeFailed:"订阅失败",subscribeSuccess:"订阅已创建",planChangeFailed:"计划变更失败",planChangeSuccess:"已切换到 {plan}",statusChangeFailed:"状态变更失败",activated:"已激活",suspended:"已暂停",deleteFailed:"删除失败",deleteSuccess:"租户已软删除",cancelFailed:"取消失败",cancelSuccess:"订阅已取消",tenantEmpty:"请选择租户",checkFailed:"检查失败",exceededWarning:"该租户已超额!",valueInvalid:"请输入有效数量",recordFailed:"记录失败",recordSuccess:"用量已记录"}},Ef={title:"代码生成",subtitle:"生成记录 · 启发式审查 · 5 类脚手架",refresh:"刷新",review:"代码审查",newDropdown:"新建 ▼",actions:{generate:"记录生成",scaffold:"创建脚手架"},stats:{generations:"生成记录",reviews:"代码审查",securityIssues:"安全问题",scaffolds:"脚手架",languages:"语言数"},templatesCard:"脚手架模板",tabs:{generations:"生成记录",reviews:"代码审查",scaffolds:"脚手架"},filter:{languagePlaceholder:"按语言筛选...",frameworkPlaceholder:"按框架筛选...",allTemplates:"全部模板"},table:{totalSuffix:"共 {n} 条",issuesSuffix:"{n} 项",noIssues:"— 无问题",unnamed:"(未命名)",actionDetails:"详情",actionReview:"审查",emptyGenerationsFiltered:"没有符合条件的生成记录",emptyGenerations:"暂无生成记录",emptyReviews:'暂无审查记录,点"代码审查"运行第一次',emptyScaffoldsFiltered:"没有符合条件的脚手架",emptyScaffolds:"暂无脚手架记录"},generationCols:{prompt:"提示词",language:"语言",framework:"框架",fileCount:"文件",tokenCount:"Tokens",createdAt:"创建时间",action:"操作"},reviewCols:{codeHash:"代码哈希",language:"语言",issuesFound:"问题",securityIssues:"安全",severityBreak:"严重度",reviewedAt:"审查时间",action:"操作"},scaffoldCols:{projectName:"项目名",template:"模板",filesGenerated:"文件数",outputPath:"输出路径",createdAt:"创建时间"},generate_modal:{title:"记录代码生成",ok:"记录",cancel:"取消",promptLabel:"提示词",promptPlaceholder:"例如:创建一个带防抖的搜索框组件",languageLabel:"语言",languagePlaceholder:"例如 typescript / python",frameworkLabel:"框架",frameworkPlaceholder:"例如 vue / react / fastapi",codeLabel:"生成代码",codePlaceholder:"可选 — 粘贴生成的代码",filesLabel:"文件数",tokensLabel:"Token 数"},review_modal:{title:"启发式代码审查",languageLabel:"语言",languagePlaceholder:"可选,例如 javascript / python",generationIdLabel:"生成 ID",generationIdPlaceholder:"可选,关联到一条生成记录",codeLabel:"代码",codePlaceholder:"粘贴需要审查的代码(lib 内置 5 类规则:eval / SQL / XSS / path_traversal / command_injection)",submit:"开始审查",notReviewed:"尚未审查",issuesStat:"发现问题",securityStat:"安全问题",reviewIdStat:"审查 ID",bySeverity:"按严重度",failedReason:"审查失败: {reason}"},scaffold_modal:{title:"创建脚手架",ok:"创建",cancel:"取消",templateLabel:"模板",projectLabel:"项目名",projectPlaceholder:"例如 my-app",optionsLabel:"选项",optionsPlaceholder:"可选 JSON,例如 typescript=true、router=true",filesLabel:"文件数",outputLabel:"输出路径",outputPlaceholder:"可选,例如 /tmp/my-app"},gen_details:{title:"生成详情:{id}",id:"ID",language:"语言",framework:"框架",fileCount:"文件数",tokenCount:"Token 数",createdAt:"创建时间",prompt:"提示词",code:"生成代码"},review_details:{title:"审查详情:{id}",id:"ID",codeHash:"代码哈希",generationId:"生成 ID",language:"语言",reviewedAt:"审查时间",issuesFound:"发现问题",securityIssues:"安全问题",bySeverity:"按严重度",issues:"问题列表"},severityLabels:{critical:"关键",high:"高",medium:"中",low:"低",info:"提示"},msg:{loadFailed:"加载数据失败",promptEmpty:"请填写提示词",generateFailed:"记录失败",generateSuccess:"生成已记录:{id}",codeEmpty:"请粘贴需要审查的代码",reviewFailed:"审查失败",reviewSuccess:"审查完成:{n} 项问题({sec} 安全)",projectEmpty:"请填写项目名",optionsBadJson:"选项 JSON 格式错误",scaffoldFailed:"创建失败",scaffoldSuccess:"脚手架已创建:{id}"}},If={title:"SLA 管理",subtitle:"服务等级合约 · 指标记录 · 偏差检测 · 补偿计算",refresh:"刷新",recordMetric:"记录指标",create:"新建合约",noDb:{message:"该模块需要项目级数据库",description:"`cc sla ...` 命令仅在 chainlesschain 项目目录下可用。请先运行 `cc init` 初始化项目,或在已初始化的目录启动 `cc serve`。"},stats:{totalContracts:"合约总数",active:"活跃合约",orgs:"合作组织",violations:"违规总数",compensation:"累计补偿"},tierCard:"SLA 等级",tierCompRate:"补偿率 {pct}%",tierTerms:{availability:"可用性 ≥ {pct}%",p95:"p95 ≤ {ms}ms",rps:"RPS ≥ {n}",errorRate:"错误率 ≤ {pct}%"},tabs:{contracts:"合约",violations:"违规",breakdown:"分布统计"},filter:{allTiers:"全部等级",allStatuses:"全部状态",allSeverities:"全部严重度"},table:{contractsSuffix:"共 {n} 个合约",totalSuffix:"共 {n} 条",uncomputed:"未计算",actionMetrics:"指标",actionCheck:"检查",actionReport:"报告",actionView:"查看",actionComputeComp:"计算补偿",emptyContractsFiltered:"没有符合条件的合约",emptyContracts:'暂无合约,点"新建合约"创建第一个',emptyViolationsFiltered:"没有符合条件的违规",emptyViolations:"暂无违规记录"},terminateConfirm:{title:"终止该合约?",ok:"终止",cancel:"取消"},contractCols:{slaId:"SLA ID",orgId:"组织",tier:"等级",status:"状态",monthlyFee:"月费",endDate:"到期",action:"操作"},violationCols:{id:"ID",term:"指标",severity:"严重度",deviation:"偏差",expected:"期望",actual:"实际",compensation:"补偿",occurredAt:"发生时间",action:"操作"},aggCols:{term:"指标",expected:"期望",mean:"均值",p95:"p95",min:"最小",max:"最大",count:"样本数"},breakdown:{contractsByStatus:"合约 — 按状态",contractsByTier:"合约 — 按等级",violationsBySeverity:"违规 — 按严重度",violationsByTerm:"违规 — 按指标",violationsBySeverityHeader:"违规分布 — 按严重度",metricsAggregation:"指标聚合"},create_modal:{title:"新建 SLA 合约",ok:"创建",cancel:"取消",orgLabel:"组织 ID",orgPlaceholder:"例如 org-acme",tierLabel:"等级",feeLabel:"月费",durationLabel:"期限 (天)",durationHint:"默认 30 天"},record_modal:{title:"记录指标",ok:"记录",cancel:"取消",slaLabel:"SLA",slaPlaceholder:"选择合约",termLabel:"指标",valueLabel:"数值"},metrics_modal:{title:"指标聚合:{id}",org:"组织",tier:"等级",samples:"样本数",monthlyFee:"月费",byTerm:"按指标聚合",empty:"尚无指标数据"},check_modal:{title:"违规检测:{id}",noViolations:"未检测到违规",withViolations:"检测到 {n} 项违规",checkedAt:"检测时间: {time}",expectedActual:"期望 {expected} · 实际 {actual}"},report_modal:{title:"合规报告:{id}",compliance:"合规率",violations:"违规总数",compensation:"累计补偿"},compensation_modal:{title:"补偿计算:{id}",violationId:"违规 ID",severity:"严重度",base:"基础金额",multiplier:"偏差倍数",amount:"最终补偿"},statusLabels:{active:"活跃",expired:"已过期",terminated:"已终止"},termLabels:{availability:"可用性",response_time:"响应时间",throughput:"吞吐量",error_rate:"错误率"},termHints:{availability:"比例 0~1,例如 0.997",response_time:"毫秒,例如 120",throughput:"每秒请求数,例如 850",error_rate:"比例 0~1,例如 0.003"},severityLabels:{minor:"轻微",moderate:"中等",major:"严重",critical:"关键"},msg:{loadFailed:"加载 SLA 数据失败",needCcInit:"需要先 cc init 初始化项目",orgEmpty:"请填写组织 ID",createFailed:"创建失败",createSuccess:"合约已创建:{id}",slaEmpty:"请选择 SLA 合约",valueEmpty:"请填写指标数值",recordFailed:"记录失败",recordSuccess:"指标已记录",terminateFailed:"终止失败",terminateSuccess:"合约已终止",loadMetricsFailed:"加载指标失败",checkFailed:"检查失败",loadReportFailed:"加载报告失败",compFailed:"计算失败"}},Af={title:"信任与安全",subtitle:"TPM/TEE 证明 · PQC 互操作 · 卫星消息 · HSM 设备",refresh:"刷新",newDropdown:"新建 ▼",actions:{attest:"证明请求",interop:"PQC 互操作",sat:"卫星消息",hsm:"注册 HSM"},stats:{attestations:"证明记录",validSuffix:"{n} 个有效",interop:"PQC 测试",interopSub:"{compatible} 兼容 · 均 {avg}ms",satellite:"卫星消息",satelliteSub:"{queued} 队列 · {confirmed} 已确认",hsm:"HSM 设备",passRate:"证明通过率"},tabs:{attestations:"信任根 · TPM/TEE",interop:"PQC 互操作",satellite:"卫星消息",hsm:"HSM 设备"},filter:{allAnchors:"全部锚点",allStatuses:"全部状态",allProviders:"全部提供商",allVendors:"全部厂商"},table:{totalSuffix:"共 {n} 条",deviceSuffix:"共 {n} 个设备",emptyAttestFiltered:"没有符合条件的证明",emptyAttest:'暂无证明记录,点"证明请求"运行第一次',emptyInterop:"暂无 PQC 互操作测试",emptySatFiltered:"没有符合条件的消息",emptySat:"暂无卫星消息",emptyHsmFiltered:"没有符合条件的设备",emptyHsm:"暂无 HSM 设备",compatible:"兼容",incompatible:"不兼容",satMarkSent:"标记已发送",satConfirm:"确认",satFail:"失败",hsmSign:"签名",hsmRemove:"移除"},removeConfirm:{title:"移除该 HSM 设备?",ok:"移除",cancel:"取消"},attestCols:{id:"ID",anchor:"锚点",status:"状态",fingerprint:"指纹",response:"响应",createdAt:"创建时间"},interopCols:{id:"ID",algorithm:"算法",compatible:"兼容",result:"结果",latency:"延迟",peer:"对端",createdAt:"创建时间"},satCols:{id:"ID",provider:"提供商",priority:"优先级",status:"状态",payload:"负载",createdAt:"创建时间",action:"操作"},hsmCols:{id:"ID",vendor:"厂商",model:"型号",serial:"序列号",compliance:"合规等级",firmware:"固件",action:"操作"},anchorLabels:{tpm:"TPM",tee:"TEE",secure_element:"SE"},attestStatusLabels:{valid:"有效",expired:"过期",failed:"失败",pending:"待处理"},satStatusLabels:{queued:"排队中",sent:"已发送",confirmed:"已确认",failed:"失败"},attest_modal:{title:"证明请求",ok:"提交",cancel:"取消",anchorLabel:"信任锚点",challengeLabel:"挑战值",challengePlaceholder:"可选 hex challenge",fingerprintLabel:"设备指纹",fingerprintPlaceholder:"可选 device fingerprint"},interop_modal:{title:"PQC 互操作测试",ok:"运行",cancel:"取消",algorithmLabel:"算法",algorithmPlaceholder:"例如 ml_kem_768 / ml_dsa_65 / slh_dsa_128s",peerLabel:"对端",peerPlaceholder:"可选 peer ID",latencyLabel:"延迟 ms"},sat_modal:{title:"发送卫星消息",ok:"发送",cancel:"取消",providerLabel:"提供商",priorityLabel:"优先级",priorityHint:"1-10,默认 5",payloadLabel:"负载",payloadPlaceholder:"消息内容(建议简短,卫星带宽受限)"},hsm_modal:{title:"注册 HSM 设备",ok:"注册",cancel:"取消",vendorLabel:"厂商",modelLabel:"型号",modelPlaceholder:"例如 YK5 / Nano X",serialLabel:"序列号",serialPlaceholder:"设备序列号",complianceLabel:"合规等级",firmwareLabel:"固件版本",firmwarePlaceholder:"可选"},sign_modal:{title:"HSM 签名:{id}",deviceLabel:"设备",algorithmLabel:"算法",algorithmPlaceholder:"可选,例如 ed25519 / ecdsa_p256",dataLabel:"数据",dataPlaceholder:"待签名的数据",submit:"签名",notSigned:"尚未签名",resultAlgorithm:"算法",resultSignature:"签名",failedReason:"签名失败: {reason}"},msg:{loadFailed:"加载数据失败",attestFailed:"证明失败",attestSuccess:"证明已记录 [{status}]",interopAlgEmpty:"请填写算法",interopFailed:"测试失败",interopSuccess:"测试完成:{compat} ({latency}ms)",satPayloadEmpty:"请填写消息负载",satFailed:"发送失败",satSuccess:"消息已入队:{id}",satUpdateFailed:"更新失败",satUpdateSuccess:"状态已更新",hsmRegisterFailed:"注册失败",hsmRegisterSuccess:"HSM 已注册:{id}",hsmRemoveFailed:"移除失败",hsmRemoveSuccess:"设备已移除",signEmpty:"请填写待签名数据",signSuccess:"签名完成",signFailed:"签名失败"}},wf={title:"技能市场",subtitle:"发布技能服务 · 记录调用 · 查看统计",refresh:"刷新",publish:"发布服务",stats:{total:"服务总数",published:"已发布",invocations:"调用总数",successRate:"成功率",avgDuration:"平均耗时"},tabs:{services:"服务",invocations:"调用记录"},filter:{all:"全部",namePlaceholder:"按名称搜索",byService:"按服务过滤"},table:{totalSuffix:"共 {n} 条",actionRecord:"记录调用",statusDropdown:"状态 ▼",emptyFiltered:"没有符合条件的服务",empty:'暂无服务,点击"发布服务"创建第一个',emptyInvocations:'暂无调用记录。在"服务"标签页对已发布服务点"记录调用"。'},serviceCols:{name:"名称",status:"状态",invocationCount:"调用次数",owner:"所有者",createdAt:"创建时间",action:"操作"},invocationCols:{service:"服务",caller:"调用方",status:"状态",durationMs:"耗时",createdAt:"时间"},deletedService:"(已删除)",publish_modal:{title:"发布技能服务",ok:"发布",cancel:"取消",nameLabel:"服务名称",namePlaceholder:"例如:text-summarizer",versionLabel:"版本",versionPlaceholder:"1.0.0(默认)",descLabel:"描述",endpointLabel:"调用端点",endpointPlaceholder:"https://...(可选)",ownerLabel:"所有者",ownerPlaceholder:"did:key:...(可选)",statusLabel:"初始状态"},record_modal:{title:"记录调用:{name}",ok:"记录",cancel:"取消",callerLabel:"调用方",callerPlaceholder:"did:key:...(可选)",statusLabel:"状态",durationLabel:"耗时 (ms)",errorLabel:"错误信息"},serviceStatusLabels:{draft:"草稿",published:"已发布",deprecated:"已弃用",suspended:"已暂停"},invocationStatusLabels:{pending:"待处理",running:"运行中",success:"成功",failed:"失败",timeout:"超时"},msg:{loadFailed:"加载市场数据失败",publishEmpty:"请输入服务名称",publishFailed:"发布失败",publishSuccess:"服务已发布",recordOnlyPublished:'只能对"已发布"状态的服务记录调用',recordFailed:"记录失败",recordSuccess:"调用已记录",transitionFailed:"状态转换失败",transitionSuccess:"服务状态已更新为 {label}"}},Of={title:"工作流编辑器",subtitle:"创建、编辑、运行 Cowork 工作流(N1 — 初版:表单编辑,画布视图规划中)",new:"新建",refresh:"刷新",list:{title:"工作流列表",empty:"暂无工作流",stepCount:"{n} 步骤",delete:"删除"},editor:{headerPrefix:"编辑:",exportJson:"导出 JSON",run:"运行",save:"保存",idLabel:"ID (唯一标识)",idPlaceholder:"my-workflow",nameLabel:"名称",namePlaceholder:"我的工作流",descLabel:"描述",descPlaceholder:"(可选)",stepsDivider:"步骤",stepIdPlaceholder:"step-id",dependsOnPlaceholder:"dependsOn",messagePlaceholder:"任务 prompt(支持 $step.<id>.summary 占位)",whenPlaceholder:"when 条件(可选,如 step.s1.status === 'completed')",stepDelete:"删除",stepCounter:"step {idx} / {total}",addStep:"+ 添加步骤",emptyHint:"从左侧选择工作流或新建一个"},runLog:{title:"运行日志"},msg:{loadFailed:"加载失败: {err}",saveSuccess:"保存成功",saveFailed:"保存失败: {err}",deleteSuccess:"已删除",deleteFailed:"删除失败: {err}",runSuccess:"运行完成:{status}",runFailed:"运行失败: {err}",exportSuccess:"已保存到 {path}",exportFailed:"导出失败: {err}"}},Df={scope:{fallbackProjectName:"项目",globalSessions:"全局会话"},newChat:"Chat",newAgent:"Agent",role:{me:"我"},contextMode:{project:"项目",file:"文件",global:"全局"},session:{untitled:"新对话",messageCountSuffix:"{n} 条消息"},sidebarEmpty:"点击上方按钮 开始新对话",empty:{title:"开始 AI 对话",subtitle:"选择左侧会话或创建新对话",newChat:"新建 Chat",newAgent:"新建 Agent",startTitle:"开始新的对话",hint:{project:"在项目上下文中提问",file:"针对当前文件提问",global:"通用 AI 助手"}},quickPrompts:{summarize:"总结一下这个项目",brainstorm:"帮我头脑风暴",explain:"解释一个概念",codeReview:"代码审查清单"},quickPromptsEditor:{openButton:"+ 编辑",title:"自定义快捷提示",hint:"每行一条;最多 12 条,每条 120 字以内。留空恢复默认。",placeholder:`总结一下这个项目
63
+ 帮我头脑风暴
64
+ …`,save:"保存",cancel:"取消",reset:"恢复默认"},input:{loading:"等待响应中...",placeholder:"输入消息,Shift+Enter 换行,Enter 发送",answerPlaceholder:"输入回答...",send:"发送"},tool:{argsPreview:"参数 {n} · {key}…",running:"执行中",done:"完成",unknownTool:"unknown"},intent:{confirmed:"✅ 已确认",corrected:"🔄 已修正",label:{original:"您的原始输入:",understood:"我理解为:",intent:"意图:",keyPoints:"关键要点:",correction:"您的修正:"},action:{confirm:"确认",correct:"纠正",correctPlaceholder:"请输入您想要纠正的内容...",submitCorrection:"提交修正",cancelCorrection:"取消"},status:{understanding:"正在理解您的请求..."}}},Ff={title:"仪表板",subProject:"项目「{name}」运行概览",subGlobal:"ChainlessChain 全局运行概览",unnamedProject:"未命名",refresh:"刷新",projectBanner:{fallbackName:"项目",tag:"项目面板"},stats:{wsGateway:"WebSocket Gateway",wsRunning:"运行中",wsDisconnected:"未连接",wsPortLine:"端口 {port} · {host}",currentLlm:"当前 LLM",llmUnconfigured:"未配置",skills:"可用技能",skillsHint:"点击管理技能",sessions:"AI 会话",sessionsHint:"点击进入对话",appStatus:"应用状态",appRunning:"运行中",appReady:"已初始化",appNotStarted:"未启动",edition:"{name} Edition",mcp:"MCP 工具",mcpHint:"已挂载扩展",notes:"知识库笔记",notesHint:"点击管理笔记"},quick:{title:"快速操作",enterProjectChat:"进入项目 Chat",newAiChat:"新建 AI 对话",startAgent:"启动 Agent 模式",services:"服务管理",logs:"查看日志",skills:"技能管理",providers:"LLM 配置"},status:{title:"最近状态",more:"查看更多",placeholder:"点击刷新加载系统状态..."},telemetry:{title:"压缩策略观测",filterWindow:"时间窗口",filterProvider:"Provider 切片",filterModel:"Model 切片",windowAll:"全部样本",window1h:"近 1 小时",window24h:"近 24 小时",window7d:"近 7 天",providerAll:"全部 Provider",modelAll:"全部 Model",hitRate:"压缩命中率",hitRateSub:"{compressed} / {total} 次压缩产生了有效节省",savedTokens:"累计节省 Token",savedTokensSub:"平均每次 {avg} Token",netSavingsRate:"净节省率",netSavingsRateSub:"原始 {original} -> 压缩后 {compressed}",strategyDistribution:"策略命中分布",strategyEmpty:"暂无压缩样本",strategyRow:"{hits} 次 · {rate}",variantDistribution:"变体分布",variantEmpty:"暂无变体数据",variantRow:"{count} 次",providerSlice:"Provider 切片",providerEmpty:"暂无 Provider 数据",providerRow:"{samples} 次 · {rate}",modelSlice:"Model 切片",modelEmpty:"暂无 Model 数据",modelRow:"{samples} 次 · {saved} saved"},info:{title:"运行信息",panelMode:"面板模式",modeProject:"项目级",modeGlobal:"全局",projectName:"项目名称",projectPath:"项目路径",websocket:"WebSocket",auth:"认证",authEnabled:"已启用",authDisabled:"未启用",version:"版本"}},Rf={common:jp,language:Up,error:Vp,quickAsk:Wp,compliance:zp,pipeline:Gp,did:qp,knowledgeGraph:Yp,governance:Kp,privacy:Xp,aiops:Jp,reputation:Qp,federation:Zp,recommend:ef,organization:tf,inference:af,wallet:nf,community:rf,webauthn:of,mtc:lf,tokens:sf,backup:cf,mcpTools:df,audit:uf,search:mf,templates:pf,security:ff,cron:gf,analytics:hf,speechSettings:bf,projects:yf,videoEditing:vf,p2p:_f,memory:Cf,git:kf,appLayout:Sf,crosschain:Pf,nlprog:Lf,tenant:Tf,codegen:Ef,sla:If,trust:Af,marketplace:wf,workflow:Of,chat:Df,dashboard:Ff},xf={refresh:"Refresh",save:"Save",cancel:"Cancel",confirm:"Confirm",delete:"Delete",edit:"Edit",create:"Create",loading:"Loading...",empty:"No data",search:"Search",back:"Back"},Nf={label:"Language",switch:"EN","zh-CN":"中文",en:"English"},Mf={boundary:{title:"Page failed to render",retry:"Retry",goHome:"Back to dashboard",stack:"Stack trace (dev only)"},runtime:"Runtime error"},$f={title:"Quick Ask",subtitle:"One-shot streaming prompt — no session history; routed through LLMManager.chatStream (desktop web-shell mode).",promptPlaceholder:"Type your question. Ctrl+Enter to send.",modelPlaceholder:"model (blank → default)",charsSuffix:"chars",tokensSuffix:"tokens",send:"Send",cancel:"Cancel",clear:"Clear",answerCardTitle:"Reply",streaming:"Streaming...",done:"Done",waitingFirstToken:"Waiting for first token..."},Bf={title:"Compliance & Threat Intel",subtitle:"Threat indicators (IoC) · User behaviour analytics (UEBA)",refresh:"Refresh",actionDropdown:"Actions ▼",actions:{match:"Match indicator",uebaBuild:"Build baseline",uebaAnalyze:"Run analysis"},stats:{iocTotal:"Total IoCs",iocTypes:"IoC types",riskEntities:"Risk entities",highRisk:"High risk (≥70)",recentAnomalies:"Recent anomalies"},typeBreakdown:"IoC type breakdown",tabs:{threat:"Threat intel",ueba:"Behaviour analytics (UEBA)"},filter:{all:"All"},cols:{type:"Type",value:"Value",labels:"Labels",confidence:"Confidence",source:"Source",lastSeen:"Last seen",action:"Action",entity:"Entity",riskScore:"Risk score",eventCount:"Events",failureRate:"Failure rate",uniqueResources:"Resources",burstiness:"Burstiness"},table:{totalSuffix:"{n} total",delete:"Delete",deleteConfirm:"Delete this indicator?",deleteOk:"Delete",cancel:"Cancel",emptyThreatsLine1:"No threat indicators yet. Import a STIX bundle via CLI:",emptyAuditEntities:"Audit log empty — no entities to analyse",emptyRiskEntities:"No risk entities yet",noAnomalies:"No anomalies"},ueba:{noAuditLog:"Audit log empty",noAuditLogDesc:'UEBA reads from the audit_log table. Trigger a few audited actions first (cc auth login / cc note add), then come back and click "Build baseline".',errorMessage:"UEBA error: {err}",topRiskTitle:"Top risk entities (Top {count})",anomalyTitle:"Recent anomalies ({count})"},match:{modalTitle:"Match threat indicator",ok:"Match",close:"Close",label:"Observable",placeholder:"IP / domain / URL / email / file hash",result:"Match result",hit:"Hit",miss:"Miss",detectType:"Detected type:",sourcePrefix:"Source:",confidencePrefix:"Confidence:"},build:{modalTitle:"Build UEBA baseline",ok:"Build",cancel:"Cancel",entityLabel:"Entity (optional)",entityPlaceholder:"leave blank for all entities",daysLabel:"Days",daysPlaceholder:"e.g. 30",footnote:"Reads the last N days of events from audit_log and computes per-entity event counts / failure rates / resource coverage."},analyze:{modalTitle:"Run behaviour analysis",ok:"Analyse",cancel:"Cancel",entityLabel:"Entity (optional)",entityPlaceholder:"leave blank for all entities",thresholdLabel:"Threshold",daysLabel:"Days",footnote:"Compares the last N days of events to the stored baseline; events with score ≥ threshold are reported as anomalies."},msg:{loadFailed:"Failed to load compliance data",matchEmpty:"Enter an observable to match",matchFailed:"Match failed",matchHit:"Threat indicator hit ({type})",matchUnknownType:"Could not classify the observable",matchMiss:"No hit (classified as {type})",deleteFailed:"Delete failed",deleteSuccess:"Indicator deleted",auditEmptyBuild:"audit_log is empty — cannot build baseline",buildFailed:"Build failed",buildSuccess:"Baseline built",auditEmptyAnalyze:"audit_log is empty — no events to analyse",analyzeFailed:"Analysis failed",analyzeSuccess:"Analysis complete — {n} anomalies found"}},Hf={title:"Development pipeline",subtitle:"7-stage AI dev pipeline · quality gates · deploy strategies",refresh:"Refresh",create:"Create pipeline",noDb:{message:"This module requires a project-level database",description:"`cc pipeline ...` commands only work inside a chainlesschain project directory. Run `cc init` first, or start `cc serve` from an initialised directory."},stats:{totalPipelines:"Total pipelines",running:"Running",totalStages:"Total stages",totalArtifacts:"Artifacts",totalDeploys:"Deploys"},stagesCardTitle:"7-stage pipeline",tabs:{pipelines:"Pipelines",deploys:"Deploys",templates:"Templates"},filters:{allTemplates:"All templates",allStatuses:"All statuses"},table:{totalSuffix:"{n} total",unnamed:"(unnamed)",actions:{details:"Details",start:"Start",pause:"Pause",resume:"Resume",approveGate:"Approve gate",cancel:"Cancel"},cancelConfirm:"Cancel this pipeline?",cancelOk:"Cancel",cancelBack:"Back",emptyFiltered:"No pipelines match the current filter",empty:'No pipelines yet — click "Create pipeline" to start one',emptyDeploys:"No deploy history yet"},cols:{name:"Name",template:"Template",progress:"Progress",currentStage:"Current stage",status:"Status",createdAt:"Created",action:"Action",pipeline:"Pipeline",strategy:"Strategy"},create_modal:{title:"Create pipeline",ok:"Create",cancel:"Cancel",templateLabel:"Template",nameLabel:"Name",namePlaceholder:'Optional, e.g. "fix login bug"',configLabel:"Config (JSON)",configPlaceholder:"JSON object, e.g. repo=web, ticket=PROJ-123"},details:{title:"Pipeline details: {label}",template:"Template",status:"Status",progress:"Progress",createdAt:"Created",startedAt:"Started",stagesHeader:"Stage details",needsApproval:"Needs approval",approved:"(approved)",errorPrefix:"Error:"},templateLabels:{feature:"Feature",bugfix:"Bug fix",refactor:"Refactor","security-audit":"Security audit"},stageLabels:{requirement:"Requirement",architecture:"Architecture","code-generation":"Code generation",testing:"Testing","code-review":"Code review",deploy:"Deploy",monitoring:"Monitoring"},pipelineStatusLabels:{pending:"Pending",running:"Running",paused:"Paused",completed:"Completed",failed:"Failed",cancelled:"Cancelled"},stageStatusLabels:{pending:"Pending",running:"Running","gate-waiting":"Awaiting approval",completed:"Completed",failed:"Failed",skipped:"Skipped"},deployStatusLabels:{pending:"Pending",running:"Deploying",succeeded:"Succeeded",failed:"Failed","rolled-back":"Rolled back"},msg:{loadFailed:"Failed to load pipeline data",selectTemplate:"Pick a template",badConfigJson:"Config JSON is malformed",needCcInit:"Run `cc init` first to initialise the project",createFailed:"Create failed",createSuccess:"Pipeline created",actionFailed:"Action failed",started:"Started",paused:"Paused",resumed:"Resumed",gateApproved:"Gate approved",cancelled:"Cancelled"}},jf={title:"DID identity manager",subtitle:"Decentralised identity / keys / signature verification",refresh:"Refresh",create:"Create identity",stats:{count:"Identities",default:"Default identity",method:"DID method",signable:"Signable",yes:"Yes",no:"No",unsetDefault:"(not set)",noMethod:"—"},webOnly:{message:"Web-only mode",description:"Mnemonic backup/recovery and DHT publishing are desktop-only. This page covers core actions (create / sign / delete / view DID Document) via CLI."},table:{totalSuffix:"{n} total",defaultTag:"default",empty:'No DID identities yet — click "Create identity"'},cols:{did:"DID",name:"Name",method:"Method",createdAt:"Created",default:"Default",action:"Action"},actions:{details:"Details",sign:"Sign",setDefault:"Set default",delete:"Delete"},deleteConfirm:{title:"Delete this DID identity? The private key cannot be recovered.",ok:"Delete",cancel:"Cancel"},create_modal:{title:"Create DID identity",ok:"Create",cancel:"Cancel",nameLabel:"Display name",namePlaceholder:"Optional — for your own reference"},details:{title:"Identity details: {label}",did:"DID",name:"Name",method:"Method",default:"Default",yes:"Yes",no:"No",createdAt:"Created",publicKey:"Public key (hex)",publicKeyLoading:"loading...",viewDoc:"View DID Document",docHeader:"DID Document (W3C):"},sign_modal:{title:"Sign message: {label}...",defaultIdentityFallback:"default identity",ok:"Sign",cancel:"Cancel",messageLabel:"Message",messagePlaceholder:"Type the message to sign",resultHeader:"Signature (hex):"},msg:{loadFailed:"Failed to load DID list",createFailed:"Create failed",createSuccess:"DID identity created",setDefaultFailed:"Set default failed",setDefaultSuccess:"Default identity updated",deleteFailed:"Delete failed",deleteSuccess:"Identity deleted",loadDocFailed:"Failed to load DID Document",signEmpty:"Type the message to sign",signSuccess:"Signed",signFailed:"Sign failed"}},Uf={title:"Knowledge graph",subtitle:"Entities / relations / multi-hop reasoning / force-directed view",refresh:"Refresh",addEntity:"Add entity",addRelation:"Add relation",stats:{entityCount:"Entities",relationCount:"Relations",avgDegree:"Avg. degree",density:"Density"},webOnly:{message:"Web-only mode",description:"AI auto-extraction (entities + relations from notes/chats) is desktop-only; that button is disabled here. CRUD / reasoning / stats actions still work via CLI."},tabs:{graph:"Graph",entities:"Entities ({n})",relations:"Relations ({n})",distribution:"Distribution"},table:{totalSuffix:"{n} total",emptyGraph:'No entities yet. Click "Add entity" to start the graph',emptyEntities:"No entities",emptyRelations:"No relations",emptyData:"No data"},entityCols:{id:"ID",name:"Name",type:"Type",tags:"Tags",action:"Action"},relationCols:{source:"Source",target:"Target",relationType:"Relation",weight:"Weight"},actions:{reason:"Reason",delete:"Delete"},deleteConfirm:{title:"Delete this entity? Linked relations will cascade delete.",ok:"Delete",cancel:"Cancel"},distribution:{entityTypes:"Entity type breakdown",relationTypes:"Relation type breakdown"},addEntity_modal:{title:"Add entity",ok:"Add",cancel:"Cancel",nameLabel:"Name",namePlaceholder:"Entity name (e.g. Alice / ChainlessChain / RAG)",typeLabel:"Type",typePlaceholder:"Pick an entity type",tagsLabel:"Tags",tagsPlaceholder:"Comma-separated, e.g. ai, project"},addRelation_modal:{title:"Add relation",ok:"Add",cancel:"Cancel",sourceLabel:"Source",sourcePlaceholder:"Pick source entity",targetLabel:"Target",targetPlaceholder:"Pick target entity",relationTypeLabel:"Relation type",relationTypePlaceholder:"e.g. knows / belongs to / created",weightLabel:"Weight"},reason_modal:{title:"Multi-hop reasoning: {name}",maxDepth:"Max depth",direction:"Direction",directionOut:"Out",directionIn:"In",directionBoth:"Both",run:"Run",hint:'Click "Run" to see entities reachable from this node'},msg:{loadEntitiesFailed:"Failed to load entities",loadRelationsFailed:"Failed to load relations",loadStatsFailed:"Failed to load stats",loadEntityTypesFailed:"Failed to load entity types",addEntityEmpty:"Enter a name and pick a type",addEntityFailed:"Add failed",addEntitySuccess:"Entity added",addRelationEmpty:"Fill source, target, and relation type",addRelationSelfLoop:"Source and target must be different entities",addRelationFailed:"Add failed",addRelationSuccess:"Relation added",deleteFailed:"Delete failed",deleteSuccess:"Entity deleted",reasonEmpty:"No reachable entities from this node",reasonFailed:"Reasoning failed"}},Vf={title:"Community Governance",subtitle:"Proposals · weighted voting · heuristic impact · vote prediction",refresh:"Refresh",create:"New proposal",noDb:{message:"This module requires a project-level database",description:"`cc governance ...` only works inside a chainlesschain project directory. Run `cc init` first, or start `cc serve` from an initialised directory."},stats:{total:"Total proposals",active:"Active",passed:"Passed",rejected:"Rejected",votes:"Total votes"},typesCard:"Proposal types",tabs:{proposals:"Proposals",breakdown:"Breakdown"},filter:{allStatuses:"All statuses",allTypes:"All types"},table:{totalSuffix:"{n} total",unnamed:"(untitled)",emptyFiltered:"No proposals match the current filter",empty:'No proposals yet — click "New proposal" to create the first one'},cols:{title:"Title",type:"Type",status:"Status",tally:"Tally",impact:"Impact",createdAt:"Created",action:"Action"},actions:{details:"Details",activate:"Open voting",vote:"Vote",close:"Close",analyze:"Impact",predict:"Predict"},closeConfirm:{title:"Close voting and tally with the current votes?",ok:"Close",cancel:"Back"},breakdown:{byStatus:"By status",byType:"By type"},create_modal:{title:"New proposal",ok:"Create",cancel:"Cancel",titleLabel:"Title",titlePlaceholder:'e.g. "Add dark mode support"',typeLabel:"Type",proposerLabel:"Proposer DID",proposerPlaceholder:"Optional, e.g. did:key:z6Mk...",descLabel:"Description",descPlaceholder:"Background, motivation, scope (more detail → higher benefit score in impact analysis)"},vote_modal:{title:"Vote on proposal: {title}",ok:"Vote",cancel:"Cancel",voterLabel:"Voter DID",valueLabel:"Choice",yes:"Yes",no:"No",abstain:"Abstain",weightLabel:"Weight",weightHint:"default 1.0",reasonLabel:"Reason",reasonPlaceholder:"Optional rationale"},details:{title:"Proposal details: {title}",id:"ID",type:"Type",status:"Status",proposer:"Proposer",proposerUnset:"(unset)",description:"Description",tally:"Tally",tallyYes:"Yes: {n}",tallyNo:"No: {n}",tallyAbstain:"Abstain: {n}",impact:"Impact level",createdAt:"Created",votingStartsAt:"Voting starts",votingEndsAt:"Voting ends",votesHeader:"Vote log",votesEmpty:"No votes yet"},analysis:{title:"Impact analysis: {title}",impactLevel:"Impact level",effort:"Effort",sentiment:"Community sentiment",riskBenefit:"Risk / Benefit",riskScore:"Risk score",benefitScore:"Benefit score",components:"Affected components",recommendations:"Recommendations"},prediction:{title:"Vote prediction: {title}",outcomePass:"Predicted: pass",outcomeReject:"Predicted: reject",confidence:"Confidence",basedOn:"Based on",basedOnVotes:"existing votes",basedOnHeuristic:"heuristic (no votes)",sampleSize:"Sample size",yesProb:"Yes probability",noProb:"No probability",abstainProb:"Abstain probability"},statusLabels:{draft:"Draft",active:"Active",passed:"Passed",rejected:"Rejected",expired:"Expired"},typeLabels:{parameter_change:"Parameter change",feature_request:"Feature request",policy_update:"Policy update",budget_allocation:"Budget allocation"},impactLabels:{low:"Low",medium:"Medium",high:"High",critical:"Critical"},voteLabels:{yes:"Yes",no:"No",abstain:"Abstain"},effortLabels:{small:"Small",medium:"Medium",large:"Large"},sentimentLabels:{positive:"Positive",cautious:"Cautious",negative:"Negative"},msg:{loadFailed:"Failed to load governance data",titleEmpty:"Enter a title",needCcInit:"Run `cc init` first to initialise the project",createFailed:"Create failed",createSuccess:"Proposal created (draft)",actionFailed:"Action failed",activated:"Voting opened",closed:"Voting closed",voterEmpty:"Enter a voter DID",voteFailed:"Vote failed",voteSuccess:"Vote recorded",analyzeFailed:"Analysis failed",predictFailed:"Prediction failed"}},Wf={title:"Privacy computing",subtitle:"Federated learning · MPC · differential privacy · homomorphic encryption",refresh:"Refresh",actionDropdown:"Actions ▼",actions:{model:"New FL model",computation:"New MPC computation",dp:"DP publish",he:"HE query"},stats:{models:"FL models",avgAccuracy:"Avg. accuracy",computations:"MPC computations",budget:"Budget left ε",budgetState:"Budget state",exhausted:"Exhausted",ample:"Ample"},catalog:{protocols:"MPC protocols",dp:"DP noise mechanisms",he:"HE schemes"},tabs:{models:"Federated learning",computations:"MPC"},filter:{all:"All",allProtocols:"All protocols",allStatuses:"All statuses"},table:{totalSuffix:"{n} total",rounds:"{cur} / {total} rounds",trainOne:"Train one round",failConfirm:"Mark this model as failed?",failOk:"Confirm",failCancel:"Cancel",failMark:"Mark failed",submitShare:"Submit share",emptyModelsFiltered:"No models match the current filter",emptyModels:'No FL models yet — click "Actions → New FL model"',emptyComputations:'No MPC computations yet — click "Actions → New MPC computation"'},modelCols:{name:"Name",status:"Status",progress:"Progress",accuracy:"Accuracy",participants:"Parties",budget:"Budget ε",updatedAt:"Updated",action:"Action"},computationCols:{type:"Type",protocol:"Protocol",progress:"Shares",status:"Status",time:"Duration",createdAt:"Created",action:"Action"},flStatusLabels:{initializing:"Initialising",training:"Training",aggregating:"Aggregating",completed:"Completed",failed:"Failed"},mpcStatusLabels:{pending:"Pending",computing:"Computing",completed:"Completed"},model_modal:{title:"New FL model",ok:"Create",cancel:"Cancel",nameLabel:"Model name",namePlaceholder:"e.g. fraud-detector",typeLabel:"Model type",typePlaceholder:"neural_network (default)",archLabel:"Architecture",archPlaceholder:"mlp (default)",roundsLabel:"Total rounds",lrLabel:"Learning rate",participantsLabel:"Parties"},computation_modal:{title:"New MPC computation",ok:"Create",cancel:"Cancel",typeLabel:"Computation type",typePlaceholder:"e.g. sum / multiplication",protocolLabel:"Protocol",participantsLabel:"Party IDs",participantsPlaceholder:"Comma-separated, e.g. alice,bob,carol",thresholdLabel:"Required shares",thresholdPlaceholder:"blank → half automatically"},dp_modal:{title:"Differential privacy publish",ok:"Publish",cancel:"Close",dataLabel:"Data",dataPlaceholder:"Number or JSON array, e.g. 10 or [1,2,3]",mechanismLabel:"Mechanism",epsilonLabel:"ε (epsilon)",deltaLabel:"δ (delta)",sensitivityLabel:"Sensitivity",noisedTitle:"Noised data",spentLine:"Budget spent: {n}",remainingLine:"Budget remaining: {n}",mechanismLine:"Mechanism: {name} (ε={epsilon})",failedTitle:"Publish failed"},he_modal:{title:"Homomorphic encryption query",ok:"Query",cancel:"Close",dataLabel:"Data",dataPlaceholder:"JSON array, e.g. [1,2,3,4,5]",operationLabel:"Operation",schemeLabel:"Scheme",resultTitle:"Encrypted result",schemeLine:"Scheme: {name}",operationLine:"Operation: {name}",inputCountLine:"Inputs: {n}",encrypted:"encrypted"},msg:{loadFailed:"Failed to load privacy data",modelNameEmpty:"Enter a model name",modelCreateFailed:"Create failed",modelCreateSuccess:"FL model created",computationTypeEmpty:"Enter a computation type",computationCreateFailed:"Create failed",computationCreateSuccess:"MPC computation created",trainFailed:"Train failed",trainSuccess:"One round complete",failMarkFailed:"Mark failed",failMarkSuccess:"Marked as failed",submitFailed:"Submit failed",submitSuccess:"Share submitted",dataEmpty:"Enter data",dataInvalidJson:"Invalid format — enter a valid JSON array",dpFailed:"Publish failed",dpSuccess:"Published",dpRejected:"Publish rejected: {reason}",heFailed:"Query failed",heSuccess:"Computation complete ({scheme}/{op})"}},zf={title:"AIOps autonomy",subtitle:"Anomaly detection · incident management · automated playbooks",refresh:"Refresh",newDropdown:"New ▼",actions:{incident:"Create incident",playbook:"Create playbook",baseline:"Update baseline",detect:"Detect anomaly"},stats:{incidents:"Incidents",pending:"Pending",playbooks:"Playbooks",enabled:"Enabled",baselines:"Baselines"},severityCard:"Severity breakdown",avgResolveLabel:"Avg. resolve time: {time}",tabs:{incidents:"Incidents",playbooks:"Playbooks",baselines:"Baselines"},filter:{all:"All",allStatuses:"All statuses"},table:{totalSuffix:"{n} total",incidentEmptyFiltered:"No incidents match the current filter",incidentEmpty:'No incidents yet — click "New → Create incident" or run "Detect anomaly"',playbookEmpty:'No playbooks yet — click "New → Create playbook"',baselineEmpty:'No baselines yet — click "New → Update baseline" to feed samples',successCount:"{n} ok",failureCount:"{n} fail"},incidentActions:{ack:"Ack",resolve:"Resolve",close:"Close",postmortem:"Postmortem"},playbookActions:{success:"+ Success",failure:"+ Failure"},incidentCols:{severity:"Severity",metric:"Metric",description:"Description",status:"Status",createdAt:"Created",action:"Action"},playbookCols:{name:"Name",enabled:"Enabled",stats:"Stats",createdAt:"Created",action:"Action"},baselineCols:{metric:"Metric",mean:"Mean / σ",iqr:"Quartiles",sampleCount:"Samples",updatedAt:"Updated"},incident_modal:{title:"Create incident",ok:"Create",cancel:"Cancel",severityLabel:"Severity",metricLabel:"Metric",metricPlaceholder:"e.g. cpu_usage (optional)",descLabel:"Description"},playbook_modal:{title:"Create playbook",ok:"Create",cancel:"Cancel",nameLabel:"Name",namePlaceholder:"restart-pod",triggerLabel:"Trigger (JSON)",triggerPlaceholder:"e.g. metric=cpu, threshold=90",stepsLabel:"Steps (JSON)",stepsPlaceholder:"JSON array, e.g. action=restart, target=pod-1"},baseline_modal:{title:"Update baseline",ok:"Update",cancel:"Cancel",metricLabel:"Metric name",metricPlaceholder:"cpu_usage",valuesLabel:"Sample values",valuesPlaceholder:"Comma-separated numbers, e.g. 45.2, 47.1, 50.8, 49.3"},detect_modal:{title:"Detect anomaly",ok:"Detect",cancel:"Close",metricLabel:"Metric name",metricPlaceholder:"Pick a metric with an established baseline",metricOptionLabel:"{name} (n={count})",valueLabel:"Test value",algorithmLabel:"Algorithm",resultTitle:"Result",anomaly:"Anomaly",normal:"Normal",reasonLine:"Reason: {reason}",scoreLine:"Score: {score} (threshold {threshold})",baselineLine:"Baseline: mean {mean}, σ {stdDev}",incidentCreated:"Auto-created {severity} incident"},statusLabels:{open:"Open",acknowledged:"Acked",resolved:"Resolved",closed:"Closed"},reasonLabels:{no_baseline:'Metric has no baseline yet — run "Update baseline" first',zero_stddev:"Baseline variance is zero (samples are identical)",missing_metric_name:"Missing metric name",missing_value:"Missing test value",unknown_algorithm:"Unknown algorithm"},duration:{none:"—"},msg:{loadFailed:"Failed to load AIOps data",descEmpty:"Enter an incident description",createFailed:"Create failed",incidentCreated:"Incident created",playbookNameEmpty:"Enter a playbook name",jsonInvalid:"{label} JSON is malformed",playbookCreated:"Playbook created",metricEmpty:"Enter a metric name",valuesInvalid:"Enter at least one valid number (comma- or space-separated)",baselineUpdateFailed:"Update failed",baselineUpdated:"Baseline updated (n={n})",detectFieldsEmpty:"Pick a metric and enter a test value",detectFailed:"Detect failed",detectAnomaly:"Anomaly detected ({severity})",incidentTransitionFailed:"Transition failed",incidentAcked:"Incident acknowledged",incidentResolved:"Incident resolved",incidentClosed:"Incident closed",postmortemTitle:"Incident {id} postmortem",postmortemEmpty:"(no content)",postmortemFailed:"Postmortem generation failed",playbookToggleFailed:"Toggle failed",playbookEnabled:"Playbook enabled",playbookDisabled:"Playbook disabled",playbookRecordFailed:"Record failed",playbookRecordSuccess:"Success run recorded",playbookRecordFailure:"Failure run recorded",triggerLabel:"Trigger",stepsLabel:"Steps"}},Gf={title:"Reputation Optimizer",subtitle:"Observations · Decay models · Anomaly detection · Bayesian parameter optimization",refresh:"Refresh",actions:{anomalies:"Anomaly check",optimize:"Start optimization"},noDb:{message:"Project-scoped database required",description:"`cc reputation ...` is only available inside a chainlesschain project. Run `cc init` first or start `cc serve` from an initialized directory."},stats:{trackedDids:"Tracked DIDs",totalObservations:"Observations",optimizationRuns:"Optimization runs",active:"Active",bestEver:"Best ever"},tabs:{scores:"Score ranking",runs:"Optimization runs",breakdown:"Distribution"},filter:{decayLabel:"Decay model:",addObservation:"Add observation"},scoreColumns:{rank:"Rank",did:"DID",score:"Reputation score",observations:"Observations",weightTotal:"Weight total"},runColumns:{runId:"Run ID",objective:"Objective",iterations:"Iterations",bestScore:"Best score",status:"Status",createdAt:"Created",action:"Action"},totals:{dids:"{count} DIDs total",rows:"{count} rows"},empty:{scores:"No reputation data yet — click Add observation to record one",runs:"No optimization runs yet — click Start optimization to begin"},rowActions:{analyze:"Analyze",apply:"Apply"},breakdown:{byStatus:"By status",byObjective:"By objective"},observe:{title:"Add observation",ok:"Record",didLabel:"DID",didPlaceholder:"did:key:...",scoreLabel:"Score",scoreRange:"Range 0.0 ~ 1.0",kindLabel:"Kind",weightLabel:"Weight"},optimize:{title:"Start optimization",ok:"Start",objectiveLabel:"Objective",iterationsLabel:"Iterations",iterationsRange:"Range 1 ~ 1000, default 50",syncMessage:"Synchronous run",syncDescription:"Optimization runs all iterations and returns best params plus recommendations (heuristic Bayesian simulation in the CLI lib)."},anomaly:{title:"Anomaly score detection",methodLabel:"Method",zScoreLabel:"Z-score (3σ)",iqrLabel:"IQR (1.5×)",thresholdLabel:"Threshold",thresholdHint:"Defaults: z_score=2.5 / iqr=1.5",decayLabel:"Decay model",start:"Detect",notDetected:"Not detected yet",totalSamples:"Samples",threshold:"Threshold",anomalies:"Anomalies",scoreTag:"score: {score}",zNote:"z={value}"},analytics:{title:"Run details: {runId}",objective:"Objective",status:"Status",iterations:"Iterations",bestScore:"Best score",createdAt:"Created",completedAt:"Completed",bestParams:"Best params",errorMessage:"Error",distributionTitle:"Reputation distribution",mean:"Mean: {value}",stdDev:"Std dev: {value}",recommendations:"Recommendations"},decay:{none:"None",exponential:"Exponential",linear:"Linear",step:"Step"},kind:{generic:"Generic",task:"Task",review:"Review",vote:"Vote"},objective:{accuracy:"Accuracy",fairness:"Fairness",resilience:"Resilience",convergence_speed:"Convergence speed"},objectiveDesc:{accuracy:"Maximize fit to ground-truth reputation",fairness:"Lower decay strength, treat all DIDs equally",resilience:"Increase tolerance to outliers",convergence_speed:"Reach a stable result in as few iterations as possible"},status:{running:"Running",complete:"Complete",applied:"Applied",failed:"Failed",cancelled:"Cancelled"},applyConfirm:{title:"Apply this optimization result?",content:"Run {runId}'s best params will be marked as applied.",ok:"Apply",cancel:"Cancel"},messages:{loadFailed:"Failed to load reputation data: {err}",loadScoresFailed:"Failed to load scores: {err}",didRequired:"Please enter a DID",scoreRange:"Score must be between 0 and 1",needInit:"Run `cc init` to initialize the project first",observeFailed:"Record failed: {err}",observeOk:"Observation recorded",optimizeFailed:"Optimization failed: {err}",optimizeOk:"Optimization complete — best score {score}",applyFailed:"Apply failed: {err}",applyOk:"Applied",detectFailed:"Detection failed: {err}"}},qf={title:"Federation Hardening",subtitle:"Circuit breaker FSM · Health checks · Connection pool simulation",refresh:"Refresh",newDropdown:"New ▼",newMenu:{register:"Register node",check:"Record health check",pool:"New connection pool"},stats:{breakers:"Breaker nodes",checks:"Health checks",pools:"Connection pools",degraded:"Degraded nodes",availability:"Availability",breakerSub:"{closed} closed · {open} open",checkSub:"{healthy} healthy · {unhealthy} unhealthy",poolSub:"{active} active · {idle} idle",degradedSub:"{halfOpen} half-open"},tabs:{breakers:"Breakers",checks:"Health checks",pools:"Connection pools",nodeHealth:"Node health aggregate"},filter:{allStates:"All states",allMetrics:"All metrics"},totals:{rows:"{count} rows"},breakerColumns:{node:"Node",state:"State",failure:"Failures",success:"Successes",openTimeout:"Timeout (ms)",updatedAt:"Updated",action:"Action"},checkColumns:{id:"ID",node:"Node",metric:"Metric",status:"Status",metrics:"Value",checkedAt:"Checked"},poolColumns:{node:"Node",active:"Active",idle:"Idle",max:"Max",utilization:"Utilization",waiting:"Waiting",totalCreated:"Created",createdAt:"Created at",action:"Action"},latestColumns:{metric:"Metric",status:"Status",checkedAt:"Checked"},breakerActions:{failure:"Failure",success:"Success",halfOpen:"Half-open",reset:"Reset",remove:"Remove",removeConfirm:"Remove this node? All related breakers and health checks will be deleted."},poolActions:{acquire:"Acquire",release:"Release",destroy:"Destroy",destroyConfirm:"Destroy this pool?"},empty:{breakers:"No breakers yet",checks:"No health-check records yet",pools:"No connection pools yet",noLatest:"No recent checks"},nodeHealth:{inputPlaceholder:"Node ID",query:"Query",node:"Node",status:"Aggregate status",checkCount:"Total checks",latestTitle:"Latest status per metric"},register:{title:"Register federation node",nodeIdLabel:"Node ID",nodeIdPlaceholder:"e.g. node-shanghai-01",failureThresholdLabel:"Failure threshold (default 5)",successThresholdLabel:"Success threshold (default 2)",openTimeoutLabel:"Open timeout (ms) (default 60000)"},check:{title:"Record health check",nodeIdLabel:"Node ID",nodeIdPlaceholder:"Must register the node first",metricLabel:"Metric type",statusLabel:"Health status",metricsLabel:"Metrics JSON (optional, e.g. latencyMs:42)",metricsPlaceholder:"metrics string: e.g. latencyMs=42, cpu=0.4"},pool:{title:"New connection pool",nodeIdLabel:"Node ID",nodeIdPlaceholder:"e.g. node-shanghai-01",minLabel:"Min connections (default 5)",maxLabel:"Max connections (default 50)",idleTimeoutLabel:"Idle timeout (ms) (default 300000)"},state:{closed:"Closed",open:"Open",half_open:"Half-open"},metric:{heartbeat:"Heartbeat",latency:"Latency",success_rate:"Success rate",cpu_usage:"CPU",memory_usage:"Memory"},health:{healthy:"Healthy",degraded:"Degraded",unhealthy:"Unhealthy",unknown:"Unknown"},messages:{loadFailed:"Failed to load data: {err}",nodeIdRequired:"Please enter a node ID",registerFailed:"Registration failed: {err}",registerOk:"Node registered: {id}",checkFailed:"Record failed: {err}",checkOk:"Check recorded: {id}",poolFailed:"Create failed: {err}",poolOk:"Pool created: {id}",removeFailed:"Remove failed: {err}",removeOk:"Node removed",operationFailed:"Operation failed: {err}",operationNoEffect:"Operation had no effect",operationCooldown:"Operation had no effect ({ms}ms remaining)",transitionMsg:"{from} → {to}",resetMsg:"Breaker reset",recordedMsg:"Recorded",destroyMsg:"Pool destroyed",acquireMsg:"Acquired (active {active} · idle {idle})",releaseMsg:"Released (active {active} · idle {idle})",queryFailed:"Query failed: {err}"}},Yf={title:"Smart Recommendations",subtitle:"Interest profile · Topic decay · Content scoring · Feedback learning",refresh:"Refresh",createProfile:"New profile",userBar:{currentUser:"Current user:",selectPlaceholder:"Pick a user profile",applyDecay:"Apply decay",suggest:"Suggest tweaks",topicSuffix:"{count} topics"},stats:{profiles:"User profiles",totalRecs:"Total recs",pending:"Pending",feedbackRate:"Feedback rate",avgScore:"Avg score"},typeCatalogue:"Content types",tabs:{recs:"Feed",profiles:"Profiles",interests:"Interest profile"},filter:{allStatuses:"All statuses",allTypes:"All types"},totals:{rows:"{count} rows",profiles:"{count} profiles"},recColumns:{title:"Title",contentType:"Type",score:"Score",reason:"Reason",status:"Status",feedback:"Feedback",action:"Action"},profileColumns:{userId:"User ID",topicCount:"Topics",decayFactor:"Decay",updateCount:"Updates",lastUpdated:"Last updated",action:"Action"},noTitle:"(no title)",feedbackDropdown:"Feedback ▼",feedbackMenu:{like:"Like",dislike:"Dislike",later:"Later"},rowActions:{view:"View",dismiss:"Dismiss",dismissConfirmTitle:"Dismiss this recommendation?",dismissOk:"Dismiss",details:"Details",switch:"Switch",delete:"Delete",deleteConfirmTitle:"Delete this profile?",deleteOk:"Delete"},empty:{selectUser:"Select a user profile first",filtered:"No recommendations match the filters",noRecsHint:"No recommendations for this user — run `cc recommend generate` to populate from content pool",noProfiles:"No user profiles yet",noInterests:"No interest weights yet for this user",noSuggestions:"No suggestions yet — needs more feedback",noTopics:"No topic weights"},interest:{topicWeights:"Topic weights",feedbackSuggest:"Feedback suggestions",boost:"Boost",lower:"Lower"},topicTagSuffix:"{count} topics",create:{title:"Create user profile",ok:"Create",userIdLabel:"User ID",userIdPlaceholder:"e.g. alice",topicsLabel:"Topic weights",topicsPlaceholder:"Optional JSON, e.g. ai=0.8, vue=0.5",weightsLabel:"Interaction weights",weightsPlaceholder:"Optional JSON, e.g. like=1.0, view=0.3"},details:{title:"Profile details: {userId}",id:"ID",topicCount:"Topic count",decayFactor:"Decay factor",updateCount:"Updates",lastUpdated:"Last updated",topicWeights:"Topic weights",interactionWeights:"Interaction weights"},type:{note:"Note",post:"Post",article:"Article",document:"Document"},status:{pending:"Pending",viewed:"Viewed",dismissed:"Dismissed"},feedbackLabel:{like:"Like",dislike:"Dislike",later:"Later"},messages:{loadProfilesFailed:"Failed to load profiles: {err}",loadUserFailed:"Failed to load user data: {err}",userIdRequired:"Please enter a user ID",topicsJsonInvalid:"Topic-weight JSON is malformed",weightsJsonInvalid:"Interaction-weight JSON is malformed",createFailed:"Create failed: {err}",createOk:"Profile created: {id}",decayFailed:"Decay failed: {err}",decayOkTopics:"Decay applied, {count} topics remaining",decayOk:"Decay applied",suggestNone:"No suggestions yet — needs more feedback",suggestFound:"{count} suggestions found",loadSuggestFailed:"Failed to load suggestions: {err}",deleteFailed:"Delete failed: {err}",deleteOk:"Profile deleted",viewFailed:"Mark failed: {err}",viewOk:"Marked as viewed",feedbackFailed:"Feedback failed: {err}",feedbackOk:"Feedback recorded",dismissFailed:"Dismiss failed: {err}",dismissOk:"Dismissed"}},Kf={title:"Organization",subtitle:"Orgs / Members / Approvals",refresh:"Refresh",tabs:{orgs:"Orgs",members:"Members",approvals:"Approvals"},totals:{rows:"{count} rows"},orgs:{createButton:"Create org",createTitle:"Create organization",createOk:"Create",nameLabel:"Name",namePlaceholder:"Organization name",descriptionLabel:"Description",descriptionPlaceholder:"Organization description (optional)",emptyText:"No orgs yet — click Create org to add one",detailTitle:"Organization detail: {name}",detailLabels:{id:"ID",name:"Name",owner:"Owner",description:"Description",memberCount:"Members",createdAt:"Created at"}},orgColumns:{id:"ID",name:"Name",owner:"Owner",description:"Description",memberCount:"Members"},members:{selectPlaceholder:"Pick an org",inviteButton:"Invite member",emptyMembers:"No members yet",selectFirst:"Pick an organization first",teamsTitle:"Teams",createTeamButton:"Create team",emptyTeams:"No teams yet",inviteTitle:"Invite member",inviteOk:"Invite",userIdLabel:"User ID",userIdPlaceholder:"Enter user ID",nameLabel:"Name",namePlaceholder:"Display name",roleLabel:"Role",roleAdmin:"Admin (admin)",roleMember:"Member (member)",roleViewer:"Viewer (viewer)",createTeamTitle:"Create team",createTeamOk:"Create",teamNameLabel:"Team name",teamNamePlaceholder:"Team name",teamDescLabel:"Description",teamDescPlaceholder:"Team description (optional)",teamLeadLabel:"Lead",teamLeadPlaceholder:"Lead user ID (optional)"},memberColumns:{userId:"User ID",name:"Name",role:"Role",joinedAt:"Joined"},teamColumns:{name:"Team",description:"Description",lead:"Lead"},approvals:{submitButton:"Submit approval",submitTitle:"Submit approval",submitOk:"Submit",orgLabel:"Org",orgPlaceholder:"Pick an org",titleLabel:"Title",titlePlaceholder:"Approval title",typeLabel:"Type",typePlaceholder:"Approval type",descLabel:"Description",descPlaceholder:"Approval description (optional)",approve:"Approve",reject:"Reject",emptyText:"No approvals yet"},approvalColumns:{id:"ID",title:"Title",type:"Type",requester:"Requester",status:"Status",actions:"Actions"},messages:{loadOrgsFailed:"Failed to load orgs: {err}",orgNameRequired:"Enter an organization name",orgCreateFailed:"Create failed: {err}",orgCreateOk:"Organization created",loadDetailFailed:"Failed to load detail: {err}",loadMembersFailed:"Failed to load members: {err}",loadTeamsFailed:"Failed to load teams: {err}",userIdRequired:"Enter a user ID",inviteFailed:"Invite failed: {err}",inviteOk:"Invitation sent",teamNameRequired:"Enter a team name",teamCreateFailed:"Create failed: {err}",teamCreateOk:"Team created",loadApprovalsFailed:"Failed to load approvals: {err}",approveFailed:"Approve failed: {err}",approveOk:"Approved",rejectFailed:"Reject failed: {err}",rejectOk:"Rejected",orgRequired:"Pick an organization",approvalTitleRequired:"Enter an approval title",submitFailed:"Submit failed: {err}",submitOk:"Approval submitted"}},Xf={title:"Inference Network",subtitle:"Decentralized inference nodes · Task scheduling · Privacy modes",refresh:"Refresh",actionDropdown:"Action ▼",actions:{register:"Register node",submit:"Submit inference task"},stats:{totalNodes:"Nodes",onlineNodes:"Online",totalTasks:"Tasks",queued:"Queued",avgDuration:"Avg duration"},breakdown:{title:"Node status breakdown",online:"Online {count}",busy:"Busy {count}",offline:"Offline {count}",extra:"Complete: {complete} · Failed: {failed}"},tabs:{nodes:"Nodes",tasks:"Tasks"},filter:{all:"All",allStatuses:"All statuses",allModes:"All modes"},totals:{rows:"{count} rows"},nodeColumns:{nodeId:"Node ID",capabilities:"Capabilities",gpu:"GPU",status:"Status",taskCount:"Tasks",lastHeartbeat:"Last heartbeat",action:"Action"},taskColumns:{model:"Model",privacyMode:"Privacy",priority:"Priority",assignedNode:"Node",status:"Status",duration:"Duration",createdAt:"Submitted",action:"Action"},rowActions:{heartbeat:"Heartbeat",statusDropdown:"Status ▼",unregister:"Unregister",unregisterConfirm:"Unregister this node?",unregisterOk:"Unregister",complete:"Complete",fail:"Fail",failConfirm:"Mark task as failed?",failOk:"Confirm"},empty:{filteredNodes:"No nodes match the filter",noNodes:"No nodes yet — Action → Register node to add the first",filteredTasks:"No tasks match the filter",noTasks:"No tasks yet — Action → Submit inference task to create the first"},register:{title:"Register inference node",ok:"Register",nodeIdLabel:"Node ID",nodeIdPlaceholder:"e.g. gpu-host-1",endpointLabel:"Endpoint URL",endpointPlaceholder:"https://node.example.com (optional)",capabilitiesLabel:"Capabilities",capabilitiesPlaceholder:"Comma-separated, e.g. llama2,mistral,gpt-4",gpuLabel:"GPU memory (MB)"},submit:{title:"Submit inference task",ok:"Submit",modelLabel:"Model",modelPlaceholder:"e.g. llama2-7b",inputLabel:"Input",priorityLabel:"Priority",modeLabel:"Privacy mode"},nodeStatus:{online:"Online",offline:"Offline",busy:"Busy",degraded:"Degraded"},taskStatus:{queued:"Queued",dispatched:"Dispatched",running:"Running",complete:"Complete",failed:"Failed"},privacy:{standard:"Standard",encrypted:"Encrypted",federated:"Federated"},messages:{loadFailed:"Failed to load inference data: {err}",nodeIdRequired:"Enter a node ID",registerFailed:"Register failed: {err}",registerOk:"Node registered",modelRequired:"Enter a model name",submitFailed:"Submit failed: {err}",submitOk:"Task submitted",heartbeatFailed:"Heartbeat failed: {err}",heartbeatOk:"Heartbeat updated",statusFailed:"Status transition failed: {err}",statusOk:"Node status updated to {status}",unregisterFailed:"Unregister failed: {err}",unregisterOk:"Node unregistered",completeFailed:"Complete failed: {err}",completeOk:"Task completed",failFailed:"Mark failed: {err}",failOk:"Marked as failed"}},Jf={title:"Wallet",subtitle:"Assets / Transfers / History",refresh:"Refresh",stats:{walletCount:"Wallets",assetCount:"Assets",defaultWallet:"Default wallet",defaultUnset:"Not set",totalTx:"Transactions"},tabs:{wallets:"Wallets",assets:"Assets",transfer:"Transfer"},totals:{rows:"{count} rows"},wallets:{refreshList:"Refresh list",createButton:"Create wallet",createTitle:"Create wallet",createOk:"Create",nameLabel:"Wallet name",namePlaceholder:"Wallet name",emptyText:"No wallets yet — click Create wallet to add",default:"Default",currentDefault:"Current default",setDefault:"Set default"},walletColumns:{address:"Address",name:"Name",isDefault:"Default",balance:"Balance",action:"Action"},assets:{refreshAssets:"Refresh assets",registerButton:"Register asset",registerTitle:"Register asset",registerOk:"Register",nameLabel:"Asset name",namePlaceholder:"Asset name",typeLabel:"Asset type",typePlaceholder:"Pick a type",descLabel:"Description",descPlaceholder:"Asset description (optional)",emptyText:"No assets yet — click Register asset to add"},assetColumns:{name:"Name",type:"Type",description:"Description",address:"Address"},transfer:{formCardTitle:"New transfer",assetIdLabel:"Asset ID",assetIdPlaceholder:"Asset ID",toAddressLabel:"Recipient",toAddressPlaceholder:"Recipient address",amountLabel:"Amount",amountPlaceholder:"Amount",submitButton:"Confirm transfer",successTag:"Success",failureTag:"Failed",historyCardTitle:"Transaction history",historyEmpty:"No transactions yet",confirmTitle:"Confirm transfer",confirmIntro:"Please confirm the transfer:",confirmOk:"Confirm"},historyColumns:{time:"Time",type:"Type",amount:"Amount",to:"To"},messages:{loadWalletsFailed:"Failed to load wallets: {err}",walletNameRequired:"Enter a wallet name",walletCreateFailed:"Create failed: {err}",walletCreateOk:"Wallet created",setDefaultFailed:"Set default failed: {err}",setDefaultOk:"Set as default wallet",loadAssetsFailed:"Failed to load assets: {err}",assetNameRequired:"Enter an asset name",assetRegisterFailed:"Register failed: {err}",assetRegisterOk:"Asset registered",transferIncomplete:"Fill in all transfer fields",transferOk:"Transfer succeeded",transferDefault:"Transfer submitted",transferFailed:"Transfer failed: {err}",loadHistoryFailed:"Failed to load history: {err}"}},Qf={title:"Community",subtitle:"Contacts · Friends · Posts (decentralized social)",refresh:"Refresh",publishButton:"Publish post",addContactButton:"Add contact",stats:{contacts:"Contacts",friends:"Friends",posts:"Posts",messages:"Messages",pendingRequests:"Pending requests"},tabs:{posts:"Posts",friends:"Friends",contacts:"Contacts"},totals:{rows:"{count} rows"},posts:{emptyText:"No posts yet — click Publish post to create the first one",publishTitle:"Publish post",publishOk:"Publish",authorLabel:"Author",authorPlaceholder:"Optional, defaults to cli-user",contentLabel:"Content",contentPlaceholder:"Say something..."},friends:{removeConfirm:"Remove this friend?",removeOk:"Remove",remove:"Remove",emptyText:"No friends yet. Send a friend request to a contact from the Contacts tab."},friendColumns:{contact:"Contact",status:"Status",createdAt:"Since",action:"Action"},contacts:{addFriend:"Add friend",alreadyFriend:"Already friends",deleteConfirm:"Delete this contact?",deleteOk:"Delete",delete:"Delete",emptyText:"No contacts yet — click Add contact to create one",addTitle:"Add contact",addOk:"Add",nameLabel:"Name",namePlaceholder:"Display name",didLabel:"DID",didPlaceholder:"did:key:... (optional)",emailLabel:"Email",emailPlaceholder:"Optional",notesLabel:"Notes"},contactColumns:{name:"Name",did:"DID",email:"Email",createdAt:"Created",action:"Action"},status:{accepted:"Accepted",pending:"Pending",blocked:"Blocked"},messages:{loadFailed:"Failed to load community data: {err}",contentRequired:"Enter post content",publishFailed:"Publish failed: {err}",publishOk:"Post published",nameRequired:"Enter a contact name",addFailed:"Add failed: {err}",addOk:"Contact added",deleteFailed:"Delete failed: {err}",deleteOk:"Contact deleted",friendRequestFailed:"Friend request failed: {err}",friendRequestOk:"Friend request sent",removeFailed:"Remove failed: {err}",removeOk:"Friend removed",likeFailed:"Like failed: {err}"}},Zf={title:"Authentication",subtitle:"WebAuthn / SSO / Two-factor",refresh:"Refresh",tabs:{webauthn:"WebAuthn",sso:"SSO config",tfa:"Two-factor"},totals:{rows:"{count} rows"},credentials:{registerButton:"Register credential",registerTitle:"Register WebAuthn credential",registerOk:"Register",nameLabel:"Credential name",namePlaceholder:"e.g. YubiKey-5, TouchID",deleteConfirm:"Delete this credential?",deleteOk:"OK",delete:"Delete",emptyText:"No WebAuthn credentials yet — click Register credential to add"},credentialColumns:{id:"ID",name:"Name",type:"Type",createdAt:"Created",lastUsed:"Last used",actions:"Actions"},sso:{currentTitle:"Current SSO config",providerLabel:"Provider",clientIdLabel:"Client ID",redirectUrlLabel:"Redirect URL",statusLabel:"Status",configureButton:"Configure SSO",modalTitle:"Configure SSO",modalOk:"Save",providerPlaceholder:"Pick an SSO provider",clientIdPlaceholder:"Client ID",clientSecretLabel:"Client Secret",clientSecretPlaceholder:"Client Secret",issuerLabel:"Issuer URL",issuerPlaceholder:"https://sso.example.com",notConfigured:"Not configured",enabled:"Enabled",disabled:"Disabled"},tfa:{totpCardTitle:"TOTP two-factor",statusPrefix:"Status:",enabled:"Enabled",disabled:"Disabled",enableButton:"Enable TOTP",disableConfirm:"Disable two-factor authentication? This lowers account security.",disableOk:"Confirm disable",disableButton:"Disable",recoveryCardTitle:"Recovery codes",recoveryHint:"Recovery codes let you sign in if you lose your TOTP device. Keep them safe.",generateButton:"Generate recovery codes",saveAlert:"Save these codes immediately — once closed they cannot be shown again.",totpResultPrefix:"TOTP Secret: {secret}",totpResultUrl:"OTP Auth URL: {url}"},messages:{loadFailed:"Failed to load WebAuthn credentials: {err}",credNameRequired:"Enter a credential name",registerFailed:"Register failed: {err}",registerOk:"WebAuthn credential registered",deleteFailed:"Delete failed: {err}",deleteOk:"Credential deleted",providerRequired:"Pick an SSO provider",clientIdRequired:"Enter a Client ID",ssoSaveFailed:"Save failed: {err}",ssoSaveOk:"SSO config saved",totpEnableFailed:"Enable failed: {err}",totpEnableOk:"TOTP enabled",totpDisableFailed:"Disable failed: {err}",totpDisableOk:"Two-factor disabled",codesFailed:"Failed to generate recovery codes: {err}",codesOk:"Recovery codes generated",codesUnable:"Could not generate recovery codes"}},eg={title:"Merkle Tree Certificates (MTC)",subtitle:"Audit dual-track state · Marketplace publisher history · Offline verify tool",refresh:"Refresh status",tabs:{status:"Audit dual-track",publisher:"Marketplace publisher",verify:"Envelope verify"},status:{enabledLabel:"Status",enabled:"Enabled",disabled:"Disabled",intervalLabel:"Batch interval",stagingLabel:"Pending batch close",stagingMalformed:"{count} malformed",totalBatches:"Cumulative batches",configCard:"Config",lastBatchSize:"size={size} · {time}",noBatches:"No batches closed yet",loadFailMessage:"Failed to load status",loadFailDescription:"`cc audit mtc status --json` returned no valid output. Ensure `cc serve` is running and the current account can read the audit-mtc directory.",notEnabledMessage:"audit-mtc not enabled · ready",notEnabledDescription:"Legal blocker was lifted on 2026-05-01. Run `cc audit mtc enable --interval [60|3600] --namespace [ns] --issuer [issuer]` to enable dual-track signing for this tenant."},publisher:{stateFileLabel:"State file path",stateFilePlaceholder:"e.g. ~/.chainlesschain/marketplace-state.json",queryButton:"Query",missingMessage:"State file does not exist",missingDescription:"{path} has no publish records yet. Run `cc mtc publish-skills` once and history will show up here.",lastSeq:"Last seq",historyEntries:"History entries",lastPublished:"Last published"},historyColumns:{seq:"Seq",namespace:"Namespace",treeSize:"Tree size",treeHeadId:"Tree head",publishedAt:"Published"},verify:{infoMessage:"Read-only verify · runs through local cc serve",infoDescription:"This tool calls the `cc mtc verify` subcommand. Envelope + landmark files must already be on the local disk — the browser only forwards the paths to cc serve, not the contents.",envelopeLabel:"Envelope file path",envelopePlaceholder:"e.g. ./mtc-out/envelope-000000.json",landmarkLabel:"Landmark file path",landmarkPlaceholder:"e.g. ./mtc-out/landmark.json",runButton:"Run cc mtc verify",passTitle:"✓ Verified",failTitle:"✗ Failed",resultLabel:"Result",errorCodeLabel:"Error code",errorCodeNone:"(none)",recoverable:"Recoverable",subjectLabel:"Subject",kindLabel:"Kind",treeSizeLabel:"Tree size",issuerLabel:"Issuer",rawHeader:"Raw JSON output"},messages:{loadStatusFailed:"Failed to load status: {err}",stateFileRequired:"Enter a state file path",loadPublishFailed:"Failed to load publisher status: {err}",verifyPathsRequired:"Fill in envelope and landmark paths",verifyNoJson:"Verify command returned no JSON. Check the paths.",verifyFailed:"Verify failed: {err}"}},tg={title:"Token Usage",subtitle:"LLM call tracking · Cost accounting · Response cache",refresh:"Refresh",noDb:{message:"Project-scoped database required",description:"`cc tokens ...` commands are only available inside a chainlesschain project. Run `cc init` first or start `cc serve` from an initialized directory."},periodLabel:"Range:",period:{today:"Today",week:"Last 7 days",month:"Last 30 days",all:"All time"},stats:{calls:"Calls",callsToday:"Today {count}",totalTokens:"Total tokens",tokensInOut:"{inputs} in / {outputs} out",totalCost:"Total cost",costToday:"Today {amount}",avgResponse:"Avg response",cacheHits:"Cache hits",cacheTokensSaved:"Saved {count} tokens"},tabs:{breakdown:"By model",recent:"Recent calls",cache:"Response cache"},totals:{models:"{count} models",rows:"{count} rows"},breakdownColumns:{provider:"Provider",model:"Model",calls:"Calls",totalTokens:"Tokens",costUsd:"Cost",avgCost:"Avg/call"},breakdownDetails:{tokensInOut:"{inputs} in / {outputs} out"},recentColumns:{createdAt:"Time",provider:"Provider",model:"Model",tokens:"Tokens",costUsd:"Cost",responseTimeMs:"Response",endpoint:"Endpoint"},empty:{breakdown:"No usage data yet",recent:"No call records yet"},cache:{totalEntries:"Cache entries",totalHits:"Hits",totalTokensSaved:"Tokens saved",expiredEntries:"Expired entries",maintenanceTitle:"Cache maintenance",cleanupConfirm:"Remove all expired cache entries?",cleanupOk:"Cleanup",cleanupButton:"Clean up expired entries ({count})",clearConfirm:"Clear the entire response cache? This cannot be undone.",clearOk:"Clear",clearButton:"Clear all cache"},v2:{cardTitle:"V2 Budget governance",budgetsTitle:"Budgets V2",recordsTitle:"Records V2"},budgetStatus:{planning:"Planning",active:"Active",suspended:"Suspended",archived:"Archived"},recordStatus:{pending:"Pending",recorded:"Recorded",billed:"Billed",rejected:"Rejected",refunded:"Refunded"},messages:{loadFailed:"Failed to load usage data: {err}",loadShowFailed:"Failed to load usage: {err}",needInit:"Run `cc init` to initialize the project first",cleanupFailed:"Cleanup failed: {err}",cleanupOk:"Expired entries cleaned",clearFailed:"Clear failed: {err}",clearOk:"Cache cleared"}},ag={title:"Backup & Sync",subtitle:"Backup management / Data sync / IPFS",refresh:"Refresh",tabs:{backup:"Backups",sync:"Sync",ipfs:"IPFS"},backup:{cardTitle:"Backup operations",exportButton:"Export list",createButton:"Create backup",emptyText:"No backups yet",lastResultLabel:"Last operation result",createDefaultMessage:"Backup created",restoreTitle:"Confirm restore",restoreOk:"Confirm restore",restoreIntro:"Restore this backup? Current data will be overwritten.",backupIdPrefix:"Backup ID:",createdAtPrefix:"Created at:",restoreDefaultMessage:"Restore complete"},backupColumns:{id:"Backup ID",size:"Size",createdAt:"Created",action:"Action",restore:"Restore"},sync:{statusLabel:"Sync status",pendingLabel:"Pending changes",lastSyncLabel:"Last sync",noLastSync:"Never",synced:"Synced",notSynced:"Out of sync",unknown:"Unknown",pushButton:"Push",pullButton:"Pull",outputLabel:"Operation result",conflictsTitle:"Conflicts",conflictDefault:"Conflict",pushDefaultMessage:"Push complete",pullDefaultMessage:"Pull complete"},conflictColumns:{path:"File path",type:"Conflict type"},ipfs:{statusCardTitle:"IPFS status",online:"Online",offline:"Offline",nodeStatusLabel:"Node status",connected:"Connected",disconnected:"Disconnected",pinnedLabel:"Pinned files",peerIdLabel:"Peer ID",pinListTitle:"Pinned files",pinFileButton:"Pin file",pinEmptyText:"No pinned files yet",unpinConfirm:"Unpin this file?",unpinOk:"OK",unpinAction:"Unpin",pinModalTitle:"Pin file to IPFS",pinModalOk:"Pin",pinModalIntro:"Enter the path of the file to pin",pinModalPlaceholder:"File path, e.g. /path/to/file.txt",pinDefaultSuccess:"Pinned"},pinColumns:{cid:"CID",name:"Name",size:"Size",pinnedAt:"Pinned at",action:"Action"},messages:{loadBackupsFailed:"Failed to load backups: {err}",createBackupFailed:"Backup failed: {err}",restoreFailed:"Restore failed: {err}",loadSyncFailed:"Failed to load sync status: {err}",pushFailed:"Push failed: {err}",pullFailed:"Pull failed: {err}",loadIpfsFailed:"Failed to load IPFS status: {err}",loadPinsFailed:"Failed to load pin list: {err}",pinFailed:"Pin failed: {err}",unpinFailed:"Unpin failed: {err}",exportOk:"Exported {count} backup entries to {path}",exportOkDefault:"Exported",exportFailed:"Export failed: {err}"}},ng={title:"MCP Tools",subtitle:"Model Context Protocol — mounted tools and servers",refresh:"Refresh",stats:{servers:"Servers",tools:"Tools",running:"Run status",ready:"Ready"},servers:{title:"Configured servers",emptyHintPrefix:"No MCP servers yet — run",emptyHintCommand:"chainlesschain mcp add",emptyHintSuffix:"to add one"},tools:{title:"Available tools",searchPlaceholder:"Search tools...",runAction:"Run",desktopOnly:"Desktop mode only",emptyText:"No tools available"},toolColumns:{name:"Tool",server:"Server",description:"Description",action:"Action"},resources:{title:"Available resources",searchPlaceholder:"Search resources...",emptyHint:"No MCP resources right now (some servers do not expose resources — that is normal)",emptyTable:"No matching resources",readAction:"Read"},resourceColumns:{uri:"URI",server:"Server",mime:"MIME",action:"Action"},run:{okIdle:"Run",okRunning:"Running...",cancel:"Close",fallbackTitle:"Run MCP tool",modalTitle:"Run {server}.{tool}",serverLabel:"Server / tool",descriptionLabel:"Description",schemaLabel:"Input schema",paramsLabel:"Params",modeForm:"Form",modeJson:"JSON",jsonParseFailed:"JSON parse failed: {err}",paramsMustBeObject:"Params must be a JSON object",errorTitle:"Run failed",resultLabel:"Result"},read:{fallbackTitle:"Read MCP resource",modalTitle:"Read {server}",serverLabel:"Server / URI",descriptionLabel:"Description",spinnerTip:"Reading...",errorTitle:"Read failed",contentsLabel:"Contents ({count} segments)",binaryNote:"[binary blob, {count} chars of base64 — not rendered in this demo]",emptyContent:"[empty content]"}},rg={title:"Audit Log",subtitle:"Security event tracking · Risk assessment · Compliance export",refresh:"Refresh",exportJson:"Export JSON",noDb:{message:"Project-scoped database required",description:"`cc audit ...` is only available inside a chainlesschain project. Run `cc init` first or start `cc serve` from an initialized directory."},stats:{total:"Total events",failures:"Failures",highRisk:"High risk",critical:"Critical events",successRate:"Success rate"},typeCatalogueTitle:"Event types",tabs:{events:"Event stream",breakdown:"Breakdown"},filter:{searchPlaceholder:"Search operation / actor / target...",allTypes:"All types",allRisks:"All risks",failuresOnly:"Failures only"},totals:{rows:"{count} rows"},logColumns:{createdAt:"Time",eventType:"Type",operation:"Operation",actor:"Actor",target:"Target",riskLevel:"Risk",success:"Status",mtc:"MTC",action:"Action"},rowAction:{details:"Details"},empty:{filtered:"No events match the filters",noEvents:"No audit events yet"},breakdown:{byType:"By event type",byRisk:"By risk level"},details:{title:"Event details: {id}",id:"ID",eventType:"Event type",riskLevel:"Risk level",operation:"Operation",status:"Status",success:"Success",failure:"Failed",time:"Time",actor:"Actor",target:"Target",ip:"IP",userAgent:"User-Agent",errorMessage:"Error",details:"Details"},type:{auth:"Auth",permission:"Permission",data:"Data",system:"System",file:"File",did:"DID",crypto:"Crypto",api:"API"},risk:{low:"Low",medium:"Medium",high:"High",critical:"Critical"},mtc:{noneTooltip:"This event did not go through MTC dual-track (audit-mtc not enabled for this tenant)",signedNotChecked:"Signed · not checked",stagingLabel:"Pending batch",batchedLabel:"Batched #{batchId}",unknownLabel:"Unknown",tooltipBase:"event_id: {id}",tooltipNotChecked:"{base} — click to query reconcile status",tooltipStaging:`{base}
65
+ Still in staging, waiting for next reconcile`,tooltipBatched:`{base}
66
+ Landed in batch #{batchId}
67
+ tree_head_id: {treeHead}`,noJson:"reconcile-check returned no JSON",checkFailed:"reconcile-check failed: {err}"},messages:{loadFailed:"Failed to load audit log: {err}",needInit:"Run `cc init` to initialize the project first",exportFailed:"Export failed: {err}",exportOk:"Exported to {path}",exportOkDefault:"Exported"}},og={title:"RAG Search",subtitle:"BM25 · Vector retrieval · Hybrid RRF fusion",refreshIndex:"Refresh index",noDb:{message:"Project-scoped database required",description:"`cc search` is only available inside a chainlesschain project. Run `cc init` first or start `cc serve` from an initialized directory."},form:{queryPlaceholder:"Enter a query, e.g. vue debounce component, AES encryption...",topKPlaceholder:"topK",submit:"Search"},recent:{label:"Recent:",clear:"Clear"},stats:{indexedNotes:"Indexed notes",categories:"Categories",tags:"Tags",results:"Results",topScore:"Top score"},tabs:{results:"Results",index:"Index browser"},results:{promptEmpty:"Enter a query to start searching",noMatch:'No notes match "{query}"',viewFull:"View full",noTitle:"(no title)"},index:{allCategories:"All categories",tagFilterPlaceholder:"Filter by tag...",topTagsLabel:"Top tags:",rowAction:{view:"View",similar:"Find similar"}},totals:{rows:"{count} rows"},noteColumns:{title:"Title",category:"Category",tags:"Tags",createdAt:"Created",action:"Action"},empty:{filtered:"No notes match the filters",noNotes:"No notes yet"},mode:{bm25:"BM25",vector:"Vector",hybrid:"Hybrid"},note:{title:"Note details: {title}",id:"ID",category:"Category",tags:"Tags",createdAt:"Created",updatedAt:"Updated",content:"Content",emptyContent:"Note content is empty"},messages:{loadIndexFailed:"Failed to load index: {err}",queryRequired:"Enter a query",searchFailed:"Search failed: {err}",needInit:"Run `cc init` to initialize the project first",noteLoadFailed:"Failed to load note",loadFailed:"Load failed: {err}"}},ig={title:"Template Hub",subtitle:"Project templates / BI templates / Prompt templates",tabs:{project:"Project",bi:"BI",prompts:"Prompts"},project:{initButton:"Initialize",initSuccessAlert:"Initialization succeeded",initFailureAlert:"Initialization failed",confirmTitle:"Confirm initialization",confirmOk:"Confirm",confirmIntro:"Initialize the project with template",confirmIntroSuffix:"?",confirmHint:"This creates the project structure in the current working directory.",items:{"code-project":"Code project — code review, refactoring, unit tests","data-science":"Data science — ML/data analysis, visualization",devops:"DevOps — infrastructure, deployment, monitoring","medical-triage":"Medical triage — symptom analysis, triage advice","agriculture-expert":"Agriculture expert — crop management, pest control","general-assistant":"General assistant — daily Q&A, task management","ai-media-creator":"AI media creator — image/text generation, video scripts","ai-doc-creator":"AI doc creator — document generation, format conversion",empty:"Empty template — minimal project structure"}},bi:{loadingHint:"Loading BI templates...",emptyText:"No BI templates available",noDescription:"No description",createButton:"Create dashboard",createSuccessAlert:"Dashboard created",createFailureAlert:"Creation failed"},prompts:{newButton:"New template",exportAll:"Export all",import:"Import",emptyText:"No Prompt templates yet — click the buttons above to add one",useButton:"Use",copyButton:"Copy",deleteButton:"Delete",modalTitle:"New Prompt template",modalOk:"Save",nameLabel:"Template name",namePlaceholder:"Template name",categoryLabel:"Category",contentLabel:"Template content",contentPlaceholder:"Enter the Prompt template content",filePickerTitle:"Select prompt-templates JSON"},messages:{initFailed:"Initialization failed: {err}",createFailed:"Creation failed: {err}",promptSaved:"Template saved",promptDeleted:"Template deleted",exportOk:"Exported {count} entries to {path}",exportOkDefault:"Exported",exportFailed:"Export failed: {err}",fileTooLarge:"File too large",jsonParseFailed:"JSON parse failed: {err}",fileShapeUnknown:"Unrecognized file shape (expected {expected} or an array)",importedCount:"Imported {count} entries",importEmpty:"No valid prompt entries in the file",importFailed:"Import failed: {err}",copiedClipboard:"Copied to clipboard",copyFailed:"Copy failed"}},lg={title:"Security Center",subtitle:"DID identity / Encryption / Audit",refresh:"Refresh",tabs:{did:"DID identity",encrypt:"File encryption",audit:"Audit log"},totals:{rows:"{count} rows"},did:{createButton:"Create identity",signButton:"Sign message",default:"Default",available:"Available",emptyText:"No DID identities yet — click Create identity to add one",signTitle:"DID sign",signOk:"Sign",messageLabel:"Message",messagePlaceholder:"Enter the message to sign",signResultLabel:"Signature:"},didColumns:{did:"DID",method:"Method",created:"Created",status:"Status"},encrypt:{encryptCardTitle:"Encrypt file",decryptCardTitle:"Decrypt file",pathLabel:"File path",encryptPlaceholder:"File path, e.g. /path/to/file.txt",decryptPlaceholder:"Encrypted file path, e.g. /path/to/file.txt.enc",encryptButton:"Encrypt",decryptButton:"Decrypt",successTag:"Success",failureTag:"Failed",encryptDefault:"Encryption complete",decryptDefault:"Decryption complete"},audit:{emptyText:"No audit logs yet",totalEvents:"Total events",statusLabel:"Status",ready:"Ready"},auditColumns:{time:"Time",event:"Event",user:"User",level:"Level",detail:"Detail"},messages:{loadDidsFailed:"Failed to load DID list: {err}",didCreateFailed:"Create failed: {err}",didCreateOk:"DID identity created",messageRequired:"Enter a message",signFailed:"Sign failed: {err}",signOk:"Signed",encryptFailed:"Encrypt failed: {err}",encryptOk:"File encrypted",decryptFailed:"Decrypt failed: {err}",decryptOk:"File decrypted",loadAuditFailed:"Failed to load audit log: {err}"}},sg={title:"Scheduled Tasks",subtitle:"Cron task scheduler management",newTask:"New task",refresh:"Refresh",stats:{all:"All tasks",active:"Active",paused:"Paused",presets:"Presets"},presetsCardTitle:"Quick presets",presets:{every5m:"Every 5 min",every15m:"Every 15 min",everyHour:"Every hour",every9am:"Daily 9am",every6pm:"Daily 6pm",weeklyMon9:"Mon 9am",monthly1:"1st of month"},running:"Running",paused:"Paused",actions:{run:"Run",pause:"Pause",enable:"Enable",delete:"Delete",deleteConfirm:"Delete this task?"},emptyText:"No scheduled tasks yet",modal:{title:"New scheduled task",nameLabel:"Task name",namePlaceholder:"Task name",cronLabel:"Cron expression",cronPlaceholder:"e.g. 0 9 * * * (daily 9am)",cronHint:"Format: min hour day month weekday",payloadLabel:"Task content",payloadPlaceholder:"AI task description to execute...",descriptionLabel:"Description",descriptionPlaceholder:"Optional description",enabledLabel:"Enable now"},columns:{name:"Task name",cron:"Cron",status:"Status",actions:"Action"},messages:{nameAndCronRequired:"Enter task name and Cron expression",createOk:"Task created",createFailed:"Create failed: {err}",runOk:"Task {name} triggered",runFailed:"Trigger failed: {err}",toggleEnabled:"Task enabled",togglePaused:"Task paused",toggleFailed:"Operation failed",deleteOk:"Task deleted",deleteFailed:"Delete failed"}},cg={title:"Usage Analytics",subtitle:"Token usage / Cost / Cache",refresh:"Refresh",period:{today:"Today",week:"This week",month:"This month",all:"All time"},summary:{totalCalls:"Total calls",callsSuffix:"calls",totalTokens:"Total tokens",totalCost:"Total cost",avgResponseTime:"Avg response time"},totals:{rows:"{count} rows"},providerCardTitle:"Provider breakdown",providerEmpty:"No call records yet",recentCardTitle:"Recent calls",recentEmpty:"No call records yet",sessionCardTitle:"Session Token Usage",sessionStats:{totalCalls:"Session calls",inputTokens:"Input Tokens",outputTokens:"Output Tokens",totalTokens:"Total Tokens"},sessionEmpty:"No session usage yet — refresh after running cc chat",cacheCardTitle:"Cache status",cacheActions:{cleanup:"Cleanup expired",clear:"Clear cache"},cacheStats:{entries:"Cache entries",hits:"Hits",tokensSaved:"Tokens saved",expired:"Expired"},breakdownColumns:{calls:"Calls",inputTokens:"Input Tokens",outputTokens:"Output Tokens",totalTokens:"Total Tokens",cost:"Cost (USD)",avgResponseTime:"Avg response"},recentColumns:{timestamp:"Time",input:"Input",output:"Output",cost:"Cost",responseTime:"Response time"},sessionUsageColumns:{calls:"Calls"},messages:{cacheClearOk:"Cache cleared",cacheClearFailed:"Clear cache failed: {err}",cacheCleanupOk:"Expired cache cleaned",cacheCleanupFailed:"Cleanup expired failed: {err}"}},dg={title:"Speech Recognition",subtitle:"Engine selection / Web Speech / Whisper API / Whisper Local",refresh:"Refresh",alert:{message:"Some settings remain on the desktop app",description:"Advanced storage / audio / knowledge-base / performance options still live in the desktop SystemSettings page (low-traffic, not migrated). This page covers engine selection plus the core config for each of the three engines."},engineCardTitle:"Recognition engine",engineLabel:"Default engine",engineOptions:{webspeech:"Web Speech API (browser built-in)","whisper-api":"Whisper API (OpenAI cloud)","whisper-local":"Whisper Local (self-hosted)"},engineHint:{webspeech:"✓ Free, zero config; lower accuracy","whisper-api":"⚠ Requires OpenAI API key, billed by usage; high accuracy","whisper-local":"✓ Free, requires local Whisper service; high accuracy"},webSpeech:{cardTitle:"Web Speech API config",langLabel:"Language",langOptions:{"zh-CN":"Chinese (Simplified)","zh-TW":"Chinese (Traditional)","en-US":"English (US)","en-GB":"English (UK)","ja-JP":"Japanese","ko-KR":"Korean"}},whisperAPI:{cardTitle:"Whisper API config",apiKeyLabel:"API Key",baseUrlLabel:"Base URL",modelLabel:"Model",languageLabel:"Language code",timeoutLabel:"Timeout (ms)"},whisperLocal:{cardTitle:"Whisper Local config",serverUrlLabel:"Server URL",modelSizeLabel:"Model size",deviceLabel:"Device",timeoutLabel:"Timeout (ms)"},buttons:{reset:"Reset",save:"Save config"},dirtyHint:"Unsaved changes",messages:{loadFailed:"Failed to load config: {err}",noChanges:"No changes to save",saveItemFailed:"Save speech.{key} failed: {err}",saveOk:"Saved ({count} items)",savePartial:"Partial save: {ok} succeeded / {fail} failed"}},ug={title:"Project Management",subtitle:"Initialize / Status / Diagnostics",refresh:"Refresh",stats:{system:"System status",running:"Running",notRunning:"Stopped",editionPrefix:"Edition: {edition}",llmProvider:"LLM provider",notConfigured:"Not configured",init:"Initialization",done:"Complete",notDone:"Pending",config:"Project config",loaded:"Loaded",notLoaded:"Not loaded"},configCardTitle:"Project config",initCardTitle:"Project initialization",templateCount:"{count} templates",selected:"Selected",templates:{"code-project":"Code project — code review, refactoring, unit-test generation","medical-triage":"Medical triage — symptom analysis, triage advice, record management","agriculture-expert":"Agriculture expert — crop management, pest identification, advisory","general-assistant":"General assistant — daily Q&A, doc handling, task management","ai-media-creator":"AI media creator — image/text generation, video scripts, content editing","ai-doc-creator":"AI doc creator — document generation, format conversion, doc editing"},actions:{initInFolder:"Initialize in selected folder",initCwd:"Initialize (current dir)",pickFolder:"Pick folder...",clear:"Clear",templatePrefix:"Template: {name}"},folder:{alreadyProject:"Already a project",pendingInit:"Pending init",alreadyMessage:"This folder is already a ChainlessChain project",alreadyDescription:"Detected .chainlesschain/config.json. No need to re-initialize — restart cc ui with this folder as the working directory to use the existing config.",pickerTitle:"Select project folder"},initResult:{success:"Initialization succeeded",failure:"Initialization failed"},doctor:{cardTitle:"Environment diagnostics",runButton:"Run diagnostics",runningHint:"Diagnosing environment...",emptyHint:"Click Run diagnostics to check environment status"},messages:{initFailed:"Initialization failed: {err}",alreadyProjectInfo:"This folder is already a project — no need to re-initialize",browserUnsupported:"Browser mode does not support folder picking — use this in the desktop shell",pickFolderFailed:"Pick folder failed: {err}",doctorFailed:"Diagnostics failed: {err}"}},mg={title:"Video Editing",subtitle:"Long-form footage + music → rhythmic montage (CutClaw style)",refreshAssets:"Refresh assets",library:{title:"Asset library",empty:"No deconstructed assets yet",emptyHint:"Run deconstruct first"},workspace:{title:"Editing workspace",videoLabel:"Video file",videoPlaceholder:"/path/to/video.mp4",audioLabel:"Music file",audioPlaceholder:"/path/to/bgm.mp3 (optional)",srtLabel:"Subtitle file",srtPlaceholder:"/path/to/subtitle.srt (optional, skip ASR)",instructionLabel:"Editing prompt",instructionPlaceholder:"Rhythmic character montage...",fpsLabel:"Sample FPS",characterLabel:"Main character",outputLabel:"Output path",outputPlaceholder:"./output.mp4",actions:{fullPipeline:"One-click edit",deconstruct:"Deconstruct only",plan:"Generate plan",cancel:"Cancel"}},progress:{title:"Progress",waiting:"Waiting to start..."},shotPlan:{title:"Shot timeline",summary:"{sections} sections / {shots} shots"},events:{title:"Event log"},preview:{title:"Final preview",copyButton:"Copy path"},messages:{completed:"Done",failed:"Failed",copied:"Copied"}},pg={title:"P2P Network",subtitle:"Device management and data sync",refresh:"Refresh",peers:{cardTitle:"P2P devices",pairButton:"Pair device",sendButton:"Send message",online:"Online",offline:"Offline",emptyText:"No connected devices yet",rowSend:"Send"},peerColumns:{name:"Device",id:"Peer ID",status:"Status",action:"Action"},sync:{cardTitle:"Sync status",synced:"Synced",notSynced:"Out of sync",unknown:"Unknown",statusLabel:"Sync status",pendingLabel:"Pending",lastSyncLabel:"Last sync",noLastSync:"Never",pushButton:"Push changes",pullButton:"Pull changes",outputLabel:"Operation result",pushDefault:"Push complete",pullDefault:"Pull complete"},pair:{title:"Pair new device",ok:"Pair",intro:"Enter the device name to pair",placeholder:"Device name, e.g. My Phone"},send:{title:"Send message",ok:"Send",targetLabel:"Select target device",targetPlaceholder:"Pick a device",messageLabel:"Message",messagePlaceholder:"Enter message",messageDefault:"Message sent"},messages:{loadPeersFailed:"Load failed: {err}",pairFailed:"Pair failed: {err}",sendFailed:"Send failed: {err}",loadSyncFailed:"Load failed: {err}",pushFailed:"Push failed: {err}",pullFailed:"Pull failed: {err}"}},fg={title:"Memory",subtitle:"Layered memory system — Short-term / Long-term / Core",storeButton:"Store memory",refresh:"Refresh",stats:{shortTerm:"Short-term",shortTermHint:"Recent conversation",longTerm:"Long-term",longTermHint:"Consolidated important info",core:"Core",coreHint:"High-importance long-term retention"},card:{title:"Memory contents",tabs:{short:"Short",long:"Long",core:"Core"},searchPlaceholder:"Semantic search memories...",emptyText:"No memory contents yet — click Store memory to add",importanceLabel:"Importance {value}"},layer:{"short-term":"Short","long-term":"Long",core:"Core"},consolidateButton:"Consolidate memory (short-term → long-term)",modal:{title:"Store new memory",contentLabel:"Content",contentPlaceholder:"Memory content to store...",importanceLabel:"Importance",marks:{low:"Low",mid:"Mid",high:"High"}},messages:{contentRequired:"Enter memory content",storeOk:"Memory stored",storeDefault:"Stored",storeFailed:"Store failed: {err}",consolidateOk:"Consolidation complete",consolidateFailed:"Consolidate failed: {err}"}},gg={title:"Git & Data",subtitle:"Version control / Import & export",tabs:{git:"Git repo",io:"Import / Export"},actions:{refresh:"Refresh status",autoCommit:"Auto commit"},status:{changedCount:"{count} files changed",clean:"Working tree clean",emptyHint:"Click Refresh status to view Git info",commitSuccessAlert:"Commit succeeded",commitResultAlert:"Commit result"},import:{cardTitle:"Import data",pathLabel:"File path",pathPlaceholder:"Enter file or directory path, e.g. ./docs",formatLabel:"Format",submit:"Import"},export:{cardTitle:"Export site",pathLabel:"Output path",pathPlaceholder:"Output directory, e.g. ./site",submit:"Export as static site"},io:{successAlert:"Operation succeeded",resultAlert:"Operation result",outputCardTitle:"Command output",importIssue:"Possible issues during import — see output",importDone:"Import complete",exportIssue:"Possible issues during export — see output",exportDone:"Export complete"},confirm:{title:"Confirm auto commit",ok:"Confirm",intro1:"This will run",intro2:"to auto-commit all current changes. Make sure the working tree is ready."},messages:{statusFailed:"Failed to get Git status: {err}",commitOk:"Auto commit complete",commitFailedToast:"Auto commit failed",commitFailedDetail:"Commit failed: {err}",importPathRequired:"Enter a file path",importOk:"Import succeeded",importFailed:"Import failed",importFailedDetail:"Import failed: {err}",exportPathRequired:"Enter an output path",exportOk:"Export succeeded",exportFailed:"Export failed",exportFailedDetail:"Export failed: {err}"}},hg={groups:{overview:"Overview",config:"Config",data:"Data",advanced:"Advanced",enterprise:"Enterprise",social:"Social",media:"Media",extension:"Extensions",desktop:"Desktop-only"},items:{dashboard:"Dashboard",chat:"AI chat",quickAsk:"Quick Ask",cowork:"Cowork",services:"Services",aiops:"AIOps",tokens:"Token usage",logs:"Logs",skills:"Skills",providers:"LLM config",mcp:"MCP tools",projectSettings:"Project storage",speechSettings:"Speech",notificationSettings:"Notifications",syncSettings:"Sync",nlprog:"NL programming",codegen:"Code gen",notes:"Notes",search:"RAG search",memory:"Memory",knowledge:"Knowledge graph",marketplace:"Marketplace",cron:"Cron",workflow:"Workflow editor",pipeline:"Dev pipeline",tasks:"Background tasks",security:"Security",ukeySign:"U-Key sign",trust:"Trust & security",audit:"Audit log",mtc:"MTC Merkle cert",did:"DID identity",permissions:"Permissions",p2p:"P2P",backup:"Backup & sync",git:"Git & data",projects:"Projects",crosschain:"Cross-chain",compliance:"Compliance",privacy:"Privacy",inference:"Inference",federation:"Federation",wallet:"Wallet",organization:"Organization",tenant:"Multi-tenant",sla:"SLA",analytics:"Analytics",templates:"Templates",community:"Community",governance:"Governance",reputation:"Reputation",recommend:"Recommend",video:"Video editing",rssfeed:"RSS",webauthn:"WebAuthn",desktopHardware:"Hardware wallet",desktopBackup:"Backup & restore",desktopLlmTest:"LLM test",desktopSettings:"Settings"},scope:{fallbackProject:"Project",global:"Global mode",projectPanel:"Project panel"},shellSwitch:"Switch to desktop shell (restart required)",wsStatus:{connected:"Connected",connecting:"Connecting",disconnected:"Offline"},footerStatus:{connected:"Connected",connecting:"Connecting...",error:"Connection error",disconnected:"Offline",unknown:"Unknown"}},bg={title:"Cross-chain bridge",subtitle:"Asset bridging · HTLC atomic swap · cross-chain messages",refresh:"Refresh",newDropdown:"New ▼",feeEstimate:"Estimate fee",actions:{bridge:"Bridge asset",swap:"HTLC atomic swap",message:"Cross-chain message"},stats:{chains:"Chains",bridges:"Bridges",swaps:"Swaps",messages:"Messages",volume:"Total volume"},chainsCard:"Supported chains",tabs:{bridges:"Bridges",swaps:"Swaps",messages:"Messages"},table:{totalSuffix:"{n} total",retrySuffix:"{n} retries",emptyBridges:'No bridges yet — click "New → Bridge asset"',emptySwaps:'No swaps yet — click "New → HTLC atomic swap"',emptyMessages:'No messages yet — click "New → Cross-chain message"'},bridgeCols:{route:"Route",amount:"Amount",fee:"Fee",status:"Status",createdAt:"Created"},swapCols:{route:"Route",amount:"Amount",hashLock:"Hash lock",status:"Status",expiresAt:"Expires"},messageCols:{route:"Route",payload:"Payload",retries:"Retries",status:"Status",createdAt:"Created"},bridge_modal:{title:"Bridge asset",ok:"Initiate",cancel:"Cancel",fromChain:"From chain",fromChainPlaceholder:"Pick source chain",toChain:"To chain",toChainPlaceholder:"Pick destination chain",amount:"Amount",asset:"Asset",assetPlaceholder:"native (default)",sender:"Sender",senderPlaceholder:"0x... (optional)",recipient:"Recipient",recipientPlaceholder:"0x... (optional)"},swap_modal:{title:"HTLC atomic swap",ok:"Initiate",cancel:"Cancel",fromChain:"From chain",fromChainPlaceholder:"Pick source chain",toChain:"To chain",toChainPlaceholder:"Pick destination chain",amount:"Amount",fromAsset:"From asset",toAsset:"To asset",assetPlaceholder:"native (default)",counterparty:"Counterparty",counterpartyPlaceholder:"0x... (optional)",timeoutMs:"Timeout (ms)",timeoutPlaceholder:"default 24h"},message_modal:{title:"Send cross-chain message",ok:"Send",cancel:"Cancel",fromChain:"From chain",fromChainPlaceholder:"Pick source chain",toChain:"To chain",toChainPlaceholder:"Pick destination chain",payload:"Payload",contract:"Target contract",contractPlaceholder:"0x... (optional)"},fee_modal:{title:"Fee estimate",ok:"Estimate",cancel:"Close",fromChain:"From chain",toChain:"To chain",amount:"Amount",resultTitle:"Estimated fee",sourceFee:"Source chain: {fee} {currency}",destFee:"Dest chain: {fee} {currency}",bridgeFee:"Bridge fee: {fee} {currency}"},statusLabels:{pending:"Pending",locked:"Locked",minted:"Minted",completed:"Completed",refunded:"Refunded",failed:"Failed",initiated:"Initiated",hash_locked:"Hash-locked",claimed:"Claimed",expired:"Expired",sent:"Sent",delivered:"Delivered"},msg:{loadFailed:"Failed to load cross-chain data",pairEmpty:"Pick source and destination chains",pairSame:"Source and destination chains must differ",amountInvalid:"Enter a positive amount",bridgeFailed:"Bridge failed",bridgeSuccess:"Bridge initiated",swapFailed:"Swap failed",swapSuccess:"Swap initiated",sendFailed:"Send failed",sendSuccess:"Message sent",feeFailed:"Fee estimate failed"}},yg={title:"Natural-language programming",subtitle:"Intent · entity extraction · stack detection · NL→spec",refresh:"Refresh",actionDropdown:"Actions ▼",actions:{analyze:"Analyse text",translate:"Translate to spec",convention:"Add convention"},stats:{translations:"Translations",avgCompleteness:"Avg. completeness",drafts:"Drafts",completed:"Completed",conventions:"Conventions"},intentCard:"Intent breakdown",tabs:{translations:"Translations",conventions:"Conventions"},filter:{allIntents:"All intents",allStatuses:"All statuses",allCategories:"All"},table:{totalSuffix:"{n} total",actionDetails:"Details",actionStatusDropdown:"Status ▼",emptyTranslationsFiltered:"No translations match the current filter",emptyTranslations:'No translations yet — click "Actions → Translate to spec"',emptyConventions:'No conventions yet — click "Actions → Add convention"'},deleteTranslationConfirm:{title:"Delete this translation?",ok:"Delete",cancel:"Cancel"},deleteConventionConfirm:{title:"Delete this convention?",ok:"Delete",cancel:"Cancel"},translationCols:{inputText:"Source",intent:"Intent",completeness:"Completeness",status:"Status",updatedAt:"Updated",action:"Action"},conventionCols:{category:"Category",pattern:"Pattern",examples:"Examples",confidence:"Confidence",createdAt:"Created",action:"Action"},analyze_modal:{title:"Text analysis (stateless)",ok:"Analyse",cancel:"Close",textLabel:"Text",textPlaceholder:"e.g. create a login button component using React",intent:"Intent",confidenceLine:"Confidence: {pct}%",entities:"Entities ({n})",notDetected:"none detected",stack:"Stack",stackPrimary:"primary: {name}"},translate_modal:{title:"Translate to spec",ok:"Translate",cancel:"Cancel",textLabel:"Natural language",textPlaceholder:"e.g. create a Vue 3 LoginForm component with email and password fields",intentLabel:"Intent override",intentPlaceholder:"blank → auto-detect",noDbMessage:"This command requires a project-level database",noDbDescription:"`cc nlprog translate` only works inside a chainlesschain project directory. Run `cc init` first, or start `cc serve` from an initialised directory."},convention_modal:{title:"Add convention",ok:"Add",cancel:"Cancel",categoryLabel:"Category",patternLabel:"Pattern",patternPlaceholder:"e.g. kebab-case for file names",examplesLabel:"Examples",examplesPlaceholder:'JSON array, e.g. ["login-form.vue","user-card.vue"]',confidenceLabel:"Confidence"},details:{title:"Translation details: {id}",intent:"Intent",status:"Status",completeness:"Completeness",createdAt:"Created",updatedAt:"Updated",inputText:"Source",entities:"Entities",techStack:"Tech stack",spec:"Spec"},intentLabels:{create_component:"Create component",add_feature:"Add feature",fix_bug:"Fix bug",refactor:"Refactor",add_api:"Add API",add_test:"Add test",update_style:"Update style",configure:"Configure",general:"General"},statusLabels:{draft:"Draft",complete:"Complete",refined:"Refined"},categoryLabels:{naming:"Naming",architecture:"Architecture",testing:"Testing",style:"Style",imports:"Imports",components:"Components"},msg:{loadFailed:"Failed to load NL data",textEmpty:"Enter text",analyzeFailed:"Analysis failed",translateTextEmpty:"Enter natural-language text",translateFailed:"Translate failed",translateSuccess:"Translation complete (completeness {pct}%)",transitionFailed:"Status transition failed",transitionSuccess:"Status set to {label}",deleteFailed:"Delete failed",deleteSuccess:"Deleted",patternEmpty:"Enter a pattern",examplesBadJson:"Examples JSON is malformed",addFailed:"Add failed",addSuccess:"Convention added"}},vg={title:"Multi-tenant SaaS",subtitle:"Tenants · subscription billing · usage metering · quota checks",refresh:"Refresh",actionDropdown:"Actions ▼",actions:{tenant:"Create tenant",quota:"Check quota",record:"Record usage"},stats:{total:"Tenants",active:"Active subs",mrr:"MRR",apiCalls:"API calls",storage:"Storage"},plansCard:"Plan distribution",summarySuffix:"active {active} · suspended {suspended} · deleted {deleted}",tabs:{tenants:"Tenants",subscriptions:"Subscriptions",plans:"Plans"},filter:{allPlans:"All plans",allStatuses:"All statuses"},table:{totalSuffix:"{n} total",actionSubscribe:"Subscribe",actionPlanDropdown:"Plan ▼",actionSuspend:"Suspend",actionActivate:"Activate",emptyTenantsFiltered:"No tenants match the current filter",emptyTenants:'No tenants yet — click "Actions → Create tenant"',emptySubscriptions:"No subscriptions yet"},deleteConfirm:{title:"Soft-delete this tenant?",ok:"Delete",cancel:"Cancel"},cancelConfirm:{title:"Cancel this subscription?",ok:"Cancel sub",cancel:"Back"},tenantCols:{name:"Tenant",plan:"Plan",status:"Status",owner:"Owner",createdAt:"Created",action:"Action"},subscriptionCols:{tenant:"Tenant",plan:"Plan",amount:"Amount",status:"Status",startedAt:"Started",expiresAt:"Expires",action:"Action"},planCard:{monthlySuffix:"/ month",contactSales:"Contact sales",quotas:"Quotas",features:"Features",unlimited:"unlimited"},deletedTenant:"(deleted)",create_modal:{title:"Create tenant",ok:"Create",cancel:"Cancel",nameLabel:"Name",namePlaceholder:"e.g. Acme Corp",slugLabel:"Slug",slugPlaceholder:"lowercase alphanumeric + hyphens, e.g. acme-corp",planLabel:"Plan",ownerLabel:"Owner ID",ownerPlaceholder:"optional"},subscribe_modal:{title:"Subscribe: {name}",ok:"Subscribe",cancel:"Cancel",planLabel:"Plan",amountLabel:"Amount override",amountPlaceholder:"blank → plan's default price",durationLabel:"Duration",duration30:"30 days",duration90:"90 days",duration365:"1 year"},quota_modal:{title:"Quota check",ok:"Check",cancel:"Close",tenantLabel:"Tenant",tenantPlaceholder:"Pick tenant",metricLabel:"Metric",periodLabel:"Period",periodPlaceholder:"YYYY-MM, blank → current month",resultTitle:"Quota state",unlimited:"Unlimited",exceeded:"Exceeded",ok_state:"OK",planLine:"Plan:",periodLine:"Period: {period}",usedLine:"Used:",limitLine:"Limit:"},record_modal:{title:"Record usage",ok:"Record",cancel:"Cancel",tenantLabel:"Tenant",tenantPlaceholder:"Pick tenant",metricLabel:"Metric",valueLabel:"Value",periodLabel:"Period",periodPlaceholder:"YYYY-MM, blank → current month"},planLabels:{free:"Free",starter:"Starter",pro:"Pro",enterprise:"Enterprise"},tenantStatusLabels:{active:"Active",suspended:"Suspended",deleted:"Deleted"},subStatusLabels:{active:"Active",cancelled:"Cancelled",expired:"Expired",past_due:"Past due"},msg:{loadFailed:"Failed to load tenant data",createFieldsEmpty:"Enter both name and slug",slugInvalid:"Slug must be lowercase alphanumeric + hyphens",createFailed:"Create failed",createSuccess:"Tenant created",subscribeFailed:"Subscribe failed",subscribeSuccess:"Subscription created",planChangeFailed:"Plan change failed",planChangeSuccess:"Switched to {plan}",statusChangeFailed:"Status change failed",activated:"Activated",suspended:"Suspended",deleteFailed:"Delete failed",deleteSuccess:"Tenant soft-deleted",cancelFailed:"Cancel failed",cancelSuccess:"Subscription cancelled",tenantEmpty:"Pick a tenant",checkFailed:"Check failed",exceededWarning:"This tenant has exceeded quota!",valueInvalid:"Enter a valid amount",recordFailed:"Record failed",recordSuccess:"Usage recorded"}},_g={title:"Code generation",subtitle:"Generation log · heuristic review · 5 scaffold templates",refresh:"Refresh",review:"Code review",newDropdown:"New ▼",actions:{generate:"Log generation",scaffold:"New scaffold"},stats:{generations:"Generations",reviews:"Reviews",securityIssues:"Security issues",scaffolds:"Scaffolds",languages:"Languages"},templatesCard:"Scaffold templates",tabs:{generations:"Generations",reviews:"Reviews",scaffolds:"Scaffolds"},filter:{languagePlaceholder:"Filter by language...",frameworkPlaceholder:"Filter by framework...",allTemplates:"All templates"},table:{totalSuffix:"{n} total",issuesSuffix:"{n}",noIssues:"— clean",unnamed:"(unnamed)",actionDetails:"Details",actionReview:"Review",emptyGenerationsFiltered:"No generations match the current filter",emptyGenerations:"No generation log yet",emptyReviews:'No reviews yet — click "Code review" to run the first one',emptyScaffoldsFiltered:"No scaffolds match the current filter",emptyScaffolds:"No scaffold history yet"},generationCols:{prompt:"Prompt",language:"Language",framework:"Framework",fileCount:"Files",tokenCount:"Tokens",createdAt:"Created",action:"Action"},reviewCols:{codeHash:"Code hash",language:"Language",issuesFound:"Issues",securityIssues:"Security",severityBreak:"Severity",reviewedAt:"Reviewed",action:"Action"},scaffoldCols:{projectName:"Project",template:"Template",filesGenerated:"Files",outputPath:"Output",createdAt:"Created"},generate_modal:{title:"Log code generation",ok:"Log",cancel:"Cancel",promptLabel:"Prompt",promptPlaceholder:'e.g. "Build a debounced search input"',languageLabel:"Language",languagePlaceholder:"e.g. typescript / python",frameworkLabel:"Framework",frameworkPlaceholder:"e.g. vue / react / fastapi",codeLabel:"Generated code",codePlaceholder:"Optional — paste the generated code",filesLabel:"Files",tokensLabel:"Tokens"},review_modal:{title:"Heuristic code review",languageLabel:"Language",languagePlaceholder:"Optional, e.g. javascript / python",generationIdLabel:"Generation ID",generationIdPlaceholder:"Optional — link to a generation",codeLabel:"Code",codePlaceholder:"Paste code to review (built-in rules: eval / SQL / XSS / path_traversal / command_injection)",submit:"Run review",notReviewed:"Not reviewed yet",issuesStat:"Issues found",securityStat:"Security issues",reviewIdStat:"Review ID",bySeverity:"By severity",failedReason:"Review failed: {reason}"},scaffold_modal:{title:"New scaffold",ok:"Create",cancel:"Cancel",templateLabel:"Template",projectLabel:"Project name",projectPlaceholder:"e.g. my-app",optionsLabel:"Options",optionsPlaceholder:"Optional JSON, e.g. typescript=true, router=true",filesLabel:"Files",outputLabel:"Output path",outputPlaceholder:"Optional, e.g. /tmp/my-app"},gen_details:{title:"Generation details: {id}",id:"ID",language:"Language",framework:"Framework",fileCount:"Files",tokenCount:"Tokens",createdAt:"Created",prompt:"Prompt",code:"Generated code"},review_details:{title:"Review details: {id}",id:"ID",codeHash:"Code hash",generationId:"Generation ID",language:"Language",reviewedAt:"Reviewed",issuesFound:"Issues found",securityIssues:"Security issues",bySeverity:"By severity",issues:"Issue list"},severityLabels:{critical:"Critical",high:"High",medium:"Medium",low:"Low",info:"Info"},msg:{loadFailed:"Failed to load data",promptEmpty:"Enter a prompt",generateFailed:"Log failed",generateSuccess:"Generation logged: {id}",codeEmpty:"Paste code to review",reviewFailed:"Review failed",reviewSuccess:"Review complete: {n} issues ({sec} security)",projectEmpty:"Enter a project name",optionsBadJson:"Options JSON is malformed",scaffoldFailed:"Create failed",scaffoldSuccess:"Scaffold created: {id}"}},Cg={title:"SLA management",subtitle:"Service-level contracts · metric records · deviation detection · compensation",refresh:"Refresh",recordMetric:"Record metric",create:"New contract",noDb:{message:"This module requires a project-level database",description:"`cc sla ...` only works inside a chainlesschain project directory. Run `cc init` first, or start `cc serve` from an initialised directory."},stats:{totalContracts:"Contracts",active:"Active",orgs:"Orgs",violations:"Violations",compensation:"Compensation"},tierCard:"SLA tiers",tierCompRate:"Comp. rate {pct}%",tierTerms:{availability:"Availability ≥ {pct}%",p95:"p95 ≤ {ms}ms",rps:"RPS ≥ {n}",errorRate:"Error rate ≤ {pct}%"},tabs:{contracts:"Contracts",violations:"Violations",breakdown:"Breakdown"},filter:{allTiers:"All tiers",allStatuses:"All statuses",allSeverities:"All severities"},table:{contractsSuffix:"{n} contracts",totalSuffix:"{n} total",uncomputed:"(uncomputed)",actionMetrics:"Metrics",actionCheck:"Check",actionReport:"Report",actionView:"View",actionComputeComp:"Compute comp.",emptyContractsFiltered:"No contracts match the current filter",emptyContracts:'No contracts yet — click "New contract"',emptyViolationsFiltered:"No violations match the current filter",emptyViolations:"No violations yet"},terminateConfirm:{title:"Terminate this contract?",ok:"Terminate",cancel:"Cancel"},contractCols:{slaId:"SLA ID",orgId:"Org",tier:"Tier",status:"Status",monthlyFee:"Fee",endDate:"Expires",action:"Action"},violationCols:{id:"ID",term:"Term",severity:"Severity",deviation:"Deviation",expected:"Expected",actual:"Actual",compensation:"Comp.",occurredAt:"Occurred",action:"Action"},aggCols:{term:"Term",expected:"Expected",mean:"Mean",p95:"p95",min:"Min",max:"Max",count:"Samples"},breakdown:{contractsByStatus:"Contracts — by status",contractsByTier:"Contracts — by tier",violationsBySeverity:"Violations — by severity",violationsByTerm:"Violations — by term",violationsBySeverityHeader:"Violations — by severity",metricsAggregation:"Metrics aggregation"},create_modal:{title:"New SLA contract",ok:"Create",cancel:"Cancel",orgLabel:"Org ID",orgPlaceholder:"e.g. org-acme",tierLabel:"Tier",feeLabel:"Monthly fee",durationLabel:"Duration (days)",durationHint:"default 30"},record_modal:{title:"Record metric",ok:"Record",cancel:"Cancel",slaLabel:"SLA",slaPlaceholder:"Pick contract",termLabel:"Term",valueLabel:"Value"},metrics_modal:{title:"Metrics aggregation: {id}",org:"Org",tier:"Tier",samples:"Samples",monthlyFee:"Monthly fee",byTerm:"By term",empty:"No metric data yet"},check_modal:{title:"Violation check: {id}",noViolations:"No violations detected",withViolations:"Detected {n} violations",checkedAt:"Checked at: {time}",expectedActual:"expected {expected} · actual {actual}"},report_modal:{title:"Compliance report: {id}",compliance:"Compliance",violations:"Violations",compensation:"Compensation"},compensation_modal:{title:"Compensation: {id}",violationId:"Violation ID",severity:"Severity",base:"Base",multiplier:"Multiplier",amount:"Final amount"},statusLabels:{active:"Active",expired:"Expired",terminated:"Terminated"},termLabels:{availability:"Availability",response_time:"Response time",throughput:"Throughput",error_rate:"Error rate"},termHints:{availability:"Ratio 0~1, e.g. 0.997",response_time:"Milliseconds, e.g. 120",throughput:"Requests per second, e.g. 850",error_rate:"Ratio 0~1, e.g. 0.003"},severityLabels:{minor:"Minor",moderate:"Moderate",major:"Major",critical:"Critical"},msg:{loadFailed:"Failed to load SLA data",needCcInit:"Run `cc init` first to initialise the project",orgEmpty:"Enter an org ID",createFailed:"Create failed",createSuccess:"Contract created: {id}",slaEmpty:"Pick an SLA contract",valueEmpty:"Enter a metric value",recordFailed:"Record failed",recordSuccess:"Metric recorded",terminateFailed:"Terminate failed",terminateSuccess:"Contract terminated",loadMetricsFailed:"Failed to load metrics",checkFailed:"Check failed",loadReportFailed:"Failed to load report",compFailed:"Compute failed"}},kg={title:"Trust & Security",subtitle:"TPM/TEE attestation · PQC interop · Satellite messages · HSM devices",refresh:"Refresh",newDropdown:"New ▼",actions:{attest:"Attestation request",interop:"PQC interop",sat:"Satellite message",hsm:"Register HSM"},stats:{attestations:"Attestations",validSuffix:"{n} valid",interop:"PQC tests",interopSub:"{compatible} compatible · avg {avg}ms",satellite:"Satellite messages",satelliteSub:"{queued} queued · {confirmed} confirmed",hsm:"HSM devices",passRate:"Attest pass rate"},tabs:{attestations:"Trust root · TPM/TEE",interop:"PQC interop",satellite:"Satellite messages",hsm:"HSM devices"},filter:{allAnchors:"All anchors",allStatuses:"All statuses",allProviders:"All providers",allVendors:"All vendors"},table:{totalSuffix:"{n} total",deviceSuffix:"{n} devices",emptyAttestFiltered:"No attestations match the current filter",emptyAttest:'No attestations yet — click "Attestation request" to run the first one',emptyInterop:"No PQC interop tests yet",emptySatFiltered:"No messages match the current filter",emptySat:"No satellite messages yet",emptyHsmFiltered:"No devices match the current filter",emptyHsm:"No HSM devices yet",compatible:"compatible",incompatible:"incompatible",satMarkSent:"Mark sent",satConfirm:"Confirm",satFail:"Fail",hsmSign:"Sign",hsmRemove:"Remove"},removeConfirm:{title:"Remove this HSM device?",ok:"Remove",cancel:"Cancel"},attestCols:{id:"ID",anchor:"Anchor",status:"Status",fingerprint:"Fingerprint",response:"Response",createdAt:"Created"},interopCols:{id:"ID",algorithm:"Algorithm",compatible:"Compatible",result:"Result",latency:"Latency",peer:"Peer",createdAt:"Created"},satCols:{id:"ID",provider:"Provider",priority:"Priority",status:"Status",payload:"Payload",createdAt:"Created",action:"Action"},hsmCols:{id:"ID",vendor:"Vendor",model:"Model",serial:"Serial",compliance:"Compliance",firmware:"Firmware",action:"Action"},anchorLabels:{tpm:"TPM",tee:"TEE",secure_element:"SE"},attestStatusLabels:{valid:"Valid",expired:"Expired",failed:"Failed",pending:"Pending"},satStatusLabels:{queued:"Queued",sent:"Sent",confirmed:"Confirmed",failed:"Failed"},attest_modal:{title:"Attestation request",ok:"Submit",cancel:"Cancel",anchorLabel:"Trust anchor",challengeLabel:"Challenge",challengePlaceholder:"Optional hex challenge",fingerprintLabel:"Device fingerprint",fingerprintPlaceholder:"Optional device fingerprint"},interop_modal:{title:"PQC interop test",ok:"Run",cancel:"Cancel",algorithmLabel:"Algorithm",algorithmPlaceholder:"e.g. ml_kem_768 / ml_dsa_65 / slh_dsa_128s",peerLabel:"Peer",peerPlaceholder:"Optional peer ID",latencyLabel:"Latency ms"},sat_modal:{title:"Send satellite message",ok:"Send",cancel:"Cancel",providerLabel:"Provider",priorityLabel:"Priority",priorityHint:"1-10, default 5",payloadLabel:"Payload",payloadPlaceholder:"Message body (keep it short — bandwidth is constrained)"},hsm_modal:{title:"Register HSM device",ok:"Register",cancel:"Cancel",vendorLabel:"Vendor",modelLabel:"Model",modelPlaceholder:"e.g. YK5 / Nano X",serialLabel:"Serial",serialPlaceholder:"Device serial number",complianceLabel:"Compliance",firmwareLabel:"Firmware",firmwarePlaceholder:"Optional"},sign_modal:{title:"HSM sign: {id}",deviceLabel:"Device",algorithmLabel:"Algorithm",algorithmPlaceholder:"Optional, e.g. ed25519 / ecdsa_p256",dataLabel:"Data",dataPlaceholder:"Data to sign",submit:"Sign",notSigned:"Not signed yet",resultAlgorithm:"Algorithm",resultSignature:"Signature",failedReason:"Sign failed: {reason}"},msg:{loadFailed:"Failed to load data",attestFailed:"Attestation failed",attestSuccess:"Attestation recorded [{status}]",interopAlgEmpty:"Enter an algorithm",interopFailed:"Test failed",interopSuccess:"Test complete: {compat} ({latency}ms)",satPayloadEmpty:"Enter a message payload",satFailed:"Send failed",satSuccess:"Message queued: {id}",satUpdateFailed:"Update failed",satUpdateSuccess:"Status updated",hsmRegisterFailed:"Register failed",hsmRegisterSuccess:"HSM registered: {id}",hsmRemoveFailed:"Remove failed",hsmRemoveSuccess:"Device removed",signEmpty:"Enter data to sign",signSuccess:"Signed",signFailed:"Sign failed"}},Sg={title:"Skill marketplace",subtitle:"Publish skill services · record invocations · view stats",refresh:"Refresh",publish:"Publish service",stats:{total:"Total services",published:"Published",invocations:"Total invocations",successRate:"Success rate",avgDuration:"Avg. duration"},tabs:{services:"Services",invocations:"Invocation history"},filter:{all:"All",namePlaceholder:"Search by name",byService:"Filter by service"},table:{totalSuffix:"{n} total",actionRecord:"Record invocation",statusDropdown:"Status ▼",emptyFiltered:"No services match the current filter",empty:'No services yet — click "Publish service" to add the first one',emptyInvocations:'No invocations yet. Click "Record invocation" on a published service in the Services tab.'},serviceCols:{name:"Name",status:"Status",invocationCount:"Invocations",owner:"Owner",createdAt:"Created",action:"Action"},invocationCols:{service:"Service",caller:"Caller",status:"Status",durationMs:"Duration",createdAt:"Time"},deletedService:"(deleted)",publish_modal:{title:"Publish skill service",ok:"Publish",cancel:"Cancel",nameLabel:"Service name",namePlaceholder:"e.g. text-summarizer",versionLabel:"Version",versionPlaceholder:"1.0.0 (default)",descLabel:"Description",endpointLabel:"Endpoint",endpointPlaceholder:"https://... (optional)",ownerLabel:"Owner",ownerPlaceholder:"did:key:... (optional)",statusLabel:"Initial status"},record_modal:{title:"Record invocation: {name}",ok:"Record",cancel:"Cancel",callerLabel:"Caller",callerPlaceholder:"did:key:... (optional)",statusLabel:"Status",durationLabel:"Duration (ms)",errorLabel:"Error message"},serviceStatusLabels:{draft:"Draft",published:"Published",deprecated:"Deprecated",suspended:"Suspended"},invocationStatusLabels:{pending:"Pending",running:"Running",success:"Success",failed:"Failed",timeout:"Timeout"},msg:{loadFailed:"Failed to load marketplace data",publishEmpty:"Enter a service name",publishFailed:"Publish failed",publishSuccess:"Service published",recordOnlyPublished:'Only "Published" services accept invocation records',recordFailed:"Record failed",recordSuccess:"Invocation recorded",transitionFailed:"Status transition failed",transitionSuccess:"Service status set to {label}"}},Pg={title:"Workflow editor",subtitle:"Create, edit, and run Cowork workflows (N1 — form editor; canvas view planned)",new:"New",refresh:"Refresh",list:{title:"Workflows",empty:"No workflows yet",stepCount:"{n} steps",delete:"Delete"},editor:{headerPrefix:"Editing:",exportJson:"Export JSON",run:"Run",save:"Save",idLabel:"ID (unique)",idPlaceholder:"my-workflow",nameLabel:"Name",namePlaceholder:"My workflow",descLabel:"Description",descPlaceholder:"(optional)",stepsDivider:"Steps",stepIdPlaceholder:"step-id",dependsOnPlaceholder:"dependsOn",messagePlaceholder:"Task prompt (use $step.<id>.summary as placeholder)",whenPlaceholder:"when condition (optional, e.g. step.s1.status === 'completed')",stepDelete:"Delete",stepCounter:"step {idx} / {total}",addStep:"+ Add step",emptyHint:"Pick a workflow on the left or create a new one"},runLog:{title:"Run log"},msg:{loadFailed:"Load failed: {err}",saveSuccess:"Saved",saveFailed:"Save failed: {err}",deleteSuccess:"Deleted",deleteFailed:"Delete failed: {err}",runSuccess:"Run finished: {status}",runFailed:"Run failed: {err}",exportSuccess:"Exported to {path}",exportFailed:"Export failed: {err}"}},Lg={scope:{fallbackProjectName:"Project",globalSessions:"Global sessions"},newChat:"Chat",newAgent:"Agent",role:{me:"Me"},contextMode:{project:"Project",file:"File",global:"Global"},session:{untitled:"New chat",messageCountSuffix:"{n} messages"},sidebarEmpty:"Click a button above to start a new chat",empty:{title:"Start an AI chat",subtitle:"Pick a session on the left or create a new one",newChat:"New Chat",newAgent:"New Agent",startTitle:"Start a new chat",hint:{project:"Ask anything about this project",file:"Ask anything about the current file",global:"General AI assistant"}},quickPrompts:{summarize:"Summarise the project",brainstorm:"Help me brainstorm",explain:"Explain a concept",codeReview:"Code review checklist"},quickPromptsEditor:{openButton:"+ Edit",title:"Customise quick prompts",hint:"One per line; up to 12 entries, each ≤ 120 chars. Leave empty to restore defaults.",placeholder:`Summarise the project
68
+ Help me brainstorm
69
+ …`,save:"Save",cancel:"Cancel",reset:"Restore defaults"},input:{loading:"Waiting for response...",placeholder:"Type a message. Shift+Enter for newline, Enter to send.",answerPlaceholder:"Type your answer...",send:"Send"},tool:{argsPreview:"{n} args · {key}…",running:"running",done:"done",unknownTool:"unknown"},intent:{confirmed:"✅ Confirmed",corrected:"🔄 Corrected",label:{original:"Your original input:",understood:"I understood:",intent:"Intent:",keyPoints:"Key points:",correction:"Your correction:"},action:{confirm:"Confirm",correct:"Correct",correctPlaceholder:"Type your correction...",submitCorrection:"Submit",cancelCorrection:"Cancel"},status:{understanding:"Understanding your request..."}}},Tg={title:"Dashboard",subProject:'Project "{name}" overview',subGlobal:"ChainlessChain global overview",unnamedProject:"(unnamed)",refresh:"Refresh",projectBanner:{fallbackName:"Project",tag:"Project panel"},stats:{wsGateway:"WebSocket Gateway",wsRunning:"Running",wsDisconnected:"Disconnected",wsPortLine:"Port {port} · {host}",currentLlm:"Current LLM",llmUnconfigured:"(unconfigured)",skills:"Skills",skillsHint:"Click to manage skills",sessions:"AI sessions",sessionsHint:"Click to enter chat",appStatus:"App status",appRunning:"Running",appReady:"Initialised",appNotStarted:"Not started",edition:"{name} Edition",mcp:"MCP tools",mcpHint:"Mounted extensions",notes:"Knowledge base notes",notesHint:"Click to manage notes"},quick:{title:"Quick actions",enterProjectChat:"Enter project chat",newAiChat:"New AI chat",startAgent:"Start agent mode",services:"Services",logs:"View logs",skills:"Manage skills",providers:"LLM config"},status:{title:"Recent status",more:"View more",placeholder:"Click refresh to load system status..."},telemetry:{title:"Compression telemetry",filterWindow:"Time window",filterProvider:"Provider slice",filterModel:"Model slice",windowAll:"All samples",window1h:"Last hour",window24h:"Last 24 hours",window7d:"Last 7 days",providerAll:"All providers",modelAll:"All models",hitRate:"Hit rate",hitRateSub:"{compressed} / {total} compressions produced real savings",savedTokens:"Tokens saved (cumulative)",savedTokensSub:"Avg. {avg} tokens per compression",netSavingsRate:"Net savings rate",netSavingsRateSub:"Original {original} -> after compression {compressed}",strategyDistribution:"Strategy hits",strategyEmpty:"No compression samples yet",strategyRow:"{hits} hits · {rate}",variantDistribution:"Variant breakdown",variantEmpty:"No variant data yet",variantRow:"{count}",providerSlice:"Provider slice",providerEmpty:"No provider data yet",providerRow:"{samples} samples · {rate}",modelSlice:"Model slice",modelEmpty:"No model data yet",modelRow:"{samples} samples · {saved} saved"},info:{title:"Runtime info",panelMode:"Panel mode",modeProject:"Project",modeGlobal:"Global",projectName:"Project name",projectPath:"Project path",websocket:"WebSocket",auth:"Auth",authEnabled:"Enabled",authDisabled:"Disabled",version:"Version"}},Eg={common:xf,language:Nf,error:Mf,quickAsk:$f,compliance:Bf,pipeline:Hf,did:jf,knowledgeGraph:Uf,governance:Vf,privacy:Wf,aiops:zf,reputation:Gf,federation:qf,recommend:Yf,organization:Kf,inference:Xf,wallet:Jf,community:Qf,webauthn:Zf,mtc:eg,tokens:tg,backup:ag,mcpTools:ng,audit:rg,search:og,templates:ig,security:lg,cron:sg,analytics:cg,speechSettings:dg,projects:ug,videoEditing:mg,p2p:pg,memory:fg,git:gg,appLayout:hg,crosschain:bg,nlprog:yg,tenant:vg,codegen:_g,sla:Cg,trust:kg,marketplace:Sg,workflow:Pg,chat:Lg,dashboard:Tg},Bn=["zh-CN","en"],fr="zh-CN",Ig={"zh-CN":Rf,en:Eg},Ag={locale:"zh_CN",today:"今天",now:"此刻",backToToday:"返回今天",ok:"确定",timeSelect:"选择时间",dateSelect:"选择日期",weekSelect:"选择周",clear:"清除",month:"月",year:"年",previousMonth:"上个月 (翻页上键)",nextMonth:"下个月 (翻页下键)",monthSelect:"选择月份",yearSelect:"选择年份",decadeSelect:"选择年代",yearFormat:"YYYY年",dayFormat:"D日",dateFormat:"YYYY年M月D日",dateTimeFormat:"YYYY年M月D日 HH时mm分ss秒",previousYear:"上一年 (Control键加左方向键)",nextYear:"下一年 (Control键加右方向键)",previousDecade:"上一年代",nextDecade:"下一年代",previousCentury:"上一世纪",nextCentury:"下一世纪"},xl={placeholder:"请选择时间",rangePlaceholder:["开始时间","结束时间"]},Hn={lang:T({placeholder:"请选择日期",yearPlaceholder:"请选择年份",quarterPlaceholder:"请选择季度",monthPlaceholder:"请选择月份",weekPlaceholder:"请选择周",rangePlaceholder:["开始日期","结束日期"],rangeYearPlaceholder:["开始年份","结束年份"],rangeMonthPlaceholder:["开始月份","结束月份"],rangeQuarterPlaceholder:["开始季度","结束季度"],rangeWeekPlaceholder:["开始周","结束周"]},Ag),timePickerLocale:T({},xl)};Hn.lang.ok="确定";const Te="${label}不是一个有效的${type}",wg={locale:"zh-cn",Pagination:_u,DatePicker:Hn,TimePicker:xl,Calendar:Hn,global:{placeholder:"请选择"},Table:{filterTitle:"筛选",filterConfirm:"确定",filterReset:"重置",filterEmptyText:"无筛选项",filterCheckall:"全选",filterSearchPlaceholder:"在筛选项中搜索",selectAll:"全选当页",selectInvert:"反选当页",selectNone:"清空所有",selectionAll:"全选所有",sortTitle:"排序",expand:"展开行",collapse:"关闭行",triggerDesc:"点击降序",triggerAsc:"点击升序",cancelSort:"取消排序"},Tour:{Next:"下一步",Previous:"上一步",Finish:"结束导览"},Modal:{okText:"确定",cancelText:"取消",justOkText:"知道了"},Popconfirm:{cancelText:"取消",okText:"确定"},Transfer:{searchPlaceholder:"请输入搜索内容",itemUnit:"项",itemsUnit:"项",remove:"删除",selectCurrent:"全选当页",removeCurrent:"删除当页",selectAll:"全选所有",removeAll:"删除全部",selectInvert:"反选当页"},Upload:{uploading:"文件上传中",removeFile:"删除文件",uploadError:"上传错误",previewFile:"预览文件",downloadFile:"下载文件"},Empty:{description:"暂无数据"},Icon:{icon:"图标"},Text:{edit:"编辑",copy:"复制",copied:"复制成功",expand:"展开"},PageHeader:{back:"返回"},Form:{optional:"(可选)",defaultValidateMessages:{default:"字段验证错误${label}",required:"请输入${label}",enum:"${label}必须是其中一个[${enum}]",whitespace:"${label}不能为空字符",date:{format:"${label}日期格式无效",parse:"${label}不能转换为日期",invalid:"${label}是一个无效日期"},types:{string:Te,method:Te,array:Te,object:Te,number:Te,date:Te,boolean:Te,integer:Te,float:Te,regexp:Te,email:Te,url:Te,hex:Te},string:{len:"${label}须为${len}个字符",min:"${label}最少${min}个字符",max:"${label}最多${max}个字符",range:"${label}须在${min}-${max}字符之间"},number:{len:"${label}必须等于${len}",min:"${label}最小值为${min}",max:"${label}最大值为${max}",range:"${label}须在${min}-${max}之间"},array:{len:"须为${len}个${label}",min:"最少${min}个${label}",max:"最多${max}个${label}",range:"${label}数量须在${min}-${max}之间"},pattern:{mismatch:"${label}与模式不匹配${pattern}"}}},Image:{preview:"预览"},QRCode:{expired:"二维码已过期",refresh:"点击刷新",scanned:"已扫描"}},Nl="cc.web-panel.locale";function Og(){try{const e=localStorage.getItem(Nl);if(e&&Bn.includes(e))return e}catch{}if(typeof navigator<"u"&&navigator.language){if(navigator.language.startsWith("zh"))return"zh-CN";if(navigator.language.startsWith("en"))return"en"}return fr}const ba=wp({legacy:!1,globalInjection:!0,locale:Og(),fallbackLocale:fr,messages:Ig});Se(()=>ba.global.locale.value,e=>{try{localStorage.setItem(Nl,e)}catch{}typeof document<"u"&&(document.documentElement.lang=e)},{immediate:!0});const Io={"zh-CN":wg,en:yt};function Dg(){const e=F(()=>ba.global.locale.value),t=F(()=>Io[e.value]||Io[fr]);function a(n){return Bn.includes(n)?(ba.global.locale.value=n,!0):!1}return{current:e,antdLocale:t,supported:Bn,setLocale:a}}const Fg=(e,t)=>{const a=e.__vccOpts||e;for(const[n,r]of t)a[n]=r;return a},Rg={key:0,class:"error-boundary"},xg={class:"stack"},Ng={__name:"ErrorBoundary",setup(e){const t=ve(null),a=Yl(),n=Fo(),r=!1;Kl((l,s,c)=>(t.value=l,console.error("[ErrorBoundary]",c,l),!1)),Se(()=>a.fullPath,(l,s)=>{t.value&&l!==s&&(t.value=null)});async function o(){const l=a.fullPath;t.value=null,await n.replace({path:l,query:{...a.query,_retry:Date.now()}}),await n.replace({path:l,query:{...a.query,_retry:void 0}})}function i(){t.value=null,a.path!=="/dashboard"&&n.push("/dashboard")}return(l,s)=>{const c=mt("a-button"),u=mt("a-space"),d=mt("a-collapse-panel"),m=mt("a-collapse"),h=mt("a-result");return t.value?(bn(),Xl("div",Rg,[R(h,{status:"error",title:l.$t("error.boundary.title"),"sub-title":t.value.message||""},{extra:je(()=>[R(u,{direction:"vertical",style:{width:"100%","align-items":"center"}},{default:je(()=>[R(u,null,{default:je(()=>[R(c,{type:"primary",onClick:o},{icon:je(()=>[R(Qe(ls))]),default:je(()=>[hr(" "+on(l.$t("error.boundary.retry")),1)]),_:1}),R(c,{onClick:i},{default:je(()=>[hr(on(l.$t("error.boundary.goHome")),1)]),_:1})]),_:1}),Qe(r)?(bn(),Ro(m,{key:0,ghost:"",style:{"max-width":"720px"}},{default:je(()=>[R(d,{key:"stack",header:l.$t("error.boundary.stack")},{default:je(()=>[Jl("pre",xg,on(t.value.stack||String(t.value)),1)]),_:1},8,["header"])]),_:1})):Ql("",!0)]),_:1})]),_:1},8,["title","sub-title"])])):Zl(l.$slots,"default",{key:1},void 0)}}},Mg=Fg(Ng,[["__scopeId","data-v-baf1e70e"]]),$g={__name:"App",setup(e){const t=Iu(),a=Du(),n=Fo(),{antdLocale:r}=Dg();function o(l){const{type:s,payload:c}=l||{};switch(s){case"open-settings":c==="notifications"?n.push("/notification-settings"):c==="speech"?n.push("/speech-settings"):c==="providers"||c==="llm"?n.push("/providers"):c==="sync"?n.push("/sync-settings"):n.push("/project-settings");break;case"show-performance":n.push("/dashboard");break;case"show-notifications":window.dispatchEvent(new CustomEvent("cc:open-notification-drawer"));break;case"quick-action":switch(c){case"global-search":n.push("/search");break;case"new-chat":n.push("/chat");break;case"new-note":n.push("/notes");break;case"clipboard-import":n.push(`/notes?clipboardImport=${Date.now()}`);break;case"screenshot-ocr":n.push(`/notes?screenshotOcr=${Date.now()}`);break;default:Ve.info("未识别的快速操作")}break;case"sync":{const{mode:u,value:d}=c||{};u==="now"?Ve.info("立即同步功能即将推出"):u==="toggle-auto"&&Ve.info(`自动同步:${d?"已开启":"已关闭"}(待接入)`);break}default:Ve.info(`未识别的托盘操作: ${s}`)}}let i=null;return ya(()=>{t.init(),i=a.onMessage(l=>{l&&l.type==="tray:action"&&o(l.payload)})}),Un(()=>{i&&i()}),(l,s)=>{const c=mt("router-view"),u=mt("a-config-provider");return bn(),Ro(u,{theme:Qe(t).antdTheme,locale:Qe(r)},{default:je(()=>[R(Mg,null,{default:je(()=>[R(c)]),_:1})]),_:1},8,["theme","locale"])}}};function j(e,t=a=>a.default){return es({suspensible:!1,loader:()=>e().then(a=>t(a))})}const Bg={AAlert:j(()=>O(()=>import("./index-CAPiTJT4.js"),__vite__mapDeps([158,1,3,24]),import.meta.url)),ABadge:j(()=>O(()=>import("./index-U1O0AXXH.js"),__vite__mapDeps([192,1,24,156,193,3]),import.meta.url)),AButton:j(()=>O(()=>import("./index-B-VML4Pz.js").then(e=>e.i),__vite__mapDeps([11,12,13,1,14,10,15,16,3,17,18,19,20,8]),import.meta.url)),ACard:j(()=>O(()=>import("./index-C_EIwaP7.js"),__vite__mapDeps([181,159,10,1,5,160,15,16,153,9,24,13,150,20,161,162,163,149,152,154,155,156,22,8,3,164,165,166,167,14,168,169,170,171,157,6,148,182]),import.meta.url)),ACheckbox:j(()=>O(()=>import("./index-COVlQxSz.js").then(e=>e.i),__vite__mapDeps([194,195,8,1,144,18]),import.meta.url)),ACol:j(()=>O(()=>import("./index-BqMhh2pY.js"),__vite__mapDeps([196,178,176,1,3]),import.meta.url)),ACollapse:j(()=>O(()=>import("./index-BuzilAPw.js"),__vite__mapDeps([197,24,1,3,155,164,8,15,16]),import.meta.url)),ACollapsePanel:j(()=>O(()=>import("./index-BuzilAPw.js"),__vite__mapDeps([197,24,1,3,155,164,8,15,16]),import.meta.url),e=>e.default.Panel||e.CollapsePanel),AConfigProvider:j(()=>O(()=>Promise.resolve().then(()=>vu),void 0,import.meta.url)),ADescriptions:j(()=>O(()=>import("./index-CCOGrBpN.js"),__vite__mapDeps([179,174,1,24,3]),import.meta.url)),ADescriptionsItem:j(()=>O(()=>import("./index-CCOGrBpN.js"),__vite__mapDeps([179,174,1,24,3]),import.meta.url),e=>e.DescriptionsItem),ADivider:j(()=>O(()=>import("./index-BXXqtwrw.js"),__vite__mapDeps([198,1,3]),import.meta.url)),ADropdown:j(()=>O(()=>import("./index-D3WrGn-J.js"),__vite__mapDeps([199,167,153,10,9,1,24,13,150,20,11,12,14,15,16,3,17,18,19,8,154,189,165,22,6,166]),import.meta.url)),AEmpty:j(()=>O(()=>Promise.resolve().then(()=>Xc),void 0,import.meta.url)),AForm:j(()=>O(()=>import("./index-By3TOq5w.js"),__vite__mapDeps([172,3,1,153,10,9,24,13,150,20,169,170,148,173,174,175,21,176,16,161,177,178,152,154,155,156,22,8,164,144,18]),import.meta.url)),AFormItem:j(()=>O(()=>import("./index-By3TOq5w.js"),__vite__mapDeps([172,3,1,153,10,9,24,13,150,20,169,170,148,173,174,175,21,176,16,161,177,178,152,154,155,156,22,8,164,144,18]),import.meta.url),e=>e.default.Item||e.FormItem),AInput:j(()=>O(()=>import("./index-BY-BnqWj.js"),__vite__mapDeps([143,144,18,1,145,6,24,146,3,19,20,147,17,11,12,13,14,10,15,16,8,148,149,150]),import.meta.url)),AInputGroup:j(()=>O(()=>import("./index-BY-BnqWj.js"),__vite__mapDeps([143,144,18,1,145,6,24,146,3,19,20,147,17,11,12,13,14,10,15,16,8,148,149,150]),import.meta.url),e=>e.default.Group||e.InputGroup),AInputNumber:j(()=>O(()=>import("./index-DgWJBqLh.js"),__vite__mapDeps([190,3,1,171,16,10,5,144,18,24,6,145,147,17,19,20]),import.meta.url)),AInputPassword:j(()=>O(()=>import("./index-BY-BnqWj.js"),__vite__mapDeps([143,144,18,1,145,6,24,146,3,19,20,147,17,11,12,13,14,10,15,16,8,148,149,150]),import.meta.url),e=>e.default.Password||e.InputPassword),AInputSearch:j(()=>O(()=>import("./index-BY-BnqWj.js"),__vite__mapDeps([143,144,18,1,145,6,24,146,3,19,20,147,17,11,12,13,14,10,15,16,8,148,149,150]),import.meta.url),e=>e.default.Search||e.InputSearch),ALayout:j(()=>O(()=>import("./index-CYCwDDoS.js"),__vite__mapDeps([200,162,1,8,193,3]),import.meta.url)),ALayoutContent:j(()=>O(()=>import("./index-CYCwDDoS.js"),__vite__mapDeps([200,162,1,8,193,3]),import.meta.url),e=>e.LayoutContent||e.default.Content),ALayoutHeader:j(()=>O(()=>import("./index-CYCwDDoS.js"),__vite__mapDeps([200,162,1,8,193,3]),import.meta.url),e=>e.LayoutHeader||e.default.Header),ALayoutSider:j(()=>O(()=>import("./index-CYCwDDoS.js"),__vite__mapDeps([200,162,1,8,193,3]),import.meta.url),e=>e.LayoutSider||e.default.Sider),AList:j(()=>O(()=>import("./index-BIoymtmG.js"),__vite__mapDeps([185,186,8,1,3,187,188,153,10,9,24,13,150,20,5,146,7,163,149,171,6,157,14,144,18,145,19,189,165,17,174,147,155,173,175,21,176,178]),import.meta.url)),AListItem:j(()=>O(()=>import("./index-BIoymtmG.js"),__vite__mapDeps([185,186,8,1,3,187,188,153,10,9,24,13,150,20,5,146,7,163,149,171,6,157,14,144,18,145,19,189,165,17,174,147,155,173,175,21,176,178]),import.meta.url),e=>e.default.Item||e.Item),AMenu:j(()=>O(()=>import("./index-CfZqQ0JR.js"),__vite__mapDeps([160,1,15,16,153,10,9,24,13,150,20,161,162,163,149,152,154,155,156,22,8,5,3,164,165,166]),import.meta.url)),AMenuDivider:j(()=>O(()=>import("./index-CfZqQ0JR.js"),__vite__mapDeps([160,1,15,16,153,10,9,24,13,150,20,161,162,163,149,152,154,155,156,22,8,5,3,164,165,166]),import.meta.url),e=>e.default.Divider||e.Divider),AMenuItem:j(()=>O(()=>import("./index-CfZqQ0JR.js"),__vite__mapDeps([160,1,15,16,153,10,9,24,13,150,20,161,162,163,149,152,154,155,156,22,8,5,3,164,165,166]),import.meta.url),e=>e.default.Item||e.Item),AMenuItemGroup:j(()=>O(()=>import("./index-CfZqQ0JR.js"),__vite__mapDeps([160,1,15,16,153,10,9,24,13,150,20,161,162,163,149,152,154,155,156,22,8,5,3,164,165,166]),import.meta.url),e=>e.default.ItemGroup||e.ItemGroup),AModal:j(()=>O(()=>import("./index-Qm6Kn3iq.js"),__vite__mapDeps([4,5,6,7,8,1,9,10,3,11,12,13,14,15,16,17,18,19,20,21,22,23,24]),import.meta.url)),APopconfirm:j(()=>O(()=>import("./index-DqPwMq7i.js"),__vite__mapDeps([201,152,153,10,9,1,24,13,150,20,154,155,156,22,8,6,11,12,14,15,16,3,17,18,19,157,5,23]),import.meta.url)),AProgress:j(()=>O(()=>import("./index-DZ4t_1f-.js"),__vite__mapDeps([202,8,3,1,15,16,168,152,153,10,9,24,13,150,20,154,155,156,22]),import.meta.url)),ARadioButton:j(()=>O(()=>import("./index-BVL4FbJ3.js"),__vite__mapDeps([203,195,8,1,144,18,6,3]),import.meta.url),e=>e.default.Button||e.RadioButton),ARadioGroup:j(()=>O(()=>import("./index-BVL4FbJ3.js"),__vite__mapDeps([203,195,8,1,144,18,6,3]),import.meta.url),e=>e.default.Group||e.RadioGroup),AResult:j(()=>O(()=>import("./index-BCoEssNV.js"),__vite__mapDeps([204,3,1]),import.meta.url)),ARow:j(()=>O(()=>import("./index-sgVQrC2c.js"),__vite__mapDeps([205,173,174,1,175,21,176,3]),import.meta.url)),ASelect:j(()=>O(()=>import("./index-DiHryOr_.js").then(e=>e.i),__vite__mapDeps([188,153,10,9,1,24,13,150,20,5,146,7,163,149,171,8,6,157,14,3,144,18,145,19,189,165,17]),import.meta.url)),ASelectOption:j(()=>O(()=>import("./index-DiHryOr_.js").then(e=>e.i),__vite__mapDeps([188,153,10,9,1,24,13,150,20,5,146,7,163,149,171,8,6,157,14,3,144,18,145,19,189,165,17]),import.meta.url),e=>e.default.Option||e.Option),ASlider:j(()=>O(()=>import("./index-jRQNL6Yj.js"),__vite__mapDeps([206,153,10,9,1,24,13,150,20,5,8,152,154,155,156,22,144,18,3]),import.meta.url)),ASpace:j(()=>O(()=>import("./index-Czk89HQF.js"),__vite__mapDeps([183,175,21,1,19,18,20,3]),import.meta.url)),ASpin:j(()=>O(()=>import("./index-C1ssAFdz.js"),__vite__mapDeps([186,8,1,3]),import.meta.url)),AStatistic:j(()=>O(()=>import("./index-BgAPyeU5.js"),__vite__mapDeps([207,8,1,182,6,3]),import.meta.url)),ASwitch:j(()=>O(()=>import("./index-CszhN_r3.js"),__vite__mapDeps([184,3,1,5,12,13,14,10,144,18,6]),import.meta.url)),ATable:j(()=>O(()=>import("./index-B6FaCH6K.js"),__vite__mapDeps([208,1,21,187,3,188,153,10,9,24,13,150,20,5,146,7,163,149,171,8,6,157,14,144,18,145,19,189,165,17,174,147,155,164,15,16,186,194,195,199,167,11,12,154,22,166,160,161,162,152,156,203,143,148,177,170,151]),import.meta.url)),ATabPane:j(()=>O(()=>import("./index-DS0o68gc.js"),__vite__mapDeps([159,10,1,5,160,15,16,153,9,24,13,150,20,161,162,163,149,152,154,155,156,22,8,3,164,165,166,167,14,168,169,170,171,157,6]),import.meta.url),e=>e.default.TabPane||e.TabPane),ATabs:j(()=>O(()=>import("./index-DS0o68gc.js"),__vite__mapDeps([159,10,1,5,160,15,16,153,9,24,13,150,20,161,162,163,149,152,154,155,156,22,8,3,164,165,166,167,14,168,169,170,171,157,6]),import.meta.url)),ATag:j(()=>O(()=>import("./index-D_QlAaj5.js"),__vite__mapDeps([180,3,1,12,13,14,10,156]),import.meta.url)),ATextarea:j(()=>O(()=>import("./index-BY-BnqWj.js"),__vite__mapDeps([143,144,18,1,145,6,24,146,3,19,20,147,17,11,12,13,14,10,15,16,8,148,149,150]),import.meta.url),e=>e.default.TextArea||e.Textarea),ATooltip:j(()=>O(()=>import("./index-BnaKc6VJ.js").then(e=>e.i),__vite__mapDeps([152,153,10,9,1,24,13,150,20,154,155,156,22,8]),import.meta.url))};function Hg(e){Object.entries(Bg).forEach(([t,a])=>{e.component(t,a)})}const jg=new URL(""+new URL("favicon-FSU2gSy6.ico",import.meta.url).href,import.meta.url).href;let la=document.querySelector('link[rel="icon"]');la||(la=document.createElement("link"),la.rel="icon",document.head.appendChild(la));la.href=jg;const Jt=ts($g);Jt.use(as());Jt.use(Eu);Jt.use(ba);Hg(Jt);Jt.config.errorHandler=(e,t,a)=>{console.error("[Vue errorHandler]",a,e);try{const n=ba.global.t;Ve.error(`${n("error.runtime")}: ${e?.message||e}`,5)}catch{}};window.addEventListener("error",e=>{console.error("[window.error]",e.error||e.message)});window.addEventListener("unhandledrejection",e=>{console.error("[unhandledrejection]",e.reason)});Jt.mount("#app");export{Is as $,Fa as A,Qo as B,xt as C,kd as D,Et as E,ln as F,sh as G,Ja as H,Dt as I,jo as J,bt as K,Gn as L,Xg as M,Es as N,Vo as O,Ii as P,lh as Q,qn as R,oh as S,pn as T,ch as U,qg as V,ph as W,xo as X,vr as Y,_r as Z,Fg as _,Iu as a,Ai as a0,Qc as a1,Ds as a2,uh as a3,yn as a4,Kg as a5,eh as a6,th as a7,zg as a8,rh as a9,No as aa,ih as ab,dh as ac,nh as ad,$c as ae,vd as af,Jg as ag,Zg as ah,Yg as ai,Qg as aj,Ps as ak,_u as al,jc as am,Fs as an,ah as ao,Ss as ap,Ts as aq,bi as ar,bh as as,Gg as at,hh as au,pr as b,Dg as c,Ve as d,be as e,T as f,yh as g,Pe as h,Bs as i,_d as j,er as k,gh as l,Xa as m,fh as n,mh as o,Qa as p,vh as q,mi as r,Ee as s,he as t,Du as u,_h as v,Zo as w,Bo as x,yt as y,Yt as z};