chainlesschain 0.161.2 → 0.161.3
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 +6 -6
- package/src/assets/web-panel/.build-hash +1 -1
- package/src/assets/web-panel/assets/AIOps-FON6GZIt.js +1 -0
- package/src/assets/web-panel/assets/{ActionButton-BvMi4awy.js → ActionButton-Byb_P_P9.js} +1 -1
- package/src/assets/web-panel/assets/{Analytics-hRk2ziup.js → Analytics-CDG1OwOr.js} +2 -2
- package/src/assets/web-panel/assets/AppLayout-lM1Y2Wgo.js +1 -0
- package/src/assets/web-panel/assets/Audit-p4krng5l.js +1 -0
- package/src/assets/web-panel/assets/Backup-G6AQe6k8.js +1 -0
- package/src/assets/web-panel/assets/{BaseInput-NAp5_OPY.js → BaseInput-tUASXi57.js} +1 -1
- package/src/assets/web-panel/assets/Chat-B46MHHAs.js +2 -0
- package/src/assets/web-panel/assets/{Checkbox-C9dkWb-7.js → Checkbox-CfDbHGdU.js} +1 -1
- package/src/assets/web-panel/assets/Codegen-D1mQ03ap.js +1 -0
- package/src/assets/web-panel/assets/{Col-JyQOivHb.js → Col-C0wS_dvU.js} +1 -1
- package/src/assets/web-panel/assets/Community-CB4KQIpB.js +1 -0
- package/src/assets/web-panel/assets/Compact-CuVvz3Zf.js +1 -0
- package/src/assets/web-panel/assets/Compliance-D6bnHyjs.js +1 -0
- package/src/assets/web-panel/assets/{Cowork-V-tDxtrt.js → Cowork-Dh3yt9pL.js} +2 -2
- package/src/assets/web-panel/assets/{Cron-YgEeQvdV.js → Cron-DiuKXbnA.js} +2 -2
- package/src/assets/web-panel/assets/Crosschain-BFgMa5sQ.js +1 -0
- package/src/assets/web-panel/assets/{DID-swdBCdMZ.js → DID-Dx7CFjrq.js} +2 -2
- package/src/assets/web-panel/assets/Dashboard-D3QHFHex.js +3 -0
- package/src/assets/web-panel/assets/{Dropdown-mlITwb7d.js → Dropdown-sMGnnzUo.js} +1 -1
- package/src/assets/web-panel/assets/Federation-CGt7CYhN.js +1 -0
- package/src/assets/web-panel/assets/{FormItemContext-BYmWDwAT.js → FormItemContext-DuVk39z3.js} +1 -1
- package/src/assets/web-panel/assets/{Git-Du1k1iHz.js → Git-glb99UzZ.js} +2 -2
- package/src/assets/web-panel/assets/Governance-CQXGee_r.js +1 -0
- package/src/assets/web-panel/assets/Inference-Czm-Q3w3.js +1 -0
- package/src/assets/web-panel/assets/KnowledgeGraph-DFrr-B78.js +1 -0
- package/src/assets/web-panel/assets/{Logs-CElvIBBJ.js → Logs-ChGXdo0Q.js} +2 -2
- package/src/assets/web-panel/assets/Marketplace-DW6P2uIY.js +1 -0
- package/src/assets/web-panel/assets/{McpTools-BpHkrlka.js → McpTools-ChOwY-wy.js} +2 -2
- package/src/assets/web-panel/assets/{Memory-DeU9ys_m.js → Memory-vIbbUTel.js} +2 -2
- package/src/assets/web-panel/assets/{Mtc-CCJZpnJo.js → Mtc-60jSuMAz.js} +6 -6
- package/src/assets/web-panel/assets/NLProgramming-fRrjhjpW.js +1 -0
- package/src/assets/web-panel/assets/{Notes-BcpuirPj.js → Notes-C0zhC6_B.js} +3 -3
- package/src/assets/web-panel/assets/{Organization-B_SHESSc.js → Organization-Bebfm6lF.js} +4 -4
- package/src/assets/web-panel/assets/{Overflow-R2SOGT0l.js → Overflow-D8ZjaRpc.js} +1 -1
- package/src/assets/web-panel/assets/{P2P-IYYy3cEd.js → P2P-BjgamPxI.js} +2 -2
- package/src/assets/web-panel/assets/{Permissions-CR1N42yW.js → Permissions-uwoi4HnY.js} +2 -2
- package/src/assets/web-panel/assets/Pipeline-C2aHcq6n.js +1 -0
- package/src/assets/web-panel/assets/Privacy-lU34k_c5.js +1 -0
- package/src/assets/web-panel/assets/{ProjectSettings-CEDhpgbs.js → ProjectSettings-Dy-Iie9L.js} +2 -2
- package/src/assets/web-panel/assets/{Projects-DABi6ylb.js → Projects-B4Vt0iiH.js} +2 -2
- package/src/assets/web-panel/assets/{Providers-HzrcE8ma.js → Providers-Cu9uRsVk.js} +2 -2
- package/src/assets/web-panel/assets/QuickAsk-BE29MB0d.js +1 -0
- package/src/assets/web-panel/assets/Recommend-DJ9nU8HM.js +1 -0
- package/src/assets/web-panel/assets/Reputation-ThffxFwr.js +1 -0
- package/src/assets/web-panel/assets/{Row-2akLU3YS.js → Row-CqBtO8lC.js} +1 -1
- package/src/assets/web-panel/assets/{RssFeed-D6qNq6Ht.js → RssFeed-DaxFEUe6.js} +3 -3
- package/src/assets/web-panel/assets/Search-4zVFnx_Y.js +1 -0
- package/src/assets/web-panel/assets/{Security-DdW4hu_4.js → Security-BEfSoaTM.js} +2 -2
- package/src/assets/web-panel/assets/{Services-CnzEzGFN.js → Services-DTAaoYJC.js} +2 -2
- package/src/assets/web-panel/assets/{Skeleton-D6RevdW2.js → Skeleton-CIZErmoY.js} +2 -2
- package/src/assets/web-panel/assets/Skills-CacIwBCt.js +1 -0
- package/src/assets/web-panel/assets/Sla-Si0g7a0u.js +1 -0
- package/src/assets/web-panel/assets/SpeechSettings-H19DqdAG.js +1 -0
- package/src/assets/web-panel/assets/SyncSettings-C6cDrwDR.css +1 -0
- package/src/assets/web-panel/assets/SyncSettings-bsC4-4rU.js +1 -0
- package/src/assets/web-panel/assets/Tasks-Bxlj8OVW.js +1 -0
- package/src/assets/web-panel/assets/Templates-B9YsJQcb.js +1 -0
- package/src/assets/web-panel/assets/Tenant-D4YncKb7.js +1 -0
- package/src/assets/web-panel/assets/Tokens-B2wJjOdI.js +1 -0
- package/src/assets/web-panel/assets/{Trigger-DkSZjOlY.js → Trigger-DU9-3gN9.js} +1 -1
- package/src/assets/web-panel/assets/Trust-_yan18qg.js +1 -0
- package/src/assets/web-panel/assets/UkeySign-CZ7Xrq96.js +1 -0
- package/src/assets/web-panel/assets/VideoEditing-CUgere5i.js +1 -0
- package/src/assets/web-panel/assets/{Wallet-DHbi5dHt.js → Wallet-DSnzYVqY.js} +2 -2
- package/src/assets/web-panel/assets/{WebAuthn-BkGDI33-.js → WebAuthn-De4aHZ87.js} +2 -2
- package/src/assets/web-panel/assets/WorkflowEditor-C-QNGwia.js +1 -0
- package/src/assets/web-panel/assets/chat-DFt6UJUS.js +1 -0
- package/src/assets/web-panel/assets/{colors-D2tTvuDI.js → colors-CHuBSydj.js} +1 -1
- package/src/assets/web-panel/assets/{compact-item-CqCEUZiy.js → compact-item-DtCmGKIm.js} +1 -1
- package/src/assets/web-panel/assets/{createContext-C6HFlAQP.js → createContext-Cetup5Fb.js} +1 -1
- package/src/assets/web-panel/assets/{hasIn-yp2CbhYc.js → hasIn-Q509tIlQ.js} +1 -1
- package/src/assets/web-panel/assets/icons-zXb7lDZs.js +57 -0
- package/src/assets/web-panel/assets/{index-B74gWYqD.js → index-0KFwdHZg.js} +1 -1
- package/src/assets/web-panel/assets/{index-CXf0zL5i.js → index-7kdZ5ox5.js} +1 -1
- package/src/assets/web-panel/assets/index-B2f4ltyM.js +65 -0
- package/src/assets/web-panel/assets/{index-CucxAdwN.js → index-B5d7Dkyp.js} +2 -2
- package/src/assets/web-panel/assets/index-BDK2Fkgd.js +13 -0
- package/src/assets/web-panel/assets/index-BJFH7IlV.js +21 -0
- package/src/assets/web-panel/assets/{index-Blq49aTW.js → index-BTwIwesN.js} +1 -1
- package/src/assets/web-panel/assets/index-Bjz1Y3Gs.js +1 -0
- package/src/assets/web-panel/assets/index-BlPG_vWg.js +55 -0
- package/src/assets/web-panel/assets/{index-B0jkl2Zb.js → index-BmHsGJ8F.js} +1 -1
- package/src/assets/web-panel/assets/{index-DnehXcB-.js → index-BvAwpPN9.js} +1 -1
- package/src/assets/web-panel/assets/{index-B2qFUwGb.js → index-C2y5MxfU.js} +2 -2
- package/src/assets/web-panel/assets/{index-CrEEL63u.js → index-C61WQXE3.js} +1 -1
- package/src/assets/web-panel/assets/{index-CcwZodUl.js → index-C7baQwUM.js} +1 -1
- package/src/assets/web-panel/assets/{index-D34iabcS.js → index-C8agLSzC.js} +8 -8
- package/src/assets/web-panel/assets/{index-Cd6m6ynF.js → index-CJjwnpac.js} +1 -1
- package/src/assets/web-panel/assets/index-CRZ8WjUK.js +1 -0
- package/src/assets/web-panel/assets/index-CX7WO0g5.js +12 -0
- package/src/assets/web-panel/assets/index-CbQ3AZcJ.js +3 -0
- package/src/assets/web-panel/assets/{index-DEKuiAPQ.js → index-CeXoNBLu.js} +2 -2
- package/src/assets/web-panel/assets/{index-w1xShUDf.js → index-Ctdt2gEP.js} +1 -1
- package/src/assets/web-panel/assets/index-Cxk-8scO.js +1 -0
- package/src/assets/web-panel/assets/index-D0oJF6nX.js +7 -0
- package/src/assets/web-panel/assets/index-D7Smgwky.js +1 -0
- package/src/assets/web-panel/assets/index-DGAGIqDR.js +1 -0
- package/src/assets/web-panel/assets/index-DKWvx42k.js +1 -0
- package/src/assets/web-panel/assets/{index-Dj4P0iWm.js → index-DVQSXYwb.js} +1 -1
- package/src/assets/web-panel/assets/{index-BxSsO6Sm.js → index-DaMTgJkE.js} +2 -2
- package/src/assets/web-panel/assets/index-Dd68wDHG.js +12 -0
- package/src/assets/web-panel/assets/{index-KdFFI-p3.js → index-Dem-mhfD.js} +1 -1
- package/src/assets/web-panel/assets/{index-BTL2yIvT.js → index-Dq6E-pj8.js} +1 -1
- package/src/assets/web-panel/assets/{index-nzDx0JAR.js → index-DuQfQVBe.js} +1 -1
- package/src/assets/web-panel/assets/{index-CFoFkVUt.js → index-HqJ94PSG.js} +4 -4
- package/src/assets/web-panel/assets/{index-DlgMVieO.js → index-R5D_-l07.js} +1 -1
- package/src/assets/web-panel/assets/{index-NNymVAza.js → index-SR2lFA_W.js} +2 -2
- package/src/assets/web-panel/assets/{index-B8Qxu0q2.js → index-hSpRlh93.js} +1 -1
- package/src/assets/web-panel/assets/index-jfzI94IT.js +1 -0
- package/src/assets/web-panel/assets/{index-BlVnFOFL.js → index-nfLO3XrF.js} +1 -1
- package/src/assets/web-panel/assets/{initDefaultProps-DfdVxwz6.js → initDefaultProps-D7iOaKOY.js} +1 -1
- package/src/assets/web-panel/assets/{motion-CL0bdvJg.js → motion-CvCFk7sy.js} +1 -1
- package/src/assets/web-panel/assets/{move-Bo9Fgzv7.js → move-BVj5YZrV.js} +1 -1
- package/src/assets/web-panel/assets/{omit-C-cc6wHr.js → omit-N_JDguMt.js} +1 -1
- package/src/assets/web-panel/assets/{pickAttrs-CjLp5RN-.js → pickAttrs-BWcuLN5j.js} +1 -1
- package/src/assets/web-panel/assets/{placementArrow-CJa8gsqa.js → placementArrow--1l0FzZx.js} +1 -1
- package/src/assets/web-panel/assets/{responsiveObserve-CcDj3P-p.js → responsiveObserve-CGX6EYRt.js} +1 -1
- package/src/assets/web-panel/assets/{slide-CpvbHO26.js → slide-B3hJzlWm.js} +1 -1
- package/src/assets/web-panel/assets/{statusUtils-BK69kP1U.js → statusUtils-BJuExZuw.js} +1 -1
- package/src/assets/web-panel/assets/{styleChecker-CDvBRzsG.js → styleChecker-pshnIK0r.js} +1 -1
- package/src/assets/web-panel/assets/{useFlexGapSupport-CRN_hzJt.js → useFlexGapSupport-3FQZdpBd.js} +1 -1
- package/src/assets/web-panel/assets/useFs-BW1piLQM.js +1 -0
- package/src/assets/web-panel/assets/{vnode-Bzp-FsbB.js → vnode-D98L6HI1.js} +1 -1
- package/src/assets/web-panel/assets/{zoom-BHqpWXJV.js → zoom-DnmMtXgZ.js} +1 -1
- package/src/assets/web-panel/index.html +2 -2
- package/src/lib/config-manager.js +3 -1
- package/src/lib/governance-v2-helpers.js +1 -1
- package/src/lib/sync-manager.js +119 -25
- package/src/assets/web-panel/assets/AIOps-CoZ9bIqF.js +0 -1
- package/src/assets/web-panel/assets/AppLayout-_JR3Gko8.js +0 -1
- package/src/assets/web-panel/assets/Audit-D8WmaHdX.js +0 -1
- package/src/assets/web-panel/assets/Backup-CogYVeiE.js +0 -1
- package/src/assets/web-panel/assets/Chat-DkQnhjfk.js +0 -2
- package/src/assets/web-panel/assets/Codegen-BHyJ3j-p.js +0 -1
- package/src/assets/web-panel/assets/Community-UMq5QuBA.js +0 -1
- package/src/assets/web-panel/assets/Compact-DGlwooBJ.js +0 -1
- package/src/assets/web-panel/assets/Compliance-2rWGO55k.js +0 -1
- package/src/assets/web-panel/assets/Crosschain-Cgd5cRKn.js +0 -1
- package/src/assets/web-panel/assets/Dashboard-ClnWtxsT.js +0 -3
- package/src/assets/web-panel/assets/Federation-DtUN3wQa.js +0 -1
- package/src/assets/web-panel/assets/Governance-B2TFaWsf.js +0 -1
- package/src/assets/web-panel/assets/Inference-Cm_hmXla.js +0 -1
- package/src/assets/web-panel/assets/KnowledgeGraph-DLaLMo4r.js +0 -1
- package/src/assets/web-panel/assets/Marketplace-BlR3RCDV.js +0 -1
- package/src/assets/web-panel/assets/NLProgramming-B_Tie6j1.js +0 -1
- package/src/assets/web-panel/assets/Pipeline-nwFpKsU_.js +0 -1
- package/src/assets/web-panel/assets/Privacy-BGpz72PX.js +0 -1
- package/src/assets/web-panel/assets/QuickAsk-6FgX9DC6.js +0 -1
- package/src/assets/web-panel/assets/Recommend-BPhQwye7.js +0 -1
- package/src/assets/web-panel/assets/Reputation-BL6hTN1s.js +0 -1
- package/src/assets/web-panel/assets/Search-R_b-u9oL.js +0 -1
- package/src/assets/web-panel/assets/Skills-DD5ReHH7.js +0 -1
- package/src/assets/web-panel/assets/Sla-CaQOOsjD.js +0 -1
- package/src/assets/web-panel/assets/SpeechSettings-D-pGIn9Z.js +0 -1
- package/src/assets/web-panel/assets/Tasks-BbdO_i4Q.js +0 -1
- package/src/assets/web-panel/assets/Templates-CupAugDn.js +0 -1
- package/src/assets/web-panel/assets/Tenant-rseAzHcY.js +0 -1
- package/src/assets/web-panel/assets/Tokens-DXMokNbR.js +0 -1
- package/src/assets/web-panel/assets/Trust-CKb7QDH1.js +0 -1
- package/src/assets/web-panel/assets/UkeySign-Cux8_Ib_.js +0 -1
- package/src/assets/web-panel/assets/VideoEditing-CSOjdBZg.js +0 -1
- package/src/assets/web-panel/assets/WorkflowEditor-BFZ3RYva.js +0 -1
- package/src/assets/web-panel/assets/chat-BQ-Nk2XY.js +0 -1
- package/src/assets/web-panel/assets/icons-DvZE-RKs.js +0 -57
- package/src/assets/web-panel/assets/index-4cn1LmJ9.js +0 -1
- package/src/assets/web-panel/assets/index-B9b_mz4I.js +0 -55
- package/src/assets/web-panel/assets/index-BAA1SFp1.js +0 -1
- package/src/assets/web-panel/assets/index-BJeE7n_I.js +0 -12
- package/src/assets/web-panel/assets/index-BJoK7MkB.js +0 -13
- package/src/assets/web-panel/assets/index-CA3g3EpL.js +0 -1
- package/src/assets/web-panel/assets/index-CWhXxdyo.js +0 -1
- package/src/assets/web-panel/assets/index-Cfy9l115.js +0 -1
- package/src/assets/web-panel/assets/index-CijiVpfO.js +0 -1
- package/src/assets/web-panel/assets/index-Cpfx7-LN.js +0 -12
- package/src/assets/web-panel/assets/index-CvuBD5TK.js +0 -3
- package/src/assets/web-panel/assets/index-Cw4v7ezB.js +0 -65
- package/src/assets/web-panel/assets/index-DjeNNVwu.js +0 -1
- package/src/assets/web-panel/assets/index-JszcDpsT.js +0 -7
- package/src/assets/web-panel/assets/index-aw2DwKj-.js +0 -21
- package/src/assets/web-panel/assets/useFs-BD-YRwbU.js +0 -1
- package/src/assets/web-panel/assets/ws-D_5-FRIb.js +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{_ as De,a as Fe,c as R}from"./index-Cw4v7ezB.js";import{u as je}from"./ws-D_5-FRIb.js";import{u as Je}from"./useFs-BD-YRwbU.js";import{s as pe}from"./community-parser-CO25nZFt.js";import{R as Be,an as $e,y as ce,d as Ue,af as Ke,A as Pe,f as Ve}from"./icons-DvZE-RKs.js";import{o as He,M as p,R as b,P as r,u as s,c as l,N as t,Q as x,S as k,K as m,r as S,L as u,O as y,F as z,_ as N,$ as We,f as U}from"./vendor-B6ToihkA.js";import"./useShellMode-CgR0wCYM.js";function ye(i){const e=pe(i);if(!e)return null;try{return JSON.parse(e)}catch{}const d=e.match(/\{[\s\S]*\}|\[[\s\S]*\]/);if(!d)return null;try{return JSON.parse(d[0])}catch{return null}}const K=Object.freeze(["auth","permission","data","system","file","did","crypto","api"]),ee=Object.freeze(["low","medium","high","critical"]);function X(i,e=0){return typeof i=="number"&&Number.isFinite(i)?i:e}function de(i){if(!i)return{noDb:!1,error:""};const e=pe(i),d=/Database not available/i.test(e);return{noDb:d,error:d?"Database not available":""}}function qe(i,e=0){if(!i||typeof i!="object")return null;const d=i.id||"";if(!d)return null;let g=i.details;if(typeof g=="string"&&g)try{g=JSON.parse(g)}catch{}const h=typeof i.success=="boolean"?i.success:i.success===1||i.success==="1"||i.success===!0,D=i.audit_mtc_event_id??i.auditMtcEventId??null;return{key:d,id:d,eventType:String(i.event_type??i.eventType??"").toLowerCase(),operation:String(i.operation||""),actor:i.actor??"",target:i.target??"",details:g??null,riskLevel:String(i.risk_level??i.riskLevel??"low").toLowerCase(),ipAddress:i.ip_address??i.ipAddress??"",userAgent:i.user_agent??i.userAgent??"",success:h,errorMessage:i.error_message??i.errorMessage??"",createdAt:i.created_at??i.createdAt??"",auditMtcEventId:D,_idx:e}}function Qe(i){const e=ye(i);return Array.isArray(e)?e.map(qe).filter(Boolean):[]}const Ye={total:0,failures:0,highRisk:0,byEventType:{},byRiskLevel:{}};function Ze(i){const e=JSON.parse(JSON.stringify(Ye));for(const g of K)e.byEventType[g]=0;for(const g of ee)e.byRiskLevel[g]=0;const d=ye(i);if(!d||typeof d!="object"||Array.isArray(d))return e;if(e.total=X(d.total,0),e.failures=X(d.failures,0),e.highRisk=X(d.highRisk,0),d.byEventType&&typeof d.byEventType=="object")for(const[g,h]of Object.entries(d.byEventType))typeof h=="number"&&Number.isFinite(h)&&(e.byEventType[g]=h);if(d.byRiskLevel&&typeof d.byRiskLevel=="object")for(const[g,h]of Object.entries(d.byRiskLevel))typeof h=="number"&&Number.isFinite(h)&&(e.byRiskLevel[g]=h);return e}function Ge(i){return!i||!i.auditMtcEventId?"none":"tracked"}function fe(i){if(i==null||i==="")return"—";const e=String(i),d=e.includes(" ")&&!e.includes("T")?e.replace(" ","T")+"Z":e,g=new Date(d);return isNaN(g.getTime())?e:g.toLocaleString("zh-CN",{hour12:!1})}const Xe={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},et={class:"page-title"},tt={class:"page-sub"},at={class:"type-name"},lt={class:"type-count"},ot={class:"filter-bar"},st={key:0,style:{color:"var(--text-secondary)","font-size":"11px","font-family":"monospace"}},nt={style:{color:"var(--text-primary)","font-weight":"500","font-family":"monospace","font-size":"12px"}},it={key:0,style:{color:"#ff4d4f","font-size":"11px","margin-top":"2px"}},rt={key:0,style:{color:"var(--text-secondary)","font-size":"12px"}},ut={key:1,style:{color:"var(--text-muted)"}},ct={key:0,style:{color:"var(--text-secondary)","font-size":"12px","font-family":"monospace"}},dt={key:1,style:{color:"var(--text-muted)"}},ft={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},pt={key:0,style:{"padding-top":"8px"}},yt={style:{"font-family":"monospace","font-size":"12px"}},vt={style:{"margin-left":"8px",color:"var(--text-secondary)","font-size":"12px"}},mt={style:{"font-family":"monospace"}},_t={key:0,style:{"font-family":"monospace","font-size":"12px"}},gt={key:1,style:{color:"var(--text-muted)"}},bt={key:0,style:{"font-family":"monospace","font-size":"12px"}},kt={key:1,style:{color:"var(--text-muted)"}},ht={style:{"font-family":"monospace","font-size":"12px"}},xt={style:{"font-family":"monospace","font-size":"11px"}},Lt={style:{color:"#ff4d4f"}},St={class:"details-pre"},Tt={__name:"Audit",setup(i){const{t:e}=Fe(),d=je(),g=Je(),h=S(!1),D=S([]),_=S({total:0,failures:0,highRisk:0,byEventType:{},byRiskLevel:{}}),P=S({noDb:!1,error:""}),te=S("events"),F=S(""),w=S(""),I=S(""),M=S(""),j=S(!1),V=S(!1),f=S(null),ve=U(()=>[{title:e("audit.logColumns.createdAt"),key:"createdAt",width:"160px"},{title:e("audit.logColumns.eventType"),key:"eventType",width:"110px"},{title:e("audit.logColumns.operation"),key:"operation"},{title:e("audit.logColumns.actor"),key:"actor",width:"140px"},{title:e("audit.logColumns.target"),key:"target",width:"180px"},{title:e("audit.logColumns.riskLevel"),key:"riskLevel",width:"90px"},{title:e("audit.logColumns.success"),key:"success",width:"80px"},{title:e("audit.logColumns.mtc"),key:"mtc",width:"110px"},{title:e("audit.logColumns.action"),key:"action",width:"80px"}]),H=S({});function W(a){return a.auditMtcEventId&&H.value[a.id]||null}function me(a){const o=W(a);return o?o.state==="staging"?e("audit.mtc.stagingLabel"):o.state==="batched"?e("audit.mtc.batchedLabel",{batchId:o.batchId||"?"}):e("audit.mtc.unknownLabel"):e("audit.mtc.signedNotChecked")}function _e(a){const o=W(a);return o?o.state==="staging"?"orange":o.state==="batched"?"green":"default":"blue"}function ge(a){if(!a.auditMtcEventId)return"";const o=W(a),c=e("audit.mtc.tooltipBase",{id:a.auditMtcEventId});return o?o.state==="staging"?e("audit.mtc.tooltipStaging",{base:c}):o.state==="batched"?e("audit.mtc.tooltipBatched",{base:c,batchId:o.batchId,treeHead:o.treeHeadId||""}):c:e("audit.mtc.tooltipNotChecked",{base:c})}async function be(a){if(!a.auditMtcEventId)return;const o=a.auditMtcEventId.replace(/"/g,'\\"');try{const c=await d.execute(`audit mtc reconcile-check "${o}" --json`,8e3);let L;try{L=JSON.parse(c.output.trim())}catch{const A=c.output.match(/\{[\s\S]*\}/);L=A?JSON.parse(A[0]):null}if(!L){R.warning(e("audit.mtc.noJson"));return}const Z=L.found?{state:"batched",batchId:L.batchId,treeHeadId:L.treeHeadId}:L.staging?{state:"staging"}:{state:"unknown"};H.value={...H.value,[a.id]:Z}}catch(c){R.error(e("audit.mtc.checkFailed",{err:c?.message||c}))}}const q=U(()=>_.value.total?(_.value.total-_.value.failures)/_.value.total*100:100),ke=U(()=>!!(w.value||I.value||M.value||j.value)),he=U(()=>{let a=D.value;if(I.value&&(a=a.filter(o=>o.eventType===I.value)),M.value&&(a=a.filter(o=>o.riskLevel===M.value)),j.value&&(a=a.filter(o=>!o.success)),w.value){const o=w.value.toLowerCase();a=a.filter(c=>(c.operation||"").toLowerCase().includes(o)||(c.actor||"").toLowerCase().includes(o)||(c.target||"").toLowerCase().includes(o))}return a});function Q(a){const o=`audit.type.${a}`,c=e(o);return c===o?a:c}function J(a){return{auth:"blue",permission:"purple",data:"cyan",system:"default",file:"green",did:"gold",crypto:"magenta",api:"volcano"}[a]||"default"}function ae(a){return{auth:"#1677ff",permission:"#722ed1",data:"#13c2c2",system:"#888",file:"#52c41a",did:"#faad14",crypto:"#eb2f96",api:"#fa541c"}[a]||"#888"}function B(a){const o=`audit.risk.${a}`,c=e(o);return c===o?a:c}function Y(a){return{low:"default",medium:"gold",high:"orange",critical:"red"}[a]||"default"}function xe(a){return{low:"#888",medium:"#faad14",high:"#fa8c16",critical:"#ff4d4f"}[a]||"#888"}function le(a,o){return o?Math.round(a/o*100):0}function Le(a,o){return a?a.length<=o?a:a.slice(0,o)+"…":""}function Se(a){if(typeof a=="string")return a;try{return JSON.stringify(a,null,2)}catch{return String(a)}}let oe=null;function Te(){clearTimeout(oe),oe=setTimeout(()=>{w.value=F.value.trim()},300)}function Ce(){w.value=F.value.trim()}async function se(){h.value=!0,P.value={noDb:!1,error:""};try{const[a,o]=await Promise.all([d.execute("audit log --json -n 200",12e3).catch(()=>({output:""})),d.execute("audit stats --json",8e3).catch(()=>({output:""}))]),c=[a,o].map(L=>de(L.output)).find(L=>L.noDb);c&&(P.value=c),D.value=Qe(a.output),_.value=Ze(o.output)}catch(a){R.error(e("audit.messages.loadFailed",{err:a?.message||a}))}finally{h.value=!1}}function ze(a){f.value=a,V.value=!0}async function Ae(){try{const{output:a}=await d.execute("audit export -f json -n 10000",2e4);if(de(a).noDb){R.error(e("audit.messages.needInit"));return}if(!a.trim().startsWith("[")){R.error(e("audit.messages.exportFailed",{err:a.slice(0,120)}));return}const c=await g.saveText(a.trim(),{defaultPath:`audit-${new Date().toISOString().slice(0,10)}.json`,filters:[{name:"JSON",extensions:["json"]}]});if(c.canceled)return;R.success(c.path?e("audit.messages.exportOk",{path:c.path}):e("audit.messages.exportOkDefault"))}catch(a){R.error(e("audit.messages.exportFailed",{err:a?.message||a}))}}return He(se),(a,o)=>{const c=m("a-button"),L=m("a-space"),Z=m("a-alert"),A=m("a-statistic"),E=m("a-card"),O=m("a-col"),G=m("a-row"),C=m("a-tag"),Ee=m("a-input-search"),$=m("a-radio-button"),ne=m("a-radio-group"),Oe=m("a-checkbox"),ie=m("a-tooltip"),Re=m("a-table"),re=m("a-tab-pane"),ue=m("a-progress"),we=m("a-tabs"),T=m("a-descriptions-item"),Ie=m("a-descriptions"),Me=m("a-modal");return u(),p("div",null,[b("div",Xe,[b("div",null,[b("h2",et,r(s(e)("audit.title")),1),b("p",tt,r(s(e)("audit.subtitle")),1)]),l(L,null,{default:t(()=>[l(c,{loading:h.value,onClick:se},{icon:t(()=>[l(s(Be))]),default:t(()=>[y(" "+r(s(e)("audit.refresh")),1)]),_:1},8,["loading"]),l(c,{onClick:Ae},{icon:t(()=>[l(s($e))]),default:t(()=>[y(" "+r(s(e)("audit.exportJson")),1)]),_:1})]),_:1})]),P.value.noDb?(u(),x(Z,{key:0,type:"info","show-icon":"",message:s(e)("audit.noDb.message"),description:s(e)("audit.noDb.description"),style:{"margin-bottom":"16px"}},null,8,["message","description"])):k("",!0),l(G,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:t(()=>[l(O,{xs:12,sm:8,lg:5},{default:t(()=>[l(E,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[l(A,{title:s(e)("audit.stats.total"),value:_.value.total,"value-style":{color:"#1677ff",fontSize:"20px"}},{prefix:t(()=>[l(s(ce))]),_:1},8,["title","value"])]),_:1})]),_:1}),l(O,{xs:12,sm:8,lg:5},{default:t(()=>[l(E,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[l(A,{title:s(e)("audit.stats.failures"),value:_.value.failures,"value-style":{color:_.value.failures>0?"#ff4d4f":"#52c41a",fontSize:"20px"}},{prefix:t(()=>[l(s(Ue))]),_:1},8,["title","value","value-style"])]),_:1})]),_:1}),l(O,{xs:12,sm:8,lg:5},{default:t(()=>[l(E,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[l(A,{title:s(e)("audit.stats.highRisk"),value:_.value.highRisk,"value-style":{color:_.value.highRisk>0?"#fa8c16":"#52c41a",fontSize:"20px"}},{prefix:t(()=>[l(s(Ke))]),_:1},8,["title","value","value-style"])]),_:1})]),_:1}),l(O,{xs:12,sm:8,lg:5},{default:t(()=>[l(E,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[l(A,{title:s(e)("audit.stats.critical"),value:_.value.byRiskLevel.critical||0,"value-style":{color:(_.value.byRiskLevel.critical||0)>0?"#ff4d4f":"#888",fontSize:"20px"}},{prefix:t(()=>[l(s(Pe))]),_:1},8,["title","value","value-style"])]),_:1})]),_:1}),l(O,{xs:24,sm:8,lg:4},{default:t(()=>[l(E,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[l(A,{title:s(e)("audit.stats.successRate"),value:q.value,suffix:"%",precision:1,"value-style":{color:q.value>=95?"#52c41a":q.value>=80?"#faad14":"#ff4d4f",fontSize:"20px"}},{prefix:t(()=>[l(s(Ve))]),_:1},8,["title","value","value-style"])]),_:1})]),_:1})]),_:1}),l(E,{title:s(e)("audit.typeCatalogueTitle"),size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"20px"},"body-style":{padding:"12px 16px"}},{default:t(()=>[l(G,{gutter:[12,12]},{default:t(()=>[(u(!0),p(z,null,N(s(K),n=>(u(),x(O,{key:n,xs:12,sm:8,lg:3},{default:t(()=>[b("div",{class:"type-pill",style:We({borderLeftColor:ae(n)})},[l(C,{color:J(n),style:{"font-family":"monospace","font-size":"11px"}},{default:t(()=>[y(r(n),1)]),_:2},1032,["color"]),b("div",at,r(Q(n)),1),b("div",lt,r(_.value.byEventType[n]||0),1)],4)]),_:2},1024))),128))]),_:1})]),_:1},8,["title"]),l(we,{activeKey:te.value,"onUpdate:activeKey":o[4]||(o[4]=n=>te.value=n),class:"audit-tabs"},{default:t(()=>[l(re,{key:"events",tab:s(e)("audit.tabs.events")},{default:t(()=>[b("div",ot,[l(Ee,{value:F.value,"onUpdate:value":o[0]||(o[0]=n=>F.value=n),placeholder:s(e)("audit.filter.searchPlaceholder"),"allow-clear":"",style:{"max-width":"280px"},onSearch:Ce,onInput:Te},null,8,["value","placeholder"]),l(ne,{value:I.value,"onUpdate:value":o[1]||(o[1]=n=>I.value=n),size:"small","button-style":"solid"},{default:t(()=>[l($,{value:""},{default:t(()=>[y(r(s(e)("audit.filter.allTypes")),1)]),_:1}),(u(!0),p(z,null,N(s(K),n=>(u(),x($,{key:n,value:n},{default:t(()=>[y(r(Q(n)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"]),l(ne,{value:M.value,"onUpdate:value":o[2]||(o[2]=n=>M.value=n),size:"small"},{default:t(()=>[l($,{value:""},{default:t(()=>[y(r(s(e)("audit.filter.allRisks")),1)]),_:1}),(u(!0),p(z,null,N(s(ee),n=>(u(),x($,{key:n,value:n},{default:t(()=>[y(r(B(n)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"]),l(Oe,{checked:j.value,"onUpdate:checked":o[3]||(o[3]=n=>j.value=n)},{default:t(()=>[y(r(s(e)("audit.filter.failuresOnly")),1)]),_:1},8,["checked"])]),l(Re,{columns:ve.value,"data-source":he.value,pagination:{pageSize:20,showTotal:n=>s(e)("audit.totals.rows",{count:n})},size:"small",loading:h.value,style:{background:"var(--bg-card)"}},{bodyCell:t(({column:n,record:v})=>[n.key==="createdAt"?(u(),p("span",st,r(s(fe)(v.createdAt)),1)):k("",!0),n.key==="eventType"?(u(),x(C,{key:1,color:J(v.eventType),style:{"font-family":"monospace"}},{default:t(()=>[y(r(v.eventType),1)]),_:2},1032,["color"])):k("",!0),n.key==="operation"?(u(),p(z,{key:2},[b("span",nt,r(v.operation),1),v.errorMessage?(u(),p("div",it,r(v.errorMessage),1)):k("",!0)],64)):k("",!0),n.key==="actor"?(u(),p(z,{key:3},[v.actor?(u(),p("span",rt,r(v.actor),1)):(u(),p("span",ut,"—"))],64)):k("",!0),n.key==="target"?(u(),p(z,{key:4},[v.target?(u(),p("span",ct,r(Le(v.target,32)),1)):(u(),p("span",dt,"—"))],64)):k("",!0),n.key==="riskLevel"?(u(),x(C,{key:5,color:Y(v.riskLevel)},{default:t(()=>[y(r(B(v.riskLevel)),1)]),_:2},1032,["color"])):k("",!0),n.key==="success"?(u(),x(C,{key:6,color:v.success?"green":"red"},{default:t(()=>[y(r(v.success?"OK":"FAIL"),1)]),_:2},1032,["color"])):k("",!0),n.key==="mtc"?(u(),p(z,{key:7},[s(Ge)(v)==="none"?(u(),x(ie,{key:0,title:s(e)("audit.mtc.noneTooltip")},{default:t(()=>[l(C,{color:"default"},{default:t(()=>[...o[6]||(o[6]=[y("—",-1)])]),_:1})]),_:1},8,["title"])):(u(),x(ie,{key:1,title:ge(v)},{default:t(()=>[l(C,{color:_e(v),style:{cursor:"pointer"},onClick:Ne=>be(v)},{default:t(()=>[y(r(me(v)),1)]),_:2},1032,["color","onClick"])]),_:2},1032,["title"]))],64)):k("",!0),n.key==="action"?(u(),x(c,{key:8,size:"small",type:"link",onClick:Ne=>ze(v)},{default:t(()=>[y(r(s(e)("audit.rowAction.details")),1)]),_:1},8,["onClick"])):k("",!0)]),emptyText:t(()=>[b("div",ft,[l(s(ce),{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),y(" "+r(ke.value?s(e)("audit.empty.filtered"):s(e)("audit.empty.noEvents")),1)])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"]),l(re,{key:"breakdown",tab:s(e)("audit.tabs.breakdown")},{default:t(()=>[l(G,{gutter:[16,16]},{default:t(()=>[l(O,{xs:24,lg:12},{default:t(()=>[l(E,{title:s(e)("audit.breakdown.byType"),size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[(u(!0),p(z,null,N(s(K),n=>(u(),p("div",{key:n,class:"bd-row"},[l(C,{color:J(n),style:{"min-width":"80px","text-align":"center","font-family":"monospace"}},{default:t(()=>[y(r(n),1)]),_:2},1032,["color"]),l(ue,{percent:le(_.value.byEventType[n]||0,_.value.total),"stroke-color":ae(n),format:()=>`${_.value.byEventType[n]||0}`,size:"small",style:{flex:"1","margin-left":"12px"}},null,8,["percent","stroke-color","format"])]))),128))]),_:1},8,["title"])]),_:1}),l(O,{xs:24,lg:12},{default:t(()=>[l(E,{title:s(e)("audit.breakdown.byRisk"),size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[(u(!0),p(z,null,N(s(ee),n=>(u(),p("div",{key:n,class:"bd-row"},[l(C,{color:Y(n),style:{"min-width":"80px","text-align":"center"}},{default:t(()=>[y(r(B(n)),1)]),_:2},1032,["color"]),l(ue,{percent:le(_.value.byRiskLevel[n]||0,_.value.total),"stroke-color":xe(n),format:()=>`${_.value.byRiskLevel[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"]),l(Me,{open:V.value,"onUpdate:open":o[5]||(o[5]=n=>V.value=n),title:s(e)("audit.details.title",{id:f.value?.id?.slice(0,8)||""}),width:720,footer:null},{default:t(()=>[f.value?(u(),p("div",pt,[l(Ie,{column:2,size:"small",bordered:""},{default:t(()=>[l(T,{label:s(e)("audit.details.id"),span:2},{default:t(()=>[b("span",yt,r(f.value.id),1)]),_:1},8,["label"]),l(T,{label:s(e)("audit.details.eventType")},{default:t(()=>[l(C,{color:J(f.value.eventType),style:{"font-family":"monospace"}},{default:t(()=>[y(r(f.value.eventType),1)]),_:1},8,["color"]),b("span",vt,r(Q(f.value.eventType)),1)]),_:1},8,["label"]),l(T,{label:s(e)("audit.details.riskLevel")},{default:t(()=>[l(C,{color:Y(f.value.riskLevel)},{default:t(()=>[y(r(B(f.value.riskLevel)),1)]),_:1},8,["color"])]),_:1},8,["label"]),l(T,{label:s(e)("audit.details.operation"),span:2},{default:t(()=>[b("span",mt,r(f.value.operation),1)]),_:1},8,["label"]),l(T,{label:s(e)("audit.details.status")},{default:t(()=>[l(C,{color:f.value.success?"green":"red"},{default:t(()=>[y(r(f.value.success?s(e)("audit.details.success"):s(e)("audit.details.failure")),1)]),_:1},8,["color"])]),_:1},8,["label"]),l(T,{label:s(e)("audit.details.time")},{default:t(()=>[y(r(s(fe)(f.value.createdAt)),1)]),_:1},8,["label"]),l(T,{label:s(e)("audit.details.actor")},{default:t(()=>[f.value.actor?(u(),p("span",_t,r(f.value.actor),1)):(u(),p("span",gt,"—"))]),_:1},8,["label"]),l(T,{label:s(e)("audit.details.target")},{default:t(()=>[f.value.target?(u(),p("span",bt,r(f.value.target),1)):(u(),p("span",kt,"—"))]),_:1},8,["label"]),f.value.ipAddress?(u(),x(T,{key:0,label:s(e)("audit.details.ip")},{default:t(()=>[b("span",ht,r(f.value.ipAddress),1)]),_:1},8,["label"])):k("",!0),f.value.userAgent?(u(),x(T,{key:1,label:s(e)("audit.details.userAgent")},{default:t(()=>[b("span",xt,r(f.value.userAgent),1)]),_:1},8,["label"])):k("",!0),f.value.errorMessage?(u(),x(T,{key:2,label:s(e)("audit.details.errorMessage"),span:2},{default:t(()=>[b("span",Lt,r(f.value.errorMessage),1)]),_:1},8,["label"])):k("",!0),f.value.details?(u(),x(T,{key:3,label:s(e)("audit.details.details"),span:2},{default:t(()=>[b("pre",St,r(Se(f.value.details)),1)]),_:1},8,["label"])):k("",!0)]),_:1})])):k("",!0)]),_:1},8,["open","title"])])}}},It=De(Tt,[["__scopeId","data-v-53d0173f"]]);export{It as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{_ as Ee,a as $e,c as ge}from"./index-Cw4v7ezB.js";import{u as Je}from"./ws-D_5-FRIb.js";import{u as Ke}from"./useFs-BD-YRwbU.js";import{R as Ue,an as Ve,al as xe,J as re,ae as D,az as K,ax as Ge}from"./icons-DvZE-RKs.js";import{o as He,M as r,R as f,P as n,u as t,c as o,N as s,r as c,K as y,L as u,O as b,Q as g,S as i,F as Qe,f as ie}from"./vendor-B6ToihkA.js";import"./useShellMode-CgR0wCYM.js";const We={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},qe={class:"page-title"},Xe={class:"page-sub"},Ye={key:0,style:{"text-align":"center",padding:"30px"}},Ze={key:0,style:{"font-family":"monospace",color:"var(--text-muted)","font-size":"12px"}},ea={key:1},aa={key:2,style:{color:"var(--text-secondary)","font-size":"12px"}},ta={key:3,style:{"margin-top":"16px"}},oa={style:{color:"var(--text-secondary)","font-size":"11px","margin-bottom":"6px"}},sa={style:{background:"var(--bg-base)",border:"1px solid var(--border-color)","border-radius":"6px",padding:"12px",color:"#aaa","font-size":"12px","max-height":"200px","overflow-y":"auto","white-space":"pre-wrap"}},la={key:4,style:{"margin-top":"12px",color:"#ff4d4f","font-size":"12px"}},na={style:{color:"var(--text-secondary)"}},ca={key:0,style:{background:"var(--bg-base)",border:"1px solid var(--border-color)","border-radius":"6px",padding:"12px","margin-top":"8px"}},ua={style:{"font-family":"monospace"}},ra={key:0},ia={key:1,style:{"margin-top":"12px"}},pa={style:{background:"var(--bg-base)",border:"1px solid var(--border-color)","border-radius":"6px",padding:"12px",color:"#aaa","font-size":"12px","white-space":"pre-wrap"}},da={key:0,style:{"text-align":"center",padding:"30px"}},va={key:0,style:{"margin-bottom":"16px"}},fa={style:{color:"var(--text-secondary)","font-size":"11px","margin-bottom":"6px"}},ya={style:{background:"var(--bg-base)",border:"1px solid var(--border-color)","border-radius":"6px",padding:"12px",color:"#aaa","font-size":"12px","max-height":"200px","overflow-y":"auto","white-space":"pre-wrap"}},ba={key:0,style:{"font-family":"monospace","font-size":"12px"}},ka={key:2,style:{"margin-top":"12px",color:"#ff4d4f","font-size":"12px"}},ma={key:0,style:{"text-align":"center",padding:"30px"}},_a={key:2,style:{"margin-top":"12px",color:"#ff4d4f","font-size":"12px"}},ga={key:0,style:{"text-align":"center",padding:"30px"}},xa={key:0,style:{"font-family":"monospace",color:"var(--text-muted)","font-size":"12px"}},ha={key:1},wa={key:2},za={key:3,style:{color:"var(--text-secondary)","font-size":"12px"}},Ca={key:3,style:{"margin-top":"12px",color:"#ff4d4f","font-size":"12px"}},Sa={style:{"margin-bottom":"12px",color:"var(--text-secondary)"}},Aa={key:0,style:{"margin-top":"12px"}},Ba={style:{background:"var(--bg-base)",border:"1px solid var(--border-color)","border-radius":"6px",padding:"12px",color:"#aaa","font-size":"12px","white-space":"pre-wrap"}},Oa={__name:"Backup",setup(La){const{t:e}=$e(),k=Je(),he=Ke(),U=c(!1),pe=c("backup"),V=c(!1),G=c(!1),H=c(!1),M=c(""),m=c([]),w=c(""),we=ie(()=>[{title:e("backup.backupColumns.id"),key:"id"},{title:e("backup.backupColumns.size"),key:"size",width:120},{title:e("backup.backupColumns.createdAt"),key:"createdAt"},{title:e("backup.backupColumns.action"),key:"action",width:100}]);async function de(){G.value=!0,M.value="";try{const{output:a}=await k.execute("backup list --json",15e3),l=I(a);Array.isArray(l)?m.value=l:l&&Array.isArray(l.backups)?m.value=l.backups:(m.value=[],a&&a.trim()&&(w.value=a))}catch(a){M.value=e("backup.messages.loadBackupsFailed",{err:a.message})}finally{G.value=!1}}async function ze(){H.value=!0,w.value="",M.value="";try{const{output:a}=await k.execute("backup create --json",3e4);w.value=a||e("backup.backup.createDefaultMessage"),await de()}catch(a){w.value=e("backup.messages.createBackupFailed",{err:a.message})}finally{H.value=!1}}const Q=c(!1),W=c(!1),z=c(null),C=c("");function Ce(a){z.value=a,C.value="",Q.value=!0}async function Se(){if(z.value){W.value=!0,C.value="";try{const{output:a}=await k.execute(`backup restore ${z.value.id}`,6e4);C.value=a||e("backup.backup.restoreDefaultMessage")}catch(a){C.value=e("backup.messages.restoreFailed",{err:a.message})}finally{W.value=!1}}}const q=c(!1),N=c(""),F=c(!1),R=c(""),j=c(0),X=c(""),x=c(""),Y=c(!1),Z=c(!1),S=c([]),Ae=ie(()=>[{title:e("backup.conflictColumns.path"),key:"path"},{title:e("backup.conflictColumns.type"),key:"type",width:120}]);async function ee(){q.value=!0,N.value="";try{const{output:a}=await k.execute("sync status --json",15e3),l=I(a);l?(F.value=l.online||l.synced||l.status==="online"||!1,R.value=F.value?e("backup.sync.synced"):e("backup.sync.notSynced"),j.value=l.pending??l.pendingChanges??0,X.value=l.lastSync||l.lastSyncTime||""):Be(a)}catch(a){N.value=e("backup.messages.loadSyncFailed",{err:a.message})}finally{q.value=!1}}function Be(a){if(!a){R.value=e("backup.sync.unknown");return}F.value=/synced|online|up.to.date/i.test(a),R.value=F.value?e("backup.sync.synced"):e("backup.sync.notSynced");const l=a.match(/pending[:\s]+(\d+)/i);j.value=l?parseInt(l[1]):0;const d=a.match(/last[:\s]+(.+)/i);d&&(X.value=d[1].trim())}async function Oe(){Y.value=!0,x.value="";try{const{output:a}=await k.execute("sync push",3e4);x.value=a||e("backup.sync.pushDefaultMessage"),await ee()}catch(a){x.value=e("backup.messages.pushFailed",{err:a.message})}finally{Y.value=!1}}async function Le(){Z.value=!0,x.value="";try{const{output:a}=await k.execute("sync pull",3e4);x.value=a||e("backup.sync.pullDefaultMessage"),await ee()}catch(a){x.value=e("backup.messages.pullFailed",{err:a.message})}finally{Z.value=!1}}async function Me(){try{const{output:a}=await k.execute("sync conflicts --json",15e3),l=I(a);Array.isArray(l)?S.value=l:l&&Array.isArray(l.conflicts)?S.value=l.conflicts:S.value=[]}catch{S.value=[]}}const ae=c(!1),E=c(""),A=c(!1),te=c(""),oe=c(!1),P=c(""),B=c([]),Fe=ie(()=>[{title:e("backup.pinColumns.cid"),key:"cid"},{title:e("backup.pinColumns.name"),key:"name"},{title:e("backup.pinColumns.size"),key:"size",width:120},{title:e("backup.pinColumns.pinnedAt"),key:"pinnedAt"},{title:e("backup.pinColumns.action"),key:"action",width:120}]);async function Pe(){ae.value=!0,E.value="";try{const{output:a}=await k.execute("ipfs status --json",15e3),l=I(a);if(l)A.value=l.online||l.status==="online"||l.connected||!1,te.value=l.peerId||l.id||"";else{A.value=a?/online|connected|running/i.test(a):!1;const d=a?a.match(/(?:peer\s*id|id)[:\s]+(\S+)/i):null;te.value=d?d[1]:""}}catch(a){E.value=e("backup.messages.loadIpfsFailed",{err:a.message})}finally{ae.value=!1}}async function se(){oe.value=!0,P.value="";try{const{output:a}=await k.execute("ipfs pins --json",15e3),l=I(a);Array.isArray(l)?B.value=l:l&&Array.isArray(l.pins)?B.value=l.pins:B.value=[]}catch(a){P.value=e("backup.messages.loadPinsFailed",{err:a.message})}finally{oe.value=!1}}const le=c(!1),ne=c(!1),$=c(""),T=c("");async function ve(){if($.value.trim()){ne.value=!0,T.value="";try{const{output:a}=await k.execute(`ipfs pin "${$.value.trim()}"`,3e4);T.value=a||e("backup.ipfs.pinDefaultSuccess"),await se()}catch(a){T.value=e("backup.messages.pinFailed",{err:a.message})}finally{ne.value=!1}}}async function Te(a){try{await k.execute(`ipfs unpin ${a.cid}`,15e3),await se()}catch(l){P.value=e("backup.messages.unpinFailed",{err:l.message})}}function I(a){if(!a||!a.trim())return null;try{return JSON.parse(a.trim())}catch{const d=a.match(/\{[\s\S]*\}|\[[\s\S]*\]/);if(d)try{return JSON.parse(d[0])}catch{}return null}}async function Ie(){if(m.value.length){U.value=!0;try{const a=await he.saveJson({schema:1,exportedAt:new Date().toISOString(),count:m.value.length,backups:m.value},{defaultPath:`backup-list-${new Date().toISOString().slice(0,10)}.json`});if(a.canceled)return;ge.success(a.path?e("backup.messages.exportOk",{count:m.value.length,path:a.path}):e("backup.messages.exportOkDefault"))}catch(a){ge.error(e("backup.messages.exportFailed",{err:a.message||a}))}finally{U.value=!1}}}function fe(a){if(a==null||isNaN(a))return"-";const l=Number(a);if(l===0)return"0 B";const d=["B","KB","MB","GB","TB"],h=Math.floor(Math.log(l)/Math.log(1024));return(l/Math.pow(1024,h)).toFixed(h>0?1:0)+" "+d[h]}async function ye(){V.value=!0;try{await Promise.all([de(),ee(),Me(),Pe(),se()])}finally{V.value=!1}}return He(ye),(a,l)=>{const d=y("a-button"),h=y("a-space"),J=y("a-spin"),be=y("a-empty"),ce=y("a-table"),_=y("a-card"),ke=y("a-modal"),ue=y("a-tab-pane"),O=y("a-statistic"),L=y("a-col"),me=y("a-row"),_e=y("a-tag"),De=y("a-popconfirm"),Ne=y("a-input"),Re=y("a-tabs");return u(),r("div",null,[f("div",We,[f("div",null,[f("h2",qe,n(t(e)("backup.title")),1),f("p",Xe,n(t(e)("backup.subtitle")),1)]),o(d,{type:"primary",ghost:"",loading:V.value,onClick:ye},{icon:s(()=>[o(t(Ue))]),default:s(()=>[b(" "+n(t(e)("backup.refresh")),1)]),_:1},8,["loading"])]),o(Re,{activeKey:pe.value,"onUpdate:activeKey":l[4]||(l[4]=p=>pe.value=p),type:"card"},{default:s(()=>[o(ue,{key:"backup"},{tab:s(()=>[o(t(re)),b(" "+n(t(e)("backup.tabs.backup")),1)]),default:s(()=>[o(_,{style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"20px"}},{title:s(()=>[o(h,null,{default:s(()=>[o(t(re)),f("span",null,n(t(e)("backup.backup.cardTitle")),1)]),_:1})]),extra:s(()=>[o(h,null,{default:s(()=>[o(d,{disabled:!m.value.length,loading:U.value,onClick:Ie},{icon:s(()=>[o(t(Ve))]),default:s(()=>[b(" "+n(t(e)("backup.backup.exportButton")),1)]),_:1},8,["disabled","loading"]),o(d,{type:"primary",loading:H.value,onClick:ze},{icon:s(()=>[o(t(xe))]),default:s(()=>[b(" "+n(t(e)("backup.backup.createButton")),1)]),_:1},8,["loading"])]),_:1})]),default:s(()=>[G.value?(u(),r("div",Ye,[o(J)])):m.value.length===0&&!w.value?(u(),g(be,{key:1,description:t(e)("backup.backup.emptyText")},null,8,["description"])):i("",!0),m.value.length>0?(u(),g(ce,{key:2,columns:we.value,"data-source":m.value,pagination:!1,size:"small","row-key":"id"},{bodyCell:s(({column:p,record:v})=>[p.key==="id"?(u(),r("span",Ze,n(v.id.length>20?v.id.slice(0,20)+"...":v.id),1)):i("",!0),p.key==="size"?(u(),r("span",ea,n(fe(v.size)),1)):i("",!0),p.key==="createdAt"?(u(),r("span",aa,n(v.createdAt||"-"),1)):i("",!0),p.key==="action"?(u(),g(d,{key:3,size:"small",type:"link",onClick:je=>Ce(v)},{default:s(()=>[b(n(t(e)("backup.backupColumns.restore")),1)]),_:1},8,["onClick"])):i("",!0)]),_:1},8,["columns","data-source"])):i("",!0),w.value?(u(),r("div",ta,[f("div",oa,n(t(e)("backup.backup.lastResultLabel")),1),f("pre",sa,n(w.value),1)])):i("",!0),M.value?(u(),r("div",la,n(M.value),1)):i("",!0)]),_:1}),o(ke,{open:Q.value,"onUpdate:open":l[0]||(l[0]=p=>Q.value=p),title:t(e)("backup.backup.restoreTitle"),"ok-text":t(e)("backup.backup.restoreOk"),"cancel-text":t(e)("common.cancel"),"confirm-loading":W.value,onOk:Se,"ok-type":"danger"},{default:s(()=>[f("p",na,n(t(e)("backup.backup.restoreIntro")),1),z.value?(u(),r("div",ca,[f("div",null,[f("strong",null,n(t(e)("backup.backup.backupIdPrefix")),1),l[5]||(l[5]=b()),f("span",ua,n(z.value.id),1)]),z.value.createdAt?(u(),r("div",ra,[f("strong",null,n(t(e)("backup.backup.createdAtPrefix")),1),b(" "+n(z.value.createdAt),1)])):i("",!0)])):i("",!0),C.value?(u(),r("div",ia,[f("pre",pa,n(C.value),1)])):i("",!0)]),_:1},8,["open","title","ok-text","cancel-text","confirm-loading"])]),_:1}),o(ue,{key:"sync"},{tab:s(()=>[o(t(D)),b(" "+n(t(e)("backup.tabs.sync")),1)]),default:s(()=>[q.value?(u(),r("div",da,[o(J)])):(u(),r(Qe,{key:1},[o(me,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:s(()=>[o(L,{xs:24,sm:8},{default:s(()=>[o(_,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:s(()=>[o(O,{title:t(e)("backup.sync.statusLabel"),value:R.value,"value-style":{color:F.value?"#52c41a":"#888",fontSize:"16px"}},{prefix:s(()=>[o(t(D))]),_:1},8,["title","value","value-style"])]),_:1})]),_:1}),o(L,{xs:24,sm:8},{default:s(()=>[o(_,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:s(()=>[o(O,{title:t(e)("backup.sync.pendingLabel"),value:j.value,"value-style":{color:j.value>0?"#faad14":"#52c41a",fontSize:"16px"}},{prefix:s(()=>[o(t(D))]),_:1},8,["title","value","value-style"])]),_:1})]),_:1}),o(L,{xs:24,sm:8},{default:s(()=>[o(_,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:s(()=>[o(O,{title:t(e)("backup.sync.lastSyncLabel"),value:X.value||t(e)("backup.sync.noLastSync"),"value-style":{color:"var(--text-secondary)",fontSize:"16px"}},{prefix:s(()=>[o(t(D))]),_:1},8,["title","value"])]),_:1})]),_:1})]),_:1}),o(h,{style:{"margin-bottom":"16px"}},{default:s(()=>[o(d,{loading:Y.value,onClick:Oe,style:{background:"var(--bg-card-hover)","border-color":"var(--border-color)"}},{icon:s(()=>[o(t(re))]),default:s(()=>[b(" "+n(t(e)("backup.sync.pushButton")),1)]),_:1},8,["loading"]),o(d,{loading:Z.value,onClick:Le,style:{background:"var(--bg-card-hover)","border-color":"var(--border-color)"}},{icon:s(()=>[o(t(D))]),default:s(()=>[b(" "+n(t(e)("backup.sync.pullButton")),1)]),_:1},8,["loading"])]),_:1}),x.value?(u(),r("div",va,[f("div",fa,n(t(e)("backup.sync.outputLabel")),1),f("pre",ya,n(x.value),1)])):i("",!0),S.value.length>0?(u(),g(_,{key:1,title:t(e)("backup.sync.conflictsTitle"),style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:s(()=>[o(ce,{columns:Ae.value,"data-source":S.value,pagination:!1,size:"small","row-key":"path"},{bodyCell:s(({column:p,record:v})=>[p.key==="path"?(u(),r("span",ba,n(v.path),1)):i("",!0),p.key==="type"?(u(),g(_e,{key:1,color:"red"},{default:s(()=>[b(n(v.type||t(e)("backup.sync.conflictDefault")),1)]),_:2},1024)):i("",!0)]),_:1},8,["columns","data-source"])]),_:1},8,["title"])):i("",!0)],64)),N.value?(u(),r("div",ka,n(N.value),1)):i("",!0)]),_:1}),o(ue,{key:"ipfs"},{tab:s(()=>[o(t(K)),b(" "+n(t(e)("backup.tabs.ipfs")),1)]),default:s(()=>[o(_,{title:t(e)("backup.ipfs.statusCardTitle"),style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"20px"}},{extra:s(()=>[o(_e,{color:A.value?"green":"default"},{default:s(()=>[b(n(A.value?t(e)("backup.ipfs.online"):t(e)("backup.ipfs.offline")),1)]),_:1},8,["color"])]),default:s(()=>[ae.value?(u(),r("div",ma,[o(J)])):(u(),g(me,{key:1,gutter:[16,16]},{default:s(()=>[o(L,{xs:24,sm:8},{default:s(()=>[o(_,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:s(()=>[o(O,{title:t(e)("backup.ipfs.nodeStatusLabel"),value:A.value?t(e)("backup.ipfs.connected"):t(e)("backup.ipfs.disconnected"),"value-style":{color:A.value?"#52c41a":"#888",fontSize:"16px"}},{prefix:s(()=>[o(t(K))]),_:1},8,["title","value","value-style"])]),_:1})]),_:1}),o(L,{xs:24,sm:8},{default:s(()=>[o(_,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:s(()=>[o(O,{title:t(e)("backup.ipfs.pinnedLabel"),value:B.value.length,"value-style":{fontSize:"16px"}},{prefix:s(()=>[o(t(K))]),_:1},8,["title","value"])]),_:1})]),_:1}),o(L,{xs:24,sm:8},{default:s(()=>[o(_,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:s(()=>[o(O,{title:t(e)("backup.ipfs.peerIdLabel"),value:te.value||"-","value-style":{color:"var(--text-muted)",fontSize:"12px",fontFamily:"monospace"}},{prefix:s(()=>[o(t(K))]),_:1},8,["title","value"])]),_:1})]),_:1})]),_:1})),E.value?(u(),r("div",_a,n(E.value),1)):i("",!0)]),_:1},8,["title"]),o(_,{title:t(e)("backup.ipfs.pinListTitle"),style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{extra:s(()=>[o(d,{size:"small",onClick:l[1]||(l[1]=p=>le.value=!0),style:{background:"var(--bg-card-hover)","border-color":"var(--border-color)"}},{icon:s(()=>[o(t(xe))]),default:s(()=>[b(" "+n(t(e)("backup.ipfs.pinFileButton")),1)]),_:1})]),default:s(()=>[oe.value?(u(),r("div",ga,[o(J)])):B.value.length===0?(u(),g(be,{key:1,description:t(e)("backup.ipfs.pinEmptyText")},null,8,["description"])):(u(),g(ce,{key:2,columns:Fe.value,"data-source":B.value,pagination:{pageSize:10},size:"small","row-key":"cid"},{bodyCell:s(({column:p,record:v})=>[p.key==="cid"?(u(),r("span",xa,n(v.cid.length>24?v.cid.slice(0,24)+"...":v.cid),1)):i("",!0),p.key==="name"?(u(),r("span",ha,n(v.name||"-"),1)):i("",!0),p.key==="size"?(u(),r("span",wa,n(fe(v.size)),1)):i("",!0),p.key==="pinnedAt"?(u(),r("span",za,n(v.pinnedAt||"-"),1)):i("",!0),p.key==="action"?(u(),g(De,{key:4,title:t(e)("backup.ipfs.unpinConfirm"),"ok-text":t(e)("backup.ipfs.unpinOk"),"cancel-text":t(e)("common.cancel"),onConfirm:je=>Te(v)},{default:s(()=>[o(d,{size:"small",type:"link",danger:""},{default:s(()=>[o(t(Ge)),b(" "+n(t(e)("backup.ipfs.unpinAction")),1)]),_:1})]),_:1},8,["title","ok-text","cancel-text","onConfirm"])):i("",!0)]),_:1},8,["columns","data-source"])),P.value?(u(),r("div",Ca,n(P.value),1)):i("",!0)]),_:1},8,["title"]),o(ke,{open:le.value,"onUpdate:open":l[3]||(l[3]=p=>le.value=p),title:t(e)("backup.ipfs.pinModalTitle"),"confirm-loading":ne.value,onOk:ve,"ok-text":t(e)("backup.ipfs.pinModalOk"),"cancel-text":t(e)("common.cancel")},{default:s(()=>[f("div",Sa,n(t(e)("backup.ipfs.pinModalIntro")),1),o(Ne,{value:$.value,"onUpdate:value":l[2]||(l[2]=p=>$.value=p),placeholder:t(e)("backup.ipfs.pinModalPlaceholder"),onPressEnter:ve},null,8,["value","placeholder"]),T.value?(u(),r("div",Aa,[f("pre",Ba,n(T.value),1)])):i("",!0)]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"])]),_:1})]),_:1},8,["activeKey"])])}}},Na=Ee(Oa,[["__scopeId","data-v-80f8ca46"]]);export{Na as default};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{L as t,M as n,R as s,Q as x,u as r,P as l,S as _,Y as j,f as g,w as K,o as V,c,N as y,F as M,_ as z,a0 as G,a1 as H,K as N,r as P,O as $,a as J,n as U}from"./vendor-B6ToihkA.js";import{_ as L,a as Y}from"./index-Cw4v7ezB.js";import{u as W}from"./chat-BQ-Nk2XY.js";import{a as X,L as Z,u as ee,ab as te,ac as oe,F as ne,G as se,M as ae,a8 as le,ad as ie}from"./icons-DvZE-RKs.js";import{r as re}from"./markdown-vYH_ziAO.js";import"./ws-D_5-FRIb.js";import"./markdown-xjUYbPSW.js";const de=["data-testid"],ce={class:"cb-action__icon"},ue={class:"cb-action__label"},pe={key:0,class:"cb-action__detail"},ve={key:1,class:"cb-action__caret"},ye={__name:"ToolInvocationCard",props:{item:{type:Object,required:!0},expandable:{type:Boolean,default:!1},expanded:{type:Boolean,default:!1}},emits:["toggle"],setup(d,{emit:v}){const f=d,C=v;function i(){f.expandable&&C("toggle")}return(b,m)=>(t(),n("div",{class:j(["cb-action",[`cb-action--${d.item.status}`,{"cb-action--expandable":d.expandable,"cb-action--open":d.expanded}]]),"data-testid":`tool-card-${d.item.id}`,onClick:i},[s("span",ce,[d.item.status==="done"?(t(),x(r(X),{key:0})):d.item.status==="running"?(t(),x(r(Z),{key:1})):(t(),x(r(ee),{key:2}))]),s("span",ue,l(d.item.label),1),d.item.detail?(t(),n("span",pe,l(d.item.detail),1)):_("",!0),d.expandable?(t(),n("span",ve,[d.expanded?(t(),x(r(te),{key:0})):(t(),x(r(oe),{key:1}))])):_("",!0)],10,de))}},_e=L(ye,[["__scopeId","data-v-cf5a0925"]]),fe=["innerHTML"],he={__name:"MarkdownRenderer",props:{content:{type:String,default:""}},setup(d){const v=d,f=g(()=>re(v.content||""));return(C,i)=>(t(),n("div",{class:"markdown-content",innerHTML:f.value},null,8,fe))}},Q=L(he,[["__scopeId","data-v-693ca57e"]]),ge={style:{display:"flex",height:"calc(100vh - 56px - 48px)",gap:"16px"}},xe={style:{width:"240px","flex-shrink":"0",background:"var(--bg-card)","border-radius":"8px",border:"1px solid var(--border-color)",display:"flex","flex-direction":"column",overflow:"hidden"}},me={key:0,style:{padding:"6px 12px 4px","font-size":"11px",color:"#1677ff",background:"rgba(22,119,255,.07)","border-bottom":"1px solid rgba(22,119,255,.15)",display:"flex","align-items":"center",gap:"4px"}},be=["title"],ke={key:1,style:{padding:"6px 12px 4px","font-size":"11px",color:"#722ed1",background:"rgba(114,46,209,.07)","border-bottom":"1px solid rgba(114,46,209,.15)",display:"flex","align-items":"center",gap:"4px"}},we={style:{padding:"10px 12px","border-bottom":"1px solid var(--border-color)",display:"flex",gap:"8px"}},$e={style:{flex:"1","overflow-y":"auto",padding:"8px"}},Ce=["onClick"],Se={class:"session-icon"},Oe={class:"session-info"},Te={class:"session-title"},Ie={class:"session-meta"},Me={key:0,style:{"text-align":"center",color:"var(--text-muted)",padding:"24px 0","font-size":"13px"}},ze={style:{flex:"1",background:"var(--bg-card)","border-radius":"8px",border:"1px solid var(--border-color)",display:"flex","flex-direction":"column",overflow:"hidden"}},Ne={key:0,style:{flex:"1",display:"flex","flex-direction":"column","align-items":"center","justify-content":"center",color:"var(--text-muted)"}},je={style:{"font-size":"16px","margin-bottom":"8px",color:"#777"}},Le={style:{"font-size":"13px",color:"var(--text-muted)"}},Re={style:{"margin-top":"24px",display:"flex",gap:"12px"}},Be={key:0,class:"tool-msg"},Fe={key:0,class:"tool-detail"},Pe={class:"tool-detail__pre tool-detail__pre--input"},Qe={key:0,class:"tool-detail__result"},qe={class:"tool-detail__pre tool-detail__pre--result"},Ae={key:1,class:"user-msg"},De={class:"bubble user"},Ee={key:2,class:"assistant-msg"},Ke={key:0,class:"assistant-msg"},Ve={key:1,class:"question-card"},Ge={class:"question-text"},He={key:0,style:{display:"flex","flex-wrap":"wrap",gap:"8px","margin-top":"10px"}},Je={key:2,style:{padding:"16px","border-top":"1px solid var(--border-color)"}},Ue={style:{display:"flex",gap:"8px","align-items":"flex-end"}},Ye={__name:"Chat",setup(d){const{t:v}=Y(),f=window.__CC_CONFIG__||{},C=g(()=>f.mode==="project"),i=W(),b=P(null),m=P(""),u=g(()=>i.currentSessionId),R=g(()=>u.value?i.getMessages(u.value):[]),I=g(()=>{const e=i.streaming[u.value];return e?.active?e.content:null}),S=g(()=>i.pendingQuestion[u.value]),O=g(()=>i.getIsLoading(u.value)),k=J(new Set);function q(e){k.has(e)?k.delete(e):k.add(e)}function A(e,a){return{id:`tool-${a}`,label:e.tool||v("chat.tool.unknownTool"),detail:D(e),status:e.status==="done"?"done":"running"}}function D(e){if(e.status==="running"){const w=e.input&&typeof e.input=="object"?Object.keys(e.input):[];return w.length?v("chat.tool.argsPreview",{n:w.length,key:w[0]}):v("chat.tool.running")}if(e.result==null)return v("chat.tool.done");const p=(typeof e.result=="string"?e.result:JSON.stringify(e.result)).split(`
|
|
2
|
-
`)[0]||"";return p.length>48?`${p.slice(0,48)}…`:p||v("chat.tool.done")}async function T(e){await i.createSession(e)}async function B(){if(!m.value.trim()||O.value||!u.value)return;const e=m.value;m.value="",await i.sendMessage(u.value,e)}function F(e){i.answerQuestion(u.value,e)}return K([R,I],()=>{U(()=>{b.value&&(b.value.scrollTop=b.value.scrollHeight)})},{deep:!0}),V(()=>{i.loadSessions()}),(e,a)=>{const p=N("a-button"),w=N("a-input-search"),E=N("a-textarea");return t(),n("div",ge,[s("div",xe,[C.value?(t(),n("div",me,[c(r(ne)),s("span",{style:{overflow:"hidden","text-overflow":"ellipsis","white-space":"nowrap"},title:r(f).projectRoot},l(r(f).projectName||e.$t("chat.scope.fallbackProjectName")),9,be)])):(t(),n("div",ke,[c(r(se)),s("span",null,l(e.$t("chat.scope.globalSessions")),1)])),s("div",we,[c(p,{type:"primary",size:"small",style:{flex:"1"},onClick:a[0]||(a[0]=o=>T("chat"))},{icon:y(()=>[c(r(ae))]),default:y(()=>[$(" "+l(e.$t("chat.newChat")),1)]),_:1}),c(p,{size:"small",style:{flex:"1"},onClick:a[1]||(a[1]=o=>T("agent"))},{icon:y(()=>[c(r(le))]),default:y(()=>[$(" "+l(e.$t("chat.newAgent")),1)]),_:1})]),s("div",$e,[(t(!0),n(M,null,z(r(i).sessions,o=>(t(),n("div",{key:o.id,class:j(["session-item",{active:o.id===r(i).currentSessionId}]),onClick:h=>r(i).switchSession(o.id)},[s("span",Se,l(o.type==="agent"?"🤖":"💬"),1),s("div",Oe,[s("div",Te,l(o.title||e.$t("chat.session.untitled")),1),s("div",Ie,l(e.$t("chat.session.messageCountSuffix",{n:o.messageCount||0})),1)])],10,Ce))),128)),r(i).sessions.length?_("",!0):(t(),n("div",Me,l(e.$t("chat.sidebarEmpty")),1))])]),s("div",ze,[u.value?(t(),n("div",{key:1,style:{flex:"1","overflow-y":"auto",padding:"20px"},ref_key:"messagesEl",ref:b},[(t(!0),n(M,null,z(R.value,(o,h)=>(t(),n("div",{key:h,class:j(["message-row",o.role])},[o.role==="tool"?(t(),n("div",Be,[c(_e,{item:A(o,h),expandable:"",expanded:k.has(h),onToggle:We=>q(h)},null,8,["item","expanded","onToggle"]),k.has(h)?(t(),n("div",Fe,[s("pre",Pe,l(JSON.stringify(o.input,null,2)),1),o.result?(t(),n("div",Qe,[s("pre",qe,l(typeof o.result=="string"?o.result:JSON.stringify(o.result,null,2)),1)])):_("",!0)])):_("",!0)])):o.role==="user"?(t(),n("div",Ae,[s("div",De,l(o.content),1)])):(t(),n("div",Ee,[a[6]||(a[6]=s("div",{class:"avatar"},"AI",-1)),c(Q,{class:"bubble assistant",content:o.content},null,8,["content"])]))],2))),128)),I.value?(t(),n("div",Ke,[a[7]||(a[7]=s("div",{class:"avatar"},"AI",-1)),c(Q,{class:"bubble assistant streaming",content:I.value},null,8,["content"])])):_("",!0),S.value?(t(),n("div",Ve,[s("div",Ge,l(S.value.question),1),S.value.choices?.length?(t(),n("div",He,[(t(!0),n(M,null,z(S.value.choices,o=>(t(),x(p,{key:o,size:"small",onClick:h=>F(o)},{default:y(()=>[$(l(o),1)]),_:2},1032,["onClick"]))),128))])):(t(),x(w,{key:1,placeholder:e.$t("chat.input.answerPlaceholder"),"enter-button":e.$t("chat.input.send"),style:{"margin-top":"10px"},onSearch:F},null,8,["placeholder","enter-button"]))])):_("",!0)],512)):(t(),n("div",Ne,[a[5]||(a[5]=s("div",{style:{"font-size":"48px","margin-bottom":"16px"}},"💬",-1)),s("div",je,l(e.$t("chat.empty.title")),1),s("div",Le,l(e.$t("chat.empty.subtitle")),1),s("div",Re,[c(p,{type:"primary",onClick:a[2]||(a[2]=o=>T("chat"))},{default:y(()=>[$(l(e.$t("chat.empty.newChat")),1)]),_:1}),c(p,{style:{},onClick:a[3]||(a[3]=o=>T("agent"))},{default:y(()=>[$(l(e.$t("chat.empty.newAgent")),1)]),_:1})])])),u.value?(t(),n("div",Je,[s("div",Ue,[c(E,{value:m.value,"onUpdate:value":a[4]||(a[4]=o=>m.value=o),placeholder:O.value?e.$t("chat.input.loading"):e.$t("chat.input.placeholder"),"auto-size":{minRows:1,maxRows:6},disabled:O.value,style:{background:"var(--bg-card-hover)","border-color":"var(--border-color)",color:"var(--text-primary)",resize:"none",flex:"1"},onKeydown:G(H(B,["exact","prevent"]),["enter"])},null,8,["value","placeholder","disabled","onKeydown"]),c(p,{type:"primary",loading:O.value,onClick:B,style:{height:"40px"}},{icon:y(()=>[c(r(ie))]),_:1},8,["loading"])])])):_("",!0)])])}}},at=L(Ye,[["__scopeId","data-v-d80d2edb"]]);export{at as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{_ as st,a as it,M as rt,c as A}from"./index-Cw4v7ezB.js";import{u as ut}from"./ws-D_5-FRIb.js";import{s as dt}from"./community-parser-CO25nZFt.js";import{R as ct,x as ye,al as ft,o as ze,a2 as pt,af as Ae,aK as Fe,G as gt,f as mt}from"./icons-DvZE-RKs.js";import{o as vt,M as c,R as v,P as i,c as t,N as a,K as g,r as w,L as u,O as f,u as _,F as P,_ as Q,Q as k,$ as je,S as p,f as Y,a as _e}from"./vendor-B6ToihkA.js";function B(n){const r=dt(n);if(!r)return null;try{return JSON.parse(r)}catch{}const l=r.match(/\{[\s\S]*\}|\[[\s\S]*\]/);if(!l)return null;try{return JSON.parse(l[0])}catch{return null}}const ne=Object.freeze(["react","vue","express","fastapi","spring_boot"]),se=Object.freeze(["critical","high","medium","low","info"]);function C(n,r=0){return typeof n=="number"&&Number.isFinite(n)?n:r}function Pe(n,r=null){if(n==null)return r;if(typeof n!="string")return n;try{return JSON.parse(n)}catch{return r}}function yt(n,r=0){if(!n||typeof n!="object")return null;const l=n.id||"";return l?{key:l,id:l,prompt:String(n.prompt||""),language:n.language??"",framework:n.framework??"",generatedCode:n.generated_code??n.generatedCode??"",fileCount:C(n.file_count??n.fileCount,0),tokenCount:C(n.token_count??n.tokenCount,0),metadata:n.metadata??null,createdAt:n.created_at??n.createdAt??null,_idx:r}:null}function _t(n){const r=B(n);return Array.isArray(r)?r.map(yt).filter(Boolean):[]}function bt(n,r=0){return!n||typeof n!="object"?null:{key:r,rule:String(n.rule||""),severity:String(n.severity||"info").toLowerCase(),match:String(n.match||""),pattern:String(n.pattern||"")}}function kt(n,r=0){if(!n||typeof n!="object")return null;const l=n.id||"";if(!l)return null;const R=Pe(n.severity_summary??n.severitySummary,null)??n.severity_summary??n.severitySummary,S={};for(const E of se)S[E]=0;if(R&&typeof R=="object"&&!Array.isArray(R))for(const[E,J]of Object.entries(R))typeof J=="number"&&Number.isFinite(J)&&(S[E]=J);const L=Pe(n.issues_detail??n.issuesDetail,null)??n.issues_detail??n.issuesDetail,T=Array.isArray(L)?L.map(bt).filter(Boolean):[];return{key:l,id:l,generationId:n.generation_id??n.generationId??"",codeHash:String(n.code_hash??n.codeHash??""),language:n.language??"",issuesFound:C(n.issues_found??n.issuesFound,0),securityIssues:C(n.security_issues??n.securityIssues,0),severitySummary:S,issuesDetail:T,reviewedAt:n.reviewed_at??n.reviewedAt??null,_idx:r}}function wt(n){const r=B(n);return Array.isArray(r)?r.map(kt).filter(Boolean):[]}function ht(n){const r={};for(const L of se)r[L]=0;const l=B(n);if(!l||typeof l!="object"||Array.isArray(l))return{ok:!1,reviewId:null,reason:"",issuesFound:0,securityIssues:0,severitySummary:r};const R=!!l.reviewId,S={...r};if(l.severitySummary&&typeof l.severitySummary=="object"&&!Array.isArray(l.severitySummary))for(const[L,T]of Object.entries(l.severitySummary))typeof T=="number"&&Number.isFinite(T)&&(S[L]=T);return{ok:R,reviewId:l.reviewId?String(l.reviewId):null,reason:l.reason?String(l.reason):"",issuesFound:C(l.issuesFound,0),securityIssues:C(l.securityIssues,0),severitySummary:S}}function $t(n,r=0){if(!n||typeof n!="object")return null;const l=n.id||"";return l?{key:l,id:l,template:String(n.template||""),projectName:n.project_name??n.projectName??"",options:n.options??null,filesGenerated:C(n.files_generated??n.filesGenerated,0),outputPath:n.output_path??n.outputPath??"",createdAt:n.created_at??n.createdAt??null,_idx:r}:null}function St(n){const r=B(n);return Array.isArray(r)?r.map($t).filter(Boolean):[]}const Ct={generations:{total:0,totalTokens:0,totalFiles:0,uniqueLanguages:0},reviews:{total:0,totalIssues:0,totalSecurityIssues:0,avgIssuesPerReview:0},scaffolds:{total:0,byTemplate:{}}};function xt(n){const r=JSON.parse(JSON.stringify(Ct));for(const R of ne)r.scaffolds.byTemplate[R]=0;const l=B(n);if(!l||typeof l!="object"||Array.isArray(l))return r;if(l.generations&&typeof l.generations=="object"&&(r.generations.total=C(l.generations.total,0),r.generations.totalTokens=C(l.generations.totalTokens,0),r.generations.totalFiles=C(l.generations.totalFiles,0),r.generations.uniqueLanguages=C(l.generations.uniqueLanguages,0)),l.reviews&&typeof l.reviews=="object"&&(r.reviews.total=C(l.reviews.total,0),r.reviews.totalIssues=C(l.reviews.totalIssues,0),r.reviews.totalSecurityIssues=C(l.reviews.totalSecurityIssues,0),r.reviews.avgIssuesPerReview=C(l.reviews.avgIssuesPerReview,0)),l.scaffolds&&typeof l.scaffolds=="object"&&(r.scaffolds.total=C(l.scaffolds.total,0),l.scaffolds.byTemplate&&typeof l.scaffolds.byTemplate=="object"))for(const[R,S]of Object.entries(l.scaffolds.byTemplate))typeof S=="number"&&Number.isFinite(S)&&(r.scaffolds.byTemplate[R]=S);return r}function Re(n){const r=B(n);if(!r||typeof r!="object"||Array.isArray(r))return{ok:!1,id:null,reason:""};const l=r.generationId||r.scaffoldId||r.reviewId||null;return{ok:!!l,id:l?String(l):null,reason:r.reason?String(r.reason):""}}function X(n){if(n==null||n==="")return"—";const r=typeof n=="number"?new Date(n):new Date(String(n));return isNaN(r.getTime())?String(n):r.toLocaleString("zh-CN",{hour12:!1})}const It={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},zt={class:"page-title"},At={class:"page-sub"},Ft={class:"tmpl-count"},jt={class:"filter-bar"},Pt={style:{color:"var(--text-primary)","font-weight":"500"}},Rt={style:{color:"var(--text-muted)","font-size":"11px","font-family":"monospace","margin-top":"2px"}},Lt={key:1,style:{color:"var(--text-muted)"}},Nt={key:1,style:{color:"var(--text-muted)"}},Tt={key:3,style:{color:"var(--text-secondary)"}},Ot={key:4,style:{color:"var(--text-secondary)","font-family":"monospace","font-size":"12px"}},Ut={key:5,style:{color:"var(--text-secondary)","font-size":"11px"}},Gt={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},Dt={style:{color:"var(--text-primary)","font-family":"monospace","font-size":"12px"}},Et={style:{color:"var(--text-muted)","font-size":"11px","font-family":"monospace","margin-top":"2px"}},Jt={key:1,style:{color:"var(--text-muted)"}},Mt={key:4,class:"sev-mini"},Bt={key:0,style:{color:"#ff4d4f"}},qt={key:1,style:{color:"#fa8c16"}},Ht={key:2,style:{color:"#faad14"}},Vt={key:3,style:{color:"#888"}},Kt={key:4,style:{color:"#1677ff"}},Wt={key:5,style:{color:"#52c41a"}},Qt={key:5,style:{color:"var(--text-secondary)","font-size":"11px"}},Yt={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},Xt={class:"filter-bar"},Zt={style:{color:"var(--text-primary)","font-weight":"500"}},ea={style:{color:"var(--text-muted)","font-size":"11px","font-family":"monospace","margin-top":"2px"}},ta={key:2,style:{color:"var(--text-secondary)"}},aa={key:0,style:{color:"var(--text-secondary)","font-family":"monospace","font-size":"11px"}},oa={key:1,style:{color:"var(--text-muted)"}},la={key:4,style:{color:"var(--text-secondary)","font-size":"11px"}},na={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},sa={style:{"padding-top":"8px"}},ia={key:1},ra={style:{color:"var(--text-primary)","font-size":"12px",margin:"12px 0 6px"}},ua={key:0,style:{"padding-top":"8px"}},da={style:{"font-family":"monospace","font-size":"12px"}},ca={key:1,style:{color:"var(--text-muted)"}},fa={key:1,style:{color:"var(--text-muted)"}},pa={class:"code-pre"},ga={class:"code-pre"},ma={key:0,style:{"padding-top":"8px"}},va={style:{"font-family":"monospace","font-size":"12px"}},ya={style:{"font-family":"monospace","font-size":"12px"}},_a={style:{"font-family":"monospace","font-size":"12px"}},ba={key:1,style:{color:"var(--text-muted)"}},ka={style:{color:"var(--text-primary)","font-size":"13px",margin:"16px 0 8px"}},wa={key:0,style:{color:"var(--text-primary)","font-size":"13px",margin:"16px 0 8px"}},ha={style:{"margin-left":"8px","font-family":"monospace","font-size":"12px"}},$a={style:{"margin-left":"8px",padding:"1px 6px",background:"var(--bg-base)","border-radius":"3px","font-size":"11px"}},Sa={__name:"Codegen",setup(n){const r=ut(),{t:l}=it(),R=rt.PRESENTED_IMAGE_SIMPLE,S=w(!1),L=w(!1),T=w(!1),E=w(!1),J=w([]),be=w([]),ie=w([]),U=w({generations:{total:0,totalTokens:0,totalFiles:0,uniqueLanguages:0},reviews:{total:0,totalIssues:0,totalSecurityIssues:0,avgIssuesPerReview:0},scaffolds:{total:0,byTemplate:{}}}),ke=w("generations"),q=w(""),H=w(""),V=w(""),Z=w(!1),ee=w(!1),te=w(!1),re=w(!1),ue=w(!1),m=_e({prompt:"",language:"",framework:"",code:"",files:0,tokens:0}),x=_e({generationId:"",language:"",code:""}),y=_e({template:"react",projectName:"",optionsJson:"",files:0,outputPath:""}),h=w(null),F=w(null),$=w(null),Le=Y(()=>[{title:l("codegen.generationCols.prompt"),key:"prompt"},{title:l("codegen.generationCols.language"),key:"language",width:"110px"},{title:l("codegen.generationCols.framework"),key:"framework",width:"110px"},{title:l("codegen.generationCols.fileCount"),key:"fileCount",width:"70px"},{title:l("codegen.generationCols.tokenCount"),key:"tokenCount",width:"110px"},{title:l("codegen.generationCols.createdAt"),key:"createdAt",width:"160px"},{title:l("codegen.generationCols.action"),key:"action",width:"140px"}]),Ne=Y(()=>[{title:l("codegen.reviewCols.codeHash"),key:"codeHash",width:"180px"},{title:l("codegen.reviewCols.language"),key:"language",width:"110px"},{title:l("codegen.reviewCols.issuesFound"),key:"issuesFound",width:"90px"},{title:l("codegen.reviewCols.securityIssues"),key:"securityIssues",width:"90px"},{title:l("codegen.reviewCols.severityBreak"),key:"severityBreak"},{title:l("codegen.reviewCols.reviewedAt"),key:"reviewedAt",width:"160px"},{title:l("codegen.reviewCols.action"),key:"action",width:"90px"}]),Te=Y(()=>[{title:l("codegen.scaffoldCols.projectName"),key:"projectName"},{title:l("codegen.scaffoldCols.template"),key:"template",width:"120px"},{title:l("codegen.scaffoldCols.filesGenerated"),key:"filesGenerated",width:"90px"},{title:l("codegen.scaffoldCols.outputPath"),key:"outputPath",width:"300px"},{title:l("codegen.scaffoldCols.createdAt"),key:"createdAt",width:"160px"}]),Oe=Y(()=>{let e=J.value;if(q.value.trim()){const s=q.value.trim().toLowerCase();e=e.filter(b=>(b.language||"").toLowerCase().includes(s))}if(H.value.trim()){const s=H.value.trim().toLowerCase();e=e.filter(b=>(b.framework||"").toLowerCase().includes(s))}return e}),Ue=Y(()=>V.value?ie.value.filter(e=>e.template===V.value):ie.value);function we(e){return{react:"cyan",vue:"green",express:"gold",fastapi:"magenta",spring_boot:"red"}[e]||"default"}function Ge(e){return{react:"#13c2c2",vue:"#52c41a",express:"#faad14",fastapi:"#eb2f96",spring_boot:"#ff4d4f"}[e]||"#888"}function de(e){const s=`codegen.severityLabels.${e}`,b=l(s);return b===s?e:b}function ce(e){return{critical:"red",high:"orange",medium:"gold",low:"default",info:"blue"}[e]||"default"}function De(e){return{critical:"#ff4d4f",high:"#fa8c16",medium:"#faad14",low:"#888",info:"#1677ff"}[e]||"#888"}function Ee(e,s){return s?Math.round(e/s*100):0}function ae(e,s){return e?e.length<=s?e:e.slice(0,s)+"…":""}function N(e){return`"${String(e).replace(/"/g,'\\"')}"`}async function K(){S.value=!0;try{const[e,s,b,oe]=await Promise.all([r.execute("codegen list --limit 200 --json",1e4).catch(()=>({output:""})),r.execute("codegen reviews --limit 200 --json",1e4).catch(()=>({output:""})),r.execute("codegen scaffolds --limit 200 --json",1e4).catch(()=>({output:""})),r.execute("codegen stats --json",8e3).catch(()=>({output:""}))]);J.value=_t(e.output),be.value=wt(s.output),ie.value=St(b.output),U.value=xt(oe.output)}catch(e){A.error(l("codegen.msg.loadFailed")+": "+(e?.message||e))}finally{S.value=!1}}async function Je(){if(!m.prompt.trim()){A.warning(l("codegen.msg.promptEmpty"));return}L.value=!0;try{const e=[`codegen generate -p ${N(m.prompt.trim())}`];m.language.trim()&&e.push(`-l ${N(m.language.trim())}`),m.framework.trim()&&e.push(`-f ${N(m.framework.trim())}`),m.code.trim()&&e.push(`--code ${N(m.code.trim())}`),m.files>0&&e.push(`--files ${m.files}`),m.tokens>0&&e.push(`--tokens ${m.tokens}`),e.push("--json");const{output:s}=await r.execute(e.join(" "),1e4),b=Re(s);if(!b.ok){A.error(l("codegen.msg.generateFailed")+": "+(b.reason||s.slice(0,120)));return}A.success(l("codegen.msg.generateSuccess",{id:b.id?.slice(0,8)})),Z.value=!1,he(),await K()}catch(e){A.error(l("codegen.msg.generateFailed")+": "+(e?.message||e))}finally{L.value=!1}}async function Me(){if(!x.code.trim()){A.warning(l("codegen.msg.codeEmpty"));return}T.value=!0,h.value=null;try{const e=[`codegen review -c ${N(x.code)}`];x.language.trim()&&e.push(`-l ${N(x.language.trim())}`),x.generationId.trim()&&e.push(`-g ${N(x.generationId.trim())}`),e.push("--json");const{output:s}=await r.execute(e.join(" "),1e4);h.value=ht(s),!h.value.ok&&h.value.reason?A.error(l("codegen.msg.reviewFailed")+": "+h.value.reason):h.value.ok?(A.success(l("codegen.msg.reviewSuccess",{n:h.value.issuesFound,sec:h.value.securityIssues})),await K()):A.error(l("codegen.msg.reviewFailed")+": "+s.slice(0,120))}catch(e){A.error(l("codegen.msg.reviewFailed")+": "+(e?.message||e))}finally{T.value=!1}}async function Be(e){x.generationId=e.id,x.language=e.language||"",x.code=e.generatedCode||"",h.value=null,ee.value=!0}async function qe(){if(!y.projectName.trim()){A.warning(l("codegen.msg.projectEmpty"));return}if(y.optionsJson.trim())try{JSON.parse(y.optionsJson)}catch{A.warning(l("codegen.msg.optionsBadJson"));return}E.value=!0;try{const e=[`codegen scaffold -t ${y.template}`,`-n ${N(y.projectName.trim())}`];y.optionsJson.trim()&&e.push(`-o ${N(y.optionsJson.trim())}`),y.files>0&&e.push(`--files ${y.files}`),y.outputPath.trim()&&e.push(`--output ${N(y.outputPath.trim())}`),e.push("--json");const{output:s}=await r.execute(e.join(" "),1e4),b=Re(s);if(!b.ok){A.error(l("codegen.msg.scaffoldFailed")+": "+(b.reason||s.slice(0,120)));return}A.success(l("codegen.msg.scaffoldSuccess",{id:b.id?.slice(0,8)})),te.value=!1,$e(),await K()}catch(e){A.error(l("codegen.msg.scaffoldFailed")+": "+(e?.message||e))}finally{E.value=!1}}function He(e){F.value=e,re.value=!0}function Ve(e){$.value=e,ue.value=!0}function he(){m.prompt="",m.language="",m.framework="",m.code="",m.files=0,m.tokens=0}function $e(){y.template="react",y.projectName="",y.optionsJson="",y.files=0,y.outputPath=""}return vt(K),(e,s)=>{const b=g("a-button"),oe=g("a-menu-item"),Ke=g("a-menu"),We=g("a-dropdown"),Se=g("a-space"),G=g("a-statistic"),M=g("a-card"),O=g("a-col"),fe=g("a-row"),j=g("a-tag"),D=g("a-input"),pe=g("a-table"),ge=g("a-tab-pane"),Ce=g("a-radio-button"),Qe=g("a-radio-group"),Ye=g("a-tabs"),le=g("a-textarea"),I=g("a-form-item"),me=g("a-input-number"),ve=g("a-form"),W=g("a-modal"),Xe=g("a-divider"),Ze=g("a-empty"),et=g("a-alert"),tt=g("a-select-option"),at=g("a-select"),z=g("a-descriptions-item"),xe=g("a-descriptions"),ot=g("a-progress"),lt=g("a-list-item"),nt=g("a-list");return u(),c("div",null,[v("div",It,[v("div",null,[v("h2",zt,i(e.$t("codegen.title")),1),v("p",At,i(e.$t("codegen.subtitle")),1)]),t(Se,null,{default:a(()=>[t(b,{loading:S.value,onClick:K},{icon:a(()=>[t(_(ct))]),default:a(()=>[f(" "+i(e.$t("codegen.refresh")),1)]),_:1},8,["loading"]),t(b,{onClick:s[0]||(s[0]=o=>ee.value=!0)},{icon:a(()=>[t(_(ye))]),default:a(()=>[f(" "+i(e.$t("codegen.review")),1)]),_:1}),t(We,null,{overlay:a(()=>[t(Ke,null,{default:a(()=>[t(oe,{key:"generate",onClick:s[1]||(s[1]=o=>Z.value=!0)},{default:a(()=>[f(i(e.$t("codegen.actions.generate")),1)]),_:1}),t(oe,{key:"scaffold",onClick:s[2]||(s[2]=o=>te.value=!0)},{default:a(()=>[f(i(e.$t("codegen.actions.scaffold")),1)]),_:1})]),_:1})]),default:a(()=>[t(b,{type:"primary"},{icon:a(()=>[t(_(ft))]),default:a(()=>[f(" "+i(e.$t("codegen.newDropdown")),1)]),_:1})]),_:1})]),_:1})]),t(fe,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:a(()=>[t(O,{xs:12,sm:8,lg:5},{default:a(()=>[t(M,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[t(G,{title:e.$t("codegen.stats.generations"),value:U.value.generations.total,"value-style":{color:"#1677ff",fontSize:"20px"}},{prefix:a(()=>[t(_(ze))]),_:1},8,["title","value"])]),_:1})]),_:1}),t(O,{xs:12,sm:8,lg:5},{default:a(()=>[t(M,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[t(G,{title:e.$t("codegen.stats.reviews"),value:U.value.reviews.total,"value-style":{color:"#13c2c2",fontSize:"20px"}},{prefix:a(()=>[t(_(pt))]),_:1},8,["title","value"])]),_:1})]),_:1}),t(O,{xs:12,sm:8,lg:5},{default:a(()=>[t(M,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[t(G,{title:e.$t("codegen.stats.securityIssues"),value:U.value.reviews.totalSecurityIssues,"value-style":{color:U.value.reviews.totalSecurityIssues>0?"#ff4d4f":"#52c41a",fontSize:"20px"}},{prefix:a(()=>[t(_(Ae))]),_:1},8,["title","value","value-style"])]),_:1})]),_:1}),t(O,{xs:12,sm:8,lg:5},{default:a(()=>[t(M,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[t(G,{title:e.$t("codegen.stats.scaffolds"),value:U.value.scaffolds.total,"value-style":{color:"#722ed1",fontSize:"20px"}},{prefix:a(()=>[t(_(Fe))]),_:1},8,["title","value"])]),_:1})]),_:1}),t(O,{xs:24,sm:8,lg:4},{default:a(()=>[t(M,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[t(G,{title:e.$t("codegen.stats.languages"),value:U.value.generations.uniqueLanguages,"value-style":{color:"#faad14",fontSize:"20px"}},{prefix:a(()=>[t(_(gt))]),_:1},8,["title","value"])]),_:1})]),_:1})]),_:1}),t(M,{title:e.$t("codegen.templatesCard"),size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"20px"},"body-style":{padding:"12px 16px"}},{default:a(()=>[t(fe,{gutter:[12,12]},{default:a(()=>[(u(!0),c(P,null,Q(_(ne),o=>(u(),k(O,{key:o,xs:12,sm:8,lg:4},{default:a(()=>[v("div",{class:"tmpl-pill",style:je({borderLeftColor:Ge(o)})},[t(j,{color:we(o),style:{"font-family":"monospace"}},{default:a(()=>[f(i(o),1)]),_:2},1032,["color"]),v("span",Ft,i(U.value.scaffolds.byTemplate[o]||0),1)],4)]),_:2},1024))),128))]),_:1})]),_:1},8,["title"]),t(Ye,{activeKey:ke.value,"onUpdate:activeKey":s[6]||(s[6]=o=>ke.value=o),class:"codegen-tabs"},{default:a(()=>[t(ge,{key:"generations",tab:e.$t("codegen.tabs.generations")},{default:a(()=>[v("div",jt,[t(D,{value:q.value,"onUpdate:value":s[3]||(s[3]=o=>q.value=o),placeholder:e.$t("codegen.filter.languagePlaceholder"),"allow-clear":"",size:"small",style:{"max-width":"180px"}},null,8,["value","placeholder"]),t(D,{value:H.value,"onUpdate:value":s[4]||(s[4]=o=>H.value=o),placeholder:e.$t("codegen.filter.frameworkPlaceholder"),"allow-clear":"",size:"small",style:{"max-width":"180px"}},null,8,["value","placeholder"])]),t(pe,{columns:Le.value,"data-source":Oe.value,pagination:{pageSize:20,showTotal:o=>e.$t("codegen.table.totalSuffix",{n:o})},size:"small",loading:S.value,style:{background:"var(--bg-card)"}},{bodyCell:a(({column:o,record:d})=>[o.key==="prompt"?(u(),c(P,{key:0},[v("span",Pt,i(ae(d.prompt,60)),1),v("div",Rt,i(d.id.slice(0,16)),1)],64)):p("",!0),o.key==="language"?(u(),c(P,{key:1},[d.language?(u(),k(j,{key:0,color:"blue",style:{"font-family":"monospace"}},{default:a(()=>[f(i(d.language),1)]),_:2},1024)):(u(),c("span",Lt,"—"))],64)):p("",!0),o.key==="framework"?(u(),c(P,{key:2},[d.framework?(u(),k(j,{key:0,color:"purple",style:{"font-family":"monospace"}},{default:a(()=>[f(i(d.framework),1)]),_:2},1024)):(u(),c("span",Nt,"—"))],64)):p("",!0),o.key==="fileCount"?(u(),c("span",Tt,i(d.fileCount),1)):p("",!0),o.key==="tokenCount"?(u(),c("span",Ot,i(d.tokenCount),1)):p("",!0),o.key==="createdAt"?(u(),c("span",Ut,i(_(X)(d.createdAt)),1)):p("",!0),o.key==="action"?(u(),c(P,{key:6},[t(b,{size:"small",type:"link",onClick:Ie=>He(d)},{default:a(()=>[f(i(e.$t("codegen.table.actionDetails")),1)]),_:1},8,["onClick"]),d.generatedCode?(u(),k(b,{key:0,size:"small",type:"link",onClick:Ie=>Be(d)},{default:a(()=>[f(i(e.$t("codegen.table.actionReview")),1)]),_:1},8,["onClick"])):p("",!0)],64)):p("",!0)]),emptyText:a(()=>[v("div",Gt,[t(_(ze),{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),f(" "+i(q.value||H.value?e.$t("codegen.table.emptyGenerationsFiltered"):e.$t("codegen.table.emptyGenerations")),1)])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"]),t(ge,{key:"reviews",tab:e.$t("codegen.tabs.reviews")},{default:a(()=>[t(pe,{columns:Ne.value,"data-source":be.value,pagination:{pageSize:20,showTotal:o=>e.$t("codegen.table.totalSuffix",{n:o})},size:"small",loading:S.value,style:{background:"var(--bg-card)"}},{bodyCell:a(({column:o,record:d})=>[o.key==="codeHash"?(u(),c(P,{key:0},[v("span",Dt,i(d.codeHash),1),v("div",Et,i(d.id.slice(0,16)),1)],64)):p("",!0),o.key==="language"?(u(),c(P,{key:1},[d.language?(u(),k(j,{key:0,color:"blue",style:{"font-family":"monospace"}},{default:a(()=>[f(i(d.language),1)]),_:2},1024)):(u(),c("span",Jt,"—"))],64)):p("",!0),o.key==="issuesFound"?(u(),k(j,{key:2,color:d.issuesFound===0?"green":d.issuesFound>5?"red":"orange"},{default:a(()=>[f(i(e.$t("codegen.table.issuesSuffix",{n:d.issuesFound})),1)]),_:2},1032,["color"])):p("",!0),o.key==="securityIssues"?(u(),c(P,{key:3},[d.securityIssues>0?(u(),k(j,{key:0,color:"red"},{default:a(()=>[t(_(Ae)),f(" "+i(d.securityIssues),1)]),_:2},1024)):(u(),k(j,{key:1,color:"green"},{default:a(()=>[t(_(mt)),s[26]||(s[26]=f(" 0 ",-1))]),_:1}))],64)):p("",!0),o.key==="severityBreak"?(u(),c("span",Mt,[d.severitySummary.critical>0?(u(),c("span",Bt,"C:"+i(d.severitySummary.critical),1)):p("",!0),d.severitySummary.high>0?(u(),c("span",qt,"H:"+i(d.severitySummary.high),1)):p("",!0),d.severitySummary.medium>0?(u(),c("span",Ht,"M:"+i(d.severitySummary.medium),1)):p("",!0),d.severitySummary.low>0?(u(),c("span",Vt,"L:"+i(d.severitySummary.low),1)):p("",!0),d.severitySummary.info>0?(u(),c("span",Kt,"I:"+i(d.severitySummary.info),1)):p("",!0),d.issuesFound===0?(u(),c("span",Wt,i(e.$t("codegen.table.noIssues")),1)):p("",!0)])):p("",!0),o.key==="reviewedAt"?(u(),c("span",Qt,i(_(X)(d.reviewedAt)),1)):p("",!0),o.key==="action"?(u(),k(b,{key:6,size:"small",type:"link",onClick:Ie=>Ve(d)},{default:a(()=>[f(i(e.$t("codegen.table.actionDetails")),1)]),_:1},8,["onClick"])):p("",!0)]),emptyText:a(()=>[v("div",Yt,[t(_(ye),{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),f(" "+i(e.$t("codegen.table.emptyReviews")),1)])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"]),t(ge,{key:"scaffolds",tab:e.$t("codegen.tabs.scaffolds")},{default:a(()=>[v("div",Xt,[t(Qe,{value:V.value,"onUpdate:value":s[5]||(s[5]=o=>V.value=o),size:"small","button-style":"solid"},{default:a(()=>[t(Ce,{value:""},{default:a(()=>[f(i(e.$t("codegen.filter.allTemplates")),1)]),_:1}),(u(!0),c(P,null,Q(_(ne),o=>(u(),k(Ce,{key:o,value:o},{default:a(()=>[f(i(o),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),t(pe,{columns:Te.value,"data-source":Ue.value,pagination:{pageSize:20,showTotal:o=>e.$t("codegen.table.totalSuffix",{n:o})},size:"small",loading:S.value,style:{background:"var(--bg-card)"}},{bodyCell:a(({column:o,record:d})=>[o.key==="projectName"?(u(),c(P,{key:0},[v("span",Zt,i(d.projectName||e.$t("codegen.table.unnamed")),1),v("div",ea,i(d.id.slice(0,16)),1)],64)):p("",!0),o.key==="template"?(u(),k(j,{key:1,color:we(d.template),style:{"font-family":"monospace"}},{default:a(()=>[f(i(d.template),1)]),_:2},1032,["color"])):p("",!0),o.key==="filesGenerated"?(u(),c("span",ta,i(d.filesGenerated),1)):p("",!0),o.key==="outputPath"?(u(),c(P,{key:3},[d.outputPath?(u(),c("span",aa,i(ae(d.outputPath,40)),1)):(u(),c("span",oa,"—"))],64)):p("",!0),o.key==="createdAt"?(u(),c("span",la,i(_(X)(d.createdAt)),1)):p("",!0)]),emptyText:a(()=>[v("div",na,[t(_(Fe),{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),f(" "+i(V.value?e.$t("codegen.table.emptyScaffoldsFiltered"):e.$t("codegen.table.emptyScaffolds")),1)])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"])]),_:1},8,["activeKey"]),t(W,{open:Z.value,"onUpdate:open":s[13]||(s[13]=o=>Z.value=o),title:e.$t("codegen.generate_modal.title"),"confirm-loading":L.value,width:560,"ok-text":e.$t("codegen.generate_modal.ok"),"cancel-text":e.$t("codegen.generate_modal.cancel"),onOk:Je,onCancel:he},{default:a(()=>[t(ve,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:a(()=>[t(I,{label:e.$t("codegen.generate_modal.promptLabel"),required:""},{default:a(()=>[t(le,{value:m.prompt,"onUpdate:value":s[7]||(s[7]=o=>m.prompt=o),placeholder:e.$t("codegen.generate_modal.promptPlaceholder"),"auto-size":{minRows:2,maxRows:5}},null,8,["value","placeholder"])]),_:1},8,["label"]),t(I,{label:e.$t("codegen.generate_modal.languageLabel")},{default:a(()=>[t(D,{value:m.language,"onUpdate:value":s[8]||(s[8]=o=>m.language=o),placeholder:e.$t("codegen.generate_modal.languagePlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),t(I,{label:e.$t("codegen.generate_modal.frameworkLabel")},{default:a(()=>[t(D,{value:m.framework,"onUpdate:value":s[9]||(s[9]=o=>m.framework=o),placeholder:e.$t("codegen.generate_modal.frameworkPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),t(I,{label:e.$t("codegen.generate_modal.codeLabel")},{default:a(()=>[t(le,{value:m.code,"onUpdate:value":s[10]||(s[10]=o=>m.code=o),placeholder:e.$t("codegen.generate_modal.codePlaceholder"),"auto-size":{minRows:3,maxRows:10}},null,8,["value","placeholder"])]),_:1},8,["label"]),t(I,{label:e.$t("codegen.generate_modal.filesLabel")},{default:a(()=>[t(me,{value:m.files,"onUpdate:value":s[11]||(s[11]=o=>m.files=o),min:0,style:{width:"120px"}},null,8,["value"])]),_:1},8,["label"]),t(I,{label:e.$t("codegen.generate_modal.tokensLabel")},{default:a(()=>[t(me,{value:m.tokens,"onUpdate:value":s[12]||(s[12]=o=>m.tokens=o),min:0,style:{width:"160px"}},null,8,["value"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),t(W,{open:ee.value,"onUpdate:open":s[17]||(s[17]=o=>ee.value=o),title:e.$t("codegen.review_modal.title"),width:720,footer:null},{default:a(()=>[v("div",sa,[t(ve,{"label-col":{span:5},"wrapper-col":{span:19}},{default:a(()=>[t(I,{label:e.$t("codegen.review_modal.languageLabel")},{default:a(()=>[t(D,{value:x.language,"onUpdate:value":s[14]||(s[14]=o=>x.language=o),placeholder:e.$t("codegen.review_modal.languagePlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),t(I,{label:e.$t("codegen.review_modal.generationIdLabel")},{default:a(()=>[t(D,{value:x.generationId,"onUpdate:value":s[15]||(s[15]=o=>x.generationId=o),placeholder:e.$t("codegen.review_modal.generationIdPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),t(I,{label:e.$t("codegen.review_modal.codeLabel"),required:""},{default:a(()=>[t(le,{value:x.code,"onUpdate:value":s[16]||(s[16]=o=>x.code=o),placeholder:e.$t("codegen.review_modal.codePlaceholder"),"auto-size":{minRows:6,maxRows:16}},null,8,["value","placeholder"])]),_:1},8,["label"]),t(I,{"wrapper-col":{offset:5,span:19}},{default:a(()=>[t(b,{type:"primary",loading:T.value,onClick:Me},{icon:a(()=>[t(_(ye))]),default:a(()=>[f(" "+i(e.$t("codegen.review_modal.submit")),1)]),_:1},8,["loading"])]),_:1})]),_:1}),t(Xe),h.value?(u(),c("div",ia,[t(fe,{gutter:12,style:{"margin-bottom":"12px"}},{default:a(()=>[t(O,{span:8},{default:a(()=>[t(G,{title:e.$t("codegen.review_modal.issuesStat"),value:h.value.issuesFound,"value-style":{color:h.value.issuesFound>0?"#fa8c16":"#52c41a",fontSize:"18px"}},null,8,["title","value","value-style"])]),_:1}),t(O,{span:8},{default:a(()=>[t(G,{title:e.$t("codegen.review_modal.securityStat"),value:h.value.securityIssues,"value-style":{color:h.value.securityIssues>0?"#ff4d4f":"#52c41a",fontSize:"18px"}},null,8,["title","value","value-style"])]),_:1}),t(O,{span:8},{default:a(()=>[t(G,{title:e.$t("codegen.review_modal.reviewIdStat"),value:h.value.reviewId?h.value.reviewId.slice(0,8):"—","value-style":{fontSize:"14px",fontFamily:"monospace"}},null,8,["title","value"])]),_:1})]),_:1}),v("h5",ra,i(e.$t("codegen.review_modal.bySeverity")),1),t(Se,null,{default:a(()=>[(u(!0),c(P,null,Q(_(se),o=>(u(),k(j,{key:o,color:ce(o)},{default:a(()=>[f(i(de(o))+": "+i(h.value.severitySummary[o]||0),1)]),_:2},1032,["color"]))),128))]),_:1}),h.value.reason?(u(),k(et,{key:0,type:"warning","show-icon":"",message:e.$t("codegen.review_modal.failedReason",{reason:h.value.reason}),style:{"margin-top":"12px"}},null,8,["message"])):p("",!0)])):(u(),k(Ze,{key:0,description:e.$t("codegen.review_modal.notReviewed"),image:_(R)},null,8,["description","image"]))])]),_:1},8,["open","title"]),t(W,{open:te.value,"onUpdate:open":s[23]||(s[23]=o=>te.value=o),title:e.$t("codegen.scaffold_modal.title"),"confirm-loading":E.value,width:560,"ok-text":e.$t("codegen.scaffold_modal.ok"),"cancel-text":e.$t("codegen.scaffold_modal.cancel"),onOk:qe,onCancel:$e},{default:a(()=>[t(ve,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:a(()=>[t(I,{label:e.$t("codegen.scaffold_modal.templateLabel"),required:""},{default:a(()=>[t(at,{value:y.template,"onUpdate:value":s[18]||(s[18]=o=>y.template=o)},{default:a(()=>[(u(!0),c(P,null,Q(_(ne),o=>(u(),k(tt,{key:o,value:o},{default:a(()=>[f(i(o),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),_:1},8,["label"]),t(I,{label:e.$t("codegen.scaffold_modal.projectLabel"),required:""},{default:a(()=>[t(D,{value:y.projectName,"onUpdate:value":s[19]||(s[19]=o=>y.projectName=o),placeholder:e.$t("codegen.scaffold_modal.projectPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),t(I,{label:e.$t("codegen.scaffold_modal.optionsLabel")},{default:a(()=>[t(le,{value:y.optionsJson,"onUpdate:value":s[20]||(s[20]=o=>y.optionsJson=o),placeholder:e.$t("codegen.scaffold_modal.optionsPlaceholder"),"auto-size":{minRows:2,maxRows:4}},null,8,["value","placeholder"])]),_:1},8,["label"]),t(I,{label:e.$t("codegen.scaffold_modal.filesLabel")},{default:a(()=>[t(me,{value:y.files,"onUpdate:value":s[21]||(s[21]=o=>y.files=o),min:0,style:{width:"120px"}},null,8,["value"])]),_:1},8,["label"]),t(I,{label:e.$t("codegen.scaffold_modal.outputLabel")},{default:a(()=>[t(D,{value:y.outputPath,"onUpdate:value":s[22]||(s[22]=o=>y.outputPath=o),placeholder:e.$t("codegen.scaffold_modal.outputPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),t(W,{open:re.value,"onUpdate:open":s[24]||(s[24]=o=>re.value=o),title:e.$t("codegen.gen_details.title",{id:F.value?.id?.slice(0,12)||""}),width:780,footer:null},{default:a(()=>[F.value?(u(),c("div",ua,[t(xe,{column:2,size:"small",bordered:""},{default:a(()=>[t(z,{label:e.$t("codegen.gen_details.id"),span:2},{default:a(()=>[v("span",da,i(F.value.id),1)]),_:1},8,["label"]),t(z,{label:e.$t("codegen.gen_details.language")},{default:a(()=>[F.value.language?(u(),k(j,{key:0,color:"blue"},{default:a(()=>[f(i(F.value.language),1)]),_:1})):(u(),c("span",ca,"—"))]),_:1},8,["label"]),t(z,{label:e.$t("codegen.gen_details.framework")},{default:a(()=>[F.value.framework?(u(),k(j,{key:0,color:"purple"},{default:a(()=>[f(i(F.value.framework),1)]),_:1})):(u(),c("span",fa,"—"))]),_:1},8,["label"]),t(z,{label:e.$t("codegen.gen_details.fileCount")},{default:a(()=>[f(i(F.value.fileCount),1)]),_:1},8,["label"]),t(z,{label:e.$t("codegen.gen_details.tokenCount")},{default:a(()=>[f(i(F.value.tokenCount),1)]),_:1},8,["label"]),t(z,{label:e.$t("codegen.gen_details.createdAt"),span:2},{default:a(()=>[f(i(_(X)(F.value.createdAt)),1)]),_:1},8,["label"]),t(z,{label:e.$t("codegen.gen_details.prompt"),span:2},{default:a(()=>[v("pre",pa,i(F.value.prompt),1)]),_:1},8,["label"]),F.value.generatedCode?(u(),k(z,{key:0,label:e.$t("codegen.gen_details.code"),span:2},{default:a(()=>[v("pre",ga,i(ae(F.value.generatedCode,2e3)),1)]),_:1},8,["label"])):p("",!0)]),_:1})])):p("",!0)]),_:1},8,["open","title"]),t(W,{open:ue.value,"onUpdate:open":s[25]||(s[25]=o=>ue.value=o),title:e.$t("codegen.review_details.title",{id:$.value?.id?.slice(0,12)||""}),width:720,footer:null},{default:a(()=>[$.value?(u(),c("div",ma,[t(xe,{column:2,size:"small",bordered:""},{default:a(()=>[t(z,{label:e.$t("codegen.review_details.id"),span:2},{default:a(()=>[v("span",va,i($.value.id),1)]),_:1},8,["label"]),t(z,{label:e.$t("codegen.review_details.codeHash"),span:2},{default:a(()=>[v("span",ya,i($.value.codeHash),1)]),_:1},8,["label"]),$.value.generationId?(u(),k(z,{key:0,label:e.$t("codegen.review_details.generationId"),span:2},{default:a(()=>[v("span",_a,i($.value.generationId),1)]),_:1},8,["label"])):p("",!0),t(z,{label:e.$t("codegen.review_details.language")},{default:a(()=>[$.value.language?(u(),k(j,{key:0,color:"blue"},{default:a(()=>[f(i($.value.language),1)]),_:1})):(u(),c("span",ba,"—"))]),_:1},8,["label"]),t(z,{label:e.$t("codegen.review_details.reviewedAt")},{default:a(()=>[f(i(_(X)($.value.reviewedAt)),1)]),_:1},8,["label"]),t(z,{label:e.$t("codegen.review_details.issuesFound")},{default:a(()=>[f(i($.value.issuesFound),1)]),_:1},8,["label"]),t(z,{label:e.$t("codegen.review_details.securityIssues")},{default:a(()=>[v("span",{style:je({color:$.value.securityIssues>0?"#ff4d4f":"#52c41a"})},i($.value.securityIssues),5)]),_:1},8,["label"])]),_:1}),v("h4",ka,i(e.$t("codegen.review_details.bySeverity")),1),(u(!0),c(P,null,Q(_(se),o=>(u(),c("div",{key:o,class:"bd-row"},[t(j,{color:ce(o),style:{"min-width":"70px","text-align":"center"}},{default:a(()=>[f(i(de(o)),1)]),_:2},1032,["color"]),t(ot,{percent:Ee($.value.severitySummary[o]||0,$.value.issuesFound),"stroke-color":De(o),format:()=>`${$.value.severitySummary[o]||0}`,size:"small",style:{flex:"1","margin-left":"12px"}},null,8,["percent","stroke-color","format"])]))),128)),$.value.issuesDetail.length?(u(),c("h4",wa,i(e.$t("codegen.review_details.issues")),1)):p("",!0),$.value.issuesDetail.length?(u(),k(nt,{key:1,size:"small","data-source":$.value.issuesDetail,pagination:{pageSize:8}},{renderItem:a(({item:o})=>[t(lt,null,{default:a(()=>[t(j,{color:ce(o.severity),style:{"min-width":"60px","text-align":"center"}},{default:a(()=>[f(i(de(o.severity)),1)]),_:2},1032,["color"]),v("span",ha,i(o.rule),1),v("code",$a,i(ae(o.match,60)),1)]),_:2},1024)]),_:1},8,["data-source"])):p("",!0)])):p("",!0)]),_:1},8,["open","title"])])}}},Fa=st(Sa,[["__scopeId","data-v-c77cb6a0"]]);export{Fa as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{_ as Ct,a as wt,c as d}from"./index-Cw4v7ezB.js";import{u as zt}from"./ws-D_5-FRIb.js";import{S as Ft,p as Ot,a as Rt,b as St,c as Tt}from"./community-parser-CO25nZFt.js";import{R as $t,aA as At,au as It,Z as Y,aB as tt,k as et,M as Ut,aC as Lt,aD as Nt}from"./icons-DvZE-RKs.js";import{r as g,o as Pt,M as y,R as v,P as i,u as o,c as a,N as n,K as p,L as r,O as f,F as S,_ as qt,Q as T,$ as Bt,S as k,f as L,a as at}from"./vendor-B6ToihkA.js";const jt={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},Mt={class:"page-title"},Dt={class:"page-sub"},Kt={key:0,style:{"text-align":"center",padding:"60px"}},Vt={key:1,style:{"text-align":"center",padding:"60px",color:"var(--text-muted)"}},Et={key:2,class:"post-feed"},Ht={class:"post-head"},Qt={class:"post-meta"},Wt={class:"post-author"},Zt={class:"post-time"},Gt={class:"post-body"},Jt={style:{color:"var(--text-primary)","font-weight":"500"}},Xt={key:0,style:{color:"var(--text-secondary)","font-size":"11px","font-family":"monospace"}},Yt={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},te={key:0,style:{color:"var(--text-primary)","font-weight":"500"}},ee={key:0,style:{color:"var(--text-secondary)","font-family":"monospace","font-size":"11px"}},ae={key:1,style:{color:"var(--text-muted)"}},oe={key:0,style:{color:"var(--text-secondary)","font-size":"12px"}},ne={key:1,style:{color:"var(--text-muted)"}},se={key:3,style:{color:"var(--text-secondary)","font-size":"11px"}},le={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},ce={__name:"Community",setup(ie){const{t,locale:ot}=wt(),x=zt(),F=g(!1),N=g(!1),P=g(!1),q=g(""),z=g({...Ft}),B=g([]),j=g([]),$=g([]),M=g("posts"),A=g(!1),I=g(!1),h=at({author:"",content:""}),u=at({name:"",did:"",email:"",notes:""}),nt=L(()=>[{title:t("community.contactColumns.name"),key:"name",dataIndex:"name",width:"160px"},{title:t("community.contactColumns.did"),key:"did",dataIndex:"did"},{title:t("community.contactColumns.email"),key:"email",dataIndex:"email",width:"200px"},{title:t("community.contactColumns.createdAt"),key:"createdAt",dataIndex:"createdAt",width:"160px"},{title:t("community.contactColumns.action"),key:"action",width:"180px"}]),st=L(()=>[{title:t("community.friendColumns.contact"),key:"contact"},{title:t("community.friendColumns.status"),key:"status",width:"120px"},{title:t("community.friendColumns.createdAt"),key:"createdAt",dataIndex:"createdAt",width:"160px"},{title:t("community.friendColumns.action"),key:"action",width:"100px"}]),lt=L(()=>j.value.map(s=>{const e=B.value.find(c=>c.id===s.contactId);return{...s,contactName:e?e.name:""}})),ct=L(()=>new Set(j.value.map(s=>s.contactId)));function it(s){return ct.value.has(s)}function rt(s){const e=["#1677ff","#52c41a","#722ed1","#faad14","#ff4d4f","#13c2c2","#eb2f96"];let c=0;for(let b=0;b<s.length;b++)c=c*31+s.charCodeAt(b)>>>0;return e[c%e.length]}function ut(s){return s?s.length>28?s.slice(0,16)+"..."+s.slice(-8):s:""}function K(s){if(!s)return"—";if(typeof s!="string")return String(s);const e=new Date(s);if(isNaN(e.getTime()))return s;const c=ot.value==="zh-CN"?"zh-CN":"en-US";return e.toLocaleString(c,{hour12:!1})}function mt(s){return{accepted:"green",pending:"orange",blocked:"red"}[s]||"default"}function dt(s){const e=`community.status.${s}`,c=t(e);return c===e?s:c}async function C(){F.value=!0;try{const[s,e,c,b]=await Promise.all([x.execute("social stats --json",1e4).catch(()=>({output:""})),x.execute("social contact list --json",1e4).catch(()=>({output:""})),x.execute("social friend list --json",1e4).catch(()=>({output:""})),x.execute("social post list --json",1e4).catch(()=>({output:""}))]);z.value=Ot(s.output),B.value=Rt(e.output),j.value=St(c.output),$.value=Tt(b.output).sort((_,w)=>(w.createdAt||"").localeCompare(_.createdAt||""))}catch(s){d.error(t("community.messages.loadFailed",{err:s?.message||s}))}finally{F.value=!1}}async function pt(){const s=h.content.trim();if(!s){d.warning(t("community.messages.contentRequired"));return}N.value=!0;try{const e=s.replace(/"/g,'\\"'),c=h.author.trim(),b=c?`social post publish "${e}" --author "${c.replace(/"/g,'\\"')}"`:`social post publish "${e}"`,{output:_}=await x.execute(b,15e3);if(/error|失败/i.test(_)&&!/"id"/.test(_)){d.error(t("community.messages.publishFailed",{err:_.slice(0,120)}));return}d.success(t("community.messages.publishOk")),A.value=!1,V(),await C()}catch(e){d.error(t("community.messages.publishFailed",{err:e?.message||e}))}finally{N.value=!1}}async function yt(){const s=u.name.trim();if(!s){d.warning(t("community.messages.nameRequired"));return}P.value=!0;try{const e=[`social contact add "${s.replace(/"/g,'\\"')}"`];u.did.trim()&&e.push(`--did "${u.did.trim().replace(/"/g,'\\"')}"`),u.email.trim()&&e.push(`--email "${u.email.trim().replace(/"/g,'\\"')}"`),u.notes.trim()&&e.push(`--notes "${u.notes.trim().replace(/"/g,'\\"')}"`);const{output:c}=await x.execute(e.join(" "),15e3);if(/error|失败/i.test(c)&&!/"id"/.test(c)){d.error(t("community.messages.addFailed",{err:c.slice(0,120)}));return}d.success(t("community.messages.addOk")),I.value=!1,E(),await C()}catch(e){d.error(t("community.messages.addFailed",{err:e?.message||e}))}finally{P.value=!1}}async function ft(s){try{const{output:e}=await x.execute(`social contact delete ${s.id}`,1e4);if(/error|失败/i.test(e)){d.error(t("community.messages.deleteFailed",{err:e.slice(0,120)}));return}d.success(t("community.messages.deleteOk")),await C()}catch(e){d.error(t("community.messages.deleteFailed",{err:e?.message||e}))}}async function vt(s){q.value=s.id;try{const{output:e}=await x.execute(`social friend add ${s.id}`,1e4);if(/error|失败/i.test(e)&&!/"id"/.test(e)){d.error(t("community.messages.friendRequestFailed",{err:e.slice(0,120)}));return}d.success(t("community.messages.friendRequestOk")),await C(),M.value="friends"}catch(e){d.error(t("community.messages.friendRequestFailed",{err:e?.message||e}))}finally{q.value=""}}async function _t(s){try{const{output:e}=await x.execute(`social friend remove ${s.contactId}`,1e4);if(/error|失败/i.test(e)){d.error(t("community.messages.removeFailed",{err:e.slice(0,120)}));return}d.success(t("community.messages.removeOk")),await C()}catch(e){d.error(t("community.messages.removeFailed",{err:e?.message||e}))}}async function gt(s){try{await x.execute(`social post like ${s.id}`,1e4),s.likes++,C()}catch(e){d.error(t("community.messages.likeFailed",{err:e?.message||e}))}}function V(){h.author="",h.content=""}function E(){u.name="",u.did="",u.email="",u.notes=""}return Pt(C),(s,e)=>{const c=p("a-button"),b=p("a-space"),_=p("a-statistic"),w=p("a-card"),R=p("a-col"),xt=p("a-row"),bt=p("a-spin"),kt=p("a-avatar"),D=p("a-tab-pane"),H=p("a-tag"),Q=p("a-popconfirm"),W=p("a-table"),ht=p("a-tabs"),U=p("a-input"),O=p("a-form-item"),Z=p("a-textarea"),G=p("a-form"),J=p("a-modal");return r(),y("div",null,[v("div",jt,[v("div",null,[v("h2",Mt,i(o(t)("community.title")),1),v("p",Dt,i(o(t)("community.subtitle")),1)]),a(b,null,{default:n(()=>[a(c,{loading:F.value,onClick:C},{icon:n(()=>[a(o($t))]),default:n(()=>[f(" "+i(o(t)("community.refresh")),1)]),_:1},8,["loading"]),a(c,{type:"primary",onClick:e[0]||(e[0]=l=>A.value=!0)},{icon:n(()=>[a(o(At))]),default:n(()=>[f(" "+i(o(t)("community.publishButton")),1)]),_:1}),a(c,{onClick:e[1]||(e[1]=l=>I.value=!0)},{icon:n(()=>[a(o(It))]),default:n(()=>[f(" "+i(o(t)("community.addContactButton")),1)]),_:1})]),_:1})]),a(xt,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:n(()=>[a(R,{xs:12,sm:8,lg:5},{default:n(()=>[a(w,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:n(()=>[a(_,{title:o(t)("community.stats.contacts"),value:z.value.contacts,"value-style":{color:"#1677ff",fontSize:"20px"}},{prefix:n(()=>[a(o(Y))]),_:1},8,["title","value"])]),_:1})]),_:1}),a(R,{xs:12,sm:8,lg:5},{default:n(()=>[a(w,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:n(()=>[a(_,{title:o(t)("community.stats.friends"),value:z.value.friends,"value-style":{color:"#52c41a",fontSize:"20px"}},{prefix:n(()=>[a(o(tt))]),_:1},8,["title","value"])]),_:1})]),_:1}),a(R,{xs:12,sm:8,lg:5},{default:n(()=>[a(w,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:n(()=>[a(_,{title:o(t)("community.stats.posts"),value:z.value.posts,"value-style":{color:"#722ed1",fontSize:"20px"}},{prefix:n(()=>[a(o(et))]),_:1},8,["title","value"])]),_:1})]),_:1}),a(R,{xs:12,sm:8,lg:5},{default:n(()=>[a(w,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:n(()=>[a(_,{title:o(t)("community.stats.messages"),value:z.value.messages,"value-style":{color:"#faad14",fontSize:"20px"}},{prefix:n(()=>[a(o(Ut))]),_:1},8,["title","value"])]),_:1})]),_:1}),a(R,{xs:24,sm:8,lg:4},{default:n(()=>[a(w,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:n(()=>[a(_,{title:o(t)("community.stats.pendingRequests"),value:z.value.pendingRequests,"value-style":{color:z.value.pendingRequests>0?"#ff4d4f":"#888",fontSize:"20px"}},{prefix:n(()=>[a(o(Lt))]),_:1},8,["title","value","value-style"])]),_:1})]),_:1})]),_:1}),a(ht,{activeKey:M.value,"onUpdate:activeKey":e[2]||(e[2]=l=>M.value=l),class:"community-tabs"},{default:n(()=>[a(D,{key:"posts",tab:o(t)("community.tabs.posts")},{default:n(()=>[F.value&&!$.value.length?(r(),y("div",Kt,[a(bt,{size:"large"})])):$.value.length?(r(),y("div",Et,[(r(!0),y(S,null,qt($.value,l=>(r(),T(w,{key:l.key,class:"post-card","body-style":{padding:"16px"}},{default:n(()=>[v("div",Ht,[a(kt,{style:Bt({backgroundColor:rt(l.author)})},{default:n(()=>[f(i(l.author.slice(0,1).toUpperCase()),1)]),_:2},1032,["style"]),v("div",Qt,[v("div",Wt,i(l.author),1),v("div",Zt,i(K(l.createdAt)),1)]),a(c,{size:"small",type:"text",onClick:m=>gt(l)},{icon:n(()=>[a(o(Nt))]),default:n(()=>[f(" "+i(l.likes),1)]),_:2},1032,["onClick"])]),v("div",Gt,i(l.content),1)]),_:2},1024))),128))])):(r(),y("div",Vt,[a(o(et),{style:{"font-size":"40px","margin-bottom":"12px",display:"block"}}),f(" "+i(o(t)("community.posts.emptyText")),1)]))]),_:1},8,["tab"]),a(D,{key:"friends",tab:o(t)("community.tabs.friends")},{default:n(()=>[a(W,{columns:st.value,"data-source":lt.value,pagination:{pageSize:20,showTotal:l=>o(t)("community.totals.rows",{count:l})},size:"small",loading:F.value,style:{background:"var(--bg-card)"}},{bodyCell:n(({column:l,record:m})=>[l.key==="contact"?(r(),y(S,{key:0},[v("span",Jt,i(m.contactName||m.contactId),1),m.contactName?(r(),y("div",Xt,i(m.contactId),1)):k("",!0)],64)):k("",!0),l.key==="status"?(r(),T(H,{key:1,color:mt(m.status)},{default:n(()=>[f(i(dt(m.status)),1)]),_:2},1032,["color"])):k("",!0),l.key==="action"?(r(),T(Q,{key:2,title:o(t)("community.friends.removeConfirm"),"ok-text":o(t)("community.friends.removeOk"),"cancel-text":o(t)("common.cancel"),onConfirm:X=>_t(m)},{default:n(()=>[a(c,{size:"small",type:"link",danger:""},{default:n(()=>[f(i(o(t)("community.friends.remove")),1)]),_:1})]),_:1},8,["title","ok-text","cancel-text","onConfirm"])):k("",!0)]),emptyText:n(()=>[v("div",Yt,[a(o(tt),{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),f(" "+i(o(t)("community.friends.emptyText")),1)])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"]),a(D,{key:"contacts",tab:o(t)("community.tabs.contacts")},{default:n(()=>[a(W,{columns:nt.value,"data-source":B.value,pagination:{pageSize:20,showTotal:l=>o(t)("community.totals.rows",{count:l})},size:"small",loading:F.value,style:{background:"var(--bg-card)"}},{bodyCell:n(({column:l,record:m})=>[l.key==="name"?(r(),y("span",te,i(m.name),1)):k("",!0),l.key==="did"?(r(),y(S,{key:1},[m.did?(r(),y("span",ee,i(ut(m.did)),1)):(r(),y("span",ae,"—"))],64)):k("",!0),l.key==="email"?(r(),y(S,{key:2},[m.email?(r(),y("span",oe,i(m.email),1)):(r(),y("span",ne,"—"))],64)):k("",!0),l.key==="createdAt"?(r(),y("span",se,i(K(m.createdAt)),1)):k("",!0),l.key==="action"?(r(),y(S,{key:4},[it(m.id)?(r(),T(H,{key:1,color:"green",style:{"font-size":"11px"}},{default:n(()=>[f(i(o(t)("community.contacts.alreadyFriend")),1)]),_:1})):(r(),T(c,{key:0,size:"small",type:"link",loading:q.value===m.id,onClick:X=>vt(m)},{default:n(()=>[f(i(o(t)("community.contacts.addFriend")),1)]),_:1},8,["loading","onClick"])),a(Q,{title:o(t)("community.contacts.deleteConfirm"),"ok-text":o(t)("community.contacts.deleteOk"),"cancel-text":o(t)("common.cancel"),onConfirm:X=>ft(m)},{default:n(()=>[a(c,{size:"small",type:"link",danger:"",style:{"margin-left":"4px"}},{default:n(()=>[f(i(o(t)("community.contacts.delete")),1)]),_:1})]),_:1},8,["title","ok-text","cancel-text","onConfirm"])],64)):k("",!0)]),emptyText:n(()=>[v("div",le,[a(o(Y),{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),f(" "+i(o(t)("community.contacts.emptyText")),1)])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"])]),_:1},8,["activeKey"]),a(J,{open:A.value,"onUpdate:open":e[5]||(e[5]=l=>A.value=l),title:o(t)("community.posts.publishTitle"),"confirm-loading":N.value,"ok-text":o(t)("community.posts.publishOk"),"cancel-text":o(t)("common.cancel"),onOk:pt,onCancel:V},{default:n(()=>[a(G,{"label-col":{span:4},"wrapper-col":{span:20},style:{"margin-top":"16px"}},{default:n(()=>[a(O,{label:o(t)("community.posts.authorLabel")},{default:n(()=>[a(U,{value:h.author,"onUpdate:value":e[3]||(e[3]=l=>h.author=l),placeholder:o(t)("community.posts.authorPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),a(O,{label:o(t)("community.posts.contentLabel"),required:""},{default:n(()=>[a(Z,{value:h.content,"onUpdate:value":e[4]||(e[4]=l=>h.content=l),placeholder:o(t)("community.posts.contentPlaceholder"),"auto-size":{minRows:4,maxRows:10},maxlength:2e3,"show-count":""},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),a(J,{open:I.value,"onUpdate:open":e[10]||(e[10]=l=>I.value=l),title:o(t)("community.contacts.addTitle"),"confirm-loading":P.value,"ok-text":o(t)("community.contacts.addOk"),"cancel-text":o(t)("common.cancel"),onOk:yt,onCancel:E},{default:n(()=>[a(G,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:n(()=>[a(O,{label:o(t)("community.contacts.nameLabel"),required:""},{default:n(()=>[a(U,{value:u.name,"onUpdate:value":e[6]||(e[6]=l=>u.name=l),placeholder:o(t)("community.contacts.namePlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),a(O,{label:o(t)("community.contacts.didLabel")},{default:n(()=>[a(U,{value:u.did,"onUpdate:value":e[7]||(e[7]=l=>u.did=l),placeholder:o(t)("community.contacts.didPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),a(O,{label:o(t)("community.contacts.emailLabel")},{default:n(()=>[a(U,{value:u.email,"onUpdate:value":e[8]||(e[8]=l=>u.email=l),placeholder:o(t)("community.contacts.emailPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),a(O,{label:o(t)("community.contacts.notesLabel")},{default:n(()=>[a(Z,{value:u.notes,"onUpdate:value":e[9]||(e[9]=l=>u.notes=l),"auto-size":{minRows:2,maxRows:4}},null,8,["value"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"])])}}},ye=Ct(ce,[["__scopeId","data-v-a3181cb0"]]);export{ye as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{j,f as x,o as D,G as k,d as I,D as S,P as v,L as y}from"./index-Cw4v7ezB.js";import{c as A}from"./createContext-C6HFlAQP.js";import{i as L,a as N,b as O,c as T,d as _,g as w,e as F,f as B}from"./_getTag-CWA3v-Ds.js";import{f as s,d as g,c as b}from"./vendor-B6ToihkA.js";const E=t=>{const{componentCls:o}=t;return{[o]:{display:"inline-flex","&-block":{display:"flex",width:"100%"},"&-vertical":{flexDirection:"column"}}}},G=t=>{const{componentCls:o}=t;return{[o]:{display:"inline-flex","&-rtl":{direction:"rtl"},"&-vertical":{flexDirection:"column"},"&-align":{flexDirection:"column","&-center":{alignItems:"center"},"&-start":{alignItems:"flex-start"},"&-end":{alignItems:"flex-end"},"&-baseline":{alignItems:"baseline"}},[`${o}-item`]:{"&:empty":{display:"none"}}}}},H=j("Space",t=>[G(t),E(t)]);var K="[object Map]",M="[object Set]",R=Object.prototype,V=R.hasOwnProperty;function h(t){if(t==null)return!0;if(L(t)&&(N(t)||typeof t=="string"||typeof t.splice=="function"||O(t)||T(t)||_(t)))return!t.length;var o=w(t);if(o==K||o==M)return!t.size;if(F(t))return!B(t).length;for(var e in t)if(V.call(t,e))return!1;return!0}const q=()=>({compactSize:String,compactDirection:v.oneOf(y("horizontal","vertical")).def("horizontal"),isFirstItem:S(),isLastItem:S()}),i=A(null),Z=(t,o)=>{const e=i.useInject(),a=s(()=>{if(!e||h(e))return"";const{compactDirection:r,isFirstItem:l,isLastItem:n}=e,c=r==="vertical"?"-vertical-":"-";return x({[`${t.value}-compact${c}item`]:!0,[`${t.value}-compact${c}first-item`]:l,[`${t.value}-compact${c}last-item`]:n,[`${t.value}-compact${c}item-rtl`]:o.value==="rtl"})});return{compactSize:s(()=>e?.compactSize),compactDirection:s(()=>e?.compactDirection),compactItemClassnames:a}},tt=g({name:"NoCompactStyle",setup(t,o){let{slots:e}=o;return i.useProvide(null),()=>{var a;return(a=e.default)===null||a===void 0?void 0:a.call(e)}}}),J=()=>({prefixCls:String,size:{type:String},direction:v.oneOf(y("horizontal","vertical")).def("horizontal"),align:v.oneOf(y("start","end","center","baseline")),block:{type:Boolean,default:void 0}}),Q=g({name:"CompactItem",props:q(),setup(t,o){let{slots:e}=o;return i.useProvide(t),()=>{var a;return(a=e.default)===null||a===void 0?void 0:a.call(e)}}}),et=g({name:"ASpaceCompact",inheritAttrs:!1,props:J(),setup(t,o){let{attrs:e,slots:a}=o;const{prefixCls:r,direction:l}=D("space-compact",t),n=i.useInject(),[c,$]=H(r),z=s(()=>x(r.value,$.value,{[`${r.value}-rtl`]:l.value==="rtl",[`${r.value}-block`]:t.block,[`${r.value}-vertical`]:t.direction==="vertical"}));return()=>{var m;const p=k(((m=a.default)===null||m===void 0?void 0:m.call(a))||[]);return p.length===0?null:c(b("div",I(I({},e),{},{class:[z.value,e.class]}),[p.map((u,d)=>{var f;const P=u&&u.key||`${r.value}-item-${d}`,C=!n||h(n);return b(Q,{key:P,compactSize:(f=t.size)!==null&&f!==void 0?f:"middle",compactDirection:t.direction,isFirstItem:d===0&&(C||n?.isFirstItem),isLastItem:d===p.length-1&&(C||n?.isLastItem)},{default:()=>[u]})})]))}}});export{et as C,tt as N,H as a,Z as u};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{_ as Ee,a as Ie,c as v}from"./index-Cw4v7ezB.js";import{u as qe}from"./ws-D_5-FRIb.js";import{s as Me}from"./community-parser-CO25nZFt.js";import{R as Pe,al as De,aR as Ke,aw as Ve,aQ as Je,w as de,a0 as We,aF as me,af as Qe,A as Ye}from"./icons-DvZE-RKs.js";import{o as He,M as p,R as b,P as r,c as a,N as l,Q as h,S as m,K as d,r as g,L as c,O as f,u as _,F,_ as M,$ as ye,f as N,a as le}from"./vendor-B6ToihkA.js";function P(t){const i=Me(t);if(!i)return null;try{return JSON.parse(i)}catch{}const n=i.match(/\{[\s\S]*\}|\[[\s\S]*\]/);if(!n)return null;try{return JSON.parse(n[0])}catch{return null}}const Ge=Object.freeze(["file-md5","file-sha1","file-sha256","file-sha512","ipv4","ipv6","domain","url","email"]);function S(t,i=0){return typeof t=="number"&&Number.isFinite(t)?t:i}function fe(t,i=0){if(!t||typeof t!="object")return null;const n=t.id||"";if(!n)return null;const z=Array.isArray(t.labels)?t.labels:[];return{key:n,id:n,type:String(t.type||""),value:String(t.value||""),labels:z,confidence:t.confidence!=null?S(t.confidence,null):null,sourceId:t.sourceId??t.source_id??null,sourceName:t.sourceName??t.source_name??null,validFrom:t.validFrom??t.valid_from??null,validUntil:t.validUntil??t.valid_until??null,firstSeenAt:t.firstSeenAt??t.first_seen_at??null,lastSeenAt:t.lastSeenAt??t.last_seen_at??null,_idx:i}}function Xe(t){const i=P(t);return Array.isArray(i)?i.map(fe).filter(Boolean):[]}function Ze(t){const i=P(t);return!i||typeof i!="object"||Array.isArray(i)?null:{matched:!!i.matched,type:String(i.type||"unknown"),indicator:i.indicator?fe(i.indicator):null}}function et(t){const i={total:0,byType:{}},n=P(t);if(!n||typeof n!="object"||Array.isArray(n))return i;if(i.total=S(n.total,0),n.byType&&typeof n.byType=="object")for(const[z,R]of Object.entries(n.byType))typeof R=="number"&&Number.isFinite(R)&&(i.byType[z]=R);return i}function tt(t,i=0){if(!t||typeof t!="object")return null;const n=t.entity||"";return n?{key:n,entity:n,eventCount:S(t.eventCount??t.event_count,0),failureRate:S(t.failureRate??t.failure_rate,0),uniqueResources:S(t.uniqueResources??t.unique_resources,0),uniqueActions:S(t.uniqueActions??t.unique_actions,0),burstiness:S(t.burstiness,0),riskScore:S(t.riskScore??t.risk_score,0),_idx:i}:null}function at(t){const i=P(t);return Array.isArray(i)?i.map(tt).filter(Boolean):[]}function lt(t,i=0){return!t||typeof t!="object"?null:{key:i,score:S(t.score,0),reasons:Array.isArray(t.reasons)?t.reasons:[],event:t.event&&typeof t.event=="object"?t.event:null,_idx:i}}function ot(t){const i=P(t);return Array.isArray(i)?i.map(lt).filter(Boolean):[]}function oe(t){if(!t)return{noAuditLog:!1,error:""};const i=/no such table:\s*audit_log/i.test(t),n=t.match(/Failed:\s*(.+?)(?:\r?\n|$)/i);return{noAuditLog:i,error:n?n[1].trim():""}}function nt(t){if(t==null||t==="")return"—";const i=typeof t=="number"?new Date(t):new Date(String(t));return isNaN(i.getTime())?String(t):i.toLocaleString("zh-CN",{hour12:!1})}const it={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},st={class:"page-title"},rt={class:"page-sub"},ct={class:"filter-bar"},ut={key:1,style:{color:"var(--text-primary)","font-family":"monospace","font-size":"12px","word-break":"break-all"}},pt={key:0,style:{color:"var(--text-muted)"}},dt={key:1,style:{color:"var(--text-muted)"}},mt={key:0,style:{color:"var(--text-secondary)","font-size":"12px"}},yt={key:1,style:{color:"var(--text-muted)"}},ft={key:5,style:{color:"var(--text-secondary)","font-size":"11px"}},vt={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},bt={style:{color:"var(--text-primary)",margin:"16px 0 8px","font-size":"14px"}},gt={key:0,style:{color:"var(--text-primary)","font-family":"monospace","font-weight":"500"}},ht={key:2,style:{color:"var(--text-secondary)"}},_t={key:5,style:{color:"var(--text-secondary)","font-family":"monospace","font-size":"11px"}},kt={style:{padding:"30px",color:"var(--text-muted)","text-align":"center"}},xt={key:2,style:{color:"var(--text-primary)",margin:"24px 0 8px","font-size":"14px"}},$t={style:{flex:"1"}},zt={style:{display:"flex",gap:"8px","align-items":"center"}},St={key:0,style:{color:"var(--text-primary)","font-family":"monospace","font-size":"12px"}},At={key:1,style:{color:"var(--text-secondary)","font-size":"11px"}},Tt={key:0,style:{"margin-top":"4px"}},Ct={style:{"margin-top":"8px","font-size":"12px",color:"var(--text-secondary)"}},Ft={key:0,style:{"margin-top":"12px","font-size":"12px"}},Rt={style:{color:"var(--text-secondary)"}},Ot={style:{color:"var(--text-secondary)"}},jt={key:0,style:{"margin-top":"4px"}},wt={style:{color:"var(--text-secondary)","font-size":"12px",margin:"0"}},Lt={style:{color:"var(--text-secondary)","font-size":"12px",margin:"0"}},Nt={__name:"Compliance",setup(t){const i=qe(),{t:n}=Ie(),z=g(!1),R=g(!1),J=g(!1),W=g(!1),Q=g([]),U=g({total:0,byType:{}}),B=g([]),O=g([]),A=g({noAuditLog:!1,error:""}),D=g("threat"),K=g(""),Y=g(!1),E=g(!1),I=g(!1),H=le({observable:""}),k=g(null),T=le({entity:"",days:30}),x=le({entity:"",threshold:.7,days:1}),ve=N(()=>[{title:n("compliance.cols.type"),key:"type",width:"120px"},{title:n("compliance.cols.value"),key:"value"},{title:n("compliance.cols.labels"),key:"labels",width:"160px"},{title:n("compliance.cols.confidence"),key:"confidence",width:"90px"},{title:n("compliance.cols.source"),key:"source",width:"160px"},{title:n("compliance.cols.lastSeen"),key:"lastSeen",width:"160px"},{title:n("compliance.cols.action"),key:"action",width:"90px"}]),be=N(()=>[{title:n("compliance.cols.entity"),key:"entity",width:"180px"},{title:n("compliance.cols.riskScore"),key:"riskScore"},{title:n("compliance.cols.eventCount"),key:"eventCount",width:"90px"},{title:n("compliance.cols.failureRate"),key:"failureRate",width:"90px"},{title:n("compliance.cols.uniqueResources"),key:"uniqueResources",width:"90px"},{title:n("compliance.cols.burstiness"),key:"burstiness",width:"90px"}]),ge=N(()=>K.value?Q.value.filter(e=>e.type===K.value):Q.value),he=N(()=>Object.keys(U.value.byType).length),_e=N(()=>Object.entries(U.value.byType).sort((e,s)=>s[1]-e[1])),ne=N(()=>B.value.filter(e=>e.riskScore>=70).length),ke={ipv4:"blue",ipv6:"cyan",domain:"purple",url:"magenta",email:"gold","file-md5":"orange","file-sha1":"orange","file-sha256":"red","file-sha512":"red",unknown:"default"};function G(e){return ke[e]||"default"}function xe(e){return e>=80?"#ff4d4f":e>=50?"#faad14":"#52c41a"}function ie(e){return e>=70?"#ff4d4f":e>=40?"#faad14":"#52c41a"}function $e(e,s){return e?e.length>s?e.slice(0,s)+"...":e:""}function ze({key:e}){e==="match"?(k.value=null,Y.value=!0):e==="ueba-build"?E.value=!0:e==="ueba-analyze"&&(I.value=!0)}async function V(){z.value=!0;try{const[e,s,y]=await Promise.all([i.execute("compliance threat-intel list --limit 200 --json",1e4).catch(()=>({output:""})),i.execute("compliance threat-intel stats --json",8e3).catch(()=>({output:""})),i.execute("compliance ueba top --top-k 20 --json",1e4).catch(()=>({output:""}))]);Q.value=Xe(e.output),U.value=et(s.output),A.value=oe(y.output),B.value=A.value.noAuditLog?[]:at(y.output)}catch(e){v.error(n("compliance.msg.loadFailed")+": "+(e?.message||e))}finally{z.value=!1}}async function Se(){const e=H.observable.trim();if(!e){v.warning(n("compliance.msg.matchEmpty"));return}R.value=!0,k.value=null;try{const s=`compliance threat-intel match "${e.replace(/"/g,'\\"')}" --json`,{output:y}=await i.execute(s,8e3),$=Ze(y);if(!$){v.error(n("compliance.msg.matchFailed")+": "+y.slice(0,120));return}k.value=$,$.matched?v.warning(n("compliance.msg.matchHit",{type:$.type})):$.type==="unknown"?v.info(n("compliance.msg.matchUnknownType")):v.success(n("compliance.msg.matchMiss",{type:$.type}))}catch(s){v.error(n("compliance.msg.matchFailed")+": "+(s?.message||s))}finally{R.value=!1}}async function Ae(e){try{const s=`compliance threat-intel remove ${e.type} "${e.value.replace(/"/g,'\\"')}" --json`,{output:y}=await i.execute(s,8e3);if(/error|失败/i.test(y)&&!/"removed"/.test(y)){v.error(n("compliance.msg.deleteFailed")+": "+y.slice(0,120));return}v.success(n("compliance.msg.deleteSuccess")),await V()}catch(s){v.error(n("compliance.msg.deleteFailed")+": "+(s?.message||s))}}async function Te(){J.value=!0;try{const e=["compliance ueba baseline"];T.entity.trim()&&e.push(`--entity "${T.entity.trim().replace(/"/g,'\\"')}"`),T.days!=null&&e.push(`--days ${T.days}`),e.push("--json");const{output:s}=await i.execute(e.join(" "),3e4),y=oe(s);if(y.noAuditLog){A.value=y,v.warning(n("compliance.msg.auditEmptyBuild")),E.value=!1;return}if(y.error){v.error(n("compliance.msg.buildFailed")+": "+y.error);return}v.success(n("compliance.msg.buildSuccess")),E.value=!1,D.value="ueba",await V()}catch(e){v.error(n("compliance.msg.buildFailed")+": "+(e?.message||e))}finally{J.value=!1}}async function Ce(){W.value=!0;try{const e=["compliance ueba analyze"];x.entity.trim()&&e.push(`--entity "${x.entity.trim().replace(/"/g,'\\"')}"`),x.threshold!=null&&e.push(`--threshold ${x.threshold}`),x.days!=null&&e.push(`--days ${x.days}`),e.push("--json");const{output:s}=await i.execute(e.join(" "),3e4),y=oe(s);if(y.noAuditLog){A.value=y,v.warning(n("compliance.msg.auditEmptyAnalyze")),I.value=!1;return}if(y.error&&!s.includes("[")){v.error(n("compliance.msg.analyzeFailed")+": "+y.error);return}O.value=ot(s),v.success(n("compliance.msg.analyzeSuccess",{n:O.value.length})),I.value=!1,D.value="ueba"}catch(e){v.error(n("compliance.msg.analyzeFailed")+": "+(e?.message||e))}finally{W.value=!1}}return He(V),(e,s)=>{const y=d("a-button"),$=d("a-menu-item"),Fe=d("a-menu"),Re=d("a-dropdown"),se=d("a-space"),w=d("a-statistic"),j=d("a-card"),q=d("a-col"),Oe=d("a-row"),C=d("a-tag"),re=d("a-radio-button"),je=d("a-radio-group"),we=d("a-popconfirm"),ce=d("a-table"),ue=d("a-tab-pane"),pe=d("a-alert"),Le=d("a-progress"),Ne=d("a-list-item"),Ue=d("a-list"),Be=d("a-tabs"),X=d("a-input"),L=d("a-form-item"),Z=d("a-form"),ee=d("a-modal"),te=d("a-input-number");return c(),p("div",null,[b("div",it,[b("div",null,[b("h2",st,r(e.$t("compliance.title")),1),b("p",rt,r(e.$t("compliance.subtitle")),1)]),a(se,null,{default:l(()=>[a(y,{loading:z.value,onClick:V},{icon:l(()=>[a(_(Pe))]),default:l(()=>[f(" "+r(e.$t("compliance.refresh")),1)]),_:1},8,["loading"]),a(Re,{trigger:["click"]},{overlay:l(()=>[a(Fe,{onClick:ze},{default:l(()=>[a($,{key:"match"},{default:l(()=>[a(_(Ke)),f(" "+r(e.$t("compliance.actions.match")),1)]),_:1}),a($,{key:"ueba-build"},{default:l(()=>[a(_(Ve)),f(" "+r(e.$t("compliance.actions.uebaBuild")),1)]),_:1}),a($,{key:"ueba-analyze"},{default:l(()=>[a(_(Je)),f(" "+r(e.$t("compliance.actions.uebaAnalyze")),1)]),_:1})]),_:1})]),default:l(()=>[a(y,{type:"primary"},{icon:l(()=>[a(_(De))]),default:l(()=>[f(" "+r(e.$t("compliance.actionDropdown")),1)]),_:1})]),_:1})]),_:1})]),a(Oe,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:l(()=>[a(q,{xs:12,sm:8,lg:5},{default:l(()=>[a(j,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:l(()=>[a(w,{title:e.$t("compliance.stats.iocTotal"),value:U.value.total,"value-style":{color:"#1677ff",fontSize:"20px"}},{prefix:l(()=>[a(_(de))]),_:1},8,["title","value"])]),_:1})]),_:1}),a(q,{xs:12,sm:8,lg:5},{default:l(()=>[a(j,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:l(()=>[a(w,{title:e.$t("compliance.stats.iocTypes"),value:he.value,"value-style":{color:"#13c2c2",fontSize:"20px"}},{prefix:l(()=>[a(_(We))]),_:1},8,["title","value"])]),_:1})]),_:1}),a(q,{xs:12,sm:8,lg:5},{default:l(()=>[a(j,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:l(()=>[a(w,{title:e.$t("compliance.stats.riskEntities"),value:B.value.length,"value-style":{color:"#722ed1",fontSize:"20px"}},{prefix:l(()=>[a(_(me))]),_:1},8,["title","value"])]),_:1})]),_:1}),a(q,{xs:12,sm:8,lg:5},{default:l(()=>[a(j,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:l(()=>[a(w,{title:e.$t("compliance.stats.highRisk"),value:ne.value,"value-style":{color:ne.value>0?"#ff4d4f":"#52c41a",fontSize:"20px"}},{prefix:l(()=>[a(_(Qe))]),_:1},8,["title","value","value-style"])]),_:1})]),_:1}),a(q,{xs:24,sm:8,lg:4},{default:l(()=>[a(j,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:l(()=>[a(w,{title:e.$t("compliance.stats.recentAnomalies"),value:O.value.length,"value-style":{color:"#faad14",fontSize:"20px"}},{prefix:l(()=>[a(_(Ye))]),_:1},8,["title","value"])]),_:1})]),_:1})]),_:1}),U.value.total>0?(c(),h(j,{key:0,title:e.$t("compliance.typeBreakdown"),size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"20px"},"body-style":{padding:"12px 16px"}},{default:l(()=>[a(se,{size:[12,8],wrap:""},{default:l(()=>[(c(!0),p(F,null,M(_e.value,([o,u])=>(c(),h(C,{key:o,color:G(o)},{default:l(()=>[f(r(o)+": "+r(u),1)]),_:2},1032,["color"]))),128))]),_:1})]),_:1},8,["title"])):m("",!0),a(Be,{activeKey:D.value,"onUpdate:activeKey":s[1]||(s[1]=o=>D.value=o),class:"compliance-tabs"},{default:l(()=>[a(ue,{key:"threat",tab:e.$t("compliance.tabs.threat")},{default:l(()=>[b("div",ct,[a(je,{value:K.value,"onUpdate:value":s[0]||(s[0]=o=>K.value=o),size:"small"},{default:l(()=>[a(re,{value:""},{default:l(()=>[f(r(e.$t("compliance.filter.all")),1)]),_:1}),(c(!0),p(F,null,M(_(Ge),o=>(c(),h(re,{key:o,value:o},{default:l(()=>[f(r(o),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),a(ce,{columns:ve.value,"data-source":ge.value,pagination:{pageSize:20,showTotal:o=>e.$t("compliance.table.totalSuffix",{n:o})},size:"small",loading:z.value,style:{background:"var(--bg-card)"}},{bodyCell:l(({column:o,record:u})=>[o.key==="type"?(c(),h(C,{key:0,color:G(u.type),style:{"font-family":"monospace"}},{default:l(()=>[f(r(u.type),1)]),_:2},1032,["color"])):m("",!0),o.key==="value"?(c(),p("span",ut,r($e(u.value,64)),1)):m("",!0),o.key==="labels"?(c(),p(F,{key:2},[(c(!0),p(F,null,M(u.labels,ae=>(c(),h(C,{key:ae,color:"orange",style:{"font-size":"10px",margin:"1px"}},{default:l(()=>[f(r(ae),1)]),_:2},1024))),128)),u.labels.length?m("",!0):(c(),p("span",pt,"—"))],64)):m("",!0),o.key==="confidence"?(c(),p(F,{key:3},[u.confidence!=null?(c(),p("span",{key:0,style:ye({color:xe(u.confidence),fontWeight:500})},r(u.confidence),5)):(c(),p("span",dt,"—"))],64)):m("",!0),o.key==="source"?(c(),p(F,{key:4},[u.sourceName?(c(),p("span",mt,r(u.sourceName),1)):(c(),p("span",yt,"—"))],64)):m("",!0),o.key==="lastSeen"?(c(),p("span",ft,r(_(nt)(u.lastSeenAt)),1)):m("",!0),o.key==="action"?(c(),h(we,{key:6,title:e.$t("compliance.table.deleteConfirm"),"ok-text":e.$t("compliance.table.deleteOk"),"cancel-text":e.$t("compliance.table.cancel"),onConfirm:ae=>Ae(u)},{default:l(()=>[a(y,{size:"small",type:"link",danger:""},{default:l(()=>[f(r(e.$t("compliance.table.delete")),1)]),_:1})]),_:1},8,["title","ok-text","cancel-text","onConfirm"])):m("",!0)]),emptyText:l(()=>[b("div",vt,[a(_(de),{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),f(" "+r(e.$t("compliance.table.emptyThreatsLine1"))+" ",1),s[11]||(s[11]=b("code",{style:{"font-size":"11px"}},"cc compliance threat-intel import <file.json>",-1))])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"]),a(ue,{key:"ueba",tab:e.$t("compliance.tabs.ueba")},{default:l(()=>[A.value.noAuditLog?(c(),h(pe,{key:0,type:"info","show-icon":"",message:e.$t("compliance.ueba.noAuditLog"),description:e.$t("compliance.ueba.noAuditLogDesc"),style:{"margin-bottom":"16px"}},null,8,["message","description"])):A.value.error?(c(),h(pe,{key:1,type:"error","show-icon":"",message:e.$t("compliance.ueba.errorMessage",{err:A.value.error}),style:{"margin-bottom":"16px"}},null,8,["message"])):m("",!0),b("h3",bt,r(e.$t("compliance.ueba.topRiskTitle",{count:B.value.length})),1),a(ce,{columns:be.value,"data-source":B.value,pagination:!1,size:"small",loading:z.value,style:{background:"var(--bg-card)"}},{bodyCell:l(({column:o,record:u})=>[o.key==="entity"?(c(),p("span",gt,r(u.entity),1)):m("",!0),o.key==="riskScore"?(c(),h(Le,{key:1,percent:Math.min(u.riskScore,100),"stroke-color":ie(u.riskScore),size:"small",format:()=>u.riskScore.toFixed(1)},null,8,["percent","stroke-color","format"])):m("",!0),o.key==="eventCount"?(c(),p("span",ht,r(u.eventCount),1)):m("",!0),o.key==="failureRate"?(c(),p("span",{key:3,style:ye({color:u.failureRate>.3?"#ff4d4f":"var(--text-secondary)",fontFamily:"monospace"})},r((u.failureRate*100).toFixed(1))+"% ",5)):m("",!0),o.key==="uniqueResources"?(c(),h(C,{key:4,color:"cyan",style:{"font-size":"11px"}},{default:l(()=>[f(r(u.uniqueResources),1)]),_:2},1024)):m("",!0),o.key==="burstiness"?(c(),p("span",_t,r((u.burstiness*100).toFixed(0))+"% ",1)):m("",!0)]),emptyText:l(()=>[b("div",kt,[a(_(me),{style:{"font-size":"32px","margin-bottom":"8px",display:"block"}}),f(" "+r(A.value.noAuditLog?e.$t("compliance.table.emptyAuditEntities"):e.$t("compliance.table.emptyRiskEntities")),1)])]),_:1},8,["columns","data-source","loading"]),O.value.length?(c(),p("h3",xt,r(e.$t("compliance.ueba.anomalyTitle",{count:O.value.length})),1)):m("",!0),O.value.length?(c(),h(Ue,{key:3,size:"small","data-source":O.value,locale:{emptyText:e.$t("compliance.table.noAnomalies")}},{renderItem:l(({item:o})=>[a(Ne,{style:{background:"var(--bg-card)",padding:"10px 16px"}},{default:l(()=>[b("div",$t,[b("div",zt,[a(C,{color:ie(o.score*100)},{default:l(()=>[f("score "+r(o.score.toFixed(2)),1)]),_:2},1032,["color"]),o.event?.entity?(c(),p("span",St,r(o.event.entity),1)):m("",!0),o.event?.action?(c(),p("span",At," → "+r(o.event.action),1)):m("",!0)]),o.reasons.length?(c(),p("div",Tt,[(c(!0),p(F,null,M(o.reasons,u=>(c(),h(C,{key:u,color:"volcano",style:{"font-size":"10px",margin:"1px"}},{default:l(()=>[f(r(u),1)]),_:2},1024))),128))])):m("",!0)])]),_:2},1024)]),_:1},8,["data-source","locale"])):m("",!0)]),_:1},8,["tab"])]),_:1},8,["activeKey"]),a(ee,{open:Y.value,"onUpdate:open":s[3]||(s[3]=o=>Y.value=o),title:e.$t("compliance.match.modalTitle"),"confirm-loading":R.value,width:500,"ok-text":e.$t("compliance.match.ok"),"cancel-text":e.$t("compliance.match.close"),onOk:Se},{default:l(()=>[a(Z,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:l(()=>[a(L,{label:e.$t("compliance.match.label"),required:""},{default:l(()=>[a(X,{value:H.observable,"onUpdate:value":s[2]||(s[2]=o=>H.observable=o),placeholder:e.$t("compliance.match.placeholder"),"allow-clear":""},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1}),k.value?(c(),h(j,{key:0,size:"small",style:{background:"var(--bg-base)","margin-top":"8px"}},{default:l(()=>[a(w,{title:e.$t("compliance.match.result"),value:k.value.matched?e.$t("compliance.match.hit"):e.$t("compliance.match.miss"),"value-style":{color:k.value.matched?"#ff4d4f":"#52c41a"}},null,8,["title","value","value-style"]),b("div",Ct,[f(r(e.$t("compliance.match.detectType"))+" ",1),a(C,{color:G(k.value.type)},{default:l(()=>[f(r(k.value.type),1)]),_:1},8,["color"])]),k.value.indicator?(c(),p("div",Ft,[b("div",Rt,r(e.$t("compliance.match.sourcePrefix"))+" "+r(k.value.indicator.sourceName||"—"),1),b("div",Ot,r(e.$t("compliance.match.confidencePrefix"))+" "+r(k.value.indicator.confidence??"—"),1),k.value.indicator.labels.length?(c(),p("div",jt,[(c(!0),p(F,null,M(k.value.indicator.labels,o=>(c(),h(C,{key:o,color:"orange",style:{"font-size":"10px"}},{default:l(()=>[f(r(o),1)]),_:2},1024))),128))])):m("",!0)])):m("",!0)]),_:1})):m("",!0)]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),a(ee,{open:E.value,"onUpdate:open":s[6]||(s[6]=o=>E.value=o),title:e.$t("compliance.build.modalTitle"),"confirm-loading":J.value,width:480,"ok-text":e.$t("compliance.build.ok"),"cancel-text":e.$t("compliance.build.cancel"),onOk:Te},{default:l(()=>[a(Z,{"label-col":{span:6},"wrapper-col":{span:18},style:{"margin-top":"16px"}},{default:l(()=>[a(L,{label:e.$t("compliance.build.entityLabel")},{default:l(()=>[a(X,{value:T.entity,"onUpdate:value":s[4]||(s[4]=o=>T.entity=o),placeholder:e.$t("compliance.build.entityPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),a(L,{label:e.$t("compliance.build.daysLabel")},{default:l(()=>[a(te,{value:T.days,"onUpdate:value":s[5]||(s[5]=o=>T.days=o),min:1,max:365,placeholder:e.$t("compliance.build.daysPlaceholder"),style:{width:"100%"}},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1}),b("p",wt,r(e.$t("compliance.build.footnote")),1)]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),a(ee,{open:I.value,"onUpdate:open":s[10]||(s[10]=o=>I.value=o),title:e.$t("compliance.analyze.modalTitle"),"confirm-loading":W.value,width:480,"ok-text":e.$t("compliance.analyze.ok"),"cancel-text":e.$t("compliance.analyze.cancel"),onOk:Ce},{default:l(()=>[a(Z,{"label-col":{span:6},"wrapper-col":{span:18},style:{"margin-top":"16px"}},{default:l(()=>[a(L,{label:e.$t("compliance.analyze.entityLabel")},{default:l(()=>[a(X,{value:x.entity,"onUpdate:value":s[7]||(s[7]=o=>x.entity=o),placeholder:e.$t("compliance.analyze.entityPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),a(L,{label:e.$t("compliance.analyze.thresholdLabel")},{default:l(()=>[a(te,{value:x.threshold,"onUpdate:value":s[8]||(s[8]=o=>x.threshold=o),min:0,max:1,step:.05,style:{width:"100%"}},null,8,["value"])]),_:1},8,["label"]),a(L,{label:e.$t("compliance.analyze.daysLabel")},{default:l(()=>[a(te,{value:x.days,"onUpdate:value":s[9]||(s[9]=o=>x.days=o),min:1,max:30,style:{width:"100%"}},null,8,["value"])]),_:1},8,["label"])]),_:1}),b("p",Lt,r(e.$t("compliance.analyze.footnote")),1)]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"])])}}},Mt=Ee(Nt,[["__scopeId","data-v-81155fa8"]]);export{Mt as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{_ as Ie,a as He,c as k}from"./index-Cw4v7ezB.js";import{u as Re}from"./ws-D_5-FRIb.js";import{s as qe}from"./community-parser-CO25nZFt.js";import{R as Ve,al as De,Q as ie,aN as ue,aO as de,aP as Ee,ap as Je,av as Ke,aE as ce}from"./icons-DvZE-RKs.js";import{o as Qe,M as m,R as f,P as i,c as s,N as o,Q as x,S as _,K as g,r as C,L as u,O as h,u as v,F as $,_ as U,f as pe,a as Y}from"./vendor-B6ToihkA.js";function B(a){const r=qe(a);if(!r)return null;try{return JSON.parse(r)}catch{}const l=r.match(/\{[\s\S]*\}|\[[\s\S]*\]/);if(!l)return null;try{return JSON.parse(l[0])}catch{return null}}function A(a,r=0){return typeof a=="number"&&Number.isFinite(a)?a:r}function We(a,r=0){if(!a||typeof a!="object")return null;const l=a.id||"";return l?{key:l,id:l,name:String(a.name||l),symbol:String(a.symbol||""),chainId:A(a.chainId??a.chain_id,0),_idx:r}:null}function Xe(a){const r=B(a);return Array.isArray(r)?r.map(We).filter(Boolean):[]}function Ge(a,r=0){if(!a||typeof a!="object")return null;const l=a.id||"";return l?{key:l,id:l,fromChain:a.fromChain??a.from_chain??"",toChain:a.toChain??a.to_chain??"",asset:String(a.asset||"native"),amount:A(a.amount,0),senderAddress:a.senderAddress??a.sender_address??"",recipientAddress:a.recipientAddress??a.recipient_address??"",lockTxHash:a.lockTxHash??a.lock_tx_hash??"",mintTxHash:a.mintTxHash??a.mint_tx_hash??"",status:String(a.status||"pending").toLowerCase(),feeAmount:A(a.feeAmount??a.fee_amount,0),feeChain:a.feeChain??a.fee_chain??"",errorMessage:a.errorMessage??a.error_message??"",createdAt:a.createdAt??a.created_at??null,completedAt:a.completedAt??a.completed_at??null,_idx:r}:null}function Ye(a){const r=B(a);return Array.isArray(r)?r.map(Ge).filter(Boolean):[]}function Ze(a,r=0){if(!a||typeof a!="object")return null;const l=a.id||"";return l?{key:l,id:l,fromChain:a.fromChain??a.from_chain??"",toChain:a.toChain??a.to_chain??"",fromAsset:a.fromAsset??a.from_asset??"native",toAsset:a.toAsset??a.to_asset??"native",amount:A(a.amount,0),counterpartyAddress:a.counterpartyAddress??a.counterparty_address??"",hashLock:a.hashLock??a.hash_lock??"",expiresAt:a.expiresAt??a.expires_at??null,status:String(a.status||"initiated").toLowerCase(),claimTxHash:a.claimTxHash??a.claim_tx_hash??"",refundTxHash:a.refundTxHash??a.refund_tx_hash??"",createdAt:a.createdAt??a.created_at??null,_idx:r}:null}function et(a){const r=B(a);return Array.isArray(r)?r.map(Ze).filter(Boolean):[]}function tt(a,r=0){if(!a||typeof a!="object")return null;const l=a.id||"";return l?{key:l,id:l,fromChain:a.fromChain??a.from_chain??"",toChain:a.toChain??a.to_chain??"",payload:String(a.payload||""),targetContract:a.targetContract??a.target_contract??"",sourceTxHash:a.sourceTxHash??a.source_tx_hash??"",destinationTxHash:a.destinationTxHash??a.destination_tx_hash??"",status:String(a.status||"pending").toLowerCase(),retries:A(a.retries,0),createdAt:a.createdAt??a.created_at??null,deliveredAt:a.deliveredAt??a.delivered_at??null,_idx:r}:null}function at(a){const r=B(a);return Array.isArray(r)?r.map(tt).filter(Boolean):[]}const st={bridges:{total:0,byStatus:{},totalVolume:0,totalFees:0},swaps:{total:0,byStatus:{}},messages:{total:0,byStatus:{}}};function ot(a){const r=JSON.parse(JSON.stringify(st)),l=B(a);return!l||typeof l!="object"||Array.isArray(l)||(l.bridges&&typeof l.bridges=="object"&&(r.bridges.total=A(l.bridges.total,0),r.bridges.totalVolume=A(l.bridges.totalVolume??l.bridges.total_volume,0),r.bridges.totalFees=A(l.bridges.totalFees??l.bridges.total_fees,0),l.bridges.byStatus&&typeof l.bridges.byStatus=="object"&&(r.bridges.byStatus={...l.bridges.byStatus})),l.swaps&&typeof l.swaps=="object"&&(r.swaps.total=A(l.swaps.total,0),l.swaps.byStatus&&typeof l.swaps.byStatus=="object"&&(r.swaps.byStatus={...l.swaps.byStatus})),l.messages&&typeof l.messages=="object"&&(r.messages.total=A(l.messages.total,0),l.messages.byStatus&&typeof l.messages.byStatus=="object"&&(r.messages.byStatus={...l.messages.byStatus}))),r}function lt(a){const r=B(a);return!r||typeof r!="object"||Array.isArray(r)?null:{fee:A(r.fee,0),breakdown:{sourceFee:A(r?.breakdown?.sourceFee??r?.breakdown?.source_fee,0),destFee:A(r?.breakdown?.destFee??r?.breakdown?.dest_fee,0),bridgeFee:A(r?.breakdown?.bridgeFee??r?.breakdown?.bridge_fee,0)},currency:String(r.currency||"USD")}}function me(a){if(a==null||a==="")return"—";const r=typeof a=="number"?new Date(a):new Date(String(a));return isNaN(r.getTime())?String(a):r.toLocaleString("zh-CN",{hour12:!1})}const nt={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},rt={class:"page-title"},it={class:"page-sub"},ut={style:{opacity:"0.7"}},dt={key:0,style:{opacity:"0.55","font-size":"10px","margin-left":"4px"}},ct={style:{color:"var(--text-primary)"}},pt={style:{color:"var(--text-primary)"}},mt={style:{color:"#722ed1","font-weight":"500"}},ft={style:{color:"var(--text-secondary)","margin-left":"4px","font-size":"11px"}},ht={key:2,style:{color:"var(--text-secondary)","font-size":"12px"}},gt={key:4,style:{color:"var(--text-secondary)","font-size":"11px"}},yt={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},bt={style:{color:"var(--text-primary)"}},vt={style:{color:"var(--text-secondary)","font-size":"11px",margin:"0 4px"}},_t={style:{color:"var(--text-primary)"}},kt={style:{color:"var(--text-secondary)","font-size":"11px","margin-left":"4px"}},Ct={key:1,style:{color:"#722ed1","font-weight":"500"}},xt={key:0,style:{color:"var(--text-secondary)","font-family":"monospace","font-size":"11px"}},$t={key:1,style:{color:"var(--text-muted)"}},At={key:4,style:{color:"var(--text-secondary)","font-size":"11px"}},St={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},wt={style:{color:"var(--text-primary)"}},Ft={style:{color:"var(--text-primary)"}},zt={key:1,style:{color:"var(--text-secondary)","font-size":"12px"}},Ut={key:1,style:{color:"var(--text-muted)"}},Tt={key:4,style:{color:"var(--text-secondary)","font-size":"11px"}},jt={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},Mt={style:{"margin-top":"12px","font-size":"12px",color:"var(--text-secondary)"}},Ot={__name:"Crosschain",setup(a){const r=Re(),{t:l}=He(),P=C(!1),Z=C(!1),ee=C(!1),te=C(!1),ae=C(!1),S=C([]),fe=C([]),he=C([]),ge=C([]),I=C({bridges:{total:0,byStatus:{},totalVolume:0,totalFees:0},swaps:{total:0,byStatus:{}},messages:{total:0,byStatus:{}}}),H=C("bridges"),E=C(!1),J=C(!1),K=C(!1),se=C(!1),c=Y({fromChain:"",toChain:"",amount:null,asset:"",sender:"",recipient:""}),d=Y({fromChain:"",toChain:"",amount:null,fromAsset:"",toAsset:"",counterparty:"",timeoutMs:null}),y=Y({fromChain:"",toChain:"",payload:"",contract:""}),w=Y({fromChain:"",toChain:"",amount:null}),z=C(null),ke=pe(()=>[{title:l("crosschain.bridgeCols.route"),key:"route"},{title:l("crosschain.bridgeCols.amount"),key:"amount",width:"160px"},{title:l("crosschain.bridgeCols.fee"),key:"fee",width:"100px"},{title:l("crosschain.bridgeCols.status"),key:"status",width:"110px"},{title:l("crosschain.bridgeCols.createdAt"),key:"createdAt",width:"160px"}]),Ce=pe(()=>[{title:l("crosschain.swapCols.route"),key:"route"},{title:l("crosschain.swapCols.amount"),key:"amount",width:"110px"},{title:l("crosschain.swapCols.hashLock"),key:"hashLock",width:"160px"},{title:l("crosschain.swapCols.status"),key:"status",width:"120px"},{title:l("crosschain.swapCols.expiresAt"),key:"expiresAt",width:"160px"}]),xe=pe(()=>[{title:l("crosschain.messageCols.route"),key:"route",width:"220px"},{title:l("crosschain.messageCols.payload"),key:"payload"},{title:l("crosschain.messageCols.retries"),key:"retries",width:"80px"},{title:l("crosschain.messageCols.status"),key:"status",width:"110px"},{title:l("crosschain.messageCols.createdAt"),key:"createdAt",width:"160px"}]),$e={ethereum:"blue",polygon:"purple",bsc:"gold",arbitrum:"cyan",solana:"magenta"};function Ae(e){return $e[e]||"default"}function L(e){const n=S.value.find(F=>F.id===e);return n?n.name:e||"—"}function oe(e){const n=`crosschain.statusLabels.${e}`,F=l(n);return F===n?e:F}function Se(e){return{pending:"default",locked:"processing",minted:"cyan",completed:"green",refunded:"orange",failed:"red"}[e]||"default"}function we(e){return{initiated:"default",hash_locked:"processing",claimed:"green",refunded:"orange",expired:"red"}[e]||"default"}function Fe(e){return{pending:"default",sent:"processing",delivered:"green",failed:"red"}[e]||"default"}function ze(e,n){return e?e.length>n?e.slice(0,n)+"...":e:""}function Ue({key:e}){e==="bridge"?E.value=!0:e==="swap"?J.value=!0:e==="message"&&(K.value=!0)}async function R(){P.value=!0;try{const[e,n,F,q,le]=await Promise.all([r.execute("crosschain chains --json",8e3).catch(()=>({output:""})),r.execute("crosschain bridges --limit 200 --json",1e4).catch(()=>({output:""})),r.execute("crosschain swaps --limit 200 --json",1e4).catch(()=>({output:""})),r.execute("crosschain messages --limit 200 --json",1e4).catch(()=>({output:""})),r.execute("crosschain stats --json",8e3).catch(()=>({output:""}))]);S.value=Xe(e.output),fe.value=Ye(n.output),he.value=et(F.output),ge.value=at(q.output),I.value=ot(le.output)}catch(e){k.error(l("crosschain.msg.loadFailed")+": "+(e?.message||e))}finally{P.value=!1}}function Q(e){return!e.fromChain||!e.toChain?(k.warning(l("crosschain.msg.pairEmpty")),!1):e.fromChain===e.toChain?(k.warning(l("crosschain.msg.pairSame")),!1):!0}async function Te(){if(Q(c)){if(!c.amount||c.amount<=0){k.warning(l("crosschain.msg.amountInvalid"));return}Z.value=!0;try{const e=[`crosschain bridge ${c.fromChain} ${c.toChain} ${c.amount}`];c.asset.trim()&&e.push(`--asset "${c.asset.trim().replace(/"/g,'\\"')}"`),c.sender.trim()&&e.push(`--sender "${c.sender.trim().replace(/"/g,'\\"')}"`),c.recipient.trim()&&e.push(`--recipient "${c.recipient.trim().replace(/"/g,'\\"')}"`),e.push("--json");const{output:n}=await r.execute(e.join(" "),15e3);if(/error|failed|失败|unsupported/i.test(n)&&!/"bridgeId"/.test(n)){k.error(l("crosschain.msg.bridgeFailed")+": "+n.slice(0,120));return}k.success(l("crosschain.msg.bridgeSuccess")),E.value=!1,ye(),H.value="bridges",await R()}catch(e){k.error(l("crosschain.msg.bridgeFailed")+": "+(e?.message||e))}finally{Z.value=!1}}}async function je(){if(Q(d)){if(!d.amount||d.amount<=0){k.warning(l("crosschain.msg.amountInvalid"));return}ee.value=!0;try{const e=[`crosschain swap ${d.fromChain} ${d.toChain} ${d.amount}`];d.fromAsset.trim()&&e.push(`--from-asset "${d.fromAsset.trim().replace(/"/g,'\\"')}"`),d.toAsset.trim()&&e.push(`--to-asset "${d.toAsset.trim().replace(/"/g,'\\"')}"`),d.counterparty.trim()&&e.push(`--counterparty "${d.counterparty.trim().replace(/"/g,'\\"')}"`),d.timeoutMs!=null&&e.push(`--timeout ${d.timeoutMs}`),e.push("--json");const{output:n}=await r.execute(e.join(" "),15e3);if(/error|failed|失败|unsupported/i.test(n)&&!/"swapId"/.test(n)){k.error(l("crosschain.msg.swapFailed")+": "+n.slice(0,120));return}k.success(l("crosschain.msg.swapSuccess")),J.value=!1,be(),H.value="swaps",await R()}catch(e){k.error(l("crosschain.msg.swapFailed")+": "+(e?.message||e))}finally{ee.value=!1}}}async function Me(){if(Q(y)){te.value=!0;try{const e=[`crosschain send ${y.fromChain} ${y.toChain}`];y.payload.trim()&&e.push(`--payload "${y.payload.trim().replace(/"/g,'\\"')}"`),y.contract.trim()&&e.push(`--contract "${y.contract.trim().replace(/"/g,'\\"')}"`),e.push("--json");const{output:n}=await r.execute(e.join(" "),12e3);if(/error|failed|失败|unsupported/i.test(n)&&!/"messageId"/.test(n)){k.error(l("crosschain.msg.sendFailed")+": "+n.slice(0,120));return}k.success(l("crosschain.msg.sendSuccess")),K.value=!1,ve(),H.value="messages",await R()}catch(e){k.error(l("crosschain.msg.sendFailed")+": "+(e?.message||e))}finally{te.value=!1}}}async function Oe(){if(Q(w)){if(!w.amount||w.amount<=0){k.warning(l("crosschain.msg.amountInvalid"));return}ae.value=!0,z.value=null;try{const e=`crosschain estimate-fee ${w.fromChain} ${w.toChain} ${w.amount} --json`,{output:n}=await r.execute(e,8e3),F=lt(n);if(!F){k.error(l("crosschain.msg.feeFailed")+": "+n.slice(0,120));return}z.value=F}catch(e){k.error(l("crosschain.msg.feeFailed")+": "+(e?.message||e))}finally{ae.value=!1}}}function ye(){c.fromChain="",c.toChain="",c.amount=null,c.asset="",c.sender="",c.recipient=""}function be(){d.fromChain="",d.toChain="",d.amount=null,d.fromAsset="",d.toAsset="",d.counterparty="",d.timeoutMs=null}function ve(){y.fromChain="",y.toChain="",y.payload="",y.contract=""}return Qe(R),(e,n)=>{const F=g("a-button"),q=g("a-menu-item"),le=g("a-menu"),Pe=g("a-dropdown"),_e=g("a-space"),N=g("a-statistic"),M=g("a-card"),V=g("a-col"),Le=g("a-row"),D=g("a-tag"),ne=g("a-table"),re=g("a-tab-pane"),Ne=g("a-tabs"),T=g("a-select-option"),j=g("a-select"),b=g("a-form-item"),W=g("a-input-number"),O=g("a-input"),X=g("a-form"),G=g("a-modal"),Be=g("a-textarea");return u(),m("div",null,[f("div",nt,[f("div",null,[f("h2",rt,i(e.$t("crosschain.title")),1),f("p",it,i(e.$t("crosschain.subtitle")),1)]),s(_e,null,{default:o(()=>[s(F,{loading:P.value,onClick:R},{icon:o(()=>[s(v(Ve))]),default:o(()=>[h(" "+i(e.$t("crosschain.refresh")),1)]),_:1},8,["loading"]),s(Pe,{trigger:["click"]},{overlay:o(()=>[s(le,{onClick:Ue},{default:o(()=>[s(q,{key:"bridge"},{default:o(()=>[s(v(ie)),h(" "+i(e.$t("crosschain.actions.bridge")),1)]),_:1}),s(q,{key:"swap"},{default:o(()=>[s(v(ue)),h(" "+i(e.$t("crosschain.actions.swap")),1)]),_:1}),s(q,{key:"message"},{default:o(()=>[s(v(de)),h(" "+i(e.$t("crosschain.actions.message")),1)]),_:1})]),_:1})]),default:o(()=>[s(F,{type:"primary"},{icon:o(()=>[s(v(De))]),default:o(()=>[h(" "+i(e.$t("crosschain.newDropdown")),1)]),_:1})]),_:1}),s(F,{onClick:n[0]||(n[0]=t=>se.value=!0)},{icon:o(()=>[s(v(Ee))]),default:o(()=>[h(" "+i(e.$t("crosschain.feeEstimate")),1)]),_:1})]),_:1})]),s(Le,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:o(()=>[s(V,{xs:12,sm:8,lg:5},{default:o(()=>[s(M,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:o(()=>[s(N,{title:e.$t("crosschain.stats.chains"),value:S.value.length,"value-style":{color:"#1677ff",fontSize:"20px"}},{prefix:o(()=>[s(v(Je))]),_:1},8,["title","value"])]),_:1})]),_:1}),s(V,{xs:12,sm:8,lg:5},{default:o(()=>[s(M,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:o(()=>[s(N,{title:e.$t("crosschain.stats.bridges"),value:I.value.bridges.total,"value-style":{color:"#52c41a",fontSize:"20px"}},{prefix:o(()=>[s(v(ie))]),_:1},8,["title","value"])]),_:1})]),_:1}),s(V,{xs:12,sm:8,lg:5},{default:o(()=>[s(M,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:o(()=>[s(N,{title:e.$t("crosschain.stats.swaps"),value:I.value.swaps.total,"value-style":{color:"#722ed1",fontSize:"20px"}},{prefix:o(()=>[s(v(ue))]),_:1},8,["title","value"])]),_:1})]),_:1}),s(V,{xs:12,sm:8,lg:5},{default:o(()=>[s(M,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:o(()=>[s(N,{title:e.$t("crosschain.stats.messages"),value:I.value.messages.total,"value-style":{color:"#faad14",fontSize:"20px"}},{prefix:o(()=>[s(v(de))]),_:1},8,["title","value"])]),_:1})]),_:1}),s(V,{xs:24,sm:8,lg:4},{default:o(()=>[s(M,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:o(()=>[s(N,{title:e.$t("crosschain.stats.volume"),value:I.value.bridges.totalVolume,precision:2,"value-style":{color:"#13c2c2",fontSize:"20px"}},{prefix:o(()=>[s(v(Ke))]),_:1},8,["title","value"])]),_:1})]),_:1})]),_:1}),S.value.length?(u(),x(M,{key:0,title:e.$t("crosschain.chainsCard"),size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"20px"},"body-style":{padding:"12px 16px"}},{default:o(()=>[s(_e,{size:[12,8],wrap:""},{default:o(()=>[(u(!0),m($,null,U(S.value,t=>(u(),x(D,{key:t.id,color:Ae(t.id)},{default:o(()=>[h(i(t.name)+" ",1),f("span",ut,"("+i(t.symbol)+")",1),t.chainId>0?(u(),m("span",dt,"#"+i(t.chainId),1)):_("",!0)]),_:2},1032,["color"]))),128))]),_:1})]),_:1},8,["title"])):_("",!0),s(Ne,{activeKey:H.value,"onUpdate:activeKey":n[1]||(n[1]=t=>H.value=t),class:"xchain-tabs"},{default:o(()=>[s(re,{key:"bridges",tab:e.$t("crosschain.tabs.bridges")},{default:o(()=>[s(ne,{columns:ke.value,"data-source":fe.value,pagination:{pageSize:20,showTotal:t=>e.$t("crosschain.table.totalSuffix",{n:t})},size:"small",loading:P.value,style:{background:"var(--bg-card)"}},{bodyCell:o(({column:t,record:p})=>[t.key==="route"?(u(),m($,{key:0},[f("span",ct,i(L(p.fromChain)),1),s(v(ce),{style:{margin:"0 6px",color:"var(--text-secondary)","font-size":"11px"}}),f("span",pt,i(L(p.toChain)),1)],64)):_("",!0),t.key==="amount"?(u(),m($,{key:1},[f("span",mt,i(p.amount),1),f("span",ft,i(p.asset),1)],64)):_("",!0),t.key==="fee"?(u(),m("span",ht,i(p.feeAmount),1)):_("",!0),t.key==="status"?(u(),x(D,{key:3,color:Se(p.status)},{default:o(()=>[h(i(oe(p.status)),1)]),_:2},1032,["color"])):_("",!0),t.key==="createdAt"?(u(),m("span",gt,i(v(me)(p.createdAt)),1)):_("",!0)]),emptyText:o(()=>[f("div",yt,[s(v(ie),{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),h(" "+i(e.$t("crosschain.table.emptyBridges")),1)])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"]),s(re,{key:"swaps",tab:e.$t("crosschain.tabs.swaps")},{default:o(()=>[s(ne,{columns:Ce.value,"data-source":he.value,pagination:{pageSize:20,showTotal:t=>e.$t("crosschain.table.totalSuffix",{n:t})},size:"small",loading:P.value,style:{background:"var(--bg-card)"}},{bodyCell:o(({column:t,record:p})=>[t.key==="route"?(u(),m($,{key:0},[f("span",bt,i(L(p.fromChain)),1),f("span",vt,"("+i(p.fromAsset)+")",1),s(v(ce),{style:{margin:"0 4px",color:"var(--text-secondary)","font-size":"11px"}}),f("span",_t,i(L(p.toChain)),1),f("span",kt,"("+i(p.toAsset)+")",1)],64)):_("",!0),t.key==="amount"?(u(),m("span",Ct,i(p.amount),1)):_("",!0),t.key==="hashLock"?(u(),m($,{key:2},[p.hashLock?(u(),m("span",xt,i(p.hashLock.slice(0,14))+"... ",1)):(u(),m("span",$t,"—"))],64)):_("",!0),t.key==="status"?(u(),x(D,{key:3,color:we(p.status)},{default:o(()=>[h(i(oe(p.status)),1)]),_:2},1032,["color"])):_("",!0),t.key==="expiresAt"?(u(),m("span",At,i(v(me)(p.expiresAt)),1)):_("",!0)]),emptyText:o(()=>[f("div",St,[s(v(ue),{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),h(" "+i(e.$t("crosschain.table.emptySwaps")),1)])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"]),s(re,{key:"messages",tab:e.$t("crosschain.tabs.messages")},{default:o(()=>[s(ne,{columns:xe.value,"data-source":ge.value,pagination:{pageSize:20,showTotal:t=>e.$t("crosschain.table.totalSuffix",{n:t})},size:"small",loading:P.value,style:{background:"var(--bg-card)"}},{bodyCell:o(({column:t,record:p})=>[t.key==="route"?(u(),m($,{key:0},[f("span",wt,i(L(p.fromChain)),1),s(v(ce),{style:{margin:"0 6px",color:"var(--text-secondary)","font-size":"11px"}}),f("span",Ft,i(L(p.toChain)),1)],64)):_("",!0),t.key==="payload"?(u(),m("span",zt,i(ze(p.payload,60)||"—"),1)):_("",!0),t.key==="retries"?(u(),m($,{key:2},[p.retries>0?(u(),x(D,{key:0,color:"orange",style:{"font-size":"11px"}},{default:o(()=>[h(i(e.$t("crosschain.table.retrySuffix",{n:p.retries})),1)]),_:2},1024)):(u(),m("span",Ut,"—"))],64)):_("",!0),t.key==="status"?(u(),x(D,{key:3,color:Fe(p.status)},{default:o(()=>[h(i(oe(p.status)),1)]),_:2},1032,["color"])):_("",!0),t.key==="createdAt"?(u(),m("span",Tt,i(v(me)(p.createdAt)),1)):_("",!0)]),emptyText:o(()=>[f("div",jt,[s(v(de),{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),h(" "+i(e.$t("crosschain.table.emptyMessages")),1)])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"])]),_:1},8,["activeKey"]),s(G,{open:E.value,"onUpdate:open":n[8]||(n[8]=t=>E.value=t),title:e.$t("crosschain.bridge_modal.title"),"confirm-loading":Z.value,width:540,"ok-text":e.$t("crosschain.bridge_modal.ok"),"cancel-text":e.$t("crosschain.bridge_modal.cancel"),onOk:Te,onCancel:ye},{default:o(()=>[s(X,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:o(()=>[s(b,{label:e.$t("crosschain.bridge_modal.fromChain"),required:""},{default:o(()=>[s(j,{value:c.fromChain,"onUpdate:value":n[2]||(n[2]=t=>c.fromChain=t),placeholder:e.$t("crosschain.bridge_modal.fromChainPlaceholder")},{default:o(()=>[(u(!0),m($,null,U(S.value,t=>(u(),x(T,{key:t.id,value:t.id},{default:o(()=>[h(i(t.name),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value","placeholder"])]),_:1},8,["label"]),s(b,{label:e.$t("crosschain.bridge_modal.toChain"),required:""},{default:o(()=>[s(j,{value:c.toChain,"onUpdate:value":n[3]||(n[3]=t=>c.toChain=t),placeholder:e.$t("crosschain.bridge_modal.toChainPlaceholder")},{default:o(()=>[(u(!0),m($,null,U(S.value,t=>(u(),x(T,{key:t.id,value:t.id,disabled:t.id===c.fromChain},{default:o(()=>[h(i(t.name),1)]),_:2},1032,["value","disabled"]))),128))]),_:1},8,["value","placeholder"])]),_:1},8,["label"]),s(b,{label:e.$t("crosschain.bridge_modal.amount"),required:""},{default:o(()=>[s(W,{value:c.amount,"onUpdate:value":n[4]||(n[4]=t=>c.amount=t),min:0,precision:6,style:{width:"100%"}},null,8,["value"])]),_:1},8,["label"]),s(b,{label:e.$t("crosschain.bridge_modal.asset")},{default:o(()=>[s(O,{value:c.asset,"onUpdate:value":n[5]||(n[5]=t=>c.asset=t),placeholder:e.$t("crosschain.bridge_modal.assetPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),s(b,{label:e.$t("crosschain.bridge_modal.sender")},{default:o(()=>[s(O,{value:c.sender,"onUpdate:value":n[6]||(n[6]=t=>c.sender=t),placeholder:e.$t("crosschain.bridge_modal.senderPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),s(b,{label:e.$t("crosschain.bridge_modal.recipient")},{default:o(()=>[s(O,{value:c.recipient,"onUpdate:value":n[7]||(n[7]=t=>c.recipient=t),placeholder:e.$t("crosschain.bridge_modal.recipientPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),s(G,{open:J.value,"onUpdate:open":n[16]||(n[16]=t=>J.value=t),title:e.$t("crosschain.swap_modal.title"),"confirm-loading":ee.value,width:540,"ok-text":e.$t("crosschain.swap_modal.ok"),"cancel-text":e.$t("crosschain.swap_modal.cancel"),onOk:je,onCancel:be},{default:o(()=>[s(X,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:o(()=>[s(b,{label:e.$t("crosschain.swap_modal.fromChain"),required:""},{default:o(()=>[s(j,{value:d.fromChain,"onUpdate:value":n[9]||(n[9]=t=>d.fromChain=t),placeholder:e.$t("crosschain.swap_modal.fromChainPlaceholder")},{default:o(()=>[(u(!0),m($,null,U(S.value,t=>(u(),x(T,{key:t.id,value:t.id},{default:o(()=>[h(i(t.name),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value","placeholder"])]),_:1},8,["label"]),s(b,{label:e.$t("crosschain.swap_modal.toChain"),required:""},{default:o(()=>[s(j,{value:d.toChain,"onUpdate:value":n[10]||(n[10]=t=>d.toChain=t),placeholder:e.$t("crosschain.swap_modal.toChainPlaceholder")},{default:o(()=>[(u(!0),m($,null,U(S.value,t=>(u(),x(T,{key:t.id,value:t.id,disabled:t.id===d.fromChain},{default:o(()=>[h(i(t.name),1)]),_:2},1032,["value","disabled"]))),128))]),_:1},8,["value","placeholder"])]),_:1},8,["label"]),s(b,{label:e.$t("crosschain.swap_modal.amount"),required:""},{default:o(()=>[s(W,{value:d.amount,"onUpdate:value":n[11]||(n[11]=t=>d.amount=t),min:0,precision:6,style:{width:"100%"}},null,8,["value"])]),_:1},8,["label"]),s(b,{label:e.$t("crosschain.swap_modal.fromAsset")},{default:o(()=>[s(O,{value:d.fromAsset,"onUpdate:value":n[12]||(n[12]=t=>d.fromAsset=t),placeholder:e.$t("crosschain.swap_modal.assetPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),s(b,{label:e.$t("crosschain.swap_modal.toAsset")},{default:o(()=>[s(O,{value:d.toAsset,"onUpdate:value":n[13]||(n[13]=t=>d.toAsset=t),placeholder:e.$t("crosschain.swap_modal.assetPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),s(b,{label:e.$t("crosschain.swap_modal.counterparty")},{default:o(()=>[s(O,{value:d.counterparty,"onUpdate:value":n[14]||(n[14]=t=>d.counterparty=t),placeholder:e.$t("crosschain.swap_modal.counterpartyPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),s(b,{label:e.$t("crosschain.swap_modal.timeoutMs")},{default:o(()=>[s(W,{value:d.timeoutMs,"onUpdate:value":n[15]||(n[15]=t=>d.timeoutMs=t),min:0,placeholder:e.$t("crosschain.swap_modal.timeoutPlaceholder"),style:{width:"100%"}},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),s(G,{open:K.value,"onUpdate:open":n[21]||(n[21]=t=>K.value=t),title:e.$t("crosschain.message_modal.title"),"confirm-loading":te.value,width:520,"ok-text":e.$t("crosschain.message_modal.ok"),"cancel-text":e.$t("crosschain.message_modal.cancel"),onOk:Me,onCancel:ve},{default:o(()=>[s(X,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:o(()=>[s(b,{label:e.$t("crosschain.message_modal.fromChain"),required:""},{default:o(()=>[s(j,{value:y.fromChain,"onUpdate:value":n[17]||(n[17]=t=>y.fromChain=t),placeholder:e.$t("crosschain.message_modal.fromChainPlaceholder")},{default:o(()=>[(u(!0),m($,null,U(S.value,t=>(u(),x(T,{key:t.id,value:t.id},{default:o(()=>[h(i(t.name),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value","placeholder"])]),_:1},8,["label"]),s(b,{label:e.$t("crosschain.message_modal.toChain"),required:""},{default:o(()=>[s(j,{value:y.toChain,"onUpdate:value":n[18]||(n[18]=t=>y.toChain=t),placeholder:e.$t("crosschain.message_modal.toChainPlaceholder")},{default:o(()=>[(u(!0),m($,null,U(S.value,t=>(u(),x(T,{key:t.id,value:t.id,disabled:t.id===y.fromChain},{default:o(()=>[h(i(t.name),1)]),_:2},1032,["value","disabled"]))),128))]),_:1},8,["value","placeholder"])]),_:1},8,["label"]),s(b,{label:e.$t("crosschain.message_modal.payload")},{default:o(()=>[s(Be,{value:y.payload,"onUpdate:value":n[19]||(n[19]=t=>y.payload=t),"auto-size":{minRows:3,maxRows:8}},null,8,["value"])]),_:1},8,["label"]),s(b,{label:e.$t("crosschain.message_modal.contract")},{default:o(()=>[s(O,{value:y.contract,"onUpdate:value":n[20]||(n[20]=t=>y.contract=t),placeholder:e.$t("crosschain.message_modal.contractPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),s(G,{open:se.value,"onUpdate:open":n[25]||(n[25]=t=>se.value=t),title:e.$t("crosschain.fee_modal.title"),"confirm-loading":ae.value,width:480,"ok-text":e.$t("crosschain.fee_modal.ok"),"cancel-text":e.$t("crosschain.fee_modal.cancel"),onOk:Oe},{default:o(()=>[s(X,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:o(()=>[s(b,{label:e.$t("crosschain.fee_modal.fromChain"),required:""},{default:o(()=>[s(j,{value:w.fromChain,"onUpdate:value":n[22]||(n[22]=t=>w.fromChain=t)},{default:o(()=>[(u(!0),m($,null,U(S.value,t=>(u(),x(T,{key:t.id,value:t.id},{default:o(()=>[h(i(t.name),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),_:1},8,["label"]),s(b,{label:e.$t("crosschain.fee_modal.toChain"),required:""},{default:o(()=>[s(j,{value:w.toChain,"onUpdate:value":n[23]||(n[23]=t=>w.toChain=t)},{default:o(()=>[(u(!0),m($,null,U(S.value,t=>(u(),x(T,{key:t.id,value:t.id,disabled:t.id===w.fromChain},{default:o(()=>[h(i(t.name),1)]),_:2},1032,["value","disabled"]))),128))]),_:1},8,["value"])]),_:1},8,["label"]),s(b,{label:e.$t("crosschain.fee_modal.amount"),required:""},{default:o(()=>[s(W,{value:w.amount,"onUpdate:value":n[24]||(n[24]=t=>w.amount=t),min:0,precision:6,style:{width:"100%"}},null,8,["value"])]),_:1},8,["label"])]),_:1}),z.value?(u(),x(M,{key:0,size:"small",style:{background:"var(--bg-base)","margin-top":"8px"}},{default:o(()=>[s(N,{title:e.$t("crosschain.fee_modal.resultTitle"),value:z.value.fee,precision:4,suffix:z.value.currency,"value-style":{color:"#1677ff"}},null,8,["title","value","suffix"]),f("div",Mt,[f("div",null,i(e.$t("crosschain.fee_modal.sourceFee",{fee:z.value.breakdown.sourceFee,currency:z.value.currency})),1),f("div",null,i(e.$t("crosschain.fee_modal.destFee",{fee:z.value.breakdown.destFee,currency:z.value.currency})),1),f("div",null,i(e.$t("crosschain.fee_modal.bridgeFee",{fee:z.value.breakdown.bridgeFee,currency:z.value.currency})),1)])]),_:1})):_("",!0)]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"])])}}},Ht=Ie(Ot,[["__scopeId","data-v-21e0fb7f"]]);export{Ht as default};
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import{E as ae,r as O,o as oe,x as le,M as p,R as o,P as a,u as d,c as t,N as s,Q as B,S as K,f as C,K as w,I as re,L as i,O as h,$ as Q,F as E,_ as M}from"./vendor-B6ToihkA.js";import{u as V}from"./ws-D_5-FRIb.js";import{u as ne}from"./chat-BQ-Nk2XY.js";import{_ as de}from"./index-Cw4v7ezB.js";import{R as ie,F as ue,a8 as J,l as X,M as Y,a7 as ce,a9 as ve,k as Z,aa as me,m as pe}from"./icons-DvZE-RKs.js";function he(){return{samples:0,compressedSamples:0,hitRate:0,totalSavedTokens:0,averageSavedTokens:0,totalOriginalTokens:0,totalCompressedTokens:0,netSavingsRate:0,variantDistribution:{},strategyDistribution:[],providerDistribution:[],modelDistribution:[]}}const fe=ae("dashboard",()=>{const H=O(!1),N=O(!1),c=O({wsStatus:"disconnected",activeLlm:null,activeModel:null,skillCount:0,sessionCount:0,providerCount:0,appRunning:!1,setupDone:!1,edition:"",mcpCount:null,noteCount:null}),F=O(""),b=O(he()),v=O({windowPreset:"all",provider:"",model:""});let y=null;function q(r=V()){y||(y=r.onRuntimeEvent(m=>{m.type==="compression:summary"?L(m.payload?.summary||{}):m.type==="session:start"?c.value.sessionCount=(c.value.sessionCount||0)+1:m.type==="session:end"&&(c.value.sessionCount=Math.max(0,(c.value.sessionCount||0)-1))}))}function A(){y&&(y(),y=null)}function L(r){b.value={...b.value,...r||{}}}function U(r){return r==="1h"?3600*1e3:r==="24h"?1440*60*1e3:r==="7d"?10080*60*1e3:null}function R(r){c.value.appRunning=r.includes("Desktop app running"),c.value.setupDone=r.includes("Setup completed");const m=r.match(/Edition:\s+(\S+)/i);m&&(c.value.edition=m[1]);const g=r.match(/LLM:\s+(\S+)\s+\(([^)]+)\)/i);if(g)c.value.activeLlm=g[1],c.value.activeModel=g[2];else{const $=r.match(/LLM:\s+(\S+)/i);$&&(c.value.activeLlm=$[1])}}async function f(){const r=V();q(r),N.value=!0;const m={type:"compression-stats",windowMs:U(v.value.windowPreset)};v.value.provider&&(m.provider=v.value.provider),v.value.model&&(m.model=v.value.model);try{const g=await r.sendRaw(m,1e4);L(g.summary||{})}catch{}finally{N.value=!1}}async function _(){const r=V();q(r),H.value=!0,c.value.wsStatus=r.status,F.value="";try{const[m,g]=await Promise.allSettled([r.execute("status",15e3),r.listSessions()]);if(m.status==="fulfilled"){const $=m.value.output;F.value=$.split(`
|
|
2
|
-
`).slice(0,20).join(`
|
|
3
|
-
`),R($)}g.status==="fulfilled"&&(c.value.sessionCount=g.value.length),Promise.allSettled([r.execute("skill sources",15e3),r.execute("llm providers",15e3)]).then(([$,D])=>{if($.status==="fulfilled"){const z=$.value.output.match(/(\d+)\s*(?:skills|技能)/i);z&&(c.value.skillCount=parseInt(z[1],10))}if(D.status==="fulfilled"){const I=D.value.output.match(/active[:\s]+(\S+)/i);I&&!c.value.activeLlm&&(c.value.activeLlm=I[1])}}),r.execute("mcp servers",1e4).then(({output:$})=>{const D=($.match(/^[a-z]/gm)||[]).length;c.value.mcpCount=D}).catch(()=>{c.value.mcpCount=0}),await f()}catch{}finally{H.value=!1}}return{loading:H,compressionLoading:N,stats:c,statusLog:F,compression:b,telemetryFilters:v,ensureRuntimeSubscription:q,stopRuntimeSubscription:A,refresh:_,refreshCompression:f,applyCompressionSummary:L,toWindowMs:U}}),be={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"20px"}},ye={class:"page-title"},_e={class:"page-sub"},ge={style:{display:"flex","align-items":"center",gap:"12px","flex-wrap":"wrap"}},$e={style:{color:"#91caff","font-weight":"600"}},ke={style:{color:"#4a6fa5","font-size":"11px","font-family":"monospace"}},we={class:"stat-header"},Ce={class:"stat-label"},Se={class:"stat-sub"},Re={class:"stat-header"},De={class:"stat-label"},ze={class:"stat-value",style:{color:"#91caff","font-size":"15px",overflow:"hidden","text-overflow":"ellipsis","white-space":"nowrap"}},Pe={class:"stat-sub",style:{overflow:"hidden","text-overflow":"ellipsis","white-space":"nowrap"}},je={class:"stat-header"},Le={class:"stat-label"},Te={class:"stat-value",style:{color:"#1677ff"}},Oe={class:"stat-sub"},Ee={class:"stat-header"},Me={class:"stat-label"},Ne={class:"stat-value",style:{color:"#c084fc"}},Fe={class:"stat-sub"},qe={class:"stat-header"},Ae={class:"stat-label"},Be={class:"stat-sub"},He={class:"stat-header"},Ue={class:"stat-label"},Ie={class:"stat-value",style:{color:"#13c2c2"}},Ve={class:"stat-sub"},Ge={class:"stat-header"},We={class:"stat-label"},Ke={class:"stat-value",style:{color:"#faad14"}},Qe={class:"stat-sub"},Je={class:"status-log"},Xe={class:"telemetry-filter"},Ye={class:"telemetry-filter-label"},Ze={class:"telemetry-filter"},xe={class:"telemetry-filter-label"},et={class:"telemetry-filter"},tt={class:"telemetry-filter-label"},st={class:"telemetry-card"},at={class:"telemetry-label"},ot={class:"telemetry-value"},lt={class:"telemetry-sub"},rt={class:"telemetry-card"},nt={class:"telemetry-label"},dt={class:"telemetry-value"},it={class:"telemetry-sub"},ut={class:"telemetry-card"},ct={class:"telemetry-label"},vt={class:"telemetry-value"},mt={class:"telemetry-sub"},pt={class:"telemetry-section"},ht={class:"telemetry-section-title"},ft={key:0,class:"telemetry-empty"},bt={key:1,class:"telemetry-list"},yt={class:"telemetry-section"},_t={class:"telemetry-section-title"},gt={key:0,class:"telemetry-empty"},$t={key:1,class:"telemetry-list"},kt={class:"telemetry-section"},wt={class:"telemetry-section-title"},Ct={key:0,class:"telemetry-empty"},St={key:1,class:"telemetry-list"},Rt={class:"telemetry-section"},Dt={class:"telemetry-section-title"},zt={key:0,class:"telemetry-empty"},Pt={key:1,class:"telemetry-list"},jt={style:{color:"#91caff"}},Lt={style:{color:"var(--text-muted)","font-family":"monospace","font-size":"11px"}},Tt={style:{color:"var(--text-secondary)","font-family":"monospace","font-size":"12px"}},Ot={style:{color:"var(--text-muted)"}},Et={__name:"Dashboard",setup(H){const N=re(),c=V(),F=ne(),b=fe(),v=window.__CC_CONFIG__||{},y=C(()=>v.mode==="project"),q="v5.0.3.5",A=C(()=>c.status),L=C(()=>b.loading),U=C(()=>b.statusLog),R=C(()=>b.telemetryFilters),f=C(()=>b.compression),_=C(()=>b.stats),r=C(()=>Object.entries(f.value.variantDistribution||{})),m=C(()=>f.value.providerDistribution||[]),g=C(()=>f.value.modelDistribution||[]);async function $(){await b.refresh()}async function D(){await b.refreshCompression()}function z(e){return`${((e||0)*100).toFixed(1)}%`}async function I(){await F.createSession("agent"),N.push("/chat")}return oe(()=>{b.ensureRuntimeSubscription(c),setTimeout($,300)}),le(()=>{b.stopRuntimeSubscription()}),(e,n)=>{const P=w("a-button"),G=w("a-tag"),k=w("a-card"),x=w("a-badge"),u=w("a-col"),S=w("a-row"),ee=w("a-space"),j=w("a-select-option"),W=w("a-select"),T=w("a-descriptions-item"),te=w("a-descriptions");return i(),p("div",null,[o("div",be,[o("div",null,[o("h2",ye,a(e.$t("dashboard.title")),1),o("p",_e,a(y.value?e.$t("dashboard.subProject",{name:d(v).projectName||e.$t("dashboard.unnamedProject")}):e.$t("dashboard.subGlobal")),1)]),t(P,{type:"primary",ghost:"",loading:L.value,onClick:$},{icon:s(()=>[t(d(ie))]),default:s(()=>[h(" "+a(e.$t("dashboard.refresh")),1)]),_:1},8,["loading"])]),y.value?(i(),B(k,{key:0,style:{background:"rgba(22,119,255,.08)","border-color":"rgba(22,119,255,.25)","margin-bottom":"16px"},size:"small"},{default:s(()=>[o("div",ge,[t(d(ue),{style:{color:"#1677ff","font-size":"18px"}}),o("div",null,[o("div",$e,a(d(v).projectName||e.$t("dashboard.projectBanner.fallbackName")),1),o("div",ke,a(d(v).projectRoot),1)]),t(G,{color:"blue",style:{"margin-left":"auto"}},{default:s(()=>[h(a(e.$t("dashboard.projectBanner.tag")),1)]),_:1})])]),_:1})):K("",!0),t(S,{gutter:[12,12],style:{"margin-bottom":"16px"}},{default:s(()=>[t(u,{xs:24,sm:12,lg:6},{default:s(()=>[t(k,{class:"stat-card gateway-card",size:"small"},{default:s(()=>[o("div",we,[o("span",Ce,a(e.$t("dashboard.stats.wsGateway")),1),t(x,{status:A.value==="connected"?"success":"error"},null,8,["status"])]),o("div",{class:"stat-value",style:Q({color:A.value==="connected"?"#52c41a":"#888"})},a(A.value==="connected"?e.$t("dashboard.stats.wsRunning"):e.$t("dashboard.stats.wsDisconnected")),5),o("div",Se,a(e.$t("dashboard.stats.wsPortLine",{port:d(v).wsPort||18800,host:d(v).wsHost||"127.0.0.1"})),1)]),_:1})]),_:1}),t(u,{xs:24,sm:12,lg:6},{default:s(()=>[t(k,{class:"stat-card",size:"small"},{default:s(()=>[o("div",Re,[o("span",De,a(e.$t("dashboard.stats.currentLlm")),1),t(d(J),{style:{color:"#1677ff"}})]),o("div",ze,a(_.value.activeLlm||e.$t("dashboard.stats.llmUnconfigured")),1),o("div",Pe,a(_.value.activeModel||"—"),1)]),_:1})]),_:1}),t(u,{xs:24,sm:12,lg:6},{default:s(()=>[t(k,{class:"stat-card",size:"small",style:{cursor:"pointer"},onClick:n[0]||(n[0]=l=>e.$router.push("/skills"))},{default:s(()=>[o("div",je,[o("span",Le,a(e.$t("dashboard.stats.skills")),1),t(d(X),{style:{color:"#1677ff"}})]),o("div",Te,a(_.value.skillCount||"—"),1),o("div",Oe,a(e.$t("dashboard.stats.skillsHint")),1)]),_:1})]),_:1}),t(u,{xs:24,sm:12,lg:6},{default:s(()=>[t(k,{class:"stat-card",size:"small",style:{cursor:"pointer"},onClick:n[1]||(n[1]=l=>e.$router.push("/chat"))},{default:s(()=>[o("div",Ee,[o("span",Me,a(e.$t("dashboard.stats.sessions")),1),t(d(Y),{style:{color:"#722ed1"}})]),o("div",Ne,a(_.value.sessionCount),1),o("div",Fe,a(e.$t("dashboard.stats.sessionsHint")),1)]),_:1})]),_:1})]),_:1}),t(S,{gutter:[12,12],style:{"margin-bottom":"16px"}},{default:s(()=>[t(u,{xs:24,sm:8},{default:s(()=>[t(k,{class:"stat-card",size:"small"},{default:s(()=>[o("div",qe,[o("span",Ae,a(e.$t("dashboard.stats.appStatus")),1),t(d(ce),{style:Q({color:_.value.appRunning?"#52c41a":"#888"})},null,8,["style"])]),o("div",{class:"stat-value",style:Q({color:_.value.appRunning?"#52c41a":"#888",fontSize:"15px"})},a(_.value.appRunning?e.$t("dashboard.stats.appRunning"):_.value.setupDone?e.$t("dashboard.stats.appReady"):e.$t("dashboard.stats.appNotStarted")),5),o("div",Be,a(e.$t("dashboard.stats.edition",{name:_.value.edition||"Community"})),1)]),_:1})]),_:1}),t(u,{xs:24,sm:8},{default:s(()=>[t(k,{class:"stat-card",size:"small",style:{cursor:"pointer"},onClick:n[2]||(n[2]=l=>e.$router.push("/mcp"))},{default:s(()=>[o("div",He,[o("span",Ue,a(e.$t("dashboard.stats.mcp")),1),t(d(ve),{style:{color:"#13c2c2"}})]),o("div",Ie,a(_.value.mcpCount??"—"),1),o("div",Ve,a(e.$t("dashboard.stats.mcpHint")),1)]),_:1})]),_:1}),t(u,{xs:24,sm:8},{default:s(()=>[t(k,{class:"stat-card",size:"small",style:{cursor:"pointer"},onClick:n[3]||(n[3]=l=>e.$router.push("/notes"))},{default:s(()=>[o("div",Ge,[o("span",We,a(e.$t("dashboard.stats.notes")),1),t(d(Z),{style:{color:"#faad14"}})]),o("div",Ke,a(_.value.noteCount??"—"),1),o("div",Qe,a(e.$t("dashboard.stats.notesHint")),1)]),_:1})]),_:1})]),_:1}),t(S,{gutter:[16,16]},{default:s(()=>[t(u,{xs:24,lg:10},{default:s(()=>[t(k,{title:e.$t("dashboard.quick.title"),style:{background:"var(--bg-card)","border-color":"var(--border-color)",height:"100%"}},{default:s(()=>[t(ee,{direction:"vertical",style:{width:"100%"},size:"middle"},{default:s(()=>[t(P,{type:"primary",block:"",onClick:n[4]||(n[4]=l=>e.$router.push("/chat"))},{icon:s(()=>[t(d(Y))]),default:s(()=>[h(" "+a(y.value?e.$t("dashboard.quick.enterProjectChat"):e.$t("dashboard.quick.newAiChat")),1)]),_:1}),t(P,{block:"",onClick:I,style:{background:"rgba(114,46,209,.12)","border-color":"#722ed1",color:"#722ed1"}},{icon:s(()=>[t(d(J))]),default:s(()=>[h(" "+a(e.$t("dashboard.quick.startAgent")),1)]),_:1}),t(S,{gutter:8},{default:s(()=>[t(u,{span:12},{default:s(()=>[t(P,{block:"",onClick:n[5]||(n[5]=l=>e.$router.push("/services")),style:{background:"var(--bg-card-hover)","border-color":"var(--border-color)"}},{icon:s(()=>[t(d(me))]),default:s(()=>[h(" "+a(e.$t("dashboard.quick.services")),1)]),_:1})]),_:1}),t(u,{span:12},{default:s(()=>[t(P,{block:"",onClick:n[6]||(n[6]=l=>e.$router.push("/logs")),style:{background:"var(--bg-card-hover)","border-color":"var(--border-color)"}},{icon:s(()=>[t(d(Z))]),default:s(()=>[h(" "+a(e.$t("dashboard.quick.logs")),1)]),_:1})]),_:1})]),_:1}),t(S,{gutter:8},{default:s(()=>[t(u,{span:12},{default:s(()=>[t(P,{block:"",onClick:n[7]||(n[7]=l=>e.$router.push("/skills")),style:{background:"var(--bg-card-hover)","border-color":"var(--border-color)"}},{icon:s(()=>[t(d(X))]),default:s(()=>[h(" "+a(e.$t("dashboard.quick.skills")),1)]),_:1})]),_:1}),t(u,{span:12},{default:s(()=>[t(P,{block:"",onClick:n[8]||(n[8]=l=>e.$router.push("/providers")),style:{background:"var(--bg-card-hover)","border-color":"var(--border-color)"}},{icon:s(()=>[t(d(pe))]),default:s(()=>[h(" "+a(e.$t("dashboard.quick.providers")),1)]),_:1})]),_:1})]),_:1})]),_:1})]),_:1},8,["title"])]),_:1}),t(u,{xs:24,lg:14},{default:s(()=>[t(k,{title:e.$t("dashboard.status.title"),style:{background:"var(--bg-card)","border-color":"var(--border-color)"},loading:L.value},{extra:s(()=>[t(P,{type:"link",size:"small",onClick:n[9]||(n[9]=l=>e.$router.push("/logs"))},{default:s(()=>[h(a(e.$t("dashboard.status.more")),1)]),_:1})]),default:s(()=>[o("pre",Je,a(U.value||e.$t("dashboard.status.placeholder")),1)]),_:1},8,["title","loading"])]),_:1})]),_:1}),t(k,{title:e.$t("dashboard.telemetry.title"),style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-top":"16px"},loading:L.value},{default:s(()=>[t(S,{gutter:[12,12],style:{"margin-bottom":"12px"}},{default:s(()=>[t(u,{xs:24,md:8},{default:s(()=>[o("div",Xe,[o("div",Ye,a(e.$t("dashboard.telemetry.filterWindow")),1),t(W,{value:R.value.windowPreset,"onUpdate:value":n[10]||(n[10]=l=>R.value.windowPreset=l),style:{width:"100%"},onChange:D},{default:s(()=>[t(j,{value:"all"},{default:s(()=>[h(a(e.$t("dashboard.telemetry.windowAll")),1)]),_:1}),t(j,{value:"1h"},{default:s(()=>[h(a(e.$t("dashboard.telemetry.window1h")),1)]),_:1}),t(j,{value:"24h"},{default:s(()=>[h(a(e.$t("dashboard.telemetry.window24h")),1)]),_:1}),t(j,{value:"7d"},{default:s(()=>[h(a(e.$t("dashboard.telemetry.window7d")),1)]),_:1})]),_:1},8,["value"])])]),_:1}),t(u,{xs:24,md:8},{default:s(()=>[o("div",Ze,[o("div",xe,a(e.$t("dashboard.telemetry.filterProvider")),1),t(W,{value:R.value.provider,"onUpdate:value":n[11]||(n[11]=l=>R.value.provider=l),style:{width:"100%"},onChange:D},{default:s(()=>[t(j,{value:""},{default:s(()=>[h(a(e.$t("dashboard.telemetry.providerAll")),1)]),_:1}),(i(!0),p(E,null,M(m.value,l=>(i(),B(j,{key:l.key,value:l.key},{default:s(()=>[h(a(l.key),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])])]),_:1}),t(u,{xs:24,md:8},{default:s(()=>[o("div",et,[o("div",tt,a(e.$t("dashboard.telemetry.filterModel")),1),t(W,{value:R.value.model,"onUpdate:value":n[12]||(n[12]=l=>R.value.model=l),style:{width:"100%"},onChange:D},{default:s(()=>[t(j,{value:""},{default:s(()=>[h(a(e.$t("dashboard.telemetry.modelAll")),1)]),_:1}),(i(!0),p(E,null,M(g.value,l=>(i(),B(j,{key:l.key,value:l.key},{default:s(()=>[h(a(l.key),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])])]),_:1})]),_:1}),t(S,{gutter:[12,12]},{default:s(()=>[t(u,{xs:24,sm:8},{default:s(()=>[o("div",st,[o("div",at,a(e.$t("dashboard.telemetry.hitRate")),1),o("div",ot,a(z(f.value.hitRate)),1),o("div",lt,a(e.$t("dashboard.telemetry.hitRateSub",{compressed:f.value.compressedSamples,total:f.value.samples})),1)])]),_:1}),t(u,{xs:24,sm:8},{default:s(()=>[o("div",rt,[o("div",nt,a(e.$t("dashboard.telemetry.savedTokens")),1),o("div",dt,a(f.value.totalSavedTokens),1),o("div",it,a(e.$t("dashboard.telemetry.savedTokensSub",{avg:f.value.averageSavedTokens})),1)])]),_:1}),t(u,{xs:24,sm:8},{default:s(()=>[o("div",ut,[o("div",ct,a(e.$t("dashboard.telemetry.netSavingsRate")),1),o("div",vt,a(z(f.value.netSavingsRate)),1),o("div",mt,a(e.$t("dashboard.telemetry.netSavingsRateSub",{original:f.value.totalOriginalTokens,compressed:f.value.totalCompressedTokens})),1)])]),_:1})]),_:1}),t(S,{gutter:[16,16],style:{"margin-top":"12px"}},{default:s(()=>[t(u,{xs:24,lg:12},{default:s(()=>[o("div",pt,[o("div",ht,a(e.$t("dashboard.telemetry.strategyDistribution")),1),f.value.strategyDistribution.length===0?(i(),p("div",ft,a(e.$t("dashboard.telemetry.strategyEmpty")),1)):(i(),p("div",bt,[(i(!0),p(E,null,M(f.value.strategyDistribution.slice(0,6),l=>(i(),p("div",{key:l.strategy,class:"telemetry-row"},[o("span",null,a(l.strategy),1),o("span",null,a(e.$t("dashboard.telemetry.strategyRow",{hits:l.hits,rate:z(l.hitRate)})),1)]))),128))]))])]),_:1}),t(u,{xs:24,lg:12},{default:s(()=>[o("div",yt,[o("div",_t,a(e.$t("dashboard.telemetry.variantDistribution")),1),r.value.length===0?(i(),p("div",gt,a(e.$t("dashboard.telemetry.variantEmpty")),1)):(i(),p("div",$t,[(i(!0),p(E,null,M(r.value,([l,se])=>(i(),p("div",{key:l,class:"telemetry-row"},[o("span",null,a(l),1),o("span",null,a(e.$t("dashboard.telemetry.variantRow",{count:se})),1)]))),128))]))])]),_:1})]),_:1}),t(S,{gutter:[16,16],style:{"margin-top":"12px"}},{default:s(()=>[t(u,{xs:24,lg:12},{default:s(()=>[o("div",kt,[o("div",wt,a(e.$t("dashboard.telemetry.providerSlice")),1),m.value.length===0?(i(),p("div",Ct,a(e.$t("dashboard.telemetry.providerEmpty")),1)):(i(),p("div",St,[(i(!0),p(E,null,M(m.value.slice(0,6),l=>(i(),p("div",{key:l.key,class:"telemetry-row"},[o("span",null,a(l.key),1),o("span",null,a(e.$t("dashboard.telemetry.providerRow",{samples:l.samples,rate:z(l.hitRate)})),1)]))),128))]))])]),_:1}),t(u,{xs:24,lg:12},{default:s(()=>[o("div",Rt,[o("div",Dt,a(e.$t("dashboard.telemetry.modelSlice")),1),g.value.length===0?(i(),p("div",zt,a(e.$t("dashboard.telemetry.modelEmpty")),1)):(i(),p("div",Pt,[(i(!0),p(E,null,M(g.value.slice(0,6),l=>(i(),p("div",{key:l.key,class:"telemetry-row"},[o("span",null,a(l.key),1),o("span",null,a(e.$t("dashboard.telemetry.modelRow",{samples:l.samples,saved:l.savedTokens})),1)]))),128))]))])]),_:1})]),_:1})]),_:1},8,["title","loading"]),t(k,{title:e.$t("dashboard.info.title"),style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-top":"16px"}},{default:s(()=>[t(te,{column:{xs:1,sm:2,lg:3},size:"small"},{default:s(()=>[t(T,{label:e.$t("dashboard.info.panelMode")},{default:s(()=>[t(G,{color:y.value?"blue":"purple"},{default:s(()=>[h(a(y.value?e.$t("dashboard.info.modeProject"):e.$t("dashboard.info.modeGlobal")),1)]),_:1},8,["color"])]),_:1},8,["label"]),y.value?(i(),B(T,{key:0,label:e.$t("dashboard.info.projectName")},{default:s(()=>[o("span",jt,a(d(v).projectName||"—"),1)]),_:1},8,["label"])):K("",!0),y.value?(i(),B(T,{key:1,label:e.$t("dashboard.info.projectPath")},{default:s(()=>[o("span",Lt,a(d(v).projectRoot),1)]),_:1},8,["label"])):K("",!0),t(T,{label:e.$t("dashboard.info.websocket")},{default:s(()=>[o("span",Tt," ws://"+a(d(v).wsHost||"127.0.0.1")+":"+a(d(v).wsPort||18800),1)]),_:1},8,["label"]),t(T,{label:e.$t("dashboard.info.auth")},{default:s(()=>[t(G,{color:d(v).wsToken?"green":"default",style:{"font-size":"11px"}},{default:s(()=>[h(a(d(v).wsToken?e.$t("dashboard.info.authEnabled"):e.$t("dashboard.info.authDisabled")),1)]),_:1},8,["color"])]),_:1},8,["label"]),t(T,{label:e.$t("dashboard.info.version")},{default:s(()=>[o("span",Ot,a(d(q)),1)]),_:1},8,["label"])]),_:1})]),_:1},8,["title"])])}}},Bt=de(Et,[["__scopeId","data-v-bf6b8d82"]]);export{Bt as default};
|