chainlesschain 0.161.9 → 0.161.10
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-Cbnj25uU.js → AIOps-CmCGAwDv.js} +1 -1
- package/src/assets/web-panel/assets/{ActionButton-DY69UkxV.js → ActionButton-eeaISbP3.js} +1 -1
- package/src/assets/web-panel/assets/{Analytics-DUzoL75H.js → Analytics-CJEX10hA.js} +2 -2
- package/src/assets/web-panel/assets/AppLayout-BpbfrB7k.css +1 -0
- package/src/assets/web-panel/assets/AppLayout-CrYEU1PZ.js +3 -0
- package/src/assets/web-panel/assets/{Audit-CFJh6huz.js → Audit-B4BUSPse.js} +1 -1
- package/src/assets/web-panel/assets/{Backup-CMTir4tV.js → Backup-DIDcWoL9.js} +1 -1
- package/src/assets/web-panel/assets/{BaseInput-BaWXBDdp.js → BaseInput-CuJjCIcU.js} +1 -1
- package/src/assets/web-panel/assets/{Chat-DjToexEx.js → Chat-D-yEkssi.js} +1 -1
- package/src/assets/web-panel/assets/{Checkbox-DJnhKXhi.js → Checkbox-Bww7tFNj.js} +1 -1
- package/src/assets/web-panel/assets/{Codegen-CgsgvRJX.js → Codegen-D9k-kRxr.js} +1 -1
- package/src/assets/web-panel/assets/{Col-MvMGDJAB.js → Col-CWhmQejT.js} +1 -1
- package/src/assets/web-panel/assets/{Community-q26VGOGu.js → Community-Ck1ojsb1.js} +1 -1
- package/src/assets/web-panel/assets/{Compact-DyLYzWoX.js → Compact-CuDFE-4P.js} +1 -1
- package/src/assets/web-panel/assets/{Compliance-D_TF9eBc.js → Compliance-BSOLLyKA.js} +1 -1
- package/src/assets/web-panel/assets/{Cowork-B9bg988c.js → Cowork-BiOMErjG.js} +3 -3
- package/src/assets/web-panel/assets/{Cron-6k9vTFfd.js → Cron-DnVm70q-.js} +1 -1
- package/src/assets/web-panel/assets/{Crosschain-B7fk2aHi.js → Crosschain-CqIVrbR9.js} +1 -1
- package/src/assets/web-panel/assets/{DID-XhCfTFm2.js → DID-DS9MUwUx.js} +2 -2
- package/src/assets/web-panel/assets/{Dashboard-Bqk7vtZM.js → Dashboard-BlrXX2bG.js} +2 -2
- package/src/assets/web-panel/assets/{Dropdown-CDOOZGv7.js → Dropdown-CqBG_led.js} +1 -1
- package/src/assets/web-panel/assets/{Federation-NajN4oRO.js → Federation-DCBYjpOX.js} +1 -1
- package/src/assets/web-panel/assets/{FormItemContext-DgMHYlMB.js → FormItemContext-DQUjKw5j.js} +1 -1
- package/src/assets/web-panel/assets/{Git-CZC5n1Zu.js → Git-pitws4KW.js} +1 -1
- package/src/assets/web-panel/assets/{Governance-Br131eUW.js → Governance-BNG31zqe.js} +1 -1
- package/src/assets/web-panel/assets/{Inference-BHlUfcT-.js → Inference-W32jdXsU.js} +1 -1
- package/src/assets/web-panel/assets/{KnowledgeGraph-CByROhg-.js → KnowledgeGraph-_qBNRolE.js} +1 -1
- package/src/assets/web-panel/assets/{Logs-D8Ghzk4B.js → Logs-BnnANM_j.js} +1 -1
- package/src/assets/web-panel/assets/{Marketplace-CnjHPFm7.js → Marketplace-C6OwNTw7.js} +1 -1
- package/src/assets/web-panel/assets/{McpTools-C_vszCBU.js → McpTools-D7cbYTwR.js} +3 -3
- package/src/assets/web-panel/assets/{Memory-Cl5c_8In.js → Memory-7kL8dh9_.js} +1 -1
- package/src/assets/web-panel/assets/{MobileBridge-K3KwwCKl.js → MobileBridge-B5ZSxpt9.js} +2 -2
- package/src/assets/web-panel/assets/{Mtc-NfZ8xzyu.js → Mtc-DOm5jweE.js} +4 -4
- package/src/assets/web-panel/assets/{MtcAudit-BkktYSXj.js → MtcAudit-D9rDFqWR.js} +1 -1
- package/src/assets/web-panel/assets/Multisig-CVqb7ayL.js +1 -0
- package/src/assets/web-panel/assets/Multisig-D-IuEDLa.css +1 -0
- package/src/assets/web-panel/assets/{NLProgramming-BhFRuXyi.js → NLProgramming-BETAJaqD.js} +1 -1
- package/src/assets/web-panel/assets/{Notes-BpcAFy8i.js → Notes-CUJ1PDmG.js} +1 -1
- package/src/assets/web-panel/assets/{NotificationSettings-DKNtYYeo.js → NotificationSettings-BauSiotO.js} +1 -1
- package/src/assets/web-panel/assets/{Organization-C61VwQEW.js → Organization-B0T5PGg4.js} +4 -4
- package/src/assets/web-panel/assets/{Overflow-WBloac1x.js → Overflow-CHLIn241.js} +1 -1
- package/src/assets/web-panel/assets/{OverrideContext-DSwW21YS.js → OverrideContext-DYxbd09I.js} +1 -1
- package/src/assets/web-panel/assets/{P2P-DGm7EvDg.js → P2P-yqfDCE9U.js} +2 -2
- package/src/assets/web-panel/assets/{Permissions-KFPtoOV6.js → Permissions-DWu7ec_n.js} +4 -4
- package/src/assets/web-panel/assets/{Pipeline-CFjFtzZT.js → Pipeline-BPXGoHep.js} +1 -1
- package/src/assets/web-panel/assets/{Privacy-T_Kewe_f.js → Privacy-B2fRmhNs.js} +1 -1
- package/src/assets/web-panel/assets/ProjectInit-CteEo-wF.css +1 -0
- package/src/assets/web-panel/assets/{Projects-xGNn4Ov9.js → ProjectInit-dPr0sgSZ.js} +2 -2
- package/src/assets/web-panel/assets/{ProjectSettings-BQl8qTPQ.js → ProjectSettings-dKjwdfXX.js} +1 -1
- package/src/assets/web-panel/assets/Projects-C34BWmmy.css +1 -0
- package/src/assets/web-panel/assets/Projects-fRCTrULX.js +1 -0
- package/src/assets/web-panel/assets/{Providers-ByuUztXe.js → Providers-OpB_FLki.js} +1 -1
- package/src/assets/web-panel/assets/{QuickAsk-BwSXmXvL.js → QuickAsk-B0gFMvI8.js} +1 -1
- package/src/assets/web-panel/assets/{Recommend-Cp433_5Z.js → Recommend-C2NwxWiR.js} +1 -1
- package/src/assets/web-panel/assets/{Reputation-DE_JSjyi.js → Reputation-CTBtQ8Bi.js} +1 -1
- package/src/assets/web-panel/assets/{Row-DI36Fic1.js → Row-CQ36tMlO.js} +1 -1
- package/src/assets/web-panel/assets/{RssFeed-DswpSUiI.js → RssFeed-ChOug33H.js} +3 -3
- package/src/assets/web-panel/assets/{Search-Crs2UKhh.js → Search-DrlVYajZ.js} +1 -1
- package/src/assets/web-panel/assets/{Security-W8ViXXbq.js → Security-BxWm_HMW.js} +3 -3
- package/src/assets/web-panel/assets/{Services-BIQdyLJM.js → Services-Bq__zdi1.js} +1 -1
- package/src/assets/web-panel/assets/{Skeleton-DDiOevKX.js → Skeleton-D2BPihBx.js} +1 -1
- package/src/assets/web-panel/assets/{Skills-v-Vw_jGa.js → Skills-Q1ZtavwR.js} +1 -1
- package/src/assets/web-panel/assets/{Sla-B-ULmz5m.js → Sla-CyIKjjSg.js} +1 -1
- package/src/assets/web-panel/assets/{SpeechSettings--8IIPHri.js → SpeechSettings-DPddWDCV.js} +1 -1
- package/src/assets/web-panel/assets/{SyncSettings-D0QiEwJn.js → SyncSettings-CY-Fdii1.js} +1 -1
- package/src/assets/web-panel/assets/{Tasks-BNSR9FlM.js → Tasks-DAWxFePY.js} +1 -1
- package/src/assets/web-panel/assets/{Templates-CFVkaS-d.js → Templates-CuIQmfXP.js} +1 -1
- package/src/assets/web-panel/assets/{Tenant-quU-tldS.js → Tenant-CYsUC_mL.js} +1 -1
- package/src/assets/web-panel/assets/{Tokens-DTqFjS4k.js → Tokens-DpwM8qKh.js} +1 -1
- package/src/assets/web-panel/assets/{Trigger-ZWVirxhN.js → Trigger-CBHUHnc-.js} +1 -1
- package/src/assets/web-panel/assets/{Trust-DmaYf5tg.js → Trust-DfQZgxcX.js} +1 -1
- package/src/assets/web-panel/assets/{UkeySign-BeYyXtZW.js → UkeySign-BcOnuHWe.js} +1 -1
- package/src/assets/web-panel/assets/{VideoEditing-CRdDwD9C.js → VideoEditing-Ci-c6HHb.js} +1 -1
- package/src/assets/web-panel/assets/{Wallet-H-38f7Pv.js → Wallet-DBuVM9t_.js} +1 -1
- package/src/assets/web-panel/assets/{WebAuthn-CCQVzZ0W.js → WebAuthn-Dc3XC6-l.js} +4 -4
- package/src/assets/web-panel/assets/{WorkflowEditor-B1RFE2oN.js → WorkflowEditor-BFBZCgWB.js} +1 -1
- package/src/assets/web-panel/assets/{chat-Z4UoBAeF.js → chat-tqUunmHQ.js} +1 -1
- package/src/assets/web-panel/assets/{collapseMotion-6-_FbiKl.js → collapseMotion-CZQhO80h.js} +1 -1
- package/src/assets/web-panel/assets/{colors-AecMhEAZ.js → colors-7dfqj18R.js} +1 -1
- package/src/assets/web-panel/assets/{compact-item-Dfhm05kA.js → compact-item-_8YefjuR.js} +1 -1
- package/src/assets/web-panel/assets/{createContext-C7gBVuRm.js → createContext-CPZ59Zcw.js} +1 -1
- package/src/assets/web-panel/assets/{echarts-BrEnqXDv.js → echarts-TwhxblyG.js} +1 -1
- package/src/assets/web-panel/assets/{hasIn-DQarK3iI.js → hasIn-BidaS7SK.js} +1 -1
- package/src/assets/web-panel/assets/{icons-B2mcO3YM.js → icons-Q99MnhG8.js} +2 -2
- package/src/assets/web-panel/assets/{index-DdtxWGjo.js → index-51Z_iRMU.js} +1 -1
- package/src/assets/web-panel/assets/{index-B1XdBIuG.js → index-B3-Fdfqy.js} +1 -1
- package/src/assets/web-panel/assets/{index-78eTUfD9.js → index-BJmJfXGw.js} +1 -1
- package/src/assets/web-panel/assets/{index-D841tepe.js → index-BUlPL2uR.js} +1 -1
- package/src/assets/web-panel/assets/{index-DWbRHjgk.js → index-B_pQvbuN.js} +1 -1
- package/src/assets/web-panel/assets/{index-BxjOmfVA.js → index-BqsvxElz.js} +4 -4
- package/src/assets/web-panel/assets/{index-C7nHW5ZW.js → index-BtBRkcWM.js} +1 -1
- package/src/assets/web-panel/assets/{index-CxDBoEkf.js → index-C0MN4j0q.js} +1 -1
- package/src/assets/web-panel/assets/{index-C0kyGID6.js → index-CAUH-6ta.js} +1 -1
- package/src/assets/web-panel/assets/{index-YJxjR7t9.js → index-CG0swGFV.js} +1 -1
- package/src/assets/web-panel/assets/{index-BLYMiBRw.js → index-CLceS3rm.js} +1 -1
- package/src/assets/web-panel/assets/{index-DX4CKtlL.js → index-CW90j-dZ.js} +1 -1
- package/src/assets/web-panel/assets/{index-CS7_x1br.js → index-Ca0EAS0W.js} +1 -1
- package/src/assets/web-panel/assets/index-Ca5Qc31r.js +1 -0
- package/src/assets/web-panel/assets/{index-Dkh_4r1F.js → index-CmCovo5r.js} +1 -1
- package/src/assets/web-panel/assets/{index-aHqD7CZz.js → index-CvkR7sYL.js} +1 -1
- package/src/assets/web-panel/assets/{index-QgJGoGAK.js → index-Cw1VkvZr.js} +1 -1
- package/src/assets/web-panel/assets/{index-C-4d1ug2.js → index-Cxwyyzpd.js} +1 -1
- package/src/assets/web-panel/assets/{index-DtrMx44i.js → index-Cxy6yDHf.js} +1 -1
- package/src/assets/web-panel/assets/{index-OqY41c_z.js → index-CzARuKje.js} +1 -1
- package/src/assets/web-panel/assets/{index-B52lOAOU.js → index-D7yjk-E8.js} +1 -1
- package/src/assets/web-panel/assets/{index-Ch9ExDNs.js → index-D8upWkW0.js} +1 -1
- package/src/assets/web-panel/assets/{index-DfA9S79c.js → index-D95E7B-a.js} +1 -1
- package/src/assets/web-panel/assets/{index-1d6L3YWV.js → index-DJa3dvQf.js} +1 -1
- package/src/assets/web-panel/assets/{index-Dy2fLm3i.js → index-DJfKgyA-.js} +1 -1
- package/src/assets/web-panel/assets/{index-CCUfW7hO.js → index-DMRsx5W4.js} +1 -1
- package/src/assets/web-panel/assets/{index-L6kKxFAO.js → index-DP7namG9.js} +1 -1
- package/src/assets/web-panel/assets/{index-5I_kEh5L.js → index-DTmWBWkJ.js} +1 -1
- package/src/assets/web-panel/assets/{index-D3Pxfwcc.js → index-DTwrQg1G.js} +1 -1
- package/src/assets/web-panel/assets/{index-D4_1yL1c.js → index-DWSEcCO0.js} +1 -1
- package/src/assets/web-panel/assets/{index-nqKLHlmq.js → index-D_vErh-N.js} +1 -1
- package/src/assets/web-panel/assets/{index-5P_X26-m.js → index-DccwP9Op.js} +1 -1
- package/src/assets/web-panel/assets/{index-DfAZSzZc.js → index-Dev3hWia.js} +1 -1
- package/src/assets/web-panel/assets/{index-CiVezMja.js → index-DfHN8qWn.js} +1 -1
- package/src/assets/web-panel/assets/{index-CuPmKar9.js → index-Ds3hIeDc.js} +1 -1
- package/src/assets/web-panel/assets/{index-CFR1Scu8.js → index-DsykGbFs.js} +1 -1
- package/src/assets/web-panel/assets/{index-d0Iy6r2J.js → index-OZ08PLpO.js} +1 -1
- package/src/assets/web-panel/assets/index-QVPLcn-I.js +1 -0
- package/src/assets/web-panel/assets/{index-Cy_80Fj7.js → index-Xg1JWxyg.js} +1 -1
- package/src/assets/web-panel/assets/{initDefaultProps-CDOGbz6v.js → initDefaultProps-DBQ94EVq.js} +1 -1
- package/src/assets/web-panel/assets/{motion-ChIpIzUN.js → motion-BAgV2nZt.js} +1 -1
- package/src/assets/web-panel/assets/{move-DbH3dyN8.js → move-CPhu8BHp.js} +1 -1
- package/src/assets/web-panel/assets/{omit-BJ1K-IDI.js → omit-BKpLUN0q.js} +1 -1
- package/src/assets/web-panel/assets/{pickAttrs-B0q7EpvV.js → pickAttrs-BicOrtU0.js} +1 -1
- package/src/assets/web-panel/assets/{placementArrow-D7XkOUjs.js → placementArrow-D2-Ct0PH.js} +1 -1
- package/src/assets/web-panel/assets/{responsiveObserve-efcdE4ju.js → responsiveObserve-DGFr293p.js} +1 -1
- package/src/assets/web-panel/assets/{slide-BgAktMzM.js → slide-C7zAHcKr.js} +1 -1
- package/src/assets/web-panel/assets/{statusUtils-CV83LVbI.js → statusUtils-ByfnDIgi.js} +1 -1
- package/src/assets/web-panel/assets/{styleChecker-D1npYi6G.js → styleChecker-C-ldcMcB.js} +1 -1
- package/src/assets/web-panel/assets/useFlexGapSupport-CKCvqfWX.js +1 -0
- package/src/assets/web-panel/assets/{useFs-BEvSw9aX.js → useFs-yX-MUKbZ.js} +1 -1
- package/src/assets/web-panel/assets/{useMergedState-n0f81Aew.js → useMergedState-D3PX36GT.js} +1 -1
- package/src/assets/web-panel/assets/{useRefs-CTh0C9xI.js → useRefs-opfcK7Pm.js} +1 -1
- package/src/assets/web-panel/assets/{useState-4T1Ntfpx.js → useState-Cp5WlLTS.js} +1 -1
- package/src/assets/web-panel/assets/{vendor-Ci2pTZ_t.js → vendor-BVLz_z7V.js} +1 -1
- package/src/assets/web-panel/assets/{vnode-Duw65sZ1.js → vnode-CW-Z-Xwr.js} +1 -1
- package/src/assets/web-panel/assets/{zoom-CLMtA8PG.js → zoom-DR60LSPO.js} +1 -1
- package/src/assets/web-panel/index.html +3 -3
- package/src/commands/mtc.js +1 -1
- package/src/commands/project.js +258 -0
- package/src/index.js +3 -0
- package/src/lib/audit-mtc.js +1 -1
- package/src/lib/project-runtime.js +171 -0
- package/src/assets/web-panel/assets/AppLayout-DATUppSv.js +0 -1
- package/src/assets/web-panel/assets/AppLayout-qr7ghxW7.css +0 -1
- package/src/assets/web-panel/assets/Multisig-BLRYDn7_.css +0 -1
- package/src/assets/web-panel/assets/Multisig-qP51bs1T.js +0 -1
- package/src/assets/web-panel/assets/Projects-B5IgXt-x.css +0 -1
- package/src/assets/web-panel/assets/index-Cp5G30tN.js +0 -1
- package/src/assets/web-panel/assets/index-eoNKQdFC.js +0 -1
- package/src/assets/web-panel/assets/useFlexGapSupport-DTH3yXTD.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{_ as qe,u as Ee,b as Ie,d as v}from"./index-BxjOmfVA.js";import{s as Me}from"./community-parser-CO25nZFt.js";import{R as Pe,aq as De,aY as Ke,aG as Ve,aX as Ye,y as de,a3 as Je,ai as me,ak as We,A as Ge}from"./icons-B2mcO3YM.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,Y as M,$ as ye,f as w,a as le}from"./vendor-Ci2pTZ_t.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 Qe=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,O]of Object.entries(n.byType))typeof O=="number"&&Number.isFinite(O)&&(i.byType[z]=O);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"}},Ot={style:{color:"var(--text-secondary)"}},Rt={style:{color:"var(--text-secondary)"}},jt={key:0,style:{"margin-top":"4px"}},Lt={style:{color:"var(--text-secondary)","font-size":"12px",margin:"0"}},Nt={style:{color:"var(--text-secondary)","font-size":"12px",margin:"0"}},wt={__name:"Compliance",setup(t){const i=Ee(),{t:n}=Ie(),z=g(!1),O=g(!1),Y=g(!1),J=g(!1),W=g([]),U=g({total:0,byType:{}}),B=g([]),R=g([]),A=g({noAuditLog:!1,error:""}),D=g("threat"),K=g(""),G=g(!1),q=g(!1),E=g(!1),H=le({observable:""}),k=g(null),T=le({entity:"",days:30}),x=le({entity:"",threshold:.7,days:1}),ve=w(()=>[{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=w(()=>[{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=w(()=>K.value?W.value.filter(e=>e.type===K.value):W.value),he=w(()=>Object.keys(U.value.byType).length),_e=w(()=>Object.entries(U.value.byType).sort((e,s)=>s[1]-e[1])),ne=w(()=>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 Q(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,G.value=!0):e==="ueba-build"?q.value=!0:e==="ueba-analyze"&&(E.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:""}))]);W.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}O.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{O.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(){Y.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")),q.value=!1;return}if(y.error){v.error(n("compliance.msg.buildFailed")+": "+y.error);return}v.success(n("compliance.msg.buildSuccess")),q.value=!1,D.value="ueba",await V()}catch(e){v.error(n("compliance.msg.buildFailed")+": "+(e?.message||e))}finally{Y.value=!1}}async function Ce(){J.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")),E.value=!1;return}if(y.error&&!s.includes("[")){v.error(n("compliance.msg.analyzeFailed")+": "+y.error);return}R.value=ot(s),v.success(n("compliance.msg.analyzeSuccess",{n:R.value.length})),E.value=!1,D.value="ueba"}catch(e){v.error(n("compliance.msg.analyzeFailed")+": "+(e?.message||e))}finally{J.value=!1}}return He(V),(e,s)=>{const y=d("a-button"),$=d("a-menu-item"),Fe=d("a-menu"),Oe=d("a-dropdown"),se=d("a-space"),L=d("a-statistic"),j=d("a-card"),I=d("a-col"),Re=d("a-row"),C=d("a-tag"),re=d("a-radio-button"),je=d("a-radio-group"),Le=d("a-popconfirm"),ce=d("a-table"),ue=d("a-tab-pane"),pe=d("a-alert"),Ne=d("a-progress"),we=d("a-list-item"),Ue=d("a-list"),Be=d("a-tabs"),X=d("a-input"),N=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(Oe,{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(_(Ye)),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(Re,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:l(()=>[a(I,{xs:12,sm:8,lg:5},{default:l(()=>[a(j,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:l(()=>[a(L,{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(I,{xs:12,sm:8,lg:5},{default:l(()=>[a(j,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:l(()=>[a(L,{title:e.$t("compliance.stats.iocTypes"),value:he.value,"value-style":{color:"#13c2c2",fontSize:"20px"}},{prefix:l(()=>[a(_(Je))]),_:1},8,["title","value"])]),_:1})]),_:1}),a(I,{xs:12,sm:8,lg:5},{default:l(()=>[a(j,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:l(()=>[a(L,{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(I,{xs:12,sm:8,lg:5},{default:l(()=>[a(j,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:l(()=>[a(L,{title:e.$t("compliance.stats.highRisk"),value:ne.value,"value-style":{color:ne.value>0?"#ff4d4f":"#52c41a",fontSize:"20px"}},{prefix:l(()=>[a(_(We))]),_:1},8,["title","value","value-style"])]),_:1})]),_:1}),a(I,{xs:24,sm:8,lg:4},{default:l(()=>[a(j,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:l(()=>[a(L,{title:e.$t("compliance.stats.recentAnomalies"),value:R.value.length,"value-style":{color:"#faad14",fontSize:"20px"}},{prefix:l(()=>[a(_(Ge))]),_: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:Q(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(_(Qe),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:Q(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(Le,{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(Ne,{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"]),R.value.length?(c(),p("h3",xt,r(e.$t("compliance.ueba.anomalyTitle",{count:R.value.length})),1)):m("",!0),R.value.length?(c(),h(Ue,{key:3,size:"small","data-source":R.value,locale:{emptyText:e.$t("compliance.table.noAnomalies")}},{renderItem:l(({item:o})=>[a(we,{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:G.value,"onUpdate:open":s[3]||(s[3]=o=>G.value=o),title:e.$t("compliance.match.modalTitle"),"confirm-loading":O.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(N,{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(L,{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:Q(k.value.type)},{default:l(()=>[f(r(k.value.type),1)]),_:1},8,["color"])]),k.value.indicator?(c(),p("div",Ft,[b("div",Ot,r(e.$t("compliance.match.sourcePrefix"))+" "+r(k.value.indicator.sourceName||"—"),1),b("div",Rt,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:q.value,"onUpdate:open":s[6]||(s[6]=o=>q.value=o),title:e.$t("compliance.build.modalTitle"),"confirm-loading":Y.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(N,{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(N,{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",Lt,r(e.$t("compliance.build.footnote")),1)]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),a(ee,{open:E.value,"onUpdate:open":s[10]||(s[10]=o=>E.value=o),title:e.$t("compliance.analyze.modalTitle"),"confirm-loading":J.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(N,{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(N,{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(N,{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",Nt,r(e.$t("compliance.analyze.footnote")),1)]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"])])}}},It=qe(wt,[["__scopeId","data-v-81155fa8"]]);export{It as default};
|
|
1
|
+
import{_ as qe,u as Ee,b as Ie,d as v}from"./index-BqsvxElz.js";import{s as Me}from"./community-parser-CO25nZFt.js";import{R as Pe,aq as De,aZ as Ke,aH as Ve,aY as Ye,z as de,a3 as Je,ai as me,ak as We,A as He}from"./icons-Q99MnhG8.js";import{o as Qe,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,Y as M,_ as ye,f as w,a as le}from"./vendor-BVLz_z7V.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 Ze=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 Ge(t){const i=P(t);return Array.isArray(i)?i.map(fe).filter(Boolean):[]}function Xe(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,O]of Object.entries(n.byType))typeof O=="number"&&Number.isFinite(O)&&(i.byType[z]=O);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"}},Ot={style:{color:"var(--text-secondary)"}},Rt={style:{color:"var(--text-secondary)"}},jt={key:0,style:{"margin-top":"4px"}},Lt={style:{color:"var(--text-secondary)","font-size":"12px",margin:"0"}},Nt={style:{color:"var(--text-secondary)","font-size":"12px",margin:"0"}},wt={__name:"Compliance",setup(t){const i=Ee(),{t:n}=Ie(),z=g(!1),O=g(!1),Y=g(!1),J=g(!1),W=g([]),U=g({total:0,byType:{}}),B=g([]),R=g([]),A=g({noAuditLog:!1,error:""}),D=g("threat"),K=g(""),H=g(!1),q=g(!1),E=g(!1),Q=le({observable:""}),k=g(null),T=le({entity:"",days:30}),x=le({entity:"",threshold:.7,days:1}),ve=w(()=>[{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=w(()=>[{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=w(()=>K.value?W.value.filter(e=>e.type===K.value):W.value),he=w(()=>Object.keys(U.value.byType).length),_e=w(()=>Object.entries(U.value.byType).sort((e,s)=>s[1]-e[1])),ne=w(()=>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 Z(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,H.value=!0):e==="ueba-build"?q.value=!0:e==="ueba-analyze"&&(E.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:""}))]);W.value=Ge(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=Q.observable.trim();if(!e){v.warning(n("compliance.msg.matchEmpty"));return}O.value=!0,k.value=null;try{const s=`compliance threat-intel match "${e.replace(/"/g,'\\"')}" --json`,{output:y}=await i.execute(s,8e3),$=Xe(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{O.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(){Y.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")),q.value=!1;return}if(y.error){v.error(n("compliance.msg.buildFailed")+": "+y.error);return}v.success(n("compliance.msg.buildSuccess")),q.value=!1,D.value="ueba",await V()}catch(e){v.error(n("compliance.msg.buildFailed")+": "+(e?.message||e))}finally{Y.value=!1}}async function Ce(){J.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")),E.value=!1;return}if(y.error&&!s.includes("[")){v.error(n("compliance.msg.analyzeFailed")+": "+y.error);return}R.value=ot(s),v.success(n("compliance.msg.analyzeSuccess",{n:R.value.length})),E.value=!1,D.value="ueba"}catch(e){v.error(n("compliance.msg.analyzeFailed")+": "+(e?.message||e))}finally{J.value=!1}}return Qe(V),(e,s)=>{const y=d("a-button"),$=d("a-menu-item"),Fe=d("a-menu"),Oe=d("a-dropdown"),se=d("a-space"),L=d("a-statistic"),j=d("a-card"),I=d("a-col"),Re=d("a-row"),C=d("a-tag"),re=d("a-radio-button"),je=d("a-radio-group"),Le=d("a-popconfirm"),ce=d("a-table"),ue=d("a-tab-pane"),pe=d("a-alert"),Ne=d("a-progress"),we=d("a-list-item"),Ue=d("a-list"),Be=d("a-tabs"),G=d("a-input"),N=d("a-form-item"),X=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(Oe,{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(_(Ye)),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(Re,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:l(()=>[a(I,{xs:12,sm:8,lg:5},{default:l(()=>[a(j,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:l(()=>[a(L,{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(I,{xs:12,sm:8,lg:5},{default:l(()=>[a(j,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:l(()=>[a(L,{title:e.$t("compliance.stats.iocTypes"),value:he.value,"value-style":{color:"#13c2c2",fontSize:"20px"}},{prefix:l(()=>[a(_(Je))]),_:1},8,["title","value"])]),_:1})]),_:1}),a(I,{xs:12,sm:8,lg:5},{default:l(()=>[a(j,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:l(()=>[a(L,{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(I,{xs:12,sm:8,lg:5},{default:l(()=>[a(j,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:l(()=>[a(L,{title:e.$t("compliance.stats.highRisk"),value:ne.value,"value-style":{color:ne.value>0?"#ff4d4f":"#52c41a",fontSize:"20px"}},{prefix:l(()=>[a(_(We))]),_:1},8,["title","value","value-style"])]),_:1})]),_:1}),a(I,{xs:24,sm:8,lg:4},{default:l(()=>[a(j,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:l(()=>[a(L,{title:e.$t("compliance.stats.recentAnomalies"),value:R.value.length,"value-style":{color:"#faad14",fontSize:"20px"}},{prefix:l(()=>[a(_(He))]),_: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:Z(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(_(Ze),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:Z(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(Le,{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(Ne,{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"]),R.value.length?(c(),p("h3",xt,r(e.$t("compliance.ueba.anomalyTitle",{count:R.value.length})),1)):m("",!0),R.value.length?(c(),h(Ue,{key:3,size:"small","data-source":R.value,locale:{emptyText:e.$t("compliance.table.noAnomalies")}},{renderItem:l(({item:o})=>[a(we,{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:H.value,"onUpdate:open":s[3]||(s[3]=o=>H.value=o),title:e.$t("compliance.match.modalTitle"),"confirm-loading":O.value,width:500,"ok-text":e.$t("compliance.match.ok"),"cancel-text":e.$t("compliance.match.close"),onOk:Se},{default:l(()=>[a(X,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:l(()=>[a(N,{label:e.$t("compliance.match.label"),required:""},{default:l(()=>[a(G,{value:Q.observable,"onUpdate:value":s[2]||(s[2]=o=>Q.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(L,{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:Z(k.value.type)},{default:l(()=>[f(r(k.value.type),1)]),_:1},8,["color"])]),k.value.indicator?(c(),p("div",Ft,[b("div",Ot,r(e.$t("compliance.match.sourcePrefix"))+" "+r(k.value.indicator.sourceName||"—"),1),b("div",Rt,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:q.value,"onUpdate:open":s[6]||(s[6]=o=>q.value=o),title:e.$t("compliance.build.modalTitle"),"confirm-loading":Y.value,width:480,"ok-text":e.$t("compliance.build.ok"),"cancel-text":e.$t("compliance.build.cancel"),onOk:Te},{default:l(()=>[a(X,{"label-col":{span:6},"wrapper-col":{span:18},style:{"margin-top":"16px"}},{default:l(()=>[a(N,{label:e.$t("compliance.build.entityLabel")},{default:l(()=>[a(G,{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(N,{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",Lt,r(e.$t("compliance.build.footnote")),1)]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),a(ee,{open:E.value,"onUpdate:open":s[10]||(s[10]=o=>E.value=o),title:e.$t("compliance.analyze.modalTitle"),"confirm-loading":J.value,width:480,"ok-text":e.$t("compliance.analyze.ok"),"cancel-text":e.$t("compliance.analyze.cancel"),onOk:Ce},{default:l(()=>[a(X,{"label-col":{span:6},"wrapper-col":{span:18},style:{"margin-top":"16px"}},{default:l(()=>[a(N,{label:e.$t("compliance.analyze.entityLabel")},{default:l(()=>[a(G,{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(N,{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(N,{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",Nt,r(e.$t("compliance.analyze.footnote")),1)]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"])])}}},It=qe(wt,[["__scopeId","data-v-81155fa8"]]);export{It as default};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import{E as oe,w as ne,r as d,f as
|
|
1
|
+
import{E as oe,w as ne,r as d,f as H,o as ie,M as i,R as n,c as p,u as s,F as x,Y as b,Z as I,a1 as Z,P as r,S as _,O as g,Q as k,$ as X,N as v,a0 as re,K as C,L as a,n as ae}from"./vendor-BVLz_z7V.js";import{u as ee,_ as ce}from"./index-BqsvxElz.js";import{u as F}from"./chat-tqUunmHQ.js";import{r as te}from"./markdown-Yo_c6Krv.js";import{j as z,i as ue,al as le,am as de,z as pe,a9 as ve,G as me,aa as _e,r as ye,an as fe,t as ge,a2 as he,ao as ke,l as we,ac as Se,aj as xe}from"./icons-Q99MnhG8.js";import"./markdown-CsiA8-E5.js";const be=[{id:"doc-convert",name:"文档格式转换",icon:"FileTextOutlined",category:"document",description:"Word、Markdown、HTML、PDF 之间的格式互转",examples:["把 report.docx 转成 PDF","合并多个 Markdown 为一个文档"],acceptsFiles:!0},{id:"media-process",name:"音视频处理",icon:"PlayCircleOutlined",category:"media",description:"视频压缩、音频提取、格式转换、剪辑",examples:["提取 MP4 的音频","压缩视频到 50MB 以内"],acceptsFiles:!0},{id:"data-analysis",name:"数据分析",icon:"BarChartOutlined",category:"data",description:"CSV/Excel 分析、统计、可视化图表",examples:["分析 sales.csv 的月度趋势"],acceptsFiles:!0},{id:"web-research",name:"信息检索与调研",icon:"SearchOutlined",category:"research",description:"网页抓取、API 调用、多源信息汇总",examples:["调研 AI Agent 框架对比"],acceptsFiles:!1},{id:"image-process",name:"图片处理",icon:"PictureOutlined",category:"media",description:"批量压缩、格式转换、加水印、OCR",examples:["批量压缩到 500KB"],acceptsFiles:!0},{id:"code-helper",name:"代码辅助",icon:"CodeOutlined",category:"development",description:"生成脚本、调试代码、自动化任务",examples:["写一个批量重命名脚本"],acceptsFiles:!0},{id:"system-admin",name:"系统运维",icon:"DesktopOutlined",category:"system",description:"磁盘分析、进程管理、日志分析",examples:["查看磁盘使用情况"],acceptsFiles:!1},{id:"file-organize",name:"文件整理",icon:"FolderOpenOutlined",category:"file",description:"批量重命名、分类整理、查找重复",examples:["按文件类型分类整理"],acceptsFiles:!1},{id:"network-tools",name:"网络工具",icon:"GlobalOutlined",category:"network",description:"API 调试、网页抓取、网络诊断",examples:["测试 API 接口"],acceptsFiles:!1},{id:"learning-assist",name:"学习辅助",icon:"ReadOutlined",category:"learning",description:"文档翻译、内容总结、论文分析",examples:["翻译 PDF 摘要"],acceptsFiles:!0}],Ce=oe("cowork",()=>{const j=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 W(o){t.value=o,B()}function B(){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 N(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&&(j.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
|
-
[用户提供的文件: ${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
|
|
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 q(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=H(()=>m.value?F().getMessages(m.value):[]),J=H(()=>{if(!m.value)return null;const e=F().streaming[m.value];return e?.active?e.content:null}),V=H(()=>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 q(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+=`
|
|
5
5
|
|
|
6
|
-
[用户提供的文件: ${y.value.join(", ")}]`),await e.sendMessage(m.value,c)}return{selectedTemplate:t,files:y,isRunning:w,steps:O,messages:h,result:T,agentSessionId:m,currentAgentMessages:G,currentStreaming:J,currentQuestion:V,selectTemplate:j,reset:q,addFile:E,removeFile:B,execute:f,executeDirectWs:N,sendFollowUp:Y,answerQuestion:K,loadTemplates:u,templates:W,lastRequest:S,retry:L,history:P,loadHistory:l,parallelMode:Q,parallelAgents:U,debateMode:A,debatePerspectives:R}}),Te={class:"cowork-root"},Oe={class:"template-panel"},Me={class:"template-header"},Fe={class:"template-list"},Pe=["onClick"],Re={class:"card-icon"},De={class:"card-body"},Ae={class:"card-name"},Ee={class:"card-desc"},Le={class:"card-icon"},$e={class:"drop-text"},Ie={key:0,class:"file-list"},He={key:1,class:"history-section"},ze={key:0,class:"history-list"},Qe={class:"history-summary"},Ue={class:"history-meta"},qe={class:"exec-panel"},Be={key:0,class:"empty-state"},Ne={class:"empty-icon"},Ve={class:"example-grid"},Ke=["onClick"],We={key:1,class:"ready-state"},je={class:"ready-header"},Ge={class:"ready-name"},Je={key:0,class:"parallel-toggle"},Ye={key:1,class:"parallel-hint"},Ze={class:"ready-examples"},Xe=["onClick"],et={key:0,class:"tool-msg"},tt={class:"tool-input"},st={key:0,class:"tool-result-box"},at={class:"tool-result"},lt={key:1,class:"user-msg"},nt={class:"bubble user"},ot={key:2,class:"assistant-msg"},it=["innerHTML"],rt={key:0,class:"assistant-msg"},ct=["innerHTML"],ut={key:1,class:"question-card"},dt={class:"question-text"},pt={key:0,class:"question-choices"},vt={key:3,class:"debate-panel"},mt={class:"debate-verdict"},_t={class:"consensus"},yt=["innerHTML"],ft={key:4,class:"task-stats"},gt={class:"input-area"},ht={key:0,class:"input-context"},kt={class:"input-row"},wt={__name:"Cowork",setup(W){const t=Ce(),y=F(),w=d(""),O=d(null),h=d(!1),T=d(""),m=d(!1),S=d(!1),P={FileTextOutlined:we,PlayCircleOutlined:ke,BarChartOutlined:he,SearchOutlined:ge,PictureOutlined:fe,CodeOutlined:ye,DesktopOutlined:_e,FolderOpenOutlined:le,GlobalOutlined:me,ReadOutlined:ve,SafetyCertificateOutlined:pe},Q=["把 report.docx 转成 PDF","压缩视频到 50MB","分析 CSV 生成图表","查询今天的汇率","批量压缩图片","写一个自动化脚本"],U=z(()=>y.isLoading?"等待响应中...":t.selectedTemplate?t.selectedTemplate.examples?.[0]||"描述你的需求...":"描述你想完成的任务,Agent 会帮你搞定"),A=z(()=>t.currentAgentMessages);function R(u){return u==="APPROVE"?"green":u==="REJECT"?"red":u==="ERROR"?"default":"orange"}function D(u){return u.split(/[\\/]/).pop()||u}function j(u){h.value=!1;const l=u.dataTransfer?.files;if(l)for(const f of l)t.addFile(f.path||f.name)}function q(){const u=T.value.trim();u&&(t.addFile(u),T.value="")}async function E(){const u=w.value.trim();!u||y.isLoading||(w.value="",t.agentSessionId?await t.sendFollowUp(u):await t.execute(u))}function B(u){w.value=u,ae(()=>E())}return ne([A,()=>t.currentStreaming],()=>{ae(()=>{O.value&&(O.value.scrollTop=O.value.scrollHeight)})},{deep:!0}),ie(()=>{y.loadSessions(),t.loadTemplates(),t.loadHistory()}),(u,l)=>{const f=C("a-tag"),N=C("a-input"),G=C("a-switch"),J=C("a-input-number"),V=C("a-collapse-panel"),K=C("a-collapse"),L=C("a-button"),Y=C("a-input-search"),o=C("a-textarea");return a(),i("div",Te,[n("div",Oe,[n("div",Me,[p(s(H),{class:"header-icon"}),l[9]||(l[9]=n("span",{class:"header-title"},"日常协作",-1))]),l[11]||(l[11]=n("div",{class:"template-hint"},"选择任务类型,或直接输入需求",-1)),n("div",Fe,[(a(!0),i(x,null,b(s(t).templates,e=>(a(),i("div",{key:e.id,class:I(["template-card",{active:s(t).selectedTemplate?.id===e.id}]),onClick:c=>s(t).selectTemplate(e)},[n("div",Re,[(a(),k(X(P[e.icon]||s(H))))]),n("div",De,[n("div",Ae,r(e.name),1),n("div",Ee,r(e.description),1)])],10,Pe))),128)),n("div",{class:I(["template-card free",{active:s(t).selectedTemplate===null&&m.value}]),onClick:l[0]||(l[0]=e=>{s(t).selectTemplate(null),m.value=!0})},[n("div",Le,[p(s(ue))]),l[10]||(l[10]=n("div",{class:"card-body"},[n("div",{class:"card-name"},"自由提问"),n("div",{class:"card-desc"},"任意任务,Agent 自主完成")],-1))],2)]),s(t).selectedTemplate?.acceptsFiles!==!1?(a(),i("div",{key:0,class:I(["file-zone",{dragging:h.value}]),onDragover:l[2]||(l[2]=Z(e=>h.value=!0,["prevent"])),onDragleave:l[3]||(l[3]=e=>h.value=!1),onDrop:Z(j,["prevent"])},[p(s(le),{class:"drop-icon"}),n("div",$e,r(h.value?"松开以添加文件":"拖拽文件到此处"),1),s(t).files.length?(a(),i("div",Ie,[(a(!0),i(x,null,b(s(t).files,e=>(a(),k(f,{key:e,closable:"",onClose:c=>s(t).removeFile(e),class:"file-tag"},{default:v(()=>[g(r(D(e)),1)]),_:2},1032,["onClose"]))),128))])):_("",!0),p(N,{value:T.value,"onUpdate:value":l[1]||(l[1]=e=>T.value=e),placeholder:"或输入文件路径,按 Enter 添加",size:"small",class:"path-input",onPressEnter:q},null,8,["value"])],34)):_("",!0),s(t).history.length?(a(),i("div",He,[n("div",{class:"history-header",onClick:l[4]||(l[4]=e=>S.value=!S.value)},[p(s(de)),g(" 历史记录 ("+r(s(t).history.length)+") ",1)]),S.value?(a(),i("div",ze,[(a(!0),i(x,null,b(s(t).history.slice().reverse().slice(0,20),(e,c)=>(a(),i("div",{key:c,class:I(["history-item",e.status])},[n("div",Qe,r(e.userMessage),1),n("div",Ue,[n("span",null,r(e.templateName||"自由模式"),1),n("span",null,r(e.status),1)])],2))),128))])):_("",!0)])):_("",!0)]),n("div",qe,[!s(t).agentSessionId&&!s(t).selectedTemplate?(a(),i("div",Be,[n("div",Ne,[p(s(H))]),l[12]||(l[12]=n("div",{class:"empty-title"},"选择一个任务模板开始",-1)),l[13]||(l[13]=n("div",{class:"empty-sub"},"或选择「自由提问」处理任何问题",-1)),n("div",Ve,[(a(),i(x,null,b(Q,e=>n("div",{key:e,class:"example-chip",onClick:c=>B(e)},r(e),9,Ke)),64))])])):s(t).selectedTemplate&&!s(t).agentSessionId?(a(),i("div",We,[n("div",je,[(a(),k(X(P[s(t).selectedTemplate.icon]||s(H)),{class:"ready-icon"})),n("span",Ge,r(s(t).selectedTemplate.name),1)]),s(t).selectedTemplate.parallelStrategy&&s(t).selectedTemplate.parallelStrategy!=="none"?(a(),i("div",Je,[p(G,{checked:s(t).parallelMode,"onUpdate:checked":l[5]||(l[5]=e=>s(t).parallelMode=e),size:"small"},null,8,["checked"]),l[14]||(l[14]=n("span",{class:"parallel-label"},"多 Agent 并行",-1)),s(t).parallelMode?(a(),k(J,{key:0,value:s(t).parallelAgents,"onUpdate:value":l[6]||(l[6]=e=>s(t).parallelAgents=e),min:2,max:10,size:"small",class:"agent-count"},null,8,["value"])):_("",!0),s(t).parallelMode?(a(),i("span",Ye,"个 Agent")):_("",!0)])):_("",!0),n("div",Ze,[l[15]||(l[15]=n("div",{class:"example-label"},"试试这些:",-1)),(a(!0),i(x,null,b(s(t).selectedTemplate.examples,e=>(a(),i("div",{key:e,class:"example-chip",onClick:c=>B(e)},r(e),9,Xe))),128))])])):(a(),i("div",{key:2,class:"messages-area",ref_key:"messagesEl",ref:O},[(a(!0),i(x,null,b(A.value,(e,c)=>(a(),i("div",{key:c,class:I(["message-row",e.role])},[e.role==="tool"?(a(),i("div",et,[p(K,{ghost:"",size:"small"},{default:v(()=>[p(V,{class:"tool-collapse"},{header:v(()=>[p(s(Se)),g(" "+r(e.tool)+" "+r(e.status==="running"?"(执行中...)":"✓"),1)]),default:v(()=>[n("pre",tt,r(JSON.stringify(e.input,null,2)),1),e.result?(a(),i("div",st,[n("pre",at,r(typeof e.result=="string"?e.result:JSON.stringify(e.result,null,2)),1)])):_("",!0)]),_:2},1024)]),_:2},1024)])):e.role==="user"?(a(),i("div",lt,[n("div",nt,r(e.content),1)])):(a(),i("div",ot,[l[17]||(l[17]=n("div",{class:"avatar"},"AI",-1)),n("div",{class:"bubble assistant",innerHTML:s(te)(e.content)},null,8,it),e.content?.startsWith("Error:")&&!s(t).isRunning&&s(t).lastRequest?(a(),k(L,{key:0,size:"small",type:"link",onClick:l[7]||(l[7]=$=>s(t).retry())},{default:v(()=>[...l[16]||(l[16]=[g(" 重试 ",-1)])]),_:1})):_("",!0)]))],2))),128)),s(t).currentStreaming?(a(),i("div",rt,[l[18]||(l[18]=n("div",{class:"avatar"},"AI",-1)),n("div",{class:"bubble assistant streaming",innerHTML:s(te)(s(t).currentStreaming)},null,8,ct)])):_("",!0),s(t).currentQuestion?(a(),i("div",ut,[n("div",dt,r(s(t).currentQuestion.question),1),s(t).currentQuestion.choices?.length?(a(),i("div",pt,[(a(!0),i(x,null,b(s(t).currentQuestion.choices,e=>(a(),k(L,{key:e,size:"small",onClick:c=>s(t).answerQuestion(e)},{default:v(()=>[g(r(e),1)]),_:2},1032,["onClick"]))),128))])):(a(),k(Y,{key:1,placeholder:"输入回答...","enter-button":"发送",style:{"margin-top":"10px"},onSearch:s(t).answerQuestion},null,8,["onSearch"]))])):_("",!0)],512)),s(t).result?.mode==="debate"&&!s(t).isRunning?(a(),i("div",vt,[n("div",mt,[p(f,{color:R(s(t).result.verdict)},{default:v(()=>[g(r(s(t).result.verdict),1)]),_:1},8,["color"]),n("span",_t,"共识 "+r(s(t).result.consensusScore||0)+"/100",1)]),p(K,{ghost:"",size:"small"},{default:v(()=>[(a(!0),i(x,null,b(s(t).result.reviews||[],(e,c)=>(a(),k(V,{key:c,class:"review-collapse"},{header:v(()=>[p(f,{color:R(e.verdict)},{default:v(()=>[g(r(e.verdict),1)]),_:2},1032,["color"]),g(" "+r(e.role),1)]),default:v(()=>[n("div",{class:"review-body",innerHTML:s(te)(e.review)},null,8,yt)]),_:2},1024))),128))]),_:1})])):_("",!0),s(t).result&&!s(t).isRunning?(a(),i("div",ft,[s(t).result.mode==="debate"?(a(),k(f,{key:0,color:"magenta"},{default:v(()=>[...l[19]||(l[19]=[g("debate",-1)])]),_:1})):_("",!0),s(t).result.parallel?(a(),k(f,{key:1,color:"purple"},{default:v(()=>[g(r(s(t).result.subtaskCount||0)+" subtasks",1)]),_:1})):_("",!0),p(f,{color:"geekblue"},{default:v(()=>[g(r(s(t).result.iterationCount||0)+" iterations",1)]),_:1}),p(f,{color:"cyan"},{default:v(()=>[g("~"+r((s(t).result.tokenCount||0).toLocaleString())+" tokens",1)]),_:1}),s(t).result.toolsUsed?.length?(a(),k(f,{key:2,color:"green"},{default:v(()=>[g(r(s(t).result.toolsUsed.length)+" tools",1)]),_:1})):_("",!0)])):_("",!0),n("div",gt,[s(t).selectedTemplate?(a(),i("div",ht,[p(f,{color:"blue",class:"context-tag"},{default:v(()=>[(a(),k(X(P[s(t).selectedTemplate.icon]||s(H)))),g(" "+r(s(t).selectedTemplate.name),1)]),_:1}),(a(!0),i(x,null,b(s(t).files,e=>(a(),k(f,{key:e,class:"context-tag file"},{default:v(()=>[g(r(D(e)),1)]),_:2},1024))),128))])):_("",!0),n("div",kt,[p(o,{value:w.value,"onUpdate:value":l[8]||(l[8]=e=>w.value=e),placeholder:U.value,"auto-size":{minRows:1,maxRows:6},disabled:s(y).isLoading,class:"msg-input",onKeydown:re(Z(E,["exact","prevent"]),["enter"])},null,8,["value","placeholder","disabled","onKeydown"]),p(L,{type:"primary",loading:s(y).isLoading,class:"send-btn",onClick:E},{icon:v(()=>[p(s(xe))]),_:1},8,["loading"])])])])])}}},Mt=ce(wt,[["__scopeId","data-v-3ed36674"]]);export{Mt as default};
|
|
6
|
+
[用户提供的文件: ${y.value.join(", ")}]`),await e.sendMessage(m.value,c)}return{selectedTemplate:t,files:y,isRunning:w,steps:O,messages:h,result:T,agentSessionId:m,currentAgentMessages:G,currentStreaming:J,currentQuestion:V,selectTemplate:W,reset:B,addFile:E,removeFile:N,execute:f,executeDirectWs:q,sendFollowUp:Y,answerQuestion:K,loadTemplates:u,templates:j,lastRequest:S,retry:L,history:P,loadHistory:l,parallelMode:Q,parallelAgents:U,debateMode:A,debatePerspectives:R}}),Te={class:"cowork-root"},Oe={class:"template-panel"},Me={class:"template-header"},Fe={class:"template-list"},Pe=["onClick"],Re={class:"card-icon"},De={class:"card-body"},Ae={class:"card-name"},Ee={class:"card-desc"},Le={class:"card-icon"},$e={class:"drop-text"},Ie={key:0,class:"file-list"},ze={key:1,class:"history-section"},He={key:0,class:"history-list"},Qe={class:"history-summary"},Ue={class:"history-meta"},Be={class:"exec-panel"},Ne={key:0,class:"empty-state"},qe={class:"empty-icon"},Ve={class:"example-grid"},Ke=["onClick"],je={key:1,class:"ready-state"},We={class:"ready-header"},Ge={class:"ready-name"},Je={key:0,class:"parallel-toggle"},Ye={key:1,class:"parallel-hint"},Ze={class:"ready-examples"},Xe=["onClick"],et={key:0,class:"tool-msg"},tt={class:"tool-input"},st={key:0,class:"tool-result-box"},at={class:"tool-result"},lt={key:1,class:"user-msg"},nt={class:"bubble user"},ot={key:2,class:"assistant-msg"},it=["innerHTML"],rt={key:0,class:"assistant-msg"},ct=["innerHTML"],ut={key:1,class:"question-card"},dt={class:"question-text"},pt={key:0,class:"question-choices"},vt={key:3,class:"debate-panel"},mt={class:"debate-verdict"},_t={class:"consensus"},yt=["innerHTML"],ft={key:4,class:"task-stats"},gt={class:"input-area"},ht={key:0,class:"input-context"},kt={class:"input-row"},wt={__name:"Cowork",setup(j){const t=Ce(),y=F(),w=d(""),O=d(null),h=d(!1),T=d(""),m=d(!1),S=d(!1),P={FileTextOutlined:we,PlayCircleOutlined:ke,BarChartOutlined:he,SearchOutlined:ge,PictureOutlined:fe,CodeOutlined:ye,DesktopOutlined:_e,FolderOpenOutlined:le,GlobalOutlined:me,ReadOutlined:ve,SafetyCertificateOutlined:pe},Q=["把 report.docx 转成 PDF","压缩视频到 50MB","分析 CSV 生成图表","查询今天的汇率","批量压缩图片","写一个自动化脚本"],U=H(()=>y.isLoading?"等待响应中...":t.selectedTemplate?t.selectedTemplate.examples?.[0]||"描述你的需求...":"描述你想完成的任务,Agent 会帮你搞定"),A=H(()=>t.currentAgentMessages);function R(u){return u==="APPROVE"?"green":u==="REJECT"?"red":u==="ERROR"?"default":"orange"}function D(u){return u.split(/[\\/]/).pop()||u}function W(u){h.value=!1;const l=u.dataTransfer?.files;if(l)for(const f of l)t.addFile(f.path||f.name)}function B(){const u=T.value.trim();u&&(t.addFile(u),T.value="")}async function E(){const u=w.value.trim();!u||y.isLoading||(w.value="",t.agentSessionId?await t.sendFollowUp(u):await t.execute(u))}function N(u){w.value=u,ae(()=>E())}return ne([A,()=>t.currentStreaming],()=>{ae(()=>{O.value&&(O.value.scrollTop=O.value.scrollHeight)})},{deep:!0}),ie(()=>{y.loadSessions(),t.loadTemplates(),t.loadHistory()}),(u,l)=>{const f=C("a-tag"),q=C("a-input"),G=C("a-switch"),J=C("a-input-number"),V=C("a-collapse-panel"),K=C("a-collapse"),L=C("a-button"),Y=C("a-input-search"),o=C("a-textarea");return a(),i("div",Te,[n("div",Oe,[n("div",Me,[p(s(z),{class:"header-icon"}),l[9]||(l[9]=n("span",{class:"header-title"},"日常协作",-1))]),l[11]||(l[11]=n("div",{class:"template-hint"},"选择任务类型,或直接输入需求",-1)),n("div",Fe,[(a(!0),i(x,null,b(s(t).templates,e=>(a(),i("div",{key:e.id,class:I(["template-card",{active:s(t).selectedTemplate?.id===e.id}]),onClick:c=>s(t).selectTemplate(e)},[n("div",Re,[(a(),k(X(P[e.icon]||s(z))))]),n("div",De,[n("div",Ae,r(e.name),1),n("div",Ee,r(e.description),1)])],10,Pe))),128)),n("div",{class:I(["template-card free",{active:s(t).selectedTemplate===null&&m.value}]),onClick:l[0]||(l[0]=e=>{s(t).selectTemplate(null),m.value=!0})},[n("div",Le,[p(s(ue))]),l[10]||(l[10]=n("div",{class:"card-body"},[n("div",{class:"card-name"},"自由提问"),n("div",{class:"card-desc"},"任意任务,Agent 自主完成")],-1))],2)]),s(t).selectedTemplate?.acceptsFiles!==!1?(a(),i("div",{key:0,class:I(["file-zone",{dragging:h.value}]),onDragover:l[2]||(l[2]=Z(e=>h.value=!0,["prevent"])),onDragleave:l[3]||(l[3]=e=>h.value=!1),onDrop:Z(W,["prevent"])},[p(s(le),{class:"drop-icon"}),n("div",$e,r(h.value?"松开以添加文件":"拖拽文件到此处"),1),s(t).files.length?(a(),i("div",Ie,[(a(!0),i(x,null,b(s(t).files,e=>(a(),k(f,{key:e,closable:"",onClose:c=>s(t).removeFile(e),class:"file-tag"},{default:v(()=>[g(r(D(e)),1)]),_:2},1032,["onClose"]))),128))])):_("",!0),p(q,{value:T.value,"onUpdate:value":l[1]||(l[1]=e=>T.value=e),placeholder:"或输入文件路径,按 Enter 添加",size:"small",class:"path-input",onPressEnter:B},null,8,["value"])],34)):_("",!0),s(t).history.length?(a(),i("div",ze,[n("div",{class:"history-header",onClick:l[4]||(l[4]=e=>S.value=!S.value)},[p(s(de)),g(" 历史记录 ("+r(s(t).history.length)+") ",1)]),S.value?(a(),i("div",He,[(a(!0),i(x,null,b(s(t).history.slice().reverse().slice(0,20),(e,c)=>(a(),i("div",{key:c,class:I(["history-item",e.status])},[n("div",Qe,r(e.userMessage),1),n("div",Ue,[n("span",null,r(e.templateName||"自由模式"),1),n("span",null,r(e.status),1)])],2))),128))])):_("",!0)])):_("",!0)]),n("div",Be,[!s(t).agentSessionId&&!s(t).selectedTemplate?(a(),i("div",Ne,[n("div",qe,[p(s(z))]),l[12]||(l[12]=n("div",{class:"empty-title"},"选择一个任务模板开始",-1)),l[13]||(l[13]=n("div",{class:"empty-sub"},"或选择「自由提问」处理任何问题",-1)),n("div",Ve,[(a(),i(x,null,b(Q,e=>n("div",{key:e,class:"example-chip",onClick:c=>N(e)},r(e),9,Ke)),64))])])):s(t).selectedTemplate&&!s(t).agentSessionId?(a(),i("div",je,[n("div",We,[(a(),k(X(P[s(t).selectedTemplate.icon]||s(z)),{class:"ready-icon"})),n("span",Ge,r(s(t).selectedTemplate.name),1)]),s(t).selectedTemplate.parallelStrategy&&s(t).selectedTemplate.parallelStrategy!=="none"?(a(),i("div",Je,[p(G,{checked:s(t).parallelMode,"onUpdate:checked":l[5]||(l[5]=e=>s(t).parallelMode=e),size:"small"},null,8,["checked"]),l[14]||(l[14]=n("span",{class:"parallel-label"},"多 Agent 并行",-1)),s(t).parallelMode?(a(),k(J,{key:0,value:s(t).parallelAgents,"onUpdate:value":l[6]||(l[6]=e=>s(t).parallelAgents=e),min:2,max:10,size:"small",class:"agent-count"},null,8,["value"])):_("",!0),s(t).parallelMode?(a(),i("span",Ye,"个 Agent")):_("",!0)])):_("",!0),n("div",Ze,[l[15]||(l[15]=n("div",{class:"example-label"},"试试这些:",-1)),(a(!0),i(x,null,b(s(t).selectedTemplate.examples,e=>(a(),i("div",{key:e,class:"example-chip",onClick:c=>N(e)},r(e),9,Xe))),128))])])):(a(),i("div",{key:2,class:"messages-area",ref_key:"messagesEl",ref:O},[(a(!0),i(x,null,b(A.value,(e,c)=>(a(),i("div",{key:c,class:I(["message-row",e.role])},[e.role==="tool"?(a(),i("div",et,[p(K,{ghost:"",size:"small"},{default:v(()=>[p(V,{class:"tool-collapse"},{header:v(()=>[p(s(Se)),g(" "+r(e.tool)+" "+r(e.status==="running"?"(执行中...)":"✓"),1)]),default:v(()=>[n("pre",tt,r(JSON.stringify(e.input,null,2)),1),e.result?(a(),i("div",st,[n("pre",at,r(typeof e.result=="string"?e.result:JSON.stringify(e.result,null,2)),1)])):_("",!0)]),_:2},1024)]),_:2},1024)])):e.role==="user"?(a(),i("div",lt,[n("div",nt,r(e.content),1)])):(a(),i("div",ot,[l[17]||(l[17]=n("div",{class:"avatar"},"AI",-1)),n("div",{class:"bubble assistant",innerHTML:s(te)(e.content)},null,8,it),e.content?.startsWith("Error:")&&!s(t).isRunning&&s(t).lastRequest?(a(),k(L,{key:0,size:"small",type:"link",onClick:l[7]||(l[7]=$=>s(t).retry())},{default:v(()=>[...l[16]||(l[16]=[g(" 重试 ",-1)])]),_:1})):_("",!0)]))],2))),128)),s(t).currentStreaming?(a(),i("div",rt,[l[18]||(l[18]=n("div",{class:"avatar"},"AI",-1)),n("div",{class:"bubble assistant streaming",innerHTML:s(te)(s(t).currentStreaming)},null,8,ct)])):_("",!0),s(t).currentQuestion?(a(),i("div",ut,[n("div",dt,r(s(t).currentQuestion.question),1),s(t).currentQuestion.choices?.length?(a(),i("div",pt,[(a(!0),i(x,null,b(s(t).currentQuestion.choices,e=>(a(),k(L,{key:e,size:"small",onClick:c=>s(t).answerQuestion(e)},{default:v(()=>[g(r(e),1)]),_:2},1032,["onClick"]))),128))])):(a(),k(Y,{key:1,placeholder:"输入回答...","enter-button":"发送",style:{"margin-top":"10px"},onSearch:s(t).answerQuestion},null,8,["onSearch"]))])):_("",!0)],512)),s(t).result?.mode==="debate"&&!s(t).isRunning?(a(),i("div",vt,[n("div",mt,[p(f,{color:R(s(t).result.verdict)},{default:v(()=>[g(r(s(t).result.verdict),1)]),_:1},8,["color"]),n("span",_t,"共识 "+r(s(t).result.consensusScore||0)+"/100",1)]),p(K,{ghost:"",size:"small"},{default:v(()=>[(a(!0),i(x,null,b(s(t).result.reviews||[],(e,c)=>(a(),k(V,{key:c,class:"review-collapse"},{header:v(()=>[p(f,{color:R(e.verdict)},{default:v(()=>[g(r(e.verdict),1)]),_:2},1032,["color"]),g(" "+r(e.role),1)]),default:v(()=>[n("div",{class:"review-body",innerHTML:s(te)(e.review)},null,8,yt)]),_:2},1024))),128))]),_:1})])):_("",!0),s(t).result&&!s(t).isRunning?(a(),i("div",ft,[s(t).result.mode==="debate"?(a(),k(f,{key:0,color:"magenta"},{default:v(()=>[...l[19]||(l[19]=[g("debate",-1)])]),_:1})):_("",!0),s(t).result.parallel?(a(),k(f,{key:1,color:"purple"},{default:v(()=>[g(r(s(t).result.subtaskCount||0)+" subtasks",1)]),_:1})):_("",!0),p(f,{color:"geekblue"},{default:v(()=>[g(r(s(t).result.iterationCount||0)+" iterations",1)]),_:1}),p(f,{color:"cyan"},{default:v(()=>[g("~"+r((s(t).result.tokenCount||0).toLocaleString())+" tokens",1)]),_:1}),s(t).result.toolsUsed?.length?(a(),k(f,{key:2,color:"green"},{default:v(()=>[g(r(s(t).result.toolsUsed.length)+" tools",1)]),_:1})):_("",!0)])):_("",!0),n("div",gt,[s(t).selectedTemplate?(a(),i("div",ht,[p(f,{color:"blue",class:"context-tag"},{default:v(()=>[(a(),k(X(P[s(t).selectedTemplate.icon]||s(z)))),g(" "+r(s(t).selectedTemplate.name),1)]),_:1}),(a(!0),i(x,null,b(s(t).files,e=>(a(),k(f,{key:e,class:"context-tag file"},{default:v(()=>[g(r(D(e)),1)]),_:2},1024))),128))])):_("",!0),n("div",kt,[p(o,{value:w.value,"onUpdate:value":l[8]||(l[8]=e=>w.value=e),placeholder:U.value,"auto-size":{minRows:1,maxRows:6},disabled:s(y).isLoading,class:"msg-input",onKeydown:re(Z(E,["exact","prevent"]),["enter"])},null,8,["value","placeholder","disabled","onKeydown"]),p(L,{type:"primary",loading:s(y).isLoading,class:"send-btn",onClick:E},{icon:v(()=>[p(s(xe))]),_:1},8,["loading"])])])])])}}},Mt=ce(wt,[["__scopeId","data-v-3ed36674"]]);export{Mt as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{b as ae,u as le,d as _}from"./index-
|
|
1
|
+
import{b as ae,u as le,d as _}from"./index-BqsvxElz.js";import{aq as te,R as ne,x as oe}from"./icons-Q99MnhG8.js";import{o as se,M as g,R as f,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 N,Y as re,Q as L,S as C,f as P}from"./vendor-BVLz_z7V.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"}},ye={style:{color:"var(--text-secondary)","font-size":"11px","margin-top":"4px"}},he={__name:"Cron",setup(fe){const{t:e}=ae(),k=le(),T=z(!1),O=z(!1),h=z(!1),y=z([]),R=P(()=>y.value.filter(l=>l.enabled).length),B=P(()=>y.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);y.value=M(l)}catch{y.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),y.value=y.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"),Y=c("a-popconfirm"),G=c("a-table"),S=c("a-input"),w=c("a-form-item"),J=c("a-textarea"),X=c("a-switch"),Z=c("a-form"),ee=c("a-modal");return p(),g("div",null,[f("div",ce,[f("div",null,[f("h2",ie,i(n(e)("cron.title")),1),f("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:y.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:R.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(N,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(G,{key:1,columns:V.value,"data-source":y.value,pagination:{pageSize:15},size:"small"},{bodyCell:t(({column:s,record:u})=>[s.key==="name"?(p(),g(N,{key:0},[f("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:q=>H(u)},{default:t(()=>[b(i(n(e)("cron.actions.run")),1)]),_:1},8,["loading","onClick"]),a(v,{size:"small",type:"link",onClick:q=>j(u)},{default:t(()=>[b(i(u.enabled?n(e)("cron.actions.pause"):n(e)("cron.actions.enable")),1)]),_:2},1032,["onClick"]),a(Y,{title:n(e)("cron.actions.deleteConfirm"),onConfirm:q=>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(()=>[f("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"]),f("div",ye,i(n(e)("cron.modal.cronHint")),1)]),_:1},8,["label"]),a(w,{label:n(e)("cron.modal.payloadLabel"),required:""},{default:t(()=>[a(J,{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(X,{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{he as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{_ as Ie,u as He,b as Re,d as k}from"./index-BxjOmfVA.js";import{s as qe}from"./community-parser-CO25nZFt.js";import{R as Ve,aq as De,Y as ie,aU as ue,aV as de,aW as Ee,az as Je,aF as Ke,aM as ce}from"./icons-B2mcO3YM.js";import{o as We,M as m,R as f,P as i,c as s,N as o,Q as x,S as _,K as g,r as C,L as u,O as h,u as v,F as $,Y as U,f as pe,a as G}from"./vendor-Ci2pTZ_t.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 Ye(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 Qe(a){const r=B(a);return Array.isArray(r)?r.map(Ye).filter(Boolean):[]}function Xe(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 Ge(a){const r=B(a);return Array.isArray(r)?r.map(Xe).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=He(),{t:l}=Re(),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=G({fromChain:"",toChain:"",amount:null,asset:"",sender:"",recipient:""}),d=G({fromChain:"",toChain:"",amount:null,fromAsset:"",toAsset:"",counterparty:"",timeoutMs:null}),y=G({fromChain:"",toChain:"",payload:"",contract:""}),w=G({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=Qe(e.output),fe.value=Ge(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 W(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(W(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(W(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(W(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(W(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 We(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"),Y=g("a-input-number"),O=g("a-input"),Q=g("a-form"),X=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(X,{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(Q,{"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(Y,{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(X,{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(Q,{"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(Y,{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(Y,{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(X,{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(Q,{"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(X,{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(Q,{"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(Y,{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"])])}}},It=Ie(Ot,[["__scopeId","data-v-21e0fb7f"]]);export{It as default};
|
|
1
|
+
import{_ as Ie,u as He,b as Re,d as k}from"./index-BqsvxElz.js";import{s as qe}from"./community-parser-CO25nZFt.js";import{R as Ve,aq as De,Y as ie,aV as ue,aW as de,aX as Ee,az as Je,aG as Ke,aN as ce}from"./icons-Q99MnhG8.js";import{o as We,M as m,R as f,P as i,c as s,N as o,Q as x,S as _,K as g,r as C,L as u,O as h,u as v,F as $,Y as U,f as pe,a as Q}from"./vendor-BVLz_z7V.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 Xe(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 Ye(a){const r=B(a);return Array.isArray(r)?r.map(Xe).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 Qe(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)"}},zt={style:{color:"var(--text-primary)"}},Ft={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=He(),{t:l}=Re(),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=Q({fromChain:"",toChain:"",amount:null,asset:"",sender:"",recipient:""}),d=Q({fromChain:"",toChain:"",amount:null,fromAsset:"",toAsset:"",counterparty:"",timeoutMs:null}),y=Q({fromChain:"",toChain:"",payload:"",contract:""}),w=Q({fromChain:"",toChain:"",amount:null}),F=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(z=>z.id===e);return n?n.name:e||"—"}function oe(e){const n=`crosschain.statusLabels.${e}`,z=l(n);return z===n?e:z}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 ze(e){return{pending:"default",sent:"processing",delivered:"green",failed:"red"}[e]||"default"}function Fe(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,z,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=Ye(e.output),fe.value=Qe(n.output),he.value=et(z.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 W(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(W(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(W(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(W(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(W(w)){if(!w.amount||w.amount<=0){k.warning(l("crosschain.msg.amountInvalid"));return}ae.value=!0,F.value=null;try{const e=`crosschain estimate-fee ${w.fromChain} ${w.toChain} ${w.amount} --json`,{output:n}=await r.execute(e,8e3),z=lt(n);if(!z){k.error(l("crosschain.msg.feeFailed")+": "+n.slice(0,120));return}F.value=z}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 We(R),(e,n)=>{const z=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"),X=g("a-input-number"),O=g("a-input"),Y=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(z,{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(z,{type:"primary"},{icon:o(()=>[s(v(De))]),default:o(()=>[h(" "+i(e.$t("crosschain.newDropdown")),1)]),_:1})]),_:1}),s(z,{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",zt,i(L(p.toChain)),1)],64)):_("",!0),t.key==="payload"?(u(),m("span",Ft,i(Fe(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:ze(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(Y,{"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(X,{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(Y,{"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(X,{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(X,{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(Y,{"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(Y,{"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(X,{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}),F.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:F.value.fee,precision:4,suffix:F.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:F.value.breakdown.sourceFee,currency:F.value.currency})),1),f("div",null,i(e.$t("crosschain.fee_modal.destFee",{fee:F.value.breakdown.destFee,currency:F.value.currency})),1),f("div",null,i(e.$t("crosschain.fee_modal.bridgeFee",{fee:F.value.breakdown.bridgeFee,currency:F.value.currency})),1)])]),_:1})):_("",!0)]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"])])}}},It=Ie(Ot,[["__scopeId","data-v-21e0fb7f"]]);export{It as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{_ as se,u as ie,b as Se,d as D}from"./index-
|
|
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],A=_.match(/\(([^)]+)\)/),T=/\[default\]|默认|\*/.test(_);f={key:y,did:y,displayName:A?A[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"},qe={__name:"MtcVerifyDrawer",props:{open:{type:Boolean,default:!1},title:{type:String,default:"MTC 包含证明"},defaultEnvelopePath:{type:String,default:""},defaultLandmarkPath:{type:String,default:""},hint:{type:String,default:""}},emits:["update:open"],setup(s){const n=s,o=ie(),f=u(n.defaultEnvelopePath),x=u(n.defaultLandmarkPath),_=u(!1),d=u(null),y=u(""),A=q(()=>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"),Z=i("a-descriptions"),V=i("a-collapse-panel"),Q=i("a-collapse"),L=i("a-card"),G=i("a-drawer");return c(),h(G,{open:s.open,title:s.title,width:560,placement:"right","onUpdate:open":k[2]||(k[2]=K=>b.$emit("update:open",K))},{default:t(()=>[a(I,{type:"info","show-icon":"",message:A.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(O(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?O(ze):O(Ne)))),w("span",Be,r(d.value.ok?"验证通过":"验证失败"),1)]),default:t(()=>[a(Z,{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"])}}},Ze=se(qe,[["__scopeId","data-v-ee4997fa"]]),Qe={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},Ge={class:"page-title"},Xe={class:"page-sub"},Ye={key:1,style:{"text-align":"center",padding:"60px"}},et={key:0,style:{color:"#e0e0e0","font-family":"monospace","font-size":"12px"}},tt={key:1,style:{color:"var(--text-primary)"}},at={key:3,style:{color:"var(--text-secondary)","font-size":"12px"}},lt={key:0,style:{"margin-top":"12px"}},ot={style:{"font-family":"monospace",color:"#ccc","word-break":"break-all"}},nt={style:{"font-family":"monospace",color:"#888","font-size":"11px","word-break":"break-all"}},st={style:{"margin-top":"16px",display:"flex",gap:"8px","flex-wrap":"wrap"}},it={key:0,style:{"margin-top":"16px"}},dt={style:{color:"var(--text-secondary)","margin-bottom":"6px"}},rt={style:{"white-space":"pre-wrap","word-break":"break-all",color:"#52c41a","font-size":"11px",background:"var(--bg-base)",padding:"12px","border-radius":"6px",border:"1px solid var(--border-color)","max-height":"320px",overflow:"auto"}},ut={key:0,style:{"margin-top":"12px"}},ct={style:{color:"var(--text-secondary)","margin-bottom":"6px"}},pt={style:{"white-space":"pre-wrap","word-break":"break-all",color:"#52c41a","font-size":"11px",background:"var(--bg-base)",padding:"12px","border-radius":"6px",border:"1px solid var(--border-color)"}},mt={__name:"DID",setup(s){const n=ie(),{t:o}=Se(),f=u(!1),x=u(!1),_=u(!1),d=u(!1),y=u(""),A=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),Z=q(()=>[{title:o("did.cols.did"),key:"did",dataIndex:"did",ellipsis:!0},{title:o("did.cols.name"),key:"displayName",dataIndex:"displayName",width:"160px"},{title:o("did.cols.method"),key:"method",dataIndex:"method",width:"110px"},{title:o("did.cols.createdAt"),key:"createdAt",dataIndex:"createdAt",width:"180px"},{title:o("did.cols.default"),key:"isDefault",width:"90px"},{title:o("did.cols.action"),key:"action",width:"280px"}]),V=q(()=>{const e=b.value.find(p=>p.isDefault);if(!e)return o("did.stats.unsetDefault");const l=e.did;return l.length>24?l.slice(0,12)+"..."+l.slice(-8):l}),Q=q(()=>{const e=new Set(b.value.map(l=>l.method).filter(Boolean));return e.size===0?o("did.stats.noMethod"):e.size===1?[...e][0]:[...e].join(", ")});async function L(){x.value=!0;try{const{output:e}=await n.execute("did list --json",15e3);b.value=Ke(e)}catch(e){D.error(o("did.msg.loadFailed")+": "+e.message),b.value=[]}finally{x.value=!1}}async function G(){_.value=!0;try{const e=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){A.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{A.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 X=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> 生成。",X.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"),Y=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",Ge,r(e.$t("did.title")),1),w("p",Xe,r(e.$t("did.subtitle")),1)]),a(B,null,{default:t(()=>[a(p,{loading:x.value,onClick:L},{icon:t(()=>[a(O(Oe))]),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(O(Ae))]),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(O(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(O(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",Ye,[a(ge,{size:"large"})])):(c(),h($e,{key:2,columns:Z.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(O(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:A.value===S.did},{default:t(()=>[g(r(e.$t("did.actions.delete")),1)]),_:1},8,["loading"])]),_:2},1032,["title","ok-text","cancel-text","onConfirm"])]),_:2},1024)):v("",!0)]),emptyText:t(()=>[a(he,{description:e.$t("did.table.empty")},null,8,["description"])]),_:1},8,["columns","data-source","pagination"])),a(Y,{open:k.value,"onUpdate:open":l[2]||(l[2]=m=>k.value=m),title:e.$t("did.create_modal.title"),"confirm-loading":_.value,onOk:G,"ok-text":e.$t("did.create_modal.ok"),"cancel-text":e.$t("did.create_modal.cancel")},{default:t(()=>[a(ne,{"label-col":{span:6},"wrapper-col":{span:18},style:{"margin-top":"16px"}},{default:t(()=>[a(oe,{label:e.$t("did.create_modal.nameLabel")},{default:t(()=>[a(we,{value: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(Y,{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(O(je))]),default:t(()=>[g(" "+r(e.$t("did.details.viewDoc")),1)]),_:1},8,["loading"])]),P.value?(c(),F("div",it,[w("p",dt,r(e.$t("did.details.docHeader")),1),w("pre",rt,r(P.value),1)])):v("",!0)])):v("",!0)]),_:1},8,["open","title"]),a(Y,{open:z.value,"onUpdate:open":l[6]||(l[6]=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(Ze,{open:X.value,"onUpdate:open":l[7]||(l[7]=m=>X.value=m),title:ae.value,hint:le.value},null,8,["open","title","hint"])])}}},bt=se(mt,[["__scopeId","data-v-b17b31f4"]]);export{bt as default};
|
|
1
|
+
import{_ as se,u as ie,b as Se,d as D}from"./index-BqsvxElz.js";import{p as Ce}from"./mtc-parser-Cc3pB9Xm.js";import{H as de,f as ze,d as Ne,R as Ae,aq as Oe,Q as Ie,K as Me,l as je}from"./icons-Q99MnhG8.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,Z as Te,P as r,R as w,S as v,$ as Pe,f as q,K as i,o as Le,M as F}from"./vendor-BVLz_z7V.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):He(s||"")}function He(s){const n=(s||"").split(`
|
|
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 Je(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 Ue(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 Ve={style:{"margin-left":"8px"}},Be={class:"mono"},Re={class:"mono"},Ee={class:"mono"},We={class:"raw-pre"},qe={__name:"MtcVerifyDrawer",props:{open:{type:Boolean,default:!1},title:{type:String,default:"MTC 包含证明"},defaultEnvelopePath:{type:String,default:""},defaultLandmarkPath:{type:String,default:""},hint:{type:String,default:""}},emits:["update:open"],setup(s){const n=s,o=ie(),f=u(n.defaultEnvelopePath),x=u(n.defaultLandmarkPath),_=u(!1),d=u(null),y=u(""),O=q(()=>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"),J=i("a-divider"),N=i("a-tag"),C=i("a-descriptions-item"),Q=i("a-descriptions"),U=i("a-collapse-panel"),Z=i("a-collapse"),L=i("a-card"),G=i("a-drawer");return c(),h(G,{open:s.open,title:s.title,width:560,placement:"right","onUpdate:open":k[2]||(k[2]=K=>b.$emit("update:open",K))},{default:t(()=>[a(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(J),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",Ve,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",Be,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(Z,{key:0,ghost:"",style:{"margin-top":"12px"}},{default:t(()=>[a(U,{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(qe,[["__scopeId","data-v-ee4997fa"]]),Ze={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},Ge={class:"page-title"},Xe={class:"page-sub"},Ye={key:1,style:{"text-align":"center",padding:"60px"}},et={key:0,style:{color:"#e0e0e0","font-family":"monospace","font-size":"12px"}},tt={key:1,style:{color:"var(--text-primary)"}},at={key:3,style:{color:"var(--text-secondary)","font-size":"12px"}},lt={key:0,style:{"margin-top":"12px"}},ot={style:{"font-family":"monospace",color:"#ccc","word-break":"break-all"}},nt={style:{"font-family":"monospace",color:"#888","font-size":"11px","word-break":"break-all"}},st={style:{"margin-top":"16px",display:"flex",gap:"8px","flex-wrap":"wrap"}},it={key:0,style:{"margin-top":"16px"}},dt={style:{color:"var(--text-secondary)","margin-bottom":"6px"}},rt={style:{"white-space":"pre-wrap","word-break":"break-all",color:"#52c41a","font-size":"11px",background:"var(--bg-base)",padding:"12px","border-radius":"6px",border:"1px solid var(--border-color)","max-height":"320px",overflow:"auto"}},ut={key:0,style:{"margin-top":"12px"}},ct={style:{color:"var(--text-secondary)","margin-bottom":"6px"}},pt={style:{"white-space":"pre-wrap","word-break":"break-all",color:"#52c41a","font-size":"11px",background:"var(--bg-base)",padding:"12px","border-radius":"6px",border:"1px solid var(--border-color)"}},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(""),J=u(""),N=u(""),C=u(null),Q=q(()=>[{title:o("did.cols.did"),key:"did",dataIndex:"did",ellipsis:!0},{title:o("did.cols.name"),key:"displayName",dataIndex:"displayName",width:"160px"},{title:o("did.cols.method"),key:"method",dataIndex:"method",width:"110px"},{title:o("did.cols.createdAt"),key:"createdAt",dataIndex:"createdAt",width:"180px"},{title:o("did.cols.default"),key:"isDefault",width:"90px"},{title:o("did.cols.action"),key:"action",width:"280px"}]),U=q(()=>{const e=b.value.find(p=>p.isDefault);if(!e)return o("did.stats.unsetDefault");const l=e.did;return l.length>24?l.slice(0,12)+"..."+l.slice(-8):l}),Z=q(()=>{const e=new Set(b.value.map(l=>l.method).filter(Boolean));return e.size===0?o("did.stats.noMethod"):e.size===1?[...e][0]:[...e].join(", ")});async function L(){x.value=!0;try{const{output:e}=await n.execute("did list --json",15e3);b.value=Ke(e)}catch(e){D.error(o("did.msg.loadFailed")+": "+e.message),b.value=[]}finally{x.value=!1}}async function G(){_.value=!0;try{const e=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=Je(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){J.value=e.did,N.value="",C.value=null,z.value=!0}const X=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> 生成。",X.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 ${J.value} --json`,{output:p,exitCode:V}=await n.execute(l,15e3),j=Ue(p);j&&j.signature?(C.value=j,D.success(o("did.msg.signSuccess"))):D.error(o("did.msg.signFailed")+": "+(p||`exit ${V}`).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"),V=i("a-space"),j=i("a-statistic"),B=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"),Y=i("a-modal"),H=i("a-descriptions-item"),xe=i("a-descriptions"),De=i("a-textarea");return c(),F("div",null,[w("div",Ze,[w("div",null,[w("h2",Ge,r(e.$t("did.title")),1),w("p",Xe,r(e.$t("did.subtitle")),1)]),a(V,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(B,{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(B,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[a(j,{title:e.$t("did.stats.default"),value:U.value,"value-style":{color:U.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(B,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[a(j,{title:e.$t("did.stats.method"),value:Z.value,"value-style":{color:"#722ed1",fontSize:"14px"}},null,8,["title","value"])]),_:1})]),_:1}),a(R,{xs:24,sm:12,lg:6},{default:t(()=>[a(B,{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",Ye,[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(V,{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(Y,{open:k.value,"onUpdate:open":l[2]||(l[2]=m=>k.value=m),title:e.$t("did.create_modal.title"),"confirm-loading":_.value,onOk:G,"ok-text":e.$t("did.create_modal.ok"),"cancel-text":e.$t("did.create_modal.cancel")},{default:t(()=>[a(ne,{"label-col":{span:6},"wrapper-col":{span:18},style:{"margin-top":"16px"}},{default:t(()=>[a(oe,{label:e.$t("did.create_modal.nameLabel")},{default:t(()=>[a(we,{value: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(Y,{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(H,{label:e.$t("did.details.did")},{default:t(()=>[w("span",ot,r($.value.did),1)]),_:1},8,["label"]),a(H,{label:e.$t("did.details.name")},{default:t(()=>[g(r($.value.displayName||"-"),1)]),_:1},8,["label"]),a(H,{label:e.$t("did.details.method")},{default:t(()=>[a(E,{color:"blue"},{default:t(()=>[g(r($.value.method),1)]),_:1})]),_:1},8,["label"]),a(H,{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(H,{label:e.$t("did.details.createdAt")},{default:t(()=>[g(r($.value.createdAt||"-"),1)]),_:1},8,["label"]),a(H,{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(Y,{open:z.value,"onUpdate:open":l[6]||(l[6]=m=>z.value=m),title:e.$t("did.sign_modal.title",{label:J.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:X.value,"onUpdate:open":l[7]||(l[7]=m=>X.value=m),title:ae.value,hint:le.value},null,8,["open","title","hint"])])}}},bt=se(mt,[["__scopeId","data-v-b17b31f4"]]);export{bt as default};
|