chainlesschain 0.162.76 → 0.162.77
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.
- package/package.json +2 -2
- package/src/assets/web-panel/assets/{AIOps-DtoQc98o.js → AIOps--t6qElO3.js} +1 -1
- package/src/assets/web-panel/assets/{ActionButton-CGWpZPFu.js → ActionButton-vRiifAww.js} +1 -1
- package/src/assets/web-panel/assets/{Analytics-CC7XzLk4.js → Analytics-BfSlGprA.js} +3 -3
- package/src/assets/web-panel/assets/{AppLayout-CGKmgdbs.js → AppLayout-B6L2I5ld.js} +4 -4
- package/src/assets/web-panel/assets/{Audit-oLflS_MU.js → Audit-Dwpk7vO2.js} +1 -1
- package/src/assets/web-panel/assets/{Backup-T_wI6uZE.js → Backup-D7UuR3M8.js} +1 -1
- package/src/assets/web-panel/assets/{BaseInput-BPdSptnN.js → BaseInput-BzMDBTyZ.js} +1 -1
- package/src/assets/web-panel/assets/{Chat-BQJThjZV.js → Chat-BxYUynGU.js} +6 -6
- package/src/assets/web-panel/assets/{ChatBubbleRenderer-DIgOoly0.js → ChatBubbleRenderer-BYyCFqO0.js} +1 -1
- package/src/assets/web-panel/assets/{Checkbox-DINID8Xe.js → Checkbox-DgpLcrjA.js} +1 -1
- package/src/assets/web-panel/assets/{Codegen-BFRqiKXM.js → Codegen-N5dSkUbq.js} +1 -1
- package/src/assets/web-panel/assets/{Col-Cz1LHthL.js → Col-C1nf7jzT.js} +1 -1
- package/src/assets/web-panel/assets/{Community-DM2JdVks.js → Community-BuX21CEd.js} +1 -1
- package/src/assets/web-panel/assets/{Compact-DDkmTD1-.js → Compact-M37IFQe_.js} +1 -1
- package/src/assets/web-panel/assets/{Compliance-DZ42Jq-9.js → Compliance-B_OBnXJx.js} +1 -1
- package/src/assets/web-panel/assets/{Cowork-DLt4MK_F.js → Cowork-BcIn7Sb2.js} +3 -3
- package/src/assets/web-panel/assets/{Cron-CDDGkmF4.js → Cron-BtmA9AMI.js} +2 -2
- package/src/assets/web-panel/assets/{Crosschain-DtKTUDfw.js → Crosschain-DlAiW2Iy.js} +1 -1
- package/src/assets/web-panel/assets/{DID-B9IBFVtN.js → DID-91Skenc5.js} +2 -2
- package/src/assets/web-panel/assets/{Dashboard-DZWx6KvZ.js → Dashboard-BTzcKrw1.js} +2 -2
- package/src/assets/web-panel/assets/{Dropdown-CxlclJ4x.js → Dropdown-VNCZqfkL.js} +1 -1
- package/src/assets/web-panel/assets/{EmailListRenderer-CPQkv5Rq.js → EmailListRenderer-B_o62liK.js} +1 -1
- package/src/assets/web-panel/assets/{FamilyGuardDashboard-DYaSHW7O.js → FamilyGuardDashboard-BqceYpym.js} +1 -1
- package/src/assets/web-panel/assets/{Federation-DcANvE_W.js → Federation-BJFcp8S0.js} +1 -1
- package/src/assets/web-panel/assets/{FormItemContext-CnzzQaBo.js → FormItemContext-DwsPen2h.js} +1 -1
- package/src/assets/web-panel/assets/{GenericCardRenderer-CgfKJg4t.js → GenericCardRenderer-BOU0nfJP.js} +1 -1
- package/src/assets/web-panel/assets/{Git-Djh6eGK0.js → Git-C_92Ngor.js} +2 -2
- package/src/assets/web-panel/assets/{Governance-B_qc24Q5.js → Governance-SIBJc353.js} +1 -1
- package/src/assets/web-panel/assets/{Inference-DWVRUSsO.js → Inference-DcEwRh8C.js} +1 -1
- package/src/assets/web-panel/assets/{KnowledgeGraph-16EMZ1Gg.js → KnowledgeGraph-C4LQ8MJI.js} +1 -1
- package/src/assets/web-panel/assets/{Logs-ymceok_p.js → Logs-BXz2tihi.js} +2 -2
- package/src/assets/web-panel/assets/{Marketplace-DXExrznt.js → Marketplace-DqXKQJ2n.js} +1 -1
- package/src/assets/web-panel/assets/{McpTools-B9Bnym3Q.js → McpTools-CXVGQSUd.js} +5 -5
- package/src/assets/web-panel/assets/{Memory-V8Ck9ZnV.js → Memory-Bp8huWkt.js} +2 -2
- package/src/assets/web-panel/assets/{MobileBridge-B9AE87pq.js → MobileBridge-B3duw6FB.js} +3 -3
- package/src/assets/web-panel/assets/{MobileProjects-Dh7WHpD7.js → MobileProjects-Cn5YO60O.js} +1 -1
- package/src/assets/web-panel/assets/{Mtc-B1EIx3cJ.js → Mtc-CE_M_-1m.js} +5 -5
- package/src/assets/web-panel/assets/{MtcAudit-BVwqfXEq.js → MtcAudit-Dev-y1Ei.js} +2 -2
- package/src/assets/web-panel/assets/{Multisig-nymTttRr.js → Multisig-RILPE0-i.js} +3 -3
- package/src/assets/web-panel/assets/{NLProgramming-BHYA-EKK.js → NLProgramming-DsBeFM0w.js} +1 -1
- package/src/assets/web-panel/assets/{Notes-D75HMT2_.js → Notes-MONi8b1b.js} +3 -3
- package/src/assets/web-panel/assets/{NotificationSettings-BCkM1qCh.js → NotificationSettings-mXNink9t.js} +1 -1
- package/src/assets/web-panel/assets/{OrderTableRenderer-Bd2_WoCO.js → OrderTableRenderer-Bvtv8CHQ.js} +1 -1
- package/src/assets/web-panel/assets/{Organization-BHJXmWpQ.js → Organization-_7rEqDWP.js} +4 -4
- package/src/assets/web-panel/assets/{Overflow-Ce6NuRg4.js → Overflow-CuqybwI0.js} +1 -1
- package/src/assets/web-panel/assets/{P2P-ZWkd8aDF.js → P2P-BvYN2SXJ.js} +2 -2
- package/src/assets/web-panel/assets/{PdhVaultBrowser-m-R5EU0S.js → PdhVaultBrowser-BWGnb4i0.js} +3 -3
- package/src/assets/web-panel/assets/{Permissions-tiqBu416.js → Permissions-D2vyDMm6.js} +4 -4
- package/src/assets/web-panel/assets/{PersonalDataHub-Cp6QTgYQ.js → PersonalDataHub-BWaT70CA.js} +3 -3
- package/src/assets/web-panel/assets/{Pipeline-KkrWj7O7.js → Pipeline-T_Pztk-K.js} +1 -1
- package/src/assets/web-panel/assets/{Privacy-Dxi4H49p.js → Privacy-BTChzeM8.js} +1 -1
- package/src/assets/web-panel/assets/{ProjectInit-D687zx7-.js → ProjectInit-BQQBICYM.js} +2 -2
- package/src/assets/web-panel/assets/{ProjectSettings-rMyJinon.js → ProjectSettings-BOLO_fhW.js} +2 -2
- package/src/assets/web-panel/assets/{Projects-DTnO0tyd.js → Projects-BfqkBhzi.js} +1 -1
- package/src/assets/web-panel/assets/{Providers-CA3qBOIm.js → Providers-DpWEAYh2.js} +1 -1
- package/src/assets/web-panel/assets/{QuickAsk-cPYwl4UE.js → QuickAsk-MX8kg-uO.js} +1 -1
- package/src/assets/web-panel/assets/{Recommend-AesrOSgW.js → Recommend-UOCp-h2X.js} +1 -1
- package/src/assets/web-panel/assets/{Reputation-nmrzajqY.js → Reputation-H_vE2kEf.js} +1 -1
- package/src/assets/web-panel/assets/{Row-CSM-D2YK.js → Row-dupAolkD.js} +1 -1
- package/src/assets/web-panel/assets/{RssFeed-Dg-6lotq.js → RssFeed-DVoerh51.js} +2 -2
- package/src/assets/web-panel/assets/{Search-_3uDkwSU.js → Search-5zxC_iWb.js} +1 -1
- package/src/assets/web-panel/assets/{Security-DpqxaMpH.js → Security-vg3XxdEZ.js} +3 -3
- package/src/assets/web-panel/assets/{Services-ygE3fUQq.js → Services-CWjum0P4.js} +2 -2
- package/src/assets/web-panel/assets/{Skeleton-BJ8X1lgD.js → Skeleton-BkVnAX7_.js} +1 -1
- package/src/assets/web-panel/assets/{Skills-DL4ggdgL.js → Skills-2oMJr3sU.js} +1 -1
- package/src/assets/web-panel/assets/{Sla-4QfKVw0v.js → Sla-Bv8uLcr_.js} +1 -1
- package/src/assets/web-panel/assets/{SpeechSettings-k815pH2S.js → SpeechSettings-BfvawAGM.js} +1 -1
- package/src/assets/web-panel/assets/{SyncSettings-4gpgAxhL.js → SyncSettings-DzWmsU8K.js} +2 -2
- package/src/assets/web-panel/assets/{Tasks-BiIwG2Ag.js → Tasks-cbtuyShK.js} +1 -1
- package/src/assets/web-panel/assets/{Templates-BqG2I16l.js → Templates-PP2omXNk.js} +1 -1
- package/src/assets/web-panel/assets/{Tenant--a1-0GZY.js → Tenant-Cab9qgCx.js} +1 -1
- package/src/assets/web-panel/assets/Terminal-9kFA0Vf8.js +3 -0
- package/src/assets/web-panel/assets/{TimelineRenderer-BKAOZMPL.js → TimelineRenderer-Cx8kncEg.js} +1 -1
- package/src/assets/web-panel/assets/{Tokens-C5pMEI9-.js → Tokens-D19NKMv_.js} +1 -1
- package/src/assets/web-panel/assets/{Trigger-BJ5etoUd.js → Trigger-DbRaTJsm.js} +1 -1
- package/src/assets/web-panel/assets/{Trust-CAAdDctr.js → Trust-8EFY9ZrM.js} +1 -1
- package/src/assets/web-panel/assets/{UkeySign-BzKU8nII.js → UkeySign--wxy-nr4.js} +1 -1
- package/src/assets/web-panel/assets/{VideoEditing-DmWnsgyf.js → VideoEditing-BlRqqo2c.js} +1 -1
- package/src/assets/web-panel/assets/{Wallet-Dg9UzBAC.js → Wallet-B2x_RfaK.js} +4 -4
- package/src/assets/web-panel/assets/{WebAuthn-DaXZGzkp.js → WebAuthn-DISokPYb.js} +5 -5
- package/src/assets/web-panel/assets/{WorkflowEditor-DmJCC6AW.js → WorkflowEditor-DkuLYA12.js} +1 -1
- package/src/assets/web-panel/assets/{chat-CAjZEmlu.js → chat-MMwBSP3l.js} +1 -1
- package/src/assets/web-panel/assets/{colors-DMWwvv7V.js → colors-CPP3K6Jb.js} +1 -1
- package/src/assets/web-panel/assets/{compact-item-ByqZtPIJ.js → compact-item-2ruYr7FB.js} +1 -1
- package/src/assets/web-panel/assets/{createContext-jIGFVHeW.js → createContext-BPpiGxaR.js} +1 -1
- package/src/assets/web-panel/assets/devWarning-D7iybGpP.js +1 -0
- package/src/assets/web-panel/assets/{hasIn-DsRtjfTk.js → hasIn-CtP3Uqy-.js} +1 -1
- package/src/assets/web-panel/assets/{index-B-Qnul4F.js → index-2cESIQ4O.js} +1 -1
- package/src/assets/web-panel/assets/{index-BnJVeoaZ.js → index-6Sly6NDj.js} +1 -1
- package/src/assets/web-panel/assets/{index-CKKHpsMs.js → index-9SEWDDhb.js} +1 -1
- package/src/assets/web-panel/assets/{index-DLG_xLHk.js → index-BLAT0M1t.js} +1 -1
- package/src/assets/web-panel/assets/{index-BBtZVmOQ.js → index-BM7y07U3.js} +1 -1
- package/src/assets/web-panel/assets/{index-DMXm2ylP.js → index-BM_RMGj5.js} +1 -1
- package/src/assets/web-panel/assets/{index-bqwPPH9S.js → index-Bf1tNEoB.js} +1 -1
- package/src/assets/web-panel/assets/{index-CGq4pe0E.js → index-Bfr1HIma.js} +1 -1
- package/src/assets/web-panel/assets/{index-t1-_hEH4.js → index-Bjthf-eJ.js} +1 -1
- package/src/assets/web-panel/assets/{index-BbGL4FLO.js → index-BkqTFggQ.js} +1 -1
- package/src/assets/web-panel/assets/{index-9J6DqTyW.js → index-Bq8gB01i.js} +1 -1
- package/src/assets/web-panel/assets/{index-DtDCwXJx.js → index-Byddazfj.js} +1 -1
- package/src/assets/web-panel/assets/index-BzJrOJ0f.js +1 -0
- package/src/assets/web-panel/assets/{index-BwGnc020.js → index-C2N_-y_W.js} +3 -3
- package/src/assets/web-panel/assets/{index-DaP_p8P6.js → index-C6qsWs-4.js} +1 -1
- package/src/assets/web-panel/assets/{index-CoJswPoV.js → index-COPqJgcW.js} +1 -1
- package/src/assets/web-panel/assets/{index-B1270EwF.js → index-COSm6DcE.js} +1 -1
- package/src/assets/web-panel/assets/{index-CAKaeMfc.js → index-CUQp8MdV.js} +1 -1
- package/src/assets/web-panel/assets/{index-CCnzbOKO.js → index-CZrah8Gb.js} +1 -1
- package/src/assets/web-panel/assets/{index-DbV45YpH.js → index-CZyr02ib.js} +1 -1
- package/src/assets/web-panel/assets/{index-i2aDnOiW.js → index-Cru4qTvK.js} +1 -1
- package/src/assets/web-panel/assets/{index-CyKWJT7j.js → index-D05imMj-.js} +1 -1
- package/src/assets/web-panel/assets/{index-B_wj_sYT.js → index-D5g378QF.js} +1 -1
- package/src/assets/web-panel/assets/{index-C6T-Xf0U.js → index-D7-Zo0uW.js} +1 -1
- package/src/assets/web-panel/assets/{index-B8V34BaZ.js → index-DIQO-prS.js} +1 -1
- package/src/assets/web-panel/assets/{index-_orsz7Rw.js → index-DO_a65ut.js} +1 -1
- package/src/assets/web-panel/assets/{index-_AG9IXm-.js → index-DSNoOIwN.js} +1 -1
- package/src/assets/web-panel/assets/{index-CScTtcVy.js → index-DS_ISOVj.js} +1 -1
- package/src/assets/web-panel/assets/{index-DdYKZY8M.js → index-DXGebJnR.js} +1 -1
- package/src/assets/web-panel/assets/{index-DC3_IuqF.js → index-Dc1ysHqq.js} +1 -1
- package/src/assets/web-panel/assets/{index-D_4cOrLy.js → index-DpBaxHIL.js} +1 -1
- package/src/assets/web-panel/assets/{index-DPm-L_xW.js → index-Dy85x86R.js} +1 -1
- package/src/assets/web-panel/assets/{index-D84XwMd3.js → index-DyCZ3fz1.js} +1 -1
- package/src/assets/web-panel/assets/{index-Cs2OGp6G.js → index-DzFVlsbg.js} +1 -1
- package/src/assets/web-panel/assets/{index-i-EzGrX5.js → index-P_R2pJ9q.js} +1 -1
- package/src/assets/web-panel/assets/index-QN-iyhAl.js +1 -0
- package/src/assets/web-panel/assets/{index-YK9Xug8T.js → index-h-zAHKNr.js} +1 -1
- package/src/assets/web-panel/assets/{index-C8BwUNiL.js → index-oD_rJWBp.js} +1 -1
- package/src/assets/web-panel/assets/{index-BMxij0bf.js → index-oaNSovPm.js} +1 -1
- package/src/assets/web-panel/assets/{initDefaultProps-DdyD9KAT.js → initDefaultProps-BrJf63uk.js} +1 -1
- package/src/assets/web-panel/assets/{motion-DRrx4PK9.js → motion-BD8UoaTG.js} +1 -1
- package/src/assets/web-panel/assets/{move-CHINGURR.js → move-DbunBKV-.js} +1 -1
- package/src/assets/web-panel/assets/{omit-DZflFtLX.js → omit-CkGNCa-h.js} +1 -1
- package/src/assets/web-panel/assets/{pickAttrs-DPQ6eHEY.js → pickAttrs-DTvTrHC2.js} +1 -1
- package/src/assets/web-panel/assets/{placementArrow-BJYz53Bf.js → placementArrow-Cb7oz9vL.js} +1 -1
- package/src/assets/web-panel/assets/{responsiveObserve-DhzLakk2.js → responsiveObserve-O7lB6MAE.js} +1 -1
- package/src/assets/web-panel/assets/{slide-DOvTqAuD.js → slide-C24m1SKv.js} +1 -1
- package/src/assets/web-panel/assets/{statusUtils-B92BF_uu.js → statusUtils-D_-9GtZ3.js} +1 -1
- package/src/assets/web-panel/assets/{styleChecker-HRKjxQJT.js → styleChecker-CrAYF9jD.js} +1 -1
- package/src/assets/web-panel/assets/{useFlexGapSupport-D8ZqGK2s.js → useFlexGapSupport-CmgeoVPN.js} +1 -1
- package/src/assets/web-panel/assets/{useFs-ClAmmKr2.js → useFs-DzJSzGsy.js} +1 -1
- package/src/assets/web-panel/assets/{usePersonalDataHub-4G0-eIH3.js → usePersonalDataHub-Bgqky5YK.js} +1 -1
- package/src/assets/web-panel/assets/{vnode-Bj-uyzeX.js → vnode-ErTJLgr4.js} +1 -1
- package/src/assets/web-panel/assets/{zoom-DrMI4KzQ.js → zoom-wlf3cppM.js} +1 -1
- package/src/assets/web-panel/index.html +1 -1
- package/src/commands/hub.js +18 -15
- package/src/lib/agent-core.js +2 -3
- package/src/runtime/agent-core.js +80 -28
- package/src/assets/web-panel/assets/Terminal-B4MCGz06.js +0 -3
- package/src/assets/web-panel/assets/devWarning-DdhKA672.js +0 -1
- package/src/assets/web-panel/assets/index-D9VvPg88.js +0 -1
- package/src/assets/web-panel/assets/index-NbQuQzJJ.js +0 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import{E as ge,w as
|
|
1
|
+
import{E as ge,w as G,b as H,r as u,I as b,J as l,V as o,U as n,c as p,F as w,Z as C,_ as L,a2 as J,R as i,Q as y,S as O,a0 as K,K as g,a1 as fe,n as W,o as X,P as a}from"./vendor-BvqAck49.js";import{u as j,_ as _e}from"./index-C2N_-y_W.js";import{u as F}from"./chat-MMwBSP3l.js";import{r as ye}from"./markdown-Yo_c6Krv.js";import{Z as Y,y as $,a6 as ee,an as te,h as se,Q as ne,ao as ae,k as oe,H as le,ap as re,a4 as ie,aq as he,ae as ke,$ as we,al as Oe,aa as Se}from"./icons-DP3uiYxy.js";import"./markdown-CsiA8-E5.js";const be=[{id:"doc-convert",name:"文档格式转换",icon:"FileTextOutlined",category:"document",description:"Word、Markdown、HTML、PDF 之间的格式互转",examples:["把 report.docx 转成 PDF","合并多个 Markdown 为一个文档"],acceptsFiles:!0},{id:"media-process",name:"音视频处理",icon:"PlayCircleOutlined",category:"media",description:"视频压缩、音频提取、格式转换、剪辑",examples:["提取 MP4 的音频","压缩视频到 50MB 以内"],acceptsFiles:!0},{id:"data-analysis",name:"数据分析",icon:"BarChartOutlined",category:"data",description:"CSV/Excel 分析、统计、可视化图表",examples:["分析 sales.csv 的月度趋势"],acceptsFiles:!0},{id:"web-research",name:"信息检索与调研",icon:"SearchOutlined",category:"research",description:"网页抓取、API 调用、多源信息汇总",examples:["调研 AI Agent 框架对比"],acceptsFiles:!1},{id:"image-process",name:"图片处理",icon:"PictureOutlined",category:"media",description:"批量压缩、格式转换、加水印、OCR",examples:["批量压缩到 500KB"],acceptsFiles:!0},{id:"code-helper",name:"代码辅助",icon:"CodeOutlined",category:"development",description:"生成脚本、调试代码、自动化任务",examples:["写一个批量重命名脚本"],acceptsFiles:!0},{id:"system-admin",name:"系统运维",icon:"DesktopOutlined",category:"system",description:"磁盘分析、进程管理、日志分析",examples:["查看磁盘使用情况"],acceptsFiles:!1},{id:"file-organize",name:"文件整理",icon:"FolderOpenOutlined",category:"file",description:"批量重命名、分类整理、查找重复",examples:["按文件类型分类整理"],acceptsFiles:!1},{id:"network-tools",name:"网络工具",icon:"GlobalOutlined",category:"network",description:"API 调试、网页抓取、网络诊断",examples:["测试 API 接口"],acceptsFiles:!1},{id:"learning-assist",name:"学习辅助",icon:"ReadOutlined",category:"learning",description:"文档翻译、内容总结、论文分析",examples:["翻译 PDF 摘要"],acceptsFiles:!0}],ce=ge("cowork",()=>{const Q=u(be),s=u(null),d=u([]),e=u(!1),T=u([]),h=u([]),f=u(null),v=u(null),S=u(null),A=u([]),P=u(!1),R=u(3),x=u(!1),M=u([]),D=F();G(()=>D.isLoading,r=>{!r&&v.value&&(e.value=!1)});function t(r){s.value=r,_()}function _(){T.value=[],h.value=[],f.value=null,e.value=!1,v.value=null,S.value=null}function q(r){d.value.includes(r)||d.value.push(r)}function U(r){d.value=d.value.filter(c=>c!==r)}async function V(){const r=j();try{await r.waitConnected(5e3);const c=await r.sendRaw({type:"cowork-templates"},1e4);c?.templates?.length&&(Q.value=c.templates)}catch{}}async function z(){const r=j();try{await r.waitConnected(5e3);const c=await r.sendRaw({type:"cowork-history",limit:50},1e4);c?.entries&&(A.value=c.entries)}catch{}}async function m(r){S.value={mode:"session",message:r},e.value=!0;const c=s.value;let k="";c&&(k=`## 当前任务类型: ${c.name}
|
|
2
2
|
${c.description||""}`);let N=r;d.value.length&&(N+=`
|
|
3
3
|
|
|
4
|
-
[用户提供的文件: ${d.value.join(", ")}]`),h.value.push({role:"user",content:r,timestamp:Date.now()});const E={systemPromptExtension:k};c?.shellPolicyOverrides&&(E.shellPolicyOverrides=c.shellPolicyOverrides);const
|
|
4
|
+
[用户提供的文件: ${d.value.join(", ")}]`),h.value.push({role:"user",content:r,timestamp:Date.now()});const E={systemPromptExtension:k};c?.shellPolicyOverrides&&(E.shellPolicyOverrides=c.shellPolicyOverrides);const Z=await D.createSession("agent",E);v.value=Z,await D.sendMessage(Z,N)}async function I(r){S.value={mode:"direct",message:r};const c=j();e.value=!0,h.value.push({role:"user",content:r,timestamp:Date.now()});try{await c.waitConnected(8e3);const k={type:"cowork-task",templateId:s.value?.id||null,userMessage:r,files:d.value};P.value&&(k.parallel=!0,k.agents=R.value);const N=s.value;(x.value||N?.mode==="debate")&&(k.mode="debate",M.value.length&&(k.perspectives=M.value));const E=await c.sendRaw(k,3e5);h.value.push({role:"assistant",content:E.summary||"(No output)",timestamp:Date.now(),toolsUsed:E.toolsUsed||[],iterationCount:E.iterationCount||0}),f.value=E}catch(k){h.value.push({role:"assistant",content:`Error: ${k.message}`,timestamp:Date.now()})}finally{e.value=!1}}const B=H(()=>v.value?F().getMessages(v.value):[]),de=H(()=>{if(!v.value)return null;const c=F().streaming[v.value];return c?.active?c.content:null}),ue=H(()=>v.value&&F().pendingQuestion[v.value]||null);function ve(r){if(!v.value)return;F().answerQuestion(v.value,r)}async function me(){if(!S.value)return;const{mode:r,message:c}=S.value;r==="direct"?await I(c):await m(c)}async function pe(r){if(!v.value)return;const c=F();h.value.push({role:"user",content:r,timestamp:Date.now()});let k=r;d.value.length&&(k+=`
|
|
5
5
|
|
|
6
|
-
[用户提供的文件: ${d.value.join(", ")}]`),await c.sendMessage(v.value,k)}return{selectedTemplate:s,files:d,isRunning:e,steps:T,messages:h,result:f,agentSessionId:v,currentAgentMessages:B,currentStreaming:de,currentQuestion:ue,selectTemplate:t,reset:_,addFile:U,removeFile:q,execute:m,executeDirectWs:I,sendFollowUp:pe,answerQuestion:ve,loadTemplates:V,templates:Q,lastRequest:S,retry:me,history:A,loadHistory:z,parallelMode:P,parallelAgents:R,debateMode:x,debatePerspectives:M}}),Ce={__name:"Cowork",setup(Q,{expose:s}){s();const d=ce(),e=F(),T=u(""),h=u(null),f=u(!1),v=u(""),S=u(!1),A=u(!1),P={FileTextOutlined:ie,PlayCircleOutlined:re,BarChartOutlined:le,SearchOutlined:oe,PictureOutlined:ae,CodeOutlined:ne,DesktopOutlined:se,FolderOpenOutlined:te,GlobalOutlined:ee,ReadOutlined:$,SafetyCertificateOutlined:Y},R=["把 report.docx 转成 PDF","压缩视频到 50MB","分析 CSV 生成图表","查询今天的汇率","批量压缩图片","写一个自动化脚本"],x=H(()=>e.isLoading?"等待响应中...":d.selectedTemplate?d.selectedTemplate.examples?.[0]||"描述你的需求...":"描述你想完成的任务,Agent 会帮你搞定"),M=H(()=>d.currentAgentMessages);function D(m){return m==="APPROVE"?"green":m==="REJECT"?"red":m==="ERROR"?"default":"orange"}function t(m){return m.split(/[\\/]/).pop()||m}function _(m){f.value=!1;const I=m.dataTransfer?.files;if(I)for(const B of I)d.addFile(B.path||B.name)}function U(){const m=v.value.trim();m&&(d.addFile(m),v.value="")}async function q(){const m=T.value.trim();!m||e.isLoading||(T.value="",d.agentSessionId?await d.sendFollowUp(m):await d.execute(m))}function V(m){T.value=m,J(()=>q())}j([M,()=>d.currentStreaming],()=>{J(()=>{h.value&&(h.value.scrollTop=h.value.scrollHeight)})},{deep:!0}),Z(()=>{e.loadSessions(),d.loadTemplates(),d.loadHistory()});const z={store:d,chatStore:e,inputText:T,messagesEl:h,isDragging:f,manualFilePath:v,hasInteracted:S,showHistory:A,iconMap:P,quickExamples:R,inputPlaceholder:x,agentMessages:M,verdictColor:D,basename:t,onDrop:_,addManualFile:U,send:q,quickStart:V,ref:u,computed:H,watch:j,nextTick:J,onMounted:Z,get RocketOutlined(){return Se},get SendOutlined(){return Oe},get ThunderboltOutlined(){return we},get FolderOpenOutlined(){return te},get FileTextOutlined(){return ie},get PlayCircleOutlined(){return re},get BarChartOutlined(){return le},get SearchOutlined(){return oe},get PictureOutlined(){return ae},get CodeOutlined(){return ne},get DesktopOutlined(){return se},get GlobalOutlined(){return ee},get ReadOutlined(){return $},get ToolOutlined(){return ke},get HistoryOutlined(){return he},get SafetyCertificateOutlined(){return Y},get useCoworkStore(){return ce},get useChatStore(){return F},get renderMarkdown(){return ye}};return Object.defineProperty(z,"__isScriptSetup",{enumerable:!1,value:!0}),z}},Te={class:"cowork-root"},xe={class:"template-panel"},Me={class:"template-header"},Fe={class:"template-list"},Pe=["onClick"],Re={class:"card-icon"},De={class:"card-body"},Ee={class:"card-name"},Ae={class:"card-desc"},He={class:"card-icon"},Ie={class:"drop-text"},Le={key:0,class:"file-list"},Qe={key:1,class:"history-section"},Ue={key:0,class:"history-list"},qe={class:"history-summary"},ze={class:"history-meta"},Be={class:"exec-panel"},Ne={key:0,class:"empty-state"},Ve={class:"empty-icon"},Ke={class:"example-grid"},Ge=["onClick"],Je={class:"ready-state"},We={class:"ready-header"},je={class:"ready-name"},Xe={key:0,class:"parallel-toggle"},Ze={key:1,class:"parallel-hint"},Ye={class:"ready-examples"},$e=["onClick"],et={class:"messages-area",ref:"messagesEl"},tt={key:0,class:"tool-msg"},st={class:"tool-input"},nt={key:0,class:"tool-result-box"},at={class:"tool-result"},ot={class:"user-msg"},lt={class:"bubble user"},rt={class:"assistant-msg"},it=["innerHTML"],ct={key:0,class:"assistant-msg"},dt=["innerHTML"],ut={key:1,class:"question-card"},vt={class:"question-text"},mt={key:0,class:"question-choices"},pt={key:3,class:"debate-panel"},gt={class:"debate-verdict"},ft={class:"consensus"},_t=["innerHTML"],yt={key:4,class:"task-stats"},ht={class:"input-area"},kt={key:0,class:"input-context"},wt={class:"input-row"};function Ot(Q,s,d,e,T,h){const f=b("a-tag"),v=b("a-input"),S=b("a-switch"),A=b("a-input-number"),P=b("a-collapse-panel"),R=b("a-collapse"),x=b("a-button"),M=b("a-input-search"),D=b("a-textarea");return a(),l("div",Te,[o(" Left Panel: Templates "),n("div",xe,[n("div",Me,[p(e.RocketOutlined,{class:"header-icon"}),s[9]||(s[9]=n("span",{class:"header-title"},"日常协作",-1))]),s[11]||(s[11]=n("div",{class:"template-hint"},"选择任务类型,或直接输入需求",-1)),n("div",Fe,[(a(!0),l(w,null,C(e.store.templates,t=>(a(),l("div",{key:t.id,class:L(["template-card",{active:e.store.selectedTemplate?.id===t.id}]),onClick:_=>e.store.selectTemplate(t)},[n("div",Re,[(a(),O(G(e.iconMap[t.icon]||e.RocketOutlined)))]),n("div",De,[n("div",Ee,i(t.name),1),n("div",Ae,i(t.description),1)])],10,Pe))),128)),o(" Free mode card "),n("div",{class:L(["template-card free",{active:e.store.selectedTemplate===null&&e.hasInteracted}]),onClick:s[0]||(s[0]=t=>{e.store.selectTemplate(null),e.hasInteracted=!0})},[n("div",He,[p(e.ThunderboltOutlined)]),s[10]||(s[10]=n("div",{class:"card-body"},[n("div",{class:"card-name"},"自由提问"),n("div",{class:"card-desc"},"任意任务,Agent 自主完成")],-1))],2)]),o(" File drop zone "),e.store.selectedTemplate?.acceptsFiles!==!1?(a(),l("div",{key:0,class:L(["file-zone",{dragging:e.isDragging}]),onDragover:s[2]||(s[2]=K(t=>e.isDragging=!0,["prevent"])),onDragleave:s[3]||(s[3]=t=>e.isDragging=!1),onDrop:K(e.onDrop,["prevent"])},[p(e.FolderOpenOutlined,{class:"drop-icon"}),n("div",Ie,i(e.isDragging?"松开以添加文件":"拖拽文件到此处"),1),e.store.files.length?(a(),l("div",Le,[(a(!0),l(w,null,C(e.store.files,t=>(a(),O(f,{key:t,closable:"",onClose:_=>e.store.removeFile(t),class:"file-tag"},{default:g(()=>[y(i(e.basename(t)),1)]),_:2},1032,["onClose"]))),128))])):o("v-if",!0),p(v,{value:e.manualFilePath,"onUpdate:value":s[1]||(s[1]=t=>e.manualFilePath=t),placeholder:"或输入文件路径,按 Enter 添加",size:"small",class:"path-input",onPressEnter:e.addManualFile},null,8,["value"])],34)):o("v-if",!0),o(" History "),e.store.history.length?(a(),l("div",Qe,[n("div",{class:"history-header",onClick:s[4]||(s[4]=t=>e.showHistory=!e.showHistory)},[p(e.HistoryOutlined),y(" 历史记录 ("+i(e.store.history.length)+") ",1)]),e.showHistory?(a(),l("div",Ue,[(a(!0),l(w,null,C(e.store.history.slice().reverse().slice(0,20),(t,_)=>(a(),l("div",{key:_,class:L(["history-item",t.status])},[n("div",qe,i(t.userMessage),1),n("div",ze,[n("span",null,i(t.templateName||"自由模式"),1),n("span",null,i(t.status),1)])],2))),128))])):o("v-if",!0)])):o("v-if",!0)]),o(" Right Panel: Execution "),n("div",Be,[o(" Empty state "),!e.store.agentSessionId&&!e.store.selectedTemplate?(a(),l("div",Ne,[n("div",Ve,[p(e.RocketOutlined)]),s[12]||(s[12]=n("div",{class:"empty-title"},"选择一个任务模板开始",-1)),s[13]||(s[13]=n("div",{class:"empty-sub"},"或选择「自由提问」处理任何问题",-1)),n("div",Ke,[(a(),l(w,null,C(e.quickExamples,t=>n("div",{key:t,class:"example-chip",onClick:_=>e.quickStart(t)},i(t),9,Ge)),64))])])):e.store.selectedTemplate&&!e.store.agentSessionId?(a(),l(w,{key:1},[o(" Template selected but not started "),n("div",Je,[n("div",We,[(a(),O(G(e.iconMap[e.store.selectedTemplate.icon]||e.RocketOutlined),{class:"ready-icon"})),n("span",je,i(e.store.selectedTemplate.name),1)]),o(" Parallel mode toggle "),e.store.selectedTemplate.parallelStrategy&&e.store.selectedTemplate.parallelStrategy!=="none"?(a(),l("div",Xe,[p(S,{checked:e.store.parallelMode,"onUpdate:checked":s[5]||(s[5]=t=>e.store.parallelMode=t),size:"small"},null,8,["checked"]),s[14]||(s[14]=n("span",{class:"parallel-label"},"多 Agent 并行",-1)),e.store.parallelMode?(a(),O(A,{key:0,value:e.store.parallelAgents,"onUpdate:value":s[6]||(s[6]=t=>e.store.parallelAgents=t),min:2,max:10,size:"small",class:"agent-count"},null,8,["value"])):o("v-if",!0),e.store.parallelMode?(a(),l("span",Ze,"个 Agent")):o("v-if",!0)])):o("v-if",!0),n("div",Ye,[s[15]||(s[15]=n("div",{class:"example-label"},"试试这些:",-1)),(a(!0),l(w,null,C(e.store.selectedTemplate.examples,t=>(a(),l("div",{key:t,class:"example-chip",onClick:_=>e.quickStart(t)},i(t),9,$e))),128))])])],2112)):(a(),l(w,{key:2},[o(" Messages area (active session) "),n("div",et,[(a(!0),l(w,null,C(e.agentMessages,(t,_)=>(a(),l("div",{key:_,class:L(["message-row",t.role])},[o(" Tool call "),t.role==="tool"?(a(),l("div",tt,[p(R,{ghost:"",size:"small"},{default:g(()=>[p(P,{class:"tool-collapse"},{header:g(()=>[p(e.ToolOutlined),y(" "+i(t.tool)+" "+i(t.status==="running"?"(执行中...)":"✓"),1)]),default:g(()=>[n("pre",st,i(JSON.stringify(t.input,null,2)),1),t.result?(a(),l("div",nt,[n("pre",at,i(typeof t.result=="string"?t.result:JSON.stringify(t.result,null,2)),1)])):o("v-if",!0)]),_:2},1024)]),_:2},1024)])):t.role==="user"?(a(),l(w,{key:1},[o(" User "),n("div",ot,[n("div",lt,i(t.content),1)])],2112)):(a(),l(w,{key:2},[o(" Assistant "),n("div",rt,[s[17]||(s[17]=n("div",{class:"avatar"},"AI",-1)),n("div",{class:"bubble assistant",innerHTML:e.renderMarkdown(t.content)},null,8,it),t.content?.startsWith("Error:")&&!e.store.isRunning&&e.store.lastRequest?(a(),O(x,{key:0,size:"small",type:"link",onClick:s[7]||(s[7]=U=>e.store.retry())},{default:g(()=>[...s[16]||(s[16]=[y(" 重试 ",-1)])]),_:1})):o("v-if",!0)])],2112))],2))),128)),o(" Streaming "),e.store.currentStreaming?(a(),l("div",ct,[s[18]||(s[18]=n("div",{class:"avatar"},"AI",-1)),n("div",{class:"bubble assistant streaming",innerHTML:e.renderMarkdown(e.store.currentStreaming)},null,8,dt)])):o("v-if",!0),o(" Question "),e.store.currentQuestion?(a(),l("div",ut,[n("div",vt,i(e.store.currentQuestion.question),1),e.store.currentQuestion.choices?.length?(a(),l("div",mt,[(a(!0),l(w,null,C(e.store.currentQuestion.choices,t=>(a(),O(x,{key:t,size:"small",onClick:_=>e.store.answerQuestion(t)},{default:g(()=>[y(i(t),1)]),_:2},1032,["onClick"]))),128))])):(a(),O(M,{key:1,placeholder:"输入回答...","enter-button":"发送",style:{"margin-top":"10px"},onSearch:e.store.answerQuestion},null,8,["onSearch"]))])):o("v-if",!0)],512)],2112)),o(" Debate result panel "),e.store.result?.mode==="debate"&&!e.store.isRunning?(a(),l("div",pt,[n("div",gt,[p(f,{color:e.verdictColor(e.store.result.verdict)},{default:g(()=>[y(i(e.store.result.verdict),1)]),_:1},8,["color"]),n("span",ft,"共识 "+i(e.store.result.consensusScore||0)+"/100",1)]),p(R,{ghost:"",size:"small"},{default:g(()=>[(a(!0),l(w,null,C(e.store.result.reviews||[],(t,_)=>(a(),O(P,{key:_,class:"review-collapse"},{header:g(()=>[p(f,{color:e.verdictColor(t.verdict)},{default:g(()=>[y(i(t.verdict),1)]),_:2},1032,["color"]),y(" "+i(t.role),1)]),default:g(()=>[n("div",{class:"review-body",innerHTML:e.renderMarkdown(t.review)},null,8,_t)]),_:2},1024))),128))]),_:1})])):o("v-if",!0),o(" Task stats "),e.store.result&&!e.store.isRunning?(a(),l("div",yt,[e.store.result.mode==="debate"?(a(),O(f,{key:0,color:"magenta"},{default:g(()=>[...s[19]||(s[19]=[y("debate",-1)])]),_:1})):o("v-if",!0),e.store.result.parallel?(a(),O(f,{key:1,color:"purple"},{default:g(()=>[y(i(e.store.result.subtaskCount||0)+" subtasks",1)]),_:1})):o("v-if",!0),p(f,{color:"geekblue"},{default:g(()=>[y(i(e.store.result.iterationCount||0)+" iterations",1)]),_:1}),p(f,{color:"cyan"},{default:g(()=>[y("~"+i((e.store.result.tokenCount||0).toLocaleString())+" tokens",1)]),_:1}),e.store.result.toolsUsed?.length?(a(),O(f,{key:2,color:"green"},{default:g(()=>[y(i(e.store.result.toolsUsed.length)+" tools",1)]),_:1})):o("v-if",!0)])):o("v-if",!0),o(" Input area "),n("div",ht,[e.store.selectedTemplate?(a(),l("div",kt,[p(f,{color:"blue",class:"context-tag"},{default:g(()=>[(a(),O(G(e.iconMap[e.store.selectedTemplate.icon]||e.RocketOutlined))),y(" "+i(e.store.selectedTemplate.name),1)]),_:1}),(a(!0),l(w,null,C(e.store.files,t=>(a(),O(f,{key:t,class:"context-tag file"},{default:g(()=>[y(i(e.basename(t)),1)]),_:2},1024))),128))])):o("v-if",!0),n("div",wt,[p(D,{value:e.inputText,"onUpdate:value":s[8]||(s[8]=t=>e.inputText=t),placeholder:e.inputPlaceholder,"auto-size":{minRows:1,maxRows:6},disabled:e.chatStore.isLoading,class:"msg-input",onKeydown:fe(K(e.send,["exact","prevent"]),["enter"])},null,8,["value","placeholder","disabled","onKeydown"]),p(x,{type:"primary",loading:e.chatStore.isLoading,class:"send-btn",onClick:e.send},{icon:g(()=>[p(e.SendOutlined)]),_:1},8,["loading"])])])])])}const Ft=_e(Ce,[["render",Ot],["__scopeId","data-v-f506317d"],["__file","/tmp/cc-web-panel-XbotGX/repo/packages/web-panel/src/views/Cowork.vue"]]);export{Ft as default};
|
|
6
|
+
[用户提供的文件: ${d.value.join(", ")}]`),await c.sendMessage(v.value,k)}return{selectedTemplate:s,files:d,isRunning:e,steps:T,messages:h,result:f,agentSessionId:v,currentAgentMessages:B,currentStreaming:de,currentQuestion:ue,selectTemplate:t,reset:_,addFile:q,removeFile:U,execute:m,executeDirectWs:I,sendFollowUp:pe,answerQuestion:ve,loadTemplates:V,templates:Q,lastRequest:S,retry:me,history:A,loadHistory:z,parallelMode:P,parallelAgents:R,debateMode:x,debatePerspectives:M}}),Ce={__name:"Cowork",setup(Q,{expose:s}){s();const d=ce(),e=F(),T=u(""),h=u(null),f=u(!1),v=u(""),S=u(!1),A=u(!1),P={FileTextOutlined:ie,PlayCircleOutlined:re,BarChartOutlined:le,SearchOutlined:oe,PictureOutlined:ae,CodeOutlined:ne,DesktopOutlined:se,FolderOpenOutlined:te,GlobalOutlined:ee,ReadOutlined:$,SafetyCertificateOutlined:Y},R=["把 report.docx 转成 PDF","压缩视频到 50MB","分析 CSV 生成图表","查询今天的汇率","批量压缩图片","写一个自动化脚本"],x=H(()=>e.isLoading?"等待响应中...":d.selectedTemplate?d.selectedTemplate.examples?.[0]||"描述你的需求...":"描述你想完成的任务,Agent 会帮你搞定"),M=H(()=>d.currentAgentMessages);function D(m){return m==="APPROVE"?"green":m==="REJECT"?"red":m==="ERROR"?"default":"orange"}function t(m){return m.split(/[\\/]/).pop()||m}function _(m){f.value=!1;const I=m.dataTransfer?.files;if(I)for(const B of I)d.addFile(B.path||B.name)}function q(){const m=v.value.trim();m&&(d.addFile(m),v.value="")}async function U(){const m=T.value.trim();!m||e.isLoading||(T.value="",d.agentSessionId?await d.sendFollowUp(m):await d.execute(m))}function V(m){T.value=m,W(()=>U())}G([M,()=>d.currentStreaming],()=>{W(()=>{h.value&&(h.value.scrollTop=h.value.scrollHeight)})},{deep:!0}),X(()=>{e.loadSessions(),d.loadTemplates(),d.loadHistory()});const z={store:d,chatStore:e,inputText:T,messagesEl:h,isDragging:f,manualFilePath:v,hasInteracted:S,showHistory:A,iconMap:P,quickExamples:R,inputPlaceholder:x,agentMessages:M,verdictColor:D,basename:t,onDrop:_,addManualFile:q,send:U,quickStart:V,ref:u,computed:H,watch:G,nextTick:W,onMounted:X,get RocketOutlined(){return Se},get SendOutlined(){return Oe},get ThunderboltOutlined(){return we},get FolderOpenOutlined(){return te},get FileTextOutlined(){return ie},get PlayCircleOutlined(){return re},get BarChartOutlined(){return le},get SearchOutlined(){return oe},get PictureOutlined(){return ae},get CodeOutlined(){return ne},get DesktopOutlined(){return se},get GlobalOutlined(){return ee},get ReadOutlined(){return $},get ToolOutlined(){return ke},get HistoryOutlined(){return he},get SafetyCertificateOutlined(){return Y},get useCoworkStore(){return ce},get useChatStore(){return F},get renderMarkdown(){return ye}};return Object.defineProperty(z,"__isScriptSetup",{enumerable:!1,value:!0}),z}},Te={class:"cowork-root"},xe={class:"template-panel"},Me={class:"template-header"},Fe={class:"template-list"},Pe=["onClick"],Re={class:"card-icon"},De={class:"card-body"},Ee={class:"card-name"},Ae={class:"card-desc"},He={class:"card-icon"},Ie={class:"drop-text"},Le={key:0,class:"file-list"},Qe={key:1,class:"history-section"},qe={key:0,class:"history-list"},Ue={class:"history-summary"},ze={class:"history-meta"},Be={class:"exec-panel"},Ne={key:0,class:"empty-state"},Ve={class:"empty-icon"},Je={class:"example-grid"},Ke=["onClick"],We={class:"ready-state"},je={class:"ready-header"},Ge={class:"ready-name"},Ze={key:0,class:"parallel-toggle"},Xe={key:1,class:"parallel-hint"},Ye={class:"ready-examples"},$e=["onClick"],et={class:"messages-area",ref:"messagesEl"},tt={key:0,class:"tool-msg"},st={class:"tool-input"},nt={key:0,class:"tool-result-box"},at={class:"tool-result"},ot={class:"user-msg"},lt={class:"bubble user"},rt={class:"assistant-msg"},it=["innerHTML"],ct={key:0,class:"assistant-msg"},dt=["innerHTML"],ut={key:1,class:"question-card"},vt={class:"question-text"},mt={key:0,class:"question-choices"},pt={key:3,class:"debate-panel"},gt={class:"debate-verdict"},ft={class:"consensus"},_t=["innerHTML"],yt={key:4,class:"task-stats"},ht={class:"input-area"},kt={key:0,class:"input-context"},wt={class:"input-row"};function Ot(Q,s,d,e,T,h){const f=b("a-tag"),v=b("a-input"),S=b("a-switch"),A=b("a-input-number"),P=b("a-collapse-panel"),R=b("a-collapse"),x=b("a-button"),M=b("a-input-search"),D=b("a-textarea");return a(),l("div",Te,[o(" Left Panel: Templates "),n("div",xe,[n("div",Me,[p(e.RocketOutlined,{class:"header-icon"}),s[9]||(s[9]=n("span",{class:"header-title"},"日常协作",-1))]),s[11]||(s[11]=n("div",{class:"template-hint"},"选择任务类型,或直接输入需求",-1)),n("div",Fe,[(a(!0),l(w,null,C(e.store.templates,t=>(a(),l("div",{key:t.id,class:L(["template-card",{active:e.store.selectedTemplate?.id===t.id}]),onClick:_=>e.store.selectTemplate(t)},[n("div",Re,[(a(),O(K(e.iconMap[t.icon]||e.RocketOutlined)))]),n("div",De,[n("div",Ee,i(t.name),1),n("div",Ae,i(t.description),1)])],10,Pe))),128)),o(" Free mode card "),n("div",{class:L(["template-card free",{active:e.store.selectedTemplate===null&&e.hasInteracted}]),onClick:s[0]||(s[0]=t=>{e.store.selectTemplate(null),e.hasInteracted=!0})},[n("div",He,[p(e.ThunderboltOutlined)]),s[10]||(s[10]=n("div",{class:"card-body"},[n("div",{class:"card-name"},"自由提问"),n("div",{class:"card-desc"},"任意任务,Agent 自主完成")],-1))],2)]),o(" File drop zone "),e.store.selectedTemplate?.acceptsFiles!==!1?(a(),l("div",{key:0,class:L(["file-zone",{dragging:e.isDragging}]),onDragover:s[2]||(s[2]=J(t=>e.isDragging=!0,["prevent"])),onDragleave:s[3]||(s[3]=t=>e.isDragging=!1),onDrop:J(e.onDrop,["prevent"])},[p(e.FolderOpenOutlined,{class:"drop-icon"}),n("div",Ie,i(e.isDragging?"松开以添加文件":"拖拽文件到此处"),1),e.store.files.length?(a(),l("div",Le,[(a(!0),l(w,null,C(e.store.files,t=>(a(),O(f,{key:t,closable:"",onClose:_=>e.store.removeFile(t),class:"file-tag"},{default:g(()=>[y(i(e.basename(t)),1)]),_:2},1032,["onClose"]))),128))])):o("v-if",!0),p(v,{value:e.manualFilePath,"onUpdate:value":s[1]||(s[1]=t=>e.manualFilePath=t),placeholder:"或输入文件路径,按 Enter 添加",size:"small",class:"path-input",onPressEnter:e.addManualFile},null,8,["value"])],34)):o("v-if",!0),o(" History "),e.store.history.length?(a(),l("div",Qe,[n("div",{class:"history-header",onClick:s[4]||(s[4]=t=>e.showHistory=!e.showHistory)},[p(e.HistoryOutlined),y(" 历史记录 ("+i(e.store.history.length)+") ",1)]),e.showHistory?(a(),l("div",qe,[(a(!0),l(w,null,C(e.store.history.slice().reverse().slice(0,20),(t,_)=>(a(),l("div",{key:_,class:L(["history-item",t.status])},[n("div",Ue,i(t.userMessage),1),n("div",ze,[n("span",null,i(t.templateName||"自由模式"),1),n("span",null,i(t.status),1)])],2))),128))])):o("v-if",!0)])):o("v-if",!0)]),o(" Right Panel: Execution "),n("div",Be,[o(" Empty state "),!e.store.agentSessionId&&!e.store.selectedTemplate?(a(),l("div",Ne,[n("div",Ve,[p(e.RocketOutlined)]),s[12]||(s[12]=n("div",{class:"empty-title"},"选择一个任务模板开始",-1)),s[13]||(s[13]=n("div",{class:"empty-sub"},"或选择「自由提问」处理任何问题",-1)),n("div",Je,[(a(),l(w,null,C(e.quickExamples,t=>n("div",{key:t,class:"example-chip",onClick:_=>e.quickStart(t)},i(t),9,Ke)),64))])])):e.store.selectedTemplate&&!e.store.agentSessionId?(a(),l(w,{key:1},[o(" Template selected but not started "),n("div",We,[n("div",je,[(a(),O(K(e.iconMap[e.store.selectedTemplate.icon]||e.RocketOutlined),{class:"ready-icon"})),n("span",Ge,i(e.store.selectedTemplate.name),1)]),o(" Parallel mode toggle "),e.store.selectedTemplate.parallelStrategy&&e.store.selectedTemplate.parallelStrategy!=="none"?(a(),l("div",Ze,[p(S,{checked:e.store.parallelMode,"onUpdate:checked":s[5]||(s[5]=t=>e.store.parallelMode=t),size:"small"},null,8,["checked"]),s[14]||(s[14]=n("span",{class:"parallel-label"},"多 Agent 并行",-1)),e.store.parallelMode?(a(),O(A,{key:0,value:e.store.parallelAgents,"onUpdate:value":s[6]||(s[6]=t=>e.store.parallelAgents=t),min:2,max:10,size:"small",class:"agent-count"},null,8,["value"])):o("v-if",!0),e.store.parallelMode?(a(),l("span",Xe,"个 Agent")):o("v-if",!0)])):o("v-if",!0),n("div",Ye,[s[15]||(s[15]=n("div",{class:"example-label"},"试试这些:",-1)),(a(!0),l(w,null,C(e.store.selectedTemplate.examples,t=>(a(),l("div",{key:t,class:"example-chip",onClick:_=>e.quickStart(t)},i(t),9,$e))),128))])])],2112)):(a(),l(w,{key:2},[o(" Messages area (active session) "),n("div",et,[(a(!0),l(w,null,C(e.agentMessages,(t,_)=>(a(),l("div",{key:_,class:L(["message-row",t.role])},[o(" Tool call "),t.role==="tool"?(a(),l("div",tt,[p(R,{ghost:"",size:"small"},{default:g(()=>[p(P,{class:"tool-collapse"},{header:g(()=>[p(e.ToolOutlined),y(" "+i(t.tool)+" "+i(t.status==="running"?"(执行中...)":"✓"),1)]),default:g(()=>[n("pre",st,i(JSON.stringify(t.input,null,2)),1),t.result?(a(),l("div",nt,[n("pre",at,i(typeof t.result=="string"?t.result:JSON.stringify(t.result,null,2)),1)])):o("v-if",!0)]),_:2},1024)]),_:2},1024)])):t.role==="user"?(a(),l(w,{key:1},[o(" User "),n("div",ot,[n("div",lt,i(t.content),1)])],2112)):(a(),l(w,{key:2},[o(" Assistant "),n("div",rt,[s[17]||(s[17]=n("div",{class:"avatar"},"AI",-1)),n("div",{class:"bubble assistant",innerHTML:e.renderMarkdown(t.content)},null,8,it),t.content?.startsWith("Error:")&&!e.store.isRunning&&e.store.lastRequest?(a(),O(x,{key:0,size:"small",type:"link",onClick:s[7]||(s[7]=q=>e.store.retry())},{default:g(()=>[...s[16]||(s[16]=[y(" 重试 ",-1)])]),_:1})):o("v-if",!0)])],2112))],2))),128)),o(" Streaming "),e.store.currentStreaming?(a(),l("div",ct,[s[18]||(s[18]=n("div",{class:"avatar"},"AI",-1)),n("div",{class:"bubble assistant streaming",innerHTML:e.renderMarkdown(e.store.currentStreaming)},null,8,dt)])):o("v-if",!0),o(" Question "),e.store.currentQuestion?(a(),l("div",ut,[n("div",vt,i(e.store.currentQuestion.question),1),e.store.currentQuestion.choices?.length?(a(),l("div",mt,[(a(!0),l(w,null,C(e.store.currentQuestion.choices,t=>(a(),O(x,{key:t,size:"small",onClick:_=>e.store.answerQuestion(t)},{default:g(()=>[y(i(t),1)]),_:2},1032,["onClick"]))),128))])):(a(),O(M,{key:1,placeholder:"输入回答...","enter-button":"发送",style:{"margin-top":"10px"},onSearch:e.store.answerQuestion},null,8,["onSearch"]))])):o("v-if",!0)],512)],2112)),o(" Debate result panel "),e.store.result?.mode==="debate"&&!e.store.isRunning?(a(),l("div",pt,[n("div",gt,[p(f,{color:e.verdictColor(e.store.result.verdict)},{default:g(()=>[y(i(e.store.result.verdict),1)]),_:1},8,["color"]),n("span",ft,"共识 "+i(e.store.result.consensusScore||0)+"/100",1)]),p(R,{ghost:"",size:"small"},{default:g(()=>[(a(!0),l(w,null,C(e.store.result.reviews||[],(t,_)=>(a(),O(P,{key:_,class:"review-collapse"},{header:g(()=>[p(f,{color:e.verdictColor(t.verdict)},{default:g(()=>[y(i(t.verdict),1)]),_:2},1032,["color"]),y(" "+i(t.role),1)]),default:g(()=>[n("div",{class:"review-body",innerHTML:e.renderMarkdown(t.review)},null,8,_t)]),_:2},1024))),128))]),_:1})])):o("v-if",!0),o(" Task stats "),e.store.result&&!e.store.isRunning?(a(),l("div",yt,[e.store.result.mode==="debate"?(a(),O(f,{key:0,color:"magenta"},{default:g(()=>[...s[19]||(s[19]=[y("debate",-1)])]),_:1})):o("v-if",!0),e.store.result.parallel?(a(),O(f,{key:1,color:"purple"},{default:g(()=>[y(i(e.store.result.subtaskCount||0)+" subtasks",1)]),_:1})):o("v-if",!0),p(f,{color:"geekblue"},{default:g(()=>[y(i(e.store.result.iterationCount||0)+" iterations",1)]),_:1}),p(f,{color:"cyan"},{default:g(()=>[y("~"+i((e.store.result.tokenCount||0).toLocaleString())+" tokens",1)]),_:1}),e.store.result.toolsUsed?.length?(a(),O(f,{key:2,color:"green"},{default:g(()=>[y(i(e.store.result.toolsUsed.length)+" tools",1)]),_:1})):o("v-if",!0)])):o("v-if",!0),o(" Input area "),n("div",ht,[e.store.selectedTemplate?(a(),l("div",kt,[p(f,{color:"blue",class:"context-tag"},{default:g(()=>[(a(),O(K(e.iconMap[e.store.selectedTemplate.icon]||e.RocketOutlined))),y(" "+i(e.store.selectedTemplate.name),1)]),_:1}),(a(!0),l(w,null,C(e.store.files,t=>(a(),O(f,{key:t,class:"context-tag file"},{default:g(()=>[y(i(e.basename(t)),1)]),_:2},1024))),128))])):o("v-if",!0),n("div",wt,[p(D,{value:e.inputText,"onUpdate:value":s[8]||(s[8]=t=>e.inputText=t),placeholder:e.inputPlaceholder,"auto-size":{minRows:1,maxRows:6},disabled:e.chatStore.isLoading,class:"msg-input",onKeydown:fe(J(e.send,["exact","prevent"]),["enter"])},null,8,["value","placeholder","disabled","onKeydown"]),p(x,{type:"primary",loading:e.chatStore.isLoading,class:"send-btn",onClick:e.send},{icon:g(()=>[p(e.SendOutlined)]),_:1},8,["loading"])])])])])}const Ft=_e(Ce,[["render",Ot],["__scopeId","data-v-f506317d"],["__file","/tmp/cc-web-panel-qWJQO5/repo/packages/web-panel/src/views/Cowork.vue"]]);export{Ft as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{I as r,J as h,U as p,R as c,c as n,K as t,V as k,o as
|
|
2
|
-
`);for(const H of C){const z=H.trim();if(!z||z.startsWith("─"))continue;const
|
|
1
|
+
import{I as r,J as h,U as p,R as c,c as n,K as t,V as k,o as E,b as O,r as x,P as m,Q as v,F as N,Z as J,S as U}from"./vendor-BvqAck49.js";import{_ as Q,b as I,u as M,d as _}from"./index-C2N_-y_W.js";import{a0 as D,R as K,as as Z}from"./icons-DP3uiYxy.js";const G={__name:"Cron",setup(j,{expose:s}){s();const{t:o}=I(),e=M(),P=x(!1),S=x(!1),d=x(!1),i=x([]),b=O(()=>i.value.filter(a=>a.enabled).length),f=O(()=>i.value.filter(a=>!a.enabled).length),g=[{key:"every5m",cron:"*/5 * * * *"},{key:"every15m",cron:"*/15 * * * *"},{key:"everyHour",cron:"0 * * * *"},{key:"every9am",cron:"0 9 * * *"},{key:"every6pm",cron:"0 18 * * *"},{key:"weeklyMon9",cron:"0 9 * * 1"},{key:"monthly1",cron:"0 9 1 * *"}],A=O(()=>g.map(a=>({...a,label:o(`cron.presets.${a.key}`)}))),u=x({name:"",cron:"",payload:"",description:"",enabled:!0}),F=O(()=>[{title:o("cron.columns.name"),key:"name",width:"25%"},{title:o("cron.columns.cron"),key:"cron",width:"20%"},{title:o("cron.columns.status"),key:"status",width:"15%"},{title:o("cron.columns.actions"),key:"actions",width:"20%"}]);async function w(){P.value=!0;try{const{output:a}=await e.execute('skill run cron-scheduler "list all scheduled tasks"',2e4);i.value=L(a)}catch{i.value=[]}finally{P.value=!1}}function L(a){const l=[],C=a.split(`
|
|
2
|
+
`);for(const H of C){const z=H.trim();if(!z||z.startsWith("─"))continue;const B=z.match(/^([^\t|]+?)[\t|]+([*\d/,\-?LW#\s]+)[\t|]+/);B&&l.push({key:l.length,name:B[1].trim(),cron:B[2].trim(),enabled:!z.toLowerCase().includes("pause")&&!z.toLowerCase().includes("disabled"),description:"",running:!1})}return l}function T(a){u.value.cron=a.cron,d.value=!0}async function y(){if(!u.value.name||!u.value.cron){_.warning(o("cron.messages.nameAndCronRequired"));return}S.value=!0;try{const a=`skill run cron-scheduler "add task: ${u.value.name}, schedule: ${u.value.cron}, payload: ${u.value.payload||"ping"}"`;await e.execute(a,2e4),_.success(o("cron.messages.createOk")),d.value=!1,u.value={name:"",cron:"",payload:"",description:"",enabled:!0},await w()}catch(a){_.error(o("cron.messages.createFailed",{err:a.message}))}finally{S.value=!1}}async function q(a){a.running=!0;try{await e.execute(`skill run cron-scheduler "run task: ${a.name}"`,3e4),_.success(o("cron.messages.runOk",{name:a.name}))}catch(l){_.error(o("cron.messages.runFailed",{err:l.message}))}finally{a.running=!1}}async function V(a){const l=a.enabled?"pause":"enable";try{await e.execute(`skill run cron-scheduler "${l} task: ${a.name}"`,1e4),a.enabled=!a.enabled,_.success(a.enabled?o("cron.messages.toggleEnabled"):o("cron.messages.togglePaused"))}catch{_.error(o("cron.messages.toggleFailed"))}}async function W(a){try{await e.execute(`skill run cron-scheduler "delete task: ${a.name}"`,1e4),i.value=i.value.filter(l=>l.key!==a.key),_.success(o("cron.messages.deleteOk"))}catch{_.error(o("cron.messages.deleteFailed"))}}E(w);const R={t:o,ws:e,loading:P,adding:S,showAdd:d,tasks:i,activeTasks:b,pausedTasks:f,PRESETS:g,presets:A,newTask:u,columns:F,loadTasks:w,parseTasks:L,applyPreset:T,addTask:y,runTask:q,toggleTask:V,deleteTask:W,ref:x,computed:O,onMounted:E,get useI18n(){return I},get PlusOutlined(){return Z},get ReloadOutlined(){return K},get ClockCircleOutlined(){return D},get message(){return _},get useWsStore(){return M}};return Object.defineProperty(R,"__isScriptSetup",{enumerable:!1,value:!0}),R}},X={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},Y={class:"page-title"},$={class:"page-sub"},ee={key:0,style:{"text-align":"center",padding:"40px"}},ae={style:{color:"#e0e0e0","font-weight":"500"}},ne={key:0,style:{color:"var(--text-secondary)","font-size":"11px"}},te={key:1,style:{background:"var(--bg-card-hover)",padding:"2px 6px","border-radius":"3px",color:"#91caff","font-size":"11px"}},le={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},oe={style:{color:"var(--text-secondary)","font-size":"11px","margin-top":"4px"}};function se(j,s,o,e,P,S){const d=r("a-button"),i=r("a-space"),b=r("a-statistic"),f=r("a-card"),g=r("a-col"),A=r("a-row"),u=r("a-spin"),F=r("a-badge"),w=r("a-popconfirm"),L=r("a-table"),T=r("a-input"),y=r("a-form-item"),q=r("a-textarea"),V=r("a-switch"),W=r("a-form"),R=r("a-modal");return m(),h("div",null,[p("div",X,[p("div",null,[p("h2",Y,c(e.t("cron.title")),1),p("p",$,c(e.t("cron.subtitle")),1)]),n(i,null,{default:t(()=>[n(d,{onClick:s[0]||(s[0]=a=>e.showAdd=!0),type:"primary"},{icon:t(()=>[n(e.PlusOutlined)]),default:t(()=>[v(" "+c(e.t("cron.newTask")),1)]),_:1}),n(d,{ghost:"",loading:e.loading,onClick:e.loadTasks},{icon:t(()=>[n(e.ReloadOutlined)]),default:t(()=>[v(" "+c(e.t("cron.refresh")),1)]),_:1},8,["loading"])]),_:1})]),k(" Stats Row "),n(A,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:t(()=>[n(g,{xs:12,sm:6},{default:t(()=>[n(f,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"},size:"small"},{default:t(()=>[n(b,{title:e.t("cron.stats.all"),value:e.tasks.length,"value-style":"color: #ccc; font-size: 18px;"},null,8,["title","value"])]),_:1})]),_:1}),n(g,{xs:12,sm:6},{default:t(()=>[n(f,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"},size:"small"},{default:t(()=>[n(b,{title:e.t("cron.stats.active"),value:e.activeTasks,"value-style":"color: #52c41a; font-size: 18px;"},null,8,["title","value"])]),_:1})]),_:1}),n(g,{xs:12,sm:6},{default:t(()=>[n(f,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"},size:"small"},{default:t(()=>[n(b,{title:e.t("cron.stats.paused"),value:e.pausedTasks,"value-style":"color: #faad14; font-size: 18px;"},null,8,["title","value"])]),_:1})]),_:1}),n(g,{xs:12,sm:6},{default:t(()=>[n(f,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"},size:"small"},{default:t(()=>[n(b,{title:e.t("cron.stats.presets"),value:e.presets.length,"value-style":"color: #1677ff; font-size: 18px;"},null,8,["title","value"])]),_:1})]),_:1})]),_:1}),k(" Presets "),n(f,{title:e.t("cron.presetsCardTitle"),style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"16px"},size:"small"},{default:t(()=>[n(i,{wrap:""},{default:t(()=>[(m(!0),h(N,null,J(e.presets,a=>(m(),U(d,{key:a.key,size:"small",style:{background:"var(--bg-card-hover)","border-color":"var(--border-color)","font-size":"12px"},onClick:l=>e.applyPreset(a)},{default:t(()=>[v(c(a.label),1)]),_:2},1032,["onClick"]))),128))]),_:1})]),_:1},8,["title"]),k(" Tasks Table "),n(f,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[e.loading?(m(),h("div",ee,[n(u,{size:"large"})])):(m(),U(L,{key:1,columns:e.columns,"data-source":e.tasks,pagination:{pageSize:15},size:"small"},{bodyCell:t(({column:a,record:l})=>[a.key==="name"?(m(),h(N,{key:0},[p("div",ae,c(l.name),1),l.description?(m(),h("div",ne,c(l.description),1)):k("v-if",!0)],64)):k("v-if",!0),a.key==="cron"?(m(),h("code",te,c(l.cron),1)):k("v-if",!0),a.key==="status"?(m(),U(F,{key:2,status:l.enabled?"success":"warning",text:l.enabled?e.t("cron.running"):e.t("cron.paused")},null,8,["status","text"])):k("v-if",!0),a.key==="actions"?(m(),U(i,{key:3,size:"small"},{default:t(()=>[n(d,{size:"small",type:"link",loading:l.running,onClick:C=>e.runTask(l)},{default:t(()=>[v(c(e.t("cron.actions.run")),1)]),_:1},8,["loading","onClick"]),n(d,{size:"small",type:"link",onClick:C=>e.toggleTask(l)},{default:t(()=>[v(c(l.enabled?e.t("cron.actions.pause"):e.t("cron.actions.enable")),1)]),_:2},1032,["onClick"]),n(w,{title:e.t("cron.actions.deleteConfirm"),onConfirm:C=>e.deleteTask(l)},{default:t(()=>[n(d,{size:"small",type:"link",danger:""},{default:t(()=>[v(c(e.t("cron.actions.delete")),1)]),_:1})]),_:1},8,["title","onConfirm"])]),_:2},1024)):k("v-if",!0)]),emptyText:t(()=>[p("div",le,[n(e.ClockCircleOutlined,{style:{"font-size":"36px","margin-bottom":"12px",display:"block"}}),v(" "+c(e.t("cron.emptyText")),1)])]),_:1},8,["columns","data-source"]))]),_:1}),k(" Add Task Modal "),n(R,{open:e.showAdd,"onUpdate:open":s[6]||(s[6]=a=>e.showAdd=a),title:e.t("cron.modal.title"),"confirm-loading":e.adding,onOk:e.addTask,width:"520px"},{default:t(()=>[n(W,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:t(()=>[n(y,{label:e.t("cron.modal.nameLabel"),required:""},{default:t(()=>[n(T,{value:e.newTask.name,"onUpdate:value":s[1]||(s[1]=a=>e.newTask.name=a),placeholder:e.t("cron.modal.namePlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),n(y,{label:e.t("cron.modal.cronLabel"),required:""},{default:t(()=>[n(T,{value:e.newTask.cron,"onUpdate:value":s[2]||(s[2]=a=>e.newTask.cron=a),placeholder:e.t("cron.modal.cronPlaceholder")},null,8,["value","placeholder"]),p("div",oe,c(e.t("cron.modal.cronHint")),1)]),_:1},8,["label"]),n(y,{label:e.t("cron.modal.payloadLabel"),required:""},{default:t(()=>[n(q,{value:e.newTask.payload,"onUpdate:value":s[3]||(s[3]=a=>e.newTask.payload=a),rows:3,placeholder:e.t("cron.modal.payloadPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),n(y,{label:e.t("cron.modal.descriptionLabel")},{default:t(()=>[n(T,{value:e.newTask.description,"onUpdate:value":s[4]||(s[4]=a=>e.newTask.description=a),placeholder:e.t("cron.modal.descriptionPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),n(y,{label:e.t("cron.modal.enabledLabel")},{default:t(()=>[n(V,{checked:e.newTask.enabled,"onUpdate:checked":s[5]||(s[5]=a=>e.newTask.enabled=a)},null,8,["checked"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading"])])}const de=Q(G,[["render",se],["__file","/tmp/cc-web-panel-qWJQO5/repo/packages/web-panel/src/views/Cron.vue"]]);export{de as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{I as v,J as p,U as y,R as i,c as o,K as n,V as h,S as k,o as te,a as J,b as W,r as C,P as d,Q as b,F as w,Z as T}from"./vendor-BvqAck49.js";import{_ as xe,u as se,b as oe,d as _}from"./index-BwGnc020.js";import{s as Fe}from"./community-parser-CO25nZFt.js";import{aU as Se,aC as Ae,aB as Oe,b0 as Me,aG as ze,b1 as Te,t as Ue,as as Re,R as je}from"./icons-DP3uiYxy.js";function H(e){const s=Fe(e);if(!s)return null;try{return JSON.parse(s)}catch{}const l=s.match(/\{[\s\S]*\}|\[[\s\S]*\]/);if(!l)return null;try{return JSON.parse(l[0])}catch{return null}}function x(e,s=0){return typeof e=="number"&&Number.isFinite(e)?e:s}function Ne(e,s=0){if(!e||typeof e!="object")return null;const l=e.id||"";return l?{key:l,id:l,name:String(e.name||l),symbol:String(e.symbol||""),chainId:x(e.chainId??e.chain_id,0),_idx:s}:null}function ne(e){const s=H(e);return Array.isArray(s)?s.map(Ne).filter(Boolean):[]}function Be(e,s=0){if(!e||typeof e!="object")return null;const l=e.id||"";return l?{key:l,id:l,fromChain:e.fromChain??e.from_chain??"",toChain:e.toChain??e.to_chain??"",asset:String(e.asset||"native"),amount:x(e.amount,0),senderAddress:e.senderAddress??e.sender_address??"",recipientAddress:e.recipientAddress??e.recipient_address??"",lockTxHash:e.lockTxHash??e.lock_tx_hash??"",mintTxHash:e.mintTxHash??e.mint_tx_hash??"",status:String(e.status||"pending").toLowerCase(),feeAmount:x(e.feeAmount??e.fee_amount,0),feeChain:e.feeChain??e.fee_chain??"",errorMessage:e.errorMessage??e.error_message??"",createdAt:e.createdAt??e.created_at??null,completedAt:e.completedAt??e.completed_at??null,_idx:s}:null}function re(e){const s=H(e);return Array.isArray(s)?s.map(Be).filter(Boolean):[]}function Le(e,s=0){if(!e||typeof e!="object")return null;const l=e.id||"";return l?{key:l,id:l,fromChain:e.fromChain??e.from_chain??"",toChain:e.toChain??e.to_chain??"",fromAsset:e.fromAsset??e.from_asset??"native",toAsset:e.toAsset??e.to_asset??"native",amount:x(e.amount,0),counterpartyAddress:e.counterpartyAddress??e.counterparty_address??"",hashLock:e.hashLock??e.hash_lock??"",expiresAt:e.expiresAt??e.expires_at??null,status:String(e.status||"initiated").toLowerCase(),claimTxHash:e.claimTxHash??e.claim_tx_hash??"",refundTxHash:e.refundTxHash??e.refund_tx_hash??"",createdAt:e.createdAt??e.created_at??null,_idx:s}:null}function le(e){const s=H(e);return Array.isArray(s)?s.map(Le).filter(Boolean):[]}function Pe(e,s=0){if(!e||typeof e!="object")return null;const l=e.id||"";return l?{key:l,id:l,fromChain:e.fromChain??e.from_chain??"",toChain:e.toChain??e.to_chain??"",payload:String(e.payload||""),targetContract:e.targetContract??e.target_contract??"",sourceTxHash:e.sourceTxHash??e.source_tx_hash??"",destinationTxHash:e.destinationTxHash??e.destination_tx_hash??"",status:String(e.status||"pending").toLowerCase(),retries:x(e.retries,0),createdAt:e.createdAt??e.created_at??null,deliveredAt:e.deliveredAt??e.delivered_at??null,_idx:s}:null}function ie(e){const s=H(e);return Array.isArray(s)?s.map(Pe).filter(Boolean):[]}const Ie={bridges:{total:0,byStatus:{},totalVolume:0,totalFees:0},swaps:{total:0,byStatus:{}},messages:{total:0,byStatus:{}}};function de(e){const s=JSON.parse(JSON.stringify(Ie)),l=H(e);return!l||typeof l!="object"||Array.isArray(l)||(l.bridges&&typeof l.bridges=="object"&&(s.bridges.total=x(l.bridges.total,0),s.bridges.totalVolume=x(l.bridges.totalVolume??l.bridges.total_volume,0),s.bridges.totalFees=x(l.bridges.totalFees??l.bridges.total_fees,0),l.bridges.byStatus&&typeof l.bridges.byStatus=="object"&&(s.bridges.byStatus={...l.bridges.byStatus})),l.swaps&&typeof l.swaps=="object"&&(s.swaps.total=x(l.swaps.total,0),l.swaps.byStatus&&typeof l.swaps.byStatus=="object"&&(s.swaps.byStatus={...l.swaps.byStatus})),l.messages&&typeof l.messages=="object"&&(s.messages.total=x(l.messages.total,0),l.messages.byStatus&&typeof l.messages.byStatus=="object"&&(s.messages.byStatus={...l.messages.byStatus}))),s}function ce(e){const s=H(e);return!s||typeof s!="object"||Array.isArray(s)?null:{fee:x(s.fee,0),breakdown:{sourceFee:x(s?.breakdown?.sourceFee??s?.breakdown?.source_fee,0),destFee:x(s?.breakdown?.destFee??s?.breakdown?.dest_fee,0),bridgeFee:x(s?.breakdown?.bridgeFee??s?.breakdown?.bridge_fee,0)},currency:String(s.currency||"USD")}}function He(e){if(e==null||e==="")return"—";const s=typeof e=="number"?new Date(e):new Date(String(e));return isNaN(s.getTime())?String(e):s.toLocaleString("zh-CN",{hour12:!1})}const qe={__name:"Crosschain",setup(e,{expose:s}){s();const l=se(),{t:a}=oe(),K=C(!1),G=C(!1),R=C(!1),j=C(!1),q=C(!1),V=C([]),D=C([]),O=C([]),A=C([]),U=C({bridges:{total:0,byStatus:{},totalVolume:0,totalFees:0},swaps:{total:0,byStatus:{}},messages:{total:0,byStatus:{}}}),L=C("bridges"),M=C(!1),N=C(!1),B=C(!1),Q=C(!1),f=J({fromChain:"",toChain:"",amount:null,asset:"",sender:"",recipient:""}),u=J({fromChain:"",toChain:"",amount:null,fromAsset:"",toAsset:"",counterparty:"",timeoutMs:null}),c=J({fromChain:"",toChain:"",payload:"",contract:""}),F=J({fromChain:"",toChain:"",amount:null}),S=C(null),P=W(()=>[{title:a("crosschain.bridgeCols.route"),key:"route"},{title:a("crosschain.bridgeCols.amount"),key:"amount",width:"160px"},{title:a("crosschain.bridgeCols.fee"),key:"fee",width:"100px"},{title:a("crosschain.bridgeCols.status"),key:"status",width:"110px"},{title:a("crosschain.bridgeCols.createdAt"),key:"createdAt",width:"160px"}]),I=W(()=>[{title:a("crosschain.swapCols.route"),key:"route"},{title:a("crosschain.swapCols.amount"),key:"amount",width:"110px"},{title:a("crosschain.swapCols.hashLock"),key:"hashLock",width:"160px"},{title:a("crosschain.swapCols.status"),key:"status",width:"120px"},{title:a("crosschain.swapCols.expiresAt"),key:"expiresAt",width:"160px"}]),Z=W(()=>[{title:a("crosschain.messageCols.route"),key:"route",width:"220px"},{title:a("crosschain.messageCols.payload"),key:"payload"},{title:a("crosschain.messageCols.retries"),key:"retries",width:"80px"},{title:a("crosschain.messageCols.status"),key:"status",width:"110px"},{title:a("crosschain.messageCols.createdAt"),key:"createdAt",width:"160px"}]),t={ethereum:"blue",polygon:"purple",bsc:"gold",arbitrum:"cyan",solana:"magenta"};function m(r){return t[r]||"default"}function ue(r){const g=V.value.find(z=>z.id===r);return g?g.name:r||"—"}function me(r){const g=`crosschain.statusLabels.${r}`,z=a(g);return z===g?r:z}function fe(r){return{pending:"default",locked:"processing",minted:"cyan",completed:"green",refunded:"orange",failed:"red"}[r]||"default"}function he(r){return{initiated:"default",hash_locked:"processing",claimed:"green",refunded:"orange",expired:"red"}[r]||"default"}function pe(r){return{pending:"default",sent:"processing",delivered:"green",failed:"red"}[r]||"default"}function ge(r,g){return r?r.length>g?r.slice(0,g)+"...":r:""}function ye({key:r}){r==="bridge"?M.value=!0:r==="swap"?N.value=!0:r==="message"&&(B.value=!0)}async function X(){K.value=!0;try{const[r,g,z,ke,we]=await Promise.all([l.execute("crosschain chains --json",8e3).catch(()=>({output:""})),l.execute("crosschain bridges --limit 200 --json",1e4).catch(()=>({output:""})),l.execute("crosschain swaps --limit 200 --json",1e4).catch(()=>({output:""})),l.execute("crosschain messages --limit 200 --json",1e4).catch(()=>({output:""})),l.execute("crosschain stats --json",8e3).catch(()=>({output:""}))]);V.value=ne(r.output),D.value=re(g.output),O.value=le(z.output),A.value=ie(ke.output),U.value=de(we.output)}catch(r){_.error(a("crosschain.msg.loadFailed")+": "+(r?.message||r))}finally{K.value=!1}}function E(r){return!r.fromChain||!r.toChain?(_.warning(a("crosschain.msg.pairEmpty")),!1):r.fromChain===r.toChain?(_.warning(a("crosschain.msg.pairSame")),!1):!0}async function be(){if(E(f)){if(!f.amount||f.amount<=0){_.warning(a("crosschain.msg.amountInvalid"));return}G.value=!0;try{const r=[`crosschain bridge ${f.fromChain} ${f.toChain} ${f.amount}`];f.asset.trim()&&r.push(`--asset "${f.asset.trim().replace(/"/g,'\\"')}"`),f.sender.trim()&&r.push(`--sender "${f.sender.trim().replace(/"/g,'\\"')}"`),f.recipient.trim()&&r.push(`--recipient "${f.recipient.trim().replace(/"/g,'\\"')}"`),r.push("--json");const{output:g}=await l.execute(r.join(" "),15e3);if(/error|failed|失败|unsupported/i.test(g)&&!/"bridgeId"/.test(g)){_.error(a("crosschain.msg.bridgeFailed")+": "+g.slice(0,120));return}_.success(a("crosschain.msg.bridgeSuccess")),M.value=!1,Y(),L.value="bridges",await X()}catch(r){_.error(a("crosschain.msg.bridgeFailed")+": "+(r?.message||r))}finally{G.value=!1}}}async function ve(){if(E(u)){if(!u.amount||u.amount<=0){_.warning(a("crosschain.msg.amountInvalid"));return}R.value=!0;try{const r=[`crosschain swap ${u.fromChain} ${u.toChain} ${u.amount}`];u.fromAsset.trim()&&r.push(`--from-asset "${u.fromAsset.trim().replace(/"/g,'\\"')}"`),u.toAsset.trim()&&r.push(`--to-asset "${u.toAsset.trim().replace(/"/g,'\\"')}"`),u.counterparty.trim()&&r.push(`--counterparty "${u.counterparty.trim().replace(/"/g,'\\"')}"`),u.timeoutMs!=null&&r.push(`--timeout ${u.timeoutMs}`),r.push("--json");const{output:g}=await l.execute(r.join(" "),15e3);if(/error|failed|失败|unsupported/i.test(g)&&!/"swapId"/.test(g)){_.error(a("crosschain.msg.swapFailed")+": "+g.slice(0,120));return}_.success(a("crosschain.msg.swapSuccess")),N.value=!1,$(),L.value="swaps",await X()}catch(r){_.error(a("crosschain.msg.swapFailed")+": "+(r?.message||r))}finally{R.value=!1}}}async function _e(){if(E(c)){j.value=!0;try{const r=[`crosschain send ${c.fromChain} ${c.toChain}`];c.payload.trim()&&r.push(`--payload "${c.payload.trim().replace(/"/g,'\\"')}"`),c.contract.trim()&&r.push(`--contract "${c.contract.trim().replace(/"/g,'\\"')}"`),r.push("--json");const{output:g}=await l.execute(r.join(" "),12e3);if(/error|failed|失败|unsupported/i.test(g)&&!/"messageId"/.test(g)){_.error(a("crosschain.msg.sendFailed")+": "+g.slice(0,120));return}_.success(a("crosschain.msg.sendSuccess")),B.value=!1,ee(),L.value="messages",await X()}catch(r){_.error(a("crosschain.msg.sendFailed")+": "+(r?.message||r))}finally{j.value=!1}}}async function Ce(){if(E(F)){if(!F.amount||F.amount<=0){_.warning(a("crosschain.msg.amountInvalid"));return}q.value=!0,S.value=null;try{const r=`crosschain estimate-fee ${F.fromChain} ${F.toChain} ${F.amount} --json`,{output:g}=await l.execute(r,8e3),z=ce(g);if(!z){_.error(a("crosschain.msg.feeFailed")+": "+g.slice(0,120));return}S.value=z}catch(r){_.error(a("crosschain.msg.feeFailed")+": "+(r?.message||r))}finally{q.value=!1}}}function Y(){f.fromChain="",f.toChain="",f.amount=null,f.asset="",f.sender="",f.recipient=""}function $(){u.fromChain="",u.toChain="",u.amount=null,u.fromAsset="",u.toAsset="",u.counterparty="",u.timeoutMs=null}function ee(){c.fromChain="",c.toChain="",c.payload="",c.contract=""}te(X);const ae={ws:l,t:a,loading:K,bridging:G,swapping:R,sending:j,estimating:q,chains:V,bridges:D,swaps:O,messages:A,stats:U,activeTab:L,showBridgeModal:M,showSwapModal:N,showMessageModal:B,showFeeModal:Q,bridgeForm:f,swapForm:u,messageForm:c,feeForm:F,feeResult:S,bridgeColumns:P,swapColumns:I,messageColumns:Z,CHAIN_COLORS:t,chainColor:m,chainName:ue,statusLabel:me,bridgeStatusColor:fe,swapStatusColor:he,messageStatusColor:pe,truncate:ge,handleNewClick:ye,loadAll:X,validatePair:E,initiateBridge:be,initiateSwap:ve,sendMessage:_e,estimateFee:Ce,resetBridgeForm:Y,resetSwapForm:$,resetMessageForm:ee,ref:C,computed:W,onMounted:te,reactive:J,get ReloadOutlined(){return je},get PlusOutlined(){return Re},get SwapOutlined(){return Ue},get InteractionOutlined(){return Te},get MailOutlined(){return ze},get CalculatorOutlined(){return Me},get LinkOutlined(){return Oe},get DollarOutlined(){return Ae},get ArrowRightOutlined(){return Se},get message(){return _},get useI18n(){return oe},get useWsStore(){return se},get parseChains(){return ne},get parseBridges(){return re},get parseSwaps(){return le},get parseMessages(){return ie},get parseStats(){return de},get parseFeeEstimate(){return ce},get formatXChainTime(){return He}};return Object.defineProperty(ae,"__isScriptSetup",{enumerable:!1,value:!0}),ae}},Ve={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},De={class:"page-title"},Xe={class:"page-sub"},Ee={style:{opacity:"0.7"}},Je={key:0,style:{opacity:"0.55","font-size":"10px","margin-left":"4px"}},Ke={style:{color:"var(--text-primary)"}},Ge={style:{color:"var(--text-primary)"}},We={style:{color:"#722ed1","font-weight":"500"}},Qe={style:{color:"var(--text-secondary)","margin-left":"4px","font-size":"11px"}},Ze={key:2,style:{color:"var(--text-secondary)","font-size":"12px"}},Ye={key:4,style:{color:"var(--text-secondary)","font-size":"11px"}},$e={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},ea={style:{color:"var(--text-primary)"}},aa={style:{color:"var(--text-secondary)","font-size":"11px",margin:"0 4px"}},ta={style:{color:"var(--text-primary)"}},sa={style:{color:"var(--text-secondary)","font-size":"11px","margin-left":"4px"}},oa={key:1,style:{color:"#722ed1","font-weight":"500"}},na={key:0,style:{color:"var(--text-secondary)","font-family":"monospace","font-size":"11px"}},ra={key:1,style:{color:"var(--text-muted)"}},la={key:4,style:{color:"var(--text-secondary)","font-size":"11px"}},ia={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},da={style:{color:"var(--text-primary)"}},ca={style:{color:"var(--text-primary)"}},ua={key:1,style:{color:"var(--text-secondary)","font-size":"12px"}},ma={key:1,style:{color:"var(--text-muted)"}},fa={key:4,style:{color:"var(--text-secondary)","font-size":"11px"}},ha={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},pa={style:{"margin-top":"12px","font-size":"12px",color:"var(--text-secondary)"}};function ga(e,s,l,a,K,G){const R=v("a-button"),j=v("a-menu-item"),q=v("a-menu"),V=v("a-dropdown"),D=v("a-space"),O=v("a-statistic"),A=v("a-card"),U=v("a-col"),L=v("a-row"),M=v("a-tag"),N=v("a-table"),B=v("a-tab-pane"),Q=v("a-tabs"),f=v("a-select-option"),u=v("a-select"),c=v("a-form-item"),F=v("a-input-number"),S=v("a-input"),P=v("a-form"),I=v("a-modal"),Z=v("a-textarea");return d(),p("div",null,[y("div",Ve,[y("div",null,[y("h2",De,i(e.$t("crosschain.title")),1),y("p",Xe,i(e.$t("crosschain.subtitle")),1)]),o(D,null,{default:n(()=>[o(R,{loading:a.loading,onClick:a.loadAll},{icon:n(()=>[o(a.ReloadOutlined)]),default:n(()=>[b(" "+i(e.$t("crosschain.refresh")),1)]),_:1},8,["loading"]),o(V,{trigger:["click"]},{overlay:n(()=>[o(q,{onClick:a.handleNewClick},{default:n(()=>[o(j,{key:"bridge"},{default:n(()=>[o(a.SwapOutlined),b(" "+i(e.$t("crosschain.actions.bridge")),1)]),_:1}),o(j,{key:"swap"},{default:n(()=>[o(a.InteractionOutlined),b(" "+i(e.$t("crosschain.actions.swap")),1)]),_:1}),o(j,{key:"message"},{default:n(()=>[o(a.MailOutlined),b(" "+i(e.$t("crosschain.actions.message")),1)]),_:1})]),_:1})]),default:n(()=>[o(R,{type:"primary"},{icon:n(()=>[o(a.PlusOutlined)]),default:n(()=>[b(" "+i(e.$t("crosschain.newDropdown")),1)]),_:1})]),_:1}),o(R,{onClick:s[0]||(s[0]=t=>a.showFeeModal=!0)},{icon:n(()=>[o(a.CalculatorOutlined)]),default:n(()=>[b(" "+i(e.$t("crosschain.feeEstimate")),1)]),_:1})]),_:1})]),h(" Stats overview "),o(L,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:n(()=>[o(U,{xs:12,sm:8,lg:5},{default:n(()=>[o(A,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:n(()=>[o(O,{title:e.$t("crosschain.stats.chains"),value:a.chains.length,"value-style":{color:"#1677ff",fontSize:"20px"}},{prefix:n(()=>[o(a.LinkOutlined)]),_:1},8,["title","value"])]),_:1})]),_:1}),o(U,{xs:12,sm:8,lg:5},{default:n(()=>[o(A,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:n(()=>[o(O,{title:e.$t("crosschain.stats.bridges"),value:a.stats.bridges.total,"value-style":{color:"#52c41a",fontSize:"20px"}},{prefix:n(()=>[o(a.SwapOutlined)]),_:1},8,["title","value"])]),_:1})]),_:1}),o(U,{xs:12,sm:8,lg:5},{default:n(()=>[o(A,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:n(()=>[o(O,{title:e.$t("crosschain.stats.swaps"),value:a.stats.swaps.total,"value-style":{color:"#722ed1",fontSize:"20px"}},{prefix:n(()=>[o(a.InteractionOutlined)]),_:1},8,["title","value"])]),_:1})]),_:1}),o(U,{xs:12,sm:8,lg:5},{default:n(()=>[o(A,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:n(()=>[o(O,{title:e.$t("crosschain.stats.messages"),value:a.stats.messages.total,"value-style":{color:"#faad14",fontSize:"20px"}},{prefix:n(()=>[o(a.MailOutlined)]),_:1},8,["title","value"])]),_:1})]),_:1}),o(U,{xs:24,sm:8,lg:4},{default:n(()=>[o(A,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:n(()=>[o(O,{title:e.$t("crosschain.stats.volume"),value:a.stats.bridges.totalVolume,precision:2,"value-style":{color:"#13c2c2",fontSize:"20px"}},{prefix:n(()=>[o(a.DollarOutlined)]),_:1},8,["title","value"])]),_:1})]),_:1})]),_:1}),h(" Chain catalogue "),a.chains.length?(d(),k(A,{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:n(()=>[o(D,{size:[12,8],wrap:""},{default:n(()=>[(d(!0),p(w,null,T(a.chains,t=>(d(),k(M,{key:t.id,color:a.chainColor(t.id)},{default:n(()=>[b(i(t.name)+" ",1),y("span",Ee,"("+i(t.symbol)+")",1),t.chainId>0?(d(),p("span",Je,"#"+i(t.chainId),1)):h("v-if",!0)]),_:2},1032,["color"]))),128))]),_:1})]),_:1},8,["title"])):h("v-if",!0),h(" Tabs "),o(Q,{activeKey:a.activeTab,"onUpdate:activeKey":s[1]||(s[1]=t=>a.activeTab=t),class:"xchain-tabs"},{default:n(()=>[h(" ── Bridges tab ───────────────────────────────────────────── "),o(B,{key:"bridges",tab:e.$t("crosschain.tabs.bridges")},{default:n(()=>[o(N,{columns:a.bridgeColumns,"data-source":a.bridges,pagination:{pageSize:20,showTotal:t=>e.$t("crosschain.table.totalSuffix",{n:t})},size:"small",loading:a.loading,style:{background:"var(--bg-card)"}},{bodyCell:n(({column:t,record:m})=>[t.key==="route"?(d(),p(w,{key:0},[y("span",Ke,i(a.chainName(m.fromChain)),1),o(a.ArrowRightOutlined,{style:{margin:"0 6px",color:"var(--text-secondary)","font-size":"11px"}}),y("span",Ge,i(a.chainName(m.toChain)),1)],64)):h("v-if",!0),t.key==="amount"?(d(),p(w,{key:1},[y("span",We,i(m.amount),1),y("span",Qe,i(m.asset),1)],64)):h("v-if",!0),t.key==="fee"?(d(),p("span",Ze,i(m.feeAmount),1)):h("v-if",!0),t.key==="status"?(d(),k(M,{key:3,color:a.bridgeStatusColor(m.status)},{default:n(()=>[b(i(a.statusLabel(m.status)),1)]),_:2},1032,["color"])):h("v-if",!0),t.key==="createdAt"?(d(),p("span",Ye,i(a.formatXChainTime(m.createdAt)),1)):h("v-if",!0)]),emptyText:n(()=>[y("div",$e,[o(a.SwapOutlined,{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),b(" "+i(e.$t("crosschain.table.emptyBridges")),1)])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"]),h(" ── Swaps tab ─────────────────────────────────────────────── "),o(B,{key:"swaps",tab:e.$t("crosschain.tabs.swaps")},{default:n(()=>[o(N,{columns:a.swapColumns,"data-source":a.swaps,pagination:{pageSize:20,showTotal:t=>e.$t("crosschain.table.totalSuffix",{n:t})},size:"small",loading:a.loading,style:{background:"var(--bg-card)"}},{bodyCell:n(({column:t,record:m})=>[t.key==="route"?(d(),p(w,{key:0},[y("span",ea,i(a.chainName(m.fromChain)),1),y("span",aa,"("+i(m.fromAsset)+")",1),o(a.ArrowRightOutlined,{style:{margin:"0 4px",color:"var(--text-secondary)","font-size":"11px"}}),y("span",ta,i(a.chainName(m.toChain)),1),y("span",sa,"("+i(m.toAsset)+")",1)],64)):h("v-if",!0),t.key==="amount"?(d(),p("span",oa,i(m.amount),1)):h("v-if",!0),t.key==="hashLock"?(d(),p(w,{key:2},[m.hashLock?(d(),p("span",na,i(m.hashLock.slice(0,14))+"... ",1)):(d(),p("span",ra,"—"))],64)):h("v-if",!0),t.key==="status"?(d(),k(M,{key:3,color:a.swapStatusColor(m.status)},{default:n(()=>[b(i(a.statusLabel(m.status)),1)]),_:2},1032,["color"])):h("v-if",!0),t.key==="expiresAt"?(d(),p("span",la,i(a.formatXChainTime(m.expiresAt)),1)):h("v-if",!0)]),emptyText:n(()=>[y("div",ia,[o(a.InteractionOutlined,{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),b(" "+i(e.$t("crosschain.table.emptySwaps")),1)])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"]),h(" ── Messages tab ──────────────────────────────────────────── "),o(B,{key:"messages",tab:e.$t("crosschain.tabs.messages")},{default:n(()=>[o(N,{columns:a.messageColumns,"data-source":a.messages,pagination:{pageSize:20,showTotal:t=>e.$t("crosschain.table.totalSuffix",{n:t})},size:"small",loading:a.loading,style:{background:"var(--bg-card)"}},{bodyCell:n(({column:t,record:m})=>[t.key==="route"?(d(),p(w,{key:0},[y("span",da,i(a.chainName(m.fromChain)),1),o(a.ArrowRightOutlined,{style:{margin:"0 6px",color:"var(--text-secondary)","font-size":"11px"}}),y("span",ca,i(a.chainName(m.toChain)),1)],64)):h("v-if",!0),t.key==="payload"?(d(),p("span",ua,i(a.truncate(m.payload,60)||"—"),1)):h("v-if",!0),t.key==="retries"?(d(),p(w,{key:2},[m.retries>0?(d(),k(M,{key:0,color:"orange",style:{"font-size":"11px"}},{default:n(()=>[b(i(e.$t("crosschain.table.retrySuffix",{n:m.retries})),1)]),_:2},1024)):(d(),p("span",ma,"—"))],64)):h("v-if",!0),t.key==="status"?(d(),k(M,{key:3,color:a.messageStatusColor(m.status)},{default:n(()=>[b(i(a.statusLabel(m.status)),1)]),_:2},1032,["color"])):h("v-if",!0),t.key==="createdAt"?(d(),p("span",fa,i(a.formatXChainTime(m.createdAt)),1)):h("v-if",!0)]),emptyText:n(()=>[y("div",ha,[o(a.MailOutlined,{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),b(" "+i(e.$t("crosschain.table.emptyMessages")),1)])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"])]),_:1},8,["activeKey"]),h(" ── Bridge modal ──────────────────────────────────────────── "),o(I,{open:a.showBridgeModal,"onUpdate:open":s[8]||(s[8]=t=>a.showBridgeModal=t),title:e.$t("crosschain.bridge_modal.title"),"confirm-loading":a.bridging,width:540,"ok-text":e.$t("crosschain.bridge_modal.ok"),"cancel-text":e.$t("crosschain.bridge_modal.cancel"),onOk:a.initiateBridge,onCancel:a.resetBridgeForm},{default:n(()=>[o(P,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:n(()=>[o(c,{label:e.$t("crosschain.bridge_modal.fromChain"),required:""},{default:n(()=>[o(u,{value:a.bridgeForm.fromChain,"onUpdate:value":s[2]||(s[2]=t=>a.bridgeForm.fromChain=t),placeholder:e.$t("crosschain.bridge_modal.fromChainPlaceholder")},{default:n(()=>[(d(!0),p(w,null,T(a.chains,t=>(d(),k(f,{key:t.id,value:t.id},{default:n(()=>[b(i(t.name),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value","placeholder"])]),_:1},8,["label"]),o(c,{label:e.$t("crosschain.bridge_modal.toChain"),required:""},{default:n(()=>[o(u,{value:a.bridgeForm.toChain,"onUpdate:value":s[3]||(s[3]=t=>a.bridgeForm.toChain=t),placeholder:e.$t("crosschain.bridge_modal.toChainPlaceholder")},{default:n(()=>[(d(!0),p(w,null,T(a.chains,t=>(d(),k(f,{key:t.id,value:t.id,disabled:t.id===a.bridgeForm.fromChain},{default:n(()=>[b(i(t.name),1)]),_:2},1032,["value","disabled"]))),128))]),_:1},8,["value","placeholder"])]),_:1},8,["label"]),o(c,{label:e.$t("crosschain.bridge_modal.amount"),required:""},{default:n(()=>[o(F,{value:a.bridgeForm.amount,"onUpdate:value":s[4]||(s[4]=t=>a.bridgeForm.amount=t),min:0,precision:6,style:{width:"100%"}},null,8,["value"])]),_:1},8,["label"]),o(c,{label:e.$t("crosschain.bridge_modal.asset")},{default:n(()=>[o(S,{value:a.bridgeForm.asset,"onUpdate:value":s[5]||(s[5]=t=>a.bridgeForm.asset=t),placeholder:e.$t("crosschain.bridge_modal.assetPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),o(c,{label:e.$t("crosschain.bridge_modal.sender")},{default:n(()=>[o(S,{value:a.bridgeForm.sender,"onUpdate:value":s[6]||(s[6]=t=>a.bridgeForm.sender=t),placeholder:e.$t("crosschain.bridge_modal.senderPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),o(c,{label:e.$t("crosschain.bridge_modal.recipient")},{default:n(()=>[o(S,{value:a.bridgeForm.recipient,"onUpdate:value":s[7]||(s[7]=t=>a.bridgeForm.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"]),h(" ── Swap modal ────────────────────────────────────────────── "),o(I,{open:a.showSwapModal,"onUpdate:open":s[16]||(s[16]=t=>a.showSwapModal=t),title:e.$t("crosschain.swap_modal.title"),"confirm-loading":a.swapping,width:540,"ok-text":e.$t("crosschain.swap_modal.ok"),"cancel-text":e.$t("crosschain.swap_modal.cancel"),onOk:a.initiateSwap,onCancel:a.resetSwapForm},{default:n(()=>[o(P,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:n(()=>[o(c,{label:e.$t("crosschain.swap_modal.fromChain"),required:""},{default:n(()=>[o(u,{value:a.swapForm.fromChain,"onUpdate:value":s[9]||(s[9]=t=>a.swapForm.fromChain=t),placeholder:e.$t("crosschain.swap_modal.fromChainPlaceholder")},{default:n(()=>[(d(!0),p(w,null,T(a.chains,t=>(d(),k(f,{key:t.id,value:t.id},{default:n(()=>[b(i(t.name),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value","placeholder"])]),_:1},8,["label"]),o(c,{label:e.$t("crosschain.swap_modal.toChain"),required:""},{default:n(()=>[o(u,{value:a.swapForm.toChain,"onUpdate:value":s[10]||(s[10]=t=>a.swapForm.toChain=t),placeholder:e.$t("crosschain.swap_modal.toChainPlaceholder")},{default:n(()=>[(d(!0),p(w,null,T(a.chains,t=>(d(),k(f,{key:t.id,value:t.id,disabled:t.id===a.swapForm.fromChain},{default:n(()=>[b(i(t.name),1)]),_:2},1032,["value","disabled"]))),128))]),_:1},8,["value","placeholder"])]),_:1},8,["label"]),o(c,{label:e.$t("crosschain.swap_modal.amount"),required:""},{default:n(()=>[o(F,{value:a.swapForm.amount,"onUpdate:value":s[11]||(s[11]=t=>a.swapForm.amount=t),min:0,precision:6,style:{width:"100%"}},null,8,["value"])]),_:1},8,["label"]),o(c,{label:e.$t("crosschain.swap_modal.fromAsset")},{default:n(()=>[o(S,{value:a.swapForm.fromAsset,"onUpdate:value":s[12]||(s[12]=t=>a.swapForm.fromAsset=t),placeholder:e.$t("crosschain.swap_modal.assetPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),o(c,{label:e.$t("crosschain.swap_modal.toAsset")},{default:n(()=>[o(S,{value:a.swapForm.toAsset,"onUpdate:value":s[13]||(s[13]=t=>a.swapForm.toAsset=t),placeholder:e.$t("crosschain.swap_modal.assetPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),o(c,{label:e.$t("crosschain.swap_modal.counterparty")},{default:n(()=>[o(S,{value:a.swapForm.counterparty,"onUpdate:value":s[14]||(s[14]=t=>a.swapForm.counterparty=t),placeholder:e.$t("crosschain.swap_modal.counterpartyPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),o(c,{label:e.$t("crosschain.swap_modal.timeoutMs")},{default:n(()=>[o(F,{value:a.swapForm.timeoutMs,"onUpdate:value":s[15]||(s[15]=t=>a.swapForm.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"]),h(" ── Message modal ─────────────────────────────────────────── "),o(I,{open:a.showMessageModal,"onUpdate:open":s[21]||(s[21]=t=>a.showMessageModal=t),title:e.$t("crosschain.message_modal.title"),"confirm-loading":a.sending,width:520,"ok-text":e.$t("crosschain.message_modal.ok"),"cancel-text":e.$t("crosschain.message_modal.cancel"),onOk:a.sendMessage,onCancel:a.resetMessageForm},{default:n(()=>[o(P,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:n(()=>[o(c,{label:e.$t("crosschain.message_modal.fromChain"),required:""},{default:n(()=>[o(u,{value:a.messageForm.fromChain,"onUpdate:value":s[17]||(s[17]=t=>a.messageForm.fromChain=t),placeholder:e.$t("crosschain.message_modal.fromChainPlaceholder")},{default:n(()=>[(d(!0),p(w,null,T(a.chains,t=>(d(),k(f,{key:t.id,value:t.id},{default:n(()=>[b(i(t.name),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value","placeholder"])]),_:1},8,["label"]),o(c,{label:e.$t("crosschain.message_modal.toChain"),required:""},{default:n(()=>[o(u,{value:a.messageForm.toChain,"onUpdate:value":s[18]||(s[18]=t=>a.messageForm.toChain=t),placeholder:e.$t("crosschain.message_modal.toChainPlaceholder")},{default:n(()=>[(d(!0),p(w,null,T(a.chains,t=>(d(),k(f,{key:t.id,value:t.id,disabled:t.id===a.messageForm.fromChain},{default:n(()=>[b(i(t.name),1)]),_:2},1032,["value","disabled"]))),128))]),_:1},8,["value","placeholder"])]),_:1},8,["label"]),o(c,{label:e.$t("crosschain.message_modal.payload")},{default:n(()=>[o(Z,{value:a.messageForm.payload,"onUpdate:value":s[19]||(s[19]=t=>a.messageForm.payload=t),"auto-size":{minRows:3,maxRows:8}},null,8,["value"])]),_:1},8,["label"]),o(c,{label:e.$t("crosschain.message_modal.contract")},{default:n(()=>[o(S,{value:a.messageForm.contract,"onUpdate:value":s[20]||(s[20]=t=>a.messageForm.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"]),h(" ── Fee estimate modal ────────────────────────────────────── "),o(I,{open:a.showFeeModal,"onUpdate:open":s[25]||(s[25]=t=>a.showFeeModal=t),title:e.$t("crosschain.fee_modal.title"),"confirm-loading":a.estimating,width:480,"ok-text":e.$t("crosschain.fee_modal.ok"),"cancel-text":e.$t("crosschain.fee_modal.cancel"),onOk:a.estimateFee},{default:n(()=>[o(P,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:n(()=>[o(c,{label:e.$t("crosschain.fee_modal.fromChain"),required:""},{default:n(()=>[o(u,{value:a.feeForm.fromChain,"onUpdate:value":s[22]||(s[22]=t=>a.feeForm.fromChain=t)},{default:n(()=>[(d(!0),p(w,null,T(a.chains,t=>(d(),k(f,{key:t.id,value:t.id},{default:n(()=>[b(i(t.name),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),_:1},8,["label"]),o(c,{label:e.$t("crosschain.fee_modal.toChain"),required:""},{default:n(()=>[o(u,{value:a.feeForm.toChain,"onUpdate:value":s[23]||(s[23]=t=>a.feeForm.toChain=t)},{default:n(()=>[(d(!0),p(w,null,T(a.chains,t=>(d(),k(f,{key:t.id,value:t.id,disabled:t.id===a.feeForm.fromChain},{default:n(()=>[b(i(t.name),1)]),_:2},1032,["value","disabled"]))),128))]),_:1},8,["value"])]),_:1},8,["label"]),o(c,{label:e.$t("crosschain.fee_modal.amount"),required:""},{default:n(()=>[o(F,{value:a.feeForm.amount,"onUpdate:value":s[24]||(s[24]=t=>a.feeForm.amount=t),min:0,precision:6,style:{width:"100%"}},null,8,["value"])]),_:1},8,["label"])]),_:1}),a.feeResult?(d(),k(A,{key:0,size:"small",style:{background:"var(--bg-base)","margin-top":"8px"}},{default:n(()=>[o(O,{title:e.$t("crosschain.fee_modal.resultTitle"),value:a.feeResult.fee,precision:4,suffix:a.feeResult.currency,"value-style":{color:"#1677ff"}},null,8,["title","value","suffix"]),y("div",pa,[y("div",null,i(e.$t("crosschain.fee_modal.sourceFee",{fee:a.feeResult.breakdown.sourceFee,currency:a.feeResult.currency})),1),y("div",null,i(e.$t("crosschain.fee_modal.destFee",{fee:a.feeResult.breakdown.destFee,currency:a.feeResult.currency})),1),y("div",null,i(e.$t("crosschain.fee_modal.bridgeFee",{fee:a.feeResult.breakdown.bridgeFee,currency:a.feeResult.currency})),1)])]),_:1})):h("v-if",!0)]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"])])}const Ca=xe(qe,[["render",ga],["__scopeId","data-v-00c68d45"],["__file","/tmp/cc-web-panel-XbotGX/repo/packages/web-panel/src/views/Crosschain.vue"]]);export{Ca as default};
|
|
1
|
+
import{I as v,J as p,U as y,R as i,c as o,K as n,V as h,S as k,o as te,a as X,b as Q,r as C,P as d,Q as b,F as w,Z as T}from"./vendor-BvqAck49.js";import{_ as xe,u as se,b as oe,d as _}from"./index-C2N_-y_W.js";import{s as Fe}from"./community-parser-CO25nZFt.js";import{aU as Se,aC as Ae,aB as Oe,b0 as Me,aG as ze,b1 as Te,t as Ue,as as Re,R as je}from"./icons-DP3uiYxy.js";function H(e){const s=Fe(e);if(!s)return null;try{return JSON.parse(s)}catch{}const l=s.match(/\{[\s\S]*\}|\[[\s\S]*\]/);if(!l)return null;try{return JSON.parse(l[0])}catch{return null}}function x(e,s=0){return typeof e=="number"&&Number.isFinite(e)?e:s}function Ne(e,s=0){if(!e||typeof e!="object")return null;const l=e.id||"";return l?{key:l,id:l,name:String(e.name||l),symbol:String(e.symbol||""),chainId:x(e.chainId??e.chain_id,0),_idx:s}:null}function ne(e){const s=H(e);return Array.isArray(s)?s.map(Ne).filter(Boolean):[]}function Be(e,s=0){if(!e||typeof e!="object")return null;const l=e.id||"";return l?{key:l,id:l,fromChain:e.fromChain??e.from_chain??"",toChain:e.toChain??e.to_chain??"",asset:String(e.asset||"native"),amount:x(e.amount,0),senderAddress:e.senderAddress??e.sender_address??"",recipientAddress:e.recipientAddress??e.recipient_address??"",lockTxHash:e.lockTxHash??e.lock_tx_hash??"",mintTxHash:e.mintTxHash??e.mint_tx_hash??"",status:String(e.status||"pending").toLowerCase(),feeAmount:x(e.feeAmount??e.fee_amount,0),feeChain:e.feeChain??e.fee_chain??"",errorMessage:e.errorMessage??e.error_message??"",createdAt:e.createdAt??e.created_at??null,completedAt:e.completedAt??e.completed_at??null,_idx:s}:null}function re(e){const s=H(e);return Array.isArray(s)?s.map(Be).filter(Boolean):[]}function Le(e,s=0){if(!e||typeof e!="object")return null;const l=e.id||"";return l?{key:l,id:l,fromChain:e.fromChain??e.from_chain??"",toChain:e.toChain??e.to_chain??"",fromAsset:e.fromAsset??e.from_asset??"native",toAsset:e.toAsset??e.to_asset??"native",amount:x(e.amount,0),counterpartyAddress:e.counterpartyAddress??e.counterparty_address??"",hashLock:e.hashLock??e.hash_lock??"",expiresAt:e.expiresAt??e.expires_at??null,status:String(e.status||"initiated").toLowerCase(),claimTxHash:e.claimTxHash??e.claim_tx_hash??"",refundTxHash:e.refundTxHash??e.refund_tx_hash??"",createdAt:e.createdAt??e.created_at??null,_idx:s}:null}function le(e){const s=H(e);return Array.isArray(s)?s.map(Le).filter(Boolean):[]}function Pe(e,s=0){if(!e||typeof e!="object")return null;const l=e.id||"";return l?{key:l,id:l,fromChain:e.fromChain??e.from_chain??"",toChain:e.toChain??e.to_chain??"",payload:String(e.payload||""),targetContract:e.targetContract??e.target_contract??"",sourceTxHash:e.sourceTxHash??e.source_tx_hash??"",destinationTxHash:e.destinationTxHash??e.destination_tx_hash??"",status:String(e.status||"pending").toLowerCase(),retries:x(e.retries,0),createdAt:e.createdAt??e.created_at??null,deliveredAt:e.deliveredAt??e.delivered_at??null,_idx:s}:null}function ie(e){const s=H(e);return Array.isArray(s)?s.map(Pe).filter(Boolean):[]}const Ie={bridges:{total:0,byStatus:{},totalVolume:0,totalFees:0},swaps:{total:0,byStatus:{}},messages:{total:0,byStatus:{}}};function de(e){const s=JSON.parse(JSON.stringify(Ie)),l=H(e);return!l||typeof l!="object"||Array.isArray(l)||(l.bridges&&typeof l.bridges=="object"&&(s.bridges.total=x(l.bridges.total,0),s.bridges.totalVolume=x(l.bridges.totalVolume??l.bridges.total_volume,0),s.bridges.totalFees=x(l.bridges.totalFees??l.bridges.total_fees,0),l.bridges.byStatus&&typeof l.bridges.byStatus=="object"&&(s.bridges.byStatus={...l.bridges.byStatus})),l.swaps&&typeof l.swaps=="object"&&(s.swaps.total=x(l.swaps.total,0),l.swaps.byStatus&&typeof l.swaps.byStatus=="object"&&(s.swaps.byStatus={...l.swaps.byStatus})),l.messages&&typeof l.messages=="object"&&(s.messages.total=x(l.messages.total,0),l.messages.byStatus&&typeof l.messages.byStatus=="object"&&(s.messages.byStatus={...l.messages.byStatus}))),s}function ce(e){const s=H(e);return!s||typeof s!="object"||Array.isArray(s)?null:{fee:x(s.fee,0),breakdown:{sourceFee:x(s?.breakdown?.sourceFee??s?.breakdown?.source_fee,0),destFee:x(s?.breakdown?.destFee??s?.breakdown?.dest_fee,0),bridgeFee:x(s?.breakdown?.bridgeFee??s?.breakdown?.bridge_fee,0)},currency:String(s.currency||"USD")}}function He(e){if(e==null||e==="")return"—";const s=typeof e=="number"?new Date(e):new Date(String(e));return isNaN(s.getTime())?String(e):s.toLocaleString("zh-CN",{hour12:!1})}const qe={__name:"Crosschain",setup(e,{expose:s}){s();const l=se(),{t:a}=oe(),K=C(!1),W=C(!1),R=C(!1),j=C(!1),q=C(!1),V=C([]),D=C([]),O=C([]),A=C([]),U=C({bridges:{total:0,byStatus:{},totalVolume:0,totalFees:0},swaps:{total:0,byStatus:{}},messages:{total:0,byStatus:{}}}),L=C("bridges"),M=C(!1),N=C(!1),B=C(!1),G=C(!1),f=X({fromChain:"",toChain:"",amount:null,asset:"",sender:"",recipient:""}),u=X({fromChain:"",toChain:"",amount:null,fromAsset:"",toAsset:"",counterparty:"",timeoutMs:null}),c=X({fromChain:"",toChain:"",payload:"",contract:""}),F=X({fromChain:"",toChain:"",amount:null}),S=C(null),P=Q(()=>[{title:a("crosschain.bridgeCols.route"),key:"route"},{title:a("crosschain.bridgeCols.amount"),key:"amount",width:"160px"},{title:a("crosschain.bridgeCols.fee"),key:"fee",width:"100px"},{title:a("crosschain.bridgeCols.status"),key:"status",width:"110px"},{title:a("crosschain.bridgeCols.createdAt"),key:"createdAt",width:"160px"}]),I=Q(()=>[{title:a("crosschain.swapCols.route"),key:"route"},{title:a("crosschain.swapCols.amount"),key:"amount",width:"110px"},{title:a("crosschain.swapCols.hashLock"),key:"hashLock",width:"160px"},{title:a("crosschain.swapCols.status"),key:"status",width:"120px"},{title:a("crosschain.swapCols.expiresAt"),key:"expiresAt",width:"160px"}]),Z=Q(()=>[{title:a("crosschain.messageCols.route"),key:"route",width:"220px"},{title:a("crosschain.messageCols.payload"),key:"payload"},{title:a("crosschain.messageCols.retries"),key:"retries",width:"80px"},{title:a("crosschain.messageCols.status"),key:"status",width:"110px"},{title:a("crosschain.messageCols.createdAt"),key:"createdAt",width:"160px"}]),t={ethereum:"blue",polygon:"purple",bsc:"gold",arbitrum:"cyan",solana:"magenta"};function m(r){return t[r]||"default"}function ue(r){const g=V.value.find(z=>z.id===r);return g?g.name:r||"—"}function me(r){const g=`crosschain.statusLabels.${r}`,z=a(g);return z===g?r:z}function fe(r){return{pending:"default",locked:"processing",minted:"cyan",completed:"green",refunded:"orange",failed:"red"}[r]||"default"}function he(r){return{initiated:"default",hash_locked:"processing",claimed:"green",refunded:"orange",expired:"red"}[r]||"default"}function pe(r){return{pending:"default",sent:"processing",delivered:"green",failed:"red"}[r]||"default"}function ge(r,g){return r?r.length>g?r.slice(0,g)+"...":r:""}function ye({key:r}){r==="bridge"?M.value=!0:r==="swap"?N.value=!0:r==="message"&&(B.value=!0)}async function J(){K.value=!0;try{const[r,g,z,ke,we]=await Promise.all([l.execute("crosschain chains --json",8e3).catch(()=>({output:""})),l.execute("crosschain bridges --limit 200 --json",1e4).catch(()=>({output:""})),l.execute("crosschain swaps --limit 200 --json",1e4).catch(()=>({output:""})),l.execute("crosschain messages --limit 200 --json",1e4).catch(()=>({output:""})),l.execute("crosschain stats --json",8e3).catch(()=>({output:""}))]);V.value=ne(r.output),D.value=re(g.output),O.value=le(z.output),A.value=ie(ke.output),U.value=de(we.output)}catch(r){_.error(a("crosschain.msg.loadFailed")+": "+(r?.message||r))}finally{K.value=!1}}function E(r){return!r.fromChain||!r.toChain?(_.warning(a("crosschain.msg.pairEmpty")),!1):r.fromChain===r.toChain?(_.warning(a("crosschain.msg.pairSame")),!1):!0}async function be(){if(E(f)){if(!f.amount||f.amount<=0){_.warning(a("crosschain.msg.amountInvalid"));return}W.value=!0;try{const r=[`crosschain bridge ${f.fromChain} ${f.toChain} ${f.amount}`];f.asset.trim()&&r.push(`--asset "${f.asset.trim().replace(/"/g,'\\"')}"`),f.sender.trim()&&r.push(`--sender "${f.sender.trim().replace(/"/g,'\\"')}"`),f.recipient.trim()&&r.push(`--recipient "${f.recipient.trim().replace(/"/g,'\\"')}"`),r.push("--json");const{output:g}=await l.execute(r.join(" "),15e3);if(/error|failed|失败|unsupported/i.test(g)&&!/"bridgeId"/.test(g)){_.error(a("crosschain.msg.bridgeFailed")+": "+g.slice(0,120));return}_.success(a("crosschain.msg.bridgeSuccess")),M.value=!1,Y(),L.value="bridges",await J()}catch(r){_.error(a("crosschain.msg.bridgeFailed")+": "+(r?.message||r))}finally{W.value=!1}}}async function ve(){if(E(u)){if(!u.amount||u.amount<=0){_.warning(a("crosschain.msg.amountInvalid"));return}R.value=!0;try{const r=[`crosschain swap ${u.fromChain} ${u.toChain} ${u.amount}`];u.fromAsset.trim()&&r.push(`--from-asset "${u.fromAsset.trim().replace(/"/g,'\\"')}"`),u.toAsset.trim()&&r.push(`--to-asset "${u.toAsset.trim().replace(/"/g,'\\"')}"`),u.counterparty.trim()&&r.push(`--counterparty "${u.counterparty.trim().replace(/"/g,'\\"')}"`),u.timeoutMs!=null&&r.push(`--timeout ${u.timeoutMs}`),r.push("--json");const{output:g}=await l.execute(r.join(" "),15e3);if(/error|failed|失败|unsupported/i.test(g)&&!/"swapId"/.test(g)){_.error(a("crosschain.msg.swapFailed")+": "+g.slice(0,120));return}_.success(a("crosschain.msg.swapSuccess")),N.value=!1,$(),L.value="swaps",await J()}catch(r){_.error(a("crosschain.msg.swapFailed")+": "+(r?.message||r))}finally{R.value=!1}}}async function _e(){if(E(c)){j.value=!0;try{const r=[`crosschain send ${c.fromChain} ${c.toChain}`];c.payload.trim()&&r.push(`--payload "${c.payload.trim().replace(/"/g,'\\"')}"`),c.contract.trim()&&r.push(`--contract "${c.contract.trim().replace(/"/g,'\\"')}"`),r.push("--json");const{output:g}=await l.execute(r.join(" "),12e3);if(/error|failed|失败|unsupported/i.test(g)&&!/"messageId"/.test(g)){_.error(a("crosschain.msg.sendFailed")+": "+g.slice(0,120));return}_.success(a("crosschain.msg.sendSuccess")),B.value=!1,ee(),L.value="messages",await J()}catch(r){_.error(a("crosschain.msg.sendFailed")+": "+(r?.message||r))}finally{j.value=!1}}}async function Ce(){if(E(F)){if(!F.amount||F.amount<=0){_.warning(a("crosschain.msg.amountInvalid"));return}q.value=!0,S.value=null;try{const r=`crosschain estimate-fee ${F.fromChain} ${F.toChain} ${F.amount} --json`,{output:g}=await l.execute(r,8e3),z=ce(g);if(!z){_.error(a("crosschain.msg.feeFailed")+": "+g.slice(0,120));return}S.value=z}catch(r){_.error(a("crosschain.msg.feeFailed")+": "+(r?.message||r))}finally{q.value=!1}}}function Y(){f.fromChain="",f.toChain="",f.amount=null,f.asset="",f.sender="",f.recipient=""}function $(){u.fromChain="",u.toChain="",u.amount=null,u.fromAsset="",u.toAsset="",u.counterparty="",u.timeoutMs=null}function ee(){c.fromChain="",c.toChain="",c.payload="",c.contract=""}te(J);const ae={ws:l,t:a,loading:K,bridging:W,swapping:R,sending:j,estimating:q,chains:V,bridges:D,swaps:O,messages:A,stats:U,activeTab:L,showBridgeModal:M,showSwapModal:N,showMessageModal:B,showFeeModal:G,bridgeForm:f,swapForm:u,messageForm:c,feeForm:F,feeResult:S,bridgeColumns:P,swapColumns:I,messageColumns:Z,CHAIN_COLORS:t,chainColor:m,chainName:ue,statusLabel:me,bridgeStatusColor:fe,swapStatusColor:he,messageStatusColor:pe,truncate:ge,handleNewClick:ye,loadAll:J,validatePair:E,initiateBridge:be,initiateSwap:ve,sendMessage:_e,estimateFee:Ce,resetBridgeForm:Y,resetSwapForm:$,resetMessageForm:ee,ref:C,computed:Q,onMounted:te,reactive:X,get ReloadOutlined(){return je},get PlusOutlined(){return Re},get SwapOutlined(){return Ue},get InteractionOutlined(){return Te},get MailOutlined(){return ze},get CalculatorOutlined(){return Me},get LinkOutlined(){return Oe},get DollarOutlined(){return Ae},get ArrowRightOutlined(){return Se},get message(){return _},get useI18n(){return oe},get useWsStore(){return se},get parseChains(){return ne},get parseBridges(){return re},get parseSwaps(){return le},get parseMessages(){return ie},get parseStats(){return de},get parseFeeEstimate(){return ce},get formatXChainTime(){return He}};return Object.defineProperty(ae,"__isScriptSetup",{enumerable:!1,value:!0}),ae}},Ve={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},De={class:"page-title"},Je={class:"page-sub"},Ee={style:{opacity:"0.7"}},Xe={key:0,style:{opacity:"0.55","font-size":"10px","margin-left":"4px"}},Ke={style:{color:"var(--text-primary)"}},We={style:{color:"var(--text-primary)"}},Qe={style:{color:"#722ed1","font-weight":"500"}},Ge={style:{color:"var(--text-secondary)","margin-left":"4px","font-size":"11px"}},Ze={key:2,style:{color:"var(--text-secondary)","font-size":"12px"}},Ye={key:4,style:{color:"var(--text-secondary)","font-size":"11px"}},$e={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},ea={style:{color:"var(--text-primary)"}},aa={style:{color:"var(--text-secondary)","font-size":"11px",margin:"0 4px"}},ta={style:{color:"var(--text-primary)"}},sa={style:{color:"var(--text-secondary)","font-size":"11px","margin-left":"4px"}},oa={key:1,style:{color:"#722ed1","font-weight":"500"}},na={key:0,style:{color:"var(--text-secondary)","font-family":"monospace","font-size":"11px"}},ra={key:1,style:{color:"var(--text-muted)"}},la={key:4,style:{color:"var(--text-secondary)","font-size":"11px"}},ia={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},da={style:{color:"var(--text-primary)"}},ca={style:{color:"var(--text-primary)"}},ua={key:1,style:{color:"var(--text-secondary)","font-size":"12px"}},ma={key:1,style:{color:"var(--text-muted)"}},fa={key:4,style:{color:"var(--text-secondary)","font-size":"11px"}},ha={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},pa={style:{"margin-top":"12px","font-size":"12px",color:"var(--text-secondary)"}};function ga(e,s,l,a,K,W){const R=v("a-button"),j=v("a-menu-item"),q=v("a-menu"),V=v("a-dropdown"),D=v("a-space"),O=v("a-statistic"),A=v("a-card"),U=v("a-col"),L=v("a-row"),M=v("a-tag"),N=v("a-table"),B=v("a-tab-pane"),G=v("a-tabs"),f=v("a-select-option"),u=v("a-select"),c=v("a-form-item"),F=v("a-input-number"),S=v("a-input"),P=v("a-form"),I=v("a-modal"),Z=v("a-textarea");return d(),p("div",null,[y("div",Ve,[y("div",null,[y("h2",De,i(e.$t("crosschain.title")),1),y("p",Je,i(e.$t("crosschain.subtitle")),1)]),o(D,null,{default:n(()=>[o(R,{loading:a.loading,onClick:a.loadAll},{icon:n(()=>[o(a.ReloadOutlined)]),default:n(()=>[b(" "+i(e.$t("crosschain.refresh")),1)]),_:1},8,["loading"]),o(V,{trigger:["click"]},{overlay:n(()=>[o(q,{onClick:a.handleNewClick},{default:n(()=>[o(j,{key:"bridge"},{default:n(()=>[o(a.SwapOutlined),b(" "+i(e.$t("crosschain.actions.bridge")),1)]),_:1}),o(j,{key:"swap"},{default:n(()=>[o(a.InteractionOutlined),b(" "+i(e.$t("crosschain.actions.swap")),1)]),_:1}),o(j,{key:"message"},{default:n(()=>[o(a.MailOutlined),b(" "+i(e.$t("crosschain.actions.message")),1)]),_:1})]),_:1})]),default:n(()=>[o(R,{type:"primary"},{icon:n(()=>[o(a.PlusOutlined)]),default:n(()=>[b(" "+i(e.$t("crosschain.newDropdown")),1)]),_:1})]),_:1}),o(R,{onClick:s[0]||(s[0]=t=>a.showFeeModal=!0)},{icon:n(()=>[o(a.CalculatorOutlined)]),default:n(()=>[b(" "+i(e.$t("crosschain.feeEstimate")),1)]),_:1})]),_:1})]),h(" Stats overview "),o(L,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:n(()=>[o(U,{xs:12,sm:8,lg:5},{default:n(()=>[o(A,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:n(()=>[o(O,{title:e.$t("crosschain.stats.chains"),value:a.chains.length,"value-style":{color:"#1677ff",fontSize:"20px"}},{prefix:n(()=>[o(a.LinkOutlined)]),_:1},8,["title","value"])]),_:1})]),_:1}),o(U,{xs:12,sm:8,lg:5},{default:n(()=>[o(A,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:n(()=>[o(O,{title:e.$t("crosschain.stats.bridges"),value:a.stats.bridges.total,"value-style":{color:"#52c41a",fontSize:"20px"}},{prefix:n(()=>[o(a.SwapOutlined)]),_:1},8,["title","value"])]),_:1})]),_:1}),o(U,{xs:12,sm:8,lg:5},{default:n(()=>[o(A,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:n(()=>[o(O,{title:e.$t("crosschain.stats.swaps"),value:a.stats.swaps.total,"value-style":{color:"#722ed1",fontSize:"20px"}},{prefix:n(()=>[o(a.InteractionOutlined)]),_:1},8,["title","value"])]),_:1})]),_:1}),o(U,{xs:12,sm:8,lg:5},{default:n(()=>[o(A,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:n(()=>[o(O,{title:e.$t("crosschain.stats.messages"),value:a.stats.messages.total,"value-style":{color:"#faad14",fontSize:"20px"}},{prefix:n(()=>[o(a.MailOutlined)]),_:1},8,["title","value"])]),_:1})]),_:1}),o(U,{xs:24,sm:8,lg:4},{default:n(()=>[o(A,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:n(()=>[o(O,{title:e.$t("crosschain.stats.volume"),value:a.stats.bridges.totalVolume,precision:2,"value-style":{color:"#13c2c2",fontSize:"20px"}},{prefix:n(()=>[o(a.DollarOutlined)]),_:1},8,["title","value"])]),_:1})]),_:1})]),_:1}),h(" Chain catalogue "),a.chains.length?(d(),k(A,{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:n(()=>[o(D,{size:[12,8],wrap:""},{default:n(()=>[(d(!0),p(w,null,T(a.chains,t=>(d(),k(M,{key:t.id,color:a.chainColor(t.id)},{default:n(()=>[b(i(t.name)+" ",1),y("span",Ee,"("+i(t.symbol)+")",1),t.chainId>0?(d(),p("span",Xe,"#"+i(t.chainId),1)):h("v-if",!0)]),_:2},1032,["color"]))),128))]),_:1})]),_:1},8,["title"])):h("v-if",!0),h(" Tabs "),o(G,{activeKey:a.activeTab,"onUpdate:activeKey":s[1]||(s[1]=t=>a.activeTab=t),class:"xchain-tabs"},{default:n(()=>[h(" ── Bridges tab ───────────────────────────────────────────── "),o(B,{key:"bridges",tab:e.$t("crosschain.tabs.bridges")},{default:n(()=>[o(N,{columns:a.bridgeColumns,"data-source":a.bridges,pagination:{pageSize:20,showTotal:t=>e.$t("crosschain.table.totalSuffix",{n:t})},size:"small",loading:a.loading,style:{background:"var(--bg-card)"}},{bodyCell:n(({column:t,record:m})=>[t.key==="route"?(d(),p(w,{key:0},[y("span",Ke,i(a.chainName(m.fromChain)),1),o(a.ArrowRightOutlined,{style:{margin:"0 6px",color:"var(--text-secondary)","font-size":"11px"}}),y("span",We,i(a.chainName(m.toChain)),1)],64)):h("v-if",!0),t.key==="amount"?(d(),p(w,{key:1},[y("span",Qe,i(m.amount),1),y("span",Ge,i(m.asset),1)],64)):h("v-if",!0),t.key==="fee"?(d(),p("span",Ze,i(m.feeAmount),1)):h("v-if",!0),t.key==="status"?(d(),k(M,{key:3,color:a.bridgeStatusColor(m.status)},{default:n(()=>[b(i(a.statusLabel(m.status)),1)]),_:2},1032,["color"])):h("v-if",!0),t.key==="createdAt"?(d(),p("span",Ye,i(a.formatXChainTime(m.createdAt)),1)):h("v-if",!0)]),emptyText:n(()=>[y("div",$e,[o(a.SwapOutlined,{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),b(" "+i(e.$t("crosschain.table.emptyBridges")),1)])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"]),h(" ── Swaps tab ─────────────────────────────────────────────── "),o(B,{key:"swaps",tab:e.$t("crosschain.tabs.swaps")},{default:n(()=>[o(N,{columns:a.swapColumns,"data-source":a.swaps,pagination:{pageSize:20,showTotal:t=>e.$t("crosschain.table.totalSuffix",{n:t})},size:"small",loading:a.loading,style:{background:"var(--bg-card)"}},{bodyCell:n(({column:t,record:m})=>[t.key==="route"?(d(),p(w,{key:0},[y("span",ea,i(a.chainName(m.fromChain)),1),y("span",aa,"("+i(m.fromAsset)+")",1),o(a.ArrowRightOutlined,{style:{margin:"0 4px",color:"var(--text-secondary)","font-size":"11px"}}),y("span",ta,i(a.chainName(m.toChain)),1),y("span",sa,"("+i(m.toAsset)+")",1)],64)):h("v-if",!0),t.key==="amount"?(d(),p("span",oa,i(m.amount),1)):h("v-if",!0),t.key==="hashLock"?(d(),p(w,{key:2},[m.hashLock?(d(),p("span",na,i(m.hashLock.slice(0,14))+"... ",1)):(d(),p("span",ra,"—"))],64)):h("v-if",!0),t.key==="status"?(d(),k(M,{key:3,color:a.swapStatusColor(m.status)},{default:n(()=>[b(i(a.statusLabel(m.status)),1)]),_:2},1032,["color"])):h("v-if",!0),t.key==="expiresAt"?(d(),p("span",la,i(a.formatXChainTime(m.expiresAt)),1)):h("v-if",!0)]),emptyText:n(()=>[y("div",ia,[o(a.InteractionOutlined,{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),b(" "+i(e.$t("crosschain.table.emptySwaps")),1)])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"]),h(" ── Messages tab ──────────────────────────────────────────── "),o(B,{key:"messages",tab:e.$t("crosschain.tabs.messages")},{default:n(()=>[o(N,{columns:a.messageColumns,"data-source":a.messages,pagination:{pageSize:20,showTotal:t=>e.$t("crosschain.table.totalSuffix",{n:t})},size:"small",loading:a.loading,style:{background:"var(--bg-card)"}},{bodyCell:n(({column:t,record:m})=>[t.key==="route"?(d(),p(w,{key:0},[y("span",da,i(a.chainName(m.fromChain)),1),o(a.ArrowRightOutlined,{style:{margin:"0 6px",color:"var(--text-secondary)","font-size":"11px"}}),y("span",ca,i(a.chainName(m.toChain)),1)],64)):h("v-if",!0),t.key==="payload"?(d(),p("span",ua,i(a.truncate(m.payload,60)||"—"),1)):h("v-if",!0),t.key==="retries"?(d(),p(w,{key:2},[m.retries>0?(d(),k(M,{key:0,color:"orange",style:{"font-size":"11px"}},{default:n(()=>[b(i(e.$t("crosschain.table.retrySuffix",{n:m.retries})),1)]),_:2},1024)):(d(),p("span",ma,"—"))],64)):h("v-if",!0),t.key==="status"?(d(),k(M,{key:3,color:a.messageStatusColor(m.status)},{default:n(()=>[b(i(a.statusLabel(m.status)),1)]),_:2},1032,["color"])):h("v-if",!0),t.key==="createdAt"?(d(),p("span",fa,i(a.formatXChainTime(m.createdAt)),1)):h("v-if",!0)]),emptyText:n(()=>[y("div",ha,[o(a.MailOutlined,{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),b(" "+i(e.$t("crosschain.table.emptyMessages")),1)])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"])]),_:1},8,["activeKey"]),h(" ── Bridge modal ──────────────────────────────────────────── "),o(I,{open:a.showBridgeModal,"onUpdate:open":s[8]||(s[8]=t=>a.showBridgeModal=t),title:e.$t("crosschain.bridge_modal.title"),"confirm-loading":a.bridging,width:540,"ok-text":e.$t("crosschain.bridge_modal.ok"),"cancel-text":e.$t("crosschain.bridge_modal.cancel"),onOk:a.initiateBridge,onCancel:a.resetBridgeForm},{default:n(()=>[o(P,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:n(()=>[o(c,{label:e.$t("crosschain.bridge_modal.fromChain"),required:""},{default:n(()=>[o(u,{value:a.bridgeForm.fromChain,"onUpdate:value":s[2]||(s[2]=t=>a.bridgeForm.fromChain=t),placeholder:e.$t("crosschain.bridge_modal.fromChainPlaceholder")},{default:n(()=>[(d(!0),p(w,null,T(a.chains,t=>(d(),k(f,{key:t.id,value:t.id},{default:n(()=>[b(i(t.name),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value","placeholder"])]),_:1},8,["label"]),o(c,{label:e.$t("crosschain.bridge_modal.toChain"),required:""},{default:n(()=>[o(u,{value:a.bridgeForm.toChain,"onUpdate:value":s[3]||(s[3]=t=>a.bridgeForm.toChain=t),placeholder:e.$t("crosschain.bridge_modal.toChainPlaceholder")},{default:n(()=>[(d(!0),p(w,null,T(a.chains,t=>(d(),k(f,{key:t.id,value:t.id,disabled:t.id===a.bridgeForm.fromChain},{default:n(()=>[b(i(t.name),1)]),_:2},1032,["value","disabled"]))),128))]),_:1},8,["value","placeholder"])]),_:1},8,["label"]),o(c,{label:e.$t("crosschain.bridge_modal.amount"),required:""},{default:n(()=>[o(F,{value:a.bridgeForm.amount,"onUpdate:value":s[4]||(s[4]=t=>a.bridgeForm.amount=t),min:0,precision:6,style:{width:"100%"}},null,8,["value"])]),_:1},8,["label"]),o(c,{label:e.$t("crosschain.bridge_modal.asset")},{default:n(()=>[o(S,{value:a.bridgeForm.asset,"onUpdate:value":s[5]||(s[5]=t=>a.bridgeForm.asset=t),placeholder:e.$t("crosschain.bridge_modal.assetPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),o(c,{label:e.$t("crosschain.bridge_modal.sender")},{default:n(()=>[o(S,{value:a.bridgeForm.sender,"onUpdate:value":s[6]||(s[6]=t=>a.bridgeForm.sender=t),placeholder:e.$t("crosschain.bridge_modal.senderPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),o(c,{label:e.$t("crosschain.bridge_modal.recipient")},{default:n(()=>[o(S,{value:a.bridgeForm.recipient,"onUpdate:value":s[7]||(s[7]=t=>a.bridgeForm.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"]),h(" ── Swap modal ────────────────────────────────────────────── "),o(I,{open:a.showSwapModal,"onUpdate:open":s[16]||(s[16]=t=>a.showSwapModal=t),title:e.$t("crosschain.swap_modal.title"),"confirm-loading":a.swapping,width:540,"ok-text":e.$t("crosschain.swap_modal.ok"),"cancel-text":e.$t("crosschain.swap_modal.cancel"),onOk:a.initiateSwap,onCancel:a.resetSwapForm},{default:n(()=>[o(P,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:n(()=>[o(c,{label:e.$t("crosschain.swap_modal.fromChain"),required:""},{default:n(()=>[o(u,{value:a.swapForm.fromChain,"onUpdate:value":s[9]||(s[9]=t=>a.swapForm.fromChain=t),placeholder:e.$t("crosschain.swap_modal.fromChainPlaceholder")},{default:n(()=>[(d(!0),p(w,null,T(a.chains,t=>(d(),k(f,{key:t.id,value:t.id},{default:n(()=>[b(i(t.name),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value","placeholder"])]),_:1},8,["label"]),o(c,{label:e.$t("crosschain.swap_modal.toChain"),required:""},{default:n(()=>[o(u,{value:a.swapForm.toChain,"onUpdate:value":s[10]||(s[10]=t=>a.swapForm.toChain=t),placeholder:e.$t("crosschain.swap_modal.toChainPlaceholder")},{default:n(()=>[(d(!0),p(w,null,T(a.chains,t=>(d(),k(f,{key:t.id,value:t.id,disabled:t.id===a.swapForm.fromChain},{default:n(()=>[b(i(t.name),1)]),_:2},1032,["value","disabled"]))),128))]),_:1},8,["value","placeholder"])]),_:1},8,["label"]),o(c,{label:e.$t("crosschain.swap_modal.amount"),required:""},{default:n(()=>[o(F,{value:a.swapForm.amount,"onUpdate:value":s[11]||(s[11]=t=>a.swapForm.amount=t),min:0,precision:6,style:{width:"100%"}},null,8,["value"])]),_:1},8,["label"]),o(c,{label:e.$t("crosschain.swap_modal.fromAsset")},{default:n(()=>[o(S,{value:a.swapForm.fromAsset,"onUpdate:value":s[12]||(s[12]=t=>a.swapForm.fromAsset=t),placeholder:e.$t("crosschain.swap_modal.assetPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),o(c,{label:e.$t("crosschain.swap_modal.toAsset")},{default:n(()=>[o(S,{value:a.swapForm.toAsset,"onUpdate:value":s[13]||(s[13]=t=>a.swapForm.toAsset=t),placeholder:e.$t("crosschain.swap_modal.assetPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),o(c,{label:e.$t("crosschain.swap_modal.counterparty")},{default:n(()=>[o(S,{value:a.swapForm.counterparty,"onUpdate:value":s[14]||(s[14]=t=>a.swapForm.counterparty=t),placeholder:e.$t("crosschain.swap_modal.counterpartyPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),o(c,{label:e.$t("crosschain.swap_modal.timeoutMs")},{default:n(()=>[o(F,{value:a.swapForm.timeoutMs,"onUpdate:value":s[15]||(s[15]=t=>a.swapForm.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"]),h(" ── Message modal ─────────────────────────────────────────── "),o(I,{open:a.showMessageModal,"onUpdate:open":s[21]||(s[21]=t=>a.showMessageModal=t),title:e.$t("crosschain.message_modal.title"),"confirm-loading":a.sending,width:520,"ok-text":e.$t("crosschain.message_modal.ok"),"cancel-text":e.$t("crosschain.message_modal.cancel"),onOk:a.sendMessage,onCancel:a.resetMessageForm},{default:n(()=>[o(P,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:n(()=>[o(c,{label:e.$t("crosschain.message_modal.fromChain"),required:""},{default:n(()=>[o(u,{value:a.messageForm.fromChain,"onUpdate:value":s[17]||(s[17]=t=>a.messageForm.fromChain=t),placeholder:e.$t("crosschain.message_modal.fromChainPlaceholder")},{default:n(()=>[(d(!0),p(w,null,T(a.chains,t=>(d(),k(f,{key:t.id,value:t.id},{default:n(()=>[b(i(t.name),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value","placeholder"])]),_:1},8,["label"]),o(c,{label:e.$t("crosschain.message_modal.toChain"),required:""},{default:n(()=>[o(u,{value:a.messageForm.toChain,"onUpdate:value":s[18]||(s[18]=t=>a.messageForm.toChain=t),placeholder:e.$t("crosschain.message_modal.toChainPlaceholder")},{default:n(()=>[(d(!0),p(w,null,T(a.chains,t=>(d(),k(f,{key:t.id,value:t.id,disabled:t.id===a.messageForm.fromChain},{default:n(()=>[b(i(t.name),1)]),_:2},1032,["value","disabled"]))),128))]),_:1},8,["value","placeholder"])]),_:1},8,["label"]),o(c,{label:e.$t("crosschain.message_modal.payload")},{default:n(()=>[o(Z,{value:a.messageForm.payload,"onUpdate:value":s[19]||(s[19]=t=>a.messageForm.payload=t),"auto-size":{minRows:3,maxRows:8}},null,8,["value"])]),_:1},8,["label"]),o(c,{label:e.$t("crosschain.message_modal.contract")},{default:n(()=>[o(S,{value:a.messageForm.contract,"onUpdate:value":s[20]||(s[20]=t=>a.messageForm.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"]),h(" ── Fee estimate modal ────────────────────────────────────── "),o(I,{open:a.showFeeModal,"onUpdate:open":s[25]||(s[25]=t=>a.showFeeModal=t),title:e.$t("crosschain.fee_modal.title"),"confirm-loading":a.estimating,width:480,"ok-text":e.$t("crosschain.fee_modal.ok"),"cancel-text":e.$t("crosschain.fee_modal.cancel"),onOk:a.estimateFee},{default:n(()=>[o(P,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:n(()=>[o(c,{label:e.$t("crosschain.fee_modal.fromChain"),required:""},{default:n(()=>[o(u,{value:a.feeForm.fromChain,"onUpdate:value":s[22]||(s[22]=t=>a.feeForm.fromChain=t)},{default:n(()=>[(d(!0),p(w,null,T(a.chains,t=>(d(),k(f,{key:t.id,value:t.id},{default:n(()=>[b(i(t.name),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),_:1},8,["label"]),o(c,{label:e.$t("crosschain.fee_modal.toChain"),required:""},{default:n(()=>[o(u,{value:a.feeForm.toChain,"onUpdate:value":s[23]||(s[23]=t=>a.feeForm.toChain=t)},{default:n(()=>[(d(!0),p(w,null,T(a.chains,t=>(d(),k(f,{key:t.id,value:t.id,disabled:t.id===a.feeForm.fromChain},{default:n(()=>[b(i(t.name),1)]),_:2},1032,["value","disabled"]))),128))]),_:1},8,["value"])]),_:1},8,["label"]),o(c,{label:e.$t("crosschain.fee_modal.amount"),required:""},{default:n(()=>[o(F,{value:a.feeForm.amount,"onUpdate:value":s[24]||(s[24]=t=>a.feeForm.amount=t),min:0,precision:6,style:{width:"100%"}},null,8,["value"])]),_:1},8,["label"])]),_:1}),a.feeResult?(d(),k(A,{key:0,size:"small",style:{background:"var(--bg-base)","margin-top":"8px"}},{default:n(()=>[o(O,{title:e.$t("crosschain.fee_modal.resultTitle"),value:a.feeResult.fee,precision:4,suffix:a.feeResult.currency,"value-style":{color:"#1677ff"}},null,8,["title","value","suffix"]),y("div",pa,[y("div",null,i(e.$t("crosschain.fee_modal.sourceFee",{fee:a.feeResult.breakdown.sourceFee,currency:a.feeResult.currency})),1),y("div",null,i(e.$t("crosschain.fee_modal.destFee",{fee:a.feeResult.breakdown.destFee,currency:a.feeResult.currency})),1),y("div",null,i(e.$t("crosschain.fee_modal.bridgeFee",{fee:a.feeResult.breakdown.bridgeFee,currency:a.feeResult.currency})),1)])]),_:1})):h("v-if",!0)]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"])])}const Ca=xe(qe,[["render",ga],["__scopeId","data-v-00c68d45"],["__file","/tmp/cc-web-panel-qWJQO5/repo/packages/web-panel/src/views/Crosschain.vue"]]);export{Ca as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{I as d,P as u,S as b,K as a,c as l,Q as v,_ as pe,R as s,U as w,V as p,a0 as ye,r as c,w as ee,b as J,J as F,o as te}from"./vendor-BvqAck49.js";import{_ as de,u as B,b as ae,d as k}from"./index-
|
|
2
|
-
`),o=[];let e=null;for(const I of n){const g=I.trim();if(!g||g.startsWith("─")||g.startsWith("="))continue;const f=g.match(/(did:[a-z0-9]+:[A-Za-z0-9_-]+)/);if(f&&/^did:/.test(g)){e&&o.push(e);const y=f[1],_=g.match(/\(([^)]+)\)/),x=/\[default\]|默认|\*/.test(g);e={key:y,did:y,displayName:_?_[1]:"",publicKey:"",isDefault:x,createdAt:"",method:(y.split(":")[1]||"chainless").trim(),raw:null,_idx:o.length};continue}if(e){const y=g.match(/created\s*[::]\s*(.+)$/i);y&&(e.createdAt=y[1].trim())}}return e&&o.push(e),o}function ie(t){const n=G(t);if(!n||typeof n!="object"||Array.isArray(n))return null;const o=X(n);return o?(o.document=n.document||null,o):null}function oe(t){const n=G(t);if(n&&typeof n=="object"&&n.signature)return{did:n.did||"",message:n.message||"",signature:String(n.signature)};const e=(t||"").match(/Signature[::]\s*([a-f0-9]+)/i);return e?{did:"",message:"",signature:e[1]}:null}const Se={__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(t,{expose:n}){n();const o=t,e=B(),I=c(o.defaultEnvelopePath),g=c(o.defaultLandmarkPath),f=c(!1),y=c(null),_=c(""),x=J(()=>o.hint||"通过 cc serve 运行 cc mtc verify(多算法 dispatcher 同时支持 Ed25519 和 SLH-DSA-128F)。文件路径应指向本机磁盘上的 envelope 和 landmark JSON — 浏览器只把路径转给 cc serve,不上传文件内容。");ee(()=>o.open,D=>{D&&(I.value=o.defaultEnvelopePath||I.value,g.value=o.defaultLandmarkPath||g.value,y.value=null,_.value="")});async function O(){f.value=!0,y.value=null,_.value="";try{const D=I.value.trim().replace(/"/g,'\\"'),C=g.value.trim().replace(/"/g,'\\"'),{output:N}=await e.execute(`mtc verify "${D}" --landmark "${C}" --json`,12e3),P=le(N);if(!P.raw){_.value="验证命令未返回 JSON。请检查路径是否正确。";return}y.value=P}catch(D){_.value=`验证失败: ${D?.message||D}`}finally{f.value=!1}}const M={props:o,ws:e,envelopePath:I,landmarkPath:g,verifying:f,result:y,error:_,hintMessage:x,runVerify:O,ref:c,computed:J,watch:ee,get SafetyOutlined(){return se},get CheckCircleOutlined(){return _e},get CloseCircleOutlined(){return ge},get useWsStore(){return B},get parseVerifyResult(){return le}};return Object.defineProperty(M,"__isScriptSetup",{enumerable:!1,value:!0}),M}},xe={style:{"margin-left":"8px"}},Ce={class:"mono"},Ie={class:"mono"},Oe={class:"mono"},Me={class:"raw-pre"};function ze(t,n,o,e,I,g){const f=d("a-alert"),y=d("a-input"),_=d("a-form-item"),x=d("a-button"),O=d("a-form"),M=d("a-divider"),D=d("a-tag"),C=d("a-descriptions-item"),N=d("a-descriptions"),P=d("a-collapse-panel"),A=d("a-collapse"),T=d("a-card"),V=d("a-drawer");return u(),b(V,{open:o.open,title:o.title,width:560,placement:"right","onUpdate:open":n[2]||(n[2]=z=>t.$emit("update:open",z))},{default:a(()=>[l(f,{type:"info","show-icon":"",message:e.hintMessage,style:{"margin-bottom":"16px"}},null,8,["message"]),l(O,{layout:"vertical"},{default:a(()=>[l(_,{label:"Envelope 文件路径"},{default:a(()=>[l(y,{value:e.envelopePath,"onUpdate:value":n[0]||(n[0]=z=>e.envelopePath=z),placeholder:"e.g. ./mtc-out/envelope-000000.json","allow-clear":""},null,8,["value"])]),_:1}),l(_,{label:"Landmark 文件路径"},{default:a(()=>[l(y,{value:e.landmarkPath,"onUpdate:value":n[1]||(n[1]=z=>e.landmarkPath=z),placeholder:"e.g. ./mtc-out/landmark.json","allow-clear":""},null,8,["value"])]),_:1}),l(_,null,{default:a(()=>[l(x,{type:"primary",loading:e.verifying,disabled:!e.envelopePath||!e.landmarkPath,onClick:e.runVerify},{icon:a(()=>[l(e.SafetyOutlined)]),default:a(()=>[n[3]||(n[3]=v(" 运行 cc mtc verify ",-1))]),_:1},8,["loading","disabled"])]),_:1})]),_:1}),l(M),e.result?(u(),b(T,{key:0,class:pe(["result-card",e.result.ok?"pass":"fail"]),size:"small"},{title:a(()=>[(u(),b(ye(e.result.ok?e.CheckCircleOutlined:e.CloseCircleOutlined))),w("span",xe,s(e.result.ok?"验证通过":"验证失败"),1)]),default:a(()=>[l(N,{column:1,size:"small",bordered:""},{default:a(()=>[l(C,{label:"结果"},{default:a(()=>[l(D,{color:e.result.ok?"green":"red"},{default:a(()=>[v(s(e.result.ok?"PASS":"FAIL"),1)]),_:1},8,["color"])]),_:1}),!e.result.ok&&e.result.code?(u(),b(C,{key:0,label:"错误码"},{default:a(()=>[w("span",Ce,s(e.result.code),1),e.result.recoverable?(u(),b(D,{key:0,color:"orange",style:{"margin-left":"8px"}},{default:a(()=>[...n[4]||(n[4]=[v("可恢复",-1)])]),_:1})):p("v-if",!0)]),_:1})):p("v-if",!0),e.result.leaf?.subject?(u(),b(C,{key:1,label:"Subject"},{default:a(()=>[w("span",Ie,s(e.result.leaf.subject),1)]),_:1})):p("v-if",!0),e.result.leaf?.kind?(u(),b(C,{key:2,label:"Kind"},{default:a(()=>[l(D,null,{default:a(()=>[v(s(e.result.leaf.kind),1)]),_:1})]),_:1})):p("v-if",!0),e.result.treeHead?.tree_size?(u(),b(C,{key:3,label:"Tree size"},{default:a(()=>[v(s(e.result.treeHead.tree_size),1)]),_:1})):p("v-if",!0),e.result.treeHead?.issuer?(u(),b(C,{key:4,label:"Issuer"},{default:a(()=>[w("span",Oe,s(e.result.treeHead.issuer),1)]),_:1})):p("v-if",!0)]),_:1}),e.result.raw?(u(),b(A,{key:0,ghost:"",style:{"margin-top":"12px"}},{default:a(()=>[l(P,{key:"raw",header:"原始 JSON 输出"},{default:a(()=>[w("pre",Me,s(JSON.stringify(e.result.raw,null,2)),1)]),_:1})]),_:1})):p("v-if",!0)]),_:1},8,["class"])):p("v-if",!0),e.error?(u(),b(f,{key:1,type:"error",message:e.error,style:{"margin-top":"12px"}},null,8,["message"])):p("v-if",!0)]),_:1},8,["open","title"])}const Ne=de(Se,[["render",ze],["__scopeId","data-v-6952fe8b"],["__file","/tmp/cc-web-panel-XbotGX/repo/packages/web-panel/src/components/MtcVerifyDrawer.vue"]]),Pe={__name:"DID",setup(t,{expose:n}){n();const o=B(),{t:e}=ae(),I=c(!1),g=c(!1),f=c(!1),y=c(!1),_=c(""),x=c(""),O=c(!1),M=c([]),D=c(!1),C=c(!1),N=c(!1),P=c(""),A=c(null),T=c(""),V=c(""),z=c(""),K=c(null),H=J(()=>[{title:e("did.cols.did"),key:"did",dataIndex:"did",ellipsis:!0},{title:e("did.cols.name"),key:"displayName",dataIndex:"displayName",width:"160px"},{title:e("did.cols.method"),key:"method",dataIndex:"method",width:"110px"},{title:e("did.cols.createdAt"),key:"createdAt",dataIndex:"createdAt",width:"180px"},{title:e("did.cols.default"),key:"isDefault",width:"90px"},{title:e("did.cols.action"),key:"action",width:"280px"}]),U=J(()=>{const i=M.value.find(S=>S.isDefault);if(!i)return e("did.stats.unsetDefault");const r=i.did;return r.length>24?r.slice(0,12)+"..."+r.slice(-8):r}),j=J(()=>{const i=new Set(M.value.map(r=>r.method).filter(Boolean));return i.size===0?e("did.stats.noMethod"):i.size===1?[...i][0]:[...i].join(", ")});async function L(){g.value=!0;try{const{output:i}=await o.execute("did list --json",15e3);M.value=ne(i)}catch(i){k.error(e("did.msg.loadFailed")+": "+i.message),M.value=[]}finally{g.value=!1}}async function E(){f.value=!0;try{const i=P.value.trim(),r=i?`did create --name "${i.replace(/"/g,'\\"')}" --json`:"did create --json",{output:S}=await o.execute(r,2e4);/error|失败/i.test(S)&&!S.includes('"did"')?k.error(e("did.msg.createFailed")+": "+S.slice(0,120)):(k.success(e("did.msg.createSuccess")),D.value=!1,P.value="",await L())}catch(i){k.error(e("did.msg.createFailed")+": "+i.message)}finally{f.value=!1}}async function m(i){_.value=i.did;try{const{output:r,exitCode:S}=await o.execute(`did set-default ${i.did}`,15e3);S!==0||/error|not found|失败/i.test(r)?k.error(e("did.msg.setDefaultFailed")+": "+r.slice(0,120)):(k.success(e("did.msg.setDefaultSuccess")),await L())}catch(r){k.error(e("did.msg.setDefaultFailed")+": "+r.message)}finally{_.value=""}}async function h(i){x.value=i.did;try{const{output:r,exitCode:S}=await o.execute(`did delete ${i.did} --force`,15e3);S!==0||/error|not found|失败/i.test(r)?k.error(e("did.msg.deleteFailed")+": "+r.slice(0,120)):(k.success(e("did.msg.deleteSuccess")),await L())}catch(r){k.error(e("did.msg.deleteFailed")+": "+r.message)}finally{x.value=""}}async function R(i){if(A.value={...i},T.value="",C.value=!0,!i.publicKey)try{const{output:r}=await o.execute(`did show ${i.did} --json`,1e4),S=ie(r);S&&(A.value={...A.value,...S})}catch{}}async function re(i){O.value=!0;try{const{output:r}=await o.execute(`did resolve ${i.did}`,1e4);try{T.value=JSON.stringify(JSON.parse(r.trim()),null,2)}catch{T.value=r.trim()}}catch(r){k.error(e("did.msg.loadDocFailed")+": "+r.message)}finally{O.value=!1}}function ce(i){V.value=i.did,z.value="",K.value=null,N.value=!0}const q=c(!1),Q=c("MTC 包含证明"),Z=c("");function Y(i){return i?i.length<=24?i:`${i.slice(0,16)}…${i.slice(-6)}`:""}function ue(i){Q.value=`MTC 包含证明 · ${Y(i.did)}`,Z.value="验证此 DID 是否在某个 MTC 批次中。请提供该批次的 envelope(其 leaf.subject 应等于此 DID)和 landmark 文件路径。 通常由 cc mtc batch-dids --out <dir> 生成。",q.value=!0}async function fe(){if(!z.value.trim()){k.warning(e("did.msg.signEmpty"));return}y.value=!0,K.value=null;try{const r=`did sign "${z.value.replace(/"/g,'\\"')}" --did ${V.value} --json`,{output:S,exitCode:me}=await o.execute(r,15e3),W=oe(S);W&&W.signature?(K.value=W,k.success(e("did.msg.signSuccess"))):k.error(e("did.msg.signFailed")+": "+(S||`exit ${me}`).slice(0,120))}catch(i){k.error(e("did.msg.signFailed")+": "+i.message)}finally{y.value=!1}}te(()=>{L()});const $={ws:o,t:e,hasDesktopFeatures:I,loading:g,creating:f,signing:y,settingDefault:_,deleting:x,loadingDocument:O,identities:M,showCreateModal:D,showDetailsModal:C,showSignModal:N,newIdentityName:P,currentIdentity:A,currentDocument:T,signTargetDid:V,signText:z,signResult:K,columns:H,defaultIdentityDisplay:U,methodDisplay:j,loadList:L,createIdentity:E,setDefault:m,deleteIdentity:h,openShow:R,loadDocument:re,openSign:ce,mtcDrawerOpen:q,mtcDrawerTitle:Q,mtcDrawerHint:Z,shortDid:Y,openMtcVerify:ue,signMessage:fe,ref:c,computed:J,onMounted:te,get ReloadOutlined(){return we},get PlusOutlined(){return ke},get IdcardOutlined(){return he},get KeyOutlined(){return be},get FileTextOutlined(){return ve},get SafetyOutlined(){return se},get message(){return k},get useI18n(){return ae},get useWsStore(){return B},get parseDidList(){return ne},get parseDidShow(){return ie},get parseSignResult(){return oe},MtcVerifyDrawer:Ne};return Object.defineProperty($,"__isScriptSetup",{enumerable:!1,value:!0}),$}},Ae={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},Te={class:"page-title"},je={class:"page-sub"},Fe={key:1,style:{"text-align":"center",padding:"60px"}},Ve={key:0,style:{color:"#e0e0e0","font-family":"monospace","font-size":"12px"}},Ke={key:1,style:{color:"var(--text-primary)"}},Le={key:3,style:{color:"var(--text-secondary)","font-size":"12px"}},Re={key:0,style:{"margin-top":"12px"}},Je={style:{"font-family":"monospace",color:"#ccc","word-break":"break-all"}},Ue={style:{"font-family":"monospace",color:"#888","font-size":"11px","word-break":"break-all"}},He={style:{"margin-top":"16px",display:"flex",gap:"8px","flex-wrap":"wrap"}},Be={key:0,style:{"margin-top":"16px"}},Ee={style:{color:"var(--text-secondary)","margin-bottom":"6px"}},We={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"}},Xe={key:0,style:{"margin-top":"12px"}},Ge={style:{color:"var(--text-secondary)","margin-bottom":"6px"}},qe={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)"}};function Qe(t,n,o,e,I,g){const f=d("a-button"),y=d("a-space"),_=d("a-statistic"),x=d("a-card"),O=d("a-col"),M=d("a-row"),D=d("a-alert"),C=d("a-spin"),N=d("a-tag"),P=d("a-tooltip"),A=d("a-popconfirm"),T=d("a-empty"),V=d("a-table"),z=d("a-input"),K=d("a-form-item"),H=d("a-form"),U=d("a-modal"),j=d("a-descriptions-item"),L=d("a-descriptions"),E=d("a-textarea");return u(),F("div",null,[w("div",Ae,[w("div",null,[w("h2",Te,s(t.$t("did.title")),1),w("p",je,s(t.$t("did.subtitle")),1)]),l(y,null,{default:a(()=>[l(f,{loading:e.loading,onClick:e.loadList},{icon:a(()=>[l(e.ReloadOutlined)]),default:a(()=>[v(" "+s(t.$t("did.refresh")),1)]),_:1},8,["loading"]),l(f,{type:"primary",onClick:n[0]||(n[0]=m=>e.showCreateModal=!0)},{icon:a(()=>[l(e.PlusOutlined)]),default:a(()=>[v(" "+s(t.$t("did.create")),1)]),_:1})]),_:1})]),l(M,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:a(()=>[l(O,{xs:24,sm:12,lg:6},{default:a(()=>[l(x,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[l(_,{title:t.$t("did.stats.count"),value:e.identities.length,"value-style":{color:"#1677ff",fontSize:"20px"}},{prefix:a(()=>[l(e.IdcardOutlined)]),_:1},8,["title","value"])]),_:1})]),_:1}),l(O,{xs:24,sm:12,lg:6},{default:a(()=>[l(x,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[l(_,{title:t.$t("did.stats.default"),value:e.defaultIdentityDisplay,"value-style":{color:e.defaultIdentityDisplay!==t.$t("did.stats.unsetDefault")?"#52c41a":"#888",fontSize:"13px",fontFamily:"monospace"}},null,8,["title","value","value-style"])]),_:1})]),_:1}),l(O,{xs:24,sm:12,lg:6},{default:a(()=>[l(x,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[l(_,{title:t.$t("did.stats.method"),value:e.methodDisplay,"value-style":{color:"#722ed1",fontSize:"14px"}},null,8,["title","value"])]),_:1})]),_:1}),l(O,{xs:24,sm:12,lg:6},{default:a(()=>[l(x,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[l(_,{title:t.$t("did.stats.signable"),value:e.identities.length>0?t.$t("did.stats.yes"):t.$t("did.stats.no"),"value-style":{color:e.identities.length>0?"#52c41a":"#ff4d4f",fontSize:"20px"}},{prefix:a(()=>[l(e.KeyOutlined)]),_:1},8,["title","value","value-style"])]),_:1})]),_:1})]),_:1}),e.hasDesktopFeatures?p("v-if",!0):(u(),b(D,{key:0,message:t.$t("did.webOnly.message"),description:t.$t("did.webOnly.description"),type:"info","show-icon":"",closable:"",style:{"margin-bottom":"16px"}},null,8,["message","description"])),e.loading?(u(),F("div",Fe,[l(C,{size:"large"})])):(u(),b(V,{key:2,columns:e.columns,"data-source":e.identities,pagination:{pageSize:20,showTotal:m=>t.$t("did.table.totalSuffix",{n:m})},size:"small",style:{background:"var(--bg-card)"},"row-class-name":()=>"did-row"},{bodyCell:a(({column:m,record:h})=>[m.key==="did"?(u(),F("span",Ve,s(h.did),1)):p("v-if",!0),m.key==="displayName"?(u(),F("span",Ke,s(h.displayName||"-"),1)):p("v-if",!0),m.key==="method"?(u(),b(N,{key:2,color:"blue"},{default:a(()=>[v(s(h.method),1)]),_:2},1024)):p("v-if",!0),m.key==="createdAt"?(u(),F("span",Le,s(h.createdAt||"-"),1)):p("v-if",!0),m.key==="isDefault"?(u(),b(N,{key:4,color:h.isDefault?"green":"default"},{default:a(()=>[v(s(h.isDefault?t.$t("did.table.defaultTag"):"-"),1)]),_:2},1032,["color"])):p("v-if",!0),m.key==="action"?(u(),b(y,{key:5,size:"small"},{default:a(()=>[l(f,{size:"small",type:"link",onClick:R=>e.openShow(h)},{default:a(()=>[v(s(t.$t("did.actions.details")),1)]),_:1},8,["onClick"]),l(f,{size:"small",type:"link",onClick:R=>e.openSign(h)},{default:a(()=>[v(s(t.$t("did.actions.sign")),1)]),_:1},8,["onClick"]),l(P,{title:"MTC 包含证明"},{default:a(()=>[l(f,{size:"small",type:"link",onClick:R=>e.openMtcVerify(h)},{default:a(()=>[l(e.SafetyOutlined)]),_:1},8,["onClick"])]),_:2},1024),h.isDefault?p("v-if",!0):(u(),b(f,{key:0,size:"small",type:"link",loading:e.settingDefault===h.did,onClick:R=>e.setDefault(h)},{default:a(()=>[v(s(t.$t("did.actions.setDefault")),1)]),_:1},8,["loading","onClick"])),l(A,{title:t.$t("did.deleteConfirm.title"),"ok-text":t.$t("did.deleteConfirm.ok"),"ok-type":"danger","cancel-text":t.$t("did.deleteConfirm.cancel"),onConfirm:R=>e.deleteIdentity(h)},{default:a(()=>[l(f,{size:"small",type:"link",danger:"",loading:e.deleting===h.did},{default:a(()=>[v(s(t.$t("did.actions.delete")),1)]),_:1},8,["loading"])]),_:2},1032,["title","ok-text","cancel-text","onConfirm"])]),_:2},1024)):p("v-if",!0)]),emptyText:a(()=>[l(T,{description:t.$t("did.table.empty")},null,8,["description"])]),_:1},8,["columns","data-source","pagination"])),p(" Create Modal "),l(U,{open:e.showCreateModal,"onUpdate:open":n[2]||(n[2]=m=>e.showCreateModal=m),title:t.$t("did.create_modal.title"),"confirm-loading":e.creating,onOk:e.createIdentity,"ok-text":t.$t("did.create_modal.ok"),"cancel-text":t.$t("did.create_modal.cancel")},{default:a(()=>[l(H,{"label-col":{span:6},"wrapper-col":{span:18},style:{"margin-top":"16px"}},{default:a(()=>[l(K,{label:t.$t("did.create_modal.nameLabel")},{default:a(()=>[l(z,{value:e.newIdentityName,"onUpdate:value":n[1]||(n[1]=m=>e.newIdentityName=m),placeholder:t.$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"]),p(" Show Details Modal "),l(U,{open:e.showDetailsModal,"onUpdate:open":n[4]||(n[4]=m=>e.showDetailsModal=m),title:t.$t("did.details.title",{label:e.currentIdentity?.displayName||e.currentIdentity?.did?.slice(0,24)||""}),width:720,footer:null},{default:a(()=>[e.currentIdentity?(u(),F("div",Re,[l(L,{column:1,bordered:"",size:"small"},{default:a(()=>[l(j,{label:t.$t("did.details.did")},{default:a(()=>[w("span",Je,s(e.currentIdentity.did),1)]),_:1},8,["label"]),l(j,{label:t.$t("did.details.name")},{default:a(()=>[v(s(e.currentIdentity.displayName||"-"),1)]),_:1},8,["label"]),l(j,{label:t.$t("did.details.method")},{default:a(()=>[l(N,{color:"blue"},{default:a(()=>[v(s(e.currentIdentity.method),1)]),_:1})]),_:1},8,["label"]),l(j,{label:t.$t("did.details.default")},{default:a(()=>[l(N,{color:e.currentIdentity.isDefault?"green":"default"},{default:a(()=>[v(s(e.currentIdentity.isDefault?t.$t("did.details.yes"):t.$t("did.details.no")),1)]),_:1},8,["color"])]),_:1},8,["label"]),l(j,{label:t.$t("did.details.createdAt")},{default:a(()=>[v(s(e.currentIdentity.createdAt||"-"),1)]),_:1},8,["label"]),l(j,{label:t.$t("did.details.publicKey")},{default:a(()=>[w("span",Ue,s(e.currentIdentity.publicKey||t.$t("did.details.publicKeyLoading")),1)]),_:1},8,["label"])]),_:1}),w("div",He,[l(f,{loading:e.loadingDocument,onClick:n[3]||(n[3]=m=>e.loadDocument(e.currentIdentity))},{icon:a(()=>[l(e.FileTextOutlined)]),default:a(()=>[v(" "+s(t.$t("did.details.viewDoc")),1)]),_:1},8,["loading"])]),e.currentDocument?(u(),F("div",Be,[w("p",Ee,s(t.$t("did.details.docHeader")),1),w("pre",We,s(e.currentDocument),1)])):p("v-if",!0)])):p("v-if",!0)]),_:1},8,["open","title"]),p(" Sign Modal "),l(U,{open:e.showSignModal,"onUpdate:open":n[6]||(n[6]=m=>e.showSignModal=m),title:t.$t("did.sign_modal.title",{label:e.signTargetDid?.slice(0,28)||t.$t("did.sign_modal.defaultIdentityFallback")}),"confirm-loading":e.signing,onOk:e.signMessage,"ok-text":t.$t("did.sign_modal.ok"),"cancel-text":t.$t("did.sign_modal.cancel")},{default:a(()=>[l(H,{"label-col":{span:4},"wrapper-col":{span:20},style:{"margin-top":"16px"}},{default:a(()=>[l(K,{label:t.$t("did.sign_modal.messageLabel"),required:""},{default:a(()=>[l(E,{value:e.signText,"onUpdate:value":n[5]||(n[5]=m=>e.signText=m),placeholder:t.$t("did.sign_modal.messagePlaceholder"),"auto-size":{minRows:3,maxRows:8}},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1}),e.signResult?(u(),F("div",Xe,[w("p",Ge,s(t.$t("did.sign_modal.resultHeader")),1),w("pre",qe,s(e.signResult.signature),1)])):p("v-if",!0)]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),p(" MTC inclusion proof drawer "),l(e.MtcVerifyDrawer,{open:e.mtcDrawerOpen,"onUpdate:open":n[7]||(n[7]=m=>e.mtcDrawerOpen=m),title:e.mtcDrawerTitle,hint:e.mtcDrawerHint},null,8,["open","title","hint"])])}const at=de(Pe,[["render",Qe],["__scopeId","data-v-553c4536"],["__file","/tmp/cc-web-panel-XbotGX/repo/packages/web-panel/src/views/DID.vue"]]);export{at as default};
|
|
1
|
+
import{I as d,P as u,S as b,K as a,c as l,Q as v,_ as pe,R as s,U as w,V as p,a0 as ye,r as c,w as ee,b as J,J as F,o as te}from"./vendor-BvqAck49.js";import{_ as de,u as B,b as ae,d as k}from"./index-C2N_-y_W.js";import{p as le}from"./mtc-parser-BbAbUB-9.js";import{d as ge,f as _e,r as se,a4 as ve,K as be,w as he,as as ke,R as we}from"./icons-DP3uiYxy.js";import"./community-parser-CO25nZFt.js";function Q(t){if(!t)return null;const n=t.trim();try{return JSON.parse(n)}catch{const o=n.match(/(\[[\s\S]*\]|\{[\s\S]*\})/);if(!o)return null;try{return JSON.parse(o[1])}catch{return null}}}function q(t,n=0){if(!t||typeof t!="object")return null;const o=t.did||t.id||"";if(!o)return null;const e=t.displayName??t.display_name??t.name??"",O=t.isDefault===!0||t.is_default===1||t.is_default===!0||t.default===!0,g=t.publicKey??t.public_key??"",f=t.createdAt??t.created_at??t.created??"",y=(o.split(":")[1]||"chainless").trim();return{key:o,did:o,displayName:e||"",publicKey:g||"",isDefault:!!O,createdAt:f||"",method:y,raw:t.document?t:null,_idx:n}}function ne(t){const n=Q(t);return Array.isArray(n)?n.map(q).filter(Boolean):n&&Array.isArray(n.identities)?n.identities.map(q).filter(Boolean):De(t||"")}function De(t){const n=(t||"").split(`
|
|
2
|
+
`),o=[];let e=null;for(const O of n){const g=O.trim();if(!g||g.startsWith("─")||g.startsWith("="))continue;const f=g.match(/(did:[a-z0-9]+:[A-Za-z0-9_-]+)/);if(f&&/^did:/.test(g)){e&&o.push(e);const y=f[1],_=g.match(/\(([^)]+)\)/),x=/\[default\]|默认|\*/.test(g);e={key:y,did:y,displayName:_?_[1]:"",publicKey:"",isDefault:x,createdAt:"",method:(y.split(":")[1]||"chainless").trim(),raw:null,_idx:o.length};continue}if(e){const y=g.match(/created\s*[::]\s*(.+)$/i);y&&(e.createdAt=y[1].trim())}}return e&&o.push(e),o}function ie(t){const n=Q(t);if(!n||typeof n!="object"||Array.isArray(n))return null;const o=q(n);return o?(o.document=n.document||null,o):null}function oe(t){const n=Q(t);if(n&&typeof n=="object"&&n.signature)return{did:n.did||"",message:n.message||"",signature:String(n.signature)};const e=(t||"").match(/Signature[::]\s*([a-f0-9]+)/i);return e?{did:"",message:"",signature:e[1]}:null}const Se={__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(t,{expose:n}){n();const o=t,e=B(),O=c(o.defaultEnvelopePath),g=c(o.defaultLandmarkPath),f=c(!1),y=c(null),_=c(""),x=J(()=>o.hint||"通过 cc serve 运行 cc mtc verify(多算法 dispatcher 同时支持 Ed25519 和 SLH-DSA-128F)。文件路径应指向本机磁盘上的 envelope 和 landmark JSON — 浏览器只把路径转给 cc serve,不上传文件内容。");ee(()=>o.open,D=>{D&&(O.value=o.defaultEnvelopePath||O.value,g.value=o.defaultLandmarkPath||g.value,y.value=null,_.value="")});async function I(){f.value=!0,y.value=null,_.value="";try{const D=O.value.trim().replace(/"/g,'\\"'),C=g.value.trim().replace(/"/g,'\\"'),{output:N}=await e.execute(`mtc verify "${D}" --landmark "${C}" --json`,12e3),P=le(N);if(!P.raw){_.value="验证命令未返回 JSON。请检查路径是否正确。";return}y.value=P}catch(D){_.value=`验证失败: ${D?.message||D}`}finally{f.value=!1}}const M={props:o,ws:e,envelopePath:O,landmarkPath:g,verifying:f,result:y,error:_,hintMessage:x,runVerify:I,ref:c,computed:J,watch:ee,get SafetyOutlined(){return se},get CheckCircleOutlined(){return _e},get CloseCircleOutlined(){return ge},get useWsStore(){return B},get parseVerifyResult(){return le}};return Object.defineProperty(M,"__isScriptSetup",{enumerable:!1,value:!0}),M}},xe={style:{"margin-left":"8px"}},Ce={class:"mono"},Oe={class:"mono"},Ie={class:"mono"},Me={class:"raw-pre"};function ze(t,n,o,e,O,g){const f=d("a-alert"),y=d("a-input"),_=d("a-form-item"),x=d("a-button"),I=d("a-form"),M=d("a-divider"),D=d("a-tag"),C=d("a-descriptions-item"),N=d("a-descriptions"),P=d("a-collapse-panel"),A=d("a-collapse"),T=d("a-card"),V=d("a-drawer");return u(),b(V,{open:o.open,title:o.title,width:560,placement:"right","onUpdate:open":n[2]||(n[2]=z=>t.$emit("update:open",z))},{default:a(()=>[l(f,{type:"info","show-icon":"",message:e.hintMessage,style:{"margin-bottom":"16px"}},null,8,["message"]),l(I,{layout:"vertical"},{default:a(()=>[l(_,{label:"Envelope 文件路径"},{default:a(()=>[l(y,{value:e.envelopePath,"onUpdate:value":n[0]||(n[0]=z=>e.envelopePath=z),placeholder:"e.g. ./mtc-out/envelope-000000.json","allow-clear":""},null,8,["value"])]),_:1}),l(_,{label:"Landmark 文件路径"},{default:a(()=>[l(y,{value:e.landmarkPath,"onUpdate:value":n[1]||(n[1]=z=>e.landmarkPath=z),placeholder:"e.g. ./mtc-out/landmark.json","allow-clear":""},null,8,["value"])]),_:1}),l(_,null,{default:a(()=>[l(x,{type:"primary",loading:e.verifying,disabled:!e.envelopePath||!e.landmarkPath,onClick:e.runVerify},{icon:a(()=>[l(e.SafetyOutlined)]),default:a(()=>[n[3]||(n[3]=v(" 运行 cc mtc verify ",-1))]),_:1},8,["loading","disabled"])]),_:1})]),_:1}),l(M),e.result?(u(),b(T,{key:0,class:pe(["result-card",e.result.ok?"pass":"fail"]),size:"small"},{title:a(()=>[(u(),b(ye(e.result.ok?e.CheckCircleOutlined:e.CloseCircleOutlined))),w("span",xe,s(e.result.ok?"验证通过":"验证失败"),1)]),default:a(()=>[l(N,{column:1,size:"small",bordered:""},{default:a(()=>[l(C,{label:"结果"},{default:a(()=>[l(D,{color:e.result.ok?"green":"red"},{default:a(()=>[v(s(e.result.ok?"PASS":"FAIL"),1)]),_:1},8,["color"])]),_:1}),!e.result.ok&&e.result.code?(u(),b(C,{key:0,label:"错误码"},{default:a(()=>[w("span",Ce,s(e.result.code),1),e.result.recoverable?(u(),b(D,{key:0,color:"orange",style:{"margin-left":"8px"}},{default:a(()=>[...n[4]||(n[4]=[v("可恢复",-1)])]),_:1})):p("v-if",!0)]),_:1})):p("v-if",!0),e.result.leaf?.subject?(u(),b(C,{key:1,label:"Subject"},{default:a(()=>[w("span",Oe,s(e.result.leaf.subject),1)]),_:1})):p("v-if",!0),e.result.leaf?.kind?(u(),b(C,{key:2,label:"Kind"},{default:a(()=>[l(D,null,{default:a(()=>[v(s(e.result.leaf.kind),1)]),_:1})]),_:1})):p("v-if",!0),e.result.treeHead?.tree_size?(u(),b(C,{key:3,label:"Tree size"},{default:a(()=>[v(s(e.result.treeHead.tree_size),1)]),_:1})):p("v-if",!0),e.result.treeHead?.issuer?(u(),b(C,{key:4,label:"Issuer"},{default:a(()=>[w("span",Ie,s(e.result.treeHead.issuer),1)]),_:1})):p("v-if",!0)]),_:1}),e.result.raw?(u(),b(A,{key:0,ghost:"",style:{"margin-top":"12px"}},{default:a(()=>[l(P,{key:"raw",header:"原始 JSON 输出"},{default:a(()=>[w("pre",Me,s(JSON.stringify(e.result.raw,null,2)),1)]),_:1})]),_:1})):p("v-if",!0)]),_:1},8,["class"])):p("v-if",!0),e.error?(u(),b(f,{key:1,type:"error",message:e.error,style:{"margin-top":"12px"}},null,8,["message"])):p("v-if",!0)]),_:1},8,["open","title"])}const Ne=de(Se,[["render",ze],["__scopeId","data-v-6952fe8b"],["__file","/tmp/cc-web-panel-qWJQO5/repo/packages/web-panel/src/components/MtcVerifyDrawer.vue"]]),Pe={__name:"DID",setup(t,{expose:n}){n();const o=B(),{t:e}=ae(),O=c(!1),g=c(!1),f=c(!1),y=c(!1),_=c(""),x=c(""),I=c(!1),M=c([]),D=c(!1),C=c(!1),N=c(!1),P=c(""),A=c(null),T=c(""),V=c(""),z=c(""),K=c(null),H=J(()=>[{title:e("did.cols.did"),key:"did",dataIndex:"did",ellipsis:!0},{title:e("did.cols.name"),key:"displayName",dataIndex:"displayName",width:"160px"},{title:e("did.cols.method"),key:"method",dataIndex:"method",width:"110px"},{title:e("did.cols.createdAt"),key:"createdAt",dataIndex:"createdAt",width:"180px"},{title:e("did.cols.default"),key:"isDefault",width:"90px"},{title:e("did.cols.action"),key:"action",width:"280px"}]),U=J(()=>{const i=M.value.find(S=>S.isDefault);if(!i)return e("did.stats.unsetDefault");const r=i.did;return r.length>24?r.slice(0,12)+"..."+r.slice(-8):r}),j=J(()=>{const i=new Set(M.value.map(r=>r.method).filter(Boolean));return i.size===0?e("did.stats.noMethod"):i.size===1?[...i][0]:[...i].join(", ")});async function L(){g.value=!0;try{const{output:i}=await o.execute("did list --json",15e3);M.value=ne(i)}catch(i){k.error(e("did.msg.loadFailed")+": "+i.message),M.value=[]}finally{g.value=!1}}async function E(){f.value=!0;try{const i=P.value.trim(),r=i?`did create --name "${i.replace(/"/g,'\\"')}" --json`:"did create --json",{output:S}=await o.execute(r,2e4);/error|失败/i.test(S)&&!S.includes('"did"')?k.error(e("did.msg.createFailed")+": "+S.slice(0,120)):(k.success(e("did.msg.createSuccess")),D.value=!1,P.value="",await L())}catch(i){k.error(e("did.msg.createFailed")+": "+i.message)}finally{f.value=!1}}async function m(i){_.value=i.did;try{const{output:r,exitCode:S}=await o.execute(`did set-default ${i.did}`,15e3);S!==0||/error|not found|失败/i.test(r)?k.error(e("did.msg.setDefaultFailed")+": "+r.slice(0,120)):(k.success(e("did.msg.setDefaultSuccess")),await L())}catch(r){k.error(e("did.msg.setDefaultFailed")+": "+r.message)}finally{_.value=""}}async function h(i){x.value=i.did;try{const{output:r,exitCode:S}=await o.execute(`did delete ${i.did} --force`,15e3);S!==0||/error|not found|失败/i.test(r)?k.error(e("did.msg.deleteFailed")+": "+r.slice(0,120)):(k.success(e("did.msg.deleteSuccess")),await L())}catch(r){k.error(e("did.msg.deleteFailed")+": "+r.message)}finally{x.value=""}}async function R(i){if(A.value={...i},T.value="",C.value=!0,!i.publicKey)try{const{output:r}=await o.execute(`did show ${i.did} --json`,1e4),S=ie(r);S&&(A.value={...A.value,...S})}catch{}}async function re(i){I.value=!0;try{const{output:r}=await o.execute(`did resolve ${i.did}`,1e4);try{T.value=JSON.stringify(JSON.parse(r.trim()),null,2)}catch{T.value=r.trim()}}catch(r){k.error(e("did.msg.loadDocFailed")+": "+r.message)}finally{I.value=!1}}function ce(i){V.value=i.did,z.value="",K.value=null,N.value=!0}const Z=c(!1),G=c("MTC 包含证明"),X=c("");function Y(i){return i?i.length<=24?i:`${i.slice(0,16)}…${i.slice(-6)}`:""}function ue(i){G.value=`MTC 包含证明 · ${Y(i.did)}`,X.value="验证此 DID 是否在某个 MTC 批次中。请提供该批次的 envelope(其 leaf.subject 应等于此 DID)和 landmark 文件路径。 通常由 cc mtc batch-dids --out <dir> 生成。",Z.value=!0}async function fe(){if(!z.value.trim()){k.warning(e("did.msg.signEmpty"));return}y.value=!0,K.value=null;try{const r=`did sign "${z.value.replace(/"/g,'\\"')}" --did ${V.value} --json`,{output:S,exitCode:me}=await o.execute(r,15e3),W=oe(S);W&&W.signature?(K.value=W,k.success(e("did.msg.signSuccess"))):k.error(e("did.msg.signFailed")+": "+(S||`exit ${me}`).slice(0,120))}catch(i){k.error(e("did.msg.signFailed")+": "+i.message)}finally{y.value=!1}}te(()=>{L()});const $={ws:o,t:e,hasDesktopFeatures:O,loading:g,creating:f,signing:y,settingDefault:_,deleting:x,loadingDocument:I,identities:M,showCreateModal:D,showDetailsModal:C,showSignModal:N,newIdentityName:P,currentIdentity:A,currentDocument:T,signTargetDid:V,signText:z,signResult:K,columns:H,defaultIdentityDisplay:U,methodDisplay:j,loadList:L,createIdentity:E,setDefault:m,deleteIdentity:h,openShow:R,loadDocument:re,openSign:ce,mtcDrawerOpen:Z,mtcDrawerTitle:G,mtcDrawerHint:X,shortDid:Y,openMtcVerify:ue,signMessage:fe,ref:c,computed:J,onMounted:te,get ReloadOutlined(){return we},get PlusOutlined(){return ke},get IdcardOutlined(){return he},get KeyOutlined(){return be},get FileTextOutlined(){return ve},get SafetyOutlined(){return se},get message(){return k},get useI18n(){return ae},get useWsStore(){return B},get parseDidList(){return ne},get parseDidShow(){return ie},get parseSignResult(){return oe},MtcVerifyDrawer:Ne};return Object.defineProperty($,"__isScriptSetup",{enumerable:!1,value:!0}),$}},Ae={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},Te={class:"page-title"},je={class:"page-sub"},Fe={key:1,style:{"text-align":"center",padding:"60px"}},Ve={key:0,style:{color:"#e0e0e0","font-family":"monospace","font-size":"12px"}},Ke={key:1,style:{color:"var(--text-primary)"}},Le={key:3,style:{color:"var(--text-secondary)","font-size":"12px"}},Re={key:0,style:{"margin-top":"12px"}},Je={style:{"font-family":"monospace",color:"#ccc","word-break":"break-all"}},Ue={style:{"font-family":"monospace",color:"#888","font-size":"11px","word-break":"break-all"}},He={style:{"margin-top":"16px",display:"flex",gap:"8px","flex-wrap":"wrap"}},Be={key:0,style:{"margin-top":"16px"}},Ee={style:{color:"var(--text-secondary)","margin-bottom":"6px"}},We={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"}},qe={key:0,style:{"margin-top":"12px"}},Qe={style:{color:"var(--text-secondary)","margin-bottom":"6px"}},Ze={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)"}};function Ge(t,n,o,e,O,g){const f=d("a-button"),y=d("a-space"),_=d("a-statistic"),x=d("a-card"),I=d("a-col"),M=d("a-row"),D=d("a-alert"),C=d("a-spin"),N=d("a-tag"),P=d("a-tooltip"),A=d("a-popconfirm"),T=d("a-empty"),V=d("a-table"),z=d("a-input"),K=d("a-form-item"),H=d("a-form"),U=d("a-modal"),j=d("a-descriptions-item"),L=d("a-descriptions"),E=d("a-textarea");return u(),F("div",null,[w("div",Ae,[w("div",null,[w("h2",Te,s(t.$t("did.title")),1),w("p",je,s(t.$t("did.subtitle")),1)]),l(y,null,{default:a(()=>[l(f,{loading:e.loading,onClick:e.loadList},{icon:a(()=>[l(e.ReloadOutlined)]),default:a(()=>[v(" "+s(t.$t("did.refresh")),1)]),_:1},8,["loading"]),l(f,{type:"primary",onClick:n[0]||(n[0]=m=>e.showCreateModal=!0)},{icon:a(()=>[l(e.PlusOutlined)]),default:a(()=>[v(" "+s(t.$t("did.create")),1)]),_:1})]),_:1})]),l(M,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:a(()=>[l(I,{xs:24,sm:12,lg:6},{default:a(()=>[l(x,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[l(_,{title:t.$t("did.stats.count"),value:e.identities.length,"value-style":{color:"#1677ff",fontSize:"20px"}},{prefix:a(()=>[l(e.IdcardOutlined)]),_:1},8,["title","value"])]),_:1})]),_:1}),l(I,{xs:24,sm:12,lg:6},{default:a(()=>[l(x,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[l(_,{title:t.$t("did.stats.default"),value:e.defaultIdentityDisplay,"value-style":{color:e.defaultIdentityDisplay!==t.$t("did.stats.unsetDefault")?"#52c41a":"#888",fontSize:"13px",fontFamily:"monospace"}},null,8,["title","value","value-style"])]),_:1})]),_:1}),l(I,{xs:24,sm:12,lg:6},{default:a(()=>[l(x,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[l(_,{title:t.$t("did.stats.method"),value:e.methodDisplay,"value-style":{color:"#722ed1",fontSize:"14px"}},null,8,["title","value"])]),_:1})]),_:1}),l(I,{xs:24,sm:12,lg:6},{default:a(()=>[l(x,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[l(_,{title:t.$t("did.stats.signable"),value:e.identities.length>0?t.$t("did.stats.yes"):t.$t("did.stats.no"),"value-style":{color:e.identities.length>0?"#52c41a":"#ff4d4f",fontSize:"20px"}},{prefix:a(()=>[l(e.KeyOutlined)]),_:1},8,["title","value","value-style"])]),_:1})]),_:1})]),_:1}),e.hasDesktopFeatures?p("v-if",!0):(u(),b(D,{key:0,message:t.$t("did.webOnly.message"),description:t.$t("did.webOnly.description"),type:"info","show-icon":"",closable:"",style:{"margin-bottom":"16px"}},null,8,["message","description"])),e.loading?(u(),F("div",Fe,[l(C,{size:"large"})])):(u(),b(V,{key:2,columns:e.columns,"data-source":e.identities,pagination:{pageSize:20,showTotal:m=>t.$t("did.table.totalSuffix",{n:m})},size:"small",style:{background:"var(--bg-card)"},"row-class-name":()=>"did-row"},{bodyCell:a(({column:m,record:h})=>[m.key==="did"?(u(),F("span",Ve,s(h.did),1)):p("v-if",!0),m.key==="displayName"?(u(),F("span",Ke,s(h.displayName||"-"),1)):p("v-if",!0),m.key==="method"?(u(),b(N,{key:2,color:"blue"},{default:a(()=>[v(s(h.method),1)]),_:2},1024)):p("v-if",!0),m.key==="createdAt"?(u(),F("span",Le,s(h.createdAt||"-"),1)):p("v-if",!0),m.key==="isDefault"?(u(),b(N,{key:4,color:h.isDefault?"green":"default"},{default:a(()=>[v(s(h.isDefault?t.$t("did.table.defaultTag"):"-"),1)]),_:2},1032,["color"])):p("v-if",!0),m.key==="action"?(u(),b(y,{key:5,size:"small"},{default:a(()=>[l(f,{size:"small",type:"link",onClick:R=>e.openShow(h)},{default:a(()=>[v(s(t.$t("did.actions.details")),1)]),_:1},8,["onClick"]),l(f,{size:"small",type:"link",onClick:R=>e.openSign(h)},{default:a(()=>[v(s(t.$t("did.actions.sign")),1)]),_:1},8,["onClick"]),l(P,{title:"MTC 包含证明"},{default:a(()=>[l(f,{size:"small",type:"link",onClick:R=>e.openMtcVerify(h)},{default:a(()=>[l(e.SafetyOutlined)]),_:1},8,["onClick"])]),_:2},1024),h.isDefault?p("v-if",!0):(u(),b(f,{key:0,size:"small",type:"link",loading:e.settingDefault===h.did,onClick:R=>e.setDefault(h)},{default:a(()=>[v(s(t.$t("did.actions.setDefault")),1)]),_:1},8,["loading","onClick"])),l(A,{title:t.$t("did.deleteConfirm.title"),"ok-text":t.$t("did.deleteConfirm.ok"),"ok-type":"danger","cancel-text":t.$t("did.deleteConfirm.cancel"),onConfirm:R=>e.deleteIdentity(h)},{default:a(()=>[l(f,{size:"small",type:"link",danger:"",loading:e.deleting===h.did},{default:a(()=>[v(s(t.$t("did.actions.delete")),1)]),_:1},8,["loading"])]),_:2},1032,["title","ok-text","cancel-text","onConfirm"])]),_:2},1024)):p("v-if",!0)]),emptyText:a(()=>[l(T,{description:t.$t("did.table.empty")},null,8,["description"])]),_:1},8,["columns","data-source","pagination"])),p(" Create Modal "),l(U,{open:e.showCreateModal,"onUpdate:open":n[2]||(n[2]=m=>e.showCreateModal=m),title:t.$t("did.create_modal.title"),"confirm-loading":e.creating,onOk:e.createIdentity,"ok-text":t.$t("did.create_modal.ok"),"cancel-text":t.$t("did.create_modal.cancel")},{default:a(()=>[l(H,{"label-col":{span:6},"wrapper-col":{span:18},style:{"margin-top":"16px"}},{default:a(()=>[l(K,{label:t.$t("did.create_modal.nameLabel")},{default:a(()=>[l(z,{value:e.newIdentityName,"onUpdate:value":n[1]||(n[1]=m=>e.newIdentityName=m),placeholder:t.$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"]),p(" Show Details Modal "),l(U,{open:e.showDetailsModal,"onUpdate:open":n[4]||(n[4]=m=>e.showDetailsModal=m),title:t.$t("did.details.title",{label:e.currentIdentity?.displayName||e.currentIdentity?.did?.slice(0,24)||""}),width:720,footer:null},{default:a(()=>[e.currentIdentity?(u(),F("div",Re,[l(L,{column:1,bordered:"",size:"small"},{default:a(()=>[l(j,{label:t.$t("did.details.did")},{default:a(()=>[w("span",Je,s(e.currentIdentity.did),1)]),_:1},8,["label"]),l(j,{label:t.$t("did.details.name")},{default:a(()=>[v(s(e.currentIdentity.displayName||"-"),1)]),_:1},8,["label"]),l(j,{label:t.$t("did.details.method")},{default:a(()=>[l(N,{color:"blue"},{default:a(()=>[v(s(e.currentIdentity.method),1)]),_:1})]),_:1},8,["label"]),l(j,{label:t.$t("did.details.default")},{default:a(()=>[l(N,{color:e.currentIdentity.isDefault?"green":"default"},{default:a(()=>[v(s(e.currentIdentity.isDefault?t.$t("did.details.yes"):t.$t("did.details.no")),1)]),_:1},8,["color"])]),_:1},8,["label"]),l(j,{label:t.$t("did.details.createdAt")},{default:a(()=>[v(s(e.currentIdentity.createdAt||"-"),1)]),_:1},8,["label"]),l(j,{label:t.$t("did.details.publicKey")},{default:a(()=>[w("span",Ue,s(e.currentIdentity.publicKey||t.$t("did.details.publicKeyLoading")),1)]),_:1},8,["label"])]),_:1}),w("div",He,[l(f,{loading:e.loadingDocument,onClick:n[3]||(n[3]=m=>e.loadDocument(e.currentIdentity))},{icon:a(()=>[l(e.FileTextOutlined)]),default:a(()=>[v(" "+s(t.$t("did.details.viewDoc")),1)]),_:1},8,["loading"])]),e.currentDocument?(u(),F("div",Be,[w("p",Ee,s(t.$t("did.details.docHeader")),1),w("pre",We,s(e.currentDocument),1)])):p("v-if",!0)])):p("v-if",!0)]),_:1},8,["open","title"]),p(" Sign Modal "),l(U,{open:e.showSignModal,"onUpdate:open":n[6]||(n[6]=m=>e.showSignModal=m),title:t.$t("did.sign_modal.title",{label:e.signTargetDid?.slice(0,28)||t.$t("did.sign_modal.defaultIdentityFallback")}),"confirm-loading":e.signing,onOk:e.signMessage,"ok-text":t.$t("did.sign_modal.ok"),"cancel-text":t.$t("did.sign_modal.cancel")},{default:a(()=>[l(H,{"label-col":{span:4},"wrapper-col":{span:20},style:{"margin-top":"16px"}},{default:a(()=>[l(K,{label:t.$t("did.sign_modal.messageLabel"),required:""},{default:a(()=>[l(E,{value:e.signText,"onUpdate:value":n[5]||(n[5]=m=>e.signText=m),placeholder:t.$t("did.sign_modal.messagePlaceholder"),"auto-size":{minRows:3,maxRows:8}},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1}),e.signResult?(u(),F("div",qe,[w("p",Qe,s(t.$t("did.sign_modal.resultHeader")),1),w("pre",Ze,s(e.signResult.signature),1)])):p("v-if",!0)]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),p(" MTC inclusion proof drawer "),l(e.MtcVerifyDrawer,{open:e.mtcDrawerOpen,"onUpdate:open":n[7]||(n[7]=m=>e.mtcDrawerOpen=m),title:e.mtcDrawerTitle,hint:e.mtcDrawerHint},null,8,["open","title","hint"])])}const at=de(Pe,[["render",Ge],["__scopeId","data-v-553c4536"],["__file","/tmp/cc-web-panel-qWJQO5/repo/packages/web-panel/src/views/DID.vue"]]);export{at as default};
|