chainlesschain 0.166.142 → 0.166.143

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 (169) hide show
  1. package/README.md +107 -2
  2. package/package.json +2 -2
  3. package/src/assets/linux-subreaper/linux-arm64/manifest.json +1 -1
  4. package/src/assets/linux-subreaper/linux-x64/manifest.json +1 -1
  5. package/src/assets/web-panel/assets/{AIOps-BefmcZw2.js → AIOps-DNySV2Kf.js} +1 -1
  6. package/src/assets/web-panel/assets/{ActionButton-BBlS9rmj.js → ActionButton-ByFuxJsa.js} +1 -1
  7. package/src/assets/web-panel/assets/{Analytics-DfNjXT9e.js → Analytics-ETbdywk5.js} +1 -1
  8. package/src/assets/web-panel/assets/{AppLayout-CIBZPPMS.js → AppLayout-CuHekZaP.js} +2 -2
  9. package/src/assets/web-panel/assets/{Artifacts-CE66rTTZ.js → Artifacts-BJJq2BDq.js} +1 -1
  10. package/src/assets/web-panel/assets/{Audit-DOC8Lt8U.js → Audit-DXrietv8.js} +1 -1
  11. package/src/assets/web-panel/assets/{BackgroundAgents-9TMG041Q.js → BackgroundAgents-CFB1fxsr.js} +1 -1
  12. package/src/assets/web-panel/assets/{Backup-us3KWb9F.js → Backup-VLtflRmp.js} +1 -1
  13. package/src/assets/web-panel/assets/{BaseInput-D6Q95Wr5.js → BaseInput-BbqBaS2r.js} +1 -1
  14. package/src/assets/web-panel/assets/{Chat-BPrM5ARp.js → Chat-t0g7BXL8.js} +1 -1
  15. package/src/assets/web-panel/assets/{ChatBubbleRenderer-Drs9vSc4.js → ChatBubbleRenderer-JNFsjV0j.js} +1 -1
  16. package/src/assets/web-panel/assets/{Checkbox-DqZGMV0o.js → Checkbox-BCSclHQb.js} +1 -1
  17. package/src/assets/web-panel/assets/{Codegen-CmolL6wr.js → Codegen-BcyINEHT.js} +1 -1
  18. package/src/assets/web-panel/assets/{Col-BwHSmoYQ.js → Col-C-0WNlwS.js} +1 -1
  19. package/src/assets/web-panel/assets/{Community-DGWqobpd.js → Community-DxZeoORX.js} +1 -1
  20. package/src/assets/web-panel/assets/{Compact-t_yy09-r.js → Compact-BNnX4jpz.js} +1 -1
  21. package/src/assets/web-panel/assets/{Compliance-D0S8-EsN.js → Compliance-KnjHtn9C.js} +1 -1
  22. package/src/assets/web-panel/assets/{Cowork-Y1LiuRwP.js → Cowork-CDyCrhbX.js} +1 -1
  23. package/src/assets/web-panel/assets/{Cron-FTqEw7QV.js → Cron-DxpS3D1G.js} +1 -1
  24. package/src/assets/web-panel/assets/{Crosschain-C3rPZ4Qu.js → Crosschain-BSzTZYyc.js} +1 -1
  25. package/src/assets/web-panel/assets/{DID-Ba2zySM-.js → DID-Bfj9Vdne.js} +1 -1
  26. package/src/assets/web-panel/assets/{Dashboard-D6xyN2ND.js → Dashboard-CcERVdgo.js} +2 -2
  27. package/src/assets/web-panel/assets/{Dropdown-BF4QuXJw.js → Dropdown-BtYXAz6E.js} +1 -1
  28. package/src/assets/web-panel/assets/{EmailListRenderer-s9dUxq14.js → EmailListRenderer-fdCMeGXU.js} +1 -1
  29. package/src/assets/web-panel/assets/{EvolutionSettings-CoAKOfqZ.js → EvolutionSettings-LHxhcuF2.js} +1 -1
  30. package/src/assets/web-panel/assets/{FamilyGuardDashboard-CEznwH1c.js → FamilyGuardDashboard-MIgtLsos.js} +1 -1
  31. package/src/assets/web-panel/assets/{Federation-rIzOt8-a.js → Federation-9-TOztwa.js} +1 -1
  32. package/src/assets/web-panel/assets/{FormItemContext-BARFiExr.js → FormItemContext-BKcwEE6w.js} +1 -1
  33. package/src/assets/web-panel/assets/{GenericCardRenderer-DI0A4swS.js → GenericCardRenderer-DJBPVUK2.js} +1 -1
  34. package/src/assets/web-panel/assets/{Git-DdmysND4.js → Git-C_XYISjG.js} +1 -1
  35. package/src/assets/web-panel/assets/{Governance-DrdhwUz2.js → Governance-DWsbPrwq.js} +1 -1
  36. package/src/assets/web-panel/assets/{Inference-Scm8tumd.js → Inference-D0_bYket.js} +1 -1
  37. package/src/assets/web-panel/assets/{KnowledgeGraph-_6bgPs4W.js → KnowledgeGraph-BoA3VQlw.js} +1 -1
  38. package/src/assets/web-panel/assets/{Logs-DW_v7bSo.js → Logs-LEGItChf.js} +1 -1
  39. package/src/assets/web-panel/assets/{MarkdownRenderer-7JABuv1j.js → MarkdownRenderer-DOHVc-Uw.js} +1 -1
  40. package/src/assets/web-panel/assets/{Marketplace-0h3YSvME.js → Marketplace-BKovl9NH.js} +1 -1
  41. package/src/assets/web-panel/assets/{McpTools-Byrg0Y3e.js → McpTools-D61ktoGb.js} +1 -1
  42. package/src/assets/web-panel/assets/{Memory-Cyoq-o29.js → Memory-CllorS0l.js} +1 -1
  43. package/src/assets/web-panel/assets/{MobileBridge-ISIlploU.js → MobileBridge-D-dJ78bk.js} +1 -1
  44. package/src/assets/web-panel/assets/{MobileProjects-04EncaRx.js → MobileProjects-CaxMKkd3.js} +1 -1
  45. package/src/assets/web-panel/assets/{Mtc-BMzkpyOF.js → Mtc-qEc62Qsx.js} +1 -1
  46. package/src/assets/web-panel/assets/{MtcAudit-Cx7BR5sz.js → MtcAudit-BY68jOZJ.js} +1 -1
  47. package/src/assets/web-panel/assets/{Multisig-D4pmkSX4.js → Multisig-eCCR8ELt.js} +1 -1
  48. package/src/assets/web-panel/assets/{NLProgramming-CCfaaWNu.js → NLProgramming-VtGv8pky.js} +1 -1
  49. package/src/assets/web-panel/assets/{Notes-Mq-1ZyaH.js → Notes-CPkYQySe.js} +1 -1
  50. package/src/assets/web-panel/assets/{NotificationSettings-rzf5V1TR.js → NotificationSettings-BuAvlHUu.js} +1 -1
  51. package/src/assets/web-panel/assets/{OrderTableRenderer-OREUs5ue.js → OrderTableRenderer-CLf_HAGv.js} +1 -1
  52. package/src/assets/web-panel/assets/{Organization-BQfOATgw.js → Organization-DjujhMbD.js} +1 -1
  53. package/src/assets/web-panel/assets/{Overflow-D7Pa6aaA.js → Overflow-RznznTS4.js} +1 -1
  54. package/src/assets/web-panel/assets/{P2P-CaJ79ZsC.js → P2P-DSa5ot0t.js} +1 -1
  55. package/src/assets/web-panel/assets/{PdhVaultBrowser-CtimQQN3.js → PdhVaultBrowser-oSEh6vkf.js} +2 -2
  56. package/src/assets/web-panel/assets/{Permissions-AzmmkLZ0.js → Permissions-CdOZguX9.js} +1 -1
  57. package/src/assets/web-panel/assets/{PersonalDataHub-BRU8ME7z.js → PersonalDataHub-B4--6iEF.js} +1 -1
  58. package/src/assets/web-panel/assets/{Pipeline-BnNqutXh.js → Pipeline-BnI57jE8.js} +1 -1
  59. package/src/assets/web-panel/assets/{Privacy-gMyZcxsz.js → Privacy-C8MId3ad.js} +1 -1
  60. package/src/assets/web-panel/assets/{ProjectInit-CkK-Fvr0.js → ProjectInit-DPGyYO8a.js} +1 -1
  61. package/src/assets/web-panel/assets/{ProjectSettings-CGY_uiIX.js → ProjectSettings-qBMqaJaO.js} +1 -1
  62. package/src/assets/web-panel/assets/{Projects-DBNC7xXG.js → Projects-Bq87Syce.js} +1 -1
  63. package/src/assets/web-panel/assets/{Providers-BVgWawtE.js → Providers-CVuG9Ugf.js} +1 -1
  64. package/src/assets/web-panel/assets/{QrScannerModal-DZILESCa.js → QrScannerModal-C94c8m3q.js} +1 -1
  65. package/src/assets/web-panel/assets/{QuickAsk-DwRBzFWW.js → QuickAsk-BvfsXZ8s.js} +1 -1
  66. package/src/assets/web-panel/assets/{Recommend-B3VxvUih.js → Recommend-CoezBYH9.js} +1 -1
  67. package/src/assets/web-panel/assets/{RemoteSession-DM74lufU.js → RemoteSession-CcYC4v3u.js} +1 -1
  68. package/src/assets/web-panel/assets/{Reputation-DOOEuGHh.js → Reputation-diDbL4cO.js} +1 -1
  69. package/src/assets/web-panel/assets/{Row-BZJYAo0S.js → Row-5qp3_fNS.js} +1 -1
  70. package/src/assets/web-panel/assets/{RssFeed-CYw44jcD.js → RssFeed-BCsMvpV4.js} +1 -1
  71. package/src/assets/web-panel/assets/{Search-CbypjDNG.js → Search-Br9nVxOp.js} +1 -1
  72. package/src/assets/web-panel/assets/{Security-0rSBDrXh.js → Security-BdOUzRfA.js} +1 -1
  73. package/src/assets/web-panel/assets/{Services-kqP79CBD.js → Services-Cp9TqzyN.js} +1 -1
  74. package/src/assets/web-panel/assets/{Skeleton-BjxvGVfI.js → Skeleton-DSdWsUMR.js} +1 -1
  75. package/src/assets/web-panel/assets/{Skills-SOoWyPCO.js → Skills-DRczAMTe.js} +1 -1
  76. package/src/assets/web-panel/assets/{Sla-kdRVAT19.js → Sla-B6G_Vd8N.js} +1 -1
  77. package/src/assets/web-panel/assets/{SpeechSettings-DILtcMaJ.js → SpeechSettings-BCcLx5x4.js} +1 -1
  78. package/src/assets/web-panel/assets/{SyncSettings-C98Jauc4.js → SyncSettings-BFhwtxCp.js} +1 -1
  79. package/src/assets/web-panel/assets/{Tasks-Bw-KaQAs.js → Tasks-DGRE6VHO.js} +1 -1
  80. package/src/assets/web-panel/assets/{Templates-CDJ027Hd.js → Templates-CJkJRFzd.js} +1 -1
  81. package/src/assets/web-panel/assets/{Tenant-BqNV62UA.js → Tenant-CAOv6p00.js} +1 -1
  82. package/src/assets/web-panel/assets/{Terminal-B8aQ3GLO.js → Terminal-CDrwwrKj.js} +1 -1
  83. package/src/assets/web-panel/assets/{TimelineRenderer-BSpccq11.js → TimelineRenderer-DI0YE2SN.js} +1 -1
  84. package/src/assets/web-panel/assets/{Tokens-BbGMoFO6.js → Tokens-DmqWTZSG.js} +1 -1
  85. package/src/assets/web-panel/assets/{Trigger-D75Mawa_.js → Trigger-CkXkhmjk.js} +1 -1
  86. package/src/assets/web-panel/assets/{Trust-BiK_Pk05.js → Trust-U8YJLcoJ.js} +1 -1
  87. package/src/assets/web-panel/assets/{UkeySign-Dv2xX_b9.js → UkeySign-BLTozMmr.js} +1 -1
  88. package/src/assets/web-panel/assets/{VideoEditing-CdBWfeEE.js → VideoEditing-DHKyFlZa.js} +1 -1
  89. package/src/assets/web-panel/assets/{Wallet-Cvrp4agg.js → Wallet-DapBxIQt.js} +1 -1
  90. package/src/assets/web-panel/assets/{WebAuthn-D0Htlf3v.js → WebAuthn-CkvG3yOr.js} +1 -1
  91. package/src/assets/web-panel/assets/{WorkflowEditor-nuUBOHIF.js → WorkflowEditor-cNLsinXP.js} +1 -1
  92. package/src/assets/web-panel/assets/{chat-C6MLShIo.js → chat-BzgkgfMC.js} +1 -1
  93. package/src/assets/web-panel/assets/{colors-9G5FqFOC.js → colors-BPpVKQsb.js} +1 -1
  94. package/src/assets/web-panel/assets/{compact-item-0M49EurU.js → compact-item-zepznuTv.js} +1 -1
  95. package/src/assets/web-panel/assets/{createContext-CiDDLED_.js → createContext-BRto-SQH.js} +1 -1
  96. package/src/assets/web-panel/assets/{hasIn-wZvUczmn.js → hasIn-CqsmU_n6.js} +1 -1
  97. package/src/assets/web-panel/assets/{index-B0JZ_ccM.js → index-B-bNzvdU.js} +1 -1
  98. package/src/assets/web-panel/assets/{index-B_XOMujL.js → index-B0Z6rfV-.js} +1 -1
  99. package/src/assets/web-panel/assets/{index-DwX9cOL6.js → index-B9_jRD2e.js} +1 -1
  100. package/src/assets/web-panel/assets/{index-DwUOiN8M.js → index-BEXKES7V.js} +1 -1
  101. package/src/assets/web-panel/assets/{index-8jz-X3xg.js → index-BGHd4D8F.js} +1 -1
  102. package/src/assets/web-panel/assets/{index-BVV2mBbo.js → index-BLwY9y0X.js} +1 -1
  103. package/src/assets/web-panel/assets/{index-qJcOtd8J.js → index-B_l6gfDh.js} +1 -1
  104. package/src/assets/web-panel/assets/{index-B6TAOS4G.js → index-BeBxP1M6.js} +1 -1
  105. package/src/assets/web-panel/assets/{index-C63qiwQz.js → index-BeSzdB7x.js} +1 -1
  106. package/src/assets/web-panel/assets/{index-k0BVfcwQ.js → index-BuBnM6Kz.js} +1 -1
  107. package/src/assets/web-panel/assets/{index-BXIY2BIN.js → index-Bz7pG8z3.js} +1 -1
  108. package/src/assets/web-panel/assets/{index-D51V5vmz.js → index-CBI-7Q3W.js} +1 -1
  109. package/src/assets/web-panel/assets/{index-BWTcG128.js → index-CTk9gY88.js} +1 -1
  110. package/src/assets/web-panel/assets/{index-sBsJaBmM.js → index-CdHXVSZ4.js} +1 -1
  111. package/src/assets/web-panel/assets/{index-Dclwd_lj.js → index-CmPnDXx4.js} +1 -1
  112. package/src/assets/web-panel/assets/{index-BlcOkfzz.js → index-CnezE05k.js} +1 -1
  113. package/src/assets/web-panel/assets/{index-DOxTmc3k.js → index-CwkhrUmw.js} +1 -1
  114. package/src/assets/web-panel/assets/{index-Cs66y4oC.js → index-CzoKAiyT.js} +3 -3
  115. package/src/assets/web-panel/assets/{index-BzeA3eRQ.js → index-DDPmr5Yr.js} +1 -1
  116. package/src/assets/web-panel/assets/{index-CdaLWIz-.js → index-DEbAW3Ec.js} +1 -1
  117. package/src/assets/web-panel/assets/{index-DvWRS-s7.js → index-DJSn3owP.js} +1 -1
  118. package/src/assets/web-panel/assets/{index-DN9t1qjW.js → index-DKa_jSfj.js} +1 -1
  119. package/src/assets/web-panel/assets/{index-BTCIIdoS.js → index-DUclk35X.js} +1 -1
  120. package/src/assets/web-panel/assets/{index-BmS2P_eX.js → index-DXkw-nt5.js} +1 -1
  121. package/src/assets/web-panel/assets/{index-CoxzvhoN.js → index-D_-w4KkD.js} +1 -1
  122. package/src/assets/web-panel/assets/{index-Cz1SAgnb.js → index-D_asIcU7.js} +1 -1
  123. package/src/assets/web-panel/assets/{index-BfwJm0DU.js → index-Df_CY0We.js} +1 -1
  124. package/src/assets/web-panel/assets/{index-JhfNEldK.js → index-Dnvj_XU-.js} +1 -1
  125. package/src/assets/web-panel/assets/index-DruOFzuF.js +1 -0
  126. package/src/assets/web-panel/assets/{index-D9J_tLGk.js → index-DvGttIXQ.js} +1 -1
  127. package/src/assets/web-panel/assets/{index-DcZxOXd8.js → index-JrVhUwyh.js} +1 -1
  128. package/src/assets/web-panel/assets/{index-CdUmgLxP.js → index-LVvzNdPa.js} +1 -1
  129. package/src/assets/web-panel/assets/{index-CTy9gD3m.js → index-Q5sAV7wp.js} +1 -1
  130. package/src/assets/web-panel/assets/{index-CtbFv3Et.js → index-S8fkzbQ_.js} +1 -1
  131. package/src/assets/web-panel/assets/{index-BCfxxScC.js → index-Z6DBe2RU.js} +1 -1
  132. package/src/assets/web-panel/assets/{index-dJ_V_Fqy.js → index-faHHtBKj.js} +1 -1
  133. package/src/assets/web-panel/assets/index-hhOrZ6HO.js +1 -0
  134. package/src/assets/web-panel/assets/{index-DeHSwWVG.js → index-w36TkwyO.js} +1 -1
  135. package/src/assets/web-panel/assets/{index-D2wN6VIq.js → index-wbvZayBb.js} +1 -1
  136. package/src/assets/web-panel/assets/{initDefaultProps-DyIyjurJ.js → initDefaultProps-BlhbrsQk.js} +1 -1
  137. package/src/assets/web-panel/assets/{motion-B2D0PuTM.js → motion-UZx12NPM.js} +1 -1
  138. package/src/assets/web-panel/assets/{move-B22T5MnN.js → move-BTby5W4q.js} +1 -1
  139. package/src/assets/web-panel/assets/{mtc-parser-i4b7HNzF.js → mtc-parser-BOOaGiCg.js} +1 -1
  140. package/src/assets/web-panel/assets/{omit-ByNIr_gz.js → omit-BVylGzEr.js} +1 -1
  141. package/src/assets/web-panel/assets/{pickAttrs-_xP2RvxA.js → pickAttrs-Cp3Nflbr.js} +1 -1
  142. package/src/assets/web-panel/assets/{placementArrow-CVDvzK0z.js → placementArrow-BVXYvwH2.js} +1 -1
  143. package/src/assets/web-panel/assets/{responsiveObserve-CI1toXJ_.js → responsiveObserve-C67SbpBN.js} +1 -1
  144. package/src/assets/web-panel/assets/{slide-2_VosSRQ.js → slide-CnBvM22R.js} +1 -1
  145. package/src/assets/web-panel/assets/{statusUtils-CMiWWrZC.js → statusUtils-T8fy53tf.js} +1 -1
  146. package/src/assets/web-panel/assets/{styleChecker-DY8wTVCe.js → styleChecker-Bf7i4nlm.js} +1 -1
  147. package/src/assets/web-panel/assets/{useFlexGapSupport-DkdcgIyl.js → useFlexGapSupport-BUKk7jqw.js} +1 -1
  148. package/src/assets/web-panel/assets/{useFs-gpl11PEF.js → useFs-T5lg6SpD.js} +1 -1
  149. package/src/assets/web-panel/assets/{usePersonalDataHub-DqnQ0H9y.js → usePersonalDataHub-Brvye8Tg.js} +1 -1
  150. package/src/assets/web-panel/assets/{vnode-CgY9xUvr.js → vnode-CK992ojP.js} +1 -1
  151. package/src/assets/web-panel/assets/{zoom-Ch0jan5_.js → zoom-CcABB_97.js} +1 -1
  152. package/src/assets/web-panel/index.html +1 -1
  153. package/src/command-help-index.json +1 -1
  154. package/src/commands/goal.js +211 -177
  155. package/src/commands/setup.js +17 -0
  156. package/src/data/changelog.json +14 -1
  157. package/src/lib/llm-onboarding-catalog.json +4 -3
  158. package/src/lib/plugin-runtime/cli-goal-capabilities.js +1 -0
  159. package/src/lib/plugin-runtime/cli-goal-draft-request.js +24 -10
  160. package/src/lib/plugin-runtime/cli-goal-drafts.js +77 -30
  161. package/src/lib/plugin-runtime/examples/goal-task-creator/README.md +60 -0
  162. package/src/lib/plugin-runtime/examples/goal-task-creator/plugin.json +13 -0
  163. package/src/lib/plugin-runtime/examples/project-delivery-assistant/README.md +47 -14
  164. package/src/lib/plugin-runtime/examples/project-delivery-assistant/plugin.json +8 -7
  165. package/src/lib/plugin-runtime/goal-extensions.js +1 -0
  166. package/src/lib/project-goal-connection.js +15 -3
  167. package/src/lib/project-goal-draft-connection.js +18 -11
  168. package/src/assets/web-panel/assets/index-C101Sec6.js +0 -1
  169. package/src/assets/web-panel/assets/index-D23TaGOp.js +0 -1
