chainlesschain 0.160.1 → 0.161.2
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 +1 -1
- package/src/assets/web-panel/.build-hash +1 -1
- package/src/assets/web-panel/assets/{AIOps-BHiKMxFI.js → AIOps-CoZ9bIqF.js} +1 -1
- package/src/assets/web-panel/assets/{ActionButton-5QD5uzWP.js → ActionButton-BvMi4awy.js} +1 -1
- package/src/assets/web-panel/assets/{Analytics-D1JxsGBN.js → Analytics-hRk2ziup.js} +1 -1
- package/src/assets/web-panel/assets/{AppLayout-DykU9tOE.js → AppLayout-_JR3Gko8.js} +1 -1
- package/src/assets/web-panel/assets/{Audit-TGBqld9c.js → Audit-D8WmaHdX.js} +1 -1
- package/src/assets/web-panel/assets/{Backup-DjpzIwA6.js → Backup-CogYVeiE.js} +1 -1
- package/src/assets/web-panel/assets/{BaseInput-joQlVauq.js → BaseInput-NAp5_OPY.js} +1 -1
- package/src/assets/web-panel/assets/{Chat-9TYfosy-.js → Chat-DkQnhjfk.js} +1 -1
- package/src/assets/web-panel/assets/{Checkbox-OEOFA9GM.js → Checkbox-C9dkWb-7.js} +1 -1
- package/src/assets/web-panel/assets/{Codegen-5H5UgHJu.js → Codegen-BHyJ3j-p.js} +1 -1
- package/src/assets/web-panel/assets/{Col-BnLUipDp.js → Col-JyQOivHb.js} +1 -1
- package/src/assets/web-panel/assets/{Community-BF3R5GAl.js → Community-UMq5QuBA.js} +1 -1
- package/src/assets/web-panel/assets/{Compact-C1EkTFek.js → Compact-DGlwooBJ.js} +1 -1
- package/src/assets/web-panel/assets/{Compliance-CpP-ODRU.js → Compliance-2rWGO55k.js} +1 -1
- package/src/assets/web-panel/assets/{Cowork-CCgGSKVR.js → Cowork-V-tDxtrt.js} +1 -1
- package/src/assets/web-panel/assets/{Cron-CZ5pjRxn.js → Cron-YgEeQvdV.js} +1 -1
- package/src/assets/web-panel/assets/{Crosschain-C0P-5sm3.js → Crosschain-Cgd5cRKn.js} +1 -1
- package/src/assets/web-panel/assets/{DID-DPZKMApP.js → DID-swdBCdMZ.js} +1 -1
- package/src/assets/web-panel/assets/{Dashboard-G-BDDAov.js → Dashboard-ClnWtxsT.js} +2 -2
- package/src/assets/web-panel/assets/{Dropdown-CeywCcVQ.js → Dropdown-mlITwb7d.js} +1 -1
- package/src/assets/web-panel/assets/{Federation-DuFRY867.js → Federation-DtUN3wQa.js} +1 -1
- package/src/assets/web-panel/assets/{FormItemContext-CFSiPqbu.js → FormItemContext-BYmWDwAT.js} +1 -1
- package/src/assets/web-panel/assets/{Git-CjVRJDLg.js → Git-Du1k1iHz.js} +1 -1
- package/src/assets/web-panel/assets/{Governance-C0lyocJc.js → Governance-B2TFaWsf.js} +1 -1
- package/src/assets/web-panel/assets/{Inference-BVSAexgk.js → Inference-Cm_hmXla.js} +1 -1
- package/src/assets/web-panel/assets/{KnowledgeGraph-SE4jCwIn.js → KnowledgeGraph-DLaLMo4r.js} +1 -1
- package/src/assets/web-panel/assets/{Logs-BD5C-wTx.js → Logs-CElvIBBJ.js} +1 -1
- package/src/assets/web-panel/assets/{Marketplace-CL93dFBs.js → Marketplace-BlR3RCDV.js} +1 -1
- package/src/assets/web-panel/assets/{McpTools-x-Tibae-.js → McpTools-BpHkrlka.js} +1 -1
- package/src/assets/web-panel/assets/{Memory-CR8LXq37.js → Memory-DeU9ys_m.js} +1 -1
- package/src/assets/web-panel/assets/Mtc-CCJZpnJo.js +6 -0
- package/src/assets/web-panel/assets/Mtc-Cc8OJxe_.css +1 -0
- package/src/assets/web-panel/assets/{NLProgramming-B09F6gt2.js → NLProgramming-B_Tie6j1.js} +1 -1
- package/src/assets/web-panel/assets/{Notes-BYIn2GOe.js → Notes-BcpuirPj.js} +1 -1
- package/src/assets/web-panel/assets/{Organization-CybJTFN9.js → Organization-B_SHESSc.js} +1 -1
- package/src/assets/web-panel/assets/{Overflow-W4YLQ7yY.js → Overflow-R2SOGT0l.js} +1 -1
- package/src/assets/web-panel/assets/{P2P-kVj43R4j.js → P2P-IYYy3cEd.js} +1 -1
- package/src/assets/web-panel/assets/{Permissions-CfYE4XFJ.js → Permissions-CR1N42yW.js} +1 -1
- package/src/assets/web-panel/assets/{Pipeline-BVLo32Ak.js → Pipeline-nwFpKsU_.js} +1 -1
- package/src/assets/web-panel/assets/{Privacy-Efyb3xpJ.js → Privacy-BGpz72PX.js} +1 -1
- package/src/assets/web-panel/assets/{ProjectSettings-cBqrIhNN.js → ProjectSettings-CEDhpgbs.js} +1 -1
- package/src/assets/web-panel/assets/{Projects-BYY38oZd.js → Projects-DABi6ylb.js} +1 -1
- package/src/assets/web-panel/assets/{Providers-BsS27cWs.js → Providers-HzrcE8ma.js} +1 -1
- package/src/assets/web-panel/assets/{Recommend-BvMXwWFN.js → Recommend-BPhQwye7.js} +1 -1
- package/src/assets/web-panel/assets/{Reputation-DmwTtBfl.js → Reputation-BL6hTN1s.js} +1 -1
- package/src/assets/web-panel/assets/{Row-N-X7EJ3w.js → Row-2akLU3YS.js} +1 -1
- package/src/assets/web-panel/assets/{RssFeed-D9TjnwgF.js → RssFeed-D6qNq6Ht.js} +1 -1
- package/src/assets/web-panel/assets/{Search-Hapv-QkV.js → Search-R_b-u9oL.js} +1 -1
- package/src/assets/web-panel/assets/{Security-DWbFJK10.js → Security-DdW4hu_4.js} +1 -1
- package/src/assets/web-panel/assets/{Services-BPUmhVoH.js → Services-CnzEzGFN.js} +1 -1
- package/src/assets/web-panel/assets/{Skeleton-Bo5qPHbE.js → Skeleton-D6RevdW2.js} +1 -1
- package/src/assets/web-panel/assets/{Skills-JJ8uInMW.js → Skills-DD5ReHH7.js} +1 -1
- package/src/assets/web-panel/assets/{Sla-CEDF9zdV.js → Sla-CaQOOsjD.js} +1 -1
- package/src/assets/web-panel/assets/{SpeechSettings-oIoX_vCx.js → SpeechSettings-D-pGIn9Z.js} +1 -1
- package/src/assets/web-panel/assets/{Tasks-Cx5wgv5Z.js → Tasks-BbdO_i4Q.js} +1 -1
- package/src/assets/web-panel/assets/{Templates-BomcBlkN.js → Templates-CupAugDn.js} +1 -1
- package/src/assets/web-panel/assets/{Tenant-BxSQZUNh.js → Tenant-rseAzHcY.js} +1 -1
- package/src/assets/web-panel/assets/{Tokens-BlPPoB3C.js → Tokens-DXMokNbR.js} +1 -1
- package/src/assets/web-panel/assets/{Trigger-Bhjmjsc5.js → Trigger-DkSZjOlY.js} +1 -1
- package/src/assets/web-panel/assets/{Trust-Dsjv7rkb.js → Trust-CKb7QDH1.js} +1 -1
- package/src/assets/web-panel/assets/{VideoEditing-BsVR1PN8.js → VideoEditing-CSOjdBZg.js} +1 -1
- package/src/assets/web-panel/assets/{Wallet-dcRAYsdL.js → Wallet-DHbi5dHt.js} +1 -1
- package/src/assets/web-panel/assets/{WebAuthn-oqIS5PCi.js → WebAuthn-BkGDI33-.js} +1 -1
- package/src/assets/web-panel/assets/{WorkflowEditor-C_fYMBvB.js → WorkflowEditor-BFZ3RYva.js} +1 -1
- package/src/assets/web-panel/assets/{colors-D2P6CqS5.js → colors-D2tTvuDI.js} +1 -1
- package/src/assets/web-panel/assets/{compact-item-CG7qutT_.js → compact-item-CqCEUZiy.js} +1 -1
- package/src/assets/web-panel/assets/{createContext-y4UPKgbA.js → createContext-C6HFlAQP.js} +1 -1
- package/src/assets/web-panel/assets/{hasIn-Butbu9jZ.js → hasIn-yp2CbhYc.js} +1 -1
- package/src/assets/web-panel/assets/index-4cn1LmJ9.js +1 -0
- package/src/assets/web-panel/assets/{index-BtuwtDUE.js → index-B0jkl2Zb.js} +1 -1
- package/src/assets/web-panel/assets/{index-YmGOWX7h.js → index-B2qFUwGb.js} +1 -1
- package/src/assets/web-panel/assets/{index-BEfvpbz-.js → index-B74gWYqD.js} +1 -1
- package/src/assets/web-panel/assets/{index-BJN_3RTO.js → index-B8Qxu0q2.js} +1 -1
- package/src/assets/web-panel/assets/{index-C2K61jP8.js → index-B9b_mz4I.js} +1 -1
- package/src/assets/web-panel/assets/index-BAA1SFp1.js +1 -0
- package/src/assets/web-panel/assets/{index-rIbVsjde.js → index-BJeE7n_I.js} +1 -1
- package/src/assets/web-panel/assets/{index-Ceaxjpqh.js → index-BJoK7MkB.js} +1 -1
- package/src/assets/web-panel/assets/{index-CYlDKn3O.js → index-BTL2yIvT.js} +1 -1
- package/src/assets/web-panel/assets/{index-DrVnyYpX.js → index-BlVnFOFL.js} +1 -1
- package/src/assets/web-panel/assets/{index-89HJLKZ-.js → index-Blq49aTW.js} +1 -1
- package/src/assets/web-panel/assets/{index-vC5cTycG.js → index-BxSsO6Sm.js} +1 -1
- package/src/assets/web-panel/assets/{index-38mVlGHc.js → index-CA3g3EpL.js} +1 -1
- package/src/assets/web-panel/assets/{index-DLMJy9pE.js → index-CFoFkVUt.js} +1 -1
- package/src/assets/web-panel/assets/{index-DtNHlrxp.js → index-CWhXxdyo.js} +1 -1
- package/src/assets/web-panel/assets/{index-Bs9aHxDD.js → index-CXf0zL5i.js} +1 -1
- package/src/assets/web-panel/assets/{index-BQr8Y0o5.js → index-CcwZodUl.js} +1 -1
- package/src/assets/web-panel/assets/{index-DdgjeX4z.js → index-Cd6m6ynF.js} +1 -1
- package/src/assets/web-panel/assets/{index-BQfow_sh.js → index-Cfy9l115.js} +1 -1
- package/src/assets/web-panel/assets/{index-C1mK1Ga3.js → index-CijiVpfO.js} +1 -1
- package/src/assets/web-panel/assets/{index-hSilB_Q-.js → index-Cpfx7-LN.js} +1 -1
- package/src/assets/web-panel/assets/{index-BYZPJS7A.js → index-CrEEL63u.js} +1 -1
- package/src/assets/web-panel/assets/{index-C_8hWf5_.js → index-CucxAdwN.js} +1 -1
- package/src/assets/web-panel/assets/{index-qXvwlbkq.js → index-CvuBD5TK.js} +1 -1
- package/src/assets/web-panel/assets/{index-CyqU4Tck.js → index-Cw4v7ezB.js} +3 -3
- package/src/assets/web-panel/assets/{index-B6U6cYUa.js → index-D34iabcS.js} +1 -1
- package/src/assets/web-panel/assets/{index-BvJgRWBq.js → index-DEKuiAPQ.js} +1 -1
- package/src/assets/web-panel/assets/{index-Cc77JZKd.js → index-Dj4P0iWm.js} +1 -1
- package/src/assets/web-panel/assets/{index-CAeKBs9n.js → index-DjeNNVwu.js} +1 -1
- package/src/assets/web-panel/assets/{index-B4Jfv4EB.js → index-DlgMVieO.js} +1 -1
- package/src/assets/web-panel/assets/{index-CWh3IxEh.js → index-DnehXcB-.js} +1 -1
- package/src/assets/web-panel/assets/{index-Ci6jXp3l.js → index-JszcDpsT.js} +1 -1
- package/src/assets/web-panel/assets/{index-BCQ0WlB2.js → index-KdFFI-p3.js} +1 -1
- package/src/assets/web-panel/assets/{index-DnI4Aq0q.js → index-NNymVAza.js} +1 -1
- package/src/assets/web-panel/assets/{index-gWmZm8_Q.js → index-aw2DwKj-.js} +1 -1
- package/src/assets/web-panel/assets/{index-Dx_ZTZo_.js → index-nzDx0JAR.js} +1 -1
- package/src/assets/web-panel/assets/{index-C1ucrJLg.js → index-w1xShUDf.js} +1 -1
- package/src/assets/web-panel/assets/{initDefaultProps-CZRZ-1bk.js → initDefaultProps-DfdVxwz6.js} +1 -1
- package/src/assets/web-panel/assets/{motion-CvU8SiWF.js → motion-CL0bdvJg.js} +1 -1
- package/src/assets/web-panel/assets/{move-ipAfWhya.js → move-Bo9Fgzv7.js} +1 -1
- package/src/assets/web-panel/assets/{omit-D6bJEjz9.js → omit-C-cc6wHr.js} +1 -1
- package/src/assets/web-panel/assets/{pickAttrs-Dpvzf7sL.js → pickAttrs-CjLp5RN-.js} +1 -1
- package/src/assets/web-panel/assets/{placementArrow-D_tEolP1.js → placementArrow-CJa8gsqa.js} +1 -1
- package/src/assets/web-panel/assets/{responsiveObserve-BEFI7neO.js → responsiveObserve-CcDj3P-p.js} +1 -1
- package/src/assets/web-panel/assets/{slide-Bte_KOqM.js → slide-CpvbHO26.js} +1 -1
- package/src/assets/web-panel/assets/{statusUtils-K4xaDRuO.js → statusUtils-BK69kP1U.js} +1 -1
- package/src/assets/web-panel/assets/{styleChecker-Cl9YgOVY.js → styleChecker-CDvBRzsG.js} +1 -1
- package/src/assets/web-panel/assets/{useFlexGapSupport-DNstl1wK.js → useFlexGapSupport-CRN_hzJt.js} +1 -1
- package/src/assets/web-panel/assets/{vnode-ChB-8cXr.js → vnode-Bzp-FsbB.js} +1 -1
- package/src/assets/web-panel/assets/{zoom-meTNBulL.js → zoom-BHqpWXJV.js} +1 -1
- package/src/assets/web-panel/index.html +1 -1
- package/src/commands/crosschain.js +564 -8
- package/src/commands/mtc.js +1334 -0
- package/src/lib/cross-chain-mtc.js +904 -0
- package/src/assets/web-panel/assets/Mtc-C-PfF5B3.css +0 -1
- package/src/assets/web-panel/assets/Mtc-CEtRtMcc.js +0 -1
- package/src/assets/web-panel/assets/index-B5FRjJMb.js +0 -1
- package/src/assets/web-panel/assets/index-B7FV5EnN.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{_ as Ee,a as Ie,c as v}from"./index-CyqU4Tck.js";import{u as qe}from"./ws-D_5-FRIb.js";import{s as Me}from"./community-parser-CO25nZFt.js";import{R as Pe,al as De,aR as Ke,aw as Ve,aQ as Je,w as de,a0 as We,aF as me,af as Qe,A as Ye}from"./icons-DvZE-RKs.js";import{o as He,M as p,R as b,P as r,c as a,N as l,Q as h,S as m,K as d,r as g,L as c,O as f,u as _,F,_ as M,$ as ye,f as N,a as le}from"./vendor-B6ToihkA.js";function P(t){const i=Me(t);if(!i)return null;try{return JSON.parse(i)}catch{}const n=i.match(/\{[\s\S]*\}|\[[\s\S]*\]/);if(!n)return null;try{return JSON.parse(n[0])}catch{return null}}const Ge=Object.freeze(["file-md5","file-sha1","file-sha256","file-sha512","ipv4","ipv6","domain","url","email"]);function S(t,i=0){return typeof t=="number"&&Number.isFinite(t)?t:i}function fe(t,i=0){if(!t||typeof t!="object")return null;const n=t.id||"";if(!n)return null;const z=Array.isArray(t.labels)?t.labels:[];return{key:n,id:n,type:String(t.type||""),value:String(t.value||""),labels:z,confidence:t.confidence!=null?S(t.confidence,null):null,sourceId:t.sourceId??t.source_id??null,sourceName:t.sourceName??t.source_name??null,validFrom:t.validFrom??t.valid_from??null,validUntil:t.validUntil??t.valid_until??null,firstSeenAt:t.firstSeenAt??t.first_seen_at??null,lastSeenAt:t.lastSeenAt??t.last_seen_at??null,_idx:i}}function Xe(t){const i=P(t);return Array.isArray(i)?i.map(fe).filter(Boolean):[]}function Ze(t){const i=P(t);return!i||typeof i!="object"||Array.isArray(i)?null:{matched:!!i.matched,type:String(i.type||"unknown"),indicator:i.indicator?fe(i.indicator):null}}function et(t){const i={total:0,byType:{}},n=P(t);if(!n||typeof n!="object"||Array.isArray(n))return i;if(i.total=S(n.total,0),n.byType&&typeof n.byType=="object")for(const[z,R]of Object.entries(n.byType))typeof R=="number"&&Number.isFinite(R)&&(i.byType[z]=R);return i}function tt(t,i=0){if(!t||typeof t!="object")return null;const n=t.entity||"";return n?{key:n,entity:n,eventCount:S(t.eventCount??t.event_count,0),failureRate:S(t.failureRate??t.failure_rate,0),uniqueResources:S(t.uniqueResources??t.unique_resources,0),uniqueActions:S(t.uniqueActions??t.unique_actions,0),burstiness:S(t.burstiness,0),riskScore:S(t.riskScore??t.risk_score,0),_idx:i}:null}function at(t){const i=P(t);return Array.isArray(i)?i.map(tt).filter(Boolean):[]}function lt(t,i=0){return!t||typeof t!="object"?null:{key:i,score:S(t.score,0),reasons:Array.isArray(t.reasons)?t.reasons:[],event:t.event&&typeof t.event=="object"?t.event:null,_idx:i}}function ot(t){const i=P(t);return Array.isArray(i)?i.map(lt).filter(Boolean):[]}function oe(t){if(!t)return{noAuditLog:!1,error:""};const i=/no such table:\s*audit_log/i.test(t),n=t.match(/Failed:\s*(.+?)(?:\r?\n|$)/i);return{noAuditLog:i,error:n?n[1].trim():""}}function nt(t){if(t==null||t==="")return"—";const i=typeof t=="number"?new Date(t):new Date(String(t));return isNaN(i.getTime())?String(t):i.toLocaleString("zh-CN",{hour12:!1})}const it={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},st={class:"page-title"},rt={class:"page-sub"},ct={class:"filter-bar"},ut={key:1,style:{color:"var(--text-primary)","font-family":"monospace","font-size":"12px","word-break":"break-all"}},pt={key:0,style:{color:"var(--text-muted)"}},dt={key:1,style:{color:"var(--text-muted)"}},mt={key:0,style:{color:"var(--text-secondary)","font-size":"12px"}},yt={key:1,style:{color:"var(--text-muted)"}},ft={key:5,style:{color:"var(--text-secondary)","font-size":"11px"}},vt={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},bt={style:{color:"var(--text-primary)",margin:"16px 0 8px","font-size":"14px"}},gt={key:0,style:{color:"var(--text-primary)","font-family":"monospace","font-weight":"500"}},ht={key:2,style:{color:"var(--text-secondary)"}},_t={key:5,style:{color:"var(--text-secondary)","font-family":"monospace","font-size":"11px"}},kt={style:{padding:"30px",color:"var(--text-muted)","text-align":"center"}},xt={key:2,style:{color:"var(--text-primary)",margin:"24px 0 8px","font-size":"14px"}},$t={style:{flex:"1"}},zt={style:{display:"flex",gap:"8px","align-items":"center"}},St={key:0,style:{color:"var(--text-primary)","font-family":"monospace","font-size":"12px"}},At={key:1,style:{color:"var(--text-secondary)","font-size":"11px"}},Tt={key:0,style:{"margin-top":"4px"}},Ct={style:{"margin-top":"8px","font-size":"12px",color:"var(--text-secondary)"}},Ft={key:0,style:{"margin-top":"12px","font-size":"12px"}},Rt={style:{color:"var(--text-secondary)"}},Ot={style:{color:"var(--text-secondary)"}},jt={key:0,style:{"margin-top":"4px"}},wt={style:{color:"var(--text-secondary)","font-size":"12px",margin:"0"}},Lt={style:{color:"var(--text-secondary)","font-size":"12px",margin:"0"}},Nt={__name:"Compliance",setup(t){const i=qe(),{t:n}=Ie(),z=g(!1),R=g(!1),J=g(!1),W=g(!1),Q=g([]),U=g({total:0,byType:{}}),B=g([]),O=g([]),A=g({noAuditLog:!1,error:""}),D=g("threat"),K=g(""),Y=g(!1),E=g(!1),I=g(!1),H=le({observable:""}),k=g(null),T=le({entity:"",days:30}),x=le({entity:"",threshold:.7,days:1}),ve=N(()=>[{title:n("compliance.cols.type"),key:"type",width:"120px"},{title:n("compliance.cols.value"),key:"value"},{title:n("compliance.cols.labels"),key:"labels",width:"160px"},{title:n("compliance.cols.confidence"),key:"confidence",width:"90px"},{title:n("compliance.cols.source"),key:"source",width:"160px"},{title:n("compliance.cols.lastSeen"),key:"lastSeen",width:"160px"},{title:n("compliance.cols.action"),key:"action",width:"90px"}]),be=N(()=>[{title:n("compliance.cols.entity"),key:"entity",width:"180px"},{title:n("compliance.cols.riskScore"),key:"riskScore"},{title:n("compliance.cols.eventCount"),key:"eventCount",width:"90px"},{title:n("compliance.cols.failureRate"),key:"failureRate",width:"90px"},{title:n("compliance.cols.uniqueResources"),key:"uniqueResources",width:"90px"},{title:n("compliance.cols.burstiness"),key:"burstiness",width:"90px"}]),ge=N(()=>K.value?Q.value.filter(e=>e.type===K.value):Q.value),he=N(()=>Object.keys(U.value.byType).length),_e=N(()=>Object.entries(U.value.byType).sort((e,s)=>s[1]-e[1])),ne=N(()=>B.value.filter(e=>e.riskScore>=70).length),ke={ipv4:"blue",ipv6:"cyan",domain:"purple",url:"magenta",email:"gold","file-md5":"orange","file-sha1":"orange","file-sha256":"red","file-sha512":"red",unknown:"default"};function G(e){return ke[e]||"default"}function xe(e){return e>=80?"#ff4d4f":e>=50?"#faad14":"#52c41a"}function ie(e){return e>=70?"#ff4d4f":e>=40?"#faad14":"#52c41a"}function $e(e,s){return e?e.length>s?e.slice(0,s)+"...":e:""}function ze({key:e}){e==="match"?(k.value=null,Y.value=!0):e==="ueba-build"?E.value=!0:e==="ueba-analyze"&&(I.value=!0)}async function V(){z.value=!0;try{const[e,s,y]=await Promise.all([i.execute("compliance threat-intel list --limit 200 --json",1e4).catch(()=>({output:""})),i.execute("compliance threat-intel stats --json",8e3).catch(()=>({output:""})),i.execute("compliance ueba top --top-k 20 --json",1e4).catch(()=>({output:""}))]);Q.value=Xe(e.output),U.value=et(s.output),A.value=oe(y.output),B.value=A.value.noAuditLog?[]:at(y.output)}catch(e){v.error(n("compliance.msg.loadFailed")+": "+(e?.message||e))}finally{z.value=!1}}async function Se(){const e=H.observable.trim();if(!e){v.warning(n("compliance.msg.matchEmpty"));return}R.value=!0,k.value=null;try{const s=`compliance threat-intel match "${e.replace(/"/g,'\\"')}" --json`,{output:y}=await i.execute(s,8e3),$=Ze(y);if(!$){v.error(n("compliance.msg.matchFailed")+": "+y.slice(0,120));return}k.value=$,$.matched?v.warning(n("compliance.msg.matchHit",{type:$.type})):$.type==="unknown"?v.info(n("compliance.msg.matchUnknownType")):v.success(n("compliance.msg.matchMiss",{type:$.type}))}catch(s){v.error(n("compliance.msg.matchFailed")+": "+(s?.message||s))}finally{R.value=!1}}async function Ae(e){try{const s=`compliance threat-intel remove ${e.type} "${e.value.replace(/"/g,'\\"')}" --json`,{output:y}=await i.execute(s,8e3);if(/error|失败/i.test(y)&&!/"removed"/.test(y)){v.error(n("compliance.msg.deleteFailed")+": "+y.slice(0,120));return}v.success(n("compliance.msg.deleteSuccess")),await V()}catch(s){v.error(n("compliance.msg.deleteFailed")+": "+(s?.message||s))}}async function Te(){J.value=!0;try{const e=["compliance ueba baseline"];T.entity.trim()&&e.push(`--entity "${T.entity.trim().replace(/"/g,'\\"')}"`),T.days!=null&&e.push(`--days ${T.days}`),e.push("--json");const{output:s}=await i.execute(e.join(" "),3e4),y=oe(s);if(y.noAuditLog){A.value=y,v.warning(n("compliance.msg.auditEmptyBuild")),E.value=!1;return}if(y.error){v.error(n("compliance.msg.buildFailed")+": "+y.error);return}v.success(n("compliance.msg.buildSuccess")),E.value=!1,D.value="ueba",await V()}catch(e){v.error(n("compliance.msg.buildFailed")+": "+(e?.message||e))}finally{J.value=!1}}async function Ce(){W.value=!0;try{const e=["compliance ueba analyze"];x.entity.trim()&&e.push(`--entity "${x.entity.trim().replace(/"/g,'\\"')}"`),x.threshold!=null&&e.push(`--threshold ${x.threshold}`),x.days!=null&&e.push(`--days ${x.days}`),e.push("--json");const{output:s}=await i.execute(e.join(" "),3e4),y=oe(s);if(y.noAuditLog){A.value=y,v.warning(n("compliance.msg.auditEmptyAnalyze")),I.value=!1;return}if(y.error&&!s.includes("[")){v.error(n("compliance.msg.analyzeFailed")+": "+y.error);return}O.value=ot(s),v.success(n("compliance.msg.analyzeSuccess",{n:O.value.length})),I.value=!1,D.value="ueba"}catch(e){v.error(n("compliance.msg.analyzeFailed")+": "+(e?.message||e))}finally{W.value=!1}}return He(V),(e,s)=>{const y=d("a-button"),$=d("a-menu-item"),Fe=d("a-menu"),Re=d("a-dropdown"),se=d("a-space"),w=d("a-statistic"),j=d("a-card"),q=d("a-col"),Oe=d("a-row"),C=d("a-tag"),re=d("a-radio-button"),je=d("a-radio-group"),we=d("a-popconfirm"),ce=d("a-table"),ue=d("a-tab-pane"),pe=d("a-alert"),Le=d("a-progress"),Ne=d("a-list-item"),Ue=d("a-list"),Be=d("a-tabs"),X=d("a-input"),L=d("a-form-item"),Z=d("a-form"),ee=d("a-modal"),te=d("a-input-number");return c(),p("div",null,[b("div",it,[b("div",null,[b("h2",st,r(e.$t("compliance.title")),1),b("p",rt,r(e.$t("compliance.subtitle")),1)]),a(se,null,{default:l(()=>[a(y,{loading:z.value,onClick:V},{icon:l(()=>[a(_(Pe))]),default:l(()=>[f(" "+r(e.$t("compliance.refresh")),1)]),_:1},8,["loading"]),a(Re,{trigger:["click"]},{overlay:l(()=>[a(Fe,{onClick:ze},{default:l(()=>[a($,{key:"match"},{default:l(()=>[a(_(Ke)),f(" "+r(e.$t("compliance.actions.match")),1)]),_:1}),a($,{key:"ueba-build"},{default:l(()=>[a(_(Ve)),f(" "+r(e.$t("compliance.actions.uebaBuild")),1)]),_:1}),a($,{key:"ueba-analyze"},{default:l(()=>[a(_(Je)),f(" "+r(e.$t("compliance.actions.uebaAnalyze")),1)]),_:1})]),_:1})]),default:l(()=>[a(y,{type:"primary"},{icon:l(()=>[a(_(De))]),default:l(()=>[f(" "+r(e.$t("compliance.actionDropdown")),1)]),_:1})]),_:1})]),_:1})]),a(Oe,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:l(()=>[a(q,{xs:12,sm:8,lg:5},{default:l(()=>[a(j,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:l(()=>[a(w,{title:e.$t("compliance.stats.iocTotal"),value:U.value.total,"value-style":{color:"#1677ff",fontSize:"20px"}},{prefix:l(()=>[a(_(de))]),_:1},8,["title","value"])]),_:1})]),_:1}),a(q,{xs:12,sm:8,lg:5},{default:l(()=>[a(j,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:l(()=>[a(w,{title:e.$t("compliance.stats.iocTypes"),value:he.value,"value-style":{color:"#13c2c2",fontSize:"20px"}},{prefix:l(()=>[a(_(We))]),_:1},8,["title","value"])]),_:1})]),_:1}),a(q,{xs:12,sm:8,lg:5},{default:l(()=>[a(j,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:l(()=>[a(w,{title:e.$t("compliance.stats.riskEntities"),value:B.value.length,"value-style":{color:"#722ed1",fontSize:"20px"}},{prefix:l(()=>[a(_(me))]),_:1},8,["title","value"])]),_:1})]),_:1}),a(q,{xs:12,sm:8,lg:5},{default:l(()=>[a(j,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:l(()=>[a(w,{title:e.$t("compliance.stats.highRisk"),value:ne.value,"value-style":{color:ne.value>0?"#ff4d4f":"#52c41a",fontSize:"20px"}},{prefix:l(()=>[a(_(Qe))]),_:1},8,["title","value","value-style"])]),_:1})]),_:1}),a(q,{xs:24,sm:8,lg:4},{default:l(()=>[a(j,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:l(()=>[a(w,{title:e.$t("compliance.stats.recentAnomalies"),value:O.value.length,"value-style":{color:"#faad14",fontSize:"20px"}},{prefix:l(()=>[a(_(Ye))]),_:1},8,["title","value"])]),_:1})]),_:1})]),_:1}),U.value.total>0?(c(),h(j,{key:0,title:e.$t("compliance.typeBreakdown"),size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"20px"},"body-style":{padding:"12px 16px"}},{default:l(()=>[a(se,{size:[12,8],wrap:""},{default:l(()=>[(c(!0),p(F,null,M(_e.value,([o,u])=>(c(),h(C,{key:o,color:G(o)},{default:l(()=>[f(r(o)+": "+r(u),1)]),_:2},1032,["color"]))),128))]),_:1})]),_:1},8,["title"])):m("",!0),a(Be,{activeKey:D.value,"onUpdate:activeKey":s[1]||(s[1]=o=>D.value=o),class:"compliance-tabs"},{default:l(()=>[a(ue,{key:"threat",tab:e.$t("compliance.tabs.threat")},{default:l(()=>[b("div",ct,[a(je,{value:K.value,"onUpdate:value":s[0]||(s[0]=o=>K.value=o),size:"small"},{default:l(()=>[a(re,{value:""},{default:l(()=>[f(r(e.$t("compliance.filter.all")),1)]),_:1}),(c(!0),p(F,null,M(_(Ge),o=>(c(),h(re,{key:o,value:o},{default:l(()=>[f(r(o),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),a(ce,{columns:ve.value,"data-source":ge.value,pagination:{pageSize:20,showTotal:o=>e.$t("compliance.table.totalSuffix",{n:o})},size:"small",loading:z.value,style:{background:"var(--bg-card)"}},{bodyCell:l(({column:o,record:u})=>[o.key==="type"?(c(),h(C,{key:0,color:G(u.type),style:{"font-family":"monospace"}},{default:l(()=>[f(r(u.type),1)]),_:2},1032,["color"])):m("",!0),o.key==="value"?(c(),p("span",ut,r($e(u.value,64)),1)):m("",!0),o.key==="labels"?(c(),p(F,{key:2},[(c(!0),p(F,null,M(u.labels,ae=>(c(),h(C,{key:ae,color:"orange",style:{"font-size":"10px",margin:"1px"}},{default:l(()=>[f(r(ae),1)]),_:2},1024))),128)),u.labels.length?m("",!0):(c(),p("span",pt,"—"))],64)):m("",!0),o.key==="confidence"?(c(),p(F,{key:3},[u.confidence!=null?(c(),p("span",{key:0,style:ye({color:xe(u.confidence),fontWeight:500})},r(u.confidence),5)):(c(),p("span",dt,"—"))],64)):m("",!0),o.key==="source"?(c(),p(F,{key:4},[u.sourceName?(c(),p("span",mt,r(u.sourceName),1)):(c(),p("span",yt,"—"))],64)):m("",!0),o.key==="lastSeen"?(c(),p("span",ft,r(_(nt)(u.lastSeenAt)),1)):m("",!0),o.key==="action"?(c(),h(we,{key:6,title:e.$t("compliance.table.deleteConfirm"),"ok-text":e.$t("compliance.table.deleteOk"),"cancel-text":e.$t("compliance.table.cancel"),onConfirm:ae=>Ae(u)},{default:l(()=>[a(y,{size:"small",type:"link",danger:""},{default:l(()=>[f(r(e.$t("compliance.table.delete")),1)]),_:1})]),_:1},8,["title","ok-text","cancel-text","onConfirm"])):m("",!0)]),emptyText:l(()=>[b("div",vt,[a(_(de),{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),f(" "+r(e.$t("compliance.table.emptyThreatsLine1"))+" ",1),s[11]||(s[11]=b("code",{style:{"font-size":"11px"}},"cc compliance threat-intel import <file.json>",-1))])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"]),a(ue,{key:"ueba",tab:e.$t("compliance.tabs.ueba")},{default:l(()=>[A.value.noAuditLog?(c(),h(pe,{key:0,type:"info","show-icon":"",message:e.$t("compliance.ueba.noAuditLog"),description:e.$t("compliance.ueba.noAuditLogDesc"),style:{"margin-bottom":"16px"}},null,8,["message","description"])):A.value.error?(c(),h(pe,{key:1,type:"error","show-icon":"",message:e.$t("compliance.ueba.errorMessage",{err:A.value.error}),style:{"margin-bottom":"16px"}},null,8,["message"])):m("",!0),b("h3",bt,r(e.$t("compliance.ueba.topRiskTitle",{count:B.value.length})),1),a(ce,{columns:be.value,"data-source":B.value,pagination:!1,size:"small",loading:z.value,style:{background:"var(--bg-card)"}},{bodyCell:l(({column:o,record:u})=>[o.key==="entity"?(c(),p("span",gt,r(u.entity),1)):m("",!0),o.key==="riskScore"?(c(),h(Le,{key:1,percent:Math.min(u.riskScore,100),"stroke-color":ie(u.riskScore),size:"small",format:()=>u.riskScore.toFixed(1)},null,8,["percent","stroke-color","format"])):m("",!0),o.key==="eventCount"?(c(),p("span",ht,r(u.eventCount),1)):m("",!0),o.key==="failureRate"?(c(),p("span",{key:3,style:ye({color:u.failureRate>.3?"#ff4d4f":"var(--text-secondary)",fontFamily:"monospace"})},r((u.failureRate*100).toFixed(1))+"% ",5)):m("",!0),o.key==="uniqueResources"?(c(),h(C,{key:4,color:"cyan",style:{"font-size":"11px"}},{default:l(()=>[f(r(u.uniqueResources),1)]),_:2},1024)):m("",!0),o.key==="burstiness"?(c(),p("span",_t,r((u.burstiness*100).toFixed(0))+"% ",1)):m("",!0)]),emptyText:l(()=>[b("div",kt,[a(_(me),{style:{"font-size":"32px","margin-bottom":"8px",display:"block"}}),f(" "+r(A.value.noAuditLog?e.$t("compliance.table.emptyAuditEntities"):e.$t("compliance.table.emptyRiskEntities")),1)])]),_:1},8,["columns","data-source","loading"]),O.value.length?(c(),p("h3",xt,r(e.$t("compliance.ueba.anomalyTitle",{count:O.value.length})),1)):m("",!0),O.value.length?(c(),h(Ue,{key:3,size:"small","data-source":O.value,locale:{emptyText:e.$t("compliance.table.noAnomalies")}},{renderItem:l(({item:o})=>[a(Ne,{style:{background:"var(--bg-card)",padding:"10px 16px"}},{default:l(()=>[b("div",$t,[b("div",zt,[a(C,{color:ie(o.score*100)},{default:l(()=>[f("score "+r(o.score.toFixed(2)),1)]),_:2},1032,["color"]),o.event?.entity?(c(),p("span",St,r(o.event.entity),1)):m("",!0),o.event?.action?(c(),p("span",At," → "+r(o.event.action),1)):m("",!0)]),o.reasons.length?(c(),p("div",Tt,[(c(!0),p(F,null,M(o.reasons,u=>(c(),h(C,{key:u,color:"volcano",style:{"font-size":"10px",margin:"1px"}},{default:l(()=>[f(r(u),1)]),_:2},1024))),128))])):m("",!0)])]),_:2},1024)]),_:1},8,["data-source","locale"])):m("",!0)]),_:1},8,["tab"])]),_:1},8,["activeKey"]),a(ee,{open:Y.value,"onUpdate:open":s[3]||(s[3]=o=>Y.value=o),title:e.$t("compliance.match.modalTitle"),"confirm-loading":R.value,width:500,"ok-text":e.$t("compliance.match.ok"),"cancel-text":e.$t("compliance.match.close"),onOk:Se},{default:l(()=>[a(Z,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:l(()=>[a(L,{label:e.$t("compliance.match.label"),required:""},{default:l(()=>[a(X,{value:H.observable,"onUpdate:value":s[2]||(s[2]=o=>H.observable=o),placeholder:e.$t("compliance.match.placeholder"),"allow-clear":""},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1}),k.value?(c(),h(j,{key:0,size:"small",style:{background:"var(--bg-base)","margin-top":"8px"}},{default:l(()=>[a(w,{title:e.$t("compliance.match.result"),value:k.value.matched?e.$t("compliance.match.hit"):e.$t("compliance.match.miss"),"value-style":{color:k.value.matched?"#ff4d4f":"#52c41a"}},null,8,["title","value","value-style"]),b("div",Ct,[f(r(e.$t("compliance.match.detectType"))+" ",1),a(C,{color:G(k.value.type)},{default:l(()=>[f(r(k.value.type),1)]),_:1},8,["color"])]),k.value.indicator?(c(),p("div",Ft,[b("div",Rt,r(e.$t("compliance.match.sourcePrefix"))+" "+r(k.value.indicator.sourceName||"—"),1),b("div",Ot,r(e.$t("compliance.match.confidencePrefix"))+" "+r(k.value.indicator.confidence??"—"),1),k.value.indicator.labels.length?(c(),p("div",jt,[(c(!0),p(F,null,M(k.value.indicator.labels,o=>(c(),h(C,{key:o,color:"orange",style:{"font-size":"10px"}},{default:l(()=>[f(r(o),1)]),_:2},1024))),128))])):m("",!0)])):m("",!0)]),_:1})):m("",!0)]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),a(ee,{open:E.value,"onUpdate:open":s[6]||(s[6]=o=>E.value=o),title:e.$t("compliance.build.modalTitle"),"confirm-loading":J.value,width:480,"ok-text":e.$t("compliance.build.ok"),"cancel-text":e.$t("compliance.build.cancel"),onOk:Te},{default:l(()=>[a(Z,{"label-col":{span:6},"wrapper-col":{span:18},style:{"margin-top":"16px"}},{default:l(()=>[a(L,{label:e.$t("compliance.build.entityLabel")},{default:l(()=>[a(X,{value:T.entity,"onUpdate:value":s[4]||(s[4]=o=>T.entity=o),placeholder:e.$t("compliance.build.entityPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),a(L,{label:e.$t("compliance.build.daysLabel")},{default:l(()=>[a(te,{value:T.days,"onUpdate:value":s[5]||(s[5]=o=>T.days=o),min:1,max:365,placeholder:e.$t("compliance.build.daysPlaceholder"),style:{width:"100%"}},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1}),b("p",wt,r(e.$t("compliance.build.footnote")),1)]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),a(ee,{open:I.value,"onUpdate:open":s[10]||(s[10]=o=>I.value=o),title:e.$t("compliance.analyze.modalTitle"),"confirm-loading":W.value,width:480,"ok-text":e.$t("compliance.analyze.ok"),"cancel-text":e.$t("compliance.analyze.cancel"),onOk:Ce},{default:l(()=>[a(Z,{"label-col":{span:6},"wrapper-col":{span:18},style:{"margin-top":"16px"}},{default:l(()=>[a(L,{label:e.$t("compliance.analyze.entityLabel")},{default:l(()=>[a(X,{value:x.entity,"onUpdate:value":s[7]||(s[7]=o=>x.entity=o),placeholder:e.$t("compliance.analyze.entityPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),a(L,{label:e.$t("compliance.analyze.thresholdLabel")},{default:l(()=>[a(te,{value:x.threshold,"onUpdate:value":s[8]||(s[8]=o=>x.threshold=o),min:0,max:1,step:.05,style:{width:"100%"}},null,8,["value"])]),_:1},8,["label"]),a(L,{label:e.$t("compliance.analyze.daysLabel")},{default:l(()=>[a(te,{value:x.days,"onUpdate:value":s[9]||(s[9]=o=>x.days=o),min:1,max:30,style:{width:"100%"}},null,8,["value"])]),_:1},8,["label"])]),_:1}),b("p",Lt,r(e.$t("compliance.analyze.footnote")),1)]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"])])}}},Mt=Ee(Nt,[["__scopeId","data-v-81155fa8"]]);export{Mt as default};
|
|
1
|
+
import{_ as Ee,a as Ie,c as v}from"./index-Cw4v7ezB.js";import{u as qe}from"./ws-D_5-FRIb.js";import{s as Me}from"./community-parser-CO25nZFt.js";import{R as Pe,al as De,aR as Ke,aw as Ve,aQ as Je,w as de,a0 as We,aF as me,af as Qe,A as Ye}from"./icons-DvZE-RKs.js";import{o as He,M as p,R as b,P as r,c as a,N as l,Q as h,S as m,K as d,r as g,L as c,O as f,u as _,F,_ as M,$ as ye,f as N,a as le}from"./vendor-B6ToihkA.js";function P(t){const i=Me(t);if(!i)return null;try{return JSON.parse(i)}catch{}const n=i.match(/\{[\s\S]*\}|\[[\s\S]*\]/);if(!n)return null;try{return JSON.parse(n[0])}catch{return null}}const Ge=Object.freeze(["file-md5","file-sha1","file-sha256","file-sha512","ipv4","ipv6","domain","url","email"]);function S(t,i=0){return typeof t=="number"&&Number.isFinite(t)?t:i}function fe(t,i=0){if(!t||typeof t!="object")return null;const n=t.id||"";if(!n)return null;const z=Array.isArray(t.labels)?t.labels:[];return{key:n,id:n,type:String(t.type||""),value:String(t.value||""),labels:z,confidence:t.confidence!=null?S(t.confidence,null):null,sourceId:t.sourceId??t.source_id??null,sourceName:t.sourceName??t.source_name??null,validFrom:t.validFrom??t.valid_from??null,validUntil:t.validUntil??t.valid_until??null,firstSeenAt:t.firstSeenAt??t.first_seen_at??null,lastSeenAt:t.lastSeenAt??t.last_seen_at??null,_idx:i}}function Xe(t){const i=P(t);return Array.isArray(i)?i.map(fe).filter(Boolean):[]}function Ze(t){const i=P(t);return!i||typeof i!="object"||Array.isArray(i)?null:{matched:!!i.matched,type:String(i.type||"unknown"),indicator:i.indicator?fe(i.indicator):null}}function et(t){const i={total:0,byType:{}},n=P(t);if(!n||typeof n!="object"||Array.isArray(n))return i;if(i.total=S(n.total,0),n.byType&&typeof n.byType=="object")for(const[z,R]of Object.entries(n.byType))typeof R=="number"&&Number.isFinite(R)&&(i.byType[z]=R);return i}function tt(t,i=0){if(!t||typeof t!="object")return null;const n=t.entity||"";return n?{key:n,entity:n,eventCount:S(t.eventCount??t.event_count,0),failureRate:S(t.failureRate??t.failure_rate,0),uniqueResources:S(t.uniqueResources??t.unique_resources,0),uniqueActions:S(t.uniqueActions??t.unique_actions,0),burstiness:S(t.burstiness,0),riskScore:S(t.riskScore??t.risk_score,0),_idx:i}:null}function at(t){const i=P(t);return Array.isArray(i)?i.map(tt).filter(Boolean):[]}function lt(t,i=0){return!t||typeof t!="object"?null:{key:i,score:S(t.score,0),reasons:Array.isArray(t.reasons)?t.reasons:[],event:t.event&&typeof t.event=="object"?t.event:null,_idx:i}}function ot(t){const i=P(t);return Array.isArray(i)?i.map(lt).filter(Boolean):[]}function oe(t){if(!t)return{noAuditLog:!1,error:""};const i=/no such table:\s*audit_log/i.test(t),n=t.match(/Failed:\s*(.+?)(?:\r?\n|$)/i);return{noAuditLog:i,error:n?n[1].trim():""}}function nt(t){if(t==null||t==="")return"—";const i=typeof t=="number"?new Date(t):new Date(String(t));return isNaN(i.getTime())?String(t):i.toLocaleString("zh-CN",{hour12:!1})}const it={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},st={class:"page-title"},rt={class:"page-sub"},ct={class:"filter-bar"},ut={key:1,style:{color:"var(--text-primary)","font-family":"monospace","font-size":"12px","word-break":"break-all"}},pt={key:0,style:{color:"var(--text-muted)"}},dt={key:1,style:{color:"var(--text-muted)"}},mt={key:0,style:{color:"var(--text-secondary)","font-size":"12px"}},yt={key:1,style:{color:"var(--text-muted)"}},ft={key:5,style:{color:"var(--text-secondary)","font-size":"11px"}},vt={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},bt={style:{color:"var(--text-primary)",margin:"16px 0 8px","font-size":"14px"}},gt={key:0,style:{color:"var(--text-primary)","font-family":"monospace","font-weight":"500"}},ht={key:2,style:{color:"var(--text-secondary)"}},_t={key:5,style:{color:"var(--text-secondary)","font-family":"monospace","font-size":"11px"}},kt={style:{padding:"30px",color:"var(--text-muted)","text-align":"center"}},xt={key:2,style:{color:"var(--text-primary)",margin:"24px 0 8px","font-size":"14px"}},$t={style:{flex:"1"}},zt={style:{display:"flex",gap:"8px","align-items":"center"}},St={key:0,style:{color:"var(--text-primary)","font-family":"monospace","font-size":"12px"}},At={key:1,style:{color:"var(--text-secondary)","font-size":"11px"}},Tt={key:0,style:{"margin-top":"4px"}},Ct={style:{"margin-top":"8px","font-size":"12px",color:"var(--text-secondary)"}},Ft={key:0,style:{"margin-top":"12px","font-size":"12px"}},Rt={style:{color:"var(--text-secondary)"}},Ot={style:{color:"var(--text-secondary)"}},jt={key:0,style:{"margin-top":"4px"}},wt={style:{color:"var(--text-secondary)","font-size":"12px",margin:"0"}},Lt={style:{color:"var(--text-secondary)","font-size":"12px",margin:"0"}},Nt={__name:"Compliance",setup(t){const i=qe(),{t:n}=Ie(),z=g(!1),R=g(!1),J=g(!1),W=g(!1),Q=g([]),U=g({total:0,byType:{}}),B=g([]),O=g([]),A=g({noAuditLog:!1,error:""}),D=g("threat"),K=g(""),Y=g(!1),E=g(!1),I=g(!1),H=le({observable:""}),k=g(null),T=le({entity:"",days:30}),x=le({entity:"",threshold:.7,days:1}),ve=N(()=>[{title:n("compliance.cols.type"),key:"type",width:"120px"},{title:n("compliance.cols.value"),key:"value"},{title:n("compliance.cols.labels"),key:"labels",width:"160px"},{title:n("compliance.cols.confidence"),key:"confidence",width:"90px"},{title:n("compliance.cols.source"),key:"source",width:"160px"},{title:n("compliance.cols.lastSeen"),key:"lastSeen",width:"160px"},{title:n("compliance.cols.action"),key:"action",width:"90px"}]),be=N(()=>[{title:n("compliance.cols.entity"),key:"entity",width:"180px"},{title:n("compliance.cols.riskScore"),key:"riskScore"},{title:n("compliance.cols.eventCount"),key:"eventCount",width:"90px"},{title:n("compliance.cols.failureRate"),key:"failureRate",width:"90px"},{title:n("compliance.cols.uniqueResources"),key:"uniqueResources",width:"90px"},{title:n("compliance.cols.burstiness"),key:"burstiness",width:"90px"}]),ge=N(()=>K.value?Q.value.filter(e=>e.type===K.value):Q.value),he=N(()=>Object.keys(U.value.byType).length),_e=N(()=>Object.entries(U.value.byType).sort((e,s)=>s[1]-e[1])),ne=N(()=>B.value.filter(e=>e.riskScore>=70).length),ke={ipv4:"blue",ipv6:"cyan",domain:"purple",url:"magenta",email:"gold","file-md5":"orange","file-sha1":"orange","file-sha256":"red","file-sha512":"red",unknown:"default"};function G(e){return ke[e]||"default"}function xe(e){return e>=80?"#ff4d4f":e>=50?"#faad14":"#52c41a"}function ie(e){return e>=70?"#ff4d4f":e>=40?"#faad14":"#52c41a"}function $e(e,s){return e?e.length>s?e.slice(0,s)+"...":e:""}function ze({key:e}){e==="match"?(k.value=null,Y.value=!0):e==="ueba-build"?E.value=!0:e==="ueba-analyze"&&(I.value=!0)}async function V(){z.value=!0;try{const[e,s,y]=await Promise.all([i.execute("compliance threat-intel list --limit 200 --json",1e4).catch(()=>({output:""})),i.execute("compliance threat-intel stats --json",8e3).catch(()=>({output:""})),i.execute("compliance ueba top --top-k 20 --json",1e4).catch(()=>({output:""}))]);Q.value=Xe(e.output),U.value=et(s.output),A.value=oe(y.output),B.value=A.value.noAuditLog?[]:at(y.output)}catch(e){v.error(n("compliance.msg.loadFailed")+": "+(e?.message||e))}finally{z.value=!1}}async function Se(){const e=H.observable.trim();if(!e){v.warning(n("compliance.msg.matchEmpty"));return}R.value=!0,k.value=null;try{const s=`compliance threat-intel match "${e.replace(/"/g,'\\"')}" --json`,{output:y}=await i.execute(s,8e3),$=Ze(y);if(!$){v.error(n("compliance.msg.matchFailed")+": "+y.slice(0,120));return}k.value=$,$.matched?v.warning(n("compliance.msg.matchHit",{type:$.type})):$.type==="unknown"?v.info(n("compliance.msg.matchUnknownType")):v.success(n("compliance.msg.matchMiss",{type:$.type}))}catch(s){v.error(n("compliance.msg.matchFailed")+": "+(s?.message||s))}finally{R.value=!1}}async function Ae(e){try{const s=`compliance threat-intel remove ${e.type} "${e.value.replace(/"/g,'\\"')}" --json`,{output:y}=await i.execute(s,8e3);if(/error|失败/i.test(y)&&!/"removed"/.test(y)){v.error(n("compliance.msg.deleteFailed")+": "+y.slice(0,120));return}v.success(n("compliance.msg.deleteSuccess")),await V()}catch(s){v.error(n("compliance.msg.deleteFailed")+": "+(s?.message||s))}}async function Te(){J.value=!0;try{const e=["compliance ueba baseline"];T.entity.trim()&&e.push(`--entity "${T.entity.trim().replace(/"/g,'\\"')}"`),T.days!=null&&e.push(`--days ${T.days}`),e.push("--json");const{output:s}=await i.execute(e.join(" "),3e4),y=oe(s);if(y.noAuditLog){A.value=y,v.warning(n("compliance.msg.auditEmptyBuild")),E.value=!1;return}if(y.error){v.error(n("compliance.msg.buildFailed")+": "+y.error);return}v.success(n("compliance.msg.buildSuccess")),E.value=!1,D.value="ueba",await V()}catch(e){v.error(n("compliance.msg.buildFailed")+": "+(e?.message||e))}finally{J.value=!1}}async function Ce(){W.value=!0;try{const e=["compliance ueba analyze"];x.entity.trim()&&e.push(`--entity "${x.entity.trim().replace(/"/g,'\\"')}"`),x.threshold!=null&&e.push(`--threshold ${x.threshold}`),x.days!=null&&e.push(`--days ${x.days}`),e.push("--json");const{output:s}=await i.execute(e.join(" "),3e4),y=oe(s);if(y.noAuditLog){A.value=y,v.warning(n("compliance.msg.auditEmptyAnalyze")),I.value=!1;return}if(y.error&&!s.includes("[")){v.error(n("compliance.msg.analyzeFailed")+": "+y.error);return}O.value=ot(s),v.success(n("compliance.msg.analyzeSuccess",{n:O.value.length})),I.value=!1,D.value="ueba"}catch(e){v.error(n("compliance.msg.analyzeFailed")+": "+(e?.message||e))}finally{W.value=!1}}return He(V),(e,s)=>{const y=d("a-button"),$=d("a-menu-item"),Fe=d("a-menu"),Re=d("a-dropdown"),se=d("a-space"),w=d("a-statistic"),j=d("a-card"),q=d("a-col"),Oe=d("a-row"),C=d("a-tag"),re=d("a-radio-button"),je=d("a-radio-group"),we=d("a-popconfirm"),ce=d("a-table"),ue=d("a-tab-pane"),pe=d("a-alert"),Le=d("a-progress"),Ne=d("a-list-item"),Ue=d("a-list"),Be=d("a-tabs"),X=d("a-input"),L=d("a-form-item"),Z=d("a-form"),ee=d("a-modal"),te=d("a-input-number");return c(),p("div",null,[b("div",it,[b("div",null,[b("h2",st,r(e.$t("compliance.title")),1),b("p",rt,r(e.$t("compliance.subtitle")),1)]),a(se,null,{default:l(()=>[a(y,{loading:z.value,onClick:V},{icon:l(()=>[a(_(Pe))]),default:l(()=>[f(" "+r(e.$t("compliance.refresh")),1)]),_:1},8,["loading"]),a(Re,{trigger:["click"]},{overlay:l(()=>[a(Fe,{onClick:ze},{default:l(()=>[a($,{key:"match"},{default:l(()=>[a(_(Ke)),f(" "+r(e.$t("compliance.actions.match")),1)]),_:1}),a($,{key:"ueba-build"},{default:l(()=>[a(_(Ve)),f(" "+r(e.$t("compliance.actions.uebaBuild")),1)]),_:1}),a($,{key:"ueba-analyze"},{default:l(()=>[a(_(Je)),f(" "+r(e.$t("compliance.actions.uebaAnalyze")),1)]),_:1})]),_:1})]),default:l(()=>[a(y,{type:"primary"},{icon:l(()=>[a(_(De))]),default:l(()=>[f(" "+r(e.$t("compliance.actionDropdown")),1)]),_:1})]),_:1})]),_:1})]),a(Oe,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:l(()=>[a(q,{xs:12,sm:8,lg:5},{default:l(()=>[a(j,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:l(()=>[a(w,{title:e.$t("compliance.stats.iocTotal"),value:U.value.total,"value-style":{color:"#1677ff",fontSize:"20px"}},{prefix:l(()=>[a(_(de))]),_:1},8,["title","value"])]),_:1})]),_:1}),a(q,{xs:12,sm:8,lg:5},{default:l(()=>[a(j,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:l(()=>[a(w,{title:e.$t("compliance.stats.iocTypes"),value:he.value,"value-style":{color:"#13c2c2",fontSize:"20px"}},{prefix:l(()=>[a(_(We))]),_:1},8,["title","value"])]),_:1})]),_:1}),a(q,{xs:12,sm:8,lg:5},{default:l(()=>[a(j,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:l(()=>[a(w,{title:e.$t("compliance.stats.riskEntities"),value:B.value.length,"value-style":{color:"#722ed1",fontSize:"20px"}},{prefix:l(()=>[a(_(me))]),_:1},8,["title","value"])]),_:1})]),_:1}),a(q,{xs:12,sm:8,lg:5},{default:l(()=>[a(j,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:l(()=>[a(w,{title:e.$t("compliance.stats.highRisk"),value:ne.value,"value-style":{color:ne.value>0?"#ff4d4f":"#52c41a",fontSize:"20px"}},{prefix:l(()=>[a(_(Qe))]),_:1},8,["title","value","value-style"])]),_:1})]),_:1}),a(q,{xs:24,sm:8,lg:4},{default:l(()=>[a(j,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:l(()=>[a(w,{title:e.$t("compliance.stats.recentAnomalies"),value:O.value.length,"value-style":{color:"#faad14",fontSize:"20px"}},{prefix:l(()=>[a(_(Ye))]),_:1},8,["title","value"])]),_:1})]),_:1})]),_:1}),U.value.total>0?(c(),h(j,{key:0,title:e.$t("compliance.typeBreakdown"),size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"20px"},"body-style":{padding:"12px 16px"}},{default:l(()=>[a(se,{size:[12,8],wrap:""},{default:l(()=>[(c(!0),p(F,null,M(_e.value,([o,u])=>(c(),h(C,{key:o,color:G(o)},{default:l(()=>[f(r(o)+": "+r(u),1)]),_:2},1032,["color"]))),128))]),_:1})]),_:1},8,["title"])):m("",!0),a(Be,{activeKey:D.value,"onUpdate:activeKey":s[1]||(s[1]=o=>D.value=o),class:"compliance-tabs"},{default:l(()=>[a(ue,{key:"threat",tab:e.$t("compliance.tabs.threat")},{default:l(()=>[b("div",ct,[a(je,{value:K.value,"onUpdate:value":s[0]||(s[0]=o=>K.value=o),size:"small"},{default:l(()=>[a(re,{value:""},{default:l(()=>[f(r(e.$t("compliance.filter.all")),1)]),_:1}),(c(!0),p(F,null,M(_(Ge),o=>(c(),h(re,{key:o,value:o},{default:l(()=>[f(r(o),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),a(ce,{columns:ve.value,"data-source":ge.value,pagination:{pageSize:20,showTotal:o=>e.$t("compliance.table.totalSuffix",{n:o})},size:"small",loading:z.value,style:{background:"var(--bg-card)"}},{bodyCell:l(({column:o,record:u})=>[o.key==="type"?(c(),h(C,{key:0,color:G(u.type),style:{"font-family":"monospace"}},{default:l(()=>[f(r(u.type),1)]),_:2},1032,["color"])):m("",!0),o.key==="value"?(c(),p("span",ut,r($e(u.value,64)),1)):m("",!0),o.key==="labels"?(c(),p(F,{key:2},[(c(!0),p(F,null,M(u.labels,ae=>(c(),h(C,{key:ae,color:"orange",style:{"font-size":"10px",margin:"1px"}},{default:l(()=>[f(r(ae),1)]),_:2},1024))),128)),u.labels.length?m("",!0):(c(),p("span",pt,"—"))],64)):m("",!0),o.key==="confidence"?(c(),p(F,{key:3},[u.confidence!=null?(c(),p("span",{key:0,style:ye({color:xe(u.confidence),fontWeight:500})},r(u.confidence),5)):(c(),p("span",dt,"—"))],64)):m("",!0),o.key==="source"?(c(),p(F,{key:4},[u.sourceName?(c(),p("span",mt,r(u.sourceName),1)):(c(),p("span",yt,"—"))],64)):m("",!0),o.key==="lastSeen"?(c(),p("span",ft,r(_(nt)(u.lastSeenAt)),1)):m("",!0),o.key==="action"?(c(),h(we,{key:6,title:e.$t("compliance.table.deleteConfirm"),"ok-text":e.$t("compliance.table.deleteOk"),"cancel-text":e.$t("compliance.table.cancel"),onConfirm:ae=>Ae(u)},{default:l(()=>[a(y,{size:"small",type:"link",danger:""},{default:l(()=>[f(r(e.$t("compliance.table.delete")),1)]),_:1})]),_:1},8,["title","ok-text","cancel-text","onConfirm"])):m("",!0)]),emptyText:l(()=>[b("div",vt,[a(_(de),{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),f(" "+r(e.$t("compliance.table.emptyThreatsLine1"))+" ",1),s[11]||(s[11]=b("code",{style:{"font-size":"11px"}},"cc compliance threat-intel import <file.json>",-1))])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"]),a(ue,{key:"ueba",tab:e.$t("compliance.tabs.ueba")},{default:l(()=>[A.value.noAuditLog?(c(),h(pe,{key:0,type:"info","show-icon":"",message:e.$t("compliance.ueba.noAuditLog"),description:e.$t("compliance.ueba.noAuditLogDesc"),style:{"margin-bottom":"16px"}},null,8,["message","description"])):A.value.error?(c(),h(pe,{key:1,type:"error","show-icon":"",message:e.$t("compliance.ueba.errorMessage",{err:A.value.error}),style:{"margin-bottom":"16px"}},null,8,["message"])):m("",!0),b("h3",bt,r(e.$t("compliance.ueba.topRiskTitle",{count:B.value.length})),1),a(ce,{columns:be.value,"data-source":B.value,pagination:!1,size:"small",loading:z.value,style:{background:"var(--bg-card)"}},{bodyCell:l(({column:o,record:u})=>[o.key==="entity"?(c(),p("span",gt,r(u.entity),1)):m("",!0),o.key==="riskScore"?(c(),h(Le,{key:1,percent:Math.min(u.riskScore,100),"stroke-color":ie(u.riskScore),size:"small",format:()=>u.riskScore.toFixed(1)},null,8,["percent","stroke-color","format"])):m("",!0),o.key==="eventCount"?(c(),p("span",ht,r(u.eventCount),1)):m("",!0),o.key==="failureRate"?(c(),p("span",{key:3,style:ye({color:u.failureRate>.3?"#ff4d4f":"var(--text-secondary)",fontFamily:"monospace"})},r((u.failureRate*100).toFixed(1))+"% ",5)):m("",!0),o.key==="uniqueResources"?(c(),h(C,{key:4,color:"cyan",style:{"font-size":"11px"}},{default:l(()=>[f(r(u.uniqueResources),1)]),_:2},1024)):m("",!0),o.key==="burstiness"?(c(),p("span",_t,r((u.burstiness*100).toFixed(0))+"% ",1)):m("",!0)]),emptyText:l(()=>[b("div",kt,[a(_(me),{style:{"font-size":"32px","margin-bottom":"8px",display:"block"}}),f(" "+r(A.value.noAuditLog?e.$t("compliance.table.emptyAuditEntities"):e.$t("compliance.table.emptyRiskEntities")),1)])]),_:1},8,["columns","data-source","loading"]),O.value.length?(c(),p("h3",xt,r(e.$t("compliance.ueba.anomalyTitle",{count:O.value.length})),1)):m("",!0),O.value.length?(c(),h(Ue,{key:3,size:"small","data-source":O.value,locale:{emptyText:e.$t("compliance.table.noAnomalies")}},{renderItem:l(({item:o})=>[a(Ne,{style:{background:"var(--bg-card)",padding:"10px 16px"}},{default:l(()=>[b("div",$t,[b("div",zt,[a(C,{color:ie(o.score*100)},{default:l(()=>[f("score "+r(o.score.toFixed(2)),1)]),_:2},1032,["color"]),o.event?.entity?(c(),p("span",St,r(o.event.entity),1)):m("",!0),o.event?.action?(c(),p("span",At," → "+r(o.event.action),1)):m("",!0)]),o.reasons.length?(c(),p("div",Tt,[(c(!0),p(F,null,M(o.reasons,u=>(c(),h(C,{key:u,color:"volcano",style:{"font-size":"10px",margin:"1px"}},{default:l(()=>[f(r(u),1)]),_:2},1024))),128))])):m("",!0)])]),_:2},1024)]),_:1},8,["data-source","locale"])):m("",!0)]),_:1},8,["tab"])]),_:1},8,["activeKey"]),a(ee,{open:Y.value,"onUpdate:open":s[3]||(s[3]=o=>Y.value=o),title:e.$t("compliance.match.modalTitle"),"confirm-loading":R.value,width:500,"ok-text":e.$t("compliance.match.ok"),"cancel-text":e.$t("compliance.match.close"),onOk:Se},{default:l(()=>[a(Z,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:l(()=>[a(L,{label:e.$t("compliance.match.label"),required:""},{default:l(()=>[a(X,{value:H.observable,"onUpdate:value":s[2]||(s[2]=o=>H.observable=o),placeholder:e.$t("compliance.match.placeholder"),"allow-clear":""},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1}),k.value?(c(),h(j,{key:0,size:"small",style:{background:"var(--bg-base)","margin-top":"8px"}},{default:l(()=>[a(w,{title:e.$t("compliance.match.result"),value:k.value.matched?e.$t("compliance.match.hit"):e.$t("compliance.match.miss"),"value-style":{color:k.value.matched?"#ff4d4f":"#52c41a"}},null,8,["title","value","value-style"]),b("div",Ct,[f(r(e.$t("compliance.match.detectType"))+" ",1),a(C,{color:G(k.value.type)},{default:l(()=>[f(r(k.value.type),1)]),_:1},8,["color"])]),k.value.indicator?(c(),p("div",Ft,[b("div",Rt,r(e.$t("compliance.match.sourcePrefix"))+" "+r(k.value.indicator.sourceName||"—"),1),b("div",Ot,r(e.$t("compliance.match.confidencePrefix"))+" "+r(k.value.indicator.confidence??"—"),1),k.value.indicator.labels.length?(c(),p("div",jt,[(c(!0),p(F,null,M(k.value.indicator.labels,o=>(c(),h(C,{key:o,color:"orange",style:{"font-size":"10px"}},{default:l(()=>[f(r(o),1)]),_:2},1024))),128))])):m("",!0)])):m("",!0)]),_:1})):m("",!0)]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),a(ee,{open:E.value,"onUpdate:open":s[6]||(s[6]=o=>E.value=o),title:e.$t("compliance.build.modalTitle"),"confirm-loading":J.value,width:480,"ok-text":e.$t("compliance.build.ok"),"cancel-text":e.$t("compliance.build.cancel"),onOk:Te},{default:l(()=>[a(Z,{"label-col":{span:6},"wrapper-col":{span:18},style:{"margin-top":"16px"}},{default:l(()=>[a(L,{label:e.$t("compliance.build.entityLabel")},{default:l(()=>[a(X,{value:T.entity,"onUpdate:value":s[4]||(s[4]=o=>T.entity=o),placeholder:e.$t("compliance.build.entityPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),a(L,{label:e.$t("compliance.build.daysLabel")},{default:l(()=>[a(te,{value:T.days,"onUpdate:value":s[5]||(s[5]=o=>T.days=o),min:1,max:365,placeholder:e.$t("compliance.build.daysPlaceholder"),style:{width:"100%"}},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1}),b("p",wt,r(e.$t("compliance.build.footnote")),1)]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),a(ee,{open:I.value,"onUpdate:open":s[10]||(s[10]=o=>I.value=o),title:e.$t("compliance.analyze.modalTitle"),"confirm-loading":W.value,width:480,"ok-text":e.$t("compliance.analyze.ok"),"cancel-text":e.$t("compliance.analyze.cancel"),onOk:Ce},{default:l(()=>[a(Z,{"label-col":{span:6},"wrapper-col":{span:18},style:{"margin-top":"16px"}},{default:l(()=>[a(L,{label:e.$t("compliance.analyze.entityLabel")},{default:l(()=>[a(X,{value:x.entity,"onUpdate:value":s[7]||(s[7]=o=>x.entity=o),placeholder:e.$t("compliance.analyze.entityPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),a(L,{label:e.$t("compliance.analyze.thresholdLabel")},{default:l(()=>[a(te,{value:x.threshold,"onUpdate:value":s[8]||(s[8]=o=>x.threshold=o),min:0,max:1,step:.05,style:{width:"100%"}},null,8,["value"])]),_:1},8,["label"]),a(L,{label:e.$t("compliance.analyze.daysLabel")},{default:l(()=>[a(te,{value:x.days,"onUpdate:value":s[9]||(s[9]=o=>x.days=o),min:1,max:30,style:{width:"100%"}},null,8,["value"])]),_:1},8,["label"])]),_:1}),b("p",Lt,r(e.$t("compliance.analyze.footnote")),1)]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"])])}}},Mt=Ee(Nt,[["__scopeId","data-v-81155fa8"]]);export{Mt as default};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{E as oe,w as ne,r as d,f as z,o as ie,M as i,R as n,c as p,u as s,F as x,_ as b,Y as I,a1 as Z,P as r,S as _,O as g,Q as k,Z as X,N as v,a0 as re,K as C,L as a,n as ae}from"./vendor-B6ToihkA.js";import{u as ee}from"./ws-D_5-FRIb.js";import{u as F}from"./chat-BQ-Nk2XY.js";import{r as te}from"./markdown-vYH_ziAO.js";import{_ as ce}from"./index-
|
|
1
|
+
import{E as oe,w as ne,r as d,f as z,o as ie,M as i,R as n,c as p,u as s,F as x,_ as b,Y as I,a1 as Z,P as r,S as _,O as g,Q as k,Z as X,N as v,a0 as re,K as C,L as a,n as ae}from"./vendor-B6ToihkA.js";import{u as ee}from"./ws-D_5-FRIb.js";import{u as F}from"./chat-BQ-Nk2XY.js";import{r as te}from"./markdown-vYH_ziAO.js";import{_ as ce}from"./index-Cw4v7ezB.js";import{i as H,h as ue,ag as le,ah as de,w as pe,a6 as ve,G as me,a7 as _e,o as ye,ai as fe,q as ge,$ as he,aj as ke,k as we,a9 as Se,ad as xe}from"./icons-DvZE-RKs.js";import"./markdown-xjUYbPSW.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=oe("cowork",()=>{const W=d(be),t=d(null),y=d([]),w=d(!1),O=d([]),h=d([]),T=d(null),m=d(null),S=d(null),P=d([]),Q=d(!1),U=d(3),A=d(!1),R=d([]),D=F();ne(()=>D.isLoading,o=>{!o&&m.value&&(w.value=!1)});function j(o){t.value=o,q()}function q(){O.value=[],h.value=[],T.value=null,w.value=!1,m.value=null,S.value=null}function E(o){y.value.includes(o)||y.value.push(o)}function B(o){y.value=y.value.filter(e=>e!==o)}async function u(){const o=ee();try{await o.waitConnected(5e3);const e=await o.sendRaw({type:"cowork-templates"},1e4);e?.templates?.length&&(W.value=e.templates)}catch{}}async function l(){const o=ee();try{await o.waitConnected(5e3);const e=await o.sendRaw({type:"cowork-history",limit:50},1e4);e?.entries&&(P.value=e.entries)}catch{}}async function f(o){S.value={mode:"session",message:o},w.value=!0;const e=t.value;let c="";e&&(c=`## 当前任务类型: ${e.name}
|
|
2
2
|
${e.description||""}`);let $=o;y.value.length&&($+=`
|
|
3
3
|
|
|
4
4
|
[用户提供的文件: ${y.value.join(", ")}]`),h.value.push({role:"user",content:o,timestamp:Date.now()});const M={systemPromptExtension:c};e?.shellPolicyOverrides&&(M.shellPolicyOverrides=e.shellPolicyOverrides);const se=await D.createSession("agent",M);m.value=se,await D.sendMessage(se,$)}async function N(o){S.value={mode:"direct",message:o};const e=ee();w.value=!0,h.value.push({role:"user",content:o,timestamp:Date.now()});try{await e.waitConnected(8e3);const c={type:"cowork-task",templateId:t.value?.id||null,userMessage:o,files:y.value};Q.value&&(c.parallel=!0,c.agents=U.value);const $=t.value;(A.value||$?.mode==="debate")&&(c.mode="debate",R.value.length&&(c.perspectives=R.value));const M=await e.sendRaw(c,3e5);h.value.push({role:"assistant",content:M.summary||"(No output)",timestamp:Date.now(),toolsUsed:M.toolsUsed||[],iterationCount:M.iterationCount||0}),T.value=M}catch(c){h.value.push({role:"assistant",content:`Error: ${c.message}`,timestamp:Date.now()})}finally{w.value=!1}}const G=z(()=>m.value?F().getMessages(m.value):[]),J=z(()=>{if(!m.value)return null;const e=F().streaming[m.value];return e?.active?e.content:null}),V=z(()=>m.value&&F().pendingQuestion[m.value]||null);function K(o){if(!m.value)return;F().answerQuestion(m.value,o)}async function L(){if(!S.value)return;const{mode:o,message:e}=S.value;o==="direct"?await N(e):await f(e)}async function Y(o){if(!m.value)return;const e=F();h.value.push({role:"user",content:o,timestamp:Date.now()});let c=o;y.value.length&&(c+=`
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as ae,c as _}from"./index-
|
|
1
|
+
import{a as ae,c as _}from"./index-Cw4v7ezB.js";import{u as le}from"./ws-D_5-FRIb.js";import{al as te,R as ne,u as oe}from"./icons-DvZE-RKs.js";import{o as se,M as g,R as y,P as i,u as n,c as a,N as t,K as c,r as z,L as p,O as b,F as R,_ as re,Q as L,S as C,f as P}from"./vendor-B6ToihkA.js";const ce={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},ie={class:"page-title"},ue={class:"page-sub"},de={key:0,style:{"text-align":"center",padding:"40px"}},me={style:{color:"#e0e0e0","font-weight":"500"}},pe={key:0,style:{color:"var(--text-secondary)","font-size":"11px"}},ve={key:1,style:{background:"var(--bg-card-hover)",padding:"2px 6px","border-radius":"3px",color:"#91caff","font-size":"11px"}},_e={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},fe={style:{color:"var(--text-secondary)","font-size":"11px","margin-top":"4px"}},xe={__name:"Cron",setup(ye){const{t:e}=ae(),k=le(),T=z(!1),O=z(!1),h=z(!1),f=z([]),q=P(()=>f.value.filter(l=>l.enabled).length),B=P(()=>f.value.filter(l=>!l.enabled).length),E=[{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 * *"}],U=P(()=>E.map(l=>({...l,label:e(`cron.presets.${l.key}`)}))),r=z({name:"",cron:"",payload:"",description:"",enabled:!0}),V=P(()=>[{title:e("cron.columns.name"),key:"name",width:"25%"},{title:e("cron.columns.cron"),key:"cron",width:"20%"},{title:e("cron.columns.status"),key:"status",width:"15%"},{title:e("cron.columns.actions"),key:"actions",width:"20%"}]);async function F(){T.value=!0;try{const{output:l}=await k.execute('skill run cron-scheduler "list all scheduled tasks"',2e4);f.value=M(l)}catch{f.value=[]}finally{T.value=!1}}function M(l){const o=[],v=l.split(`
|
|
2
2
|
`);for(const x of v){const d=x.trim();if(!d||d.startsWith("─"))continue;const m=d.match(/^([^\t|]+?)[\t|]+([*\d/,\-?LW#\s]+)[\t|]+/);m&&o.push({key:o.length,name:m[1].trim(),cron:m[2].trim(),enabled:!d.toLowerCase().includes("pause")&&!d.toLowerCase().includes("disabled"),description:"",running:!1})}return o}function W(l){r.value.cron=l.cron,h.value=!0}async function A(){if(!r.value.name||!r.value.cron){_.warning(e("cron.messages.nameAndCronRequired"));return}O.value=!0;try{const l=`skill run cron-scheduler "add task: ${r.value.name}, schedule: ${r.value.cron}, payload: ${r.value.payload||"ping"}"`;await k.execute(l,2e4),_.success(e("cron.messages.createOk")),h.value=!1,r.value={name:"",cron:"",payload:"",description:"",enabled:!0},await F()}catch(l){_.error(e("cron.messages.createFailed",{err:l.message}))}finally{O.value=!1}}async function H(l){l.running=!0;try{await k.execute(`skill run cron-scheduler "run task: ${l.name}"`,3e4),_.success(e("cron.messages.runOk",{name:l.name}))}catch(o){_.error(e("cron.messages.runFailed",{err:o.message}))}finally{l.running=!1}}async function j(l){const o=l.enabled?"pause":"enable";try{await k.execute(`skill run cron-scheduler "${o} task: ${l.name}"`,1e4),l.enabled=!l.enabled,_.success(l.enabled?e("cron.messages.toggleEnabled"):e("cron.messages.togglePaused"))}catch{_.error(e("cron.messages.toggleFailed"))}}async function D(l){try{await k.execute(`skill run cron-scheduler "delete task: ${l.name}"`,1e4),f.value=f.value.filter(o=>o.key!==l.key),_.success(e("cron.messages.deleteOk"))}catch{_.error(e("cron.messages.deleteFailed"))}}return se(F),(l,o)=>{const v=c("a-button"),x=c("a-space"),d=c("a-statistic"),m=c("a-card"),$=c("a-col"),I=c("a-row"),K=c("a-spin"),Q=c("a-badge"),G=c("a-popconfirm"),J=c("a-table"),S=c("a-input"),w=c("a-form-item"),X=c("a-textarea"),Y=c("a-switch"),Z=c("a-form"),ee=c("a-modal");return p(),g("div",null,[y("div",ce,[y("div",null,[y("h2",ie,i(n(e)("cron.title")),1),y("p",ue,i(n(e)("cron.subtitle")),1)]),a(x,null,{default:t(()=>[a(v,{onClick:o[0]||(o[0]=s=>h.value=!0),type:"primary"},{icon:t(()=>[a(n(te))]),default:t(()=>[b(" "+i(n(e)("cron.newTask")),1)]),_:1}),a(v,{ghost:"",loading:T.value,onClick:F},{icon:t(()=>[a(n(ne))]),default:t(()=>[b(" "+i(n(e)("cron.refresh")),1)]),_:1},8,["loading"])]),_:1})]),a(I,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:t(()=>[a($,{xs:12,sm:6},{default:t(()=>[a(m,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"},size:"small"},{default:t(()=>[a(d,{title:n(e)("cron.stats.all"),value:f.value.length,"value-style":"color: #ccc; font-size: 18px;"},null,8,["title","value"])]),_:1})]),_:1}),a($,{xs:12,sm:6},{default:t(()=>[a(m,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"},size:"small"},{default:t(()=>[a(d,{title:n(e)("cron.stats.active"),value:q.value,"value-style":"color: #52c41a; font-size: 18px;"},null,8,["title","value"])]),_:1})]),_:1}),a($,{xs:12,sm:6},{default:t(()=>[a(m,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"},size:"small"},{default:t(()=>[a(d,{title:n(e)("cron.stats.paused"),value:B.value,"value-style":"color: #faad14; font-size: 18px;"},null,8,["title","value"])]),_:1})]),_:1}),a($,{xs:12,sm:6},{default:t(()=>[a(m,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"},size:"small"},{default:t(()=>[a(d,{title:n(e)("cron.stats.presets"),value:U.value.length,"value-style":"color: #1677ff; font-size: 18px;"},null,8,["title","value"])]),_:1})]),_:1})]),_:1}),a(m,{title:n(e)("cron.presetsCardTitle"),style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"16px"},size:"small"},{default:t(()=>[a(x,{wrap:""},{default:t(()=>[(p(!0),g(R,null,re(U.value,s=>(p(),L(v,{key:s.key,size:"small",style:{background:"var(--bg-card-hover)","border-color":"var(--border-color)","font-size":"12px"},onClick:u=>W(s)},{default:t(()=>[b(i(s.label),1)]),_:2},1032,["onClick"]))),128))]),_:1})]),_:1},8,["title"]),a(m,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[T.value?(p(),g("div",de,[a(K,{size:"large"})])):(p(),L(J,{key:1,columns:V.value,"data-source":f.value,pagination:{pageSize:15},size:"small"},{bodyCell:t(({column:s,record:u})=>[s.key==="name"?(p(),g(R,{key:0},[y("div",me,i(u.name),1),u.description?(p(),g("div",pe,i(u.description),1)):C("",!0)],64)):C("",!0),s.key==="cron"?(p(),g("code",ve,i(u.cron),1)):C("",!0),s.key==="status"?(p(),L(Q,{key:2,status:u.enabled?"success":"warning",text:u.enabled?n(e)("cron.running"):n(e)("cron.paused")},null,8,["status","text"])):C("",!0),s.key==="actions"?(p(),L(x,{key:3,size:"small"},{default:t(()=>[a(v,{size:"small",type:"link",loading:u.running,onClick:N=>H(u)},{default:t(()=>[b(i(n(e)("cron.actions.run")),1)]),_:1},8,["loading","onClick"]),a(v,{size:"small",type:"link",onClick:N=>j(u)},{default:t(()=>[b(i(u.enabled?n(e)("cron.actions.pause"):n(e)("cron.actions.enable")),1)]),_:2},1032,["onClick"]),a(G,{title:n(e)("cron.actions.deleteConfirm"),onConfirm:N=>D(u)},{default:t(()=>[a(v,{size:"small",type:"link",danger:""},{default:t(()=>[b(i(n(e)("cron.actions.delete")),1)]),_:1})]),_:1},8,["title","onConfirm"])]),_:2},1024)):C("",!0)]),emptyText:t(()=>[y("div",_e,[a(n(oe),{style:{"font-size":"36px","margin-bottom":"12px",display:"block"}}),b(" "+i(n(e)("cron.emptyText")),1)])]),_:1},8,["columns","data-source"]))]),_:1}),a(ee,{open:h.value,"onUpdate:open":o[6]||(o[6]=s=>h.value=s),title:n(e)("cron.modal.title"),"confirm-loading":O.value,onOk:A,width:"520px"},{default:t(()=>[a(Z,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:t(()=>[a(w,{label:n(e)("cron.modal.nameLabel"),required:""},{default:t(()=>[a(S,{value:r.value.name,"onUpdate:value":o[1]||(o[1]=s=>r.value.name=s),placeholder:n(e)("cron.modal.namePlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),a(w,{label:n(e)("cron.modal.cronLabel"),required:""},{default:t(()=>[a(S,{value:r.value.cron,"onUpdate:value":o[2]||(o[2]=s=>r.value.cron=s),placeholder:n(e)("cron.modal.cronPlaceholder")},null,8,["value","placeholder"]),y("div",fe,i(n(e)("cron.modal.cronHint")),1)]),_:1},8,["label"]),a(w,{label:n(e)("cron.modal.payloadLabel"),required:""},{default:t(()=>[a(X,{value:r.value.payload,"onUpdate:value":o[3]||(o[3]=s=>r.value.payload=s),rows:3,placeholder:n(e)("cron.modal.payloadPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),a(w,{label:n(e)("cron.modal.descriptionLabel")},{default:t(()=>[a(S,{value:r.value.description,"onUpdate:value":o[4]||(o[4]=s=>r.value.description=s),placeholder:n(e)("cron.modal.descriptionPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),a(w,{label:n(e)("cron.modal.enabledLabel")},{default:t(()=>[a(Y,{checked:r.value.enabled,"onUpdate:checked":o[5]||(o[5]=s=>r.value.enabled=s)},null,8,["checked"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading"])])}}};export{xe as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{_ as Ie,a as He,c as k}from"./index-CyqU4Tck.js";import{u as Re}from"./ws-D_5-FRIb.js";import{s as qe}from"./community-parser-CO25nZFt.js";import{R as Ve,al as De,Q as ie,aN as ue,aO as de,aP as Ee,ap as Je,av as Ke,aE as ce}from"./icons-DvZE-RKs.js";import{o as Qe,M as m,R as f,P as i,c as s,N as o,Q as x,S as _,K as g,r as C,L as u,O as h,u as v,F as $,_ as U,f as pe,a as Y}from"./vendor-B6ToihkA.js";function B(a){const r=qe(a);if(!r)return null;try{return JSON.parse(r)}catch{}const l=r.match(/\{[\s\S]*\}|\[[\s\S]*\]/);if(!l)return null;try{return JSON.parse(l[0])}catch{return null}}function A(a,r=0){return typeof a=="number"&&Number.isFinite(a)?a:r}function We(a,r=0){if(!a||typeof a!="object")return null;const l=a.id||"";return l?{key:l,id:l,name:String(a.name||l),symbol:String(a.symbol||""),chainId:A(a.chainId??a.chain_id,0),_idx:r}:null}function Xe(a){const r=B(a);return Array.isArray(r)?r.map(We).filter(Boolean):[]}function Ge(a,r=0){if(!a||typeof a!="object")return null;const l=a.id||"";return l?{key:l,id:l,fromChain:a.fromChain??a.from_chain??"",toChain:a.toChain??a.to_chain??"",asset:String(a.asset||"native"),amount:A(a.amount,0),senderAddress:a.senderAddress??a.sender_address??"",recipientAddress:a.recipientAddress??a.recipient_address??"",lockTxHash:a.lockTxHash??a.lock_tx_hash??"",mintTxHash:a.mintTxHash??a.mint_tx_hash??"",status:String(a.status||"pending").toLowerCase(),feeAmount:A(a.feeAmount??a.fee_amount,0),feeChain:a.feeChain??a.fee_chain??"",errorMessage:a.errorMessage??a.error_message??"",createdAt:a.createdAt??a.created_at??null,completedAt:a.completedAt??a.completed_at??null,_idx:r}:null}function Ye(a){const r=B(a);return Array.isArray(r)?r.map(Ge).filter(Boolean):[]}function Ze(a,r=0){if(!a||typeof a!="object")return null;const l=a.id||"";return l?{key:l,id:l,fromChain:a.fromChain??a.from_chain??"",toChain:a.toChain??a.to_chain??"",fromAsset:a.fromAsset??a.from_asset??"native",toAsset:a.toAsset??a.to_asset??"native",amount:A(a.amount,0),counterpartyAddress:a.counterpartyAddress??a.counterparty_address??"",hashLock:a.hashLock??a.hash_lock??"",expiresAt:a.expiresAt??a.expires_at??null,status:String(a.status||"initiated").toLowerCase(),claimTxHash:a.claimTxHash??a.claim_tx_hash??"",refundTxHash:a.refundTxHash??a.refund_tx_hash??"",createdAt:a.createdAt??a.created_at??null,_idx:r}:null}function et(a){const r=B(a);return Array.isArray(r)?r.map(Ze).filter(Boolean):[]}function tt(a,r=0){if(!a||typeof a!="object")return null;const l=a.id||"";return l?{key:l,id:l,fromChain:a.fromChain??a.from_chain??"",toChain:a.toChain??a.to_chain??"",payload:String(a.payload||""),targetContract:a.targetContract??a.target_contract??"",sourceTxHash:a.sourceTxHash??a.source_tx_hash??"",destinationTxHash:a.destinationTxHash??a.destination_tx_hash??"",status:String(a.status||"pending").toLowerCase(),retries:A(a.retries,0),createdAt:a.createdAt??a.created_at??null,deliveredAt:a.deliveredAt??a.delivered_at??null,_idx:r}:null}function at(a){const r=B(a);return Array.isArray(r)?r.map(tt).filter(Boolean):[]}const st={bridges:{total:0,byStatus:{},totalVolume:0,totalFees:0},swaps:{total:0,byStatus:{}},messages:{total:0,byStatus:{}}};function ot(a){const r=JSON.parse(JSON.stringify(st)),l=B(a);return!l||typeof l!="object"||Array.isArray(l)||(l.bridges&&typeof l.bridges=="object"&&(r.bridges.total=A(l.bridges.total,0),r.bridges.totalVolume=A(l.bridges.totalVolume??l.bridges.total_volume,0),r.bridges.totalFees=A(l.bridges.totalFees??l.bridges.total_fees,0),l.bridges.byStatus&&typeof l.bridges.byStatus=="object"&&(r.bridges.byStatus={...l.bridges.byStatus})),l.swaps&&typeof l.swaps=="object"&&(r.swaps.total=A(l.swaps.total,0),l.swaps.byStatus&&typeof l.swaps.byStatus=="object"&&(r.swaps.byStatus={...l.swaps.byStatus})),l.messages&&typeof l.messages=="object"&&(r.messages.total=A(l.messages.total,0),l.messages.byStatus&&typeof l.messages.byStatus=="object"&&(r.messages.byStatus={...l.messages.byStatus}))),r}function lt(a){const r=B(a);return!r||typeof r!="object"||Array.isArray(r)?null:{fee:A(r.fee,0),breakdown:{sourceFee:A(r?.breakdown?.sourceFee??r?.breakdown?.source_fee,0),destFee:A(r?.breakdown?.destFee??r?.breakdown?.dest_fee,0),bridgeFee:A(r?.breakdown?.bridgeFee??r?.breakdown?.bridge_fee,0)},currency:String(r.currency||"USD")}}function me(a){if(a==null||a==="")return"—";const r=typeof a=="number"?new Date(a):new Date(String(a));return isNaN(r.getTime())?String(a):r.toLocaleString("zh-CN",{hour12:!1})}const nt={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},rt={class:"page-title"},it={class:"page-sub"},ut={style:{opacity:"0.7"}},dt={key:0,style:{opacity:"0.55","font-size":"10px","margin-left":"4px"}},ct={style:{color:"var(--text-primary)"}},pt={style:{color:"var(--text-primary)"}},mt={style:{color:"#722ed1","font-weight":"500"}},ft={style:{color:"var(--text-secondary)","margin-left":"4px","font-size":"11px"}},ht={key:2,style:{color:"var(--text-secondary)","font-size":"12px"}},gt={key:4,style:{color:"var(--text-secondary)","font-size":"11px"}},yt={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},bt={style:{color:"var(--text-primary)"}},vt={style:{color:"var(--text-secondary)","font-size":"11px",margin:"0 4px"}},_t={style:{color:"var(--text-primary)"}},kt={style:{color:"var(--text-secondary)","font-size":"11px","margin-left":"4px"}},Ct={key:1,style:{color:"#722ed1","font-weight":"500"}},xt={key:0,style:{color:"var(--text-secondary)","font-family":"monospace","font-size":"11px"}},$t={key:1,style:{color:"var(--text-muted)"}},At={key:4,style:{color:"var(--text-secondary)","font-size":"11px"}},St={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},wt={style:{color:"var(--text-primary)"}},Ft={style:{color:"var(--text-primary)"}},zt={key:1,style:{color:"var(--text-secondary)","font-size":"12px"}},Ut={key:1,style:{color:"var(--text-muted)"}},Tt={key:4,style:{color:"var(--text-secondary)","font-size":"11px"}},jt={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},Mt={style:{"margin-top":"12px","font-size":"12px",color:"var(--text-secondary)"}},Ot={__name:"Crosschain",setup(a){const r=Re(),{t:l}=He(),P=C(!1),Z=C(!1),ee=C(!1),te=C(!1),ae=C(!1),S=C([]),fe=C([]),he=C([]),ge=C([]),I=C({bridges:{total:0,byStatus:{},totalVolume:0,totalFees:0},swaps:{total:0,byStatus:{}},messages:{total:0,byStatus:{}}}),H=C("bridges"),E=C(!1),J=C(!1),K=C(!1),se=C(!1),c=Y({fromChain:"",toChain:"",amount:null,asset:"",sender:"",recipient:""}),d=Y({fromChain:"",toChain:"",amount:null,fromAsset:"",toAsset:"",counterparty:"",timeoutMs:null}),y=Y({fromChain:"",toChain:"",payload:"",contract:""}),w=Y({fromChain:"",toChain:"",amount:null}),z=C(null),ke=pe(()=>[{title:l("crosschain.bridgeCols.route"),key:"route"},{title:l("crosschain.bridgeCols.amount"),key:"amount",width:"160px"},{title:l("crosschain.bridgeCols.fee"),key:"fee",width:"100px"},{title:l("crosschain.bridgeCols.status"),key:"status",width:"110px"},{title:l("crosschain.bridgeCols.createdAt"),key:"createdAt",width:"160px"}]),Ce=pe(()=>[{title:l("crosschain.swapCols.route"),key:"route"},{title:l("crosschain.swapCols.amount"),key:"amount",width:"110px"},{title:l("crosschain.swapCols.hashLock"),key:"hashLock",width:"160px"},{title:l("crosschain.swapCols.status"),key:"status",width:"120px"},{title:l("crosschain.swapCols.expiresAt"),key:"expiresAt",width:"160px"}]),xe=pe(()=>[{title:l("crosschain.messageCols.route"),key:"route",width:"220px"},{title:l("crosschain.messageCols.payload"),key:"payload"},{title:l("crosschain.messageCols.retries"),key:"retries",width:"80px"},{title:l("crosschain.messageCols.status"),key:"status",width:"110px"},{title:l("crosschain.messageCols.createdAt"),key:"createdAt",width:"160px"}]),$e={ethereum:"blue",polygon:"purple",bsc:"gold",arbitrum:"cyan",solana:"magenta"};function Ae(e){return $e[e]||"default"}function L(e){const n=S.value.find(F=>F.id===e);return n?n.name:e||"—"}function oe(e){const n=`crosschain.statusLabels.${e}`,F=l(n);return F===n?e:F}function Se(e){return{pending:"default",locked:"processing",minted:"cyan",completed:"green",refunded:"orange",failed:"red"}[e]||"default"}function we(e){return{initiated:"default",hash_locked:"processing",claimed:"green",refunded:"orange",expired:"red"}[e]||"default"}function Fe(e){return{pending:"default",sent:"processing",delivered:"green",failed:"red"}[e]||"default"}function ze(e,n){return e?e.length>n?e.slice(0,n)+"...":e:""}function Ue({key:e}){e==="bridge"?E.value=!0:e==="swap"?J.value=!0:e==="message"&&(K.value=!0)}async function R(){P.value=!0;try{const[e,n,F,q,le]=await Promise.all([r.execute("crosschain chains --json",8e3).catch(()=>({output:""})),r.execute("crosschain bridges --limit 200 --json",1e4).catch(()=>({output:""})),r.execute("crosschain swaps --limit 200 --json",1e4).catch(()=>({output:""})),r.execute("crosschain messages --limit 200 --json",1e4).catch(()=>({output:""})),r.execute("crosschain stats --json",8e3).catch(()=>({output:""}))]);S.value=Xe(e.output),fe.value=Ye(n.output),he.value=et(F.output),ge.value=at(q.output),I.value=ot(le.output)}catch(e){k.error(l("crosschain.msg.loadFailed")+": "+(e?.message||e))}finally{P.value=!1}}function Q(e){return!e.fromChain||!e.toChain?(k.warning(l("crosschain.msg.pairEmpty")),!1):e.fromChain===e.toChain?(k.warning(l("crosschain.msg.pairSame")),!1):!0}async function Te(){if(Q(c)){if(!c.amount||c.amount<=0){k.warning(l("crosschain.msg.amountInvalid"));return}Z.value=!0;try{const e=[`crosschain bridge ${c.fromChain} ${c.toChain} ${c.amount}`];c.asset.trim()&&e.push(`--asset "${c.asset.trim().replace(/"/g,'\\"')}"`),c.sender.trim()&&e.push(`--sender "${c.sender.trim().replace(/"/g,'\\"')}"`),c.recipient.trim()&&e.push(`--recipient "${c.recipient.trim().replace(/"/g,'\\"')}"`),e.push("--json");const{output:n}=await r.execute(e.join(" "),15e3);if(/error|failed|失败|unsupported/i.test(n)&&!/"bridgeId"/.test(n)){k.error(l("crosschain.msg.bridgeFailed")+": "+n.slice(0,120));return}k.success(l("crosschain.msg.bridgeSuccess")),E.value=!1,ye(),H.value="bridges",await R()}catch(e){k.error(l("crosschain.msg.bridgeFailed")+": "+(e?.message||e))}finally{Z.value=!1}}}async function je(){if(Q(d)){if(!d.amount||d.amount<=0){k.warning(l("crosschain.msg.amountInvalid"));return}ee.value=!0;try{const e=[`crosschain swap ${d.fromChain} ${d.toChain} ${d.amount}`];d.fromAsset.trim()&&e.push(`--from-asset "${d.fromAsset.trim().replace(/"/g,'\\"')}"`),d.toAsset.trim()&&e.push(`--to-asset "${d.toAsset.trim().replace(/"/g,'\\"')}"`),d.counterparty.trim()&&e.push(`--counterparty "${d.counterparty.trim().replace(/"/g,'\\"')}"`),d.timeoutMs!=null&&e.push(`--timeout ${d.timeoutMs}`),e.push("--json");const{output:n}=await r.execute(e.join(" "),15e3);if(/error|failed|失败|unsupported/i.test(n)&&!/"swapId"/.test(n)){k.error(l("crosschain.msg.swapFailed")+": "+n.slice(0,120));return}k.success(l("crosschain.msg.swapSuccess")),J.value=!1,be(),H.value="swaps",await R()}catch(e){k.error(l("crosschain.msg.swapFailed")+": "+(e?.message||e))}finally{ee.value=!1}}}async function Me(){if(Q(y)){te.value=!0;try{const e=[`crosschain send ${y.fromChain} ${y.toChain}`];y.payload.trim()&&e.push(`--payload "${y.payload.trim().replace(/"/g,'\\"')}"`),y.contract.trim()&&e.push(`--contract "${y.contract.trim().replace(/"/g,'\\"')}"`),e.push("--json");const{output:n}=await r.execute(e.join(" "),12e3);if(/error|failed|失败|unsupported/i.test(n)&&!/"messageId"/.test(n)){k.error(l("crosschain.msg.sendFailed")+": "+n.slice(0,120));return}k.success(l("crosschain.msg.sendSuccess")),K.value=!1,ve(),H.value="messages",await R()}catch(e){k.error(l("crosschain.msg.sendFailed")+": "+(e?.message||e))}finally{te.value=!1}}}async function Oe(){if(Q(w)){if(!w.amount||w.amount<=0){k.warning(l("crosschain.msg.amountInvalid"));return}ae.value=!0,z.value=null;try{const e=`crosschain estimate-fee ${w.fromChain} ${w.toChain} ${w.amount} --json`,{output:n}=await r.execute(e,8e3),F=lt(n);if(!F){k.error(l("crosschain.msg.feeFailed")+": "+n.slice(0,120));return}z.value=F}catch(e){k.error(l("crosschain.msg.feeFailed")+": "+(e?.message||e))}finally{ae.value=!1}}}function ye(){c.fromChain="",c.toChain="",c.amount=null,c.asset="",c.sender="",c.recipient=""}function be(){d.fromChain="",d.toChain="",d.amount=null,d.fromAsset="",d.toAsset="",d.counterparty="",d.timeoutMs=null}function ve(){y.fromChain="",y.toChain="",y.payload="",y.contract=""}return Qe(R),(e,n)=>{const F=g("a-button"),q=g("a-menu-item"),le=g("a-menu"),Pe=g("a-dropdown"),_e=g("a-space"),N=g("a-statistic"),M=g("a-card"),V=g("a-col"),Le=g("a-row"),D=g("a-tag"),ne=g("a-table"),re=g("a-tab-pane"),Ne=g("a-tabs"),T=g("a-select-option"),j=g("a-select"),b=g("a-form-item"),W=g("a-input-number"),O=g("a-input"),X=g("a-form"),G=g("a-modal"),Be=g("a-textarea");return u(),m("div",null,[f("div",nt,[f("div",null,[f("h2",rt,i(e.$t("crosschain.title")),1),f("p",it,i(e.$t("crosschain.subtitle")),1)]),s(_e,null,{default:o(()=>[s(F,{loading:P.value,onClick:R},{icon:o(()=>[s(v(Ve))]),default:o(()=>[h(" "+i(e.$t("crosschain.refresh")),1)]),_:1},8,["loading"]),s(Pe,{trigger:["click"]},{overlay:o(()=>[s(le,{onClick:Ue},{default:o(()=>[s(q,{key:"bridge"},{default:o(()=>[s(v(ie)),h(" "+i(e.$t("crosschain.actions.bridge")),1)]),_:1}),s(q,{key:"swap"},{default:o(()=>[s(v(ue)),h(" "+i(e.$t("crosschain.actions.swap")),1)]),_:1}),s(q,{key:"message"},{default:o(()=>[s(v(de)),h(" "+i(e.$t("crosschain.actions.message")),1)]),_:1})]),_:1})]),default:o(()=>[s(F,{type:"primary"},{icon:o(()=>[s(v(De))]),default:o(()=>[h(" "+i(e.$t("crosschain.newDropdown")),1)]),_:1})]),_:1}),s(F,{onClick:n[0]||(n[0]=t=>se.value=!0)},{icon:o(()=>[s(v(Ee))]),default:o(()=>[h(" "+i(e.$t("crosschain.feeEstimate")),1)]),_:1})]),_:1})]),s(Le,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:o(()=>[s(V,{xs:12,sm:8,lg:5},{default:o(()=>[s(M,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:o(()=>[s(N,{title:e.$t("crosschain.stats.chains"),value:S.value.length,"value-style":{color:"#1677ff",fontSize:"20px"}},{prefix:o(()=>[s(v(Je))]),_:1},8,["title","value"])]),_:1})]),_:1}),s(V,{xs:12,sm:8,lg:5},{default:o(()=>[s(M,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:o(()=>[s(N,{title:e.$t("crosschain.stats.bridges"),value:I.value.bridges.total,"value-style":{color:"#52c41a",fontSize:"20px"}},{prefix:o(()=>[s(v(ie))]),_:1},8,["title","value"])]),_:1})]),_:1}),s(V,{xs:12,sm:8,lg:5},{default:o(()=>[s(M,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:o(()=>[s(N,{title:e.$t("crosschain.stats.swaps"),value:I.value.swaps.total,"value-style":{color:"#722ed1",fontSize:"20px"}},{prefix:o(()=>[s(v(ue))]),_:1},8,["title","value"])]),_:1})]),_:1}),s(V,{xs:12,sm:8,lg:5},{default:o(()=>[s(M,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:o(()=>[s(N,{title:e.$t("crosschain.stats.messages"),value:I.value.messages.total,"value-style":{color:"#faad14",fontSize:"20px"}},{prefix:o(()=>[s(v(de))]),_:1},8,["title","value"])]),_:1})]),_:1}),s(V,{xs:24,sm:8,lg:4},{default:o(()=>[s(M,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:o(()=>[s(N,{title:e.$t("crosschain.stats.volume"),value:I.value.bridges.totalVolume,precision:2,"value-style":{color:"#13c2c2",fontSize:"20px"}},{prefix:o(()=>[s(v(Ke))]),_:1},8,["title","value"])]),_:1})]),_:1})]),_:1}),S.value.length?(u(),x(M,{key:0,title:e.$t("crosschain.chainsCard"),size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"20px"},"body-style":{padding:"12px 16px"}},{default:o(()=>[s(_e,{size:[12,8],wrap:""},{default:o(()=>[(u(!0),m($,null,U(S.value,t=>(u(),x(D,{key:t.id,color:Ae(t.id)},{default:o(()=>[h(i(t.name)+" ",1),f("span",ut,"("+i(t.symbol)+")",1),t.chainId>0?(u(),m("span",dt,"#"+i(t.chainId),1)):_("",!0)]),_:2},1032,["color"]))),128))]),_:1})]),_:1},8,["title"])):_("",!0),s(Ne,{activeKey:H.value,"onUpdate:activeKey":n[1]||(n[1]=t=>H.value=t),class:"xchain-tabs"},{default:o(()=>[s(re,{key:"bridges",tab:e.$t("crosschain.tabs.bridges")},{default:o(()=>[s(ne,{columns:ke.value,"data-source":fe.value,pagination:{pageSize:20,showTotal:t=>e.$t("crosschain.table.totalSuffix",{n:t})},size:"small",loading:P.value,style:{background:"var(--bg-card)"}},{bodyCell:o(({column:t,record:p})=>[t.key==="route"?(u(),m($,{key:0},[f("span",ct,i(L(p.fromChain)),1),s(v(ce),{style:{margin:"0 6px",color:"var(--text-secondary)","font-size":"11px"}}),f("span",pt,i(L(p.toChain)),1)],64)):_("",!0),t.key==="amount"?(u(),m($,{key:1},[f("span",mt,i(p.amount),1),f("span",ft,i(p.asset),1)],64)):_("",!0),t.key==="fee"?(u(),m("span",ht,i(p.feeAmount),1)):_("",!0),t.key==="status"?(u(),x(D,{key:3,color:Se(p.status)},{default:o(()=>[h(i(oe(p.status)),1)]),_:2},1032,["color"])):_("",!0),t.key==="createdAt"?(u(),m("span",gt,i(v(me)(p.createdAt)),1)):_("",!0)]),emptyText:o(()=>[f("div",yt,[s(v(ie),{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),h(" "+i(e.$t("crosschain.table.emptyBridges")),1)])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"]),s(re,{key:"swaps",tab:e.$t("crosschain.tabs.swaps")},{default:o(()=>[s(ne,{columns:Ce.value,"data-source":he.value,pagination:{pageSize:20,showTotal:t=>e.$t("crosschain.table.totalSuffix",{n:t})},size:"small",loading:P.value,style:{background:"var(--bg-card)"}},{bodyCell:o(({column:t,record:p})=>[t.key==="route"?(u(),m($,{key:0},[f("span",bt,i(L(p.fromChain)),1),f("span",vt,"("+i(p.fromAsset)+")",1),s(v(ce),{style:{margin:"0 4px",color:"var(--text-secondary)","font-size":"11px"}}),f("span",_t,i(L(p.toChain)),1),f("span",kt,"("+i(p.toAsset)+")",1)],64)):_("",!0),t.key==="amount"?(u(),m("span",Ct,i(p.amount),1)):_("",!0),t.key==="hashLock"?(u(),m($,{key:2},[p.hashLock?(u(),m("span",xt,i(p.hashLock.slice(0,14))+"... ",1)):(u(),m("span",$t,"—"))],64)):_("",!0),t.key==="status"?(u(),x(D,{key:3,color:we(p.status)},{default:o(()=>[h(i(oe(p.status)),1)]),_:2},1032,["color"])):_("",!0),t.key==="expiresAt"?(u(),m("span",At,i(v(me)(p.expiresAt)),1)):_("",!0)]),emptyText:o(()=>[f("div",St,[s(v(ue),{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),h(" "+i(e.$t("crosschain.table.emptySwaps")),1)])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"]),s(re,{key:"messages",tab:e.$t("crosschain.tabs.messages")},{default:o(()=>[s(ne,{columns:xe.value,"data-source":ge.value,pagination:{pageSize:20,showTotal:t=>e.$t("crosschain.table.totalSuffix",{n:t})},size:"small",loading:P.value,style:{background:"var(--bg-card)"}},{bodyCell:o(({column:t,record:p})=>[t.key==="route"?(u(),m($,{key:0},[f("span",wt,i(L(p.fromChain)),1),s(v(ce),{style:{margin:"0 6px",color:"var(--text-secondary)","font-size":"11px"}}),f("span",Ft,i(L(p.toChain)),1)],64)):_("",!0),t.key==="payload"?(u(),m("span",zt,i(ze(p.payload,60)||"—"),1)):_("",!0),t.key==="retries"?(u(),m($,{key:2},[p.retries>0?(u(),x(D,{key:0,color:"orange",style:{"font-size":"11px"}},{default:o(()=>[h(i(e.$t("crosschain.table.retrySuffix",{n:p.retries})),1)]),_:2},1024)):(u(),m("span",Ut,"—"))],64)):_("",!0),t.key==="status"?(u(),x(D,{key:3,color:Fe(p.status)},{default:o(()=>[h(i(oe(p.status)),1)]),_:2},1032,["color"])):_("",!0),t.key==="createdAt"?(u(),m("span",Tt,i(v(me)(p.createdAt)),1)):_("",!0)]),emptyText:o(()=>[f("div",jt,[s(v(de),{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),h(" "+i(e.$t("crosschain.table.emptyMessages")),1)])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"])]),_:1},8,["activeKey"]),s(G,{open:E.value,"onUpdate:open":n[8]||(n[8]=t=>E.value=t),title:e.$t("crosschain.bridge_modal.title"),"confirm-loading":Z.value,width:540,"ok-text":e.$t("crosschain.bridge_modal.ok"),"cancel-text":e.$t("crosschain.bridge_modal.cancel"),onOk:Te,onCancel:ye},{default:o(()=>[s(X,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:o(()=>[s(b,{label:e.$t("crosschain.bridge_modal.fromChain"),required:""},{default:o(()=>[s(j,{value:c.fromChain,"onUpdate:value":n[2]||(n[2]=t=>c.fromChain=t),placeholder:e.$t("crosschain.bridge_modal.fromChainPlaceholder")},{default:o(()=>[(u(!0),m($,null,U(S.value,t=>(u(),x(T,{key:t.id,value:t.id},{default:o(()=>[h(i(t.name),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value","placeholder"])]),_:1},8,["label"]),s(b,{label:e.$t("crosschain.bridge_modal.toChain"),required:""},{default:o(()=>[s(j,{value:c.toChain,"onUpdate:value":n[3]||(n[3]=t=>c.toChain=t),placeholder:e.$t("crosschain.bridge_modal.toChainPlaceholder")},{default:o(()=>[(u(!0),m($,null,U(S.value,t=>(u(),x(T,{key:t.id,value:t.id,disabled:t.id===c.fromChain},{default:o(()=>[h(i(t.name),1)]),_:2},1032,["value","disabled"]))),128))]),_:1},8,["value","placeholder"])]),_:1},8,["label"]),s(b,{label:e.$t("crosschain.bridge_modal.amount"),required:""},{default:o(()=>[s(W,{value:c.amount,"onUpdate:value":n[4]||(n[4]=t=>c.amount=t),min:0,precision:6,style:{width:"100%"}},null,8,["value"])]),_:1},8,["label"]),s(b,{label:e.$t("crosschain.bridge_modal.asset")},{default:o(()=>[s(O,{value:c.asset,"onUpdate:value":n[5]||(n[5]=t=>c.asset=t),placeholder:e.$t("crosschain.bridge_modal.assetPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),s(b,{label:e.$t("crosschain.bridge_modal.sender")},{default:o(()=>[s(O,{value:c.sender,"onUpdate:value":n[6]||(n[6]=t=>c.sender=t),placeholder:e.$t("crosschain.bridge_modal.senderPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),s(b,{label:e.$t("crosschain.bridge_modal.recipient")},{default:o(()=>[s(O,{value:c.recipient,"onUpdate:value":n[7]||(n[7]=t=>c.recipient=t),placeholder:e.$t("crosschain.bridge_modal.recipientPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),s(G,{open:J.value,"onUpdate:open":n[16]||(n[16]=t=>J.value=t),title:e.$t("crosschain.swap_modal.title"),"confirm-loading":ee.value,width:540,"ok-text":e.$t("crosschain.swap_modal.ok"),"cancel-text":e.$t("crosschain.swap_modal.cancel"),onOk:je,onCancel:be},{default:o(()=>[s(X,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:o(()=>[s(b,{label:e.$t("crosschain.swap_modal.fromChain"),required:""},{default:o(()=>[s(j,{value:d.fromChain,"onUpdate:value":n[9]||(n[9]=t=>d.fromChain=t),placeholder:e.$t("crosschain.swap_modal.fromChainPlaceholder")},{default:o(()=>[(u(!0),m($,null,U(S.value,t=>(u(),x(T,{key:t.id,value:t.id},{default:o(()=>[h(i(t.name),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value","placeholder"])]),_:1},8,["label"]),s(b,{label:e.$t("crosschain.swap_modal.toChain"),required:""},{default:o(()=>[s(j,{value:d.toChain,"onUpdate:value":n[10]||(n[10]=t=>d.toChain=t),placeholder:e.$t("crosschain.swap_modal.toChainPlaceholder")},{default:o(()=>[(u(!0),m($,null,U(S.value,t=>(u(),x(T,{key:t.id,value:t.id,disabled:t.id===d.fromChain},{default:o(()=>[h(i(t.name),1)]),_:2},1032,["value","disabled"]))),128))]),_:1},8,["value","placeholder"])]),_:1},8,["label"]),s(b,{label:e.$t("crosschain.swap_modal.amount"),required:""},{default:o(()=>[s(W,{value:d.amount,"onUpdate:value":n[11]||(n[11]=t=>d.amount=t),min:0,precision:6,style:{width:"100%"}},null,8,["value"])]),_:1},8,["label"]),s(b,{label:e.$t("crosschain.swap_modal.fromAsset")},{default:o(()=>[s(O,{value:d.fromAsset,"onUpdate:value":n[12]||(n[12]=t=>d.fromAsset=t),placeholder:e.$t("crosschain.swap_modal.assetPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),s(b,{label:e.$t("crosschain.swap_modal.toAsset")},{default:o(()=>[s(O,{value:d.toAsset,"onUpdate:value":n[13]||(n[13]=t=>d.toAsset=t),placeholder:e.$t("crosschain.swap_modal.assetPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),s(b,{label:e.$t("crosschain.swap_modal.counterparty")},{default:o(()=>[s(O,{value:d.counterparty,"onUpdate:value":n[14]||(n[14]=t=>d.counterparty=t),placeholder:e.$t("crosschain.swap_modal.counterpartyPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),s(b,{label:e.$t("crosschain.swap_modal.timeoutMs")},{default:o(()=>[s(W,{value:d.timeoutMs,"onUpdate:value":n[15]||(n[15]=t=>d.timeoutMs=t),min:0,placeholder:e.$t("crosschain.swap_modal.timeoutPlaceholder"),style:{width:"100%"}},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),s(G,{open:K.value,"onUpdate:open":n[21]||(n[21]=t=>K.value=t),title:e.$t("crosschain.message_modal.title"),"confirm-loading":te.value,width:520,"ok-text":e.$t("crosschain.message_modal.ok"),"cancel-text":e.$t("crosschain.message_modal.cancel"),onOk:Me,onCancel:ve},{default:o(()=>[s(X,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:o(()=>[s(b,{label:e.$t("crosschain.message_modal.fromChain"),required:""},{default:o(()=>[s(j,{value:y.fromChain,"onUpdate:value":n[17]||(n[17]=t=>y.fromChain=t),placeholder:e.$t("crosschain.message_modal.fromChainPlaceholder")},{default:o(()=>[(u(!0),m($,null,U(S.value,t=>(u(),x(T,{key:t.id,value:t.id},{default:o(()=>[h(i(t.name),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value","placeholder"])]),_:1},8,["label"]),s(b,{label:e.$t("crosschain.message_modal.toChain"),required:""},{default:o(()=>[s(j,{value:y.toChain,"onUpdate:value":n[18]||(n[18]=t=>y.toChain=t),placeholder:e.$t("crosschain.message_modal.toChainPlaceholder")},{default:o(()=>[(u(!0),m($,null,U(S.value,t=>(u(),x(T,{key:t.id,value:t.id,disabled:t.id===y.fromChain},{default:o(()=>[h(i(t.name),1)]),_:2},1032,["value","disabled"]))),128))]),_:1},8,["value","placeholder"])]),_:1},8,["label"]),s(b,{label:e.$t("crosschain.message_modal.payload")},{default:o(()=>[s(Be,{value:y.payload,"onUpdate:value":n[19]||(n[19]=t=>y.payload=t),"auto-size":{minRows:3,maxRows:8}},null,8,["value"])]),_:1},8,["label"]),s(b,{label:e.$t("crosschain.message_modal.contract")},{default:o(()=>[s(O,{value:y.contract,"onUpdate:value":n[20]||(n[20]=t=>y.contract=t),placeholder:e.$t("crosschain.message_modal.contractPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),s(G,{open:se.value,"onUpdate:open":n[25]||(n[25]=t=>se.value=t),title:e.$t("crosschain.fee_modal.title"),"confirm-loading":ae.value,width:480,"ok-text":e.$t("crosschain.fee_modal.ok"),"cancel-text":e.$t("crosschain.fee_modal.cancel"),onOk:Oe},{default:o(()=>[s(X,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:o(()=>[s(b,{label:e.$t("crosschain.fee_modal.fromChain"),required:""},{default:o(()=>[s(j,{value:w.fromChain,"onUpdate:value":n[22]||(n[22]=t=>w.fromChain=t)},{default:o(()=>[(u(!0),m($,null,U(S.value,t=>(u(),x(T,{key:t.id,value:t.id},{default:o(()=>[h(i(t.name),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),_:1},8,["label"]),s(b,{label:e.$t("crosschain.fee_modal.toChain"),required:""},{default:o(()=>[s(j,{value:w.toChain,"onUpdate:value":n[23]||(n[23]=t=>w.toChain=t)},{default:o(()=>[(u(!0),m($,null,U(S.value,t=>(u(),x(T,{key:t.id,value:t.id,disabled:t.id===w.fromChain},{default:o(()=>[h(i(t.name),1)]),_:2},1032,["value","disabled"]))),128))]),_:1},8,["value"])]),_:1},8,["label"]),s(b,{label:e.$t("crosschain.fee_modal.amount"),required:""},{default:o(()=>[s(W,{value:w.amount,"onUpdate:value":n[24]||(n[24]=t=>w.amount=t),min:0,precision:6,style:{width:"100%"}},null,8,["value"])]),_:1},8,["label"])]),_:1}),z.value?(u(),x(M,{key:0,size:"small",style:{background:"var(--bg-base)","margin-top":"8px"}},{default:o(()=>[s(N,{title:e.$t("crosschain.fee_modal.resultTitle"),value:z.value.fee,precision:4,suffix:z.value.currency,"value-style":{color:"#1677ff"}},null,8,["title","value","suffix"]),f("div",Mt,[f("div",null,i(e.$t("crosschain.fee_modal.sourceFee",{fee:z.value.breakdown.sourceFee,currency:z.value.currency})),1),f("div",null,i(e.$t("crosschain.fee_modal.destFee",{fee:z.value.breakdown.destFee,currency:z.value.currency})),1),f("div",null,i(e.$t("crosschain.fee_modal.bridgeFee",{fee:z.value.breakdown.bridgeFee,currency:z.value.currency})),1)])]),_:1})):_("",!0)]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"])])}}},Ht=Ie(Ot,[["__scopeId","data-v-21e0fb7f"]]);export{Ht as default};
|
|
1
|
+
import{_ as Ie,a as He,c as k}from"./index-Cw4v7ezB.js";import{u as Re}from"./ws-D_5-FRIb.js";import{s as qe}from"./community-parser-CO25nZFt.js";import{R as Ve,al as De,Q as ie,aN as ue,aO as de,aP as Ee,ap as Je,av as Ke,aE as ce}from"./icons-DvZE-RKs.js";import{o as Qe,M as m,R as f,P as i,c as s,N as o,Q as x,S as _,K as g,r as C,L as u,O as h,u as v,F as $,_ as U,f as pe,a as Y}from"./vendor-B6ToihkA.js";function B(a){const r=qe(a);if(!r)return null;try{return JSON.parse(r)}catch{}const l=r.match(/\{[\s\S]*\}|\[[\s\S]*\]/);if(!l)return null;try{return JSON.parse(l[0])}catch{return null}}function A(a,r=0){return typeof a=="number"&&Number.isFinite(a)?a:r}function We(a,r=0){if(!a||typeof a!="object")return null;const l=a.id||"";return l?{key:l,id:l,name:String(a.name||l),symbol:String(a.symbol||""),chainId:A(a.chainId??a.chain_id,0),_idx:r}:null}function Xe(a){const r=B(a);return Array.isArray(r)?r.map(We).filter(Boolean):[]}function Ge(a,r=0){if(!a||typeof a!="object")return null;const l=a.id||"";return l?{key:l,id:l,fromChain:a.fromChain??a.from_chain??"",toChain:a.toChain??a.to_chain??"",asset:String(a.asset||"native"),amount:A(a.amount,0),senderAddress:a.senderAddress??a.sender_address??"",recipientAddress:a.recipientAddress??a.recipient_address??"",lockTxHash:a.lockTxHash??a.lock_tx_hash??"",mintTxHash:a.mintTxHash??a.mint_tx_hash??"",status:String(a.status||"pending").toLowerCase(),feeAmount:A(a.feeAmount??a.fee_amount,0),feeChain:a.feeChain??a.fee_chain??"",errorMessage:a.errorMessage??a.error_message??"",createdAt:a.createdAt??a.created_at??null,completedAt:a.completedAt??a.completed_at??null,_idx:r}:null}function Ye(a){const r=B(a);return Array.isArray(r)?r.map(Ge).filter(Boolean):[]}function Ze(a,r=0){if(!a||typeof a!="object")return null;const l=a.id||"";return l?{key:l,id:l,fromChain:a.fromChain??a.from_chain??"",toChain:a.toChain??a.to_chain??"",fromAsset:a.fromAsset??a.from_asset??"native",toAsset:a.toAsset??a.to_asset??"native",amount:A(a.amount,0),counterpartyAddress:a.counterpartyAddress??a.counterparty_address??"",hashLock:a.hashLock??a.hash_lock??"",expiresAt:a.expiresAt??a.expires_at??null,status:String(a.status||"initiated").toLowerCase(),claimTxHash:a.claimTxHash??a.claim_tx_hash??"",refundTxHash:a.refundTxHash??a.refund_tx_hash??"",createdAt:a.createdAt??a.created_at??null,_idx:r}:null}function et(a){const r=B(a);return Array.isArray(r)?r.map(Ze).filter(Boolean):[]}function tt(a,r=0){if(!a||typeof a!="object")return null;const l=a.id||"";return l?{key:l,id:l,fromChain:a.fromChain??a.from_chain??"",toChain:a.toChain??a.to_chain??"",payload:String(a.payload||""),targetContract:a.targetContract??a.target_contract??"",sourceTxHash:a.sourceTxHash??a.source_tx_hash??"",destinationTxHash:a.destinationTxHash??a.destination_tx_hash??"",status:String(a.status||"pending").toLowerCase(),retries:A(a.retries,0),createdAt:a.createdAt??a.created_at??null,deliveredAt:a.deliveredAt??a.delivered_at??null,_idx:r}:null}function at(a){const r=B(a);return Array.isArray(r)?r.map(tt).filter(Boolean):[]}const st={bridges:{total:0,byStatus:{},totalVolume:0,totalFees:0},swaps:{total:0,byStatus:{}},messages:{total:0,byStatus:{}}};function ot(a){const r=JSON.parse(JSON.stringify(st)),l=B(a);return!l||typeof l!="object"||Array.isArray(l)||(l.bridges&&typeof l.bridges=="object"&&(r.bridges.total=A(l.bridges.total,0),r.bridges.totalVolume=A(l.bridges.totalVolume??l.bridges.total_volume,0),r.bridges.totalFees=A(l.bridges.totalFees??l.bridges.total_fees,0),l.bridges.byStatus&&typeof l.bridges.byStatus=="object"&&(r.bridges.byStatus={...l.bridges.byStatus})),l.swaps&&typeof l.swaps=="object"&&(r.swaps.total=A(l.swaps.total,0),l.swaps.byStatus&&typeof l.swaps.byStatus=="object"&&(r.swaps.byStatus={...l.swaps.byStatus})),l.messages&&typeof l.messages=="object"&&(r.messages.total=A(l.messages.total,0),l.messages.byStatus&&typeof l.messages.byStatus=="object"&&(r.messages.byStatus={...l.messages.byStatus}))),r}function lt(a){const r=B(a);return!r||typeof r!="object"||Array.isArray(r)?null:{fee:A(r.fee,0),breakdown:{sourceFee:A(r?.breakdown?.sourceFee??r?.breakdown?.source_fee,0),destFee:A(r?.breakdown?.destFee??r?.breakdown?.dest_fee,0),bridgeFee:A(r?.breakdown?.bridgeFee??r?.breakdown?.bridge_fee,0)},currency:String(r.currency||"USD")}}function me(a){if(a==null||a==="")return"—";const r=typeof a=="number"?new Date(a):new Date(String(a));return isNaN(r.getTime())?String(a):r.toLocaleString("zh-CN",{hour12:!1})}const nt={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},rt={class:"page-title"},it={class:"page-sub"},ut={style:{opacity:"0.7"}},dt={key:0,style:{opacity:"0.55","font-size":"10px","margin-left":"4px"}},ct={style:{color:"var(--text-primary)"}},pt={style:{color:"var(--text-primary)"}},mt={style:{color:"#722ed1","font-weight":"500"}},ft={style:{color:"var(--text-secondary)","margin-left":"4px","font-size":"11px"}},ht={key:2,style:{color:"var(--text-secondary)","font-size":"12px"}},gt={key:4,style:{color:"var(--text-secondary)","font-size":"11px"}},yt={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},bt={style:{color:"var(--text-primary)"}},vt={style:{color:"var(--text-secondary)","font-size":"11px",margin:"0 4px"}},_t={style:{color:"var(--text-primary)"}},kt={style:{color:"var(--text-secondary)","font-size":"11px","margin-left":"4px"}},Ct={key:1,style:{color:"#722ed1","font-weight":"500"}},xt={key:0,style:{color:"var(--text-secondary)","font-family":"monospace","font-size":"11px"}},$t={key:1,style:{color:"var(--text-muted)"}},At={key:4,style:{color:"var(--text-secondary)","font-size":"11px"}},St={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},wt={style:{color:"var(--text-primary)"}},Ft={style:{color:"var(--text-primary)"}},zt={key:1,style:{color:"var(--text-secondary)","font-size":"12px"}},Ut={key:1,style:{color:"var(--text-muted)"}},Tt={key:4,style:{color:"var(--text-secondary)","font-size":"11px"}},jt={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},Mt={style:{"margin-top":"12px","font-size":"12px",color:"var(--text-secondary)"}},Ot={__name:"Crosschain",setup(a){const r=Re(),{t:l}=He(),P=C(!1),Z=C(!1),ee=C(!1),te=C(!1),ae=C(!1),S=C([]),fe=C([]),he=C([]),ge=C([]),I=C({bridges:{total:0,byStatus:{},totalVolume:0,totalFees:0},swaps:{total:0,byStatus:{}},messages:{total:0,byStatus:{}}}),H=C("bridges"),E=C(!1),J=C(!1),K=C(!1),se=C(!1),c=Y({fromChain:"",toChain:"",amount:null,asset:"",sender:"",recipient:""}),d=Y({fromChain:"",toChain:"",amount:null,fromAsset:"",toAsset:"",counterparty:"",timeoutMs:null}),y=Y({fromChain:"",toChain:"",payload:"",contract:""}),w=Y({fromChain:"",toChain:"",amount:null}),z=C(null),ke=pe(()=>[{title:l("crosschain.bridgeCols.route"),key:"route"},{title:l("crosschain.bridgeCols.amount"),key:"amount",width:"160px"},{title:l("crosschain.bridgeCols.fee"),key:"fee",width:"100px"},{title:l("crosschain.bridgeCols.status"),key:"status",width:"110px"},{title:l("crosschain.bridgeCols.createdAt"),key:"createdAt",width:"160px"}]),Ce=pe(()=>[{title:l("crosschain.swapCols.route"),key:"route"},{title:l("crosschain.swapCols.amount"),key:"amount",width:"110px"},{title:l("crosschain.swapCols.hashLock"),key:"hashLock",width:"160px"},{title:l("crosschain.swapCols.status"),key:"status",width:"120px"},{title:l("crosschain.swapCols.expiresAt"),key:"expiresAt",width:"160px"}]),xe=pe(()=>[{title:l("crosschain.messageCols.route"),key:"route",width:"220px"},{title:l("crosschain.messageCols.payload"),key:"payload"},{title:l("crosschain.messageCols.retries"),key:"retries",width:"80px"},{title:l("crosschain.messageCols.status"),key:"status",width:"110px"},{title:l("crosschain.messageCols.createdAt"),key:"createdAt",width:"160px"}]),$e={ethereum:"blue",polygon:"purple",bsc:"gold",arbitrum:"cyan",solana:"magenta"};function Ae(e){return $e[e]||"default"}function L(e){const n=S.value.find(F=>F.id===e);return n?n.name:e||"—"}function oe(e){const n=`crosschain.statusLabels.${e}`,F=l(n);return F===n?e:F}function Se(e){return{pending:"default",locked:"processing",minted:"cyan",completed:"green",refunded:"orange",failed:"red"}[e]||"default"}function we(e){return{initiated:"default",hash_locked:"processing",claimed:"green",refunded:"orange",expired:"red"}[e]||"default"}function Fe(e){return{pending:"default",sent:"processing",delivered:"green",failed:"red"}[e]||"default"}function ze(e,n){return e?e.length>n?e.slice(0,n)+"...":e:""}function Ue({key:e}){e==="bridge"?E.value=!0:e==="swap"?J.value=!0:e==="message"&&(K.value=!0)}async function R(){P.value=!0;try{const[e,n,F,q,le]=await Promise.all([r.execute("crosschain chains --json",8e3).catch(()=>({output:""})),r.execute("crosschain bridges --limit 200 --json",1e4).catch(()=>({output:""})),r.execute("crosschain swaps --limit 200 --json",1e4).catch(()=>({output:""})),r.execute("crosschain messages --limit 200 --json",1e4).catch(()=>({output:""})),r.execute("crosschain stats --json",8e3).catch(()=>({output:""}))]);S.value=Xe(e.output),fe.value=Ye(n.output),he.value=et(F.output),ge.value=at(q.output),I.value=ot(le.output)}catch(e){k.error(l("crosschain.msg.loadFailed")+": "+(e?.message||e))}finally{P.value=!1}}function Q(e){return!e.fromChain||!e.toChain?(k.warning(l("crosschain.msg.pairEmpty")),!1):e.fromChain===e.toChain?(k.warning(l("crosschain.msg.pairSame")),!1):!0}async function Te(){if(Q(c)){if(!c.amount||c.amount<=0){k.warning(l("crosschain.msg.amountInvalid"));return}Z.value=!0;try{const e=[`crosschain bridge ${c.fromChain} ${c.toChain} ${c.amount}`];c.asset.trim()&&e.push(`--asset "${c.asset.trim().replace(/"/g,'\\"')}"`),c.sender.trim()&&e.push(`--sender "${c.sender.trim().replace(/"/g,'\\"')}"`),c.recipient.trim()&&e.push(`--recipient "${c.recipient.trim().replace(/"/g,'\\"')}"`),e.push("--json");const{output:n}=await r.execute(e.join(" "),15e3);if(/error|failed|失败|unsupported/i.test(n)&&!/"bridgeId"/.test(n)){k.error(l("crosschain.msg.bridgeFailed")+": "+n.slice(0,120));return}k.success(l("crosschain.msg.bridgeSuccess")),E.value=!1,ye(),H.value="bridges",await R()}catch(e){k.error(l("crosschain.msg.bridgeFailed")+": "+(e?.message||e))}finally{Z.value=!1}}}async function je(){if(Q(d)){if(!d.amount||d.amount<=0){k.warning(l("crosschain.msg.amountInvalid"));return}ee.value=!0;try{const e=[`crosschain swap ${d.fromChain} ${d.toChain} ${d.amount}`];d.fromAsset.trim()&&e.push(`--from-asset "${d.fromAsset.trim().replace(/"/g,'\\"')}"`),d.toAsset.trim()&&e.push(`--to-asset "${d.toAsset.trim().replace(/"/g,'\\"')}"`),d.counterparty.trim()&&e.push(`--counterparty "${d.counterparty.trim().replace(/"/g,'\\"')}"`),d.timeoutMs!=null&&e.push(`--timeout ${d.timeoutMs}`),e.push("--json");const{output:n}=await r.execute(e.join(" "),15e3);if(/error|failed|失败|unsupported/i.test(n)&&!/"swapId"/.test(n)){k.error(l("crosschain.msg.swapFailed")+": "+n.slice(0,120));return}k.success(l("crosschain.msg.swapSuccess")),J.value=!1,be(),H.value="swaps",await R()}catch(e){k.error(l("crosschain.msg.swapFailed")+": "+(e?.message||e))}finally{ee.value=!1}}}async function Me(){if(Q(y)){te.value=!0;try{const e=[`crosschain send ${y.fromChain} ${y.toChain}`];y.payload.trim()&&e.push(`--payload "${y.payload.trim().replace(/"/g,'\\"')}"`),y.contract.trim()&&e.push(`--contract "${y.contract.trim().replace(/"/g,'\\"')}"`),e.push("--json");const{output:n}=await r.execute(e.join(" "),12e3);if(/error|failed|失败|unsupported/i.test(n)&&!/"messageId"/.test(n)){k.error(l("crosschain.msg.sendFailed")+": "+n.slice(0,120));return}k.success(l("crosschain.msg.sendSuccess")),K.value=!1,ve(),H.value="messages",await R()}catch(e){k.error(l("crosschain.msg.sendFailed")+": "+(e?.message||e))}finally{te.value=!1}}}async function Oe(){if(Q(w)){if(!w.amount||w.amount<=0){k.warning(l("crosschain.msg.amountInvalid"));return}ae.value=!0,z.value=null;try{const e=`crosschain estimate-fee ${w.fromChain} ${w.toChain} ${w.amount} --json`,{output:n}=await r.execute(e,8e3),F=lt(n);if(!F){k.error(l("crosschain.msg.feeFailed")+": "+n.slice(0,120));return}z.value=F}catch(e){k.error(l("crosschain.msg.feeFailed")+": "+(e?.message||e))}finally{ae.value=!1}}}function ye(){c.fromChain="",c.toChain="",c.amount=null,c.asset="",c.sender="",c.recipient=""}function be(){d.fromChain="",d.toChain="",d.amount=null,d.fromAsset="",d.toAsset="",d.counterparty="",d.timeoutMs=null}function ve(){y.fromChain="",y.toChain="",y.payload="",y.contract=""}return Qe(R),(e,n)=>{const F=g("a-button"),q=g("a-menu-item"),le=g("a-menu"),Pe=g("a-dropdown"),_e=g("a-space"),N=g("a-statistic"),M=g("a-card"),V=g("a-col"),Le=g("a-row"),D=g("a-tag"),ne=g("a-table"),re=g("a-tab-pane"),Ne=g("a-tabs"),T=g("a-select-option"),j=g("a-select"),b=g("a-form-item"),W=g("a-input-number"),O=g("a-input"),X=g("a-form"),G=g("a-modal"),Be=g("a-textarea");return u(),m("div",null,[f("div",nt,[f("div",null,[f("h2",rt,i(e.$t("crosschain.title")),1),f("p",it,i(e.$t("crosschain.subtitle")),1)]),s(_e,null,{default:o(()=>[s(F,{loading:P.value,onClick:R},{icon:o(()=>[s(v(Ve))]),default:o(()=>[h(" "+i(e.$t("crosschain.refresh")),1)]),_:1},8,["loading"]),s(Pe,{trigger:["click"]},{overlay:o(()=>[s(le,{onClick:Ue},{default:o(()=>[s(q,{key:"bridge"},{default:o(()=>[s(v(ie)),h(" "+i(e.$t("crosschain.actions.bridge")),1)]),_:1}),s(q,{key:"swap"},{default:o(()=>[s(v(ue)),h(" "+i(e.$t("crosschain.actions.swap")),1)]),_:1}),s(q,{key:"message"},{default:o(()=>[s(v(de)),h(" "+i(e.$t("crosschain.actions.message")),1)]),_:1})]),_:1})]),default:o(()=>[s(F,{type:"primary"},{icon:o(()=>[s(v(De))]),default:o(()=>[h(" "+i(e.$t("crosschain.newDropdown")),1)]),_:1})]),_:1}),s(F,{onClick:n[0]||(n[0]=t=>se.value=!0)},{icon:o(()=>[s(v(Ee))]),default:o(()=>[h(" "+i(e.$t("crosschain.feeEstimate")),1)]),_:1})]),_:1})]),s(Le,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:o(()=>[s(V,{xs:12,sm:8,lg:5},{default:o(()=>[s(M,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:o(()=>[s(N,{title:e.$t("crosschain.stats.chains"),value:S.value.length,"value-style":{color:"#1677ff",fontSize:"20px"}},{prefix:o(()=>[s(v(Je))]),_:1},8,["title","value"])]),_:1})]),_:1}),s(V,{xs:12,sm:8,lg:5},{default:o(()=>[s(M,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:o(()=>[s(N,{title:e.$t("crosschain.stats.bridges"),value:I.value.bridges.total,"value-style":{color:"#52c41a",fontSize:"20px"}},{prefix:o(()=>[s(v(ie))]),_:1},8,["title","value"])]),_:1})]),_:1}),s(V,{xs:12,sm:8,lg:5},{default:o(()=>[s(M,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:o(()=>[s(N,{title:e.$t("crosschain.stats.swaps"),value:I.value.swaps.total,"value-style":{color:"#722ed1",fontSize:"20px"}},{prefix:o(()=>[s(v(ue))]),_:1},8,["title","value"])]),_:1})]),_:1}),s(V,{xs:12,sm:8,lg:5},{default:o(()=>[s(M,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:o(()=>[s(N,{title:e.$t("crosschain.stats.messages"),value:I.value.messages.total,"value-style":{color:"#faad14",fontSize:"20px"}},{prefix:o(()=>[s(v(de))]),_:1},8,["title","value"])]),_:1})]),_:1}),s(V,{xs:24,sm:8,lg:4},{default:o(()=>[s(M,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:o(()=>[s(N,{title:e.$t("crosschain.stats.volume"),value:I.value.bridges.totalVolume,precision:2,"value-style":{color:"#13c2c2",fontSize:"20px"}},{prefix:o(()=>[s(v(Ke))]),_:1},8,["title","value"])]),_:1})]),_:1})]),_:1}),S.value.length?(u(),x(M,{key:0,title:e.$t("crosschain.chainsCard"),size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"20px"},"body-style":{padding:"12px 16px"}},{default:o(()=>[s(_e,{size:[12,8],wrap:""},{default:o(()=>[(u(!0),m($,null,U(S.value,t=>(u(),x(D,{key:t.id,color:Ae(t.id)},{default:o(()=>[h(i(t.name)+" ",1),f("span",ut,"("+i(t.symbol)+")",1),t.chainId>0?(u(),m("span",dt,"#"+i(t.chainId),1)):_("",!0)]),_:2},1032,["color"]))),128))]),_:1})]),_:1},8,["title"])):_("",!0),s(Ne,{activeKey:H.value,"onUpdate:activeKey":n[1]||(n[1]=t=>H.value=t),class:"xchain-tabs"},{default:o(()=>[s(re,{key:"bridges",tab:e.$t("crosschain.tabs.bridges")},{default:o(()=>[s(ne,{columns:ke.value,"data-source":fe.value,pagination:{pageSize:20,showTotal:t=>e.$t("crosschain.table.totalSuffix",{n:t})},size:"small",loading:P.value,style:{background:"var(--bg-card)"}},{bodyCell:o(({column:t,record:p})=>[t.key==="route"?(u(),m($,{key:0},[f("span",ct,i(L(p.fromChain)),1),s(v(ce),{style:{margin:"0 6px",color:"var(--text-secondary)","font-size":"11px"}}),f("span",pt,i(L(p.toChain)),1)],64)):_("",!0),t.key==="amount"?(u(),m($,{key:1},[f("span",mt,i(p.amount),1),f("span",ft,i(p.asset),1)],64)):_("",!0),t.key==="fee"?(u(),m("span",ht,i(p.feeAmount),1)):_("",!0),t.key==="status"?(u(),x(D,{key:3,color:Se(p.status)},{default:o(()=>[h(i(oe(p.status)),1)]),_:2},1032,["color"])):_("",!0),t.key==="createdAt"?(u(),m("span",gt,i(v(me)(p.createdAt)),1)):_("",!0)]),emptyText:o(()=>[f("div",yt,[s(v(ie),{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),h(" "+i(e.$t("crosschain.table.emptyBridges")),1)])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"]),s(re,{key:"swaps",tab:e.$t("crosschain.tabs.swaps")},{default:o(()=>[s(ne,{columns:Ce.value,"data-source":he.value,pagination:{pageSize:20,showTotal:t=>e.$t("crosschain.table.totalSuffix",{n:t})},size:"small",loading:P.value,style:{background:"var(--bg-card)"}},{bodyCell:o(({column:t,record:p})=>[t.key==="route"?(u(),m($,{key:0},[f("span",bt,i(L(p.fromChain)),1),f("span",vt,"("+i(p.fromAsset)+")",1),s(v(ce),{style:{margin:"0 4px",color:"var(--text-secondary)","font-size":"11px"}}),f("span",_t,i(L(p.toChain)),1),f("span",kt,"("+i(p.toAsset)+")",1)],64)):_("",!0),t.key==="amount"?(u(),m("span",Ct,i(p.amount),1)):_("",!0),t.key==="hashLock"?(u(),m($,{key:2},[p.hashLock?(u(),m("span",xt,i(p.hashLock.slice(0,14))+"... ",1)):(u(),m("span",$t,"—"))],64)):_("",!0),t.key==="status"?(u(),x(D,{key:3,color:we(p.status)},{default:o(()=>[h(i(oe(p.status)),1)]),_:2},1032,["color"])):_("",!0),t.key==="expiresAt"?(u(),m("span",At,i(v(me)(p.expiresAt)),1)):_("",!0)]),emptyText:o(()=>[f("div",St,[s(v(ue),{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),h(" "+i(e.$t("crosschain.table.emptySwaps")),1)])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"]),s(re,{key:"messages",tab:e.$t("crosschain.tabs.messages")},{default:o(()=>[s(ne,{columns:xe.value,"data-source":ge.value,pagination:{pageSize:20,showTotal:t=>e.$t("crosschain.table.totalSuffix",{n:t})},size:"small",loading:P.value,style:{background:"var(--bg-card)"}},{bodyCell:o(({column:t,record:p})=>[t.key==="route"?(u(),m($,{key:0},[f("span",wt,i(L(p.fromChain)),1),s(v(ce),{style:{margin:"0 6px",color:"var(--text-secondary)","font-size":"11px"}}),f("span",Ft,i(L(p.toChain)),1)],64)):_("",!0),t.key==="payload"?(u(),m("span",zt,i(ze(p.payload,60)||"—"),1)):_("",!0),t.key==="retries"?(u(),m($,{key:2},[p.retries>0?(u(),x(D,{key:0,color:"orange",style:{"font-size":"11px"}},{default:o(()=>[h(i(e.$t("crosschain.table.retrySuffix",{n:p.retries})),1)]),_:2},1024)):(u(),m("span",Ut,"—"))],64)):_("",!0),t.key==="status"?(u(),x(D,{key:3,color:Fe(p.status)},{default:o(()=>[h(i(oe(p.status)),1)]),_:2},1032,["color"])):_("",!0),t.key==="createdAt"?(u(),m("span",Tt,i(v(me)(p.createdAt)),1)):_("",!0)]),emptyText:o(()=>[f("div",jt,[s(v(de),{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),h(" "+i(e.$t("crosschain.table.emptyMessages")),1)])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"])]),_:1},8,["activeKey"]),s(G,{open:E.value,"onUpdate:open":n[8]||(n[8]=t=>E.value=t),title:e.$t("crosschain.bridge_modal.title"),"confirm-loading":Z.value,width:540,"ok-text":e.$t("crosschain.bridge_modal.ok"),"cancel-text":e.$t("crosschain.bridge_modal.cancel"),onOk:Te,onCancel:ye},{default:o(()=>[s(X,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:o(()=>[s(b,{label:e.$t("crosschain.bridge_modal.fromChain"),required:""},{default:o(()=>[s(j,{value:c.fromChain,"onUpdate:value":n[2]||(n[2]=t=>c.fromChain=t),placeholder:e.$t("crosschain.bridge_modal.fromChainPlaceholder")},{default:o(()=>[(u(!0),m($,null,U(S.value,t=>(u(),x(T,{key:t.id,value:t.id},{default:o(()=>[h(i(t.name),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value","placeholder"])]),_:1},8,["label"]),s(b,{label:e.$t("crosschain.bridge_modal.toChain"),required:""},{default:o(()=>[s(j,{value:c.toChain,"onUpdate:value":n[3]||(n[3]=t=>c.toChain=t),placeholder:e.$t("crosschain.bridge_modal.toChainPlaceholder")},{default:o(()=>[(u(!0),m($,null,U(S.value,t=>(u(),x(T,{key:t.id,value:t.id,disabled:t.id===c.fromChain},{default:o(()=>[h(i(t.name),1)]),_:2},1032,["value","disabled"]))),128))]),_:1},8,["value","placeholder"])]),_:1},8,["label"]),s(b,{label:e.$t("crosschain.bridge_modal.amount"),required:""},{default:o(()=>[s(W,{value:c.amount,"onUpdate:value":n[4]||(n[4]=t=>c.amount=t),min:0,precision:6,style:{width:"100%"}},null,8,["value"])]),_:1},8,["label"]),s(b,{label:e.$t("crosschain.bridge_modal.asset")},{default:o(()=>[s(O,{value:c.asset,"onUpdate:value":n[5]||(n[5]=t=>c.asset=t),placeholder:e.$t("crosschain.bridge_modal.assetPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),s(b,{label:e.$t("crosschain.bridge_modal.sender")},{default:o(()=>[s(O,{value:c.sender,"onUpdate:value":n[6]||(n[6]=t=>c.sender=t),placeholder:e.$t("crosschain.bridge_modal.senderPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),s(b,{label:e.$t("crosschain.bridge_modal.recipient")},{default:o(()=>[s(O,{value:c.recipient,"onUpdate:value":n[7]||(n[7]=t=>c.recipient=t),placeholder:e.$t("crosschain.bridge_modal.recipientPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),s(G,{open:J.value,"onUpdate:open":n[16]||(n[16]=t=>J.value=t),title:e.$t("crosschain.swap_modal.title"),"confirm-loading":ee.value,width:540,"ok-text":e.$t("crosschain.swap_modal.ok"),"cancel-text":e.$t("crosschain.swap_modal.cancel"),onOk:je,onCancel:be},{default:o(()=>[s(X,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:o(()=>[s(b,{label:e.$t("crosschain.swap_modal.fromChain"),required:""},{default:o(()=>[s(j,{value:d.fromChain,"onUpdate:value":n[9]||(n[9]=t=>d.fromChain=t),placeholder:e.$t("crosschain.swap_modal.fromChainPlaceholder")},{default:o(()=>[(u(!0),m($,null,U(S.value,t=>(u(),x(T,{key:t.id,value:t.id},{default:o(()=>[h(i(t.name),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value","placeholder"])]),_:1},8,["label"]),s(b,{label:e.$t("crosschain.swap_modal.toChain"),required:""},{default:o(()=>[s(j,{value:d.toChain,"onUpdate:value":n[10]||(n[10]=t=>d.toChain=t),placeholder:e.$t("crosschain.swap_modal.toChainPlaceholder")},{default:o(()=>[(u(!0),m($,null,U(S.value,t=>(u(),x(T,{key:t.id,value:t.id,disabled:t.id===d.fromChain},{default:o(()=>[h(i(t.name),1)]),_:2},1032,["value","disabled"]))),128))]),_:1},8,["value","placeholder"])]),_:1},8,["label"]),s(b,{label:e.$t("crosschain.swap_modal.amount"),required:""},{default:o(()=>[s(W,{value:d.amount,"onUpdate:value":n[11]||(n[11]=t=>d.amount=t),min:0,precision:6,style:{width:"100%"}},null,8,["value"])]),_:1},8,["label"]),s(b,{label:e.$t("crosschain.swap_modal.fromAsset")},{default:o(()=>[s(O,{value:d.fromAsset,"onUpdate:value":n[12]||(n[12]=t=>d.fromAsset=t),placeholder:e.$t("crosschain.swap_modal.assetPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),s(b,{label:e.$t("crosschain.swap_modal.toAsset")},{default:o(()=>[s(O,{value:d.toAsset,"onUpdate:value":n[13]||(n[13]=t=>d.toAsset=t),placeholder:e.$t("crosschain.swap_modal.assetPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),s(b,{label:e.$t("crosschain.swap_modal.counterparty")},{default:o(()=>[s(O,{value:d.counterparty,"onUpdate:value":n[14]||(n[14]=t=>d.counterparty=t),placeholder:e.$t("crosschain.swap_modal.counterpartyPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),s(b,{label:e.$t("crosschain.swap_modal.timeoutMs")},{default:o(()=>[s(W,{value:d.timeoutMs,"onUpdate:value":n[15]||(n[15]=t=>d.timeoutMs=t),min:0,placeholder:e.$t("crosschain.swap_modal.timeoutPlaceholder"),style:{width:"100%"}},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),s(G,{open:K.value,"onUpdate:open":n[21]||(n[21]=t=>K.value=t),title:e.$t("crosschain.message_modal.title"),"confirm-loading":te.value,width:520,"ok-text":e.$t("crosschain.message_modal.ok"),"cancel-text":e.$t("crosschain.message_modal.cancel"),onOk:Me,onCancel:ve},{default:o(()=>[s(X,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:o(()=>[s(b,{label:e.$t("crosschain.message_modal.fromChain"),required:""},{default:o(()=>[s(j,{value:y.fromChain,"onUpdate:value":n[17]||(n[17]=t=>y.fromChain=t),placeholder:e.$t("crosschain.message_modal.fromChainPlaceholder")},{default:o(()=>[(u(!0),m($,null,U(S.value,t=>(u(),x(T,{key:t.id,value:t.id},{default:o(()=>[h(i(t.name),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value","placeholder"])]),_:1},8,["label"]),s(b,{label:e.$t("crosschain.message_modal.toChain"),required:""},{default:o(()=>[s(j,{value:y.toChain,"onUpdate:value":n[18]||(n[18]=t=>y.toChain=t),placeholder:e.$t("crosschain.message_modal.toChainPlaceholder")},{default:o(()=>[(u(!0),m($,null,U(S.value,t=>(u(),x(T,{key:t.id,value:t.id,disabled:t.id===y.fromChain},{default:o(()=>[h(i(t.name),1)]),_:2},1032,["value","disabled"]))),128))]),_:1},8,["value","placeholder"])]),_:1},8,["label"]),s(b,{label:e.$t("crosschain.message_modal.payload")},{default:o(()=>[s(Be,{value:y.payload,"onUpdate:value":n[19]||(n[19]=t=>y.payload=t),"auto-size":{minRows:3,maxRows:8}},null,8,["value"])]),_:1},8,["label"]),s(b,{label:e.$t("crosschain.message_modal.contract")},{default:o(()=>[s(O,{value:y.contract,"onUpdate:value":n[20]||(n[20]=t=>y.contract=t),placeholder:e.$t("crosschain.message_modal.contractPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),s(G,{open:se.value,"onUpdate:open":n[25]||(n[25]=t=>se.value=t),title:e.$t("crosschain.fee_modal.title"),"confirm-loading":ae.value,width:480,"ok-text":e.$t("crosschain.fee_modal.ok"),"cancel-text":e.$t("crosschain.fee_modal.cancel"),onOk:Oe},{default:o(()=>[s(X,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:o(()=>[s(b,{label:e.$t("crosschain.fee_modal.fromChain"),required:""},{default:o(()=>[s(j,{value:w.fromChain,"onUpdate:value":n[22]||(n[22]=t=>w.fromChain=t)},{default:o(()=>[(u(!0),m($,null,U(S.value,t=>(u(),x(T,{key:t.id,value:t.id},{default:o(()=>[h(i(t.name),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),_:1},8,["label"]),s(b,{label:e.$t("crosschain.fee_modal.toChain"),required:""},{default:o(()=>[s(j,{value:w.toChain,"onUpdate:value":n[23]||(n[23]=t=>w.toChain=t)},{default:o(()=>[(u(!0),m($,null,U(S.value,t=>(u(),x(T,{key:t.id,value:t.id,disabled:t.id===w.fromChain},{default:o(()=>[h(i(t.name),1)]),_:2},1032,["value","disabled"]))),128))]),_:1},8,["value"])]),_:1},8,["label"]),s(b,{label:e.$t("crosschain.fee_modal.amount"),required:""},{default:o(()=>[s(W,{value:w.amount,"onUpdate:value":n[24]||(n[24]=t=>w.amount=t),min:0,precision:6,style:{width:"100%"}},null,8,["value"])]),_:1},8,["label"])]),_:1}),z.value?(u(),x(M,{key:0,size:"small",style:{background:"var(--bg-base)","margin-top":"8px"}},{default:o(()=>[s(N,{title:e.$t("crosschain.fee_modal.resultTitle"),value:z.value.fee,precision:4,suffix:z.value.currency,"value-style":{color:"#1677ff"}},null,8,["title","value","suffix"]),f("div",Mt,[f("div",null,i(e.$t("crosschain.fee_modal.sourceFee",{fee:z.value.breakdown.sourceFee,currency:z.value.currency})),1),f("div",null,i(e.$t("crosschain.fee_modal.destFee",{fee:z.value.breakdown.destFee,currency:z.value.currency})),1),f("div",null,i(e.$t("crosschain.fee_modal.bridgeFee",{fee:z.value.breakdown.bridgeFee,currency:z.value.currency})),1)])]),_:1})):_("",!0)]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"])])}}},Ht=Ie(Ot,[["__scopeId","data-v-21e0fb7f"]]);export{Ht as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{_ as se,a as Se,c as D}from"./index-
|
|
1
|
+
import{_ as se,a as Se,c as D}from"./index-Cw4v7ezB.js";import{u as ie}from"./ws-D_5-FRIb.js";import{p as Ce}from"./mtc-parser-pGMSt10g.js";import{x as de,f as ze,d as Ne,R as Ae,al as Oe,z as Ie,K as Me,k as je}from"./icons-DvZE-RKs.js";import{r as u,w as Fe,L as c,Q as h,N as t,c as a,O as g,u as A,Y as Te,P as r,R as w,S as v,Z as Pe,f as Z,K as i,o as Le,M as F}from"./vendor-B6ToihkA.js";import"./community-parser-CO25nZFt.js";function te(s){if(!s)return null;const n=s.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 ee(s,n=0){if(!s||typeof s!="object")return null;const o=s.did||s.id||"";if(!o)return null;const f=s.displayName??s.display_name??s.name??"",x=s.isDefault===!0||s.is_default===1||s.is_default===!0||s.default===!0,_=s.publicKey??s.public_key??"",d=s.createdAt??s.created_at??s.created??"",y=(o.split(":")[1]||"chainless").trim();return{key:o,did:o,displayName:f||"",publicKey:_||"",isDefault:!!x,createdAt:d||"",method:y,raw:s.document?s:null,_idx:n}}function Ke(s){const n=te(s);return Array.isArray(n)?n.map(ee).filter(Boolean):n&&Array.isArray(n.identities)?n.identities.map(ee).filter(Boolean):Je(s||"")}function Je(s){const n=(s||"").split(`
|
|
2
2
|
`),o=[];let f=null;for(const x of n){const _=x.trim();if(!_||_.startsWith("─")||_.startsWith("="))continue;const d=_.match(/(did:[a-z0-9]+:[A-Za-z0-9_-]+)/);if(d&&/^did:/.test(_)){f&&o.push(f);const y=d[1],O=_.match(/\(([^)]+)\)/),T=/\[default\]|默认|\*/.test(_);f={key:y,did:y,displayName:O?O[1]:"",publicKey:"",isDefault:T,createdAt:"",method:(y.split(":")[1]||"chainless").trim(),raw:null,_idx:o.length};continue}if(f){const y=_.match(/created\s*[::]\s*(.+)$/i);y&&(f.createdAt=y[1].trim())}}return f&&o.push(f),o}function Ue(s){const n=te(s);if(!n||typeof n!="object"||Array.isArray(n))return null;const o=ee(n);return o?(o.document=n.document||null,o):null}function Ve(s){const n=te(s);if(n&&typeof n=="object"&&n.signature)return{did:n.did||"",message:n.message||"",signature:String(n.signature)};const f=(s||"").match(/Signature[::]\s*([a-f0-9]+)/i);return f?{did:"",message:"",signature:f[1]}:null}const Be={style:{"margin-left":"8px"}},He={class:"mono"},Re={class:"mono"},Ee={class:"mono"},We={class:"raw-pre"},Ze={__name:"MtcVerifyDrawer",props:{open:{type:Boolean,default:!1},title:{type:String,default:"MTC 包含证明"},defaultEnvelopePath:{type:String,default:""},defaultLandmarkPath:{type:String,default:""},hint:{type:String,default:""}},emits:["update:open"],setup(s){const n=s,o=ie(),f=u(n.defaultEnvelopePath),x=u(n.defaultLandmarkPath),_=u(!1),d=u(null),y=u(""),O=Z(()=>n.hint||"通过 cc serve 运行 cc mtc verify(多算法 dispatcher 同时支持 Ed25519 和 SLH-DSA-128F)。文件路径应指向本机磁盘上的 envelope 和 landmark JSON — 浏览器只把路径转给 cc serve,不上传文件内容。");Fe(()=>n.open,b=>{b&&(f.value=n.defaultEnvelopePath||f.value,x.value=n.defaultLandmarkPath||x.value,d.value=null,y.value="")});async function T(){_.value=!0,d.value=null,y.value="";try{const b=f.value.trim().replace(/"/g,'\\"'),k=x.value.trim().replace(/"/g,'\\"'),{output:I}=await o.execute(`mtc verify "${b}" --landmark "${k}" --json`,12e3),z=Ce(I);if(!z.raw){y.value="验证命令未返回 JSON。请检查路径是否正确。";return}d.value=z}catch(b){y.value=`验证失败: ${b?.message||b}`}finally{_.value=!1}}return(b,k)=>{const I=i("a-alert"),z=i("a-input"),M=i("a-form-item"),$=i("a-button"),P=i("a-form"),U=i("a-divider"),N=i("a-tag"),C=i("a-descriptions-item"),q=i("a-descriptions"),V=i("a-collapse-panel"),Q=i("a-collapse"),L=i("a-card"),Y=i("a-drawer");return c(),h(Y,{open:s.open,title:s.title,width:560,placement:"right","onUpdate:open":k[2]||(k[2]=K=>b.$emit("update:open",K))},{default:t(()=>[a(I,{type:"info","show-icon":"",message:O.value,style:{"margin-bottom":"16px"}},null,8,["message"]),a(P,{layout:"vertical"},{default:t(()=>[a(M,{label:"Envelope 文件路径"},{default:t(()=>[a(z,{value:f.value,"onUpdate:value":k[0]||(k[0]=K=>f.value=K),placeholder:"e.g. ./mtc-out/envelope-000000.json","allow-clear":""},null,8,["value"])]),_:1}),a(M,{label:"Landmark 文件路径"},{default:t(()=>[a(z,{value:x.value,"onUpdate:value":k[1]||(k[1]=K=>x.value=K),placeholder:"e.g. ./mtc-out/landmark.json","allow-clear":""},null,8,["value"])]),_:1}),a(M,null,{default:t(()=>[a($,{type:"primary",loading:_.value,disabled:!f.value||!x.value,onClick:T},{icon:t(()=>[a(A(de))]),default:t(()=>[k[3]||(k[3]=g(" 运行 cc mtc verify ",-1))]),_:1},8,["loading","disabled"])]),_:1})]),_:1}),a(U),d.value?(c(),h(L,{key:0,class:Te(["result-card",d.value.ok?"pass":"fail"]),size:"small"},{title:t(()=>[(c(),h(Pe(d.value.ok?A(ze):A(Ne)))),w("span",Be,r(d.value.ok?"验证通过":"验证失败"),1)]),default:t(()=>[a(q,{column:1,size:"small",bordered:""},{default:t(()=>[a(C,{label:"结果"},{default:t(()=>[a(N,{color:d.value.ok?"green":"red"},{default:t(()=>[g(r(d.value.ok?"PASS":"FAIL"),1)]),_:1},8,["color"])]),_:1}),!d.value.ok&&d.value.code?(c(),h(C,{key:0,label:"错误码"},{default:t(()=>[w("span",He,r(d.value.code),1),d.value.recoverable?(c(),h(N,{key:0,color:"orange",style:{"margin-left":"8px"}},{default:t(()=>[...k[4]||(k[4]=[g("可恢复",-1)])]),_:1})):v("",!0)]),_:1})):v("",!0),d.value.leaf?.subject?(c(),h(C,{key:1,label:"Subject"},{default:t(()=>[w("span",Re,r(d.value.leaf.subject),1)]),_:1})):v("",!0),d.value.leaf?.kind?(c(),h(C,{key:2,label:"Kind"},{default:t(()=>[a(N,null,{default:t(()=>[g(r(d.value.leaf.kind),1)]),_:1})]),_:1})):v("",!0),d.value.treeHead?.tree_size?(c(),h(C,{key:3,label:"Tree size"},{default:t(()=>[g(r(d.value.treeHead.tree_size),1)]),_:1})):v("",!0),d.value.treeHead?.issuer?(c(),h(C,{key:4,label:"Issuer"},{default:t(()=>[w("span",Ee,r(d.value.treeHead.issuer),1)]),_:1})):v("",!0)]),_:1}),d.value.raw?(c(),h(Q,{key:0,ghost:"",style:{"margin-top":"12px"}},{default:t(()=>[a(V,{key:"raw",header:"原始 JSON 输出"},{default:t(()=>[w("pre",We,r(JSON.stringify(d.value.raw,null,2)),1)]),_:1})]),_:1})):v("",!0)]),_:1},8,["class"])):v("",!0),y.value?(c(),h(I,{key:1,type:"error",message:y.value,style:{"margin-top":"12px"}},null,8,["message"])):v("",!0)]),_:1},8,["open","title"])}}},qe=se(Ze,[["__scopeId","data-v-ee4997fa"]]),Qe={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},Ye={class:"page-title"},Ge={class:"page-sub"},Xe={key:1,style:{"text-align":"center",padding:"60px"}},et={key:0,style:{color:"#e0e0e0","font-family":"monospace","font-size":"12px"}},tt={key:1,style:{color:"var(--text-primary)"}},at={key:3,style:{color:"var(--text-secondary)","font-size":"12px"}},lt={key:0,style:{"margin-top":"12px"}},ot={style:{"font-family":"monospace",color:"#ccc","word-break":"break-all"}},nt={style:{"font-family":"monospace",color:"#888","font-size":"11px","word-break":"break-all"}},st={style:{"margin-top":"16px",display:"flex",gap:"8px","flex-wrap":"wrap"}},it={key:0,style:{"margin-top":"16px"}},dt={style:{color:"var(--text-secondary)","margin-bottom":"6px"}},rt={style:{"white-space":"pre-wrap","word-break":"break-all",color:"#52c41a","font-size":"11px",background:"var(--bg-base)",padding:"12px","border-radius":"6px",border:"1px solid var(--border-color)","max-height":"320px",overflow:"auto"}},ut={key:0,style:{"margin-top":"12px"}},ct={style:{color:"var(--text-secondary)","margin-bottom":"6px"}},pt={style:{"white-space":"pre-wrap","word-break":"break-all",color:"#52c41a","font-size":"11px",background:"var(--bg-base)",padding:"12px","border-radius":"6px",border:"1px solid var(--border-color)"}},mt={__name:"DID",setup(s){const n=ie(),{t:o}=Se(),f=u(!1),x=u(!1),_=u(!1),d=u(!1),y=u(""),O=u(""),T=u(!1),b=u([]),k=u(!1),I=u(!1),z=u(!1),M=u(""),$=u(null),P=u(""),U=u(""),N=u(""),C=u(null),q=Z(()=>[{title:o("did.cols.did"),key:"did",dataIndex:"did",ellipsis:!0},{title:o("did.cols.name"),key:"displayName",dataIndex:"displayName",width:"160px"},{title:o("did.cols.method"),key:"method",dataIndex:"method",width:"110px"},{title:o("did.cols.createdAt"),key:"createdAt",dataIndex:"createdAt",width:"180px"},{title:o("did.cols.default"),key:"isDefault",width:"90px"},{title:o("did.cols.action"),key:"action",width:"280px"}]),V=Z(()=>{const e=b.value.find(p=>p.isDefault);if(!e)return o("did.stats.unsetDefault");const l=e.did;return l.length>24?l.slice(0,12)+"..."+l.slice(-8):l}),Q=Z(()=>{const e=new Set(b.value.map(l=>l.method).filter(Boolean));return e.size===0?o("did.stats.noMethod"):e.size===1?[...e][0]:[...e].join(", ")});async function L(){x.value=!0;try{const{output:e}=await n.execute("did list --json",15e3);b.value=Ke(e)}catch(e){D.error(o("did.msg.loadFailed")+": "+e.message),b.value=[]}finally{x.value=!1}}async function Y(){_.value=!0;try{const e=M.value.trim(),l=e?`did create --name "${e.replace(/"/g,'\\"')}" --json`:"did create --json",{output:p}=await n.execute(l,2e4);/error|失败/i.test(p)&&!p.includes('"did"')?D.error(o("did.msg.createFailed")+": "+p.slice(0,120)):(D.success(o("did.msg.createSuccess")),k.value=!1,M.value="",await L())}catch(e){D.error(o("did.msg.createFailed")+": "+e.message)}finally{_.value=!1}}async function K(e){y.value=e.did;try{const{output:l,exitCode:p}=await n.execute(`did set-default ${e.did}`,15e3);p!==0||/error|not found|失败/i.test(l)?D.error(o("did.msg.setDefaultFailed")+": "+l.slice(0,120)):(D.success(o("did.msg.setDefaultSuccess")),await L())}catch(l){D.error(o("did.msg.setDefaultFailed")+": "+l.message)}finally{y.value=""}}async function re(e){O.value=e.did;try{const{output:l,exitCode:p}=await n.execute(`did delete ${e.did} --force`,15e3);p!==0||/error|not found|失败/i.test(l)?D.error(o("did.msg.deleteFailed")+": "+l.slice(0,120)):(D.success(o("did.msg.deleteSuccess")),await L())}catch(l){D.error(o("did.msg.deleteFailed")+": "+l.message)}finally{O.value=""}}async function ue(e){if($.value={...e},P.value="",I.value=!0,!e.publicKey)try{const{output:l}=await n.execute(`did show ${e.did} --json`,1e4),p=Ue(l);p&&($.value={...$.value,...p})}catch{}}async function ce(e){T.value=!0;try{const{output:l}=await n.execute(`did resolve ${e.did}`,1e4);try{P.value=JSON.stringify(JSON.parse(l.trim()),null,2)}catch{P.value=l.trim()}}catch(l){D.error(o("did.msg.loadDocFailed")+": "+l.message)}finally{T.value=!1}}function pe(e){U.value=e.did,N.value="",C.value=null,z.value=!0}const G=u(!1),ae=u("MTC 包含证明"),le=u("");function me(e){return e?e.length<=24?e:`${e.slice(0,16)}…${e.slice(-6)}`:""}function fe(e){ae.value=`MTC 包含证明 · ${me(e.did)}`,le.value="验证此 DID 是否在某个 MTC 批次中。请提供该批次的 envelope(其 leaf.subject 应等于此 DID)和 landmark 文件路径。 通常由 cc mtc batch-dids --out <dir> 生成。",G.value=!0}async function ve(){if(!N.value.trim()){D.warning(o("did.msg.signEmpty"));return}d.value=!0,C.value=null;try{const l=`did sign "${N.value.replace(/"/g,'\\"')}" --did ${U.value} --json`,{output:p,exitCode:B}=await n.execute(l,15e3),j=Ve(p);j&&j.signature?(C.value=j,D.success(o("did.msg.signSuccess"))):D.error(o("did.msg.signFailed")+": "+(p||`exit ${B}`).slice(0,120))}catch(e){D.error(o("did.msg.signFailed")+": "+e.message)}finally{d.value=!1}}return Le(()=>{L()}),(e,l)=>{const p=i("a-button"),B=i("a-space"),j=i("a-statistic"),H=i("a-card"),R=i("a-col"),ye=i("a-row"),_e=i("a-alert"),ge=i("a-spin"),E=i("a-tag"),be=i("a-tooltip"),ke=i("a-popconfirm"),he=i("a-empty"),$e=i("a-table"),we=i("a-input"),oe=i("a-form-item"),ne=i("a-form"),X=i("a-modal"),J=i("a-descriptions-item"),xe=i("a-descriptions"),De=i("a-textarea");return c(),F("div",null,[w("div",Qe,[w("div",null,[w("h2",Ye,r(e.$t("did.title")),1),w("p",Ge,r(e.$t("did.subtitle")),1)]),a(B,null,{default:t(()=>[a(p,{loading:x.value,onClick:L},{icon:t(()=>[a(A(Ae))]),default:t(()=>[g(" "+r(e.$t("did.refresh")),1)]),_:1},8,["loading"]),a(p,{type:"primary",onClick:l[0]||(l[0]=m=>k.value=!0)},{icon:t(()=>[a(A(Oe))]),default:t(()=>[g(" "+r(e.$t("did.create")),1)]),_:1})]),_:1})]),a(ye,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:t(()=>[a(R,{xs:24,sm:12,lg:6},{default:t(()=>[a(H,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[a(j,{title:e.$t("did.stats.count"),value:b.value.length,"value-style":{color:"#1677ff",fontSize:"20px"}},{prefix:t(()=>[a(A(Ie))]),_:1},8,["title","value"])]),_:1})]),_:1}),a(R,{xs:24,sm:12,lg:6},{default:t(()=>[a(H,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[a(j,{title:e.$t("did.stats.default"),value:V.value,"value-style":{color:V.value!==e.$t("did.stats.unsetDefault")?"#52c41a":"#888",fontSize:"13px",fontFamily:"monospace"}},null,8,["title","value","value-style"])]),_:1})]),_:1}),a(R,{xs:24,sm:12,lg:6},{default:t(()=>[a(H,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[a(j,{title:e.$t("did.stats.method"),value:Q.value,"value-style":{color:"#722ed1",fontSize:"14px"}},null,8,["title","value"])]),_:1})]),_:1}),a(R,{xs:24,sm:12,lg:6},{default:t(()=>[a(H,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[a(j,{title:e.$t("did.stats.signable"),value:b.value.length>0?e.$t("did.stats.yes"):e.$t("did.stats.no"),"value-style":{color:b.value.length>0?"#52c41a":"#ff4d4f",fontSize:"20px"}},{prefix:t(()=>[a(A(Me))]),_:1},8,["title","value","value-style"])]),_:1})]),_:1})]),_:1}),f.value?v("",!0):(c(),h(_e,{key:0,message:e.$t("did.webOnly.message"),description:e.$t("did.webOnly.description"),type:"info","show-icon":"",closable:"",style:{"margin-bottom":"16px"}},null,8,["message","description"])),x.value?(c(),F("div",Xe,[a(ge,{size:"large"})])):(c(),h($e,{key:2,columns:q.value,"data-source":b.value,pagination:{pageSize:20,showTotal:m=>e.$t("did.table.totalSuffix",{n:m})},size:"small",style:{background:"var(--bg-card)"},"row-class-name":()=>"did-row"},{bodyCell:t(({column:m,record:S})=>[m.key==="did"?(c(),F("span",et,r(S.did),1)):v("",!0),m.key==="displayName"?(c(),F("span",tt,r(S.displayName||"-"),1)):v("",!0),m.key==="method"?(c(),h(E,{key:2,color:"blue"},{default:t(()=>[g(r(S.method),1)]),_:2},1024)):v("",!0),m.key==="createdAt"?(c(),F("span",at,r(S.createdAt||"-"),1)):v("",!0),m.key==="isDefault"?(c(),h(E,{key:4,color:S.isDefault?"green":"default"},{default:t(()=>[g(r(S.isDefault?e.$t("did.table.defaultTag"):"-"),1)]),_:2},1032,["color"])):v("",!0),m.key==="action"?(c(),h(B,{key:5,size:"small"},{default:t(()=>[a(p,{size:"small",type:"link",onClick:W=>ue(S)},{default:t(()=>[g(r(e.$t("did.actions.details")),1)]),_:1},8,["onClick"]),a(p,{size:"small",type:"link",onClick:W=>pe(S)},{default:t(()=>[g(r(e.$t("did.actions.sign")),1)]),_:1},8,["onClick"]),a(be,{title:"MTC 包含证明"},{default:t(()=>[a(p,{size:"small",type:"link",onClick:W=>fe(S)},{default:t(()=>[a(A(de))]),_:1},8,["onClick"])]),_:2},1024),S.isDefault?v("",!0):(c(),h(p,{key:0,size:"small",type:"link",loading:y.value===S.did,onClick:W=>K(S)},{default:t(()=>[g(r(e.$t("did.actions.setDefault")),1)]),_:1},8,["loading","onClick"])),a(ke,{title:e.$t("did.deleteConfirm.title"),"ok-text":e.$t("did.deleteConfirm.ok"),"ok-type":"danger","cancel-text":e.$t("did.deleteConfirm.cancel"),onConfirm:W=>re(S)},{default:t(()=>[a(p,{size:"small",type:"link",danger:"",loading:O.value===S.did},{default:t(()=>[g(r(e.$t("did.actions.delete")),1)]),_:1},8,["loading"])]),_:2},1032,["title","ok-text","cancel-text","onConfirm"])]),_:2},1024)):v("",!0)]),emptyText:t(()=>[a(he,{description:e.$t("did.table.empty")},null,8,["description"])]),_:1},8,["columns","data-source","pagination"])),a(X,{open:k.value,"onUpdate:open":l[2]||(l[2]=m=>k.value=m),title:e.$t("did.create_modal.title"),"confirm-loading":_.value,onOk:Y,"ok-text":e.$t("did.create_modal.ok"),"cancel-text":e.$t("did.create_modal.cancel")},{default:t(()=>[a(ne,{"label-col":{span:6},"wrapper-col":{span:18},style:{"margin-top":"16px"}},{default:t(()=>[a(oe,{label:e.$t("did.create_modal.nameLabel")},{default:t(()=>[a(we,{value:M.value,"onUpdate:value":l[1]||(l[1]=m=>M.value=m),placeholder:e.$t("did.create_modal.namePlaceholder"),"allow-clear":""},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),a(X,{open:I.value,"onUpdate:open":l[4]||(l[4]=m=>I.value=m),title:e.$t("did.details.title",{label:$.value?.displayName||$.value?.did?.slice(0,24)||""}),width:720,footer:null},{default:t(()=>[$.value?(c(),F("div",lt,[a(xe,{column:1,bordered:"",size:"small"},{default:t(()=>[a(J,{label:e.$t("did.details.did")},{default:t(()=>[w("span",ot,r($.value.did),1)]),_:1},8,["label"]),a(J,{label:e.$t("did.details.name")},{default:t(()=>[g(r($.value.displayName||"-"),1)]),_:1},8,["label"]),a(J,{label:e.$t("did.details.method")},{default:t(()=>[a(E,{color:"blue"},{default:t(()=>[g(r($.value.method),1)]),_:1})]),_:1},8,["label"]),a(J,{label:e.$t("did.details.default")},{default:t(()=>[a(E,{color:$.value.isDefault?"green":"default"},{default:t(()=>[g(r($.value.isDefault?e.$t("did.details.yes"):e.$t("did.details.no")),1)]),_:1},8,["color"])]),_:1},8,["label"]),a(J,{label:e.$t("did.details.createdAt")},{default:t(()=>[g(r($.value.createdAt||"-"),1)]),_:1},8,["label"]),a(J,{label:e.$t("did.details.publicKey")},{default:t(()=>[w("span",nt,r($.value.publicKey||e.$t("did.details.publicKeyLoading")),1)]),_:1},8,["label"])]),_:1}),w("div",st,[a(p,{loading:T.value,onClick:l[3]||(l[3]=m=>ce($.value))},{icon:t(()=>[a(A(je))]),default:t(()=>[g(" "+r(e.$t("did.details.viewDoc")),1)]),_:1},8,["loading"])]),P.value?(c(),F("div",it,[w("p",dt,r(e.$t("did.details.docHeader")),1),w("pre",rt,r(P.value),1)])):v("",!0)])):v("",!0)]),_:1},8,["open","title"]),a(X,{open:z.value,"onUpdate:open":l[6]||(l[6]=m=>z.value=m),title:e.$t("did.sign_modal.title",{label:U.value?.slice(0,28)||e.$t("did.sign_modal.defaultIdentityFallback")}),"confirm-loading":d.value,onOk:ve,"ok-text":e.$t("did.sign_modal.ok"),"cancel-text":e.$t("did.sign_modal.cancel")},{default:t(()=>[a(ne,{"label-col":{span:4},"wrapper-col":{span:20},style:{"margin-top":"16px"}},{default:t(()=>[a(oe,{label:e.$t("did.sign_modal.messageLabel"),required:""},{default:t(()=>[a(De,{value:N.value,"onUpdate:value":l[5]||(l[5]=m=>N.value=m),placeholder:e.$t("did.sign_modal.messagePlaceholder"),"auto-size":{minRows:3,maxRows:8}},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1}),C.value?(c(),F("div",ut,[w("p",ct,r(e.$t("did.sign_modal.resultHeader")),1),w("pre",pt,r(C.value.signature),1)])):v("",!0)]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),a(qe,{open:G.value,"onUpdate:open":l[7]||(l[7]=m=>G.value=m),title:ae.value,hint:le.value},null,8,["open","title","hint"])])}}},kt=se(mt,[["__scopeId","data-v-b17b31f4"]]);export{kt as default};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{E as ae,r as O,o as oe,x as le,M as p,R as o,P as a,u as d,c as t,N as s,Q as B,S as K,f as C,K as w,I as re,L as i,O as h,$ as Q,F as E,_ as M}from"./vendor-B6ToihkA.js";import{u as V}from"./ws-D_5-FRIb.js";import{u as ne}from"./chat-BQ-Nk2XY.js";import{_ as de}from"./index-
|
|
1
|
+
import{E as ae,r as O,o as oe,x as le,M as p,R as o,P as a,u as d,c as t,N as s,Q as B,S as K,f as C,K as w,I as re,L as i,O as h,$ as Q,F as E,_ as M}from"./vendor-B6ToihkA.js";import{u as V}from"./ws-D_5-FRIb.js";import{u as ne}from"./chat-BQ-Nk2XY.js";import{_ as de}from"./index-Cw4v7ezB.js";import{R as ie,F as ue,a8 as J,l as X,M as Y,a7 as ce,a9 as ve,k as Z,aa as me,m as pe}from"./icons-DvZE-RKs.js";function he(){return{samples:0,compressedSamples:0,hitRate:0,totalSavedTokens:0,averageSavedTokens:0,totalOriginalTokens:0,totalCompressedTokens:0,netSavingsRate:0,variantDistribution:{},strategyDistribution:[],providerDistribution:[],modelDistribution:[]}}const fe=ae("dashboard",()=>{const H=O(!1),N=O(!1),c=O({wsStatus:"disconnected",activeLlm:null,activeModel:null,skillCount:0,sessionCount:0,providerCount:0,appRunning:!1,setupDone:!1,edition:"",mcpCount:null,noteCount:null}),F=O(""),b=O(he()),v=O({windowPreset:"all",provider:"",model:""});let y=null;function q(r=V()){y||(y=r.onRuntimeEvent(m=>{m.type==="compression:summary"?L(m.payload?.summary||{}):m.type==="session:start"?c.value.sessionCount=(c.value.sessionCount||0)+1:m.type==="session:end"&&(c.value.sessionCount=Math.max(0,(c.value.sessionCount||0)-1))}))}function A(){y&&(y(),y=null)}function L(r){b.value={...b.value,...r||{}}}function U(r){return r==="1h"?3600*1e3:r==="24h"?1440*60*1e3:r==="7d"?10080*60*1e3:null}function R(r){c.value.appRunning=r.includes("Desktop app running"),c.value.setupDone=r.includes("Setup completed");const m=r.match(/Edition:\s+(\S+)/i);m&&(c.value.edition=m[1]);const g=r.match(/LLM:\s+(\S+)\s+\(([^)]+)\)/i);if(g)c.value.activeLlm=g[1],c.value.activeModel=g[2];else{const $=r.match(/LLM:\s+(\S+)/i);$&&(c.value.activeLlm=$[1])}}async function f(){const r=V();q(r),N.value=!0;const m={type:"compression-stats",windowMs:U(v.value.windowPreset)};v.value.provider&&(m.provider=v.value.provider),v.value.model&&(m.model=v.value.model);try{const g=await r.sendRaw(m,1e4);L(g.summary||{})}catch{}finally{N.value=!1}}async function _(){const r=V();q(r),H.value=!0,c.value.wsStatus=r.status,F.value="";try{const[m,g]=await Promise.allSettled([r.execute("status",15e3),r.listSessions()]);if(m.status==="fulfilled"){const $=m.value.output;F.value=$.split(`
|
|
2
2
|
`).slice(0,20).join(`
|
|
3
|
-
`),R($)}g.status==="fulfilled"&&(c.value.sessionCount=g.value.length),Promise.allSettled([r.execute("skill sources",15e3),r.execute("llm providers",15e3)]).then(([$,D])=>{if($.status==="fulfilled"){const z=$.value.output.match(/(\d+)\s*(?:skills|技能)/i);z&&(c.value.skillCount=parseInt(z[1],10))}if(D.status==="fulfilled"){const I=D.value.output.match(/active[:\s]+(\S+)/i);I&&!c.value.activeLlm&&(c.value.activeLlm=I[1])}}),r.execute("mcp servers",1e4).then(({output:$})=>{const D=($.match(/^[a-z]/gm)||[]).length;c.value.mcpCount=D}).catch(()=>{c.value.mcpCount=0}),await f()}catch{}finally{H.value=!1}}return{loading:H,compressionLoading:N,stats:c,statusLog:F,compression:b,telemetryFilters:v,ensureRuntimeSubscription:q,stopRuntimeSubscription:A,refresh:_,refreshCompression:f,applyCompressionSummary:L,toWindowMs:U}}),be={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"20px"}},ye={class:"page-title"},_e={class:"page-sub"},ge={style:{display:"flex","align-items":"center",gap:"12px","flex-wrap":"wrap"}},$e={style:{color:"#91caff","font-weight":"600"}},ke={style:{color:"#4a6fa5","font-size":"11px","font-family":"monospace"}},we={class:"stat-header"},Ce={class:"stat-label"},Se={class:"stat-sub"},Re={class:"stat-header"},De={class:"stat-label"},ze={class:"stat-value",style:{color:"#91caff","font-size":"15px",overflow:"hidden","text-overflow":"ellipsis","white-space":"nowrap"}},Pe={class:"stat-sub",style:{overflow:"hidden","text-overflow":"ellipsis","white-space":"nowrap"}},je={class:"stat-header"},Le={class:"stat-label"},Te={class:"stat-value",style:{color:"#1677ff"}},Oe={class:"stat-sub"},Ee={class:"stat-header"},Me={class:"stat-label"},Ne={class:"stat-value",style:{color:"#c084fc"}},Fe={class:"stat-sub"},qe={class:"stat-header"},Ae={class:"stat-label"},Be={class:"stat-sub"},He={class:"stat-header"},Ue={class:"stat-label"},Ie={class:"stat-value",style:{color:"#13c2c2"}},Ve={class:"stat-sub"},Ge={class:"stat-header"},We={class:"stat-label"},Ke={class:"stat-value",style:{color:"#faad14"}},Qe={class:"stat-sub"},Je={class:"status-log"},Xe={class:"telemetry-filter"},Ye={class:"telemetry-filter-label"},Ze={class:"telemetry-filter"},xe={class:"telemetry-filter-label"},et={class:"telemetry-filter"},tt={class:"telemetry-filter-label"},st={class:"telemetry-card"},at={class:"telemetry-label"},ot={class:"telemetry-value"},lt={class:"telemetry-sub"},rt={class:"telemetry-card"},nt={class:"telemetry-label"},dt={class:"telemetry-value"},it={class:"telemetry-sub"},ut={class:"telemetry-card"},ct={class:"telemetry-label"},vt={class:"telemetry-value"},mt={class:"telemetry-sub"},pt={class:"telemetry-section"},ht={class:"telemetry-section-title"},ft={key:0,class:"telemetry-empty"},bt={key:1,class:"telemetry-list"},yt={class:"telemetry-section"},_t={class:"telemetry-section-title"},gt={key:0,class:"telemetry-empty"},$t={key:1,class:"telemetry-list"},kt={class:"telemetry-section"},wt={class:"telemetry-section-title"},Ct={key:0,class:"telemetry-empty"},St={key:1,class:"telemetry-list"},Rt={class:"telemetry-section"},Dt={class:"telemetry-section-title"},zt={key:0,class:"telemetry-empty"},Pt={key:1,class:"telemetry-list"},jt={style:{color:"#91caff"}},Lt={style:{color:"var(--text-muted)","font-family":"monospace","font-size":"11px"}},Tt={style:{color:"var(--text-secondary)","font-family":"monospace","font-size":"12px"}},Ot={style:{color:"var(--text-muted)"}},Et={__name:"Dashboard",setup(H){const N=re(),c=V(),F=ne(),b=fe(),v=window.__CC_CONFIG__||{},y=C(()=>v.mode==="project"),q="v5.0.3.4",A=C(()=>c.status),L=C(()=>b.loading),U=C(()=>b.statusLog),R=C(()=>b.telemetryFilters),f=C(()=>b.compression),_=C(()=>b.stats),r=C(()=>Object.entries(f.value.variantDistribution||{})),m=C(()=>f.value.providerDistribution||[]),g=C(()=>f.value.modelDistribution||[]);async function $(){await b.refresh()}async function D(){await b.refreshCompression()}function z(e){return`${((e||0)*100).toFixed(1)}%`}async function I(){await F.createSession("agent"),N.push("/chat")}return oe(()=>{b.ensureRuntimeSubscription(c),setTimeout($,300)}),le(()=>{b.stopRuntimeSubscription()}),(e,n)=>{const P=w("a-button"),G=w("a-tag"),k=w("a-card"),x=w("a-badge"),u=w("a-col"),S=w("a-row"),ee=w("a-space"),j=w("a-select-option"),W=w("a-select"),T=w("a-descriptions-item"),te=w("a-descriptions");return i(),p("div",null,[o("div",be,[o("div",null,[o("h2",ye,a(e.$t("dashboard.title")),1),o("p",_e,a(y.value?e.$t("dashboard.subProject",{name:d(v).projectName||e.$t("dashboard.unnamedProject")}):e.$t("dashboard.subGlobal")),1)]),t(P,{type:"primary",ghost:"",loading:L.value,onClick:$},{icon:s(()=>[t(d(ie))]),default:s(()=>[h(" "+a(e.$t("dashboard.refresh")),1)]),_:1},8,["loading"])]),y.value?(i(),B(k,{key:0,style:{background:"rgba(22,119,255,.08)","border-color":"rgba(22,119,255,.25)","margin-bottom":"16px"},size:"small"},{default:s(()=>[o("div",ge,[t(d(ue),{style:{color:"#1677ff","font-size":"18px"}}),o("div",null,[o("div",$e,a(d(v).projectName||e.$t("dashboard.projectBanner.fallbackName")),1),o("div",ke,a(d(v).projectRoot),1)]),t(G,{color:"blue",style:{"margin-left":"auto"}},{default:s(()=>[h(a(e.$t("dashboard.projectBanner.tag")),1)]),_:1})])]),_:1})):K("",!0),t(S,{gutter:[12,12],style:{"margin-bottom":"16px"}},{default:s(()=>[t(u,{xs:24,sm:12,lg:6},{default:s(()=>[t(k,{class:"stat-card gateway-card",size:"small"},{default:s(()=>[o("div",we,[o("span",Ce,a(e.$t("dashboard.stats.wsGateway")),1),t(x,{status:A.value==="connected"?"success":"error"},null,8,["status"])]),o("div",{class:"stat-value",style:Q({color:A.value==="connected"?"#52c41a":"#888"})},a(A.value==="connected"?e.$t("dashboard.stats.wsRunning"):e.$t("dashboard.stats.wsDisconnected")),5),o("div",Se,a(e.$t("dashboard.stats.wsPortLine",{port:d(v).wsPort||18800,host:d(v).wsHost||"127.0.0.1"})),1)]),_:1})]),_:1}),t(u,{xs:24,sm:12,lg:6},{default:s(()=>[t(k,{class:"stat-card",size:"small"},{default:s(()=>[o("div",Re,[o("span",De,a(e.$t("dashboard.stats.currentLlm")),1),t(d(J),{style:{color:"#1677ff"}})]),o("div",ze,a(_.value.activeLlm||e.$t("dashboard.stats.llmUnconfigured")),1),o("div",Pe,a(_.value.activeModel||"—"),1)]),_:1})]),_:1}),t(u,{xs:24,sm:12,lg:6},{default:s(()=>[t(k,{class:"stat-card",size:"small",style:{cursor:"pointer"},onClick:n[0]||(n[0]=l=>e.$router.push("/skills"))},{default:s(()=>[o("div",je,[o("span",Le,a(e.$t("dashboard.stats.skills")),1),t(d(X),{style:{color:"#1677ff"}})]),o("div",Te,a(_.value.skillCount||"—"),1),o("div",Oe,a(e.$t("dashboard.stats.skillsHint")),1)]),_:1})]),_:1}),t(u,{xs:24,sm:12,lg:6},{default:s(()=>[t(k,{class:"stat-card",size:"small",style:{cursor:"pointer"},onClick:n[1]||(n[1]=l=>e.$router.push("/chat"))},{default:s(()=>[o("div",Ee,[o("span",Me,a(e.$t("dashboard.stats.sessions")),1),t(d(Y),{style:{color:"#722ed1"}})]),o("div",Ne,a(_.value.sessionCount),1),o("div",Fe,a(e.$t("dashboard.stats.sessionsHint")),1)]),_:1})]),_:1})]),_:1}),t(S,{gutter:[12,12],style:{"margin-bottom":"16px"}},{default:s(()=>[t(u,{xs:24,sm:8},{default:s(()=>[t(k,{class:"stat-card",size:"small"},{default:s(()=>[o("div",qe,[o("span",Ae,a(e.$t("dashboard.stats.appStatus")),1),t(d(ce),{style:Q({color:_.value.appRunning?"#52c41a":"#888"})},null,8,["style"])]),o("div",{class:"stat-value",style:Q({color:_.value.appRunning?"#52c41a":"#888",fontSize:"15px"})},a(_.value.appRunning?e.$t("dashboard.stats.appRunning"):_.value.setupDone?e.$t("dashboard.stats.appReady"):e.$t("dashboard.stats.appNotStarted")),5),o("div",Be,a(e.$t("dashboard.stats.edition",{name:_.value.edition||"Community"})),1)]),_:1})]),_:1}),t(u,{xs:24,sm:8},{default:s(()=>[t(k,{class:"stat-card",size:"small",style:{cursor:"pointer"},onClick:n[2]||(n[2]=l=>e.$router.push("/mcp"))},{default:s(()=>[o("div",He,[o("span",Ue,a(e.$t("dashboard.stats.mcp")),1),t(d(ve),{style:{color:"#13c2c2"}})]),o("div",Ie,a(_.value.mcpCount??"—"),1),o("div",Ve,a(e.$t("dashboard.stats.mcpHint")),1)]),_:1})]),_:1}),t(u,{xs:24,sm:8},{default:s(()=>[t(k,{class:"stat-card",size:"small",style:{cursor:"pointer"},onClick:n[3]||(n[3]=l=>e.$router.push("/notes"))},{default:s(()=>[o("div",Ge,[o("span",We,a(e.$t("dashboard.stats.notes")),1),t(d(Z),{style:{color:"#faad14"}})]),o("div",Ke,a(_.value.noteCount??"—"),1),o("div",Qe,a(e.$t("dashboard.stats.notesHint")),1)]),_:1})]),_:1})]),_:1}),t(S,{gutter:[16,16]},{default:s(()=>[t(u,{xs:24,lg:10},{default:s(()=>[t(k,{title:e.$t("dashboard.quick.title"),style:{background:"var(--bg-card)","border-color":"var(--border-color)",height:"100%"}},{default:s(()=>[t(ee,{direction:"vertical",style:{width:"100%"},size:"middle"},{default:s(()=>[t(P,{type:"primary",block:"",onClick:n[4]||(n[4]=l=>e.$router.push("/chat"))},{icon:s(()=>[t(d(Y))]),default:s(()=>[h(" "+a(y.value?e.$t("dashboard.quick.enterProjectChat"):e.$t("dashboard.quick.newAiChat")),1)]),_:1}),t(P,{block:"",onClick:I,style:{background:"rgba(114,46,209,.12)","border-color":"#722ed1",color:"#722ed1"}},{icon:s(()=>[t(d(J))]),default:s(()=>[h(" "+a(e.$t("dashboard.quick.startAgent")),1)]),_:1}),t(S,{gutter:8},{default:s(()=>[t(u,{span:12},{default:s(()=>[t(P,{block:"",onClick:n[5]||(n[5]=l=>e.$router.push("/services")),style:{background:"var(--bg-card-hover)","border-color":"var(--border-color)"}},{icon:s(()=>[t(d(me))]),default:s(()=>[h(" "+a(e.$t("dashboard.quick.services")),1)]),_:1})]),_:1}),t(u,{span:12},{default:s(()=>[t(P,{block:"",onClick:n[6]||(n[6]=l=>e.$router.push("/logs")),style:{background:"var(--bg-card-hover)","border-color":"var(--border-color)"}},{icon:s(()=>[t(d(Z))]),default:s(()=>[h(" "+a(e.$t("dashboard.quick.logs")),1)]),_:1})]),_:1})]),_:1}),t(S,{gutter:8},{default:s(()=>[t(u,{span:12},{default:s(()=>[t(P,{block:"",onClick:n[7]||(n[7]=l=>e.$router.push("/skills")),style:{background:"var(--bg-card-hover)","border-color":"var(--border-color)"}},{icon:s(()=>[t(d(X))]),default:s(()=>[h(" "+a(e.$t("dashboard.quick.skills")),1)]),_:1})]),_:1}),t(u,{span:12},{default:s(()=>[t(P,{block:"",onClick:n[8]||(n[8]=l=>e.$router.push("/providers")),style:{background:"var(--bg-card-hover)","border-color":"var(--border-color)"}},{icon:s(()=>[t(d(pe))]),default:s(()=>[h(" "+a(e.$t("dashboard.quick.providers")),1)]),_:1})]),_:1})]),_:1})]),_:1})]),_:1},8,["title"])]),_:1}),t(u,{xs:24,lg:14},{default:s(()=>[t(k,{title:e.$t("dashboard.status.title"),style:{background:"var(--bg-card)","border-color":"var(--border-color)"},loading:L.value},{extra:s(()=>[t(P,{type:"link",size:"small",onClick:n[9]||(n[9]=l=>e.$router.push("/logs"))},{default:s(()=>[h(a(e.$t("dashboard.status.more")),1)]),_:1})]),default:s(()=>[o("pre",Je,a(U.value||e.$t("dashboard.status.placeholder")),1)]),_:1},8,["title","loading"])]),_:1})]),_:1}),t(k,{title:e.$t("dashboard.telemetry.title"),style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-top":"16px"},loading:L.value},{default:s(()=>[t(S,{gutter:[12,12],style:{"margin-bottom":"12px"}},{default:s(()=>[t(u,{xs:24,md:8},{default:s(()=>[o("div",Xe,[o("div",Ye,a(e.$t("dashboard.telemetry.filterWindow")),1),t(W,{value:R.value.windowPreset,"onUpdate:value":n[10]||(n[10]=l=>R.value.windowPreset=l),style:{width:"100%"},onChange:D},{default:s(()=>[t(j,{value:"all"},{default:s(()=>[h(a(e.$t("dashboard.telemetry.windowAll")),1)]),_:1}),t(j,{value:"1h"},{default:s(()=>[h(a(e.$t("dashboard.telemetry.window1h")),1)]),_:1}),t(j,{value:"24h"},{default:s(()=>[h(a(e.$t("dashboard.telemetry.window24h")),1)]),_:1}),t(j,{value:"7d"},{default:s(()=>[h(a(e.$t("dashboard.telemetry.window7d")),1)]),_:1})]),_:1},8,["value"])])]),_:1}),t(u,{xs:24,md:8},{default:s(()=>[o("div",Ze,[o("div",xe,a(e.$t("dashboard.telemetry.filterProvider")),1),t(W,{value:R.value.provider,"onUpdate:value":n[11]||(n[11]=l=>R.value.provider=l),style:{width:"100%"},onChange:D},{default:s(()=>[t(j,{value:""},{default:s(()=>[h(a(e.$t("dashboard.telemetry.providerAll")),1)]),_:1}),(i(!0),p(E,null,M(m.value,l=>(i(),B(j,{key:l.key,value:l.key},{default:s(()=>[h(a(l.key),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])])]),_:1}),t(u,{xs:24,md:8},{default:s(()=>[o("div",et,[o("div",tt,a(e.$t("dashboard.telemetry.filterModel")),1),t(W,{value:R.value.model,"onUpdate:value":n[12]||(n[12]=l=>R.value.model=l),style:{width:"100%"},onChange:D},{default:s(()=>[t(j,{value:""},{default:s(()=>[h(a(e.$t("dashboard.telemetry.modelAll")),1)]),_:1}),(i(!0),p(E,null,M(g.value,l=>(i(),B(j,{key:l.key,value:l.key},{default:s(()=>[h(a(l.key),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])])]),_:1})]),_:1}),t(S,{gutter:[12,12]},{default:s(()=>[t(u,{xs:24,sm:8},{default:s(()=>[o("div",st,[o("div",at,a(e.$t("dashboard.telemetry.hitRate")),1),o("div",ot,a(z(f.value.hitRate)),1),o("div",lt,a(e.$t("dashboard.telemetry.hitRateSub",{compressed:f.value.compressedSamples,total:f.value.samples})),1)])]),_:1}),t(u,{xs:24,sm:8},{default:s(()=>[o("div",rt,[o("div",nt,a(e.$t("dashboard.telemetry.savedTokens")),1),o("div",dt,a(f.value.totalSavedTokens),1),o("div",it,a(e.$t("dashboard.telemetry.savedTokensSub",{avg:f.value.averageSavedTokens})),1)])]),_:1}),t(u,{xs:24,sm:8},{default:s(()=>[o("div",ut,[o("div",ct,a(e.$t("dashboard.telemetry.netSavingsRate")),1),o("div",vt,a(z(f.value.netSavingsRate)),1),o("div",mt,a(e.$t("dashboard.telemetry.netSavingsRateSub",{original:f.value.totalOriginalTokens,compressed:f.value.totalCompressedTokens})),1)])]),_:1})]),_:1}),t(S,{gutter:[16,16],style:{"margin-top":"12px"}},{default:s(()=>[t(u,{xs:24,lg:12},{default:s(()=>[o("div",pt,[o("div",ht,a(e.$t("dashboard.telemetry.strategyDistribution")),1),f.value.strategyDistribution.length===0?(i(),p("div",ft,a(e.$t("dashboard.telemetry.strategyEmpty")),1)):(i(),p("div",bt,[(i(!0),p(E,null,M(f.value.strategyDistribution.slice(0,6),l=>(i(),p("div",{key:l.strategy,class:"telemetry-row"},[o("span",null,a(l.strategy),1),o("span",null,a(e.$t("dashboard.telemetry.strategyRow",{hits:l.hits,rate:z(l.hitRate)})),1)]))),128))]))])]),_:1}),t(u,{xs:24,lg:12},{default:s(()=>[o("div",yt,[o("div",_t,a(e.$t("dashboard.telemetry.variantDistribution")),1),r.value.length===0?(i(),p("div",gt,a(e.$t("dashboard.telemetry.variantEmpty")),1)):(i(),p("div",$t,[(i(!0),p(E,null,M(r.value,([l,se])=>(i(),p("div",{key:l,class:"telemetry-row"},[o("span",null,a(l),1),o("span",null,a(e.$t("dashboard.telemetry.variantRow",{count:se})),1)]))),128))]))])]),_:1})]),_:1}),t(S,{gutter:[16,16],style:{"margin-top":"12px"}},{default:s(()=>[t(u,{xs:24,lg:12},{default:s(()=>[o("div",kt,[o("div",wt,a(e.$t("dashboard.telemetry.providerSlice")),1),m.value.length===0?(i(),p("div",Ct,a(e.$t("dashboard.telemetry.providerEmpty")),1)):(i(),p("div",St,[(i(!0),p(E,null,M(m.value.slice(0,6),l=>(i(),p("div",{key:l.key,class:"telemetry-row"},[o("span",null,a(l.key),1),o("span",null,a(e.$t("dashboard.telemetry.providerRow",{samples:l.samples,rate:z(l.hitRate)})),1)]))),128))]))])]),_:1}),t(u,{xs:24,lg:12},{default:s(()=>[o("div",Rt,[o("div",Dt,a(e.$t("dashboard.telemetry.modelSlice")),1),g.value.length===0?(i(),p("div",zt,a(e.$t("dashboard.telemetry.modelEmpty")),1)):(i(),p("div",Pt,[(i(!0),p(E,null,M(g.value.slice(0,6),l=>(i(),p("div",{key:l.key,class:"telemetry-row"},[o("span",null,a(l.key),1),o("span",null,a(e.$t("dashboard.telemetry.modelRow",{samples:l.samples,saved:l.savedTokens})),1)]))),128))]))])]),_:1})]),_:1})]),_:1},8,["title","loading"]),t(k,{title:e.$t("dashboard.info.title"),style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-top":"16px"}},{default:s(()=>[t(te,{column:{xs:1,sm:2,lg:3},size:"small"},{default:s(()=>[t(T,{label:e.$t("dashboard.info.panelMode")},{default:s(()=>[t(G,{color:y.value?"blue":"purple"},{default:s(()=>[h(a(y.value?e.$t("dashboard.info.modeProject"):e.$t("dashboard.info.modeGlobal")),1)]),_:1},8,["color"])]),_:1},8,["label"]),y.value?(i(),B(T,{key:0,label:e.$t("dashboard.info.projectName")},{default:s(()=>[o("span",jt,a(d(v).projectName||"—"),1)]),_:1},8,["label"])):K("",!0),y.value?(i(),B(T,{key:1,label:e.$t("dashboard.info.projectPath")},{default:s(()=>[o("span",Lt,a(d(v).projectRoot),1)]),_:1},8,["label"])):K("",!0),t(T,{label:e.$t("dashboard.info.websocket")},{default:s(()=>[o("span",Tt," ws://"+a(d(v).wsHost||"127.0.0.1")+":"+a(d(v).wsPort||18800),1)]),_:1},8,["label"]),t(T,{label:e.$t("dashboard.info.auth")},{default:s(()=>[t(G,{color:d(v).wsToken?"green":"default",style:{"font-size":"11px"}},{default:s(()=>[h(a(d(v).wsToken?e.$t("dashboard.info.authEnabled"):e.$t("dashboard.info.authDisabled")),1)]),_:1},8,["color"])]),_:1},8,["label"]),t(T,{label:e.$t("dashboard.info.version")},{default:s(()=>[o("span",Ot,a(d(q)),1)]),_:1},8,["label"])]),_:1})]),_:1},8,["title"])])}}},Bt=de(Et,[["__scopeId","data-v-bf6b8d82"]]);export{Bt as default};
|
|
3
|
+
`),R($)}g.status==="fulfilled"&&(c.value.sessionCount=g.value.length),Promise.allSettled([r.execute("skill sources",15e3),r.execute("llm providers",15e3)]).then(([$,D])=>{if($.status==="fulfilled"){const z=$.value.output.match(/(\d+)\s*(?:skills|技能)/i);z&&(c.value.skillCount=parseInt(z[1],10))}if(D.status==="fulfilled"){const I=D.value.output.match(/active[:\s]+(\S+)/i);I&&!c.value.activeLlm&&(c.value.activeLlm=I[1])}}),r.execute("mcp servers",1e4).then(({output:$})=>{const D=($.match(/^[a-z]/gm)||[]).length;c.value.mcpCount=D}).catch(()=>{c.value.mcpCount=0}),await f()}catch{}finally{H.value=!1}}return{loading:H,compressionLoading:N,stats:c,statusLog:F,compression:b,telemetryFilters:v,ensureRuntimeSubscription:q,stopRuntimeSubscription:A,refresh:_,refreshCompression:f,applyCompressionSummary:L,toWindowMs:U}}),be={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"20px"}},ye={class:"page-title"},_e={class:"page-sub"},ge={style:{display:"flex","align-items":"center",gap:"12px","flex-wrap":"wrap"}},$e={style:{color:"#91caff","font-weight":"600"}},ke={style:{color:"#4a6fa5","font-size":"11px","font-family":"monospace"}},we={class:"stat-header"},Ce={class:"stat-label"},Se={class:"stat-sub"},Re={class:"stat-header"},De={class:"stat-label"},ze={class:"stat-value",style:{color:"#91caff","font-size":"15px",overflow:"hidden","text-overflow":"ellipsis","white-space":"nowrap"}},Pe={class:"stat-sub",style:{overflow:"hidden","text-overflow":"ellipsis","white-space":"nowrap"}},je={class:"stat-header"},Le={class:"stat-label"},Te={class:"stat-value",style:{color:"#1677ff"}},Oe={class:"stat-sub"},Ee={class:"stat-header"},Me={class:"stat-label"},Ne={class:"stat-value",style:{color:"#c084fc"}},Fe={class:"stat-sub"},qe={class:"stat-header"},Ae={class:"stat-label"},Be={class:"stat-sub"},He={class:"stat-header"},Ue={class:"stat-label"},Ie={class:"stat-value",style:{color:"#13c2c2"}},Ve={class:"stat-sub"},Ge={class:"stat-header"},We={class:"stat-label"},Ke={class:"stat-value",style:{color:"#faad14"}},Qe={class:"stat-sub"},Je={class:"status-log"},Xe={class:"telemetry-filter"},Ye={class:"telemetry-filter-label"},Ze={class:"telemetry-filter"},xe={class:"telemetry-filter-label"},et={class:"telemetry-filter"},tt={class:"telemetry-filter-label"},st={class:"telemetry-card"},at={class:"telemetry-label"},ot={class:"telemetry-value"},lt={class:"telemetry-sub"},rt={class:"telemetry-card"},nt={class:"telemetry-label"},dt={class:"telemetry-value"},it={class:"telemetry-sub"},ut={class:"telemetry-card"},ct={class:"telemetry-label"},vt={class:"telemetry-value"},mt={class:"telemetry-sub"},pt={class:"telemetry-section"},ht={class:"telemetry-section-title"},ft={key:0,class:"telemetry-empty"},bt={key:1,class:"telemetry-list"},yt={class:"telemetry-section"},_t={class:"telemetry-section-title"},gt={key:0,class:"telemetry-empty"},$t={key:1,class:"telemetry-list"},kt={class:"telemetry-section"},wt={class:"telemetry-section-title"},Ct={key:0,class:"telemetry-empty"},St={key:1,class:"telemetry-list"},Rt={class:"telemetry-section"},Dt={class:"telemetry-section-title"},zt={key:0,class:"telemetry-empty"},Pt={key:1,class:"telemetry-list"},jt={style:{color:"#91caff"}},Lt={style:{color:"var(--text-muted)","font-family":"monospace","font-size":"11px"}},Tt={style:{color:"var(--text-secondary)","font-family":"monospace","font-size":"12px"}},Ot={style:{color:"var(--text-muted)"}},Et={__name:"Dashboard",setup(H){const N=re(),c=V(),F=ne(),b=fe(),v=window.__CC_CONFIG__||{},y=C(()=>v.mode==="project"),q="v5.0.3.5",A=C(()=>c.status),L=C(()=>b.loading),U=C(()=>b.statusLog),R=C(()=>b.telemetryFilters),f=C(()=>b.compression),_=C(()=>b.stats),r=C(()=>Object.entries(f.value.variantDistribution||{})),m=C(()=>f.value.providerDistribution||[]),g=C(()=>f.value.modelDistribution||[]);async function $(){await b.refresh()}async function D(){await b.refreshCompression()}function z(e){return`${((e||0)*100).toFixed(1)}%`}async function I(){await F.createSession("agent"),N.push("/chat")}return oe(()=>{b.ensureRuntimeSubscription(c),setTimeout($,300)}),le(()=>{b.stopRuntimeSubscription()}),(e,n)=>{const P=w("a-button"),G=w("a-tag"),k=w("a-card"),x=w("a-badge"),u=w("a-col"),S=w("a-row"),ee=w("a-space"),j=w("a-select-option"),W=w("a-select"),T=w("a-descriptions-item"),te=w("a-descriptions");return i(),p("div",null,[o("div",be,[o("div",null,[o("h2",ye,a(e.$t("dashboard.title")),1),o("p",_e,a(y.value?e.$t("dashboard.subProject",{name:d(v).projectName||e.$t("dashboard.unnamedProject")}):e.$t("dashboard.subGlobal")),1)]),t(P,{type:"primary",ghost:"",loading:L.value,onClick:$},{icon:s(()=>[t(d(ie))]),default:s(()=>[h(" "+a(e.$t("dashboard.refresh")),1)]),_:1},8,["loading"])]),y.value?(i(),B(k,{key:0,style:{background:"rgba(22,119,255,.08)","border-color":"rgba(22,119,255,.25)","margin-bottom":"16px"},size:"small"},{default:s(()=>[o("div",ge,[t(d(ue),{style:{color:"#1677ff","font-size":"18px"}}),o("div",null,[o("div",$e,a(d(v).projectName||e.$t("dashboard.projectBanner.fallbackName")),1),o("div",ke,a(d(v).projectRoot),1)]),t(G,{color:"blue",style:{"margin-left":"auto"}},{default:s(()=>[h(a(e.$t("dashboard.projectBanner.tag")),1)]),_:1})])]),_:1})):K("",!0),t(S,{gutter:[12,12],style:{"margin-bottom":"16px"}},{default:s(()=>[t(u,{xs:24,sm:12,lg:6},{default:s(()=>[t(k,{class:"stat-card gateway-card",size:"small"},{default:s(()=>[o("div",we,[o("span",Ce,a(e.$t("dashboard.stats.wsGateway")),1),t(x,{status:A.value==="connected"?"success":"error"},null,8,["status"])]),o("div",{class:"stat-value",style:Q({color:A.value==="connected"?"#52c41a":"#888"})},a(A.value==="connected"?e.$t("dashboard.stats.wsRunning"):e.$t("dashboard.stats.wsDisconnected")),5),o("div",Se,a(e.$t("dashboard.stats.wsPortLine",{port:d(v).wsPort||18800,host:d(v).wsHost||"127.0.0.1"})),1)]),_:1})]),_:1}),t(u,{xs:24,sm:12,lg:6},{default:s(()=>[t(k,{class:"stat-card",size:"small"},{default:s(()=>[o("div",Re,[o("span",De,a(e.$t("dashboard.stats.currentLlm")),1),t(d(J),{style:{color:"#1677ff"}})]),o("div",ze,a(_.value.activeLlm||e.$t("dashboard.stats.llmUnconfigured")),1),o("div",Pe,a(_.value.activeModel||"—"),1)]),_:1})]),_:1}),t(u,{xs:24,sm:12,lg:6},{default:s(()=>[t(k,{class:"stat-card",size:"small",style:{cursor:"pointer"},onClick:n[0]||(n[0]=l=>e.$router.push("/skills"))},{default:s(()=>[o("div",je,[o("span",Le,a(e.$t("dashboard.stats.skills")),1),t(d(X),{style:{color:"#1677ff"}})]),o("div",Te,a(_.value.skillCount||"—"),1),o("div",Oe,a(e.$t("dashboard.stats.skillsHint")),1)]),_:1})]),_:1}),t(u,{xs:24,sm:12,lg:6},{default:s(()=>[t(k,{class:"stat-card",size:"small",style:{cursor:"pointer"},onClick:n[1]||(n[1]=l=>e.$router.push("/chat"))},{default:s(()=>[o("div",Ee,[o("span",Me,a(e.$t("dashboard.stats.sessions")),1),t(d(Y),{style:{color:"#722ed1"}})]),o("div",Ne,a(_.value.sessionCount),1),o("div",Fe,a(e.$t("dashboard.stats.sessionsHint")),1)]),_:1})]),_:1})]),_:1}),t(S,{gutter:[12,12],style:{"margin-bottom":"16px"}},{default:s(()=>[t(u,{xs:24,sm:8},{default:s(()=>[t(k,{class:"stat-card",size:"small"},{default:s(()=>[o("div",qe,[o("span",Ae,a(e.$t("dashboard.stats.appStatus")),1),t(d(ce),{style:Q({color:_.value.appRunning?"#52c41a":"#888"})},null,8,["style"])]),o("div",{class:"stat-value",style:Q({color:_.value.appRunning?"#52c41a":"#888",fontSize:"15px"})},a(_.value.appRunning?e.$t("dashboard.stats.appRunning"):_.value.setupDone?e.$t("dashboard.stats.appReady"):e.$t("dashboard.stats.appNotStarted")),5),o("div",Be,a(e.$t("dashboard.stats.edition",{name:_.value.edition||"Community"})),1)]),_:1})]),_:1}),t(u,{xs:24,sm:8},{default:s(()=>[t(k,{class:"stat-card",size:"small",style:{cursor:"pointer"},onClick:n[2]||(n[2]=l=>e.$router.push("/mcp"))},{default:s(()=>[o("div",He,[o("span",Ue,a(e.$t("dashboard.stats.mcp")),1),t(d(ve),{style:{color:"#13c2c2"}})]),o("div",Ie,a(_.value.mcpCount??"—"),1),o("div",Ve,a(e.$t("dashboard.stats.mcpHint")),1)]),_:1})]),_:1}),t(u,{xs:24,sm:8},{default:s(()=>[t(k,{class:"stat-card",size:"small",style:{cursor:"pointer"},onClick:n[3]||(n[3]=l=>e.$router.push("/notes"))},{default:s(()=>[o("div",Ge,[o("span",We,a(e.$t("dashboard.stats.notes")),1),t(d(Z),{style:{color:"#faad14"}})]),o("div",Ke,a(_.value.noteCount??"—"),1),o("div",Qe,a(e.$t("dashboard.stats.notesHint")),1)]),_:1})]),_:1})]),_:1}),t(S,{gutter:[16,16]},{default:s(()=>[t(u,{xs:24,lg:10},{default:s(()=>[t(k,{title:e.$t("dashboard.quick.title"),style:{background:"var(--bg-card)","border-color":"var(--border-color)",height:"100%"}},{default:s(()=>[t(ee,{direction:"vertical",style:{width:"100%"},size:"middle"},{default:s(()=>[t(P,{type:"primary",block:"",onClick:n[4]||(n[4]=l=>e.$router.push("/chat"))},{icon:s(()=>[t(d(Y))]),default:s(()=>[h(" "+a(y.value?e.$t("dashboard.quick.enterProjectChat"):e.$t("dashboard.quick.newAiChat")),1)]),_:1}),t(P,{block:"",onClick:I,style:{background:"rgba(114,46,209,.12)","border-color":"#722ed1",color:"#722ed1"}},{icon:s(()=>[t(d(J))]),default:s(()=>[h(" "+a(e.$t("dashboard.quick.startAgent")),1)]),_:1}),t(S,{gutter:8},{default:s(()=>[t(u,{span:12},{default:s(()=>[t(P,{block:"",onClick:n[5]||(n[5]=l=>e.$router.push("/services")),style:{background:"var(--bg-card-hover)","border-color":"var(--border-color)"}},{icon:s(()=>[t(d(me))]),default:s(()=>[h(" "+a(e.$t("dashboard.quick.services")),1)]),_:1})]),_:1}),t(u,{span:12},{default:s(()=>[t(P,{block:"",onClick:n[6]||(n[6]=l=>e.$router.push("/logs")),style:{background:"var(--bg-card-hover)","border-color":"var(--border-color)"}},{icon:s(()=>[t(d(Z))]),default:s(()=>[h(" "+a(e.$t("dashboard.quick.logs")),1)]),_:1})]),_:1})]),_:1}),t(S,{gutter:8},{default:s(()=>[t(u,{span:12},{default:s(()=>[t(P,{block:"",onClick:n[7]||(n[7]=l=>e.$router.push("/skills")),style:{background:"var(--bg-card-hover)","border-color":"var(--border-color)"}},{icon:s(()=>[t(d(X))]),default:s(()=>[h(" "+a(e.$t("dashboard.quick.skills")),1)]),_:1})]),_:1}),t(u,{span:12},{default:s(()=>[t(P,{block:"",onClick:n[8]||(n[8]=l=>e.$router.push("/providers")),style:{background:"var(--bg-card-hover)","border-color":"var(--border-color)"}},{icon:s(()=>[t(d(pe))]),default:s(()=>[h(" "+a(e.$t("dashboard.quick.providers")),1)]),_:1})]),_:1})]),_:1})]),_:1})]),_:1},8,["title"])]),_:1}),t(u,{xs:24,lg:14},{default:s(()=>[t(k,{title:e.$t("dashboard.status.title"),style:{background:"var(--bg-card)","border-color":"var(--border-color)"},loading:L.value},{extra:s(()=>[t(P,{type:"link",size:"small",onClick:n[9]||(n[9]=l=>e.$router.push("/logs"))},{default:s(()=>[h(a(e.$t("dashboard.status.more")),1)]),_:1})]),default:s(()=>[o("pre",Je,a(U.value||e.$t("dashboard.status.placeholder")),1)]),_:1},8,["title","loading"])]),_:1})]),_:1}),t(k,{title:e.$t("dashboard.telemetry.title"),style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-top":"16px"},loading:L.value},{default:s(()=>[t(S,{gutter:[12,12],style:{"margin-bottom":"12px"}},{default:s(()=>[t(u,{xs:24,md:8},{default:s(()=>[o("div",Xe,[o("div",Ye,a(e.$t("dashboard.telemetry.filterWindow")),1),t(W,{value:R.value.windowPreset,"onUpdate:value":n[10]||(n[10]=l=>R.value.windowPreset=l),style:{width:"100%"},onChange:D},{default:s(()=>[t(j,{value:"all"},{default:s(()=>[h(a(e.$t("dashboard.telemetry.windowAll")),1)]),_:1}),t(j,{value:"1h"},{default:s(()=>[h(a(e.$t("dashboard.telemetry.window1h")),1)]),_:1}),t(j,{value:"24h"},{default:s(()=>[h(a(e.$t("dashboard.telemetry.window24h")),1)]),_:1}),t(j,{value:"7d"},{default:s(()=>[h(a(e.$t("dashboard.telemetry.window7d")),1)]),_:1})]),_:1},8,["value"])])]),_:1}),t(u,{xs:24,md:8},{default:s(()=>[o("div",Ze,[o("div",xe,a(e.$t("dashboard.telemetry.filterProvider")),1),t(W,{value:R.value.provider,"onUpdate:value":n[11]||(n[11]=l=>R.value.provider=l),style:{width:"100%"},onChange:D},{default:s(()=>[t(j,{value:""},{default:s(()=>[h(a(e.$t("dashboard.telemetry.providerAll")),1)]),_:1}),(i(!0),p(E,null,M(m.value,l=>(i(),B(j,{key:l.key,value:l.key},{default:s(()=>[h(a(l.key),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])])]),_:1}),t(u,{xs:24,md:8},{default:s(()=>[o("div",et,[o("div",tt,a(e.$t("dashboard.telemetry.filterModel")),1),t(W,{value:R.value.model,"onUpdate:value":n[12]||(n[12]=l=>R.value.model=l),style:{width:"100%"},onChange:D},{default:s(()=>[t(j,{value:""},{default:s(()=>[h(a(e.$t("dashboard.telemetry.modelAll")),1)]),_:1}),(i(!0),p(E,null,M(g.value,l=>(i(),B(j,{key:l.key,value:l.key},{default:s(()=>[h(a(l.key),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])])]),_:1})]),_:1}),t(S,{gutter:[12,12]},{default:s(()=>[t(u,{xs:24,sm:8},{default:s(()=>[o("div",st,[o("div",at,a(e.$t("dashboard.telemetry.hitRate")),1),o("div",ot,a(z(f.value.hitRate)),1),o("div",lt,a(e.$t("dashboard.telemetry.hitRateSub",{compressed:f.value.compressedSamples,total:f.value.samples})),1)])]),_:1}),t(u,{xs:24,sm:8},{default:s(()=>[o("div",rt,[o("div",nt,a(e.$t("dashboard.telemetry.savedTokens")),1),o("div",dt,a(f.value.totalSavedTokens),1),o("div",it,a(e.$t("dashboard.telemetry.savedTokensSub",{avg:f.value.averageSavedTokens})),1)])]),_:1}),t(u,{xs:24,sm:8},{default:s(()=>[o("div",ut,[o("div",ct,a(e.$t("dashboard.telemetry.netSavingsRate")),1),o("div",vt,a(z(f.value.netSavingsRate)),1),o("div",mt,a(e.$t("dashboard.telemetry.netSavingsRateSub",{original:f.value.totalOriginalTokens,compressed:f.value.totalCompressedTokens})),1)])]),_:1})]),_:1}),t(S,{gutter:[16,16],style:{"margin-top":"12px"}},{default:s(()=>[t(u,{xs:24,lg:12},{default:s(()=>[o("div",pt,[o("div",ht,a(e.$t("dashboard.telemetry.strategyDistribution")),1),f.value.strategyDistribution.length===0?(i(),p("div",ft,a(e.$t("dashboard.telemetry.strategyEmpty")),1)):(i(),p("div",bt,[(i(!0),p(E,null,M(f.value.strategyDistribution.slice(0,6),l=>(i(),p("div",{key:l.strategy,class:"telemetry-row"},[o("span",null,a(l.strategy),1),o("span",null,a(e.$t("dashboard.telemetry.strategyRow",{hits:l.hits,rate:z(l.hitRate)})),1)]))),128))]))])]),_:1}),t(u,{xs:24,lg:12},{default:s(()=>[o("div",yt,[o("div",_t,a(e.$t("dashboard.telemetry.variantDistribution")),1),r.value.length===0?(i(),p("div",gt,a(e.$t("dashboard.telemetry.variantEmpty")),1)):(i(),p("div",$t,[(i(!0),p(E,null,M(r.value,([l,se])=>(i(),p("div",{key:l,class:"telemetry-row"},[o("span",null,a(l),1),o("span",null,a(e.$t("dashboard.telemetry.variantRow",{count:se})),1)]))),128))]))])]),_:1})]),_:1}),t(S,{gutter:[16,16],style:{"margin-top":"12px"}},{default:s(()=>[t(u,{xs:24,lg:12},{default:s(()=>[o("div",kt,[o("div",wt,a(e.$t("dashboard.telemetry.providerSlice")),1),m.value.length===0?(i(),p("div",Ct,a(e.$t("dashboard.telemetry.providerEmpty")),1)):(i(),p("div",St,[(i(!0),p(E,null,M(m.value.slice(0,6),l=>(i(),p("div",{key:l.key,class:"telemetry-row"},[o("span",null,a(l.key),1),o("span",null,a(e.$t("dashboard.telemetry.providerRow",{samples:l.samples,rate:z(l.hitRate)})),1)]))),128))]))])]),_:1}),t(u,{xs:24,lg:12},{default:s(()=>[o("div",Rt,[o("div",Dt,a(e.$t("dashboard.telemetry.modelSlice")),1),g.value.length===0?(i(),p("div",zt,a(e.$t("dashboard.telemetry.modelEmpty")),1)):(i(),p("div",Pt,[(i(!0),p(E,null,M(g.value.slice(0,6),l=>(i(),p("div",{key:l.key,class:"telemetry-row"},[o("span",null,a(l.key),1),o("span",null,a(e.$t("dashboard.telemetry.modelRow",{samples:l.samples,saved:l.savedTokens})),1)]))),128))]))])]),_:1})]),_:1})]),_:1},8,["title","loading"]),t(k,{title:e.$t("dashboard.info.title"),style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-top":"16px"}},{default:s(()=>[t(te,{column:{xs:1,sm:2,lg:3},size:"small"},{default:s(()=>[t(T,{label:e.$t("dashboard.info.panelMode")},{default:s(()=>[t(G,{color:y.value?"blue":"purple"},{default:s(()=>[h(a(y.value?e.$t("dashboard.info.modeProject"):e.$t("dashboard.info.modeGlobal")),1)]),_:1},8,["color"])]),_:1},8,["label"]),y.value?(i(),B(T,{key:0,label:e.$t("dashboard.info.projectName")},{default:s(()=>[o("span",jt,a(d(v).projectName||"—"),1)]),_:1},8,["label"])):K("",!0),y.value?(i(),B(T,{key:1,label:e.$t("dashboard.info.projectPath")},{default:s(()=>[o("span",Lt,a(d(v).projectRoot),1)]),_:1},8,["label"])):K("",!0),t(T,{label:e.$t("dashboard.info.websocket")},{default:s(()=>[o("span",Tt," ws://"+a(d(v).wsHost||"127.0.0.1")+":"+a(d(v).wsPort||18800),1)]),_:1},8,["label"]),t(T,{label:e.$t("dashboard.info.auth")},{default:s(()=>[t(G,{color:d(v).wsToken?"green":"default",style:{"font-size":"11px"}},{default:s(()=>[h(a(d(v).wsToken?e.$t("dashboard.info.authEnabled"):e.$t("dashboard.info.authDisabled")),1)]),_:1},8,["color"])]),_:1},8,["label"]),t(T,{label:e.$t("dashboard.info.version")},{default:s(()=>[o("span",Ot,a(d(q)),1)]),_:1},8,["label"])]),_:1})]),_:1},8,["title"])])}}},Bt=de(Et,[["__scopeId","data-v-bf6b8d82"]]);export{Bt as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{P as n,d as m,f as V,a4 as B}from"./index-
|
|
1
|
+
import{P as n,d as m,f as V,a4 as B}from"./index-Cw4v7ezB.js";import{T as D}from"./Trigger-DkSZjOlY.js";import{c as g}from"./vnode-Bzp-FsbB.js";import{d as M,r as v,w as F,c as d,F as L,f as y}from"./vendor-B6ToihkA.js";const l={adjustX:1,adjustY:1},s=[0,0],W={topLeft:{points:["bl","tl"],overflow:l,offset:[0,-4],targetOffset:s},topCenter:{points:["bc","tc"],overflow:l,offset:[0,-4],targetOffset:s},topRight:{points:["br","tr"],overflow:l,offset:[0,-4],targetOffset:s},bottomLeft:{points:["tl","bl"],overflow:l,offset:[0,4],targetOffset:s},bottomCenter:{points:["tc","bc"],overflow:l,offset:[0,4],targetOffset:s},bottomRight:{points:["tr","br"],overflow:l,offset:[0,4],targetOffset:s}};var $=function(e,c){var a={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&c.indexOf(o)<0&&(a[o]=e[o]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,o=Object.getOwnPropertySymbols(e);r<o.length;r++)c.indexOf(o[r])<0&&Object.prototype.propertyIsEnumerable.call(e,o[r])&&(a[o[r]]=e[o[r]]);return a};const X=M({compatConfig:{MODE:3},props:{minOverlayWidthMatchTrigger:{type:Boolean,default:void 0},arrow:{type:Boolean,default:!1},prefixCls:n.string.def("rc-dropdown"),transitionName:String,overlayClassName:n.string.def(""),openClassName:String,animation:n.any,align:n.object,overlayStyle:{type:Object,default:void 0},placement:n.string.def("bottomLeft"),overlay:n.any,trigger:n.oneOfType([n.string,n.arrayOf(n.string)]).def("hover"),alignPoint:{type:Boolean,default:void 0},showAction:n.array,hideAction:n.array,getPopupContainer:Function,visible:{type:Boolean,default:void 0},defaultVisible:{type:Boolean,default:!1},mouseEnterDelay:n.number.def(.15),mouseLeaveDelay:n.number.def(.1)},emits:["visibleChange","overlayClick"],setup(e,c){let{slots:a,emit:o,expose:r}=c;const f=v(!!e.visible);F(()=>e.visible,t=>{t!==void 0&&(f.value=t)});const p=v();r({triggerRef:p});const b=t=>{e.visible===void 0&&(f.value=!1),o("overlayClick",t)},h=t=>{e.visible===void 0&&(f.value=t),o("visibleChange",t)},C=()=>{var t;const i=(t=a.overlay)===null||t===void 0?void 0:t.call(a),u={prefixCls:`${e.prefixCls}-menu`,onClick:b};return d(L,{key:B},[e.arrow&&d("div",{class:`${e.prefixCls}-arrow`},null),g(i,u,!1)])},w=y(()=>{const{minOverlayWidthMatchTrigger:t=!e.alignPoint}=e;return t}),O=()=>{var t;const i=(t=a.default)===null||t===void 0?void 0:t.call(a);return f.value&&i?g(i[0],{class:e.openClassName||`${e.prefixCls}-open`},!1):i},P=y(()=>!e.hideAction&&e.trigger.indexOf("contextmenu")!==-1?["click"]:e.hideAction);return()=>{const{prefixCls:t,arrow:i,showAction:u,overlayStyle:x,trigger:A,placement:N,align:j,getPopupContainer:S,transitionName:T,animation:_,overlayClassName:k}=e,E=$(e,["prefixCls","arrow","showAction","overlayStyle","trigger","placement","align","getPopupContainer","transitionName","animation","overlayClassName"]);return d(D,m(m({},E),{},{prefixCls:t,ref:p,popupClassName:V(k,{[`${t}-show-arrow`]:i}),popupStyle:x,builtinPlacements:W,action:A,showAction:u,hideAction:P.value||[],popupPlacement:N,popupAlign:j,popupTransitionName:T,popupAnimation:_,popupVisible:f.value,stretch:w.value?"minWidth":"",onPopupVisibleChange:h,getPopupContainer:S}),{popup:C,default:O})}}});export{X as D};
|