chainlesschain 0.161.7 → 0.161.9
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/bin/chainlesschain.js +0 -0
- package/package.json +2 -1
- package/src/assets/web-panel/.build-hash +1 -1
- package/src/assets/web-panel/assets/{AIOps-C06IYJkC.js → AIOps-Cbnj25uU.js} +1 -1
- package/src/assets/web-panel/assets/{ActionButton-Cq4f1js5.js → ActionButton-DY69UkxV.js} +1 -1
- package/src/assets/web-panel/assets/{Analytics-DyJsowHu.js → Analytics-DUzoL75H.js} +2 -2
- package/src/assets/web-panel/assets/AppLayout-DATUppSv.js +1 -0
- package/src/assets/web-panel/assets/{AppLayout-P7jhSfLy.css → AppLayout-qr7ghxW7.css} +1 -1
- package/src/assets/web-panel/assets/{Audit-C7y4wGzh.js → Audit-CFJh6huz.js} +1 -1
- package/src/assets/web-panel/assets/{Backup-BxkJJwr5.js → Backup-CMTir4tV.js} +1 -1
- package/src/assets/web-panel/assets/{BaseInput-BraWNP3N.js → BaseInput-BaWXBDdp.js} +1 -1
- package/src/assets/web-panel/assets/{Chat-BhZPLetb.js → Chat-DjToexEx.js} +3 -3
- package/src/assets/web-panel/assets/{Checkbox-DuDAToKQ.js → Checkbox-DJnhKXhi.js} +1 -1
- package/src/assets/web-panel/assets/{Codegen-DWHT3ZCT.js → Codegen-CgsgvRJX.js} +1 -1
- package/src/assets/web-panel/assets/{Col-rZ1FbPeP.js → Col-MvMGDJAB.js} +1 -1
- package/src/assets/web-panel/assets/{Community-BHefT_qI.js → Community-q26VGOGu.js} +1 -1
- package/src/assets/web-panel/assets/{Compact-D68vLPVh.js → Compact-DyLYzWoX.js} +1 -1
- package/src/assets/web-panel/assets/{Compliance-cxmKFzWJ.js → Compliance-D_TF9eBc.js} +1 -1
- package/src/assets/web-panel/assets/{Cowork-Dzt1uT50.js → Cowork-B9bg988c.js} +3 -3
- package/src/assets/web-panel/assets/{Cron-oWxj9K9p.js → Cron-6k9vTFfd.js} +2 -2
- package/src/assets/web-panel/assets/{Crosschain-C9UdRkm2.js → Crosschain-B7fk2aHi.js} +1 -1
- package/src/assets/web-panel/assets/{DID-D5WEHKMO.js → DID-XhCfTFm2.js} +2 -2
- package/src/assets/web-panel/assets/{Dashboard-dP1_OGh-.js → Dashboard-Bqk7vtZM.js} +2 -2
- package/src/assets/web-panel/assets/{Dropdown-C55GjQPR.js → Dropdown-CDOOZGv7.js} +1 -1
- package/src/assets/web-panel/assets/{Federation-oJxrz7TD.js → Federation-NajN4oRO.js} +1 -1
- package/src/assets/web-panel/assets/{FormItemContext-CeLP5Pvz.js → FormItemContext-DgMHYlMB.js} +1 -1
- package/src/assets/web-panel/assets/{Git-CWs6CrRt.js → Git-CZC5n1Zu.js} +2 -2
- package/src/assets/web-panel/assets/{Governance-wo9Gz6OK.js → Governance-Br131eUW.js} +1 -1
- package/src/assets/web-panel/assets/{Inference-75Ob1OAF.js → Inference-BHlUfcT-.js} +1 -1
- package/src/assets/web-panel/assets/{KnowledgeGraph-DNw3Xz30.js → KnowledgeGraph-CByROhg-.js} +1 -1
- package/src/assets/web-panel/assets/{Logs-Bo7_f07I.js → Logs-D8Ghzk4B.js} +1 -1
- package/src/assets/web-panel/assets/{Marketplace-Dm0yQkoQ.js → Marketplace-CnjHPFm7.js} +1 -1
- package/src/assets/web-panel/assets/{McpTools-oh6SZgBB.js → McpTools-C_vszCBU.js} +1 -1
- package/src/assets/web-panel/assets/{Memory-DANDCrzX.js → Memory-Cl5c_8In.js} +2 -2
- package/src/assets/web-panel/assets/MobileBridge-DkkMCDx9.css +1 -0
- package/src/assets/web-panel/assets/MobileBridge-K3KwwCKl.js +3 -0
- package/src/assets/web-panel/assets/{Mtc-4D52E6FP.js → Mtc-NfZ8xzyu.js} +4 -4
- package/src/assets/web-panel/assets/{MtcAudit-BmlorrLr.js → MtcAudit-BkktYSXj.js} +1 -1
- package/src/assets/web-panel/assets/Multisig-BLRYDn7_.css +1 -0
- package/src/assets/web-panel/assets/Multisig-qP51bs1T.js +1 -0
- package/src/assets/web-panel/assets/{NLProgramming-DolGSSOm.js → NLProgramming-BhFRuXyi.js} +1 -1
- package/src/assets/web-panel/assets/{Notes-BTyTq1Qk.js → Notes-BpcAFy8i.js} +3 -3
- package/src/assets/web-panel/assets/{NotificationSettings-Db1AaWp_.js → NotificationSettings-DKNtYYeo.js} +1 -1
- package/src/assets/web-panel/assets/{Organization-DC4RfB2j.js → Organization-C61VwQEW.js} +4 -4
- package/src/assets/web-panel/assets/{Overflow-cYKtW74T.js → Overflow-WBloac1x.js} +1 -1
- package/src/assets/web-panel/assets/{P2P-CY5dBoF-.js → P2P-DGm7EvDg.js} +2 -2
- package/src/assets/web-panel/assets/{Permissions-B-U6t8Wf.js → Permissions-KFPtoOV6.js} +2 -2
- package/src/assets/web-panel/assets/{Pipeline-a2pkdq6t.js → Pipeline-CFjFtzZT.js} +1 -1
- package/src/assets/web-panel/assets/{Privacy-ClgLdkPP.js → Privacy-T_Kewe_f.js} +1 -1
- package/src/assets/web-panel/assets/{ProjectSettings-D4Fi9bEQ.js → ProjectSettings-BQl8qTPQ.js} +1 -1
- package/src/assets/web-panel/assets/{Projects-BiSWtWMm.js → Projects-xGNn4Ov9.js} +2 -2
- package/src/assets/web-panel/assets/{Providers-ydpAao66.js → Providers-ByuUztXe.js} +1 -1
- package/src/assets/web-panel/assets/{QuickAsk-Bg955QRg.js → QuickAsk-BwSXmXvL.js} +1 -1
- package/src/assets/web-panel/assets/{Recommend-BqynHnTn.js → Recommend-Cp433_5Z.js} +1 -1
- package/src/assets/web-panel/assets/{Reputation-B8xfdWQt.js → Reputation-DE_JSjyi.js} +1 -1
- package/src/assets/web-panel/assets/{Row-D4zoYiqD.js → Row-DI36Fic1.js} +1 -1
- package/src/assets/web-panel/assets/{RssFeed-BI0FPtP6.js → RssFeed-DswpSUiI.js} +3 -3
- package/src/assets/web-panel/assets/{Search-BG975ISr.js → Search-Crs2UKhh.js} +1 -1
- package/src/assets/web-panel/assets/{Security-BObRR-p6.js → Security-W8ViXXbq.js} +3 -3
- package/src/assets/web-panel/assets/{Services-B2TScn1O.js → Services-BIQdyLJM.js} +2 -2
- package/src/assets/web-panel/assets/{Skeleton-PYzlv5Fw.js → Skeleton-DDiOevKX.js} +1 -1
- package/src/assets/web-panel/assets/{Skills-DbsTF84K.js → Skills-v-Vw_jGa.js} +1 -1
- package/src/assets/web-panel/assets/{Sla-D8q9j9bo.js → Sla-B-ULmz5m.js} +1 -1
- package/src/assets/web-panel/assets/{SpeechSettings-CjjNbmVH.js → SpeechSettings--8IIPHri.js} +1 -1
- package/src/assets/web-panel/assets/{SyncSettings-UEp5lB2T.js → SyncSettings-D0QiEwJn.js} +1 -1
- package/src/assets/web-panel/assets/{Tasks-CoCW4gWI.js → Tasks-BNSR9FlM.js} +1 -1
- package/src/assets/web-panel/assets/{Templates-hd7UB-8K.js → Templates-CFVkaS-d.js} +1 -1
- package/src/assets/web-panel/assets/{Tenant-CqebAGfR.js → Tenant-quU-tldS.js} +1 -1
- package/src/assets/web-panel/assets/{Tokens-9b0DDm86.js → Tokens-DTqFjS4k.js} +1 -1
- package/src/assets/web-panel/assets/{Trigger-CG_ZXii2.js → Trigger-ZWVirxhN.js} +1 -1
- package/src/assets/web-panel/assets/{Trust-CoCtornh.js → Trust-DmaYf5tg.js} +1 -1
- package/src/assets/web-panel/assets/{UkeySign-mBEc6SBj.js → UkeySign-BeYyXtZW.js} +1 -1
- package/src/assets/web-panel/assets/{VideoEditing-41j-ZZYu.js → VideoEditing-CRdDwD9C.js} +1 -1
- package/src/assets/web-panel/assets/{Wallet-DX4iBaEj.js → Wallet-H-38f7Pv.js} +4 -4
- package/src/assets/web-panel/assets/{WebAuthn-9BlQYiNI.js → WebAuthn-CCQVzZ0W.js} +4 -4
- package/src/assets/web-panel/assets/{WorkflowEditor-BVm3icIg.js → WorkflowEditor-B1RFE2oN.js} +1 -1
- package/src/assets/web-panel/assets/{chat-D98zBL7S.js → chat-Z4UoBAeF.js} +1 -1
- package/src/assets/web-panel/assets/{colors-ARL9W9UC.js → colors-AecMhEAZ.js} +1 -1
- package/src/assets/web-panel/assets/{compact-item-MYI7UP_X.js → compact-item-Dfhm05kA.js} +1 -1
- package/src/assets/web-panel/assets/{createContext-BddTmM7g.js → createContext-C7gBVuRm.js} +1 -1
- package/src/assets/web-panel/assets/{hasIn-2OsB0OBj.js → hasIn-DQarK3iI.js} +1 -1
- package/src/assets/web-panel/assets/icons-B2mcO3YM.js +57 -0
- package/src/assets/web-panel/assets/{index-kNDK9K4y.js → index-1d6L3YWV.js} +1 -1
- package/src/assets/web-panel/assets/{index-CXMgUcC_.js → index-5I_kEh5L.js} +1 -1
- package/src/assets/web-panel/assets/{index-BA8yc-bG.js → index-5P_X26-m.js} +1 -1
- package/src/assets/web-panel/assets/{index-tSE1B4ri.js → index-78eTUfD9.js} +1 -1
- package/src/assets/web-panel/assets/{index-BIpkHBFo.js → index-B1XdBIuG.js} +1 -1
- package/src/assets/web-panel/assets/{index-BNjLDXWZ.js → index-B52lOAOU.js} +1 -1
- package/src/assets/web-panel/assets/{index-CndUS0Yo.js → index-BLYMiBRw.js} +1 -1
- package/src/assets/web-panel/assets/{index-BKl1SKpb.js → index-BxjOmfVA.js} +9 -9
- package/src/assets/web-panel/assets/{index-awm9n2jp.js → index-C-4d1ug2.js} +1 -1
- package/src/assets/web-panel/assets/{index-CtCi5cvq.js → index-C0kyGID6.js} +1 -1
- package/src/assets/web-panel/assets/{index-TepTGolv.js → index-C7nHW5ZW.js} +1 -1
- package/src/assets/web-panel/assets/{index-DK71wnJK.js → index-CCUfW7hO.js} +1 -1
- package/src/assets/web-panel/assets/{index-N9X-UOF0.js → index-CFR1Scu8.js} +1 -1
- package/src/assets/web-panel/assets/{index-DpAOSmby.js → index-CS7_x1br.js} +1 -1
- package/src/assets/web-panel/assets/{index-B7XKJHg8.js → index-Ch9ExDNs.js} +1 -1
- package/src/assets/web-panel/assets/{index-B5UMIkIp.js → index-CiVezMja.js} +1 -1
- package/src/assets/web-panel/assets/index-Cp5G30tN.js +1 -0
- package/src/assets/web-panel/assets/index-CuPmKar9.js +1 -0
- package/src/assets/web-panel/assets/{index-CuoiTv71.js → index-CxDBoEkf.js} +1 -1
- package/src/assets/web-panel/assets/{index-BhgLJAQi.js → index-Cy_80Fj7.js} +1 -1
- package/src/assets/web-panel/assets/{index-DVB0ott1.js → index-D3Pxfwcc.js} +1 -1
- package/src/assets/web-panel/assets/{index-DnL-YqLO.js → index-D4_1yL1c.js} +1 -1
- package/src/assets/web-panel/assets/{index-N8eKGGPN.js → index-D841tepe.js} +1 -1
- package/src/assets/web-panel/assets/{index-hP2fDMJo.js → index-DWbRHjgk.js} +1 -1
- package/src/assets/web-panel/assets/{index-D2lcW3-z.js → index-DX4CKtlL.js} +1 -1
- package/src/assets/web-panel/assets/{index-BP5G8FRT.js → index-DdtxWGjo.js} +2 -2
- package/src/assets/web-panel/assets/{index-BO0TQWkU.js → index-DfA9S79c.js} +1 -1
- package/src/assets/web-panel/assets/{index-BYbgYr7r.js → index-DfAZSzZc.js} +1 -1
- package/src/assets/web-panel/assets/{index-C5qBLUjM.js → index-Dkh_4r1F.js} +1 -1
- package/src/assets/web-panel/assets/{index-BSKiudeY.js → index-DtrMx44i.js} +1 -1
- package/src/assets/web-panel/assets/{index-GxbpL_A7.js → index-Dy2fLm3i.js} +1 -1
- package/src/assets/web-panel/assets/index-L6kKxFAO.js +21 -0
- package/src/assets/web-panel/assets/{index-DqCyINtK.js → index-OqY41c_z.js} +1 -1
- package/src/assets/web-panel/assets/{index-CISWdYQV.js → index-QgJGoGAK.js} +1 -1
- package/src/assets/web-panel/assets/{index-Bc-fiOB-.js → index-YJxjR7t9.js} +1 -1
- package/src/assets/web-panel/assets/{index-CHfRLYw8.js → index-aHqD7CZz.js} +1 -1
- package/src/assets/web-panel/assets/{index-BYKZplcs.js → index-d0Iy6r2J.js} +1 -1
- package/src/assets/web-panel/assets/index-eoNKQdFC.js +1 -0
- package/src/assets/web-panel/assets/{index-Dz5ro_F6.js → index-nqKLHlmq.js} +1 -1
- package/src/assets/web-panel/assets/{initDefaultProps-CJbHV9hH.js → initDefaultProps-CDOGbz6v.js} +1 -1
- package/src/assets/web-panel/assets/{markdown-xjUYbPSW.js → markdown-CsiA8-E5.js} +1 -1
- package/src/assets/web-panel/assets/{markdown-vYH_ziAO.js → markdown-Yo_c6Krv.js} +1 -1
- package/src/assets/web-panel/assets/{motion-BTVrWA7N.js → motion-ChIpIzUN.js} +1 -1
- package/src/assets/web-panel/assets/{move-CRIIhWv7.js → move-DbH3dyN8.js} +1 -1
- package/src/assets/web-panel/assets/{omit-CDcQHhGi.js → omit-BJ1K-IDI.js} +1 -1
- package/src/assets/web-panel/assets/{pickAttrs-Dplb8z8U.js → pickAttrs-B0q7EpvV.js} +1 -1
- package/src/assets/web-panel/assets/{placementArrow-CP1cLg6P.js → placementArrow-D7XkOUjs.js} +1 -1
- package/src/assets/web-panel/assets/{responsiveObserve-PFMAIMDu.js → responsiveObserve-efcdE4ju.js} +1 -1
- package/src/assets/web-panel/assets/{slide-_CVxhTa3.js → slide-BgAktMzM.js} +1 -1
- package/src/assets/web-panel/assets/{statusUtils-6j8grlgm.js → statusUtils-CV83LVbI.js} +1 -1
- package/src/assets/web-panel/assets/{styleChecker-BbC7i8Sl.js → styleChecker-D1npYi6G.js} +1 -1
- package/src/assets/web-panel/assets/{useFlexGapSupport-Ctha7v2w.js → useFlexGapSupport-DTH3yXTD.js} +1 -1
- package/src/assets/web-panel/assets/{useFs-CeTUZIh2.js → useFs-BEvSw9aX.js} +1 -1
- package/src/assets/web-panel/assets/{vnode-kefkre4N.js → vnode-Duw65sZ1.js} +1 -1
- package/src/assets/web-panel/assets/{zoom-CZjCXV_O.js → zoom-CLMtA8PG.js} +1 -1
- package/src/assets/web-panel/index.html +2 -2
- package/src/commands/marketplace.js +286 -0
- package/src/commands/multisig.js +471 -0
- package/src/commands/p2p.js +114 -7
- package/src/index.js +2 -0
- package/src/lib/multisig-runtime.js +160 -0
- package/src/lib/p2p-manager.js +96 -2
- package/src/assets/web-panel/assets/AppLayout-DSFSWtOZ.js +0 -1
- package/src/assets/web-panel/assets/icons-B2G69bhT.js +0 -57
- package/src/assets/web-panel/assets/index-BNXp47dX.js +0 -21
- package/src/assets/web-panel/assets/index-G5xmB5Af.js +0 -1
- package/src/assets/web-panel/assets/index-qbPE-_18.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{_ as ot,u as nt,b as lt,E as rt,d as g}from"./index-BKl1SKpb.js";import{s as De}from"./community-parser-CO25nZFt.js";import{R as st,ap as it,k as we,an as ut,f as ct,d as dt,aJ as pt,aK as vt}from"./icons-B2G69bhT.js";import{o as ft,M as m,R as v,P as s,c as t,N as a,Q as _,S as b,K as f,r as h,L as u,O as d,u as k,F,Y as I,$ as yt,f as Le,a as Pe}from"./vendor-Ci2pTZ_t.js";function V(i){const l=De(i);if(!l)return null;try{return JSON.parse(l)}catch{}const r=l.match(/\{[\s\S]*\}|\[[\s\S]*\]/);if(!r)return null;try{return JSON.parse(r[0])}catch{return null}}const fe=Object.freeze(["draft","active","passed","rejected","expired"]),oe=Object.freeze(["parameter_change","feature_request","policy_update","budget_allocation"]),mt=Object.freeze(["yes","no","abstain"]);function P(i,l=0){return typeof i=="number"&&Number.isFinite(i)?i:l}function R(i){if(!i)return{noDb:!1,error:""};const l=De(i),r=/Database not available/i.test(l);return{noDb:r,error:r?"Database not available":""}}function gt(i,l=0){if(!i||typeof i!="object")return null;const r=i.id||"";return r?{key:r,id:r,name:String(i.name||""),description:String(i.description||""),_idx:l}:null}function bt(i){const l=V(i);return Array.isArray(l)?l.map(gt).filter(Boolean):[]}function _t(i,l=0){if(!i||typeof i!="object")return null;const r=i.id||"";return r?{key:r,id:r,title:String(i.title||""),description:i.description??"",type:String(i.type||"feature_request"),proposerDid:i.proposerDid??"",status:String(i.status||"draft").toLowerCase(),impactLevel:i.impactLevel??"",impactAnalysis:i.impactAnalysis??null,voteYes:P(i.voteYes,0),voteNo:P(i.voteNo,0),voteAbstain:P(i.voteAbstain,0),votingStartsAt:i.votingStartsAt??null,votingEndsAt:i.votingEndsAt??null,metadata:i.metadata??null,createdAt:i.createdAt??null,_idx:l}:null}function kt(i){const l=V(i);return Array.isArray(l)?l.map(_t).filter(Boolean):[]}function $t(i,l=0){if(!i||typeof i!="object")return null;const r=i.id||"";if(!r)return null;const x=String(i.vote||"").toLowerCase();return{key:r,id:r,proposalId:String(i.proposalId||""),voterDid:String(i.voterDid||""),vote:(mt.includes(x),x),reason:i.reason??"",weight:P(i.weight,1),createdAt:i.createdAt??null,_idx:l}}function ht(i){const l=V(i);return Array.isArray(l)?l.map($t).filter(Boolean):[]}function St(i){const l=V(i);return!l||typeof l!="object"||Array.isArray(l)?null:{impactLevel:String(l.impactLevel||""),affectedComponents:Array.isArray(l.affectedComponents)?l.affectedComponents.filter(r=>typeof r=="string"):[],riskScore:P(l.riskScore,0),benefitScore:P(l.benefitScore,0),estimatedEffort:String(l.estimatedEffort||""),communitySentiment:String(l.communitySentiment||""),recommendations:Array.isArray(l.recommendations)?l.recommendations.filter(r=>typeof r=="string"):[],analyzedAt:l.analyzedAt??null}}function zt(i){const l=V(i);return!l||typeof l!="object"||Array.isArray(l)?null:{proposalId:String(l.proposalId||""),predictedOutcome:String(l.predictedOutcome||""),confidence:P(l.confidence,0),yesProb:P(l.yesProb,0),noProb:P(l.noProb,0),abstainProb:P(l.abstainProb,0),basedOn:String(l.basedOn||""),sampleSize:P(l.sampleSize,0)}}const Ct={proposalCount:0,voteCount:0,byStatus:{},byType:{}};function At(i){const l=JSON.parse(JSON.stringify(Ct));for(const x of fe)l.byStatus[x]=0;for(const x of oe)l.byType[x]=0;const r=V(i);if(!r||typeof r!="object"||Array.isArray(r))return l;if(l.proposalCount=P(r.proposalCount,0),l.voteCount=P(r.voteCount,0),r.byStatus&&typeof r.byStatus=="object")for(const[x,D]of Object.entries(r.byStatus))typeof D=="number"&&Number.isFinite(D)&&(l.byStatus[x]=D);if(r.byType&&typeof r.byType=="object")for(const[x,D]of Object.entries(r.byType))typeof D=="number"&&Number.isFinite(D)&&(l.byType[x]=D);return l}function W(i){if(i==null||i==="")return"—";const l=typeof i=="number"?new Date(i):new Date(String(i));return isNaN(l.getTime())?String(i):l.toLocaleString("zh-CN",{hour12:!1})}const xt={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},wt={class:"page-title"},Lt={class:"page-sub"},Pt={class:"type-head"},Dt={class:"type-count"},Ot={class:"type-name"},jt={class:"type-desc"},Tt={class:"filter-bar"},Ft={style:{color:"var(--text-primary)","font-weight":"500"}},Et={style:{color:"var(--text-secondary)","font-size":"11px","font-family":"monospace","margin-top":"2px"}},Nt={style:{"font-family":"monospace","font-size":"12px"}},Ut={style:{color:"#52c41a"}},It={style:{color:"#ff4d4f"}},Mt={style:{color:"var(--text-muted)"}},Rt={key:1,style:{color:"var(--text-muted)"}},Vt={key:5,style:{color:"var(--text-secondary)","font-size":"11px"}},Yt={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},Bt={style:{"margin-left":"8px",color:"var(--text-muted)","font-size":"12px"}},qt={key:0,style:{"padding-top":"8px"}},Gt={style:{"font-family":"monospace","font-size":"12px"}},Jt={key:0,style:{"font-family":"monospace","font-size":"12px"}},Kt={key:1,style:{color:"var(--text-muted)"}},Ht={key:0,style:{"white-space":"pre-wrap"}},Qt={key:1,style:{color:"var(--text-muted)"}},Wt={style:{color:"var(--text-primary)","font-size":"13px",margin:"20px 0 10px"}},Xt={style:{"margin-left":"8px",color:"var(--text-muted)","font-size":"11px"}},Zt={style:{"margin-left":"8px","font-family":"monospace","font-size":"11px",color:"var(--text-secondary)"}},ea={key:0,style:{"margin-left":"8px",color:"var(--text-secondary)","font-size":"12px"}},ta={style:{"margin-left":"auto",color:"var(--text-muted)","font-size":"11px"}},aa={key:0,style:{"padding-top":"8px"}},oa={style:{"margin-bottom":"8px"}},na={style:{color:"var(--text-secondary)","font-size":"12px"}},la={style:{color:"var(--text-secondary)","font-size":"12px"}},ra={key:0,style:{"padding-top":"8px"}},sa={style:{"text-align":"center","margin-bottom":"20px"}},ia={style:{color:"#52c41a"}},ua={style:{color:"#ff4d4f"}},ca={style:{color:"var(--text-muted)"}},da={__name:"Governance",setup(i){const l=nt(),{t:r}=lt(),x=rt.PRESENTED_IMAGE_SIMPLE,D=h(!1),ne=h(!1),le=h(!1),ye=h([]),me=h([]),A=h({proposalCount:0,voteCount:0,byStatus:{},byType:{}}),re=h({noDb:!1,error:""}),ge=h("proposals"),Y=h(""),B=h(""),X=h(!1),Z=h(!1),se=h(!1),ie=h(!1),ue=h(!1),$=Pe({title:"",type:"feature_request",proposerDid:"",description:""}),S=Pe({voterDid:"",value:"yes",weight:1,reason:""}),p=h(null),ee=h([]),w=h(null),L=h(null),Oe=Le(()=>[{title:r("governance.cols.title"),key:"title"},{title:r("governance.cols.type"),key:"type",width:"130px"},{title:r("governance.cols.status"),key:"status",width:"100px"},{title:r("governance.cols.tally"),key:"tally",width:"180px"},{title:r("governance.cols.impact"),key:"impact",width:"100px"},{title:r("governance.cols.createdAt"),key:"createdAt",width:"160px"},{title:r("governance.cols.action"),key:"action",width:"320px"}]),je=Le(()=>{let e=ye.value;return Y.value&&(e=e.filter(o=>o.status===Y.value)),B.value&&(e=e.filter(o=>o.type===B.value)),e});function te(e){const o=`governance.statusLabels.${e}`,c=r(o);return c===o?e:c}function ce(e){return{draft:"default",active:"processing",passed:"green",rejected:"red",expired:"default"}[e]||"default"}function Te(e){return{draft:"#888",active:"#1677ff",passed:"#52c41a",rejected:"#ff4d4f",expired:"#888"}[e]||"#888"}function q(e){const o=`governance.typeLabels.${e}`,c=r(o);return c===o?e:c}function G(e){return{parameter_change:"cyan",feature_request:"blue",policy_update:"purple",budget_allocation:"gold"}[e]||"default"}function Fe(e){return{parameter_change:"#13c2c2",feature_request:"#1677ff",policy_update:"#722ed1",budget_allocation:"#faad14"}[e]||"#888"}function de(e){const o=`governance.impactLabels.${e}`,c=r(o);return c===o?e:c}function be(e){return{low:"default",medium:"blue",high:"orange",critical:"red"}[e]||"default"}function Ee(e){return{low:"#888",medium:"#1677ff",high:"#faad14",critical:"#ff4d4f"}[e]||"#888"}function Ne(e){const o=`governance.voteLabels.${e}`,c=r(o);return c===o?e:c}function Ue(e){return{yes:"green",no:"red",abstain:"default"}[e]||"default"}function Ie(e){if(!e)return"—";const o=`governance.effortLabels.${e}`,c=r(o);return c===o?e:c}function Me(e){if(!e)return"—";const o=`governance.sentimentLabels.${e}`,c=r(o);return c===o?e:c}function Re(e){const o=e.voteYes+e.voteNo;return o?Math.round(e.voteYes/o*100):0}function _e(e,o){return o?Math.round(e/o*100):0}async function J(){D.value=!0,re.value={noDb:!1,error:""};try{const[e,o,c]=await Promise.all([l.execute("governance types --json",8e3).catch(()=>({output:""})),l.execute("governance list --json",1e4).catch(()=>({output:""})),l.execute("governance stats --json",8e3).catch(()=>({output:""}))]),O=[o,c].map(K=>R(K.output)).find(K=>K.noDb);O&&(re.value=O),me.value=bt(e.output),ye.value=kt(o.output),A.value=At(c.output)}catch(e){g.error(r("governance.msg.loadFailed")+": "+(e?.message||e))}finally{D.value=!1}}async function Ve(){if(!$.title.trim()){g.warning(r("governance.msg.titleEmpty"));return}ne.value=!0;try{const e=[`governance create "${$.title.trim().replace(/"/g,'\\"')}"`];e.push(`-t ${$.type}`),$.proposerDid.trim()&&e.push(`-p "${$.proposerDid.trim().replace(/"/g,'\\"')}"`),$.description.trim()&&e.push(`-d "${$.description.trim().replace(/"/g,'\\"')}"`),e.push("--json");const{output:o}=await l.execute(e.join(" "),1e4);if(R(o).noDb){g.error(r("governance.msg.needCcInit"));return}if(!/"id"/.test(o)){g.error(r("governance.msg.createFailed")+": "+o.slice(0,120));return}g.success(r("governance.msg.createSuccess")),X.value=!1,$e(),await J()}catch(e){g.error(r("governance.msg.createFailed")+": "+(e?.message||e))}finally{ne.value=!1}}async function Ye(e){await ke(`governance activate ${e.id} --json`,r("governance.msg.activated"))}async function Be(e){await ke(`governance close ${e.id} --json`,r("governance.msg.closed"))}async function ke(e,o){try{const{output:c}=await l.execute(e,1e4);if(R(c).noDb){g.error(r("governance.msg.needCcInit"));return}if(!/"id"|"proposalId"|"passed"/.test(c)){g.error(r("governance.msg.actionFailed")+": "+c.slice(0,120));return}g.success(o),await J()}catch(c){g.error(r("governance.msg.actionFailed")+": "+(c?.message||c))}}function qe(e){p.value=e,S.voterDid="",S.value="yes",S.weight=1,S.reason="",Z.value=!0}async function Ge(){if(p.value){if(!S.voterDid.trim()){g.warning(r("governance.msg.voterEmpty"));return}le.value=!0;try{const e=[`governance vote ${p.value.id}`,`"${S.voterDid.trim().replace(/"/g,'\\"')}"`,S.value,`-w ${S.weight}`];S.reason.trim()&&e.push(`-r "${S.reason.trim().replace(/"/g,'\\"')}"`),e.push("--json");const{output:o}=await l.execute(e.join(" "),8e3);if(R(o).noDb){g.error(r("governance.msg.needCcInit"));return}if(!/"id"/.test(o)){g.error(r("governance.msg.voteFailed")+": "+o.slice(0,120));return}g.success(r("governance.msg.voteSuccess")),Z.value=!1,await J()}catch(e){g.error(r("governance.msg.voteFailed")+": "+(e?.message||e))}finally{le.value=!1}}}async function Je(e){p.value=e,ee.value=[],se.value=!0;try{const{output:o}=await l.execute(`governance votes ${e.id} --json`,8e3);ee.value=ht(o)}catch{}}async function Ke(e){p.value=e,w.value=null;try{const{output:o}=await l.execute(`governance analyze ${e.id} --json`,8e3);if(R(o).noDb){g.error(r("governance.msg.needCcInit"));return}const O=St(o);if(!O){g.error(r("governance.msg.analyzeFailed")+": "+o.slice(0,120));return}w.value=O,ie.value=!0}catch(o){g.error(r("governance.msg.analyzeFailed")+": "+(o?.message||o))}}async function He(e){p.value=e,L.value=null;try{const{output:o}=await l.execute(`governance predict ${e.id} --json`,8e3);if(R(o).noDb){g.error(r("governance.msg.needCcInit"));return}const O=zt(o);if(!O){g.error(r("governance.msg.predictFailed")+": "+o.slice(0,120));return}L.value=O,ue.value=!0}catch(o){g.error(r("governance.msg.predictFailed")+": "+(o?.message||o))}}function $e(){$.title="",$.type="feature_request",$.proposerDid="",$.description=""}return ft(J),(e,o)=>{const c=f("a-button"),O=f("a-space"),K=f("a-alert"),E=f("a-statistic"),j=f("a-card"),T=f("a-col"),ae=f("a-row"),z=f("a-tag"),U=f("a-radio-button"),pe=f("a-radio-group"),M=f("a-progress"),Qe=f("a-popconfirm"),We=f("a-table"),he=f("a-tab-pane"),Xe=f("a-tabs"),ve=f("a-input"),N=f("a-form-item"),Ze=f("a-select-option"),et=f("a-select"),Se=f("a-textarea"),ze=f("a-form"),H=f("a-modal"),tt=f("a-input-number"),C=f("a-descriptions-item"),Ce=f("a-descriptions"),at=f("a-empty"),Ae=f("a-list-item"),xe=f("a-list");return u(),m("div",null,[v("div",xt,[v("div",null,[v("h2",wt,s(e.$t("governance.title")),1),v("p",Lt,s(e.$t("governance.subtitle")),1)]),t(O,null,{default:a(()=>[t(c,{loading:D.value,onClick:J},{icon:a(()=>[t(k(st))]),default:a(()=>[d(" "+s(e.$t("governance.refresh")),1)]),_:1},8,["loading"]),t(c,{type:"primary",onClick:o[0]||(o[0]=n=>X.value=!0)},{icon:a(()=>[t(k(it))]),default:a(()=>[d(" "+s(e.$t("governance.create")),1)]),_:1})]),_:1})]),re.value.noDb?(u(),_(K,{key:0,type:"info","show-icon":"",message:e.$t("governance.noDb.message"),description:e.$t("governance.noDb.description"),style:{"margin-bottom":"16px"}},null,8,["message","description"])):b("",!0),t(ae,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:a(()=>[t(T,{xs:12,sm:8,lg:5},{default:a(()=>[t(j,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[t(E,{title:e.$t("governance.stats.total"),value:A.value.proposalCount,"value-style":{color:"#1677ff",fontSize:"20px"}},{prefix:a(()=>[t(k(we))]),_:1},8,["title","value"])]),_:1})]),_:1}),t(T,{xs:12,sm:8,lg:5},{default:a(()=>[t(j,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[t(E,{title:e.$t("governance.stats.active"),value:A.value.byStatus.active||0,"value-style":{color:(A.value.byStatus.active||0)>0?"#1677ff":"#888",fontSize:"20px"}},{prefix:a(()=>[t(k(ut))]),_:1},8,["title","value","value-style"])]),_:1})]),_:1}),t(T,{xs:12,sm:8,lg:5},{default:a(()=>[t(j,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[t(E,{title:e.$t("governance.stats.passed"),value:A.value.byStatus.passed||0,"value-style":{color:"#52c41a",fontSize:"20px"}},{prefix:a(()=>[t(k(ct))]),_:1},8,["title","value"])]),_:1})]),_:1}),t(T,{xs:12,sm:8,lg:5},{default:a(()=>[t(j,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[t(E,{title:e.$t("governance.stats.rejected"),value:A.value.byStatus.rejected||0,"value-style":{color:"#ff4d4f",fontSize:"20px"}},{prefix:a(()=>[t(k(dt))]),_:1},8,["title","value"])]),_:1})]),_:1}),t(T,{xs:24,sm:8,lg:4},{default:a(()=>[t(j,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[t(E,{title:e.$t("governance.stats.votes"),value:A.value.voteCount,"value-style":{color:"#722ed1",fontSize:"20px"}},{prefix:a(()=>[t(k(pt))]),_:1},8,["title","value"])]),_:1})]),_:1})]),_:1}),t(j,{title:e.$t("governance.typesCard"),size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"20px"},"body-style":{padding:"12px 16px"}},{default:a(()=>[t(ae,{gutter:[12,12]},{default:a(()=>[(u(!0),m(F,null,I(me.value,n=>(u(),_(T,{key:n.id,xs:12,sm:12,lg:6},{default:a(()=>[v("div",{class:"type-pill",style:yt({borderLeftColor:G(n.id)})},[v("div",Pt,[t(z,{color:G(n.id),style:{"font-family":"monospace"}},{default:a(()=>[d(s(n.id),1)]),_:2},1032,["color"]),v("span",Dt,s(A.value.byType[n.id]||0),1)]),v("div",Ot,s(n.name),1),v("div",jt,s(n.description),1)],4)]),_:2},1024))),128))]),_:1})]),_:1},8,["title"]),t(Xe,{activeKey:ge.value,"onUpdate:activeKey":o[3]||(o[3]=n=>ge.value=n),class:"governance-tabs"},{default:a(()=>[t(he,{key:"proposals",tab:e.$t("governance.tabs.proposals")},{default:a(()=>[v("div",Tt,[t(pe,{value:Y.value,"onUpdate:value":o[1]||(o[1]=n=>Y.value=n),size:"small","button-style":"solid"},{default:a(()=>[t(U,{value:""},{default:a(()=>[d(s(e.$t("governance.filter.allStatuses")),1)]),_:1}),(u(!0),m(F,null,I(k(fe),n=>(u(),_(U,{key:n,value:n},{default:a(()=>[d(s(te(n)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"]),t(pe,{value:B.value,"onUpdate:value":o[2]||(o[2]=n=>B.value=n),size:"small"},{default:a(()=>[t(U,{value:""},{default:a(()=>[d(s(e.$t("governance.filter.allTypes")),1)]),_:1}),(u(!0),m(F,null,I(k(oe),n=>(u(),_(U,{key:n,value:n},{default:a(()=>[d(s(q(n)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),t(We,{columns:Oe.value,"data-source":je.value,pagination:{pageSize:20,showTotal:n=>e.$t("governance.table.totalSuffix",{n})},size:"small",loading:D.value,style:{background:"var(--bg-card)"}},{bodyCell:a(({column:n,record:y})=>[n.key==="title"?(u(),m(F,{key:0},[v("span",Ft,s(y.title||e.$t("governance.table.unnamed")),1),v("div",Et,s(y.id.slice(0,16)),1)],64)):b("",!0),n.key==="type"?(u(),_(z,{key:1,color:G(y.type),style:{"font-family":"monospace"}},{default:a(()=>[d(s(q(y.type)),1)]),_:2},1032,["color"])):b("",!0),n.key==="status"?(u(),_(z,{key:2,color:ce(y.status)},{default:a(()=>[d(s(te(y.status)),1)]),_:2},1032,["color"])):b("",!0),n.key==="tally"?(u(),m(F,{key:3},[v("span",Nt,[v("span",Ut,"+"+s(y.voteYes),1),o[17]||(o[17]=d(" / ",-1)),v("span",It,"-"+s(y.voteNo),1),o[18]||(o[18]=d(" / ",-1)),v("span",Mt,"~"+s(y.voteAbstain),1)]),y.voteYes+y.voteNo>0?(u(),_(M,{key:0,percent:Re(y),size:"small","show-info":!1,"stroke-color":y.voteYes>=y.voteNo?"#52c41a":"#ff4d4f",style:{"margin-top":"4px"}},null,8,["percent","stroke-color"])):b("",!0)],64)):b("",!0),n.key==="impact"?(u(),m(F,{key:4},[y.impactLevel?(u(),_(z,{key:0,color:be(y.impactLevel)},{default:a(()=>[d(s(de(y.impactLevel)),1)]),_:2},1032,["color"])):(u(),m("span",Rt,"—"))],64)):b("",!0),n.key==="createdAt"?(u(),m("span",Vt,s(k(W)(y.createdAt)),1)):b("",!0),n.key==="action"?(u(),m(F,{key:6},[t(c,{size:"small",type:"link",onClick:Q=>Je(y)},{default:a(()=>[d(s(e.$t("governance.actions.details")),1)]),_:1},8,["onClick"]),y.status==="draft"?(u(),_(c,{key:0,size:"small",type:"link",onClick:Q=>Ye(y)},{default:a(()=>[d(s(e.$t("governance.actions.activate")),1)]),_:1},8,["onClick"])):b("",!0),y.status==="active"?(u(),_(c,{key:1,size:"small",type:"link",style:{color:"#52c41a"},onClick:Q=>qe(y)},{default:a(()=>[d(s(e.$t("governance.actions.vote")),1)]),_:1},8,["onClick"])):b("",!0),y.status==="active"?(u(),_(Qe,{key:2,title:e.$t("governance.closeConfirm.title"),"ok-text":e.$t("governance.closeConfirm.ok"),"cancel-text":e.$t("governance.closeConfirm.cancel"),onConfirm:Q=>Be(y)},{default:a(()=>[t(c,{size:"small",type:"link",danger:""},{default:a(()=>[d(s(e.$t("governance.actions.close")),1)]),_:1})]),_:1},8,["title","ok-text","cancel-text","onConfirm"])):b("",!0),t(c,{size:"small",type:"link",onClick:Q=>Ke(y)},{default:a(()=>[d(s(e.$t("governance.actions.analyze")),1)]),_:1},8,["onClick"]),t(c,{size:"small",type:"link",onClick:Q=>He(y)},{default:a(()=>[d(s(e.$t("governance.actions.predict")),1)]),_:1},8,["onClick"])],64)):b("",!0)]),emptyText:a(()=>[v("div",Yt,[t(k(we),{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),d(" "+s(Y.value||B.value?e.$t("governance.table.emptyFiltered"):e.$t("governance.table.empty")),1)])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"]),t(he,{key:"breakdown",tab:e.$t("governance.tabs.breakdown")},{default:a(()=>[t(ae,{gutter:[16,16]},{default:a(()=>[t(T,{xs:24,lg:12},{default:a(()=>[t(j,{title:e.$t("governance.breakdown.byStatus"),size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[(u(!0),m(F,null,I(k(fe),n=>(u(),m("div",{key:n,class:"bd-row"},[t(z,{color:ce(n),style:{"min-width":"60px","text-align":"center"}},{default:a(()=>[d(s(te(n)),1)]),_:2},1032,["color"]),t(M,{percent:_e(A.value.byStatus[n]||0,A.value.proposalCount),"stroke-color":Te(n),format:()=>`${A.value.byStatus[n]||0}`,size:"small",style:{flex:"1","margin-left":"12px"}},null,8,["percent","stroke-color","format"])]))),128))]),_:1},8,["title"])]),_:1}),t(T,{xs:24,lg:12},{default:a(()=>[t(j,{title:e.$t("governance.breakdown.byType"),size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[(u(!0),m(F,null,I(k(oe),n=>(u(),m("div",{key:n,class:"bd-row"},[t(z,{color:G(n),style:{"min-width":"90px","text-align":"center"}},{default:a(()=>[d(s(q(n)),1)]),_:2},1032,["color"]),t(M,{percent:_e(A.value.byType[n]||0,A.value.proposalCount),"stroke-color":Fe(n),format:()=>`${A.value.byType[n]||0}`,size:"small",style:{flex:"1","margin-left":"12px"}},null,8,["percent","stroke-color","format"])]))),128))]),_:1},8,["title"])]),_:1})]),_:1})]),_:1},8,["tab"])]),_:1},8,["activeKey"]),t(H,{open:X.value,"onUpdate:open":o[8]||(o[8]=n=>X.value=n),title:e.$t("governance.create_modal.title"),"confirm-loading":ne.value,width:560,"ok-text":e.$t("governance.create_modal.ok"),"cancel-text":e.$t("governance.create_modal.cancel"),onOk:Ve,onCancel:$e},{default:a(()=>[t(ze,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:a(()=>[t(N,{label:e.$t("governance.create_modal.titleLabel"),required:""},{default:a(()=>[t(ve,{value:$.title,"onUpdate:value":o[4]||(o[4]=n=>$.title=n),placeholder:e.$t("governance.create_modal.titlePlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),t(N,{label:e.$t("governance.create_modal.typeLabel"),required:""},{default:a(()=>[t(et,{value:$.type,"onUpdate:value":o[5]||(o[5]=n=>$.type=n)},{default:a(()=>[(u(!0),m(F,null,I(k(oe),n=>(u(),_(Ze,{key:n,value:n},{default:a(()=>[d(s(q(n)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),_:1},8,["label"]),t(N,{label:e.$t("governance.create_modal.proposerLabel")},{default:a(()=>[t(ve,{value:$.proposerDid,"onUpdate:value":o[6]||(o[6]=n=>$.proposerDid=n),placeholder:e.$t("governance.create_modal.proposerPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),t(N,{label:e.$t("governance.create_modal.descLabel")},{default:a(()=>[t(Se,{value:$.description,"onUpdate:value":o[7]||(o[7]=n=>$.description=n),placeholder:e.$t("governance.create_modal.descPlaceholder"),"auto-size":{minRows:3,maxRows:8}},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),t(H,{open:Z.value,"onUpdate:open":o[13]||(o[13]=n=>Z.value=n),title:e.$t("governance.vote_modal.title",{title:p.value?.title||""}),"confirm-loading":le.value,width:540,"ok-text":e.$t("governance.vote_modal.ok"),"cancel-text":e.$t("governance.vote_modal.cancel"),onOk:Ge},{default:a(()=>[t(ze,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:a(()=>[t(N,{label:e.$t("governance.vote_modal.voterLabel"),required:""},{default:a(()=>[t(ve,{value:S.voterDid,"onUpdate:value":o[9]||(o[9]=n=>S.voterDid=n),placeholder:"did:key:..."},null,8,["value"])]),_:1},8,["label"]),t(N,{label:e.$t("governance.vote_modal.valueLabel"),required:""},{default:a(()=>[t(pe,{value:S.value,"onUpdate:value":o[10]||(o[10]=n=>S.value=n),"button-style":"solid"},{default:a(()=>[t(U,{value:"yes",style:{color:"#52c41a"}},{default:a(()=>[d(s(e.$t("governance.vote_modal.yes")),1)]),_:1}),t(U,{value:"no",style:{color:"#ff4d4f"}},{default:a(()=>[d(s(e.$t("governance.vote_modal.no")),1)]),_:1}),t(U,{value:"abstain"},{default:a(()=>[d(s(e.$t("governance.vote_modal.abstain")),1)]),_:1})]),_:1},8,["value"])]),_:1},8,["label"]),t(N,{label:e.$t("governance.vote_modal.weightLabel")},{default:a(()=>[t(tt,{value:S.weight,"onUpdate:value":o[11]||(o[11]=n=>S.weight=n),min:.1,step:.1,style:{width:"120px"}},null,8,["value"]),v("span",Bt,s(e.$t("governance.vote_modal.weightHint")),1)]),_:1},8,["label"]),t(N,{label:e.$t("governance.vote_modal.reasonLabel")},{default:a(()=>[t(Se,{value:S.reason,"onUpdate:value":o[12]||(o[12]=n=>S.reason=n),placeholder:e.$t("governance.vote_modal.reasonPlaceholder"),"auto-size":{minRows:2,maxRows:5}},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),t(H,{open:se.value,"onUpdate:open":o[14]||(o[14]=n=>se.value=n),title:e.$t("governance.details.title",{title:p.value?.title||""}),width:780,footer:null},{default:a(()=>[p.value?(u(),m("div",qt,[t(Ce,{column:2,size:"small",bordered:""},{default:a(()=>[t(C,{label:e.$t("governance.details.id"),span:2},{default:a(()=>[v("span",Gt,s(p.value.id),1)]),_:1},8,["label"]),t(C,{label:e.$t("governance.details.type")},{default:a(()=>[t(z,{color:G(p.value.type)},{default:a(()=>[d(s(q(p.value.type)),1)]),_:1},8,["color"])]),_:1},8,["label"]),t(C,{label:e.$t("governance.details.status")},{default:a(()=>[t(z,{color:ce(p.value.status)},{default:a(()=>[d(s(te(p.value.status)),1)]),_:1},8,["color"])]),_:1},8,["label"]),t(C,{label:e.$t("governance.details.proposer"),span:2},{default:a(()=>[p.value.proposerDid?(u(),m("span",Jt,s(p.value.proposerDid),1)):(u(),m("span",Kt,s(e.$t("governance.details.proposerUnset")),1))]),_:1},8,["label"]),t(C,{label:e.$t("governance.details.description"),span:2},{default:a(()=>[p.value.description?(u(),m("div",Ht,s(p.value.description),1)):(u(),m("span",Qt,"—"))]),_:1},8,["label"]),t(C,{label:e.$t("governance.details.tally"),span:2},{default:a(()=>[t(O,null,{default:a(()=>[t(z,{color:"green"},{default:a(()=>[d(s(e.$t("governance.details.tallyYes",{n:p.value.voteYes})),1)]),_:1}),t(z,{color:"red"},{default:a(()=>[d(s(e.$t("governance.details.tallyNo",{n:p.value.voteNo})),1)]),_:1}),t(z,null,{default:a(()=>[d(s(e.$t("governance.details.tallyAbstain",{n:p.value.voteAbstain})),1)]),_:1})]),_:1})]),_:1},8,["label"]),p.value.impactLevel?(u(),_(C,{key:0,label:e.$t("governance.details.impact")},{default:a(()=>[t(z,{color:be(p.value.impactLevel)},{default:a(()=>[d(s(de(p.value.impactLevel)),1)]),_:1},8,["color"])]),_:1},8,["label"])):b("",!0),t(C,{label:e.$t("governance.details.createdAt")},{default:a(()=>[d(s(k(W)(p.value.createdAt)),1)]),_:1},8,["label"]),p.value.votingStartsAt?(u(),_(C,{key:1,label:e.$t("governance.details.votingStartsAt")},{default:a(()=>[d(s(k(W)(p.value.votingStartsAt)),1)]),_:1},8,["label"])):b("",!0),p.value.votingEndsAt?(u(),_(C,{key:2,label:e.$t("governance.details.votingEndsAt")},{default:a(()=>[d(s(k(W)(p.value.votingEndsAt)),1)]),_:1},8,["label"])):b("",!0)]),_:1}),v("h4",Wt,s(e.$t("governance.details.votesHeader")),1),ee.value.length?(u(),_(xe,{key:1,size:"small","data-source":ee.value,pagination:{pageSize:8}},{renderItem:a(({item:n})=>[t(Ae,null,{default:a(()=>[t(z,{color:Ue(n.vote),style:{"min-width":"50px","text-align":"center"}},{default:a(()=>[d(s(Ne(n.vote)),1)]),_:2},1032,["color"]),v("span",Xt,"w="+s(n.weight),1),v("span",Zt,s(n.voterDid),1),n.reason?(u(),m("span",ea,"— "+s(n.reason),1)):b("",!0),v("span",ta,s(k(W)(n.createdAt)),1)]),_:2},1024)]),_:1},8,["data-source"])):(u(),_(at,{key:0,description:e.$t("governance.details.votesEmpty"),image:k(x)},null,8,["description","image"]))])):b("",!0)]),_:1},8,["open","title"]),t(H,{open:ie.value,"onUpdate:open":o[15]||(o[15]=n=>ie.value=n),title:e.$t("governance.analysis.title",{title:p.value?.title||""}),width:640,footer:null},{default:a(()=>[w.value?(u(),m("div",aa,[t(ae,{gutter:[12,12],style:{"margin-bottom":"16px"}},{default:a(()=>[t(T,{span:8},{default:a(()=>[t(E,{title:e.$t("governance.analysis.impactLevel"),value:de(w.value.impactLevel),"value-style":{color:Ee(w.value.impactLevel),fontSize:"16px"}},null,8,["title","value","value-style"])]),_:1}),t(T,{span:8},{default:a(()=>[t(E,{title:e.$t("governance.analysis.effort"),value:Ie(w.value.estimatedEffort),"value-style":{fontSize:"16px"}},null,8,["title","value"])]),_:1}),t(T,{span:8},{default:a(()=>[t(E,{title:e.$t("governance.analysis.sentiment"),value:Me(w.value.communitySentiment),"value-style":{fontSize:"16px"}},null,8,["title","value"])]),_:1})]),_:1}),t(j,{title:e.$t("governance.analysis.riskBenefit"),size:"small",style:{"margin-bottom":"12px"}},{default:a(()=>[v("div",oa,[v("span",na,s(e.$t("governance.analysis.riskScore")),1),t(M,{percent:Math.round(w.value.riskScore*100),"stroke-color":"#ff4d4f"},null,8,["percent"])]),v("div",null,[v("span",la,s(e.$t("governance.analysis.benefitScore")),1),t(M,{percent:Math.round(w.value.benefitScore*100),"stroke-color":"#52c41a"},null,8,["percent"])])]),_:1},8,["title"]),w.value.affectedComponents.length?(u(),_(j,{key:0,title:e.$t("governance.analysis.components"),size:"small",style:{"margin-bottom":"12px"}},{default:a(()=>[(u(!0),m(F,null,I(w.value.affectedComponents,n=>(u(),_(z,{key:n,color:"blue"},{default:a(()=>[d(s(n),1)]),_:2},1024))),128))]),_:1},8,["title"])):b("",!0),w.value.recommendations.length?(u(),_(j,{key:1,title:e.$t("governance.analysis.recommendations"),size:"small"},{default:a(()=>[t(xe,{size:"small","data-source":w.value.recommendations},{renderItem:a(({item:n})=>[t(Ae,null,{default:a(()=>[t(k(vt),{style:{color:"#faad14","margin-right":"8px"}}),d(" "+s(n),1)]),_:2},1024)]),_:1},8,["data-source"])]),_:1},8,["title"])):b("",!0)])):b("",!0)]),_:1},8,["open","title"]),t(H,{open:ue.value,"onUpdate:open":o[16]||(o[16]=n=>ue.value=n),title:e.$t("governance.prediction.title",{title:p.value?.title||""}),width:540,footer:null},{default:a(()=>[L.value?(u(),m("div",ra,[v("div",sa,[t(z,{color:L.value.predictedOutcome==="pass"?"green":"red",style:{"font-size":"16px",padding:"6px 14px"}},{default:a(()=>[d(s(L.value.predictedOutcome==="pass"?e.$t("governance.prediction.outcomePass"):e.$t("governance.prediction.outcomeReject")),1)]),_:1},8,["color"])]),t(Ce,{column:2,size:"small",bordered:""},{default:a(()=>[t(C,{label:e.$t("governance.prediction.confidence"),span:2},{default:a(()=>[t(M,{percent:Math.round(L.value.confidence*100),"stroke-color":L.value.confidence>=.6?"#52c41a":"#faad14"},null,8,["percent","stroke-color"])]),_:1},8,["label"]),t(C,{label:e.$t("governance.prediction.basedOn")},{default:a(()=>[t(z,{color:L.value.basedOn==="votes"?"blue":"orange"},{default:a(()=>[d(s(L.value.basedOn==="votes"?e.$t("governance.prediction.basedOnVotes"):e.$t("governance.prediction.basedOnHeuristic")),1)]),_:1},8,["color"])]),_:1},8,["label"]),t(C,{label:e.$t("governance.prediction.sampleSize")},{default:a(()=>[d(s(L.value.sampleSize),1)]),_:1},8,["label"]),t(C,{label:e.$t("governance.prediction.yesProb")},{default:a(()=>[v("span",ia,s((L.value.yesProb*100).toFixed(1))+"%",1)]),_:1},8,["label"]),t(C,{label:e.$t("governance.prediction.noProb")},{default:a(()=>[v("span",ua,s((L.value.noProb*100).toFixed(1))+"%",1)]),_:1},8,["label"]),t(C,{label:e.$t("governance.prediction.abstainProb"),span:2},{default:a(()=>[v("span",ca,s((L.value.abstainProb*100).toFixed(1))+"%",1)]),_:1},8,["label"])]),_:1})])):b("",!0)]),_:1},8,["open","title"])])}}},ma=ot(da,[["__scopeId","data-v-6b8682f4"]]);export{ma as default};
|
|
1
|
+
import{_ as ot,u as nt,b as lt,E as rt,d as g}from"./index-BxjOmfVA.js";import{s as De}from"./community-parser-CO25nZFt.js";import{R as st,aq as it,k as we,ao as ut,f as ct,d as dt,aL as pt,aM as vt}from"./icons-B2mcO3YM.js";import{o as ft,M as m,R as v,P as s,c as t,N as a,Q as _,S as b,K as f,r as h,L as u,O as d,u as k,F,Y as M,$ as yt,f as Le,a as Pe}from"./vendor-Ci2pTZ_t.js";function V(i){const l=De(i);if(!l)return null;try{return JSON.parse(l)}catch{}const r=l.match(/\{[\s\S]*\}|\[[\s\S]*\]/);if(!r)return null;try{return JSON.parse(r[0])}catch{return null}}const fe=Object.freeze(["draft","active","passed","rejected","expired"]),oe=Object.freeze(["parameter_change","feature_request","policy_update","budget_allocation"]),mt=Object.freeze(["yes","no","abstain"]);function P(i,l=0){return typeof i=="number"&&Number.isFinite(i)?i:l}function R(i){if(!i)return{noDb:!1,error:""};const l=De(i),r=/Database not available/i.test(l);return{noDb:r,error:r?"Database not available":""}}function gt(i,l=0){if(!i||typeof i!="object")return null;const r=i.id||"";return r?{key:r,id:r,name:String(i.name||""),description:String(i.description||""),_idx:l}:null}function bt(i){const l=V(i);return Array.isArray(l)?l.map(gt).filter(Boolean):[]}function _t(i,l=0){if(!i||typeof i!="object")return null;const r=i.id||"";return r?{key:r,id:r,title:String(i.title||""),description:i.description??"",type:String(i.type||"feature_request"),proposerDid:i.proposerDid??"",status:String(i.status||"draft").toLowerCase(),impactLevel:i.impactLevel??"",impactAnalysis:i.impactAnalysis??null,voteYes:P(i.voteYes,0),voteNo:P(i.voteNo,0),voteAbstain:P(i.voteAbstain,0),votingStartsAt:i.votingStartsAt??null,votingEndsAt:i.votingEndsAt??null,metadata:i.metadata??null,createdAt:i.createdAt??null,_idx:l}:null}function kt(i){const l=V(i);return Array.isArray(l)?l.map(_t).filter(Boolean):[]}function $t(i,l=0){if(!i||typeof i!="object")return null;const r=i.id||"";if(!r)return null;const x=String(i.vote||"").toLowerCase();return{key:r,id:r,proposalId:String(i.proposalId||""),voterDid:String(i.voterDid||""),vote:(mt.includes(x),x),reason:i.reason??"",weight:P(i.weight,1),createdAt:i.createdAt??null,_idx:l}}function ht(i){const l=V(i);return Array.isArray(l)?l.map($t).filter(Boolean):[]}function St(i){const l=V(i);return!l||typeof l!="object"||Array.isArray(l)?null:{impactLevel:String(l.impactLevel||""),affectedComponents:Array.isArray(l.affectedComponents)?l.affectedComponents.filter(r=>typeof r=="string"):[],riskScore:P(l.riskScore,0),benefitScore:P(l.benefitScore,0),estimatedEffort:String(l.estimatedEffort||""),communitySentiment:String(l.communitySentiment||""),recommendations:Array.isArray(l.recommendations)?l.recommendations.filter(r=>typeof r=="string"):[],analyzedAt:l.analyzedAt??null}}function zt(i){const l=V(i);return!l||typeof l!="object"||Array.isArray(l)?null:{proposalId:String(l.proposalId||""),predictedOutcome:String(l.predictedOutcome||""),confidence:P(l.confidence,0),yesProb:P(l.yesProb,0),noProb:P(l.noProb,0),abstainProb:P(l.abstainProb,0),basedOn:String(l.basedOn||""),sampleSize:P(l.sampleSize,0)}}const Ct={proposalCount:0,voteCount:0,byStatus:{},byType:{}};function At(i){const l=JSON.parse(JSON.stringify(Ct));for(const x of fe)l.byStatus[x]=0;for(const x of oe)l.byType[x]=0;const r=V(i);if(!r||typeof r!="object"||Array.isArray(r))return l;if(l.proposalCount=P(r.proposalCount,0),l.voteCount=P(r.voteCount,0),r.byStatus&&typeof r.byStatus=="object")for(const[x,D]of Object.entries(r.byStatus))typeof D=="number"&&Number.isFinite(D)&&(l.byStatus[x]=D);if(r.byType&&typeof r.byType=="object")for(const[x,D]of Object.entries(r.byType))typeof D=="number"&&Number.isFinite(D)&&(l.byType[x]=D);return l}function W(i){if(i==null||i==="")return"—";const l=typeof i=="number"?new Date(i):new Date(String(i));return isNaN(l.getTime())?String(i):l.toLocaleString("zh-CN",{hour12:!1})}const xt={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},wt={class:"page-title"},Lt={class:"page-sub"},Pt={class:"type-head"},Dt={class:"type-count"},Ot={class:"type-name"},jt={class:"type-desc"},Tt={class:"filter-bar"},Ft={style:{color:"var(--text-primary)","font-weight":"500"}},Et={style:{color:"var(--text-secondary)","font-size":"11px","font-family":"monospace","margin-top":"2px"}},Nt={style:{"font-family":"monospace","font-size":"12px"}},Ut={style:{color:"#52c41a"}},Mt={style:{color:"#ff4d4f"}},It={style:{color:"var(--text-muted)"}},Rt={key:1,style:{color:"var(--text-muted)"}},Vt={key:5,style:{color:"var(--text-secondary)","font-size":"11px"}},Yt={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},qt={style:{"margin-left":"8px",color:"var(--text-muted)","font-size":"12px"}},Bt={key:0,style:{"padding-top":"8px"}},Gt={style:{"font-family":"monospace","font-size":"12px"}},Jt={key:0,style:{"font-family":"monospace","font-size":"12px"}},Kt={key:1,style:{color:"var(--text-muted)"}},Ht={key:0,style:{"white-space":"pre-wrap"}},Qt={key:1,style:{color:"var(--text-muted)"}},Wt={style:{color:"var(--text-primary)","font-size":"13px",margin:"20px 0 10px"}},Xt={style:{"margin-left":"8px",color:"var(--text-muted)","font-size":"11px"}},Zt={style:{"margin-left":"8px","font-family":"monospace","font-size":"11px",color:"var(--text-secondary)"}},ea={key:0,style:{"margin-left":"8px",color:"var(--text-secondary)","font-size":"12px"}},ta={style:{"margin-left":"auto",color:"var(--text-muted)","font-size":"11px"}},aa={key:0,style:{"padding-top":"8px"}},oa={style:{"margin-bottom":"8px"}},na={style:{color:"var(--text-secondary)","font-size":"12px"}},la={style:{color:"var(--text-secondary)","font-size":"12px"}},ra={key:0,style:{"padding-top":"8px"}},sa={style:{"text-align":"center","margin-bottom":"20px"}},ia={style:{color:"#52c41a"}},ua={style:{color:"#ff4d4f"}},ca={style:{color:"var(--text-muted)"}},da={__name:"Governance",setup(i){const l=nt(),{t:r}=lt(),x=rt.PRESENTED_IMAGE_SIMPLE,D=h(!1),ne=h(!1),le=h(!1),ye=h([]),me=h([]),A=h({proposalCount:0,voteCount:0,byStatus:{},byType:{}}),re=h({noDb:!1,error:""}),ge=h("proposals"),Y=h(""),q=h(""),X=h(!1),Z=h(!1),se=h(!1),ie=h(!1),ue=h(!1),$=Pe({title:"",type:"feature_request",proposerDid:"",description:""}),S=Pe({voterDid:"",value:"yes",weight:1,reason:""}),p=h(null),ee=h([]),w=h(null),L=h(null),Oe=Le(()=>[{title:r("governance.cols.title"),key:"title"},{title:r("governance.cols.type"),key:"type",width:"130px"},{title:r("governance.cols.status"),key:"status",width:"100px"},{title:r("governance.cols.tally"),key:"tally",width:"180px"},{title:r("governance.cols.impact"),key:"impact",width:"100px"},{title:r("governance.cols.createdAt"),key:"createdAt",width:"160px"},{title:r("governance.cols.action"),key:"action",width:"320px"}]),je=Le(()=>{let e=ye.value;return Y.value&&(e=e.filter(o=>o.status===Y.value)),q.value&&(e=e.filter(o=>o.type===q.value)),e});function te(e){const o=`governance.statusLabels.${e}`,c=r(o);return c===o?e:c}function ce(e){return{draft:"default",active:"processing",passed:"green",rejected:"red",expired:"default"}[e]||"default"}function Te(e){return{draft:"#888",active:"#1677ff",passed:"#52c41a",rejected:"#ff4d4f",expired:"#888"}[e]||"#888"}function B(e){const o=`governance.typeLabels.${e}`,c=r(o);return c===o?e:c}function G(e){return{parameter_change:"cyan",feature_request:"blue",policy_update:"purple",budget_allocation:"gold"}[e]||"default"}function Fe(e){return{parameter_change:"#13c2c2",feature_request:"#1677ff",policy_update:"#722ed1",budget_allocation:"#faad14"}[e]||"#888"}function de(e){const o=`governance.impactLabels.${e}`,c=r(o);return c===o?e:c}function be(e){return{low:"default",medium:"blue",high:"orange",critical:"red"}[e]||"default"}function Ee(e){return{low:"#888",medium:"#1677ff",high:"#faad14",critical:"#ff4d4f"}[e]||"#888"}function Ne(e){const o=`governance.voteLabels.${e}`,c=r(o);return c===o?e:c}function Ue(e){return{yes:"green",no:"red",abstain:"default"}[e]||"default"}function Me(e){if(!e)return"—";const o=`governance.effortLabels.${e}`,c=r(o);return c===o?e:c}function Ie(e){if(!e)return"—";const o=`governance.sentimentLabels.${e}`,c=r(o);return c===o?e:c}function Re(e){const o=e.voteYes+e.voteNo;return o?Math.round(e.voteYes/o*100):0}function _e(e,o){return o?Math.round(e/o*100):0}async function J(){D.value=!0,re.value={noDb:!1,error:""};try{const[e,o,c]=await Promise.all([l.execute("governance types --json",8e3).catch(()=>({output:""})),l.execute("governance list --json",1e4).catch(()=>({output:""})),l.execute("governance stats --json",8e3).catch(()=>({output:""}))]),O=[o,c].map(K=>R(K.output)).find(K=>K.noDb);O&&(re.value=O),me.value=bt(e.output),ye.value=kt(o.output),A.value=At(c.output)}catch(e){g.error(r("governance.msg.loadFailed")+": "+(e?.message||e))}finally{D.value=!1}}async function Ve(){if(!$.title.trim()){g.warning(r("governance.msg.titleEmpty"));return}ne.value=!0;try{const e=[`governance create "${$.title.trim().replace(/"/g,'\\"')}"`];e.push(`-t ${$.type}`),$.proposerDid.trim()&&e.push(`-p "${$.proposerDid.trim().replace(/"/g,'\\"')}"`),$.description.trim()&&e.push(`-d "${$.description.trim().replace(/"/g,'\\"')}"`),e.push("--json");const{output:o}=await l.execute(e.join(" "),1e4);if(R(o).noDb){g.error(r("governance.msg.needCcInit"));return}if(!/"id"/.test(o)){g.error(r("governance.msg.createFailed")+": "+o.slice(0,120));return}g.success(r("governance.msg.createSuccess")),X.value=!1,$e(),await J()}catch(e){g.error(r("governance.msg.createFailed")+": "+(e?.message||e))}finally{ne.value=!1}}async function Ye(e){await ke(`governance activate ${e.id} --json`,r("governance.msg.activated"))}async function qe(e){await ke(`governance close ${e.id} --json`,r("governance.msg.closed"))}async function ke(e,o){try{const{output:c}=await l.execute(e,1e4);if(R(c).noDb){g.error(r("governance.msg.needCcInit"));return}if(!/"id"|"proposalId"|"passed"/.test(c)){g.error(r("governance.msg.actionFailed")+": "+c.slice(0,120));return}g.success(o),await J()}catch(c){g.error(r("governance.msg.actionFailed")+": "+(c?.message||c))}}function Be(e){p.value=e,S.voterDid="",S.value="yes",S.weight=1,S.reason="",Z.value=!0}async function Ge(){if(p.value){if(!S.voterDid.trim()){g.warning(r("governance.msg.voterEmpty"));return}le.value=!0;try{const e=[`governance vote ${p.value.id}`,`"${S.voterDid.trim().replace(/"/g,'\\"')}"`,S.value,`-w ${S.weight}`];S.reason.trim()&&e.push(`-r "${S.reason.trim().replace(/"/g,'\\"')}"`),e.push("--json");const{output:o}=await l.execute(e.join(" "),8e3);if(R(o).noDb){g.error(r("governance.msg.needCcInit"));return}if(!/"id"/.test(o)){g.error(r("governance.msg.voteFailed")+": "+o.slice(0,120));return}g.success(r("governance.msg.voteSuccess")),Z.value=!1,await J()}catch(e){g.error(r("governance.msg.voteFailed")+": "+(e?.message||e))}finally{le.value=!1}}}async function Je(e){p.value=e,ee.value=[],se.value=!0;try{const{output:o}=await l.execute(`governance votes ${e.id} --json`,8e3);ee.value=ht(o)}catch{}}async function Ke(e){p.value=e,w.value=null;try{const{output:o}=await l.execute(`governance analyze ${e.id} --json`,8e3);if(R(o).noDb){g.error(r("governance.msg.needCcInit"));return}const O=St(o);if(!O){g.error(r("governance.msg.analyzeFailed")+": "+o.slice(0,120));return}w.value=O,ie.value=!0}catch(o){g.error(r("governance.msg.analyzeFailed")+": "+(o?.message||o))}}async function He(e){p.value=e,L.value=null;try{const{output:o}=await l.execute(`governance predict ${e.id} --json`,8e3);if(R(o).noDb){g.error(r("governance.msg.needCcInit"));return}const O=zt(o);if(!O){g.error(r("governance.msg.predictFailed")+": "+o.slice(0,120));return}L.value=O,ue.value=!0}catch(o){g.error(r("governance.msg.predictFailed")+": "+(o?.message||o))}}function $e(){$.title="",$.type="feature_request",$.proposerDid="",$.description=""}return ft(J),(e,o)=>{const c=f("a-button"),O=f("a-space"),K=f("a-alert"),E=f("a-statistic"),j=f("a-card"),T=f("a-col"),ae=f("a-row"),z=f("a-tag"),U=f("a-radio-button"),pe=f("a-radio-group"),I=f("a-progress"),Qe=f("a-popconfirm"),We=f("a-table"),he=f("a-tab-pane"),Xe=f("a-tabs"),ve=f("a-input"),N=f("a-form-item"),Ze=f("a-select-option"),et=f("a-select"),Se=f("a-textarea"),ze=f("a-form"),H=f("a-modal"),tt=f("a-input-number"),C=f("a-descriptions-item"),Ce=f("a-descriptions"),at=f("a-empty"),Ae=f("a-list-item"),xe=f("a-list");return u(),m("div",null,[v("div",xt,[v("div",null,[v("h2",wt,s(e.$t("governance.title")),1),v("p",Lt,s(e.$t("governance.subtitle")),1)]),t(O,null,{default:a(()=>[t(c,{loading:D.value,onClick:J},{icon:a(()=>[t(k(st))]),default:a(()=>[d(" "+s(e.$t("governance.refresh")),1)]),_:1},8,["loading"]),t(c,{type:"primary",onClick:o[0]||(o[0]=n=>X.value=!0)},{icon:a(()=>[t(k(it))]),default:a(()=>[d(" "+s(e.$t("governance.create")),1)]),_:1})]),_:1})]),re.value.noDb?(u(),_(K,{key:0,type:"info","show-icon":"",message:e.$t("governance.noDb.message"),description:e.$t("governance.noDb.description"),style:{"margin-bottom":"16px"}},null,8,["message","description"])):b("",!0),t(ae,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:a(()=>[t(T,{xs:12,sm:8,lg:5},{default:a(()=>[t(j,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[t(E,{title:e.$t("governance.stats.total"),value:A.value.proposalCount,"value-style":{color:"#1677ff",fontSize:"20px"}},{prefix:a(()=>[t(k(we))]),_:1},8,["title","value"])]),_:1})]),_:1}),t(T,{xs:12,sm:8,lg:5},{default:a(()=>[t(j,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[t(E,{title:e.$t("governance.stats.active"),value:A.value.byStatus.active||0,"value-style":{color:(A.value.byStatus.active||0)>0?"#1677ff":"#888",fontSize:"20px"}},{prefix:a(()=>[t(k(ut))]),_:1},8,["title","value","value-style"])]),_:1})]),_:1}),t(T,{xs:12,sm:8,lg:5},{default:a(()=>[t(j,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[t(E,{title:e.$t("governance.stats.passed"),value:A.value.byStatus.passed||0,"value-style":{color:"#52c41a",fontSize:"20px"}},{prefix:a(()=>[t(k(ct))]),_:1},8,["title","value"])]),_:1})]),_:1}),t(T,{xs:12,sm:8,lg:5},{default:a(()=>[t(j,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[t(E,{title:e.$t("governance.stats.rejected"),value:A.value.byStatus.rejected||0,"value-style":{color:"#ff4d4f",fontSize:"20px"}},{prefix:a(()=>[t(k(dt))]),_:1},8,["title","value"])]),_:1})]),_:1}),t(T,{xs:24,sm:8,lg:4},{default:a(()=>[t(j,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[t(E,{title:e.$t("governance.stats.votes"),value:A.value.voteCount,"value-style":{color:"#722ed1",fontSize:"20px"}},{prefix:a(()=>[t(k(pt))]),_:1},8,["title","value"])]),_:1})]),_:1})]),_:1}),t(j,{title:e.$t("governance.typesCard"),size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"20px"},"body-style":{padding:"12px 16px"}},{default:a(()=>[t(ae,{gutter:[12,12]},{default:a(()=>[(u(!0),m(F,null,M(me.value,n=>(u(),_(T,{key:n.id,xs:12,sm:12,lg:6},{default:a(()=>[v("div",{class:"type-pill",style:yt({borderLeftColor:G(n.id)})},[v("div",Pt,[t(z,{color:G(n.id),style:{"font-family":"monospace"}},{default:a(()=>[d(s(n.id),1)]),_:2},1032,["color"]),v("span",Dt,s(A.value.byType[n.id]||0),1)]),v("div",Ot,s(n.name),1),v("div",jt,s(n.description),1)],4)]),_:2},1024))),128))]),_:1})]),_:1},8,["title"]),t(Xe,{activeKey:ge.value,"onUpdate:activeKey":o[3]||(o[3]=n=>ge.value=n),class:"governance-tabs"},{default:a(()=>[t(he,{key:"proposals",tab:e.$t("governance.tabs.proposals")},{default:a(()=>[v("div",Tt,[t(pe,{value:Y.value,"onUpdate:value":o[1]||(o[1]=n=>Y.value=n),size:"small","button-style":"solid"},{default:a(()=>[t(U,{value:""},{default:a(()=>[d(s(e.$t("governance.filter.allStatuses")),1)]),_:1}),(u(!0),m(F,null,M(k(fe),n=>(u(),_(U,{key:n,value:n},{default:a(()=>[d(s(te(n)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"]),t(pe,{value:q.value,"onUpdate:value":o[2]||(o[2]=n=>q.value=n),size:"small"},{default:a(()=>[t(U,{value:""},{default:a(()=>[d(s(e.$t("governance.filter.allTypes")),1)]),_:1}),(u(!0),m(F,null,M(k(oe),n=>(u(),_(U,{key:n,value:n},{default:a(()=>[d(s(B(n)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),t(We,{columns:Oe.value,"data-source":je.value,pagination:{pageSize:20,showTotal:n=>e.$t("governance.table.totalSuffix",{n})},size:"small",loading:D.value,style:{background:"var(--bg-card)"}},{bodyCell:a(({column:n,record:y})=>[n.key==="title"?(u(),m(F,{key:0},[v("span",Ft,s(y.title||e.$t("governance.table.unnamed")),1),v("div",Et,s(y.id.slice(0,16)),1)],64)):b("",!0),n.key==="type"?(u(),_(z,{key:1,color:G(y.type),style:{"font-family":"monospace"}},{default:a(()=>[d(s(B(y.type)),1)]),_:2},1032,["color"])):b("",!0),n.key==="status"?(u(),_(z,{key:2,color:ce(y.status)},{default:a(()=>[d(s(te(y.status)),1)]),_:2},1032,["color"])):b("",!0),n.key==="tally"?(u(),m(F,{key:3},[v("span",Nt,[v("span",Ut,"+"+s(y.voteYes),1),o[17]||(o[17]=d(" / ",-1)),v("span",Mt,"-"+s(y.voteNo),1),o[18]||(o[18]=d(" / ",-1)),v("span",It,"~"+s(y.voteAbstain),1)]),y.voteYes+y.voteNo>0?(u(),_(I,{key:0,percent:Re(y),size:"small","show-info":!1,"stroke-color":y.voteYes>=y.voteNo?"#52c41a":"#ff4d4f",style:{"margin-top":"4px"}},null,8,["percent","stroke-color"])):b("",!0)],64)):b("",!0),n.key==="impact"?(u(),m(F,{key:4},[y.impactLevel?(u(),_(z,{key:0,color:be(y.impactLevel)},{default:a(()=>[d(s(de(y.impactLevel)),1)]),_:2},1032,["color"])):(u(),m("span",Rt,"—"))],64)):b("",!0),n.key==="createdAt"?(u(),m("span",Vt,s(k(W)(y.createdAt)),1)):b("",!0),n.key==="action"?(u(),m(F,{key:6},[t(c,{size:"small",type:"link",onClick:Q=>Je(y)},{default:a(()=>[d(s(e.$t("governance.actions.details")),1)]),_:1},8,["onClick"]),y.status==="draft"?(u(),_(c,{key:0,size:"small",type:"link",onClick:Q=>Ye(y)},{default:a(()=>[d(s(e.$t("governance.actions.activate")),1)]),_:1},8,["onClick"])):b("",!0),y.status==="active"?(u(),_(c,{key:1,size:"small",type:"link",style:{color:"#52c41a"},onClick:Q=>Be(y)},{default:a(()=>[d(s(e.$t("governance.actions.vote")),1)]),_:1},8,["onClick"])):b("",!0),y.status==="active"?(u(),_(Qe,{key:2,title:e.$t("governance.closeConfirm.title"),"ok-text":e.$t("governance.closeConfirm.ok"),"cancel-text":e.$t("governance.closeConfirm.cancel"),onConfirm:Q=>qe(y)},{default:a(()=>[t(c,{size:"small",type:"link",danger:""},{default:a(()=>[d(s(e.$t("governance.actions.close")),1)]),_:1})]),_:1},8,["title","ok-text","cancel-text","onConfirm"])):b("",!0),t(c,{size:"small",type:"link",onClick:Q=>Ke(y)},{default:a(()=>[d(s(e.$t("governance.actions.analyze")),1)]),_:1},8,["onClick"]),t(c,{size:"small",type:"link",onClick:Q=>He(y)},{default:a(()=>[d(s(e.$t("governance.actions.predict")),1)]),_:1},8,["onClick"])],64)):b("",!0)]),emptyText:a(()=>[v("div",Yt,[t(k(we),{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),d(" "+s(Y.value||q.value?e.$t("governance.table.emptyFiltered"):e.$t("governance.table.empty")),1)])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"]),t(he,{key:"breakdown",tab:e.$t("governance.tabs.breakdown")},{default:a(()=>[t(ae,{gutter:[16,16]},{default:a(()=>[t(T,{xs:24,lg:12},{default:a(()=>[t(j,{title:e.$t("governance.breakdown.byStatus"),size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[(u(!0),m(F,null,M(k(fe),n=>(u(),m("div",{key:n,class:"bd-row"},[t(z,{color:ce(n),style:{"min-width":"60px","text-align":"center"}},{default:a(()=>[d(s(te(n)),1)]),_:2},1032,["color"]),t(I,{percent:_e(A.value.byStatus[n]||0,A.value.proposalCount),"stroke-color":Te(n),format:()=>`${A.value.byStatus[n]||0}`,size:"small",style:{flex:"1","margin-left":"12px"}},null,8,["percent","stroke-color","format"])]))),128))]),_:1},8,["title"])]),_:1}),t(T,{xs:24,lg:12},{default:a(()=>[t(j,{title:e.$t("governance.breakdown.byType"),size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[(u(!0),m(F,null,M(k(oe),n=>(u(),m("div",{key:n,class:"bd-row"},[t(z,{color:G(n),style:{"min-width":"90px","text-align":"center"}},{default:a(()=>[d(s(B(n)),1)]),_:2},1032,["color"]),t(I,{percent:_e(A.value.byType[n]||0,A.value.proposalCount),"stroke-color":Fe(n),format:()=>`${A.value.byType[n]||0}`,size:"small",style:{flex:"1","margin-left":"12px"}},null,8,["percent","stroke-color","format"])]))),128))]),_:1},8,["title"])]),_:1})]),_:1})]),_:1},8,["tab"])]),_:1},8,["activeKey"]),t(H,{open:X.value,"onUpdate:open":o[8]||(o[8]=n=>X.value=n),title:e.$t("governance.create_modal.title"),"confirm-loading":ne.value,width:560,"ok-text":e.$t("governance.create_modal.ok"),"cancel-text":e.$t("governance.create_modal.cancel"),onOk:Ve,onCancel:$e},{default:a(()=>[t(ze,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:a(()=>[t(N,{label:e.$t("governance.create_modal.titleLabel"),required:""},{default:a(()=>[t(ve,{value:$.title,"onUpdate:value":o[4]||(o[4]=n=>$.title=n),placeholder:e.$t("governance.create_modal.titlePlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),t(N,{label:e.$t("governance.create_modal.typeLabel"),required:""},{default:a(()=>[t(et,{value:$.type,"onUpdate:value":o[5]||(o[5]=n=>$.type=n)},{default:a(()=>[(u(!0),m(F,null,M(k(oe),n=>(u(),_(Ze,{key:n,value:n},{default:a(()=>[d(s(B(n)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),_:1},8,["label"]),t(N,{label:e.$t("governance.create_modal.proposerLabel")},{default:a(()=>[t(ve,{value:$.proposerDid,"onUpdate:value":o[6]||(o[6]=n=>$.proposerDid=n),placeholder:e.$t("governance.create_modal.proposerPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),t(N,{label:e.$t("governance.create_modal.descLabel")},{default:a(()=>[t(Se,{value:$.description,"onUpdate:value":o[7]||(o[7]=n=>$.description=n),placeholder:e.$t("governance.create_modal.descPlaceholder"),"auto-size":{minRows:3,maxRows:8}},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),t(H,{open:Z.value,"onUpdate:open":o[13]||(o[13]=n=>Z.value=n),title:e.$t("governance.vote_modal.title",{title:p.value?.title||""}),"confirm-loading":le.value,width:540,"ok-text":e.$t("governance.vote_modal.ok"),"cancel-text":e.$t("governance.vote_modal.cancel"),onOk:Ge},{default:a(()=>[t(ze,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:a(()=>[t(N,{label:e.$t("governance.vote_modal.voterLabel"),required:""},{default:a(()=>[t(ve,{value:S.voterDid,"onUpdate:value":o[9]||(o[9]=n=>S.voterDid=n),placeholder:"did:key:..."},null,8,["value"])]),_:1},8,["label"]),t(N,{label:e.$t("governance.vote_modal.valueLabel"),required:""},{default:a(()=>[t(pe,{value:S.value,"onUpdate:value":o[10]||(o[10]=n=>S.value=n),"button-style":"solid"},{default:a(()=>[t(U,{value:"yes",style:{color:"#52c41a"}},{default:a(()=>[d(s(e.$t("governance.vote_modal.yes")),1)]),_:1}),t(U,{value:"no",style:{color:"#ff4d4f"}},{default:a(()=>[d(s(e.$t("governance.vote_modal.no")),1)]),_:1}),t(U,{value:"abstain"},{default:a(()=>[d(s(e.$t("governance.vote_modal.abstain")),1)]),_:1})]),_:1},8,["value"])]),_:1},8,["label"]),t(N,{label:e.$t("governance.vote_modal.weightLabel")},{default:a(()=>[t(tt,{value:S.weight,"onUpdate:value":o[11]||(o[11]=n=>S.weight=n),min:.1,step:.1,style:{width:"120px"}},null,8,["value"]),v("span",qt,s(e.$t("governance.vote_modal.weightHint")),1)]),_:1},8,["label"]),t(N,{label:e.$t("governance.vote_modal.reasonLabel")},{default:a(()=>[t(Se,{value:S.reason,"onUpdate:value":o[12]||(o[12]=n=>S.reason=n),placeholder:e.$t("governance.vote_modal.reasonPlaceholder"),"auto-size":{minRows:2,maxRows:5}},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),t(H,{open:se.value,"onUpdate:open":o[14]||(o[14]=n=>se.value=n),title:e.$t("governance.details.title",{title:p.value?.title||""}),width:780,footer:null},{default:a(()=>[p.value?(u(),m("div",Bt,[t(Ce,{column:2,size:"small",bordered:""},{default:a(()=>[t(C,{label:e.$t("governance.details.id"),span:2},{default:a(()=>[v("span",Gt,s(p.value.id),1)]),_:1},8,["label"]),t(C,{label:e.$t("governance.details.type")},{default:a(()=>[t(z,{color:G(p.value.type)},{default:a(()=>[d(s(B(p.value.type)),1)]),_:1},8,["color"])]),_:1},8,["label"]),t(C,{label:e.$t("governance.details.status")},{default:a(()=>[t(z,{color:ce(p.value.status)},{default:a(()=>[d(s(te(p.value.status)),1)]),_:1},8,["color"])]),_:1},8,["label"]),t(C,{label:e.$t("governance.details.proposer"),span:2},{default:a(()=>[p.value.proposerDid?(u(),m("span",Jt,s(p.value.proposerDid),1)):(u(),m("span",Kt,s(e.$t("governance.details.proposerUnset")),1))]),_:1},8,["label"]),t(C,{label:e.$t("governance.details.description"),span:2},{default:a(()=>[p.value.description?(u(),m("div",Ht,s(p.value.description),1)):(u(),m("span",Qt,"—"))]),_:1},8,["label"]),t(C,{label:e.$t("governance.details.tally"),span:2},{default:a(()=>[t(O,null,{default:a(()=>[t(z,{color:"green"},{default:a(()=>[d(s(e.$t("governance.details.tallyYes",{n:p.value.voteYes})),1)]),_:1}),t(z,{color:"red"},{default:a(()=>[d(s(e.$t("governance.details.tallyNo",{n:p.value.voteNo})),1)]),_:1}),t(z,null,{default:a(()=>[d(s(e.$t("governance.details.tallyAbstain",{n:p.value.voteAbstain})),1)]),_:1})]),_:1})]),_:1},8,["label"]),p.value.impactLevel?(u(),_(C,{key:0,label:e.$t("governance.details.impact")},{default:a(()=>[t(z,{color:be(p.value.impactLevel)},{default:a(()=>[d(s(de(p.value.impactLevel)),1)]),_:1},8,["color"])]),_:1},8,["label"])):b("",!0),t(C,{label:e.$t("governance.details.createdAt")},{default:a(()=>[d(s(k(W)(p.value.createdAt)),1)]),_:1},8,["label"]),p.value.votingStartsAt?(u(),_(C,{key:1,label:e.$t("governance.details.votingStartsAt")},{default:a(()=>[d(s(k(W)(p.value.votingStartsAt)),1)]),_:1},8,["label"])):b("",!0),p.value.votingEndsAt?(u(),_(C,{key:2,label:e.$t("governance.details.votingEndsAt")},{default:a(()=>[d(s(k(W)(p.value.votingEndsAt)),1)]),_:1},8,["label"])):b("",!0)]),_:1}),v("h4",Wt,s(e.$t("governance.details.votesHeader")),1),ee.value.length?(u(),_(xe,{key:1,size:"small","data-source":ee.value,pagination:{pageSize:8}},{renderItem:a(({item:n})=>[t(Ae,null,{default:a(()=>[t(z,{color:Ue(n.vote),style:{"min-width":"50px","text-align":"center"}},{default:a(()=>[d(s(Ne(n.vote)),1)]),_:2},1032,["color"]),v("span",Xt,"w="+s(n.weight),1),v("span",Zt,s(n.voterDid),1),n.reason?(u(),m("span",ea,"— "+s(n.reason),1)):b("",!0),v("span",ta,s(k(W)(n.createdAt)),1)]),_:2},1024)]),_:1},8,["data-source"])):(u(),_(at,{key:0,description:e.$t("governance.details.votesEmpty"),image:k(x)},null,8,["description","image"]))])):b("",!0)]),_:1},8,["open","title"]),t(H,{open:ie.value,"onUpdate:open":o[15]||(o[15]=n=>ie.value=n),title:e.$t("governance.analysis.title",{title:p.value?.title||""}),width:640,footer:null},{default:a(()=>[w.value?(u(),m("div",aa,[t(ae,{gutter:[12,12],style:{"margin-bottom":"16px"}},{default:a(()=>[t(T,{span:8},{default:a(()=>[t(E,{title:e.$t("governance.analysis.impactLevel"),value:de(w.value.impactLevel),"value-style":{color:Ee(w.value.impactLevel),fontSize:"16px"}},null,8,["title","value","value-style"])]),_:1}),t(T,{span:8},{default:a(()=>[t(E,{title:e.$t("governance.analysis.effort"),value:Me(w.value.estimatedEffort),"value-style":{fontSize:"16px"}},null,8,["title","value"])]),_:1}),t(T,{span:8},{default:a(()=>[t(E,{title:e.$t("governance.analysis.sentiment"),value:Ie(w.value.communitySentiment),"value-style":{fontSize:"16px"}},null,8,["title","value"])]),_:1})]),_:1}),t(j,{title:e.$t("governance.analysis.riskBenefit"),size:"small",style:{"margin-bottom":"12px"}},{default:a(()=>[v("div",oa,[v("span",na,s(e.$t("governance.analysis.riskScore")),1),t(I,{percent:Math.round(w.value.riskScore*100),"stroke-color":"#ff4d4f"},null,8,["percent"])]),v("div",null,[v("span",la,s(e.$t("governance.analysis.benefitScore")),1),t(I,{percent:Math.round(w.value.benefitScore*100),"stroke-color":"#52c41a"},null,8,["percent"])])]),_:1},8,["title"]),w.value.affectedComponents.length?(u(),_(j,{key:0,title:e.$t("governance.analysis.components"),size:"small",style:{"margin-bottom":"12px"}},{default:a(()=>[(u(!0),m(F,null,M(w.value.affectedComponents,n=>(u(),_(z,{key:n,color:"blue"},{default:a(()=>[d(s(n),1)]),_:2},1024))),128))]),_:1},8,["title"])):b("",!0),w.value.recommendations.length?(u(),_(j,{key:1,title:e.$t("governance.analysis.recommendations"),size:"small"},{default:a(()=>[t(xe,{size:"small","data-source":w.value.recommendations},{renderItem:a(({item:n})=>[t(Ae,null,{default:a(()=>[t(k(vt),{style:{color:"#faad14","margin-right":"8px"}}),d(" "+s(n),1)]),_:2},1024)]),_:1},8,["data-source"])]),_:1},8,["title"])):b("",!0)])):b("",!0)]),_:1},8,["open","title"]),t(H,{open:ue.value,"onUpdate:open":o[16]||(o[16]=n=>ue.value=n),title:e.$t("governance.prediction.title",{title:p.value?.title||""}),width:540,footer:null},{default:a(()=>[L.value?(u(),m("div",ra,[v("div",sa,[t(z,{color:L.value.predictedOutcome==="pass"?"green":"red",style:{"font-size":"16px",padding:"6px 14px"}},{default:a(()=>[d(s(L.value.predictedOutcome==="pass"?e.$t("governance.prediction.outcomePass"):e.$t("governance.prediction.outcomeReject")),1)]),_:1},8,["color"])]),t(Ce,{column:2,size:"small",bordered:""},{default:a(()=>[t(C,{label:e.$t("governance.prediction.confidence"),span:2},{default:a(()=>[t(I,{percent:Math.round(L.value.confidence*100),"stroke-color":L.value.confidence>=.6?"#52c41a":"#faad14"},null,8,["percent","stroke-color"])]),_:1},8,["label"]),t(C,{label:e.$t("governance.prediction.basedOn")},{default:a(()=>[t(z,{color:L.value.basedOn==="votes"?"blue":"orange"},{default:a(()=>[d(s(L.value.basedOn==="votes"?e.$t("governance.prediction.basedOnVotes"):e.$t("governance.prediction.basedOnHeuristic")),1)]),_:1},8,["color"])]),_:1},8,["label"]),t(C,{label:e.$t("governance.prediction.sampleSize")},{default:a(()=>[d(s(L.value.sampleSize),1)]),_:1},8,["label"]),t(C,{label:e.$t("governance.prediction.yesProb")},{default:a(()=>[v("span",ia,s((L.value.yesProb*100).toFixed(1))+"%",1)]),_:1},8,["label"]),t(C,{label:e.$t("governance.prediction.noProb")},{default:a(()=>[v("span",ua,s((L.value.noProb*100).toFixed(1))+"%",1)]),_:1},8,["label"]),t(C,{label:e.$t("governance.prediction.abstainProb"),span:2},{default:a(()=>[v("span",ca,s((L.value.abstainProb*100).toFixed(1))+"%",1)]),_:1},8,["label"])]),_:1})])):b("",!0)]),_:1},8,["open","title"])])}}},ma=ot(da,[["__scopeId","data-v-6b8682f4"]]);export{ma as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{_ as He,b as Ee,u as Je,d as y}from"./index-BKl1SKpb.js";import{s as Ke}from"./community-parser-CO25nZFt.js";import{R as Ve,ap as Ge,n as Z,h as ee,f as We,w as Ye}from"./icons-B2G69bhT.js";import{o as Qe,M as m,R as z,P as u,u as o,c as a,N as n,Q as x,S as g,K as v,r as h,L as c,O as p,F as C,Y as I,$ as Xe,f as K,a as ge}from"./vendor-Ci2pTZ_t.js";function te(l){const e=Ke(l);if(!e)return null;try{return JSON.parse(e)}catch{}const r=e.match(/\{[\s\S]*\}|\[[\s\S]*\]/);if(!r)return null;try{return JSON.parse(r[0])}catch{return null}}const ve=Object.freeze(["online","offline","busy","degraded"]),Ze=Object.freeze(["queued","dispatched","running","complete","failed"]),ke=Object.freeze(["standard","encrypted","federated"]);function w(l,e=0){return typeof l=="number"&&Number.isFinite(l)?l:e}function et(l){if(Array.isArray(l))return l.filter(e=>typeof e=="string");if(typeof l=="string")try{const e=JSON.parse(l);if(Array.isArray(e))return e.filter(r=>typeof r=="string")}catch{}return[]}function tt(l,e=0){if(!l||typeof l!="object")return null;const r=l.id||"";return r?{key:r,id:r,nodeId:l.nodeId??l.node_id??"",endpoint:l.endpoint||"",capabilities:et(l.capabilities),gpuMemoryMb:w(l.gpuMemoryMb??l.gpu_memory_mb,0),status:String(l.status||"offline").toLowerCase(),lastHeartbeat:l.lastHeartbeat??l.last_heartbeat??null,taskCount:w(l.taskCount??l.task_count,0),createdAt:l.createdAt??l.created_at??null,_idx:e}:null}function nt(l){const e=te(l);return Array.isArray(e)?e.map(tt).filter(Boolean):[]}function at(l,e=0){if(!l||typeof l!="object")return null;const r=l.id||"";return r?{key:r,id:r,model:String(l.model||""),input:l.input??"",output:l.output??"",privacyMode:String(l.privacyMode??l.privacy_mode??"standard").toLowerCase(),priority:w(l.priority,5),assignedNode:l.assignedNode??l.assigned_node??null,status:String(l.status||"queued").toLowerCase(),durationMs:l.durationMs??l.duration_ms??null,createdAt:l.createdAt??l.created_at??null,completedAt:l.completedAt??l.completed_at??null,_idx:e}:null}function ot(l){const e=te(l);return Array.isArray(e)?e.map(at).filter(Boolean):[]}const st={nodes:{total:0,online:0,offline:0,busy:0},tasks:{total:0,queued:0,completed:0,failed:0,avgDurationMs:0}};function it(l){const e=JSON.parse(JSON.stringify(st)),r=te(l);return!r||typeof r!="object"||Array.isArray(r)||(r.nodes&&typeof r.nodes=="object"&&(e.nodes.total=w(r.nodes.total,0),e.nodes.online=w(r.nodes.online,0),e.nodes.offline=w(r.nodes.offline,0),e.nodes.busy=w(r.nodes.busy,0)),r.tasks&&typeof r.tasks=="object"&&(e.tasks.total=w(r.tasks.total,0),e.tasks.queued=w(r.tasks.queued,0),e.tasks.completed=w(r.tasks.completed,0),e.tasks.failed=w(r.tasks.failed,0),e.tasks.avgDurationMs=w(r.tasks.avgDurationMs??r.tasks.avg_duration_ms,0))),e}function _e(l){if(l==null||l==="")return"—";const e=typeof l=="number"?new Date(l):new Date(String(l));return isNaN(e.getTime())?String(l):e.toLocaleString("zh-CN",{hour12:!1})}const lt={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},rt={class:"page-title"},ut={class:"page-sub"},ct={style:{color:"var(--text-secondary)","font-size":"12px","margin-left":"8px"}},dt={class:"filter-bar"},ft={style:{color:"var(--text-primary)","font-family":"monospace","font-weight":"500"}},pt={key:0,style:{color:"var(--text-secondary)","font-size":"11px","margin-top":"2px"}},mt={key:1,style:{color:"var(--text-muted)"}},yt={key:0,style:{color:"var(--text-secondary)","font-family":"monospace"}},gt={key:1,style:{color:"var(--text-muted)"}},vt={key:5,style:{color:"var(--text-secondary)","font-size":"11px"}},kt={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},_t={class:"filter-bar"},bt={style:{color:"var(--text-primary)","font-family":"monospace","font-weight":"500"}},xt={key:0,style:{color:"var(--text-secondary)","font-size":"11px","margin-top":"2px"}},ht={key:0,style:{color:"var(--text-secondary)","font-family":"monospace","font-size":"11px"}},Ct={key:1,style:{color:"var(--text-muted)"}},St={key:0,style:{"font-family":"monospace",color:"var(--text-secondary)","font-size":"12px"}},wt={key:1,style:{color:"var(--text-muted)"}},zt={key:6,style:{color:"var(--text-secondary)","font-size":"11px"}},Mt={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},At={__name:"Inference",setup(l){const{t:e}=Ee(),r=Je(),$=h(!1),V=h(!1),G=h(!1),W=h(""),Y=h(""),R=h([]),ne=h([]),b=h({nodes:{total:0,online:0,offline:0,busy:0},tasks:{total:0,queued:0,completed:0,failed:0,avgDurationMs:0}}),Q=h("nodes"),j=h(""),L=h(""),U=h(""),P=h(!1),B=h(!1),k=ge({nodeId:"",endpoint:"",capabilities:"",gpuMemory:null}),_=ge({model:"",input:"",priority:5,mode:"standard"}),be=K(()=>[{title:e("inference.nodeColumns.nodeId"),key:"nodeId"},{title:e("inference.nodeColumns.capabilities"),key:"capabilities",width:"220px"},{title:e("inference.nodeColumns.gpu"),key:"gpu",width:"100px"},{title:e("inference.nodeColumns.status"),key:"status",width:"100px"},{title:e("inference.nodeColumns.taskCount"),key:"taskCount",width:"90px"},{title:e("inference.nodeColumns.lastHeartbeat"),key:"lastHeartbeat",width:"160px"},{title:e("inference.nodeColumns.action"),key:"action",width:"210px"}]),xe=K(()=>[{title:e("inference.taskColumns.model"),key:"model"},{title:e("inference.taskColumns.privacyMode"),key:"privacyMode",width:"110px"},{title:e("inference.taskColumns.priority"),key:"priority",width:"80px"},{title:e("inference.taskColumns.assignedNode"),key:"assignedNode",width:"140px"},{title:e("inference.taskColumns.status"),key:"status",width:"110px"},{title:e("inference.taskColumns.duration"),key:"duration",width:"110px"},{title:e("inference.taskColumns.createdAt"),key:"createdAt",width:"160px"},{title:e("inference.taskColumns.action"),key:"action",width:"140px"}]),he=K(()=>j.value?R.value.filter(s=>s.status===j.value):R.value),Ce=K(()=>{let s=ne.value;return L.value&&(s=s.filter(t=>t.status===L.value)),U.value&&(s=s.filter(t=>t.privacyMode===U.value)),s});function H(s){const t=`inference.nodeStatus.${s}`,f=e(t);return f===t?s:f}function Se(s){return{online:"green",offline:"default",busy:"orange",degraded:"red"}[s]||"default"}function ae(s){const t=`inference.taskStatus.${s}`,f=e(t);return f===t?s:f}function we(s){return{queued:"default",dispatched:"processing",running:"cyan",complete:"green",failed:"red"}[s]||"default"}function X(s){const t=`inference.privacy.${s}`,f=e(t);return f===t?s:f}function ze(s){return{standard:"default",encrypted:"purple",federated:"cyan"}[s]||"default"}function Me(s){return s>=8?"#ff4d4f":s>=5?"#faad14":"#52c41a"}function Ae(s){const t=R.value.find(f=>f.id===s);return t?t.nodeId:s.slice(0,8)}function oe(s,t){return s?s.length>t?s.slice(0,t)+"...":s:""}function Ne(s){return s>=1024?`${(s/1024).toFixed(1)} GB`:`${s} MB`}function Fe(s){return s.status==="queued"||s.status==="dispatched"||s.status==="running"}function Oe(s){return s.status!=="complete"&&s.status!=="failed"}function Te({key:s}){s==="register"?P.value=!0:s==="submit"&&(B.value=!0)}async function M(){$.value=!0;try{const[s,t,f]=await Promise.all([r.execute("inference nodes --limit 200 --json",1e4).catch(()=>({output:""})),r.execute("inference tasks --limit 200 --json",1e4).catch(()=>({output:""})),r.execute("inference stats --json",8e3).catch(()=>({output:""}))]);R.value=nt(s.output),ne.value=ot(t.output),b.value=it(f.output)}catch(s){y.error(e("inference.messages.loadFailed",{err:s?.message||s}))}finally{$.value=!1}}async function Ie(){const s=k.nodeId.trim();if(!s){y.warning(e("inference.messages.nodeIdRequired"));return}V.value=!0;try{const t=[`inference register "${s.replace(/"/g,'\\"')}"`];if(k.endpoint.trim()&&t.push(`--endpoint "${k.endpoint.trim().replace(/"/g,'\\"')}"`),k.capabilities.trim()){const O=k.capabilities.split(/[,\s]+/).filter(Boolean).join(",");O&&t.push(`--capabilities "${O}"`)}k.gpuMemory!=null&&t.push(`--gpu ${k.gpuMemory}`),t.push("--json");const{output:f}=await r.execute(t.join(" "),1e4);if(/error|failed|失败/i.test(f)&&!/"nodeId"/.test(f)){y.error(e("inference.messages.registerFailed",{err:f.slice(0,120)}));return}y.success(e("inference.messages.registerOk")),P.value=!1,se(),await M()}catch(t){y.error(e("inference.messages.registerFailed",{err:t?.message||t}))}finally{V.value=!1}}async function $e(){const s=_.model.trim();if(!s){y.warning(e("inference.messages.modelRequired"));return}G.value=!0;try{const t=[`inference submit "${s.replace(/"/g,'\\"')}"`];_.input.trim()&&t.push(`--input "${_.input.trim().replace(/"/g,'\\"')}"`),_.priority!=null&&t.push(`--priority ${_.priority}`),t.push(`--mode ${_.mode}`),t.push("--json");const{output:f}=await r.execute(t.join(" "),12e3);if(/error|failed|失败/i.test(f)&&!/"taskId"/.test(f)){y.error(e("inference.messages.submitFailed",{err:f.slice(0,120)}));return}y.success(e("inference.messages.submitOk")),B.value=!1,ie(),Q.value="tasks",await M()}catch(t){y.error(e("inference.messages.submitFailed",{err:t?.message||t}))}finally{G.value=!1}}async function je(s){W.value=s.id;try{const{output:t}=await r.execute(`inference heartbeat ${s.id} --json`,8e3);if(/error/i.test(t)&&!/"updated"/.test(t)){y.error(e("inference.messages.heartbeatFailed",{err:t.slice(0,120)}));return}y.success(e("inference.messages.heartbeatOk")),await M()}catch(t){y.error(e("inference.messages.heartbeatFailed",{err:t?.message||t}))}finally{W.value=""}}async function Le(s,t){if(t!==s.status)try{const{output:f}=await r.execute(`inference node-status ${s.id} ${t} --json`,8e3);if(/error|invalid/i.test(f)&&!/"updated"/.test(f)){y.error(e("inference.messages.statusFailed",{err:f.slice(0,120)}));return}y.success(e("inference.messages.statusOk",{status:H(t)})),await M()}catch(f){y.error(e("inference.messages.statusFailed",{err:f?.message||f}))}}async function Ue(s){try{const{output:t}=await r.execute(`inference unregister ${s.id} --json`,8e3);if(/error/i.test(t)&&!/"removed"/.test(t)){y.error(e("inference.messages.unregisterFailed",{err:t.slice(0,120)}));return}y.success(e("inference.messages.unregisterOk")),await M()}catch(t){y.error(e("inference.messages.unregisterFailed",{err:t?.message||t}))}}async function qe(s){Y.value=s.id;try{const{output:t}=await r.execute(`inference complete ${s.id} --json`,1e4);if(/error|failed/i.test(t)&&!/"completed"/.test(t)){y.error(e("inference.messages.completeFailed",{err:t.slice(0,120)}));return}y.success(e("inference.messages.completeOk")),await M()}catch(t){y.error(e("inference.messages.completeFailed",{err:t?.message||t}))}finally{Y.value=""}}async function De(s){try{const{output:t}=await r.execute(`inference fail-task ${s.id} --json`,8e3);if(/error/i.test(t)&&!/"failed"/.test(t)){y.error(e("inference.messages.failFailed",{err:t.slice(0,120)}));return}y.success(e("inference.messages.failOk")),await M()}catch(t){y.error(e("inference.messages.failFailed",{err:t?.message||t}))}}function se(){k.nodeId="",k.endpoint="",k.capabilities="",k.gpuMemory=null}function ie(){_.model="",_.input="",_.priority=5,_.mode="standard"}return Qe(M),(s,t)=>{const f=v("a-button"),O=v("a-menu-item"),le=v("a-menu"),re=v("a-dropdown"),ue=v("a-space"),q=v("a-statistic"),T=v("a-card"),D=v("a-col"),Re=v("a-row"),A=v("a-tag"),F=v("a-radio-button"),E=v("a-radio-group"),ce=v("a-popconfirm"),de=v("a-table"),fe=v("a-tab-pane"),Pe=v("a-tabs"),J=v("a-input"),N=v("a-form-item"),pe=v("a-input-number"),me=v("a-form"),ye=v("a-modal"),Be=v("a-textarea");return c(),m("div",null,[z("div",lt,[z("div",null,[z("h2",rt,u(o(e)("inference.title")),1),z("p",ut,u(o(e)("inference.subtitle")),1)]),a(ue,null,{default:n(()=>[a(f,{loading:$.value,onClick:M},{icon:n(()=>[a(o(Ve))]),default:n(()=>[p(" "+u(o(e)("inference.refresh")),1)]),_:1},8,["loading"]),a(re,{trigger:["click"]},{overlay:n(()=>[a(le,{onClick:Te},{default:n(()=>[a(O,{key:"register"},{default:n(()=>[a(o(Z)),p(" "+u(o(e)("inference.actions.register")),1)]),_:1}),a(O,{key:"submit"},{default:n(()=>[a(o(ee)),p(" "+u(o(e)("inference.actions.submit")),1)]),_:1})]),_:1})]),default:n(()=>[a(f,{type:"primary"},{icon:n(()=>[a(o(Ge))]),default:n(()=>[p(" "+u(o(e)("inference.actionDropdown")),1)]),_:1})]),_:1})]),_:1})]),a(Re,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:n(()=>[a(D,{xs:12,sm:8,lg:5},{default:n(()=>[a(T,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:n(()=>[a(q,{title:o(e)("inference.stats.totalNodes"),value:b.value.nodes.total,"value-style":{color:"#1677ff",fontSize:"20px"}},{prefix:n(()=>[a(o(Z))]),_:1},8,["title","value"])]),_:1})]),_:1}),a(D,{xs:12,sm:8,lg:5},{default:n(()=>[a(T,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:n(()=>[a(q,{title:o(e)("inference.stats.onlineNodes"),value:b.value.nodes.online,"value-style":{color:b.value.nodes.online>0?"#52c41a":"#888",fontSize:"20px"}},{prefix:n(()=>[a(o(We))]),_:1},8,["title","value","value-style"])]),_:1})]),_:1}),a(D,{xs:12,sm:8,lg:5},{default:n(()=>[a(T,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:n(()=>[a(q,{title:o(e)("inference.stats.totalTasks"),value:b.value.tasks.total,"value-style":{color:"#722ed1",fontSize:"20px"}},{prefix:n(()=>[a(o(ee))]),_:1},8,["title","value"])]),_:1})]),_:1}),a(D,{xs:12,sm:8,lg:5},{default:n(()=>[a(T,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:n(()=>[a(q,{title:o(e)("inference.stats.queued"),value:b.value.tasks.queued,"value-style":{color:b.value.tasks.queued>0?"#faad14":"#52c41a",fontSize:"20px"}},{prefix:n(()=>[a(o(Ye))]),_:1},8,["title","value","value-style"])]),_:1})]),_:1}),a(D,{xs:24,sm:8,lg:4},{default:n(()=>[a(T,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:n(()=>[a(q,{title:o(e)("inference.stats.avgDuration"),value:b.value.tasks.avgDurationMs,suffix:"ms","value-style":{color:"#13c2c2",fontSize:"20px"}},null,8,["title","value"])]),_:1})]),_:1})]),_:1}),b.value.nodes.total>0?(c(),x(T,{key:0,title:o(e)("inference.breakdown.title"),size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"20px"},"body-style":{padding:"12px 16px"}},{default:n(()=>[a(ue,{size:[12,8],wrap:""},{default:n(()=>[a(A,{color:"green"},{default:n(()=>[p(u(o(e)("inference.breakdown.online",{count:b.value.nodes.online})),1)]),_:1}),a(A,{color:"orange"},{default:n(()=>[p(u(o(e)("inference.breakdown.busy",{count:b.value.nodes.busy})),1)]),_:1}),a(A,{color:"default"},{default:n(()=>[p(u(o(e)("inference.breakdown.offline",{count:b.value.nodes.offline})),1)]),_:1}),z("span",ct,u(o(e)("inference.breakdown.extra",{complete:b.value.tasks.completed,failed:b.value.tasks.failed})),1)]),_:1})]),_:1},8,["title"])):g("",!0),a(Pe,{activeKey:Q.value,"onUpdate:activeKey":t[3]||(t[3]=i=>Q.value=i),class:"inference-tabs"},{default:n(()=>[a(fe,{key:"nodes",tab:o(e)("inference.tabs.nodes")},{default:n(()=>[z("div",dt,[a(E,{value:j.value,"onUpdate:value":t[0]||(t[0]=i=>j.value=i),size:"small","button-style":"solid"},{default:n(()=>[a(F,{value:""},{default:n(()=>[p(u(o(e)("inference.filter.all")),1)]),_:1}),(c(!0),m(C,null,I(o(ve),i=>(c(),x(F,{key:i,value:i},{default:n(()=>[p(u(H(i)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),a(de,{columns:be.value,"data-source":he.value,pagination:{pageSize:20,showTotal:i=>o(e)("inference.totals.rows",{count:i})},size:"small",loading:$.value,style:{background:"var(--bg-card)"}},{bodyCell:n(({column:i,record:d})=>[i.key==="nodeId"?(c(),m(C,{key:0},[z("span",ft,u(d.nodeId),1),d.endpoint?(c(),m("div",pt,u(oe(d.endpoint,50)),1)):g("",!0)],64)):g("",!0),i.key==="capabilities"?(c(),m(C,{key:1},[(c(!0),m(C,null,I(d.capabilities.slice(0,4),S=>(c(),x(A,{key:S,color:"blue",style:{"font-size":"10px",margin:"1px"}},{default:n(()=>[p(u(S),1)]),_:2},1024))),128)),d.capabilities.length>4?(c(),x(A,{key:0,color:"default",style:{"font-size":"10px"}},{default:n(()=>[p("+"+u(d.capabilities.length-4),1)]),_:2},1024)):g("",!0),d.capabilities.length?g("",!0):(c(),m("span",mt,"—"))],64)):g("",!0),i.key==="gpu"?(c(),m(C,{key:2},[d.gpuMemoryMb>0?(c(),m("span",yt,u(Ne(d.gpuMemoryMb)),1)):(c(),m("span",gt,"—"))],64)):g("",!0),i.key==="status"?(c(),x(A,{key:3,color:Se(d.status)},{default:n(()=>[p(u(H(d.status)),1)]),_:2},1032,["color"])):g("",!0),i.key==="taskCount"?(c(),x(A,{key:4,color:"purple",style:{"font-size":"11px"}},{default:n(()=>[p(u(d.taskCount),1)]),_:2},1024)):g("",!0),i.key==="lastHeartbeat"?(c(),m("span",vt,u(o(_e)(d.lastHeartbeat)),1)):g("",!0),i.key==="action"?(c(),m(C,{key:6},[a(f,{size:"small",type:"link",loading:W.value===d.id,onClick:S=>je(d)},{default:n(()=>[p(u(o(e)("inference.rowActions.heartbeat")),1)]),_:1},8,["loading","onClick"]),a(re,{trigger:["click"]},{overlay:n(()=>[a(le,{onClick:S=>Le(d,S.key)},{default:n(()=>[(c(!0),m(C,null,I(o(ve),S=>(c(),x(O,{key:S,disabled:S===d.status},{default:n(()=>[p(u(H(S)),1)]),_:2},1032,["disabled"]))),128))]),_:2},1032,["onClick"])]),default:n(()=>[a(f,{size:"small",type:"link"},{default:n(()=>[p(u(o(e)("inference.rowActions.statusDropdown")),1)]),_:1})]),_:2},1024),a(ce,{title:o(e)("inference.rowActions.unregisterConfirm"),"ok-text":o(e)("inference.rowActions.unregisterOk"),"cancel-text":o(e)("common.cancel"),onConfirm:S=>Ue(d)},{default:n(()=>[a(f,{size:"small",type:"link",danger:""},{default:n(()=>[p(u(o(e)("inference.rowActions.unregister")),1)]),_:1})]),_:1},8,["title","ok-text","cancel-text","onConfirm"])],64)):g("",!0)]),emptyText:n(()=>[z("div",kt,[a(o(Z),{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),p(" "+u(j.value?o(e)("inference.empty.filteredNodes"):o(e)("inference.empty.noNodes")),1)])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"]),a(fe,{key:"tasks",tab:o(e)("inference.tabs.tasks")},{default:n(()=>[z("div",_t,[a(E,{value:L.value,"onUpdate:value":t[1]||(t[1]=i=>L.value=i),size:"small"},{default:n(()=>[a(F,{value:""},{default:n(()=>[p(u(o(e)("inference.filter.allStatuses")),1)]),_:1}),(c(!0),m(C,null,I(o(Ze),i=>(c(),x(F,{key:i,value:i},{default:n(()=>[p(u(ae(i)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"]),a(E,{value:U.value,"onUpdate:value":t[2]||(t[2]=i=>U.value=i),size:"small"},{default:n(()=>[a(F,{value:""},{default:n(()=>[p(u(o(e)("inference.filter.allModes")),1)]),_:1}),(c(!0),m(C,null,I(o(ke),i=>(c(),x(F,{key:i,value:i},{default:n(()=>[p(u(X(i)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),a(de,{columns:xe.value,"data-source":Ce.value,pagination:{pageSize:20,showTotal:i=>o(e)("inference.totals.rows",{count:i})},size:"small",loading:$.value,style:{background:"var(--bg-card)"}},{bodyCell:n(({column:i,record:d})=>[i.key==="model"?(c(),m(C,{key:0},[z("span",bt,u(d.model),1),d.input?(c(),m("div",xt,u(oe(d.input,60)),1)):g("",!0)],64)):g("",!0),i.key==="privacyMode"?(c(),x(A,{key:1,color:ze(d.privacyMode)},{default:n(()=>[p(u(X(d.privacyMode)),1)]),_:2},1032,["color"])):g("",!0),i.key==="priority"?(c(),m("span",{key:2,style:Xe({color:Me(d.priority),fontWeight:500})},u(d.priority),5)):g("",!0),i.key==="assignedNode"?(c(),m(C,{key:3},[d.assignedNode?(c(),m("span",ht,u(Ae(d.assignedNode)),1)):(c(),m("span",Ct,"—"))],64)):g("",!0),i.key==="status"?(c(),x(A,{key:4,color:we(d.status)},{default:n(()=>[p(u(ae(d.status)),1)]),_:2},1032,["color"])):g("",!0),i.key==="duration"?(c(),m(C,{key:5},[d.durationMs!=null?(c(),m("span",St,u(d.durationMs)+" ms ",1)):(c(),m("span",wt,"—"))],64)):g("",!0),i.key==="createdAt"?(c(),m("span",zt,u(o(_e)(d.createdAt)),1)):g("",!0),i.key==="action"?(c(),m(C,{key:7},[Fe(d)?(c(),x(f,{key:0,size:"small",type:"link",loading:Y.value===d.id,onClick:S=>qe(d)},{default:n(()=>[p(u(o(e)("inference.rowActions.complete")),1)]),_:1},8,["loading","onClick"])):g("",!0),Oe(d)?(c(),x(ce,{key:1,title:o(e)("inference.rowActions.failConfirm"),"ok-text":o(e)("inference.rowActions.failOk"),"cancel-text":o(e)("common.cancel"),onConfirm:S=>De(d)},{default:n(()=>[a(f,{size:"small",type:"link",danger:""},{default:n(()=>[p(u(o(e)("inference.rowActions.fail")),1)]),_:1})]),_:1},8,["title","ok-text","cancel-text","onConfirm"])):g("",!0)],64)):g("",!0)]),emptyText:n(()=>[z("div",Mt,[a(o(ee),{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),p(" "+u(L.value||U.value?o(e)("inference.empty.filteredTasks"):o(e)("inference.empty.noTasks")),1)])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"])]),_:1},8,["activeKey"]),a(ye,{open:P.value,"onUpdate:open":t[8]||(t[8]=i=>P.value=i),title:o(e)("inference.register.title"),"confirm-loading":V.value,width:520,"ok-text":o(e)("inference.register.ok"),"cancel-text":o(e)("common.cancel"),onOk:Ie,onCancel:se},{default:n(()=>[a(me,{"label-col":{span:6},"wrapper-col":{span:18},style:{"margin-top":"16px"}},{default:n(()=>[a(N,{label:o(e)("inference.register.nodeIdLabel"),required:""},{default:n(()=>[a(J,{value:k.nodeId,"onUpdate:value":t[4]||(t[4]=i=>k.nodeId=i),placeholder:o(e)("inference.register.nodeIdPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),a(N,{label:o(e)("inference.register.endpointLabel")},{default:n(()=>[a(J,{value:k.endpoint,"onUpdate:value":t[5]||(t[5]=i=>k.endpoint=i),placeholder:o(e)("inference.register.endpointPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),a(N,{label:o(e)("inference.register.capabilitiesLabel")},{default:n(()=>[a(J,{value:k.capabilities,"onUpdate:value":t[6]||(t[6]=i=>k.capabilities=i),placeholder:o(e)("inference.register.capabilitiesPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),a(N,{label:o(e)("inference.register.gpuLabel")},{default:n(()=>[a(pe,{value:k.gpuMemory,"onUpdate:value":t[7]||(t[7]=i=>k.gpuMemory=i),min:0,max:2e5,style:{width:"100%"}},null,8,["value"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),a(ye,{open:B.value,"onUpdate:open":t[13]||(t[13]=i=>B.value=i),title:o(e)("inference.submit.title"),"confirm-loading":G.value,width:520,"ok-text":o(e)("inference.submit.ok"),"cancel-text":o(e)("common.cancel"),onOk:$e,onCancel:ie},{default:n(()=>[a(me,{"label-col":{span:6},"wrapper-col":{span:18},style:{"margin-top":"16px"}},{default:n(()=>[a(N,{label:o(e)("inference.submit.modelLabel"),required:""},{default:n(()=>[a(J,{value:_.model,"onUpdate:value":t[9]||(t[9]=i=>_.model=i),placeholder:o(e)("inference.submit.modelPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),a(N,{label:o(e)("inference.submit.inputLabel")},{default:n(()=>[a(Be,{value:_.input,"onUpdate:value":t[10]||(t[10]=i=>_.input=i),"auto-size":{minRows:3,maxRows:6}},null,8,["value"])]),_:1},8,["label"]),a(N,{label:o(e)("inference.submit.priorityLabel")},{default:n(()=>[a(pe,{value:_.priority,"onUpdate:value":t[11]||(t[11]=i=>_.priority=i),min:1,max:10,style:{width:"100%"}},null,8,["value"])]),_:1},8,["label"]),a(N,{label:o(e)("inference.submit.modeLabel")},{default:n(()=>[a(E,{value:_.mode,"onUpdate:value":t[12]||(t[12]=i=>_.mode=i)},{default:n(()=>[(c(!0),m(C,null,I(o(ke),i=>(c(),x(F,{key:i,value:i},{default:n(()=>[p(u(X(i)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"])])}}},It=He(At,[["__scopeId","data-v-849fc966"]]);export{It as default};
|
|
1
|
+
import{_ as He,b as Ee,u as Je,d as y}from"./index-BxjOmfVA.js";import{s as Ke}from"./community-parser-CO25nZFt.js";import{R as Ve,aq as Ge,n as Z,h as ee,f as We,w as Ye}from"./icons-B2mcO3YM.js";import{o as Qe,M as m,R as z,P as u,u as o,c as a,N as n,Q as x,S as g,K as v,r as h,L as c,O as p,F as C,Y as I,$ as Xe,f as K,a as ge}from"./vendor-Ci2pTZ_t.js";function te(l){const e=Ke(l);if(!e)return null;try{return JSON.parse(e)}catch{}const r=e.match(/\{[\s\S]*\}|\[[\s\S]*\]/);if(!r)return null;try{return JSON.parse(r[0])}catch{return null}}const ve=Object.freeze(["online","offline","busy","degraded"]),Ze=Object.freeze(["queued","dispatched","running","complete","failed"]),ke=Object.freeze(["standard","encrypted","federated"]);function w(l,e=0){return typeof l=="number"&&Number.isFinite(l)?l:e}function et(l){if(Array.isArray(l))return l.filter(e=>typeof e=="string");if(typeof l=="string")try{const e=JSON.parse(l);if(Array.isArray(e))return e.filter(r=>typeof r=="string")}catch{}return[]}function tt(l,e=0){if(!l||typeof l!="object")return null;const r=l.id||"";return r?{key:r,id:r,nodeId:l.nodeId??l.node_id??"",endpoint:l.endpoint||"",capabilities:et(l.capabilities),gpuMemoryMb:w(l.gpuMemoryMb??l.gpu_memory_mb,0),status:String(l.status||"offline").toLowerCase(),lastHeartbeat:l.lastHeartbeat??l.last_heartbeat??null,taskCount:w(l.taskCount??l.task_count,0),createdAt:l.createdAt??l.created_at??null,_idx:e}:null}function nt(l){const e=te(l);return Array.isArray(e)?e.map(tt).filter(Boolean):[]}function at(l,e=0){if(!l||typeof l!="object")return null;const r=l.id||"";return r?{key:r,id:r,model:String(l.model||""),input:l.input??"",output:l.output??"",privacyMode:String(l.privacyMode??l.privacy_mode??"standard").toLowerCase(),priority:w(l.priority,5),assignedNode:l.assignedNode??l.assigned_node??null,status:String(l.status||"queued").toLowerCase(),durationMs:l.durationMs??l.duration_ms??null,createdAt:l.createdAt??l.created_at??null,completedAt:l.completedAt??l.completed_at??null,_idx:e}:null}function ot(l){const e=te(l);return Array.isArray(e)?e.map(at).filter(Boolean):[]}const st={nodes:{total:0,online:0,offline:0,busy:0},tasks:{total:0,queued:0,completed:0,failed:0,avgDurationMs:0}};function it(l){const e=JSON.parse(JSON.stringify(st)),r=te(l);return!r||typeof r!="object"||Array.isArray(r)||(r.nodes&&typeof r.nodes=="object"&&(e.nodes.total=w(r.nodes.total,0),e.nodes.online=w(r.nodes.online,0),e.nodes.offline=w(r.nodes.offline,0),e.nodes.busy=w(r.nodes.busy,0)),r.tasks&&typeof r.tasks=="object"&&(e.tasks.total=w(r.tasks.total,0),e.tasks.queued=w(r.tasks.queued,0),e.tasks.completed=w(r.tasks.completed,0),e.tasks.failed=w(r.tasks.failed,0),e.tasks.avgDurationMs=w(r.tasks.avgDurationMs??r.tasks.avg_duration_ms,0))),e}function _e(l){if(l==null||l==="")return"—";const e=typeof l=="number"?new Date(l):new Date(String(l));return isNaN(e.getTime())?String(l):e.toLocaleString("zh-CN",{hour12:!1})}const lt={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},rt={class:"page-title"},ut={class:"page-sub"},ct={style:{color:"var(--text-secondary)","font-size":"12px","margin-left":"8px"}},dt={class:"filter-bar"},ft={style:{color:"var(--text-primary)","font-family":"monospace","font-weight":"500"}},pt={key:0,style:{color:"var(--text-secondary)","font-size":"11px","margin-top":"2px"}},mt={key:1,style:{color:"var(--text-muted)"}},yt={key:0,style:{color:"var(--text-secondary)","font-family":"monospace"}},gt={key:1,style:{color:"var(--text-muted)"}},vt={key:5,style:{color:"var(--text-secondary)","font-size":"11px"}},kt={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},_t={class:"filter-bar"},bt={style:{color:"var(--text-primary)","font-family":"monospace","font-weight":"500"}},xt={key:0,style:{color:"var(--text-secondary)","font-size":"11px","margin-top":"2px"}},ht={key:0,style:{color:"var(--text-secondary)","font-family":"monospace","font-size":"11px"}},Ct={key:1,style:{color:"var(--text-muted)"}},St={key:0,style:{"font-family":"monospace",color:"var(--text-secondary)","font-size":"12px"}},wt={key:1,style:{color:"var(--text-muted)"}},zt={key:6,style:{color:"var(--text-secondary)","font-size":"11px"}},Mt={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},At={__name:"Inference",setup(l){const{t:e}=Ee(),r=Je(),$=h(!1),V=h(!1),G=h(!1),W=h(""),Y=h(""),R=h([]),ne=h([]),b=h({nodes:{total:0,online:0,offline:0,busy:0},tasks:{total:0,queued:0,completed:0,failed:0,avgDurationMs:0}}),Q=h("nodes"),j=h(""),L=h(""),U=h(""),P=h(!1),B=h(!1),k=ge({nodeId:"",endpoint:"",capabilities:"",gpuMemory:null}),_=ge({model:"",input:"",priority:5,mode:"standard"}),be=K(()=>[{title:e("inference.nodeColumns.nodeId"),key:"nodeId"},{title:e("inference.nodeColumns.capabilities"),key:"capabilities",width:"220px"},{title:e("inference.nodeColumns.gpu"),key:"gpu",width:"100px"},{title:e("inference.nodeColumns.status"),key:"status",width:"100px"},{title:e("inference.nodeColumns.taskCount"),key:"taskCount",width:"90px"},{title:e("inference.nodeColumns.lastHeartbeat"),key:"lastHeartbeat",width:"160px"},{title:e("inference.nodeColumns.action"),key:"action",width:"210px"}]),xe=K(()=>[{title:e("inference.taskColumns.model"),key:"model"},{title:e("inference.taskColumns.privacyMode"),key:"privacyMode",width:"110px"},{title:e("inference.taskColumns.priority"),key:"priority",width:"80px"},{title:e("inference.taskColumns.assignedNode"),key:"assignedNode",width:"140px"},{title:e("inference.taskColumns.status"),key:"status",width:"110px"},{title:e("inference.taskColumns.duration"),key:"duration",width:"110px"},{title:e("inference.taskColumns.createdAt"),key:"createdAt",width:"160px"},{title:e("inference.taskColumns.action"),key:"action",width:"140px"}]),he=K(()=>j.value?R.value.filter(s=>s.status===j.value):R.value),Ce=K(()=>{let s=ne.value;return L.value&&(s=s.filter(t=>t.status===L.value)),U.value&&(s=s.filter(t=>t.privacyMode===U.value)),s});function H(s){const t=`inference.nodeStatus.${s}`,f=e(t);return f===t?s:f}function Se(s){return{online:"green",offline:"default",busy:"orange",degraded:"red"}[s]||"default"}function ae(s){const t=`inference.taskStatus.${s}`,f=e(t);return f===t?s:f}function we(s){return{queued:"default",dispatched:"processing",running:"cyan",complete:"green",failed:"red"}[s]||"default"}function X(s){const t=`inference.privacy.${s}`,f=e(t);return f===t?s:f}function ze(s){return{standard:"default",encrypted:"purple",federated:"cyan"}[s]||"default"}function Me(s){return s>=8?"#ff4d4f":s>=5?"#faad14":"#52c41a"}function Ae(s){const t=R.value.find(f=>f.id===s);return t?t.nodeId:s.slice(0,8)}function oe(s,t){return s?s.length>t?s.slice(0,t)+"...":s:""}function Ne(s){return s>=1024?`${(s/1024).toFixed(1)} GB`:`${s} MB`}function Fe(s){return s.status==="queued"||s.status==="dispatched"||s.status==="running"}function Oe(s){return s.status!=="complete"&&s.status!=="failed"}function Te({key:s}){s==="register"?P.value=!0:s==="submit"&&(B.value=!0)}async function M(){$.value=!0;try{const[s,t,f]=await Promise.all([r.execute("inference nodes --limit 200 --json",1e4).catch(()=>({output:""})),r.execute("inference tasks --limit 200 --json",1e4).catch(()=>({output:""})),r.execute("inference stats --json",8e3).catch(()=>({output:""}))]);R.value=nt(s.output),ne.value=ot(t.output),b.value=it(f.output)}catch(s){y.error(e("inference.messages.loadFailed",{err:s?.message||s}))}finally{$.value=!1}}async function Ie(){const s=k.nodeId.trim();if(!s){y.warning(e("inference.messages.nodeIdRequired"));return}V.value=!0;try{const t=[`inference register "${s.replace(/"/g,'\\"')}"`];if(k.endpoint.trim()&&t.push(`--endpoint "${k.endpoint.trim().replace(/"/g,'\\"')}"`),k.capabilities.trim()){const O=k.capabilities.split(/[,\s]+/).filter(Boolean).join(",");O&&t.push(`--capabilities "${O}"`)}k.gpuMemory!=null&&t.push(`--gpu ${k.gpuMemory}`),t.push("--json");const{output:f}=await r.execute(t.join(" "),1e4);if(/error|failed|失败/i.test(f)&&!/"nodeId"/.test(f)){y.error(e("inference.messages.registerFailed",{err:f.slice(0,120)}));return}y.success(e("inference.messages.registerOk")),P.value=!1,se(),await M()}catch(t){y.error(e("inference.messages.registerFailed",{err:t?.message||t}))}finally{V.value=!1}}async function $e(){const s=_.model.trim();if(!s){y.warning(e("inference.messages.modelRequired"));return}G.value=!0;try{const t=[`inference submit "${s.replace(/"/g,'\\"')}"`];_.input.trim()&&t.push(`--input "${_.input.trim().replace(/"/g,'\\"')}"`),_.priority!=null&&t.push(`--priority ${_.priority}`),t.push(`--mode ${_.mode}`),t.push("--json");const{output:f}=await r.execute(t.join(" "),12e3);if(/error|failed|失败/i.test(f)&&!/"taskId"/.test(f)){y.error(e("inference.messages.submitFailed",{err:f.slice(0,120)}));return}y.success(e("inference.messages.submitOk")),B.value=!1,ie(),Q.value="tasks",await M()}catch(t){y.error(e("inference.messages.submitFailed",{err:t?.message||t}))}finally{G.value=!1}}async function je(s){W.value=s.id;try{const{output:t}=await r.execute(`inference heartbeat ${s.id} --json`,8e3);if(/error/i.test(t)&&!/"updated"/.test(t)){y.error(e("inference.messages.heartbeatFailed",{err:t.slice(0,120)}));return}y.success(e("inference.messages.heartbeatOk")),await M()}catch(t){y.error(e("inference.messages.heartbeatFailed",{err:t?.message||t}))}finally{W.value=""}}async function Le(s,t){if(t!==s.status)try{const{output:f}=await r.execute(`inference node-status ${s.id} ${t} --json`,8e3);if(/error|invalid/i.test(f)&&!/"updated"/.test(f)){y.error(e("inference.messages.statusFailed",{err:f.slice(0,120)}));return}y.success(e("inference.messages.statusOk",{status:H(t)})),await M()}catch(f){y.error(e("inference.messages.statusFailed",{err:f?.message||f}))}}async function Ue(s){try{const{output:t}=await r.execute(`inference unregister ${s.id} --json`,8e3);if(/error/i.test(t)&&!/"removed"/.test(t)){y.error(e("inference.messages.unregisterFailed",{err:t.slice(0,120)}));return}y.success(e("inference.messages.unregisterOk")),await M()}catch(t){y.error(e("inference.messages.unregisterFailed",{err:t?.message||t}))}}async function qe(s){Y.value=s.id;try{const{output:t}=await r.execute(`inference complete ${s.id} --json`,1e4);if(/error|failed/i.test(t)&&!/"completed"/.test(t)){y.error(e("inference.messages.completeFailed",{err:t.slice(0,120)}));return}y.success(e("inference.messages.completeOk")),await M()}catch(t){y.error(e("inference.messages.completeFailed",{err:t?.message||t}))}finally{Y.value=""}}async function De(s){try{const{output:t}=await r.execute(`inference fail-task ${s.id} --json`,8e3);if(/error/i.test(t)&&!/"failed"/.test(t)){y.error(e("inference.messages.failFailed",{err:t.slice(0,120)}));return}y.success(e("inference.messages.failOk")),await M()}catch(t){y.error(e("inference.messages.failFailed",{err:t?.message||t}))}}function se(){k.nodeId="",k.endpoint="",k.capabilities="",k.gpuMemory=null}function ie(){_.model="",_.input="",_.priority=5,_.mode="standard"}return Qe(M),(s,t)=>{const f=v("a-button"),O=v("a-menu-item"),le=v("a-menu"),re=v("a-dropdown"),ue=v("a-space"),q=v("a-statistic"),T=v("a-card"),D=v("a-col"),Re=v("a-row"),A=v("a-tag"),F=v("a-radio-button"),E=v("a-radio-group"),ce=v("a-popconfirm"),de=v("a-table"),fe=v("a-tab-pane"),Pe=v("a-tabs"),J=v("a-input"),N=v("a-form-item"),pe=v("a-input-number"),me=v("a-form"),ye=v("a-modal"),Be=v("a-textarea");return c(),m("div",null,[z("div",lt,[z("div",null,[z("h2",rt,u(o(e)("inference.title")),1),z("p",ut,u(o(e)("inference.subtitle")),1)]),a(ue,null,{default:n(()=>[a(f,{loading:$.value,onClick:M},{icon:n(()=>[a(o(Ve))]),default:n(()=>[p(" "+u(o(e)("inference.refresh")),1)]),_:1},8,["loading"]),a(re,{trigger:["click"]},{overlay:n(()=>[a(le,{onClick:Te},{default:n(()=>[a(O,{key:"register"},{default:n(()=>[a(o(Z)),p(" "+u(o(e)("inference.actions.register")),1)]),_:1}),a(O,{key:"submit"},{default:n(()=>[a(o(ee)),p(" "+u(o(e)("inference.actions.submit")),1)]),_:1})]),_:1})]),default:n(()=>[a(f,{type:"primary"},{icon:n(()=>[a(o(Ge))]),default:n(()=>[p(" "+u(o(e)("inference.actionDropdown")),1)]),_:1})]),_:1})]),_:1})]),a(Re,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:n(()=>[a(D,{xs:12,sm:8,lg:5},{default:n(()=>[a(T,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:n(()=>[a(q,{title:o(e)("inference.stats.totalNodes"),value:b.value.nodes.total,"value-style":{color:"#1677ff",fontSize:"20px"}},{prefix:n(()=>[a(o(Z))]),_:1},8,["title","value"])]),_:1})]),_:1}),a(D,{xs:12,sm:8,lg:5},{default:n(()=>[a(T,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:n(()=>[a(q,{title:o(e)("inference.stats.onlineNodes"),value:b.value.nodes.online,"value-style":{color:b.value.nodes.online>0?"#52c41a":"#888",fontSize:"20px"}},{prefix:n(()=>[a(o(We))]),_:1},8,["title","value","value-style"])]),_:1})]),_:1}),a(D,{xs:12,sm:8,lg:5},{default:n(()=>[a(T,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:n(()=>[a(q,{title:o(e)("inference.stats.totalTasks"),value:b.value.tasks.total,"value-style":{color:"#722ed1",fontSize:"20px"}},{prefix:n(()=>[a(o(ee))]),_:1},8,["title","value"])]),_:1})]),_:1}),a(D,{xs:12,sm:8,lg:5},{default:n(()=>[a(T,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:n(()=>[a(q,{title:o(e)("inference.stats.queued"),value:b.value.tasks.queued,"value-style":{color:b.value.tasks.queued>0?"#faad14":"#52c41a",fontSize:"20px"}},{prefix:n(()=>[a(o(Ye))]),_:1},8,["title","value","value-style"])]),_:1})]),_:1}),a(D,{xs:24,sm:8,lg:4},{default:n(()=>[a(T,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:n(()=>[a(q,{title:o(e)("inference.stats.avgDuration"),value:b.value.tasks.avgDurationMs,suffix:"ms","value-style":{color:"#13c2c2",fontSize:"20px"}},null,8,["title","value"])]),_:1})]),_:1})]),_:1}),b.value.nodes.total>0?(c(),x(T,{key:0,title:o(e)("inference.breakdown.title"),size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"20px"},"body-style":{padding:"12px 16px"}},{default:n(()=>[a(ue,{size:[12,8],wrap:""},{default:n(()=>[a(A,{color:"green"},{default:n(()=>[p(u(o(e)("inference.breakdown.online",{count:b.value.nodes.online})),1)]),_:1}),a(A,{color:"orange"},{default:n(()=>[p(u(o(e)("inference.breakdown.busy",{count:b.value.nodes.busy})),1)]),_:1}),a(A,{color:"default"},{default:n(()=>[p(u(o(e)("inference.breakdown.offline",{count:b.value.nodes.offline})),1)]),_:1}),z("span",ct,u(o(e)("inference.breakdown.extra",{complete:b.value.tasks.completed,failed:b.value.tasks.failed})),1)]),_:1})]),_:1},8,["title"])):g("",!0),a(Pe,{activeKey:Q.value,"onUpdate:activeKey":t[3]||(t[3]=i=>Q.value=i),class:"inference-tabs"},{default:n(()=>[a(fe,{key:"nodes",tab:o(e)("inference.tabs.nodes")},{default:n(()=>[z("div",dt,[a(E,{value:j.value,"onUpdate:value":t[0]||(t[0]=i=>j.value=i),size:"small","button-style":"solid"},{default:n(()=>[a(F,{value:""},{default:n(()=>[p(u(o(e)("inference.filter.all")),1)]),_:1}),(c(!0),m(C,null,I(o(ve),i=>(c(),x(F,{key:i,value:i},{default:n(()=>[p(u(H(i)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),a(de,{columns:be.value,"data-source":he.value,pagination:{pageSize:20,showTotal:i=>o(e)("inference.totals.rows",{count:i})},size:"small",loading:$.value,style:{background:"var(--bg-card)"}},{bodyCell:n(({column:i,record:d})=>[i.key==="nodeId"?(c(),m(C,{key:0},[z("span",ft,u(d.nodeId),1),d.endpoint?(c(),m("div",pt,u(oe(d.endpoint,50)),1)):g("",!0)],64)):g("",!0),i.key==="capabilities"?(c(),m(C,{key:1},[(c(!0),m(C,null,I(d.capabilities.slice(0,4),S=>(c(),x(A,{key:S,color:"blue",style:{"font-size":"10px",margin:"1px"}},{default:n(()=>[p(u(S),1)]),_:2},1024))),128)),d.capabilities.length>4?(c(),x(A,{key:0,color:"default",style:{"font-size":"10px"}},{default:n(()=>[p("+"+u(d.capabilities.length-4),1)]),_:2},1024)):g("",!0),d.capabilities.length?g("",!0):(c(),m("span",mt,"—"))],64)):g("",!0),i.key==="gpu"?(c(),m(C,{key:2},[d.gpuMemoryMb>0?(c(),m("span",yt,u(Ne(d.gpuMemoryMb)),1)):(c(),m("span",gt,"—"))],64)):g("",!0),i.key==="status"?(c(),x(A,{key:3,color:Se(d.status)},{default:n(()=>[p(u(H(d.status)),1)]),_:2},1032,["color"])):g("",!0),i.key==="taskCount"?(c(),x(A,{key:4,color:"purple",style:{"font-size":"11px"}},{default:n(()=>[p(u(d.taskCount),1)]),_:2},1024)):g("",!0),i.key==="lastHeartbeat"?(c(),m("span",vt,u(o(_e)(d.lastHeartbeat)),1)):g("",!0),i.key==="action"?(c(),m(C,{key:6},[a(f,{size:"small",type:"link",loading:W.value===d.id,onClick:S=>je(d)},{default:n(()=>[p(u(o(e)("inference.rowActions.heartbeat")),1)]),_:1},8,["loading","onClick"]),a(re,{trigger:["click"]},{overlay:n(()=>[a(le,{onClick:S=>Le(d,S.key)},{default:n(()=>[(c(!0),m(C,null,I(o(ve),S=>(c(),x(O,{key:S,disabled:S===d.status},{default:n(()=>[p(u(H(S)),1)]),_:2},1032,["disabled"]))),128))]),_:2},1032,["onClick"])]),default:n(()=>[a(f,{size:"small",type:"link"},{default:n(()=>[p(u(o(e)("inference.rowActions.statusDropdown")),1)]),_:1})]),_:2},1024),a(ce,{title:o(e)("inference.rowActions.unregisterConfirm"),"ok-text":o(e)("inference.rowActions.unregisterOk"),"cancel-text":o(e)("common.cancel"),onConfirm:S=>Ue(d)},{default:n(()=>[a(f,{size:"small",type:"link",danger:""},{default:n(()=>[p(u(o(e)("inference.rowActions.unregister")),1)]),_:1})]),_:1},8,["title","ok-text","cancel-text","onConfirm"])],64)):g("",!0)]),emptyText:n(()=>[z("div",kt,[a(o(Z),{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),p(" "+u(j.value?o(e)("inference.empty.filteredNodes"):o(e)("inference.empty.noNodes")),1)])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"]),a(fe,{key:"tasks",tab:o(e)("inference.tabs.tasks")},{default:n(()=>[z("div",_t,[a(E,{value:L.value,"onUpdate:value":t[1]||(t[1]=i=>L.value=i),size:"small"},{default:n(()=>[a(F,{value:""},{default:n(()=>[p(u(o(e)("inference.filter.allStatuses")),1)]),_:1}),(c(!0),m(C,null,I(o(Ze),i=>(c(),x(F,{key:i,value:i},{default:n(()=>[p(u(ae(i)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"]),a(E,{value:U.value,"onUpdate:value":t[2]||(t[2]=i=>U.value=i),size:"small"},{default:n(()=>[a(F,{value:""},{default:n(()=>[p(u(o(e)("inference.filter.allModes")),1)]),_:1}),(c(!0),m(C,null,I(o(ke),i=>(c(),x(F,{key:i,value:i},{default:n(()=>[p(u(X(i)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),a(de,{columns:xe.value,"data-source":Ce.value,pagination:{pageSize:20,showTotal:i=>o(e)("inference.totals.rows",{count:i})},size:"small",loading:$.value,style:{background:"var(--bg-card)"}},{bodyCell:n(({column:i,record:d})=>[i.key==="model"?(c(),m(C,{key:0},[z("span",bt,u(d.model),1),d.input?(c(),m("div",xt,u(oe(d.input,60)),1)):g("",!0)],64)):g("",!0),i.key==="privacyMode"?(c(),x(A,{key:1,color:ze(d.privacyMode)},{default:n(()=>[p(u(X(d.privacyMode)),1)]),_:2},1032,["color"])):g("",!0),i.key==="priority"?(c(),m("span",{key:2,style:Xe({color:Me(d.priority),fontWeight:500})},u(d.priority),5)):g("",!0),i.key==="assignedNode"?(c(),m(C,{key:3},[d.assignedNode?(c(),m("span",ht,u(Ae(d.assignedNode)),1)):(c(),m("span",Ct,"—"))],64)):g("",!0),i.key==="status"?(c(),x(A,{key:4,color:we(d.status)},{default:n(()=>[p(u(ae(d.status)),1)]),_:2},1032,["color"])):g("",!0),i.key==="duration"?(c(),m(C,{key:5},[d.durationMs!=null?(c(),m("span",St,u(d.durationMs)+" ms ",1)):(c(),m("span",wt,"—"))],64)):g("",!0),i.key==="createdAt"?(c(),m("span",zt,u(o(_e)(d.createdAt)),1)):g("",!0),i.key==="action"?(c(),m(C,{key:7},[Fe(d)?(c(),x(f,{key:0,size:"small",type:"link",loading:Y.value===d.id,onClick:S=>qe(d)},{default:n(()=>[p(u(o(e)("inference.rowActions.complete")),1)]),_:1},8,["loading","onClick"])):g("",!0),Oe(d)?(c(),x(ce,{key:1,title:o(e)("inference.rowActions.failConfirm"),"ok-text":o(e)("inference.rowActions.failOk"),"cancel-text":o(e)("common.cancel"),onConfirm:S=>De(d)},{default:n(()=>[a(f,{size:"small",type:"link",danger:""},{default:n(()=>[p(u(o(e)("inference.rowActions.fail")),1)]),_:1})]),_:1},8,["title","ok-text","cancel-text","onConfirm"])):g("",!0)],64)):g("",!0)]),emptyText:n(()=>[z("div",Mt,[a(o(ee),{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),p(" "+u(L.value||U.value?o(e)("inference.empty.filteredTasks"):o(e)("inference.empty.noTasks")),1)])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"])]),_:1},8,["activeKey"]),a(ye,{open:P.value,"onUpdate:open":t[8]||(t[8]=i=>P.value=i),title:o(e)("inference.register.title"),"confirm-loading":V.value,width:520,"ok-text":o(e)("inference.register.ok"),"cancel-text":o(e)("common.cancel"),onOk:Ie,onCancel:se},{default:n(()=>[a(me,{"label-col":{span:6},"wrapper-col":{span:18},style:{"margin-top":"16px"}},{default:n(()=>[a(N,{label:o(e)("inference.register.nodeIdLabel"),required:""},{default:n(()=>[a(J,{value:k.nodeId,"onUpdate:value":t[4]||(t[4]=i=>k.nodeId=i),placeholder:o(e)("inference.register.nodeIdPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),a(N,{label:o(e)("inference.register.endpointLabel")},{default:n(()=>[a(J,{value:k.endpoint,"onUpdate:value":t[5]||(t[5]=i=>k.endpoint=i),placeholder:o(e)("inference.register.endpointPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),a(N,{label:o(e)("inference.register.capabilitiesLabel")},{default:n(()=>[a(J,{value:k.capabilities,"onUpdate:value":t[6]||(t[6]=i=>k.capabilities=i),placeholder:o(e)("inference.register.capabilitiesPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),a(N,{label:o(e)("inference.register.gpuLabel")},{default:n(()=>[a(pe,{value:k.gpuMemory,"onUpdate:value":t[7]||(t[7]=i=>k.gpuMemory=i),min:0,max:2e5,style:{width:"100%"}},null,8,["value"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),a(ye,{open:B.value,"onUpdate:open":t[13]||(t[13]=i=>B.value=i),title:o(e)("inference.submit.title"),"confirm-loading":G.value,width:520,"ok-text":o(e)("inference.submit.ok"),"cancel-text":o(e)("common.cancel"),onOk:$e,onCancel:ie},{default:n(()=>[a(me,{"label-col":{span:6},"wrapper-col":{span:18},style:{"margin-top":"16px"}},{default:n(()=>[a(N,{label:o(e)("inference.submit.modelLabel"),required:""},{default:n(()=>[a(J,{value:_.model,"onUpdate:value":t[9]||(t[9]=i=>_.model=i),placeholder:o(e)("inference.submit.modelPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),a(N,{label:o(e)("inference.submit.inputLabel")},{default:n(()=>[a(Be,{value:_.input,"onUpdate:value":t[10]||(t[10]=i=>_.input=i),"auto-size":{minRows:3,maxRows:6}},null,8,["value"])]),_:1},8,["label"]),a(N,{label:o(e)("inference.submit.priorityLabel")},{default:n(()=>[a(pe,{value:_.priority,"onUpdate:value":t[11]||(t[11]=i=>_.priority=i),min:1,max:10,style:{width:"100%"}},null,8,["value"])]),_:1},8,["label"]),a(N,{label:o(e)("inference.submit.modeLabel")},{default:n(()=>[a(E,{value:_.mode,"onUpdate:value":t[12]||(t[12]=i=>_.mode=i)},{default:n(()=>[(c(!0),m(C,null,I(o(ke),i=>(c(),x(F,{key:i,value:i},{default:n(()=>[p(u(X(i)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"])])}}},It=He(At,[["__scopeId","data-v-849fc966"]]);export{It as default};
|
package/src/assets/web-panel/assets/{KnowledgeGraph-DNw3Xz30.js → KnowledgeGraph-CByROhg-.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{_ as Be,u as Pe,b as Me,d as h}from"./index-BKl1SKpb.js";import{u as Ne,i as Ke,a as qe,b as Ve,c as Je,d as Ye,E as Qe}from"./echarts-BrEnqXDv.js";import{R as We,ap as Ze,ay as le,Y as ke,u as He,a1 as Xe}from"./icons-B2G69bhT.js";import{o as et,M as m,R as $,P as s,c as t,N as a,Q as R,S as G,K as p,r as v,L as d,O as c,u as S,F as A,Y as L,f as U,a as re}from"./vendor-Ci2pTZ_t.js";function N(l){if(!l)return null;const i=l.trim();try{return JSON.parse(i)}catch{const n=i.match(/(\[[\s\S]*\]|\{[\s\S]*\})/);if(!n)return null;try{return JSON.parse(n[1])}catch{return null}}}function ie(l,i=0){if(!l||typeof l!="object")return null;const n=l.id||l.entity_id||"";if(!n)return null;const k=Array.isArray(l.tags)?l.tags:typeof l.tags=="string"&&l.tags.length>0?l.tags.split(",").map(_=>_.trim()).filter(Boolean):[];return{key:n,id:n,name:l.name||"",type:l.type||"",tags:k,properties:l.properties&&typeof l.properties=="object"?l.properties:null,createdAt:l.created_at||l.createdAt||"",updatedAt:l.updated_at||l.updatedAt||"",_idx:i}}function _e(l,i=0){if(!l||typeof l!="object")return null;const n=l.id||l.relation_id||"";if(!n)return null;const k=l.sourceId||l.source_id||"",_=l.targetId||l.target_id||"";if(!k||!_)return null;const T=typeof l.weight=="number"?l.weight:typeof l.weight=="string"?parseFloat(l.weight):1;return{key:n,id:n,sourceId:k,targetId:_,relationType:l.relationType||l.relation_type||"",weight:Number.isFinite(T)?T:1,properties:l.properties&&typeof l.properties=="object"?l.properties:null,createdAt:l.created_at||l.createdAt||"",_idx:i}}function tt(l){const i=N(l);return Array.isArray(i)?i.map(ie).filter(Boolean):i&&Array.isArray(i.entities)?i.entities.map(ie).filter(Boolean):[]}function at(l){const i=N(l);return Array.isArray(i)?i.map(_e).filter(Boolean):i&&Array.isArray(i.relations)?i.relations.map(_e).filter(Boolean):[]}function ot(l){const i=N(l);if(!i||typeof i!="object"||Array.isArray(i))return{entityCount:0,relationCount:0,avgDegree:0,density:0,typeDistribution:{},relationTypeDistribution:{}};const n=k=>{const _=typeof k=="number"?k:parseFloat(k);return Number.isFinite(_)?_:0};return{entityCount:n(i.entityCount??i.entity_count),relationCount:n(i.relationCount??i.relation_count),avgDegree:n(i.avgDegree??i.avg_degree),density:n(i.density),typeDistribution:i.typeDistribution||i.type_distribution||{},relationTypeDistribution:i.relationTypeDistribution||i.relation_type_distribution||{}}}function nt(l){const i=N(l);return Array.isArray(i)?i.map((n,k)=>{if(!n||typeof n!="object"||!n.entity)return null;const _=ie(n.entity,k);return _?{key:`${_.id}-${k}`,depth:typeof n.depth=="number"?n.depth:0,entity:_}:null}).filter(Boolean):[]}function lt(l){const i=N(l);return Array.isArray(i)?i.map(n=>!n||typeof n!="object"||!n.name?null:{name:String(n.name),description:String(n.description||"")}).filter(Boolean):[]}function rt(l,i){const n=new Map,k=[];for(const f of l)n.has(f.type)||(n.set(f.type,k.length),k.push({name:f.type||"unknown"}));const _=l.map(f=>({id:f.id,name:f.name||f.id.slice(0,8),category:n.get(f.type)??0,value:1,symbolSize:24})),T=new Set(l.map(f=>f.id)),O=[];for(const f of i)!T.has(f.sourceId)||!T.has(f.targetId)||O.push({source:f.sourceId,target:f.targetId,value:f.relationType,lineStyle:{width:Math.max(1,Math.min(6,f.weight*2))}});return{nodes:_,links:O,categories:k}}const it={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},st={class:"page-title"},dt={class:"page-sub"},ut={key:0,style:{padding:"60px","text-align":"center"}},pt={key:1,style:{height:"540px"}},ct={key:0,style:{color:"#888","font-family":"monospace","font-size":"11px"}},yt={key:1,style:{color:"var(--text-primary)"}},gt={key:0,style:{color:"var(--text-muted)"}},mt={key:0,style:{color:"#888","font-family":"monospace","font-size":"11px"}},ft={key:1,style:{color:"var(--text-muted)"}},ht={key:2,style:{color:"#888","font-family":"monospace","font-size":"11px"}},vt={key:4,style:{color:"var(--text-secondary)","font-family":"monospace"}},kt={key:0,style:{padding:"40px","text-align":"center",color:"var(--text-muted)"}},_t={style:{display:"flex","justify-content":"space-between","margin-bottom":"4px"}},bt={style:{color:"var(--text-secondary)","font-family":"monospace"}},wt={key:0,style:{padding:"40px","text-align":"center",color:"var(--text-muted)"}},Gt={style:{display:"flex","justify-content":"space-between","margin-bottom":"4px"}},$t={style:{color:"var(--text-secondary)","font-family":"monospace"}},xt={style:{color:"var(--text-muted)","font-size":"11px"}},Ct={key:0,style:{padding:"30px","text-align":"center",color:"var(--text-muted)"}},St={style:{"margin-left":"12px",color:"var(--text-primary)"}},Tt={style:{"margin-left":"8px",color:"#888","font-family":"monospace","font-size":"11px"}},Rt={__name:"KnowledgeGraph",setup(l){Ne([Ke,qe,Ve,Je,Ye]);const i=Pe(),{t:n}=Me(),k=v(!1),_=v(!1),T=v(!1),O=v(!1),f=v(!1),Z=v(""),K=v(!1),se=v("graph"),x=v([]),B=v([]),H=v([]),E=v({entityCount:0,relationCount:0,avgDegree:0,density:0,typeDistribution:{},relationTypeDistribution:{}}),q=v(!1),V=v(!1),X=v(!1),b=re({name:"",type:"",tags:""}),y=re({sourceId:"",targetId:"",relationType:"",weight:1}),j=re({maxDepth:3,direction:"out"}),de=v(""),ue=v(""),P=v([]),be=U(()=>[{title:n("knowledgeGraph.entityCols.id"),key:"id",width:"120px"},{title:n("knowledgeGraph.entityCols.name"),key:"name",dataIndex:"name",ellipsis:!0},{title:n("knowledgeGraph.entityCols.type"),key:"type",dataIndex:"type",width:"140px"},{title:n("knowledgeGraph.entityCols.tags"),key:"tags",width:"200px"},{title:n("knowledgeGraph.entityCols.action"),key:"action",width:"160px"}]),we=U(()=>[{title:n("knowledgeGraph.relationCols.source"),key:"source",width:"120px"},{title:"",key:"arrow",width:"40px"},{title:n("knowledgeGraph.relationCols.target"),key:"target",width:"120px"},{title:n("knowledgeGraph.relationCols.relationType"),key:"relationType",width:"160px"},{title:n("knowledgeGraph.relationCols.weight"),key:"weight",width:"100px"}]),Ge={Person:"magenta",Organization:"blue",Project:"cyan",Technology:"geekblue",Document:"gold",Concept:"purple",Event:"volcano"};function ee(e){return Ge[e]||"default"}const $e=U(()=>{const e=new Map;for(const r of x.value)e.set(r.id,r.name||r.id.slice(0,8));return e});function pe(e){return $e.value.get(e)||e.slice(0,12)}function ce(e,r){return String(r?.children?.[0]?.children||"").toLowerCase().includes(String(e).toLowerCase())}const ye=U(()=>{const e=E.value.typeDistribution||{},r=Object.values(e).reduce((u,g)=>u+g,0)||1;return Object.entries(e).map(([u,g])=>({type:u,count:g,percent:Math.round(g/r*100)})).sort((u,g)=>g.count-u.count)}),ge=U(()=>{const e=E.value.relationTypeDistribution||{},r=Object.values(e).reduce((u,g)=>u+g,0)||1;return Object.entries(e).map(([u,g])=>({type:u,count:g,percent:Math.round(g/r*100)})).sort((u,g)=>g.count-u.count)}),xe=U(()=>{const{nodes:e,links:r,categories:u}=rt(x.value,B.value);return{tooltip:{show:!0},legend:[{data:u.map(g=>g.name),textStyle:{color:"#aaa"},bottom:0}],series:[{type:"graph",layout:"force",data:e,links:r,categories:u,roam:!0,label:{show:!0,position:"right",color:"#ddd",fontSize:11},lineStyle:{color:"source",curveness:.1,opacity:.6},emphasis:{focus:"adjacency",lineStyle:{width:4}},force:{repulsion:180,edgeLength:[60,140],gravity:.05}}]}});async function M(){_.value=!0;try{await Promise.all([Ce(),Se(),Te()])}finally{_.value=!1}}async function Ce(){try{const{output:e}=await i.execute("kg list --limit 500 --json",15e3);x.value=tt(e)}catch(e){h.error(n("knowledgeGraph.msg.loadEntitiesFailed")+": "+e.message),x.value=[]}}async function Se(){try{const{output:e}=await i.execute("kg relations --limit 1000 --json",15e3);B.value=at(e)}catch(e){h.error(n("knowledgeGraph.msg.loadRelationsFailed")+": "+e.message),B.value=[]}}async function Te(){try{const{output:e}=await i.execute("kg stats --json",1e4);E.value=ot(e)}catch(e){h.error(n("knowledgeGraph.msg.loadStatsFailed")+": "+e.message)}}async function Re(){if(!(H.value.length>0)){T.value=!0;try{const{output:e}=await i.execute("kg entity-types --json",1e4);H.value=lt(e)}catch(e){h.error(n("knowledgeGraph.msg.loadEntityTypesFailed")+": "+e.message)}finally{T.value=!1}}}async function Ee(){if(!b.name.trim()||!b.type){h.warning(n("knowledgeGraph.msg.addEntityEmpty"));return}O.value=!0;try{let r=`kg add "${b.name.trim().replace(/"/g,'\\"')}" ${b.type} --json`;b.tags.trim()&&(r+=` --tags "${b.tags.trim().replace(/"/g,'\\"')}"`);const{output:u,exitCode:g}=await i.execute(r,15e3);g!==0||/error|失败/i.test(u)?h.error(n("knowledgeGraph.msg.addEntityFailed")+": "+u.slice(0,120)):(h.success(n("knowledgeGraph.msg.addEntitySuccess")),q.value=!1,b.name="",b.type="",b.tags="",await M())}catch(e){h.error(n("knowledgeGraph.msg.addEntityFailed")+": "+e.message)}finally{O.value=!1}}async function Ie(){if(!y.sourceId||!y.targetId||!y.relationType.trim()){h.warning(n("knowledgeGraph.msg.addRelationEmpty"));return}if(y.sourceId===y.targetId){h.warning(n("knowledgeGraph.msg.addRelationSelfLoop"));return}f.value=!0;try{const e=y.relationType.trim().replace(/"/g,'\\"'),r=`kg add-relation ${y.sourceId} ${y.targetId} "${e}" --weight ${y.weight} --json`,{output:u,exitCode:g}=await i.execute(r,15e3);g!==0||/error|失败/i.test(u)?h.error(n("knowledgeGraph.msg.addRelationFailed")+": "+u.slice(0,120)):(h.success(n("knowledgeGraph.msg.addRelationSuccess")),V.value=!1,y.sourceId="",y.targetId="",y.relationType="",y.weight=1,await M())}catch(e){h.error(n("knowledgeGraph.msg.addRelationFailed")+": "+e.message)}finally{f.value=!1}}async function De(e){Z.value=e.id;try{const{output:r,exitCode:u}=await i.execute(`kg remove ${e.id}`,15e3);u!==0||/error|失败/i.test(r)?h.error(n("knowledgeGraph.msg.deleteFailed")+": "+r.slice(0,120)):(h.success(n("knowledgeGraph.msg.deleteSuccess")),await M())}catch(r){h.error(n("knowledgeGraph.msg.deleteFailed")+": "+r.message)}finally{Z.value=""}}function Ae(e){de.value=e.id,ue.value=e.name,P.value=[],X.value=!0}async function Oe(){K.value=!0;try{const e=`kg reason ${de.value} --max-depth ${j.maxDepth} --direction ${j.direction} --json`,{output:r}=await i.execute(e,15e3);P.value=nt(r),P.value.length===0&&h.info(n("knowledgeGraph.msg.reasonEmpty"))}catch(e){h.error(n("knowledgeGraph.msg.reasonFailed")+": "+e.message)}finally{K.value=!1}}return et(()=>{M(),Re()}),(e,r)=>{const u=p("a-button"),g=p("a-space"),J=p("a-statistic"),I=p("a-card"),z=p("a-col"),me=p("a-row"),je=p("a-alert"),te=p("a-empty"),Y=p("a-tab-pane"),D=p("a-tag"),ze=p("a-popconfirm"),fe=p("a-table"),he=p("a-progress"),Fe=p("a-tabs"),ae=p("a-input"),C=p("a-form-item"),F=p("a-select-option"),Q=p("a-select"),oe=p("a-form"),ne=p("a-modal"),ve=p("a-input-number"),Le=p("a-list-item"),Ue=p("a-list");return d(),m("div",null,[$("div",it,[$("div",null,[$("h2",st,s(e.$t("knowledgeGraph.title")),1),$("p",dt,s(e.$t("knowledgeGraph.subtitle")),1)]),t(g,null,{default:a(()=>[t(u,{loading:_.value,onClick:M},{icon:a(()=>[t(S(We))]),default:a(()=>[c(" "+s(e.$t("knowledgeGraph.refresh")),1)]),_:1},8,["loading"]),t(u,{type:"primary",onClick:r[0]||(r[0]=o=>q.value=!0)},{icon:a(()=>[t(S(Ze))]),default:a(()=>[c(" "+s(e.$t("knowledgeGraph.addEntity")),1)]),_:1}),t(u,{onClick:r[1]||(r[1]=o=>V.value=!0),disabled:x.value.length<2},{icon:a(()=>[t(S(le))]),default:a(()=>[c(" "+s(e.$t("knowledgeGraph.addRelation")),1)]),_:1},8,["disabled"])]),_:1})]),t(me,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:a(()=>[t(z,{xs:24,sm:12,lg:6},{default:a(()=>[t(I,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[t(J,{title:e.$t("knowledgeGraph.stats.entityCount"),value:E.value.entityCount,"value-style":{color:"#1677ff",fontSize:"20px"}},{prefix:a(()=>[t(S(ke))]),_:1},8,["title","value"])]),_:1})]),_:1}),t(z,{xs:24,sm:12,lg:6},{default:a(()=>[t(I,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[t(J,{title:e.$t("knowledgeGraph.stats.relationCount"),value:E.value.relationCount,"value-style":{color:"#52c41a",fontSize:"20px"}},{prefix:a(()=>[t(S(le))]),_:1},8,["title","value"])]),_:1})]),_:1}),t(z,{xs:24,sm:12,lg:6},{default:a(()=>[t(I,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[t(J,{title:e.$t("knowledgeGraph.stats.avgDegree"),value:E.value.avgDegree,precision:2,"value-style":{color:"#faad14",fontSize:"20px"}},null,8,["title","value"])]),_:1})]),_:1}),t(z,{xs:24,sm:12,lg:6},{default:a(()=>[t(I,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[t(J,{title:e.$t("knowledgeGraph.stats.density"),value:E.value.density,precision:4,"value-style":{color:"#722ed1",fontSize:"20px"}},null,8,["title","value"])]),_:1})]),_:1})]),_:1}),k.value?G("",!0):(d(),R(je,{key:0,message:e.$t("knowledgeGraph.webOnly.message"),description:e.$t("knowledgeGraph.webOnly.description"),type:"info","show-icon":"",closable:"",style:{"margin-bottom":"16px"}},null,8,["message","description"])),t(Fe,{activeKey:se.value,"onUpdate:activeKey":r[2]||(r[2]=o=>se.value=o),type:"card"},{default:a(()=>[t(Y,{key:"graph"},{tab:a(()=>[t(S(He)),c(" "+s(e.$t("knowledgeGraph.tabs.graph")),1)]),default:a(()=>[t(I,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[x.value.length===0?(d(),m("div",ut,[t(te,{description:e.$t("knowledgeGraph.table.emptyGraph")},null,8,["description"])])):(d(),m("div",pt,[t(S(Qe),{option:xe.value,autoresize:""},null,8,["option"])]))]),_:1})]),_:1}),t(Y,{key:"entities"},{tab:a(()=>[t(S(ke)),c(" "+s(e.$t("knowledgeGraph.tabs.entities",{n:x.value.length})),1)]),default:a(()=>[t(fe,{columns:be.value,"data-source":x.value,pagination:{pageSize:20,showTotal:o=>e.$t("knowledgeGraph.table.totalSuffix",{n:o})},size:"small",style:{background:"var(--bg-card)"},"row-class-name":()=>"kg-row"},{bodyCell:a(({column:o,record:w})=>[o.key==="id"?(d(),m("span",ct,s(w.id.slice(0,12)),1)):G("",!0),o.key==="name"?(d(),m("span",yt,s(w.name),1)):G("",!0),o.key==="type"?(d(),R(D,{key:2,color:ee(w.type)},{default:a(()=>[c(s(w.type),1)]),_:2},1032,["color"])):G("",!0),o.key==="tags"?(d(),m(A,{key:3},[(d(!0),m(A,null,L(w.tags,W=>(d(),R(D,{key:W,color:"default"},{default:a(()=>[c(s(W),1)]),_:2},1024))),128)),w.tags.length===0?(d(),m("span",gt,"-")):G("",!0)],64)):G("",!0),o.key==="action"?(d(),R(g,{key:4,size:"small"},{default:a(()=>[t(u,{size:"small",type:"link",onClick:W=>Ae(w)},{default:a(()=>[c(s(e.$t("knowledgeGraph.actions.reason")),1)]),_:1},8,["onClick"]),t(ze,{title:e.$t("knowledgeGraph.deleteConfirm.title"),"ok-text":e.$t("knowledgeGraph.deleteConfirm.ok"),"ok-type":"danger","cancel-text":e.$t("knowledgeGraph.deleteConfirm.cancel"),onConfirm:W=>De(w)},{default:a(()=>[t(u,{size:"small",type:"link",danger:"",loading:Z.value===w.id},{default:a(()=>[c(s(e.$t("knowledgeGraph.actions.delete")),1)]),_:1},8,["loading"])]),_:2},1032,["title","ok-text","cancel-text","onConfirm"])]),_:2},1024)):G("",!0)]),emptyText:a(()=>[t(te,{description:e.$t("knowledgeGraph.table.emptyEntities")},null,8,["description"])]),_:1},8,["columns","data-source","pagination"])]),_:1}),t(Y,{key:"relations"},{tab:a(()=>[t(S(le)),c(" "+s(e.$t("knowledgeGraph.tabs.relations",{n:B.value.length})),1)]),default:a(()=>[t(fe,{columns:we.value,"data-source":B.value,pagination:{pageSize:20,showTotal:o=>e.$t("knowledgeGraph.table.totalSuffix",{n:o})},size:"small",style:{background:"var(--bg-card)"},"row-class-name":()=>"kg-row"},{bodyCell:a(({column:o,record:w})=>[o.key==="source"?(d(),m("span",mt,s(pe(w.sourceId)),1)):G("",!0),o.key==="arrow"?(d(),m("span",ft,"→")):G("",!0),o.key==="target"?(d(),m("span",ht,s(pe(w.targetId)),1)):G("",!0),o.key==="relationType"?(d(),R(D,{key:3,color:"cyan"},{default:a(()=>[c(s(w.relationType),1)]),_:2},1024)):G("",!0),o.key==="weight"?(d(),m("span",vt,s(w.weight.toFixed(2)),1)):G("",!0)]),emptyText:a(()=>[t(te,{description:e.$t("knowledgeGraph.table.emptyRelations")},null,8,["description"])]),_:1},8,["columns","data-source","pagination"])]),_:1}),t(Y,{key:"distribution"},{tab:a(()=>[t(S(Xe)),c(" "+s(e.$t("knowledgeGraph.tabs.distribution")),1)]),default:a(()=>[t(me,{gutter:[24,24]},{default:a(()=>[t(z,{xs:24,md:12},{default:a(()=>[t(I,{title:e.$t("knowledgeGraph.distribution.entityTypes"),style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[ye.value.length===0?(d(),m("div",kt,s(e.$t("knowledgeGraph.table.emptyData")),1)):G("",!0),(d(!0),m(A,null,L(ye.value,o=>(d(),m("div",{key:o.type,style:{"margin-bottom":"8px"}},[$("div",_t,[t(D,{color:ee(o.type)},{default:a(()=>[c(s(o.type),1)]),_:2},1032,["color"]),$("span",bt,s(o.count),1)]),t(he,{percent:o.percent,"show-info":!1,"stroke-color":"#1677ff"},null,8,["percent"])]))),128))]),_:1},8,["title"])]),_:1}),t(z,{xs:24,md:12},{default:a(()=>[t(I,{title:e.$t("knowledgeGraph.distribution.relationTypes"),style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[ge.value.length===0?(d(),m("div",wt,s(e.$t("knowledgeGraph.table.emptyData")),1)):G("",!0),(d(!0),m(A,null,L(ge.value,o=>(d(),m("div",{key:o.type,style:{"margin-bottom":"8px"}},[$("div",Gt,[t(D,{color:"cyan"},{default:a(()=>[c(s(o.type),1)]),_:2},1024),$("span",$t,s(o.count),1)]),t(he,{percent:o.percent,"show-info":!1,"stroke-color":"#52c41a"},null,8,["percent"])]))),128))]),_:1},8,["title"])]),_:1})]),_:1})]),_:1})]),_:1},8,["activeKey"]),t(ne,{open:q.value,"onUpdate:open":r[6]||(r[6]=o=>q.value=o),title:e.$t("knowledgeGraph.addEntity_modal.title"),"confirm-loading":O.value,onOk:Ee,"ok-text":e.$t("knowledgeGraph.addEntity_modal.ok"),"cancel-text":e.$t("knowledgeGraph.addEntity_modal.cancel")},{default:a(()=>[t(oe,{"label-col":{span:6},"wrapper-col":{span:18},style:{"margin-top":"16px"}},{default:a(()=>[t(C,{label:e.$t("knowledgeGraph.addEntity_modal.nameLabel"),required:""},{default:a(()=>[t(ae,{value:b.name,"onUpdate:value":r[3]||(r[3]=o=>b.name=o),placeholder:e.$t("knowledgeGraph.addEntity_modal.namePlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),t(C,{label:e.$t("knowledgeGraph.addEntity_modal.typeLabel"),required:""},{default:a(()=>[t(Q,{value:b.type,"onUpdate:value":r[4]||(r[4]=o=>b.type=o),placeholder:e.$t("knowledgeGraph.addEntity_modal.typePlaceholder"),loading:T.value},{default:a(()=>[(d(!0),m(A,null,L(H.value,o=>(d(),R(F,{key:o.name,value:o.name},{default:a(()=>[c(s(o.name)+" ",1),$("span",xt,"— "+s(o.description),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value","placeholder","loading"])]),_:1},8,["label"]),t(C,{label:e.$t("knowledgeGraph.addEntity_modal.tagsLabel")},{default:a(()=>[t(ae,{value:b.tags,"onUpdate:value":r[5]||(r[5]=o=>b.tags=o),placeholder:e.$t("knowledgeGraph.addEntity_modal.tagsPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),t(ne,{open:V.value,"onUpdate:open":r[11]||(r[11]=o=>V.value=o),title:e.$t("knowledgeGraph.addRelation_modal.title"),"confirm-loading":f.value,onOk:Ie,"ok-text":e.$t("knowledgeGraph.addRelation_modal.ok"),"cancel-text":e.$t("knowledgeGraph.addRelation_modal.cancel")},{default:a(()=>[t(oe,{"label-col":{span:6},"wrapper-col":{span:18},style:{"margin-top":"16px"}},{default:a(()=>[t(C,{label:e.$t("knowledgeGraph.addRelation_modal.sourceLabel"),required:""},{default:a(()=>[t(Q,{value:y.sourceId,"onUpdate:value":r[7]||(r[7]=o=>y.sourceId=o),placeholder:e.$t("knowledgeGraph.addRelation_modal.sourcePlaceholder"),"show-search":"","filter-option":ce},{default:a(()=>[(d(!0),m(A,null,L(x.value,o=>(d(),R(F,{key:o.id,value:o.id},{default:a(()=>[c(s(o.name)+" ("+s(o.type)+") ",1)]),_:2},1032,["value"]))),128))]),_:1},8,["value","placeholder"])]),_:1},8,["label"]),t(C,{label:e.$t("knowledgeGraph.addRelation_modal.targetLabel"),required:""},{default:a(()=>[t(Q,{value:y.targetId,"onUpdate:value":r[8]||(r[8]=o=>y.targetId=o),placeholder:e.$t("knowledgeGraph.addRelation_modal.targetPlaceholder"),"show-search":"","filter-option":ce},{default:a(()=>[(d(!0),m(A,null,L(x.value,o=>(d(),R(F,{key:o.id,value:o.id,disabled:o.id===y.sourceId},{default:a(()=>[c(s(o.name)+" ("+s(o.type)+") ",1)]),_:2},1032,["value","disabled"]))),128))]),_:1},8,["value","placeholder"])]),_:1},8,["label"]),t(C,{label:e.$t("knowledgeGraph.addRelation_modal.relationTypeLabel"),required:""},{default:a(()=>[t(ae,{value:y.relationType,"onUpdate:value":r[9]||(r[9]=o=>y.relationType=o),placeholder:e.$t("knowledgeGraph.addRelation_modal.relationTypePlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),t(C,{label:e.$t("knowledgeGraph.addRelation_modal.weightLabel")},{default:a(()=>[t(ve,{value:y.weight,"onUpdate:value":r[10]||(r[10]=o=>y.weight=o),min:.1,max:10,step:.1,style:{width:"100%"}},null,8,["value"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),t(ne,{open:X.value,"onUpdate:open":r[14]||(r[14]=o=>X.value=o),title:e.$t("knowledgeGraph.reason_modal.title",{name:ue.value}),width:640,footer:null},{default:a(()=>[t(oe,{layout:"inline",style:{"margin-bottom":"16px"}},{default:a(()=>[t(C,{label:e.$t("knowledgeGraph.reason_modal.maxDepth")},{default:a(()=>[t(ve,{value:j.maxDepth,"onUpdate:value":r[12]||(r[12]=o=>j.maxDepth=o),min:1,max:10},null,8,["value"])]),_:1},8,["label"]),t(C,{label:e.$t("knowledgeGraph.reason_modal.direction")},{default:a(()=>[t(Q,{value:j.direction,"onUpdate:value":r[13]||(r[13]=o=>j.direction=o),style:{width:"100px"}},{default:a(()=>[t(F,{value:"out"},{default:a(()=>[c(s(e.$t("knowledgeGraph.reason_modal.directionOut")),1)]),_:1}),t(F,{value:"in"},{default:a(()=>[c(s(e.$t("knowledgeGraph.reason_modal.directionIn")),1)]),_:1}),t(F,{value:"both"},{default:a(()=>[c(s(e.$t("knowledgeGraph.reason_modal.directionBoth")),1)]),_:1})]),_:1},8,["value"])]),_:1},8,["label"]),t(C,null,{default:a(()=>[t(u,{type:"primary",loading:K.value,onClick:Oe},{default:a(()=>[c(s(e.$t("knowledgeGraph.reason_modal.run")),1)]),_:1},8,["loading"])]),_:1})]),_:1}),P.value.length===0&&!K.value?(d(),m("div",Ct,s(e.$t("knowledgeGraph.reason_modal.hint")),1)):(d(),R(Ue,{key:1,"data-source":P.value,size:"small"},{renderItem:a(({item:o})=>[t(Le,null,{default:a(()=>[t(D,{color:"purple"},{default:a(()=>[c("depth="+s(o.depth),1)]),_:2},1024),t(D,{color:ee(o.entity.type),style:{"margin-left":"8px"}},{default:a(()=>[c(s(o.entity.type),1)]),_:2},1032,["color"]),$("span",St,s(o.entity.name),1),$("span",Tt,s(o.entity.id.slice(0,12)),1)]),_:2},1024)]),_:1},8,["data-source"]))]),_:1},8,["open","title"])])}}},Ot=Be(Rt,[["__scopeId","data-v-d675e73f"]]);export{Ot as default};
|
|
1
|
+
import{_ as Be,u as Pe,b as Me,d as h}from"./index-BxjOmfVA.js";import{u as Ne,i as qe,a as Ke,b as Ve,c as Je,d as Ye,E as Qe}from"./echarts-BrEnqXDv.js";import{R as We,aq as Ze,az as le,_ as ke,u as He,a2 as Xe}from"./icons-B2mcO3YM.js";import{o as et,M as m,R as $,P as s,c as t,N as a,Q as R,S as G,K as p,r as v,L as d,O as c,u as S,F as A,Y as L,f as U,a as re}from"./vendor-Ci2pTZ_t.js";function N(l){if(!l)return null;const i=l.trim();try{return JSON.parse(i)}catch{const n=i.match(/(\[[\s\S]*\]|\{[\s\S]*\})/);if(!n)return null;try{return JSON.parse(n[1])}catch{return null}}}function ie(l,i=0){if(!l||typeof l!="object")return null;const n=l.id||l.entity_id||"";if(!n)return null;const k=Array.isArray(l.tags)?l.tags:typeof l.tags=="string"&&l.tags.length>0?l.tags.split(",").map(_=>_.trim()).filter(Boolean):[];return{key:n,id:n,name:l.name||"",type:l.type||"",tags:k,properties:l.properties&&typeof l.properties=="object"?l.properties:null,createdAt:l.created_at||l.createdAt||"",updatedAt:l.updated_at||l.updatedAt||"",_idx:i}}function _e(l,i=0){if(!l||typeof l!="object")return null;const n=l.id||l.relation_id||"";if(!n)return null;const k=l.sourceId||l.source_id||"",_=l.targetId||l.target_id||"";if(!k||!_)return null;const T=typeof l.weight=="number"?l.weight:typeof l.weight=="string"?parseFloat(l.weight):1;return{key:n,id:n,sourceId:k,targetId:_,relationType:l.relationType||l.relation_type||"",weight:Number.isFinite(T)?T:1,properties:l.properties&&typeof l.properties=="object"?l.properties:null,createdAt:l.created_at||l.createdAt||"",_idx:i}}function tt(l){const i=N(l);return Array.isArray(i)?i.map(ie).filter(Boolean):i&&Array.isArray(i.entities)?i.entities.map(ie).filter(Boolean):[]}function at(l){const i=N(l);return Array.isArray(i)?i.map(_e).filter(Boolean):i&&Array.isArray(i.relations)?i.relations.map(_e).filter(Boolean):[]}function ot(l){const i=N(l);if(!i||typeof i!="object"||Array.isArray(i))return{entityCount:0,relationCount:0,avgDegree:0,density:0,typeDistribution:{},relationTypeDistribution:{}};const n=k=>{const _=typeof k=="number"?k:parseFloat(k);return Number.isFinite(_)?_:0};return{entityCount:n(i.entityCount??i.entity_count),relationCount:n(i.relationCount??i.relation_count),avgDegree:n(i.avgDegree??i.avg_degree),density:n(i.density),typeDistribution:i.typeDistribution||i.type_distribution||{},relationTypeDistribution:i.relationTypeDistribution||i.relation_type_distribution||{}}}function nt(l){const i=N(l);return Array.isArray(i)?i.map((n,k)=>{if(!n||typeof n!="object"||!n.entity)return null;const _=ie(n.entity,k);return _?{key:`${_.id}-${k}`,depth:typeof n.depth=="number"?n.depth:0,entity:_}:null}).filter(Boolean):[]}function lt(l){const i=N(l);return Array.isArray(i)?i.map(n=>!n||typeof n!="object"||!n.name?null:{name:String(n.name),description:String(n.description||"")}).filter(Boolean):[]}function rt(l,i){const n=new Map,k=[];for(const f of l)n.has(f.type)||(n.set(f.type,k.length),k.push({name:f.type||"unknown"}));const _=l.map(f=>({id:f.id,name:f.name||f.id.slice(0,8),category:n.get(f.type)??0,value:1,symbolSize:24})),T=new Set(l.map(f=>f.id)),O=[];for(const f of i)!T.has(f.sourceId)||!T.has(f.targetId)||O.push({source:f.sourceId,target:f.targetId,value:f.relationType,lineStyle:{width:Math.max(1,Math.min(6,f.weight*2))}});return{nodes:_,links:O,categories:k}}const it={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},st={class:"page-title"},dt={class:"page-sub"},ut={key:0,style:{padding:"60px","text-align":"center"}},pt={key:1,style:{height:"540px"}},ct={key:0,style:{color:"#888","font-family":"monospace","font-size":"11px"}},yt={key:1,style:{color:"var(--text-primary)"}},gt={key:0,style:{color:"var(--text-muted)"}},mt={key:0,style:{color:"#888","font-family":"monospace","font-size":"11px"}},ft={key:1,style:{color:"var(--text-muted)"}},ht={key:2,style:{color:"#888","font-family":"monospace","font-size":"11px"}},vt={key:4,style:{color:"var(--text-secondary)","font-family":"monospace"}},kt={key:0,style:{padding:"40px","text-align":"center",color:"var(--text-muted)"}},_t={style:{display:"flex","justify-content":"space-between","margin-bottom":"4px"}},bt={style:{color:"var(--text-secondary)","font-family":"monospace"}},wt={key:0,style:{padding:"40px","text-align":"center",color:"var(--text-muted)"}},Gt={style:{display:"flex","justify-content":"space-between","margin-bottom":"4px"}},$t={style:{color:"var(--text-secondary)","font-family":"monospace"}},xt={style:{color:"var(--text-muted)","font-size":"11px"}},Ct={key:0,style:{padding:"30px","text-align":"center",color:"var(--text-muted)"}},St={style:{"margin-left":"12px",color:"var(--text-primary)"}},Tt={style:{"margin-left":"8px",color:"#888","font-family":"monospace","font-size":"11px"}},Rt={__name:"KnowledgeGraph",setup(l){Ne([qe,Ke,Ve,Je,Ye]);const i=Pe(),{t:n}=Me(),k=v(!1),_=v(!1),T=v(!1),O=v(!1),f=v(!1),Z=v(""),q=v(!1),se=v("graph"),x=v([]),B=v([]),H=v([]),E=v({entityCount:0,relationCount:0,avgDegree:0,density:0,typeDistribution:{},relationTypeDistribution:{}}),K=v(!1),V=v(!1),X=v(!1),b=re({name:"",type:"",tags:""}),y=re({sourceId:"",targetId:"",relationType:"",weight:1}),z=re({maxDepth:3,direction:"out"}),de=v(""),ue=v(""),P=v([]),be=U(()=>[{title:n("knowledgeGraph.entityCols.id"),key:"id",width:"120px"},{title:n("knowledgeGraph.entityCols.name"),key:"name",dataIndex:"name",ellipsis:!0},{title:n("knowledgeGraph.entityCols.type"),key:"type",dataIndex:"type",width:"140px"},{title:n("knowledgeGraph.entityCols.tags"),key:"tags",width:"200px"},{title:n("knowledgeGraph.entityCols.action"),key:"action",width:"160px"}]),we=U(()=>[{title:n("knowledgeGraph.relationCols.source"),key:"source",width:"120px"},{title:"",key:"arrow",width:"40px"},{title:n("knowledgeGraph.relationCols.target"),key:"target",width:"120px"},{title:n("knowledgeGraph.relationCols.relationType"),key:"relationType",width:"160px"},{title:n("knowledgeGraph.relationCols.weight"),key:"weight",width:"100px"}]),Ge={Person:"magenta",Organization:"blue",Project:"cyan",Technology:"geekblue",Document:"gold",Concept:"purple",Event:"volcano"};function ee(e){return Ge[e]||"default"}const $e=U(()=>{const e=new Map;for(const r of x.value)e.set(r.id,r.name||r.id.slice(0,8));return e});function pe(e){return $e.value.get(e)||e.slice(0,12)}function ce(e,r){return String(r?.children?.[0]?.children||"").toLowerCase().includes(String(e).toLowerCase())}const ye=U(()=>{const e=E.value.typeDistribution||{},r=Object.values(e).reduce((u,g)=>u+g,0)||1;return Object.entries(e).map(([u,g])=>({type:u,count:g,percent:Math.round(g/r*100)})).sort((u,g)=>g.count-u.count)}),ge=U(()=>{const e=E.value.relationTypeDistribution||{},r=Object.values(e).reduce((u,g)=>u+g,0)||1;return Object.entries(e).map(([u,g])=>({type:u,count:g,percent:Math.round(g/r*100)})).sort((u,g)=>g.count-u.count)}),xe=U(()=>{const{nodes:e,links:r,categories:u}=rt(x.value,B.value);return{tooltip:{show:!0},legend:[{data:u.map(g=>g.name),textStyle:{color:"#aaa"},bottom:0}],series:[{type:"graph",layout:"force",data:e,links:r,categories:u,roam:!0,label:{show:!0,position:"right",color:"#ddd",fontSize:11},lineStyle:{color:"source",curveness:.1,opacity:.6},emphasis:{focus:"adjacency",lineStyle:{width:4}},force:{repulsion:180,edgeLength:[60,140],gravity:.05}}]}});async function M(){_.value=!0;try{await Promise.all([Ce(),Se(),Te()])}finally{_.value=!1}}async function Ce(){try{const{output:e}=await i.execute("kg list --limit 500 --json",15e3);x.value=tt(e)}catch(e){h.error(n("knowledgeGraph.msg.loadEntitiesFailed")+": "+e.message),x.value=[]}}async function Se(){try{const{output:e}=await i.execute("kg relations --limit 1000 --json",15e3);B.value=at(e)}catch(e){h.error(n("knowledgeGraph.msg.loadRelationsFailed")+": "+e.message),B.value=[]}}async function Te(){try{const{output:e}=await i.execute("kg stats --json",1e4);E.value=ot(e)}catch(e){h.error(n("knowledgeGraph.msg.loadStatsFailed")+": "+e.message)}}async function Re(){if(!(H.value.length>0)){T.value=!0;try{const{output:e}=await i.execute("kg entity-types --json",1e4);H.value=lt(e)}catch(e){h.error(n("knowledgeGraph.msg.loadEntityTypesFailed")+": "+e.message)}finally{T.value=!1}}}async function Ee(){if(!b.name.trim()||!b.type){h.warning(n("knowledgeGraph.msg.addEntityEmpty"));return}O.value=!0;try{let r=`kg add "${b.name.trim().replace(/"/g,'\\"')}" ${b.type} --json`;b.tags.trim()&&(r+=` --tags "${b.tags.trim().replace(/"/g,'\\"')}"`);const{output:u,exitCode:g}=await i.execute(r,15e3);g!==0||/error|失败/i.test(u)?h.error(n("knowledgeGraph.msg.addEntityFailed")+": "+u.slice(0,120)):(h.success(n("knowledgeGraph.msg.addEntitySuccess")),K.value=!1,b.name="",b.type="",b.tags="",await M())}catch(e){h.error(n("knowledgeGraph.msg.addEntityFailed")+": "+e.message)}finally{O.value=!1}}async function Ie(){if(!y.sourceId||!y.targetId||!y.relationType.trim()){h.warning(n("knowledgeGraph.msg.addRelationEmpty"));return}if(y.sourceId===y.targetId){h.warning(n("knowledgeGraph.msg.addRelationSelfLoop"));return}f.value=!0;try{const e=y.relationType.trim().replace(/"/g,'\\"'),r=`kg add-relation ${y.sourceId} ${y.targetId} "${e}" --weight ${y.weight} --json`,{output:u,exitCode:g}=await i.execute(r,15e3);g!==0||/error|失败/i.test(u)?h.error(n("knowledgeGraph.msg.addRelationFailed")+": "+u.slice(0,120)):(h.success(n("knowledgeGraph.msg.addRelationSuccess")),V.value=!1,y.sourceId="",y.targetId="",y.relationType="",y.weight=1,await M())}catch(e){h.error(n("knowledgeGraph.msg.addRelationFailed")+": "+e.message)}finally{f.value=!1}}async function De(e){Z.value=e.id;try{const{output:r,exitCode:u}=await i.execute(`kg remove ${e.id}`,15e3);u!==0||/error|失败/i.test(r)?h.error(n("knowledgeGraph.msg.deleteFailed")+": "+r.slice(0,120)):(h.success(n("knowledgeGraph.msg.deleteSuccess")),await M())}catch(r){h.error(n("knowledgeGraph.msg.deleteFailed")+": "+r.message)}finally{Z.value=""}}function Ae(e){de.value=e.id,ue.value=e.name,P.value=[],X.value=!0}async function Oe(){q.value=!0;try{const e=`kg reason ${de.value} --max-depth ${z.maxDepth} --direction ${z.direction} --json`,{output:r}=await i.execute(e,15e3);P.value=nt(r),P.value.length===0&&h.info(n("knowledgeGraph.msg.reasonEmpty"))}catch(e){h.error(n("knowledgeGraph.msg.reasonFailed")+": "+e.message)}finally{q.value=!1}}return et(()=>{M(),Re()}),(e,r)=>{const u=p("a-button"),g=p("a-space"),J=p("a-statistic"),I=p("a-card"),j=p("a-col"),me=p("a-row"),ze=p("a-alert"),te=p("a-empty"),Y=p("a-tab-pane"),D=p("a-tag"),je=p("a-popconfirm"),fe=p("a-table"),he=p("a-progress"),Fe=p("a-tabs"),ae=p("a-input"),C=p("a-form-item"),F=p("a-select-option"),Q=p("a-select"),oe=p("a-form"),ne=p("a-modal"),ve=p("a-input-number"),Le=p("a-list-item"),Ue=p("a-list");return d(),m("div",null,[$("div",it,[$("div",null,[$("h2",st,s(e.$t("knowledgeGraph.title")),1),$("p",dt,s(e.$t("knowledgeGraph.subtitle")),1)]),t(g,null,{default:a(()=>[t(u,{loading:_.value,onClick:M},{icon:a(()=>[t(S(We))]),default:a(()=>[c(" "+s(e.$t("knowledgeGraph.refresh")),1)]),_:1},8,["loading"]),t(u,{type:"primary",onClick:r[0]||(r[0]=o=>K.value=!0)},{icon:a(()=>[t(S(Ze))]),default:a(()=>[c(" "+s(e.$t("knowledgeGraph.addEntity")),1)]),_:1}),t(u,{onClick:r[1]||(r[1]=o=>V.value=!0),disabled:x.value.length<2},{icon:a(()=>[t(S(le))]),default:a(()=>[c(" "+s(e.$t("knowledgeGraph.addRelation")),1)]),_:1},8,["disabled"])]),_:1})]),t(me,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:a(()=>[t(j,{xs:24,sm:12,lg:6},{default:a(()=>[t(I,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[t(J,{title:e.$t("knowledgeGraph.stats.entityCount"),value:E.value.entityCount,"value-style":{color:"#1677ff",fontSize:"20px"}},{prefix:a(()=>[t(S(ke))]),_:1},8,["title","value"])]),_:1})]),_:1}),t(j,{xs:24,sm:12,lg:6},{default:a(()=>[t(I,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[t(J,{title:e.$t("knowledgeGraph.stats.relationCount"),value:E.value.relationCount,"value-style":{color:"#52c41a",fontSize:"20px"}},{prefix:a(()=>[t(S(le))]),_:1},8,["title","value"])]),_:1})]),_:1}),t(j,{xs:24,sm:12,lg:6},{default:a(()=>[t(I,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[t(J,{title:e.$t("knowledgeGraph.stats.avgDegree"),value:E.value.avgDegree,precision:2,"value-style":{color:"#faad14",fontSize:"20px"}},null,8,["title","value"])]),_:1})]),_:1}),t(j,{xs:24,sm:12,lg:6},{default:a(()=>[t(I,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[t(J,{title:e.$t("knowledgeGraph.stats.density"),value:E.value.density,precision:4,"value-style":{color:"#722ed1",fontSize:"20px"}},null,8,["title","value"])]),_:1})]),_:1})]),_:1}),k.value?G("",!0):(d(),R(ze,{key:0,message:e.$t("knowledgeGraph.webOnly.message"),description:e.$t("knowledgeGraph.webOnly.description"),type:"info","show-icon":"",closable:"",style:{"margin-bottom":"16px"}},null,8,["message","description"])),t(Fe,{activeKey:se.value,"onUpdate:activeKey":r[2]||(r[2]=o=>se.value=o),type:"card"},{default:a(()=>[t(Y,{key:"graph"},{tab:a(()=>[t(S(He)),c(" "+s(e.$t("knowledgeGraph.tabs.graph")),1)]),default:a(()=>[t(I,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[x.value.length===0?(d(),m("div",ut,[t(te,{description:e.$t("knowledgeGraph.table.emptyGraph")},null,8,["description"])])):(d(),m("div",pt,[t(S(Qe),{option:xe.value,autoresize:""},null,8,["option"])]))]),_:1})]),_:1}),t(Y,{key:"entities"},{tab:a(()=>[t(S(ke)),c(" "+s(e.$t("knowledgeGraph.tabs.entities",{n:x.value.length})),1)]),default:a(()=>[t(fe,{columns:be.value,"data-source":x.value,pagination:{pageSize:20,showTotal:o=>e.$t("knowledgeGraph.table.totalSuffix",{n:o})},size:"small",style:{background:"var(--bg-card)"},"row-class-name":()=>"kg-row"},{bodyCell:a(({column:o,record:w})=>[o.key==="id"?(d(),m("span",ct,s(w.id.slice(0,12)),1)):G("",!0),o.key==="name"?(d(),m("span",yt,s(w.name),1)):G("",!0),o.key==="type"?(d(),R(D,{key:2,color:ee(w.type)},{default:a(()=>[c(s(w.type),1)]),_:2},1032,["color"])):G("",!0),o.key==="tags"?(d(),m(A,{key:3},[(d(!0),m(A,null,L(w.tags,W=>(d(),R(D,{key:W,color:"default"},{default:a(()=>[c(s(W),1)]),_:2},1024))),128)),w.tags.length===0?(d(),m("span",gt,"-")):G("",!0)],64)):G("",!0),o.key==="action"?(d(),R(g,{key:4,size:"small"},{default:a(()=>[t(u,{size:"small",type:"link",onClick:W=>Ae(w)},{default:a(()=>[c(s(e.$t("knowledgeGraph.actions.reason")),1)]),_:1},8,["onClick"]),t(je,{title:e.$t("knowledgeGraph.deleteConfirm.title"),"ok-text":e.$t("knowledgeGraph.deleteConfirm.ok"),"ok-type":"danger","cancel-text":e.$t("knowledgeGraph.deleteConfirm.cancel"),onConfirm:W=>De(w)},{default:a(()=>[t(u,{size:"small",type:"link",danger:"",loading:Z.value===w.id},{default:a(()=>[c(s(e.$t("knowledgeGraph.actions.delete")),1)]),_:1},8,["loading"])]),_:2},1032,["title","ok-text","cancel-text","onConfirm"])]),_:2},1024)):G("",!0)]),emptyText:a(()=>[t(te,{description:e.$t("knowledgeGraph.table.emptyEntities")},null,8,["description"])]),_:1},8,["columns","data-source","pagination"])]),_:1}),t(Y,{key:"relations"},{tab:a(()=>[t(S(le)),c(" "+s(e.$t("knowledgeGraph.tabs.relations",{n:B.value.length})),1)]),default:a(()=>[t(fe,{columns:we.value,"data-source":B.value,pagination:{pageSize:20,showTotal:o=>e.$t("knowledgeGraph.table.totalSuffix",{n:o})},size:"small",style:{background:"var(--bg-card)"},"row-class-name":()=>"kg-row"},{bodyCell:a(({column:o,record:w})=>[o.key==="source"?(d(),m("span",mt,s(pe(w.sourceId)),1)):G("",!0),o.key==="arrow"?(d(),m("span",ft,"→")):G("",!0),o.key==="target"?(d(),m("span",ht,s(pe(w.targetId)),1)):G("",!0),o.key==="relationType"?(d(),R(D,{key:3,color:"cyan"},{default:a(()=>[c(s(w.relationType),1)]),_:2},1024)):G("",!0),o.key==="weight"?(d(),m("span",vt,s(w.weight.toFixed(2)),1)):G("",!0)]),emptyText:a(()=>[t(te,{description:e.$t("knowledgeGraph.table.emptyRelations")},null,8,["description"])]),_:1},8,["columns","data-source","pagination"])]),_:1}),t(Y,{key:"distribution"},{tab:a(()=>[t(S(Xe)),c(" "+s(e.$t("knowledgeGraph.tabs.distribution")),1)]),default:a(()=>[t(me,{gutter:[24,24]},{default:a(()=>[t(j,{xs:24,md:12},{default:a(()=>[t(I,{title:e.$t("knowledgeGraph.distribution.entityTypes"),style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[ye.value.length===0?(d(),m("div",kt,s(e.$t("knowledgeGraph.table.emptyData")),1)):G("",!0),(d(!0),m(A,null,L(ye.value,o=>(d(),m("div",{key:o.type,style:{"margin-bottom":"8px"}},[$("div",_t,[t(D,{color:ee(o.type)},{default:a(()=>[c(s(o.type),1)]),_:2},1032,["color"]),$("span",bt,s(o.count),1)]),t(he,{percent:o.percent,"show-info":!1,"stroke-color":"#1677ff"},null,8,["percent"])]))),128))]),_:1},8,["title"])]),_:1}),t(j,{xs:24,md:12},{default:a(()=>[t(I,{title:e.$t("knowledgeGraph.distribution.relationTypes"),style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[ge.value.length===0?(d(),m("div",wt,s(e.$t("knowledgeGraph.table.emptyData")),1)):G("",!0),(d(!0),m(A,null,L(ge.value,o=>(d(),m("div",{key:o.type,style:{"margin-bottom":"8px"}},[$("div",Gt,[t(D,{color:"cyan"},{default:a(()=>[c(s(o.type),1)]),_:2},1024),$("span",$t,s(o.count),1)]),t(he,{percent:o.percent,"show-info":!1,"stroke-color":"#52c41a"},null,8,["percent"])]))),128))]),_:1},8,["title"])]),_:1})]),_:1})]),_:1})]),_:1},8,["activeKey"]),t(ne,{open:K.value,"onUpdate:open":r[6]||(r[6]=o=>K.value=o),title:e.$t("knowledgeGraph.addEntity_modal.title"),"confirm-loading":O.value,onOk:Ee,"ok-text":e.$t("knowledgeGraph.addEntity_modal.ok"),"cancel-text":e.$t("knowledgeGraph.addEntity_modal.cancel")},{default:a(()=>[t(oe,{"label-col":{span:6},"wrapper-col":{span:18},style:{"margin-top":"16px"}},{default:a(()=>[t(C,{label:e.$t("knowledgeGraph.addEntity_modal.nameLabel"),required:""},{default:a(()=>[t(ae,{value:b.name,"onUpdate:value":r[3]||(r[3]=o=>b.name=o),placeholder:e.$t("knowledgeGraph.addEntity_modal.namePlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),t(C,{label:e.$t("knowledgeGraph.addEntity_modal.typeLabel"),required:""},{default:a(()=>[t(Q,{value:b.type,"onUpdate:value":r[4]||(r[4]=o=>b.type=o),placeholder:e.$t("knowledgeGraph.addEntity_modal.typePlaceholder"),loading:T.value},{default:a(()=>[(d(!0),m(A,null,L(H.value,o=>(d(),R(F,{key:o.name,value:o.name},{default:a(()=>[c(s(o.name)+" ",1),$("span",xt,"— "+s(o.description),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value","placeholder","loading"])]),_:1},8,["label"]),t(C,{label:e.$t("knowledgeGraph.addEntity_modal.tagsLabel")},{default:a(()=>[t(ae,{value:b.tags,"onUpdate:value":r[5]||(r[5]=o=>b.tags=o),placeholder:e.$t("knowledgeGraph.addEntity_modal.tagsPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),t(ne,{open:V.value,"onUpdate:open":r[11]||(r[11]=o=>V.value=o),title:e.$t("knowledgeGraph.addRelation_modal.title"),"confirm-loading":f.value,onOk:Ie,"ok-text":e.$t("knowledgeGraph.addRelation_modal.ok"),"cancel-text":e.$t("knowledgeGraph.addRelation_modal.cancel")},{default:a(()=>[t(oe,{"label-col":{span:6},"wrapper-col":{span:18},style:{"margin-top":"16px"}},{default:a(()=>[t(C,{label:e.$t("knowledgeGraph.addRelation_modal.sourceLabel"),required:""},{default:a(()=>[t(Q,{value:y.sourceId,"onUpdate:value":r[7]||(r[7]=o=>y.sourceId=o),placeholder:e.$t("knowledgeGraph.addRelation_modal.sourcePlaceholder"),"show-search":"","filter-option":ce},{default:a(()=>[(d(!0),m(A,null,L(x.value,o=>(d(),R(F,{key:o.id,value:o.id},{default:a(()=>[c(s(o.name)+" ("+s(o.type)+") ",1)]),_:2},1032,["value"]))),128))]),_:1},8,["value","placeholder"])]),_:1},8,["label"]),t(C,{label:e.$t("knowledgeGraph.addRelation_modal.targetLabel"),required:""},{default:a(()=>[t(Q,{value:y.targetId,"onUpdate:value":r[8]||(r[8]=o=>y.targetId=o),placeholder:e.$t("knowledgeGraph.addRelation_modal.targetPlaceholder"),"show-search":"","filter-option":ce},{default:a(()=>[(d(!0),m(A,null,L(x.value,o=>(d(),R(F,{key:o.id,value:o.id,disabled:o.id===y.sourceId},{default:a(()=>[c(s(o.name)+" ("+s(o.type)+") ",1)]),_:2},1032,["value","disabled"]))),128))]),_:1},8,["value","placeholder"])]),_:1},8,["label"]),t(C,{label:e.$t("knowledgeGraph.addRelation_modal.relationTypeLabel"),required:""},{default:a(()=>[t(ae,{value:y.relationType,"onUpdate:value":r[9]||(r[9]=o=>y.relationType=o),placeholder:e.$t("knowledgeGraph.addRelation_modal.relationTypePlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),t(C,{label:e.$t("knowledgeGraph.addRelation_modal.weightLabel")},{default:a(()=>[t(ve,{value:y.weight,"onUpdate:value":r[10]||(r[10]=o=>y.weight=o),min:.1,max:10,step:.1,style:{width:"100%"}},null,8,["value"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),t(ne,{open:X.value,"onUpdate:open":r[14]||(r[14]=o=>X.value=o),title:e.$t("knowledgeGraph.reason_modal.title",{name:ue.value}),width:640,footer:null},{default:a(()=>[t(oe,{layout:"inline",style:{"margin-bottom":"16px"}},{default:a(()=>[t(C,{label:e.$t("knowledgeGraph.reason_modal.maxDepth")},{default:a(()=>[t(ve,{value:z.maxDepth,"onUpdate:value":r[12]||(r[12]=o=>z.maxDepth=o),min:1,max:10},null,8,["value"])]),_:1},8,["label"]),t(C,{label:e.$t("knowledgeGraph.reason_modal.direction")},{default:a(()=>[t(Q,{value:z.direction,"onUpdate:value":r[13]||(r[13]=o=>z.direction=o),style:{width:"100px"}},{default:a(()=>[t(F,{value:"out"},{default:a(()=>[c(s(e.$t("knowledgeGraph.reason_modal.directionOut")),1)]),_:1}),t(F,{value:"in"},{default:a(()=>[c(s(e.$t("knowledgeGraph.reason_modal.directionIn")),1)]),_:1}),t(F,{value:"both"},{default:a(()=>[c(s(e.$t("knowledgeGraph.reason_modal.directionBoth")),1)]),_:1})]),_:1},8,["value"])]),_:1},8,["label"]),t(C,null,{default:a(()=>[t(u,{type:"primary",loading:q.value,onClick:Oe},{default:a(()=>[c(s(e.$t("knowledgeGraph.reason_modal.run")),1)]),_:1},8,["loading"])]),_:1})]),_:1}),P.value.length===0&&!q.value?(d(),m("div",Ct,s(e.$t("knowledgeGraph.reason_modal.hint")),1)):(d(),R(Ue,{key:1,"data-source":P.value,size:"small"},{renderItem:a(({item:o})=>[t(Le,null,{default:a(()=>[t(D,{color:"purple"},{default:a(()=>[c("depth="+s(o.depth),1)]),_:2},1024),t(D,{color:ee(o.entity.type),style:{"margin-left":"8px"}},{default:a(()=>[c(s(o.entity.type),1)]),_:2},1032,["color"]),$("span",St,s(o.entity.name),1),$("span",Tt,s(o.entity.id.slice(0,12)),1)]),_:2},1024)]),_:1},8,["data-source"]))]),_:1},8,["open","title"])])}}},Ot=Be(Rt,[["__scopeId","data-v-d675e73f"]]);export{Ot as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{_ as E,u as U}from"./index-
|
|
1
|
+
import{_ as E,u as U}from"./index-BxjOmfVA.js";import{R as q}from"./icons-B2mcO3YM.js";import{w as z,o as A,M as i,R as o,c as a,N as d,Q as D,S as F,P as h,F as Q,Y as j,n as w,K as l,r,f as L,L as u,O as b,u as I,Z as P}from"./vendor-Ci2pTZ_t.js";const Y={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},Z={style:{display:"flex",gap:"10px",margin:"12px 0"}},G={key:0,style:{"text-align":"center",padding:"40px",color:"var(--text-muted)"}},J={key:1,style:{"text-align":"center",padding:"40px",color:"var(--text-muted)"}},X={key:2},ee=["innerHTML"],te={__name:"Logs",setup(ae){const C=U(),k=r("status"),v=r(!1),g=r(""),_=r(""),c=r(""),m=r(!0),n=r(null),T={status:"status",doctor:"doctor","skill-sources":"skill sources","llm-providers":"llm providers"},f=L(()=>_.value.split(`
|
|
2
2
|
`)),p=L(()=>{if(!c.value)return f.value;const e=c.value.toLowerCase();return f.value.filter(t=>t.toLowerCase().includes(e))});function M(e){return e.includes("✖")||e.includes("error")||e.includes("Error")||e.includes("failed")?"line-error":e.includes("✔")||e.includes("✓")||e.includes("success")||e.includes("running")?"line-success":e.includes("warn")||e.includes("Warn")||e.includes("○")?"line-warn":e.startsWith(" ")||e.startsWith(" ")?"line-indent":""}function N(e){return e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">")}function S(e){if(!c.value)return e;const t=c.value.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return e.replace(new RegExp(`(${t})`,"gi"),"<mark>$1</mark>")}async function x(){v.value=!0,g.value="",_.value="";const e=T[k.value]||"status";try{const{output:t}=await C.execute(e,3e4);_.value=t,m.value&&(await w(),n.value&&(n.value.scrollTop=n.value.scrollHeight))}catch(t){g.value=`执行失败: ${t.message}`,_.value=g.value}finally{v.value=!1}}return z(p,async()=>{m.value&&(await w(),n.value&&(n.value.scrollTop=n.value.scrollHeight))}),A(x),(e,t)=>{const B=l("a-checkbox"),H=l("a-button"),$=l("a-space"),y=l("a-tab-pane"),K=l("a-tabs"),O=l("a-input-search"),R=l("a-tag"),V=l("a-spin");return u(),i("div",null,[o("div",Y,[t[5]||(t[5]=o("div",null,[o("h2",{class:"page-title"},"日志查看"),o("p",{class:"page-sub"},"系统运行日志与诊断输出")],-1)),a($,null,{default:d(()=>[a(B,{checked:m.value,"onUpdate:checked":t[0]||(t[0]=s=>m.value=s)},{default:d(()=>[...t[3]||(t[3]=[b("自动滚动",-1)])]),_:1},8,["checked"]),a(H,{type:"primary",ghost:"",loading:v.value,onClick:x},{icon:d(()=>[a(I(q))]),default:d(()=>[t[4]||(t[4]=b(" 刷新 ",-1))]),_:1},8,["loading"])]),_:1})]),a(K,{activeKey:k.value,"onUpdate:activeKey":t[1]||(t[1]=s=>k.value=s),onChange:x,style:{"margin-bottom":"0"}},{default:d(()=>[a(y,{key:"status",tab:"系统状态"}),a(y,{key:"doctor",tab:"环境诊断"}),a(y,{key:"skill-sources",tab:"技能来源"}),a(y,{key:"llm-providers",tab:"LLM 提供商"})]),_:1},8,["activeKey"]),o("div",Z,[a(O,{value:c.value,"onUpdate:value":t[2]||(t[2]=s=>c.value=s),placeholder:"搜索日志内容...","allow-clear":"",style:{flex:"1"}},null,8,["value"]),p.value.length!==f.value.length?(u(),D(R,{key:0,color:"blue"},{default:d(()=>[b(h(p.value.length)+" / "+h(f.value.length)+" 行 ",1)]),_:1})):F("",!0)]),o("div",{ref_key:"logContainer",ref:n,class:"log-box"},[v.value?(u(),i("div",G,[a(V,{size:"large"}),t[6]||(t[6]=o("div",{style:{"margin-top":"10px"}},"加载中...",-1))])):p.value.length?(u(),i("div",X,[(u(!0),i(Q,null,j(p.value,(s,W)=>(u(),i("div",{key:W,class:P(["log-line",M(s)]),innerHTML:S(N(s))},null,10,ee))),128))])):(u(),i("div",J,h(g.value||"暂无日志内容,点击刷新加载"),1))],512)])}}},oe=E(te,[["__scopeId","data-v-b316ead3"]]);export{oe as default};
|