@@ -1 +1 @@
1
- import{t as I,_ as Ne,u as He,b as Re,d as k}from"./index-Cs66y4oC.js";import{R as qe,at as Ve,a0 as ie,b1 as ue,aG as de,b2 as De,aC as Ee,aD as Ke,aV as ce}from"./icons-DlxlFL4g.js";import{o as Je,M as m,R as f,P as i,c as s,N as o,Q as x,S as _,K as g,r as C,L as u,O as h,u as v,F as $,Y as U,f as pe,a as Y}from"./vendor-BXcBOG8b.js";function A(a,r=0){return typeof a=="number"&&Number.isFinite(a)?a:r}function Ge(a,r=0){if(!a||typeof a!="object")return null;const n=a.id||"";return n?{key:n,id:n,name:String(a.name||n),symbol:String(a.symbol||""),chainId:A(a.chainId??a.chain_id,0),_idx:r}:null}function Qe(a){const r=I(a);return Array.isArray(r)?r.map(Ge).filter(Boolean):[]}function We(a,r=0){if(!a||typeof a!="object")return null;const n=a.id||"";return n?{key:n,id:n,fromChain:a.fromChain??a.from_chain??"",toChain:a.toChain??a.to_chain??"",asset:String(a.asset||"native"),amount:A(a.amount,0),senderAddress:a.senderAddress??a.sender_address??"",recipientAddress:a.recipientAddress??a.recipient_address??"",lockTxHash:a.lockTxHash??a.lock_tx_hash??"",mintTxHash:a.mintTxHash??a.mint_tx_hash??"",status:String(a.status||"pending").toLowerCase(),feeAmount:A(a.feeAmount??a.fee_amount,0),feeChain:a.feeChain??a.fee_chain??"",errorMessage:a.errorMessage??a.error_message??"",createdAt:a.createdAt??a.created_at??null,completedAt:a.completedAt??a.completed_at??null,_idx:r}:null}function Xe(a){const r=I(a);return Array.isArray(r)?r.map(We).filter(Boolean):[]}function Ye(a,r=0){if(!a||typeof a!="object")return null;const n=a.id||"";return n?{key:n,id:n,fromChain:a.fromChain??a.from_chain??"",toChain:a.toChain??a.to_chain??"",fromAsset:a.fromAsset??a.from_asset??"native",toAsset:a.toAsset??a.to_asset??"native",amount:A(a.amount,0),counterpartyAddress:a.counterpartyAddress??a.counterparty_address??"",hashLock:a.hashLock??a.hash_lock??"",expiresAt:a.expiresAt??a.expires_at??null,status:String(a.status||"initiated").toLowerCase(),claimTxHash:a.claimTxHash??a.claim_tx_hash??"",refundTxHash:a.refundTxHash??a.refund_tx_hash??"",createdAt:a.createdAt??a.created_at??null,_idx:r}:null}function Ze(a){const r=I(a);return Array.isArray(r)?r.map(Ye).filter(Boolean):[]}function et(a,r=0){if(!a||typeof a!="object")return null;const n=a.id||"";return n?{key:n,id:n,fromChain:a.fromChain??a.from_chain??"",toChain:a.toChain??a.to_chain??"",payload:String(a.payload||""),targetContract:a.targetContract??a.target_contract??"",sourceTxHash:a.sourceTxHash??a.source_tx_hash??"",destinationTxHash:a.destinationTxHash??a.destination_tx_hash??"",status:String(a.status||"pending").toLowerCase(),retries:A(a.retries,0),createdAt:a.createdAt??a.created_at??null,deliveredAt:a.deliveredAt??a.delivered_at??null,_idx:r}:null}function tt(a){const r=I(a);return Array.isArray(r)?r.map(et).filter(Boolean):[]}const at={bridges:{total:0,byStatus:{},totalVolume:0,totalFees:0},swaps:{total:0,byStatus:{}},messages:{total:0,byStatus:{}}};function st(a){const r=JSON.parse(JSON.stringify(at)),n=I(a);return!n||typeof n!="object"||Array.isArray(n)||(n.bridges&&typeof n.bridges=="object"&&(r.bridges.total=A(n.bridges.total,0),r.bridges.totalVolume=A(n.bridges.totalVolume??n.bridges.total_volume,0),r.bridges.totalFees=A(n.bridges.totalFees??n.bridges.total_fees,0),n.bridges.byStatus&&typeof n.bridges.byStatus=="object"&&(r.bridges.byStatus={...n.bridges.byStatus})),n.swaps&&typeof n.swaps=="object"&&(r.swaps.total=A(n.swaps.total,0),n.swaps.byStatus&&typeof n.swaps.byStatus=="object"&&(r.swaps.byStatus={...n.swaps.byStatus})),n.messages&&typeof n.messages=="object"&&(r.messages.total=A(n.messages.total,0),n.messages.byStatus&&typeof n.messages.byStatus=="object"&&(r.messages.byStatus={...n.messages.byStatus}))),r}function ot(a){const r=I(a);return!r||typeof r!="object"||Array.isArray(r)?null:{fee:A(r.fee,0),breakdown:{sourceFee:A(r?.breakdown?.sourceFee??r?.breakdown?.source_fee,0),destFee:A(r?.breakdown?.destFee??r?.breakdown?.dest_fee,0),bridgeFee:A(r?.breakdown?.bridgeFee??r?.breakdown?.bridge_fee,0)},currency:String(r.currency||"USD")}}function me(a){if(a==null||a==="")return"—";const r=typeof a=="number"?new Date(a):new Date(String(a));return isNaN(r.getTime())?String(a):r.toLocaleString("zh-CN",{hour12:!1})}const lt={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},nt={class:"page-title"},rt={class:"page-sub"},it={style:{opacity:"0.7"}},ut={key:0,style:{opacity:"0.55","font-size":"10px","margin-left":"4px"}},dt={style:{color:"var(--text-primary)"}},ct={style:{color:"var(--text-primary)"}},pt={style:{color:"#722ed1","font-weight":"500"}},mt={style:{color:"var(--text-secondary)","margin-left":"4px","font-size":"11px"}},ft={key:2,style:{color:"var(--text-secondary)","font-size":"12px"}},ht={key:4,style:{color:"var(--text-secondary)","font-size":"11px"}},gt={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},yt={style:{color:"var(--text-primary)"}},bt={style:{color:"var(--text-secondary)","font-size":"11px",margin:"0 4px"}},vt={style:{color:"var(--text-primary)"}},_t={style:{color:"var(--text-secondary)","font-size":"11px","margin-left":"4px"}},kt={key:1,style:{color:"#722ed1","font-weight":"500"}},Ct={key:0,style:{color:"var(--text-secondary)","font-family":"monospace","font-size":"11px"}},xt={key:1,style:{color:"var(--text-muted)"}},$t={key:4,style:{color:"var(--text-secondary)","font-size":"11px"}},At={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},St={style:{color:"var(--text-primary)"}},wt={style:{color:"var(--text-primary)"}},Ft={key:1,style:{color:"var(--text-secondary)","font-size":"12px"}},zt={key:1,style:{color:"var(--text-muted)"}},Ut={key:4,style:{color:"var(--text-secondary)","font-size":"11px"}},Tt={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},jt={style:{"margin-top":"12px","font-size":"12px",color:"var(--text-secondary)"}},Mt={__name:"Crosschain",setup(a){const r=He(),{t:n}=Re(),L=C(!1),Z=C(!1),ee=C(!1),te=C(!1),ae=C(!1),S=C([]),fe=C([]),he=C([]),ge=C([]),N=C({bridges:{total:0,byStatus:{},totalVolume:0,totalFees:0},swaps:{total:0,byStatus:{}},messages:{total:0,byStatus:{}}}),H=C("bridges"),E=C(!1),K=C(!1),J=C(!1),se=C(!1),c=Y({fromChain:"",toChain:"",amount:null,asset:"",sender:"",recipient:""}),d=Y({fromChain:"",toChain:"",amount:null,fromAsset:"",toAsset:"",counterparty:"",timeoutMs:null}),y=Y({fromChain:"",toChain:"",payload:"",contract:""}),w=Y({fromChain:"",toChain:"",amount:null}),z=C(null),ke=pe(()=>[{title:n("crosschain.bridgeCols.route"),key:"route"},{title:n("crosschain.bridgeCols.amount"),key:"amount",width:"160px"},{title:n("crosschain.bridgeCols.fee"),key:"fee",width:"100px"},{title:n("crosschain.bridgeCols.status"),key:"status",width:"110px"},{title:n("crosschain.bridgeCols.createdAt"),key:"createdAt",width:"160px"}]),Ce=pe(()=>[{title:n("crosschain.swapCols.route"),key:"route"},{title:n("crosschain.swapCols.amount"),key:"amount",width:"110px"},{title:n("crosschain.swapCols.hashLock"),key:"hashLock",width:"160px"},{title:n("crosschain.swapCols.status"),key:"status",width:"120px"},{title:n("crosschain.swapCols.expiresAt"),key:"expiresAt",width:"160px"}]),xe=pe(()=>[{title:n("crosschain.messageCols.route"),key:"route",width:"220px"},{title:n("crosschain.messageCols.payload"),key:"payload"},{title:n("crosschain.messageCols.retries"),key:"retries",width:"80px"},{title:n("crosschain.messageCols.status"),key:"status",width:"110px"},{title:n("crosschain.messageCols.createdAt"),key:"createdAt",width:"160px"}]),$e={ethereum:"blue",polygon:"purple",bsc:"gold",arbitrum:"cyan",solana:"magenta"};function Ae(e){return $e[e]||"default"}function O(e){const l=S.value.find(F=>F.id===e);return l?l.name:e||"—"}function oe(e){const l=`crosschain.statusLabels.${e}`,F=n(l);return F===l?e:F}function Se(e){return{pending:"default",locked:"processing",minted:"cyan",completed:"green",refunded:"orange",failed:"red"}[e]||"default"}function we(e){return{initiated:"default",hash_locked:"processing",claimed:"green",refunded:"orange",expired:"red"}[e]||"default"}function Fe(e){return{pending:"default",sent:"processing",delivered:"green",failed:"red"}[e]||"default"}function ze(e,l){return e?e.length>l?e.slice(0,l)+"...":e:""}function Ue({key:e}){e==="bridge"?E.value=!0:e==="swap"?K.value=!0:e==="message"&&(J.value=!0)}async function R(){L.value=!0;try{const[e,l,F,q,le]=await Promise.all([r.execute("crosschain chains --json",8e3).catch(()=>({output:""})),r.execute("crosschain bridges --limit 200 --json",1e4).catch(()=>({output:""})),r.execute("crosschain swaps --limit 200 --json",1e4).catch(()=>({output:""})),r.execute("crosschain messages --limit 200 --json",1e4).catch(()=>({output:""})),r.execute("crosschain stats --json",8e3).catch(()=>({output:""}))]);S.value=Qe(e.output),fe.value=Xe(l.output),he.value=Ze(F.output),ge.value=tt(q.output),N.value=st(le.output)}catch(e){k.error(n("crosschain.msg.loadFailed")+": "+(e?.message||e))}finally{L.value=!1}}function G(e){return!e.fromChain||!e.toChain?(k.warning(n("crosschain.msg.pairEmpty")),!1):e.fromChain===e.toChain?(k.warning(n("crosschain.msg.pairSame")),!1):!0}async function Te(){if(G(c)){if(!c.amount||c.amount<=0){k.warning(n("crosschain.msg.amountInvalid"));return}Z.value=!0;try{const e=[`crosschain bridge ${c.fromChain} ${c.toChain} ${c.amount}`];c.asset.trim()&&e.push(`--asset "${c.asset.trim().replace(/"/g,'\\"')}"`),c.sender.trim()&&e.push(`--sender "${c.sender.trim().replace(/"/g,'\\"')}"`),c.recipient.trim()&&e.push(`--recipient "${c.recipient.trim().replace(/"/g,'\\"')}"`),e.push("--json");const{output:l}=await r.execute(e.join(" "),15e3);if(/error|failed|失败|unsupported/i.test(l)&&!/"bridgeId"/.test(l)){k.error(n("crosschain.msg.bridgeFailed")+": "+l.slice(0,120));return}k.success(n("crosschain.msg.bridgeSuccess")),E.value=!1,ye(),H.value="bridges",await R()}catch(e){k.error(n("crosschain.msg.bridgeFailed")+": "+(e?.message||e))}finally{Z.value=!1}}}async function je(){if(G(d)){if(!d.amount||d.amount<=0){k.warning(n("crosschain.msg.amountInvalid"));return}ee.value=!0;try{const e=[`crosschain swap ${d.fromChain} ${d.toChain} ${d.amount}`];d.fromAsset.trim()&&e.push(`--from-asset "${d.fromAsset.trim().replace(/"/g,'\\"')}"`),d.toAsset.trim()&&e.push(`--to-asset "${d.toAsset.trim().replace(/"/g,'\\"')}"`),d.counterparty.trim()&&e.push(`--counterparty "${d.counterparty.trim().replace(/"/g,'\\"')}"`),d.timeoutMs!=null&&e.push(`--timeout ${d.timeoutMs}`),e.push("--json");const{output:l}=await r.execute(e.join(" "),15e3);if(/error|failed|失败|unsupported/i.test(l)&&!/"swapId"/.test(l)){k.error(n("crosschain.msg.swapFailed")+": "+l.slice(0,120));return}k.success(n("crosschain.msg.swapSuccess")),K.value=!1,be(),H.value="swaps",await R()}catch(e){k.error(n("crosschain.msg.swapFailed")+": "+(e?.message||e))}finally{ee.value=!1}}}async function Me(){if(G(y)){te.value=!0;try{const e=[`crosschain send ${y.fromChain} ${y.toChain}`];y.payload.trim()&&e.push(`--payload "${y.payload.trim().replace(/"/g,'\\"')}"`),y.contract.trim()&&e.push(`--contract "${y.contract.trim().replace(/"/g,'\\"')}"`),e.push("--json");const{output:l}=await r.execute(e.join(" "),12e3);if(/error|failed|失败|unsupported/i.test(l)&&!/"messageId"/.test(l)){k.error(n("crosschain.msg.sendFailed")+": "+l.slice(0,120));return}k.success(n("crosschain.msg.sendSuccess")),J.value=!1,ve(),H.value="messages",await R()}catch(e){k.error(n("crosschain.msg.sendFailed")+": "+(e?.message||e))}finally{te.value=!1}}}async function Pe(){if(G(w)){if(!w.amount||w.amount<=0){k.warning(n("crosschain.msg.amountInvalid"));return}ae.value=!0,z.value=null;try{const e=`crosschain estimate-fee ${w.fromChain} ${w.toChain} ${w.amount} --json`,{output:l}=await r.execute(e,8e3),F=ot(l);if(!F){k.error(n("crosschain.msg.feeFailed")+": "+l.slice(0,120));return}z.value=F}catch(e){k.error(n("crosschain.msg.feeFailed")+": "+(e?.message||e))}finally{ae.value=!1}}}function ye(){c.fromChain="",c.toChain="",c.amount=null,c.asset="",c.sender="",c.recipient=""}function be(){d.fromChain="",d.toChain="",d.amount=null,d.fromAsset="",d.toAsset="",d.counterparty="",d.timeoutMs=null}function ve(){y.fromChain="",y.toChain="",y.payload="",y.contract=""}return Je(R),(e,l)=>{const F=g("a-button"),q=g("a-menu-item"),le=g("a-menu"),Le=g("a-dropdown"),_e=g("a-space"),B=g("a-statistic"),M=g("a-card"),V=g("a-col"),Oe=g("a-row"),D=g("a-tag"),ne=g("a-table"),re=g("a-tab-pane"),Be=g("a-tabs"),T=g("a-select-option"),j=g("a-select"),b=g("a-form-item"),Q=g("a-input-number"),P=g("a-input"),W=g("a-form"),X=g("a-modal"),Ie=g("a-textarea");return u(),m("div",null,[f("div",lt,[f("div",null,[f("h2",nt,i(e.$t("crosschain.title")),1),f("p",rt,i(e.$t("crosschain.subtitle")),1)]),s(_e,null,{default:o(()=>[s(F,{loading:L.value,onClick:R},{icon:o(()=>[s(v(qe))]),default:o(()=>[h(" "+i(e.$t("crosschain.refresh")),1)]),_:1},8,["loading"]),s(Le,{trigger:["click"]},{overlay:o(()=>[s(le,{onClick:Ue},{default:o(()=>[s(q,{key:"bridge"},{default:o(()=>[s(v(ie)),h(" "+i(e.$t("crosschain.actions.bridge")),1)]),_:1}),s(q,{key:"swap"},{default:o(()=>[s(v(ue)),h(" "+i(e.$t("crosschain.actions.swap")),1)]),_:1}),s(q,{key:"message"},{default:o(()=>[s(v(de)),h(" "+i(e.$t("crosschain.actions.message")),1)]),_:1})]),_:1})]),default:o(()=>[s(F,{type:"primary"},{icon:o(()=>[s(v(Ve))]),default:o(()=>[h(" "+i(e.$t("crosschain.newDropdown")),1)]),_:1})]),_:1}),s(F,{onClick:l[0]||(l[0]=t=>se.value=!0)},{icon:o(()=>[s(v(De))]),default:o(()=>[h(" "+i(e.$t("crosschain.feeEstimate")),1)]),_:1})]),_:1})]),s(Oe,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:o(()=>[s(V,{xs:12,sm:8,lg:5},{default:o(()=>[s(M,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:o(()=>[s(B,{title:e.$t("crosschain.stats.chains"),value:S.value.length,"value-style":{color:"#1677ff",fontSize:"20px"}},{prefix:o(()=>[s(v(Ee))]),_:1},8,["title","value"])]),_:1})]),_:1}),s(V,{xs:12,sm:8,lg:5},{default:o(()=>[s(M,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:o(()=>[s(B,{title:e.$t("crosschain.stats.bridges"),value:N.value.bridges.total,"value-style":{color:"#52c41a",fontSize:"20px"}},{prefix:o(()=>[s(v(ie))]),_:1},8,["title","value"])]),_:1})]),_:1}),s(V,{xs:12,sm:8,lg:5},{default:o(()=>[s(M,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:o(()=>[s(B,{title:e.$t("crosschain.stats.swaps"),value:N.value.swaps.total,"value-style":{color:"#722ed1",fontSize:"20px"}},{prefix:o(()=>[s(v(ue))]),_:1},8,["title","value"])]),_:1})]),_:1}),s(V,{xs:12,sm:8,lg:5},{default:o(()=>[s(M,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:o(()=>[s(B,{title:e.$t("crosschain.stats.messages"),value:N.value.messages.total,"value-style":{color:"#faad14",fontSize:"20px"}},{prefix:o(()=>[s(v(de))]),_:1},8,["title","value"])]),_:1})]),_:1}),s(V,{xs:24,sm:8,lg:4},{default:o(()=>[s(M,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:o(()=>[s(B,{title:e.$t("crosschain.stats.volume"),value:N.value.bridges.totalVolume,precision:2,"value-style":{color:"#13c2c2",fontSize:"20px"}},{prefix:o(()=>[s(v(Ke))]),_:1},8,["title","value"])]),_:1})]),_:1})]),_:1}),S.value.length?(u(),x(M,{key:0,title:e.$t("crosschain.chainsCard"),size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"20px"},"body-style":{padding:"12px 16px"}},{default:o(()=>[s(_e,{size:[12,8],wrap:""},{default:o(()=>[(u(!0),m($,null,U(S.value,t=>(u(),x(D,{key:t.id,color:Ae(t.id)},{default:o(()=>[h(i(t.name)+" ",1),f("span",it,"("+i(t.symbol)+")",1),t.chainId>0?(u(),m("span",ut,"#"+i(t.chainId),1)):_("",!0)]),_:2},1032,["color"]))),128))]),_:1})]),_:1},8,["title"])):_("",!0),s(Be,{activeKey:H.value,"onUpdate:activeKey":l[1]||(l[1]=t=>H.value=t),class:"xchain-tabs"},{default:o(()=>[s(re,{key:"bridges",tab:e.$t("crosschain.tabs.bridges")},{default:o(()=>[s(ne,{columns:ke.value,"data-source":fe.value,pagination:{pageSize:20,showTotal:t=>e.$t("crosschain.table.totalSuffix",{n:t})},size:"small",loading:L.value,style:{background:"var(--bg-card)"}},{bodyCell:o(({column:t,record:p})=>[t.key==="route"?(u(),m($,{key:0},[f("span",dt,i(O(p.fromChain)),1),s(v(ce),{style:{margin:"0 6px",color:"var(--text-secondary)","font-size":"11px"}}),f("span",ct,i(O(p.toChain)),1)],64)):_("",!0),t.key==="amount"?(u(),m($,{key:1},[f("span",pt,i(p.amount),1),f("span",mt,i(p.asset),1)],64)):_("",!0),t.key==="fee"?(u(),m("span",ft,i(p.feeAmount),1)):_("",!0),t.key==="status"?(u(),x(D,{key:3,color:Se(p.status)},{default:o(()=>[h(i(oe(p.status)),1)]),_:2},1032,["color"])):_("",!0),t.key==="createdAt"?(u(),m("span",ht,i(v(me)(p.createdAt)),1)):_("",!0)]),emptyText:o(()=>[f("div",gt,[s(v(ie),{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),h(" "+i(e.$t("crosschain.table.emptyBridges")),1)])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"]),s(re,{key:"swaps",tab:e.$t("crosschain.tabs.swaps")},{default:o(()=>[s(ne,{columns:Ce.value,"data-source":he.value,pagination:{pageSize:20,showTotal:t=>e.$t("crosschain.table.totalSuffix",{n:t})},size:"small",loading:L.value,style:{background:"var(--bg-card)"}},{bodyCell:o(({column:t,record:p})=>[t.key==="route"?(u(),m($,{key:0},[f("span",yt,i(O(p.fromChain)),1),f("span",bt,"("+i(p.fromAsset)+")",1),s(v(ce),{style:{margin:"0 4px",color:"var(--text-secondary)","font-size":"11px"}}),f("span",vt,i(O(p.toChain)),1),f("span",_t,"("+i(p.toAsset)+")",1)],64)):_("",!0),t.key==="amount"?(u(),m("span",kt,i(p.amount),1)):_("",!0),t.key==="hashLock"?(u(),m($,{key:2},[p.hashLock?(u(),m("span",Ct,i(p.hashLock.slice(0,14))+"... ",1)):(u(),m("span",xt,"—"))],64)):_("",!0),t.key==="status"?(u(),x(D,{key:3,color:we(p.status)},{default:o(()=>[h(i(oe(p.status)),1)]),_:2},1032,["color"])):_("",!0),t.key==="expiresAt"?(u(),m("span",$t,i(v(me)(p.expiresAt)),1)):_("",!0)]),emptyText:o(()=>[f("div",At,[s(v(ue),{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),h(" "+i(e.$t("crosschain.table.emptySwaps")),1)])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"]),s(re,{key:"messages",tab:e.$t("crosschain.tabs.messages")},{default:o(()=>[s(ne,{columns:xe.value,"data-source":ge.value,pagination:{pageSize:20,showTotal:t=>e.$t("crosschain.table.totalSuffix",{n:t})},size:"small",loading:L.value,style:{background:"var(--bg-card)"}},{bodyCell:o(({column:t,record:p})=>[t.key==="route"?(u(),m($,{key:0},[f("span",St,i(O(p.fromChain)),1),s(v(ce),{style:{margin:"0 6px",color:"var(--text-secondary)","font-size":"11px"}}),f("span",wt,i(O(p.toChain)),1)],64)):_("",!0),t.key==="payload"?(u(),m("span",Ft,i(ze(p.payload,60)||"—"),1)):_("",!0),t.key==="retries"?(u(),m($,{key:2},[p.retries>0?(u(),x(D,{key:0,color:"orange",style:{"font-size":"11px"}},{default:o(()=>[h(i(e.$t("crosschain.table.retrySuffix",{n:p.retries})),1)]),_:2},1024)):(u(),m("span",zt,"—"))],64)):_("",!0),t.key==="status"?(u(),x(D,{key:3,color:Fe(p.status)},{default:o(()=>[h(i(oe(p.status)),1)]),_:2},1032,["color"])):_("",!0),t.key==="createdAt"?(u(),m("span",Ut,i(v(me)(p.createdAt)),1)):_("",!0)]),emptyText:o(()=>[f("div",Tt,[s(v(de),{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),h(" "+i(e.$t("crosschain.table.emptyMessages")),1)])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"])]),_:1},8,["activeKey"]),s(X,{open:E.value,"onUpdate:open":l[8]||(l[8]=t=>E.value=t),title:e.$t("crosschain.bridge_modal.title"),"confirm-loading":Z.value,width:540,"ok-text":e.$t("crosschain.bridge_modal.ok"),"cancel-text":e.$t("crosschain.bridge_modal.cancel"),onOk:Te,onCancel:ye},{default:o(()=>[s(W,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:o(()=>[s(b,{label:e.$t("crosschain.bridge_modal.fromChain"),required:""},{default:o(()=>[s(j,{value:c.fromChain,"onUpdate:value":l[2]||(l[2]=t=>c.fromChain=t),placeholder:e.$t("crosschain.bridge_modal.fromChainPlaceholder")},{default:o(()=>[(u(!0),m($,null,U(S.value,t=>(u(),x(T,{key:t.id,value:t.id},{default:o(()=>[h(i(t.name),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value","placeholder"])]),_:1},8,["label"]),s(b,{label:e.$t("crosschain.bridge_modal.toChain"),required:""},{default:o(()=>[s(j,{value:c.toChain,"onUpdate:value":l[3]||(l[3]=t=>c.toChain=t),placeholder:e.$t("crosschain.bridge_modal.toChainPlaceholder")},{default:o(()=>[(u(!0),m($,null,U(S.value,t=>(u(),x(T,{key:t.id,value:t.id,disabled:t.id===c.fromChain},{default:o(()=>[h(i(t.name),1)]),_:2},1032,["value","disabled"]))),128))]),_:1},8,["value","placeholder"])]),_:1},8,["label"]),s(b,{label:e.$t("crosschain.bridge_modal.amount"),required:""},{default:o(()=>[s(Q,{value:c.amount,"onUpdate:value":l[4]||(l[4]=t=>c.amount=t),min:0,precision:6,style:{width:"100%"}},null,8,["value"])]),_:1},8,["label"]),s(b,{label:e.$t("crosschain.bridge_modal.asset")},{default:o(()=>[s(P,{value:c.asset,"onUpdate:value":l[5]||(l[5]=t=>c.asset=t),placeholder:e.$t("crosschain.bridge_modal.assetPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),s(b,{label:e.$t("crosschain.bridge_modal.sender")},{default:o(()=>[s(P,{value:c.sender,"onUpdate:value":l[6]||(l[6]=t=>c.sender=t),placeholder:e.$t("crosschain.bridge_modal.senderPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),s(b,{label:e.$t("crosschain.bridge_modal.recipient")},{default:o(()=>[s(P,{value:c.recipient,"onUpdate:value":l[7]||(l[7]=t=>c.recipient=t),placeholder:e.$t("crosschain.bridge_modal.recipientPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),s(X,{open:K.value,"onUpdate:open":l[16]||(l[16]=t=>K.value=t),title:e.$t("crosschain.swap_modal.title"),"confirm-loading":ee.value,width:540,"ok-text":e.$t("crosschain.swap_modal.ok"),"cancel-text":e.$t("crosschain.swap_modal.cancel"),onOk:je,onCancel:be},{default:o(()=>[s(W,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:o(()=>[s(b,{label:e.$t("crosschain.swap_modal.fromChain"),required:""},{default:o(()=>[s(j,{value:d.fromChain,"onUpdate:value":l[9]||(l[9]=t=>d.fromChain=t),placeholder:e.$t("crosschain.swap_modal.fromChainPlaceholder")},{default:o(()=>[(u(!0),m($,null,U(S.value,t=>(u(),x(T,{key:t.id,value:t.id},{default:o(()=>[h(i(t.name),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value","placeholder"])]),_:1},8,["label"]),s(b,{label:e.$t("crosschain.swap_modal.toChain"),required:""},{default:o(()=>[s(j,{value:d.toChain,"onUpdate:value":l[10]||(l[10]=t=>d.toChain=t),placeholder:e.$t("crosschain.swap_modal.toChainPlaceholder")},{default:o(()=>[(u(!0),m($,null,U(S.value,t=>(u(),x(T,{key:t.id,value:t.id,disabled:t.id===d.fromChain},{default:o(()=>[h(i(t.name),1)]),_:2},1032,["value","disabled"]))),128))]),_:1},8,["value","placeholder"])]),_:1},8,["label"]),s(b,{label:e.$t("crosschain.swap_modal.amount"),required:""},{default:o(()=>[s(Q,{value:d.amount,"onUpdate:value":l[11]||(l[11]=t=>d.amount=t),min:0,precision:6,style:{width:"100%"}},null,8,["value"])]),_:1},8,["label"]),s(b,{label:e.$t("crosschain.swap_modal.fromAsset")},{default:o(()=>[s(P,{value:d.fromAsset,"onUpdate:value":l[12]||(l[12]=t=>d.fromAsset=t),placeholder:e.$t("crosschain.swap_modal.assetPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),s(b,{label:e.$t("crosschain.swap_modal.toAsset")},{default:o(()=>[s(P,{value:d.toAsset,"onUpdate:value":l[13]||(l[13]=t=>d.toAsset=t),placeholder:e.$t("crosschain.swap_modal.assetPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),s(b,{label:e.$t("crosschain.swap_modal.counterparty")},{default:o(()=>[s(P,{value:d.counterparty,"onUpdate:value":l[14]||(l[14]=t=>d.counterparty=t),placeholder:e.$t("crosschain.swap_modal.counterpartyPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),s(b,{label:e.$t("crosschain.swap_modal.timeoutMs")},{default:o(()=>[s(Q,{value:d.timeoutMs,"onUpdate:value":l[15]||(l[15]=t=>d.timeoutMs=t),min:0,placeholder:e.$t("crosschain.swap_modal.timeoutPlaceholder"),style:{width:"100%"}},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),s(X,{open:J.value,"onUpdate:open":l[21]||(l[21]=t=>J.value=t),title:e.$t("crosschain.message_modal.title"),"confirm-loading":te.value,width:520,"ok-text":e.$t("crosschain.message_modal.ok"),"cancel-text":e.$t("crosschain.message_modal.cancel"),onOk:Me,onCancel:ve},{default:o(()=>[s(W,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:o(()=>[s(b,{label:e.$t("crosschain.message_modal.fromChain"),required:""},{default:o(()=>[s(j,{value:y.fromChain,"onUpdate:value":l[17]||(l[17]=t=>y.fromChain=t),placeholder:e.$t("crosschain.message_modal.fromChainPlaceholder")},{default:o(()=>[(u(!0),m($,null,U(S.value,t=>(u(),x(T,{key:t.id,value:t.id},{default:o(()=>[h(i(t.name),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value","placeholder"])]),_:1},8,["label"]),s(b,{label:e.$t("crosschain.message_modal.toChain"),required:""},{default:o(()=>[s(j,{value:y.toChain,"onUpdate:value":l[18]||(l[18]=t=>y.toChain=t),placeholder:e.$t("crosschain.message_modal.toChainPlaceholder")},{default:o(()=>[(u(!0),m($,null,U(S.value,t=>(u(),x(T,{key:t.id,value:t.id,disabled:t.id===y.fromChain},{default:o(()=>[h(i(t.name),1)]),_:2},1032,["value","disabled"]))),128))]),_:1},8,["value","placeholder"])]),_:1},8,["label"]),s(b,{label:e.$t("crosschain.message_modal.payload")},{default:o(()=>[s(Ie,{value:y.payload,"onUpdate:value":l[19]||(l[19]=t=>y.payload=t),"auto-size":{minRows:3,maxRows:8}},null,8,["value"])]),_:1},8,["label"]),s(b,{label:e.$t("crosschain.message_modal.contract")},{default:o(()=>[s(P,{value:y.contract,"onUpdate:value":l[20]||(l[20]=t=>y.contract=t),placeholder:e.$t("crosschain.message_modal.contractPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),s(X,{open:se.value,"onUpdate:open":l[25]||(l[25]=t=>se.value=t),title:e.$t("crosschain.fee_modal.title"),"confirm-loading":ae.value,width:480,"ok-text":e.$t("crosschain.fee_modal.ok"),"cancel-text":e.$t("crosschain.fee_modal.cancel"),onOk:Pe},{default:o(()=>[s(W,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:o(()=>[s(b,{label:e.$t("crosschain.fee_modal.fromChain"),required:""},{default:o(()=>[s(j,{value:w.fromChain,"onUpdate:value":l[22]||(l[22]=t=>w.fromChain=t)},{default:o(()=>[(u(!0),m($,null,U(S.value,t=>(u(),x(T,{key:t.id,value:t.id},{default:o(()=>[h(i(t.name),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),_:1},8,["label"]),s(b,{label:e.$t("crosschain.fee_modal.toChain"),required:""},{default:o(()=>[s(j,{value:w.toChain,"onUpdate:value":l[23]||(l[23]=t=>w.toChain=t)},{default:o(()=>[(u(!0),m($,null,U(S.value,t=>(u(),x(T,{key:t.id,value:t.id,disabled:t.id===w.fromChain},{default:o(()=>[h(i(t.name),1)]),_:2},1032,["value","disabled"]))),128))]),_:1},8,["value"])]),_:1},8,["label"]),s(b,{label:e.$t("crosschain.fee_modal.amount"),required:""},{default:o(()=>[s(Q,{value:w.amount,"onUpdate:value":l[24]||(l[24]=t=>w.amount=t),min:0,precision:6,style:{width:"100%"}},null,8,["value"])]),_:1},8,["label"])]),_:1}),z.value?(u(),x(M,{key:0,size:"small",style:{background:"var(--bg-base)","margin-top":"8px"}},{default:o(()=>[s(B,{title:e.$t("crosschain.fee_modal.resultTitle"),value:z.value.fee,precision:4,suffix:z.value.currency,"value-style":{color:"#1677ff"}},null,8,["title","value","suffix"]),f("div",jt,[f("div",null,i(e.$t("crosschain.fee_modal.sourceFee",{fee:z.value.breakdown.sourceFee,currency:z.value.currency})),1),f("div",null,i(e.$t("crosschain.fee_modal.destFee",{fee:z.value.breakdown.destFee,currency:z.value.currency})),1),f("div",null,i(e.$t("crosschain.fee_modal.bridgeFee",{fee:z.value.breakdown.bridgeFee,currency:z.value.currency})),1)])]),_:1})):_("",!0)]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"])])}}},Bt=Ne(Mt,[["__scopeId","data-v-21e0fb7f"]]);export{Bt as default};
1
+ import{t as I,_ as Ne,u as He,b as Re,d as k}from"./index-CzoKAiyT.js";import{R as qe,at as Ve,a0 as ie,b1 as ue,aG as de,b2 as De,aC as Ee,aD as Ke,aV as ce}from"./icons-DlxlFL4g.js";import{o as Je,M as m,R as f,P as i,c as s,N as o,Q as x,S as _,K as g,r as C,L as u,O as h,u as v,F as $,Y as U,f as pe,a as Y}from"./vendor-BXcBOG8b.js";function A(a,r=0){return typeof a=="number"&&Number.isFinite(a)?a:r}function Ge(a,r=0){if(!a||typeof a!="object")return null;const n=a.id||"";return n?{key:n,id:n,name:String(a.name||n),symbol:String(a.symbol||""),chainId:A(a.chainId??a.chain_id,0),_idx:r}:null}function Qe(a){const r=I(a);return Array.isArray(r)?r.map(Ge).filter(Boolean):[]}function We(a,r=0){if(!a||typeof a!="object")return null;const n=a.id||"";return n?{key:n,id:n,fromChain:a.fromChain??a.from_chain??"",toChain:a.toChain??a.to_chain??"",asset:String(a.asset||"native"),amount:A(a.amount,0),senderAddress:a.senderAddress??a.sender_address??"",recipientAddress:a.recipientAddress??a.recipient_address??"",lockTxHash:a.lockTxHash??a.lock_tx_hash??"",mintTxHash:a.mintTxHash??a.mint_tx_hash??"",status:String(a.status||"pending").toLowerCase(),feeAmount:A(a.feeAmount??a.fee_amount,0),feeChain:a.feeChain??a.fee_chain??"",errorMessage:a.errorMessage??a.error_message??"",createdAt:a.createdAt??a.created_at??null,completedAt:a.completedAt??a.completed_at??null,_idx:r}:null}function Xe(a){const r=I(a);return Array.isArray(r)?r.map(We).filter(Boolean):[]}function Ye(a,r=0){if(!a||typeof a!="object")return null;const n=a.id||"";return n?{key:n,id:n,fromChain:a.fromChain??a.from_chain??"",toChain:a.toChain??a.to_chain??"",fromAsset:a.fromAsset??a.from_asset??"native",toAsset:a.toAsset??a.to_asset??"native",amount:A(a.amount,0),counterpartyAddress:a.counterpartyAddress??a.counterparty_address??"",hashLock:a.hashLock??a.hash_lock??"",expiresAt:a.expiresAt??a.expires_at??null,status:String(a.status||"initiated").toLowerCase(),claimTxHash:a.claimTxHash??a.claim_tx_hash??"",refundTxHash:a.refundTxHash??a.refund_tx_hash??"",createdAt:a.createdAt??a.created_at??null,_idx:r}:null}function Ze(a){const r=I(a);return Array.isArray(r)?r.map(Ye).filter(Boolean):[]}function et(a,r=0){if(!a||typeof a!="object")return null;const n=a.id||"";return n?{key:n,id:n,fromChain:a.fromChain??a.from_chain??"",toChain:a.toChain??a.to_chain??"",payload:String(a.payload||""),targetContract:a.targetContract??a.target_contract??"",sourceTxHash:a.sourceTxHash??a.source_tx_hash??"",destinationTxHash:a.destinationTxHash??a.destination_tx_hash??"",status:String(a.status||"pending").toLowerCase(),retries:A(a.retries,0),createdAt:a.createdAt??a.created_at??null,deliveredAt:a.deliveredAt??a.delivered_at??null,_idx:r}:null}function tt(a){const r=I(a);return Array.isArray(r)?r.map(et).filter(Boolean):[]}const at={bridges:{total:0,byStatus:{},totalVolume:0,totalFees:0},swaps:{total:0,byStatus:{}},messages:{total:0,byStatus:{}}};function st(a){const r=JSON.parse(JSON.stringify(at)),n=I(a);return!n||typeof n!="object"||Array.isArray(n)||(n.bridges&&typeof n.bridges=="object"&&(r.bridges.total=A(n.bridges.total,0),r.bridges.totalVolume=A(n.bridges.totalVolume??n.bridges.total_volume,0),r.bridges.totalFees=A(n.bridges.totalFees??n.bridges.total_fees,0),n.bridges.byStatus&&typeof n.bridges.byStatus=="object"&&(r.bridges.byStatus={...n.bridges.byStatus})),n.swaps&&typeof n.swaps=="object"&&(r.swaps.total=A(n.swaps.total,0),n.swaps.byStatus&&typeof n.swaps.byStatus=="object"&&(r.swaps.byStatus={...n.swaps.byStatus})),n.messages&&typeof n.messages=="object"&&(r.messages.total=A(n.messages.total,0),n.messages.byStatus&&typeof n.messages.byStatus=="object"&&(r.messages.byStatus={...n.messages.byStatus}))),r}function ot(a){const r=I(a);return!r||typeof r!="object"||Array.isArray(r)?null:{fee:A(r.fee,0),breakdown:{sourceFee:A(r?.breakdown?.sourceFee??r?.breakdown?.source_fee,0),destFee:A(r?.breakdown?.destFee??r?.breakdown?.dest_fee,0),bridgeFee:A(r?.breakdown?.bridgeFee??r?.breakdown?.bridge_fee,0)},currency:String(r.currency||"USD")}}function me(a){if(a==null||a==="")return"—";const r=typeof a=="number"?new Date(a):new Date(String(a));return isNaN(r.getTime())?String(a):r.toLocaleString("zh-CN",{hour12:!1})}const lt={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},nt={class:"page-title"},rt={class:"page-sub"},it={style:{opacity:"0.7"}},ut={key:0,style:{opacity:"0.55","font-size":"10px","margin-left":"4px"}},dt={style:{color:"var(--text-primary)"}},ct={style:{color:"var(--text-primary)"}},pt={style:{color:"#722ed1","font-weight":"500"}},mt={style:{color:"var(--text-secondary)","margin-left":"4px","font-size":"11px"}},ft={key:2,style:{color:"var(--text-secondary)","font-size":"12px"}},ht={key:4,style:{color:"var(--text-secondary)","font-size":"11px"}},gt={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},yt={style:{color:"var(--text-primary)"}},bt={style:{color:"var(--text-secondary)","font-size":"11px",margin:"0 4px"}},vt={style:{color:"var(--text-primary)"}},_t={style:{color:"var(--text-secondary)","font-size":"11px","margin-left":"4px"}},kt={key:1,style:{color:"#722ed1","font-weight":"500"}},Ct={key:0,style:{color:"var(--text-secondary)","font-family":"monospace","font-size":"11px"}},xt={key:1,style:{color:"var(--text-muted)"}},$t={key:4,style:{color:"var(--text-secondary)","font-size":"11px"}},At={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},St={style:{color:"var(--text-primary)"}},wt={style:{color:"var(--text-primary)"}},Ft={key:1,style:{color:"var(--text-secondary)","font-size":"12px"}},zt={key:1,style:{color:"var(--text-muted)"}},Ut={key:4,style:{color:"var(--text-secondary)","font-size":"11px"}},Tt={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},jt={style:{"margin-top":"12px","font-size":"12px",color:"var(--text-secondary)"}},Mt={__name:"Crosschain",setup(a){const r=He(),{t:n}=Re(),L=C(!1),Z=C(!1),ee=C(!1),te=C(!1),ae=C(!1),S=C([]),fe=C([]),he=C([]),ge=C([]),N=C({bridges:{total:0,byStatus:{},totalVolume:0,totalFees:0},swaps:{total:0,byStatus:{}},messages:{total:0,byStatus:{}}}),H=C("bridges"),E=C(!1),K=C(!1),J=C(!1),se=C(!1),c=Y({fromChain:"",toChain:"",amount:null,asset:"",sender:"",recipient:""}),d=Y({fromChain:"",toChain:"",amount:null,fromAsset:"",toAsset:"",counterparty:"",timeoutMs:null}),y=Y({fromChain:"",toChain:"",payload:"",contract:""}),w=Y({fromChain:"",toChain:"",amount:null}),z=C(null),ke=pe(()=>[{title:n("crosschain.bridgeCols.route"),key:"route"},{title:n("crosschain.bridgeCols.amount"),key:"amount",width:"160px"},{title:n("crosschain.bridgeCols.fee"),key:"fee",width:"100px"},{title:n("crosschain.bridgeCols.status"),key:"status",width:"110px"},{title:n("crosschain.bridgeCols.createdAt"),key:"createdAt",width:"160px"}]),Ce=pe(()=>[{title:n("crosschain.swapCols.route"),key:"route"},{title:n("crosschain.swapCols.amount"),key:"amount",width:"110px"},{title:n("crosschain.swapCols.hashLock"),key:"hashLock",width:"160px"},{title:n("crosschain.swapCols.status"),key:"status",width:"120px"},{title:n("crosschain.swapCols.expiresAt"),key:"expiresAt",width:"160px"}]),xe=pe(()=>[{title:n("crosschain.messageCols.route"),key:"route",width:"220px"},{title:n("crosschain.messageCols.payload"),key:"payload"},{title:n("crosschain.messageCols.retries"),key:"retries",width:"80px"},{title:n("crosschain.messageCols.status"),key:"status",width:"110px"},{title:n("crosschain.messageCols.createdAt"),key:"createdAt",width:"160px"}]),$e={ethereum:"blue",polygon:"purple",bsc:"gold",arbitrum:"cyan",solana:"magenta"};function Ae(e){return $e[e]||"default"}function O(e){const l=S.value.find(F=>F.id===e);return l?l.name:e||"—"}function oe(e){const l=`crosschain.statusLabels.${e}`,F=n(l);return F===l?e:F}function Se(e){return{pending:"default",locked:"processing",minted:"cyan",completed:"green",refunded:"orange",failed:"red"}[e]||"default"}function we(e){return{initiated:"default",hash_locked:"processing",claimed:"green",refunded:"orange",expired:"red"}[e]||"default"}function Fe(e){return{pending:"default",sent:"processing",delivered:"green",failed:"red"}[e]||"default"}function ze(e,l){return e?e.length>l?e.slice(0,l)+"...":e:""}function Ue({key:e}){e==="bridge"?E.value=!0:e==="swap"?K.value=!0:e==="message"&&(J.value=!0)}async function R(){L.value=!0;try{const[e,l,F,q,le]=await Promise.all([r.execute("crosschain chains --json",8e3).catch(()=>({output:""})),r.execute("crosschain bridges --limit 200 --json",1e4).catch(()=>({output:""})),r.execute("crosschain swaps --limit 200 --json",1e4).catch(()=>({output:""})),r.execute("crosschain messages --limit 200 --json",1e4).catch(()=>({output:""})),r.execute("crosschain stats --json",8e3).catch(()=>({output:""}))]);S.value=Qe(e.output),fe.value=Xe(l.output),he.value=Ze(F.output),ge.value=tt(q.output),N.value=st(le.output)}catch(e){k.error(n("crosschain.msg.loadFailed")+": "+(e?.message||e))}finally{L.value=!1}}function G(e){return!e.fromChain||!e.toChain?(k.warning(n("crosschain.msg.pairEmpty")),!1):e.fromChain===e.toChain?(k.warning(n("crosschain.msg.pairSame")),!1):!0}async function Te(){if(G(c)){if(!c.amount||c.amount<=0){k.warning(n("crosschain.msg.amountInvalid"));return}Z.value=!0;try{const e=[`crosschain bridge ${c.fromChain} ${c.toChain} ${c.amount}`];c.asset.trim()&&e.push(`--asset "${c.asset.trim().replace(/"/g,'\\"')}"`),c.sender.trim()&&e.push(`--sender "${c.sender.trim().replace(/"/g,'\\"')}"`),c.recipient.trim()&&e.push(`--recipient "${c.recipient.trim().replace(/"/g,'\\"')}"`),e.push("--json");const{output:l}=await r.execute(e.join(" "),15e3);if(/error|failed|失败|unsupported/i.test(l)&&!/"bridgeId"/.test(l)){k.error(n("crosschain.msg.bridgeFailed")+": "+l.slice(0,120));return}k.success(n("crosschain.msg.bridgeSuccess")),E.value=!1,ye(),H.value="bridges",await R()}catch(e){k.error(n("crosschain.msg.bridgeFailed")+": "+(e?.message||e))}finally{Z.value=!1}}}async function je(){if(G(d)){if(!d.amount||d.amount<=0){k.warning(n("crosschain.msg.amountInvalid"));return}ee.value=!0;try{const e=[`crosschain swap ${d.fromChain} ${d.toChain} ${d.amount}`];d.fromAsset.trim()&&e.push(`--from-asset "${d.fromAsset.trim().replace(/"/g,'\\"')}"`),d.toAsset.trim()&&e.push(`--to-asset "${d.toAsset.trim().replace(/"/g,'\\"')}"`),d.counterparty.trim()&&e.push(`--counterparty "${d.counterparty.trim().replace(/"/g,'\\"')}"`),d.timeoutMs!=null&&e.push(`--timeout ${d.timeoutMs}`),e.push("--json");const{output:l}=await r.execute(e.join(" "),15e3);if(/error|failed|失败|unsupported/i.test(l)&&!/"swapId"/.test(l)){k.error(n("crosschain.msg.swapFailed")+": "+l.slice(0,120));return}k.success(n("crosschain.msg.swapSuccess")),K.value=!1,be(),H.value="swaps",await R()}catch(e){k.error(n("crosschain.msg.swapFailed")+": "+(e?.message||e))}finally{ee.value=!1}}}async function Me(){if(G(y)){te.value=!0;try{const e=[`crosschain send ${y.fromChain} ${y.toChain}`];y.payload.trim()&&e.push(`--payload "${y.payload.trim().replace(/"/g,'\\"')}"`),y.contract.trim()&&e.push(`--contract "${y.contract.trim().replace(/"/g,'\\"')}"`),e.push("--json");const{output:l}=await r.execute(e.join(" "),12e3);if(/error|failed|失败|unsupported/i.test(l)&&!/"messageId"/.test(l)){k.error(n("crosschain.msg.sendFailed")+": "+l.slice(0,120));return}k.success(n("crosschain.msg.sendSuccess")),J.value=!1,ve(),H.value="messages",await R()}catch(e){k.error(n("crosschain.msg.sendFailed")+": "+(e?.message||e))}finally{te.value=!1}}}async function Pe(){if(G(w)){if(!w.amount||w.amount<=0){k.warning(n("crosschain.msg.amountInvalid"));return}ae.value=!0,z.value=null;try{const e=`crosschain estimate-fee ${w.fromChain} ${w.toChain} ${w.amount} --json`,{output:l}=await r.execute(e,8e3),F=ot(l);if(!F){k.error(n("crosschain.msg.feeFailed")+": "+l.slice(0,120));return}z.value=F}catch(e){k.error(n("crosschain.msg.feeFailed")+": "+(e?.message||e))}finally{ae.value=!1}}}function ye(){c.fromChain="",c.toChain="",c.amount=null,c.asset="",c.sender="",c.recipient=""}function be(){d.fromChain="",d.toChain="",d.amount=null,d.fromAsset="",d.toAsset="",d.counterparty="",d.timeoutMs=null}function ve(){y.fromChain="",y.toChain="",y.payload="",y.contract=""}return Je(R),(e,l)=>{const F=g("a-button"),q=g("a-menu-item"),le=g("a-menu"),Le=g("a-dropdown"),_e=g("a-space"),B=g("a-statistic"),M=g("a-card"),V=g("a-col"),Oe=g("a-row"),D=g("a-tag"),ne=g("a-table"),re=g("a-tab-pane"),Be=g("a-tabs"),T=g("a-select-option"),j=g("a-select"),b=g("a-form-item"),Q=g("a-input-number"),P=g("a-input"),W=g("a-form"),X=g("a-modal"),Ie=g("a-textarea");return u(),m("div",null,[f("div",lt,[f("div",null,[f("h2",nt,i(e.$t("crosschain.title")),1),f("p",rt,i(e.$t("crosschain.subtitle")),1)]),s(_e,null,{default:o(()=>[s(F,{loading:L.value,onClick:R},{icon:o(()=>[s(v(qe))]),default:o(()=>[h(" "+i(e.$t("crosschain.refresh")),1)]),_:1},8,["loading"]),s(Le,{trigger:["click"]},{overlay:o(()=>[s(le,{onClick:Ue},{default:o(()=>[s(q,{key:"bridge"},{default:o(()=>[s(v(ie)),h(" "+i(e.$t("crosschain.actions.bridge")),1)]),_:1}),s(q,{key:"swap"},{default:o(()=>[s(v(ue)),h(" "+i(e.$t("crosschain.actions.swap")),1)]),_:1}),s(q,{key:"message"},{default:o(()=>[s(v(de)),h(" "+i(e.$t("crosschain.actions.message")),1)]),_:1})]),_:1})]),default:o(()=>[s(F,{type:"primary"},{icon:o(()=>[s(v(Ve))]),default:o(()=>[h(" "+i(e.$t("crosschain.newDropdown")),1)]),_:1})]),_:1}),s(F,{onClick:l[0]||(l[0]=t=>se.value=!0)},{icon:o(()=>[s(v(De))]),default:o(()=>[h(" "+i(e.$t("crosschain.feeEstimate")),1)]),_:1})]),_:1})]),s(Oe,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:o(()=>[s(V,{xs:12,sm:8,lg:5},{default:o(()=>[s(M,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:o(()=>[s(B,{title:e.$t("crosschain.stats.chains"),value:S.value.length,"value-style":{color:"#1677ff",fontSize:"20px"}},{prefix:o(()=>[s(v(Ee))]),_:1},8,["title","value"])]),_:1})]),_:1}),s(V,{xs:12,sm:8,lg:5},{default:o(()=>[s(M,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:o(()=>[s(B,{title:e.$t("crosschain.stats.bridges"),value:N.value.bridges.total,"value-style":{color:"#52c41a",fontSize:"20px"}},{prefix:o(()=>[s(v(ie))]),_:1},8,["title","value"])]),_:1})]),_:1}),s(V,{xs:12,sm:8,lg:5},{default:o(()=>[s(M,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:o(()=>[s(B,{title:e.$t("crosschain.stats.swaps"),value:N.value.swaps.total,"value-style":{color:"#722ed1",fontSize:"20px"}},{prefix:o(()=>[s(v(ue))]),_:1},8,["title","value"])]),_:1})]),_:1}),s(V,{xs:12,sm:8,lg:5},{default:o(()=>[s(M,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:o(()=>[s(B,{title:e.$t("crosschain.stats.messages"),value:N.value.messages.total,"value-style":{color:"#faad14",fontSize:"20px"}},{prefix:o(()=>[s(v(de))]),_:1},8,["title","value"])]),_:1})]),_:1}),s(V,{xs:24,sm:8,lg:4},{default:o(()=>[s(M,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:o(()=>[s(B,{title:e.$t("crosschain.stats.volume"),value:N.value.bridges.totalVolume,precision:2,"value-style":{color:"#13c2c2",fontSize:"20px"}},{prefix:o(()=>[s(v(Ke))]),_:1},8,["title","value"])]),_:1})]),_:1})]),_:1}),S.value.length?(u(),x(M,{key:0,title:e.$t("crosschain.chainsCard"),size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"20px"},"body-style":{padding:"12px 16px"}},{default:o(()=>[s(_e,{size:[12,8],wrap:""},{default:o(()=>[(u(!0),m($,null,U(S.value,t=>(u(),x(D,{key:t.id,color:Ae(t.id)},{default:o(()=>[h(i(t.name)+" ",1),f("span",it,"("+i(t.symbol)+")",1),t.chainId>0?(u(),m("span",ut,"#"+i(t.chainId),1)):_("",!0)]),_:2},1032,["color"]))),128))]),_:1})]),_:1},8,["title"])):_("",!0),s(Be,{activeKey:H.value,"onUpdate:activeKey":l[1]||(l[1]=t=>H.value=t),class:"xchain-tabs"},{default:o(()=>[s(re,{key:"bridges",tab:e.$t("crosschain.tabs.bridges")},{default:o(()=>[s(ne,{columns:ke.value,"data-source":fe.value,pagination:{pageSize:20,showTotal:t=>e.$t("crosschain.table.totalSuffix",{n:t})},size:"small",loading:L.value,style:{background:"var(--bg-card)"}},{bodyCell:o(({column:t,record:p})=>[t.key==="route"?(u(),m($,{key:0},[f("span",dt,i(O(p.fromChain)),1),s(v(ce),{style:{margin:"0 6px",color:"var(--text-secondary)","font-size":"11px"}}),f("span",ct,i(O(p.toChain)),1)],64)):_("",!0),t.key==="amount"?(u(),m($,{key:1},[f("span",pt,i(p.amount),1),f("span",mt,i(p.asset),1)],64)):_("",!0),t.key==="fee"?(u(),m("span",ft,i(p.feeAmount),1)):_("",!0),t.key==="status"?(u(),x(D,{key:3,color:Se(p.status)},{default:o(()=>[h(i(oe(p.status)),1)]),_:2},1032,["color"])):_("",!0),t.key==="createdAt"?(u(),m("span",ht,i(v(me)(p.createdAt)),1)):_("",!0)]),emptyText:o(()=>[f("div",gt,[s(v(ie),{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),h(" "+i(e.$t("crosschain.table.emptyBridges")),1)])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"]),s(re,{key:"swaps",tab:e.$t("crosschain.tabs.swaps")},{default:o(()=>[s(ne,{columns:Ce.value,"data-source":he.value,pagination:{pageSize:20,showTotal:t=>e.$t("crosschain.table.totalSuffix",{n:t})},size:"small",loading:L.value,style:{background:"var(--bg-card)"}},{bodyCell:o(({column:t,record:p})=>[t.key==="route"?(u(),m($,{key:0},[f("span",yt,i(O(p.fromChain)),1),f("span",bt,"("+i(p.fromAsset)+")",1),s(v(ce),{style:{margin:"0 4px",color:"var(--text-secondary)","font-size":"11px"}}),f("span",vt,i(O(p.toChain)),1),f("span",_t,"("+i(p.toAsset)+")",1)],64)):_("",!0),t.key==="amount"?(u(),m("span",kt,i(p.amount),1)):_("",!0),t.key==="hashLock"?(u(),m($,{key:2},[p.hashLock?(u(),m("span",Ct,i(p.hashLock.slice(0,14))+"... ",1)):(u(),m("span",xt,"—"))],64)):_("",!0),t.key==="status"?(u(),x(D,{key:3,color:we(p.status)},{default:o(()=>[h(i(oe(p.status)),1)]),_:2},1032,["color"])):_("",!0),t.key==="expiresAt"?(u(),m("span",$t,i(v(me)(p.expiresAt)),1)):_("",!0)]),emptyText:o(()=>[f("div",At,[s(v(ue),{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),h(" "+i(e.$t("crosschain.table.emptySwaps")),1)])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"]),s(re,{key:"messages",tab:e.$t("crosschain.tabs.messages")},{default:o(()=>[s(ne,{columns:xe.value,"data-source":ge.value,pagination:{pageSize:20,showTotal:t=>e.$t("crosschain.table.totalSuffix",{n:t})},size:"small",loading:L.value,style:{background:"var(--bg-card)"}},{bodyCell:o(({column:t,record:p})=>[t.key==="route"?(u(),m($,{key:0},[f("span",St,i(O(p.fromChain)),1),s(v(ce),{style:{margin:"0 6px",color:"var(--text-secondary)","font-size":"11px"}}),f("span",wt,i(O(p.toChain)),1)],64)):_("",!0),t.key==="payload"?(u(),m("span",Ft,i(ze(p.payload,60)||"—"),1)):_("",!0),t.key==="retries"?(u(),m($,{key:2},[p.retries>0?(u(),x(D,{key:0,color:"orange",style:{"font-size":"11px"}},{default:o(()=>[h(i(e.$t("crosschain.table.retrySuffix",{n:p.retries})),1)]),_:2},1024)):(u(),m("span",zt,"—"))],64)):_("",!0),t.key==="status"?(u(),x(D,{key:3,color:Fe(p.status)},{default:o(()=>[h(i(oe(p.status)),1)]),_:2},1032,["color"])):_("",!0),t.key==="createdAt"?(u(),m("span",Ut,i(v(me)(p.createdAt)),1)):_("",!0)]),emptyText:o(()=>[f("div",Tt,[s(v(de),{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),h(" "+i(e.$t("crosschain.table.emptyMessages")),1)])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"])]),_:1},8,["activeKey"]),s(X,{open:E.value,"onUpdate:open":l[8]||(l[8]=t=>E.value=t),title:e.$t("crosschain.bridge_modal.title"),"confirm-loading":Z.value,width:540,"ok-text":e.$t("crosschain.bridge_modal.ok"),"cancel-text":e.$t("crosschain.bridge_modal.cancel"),onOk:Te,onCancel:ye},{default:o(()=>[s(W,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:o(()=>[s(b,{label:e.$t("crosschain.bridge_modal.fromChain"),required:""},{default:o(()=>[s(j,{value:c.fromChain,"onUpdate:value":l[2]||(l[2]=t=>c.fromChain=t),placeholder:e.$t("crosschain.bridge_modal.fromChainPlaceholder")},{default:o(()=>[(u(!0),m($,null,U(S.value,t=>(u(),x(T,{key:t.id,value:t.id},{default:o(()=>[h(i(t.name),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value","placeholder"])]),_:1},8,["label"]),s(b,{label:e.$t("crosschain.bridge_modal.toChain"),required:""},{default:o(()=>[s(j,{value:c.toChain,"onUpdate:value":l[3]||(l[3]=t=>c.toChain=t),placeholder:e.$t("crosschain.bridge_modal.toChainPlaceholder")},{default:o(()=>[(u(!0),m($,null,U(S.value,t=>(u(),x(T,{key:t.id,value:t.id,disabled:t.id===c.fromChain},{default:o(()=>[h(i(t.name),1)]),_:2},1032,["value","disabled"]))),128))]),_:1},8,["value","placeholder"])]),_:1},8,["label"]),s(b,{label:e.$t("crosschain.bridge_modal.amount"),required:""},{default:o(()=>[s(Q,{value:c.amount,"onUpdate:value":l[4]||(l[4]=t=>c.amount=t),min:0,precision:6,style:{width:"100%"}},null,8,["value"])]),_:1},8,["label"]),s(b,{label:e.$t("crosschain.bridge_modal.asset")},{default:o(()=>[s(P,{value:c.asset,"onUpdate:value":l[5]||(l[5]=t=>c.asset=t),placeholder:e.$t("crosschain.bridge_modal.assetPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),s(b,{label:e.$t("crosschain.bridge_modal.sender")},{default:o(()=>[s(P,{value:c.sender,"onUpdate:value":l[6]||(l[6]=t=>c.sender=t),placeholder:e.$t("crosschain.bridge_modal.senderPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),s(b,{label:e.$t("crosschain.bridge_modal.recipient")},{default:o(()=>[s(P,{value:c.recipient,"onUpdate:value":l[7]||(l[7]=t=>c.recipient=t),placeholder:e.$t("crosschain.bridge_modal.recipientPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),s(X,{open:K.value,"onUpdate:open":l[16]||(l[16]=t=>K.value=t),title:e.$t("crosschain.swap_modal.title"),"confirm-loading":ee.value,width:540,"ok-text":e.$t("crosschain.swap_modal.ok"),"cancel-text":e.$t("crosschain.swap_modal.cancel"),onOk:je,onCancel:be},{default:o(()=>[s(W,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:o(()=>[s(b,{label:e.$t("crosschain.swap_modal.fromChain"),required:""},{default:o(()=>[s(j,{value:d.fromChain,"onUpdate:value":l[9]||(l[9]=t=>d.fromChain=t),placeholder:e.$t("crosschain.swap_modal.fromChainPlaceholder")},{default:o(()=>[(u(!0),m($,null,U(S.value,t=>(u(),x(T,{key:t.id,value:t.id},{default:o(()=>[h(i(t.name),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value","placeholder"])]),_:1},8,["label"]),s(b,{label:e.$t("crosschain.swap_modal.toChain"),required:""},{default:o(()=>[s(j,{value:d.toChain,"onUpdate:value":l[10]||(l[10]=t=>d.toChain=t),placeholder:e.$t("crosschain.swap_modal.toChainPlaceholder")},{default:o(()=>[(u(!0),m($,null,U(S.value,t=>(u(),x(T,{key:t.id,value:t.id,disabled:t.id===d.fromChain},{default:o(()=>[h(i(t.name),1)]),_:2},1032,["value","disabled"]))),128))]),_:1},8,["value","placeholder"])]),_:1},8,["label"]),s(b,{label:e.$t("crosschain.swap_modal.amount"),required:""},{default:o(()=>[s(Q,{value:d.amount,"onUpdate:value":l[11]||(l[11]=t=>d.amount=t),min:0,precision:6,style:{width:"100%"}},null,8,["value"])]),_:1},8,["label"]),s(b,{label:e.$t("crosschain.swap_modal.fromAsset")},{default:o(()=>[s(P,{value:d.fromAsset,"onUpdate:value":l[12]||(l[12]=t=>d.fromAsset=t),placeholder:e.$t("crosschain.swap_modal.assetPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),s(b,{label:e.$t("crosschain.swap_modal.toAsset")},{default:o(()=>[s(P,{value:d.toAsset,"onUpdate:value":l[13]||(l[13]=t=>d.toAsset=t),placeholder:e.$t("crosschain.swap_modal.assetPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),s(b,{label:e.$t("crosschain.swap_modal.counterparty")},{default:o(()=>[s(P,{value:d.counterparty,"onUpdate:value":l[14]||(l[14]=t=>d.counterparty=t),placeholder:e.$t("crosschain.swap_modal.counterpartyPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),s(b,{label:e.$t("crosschain.swap_modal.timeoutMs")},{default:o(()=>[s(Q,{value:d.timeoutMs,"onUpdate:value":l[15]||(l[15]=t=>d.timeoutMs=t),min:0,placeholder:e.$t("crosschain.swap_modal.timeoutPlaceholder"),style:{width:"100%"}},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),s(X,{open:J.value,"onUpdate:open":l[21]||(l[21]=t=>J.value=t),title:e.$t("crosschain.message_modal.title"),"confirm-loading":te.value,width:520,"ok-text":e.$t("crosschain.message_modal.ok"),"cancel-text":e.$t("crosschain.message_modal.cancel"),onOk:Me,onCancel:ve},{default:o(()=>[s(W,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:o(()=>[s(b,{label:e.$t("crosschain.message_modal.fromChain"),required:""},{default:o(()=>[s(j,{value:y.fromChain,"onUpdate:value":l[17]||(l[17]=t=>y.fromChain=t),placeholder:e.$t("crosschain.message_modal.fromChainPlaceholder")},{default:o(()=>[(u(!0),m($,null,U(S.value,t=>(u(),x(T,{key:t.id,value:t.id},{default:o(()=>[h(i(t.name),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value","placeholder"])]),_:1},8,["label"]),s(b,{label:e.$t("crosschain.message_modal.toChain"),required:""},{default:o(()=>[s(j,{value:y.toChain,"onUpdate:value":l[18]||(l[18]=t=>y.toChain=t),placeholder:e.$t("crosschain.message_modal.toChainPlaceholder")},{default:o(()=>[(u(!0),m($,null,U(S.value,t=>(u(),x(T,{key:t.id,value:t.id,disabled:t.id===y.fromChain},{default:o(()=>[h(i(t.name),1)]),_:2},1032,["value","disabled"]))),128))]),_:1},8,["value","placeholder"])]),_:1},8,["label"]),s(b,{label:e.$t("crosschain.message_modal.payload")},{default:o(()=>[s(Ie,{value:y.payload,"onUpdate:value":l[19]||(l[19]=t=>y.payload=t),"auto-size":{minRows:3,maxRows:8}},null,8,["value"])]),_:1},8,["label"]),s(b,{label:e.$t("crosschain.message_modal.contract")},{default:o(()=>[s(P,{value:y.contract,"onUpdate:value":l[20]||(l[20]=t=>y.contract=t),placeholder:e.$t("crosschain.message_modal.contractPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),s(X,{open:se.value,"onUpdate:open":l[25]||(l[25]=t=>se.value=t),title:e.$t("crosschain.fee_modal.title"),"confirm-loading":ae.value,width:480,"ok-text":e.$t("crosschain.fee_modal.ok"),"cancel-text":e.$t("crosschain.fee_modal.cancel"),onOk:Pe},{default:o(()=>[s(W,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:o(()=>[s(b,{label:e.$t("crosschain.fee_modal.fromChain"),required:""},{default:o(()=>[s(j,{value:w.fromChain,"onUpdate:value":l[22]||(l[22]=t=>w.fromChain=t)},{default:o(()=>[(u(!0),m($,null,U(S.value,t=>(u(),x(T,{key:t.id,value:t.id},{default:o(()=>[h(i(t.name),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),_:1},8,["label"]),s(b,{label:e.$t("crosschain.fee_modal.toChain"),required:""},{default:o(()=>[s(j,{value:w.toChain,"onUpdate:value":l[23]||(l[23]=t=>w.toChain=t)},{default:o(()=>[(u(!0),m($,null,U(S.value,t=>(u(),x(T,{key:t.id,value:t.id,disabled:t.id===w.fromChain},{default:o(()=>[h(i(t.name),1)]),_:2},1032,["value","disabled"]))),128))]),_:1},8,["value"])]),_:1},8,["label"]),s(b,{label:e.$t("crosschain.fee_modal.amount"),required:""},{default:o(()=>[s(Q,{value:w.amount,"onUpdate:value":l[24]||(l[24]=t=>w.amount=t),min:0,precision:6,style:{width:"100%"}},null,8,["value"])]),_:1},8,["label"])]),_:1}),z.value?(u(),x(M,{key:0,size:"small",style:{background:"var(--bg-base)","margin-top":"8px"}},{default:o(()=>[s(B,{title:e.$t("crosschain.fee_modal.resultTitle"),value:z.value.fee,precision:4,suffix:z.value.currency,"value-style":{color:"#1677ff"}},null,8,["title","value","suffix"]),f("div",jt,[f("div",null,i(e.$t("crosschain.fee_modal.sourceFee",{fee:z.value.breakdown.sourceFee,currency:z.value.currency})),1),f("div",null,i(e.$t("crosschain.fee_modal.destFee",{fee:z.value.breakdown.destFee,currency:z.value.currency})),1),f("div",null,i(e.$t("crosschain.fee_modal.bridgeFee",{fee:z.value.breakdown.bridgeFee,currency:z.value.currency})),1)])]),_:1})):_("",!0)]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"])])}}},Bt=Ne(Mt,[["__scopeId","data-v-21e0fb7f"]]);export{Bt as default};
@@ -1,2 +1,2 @@
1
- import{t as te,_ as se,u as ie,b as Se,d as D}from"./index-Cs66y4oC.js";import{p as Ce}from"./mtc-parser-i4b7HNzF.js";import{Q as de,f as ze,d as Ae,R as Ne,at as Ie,W as Me,O as Oe,l as je}from"./icons-DlxlFL4g.js";import{r as u,w as Fe,L as c,Q as h,N as t,c as a,O as g,u as N,Z as Te,P as r,R as w,S as v,$ as Pe,f as Q,K as i,o as Le,M as F}from"./vendor-BXcBOG8b.js";function ee(s,n=0){if(!s||typeof s!="object")return null;const o=s.did||s.id||"";if(!o)return null;const m=s.displayName??s.display_name??s.name??"",x=s.isDefault===!0||s.is_default===1||s.is_default===!0||s.default===!0,_=s.publicKey??s.public_key??"",d=s.createdAt??s.created_at??s.created??"",y=(o.split(":")[1]||"chainless").trim();return{key:o,did:o,displayName:m||"",publicKey:_||"",isDefault:!!x,createdAt:d||"",method:y,raw:s.document?s:null,_idx:n}}function Ke(s){const n=te(s);return Array.isArray(n)?n.map(ee).filter(Boolean):n&&Array.isArray(n.identities)?n.identities.map(ee).filter(Boolean):Ue(s||"")}function Ue(s){const n=(s||"").split(`
1
+ import{t as te,_ as se,u as ie,b as Se,d as D}from"./index-CzoKAiyT.js";import{p as Ce}from"./mtc-parser-BOOaGiCg.js";import{Q as de,f as ze,d as Ae,R as Ne,at as Ie,W as Me,O as Oe,l as je}from"./icons-DlxlFL4g.js";import{r as u,w as Fe,L as c,Q as h,N as t,c as a,O as g,u as N,Z as Te,P as r,R as w,S as v,$ as Pe,f as Q,K as i,o as Le,M as F}from"./vendor-BXcBOG8b.js";function ee(s,n=0){if(!s||typeof s!="object")return null;const o=s.did||s.id||"";if(!o)return null;const m=s.displayName??s.display_name??s.name??"",x=s.isDefault===!0||s.is_default===1||s.is_default===!0||s.default===!0,_=s.publicKey??s.public_key??"",d=s.createdAt??s.created_at??s.created??"",y=(o.split(":")[1]||"chainless").trim();return{key:o,did:o,displayName:m||"",publicKey:_||"",isDefault:!!x,createdAt:d||"",method:y,raw:s.document?s:null,_idx:n}}function Ke(s){const n=te(s);return Array.isArray(n)?n.map(ee).filter(Boolean):n&&Array.isArray(n.identities)?n.identities.map(ee).filter(Boolean):Ue(s||"")}function Ue(s){const n=(s||"").split(`
2
2
  `),o=[];let m=null;for(const x of n){const _=x.trim();if(!_||_.startsWith("─")||_.startsWith("="))continue;const d=_.match(/(did:[a-z0-9]+:[A-Za-z0-9_-]+)/);if(d&&/^did:/.test(_)){m&&o.push(m);const y=d[1],I=_.match(/\(([^)]+)\)/),T=/\[default\]|默认|\*/.test(_);m={key:y,did:y,displayName:I?I[1]:"",publicKey:"",isDefault:T,createdAt:"",method:(y.split(":")[1]||"chainless").trim(),raw:null,_idx:o.length};continue}if(m){const y=_.match(/created\s*[::]\s*(.+)$/i);y&&(m.createdAt=y[1].trim())}}return m&&o.push(m),o}function Ve(s){const n=te(s);if(!n||typeof n!="object"||Array.isArray(n))return null;const o=ee(n);return o?(o.document=n.document||null,o):null}function Be(s){const n=te(s);if(n&&typeof n=="object"&&n.signature)return{did:n.did||"",message:n.message||"",signature:String(n.signature)};const m=(s||"").match(/Signature[::]\s*([a-f0-9]+)/i);return m?{did:"",message:"",signature:m[1]}:null}const He={style:{"margin-left":"8px"}},Re={class:"mono"},Ee={class:"mono"},Je={class:"mono"},We={class:"raw-pre"},Qe={__name:"MtcVerifyDrawer",props:{open:{type:Boolean,default:!1},title:{type:String,default:"MTC 包含证明"},defaultEnvelopePath:{type:String,default:""},defaultLandmarkPath:{type:String,default:""},hint:{type:String,default:""}},emits:["update:open"],setup(s){const n=s,o=ie(),m=u(n.defaultEnvelopePath),x=u(n.defaultLandmarkPath),_=u(!1),d=u(null),y=u(""),I=Q(()=>n.hint||"通过 cc serve 运行 cc mtc verify(多算法 dispatcher 同时支持 Ed25519 和 SLH-DSA-128F)。文件路径应指向本机磁盘上的 envelope 和 landmark JSON — 浏览器只把路径转给 cc serve,不上传文件内容。");Fe(()=>n.open,b=>{b&&(m.value=n.defaultEnvelopePath||m.value,x.value=n.defaultLandmarkPath||x.value,d.value=null,y.value="")});async function T(){_.value=!0,d.value=null,y.value="";try{const b=m.value.trim().replace(/"/g,'\\"'),k=x.value.trim().replace(/"/g,'\\"'),{output:M}=await o.execute(`mtc verify "${b}" --landmark "${k}" --json`,12e3),z=Ce(M);if(!z.raw){y.value="验证命令未返回 JSON。请检查路径是否正确。";return}d.value=z}catch(b){y.value=`验证失败: ${b?.message||b}`}finally{_.value=!1}}return(b,k)=>{const M=i("a-alert"),z=i("a-input"),O=i("a-form-item"),$=i("a-button"),P=i("a-form"),V=i("a-divider"),A=i("a-tag"),C=i("a-descriptions-item"),Z=i("a-descriptions"),B=i("a-collapse-panel"),q=i("a-collapse"),L=i("a-card"),G=i("a-drawer");return c(),h(G,{open:s.open,title:s.title,width:560,placement:"right","onUpdate:open":k[2]||(k[2]=K=>b.$emit("update:open",K))},{default:t(()=>[a(M,{type:"info","show-icon":"",message:I.value,style:{"margin-bottom":"16px"}},null,8,["message"]),a(P,{layout:"vertical"},{default:t(()=>[a(O,{label:"Envelope 文件路径"},{default:t(()=>[a(z,{value:m.value,"onUpdate:value":k[0]||(k[0]=K=>m.value=K),placeholder:"e.g. ./mtc-out/envelope-000000.json","allow-clear":""},null,8,["value"])]),_:1}),a(O,{label:"Landmark 文件路径"},{default:t(()=>[a(z,{value:x.value,"onUpdate:value":k[1]||(k[1]=K=>x.value=K),placeholder:"e.g. ./mtc-out/landmark.json","allow-clear":""},null,8,["value"])]),_:1}),a(O,null,{default:t(()=>[a($,{type:"primary",loading:_.value,disabled:!m.value||!x.value,onClick:T},{icon:t(()=>[a(N(de))]),default:t(()=>[k[3]||(k[3]=g(" 运行 cc mtc verify ",-1))]),_:1},8,["loading","disabled"])]),_:1})]),_:1}),a(V),d.value?(c(),h(L,{key:0,class:Te(["result-card",d.value.ok?"pass":"fail"]),size:"small"},{title:t(()=>[(c(),h(Pe(d.value.ok?N(ze):N(Ae)))),w("span",He,r(d.value.ok?"验证通过":"验证失败"),1)]),default:t(()=>[a(Z,{column:1,size:"small",bordered:""},{default:t(()=>[a(C,{label:"结果"},{default:t(()=>[a(A,{color:d.value.ok?"green":"red"},{default:t(()=>[g(r(d.value.ok?"PASS":"FAIL"),1)]),_:1},8,["color"])]),_:1}),!d.value.ok&&d.value.code?(c(),h(C,{key:0,label:"错误码"},{default:t(()=>[w("span",Re,r(d.value.code),1),d.value.recoverable?(c(),h(A,{key:0,color:"orange",style:{"margin-left":"8px"}},{default:t(()=>[...k[4]||(k[4]=[g("可恢复",-1)])]),_:1})):v("",!0)]),_:1})):v("",!0),d.value.leaf?.subject?(c(),h(C,{key:1,label:"Subject"},{default:t(()=>[w("span",Ee,r(d.value.leaf.subject),1)]),_:1})):v("",!0),d.value.leaf?.kind?(c(),h(C,{key:2,label:"Kind"},{default:t(()=>[a(A,null,{default:t(()=>[g(r(d.value.leaf.kind),1)]),_:1})]),_:1})):v("",!0),d.value.treeHead?.tree_size?(c(),h(C,{key:3,label:"Tree size"},{default:t(()=>[g(r(d.value.treeHead.tree_size),1)]),_:1})):v("",!0),d.value.treeHead?.issuer?(c(),h(C,{key:4,label:"Issuer"},{default:t(()=>[w("span",Je,r(d.value.treeHead.issuer),1)]),_:1})):v("",!0)]),_:1}),d.value.raw?(c(),h(q,{key:0,ghost:"",style:{"margin-top":"12px"}},{default:t(()=>[a(B,{key:"raw",header:"原始 JSON 输出"},{default:t(()=>[w("pre",We,r(JSON.stringify(d.value.raw,null,2)),1)]),_:1})]),_:1})):v("",!0)]),_:1},8,["class"])):v("",!0),y.value?(c(),h(M,{key:1,type:"error",message:y.value,style:{"margin-top":"12px"}},null,8,["message"])):v("",!0)]),_:1},8,["open","title"])}}},Ze=se(Qe,[["__scopeId","data-v-ee4997fa"]]),qe={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},Ge={class:"page-title"},Xe={class:"page-sub"},Ye={key:1,style:{"text-align":"center",padding:"60px"}},et={key:0,style:{color:"#e0e0e0","font-family":"monospace","font-size":"12px"}},tt={key:1,style:{color:"var(--text-primary)"}},at={key:3,style:{color:"var(--text-secondary)","font-size":"12px"}},lt={key:0,style:{"margin-top":"12px"}},ot={style:{"font-family":"monospace",color:"#ccc","word-break":"break-all"}},nt={style:{"font-family":"monospace",color:"#888","font-size":"11px","word-break":"break-all"}},st={style:{"margin-top":"16px",display:"flex",gap:"8px","flex-wrap":"wrap"}},it={key:0,style:{"margin-top":"16px"}},dt={style:{color:"var(--text-secondary)","margin-bottom":"6px"}},rt={style:{"white-space":"pre-wrap","word-break":"break-all",color:"#52c41a","font-size":"11px",background:"var(--bg-base)",padding:"12px","border-radius":"6px",border:"1px solid var(--border-color)","max-height":"320px",overflow:"auto"}},ut={key:0,style:{"margin-top":"12px"}},ct={style:{color:"var(--text-secondary)","margin-bottom":"6px"}},pt={style:{"white-space":"pre-wrap","word-break":"break-all",color:"#52c41a","font-size":"11px",background:"var(--bg-base)",padding:"12px","border-radius":"6px",border:"1px solid var(--border-color)"}},ft={__name:"DID",setup(s){const n=ie(),{t:o}=Se(),m=u(!1),x=u(!1),_=u(!1),d=u(!1),y=u(""),I=u(""),T=u(!1),b=u([]),k=u(!1),M=u(!1),z=u(!1),O=u(""),$=u(null),P=u(""),V=u(""),A=u(""),C=u(null),Z=Q(()=>[{title:o("did.cols.did"),key:"did",dataIndex:"did",ellipsis:!0},{title:o("did.cols.name"),key:"displayName",dataIndex:"displayName",width:"160px"},{title:o("did.cols.method"),key:"method",dataIndex:"method",width:"110px"},{title:o("did.cols.createdAt"),key:"createdAt",dataIndex:"createdAt",width:"180px"},{title:o("did.cols.default"),key:"isDefault",width:"90px"},{title:o("did.cols.action"),key:"action",width:"280px"}]),B=Q(()=>{const e=b.value.find(p=>p.isDefault);if(!e)return o("did.stats.unsetDefault");const l=e.did;return l.length>24?l.slice(0,12)+"..."+l.slice(-8):l}),q=Q(()=>{const e=new Set(b.value.map(l=>l.method).filter(Boolean));return e.size===0?o("did.stats.noMethod"):e.size===1?[...e][0]:[...e].join(", ")});async function L(){x.value=!0;try{const{output:e}=await n.execute("did list --json",15e3);b.value=Ke(e)}catch(e){D.error(o("did.msg.loadFailed")+": "+e.message),b.value=[]}finally{x.value=!1}}async function G(){_.value=!0;try{const e=O.value.trim(),l=e?`did create --name "${e.replace(/"/g,'\\"')}" --json`:"did create --json",{output:p}=await n.execute(l,2e4);/error|失败/i.test(p)&&!p.includes('"did"')?D.error(o("did.msg.createFailed")+": "+p.slice(0,120)):(D.success(o("did.msg.createSuccess")),k.value=!1,O.value="",await L())}catch(e){D.error(o("did.msg.createFailed")+": "+e.message)}finally{_.value=!1}}async function K(e){y.value=e.did;try{const{output:l,exitCode:p}=await n.execute(`did set-default ${e.did}`,15e3);p!==0||/error|not found|失败/i.test(l)?D.error(o("did.msg.setDefaultFailed")+": "+l.slice(0,120)):(D.success(o("did.msg.setDefaultSuccess")),await L())}catch(l){D.error(o("did.msg.setDefaultFailed")+": "+l.message)}finally{y.value=""}}async function re(e){I.value=e.did;try{const{output:l,exitCode:p}=await n.execute(`did delete ${e.did} --force`,15e3);p!==0||/error|not found|失败/i.test(l)?D.error(o("did.msg.deleteFailed")+": "+l.slice(0,120)):(D.success(o("did.msg.deleteSuccess")),await L())}catch(l){D.error(o("did.msg.deleteFailed")+": "+l.message)}finally{I.value=""}}async function ue(e){if($.value={...e},P.value="",M.value=!0,!e.publicKey)try{const{output:l}=await n.execute(`did show ${e.did} --json`,1e4),p=Ve(l);p&&($.value={...$.value,...p})}catch{}}async function ce(e){T.value=!0;try{const{output:l}=await n.execute(`did resolve ${e.did}`,1e4);try{P.value=JSON.stringify(JSON.parse(l.trim()),null,2)}catch{P.value=l.trim()}}catch(l){D.error(o("did.msg.loadDocFailed")+": "+l.message)}finally{T.value=!1}}function pe(e){V.value=e.did,A.value="",C.value=null,z.value=!0}const X=u(!1),ae=u("MTC 包含证明"),le=u("");function fe(e){return e?e.length<=24?e:`${e.slice(0,16)}…${e.slice(-6)}`:""}function me(e){ae.value=`MTC 包含证明 · ${fe(e.did)}`,le.value="验证此 DID 是否在某个 MTC 批次中。请提供该批次的 envelope(其 leaf.subject 应等于此 DID)和 landmark 文件路径。 通常由 cc mtc batch-dids --out <dir> 生成。",X.value=!0}async function ve(){if(!A.value.trim()){D.warning(o("did.msg.signEmpty"));return}d.value=!0,C.value=null;try{const l=`did sign "${A.value.replace(/"/g,'\\"')}" --did ${V.value} --json`,{output:p,exitCode:H}=await n.execute(l,15e3),j=Be(p);j&&j.signature?(C.value=j,D.success(o("did.msg.signSuccess"))):D.error(o("did.msg.signFailed")+": "+(p||`exit ${H}`).slice(0,120))}catch(e){D.error(o("did.msg.signFailed")+": "+e.message)}finally{d.value=!1}}return Le(()=>{L()}),(e,l)=>{const p=i("a-button"),H=i("a-space"),j=i("a-statistic"),R=i("a-card"),E=i("a-col"),ye=i("a-row"),_e=i("a-alert"),ge=i("a-spin"),J=i("a-tag"),be=i("a-tooltip"),ke=i("a-popconfirm"),he=i("a-empty"),$e=i("a-table"),we=i("a-input"),oe=i("a-form-item"),ne=i("a-form"),Y=i("a-modal"),U=i("a-descriptions-item"),xe=i("a-descriptions"),De=i("a-textarea");return c(),F("div",null,[w("div",qe,[w("div",null,[w("h2",Ge,r(e.$t("did.title")),1),w("p",Xe,r(e.$t("did.subtitle")),1)]),a(H,null,{default:t(()=>[a(p,{loading:x.value,onClick:L},{icon:t(()=>[a(N(Ne))]),default:t(()=>[g(" "+r(e.$t("did.refresh")),1)]),_:1},8,["loading"]),a(p,{type:"primary",onClick:l[0]||(l[0]=f=>k.value=!0)},{icon:t(()=>[a(N(Ie))]),default:t(()=>[g(" "+r(e.$t("did.create")),1)]),_:1})]),_:1})]),a(ye,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:t(()=>[a(E,{xs:24,sm:12,lg:6},{default:t(()=>[a(R,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[a(j,{title:e.$t("did.stats.count"),value:b.value.length,"value-style":{color:"#1677ff",fontSize:"20px"}},{prefix:t(()=>[a(N(Me))]),_:1},8,["title","value"])]),_:1})]),_:1}),a(E,{xs:24,sm:12,lg:6},{default:t(()=>[a(R,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[a(j,{title:e.$t("did.stats.default"),value:B.value,"value-style":{color:B.value!==e.$t("did.stats.unsetDefault")?"#52c41a":"#888",fontSize:"13px",fontFamily:"monospace"}},null,8,["title","value","value-style"])]),_:1})]),_:1}),a(E,{xs:24,sm:12,lg:6},{default:t(()=>[a(R,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[a(j,{title:e.$t("did.stats.method"),value:q.value,"value-style":{color:"#722ed1",fontSize:"14px"}},null,8,["title","value"])]),_:1})]),_:1}),a(E,{xs:24,sm:12,lg:6},{default:t(()=>[a(R,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[a(j,{title:e.$t("did.stats.signable"),value:b.value.length>0?e.$t("did.stats.yes"):e.$t("did.stats.no"),"value-style":{color:b.value.length>0?"#52c41a":"#ff4d4f",fontSize:"20px"}},{prefix:t(()=>[a(N(Oe))]),_:1},8,["title","value","value-style"])]),_:1})]),_:1})]),_:1}),m.value?v("",!0):(c(),h(_e,{key:0,message:e.$t("did.webOnly.message"),description:e.$t("did.webOnly.description"),type:"info","show-icon":"",closable:"",style:{"margin-bottom":"16px"}},null,8,["message","description"])),x.value?(c(),F("div",Ye,[a(ge,{size:"large"})])):(c(),h($e,{key:2,columns:Z.value,"data-source":b.value,pagination:{pageSize:20,showTotal:f=>e.$t("did.table.totalSuffix",{n:f})},size:"small",style:{background:"var(--bg-card)"},"row-class-name":()=>"did-row"},{bodyCell:t(({column:f,record:S})=>[f.key==="did"?(c(),F("span",et,r(S.did),1)):v("",!0),f.key==="displayName"?(c(),F("span",tt,r(S.displayName||"-"),1)):v("",!0),f.key==="method"?(c(),h(J,{key:2,color:"blue"},{default:t(()=>[g(r(S.method),1)]),_:2},1024)):v("",!0),f.key==="createdAt"?(c(),F("span",at,r(S.createdAt||"-"),1)):v("",!0),f.key==="isDefault"?(c(),h(J,{key:4,color:S.isDefault?"green":"default"},{default:t(()=>[g(r(S.isDefault?e.$t("did.table.defaultTag"):"-"),1)]),_:2},1032,["color"])):v("",!0),f.key==="action"?(c(),h(H,{key:5,size:"small"},{default:t(()=>[a(p,{size:"small",type:"link",onClick:W=>ue(S)},{default:t(()=>[g(r(e.$t("did.actions.details")),1)]),_:1},8,["onClick"]),a(p,{size:"small",type:"link",onClick:W=>pe(S)},{default:t(()=>[g(r(e.$t("did.actions.sign")),1)]),_:1},8,["onClick"]),a(be,{title:"MTC 包含证明"},{default:t(()=>[a(p,{size:"small",type:"link",onClick:W=>me(S)},{default:t(()=>[a(N(de))]),_:1},8,["onClick"])]),_:2},1024),S.isDefault?v("",!0):(c(),h(p,{key:0,size:"small",type:"link",loading:y.value===S.did,onClick:W=>K(S)},{default:t(()=>[g(r(e.$t("did.actions.setDefault")),1)]),_:1},8,["loading","onClick"])),a(ke,{title:e.$t("did.deleteConfirm.title"),"ok-text":e.$t("did.deleteConfirm.ok"),"ok-type":"danger","cancel-text":e.$t("did.deleteConfirm.cancel"),onConfirm:W=>re(S)},{default:t(()=>[a(p,{size:"small",type:"link",danger:"",loading:I.value===S.did},{default:t(()=>[g(r(e.$t("did.actions.delete")),1)]),_:1},8,["loading"])]),_:2},1032,["title","ok-text","cancel-text","onConfirm"])]),_:2},1024)):v("",!0)]),emptyText:t(()=>[a(he,{description:e.$t("did.table.empty")},null,8,["description"])]),_:1},8,["columns","data-source","pagination"])),a(Y,{open:k.value,"onUpdate:open":l[2]||(l[2]=f=>k.value=f),title:e.$t("did.create_modal.title"),"confirm-loading":_.value,onOk:G,"ok-text":e.$t("did.create_modal.ok"),"cancel-text":e.$t("did.create_modal.cancel")},{default:t(()=>[a(ne,{"label-col":{span:6},"wrapper-col":{span:18},style:{"margin-top":"16px"}},{default:t(()=>[a(oe,{label:e.$t("did.create_modal.nameLabel")},{default:t(()=>[a(we,{value:O.value,"onUpdate:value":l[1]||(l[1]=f=>O.value=f),placeholder:e.$t("did.create_modal.namePlaceholder"),"allow-clear":""},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),a(Y,{open:M.value,"onUpdate:open":l[4]||(l[4]=f=>M.value=f),title:e.$t("did.details.title",{label:$.value?.displayName||$.value?.did?.slice(0,24)||""}),width:720,footer:null},{default:t(()=>[$.value?(c(),F("div",lt,[a(xe,{column:1,bordered:"",size:"small"},{default:t(()=>[a(U,{label:e.$t("did.details.did")},{default:t(()=>[w("span",ot,r($.value.did),1)]),_:1},8,["label"]),a(U,{label:e.$t("did.details.name")},{default:t(()=>[g(r($.value.displayName||"-"),1)]),_:1},8,["label"]),a(U,{label:e.$t("did.details.method")},{default:t(()=>[a(J,{color:"blue"},{default:t(()=>[g(r($.value.method),1)]),_:1})]),_:1},8,["label"]),a(U,{label:e.$t("did.details.default")},{default:t(()=>[a(J,{color:$.value.isDefault?"green":"default"},{default:t(()=>[g(r($.value.isDefault?e.$t("did.details.yes"):e.$t("did.details.no")),1)]),_:1},8,["color"])]),_:1},8,["label"]),a(U,{label:e.$t("did.details.createdAt")},{default:t(()=>[g(r($.value.createdAt||"-"),1)]),_:1},8,["label"]),a(U,{label:e.$t("did.details.publicKey")},{default:t(()=>[w("span",nt,r($.value.publicKey||e.$t("did.details.publicKeyLoading")),1)]),_:1},8,["label"])]),_:1}),w("div",st,[a(p,{loading:T.value,onClick:l[3]||(l[3]=f=>ce($.value))},{icon:t(()=>[a(N(je))]),default:t(()=>[g(" "+r(e.$t("did.details.viewDoc")),1)]),_:1},8,["loading"])]),P.value?(c(),F("div",it,[w("p",dt,r(e.$t("did.details.docHeader")),1),w("pre",rt,r(P.value),1)])):v("",!0)])):v("",!0)]),_:1},8,["open","title"]),a(Y,{open:z.value,"onUpdate:open":l[6]||(l[6]=f=>z.value=f),title:e.$t("did.sign_modal.title",{label:V.value?.slice(0,28)||e.$t("did.sign_modal.defaultIdentityFallback")}),"confirm-loading":d.value,onOk:ve,"ok-text":e.$t("did.sign_modal.ok"),"cancel-text":e.$t("did.sign_modal.cancel")},{default:t(()=>[a(ne,{"label-col":{span:4},"wrapper-col":{span:20},style:{"margin-top":"16px"}},{default:t(()=>[a(oe,{label:e.$t("did.sign_modal.messageLabel"),required:""},{default:t(()=>[a(De,{value:A.value,"onUpdate:value":l[5]||(l[5]=f=>A.value=f),placeholder:e.$t("did.sign_modal.messagePlaceholder"),"auto-size":{minRows:3,maxRows:8}},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1}),C.value?(c(),F("div",ut,[w("p",ct,r(e.$t("did.sign_modal.resultHeader")),1),w("pre",pt,r(C.value.signature),1)])):v("",!0)]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),a(Ze,{open:X.value,"onUpdate:open":l[7]||(l[7]=f=>X.value=f),title:ae.value,hint:le.value},null,8,["open","title","hint"])])}}},gt=se(ft,[["__scopeId","data-v-b17b31f4"]]);export{gt as default};
@@ -1,3 +1,3 @@
1
- import{E as ae,r as M,o as oe,x as le,M as p,R as o,P as a,u as d,c as t,N as s,Q as U,S as J,f as S,K as C,I as re,L as i,O as h,_ as K,F as N,Y as A}from"./vendor-BXcBOG8b.js";import{u as G,t as ne,_ as de}from"./index-Cs66y4oC.js";import{u as ie}from"./chat-C6MLShIo.js";import{R as ue,F as ce,ae as Q,m as Y,h as Z,Z as ve,af as me,l as X,ag as pe,o as he}from"./icons-DlxlFL4g.js";function fe(T){return ne(T)}function be(){return{samples:0,compressedSamples:0,hitRate:0,totalSavedTokens:0,averageSavedTokens:0,totalOriginalTokens:0,totalCompressedTokens:0,netSavingsRate:0,variantDistribution:{},strategyDistribution:[],providerDistribution:[],modelDistribution:[]}}const ye=ae("dashboard",()=>{const T=M(!1),F=M(!1),c=M({wsStatus:"disconnected",activeLlm:null,activeModel:null,skillCount:0,sessionCount:0,providerCount:0,appRunning:!1,setupDone:!1,edition:"",mcpCount:null,noteCount:null}),q=M(""),y=M(be()),v=M({windowPreset:"all",provider:"",model:""});let _=null;function B(r=G()){_||(_=r.onRuntimeEvent(m=>{m.type==="compression:summary"?z(m.payload?.summary||{}):m.type==="session:start"?c.value.sessionCount=(c.value.sessionCount||0)+1:m.type==="session:end"&&(c.value.sessionCount=Math.max(0,(c.value.sessionCount||0)-1))}))}function H(){_&&(_(),_=null)}function z(r){y.value={...y.value,...r||{}}}function V(r){return r==="1h"?3600*1e3:r==="24h"?1440*60*1e3:r==="7d"?10080*60*1e3:null}function D(r){c.value.appRunning=r.includes("Desktop app running"),c.value.setupDone=r.includes("Setup completed");const m=r.match(/Edition:\s+(\S+)/i);m&&(c.value.edition=m[1]);const $=r.match(/LLM:\s+(\S+)\s+\(([^)]+)\)/i);if($)c.value.activeLlm=$[1],c.value.activeModel=$[2];else{const b=r.match(/LLM:\s+(\S+)/i);b&&(c.value.activeLlm=b[1])}}async function f(){const r=G();B(r),F.value=!0;const m={type:"compression-stats",windowMs:V(v.value.windowPreset)};v.value.provider&&(m.provider=v.value.provider),v.value.model&&(m.model=v.value.model);try{const $=await r.sendRaw(m,1e4);z($.summary||{})}catch{}finally{F.value=!1}}async function g(){const r=G();B(r),T.value=!0,c.value.wsStatus=r.status,q.value="";try{const[m,$]=await Promise.allSettled([r.execute("status",15e3),r.listSessions()]);if(m.status==="fulfilled"){const b=m.value.output;q.value=b.split(`
1
+ import{E as ae,r as M,o as oe,x as le,M as p,R as o,P as a,u as d,c as t,N as s,Q as U,S as J,f as S,K as C,I as re,L as i,O as h,_ as K,F as N,Y as A}from"./vendor-BXcBOG8b.js";import{u as G,t as ne,_ as de}from"./index-CzoKAiyT.js";import{u as ie}from"./chat-BzgkgfMC.js";import{R as ue,F as ce,ae as Q,m as Y,h as Z,Z as ve,af as me,l as X,ag as pe,o as he}from"./icons-DlxlFL4g.js";function fe(T){return ne(T)}function be(){return{samples:0,compressedSamples:0,hitRate:0,totalSavedTokens:0,averageSavedTokens:0,totalOriginalTokens:0,totalCompressedTokens:0,netSavingsRate:0,variantDistribution:{},strategyDistribution:[],providerDistribution:[],modelDistribution:[]}}const ye=ae("dashboard",()=>{const T=M(!1),F=M(!1),c=M({wsStatus:"disconnected",activeLlm:null,activeModel:null,skillCount:0,sessionCount:0,providerCount:0,appRunning:!1,setupDone:!1,edition:"",mcpCount:null,noteCount:null}),q=M(""),y=M(be()),v=M({windowPreset:"all",provider:"",model:""});let _=null;function B(r=G()){_||(_=r.onRuntimeEvent(m=>{m.type==="compression:summary"?z(m.payload?.summary||{}):m.type==="session:start"?c.value.sessionCount=(c.value.sessionCount||0)+1:m.type==="session:end"&&(c.value.sessionCount=Math.max(0,(c.value.sessionCount||0)-1))}))}function H(){_&&(_(),_=null)}function z(r){y.value={...y.value,...r||{}}}function V(r){return r==="1h"?3600*1e3:r==="24h"?1440*60*1e3:r==="7d"?10080*60*1e3:null}function D(r){c.value.appRunning=r.includes("Desktop app running"),c.value.setupDone=r.includes("Setup completed");const m=r.match(/Edition:\s+(\S+)/i);m&&(c.value.edition=m[1]);const $=r.match(/LLM:\s+(\S+)\s+\(([^)]+)\)/i);if($)c.value.activeLlm=$[1],c.value.activeModel=$[2];else{const b=r.match(/LLM:\s+(\S+)/i);b&&(c.value.activeLlm=b[1])}}async function f(){const r=G();B(r),F.value=!0;const m={type:"compression-stats",windowMs:V(v.value.windowPreset)};v.value.provider&&(m.provider=v.value.provider),v.value.model&&(m.model=v.value.model);try{const $=await r.sendRaw(m,1e4);z($.summary||{})}catch{}finally{F.value=!1}}async function g(){const r=G();B(r),T.value=!0,c.value.wsStatus=r.status,q.value="";try{const[m,$]=await Promise.allSettled([r.execute("status",15e3),r.listSessions()]);if(m.status==="fulfilled"){const b=m.value.output;q.value=b.split(`
2
2
  `).slice(0,20).join(`
3
- `),D(b)}$.status==="fulfilled"&&(c.value.sessionCount=$.value.length),Promise.allSettled([r.execute("skill sources --json",15e3),r.execute("llm providers",15e3)]).then(([b,L])=>{if(b.status==="fulfilled"){const w=fe(b.value.output);Array.isArray(w)&&(c.value.skillCount=w.reduce((O,e)=>O+(typeof e?.count=="number"?e.count:0),0))}if(L.status==="fulfilled"){const O=L.value.output.match(/active[:\s]+(\S+)/i);O&&!c.value.activeLlm&&(c.value.activeLlm=O[1])}}),r.sendRaw({type:"mcp.list_tools"},5e3).then(b=>{const w=(b?.result??b)?.servers;c.value.mcpCount=Array.isArray(w)?w.length:0}).catch(()=>{c.value.mcpCount=0}),await f()}catch{}finally{T.value=!1}}return{loading:T,compressionLoading:F,stats:c,statusLog:q,compression:y,telemetryFilters:v,ensureRuntimeSubscription:B,stopRuntimeSubscription:H,refresh:g,refreshCompression:f,applyCompressionSummary:z,toWindowMs:V}}),_e={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"20px"}},ge={class:"page-title"},$e={class:"page-sub"},ke={style:{display:"flex","align-items":"center",gap:"12px","flex-wrap":"wrap"}},we={style:{color:"#91caff","font-weight":"600"}},Ce={style:{color:"#4a6fa5","font-size":"11px","font-family":"monospace"}},Se={class:"stat-header"},Re={class:"stat-label"},De={class:"stat-sub"},Pe={class:"stat-header"},je={class:"stat-label"},ze={class:"stat-value",style:{color:"#91caff","font-size":"15px",overflow:"hidden","text-overflow":"ellipsis","white-space":"nowrap"}},Le={class:"stat-sub",style:{overflow:"hidden","text-overflow":"ellipsis","white-space":"nowrap"}},Te={class:"stat-header"},Oe={class:"stat-label"},Ee={class:"stat-value",style:{color:"#1677ff"}},Me={class:"stat-sub"},Ne={class:"stat-header"},Ae={class:"stat-label"},Fe={class:"stat-value",style:{color:"#c084fc"}},qe={class:"stat-sub"},Be={class:"stat-header"},He={class:"stat-label"},Ue={class:"stat-sub"},Ve={class:"stat-header"},Ge={class:"stat-label"},Ie={class:"stat-value",style:{color:"#13c2c2"}},We={class:"stat-sub"},Je={class:"stat-header"},Ke={class:"stat-label"},Qe={class:"stat-value",style:{color:"#faad14"}},Ye={class:"stat-sub"},Ze={class:"status-log"},Xe={class:"telemetry-filter"},xe={class:"telemetry-filter-label"},et={class:"telemetry-filter"},tt={class:"telemetry-filter-label"},st={class:"telemetry-filter"},at={class:"telemetry-filter-label"},ot={class:"telemetry-card"},lt={class:"telemetry-label"},rt={class:"telemetry-value"},nt={class:"telemetry-sub"},dt={class:"telemetry-card"},it={class:"telemetry-label"},ut={class:"telemetry-value"},ct={class:"telemetry-sub"},vt={class:"telemetry-card"},mt={class:"telemetry-label"},pt={class:"telemetry-value"},ht={class:"telemetry-sub"},ft={class:"telemetry-section"},bt={class:"telemetry-section-title"},yt={key:0,class:"telemetry-empty"},_t={key:1,class:"telemetry-list"},gt={class:"telemetry-section"},$t={class:"telemetry-section-title"},kt={key:0,class:"telemetry-empty"},wt={key:1,class:"telemetry-list"},Ct={class:"telemetry-section"},St={class:"telemetry-section-title"},Rt={key:0,class:"telemetry-empty"},Dt={key:1,class:"telemetry-list"},Pt={class:"telemetry-section"},jt={class:"telemetry-section-title"},zt={key:0,class:"telemetry-empty"},Lt={key:1,class:"telemetry-list"},Tt={style:{color:"#91caff"}},Ot={style:{color:"var(--text-muted)","font-family":"monospace","font-size":"11px"}},Et={style:{color:"var(--text-secondary)","font-family":"monospace","font-size":"12px"}},Mt={style:{color:"var(--text-muted)"}},Nt={__name:"Dashboard",setup(T){const F=re(),c=G(),q=ie(),y=ye(),v=window.__CC_CONFIG__||{},_=S(()=>v.mode==="project"),B="v5.0.3.144",H=S(()=>c.status),z=S(()=>y.loading),V=S(()=>y.statusLog),D=S(()=>y.telemetryFilters),f=S(()=>y.compression),g=S(()=>y.stats),r=S(()=>Object.entries(f.value.variantDistribution||{})),m=S(()=>f.value.providerDistribution||[]),$=S(()=>f.value.modelDistribution||[]);async function b(){await y.refresh()}async function L(){await y.refreshCompression()}function w(e){return`${((e||0)*100).toFixed(1)}%`}async function O(){await q.createSession("agent"),F.push("/chat")}return oe(()=>{y.ensureRuntimeSubscription(c),setTimeout(b,300)}),le(()=>{y.stopRuntimeSubscription()}),(e,n)=>{const P=C("a-button"),I=C("a-tag"),k=C("a-card"),x=C("a-badge"),u=C("a-col"),R=C("a-row"),ee=C("a-space"),j=C("a-select-option"),W=C("a-select"),E=C("a-descriptions-item"),te=C("a-descriptions");return i(),p("div",null,[o("div",_e,[o("div",null,[o("h2",ge,a(e.$t("dashboard.title")),1),o("p",$e,a(_.value?e.$t("dashboard.subProject",{name:d(v).projectName||e.$t("dashboard.unnamedProject")}):e.$t("dashboard.subGlobal")),1)]),t(P,{type:"primary",ghost:"",loading:z.value,onClick:b},{icon:s(()=>[t(d(ue))]),default:s(()=>[h(" "+a(e.$t("dashboard.refresh")),1)]),_:1},8,["loading"])]),_.value?(i(),U(k,{key:0,style:{background:"rgba(22,119,255,.08)","border-color":"rgba(22,119,255,.25)","margin-bottom":"16px"},size:"small"},{default:s(()=>[o("div",ke,[t(d(ce),{style:{color:"#1677ff","font-size":"18px"}}),o("div",null,[o("div",we,a(d(v).projectName||e.$t("dashboard.projectBanner.fallbackName")),1),o("div",Ce,a(d(v).projectRoot),1)]),t(I,{color:"blue",style:{"margin-left":"auto"}},{default:s(()=>[h(a(e.$t("dashboard.projectBanner.tag")),1)]),_:1})])]),_:1})):J("",!0),t(R,{gutter:[12,12],style:{"margin-bottom":"16px"}},{default:s(()=>[t(u,{xs:24,sm:12,lg:6},{default:s(()=>[t(k,{class:"stat-card gateway-card",size:"small"},{default:s(()=>[o("div",Se,[o("span",Re,a(e.$t("dashboard.stats.wsGateway")),1),t(x,{status:H.value==="connected"?"success":"error"},null,8,["status"])]),o("div",{class:"stat-value",style:K({color:H.value==="connected"?"#52c41a":"#888"})},a(H.value==="connected"?e.$t("dashboard.stats.wsRunning"):e.$t("dashboard.stats.wsDisconnected")),5),o("div",De,a(e.$t("dashboard.stats.wsPortLine",{port:d(v).wsPort||18800,host:d(v).wsHost||"127.0.0.1"})),1)]),_:1})]),_:1}),t(u,{xs:24,sm:12,lg:6},{default:s(()=>[t(k,{class:"stat-card",size:"small"},{default:s(()=>[o("div",Pe,[o("span",je,a(e.$t("dashboard.stats.currentLlm")),1),t(d(Q),{style:{color:"#1677ff"}})]),o("div",ze,a(g.value.activeLlm||e.$t("dashboard.stats.llmUnconfigured")),1),o("div",Le,a(g.value.activeModel||"—"),1)]),_:1})]),_:1}),t(u,{xs:24,sm:12,lg:6},{default:s(()=>[t(k,{class:"stat-card",size:"small",style:{cursor:"pointer"},onClick:n[0]||(n[0]=l=>e.$router.push("/skills"))},{default:s(()=>[o("div",Te,[o("span",Oe,a(e.$t("dashboard.stats.skills")),1),t(d(Y),{style:{color:"#1677ff"}})]),o("div",Ee,a(g.value.skillCount||"—"),1),o("div",Me,a(e.$t("dashboard.stats.skillsHint")),1)]),_:1})]),_:1}),t(u,{xs:24,sm:12,lg:6},{default:s(()=>[t(k,{class:"stat-card",size:"small",style:{cursor:"pointer"},onClick:n[1]||(n[1]=l=>e.$router.push("/chat"))},{default:s(()=>[o("div",Ne,[o("span",Ae,a(e.$t("dashboard.stats.sessions")),1),t(d(Z),{style:{color:"#722ed1"}})]),o("div",Fe,a(g.value.sessionCount),1),o("div",qe,a(e.$t("dashboard.stats.sessionsHint")),1)]),_:1})]),_:1})]),_:1}),t(R,{gutter:[12,12],style:{"margin-bottom":"16px"}},{default:s(()=>[t(u,{xs:24,sm:8},{default:s(()=>[t(k,{class:"stat-card",size:"small"},{default:s(()=>[o("div",Be,[o("span",He,a(e.$t("dashboard.stats.appStatus")),1),t(d(ve),{style:K({color:g.value.appRunning?"#52c41a":"#888"})},null,8,["style"])]),o("div",{class:"stat-value",style:K({color:g.value.appRunning?"#52c41a":"#888",fontSize:"15px"})},a(g.value.appRunning?e.$t("dashboard.stats.appRunning"):g.value.setupDone?e.$t("dashboard.stats.appReady"):e.$t("dashboard.stats.appNotStarted")),5),o("div",Ue,a(e.$t("dashboard.stats.edition",{name:g.value.edition||"Community"})),1)]),_:1})]),_:1}),t(u,{xs:24,sm:8},{default:s(()=>[t(k,{class:"stat-card",size:"small",style:{cursor:"pointer"},onClick:n[2]||(n[2]=l=>e.$router.push("/mcp"))},{default:s(()=>[o("div",Ve,[o("span",Ge,a(e.$t("dashboard.stats.mcp")),1),t(d(me),{style:{color:"#13c2c2"}})]),o("div",Ie,a(g.value.mcpCount??"—"),1),o("div",We,a(e.$t("dashboard.stats.mcpHint")),1)]),_:1})]),_:1}),t(u,{xs:24,sm:8},{default:s(()=>[t(k,{class:"stat-card",size:"small",style:{cursor:"pointer"},onClick:n[3]||(n[3]=l=>e.$router.push("/notes"))},{default:s(()=>[o("div",Je,[o("span",Ke,a(e.$t("dashboard.stats.notes")),1),t(d(X),{style:{color:"#faad14"}})]),o("div",Qe,a(g.value.noteCount??"—"),1),o("div",Ye,a(e.$t("dashboard.stats.notesHint")),1)]),_:1})]),_:1})]),_:1}),t(R,{gutter:[16,16]},{default:s(()=>[t(u,{xs:24,lg:10},{default:s(()=>[t(k,{title:e.$t("dashboard.quick.title"),style:{background:"var(--bg-card)","border-color":"var(--border-color)",height:"100%"}},{default:s(()=>[t(ee,{direction:"vertical",style:{width:"100%"},size:"middle"},{default:s(()=>[t(P,{type:"primary",block:"",onClick:n[4]||(n[4]=l=>e.$router.push("/chat"))},{icon:s(()=>[t(d(Z))]),default:s(()=>[h(" "+a(_.value?e.$t("dashboard.quick.enterProjectChat"):e.$t("dashboard.quick.newAiChat")),1)]),_:1}),t(P,{block:"",onClick:O,style:{background:"rgba(114,46,209,.12)","border-color":"#722ed1",color:"#722ed1"}},{icon:s(()=>[t(d(Q))]),default:s(()=>[h(" "+a(e.$t("dashboard.quick.startAgent")),1)]),_:1}),t(R,{gutter:8},{default:s(()=>[t(u,{span:12},{default:s(()=>[t(P,{block:"",onClick:n[5]||(n[5]=l=>e.$router.push("/services")),style:{background:"var(--bg-card-hover)","border-color":"var(--border-color)"}},{icon:s(()=>[t(d(pe))]),default:s(()=>[h(" "+a(e.$t("dashboard.quick.services")),1)]),_:1})]),_:1}),t(u,{span:12},{default:s(()=>[t(P,{block:"",onClick:n[6]||(n[6]=l=>e.$router.push("/logs")),style:{background:"var(--bg-card-hover)","border-color":"var(--border-color)"}},{icon:s(()=>[t(d(X))]),default:s(()=>[h(" "+a(e.$t("dashboard.quick.logs")),1)]),_:1})]),_:1})]),_:1}),t(R,{gutter:8},{default:s(()=>[t(u,{span:12},{default:s(()=>[t(P,{block:"",onClick:n[7]||(n[7]=l=>e.$router.push("/skills")),style:{background:"var(--bg-card-hover)","border-color":"var(--border-color)"}},{icon:s(()=>[t(d(Y))]),default:s(()=>[h(" "+a(e.$t("dashboard.quick.skills")),1)]),_:1})]),_:1}),t(u,{span:12},{default:s(()=>[t(P,{block:"",onClick:n[8]||(n[8]=l=>e.$router.push("/providers")),style:{background:"var(--bg-card-hover)","border-color":"var(--border-color)"}},{icon:s(()=>[t(d(he))]),default:s(()=>[h(" "+a(e.$t("dashboard.quick.providers")),1)]),_:1})]),_:1})]),_:1})]),_:1})]),_:1},8,["title"])]),_:1}),t(u,{xs:24,lg:14},{default:s(()=>[t(k,{title:e.$t("dashboard.status.title"),style:{background:"var(--bg-card)","border-color":"var(--border-color)"},loading:z.value},{extra:s(()=>[t(P,{type:"link",size:"small",onClick:n[9]||(n[9]=l=>e.$router.push("/logs"))},{default:s(()=>[h(a(e.$t("dashboard.status.more")),1)]),_:1})]),default:s(()=>[o("pre",Ze,a(V.value||e.$t("dashboard.status.placeholder")),1)]),_:1},8,["title","loading"])]),_:1})]),_:1}),t(k,{title:e.$t("dashboard.telemetry.title"),style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-top":"16px"},loading:z.value},{default:s(()=>[t(R,{gutter:[12,12],style:{"margin-bottom":"12px"}},{default:s(()=>[t(u,{xs:24,md:8},{default:s(()=>[o("div",Xe,[o("div",xe,a(e.$t("dashboard.telemetry.filterWindow")),1),t(W,{value:D.value.windowPreset,"onUpdate:value":n[10]||(n[10]=l=>D.value.windowPreset=l),style:{width:"100%"},onChange:L},{default:s(()=>[t(j,{value:"all"},{default:s(()=>[h(a(e.$t("dashboard.telemetry.windowAll")),1)]),_:1}),t(j,{value:"1h"},{default:s(()=>[h(a(e.$t("dashboard.telemetry.window1h")),1)]),_:1}),t(j,{value:"24h"},{default:s(()=>[h(a(e.$t("dashboard.telemetry.window24h")),1)]),_:1}),t(j,{value:"7d"},{default:s(()=>[h(a(e.$t("dashboard.telemetry.window7d")),1)]),_:1})]),_:1},8,["value"])])]),_:1}),t(u,{xs:24,md:8},{default:s(()=>[o("div",et,[o("div",tt,a(e.$t("dashboard.telemetry.filterProvider")),1),t(W,{value:D.value.provider,"onUpdate:value":n[11]||(n[11]=l=>D.value.provider=l),style:{width:"100%"},onChange:L},{default:s(()=>[t(j,{value:""},{default:s(()=>[h(a(e.$t("dashboard.telemetry.providerAll")),1)]),_:1}),(i(!0),p(N,null,A(m.value,l=>(i(),U(j,{key:l.key,value:l.key},{default:s(()=>[h(a(l.key),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])])]),_:1}),t(u,{xs:24,md:8},{default:s(()=>[o("div",st,[o("div",at,a(e.$t("dashboard.telemetry.filterModel")),1),t(W,{value:D.value.model,"onUpdate:value":n[12]||(n[12]=l=>D.value.model=l),style:{width:"100%"},onChange:L},{default:s(()=>[t(j,{value:""},{default:s(()=>[h(a(e.$t("dashboard.telemetry.modelAll")),1)]),_:1}),(i(!0),p(N,null,A($.value,l=>(i(),U(j,{key:l.key,value:l.key},{default:s(()=>[h(a(l.key),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])])]),_:1})]),_:1}),t(R,{gutter:[12,12]},{default:s(()=>[t(u,{xs:24,sm:8},{default:s(()=>[o("div",ot,[o("div",lt,a(e.$t("dashboard.telemetry.hitRate")),1),o("div",rt,a(w(f.value.hitRate)),1),o("div",nt,a(e.$t("dashboard.telemetry.hitRateSub",{compressed:f.value.compressedSamples,total:f.value.samples})),1)])]),_:1}),t(u,{xs:24,sm:8},{default:s(()=>[o("div",dt,[o("div",it,a(e.$t("dashboard.telemetry.savedTokens")),1),o("div",ut,a(f.value.totalSavedTokens),1),o("div",ct,a(e.$t("dashboard.telemetry.savedTokensSub",{avg:f.value.averageSavedTokens})),1)])]),_:1}),t(u,{xs:24,sm:8},{default:s(()=>[o("div",vt,[o("div",mt,a(e.$t("dashboard.telemetry.netSavingsRate")),1),o("div",pt,a(w(f.value.netSavingsRate)),1),o("div",ht,a(e.$t("dashboard.telemetry.netSavingsRateSub",{original:f.value.totalOriginalTokens,compressed:f.value.totalCompressedTokens})),1)])]),_:1})]),_:1}),t(R,{gutter:[16,16],style:{"margin-top":"12px"}},{default:s(()=>[t(u,{xs:24,lg:12},{default:s(()=>[o("div",ft,[o("div",bt,a(e.$t("dashboard.telemetry.strategyDistribution")),1),f.value.strategyDistribution.length===0?(i(),p("div",yt,a(e.$t("dashboard.telemetry.strategyEmpty")),1)):(i(),p("div",_t,[(i(!0),p(N,null,A(f.value.strategyDistribution.slice(0,6),l=>(i(),p("div",{key:l.strategy,class:"telemetry-row"},[o("span",null,a(l.strategy),1),o("span",null,a(e.$t("dashboard.telemetry.strategyRow",{hits:l.hits,rate:w(l.hitRate)})),1)]))),128))]))])]),_:1}),t(u,{xs:24,lg:12},{default:s(()=>[o("div",gt,[o("div",$t,a(e.$t("dashboard.telemetry.variantDistribution")),1),r.value.length===0?(i(),p("div",kt,a(e.$t("dashboard.telemetry.variantEmpty")),1)):(i(),p("div",wt,[(i(!0),p(N,null,A(r.value,([l,se])=>(i(),p("div",{key:l,class:"telemetry-row"},[o("span",null,a(l),1),o("span",null,a(e.$t("dashboard.telemetry.variantRow",{count:se})),1)]))),128))]))])]),_:1})]),_:1}),t(R,{gutter:[16,16],style:{"margin-top":"12px"}},{default:s(()=>[t(u,{xs:24,lg:12},{default:s(()=>[o("div",Ct,[o("div",St,a(e.$t("dashboard.telemetry.providerSlice")),1),m.value.length===0?(i(),p("div",Rt,a(e.$t("dashboard.telemetry.providerEmpty")),1)):(i(),p("div",Dt,[(i(!0),p(N,null,A(m.value.slice(0,6),l=>(i(),p("div",{key:l.key,class:"telemetry-row"},[o("span",null,a(l.key),1),o("span",null,a(e.$t("dashboard.telemetry.providerRow",{samples:l.samples,rate:w(l.hitRate)})),1)]))),128))]))])]),_:1}),t(u,{xs:24,lg:12},{default:s(()=>[o("div",Pt,[o("div",jt,a(e.$t("dashboard.telemetry.modelSlice")),1),$.value.length===0?(i(),p("div",zt,a(e.$t("dashboard.telemetry.modelEmpty")),1)):(i(),p("div",Lt,[(i(!0),p(N,null,A($.value.slice(0,6),l=>(i(),p("div",{key:l.key,class:"telemetry-row"},[o("span",null,a(l.key),1),o("span",null,a(e.$t("dashboard.telemetry.modelRow",{samples:l.samples,saved:l.savedTokens})),1)]))),128))]))])]),_:1})]),_:1})]),_:1},8,["title","loading"]),t(k,{title:e.$t("dashboard.info.title"),style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-top":"16px"}},{default:s(()=>[t(te,{column:{xs:1,sm:2,lg:3},size:"small"},{default:s(()=>[t(E,{label:e.$t("dashboard.info.panelMode")},{default:s(()=>[t(I,{color:_.value?"blue":"purple"},{default:s(()=>[h(a(_.value?e.$t("dashboard.info.modeProject"):e.$t("dashboard.info.modeGlobal")),1)]),_:1},8,["color"])]),_:1},8,["label"]),_.value?(i(),U(E,{key:0,label:e.$t("dashboard.info.projectName")},{default:s(()=>[o("span",Tt,a(d(v).projectName||"—"),1)]),_:1},8,["label"])):J("",!0),_.value?(i(),U(E,{key:1,label:e.$t("dashboard.info.projectPath")},{default:s(()=>[o("span",Ot,a(d(v).projectRoot),1)]),_:1},8,["label"])):J("",!0),t(E,{label:e.$t("dashboard.info.websocket")},{default:s(()=>[o("span",Et," ws://"+a(d(v).wsHost||"127.0.0.1")+":"+a(d(v).wsPort||18800),1)]),_:1},8,["label"]),t(E,{label:e.$t("dashboard.info.auth")},{default:s(()=>[t(I,{color:d(v).wsToken?"green":"default",style:{"font-size":"11px"}},{default:s(()=>[h(a(d(v).wsToken?e.$t("dashboard.info.authEnabled"):e.$t("dashboard.info.authDisabled")),1)]),_:1},8,["color"])]),_:1},8,["label"]),t(E,{label:e.$t("dashboard.info.version")},{default:s(()=>[o("span",Mt,a(d(B)),1)]),_:1},8,["label"])]),_:1})]),_:1},8,["title"])])}}},Ht=de(Nt,[["__scopeId","data-v-bf6b8d82"]]);export{Ht as default};
3
+ `),D(b)}$.status==="fulfilled"&&(c.value.sessionCount=$.value.length),Promise.allSettled([r.execute("skill sources --json",15e3),r.execute("llm providers",15e3)]).then(([b,L])=>{if(b.status==="fulfilled"){const w=fe(b.value.output);Array.isArray(w)&&(c.value.skillCount=w.reduce((O,e)=>O+(typeof e?.count=="number"?e.count:0),0))}if(L.status==="fulfilled"){const O=L.value.output.match(/active[:\s]+(\S+)/i);O&&!c.value.activeLlm&&(c.value.activeLlm=O[1])}}),r.sendRaw({type:"mcp.list_tools"},5e3).then(b=>{const w=(b?.result??b)?.servers;c.value.mcpCount=Array.isArray(w)?w.length:0}).catch(()=>{c.value.mcpCount=0}),await f()}catch{}finally{T.value=!1}}return{loading:T,compressionLoading:F,stats:c,statusLog:q,compression:y,telemetryFilters:v,ensureRuntimeSubscription:B,stopRuntimeSubscription:H,refresh:g,refreshCompression:f,applyCompressionSummary:z,toWindowMs:V}}),_e={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"20px"}},ge={class:"page-title"},$e={class:"page-sub"},ke={style:{display:"flex","align-items":"center",gap:"12px","flex-wrap":"wrap"}},we={style:{color:"#91caff","font-weight":"600"}},Ce={style:{color:"#4a6fa5","font-size":"11px","font-family":"monospace"}},Se={class:"stat-header"},Re={class:"stat-label"},De={class:"stat-sub"},Pe={class:"stat-header"},je={class:"stat-label"},ze={class:"stat-value",style:{color:"#91caff","font-size":"15px",overflow:"hidden","text-overflow":"ellipsis","white-space":"nowrap"}},Le={class:"stat-sub",style:{overflow:"hidden","text-overflow":"ellipsis","white-space":"nowrap"}},Te={class:"stat-header"},Oe={class:"stat-label"},Ee={class:"stat-value",style:{color:"#1677ff"}},Me={class:"stat-sub"},Ne={class:"stat-header"},Ae={class:"stat-label"},Fe={class:"stat-value",style:{color:"#c084fc"}},qe={class:"stat-sub"},Be={class:"stat-header"},He={class:"stat-label"},Ue={class:"stat-sub"},Ve={class:"stat-header"},Ge={class:"stat-label"},Ie={class:"stat-value",style:{color:"#13c2c2"}},We={class:"stat-sub"},Je={class:"stat-header"},Ke={class:"stat-label"},Qe={class:"stat-value",style:{color:"#faad14"}},Ye={class:"stat-sub"},Ze={class:"status-log"},Xe={class:"telemetry-filter"},xe={class:"telemetry-filter-label"},et={class:"telemetry-filter"},tt={class:"telemetry-filter-label"},st={class:"telemetry-filter"},at={class:"telemetry-filter-label"},ot={class:"telemetry-card"},lt={class:"telemetry-label"},rt={class:"telemetry-value"},nt={class:"telemetry-sub"},dt={class:"telemetry-card"},it={class:"telemetry-label"},ut={class:"telemetry-value"},ct={class:"telemetry-sub"},vt={class:"telemetry-card"},mt={class:"telemetry-label"},pt={class:"telemetry-value"},ht={class:"telemetry-sub"},ft={class:"telemetry-section"},bt={class:"telemetry-section-title"},yt={key:0,class:"telemetry-empty"},_t={key:1,class:"telemetry-list"},gt={class:"telemetry-section"},$t={class:"telemetry-section-title"},kt={key:0,class:"telemetry-empty"},wt={key:1,class:"telemetry-list"},Ct={class:"telemetry-section"},St={class:"telemetry-section-title"},Rt={key:0,class:"telemetry-empty"},Dt={key:1,class:"telemetry-list"},Pt={class:"telemetry-section"},jt={class:"telemetry-section-title"},zt={key:0,class:"telemetry-empty"},Lt={key:1,class:"telemetry-list"},Tt={style:{color:"#91caff"}},Ot={style:{color:"var(--text-muted)","font-family":"monospace","font-size":"11px"}},Et={style:{color:"var(--text-secondary)","font-family":"monospace","font-size":"12px"}},Mt={style:{color:"var(--text-muted)"}},Nt={__name:"Dashboard",setup(T){const F=re(),c=G(),q=ie(),y=ye(),v=window.__CC_CONFIG__||{},_=S(()=>v.mode==="project"),B="v5.0.3.145",H=S(()=>c.status),z=S(()=>y.loading),V=S(()=>y.statusLog),D=S(()=>y.telemetryFilters),f=S(()=>y.compression),g=S(()=>y.stats),r=S(()=>Object.entries(f.value.variantDistribution||{})),m=S(()=>f.value.providerDistribution||[]),$=S(()=>f.value.modelDistribution||[]);async function b(){await y.refresh()}async function L(){await y.refreshCompression()}function w(e){return`${((e||0)*100).toFixed(1)}%`}async function O(){await q.createSession("agent"),F.push("/chat")}return oe(()=>{y.ensureRuntimeSubscription(c),setTimeout(b,300)}),le(()=>{y.stopRuntimeSubscription()}),(e,n)=>{const P=C("a-button"),I=C("a-tag"),k=C("a-card"),x=C("a-badge"),u=C("a-col"),R=C("a-row"),ee=C("a-space"),j=C("a-select-option"),W=C("a-select"),E=C("a-descriptions-item"),te=C("a-descriptions");return i(),p("div",null,[o("div",_e,[o("div",null,[o("h2",ge,a(e.$t("dashboard.title")),1),o("p",$e,a(_.value?e.$t("dashboard.subProject",{name:d(v).projectName||e.$t("dashboard.unnamedProject")}):e.$t("dashboard.subGlobal")),1)]),t(P,{type:"primary",ghost:"",loading:z.value,onClick:b},{icon:s(()=>[t(d(ue))]),default:s(()=>[h(" "+a(e.$t("dashboard.refresh")),1)]),_:1},8,["loading"])]),_.value?(i(),U(k,{key:0,style:{background:"rgba(22,119,255,.08)","border-color":"rgba(22,119,255,.25)","margin-bottom":"16px"},size:"small"},{default:s(()=>[o("div",ke,[t(d(ce),{style:{color:"#1677ff","font-size":"18px"}}),o("div",null,[o("div",we,a(d(v).projectName||e.$t("dashboard.projectBanner.fallbackName")),1),o("div",Ce,a(d(v).projectRoot),1)]),t(I,{color:"blue",style:{"margin-left":"auto"}},{default:s(()=>[h(a(e.$t("dashboard.projectBanner.tag")),1)]),_:1})])]),_:1})):J("",!0),t(R,{gutter:[12,12],style:{"margin-bottom":"16px"}},{default:s(()=>[t(u,{xs:24,sm:12,lg:6},{default:s(()=>[t(k,{class:"stat-card gateway-card",size:"small"},{default:s(()=>[o("div",Se,[o("span",Re,a(e.$t("dashboard.stats.wsGateway")),1),t(x,{status:H.value==="connected"?"success":"error"},null,8,["status"])]),o("div",{class:"stat-value",style:K({color:H.value==="connected"?"#52c41a":"#888"})},a(H.value==="connected"?e.$t("dashboard.stats.wsRunning"):e.$t("dashboard.stats.wsDisconnected")),5),o("div",De,a(e.$t("dashboard.stats.wsPortLine",{port:d(v).wsPort||18800,host:d(v).wsHost||"127.0.0.1"})),1)]),_:1})]),_:1}),t(u,{xs:24,sm:12,lg:6},{default:s(()=>[t(k,{class:"stat-card",size:"small"},{default:s(()=>[o("div",Pe,[o("span",je,a(e.$t("dashboard.stats.currentLlm")),1),t(d(Q),{style:{color:"#1677ff"}})]),o("div",ze,a(g.value.activeLlm||e.$t("dashboard.stats.llmUnconfigured")),1),o("div",Le,a(g.value.activeModel||"—"),1)]),_:1})]),_:1}),t(u,{xs:24,sm:12,lg:6},{default:s(()=>[t(k,{class:"stat-card",size:"small",style:{cursor:"pointer"},onClick:n[0]||(n[0]=l=>e.$router.push("/skills"))},{default:s(()=>[o("div",Te,[o("span",Oe,a(e.$t("dashboard.stats.skills")),1),t(d(Y),{style:{color:"#1677ff"}})]),o("div",Ee,a(g.value.skillCount||"—"),1),o("div",Me,a(e.$t("dashboard.stats.skillsHint")),1)]),_:1})]),_:1}),t(u,{xs:24,sm:12,lg:6},{default:s(()=>[t(k,{class:"stat-card",size:"small",style:{cursor:"pointer"},onClick:n[1]||(n[1]=l=>e.$router.push("/chat"))},{default:s(()=>[o("div",Ne,[o("span",Ae,a(e.$t("dashboard.stats.sessions")),1),t(d(Z),{style:{color:"#722ed1"}})]),o("div",Fe,a(g.value.sessionCount),1),o("div",qe,a(e.$t("dashboard.stats.sessionsHint")),1)]),_:1})]),_:1})]),_:1}),t(R,{gutter:[12,12],style:{"margin-bottom":"16px"}},{default:s(()=>[t(u,{xs:24,sm:8},{default:s(()=>[t(k,{class:"stat-card",size:"small"},{default:s(()=>[o("div",Be,[o("span",He,a(e.$t("dashboard.stats.appStatus")),1),t(d(ve),{style:K({color:g.value.appRunning?"#52c41a":"#888"})},null,8,["style"])]),o("div",{class:"stat-value",style:K({color:g.value.appRunning?"#52c41a":"#888",fontSize:"15px"})},a(g.value.appRunning?e.$t("dashboard.stats.appRunning"):g.value.setupDone?e.$t("dashboard.stats.appReady"):e.$t("dashboard.stats.appNotStarted")),5),o("div",Ue,a(e.$t("dashboard.stats.edition",{name:g.value.edition||"Community"})),1)]),_:1})]),_:1}),t(u,{xs:24,sm:8},{default:s(()=>[t(k,{class:"stat-card",size:"small",style:{cursor:"pointer"},onClick:n[2]||(n[2]=l=>e.$router.push("/mcp"))},{default:s(()=>[o("div",Ve,[o("span",Ge,a(e.$t("dashboard.stats.mcp")),1),t(d(me),{style:{color:"#13c2c2"}})]),o("div",Ie,a(g.value.mcpCount??"—"),1),o("div",We,a(e.$t("dashboard.stats.mcpHint")),1)]),_:1})]),_:1}),t(u,{xs:24,sm:8},{default:s(()=>[t(k,{class:"stat-card",size:"small",style:{cursor:"pointer"},onClick:n[3]||(n[3]=l=>e.$router.push("/notes"))},{default:s(()=>[o("div",Je,[o("span",Ke,a(e.$t("dashboard.stats.notes")),1),t(d(X),{style:{color:"#faad14"}})]),o("div",Qe,a(g.value.noteCount??"—"),1),o("div",Ye,a(e.$t("dashboard.stats.notesHint")),1)]),_:1})]),_:1})]),_:1}),t(R,{gutter:[16,16]},{default:s(()=>[t(u,{xs:24,lg:10},{default:s(()=>[t(k,{title:e.$t("dashboard.quick.title"),style:{background:"var(--bg-card)","border-color":"var(--border-color)",height:"100%"}},{default:s(()=>[t(ee,{direction:"vertical",style:{width:"100%"},size:"middle"},{default:s(()=>[t(P,{type:"primary",block:"",onClick:n[4]||(n[4]=l=>e.$router.push("/chat"))},{icon:s(()=>[t(d(Z))]),default:s(()=>[h(" "+a(_.value?e.$t("dashboard.quick.enterProjectChat"):e.$t("dashboard.quick.newAiChat")),1)]),_:1}),t(P,{block:"",onClick:O,style:{background:"rgba(114,46,209,.12)","border-color":"#722ed1",color:"#722ed1"}},{icon:s(()=>[t(d(Q))]),default:s(()=>[h(" "+a(e.$t("dashboard.quick.startAgent")),1)]),_:1}),t(R,{gutter:8},{default:s(()=>[t(u,{span:12},{default:s(()=>[t(P,{block:"",onClick:n[5]||(n[5]=l=>e.$router.push("/services")),style:{background:"var(--bg-card-hover)","border-color":"var(--border-color)"}},{icon:s(()=>[t(d(pe))]),default:s(()=>[h(" "+a(e.$t("dashboard.quick.services")),1)]),_:1})]),_:1}),t(u,{span:12},{default:s(()=>[t(P,{block:"",onClick:n[6]||(n[6]=l=>e.$router.push("/logs")),style:{background:"var(--bg-card-hover)","border-color":"var(--border-color)"}},{icon:s(()=>[t(d(X))]),default:s(()=>[h(" "+a(e.$t("dashboard.quick.logs")),1)]),_:1})]),_:1})]),_:1}),t(R,{gutter:8},{default:s(()=>[t(u,{span:12},{default:s(()=>[t(P,{block:"",onClick:n[7]||(n[7]=l=>e.$router.push("/skills")),style:{background:"var(--bg-card-hover)","border-color":"var(--border-color)"}},{icon:s(()=>[t(d(Y))]),default:s(()=>[h(" "+a(e.$t("dashboard.quick.skills")),1)]),_:1})]),_:1}),t(u,{span:12},{default:s(()=>[t(P,{block:"",onClick:n[8]||(n[8]=l=>e.$router.push("/providers")),style:{background:"var(--bg-card-hover)","border-color":"var(--border-color)"}},{icon:s(()=>[t(d(he))]),default:s(()=>[h(" "+a(e.$t("dashboard.quick.providers")),1)]),_:1})]),_:1})]),_:1})]),_:1})]),_:1},8,["title"])]),_:1}),t(u,{xs:24,lg:14},{default:s(()=>[t(k,{title:e.$t("dashboard.status.title"),style:{background:"var(--bg-card)","border-color":"var(--border-color)"},loading:z.value},{extra:s(()=>[t(P,{type:"link",size:"small",onClick:n[9]||(n[9]=l=>e.$router.push("/logs"))},{default:s(()=>[h(a(e.$t("dashboard.status.more")),1)]),_:1})]),default:s(()=>[o("pre",Ze,a(V.value||e.$t("dashboard.status.placeholder")),1)]),_:1},8,["title","loading"])]),_:1})]),_:1}),t(k,{title:e.$t("dashboard.telemetry.title"),style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-top":"16px"},loading:z.value},{default:s(()=>[t(R,{gutter:[12,12],style:{"margin-bottom":"12px"}},{default:s(()=>[t(u,{xs:24,md:8},{default:s(()=>[o("div",Xe,[o("div",xe,a(e.$t("dashboard.telemetry.filterWindow")),1),t(W,{value:D.value.windowPreset,"onUpdate:value":n[10]||(n[10]=l=>D.value.windowPreset=l),style:{width:"100%"},onChange:L},{default:s(()=>[t(j,{value:"all"},{default:s(()=>[h(a(e.$t("dashboard.telemetry.windowAll")),1)]),_:1}),t(j,{value:"1h"},{default:s(()=>[h(a(e.$t("dashboard.telemetry.window1h")),1)]),_:1}),t(j,{value:"24h"},{default:s(()=>[h(a(e.$t("dashboard.telemetry.window24h")),1)]),_:1}),t(j,{value:"7d"},{default:s(()=>[h(a(e.$t("dashboard.telemetry.window7d")),1)]),_:1})]),_:1},8,["value"])])]),_:1}),t(u,{xs:24,md:8},{default:s(()=>[o("div",et,[o("div",tt,a(e.$t("dashboard.telemetry.filterProvider")),1),t(W,{value:D.value.provider,"onUpdate:value":n[11]||(n[11]=l=>D.value.provider=l),style:{width:"100%"},onChange:L},{default:s(()=>[t(j,{value:""},{default:s(()=>[h(a(e.$t("dashboard.telemetry.providerAll")),1)]),_:1}),(i(!0),p(N,null,A(m.value,l=>(i(),U(j,{key:l.key,value:l.key},{default:s(()=>[h(a(l.key),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])])]),_:1}),t(u,{xs:24,md:8},{default:s(()=>[o("div",st,[o("div",at,a(e.$t("dashboard.telemetry.filterModel")),1),t(W,{value:D.value.model,"onUpdate:value":n[12]||(n[12]=l=>D.value.model=l),style:{width:"100%"},onChange:L},{default:s(()=>[t(j,{value:""},{default:s(()=>[h(a(e.$t("dashboard.telemetry.modelAll")),1)]),_:1}),(i(!0),p(N,null,A($.value,l=>(i(),U(j,{key:l.key,value:l.key},{default:s(()=>[h(a(l.key),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])])]),_:1})]),_:1}),t(R,{gutter:[12,12]},{default:s(()=>[t(u,{xs:24,sm:8},{default:s(()=>[o("div",ot,[o("div",lt,a(e.$t("dashboard.telemetry.hitRate")),1),o("div",rt,a(w(f.value.hitRate)),1),o("div",nt,a(e.$t("dashboard.telemetry.hitRateSub",{compressed:f.value.compressedSamples,total:f.value.samples})),1)])]),_:1}),t(u,{xs:24,sm:8},{default:s(()=>[o("div",dt,[o("div",it,a(e.$t("dashboard.telemetry.savedTokens")),1),o("div",ut,a(f.value.totalSavedTokens),1),o("div",ct,a(e.$t("dashboard.telemetry.savedTokensSub",{avg:f.value.averageSavedTokens})),1)])]),_:1}),t(u,{xs:24,sm:8},{default:s(()=>[o("div",vt,[o("div",mt,a(e.$t("dashboard.telemetry.netSavingsRate")),1),o("div",pt,a(w(f.value.netSavingsRate)),1),o("div",ht,a(e.$t("dashboard.telemetry.netSavingsRateSub",{original:f.value.totalOriginalTokens,compressed:f.value.totalCompressedTokens})),1)])]),_:1})]),_:1}),t(R,{gutter:[16,16],style:{"margin-top":"12px"}},{default:s(()=>[t(u,{xs:24,lg:12},{default:s(()=>[o("div",ft,[o("div",bt,a(e.$t("dashboard.telemetry.strategyDistribution")),1),f.value.strategyDistribution.length===0?(i(),p("div",yt,a(e.$t("dashboard.telemetry.strategyEmpty")),1)):(i(),p("div",_t,[(i(!0),p(N,null,A(f.value.strategyDistribution.slice(0,6),l=>(i(),p("div",{key:l.strategy,class:"telemetry-row"},[o("span",null,a(l.strategy),1),o("span",null,a(e.$t("dashboard.telemetry.strategyRow",{hits:l.hits,rate:w(l.hitRate)})),1)]))),128))]))])]),_:1}),t(u,{xs:24,lg:12},{default:s(()=>[o("div",gt,[o("div",$t,a(e.$t("dashboard.telemetry.variantDistribution")),1),r.value.length===0?(i(),p("div",kt,a(e.$t("dashboard.telemetry.variantEmpty")),1)):(i(),p("div",wt,[(i(!0),p(N,null,A(r.value,([l,se])=>(i(),p("div",{key:l,class:"telemetry-row"},[o("span",null,a(l),1),o("span",null,a(e.$t("dashboard.telemetry.variantRow",{count:se})),1)]))),128))]))])]),_:1})]),_:1}),t(R,{gutter:[16,16],style:{"margin-top":"12px"}},{default:s(()=>[t(u,{xs:24,lg:12},{default:s(()=>[o("div",Ct,[o("div",St,a(e.$t("dashboard.telemetry.providerSlice")),1),m.value.length===0?(i(),p("div",Rt,a(e.$t("dashboard.telemetry.providerEmpty")),1)):(i(),p("div",Dt,[(i(!0),p(N,null,A(m.value.slice(0,6),l=>(i(),p("div",{key:l.key,class:"telemetry-row"},[o("span",null,a(l.key),1),o("span",null,a(e.$t("dashboard.telemetry.providerRow",{samples:l.samples,rate:w(l.hitRate)})),1)]))),128))]))])]),_:1}),t(u,{xs:24,lg:12},{default:s(()=>[o("div",Pt,[o("div",jt,a(e.$t("dashboard.telemetry.modelSlice")),1),$.value.length===0?(i(),p("div",zt,a(e.$t("dashboard.telemetry.modelEmpty")),1)):(i(),p("div",Lt,[(i(!0),p(N,null,A($.value.slice(0,6),l=>(i(),p("div",{key:l.key,class:"telemetry-row"},[o("span",null,a(l.key),1),o("span",null,a(e.$t("dashboard.telemetry.modelRow",{samples:l.samples,saved:l.savedTokens})),1)]))),128))]))])]),_:1})]),_:1})]),_:1},8,["title","loading"]),t(k,{title:e.$t("dashboard.info.title"),style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-top":"16px"}},{default:s(()=>[t(te,{column:{xs:1,sm:2,lg:3},size:"small"},{default:s(()=>[t(E,{label:e.$t("dashboard.info.panelMode")},{default:s(()=>[t(I,{color:_.value?"blue":"purple"},{default:s(()=>[h(a(_.value?e.$t("dashboard.info.modeProject"):e.$t("dashboard.info.modeGlobal")),1)]),_:1},8,["color"])]),_:1},8,["label"]),_.value?(i(),U(E,{key:0,label:e.$t("dashboard.info.projectName")},{default:s(()=>[o("span",Tt,a(d(v).projectName||"—"),1)]),_:1},8,["label"])):J("",!0),_.value?(i(),U(E,{key:1,label:e.$t("dashboard.info.projectPath")},{default:s(()=>[o("span",Ot,a(d(v).projectRoot),1)]),_:1},8,["label"])):J("",!0),t(E,{label:e.$t("dashboard.info.websocket")},{default:s(()=>[o("span",Et," ws://"+a(d(v).wsHost||"127.0.0.1")+":"+a(d(v).wsPort||18800),1)]),_:1},8,["label"]),t(E,{label:e.$t("dashboard.info.auth")},{default:s(()=>[t(I,{color:d(v).wsToken?"green":"default",style:{"font-size":"11px"}},{default:s(()=>[h(a(d(v).wsToken?e.$t("dashboard.info.authEnabled"):e.$t("dashboard.info.authDisabled")),1)]),_:1},8,["color"])]),_:1},8,["label"]),t(E,{label:e.$t("dashboard.info.version")},{default:s(()=>[o("span",Mt,a(d(B)),1)]),_:1},8,["label"])]),_:1})]),_:1},8,["title"])])}}},Ht=de(Nt,[["__scopeId","data-v-bf6b8d82"]]);export{Ht as default};
@@ -1 +1 @@
1
- import{P as n,f as m,i as V,ay as B}from"./index-Cs66y4oC.js";import{T as D}from"./Trigger-D75Mawa_.js";import{c as g}from"./vnode-CgY9xUvr.js";import{d as M,r as v,w as F,c as d,F as L,f as y}from"./vendor-BXcBOG8b.js";const l={adjustX:1,adjustY:1},s=[0,0],W={topLeft:{points:["bl","tl"],overflow:l,offset:[0,-4],targetOffset:s},topCenter:{points:["bc","tc"],overflow:l,offset:[0,-4],targetOffset:s},topRight:{points:["br","tr"],overflow:l,offset:[0,-4],targetOffset:s},bottomLeft:{points:["tl","bl"],overflow:l,offset:[0,4],targetOffset:s},bottomCenter:{points:["tc","bc"],overflow:l,offset:[0,4],targetOffset:s},bottomRight:{points:["tr","br"],overflow:l,offset:[0,4],targetOffset:s}};var $=function(e,c){var a={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&c.indexOf(o)<0&&(a[o]=e[o]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,o=Object.getOwnPropertySymbols(e);i<o.length;i++)c.indexOf(o[i])<0&&Object.prototype.propertyIsEnumerable.call(e,o[i])&&(a[o[i]]=e[o[i]]);return a};const X=M({compatConfig:{MODE:3},props:{minOverlayWidthMatchTrigger:{type:Boolean,default:void 0},arrow:{type:Boolean,default:!1},prefixCls:n.string.def("rc-dropdown"),transitionName:String,overlayClassName:n.string.def(""),openClassName:String,animation:n.any,align:n.object,overlayStyle:{type:Object,default:void 0},placement:n.string.def("bottomLeft"),overlay:n.any,trigger:n.oneOfType([n.string,n.arrayOf(n.string)]).def("hover"),alignPoint:{type:Boolean,default:void 0},showAction:n.array,hideAction:n.array,getPopupContainer:Function,visible:{type:Boolean,default:void 0},defaultVisible:{type:Boolean,default:!1},mouseEnterDelay:n.number.def(.15),mouseLeaveDelay:n.number.def(.1)},emits:["visibleChange","overlayClick"],setup(e,c){let{slots:a,emit:o,expose:i}=c;const f=v(!!e.visible);F(()=>e.visible,t=>{t!==void 0&&(f.value=t)});const p=v();i({triggerRef:p});const b=t=>{e.visible===void 0&&(f.value=!1),o("overlayClick",t)},h=t=>{e.visible===void 0&&(f.value=t),o("visibleChange",t)},C=()=>{var t;const r=(t=a.overlay)===null||t===void 0?void 0:t.call(a),u={prefixCls:`${e.prefixCls}-menu`,onClick:b};return d(L,{key:B},[e.arrow&&d("div",{class:`${e.prefixCls}-arrow`},null),g(r,u,!1)])},w=y(()=>{const{minOverlayWidthMatchTrigger:t=!e.alignPoint}=e;return t}),O=()=>{var t;const r=(t=a.default)===null||t===void 0?void 0:t.call(a);return f.value&&r?g(r[0],{class:e.openClassName||`${e.prefixCls}-open`},!1):r},P=y(()=>!e.hideAction&&e.trigger.indexOf("contextmenu")!==-1?["click"]:e.hideAction);return()=>{const{prefixCls:t,arrow:r,showAction:u,overlayStyle:x,trigger:A,placement:N,align:j,getPopupContainer:S,transitionName:T,animation:_,overlayClassName:k}=e,E=$(e,["prefixCls","arrow","showAction","overlayStyle","trigger","placement","align","getPopupContainer","transitionName","animation","overlayClassName"]);return d(D,m(m({},E),{},{prefixCls:t,ref:p,popupClassName:V(k,{[`${t}-show-arrow`]:r}),popupStyle:x,builtinPlacements:W,action:A,showAction:u,hideAction:P.value||[],popupPlacement:N,popupAlign:j,popupTransitionName:T,popupAnimation:_,popupVisible:f.value,stretch:w.value?"minWidth":"",onPopupVisibleChange:h,getPopupContainer:S}),{popup:C,default:O})}}});export{X as D};
1
+ import{P as n,f as m,i as V,ay as B}from"./index-CzoKAiyT.js";import{T as D}from"./Trigger-CkXkhmjk.js";import{c as g}from"./vnode-CK992ojP.js";import{d as M,r as v,w as F,c as d,F as L,f as y}from"./vendor-BXcBOG8b.js";const l={adjustX:1,adjustY:1},s=[0,0],W={topLeft:{points:["bl","tl"],overflow:l,offset:[0,-4],targetOffset:s},topCenter:{points:["bc","tc"],overflow:l,offset:[0,-4],targetOffset:s},topRight:{points:["br","tr"],overflow:l,offset:[0,-4],targetOffset:s},bottomLeft:{points:["tl","bl"],overflow:l,offset:[0,4],targetOffset:s},bottomCenter:{points:["tc","bc"],overflow:l,offset:[0,4],targetOffset:s},bottomRight:{points:["tr","br"],overflow:l,offset:[0,4],targetOffset:s}};var $=function(e,c){var a={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&c.indexOf(o)<0&&(a[o]=e[o]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,o=Object.getOwnPropertySymbols(e);i<o.length;i++)c.indexOf(o[i])<0&&Object.prototype.propertyIsEnumerable.call(e,o[i])&&(a[o[i]]=e[o[i]]);return a};const X=M({compatConfig:{MODE:3},props:{minOverlayWidthMatchTrigger:{type:Boolean,default:void 0},arrow:{type:Boolean,default:!1},prefixCls:n.string.def("rc-dropdown"),transitionName:String,overlayClassName:n.string.def(""),openClassName:String,animation:n.any,align:n.object,overlayStyle:{type:Object,default:void 0},placement:n.string.def("bottomLeft"),overlay:n.any,trigger:n.oneOfType([n.string,n.arrayOf(n.string)]).def("hover"),alignPoint:{type:Boolean,default:void 0},showAction:n.array,hideAction:n.array,getPopupContainer:Function,visible:{type:Boolean,default:void 0},defaultVisible:{type:Boolean,default:!1},mouseEnterDelay:n.number.def(.15),mouseLeaveDelay:n.number.def(.1)},emits:["visibleChange","overlayClick"],setup(e,c){let{slots:a,emit:o,expose:i}=c;const f=v(!!e.visible);F(()=>e.visible,t=>{t!==void 0&&(f.value=t)});const p=v();i({triggerRef:p});const b=t=>{e.visible===void 0&&(f.value=!1),o("overlayClick",t)},h=t=>{e.visible===void 0&&(f.value=t),o("visibleChange",t)},C=()=>{var t;const r=(t=a.overlay)===null||t===void 0?void 0:t.call(a),u={prefixCls:`${e.prefixCls}-menu`,onClick:b};return d(L,{key:B},[e.arrow&&d("div",{class:`${e.prefixCls}-arrow`},null),g(r,u,!1)])},w=y(()=>{const{minOverlayWidthMatchTrigger:t=!e.alignPoint}=e;return t}),O=()=>{var t;const r=(t=a.default)===null||t===void 0?void 0:t.call(a);return f.value&&r?g(r[0],{class:e.openClassName||`${e.prefixCls}-open`},!1):r},P=y(()=>!e.hideAction&&e.trigger.indexOf("contextmenu")!==-1?["click"]:e.hideAction);return()=>{const{prefixCls:t,arrow:r,showAction:u,overlayStyle:x,trigger:A,placement:N,align:j,getPopupContainer:S,transitionName:T,animation:_,overlayClassName:k}=e,E=$(e,["prefixCls","arrow","showAction","overlayStyle","trigger","placement","align","getPopupContainer","transitionName","animation","overlayClassName"]);return d(D,m(m({},E),{},{prefixCls:t,ref:p,popupClassName:V(k,{[`${t}-show-arrow`]:r}),popupStyle:x,builtinPlacements:W,action:A,showAction:u,hideAction:P.value||[],popupPlacement:N,popupAlign:j,popupTransitionName:T,popupAnimation:_,popupVisible:f.value,stretch:w.value?"minWidth":"",onPopupVisibleChange:h,getPopupContainer:S}),{popup:C,default:O})}}});export{X as D};
@@ -1 +1 @@
1
- import{_ as C}from"./index-Cs66y4oC.js";import{aG as k}from"./icons-DlxlFL4g.js";import{K as N,L as n,M as p,R as a,c as f,Z as T,u as $,P as s,S as l,N as u,O as i,Q as h,f as t}from"./vendor-BXcBOG8b.js";const j={class:"email-row"},w={class:"left"},A={class:"body"},B={class:"head"},M={class:"from"},V={class:"time"},D={class:"subject"},E={key:0,class:"snippet"},L={class:"meta"},O={__name:"EmailListRenderer",props:{event:{type:Object,required:!0}},setup(d){const r=d,e=t(()=>r.event.content||{}),g=t(()=>r.event.extra||{}),y=t(()=>e.value.from||e.value.sender||e.value.fromName||r.event.actor||"(未知发件人)"),S=t(()=>e.value.subject||e.value.title||"(无主题)"),v=t(()=>e.value.snippet||e.value.preview||e.value.body?.slice(0,100)||null),m=t(()=>Array.isArray(e.value.attachments)?e.value.attachments.length:typeof e.value.attachmentCount=="number"?e.value.attachmentCount:0),_=t(()=>g.value.category||e.value.category),x=t(()=>e.value.unread===!0),b=t(()=>{if(!r.event.occurredAt)return"";const o=new Date(r.event.occurredAt);return`${o.getFullYear()}-${String(o.getMonth()+1).padStart(2,"0")}-${String(o.getDate()).padStart(2,"0")} ${String(o.getHours()).padStart(2,"0")}:${String(o.getMinutes()).padStart(2,"0")}`});return(o,R)=>{const c=N("a-tag");return n(),p("div",j,[a("div",w,[f($(k),{class:T(["icon",{unread:x.value}])},null,8,["class"])]),a("div",A,[a("div",B,[a("span",M,s(y.value),1),a("span",V,s(b.value),1)]),a("div",D,s(S.value),1),v.value?(n(),p("div",E,s(v.value),1)):l("",!0),a("div",L,[f(c,{color:"blue",class:"src"},{default:u(()=>[i(s(d.event.source.adapter),1)]),_:1}),m.value>0?(n(),h(c,{key:0,color:"orange"},{default:u(()=>[i(" 📎 "+s(m.value),1)]),_:1})):l("",!0),_.value?(n(),h(c,{key:1},{default:u(()=>[i(s(_.value),1)]),_:1})):l("",!0)])])])}}},G=C(O,[["__scopeId","data-v-713d5068"]]);export{G as default};
1
+ import{_ as C}from"./index-CzoKAiyT.js";import{aG as k}from"./icons-DlxlFL4g.js";import{K as N,L as n,M as p,R as a,c as f,Z as T,u as $,P as s,S as l,N as u,O as i,Q as h,f as t}from"./vendor-BXcBOG8b.js";const j={class:"email-row"},w={class:"left"},A={class:"body"},B={class:"head"},M={class:"from"},V={class:"time"},D={class:"subject"},E={key:0,class:"snippet"},L={class:"meta"},O={__name:"EmailListRenderer",props:{event:{type:Object,required:!0}},setup(d){const r=d,e=t(()=>r.event.content||{}),g=t(()=>r.event.extra||{}),y=t(()=>e.value.from||e.value.sender||e.value.fromName||r.event.actor||"(未知发件人)"),S=t(()=>e.value.subject||e.value.title||"(无主题)"),v=t(()=>e.value.snippet||e.value.preview||e.value.body?.slice(0,100)||null),m=t(()=>Array.isArray(e.value.attachments)?e.value.attachments.length:typeof e.value.attachmentCount=="number"?e.value.attachmentCount:0),_=t(()=>g.value.category||e.value.category),x=t(()=>e.value.unread===!0),b=t(()=>{if(!r.event.occurredAt)return"";const o=new Date(r.event.occurredAt);return`${o.getFullYear()}-${String(o.getMonth()+1).padStart(2,"0")}-${String(o.getDate()).padStart(2,"0")} ${String(o.getHours()).padStart(2,"0")}:${String(o.getMinutes()).padStart(2,"0")}`});return(o,R)=>{const c=N("a-tag");return n(),p("div",j,[a("div",w,[f($(k),{class:T(["icon",{unread:x.value}])},null,8,["class"])]),a("div",A,[a("div",B,[a("span",M,s(y.value),1),a("span",V,s(b.value),1)]),a("div",D,s(S.value),1),v.value?(n(),p("div",E,s(v.value),1)):l("",!0),a("div",L,[f(c,{color:"blue",class:"src"},{default:u(()=>[i(s(d.event.source.adapter),1)]),_:1}),m.value>0?(n(),h(c,{key:0,color:"orange"},{default:u(()=>[i(" 📎 "+s(m.value),1)]),_:1})):l("",!0),_.value?(n(),h(c,{key:1},{default:u(()=>[i(s(_.value),1)]),_:1})):l("",!0)])])])}}},G=C(O,[["__scopeId","data-v-713d5068"]]);export{G as default};
@@ -1 +1 @@
1
- import{_ as G,u as X,d}from"./index-Cs66y4oC.js";import{R as Z}from"./icons-DlxlFL4g.js";import{o as $,M as T,R as s,c as t,N as a,Q as I,S as D,r as f,K as i,a as ee,L as b,O as u,u as te,P as c,F as ae,Y as le,f as V}from"./vendor-BXcBOG8b.js";function oe(k){return["ask","agent"].map(p=>{const l=k?.readiness?.[p],v=l?.state==="admitted",m=l?.scope==="deployment-admission"&&l.runtimeVerification==="not_checked"&&Array.isArray(l.requiredCommands)&&l.requiredCommands.includes(p)&&(v?l.ready===!0&&l.taskReady===null:["not_configured","disabled","invalid","command_not_allowed"].includes(l.state)&&l.ready===!1&&l.taskReady===!1);return{command:p,state:m?l.state:"unknown",summary:m?v?"部署准入通过":"部署准入被阻断":"未提供准入诊断",detail:m&&typeof l.detail=="string"?l.detail:"当前 CLI 未提供可识别的部署准入诊断,请更新 CLI。",remediation:m&&typeof l.remediation=="string"?l.remediation:""}})}function ne(k,p){for(const l of Object.keys(k))delete k[l];Object.assign(k,{source:"none",effectiveEnabled:!1,profileEnabled:!1,verified:!1,commands:[],readiness:null},p||{})}const se={class:"page-head"},ie={class:"mono"},re={class:"mono"},de={class:"admission-status","aria-live":"polite"},ue=["data-admission-command"],ce={class:"mono"},me={key:0,class:"mono"},pe={__name:"EvolutionSettings",setup(k){const p=X(),l=f(!1),v=f(!1),m=f(!1),P=f(!1),R=f(!1),w=f(""),_=f(""),y=f(""),o=ee({source:"none",effectiveEnabled:!1,profileEnabled:!1,verified:!1,commands:[]}),S=V(()=>l.value||v.value||m.value||P.value||R.value),B=V(()=>oe(o));function E(n){ne(o,n),_.value=o.descriptorPath||"",y.value=o.trustRootPath||"",w.value=o.modulePath||w.value||""}async function h(n,e=3e4){return await p.waitConnected(8e3),(await p.sendRaw(n,e)).result}async function N(){l.value=!0;try{E(await h({type:"evolution.deployment.status"}))}catch(n){d.error("读取配置失败:"+n.message)}finally{l.value=!1}}async function q(){if(!_.value.trim()||!y.value.trim()){d.warning("请填写描述符和信任根公钥的绝对路径");return}v.value=!0;try{E(await h({type:"evolution.deployment.configure",descriptorPath:_.value.trim(),trustRootPath:y.value.trim()},6e4)),d.success("签名校验通过,配置已保存并启用;自动发布仍为 HOLD")}catch(n){d.error("配置失败:"+n.message)}finally{v.value=!1}}async function H(){if(!w.value.trim()){d.warning("请填写测试部署宿主模块的服务器绝对路径");return}P.value=!0;try{E(await h({type:"evolution.deployment.init-test",modulePath:w.value.trim()},6e4)),d.success("TEST 测试开发环境已生成并启用;禁止用于生产")}catch(n){d.error("生成测试环境失败:"+n.message)}finally{P.value=!1}}async function U(){if(!_.value.trim()||!y.value.trim()){d.warning("请填写正式描述符和正式信任根公钥的绝对路径");return}R.value=!0;try{E(await h({type:"evolution.deployment.replace-test",descriptorPath:_.value.trim(),trustRootPath:y.value.trim()},6e4)),d.success("测试根已安全轮换为正式受管证书;请重启 cc ui、IDE 或 Desktop 长驻进程后做正式验证")}catch(n){d.error("替换失败:"+n.message)}finally{R.value=!1}}async function z(){m.value=!0;try{E(await h({type:"evolution.deployment.set-enabled",enabled:!o.profileEnabled})),d.success(o.profileEnabled?"已启用":"已停用")}catch(n){d.error("更新失败:"+n.message)}finally{m.value=!1}}return $(N),(n,e)=>{const C=i("a-button"),F=i("a-switch"),L=i("a-card"),O=i("a-alert"),M=i("a-input"),j=i("a-form-item"),Q=i("a-divider"),W=i("a-space"),J=i("a-form"),A=i("a-col"),x=i("a-tag"),g=i("a-descriptions-item"),K=i("a-descriptions"),Y=i("a-row");return b(),T("div",null,[s("div",se,[e[4]||(e[4]=s("div",null,[s("h2",{class:"page-title"},"Skill 自进化配置"),s("p",{class:"page-sub"}," 默认关闭;CLI、IDE 插件与 cc ui 共用 evolution.enabled 配置。 ")],-1)),t(C,{loading:l.value,onClick:N},{icon:a(()=>[t(te(Z))]),default:a(()=>[e[3]||(e[3]=u("刷新 ",-1))]),_:1},8,["loading"])]),t(L,{title:"自进化开关",class:"notice"},{default:a(()=>[t(F,{checked:o.profileEnabled,loading:m.value,disabled:S.value||l.value,"checked-children":"已开启","un-checked-children":"已关闭",onChange:z},null,8,["checked","loading","disabled"]),e[5]||(e[5]=s("p",null," 关闭后仍可正常聊天和使用 Agent。首次开启会初始化本地运行时,也可使用下方配置的部署。 ",-1)),e[6]||(e[6]=s("p",null," Quick Ask 的下一次请求生效;正在运行的 Agent 会话请停止后重新启动。候选项发布仍需人工审核。 ",-1)),e[7]||(e[7]=s("p",{class:"mono"},'config.json:"evolution": { "enabled": false }',-1))]),_:1}),t(O,{message:"自进化与自动发布分别控制",description:"开启后使用经过签名的 Skill 自进化运行时;自动发布始终保持 HOLD。",type:"info","show-icon":"",class:"notice"}),o.deploymentMode==="test"?(b(),I(O,{key:0,message:"当前为 TEST 测试开发环境",description:"本机自动生成的测试密钥不能用于生产。正式 descriptor 和 trust root 到位后,请使用下方“一键替换测试证书并转正式”。",type:"error","show-icon":"",class:"notice"})):D("",!0),t(Y,{gutter:16},{default:a(()=>[t(A,{xs:24,xl:15},{default:a(()=>[t(L,{title:"上线前测试与正式部署",class:"panel-card"},{default:a(()=>[t(J,{layout:"vertical"},{default:a(()=>[t(j,{label:"测试部署宿主模块"},{extra:a(()=>[...e[8]||(e[8]=[u("首次填写后点击一次即可生成 Ed25519 测试密钥、签名描述符并启用;宿主模块修改后再次点击可刷新。",-1)])]),default:a(()=>[t(M,{value:w.value,"onUpdate:value":e[0]||(e[0]=r=>w.value=r),disabled:S.value,placeholder:"运行 cc ui 的机器上 deployment host .mjs/.js 的绝对路径"},null,8,["value","disabled"])]),_:1}),t(C,{type:"primary",loading:P.value,onClick:H},{default:a(()=>[...e[9]||(e[9]=[u("一键生成/刷新测试环境",-1)])]),_:1},8,["loading"]),t(Q),t(j,{label:"签名部署描述符"},{extra:a(()=>[...e[10]||(e[10]=[u("Web 页面不能读取本机文件选择器,请填写运行 cc ui 的机器上的绝对路径。",-1)])]),default:a(()=>[t(M,{value:_.value,"onUpdate:value":e[1]||(e[1]=r=>_.value=r),disabled:S.value,placeholder:"deployment descriptor JSON 的服务器绝对路径"},null,8,["value","disabled"])]),_:1}),t(j,{label:"Ed25519 信任根公钥"},{default:a(()=>[t(M,{value:y.value,"onUpdate:value":e[2]||(e[2]=r=>y.value=r),disabled:S.value,placeholder:"信任根 public key 的服务器绝对路径"},null,8,["value","disabled"])]),_:1}),t(W,null,{default:a(()=>[t(C,{type:"primary",loading:v.value,onClick:q},{default:a(()=>[...e[11]||(e[11]=[u("校验、保存并启用",-1)])]),_:1},8,["loading"]),o.deploymentMode==="test"?(b(),I(C,{key:0,loading:R.value,onClick:U},{default:a(()=>[...e[12]||(e[12]=[u("一键替换测试证书并转正式",-1)])]),_:1},8,["loading"])):D("",!0)]),_:1})]),_:1})]),_:1})]),_:1}),t(A,{xs:24,xl:9},{default:a(()=>[t(L,{title:"治理状态",class:"panel-card status-card"},{default:a(()=>[t(K,{column:1,size:"small"},{default:a(()=>[t(g,{label:"部署模式"},{default:a(()=>[t(x,{color:o.deploymentMode==="test"?"red":"blue"},{default:a(()=>[u(c(o.deploymentMode==="test"?"TEST(仅限上线前联调)":o.deploymentMode||"none"),1)]),_:1},8,["color"])]),_:1}),t(g,{label:"生效状态"},{default:a(()=>[t(x,{color:o.effectiveEnabled?"green":"default"},{default:a(()=>[u(c(o.effectiveEnabled?"已启用":"未启用"),1)]),_:1},8,["color"])]),_:1}),t(g,{label:"生效来源"},{default:a(()=>[u(c(o.source||"none"),1)]),_:1}),t(g,{label:"签名校验"},{default:a(()=>[t(x,{color:o.verified?"green":"red"},{default:a(()=>[u(c(o.verified?"已通过":"未通过"),1)]),_:1},8,["color"])]),_:1}),t(g,{label:"自动发布"},{default:a(()=>[t(x,{color:"orange"},{default:a(()=>[...e[13]||(e[13]=[u("HOLD",-1)])]),_:1})]),_:1}),t(g,{label:"配置文件"},{default:a(()=>[s("span",ie,c(o.profilePath||"—"),1)]),_:1}),t(g,{label:"允许命令"},{default:a(()=>[s("span",re,c((o.commands||[]).join(", ")||"—"),1)]),_:1})]),_:1}),s("section",de,[e[14]||(e[14]=s("h3",null,"自进化部署准入",-1)),e[15]||(e[15]=s("p",null,"这里只检查部署准入,实际任务运行尚未验证。",-1)),(b(!0),T(ae,null,le(B.value,r=>(b(),T("div",{key:r.command,"data-admission-command":r.command},[s("strong",null,c(r.command)+":"+c(r.summary),1),s("p",ce,c(r.detail),1),r.remediation?(b(),T("p",me,c(r.remediation),1)):D("",!0)],8,ue))),128))]),o.error?(b(),I(O,{key:0,message:o.error,type:"error","show-icon":"",class:"error"},null,8,["message"])):D("",!0)]),_:1})]),_:1})]),_:1})])}}},ye=G(pe,[["__scopeId","data-v-2fecc737"]]);export{ye as default};
1
+ import{_ as G,u as X,d}from"./index-CzoKAiyT.js";import{R as Z}from"./icons-DlxlFL4g.js";import{o as $,M as T,R as s,c as t,N as a,Q as I,S as D,r as f,K as i,a as ee,L as b,O as u,u as te,P as c,F as ae,Y as le,f as V}from"./vendor-BXcBOG8b.js";function oe(k){return["ask","agent"].map(p=>{const l=k?.readiness?.[p],v=l?.state==="admitted",m=l?.scope==="deployment-admission"&&l.runtimeVerification==="not_checked"&&Array.isArray(l.requiredCommands)&&l.requiredCommands.includes(p)&&(v?l.ready===!0&&l.taskReady===null:["not_configured","disabled","invalid","command_not_allowed"].includes(l.state)&&l.ready===!1&&l.taskReady===!1);return{command:p,state:m?l.state:"unknown",summary:m?v?"部署准入通过":"部署准入被阻断":"未提供准入诊断",detail:m&&typeof l.detail=="string"?l.detail:"当前 CLI 未提供可识别的部署准入诊断,请更新 CLI。",remediation:m&&typeof l.remediation=="string"?l.remediation:""}})}function ne(k,p){for(const l of Object.keys(k))delete k[l];Object.assign(k,{source:"none",effectiveEnabled:!1,profileEnabled:!1,verified:!1,commands:[],readiness:null},p||{})}const se={class:"page-head"},ie={class:"mono"},re={class:"mono"},de={class:"admission-status","aria-live":"polite"},ue=["data-admission-command"],ce={class:"mono"},me={key:0,class:"mono"},pe={__name:"EvolutionSettings",setup(k){const p=X(),l=f(!1),v=f(!1),m=f(!1),P=f(!1),R=f(!1),w=f(""),_=f(""),y=f(""),o=ee({source:"none",effectiveEnabled:!1,profileEnabled:!1,verified:!1,commands:[]}),S=V(()=>l.value||v.value||m.value||P.value||R.value),B=V(()=>oe(o));function E(n){ne(o,n),_.value=o.descriptorPath||"",y.value=o.trustRootPath||"",w.value=o.modulePath||w.value||""}async function h(n,e=3e4){return await p.waitConnected(8e3),(await p.sendRaw(n,e)).result}async function N(){l.value=!0;try{E(await h({type:"evolution.deployment.status"}))}catch(n){d.error("读取配置失败:"+n.message)}finally{l.value=!1}}async function q(){if(!_.value.trim()||!y.value.trim()){d.warning("请填写描述符和信任根公钥的绝对路径");return}v.value=!0;try{E(await h({type:"evolution.deployment.configure",descriptorPath:_.value.trim(),trustRootPath:y.value.trim()},6e4)),d.success("签名校验通过,配置已保存并启用;自动发布仍为 HOLD")}catch(n){d.error("配置失败:"+n.message)}finally{v.value=!1}}async function H(){if(!w.value.trim()){d.warning("请填写测试部署宿主模块的服务器绝对路径");return}P.value=!0;try{E(await h({type:"evolution.deployment.init-test",modulePath:w.value.trim()},6e4)),d.success("TEST 测试开发环境已生成并启用;禁止用于生产")}catch(n){d.error("生成测试环境失败:"+n.message)}finally{P.value=!1}}async function U(){if(!_.value.trim()||!y.value.trim()){d.warning("请填写正式描述符和正式信任根公钥的绝对路径");return}R.value=!0;try{E(await h({type:"evolution.deployment.replace-test",descriptorPath:_.value.trim(),trustRootPath:y.value.trim()},6e4)),d.success("测试根已安全轮换为正式受管证书;请重启 cc ui、IDE 或 Desktop 长驻进程后做正式验证")}catch(n){d.error("替换失败:"+n.message)}finally{R.value=!1}}async function z(){m.value=!0;try{E(await h({type:"evolution.deployment.set-enabled",enabled:!o.profileEnabled})),d.success(o.profileEnabled?"已启用":"已停用")}catch(n){d.error("更新失败:"+n.message)}finally{m.value=!1}}return $(N),(n,e)=>{const C=i("a-button"),F=i("a-switch"),L=i("a-card"),O=i("a-alert"),M=i("a-input"),j=i("a-form-item"),Q=i("a-divider"),W=i("a-space"),J=i("a-form"),A=i("a-col"),x=i("a-tag"),g=i("a-descriptions-item"),K=i("a-descriptions"),Y=i("a-row");return b(),T("div",null,[s("div",se,[e[4]||(e[4]=s("div",null,[s("h2",{class:"page-title"},"Skill 自进化配置"),s("p",{class:"page-sub"}," 默认关闭;CLI、IDE 插件与 cc ui 共用 evolution.enabled 配置。 ")],-1)),t(C,{loading:l.value,onClick:N},{icon:a(()=>[t(te(Z))]),default:a(()=>[e[3]||(e[3]=u("刷新 ",-1))]),_:1},8,["loading"])]),t(L,{title:"自进化开关",class:"notice"},{default:a(()=>[t(F,{checked:o.profileEnabled,loading:m.value,disabled:S.value||l.value,"checked-children":"已开启","un-checked-children":"已关闭",onChange:z},null,8,["checked","loading","disabled"]),e[5]||(e[5]=s("p",null," 关闭后仍可正常聊天和使用 Agent。首次开启会初始化本地运行时,也可使用下方配置的部署。 ",-1)),e[6]||(e[6]=s("p",null," Quick Ask 的下一次请求生效;正在运行的 Agent 会话请停止后重新启动。候选项发布仍需人工审核。 ",-1)),e[7]||(e[7]=s("p",{class:"mono"},'config.json:"evolution": { "enabled": false }',-1))]),_:1}),t(O,{message:"自进化与自动发布分别控制",description:"开启后使用经过签名的 Skill 自进化运行时;自动发布始终保持 HOLD。",type:"info","show-icon":"",class:"notice"}),o.deploymentMode==="test"?(b(),I(O,{key:0,message:"当前为 TEST 测试开发环境",description:"本机自动生成的测试密钥不能用于生产。正式 descriptor 和 trust root 到位后,请使用下方“一键替换测试证书并转正式”。",type:"error","show-icon":"",class:"notice"})):D("",!0),t(Y,{gutter:16},{default:a(()=>[t(A,{xs:24,xl:15},{default:a(()=>[t(L,{title:"上线前测试与正式部署",class:"panel-card"},{default:a(()=>[t(J,{layout:"vertical"},{default:a(()=>[t(j,{label:"测试部署宿主模块"},{extra:a(()=>[...e[8]||(e[8]=[u("首次填写后点击一次即可生成 Ed25519 测试密钥、签名描述符并启用;宿主模块修改后再次点击可刷新。",-1)])]),default:a(()=>[t(M,{value:w.value,"onUpdate:value":e[0]||(e[0]=r=>w.value=r),disabled:S.value,placeholder:"运行 cc ui 的机器上 deployment host .mjs/.js 的绝对路径"},null,8,["value","disabled"])]),_:1}),t(C,{type:"primary",loading:P.value,onClick:H},{default:a(()=>[...e[9]||(e[9]=[u("一键生成/刷新测试环境",-1)])]),_:1},8,["loading"]),t(Q),t(j,{label:"签名部署描述符"},{extra:a(()=>[...e[10]||(e[10]=[u("Web 页面不能读取本机文件选择器,请填写运行 cc ui 的机器上的绝对路径。",-1)])]),default:a(()=>[t(M,{value:_.value,"onUpdate:value":e[1]||(e[1]=r=>_.value=r),disabled:S.value,placeholder:"deployment descriptor JSON 的服务器绝对路径"},null,8,["value","disabled"])]),_:1}),t(j,{label:"Ed25519 信任根公钥"},{default:a(()=>[t(M,{value:y.value,"onUpdate:value":e[2]||(e[2]=r=>y.value=r),disabled:S.value,placeholder:"信任根 public key 的服务器绝对路径"},null,8,["value","disabled"])]),_:1}),t(W,null,{default:a(()=>[t(C,{type:"primary",loading:v.value,onClick:q},{default:a(()=>[...e[11]||(e[11]=[u("校验、保存并启用",-1)])]),_:1},8,["loading"]),o.deploymentMode==="test"?(b(),I(C,{key:0,loading:R.value,onClick:U},{default:a(()=>[...e[12]||(e[12]=[u("一键替换测试证书并转正式",-1)])]),_:1},8,["loading"])):D("",!0)]),_:1})]),_:1})]),_:1})]),_:1}),t(A,{xs:24,xl:9},{default:a(()=>[t(L,{title:"治理状态",class:"panel-card status-card"},{default:a(()=>[t(K,{column:1,size:"small"},{default:a(()=>[t(g,{label:"部署模式"},{default:a(()=>[t(x,{color:o.deploymentMode==="test"?"red":"blue"},{default:a(()=>[u(c(o.deploymentMode==="test"?"TEST(仅限上线前联调)":o.deploymentMode||"none"),1)]),_:1},8,["color"])]),_:1}),t(g,{label:"生效状态"},{default:a(()=>[t(x,{color:o.effectiveEnabled?"green":"default"},{default:a(()=>[u(c(o.effectiveEnabled?"已启用":"未启用"),1)]),_:1},8,["color"])]),_:1}),t(g,{label:"生效来源"},{default:a(()=>[u(c(o.source||"none"),1)]),_:1}),t(g,{label:"签名校验"},{default:a(()=>[t(x,{color:o.verified?"green":"red"},{default:a(()=>[u(c(o.verified?"已通过":"未通过"),1)]),_:1},8,["color"])]),_:1}),t(g,{label:"自动发布"},{default:a(()=>[t(x,{color:"orange"},{default:a(()=>[...e[13]||(e[13]=[u("HOLD",-1)])]),_:1})]),_:1}),t(g,{label:"配置文件"},{default:a(()=>[s("span",ie,c(o.profilePath||"—"),1)]),_:1}),t(g,{label:"允许命令"},{default:a(()=>[s("span",re,c((o.commands||[]).join(", ")||"—"),1)]),_:1})]),_:1}),s("section",de,[e[14]||(e[14]=s("h3",null,"自进化部署准入",-1)),e[15]||(e[15]=s("p",null,"这里只检查部署准入,实际任务运行尚未验证。",-1)),(b(!0),T(ae,null,le(B.value,r=>(b(),T("div",{key:r.command,"data-admission-command":r.command},[s("strong",null,c(r.command)+":"+c(r.summary),1),s("p",ce,c(r.detail),1),r.remediation?(b(),T("p",me,c(r.remediation),1)):D("",!0)],8,ue))),128))]),o.error?(b(),I(O,{key:0,message:o.error,type:"error","show-icon":"",class:"error"},null,8,["message"])):D("",!0)]),_:1})]),_:1})]),_:1})])}}},ye=G(pe,[["__scopeId","data-v-2fecc737"]]);export{ye as default};
@@ -1 +1 @@
1
- import{E as W,r as f,f as E,o as j,M as y,R as V,c as a,N as o,u as c,Q as K,S as z,F as b,K as u,L as p,O as M,P as I}from"./vendor-BXcBOG8b.js";import{u as q,_ as A}from"./index-Cs66y4oC.js";import"./icons-DlxlFL4g.js";function H(t){if(!t)return t;if(t.error)throw new Error(t.error);return t.result!==void 0?t.result:t}function L(t,e){if(t&&t.success===!1)throw new Error(t.error||"请求失败");return t&&t.data!==void 0?t.data:e}function O(){const t=q(),e=(s,i={},h=15e3)=>t.sendRaw({type:s,...i},h).then(H);return{async listChildren(){return L(await e("family-guard.list-children",{},1e4),[])},async listChildEvents(s={}){return L(await e("family-guard.list-child-events",s),[])},async appUsageSummary(s={}){return L(await e("family-guard.app-usage-summary",s),{totalMs:0,apps:[]})}}}const J=W("familyGuard",()=>{const t=f([]),e=f(null),s=f([]),i=f({totalMs:0,apps:[]}),h=f(!1),_=f(null),F=E(()=>t.value.length>0),$=E(()=>Math.round((i.value.totalMs||0)/6e4));async function G(){h.value=!0,_.value=null;try{const r=O();t.value=await r.listChildren(),!e.value&&t.value.length>0&&await g(t.value[0].childDid)}catch(r){_.value=r?.message||String(r)}finally{h.value=!1}}async function g(r,m=0){e.value=r,await Promise.all([v(m),x(m)])}async function v(r=0,m=200){if(!e.value)return;const N=O();s.value=await N.listChildEvents({childDid:e.value,sinceMs:r,limit:m})}async function x(r=0){if(!e.value)return;const m=O();i.value=await m.appUsageSummary({childDid:e.value,sinceMs:r})}return{children:t,selectedChildDid:e,events:s,summary:i,loading:h,error:_,hasChildren:F,totalMinutes:$,fetchChildren:G,selectChild:g,fetchEvents:v,fetchSummary:x}}),X={class:"family-guard-dashboard"},Y={class:"page-header"},Z={__name:"FamilyGuardDashboard",setup(t){const e=J(),s=f(null),i=f("all"),h=[{label:"全部",value:"all"},{label:"近 24 小时",value:"24h"},{label:"近 7 天",value:"7d"}],_=E(()=>e.children.map(n=>({label:`${n.childDid}(${n.eventCount} 条)`,value:n.childDid}))),F=E(()=>v(e.summary.totalMs)),$=[{title:"应用 / 包名",dataIndex:"package",key:"package",ellipsis:!0},{title:"时长",dataIndex:"totalMs",key:"totalMs",width:140},{title:"次数",dataIndex:"count",key:"count",width:100}],G=[{title:"时间",dataIndex:"timestampMs",key:"timestampMs",width:180},{title:"来源",dataIndex:"source",key:"source",width:140},{title:"应用",dataIndex:"package",key:"app",ellipsis:!0},{title:"时长",dataIndex:"durationMs",key:"durationMs",width:120},{title:"级别",dataIndex:"level",key:"level",width:80}];function g(){return i.value==="24h"?Date.now()-1440*60*1e3:i.value==="7d"?Date.now()-10080*60*1e3:0}function v(n){const l=Math.round((n||0)/1e3),D=Math.floor(l/3600),w=Math.floor(l%3600/60),S=l%60;return D>0?`${D}h ${w}m`:w>0?`${w}m ${S}s`:`${S}s`}function x(n){return n?new Date(n).toLocaleString():"—"}async function r(n){await e.selectChild(n,g())}async function m(){if(!e.selectedChildDid)return;const n=g();await Promise.all([e.fetchEvents(n),e.fetchSummary(n)])}async function N(){await e.fetchChildren(),s.value=e.selectedChildDid}return j(async()=>{await e.fetchChildren(),s.value=e.selectedChildDid}),(n,l)=>{const D=u("a-button"),w=u("a-alert"),S=u("a-empty"),P=u("a-select"),T=u("a-space"),B=u("a-statistic"),k=u("a-card"),U=u("a-col"),Q=u("a-row"),R=u("a-table");return p(),y("div",X,[V("div",Y,[l[3]||(l[3]=V("h2",null,"家庭守护 · 孩子使用情况",-1)),a(D,{loading:c(e).loading,onClick:N},{default:o(()=>[...l[2]||(l[2]=[M("刷新",-1)])]),_:1},8,["loading"])]),c(e).error?(p(),K(w,{key:0,type:"error",message:c(e).error,banner:"",closable:"",style:{"margin-bottom":"12px"}},null,8,["message"])):z("",!0),!c(e).loading&&!c(e).hasChildren?(p(),K(S,{key:1,description:"还没有收到任何孩子端的使用数据(需在桌面端运行,孩子端已配对并上行)"})):(p(),y(b,{key:2},[a(T,{style:{"margin-bottom":"16px"},align:"center",wrap:""},{default:o(()=>[l[4]||(l[4]=V("span",null,"孩子:",-1)),a(P,{value:s.value,"onUpdate:value":l[0]||(l[0]=d=>s.value=d),style:{"min-width":"280px"},options:_.value,placeholder:"选择孩子",onChange:r},null,8,["value","options"]),a(P,{value:i.value,"onUpdate:value":l[1]||(l[1]=d=>i.value=d),style:{"min-width":"140px"},options:h,onChange:m},null,8,["value"])]),_:1}),a(Q,{gutter:16,style:{"margin-bottom":"16px"}},{default:o(()=>[a(U,{xs:24,md:8},{default:o(()=>[a(k,null,{default:o(()=>[a(B,{title:"总使用时长",value:F.value},null,8,["value"])]),_:1})]),_:1}),a(U,{xs:24,md:8},{default:o(()=>[a(k,null,{default:o(()=>[a(B,{title:"应用数",value:c(e).summary.apps.length},null,8,["value"])]),_:1})]),_:1}),a(U,{xs:24,md:8},{default:o(()=>[a(k,null,{default:o(()=>[a(B,{title:"事件数",value:c(e).events.length},null,8,["value"])]),_:1})]),_:1})]),_:1}),a(k,{title:"应用使用排行",style:{"margin-bottom":"16px"}},{default:o(()=>[a(R,{"data-source":c(e).summary.apps,columns:$,pagination:!1,"row-key":"package",size:"small"},{bodyCell:o(({column:d,record:C})=>[d.key==="totalMs"?(p(),y(b,{key:0},[M(I(v(C.totalMs)),1)],64)):z("",!0)]),_:1},8,["data-source"])]),_:1}),a(k,{title:"最近事件"},{default:o(()=>[a(R,{"data-source":c(e).events,columns:G,pagination:{pageSize:20},"row-key":"resourceId",size:"small"},{bodyCell:o(({column:d,record:C})=>[d.key==="timestampMs"?(p(),y(b,{key:0},[M(I(x(C.timestampMs)),1)],64)):d.key==="durationMs"?(p(),y(b,{key:1},[M(I(v(C.durationMs)),1)],64)):d.key==="app"?(p(),y(b,{key:2},[M(I(C.package||"—"),1)],64)):z("",!0)]),_:1},8,["data-source"])]),_:1})],64))])}}},ne=A(Z,[["__scopeId","data-v-876ad52f"]]);export{ne as default};
1
+ import{E as W,r as f,f as E,o as j,M as y,R as V,c as a,N as o,u as c,Q as K,S as z,F as b,K as u,L as p,O as M,P as I}from"./vendor-BXcBOG8b.js";import{u as q,_ as A}from"./index-CzoKAiyT.js";import"./icons-DlxlFL4g.js";function H(t){if(!t)return t;if(t.error)throw new Error(t.error);return t.result!==void 0?t.result:t}function L(t,e){if(t&&t.success===!1)throw new Error(t.error||"请求失败");return t&&t.data!==void 0?t.data:e}function O(){const t=q(),e=(s,i={},h=15e3)=>t.sendRaw({type:s,...i},h).then(H);return{async listChildren(){return L(await e("family-guard.list-children",{},1e4),[])},async listChildEvents(s={}){return L(await e("family-guard.list-child-events",s),[])},async appUsageSummary(s={}){return L(await e("family-guard.app-usage-summary",s),{totalMs:0,apps:[]})}}}const J=W("familyGuard",()=>{const t=f([]),e=f(null),s=f([]),i=f({totalMs:0,apps:[]}),h=f(!1),_=f(null),F=E(()=>t.value.length>0),$=E(()=>Math.round((i.value.totalMs||0)/6e4));async function G(){h.value=!0,_.value=null;try{const r=O();t.value=await r.listChildren(),!e.value&&t.value.length>0&&await g(t.value[0].childDid)}catch(r){_.value=r?.message||String(r)}finally{h.value=!1}}async function g(r,m=0){e.value=r,await Promise.all([v(m),x(m)])}async function v(r=0,m=200){if(!e.value)return;const N=O();s.value=await N.listChildEvents({childDid:e.value,sinceMs:r,limit:m})}async function x(r=0){if(!e.value)return;const m=O();i.value=await m.appUsageSummary({childDid:e.value,sinceMs:r})}return{children:t,selectedChildDid:e,events:s,summary:i,loading:h,error:_,hasChildren:F,totalMinutes:$,fetchChildren:G,selectChild:g,fetchEvents:v,fetchSummary:x}}),X={class:"family-guard-dashboard"},Y={class:"page-header"},Z={__name:"FamilyGuardDashboard",setup(t){const e=J(),s=f(null),i=f("all"),h=[{label:"全部",value:"all"},{label:"近 24 小时",value:"24h"},{label:"近 7 天",value:"7d"}],_=E(()=>e.children.map(n=>({label:`${n.childDid}(${n.eventCount} 条)`,value:n.childDid}))),F=E(()=>v(e.summary.totalMs)),$=[{title:"应用 / 包名",dataIndex:"package",key:"package",ellipsis:!0},{title:"时长",dataIndex:"totalMs",key:"totalMs",width:140},{title:"次数",dataIndex:"count",key:"count",width:100}],G=[{title:"时间",dataIndex:"timestampMs",key:"timestampMs",width:180},{title:"来源",dataIndex:"source",key:"source",width:140},{title:"应用",dataIndex:"package",key:"app",ellipsis:!0},{title:"时长",dataIndex:"durationMs",key:"durationMs",width:120},{title:"级别",dataIndex:"level",key:"level",width:80}];function g(){return i.value==="24h"?Date.now()-1440*60*1e3:i.value==="7d"?Date.now()-10080*60*1e3:0}function v(n){const l=Math.round((n||0)/1e3),D=Math.floor(l/3600),w=Math.floor(l%3600/60),S=l%60;return D>0?`${D}h ${w}m`:w>0?`${w}m ${S}s`:`${S}s`}function x(n){return n?new Date(n).toLocaleString():"—"}async function r(n){await e.selectChild(n,g())}async function m(){if(!e.selectedChildDid)return;const n=g();await Promise.all([e.fetchEvents(n),e.fetchSummary(n)])}async function N(){await e.fetchChildren(),s.value=e.selectedChildDid}return j(async()=>{await e.fetchChildren(),s.value=e.selectedChildDid}),(n,l)=>{const D=u("a-button"),w=u("a-alert"),S=u("a-empty"),P=u("a-select"),T=u("a-space"),B=u("a-statistic"),k=u("a-card"),U=u("a-col"),Q=u("a-row"),R=u("a-table");return p(),y("div",X,[V("div",Y,[l[3]||(l[3]=V("h2",null,"家庭守护 · 孩子使用情况",-1)),a(D,{loading:c(e).loading,onClick:N},{default:o(()=>[...l[2]||(l[2]=[M("刷新",-1)])]),_:1},8,["loading"])]),c(e).error?(p(),K(w,{key:0,type:"error",message:c(e).error,banner:"",closable:"",style:{"margin-bottom":"12px"}},null,8,["message"])):z("",!0),!c(e).loading&&!c(e).hasChildren?(p(),K(S,{key:1,description:"还没有收到任何孩子端的使用数据(需在桌面端运行,孩子端已配对并上行)"})):(p(),y(b,{key:2},[a(T,{style:{"margin-bottom":"16px"},align:"center",wrap:""},{default:o(()=>[l[4]||(l[4]=V("span",null,"孩子:",-1)),a(P,{value:s.value,"onUpdate:value":l[0]||(l[0]=d=>s.value=d),style:{"min-width":"280px"},options:_.value,placeholder:"选择孩子",onChange:r},null,8,["value","options"]),a(P,{value:i.value,"onUpdate:value":l[1]||(l[1]=d=>i.value=d),style:{"min-width":"140px"},options:h,onChange:m},null,8,["value"])]),_:1}),a(Q,{gutter:16,style:{"margin-bottom":"16px"}},{default:o(()=>[a(U,{xs:24,md:8},{default:o(()=>[a(k,null,{default:o(()=>[a(B,{title:"总使用时长",value:F.value},null,8,["value"])]),_:1})]),_:1}),a(U,{xs:24,md:8},{default:o(()=>[a(k,null,{default:o(()=>[a(B,{title:"应用数",value:c(e).summary.apps.length},null,8,["value"])]),_:1})]),_:1}),a(U,{xs:24,md:8},{default:o(()=>[a(k,null,{default:o(()=>[a(B,{title:"事件数",value:c(e).events.length},null,8,["value"])]),_:1})]),_:1})]),_:1}),a(k,{title:"应用使用排行",style:{"margin-bottom":"16px"}},{default:o(()=>[a(R,{"data-source":c(e).summary.apps,columns:$,pagination:!1,"row-key":"package",size:"small"},{bodyCell:o(({column:d,record:C})=>[d.key==="totalMs"?(p(),y(b,{key:0},[M(I(v(C.totalMs)),1)],64)):z("",!0)]),_:1},8,["data-source"])]),_:1}),a(k,{title:"最近事件"},{default:o(()=>[a(R,{"data-source":c(e).events,columns:G,pagination:{pageSize:20},"row-key":"resourceId",size:"small"},{bodyCell:o(({column:d,record:C})=>[d.key==="timestampMs"?(p(),y(b,{key:0},[M(I(x(C.timestampMs)),1)],64)):d.key==="durationMs"?(p(),y(b,{key:1},[M(I(v(C.durationMs)),1)],64)):d.key==="app"?(p(),y(b,{key:2},[M(I(C.package||"—"),1)],64)):z("",!0)]),_:1},8,["data-source"])]),_:1})],64))])}}},ne=A(Z,[["__scopeId","data-v-876ad52f"]]);export{ne as default};