chainlesschain 0.162.17 → 0.162.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +3 -3
- package/src/assets/web-panel/.build-hash +1 -1
- package/src/assets/web-panel/assets/{AIOps-BnOiVQsQ.js → AIOps-VbMLpnCu.js} +1 -1
- package/src/assets/web-panel/assets/{ActionButton-Tw6tLfY1.js → ActionButton-BR6BrZ2w.js} +1 -1
- package/src/assets/web-panel/assets/{Analytics-Des59eT3.js → Analytics-DWN2iHDA.js} +2 -2
- package/src/assets/web-panel/assets/AppLayout-CyBXOO_H.js +3 -0
- package/src/assets/web-panel/assets/{AppLayout-BLCe1k8m.css → AppLayout-DleZFgpe.css} +1 -1
- package/src/assets/web-panel/assets/{Audit-JX1upUxG.js → Audit-Cu5a4b5S.js} +1 -1
- package/src/assets/web-panel/assets/{Backup-ByvQLRhY.js → Backup-D0vrJYkS.js} +1 -1
- package/src/assets/web-panel/assets/{BaseInput-DC-h8Hd-.js → BaseInput-DnFk3wDi.js} +1 -1
- package/src/assets/web-panel/assets/{Chat-D9dJ3NKb.js → Chat-DFMa9lEz.js} +3 -3
- package/src/assets/web-panel/assets/ChatBubbleRenderer-CO908iBt.css +1 -0
- package/src/assets/web-panel/assets/ChatBubbleRenderer-CpVazmEP.js +1 -0
- package/src/assets/web-panel/assets/{Checkbox-n3tD-95B.js → Checkbox-J23wKgNR.js} +1 -1
- package/src/assets/web-panel/assets/{Codegen-BV9t0CmU.js → Codegen-Ca6Z4r1p.js} +1 -1
- package/src/assets/web-panel/assets/{Col-4KhPnXFB.js → Col-BZ3XsxN2.js} +1 -1
- package/src/assets/web-panel/assets/{Community-R1hZqHEr.js → Community-DhK5H5dD.js} +1 -1
- package/src/assets/web-panel/assets/{Compact-Bo4r1Z3L.js → Compact-DjJMyddV.js} +1 -1
- package/src/assets/web-panel/assets/{Compliance-Dwywk8U2.js → Compliance-Bup3Rk9z.js} +1 -1
- package/src/assets/web-panel/assets/{Cowork-DTBwVdcR.js → Cowork-BqsPMIpo.js} +3 -3
- package/src/assets/web-panel/assets/{Cron-BrveD2Al.js → Cron-Ca69LFf-.js} +1 -1
- package/src/assets/web-panel/assets/{Crosschain-C63oZCeg.js → Crosschain-mTB21YwK.js} +1 -1
- package/src/assets/web-panel/assets/{DID-Cyfo7zh4.js → DID-C1_Eree4.js} +2 -2
- package/src/assets/web-panel/assets/{Dashboard-_EOI1Ax4.js → Dashboard-L2OWv5io.js} +2 -2
- package/src/assets/web-panel/assets/{Dropdown-BWYHGHO3.js → Dropdown-CpqNwurh.js} +1 -1
- package/src/assets/web-panel/assets/EmailListRenderer-CVJ1j3Ll.css +1 -0
- package/src/assets/web-panel/assets/EmailListRenderer-Mo7D9ADF.js +1 -0
- package/src/assets/web-panel/assets/{Federation-CU03AB2d.js → Federation-COTeKl2R.js} +1 -1
- package/src/assets/web-panel/assets/{FormItemContext-DECACp9C.js → FormItemContext-0oTTQ9MI.js} +1 -1
- package/src/assets/web-panel/assets/GenericCardRenderer-DrMs3upM.js +1 -0
- package/src/assets/web-panel/assets/GenericCardRenderer-DtJFcJYl.css +1 -0
- package/src/assets/web-panel/assets/{Git-BhpPR-ck.js → Git-C6eFUBhz.js} +2 -2
- package/src/assets/web-panel/assets/{Governance-BtpmvOHi.js → Governance-5ivL10kw.js} +1 -1
- package/src/assets/web-panel/assets/{Inference-DfPuEW02.js → Inference-DcERJUS_.js} +1 -1
- package/src/assets/web-panel/assets/{KnowledgeGraph-CeA_2NFe.js → KnowledgeGraph-Dm1eQ_Hv.js} +1 -1
- package/src/assets/web-panel/assets/{Logs-C_ozF-bn.js → Logs-Cjt-JTuL.js} +1 -1
- package/src/assets/web-panel/assets/{Marketplace-WgBvu6Ma.js → Marketplace-fNDRN8YJ.js} +1 -1
- package/src/assets/web-panel/assets/{McpTools-CNIz8liM.js → McpTools-kKgzl9Bb.js} +3 -3
- package/src/assets/web-panel/assets/{Memory-DEN8NgRg.js → Memory-BdJujXCH.js} +2 -2
- package/src/assets/web-panel/assets/{MobileBridge-CP0rj-Fx.js → MobileBridge-lmvJfnpK.js} +1 -1
- package/src/assets/web-panel/assets/{MobileProjects-x3zDbPDI.js → MobileProjects-ZM-DVPhi.js} +1 -1
- package/src/assets/web-panel/assets/{Mtc-CC4PEFJV.js → Mtc-CeoaWgzU.js} +1 -1
- package/src/assets/web-panel/assets/{MtcAudit-BHB0GvyW.js → MtcAudit-CRvKTLqr.js} +1 -1
- package/src/assets/web-panel/assets/{Multisig-BUPfLbde.js → Multisig-DnzFw69O.js} +2 -2
- package/src/assets/web-panel/assets/{NLProgramming-DNOkByM8.js → NLProgramming-0xP2rtGN.js} +1 -1
- package/src/assets/web-panel/assets/{Notes-U-RIv-kE.js → Notes-tJpp3z8e.js} +1 -1
- package/src/assets/web-panel/assets/{NotificationSettings-B-q6tsxf.js → NotificationSettings-CRdpEoHX.js} +1 -1
- package/src/assets/web-panel/assets/OrderTableRenderer-BEH9lAIb.js +1 -0
- package/src/assets/web-panel/assets/OrderTableRenderer-BnOISpKI.css +1 -0
- package/src/assets/web-panel/assets/{Organization-DJLNuZ2_.js → Organization-Dhwy6dXT.js} +4 -4
- package/src/assets/web-panel/assets/{Overflow-BxTl0aeE.js → Overflow-COwwTMb-.js} +1 -1
- package/src/assets/web-panel/assets/{P2P-Czzalu_0.js → P2P-79YWb-cn.js} +1 -1
- package/src/assets/web-panel/assets/PdhVaultBrowser-B9ZGFpn4.css +1 -0
- package/src/assets/web-panel/assets/PdhVaultBrowser-Dhn5S3Vs.js +7 -0
- package/src/assets/web-panel/assets/{Permissions-BBw06EGK.js → Permissions-ELRvDOlY.js} +3 -3
- package/src/assets/web-panel/assets/{PersonalDataHub-Dvaa8niQ.css → PersonalDataHub-D0ncF92t.css} +1 -1
- package/src/assets/web-panel/assets/PersonalDataHub-DIWbfS5k.js +1 -0
- package/src/assets/web-panel/assets/{Pipeline-qLLWNe2i.js → Pipeline-Dzi1zmAr.js} +1 -1
- package/src/assets/web-panel/assets/Privacy-BYzWkaRt.js +1 -0
- package/src/assets/web-panel/assets/{ProjectInit-CmJ0VPGy.js → ProjectInit-D_5DqLSS.js} +2 -2
- package/src/assets/web-panel/assets/{ProjectSettings-D1Xm2EwO.js → ProjectSettings-DrAAYJgR.js} +1 -1
- package/src/assets/web-panel/assets/{Projects-DLN-awqS.js → Projects-BOrF4_X8.js} +1 -1
- package/src/assets/web-panel/assets/{Providers-D164DGWo.js → Providers-DYLWZVe4.js} +1 -1
- package/src/assets/web-panel/assets/{QuickAsk-BRCH7WgH.js → QuickAsk-k76cZTaF.js} +1 -1
- package/src/assets/web-panel/assets/{Recommend-BWZhT_-2.js → Recommend-CXM4p6RB.js} +1 -1
- package/src/assets/web-panel/assets/Reputation-DLnLpz8L.js +1 -0
- package/src/assets/web-panel/assets/{Row-BbuTB-ny.js → Row-BavvTUrL.js} +1 -1
- package/src/assets/web-panel/assets/{RssFeed-CLegyrrb.js → RssFeed-CtCarC8_.js} +3 -3
- package/src/assets/web-panel/assets/{Search-Bz41pkvW.js → Search-CJcDGc1x.js} +1 -1
- package/src/assets/web-panel/assets/{Security-D4NWRpgV.js → Security-DB3GmnY9.js} +3 -3
- package/src/assets/web-panel/assets/{Services-CP_6SXST.js → Services-BWEvVHhz.js} +2 -2
- package/src/assets/web-panel/assets/{Skeleton-CdRO3MnV.js → Skeleton-BHbixeGV.js} +1 -1
- package/src/assets/web-panel/assets/{Skills-BmghgIL3.js → Skills-DWwIjvjl.js} +1 -1
- package/src/assets/web-panel/assets/{Sla-DjAIXxkm.js → Sla-C1Qu9o0j.js} +1 -1
- package/src/assets/web-panel/assets/{SpeechSettings-DYk-En4R.js → SpeechSettings-BiEysZg1.js} +1 -1
- package/src/assets/web-panel/assets/{SyncSettings-CglX98G4.js → SyncSettings-XlOLFUv2.js} +1 -1
- package/src/assets/web-panel/assets/{Tasks-BcLMTSP3.js → Tasks-BKjOcYxW.js} +1 -1
- package/src/assets/web-panel/assets/{Templates-BCs5bP8P.js → Templates-BVKjc9j-.js} +1 -1
- package/src/assets/web-panel/assets/{Tenant-B5jLtdWR.js → Tenant-C33WmSiJ.js} +1 -1
- package/src/assets/web-panel/assets/{Terminal-CZKKYYaA.js → Terminal-Dl8RJZHg.js} +1 -1
- package/src/assets/web-panel/assets/TimelineRenderer-CFN36N3H.js +1 -0
- package/src/assets/web-panel/assets/TimelineRenderer-DmztdsbF.css +1 -0
- package/src/assets/web-panel/assets/{Tokens-B8aHonMu.js → Tokens-Dy2kxiCA.js} +1 -1
- package/src/assets/web-panel/assets/{Trigger-D6jDjaX1.js → Trigger-C7bt0leJ.js} +1 -1
- package/src/assets/web-panel/assets/Trust-CVKbWEMH.js +1 -0
- package/src/assets/web-panel/assets/{UkeySign-B1IDXsz6.js → UkeySign-B91QGwbs.js} +1 -1
- package/src/assets/web-panel/assets/{VideoEditing-DHvglMzO.js → VideoEditing-C8xBqRiE.js} +1 -1
- package/src/assets/web-panel/assets/{Wallet-DAUh8j_b.js → Wallet-RW2IBbpH.js} +1 -1
- package/src/assets/web-panel/assets/{WebAuthn-D0Y8wGZt.js → WebAuthn-CZPv5ayn.js} +4 -4
- package/src/assets/web-panel/assets/{WorkflowEditor-BqZgQo4U.js → WorkflowEditor-CFCwic4a.js} +1 -1
- package/src/assets/web-panel/assets/{chat-CtfIYzWq.js → chat-PVfHUaHj.js} +1 -1
- package/src/assets/web-panel/assets/{colors-B6ZfKKgZ.js → colors-C4WA0-Iq.js} +1 -1
- package/src/assets/web-panel/assets/{compact-item--HQOl9D1.js → compact-item-DQfLwjbC.js} +1 -1
- package/src/assets/web-panel/assets/{createContext-Bf-YNOPI.js → createContext-31PSlu0j.js} +1 -1
- package/src/assets/web-panel/assets/{hasIn-D5G7UiYx.js → hasIn-Csltfg47.js} +1 -1
- package/src/assets/web-panel/assets/icons-AILO5ZcK.js +57 -0
- package/src/assets/web-panel/assets/index-3NsH3wNq.js +1 -0
- package/src/assets/web-panel/assets/{index-_ZD6hPvh.js → index-41v9Hflm.js} +1 -1
- package/src/assets/web-panel/assets/{index-B23hk7ZY.js → index-45Iyof95.js} +1 -1
- package/src/assets/web-panel/assets/{index-CcbuseEC.js → index-8IVdEMKr.js} +1 -1
- package/src/assets/web-panel/assets/{index-CVTgMzbI.js → index-B-aRUTIJ.js} +1 -1
- package/src/assets/web-panel/assets/{index-OSlN9c4x.js → index-BCxhSOsr.js} +1 -1
- package/src/assets/web-panel/assets/{index-BrJfwd9_.js → index-BCyTEqF7.js} +1 -1
- package/src/assets/web-panel/assets/{index-CAPj11l4.js → index-BD-K1g5z.js} +1 -1
- package/src/assets/web-panel/assets/{index-DJlTZ7oK.js → index-BLwrQAlK.js} +1 -1
- package/src/assets/web-panel/assets/{index-ByjAzHrC.js → index-Ba6cQs-y.js} +4 -4
- package/src/assets/web-panel/assets/{index-__qol0SM.js → index-BiFRGYGH.js} +1 -1
- package/src/assets/web-panel/assets/{index-DZyNnZb9.js → index-BqOmboiA.js} +1 -1
- package/src/assets/web-panel/assets/{index-UppuQXbk.js → index-C4gzD6Ra.js} +2 -2
- package/src/assets/web-panel/assets/{index-2QuOKVo1.js → index-CArRkfYM.js} +1 -1
- package/src/assets/web-panel/assets/{index-BWOeC8v6.js → index-CE8i90GF.js} +1 -1
- package/src/assets/web-panel/assets/{index-B75QpKcS.js → index-CEbbRpw2.js} +1 -1
- package/src/assets/web-panel/assets/{index-BKsNidiT.js → index-CEtPU50W.js} +1 -1
- package/src/assets/web-panel/assets/{index-g_d5tOWL.js → index-CIeFJLHG.js} +1 -1
- package/src/assets/web-panel/assets/{index-ofgv0VHh.js → index-CQWE2WKS.js} +1 -1
- package/src/assets/web-panel/assets/{index-BRPGyig2.js → index-C_k_btzK.js} +1 -1
- package/src/assets/web-panel/assets/{index-xOVop383.js → index-CbpUjcEf.js} +1 -1
- package/src/assets/web-panel/assets/{index-DIYydwQc.js → index-CdQUx-5Z.js} +1 -1
- package/src/assets/web-panel/assets/{index-CQIzU6GO.js → index-CfWk9Yzf.js} +1 -1
- package/src/assets/web-panel/assets/{index-CihsW323.js → index-Cgt2_bmM.js} +1 -1
- package/src/assets/web-panel/assets/{index-CkoQfJv0.js → index-CmzuBE2G.js} +1 -1
- package/src/assets/web-panel/assets/{index-BPvA_8ed.js → index-CpXm8DBk.js} +1 -1
- package/src/assets/web-panel/assets/{index-BtjPgDzA.js → index-DSO9eU_G.js} +1 -1
- package/src/assets/web-panel/assets/{index-CmVrKala.js → index-DUFwsCsD.js} +1 -1
- package/src/assets/web-panel/assets/{index-Dfm65OiJ.js → index-DVHR_To_.js} +1 -1
- package/src/assets/web-panel/assets/{index-CGG5O6Zh.js → index-DW-7sqm0.js} +1 -1
- package/src/assets/web-panel/assets/index-DWtc_qRj.js +1 -0
- package/src/assets/web-panel/assets/{index-BBSGKZ-l.js → index-DdrYhK__.js} +3 -3
- package/src/assets/web-panel/assets/{index-XwovMqXr.js → index-DfbOwhkA.js} +1 -1
- package/src/assets/web-panel/assets/{index-OY_eegoA.js → index-DpEj71nk.js} +1 -1
- package/src/assets/web-panel/assets/{index-Ca_5Za9D.js → index-DtUcq8Nn.js} +1 -1
- package/src/assets/web-panel/assets/{index--KnB-1F0.js → index-DuZKKJDi.js} +1 -1
- package/src/assets/web-panel/assets/{index-BOzNKGtD.js → index-Dymm64KM.js} +1 -1
- package/src/assets/web-panel/assets/{index-DzvrUpDp.js → index-P9rJg2C1.js} +1 -1
- package/src/assets/web-panel/assets/{index-DqJoAOhC.js → index-nAhW-NN4.js} +1 -1
- package/src/assets/web-panel/assets/{initDefaultProps-DjUNw-1y.js → initDefaultProps-DPk1oFCk.js} +1 -1
- package/src/assets/web-panel/assets/{motion-Cd6xXLlf.js → motion-CzQ1k8MU.js} +1 -1
- package/src/assets/web-panel/assets/{move-B_W-Y6JL.js → move-BCExaQ0x.js} +1 -1
- package/src/assets/web-panel/assets/{omit-BCZBLb_-.js → omit-D71nF5o_.js} +1 -1
- package/src/assets/web-panel/assets/{pickAttrs-CjDhGYLm.js → pickAttrs-pvCq8tx4.js} +1 -1
- package/src/assets/web-panel/assets/{placementArrow-CSC2rU9-.js → placementArrow-D8lSLg_0.js} +1 -1
- package/src/assets/web-panel/assets/{responsiveObserve-DnyswFkD.js → responsiveObserve-ZN6pVHvM.js} +1 -1
- package/src/assets/web-panel/assets/{slide-DujNhbuH.js → slide-VHxyZhFr.js} +1 -1
- package/src/assets/web-panel/assets/{statusUtils-U2lNCQiL.js → statusUtils-B0jFTTFP.js} +1 -1
- package/src/assets/web-panel/assets/{styleChecker-Ch2rQftE.js → styleChecker-Bc6FRYW9.js} +1 -1
- package/src/assets/web-panel/assets/{useFlexGapSupport-5XxNwjTL.js → useFlexGapSupport-D4YDiqxr.js} +1 -1
- package/src/assets/web-panel/assets/{useFs-pv2YfF-X.js → useFs-CQgQ7iah.js} +1 -1
- package/src/assets/web-panel/assets/usePersonalDataHub-LDh_Sq7B.js +1 -0
- package/src/assets/web-panel/assets/{vnode-CU0J2mVX.js → vnode-BwPvBDfI.js} +1 -1
- package/src/assets/web-panel/assets/{zoom-ZII_iqXl.js → zoom-r6u1_Sq8.js} +1 -1
- package/src/assets/web-panel/index.html +2 -2
- package/src/commands/__tests__/hub-ask.test.js +136 -0
- package/src/commands/ask.js +110 -43
- package/src/commands/hub.js +260 -26
- package/src/constants.js +7 -0
- package/src/gateways/ws/personal-data-hub-protocol.js +151 -9
- package/src/lib/host-adb-bridge.js +430 -0
- package/src/lib/personal-data-hub-wiring.js +85 -0
- package/src/assets/web-panel/assets/AppLayout-hku5aFqc.js +0 -3
- package/src/assets/web-panel/assets/PersonalDataHub-CmTx090l.js +0 -1
- package/src/assets/web-panel/assets/Privacy-CStpViYX.js +0 -1
- package/src/assets/web-panel/assets/Reputation-DSTNi8ge.js +0 -1
- package/src/assets/web-panel/assets/Trust-DX_BvTA9.js +0 -1
- package/src/assets/web-panel/assets/icons-BOPtEWK4.js +0 -57
- package/src/assets/web-panel/assets/index-B-xjGh0B.js +0 -1
- package/src/assets/web-panel/assets/index-B9RskCJ5.js +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{w as je,L as s,Q as h,N as e,c as t,M as w,R as p,F as B,Y as ue,Z as Ze,P as d,O as l,S as v,a1 as Je,f as ne,r as $,K as f,a as le,a4 as _t,o as bt,u as F,a0 as wt,$ as ht}from"./vendor-DhFY8mDK.js";import{u as xt,_ as Ie,d as L}from"./index-ByjAzHrC.js";import{R as Ve,aA as Ct,O as At,ak as Pt,h as $t,aB as Dt,Q as Mt,aC as Et,aD as Rt,y as It,q as St,aE as Ot,a2 as zt,ac as Ut,aF as Lt,m as Nt,e as Be}from"./icons-BOPtEWK4.js";function Re(D){if(!D)return D;if(D.error)throw new Error(D.error);return D.result!==void 0?D.result:D}function Ge(D,k,i,m,M){return typeof D.onMessage!="function"||typeof D._send!="function"?D.sendRaw({type:k,...i},M).then(Re):new Promise((C,y)=>{const g=typeof crypto<"u"&&crypto.randomUUID?crypto.randomUUID():`${Date.now()}-${Math.random().toString(36).slice(2)}`,I=`${k}.event`,E=`${k}.end`;let S=setTimeout(()=>{D.offMessage&&D.offMessage(g),y(new Error(`stream timeout (${M}ms): ${k}`))},M);const N=D.onMessage(g,P=>{if(!(!P||P.id!==g)){if(P.type===I&&typeof m=="function"){try{m(P.event||P)}catch{}return}if(P.type===E){clearTimeout(S),typeof N=="function"?N():D.offMessage&&D.offMessage(g),C(Re(P));return}P.type==="error"&&(clearTimeout(S),typeof N=="function"?N():D.offMessage&&D.offMessage(g),y(new Error(P.message||"stream error")))}});D._send({id:g,type:k,...i})})}function Se(){const D=xt(),k=(i,m={},M=3e4)=>D.sendRaw({type:i,...m},M).then(Re);return{async health(){return await k("personal-data-hub.health",{},8e3)},async stats(){return await k("personal-data-hub.stats",{},8e3)},async listAdapters(){return await k("personal-data-hub.list-adapters",{},5e3)},async syncAdapter(i,m={}){return await k("personal-data-hub.sync-adapter",{name:i,options:m},12e4)},async syncAll(i={}){return await k("personal-data-hub.sync-all",{options:i},6e5)},async registerMock({name:i="mock",count:m=20,seed:M=1}={}){return await k("personal-data-hub.register-mock",{name:i,count:m,seed:M})},async unregister(i){return await k("personal-data-hub.unregister",{name:i})},async ask(i,m={}){return await k("personal-data-hub.ask",{question:i,options:m},18e4)},async queryEvents(i={}){return await k("personal-data-hub.query-events",i,1e4)},async recentAudit(i={}){return await k("personal-data-hub.recent-audit",i,1e4)},async testEmailAuth(i){return await k("personal-data-hub.test-email-auth",{account:i},3e4)},async registerEmail(i,m={}){return await k("personal-data-hub.register-email",{account:i,opts:m},15e3)},async unregisterEmail(i){return await k("personal-data-hub.unregister-email",{email:i},5e3)},async listEmailAccounts(){return await k("personal-data-hub.list-email-accounts",{},5e3)},async eventDetail(i){return await k("personal-data-hub.event-detail",{eventId:i},5e3)},async syncAdapterStream(i,m={},M){return await Ge(D,"personal-data-hub.sync-adapter-stream",{name:i,options:m},M,6e5)},async syncAllStream(i={},m){return await Ge(D,"personal-data-hub.sync-all-stream",{options:i},m,9e5)},async registerAlipay(i,m={}){return await k("personal-data-hub.register-alipay",{account:i,opts:m},15e3)},async unregisterAlipay(i){return await k("personal-data-hub.unregister-alipay",{email:i},5e3)},async listAlipayAccounts(){return await k("personal-data-hub.list-alipay-accounts",{},5e3)},async importAlipayBill({zipPath:i,csvPath:m,zipPassword:M}={}){return await k("personal-data-hub.import-alipay-bill",{zipPath:i,csvPath:m,zipPassword:M},3e5)},async reviewQueueList(i=50){return await k("personal-data-hub.review-queue-list",{limit:i},5e3)},async reviewDecision(i,m){return await k("personal-data-hub.review-decision",{reviewId:i,decision:m},5e3)},async manualMerge(i,m){return await k("personal-data-hub.manual-merge",{aId:i,bId:m},5e3)},async manualUnmerge(i){return await k("personal-data-hub.manual-unmerge",{personId:i},5e3)},async resolverDrain(i=50){return await k("personal-data-hub.resolver-drain",{limit:i},18e4)},async resolverStats(){return await k("personal-data-hub.resolver-stats",{},5e3)},async skillsList(){return await k("personal-data-hub.skills-list",{},5e3)},async runSkill(i,m={}){return await k("personal-data-hub.run-skill",{name:i,options:m},12e4)},async openAichatLogin(i,m={}){return await k("personal-data-hub.aichat-open-login",{vendor:i,opts:m},1e4)},async probeAichatCookies(i,m){return await k("personal-data-hub.aichat-probe-cookies",{vendor:i,cookieHeader:m},1e4)},async registerAichatVendor(i,m,M={}){return await k("personal-data-hub.aichat-register-vendor",{vendor:i,cookies:m,opts:M},3e4)},async rotateAichatLogin(i){return await k("personal-data-hub.aichat-rotate-login",{vendor:i},1e4)},async listAichatAccounts(){return await k("personal-data-hub.list-aichat-accounts",{},5e3)},async unregisterAichat(i){return await k("personal-data-hub.unregister-aichat",{vendor:i},5e3)},async aichatHealthCheckOnce(){return await k("personal-data-hub.aichat-health-check-once",{},3e4)},async probeWechatEnv(){return await k("personal-data-hub.wechat-env-probe",{},15e3)},async registerWechat({account:i,dbPath:m,wechatDataPath:M,fridaOpts:C,keyProviderOverride:y}={}){return await k("personal-data-hub.register-wechat",{account:i,dbPath:m,wechatDataPath:M,fridaOpts:C,keyProviderOverride:y},45e3)},async listWechatAccounts(){return await k("personal-data-hub.list-wechat-accounts",{},5e3)},async unregisterWechat(i){return await k("personal-data-hub.unregister-wechat",{uin:i},5e3)}}}const Ht={key:0},qt={class:"vendor-head"},Tt={class:"hint"},Wt={class:"hint",style:{"margin-top":"4px"}},Ft={key:0,class:"hint",style:{"margin-top":"4px",color:"#ff4d4f"}},Qt={key:1},Kt={class:"hint"},Vt=["href"],Bt={class:"howto"},Gt=["href"],jt={key:3,style:{"margin-top":"8px"}},Zt={key:2,class:"kv",style:{"margin-top":"4px"}},Jt={key:3,class:"kv",style:{"margin-top":"4px",color:"#ff4d4f"}},Xt={key:2},Yt={__name:"AIChatWizard",props:{open:{type:Boolean,default:!1},existingAccounts:{type:Array,default:()=>[]}},emits:["update:open","registered"],setup(D,{emit:k}){const i=D,m=k,M=[{vendor:"deepseek",displayName:"DeepSeek",notes:"手机号 + 验证码登录",requiredCookies:["userToken"],cookieMaxAgeHintDays:30},{vendor:"kimi",displayName:"Kimi",notes:"手机号验证码登录",requiredCookies:["access_token"],cookieMaxAgeHintDays:30},{vendor:"tongyi",displayName:"通义千问",notes:"阿里云账号 SSO(过期较快)",requiredCookies:["login_aliyunid"],cookieMaxAgeHintDays:7},{vendor:"zhipu",displayName:"智谱清言",notes:"手机号 + 验证码",requiredCookies:["chatglm_token"],cookieMaxAgeHintDays:30},{vendor:"hunyuan",displayName:"腾讯混元",notes:"QQ / 微信 / 手机号",requiredCookies:["hy_token"],cookieMaxAgeHintDays:14},{vendor:"qianfan",displayName:"百度文心",notes:"百度账号",requiredCookies:["BDUSS"],cookieMaxAgeHintDays:7},{vendor:"coze",displayName:"字节扣子 Coze",notes:"字节统一 passport",requiredCookies:["sessionid"],cookieMaxAgeHintDays:14},{vendor:"dreamina",displayName:"即梦 Dreamina",notes:"字节图像生成",requiredCookies:["sessionid"],cookieMaxAgeHintDays:14},{vendor:"doubao",displayName:"豆包 Doubao",notes:"字节文本 AI",requiredCookies:["sessionid"],cookieMaxAgeHintDays:14}],C=Se(),y=$(1),g=$(null),I=$(""),E=$(null),S=$(null),N=$(null),P=le({open:!1,probe:!1,register:!1}),G=ne(()=>M.find(_=>_.vendor===g.value)||{}),x=ne(()=>y.value===1?"选择一家 AI 服务商":y.value===2?E.value?.fallbackMode==="paste"?"在外部浏览器登录,把 cookie 粘贴到下面":"在内嵌浏览器登录,主进程自动读取 cookie":"校验并写入本地加密 vault"),H=ne(()=>{const _=S.value;return _?_.reason==="UNKNOWN_VENDOR"?"未知厂商 — 请刷新页面或重选":_.reason==="PASTE_REQUIRED"?"请先粘贴 cookie 字符串":_.missingRequired?.length?`缺关键 cookie: ${_.missingRequired.join(", ")}`:_.reason||"cookie 校验失败":""}),O=ne(()=>{const _=N.value;return _?_.reason==="REQUIRED_COOKIES_MISSING"?`缺关键 cookie: ${(_.missingRequired||[]).join(", ")}`:_.reason==="VALIDATE_COOKIE_FAILED"?"厂商拒绝该 cookie(可能已过期或被风控)":_.reason==="ADAPTER_THREW"?`Adapter 抛错: ${_.error||"网络错误"}`:_.reason==="UNKNOWN_VENDOR"?"未知厂商":_.reason||"注册失败":"未知错误"});function u(_){return i.existingAccounts.some(o=>o&&o.vendor===_)}function q(_){return i.existingAccounts.find(o=>o&&o.vendor===_)||null}function T(_){const o=q(_);return o?o.lastHealth?o.lastHealth.ok?"ok":o.lastHealth.reason==="SPEC_VERSION_MISMATCH"?"mismatch":"fail":"unknown":null}function Q(_){const o=q(_);if(!o||!o.lastHealth||o.lastHealth.ok)return"";const A=o.lastHealth.reason;return A?A==="SPEC_VERSION_MISMATCH"?"cookie 规格已升级,请重新登录":A==="ADAPTER_THREW"?"上次校验抛错,建议稍后重试":A==="COOKIE_EXPIRED"?"Cookie 已过期,请重新登录":A:"Cookie 校验失败,建议重新登录"}async function j(_){try{(await C.unregisterAichat(_))?.ok&&m("registered",{vendor:_,accountId:null,unregistered:!0})}catch(o){N.value={ok:!1,reason:o?.message||"UNREGISTER_FAILED"}}}function te(_){g.value=_}async function ae(){if(g.value){P.open=!0,E.value=null,S.value=null,I.value="";try{if(E.value=await C.openAichatLogin(g.value),!E.value?.ok)return;y.value=2}catch(_){E.value={ok:!1,reason:_?.message||"OPEN_FAILED"}}finally{P.open=!1}}}async function J(){P.probe=!0,S.value=null;try{const _=I.value.trim(),o=_||void 0;S.value=await C.probeAichatCookies(g.value,o)}catch(_){S.value={ok:!1,reason:_?.message||"PROBE_FAILED"}}finally{P.probe=!1}}async function oe(){if(S.value?.ok){P.register=!0;try{N.value=await C.registerAichatVendor(g.value,S.value.cookies),y.value=3,N.value?.ok&&m("registered",{vendor:g.value,accountId:N.value.accountId})}catch(_){N.value={ok:!1,reason:_?.message||"REGISTER_FAILED"},y.value=3}finally{P.register=!1}}}function X(){y.value=1,g.value=null,I.value="",E.value=null,S.value=null,N.value=null}function se(){X(),m("update:open",!1)}return je(()=>i.open,_=>{_&&X()}),(_,o)=>{const A=f("a-alert"),c=f("a-tag"),b=f("a-button"),be=f("a-popconfirm"),we=f("a-card"),he=f("a-col"),xe=f("a-row"),Ce=f("a-collapse-panel"),V=f("a-collapse"),me=f("a-textarea"),Ae=f("a-form-item"),ye=f("a-form"),pe=f("a-result"),Pe=f("a-space"),$e=f("a-drawer");return s(),h($e,{open:D.open,title:"添加 AI 对话账号",placement:"right",width:640,"destroy-on-close":!0,"onUpdate:open":o[4]||(o[4]=z=>m("update:open",z)),onClose:se},{footer:e(()=>[t(Pe,{style:{float:"right"}},{default:e(()=>[y.value>1&&y.value<3?(s(),h(b,{key:0,onClick:o[3]||(o[3]=z=>y.value=y.value-1)},{default:e(()=>[...o[22]||(o[22]=[l("上一步",-1)])]),_:1})):v("",!0),t(b,{onClick:se},{default:e(()=>[...o[23]||(o[23]=[l("取消",-1)])]),_:1}),y.value===1?(s(),h(b,{key:1,type:"primary",disabled:!g.value,loading:P.open,onClick:ae},{default:e(()=>[...o[24]||(o[24]=[l(" 下一步 ",-1)])]),_:1},8,["disabled","loading"])):v("",!0),y.value===2&&E.value?.fallbackMode==="paste"?(s(),h(b,{key:2,loading:P.probe,disabled:!I.value.trim(),onClick:J},{default:e(()=>[...o[25]||(o[25]=[l(" 检测 cookie ",-1)])]),_:1},8,["loading","disabled"])):v("",!0),y.value===2&&E.value?.fallbackMode!=="paste"?(s(),h(b,{key:3,loading:P.probe,onClick:J},{default:e(()=>[...o[26]||(o[26]=[l(" 检测 cookie ",-1)])]),_:1},8,["loading"])):v("",!0),y.value===2?(s(),h(b,{key:4,type:"primary",loading:P.register,disabled:!S.value?.ok,onClick:oe},{default:e(()=>[...o[27]||(o[27]=[l(" 注册 ",-1)])]),_:1},8,["loading","disabled"])):v("",!0)]),_:1})]),default:e(()=>[t(A,{message:`第 ${y.value} / 3 步`,description:x.value,type:"info","show-icon":"",style:{"margin-bottom":"16px"}},null,8,["message","description"]),y.value===1?(s(),w("div",Ht,[o[10]||(o[10]=p("p",{class:"hint"}," 选择要接入的 AI 服务商。登录后将本地读取 cookie 同步对话历史;cookie 仅落本机加密文件,不上传任何云端。 ",-1)),t(xe,{gutter:[12,12]},{default:e(()=>[(s(),w(B,null,ue(M,z=>t(he,{xs:24,sm:12,md:8,key:z.vendor},{default:e(()=>[t(we,{size:"small",hoverable:"",class:Ze(["vendor-card",{selected:g.value===z.vendor}]),onClick:De=>te(z.vendor)},{default:e(()=>[p("div",qt,[p("strong",null,d(z.displayName),1),T(z.vendor)==="fail"?(s(),h(c,{key:0,color:"red"},{default:e(()=>[...o[5]||(o[5]=[l("🔴 重新登录",-1)])]),_:1})):T(z.vendor)==="mismatch"?(s(),h(c,{key:1,color:"orange"},{default:e(()=>[...o[6]||(o[6]=[l("⚠ 规格升级",-1)])]),_:1})):T(z.vendor)==="unknown"?(s(),h(c,{key:2,color:"blue"},{default:e(()=>[...o[7]||(o[7]=[l("已接入·待巡检",-1)])]),_:1})):T(z.vendor)==="ok"?(s(),h(c,{key:3,color:"green"},{default:e(()=>[...o[8]||(o[8]=[l("✓ 已接入",-1)])]),_:1})):v("",!0)]),p("div",Tt,d(z.notes),1),p("div",Wt,[t(c,{color:"default"},{default:e(()=>[l(d(z.requiredCookies.length)+" 必需 cookie",1)]),_:2},1024),t(c,{color:"default"},{default:e(()=>[l("过期约 "+d(z.cookieMaxAgeHintDays)+" 天",1)]),_:2},1024)]),u(z.vendor)&&Q(z.vendor)?(s(),w("div",Ft,d(Q(z.vendor)),1)):v("",!0),u(z.vendor)?(s(),w("div",{key:1,class:"vendor-actions",onClick:o[0]||(o[0]=Je(()=>{},["stop"]))},[t(be,{title:"注销该 AI 对话来源?历史事件仍可在 vault 中查询。","ok-text":"注销","cancel-text":"取消",onConfirm:De=>j(z.vendor)},{default:e(()=>[t(b,{size:"small",type:"text",danger:""},{default:e(()=>[...o[9]||(o[9]=[l("注销",-1)])]),_:1})]),_:1},8,["onConfirm"])])):v("",!0)]),_:2},1032,["class","onClick"])]),_:2},1024)),64))]),_:1})])):v("",!0),y.value===2&&E.value?(s(),w("div",Qt,[p("p",Kt,[p("strong",null,d(G.value.displayName),1),o[11]||(o[11]=l(" · ",-1)),p("a",{href:E.value.loginUrl,target:"_blank",rel:"noopener noreferrer"},d(E.value.loginUrl),9,Vt)]),E.value.fallbackMode==="paste"?(s(),h(A,{key:0,message:E.value.helpText||"请在外部浏览器登录后从开发者工具复制全部 cookie 字符串粘贴到下方。",type:"warning","show-icon":"",style:{"margin-bottom":"12px"}},null,8,["message"])):(s(),h(A,{key:1,message:"桌面端:请在弹出的内嵌浏览器窗口登录后点击 “检测 cookie”。",type:"info","show-icon":"",style:{"margin-bottom":"12px"}})),E.value.fallbackMode==="paste"?(s(),h(V,{key:2,bordered:!1,style:{"margin-bottom":"12px"}},{default:e(()=>[t(Ce,{key:"howto",header:"如何获取 cookie 字符串?"},{default:e(()=>[p("ol",Bt,[p("li",null,[o[12]||(o[12]=l("用 Chrome / Edge 打开 ",-1)),p("a",{href:E.value.loginUrl,target:"_blank"},d(E.value.loginUrl),9,Gt)]),o[13]||(o[13]=p("li",null,"完成登录,进入对话页",-1)),o[14]||(o[14]=p("li",null,[l("按 "),p("kbd",null,"F12"),l(" 打开开发者工具 → "),p("strong",null,"Application"),l(" → "),p("strong",null,"Cookies")],-1)),o[15]||(o[15]=p("li",null,"选中域名 → 全选所有 cookie 行 → 用扩展(如 EditThisCookie)导出 “name=value; …” 串",-1)),o[16]||(o[16]=p("li",null,[l("或在 Console 执行 "),p("code",null,"document.cookie"),l(" 复制结果(注意:HTTP-Only cookie 取不到,仍需 Application 面板)")],-1)),o[17]||(o[17]=p("li",null,"粘贴到下方文本框,点 “检测 cookie”",-1))])]),_:1})]),_:1})):v("",!0),t(ye,{layout:"vertical"},{default:e(()=>[t(Ae,{label:"Cookie 字符串"},{default:e(()=>[t(me,{value:I.value,"onUpdate:value":o[1]||(o[1]=z=>I.value=z),rows:6,placeholder:"name1=value1; name2=value2; name3=value3 …",autocomplete:"off"},null,8,["value"])]),_:1})]),_:1}),S.value?(s(),w("div",jt,[S.value.ok?(s(),h(A,{key:0,type:"success","show-icon":"",message:`已识别 ${S.value.foundRequired.length} 个必需 cookie + ${S.value.foundOptional.length} 个可选 cookie`},null,8,["message"])):(s(),h(A,{key:1,type:"error","show-icon":"",message:H.value},null,8,["message"])),S.value.foundRequired?.length?(s(),w("div",Zt," ✓ "+d(S.value.foundRequired.join(", ")),1)):v("",!0),S.value.missingRequired?.length?(s(),w("div",Jt," 缺失: "+d(S.value.missingRequired.join(", ")),1)):v("",!0)])):v("",!0)])):v("",!0),y.value===3?(s(),w("div",Xt,[N.value?.ok?(s(),h(pe,{key:0,status:"success",title:`${G.value.displayName} 已接入`,"sub-title":`accountId: ${N.value.accountId} · userId: ${N.value.validation?.userId||"匿名"}`},{extra:e(()=>[t(b,{type:"primary",onClick:se},{default:e(()=>[...o[18]||(o[18]=[l("完成",-1)])]),_:1}),t(b,{onClick:X},{default:e(()=>[...o[19]||(o[19]=[l("再加一家",-1)])]),_:1})]),_:1},8,["title","sub-title"])):(s(),h(pe,{key:1,status:"error",title:"接入失败","sub-title":O.value},{extra:e(()=>[t(b,{type:"primary",onClick:o[2]||(o[2]=z=>y.value=2)},{default:e(()=>[...o[20]||(o[20]=[l("返回粘贴 cookie",-1)])]),_:1}),t(b,{onClick:X},{default:e(()=>[...o[21]||(o[21]=[l("选其他厂商",-1)])]),_:1})]),_:1},8,["sub-title"]))])):v("",!0)]),_:1},8,["open"])}}},ea=Ie(Yt,[["__scopeId","data-v-a608230c"]]),ta={key:0},aa={key:0,class:"probe-result"},la={key:0,class:"kv"},na={key:0,class:"kv"},oa={key:1},sa={key:2},ra={key:2,style:{"margin-top":"12px"}},ia={__name:"WechatWizard",props:{open:{type:Boolean,default:!1}},emits:["update:open","registered"],setup(D,{emit:k}){const i=D,m=k,M=Se(),C=$(1),y=$(null),g=le({uin:"",dbPath:"",wechatDataPath:"",forceProvider:null}),I=$(null),E=le({probe:!1,register:!1}),S=ne(()=>C.value===1?"探测设备 + WeChat 版本,确认可用的 keyProvider":C.value===2?"填 UIN 与已 adb-pull 的本地路径":"bootstrap 注册 + 持久化 wechat-accounts.json"),N=ne(()=>{const O=I.value;return O?O.reason==="ENV_UNSUPPORTED"?O.message||"env-probe 拒绝 — 请回到第 1 步看 reasons":O.reason==="MD5_NEEDS_WECHAT_DATA_PATH"?"MD5 路径需要 wechatDataPath":O.reason==="FRIDA_NEEDS_WXID"?"Frida 路径需要 account.uin / wxid":O.reason==="ADAPTER_CTOR_FAILED"?`Adapter ctor 抛错: ${O.message||""}`:O.reason==="BOOTSTRAP_THREW"?`Bootstrap 抛错: ${O.message||""}`:O.reason==="UIN_REQUIRED"?"UIN 不能为空":O.message||O.reason||"注册失败":"未知错误"});async function P(){E.probe=!0;try{y.value=await M.probeWechatEnv()}catch(O){y.value={ok:!1,suggestedKeyProvider:"unsupported",reasons:[O?.message||"probe failed"],device:{reachable:!1},root:{detected:!1,magiskInstalled:!1},frida:{serverRunning:!1,port:null},wechat:{installed:!1,versionName:null,majorVersion:null},warnings:[]}}finally{E.probe=!1}}async function G(){E.register=!0;try{I.value=await M.registerWechat({account:{uin:g.uin},dbPath:g.dbPath||null,wechatDataPath:g.wechatDataPath||null,keyProviderOverride:g.forceProvider}),C.value=3,I.value?.ok&&m("registered",{uin:g.uin,chosenKeyProvider:I.value.chosenKeyProvider})}catch(O){I.value={ok:!1,reason:"BOOTSTRAP_THREW",message:O?.message||"RPC failed"},C.value=3}finally{E.register=!1}}function x(){C.value=1,y.value=null,g.uin="",g.dbPath="",g.wechatDataPath="",g.forceProvider=null,I.value=null}function H(){x(),m("update:open",!1)}return je(()=>i.open,O=>{O&&x()}),(O,u)=>{const q=f("a-alert"),T=f("a-button"),Q=f("a-tag"),j=f("a-descriptions-item"),te=f("a-descriptions"),ae=f("a-input"),J=f("a-form-item"),oe=f("a-radio"),X=f("a-radio-group"),se=f("a-form"),_=f("a-result"),o=f("a-space"),A=f("a-drawer");return s(),h(A,{open:D.open,title:"添加 WeChat 账号",placement:"right",width:640,"destroy-on-close":!0,"onUpdate:open":u[8]||(u[8]=c=>m("update:open",c)),onClose:H},{footer:e(()=>[t(o,{style:{float:"right"}},{default:e(()=>[C.value>1&&C.value<3?(s(),h(T,{key:0,onClick:u[6]||(u[6]=c=>C.value=C.value-1)},{default:e(()=>[...u[21]||(u[21]=[l("上一步",-1)])]),_:1})):v("",!0),t(T,{onClick:H},{default:e(()=>[...u[22]||(u[22]=[l("取消",-1)])]),_:1}),C.value===1?(s(),h(T,{key:1,type:"primary",disabled:!y.value||y.value.suggestedKeyProvider==="unsupported",onClick:u[7]||(u[7]=c=>C.value=2)},{default:e(()=>[...u[23]||(u[23]=[l(" 下一步 ",-1)])]),_:1},8,["disabled"])):v("",!0),C.value===2?(s(),h(T,{key:2,type:"primary",loading:E.register,disabled:!g.uin||y.value?.suggestedKeyProvider==="md5"&&!g.wechatDataPath,onClick:G},{default:e(()=>[...u[24]||(u[24]=[l(" 注册 ",-1)])]),_:1},8,["loading","disabled"])):v("",!0)]),_:1})]),default:e(()=>[t(q,{message:`第 ${C.value} / 3 步`,description:S.value,type:"info","show-icon":"",style:{"margin-bottom":"16px"}},null,8,["message","description"]),C.value===1?(s(),w("div",ta,[u[11]||(u[11]=p("p",{class:"hint"},[l(" 请用 USB 连接 Android 设备(开启 USB 调试)。WeChat ≥ 8.0 需要 root + frida-server。 探测仅读取 "),p("code",null,"adb shell"),l(" 命令输出,不写入任何东西。 ")],-1)),t(T,{type:"primary",loading:E.probe,onClick:P,style:{"margin-bottom":"12px"}},{default:e(()=>[...u[9]||(u[9]=[l(" 🔍 探测环境 ",-1)])]),_:1},8,["loading"]),y.value?(s(),w("div",aa,[t(te,{column:1,size:"small",bordered:""},{default:e(()=>[t(j,{label:"suggestedKeyProvider"},{default:e(()=>[t(Q,{color:y.value.suggestedKeyProvider==="unsupported"?"red":"green"},{default:e(()=>[l(d(y.value.suggestedKeyProvider),1)]),_:1},8,["color"])]),_:1}),t(j,{label:"adb 设备"},{default:e(()=>[t(Q,{color:y.value.device.reachable?"green":"red"},{default:e(()=>[l(d(y.value.device.reachable?"已连接":"未连接"),1)]),_:1},8,["color"]),y.value.device.serial?(s(),w("span",la,d(y.value.device.serial)+" · abi="+d(y.value.device.abi||"?"),1)):v("",!0)]),_:1}),t(j,{label:"root"},{default:e(()=>[t(Q,{color:y.value.root.detected?"green":"default"},{default:e(()=>[l(d(y.value.root.detected?"已 root":"未 root"),1)]),_:1},8,["color"]),y.value.root.magiskInstalled?(s(),h(Q,{key:0,color:"blue"},{default:e(()=>[...u[10]||(u[10]=[l("Magisk",-1)])]),_:1})):v("",!0)]),_:1}),t(j,{label:"frida-server"},{default:e(()=>[t(Q,{color:y.value.frida.serverRunning?"green":"default"},{default:e(()=>[l(d(y.value.frida.serverRunning?"运行中":"未运行"),1)]),_:1},8,["color"]),y.value.frida.port?(s(),w("span",na," :"+d(y.value.frida.port),1)):v("",!0)]),_:1}),t(j,{label:"WeChat"},{default:e(()=>[t(Q,{color:y.value.wechat.installed?"green":"red"},{default:e(()=>[l(d(y.value.wechat.installed?y.value.wechat.versionName:"未安装"),1)]),_:1},8,["color"])]),_:1})]),_:1}),(s(!0),w(B,null,ue(y.value.reasons||[],c=>(s(),h(q,{key:c,message:c,type:"info","show-icon":"",style:{"margin-top":"8px"}},null,8,["message"]))),128)),(s(!0),w(B,null,ue(y.value.warnings||[],c=>(s(),h(q,{key:c,message:c,type:"warning","show-icon":"",style:{"margin-top":"8px"}},null,8,["message"]))),128))])):v("",!0)])):v("",!0),C.value===2?(s(),w("div",oa,[u[16]||(u[16]=p("p",{class:"hint"},[l(" 填写从 adb pull 拉下来的本地路径。MD5 路径(7.x)需要 "),p("code",null,"wechatDataPath"),l("; Frida 路径(8.0+)需要设备运行 frida-server。 ")],-1)),t(se,{layout:"vertical"},{default:e(()=>[t(J,{label:"UIN / wxid",required:""},{default:e(()=>[t(ae,{value:g.uin,"onUpdate:value":u[0]||(u[0]=c=>g.uin=c),placeholder:"WeChat 数字 UIN 或 wxid"},null,8,["value"])]),_:1}),t(J,{label:"dbPath(已拉下的 EnMicroMsg.db 本地路径)"},{default:e(()=>[t(ae,{value:g.dbPath,"onUpdate:value":u[1]||(u[1]=c=>g.dbPath=c),placeholder:"C:\\\\users\\\\me\\\\pull\\\\EnMicroMsg.db"},null,8,["value"])]),_:1}),t(J,{label:"wechatDataPath(已拉下的 /data/data/com.tencent.mm/ 目录)"},{default:e(()=>[t(ae,{value:g.wechatDataPath,"onUpdate:value":u[2]||(u[2]=c=>g.wechatDataPath=c),placeholder:"C:\\\\users\\\\me\\\\pull\\\\com.tencent.mm"},null,8,["value"]),u[12]||(u[12]=p("div",{class:"hint"},"MD5 路径必填;Frida 路径可空",-1))]),_:1}),t(J,{label:"强制 keyProvider(覆盖 env-probe 建议)"},{default:e(()=>[t(X,{value:g.forceProvider,"onUpdate:value":u[3]||(u[3]=c=>g.forceProvider=c)},{default:e(()=>[t(oe,{value:null},{default:e(()=>[...u[13]||(u[13]=[l("自动(推荐)",-1)])]),_:1}),t(oe,{value:"md5"},{default:e(()=>[...u[14]||(u[14]=[l("md5",-1)])]),_:1}),t(oe,{value:"frida"},{default:e(()=>[...u[15]||(u[15]=[l("frida",-1)])]),_:1})]),_:1},8,["value"])]),_:1})]),_:1})])):v("",!0),C.value===3?(s(),w("div",sa,[I.value?.ok?(s(),h(_,{key:0,status:"success",title:`WeChat 已接入 (uin=${g.uin})`,"sub-title":`provider=${I.value.chosenKeyProvider} · sensitivity=${I.value.sensitivity}`},{extra:e(()=>[t(T,{type:"primary",onClick:H},{default:e(()=>[...u[17]||(u[17]=[l("完成",-1)])]),_:1}),t(T,{onClick:x},{default:e(()=>[...u[18]||(u[18]=[l("再加一个",-1)])]),_:1})]),_:1},8,["title","sub-title"])):(s(),h(_,{key:1,status:"error",title:"接入失败","sub-title":N.value},_t({_:2},[I.value?.probe?.reasons?.length?{name:"extra",fn:e(()=>[t(T,{onClick:u[4]||(u[4]=c=>C.value=1)},{default:e(()=>[...u[19]||(u[19]=[l("返回检查环境",-1)])]),_:1}),t(T,{onClick:u[5]||(u[5]=c=>C.value=2)},{default:e(()=>[...u[20]||(u[20]=[l("返回修改路径",-1)])]),_:1})]),key:"0"}:void 0]),1032,["sub-title"])),I.value?.probe?.reasons?.length?(s(),w("div",ra,[(s(!0),w(B,null,ue(I.value.probe.reasons,c=>(s(),h(q,{key:c,message:c,type:"warning","show-icon":"",style:{"margin-bottom":"4px"}},null,8,["message"]))),128))])):v("",!0)])):v("",!0)]),_:1},8,["open"])}}},ua=Ie(ia,[["__scopeId","data-v-c7327e24"]]),da={class:"pdh-page"},pa={class:"pdh-header"},ca={class:"kv"},va={key:0,class:"kv"},fa={key:1,class:"kv"},ma={class:"kv"},ya={key:0,class:"kv hint"},ga={style:{"margin-top":"12px",display:"flex","justify-content":"space-between","align-items":"center"}},ka={key:0,style:{"margin-top":"12px"}},_a={key:1,style:{"margin-top":"12px"}},ba={class:"answer"},wa={style:{"margin-top":"8px","font-size":"12px",color:"var(--text-color-secondary, #888)"}},ha={key:2,style:{"margin-top":"8px"}},xa={style:{display:"flex","align-items":"center",gap:"8px"}},Ca={class:"hint",style:{"margin-top":"4px"}},Aa={key:0,style:{"margin-top":"16px"}},Pa={class:"json-pre",style:{"max-height":"300px",overflow:"auto"}},$a={key:0,style:{"margin-top":"8px"}},Da={key:2,style:{"margin-top":"12px"}},Ma={class:"kv",style:{"margin-bottom":"4px"}},Ea={key:0,style:{color:"#faad14"}},Ra={key:2,class:"kv hint"},Ia={key:3,class:"kv hint",style:{color:"#ff4d4f"}},Sa={key:3,style:{"margin-top":"12px"}},Oa={key:2,style:{"margin-top":"8px"}},za={key:1},Ua={style:{"margin-left":"8px"}},La={key:3,class:"json-pre"},Na={style:{"margin-left":"6px"}},Ha={key:0,style:{"margin-left":"6px"}},qa={key:0,class:"hint",style:{"margin-top":"4px"}},Ta={key:0,style:{"margin-top":"8px"}},Wa={style:{"margin-bottom":"12px"}},Fa={class:"hint"},Qa={class:"kv"},Ka={class:"kv",style:{"margin-top":"4px"}},Va={class:"kv"},Ba={key:0,class:"hint",style:{"margin-top":"4px"}},Ga={key:1,style:{"font-size":"11px"}},ja={__name:"PersonalDataHub",setup(D,{expose:k}){const i=Se(),m=$(null),M=$(null),C=$([]),y=$(""),g=$(null),I=$(""),E=$(!1),S=$(!1),N=$([]),P=$(null),G=$(!1),x=le({provider:"qq",email:"",authCode:"",host:"",port:993,pdfPasswordHints:{idCardLast6:"",phoneLast6:"",cardLast6:""}}),H=$(null),O=$(!1),u=$(null),q=$(null),T=[{name:"analysis.spending",label:"消费分析",icon:Dt,description:"总支出 / 商家排行 / 月度趋势"},{name:"analysis.relations",label:"人际关系",icon:Mt,description:"与每个人的互动频率 / 主动比例"},{name:"analysis.footprint",label:"足迹",icon:Et,description:"常去地点 / 出行模式"},{name:"analysis.interests",label:"兴趣画像",icon:Rt,description:"从购买 / 浏览 / 收藏抽兴趣"},{name:"analysis.timeline",label:"时间线",icon:It,description:"跨源事件串成故事"}],Q=$(!1),j=$([]),te=le({queue:{pending:0},mergeGroups:0,reviewQueue:0}),ae=$(!1),J=$([]);function oe(n){n?.unregistered?L.success(`已注销 ${n.vendor}`):L.success(`已接入 ${n.vendor}`),V()}const X=$(!1);function se(n){L.success(`WeChat 已接入 (uin=${n.uin}, provider=${n.chosenKeyProvider})`),V()}const _=$(!1),o=le({email:"",zipPassword:"",filePath:""}),A=$(null),c=le({active:!1,adapter:"",phase:"",mailbox:"",current:0,total:0,attempt:1,errorMessage:""}),b=le({refresh:!1,ask:!1,addMock:!1,syncAll:!1,sync:{},audit:!1,testEmail:!1,saveEmail:!1,eventDetail:!1,importAlipay:!1,reviewQueue:!1,resolverDrain:!1,skill:!1}),be=[{title:"名称",dataIndex:"name",key:"name",width:140},{title:"版本",dataIndex:"version",key:"version",width:80},{title:"能力",key:"capabilities"},{title:"敏感度",key:"sensitivity",width:140},{title:"操作",key:"actions",width:160,align:"right"}],we=[{title:"时间",key:"at",dataIndex:"at",width:170},{title:"动作",dataIndex:"action",key:"action",width:200},{title:"详情",key:"details"}],he=[{title:"日期",key:"occurredAt",width:100},{title:"描述",dataIndex:"description",key:"description"},{title:"金额",key:"amount",width:140,align:"right"}];function xe(n){return n==="high"?"red":n==="medium"?"orange":"default"}function Ce(n){if(!n)return"";const a=n.entityCounts||{};return`events=${a.events??0} persons=${a.persons??0} | raw=${n.rawCount??0} invalid=${n.invalidCount??0} | KG triples=${n.kgTripleCount??0} RAG docs=${n.ragDocCount??0} | ${n.durationMs??0}ms`}async function V(){b.refresh=!0;try{m.value=await i.health(),M.value=await i.stats(),C.value=await i.listAdapters();try{J.value=await i.listAichatAccounts()}catch{}}catch(n){L.error("刷新失败: "+n.message)}finally{b.refresh=!1}}async function me(){if(y.value.trim()){b.ask=!0,I.value="",g.value=null;try{g.value=await i.ask(y.value.trim(),{acceptNonLocal:E.value})}catch(n){I.value=n.message}finally{b.ask=!1}}}async function Ae(){b.addMock=!0;try{await i.registerMock({count:30,seed:Date.now()%1e3}),await V(),L.success("MockAdapter 已注册(30 条 mock 数据 ready 同步)")}catch(n){L.error("注册失败: "+n.message)}finally{b.addMock=!1}}function ye(n=""){c.active=!0,c.adapter=n,c.phase="starting",c.mailbox="",c.current=0,c.total=0,c.attempt=1,c.errorMessage=""}function pe(n){n&&(n.adapter&&(c.adapter=n.adapter),n.phase&&(c.phase=n.phase),typeof n.current=="number"&&(c.current=n.current),typeof n.total=="number"&&(c.total=n.total),typeof n.attempt=="number"&&(c.attempt=n.attempt),n.mailbox&&(c.mailbox=n.mailbox),n.phase==="error"&&(c.errorMessage=n.message||"sync error"))}async function Pe(n){b.sync[n]=!0,ye(n);try{typeof i.syncAdapterStream=="function"?P.value=await i.syncAdapterStream(n,{},pe):P.value=await i.syncAdapter(n),await V()}catch(a){L.error(`同步 ${n} 失败: ${a.message}`)}finally{b.sync[n]=!1,c.active=!1}}async function $e(){b.syncAll=!0,ye("(all)");try{const n=typeof i.syncAllStream=="function"?await i.syncAllStream({},pe):await i.syncAll();P.value=n?.[n.length-1]||null,await V(),L.success(`已同步 ${n?.length||0} 个 adapter`)}catch(n){L.error("同步失败: "+n.message)}finally{b.syncAll=!1,c.active=!1}}async function z(n){try{await i.unregister(n),await V()}catch(a){L.error("移除失败: "+a.message)}}async function De(n){if(n){b.audit=!0;try{N.value=await i.recentAudit({limit:200})}catch(a){L.error("审计日志加载失败: "+a.message)}finally{b.audit=!1}}}const ge=ne(()=>!(!x.email||!x.email.includes("@")||!x.authCode||x.authCode.length<4||x.provider==="custom"&&!x.host));function Xe(n){return{qq:"QQ: 邮箱 → 设置 → 账户 → IMAP/SMTP → 开启 → 生成授权码",163:"163: 邮箱 → 设置 → POP3/SMTP/IMAP → 开启 IMAP/SMTP 服务 → 授权密码",189:"189: 设置 → 第三方客户端授权码",outlook:"Outlook: account.microsoft.com/security → App password",gmail:"Gmail: myaccount.google.com/apppasswords (需开启 2FA)",custom:"联系你的邮箱管理员获取 IMAP 端点 + app-password"}[n]||"请输入服务商授权码(不是登录密码)"}function Oe(){x.provider="qq",x.email="",x.authCode="",x.host="",x.port=993,x.pdfPasswordHints={idCardLast6:"",phoneLast6:"",cardLast6:""},H.value=null}function ze(){const n={provider:x.provider,email:x.email.trim(),authCode:x.authCode};return x.provider==="custom"&&(n.host=x.host.trim(),n.port=x.port||993,n.secure=!0),n}function Ye(){const n={};for(const a of Object.keys(x.pdfPasswordHints)){const R=x.pdfPasswordHints[a];typeof R=="string"&&R.trim().length>0&&(n[a]=R.trim())}return Object.keys(n).length>0?n:null}async function et(){if(ge.value){b.testEmail=!0,H.value=null;try{H.value=await i.testEmailAuth(ze())}catch(n){H.value={ok:!1,error:n.message}}finally{b.testEmail=!1}}}async function tt(){if(!(!ge.value||!H.value?.ok)){b.saveEmail=!0;try{const n={},a=Ye();a&&(n.pdfPasswordHints=a),await i.registerEmail(ze(),n),L.success("邮箱账号已注册"),G.value=!1,Oe(),await V()}catch(n){L.error("保存失败: "+n.message)}finally{b.saveEmail=!1}}}const Ue=ne(()=>!(!o.email||!o.email.includes("@")||!o.filePath||o.filePath.length<3));function at(){o.email="",o.zipPassword="",o.filePath="",A.value=null}async function lt(){if(Ue.value){b.importAlipay=!0,A.value=null;try{await i.registerAlipay({email:o.email.trim(),zipPassword:o.zipPassword||void 0});const a=/\.zip$/i.test(o.filePath)?{zipPath:o.filePath,zipPassword:o.zipPassword||void 0}:{csvPath:o.filePath};A.value=await i.importAlipayBill(a),A.value?.status==="ok"?(L.success(`导入成功 — ${A.value.entityCounts?.events||0} 笔交易`),await V()):L.error("导入失败: "+(A.value?.error||A.value?.status))}catch(n){A.value={status:"error",error:n.message},L.error("导入失败: "+n.message)}finally{b.importAlipay=!1}}}async function Le(n){if(n){b.eventDetail=!0,O.value=!0;try{u.value=await i.eventDetail(n)}catch(a){u.value=null,L.error("事件详情加载失败: "+a.message)}finally{b.eventDetail=!1}}}k({showEventDetail:Le});async function nt(n){b.skill=!0,q.value=null;try{q.value=await i.runSkill(n,{})}catch(a){L.error(`${n} 失败: ${a.message}`)}finally{b.skill=!1}}async function ke(){b.reviewQueue=!0;try{j.value=await i.reviewQueueList(50);const n=await i.resolverStats();Object.assign(te,n)}catch(n){L.error("待消歧加载失败: "+n.message)}finally{b.reviewQueue=!1}}async function ot(){Q.value=!0,await ke()}async function Me(n,a){try{await i.reviewDecision(n,a),L.success(`已记录决策: ${a}`),await ke()}catch(R){L.error("决策失败: "+R.message)}}async function st(){b.resolverDrain=!0;try{const n=await i.resolverDrain(20);L.success(`drain 完成 — same=${n.same} different=${n.different} review=${n.review}`),await ke()}catch(n){L.error("drain 失败: "+n.message)}finally{b.resolverDrain=!1}}async function rt(){try{const n=await i.resolverStats();Object.assign(te,n)}catch{}}return bt(()=>{V(),rt()}),(n,a)=>{const R=f("a-button"),it=f("a-badge"),K=f("a-space"),W=f("a-tag"),Y=f("a-card"),ce=f("a-col"),Ne=f("a-row"),ut=f("a-textarea"),dt=f("a-checkbox"),ee=f("a-alert"),re=f("a-divider"),pt=f("a-spin"),ct=f("a-popconfirm"),Ee=f("a-table"),He=f("a-empty"),qe=f("a-progress"),de=f("a-select-option"),vt=f("a-select"),Z=f("a-form-item"),ie=f("a-input"),Te=f("a-tooltip"),We=f("a-input-password"),ft=f("a-input-number"),Fe=f("a-form"),ve=f("a-drawer"),fe=f("a-descriptions-item"),mt=f("a-descriptions"),yt=f("a-list-item-meta"),Qe=f("a-list-item"),Ke=f("a-list"),gt=f("a-collapse-panel"),kt=f("a-collapse");return s(),w("div",da,[p("div",pa,[a[30]||(a[30]=p("div",null,[p("h2",{class:"page-title"},"个人数据中台"),p("p",{class:"page-sub"}," 让数据回归个人 — 各 app 数据本地加密落盘,本地 LLM 跨源分析,零云端外传。 ")],-1)),t(K,null,{default:e(()=>[t(R,{loading:b.refresh,onClick:V},{icon:e(()=>[t(F(Ve))]),default:e(()=>[a[27]||(a[27]=l(" 刷新 ",-1))]),_:1},8,["loading"]),t(it,{count:te.reviewQueue,offset:[0,0]},{default:e(()=>[t(R,{type:"primary",ghost:"",onClick:ot},{icon:e(()=>[t(F(Ct))]),default:e(()=>[a[28]||(a[28]=l(" 待消歧 ",-1))]),_:1})]),_:1},8,["count"]),t(R,{type:"primary",ghost:"",onClick:a[0]||(a[0]=r=>S.value=!0)},{icon:e(()=>[t(F(At))]),default:e(()=>[a[29]||(a[29]=l(" 审计日志 ",-1))]),_:1})]),_:1})]),t(Ne,{gutter:16,style:{"margin-bottom":"16px"}},{default:e(()=>[t(ce,{xs:24,sm:12,md:6},{default:e(()=>[t(Y,{size:"small",title:"Vault"},{extra:e(()=>[t(W,{color:m.value?.vault?.ok?"green":"red"},{default:e(()=>[l(d(m.value?.vault?.ok?"正常":"未就绪"),1)]),_:1},8,["color"])]),default:e(()=>[p("div",ca,"schema v"+d(m.value?.vault?.schemaVersion??"?"),1),M.value?.vault?(s(),w("div",va," 事件 "+d(M.value.vault.events)+" · 联系人 "+d(M.value.vault.persons),1)):v("",!0),M.value?.vault?(s(),w("div",fa," 地点 "+d(M.value.vault.places)+" · 商品 "+d(M.value.vault.items)+" · 主题 "+d(M.value.vault.topics),1)):v("",!0)]),_:1})]),_:1}),t(ce,{xs:24,sm:12,md:6},{default:e(()=>[t(Y,{size:"small",title:"本地 LLM"},{extra:e(()=>[t(W,{color:m.value?.llm?.ok?m.value.llm.isLocal?"green":"orange":"red"},{default:e(()=>[l(d(m.value?.llm?.ok?m.value.llm.isLocal?"本地":"非本地":"未就绪"),1)]),_:1},8,["color"])]),default:e(()=>[p("div",ma,d(m.value?.llm?.name||"—"),1),m.value?.llm?.ok&&!m.value.llm.isLocal?(s(),w("div",ya," ⚠️ 非本地 — ask 会被隐私 gate 拒绝,除非显式 acceptNonLocal ")):v("",!0)]),_:1})]),_:1}),t(ce,{xs:24,sm:12,md:6},{default:e(()=>[t(Y,{size:"small",title:"KG 索引"},{extra:e(()=>[t(W,{color:m.value?.kgSink?.ok?"green":"default"},{default:e(()=>[l(d(m.value?.kgSink?.ok?"已连接":"不可用"),1)]),_:1},8,["color"])]),default:e(()=>[a[31]||(a[31]=p("div",{class:"kv"},"events / persons → cc knowledge-graph 实体 + 关系",-1))]),_:1})]),_:1}),t(ce,{xs:24,sm:12,md:6},{default:e(()=>[t(Y,{size:"small",title:"RAG 索引"},{extra:e(()=>[t(W,{color:m.value?.ragSink?.ok?"green":"default"},{default:e(()=>[l(d(m.value?.ragSink?.ok?"已连接":"不可用"),1)]),_:1},8,["color"])]),default:e(()=>[a[32]||(a[32]=p("div",{class:"kv"},"文本 → BM25(vector 留待后续 phase)",-1))]),_:1})]),_:1})]),_:1}),t(Y,{style:{"margin-bottom":"16px"}},{title:e(()=>[t(K,null,{default:e(()=>[t(F($t)),a[33]||(a[33]=p("span",null,"问我数据",-1))]),_:1})]),default:e(()=>[t(ut,{value:y.value,"onUpdate:value":a[1]||(a[1]=r=>y.value=r),rows:2,placeholder:"例:上个月在淘宝总共花了多少?/我妈生日那周买了啥送哪儿?",onKeydown:wt(Je(me,["exact","prevent"]),["enter"])},null,8,["value","onKeydown"]),p("div",ga,[t(dt,{checked:E.value,"onUpdate:checked":a[2]||(a[2]=r=>E.value=r)},{default:e(()=>[...a[34]||(a[34]=[l("允许非本地 LLM (volcengine / anthropic 等)",-1)])]),_:1},8,["checked"]),t(R,{type:"primary",loading:b.ask,disabled:!y.value.trim(),onClick:me},{icon:e(()=>[t(F(Pt))]),default:e(()=>[a[35]||(a[35]=l(" 提问 ",-1))]),_:1},8,["loading","disabled"])]),I.value?(s(),w("div",ka,[t(ee,{type:"error","show-icon":"",message:I.value},null,8,["message"])])):v("",!0),g.value?(s(),w("div",_a,[g.value.warning==="no-facts"?(s(),h(ee,{key:0,type:"warning","show-icon":"",message:"vault 里没找到匹配的事件('no-facts')—— 先同步几个 adapter 让数据进 vault",style:{"margin-bottom":"12px"}})):g.value.warning==="hallucinated-citations"?(s(),h(ee,{key:1,type:"warning","show-icon":"",message:`LLM 引用了 ${g.value.hallucinatedCitations?.length||0} 个不存在的 event id —— 模型在编造`,style:{"margin-bottom":"12px"}},null,8,["message"])):v("",!0),p("div",ba,d(g.value.answer),1),p("div",wa," 引用 "+d(g.value.citations?.length||0)+" 条事实 · "+d(g.value.facts?.length||0)+" facts 入 prompt · "+d(g.value.durationMs)+"ms · "+d(g.value.model),1),g.value.citations?.length?(s(),w("div",ha,[a[36]||(a[36]=p("span",{style:{"font-size":"12px",color:"var(--text-color-secondary, #888)"}},"事件链接(点击查看明细 / PDF 解密结果):",-1)),t(K,{style:{"margin-top":"4px"},wrap:""},{default:e(()=>[(s(!0),w(B,null,ue(g.value.citations,r=>(s(),h(W,{key:r,color:"blue",style:{cursor:"pointer"},onClick:U=>Le(r)},{default:e(()=>[l(d(r),1)]),_:2},1032,["onClick"]))),128))]),_:1})])):v("",!0)])):v("",!0)]),_:1}),t(Y,{style:{"margin-bottom":"16px"}},{title:e(()=>[t(K,null,{default:e(()=>[t(F(St)),a[37]||(a[37]=p("span",null,"分析 skill (Phase 11)",-1))]),_:1})]),extra:e(()=>[t(W,{color:"purple"},{default:e(()=>[...a[38]||(a[38]=[l("5 内置",-1)])]),_:1})]),default:e(()=>[t(Ne,{gutter:[12,12]},{default:e(()=>[(s(),w(B,null,ue(T,r=>t(ce,{xs:24,sm:12,md:8,key:r.name},{default:e(()=>[t(Y,{size:"small",hoverable:"",onClick:U=>nt(r.name)},{default:e(()=>[p("div",xa,[(s(),h(ht(r.icon),{style:{"font-size":"18px",color:"#722ed1"}})),p("strong",null,d(r.label),1)]),p("div",Ca,d(r.description),1)]),_:2},1032,["onClick"])]),_:2},1024)),64))]),_:1}),q.value?(s(),w("div",Aa,[t(re,{plain:"",orientation:"left"},{default:e(()=>[l(d(q.value.skill)+" 结果",1)]),_:1}),t(pt,{spinning:b.skill},{default:e(()=>[p("pre",Pa,d(JSON.stringify(q.value,null,2)),1),q.value.llm_commentary||q.value.llm_narrative?(s(),w("div",$a,[t(ee,{type:"info",message:q.value.llm_commentary||q.value.llm_narrative},null,8,["message"])])):v("",!0)]),_:1},8,["spinning"])])):v("",!0)]),_:1}),t(Y,{style:{"margin-bottom":"16px"}},{title:e(()=>[t(K,null,{default:e(()=>[t(F(Nt)),a[39]||(a[39]=p("span",null,"Adapters",-1))]),_:1})]),extra:e(()=>[t(K,null,{default:e(()=>[t(R,{onClick:a[3]||(a[3]=r=>G.value=!0)},{icon:e(()=>[t(F(Ot))]),default:e(()=>[a[40]||(a[40]=l(" 添加邮箱账号 ",-1))]),_:1}),t(R,{onClick:a[4]||(a[4]=r=>_.value=!0)},{icon:e(()=>[t(F(zt))]),default:e(()=>[a[41]||(a[41]=l(" 导入支付宝账单 ",-1))]),_:1}),t(R,{onClick:a[5]||(a[5]=r=>ae.value=!0)},{icon:e(()=>[t(F(Ut))]),default:e(()=>[a[42]||(a[42]=l(" 添加 AI 对话账号 ",-1))]),_:1}),t(R,{onClick:a[6]||(a[6]=r=>X.value=!0)},{icon:e(()=>[t(F(Lt))]),default:e(()=>[a[43]||(a[43]=l(" 添加 WeChat ",-1))]),_:1}),t(R,{onClick:Ae,loading:b.addMock},{default:e(()=>[...a[44]||(a[44]=[l(" 注册 MockAdapter(开发) ",-1)])]),_:1},8,["loading"]),t(R,{type:"primary",onClick:$e,loading:b.syncAll,disabled:!C.value.length},{default:e(()=>[...a[45]||(a[45]=[l(" 同步全部 ",-1)])]),_:1},8,["loading","disabled"])]),_:1})]),default:e(()=>[C.value.length?(s(),h(Ee,{key:0,columns:be,"data-source":C.value,pagination:!1,"row-key":r=>r.name,size:"middle"},{bodyCell:e(({column:r,record:U})=>[r.key==="sensitivity"?(s(),w(B,{key:0},[t(W,{color:xe(U.sensitivity)},{default:e(()=>[l(d(U.sensitivity),1)]),_:2},1032,["color"]),U.legalGate?(s(),h(W,{key:0,color:"red",style:{"margin-left":"4px"}},{default:e(()=>[...a[46]||(a[46]=[l("需法律确认",-1)])]),_:1})):v("",!0)],64)):r.key==="capabilities"?(s(!0),w(B,{key:1},ue(U.capabilities,_e=>(s(),h(W,{key:_e,style:{"margin-right":"4px"}},{default:e(()=>[l(d(_e),1)]),_:2},1024))),128)):r.key==="actions"?(s(),h(K,{key:2},{default:e(()=>[t(R,{size:"small",loading:b.sync[U.name],onClick:_e=>Pe(U.name)},{default:e(()=>[...a[47]||(a[47]=[l(" 同步 ",-1)])]),_:1},8,["loading","onClick"]),t(ct,{title:`从注册表移除 ${U.name}?(vault 数据不会删除)`,onConfirm:_e=>z(U.name)},{default:e(()=>[t(R,{size:"small",danger:""},{default:e(()=>[...a[48]||(a[48]=[l("移除",-1)])]),_:1})]),_:1},8,["title","onConfirm"])]),_:2},1024)):v("",!0)]),_:1},8,["data-source","row-key"])):(s(),h(He,{key:1,description:"无已注册 adapter — 点上方按钮注册 MockAdapter 看效果"})),c.active?(s(),w("div",Da,[t(Y,{size:"small",bordered:!0},{default:e(()=>[p("div",Ma,[a[49]||(a[49]=p("strong",null,"同步进行中",-1)),l(" · "+d(c.adapter)+" · "+d(c.phase||"...")+" ",1),c.attempt&&c.attempt>1?(s(),w("span",Ea," (重试 #"+d(c.attempt)+") ",1)):v("",!0)]),c.total>0?(s(),h(qe,{key:0,percent:Math.round(c.current/c.total*100),status:c.errorMessage?"exception":"active",size:"small"},null,8,["percent","status"])):(s(),h(qe,{key:1,percent:0,status:"active",size:"small"})),c.mailbox?(s(),w("div",Ra," 邮箱 "+d(c.mailbox)+" · "+d(c.current)+" / "+d(c.total),1)):v("",!0),c.errorMessage?(s(),w("div",Ia,d(c.errorMessage),1)):v("",!0)]),_:1})])):v("",!0),P.value?(s(),w("div",Sa,[t(ee,{type:P.value.status==="ok"?"success":"error","show-icon":"",message:`同步 ${P.value.adapter}: ${P.value.status}`,description:Ce(P.value)},null,8,["type","message","description"])])):v("",!0)]),_:1}),t(ve,{open:G.value,"onUpdate:open":a[16]||(a[16]=r=>G.value=r),title:"添加邮箱账号",placement:"right",width:"560","destroy-on-close":!0,onClose:Oe},{footer:e(()=>[t(K,null,{default:e(()=>[t(R,{onClick:a[15]||(a[15]=r=>G.value=!1)},{default:e(()=>[...a[59]||(a[59]=[l("取消",-1)])]),_:1}),t(R,{loading:b.testEmail,disabled:!ge.value,onClick:et},{default:e(()=>[...a[60]||(a[60]=[l(" 测试连接 ",-1)])]),_:1},8,["loading","disabled"]),t(R,{type:"primary",loading:b.saveEmail,disabled:!ge.value||!H.value?.ok,onClick:tt},{default:e(()=>[...a[61]||(a[61]=[l(" 保存并注册 ",-1)])]),_:1},8,["loading","disabled"])]),_:1})]),default:e(()=>[t(ee,{message:"数据回归个人 — 凭证落本地加密文件(与 vault 主密钥同目录),同步动作 100% 本地。",type:"info","show-icon":"",style:{"margin-bottom":"16px"}}),t(Fe,{layout:"vertical",model:x},{default:e(()=>[t(Z,{label:"邮箱服务商",required:""},{default:e(()=>[t(vt,{value:x.provider,"onUpdate:value":a[7]||(a[7]=r=>x.provider=r),placeholder:"选择服务商"},{default:e(()=>[t(de,{value:"qq"},{default:e(()=>[...a[50]||(a[50]=[l("QQ 邮箱 (imap.qq.com)",-1)])]),_:1}),t(de,{value:"163"},{default:e(()=>[...a[51]||(a[51]=[l("网易邮箱 163/126",-1)])]),_:1}),t(de,{value:"189"},{default:e(()=>[...a[52]||(a[52]=[l("189 邮箱",-1)])]),_:1}),t(de,{value:"outlook"},{default:e(()=>[...a[53]||(a[53]=[l("Outlook / Hotmail",-1)])]),_:1}),t(de,{value:"gmail"},{default:e(()=>[...a[54]||(a[54]=[l("Gmail",-1)])]),_:1}),t(de,{value:"custom"},{default:e(()=>[...a[55]||(a[55]=[l("自定义 IMAP",-1)])]),_:1})]),_:1},8,["value"])]),_:1}),t(Z,{label:"邮箱地址",required:""},{default:e(()=>[t(ie,{value:x.email,"onUpdate:value":a[8]||(a[8]=r=>x.email=r),placeholder:"you@qq.com",autocomplete:"off"},null,8,["value"])]),_:1}),t(Z,{required:""},{label:e(()=>[t(K,null,{default:e(()=>[a[56]||(a[56]=p("span",null,"授权码(非登录密码)",-1)),t(Te,{title:Xe(x.provider)},{default:e(()=>[t(F(Be),{style:{color:"#888"}})]),_:1},8,["title"])]),_:1})]),default:e(()=>[t(We,{value:x.authCode,"onUpdate:value":a[9]||(a[9]=r=>x.authCode=r),placeholder:"例:QQ 邮箱 设置 → 账户 → 开启 IMAP/SMTP → 生成的授权码",autocomplete:"off"},null,8,["value"])]),_:1}),x.provider==="custom"?(s(),h(Z,{key:0,label:"IMAP host"},{default:e(()=>[t(ie,{value:x.host,"onUpdate:value":a[10]||(a[10]=r=>x.host=r),placeholder:"mail.example.com"},null,8,["value"])]),_:1})):v("",!0),x.provider==="custom"?(s(),h(Z,{key:1,label:"端口"},{default:e(()=>[t(ft,{value:x.port,"onUpdate:value":a[11]||(a[11]=r=>x.port=r),min:1,max:65535,"default-value":993},null,8,["value"])]),_:1})):v("",!0),t(re,{orientation:"left",plain:""},{default:e(()=>[...a[57]||(a[57]=[l("PDF 账单解密提示(可选)",-1)])]),_:1}),a[58]||(a[58]=p("p",{class:"hint"},"银行 PDF 月结大多加密;提供几个常用候选项让 Phase 5.5 自动解锁:",-1)),t(Z,{label:"身份证后 6 位"},{default:e(()=>[t(ie,{value:x.pdfPasswordHints.idCardLast6,"onUpdate:value":a[12]||(a[12]=r=>x.pdfPasswordHints.idCardLast6=r),placeholder:"123456",autocomplete:"off"},null,8,["value"])]),_:1}),t(Z,{label:"手机后 6 位"},{default:e(()=>[t(ie,{value:x.pdfPasswordHints.phoneLast6,"onUpdate:value":a[13]||(a[13]=r=>x.pdfPasswordHints.phoneLast6=r),placeholder:"123456",autocomplete:"off"},null,8,["value"])]),_:1}),t(Z,{label:"信用卡尾 6 位"},{default:e(()=>[t(ie,{value:x.pdfPasswordHints.cardLast6,"onUpdate:value":a[14]||(a[14]=r=>x.pdfPasswordHints.cardLast6=r),placeholder:"123456",autocomplete:"off"},null,8,["value"])]),_:1}),H.value?(s(),w("div",Oa,[t(ee,{type:H.value.ok?"success":"error","show-icon":"",message:H.value.ok?"凭证有效 — 可以保存":`认证失败: ${H.value.reason||H.value.error}`},null,8,["type","message"])])):v("",!0)]),_:1},8,["model"])]),_:1},8,["open"]),t(ve,{open:O.value,"onUpdate:open":a[17]||(a[17]=r=>O.value=r),title:u.value?`事件 ${u.value.event.id}`:"加载中...",placement:"right",width:"640","destroy-on-close":!0},{default:e(()=>[u.value?(s(),w(B,{key:0},[t(mt,{column:1,size:"small",bordered:""},{default:e(()=>[t(fe,{label:"类型"},{default:e(()=>[l(d(u.value.event.subtype),1)]),_:1}),t(fe,{label:"发生于"},{default:e(()=>[l(d(new Date(u.value.event.occurredAt).toLocaleString()),1)]),_:1}),t(fe,{label:"actor"},{default:e(()=>[l(d(u.value.event.actor),1)]),_:1}),u.value.event.content?.title?(s(),h(fe,{key:0,label:"标题"},{default:e(()=>[l(d(u.value.event.content.title),1)]),_:1})):v("",!0),u.value.event.source?.adapter?(s(),h(fe,{key:1,label:"来源 adapter"},{default:e(()=>[l(d(u.value.event.source.adapter)+" @ v"+d(u.value.event.source.adapterVersion),1)]),_:1})):v("",!0)]),_:1}),u.value.classification?(s(),h(re,{key:0,orientation:"left",plain:""},{default:e(()=>[...a[62]||(a[62]=[l("分类",-1)])]),_:1})):v("",!0),u.value.classification?(s(),w("div",za,[t(W,{color:"blue"},{default:e(()=>[l(d(u.value.classification.category),1)]),_:1}),t(W,null,{default:e(()=>[l(d(u.value.classification.layer),1)]),_:1}),p("span",Ua,"置信 "+d(Math.round((u.value.classification.confidence||0)*100))+"%",1)])):v("",!0),u.value.extraction?(s(),h(re,{key:2,orientation:"left",plain:""},{default:e(()=>[l("结构化字段("+d(u.value.extraction.template)+")",1)]),_:1})):v("",!0),u.value.extraction?(s(),w("pre",La,d(JSON.stringify(u.value.extraction.fields,null,2)),1)):v("",!0),u.value.extraction?.pdfExtraction?(s(),h(re,{key:4,orientation:"left",plain:""},{default:e(()=>[...a[63]||(a[63]=[l("PDF 解密 / 解析",-1)])]),_:1})):v("",!0),u.value.extraction?.pdfExtraction?(s(),h(Ke,{key:5,"data-source":u.value.extraction.pdfExtraction,size:"small"},{renderItem:e(({item:r})=>[t(Qe,null,{default:e(()=>[t(yt,{title:r.filename},{description:e(()=>[p("div",null,[t(W,{color:r.decrypted?"green":"red"},{default:e(()=>[l(d(r.decrypted?"已解密":"解密失败"),1)]),_:2},1032,["color"]),p("span",Na,"尝试 "+d(r.attempted)+" 次",1),r.transactionsExtracted!=null?(s(),w("span",Ha," · 提取 "+d(r.transactionsExtracted)+" 条交易 ",1)):v("",!0)]),r.error?(s(),w("div",qa,d(r.error),1)):v("",!0)]),_:2},1032,["title"])]),_:2},1024)]),_:1},8,["data-source"])):v("",!0),u.value.extraction?.fields?.transactions?.length?(s(),w(B,{key:6},[t(re,{orientation:"left",plain:""},{default:e(()=>[...a[64]||(a[64]=[l("交易明细",-1)])]),_:1}),t(Ee,{columns:he,"data-source":u.value.extraction.fields.transactions,pagination:{pageSize:10,size:"small"},"row-key":(r,U)=>U,size:"small"},{bodyCell:e(({column:r,record:U})=>[r.key==="occurredAt"?(s(),w(B,{key:0},[l(d(new Date(U.occurredAtMs).toLocaleDateString()),1)],64)):r.key==="amount"?(s(),w("span",{key:1,class:Ze(U.amount.direction==="in"?"amount-in":"amount-out")},d(U.amount.direction==="in"?"+":"-")+d(U.amount.value.toFixed(2))+" "+d(U.amount.currency),3)):v("",!0)]),_:1},8,["data-source","row-key"])],64)):v("",!0)],64)):(s(),h(He,{key:1,description:"无事件数据"}))]),_:1},8,["open","title"]),t(ve,{open:_.value,"onUpdate:open":a[22]||(a[22]=r=>_.value=r),title:"导入支付宝账单",placement:"right",width:"560","destroy-on-close":!0,onClose:at},{footer:e(()=>[t(K,null,{default:e(()=>[t(R,{onClick:a[21]||(a[21]=r=>_.value=!1)},{default:e(()=>[...a[70]||(a[70]=[l("关闭",-1)])]),_:1}),t(R,{type:"primary",loading:b.importAlipay,disabled:!Ue.value,onClick:lt},{default:e(()=>[...a[71]||(a[71]=[l(" 注册账户 + 导入 ",-1)])]),_:1},8,["loading","disabled"])]),_:1})]),default:e(()=>[t(ee,{message:"支付宝官方导出 CSV — 服务器侧全量、稳定无风控。3 分钟拿到 12 个月流水。",type:"info","show-icon":"",style:{"margin-bottom":"16px"}}),t(kt,{bordered:!1,style:{"margin-bottom":"12px"}},{default:e(()=>[t(gt,{header:"如何导出账单(首次必看)"},{default:e(()=>[...a[65]||(a[65]=[p("ol",{style:{"padding-left":"18px","font-size":"13px"}},[p("li",null,"支付宝 app → 我的 → 账单 → 右上角 ⋯"),p("li",null,'点 "开具交易流水证明"'),p("li",null,"选月份范围(最长 12 个月)"),p("li",null,'用途选 "个人对账"'),p("li",null,"发送到你的绑定邮箱"),p("li",null,[l("从邮箱下载 "),p("code",null,"alipay_record_*.zip")]),p("li",null,"解压密码 = 你的身份证后 6 位")],-1)])]),_:1})]),_:1}),t(Fe,{layout:"vertical",model:o},{default:e(()=>[t(Z,{label:"支付宝绑定邮箱(账户标识)",required:""},{default:e(()=>[t(ie,{value:o.email,"onUpdate:value":a[18]||(a[18]=r=>o.email=r),placeholder:"alipay-bound@example.com",autocomplete:"off"},null,8,["value"])]),_:1}),t(Z,null,{label:e(()=>[t(K,null,{default:e(()=>[a[66]||(a[66]=p("span",null,"ZIP 密码(身份证后 6 位)",-1)),t(Te,{title:"支付宝 ZIP 默认密码 = 身份证号后 6 位。也支持自定义密码。"},{default:e(()=>[t(F(Be),{style:{color:"#888"}})]),_:1})]),_:1})]),default:e(()=>[t(We,{value:o.zipPassword,"onUpdate:value":a[19]||(a[19]=r=>o.zipPassword=r),placeholder:"例:123456",autocomplete:"off"},null,8,["value"]),a[67]||(a[67]=p("div",{class:"hint",style:{"margin-top":"4px"}}," 空白则解析时再问,或导入的 ZIP 未加密。 ",-1))]),_:1}),t(re,{orientation:"left",plain:""},{default:e(()=>[...a[68]||(a[68]=[l("选择文件",-1)])]),_:1}),t(Z,{label:"ZIP 或 CSV 文件路径"},{default:e(()=>[t(ie,{value:o.filePath,"onUpdate:value":a[20]||(a[20]=r=>o.filePath=r),placeholder:"C:\\\\Users\\\\you\\\\Downloads\\\\alipay_record_xxx.zip","allow-clear":""},null,8,["value"]),a[69]||(a[69]=p("div",{class:"hint",style:{"margin-top":"4px"}}," 桌面版可通过 Electron 文件选择器自动填充;web-shell 复制完整路径。 ",-1))]),_:1}),A.value?(s(),w("div",Ta,[t(ee,{type:A.value.status==="ok"?"success":"error","show-icon":"",message:A.value.status==="ok"?`导入成功 — ${A.value.entityCounts?.events||0} 笔交易`:`导入失败: ${A.value.error||A.value.status}`,description:A.value.status==="ok"?`${A.value.entityCounts?.persons||0} 个交易对方 · ${A.value.kgTripleCount||0} KG triples · ${A.value.durationMs||0}ms`:null},null,8,["type","message","description"])])):v("",!0)]),_:1},8,["model"])]),_:1},8,["open"]),t(ve,{open:Q.value,"onUpdate:open":a[23]||(a[23]=r=>Q.value=r),title:"待消歧(EntityResolver 模糊判定)",placement:"right",width:"640","destroy-on-close":!0},{default:e(()=>[j.value.length===0&&!b.reviewQueue?(s(),h(ee,{key:0,type:"success","show-icon":"",message:"无待消歧 pair — 所有跨源 Person 已确定。",style:{"margin-bottom":"12px"}})):v("",!0),p("div",Wa,[t(K,null,{default:e(()=>[t(R,{loading:b.reviewQueue,onClick:ke},{icon:e(()=>[t(F(Ve))]),default:e(()=>[a[72]||(a[72]=l(" 刷新 ",-1))]),_:1},8,["loading"]),t(R,{loading:b.resolverDrain,onClick:st},{default:e(()=>[...a[73]||(a[73]=[l(" 手动 drain 队列 ",-1)])]),_:1},8,["loading"]),p("span",Fa," queue: "+d(te.queue?.pending||0)+" pending · "+d(te.mergeGroups||0)+" groups ",1)]),_:1})]),t(Ke,{"data-source":j.value,pagination:{pageSize:5,size:"small"},size:"small"},{renderItem:e(({item:r})=>[t(Qe,null,{default:e(()=>[t(Y,{size:"small",style:{width:"100%"}},{default:e(()=>[p("div",Qa,[p("strong",null,"Pair #"+d(r.id),1),r.embed_sim?(s(),h(W,{key:0,color:"blue",style:{"margin-left":"8px"}},{default:e(()=>[l(" sim "+d(Number(r.embed_sim).toFixed(2)),1)]),_:2},1024)):v("",!0),r.llm_verdict?(s(),h(W,{key:1,color:r.llm_verdict==="yes"?"green":r.llm_verdict==="no"?"red":"orange",style:{"margin-left":"4px"}},{default:e(()=>[l(" LLM: "+d(r.llm_verdict),1)]),_:2},1032,["color"])):v("",!0)]),p("div",Ka,"A: "+d(r.a_person_id),1),p("div",Va,"B: "+d(r.b_person_id),1),r.llm_reason?(s(),w("div",Ba," LLM 理由: "+d(r.llm_reason),1)):v("",!0),t(K,{style:{"margin-top":"8px"}},{default:e(()=>[t(R,{size:"small",type:"primary",onClick:U=>Me(r.id,"same")},{default:e(()=>[...a[74]||(a[74]=[l("同一人",-1)])]),_:1},8,["onClick"]),t(R,{size:"small",danger:"",onClick:U=>Me(r.id,"different")},{default:e(()=>[...a[75]||(a[75]=[l("不同人",-1)])]),_:1},8,["onClick"]),t(R,{size:"small",onClick:U=>Me(r.id,"skip")},{default:e(()=>[...a[76]||(a[76]=[l("跳过",-1)])]),_:1},8,["onClick"])]),_:2},1024)]),_:2},1024)]),_:2},1024)]),_:1},8,["data-source"])]),_:1},8,["open"]),t(ve,{open:S.value,"onUpdate:open":a[24]||(a[24]=r=>S.value=r),title:"审计日志(数据 lineage)",placement:"right",width:"600",onAfterOpenChange:De},{default:e(()=>[t(Ee,{columns:we,"data-source":N.value,pagination:{pageSize:20,size:"small"},"row-key":r=>r.id,size:"small"},{bodyCell:e(({column:r,record:U})=>[r.key==="at"?(s(),w(B,{key:0},[l(d(new Date(U.at).toLocaleString()),1)],64)):r.key==="details"?(s(),w("code",Ga,d(U.details||"—"),1)):v("",!0)]),_:1},8,["data-source","row-key"])]),_:1},8,["open"]),t(ea,{open:ae.value,"onUpdate:open":a[25]||(a[25]=r=>ae.value=r),"existing-accounts":J.value,onRegistered:oe},null,8,["open","existing-accounts"]),t(ua,{open:X.value,"onUpdate:open":a[26]||(a[26]=r=>X.value=r),onRegistered:se},null,8,["open"])])}}},Ya=Ie(ja,[["__scopeId","data-v-cdf74546"]]);export{Ya as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{_ as Xe,u as et,b as tt,d as v}from"./index-ByjAzHrC.js";import{s as at}from"./community-parser-CO25nZFt.js";import{R as lt,ar as ot,$ as pe,z as ce,V as Le,J as it,aZ as nt}from"./icons-BOPtEWK4.js";import{o as rt,M as m,R as f,P as s,c as a,N as o,K as g,r as h,L as u,O as y,u as _,F as z,Y as T,Q as C,S as k,_ as st,f as J,a as X}from"./vendor-DhFY8mDK.js";function H(i){const r=at(i);if(!r)return null;try{return JSON.parse(r)}catch{}const n=r.match(/\{[\s\S]*\}|\[[\s\S]*\]/);if(!n)return null;try{return JSON.parse(n[0])}catch{return null}}const ut=Object.freeze(["initializing","training","aggregating","completed","failed"]),pt=Object.freeze(["pending","computing","completed"]),Re=Object.freeze(["shamir","beaver","gmw"]),ct=Object.freeze(["laplace","gaussian","exponential"]),dt=Object.freeze(["paillier","bfv","ckks"]),mt=Object.freeze(["sum","product","mean","count"]);function b(i,r=0){return typeof i=="number"&&Number.isFinite(i)?i:r}function yt(i,r=0){if(!i||typeof i!="object")return null;const n=i.id||"";return n?{key:n,id:n,name:String(i.name||n),description:String(i.description||""),_idx:r}:null}function de(i){const r=H(i);return Array.isArray(r)?r.map(yt).filter(Boolean):[]}function vt(i,r=0){if(!i||typeof i!="object")return null;const n=i.id||"";return n?{key:n,id:n,name:String(i.name||""),modelType:i.modelType??i.model_type??"neural_network",architecture:String(i.architecture||""),status:String(i.status||"initializing").toLowerCase(),currentRound:b(i.currentRound??i.current_round,0),totalRounds:b(i.totalRounds??i.total_rounds,0),participantCount:b(i.participantCount??i.participant_count,0),accuracy:b(i.accuracy,0),loss:i.loss==null?null:b(i.loss,null),learningRate:b(i.learningRate??i.learning_rate,0),aggregationStrategy:i.aggregationStrategy??i.aggregation_strategy??"",privacyBudgetSpent:b(i.privacyBudgetSpent??i.privacy_budget_spent,0),createdAt:i.createdAt??i.created_at??null,updatedAt:i.updatedAt??i.updated_at??null,_idx:r}:null}function ft(i){const r=H(i);return Array.isArray(r)?r.map(vt).filter(Boolean):[]}function gt(i,r=0){if(!i||typeof i!="object")return null;const n=i.id||"";if(!n)return null;let L=i.participantIds??i.participant_ids??[];if(typeof L=="string")try{L=JSON.parse(L)}catch{L=[]}return Array.isArray(L)||(L=[]),{key:n,id:n,computationType:i.computationType??i.computation_type??"",protocol:String(i.protocol||"shamir").toLowerCase(),participantCount:b(i.participantCount??i.participant_count,0),participantIds:L,resultHash:i.resultHash??i.result_hash??null,status:String(i.status||"pending").toLowerCase(),sharesReceived:b(i.sharesReceived??i.shares_received,0),sharesRequired:b(i.sharesRequired??i.shares_required,0),computationTimeMs:i.computationTimeMs??i.computation_time_ms??null,errorMessage:i.errorMessage??i.error_message??"",createdAt:i.createdAt??i.created_at??null,completedAt:i.completedAt??i.completed_at??null,_idx:r}}function bt(i){const r=H(i);return Array.isArray(r)?r.map(gt).filter(Boolean):[]}function ht(i){const r=H(i);return!r||typeof r!="object"||Array.isArray(r)?null:{published:!!r.published,reason:r.reason||null,data:r.data??null,epsilon:b(r.epsilon,0),delta:b(r.delta,0),mechanism:String(r.mechanism||""),budgetSpent:b(r.budgetSpent??r.budget_spent,0),budgetRemaining:b(r.budgetRemaining??r.budget_remaining,0)}}function _t(i){const r=H(i);return!r||typeof r!="object"||Array.isArray(r)?null:{result:r.result??null,operation:String(r.operation||""),scheme:String(r.scheme||""),inputCount:b(r.inputCount??r.input_count,0),encrypted:r.encrypted!==!1}}const kt={privacyBudget:{spent:0,limit:0,remaining:0,exhausted:!1},federatedLearning:{totalModels:0,completed:0,training:0,avgAccuracy:0},mpc:{totalComputations:0,completed:0,pending:0,byProtocol:{}}};function $t(i){const r=JSON.parse(JSON.stringify(kt)),n=H(i);if(!n||typeof n!="object"||Array.isArray(n))return r;if(n.privacyBudget&&typeof n.privacyBudget=="object"&&(r.privacyBudget.spent=b(n.privacyBudget.spent,0),r.privacyBudget.limit=b(n.privacyBudget.limit,0),r.privacyBudget.remaining=b(n.privacyBudget.remaining,0),r.privacyBudget.exhausted=!!n.privacyBudget.exhausted),n.federatedLearning&&typeof n.federatedLearning=="object"&&(r.federatedLearning.totalModels=b(n.federatedLearning.totalModels,0),r.federatedLearning.completed=b(n.federatedLearning.completed,0),r.federatedLearning.training=b(n.federatedLearning.training,0),r.federatedLearning.avgAccuracy=b(n.federatedLearning.avgAccuracy,0)),n.mpc&&typeof n.mpc=="object"&&(r.mpc.totalComputations=b(n.mpc.totalComputations,0),r.mpc.completed=b(n.mpc.completed,0),r.mpc.pending=b(n.mpc.pending,0),n.mpc.byProtocol&&typeof n.mpc.byProtocol=="object"))for(const[L,j]of Object.entries(n.mpc.byProtocol))typeof j=="number"&&Number.isFinite(j)&&(r.mpc.byProtocol[L]=j);return r}function Ae(i){if(i==null||i==="")return"—";const r=typeof i=="number"?new Date(i):new Date(String(i));return isNaN(r.getTime())?String(i):r.toLocaleString("zh-CN",{hour12:!1})}const St={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},Ct={class:"page-title"},xt={class:"page-sub"},zt={style:{"font-size":"11px",color:"var(--text-secondary)"}},Lt={class:"catalog-name"},Rt={class:"catalog-desc"},At={class:"catalog-name"},Mt={class:"catalog-desc"},jt={class:"catalog-name"},Ft={class:"catalog-desc"},Tt={class:"filter-bar"},Ot={style:{color:"var(--text-primary)","font-weight":"500"}},Pt={style:{color:"var(--text-secondary)","font-size":"11px","margin-top":"2px"}},Bt={style:{"font-size":"11px",color:"var(--text-secondary)"}},Ut={key:0,style:{"font-size":"11px",color:"var(--text-secondary)"}},wt={key:5,style:{"font-family":"monospace",color:"var(--text-secondary)"}},Nt={key:6,style:{color:"var(--text-secondary)","font-size":"11px"}},Et={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},qt={class:"filter-bar"},It={key:0,style:{color:"var(--text-primary)","font-family":"monospace","font-weight":"500"}},Jt={key:0,style:{"font-family":"monospace",color:"var(--text-secondary)","font-size":"12px"}},Ht={key:1,style:{color:"var(--text-muted)"}},Dt={key:5,style:{color:"var(--text-secondary)","font-size":"11px"}},Vt={key:1,style:{color:"var(--text-muted)","font-size":"11px","font-family":"monospace"}},Kt={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},Qt={style:{"margin-top":"12px","font-size":"12px",color:"var(--text-secondary)"}},Wt={style:{"margin-top":"12px","font-size":"12px",color:"var(--text-secondary)"}},Yt={__name:"Privacy",setup(i){const r=et(),{t:n}=tt(),L=h(!1),j=h(!1),ee=h(!1),te=h(!1),ae=h(""),le=h(""),me=h([]),ye=h([]),ve=h([]),oe=h([]),fe=h([]),R=h({privacyBudget:{spent:0,limit:0,remaining:0,exhausted:!1},federatedLearning:{totalModels:0,completed:0,training:0,avgAccuracy:0},mpc:{totalComputations:0,completed:0,pending:0,byProtocol:{}}}),ie=h("models"),D=h(""),K=h(""),Q=h(""),W=h(!1),Y=h(!1),ne=h(!1),re=h(!1),c=X({name:"",modelType:"",architecture:"",rounds:10,lr:.01,participants:0}),$=X({type:"",protocol:"shamir",participants:"",threshold:null}),S=X({data:"",mechanism:"laplace",epsilon:.1,delta:1e-5,sensitivity:1}),A=X({data:"",operation:"sum",scheme:"paillier"}),M=h(null),O=h(null),Me=J(()=>[{title:n("privacy.modelCols.name"),key:"name"},{title:n("privacy.modelCols.status"),key:"status",width:"120px"},{title:n("privacy.modelCols.progress"),key:"progress",width:"160px"},{title:n("privacy.modelCols.accuracy"),key:"accuracy",width:"110px"},{title:n("privacy.modelCols.participants"),key:"participants",width:"90px"},{title:n("privacy.modelCols.budget"),key:"budget",width:"100px"},{title:n("privacy.modelCols.updatedAt"),key:"updatedAt",width:"160px"},{title:n("privacy.modelCols.action"),key:"action",width:"180px"}]),je=J(()=>[{title:n("privacy.computationCols.type"),key:"type",width:"160px"},{title:n("privacy.computationCols.protocol"),key:"protocol",width:"100px"},{title:n("privacy.computationCols.progress"),key:"progress"},{title:n("privacy.computationCols.status"),key:"status",width:"110px"},{title:n("privacy.computationCols.time"),key:"time",width:"110px"},{title:n("privacy.computationCols.createdAt"),key:"createdAt",width:"160px"},{title:n("privacy.computationCols.action"),key:"action",width:"160px"}]),Fe=J(()=>R.value.federatedLearning.avgAccuracy*100),Te=J(()=>{const e=R.value.privacyBudget.remaining,l=R.value.privacyBudget.limit;if(l===0)return"#888";const d=e/l;return d<.2?"#ff4d4f":d<.5?"#faad14":"#52c41a"}),Oe=J(()=>D.value?oe.value.filter(e=>e.status===D.value):oe.value),Pe=J(()=>{let e=fe.value;return K.value&&(e=e.filter(l=>l.protocol===K.value)),Q.value&&(e=e.filter(l=>l.status===Q.value)),e});function ge(e){const l=`privacy.flStatusLabels.${e}`,d=n(l);return d===l?e:d}function Be(e){return{initializing:"default",training:"processing",aggregating:"cyan",completed:"green",failed:"red"}[e]||"default"}function be(e){const l=`privacy.mpcStatusLabels.${e}`,d=n(l);return d===l?e:d}function Ue(e){return{pending:"default",computing:"processing",completed:"green"}[e]||"default"}function we(e){return e>=.85?"#52c41a":e>=.6?"#faad14":"#ff4d4f"}function Ne(e){return e.status==="initializing"||e.status==="training"||e.status==="aggregating"}function Ee({key:e}){e==="model"?W.value=!0:e==="computation"?Y.value=!0:e==="dp"?(M.value=null,ne.value=!0):e==="he"&&(O.value=null,re.value=!0)}async function B(){L.value=!0;try{const[e,l,d,q,se,ue]=await Promise.all([r.execute("privacy protocols --json",8e3).catch(()=>({output:""})),r.execute("privacy dp-mechanisms --json",8e3).catch(()=>({output:""})),r.execute("privacy he-schemes --json",8e3).catch(()=>({output:""})),r.execute("privacy models --limit 100 --json",1e4).catch(()=>({output:""})),r.execute("privacy computations --limit 100 --json",1e4).catch(()=>({output:""})),r.execute("privacy report --json",8e3).catch(()=>({output:""}))]);me.value=de(e.output),ye.value=de(l.output),ve.value=de(d.output),oe.value=ft(q.output),fe.value=bt(se.output),R.value=$t(ue.output)}catch(e){v.error(n("privacy.msg.loadFailed")+": "+(e?.message||e))}finally{L.value=!1}}async function qe(){if(!c.name.trim()){v.warning(n("privacy.msg.modelNameEmpty"));return}j.value=!0;try{const e=[`privacy create-model "${c.name.trim().replace(/"/g,'\\"')}"`];c.modelType.trim()&&e.push(`--type "${c.modelType.trim().replace(/"/g,'\\"')}"`),c.architecture.trim()&&e.push(`--arch "${c.architecture.trim().replace(/"/g,'\\"')}"`),c.rounds!=null&&e.push(`--rounds ${c.rounds}`),c.lr!=null&&e.push(`--lr ${c.lr}`),c.participants!=null&&e.push(`--participants ${c.participants}`),e.push("--json");const{output:l}=await r.execute(e.join(" "),12e3);if(/error|失败/i.test(l)&&!/"modelId"/.test(l)){v.error(n("privacy.msg.modelCreateFailed")+": "+l.slice(0,120));return}v.success(n("privacy.msg.modelCreateSuccess")),W.value=!1,he(),await B()}catch(e){v.error(n("privacy.msg.modelCreateFailed")+": "+(e?.message||e))}finally{j.value=!1}}async function Ie(){if(!$.type.trim()){v.warning(n("privacy.msg.computationTypeEmpty"));return}j.value=!0;try{const e=[`privacy create-computation "${$.type.trim().replace(/"/g,'\\"')}"`];if(e.push(`--protocol ${$.protocol}`),$.participants.trim()){const d=$.participants.split(/[,\s]+/).filter(Boolean).join(",");d&&e.push(`--participants "${d}"`)}$.threshold!=null&&e.push(`--threshold ${$.threshold}`),e.push("--json");const{output:l}=await r.execute(e.join(" "),1e4);if(/error|失败|invalid/i.test(l)&&!/"computationId"/.test(l)){v.error(n("privacy.msg.computationCreateFailed")+": "+l.slice(0,120));return}v.success(n("privacy.msg.computationCreateSuccess")),Y.value=!1,_e(),ie.value="computations",await B()}catch(e){v.error(n("privacy.msg.computationCreateFailed")+": "+(e?.message||e))}finally{j.value=!1}}async function Je(e){ae.value=e.id;try{const{output:l}=await r.execute(`privacy train ${e.id} --json`,12e3);if(/error|失败/i.test(l)&&!/"trained"/.test(l)){v.error(n("privacy.msg.trainFailed")+": "+l.slice(0,120));return}v.success(n("privacy.msg.trainSuccess")),await B()}catch(l){v.error(n("privacy.msg.trainFailed")+": "+(l?.message||l))}finally{ae.value=""}}async function He(e){try{const{output:l}=await r.execute(`privacy fail-model ${e.id} --json`,8e3);if(/error/i.test(l)&&!/"failed"/.test(l)){v.error(n("privacy.msg.failMarkFailed")+": "+l.slice(0,120));return}v.success(n("privacy.msg.failMarkSuccess")),await B()}catch(l){v.error(n("privacy.msg.failMarkFailed")+": "+(l?.message||l))}}async function De(e){le.value=e.id;try{const{output:l}=await r.execute(`privacy submit-share ${e.id} --json`,1e4);if(/error|失败/i.test(l)&&!/"submitted"/.test(l)){v.error(n("privacy.msg.submitFailed")+": "+l.slice(0,120));return}v.success(n("privacy.msg.submitSuccess")),await B()}catch(l){v.error(n("privacy.msg.submitFailed")+": "+(l?.message||l))}finally{le.value=""}}async function Ve(){if(!S.data.trim()){v.warning(n("privacy.msg.dataEmpty"));return}ee.value=!0,M.value=null;try{const e=["privacy dp-publish"];e.push(`--data ${JSON.stringify(S.data.trim())}`),e.push(`--mechanism ${S.mechanism}`),S.epsilon!=null&&e.push(`--epsilon ${S.epsilon}`),S.delta!=null&&e.push(`--delta ${S.delta}`),S.sensitivity!=null&&e.push(`--sensitivity ${S.sensitivity}`),e.push("--json");const{output:l}=await r.execute(e.join(" "),1e4),d=ht(l);if(!d){v.error(n("privacy.msg.dpFailed")+": "+l.slice(0,120));return}M.value=d,d.published?(v.success(n("privacy.msg.dpSuccess")),await B()):v.warning(n("privacy.msg.dpRejected",{reason:d.reason||"unknown"}))}catch(e){v.error(n("privacy.msg.dpFailed")+": "+(e?.message||e))}finally{ee.value=!1}}async function Ke(){if(!A.data.trim()){v.warning(n("privacy.msg.dataEmpty"));return}try{JSON.parse(A.data)}catch{v.warning(n("privacy.msg.dataInvalidJson"));return}te.value=!0,O.value=null;try{const e=["privacy he-query"];e.push(`--data ${JSON.stringify(A.data.trim())}`),e.push(`--operation ${A.operation}`),e.push(`--scheme ${A.scheme}`),e.push("--json");const{output:l}=await r.execute(e.join(" "),1e4),d=_t(l);if(!d){v.error(n("privacy.msg.heFailed")+": "+l.slice(0,120));return}O.value=d,v.success(n("privacy.msg.heSuccess",{scheme:d.scheme,op:d.operation}))}catch(e){v.error(n("privacy.msg.heFailed")+": "+(e?.message||e))}finally{te.value=!1}}function he(){c.name="",c.modelType="",c.architecture="",c.rounds=10,c.lr=.01,c.participants=0}function _e(){$.type="",$.protocol="shamir",$.participants="",$.threshold=null}return rt(B),(e,l)=>{const d=g("a-button"),q=g("a-menu-item"),se=g("a-menu"),ue=g("a-dropdown"),Qe=g("a-space"),U=g("a-statistic"),F=g("a-card"),w=g("a-col"),ke=g("a-row"),N=g("a-tag"),P=g("a-radio-button"),I=g("a-radio-group"),$e=g("a-progress"),We=g("a-popconfirm"),Se=g("a-table"),Ce=g("a-tab-pane"),Ye=g("a-tabs"),V=g("a-input"),x=g("a-form-item"),E=g("a-input-number"),Z=g("a-form"),G=g("a-modal"),Ze=g("a-select-option"),Ge=g("a-select"),xe=g("a-textarea");return u(),m("div",null,[f("div",St,[f("div",null,[f("h2",Ct,s(e.$t("privacy.title")),1),f("p",xt,s(e.$t("privacy.subtitle")),1)]),a(Qe,null,{default:o(()=>[a(d,{loading:L.value,onClick:B},{icon:o(()=>[a(_(lt))]),default:o(()=>[y(" "+s(e.$t("privacy.refresh")),1)]),_:1},8,["loading"]),a(ue,{trigger:["click"]},{overlay:o(()=>[a(se,{onClick:Ee},{default:o(()=>[a(q,{key:"model"},{default:o(()=>[a(_(pe)),y(" "+s(e.$t("privacy.actions.model")),1)]),_:1}),a(q,{key:"computation"},{default:o(()=>[a(_(ce)),y(" "+s(e.$t("privacy.actions.computation")),1)]),_:1}),a(q,{key:"dp"},{default:o(()=>[a(_(Le)),y(" "+s(e.$t("privacy.actions.dp")),1)]),_:1}),a(q,{key:"he"},{default:o(()=>[a(_(it)),y(" "+s(e.$t("privacy.actions.he")),1)]),_:1})]),_:1})]),default:o(()=>[a(d,{type:"primary"},{icon:o(()=>[a(_(ot))]),default:o(()=>[y(" "+s(e.$t("privacy.actionDropdown")),1)]),_:1})]),_:1})]),_:1})]),a(ke,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:o(()=>[a(w,{xs:12,sm:8,lg:5},{default:o(()=>[a(F,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:o(()=>[a(U,{title:e.$t("privacy.stats.models"),value:R.value.federatedLearning.totalModels,"value-style":{color:"#1677ff",fontSize:"20px"}},{prefix:o(()=>[a(_(pe))]),_:1},8,["title","value"])]),_:1})]),_:1}),a(w,{xs:12,sm:8,lg:5},{default:o(()=>[a(F,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:o(()=>[a(U,{title:e.$t("privacy.stats.avgAccuracy"),value:Fe.value,precision:1,suffix:"%","value-style":{color:R.value.federatedLearning.avgAccuracy>=.8?"#52c41a":"#faad14",fontSize:"20px"}},{prefix:o(()=>[a(_(nt))]),_:1},8,["title","value","value-style"])]),_:1})]),_:1}),a(w,{xs:12,sm:8,lg:5},{default:o(()=>[a(F,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:o(()=>[a(U,{title:e.$t("privacy.stats.computations"),value:R.value.mpc.totalComputations,"value-style":{color:"#722ed1",fontSize:"20px"}},{prefix:o(()=>[a(_(ce))]),_:1},8,["title","value"])]),_:1})]),_:1}),a(w,{xs:12,sm:8,lg:5},{default:o(()=>[a(F,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:o(()=>[a(U,{title:e.$t("privacy.stats.budget"),value:R.value.privacyBudget.remaining,precision:2,"value-style":{color:Te.value,fontSize:"20px"}},{prefix:o(()=>[a(_(Le))]),suffix:o(()=>[f("span",zt,"/ "+s(R.value.privacyBudget.limit),1)]),_:1},8,["title","value","value-style"])]),_:1})]),_:1}),a(w,{xs:24,sm:8,lg:4},{default:o(()=>[a(F,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:o(()=>[a(U,{title:e.$t("privacy.stats.budgetState"),value:R.value.privacyBudget.exhausted?e.$t("privacy.stats.exhausted"):e.$t("privacy.stats.ample"),"value-style":{color:R.value.privacyBudget.exhausted?"#ff4d4f":"#52c41a",fontSize:"20px"}},null,8,["title","value","value-style"])]),_:1})]),_:1})]),_:1}),a(ke,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:o(()=>[a(w,{xs:24,md:8},{default:o(()=>[a(F,{title:e.$t("privacy.catalog.protocols"),size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)"},"body-style":{padding:"12px 16px"}},{default:o(()=>[(u(!0),m(z,null,T(me.value,t=>(u(),m("div",{key:t.id,class:"catalog-item"},[a(N,{color:"purple",style:{"font-family":"monospace"}},{default:o(()=>[y(s(t.id),1)]),_:2},1024),f("span",Lt,s(t.name),1),f("span",Rt,s(t.description),1)]))),128))]),_:1},8,["title"])]),_:1}),a(w,{xs:24,md:8},{default:o(()=>[a(F,{title:e.$t("privacy.catalog.dp"),size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)"},"body-style":{padding:"12px 16px"}},{default:o(()=>[(u(!0),m(z,null,T(ye.value,t=>(u(),m("div",{key:t.id,class:"catalog-item"},[a(N,{color:"orange",style:{"font-family":"monospace"}},{default:o(()=>[y(s(t.id),1)]),_:2},1024),f("span",At,s(t.name),1),f("span",Mt,s(t.description),1)]))),128))]),_:1},8,["title"])]),_:1}),a(w,{xs:24,md:8},{default:o(()=>[a(F,{title:e.$t("privacy.catalog.he"),size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)"},"body-style":{padding:"12px 16px"}},{default:o(()=>[(u(!0),m(z,null,T(ve.value,t=>(u(),m("div",{key:t.id,class:"catalog-item"},[a(N,{color:"cyan",style:{"font-family":"monospace"}},{default:o(()=>[y(s(t.id),1)]),_:2},1024),f("span",jt,s(t.name),1),f("span",Ft,s(t.description),1)]))),128))]),_:1},8,["title"])]),_:1})]),_:1}),a(Ye,{activeKey:ie.value,"onUpdate:activeKey":l[3]||(l[3]=t=>ie.value=t),class:"privacy-tabs"},{default:o(()=>[a(Ce,{key:"models",tab:e.$t("privacy.tabs.models")},{default:o(()=>[f("div",Tt,[a(I,{value:D.value,"onUpdate:value":l[0]||(l[0]=t=>D.value=t),size:"small","button-style":"solid"},{default:o(()=>[a(P,{value:""},{default:o(()=>[y(s(e.$t("privacy.filter.all")),1)]),_:1}),(u(!0),m(z,null,T(_(ut),t=>(u(),C(P,{key:t,value:t},{default:o(()=>[y(s(ge(t)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),a(Se,{columns:Me.value,"data-source":Oe.value,pagination:{pageSize:20,showTotal:t=>e.$t("privacy.table.totalSuffix",{n:t})},size:"small",loading:L.value,style:{background:"var(--bg-card)"}},{bodyCell:o(({column:t,record:p})=>[t.key==="name"?(u(),m(z,{key:0},[f("span",Ot,s(p.name),1),f("div",Pt,s(p.modelType)+" / "+s(p.architecture),1)],64)):k("",!0),t.key==="status"?(u(),C(N,{key:1,color:Be(p.status)},{default:o(()=>[y(s(ge(p.status)),1)]),_:2},1032,["color"])):k("",!0),t.key==="progress"?(u(),m(z,{key:2},[a($e,{percent:p.totalRounds?Math.round(100*p.currentRound/p.totalRounds):0,size:"small",status:p.status==="failed"?"exception":p.status==="completed"?"success":"active"},null,8,["percent","status"]),f("div",Bt,s(e.$t("privacy.table.rounds",{cur:p.currentRound,total:p.totalRounds})),1)],64)):k("",!0),t.key==="accuracy"?(u(),m(z,{key:3},[f("span",{style:st({color:we(p.accuracy),fontFamily:"monospace"})},s((p.accuracy*100).toFixed(1))+"% ",5),p.loss!=null?(u(),m("div",Ut," loss "+s(p.loss.toFixed(3)),1)):k("",!0)],64)):k("",!0),t.key==="participants"?(u(),C(N,{key:4,color:"blue",style:{"font-size":"11px"}},{default:o(()=>[y(s(p.participantCount),1)]),_:2},1024)):k("",!0),t.key==="budget"?(u(),m("span",wt,s(p.privacyBudgetSpent.toFixed(3)),1)):k("",!0),t.key==="updatedAt"?(u(),m("span",Nt,s(_(Ae)(p.updatedAt)),1)):k("",!0),t.key==="action"?(u(),m(z,{key:7},[Ne(p)?(u(),C(d,{key:0,size:"small",type:"link",loading:ae.value===p.id,onClick:ze=>Je(p)},{default:o(()=>[y(s(e.$t("privacy.table.trainOne")),1)]),_:1},8,["loading","onClick"])):k("",!0),p.status!=="failed"&&p.status!=="completed"?(u(),C(We,{key:1,title:e.$t("privacy.table.failConfirm"),"ok-text":e.$t("privacy.table.failOk"),"cancel-text":e.$t("privacy.table.failCancel"),onConfirm:ze=>He(p)},{default:o(()=>[a(d,{size:"small",type:"link",danger:""},{default:o(()=>[y(s(e.$t("privacy.table.failMark")),1)]),_:1})]),_:1},8,["title","ok-text","cancel-text","onConfirm"])):k("",!0)],64)):k("",!0)]),emptyText:o(()=>[f("div",Et,[a(_(pe),{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),y(" "+s(D.value?e.$t("privacy.table.emptyModelsFiltered"):e.$t("privacy.table.emptyModels")),1)])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"]),a(Ce,{key:"computations",tab:e.$t("privacy.tabs.computations")},{default:o(()=>[f("div",qt,[a(I,{value:K.value,"onUpdate:value":l[1]||(l[1]=t=>K.value=t),size:"small"},{default:o(()=>[a(P,{value:""},{default:o(()=>[y(s(e.$t("privacy.filter.allProtocols")),1)]),_:1}),(u(!0),m(z,null,T(_(Re),t=>(u(),C(P,{key:t,value:t},{default:o(()=>[y(s(t),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"]),a(I,{value:Q.value,"onUpdate:value":l[2]||(l[2]=t=>Q.value=t),size:"small"},{default:o(()=>[a(P,{value:""},{default:o(()=>[y(s(e.$t("privacy.filter.allStatuses")),1)]),_:1}),(u(!0),m(z,null,T(_(pt),t=>(u(),C(P,{key:t,value:t},{default:o(()=>[y(s(be(t)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),a(Se,{columns:je.value,"data-source":Pe.value,pagination:{pageSize:20,showTotal:t=>e.$t("privacy.table.totalSuffix",{n:t})},size:"small",loading:L.value,style:{background:"var(--bg-card)"}},{bodyCell:o(({column:t,record:p})=>[t.key==="type"?(u(),m("span",It,s(p.computationType),1)):k("",!0),t.key==="protocol"?(u(),C(N,{key:1,color:"purple",style:{"font-family":"monospace"}},{default:o(()=>[y(s(p.protocol),1)]),_:2},1024)):k("",!0),t.key==="progress"?(u(),C($e,{key:2,percent:p.sharesRequired?Math.round(100*p.sharesReceived/p.sharesRequired):0,size:"small",status:p.status==="completed"?"success":"active",format:()=>`${p.sharesReceived}/${p.sharesRequired}`},null,8,["percent","status","format"])):k("",!0),t.key==="status"?(u(),C(N,{key:3,color:Ue(p.status)},{default:o(()=>[y(s(be(p.status)),1)]),_:2},1032,["color"])):k("",!0),t.key==="time"?(u(),m(z,{key:4},[p.computationTimeMs!=null?(u(),m("span",Jt,s(p.computationTimeMs)+" ms ",1)):(u(),m("span",Ht,"—"))],64)):k("",!0),t.key==="createdAt"?(u(),m("span",Dt,s(_(Ae)(p.createdAt)),1)):k("",!0),t.key==="action"?(u(),m(z,{key:6},[p.status!=="completed"?(u(),C(d,{key:0,size:"small",type:"link",loading:le.value===p.id,onClick:ze=>De(p)},{default:o(()=>[y(s(e.$t("privacy.table.submitShare")),1)]),_:1},8,["loading","onClick"])):(u(),m("span",Vt," hash "+s(p.resultHash?.slice(0,8)||"—"),1))],64)):k("",!0)]),emptyText:o(()=>[f("div",Kt,[a(_(ce),{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),y(" "+s(e.$t("privacy.table.emptyComputations")),1)])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"])]),_:1},8,["activeKey"]),a(G,{open:W.value,"onUpdate:open":l[10]||(l[10]=t=>W.value=t),title:e.$t("privacy.model_modal.title"),"confirm-loading":j.value,width:540,"ok-text":e.$t("privacy.model_modal.ok"),"cancel-text":e.$t("privacy.model_modal.cancel"),onOk:qe,onCancel:he},{default:o(()=>[a(Z,{"label-col":{span:6},"wrapper-col":{span:18},style:{"margin-top":"16px"}},{default:o(()=>[a(x,{label:e.$t("privacy.model_modal.nameLabel"),required:""},{default:o(()=>[a(V,{value:c.name,"onUpdate:value":l[4]||(l[4]=t=>c.name=t),placeholder:e.$t("privacy.model_modal.namePlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),a(x,{label:e.$t("privacy.model_modal.typeLabel")},{default:o(()=>[a(V,{value:c.modelType,"onUpdate:value":l[5]||(l[5]=t=>c.modelType=t),placeholder:e.$t("privacy.model_modal.typePlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),a(x,{label:e.$t("privacy.model_modal.archLabel")},{default:o(()=>[a(V,{value:c.architecture,"onUpdate:value":l[6]||(l[6]=t=>c.architecture=t),placeholder:e.$t("privacy.model_modal.archPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),a(x,{label:e.$t("privacy.model_modal.roundsLabel")},{default:o(()=>[a(E,{value:c.rounds,"onUpdate:value":l[7]||(l[7]=t=>c.rounds=t),min:1,max:1e3,style:{width:"100%"}},null,8,["value"])]),_:1},8,["label"]),a(x,{label:e.$t("privacy.model_modal.lrLabel")},{default:o(()=>[a(E,{value:c.lr,"onUpdate:value":l[8]||(l[8]=t=>c.lr=t),min:0,max:1,step:.001,style:{width:"100%"}},null,8,["value"])]),_:1},8,["label"]),a(x,{label:e.$t("privacy.model_modal.participantsLabel")},{default:o(()=>[a(E,{value:c.participants,"onUpdate:value":l[9]||(l[9]=t=>c.participants=t),min:0,max:1e3,style:{width:"100%"}},null,8,["value"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),a(G,{open:Y.value,"onUpdate:open":l[15]||(l[15]=t=>Y.value=t),title:e.$t("privacy.computation_modal.title"),"confirm-loading":j.value,width:520,"ok-text":e.$t("privacy.computation_modal.ok"),"cancel-text":e.$t("privacy.computation_modal.cancel"),onOk:Ie,onCancel:_e},{default:o(()=>[a(Z,{"label-col":{span:6},"wrapper-col":{span:18},style:{"margin-top":"16px"}},{default:o(()=>[a(x,{label:e.$t("privacy.computation_modal.typeLabel"),required:""},{default:o(()=>[a(V,{value:$.type,"onUpdate:value":l[11]||(l[11]=t=>$.type=t),placeholder:e.$t("privacy.computation_modal.typePlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),a(x,{label:e.$t("privacy.computation_modal.protocolLabel")},{default:o(()=>[a(Ge,{value:$.protocol,"onUpdate:value":l[12]||(l[12]=t=>$.protocol=t)},{default:o(()=>[(u(!0),m(z,null,T(_(Re),t=>(u(),C(Ze,{key:t,value:t},{default:o(()=>[y(s(t),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),_:1},8,["label"]),a(x,{label:e.$t("privacy.computation_modal.participantsLabel")},{default:o(()=>[a(xe,{value:$.participants,"onUpdate:value":l[13]||(l[13]=t=>$.participants=t),placeholder:e.$t("privacy.computation_modal.participantsPlaceholder"),"auto-size":{minRows:2,maxRows:4}},null,8,["value","placeholder"])]),_:1},8,["label"]),a(x,{label:e.$t("privacy.computation_modal.thresholdLabel")},{default:o(()=>[a(E,{value:$.threshold,"onUpdate:value":l[14]||(l[14]=t=>$.threshold=t),min:2,max:100,placeholder:e.$t("privacy.computation_modal.thresholdPlaceholder"),style:{width:"100%"}},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),a(G,{open:ne.value,"onUpdate:open":l[21]||(l[21]=t=>ne.value=t),title:e.$t("privacy.dp_modal.title"),"confirm-loading":ee.value,width:520,"ok-text":e.$t("privacy.dp_modal.ok"),"cancel-text":e.$t("privacy.dp_modal.cancel"),onOk:Ve},{default:o(()=>[a(Z,{"label-col":{span:6},"wrapper-col":{span:18},style:{"margin-top":"16px"}},{default:o(()=>[a(x,{label:e.$t("privacy.dp_modal.dataLabel"),required:""},{default:o(()=>[a(V,{value:S.data,"onUpdate:value":l[16]||(l[16]=t=>S.data=t),placeholder:e.$t("privacy.dp_modal.dataPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),a(x,{label:e.$t("privacy.dp_modal.mechanismLabel")},{default:o(()=>[a(I,{value:S.mechanism,"onUpdate:value":l[17]||(l[17]=t=>S.mechanism=t)},{default:o(()=>[(u(!0),m(z,null,T(_(ct),t=>(u(),C(P,{key:t,value:t},{default:o(()=>[y(s(t),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),_:1},8,["label"]),a(x,{label:e.$t("privacy.dp_modal.epsilonLabel")},{default:o(()=>[a(E,{value:S.epsilon,"onUpdate:value":l[18]||(l[18]=t=>S.epsilon=t),min:0,step:.01,style:{width:"100%"}},null,8,["value"])]),_:1},8,["label"]),a(x,{label:e.$t("privacy.dp_modal.deltaLabel")},{default:o(()=>[a(E,{value:S.delta,"onUpdate:value":l[19]||(l[19]=t=>S.delta=t),min:0,step:1e-6,style:{width:"100%"}},null,8,["value"])]),_:1},8,["label"]),a(x,{label:e.$t("privacy.dp_modal.sensitivityLabel")},{default:o(()=>[a(E,{value:S.sensitivity,"onUpdate:value":l[20]||(l[20]=t=>S.sensitivity=t),min:0,step:.1,style:{width:"100%"}},null,8,["value"])]),_:1},8,["label"])]),_:1}),M.value?(u(),C(F,{key:0,size:"small",style:{background:"var(--bg-base)","margin-top":"8px"}},{default:o(()=>[M.value.published?(u(),m(z,{key:0},[a(U,{title:e.$t("privacy.dp_modal.noisedTitle"),value:M.value.data,precision:3,"value-style":{color:"#52c41a"}},null,8,["title","value"]),f("div",Qt,[f("div",null,s(e.$t("privacy.dp_modal.spentLine",{n:M.value.budgetSpent.toFixed(3)})),1),f("div",null,s(e.$t("privacy.dp_modal.remainingLine",{n:M.value.budgetRemaining.toFixed(3)})),1),f("div",null,s(e.$t("privacy.dp_modal.mechanismLine",{name:M.value.mechanism,epsilon:M.value.epsilon})),1)])],64)):(u(),C(U,{key:1,title:e.$t("privacy.dp_modal.failedTitle"),value:M.value.reason||"unknown","value-style":{color:"#ff4d4f"}},null,8,["title","value"]))]),_:1})):k("",!0)]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),a(G,{open:re.value,"onUpdate:open":l[25]||(l[25]=t=>re.value=t),title:e.$t("privacy.he_modal.title"),"confirm-loading":te.value,width:500,"ok-text":e.$t("privacy.he_modal.ok"),"cancel-text":e.$t("privacy.he_modal.cancel"),onOk:Ke},{default:o(()=>[a(Z,{"label-col":{span:6},"wrapper-col":{span:18},style:{"margin-top":"16px"}},{default:o(()=>[a(x,{label:e.$t("privacy.he_modal.dataLabel"),required:""},{default:o(()=>[a(xe,{value:A.data,"onUpdate:value":l[22]||(l[22]=t=>A.data=t),placeholder:e.$t("privacy.he_modal.dataPlaceholder"),"auto-size":{minRows:2,maxRows:4}},null,8,["value","placeholder"])]),_:1},8,["label"]),a(x,{label:e.$t("privacy.he_modal.operationLabel")},{default:o(()=>[a(I,{value:A.operation,"onUpdate:value":l[23]||(l[23]=t=>A.operation=t)},{default:o(()=>[(u(!0),m(z,null,T(_(mt),t=>(u(),C(P,{key:t,value:t},{default:o(()=>[y(s(t),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),_:1},8,["label"]),a(x,{label:e.$t("privacy.he_modal.schemeLabel")},{default:o(()=>[a(I,{value:A.scheme,"onUpdate:value":l[24]||(l[24]=t=>A.scheme=t)},{default:o(()=>[(u(!0),m(z,null,T(_(dt),t=>(u(),C(P,{key:t,value:t},{default:o(()=>[y(s(t),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),_:1},8,["label"])]),_:1}),O.value?(u(),C(F,{key:0,size:"small",style:{background:"var(--bg-base)","margin-top":"8px"}},{default:o(()=>[a(U,{title:e.$t("privacy.he_modal.resultTitle"),value:O.value.result,"value-style":{color:"#1677ff"}},null,8,["title","value"]),f("div",Wt,[f("div",null,s(e.$t("privacy.he_modal.schemeLine",{name:O.value.scheme})),1),f("div",null,s(e.$t("privacy.he_modal.operationLine",{name:O.value.operation})),1),f("div",null,s(e.$t("privacy.he_modal.inputCountLine",{n:O.value.inputCount})),1),O.value.encrypted?(u(),C(N,{key:0,color:"green",style:{"margin-top":"4px","font-size":"10px"}},{default:o(()=>[y(s(e.$t("privacy.he_modal.encrypted")),1)]),_:1})):k("",!0)])]),_:1})):k("",!0)]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"])])}}},ta=Xe(Yt,[["__scopeId","data-v-fe89c543"]]);export{ta as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{_ as it,b as ut,u as ct,E as pt,d as k}from"./index-ByjAzHrC.js";import{s as Ee}from"./community-parser-CO25nZFt.js";import{R as dt,al as Ce,i as mt,aj as De,as as ft,$ as Re,L as yt,a8 as vt,ar as bt,aS as _t}from"./icons-BOPtEWK4.js";import gt from"./index-BtjPgDzA.js";import{o as xt,M as m,R as _,P as u,u as n,c as t,N as o,Q as S,S as y,K as d,r as h,L as c,O as f,F as T,Y as L,Z as kt,_ as Fe,f as Ie,a as ye}from"./vendor-DhFY8mDK.js";import"./KeyCode-D63Tfrq7.js";import"./omit-BCZBLb_-.js";import"./pickAttrs-CjDhGYLm.js";import"./initDefaultProps-DjUNw-1y.js";import"./motion-Cd6xXLlf.js";import"./raf-Deuc0E8-.js";import"./index-CAPj11l4.js";import"./index-DIYydwQc.js";import"./isVisible-C7tPsqfj.js";import"./useState-DGS1NOyn.js";import"./devWarning-CNIS3FrJ.js";import"./warning-Pq00owYb.js";import"./compact-item--HQOl9D1.js";import"./createContext-Bf-YNOPI.js";import"./Compact-Bo4r1Z3L.js";import"./_getTag-BVc6NQ_K.js";import"./styleChecker-Ch2rQftE.js";import"./zoom-ZII_iqXl.js";import"./ActionButton-Tw6tLfY1.js";import"./vnode-CU0J2mVX.js";function B(s){const e=Ee(s);if(!e)return null;try{return JSON.parse(e)}catch{}const i=e.match(/\{[\s\S]*\}|\[[\s\S]*\]/);if(!i)return null;try{return JSON.parse(i[0])}catch{return null}}const be=Object.freeze(["accuracy","fairness","resilience","convergence_speed"]),Te=Object.freeze(["none","exponential","linear","step"]),ht=Object.freeze(["z_score","iqr"]),Le=Object.freeze(["running","complete","applied","failed","cancelled"]),St=Object.freeze(["generic","task","review","vote"]);function z(s,e=0){return typeof s=="number"&&Number.isFinite(s)?s:e}function P(s){if(!s)return{noDb:!1,error:""};const e=Ee(s),i=/Database not available/i.test(e);return{noDb:i,error:i?"Database not available":""}}function zt(s,e=0){if(!s||typeof s!="object")return null;const i=s.did||"";return i?{key:i,did:i,score:z(s.score,0),observations:z(s.observations,0),decay:String(s.decay||"none"),weightTotal:z(s.weightTotal,0),_idx:e}:null}function $e(s){const e=B(s);return Array.isArray(e)?e.map(zt).filter(Boolean):[]}function Me(s,e=0){if(!s||typeof s!="object")return null;const i=s.did||"";return i?{key:`${i}-${e}`,did:i,score:z(s.score,0),reason:String(s.reason||""),zScore:typeof s.zScore=="number"?s.zScore:null,lower:typeof s.lower=="number"?s.lower:null,upper:typeof s.upper=="number"?s.upper:null}:null}function Ot(s){const e=B(s);if(!e||typeof e!="object"||Array.isArray(e))return{method:"",threshold:0,totalSamples:0,anomalies:[],summary:"",message:""};const i=Array.isArray(e.anomalies)?e.anomalies.map(Me).filter(Boolean):[];return{method:String(e.method||""),threshold:z(e.threshold,0),totalSamples:z(e.totalSamples,0),anomalies:i,summary:e.summary?String(e.summary):"",message:e.message?String(e.message):""}}function Ne(s,e=0){if(!s||typeof s!="object")return null;const i=s.runId||"";return i?{key:i,runId:i,objective:String(s.objective||""),iterations:z(s.iterations,0),paramSpace:s.paramSpace??null,bestParams:s.bestParams??null,bestScore:z(s.bestScore,0),status:String(s.status||"complete").toLowerCase(),createdAt:s.createdAt??null,completedAt:s.completedAt??null,analytics:s.analytics??null,errorMessage:s.errorMessage??"",_idx:e}:null}function jt(s){const e=B(s);return Array.isArray(e)?e.map(Ne).filter(Boolean):[]}function wt(s){const e=B(s);return!e||typeof e!="object"||Array.isArray(e)?null:Ne(e,0)}function At(s){const e=B(s);if(!e||typeof e!="object"||Array.isArray(e))return null;const i=e.reputationDistribution||{};return{analyticsId:String(e.analyticsId||""),runId:String(e.runId||""),reputationDistribution:{buckets:Array.isArray(i.buckets)?i.buckets.filter(v=>v&&typeof v=="object").map(v=>({label:String(v.label||""),count:z(v.count,0),min:typeof v.min=="number"?v.min:null,max:typeof v.max=="number"?v.max:null})):[],mean:typeof i.mean=="number"?i.mean:null,stdDev:typeof i.stdDev=="number"?i.stdDev:null},anomalies:e.anomalies&&typeof e.anomalies=="object"?{method:String(e.anomalies.method||""),totalSamples:z(e.anomalies.totalSamples,0),anomalies:Array.isArray(e.anomalies.anomalies)?e.anomalies.anomalies.map(Me).filter(Boolean):[],summary:e.anomalies.summary?String(e.anomalies.summary):"",message:e.anomalies.message?String(e.anomalies.message):""}:{method:"",totalSamples:0,anomalies:[],summary:"",message:""},recommendations:Array.isArray(e.recommendations)?e.recommendations.filter(v=>typeof v=="string"):[]}}const Ct={totalRuns:0,activeRuns:0,maxConcurrentOptimizations:0,byStatus:{},byObjective:{},observations:{totalObservations:0,totalDids:0},bestScoreEver:0};function Dt(s){const e=JSON.parse(JSON.stringify(Ct));for(const v of Le)e.byStatus[v]=0;for(const v of be)e.byObjective[v]=0;const i=B(s);if(!i||typeof i!="object"||Array.isArray(i))return e;if(e.totalRuns=z(i.totalRuns,0),e.activeRuns=z(i.activeRuns,0),e.maxConcurrentOptimizations=z(i.maxConcurrentOptimizations,0),e.bestScoreEver=z(i.bestScoreEver,0),i.byStatus&&typeof i.byStatus=="object")for(const[v,j]of Object.entries(i.byStatus))typeof j=="number"&&Number.isFinite(j)&&(e.byStatus[v]=j);if(i.byObjective&&typeof i.byObjective=="object")for(const[v,j]of Object.entries(i.byObjective))typeof j=="number"&&Number.isFinite(j)&&(e.byObjective[v]=j);return i.observations&&typeof i.observations=="object"&&(e.observations.totalObservations=z(i.observations.totalObservations,0),e.observations.totalDids=z(i.observations.totalDids,0)),e}function ve(s){if(s==null||s==="")return"—";const e=typeof s=="number"?new Date(s):new Date(String(s));return isNaN(e.getTime())?String(s):e.toLocaleString("zh-CN",{hour12:!1})}const Rt={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},Ft={class:"page-title"},It={class:"page-sub"},Tt={class:"filter-bar"},$t={style:{color:"var(--text-secondary)","font-size":"12px"}},Et={key:1,style:{color:"var(--text-primary)","font-family":"monospace","font-size":"12px"}},Lt={key:3,style:{color:"var(--text-secondary)"}},Mt={key:4,style:{color:"var(--text-secondary)","font-family":"monospace","font-size":"12px"}},Nt={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},Ut={key:0,style:{color:"var(--text-primary)","font-family":"monospace","font-size":"12px"}},Pt={key:2,style:{color:"var(--text-secondary)"}},Bt={key:5,style:{color:"var(--text-secondary)","font-size":"11px"}},Jt={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},Vt={style:{"margin-left":"8px",color:"var(--text-muted)","font-size":"12px"}},qt={style:{color:"var(--text-muted)","font-size":"11px","margin-top":"4px"}},Kt={style:{"margin-left":"8px",color:"var(--text-muted)","font-size":"12px"}},Wt={style:{"padding-top":"8px"}},Yt={style:{"margin-left":"8px",color:"var(--text-muted)","font-size":"12px"}},Gt={key:1},Ht={style:{"font-family":"monospace","font-size":"12px",color:"var(--text-primary)"}},Zt={style:{"margin-left":"8px",color:"var(--text-secondary)","font-size":"12px"}},Qt={key:0,style:{"margin-left":"8px",color:"var(--text-muted)","font-size":"11px"}},Xt={key:0,style:{"padding-top":"8px"}},ea={class:"params-pre"},ta={style:{color:"#ff4d4f"}},aa={key:0,style:{"margin-top":"16px"}},oa={style:{color:"var(--text-primary)","font-size":"13px",margin:"0 0 10px"}},na={class:"bucket-label"},ra={key:0,style:{"margin-top":"8px",color:"var(--text-secondary)","font-size":"12px"}},la={key:0,style:{"margin-left":"12px"}},sa={__name:"Reputation",setup(s){const{t:e}=ut(),i=ct(),v=pt.PRESENTED_IMAGE_SIMPLE,j=h(!1),ee=h(!1),te=h(!1),ae=h(!1),oe=h(!1),ne=h([]),_e=h([]),O=h({totalRuns:0,activeRuns:0,maxConcurrentOptimizations:0,byStatus:{},byObjective:{},observations:{totalObservations:0,totalDids:0},bestScoreEver:0}),V=h({noDb:!1,error:""}),ge=h("scores"),q=h("none"),K=h(!1),W=h(!1),re=h(!1),Y=h(!1),g=ye({did:"",score:.8,kind:"generic",weight:1}),M=ye({objective:"accuracy",iterations:50}),F=ye({method:"z_score",threshold:2.5,decay:"none"}),b=h(null),w=h(null),A=h(null),Ue=Ie(()=>[{title:e("reputation.scoreColumns.rank"),key:"rank",width:"60px"},{title:e("reputation.scoreColumns.did"),key:"did"},{title:e("reputation.scoreColumns.score"),key:"score",width:"220px"},{title:e("reputation.scoreColumns.observations"),key:"observations",width:"100px"},{title:e("reputation.scoreColumns.weightTotal"),key:"weightTotal",width:"100px"}]),Pe=Ie(()=>[{title:e("reputation.runColumns.runId"),key:"runId",width:"140px"},{title:e("reputation.runColumns.objective"),key:"objective",width:"140px"},{title:e("reputation.runColumns.iterations"),key:"iterations",width:"80px"},{title:e("reputation.runColumns.bestScore"),key:"bestScore",width:"110px"},{title:e("reputation.runColumns.status"),key:"status",width:"100px"},{title:e("reputation.runColumns.createdAt"),key:"createdAt",width:"160px"},{title:e("reputation.runColumns.action"),key:"action",width:"160px"}]);function xe(l){const r=`reputation.decay.${l}`,p=e(r);return p===r?l:p}function Be(l){const r=`reputation.kind.${l}`,p=e(r);return p===r?l:p}function G(l){const r=`reputation.objective.${l}`,p=e(r);return p===r?l:p}function le(l){return{accuracy:"blue",fairness:"green",resilience:"purple",convergence_speed:"orange"}[l]||"default"}function Je(l){return{accuracy:"#1677ff",fairness:"#52c41a",resilience:"#722ed1",convergence_speed:"#fa8c16"}[l]||"#888"}function Ve(l){const r=`reputation.objectiveDesc.${l}`,p=e(r);return p===r?"":p}function se(l){const r=`reputation.status.${l}`,p=e(r);return p===r?l:p}function ie(l){return{running:"processing",complete:"blue",applied:"green",failed:"red",cancelled:"default"}[l]||"default"}function qe(l){return{running:"#1677ff",complete:"#13c2c2",applied:"#52c41a",failed:"#ff4d4f",cancelled:"#888"}[l]||"#888"}function Ke(l){return l===0?"gold":l===1?"silver":l===2?"bronze":""}function ue(l){return l>=.8?"#52c41a":l>=.5?"#1677ff":l>=.3?"#faad14":"#ff4d4f"}function ke(l,r){return r?Math.round(l/r*100):0}function We(l){const r=w.value?.reputationDistribution.buckets.reduce((p,C)=>p+C.count,0)||0;return r?Math.round(l.count/r*100):0}function Ye(l){if(typeof l=="string")return l;try{return JSON.stringify(l,null,2)}catch{return String(l)}}async function J(){j.value=!0,V.value={noDb:!1,error:""};try{const[l,r,p]=await Promise.all([i.execute(`reputation list --decay ${q.value} --json`,1e4).catch(()=>({output:""})),i.execute("reputation runs --limit 50 --json",1e4).catch(()=>({output:""})),i.execute("reputation stats-v2 --json",8e3).catch(()=>({output:""}))]),C=[l,r,p].map(N=>P(N.output)).find(N=>N.noDb);C&&(V.value=C),ne.value=$e(l.output),_e.value=jt(r.output),O.value=Dt(p.output)}catch(l){k.error(e("reputation.messages.loadFailed",{err:l?.message||l}))}finally{j.value=!1}}async function Ge(){try{const{output:l}=await i.execute(`reputation list --decay ${q.value} --json`,1e4),r=P(l);if(r.noDb){V.value=r;return}ne.value=$e(l)}catch(l){k.error(e("reputation.messages.loadScoresFailed",{err:l?.message||l}))}}async function He(){if(!g.did.trim()){k.warning(e("reputation.messages.didRequired"));return}if(g.score<0||g.score>1){k.warning(e("reputation.messages.scoreRange"));return}ee.value=!0;try{const l=[`reputation observe "${g.did.trim().replace(/"/g,'\\"')}"`,String(g.score),`-k ${g.kind}`,`-w ${g.weight}`,"--json"],{output:r}=await i.execute(l.join(" "),1e4);if(P(r).noDb){k.error(e("reputation.messages.needInit"));return}if(!/"did"/.test(r)){k.error(e("reputation.messages.observeFailed",{err:r.slice(0,120)}));return}k.success(e("reputation.messages.observeOk")),K.value=!1,Se(),await J()}catch(l){k.error(e("reputation.messages.observeFailed",{err:l?.message||l}))}finally{ee.value=!1}}async function Ze(){te.value=!0;try{const l=["reputation optimize",`-o ${M.objective}`,`-i ${M.iterations}`,"--json"],{output:r}=await i.execute(l.join(" "),6e4);if(P(r).noDb){k.error(e("reputation.messages.needInit"));return}const C=wt(r);if(!C){k.error(e("reputation.messages.optimizeFailed",{err:r.slice(0,120)}));return}W.value=!1,k.success(e("reputation.messages.optimizeOk",{score:C.bestScore.toFixed(4)})),await J(),b.value=C,Y.value=!0,await he()}catch(l){k.error(e("reputation.messages.optimizeFailed",{err:l?.message||l}))}finally{te.value=!1}}async function Qe(l){gt.confirm({title:e("reputation.applyConfirm.title"),content:e("reputation.applyConfirm.content",{runId:l.runId.slice(0,12)}),okText:e("reputation.applyConfirm.ok"),cancelText:e("reputation.applyConfirm.cancel"),onOk:async()=>{try{const{output:r}=await i.execute(`reputation apply ${l.runId}`,8e3);if(P(r).noDb){k.error(e("reputation.messages.needInit"));return}if(/Failed|Error/i.test(r)&&!/Applied/i.test(r)){k.error(e("reputation.messages.applyFailed",{err:r.slice(0,120)}));return}k.success(e("reputation.messages.applyOk")),await J()}catch(r){k.error(e("reputation.messages.applyFailed",{err:r?.message||r}))}}})}async function Xe(l){b.value=l,w.value=null,Y.value=!0,await he()}async function he(){if(b.value){oe.value=!0;try{const{output:l}=await i.execute(`reputation analytics ${b.value.runId} --json`,8e3);if(P(l).noDb)return;w.value=At(l)}catch{}finally{oe.value=!1}}}function et(){A.value=null,re.value=!0}async function tt(){ae.value=!0;try{const l=["reputation anomalies",`-m ${F.method}`,`-t ${F.threshold}`,`-d ${F.decay}`,"--json"],{output:r}=await i.execute(l.join(" "),1e4);if(P(r).noDb){k.error(e("reputation.messages.needInit"));return}A.value=Ot(r)}catch(l){k.error(e("reputation.messages.detectFailed",{err:l?.message||l}))}finally{ae.value=!1}}function Se(){g.did="",g.score=.8,g.kind="generic",g.weight=1}return xt(J),(l,r)=>{const p=d("a-button"),C=d("a-space"),N=d("a-alert"),$=d("a-statistic"),I=d("a-card"),D=d("a-col"),ce=d("a-row"),ze=d("a-radio-button"),Oe=d("a-radio-group"),H=d("a-progress"),je=d("a-table"),pe=d("a-tab-pane"),U=d("a-tag"),at=d("a-tabs"),ot=d("a-input"),R=d("a-form-item"),Z=d("a-input-number"),de=d("a-select-option"),me=d("a-select"),fe=d("a-form"),Q=d("a-modal"),nt=d("a-divider"),rt=d("a-empty"),we=d("a-list-item"),Ae=d("a-list"),E=d("a-descriptions-item"),lt=d("a-descriptions"),st=d("a-spin");return c(),m("div",null,[_("div",Rt,[_("div",null,[_("h2",Ft,u(n(e)("reputation.title")),1),_("p",It,u(n(e)("reputation.subtitle")),1)]),t(C,null,{default:o(()=>[t(p,{loading:j.value,onClick:J},{icon:o(()=>[t(n(dt))]),default:o(()=>[f(" "+u(n(e)("reputation.refresh")),1)]),_:1},8,["loading"]),t(p,{onClick:et},{icon:o(()=>[t(n(Ce))]),default:o(()=>[f(" "+u(n(e)("reputation.actions.anomalies")),1)]),_:1}),t(p,{type:"primary",onClick:r[0]||(r[0]=a=>W.value=!0)},{icon:o(()=>[t(n(mt))]),default:o(()=>[f(" "+u(n(e)("reputation.actions.optimize")),1)]),_:1})]),_:1})]),V.value.noDb?(c(),S(N,{key:0,type:"info","show-icon":"",message:n(e)("reputation.noDb.message"),description:n(e)("reputation.noDb.description"),style:{"margin-bottom":"16px"}},null,8,["message","description"])):y("",!0),t(ce,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:o(()=>[t(D,{xs:12,sm:8,lg:5},{default:o(()=>[t(I,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:o(()=>[t($,{title:n(e)("reputation.stats.trackedDids"),value:O.value.observations.totalDids,"value-style":{color:"#1677ff",fontSize:"20px"}},{prefix:o(()=>[t(n(De))]),_:1},8,["title","value"])]),_:1})]),_:1}),t(D,{xs:12,sm:8,lg:5},{default:o(()=>[t(I,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:o(()=>[t($,{title:n(e)("reputation.stats.totalObservations"),value:O.value.observations.totalObservations,"value-style":{color:"#722ed1",fontSize:"20px"}},{prefix:o(()=>[t(n(ft))]),_:1},8,["title","value"])]),_:1})]),_:1}),t(D,{xs:12,sm:8,lg:5},{default:o(()=>[t(I,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:o(()=>[t($,{title:n(e)("reputation.stats.optimizationRuns"),value:O.value.totalRuns,"value-style":{color:"#13c2c2",fontSize:"20px"}},{prefix:o(()=>[t(n(Re))]),_:1},8,["title","value"])]),_:1})]),_:1}),t(D,{xs:12,sm:8,lg:5},{default:o(()=>[t(I,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:o(()=>[t($,{title:n(e)("reputation.stats.active"),value:O.value.activeRuns,"value-style":{color:O.value.activeRuns>0?"#1677ff":"#888",fontSize:"20px"},suffix:`/ ${O.value.maxConcurrentOptimizations}`},{prefix:o(()=>[t(n(yt))]),_:1},8,["title","value","value-style","suffix"])]),_:1})]),_:1}),t(D,{xs:24,sm:8,lg:4},{default:o(()=>[t(I,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:o(()=>[t($,{title:n(e)("reputation.stats.bestEver"),value:O.value.bestScoreEver,precision:3,"value-style":{color:"#52c41a",fontSize:"20px"}},{prefix:o(()=>[t(n(vt))]),_:1},8,["title","value"])]),_:1})]),_:1})]),_:1}),t(at,{activeKey:ge.value,"onUpdate:activeKey":r[3]||(r[3]=a=>ge.value=a),class:"reputation-tabs"},{default:o(()=>[t(pe,{key:"scores",tab:n(e)("reputation.tabs.scores")},{default:o(()=>[_("div",Tt,[_("span",$t,u(n(e)("reputation.filter.decayLabel")),1),t(Oe,{value:q.value,"onUpdate:value":r[1]||(r[1]=a=>q.value=a),size:"small","button-style":"solid",onChange:Ge},{default:o(()=>[(c(!0),m(T,null,L(n(Te),a=>(c(),S(ze,{key:a,value:a},{default:o(()=>[f(u(xe(a)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"]),t(p,{size:"small",onClick:r[2]||(r[2]=a=>K.value=!0)},{icon:o(()=>[t(n(bt))]),default:o(()=>[f(" "+u(n(e)("reputation.filter.addObservation")),1)]),_:1})]),t(je,{columns:Ue.value,"data-source":ne.value,pagination:{pageSize:20,showTotal:a=>n(e)("reputation.totals.dids",{count:a})},size:"small",loading:j.value,style:{background:"var(--bg-card)"}},{bodyCell:o(({column:a,record:x,index:X})=>[a.key==="rank"?(c(),m("span",{key:0,class:kt(["rank-pill",Ke(X)])},u(X+1),3)):y("",!0),a.key==="did"?(c(),m("span",Et,u(x.did),1)):y("",!0),a.key==="score"?(c(),S(H,{key:2,percent:Math.round(x.score*100),"stroke-color":ue(x.score),size:"small",format:()=>x.score.toFixed(4)},null,8,["percent","stroke-color","format"])):y("",!0),a.key==="observations"?(c(),m("span",Lt,u(x.observations),1)):y("",!0),a.key==="weightTotal"?(c(),m("span",Mt,u(x.weightTotal.toFixed(2)),1)):y("",!0)]),emptyText:o(()=>[_("div",Nt,[t(n(De),{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),f(" "+u(n(e)("reputation.empty.scores")),1)])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"]),t(pe,{key:"runs",tab:n(e)("reputation.tabs.runs")},{default:o(()=>[t(je,{columns:Pe.value,"data-source":_e.value,pagination:{pageSize:20,showTotal:a=>n(e)("reputation.totals.rows",{count:a})},size:"small",loading:j.value,style:{background:"var(--bg-card)"}},{bodyCell:o(({column:a,record:x})=>[a.key==="runId"?(c(),m("span",Ut,u(x.runId.slice(0,12)),1)):y("",!0),a.key==="objective"?(c(),S(U,{key:1,color:le(x.objective),style:{"font-family":"monospace"}},{default:o(()=>[f(u(G(x.objective)),1)]),_:2},1032,["color"])):y("",!0),a.key==="iterations"?(c(),m("span",Pt,u(x.iterations),1)):y("",!0),a.key==="bestScore"?(c(),m("span",{key:3,style:Fe({color:ue(x.bestScore),fontWeight:500,fontFamily:"monospace"})},u(x.bestScore.toFixed(4)),5)):y("",!0),a.key==="status"?(c(),S(U,{key:4,color:ie(x.status)},{default:o(()=>[f(u(se(x.status)),1)]),_:2},1032,["color"])):y("",!0),a.key==="createdAt"?(c(),m("span",Bt,u(n(ve)(x.createdAt)),1)):y("",!0),a.key==="action"?(c(),m(T,{key:6},[t(p,{size:"small",type:"link",onClick:X=>Xe(x)},{default:o(()=>[f(u(n(e)("reputation.rowActions.analyze")),1)]),_:1},8,["onClick"]),x.status==="complete"?(c(),S(p,{key:0,size:"small",type:"link",style:{color:"#52c41a"},onClick:X=>Qe(x)},{default:o(()=>[f(u(n(e)("reputation.rowActions.apply")),1)]),_:1},8,["onClick"])):y("",!0)],64)):y("",!0)]),emptyText:o(()=>[_("div",Jt,[t(n(Re),{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),f(" "+u(n(e)("reputation.empty.runs")),1)])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"]),t(pe,{key:"breakdown",tab:n(e)("reputation.tabs.breakdown")},{default:o(()=>[t(ce,{gutter:[16,16]},{default:o(()=>[t(D,{xs:24,lg:12},{default:o(()=>[t(I,{title:n(e)("reputation.breakdown.byStatus"),size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:o(()=>[(c(!0),m(T,null,L(n(Le),a=>(c(),m("div",{key:a,class:"bd-row"},[t(U,{color:ie(a),style:{"min-width":"80px","text-align":"center"}},{default:o(()=>[f(u(se(a)),1)]),_:2},1032,["color"]),t(H,{percent:ke(O.value.byStatus[a]||0,O.value.totalRuns),"stroke-color":qe(a),format:()=>`${O.value.byStatus[a]||0}`,size:"small",style:{flex:"1","margin-left":"12px"}},null,8,["percent","stroke-color","format"])]))),128))]),_:1},8,["title"])]),_:1}),t(D,{xs:24,lg:12},{default:o(()=>[t(I,{title:n(e)("reputation.breakdown.byObjective"),size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:o(()=>[(c(!0),m(T,null,L(n(be),a=>(c(),m("div",{key:a,class:"bd-row"},[t(U,{color:le(a),style:{"min-width":"100px","text-align":"center","font-family":"monospace"}},{default:o(()=>[f(u(G(a)),1)]),_:2},1032,["color"]),t(H,{percent:ke(O.value.byObjective[a]||0,O.value.totalRuns),"stroke-color":Je(a),format:()=>`${O.value.byObjective[a]||0}`,size:"small",style:{flex:"1","margin-left":"12px"}},null,8,["percent","stroke-color","format"])]))),128))]),_:1},8,["title"])]),_:1})]),_:1})]),_:1},8,["tab"])]),_:1},8,["activeKey"]),t(Q,{open:K.value,"onUpdate:open":r[8]||(r[8]=a=>K.value=a),title:n(e)("reputation.observe.title"),"confirm-loading":ee.value,width:540,"ok-text":n(e)("reputation.observe.ok"),"cancel-text":n(e)("common.cancel"),onOk:He,onCancel:Se},{default:o(()=>[t(fe,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:o(()=>[t(R,{label:n(e)("reputation.observe.didLabel"),required:""},{default:o(()=>[t(ot,{value:g.did,"onUpdate:value":r[4]||(r[4]=a=>g.did=a),placeholder:n(e)("reputation.observe.didPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),t(R,{label:n(e)("reputation.observe.scoreLabel"),required:""},{default:o(()=>[t(Z,{value:g.score,"onUpdate:value":r[5]||(r[5]=a=>g.score=a),min:0,max:1,step:.05,style:{width:"160px"}},null,8,["value"]),_("span",Vt,u(n(e)("reputation.observe.scoreRange")),1)]),_:1},8,["label"]),t(R,{label:n(e)("reputation.observe.kindLabel")},{default:o(()=>[t(me,{value:g.kind,"onUpdate:value":r[6]||(r[6]=a=>g.kind=a)},{default:o(()=>[(c(!0),m(T,null,L(n(St),a=>(c(),S(de,{key:a,value:a},{default:o(()=>[f(u(Be(a)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),_:1},8,["label"]),t(R,{label:n(e)("reputation.observe.weightLabel")},{default:o(()=>[t(Z,{value:g.weight,"onUpdate:value":r[7]||(r[7]=a=>g.weight=a),min:.1,step:.1,style:{width:"120px"}},null,8,["value"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),t(Q,{open:W.value,"onUpdate:open":r[11]||(r[11]=a=>W.value=a),title:n(e)("reputation.optimize.title"),"confirm-loading":te.value,width:540,"ok-text":n(e)("reputation.optimize.ok"),"cancel-text":n(e)("common.cancel"),onOk:Ze},{default:o(()=>[t(fe,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:o(()=>[t(R,{label:n(e)("reputation.optimize.objectiveLabel"),required:""},{default:o(()=>[t(me,{value:M.objective,"onUpdate:value":r[9]||(r[9]=a=>M.objective=a)},{default:o(()=>[(c(!0),m(T,null,L(n(be),a=>(c(),S(de,{key:a,value:a},{default:o(()=>[f(u(G(a)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"]),_("div",qt,u(Ve(M.objective)),1)]),_:1},8,["label"]),t(R,{label:n(e)("reputation.optimize.iterationsLabel")},{default:o(()=>[t(Z,{value:M.iterations,"onUpdate:value":r[10]||(r[10]=a=>M.iterations=a),min:1,max:1e3,step:10,style:{width:"160px"}},null,8,["value"]),_("span",Kt,u(n(e)("reputation.optimize.iterationsRange")),1)]),_:1},8,["label"])]),_:1}),t(N,{type:"info","show-icon":"",message:n(e)("reputation.optimize.syncMessage"),description:n(e)("reputation.optimize.syncDescription"),style:{"margin-top":"12px"}},null,8,["message","description"])]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),t(Q,{open:re.value,"onUpdate:open":r[15]||(r[15]=a=>re.value=a),title:n(e)("reputation.anomaly.title"),width:640,footer:null},{default:o(()=>[_("div",Wt,[t(fe,{"label-col":{span:5},"wrapper-col":{span:19}},{default:o(()=>[t(R,{label:n(e)("reputation.anomaly.methodLabel")},{default:o(()=>[t(Oe,{value:F.method,"onUpdate:value":r[12]||(r[12]=a=>F.method=a),"button-style":"solid"},{default:o(()=>[(c(!0),m(T,null,L(n(ht),a=>(c(),S(ze,{key:a,value:a},{default:o(()=>[f(u(a==="z_score"?n(e)("reputation.anomaly.zScoreLabel"):n(e)("reputation.anomaly.iqrLabel")),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),_:1},8,["label"]),t(R,{label:n(e)("reputation.anomaly.thresholdLabel")},{default:o(()=>[t(Z,{value:F.threshold,"onUpdate:value":r[13]||(r[13]=a=>F.threshold=a),min:.5,step:.1,style:{width:"120px"}},null,8,["value"]),_("span",Yt,u(n(e)("reputation.anomaly.thresholdHint")),1)]),_:1},8,["label"]),t(R,{label:n(e)("reputation.anomaly.decayLabel")},{default:o(()=>[t(me,{value:F.decay,"onUpdate:value":r[14]||(r[14]=a=>F.decay=a),style:{width:"200px"}},{default:o(()=>[(c(!0),m(T,null,L(n(Te),a=>(c(),S(de,{key:a,value:a},{default:o(()=>[f(u(xe(a)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),_:1},8,["label"]),t(R,{"wrapper-col":{offset:5,span:19}},{default:o(()=>[t(p,{type:"primary",loading:ae.value,onClick:tt},{icon:o(()=>[t(n(Ce))]),default:o(()=>[f(" "+u(n(e)("reputation.anomaly.start")),1)]),_:1},8,["loading"])]),_:1})]),_:1}),t(nt),A.value?(c(),m("div",Gt,[t(ce,{gutter:12,style:{"margin-bottom":"12px"}},{default:o(()=>[t(D,{span:8},{default:o(()=>[t($,{title:n(e)("reputation.anomaly.totalSamples"),value:A.value.totalSamples,"value-style":{fontSize:"16px"}},null,8,["title","value"])]),_:1}),t(D,{span:8},{default:o(()=>[t($,{title:n(e)("reputation.anomaly.threshold"),value:A.value.threshold,precision:2,"value-style":{fontSize:"16px"}},null,8,["title","value"])]),_:1}),t(D,{span:8},{default:o(()=>[t($,{title:n(e)("reputation.anomaly.anomalies"),value:A.value.anomalies.length,"value-style":{color:A.value.anomalies.length>0?"#ff4d4f":"#52c41a",fontSize:"16px"}},null,8,["title","value","value-style"])]),_:1})]),_:1}),A.value.message?(c(),S(N,{key:0,message:A.value.message,type:"warning","show-icon":"",style:{"margin-bottom":"12px"}},null,8,["message"])):y("",!0),A.value.anomalies.length?(c(),S(Ae,{key:1,size:"small","data-source":A.value.anomalies},{renderItem:o(({item:a})=>[t(we,null,{default:o(()=>[_("span",Ht,u(a.did),1),t(U,{color:"red",style:{"margin-left":"8px"}},{default:o(()=>[f(u(n(e)("reputation.anomaly.scoreTag",{score:a.score.toFixed(4)})),1)]),_:2},1024),_("span",Zt,u(a.reason),1),a.zScore!==null?(c(),m("span",Qt,u(n(e)("reputation.anomaly.zNote",{value:a.zScore.toFixed(2)})),1)):y("",!0)]),_:2},1024)]),_:1},8,["data-source"])):y("",!0)])):(c(),S(rt,{key:0,description:n(e)("reputation.anomaly.notDetected"),image:n(v)},null,8,["description","image"]))])]),_:1},8,["open","title"]),t(Q,{open:Y.value,"onUpdate:open":r[16]||(r[16]=a=>Y.value=a),title:n(e)("reputation.analytics.title",{runId:b.value?.runId?.slice(0,12)||""}),width:780,footer:null},{default:o(()=>[b.value?(c(),m("div",Xt,[t(lt,{column:2,size:"small",bordered:""},{default:o(()=>[t(E,{label:n(e)("reputation.analytics.objective")},{default:o(()=>[t(U,{color:le(b.value.objective)},{default:o(()=>[f(u(G(b.value.objective)),1)]),_:1},8,["color"])]),_:1},8,["label"]),t(E,{label:n(e)("reputation.analytics.status")},{default:o(()=>[t(U,{color:ie(b.value.status)},{default:o(()=>[f(u(se(b.value.status)),1)]),_:1},8,["color"])]),_:1},8,["label"]),t(E,{label:n(e)("reputation.analytics.iterations")},{default:o(()=>[f(u(b.value.iterations),1)]),_:1},8,["label"]),t(E,{label:n(e)("reputation.analytics.bestScore")},{default:o(()=>[_("span",{style:Fe({color:ue(b.value.bestScore),fontWeight:500,fontFamily:"monospace"})},u(b.value.bestScore.toFixed(4)),5)]),_:1},8,["label"]),t(E,{label:n(e)("reputation.analytics.createdAt")},{default:o(()=>[f(u(n(ve)(b.value.createdAt)),1)]),_:1},8,["label"]),b.value.completedAt?(c(),S(E,{key:0,label:n(e)("reputation.analytics.completedAt")},{default:o(()=>[f(u(n(ve)(b.value.completedAt)),1)]),_:1},8,["label"])):y("",!0),b.value.bestParams?(c(),S(E,{key:1,label:n(e)("reputation.analytics.bestParams"),span:2},{default:o(()=>[_("pre",ea,u(Ye(b.value.bestParams)),1)]),_:1},8,["label"])):y("",!0),b.value.errorMessage?(c(),S(E,{key:2,label:n(e)("reputation.analytics.errorMessage"),span:2},{default:o(()=>[_("span",ta,u(b.value.errorMessage),1)]),_:1},8,["label"])):y("",!0)]),_:1}),t(st,{spinning:oe.value},{default:o(()=>[w.value?(c(),m("div",aa,[_("h4",oa,u(n(e)("reputation.analytics.distributionTitle")),1),t(I,{size:"small",style:{"margin-bottom":"12px"}},{default:o(()=>[(c(!0),m(T,null,L(w.value.reputationDistribution.buckets,a=>(c(),m("div",{key:a.label,class:"bucket-row"},[_("span",na,u(a.label),1),t(H,{percent:We(a),"stroke-color":a.count>0?"#1677ff":"#d9d9d9",format:()=>`${a.count}`,size:"small",style:{flex:"1","margin-left":"12px"}},null,8,["percent","stroke-color","format"])]))),128)),w.value.reputationDistribution.mean!==null?(c(),m("div",ra,[f(u(n(e)("reputation.analytics.mean",{value:w.value.reputationDistribution.mean.toFixed(4)}))+" ",1),w.value.reputationDistribution.stdDev!==null?(c(),m("span",la,u(n(e)("reputation.analytics.stdDev",{value:w.value.reputationDistribution.stdDev.toFixed(4)})),1)):y("",!0)])):y("",!0)]),_:1}),w.value.recommendations.length?(c(),S(I,{key:0,title:n(e)("reputation.analytics.recommendations"),size:"small"},{default:o(()=>[t(Ae,{size:"small","data-source":w.value.recommendations},{renderItem:o(({item:a})=>[t(we,null,{default:o(()=>[t(n(_t),{style:{color:"#faad14","margin-right":"8px"}}),f(" "+u(a),1)]),_:2},1024)]),_:1},8,["data-source"])]),_:1},8,["title"])):y("",!0)])):y("",!0)]),_:1},8,["spinning"])])):y("",!0)]),_:1},8,["open","title"])])}}},Ia=it(sa,[["__scopeId","data-v-9561b6cc"]]);export{Ia as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{_ as ke,u as he,b as $e,E as Se,d as _}from"./index-ByjAzHrC.js";import{s as Ce}from"./community-parser-CO25nZFt.js";import{R as xe,ar as Ae,H as Nt,$ as Et,G as Pt,K as _t,f as Vt,d as ze}from"./icons-BOPtEWK4.js";import{o as we,M as c,R as S,P as u,c as l,N as a,K as y,r as k,L as i,O as m,u as v,F as h,Y as N,Q as g,S as f,f as D,a as et}from"./vendor-DhFY8mDK.js";function E(n){const r=Ce(n);if(!r)return null;try{return JSON.parse(r)}catch{}const s=r.match(/\{[\s\S]*\}|\[[\s\S]*\]/);if(!s)return null;try{return JSON.parse(s[0])}catch{return null}}const ht=Object.freeze(["tpm","tee","secure_element"]),Le=Object.freeze(["valid","expired","failed","pending"]),qt=Object.freeze(["iridium","starlink","beidou"]),Te=Object.freeze(["queued","sent","confirmed","failed"]),$t=Object.freeze(["yubikey","ledger","trezor","generic"]),Fe=Object.freeze(["fips_140_2","fips_140_3","cc_eal4"]);function F(n,r=0){return typeof n=="number"&&Number.isFinite(n)?n:r}function je(n,r=0){if(!n||typeof n!="object")return null;const s=n.id||"";return s?{key:s,id:s,anchor:String(n.anchor||"").toLowerCase(),status:String(n.status||"pending").toLowerCase(),challenge:n.challenge??"",response:n.response??"",deviceFingerprint:n.device_fingerprint??n.deviceFingerprint??"",createdAt:n.created_at??n.createdAt??null,expiresAt:n.expires_at??n.expiresAt??null,_idx:r}:null}function Me(n){const r=E(n);return Array.isArray(r)?r.map(je).filter(Boolean):[]}function Re(n){const r=E(n);return!r||typeof r!="object"||Array.isArray(r)?{ok:!1,attestationId:null,status:"",response:"",reason:""}:{ok:!!r.attestationId,attestationId:r.attestationId?String(r.attestationId):null,status:String(r.status||""),response:String(r.response||""),reason:r.reason?String(r.reason):""}}function Ue(n,r=0){if(!n||typeof n!="object")return null;const s=n.id||"";return s?{key:s,id:s,algorithm:String(n.algorithm||""),peer:n.peer??"",compatible:!!n.compatible,result:String(n.result||""),latencyMs:F(n.latency_ms??n.latencyMs,0),createdAt:n.created_at??n.createdAt??null,_idx:r}:null}function Ie(n){const r=E(n);return Array.isArray(r)?r.map(Ue).filter(Boolean):[]}function Oe(n){const r=E(n);return!r||typeof r!="object"||Array.isArray(r)?{ok:!1,testId:null,compatible:!1,result:"",latencyMs:0,reason:""}:{ok:!!r.testId,testId:r.testId?String(r.testId):null,compatible:!!r.compatible,result:String(r.result||""),latencyMs:F(r.latencyMs,0),reason:r.reason?String(r.reason):""}}function Ne(n,r=0){if(!n||typeof n!="object")return null;const s=n.id||"";return s?{key:s,id:s,provider:String(n.provider||"").toLowerCase(),priority:F(n.priority,5),status:String(n.status||"queued").toLowerCase(),payload:String(n.payload||""),sentAt:n.sent_at??n.sentAt??null,confirmedAt:n.confirmed_at??n.confirmedAt??null,createdAt:n.created_at??n.createdAt??null,_idx:r}:null}function Ee(n){const r=E(n);return Array.isArray(r)?r.map(Ne).filter(Boolean):[]}function Pe(n,r=0){if(!n||typeof n!="object")return null;const s=n.id||"";return s?{key:s,id:s,vendor:String(n.vendor||"").toLowerCase(),model:n.model??"",serialNumber:n.serial_number??n.serialNumber??"",complianceLevel:n.compliance_level??n.complianceLevel??"",firmwareVersion:n.firmware_version??n.firmwareVersion??"",createdAt:n.created_at??n.createdAt??null,_idx:r}:null}function Ve(n){const r=E(n);return Array.isArray(r)?r.map(Pe).filter(Boolean):[]}function qe(n){const r=E(n);return!r||typeof r!="object"||Array.isArray(r)?{ok:!1,signature:"",algorithm:"",reason:""}:{ok:!!r.signature,signature:r.signature?String(r.signature):"",algorithm:String(r.algorithm||""),reason:r.reason?String(r.reason):""}}function pt(n){const r=E(n);if(!r||typeof r!="object"||Array.isArray(r))return{ok:!1,id:null,reason:""};const s=r.deviceId||r.messageId||r.attestationId||r.testId||null;return{ok:!!(s||r.removed||r.updated),id:s?String(s):null,reason:r.reason?String(r.reason):""}}const De={attestations:{total:0,valid:0,byAnchor:{}},interopTests:{total:0,compatible:0,avgLatencyMs:0},satellite:{total:0,queued:0,confirmed:0},hsm:{total:0,byVendor:{}}};function He(n){const r=JSON.parse(JSON.stringify(De));for(const j of ht)r.attestations.byAnchor[j]=0;for(const j of $t)r.hsm.byVendor[j]=0;const s=E(n);if(!s||typeof s!="object"||Array.isArray(s))return r;if(s.attestations&&typeof s.attestations=="object"&&(r.attestations.total=F(s.attestations.total,0),r.attestations.valid=F(s.attestations.valid,0),s.attestations.byAnchor&&typeof s.attestations.byAnchor=="object"))for(const[j,C]of Object.entries(s.attestations.byAnchor))typeof C=="number"&&Number.isFinite(C)&&(r.attestations.byAnchor[j]=C);if(s.interopTests&&typeof s.interopTests=="object"&&(r.interopTests.total=F(s.interopTests.total,0),r.interopTests.compatible=F(s.interopTests.compatible,0),r.interopTests.avgLatencyMs=F(s.interopTests.avgLatencyMs,0)),s.satellite&&typeof s.satellite=="object"&&(r.satellite.total=F(s.satellite.total,0),r.satellite.queued=F(s.satellite.queued,0),r.satellite.confirmed=F(s.satellite.confirmed,0)),s.hsm&&typeof s.hsm=="object"&&(r.hsm.total=F(s.hsm.total,0),s.hsm.byVendor&&typeof s.hsm.byVendor=="object"))for(const[j,C]of Object.entries(s.hsm.byVendor))typeof C=="number"&&Number.isFinite(C)&&(r.hsm.byVendor[j]=C);return r}function kt(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 Be={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},Ke={class:"page-title"},Ge={class:"page-sub"},Je={class:"stat-sub"},Qe={class:"stat-sub"},Ye={class:"stat-sub"},We={class:"filter-bar"},Xe={key:0,style:{color:"var(--text-primary)","font-family":"monospace","font-size":"12px"}},Ze={key:0,style:{color:"var(--text-secondary)","font-family":"monospace","font-size":"11px"}},ta={key:1,style:{color:"var(--text-muted)"}},ea={key:0,style:{color:"var(--text-secondary)","font-family":"monospace","font-size":"11px"}},aa={key:1,style:{color:"var(--text-muted)"}},la={key:5,style:{color:"var(--text-secondary)","font-size":"11px"}},sa={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},oa={key:0,style:{color:"var(--text-primary)","font-family":"monospace","font-size":"12px"}},ra={key:0,style:{color:"var(--text-secondary)","font-family":"monospace","font-size":"12px"}},na={key:1,style:{color:"var(--text-muted)"}},ia={key:0,style:{color:"var(--text-secondary)","font-family":"monospace","font-size":"11px"}},ua={key:1,style:{color:"var(--text-muted)"}},da={key:6,style:{color:"var(--text-secondary)","font-size":"11px"}},pa={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},ca={class:"filter-bar"},ma={key:0,style:{color:"var(--text-primary)","font-family":"monospace","font-size":"12px"}},fa={key:4,style:{color:"var(--text-primary)","font-family":"monospace","font-size":"12px"}},ya={key:5,style:{color:"var(--text-secondary)","font-size":"11px"}},va={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},ga={class:"filter-bar"},ba={key:0,style:{color:"var(--text-primary)","font-family":"monospace","font-size":"12px"}},_a={key:0,style:{color:"var(--text-primary)","font-family":"monospace","font-size":"12px"}},ka={key:1,style:{color:"var(--text-muted)"}},ha={key:0,style:{color:"var(--text-secondary)","font-family":"monospace","font-size":"11px"}},$a={key:1,style:{color:"var(--text-muted)"}},Sa={key:1,style:{color:"var(--text-muted)"}},Ca={key:0,style:{color:"var(--text-secondary)","font-family":"monospace","font-size":"11px"}},xa={key:1,style:{color:"var(--text-muted)"}},Aa={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},za={style:{"margin-left":"8px",color:"var(--text-muted)","font-size":"12px"}},wa={key:0,style:{"padding-top":"8px"}},La={style:{"margin-left":"8px"}},Ta={key:1},Fa={class:"sig-pre"},ja={__name:"Trust",setup(n){const r=he(),{t:s}=$e(),j=Se.PRESENTED_IMAGE_SIMPLE,C=k(!1),L=k(!1),ct=k(!1),St=k([]),Ct=k([]),xt=k([]),mt=k([]),z=k({attestations:{total:0,valid:0,byAnchor:{}},interopTests:{total:0,compatible:0,avgLatencyMs:0},satellite:{total:0,queued:0,confirmed:0},hsm:{total:0,byVendor:{}}}),At=k("attestations"),H=k(""),B=k(""),K=k(""),G=k(""),J=k(""),at=k(!1),lt=k(!1),st=k(!1),ot=k(!1),ft=k(!1),A=et({anchor:"tpm",challenge:"",fingerprint:""}),x=et({algorithm:"ml_kem_768",peer:"",latency:50}),w=et({provider:"iridium",priority:5,payload:""}),b=et({vendor:"yubikey",model:"",serial:"",compliance:void 0,firmware:""}),M=et({data:"",algorithm:""}),P=k(null),I=k(null),Dt=D(()=>[{title:s("trust.attestCols.id"),key:"id",width:"130px"},{title:s("trust.attestCols.anchor"),key:"anchor",width:"160px"},{title:s("trust.attestCols.status"),key:"status",width:"110px"},{title:s("trust.attestCols.fingerprint"),key:"fingerprint",width:"180px"},{title:s("trust.attestCols.response"),key:"response"},{title:s("trust.attestCols.createdAt"),key:"createdAt",width:"160px"}]),Ht=D(()=>[{title:s("trust.interopCols.id"),key:"id",width:"130px"},{title:s("trust.interopCols.algorithm"),key:"algorithm",width:"180px"},{title:s("trust.interopCols.compatible"),key:"compatible",width:"110px"},{title:s("trust.interopCols.result"),key:"result",width:"110px"},{title:s("trust.interopCols.latency"),key:"latencyMs",width:"100px"},{title:s("trust.interopCols.peer"),key:"peer",width:"150px"},{title:s("trust.interopCols.createdAt"),key:"createdAt",width:"160px"}]),Bt=D(()=>[{title:s("trust.satCols.id"),key:"id",width:"130px"},{title:s("trust.satCols.provider"),key:"provider",width:"110px"},{title:s("trust.satCols.priority"),key:"priority",width:"90px"},{title:s("trust.satCols.status"),key:"status",width:"110px"},{title:s("trust.satCols.payload"),key:"payload"},{title:s("trust.satCols.createdAt"),key:"createdAt",width:"160px"},{title:s("trust.satCols.action"),key:"action",width:"210px"}]),Kt=D(()=>[{title:s("trust.hsmCols.id"),key:"id",width:"130px"},{title:s("trust.hsmCols.vendor"),key:"vendor",width:"110px"},{title:s("trust.hsmCols.model"),key:"model",width:"140px"},{title:s("trust.hsmCols.serial"),key:"serialNumber",width:"180px"},{title:s("trust.hsmCols.compliance"),key:"complianceLevel",width:"140px"},{title:s("trust.hsmCols.firmware"),key:"firmwareVersion",width:"110px"},{title:s("trust.hsmCols.action"),key:"action",width:"160px"}]),Gt=D(()=>{let t=St.value;return H.value&&(t=t.filter(o=>o.anchor===H.value)),B.value&&(t=t.filter(o=>o.status===B.value)),t}),Jt=D(()=>{let t=xt.value;return K.value&&(t=t.filter(o=>o.provider===K.value)),G.value&&(t=t.filter(o=>o.status===G.value)),t}),Qt=D(()=>J.value?mt.value.filter(t=>t.vendor===J.value):mt.value),zt=D(()=>z.value.attestations.total?z.value.attestations.valid/z.value.attestations.total*100:0);function yt(t){const o=`trust.anchorLabels.${t}`,p=s(o);return p===o?t:p}function Yt(t){return{tpm:"blue",tee:"purple",secure_element:"cyan"}[t]||"default"}function wt(t){const o=`trust.attestStatusLabels.${t}`,p=s(o);return p===o?t:p}function Wt(t){return{valid:"green",expired:"default",failed:"red",pending:"processing"}[t]||"default"}function Lt(t){const o=`trust.satStatusLabels.${t}`,p=s(o);return p===o?t:p}function Xt(t){return{queued:"default",sent:"blue",confirmed:"green",failed:"red"}[t]||"default"}function Zt(t){return t>=8?"red":t>=6?"orange":t>=4?"gold":"default"}function te(t){return{iridium:"blue",starlink:"purple",beidou:"red"}[t]||"default"}function Tt(t){return{yubikey:"green",ledger:"blue",trezor:"orange",generic:"default"}[t]||"default"}function ee(t){return{fips_140_2:"cyan",fips_140_3:"blue",cc_eal4:"purple"}[t]||"default"}function ae(t){return t<=50?"green":t<=200?"blue":t<=1e3?"gold":"red"}function le(t){return t>=95?"#52c41a":t>=80?"#1677ff":t>=60?"#faad14":"#ff4d4f"}function vt(t,o){return t?t.length<=o?t:t.slice(0,o)+"…":""}function R(t){return`"${String(t).replace(/"/g,'\\"')}"`}async function V(){C.value=!0;try{const[t,o,p,O,bt]=await Promise.all([r.execute("trust attestations --limit 200 --json",1e4).catch(()=>({output:""})),r.execute("trust interop-tests --limit 200 --json",1e4).catch(()=>({output:""})),r.execute("trust sat-messages --limit 200 --json",1e4).catch(()=>({output:""})),r.execute("trust hsm-devices --limit 200 --json",1e4).catch(()=>({output:""})),r.execute("trust stats --json",8e3).catch(()=>({output:""}))]);St.value=Me(t.output),Ct.value=Ie(o.output),xt.value=Ee(p.output),mt.value=Ve(O.output),z.value=He(bt.output)}catch(t){_.error(s("trust.msg.loadFailed")+": "+(t?.message||t))}finally{C.value=!1}}async function se(){L.value=!0;try{const t=[`trust attest ${A.anchor}`];A.challenge.trim()&&t.push(`-c ${R(A.challenge.trim())}`),A.fingerprint.trim()&&t.push(`-f ${R(A.fingerprint.trim())}`),t.push("--json");const{output:o}=await r.execute(t.join(" "),1e4),p=Re(o);if(!p.ok){_.error(s("trust.msg.attestFailed")+": "+(p.reason||o.slice(0,120)));return}_.success(s("trust.msg.attestSuccess",{status:p.status})),at.value=!1,Ft(),await V()}catch(t){_.error(s("trust.msg.attestFailed")+": "+(t?.message||t))}finally{L.value=!1}}async function oe(){if(!x.algorithm.trim()){_.warning(s("trust.msg.interopAlgEmpty"));return}L.value=!0;try{const t=[`trust interop-test ${R(x.algorithm.trim())}`];x.peer.trim()&&t.push(`-p ${R(x.peer.trim())}`),x.latency>0&&t.push(`-l ${x.latency}`),t.push("--json");const{output:o}=await r.execute(t.join(" "),1e4),p=Oe(o);if(!p.ok){_.error(s("trust.msg.interopFailed")+": "+(p.reason||o.slice(0,120)));return}_.success(s("trust.msg.interopSuccess",{compat:p.compatible?s("trust.table.compatible"):s("trust.table.incompatible"),latency:p.latencyMs})),lt.value=!1,jt(),await V()}catch(t){_.error(s("trust.msg.interopFailed")+": "+(t?.message||t))}finally{L.value=!1}}async function re(){if(!w.payload.trim()){_.warning(s("trust.msg.satPayloadEmpty"));return}L.value=!0;try{const t=[`trust sat-send ${R(w.payload.trim())}`,`-p ${w.provider}`,`-r ${w.priority}`,"--json"],{output:o}=await r.execute(t.join(" "),1e4),p=pt(o);if(!p.ok){_.error(s("trust.msg.satFailed")+": "+(p.reason||o.slice(0,120)));return}_.success(s("trust.msg.satSuccess",{id:p.id?.slice(0,8)})),st.value=!1,Mt(),await V()}catch(t){_.error(s("trust.msg.satFailed")+": "+(t?.message||t))}finally{L.value=!1}}async function gt(t,o){try{const{output:p}=await r.execute(`trust sat-status ${t.id} ${o} --json`,8e3),O=pt(p);if(!O.ok){_.error(s("trust.msg.satUpdateFailed")+": "+(O.reason||p.slice(0,120)));return}_.success(s("trust.msg.satUpdateSuccess")),await V()}catch(p){_.error(s("trust.msg.satUpdateFailed")+": "+(p?.message||p))}}async function ne(){L.value=!0;try{const t=[`trust hsm-register ${b.vendor}`];b.model.trim()&&t.push(`-m ${R(b.model.trim())}`),b.serial.trim()&&t.push(`-s ${R(b.serial.trim())}`),b.compliance&&t.push(`-c ${b.compliance}`),b.firmware.trim()&&t.push(`-f ${R(b.firmware.trim())}`),t.push("--json");const{output:o}=await r.execute(t.join(" "),1e4),p=pt(o);if(!p.ok){_.error(s("trust.msg.hsmRegisterFailed")+": "+(p.reason||o.slice(0,120)));return}_.success(s("trust.msg.hsmRegisterSuccess",{id:p.id?.slice(0,8)})),ot.value=!1,Rt(),await V()}catch(t){_.error(s("trust.msg.hsmRegisterFailed")+": "+(t?.message||t))}finally{L.value=!1}}async function ie(t){try{const{output:o}=await r.execute(`trust hsm-remove ${t.id} --json`,8e3),p=pt(o);if(!p.ok){_.error(s("trust.msg.hsmRemoveFailed")+": "+(p.reason||o.slice(0,120)));return}_.success(s("trust.msg.hsmRemoveSuccess")),await V()}catch(o){_.error(s("trust.msg.hsmRemoveFailed")+": "+(o?.message||o))}}function ue(t){P.value=t,M.data="",M.algorithm="",I.value=null,ft.value=!0}async function de(){if(!M.data.trim()){_.warning(s("trust.msg.signEmpty"));return}if(P.value){ct.value=!0,I.value=null;try{const t=[`trust hsm-sign ${P.value.id}`];t.push(`-d ${R(M.data)}`),M.algorithm.trim()&&t.push(`-a ${R(M.algorithm.trim())}`),t.push("--json");const{output:o}=await r.execute(t.join(" "),1e4);I.value=qe(o),I.value.ok&&_.success(s("trust.msg.signSuccess"))}catch(t){_.error(s("trust.msg.signFailed")+": "+(t?.message||t))}finally{ct.value=!1}}}function Ft(){A.anchor="tpm",A.challenge="",A.fingerprint=""}function jt(){x.algorithm="ml_kem_768",x.peer="",x.latency=50}function Mt(){w.provider="iridium",w.priority=5,w.payload=""}function Rt(){b.vendor="yubikey",b.model="",b.serial="",b.compliance=void 0,b.firmware=""}return we(V),(t,o)=>{const p=y("a-button"),O=y("a-menu-item"),bt=y("a-menu"),pe=y("a-dropdown"),ce=y("a-space"),Q=y("a-statistic"),Y=y("a-card"),W=y("a-col"),me=y("a-row"),U=y("a-radio-button"),X=y("a-radio-group"),T=y("a-tag"),rt=y("a-table"),nt=y("a-tab-pane"),fe=y("a-popconfirm"),ye=y("a-tabs"),it=y("a-select-option"),ut=y("a-select"),$=y("a-form-item"),q=y("a-input"),Z=y("a-form"),tt=y("a-modal"),Ut=y("a-input-number"),It=y("a-textarea"),ve=y("a-divider"),ge=y("a-empty"),Ot=y("a-descriptions-item"),be=y("a-descriptions"),_e=y("a-alert");return i(),c("div",null,[S("div",Be,[S("div",null,[S("h2",Ke,u(t.$t("trust.title")),1),S("p",Ge,u(t.$t("trust.subtitle")),1)]),l(ce,null,{default:a(()=>[l(p,{loading:C.value,onClick:V},{icon:a(()=>[l(v(xe))]),default:a(()=>[m(" "+u(t.$t("trust.refresh")),1)]),_:1},8,["loading"]),l(pe,null,{overlay:a(()=>[l(bt,null,{default:a(()=>[l(O,{key:"attest",onClick:o[0]||(o[0]=e=>at.value=!0)},{default:a(()=>[m(u(t.$t("trust.actions.attest")),1)]),_:1}),l(O,{key:"interop",onClick:o[1]||(o[1]=e=>lt.value=!0)},{default:a(()=>[m(u(t.$t("trust.actions.interop")),1)]),_:1}),l(O,{key:"sat",onClick:o[2]||(o[2]=e=>st.value=!0)},{default:a(()=>[m(u(t.$t("trust.actions.sat")),1)]),_:1}),l(O,{key:"hsm",onClick:o[3]||(o[3]=e=>ot.value=!0)},{default:a(()=>[m(u(t.$t("trust.actions.hsm")),1)]),_:1})]),_:1})]),default:a(()=>[l(p,{type:"primary"},{icon:a(()=>[l(v(Ae))]),default:a(()=>[m(" "+u(t.$t("trust.newDropdown")),1)]),_:1})]),_:1})]),_:1})]),l(me,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:a(()=>[l(W,{xs:12,sm:8,lg:5},{default:a(()=>[l(Y,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[l(Q,{title:t.$t("trust.stats.attestations"),value:z.value.attestations.total,"value-style":{color:"#1677ff",fontSize:"20px"}},{prefix:a(()=>[l(v(Nt))]),_:1},8,["title","value"]),S("div",Je,u(t.$t("trust.stats.validSuffix",{n:z.value.attestations.valid})),1)]),_:1})]),_:1}),l(W,{xs:12,sm:8,lg:5},{default:a(()=>[l(Y,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[l(Q,{title:t.$t("trust.stats.interop"),value:z.value.interopTests.total,"value-style":{color:"#722ed1",fontSize:"20px"}},{prefix:a(()=>[l(v(Et))]),_:1},8,["title","value"]),S("div",Qe,u(t.$t("trust.stats.interopSub",{compatible:z.value.interopTests.compatible,avg:z.value.interopTests.avgLatencyMs})),1)]),_:1})]),_:1}),l(W,{xs:12,sm:8,lg:5},{default:a(()=>[l(Y,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[l(Q,{title:t.$t("trust.stats.satellite"),value:z.value.satellite.total,"value-style":{color:"#13c2c2",fontSize:"20px"}},{prefix:a(()=>[l(v(Pt))]),_:1},8,["title","value"]),S("div",Ye,u(t.$t("trust.stats.satelliteSub",{queued:z.value.satellite.queued,confirmed:z.value.satellite.confirmed})),1)]),_:1})]),_:1}),l(W,{xs:12,sm:8,lg:5},{default:a(()=>[l(Y,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[l(Q,{title:t.$t("trust.stats.hsm"),value:z.value.hsm.total,"value-style":{color:"#faad14",fontSize:"20px"}},{prefix:a(()=>[l(v(_t))]),_:1},8,["title","value"])]),_:1})]),_:1}),l(W,{xs:24,sm:8,lg:4},{default:a(()=>[l(Y,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[l(Q,{title:t.$t("trust.stats.passRate"),value:zt.value,suffix:"%",precision:0,"value-style":{color:le(zt.value),fontSize:"20px"}},{prefix:a(()=>[l(v(Vt))]),_:1},8,["title","value","value-style"])]),_:1})]),_:1})]),_:1}),l(ye,{activeKey:At.value,"onUpdate:activeKey":o[9]||(o[9]=e=>At.value=e),class:"trust-tabs"},{default:a(()=>[l(nt,{key:"attestations",tab:t.$t("trust.tabs.attestations")},{default:a(()=>[S("div",We,[l(X,{value:H.value,"onUpdate:value":o[4]||(o[4]=e=>H.value=e),size:"small","button-style":"solid"},{default:a(()=>[l(U,{value:""},{default:a(()=>[m(u(t.$t("trust.filter.allAnchors")),1)]),_:1}),(i(!0),c(h,null,N(v(ht),e=>(i(),g(U,{key:e,value:e},{default:a(()=>[m(u(yt(e)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"]),l(X,{value:B.value,"onUpdate:value":o[5]||(o[5]=e=>B.value=e),size:"small"},{default:a(()=>[l(U,{value:""},{default:a(()=>[m(u(t.$t("trust.filter.allStatuses")),1)]),_:1}),(i(!0),c(h,null,N(v(Le),e=>(i(),g(U,{key:e,value:e},{default:a(()=>[m(u(wt(e)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),l(rt,{columns:Dt.value,"data-source":Gt.value,pagination:{pageSize:20,showTotal:e=>t.$t("trust.table.totalSuffix",{n:e})},size:"small",loading:C.value,style:{background:"var(--bg-card)"}},{bodyCell:a(({column:e,record:d})=>[e.key==="id"?(i(),c("span",Xe,u(d.id.slice(0,12)),1)):f("",!0),e.key==="anchor"?(i(),g(T,{key:1,color:Yt(d.anchor),style:{"font-family":"monospace"}},{default:a(()=>[m(u(yt(d.anchor)),1)]),_:2},1032,["color"])):f("",!0),e.key==="status"?(i(),g(T,{key:2,color:Wt(d.status)},{default:a(()=>[m(u(wt(d.status)),1)]),_:2},1032,["color"])):f("",!0),e.key==="fingerprint"?(i(),c(h,{key:3},[d.deviceFingerprint?(i(),c("span",Ze,u(vt(d.deviceFingerprint,24)),1)):(i(),c("span",ta,"—"))],64)):f("",!0),e.key==="response"?(i(),c(h,{key:4},[d.response?(i(),c("span",ea,u(vt(d.response,24)),1)):(i(),c("span",aa,"—"))],64)):f("",!0),e.key==="createdAt"?(i(),c("span",la,u(v(kt)(d.createdAt)),1)):f("",!0)]),emptyText:a(()=>[S("div",sa,[l(v(Nt),{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),m(" "+u(H.value||B.value?t.$t("trust.table.emptyAttestFiltered"):t.$t("trust.table.emptyAttest")),1)])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"]),l(nt,{key:"interop",tab:t.$t("trust.tabs.interop")},{default:a(()=>[l(rt,{columns:Ht.value,"data-source":Ct.value,pagination:{pageSize:20,showTotal:e=>t.$t("trust.table.totalSuffix",{n:e})},size:"small",loading:C.value,style:{background:"var(--bg-card)"}},{bodyCell:a(({column:e,record:d})=>[e.key==="id"?(i(),c("span",oa,u(d.id.slice(0,12)),1)):f("",!0),e.key==="algorithm"?(i(),g(T,{key:1,color:"purple",style:{"font-family":"monospace"}},{default:a(()=>[m(u(d.algorithm),1)]),_:2},1024)):f("",!0),e.key==="compatible"?(i(),g(T,{key:2,color:d.compatible?"green":"red"},{default:a(()=>[d.compatible?(i(),g(v(Vt),{key:0})):(i(),g(v(ze),{key:1})),m(" "+u(d.compatible?t.$t("trust.table.compatible"):t.$t("trust.table.incompatible")),1)]),_:2},1032,["color"])):f("",!0),e.key==="result"?(i(),c(h,{key:3},[d.result?(i(),c("span",ra,u(d.result),1)):(i(),c("span",na,"—"))],64)):f("",!0),e.key==="latencyMs"?(i(),g(T,{key:4,color:ae(d.latencyMs)},{default:a(()=>[m(u(d.latencyMs)+"ms",1)]),_:2},1032,["color"])):f("",!0),e.key==="peer"?(i(),c(h,{key:5},[d.peer?(i(),c("span",ia,u(d.peer),1)):(i(),c("span",ua,"—"))],64)):f("",!0),e.key==="createdAt"?(i(),c("span",da,u(v(kt)(d.createdAt)),1)):f("",!0)]),emptyText:a(()=>[S("div",pa,[l(v(Et),{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),m(" "+u(t.$t("trust.table.emptyInterop")),1)])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"]),l(nt,{key:"satellite",tab:t.$t("trust.tabs.satellite")},{default:a(()=>[S("div",ca,[l(X,{value:K.value,"onUpdate:value":o[6]||(o[6]=e=>K.value=e),size:"small","button-style":"solid"},{default:a(()=>[l(U,{value:""},{default:a(()=>[m(u(t.$t("trust.filter.allProviders")),1)]),_:1}),(i(!0),c(h,null,N(v(qt),e=>(i(),g(U,{key:e,value:e},{default:a(()=>[m(u(e),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"]),l(X,{value:G.value,"onUpdate:value":o[7]||(o[7]=e=>G.value=e),size:"small"},{default:a(()=>[l(U,{value:""},{default:a(()=>[m(u(t.$t("trust.filter.allStatuses")),1)]),_:1}),(i(!0),c(h,null,N(v(Te),e=>(i(),g(U,{key:e,value:e},{default:a(()=>[m(u(Lt(e)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),l(rt,{columns:Bt.value,"data-source":Jt.value,pagination:{pageSize:20,showTotal:e=>t.$t("trust.table.totalSuffix",{n:e})},size:"small",loading:C.value,style:{background:"var(--bg-card)"}},{bodyCell:a(({column:e,record:d})=>[e.key==="id"?(i(),c("span",ma,u(d.id.slice(0,12)),1)):f("",!0),e.key==="provider"?(i(),g(T,{key:1,color:te(d.provider),style:{"font-family":"monospace"}},{default:a(()=>[m(u(d.provider),1)]),_:2},1032,["color"])):f("",!0),e.key==="priority"?(i(),g(T,{key:2,color:Zt(d.priority)},{default:a(()=>[m("P"+u(d.priority),1)]),_:2},1032,["color"])):f("",!0),e.key==="status"?(i(),g(T,{key:3,color:Xt(d.status)},{default:a(()=>[m(u(Lt(d.status)),1)]),_:2},1032,["color"])):f("",!0),e.key==="payload"?(i(),c("span",fa,u(vt(d.payload,60)),1)):f("",!0),e.key==="createdAt"?(i(),c("span",ya,u(v(kt)(d.createdAt)),1)):f("",!0),e.key==="action"?(i(),c(h,{key:6},[d.status==="queued"?(i(),g(p,{key:0,size:"small",type:"link",onClick:dt=>gt(d,"sent")},{default:a(()=>[m(u(t.$t("trust.table.satMarkSent")),1)]),_:1},8,["onClick"])):f("",!0),d.status==="sent"?(i(),g(p,{key:1,size:"small",type:"link",style:{color:"#52c41a"},onClick:dt=>gt(d,"confirmed")},{default:a(()=>[m(u(t.$t("trust.table.satConfirm")),1)]),_:1},8,["onClick"])):f("",!0),["queued","sent"].includes(d.status)?(i(),g(p,{key:2,size:"small",type:"link",danger:"",onClick:dt=>gt(d,"failed")},{default:a(()=>[m(u(t.$t("trust.table.satFail")),1)]),_:1},8,["onClick"])):f("",!0)],64)):f("",!0)]),emptyText:a(()=>[S("div",va,[l(v(Pt),{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),m(" "+u(K.value||G.value?t.$t("trust.table.emptySatFiltered"):t.$t("trust.table.emptySat")),1)])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"]),l(nt,{key:"hsm",tab:t.$t("trust.tabs.hsm")},{default:a(()=>[S("div",ga,[l(X,{value:J.value,"onUpdate:value":o[8]||(o[8]=e=>J.value=e),size:"small","button-style":"solid"},{default:a(()=>[l(U,{value:""},{default:a(()=>[m(u(t.$t("trust.filter.allVendors")),1)]),_:1}),(i(!0),c(h,null,N(v($t),e=>(i(),g(U,{key:e,value:e},{default:a(()=>[m(u(e),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),l(rt,{columns:Kt.value,"data-source":Qt.value,pagination:{pageSize:20,showTotal:e=>t.$t("trust.table.deviceSuffix",{n:e})},size:"small",loading:C.value,style:{background:"var(--bg-card)"}},{bodyCell:a(({column:e,record:d})=>[e.key==="id"?(i(),c("span",ba,u(d.id.slice(0,12)),1)):f("",!0),e.key==="vendor"?(i(),g(T,{key:1,color:Tt(d.vendor),style:{"font-family":"monospace"}},{default:a(()=>[m(u(d.vendor),1)]),_:2},1032,["color"])):f("",!0),e.key==="model"?(i(),c(h,{key:2},[d.model?(i(),c("span",_a,u(d.model),1)):(i(),c("span",ka,"—"))],64)):f("",!0),e.key==="serialNumber"?(i(),c(h,{key:3},[d.serialNumber?(i(),c("span",ha,u(d.serialNumber),1)):(i(),c("span",$a,"—"))],64)):f("",!0),e.key==="complianceLevel"?(i(),c(h,{key:4},[d.complianceLevel?(i(),g(T,{key:0,color:ee(d.complianceLevel),style:{"font-family":"monospace","font-size":"11px"}},{default:a(()=>[m(u(d.complianceLevel),1)]),_:2},1032,["color"])):(i(),c("span",Sa,"—"))],64)):f("",!0),e.key==="firmwareVersion"?(i(),c(h,{key:5},[d.firmwareVersion?(i(),c("span",Ca,u(d.firmwareVersion),1)):(i(),c("span",xa,"—"))],64)):f("",!0),e.key==="action"?(i(),c(h,{key:6},[l(p,{size:"small",type:"link",onClick:dt=>ue(d)},{default:a(()=>[m(u(t.$t("trust.table.hsmSign")),1)]),_:1},8,["onClick"]),l(fe,{title:t.$t("trust.removeConfirm.title"),"ok-text":t.$t("trust.removeConfirm.ok"),"ok-type":"danger","cancel-text":t.$t("trust.removeConfirm.cancel"),onConfirm:dt=>ie(d)},{default:a(()=>[l(p,{size:"small",type:"link",danger:""},{default:a(()=>[m(u(t.$t("trust.table.hsmRemove")),1)]),_:1})]),_:1},8,["title","ok-text","cancel-text","onConfirm"])],64)):f("",!0)]),emptyText:a(()=>[S("div",Aa,[l(v(_t),{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),m(" "+u(J.value?t.$t("trust.table.emptyHsmFiltered"):t.$t("trust.table.emptyHsm")),1)])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"])]),_:1},8,["activeKey"]),l(tt,{open:at.value,"onUpdate:open":o[13]||(o[13]=e=>at.value=e),title:t.$t("trust.attest_modal.title"),"confirm-loading":L.value,width:540,"ok-text":t.$t("trust.attest_modal.ok"),"cancel-text":t.$t("trust.attest_modal.cancel"),onOk:se,onCancel:Ft},{default:a(()=>[l(Z,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:a(()=>[l($,{label:t.$t("trust.attest_modal.anchorLabel"),required:""},{default:a(()=>[l(ut,{value:A.anchor,"onUpdate:value":o[10]||(o[10]=e=>A.anchor=e)},{default:a(()=>[(i(!0),c(h,null,N(v(ht),e=>(i(),g(it,{key:e,value:e},{default:a(()=>[m(u(yt(e))+" ("+u(e)+")",1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),_:1},8,["label"]),l($,{label:t.$t("trust.attest_modal.challengeLabel")},{default:a(()=>[l(q,{value:A.challenge,"onUpdate:value":o[11]||(o[11]=e=>A.challenge=e),placeholder:t.$t("trust.attest_modal.challengePlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),l($,{label:t.$t("trust.attest_modal.fingerprintLabel")},{default:a(()=>[l(q,{value:A.fingerprint,"onUpdate:value":o[12]||(o[12]=e=>A.fingerprint=e),placeholder:t.$t("trust.attest_modal.fingerprintPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),l(tt,{open:lt.value,"onUpdate:open":o[17]||(o[17]=e=>lt.value=e),title:t.$t("trust.interop_modal.title"),"confirm-loading":L.value,width:540,"ok-text":t.$t("trust.interop_modal.ok"),"cancel-text":t.$t("trust.interop_modal.cancel"),onOk:oe,onCancel:jt},{default:a(()=>[l(Z,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:a(()=>[l($,{label:t.$t("trust.interop_modal.algorithmLabel"),required:""},{default:a(()=>[l(q,{value:x.algorithm,"onUpdate:value":o[14]||(o[14]=e=>x.algorithm=e),placeholder:t.$t("trust.interop_modal.algorithmPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),l($,{label:t.$t("trust.interop_modal.peerLabel")},{default:a(()=>[l(q,{value:x.peer,"onUpdate:value":o[15]||(o[15]=e=>x.peer=e),placeholder:t.$t("trust.interop_modal.peerPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),l($,{label:t.$t("trust.interop_modal.latencyLabel")},{default:a(()=>[l(Ut,{value:x.latency,"onUpdate:value":o[16]||(o[16]=e=>x.latency=e),min:0,style:{width:"160px"}},null,8,["value"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),l(tt,{open:st.value,"onUpdate:open":o[21]||(o[21]=e=>st.value=e),title:t.$t("trust.sat_modal.title"),"confirm-loading":L.value,width:540,"ok-text":t.$t("trust.sat_modal.ok"),"cancel-text":t.$t("trust.sat_modal.cancel"),onOk:re,onCancel:Mt},{default:a(()=>[l(Z,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:a(()=>[l($,{label:t.$t("trust.sat_modal.providerLabel"),required:""},{default:a(()=>[l(ut,{value:w.provider,"onUpdate:value":o[18]||(o[18]=e=>w.provider=e)},{default:a(()=>[(i(!0),c(h,null,N(v(qt),e=>(i(),g(it,{key:e,value:e},{default:a(()=>[m(u(e),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),_:1},8,["label"]),l($,{label:t.$t("trust.sat_modal.priorityLabel")},{default:a(()=>[l(Ut,{value:w.priority,"onUpdate:value":o[19]||(o[19]=e=>w.priority=e),min:1,max:10,style:{width:"120px"}},null,8,["value"]),S("span",za,u(t.$t("trust.sat_modal.priorityHint")),1)]),_:1},8,["label"]),l($,{label:t.$t("trust.sat_modal.payloadLabel"),required:""},{default:a(()=>[l(It,{value:w.payload,"onUpdate:value":o[20]||(o[20]=e=>w.payload=e),placeholder:t.$t("trust.sat_modal.payloadPlaceholder"),"auto-size":{minRows:2,maxRows:5}},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),l(tt,{open:ot.value,"onUpdate:open":o[27]||(o[27]=e=>ot.value=e),title:t.$t("trust.hsm_modal.title"),"confirm-loading":L.value,width:560,"ok-text":t.$t("trust.hsm_modal.ok"),"cancel-text":t.$t("trust.hsm_modal.cancel"),onOk:ne,onCancel:Rt},{default:a(()=>[l(Z,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:a(()=>[l($,{label:t.$t("trust.hsm_modal.vendorLabel"),required:""},{default:a(()=>[l(ut,{value:b.vendor,"onUpdate:value":o[22]||(o[22]=e=>b.vendor=e)},{default:a(()=>[(i(!0),c(h,null,N(v($t),e=>(i(),g(it,{key:e,value:e},{default:a(()=>[m(u(e),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),_:1},8,["label"]),l($,{label:t.$t("trust.hsm_modal.modelLabel")},{default:a(()=>[l(q,{value:b.model,"onUpdate:value":o[23]||(o[23]=e=>b.model=e),placeholder:t.$t("trust.hsm_modal.modelPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),l($,{label:t.$t("trust.hsm_modal.serialLabel")},{default:a(()=>[l(q,{value:b.serial,"onUpdate:value":o[24]||(o[24]=e=>b.serial=e),placeholder:t.$t("trust.hsm_modal.serialPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),l($,{label:t.$t("trust.hsm_modal.complianceLabel")},{default:a(()=>[l(ut,{value:b.compliance,"onUpdate:value":o[25]||(o[25]=e=>b.compliance=e),"allow-clear":""},{default:a(()=>[(i(!0),c(h,null,N(v(Fe),e=>(i(),g(it,{key:e,value:e},{default:a(()=>[m(u(e),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),_:1},8,["label"]),l($,{label:t.$t("trust.hsm_modal.firmwareLabel")},{default:a(()=>[l(q,{value:b.firmware,"onUpdate:value":o[26]||(o[26]=e=>b.firmware=e),placeholder:t.$t("trust.hsm_modal.firmwarePlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),l(tt,{open:ft.value,"onUpdate:open":o[30]||(o[30]=e=>ft.value=e),title:t.$t("trust.sign_modal.title",{id:P.value?.id?.slice(0,12)||""}),width:640,footer:null},{default:a(()=>[P.value?(i(),c("div",wa,[l(Z,{"label-col":{span:5},"wrapper-col":{span:19}},{default:a(()=>[l($,{label:t.$t("trust.sign_modal.deviceLabel")},{default:a(()=>[l(T,{color:Tt(P.value.vendor),style:{"font-family":"monospace"}},{default:a(()=>[m(u(P.value.vendor),1)]),_:1},8,["color"]),S("span",La,u(P.value.model||"—"),1)]),_:1},8,["label"]),l($,{label:t.$t("trust.sign_modal.algorithmLabel")},{default:a(()=>[l(q,{value:M.algorithm,"onUpdate:value":o[28]||(o[28]=e=>M.algorithm=e),placeholder:t.$t("trust.sign_modal.algorithmPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),l($,{label:t.$t("trust.sign_modal.dataLabel"),required:""},{default:a(()=>[l(It,{value:M.data,"onUpdate:value":o[29]||(o[29]=e=>M.data=e),placeholder:t.$t("trust.sign_modal.dataPlaceholder"),"auto-size":{minRows:3,maxRows:8}},null,8,["value","placeholder"])]),_:1},8,["label"]),l($,{"wrapper-col":{offset:5,span:19}},{default:a(()=>[l(p,{type:"primary",loading:ct.value,onClick:de},{icon:a(()=>[l(v(_t))]),default:a(()=>[m(" "+u(t.$t("trust.sign_modal.submit")),1)]),_:1},8,["loading"])]),_:1})]),_:1}),l(ve),I.value?(i(),c("div",Ta,[l(be,{column:1,size:"small",bordered:""},{default:a(()=>[l(Ot,{label:t.$t("trust.sign_modal.resultAlgorithm")},{default:a(()=>[l(T,{color:"purple",style:{"font-family":"monospace"}},{default:a(()=>[m(u(I.value.algorithm),1)]),_:1})]),_:1},8,["label"]),l(Ot,{label:t.$t("trust.sign_modal.resultSignature")},{default:a(()=>[S("pre",Fa,u(I.value.signature),1)]),_:1},8,["label"])]),_:1}),I.value.reason?(i(),g(_e,{key:0,type:"warning","show-icon":"",message:t.$t("trust.sign_modal.failedReason",{reason:I.value.reason}),style:{"margin-top":"12px"}},null,8,["message"])):f("",!0)])):(i(),g(ge,{key:0,description:t.$t("trust.sign_modal.notSigned"),image:v(j)},null,8,["description","image"]))])):f("",!0)]),_:1},8,["open","title"])])}}},Oa=ke(ja,[["__scopeId","data-v-c6ee2f3e"]]);export{Oa as default};
|