chainlesschain 0.162.122 → 0.162.123
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/assets/web-panel/.build-hash +1 -1
- package/src/assets/web-panel/assets/AIOps-C5CSd8pY.js +1 -0
- package/src/assets/web-panel/assets/{ActionButton-Bqvaz1Yj.js → ActionButton-BugJtiJc.js} +1 -1
- package/src/assets/web-panel/assets/{Analytics-BhCnMbKz.js → Analytics-CzxpcV9E.js} +3 -3
- package/src/assets/web-panel/assets/{AppLayout-cs0TRZya.js → AppLayout-Cb0eHetM.js} +3 -3
- package/src/assets/web-panel/assets/Audit-qjq04wh8.js +1 -0
- package/src/assets/web-panel/assets/{Backup-BOglo5g6.js → Backup-C2Y_XNBA.js} +1 -1
- package/src/assets/web-panel/assets/{BaseInput-4qhQiJfI.js → BaseInput-CZ0c7QHk.js} +1 -1
- package/src/assets/web-panel/assets/{Chat-DUFX3Mv4.js → Chat-CaKDT3wV.js} +6 -6
- package/src/assets/web-panel/assets/{ChatBubbleRenderer-LWgyWUF_.js → ChatBubbleRenderer-TeKnMwPj.js} +1 -1
- package/src/assets/web-panel/assets/{Checkbox-C4eyD_nB.js → Checkbox-C6-Iu3bG.js} +1 -1
- package/src/assets/web-panel/assets/Codegen-TGLFk6P1.js +1 -0
- package/src/assets/web-panel/assets/{Col-3eHStfvJ.js → Col-DVBrO7AN.js} +1 -1
- package/src/assets/web-panel/assets/{Community-DFbKjEgh.js → Community-tg6-Rik1.js} +1 -1
- package/src/assets/web-panel/assets/{Compact-D5str1h-.js → Compact-DM4ZgFSE.js} +1 -1
- package/src/assets/web-panel/assets/Compliance-DFeWryxt.js +1 -0
- package/src/assets/web-panel/assets/{Cowork-Cdliboj6.js → Cowork-CJwiWkUY.js} +2 -2
- package/src/assets/web-panel/assets/{Cron-Bfmwl6iZ.js → Cron-dsdXHvrO.js} +2 -2
- package/src/assets/web-panel/assets/Crosschain-p7_5Gq-7.js +1 -0
- package/src/assets/web-panel/assets/{DID-xqi72kjo.js → DID-BB_LBLYT.js} +2 -2
- package/src/assets/web-panel/assets/{Dashboard-4l68QdSQ.js → Dashboard-Bh_HkNSD.js} +2 -2
- package/src/assets/web-panel/assets/{Dropdown-C2wsZOdn.js → Dropdown-dTFtVnKk.js} +1 -1
- package/src/assets/web-panel/assets/{EmailListRenderer-CWh_fKmI.js → EmailListRenderer-yqdttzXV.js} +1 -1
- package/src/assets/web-panel/assets/{FamilyGuardDashboard-CHK5rapA.js → FamilyGuardDashboard-DfX3YpUU.js} +1 -1
- package/src/assets/web-panel/assets/Federation-BJApfPV4.js +1 -0
- package/src/assets/web-panel/assets/{FormItemContext-lLOEHvAb.js → FormItemContext-DNMwIh7X.js} +1 -1
- package/src/assets/web-panel/assets/{GenericCardRenderer-CaDh2XiY.js → GenericCardRenderer-C-T8UQf0.js} +1 -1
- package/src/assets/web-panel/assets/{Git-B9SmGPMU.js → Git-SURFhkLi.js} +2 -2
- package/src/assets/web-panel/assets/Governance-B4u_KsfE.js +1 -0
- package/src/assets/web-panel/assets/Inference-2kr_rKQd.js +1 -0
- package/src/assets/web-panel/assets/{KnowledgeGraph-zYwypnwu.js → KnowledgeGraph-h-nL7J6x.js} +1 -1
- package/src/assets/web-panel/assets/{Logs-D6owai5o.js → Logs-DjuWREBJ.js} +2 -2
- package/src/assets/web-panel/assets/Marketplace-W9Iz8b2m.js +1 -0
- package/src/assets/web-panel/assets/{McpTools-Dxlypa0R.js → McpTools-D0waMomb.js} +4 -4
- package/src/assets/web-panel/assets/{Memory-BxBHR7eW.js → Memory-Ci768GQ3.js} +2 -2
- package/src/assets/web-panel/assets/{MobileBridge-Car9kLtE.js → MobileBridge-4jAehfcz.js} +2 -2
- package/src/assets/web-panel/assets/{MobileProjects-59gyfK6T.js → MobileProjects-RpFuAiNz.js} +1 -1
- package/src/assets/web-panel/assets/{Mtc-2YBBawFi.js → Mtc-DJdw8btT.js} +2 -2
- package/src/assets/web-panel/assets/{MtcAudit-DczAeHfM.js → MtcAudit-Dc596XgH.js} +2 -2
- package/src/assets/web-panel/assets/{Multisig-CPxyt7a-.js → Multisig--Qs7eGsH.js} +3 -3
- package/src/assets/web-panel/assets/NLProgramming-D3y71FDX.js +1 -0
- package/src/assets/web-panel/assets/{Notes-tHRMLOQ3.js → Notes-uMxjj66_.js} +3 -3
- package/src/assets/web-panel/assets/{NotificationSettings-DxIYUWPW.js → NotificationSettings-C4ikBOsm.js} +1 -1
- package/src/assets/web-panel/assets/{OrderTableRenderer-BMpVfQkg.js → OrderTableRenderer-BpmdunAz.js} +1 -1
- package/src/assets/web-panel/assets/{Organization-BBsie-kN.js → Organization-BBEmFNGM.js} +4 -4
- package/src/assets/web-panel/assets/{Overflow-DrdVw_fC.js → Overflow-B-4_IpbB.js} +1 -1
- package/src/assets/web-panel/assets/{P2P-CMBYxejX.js → P2P-DdOf9BZs.js} +2 -2
- package/src/assets/web-panel/assets/PdhVaultBrowser-DDU2Zc9Q.js +7 -0
- package/src/assets/web-panel/assets/{Permissions-W4kD06Cj.js → Permissions-B1ebgevF.js} +4 -4
- package/src/assets/web-panel/assets/{PersonalDataHub-nuqNTK2w.js → PersonalDataHub-B3WcvKni.js} +2 -2
- package/src/assets/web-panel/assets/Pipeline-DASuPDc3.js +1 -0
- package/src/assets/web-panel/assets/Privacy-DnixwmhJ.js +1 -0
- package/src/assets/web-panel/assets/{ProjectInit-hCWXNnGJ.js → ProjectInit-BQjMDkML.js} +2 -2
- package/src/assets/web-panel/assets/{ProjectSettings--BzvEaxE.js → ProjectSettings-dHyZ3SxW.js} +2 -2
- package/src/assets/web-panel/assets/{Projects-C6l6z4Mo.js → Projects-BGWEJIVT.js} +1 -1
- package/src/assets/web-panel/assets/{Providers-kEifEWLb.js → Providers-Bl0dw6cI.js} +1 -1
- package/src/assets/web-panel/assets/{QuickAsk-B6oLUYKR.js → QuickAsk-BDrk7l3t.js} +1 -1
- package/src/assets/web-panel/assets/Recommend-BPKof_CA.js +1 -0
- package/src/assets/web-panel/assets/Reputation-6MNJLklK.js +1 -0
- package/src/assets/web-panel/assets/{Row-W6LSmdzh.js → Row-DmGJwpfd.js} +1 -1
- package/src/assets/web-panel/assets/{RssFeed-DJi97lWh.js → RssFeed-9-Fxh3_w.js} +2 -2
- package/src/assets/web-panel/assets/Search-CCHjey_D.js +1 -0
- package/src/assets/web-panel/assets/{Security-BtawKhmm.js → Security-D6CySV7r.js} +3 -3
- package/src/assets/web-panel/assets/{Services-BdCe11of.js → Services-Co8Mk8qE.js} +2 -2
- package/src/assets/web-panel/assets/{Skeleton-C_wcDxpN.js → Skeleton-BdON8M-1.js} +1 -1
- package/src/assets/web-panel/assets/{Skills-n2GgEfQ1.js → Skills-CEJE1Go1.js} +1 -1
- package/src/assets/web-panel/assets/Sla-BSxFvFX9.js +1 -0
- package/src/assets/web-panel/assets/{SpeechSettings-D6qCWpan.js → SpeechSettings-C3rShYlV.js} +1 -1
- package/src/assets/web-panel/assets/{SyncSettings-BBbldyeR.js → SyncSettings-52NXsfyj.js} +2 -2
- package/src/assets/web-panel/assets/{Tasks-DMkBOCW-.js → Tasks-He7CweW6.js} +1 -1
- package/src/assets/web-panel/assets/{Templates-DbLImR1I.js → Templates-UtjBlJIO.js} +1 -1
- package/src/assets/web-panel/assets/Tenant-Dd5XNbYF.js +1 -0
- package/src/assets/web-panel/assets/{Terminal-BjKUkiR1.js → Terminal-pFyh42cu.js} +2 -2
- package/src/assets/web-panel/assets/{TimelineRenderer-Drf_B0al.js → TimelineRenderer-BdfqBQmM.js} +1 -1
- package/src/assets/web-panel/assets/Tokens-CsgNsrdQ.js +1 -0
- package/src/assets/web-panel/assets/{Trigger-CNUB_qRQ.js → Trigger-Dt_N_rvo.js} +1 -1
- package/src/assets/web-panel/assets/Trust-B1lJzsPn.js +1 -0
- package/src/assets/web-panel/assets/{UkeySign-7o1O51qV.js → UkeySign-CW8YdFxg.js} +1 -1
- package/src/assets/web-panel/assets/{VideoEditing-Ccb1cTxo.js → VideoEditing-CU6o7qvp.js} +1 -1
- package/src/assets/web-panel/assets/{Wallet-EMf9MlLK.js → Wallet-DPxjEhbN.js} +4 -4
- package/src/assets/web-panel/assets/{WebAuthn-DOYoaCmi.js → WebAuthn-CuJ29YAF.js} +3 -3
- package/src/assets/web-panel/assets/{WorkflowEditor-BcFvWc2d.js → WorkflowEditor-BcCA2U8H.js} +1 -1
- package/src/assets/web-panel/assets/{chat-CPvCSHY4.js → chat-Cxl5DGsc.js} +1 -1
- package/src/assets/web-panel/assets/{colors-Ca7MoLtb.js → colors-FS_7Xggs.js} +1 -1
- package/src/assets/web-panel/assets/community-parser-Cuyslaku.js +3 -0
- package/src/assets/web-panel/assets/{compact-item-B9AUAVCQ.js → compact-item-BzXjd3wJ.js} +1 -1
- package/src/assets/web-panel/assets/{createContext-CnMJHqHw.js → createContext-DhF9bi_u.js} +1 -1
- package/src/assets/web-panel/assets/devWarning-B1j78JeH.js +1 -0
- package/src/assets/web-panel/assets/{hasIn-Bevd8pXd.js → hasIn-Y1a0aV9N.js} +1 -1
- package/src/assets/web-panel/assets/{index-D9VR1tES.js → index--fcP34eT.js} +1 -1
- package/src/assets/web-panel/assets/{index-BcRDjaEi.js → index-1iacQgo5.js} +3 -3
- package/src/assets/web-panel/assets/{index-BV1U7tR6.js → index-1khPb4ZS.js} +1 -1
- package/src/assets/web-panel/assets/{index-BzmhHe0m.js → index-B48PZ-xM.js} +1 -1
- package/src/assets/web-panel/assets/{index-BUlsrbu2.js → index-BBtULjKY.js} +1 -1
- package/src/assets/web-panel/assets/{index-CVxhWXMd.js → index-BNmWkPqm.js} +1 -1
- package/src/assets/web-panel/assets/{index-PidVLx0u.js → index-BTltEtoG.js} +1 -1
- package/src/assets/web-panel/assets/{index-BFkrnvs_.js → index-B_Z0PHC0.js} +1 -1
- package/src/assets/web-panel/assets/index-BaN6wKWx.js +1 -0
- package/src/assets/web-panel/assets/{index-HdGuA1pS.js → index-BepInmSi.js} +1 -1
- package/src/assets/web-panel/assets/{index-p1rI3d66.js → index-BllceSdr.js} +1 -1
- package/src/assets/web-panel/assets/{index-CGEc6vlv.js → index-BnvaUocg.js} +1 -1
- package/src/assets/web-panel/assets/{index-aB7GLimB.js → index-Bt_0ygjA.js} +1 -1
- package/src/assets/web-panel/assets/{index-CQKVKyjf.js → index-BzQkdgQW.js} +1 -1
- package/src/assets/web-panel/assets/{index-C3biz3RB.js → index-C2S8McM1.js} +1 -1
- package/src/assets/web-panel/assets/{index-ienIjr7_.js → index-CELVZPNt.js} +1 -1
- package/src/assets/web-panel/assets/{index-Dnk8TOm3.js → index-CETvk0NN.js} +1 -1
- package/src/assets/web-panel/assets/{index-BM1tI3g5.js → index-CRSkKj9M.js} +1 -1
- package/src/assets/web-panel/assets/{index-0DtNS6oi.js → index-Cgo1J_Kf.js} +1 -1
- package/src/assets/web-panel/assets/{index-DW3rTBy_.js → index-Ci7PSoQn.js} +1 -1
- package/src/assets/web-panel/assets/{index-DPk2HXTA.js → index-Cn9lbqaS.js} +1 -1
- package/src/assets/web-panel/assets/{index-CtIv89mI.js → index-CuTKOay7.js} +1 -1
- package/src/assets/web-panel/assets/{index-C5i4gKvN.js → index-CxYHV8nb.js} +1 -1
- package/src/assets/web-panel/assets/{index-B619_m_T.js → index-CzlCP4jP.js} +1 -1
- package/src/assets/web-panel/assets/{index-ecThTNhE.js → index-D3IVAG9l.js} +1 -1
- package/src/assets/web-panel/assets/{index-kUeSjyHt.js → index-DLyIxnjc.js} +1 -1
- package/src/assets/web-panel/assets/{index-BwDJvHfR.js → index-DUcVF8e6.js} +1 -1
- package/src/assets/web-panel/assets/{index-tUD_CWx-.js → index-DVTex5M8.js} +1 -1
- package/src/assets/web-panel/assets/{index-CvhLkwFR.js → index-DZJMsVI1.js} +1 -1
- package/src/assets/web-panel/assets/{index-gR1xGRvy.js → index-DfaSKEVD.js} +1 -1
- package/src/assets/web-panel/assets/{index-BGBbFzIJ.js → index-DgHWZVjv.js} +1 -1
- package/src/assets/web-panel/assets/{index-B3zlqc60.js → index-Dmjxpu0L.js} +1 -1
- package/src/assets/web-panel/assets/{index-2KMpdEzs.js → index-DxGVbuqr.js} +1 -1
- package/src/assets/web-panel/assets/{index-DAjYLhik.js → index-GCd5hs58.js} +1 -1
- package/src/assets/web-panel/assets/{index-Ct3wP67S.js → index-JUukFpxi.js} +1 -1
- package/src/assets/web-panel/assets/index-N7JKRLCC.js +1 -0
- package/src/assets/web-panel/assets/{index-Cd62bwRd.js → index-Na733kBa.js} +1 -1
- package/src/assets/web-panel/assets/{index-DTxmgfz2.js → index-Sl-sLj3T.js} +1 -1
- package/src/assets/web-panel/assets/{index-CAKYScOz.js → index-uLoKviUT.js} +1 -1
- package/src/assets/web-panel/assets/{initDefaultProps-dsKHYCPH.js → initDefaultProps-D6QmlnQ-.js} +1 -1
- package/src/assets/web-panel/assets/{motion-DdPCK2zh.js → motion-BHrTGY1_.js} +1 -1
- package/src/assets/web-panel/assets/{move-Bi0bmOjg.js → move-Bpph6B_N.js} +1 -1
- package/src/assets/web-panel/assets/mtc-parser-CEQffxds.js +1 -0
- package/src/assets/web-panel/assets/{omit-DCrBiySU.js → omit-Dx0YMbWn.js} +1 -1
- package/src/assets/web-panel/assets/{pickAttrs-CcJuqfya.js → pickAttrs-D-a8Fm6C.js} +1 -1
- package/src/assets/web-panel/assets/{placementArrow-DFGuzth-.js → placementArrow-DXFSVgxv.js} +1 -1
- package/src/assets/web-panel/assets/{responsiveObserve-B_WDlgvI.js → responsiveObserve-CxhQ1EaK.js} +1 -1
- package/src/assets/web-panel/assets/{slide-BSFabVgO.js → slide-IlBI0XU8.js} +1 -1
- package/src/assets/web-panel/assets/{statusUtils-CebvsGH8.js → statusUtils-COoXVzje.js} +1 -1
- package/src/assets/web-panel/assets/{styleChecker-CMuE7NWy.js → styleChecker-DCuq89M_.js} +1 -1
- package/src/assets/web-panel/assets/{useFlexGapSupport-RWGVgZNu.js → useFlexGapSupport-tfNE1ALO.js} +1 -1
- package/src/assets/web-panel/assets/{useFs-srxzzfG_.js → useFs-DD4bzBkU.js} +1 -1
- package/src/assets/web-panel/assets/{usePersonalDataHub-B5OwxZuK.js → usePersonalDataHub-DVkH1hbT.js} +1 -1
- package/src/assets/web-panel/assets/{vnode-CXOEebAH.js → vnode-D1ZmXyxM.js} +1 -1
- package/src/assets/web-panel/assets/{zoom-DKNwqG2v.js → zoom-DblBUHfi.js} +1 -1
- package/src/assets/web-panel/index.html +1 -1
- package/src/harness/mcp-client.js +67 -6
- package/src/lib/credential-guard.js +284 -0
- package/src/lib/ensure-utf8.js +6 -1
- package/src/lib/hook-manager.js +15 -6
- package/src/lib/mcp-client.js +1 -0
- package/src/lib/mcp-oauth.js +35 -4
- package/src/lib/repl-rewind.js +58 -0
- package/src/lib/repl-vim.js +13 -1
- package/src/lib/settings-hooks.cjs +12 -3
- package/src/repl/agent-repl.js +52 -2
- package/src/runtime/agent-core.js +76 -0
- package/src/assets/web-panel/assets/AIOps-BmS46GrQ.js +0 -1
- package/src/assets/web-panel/assets/Audit-AwLNQzvX.js +0 -1
- package/src/assets/web-panel/assets/Codegen-B9SRqAqh.js +0 -1
- package/src/assets/web-panel/assets/Compliance-DDYPQDiG.js +0 -1
- package/src/assets/web-panel/assets/Crosschain-Bfo6RvSg.js +0 -1
- package/src/assets/web-panel/assets/Federation-JpiE2iKR.js +0 -1
- package/src/assets/web-panel/assets/Governance-B3ODoSO2.js +0 -1
- package/src/assets/web-panel/assets/Inference-C_jP_nlz.js +0 -1
- package/src/assets/web-panel/assets/Marketplace-umRB80w4.js +0 -1
- package/src/assets/web-panel/assets/NLProgramming-DvKJ8imu.js +0 -1
- package/src/assets/web-panel/assets/PdhVaultBrowser-BBHzSaeq.js +0 -7
- package/src/assets/web-panel/assets/Pipeline-DzCX3yHy.js +0 -1
- package/src/assets/web-panel/assets/Privacy-9ENAJQOC.js +0 -1
- package/src/assets/web-panel/assets/Recommend-BIEMGN0q.js +0 -1
- package/src/assets/web-panel/assets/Reputation-D-9AEaRr.js +0 -1
- package/src/assets/web-panel/assets/Search-DOEB2utf.js +0 -1
- package/src/assets/web-panel/assets/Sla-D5WfrvLP.js +0 -1
- package/src/assets/web-panel/assets/Tenant-B0qM4w6Z.js +0 -1
- package/src/assets/web-panel/assets/Tokens-DgCx2Bfa.js +0 -1
- package/src/assets/web-panel/assets/Trust-JQUTjXXI.js +0 -1
- package/src/assets/web-panel/assets/community-parser-CO25nZFt.js +0 -3
- package/src/assets/web-panel/assets/devWarning-vFgm_Ssk.js +0 -1
- package/src/assets/web-panel/assets/index-BGUjPh7h.js +0 -1
- package/src/assets/web-panel/assets/index-Cx-wP5XE.js +0 -1
- package/src/assets/web-panel/assets/mtc-parser-BbAbUB-9.js +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{I as m,J as p,U as v,R as s,c as o,K as n,V as d,S as x,o as me,b as se,a as te,r as _,P as u,Q as f,F,Z as L,_ as Pe,$ as pe}from"./vendor-BvqAck49.js";import{_ as Be,b as fe,u as ye,E as be,d as g}from"./index-BcRDjaEi.js";import{s as Se}from"./community-parser-CO25nZFt.js";import ve from"./index-kUeSjyHt.js";import{aU as Ve,l as Je,L as Ye,q as We,at as qe,ak as Ke,$ as Ze,am as He,as as Ge,R as Qe}from"./icons-DP3uiYxy.js";import"./KeyCode-D63Tfrq7.js";import"./omit-DCrBiySU.js";import"./pickAttrs-CcJuqfya.js";import"./initDefaultProps-dsKHYCPH.js";import"./motion-DdPCK2zh.js";import"./raf-Deuc0E8-.js";import"./index-ecThTNhE.js";import"./index-DTxmgfz2.js";import"./isVisible-C7tPsqfj.js";import"./useState-BK4hy8Ma.js";import"./devWarning-vFgm_Ssk.js";import"./compact-item-B9AUAVCQ.js";import"./createContext-CnMJHqHw.js";import"./Compact-D5str1h-.js";import"./_getTag-DnrRH4E6.js";import"./styleChecker-CMuE7NWy.js";import"./zoom-DKNwqG2v.js";import"./ActionButton-Bqvaz1Yj.js";import"./vnode-CXOEebAH.js";function q(l){const t=Se(l);if(!t)return null;try{return JSON.parse(t)}catch{}const r=t.match(/\{[\s\S]*\}|\[[\s\S]*\]/);if(!r)return null;try{return JSON.parse(r[0])}catch{return null}}const Oe=Object.freeze(["accuracy","fairness","resilience","convergence_speed"]),Xe=Object.freeze(["none","exponential","linear","step"]),$e=Object.freeze(["z_score","iqr"]),ze=Object.freeze(["running","complete","applied","failed","cancelled"]),et=Object.freeze(["generic","task","review","vote"]);function k(l,t=0){return typeof l=="number"&&Number.isFinite(l)?l:t}function N(l){if(!l)return{noDb:!1,error:""};const t=Se(l),r=/Database not available/i.test(t);return{noDb:r,error:r?"Database not available":""}}function tt(l,t=0){if(!l||typeof l!="object")return null;const r=l.did||"";return r?{key:r,did:r,score:k(l.score,0),observations:k(l.observations,0),decay:String(l.decay||"none"),weightTotal:k(l.weightTotal,0),_idx:t}:null}function ce(l){const t=q(l);return Array.isArray(t)?t.map(tt).filter(Boolean):[]}function Ae(l,t=0){if(!l||typeof l!="object")return null;const r=l.did||"";return r?{key:`${r}-${t}`,did:r,score:k(l.score,0),reason:String(l.reason||""),zScore:typeof l.zScore=="number"?l.zScore:null,lower:typeof l.lower=="number"?l.lower:null,upper:typeof l.upper=="number"?l.upper:null}:null}function _e(l){const t=q(l);if(!t||typeof t!="object"||Array.isArray(t))return{method:"",threshold:0,totalSamples:0,anomalies:[],summary:"",message:""};const r=Array.isArray(t.anomalies)?t.anomalies.map(Ae).filter(Boolean):[];return{method:String(t.method||""),threshold:k(t.threshold,0),totalSamples:k(t.totalSamples,0),anomalies:r,summary:t.summary?String(t.summary):"",message:t.message?String(t.message):""}}function Re(l,t=0){if(!l||typeof l!="object")return null;const r=l.runId||"";return r?{key:r,runId:r,objective:String(l.objective||""),iterations:k(l.iterations,0),paramSpace:l.paramSpace??null,bestParams:l.bestParams??null,bestScore:k(l.bestScore,0),status:String(l.status||"complete").toLowerCase(),createdAt:l.createdAt??null,completedAt:l.completedAt??null,analytics:l.analytics??null,errorMessage:l.errorMessage??"",_idx:t}:null}function ge(l){const t=q(l);return Array.isArray(t)?t.map(Re).filter(Boolean):[]}function xe(l){const t=q(l);return!t||typeof t!="object"||Array.isArray(t)?null:Re(t,0)}function ke(l){const t=q(l);if(!t||typeof t!="object"||Array.isArray(t))return null;const r=t.reputationDistribution||{};return{analyticsId:String(t.analyticsId||""),runId:String(t.runId||""),reputationDistribution:{buckets:Array.isArray(r.buckets)?r.buckets.filter(e=>e&&typeof e=="object").map(e=>({label:String(e.label||""),count:k(e.count,0),min:typeof e.min=="number"?e.min:null,max:typeof e.max=="number"?e.max:null})):[],mean:typeof r.mean=="number"?r.mean:null,stdDev:typeof r.stdDev=="number"?r.stdDev:null},anomalies:t.anomalies&&typeof t.anomalies=="object"?{method:String(t.anomalies.method||""),totalSamples:k(t.anomalies.totalSamples,0),anomalies:Array.isArray(t.anomalies.anomalies)?t.anomalies.anomalies.map(Ae).filter(Boolean):[],summary:t.anomalies.summary?String(t.anomalies.summary):"",message:t.anomalies.message?String(t.anomalies.message):""}:{method:"",totalSamples:0,anomalies:[],summary:"",message:""},recommendations:Array.isArray(t.recommendations)?t.recommendations.filter(e=>typeof e=="string"):[]}}const ot={totalRuns:0,activeRuns:0,maxConcurrentOptimizations:0,byStatus:{},byObjective:{},observations:{totalObservations:0,totalDids:0},bestScoreEver:0};function he(l){const t=JSON.parse(JSON.stringify(ot));for(const e of ze)t.byStatus[e]=0;for(const e of Oe)t.byObjective[e]=0;const r=q(l);if(!r||typeof r!="object"||Array.isArray(r))return t;if(t.totalRuns=k(r.totalRuns,0),t.activeRuns=k(r.activeRuns,0),t.maxConcurrentOptimizations=k(r.maxConcurrentOptimizations,0),t.bestScoreEver=k(r.bestScoreEver,0),r.byStatus&&typeof r.byStatus=="object")for(const[e,w]of Object.entries(r.byStatus))typeof w=="number"&&Number.isFinite(w)&&(t.byStatus[e]=w);if(r.byObjective&&typeof r.byObjective=="object")for(const[e,w]of Object.entries(r.byObjective))typeof w=="number"&&Number.isFinite(w)&&(t.byObjective[e]=w);return r.observations&&typeof r.observations=="object"&&(t.observations.totalObservations=k(r.observations.totalObservations,0),t.observations.totalDids=k(r.observations.totalDids,0)),t}function at(l){if(l==null||l==="")return"—";const t=typeof l=="number"?new Date(l):new Date(String(l));return isNaN(t.getTime())?String(l):t.toLocaleString("zh-CN",{hour12:!1})}const nt={__name:"Reputation",setup(l,{expose:t}){t();const{t:r}=fe(),e=ye(),w=be.PRESENTED_IMAGE_SIMPLE,Q=_(!1),R=_(!1),K=_(!1),U=_(!1),A=_(!1),O=_([]),z=_([]),V=_({totalRuns:0,activeRuns:0,maxConcurrentOptimizations:0,byStatus:{},byObjective:{},observations:{totalObservations:0,totalDids:0},bestScoreEver:0}),P=_({noDb:!1,error:""}),X=_("scores"),E=_("none"),Z=_(!1),J=_(!1),j=_(!1),H=_(!1),h=te({did:"",score:.8,kind:"generic",weight:1}),S=te({objective:"accuracy",iterations:50}),T=te({method:"z_score",threshold:2.5,decay:"none"}),D=_(null),I=_(null),B=_(null),Y=se(()=>[{title:r("reputation.scoreColumns.rank"),key:"rank",width:"60px"},{title:r("reputation.scoreColumns.did"),key:"did"},{title:r("reputation.scoreColumns.score"),key:"score",width:"220px"},{title:r("reputation.scoreColumns.observations"),key:"observations",width:"100px"},{title:r("reputation.scoreColumns.weightTotal"),key:"weightTotal",width:"100px"}]),oe=se(()=>[{title:r("reputation.runColumns.runId"),key:"runId",width:"140px"},{title:r("reputation.runColumns.objective"),key:"objective",width:"140px"},{title:r("reputation.runColumns.iterations"),key:"iterations",width:"80px"},{title:r("reputation.runColumns.bestScore"),key:"bestScore",width:"110px"},{title:r("reputation.runColumns.status"),key:"status",width:"100px"},{title:r("reputation.runColumns.createdAt"),key:"createdAt",width:"160px"},{title:r("reputation.runColumns.action"),key:"action",width:"160px"}]);function ae(i){const c=`reputation.decay.${i}`,y=r(c);return y===c?i:y}function $(i){const c=`reputation.kind.${i}`,y=r(c);return y===c?i:y}function ee(i){const c=`reputation.objective.${i}`,y=r(c);return y===c?i:y}function C(i){return{accuracy:"blue",fairness:"green",resilience:"purple",convergence_speed:"orange"}[i]||"default"}function ne(i){return{accuracy:"#1677ff",fairness:"#52c41a",resilience:"#722ed1",convergence_speed:"#fa8c16"}[i]||"#888"}function re(i){const c=`reputation.objectiveDesc.${i}`,y=r(c);return y===c?"":y}function a(i){const c=`reputation.status.${i}`,y=r(c);return y===c?i:y}function b(i){return{running:"processing",complete:"blue",applied:"green",failed:"red",cancelled:"default"}[i]||"default"}function W(i){return{running:"#1677ff",complete:"#13c2c2",applied:"#52c41a",failed:"#ff4d4f",cancelled:"#888"}[i]||"#888"}function we(i){return i===0?"gold":i===1?"silver":i===2?"bronze":""}function je(i){return i>=.8?"#52c41a":i>=.5?"#1677ff":i>=.3?"#faad14":"#ff4d4f"}function Ce(i,c){return c?Math.round(i/c*100):0}function Te(i){const c=I.value?.reputationDistribution.buckets.reduce((y,M)=>y+M.count,0)||0;return c?Math.round(i.count/c*100):0}function De(i){if(typeof i=="string")return i;try{return JSON.stringify(i,null,2)}catch{return String(i)}}async function G(){Q.value=!0,P.value={noDb:!1,error:""};try{const[i,c,y]=await Promise.all([e.execute(`reputation list --decay ${E.value} --json`,1e4).catch(()=>({output:""})),e.execute("reputation runs --limit 50 --json",1e4).catch(()=>({output:""})),e.execute("reputation stats-v2 --json",8e3).catch(()=>({output:""}))]),M=[i,c,y].map(le=>N(le.output)).find(le=>le.noDb);M&&(P.value=M),O.value=ce(i.output),z.value=ge(c.output),V.value=he(y.output)}catch(i){g.error(r("reputation.messages.loadFailed",{err:i?.message||i}))}finally{Q.value=!1}}async function Fe(){try{const{output:i}=await e.execute(`reputation list --decay ${E.value} --json`,1e4),c=N(i);if(c.noDb){P.value=c;return}O.value=ce(i)}catch(i){g.error(r("reputation.messages.loadScoresFailed",{err:i?.message||i}))}}async function Ee(){if(!h.did.trim()){g.warning(r("reputation.messages.didRequired"));return}if(h.score<0||h.score>1){g.warning(r("reputation.messages.scoreRange"));return}R.value=!0;try{const i=[`reputation observe "${h.did.trim().replace(/"/g,'\\"')}"`,String(h.score),`-k ${h.kind}`,`-w ${h.weight}`,"--json"],{output:c}=await e.execute(i.join(" "),1e4);if(N(c).noDb){g.error(r("reputation.messages.needInit"));return}if(!/"did"/.test(c)){g.error(r("reputation.messages.observeFailed",{err:c.slice(0,120)}));return}g.success(r("reputation.messages.observeOk")),Z.value=!1,ue(),await G()}catch(i){g.error(r("reputation.messages.observeFailed",{err:i?.message||i}))}finally{R.value=!1}}async function Ie(){K.value=!0;try{const i=["reputation optimize",`-o ${S.objective}`,`-i ${S.iterations}`,"--json"],{output:c}=await e.execute(i.join(" "),6e4);if(N(c).noDb){g.error(r("reputation.messages.needInit"));return}const M=xe(c);if(!M){g.error(r("reputation.messages.optimizeFailed",{err:c.slice(0,120)}));return}J.value=!1,g.success(r("reputation.messages.optimizeOk",{score:M.bestScore.toFixed(4)})),await G(),D.value=M,H.value=!0,await ie()}catch(i){g.error(r("reputation.messages.optimizeFailed",{err:i?.message||i}))}finally{K.value=!1}}async function Me(i){ve.confirm({title:r("reputation.applyConfirm.title"),content:r("reputation.applyConfirm.content",{runId:i.runId.slice(0,12)}),okText:r("reputation.applyConfirm.ok"),cancelText:r("reputation.applyConfirm.cancel"),onOk:async()=>{try{const{output:c}=await e.execute(`reputation apply ${i.runId}`,8e3);if(N(c).noDb){g.error(r("reputation.messages.needInit"));return}if(/Failed|Error/i.test(c)&&!/Applied/i.test(c)){g.error(r("reputation.messages.applyFailed",{err:c.slice(0,120)}));return}g.success(r("reputation.messages.applyOk")),await G()}catch(c){g.error(r("reputation.messages.applyFailed",{err:c?.message||c}))}}})}async function Le(i){D.value=i,I.value=null,H.value=!0,await ie()}async function ie(){if(D.value){A.value=!0;try{const{output:i}=await e.execute(`reputation analytics ${D.value.runId} --json`,8e3);if(N(i).noDb)return;I.value=ke(i)}catch{}finally{A.value=!1}}}function Ne(){B.value=null,j.value=!0}async function Ue(){U.value=!0;try{const i=["reputation anomalies",`-m ${T.method}`,`-t ${T.threshold}`,`-d ${T.decay}`,"--json"],{output:c}=await e.execute(i.join(" "),1e4);if(N(c).noDb){g.error(r("reputation.messages.needInit"));return}B.value=_e(c)}catch(i){g.error(r("reputation.messages.detectFailed",{err:i?.message||i}))}finally{U.value=!1}}function ue(){h.did="",h.score=.8,h.kind="generic",h.weight=1}me(G);const de={t:r,ws:e,EMPTY_IMG:w,loading:Q,observing:R,optimizing:K,detectingAnomalies:U,loadingAnalytics:A,scores:O,runs:z,stats:V,errorState:P,activeTab:X,decayFilter:E,showObserveModal:Z,showOptimizeModal:J,showAnomaliesModal:j,showAnalyticsModal:H,observeForm:h,optimizeForm:S,anomalyForm:T,currentRun:D,currentAnalytics:I,anomalyResult:B,scoreColumns:Y,runColumns:oe,decayLabel:ae,kindLabel:$,objectiveLabel:ee,objectiveColor:C,objectiveBarColor:ne,objectiveDesc:re,statusLabel:a,statusColor:b,statusBarColor:W,rankClass:we,scoreColor:je,pctOfTotal:Ce,bucketPct:Te,formatParams:De,loadAll:G,loadScores:Fe,submitObservation:Ee,submitOptimization:Ie,applyRun:Me,viewRunAnalytics:Le,loadAnalyticsForCurrentRun:ie,openAnomaliesModal:Ne,runAnomalyDetection:Ue,resetObserveForm:ue,ref:_,onMounted:me,reactive:te,computed:se,get useI18n(){return fe},get ReloadOutlined(){return Qe},get PlusOutlined(){return Ge},get WarningOutlined(){return He},get ThunderboltOutlined(){return Ze},get UserOutlined(){return Ke},get EyeOutlined(){return qe},get ExperimentOutlined(){return We},get LoadingOutlined(){return Ye},get TrophyOutlined(){return Je},get ArrowRightOutlined(){return Ve},get message(){return g},get Modal(){return ve},get Empty(){return be},get useWsStore(){return ye},get parseScores(){return ce},get parseAnomalies(){return _e},get parseRun(){return xe},get parseRuns(){return ge},get parseAnalytics(){return ke},get parseStatsV2(){return he},get detectReputationError(){return N},get formatReputationTime(){return at},get OPTIMIZATION_OBJECTIVES(){return Oe},get DECAY_MODELS(){return Xe},get ANOMALY_METHODS(){return $e},get RUN_STATUSES(){return ze},get OBSERVATION_KINDS(){return et}};return Object.defineProperty(de,"__isScriptSetup",{enumerable:!1,value:!0}),de}},rt={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},it={class:"page-title"},lt={class:"page-sub"},st={class:"filter-bar"},ct={style:{color:"var(--text-secondary)","font-size":"12px"}},ut={key:1,style:{color:"var(--text-primary)","font-family":"monospace","font-size":"12px"}},dt={key:3,style:{color:"var(--text-secondary)"}},mt={key:4,style:{color:"var(--text-secondary)","font-family":"monospace","font-size":"12px"}},pt={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},ft={key:0,style:{color:"var(--text-primary)","font-family":"monospace","font-size":"12px"}},yt={key:2,style:{color:"var(--text-secondary)"}},bt={key:5,style:{color:"var(--text-secondary)","font-size":"11px"}},vt={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},_t={style:{"margin-left":"8px",color:"var(--text-muted)","font-size":"12px"}},gt={style:{color:"var(--text-muted)","font-size":"11px","margin-top":"4px"}},xt={style:{"margin-left":"8px",color:"var(--text-muted)","font-size":"12px"}},kt={style:{"padding-top":"8px"}},ht={style:{"margin-left":"8px",color:"var(--text-muted)","font-size":"12px"}},St={key:1},Ot={style:{"font-family":"monospace","font-size":"12px",color:"var(--text-primary)"}},zt={style:{"margin-left":"8px",color:"var(--text-secondary)","font-size":"12px"}},At={key:0,style:{"margin-left":"8px",color:"var(--text-muted)","font-size":"11px"}},Rt={key:0,style:{"padding-top":"8px"}},wt={class:"params-pre"},jt={style:{color:"#ff4d4f"}},Ct={key:0,style:{"margin-top":"16px"}},Tt={style:{color:"var(--text-primary)","font-size":"13px",margin:"0 0 10px"}},Dt={class:"bucket-label"},Ft={key:0,style:{"margin-top":"8px",color:"var(--text-secondary)","font-size":"12px"}},Et={key:0,style:{"margin-left":"12px"}};function It(l,t,r,e,w,Q){const R=m("a-button"),K=m("a-space"),U=m("a-alert"),A=m("a-statistic"),O=m("a-card"),z=m("a-col"),V=m("a-row"),P=m("a-radio-button"),X=m("a-radio-group"),E=m("a-progress"),Z=m("a-table"),J=m("a-tab-pane"),j=m("a-tag"),H=m("a-tabs"),h=m("a-input"),S=m("a-form-item"),T=m("a-input-number"),D=m("a-select-option"),I=m("a-select"),B=m("a-form"),Y=m("a-modal"),oe=m("a-divider"),ae=m("a-empty"),$=m("a-list-item"),ee=m("a-list"),C=m("a-descriptions-item"),ne=m("a-descriptions"),re=m("a-spin");return u(),p("div",null,[v("div",rt,[v("div",null,[v("h2",it,s(e.t("reputation.title")),1),v("p",lt,s(e.t("reputation.subtitle")),1)]),o(K,null,{default:n(()=>[o(R,{loading:e.loading,onClick:e.loadAll},{icon:n(()=>[o(e.ReloadOutlined)]),default:n(()=>[f(" "+s(e.t("reputation.refresh")),1)]),_:1},8,["loading"]),o(R,{onClick:e.openAnomaliesModal},{icon:n(()=>[o(e.WarningOutlined)]),default:n(()=>[f(" "+s(e.t("reputation.actions.anomalies")),1)]),_:1}),o(R,{type:"primary",onClick:t[0]||(t[0]=a=>e.showOptimizeModal=!0)},{icon:n(()=>[o(e.ThunderboltOutlined)]),default:n(()=>[f(" "+s(e.t("reputation.actions.optimize")),1)]),_:1})]),_:1})]),d(" noDb banner "),e.errorState.noDb?(u(),x(U,{key:0,type:"info","show-icon":"",message:e.t("reputation.noDb.message"),description:e.t("reputation.noDb.description"),style:{"margin-bottom":"16px"}},null,8,["message","description"])):d("v-if",!0),d(" Stat cards "),o(V,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:n(()=>[o(z,{xs:12,sm:8,lg:5},{default:n(()=>[o(O,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:n(()=>[o(A,{title:e.t("reputation.stats.trackedDids"),value:e.stats.observations.totalDids,"value-style":{color:"#1677ff",fontSize:"20px"}},{prefix:n(()=>[o(e.UserOutlined)]),_:1},8,["title","value"])]),_:1})]),_:1}),o(z,{xs:12,sm:8,lg:5},{default:n(()=>[o(O,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:n(()=>[o(A,{title:e.t("reputation.stats.totalObservations"),value:e.stats.observations.totalObservations,"value-style":{color:"#722ed1",fontSize:"20px"}},{prefix:n(()=>[o(e.EyeOutlined)]),_:1},8,["title","value"])]),_:1})]),_:1}),o(z,{xs:12,sm:8,lg:5},{default:n(()=>[o(O,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:n(()=>[o(A,{title:e.t("reputation.stats.optimizationRuns"),value:e.stats.totalRuns,"value-style":{color:"#13c2c2",fontSize:"20px"}},{prefix:n(()=>[o(e.ExperimentOutlined)]),_:1},8,["title","value"])]),_:1})]),_:1}),o(z,{xs:12,sm:8,lg:5},{default:n(()=>[o(O,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:n(()=>[o(A,{title:e.t("reputation.stats.active"),value:e.stats.activeRuns,"value-style":{color:e.stats.activeRuns>0?"#1677ff":"#888",fontSize:"20px"},suffix:`/ ${e.stats.maxConcurrentOptimizations}`},{prefix:n(()=>[o(e.LoadingOutlined)]),_:1},8,["title","value","value-style","suffix"])]),_:1})]),_:1}),o(z,{xs:24,sm:8,lg:4},{default:n(()=>[o(O,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:n(()=>[o(A,{title:e.t("reputation.stats.bestEver"),value:e.stats.bestScoreEver,precision:3,"value-style":{color:"#52c41a",fontSize:"20px"}},{prefix:n(()=>[o(e.TrophyOutlined)]),_:1},8,["title","value"])]),_:1})]),_:1})]),_:1}),d(" Tabs "),o(H,{activeKey:e.activeTab,"onUpdate:activeKey":t[3]||(t[3]=a=>e.activeTab=a),class:"reputation-tabs"},{default:n(()=>[d(" ── Scores tab ──────────────────────────────────────────── "),o(J,{key:"scores",tab:e.t("reputation.tabs.scores")},{default:n(()=>[v("div",st,[v("span",ct,s(e.t("reputation.filter.decayLabel")),1),o(X,{value:e.decayFilter,"onUpdate:value":t[1]||(t[1]=a=>e.decayFilter=a),size:"small","button-style":"solid",onChange:e.loadScores},{default:n(()=>[(u(!0),p(F,null,L(e.DECAY_MODELS,a=>(u(),x(P,{key:a,value:a},{default:n(()=>[f(s(e.decayLabel(a)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"]),o(R,{size:"small",onClick:t[2]||(t[2]=a=>e.showObserveModal=!0)},{icon:n(()=>[o(e.PlusOutlined)]),default:n(()=>[f(" "+s(e.t("reputation.filter.addObservation")),1)]),_:1})]),o(Z,{columns:e.scoreColumns,"data-source":e.scores,pagination:{pageSize:20,showTotal:a=>e.t("reputation.totals.dids",{count:a})},size:"small",loading:e.loading,style:{background:"var(--bg-card)"}},{bodyCell:n(({column:a,record:b,index:W})=>[a.key==="rank"?(u(),p("span",{key:0,class:Pe(["rank-pill",e.rankClass(W)])},s(W+1),3)):d("v-if",!0),a.key==="did"?(u(),p("span",ut,s(b.did),1)):d("v-if",!0),a.key==="score"?(u(),x(E,{key:2,percent:Math.round(b.score*100),"stroke-color":e.scoreColor(b.score),size:"small",format:()=>b.score.toFixed(4)},null,8,["percent","stroke-color","format"])):d("v-if",!0),a.key==="observations"?(u(),p("span",dt,s(b.observations),1)):d("v-if",!0),a.key==="weightTotal"?(u(),p("span",mt,s(b.weightTotal.toFixed(2)),1)):d("v-if",!0)]),emptyText:n(()=>[v("div",pt,[o(e.UserOutlined,{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),f(" "+s(e.t("reputation.empty.scores")),1)])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"]),d(" ── Runs tab ────────────────────────────────────────────── "),o(J,{key:"runs",tab:e.t("reputation.tabs.runs")},{default:n(()=>[o(Z,{columns:e.runColumns,"data-source":e.runs,pagination:{pageSize:20,showTotal:a=>e.t("reputation.totals.rows",{count:a})},size:"small",loading:e.loading,style:{background:"var(--bg-card)"}},{bodyCell:n(({column:a,record:b})=>[a.key==="runId"?(u(),p("span",ft,s(b.runId.slice(0,12)),1)):d("v-if",!0),a.key==="objective"?(u(),x(j,{key:1,color:e.objectiveColor(b.objective),style:{"font-family":"monospace"}},{default:n(()=>[f(s(e.objectiveLabel(b.objective)),1)]),_:2},1032,["color"])):d("v-if",!0),a.key==="iterations"?(u(),p("span",yt,s(b.iterations),1)):d("v-if",!0),a.key==="bestScore"?(u(),p("span",{key:3,style:pe({color:e.scoreColor(b.bestScore),fontWeight:500,fontFamily:"monospace"})},s(b.bestScore.toFixed(4)),5)):d("v-if",!0),a.key==="status"?(u(),x(j,{key:4,color:e.statusColor(b.status)},{default:n(()=>[f(s(e.statusLabel(b.status)),1)]),_:2},1032,["color"])):d("v-if",!0),a.key==="createdAt"?(u(),p("span",bt,s(e.formatReputationTime(b.createdAt)),1)):d("v-if",!0),a.key==="action"?(u(),p(F,{key:6},[o(R,{size:"small",type:"link",onClick:W=>e.viewRunAnalytics(b)},{default:n(()=>[f(s(e.t("reputation.rowActions.analyze")),1)]),_:1},8,["onClick"]),b.status==="complete"?(u(),x(R,{key:0,size:"small",type:"link",style:{color:"#52c41a"},onClick:W=>e.applyRun(b)},{default:n(()=>[f(s(e.t("reputation.rowActions.apply")),1)]),_:1},8,["onClick"])):d("v-if",!0)],64)):d("v-if",!0)]),emptyText:n(()=>[v("div",vt,[o(e.ExperimentOutlined,{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),f(" "+s(e.t("reputation.empty.runs")),1)])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"]),d(" ── Breakdown tab ───────────────────────────────────────── "),o(J,{key:"breakdown",tab:e.t("reputation.tabs.breakdown")},{default:n(()=>[o(V,{gutter:[16,16]},{default:n(()=>[o(z,{xs:24,lg:12},{default:n(()=>[o(O,{title:e.t("reputation.breakdown.byStatus"),size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:n(()=>[(u(!0),p(F,null,L(e.RUN_STATUSES,a=>(u(),p("div",{key:a,class:"bd-row"},[o(j,{color:e.statusColor(a),style:{"min-width":"80px","text-align":"center"}},{default:n(()=>[f(s(e.statusLabel(a)),1)]),_:2},1032,["color"]),o(E,{percent:e.pctOfTotal(e.stats.byStatus[a]||0,e.stats.totalRuns),"stroke-color":e.statusBarColor(a),format:()=>`${e.stats.byStatus[a]||0}`,size:"small",style:{flex:"1","margin-left":"12px"}},null,8,["percent","stroke-color","format"])]))),128))]),_:1},8,["title"])]),_:1}),o(z,{xs:24,lg:12},{default:n(()=>[o(O,{title:e.t("reputation.breakdown.byObjective"),size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:n(()=>[(u(!0),p(F,null,L(e.OPTIMIZATION_OBJECTIVES,a=>(u(),p("div",{key:a,class:"bd-row"},[o(j,{color:e.objectiveColor(a),style:{"min-width":"100px","text-align":"center","font-family":"monospace"}},{default:n(()=>[f(s(e.objectiveLabel(a)),1)]),_:2},1032,["color"]),o(E,{percent:e.pctOfTotal(e.stats.byObjective[a]||0,e.stats.totalRuns),"stroke-color":e.objectiveBarColor(a),format:()=>`${e.stats.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"]),d(" ── Add observation modal ──────────────────────────────── "),o(Y,{open:e.showObserveModal,"onUpdate:open":t[8]||(t[8]=a=>e.showObserveModal=a),title:e.t("reputation.observe.title"),"confirm-loading":e.observing,width:540,"ok-text":e.t("reputation.observe.ok"),"cancel-text":e.t("common.cancel"),onOk:e.submitObservation,onCancel:e.resetObserveForm},{default:n(()=>[o(B,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:n(()=>[o(S,{label:e.t("reputation.observe.didLabel"),required:""},{default:n(()=>[o(h,{value:e.observeForm.did,"onUpdate:value":t[4]||(t[4]=a=>e.observeForm.did=a),placeholder:e.t("reputation.observe.didPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),o(S,{label:e.t("reputation.observe.scoreLabel"),required:""},{default:n(()=>[o(T,{value:e.observeForm.score,"onUpdate:value":t[5]||(t[5]=a=>e.observeForm.score=a),min:0,max:1,step:.05,style:{width:"160px"}},null,8,["value"]),v("span",_t,s(e.t("reputation.observe.scoreRange")),1)]),_:1},8,["label"]),o(S,{label:e.t("reputation.observe.kindLabel")},{default:n(()=>[o(I,{value:e.observeForm.kind,"onUpdate:value":t[6]||(t[6]=a=>e.observeForm.kind=a)},{default:n(()=>[(u(!0),p(F,null,L(e.OBSERVATION_KINDS,a=>(u(),x(D,{key:a,value:a},{default:n(()=>[f(s(e.kindLabel(a)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),_:1},8,["label"]),o(S,{label:e.t("reputation.observe.weightLabel")},{default:n(()=>[o(T,{value:e.observeForm.weight,"onUpdate:value":t[7]||(t[7]=a=>e.observeForm.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"]),d(" ── Optimize modal ─────────────────────────────────────── "),o(Y,{open:e.showOptimizeModal,"onUpdate:open":t[11]||(t[11]=a=>e.showOptimizeModal=a),title:e.t("reputation.optimize.title"),"confirm-loading":e.optimizing,width:540,"ok-text":e.t("reputation.optimize.ok"),"cancel-text":e.t("common.cancel"),onOk:e.submitOptimization},{default:n(()=>[o(B,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:n(()=>[o(S,{label:e.t("reputation.optimize.objectiveLabel"),required:""},{default:n(()=>[o(I,{value:e.optimizeForm.objective,"onUpdate:value":t[9]||(t[9]=a=>e.optimizeForm.objective=a)},{default:n(()=>[(u(!0),p(F,null,L(e.OPTIMIZATION_OBJECTIVES,a=>(u(),x(D,{key:a,value:a},{default:n(()=>[f(s(e.objectiveLabel(a)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"]),v("div",gt,s(e.objectiveDesc(e.optimizeForm.objective)),1)]),_:1},8,["label"]),o(S,{label:e.t("reputation.optimize.iterationsLabel")},{default:n(()=>[o(T,{value:e.optimizeForm.iterations,"onUpdate:value":t[10]||(t[10]=a=>e.optimizeForm.iterations=a),min:1,max:1e3,step:10,style:{width:"160px"}},null,8,["value"]),v("span",xt,s(e.t("reputation.optimize.iterationsRange")),1)]),_:1},8,["label"])]),_:1}),o(U,{type:"info","show-icon":"",message:e.t("reputation.optimize.syncMessage"),description:e.t("reputation.optimize.syncDescription"),style:{"margin-top":"12px"}},null,8,["message","description"])]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),d(" ── Anomaly detection modal ────────────────────────────── "),o(Y,{open:e.showAnomaliesModal,"onUpdate:open":t[15]||(t[15]=a=>e.showAnomaliesModal=a),title:e.t("reputation.anomaly.title"),width:640,footer:null},{default:n(()=>[v("div",kt,[o(B,{"label-col":{span:5},"wrapper-col":{span:19}},{default:n(()=>[o(S,{label:e.t("reputation.anomaly.methodLabel")},{default:n(()=>[o(X,{value:e.anomalyForm.method,"onUpdate:value":t[12]||(t[12]=a=>e.anomalyForm.method=a),"button-style":"solid"},{default:n(()=>[(u(!0),p(F,null,L(e.ANOMALY_METHODS,a=>(u(),x(P,{key:a,value:a},{default:n(()=>[f(s(a==="z_score"?e.t("reputation.anomaly.zScoreLabel"):e.t("reputation.anomaly.iqrLabel")),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),_:1},8,["label"]),o(S,{label:e.t("reputation.anomaly.thresholdLabel")},{default:n(()=>[o(T,{value:e.anomalyForm.threshold,"onUpdate:value":t[13]||(t[13]=a=>e.anomalyForm.threshold=a),min:.5,step:.1,style:{width:"120px"}},null,8,["value"]),v("span",ht,s(e.t("reputation.anomaly.thresholdHint")),1)]),_:1},8,["label"]),o(S,{label:e.t("reputation.anomaly.decayLabel")},{default:n(()=>[o(I,{value:e.anomalyForm.decay,"onUpdate:value":t[14]||(t[14]=a=>e.anomalyForm.decay=a),style:{width:"200px"}},{default:n(()=>[(u(!0),p(F,null,L(e.DECAY_MODELS,a=>(u(),x(D,{key:a,value:a},{default:n(()=>[f(s(e.decayLabel(a)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),_:1},8,["label"]),o(S,{"wrapper-col":{offset:5,span:19}},{default:n(()=>[o(R,{type:"primary",loading:e.detectingAnomalies,onClick:e.runAnomalyDetection},{icon:n(()=>[o(e.WarningOutlined)]),default:n(()=>[f(" "+s(e.t("reputation.anomaly.start")),1)]),_:1},8,["loading"])]),_:1})]),_:1}),o(oe),e.anomalyResult?(u(),p("div",St,[o(V,{gutter:12,style:{"margin-bottom":"12px"}},{default:n(()=>[o(z,{span:8},{default:n(()=>[o(A,{title:e.t("reputation.anomaly.totalSamples"),value:e.anomalyResult.totalSamples,"value-style":{fontSize:"16px"}},null,8,["title","value"])]),_:1}),o(z,{span:8},{default:n(()=>[o(A,{title:e.t("reputation.anomaly.threshold"),value:e.anomalyResult.threshold,precision:2,"value-style":{fontSize:"16px"}},null,8,["title","value"])]),_:1}),o(z,{span:8},{default:n(()=>[o(A,{title:e.t("reputation.anomaly.anomalies"),value:e.anomalyResult.anomalies.length,"value-style":{color:e.anomalyResult.anomalies.length>0?"#ff4d4f":"#52c41a",fontSize:"16px"}},null,8,["title","value","value-style"])]),_:1})]),_:1}),e.anomalyResult.message?(u(),x(U,{key:0,message:e.anomalyResult.message,type:"warning","show-icon":"",style:{"margin-bottom":"12px"}},null,8,["message"])):d("v-if",!0),e.anomalyResult.anomalies.length?(u(),x(ee,{key:1,size:"small","data-source":e.anomalyResult.anomalies},{renderItem:n(({item:a})=>[o($,null,{default:n(()=>[v("span",Ot,s(a.did),1),o(j,{color:"red",style:{"margin-left":"8px"}},{default:n(()=>[f(s(e.t("reputation.anomaly.scoreTag",{score:a.score.toFixed(4)})),1)]),_:2},1024),v("span",zt,s(a.reason),1),a.zScore!==null?(u(),p("span",At,s(e.t("reputation.anomaly.zNote",{value:a.zScore.toFixed(2)})),1)):d("v-if",!0)]),_:2},1024)]),_:1},8,["data-source"])):d("v-if",!0)])):(u(),x(ae,{key:0,description:e.t("reputation.anomaly.notDetected"),image:e.EMPTY_IMG},null,8,["description","image"]))])]),_:1},8,["open","title"]),d(" ── Run analytics / details modal ──────────────────────── "),o(Y,{open:e.showAnalyticsModal,"onUpdate:open":t[16]||(t[16]=a=>e.showAnalyticsModal=a),title:e.t("reputation.analytics.title",{runId:e.currentRun?.runId?.slice(0,12)||""}),width:780,footer:null},{default:n(()=>[e.currentRun?(u(),p("div",Rt,[o(ne,{column:2,size:"small",bordered:""},{default:n(()=>[o(C,{label:e.t("reputation.analytics.objective")},{default:n(()=>[o(j,{color:e.objectiveColor(e.currentRun.objective)},{default:n(()=>[f(s(e.objectiveLabel(e.currentRun.objective)),1)]),_:1},8,["color"])]),_:1},8,["label"]),o(C,{label:e.t("reputation.analytics.status")},{default:n(()=>[o(j,{color:e.statusColor(e.currentRun.status)},{default:n(()=>[f(s(e.statusLabel(e.currentRun.status)),1)]),_:1},8,["color"])]),_:1},8,["label"]),o(C,{label:e.t("reputation.analytics.iterations")},{default:n(()=>[f(s(e.currentRun.iterations),1)]),_:1},8,["label"]),o(C,{label:e.t("reputation.analytics.bestScore")},{default:n(()=>[v("span",{style:pe({color:e.scoreColor(e.currentRun.bestScore),fontWeight:500,fontFamily:"monospace"})},s(e.currentRun.bestScore.toFixed(4)),5)]),_:1},8,["label"]),o(C,{label:e.t("reputation.analytics.createdAt")},{default:n(()=>[f(s(e.formatReputationTime(e.currentRun.createdAt)),1)]),_:1},8,["label"]),e.currentRun.completedAt?(u(),x(C,{key:0,label:e.t("reputation.analytics.completedAt")},{default:n(()=>[f(s(e.formatReputationTime(e.currentRun.completedAt)),1)]),_:1},8,["label"])):d("v-if",!0),e.currentRun.bestParams?(u(),x(C,{key:1,label:e.t("reputation.analytics.bestParams"),span:2},{default:n(()=>[v("pre",wt,s(e.formatParams(e.currentRun.bestParams)),1)]),_:1},8,["label"])):d("v-if",!0),e.currentRun.errorMessage?(u(),x(C,{key:2,label:e.t("reputation.analytics.errorMessage"),span:2},{default:n(()=>[v("span",jt,s(e.currentRun.errorMessage),1)]),_:1},8,["label"])):d("v-if",!0)]),_:1}),o(re,{spinning:e.loadingAnalytics},{default:n(()=>[e.currentAnalytics?(u(),p("div",Ct,[v("h4",Tt,s(e.t("reputation.analytics.distributionTitle")),1),o(O,{size:"small",style:{"margin-bottom":"12px"}},{default:n(()=>[(u(!0),p(F,null,L(e.currentAnalytics.reputationDistribution.buckets,a=>(u(),p("div",{key:a.label,class:"bucket-row"},[v("span",Dt,s(a.label),1),o(E,{percent:e.bucketPct(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)),e.currentAnalytics.reputationDistribution.mean!==null?(u(),p("div",Ft,[f(s(e.t("reputation.analytics.mean",{value:e.currentAnalytics.reputationDistribution.mean.toFixed(4)}))+" ",1),e.currentAnalytics.reputationDistribution.stdDev!==null?(u(),p("span",Et,s(e.t("reputation.analytics.stdDev",{value:e.currentAnalytics.reputationDistribution.stdDev.toFixed(4)})),1)):d("v-if",!0)])):d("v-if",!0)]),_:1}),e.currentAnalytics.recommendations.length?(u(),x(O,{key:0,title:e.t("reputation.analytics.recommendations"),size:"small"},{default:n(()=>[o(ee,{size:"small","data-source":e.currentAnalytics.recommendations},{renderItem:n(({item:a})=>[o($,null,{default:n(()=>[o(e.ArrowRightOutlined,{style:{color:"#faad14","margin-right":"8px"}}),f(" "+s(a),1)]),_:2},1024)]),_:1},8,["data-source"])]),_:1},8,["title"])):d("v-if",!0)])):d("v-if",!0)]),_:1},8,["spinning"])])):d("v-if",!0)]),_:1},8,["open","title"])])}const io=Be(nt,[["render",It],["__scopeId","data-v-c4829a4e"],["__file","/tmp/cc-web-panel-heolxZ/repo/packages/web-panel/src/views/Reputation.vue"]]);export{io as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{I as u,J as g,U as m,R as c,c as r,K as t,V as f,S as k,r as v,o as se,a as ie,b as j,P as d,Q as _,a2 as ke,F as O,Z as L}from"./vendor-BvqAck49.js";import{_ as Se,b as ce,u as de,E as ue,d as F}from"./index-BcRDjaEi.js";import{s as ye}from"./community-parser-CO25nZFt.js";import{at as Ce,l as Te,a4 as Ne,a_ as Ae,a9 as Oe,a2 as ze,$ as we,k as Ee,R as Me}from"./icons-DP3uiYxy.js";function ae(n){const o=ye(n);if(!o)return null;try{return JSON.parse(o)}catch{}const s=o.match(/\{[\s\S]*\}|\[[\s\S]*\]/);if(!s)return null;try{return JSON.parse(s[0])}catch{return null}}const Ie=Object.freeze(["bm25","vector","hybrid"]);function Fe(n,o=0){return typeof n=="number"&&Number.isFinite(n)?n:o}function Re(n){if(Array.isArray(n))return n.filter(o=>typeof o=="string");if(typeof n!="string")return[];try{const o=JSON.parse(n);if(Array.isArray(o))return o.filter(s=>typeof s=="string")}catch{}return[]}function J(n){if(!n)return{noDb:!1,error:""};const o=ye(n),s=/Database not available/i.test(o);return{noDb:s,error:s?"Database not available":""}}function De(n,o=0){if(!n||typeof n!="object")return null;const s=n.id||"";return s?{key:s,id:s,score:Fe(n.score,0),title:String(n.title||""),category:String(n.category||"general"),createdAt:n.created_at??n.createdAt??"",snippet:String(n.snippet||""),_idx:o}:null}function fe(n){const o=ae(n);return Array.isArray(o)?o.map(De).filter(Boolean):[]}function he(n,o=0){if(!n||typeof n!="object")return null;const s=n.id||"";return s?{key:s,id:s,title:String(n.title||""),content:n.content??"",tags:Re(n.tags),category:String(n.category||"general"),createdAt:n.created_at??n.createdAt??"",updatedAt:n.updated_at??n.updatedAt??"",_idx:o}:null}function ge(n){const o=ae(n);return Array.isArray(o)?o.map(he).filter(Boolean):[]}function me(n){const o=ae(n);return!o||typeof o!="object"||Array.isArray(o)?null:he(o,0)}function _e(n){if(!Array.isArray(n)||n.length===0)return{total:0,categories:[],tags:[]};const o=new Map,s=new Map;for(const e of n){o.set(e.category,(o.get(e.category)||0)+1);for(const x of e.tags)s.set(x,(s.get(x)||0)+1)}return{total:n.length,categories:[...o.entries()].map(([e,x])=>({name:e,count:x})).sort((e,x)=>x.count-e.count),tags:[...s.entries()].map(([e,x])=>({name:e,count:x})).sort((e,x)=>x.count-e.count)}}function Le(n){if(n==null||n==="")return"—";const o=String(n),s=o.includes(" ")&&!o.includes("T")?o.replace(" ","T")+"Z":o,e=new Date(s);return isNaN(e.getTime())?o:e.toLocaleString("zh-CN",{hour12:!1})}const G="cc.web-panel.search.recent",re=8,Pe={__name:"Search",setup(n,{expose:o}){o();const{t:s}=ce(),e=de(),x=ue.PRESENTED_IMAGE_SIMPLE,q=v(!1),C=v(!1),P=v(!1),B=v(!1),z=v([]),h=v([]),A=v({noDb:!1,error:""}),T=ie({query:"",mode:"hybrid",topK:10}),Q=v(""),w=v(U()),K=v("results"),S=v(""),N=v(""),E=v(!1),M=v(null),V=j(()=>_e(z.value)),Y=j(()=>h.value.length?Math.max(...h.value.map(l=>l.score)):0),Z=j(()=>[{title:s("search.noteColumns.title"),key:"title"},{title:s("search.noteColumns.category"),key:"category",width:"120px"},{title:s("search.noteColumns.tags"),key:"tags",width:"240px"},{title:s("search.noteColumns.createdAt"),key:"createdAt",width:"180px"},{title:s("search.noteColumns.action"),key:"action",width:"180px"}]),W=j(()=>{let l=z.value;if(S.value&&(l=l.filter(i=>i.category===S.value)),N.value.trim()){const i=N.value.trim().toLowerCase();l=l.filter(y=>y.tags.some(b=>b.toLowerCase().includes(i)))}return l});function H(l){const i=`search.mode.${l}`,y=s(i);return y===i?l:y}function X(l){const i=["blue","green","purple","orange","cyan","magenta","gold","volcano"];let y=0;for(let b=0;b<(l||"").length;b++)y=y*31+l.charCodeAt(b)>>>0;return i[y%i.length]}function $(l){return l>=.7?"#52c41a":l>=.5?"#1677ff":l>=.3?"#faad14":"#ff4d4f"}function R(l){return String(l).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""")}function I(l,i){if(!i||!l)return R(l);const y=i.split(/\s+/).filter(Boolean);let b=R(l);for(const be of y){const xe=new RegExp(`(${be.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")})`,"gi");b=b.replace(xe,"<mark>$1</mark>")}return b}function ee(l,i){return i?I(l,i):R(l)}function U(){try{const l=localStorage.getItem(G);if(l){const i=JSON.parse(l);if(Array.isArray(i))return i.filter(y=>typeof y=="string").slice(0,re)}}catch{}return[]}function a(l){const i=l.trim();if(!i)return;const y=[i,...w.value.filter(b=>b!==i)];w.value=y.slice(0,re);try{localStorage.setItem(G,JSON.stringify(w.value))}catch{}}function p(){w.value=[];try{localStorage.removeItem(G)}catch{}}function D(l){T.query=l,te()}async function oe(){q.value=!0,A.value={noDb:!1,error:""};try{const{output:l}=await e.execute("note list -n 500 --json",12e3).catch(()=>({output:""})),i=J(l);if(i.noDb){A.value=i,z.value=[];return}z.value=ge(l)}catch(l){F.error(s("search.messages.loadIndexFailed",{err:l?.message||l}))}finally{q.value=!1}}async function te(){const l=T.query.trim();if(!l){F.warning(s("search.messages.queryRequired"));return}P.value=!0,A.value={noDb:!1,error:""};try{const i=[`search ${ne(l)}`,`--mode ${T.mode}`,`--top-k ${T.topK||10}`,"--json"],{output:y}=await e.execute(i.join(" "),15e3),b=J(y);if(b.noDb){A.value=b,h.value=[],B.value=!0,Q.value=l;return}h.value=fe(y),Q.value=l,B.value=!0,a(l),K.value="results"}catch(i){F.error(s("search.messages.searchFailed",{err:i?.message||i}))}finally{P.value=!1}}function ne(l){return`"${String(l).replace(/"/g,'\\"')}"`}function pe(l){T.query=l.title,T.mode="vector",te()}async function ve(l){E.value=!0,C.value=!0,M.value=null;try{const{output:i}=await e.execute(`note show ${l} --json`,8e3);if(J(i).noDb){F.error(s("search.messages.needInit"));return}M.value=me(i),M.value||F.error(s("search.messages.noteLoadFailed"))}catch(i){F.error(s("search.messages.loadFailed",{err:i?.message||i}))}finally{C.value=!1}}se(oe);const le={t:s,ws:e,EMPTY_IMG:x,RECENT_LS:G,RECENT_MAX:re,loadingIndex:q,loadingNote:C,searching:P,searched:B,notes:z,results:h,errorState:A,form:T,currentQuery:Q,recentQueries:w,activeTab:K,indexCategoryFilter:S,indexTagFilter:N,showNoteModal:E,currentNote:M,indexSummary:V,topScore:Y,noteColumns:Z,filteredNotes:W,modeLabel:H,categoryColor:X,scoreColor:$,escapeHtml:R,highlightSnippet:I,highlightContent:ee,loadRecent:U,pushRecent:a,clearRecent:p,rerunQuery:D,loadIndex:oe,runSearch:te,shellQuote:ne,searchSimilar:pe,viewNote:ve,ref:v,computed:j,onMounted:se,reactive:ie,get useI18n(){return ce},get ReloadOutlined(){return Me},get SearchOutlined(){return Ee},get ThunderboltOutlined(){return we},get BookOutlined(){return ze},get AppstoreOutlined(){return Oe},get TagsOutlined(){return Ae},get FileTextOutlined(){return Ne},get TrophyOutlined(){return Te},get EyeOutlined(){return Ce},get message(){return F},get Empty(){return ue},get useWsStore(){return de},get parseSearchResults(){return fe},get parseNotes(){return ge},get parseNote(){return me},get buildIndexSummary(){return _e},get detectSearchError(){return J},get formatSearchTime(){return Le},get SEARCH_MODES(){return Ie}};return Object.defineProperty(le,"__isScriptSetup",{enumerable:!1,value:!0}),le}},Be={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},Qe={class:"page-title"},je={class:"page-sub"},qe={key:0,class:"recent-row"},Ke={class:"recent-label"},He={class:"score-block"},Ue={class:"result-title"},Je={style:{color:"var(--text-muted)","font-size":"11px","font-family":"monospace"}},Ge={style:{"margin-left":"8px",color:"var(--text-secondary)","font-size":"11px"}},Ve={key:0,class:"result-snippet"},Ye=["innerHTML"],Ze={class:"filter-bar"},We={key:0,class:"tag-row"},Xe={class:"tag-row-label"},$e={class:"tag-count"},et={style:{color:"var(--text-primary)","font-weight":"500"}},tt={style:{color:"var(--text-muted)","font-size":"11px","font-family":"monospace","margin-top":"2px"}},rt={key:0,style:{color:"var(--text-muted)","font-size":"11px"}},at={key:3,style:{color:"var(--text-secondary)","font-size":"11px"}},ot={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},nt={key:0,style:{padding:"40px","text-align":"center"}},lt={key:1,style:{"padding-top":"8px"}},st={style:{"font-family":"monospace","font-size":"12px"}},it={key:0,style:{color:"var(--text-muted)"}},ct={style:{color:"var(--text-primary)","font-size":"13px",margin:"16px 0 8px"}},dt={key:0,class:"note-content"},ut=["innerHTML"];function ft(n,o,s,e,x,q){const C=u("a-button"),P=u("a-space"),B=u("a-alert"),z=u("a-input"),h=u("a-col"),A=u("a-radio-button"),T=u("a-radio-group"),Q=u("a-input-number"),w=u("a-row"),K=u("a-form"),S=u("a-tag"),N=u("a-card"),E=u("a-statistic"),M=u("a-empty"),V=u("a-progress"),Y=u("a-list-item-meta"),Z=u("a-list-item"),W=u("a-list"),H=u("a-tab-pane"),X=u("a-table"),$=u("a-tabs"),R=u("a-spin"),I=u("a-descriptions-item"),ee=u("a-descriptions"),U=u("a-modal");return d(),g("div",null,[m("div",Be,[m("div",null,[m("h2",Qe,c(e.t("search.title")),1),m("p",je,c(e.t("search.subtitle")),1)]),r(P,null,{default:t(()=>[r(C,{loading:e.loadingIndex,onClick:e.loadIndex},{icon:t(()=>[r(e.ReloadOutlined)]),default:t(()=>[_(" "+c(e.t("search.refreshIndex")),1)]),_:1},8,["loading"])]),_:1})]),f(" noDb banner "),e.errorState.noDb?(d(),k(B,{key:0,type:"info","show-icon":"",message:e.t("search.noDb.message"),description:e.t("search.noDb.description"),style:{"margin-bottom":"16px"}},null,8,["message","description"])):f("v-if",!0),f(" Search bar "),r(N,{size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"16px"},"body-style":{padding:"14px 16px"}},{default:t(()=>[r(K,{layout:"vertical",model:e.form,onSubmit:ke(e.runSearch,["prevent"])},{default:t(()=>[r(w,{gutter:12},{default:t(()=>[r(h,{span:14},{default:t(()=>[r(z,{value:e.form.query,"onUpdate:value":o[0]||(o[0]=a=>e.form.query=a),size:"large",placeholder:e.t("search.form.queryPlaceholder"),"allow-clear":"",onPressEnter:e.runSearch},{prefix:t(()=>[r(e.SearchOutlined)]),_:1},8,["value","placeholder"])]),_:1}),r(h,{span:4},{default:t(()=>[r(T,{value:e.form.mode,"onUpdate:value":o[1]||(o[1]=a=>e.form.mode=a),size:"large","button-style":"solid"},{default:t(()=>[(d(!0),g(O,null,L(e.SEARCH_MODES,a=>(d(),k(A,{key:a,value:a},{default:t(()=>[_(c(e.modeLabel(a)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),_:1}),r(h,{span:3},{default:t(()=>[r(Q,{value:e.form.topK,"onUpdate:value":o[2]||(o[2]=a=>e.form.topK=a),min:1,max:50,placeholder:e.t("search.form.topKPlaceholder"),size:"large",style:{width:"100%"}},null,8,["value","placeholder"])]),_:1}),r(h,{span:3},{default:t(()=>[r(C,{type:"primary",size:"large",loading:e.searching,block:"",onClick:e.runSearch},{icon:t(()=>[r(e.ThunderboltOutlined)]),default:t(()=>[_(" "+c(e.t("search.form.submit")),1)]),_:1},8,["loading"])]),_:1})]),_:1})]),_:1},8,["model"]),f(" Recent queries chips "),e.recentQueries.length?(d(),g("div",qe,[m("span",Ke,c(e.t("search.recent.label")),1),(d(!0),g(O,null,L(e.recentQueries,a=>(d(),k(S,{key:a,color:"blue",class:"recent-chip",onClick:p=>e.rerunQuery(a)},{default:t(()=>[_(c(a),1)]),_:2},1032,["onClick"]))),128)),r(C,{size:"small",type:"link",danger:"",onClick:e.clearRecent},{default:t(()=>[_(c(e.t("search.recent.clear")),1)]),_:1})])):f("v-if",!0)]),_:1}),f(" Stat cards "),r(w,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:t(()=>[r(h,{xs:12,sm:8,lg:5},{default:t(()=>[r(N,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[r(E,{title:e.t("search.stats.indexedNotes"),value:e.indexSummary.total,"value-style":{color:"#1677ff",fontSize:"20px"}},{prefix:t(()=>[r(e.BookOutlined)]),_:1},8,["title","value"])]),_:1})]),_:1}),r(h,{xs:12,sm:8,lg:5},{default:t(()=>[r(N,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[r(E,{title:e.t("search.stats.categories"),value:e.indexSummary.categories.length,"value-style":{color:"#722ed1",fontSize:"20px"}},{prefix:t(()=>[r(e.AppstoreOutlined)]),_:1},8,["title","value"])]),_:1})]),_:1}),r(h,{xs:12,sm:8,lg:5},{default:t(()=>[r(N,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[r(E,{title:e.t("search.stats.tags"),value:e.indexSummary.tags.length,"value-style":{color:"#13c2c2",fontSize:"20px"}},{prefix:t(()=>[r(e.TagsOutlined)]),_:1},8,["title","value"])]),_:1})]),_:1}),r(h,{xs:12,sm:8,lg:5},{default:t(()=>[r(N,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[r(E,{title:e.t("search.stats.results"),value:e.results.length,"value-style":{color:e.results.length>0?"#52c41a":"#888",fontSize:"20px"}},{prefix:t(()=>[r(e.FileTextOutlined)]),_:1},8,["title","value","value-style"])]),_:1})]),_:1}),r(h,{xs:24,sm:8,lg:4},{default:t(()=>[r(N,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[r(E,{title:e.t("search.stats.topScore"),value:e.topScore,precision:3,"value-style":{color:e.scoreColor(e.topScore),fontSize:"20px"}},{prefix:t(()=>[r(e.TrophyOutlined)]),_:1},8,["title","value","value-style"])]),_:1})]),_:1})]),_:1}),f(" Tabs "),r($,{activeKey:e.activeTab,"onUpdate:activeKey":o[5]||(o[5]=a=>e.activeTab=a),class:"search-tabs"},{default:t(()=>[f(" ── Results tab ───────────────────────────────────────── "),r(H,{key:"results",tab:e.t("search.tabs.results")},{default:t(()=>[e.searched?e.results.length?(d(),k(W,{key:2,"data-source":e.results,"item-layout":"vertical",size:"large"},{renderItem:t(({item:a})=>[r(Z,{class:"result-row"},{actions:t(()=>[r(C,{type:"link",size:"small",onClick:p=>e.viewNote(a.id)},{icon:t(()=>[r(e.EyeOutlined)]),default:t(()=>[_(" "+c(e.t("search.results.viewFull")),1)]),_:1},8,["onClick"])]),extra:t(()=>[m("div",He,[r(V,{type:"circle",percent:Math.round(Math.min(1,a.score)*100),"stroke-color":e.scoreColor(a.score),format:()=>a.score.toFixed(3),width:60},null,8,["percent","stroke-color","format"])])]),default:t(()=>[r(Y,null,{title:t(()=>[m("span",Ue,c(a.title||e.t("search.results.noTitle")),1),r(S,{color:e.categoryColor(a.category),style:{"margin-left":"8px"}},{default:t(()=>[_(c(a.category),1)]),_:2},1032,["color"])]),description:t(()=>[m("span",Je,c(a.id.slice(0,16)),1),m("span",Ge,c(e.formatSearchTime(a.createdAt)),1)]),_:2},1024),a.snippet?(d(),g("div",Ve,[m("span",{innerHTML:e.highlightSnippet(a.snippet,e.currentQuery)},null,8,Ye)])):f("v-if",!0)]),_:2},1024)]),_:1},8,["data-source"])):(d(),k(M,{key:1,description:e.t("search.results.noMatch",{query:e.currentQuery}),image:e.EMPTY_IMG,style:{padding:"40px 0"}},null,8,["description","image"])):(d(),k(M,{key:0,description:e.t("search.results.promptEmpty"),image:e.EMPTY_IMG,style:{padding:"40px 0"}},null,8,["description","image"]))]),_:1},8,["tab"]),f(" ── Index browser tab ────────────────────────────────── "),r(H,{key:"index",tab:e.t("search.tabs.index")},{default:t(()=>[m("div",Ze,[r(T,{value:e.indexCategoryFilter,"onUpdate:value":o[3]||(o[3]=a=>e.indexCategoryFilter=a),size:"small","button-style":"solid"},{default:t(()=>[r(A,{value:""},{default:t(()=>[_(c(e.t("search.index.allCategories")),1)]),_:1}),(d(!0),g(O,null,L(e.indexSummary.categories.slice(0,6),a=>(d(),k(A,{key:a.name,value:a.name},{default:t(()=>[_(c(a.name)+" ("+c(a.count)+") ",1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"]),r(z,{value:e.indexTagFilter,"onUpdate:value":o[4]||(o[4]=a=>e.indexTagFilter=a),placeholder:e.t("search.index.tagFilterPlaceholder"),"allow-clear":"",size:"small",style:{"max-width":"180px"}},null,8,["value","placeholder"])]),f(" Top tags chips "),e.indexSummary.tags.length?(d(),g("div",We,[m("span",Xe,c(e.t("search.index.topTagsLabel")),1),(d(!0),g(O,null,L(e.indexSummary.tags.slice(0,12),a=>(d(),k(S,{key:a.name,color:e.indexTagFilter===a.name?"blue":"default",class:"tag-chip",onClick:p=>e.indexTagFilter=e.indexTagFilter===a.name?"":a.name},{default:t(()=>[_(c(a.name)+" ",1),m("span",$e,c(a.count),1)]),_:2},1032,["color","onClick"]))),128))])):f("v-if",!0),r(X,{columns:e.noteColumns,"data-source":e.filteredNotes,pagination:{pageSize:20,showTotal:a=>e.t("search.totals.rows",{count:a})},size:"small",loading:e.loadingIndex,style:{background:"var(--bg-card)"}},{bodyCell:t(({column:a,record:p})=>[a.key==="title"?(d(),g(O,{key:0},[m("span",et,c(p.title||e.t("search.results.noTitle")),1),m("div",tt,c(p.id.slice(0,16)),1)],64)):f("v-if",!0),a.key==="category"?(d(),k(S,{key:1,color:e.categoryColor(p.category)},{default:t(()=>[_(c(p.category),1)]),_:2},1032,["color"])):f("v-if",!0),a.key==="tags"?(d(),g(O,{key:2},[(d(!0),g(O,null,L(p.tags.slice(0,4),D=>(d(),k(S,{key:D,color:"default",style:{"font-size":"11px"}},{default:t(()=>[_(c(D),1)]),_:2},1024))),128)),p.tags.length>4?(d(),g("span",rt,"+"+c(p.tags.length-4),1)):f("v-if",!0)],64)):f("v-if",!0),a.key==="createdAt"?(d(),g("span",at,c(e.formatSearchTime(p.createdAt)),1)):f("v-if",!0),a.key==="action"?(d(),g(O,{key:4},[r(C,{size:"small",type:"link",onClick:D=>e.viewNote(p.id)},{default:t(()=>[_(c(e.t("search.index.rowAction.view")),1)]),_:1},8,["onClick"]),r(C,{size:"small",type:"link",onClick:D=>e.searchSimilar(p)},{default:t(()=>[_(c(e.t("search.index.rowAction.similar")),1)]),_:1},8,["onClick"])],64)):f("v-if",!0)]),emptyText:t(()=>[m("div",ot,[r(e.BookOutlined,{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),_(" "+c(e.indexCategoryFilter||e.indexTagFilter?e.t("search.empty.filtered"):e.t("search.empty.noNotes")),1)])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"])]),_:1},8,["activeKey"]),f(" ── Note detail modal ─────────────────────────────────── "),r(U,{open:e.showNoteModal,"onUpdate:open":o[6]||(o[6]=a=>e.showNoteModal=a),title:e.t("search.note.title",{title:e.currentNote?.title||""}),width:780,footer:null},{default:t(()=>[e.loadingNote?(d(),g("div",nt,[r(R)])):e.currentNote?(d(),g("div",lt,[r(ee,{column:2,size:"small",bordered:""},{default:t(()=>[r(I,{label:e.t("search.note.id"),span:2},{default:t(()=>[m("span",st,c(e.currentNote.id),1)]),_:1},8,["label"]),r(I,{label:e.t("search.note.category")},{default:t(()=>[r(S,{color:e.categoryColor(e.currentNote.category)},{default:t(()=>[_(c(e.currentNote.category),1)]),_:1},8,["color"])]),_:1},8,["label"]),r(I,{label:e.t("search.note.tags")},{default:t(()=>[(d(!0),g(O,null,L(e.currentNote.tags,a=>(d(),k(S,{key:a,color:"default"},{default:t(()=>[_(c(a),1)]),_:2},1024))),128)),e.currentNote.tags.length?f("v-if",!0):(d(),g("span",it,"—"))]),_:1},8,["label"]),r(I,{label:e.t("search.note.createdAt")},{default:t(()=>[_(c(e.formatSearchTime(e.currentNote.createdAt)),1)]),_:1},8,["label"]),r(I,{label:e.t("search.note.updatedAt")},{default:t(()=>[_(c(e.formatSearchTime(e.currentNote.updatedAt)),1)]),_:1},8,["label"])]),_:1}),m("h4",ct,c(e.t("search.note.content")),1),e.currentNote.content?(d(),g("div",dt,[m("span",{innerHTML:e.highlightContent(e.currentNote.content,e.currentQuery)},null,8,ut)])):(d(),k(M,{key:1,description:e.t("search.note.emptyContent"),image:e.EMPTY_IMG},null,8,["description","image"]))])):f("v-if",!0)]),_:1},8,["open","title"])])}const ht=Se(Pe,[["render",ft],["__scopeId","data-v-d2b94ce3"],["__file","/tmp/cc-web-panel-heolxZ/repo/packages/web-panel/src/views/Search.vue"]]);export{ht as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{I as p,J as f,U as b,R as c,c as l,K as r,V as m,S as h,o as ve,a as ce,b as U,r as g,P as d,Q as y,F as O,Z as M,$ as at}from"./vendor-BvqAck49.js";import{_ as ot,u as pe,b as be,E as ge,d as k}from"./index-BcRDjaEi.js";import{s as Fe}from"./community-parser-CO25nZFt.js";import{aC as lt,am as rt,J as nt,f as it,aX as st,aY as ct,as as dt,R as ut}from"./icons-DP3uiYxy.js";function N(t){const o=Fe(t);if(!o)return null;try{return JSON.parse(o)}catch{}const i=o.match(/\{[\s\S]*\}|\[[\s\S]*\]/);if(!i)return null;try{return JSON.parse(i[0])}catch{return null}}const Oe=Object.freeze(["gold","silver","bronze"]),Re=Object.freeze(["active","expired","terminated"]),de=Object.freeze(["availability","response_time","throughput","error_rate"]),ue=Object.freeze(["minor","moderate","major","critical"]),mt=Object.freeze(["open","acknowledged","resolved","waived"]);function v(t,o=0){return typeof t=="number"&&Number.isFinite(t)?t:o}function K(t){if(!t)return{noDb:!1,error:""};const o=Fe(t),i=/Database not available/i.test(o);return{noDb:i,error:i?"Database not available":""}}function ft(t,o=0){if(!t||typeof t!="object")return null;const i=t.name||"";return i?{key:i,name:i,availability:v(t.availability,0),maxResponseTime:v(t.maxResponseTime,0),minThroughput:v(t.minThroughput,0),maxErrorRate:v(t.maxErrorRate,0),compensationRate:v(t.compensationRate,0),_idx:o}:null}function _e(t){const o=N(t);return Array.isArray(o)?o.map(ft).filter(Boolean):[]}function yt(t){const o={availability:0,maxResponseTime:0,minThroughput:0,maxErrorRate:0,compensationRate:0};return!t||typeof t!="object"||Array.isArray(t)?o:{availability:v(t.availability,0),maxResponseTime:v(t.maxResponseTime,0),minThroughput:v(t.minThroughput,0),maxErrorRate:v(t.maxErrorRate,0),compensationRate:v(t.compensationRate,0)}}function we(t,o=0){if(!t||typeof t!="object")return null;const i=t.slaId||t.sla_id||"";return i?{key:i,slaId:i,orgId:String(t.orgId??t.org_id??""),tier:String(t.tier||"").toLowerCase(),terms:yt(t.terms),monthlyFee:v(t.monthlyFee??t.monthly_fee,0),startDate:t.startDate??t.start_date??null,endDate:t.endDate??t.end_date??null,status:String(t.status||"active").toLowerCase(),createdAt:t.createdAt??t.created_at??null,updatedAt:t.updatedAt??t.updated_at??null,_idx:o}:null}function ke(t){const o=N(t);return Array.isArray(o)?o.map(we).filter(Boolean):[]}function Ce(t){const o=N(t);return!o||typeof o!="object"||Array.isArray(o)?null:we(o,0)}function ze(t){return!t||typeof t!="object"?null:{count:v(t.count,0),mean:v(t.mean,0),min:v(t.min,0),max:v(t.max,0),p95:v(t.p95,0)}}function he(t){const o=N(t);if(!o||typeof o!="object"||Array.isArray(o))return{slaId:"",totalSamples:0,byTerm:{}};const i={};if(o.byTerm&&typeof o.byTerm=="object")for(const[e,_]of Object.entries(o.byTerm)){const T=ze(_);T&&(i[e]=T)}return{slaId:String(o.slaId||""),totalSamples:v(o.totalSamples,0),byTerm:i}}function Le(t,o=0){if(!t||typeof t!="object")return null;const i=t.violationId||t.violation_id||"";return i?{key:i,violationId:i,slaId:String(t.slaId??t.sla_id??""),term:String(t.term||"").toLowerCase(),severity:String(t.severity||"minor").toLowerCase(),expectedValue:v(t.expectedValue??t.expected_value,0),actualValue:v(t.actualValue??t.actual_value,0),deviationPercent:v(t.deviationPercent??t.deviation_percent,0),compensationAmount:typeof t.compensationAmount=="number"?t.compensationAmount:typeof t.compensation_amount=="number"?t.compensation_amount:null,occurredAt:t.occurredAt??t.occurred_at??null,resolvedAt:t.resolvedAt??t.resolved_at??null,v2Status:t.v2Status?String(t.v2Status).toLowerCase():"open",v2Note:t.v2Note??"",_idx:o}:null}function Se(t){const o=N(t);return Array.isArray(o)?o.map(Le).filter(Boolean):[]}function xe(t){const o=N(t);return!o||typeof o!="object"||Array.isArray(o)?{slaId:"",checkedAt:null,totalViolations:0,violations:[]}:{slaId:String(o.slaId||""),checkedAt:o.checkedAt??null,totalViolations:v(o.totalViolations,0),violations:Array.isArray(o.violations)?o.violations.map(Le).filter(Boolean):[]}}function Te(t){const o=N(t);return!o||typeof o!="object"||Array.isArray(o)?null:{violationId:String(o.violationId||""),slaId:String(o.slaId||""),severity:String(o.severity||""),base:v(o.base,0),multiplier:v(o.multiplier,0),amount:v(o.amount,0)}}const vt={slaId:"",tier:"",compliance:0,startDate:null,endDate:null,metricsByTerm:{},violations:{total:0,byTerm:{},bySeverity:{},totalCompensation:0}};function Ie(t){const o=JSON.parse(JSON.stringify(vt));for(const e of de)o.violations.byTerm[e]=0;for(const e of ue)o.violations.bySeverity[e]=0;const i=N(t);if(!i||typeof i!="object"||Array.isArray(i))return o;if(o.slaId=String(i.slaId||""),o.tier=String(i.tier||"").toLowerCase(),o.compliance=v(i.compliance,0),o.startDate=i.startDate??null,o.endDate=i.endDate??null,i.metricsByTerm&&typeof i.metricsByTerm=="object")for(const[e,_]of Object.entries(i.metricsByTerm)){const T=ze(_);T&&(o.metricsByTerm[e]=T)}if(i.violations&&typeof i.violations=="object"){if(o.violations.total=v(i.violations.total,0),o.violations.totalCompensation=v(i.violations.totalCompensation,0),i.violations.byTerm&&typeof i.violations.byTerm=="object")for(const[e,_]of Object.entries(i.violations.byTerm))typeof _=="number"&&Number.isFinite(_)&&(o.violations.byTerm[e]=_);if(i.violations.bySeverity&&typeof i.violations.bySeverity=="object")for(const[e,_]of Object.entries(i.violations.bySeverity))typeof _=="number"&&Number.isFinite(_)&&(o.violations.bySeverity[e]=_)}return o}const pt={totalContracts:0,activeContracts:0,activeOrgs:0,maxActiveSlasPerOrg:0,byStatus:{},byTier:{},violations:{total:0,byTerm:{},bySeverity:{},byStatus:{},totalCompensation:0}};function Ae(t){const o=JSON.parse(JSON.stringify(pt));for(const e of Re)o.byStatus[e]=0;for(const e of Oe)o.byTier[e]=0;for(const e of de)o.violations.byTerm[e]=0;for(const e of ue)o.violations.bySeverity[e]=0;for(const e of mt)o.violations.byStatus[e]=0;const i=N(t);if(!i||typeof i!="object"||Array.isArray(i))return o;if(o.totalContracts=v(i.totalContracts,0),o.activeContracts=v(i.activeContracts,0),o.activeOrgs=v(i.activeOrgs,0),o.maxActiveSlasPerOrg=v(i.maxActiveSlasPerOrg,0),i.byStatus&&typeof i.byStatus=="object")for(const[e,_]of Object.entries(i.byStatus))typeof _=="number"&&Number.isFinite(_)&&(o.byStatus[e]=_);if(i.byTier&&typeof i.byTier=="object")for(const[e,_]of Object.entries(i.byTier))typeof _=="number"&&Number.isFinite(_)&&(o.byTier[e]=_);if(i.violations&&typeof i.violations=="object"){o.violations.total=v(i.violations.total,0),o.violations.totalCompensation=v(i.violations.totalCompensation,0);for(const e of["byTerm","bySeverity","byStatus"])if(i.violations[e]&&typeof i.violations[e]=="object")for(const[_,T]of Object.entries(i.violations[e]))typeof T=="number"&&Number.isFinite(T)&&(o.violations[e][_]=T)}return o}function bt(t){if(t==null||t==="")return"—";const o=typeof t=="number"?new Date(t):new Date(String(t));return isNaN(o.getTime())?String(t):o.toLocaleString("zh-CN",{hour12:!1})}const gt={__name:"Sla",setup(t,{expose:o}){o();const i=pe(),{t:e}=be(),_=ge.PRESENTED_IMAGE_SIMPLE,T=g(!1),R=g(!1),Q=g(!1),ee=g([]),z=g([]),I=g([]),A=g({totalContracts:0,activeContracts:0,activeOrgs:0,maxActiveSlasPerOrg:0,byStatus:{},byTier:{},violations:{total:0,byTerm:{},bySeverity:{},byStatus:{},totalCompensation:0}}),B=g({noDb:!1,error:""}),S=g("contracts"),j=g(""),P=g(""),X=g(""),J=g(!1),G=g(!1),D=g(!1),te=g(!1),ae=g(!1),E=g(!1),w=ce({orgId:"",tier:"silver",monthlyFee:1e3,durationDays:30}),F=ce({slaId:null,term:"availability",value:null}),L=g(null),q=g({slaId:"",totalSamples:0,byTerm:{}}),V=g(null),x=g(null),Y=g(null),H=g(null),oe=U(()=>[{title:e("sla.contractCols.slaId"),key:"slaId",width:"120px"},{title:e("sla.contractCols.orgId"),key:"orgId",width:"160px"},{title:e("sla.contractCols.tier"),key:"tier",width:"90px"},{title:e("sla.contractCols.status"),key:"status",width:"100px"},{title:e("sla.contractCols.monthlyFee"),key:"monthlyFee",width:"110px"},{title:e("sla.contractCols.endDate"),key:"endDate",width:"160px"},{title:e("sla.contractCols.action"),key:"action",width:"260px"}]),le=U(()=>[{title:e("sla.violationCols.id"),key:"violationId",width:"120px"},{title:e("sla.violationCols.term"),key:"term",width:"140px"},{title:e("sla.violationCols.severity"),key:"severity",width:"100px"},{title:e("sla.violationCols.deviation"),key:"deviation",width:"180px"},{title:e("sla.violationCols.expected"),key:"expected",width:"110px"},{title:e("sla.violationCols.actual"),key:"actual",width:"110px"},{title:e("sla.violationCols.compensation"),key:"compensation",width:"110px"},{title:e("sla.violationCols.occurredAt"),key:"occurredAt",width:"160px"},{title:e("sla.violationCols.action"),key:"action",width:"120px"}]),re=U(()=>[{title:e("sla.aggCols.term"),key:"term",width:"140px"},{title:e("sla.aggCols.expected"),key:"expected",width:"110px"},{title:e("sla.aggCols.mean"),key:"mean",width:"110px"},{title:e("sla.aggCols.p95"),key:"p95",width:"110px"},{title:e("sla.aggCols.min"),key:"min",width:"110px"},{title:e("sla.aggCols.max"),key:"max",width:"110px"},{title:e("sla.aggCols.count"),key:"count",width:"90px"}]),a=U(()=>{let n=z.value;return j.value&&(n=n.filter(s=>s.tier===j.value)),P.value&&(n=n.filter(s=>s.status===P.value)),n}),u=U(()=>{let n=I.value;return X.value&&(n=n.filter(s=>s.severity===X.value)),n}),W=U(()=>L.value?Object.entries(q.value.byTerm).map(([n,s])=>({key:n,term:n,expected:ne(L.value.terms,n),...s})):[]),Ee=U(()=>!x.value||!L.value?[]:Object.entries(x.value.metricsByTerm).map(([n,s])=>({key:n,term:n,expected:ne(L.value.terms,n),...s})));function ne(n,s){if(!n)return 0;switch(s){case"availability":return n.availability;case"response_time":return n.maxResponseTime;case"throughput":return n.minThroughput;case"error_rate":return n.maxErrorRate;default:return 0}}function Ve(n){return{gold:"gold",silver:"default",bronze:"orange"}[n]||"default"}function Me(n){return{gold:"#faad14",silver:"#8c8c8c",bronze:"#d4a373"}[n]||"#888"}function je(n){const s=`sla.statusLabels.${n}`,C=e(s);return C===s?n:C}function De(n){return{active:"green",expired:"default",terminated:"red"}[n]||"default"}function Ne(n){return{active:"#52c41a",expired:"#888",terminated:"#ff4d4f"}[n]||"#888"}function Be(n){const s=`sla.termLabels.${n}`,C=e(s);return C===s?n:C}function Ue(n){if(!n)return"";const s=`sla.termHints.${n}`,C=e(s);return C===s?"":C}function Pe(n,s){return typeof s!="number"||!Number.isFinite(s)?"—":n==="availability"||n==="error_rate"?(s*100).toFixed(3)+"%":n==="response_time"?s.toFixed(1)+"ms":n==="throughput"?s.toFixed(0)+" rps":s.toFixed(4)}function Je(n){const s=`sla.severityLabels.${n}`,C=e(s);return C===s?n:C}function qe(n){return{minor:"default",moderate:"gold",major:"orange",critical:"red"}[n]||"default"}function He(n){return{minor:"#888",moderate:"#faad14",major:"#fa8c16",critical:"#ff4d4f"}[n]||"#888"}function We(n){return n>=.99?"#52c41a":n>=.9?"#1677ff":n>=.7?"#faad14":"#ff4d4f"}function Ke(n,s){return s?Math.round(n/s*100):0}async function Z(){T.value=!0,B.value={noDb:!1,error:""};try{const[n,s,C,ie]=await Promise.all([i.execute("sla tiers --json",8e3).catch(()=>({output:""})),i.execute("sla list --limit 200 --json",1e4).catch(()=>({output:""})),i.execute("sla violations --limit 200 --json",1e4).catch(()=>({output:""})),i.execute("sla stats-v2",8e3).catch(()=>({output:""}))]),$=[s,C,ie].map(se=>K(se.output)).find(se=>se.noDb);$&&(B.value=$),ee.value=_e(n.output),z.value=ke(s.output),I.value=Se(C.output),A.value=Ae(ie.output)}catch(n){k.error(e("sla.msg.loadFailed")+": "+(n?.message||n))}finally{T.value=!1}}async function Ge(){if(!w.orgId.trim()){k.warning(e("sla.msg.orgEmpty"));return}R.value=!0;try{const n=w.durationDays*24*60*60*1e3,s=[`sla create "${w.orgId.trim().replace(/"/g,'\\"')}"`,`-t ${w.tier}`,`-d ${n}`,`-f ${w.monthlyFee||0}`,"--json"],{output:C}=await i.execute(s.join(" "),1e4);if(K(C).noDb){k.error(e("sla.msg.needCcInit"));return}const $=Ce(C);if(!$){k.error(e("sla.msg.createFailed")+": "+C.slice(0,120));return}k.success(e("sla.msg.createSuccess",{id:$.slaId.slice(0,8)})),J.value=!1,me(),await Z()}catch(n){k.error(e("sla.msg.createFailed")+": "+(n?.message||n))}finally{R.value=!1}}async function Ye(){if(!F.slaId){k.warning(e("sla.msg.slaEmpty"));return}if(F.value===null||F.value===void 0){k.warning(e("sla.msg.valueEmpty"));return}Q.value=!0;try{const{output:n}=await i.execute(`sla record ${F.slaId} ${F.term} ${F.value} --json`,8e3);if(K(n).noDb){k.error(e("sla.msg.needCcInit"));return}if(!/"metricId"|"term"/.test(n)){k.error(e("sla.msg.recordFailed")+": "+n.slice(0,120));return}k.success(e("sla.msg.recordSuccess")),G.value=!1,fe()}catch(n){k.error(e("sla.msg.recordFailed")+": "+(n?.message||n))}finally{Q.value=!1}}async function Ze(n){try{const{output:s}=await i.execute(`sla terminate ${n.slaId}`,8e3);if(K(s).noDb){k.error(e("sla.msg.needCcInit"));return}if(/Failed/i.test(s)&&!/terminated/i.test(s)){k.error(e("sla.msg.terminateFailed")+": "+s.slice(0,120));return}k.success(e("sla.msg.terminateSuccess")),await Z()}catch(s){k.error(e("sla.msg.terminateFailed")+": "+(s?.message||s))}}async function Qe(n){L.value=n,q.value={slaId:"",totalSamples:0,byTerm:{}},D.value=!0;try{const{output:s}=await i.execute(`sla metrics ${n.slaId} --json`,8e3);q.value=he(s)}catch(s){k.error(e("sla.msg.loadMetricsFailed")+": "+(s?.message||s))}}async function Xe(n){L.value=n,V.value=null,te.value=!0;try{const{output:s}=await i.execute(`sla check ${n.slaId} --json`,1e4);if(K(s).noDb){k.error(e("sla.msg.needCcInit"));return}V.value=xe(s),V.value.totalViolations>0&&await Z()}catch(s){k.error(e("sla.msg.checkFailed")+": "+(s?.message||s))}}async function $e(n){L.value=n,x.value=null,ae.value=!0;try{const{output:s}=await i.execute(`sla report ${n.slaId} --json`,1e4);x.value=Ie(s)}catch(s){k.error(e("sla.msg.loadReportFailed")+": "+(s?.message||s))}}async function et(n){Y.value=n,H.value=null;try{const{output:s}=await i.execute(`sla compensate ${n.violationId} --json`,8e3);if(K(s).noDb){k.error(e("sla.msg.needCcInit"));return}if(H.value=Te(s),!H.value){k.error(e("sla.msg.compFailed")+": "+s.slice(0,120));return}E.value=!0,await Z()}catch(s){k.error(e("sla.msg.compFailed")+": "+(s?.message||s))}}function tt(n){Y.value=n,H.value={violationId:n.violationId,slaId:n.slaId,severity:n.severity,base:0,multiplier:0,amount:n.compensationAmount||0},E.value=!0}function me(){w.orgId="",w.tier="silver",w.monthlyFee=1e3,w.durationDays=30}function fe(){F.slaId=null,F.term="availability",F.value=null}ve(Z);const ye={ws:i,t:e,EMPTY_IMG:_,loading:T,creating:R,recording:Q,tiers:ee,contracts:z,violations:I,stats:A,errorState:B,activeTab:S,tierFilter:j,statusFilter:P,severityFilter:X,showCreateModal:J,showRecordModal:G,showMetricsModal:D,showCheckModal:te,showReportModal:ae,showCompensationModal:E,createForm:w,recordForm:F,currentContract:L,currentMetrics:q,currentCheck:V,currentReport:x,currentViolation:Y,currentCompensation:H,contractColumns:oe,violationColumns:le,aggColumns:re,filteredContracts:a,filteredViolations:u,aggDataSource:W,reportAggDataSource:Ee,expectedFor:ne,tierColor:Ve,tierBarColor:Me,statusLabel:je,statusColor:De,statusBarColor:Ne,termLabel:Be,termHint:Ue,formatTermValue:Pe,severityLabel:Je,severityColor:qe,severityBarColor:He,complianceColor:We,pctOfTotal:Ke,loadAll:Z,submitCreate:Ge,submitRecord:Ye,terminateContract:Ze,viewMetrics:Qe,checkContract:Xe,viewReport:$e,computeCompensation:et,viewCompensation:tt,resetCreateForm:me,resetRecordForm:fe,ref:g,computed:U,onMounted:ve,reactive:ce,get ReloadOutlined(){return ut},get PlusOutlined(){return dt},get LineChartOutlined(){return ct},get FileProtectOutlined(){return st},get CheckCircleOutlined(){return it},get TeamOutlined(){return nt},get WarningOutlined(){return rt},get DollarOutlined(){return lt},get message(){return k},get Empty(){return ge},get useI18n(){return be},get useWsStore(){return pe},get parseTiers(){return _e},get parseContracts(){return ke},get parseMetrics(){return he},get parseViolations(){return Se},get parseCheckResult(){return xe},get parseCompensation(){return Te},get parseReport(){return Ie},get parseStatsV2(){return Ae},get parseContract(){return Ce},get detectSlaError(){return K},get formatSlaTime(){return bt},get SLA_TIER_NAMES(){return Oe},get SLA_STATUSES(){return Re},get SLA_TERMS_LIST(){return de},get VIOLATION_SEVERITIES(){return ue}};return Object.defineProperty(ye,"__isScriptSetup",{enumerable:!1,value:!0}),ye}},_t={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},kt={class:"page-title"},Ct={class:"page-sub"},ht={class:"tier-head"},St={class:"tier-comp"},xt={class:"tier-terms"},Tt={class:"tier-term"},It={class:"tier-term"},At={class:"tier-term"},Ft={class:"tier-term"},Ot={class:"filter-bar"},Rt={key:0,style:{color:"var(--text-primary)","font-family":"monospace","font-size":"12px"}},wt={key:1,style:{color:"var(--text-secondary)","font-family":"monospace","font-size":"12px"}},zt={key:4,style:{color:"var(--text-secondary)","font-family":"monospace","font-size":"12px"}},Lt={key:5,style:{color:"var(--text-secondary)","font-size":"11px"}},Et={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},Vt={class:"filter-bar"},Mt={key:0,style:{color:"var(--text-primary)","font-family":"monospace","font-size":"12px"}},jt={key:4,style:{color:"var(--text-secondary)","font-family":"monospace","font-size":"12px"}},Dt={key:5,style:{color:"var(--text-secondary)","font-family":"monospace","font-size":"12px"}},Nt={key:0,style:{color:"#faad14","font-weight":"500"}},Bt={key:1,style:{color:"var(--text-muted)"}},Ut={key:7,style:{color:"var(--text-secondary)","font-size":"11px"}},Pt={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},Jt={style:{"margin-left":"8px",color:"var(--text-muted)","font-size":"12px"}},qt={style:{color:"var(--text-muted)","font-size":"11px","margin-top":"4px"}},Ht={key:0,style:{"padding-top":"8px"}},Wt={style:{color:"var(--text-primary)","font-size":"13px",margin:"16px 0 10px"}},Kt={key:1,style:{color:"var(--text-secondary)","font-family":"monospace","font-size":"12px"}},Gt={key:2,style:{"font-family":"monospace","font-size":"12px"}},Yt={key:0,style:{"padding-top":"8px"}},Zt={style:{"margin-left":"8px","font-family":"monospace","font-size":"12px"}},Qt={style:{"margin-left":"8px",color:"var(--text-secondary)","font-size":"12px"}},Xt={style:{"margin-left":"auto",color:"#ff4d4f","font-weight":"500"}},$t={key:0,style:{"padding-top":"8px"}},ea={style:{color:"var(--text-primary)","font-size":"13px",margin:"16px 0 8px"}},ta={key:0,style:{color:"var(--text-primary)","font-size":"13px",margin:"16px 0 8px"}},aa={key:1,style:{color:"var(--text-secondary)","font-family":"monospace","font-size":"12px"}},oa={key:2,style:{"font-family":"monospace","font-size":"12px"}},la={key:0,style:{"padding-top":"8px"}},ra={style:{"font-family":"monospace","font-size":"12px"}},na={style:{"font-family":"monospace"}},ia={style:{"font-family":"monospace"}},sa={style:{color:"#faad14","font-weight":"600","font-family":"monospace","font-size":"14px"}};function ca(t,o,i,e,_,T){const R=p("a-button"),Q=p("a-space"),ee=p("a-alert"),z=p("a-statistic"),I=p("a-card"),A=p("a-col"),B=p("a-row"),S=p("a-tag"),j=p("a-radio-button"),P=p("a-radio-group"),X=p("a-popconfirm"),J=p("a-table"),G=p("a-tab-pane"),D=p("a-progress"),te=p("a-tabs"),ae=p("a-input"),E=p("a-form-item"),w=p("a-select-option"),F=p("a-select"),L=p("a-input-number"),q=p("a-form"),V=p("a-modal"),x=p("a-descriptions-item"),Y=p("a-descriptions"),H=p("a-empty"),oe=p("a-result"),le=p("a-list-item"),re=p("a-list");return d(),f("div",null,[b("div",_t,[b("div",null,[b("h2",kt,c(t.$t("sla.title")),1),b("p",Ct,c(t.$t("sla.subtitle")),1)]),l(Q,null,{default:r(()=>[l(R,{loading:e.loading,onClick:e.loadAll},{icon:r(()=>[l(e.ReloadOutlined)]),default:r(()=>[y(" "+c(t.$t("sla.refresh")),1)]),_:1},8,["loading"]),l(R,{onClick:o[0]||(o[0]=a=>e.showRecordModal=!0)},{icon:r(()=>[l(e.LineChartOutlined)]),default:r(()=>[y(" "+c(t.$t("sla.recordMetric")),1)]),_:1}),l(R,{type:"primary",onClick:o[1]||(o[1]=a=>e.showCreateModal=!0)},{icon:r(()=>[l(e.PlusOutlined)]),default:r(()=>[y(" "+c(t.$t("sla.create")),1)]),_:1})]),_:1})]),m(" noDb banner "),e.errorState.noDb?(d(),h(ee,{key:0,type:"info","show-icon":"",message:t.$t("sla.noDb.message"),description:t.$t("sla.noDb.description"),style:{"margin-bottom":"16px"}},null,8,["message","description"])):m("v-if",!0),m(" Stat cards "),l(B,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:r(()=>[l(A,{xs:12,sm:8,lg:5},{default:r(()=>[l(I,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:r(()=>[l(z,{title:t.$t("sla.stats.totalContracts"),value:e.stats.totalContracts,"value-style":{color:"#1677ff",fontSize:"20px"}},{prefix:r(()=>[l(e.FileProtectOutlined)]),_:1},8,["title","value"])]),_:1})]),_:1}),l(A,{xs:12,sm:8,lg:5},{default:r(()=>[l(I,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:r(()=>[l(z,{title:t.$t("sla.stats.active"),value:e.stats.activeContracts,"value-style":{color:e.stats.activeContracts>0?"#52c41a":"#888",fontSize:"20px"}},{prefix:r(()=>[l(e.CheckCircleOutlined)]),_:1},8,["title","value","value-style"])]),_:1})]),_:1}),l(A,{xs:12,sm:8,lg:5},{default:r(()=>[l(I,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:r(()=>[l(z,{title:t.$t("sla.stats.orgs"),value:e.stats.activeOrgs,"value-style":{color:"#722ed1",fontSize:"20px"},suffix:e.stats.maxActiveSlasPerOrg?`· cap=${e.stats.maxActiveSlasPerOrg}`:""},{prefix:r(()=>[l(e.TeamOutlined)]),_:1},8,["title","value","suffix"])]),_:1})]),_:1}),l(A,{xs:12,sm:8,lg:5},{default:r(()=>[l(I,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:r(()=>[l(z,{title:t.$t("sla.stats.violations"),value:e.stats.violations.total,"value-style":{color:e.stats.violations.total>0?"#ff4d4f":"#888",fontSize:"20px"}},{prefix:r(()=>[l(e.WarningOutlined)]),_:1},8,["title","value","value-style"])]),_:1})]),_:1}),l(A,{xs:24,sm:8,lg:4},{default:r(()=>[l(I,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:r(()=>[l(z,{title:t.$t("sla.stats.compensation"),value:e.stats.violations.totalCompensation,precision:2,"value-style":{color:"#faad14",fontSize:"20px"}},{prefix:r(()=>[l(e.DollarOutlined)]),_:1},8,["title","value"])]),_:1})]),_:1})]),_:1}),m(" Tier catalogue "),l(I,{title:t.$t("sla.tierCard"),size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"20px"},"body-style":{padding:"12px 16px"}},{default:r(()=>[l(B,{gutter:[12,12]},{default:r(()=>[(d(!0),f(O,null,M(e.tiers,a=>(d(),h(A,{key:a.name,xs:24,sm:8},{default:r(()=>[b("div",{class:"tier-pill",style:at({borderLeftColor:e.tierBarColor(a.name)})},[b("div",ht,[l(S,{color:e.tierColor(a.name),style:{"font-family":"monospace","font-size":"13px"}},{default:r(()=>[y(c(a.name.toUpperCase()),1)]),_:2},1032,["color"]),b("span",St,c(t.$t("sla.tierCompRate",{pct:(a.compensationRate*100).toFixed(1)})),1)]),b("div",xt,[b("span",Tt,c(t.$t("sla.tierTerms.availability",{pct:(a.availability*100).toFixed(2)})),1),b("span",It,c(t.$t("sla.tierTerms.p95",{ms:a.maxResponseTime})),1),b("span",At,c(t.$t("sla.tierTerms.rps",{n:a.minThroughput})),1),b("span",Ft,c(t.$t("sla.tierTerms.errorRate",{pct:(a.maxErrorRate*100).toFixed(2)})),1)])],4)]),_:2},1024))),128))]),_:1})]),_:1},8,["title"]),m(" Tabs "),l(te,{activeKey:e.activeTab,"onUpdate:activeKey":o[5]||(o[5]=a=>e.activeTab=a),class:"sla-tabs"},{default:r(()=>[m(" ── Contracts tab ────────────────────────────────────── "),l(G,{key:"contracts",tab:t.$t("sla.tabs.contracts")},{default:r(()=>[b("div",Ot,[l(P,{value:e.tierFilter,"onUpdate:value":o[2]||(o[2]=a=>e.tierFilter=a),size:"small","button-style":"solid"},{default:r(()=>[l(j,{value:""},{default:r(()=>[y(c(t.$t("sla.filter.allTiers")),1)]),_:1}),(d(!0),f(O,null,M(e.SLA_TIER_NAMES,a=>(d(),h(j,{key:a,value:a},{default:r(()=>[y(c(a.toUpperCase()),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"]),l(P,{value:e.statusFilter,"onUpdate:value":o[3]||(o[3]=a=>e.statusFilter=a),size:"small"},{default:r(()=>[l(j,{value:""},{default:r(()=>[y(c(t.$t("sla.filter.allStatuses")),1)]),_:1}),(d(!0),f(O,null,M(e.SLA_STATUSES,a=>(d(),h(j,{key:a,value:a},{default:r(()=>[y(c(e.statusLabel(a)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),l(J,{columns:e.contractColumns,"data-source":e.filteredContracts,pagination:{pageSize:20,showTotal:a=>t.$t("sla.table.contractsSuffix",{n:a})},size:"small",loading:e.loading,style:{background:"var(--bg-card)"}},{bodyCell:r(({column:a,record:u})=>[a.key==="slaId"?(d(),f("span",Rt,c(u.slaId.slice(0,12)),1)):m("v-if",!0),a.key==="orgId"?(d(),f("span",wt,c(u.orgId),1)):m("v-if",!0),a.key==="tier"?(d(),h(S,{key:2,color:e.tierColor(u.tier),style:{"font-family":"monospace"}},{default:r(()=>[y(c(u.tier.toUpperCase()),1)]),_:2},1032,["color"])):m("v-if",!0),a.key==="status"?(d(),h(S,{key:3,color:e.statusColor(u.status)},{default:r(()=>[y(c(e.statusLabel(u.status)),1)]),_:2},1032,["color"])):m("v-if",!0),a.key==="monthlyFee"?(d(),f("span",zt,c(u.monthlyFee.toFixed(2)),1)):m("v-if",!0),a.key==="endDate"?(d(),f("span",Lt,c(e.formatSlaTime(u.endDate)),1)):m("v-if",!0),a.key==="action"?(d(),f(O,{key:6},[l(R,{size:"small",type:"link",onClick:W=>e.viewMetrics(u)},{default:r(()=>[y(c(t.$t("sla.table.actionMetrics")),1)]),_:1},8,["onClick"]),l(R,{size:"small",type:"link",onClick:W=>e.checkContract(u)},{default:r(()=>[y(c(t.$t("sla.table.actionCheck")),1)]),_:1},8,["onClick"]),l(R,{size:"small",type:"link",onClick:W=>e.viewReport(u)},{default:r(()=>[y(c(t.$t("sla.table.actionReport")),1)]),_:1},8,["onClick"]),u.status==="active"?(d(),h(X,{key:0,title:t.$t("sla.terminateConfirm.title"),"ok-text":t.$t("sla.terminateConfirm.ok"),"cancel-text":t.$t("sla.terminateConfirm.cancel"),onConfirm:W=>e.terminateContract(u)},{default:r(()=>[l(R,{size:"small",type:"link",danger:""},{default:r(()=>[y(c(t.$t("sla.terminateConfirm.ok")),1)]),_:1})]),_:1},8,["title","ok-text","cancel-text","onConfirm"])):m("v-if",!0)],64)):m("v-if",!0)]),emptyText:r(()=>[b("div",Et,[l(e.FileProtectOutlined,{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),y(" "+c(e.tierFilter||e.statusFilter?t.$t("sla.table.emptyContractsFiltered"):t.$t("sla.table.emptyContracts")),1)])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"]),m(" ── Violations tab ───────────────────────────────────── "),l(G,{key:"violations",tab:t.$t("sla.tabs.violations")},{default:r(()=>[b("div",Vt,[l(P,{value:e.severityFilter,"onUpdate:value":o[4]||(o[4]=a=>e.severityFilter=a),size:"small","button-style":"solid"},{default:r(()=>[l(j,{value:""},{default:r(()=>[y(c(t.$t("sla.filter.allSeverities")),1)]),_:1}),(d(!0),f(O,null,M(e.VIOLATION_SEVERITIES,a=>(d(),h(j,{key:a,value:a},{default:r(()=>[y(c(e.severityLabel(a)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),l(J,{columns:e.violationColumns,"data-source":e.filteredViolations,pagination:{pageSize:20,showTotal:a=>t.$t("sla.table.totalSuffix",{n:a})},size:"small",loading:e.loading,style:{background:"var(--bg-card)"}},{bodyCell:r(({column:a,record:u})=>[a.key==="violationId"?(d(),f("span",Mt,c(u.violationId.slice(0,12)),1)):m("v-if",!0),a.key==="term"?(d(),h(S,{key:1,color:"default",style:{"font-family":"monospace"}},{default:r(()=>[y(c(e.termLabel(u.term)),1)]),_:2},1024)):m("v-if",!0),a.key==="severity"?(d(),h(S,{key:2,color:e.severityColor(u.severity)},{default:r(()=>[y(c(e.severityLabel(u.severity)),1)]),_:2},1032,["color"])):m("v-if",!0),a.key==="deviation"?(d(),h(D,{key:3,percent:Math.min(100,Math.round(u.deviationPercent)),"stroke-color":e.severityBarColor(u.severity),size:"small",format:()=>`${u.deviationPercent.toFixed(1)}%`},null,8,["percent","stroke-color","format"])):m("v-if",!0),a.key==="expected"?(d(),f("span",jt,c(e.formatTermValue(u.term,u.expectedValue)),1)):m("v-if",!0),a.key==="actual"?(d(),f("span",Dt,c(e.formatTermValue(u.term,u.actualValue)),1)):m("v-if",!0),a.key==="compensation"?(d(),f(O,{key:6},[u.compensationAmount!==null?(d(),f("span",Nt,c(u.compensationAmount.toFixed(2)),1)):(d(),f("span",Bt,c(t.$t("sla.table.uncomputed")),1))],64)):m("v-if",!0),a.key==="occurredAt"?(d(),f("span",Ut,c(e.formatSlaTime(u.occurredAt)),1)):m("v-if",!0),a.key==="action"?(d(),f(O,{key:8},[u.compensationAmount===null?(d(),h(R,{key:0,size:"small",type:"link",onClick:W=>e.computeCompensation(u)},{default:r(()=>[y(c(t.$t("sla.table.actionComputeComp")),1)]),_:1},8,["onClick"])):(d(),h(R,{key:1,size:"small",type:"link",onClick:W=>e.viewCompensation(u)},{default:r(()=>[y(c(t.$t("sla.table.actionView")),1)]),_:1},8,["onClick"]))],64)):m("v-if",!0)]),emptyText:r(()=>[b("div",Pt,[l(e.CheckCircleOutlined,{style:{"font-size":"36px","margin-bottom":"10px",display:"block",color:"#52c41a"}}),y(" "+c(e.severityFilter?t.$t("sla.table.emptyViolationsFiltered"):t.$t("sla.table.emptyViolations")),1)])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"]),m(" ── Breakdown tab ────────────────────────────────────── "),l(G,{key:"breakdown",tab:t.$t("sla.tabs.breakdown")},{default:r(()=>[l(B,{gutter:[16,16]},{default:r(()=>[l(A,{xs:24,lg:12},{default:r(()=>[l(I,{title:t.$t("sla.breakdown.contractsByStatus"),size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"12px"}},{default:r(()=>[(d(!0),f(O,null,M(e.SLA_STATUSES,a=>(d(),f("div",{key:a,class:"bd-row"},[l(S,{color:e.statusColor(a),style:{"min-width":"80px","text-align":"center"}},{default:r(()=>[y(c(e.statusLabel(a)),1)]),_:2},1032,["color"]),l(D,{percent:e.pctOfTotal(e.stats.byStatus[a]||0,e.stats.totalContracts),"stroke-color":e.statusBarColor(a),format:()=>`${e.stats.byStatus[a]||0}`,size:"small",style:{flex:"1","margin-left":"12px"}},null,8,["percent","stroke-color","format"])]))),128))]),_:1},8,["title"]),l(I,{title:t.$t("sla.breakdown.contractsByTier"),size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:r(()=>[(d(!0),f(O,null,M(e.SLA_TIER_NAMES,a=>(d(),f("div",{key:a,class:"bd-row"},[l(S,{color:e.tierColor(a),style:{"min-width":"80px","text-align":"center","font-family":"monospace"}},{default:r(()=>[y(c(a.toUpperCase()),1)]),_:2},1032,["color"]),l(D,{percent:e.pctOfTotal(e.stats.byTier[a]||0,e.stats.totalContracts),"stroke-color":e.tierBarColor(a),format:()=>`${e.stats.byTier[a]||0}`,size:"small",style:{flex:"1","margin-left":"12px"}},null,8,["percent","stroke-color","format"])]))),128))]),_:1},8,["title"])]),_:1}),l(A,{xs:24,lg:12},{default:r(()=>[l(I,{title:t.$t("sla.breakdown.violationsBySeverity"),size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"12px"}},{default:r(()=>[(d(!0),f(O,null,M(e.VIOLATION_SEVERITIES,a=>(d(),f("div",{key:a,class:"bd-row"},[l(S,{color:e.severityColor(a),style:{"min-width":"80px","text-align":"center"}},{default:r(()=>[y(c(e.severityLabel(a)),1)]),_:2},1032,["color"]),l(D,{percent:e.pctOfTotal(e.stats.violations.bySeverity[a]||0,e.stats.violations.total),"stroke-color":e.severityBarColor(a),format:()=>`${e.stats.violations.bySeverity[a]||0}`,size:"small",style:{flex:"1","margin-left":"12px"}},null,8,["percent","stroke-color","format"])]))),128))]),_:1},8,["title"]),l(I,{title:t.$t("sla.breakdown.violationsByTerm"),size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:r(()=>[(d(!0),f(O,null,M(e.SLA_TERMS_LIST,a=>(d(),f("div",{key:a,class:"bd-row"},[l(S,{color:"default",style:{"min-width":"110px","text-align":"center","font-family":"monospace","font-size":"11px"}},{default:r(()=>[y(c(e.termLabel(a)),1)]),_:2},1024),l(D,{percent:e.pctOfTotal(e.stats.violations.byTerm[a]||0,e.stats.violations.total),"stroke-color":"#fa8c16",format:()=>`${e.stats.violations.byTerm[a]||0}`,size:"small",style:{flex:"1","margin-left":"12px"}},null,8,["percent","format"])]))),128))]),_:1},8,["title"])]),_:1})]),_:1})]),_:1},8,["tab"])]),_:1},8,["activeKey"]),m(" ── Create contract modal ──────────────────────────────── "),l(V,{open:e.showCreateModal,"onUpdate:open":o[10]||(o[10]=a=>e.showCreateModal=a),title:t.$t("sla.create_modal.title"),"confirm-loading":e.creating,width:540,"ok-text":t.$t("sla.create_modal.ok"),"cancel-text":t.$t("sla.create_modal.cancel"),onOk:e.submitCreate,onCancel:e.resetCreateForm},{default:r(()=>[l(q,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:r(()=>[l(E,{label:t.$t("sla.create_modal.orgLabel"),required:""},{default:r(()=>[l(ae,{value:e.createForm.orgId,"onUpdate:value":o[6]||(o[6]=a=>e.createForm.orgId=a),placeholder:t.$t("sla.create_modal.orgPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),l(E,{label:t.$t("sla.create_modal.tierLabel"),required:""},{default:r(()=>[l(F,{value:e.createForm.tier,"onUpdate:value":o[7]||(o[7]=a=>e.createForm.tier=a)},{default:r(()=>[(d(!0),f(O,null,M(e.SLA_TIER_NAMES,a=>(d(),h(w,{key:a,value:a},{default:r(()=>[y(c(a.toUpperCase()),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),_:1},8,["label"]),l(E,{label:t.$t("sla.create_modal.feeLabel")},{default:r(()=>[l(L,{value:e.createForm.monthlyFee,"onUpdate:value":o[8]||(o[8]=a=>e.createForm.monthlyFee=a),min:0,step:100,style:{width:"160px"}},null,8,["value"])]),_:1},8,["label"]),l(E,{label:t.$t("sla.create_modal.durationLabel")},{default:r(()=>[l(L,{value:e.createForm.durationDays,"onUpdate:value":o[9]||(o[9]=a=>e.createForm.durationDays=a),min:1,step:30,style:{width:"160px"}},null,8,["value"]),b("span",Jt,c(t.$t("sla.create_modal.durationHint")),1)]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),m(" ── Record metric modal ────────────────────────────────── "),l(V,{open:e.showRecordModal,"onUpdate:open":o[14]||(o[14]=a=>e.showRecordModal=a),title:t.$t("sla.record_modal.title"),"confirm-loading":e.recording,width:540,"ok-text":t.$t("sla.record_modal.ok"),"cancel-text":t.$t("sla.record_modal.cancel"),onOk:e.submitRecord,onCancel:e.resetRecordForm},{default:r(()=>[l(q,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:r(()=>[l(E,{label:t.$t("sla.record_modal.slaLabel"),required:""},{default:r(()=>[l(F,{value:e.recordForm.slaId,"onUpdate:value":o[11]||(o[11]=a=>e.recordForm.slaId=a),placeholder:t.$t("sla.record_modal.slaPlaceholder"),options:e.contracts.map(a=>({value:a.slaId,label:`${a.slaId.slice(0,8)} · ${a.orgId} [${a.tier}]`})),"show-search":""},null,8,["value","placeholder","options"])]),_:1},8,["label"]),l(E,{label:t.$t("sla.record_modal.termLabel"),required:""},{default:r(()=>[l(F,{value:e.recordForm.term,"onUpdate:value":o[12]||(o[12]=a=>e.recordForm.term=a)},{default:r(()=>[(d(!0),f(O,null,M(e.SLA_TERMS_LIST,a=>(d(),h(w,{key:a,value:a},{default:r(()=>[y(c(e.termLabel(a)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),_:1},8,["label"]),l(E,{label:t.$t("sla.record_modal.valueLabel"),required:""},{default:r(()=>[l(L,{value:e.recordForm.value,"onUpdate:value":o[13]||(o[13]=a=>e.recordForm.value=a),step:.01,style:{width:"200px"}},null,8,["value"]),b("div",qt,c(e.termHint(e.recordForm.term)),1)]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),m(" ── Metrics modal ──────────────────────────────────────── "),l(V,{open:e.showMetricsModal,"onUpdate:open":o[15]||(o[15]=a=>e.showMetricsModal=a),title:t.$t("sla.metrics_modal.title",{id:e.currentContract?.slaId?.slice(0,12)||""}),width:640,footer:null},{default:r(()=>[e.currentContract?(d(),f("div",Ht,[l(Y,{column:2,size:"small",bordered:""},{default:r(()=>[l(x,{label:t.$t("sla.metrics_modal.org")},{default:r(()=>[y(c(e.currentContract.orgId),1)]),_:1},8,["label"]),l(x,{label:t.$t("sla.metrics_modal.tier")},{default:r(()=>[l(S,{color:e.tierColor(e.currentContract.tier)},{default:r(()=>[y(c(e.currentContract.tier.toUpperCase()),1)]),_:1},8,["color"])]),_:1},8,["label"]),l(x,{label:t.$t("sla.metrics_modal.samples")},{default:r(()=>[y(c(e.currentMetrics.totalSamples),1)]),_:1},8,["label"]),l(x,{label:t.$t("sla.metrics_modal.monthlyFee")},{default:r(()=>[y(c(e.currentContract.monthlyFee.toFixed(2)),1)]),_:1},8,["label"])]),_:1}),b("h4",Wt,c(t.$t("sla.metrics_modal.byTerm")),1),Object.keys(e.currentMetrics.byTerm).length?(d(),h(J,{key:1,columns:e.aggColumns,"data-source":e.aggDataSource,size:"small",pagination:!1,style:{background:"var(--bg-card)"}},{bodyCell:r(({column:a,record:u})=>[a.key==="term"?(d(),h(S,{key:0,color:"default",style:{"font-family":"monospace"}},{default:r(()=>[y(c(e.termLabel(u.term)),1)]),_:2},1024)):m("v-if",!0),a.key==="expected"?(d(),f("span",Kt,c(e.formatTermValue(u.term,u.expected)),1)):["mean","p95","min","max"].includes(a.key)?(d(),f("span",Gt,c(e.formatTermValue(u.term,u[a.key])),1)):m("v-if",!0)]),_:1},8,["columns","data-source"])):(d(),h(H,{key:0,description:t.$t("sla.metrics_modal.empty"),image:e.EMPTY_IMG},null,8,["description","image"]))])):m("v-if",!0)]),_:1},8,["open","title"]),m(" ── Check result modal ─────────────────────────────────── "),l(V,{open:e.showCheckModal,"onUpdate:open":o[16]||(o[16]=a=>e.showCheckModal=a),title:t.$t("sla.check_modal.title",{id:e.currentContract?.slaId?.slice(0,12)||""}),width:640,footer:null},{default:r(()=>[e.currentCheck?(d(),f("div",Yt,[l(oe,{status:e.currentCheck.totalViolations===0?"success":"warning",title:e.currentCheck.totalViolations===0?t.$t("sla.check_modal.noViolations"):t.$t("sla.check_modal.withViolations",{n:e.currentCheck.totalViolations}),"sub-title":t.$t("sla.check_modal.checkedAt",{time:e.formatSlaTime(e.currentCheck.checkedAt)})},null,8,["status","title","sub-title"]),e.currentCheck.totalViolations>0?(d(),h(re,{key:0,size:"small","data-source":e.currentCheck.violations},{renderItem:r(({item:a})=>[l(le,null,{default:r(()=>[l(S,{color:e.severityColor(a.severity),style:{"min-width":"50px","text-align":"center"}},{default:r(()=>[y(c(e.severityLabel(a.severity)),1)]),_:2},1032,["color"]),b("span",Zt,c(e.termLabel(a.term)),1),b("span",Qt,c(t.$t("sla.check_modal.expectedActual",{expected:e.formatTermValue(a.term,a.expectedValue),actual:e.formatTermValue(a.term,a.actualValue)})),1),b("span",Xt,c(a.deviationPercent.toFixed(2))+"%",1)]),_:2},1024)]),_:1},8,["data-source"])):m("v-if",!0)])):m("v-if",!0)]),_:1},8,["open","title"]),m(" ── Report modal ───────────────────────────────────────── "),l(V,{open:e.showReportModal,"onUpdate:open":o[17]||(o[17]=a=>e.showReportModal=a),title:t.$t("sla.report_modal.title",{id:e.currentContract?.slaId?.slice(0,12)||""}),width:720,footer:null},{default:r(()=>[e.currentReport?(d(),f("div",$t,[l(B,{gutter:12,style:{"margin-bottom":"16px"}},{default:r(()=>[l(A,{span:8},{default:r(()=>[l(z,{title:t.$t("sla.report_modal.compliance"),value:e.currentReport.compliance*100,suffix:"%",precision:2,"value-style":{color:e.complianceColor(e.currentReport.compliance),fontSize:"20px"}},null,8,["title","value","value-style"])]),_:1}),l(A,{span:8},{default:r(()=>[l(z,{title:t.$t("sla.report_modal.violations"),value:e.currentReport.violations.total,"value-style":{color:"#ff4d4f",fontSize:"20px"}},null,8,["title","value"])]),_:1}),l(A,{span:8},{default:r(()=>[l(z,{title:t.$t("sla.report_modal.compensation"),value:e.currentReport.violations.totalCompensation,precision:2,"value-style":{color:"#faad14",fontSize:"20px"}},null,8,["title","value"])]),_:1})]),_:1}),b("h4",ea,c(t.$t("sla.breakdown.violationsBySeverityHeader")),1),(d(!0),f(O,null,M(e.VIOLATION_SEVERITIES,a=>(d(),f("div",{key:a,class:"bd-row"},[l(S,{color:e.severityColor(a),style:{"min-width":"80px","text-align":"center"}},{default:r(()=>[y(c(e.severityLabel(a)),1)]),_:2},1032,["color"]),l(D,{percent:e.pctOfTotal(e.currentReport.violations.bySeverity[a]||0,e.currentReport.violations.total),"stroke-color":e.severityBarColor(a),format:()=>`${e.currentReport.violations.bySeverity[a]||0}`,size:"small",style:{flex:"1","margin-left":"12px"}},null,8,["percent","stroke-color","format"])]))),128)),Object.keys(e.currentReport.metricsByTerm).length?(d(),f("h4",ta,c(t.$t("sla.breakdown.metricsAggregation")),1)):m("v-if",!0),Object.keys(e.currentReport.metricsByTerm).length?(d(),h(J,{key:1,columns:e.aggColumns,"data-source":e.reportAggDataSource,size:"small",pagination:!1,style:{background:"var(--bg-card)"}},{bodyCell:r(({column:a,record:u})=>[a.key==="term"?(d(),h(S,{key:0,color:"default",style:{"font-family":"monospace"}},{default:r(()=>[y(c(e.termLabel(u.term)),1)]),_:2},1024)):m("v-if",!0),a.key==="expected"?(d(),f("span",aa,c(e.formatTermValue(u.term,u.expected)),1)):["mean","p95","min","max"].includes(a.key)?(d(),f("span",oa,c(e.formatTermValue(u.term,u[a.key])),1)):m("v-if",!0)]),_:1},8,["columns","data-source"])):m("v-if",!0)])):m("v-if",!0)]),_:1},8,["open","title"]),m(" ── Compensation modal ─────────────────────────────────── "),l(V,{open:e.showCompensationModal,"onUpdate:open":o[18]||(o[18]=a=>e.showCompensationModal=a),title:t.$t("sla.compensation_modal.title",{id:e.currentViolation?.violationId?.slice(0,12)||""}),width:540,footer:null},{default:r(()=>[e.currentCompensation?(d(),f("div",la,[l(Y,{column:2,size:"small",bordered:""},{default:r(()=>[l(x,{label:t.$t("sla.compensation_modal.violationId"),span:2},{default:r(()=>[b("span",ra,c(e.currentCompensation.violationId),1)]),_:1},8,["label"]),l(x,{label:t.$t("sla.compensation_modal.severity")},{default:r(()=>[l(S,{color:e.severityColor(e.currentCompensation.severity)},{default:r(()=>[y(c(e.severityLabel(e.currentCompensation.severity)),1)]),_:1},8,["color"])]),_:1},8,["label"]),l(x,{label:t.$t("sla.compensation_modal.base")},{default:r(()=>[b("span",na,c(e.currentCompensation.base.toFixed(4)),1)]),_:1},8,["label"]),l(x,{label:t.$t("sla.compensation_modal.multiplier")},{default:r(()=>[b("span",ia,"×"+c(e.currentCompensation.multiplier.toFixed(2)),1)]),_:1},8,["label"]),l(x,{label:t.$t("sla.compensation_modal.amount")},{default:r(()=>[b("span",sa,c(e.currentCompensation.amount.toFixed(2)),1)]),_:1},8,["label"])]),_:1})])):m("v-if",!0)]),_:1},8,["open","title"])])}const ya=ot(gt,[["render",ca],["__scopeId","data-v-76f93f7e"],["__file","/tmp/cc-web-panel-heolxZ/repo/packages/web-panel/src/views/Sla.vue"]]);export{ya as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{I as v,J as p,U as g,R as s,c as o,K as n,V as y,S as _,o as it,a as H,b as X,r as S,P as d,Q as m,F as C,Z as x}from"./vendor-BvqAck49.js";import{_ as Nt,u as ut,b as dt,d as b}from"./index-BcRDjaEi.js";import{s as Ut}from"./community-parser-CO25nZFt.js";import{a8 as jt,aY as Mt,ac as Et,b4 as Bt,n as Dt,as as Qt,R as Kt}from"./icons-DP3uiYxy.js";function J(e){const l=Ut(e);if(!l)return null;try{return JSON.parse(l)}catch{}const u=l.match(/\{[\s\S]*\}|\[[\s\S]*\]/);if(!u)return null;try{return JSON.parse(u[0])}catch{return null}}const Vt=Object.freeze(["free","starter","pro","enterprise"]),Wt=Object.freeze(["active","suspended","deleted"]),Jt=Object.freeze(["api_calls","storage_bytes","ai_requests"]);function z(e,l=0){return typeof e=="number"&&Number.isFinite(e)?e:l}function Yt(e,l=0){if(!e||typeof e!="object")return null;const u=e.id||"";if(!u)return null;const t=e.quotas&&typeof e.quotas=="object"?{...e.quotas}:{};return{key:u,id:u,name:String(e.name||u),monthlyFee:e.monthlyFee==null?null:z(e.monthlyFee,null),quotas:t,features:Array.isArray(e.features)?e.features.filter(D=>typeof D=="string"):[],_idx:l}}function ct(e){const l=J(e);return Array.isArray(l)?l.map(Yt).filter(Boolean):[]}function Zt(e,l=0){if(!e||typeof e!="object")return null;const u=e.id||"";return u?{key:u,id:u,name:String(e.name||u),unit:String(e.unit||""),_idx:l}:null}function mt(e){const l=J(e);return Array.isArray(l)?l.map(Zt).filter(Boolean):[]}function Gt(e,l=0){if(!e||typeof e!="object")return null;const u=e.id||"";return u?{key:u,id:u,name:String(e.name||""),slug:String(e.slug||""),config:e.config??null,status:String(e.status||"active").toLowerCase(),plan:String(e.plan||"free").toLowerCase(),dbPath:e.dbPath||null,ownerId:e.ownerId||"",createdAt:e.createdAt??null,updatedAt:e.updatedAt??null,deletedAt:e.deletedAt??null,_idx:l}:null}function ft(e){const l=J(e);return Array.isArray(l)?l.map(Gt).filter(Boolean):[]}function Ht(e,l=0){if(!e||typeof e!="object")return null;const u=e.id||"";return u?{key:u,id:u,tenantId:String(e.tenantId||""),plan:String(e.plan||"free").toLowerCase(),status:String(e.status||"active").toLowerCase(),startedAt:e.startedAt??null,expiresAt:e.expiresAt??null,cancelledAt:e.cancelledAt??null,paymentMethod:e.paymentMethod||null,amount:e.amount==null?null:z(e.amount,null),createdAt:e.createdAt??null,_idx:l}:null}function pt(e){const l=J(e);return Array.isArray(l)?l.map(Ht).filter(Boolean):[]}function bt(e){const l=J(e);return!l||typeof l!="object"||Array.isArray(l)?null:{tenantId:String(l.tenantId||""),plan:String(l.plan||"free").toLowerCase(),metric:String(l.metric||""),period:String(l.period||""),limit:l.limit==null?null:z(l.limit,null),used:z(l.used,0),remaining:l.remaining==null?null:z(l.remaining,null),unlimited:!!l.unlimited,exceeded:!!l.exceeded}}const Xt={tenantCount:0,byStatus:{active:0,suspended:0,deleted:0},byPlan:{free:0,starter:0,pro:0,enterprise:0},subscriptionCount:0,activeSubscriptions:0,usageRecordCount:0,totalUsage:{api_calls:0,storage_bytes:0,ai_requests:0}};function yt(e){const l=JSON.parse(JSON.stringify(Xt)),u=J(e);if(!u||typeof u!="object"||Array.isArray(u))return l;if(l.tenantCount=z(u.tenantCount,0),l.subscriptionCount=z(u.subscriptionCount,0),l.activeSubscriptions=z(u.activeSubscriptions,0),l.usageRecordCount=z(u.usageRecordCount,0),u.byStatus&&typeof u.byStatus=="object")for(const t of Object.keys(l.byStatus))l.byStatus[t]=z(u.byStatus[t],0);if(u.byPlan&&typeof u.byPlan=="object")for(const t of Object.keys(l.byPlan))l.byPlan[t]=z(u.byPlan[t],0);if(u.totalUsage&&typeof u.totalUsage=="object")for(const t of Object.keys(l.totalUsage))l.totalUsage[t]=z(u.totalUsage[t],0);return l}function $t(e){if(e==null||e==="")return"—";const l=typeof e=="number"?new Date(e):new Date(String(e));return isNaN(l.getTime())?String(e):l.toLocaleString("zh-CN",{hour12:!1})}function nt(e){return typeof e!="number"||!Number.isFinite(e)||e<0?"—":e===0?"0":e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:e<1024*1024*1024?`${(e/1024/1024).toFixed(1)} MB`:`${(e/1024/1024/1024).toFixed(2)} GB`}function gt(e=new Date){const l=e.getFullYear(),u=String(e.getMonth()+1).padStart(2,"0");return`${l}-${u}`}const te={__name:"Tenant",setup(e,{expose:l}){l();const u=ut(),{t}=dt(),D=S(!1),$=S(!1),w=S(!1),j=S(!1),Q=S(!1),M=S([]),K=S([]),O=S([]),R=S([]),P=S({tenantCount:0,byStatus:{active:0,suspended:0,deleted:0},byPlan:{free:0,starter:0,pro:0,enterprise:0},subscriptionCount:0,activeSubscriptions:0,usageRecordCount:0,totalUsage:{api_calls:0,storage_bytes:0,ai_requests:0}}),Y=S("tenants"),A=S(""),I=S(""),E=S(!1),V=S(!1),Z=S(!1),B=S(!1),T=H({name:"",slug:"",plan:"free",owner:""}),k=H({tenantId:"",plan:"pro",amount:null,duration:720*60*60*1e3}),F=S(""),q=H({tenantId:null,metric:"api_calls",period:""}),h=H({tenantId:null,metric:"api_calls",value:1,period:""}),N=S(null),W=X(()=>[{title:t("tenant.tenantCols.name"),key:"name"},{title:t("tenant.tenantCols.plan"),key:"plan",width:"110px"},{title:t("tenant.tenantCols.status"),key:"status",width:"100px"},{title:t("tenant.tenantCols.owner"),key:"owner",width:"160px"},{title:t("tenant.tenantCols.createdAt"),key:"createdAt",width:"160px"},{title:t("tenant.tenantCols.action"),key:"action",width:"280px"}]),tt=X(()=>[{title:t("tenant.subscriptionCols.tenant"),key:"tenant"},{title:t("tenant.subscriptionCols.plan"),key:"plan",width:"110px"},{title:t("tenant.subscriptionCols.amount"),key:"amount",width:"100px"},{title:t("tenant.subscriptionCols.status"),key:"status",width:"110px"},{title:t("tenant.subscriptionCols.startedAt"),key:"startedAt",width:"160px"},{title:t("tenant.subscriptionCols.expiresAt"),key:"expiresAt",width:"160px"},{title:t("tenant.subscriptionCols.action"),key:"action",width:"120px"}]),et=X(()=>{let r=M.value;return A.value&&(r=r.filter(i=>i.plan===A.value)),I.value&&(r=r.filter(i=>i.status===I.value)),r}),a=X(()=>K.value.filter(r=>r.status==="active"&&typeof r.amount=="number").reduce((r,i)=>r+i.amount,0));function c(r){const i=`tenant.planLabels.${r}`,f=t(i);return f===i?r:f}function L(r){return{free:"default",starter:"blue",pro:"purple",enterprise:"gold"}[r]||"default"}function vt(r){const i=`tenant.tenantStatusLabels.${r}`,f=t(i);return f===i?r:f}function _t(r){return{active:"green",suspended:"orange",deleted:"default"}[r]||"default"}function kt(r){const i=`tenant.subStatusLabels.${r}`,f=t(i);return f===i?r:f}function ht(r){return{active:"green",cancelled:"default",expired:"red",past_due:"orange"}[r]||"default"}function St(r){const i=M.value.find(f=>f.id===r);return i?i.name:t("tenant.deletedTenant")}function Ct(r,i){return r==null?"—":i==="storage_bytes"?nt(r):String(r)}function Ft(r,i){return r==null?t("tenant.planCard.unlimited"):i==="storage_bytes"?nt(r):r.toLocaleString()}function qt({key:r}){r==="tenant"?E.value=!0:r==="quota"?(N.value=null,Z.value=!0):r==="record"&&(B.value=!0)}async function U(){D.value=!0;try{const[r,i,f,G,Pt]=await Promise.all([u.execute("tenant list --json",1e4).catch(()=>({output:""})),u.execute("tenant subscriptions --json",1e4).catch(()=>({output:""})),u.execute("tenant plans --json",8e3).catch(()=>({output:""})),u.execute("tenant metrics --json",8e3).catch(()=>({output:""})),u.execute("tenant stats --json",8e3).catch(()=>({output:""}))]);M.value=ft(r.output),K.value=pt(i.output),O.value=ct(f.output),R.value=mt(G.output),P.value=yt(Pt.output)}catch(r){b.error(t("tenant.msg.loadFailed")+": "+(r?.message||r))}finally{D.value=!1}}async function xt(){const r=T.name.trim(),i=T.slug.trim();if(!r||!i){b.warning(t("tenant.msg.createFieldsEmpty"));return}if(!/^[a-z0-9][a-z0-9-]*[a-z0-9]$|^[a-z0-9]$/.test(i)){b.warning(t("tenant.msg.slugInvalid"));return}$.value=!0;try{const f=[`tenant create "${r.replace(/"/g,'\\"')}" "${i.replace(/"/g,'\\"')}"`];f.push(`--plan ${T.plan}`),T.owner.trim()&&f.push(`--owner "${T.owner.trim().replace(/"/g,'\\"')}"`),f.push("--json");const{output:G}=await u.execute(f.join(" "),1e4);if(/error|Error|失败/i.test(G)&&!/"id"/.test(G)){b.error(t("tenant.msg.createFailed")+": "+G.slice(0,120));return}b.success(t("tenant.msg.createSuccess")),E.value=!1,lt(),await U()}catch(f){b.error(t("tenant.msg.createFailed")+": "+(f?.message||f))}finally{$.value=!1}}function wt(r){k.tenantId=r.id,k.plan=r.plan==="free"?"starter":r.plan,k.amount=null,k.duration=720*60*60*1e3,F.value=r.name,V.value=!0}async function At(){w.value=!0;try{const r=[`tenant subscribe ${k.tenantId}`];r.push(`--plan ${k.plan}`),k.amount!=null&&r.push(`--amount ${k.amount}`),k.duration&&r.push(`--duration-ms ${k.duration}`),r.push("--json");const{output:i}=await u.execute(r.join(" "),1e4);if(/error|Error|失败/i.test(i)&&!/"id"/.test(i)){b.error(t("tenant.msg.subscribeFailed")+": "+i.slice(0,120));return}b.success(t("tenant.msg.subscribeSuccess")),V.value=!1,ot(),Y.value="subscriptions",await U()}catch(r){b.error(t("tenant.msg.subscribeFailed")+": "+(r?.message||r))}finally{w.value=!1}}async function Tt(r,i){if(i!==r.plan)try{const{output:f}=await u.execute(`tenant configure ${r.id} --plan ${i} --json`,8e3);if(/error|Error/i.test(f)&&!/"id"/.test(f)){b.error(t("tenant.msg.planChangeFailed")+": "+f.slice(0,120));return}b.success(t("tenant.msg.planChangeSuccess",{plan:c(i)})),await U()}catch(f){b.error(t("tenant.msg.planChangeFailed")+": "+(f?.message||f))}}async function Lt(r,i){try{const{output:f}=await u.execute(`tenant configure ${r.id} --status ${i} --json`,8e3);if(/error|Error/i.test(f)&&!/"id"/.test(f)){b.error(t("tenant.msg.statusChangeFailed")+": "+f.slice(0,120));return}b.success(t(i==="active"?"tenant.msg.activated":"tenant.msg.suspended")),await U()}catch(f){b.error(t("tenant.msg.statusChangeFailed")+": "+(f?.message||f))}}async function zt(r){try{const{output:i}=await u.execute(`tenant delete ${r.id} --json`,8e3);if(/error|Error/i.test(i)&&!/deleted|removed/.test(i)){b.error(t("tenant.msg.deleteFailed")+": "+i.slice(0,120));return}b.success(t("tenant.msg.deleteSuccess")),await U()}catch(i){b.error(t("tenant.msg.deleteFailed")+": "+(i?.message||i))}}async function Rt(r){try{const{output:i}=await u.execute(`tenant cancel ${r.tenantId}`,8e3);if(/error|Error/i.test(i)&&!/cancelled|cancel/i.test(i)){b.error(t("tenant.msg.cancelFailed")+": "+i.slice(0,120));return}b.success(t("tenant.msg.cancelSuccess")),await U()}catch(i){b.error(t("tenant.msg.cancelFailed")+": "+(i?.message||i))}}async function It(){if(!q.tenantId){b.warning(t("tenant.msg.tenantEmpty"));return}j.value=!0,N.value=null;try{const r=[`tenant check-quota ${q.tenantId} ${q.metric}`];q.period.trim()&&r.push(`--period ${q.period.trim()}`),r.push("--json");const{output:i}=await u.execute(r.join(" "),8e3),f=bt(i);if(!f){b.error(t("tenant.msg.checkFailed")+": "+i.slice(0,120));return}N.value=f,f.exceeded&&b.warning(t("tenant.msg.exceededWarning"))}catch(r){b.error(t("tenant.msg.checkFailed")+": "+(r?.message||r))}finally{j.value=!1}}async function Ot(){if(!h.tenantId){b.warning(t("tenant.msg.tenantEmpty"));return}if(h.value==null||h.value<0){b.warning(t("tenant.msg.valueInvalid"));return}Q.value=!0;try{const r=[`tenant record ${h.tenantId} ${h.metric} ${h.value}`];h.period.trim()&&r.push(`--period ${h.period.trim()}`),r.push("--json");const{output:i}=await u.execute(r.join(" "),8e3);if(/error|Error/i.test(i)&&!/"id"|"tenant"/.test(i)){b.error(t("tenant.msg.recordFailed")+": "+i.slice(0,120));return}b.success(t("tenant.msg.recordSuccess")),B.value=!1,rt(),await U()}catch(r){b.error(t("tenant.msg.recordFailed")+": "+(r?.message||r))}finally{Q.value=!1}}function lt(){T.name="",T.slug="",T.plan="free",T.owner=""}function ot(){k.tenantId="",k.plan="pro",k.amount=null,k.duration=720*60*60*1e3,F.value=""}function rt(){h.tenantId=null,h.metric="api_calls",h.value=1,h.period=""}function at(r){r.period||(r.period=gt())}at(q),at(h),it(U);const st={ws:u,t,loading:D,creating:$,subscribing:w,checking:j,recording:Q,tenants:M,subscriptions:K,plans:O,metrics:R,stats:P,activeTab:Y,planFilter:A,statusFilter:I,showCreateModal:E,showSubscribeModal:V,showQuotaModal:Z,showRecordModal:B,createForm:T,subscribeForm:k,subscribeTargetName:F,quotaForm:q,recordForm:h,quotaResult:N,tenantColumns:W,subscriptionColumns:tt,filteredTenants:et,estimatedMrr:a,planLabel:c,planColor:L,tenantStatusLabel:vt,tenantStatusColor:_t,subStatusLabel:kt,subStatusColor:ht,tenantName:St,formatMetricValue:Ct,formatQuota:Ft,handleNewClick:qt,loadAll:U,createTenant:xt,openSubscribe:wt,subscribeTenant:At,changePlan:Tt,setStatus:Lt,deleteTenant:zt,cancelSubscription:Rt,checkQuota:It,recordUsage:Ot,resetCreateForm:lt,resetSubscribeForm:ot,resetRecordForm:rt,ensurePeriodDefault:at,ref:S,computed:X,onMounted:it,reactive:H,get ReloadOutlined(){return Kt},get PlusOutlined(){return Qt},get BankOutlined(){return Dt},get CreditCardOutlined(){return Bt},get DashboardOutlined(){return Et},get LineChartOutlined(){return Mt},get ApiOutlined(){return jt},get message(){return b},get useI18n(){return dt},get useWsStore(){return ut},get parsePlans(){return ct},get parseMetrics(){return mt},get parseTenants(){return ft},get parseSubscriptions(){return pt},get parseQuotaResult(){return bt},get parseStats(){return yt},get formatTenantTime(){return $t},get formatBytes(){return nt},get currentPeriod(){return gt},get PLAN_IDS(){return Vt},get TENANT_STATUSES(){return Wt},get KNOWN_METRICS(){return Jt}};return Object.defineProperty(st,"__isScriptSetup",{enumerable:!1,value:!0}),st}},ee={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},ae={class:"page-title"},ne={class:"page-sub"},le={style:{color:"var(--text-secondary)","font-size":"12px","margin-left":"8px"}},oe={class:"filter-bar"},re={style:{color:"var(--text-primary)","font-weight":"500"}},se={style:{color:"var(--text-secondary)","font-size":"11px","margin-top":"2px","font-family":"monospace"}},ie={key:0,style:{color:"var(--text-secondary)","font-family":"monospace","font-size":"11px"}},ue={key:1,style:{color:"var(--text-muted)"}},de={key:4,style:{color:"var(--text-secondary)","font-size":"11px"}},ce={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},me={style:{color:"var(--text-primary)","font-weight":"500"}},fe={style:{color:"var(--text-secondary)","font-size":"11px","font-family":"monospace"}},pe={key:0,style:{color:"#722ed1","font-weight":"500"}},be={key:1,style:{color:"var(--text-muted)"}},ye={key:4,style:{color:"var(--text-secondary)","font-size":"11px"}},ge={key:5,style:{color:"var(--text-secondary)","font-size":"11px"}},ve={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},_e={class:"plan-fee"},ke={key:0},he={class:"plan-fee-unit"},Se={key:1,style:{color:"#722ed1"}},Ce={class:"plan-section"},Fe={class:"plan-section-title"},qe={class:"plan-quota-label"},xe={class:"plan-quota-value"},we={class:"plan-section"},Ae={class:"plan-section-title"},Te={style:{"margin-top":"12px","font-size":"12px",color:"var(--text-secondary)"}},Le={style:{"font-family":"monospace",color:"var(--text-primary)"}},ze={key:0},Re={style:{"font-family":"monospace"}},Ie={key:1,style:{"margin-top":"8px"}};function Oe(e,l,u,t,D,$){const w=v("a-button"),j=v("a-menu-item"),Q=v("a-menu"),M=v("a-dropdown"),K=v("a-space"),O=v("a-statistic"),R=v("a-card"),P=v("a-col"),Y=v("a-row"),A=v("a-tag"),I=v("a-radio-button"),E=v("a-radio-group"),V=v("a-popconfirm"),Z=v("a-table"),B=v("a-tab-pane"),T=v("a-tabs"),k=v("a-input"),F=v("a-form-item"),q=v("a-select-option"),h=v("a-select"),N=v("a-form"),W=v("a-modal"),tt=v("a-input-number"),et=v("a-progress");return d(),p("div",null,[g("div",ee,[g("div",null,[g("h2",ae,s(e.$t("tenant.title")),1),g("p",ne,s(e.$t("tenant.subtitle")),1)]),o(K,null,{default:n(()=>[o(w,{loading:t.loading,onClick:t.loadAll},{icon:n(()=>[o(t.ReloadOutlined)]),default:n(()=>[m(" "+s(e.$t("tenant.refresh")),1)]),_:1},8,["loading"]),o(M,{trigger:["click"]},{overlay:n(()=>[o(Q,{onClick:t.handleNewClick},{default:n(()=>[o(j,{key:"tenant"},{default:n(()=>[o(t.BankOutlined),m(" "+s(e.$t("tenant.actions.tenant")),1)]),_:1}),o(j,{key:"quota"},{default:n(()=>[o(t.DashboardOutlined),m(" "+s(e.$t("tenant.actions.quota")),1)]),_:1}),o(j,{key:"record"},{default:n(()=>[o(t.LineChartOutlined),m(" "+s(e.$t("tenant.actions.record")),1)]),_:1})]),_:1})]),default:n(()=>[o(w,{type:"primary"},{icon:n(()=>[o(t.PlusOutlined)]),default:n(()=>[m(" "+s(e.$t("tenant.actionDropdown")),1)]),_:1})]),_:1})]),_:1})]),y(" Stat cards "),o(Y,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:n(()=>[o(P,{xs:12,sm:8,lg:5},{default:n(()=>[o(R,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:n(()=>[o(O,{title:e.$t("tenant.stats.total"),value:t.stats.tenantCount,"value-style":{color:"#1677ff",fontSize:"20px"}},{prefix:n(()=>[o(t.BankOutlined)]),_:1},8,["title","value"])]),_:1})]),_:1}),o(P,{xs:12,sm:8,lg:5},{default:n(()=>[o(R,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:n(()=>[o(O,{title:e.$t("tenant.stats.active"),value:t.stats.activeSubscriptions,"value-style":{color:t.stats.activeSubscriptions>0?"#52c41a":"#888",fontSize:"20px"}},{prefix:n(()=>[o(t.CreditCardOutlined)]),_:1},8,["title","value","value-style"])]),_:1})]),_:1}),o(P,{xs:12,sm:8,lg:5},{default:n(()=>[o(R,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:n(()=>[o(O,{title:e.$t("tenant.stats.mrr"),value:t.estimatedMrr,precision:0,prefix:"¥","value-style":{color:"#722ed1",fontSize:"20px"}},null,8,["title","value"])]),_:1})]),_:1}),o(P,{xs:12,sm:8,lg:5},{default:n(()=>[o(R,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:n(()=>[o(O,{title:e.$t("tenant.stats.apiCalls"),value:t.stats.totalUsage.api_calls,"value-style":{color:"#13c2c2",fontSize:"20px"}},{prefix:n(()=>[o(t.ApiOutlined)]),_:1},8,["title","value"])]),_:1})]),_:1}),o(P,{xs:24,sm:8,lg:4},{default:n(()=>[o(R,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:n(()=>[o(O,{title:e.$t("tenant.stats.storage"),value:t.formatBytes(t.stats.totalUsage.storage_bytes),"value-style":{color:"#faad14",fontSize:"18px"}},null,8,["title","value"])]),_:1})]),_:1})]),_:1}),y(" Plan distribution "),t.stats.tenantCount>0?(d(),_(R,{key:0,title:e.$t("tenant.plansCard"),size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"20px"},"body-style":{padding:"12px 16px"}},{default:n(()=>[o(K,{size:[12,8],wrap:""},{default:n(()=>[(d(!0),p(C,null,x(t.PLAN_IDS,a=>(d(),_(A,{key:a,color:t.planColor(a)},{default:n(()=>[m(s(t.planLabel(a))+": "+s(t.stats.byPlan[a]||0),1)]),_:2},1032,["color"]))),128)),g("span",le,s(e.$t("tenant.summarySuffix",{active:t.stats.byStatus.active,suspended:t.stats.byStatus.suspended,deleted:t.stats.byStatus.deleted})),1)]),_:1})]),_:1},8,["title"])):y("v-if",!0),y(" Tabs "),o(T,{activeKey:t.activeTab,"onUpdate:activeKey":l[2]||(l[2]=a=>t.activeTab=a),class:"tenant-tabs"},{default:n(()=>[y(" ── Tenants tab ───────────────────────────────────────────── "),o(B,{key:"tenants",tab:e.$t("tenant.tabs.tenants")},{default:n(()=>[g("div",oe,[o(E,{value:t.planFilter,"onUpdate:value":l[0]||(l[0]=a=>t.planFilter=a),size:"small"},{default:n(()=>[o(I,{value:""},{default:n(()=>[m(s(e.$t("tenant.filter.allPlans")),1)]),_:1}),(d(!0),p(C,null,x(t.PLAN_IDS,a=>(d(),_(I,{key:a,value:a},{default:n(()=>[m(s(t.planLabel(a)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"]),o(E,{value:t.statusFilter,"onUpdate:value":l[1]||(l[1]=a=>t.statusFilter=a),size:"small","button-style":"solid"},{default:n(()=>[o(I,{value:""},{default:n(()=>[m(s(e.$t("tenant.filter.allStatuses")),1)]),_:1}),(d(!0),p(C,null,x(t.TENANT_STATUSES,a=>(d(),_(I,{key:a,value:a},{default:n(()=>[m(s(t.tenantStatusLabel(a)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),o(Z,{columns:t.tenantColumns,"data-source":t.filteredTenants,pagination:{pageSize:20,showTotal:a=>e.$t("tenant.table.totalSuffix",{n:a})},size:"small",loading:t.loading,style:{background:"var(--bg-card)"}},{bodyCell:n(({column:a,record:c})=>[a.key==="name"?(d(),p(C,{key:0},[g("span",re,s(c.name),1),g("div",se,s(c.slug),1)],64)):y("v-if",!0),a.key==="plan"?(d(),_(A,{key:1,color:t.planColor(c.plan)},{default:n(()=>[m(s(t.planLabel(c.plan)),1)]),_:2},1032,["color"])):y("v-if",!0),a.key==="status"?(d(),_(A,{key:2,color:t.tenantStatusColor(c.status)},{default:n(()=>[m(s(t.tenantStatusLabel(c.status)),1)]),_:2},1032,["color"])):y("v-if",!0),a.key==="owner"?(d(),p(C,{key:3},[c.ownerId?(d(),p("span",ie,s(c.ownerId),1)):(d(),p("span",ue,"—"))],64)):y("v-if",!0),a.key==="createdAt"?(d(),p("span",de,s(t.formatTenantTime(c.createdAt)),1)):y("v-if",!0),a.key==="action"?(d(),p(C,{key:5},[o(w,{size:"small",type:"link",onClick:L=>t.openSubscribe(c)},{default:n(()=>[m(s(e.$t("tenant.table.actionSubscribe")),1)]),_:1},8,["onClick"]),o(M,{trigger:["click"]},{overlay:n(()=>[o(Q,{onClick:L=>t.changePlan(c,L.key)},{default:n(()=>[(d(!0),p(C,null,x(t.PLAN_IDS,L=>(d(),_(j,{key:L,disabled:L===c.plan},{default:n(()=>[m(s(t.planLabel(L)),1)]),_:2},1032,["disabled"]))),128))]),_:2},1032,["onClick"])]),default:n(()=>[o(w,{size:"small",type:"link"},{default:n(()=>[m(s(e.$t("tenant.table.actionPlanDropdown")),1)]),_:1})]),_:2},1024),c.status==="active"?(d(),_(w,{key:0,size:"small",type:"link",onClick:L=>t.setStatus(c,"suspended")},{default:n(()=>[m(s(e.$t("tenant.table.actionSuspend")),1)]),_:1},8,["onClick"])):c.status==="suspended"?(d(),_(w,{key:1,size:"small",type:"link",onClick:L=>t.setStatus(c,"active")},{default:n(()=>[m(s(e.$t("tenant.table.actionActivate")),1)]),_:1},8,["onClick"])):y("v-if",!0),c.status!=="deleted"?(d(),_(V,{key:2,title:e.$t("tenant.deleteConfirm.title"),"ok-text":e.$t("tenant.deleteConfirm.ok"),"cancel-text":e.$t("tenant.deleteConfirm.cancel"),onConfirm:L=>t.deleteTenant(c)},{default:n(()=>[o(w,{size:"small",type:"link",danger:""},{default:n(()=>[m(s(e.$t("tenant.deleteConfirm.ok")),1)]),_:1})]),_:1},8,["title","ok-text","cancel-text","onConfirm"])):y("v-if",!0)],64)):y("v-if",!0)]),emptyText:n(()=>[g("div",ce,[o(t.BankOutlined,{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),m(" "+s(t.planFilter||t.statusFilter?e.$t("tenant.table.emptyTenantsFiltered"):e.$t("tenant.table.emptyTenants")),1)])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"]),y(" ── Subscriptions tab ─────────────────────────────────────── "),o(B,{key:"subscriptions",tab:e.$t("tenant.tabs.subscriptions")},{default:n(()=>[o(Z,{columns:t.subscriptionColumns,"data-source":t.subscriptions,pagination:{pageSize:20,showTotal:a=>e.$t("tenant.table.totalSuffix",{n:a})},size:"small",loading:t.loading,style:{background:"var(--bg-card)"}},{bodyCell:n(({column:a,record:c})=>[a.key==="tenant"?(d(),p(C,{key:0},[g("span",me,s(t.tenantName(c.tenantId)),1),g("div",fe,s(c.tenantId.slice(0,8)),1)],64)):y("v-if",!0),a.key==="plan"?(d(),_(A,{key:1,color:t.planColor(c.plan)},{default:n(()=>[m(s(t.planLabel(c.plan)),1)]),_:2},1032,["color"])):y("v-if",!0),a.key==="amount"?(d(),p(C,{key:2},[c.amount!=null?(d(),p("span",pe,"¥"+s(c.amount),1)):(d(),p("span",be,"—"))],64)):y("v-if",!0),a.key==="status"?(d(),_(A,{key:3,color:t.subStatusColor(c.status)},{default:n(()=>[m(s(t.subStatusLabel(c.status)),1)]),_:2},1032,["color"])):y("v-if",!0),a.key==="startedAt"?(d(),p("span",ye,s(t.formatTenantTime(c.startedAt)),1)):y("v-if",!0),a.key==="expiresAt"?(d(),p("span",ge,s(t.formatTenantTime(c.expiresAt)),1)):y("v-if",!0),a.key==="action"?(d(),p(C,{key:6},[c.status==="active"?(d(),_(V,{key:0,title:e.$t("tenant.cancelConfirm.title"),"ok-text":e.$t("tenant.cancelConfirm.ok"),"cancel-text":e.$t("tenant.cancelConfirm.cancel"),onConfirm:L=>t.cancelSubscription(c)},{default:n(()=>[o(w,{size:"small",type:"link",danger:""},{default:n(()=>[m(s(e.$t("tenant.cancelConfirm.ok")),1)]),_:1})]),_:1},8,["title","ok-text","cancel-text","onConfirm"])):y("v-if",!0)],64)):y("v-if",!0)]),emptyText:n(()=>[g("div",ve,[o(t.CreditCardOutlined,{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),m(" "+s(e.$t("tenant.table.emptySubscriptions")),1)])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"]),y(" ── Plans catalogue tab ──────────────────────────────────── "),o(B,{key:"plans",tab:e.$t("tenant.tabs.plans")},{default:n(()=>[o(Y,{gutter:[16,16]},{default:n(()=>[(d(!0),p(C,null,x(t.plans,a=>(d(),_(P,{key:a.id,xs:24,sm:12,lg:6},{default:n(()=>[o(R,{title:a.name,size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{extra:n(()=>[o(A,{color:t.planColor(a.id)},{default:n(()=>[m(s(a.id),1)]),_:2},1032,["color"])]),default:n(()=>[g("div",_e,[a.monthlyFee!=null?(d(),p("span",ke,[m("¥"+s(a.monthlyFee)+" ",1),g("span",he,s(e.$t("tenant.planCard.monthlySuffix")),1)])):(d(),p("span",Se,s(e.$t("tenant.planCard.contactSales")),1))]),g("div",Ce,[g("div",Fe,s(e.$t("tenant.planCard.quotas")),1),(d(!0),p(C,null,x(t.metrics,c=>(d(),p("div",{key:c.id,class:"plan-quota-row"},[g("span",qe,s(c.name),1),g("span",xe,s(t.formatQuota(a.quotas?.[c.id],c.id)),1)]))),128))]),g("div",we,[g("div",Ae,s(e.$t("tenant.planCard.features")),1),(d(!0),p(C,null,x(a.features,c=>(d(),_(A,{key:c,style:{"font-size":"10px",margin:"1px"}},{default:n(()=>[m(s(c),1)]),_:2},1024))),128))])]),_:2},1032,["title"])]),_:2},1024))),128))]),_:1})]),_:1},8,["tab"])]),_:1},8,["activeKey"]),y(" ── Create tenant modal ──────────────────────────────────── "),o(W,{open:t.showCreateModal,"onUpdate:open":l[7]||(l[7]=a=>t.showCreateModal=a),title:e.$t("tenant.create_modal.title"),"confirm-loading":t.creating,width:520,"ok-text":e.$t("tenant.create_modal.ok"),"cancel-text":e.$t("tenant.create_modal.cancel"),onOk:t.createTenant,onCancel:t.resetCreateForm},{default:n(()=>[o(N,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:n(()=>[o(F,{label:e.$t("tenant.create_modal.nameLabel"),required:""},{default:n(()=>[o(k,{value:t.createForm.name,"onUpdate:value":l[3]||(l[3]=a=>t.createForm.name=a),placeholder:e.$t("tenant.create_modal.namePlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),o(F,{label:e.$t("tenant.create_modal.slugLabel"),required:""},{default:n(()=>[o(k,{value:t.createForm.slug,"onUpdate:value":l[4]||(l[4]=a=>t.createForm.slug=a),placeholder:e.$t("tenant.create_modal.slugPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),o(F,{label:e.$t("tenant.create_modal.planLabel")},{default:n(()=>[o(h,{value:t.createForm.plan,"onUpdate:value":l[5]||(l[5]=a=>t.createForm.plan=a)},{default:n(()=>[(d(!0),p(C,null,x(t.PLAN_IDS,a=>(d(),_(q,{key:a,value:a},{default:n(()=>[m(s(t.planLabel(a)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),_:1},8,["label"]),o(F,{label:e.$t("tenant.create_modal.ownerLabel")},{default:n(()=>[o(k,{value:t.createForm.owner,"onUpdate:value":l[6]||(l[6]=a=>t.createForm.owner=a),placeholder:e.$t("tenant.create_modal.ownerPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),y(" ── Subscribe modal ──────────────────────────────────────── "),o(W,{open:t.showSubscribeModal,"onUpdate:open":l[11]||(l[11]=a=>t.showSubscribeModal=a),title:e.$t("tenant.subscribe_modal.title",{name:t.subscribeTargetName}),"confirm-loading":t.subscribing,width:500,"ok-text":e.$t("tenant.subscribe_modal.ok"),"cancel-text":e.$t("tenant.subscribe_modal.cancel"),onOk:t.subscribeTenant,onCancel:t.resetSubscribeForm},{default:n(()=>[o(N,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:n(()=>[o(F,{label:e.$t("tenant.subscribe_modal.planLabel"),required:""},{default:n(()=>[o(h,{value:t.subscribeForm.plan,"onUpdate:value":l[8]||(l[8]=a=>t.subscribeForm.plan=a)},{default:n(()=>[(d(!0),p(C,null,x(t.PLAN_IDS,a=>(d(),_(q,{key:a,value:a},{default:n(()=>[m(s(t.planLabel(a)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),_:1},8,["label"]),o(F,{label:e.$t("tenant.subscribe_modal.amountLabel")},{default:n(()=>[o(tt,{value:t.subscribeForm.amount,"onUpdate:value":l[9]||(l[9]=a=>t.subscribeForm.amount=a),min:0,placeholder:e.$t("tenant.subscribe_modal.amountPlaceholder"),style:{width:"100%"}},null,8,["value","placeholder"])]),_:1},8,["label"]),o(F,{label:e.$t("tenant.subscribe_modal.durationLabel")},{default:n(()=>[o(E,{value:t.subscribeForm.duration,"onUpdate:value":l[10]||(l[10]=a=>t.subscribeForm.duration=a)},{default:n(()=>[o(I,{value:720*60*60*1e3},{default:n(()=>[m(s(e.$t("tenant.subscribe_modal.duration30")),1)]),_:1}),o(I,{value:2160*60*60*1e3},{default:n(()=>[m(s(e.$t("tenant.subscribe_modal.duration90")),1)]),_:1}),o(I,{value:365*24*60*60*1e3},{default:n(()=>[m(s(e.$t("tenant.subscribe_modal.duration365")),1)]),_:1})]),_:1},8,["value"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),y(" ── Quota check modal ────────────────────────────────────── "),o(W,{open:t.showQuotaModal,"onUpdate:open":l[15]||(l[15]=a=>t.showQuotaModal=a),title:e.$t("tenant.quota_modal.title"),"confirm-loading":t.checking,width:500,"ok-text":e.$t("tenant.quota_modal.ok"),"cancel-text":e.$t("tenant.quota_modal.cancel"),onOk:t.checkQuota},{default:n(()=>[o(N,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:n(()=>[o(F,{label:e.$t("tenant.quota_modal.tenantLabel"),required:""},{default:n(()=>[o(h,{value:t.quotaForm.tenantId,"onUpdate:value":l[12]||(l[12]=a=>t.quotaForm.tenantId=a),"show-search":"",placeholder:e.$t("tenant.quota_modal.tenantPlaceholder")},{default:n(()=>[(d(!0),p(C,null,x(t.tenants,a=>(d(),_(q,{key:a.id,value:a.id},{default:n(()=>[m(s(a.name)+" ("+s(a.slug)+")",1)]),_:2},1032,["value"]))),128))]),_:1},8,["value","placeholder"])]),_:1},8,["label"]),o(F,{label:e.$t("tenant.quota_modal.metricLabel"),required:""},{default:n(()=>[o(h,{value:t.quotaForm.metric,"onUpdate:value":l[13]||(l[13]=a=>t.quotaForm.metric=a)},{default:n(()=>[(d(!0),p(C,null,x(t.KNOWN_METRICS,a=>(d(),_(q,{key:a,value:a},{default:n(()=>[m(s(a),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),_:1},8,["label"]),o(F,{label:e.$t("tenant.quota_modal.periodLabel")},{default:n(()=>[o(k,{value:t.quotaForm.period,"onUpdate:value":l[14]||(l[14]=a=>t.quotaForm.period=a),placeholder:e.$t("tenant.quota_modal.periodPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1}),t.quotaResult?(d(),_(R,{key:0,size:"small",style:{background:"var(--bg-base)","margin-top":"8px"}},{default:n(()=>[o(O,{title:e.$t("tenant.quota_modal.resultTitle"),value:t.quotaResult.unlimited?e.$t("tenant.quota_modal.unlimited"):t.quotaResult.exceeded?e.$t("tenant.quota_modal.exceeded"):e.$t("tenant.quota_modal.ok_state"),"value-style":{color:t.quotaResult.exceeded?"#ff4d4f":t.quotaResult.unlimited?"#722ed1":"#52c41a"}},null,8,["title","value","value-style"]),g("div",Te,[g("div",null,[m(s(e.$t("tenant.quota_modal.planLine"))+" ",1),o(A,{color:t.planColor(t.quotaResult.plan)},{default:n(()=>[m(s(t.planLabel(t.quotaResult.plan)),1)]),_:1},8,["color"])]),g("div",null,s(e.$t("tenant.quota_modal.periodLine",{period:t.quotaResult.period})),1),g("div",null,[m(s(e.$t("tenant.quota_modal.usedLine"))+" ",1),g("span",Le,s(t.formatMetricValue(t.quotaResult.used,t.quotaResult.metric)),1)]),t.quotaResult.unlimited?y("v-if",!0):(d(),p("div",ze,[m(s(e.$t("tenant.quota_modal.limitLine"))+" ",1),g("span",Re,s(t.formatMetricValue(t.quotaResult.limit,t.quotaResult.metric)),1)])),!t.quotaResult.unlimited&&t.quotaResult.limit>0?(d(),p("div",Ie,[o(et,{percent:Math.min(100,Math.round(100*t.quotaResult.used/t.quotaResult.limit)),size:"small",status:t.quotaResult.exceeded?"exception":"active"},null,8,["percent","status"])])):y("v-if",!0)])]),_:1})):y("v-if",!0)]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),y(" ── Record usage modal ───────────────────────────────────── "),o(W,{open:t.showRecordModal,"onUpdate:open":l[20]||(l[20]=a=>t.showRecordModal=a),title:e.$t("tenant.record_modal.title"),"confirm-loading":t.recording,width:500,"ok-text":e.$t("tenant.record_modal.ok"),"cancel-text":e.$t("tenant.record_modal.cancel"),onOk:t.recordUsage,onCancel:t.resetRecordForm},{default:n(()=>[o(N,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:n(()=>[o(F,{label:e.$t("tenant.record_modal.tenantLabel"),required:""},{default:n(()=>[o(h,{value:t.recordForm.tenantId,"onUpdate:value":l[16]||(l[16]=a=>t.recordForm.tenantId=a),"show-search":"",placeholder:e.$t("tenant.record_modal.tenantPlaceholder")},{default:n(()=>[(d(!0),p(C,null,x(t.tenants,a=>(d(),_(q,{key:a.id,value:a.id},{default:n(()=>[m(s(a.name)+" ("+s(a.slug)+")",1)]),_:2},1032,["value"]))),128))]),_:1},8,["value","placeholder"])]),_:1},8,["label"]),o(F,{label:e.$t("tenant.record_modal.metricLabel"),required:""},{default:n(()=>[o(h,{value:t.recordForm.metric,"onUpdate:value":l[17]||(l[17]=a=>t.recordForm.metric=a)},{default:n(()=>[(d(!0),p(C,null,x(t.KNOWN_METRICS,a=>(d(),_(q,{key:a,value:a},{default:n(()=>[m(s(a),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),_:1},8,["label"]),o(F,{label:e.$t("tenant.record_modal.valueLabel"),required:""},{default:n(()=>[o(tt,{value:t.recordForm.value,"onUpdate:value":l[18]||(l[18]=a=>t.recordForm.value=a),min:0,style:{width:"100%"}},null,8,["value"])]),_:1},8,["label"]),o(F,{label:e.$t("tenant.record_modal.periodLabel")},{default:n(()=>[o(k,{value:t.recordForm.period,"onUpdate:value":l[19]||(l[19]=a=>t.recordForm.period=a),placeholder:e.$t("tenant.record_modal.periodPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"])])}const Me=Nt(te,[["render",Oe],["__scopeId","data-v-c93a3192"],["__file","/tmp/cc-web-panel-heolxZ/repo/packages/web-panel/src/views/Tenant.vue"]]);export{Me as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{I as _,J as p,U as m,R as c,c as n,K as r,V as k,S as U,o as q,b as H,r as T,P as f,Q as h,F as B,Z as K}from"./vendor-BvqAck49.js";import{_ as _t,b as X,u as $,d as C}from"./index-BcRDjaEi.js";import{s as st}from"./community-parser-CO25nZFt.js";import{aQ as gt,D as vt,a0 as xt,N as ht,a8 as Tt,R as St}from"./icons-DP3uiYxy.js";function N(e){const a=st(e);if(!a)return null;try{return JSON.parse(a)}catch{}const o=a.match(/\{[\s\S]*\}|\[[\s\S]*\]/);if(!o)return null;try{return JSON.parse(o[0])}catch{return null}}const Ct=Object.freeze(["today","week","month","all"]),rt=Object.freeze(["planning","active","suspended","archived"]),lt=Object.freeze(["pending","recorded","billed","rejected","refunded"]);function d(e,a=0){return typeof e=="number"&&Number.isFinite(e)?e:a}function D(e){if(!e)return{noDb:!1,error:""};const a=st(e),o=/Database not available/i.test(a);return{noDb:o,error:o?"Database not available":""}}const Z={totalCalls:0,totalInputTokens:0,totalOutputTokens:0,totalTokens:0,totalCostUsd:0,avgResponseTimeMs:0};function tt(e){const a={...Z};return!e||typeof e!="object"||Array.isArray(e)||(a.totalCalls=d(e.total_calls??e.totalCalls,0),a.totalInputTokens=d(e.total_input_tokens??e.totalInputTokens,0),a.totalOutputTokens=d(e.total_output_tokens??e.totalOutputTokens,0),a.totalTokens=d(e.total_tokens??e.totalTokens,0),a.totalCostUsd=d(e.total_cost_usd??e.totalCostUsd,0),a.avgResponseTimeMs=d(e.avg_response_time_ms??e.avgResponseTimeMs,0)),a}function Y(e){const a=N(e);return!a||typeof a!="object"||Array.isArray(a)?{stats:{...Z},today:{...Z}}:{stats:tt(a.stats),today:tt(a.today)}}function Ot(e,a=0){if(!e||typeof e!="object")return null;const o=e.provider||"",t=e.model||"";return!o&&!t?null:{key:`${o}/${t}/${a}`,provider:String(o),model:String(t),calls:d(e.calls,0),inputTokens:d(e.input_tokens??e.inputTokens,0),outputTokens:d(e.output_tokens??e.outputTokens,0),totalTokens:d(e.total_tokens??e.totalTokens,0),costUsd:d(e.cost_usd??e.costUsd,0),_idx:a}}function et(e){const a=N(e);return Array.isArray(a)?a.map(Ot).filter(Boolean):[]}function Bt(e,a=0){if(!e||typeof e!="object")return null;const o=e.id||"";return o?{key:o,id:o,provider:String(e.provider||""),model:String(e.model||""),inputTokens:d(e.input_tokens??e.inputTokens,0),outputTokens:d(e.output_tokens??e.outputTokens,0),totalTokens:d(e.total_tokens??e.totalTokens,0),costUsd:d(e.cost_usd??e.costUsd,0),responseTimeMs:d(e.response_time_ms??e.responseTimeMs,0),endpoint:String(e.endpoint||""),createdAt:e.created_at??e.createdAt??"",_idx:a}:null}function ot(e){const a=N(e);return Array.isArray(a)?a.map(Bt).filter(Boolean):[]}const Rt={totalEntries:0,totalHits:0,totalTokensSaved:0,expiredEntries:0};function at(e){const a={...Rt},o=N(e);return!o||typeof o!="object"||Array.isArray(o)||(a.totalEntries=d(o.total_entries??o.totalEntries,0),a.totalHits=d(o.total_hits??o.totalHits,0),a.totalTokensSaved=d(o.total_tokens_saved??o.totalTokensSaved,0),a.expiredEntries=d(o.expired_entries??o.expiredEntries,0)),a}const Et={totalBudgetsV2:0,totalRecordsV2:0,maxActiveBudgetsPerOwner:0,maxPendingRecordsPerBudget:0,budgetIdleMs:0,recordStuckMs:0,budgetsByStatus:{},recordsByStatus:{}};function nt(e){const a=JSON.parse(JSON.stringify(Et));for(const t of rt)a.budgetsByStatus[t]=0;for(const t of lt)a.recordsByStatus[t]=0;const o=N(e);if(!o||typeof o!="object"||Array.isArray(o))return a;if(a.totalBudgetsV2=d(o.totalBudgetsV2,0),a.totalRecordsV2=d(o.totalRecordsV2,0),a.maxActiveBudgetsPerOwner=d(o.maxActiveBudgetsPerOwner,0),a.maxPendingRecordsPerBudget=d(o.maxPendingRecordsPerBudget,0),a.budgetIdleMs=d(o.budgetIdleMs,0),a.recordStuckMs=d(o.recordStuckMs,0),o.budgetsByStatus&&typeof o.budgetsByStatus=="object")for(const[t,v]of Object.entries(o.budgetsByStatus))typeof v=="number"&&Number.isFinite(v)&&(a.budgetsByStatus[t]=v);if(o.recordsByStatus&&typeof o.recordsByStatus=="object")for(const[t,v]of Object.entries(o.recordsByStatus))typeof v=="number"&&Number.isFinite(v)&&(a.recordsByStatus[t]=v);return a}function zt(e){if(e==null||e==="")return"—";const a=String(e),o=a.includes(" ")&&!a.includes("T")?a.replace(" ","T")+"Z":a,t=typeof e=="number"?new Date(e):new Date(o);return isNaN(t.getTime())?a:t.toLocaleString("zh-CN",{hour12:!1})}function wt(e){return typeof e!="number"||!Number.isFinite(e)?"$0":"$"+(Math.abs(e)<1?e.toFixed(4):e.toFixed(2))}const At={__name:"Tokens",setup(e,{expose:a}){a();const{t:o}=X(),t=$(),v=T(!1),I=T("all"),O=T({stats:{totalCalls:0,totalInputTokens:0,totalOutputTokens:0,totalTokens:0,totalCostUsd:0,avgResponseTimeMs:0},today:{totalCalls:0,totalInputTokens:0,totalOutputTokens:0,totalTokens:0,totalCostUsd:0,avgResponseTimeMs:0}}),R=T([]),V=T([]),M=T({totalEntries:0,totalHits:0,totalTokensSaved:0,expiredEntries:0}),P=T({totalBudgetsV2:0,totalRecordsV2:0,maxActiveBudgetsPerOwner:0,maxPendingRecordsPerBudget:0,budgetIdleMs:0,recordStuckMs:0,budgetsByStatus:{},recordsByStatus:{}}),b=T({noDb:!1,error:""}),x=T("breakdown"),g=H(()=>[{title:o("tokens.breakdownColumns.provider"),key:"provider",width:"130px"},{title:o("tokens.breakdownColumns.model"),key:"model"},{title:o("tokens.breakdownColumns.calls"),key:"calls",width:"90px"},{title:o("tokens.breakdownColumns.totalTokens"),key:"totalTokens",width:"180px"},{title:o("tokens.breakdownColumns.costUsd"),key:"costUsd",width:"180px"},{title:o("tokens.breakdownColumns.avgCost"),key:"avgCost",width:"110px"}]),z=H(()=>[{title:o("tokens.recentColumns.createdAt"),key:"createdAt",width:"160px"},{title:o("tokens.recentColumns.provider"),key:"provider",width:"130px"},{title:o("tokens.recentColumns.model"),key:"model",width:"180px"},{title:o("tokens.recentColumns.tokens"),key:"tokens",width:"160px"},{title:o("tokens.recentColumns.costUsd"),key:"costUsd",width:"110px"},{title:o("tokens.recentColumns.responseTimeMs"),key:"responseTimeMs",width:"100px"},{title:o("tokens.recentColumns.endpoint"),key:"endpoint"}]),S=H(()=>R.value.reduce((s,u)=>s+u.costUsd,0));function w(s){const u=`tokens.period.${s}`,y=o(u);return y===u?s:y}function j(s){const u=["blue","green","purple","orange","cyan","magenta","gold","volcano"];let y=0;for(let E=0;E<(s||"").length;E++)y=y*31+s.charCodeAt(E)>>>0;return u[y%u.length]}function A(s){return s<=500?"#52c41a":s<=1500?"#1677ff":s<=3e3?"#faad14":"#ff4d4f"}function F(s){return s<=500?"green":s<=1500?"blue":s<=3e3?"gold":"red"}function G(s){return typeof s!="number"||!Number.isFinite(s)?"0":s.toLocaleString("en-US")}function l(s){return!S.value||s<=0?0:Math.min(100,Math.round(s/S.value*100))}function i(s,u){return u?Math.round(s/u*100):0}function ct(s){const u=`tokens.budgetStatus.${s}`,y=o(u);return y===u?s:y}function it(s){return{planning:"default",active:"green",suspended:"orange",archived:"default"}[s]||"default"}function dt(s){return{planning:"#888",active:"#52c41a",suspended:"#faad14",archived:"#666"}[s]||"#888"}function ut(s){const u=`tokens.recordStatus.${s}`,y=o(u);return y===u?s:y}function ft(s){return{pending:"default",recorded:"blue",billed:"green",rejected:"red",refunded:"orange"}[s]||"default"}function kt(s){return{pending:"#888",recorded:"#1677ff",billed:"#52c41a",rejected:"#ff4d4f",refunded:"#faad14"}[s]||"#888"}async function L(){v.value=!0,b.value={noDb:!1,error:""};try{const[s,u,y,E,yt]=await Promise.all([t.execute(`tokens show --period ${I.value} --json`,8e3).catch(()=>({output:""})),t.execute("tokens breakdown --json",8e3).catch(()=>({output:""})),t.execute("tokens recent -n 100 --json",1e4).catch(()=>({output:""})),t.execute("tokens cache --json",6e3).catch(()=>({output:""})),t.execute("tokens stats-v2",6e3).catch(()=>({output:""}))]),W=[s,u,y,E].map(J=>D(J.output)).find(J=>J.noDb);W&&(b.value=W),O.value=Y(s.output),R.value=et(u.output),V.value=ot(y.output),M.value=at(E.output),P.value=nt(yt.output)}catch(s){C.error(o("tokens.messages.loadFailed",{err:s?.message||s}))}finally{v.value=!1}}async function mt(){try{const{output:s}=await t.execute(`tokens show --period ${I.value} --json`,8e3),u=D(s);if(u.noDb){b.value=u;return}O.value=Y(s)}catch(s){C.error(o("tokens.messages.loadShowFailed",{err:s?.message||s}))}}async function pt(){try{const{output:s}=await t.execute("tokens cache --cleanup",8e3);if(D(s).noDb){C.error(o("tokens.messages.needInit"));return}C.success(o("tokens.messages.cleanupOk")),await L()}catch(s){C.error(o("tokens.messages.cleanupFailed",{err:s?.message||s}))}}async function bt(){try{const{output:s}=await t.execute("tokens cache --clear",8e3);if(D(s).noDb){C.error(o("tokens.messages.needInit"));return}C.success(o("tokens.messages.clearOk")),await L()}catch(s){C.error(o("tokens.messages.clearFailed",{err:s?.message||s}))}}q(L);const Q={t:o,ws:t,loading:v,period:I,show:O,breakdown:R,recent:V,cache:M,statsV2:P,errorState:b,activeTab:x,breakdownColumns:g,recentColumns:z,totalCost:S,periodLabel:w,providerColor:j,respColor:A,respTagColor:F,formatNumber:G,costPct:l,pctOfTotal:i,budgetStatusLabel:ct,budgetStatusColor:it,budgetBarColor:dt,recordStatusLabel:ut,recordStatusColor:ft,recordBarColor:kt,loadAll:L,loadShow:mt,cleanupExpired:pt,clearAllCache:bt,ref:T,computed:H,onMounted:q,get useI18n(){return X},get ReloadOutlined(){return St},get ApiOutlined(){return Tt},get NumberOutlined(){return ht},get ClockCircleOutlined(){return xt},get DatabaseOutlined(){return vt},get DeleteOutlined(){return gt},get message(){return C},get useWsStore(){return $},get parseShowResult(){return Y},get parseBreakdown(){return et},get parseRecent(){return ot},get parseCacheStats(){return at},get parseStatsV2(){return nt},get detectTokensError(){return D},get formatTokensTime(){return zt},get formatCost(){return wt},get PERIOD_OPTIONS(){return Ct},get BUDGET_MATURITIES_V2(){return rt},get USAGE_RECORD_LIFECYCLES_V2(){return lt}};return Object.defineProperty(Q,"__isScriptSetup",{enumerable:!1,value:!0}),Q}},Ut={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},Dt={class:"page-title"},Nt={class:"page-sub"},It={style:{display:"flex","align-items":"center",gap:"12px","flex-wrap":"wrap"}},Vt={style:{color:"var(--text-secondary)","font-size":"12px"}},Mt={class:"stat-sub"},Pt={class:"stat-sub"},jt={class:"stat-sub"},Ft={class:"stat-sub"},Lt={key:1,style:{color:"var(--text-primary)","font-family":"monospace","font-size":"12px"}},Ht={key:2,style:{color:"var(--text-secondary)"}},Gt={style:{color:"var(--text-secondary)","font-family":"monospace","font-size":"12px"}},Jt={style:{color:"var(--text-muted)","font-size":"11px","font-family":"monospace"}},Kt={style:{color:"#faad14","font-weight":"500","font-family":"monospace"}},Yt={key:5,style:{color:"var(--text-muted)","font-family":"monospace","font-size":"12px"}},Zt={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},Qt={key:0,style:{color:"var(--text-secondary)","font-size":"11px","font-family":"monospace"}},Wt={key:2,style:{color:"var(--text-primary)","font-family":"monospace","font-size":"12px"}},qt={style:{color:"var(--text-secondary)","font-family":"monospace","font-size":"12px"}},Xt={style:{color:"var(--text-muted)","font-size":"11px","font-family":"monospace"}},$t={key:4,style:{color:"#faad14","font-weight":"500","font-family":"monospace"}},te={key:0,style:{color:"var(--text-muted)","font-family":"monospace","font-size":"11px"}},ee={key:1,style:{color:"var(--text-muted)"}},oe={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},ae={style:{"font-size":"12px",color:"var(--text-secondary)",margin:"0 0 8px"}},ne={style:{"font-size":"12px",color:"var(--text-secondary)",margin:"0 0 8px"}};function se(e,a,o,t,v,I){const O=_("a-button"),R=_("a-space"),V=_("a-alert"),M=_("a-radio-button"),P=_("a-radio-group"),b=_("a-card"),x=_("a-statistic"),g=_("a-col"),z=_("a-row"),S=_("a-tag"),w=_("a-progress"),j=_("a-table"),A=_("a-tab-pane"),F=_("a-popconfirm"),G=_("a-tabs");return f(),p("div",null,[m("div",Ut,[m("div",null,[m("h2",Dt,c(t.t("tokens.title")),1),m("p",Nt,c(t.t("tokens.subtitle")),1)]),n(R,null,{default:r(()=>[n(O,{loading:t.loading,onClick:t.loadAll},{icon:r(()=>[n(t.ReloadOutlined)]),default:r(()=>[h(" "+c(t.t("tokens.refresh")),1)]),_:1},8,["loading"])]),_:1})]),k(" noDb banner "),t.errorState.noDb?(f(),U(V,{key:0,type:"info","show-icon":"",message:t.t("tokens.noDb.message"),description:t.t("tokens.noDb.description"),style:{"margin-bottom":"16px"}},null,8,["message","description"])):k("v-if",!0),k(" Period selector "),n(b,{size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"16px"},"body-style":{padding:"10px 16px"}},{default:r(()=>[m("div",It,[m("span",Vt,c(t.t("tokens.periodLabel")),1),n(P,{value:t.period,"onUpdate:value":a[0]||(a[0]=l=>t.period=l),size:"small","button-style":"solid",onChange:t.loadShow},{default:r(()=>[(f(!0),p(B,null,K(t.PERIOD_OPTIONS,l=>(f(),U(M,{key:l,value:l},{default:r(()=>[h(c(t.periodLabel(l)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])])]),_:1}),k(" Stat cards "),n(z,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:r(()=>[n(g,{xs:12,sm:8,lg:5},{default:r(()=>[n(b,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:r(()=>[n(x,{title:t.t("tokens.stats.calls"),value:t.show.stats.totalCalls,"value-style":{color:"#1677ff",fontSize:"20px"}},{prefix:r(()=>[n(t.ApiOutlined)]),_:1},8,["title","value"]),m("div",Mt,c(t.t("tokens.stats.callsToday",{count:t.show.today.totalCalls})),1)]),_:1})]),_:1}),n(g,{xs:12,sm:8,lg:5},{default:r(()=>[n(b,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:r(()=>[n(x,{title:t.t("tokens.stats.totalTokens"),value:t.show.stats.totalTokens,"value-style":{color:"#722ed1",fontSize:"20px"}},{prefix:r(()=>[n(t.NumberOutlined)]),_:1},8,["title","value"]),m("div",Pt,c(t.t("tokens.stats.tokensInOut",{inputs:t.formatNumber(t.show.stats.totalInputTokens),outputs:t.formatNumber(t.show.stats.totalOutputTokens)})),1)]),_:1})]),_:1}),n(g,{xs:12,sm:8,lg:5},{default:r(()=>[n(b,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:r(()=>[n(x,{title:t.t("tokens.stats.totalCost"),value:t.show.stats.totalCostUsd,precision:t.show.stats.totalCostUsd<1?4:2,prefix:"$","value-style":{color:"#faad14",fontSize:"20px"}},null,8,["title","value","precision"]),m("div",jt,c(t.t("tokens.stats.costToday",{amount:t.formatCost(t.show.today.totalCostUsd)})),1)]),_:1})]),_:1}),n(g,{xs:12,sm:8,lg:5},{default:r(()=>[n(b,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:r(()=>[n(x,{title:t.t("tokens.stats.avgResponse"),value:t.show.stats.avgResponseTimeMs,suffix:"ms",precision:0,"value-style":{color:t.respColor(t.show.stats.avgResponseTimeMs),fontSize:"20px"}},{prefix:r(()=>[n(t.ClockCircleOutlined)]),_:1},8,["title","value","value-style"])]),_:1})]),_:1}),n(g,{xs:24,sm:8,lg:4},{default:r(()=>[n(b,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:r(()=>[n(x,{title:t.t("tokens.stats.cacheHits"),value:t.cache.totalHits,"value-style":{color:"#13c2c2",fontSize:"20px"}},{prefix:r(()=>[n(t.DatabaseOutlined)]),_:1},8,["title","value"]),m("div",Ft,c(t.t("tokens.stats.cacheTokensSaved",{count:t.formatNumber(t.cache.totalTokensSaved)})),1)]),_:1})]),_:1})]),_:1}),k(" Tabs "),n(G,{activeKey:t.activeTab,"onUpdate:activeKey":a[1]||(a[1]=l=>t.activeTab=l),class:"tokens-tabs"},{default:r(()=>[k(" ── Breakdown tab ────────────────────────────────────── "),n(A,{key:"breakdown",tab:t.t("tokens.tabs.breakdown")},{default:r(()=>[n(j,{columns:t.breakdownColumns,"data-source":t.breakdown,pagination:{pageSize:20,showTotal:l=>t.t("tokens.totals.models",{count:l})},size:"small",loading:t.loading,style:{background:"var(--bg-card)"}},{bodyCell:r(({column:l,record:i})=>[l.key==="provider"?(f(),U(S,{key:0,color:t.providerColor(i.provider),style:{"font-family":"monospace"}},{default:r(()=>[h(c(i.provider),1)]),_:2},1032,["color"])):k("v-if",!0),l.key==="model"?(f(),p("span",Lt,c(i.model),1)):k("v-if",!0),l.key==="calls"?(f(),p("span",Ht,c(t.formatNumber(i.calls)),1)):k("v-if",!0),l.key==="totalTokens"?(f(),p(B,{key:3},[m("span",Gt,c(t.formatNumber(i.totalTokens)),1),m("div",Jt,c(t.t("tokens.breakdownDetails.tokensInOut",{inputs:t.formatNumber(i.inputTokens),outputs:t.formatNumber(i.outputTokens)})),1)],64)):k("v-if",!0),l.key==="costUsd"?(f(),p(B,{key:4},[m("span",Kt,c(t.formatCost(i.costUsd)),1),n(w,{percent:t.costPct(i.costUsd),"show-info":!1,"stroke-color":"#faad14",size:"small",style:{"margin-top":"2px"}},null,8,["percent"])],64)):k("v-if",!0),l.key==="avgCost"?(f(),p("span",Yt,c(i.calls>0?t.formatCost(i.costUsd/i.calls):"—"),1)):k("v-if",!0)]),emptyText:r(()=>[m("div",Zt,[n(t.NumberOutlined,{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),h(" "+c(t.t("tokens.empty.breakdown")),1)])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"]),k(" ── Recent tab ───────────────────────────────────────── "),n(A,{key:"recent",tab:t.t("tokens.tabs.recent")},{default:r(()=>[n(j,{columns:t.recentColumns,"data-source":t.recent,pagination:{pageSize:20,showTotal:l=>t.t("tokens.totals.rows",{count:l})},size:"small",loading:t.loading,style:{background:"var(--bg-card)"}},{bodyCell:r(({column:l,record:i})=>[l.key==="createdAt"?(f(),p("span",Qt,c(t.formatTokensTime(i.createdAt)),1)):k("v-if",!0),l.key==="provider"?(f(),U(S,{key:1,color:t.providerColor(i.provider),style:{"font-family":"monospace"}},{default:r(()=>[h(c(i.provider),1)]),_:2},1032,["color"])):k("v-if",!0),l.key==="model"?(f(),p("span",Wt,c(i.model),1)):k("v-if",!0),l.key==="tokens"?(f(),p(B,{key:3},[m("span",qt,c(t.formatNumber(i.totalTokens)),1),m("div",Xt,c(t.formatNumber(i.inputTokens))+" / "+c(t.formatNumber(i.outputTokens)),1)],64)):k("v-if",!0),l.key==="costUsd"?(f(),p("span",$t,c(t.formatCost(i.costUsd)),1)):k("v-if",!0),l.key==="responseTimeMs"?(f(),U(S,{key:5,color:t.respTagColor(i.responseTimeMs)},{default:r(()=>[h(c(i.responseTimeMs)+"ms",1)]),_:2},1032,["color"])):k("v-if",!0),l.key==="endpoint"?(f(),p(B,{key:6},[i.endpoint?(f(),p("span",te,c(i.endpoint),1)):(f(),p("span",ee,"—"))],64)):k("v-if",!0)]),emptyText:r(()=>[m("div",oe,[n(t.ClockCircleOutlined,{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),h(" "+c(t.t("tokens.empty.recent")),1)])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"]),k(" ── Cache tab ────────────────────────────────────────── "),n(A,{key:"cache",tab:t.t("tokens.tabs.cache")},{default:r(()=>[n(z,{gutter:[16,16],style:{"margin-bottom":"16px"}},{default:r(()=>[n(g,{xs:12,sm:6},{default:r(()=>[n(b,{size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:r(()=>[n(x,{title:t.t("tokens.cache.totalEntries"),value:t.cache.totalEntries,"value-style":{color:"#1677ff",fontSize:"18px"}},null,8,["title","value"])]),_:1})]),_:1}),n(g,{xs:12,sm:6},{default:r(()=>[n(b,{size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:r(()=>[n(x,{title:t.t("tokens.cache.totalHits"),value:t.cache.totalHits,"value-style":{color:"#52c41a",fontSize:"18px"}},null,8,["title","value"])]),_:1})]),_:1}),n(g,{xs:12,sm:6},{default:r(()=>[n(b,{size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:r(()=>[n(x,{title:t.t("tokens.cache.totalTokensSaved"),value:t.cache.totalTokensSaved,"value-style":{color:"#13c2c2",fontSize:"18px"}},null,8,["title","value"])]),_:1})]),_:1}),n(g,{xs:12,sm:6},{default:r(()=>[n(b,{size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:r(()=>[n(x,{title:t.t("tokens.cache.expiredEntries"),value:t.cache.expiredEntries,"value-style":{color:t.cache.expiredEntries>0?"#faad14":"#888",fontSize:"18px"}},null,8,["title","value","value-style"])]),_:1})]),_:1})]),_:1}),n(b,{title:t.t("tokens.cache.maintenanceTitle"),size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:r(()=>[n(R,null,{default:r(()=>[n(F,{title:t.t("tokens.cache.cleanupConfirm"),"ok-text":t.t("tokens.cache.cleanupOk"),"cancel-text":t.t("common.cancel"),onConfirm:t.cleanupExpired},{default:r(()=>[n(O,{disabled:t.cache.expiredEntries===0},{icon:r(()=>[n(t.DeleteOutlined)]),default:r(()=>[h(" "+c(t.t("tokens.cache.cleanupButton",{count:t.cache.expiredEntries})),1)]),_:1},8,["disabled"])]),_:1},8,["title","ok-text","cancel-text"]),n(F,{title:t.t("tokens.cache.clearConfirm"),"ok-text":t.t("tokens.cache.clearOk"),"ok-type":"danger","cancel-text":t.t("common.cancel"),onConfirm:t.clearAllCache},{default:r(()=>[n(O,{danger:"",disabled:t.cache.totalEntries===0},{icon:r(()=>[n(t.DeleteOutlined)]),default:r(()=>[h(" "+c(t.t("tokens.cache.clearButton")),1)]),_:1},8,["disabled"])]),_:1},8,["title","ok-text","cancel-text"])]),_:1})]),_:1},8,["title"]),n(b,{title:t.t("tokens.v2.cardTitle"),size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-top":"16px"}},{default:r(()=>[n(z,{gutter:[16,16]},{default:r(()=>[n(g,{xs:24,lg:12},{default:r(()=>[m("h5",ae,c(t.t("tokens.v2.budgetsTitle")),1),(f(!0),p(B,null,K(t.BUDGET_MATURITIES_V2,l=>(f(),p("div",{key:l,class:"bd-row"},[n(S,{color:t.budgetStatusColor(l),style:{"min-width":"80px","text-align":"center"}},{default:r(()=>[h(c(t.budgetStatusLabel(l)),1)]),_:2},1032,["color"]),n(w,{percent:t.pctOfTotal(t.statsV2.budgetsByStatus[l]||0,t.statsV2.totalBudgetsV2),"stroke-color":t.budgetBarColor(l),format:()=>`${t.statsV2.budgetsByStatus[l]||0}`,size:"small",style:{flex:"1","margin-left":"12px"}},null,8,["percent","stroke-color","format"])]))),128))]),_:1}),n(g,{xs:24,lg:12},{default:r(()=>[m("h5",ne,c(t.t("tokens.v2.recordsTitle")),1),(f(!0),p(B,null,K(t.USAGE_RECORD_LIFECYCLES_V2,l=>(f(),p("div",{key:l,class:"bd-row"},[n(S,{color:t.recordStatusColor(l),style:{"min-width":"80px","text-align":"center"}},{default:r(()=>[h(c(t.recordStatusLabel(l)),1)]),_:2},1032,["color"]),n(w,{percent:t.pctOfTotal(t.statsV2.recordsByStatus[l]||0,t.statsV2.totalRecordsV2),"stroke-color":t.recordBarColor(l),format:()=>`${t.statsV2.recordsByStatus[l]||0}`,size:"small",style:{flex:"1","margin-left":"12px"}},null,8,["percent","stroke-color","format"])]))),128))]),_:1})]),_:1})]),_:1},8,["title"])]),_:1},8,["tab"])]),_:1},8,["activeKey"])])}const de=_t(At,[["render",se],["__scopeId","data-v-175683a8"],["__file","/tmp/cc-web-panel-heolxZ/repo/packages/web-panel/src/views/Tokens.vue"]]);export{de as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{I as v,J as m,U as T,R as i,c as r,K as l,V as f,o as pt,a as Z,b as j,r as h,P as n,Q as p,F as C,Z as U,S as b}from"./vendor-BvqAck49.js";import{_ as Yt,u as yt,b as vt,E as gt,d as _}from"./index-BcRDjaEi.js";import{s as Xt}from"./community-parser-CO25nZFt.js";import{d as $t,f as te,K as ee,a6 as ae,q as oe,Z as le,as as re,R as se}from"./icons-DP3uiYxy.js";function P(e){const a=Xt(e);if(!a)return null;try{return JSON.parse(a)}catch{}const u=a.match(/\{[\s\S]*\}|\[[\s\S]*\]/);if(!u)return null;try{return JSON.parse(u[0])}catch{return null}}const Ft=Object.freeze(["tpm","tee","secure_element"]),ne=Object.freeze(["valid","expired","failed","pending"]),ie=Object.freeze(["iridium","starlink","beidou"]),ue=Object.freeze(["queued","sent","confirmed","failed"]),xt=Object.freeze(["yubikey","ledger","trezor","generic"]),de=Object.freeze(["fips_140_2","fips_140_3","cc_eal4"]);function L(e,a=0){return typeof e=="number"&&Number.isFinite(e)?e:a}function me(e,a=0){if(!e||typeof e!="object")return null;const u=e.id||"";return u?{key:u,id:u,anchor:String(e.anchor||"").toLowerCase(),status:String(e.status||"pending").toLowerCase(),challenge:e.challenge??"",response:e.response??"",deviceFingerprint:e.device_fingerprint??e.deviceFingerprint??"",createdAt:e.created_at??e.createdAt??null,expiresAt:e.expires_at??e.expiresAt??null,_idx:a}:null}function bt(e){const a=P(e);return Array.isArray(a)?a.map(me).filter(Boolean):[]}function _t(e){const a=P(e);return!a||typeof a!="object"||Array.isArray(a)?{ok:!1,attestationId:null,status:"",response:"",reason:""}:{ok:!!a.attestationId,attestationId:a.attestationId?String(a.attestationId):null,status:String(a.status||""),response:String(a.response||""),reason:a.reason?String(a.reason):""}}function ce(e,a=0){if(!e||typeof e!="object")return null;const u=e.id||"";return u?{key:u,id:u,algorithm:String(e.algorithm||""),peer:e.peer??"",compatible:!!e.compatible,result:String(e.result||""),latencyMs:L(e.latency_ms??e.latencyMs,0),createdAt:e.created_at??e.createdAt??null,_idx:a}:null}function ht(e){const a=P(e);return Array.isArray(a)?a.map(ce).filter(Boolean):[]}function kt(e){const a=P(e);return!a||typeof a!="object"||Array.isArray(a)?{ok:!1,testId:null,compatible:!1,result:"",latencyMs:0,reason:""}:{ok:!!a.testId,testId:a.testId?String(a.testId):null,compatible:!!a.compatible,result:String(a.result||""),latencyMs:L(a.latencyMs,0),reason:a.reason?String(a.reason):""}}function fe(e,a=0){if(!e||typeof e!="object")return null;const u=e.id||"";return u?{key:u,id:u,provider:String(e.provider||"").toLowerCase(),priority:L(e.priority,5),status:String(e.status||"queued").toLowerCase(),payload:String(e.payload||""),sentAt:e.sent_at??e.sentAt??null,confirmedAt:e.confirmed_at??e.confirmedAt??null,createdAt:e.created_at??e.createdAt??null,_idx:a}:null}function St(e){const a=P(e);return Array.isArray(a)?a.map(fe).filter(Boolean):[]}function pe(e,a=0){if(!e||typeof e!="object")return null;const u=e.id||"";return u?{key:u,id:u,vendor:String(e.vendor||"").toLowerCase(),model:e.model??"",serialNumber:e.serial_number??e.serialNumber??"",complianceLevel:e.compliance_level??e.complianceLevel??"",firmwareVersion:e.firmware_version??e.firmwareVersion??"",createdAt:e.created_at??e.createdAt??null,_idx:a}:null}function Ct(e){const a=P(e);return Array.isArray(a)?a.map(pe).filter(Boolean):[]}function At(e){const a=P(e);return!a||typeof a!="object"||Array.isArray(a)?{ok:!1,signature:"",algorithm:"",reason:""}:{ok:!!a.signature,signature:a.signature?String(a.signature):"",algorithm:String(a.algorithm||""),reason:a.reason?String(a.reason):""}}function $(e){const a=P(e);if(!a||typeof a!="object"||Array.isArray(a))return{ok:!1,id:null,reason:""};const u=a.deviceId||a.messageId||a.attestationId||a.testId||null;return{ok:!!(u||a.removed||a.updated),id:u?String(u):null,reason:a.reason?String(a.reason):""}}const ye={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 Tt(e){const a=JSON.parse(JSON.stringify(ye));for(const t of Ft)a.attestations.byAnchor[t]=0;for(const t of xt)a.hsm.byVendor[t]=0;const u=P(e);if(!u||typeof u!="object"||Array.isArray(u))return a;if(u.attestations&&typeof u.attestations=="object"&&(a.attestations.total=L(u.attestations.total,0),a.attestations.valid=L(u.attestations.valid,0),u.attestations.byAnchor&&typeof u.attestations.byAnchor=="object"))for(const[t,M]of Object.entries(u.attestations.byAnchor))typeof M=="number"&&Number.isFinite(M)&&(a.attestations.byAnchor[t]=M);if(u.interopTests&&typeof u.interopTests=="object"&&(a.interopTests.total=L(u.interopTests.total,0),a.interopTests.compatible=L(u.interopTests.compatible,0),a.interopTests.avgLatencyMs=L(u.interopTests.avgLatencyMs,0)),u.satellite&&typeof u.satellite=="object"&&(a.satellite.total=L(u.satellite.total,0),a.satellite.queued=L(u.satellite.queued,0),a.satellite.confirmed=L(u.satellite.confirmed,0)),u.hsm&&typeof u.hsm=="object"&&(a.hsm.total=L(u.hsm.total,0),u.hsm.byVendor&&typeof u.hsm.byVendor=="object"))for(const[t,M]of Object.entries(u.hsm.byVendor))typeof M=="number"&&Number.isFinite(M)&&(a.hsm.byVendor[t]=M);return a}function ve(e){if(e==null||e==="")return"—";const a=typeof e=="number"?new Date(e):new Date(String(e));return isNaN(a.getTime())?String(e):a.toLocaleString("zh-CN",{hour12:!1})}const ge={__name:"Trust",setup(e,{expose:a}){a();const u=yt(),{t}=vt(),M=gt.PRESENTED_IMAGE_SIMPLE,tt=h(!1),A=h(!1),N=h(!1),W=h([]),et=h([]),Y=h([]),z=h([]),O=h({attestations:{total:0,valid:0,byAnchor:{}},interopTests:{total:0,compatible:0,avgLatencyMs:0},satellite:{total:0,queued:0,confirmed:0},hsm:{total:0,byVendor:{}}}),D=h("attestations"),X=h(""),x=h(""),I=h(""),F=h(""),V=h(""),q=h(!1),at=h(!1),ot=h(!1),G=h(!1),K=h(!1),g=Z({anchor:"tpm",challenge:"",fingerprint:""}),S=Z({algorithm:"ml_kem_768",peer:"",latency:50}),w=Z({provider:"iridium",priority:5,payload:""}),k=Z({vendor:"yubikey",model:"",serial:"",compliance:void 0,firmware:""}),E=Z({data:"",algorithm:""}),B=h(null),J=h(null),st=j(()=>[{title:t("trust.attestCols.id"),key:"id",width:"130px"},{title:t("trust.attestCols.anchor"),key:"anchor",width:"160px"},{title:t("trust.attestCols.status"),key:"status",width:"110px"},{title:t("trust.attestCols.fingerprint"),key:"fingerprint",width:"180px"},{title:t("trust.attestCols.response"),key:"response"},{title:t("trust.attestCols.createdAt"),key:"createdAt",width:"160px"}]),lt=j(()=>[{title:t("trust.interopCols.id"),key:"id",width:"130px"},{title:t("trust.interopCols.algorithm"),key:"algorithm",width:"180px"},{title:t("trust.interopCols.compatible"),key:"compatible",width:"110px"},{title:t("trust.interopCols.result"),key:"result",width:"110px"},{title:t("trust.interopCols.latency"),key:"latencyMs",width:"100px"},{title:t("trust.interopCols.peer"),key:"peer",width:"150px"},{title:t("trust.interopCols.createdAt"),key:"createdAt",width:"160px"}]),nt=j(()=>[{title:t("trust.satCols.id"),key:"id",width:"130px"},{title:t("trust.satCols.provider"),key:"provider",width:"110px"},{title:t("trust.satCols.priority"),key:"priority",width:"90px"},{title:t("trust.satCols.status"),key:"status",width:"110px"},{title:t("trust.satCols.payload"),key:"payload"},{title:t("trust.satCols.createdAt"),key:"createdAt",width:"160px"},{title:t("trust.satCols.action"),key:"action",width:"210px"}]),it=j(()=>[{title:t("trust.hsmCols.id"),key:"id",width:"130px"},{title:t("trust.hsmCols.vendor"),key:"vendor",width:"110px"},{title:t("trust.hsmCols.model"),key:"model",width:"140px"},{title:t("trust.hsmCols.serial"),key:"serialNumber",width:"180px"},{title:t("trust.hsmCols.compliance"),key:"complianceLevel",width:"140px"},{title:t("trust.hsmCols.firmware"),key:"firmwareVersion",width:"110px"},{title:t("trust.hsmCols.action"),key:"action",width:"160px"}]),o=j(()=>{let s=W.value;return X.value&&(s=s.filter(c=>c.anchor===X.value)),x.value&&(s=s.filter(c=>c.status===x.value)),s}),d=j(()=>{let s=Y.value;return I.value&&(s=s.filter(c=>c.provider===I.value)),F.value&&(s=s.filter(c=>c.status===F.value)),s}),Q=j(()=>V.value?z.value.filter(s=>s.vendor===V.value):z.value),wt=j(()=>O.value.attestations.total?O.value.attestations.valid/O.value.attestations.total*100:0);function Lt(s){const c=`trust.anchorLabels.${s}`,y=t(c);return y===c?s:y}function Ot(s){return{tpm:"blue",tee:"purple",secure_element:"cyan"}[s]||"default"}function Rt(s){const c=`trust.attestStatusLabels.${s}`,y=t(c);return y===c?s:y}function Mt(s){return{valid:"green",expired:"default",failed:"red",pending:"processing"}[s]||"default"}function zt(s){const c=`trust.satStatusLabels.${s}`,y=t(c);return y===c?s:y}function Et(s){return{queued:"default",sent:"blue",confirmed:"green",failed:"red"}[s]||"default"}function It(s){return s>=8?"red":s>=6?"orange":s>=4?"gold":"default"}function jt(s){return{iridium:"blue",starlink:"purple",beidou:"red"}[s]||"default"}function Ut(s){return{yubikey:"green",ledger:"blue",trezor:"orange",generic:"default"}[s]||"default"}function Pt(s){return{fips_140_2:"cyan",fips_140_3:"blue",cc_eal4:"purple"}[s]||"default"}function Nt(s){return s<=50?"green":s<=200?"blue":s<=1e3?"gold":"red"}function Vt(s){return s>=95?"#52c41a":s>=80?"#1677ff":s>=60?"#faad14":"#ff4d4f"}function Ht(s,c){return s?s.length<=c?s:s.slice(0,c)+"…":""}function R(s){return`"${String(s).replace(/"/g,'\\"')}"`}async function H(){tt.value=!0;try{const[s,c,y,rt,Wt]=await Promise.all([u.execute("trust attestations --limit 200 --json",1e4).catch(()=>({output:""})),u.execute("trust interop-tests --limit 200 --json",1e4).catch(()=>({output:""})),u.execute("trust sat-messages --limit 200 --json",1e4).catch(()=>({output:""})),u.execute("trust hsm-devices --limit 200 --json",1e4).catch(()=>({output:""})),u.execute("trust stats --json",8e3).catch(()=>({output:""}))]);W.value=bt(s.output),et.value=ht(c.output),Y.value=St(y.output),z.value=Ct(rt.output),O.value=Tt(Wt.output)}catch(s){_.error(t("trust.msg.loadFailed")+": "+(s?.message||s))}finally{tt.value=!1}}async function Dt(){A.value=!0;try{const s=[`trust attest ${g.anchor}`];g.challenge.trim()&&s.push(`-c ${R(g.challenge.trim())}`),g.fingerprint.trim()&&s.push(`-f ${R(g.fingerprint.trim())}`),s.push("--json");const{output:c}=await u.execute(s.join(" "),1e4),y=_t(c);if(!y.ok){_.error(t("trust.msg.attestFailed")+": "+(y.reason||c.slice(0,120)));return}_.success(t("trust.msg.attestSuccess",{status:y.status})),q.value=!1,ut(),await H()}catch(s){_.error(t("trust.msg.attestFailed")+": "+(s?.message||s))}finally{A.value=!1}}async function qt(){if(!S.algorithm.trim()){_.warning(t("trust.msg.interopAlgEmpty"));return}A.value=!0;try{const s=[`trust interop-test ${R(S.algorithm.trim())}`];S.peer.trim()&&s.push(`-p ${R(S.peer.trim())}`),S.latency>0&&s.push(`-l ${S.latency}`),s.push("--json");const{output:c}=await u.execute(s.join(" "),1e4),y=kt(c);if(!y.ok){_.error(t("trust.msg.interopFailed")+": "+(y.reason||c.slice(0,120)));return}_.success(t("trust.msg.interopSuccess",{compat:y.compatible?t("trust.table.compatible"):t("trust.table.incompatible"),latency:y.latencyMs})),at.value=!1,dt(),await H()}catch(s){_.error(t("trust.msg.interopFailed")+": "+(s?.message||s))}finally{A.value=!1}}async function Gt(){if(!w.payload.trim()){_.warning(t("trust.msg.satPayloadEmpty"));return}A.value=!0;try{const s=[`trust sat-send ${R(w.payload.trim())}`,`-p ${w.provider}`,`-r ${w.priority}`,"--json"],{output:c}=await u.execute(s.join(" "),1e4),y=$(c);if(!y.ok){_.error(t("trust.msg.satFailed")+": "+(y.reason||c.slice(0,120)));return}_.success(t("trust.msg.satSuccess",{id:y.id?.slice(0,8)})),ot.value=!1,mt(),await H()}catch(s){_.error(t("trust.msg.satFailed")+": "+(s?.message||s))}finally{A.value=!1}}async function Kt(s,c){try{const{output:y}=await u.execute(`trust sat-status ${s.id} ${c} --json`,8e3),rt=$(y);if(!rt.ok){_.error(t("trust.msg.satUpdateFailed")+": "+(rt.reason||y.slice(0,120)));return}_.success(t("trust.msg.satUpdateSuccess")),await H()}catch(y){_.error(t("trust.msg.satUpdateFailed")+": "+(y?.message||y))}}async function Bt(){A.value=!0;try{const s=[`trust hsm-register ${k.vendor}`];k.model.trim()&&s.push(`-m ${R(k.model.trim())}`),k.serial.trim()&&s.push(`-s ${R(k.serial.trim())}`),k.compliance&&s.push(`-c ${k.compliance}`),k.firmware.trim()&&s.push(`-f ${R(k.firmware.trim())}`),s.push("--json");const{output:c}=await u.execute(s.join(" "),1e4),y=$(c);if(!y.ok){_.error(t("trust.msg.hsmRegisterFailed")+": "+(y.reason||c.slice(0,120)));return}_.success(t("trust.msg.hsmRegisterSuccess",{id:y.id?.slice(0,8)})),G.value=!1,ct(),await H()}catch(s){_.error(t("trust.msg.hsmRegisterFailed")+": "+(s?.message||s))}finally{A.value=!1}}async function Jt(s){try{const{output:c}=await u.execute(`trust hsm-remove ${s.id} --json`,8e3),y=$(c);if(!y.ok){_.error(t("trust.msg.hsmRemoveFailed")+": "+(y.reason||c.slice(0,120)));return}_.success(t("trust.msg.hsmRemoveSuccess")),await H()}catch(c){_.error(t("trust.msg.hsmRemoveFailed")+": "+(c?.message||c))}}function Qt(s){B.value=s,E.data="",E.algorithm="",J.value=null,K.value=!0}async function Zt(){if(!E.data.trim()){_.warning(t("trust.msg.signEmpty"));return}if(B.value){N.value=!0,J.value=null;try{const s=[`trust hsm-sign ${B.value.id}`];s.push(`-d ${R(E.data)}`),E.algorithm.trim()&&s.push(`-a ${R(E.algorithm.trim())}`),s.push("--json");const{output:c}=await u.execute(s.join(" "),1e4);J.value=At(c),J.value.ok&&_.success(t("trust.msg.signSuccess"))}catch(s){_.error(t("trust.msg.signFailed")+": "+(s?.message||s))}finally{N.value=!1}}}function ut(){g.anchor="tpm",g.challenge="",g.fingerprint=""}function dt(){S.algorithm="ml_kem_768",S.peer="",S.latency=50}function mt(){w.provider="iridium",w.priority=5,w.payload=""}function ct(){k.vendor="yubikey",k.model="",k.serial="",k.compliance=void 0,k.firmware=""}pt(H);const ft={ws:u,t,EMPTY_IMG:M,loading:tt,creating:A,signing:N,attestations:W,interopTests:et,satMessages:Y,hsmDevices:z,stats:O,activeTab:D,anchorFilter:X,attestStatusFilter:x,providerFilter:I,satStatusFilter:F,vendorFilter:V,showAttestModal:q,showInteropModal:at,showSatModal:ot,showHsmModal:G,showSignModal:K,attestForm:g,interopForm:S,satForm:w,hsmForm:k,signForm:E,currentDevice:B,signResult:J,attestColumns:st,interopColumns:lt,satColumns:nt,hsmColumns:it,filteredAttestations:o,filteredSatMessages:d,filteredHsmDevices:Q,attestationPassRate:wt,anchorLabel:Lt,anchorColor:Ot,attestStatusLabel:Rt,attestStatusColor:Mt,satStatusLabel:zt,satStatusColor:Et,priorityColor:It,providerColor:jt,vendorColor:Ut,complianceColor:Pt,latencyColor:Nt,passRateColor:Vt,truncate:Ht,shellQuote:R,loadAll:H,submitAttest:Dt,submitInterop:qt,submitSat:Gt,updateSatStatus:Kt,submitHsm:Bt,removeHsm:Jt,openSignModal:Qt,submitSign:Zt,resetAttestForm:ut,resetInteropForm:dt,resetSatForm:mt,resetHsmForm:ct,ref:h,computed:j,onMounted:pt,reactive:Z,get ReloadOutlined(){return se},get PlusOutlined(){return re},get SafetyCertificateOutlined(){return le},get ExperimentOutlined(){return oe},get GlobalOutlined(){return ae},get KeyOutlined(){return ee},get CheckCircleOutlined(){return te},get CloseCircleOutlined(){return $t},get message(){return _},get Empty(){return gt},get useI18n(){return vt},get useWsStore(){return yt},get parseAttestations(){return bt},get parseAttestResult(){return _t},get parseInteropTests(){return ht},get parseInteropTestResult(){return kt},get parseSatMessages(){return St},get parseHsmDevices(){return Ct},get parseSignResult(){return At},get parseActionResult(){return $},get parseStats(){return Tt},get formatTrustTime(){return ve},get TRUST_ANCHORS(){return Ft},get ATTESTATION_STATUSES(){return ne},get SATELLITE_PROVIDERS(){return ie},get SAT_MESSAGE_STATUSES(){return ue},get HSM_VENDORS(){return xt},get COMPLIANCE_LEVELS(){return de}};return Object.defineProperty(ft,"__isScriptSetup",{enumerable:!1,value:!0}),ft}},be={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},_e={class:"page-title"},he={class:"page-sub"},ke={class:"stat-sub"},Se={class:"stat-sub"},Ce={class:"stat-sub"},Ae={class:"filter-bar"},Te={key:0,style:{color:"var(--text-primary)","font-family":"monospace","font-size":"12px"}},Fe={key:0,style:{color:"var(--text-secondary)","font-family":"monospace","font-size":"11px"}},xe={key:1,style:{color:"var(--text-muted)"}},we={key:0,style:{color:"var(--text-secondary)","font-family":"monospace","font-size":"11px"}},Le={key:1,style:{color:"var(--text-muted)"}},Oe={key:5,style:{color:"var(--text-secondary)","font-size":"11px"}},Re={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},Me={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":"12px"}},Ee={key:1,style:{color:"var(--text-muted)"}},Ie={key:0,style:{color:"var(--text-secondary)","font-family":"monospace","font-size":"11px"}},je={key:1,style:{color:"var(--text-muted)"}},Ue={key:6,style:{color:"var(--text-secondary)","font-size":"11px"}},Pe={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},Ne={class:"filter-bar"},Ve={key:0,style:{color:"var(--text-primary)","font-family":"monospace","font-size":"12px"}},He={key:4,style:{color:"var(--text-primary)","font-family":"monospace","font-size":"12px"}},De={key:5,style:{color:"var(--text-secondary)","font-size":"11px"}},qe={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},Ge={class:"filter-bar"},Ke={key:0,style:{color:"var(--text-primary)","font-family":"monospace","font-size":"12px"}},Be={key:0,style:{color:"var(--text-primary)","font-family":"monospace","font-size":"12px"}},Je={key:1,style:{color:"var(--text-muted)"}},Qe={key:0,style:{color:"var(--text-secondary)","font-family":"monospace","font-size":"11px"}},Ze={key:1,style:{color:"var(--text-muted)"}},We={key:1,style:{color:"var(--text-muted)"}},Ye={key:0,style:{color:"var(--text-secondary)","font-family":"monospace","font-size":"11px"}},Xe={key:1,style:{color:"var(--text-muted)"}},$e={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},ta={style:{"margin-left":"8px",color:"var(--text-muted)","font-size":"12px"}},ea={key:0,style:{"padding-top":"8px"}},aa={style:{"margin-left":"8px"}},oa={key:1},la={class:"sig-pre"};function ra(e,a,u,t,M,tt){const A=v("a-button"),N=v("a-menu-item"),W=v("a-menu"),et=v("a-dropdown"),Y=v("a-space"),z=v("a-statistic"),O=v("a-card"),D=v("a-col"),X=v("a-row"),x=v("a-radio-button"),I=v("a-radio-group"),F=v("a-tag"),V=v("a-table"),q=v("a-tab-pane"),at=v("a-popconfirm"),ot=v("a-tabs"),G=v("a-select-option"),K=v("a-select"),g=v("a-form-item"),S=v("a-input"),w=v("a-form"),k=v("a-modal"),E=v("a-input-number"),B=v("a-textarea"),J=v("a-divider"),st=v("a-empty"),lt=v("a-descriptions-item"),nt=v("a-descriptions"),it=v("a-alert");return n(),m("div",null,[T("div",be,[T("div",null,[T("h2",_e,i(e.$t("trust.title")),1),T("p",he,i(e.$t("trust.subtitle")),1)]),r(Y,null,{default:l(()=>[r(A,{loading:t.loading,onClick:t.loadAll},{icon:l(()=>[r(t.ReloadOutlined)]),default:l(()=>[p(" "+i(e.$t("trust.refresh")),1)]),_:1},8,["loading"]),r(et,null,{overlay:l(()=>[r(W,null,{default:l(()=>[r(N,{key:"attest",onClick:a[0]||(a[0]=o=>t.showAttestModal=!0)},{default:l(()=>[p(i(e.$t("trust.actions.attest")),1)]),_:1}),r(N,{key:"interop",onClick:a[1]||(a[1]=o=>t.showInteropModal=!0)},{default:l(()=>[p(i(e.$t("trust.actions.interop")),1)]),_:1}),r(N,{key:"sat",onClick:a[2]||(a[2]=o=>t.showSatModal=!0)},{default:l(()=>[p(i(e.$t("trust.actions.sat")),1)]),_:1}),r(N,{key:"hsm",onClick:a[3]||(a[3]=o=>t.showHsmModal=!0)},{default:l(()=>[p(i(e.$t("trust.actions.hsm")),1)]),_:1})]),_:1})]),default:l(()=>[r(A,{type:"primary"},{icon:l(()=>[r(t.PlusOutlined)]),default:l(()=>[p(" "+i(e.$t("trust.newDropdown")),1)]),_:1})]),_:1})]),_:1})]),f(" Stat cards "),r(X,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:l(()=>[r(D,{xs:12,sm:8,lg:5},{default:l(()=>[r(O,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:l(()=>[r(z,{title:e.$t("trust.stats.attestations"),value:t.stats.attestations.total,"value-style":{color:"#1677ff",fontSize:"20px"}},{prefix:l(()=>[r(t.SafetyCertificateOutlined)]),_:1},8,["title","value"]),T("div",ke,i(e.$t("trust.stats.validSuffix",{n:t.stats.attestations.valid})),1)]),_:1})]),_:1}),r(D,{xs:12,sm:8,lg:5},{default:l(()=>[r(O,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:l(()=>[r(z,{title:e.$t("trust.stats.interop"),value:t.stats.interopTests.total,"value-style":{color:"#722ed1",fontSize:"20px"}},{prefix:l(()=>[r(t.ExperimentOutlined)]),_:1},8,["title","value"]),T("div",Se,i(e.$t("trust.stats.interopSub",{compatible:t.stats.interopTests.compatible,avg:t.stats.interopTests.avgLatencyMs})),1)]),_:1})]),_:1}),r(D,{xs:12,sm:8,lg:5},{default:l(()=>[r(O,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:l(()=>[r(z,{title:e.$t("trust.stats.satellite"),value:t.stats.satellite.total,"value-style":{color:"#13c2c2",fontSize:"20px"}},{prefix:l(()=>[r(t.GlobalOutlined)]),_:1},8,["title","value"]),T("div",Ce,i(e.$t("trust.stats.satelliteSub",{queued:t.stats.satellite.queued,confirmed:t.stats.satellite.confirmed})),1)]),_:1})]),_:1}),r(D,{xs:12,sm:8,lg:5},{default:l(()=>[r(O,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:l(()=>[r(z,{title:e.$t("trust.stats.hsm"),value:t.stats.hsm.total,"value-style":{color:"#faad14",fontSize:"20px"}},{prefix:l(()=>[r(t.KeyOutlined)]),_:1},8,["title","value"])]),_:1})]),_:1}),r(D,{xs:24,sm:8,lg:4},{default:l(()=>[r(O,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:l(()=>[r(z,{title:e.$t("trust.stats.passRate"),value:t.attestationPassRate,suffix:"%",precision:0,"value-style":{color:t.passRateColor(t.attestationPassRate),fontSize:"20px"}},{prefix:l(()=>[r(t.CheckCircleOutlined)]),_:1},8,["title","value","value-style"])]),_:1})]),_:1})]),_:1}),f(" Tabs (4 phases) "),r(ot,{activeKey:t.activeTab,"onUpdate:activeKey":a[9]||(a[9]=o=>t.activeTab=o),class:"trust-tabs"},{default:l(()=>[f(" ── Attestations (Phase 68) ──────────────────────────── "),r(q,{key:"attestations",tab:e.$t("trust.tabs.attestations")},{default:l(()=>[T("div",Ae,[r(I,{value:t.anchorFilter,"onUpdate:value":a[4]||(a[4]=o=>t.anchorFilter=o),size:"small","button-style":"solid"},{default:l(()=>[r(x,{value:""},{default:l(()=>[p(i(e.$t("trust.filter.allAnchors")),1)]),_:1}),(n(!0),m(C,null,U(t.TRUST_ANCHORS,o=>(n(),b(x,{key:o,value:o},{default:l(()=>[p(i(t.anchorLabel(o)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"]),r(I,{value:t.attestStatusFilter,"onUpdate:value":a[5]||(a[5]=o=>t.attestStatusFilter=o),size:"small"},{default:l(()=>[r(x,{value:""},{default:l(()=>[p(i(e.$t("trust.filter.allStatuses")),1)]),_:1}),(n(!0),m(C,null,U(t.ATTESTATION_STATUSES,o=>(n(),b(x,{key:o,value:o},{default:l(()=>[p(i(t.attestStatusLabel(o)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),r(V,{columns:t.attestColumns,"data-source":t.filteredAttestations,pagination:{pageSize:20,showTotal:o=>e.$t("trust.table.totalSuffix",{n:o})},size:"small",loading:t.loading,style:{background:"var(--bg-card)"}},{bodyCell:l(({column:o,record:d})=>[o.key==="id"?(n(),m("span",Te,i(d.id.slice(0,12)),1)):f("v-if",!0),o.key==="anchor"?(n(),b(F,{key:1,color:t.anchorColor(d.anchor),style:{"font-family":"monospace"}},{default:l(()=>[p(i(t.anchorLabel(d.anchor)),1)]),_:2},1032,["color"])):f("v-if",!0),o.key==="status"?(n(),b(F,{key:2,color:t.attestStatusColor(d.status)},{default:l(()=>[p(i(t.attestStatusLabel(d.status)),1)]),_:2},1032,["color"])):f("v-if",!0),o.key==="fingerprint"?(n(),m(C,{key:3},[d.deviceFingerprint?(n(),m("span",Fe,i(t.truncate(d.deviceFingerprint,24)),1)):(n(),m("span",xe,"—"))],64)):f("v-if",!0),o.key==="response"?(n(),m(C,{key:4},[d.response?(n(),m("span",we,i(t.truncate(d.response,24)),1)):(n(),m("span",Le,"—"))],64)):f("v-if",!0),o.key==="createdAt"?(n(),m("span",Oe,i(t.formatTrustTime(d.createdAt)),1)):f("v-if",!0)]),emptyText:l(()=>[T("div",Re,[r(t.SafetyCertificateOutlined,{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),p(" "+i(t.anchorFilter||t.attestStatusFilter?e.$t("trust.table.emptyAttestFiltered"):e.$t("trust.table.emptyAttest")),1)])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"]),f(" ── PQC Interop (Phase 69) ──────────────────────────── "),r(q,{key:"interop",tab:e.$t("trust.tabs.interop")},{default:l(()=>[r(V,{columns:t.interopColumns,"data-source":t.interopTests,pagination:{pageSize:20,showTotal:o=>e.$t("trust.table.totalSuffix",{n:o})},size:"small",loading:t.loading,style:{background:"var(--bg-card)"}},{bodyCell:l(({column:o,record:d})=>[o.key==="id"?(n(),m("span",Me,i(d.id.slice(0,12)),1)):f("v-if",!0),o.key==="algorithm"?(n(),b(F,{key:1,color:"purple",style:{"font-family":"monospace"}},{default:l(()=>[p(i(d.algorithm),1)]),_:2},1024)):f("v-if",!0),o.key==="compatible"?(n(),b(F,{key:2,color:d.compatible?"green":"red"},{default:l(()=>[d.compatible?(n(),b(t.CheckCircleOutlined,{key:0})):(n(),b(t.CloseCircleOutlined,{key:1})),p(" "+i(d.compatible?e.$t("trust.table.compatible"):e.$t("trust.table.incompatible")),1)]),_:2},1032,["color"])):f("v-if",!0),o.key==="result"?(n(),m(C,{key:3},[d.result?(n(),m("span",ze,i(d.result),1)):(n(),m("span",Ee,"—"))],64)):f("v-if",!0),o.key==="latencyMs"?(n(),b(F,{key:4,color:t.latencyColor(d.latencyMs)},{default:l(()=>[p(i(d.latencyMs)+"ms",1)]),_:2},1032,["color"])):f("v-if",!0),o.key==="peer"?(n(),m(C,{key:5},[d.peer?(n(),m("span",Ie,i(d.peer),1)):(n(),m("span",je,"—"))],64)):f("v-if",!0),o.key==="createdAt"?(n(),m("span",Ue,i(t.formatTrustTime(d.createdAt)),1)):f("v-if",!0)]),emptyText:l(()=>[T("div",Pe,[r(t.ExperimentOutlined,{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),p(" "+i(e.$t("trust.table.emptyInterop")),1)])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"]),f(" ── Satellite (Phase 70) ────────────────────────────── "),r(q,{key:"satellite",tab:e.$t("trust.tabs.satellite")},{default:l(()=>[T("div",Ne,[r(I,{value:t.providerFilter,"onUpdate:value":a[6]||(a[6]=o=>t.providerFilter=o),size:"small","button-style":"solid"},{default:l(()=>[r(x,{value:""},{default:l(()=>[p(i(e.$t("trust.filter.allProviders")),1)]),_:1}),(n(!0),m(C,null,U(t.SATELLITE_PROVIDERS,o=>(n(),b(x,{key:o,value:o},{default:l(()=>[p(i(o),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"]),r(I,{value:t.satStatusFilter,"onUpdate:value":a[7]||(a[7]=o=>t.satStatusFilter=o),size:"small"},{default:l(()=>[r(x,{value:""},{default:l(()=>[p(i(e.$t("trust.filter.allStatuses")),1)]),_:1}),(n(!0),m(C,null,U(t.SAT_MESSAGE_STATUSES,o=>(n(),b(x,{key:o,value:o},{default:l(()=>[p(i(t.satStatusLabel(o)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),r(V,{columns:t.satColumns,"data-source":t.filteredSatMessages,pagination:{pageSize:20,showTotal:o=>e.$t("trust.table.totalSuffix",{n:o})},size:"small",loading:t.loading,style:{background:"var(--bg-card)"}},{bodyCell:l(({column:o,record:d})=>[o.key==="id"?(n(),m("span",Ve,i(d.id.slice(0,12)),1)):f("v-if",!0),o.key==="provider"?(n(),b(F,{key:1,color:t.providerColor(d.provider),style:{"font-family":"monospace"}},{default:l(()=>[p(i(d.provider),1)]),_:2},1032,["color"])):f("v-if",!0),o.key==="priority"?(n(),b(F,{key:2,color:t.priorityColor(d.priority)},{default:l(()=>[p("P"+i(d.priority),1)]),_:2},1032,["color"])):f("v-if",!0),o.key==="status"?(n(),b(F,{key:3,color:t.satStatusColor(d.status)},{default:l(()=>[p(i(t.satStatusLabel(d.status)),1)]),_:2},1032,["color"])):f("v-if",!0),o.key==="payload"?(n(),m("span",He,i(t.truncate(d.payload,60)),1)):f("v-if",!0),o.key==="createdAt"?(n(),m("span",De,i(t.formatTrustTime(d.createdAt)),1)):f("v-if",!0),o.key==="action"?(n(),m(C,{key:6},[d.status==="queued"?(n(),b(A,{key:0,size:"small",type:"link",onClick:Q=>t.updateSatStatus(d,"sent")},{default:l(()=>[p(i(e.$t("trust.table.satMarkSent")),1)]),_:1},8,["onClick"])):f("v-if",!0),d.status==="sent"?(n(),b(A,{key:1,size:"small",type:"link",style:{color:"#52c41a"},onClick:Q=>t.updateSatStatus(d,"confirmed")},{default:l(()=>[p(i(e.$t("trust.table.satConfirm")),1)]),_:1},8,["onClick"])):f("v-if",!0),["queued","sent"].includes(d.status)?(n(),b(A,{key:2,size:"small",type:"link",danger:"",onClick:Q=>t.updateSatStatus(d,"failed")},{default:l(()=>[p(i(e.$t("trust.table.satFail")),1)]),_:1},8,["onClick"])):f("v-if",!0)],64)):f("v-if",!0)]),emptyText:l(()=>[T("div",qe,[r(t.GlobalOutlined,{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),p(" "+i(t.providerFilter||t.satStatusFilter?e.$t("trust.table.emptySatFiltered"):e.$t("trust.table.emptySat")),1)])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"]),f(" ── HSM (Phase 71) ──────────────────────────────────── "),r(q,{key:"hsm",tab:e.$t("trust.tabs.hsm")},{default:l(()=>[T("div",Ge,[r(I,{value:t.vendorFilter,"onUpdate:value":a[8]||(a[8]=o=>t.vendorFilter=o),size:"small","button-style":"solid"},{default:l(()=>[r(x,{value:""},{default:l(()=>[p(i(e.$t("trust.filter.allVendors")),1)]),_:1}),(n(!0),m(C,null,U(t.HSM_VENDORS,o=>(n(),b(x,{key:o,value:o},{default:l(()=>[p(i(o),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),r(V,{columns:t.hsmColumns,"data-source":t.filteredHsmDevices,pagination:{pageSize:20,showTotal:o=>e.$t("trust.table.deviceSuffix",{n:o})},size:"small",loading:t.loading,style:{background:"var(--bg-card)"}},{bodyCell:l(({column:o,record:d})=>[o.key==="id"?(n(),m("span",Ke,i(d.id.slice(0,12)),1)):f("v-if",!0),o.key==="vendor"?(n(),b(F,{key:1,color:t.vendorColor(d.vendor),style:{"font-family":"monospace"}},{default:l(()=>[p(i(d.vendor),1)]),_:2},1032,["color"])):f("v-if",!0),o.key==="model"?(n(),m(C,{key:2},[d.model?(n(),m("span",Be,i(d.model),1)):(n(),m("span",Je,"—"))],64)):f("v-if",!0),o.key==="serialNumber"?(n(),m(C,{key:3},[d.serialNumber?(n(),m("span",Qe,i(d.serialNumber),1)):(n(),m("span",Ze,"—"))],64)):f("v-if",!0),o.key==="complianceLevel"?(n(),m(C,{key:4},[d.complianceLevel?(n(),b(F,{key:0,color:t.complianceColor(d.complianceLevel),style:{"font-family":"monospace","font-size":"11px"}},{default:l(()=>[p(i(d.complianceLevel),1)]),_:2},1032,["color"])):(n(),m("span",We,"—"))],64)):f("v-if",!0),o.key==="firmwareVersion"?(n(),m(C,{key:5},[d.firmwareVersion?(n(),m("span",Ye,i(d.firmwareVersion),1)):(n(),m("span",Xe,"—"))],64)):f("v-if",!0),o.key==="action"?(n(),m(C,{key:6},[r(A,{size:"small",type:"link",onClick:Q=>t.openSignModal(d)},{default:l(()=>[p(i(e.$t("trust.table.hsmSign")),1)]),_:1},8,["onClick"]),r(at,{title:e.$t("trust.removeConfirm.title"),"ok-text":e.$t("trust.removeConfirm.ok"),"ok-type":"danger","cancel-text":e.$t("trust.removeConfirm.cancel"),onConfirm:Q=>t.removeHsm(d)},{default:l(()=>[r(A,{size:"small",type:"link",danger:""},{default:l(()=>[p(i(e.$t("trust.table.hsmRemove")),1)]),_:1})]),_:1},8,["title","ok-text","cancel-text","onConfirm"])],64)):f("v-if",!0)]),emptyText:l(()=>[T("div",$e,[r(t.KeyOutlined,{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),p(" "+i(t.vendorFilter?e.$t("trust.table.emptyHsmFiltered"):e.$t("trust.table.emptyHsm")),1)])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"])]),_:1},8,["activeKey"]),f(" ── Attest modal ───────────────────────────────────────── "),r(k,{open:t.showAttestModal,"onUpdate:open":a[13]||(a[13]=o=>t.showAttestModal=o),title:e.$t("trust.attest_modal.title"),"confirm-loading":t.creating,width:540,"ok-text":e.$t("trust.attest_modal.ok"),"cancel-text":e.$t("trust.attest_modal.cancel"),onOk:t.submitAttest,onCancel:t.resetAttestForm},{default:l(()=>[r(w,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:l(()=>[r(g,{label:e.$t("trust.attest_modal.anchorLabel"),required:""},{default:l(()=>[r(K,{value:t.attestForm.anchor,"onUpdate:value":a[10]||(a[10]=o=>t.attestForm.anchor=o)},{default:l(()=>[(n(!0),m(C,null,U(t.TRUST_ANCHORS,o=>(n(),b(G,{key:o,value:o},{default:l(()=>[p(i(t.anchorLabel(o))+" ("+i(o)+")",1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),_:1},8,["label"]),r(g,{label:e.$t("trust.attest_modal.challengeLabel")},{default:l(()=>[r(S,{value:t.attestForm.challenge,"onUpdate:value":a[11]||(a[11]=o=>t.attestForm.challenge=o),placeholder:e.$t("trust.attest_modal.challengePlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),r(g,{label:e.$t("trust.attest_modal.fingerprintLabel")},{default:l(()=>[r(S,{value:t.attestForm.fingerprint,"onUpdate:value":a[12]||(a[12]=o=>t.attestForm.fingerprint=o),placeholder:e.$t("trust.attest_modal.fingerprintPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),f(" ── Interop test modal ─────────────────────────────────── "),r(k,{open:t.showInteropModal,"onUpdate:open":a[17]||(a[17]=o=>t.showInteropModal=o),title:e.$t("trust.interop_modal.title"),"confirm-loading":t.creating,width:540,"ok-text":e.$t("trust.interop_modal.ok"),"cancel-text":e.$t("trust.interop_modal.cancel"),onOk:t.submitInterop,onCancel:t.resetInteropForm},{default:l(()=>[r(w,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:l(()=>[r(g,{label:e.$t("trust.interop_modal.algorithmLabel"),required:""},{default:l(()=>[r(S,{value:t.interopForm.algorithm,"onUpdate:value":a[14]||(a[14]=o=>t.interopForm.algorithm=o),placeholder:e.$t("trust.interop_modal.algorithmPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),r(g,{label:e.$t("trust.interop_modal.peerLabel")},{default:l(()=>[r(S,{value:t.interopForm.peer,"onUpdate:value":a[15]||(a[15]=o=>t.interopForm.peer=o),placeholder:e.$t("trust.interop_modal.peerPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),r(g,{label:e.$t("trust.interop_modal.latencyLabel")},{default:l(()=>[r(E,{value:t.interopForm.latency,"onUpdate:value":a[16]||(a[16]=o=>t.interopForm.latency=o),min:0,style:{width:"160px"}},null,8,["value"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),f(" ── Sat send modal ────────────────────────────────────── "),r(k,{open:t.showSatModal,"onUpdate:open":a[21]||(a[21]=o=>t.showSatModal=o),title:e.$t("trust.sat_modal.title"),"confirm-loading":t.creating,width:540,"ok-text":e.$t("trust.sat_modal.ok"),"cancel-text":e.$t("trust.sat_modal.cancel"),onOk:t.submitSat,onCancel:t.resetSatForm},{default:l(()=>[r(w,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:l(()=>[r(g,{label:e.$t("trust.sat_modal.providerLabel"),required:""},{default:l(()=>[r(K,{value:t.satForm.provider,"onUpdate:value":a[18]||(a[18]=o=>t.satForm.provider=o)},{default:l(()=>[(n(!0),m(C,null,U(t.SATELLITE_PROVIDERS,o=>(n(),b(G,{key:o,value:o},{default:l(()=>[p(i(o),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),_:1},8,["label"]),r(g,{label:e.$t("trust.sat_modal.priorityLabel")},{default:l(()=>[r(E,{value:t.satForm.priority,"onUpdate:value":a[19]||(a[19]=o=>t.satForm.priority=o),min:1,max:10,style:{width:"120px"}},null,8,["value"]),T("span",ta,i(e.$t("trust.sat_modal.priorityHint")),1)]),_:1},8,["label"]),r(g,{label:e.$t("trust.sat_modal.payloadLabel"),required:""},{default:l(()=>[r(B,{value:t.satForm.payload,"onUpdate:value":a[20]||(a[20]=o=>t.satForm.payload=o),placeholder:e.$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"]),f(" ── HSM register modal ───────────────────────────────── "),r(k,{open:t.showHsmModal,"onUpdate:open":a[27]||(a[27]=o=>t.showHsmModal=o),title:e.$t("trust.hsm_modal.title"),"confirm-loading":t.creating,width:560,"ok-text":e.$t("trust.hsm_modal.ok"),"cancel-text":e.$t("trust.hsm_modal.cancel"),onOk:t.submitHsm,onCancel:t.resetHsmForm},{default:l(()=>[r(w,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:l(()=>[r(g,{label:e.$t("trust.hsm_modal.vendorLabel"),required:""},{default:l(()=>[r(K,{value:t.hsmForm.vendor,"onUpdate:value":a[22]||(a[22]=o=>t.hsmForm.vendor=o)},{default:l(()=>[(n(!0),m(C,null,U(t.HSM_VENDORS,o=>(n(),b(G,{key:o,value:o},{default:l(()=>[p(i(o),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),_:1},8,["label"]),r(g,{label:e.$t("trust.hsm_modal.modelLabel")},{default:l(()=>[r(S,{value:t.hsmForm.model,"onUpdate:value":a[23]||(a[23]=o=>t.hsmForm.model=o),placeholder:e.$t("trust.hsm_modal.modelPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),r(g,{label:e.$t("trust.hsm_modal.serialLabel")},{default:l(()=>[r(S,{value:t.hsmForm.serial,"onUpdate:value":a[24]||(a[24]=o=>t.hsmForm.serial=o),placeholder:e.$t("trust.hsm_modal.serialPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),r(g,{label:e.$t("trust.hsm_modal.complianceLabel")},{default:l(()=>[r(K,{value:t.hsmForm.compliance,"onUpdate:value":a[25]||(a[25]=o=>t.hsmForm.compliance=o),"allow-clear":""},{default:l(()=>[(n(!0),m(C,null,U(t.COMPLIANCE_LEVELS,o=>(n(),b(G,{key:o,value:o},{default:l(()=>[p(i(o),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),_:1},8,["label"]),r(g,{label:e.$t("trust.hsm_modal.firmwareLabel")},{default:l(()=>[r(S,{value:t.hsmForm.firmware,"onUpdate:value":a[26]||(a[26]=o=>t.hsmForm.firmware=o),placeholder:e.$t("trust.hsm_modal.firmwarePlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),f(" ── Sign modal ────────────────────────────────────────── "),r(k,{open:t.showSignModal,"onUpdate:open":a[30]||(a[30]=o=>t.showSignModal=o),title:e.$t("trust.sign_modal.title",{id:t.currentDevice?.id?.slice(0,12)||""}),width:640,footer:null},{default:l(()=>[t.currentDevice?(n(),m("div",ea,[r(w,{"label-col":{span:5},"wrapper-col":{span:19}},{default:l(()=>[r(g,{label:e.$t("trust.sign_modal.deviceLabel")},{default:l(()=>[r(F,{color:t.vendorColor(t.currentDevice.vendor),style:{"font-family":"monospace"}},{default:l(()=>[p(i(t.currentDevice.vendor),1)]),_:1},8,["color"]),T("span",aa,i(t.currentDevice.model||"—"),1)]),_:1},8,["label"]),r(g,{label:e.$t("trust.sign_modal.algorithmLabel")},{default:l(()=>[r(S,{value:t.signForm.algorithm,"onUpdate:value":a[28]||(a[28]=o=>t.signForm.algorithm=o),placeholder:e.$t("trust.sign_modal.algorithmPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),r(g,{label:e.$t("trust.sign_modal.dataLabel"),required:""},{default:l(()=>[r(B,{value:t.signForm.data,"onUpdate:value":a[29]||(a[29]=o=>t.signForm.data=o),placeholder:e.$t("trust.sign_modal.dataPlaceholder"),"auto-size":{minRows:3,maxRows:8}},null,8,["value","placeholder"])]),_:1},8,["label"]),r(g,{"wrapper-col":{offset:5,span:19}},{default:l(()=>[r(A,{type:"primary",loading:t.signing,onClick:t.submitSign},{icon:l(()=>[r(t.KeyOutlined)]),default:l(()=>[p(" "+i(e.$t("trust.sign_modal.submit")),1)]),_:1},8,["loading"])]),_:1})]),_:1}),r(J),t.signResult?(n(),m("div",oa,[r(nt,{column:1,size:"small",bordered:""},{default:l(()=>[r(lt,{label:e.$t("trust.sign_modal.resultAlgorithm")},{default:l(()=>[r(F,{color:"purple",style:{"font-family":"monospace"}},{default:l(()=>[p(i(t.signResult.algorithm),1)]),_:1})]),_:1},8,["label"]),r(lt,{label:e.$t("trust.sign_modal.resultSignature")},{default:l(()=>[T("pre",la,i(t.signResult.signature),1)]),_:1},8,["label"])]),_:1}),t.signResult.reason?(n(),b(it,{key:0,type:"warning","show-icon":"",message:e.$t("trust.sign_modal.failedReason",{reason:t.signResult.reason}),style:{"margin-top":"12px"}},null,8,["message"])):f("v-if",!0)])):(n(),b(st,{key:0,description:e.$t("trust.sign_modal.notSigned"),image:t.EMPTY_IMG},null,8,["description","image"]))])):f("v-if",!0)]),_:1},8,["open","title"])])}const da=Yt(ge,[["render",ra],["__scopeId","data-v-c09b98d9"],["__file","/tmp/cc-web-panel-heolxZ/repo/packages/web-panel/src/views/Trust.vue"]]);export{da as default};
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
const c=/^\[[A-Z][a-zA-Z0-9_]*\]/,u=/^[✖✗✓✔ℹ⚠]/;function a(t){return t?t.split(`
|
|
2
|
-
`).filter(n=>{const e=n.trim();return!(!e||c.test(e)||u.test(e))}).join(`
|
|
3
|
-
`).trim():""}function r(t){const n=a(t);if(!n)return null;try{return JSON.parse(n)}catch{}const e=n.match(/\{[\s\S]*\}|\[[\s\S]*\]/);if(!e)return null;try{return JSON.parse(e[0])}catch{return null}}const o=Object.freeze({contacts:0,friends:0,posts:0,messages:0,pendingRequests:0});function p(t){const n={...o},e=r(t);if(!e||typeof e!="object"||Array.isArray(e))return n;for(const i of Object.keys(o)){const s=e[i];typeof s=="number"&&Number.isFinite(s)&&(n[i]=s)}return typeof e.pending_requests=="number"&&(n.pendingRequests=e.pending_requests),n}function f(t,n){if(!t||typeof t!="object")return null;const e=t.id||t.contactId||t.contact_id||"";return e?{key:e,id:e,name:String(t.name||""),did:t.did||"",email:t.email||"",notes:t.notes||"",createdAt:t.createdAt||t.created_at||"",_idx:n}:null}function y(t){const n=r(t);return Array.isArray(n)?n.map(f).filter(Boolean):[]}function d(t,n){if(!t||typeof t!="object")return null;const e=t.contactId||t.contact_id||t.id||"";return e?{key:t.id||e,id:t.id||e,contactId:e,status:String(t.status||"pending"),createdAt:t.createdAt||t.created_at||"",_idx:n}:null}function m(t){const n=r(t);return Array.isArray(n)?n.map(d).filter(Boolean):[]}function l(t,n){if(!t||typeof t!="object")return null;const e=t.id||"";return e?{key:e,id:e,author:String(t.author||"unknown"),content:String(t.content||""),likes:typeof t.likes=="number"?t.likes:0,createdAt:t.createdAt||t.created_at||"",_idx:n}:null}function A(t){const n=r(t);return Array.isArray(n)?n.map(l).filter(Boolean):[]}export{o as S,y as a,m as b,A as c,p,a as s};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{O as r}from"./index-BcRDjaEi.js";const o=((n,a,e)=>{r(n,`[ant-design-vue: ${a}] ${e}`)});export{o as d};
|