chainlesschain 0.166.141 → 0.166.143
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/README.md +249 -14
- package/package.json +2 -2
- package/src/assets/linux-subreaper/linux-arm64/manifest.json +1 -1
- package/src/assets/linux-subreaper/linux-x64/manifest.json +1 -1
- package/src/assets/web-panel/assets/{AIOps-BefmcZw2.js → AIOps-DNySV2Kf.js} +1 -1
- package/src/assets/web-panel/assets/{ActionButton-BBlS9rmj.js → ActionButton-ByFuxJsa.js} +1 -1
- package/src/assets/web-panel/assets/{Analytics-DfNjXT9e.js → Analytics-ETbdywk5.js} +1 -1
- package/src/assets/web-panel/assets/{AppLayout-CIBZPPMS.js → AppLayout-CuHekZaP.js} +2 -2
- package/src/assets/web-panel/assets/{Artifacts-CE66rTTZ.js → Artifacts-BJJq2BDq.js} +1 -1
- package/src/assets/web-panel/assets/{Audit-DOC8Lt8U.js → Audit-DXrietv8.js} +1 -1
- package/src/assets/web-panel/assets/{BackgroundAgents-9TMG041Q.js → BackgroundAgents-CFB1fxsr.js} +1 -1
- package/src/assets/web-panel/assets/{Backup-us3KWb9F.js → Backup-VLtflRmp.js} +1 -1
- package/src/assets/web-panel/assets/{BaseInput-D6Q95Wr5.js → BaseInput-BbqBaS2r.js} +1 -1
- package/src/assets/web-panel/assets/{Chat-BPrM5ARp.js → Chat-t0g7BXL8.js} +1 -1
- package/src/assets/web-panel/assets/{ChatBubbleRenderer-Drs9vSc4.js → ChatBubbleRenderer-JNFsjV0j.js} +1 -1
- package/src/assets/web-panel/assets/{Checkbox-DqZGMV0o.js → Checkbox-BCSclHQb.js} +1 -1
- package/src/assets/web-panel/assets/{Codegen-CmolL6wr.js → Codegen-BcyINEHT.js} +1 -1
- package/src/assets/web-panel/assets/{Col-BwHSmoYQ.js → Col-C-0WNlwS.js} +1 -1
- package/src/assets/web-panel/assets/{Community-DGWqobpd.js → Community-DxZeoORX.js} +1 -1
- package/src/assets/web-panel/assets/{Compact-t_yy09-r.js → Compact-BNnX4jpz.js} +1 -1
- package/src/assets/web-panel/assets/{Compliance-D0S8-EsN.js → Compliance-KnjHtn9C.js} +1 -1
- package/src/assets/web-panel/assets/{Cowork-Y1LiuRwP.js → Cowork-CDyCrhbX.js} +1 -1
- package/src/assets/web-panel/assets/{Cron-FTqEw7QV.js → Cron-DxpS3D1G.js} +1 -1
- package/src/assets/web-panel/assets/{Crosschain-C3rPZ4Qu.js → Crosschain-BSzTZYyc.js} +1 -1
- package/src/assets/web-panel/assets/{DID-Ba2zySM-.js → DID-Bfj9Vdne.js} +1 -1
- package/src/assets/web-panel/assets/{Dashboard-D6xyN2ND.js → Dashboard-CcERVdgo.js} +2 -2
- package/src/assets/web-panel/assets/{Dropdown-BF4QuXJw.js → Dropdown-BtYXAz6E.js} +1 -1
- package/src/assets/web-panel/assets/{EmailListRenderer-s9dUxq14.js → EmailListRenderer-fdCMeGXU.js} +1 -1
- package/src/assets/web-panel/assets/{EvolutionSettings-CoAKOfqZ.js → EvolutionSettings-LHxhcuF2.js} +1 -1
- package/src/assets/web-panel/assets/{FamilyGuardDashboard-CEznwH1c.js → FamilyGuardDashboard-MIgtLsos.js} +1 -1
- package/src/assets/web-panel/assets/{Federation-rIzOt8-a.js → Federation-9-TOztwa.js} +1 -1
- package/src/assets/web-panel/assets/{FormItemContext-BARFiExr.js → FormItemContext-BKcwEE6w.js} +1 -1
- package/src/assets/web-panel/assets/{GenericCardRenderer-DI0A4swS.js → GenericCardRenderer-DJBPVUK2.js} +1 -1
- package/src/assets/web-panel/assets/{Git-DdmysND4.js → Git-C_XYISjG.js} +1 -1
- package/src/assets/web-panel/assets/{Governance-DrdhwUz2.js → Governance-DWsbPrwq.js} +1 -1
- package/src/assets/web-panel/assets/{Inference-Scm8tumd.js → Inference-D0_bYket.js} +1 -1
- package/src/assets/web-panel/assets/{KnowledgeGraph-_6bgPs4W.js → KnowledgeGraph-BoA3VQlw.js} +1 -1
- package/src/assets/web-panel/assets/{Logs-DW_v7bSo.js → Logs-LEGItChf.js} +1 -1
- package/src/assets/web-panel/assets/{MarkdownRenderer-7JABuv1j.js → MarkdownRenderer-DOHVc-Uw.js} +1 -1
- package/src/assets/web-panel/assets/{Marketplace-0h3YSvME.js → Marketplace-BKovl9NH.js} +1 -1
- package/src/assets/web-panel/assets/{McpTools-Byrg0Y3e.js → McpTools-D61ktoGb.js} +1 -1
- package/src/assets/web-panel/assets/{Memory-Cyoq-o29.js → Memory-CllorS0l.js} +1 -1
- package/src/assets/web-panel/assets/{MobileBridge-ISIlploU.js → MobileBridge-D-dJ78bk.js} +1 -1
- package/src/assets/web-panel/assets/{MobileProjects-04EncaRx.js → MobileProjects-CaxMKkd3.js} +1 -1
- package/src/assets/web-panel/assets/{Mtc-BMzkpyOF.js → Mtc-qEc62Qsx.js} +1 -1
- package/src/assets/web-panel/assets/{MtcAudit-Cx7BR5sz.js → MtcAudit-BY68jOZJ.js} +1 -1
- package/src/assets/web-panel/assets/{Multisig-D4pmkSX4.js → Multisig-eCCR8ELt.js} +1 -1
- package/src/assets/web-panel/assets/{NLProgramming-CCfaaWNu.js → NLProgramming-VtGv8pky.js} +1 -1
- package/src/assets/web-panel/assets/{Notes-Mq-1ZyaH.js → Notes-CPkYQySe.js} +1 -1
- package/src/assets/web-panel/assets/{NotificationSettings-rzf5V1TR.js → NotificationSettings-BuAvlHUu.js} +1 -1
- package/src/assets/web-panel/assets/{OrderTableRenderer-OREUs5ue.js → OrderTableRenderer-CLf_HAGv.js} +1 -1
- package/src/assets/web-panel/assets/{Organization-BQfOATgw.js → Organization-DjujhMbD.js} +1 -1
- package/src/assets/web-panel/assets/{Overflow-D7Pa6aaA.js → Overflow-RznznTS4.js} +1 -1
- package/src/assets/web-panel/assets/{P2P-CaJ79ZsC.js → P2P-DSa5ot0t.js} +1 -1
- package/src/assets/web-panel/assets/{PdhVaultBrowser-CtimQQN3.js → PdhVaultBrowser-oSEh6vkf.js} +2 -2
- package/src/assets/web-panel/assets/{Permissions-AzmmkLZ0.js → Permissions-CdOZguX9.js} +1 -1
- package/src/assets/web-panel/assets/{PersonalDataHub-BRU8ME7z.js → PersonalDataHub-B4--6iEF.js} +1 -1
- package/src/assets/web-panel/assets/{Pipeline-BnNqutXh.js → Pipeline-BnI57jE8.js} +1 -1
- package/src/assets/web-panel/assets/{Privacy-gMyZcxsz.js → Privacy-C8MId3ad.js} +1 -1
- package/src/assets/web-panel/assets/{ProjectInit-CkK-Fvr0.js → ProjectInit-DPGyYO8a.js} +1 -1
- package/src/assets/web-panel/assets/{ProjectSettings-CGY_uiIX.js → ProjectSettings-qBMqaJaO.js} +1 -1
- package/src/assets/web-panel/assets/{Projects-DBNC7xXG.js → Projects-Bq87Syce.js} +1 -1
- package/src/assets/web-panel/assets/{Providers-BVgWawtE.js → Providers-CVuG9Ugf.js} +1 -1
- package/src/assets/web-panel/assets/{QrScannerModal-DZILESCa.js → QrScannerModal-C94c8m3q.js} +1 -1
- package/src/assets/web-panel/assets/{QuickAsk-DwRBzFWW.js → QuickAsk-BvfsXZ8s.js} +1 -1
- package/src/assets/web-panel/assets/{Recommend-B3VxvUih.js → Recommend-CoezBYH9.js} +1 -1
- package/src/assets/web-panel/assets/{RemoteSession-DM74lufU.js → RemoteSession-CcYC4v3u.js} +1 -1
- package/src/assets/web-panel/assets/{Reputation-DOOEuGHh.js → Reputation-diDbL4cO.js} +1 -1
- package/src/assets/web-panel/assets/{Row-BZJYAo0S.js → Row-5qp3_fNS.js} +1 -1
- package/src/assets/web-panel/assets/{RssFeed-CYw44jcD.js → RssFeed-BCsMvpV4.js} +1 -1
- package/src/assets/web-panel/assets/{Search-CbypjDNG.js → Search-Br9nVxOp.js} +1 -1
- package/src/assets/web-panel/assets/{Security-0rSBDrXh.js → Security-BdOUzRfA.js} +1 -1
- package/src/assets/web-panel/assets/{Services-kqP79CBD.js → Services-Cp9TqzyN.js} +1 -1
- package/src/assets/web-panel/assets/{Skeleton-BjxvGVfI.js → Skeleton-DSdWsUMR.js} +1 -1
- package/src/assets/web-panel/assets/{Skills-SOoWyPCO.js → Skills-DRczAMTe.js} +1 -1
- package/src/assets/web-panel/assets/{Sla-kdRVAT19.js → Sla-B6G_Vd8N.js} +1 -1
- package/src/assets/web-panel/assets/{SpeechSettings-DILtcMaJ.js → SpeechSettings-BCcLx5x4.js} +1 -1
- package/src/assets/web-panel/assets/{SyncSettings-C98Jauc4.js → SyncSettings-BFhwtxCp.js} +1 -1
- package/src/assets/web-panel/assets/{Tasks-Bw-KaQAs.js → Tasks-DGRE6VHO.js} +1 -1
- package/src/assets/web-panel/assets/{Templates-CDJ027Hd.js → Templates-CJkJRFzd.js} +1 -1
- package/src/assets/web-panel/assets/{Tenant-BqNV62UA.js → Tenant-CAOv6p00.js} +1 -1
- package/src/assets/web-panel/assets/{Terminal-B8aQ3GLO.js → Terminal-CDrwwrKj.js} +1 -1
- package/src/assets/web-panel/assets/{TimelineRenderer-BSpccq11.js → TimelineRenderer-DI0YE2SN.js} +1 -1
- package/src/assets/web-panel/assets/{Tokens-BbGMoFO6.js → Tokens-DmqWTZSG.js} +1 -1
- package/src/assets/web-panel/assets/{Trigger-D75Mawa_.js → Trigger-CkXkhmjk.js} +1 -1
- package/src/assets/web-panel/assets/{Trust-BiK_Pk05.js → Trust-U8YJLcoJ.js} +1 -1
- package/src/assets/web-panel/assets/{UkeySign-Dv2xX_b9.js → UkeySign-BLTozMmr.js} +1 -1
- package/src/assets/web-panel/assets/{VideoEditing-CdBWfeEE.js → VideoEditing-DHKyFlZa.js} +1 -1
- package/src/assets/web-panel/assets/{Wallet-Cvrp4agg.js → Wallet-DapBxIQt.js} +1 -1
- package/src/assets/web-panel/assets/{WebAuthn-D0Htlf3v.js → WebAuthn-CkvG3yOr.js} +1 -1
- package/src/assets/web-panel/assets/{WorkflowEditor-nuUBOHIF.js → WorkflowEditor-cNLsinXP.js} +1 -1
- package/src/assets/web-panel/assets/{chat-C6MLShIo.js → chat-BzgkgfMC.js} +1 -1
- package/src/assets/web-panel/assets/{colors-9G5FqFOC.js → colors-BPpVKQsb.js} +1 -1
- package/src/assets/web-panel/assets/{compact-item-0M49EurU.js → compact-item-zepznuTv.js} +1 -1
- package/src/assets/web-panel/assets/{createContext-CiDDLED_.js → createContext-BRto-SQH.js} +1 -1
- package/src/assets/web-panel/assets/{hasIn-wZvUczmn.js → hasIn-CqsmU_n6.js} +1 -1
- package/src/assets/web-panel/assets/{index-B0JZ_ccM.js → index-B-bNzvdU.js} +1 -1
- package/src/assets/web-panel/assets/{index-B_XOMujL.js → index-B0Z6rfV-.js} +1 -1
- package/src/assets/web-panel/assets/{index-DwX9cOL6.js → index-B9_jRD2e.js} +1 -1
- package/src/assets/web-panel/assets/{index-DwUOiN8M.js → index-BEXKES7V.js} +1 -1
- package/src/assets/web-panel/assets/{index-8jz-X3xg.js → index-BGHd4D8F.js} +1 -1
- package/src/assets/web-panel/assets/{index-BVV2mBbo.js → index-BLwY9y0X.js} +1 -1
- package/src/assets/web-panel/assets/{index-qJcOtd8J.js → index-B_l6gfDh.js} +1 -1
- package/src/assets/web-panel/assets/{index-B6TAOS4G.js → index-BeBxP1M6.js} +1 -1
- package/src/assets/web-panel/assets/{index-C63qiwQz.js → index-BeSzdB7x.js} +1 -1
- package/src/assets/web-panel/assets/{index-k0BVfcwQ.js → index-BuBnM6Kz.js} +1 -1
- package/src/assets/web-panel/assets/{index-BXIY2BIN.js → index-Bz7pG8z3.js} +1 -1
- package/src/assets/web-panel/assets/{index-D51V5vmz.js → index-CBI-7Q3W.js} +1 -1
- package/src/assets/web-panel/assets/{index-BWTcG128.js → index-CTk9gY88.js} +1 -1
- package/src/assets/web-panel/assets/{index-sBsJaBmM.js → index-CdHXVSZ4.js} +1 -1
- package/src/assets/web-panel/assets/{index-Dclwd_lj.js → index-CmPnDXx4.js} +1 -1
- package/src/assets/web-panel/assets/{index-BlcOkfzz.js → index-CnezE05k.js} +1 -1
- package/src/assets/web-panel/assets/{index-DOxTmc3k.js → index-CwkhrUmw.js} +1 -1
- package/src/assets/web-panel/assets/{index-Cs66y4oC.js → index-CzoKAiyT.js} +3 -3
- package/src/assets/web-panel/assets/{index-BzeA3eRQ.js → index-DDPmr5Yr.js} +1 -1
- package/src/assets/web-panel/assets/{index-CdaLWIz-.js → index-DEbAW3Ec.js} +1 -1
- package/src/assets/web-panel/assets/{index-DvWRS-s7.js → index-DJSn3owP.js} +1 -1
- package/src/assets/web-panel/assets/{index-DN9t1qjW.js → index-DKa_jSfj.js} +1 -1
- package/src/assets/web-panel/assets/{index-BTCIIdoS.js → index-DUclk35X.js} +1 -1
- package/src/assets/web-panel/assets/{index-BmS2P_eX.js → index-DXkw-nt5.js} +1 -1
- package/src/assets/web-panel/assets/{index-CoxzvhoN.js → index-D_-w4KkD.js} +1 -1
- package/src/assets/web-panel/assets/{index-Cz1SAgnb.js → index-D_asIcU7.js} +1 -1
- package/src/assets/web-panel/assets/{index-BfwJm0DU.js → index-Df_CY0We.js} +1 -1
- package/src/assets/web-panel/assets/{index-JhfNEldK.js → index-Dnvj_XU-.js} +1 -1
- package/src/assets/web-panel/assets/index-DruOFzuF.js +1 -0
- package/src/assets/web-panel/assets/{index-D9J_tLGk.js → index-DvGttIXQ.js} +1 -1
- package/src/assets/web-panel/assets/{index-DcZxOXd8.js → index-JrVhUwyh.js} +1 -1
- package/src/assets/web-panel/assets/{index-CdUmgLxP.js → index-LVvzNdPa.js} +1 -1
- package/src/assets/web-panel/assets/{index-CTy9gD3m.js → index-Q5sAV7wp.js} +1 -1
- package/src/assets/web-panel/assets/{index-CtbFv3Et.js → index-S8fkzbQ_.js} +1 -1
- package/src/assets/web-panel/assets/{index-BCfxxScC.js → index-Z6DBe2RU.js} +1 -1
- package/src/assets/web-panel/assets/{index-dJ_V_Fqy.js → index-faHHtBKj.js} +1 -1
- package/src/assets/web-panel/assets/index-hhOrZ6HO.js +1 -0
- package/src/assets/web-panel/assets/{index-DeHSwWVG.js → index-w36TkwyO.js} +1 -1
- package/src/assets/web-panel/assets/{index-D2wN6VIq.js → index-wbvZayBb.js} +1 -1
- package/src/assets/web-panel/assets/{initDefaultProps-DyIyjurJ.js → initDefaultProps-BlhbrsQk.js} +1 -1
- package/src/assets/web-panel/assets/{motion-B2D0PuTM.js → motion-UZx12NPM.js} +1 -1
- package/src/assets/web-panel/assets/{move-B22T5MnN.js → move-BTby5W4q.js} +1 -1
- package/src/assets/web-panel/assets/{mtc-parser-i4b7HNzF.js → mtc-parser-BOOaGiCg.js} +1 -1
- package/src/assets/web-panel/assets/{omit-ByNIr_gz.js → omit-BVylGzEr.js} +1 -1
- package/src/assets/web-panel/assets/{pickAttrs-_xP2RvxA.js → pickAttrs-Cp3Nflbr.js} +1 -1
- package/src/assets/web-panel/assets/{placementArrow-CVDvzK0z.js → placementArrow-BVXYvwH2.js} +1 -1
- package/src/assets/web-panel/assets/{responsiveObserve-CI1toXJ_.js → responsiveObserve-C67SbpBN.js} +1 -1
- package/src/assets/web-panel/assets/{slide-2_VosSRQ.js → slide-CnBvM22R.js} +1 -1
- package/src/assets/web-panel/assets/{statusUtils-CMiWWrZC.js → statusUtils-T8fy53tf.js} +1 -1
- package/src/assets/web-panel/assets/{styleChecker-DY8wTVCe.js → styleChecker-Bf7i4nlm.js} +1 -1
- package/src/assets/web-panel/assets/{useFlexGapSupport-DkdcgIyl.js → useFlexGapSupport-BUKk7jqw.js} +1 -1
- package/src/assets/web-panel/assets/{useFs-gpl11PEF.js → useFs-T5lg6SpD.js} +1 -1
- package/src/assets/web-panel/assets/{usePersonalDataHub-DqnQ0H9y.js → usePersonalDataHub-Brvye8Tg.js} +1 -1
- package/src/assets/web-panel/assets/{vnode-CgY9xUvr.js → vnode-CK992ojP.js} +1 -1
- package/src/assets/web-panel/assets/{zoom-Ch0jan5_.js → zoom-CcABB_97.js} +1 -1
- package/src/assets/web-panel/index.html +1 -1
- package/src/command-help-index.json +1 -1
- package/src/commands/goal.js +340 -145
- package/src/commands/setup.js +17 -0
- package/src/data/changelog.json +26 -0
- package/src/lib/llm-onboarding-catalog.json +4 -3
- package/src/lib/plugin-runtime/cli-goal-capabilities.js +29 -0
- package/src/lib/plugin-runtime/cli-goal-draft-request.js +25 -15
- package/src/lib/plugin-runtime/cli-goal-drafts.js +78 -35
- package/src/lib/plugin-runtime/cli-goal-event-history.js +284 -0
- package/src/lib/plugin-runtime/cli-goal-events.js +175 -0
- package/src/lib/plugin-runtime/cli-goal-extension-host.js +21 -13
- package/src/lib/plugin-runtime/cli-project-goal-events.js +212 -0
- package/src/lib/plugin-runtime/examples/goal-project-observer/plugin.json +20 -0
- package/src/lib/plugin-runtime/examples/goal-status-observer/plugin.json +17 -0
- package/src/lib/plugin-runtime/examples/goal-task-creator/README.md +60 -0
- package/src/lib/plugin-runtime/examples/goal-task-creator/plugin.json +13 -0
- package/src/lib/plugin-runtime/examples/project-delivery-assistant/README.md +125 -0
- package/src/lib/plugin-runtime/examples/project-delivery-assistant/plugin.json +8 -8
- package/src/lib/plugin-runtime/goal-extensions.js +17 -0
- package/src/lib/project-goal-connection.js +126 -30
- package/src/lib/project-goal-draft-connection.js +18 -11
- package/src/assets/web-panel/assets/index-C101Sec6.js +0 -1
- package/src/assets/web-panel/assets/index-D23TaGOp.js +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{L as a,M as m,R as d,Q as z,u as _,P as c,S as M,Z as Y,w as Z,o as ye,n as B,x as Ae,_ as ae,F as K,Y as G,U as he,r as N,f as k,K as q,c as g,N as I,O as E,a0 as Te,a1 as Fe,H as Re,I as Pe,a as qe}from"./vendor-BXcBOG8b.js";import{_ as ne,b as je}from"./index-
|
|
1
|
+
import{L as a,M as m,R as d,Q as z,u as _,P as c,S as M,Z as Y,w as Z,o as ye,n as B,x as Ae,_ as ae,F as K,Y as G,U as he,r as N,f as k,K as q,c as g,N as I,O as E,a0 as Te,a1 as Fe,H as Re,I as Pe,a as qe}from"./vendor-BXcBOG8b.js";import{_ as ne,b as je}from"./index-CzoKAiyT.js";import{u as De,M as Le}from"./chat-BzgkgfMC.js";import{a as Ne,L as _e,z as We,ah as Be,ai as Ve,f as Ue,c as He,r as Qe,aj as fe,ak as Ke,b as Ge,F as me,G as pe,h as Je,ae as ge,l as Xe,al as Ye,am as Ze}from"./icons-DlxlFL4g.js";import{M as et}from"./MarkdownRenderer-DOHVc-Uw.js";import"./markdown-Bq2x0XsR.js";import"./markdown-DUKxbhE4.js";const tt=["data-testid"],st={class:"cb-action__icon"},nt={class:"cb-action__label"},it={key:0,class:"cb-action__detail"},ot={key:1,class:"cb-action__caret"},lt={__name:"ToolInvocationCard",props:{item:{type:Object,required:!0},expandable:{type:Boolean,default:!1},expanded:{type:Boolean,default:!1}},emits:["toggle"],setup(u,{emit:v}){const e=u,t=v;function s(){e.expandable&&t("toggle")}return(n,o)=>(a(),m("div",{class:Y(["cb-action",[`cb-action--${u.item.status}`,{"cb-action--expandable":u.expandable,"cb-action--open":u.expanded}]]),"data-testid":`tool-card-${u.item.id}`,onClick:s},[d("span",st,[u.item.status==="done"?(a(),z(_(Ne),{key:0})):u.item.status==="running"?(a(),z(_(_e),{key:1})):(a(),z(_(We),{key:2}))]),d("span",nt,c(u.item.label),1),u.item.detail?(a(),m("span",it,c(u.item.detail),1)):M("",!0),u.expandable?(a(),m("span",ot,[u.expanded?(a(),z(_(Be),{key:0})):(a(),z(_(Ve),{key:1}))])):M("",!0)],10,tt))}},at=ne(lt,[["__scopeId","data-v-cf5a0925"]]);function Q(u,v,e){let t=e.initialDeps??[],s,n=!0;function o(){var l,r,O;let S;e.key&&((l=e.debug)!=null&&l.call(e))&&(S=Date.now());const b=u();if(!(b.length!==t.length||b.some((x,C)=>t[C]!==x)))return s;t=b;let h;if(e.key&&((r=e.debug)!=null&&r.call(e))&&(h=Date.now()),s=v(...b),e.key&&((O=e.debug)!=null&&O.call(e))){const x=Math.round((Date.now()-S)*100)/100,C=Math.round((Date.now()-h)*100)/100,y=C/16,F=(A,j)=>{for(A=String(A);A.length<j;)A=" "+A;return A};console.info(`%c⏱ ${F(C,5)} /${F(x,5)} ms`,`
|
|
2
2
|
font-size: .6rem;
|
|
3
3
|
font-weight: bold;
|
|
4
4
|
color: hsl(${Math.max(0,Math.min(120-120*y,120))}deg 100% 31%);`,e?.key)}return e?.onChange&&!(n&&e.skipInitialOnChange)&&e.onChange(s),n=!1,s}return o.updateDeps=l=>{t=l},o}function ve(u,v){if(u===void 0)throw new Error("Unexpected undefined");return u}const rt=(u,v)=>Math.abs(u-v)<1.01,ct=u=>u,ut=u=>{const v=Math.max(u.startIndex-u.overscan,0),e=Math.min(u.endIndex+u.overscan,u.count-1),t=[];for(let s=v;s<=e;s++)t.push(s);return t},dt=(u,v,e)=>{if(v?.borderBoxSize){const t=v.borderBoxSize[0];if(t)return Math.round(t[e.options.horizontal?"inlineSize":"blockSize"])}return u[e.options.horizontal?"offsetWidth":"offsetHeight"]};class ht{constructor(v){this.unsubs=[],this.scrollElement=null,this.targetWindow=null,this.isScrolling=!1,this.scrollState=null,this.measurementsCache=[],this.itemSizeCache=new Map,this.laneAssignments=new Map,this.pendingMeasuredCacheIndexes=[],this.prevLanes=void 0,this.lanesChangedFlag=!1,this.lanesSettling=!1,this.scrollRect=null,this.scrollOffset=null,this.scrollDirection=null,this.scrollAdjustments=0,this.elementsCache=new Map,this.now=()=>{var e,t,s;return((s=(t=(e=this.targetWindow)==null?void 0:e.performance)==null?void 0:t.now)==null?void 0:s.call(t))??Date.now()},this.observer=(()=>{let e=null;const t=()=>e||(!this.targetWindow||!this.targetWindow.ResizeObserver?null:e=new this.targetWindow.ResizeObserver(s=>{s.forEach(n=>{const o=()=>{const l=n.target,r=this.indexFromElement(l);if(!l.isConnected){this.observer.unobserve(l);return}this.shouldMeasureDuringScroll(r)&&this.resizeItem(r,this.options.measureElement(l,n,this))};this.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(o):o()})}));return{disconnect:()=>{var s;(s=t())==null||s.disconnect(),e=null},observe:s=>{var n;return(n=t())==null?void 0:n.observe(s,{box:"border-box"})},unobserve:s=>{var n;return(n=t())==null?void 0:n.unobserve(s)}}})(),this.range=null,this.setOptions=e=>{Object.entries(e).forEach(([t,s])=>{typeof s>"u"&&delete e[t]}),this.options={debug:!1,initialOffset:0,overscan:1,paddingStart:0,paddingEnd:0,scrollPaddingStart:0,scrollPaddingEnd:0,horizontal:!1,getItemKey:ct,rangeExtractor:ut,onChange:()=>{},measureElement:dt,initialRect:{width:0,height:0},scrollMargin:0,gap:0,indexAttribute:"data-index",initialMeasurementsCache:[],lanes:1,isScrollingResetDelay:150,enabled:!0,isRtl:!1,useScrollendEvent:!1,useAnimationFrameWithResizeObserver:!1,laneAssignmentMode:"estimate",...e}},this.notify=e=>{var t,s;(s=(t=this.options).onChange)==null||s.call(t,this,e)},this.maybeNotify=Q(()=>(this.calculateRange(),[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]),e=>{this.notify(e)},{key:!1,debug:()=>this.options.debug,initialDeps:[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]}),this.cleanup=()=>{this.unsubs.filter(Boolean).forEach(e=>e()),this.unsubs=[],this.observer.disconnect(),this.rafId!=null&&this.targetWindow&&(this.targetWindow.cancelAnimationFrame(this.rafId),this.rafId=null),this.scrollState=null,this.scrollElement=null,this.targetWindow=null},this._didMount=()=>()=>{this.cleanup()},this._willUpdate=()=>{var e;const t=this.options.enabled?this.options.getScrollElement():null;if(this.scrollElement!==t){if(this.cleanup(),!t){this.maybeNotify();return}this.scrollElement=t,this.scrollElement&&"ownerDocument"in this.scrollElement?this.targetWindow=this.scrollElement.ownerDocument.defaultView:this.targetWindow=((e=this.scrollElement)==null?void 0:e.window)??null,this.elementsCache.forEach(s=>{this.observer.observe(s)}),this.unsubs.push(this.options.observeElementRect(this,s=>{this.scrollRect=s,this.maybeNotify()})),this.unsubs.push(this.options.observeElementOffset(this,(s,n)=>{this.scrollAdjustments=0,this.scrollDirection=n?this.getScrollOffset()<s?"forward":"backward":null,this.scrollOffset=s,this.isScrolling=n,this.scrollState&&this.scheduleScrollReconcile(),this.maybeNotify()})),this._scrollToOffset(this.getScrollOffset(),{adjustments:void 0,behavior:void 0})}},this.rafId=null,this.getSize=()=>this.options.enabled?(this.scrollRect=this.scrollRect??this.options.initialRect,this.scrollRect[this.options.horizontal?"width":"height"]):(this.scrollRect=null,0),this.getScrollOffset=()=>this.options.enabled?(this.scrollOffset=this.scrollOffset??(typeof this.options.initialOffset=="function"?this.options.initialOffset():this.options.initialOffset),this.scrollOffset):(this.scrollOffset=null,0),this.getFurthestMeasurement=(e,t)=>{const s=new Map,n=new Map;for(let o=t-1;o>=0;o--){const l=e[o];if(s.has(l.lane))continue;const r=n.get(l.lane);if(r==null||l.end>r.end?n.set(l.lane,l):l.end<r.end&&s.set(l.lane,!0),s.size===this.options.lanes)break}return n.size===this.options.lanes?Array.from(n.values()).sort((o,l)=>o.end===l.end?o.index-l.index:o.end-l.end)[0]:void 0},this.getMeasurementOptions=Q(()=>[this.options.count,this.options.paddingStart,this.options.scrollMargin,this.options.getItemKey,this.options.enabled,this.options.lanes,this.options.laneAssignmentMode],(e,t,s,n,o,l,r)=>(this.prevLanes!==void 0&&this.prevLanes!==l&&(this.lanesChangedFlag=!0),this.prevLanes=l,this.pendingMeasuredCacheIndexes=[],{count:e,paddingStart:t,scrollMargin:s,getItemKey:n,enabled:o,lanes:l,laneAssignmentMode:r}),{key:!1}),this.getMeasurements=Q(()=>[this.getMeasurementOptions(),this.itemSizeCache],({count:e,paddingStart:t,scrollMargin:s,getItemKey:n,enabled:o,lanes:l,laneAssignmentMode:r},O)=>{if(!o)return this.measurementsCache=[],this.itemSizeCache.clear(),this.laneAssignments.clear(),[];if(this.laneAssignments.size>e)for(const h of this.laneAssignments.keys())h>=e&&this.laneAssignments.delete(h);this.lanesChangedFlag&&(this.lanesChangedFlag=!1,this.lanesSettling=!0,this.measurementsCache=[],this.itemSizeCache.clear(),this.laneAssignments.clear(),this.pendingMeasuredCacheIndexes=[]),this.measurementsCache.length===0&&!this.lanesSettling&&(this.measurementsCache=this.options.initialMeasurementsCache,this.measurementsCache.forEach(h=>{this.itemSizeCache.set(h.key,h.size)}));const S=this.lanesSettling?0:this.pendingMeasuredCacheIndexes.length>0?Math.min(...this.pendingMeasuredCacheIndexes):0;this.pendingMeasuredCacheIndexes=[],this.lanesSettling&&this.measurementsCache.length===e&&(this.lanesSettling=!1);const b=this.measurementsCache.slice(0,S),T=new Array(l).fill(void 0);for(let h=0;h<S;h++){const x=b[h];x&&(T[x.lane]=h)}for(let h=S;h<e;h++){const x=n(h),C=this.laneAssignments.get(h);let y,F;const A=r==="estimate"||O.has(x);if(C!==void 0&&this.options.lanes>1){y=C;const w=T[y],P=w!==void 0?b[w]:void 0;F=P?P.end+this.options.gap:t+s}else{const w=this.options.lanes===1?b[h-1]:this.getFurthestMeasurement(b,h);F=w?w.end+this.options.gap:t+s,y=w?w.lane:h%this.options.lanes,this.options.lanes>1&&A&&this.laneAssignments.set(h,y)}const j=O.get(x),D=typeof j=="number"?j:this.options.estimateSize(h),W=F+D;b[h]={index:h,start:F,size:D,end:W,key:x,lane:y},T[y]=h}return this.measurementsCache=b,b},{key:!1,debug:()=>this.options.debug}),this.calculateRange=Q(()=>[this.getMeasurements(),this.getSize(),this.getScrollOffset(),this.options.lanes],(e,t,s,n)=>this.range=e.length>0&&t>0?ft({measurements:e,outerSize:t,scrollOffset:s,lanes:n}):null,{key:!1,debug:()=>this.options.debug}),this.getVirtualIndexes=Q(()=>{let e=null,t=null;const s=this.calculateRange();return s&&(e=s.startIndex,t=s.endIndex),this.maybeNotify.updateDeps([this.isScrolling,e,t]),[this.options.rangeExtractor,this.options.overscan,this.options.count,e,t]},(e,t,s,n,o)=>n===null||o===null?[]:e({startIndex:n,endIndex:o,overscan:t,count:s}),{key:!1,debug:()=>this.options.debug}),this.indexFromElement=e=>{const t=this.options.indexAttribute,s=e.getAttribute(t);return s?parseInt(s,10):(console.warn(`Missing attribute name '${t}={index}' on measured element.`),-1)},this.shouldMeasureDuringScroll=e=>{var t;if(!this.scrollState||this.scrollState.behavior!=="smooth")return!0;const s=this.scrollState.index??((t=this.getVirtualItemForOffset(this.scrollState.lastTargetOffset))==null?void 0:t.index);if(s!==void 0&&this.range){const n=Math.max(this.options.overscan,Math.ceil((this.range.endIndex-this.range.startIndex)/2)),o=Math.max(0,s-n),l=Math.min(this.options.count-1,s+n);return e>=o&&e<=l}return!0},this.measureElement=e=>{if(!e){this.elementsCache.forEach((o,l)=>{o.isConnected||(this.observer.unobserve(o),this.elementsCache.delete(l))});return}const t=this.indexFromElement(e),s=this.options.getItemKey(t),n=this.elementsCache.get(s);n!==e&&(n&&this.observer.unobserve(n),this.observer.observe(e),this.elementsCache.set(s,e)),(!this.isScrolling||this.scrollState)&&this.shouldMeasureDuringScroll(t)&&this.resizeItem(t,this.options.measureElement(e,void 0,this))},this.resizeItem=(e,t)=>{var s;const n=this.measurementsCache[e];if(!n)return;const o=this.itemSizeCache.get(n.key)??n.size,l=t-o;l!==0&&(((s=this.scrollState)==null?void 0:s.behavior)!=="smooth"&&(this.shouldAdjustScrollPositionOnItemSizeChange!==void 0?this.shouldAdjustScrollPositionOnItemSizeChange(n,l,this):n.start<this.getScrollOffset()+this.scrollAdjustments)&&this._scrollToOffset(this.getScrollOffset(),{adjustments:this.scrollAdjustments+=l,behavior:void 0}),this.pendingMeasuredCacheIndexes.push(n.index),this.itemSizeCache=new Map(this.itemSizeCache.set(n.key,t)),this.notify(!1))},this.getVirtualItems=Q(()=>[this.getVirtualIndexes(),this.getMeasurements()],(e,t)=>{const s=[];for(let n=0,o=e.length;n<o;n++){const l=e[n],r=t[l];s.push(r)}return s},{key:!1,debug:()=>this.options.debug}),this.getVirtualItemForOffset=e=>{const t=this.getMeasurements();if(t.length!==0)return ve(t[be(0,t.length-1,s=>ve(t[s]).start,e)])},this.getMaxScrollOffset=()=>{if(!this.scrollElement)return 0;if("scrollHeight"in this.scrollElement)return this.options.horizontal?this.scrollElement.scrollWidth-this.scrollElement.clientWidth:this.scrollElement.scrollHeight-this.scrollElement.clientHeight;{const e=this.scrollElement.document.documentElement;return this.options.horizontal?e.scrollWidth-this.scrollElement.innerWidth:e.scrollHeight-this.scrollElement.innerHeight}},this.getOffsetForAlignment=(e,t,s=0)=>{if(!this.scrollElement)return 0;const n=this.getSize(),o=this.getScrollOffset();t==="auto"&&(t=e>=o+n?"end":"start"),t==="center"?e+=(s-n)/2:t==="end"&&(e-=n);const l=this.getMaxScrollOffset();return Math.max(Math.min(l,e),0)},this.getOffsetForIndex=(e,t="auto")=>{e=Math.max(0,Math.min(e,this.options.count-1));const s=this.getSize(),n=this.getScrollOffset(),o=this.measurementsCache[e];if(!o)return;if(t==="auto")if(o.end>=n+s-this.options.scrollPaddingEnd)t="end";else if(o.start<=n+this.options.scrollPaddingStart)t="start";else return[n,t];if(t==="end"&&e===this.options.count-1)return[this.getMaxScrollOffset(),t];const l=t==="end"?o.end+this.options.scrollPaddingEnd:o.start-this.options.scrollPaddingStart;return[this.getOffsetForAlignment(l,t,o.size),t]},this.scrollToOffset=(e,{align:t="start",behavior:s="auto"}={})=>{const n=this.getOffsetForAlignment(e,t),o=this.now();this.scrollState={index:null,align:t,behavior:s,startedAt:o,lastTargetOffset:n,stableFrames:0},this._scrollToOffset(n,{adjustments:void 0,behavior:s}),this.scheduleScrollReconcile()},this.scrollToIndex=(e,{align:t="auto",behavior:s="auto"}={})=>{e=Math.max(0,Math.min(e,this.options.count-1));const n=this.getOffsetForIndex(e,t);if(!n)return;const[o,l]=n,r=this.now();this.scrollState={index:e,align:l,behavior:s,startedAt:r,lastTargetOffset:o,stableFrames:0},this._scrollToOffset(o,{adjustments:void 0,behavior:s}),this.scheduleScrollReconcile()},this.scrollBy=(e,{behavior:t="auto"}={})=>{const s=this.getScrollOffset()+e,n=this.now();this.scrollState={index:null,align:"start",behavior:t,startedAt:n,lastTargetOffset:s,stableFrames:0},this._scrollToOffset(s,{adjustments:void 0,behavior:t}),this.scheduleScrollReconcile()},this.getTotalSize=()=>{var e;const t=this.getMeasurements();let s;if(t.length===0)s=this.options.paddingStart;else if(this.options.lanes===1)s=((e=t[t.length-1])==null?void 0:e.end)??0;else{const n=Array(this.options.lanes).fill(null);let o=t.length-1;for(;o>=0&&n.some(l=>l===null);){const l=t[o];n[l.lane]===null&&(n[l.lane]=l.end),o--}s=Math.max(...n.filter(l=>l!==null))}return Math.max(s-this.options.scrollMargin+this.options.paddingEnd,0)},this._scrollToOffset=(e,{adjustments:t,behavior:s})=>{this.options.scrollToFn(e,{behavior:s,adjustments:t},this)},this.measure=()=>{this.itemSizeCache=new Map,this.laneAssignments=new Map,this.notify(!1)},this.setOptions(v)}scheduleScrollReconcile(){if(!this.targetWindow){this.scrollState=null;return}this.rafId==null&&(this.rafId=this.targetWindow.requestAnimationFrame(()=>{this.rafId=null,this.reconcileScroll()}))}reconcileScroll(){if(!this.scrollState||!this.scrollElement)return;if(this.now()-this.scrollState.startedAt>5e3){this.scrollState=null;return}const t=this.scrollState.index!=null?this.getOffsetForIndex(this.scrollState.index,this.scrollState.align):void 0,s=t?t[0]:this.scrollState.lastTargetOffset,n=1,o=s!==this.scrollState.lastTargetOffset;if(!o&&rt(s,this.getScrollOffset())){if(this.scrollState.stableFrames++,this.scrollState.stableFrames>=n){this.scrollState=null;return}}else this.scrollState.stableFrames=0,o&&(this.scrollState.lastTargetOffset=s,this.scrollState.behavior="auto",this._scrollToOffset(s,{adjustments:void 0,behavior:"auto"}));this.scheduleScrollReconcile()}}const be=(u,v,e,t)=>{for(;u<=v;){const s=(u+v)/2|0,n=e(s);if(n<t)u=s+1;else if(n>t)v=s-1;else return s}return u>0?u-1:0};function ft({measurements:u,outerSize:v,scrollOffset:e,lanes:t}){const s=u.length-1,n=r=>u[r].start;if(u.length<=t)return{startIndex:0,endIndex:s};let o=be(0,s,n,e),l=o;if(t===1)for(;l<s&&u[l].end<e+v;)l++;else if(t>1){const r=Array(t).fill(0);for(;l<s&&r.some(S=>S<e+v);){const S=u[l];r[S.lane]=S.end,l++}const O=Array(t).fill(e+v);for(;o>=0&&O.some(S=>S>=e);){const S=u[o];O[S.lane]=S.start,o--}o=Math.max(0,o-o%t),l=Math.min(s,l+(t-1-l%t))}return{startIndex:o,endIndex:l}}const mt={key:1,class:"fallback-list"},pt={__name:"VirtualMessageList",props:{messages:{type:Array,required:!0,default:()=>[]},estimateSize:{type:Number,default:120}},emits:["scroll-to-bottom","load-more"],setup(u,{expose:v,emit:e}){const t=u,s=e,n=N(null),o=N(null),l=N(0),r=k(()=>o.value?(l.value,o.value.getVirtualItems()):[]),O=()=>{if(n.value)try{o.value=new ht({count:t.messages.length,getScrollElement:()=>n.value,estimateSize:()=>t.estimateSize,overscan:5,scrollMargin:0,onChange:()=>{l.value++}}),B(()=>{o.value&&n.value&&(o.value.measure(),l.value++,n.value.scrollTop=1,setTimeout(()=>{n.value&&(n.value.scrollTop=0)},50))})}catch(h){console.error("[VirtualMessageList] init failed:",h)}},S=()=>{if(!n.value)return;o.value&&o.value.measure();const{scrollTop:h,scrollHeight:x,clientHeight:C}=n.value;h<100&&s("load-more"),h+C>=x-50&&s("scroll-to-bottom")},b=()=>{n.value&&requestAnimationFrame(()=>{n.value&&(n.value.scrollTop=n.value.scrollHeight)})},T=h=>{const x=t.messages.findIndex(C=>C.id===h);x!==-1&&o.value&&o.value.scrollToIndex(x,{align:"center"})};return Z(()=>t.messages.length,(h,x)=>{o.value?(o.value.setOptions({count:h,estimateSize:()=>t.estimateSize}),l.value++,h>x&&B(()=>b())):B(()=>{O(),o.value&&l.value++})}),Z(()=>t.messages,h=>{!o.value&&h.length>0?B(()=>O()):o.value&&(o.value.setOptions({count:h.length,estimateSize:()=>t.estimateSize,getScrollElement:()=>n.value,overscan:5,scrollMargin:0,onChange:()=>{l.value++}}),l.value++,B(()=>{o.value&&o.value.measure()}))},{deep:!0}),v({scrollToBottom:b,scrollToMessage:T}),ye(()=>{B(()=>{O(),t.messages.length>0&&b()})}),Ae(()=>{o.value&&(o.value=null)}),(h,x)=>(a(),m("div",{ref_key:"scrollContainer",ref:n,class:"virtual-message-list",onScroll:S},[o.value&&r.value.length>0?(a(),m("div",{key:0,style:ae({height:`${o.value.getTotalSize()}px`,width:"100%",position:"relative"})},[(a(!0),m(K,null,G(r.value,C=>(a(),m("div",{key:C.key,style:ae({position:"absolute",top:0,left:0,width:"100%",transform:`translateY(${C.start}px)`})},[he(h.$slots,"default",{message:u.messages[C.index],index:C.index},void 0)],4))),128))],4)):(a(),m("div",mt,[(a(!0),m(K,null,G(u.messages,(C,y)=>(a(),m("div",{key:C.id||y},[he(h.$slots,"default",{message:C,index:y},void 0)]))),128))]))],544))}},gt=ne(pt,[["__scopeId","data-v-3c34170a"]]),vt={class:"intent-confirmation-message"},yt={class:"confirmation-header"},_t={class:"header-icon"},bt={class:"header-text"},St={key:0},xt={key:1},kt={key:2},Ct={class:"understanding-content"},wt={key:0,class:"original-input"},It={class:"label"},$t={class:"value original-text"},Mt={key:1,class:"corrected-input"},Ot={class:"label"},zt={class:"value corrected-text"},Et={class:"intent-section"},At={class:"label"},Tt={class:"value"},Ft={key:2,class:"key-points-section"},Rt={class:"label"},Pt={class:"key-points-list"},qt={key:3,class:"correction-section"},jt={class:"label"},Dt={class:"value correction-text"},Lt={key:0,class:"streaming-indicator"},Nt={key:0,class:"streaming-tokens"},Wt={key:1,class:"action-buttons"},Bt={key:2,class:"correction-input-section"},Vt={class:"correction-actions"},Ut={__name:"IntentConfirmationMessage",props:{message:{type:Object,required:!0}},emits:["confirm","correct"],setup(u,{emit:v}){const e=u,t=v,s=N(!1),n=N(""),o=k(()=>e.message.metadata?.originalInput||""),l=k(()=>e.message.metadata?.understanding||{}),r=k(()=>l.value.correctedInput||o.value),O=k(()=>l.value.intent||"未识别"),S=k(()=>l.value.keyPoints||[]),b=k(()=>r.value!==o.value&&o.value.trim()!==""),T=k(()=>e.message.metadata?.status||"pending"),h=k(()=>T.value==="confirmed"),x=k(()=>T.value==="corrected"),C=k(()=>!!e.message.metadata?.streaming),y=k(()=>e.message.metadata?.streamingTokens||0),F=k(()=>e.message.metadata?.correction||null);function A(){t("confirm",{messageId:e.message.id,originalInput:o.value,understanding:l.value})}function j(){s.value=!0,n.value=r.value}function D(){n.value.trim()&&(t("correct",{messageId:e.message.id,originalInput:o.value,correction:n.value}),s.value=!1)}function W(){s.value=!1,n.value=""}return(w,P)=>{const U=q("a-button"),ie=q("a-textarea");return a(),m("div",vt,[d("div",yt,[d("div",_t,[h.value?(a(),z(_(Ue),{key:0,style:{color:"#52c41a"}})):x.value?(a(),z(_(He),{key:1,style:{color:"#faad14"}})):(a(),z(_(Qe),{key:2,style:{color:"#1890ff"}}))]),d("div",bt,[h.value?(a(),m("span",St,c(w.$t("chat.intent.confirmed")),1)):x.value?(a(),m("span",xt,c(w.$t("chat.intent.corrected")),1)):(a(),m("span",kt,c(u.message.content),1))])]),d("div",Ct,[b.value?(a(),m("div",wt,[d("div",It,c(w.$t("chat.intent.label.original")),1),d("div",$t,c(o.value),1)])):M("",!0),b.value?(a(),m("div",Mt,[d("div",Ot,c(w.$t("chat.intent.label.understood")),1),d("div",zt,c(r.value),1)])):M("",!0),d("div",Et,[d("div",At,"🎯 "+c(w.$t("chat.intent.label.intent")),1),d("div",Tt,c(O.value),1)]),S.value&&S.value.length>0?(a(),m("div",Ft,[d("div",Rt,"📝 "+c(w.$t("chat.intent.label.keyPoints")),1),d("ul",Pt,[(a(!0),m(K,null,G(S.value,(J,H)=>(a(),m("li",{key:H},c(J),1))),128))])])):M("",!0),F.value?(a(),m("div",qt,[d("div",jt,"📝 "+c(w.$t("chat.intent.label.correction")),1),d("div",Dt,c(F.value),1)])):M("",!0)]),C.value?(a(),m("div",Lt,[g(_(_e),{spin:""}),d("span",null,c(w.$t("chat.intent.status.understanding")),1),y.value>0?(a(),m("span",Nt,"· "+c(y.value)+" tokens",1)):M("",!0)])):!h.value&&!x.value?(a(),m("div",Wt,[g(U,{type:"primary",onClick:A},{default:I(()=>[g(_(fe)),E(" "+c(w.$t("chat.intent.action.confirm")),1)]),_:1}),g(U,{onClick:j},{default:I(()=>[g(_(Ke)),E(" "+c(w.$t("chat.intent.action.correct")),1)]),_:1})])):M("",!0),s.value?(a(),m("div",Bt,[g(ie,{value:n.value,"onUpdate:value":P[0]||(P[0]=J=>n.value=J),placeholder:w.$t("chat.intent.action.correctPlaceholder"),"auto-size":{minRows:2,maxRows:6}},null,8,["value","placeholder"]),d("div",Vt,[g(U,{type:"primary",size:"small",onClick:D},{default:I(()=>[g(_(fe)),E(" "+c(w.$t("chat.intent.action.submitCorrection")),1)]),_:1}),g(U,{size:"small",onClick:W},{default:I(()=>[g(_(Ge)),E(" "+c(w.$t("chat.intent.action.cancelCorrection")),1)]),_:1})])])):M("",!0)])}}},Ht=ne(Ut,[["__scopeId","data-v-ded139e5"]]),Qt={style:{display:"flex",height:"calc(100vh - 56px - 48px)",gap:"16px"}},Kt={style:{width:"240px","flex-shrink":"0",background:"var(--bg-card)","border-radius":"8px",border:"1px solid var(--border-color)",display:"flex","flex-direction":"column",overflow:"hidden"}},Gt={key:0,style:{padding:"6px 12px 4px","font-size":"11px",color:"#1677ff",background:"rgba(22,119,255,.07)","border-bottom":"1px solid rgba(22,119,255,.15)",display:"flex","align-items":"center",gap:"4px"}},Jt=["title"],Xt={key:1,style:{padding:"6px 12px 4px","font-size":"11px",color:"#722ed1",background:"rgba(114,46,209,.07)","border-bottom":"1px solid rgba(114,46,209,.15)",display:"flex","align-items":"center",gap:"4px"}},Yt={style:{padding:"10px 12px","border-bottom":"1px solid var(--border-color)",display:"flex",gap:"8px"}},Zt={style:{flex:"1","overflow-y":"auto",padding:"8px"}},es=["onClick"],ts={class:"session-icon"},ss={class:"session-info"},ns={class:"session-title"},is={class:"session-meta"},os={key:0,style:{"text-align":"center",color:"var(--text-muted)",padding:"24px 0","font-size":"13px"}},ls={style:{flex:"1",background:"var(--bg-card)","border-radius":"8px",border:"1px solid var(--border-color)",display:"flex","flex-direction":"column",overflow:"hidden"}},as={key:0,style:{flex:"1",display:"flex","flex-direction":"column","align-items":"center","justify-content":"center",color:"var(--text-muted)"}},rs={style:{"font-size":"16px","margin-bottom":"8px",color:"#777"}},cs={style:{"font-size":"13px",color:"var(--text-muted)"}},us={style:{"margin-top":"24px",display:"flex",gap:"12px"}},ds={key:1,class:"chat-header"},hs={class:"chat-intent-toggle"},fs={class:"chat-intent-toggle-label"},ms={key:2,class:"chat-area-body"},ps={key:0,class:"chat-empty-prompts"},gs={class:"empty-title"},vs={class:"empty-hint"},ys={class:"quick-prompts"},_s={key:1,class:"system-banner"},bs={key:2,class:"tool-msg"},Ss={key:0,class:"tool-detail"},xs={class:"tool-detail__pre tool-detail__pre--input"},ks={key:0,class:"tool-detail__result"},Cs={class:"tool-detail__pre tool-detail__pre--result"},ws={class:"msg-body"},Is={class:"msg-meta-row"},$s={class:"msg-role"},Ms={class:"msg-time"},Os={key:0,class:"msg-tokens"},zs={key:0,class:"bubble user"},Es={key:2,class:"question-card"},As={class:"question-text"},Ts={key:0,style:{display:"flex","flex-wrap":"wrap",gap:"8px","margin-top":"10px"}},Fs={key:3,style:{padding:"16px","border-top":"1px solid var(--border-color)"}},Rs={style:{display:"flex",gap:"8px","align-items":"flex-end"}},Ps={style:{"margin-bottom":"8px","font-size":"12px",color:"var(--text-muted)"}},qs={style:{"margin-top":"8px"}},js={__name:"Chat",setup(u){const{t:v,tm:e,rt:t}=je(),s=Re()||null,n=Pe()||null,o=window.__CC_CONFIG__||{},l=k(()=>o.mode==="project"),r=De(),O=new Set,S=N(null),b=N(""),T=k(()=>r.contextMode);function h(i){r.setContextMode(i)}const x=k(()=>r.intentEnabled);function C(i){r.setIntentEnabled(i)}const y=k(()=>r.currentSessionId),F=k(()=>y.value?r.getMessages(y.value):[]),A=k(()=>{const i=r.streaming[y.value];return i?.active?i.content:null}),j=k(()=>{const i=F.value;return A.value?[...i,{role:"assistant",content:A.value,_streaming:!0,timestamp:Date.now()}]:i}),D=k(()=>r.pendingQuestion[y.value]),W=k(()=>r.getIsLoading(y.value));function w(i){if(!i)return"";const p=new Date(i);return`${String(p.getHours()).padStart(2,"0")}:${String(p.getMinutes()).padStart(2,"0")}`}const P=qe(new Set);function U(i){P.has(i)?P.delete(i):P.add(i)}function ie(i,p){return{id:`tool-${p}`,label:i.tool||v("chat.tool.unknownTool"),detail:J(i),status:i.status==="done"?"done":"running"}}function J(i){if(i.status==="running"){const R=i.input&&typeof i.input=="object"?Object.keys(i.input):[];return R.length?v("chat.tool.argsPreview",{n:R.length,key:R[0]}):v("chat.tool.running")}if(i.result==null)return v("chat.tool.done");const $=(typeof i.result=="string"?i.result:JSON.stringify(i.result)).split(`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{_ as h}from"./index-
|
|
1
|
+
import{_ as h}from"./index-CzoKAiyT.js";import{K as f,L as d,M as b,R as s,P as n,Q as y,N as S,O as C,S as x,Z as w,f as a}from"./vendor-BXcBOG8b.js";import"./icons-DlxlFL4g.js";const B={class:"bubble"},N={class:"meta"},k={class:"actor"},$={class:"time"},M={class:"body"},q={__name:"ChatBubbleRenderer",props:{event:{type:Object,required:!0}},setup(r){const t=r,i=a(()=>{const e=t.event.content||{};return e.text||e.body||e.message||e.title||JSON.stringify(e).slice(0,200)}),l=a(()=>{const e=t.event.content||{};return e.from||e.sender||e.senderName||t.event.actor||"(unknown)"}),u=a(()=>{const e=(t.event.actor||"").toLowerCase();return e.includes("self")||e==="me"||e.endsWith("_self")}),m=a(()=>{const e=t.event.source.adapter||"";return e.startsWith("messaging-qq")?"magenta":e==="wechat"?"green":"blue"}),p=a(()=>{if(!t.event.occurredAt)return"";try{const e=new Date(t.event.occurredAt),c=e.getFullYear(),o=String(e.getMonth()+1).padStart(2,"0"),_=String(e.getDate()).padStart(2,"0"),v=String(e.getHours()).padStart(2,"0"),g=String(e.getMinutes()).padStart(2,"0");return`${c}-${o}-${_} ${v}:${g}`}catch{return""}});return(e,c)=>{const o=f("a-tag");return d(),b("div",{class:w(["chat-row",{mine:u.value}])},[s("div",B,[s("div",N,[s("span",k,n(l.value),1),s("span",$,n(p.value),1)]),s("div",M,n(i.value),1),r.event.source.adapter?(d(),y(o,{key:0,class:"src",color:m.value},{default:S(()=>[C(n(r.event.source.adapter),1)]),_:1},8,["color"])):x("",!0)])],2)}}},R=h(q,[["__scopeId","data-v-eb2be309"]]);export{R as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{h as o,i as E,f as V,P as W}from"./index-
|
|
1
|
+
import{h as o,i as E,f as V,P as W}from"./index-CzoKAiyT.js";import{i as F}from"./initDefaultProps-BlhbrsQk.js";import{d as I,r as f,w as M,c as h}from"./vendor-BXcBOG8b.js";var R=function(t,l){var c={};for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&l.indexOf(n)<0&&(c[n]=t[n]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var a=0,n=Object.getOwnPropertySymbols(t);a<n.length;a++)l.indexOf(n[a])<0&&Object.prototype.propertyIsEnumerable.call(t,n[a])&&(c[n[a]]=t[n[a]]);return c};const T={prefixCls:String,name:String,id:String,type:String,defaultChecked:{type:[Boolean,Number],default:void 0},checked:{type:[Boolean,Number],default:void 0},disabled:Boolean,tabindex:{type:[Number,String]},readonly:Boolean,autofocus:Boolean,value:W.any,required:Boolean},J=I({compatConfig:{MODE:3},name:"Checkbox",inheritAttrs:!1,props:F(T,{prefixCls:"rc-checkbox",type:"checkbox",defaultChecked:!1}),emits:["click","change"],setup(t,l){let{attrs:c,emit:n,expose:a}=l;const d=f(t.checked===void 0?t.defaultChecked:t.checked),s=f();M(()=>t.checked,()=>{d.value=t.checked}),a({focus(){var e;(e=s.value)===null||e===void 0||e.focus()},blur(){var e;(e=s.value)===null||e===void 0||e.blur()}});const i=f(),y=e=>{if(t.disabled)return;t.checked===void 0&&(d.value=e.target.checked),e.shiftKey=i.value;const u={target:o(o({},t),{checked:e.target.checked}),stopPropagation(){e.stopPropagation()},preventDefault(){e.preventDefault()},nativeEvent:e};t.checked!==void 0&&(s.value.checked=!!t.checked),n("change",u),i.value=!1},k=e=>{n("click",e),i.value=e.shiftKey};return()=>{const{prefixCls:e,name:u,id:m,type:g,disabled:b,readonly:x,tabindex:C,autofocus:O,value:P,required:S}=t,_=R(t,["prefixCls","name","id","type","disabled","readonly","tabindex","autofocus","value","required"]),{class:j,onFocus:B,onBlur:w,onKeydown:K,onKeypress:N,onKeyup:D}=c,v=o(o({},_),c),$=Object.keys(v).reduce((p,r)=>((r.startsWith("data-")||r.startsWith("aria-")||r==="role")&&(p[r]=v[r]),p),{}),q=E(e,j,{[`${e}-checked`]:d.value,[`${e}-disabled`]:b}),A=o(o({name:u,id:m,type:g,readonly:x,disabled:b,tabindex:C,class:`${e}-input`,checked:!!d.value,autofocus:O,value:P},$),{onChange:y,onClick:k,onFocus:B,onBlur:w,onKeydown:K,onKeypress:N,onKeyup:D,required:S});return h("span",{class:q},[h("input",V({ref:s},A),null),h("span",{class:`${e}-inner`},null)])}}});export{J as V};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as M,_ as st,u as it,b as rt,E as ut,d as A}from"./index-Cs66y4oC.js";import{R as dt,Q as ye,at as ct,s as ze,a9 as ft,an as Ae,a_ as Fe,G as pt,f as gt}from"./icons-DlxlFL4g.js";import{o as mt,M as c,R as v,P as i,c as t,N as a,K as g,r as w,L as r,O as f,u as _,F as P,Y as W,Q as k,_ as je,S as p,f as Y,a as _e}from"./vendor-BXcBOG8b.js";const ne=Object.freeze(["react","vue","express","fastapi","spring_boot"]),se=Object.freeze(["critical","high","medium","low","info"]);function C(l,u=0){return typeof l=="number"&&Number.isFinite(l)?l:u}function Pe(l,u=null){if(l==null)return u;if(typeof l!="string")return l;try{return JSON.parse(l)}catch{return u}}function vt(l,u=0){if(!l||typeof l!="object")return null;const n=l.id||"";return n?{key:n,id:n,prompt:String(l.prompt||""),language:l.language??"",framework:l.framework??"",generatedCode:l.generated_code??l.generatedCode??"",fileCount:C(l.file_count??l.fileCount,0),tokenCount:C(l.token_count??l.tokenCount,0),metadata:l.metadata??null,createdAt:l.created_at??l.createdAt??null,_idx:u}:null}function yt(l){const u=M(l);return Array.isArray(u)?u.map(vt).filter(Boolean):[]}function _t(l,u=0){return!l||typeof l!="object"?null:{key:u,rule:String(l.rule||""),severity:String(l.severity||"info").toLowerCase(),match:String(l.match||""),pattern:String(l.pattern||"")}}function bt(l,u=0){if(!l||typeof l!="object")return null;const n=l.id||"";if(!n)return null;const R=Pe(l.severity_summary??l.severitySummary,null)??l.severity_summary??l.severitySummary,S={};for(const E of se)S[E]=0;if(R&&typeof R=="object"&&!Array.isArray(R))for(const[E,J]of Object.entries(R))typeof J=="number"&&Number.isFinite(J)&&(S[E]=J);const L=Pe(l.issues_detail??l.issuesDetail,null)??l.issues_detail??l.issuesDetail,N=Array.isArray(L)?L.map(_t).filter(Boolean):[];return{key:n,id:n,generationId:l.generation_id??l.generationId??"",codeHash:String(l.code_hash??l.codeHash??""),language:l.language??"",issuesFound:C(l.issues_found??l.issuesFound,0),securityIssues:C(l.security_issues??l.securityIssues,0),severitySummary:S,issuesDetail:N,reviewedAt:l.reviewed_at??l.reviewedAt??null,_idx:u}}function kt(l){const u=M(l);return Array.isArray(u)?u.map(bt).filter(Boolean):[]}function wt(l){const u={};for(const L of se)u[L]=0;const n=M(l);if(!n||typeof n!="object"||Array.isArray(n))return{ok:!1,reviewId:null,reason:"",issuesFound:0,securityIssues:0,severitySummary:u};const R=!!n.reviewId,S={...u};if(n.severitySummary&&typeof n.severitySummary=="object"&&!Array.isArray(n.severitySummary))for(const[L,N]of Object.entries(n.severitySummary))typeof N=="number"&&Number.isFinite(N)&&(S[L]=N);return{ok:R,reviewId:n.reviewId?String(n.reviewId):null,reason:n.reason?String(n.reason):"",issuesFound:C(n.issuesFound,0),securityIssues:C(n.securityIssues,0),severitySummary:S}}function ht(l,u=0){if(!l||typeof l!="object")return null;const n=l.id||"";return n?{key:n,id:n,template:String(l.template||""),projectName:l.project_name??l.projectName??"",options:l.options??null,filesGenerated:C(l.files_generated??l.filesGenerated,0),outputPath:l.output_path??l.outputPath??"",createdAt:l.created_at??l.createdAt??null,_idx:u}:null}function $t(l){const u=M(l);return Array.isArray(u)?u.map(ht).filter(Boolean):[]}const St={generations:{total:0,totalTokens:0,totalFiles:0,uniqueLanguages:0},reviews:{total:0,totalIssues:0,totalSecurityIssues:0,avgIssuesPerReview:0},scaffolds:{total:0,byTemplate:{}}};function Ct(l){const u=JSON.parse(JSON.stringify(St));for(const R of ne)u.scaffolds.byTemplate[R]=0;const n=M(l);if(!n||typeof n!="object"||Array.isArray(n))return u;if(n.generations&&typeof n.generations=="object"&&(u.generations.total=C(n.generations.total,0),u.generations.totalTokens=C(n.generations.totalTokens,0),u.generations.totalFiles=C(n.generations.totalFiles,0),u.generations.uniqueLanguages=C(n.generations.uniqueLanguages,0)),n.reviews&&typeof n.reviews=="object"&&(u.reviews.total=C(n.reviews.total,0),u.reviews.totalIssues=C(n.reviews.totalIssues,0),u.reviews.totalSecurityIssues=C(n.reviews.totalSecurityIssues,0),u.reviews.avgIssuesPerReview=C(n.reviews.avgIssuesPerReview,0)),n.scaffolds&&typeof n.scaffolds=="object"&&(u.scaffolds.total=C(n.scaffolds.total,0),n.scaffolds.byTemplate&&typeof n.scaffolds.byTemplate=="object"))for(const[R,S]of Object.entries(n.scaffolds.byTemplate))typeof S=="number"&&Number.isFinite(S)&&(u.scaffolds.byTemplate[R]=S);return u}function Re(l){const u=M(l);if(!u||typeof u!="object"||Array.isArray(u))return{ok:!1,id:null,reason:""};const n=u.generationId||u.scaffoldId||u.reviewId||null;return{ok:!!n,id:n?String(n):null,reason:u.reason?String(u.reason):""}}function X(l){if(l==null||l==="")return"—";const u=typeof l=="number"?new Date(l):new Date(String(l));return isNaN(u.getTime())?String(l):u.toLocaleString("zh-CN",{hour12:!1})}const xt={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},It={class:"page-title"},zt={class:"page-sub"},At={class:"tmpl-count"},Ft={class:"filter-bar"},jt={style:{color:"var(--text-primary)","font-weight":"500"}},Pt={style:{color:"var(--text-muted)","font-size":"11px","font-family":"monospace","margin-top":"2px"}},Rt={key:1,style:{color:"var(--text-muted)"}},Lt={key:1,style:{color:"var(--text-muted)"}},Tt={key:3,style:{color:"var(--text-secondary)"}},Nt={key:4,style:{color:"var(--text-secondary)","font-family":"monospace","font-size":"12px"}},Ut={key:5,style:{color:"var(--text-secondary)","font-size":"11px"}},Ot={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},Gt={style:{color:"var(--text-primary)","font-family":"monospace","font-size":"12px"}},Dt={style:{color:"var(--text-muted)","font-size":"11px","font-family":"monospace","margin-top":"2px"}},Et={key:1,style:{color:"var(--text-muted)"}},Jt={key:4,class:"sev-mini"},Bt={key:0,style:{color:"#ff4d4f"}},Mt={key:1,style:{color:"#fa8c16"}},qt={key:2,style:{color:"#faad14"}},Ht={key:3,style:{color:"#888"}},Vt={key:4,style:{color:"#1677ff"}},Kt={key:5,style:{color:"#52c41a"}},Qt={key:5,style:{color:"var(--text-secondary)","font-size":"11px"}},Wt={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},Yt={class:"filter-bar"},Xt={style:{color:"var(--text-primary)","font-weight":"500"}},Zt={style:{color:"var(--text-muted)","font-size":"11px","font-family":"monospace","margin-top":"2px"}},ea={key:2,style:{color:"var(--text-secondary)"}},ta={key:0,style:{color:"var(--text-secondary)","font-family":"monospace","font-size":"11px"}},aa={key:1,style:{color:"var(--text-muted)"}},oa={key:4,style:{color:"var(--text-secondary)","font-size":"11px"}},la={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},na={style:{"padding-top":"8px"}},sa={key:1},ia={style:{color:"var(--text-primary)","font-size":"12px",margin:"12px 0 6px"}},ra={key:0,style:{"padding-top":"8px"}},ua={style:{"font-family":"monospace","font-size":"12px"}},da={key:1,style:{color:"var(--text-muted)"}},ca={key:1,style:{color:"var(--text-muted)"}},fa={class:"code-pre"},pa={class:"code-pre"},ga={key:0,style:{"padding-top":"8px"}},ma={style:{"font-family":"monospace","font-size":"12px"}},va={style:{"font-family":"monospace","font-size":"12px"}},ya={style:{"font-family":"monospace","font-size":"12px"}},_a={key:1,style:{color:"var(--text-muted)"}},ba={style:{color:"var(--text-primary)","font-size":"13px",margin:"16px 0 8px"}},ka={key:0,style:{color:"var(--text-primary)","font-size":"13px",margin:"16px 0 8px"}},wa={style:{"margin-left":"8px","font-family":"monospace","font-size":"12px"}},ha={style:{"margin-left":"8px",padding:"1px 6px",background:"var(--bg-base)","border-radius":"3px","font-size":"11px"}},$a={__name:"Codegen",setup(l){const u=it(),{t:n}=rt(),R=ut.PRESENTED_IMAGE_SIMPLE,S=w(!1),L=w(!1),N=w(!1),E=w(!1),J=w([]),be=w([]),ie=w([]),O=w({generations:{total:0,totalTokens:0,totalFiles:0,uniqueLanguages:0},reviews:{total:0,totalIssues:0,totalSecurityIssues:0,avgIssuesPerReview:0},scaffolds:{total:0,byTemplate:{}}}),ke=w("generations"),q=w(""),H=w(""),V=w(""),Z=w(!1),ee=w(!1),te=w(!1),re=w(!1),ue=w(!1),m=_e({prompt:"",language:"",framework:"",code:"",files:0,tokens:0}),x=_e({generationId:"",language:"",code:""}),y=_e({template:"react",projectName:"",optionsJson:"",files:0,outputPath:""}),h=w(null),F=w(null),$=w(null),Le=Y(()=>[{title:n("codegen.generationCols.prompt"),key:"prompt"},{title:n("codegen.generationCols.language"),key:"language",width:"110px"},{title:n("codegen.generationCols.framework"),key:"framework",width:"110px"},{title:n("codegen.generationCols.fileCount"),key:"fileCount",width:"70px"},{title:n("codegen.generationCols.tokenCount"),key:"tokenCount",width:"110px"},{title:n("codegen.generationCols.createdAt"),key:"createdAt",width:"160px"},{title:n("codegen.generationCols.action"),key:"action",width:"140px"}]),Te=Y(()=>[{title:n("codegen.reviewCols.codeHash"),key:"codeHash",width:"180px"},{title:n("codegen.reviewCols.language"),key:"language",width:"110px"},{title:n("codegen.reviewCols.issuesFound"),key:"issuesFound",width:"90px"},{title:n("codegen.reviewCols.securityIssues"),key:"securityIssues",width:"90px"},{title:n("codegen.reviewCols.severityBreak"),key:"severityBreak"},{title:n("codegen.reviewCols.reviewedAt"),key:"reviewedAt",width:"160px"},{title:n("codegen.reviewCols.action"),key:"action",width:"90px"}]),Ne=Y(()=>[{title:n("codegen.scaffoldCols.projectName"),key:"projectName"},{title:n("codegen.scaffoldCols.template"),key:"template",width:"120px"},{title:n("codegen.scaffoldCols.filesGenerated"),key:"filesGenerated",width:"90px"},{title:n("codegen.scaffoldCols.outputPath"),key:"outputPath",width:"300px"},{title:n("codegen.scaffoldCols.createdAt"),key:"createdAt",width:"160px"}]),Ue=Y(()=>{let e=J.value;if(q.value.trim()){const s=q.value.trim().toLowerCase();e=e.filter(b=>(b.language||"").toLowerCase().includes(s))}if(H.value.trim()){const s=H.value.trim().toLowerCase();e=e.filter(b=>(b.framework||"").toLowerCase().includes(s))}return e}),Oe=Y(()=>V.value?ie.value.filter(e=>e.template===V.value):ie.value);function we(e){return{react:"cyan",vue:"green",express:"gold",fastapi:"magenta",spring_boot:"red"}[e]||"default"}function Ge(e){return{react:"#13c2c2",vue:"#52c41a",express:"#faad14",fastapi:"#eb2f96",spring_boot:"#ff4d4f"}[e]||"#888"}function de(e){const s=`codegen.severityLabels.${e}`,b=n(s);return b===s?e:b}function ce(e){return{critical:"red",high:"orange",medium:"gold",low:"default",info:"blue"}[e]||"default"}function De(e){return{critical:"#ff4d4f",high:"#fa8c16",medium:"#faad14",low:"#888",info:"#1677ff"}[e]||"#888"}function Ee(e,s){return s?Math.round(e/s*100):0}function ae(e,s){return e?e.length<=s?e:e.slice(0,s)+"…":""}function T(e){return`"${String(e).replace(/"/g,'\\"')}"`}async function K(){S.value=!0;try{const[e,s,b,oe]=await Promise.all([u.execute("codegen list --limit 200 --json",1e4).catch(()=>({output:""})),u.execute("codegen reviews --limit 200 --json",1e4).catch(()=>({output:""})),u.execute("codegen scaffolds --limit 200 --json",1e4).catch(()=>({output:""})),u.execute("codegen stats --json",8e3).catch(()=>({output:""}))]);J.value=yt(e.output),be.value=kt(s.output),ie.value=$t(b.output),O.value=Ct(oe.output)}catch(e){A.error(n("codegen.msg.loadFailed")+": "+(e?.message||e))}finally{S.value=!1}}async function Je(){if(!m.prompt.trim()){A.warning(n("codegen.msg.promptEmpty"));return}L.value=!0;try{const e=[`codegen generate -p ${T(m.prompt.trim())}`];m.language.trim()&&e.push(`-l ${T(m.language.trim())}`),m.framework.trim()&&e.push(`-f ${T(m.framework.trim())}`),m.code.trim()&&e.push(`--code ${T(m.code.trim())}`),m.files>0&&e.push(`--files ${m.files}`),m.tokens>0&&e.push(`--tokens ${m.tokens}`),e.push("--json");const{output:s}=await u.execute(e.join(" "),1e4),b=Re(s);if(!b.ok){A.error(n("codegen.msg.generateFailed")+": "+(b.reason||s.slice(0,120)));return}A.success(n("codegen.msg.generateSuccess",{id:b.id?.slice(0,8)})),Z.value=!1,he(),await K()}catch(e){A.error(n("codegen.msg.generateFailed")+": "+(e?.message||e))}finally{L.value=!1}}async function Be(){if(!x.code.trim()){A.warning(n("codegen.msg.codeEmpty"));return}N.value=!0,h.value=null;try{const e=[`codegen review -c ${T(x.code)}`];x.language.trim()&&e.push(`-l ${T(x.language.trim())}`),x.generationId.trim()&&e.push(`-g ${T(x.generationId.trim())}`),e.push("--json");const{output:s}=await u.execute(e.join(" "),1e4);h.value=wt(s),!h.value.ok&&h.value.reason?A.error(n("codegen.msg.reviewFailed")+": "+h.value.reason):h.value.ok?(A.success(n("codegen.msg.reviewSuccess",{n:h.value.issuesFound,sec:h.value.securityIssues})),await K()):A.error(n("codegen.msg.reviewFailed")+": "+s.slice(0,120))}catch(e){A.error(n("codegen.msg.reviewFailed")+": "+(e?.message||e))}finally{N.value=!1}}async function Me(e){x.generationId=e.id,x.language=e.language||"",x.code=e.generatedCode||"",h.value=null,ee.value=!0}async function qe(){if(!y.projectName.trim()){A.warning(n("codegen.msg.projectEmpty"));return}if(y.optionsJson.trim())try{JSON.parse(y.optionsJson)}catch{A.warning(n("codegen.msg.optionsBadJson"));return}E.value=!0;try{const e=[`codegen scaffold -t ${y.template}`,`-n ${T(y.projectName.trim())}`];y.optionsJson.trim()&&e.push(`-o ${T(y.optionsJson.trim())}`),y.files>0&&e.push(`--files ${y.files}`),y.outputPath.trim()&&e.push(`--output ${T(y.outputPath.trim())}`),e.push("--json");const{output:s}=await u.execute(e.join(" "),1e4),b=Re(s);if(!b.ok){A.error(n("codegen.msg.scaffoldFailed")+": "+(b.reason||s.slice(0,120)));return}A.success(n("codegen.msg.scaffoldSuccess",{id:b.id?.slice(0,8)})),te.value=!1,$e(),await K()}catch(e){A.error(n("codegen.msg.scaffoldFailed")+": "+(e?.message||e))}finally{E.value=!1}}function He(e){F.value=e,re.value=!0}function Ve(e){$.value=e,ue.value=!0}function he(){m.prompt="",m.language="",m.framework="",m.code="",m.files=0,m.tokens=0}function $e(){y.template="react",y.projectName="",y.optionsJson="",y.files=0,y.outputPath=""}return mt(K),(e,s)=>{const b=g("a-button"),oe=g("a-menu-item"),Ke=g("a-menu"),Qe=g("a-dropdown"),Se=g("a-space"),G=g("a-statistic"),B=g("a-card"),U=g("a-col"),fe=g("a-row"),j=g("a-tag"),D=g("a-input"),pe=g("a-table"),ge=g("a-tab-pane"),Ce=g("a-radio-button"),We=g("a-radio-group"),Ye=g("a-tabs"),le=g("a-textarea"),I=g("a-form-item"),me=g("a-input-number"),ve=g("a-form"),Q=g("a-modal"),Xe=g("a-divider"),Ze=g("a-empty"),et=g("a-alert"),tt=g("a-select-option"),at=g("a-select"),z=g("a-descriptions-item"),xe=g("a-descriptions"),ot=g("a-progress"),lt=g("a-list-item"),nt=g("a-list");return r(),c("div",null,[v("div",xt,[v("div",null,[v("h2",It,i(e.$t("codegen.title")),1),v("p",zt,i(e.$t("codegen.subtitle")),1)]),t(Se,null,{default:a(()=>[t(b,{loading:S.value,onClick:K},{icon:a(()=>[t(_(dt))]),default:a(()=>[f(" "+i(e.$t("codegen.refresh")),1)]),_:1},8,["loading"]),t(b,{onClick:s[0]||(s[0]=o=>ee.value=!0)},{icon:a(()=>[t(_(ye))]),default:a(()=>[f(" "+i(e.$t("codegen.review")),1)]),_:1}),t(Qe,null,{overlay:a(()=>[t(Ke,null,{default:a(()=>[t(oe,{key:"generate",onClick:s[1]||(s[1]=o=>Z.value=!0)},{default:a(()=>[f(i(e.$t("codegen.actions.generate")),1)]),_:1}),t(oe,{key:"scaffold",onClick:s[2]||(s[2]=o=>te.value=!0)},{default:a(()=>[f(i(e.$t("codegen.actions.scaffold")),1)]),_:1})]),_:1})]),default:a(()=>[t(b,{type:"primary"},{icon:a(()=>[t(_(ct))]),default:a(()=>[f(" "+i(e.$t("codegen.newDropdown")),1)]),_:1})]),_:1})]),_:1})]),t(fe,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:a(()=>[t(U,{xs:12,sm:8,lg:5},{default:a(()=>[t(B,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[t(G,{title:e.$t("codegen.stats.generations"),value:O.value.generations.total,"value-style":{color:"#1677ff",fontSize:"20px"}},{prefix:a(()=>[t(_(ze))]),_:1},8,["title","value"])]),_:1})]),_:1}),t(U,{xs:12,sm:8,lg:5},{default:a(()=>[t(B,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[t(G,{title:e.$t("codegen.stats.reviews"),value:O.value.reviews.total,"value-style":{color:"#13c2c2",fontSize:"20px"}},{prefix:a(()=>[t(_(ft))]),_:1},8,["title","value"])]),_:1})]),_:1}),t(U,{xs:12,sm:8,lg:5},{default:a(()=>[t(B,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[t(G,{title:e.$t("codegen.stats.securityIssues"),value:O.value.reviews.totalSecurityIssues,"value-style":{color:O.value.reviews.totalSecurityIssues>0?"#ff4d4f":"#52c41a",fontSize:"20px"}},{prefix:a(()=>[t(_(Ae))]),_:1},8,["title","value","value-style"])]),_:1})]),_:1}),t(U,{xs:12,sm:8,lg:5},{default:a(()=>[t(B,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[t(G,{title:e.$t("codegen.stats.scaffolds"),value:O.value.scaffolds.total,"value-style":{color:"#722ed1",fontSize:"20px"}},{prefix:a(()=>[t(_(Fe))]),_:1},8,["title","value"])]),_:1})]),_:1}),t(U,{xs:24,sm:8,lg:4},{default:a(()=>[t(B,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[t(G,{title:e.$t("codegen.stats.languages"),value:O.value.generations.uniqueLanguages,"value-style":{color:"#faad14",fontSize:"20px"}},{prefix:a(()=>[t(_(pt))]),_:1},8,["title","value"])]),_:1})]),_:1})]),_:1}),t(B,{title:e.$t("codegen.templatesCard"),size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"20px"},"body-style":{padding:"12px 16px"}},{default:a(()=>[t(fe,{gutter:[12,12]},{default:a(()=>[(r(!0),c(P,null,W(_(ne),o=>(r(),k(U,{key:o,xs:12,sm:8,lg:4},{default:a(()=>[v("div",{class:"tmpl-pill",style:je({borderLeftColor:Ge(o)})},[t(j,{color:we(o),style:{"font-family":"monospace"}},{default:a(()=>[f(i(o),1)]),_:2},1032,["color"]),v("span",At,i(O.value.scaffolds.byTemplate[o]||0),1)],4)]),_:2},1024))),128))]),_:1})]),_:1},8,["title"]),t(Ye,{activeKey:ke.value,"onUpdate:activeKey":s[6]||(s[6]=o=>ke.value=o),class:"codegen-tabs"},{default:a(()=>[t(ge,{key:"generations",tab:e.$t("codegen.tabs.generations")},{default:a(()=>[v("div",Ft,[t(D,{value:q.value,"onUpdate:value":s[3]||(s[3]=o=>q.value=o),placeholder:e.$t("codegen.filter.languagePlaceholder"),"allow-clear":"",size:"small",style:{"max-width":"180px"}},null,8,["value","placeholder"]),t(D,{value:H.value,"onUpdate:value":s[4]||(s[4]=o=>H.value=o),placeholder:e.$t("codegen.filter.frameworkPlaceholder"),"allow-clear":"",size:"small",style:{"max-width":"180px"}},null,8,["value","placeholder"])]),t(pe,{columns:Le.value,"data-source":Ue.value,pagination:{pageSize:20,showTotal:o=>e.$t("codegen.table.totalSuffix",{n:o})},size:"small",loading:S.value,style:{background:"var(--bg-card)"}},{bodyCell:a(({column:o,record:d})=>[o.key==="prompt"?(r(),c(P,{key:0},[v("span",jt,i(ae(d.prompt,60)),1),v("div",Pt,i(d.id.slice(0,16)),1)],64)):p("",!0),o.key==="language"?(r(),c(P,{key:1},[d.language?(r(),k(j,{key:0,color:"blue",style:{"font-family":"monospace"}},{default:a(()=>[f(i(d.language),1)]),_:2},1024)):(r(),c("span",Rt,"—"))],64)):p("",!0),o.key==="framework"?(r(),c(P,{key:2},[d.framework?(r(),k(j,{key:0,color:"purple",style:{"font-family":"monospace"}},{default:a(()=>[f(i(d.framework),1)]),_:2},1024)):(r(),c("span",Lt,"—"))],64)):p("",!0),o.key==="fileCount"?(r(),c("span",Tt,i(d.fileCount),1)):p("",!0),o.key==="tokenCount"?(r(),c("span",Nt,i(d.tokenCount),1)):p("",!0),o.key==="createdAt"?(r(),c("span",Ut,i(_(X)(d.createdAt)),1)):p("",!0),o.key==="action"?(r(),c(P,{key:6},[t(b,{size:"small",type:"link",onClick:Ie=>He(d)},{default:a(()=>[f(i(e.$t("codegen.table.actionDetails")),1)]),_:1},8,["onClick"]),d.generatedCode?(r(),k(b,{key:0,size:"small",type:"link",onClick:Ie=>Me(d)},{default:a(()=>[f(i(e.$t("codegen.table.actionReview")),1)]),_:1},8,["onClick"])):p("",!0)],64)):p("",!0)]),emptyText:a(()=>[v("div",Ot,[t(_(ze),{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),f(" "+i(q.value||H.value?e.$t("codegen.table.emptyGenerationsFiltered"):e.$t("codegen.table.emptyGenerations")),1)])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"]),t(ge,{key:"reviews",tab:e.$t("codegen.tabs.reviews")},{default:a(()=>[t(pe,{columns:Te.value,"data-source":be.value,pagination:{pageSize:20,showTotal:o=>e.$t("codegen.table.totalSuffix",{n:o})},size:"small",loading:S.value,style:{background:"var(--bg-card)"}},{bodyCell:a(({column:o,record:d})=>[o.key==="codeHash"?(r(),c(P,{key:0},[v("span",Gt,i(d.codeHash),1),v("div",Dt,i(d.id.slice(0,16)),1)],64)):p("",!0),o.key==="language"?(r(),c(P,{key:1},[d.language?(r(),k(j,{key:0,color:"blue",style:{"font-family":"monospace"}},{default:a(()=>[f(i(d.language),1)]),_:2},1024)):(r(),c("span",Et,"—"))],64)):p("",!0),o.key==="issuesFound"?(r(),k(j,{key:2,color:d.issuesFound===0?"green":d.issuesFound>5?"red":"orange"},{default:a(()=>[f(i(e.$t("codegen.table.issuesSuffix",{n:d.issuesFound})),1)]),_:2},1032,["color"])):p("",!0),o.key==="securityIssues"?(r(),c(P,{key:3},[d.securityIssues>0?(r(),k(j,{key:0,color:"red"},{default:a(()=>[t(_(Ae)),f(" "+i(d.securityIssues),1)]),_:2},1024)):(r(),k(j,{key:1,color:"green"},{default:a(()=>[t(_(gt)),s[26]||(s[26]=f(" 0 ",-1))]),_:1}))],64)):p("",!0),o.key==="severityBreak"?(r(),c("span",Jt,[d.severitySummary.critical>0?(r(),c("span",Bt,"C:"+i(d.severitySummary.critical),1)):p("",!0),d.severitySummary.high>0?(r(),c("span",Mt,"H:"+i(d.severitySummary.high),1)):p("",!0),d.severitySummary.medium>0?(r(),c("span",qt,"M:"+i(d.severitySummary.medium),1)):p("",!0),d.severitySummary.low>0?(r(),c("span",Ht,"L:"+i(d.severitySummary.low),1)):p("",!0),d.severitySummary.info>0?(r(),c("span",Vt,"I:"+i(d.severitySummary.info),1)):p("",!0),d.issuesFound===0?(r(),c("span",Kt,i(e.$t("codegen.table.noIssues")),1)):p("",!0)])):p("",!0),o.key==="reviewedAt"?(r(),c("span",Qt,i(_(X)(d.reviewedAt)),1)):p("",!0),o.key==="action"?(r(),k(b,{key:6,size:"small",type:"link",onClick:Ie=>Ve(d)},{default:a(()=>[f(i(e.$t("codegen.table.actionDetails")),1)]),_:1},8,["onClick"])):p("",!0)]),emptyText:a(()=>[v("div",Wt,[t(_(ye),{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),f(" "+i(e.$t("codegen.table.emptyReviews")),1)])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"]),t(ge,{key:"scaffolds",tab:e.$t("codegen.tabs.scaffolds")},{default:a(()=>[v("div",Yt,[t(We,{value:V.value,"onUpdate:value":s[5]||(s[5]=o=>V.value=o),size:"small","button-style":"solid"},{default:a(()=>[t(Ce,{value:""},{default:a(()=>[f(i(e.$t("codegen.filter.allTemplates")),1)]),_:1}),(r(!0),c(P,null,W(_(ne),o=>(r(),k(Ce,{key:o,value:o},{default:a(()=>[f(i(o),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),t(pe,{columns:Ne.value,"data-source":Oe.value,pagination:{pageSize:20,showTotal:o=>e.$t("codegen.table.totalSuffix",{n:o})},size:"small",loading:S.value,style:{background:"var(--bg-card)"}},{bodyCell:a(({column:o,record:d})=>[o.key==="projectName"?(r(),c(P,{key:0},[v("span",Xt,i(d.projectName||e.$t("codegen.table.unnamed")),1),v("div",Zt,i(d.id.slice(0,16)),1)],64)):p("",!0),o.key==="template"?(r(),k(j,{key:1,color:we(d.template),style:{"font-family":"monospace"}},{default:a(()=>[f(i(d.template),1)]),_:2},1032,["color"])):p("",!0),o.key==="filesGenerated"?(r(),c("span",ea,i(d.filesGenerated),1)):p("",!0),o.key==="outputPath"?(r(),c(P,{key:3},[d.outputPath?(r(),c("span",ta,i(ae(d.outputPath,40)),1)):(r(),c("span",aa,"—"))],64)):p("",!0),o.key==="createdAt"?(r(),c("span",oa,i(_(X)(d.createdAt)),1)):p("",!0)]),emptyText:a(()=>[v("div",la,[t(_(Fe),{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),f(" "+i(V.value?e.$t("codegen.table.emptyScaffoldsFiltered"):e.$t("codegen.table.emptyScaffolds")),1)])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"])]),_:1},8,["activeKey"]),t(Q,{open:Z.value,"onUpdate:open":s[13]||(s[13]=o=>Z.value=o),title:e.$t("codegen.generate_modal.title"),"confirm-loading":L.value,width:560,"ok-text":e.$t("codegen.generate_modal.ok"),"cancel-text":e.$t("codegen.generate_modal.cancel"),onOk:Je,onCancel:he},{default:a(()=>[t(ve,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:a(()=>[t(I,{label:e.$t("codegen.generate_modal.promptLabel"),required:""},{default:a(()=>[t(le,{value:m.prompt,"onUpdate:value":s[7]||(s[7]=o=>m.prompt=o),placeholder:e.$t("codegen.generate_modal.promptPlaceholder"),"auto-size":{minRows:2,maxRows:5}},null,8,["value","placeholder"])]),_:1},8,["label"]),t(I,{label:e.$t("codegen.generate_modal.languageLabel")},{default:a(()=>[t(D,{value:m.language,"onUpdate:value":s[8]||(s[8]=o=>m.language=o),placeholder:e.$t("codegen.generate_modal.languagePlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),t(I,{label:e.$t("codegen.generate_modal.frameworkLabel")},{default:a(()=>[t(D,{value:m.framework,"onUpdate:value":s[9]||(s[9]=o=>m.framework=o),placeholder:e.$t("codegen.generate_modal.frameworkPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),t(I,{label:e.$t("codegen.generate_modal.codeLabel")},{default:a(()=>[t(le,{value:m.code,"onUpdate:value":s[10]||(s[10]=o=>m.code=o),placeholder:e.$t("codegen.generate_modal.codePlaceholder"),"auto-size":{minRows:3,maxRows:10}},null,8,["value","placeholder"])]),_:1},8,["label"]),t(I,{label:e.$t("codegen.generate_modal.filesLabel")},{default:a(()=>[t(me,{value:m.files,"onUpdate:value":s[11]||(s[11]=o=>m.files=o),min:0,style:{width:"120px"}},null,8,["value"])]),_:1},8,["label"]),t(I,{label:e.$t("codegen.generate_modal.tokensLabel")},{default:a(()=>[t(me,{value:m.tokens,"onUpdate:value":s[12]||(s[12]=o=>m.tokens=o),min:0,style:{width:"160px"}},null,8,["value"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),t(Q,{open:ee.value,"onUpdate:open":s[17]||(s[17]=o=>ee.value=o),title:e.$t("codegen.review_modal.title"),width:720,footer:null},{default:a(()=>[v("div",na,[t(ve,{"label-col":{span:5},"wrapper-col":{span:19}},{default:a(()=>[t(I,{label:e.$t("codegen.review_modal.languageLabel")},{default:a(()=>[t(D,{value:x.language,"onUpdate:value":s[14]||(s[14]=o=>x.language=o),placeholder:e.$t("codegen.review_modal.languagePlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),t(I,{label:e.$t("codegen.review_modal.generationIdLabel")},{default:a(()=>[t(D,{value:x.generationId,"onUpdate:value":s[15]||(s[15]=o=>x.generationId=o),placeholder:e.$t("codegen.review_modal.generationIdPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),t(I,{label:e.$t("codegen.review_modal.codeLabel"),required:""},{default:a(()=>[t(le,{value:x.code,"onUpdate:value":s[16]||(s[16]=o=>x.code=o),placeholder:e.$t("codegen.review_modal.codePlaceholder"),"auto-size":{minRows:6,maxRows:16}},null,8,["value","placeholder"])]),_:1},8,["label"]),t(I,{"wrapper-col":{offset:5,span:19}},{default:a(()=>[t(b,{type:"primary",loading:N.value,onClick:Be},{icon:a(()=>[t(_(ye))]),default:a(()=>[f(" "+i(e.$t("codegen.review_modal.submit")),1)]),_:1},8,["loading"])]),_:1})]),_:1}),t(Xe),h.value?(r(),c("div",sa,[t(fe,{gutter:12,style:{"margin-bottom":"12px"}},{default:a(()=>[t(U,{span:8},{default:a(()=>[t(G,{title:e.$t("codegen.review_modal.issuesStat"),value:h.value.issuesFound,"value-style":{color:h.value.issuesFound>0?"#fa8c16":"#52c41a",fontSize:"18px"}},null,8,["title","value","value-style"])]),_:1}),t(U,{span:8},{default:a(()=>[t(G,{title:e.$t("codegen.review_modal.securityStat"),value:h.value.securityIssues,"value-style":{color:h.value.securityIssues>0?"#ff4d4f":"#52c41a",fontSize:"18px"}},null,8,["title","value","value-style"])]),_:1}),t(U,{span:8},{default:a(()=>[t(G,{title:e.$t("codegen.review_modal.reviewIdStat"),value:h.value.reviewId?h.value.reviewId.slice(0,8):"—","value-style":{fontSize:"14px",fontFamily:"monospace"}},null,8,["title","value"])]),_:1})]),_:1}),v("h5",ia,i(e.$t("codegen.review_modal.bySeverity")),1),t(Se,null,{default:a(()=>[(r(!0),c(P,null,W(_(se),o=>(r(),k(j,{key:o,color:ce(o)},{default:a(()=>[f(i(de(o))+": "+i(h.value.severitySummary[o]||0),1)]),_:2},1032,["color"]))),128))]),_:1}),h.value.reason?(r(),k(et,{key:0,type:"warning","show-icon":"",message:e.$t("codegen.review_modal.failedReason",{reason:h.value.reason}),style:{"margin-top":"12px"}},null,8,["message"])):p("",!0)])):(r(),k(Ze,{key:0,description:e.$t("codegen.review_modal.notReviewed"),image:_(R)},null,8,["description","image"]))])]),_:1},8,["open","title"]),t(Q,{open:te.value,"onUpdate:open":s[23]||(s[23]=o=>te.value=o),title:e.$t("codegen.scaffold_modal.title"),"confirm-loading":E.value,width:560,"ok-text":e.$t("codegen.scaffold_modal.ok"),"cancel-text":e.$t("codegen.scaffold_modal.cancel"),onOk:qe,onCancel:$e},{default:a(()=>[t(ve,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:a(()=>[t(I,{label:e.$t("codegen.scaffold_modal.templateLabel"),required:""},{default:a(()=>[t(at,{value:y.template,"onUpdate:value":s[18]||(s[18]=o=>y.template=o)},{default:a(()=>[(r(!0),c(P,null,W(_(ne),o=>(r(),k(tt,{key:o,value:o},{default:a(()=>[f(i(o),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),_:1},8,["label"]),t(I,{label:e.$t("codegen.scaffold_modal.projectLabel"),required:""},{default:a(()=>[t(D,{value:y.projectName,"onUpdate:value":s[19]||(s[19]=o=>y.projectName=o),placeholder:e.$t("codegen.scaffold_modal.projectPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),t(I,{label:e.$t("codegen.scaffold_modal.optionsLabel")},{default:a(()=>[t(le,{value:y.optionsJson,"onUpdate:value":s[20]||(s[20]=o=>y.optionsJson=o),placeholder:e.$t("codegen.scaffold_modal.optionsPlaceholder"),"auto-size":{minRows:2,maxRows:4}},null,8,["value","placeholder"])]),_:1},8,["label"]),t(I,{label:e.$t("codegen.scaffold_modal.filesLabel")},{default:a(()=>[t(me,{value:y.files,"onUpdate:value":s[21]||(s[21]=o=>y.files=o),min:0,style:{width:"120px"}},null,8,["value"])]),_:1},8,["label"]),t(I,{label:e.$t("codegen.scaffold_modal.outputLabel")},{default:a(()=>[t(D,{value:y.outputPath,"onUpdate:value":s[22]||(s[22]=o=>y.outputPath=o),placeholder:e.$t("codegen.scaffold_modal.outputPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),t(Q,{open:re.value,"onUpdate:open":s[24]||(s[24]=o=>re.value=o),title:e.$t("codegen.gen_details.title",{id:F.value?.id?.slice(0,12)||""}),width:780,footer:null},{default:a(()=>[F.value?(r(),c("div",ra,[t(xe,{column:2,size:"small",bordered:""},{default:a(()=>[t(z,{label:e.$t("codegen.gen_details.id"),span:2},{default:a(()=>[v("span",ua,i(F.value.id),1)]),_:1},8,["label"]),t(z,{label:e.$t("codegen.gen_details.language")},{default:a(()=>[F.value.language?(r(),k(j,{key:0,color:"blue"},{default:a(()=>[f(i(F.value.language),1)]),_:1})):(r(),c("span",da,"—"))]),_:1},8,["label"]),t(z,{label:e.$t("codegen.gen_details.framework")},{default:a(()=>[F.value.framework?(r(),k(j,{key:0,color:"purple"},{default:a(()=>[f(i(F.value.framework),1)]),_:1})):(r(),c("span",ca,"—"))]),_:1},8,["label"]),t(z,{label:e.$t("codegen.gen_details.fileCount")},{default:a(()=>[f(i(F.value.fileCount),1)]),_:1},8,["label"]),t(z,{label:e.$t("codegen.gen_details.tokenCount")},{default:a(()=>[f(i(F.value.tokenCount),1)]),_:1},8,["label"]),t(z,{label:e.$t("codegen.gen_details.createdAt"),span:2},{default:a(()=>[f(i(_(X)(F.value.createdAt)),1)]),_:1},8,["label"]),t(z,{label:e.$t("codegen.gen_details.prompt"),span:2},{default:a(()=>[v("pre",fa,i(F.value.prompt),1)]),_:1},8,["label"]),F.value.generatedCode?(r(),k(z,{key:0,label:e.$t("codegen.gen_details.code"),span:2},{default:a(()=>[v("pre",pa,i(ae(F.value.generatedCode,2e3)),1)]),_:1},8,["label"])):p("",!0)]),_:1})])):p("",!0)]),_:1},8,["open","title"]),t(Q,{open:ue.value,"onUpdate:open":s[25]||(s[25]=o=>ue.value=o),title:e.$t("codegen.review_details.title",{id:$.value?.id?.slice(0,12)||""}),width:720,footer:null},{default:a(()=>[$.value?(r(),c("div",ga,[t(xe,{column:2,size:"small",bordered:""},{default:a(()=>[t(z,{label:e.$t("codegen.review_details.id"),span:2},{default:a(()=>[v("span",ma,i($.value.id),1)]),_:1},8,["label"]),t(z,{label:e.$t("codegen.review_details.codeHash"),span:2},{default:a(()=>[v("span",va,i($.value.codeHash),1)]),_:1},8,["label"]),$.value.generationId?(r(),k(z,{key:0,label:e.$t("codegen.review_details.generationId"),span:2},{default:a(()=>[v("span",ya,i($.value.generationId),1)]),_:1},8,["label"])):p("",!0),t(z,{label:e.$t("codegen.review_details.language")},{default:a(()=>[$.value.language?(r(),k(j,{key:0,color:"blue"},{default:a(()=>[f(i($.value.language),1)]),_:1})):(r(),c("span",_a,"—"))]),_:1},8,["label"]),t(z,{label:e.$t("codegen.review_details.reviewedAt")},{default:a(()=>[f(i(_(X)($.value.reviewedAt)),1)]),_:1},8,["label"]),t(z,{label:e.$t("codegen.review_details.issuesFound")},{default:a(()=>[f(i($.value.issuesFound),1)]),_:1},8,["label"]),t(z,{label:e.$t("codegen.review_details.securityIssues")},{default:a(()=>[v("span",{style:je({color:$.value.securityIssues>0?"#ff4d4f":"#52c41a"})},i($.value.securityIssues),5)]),_:1},8,["label"])]),_:1}),v("h4",ba,i(e.$t("codegen.review_details.bySeverity")),1),(r(!0),c(P,null,W(_(se),o=>(r(),c("div",{key:o,class:"bd-row"},[t(j,{color:ce(o),style:{"min-width":"70px","text-align":"center"}},{default:a(()=>[f(i(de(o)),1)]),_:2},1032,["color"]),t(ot,{percent:Ee($.value.severitySummary[o]||0,$.value.issuesFound),"stroke-color":De(o),format:()=>`${$.value.severitySummary[o]||0}`,size:"small",style:{flex:"1","margin-left":"12px"}},null,8,["percent","stroke-color","format"])]))),128)),$.value.issuesDetail.length?(r(),c("h4",ka,i(e.$t("codegen.review_details.issues")),1)):p("",!0),$.value.issuesDetail.length?(r(),k(nt,{key:1,size:"small","data-source":$.value.issuesDetail,pagination:{pageSize:8}},{renderItem:a(({item:o})=>[t(lt,null,{default:a(()=>[t(j,{color:ce(o.severity),style:{"min-width":"60px","text-align":"center"}},{default:a(()=>[f(i(de(o.severity)),1)]),_:2},1032,["color"]),v("span",wa,i(o.rule),1),v("code",ha,i(ae(o.match,60)),1)]),_:2},1024)]),_:1},8,["data-source"])):p("",!0)])):p("",!0)]),_:1},8,["open","title"])])}}},Ia=st($a,[["__scopeId","data-v-c77cb6a0"]]);export{Ia as default};
|
|
1
|
+
import{t as M,_ as st,u as it,b as rt,E as ut,d as A}from"./index-CzoKAiyT.js";import{R as dt,Q as ye,at as ct,s as ze,a9 as ft,an as Ae,a_ as Fe,G as pt,f as gt}from"./icons-DlxlFL4g.js";import{o as mt,M as c,R as v,P as i,c as t,N as a,K as g,r as w,L as r,O as f,u as _,F as P,Y as W,Q as k,_ as je,S as p,f as Y,a as _e}from"./vendor-BXcBOG8b.js";const ne=Object.freeze(["react","vue","express","fastapi","spring_boot"]),se=Object.freeze(["critical","high","medium","low","info"]);function C(l,u=0){return typeof l=="number"&&Number.isFinite(l)?l:u}function Pe(l,u=null){if(l==null)return u;if(typeof l!="string")return l;try{return JSON.parse(l)}catch{return u}}function vt(l,u=0){if(!l||typeof l!="object")return null;const n=l.id||"";return n?{key:n,id:n,prompt:String(l.prompt||""),language:l.language??"",framework:l.framework??"",generatedCode:l.generated_code??l.generatedCode??"",fileCount:C(l.file_count??l.fileCount,0),tokenCount:C(l.token_count??l.tokenCount,0),metadata:l.metadata??null,createdAt:l.created_at??l.createdAt??null,_idx:u}:null}function yt(l){const u=M(l);return Array.isArray(u)?u.map(vt).filter(Boolean):[]}function _t(l,u=0){return!l||typeof l!="object"?null:{key:u,rule:String(l.rule||""),severity:String(l.severity||"info").toLowerCase(),match:String(l.match||""),pattern:String(l.pattern||"")}}function bt(l,u=0){if(!l||typeof l!="object")return null;const n=l.id||"";if(!n)return null;const R=Pe(l.severity_summary??l.severitySummary,null)??l.severity_summary??l.severitySummary,S={};for(const E of se)S[E]=0;if(R&&typeof R=="object"&&!Array.isArray(R))for(const[E,J]of Object.entries(R))typeof J=="number"&&Number.isFinite(J)&&(S[E]=J);const L=Pe(l.issues_detail??l.issuesDetail,null)??l.issues_detail??l.issuesDetail,N=Array.isArray(L)?L.map(_t).filter(Boolean):[];return{key:n,id:n,generationId:l.generation_id??l.generationId??"",codeHash:String(l.code_hash??l.codeHash??""),language:l.language??"",issuesFound:C(l.issues_found??l.issuesFound,0),securityIssues:C(l.security_issues??l.securityIssues,0),severitySummary:S,issuesDetail:N,reviewedAt:l.reviewed_at??l.reviewedAt??null,_idx:u}}function kt(l){const u=M(l);return Array.isArray(u)?u.map(bt).filter(Boolean):[]}function wt(l){const u={};for(const L of se)u[L]=0;const n=M(l);if(!n||typeof n!="object"||Array.isArray(n))return{ok:!1,reviewId:null,reason:"",issuesFound:0,securityIssues:0,severitySummary:u};const R=!!n.reviewId,S={...u};if(n.severitySummary&&typeof n.severitySummary=="object"&&!Array.isArray(n.severitySummary))for(const[L,N]of Object.entries(n.severitySummary))typeof N=="number"&&Number.isFinite(N)&&(S[L]=N);return{ok:R,reviewId:n.reviewId?String(n.reviewId):null,reason:n.reason?String(n.reason):"",issuesFound:C(n.issuesFound,0),securityIssues:C(n.securityIssues,0),severitySummary:S}}function ht(l,u=0){if(!l||typeof l!="object")return null;const n=l.id||"";return n?{key:n,id:n,template:String(l.template||""),projectName:l.project_name??l.projectName??"",options:l.options??null,filesGenerated:C(l.files_generated??l.filesGenerated,0),outputPath:l.output_path??l.outputPath??"",createdAt:l.created_at??l.createdAt??null,_idx:u}:null}function $t(l){const u=M(l);return Array.isArray(u)?u.map(ht).filter(Boolean):[]}const St={generations:{total:0,totalTokens:0,totalFiles:0,uniqueLanguages:0},reviews:{total:0,totalIssues:0,totalSecurityIssues:0,avgIssuesPerReview:0},scaffolds:{total:0,byTemplate:{}}};function Ct(l){const u=JSON.parse(JSON.stringify(St));for(const R of ne)u.scaffolds.byTemplate[R]=0;const n=M(l);if(!n||typeof n!="object"||Array.isArray(n))return u;if(n.generations&&typeof n.generations=="object"&&(u.generations.total=C(n.generations.total,0),u.generations.totalTokens=C(n.generations.totalTokens,0),u.generations.totalFiles=C(n.generations.totalFiles,0),u.generations.uniqueLanguages=C(n.generations.uniqueLanguages,0)),n.reviews&&typeof n.reviews=="object"&&(u.reviews.total=C(n.reviews.total,0),u.reviews.totalIssues=C(n.reviews.totalIssues,0),u.reviews.totalSecurityIssues=C(n.reviews.totalSecurityIssues,0),u.reviews.avgIssuesPerReview=C(n.reviews.avgIssuesPerReview,0)),n.scaffolds&&typeof n.scaffolds=="object"&&(u.scaffolds.total=C(n.scaffolds.total,0),n.scaffolds.byTemplate&&typeof n.scaffolds.byTemplate=="object"))for(const[R,S]of Object.entries(n.scaffolds.byTemplate))typeof S=="number"&&Number.isFinite(S)&&(u.scaffolds.byTemplate[R]=S);return u}function Re(l){const u=M(l);if(!u||typeof u!="object"||Array.isArray(u))return{ok:!1,id:null,reason:""};const n=u.generationId||u.scaffoldId||u.reviewId||null;return{ok:!!n,id:n?String(n):null,reason:u.reason?String(u.reason):""}}function X(l){if(l==null||l==="")return"—";const u=typeof l=="number"?new Date(l):new Date(String(l));return isNaN(u.getTime())?String(l):u.toLocaleString("zh-CN",{hour12:!1})}const xt={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},It={class:"page-title"},zt={class:"page-sub"},At={class:"tmpl-count"},Ft={class:"filter-bar"},jt={style:{color:"var(--text-primary)","font-weight":"500"}},Pt={style:{color:"var(--text-muted)","font-size":"11px","font-family":"monospace","margin-top":"2px"}},Rt={key:1,style:{color:"var(--text-muted)"}},Lt={key:1,style:{color:"var(--text-muted)"}},Tt={key:3,style:{color:"var(--text-secondary)"}},Nt={key:4,style:{color:"var(--text-secondary)","font-family":"monospace","font-size":"12px"}},Ut={key:5,style:{color:"var(--text-secondary)","font-size":"11px"}},Ot={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},Gt={style:{color:"var(--text-primary)","font-family":"monospace","font-size":"12px"}},Dt={style:{color:"var(--text-muted)","font-size":"11px","font-family":"monospace","margin-top":"2px"}},Et={key:1,style:{color:"var(--text-muted)"}},Jt={key:4,class:"sev-mini"},Bt={key:0,style:{color:"#ff4d4f"}},Mt={key:1,style:{color:"#fa8c16"}},qt={key:2,style:{color:"#faad14"}},Ht={key:3,style:{color:"#888"}},Vt={key:4,style:{color:"#1677ff"}},Kt={key:5,style:{color:"#52c41a"}},Qt={key:5,style:{color:"var(--text-secondary)","font-size":"11px"}},Wt={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},Yt={class:"filter-bar"},Xt={style:{color:"var(--text-primary)","font-weight":"500"}},Zt={style:{color:"var(--text-muted)","font-size":"11px","font-family":"monospace","margin-top":"2px"}},ea={key:2,style:{color:"var(--text-secondary)"}},ta={key:0,style:{color:"var(--text-secondary)","font-family":"monospace","font-size":"11px"}},aa={key:1,style:{color:"var(--text-muted)"}},oa={key:4,style:{color:"var(--text-secondary)","font-size":"11px"}},la={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},na={style:{"padding-top":"8px"}},sa={key:1},ia={style:{color:"var(--text-primary)","font-size":"12px",margin:"12px 0 6px"}},ra={key:0,style:{"padding-top":"8px"}},ua={style:{"font-family":"monospace","font-size":"12px"}},da={key:1,style:{color:"var(--text-muted)"}},ca={key:1,style:{color:"var(--text-muted)"}},fa={class:"code-pre"},pa={class:"code-pre"},ga={key:0,style:{"padding-top":"8px"}},ma={style:{"font-family":"monospace","font-size":"12px"}},va={style:{"font-family":"monospace","font-size":"12px"}},ya={style:{"font-family":"monospace","font-size":"12px"}},_a={key:1,style:{color:"var(--text-muted)"}},ba={style:{color:"var(--text-primary)","font-size":"13px",margin:"16px 0 8px"}},ka={key:0,style:{color:"var(--text-primary)","font-size":"13px",margin:"16px 0 8px"}},wa={style:{"margin-left":"8px","font-family":"monospace","font-size":"12px"}},ha={style:{"margin-left":"8px",padding:"1px 6px",background:"var(--bg-base)","border-radius":"3px","font-size":"11px"}},$a={__name:"Codegen",setup(l){const u=it(),{t:n}=rt(),R=ut.PRESENTED_IMAGE_SIMPLE,S=w(!1),L=w(!1),N=w(!1),E=w(!1),J=w([]),be=w([]),ie=w([]),O=w({generations:{total:0,totalTokens:0,totalFiles:0,uniqueLanguages:0},reviews:{total:0,totalIssues:0,totalSecurityIssues:0,avgIssuesPerReview:0},scaffolds:{total:0,byTemplate:{}}}),ke=w("generations"),q=w(""),H=w(""),V=w(""),Z=w(!1),ee=w(!1),te=w(!1),re=w(!1),ue=w(!1),m=_e({prompt:"",language:"",framework:"",code:"",files:0,tokens:0}),x=_e({generationId:"",language:"",code:""}),y=_e({template:"react",projectName:"",optionsJson:"",files:0,outputPath:""}),h=w(null),F=w(null),$=w(null),Le=Y(()=>[{title:n("codegen.generationCols.prompt"),key:"prompt"},{title:n("codegen.generationCols.language"),key:"language",width:"110px"},{title:n("codegen.generationCols.framework"),key:"framework",width:"110px"},{title:n("codegen.generationCols.fileCount"),key:"fileCount",width:"70px"},{title:n("codegen.generationCols.tokenCount"),key:"tokenCount",width:"110px"},{title:n("codegen.generationCols.createdAt"),key:"createdAt",width:"160px"},{title:n("codegen.generationCols.action"),key:"action",width:"140px"}]),Te=Y(()=>[{title:n("codegen.reviewCols.codeHash"),key:"codeHash",width:"180px"},{title:n("codegen.reviewCols.language"),key:"language",width:"110px"},{title:n("codegen.reviewCols.issuesFound"),key:"issuesFound",width:"90px"},{title:n("codegen.reviewCols.securityIssues"),key:"securityIssues",width:"90px"},{title:n("codegen.reviewCols.severityBreak"),key:"severityBreak"},{title:n("codegen.reviewCols.reviewedAt"),key:"reviewedAt",width:"160px"},{title:n("codegen.reviewCols.action"),key:"action",width:"90px"}]),Ne=Y(()=>[{title:n("codegen.scaffoldCols.projectName"),key:"projectName"},{title:n("codegen.scaffoldCols.template"),key:"template",width:"120px"},{title:n("codegen.scaffoldCols.filesGenerated"),key:"filesGenerated",width:"90px"},{title:n("codegen.scaffoldCols.outputPath"),key:"outputPath",width:"300px"},{title:n("codegen.scaffoldCols.createdAt"),key:"createdAt",width:"160px"}]),Ue=Y(()=>{let e=J.value;if(q.value.trim()){const s=q.value.trim().toLowerCase();e=e.filter(b=>(b.language||"").toLowerCase().includes(s))}if(H.value.trim()){const s=H.value.trim().toLowerCase();e=e.filter(b=>(b.framework||"").toLowerCase().includes(s))}return e}),Oe=Y(()=>V.value?ie.value.filter(e=>e.template===V.value):ie.value);function we(e){return{react:"cyan",vue:"green",express:"gold",fastapi:"magenta",spring_boot:"red"}[e]||"default"}function Ge(e){return{react:"#13c2c2",vue:"#52c41a",express:"#faad14",fastapi:"#eb2f96",spring_boot:"#ff4d4f"}[e]||"#888"}function de(e){const s=`codegen.severityLabels.${e}`,b=n(s);return b===s?e:b}function ce(e){return{critical:"red",high:"orange",medium:"gold",low:"default",info:"blue"}[e]||"default"}function De(e){return{critical:"#ff4d4f",high:"#fa8c16",medium:"#faad14",low:"#888",info:"#1677ff"}[e]||"#888"}function Ee(e,s){return s?Math.round(e/s*100):0}function ae(e,s){return e?e.length<=s?e:e.slice(0,s)+"…":""}function T(e){return`"${String(e).replace(/"/g,'\\"')}"`}async function K(){S.value=!0;try{const[e,s,b,oe]=await Promise.all([u.execute("codegen list --limit 200 --json",1e4).catch(()=>({output:""})),u.execute("codegen reviews --limit 200 --json",1e4).catch(()=>({output:""})),u.execute("codegen scaffolds --limit 200 --json",1e4).catch(()=>({output:""})),u.execute("codegen stats --json",8e3).catch(()=>({output:""}))]);J.value=yt(e.output),be.value=kt(s.output),ie.value=$t(b.output),O.value=Ct(oe.output)}catch(e){A.error(n("codegen.msg.loadFailed")+": "+(e?.message||e))}finally{S.value=!1}}async function Je(){if(!m.prompt.trim()){A.warning(n("codegen.msg.promptEmpty"));return}L.value=!0;try{const e=[`codegen generate -p ${T(m.prompt.trim())}`];m.language.trim()&&e.push(`-l ${T(m.language.trim())}`),m.framework.trim()&&e.push(`-f ${T(m.framework.trim())}`),m.code.trim()&&e.push(`--code ${T(m.code.trim())}`),m.files>0&&e.push(`--files ${m.files}`),m.tokens>0&&e.push(`--tokens ${m.tokens}`),e.push("--json");const{output:s}=await u.execute(e.join(" "),1e4),b=Re(s);if(!b.ok){A.error(n("codegen.msg.generateFailed")+": "+(b.reason||s.slice(0,120)));return}A.success(n("codegen.msg.generateSuccess",{id:b.id?.slice(0,8)})),Z.value=!1,he(),await K()}catch(e){A.error(n("codegen.msg.generateFailed")+": "+(e?.message||e))}finally{L.value=!1}}async function Be(){if(!x.code.trim()){A.warning(n("codegen.msg.codeEmpty"));return}N.value=!0,h.value=null;try{const e=[`codegen review -c ${T(x.code)}`];x.language.trim()&&e.push(`-l ${T(x.language.trim())}`),x.generationId.trim()&&e.push(`-g ${T(x.generationId.trim())}`),e.push("--json");const{output:s}=await u.execute(e.join(" "),1e4);h.value=wt(s),!h.value.ok&&h.value.reason?A.error(n("codegen.msg.reviewFailed")+": "+h.value.reason):h.value.ok?(A.success(n("codegen.msg.reviewSuccess",{n:h.value.issuesFound,sec:h.value.securityIssues})),await K()):A.error(n("codegen.msg.reviewFailed")+": "+s.slice(0,120))}catch(e){A.error(n("codegen.msg.reviewFailed")+": "+(e?.message||e))}finally{N.value=!1}}async function Me(e){x.generationId=e.id,x.language=e.language||"",x.code=e.generatedCode||"",h.value=null,ee.value=!0}async function qe(){if(!y.projectName.trim()){A.warning(n("codegen.msg.projectEmpty"));return}if(y.optionsJson.trim())try{JSON.parse(y.optionsJson)}catch{A.warning(n("codegen.msg.optionsBadJson"));return}E.value=!0;try{const e=[`codegen scaffold -t ${y.template}`,`-n ${T(y.projectName.trim())}`];y.optionsJson.trim()&&e.push(`-o ${T(y.optionsJson.trim())}`),y.files>0&&e.push(`--files ${y.files}`),y.outputPath.trim()&&e.push(`--output ${T(y.outputPath.trim())}`),e.push("--json");const{output:s}=await u.execute(e.join(" "),1e4),b=Re(s);if(!b.ok){A.error(n("codegen.msg.scaffoldFailed")+": "+(b.reason||s.slice(0,120)));return}A.success(n("codegen.msg.scaffoldSuccess",{id:b.id?.slice(0,8)})),te.value=!1,$e(),await K()}catch(e){A.error(n("codegen.msg.scaffoldFailed")+": "+(e?.message||e))}finally{E.value=!1}}function He(e){F.value=e,re.value=!0}function Ve(e){$.value=e,ue.value=!0}function he(){m.prompt="",m.language="",m.framework="",m.code="",m.files=0,m.tokens=0}function $e(){y.template="react",y.projectName="",y.optionsJson="",y.files=0,y.outputPath=""}return mt(K),(e,s)=>{const b=g("a-button"),oe=g("a-menu-item"),Ke=g("a-menu"),Qe=g("a-dropdown"),Se=g("a-space"),G=g("a-statistic"),B=g("a-card"),U=g("a-col"),fe=g("a-row"),j=g("a-tag"),D=g("a-input"),pe=g("a-table"),ge=g("a-tab-pane"),Ce=g("a-radio-button"),We=g("a-radio-group"),Ye=g("a-tabs"),le=g("a-textarea"),I=g("a-form-item"),me=g("a-input-number"),ve=g("a-form"),Q=g("a-modal"),Xe=g("a-divider"),Ze=g("a-empty"),et=g("a-alert"),tt=g("a-select-option"),at=g("a-select"),z=g("a-descriptions-item"),xe=g("a-descriptions"),ot=g("a-progress"),lt=g("a-list-item"),nt=g("a-list");return r(),c("div",null,[v("div",xt,[v("div",null,[v("h2",It,i(e.$t("codegen.title")),1),v("p",zt,i(e.$t("codegen.subtitle")),1)]),t(Se,null,{default:a(()=>[t(b,{loading:S.value,onClick:K},{icon:a(()=>[t(_(dt))]),default:a(()=>[f(" "+i(e.$t("codegen.refresh")),1)]),_:1},8,["loading"]),t(b,{onClick:s[0]||(s[0]=o=>ee.value=!0)},{icon:a(()=>[t(_(ye))]),default:a(()=>[f(" "+i(e.$t("codegen.review")),1)]),_:1}),t(Qe,null,{overlay:a(()=>[t(Ke,null,{default:a(()=>[t(oe,{key:"generate",onClick:s[1]||(s[1]=o=>Z.value=!0)},{default:a(()=>[f(i(e.$t("codegen.actions.generate")),1)]),_:1}),t(oe,{key:"scaffold",onClick:s[2]||(s[2]=o=>te.value=!0)},{default:a(()=>[f(i(e.$t("codegen.actions.scaffold")),1)]),_:1})]),_:1})]),default:a(()=>[t(b,{type:"primary"},{icon:a(()=>[t(_(ct))]),default:a(()=>[f(" "+i(e.$t("codegen.newDropdown")),1)]),_:1})]),_:1})]),_:1})]),t(fe,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:a(()=>[t(U,{xs:12,sm:8,lg:5},{default:a(()=>[t(B,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[t(G,{title:e.$t("codegen.stats.generations"),value:O.value.generations.total,"value-style":{color:"#1677ff",fontSize:"20px"}},{prefix:a(()=>[t(_(ze))]),_:1},8,["title","value"])]),_:1})]),_:1}),t(U,{xs:12,sm:8,lg:5},{default:a(()=>[t(B,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[t(G,{title:e.$t("codegen.stats.reviews"),value:O.value.reviews.total,"value-style":{color:"#13c2c2",fontSize:"20px"}},{prefix:a(()=>[t(_(ft))]),_:1},8,["title","value"])]),_:1})]),_:1}),t(U,{xs:12,sm:8,lg:5},{default:a(()=>[t(B,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[t(G,{title:e.$t("codegen.stats.securityIssues"),value:O.value.reviews.totalSecurityIssues,"value-style":{color:O.value.reviews.totalSecurityIssues>0?"#ff4d4f":"#52c41a",fontSize:"20px"}},{prefix:a(()=>[t(_(Ae))]),_:1},8,["title","value","value-style"])]),_:1})]),_:1}),t(U,{xs:12,sm:8,lg:5},{default:a(()=>[t(B,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[t(G,{title:e.$t("codegen.stats.scaffolds"),value:O.value.scaffolds.total,"value-style":{color:"#722ed1",fontSize:"20px"}},{prefix:a(()=>[t(_(Fe))]),_:1},8,["title","value"])]),_:1})]),_:1}),t(U,{xs:24,sm:8,lg:4},{default:a(()=>[t(B,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[t(G,{title:e.$t("codegen.stats.languages"),value:O.value.generations.uniqueLanguages,"value-style":{color:"#faad14",fontSize:"20px"}},{prefix:a(()=>[t(_(pt))]),_:1},8,["title","value"])]),_:1})]),_:1})]),_:1}),t(B,{title:e.$t("codegen.templatesCard"),size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"20px"},"body-style":{padding:"12px 16px"}},{default:a(()=>[t(fe,{gutter:[12,12]},{default:a(()=>[(r(!0),c(P,null,W(_(ne),o=>(r(),k(U,{key:o,xs:12,sm:8,lg:4},{default:a(()=>[v("div",{class:"tmpl-pill",style:je({borderLeftColor:Ge(o)})},[t(j,{color:we(o),style:{"font-family":"monospace"}},{default:a(()=>[f(i(o),1)]),_:2},1032,["color"]),v("span",At,i(O.value.scaffolds.byTemplate[o]||0),1)],4)]),_:2},1024))),128))]),_:1})]),_:1},8,["title"]),t(Ye,{activeKey:ke.value,"onUpdate:activeKey":s[6]||(s[6]=o=>ke.value=o),class:"codegen-tabs"},{default:a(()=>[t(ge,{key:"generations",tab:e.$t("codegen.tabs.generations")},{default:a(()=>[v("div",Ft,[t(D,{value:q.value,"onUpdate:value":s[3]||(s[3]=o=>q.value=o),placeholder:e.$t("codegen.filter.languagePlaceholder"),"allow-clear":"",size:"small",style:{"max-width":"180px"}},null,8,["value","placeholder"]),t(D,{value:H.value,"onUpdate:value":s[4]||(s[4]=o=>H.value=o),placeholder:e.$t("codegen.filter.frameworkPlaceholder"),"allow-clear":"",size:"small",style:{"max-width":"180px"}},null,8,["value","placeholder"])]),t(pe,{columns:Le.value,"data-source":Ue.value,pagination:{pageSize:20,showTotal:o=>e.$t("codegen.table.totalSuffix",{n:o})},size:"small",loading:S.value,style:{background:"var(--bg-card)"}},{bodyCell:a(({column:o,record:d})=>[o.key==="prompt"?(r(),c(P,{key:0},[v("span",jt,i(ae(d.prompt,60)),1),v("div",Pt,i(d.id.slice(0,16)),1)],64)):p("",!0),o.key==="language"?(r(),c(P,{key:1},[d.language?(r(),k(j,{key:0,color:"blue",style:{"font-family":"monospace"}},{default:a(()=>[f(i(d.language),1)]),_:2},1024)):(r(),c("span",Rt,"—"))],64)):p("",!0),o.key==="framework"?(r(),c(P,{key:2},[d.framework?(r(),k(j,{key:0,color:"purple",style:{"font-family":"monospace"}},{default:a(()=>[f(i(d.framework),1)]),_:2},1024)):(r(),c("span",Lt,"—"))],64)):p("",!0),o.key==="fileCount"?(r(),c("span",Tt,i(d.fileCount),1)):p("",!0),o.key==="tokenCount"?(r(),c("span",Nt,i(d.tokenCount),1)):p("",!0),o.key==="createdAt"?(r(),c("span",Ut,i(_(X)(d.createdAt)),1)):p("",!0),o.key==="action"?(r(),c(P,{key:6},[t(b,{size:"small",type:"link",onClick:Ie=>He(d)},{default:a(()=>[f(i(e.$t("codegen.table.actionDetails")),1)]),_:1},8,["onClick"]),d.generatedCode?(r(),k(b,{key:0,size:"small",type:"link",onClick:Ie=>Me(d)},{default:a(()=>[f(i(e.$t("codegen.table.actionReview")),1)]),_:1},8,["onClick"])):p("",!0)],64)):p("",!0)]),emptyText:a(()=>[v("div",Ot,[t(_(ze),{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),f(" "+i(q.value||H.value?e.$t("codegen.table.emptyGenerationsFiltered"):e.$t("codegen.table.emptyGenerations")),1)])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"]),t(ge,{key:"reviews",tab:e.$t("codegen.tabs.reviews")},{default:a(()=>[t(pe,{columns:Te.value,"data-source":be.value,pagination:{pageSize:20,showTotal:o=>e.$t("codegen.table.totalSuffix",{n:o})},size:"small",loading:S.value,style:{background:"var(--bg-card)"}},{bodyCell:a(({column:o,record:d})=>[o.key==="codeHash"?(r(),c(P,{key:0},[v("span",Gt,i(d.codeHash),1),v("div",Dt,i(d.id.slice(0,16)),1)],64)):p("",!0),o.key==="language"?(r(),c(P,{key:1},[d.language?(r(),k(j,{key:0,color:"blue",style:{"font-family":"monospace"}},{default:a(()=>[f(i(d.language),1)]),_:2},1024)):(r(),c("span",Et,"—"))],64)):p("",!0),o.key==="issuesFound"?(r(),k(j,{key:2,color:d.issuesFound===0?"green":d.issuesFound>5?"red":"orange"},{default:a(()=>[f(i(e.$t("codegen.table.issuesSuffix",{n:d.issuesFound})),1)]),_:2},1032,["color"])):p("",!0),o.key==="securityIssues"?(r(),c(P,{key:3},[d.securityIssues>0?(r(),k(j,{key:0,color:"red"},{default:a(()=>[t(_(Ae)),f(" "+i(d.securityIssues),1)]),_:2},1024)):(r(),k(j,{key:1,color:"green"},{default:a(()=>[t(_(gt)),s[26]||(s[26]=f(" 0 ",-1))]),_:1}))],64)):p("",!0),o.key==="severityBreak"?(r(),c("span",Jt,[d.severitySummary.critical>0?(r(),c("span",Bt,"C:"+i(d.severitySummary.critical),1)):p("",!0),d.severitySummary.high>0?(r(),c("span",Mt,"H:"+i(d.severitySummary.high),1)):p("",!0),d.severitySummary.medium>0?(r(),c("span",qt,"M:"+i(d.severitySummary.medium),1)):p("",!0),d.severitySummary.low>0?(r(),c("span",Ht,"L:"+i(d.severitySummary.low),1)):p("",!0),d.severitySummary.info>0?(r(),c("span",Vt,"I:"+i(d.severitySummary.info),1)):p("",!0),d.issuesFound===0?(r(),c("span",Kt,i(e.$t("codegen.table.noIssues")),1)):p("",!0)])):p("",!0),o.key==="reviewedAt"?(r(),c("span",Qt,i(_(X)(d.reviewedAt)),1)):p("",!0),o.key==="action"?(r(),k(b,{key:6,size:"small",type:"link",onClick:Ie=>Ve(d)},{default:a(()=>[f(i(e.$t("codegen.table.actionDetails")),1)]),_:1},8,["onClick"])):p("",!0)]),emptyText:a(()=>[v("div",Wt,[t(_(ye),{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),f(" "+i(e.$t("codegen.table.emptyReviews")),1)])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"]),t(ge,{key:"scaffolds",tab:e.$t("codegen.tabs.scaffolds")},{default:a(()=>[v("div",Yt,[t(We,{value:V.value,"onUpdate:value":s[5]||(s[5]=o=>V.value=o),size:"small","button-style":"solid"},{default:a(()=>[t(Ce,{value:""},{default:a(()=>[f(i(e.$t("codegen.filter.allTemplates")),1)]),_:1}),(r(!0),c(P,null,W(_(ne),o=>(r(),k(Ce,{key:o,value:o},{default:a(()=>[f(i(o),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),t(pe,{columns:Ne.value,"data-source":Oe.value,pagination:{pageSize:20,showTotal:o=>e.$t("codegen.table.totalSuffix",{n:o})},size:"small",loading:S.value,style:{background:"var(--bg-card)"}},{bodyCell:a(({column:o,record:d})=>[o.key==="projectName"?(r(),c(P,{key:0},[v("span",Xt,i(d.projectName||e.$t("codegen.table.unnamed")),1),v("div",Zt,i(d.id.slice(0,16)),1)],64)):p("",!0),o.key==="template"?(r(),k(j,{key:1,color:we(d.template),style:{"font-family":"monospace"}},{default:a(()=>[f(i(d.template),1)]),_:2},1032,["color"])):p("",!0),o.key==="filesGenerated"?(r(),c("span",ea,i(d.filesGenerated),1)):p("",!0),o.key==="outputPath"?(r(),c(P,{key:3},[d.outputPath?(r(),c("span",ta,i(ae(d.outputPath,40)),1)):(r(),c("span",aa,"—"))],64)):p("",!0),o.key==="createdAt"?(r(),c("span",oa,i(_(X)(d.createdAt)),1)):p("",!0)]),emptyText:a(()=>[v("div",la,[t(_(Fe),{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),f(" "+i(V.value?e.$t("codegen.table.emptyScaffoldsFiltered"):e.$t("codegen.table.emptyScaffolds")),1)])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"])]),_:1},8,["activeKey"]),t(Q,{open:Z.value,"onUpdate:open":s[13]||(s[13]=o=>Z.value=o),title:e.$t("codegen.generate_modal.title"),"confirm-loading":L.value,width:560,"ok-text":e.$t("codegen.generate_modal.ok"),"cancel-text":e.$t("codegen.generate_modal.cancel"),onOk:Je,onCancel:he},{default:a(()=>[t(ve,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:a(()=>[t(I,{label:e.$t("codegen.generate_modal.promptLabel"),required:""},{default:a(()=>[t(le,{value:m.prompt,"onUpdate:value":s[7]||(s[7]=o=>m.prompt=o),placeholder:e.$t("codegen.generate_modal.promptPlaceholder"),"auto-size":{minRows:2,maxRows:5}},null,8,["value","placeholder"])]),_:1},8,["label"]),t(I,{label:e.$t("codegen.generate_modal.languageLabel")},{default:a(()=>[t(D,{value:m.language,"onUpdate:value":s[8]||(s[8]=o=>m.language=o),placeholder:e.$t("codegen.generate_modal.languagePlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),t(I,{label:e.$t("codegen.generate_modal.frameworkLabel")},{default:a(()=>[t(D,{value:m.framework,"onUpdate:value":s[9]||(s[9]=o=>m.framework=o),placeholder:e.$t("codegen.generate_modal.frameworkPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),t(I,{label:e.$t("codegen.generate_modal.codeLabel")},{default:a(()=>[t(le,{value:m.code,"onUpdate:value":s[10]||(s[10]=o=>m.code=o),placeholder:e.$t("codegen.generate_modal.codePlaceholder"),"auto-size":{minRows:3,maxRows:10}},null,8,["value","placeholder"])]),_:1},8,["label"]),t(I,{label:e.$t("codegen.generate_modal.filesLabel")},{default:a(()=>[t(me,{value:m.files,"onUpdate:value":s[11]||(s[11]=o=>m.files=o),min:0,style:{width:"120px"}},null,8,["value"])]),_:1},8,["label"]),t(I,{label:e.$t("codegen.generate_modal.tokensLabel")},{default:a(()=>[t(me,{value:m.tokens,"onUpdate:value":s[12]||(s[12]=o=>m.tokens=o),min:0,style:{width:"160px"}},null,8,["value"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),t(Q,{open:ee.value,"onUpdate:open":s[17]||(s[17]=o=>ee.value=o),title:e.$t("codegen.review_modal.title"),width:720,footer:null},{default:a(()=>[v("div",na,[t(ve,{"label-col":{span:5},"wrapper-col":{span:19}},{default:a(()=>[t(I,{label:e.$t("codegen.review_modal.languageLabel")},{default:a(()=>[t(D,{value:x.language,"onUpdate:value":s[14]||(s[14]=o=>x.language=o),placeholder:e.$t("codegen.review_modal.languagePlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),t(I,{label:e.$t("codegen.review_modal.generationIdLabel")},{default:a(()=>[t(D,{value:x.generationId,"onUpdate:value":s[15]||(s[15]=o=>x.generationId=o),placeholder:e.$t("codegen.review_modal.generationIdPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),t(I,{label:e.$t("codegen.review_modal.codeLabel"),required:""},{default:a(()=>[t(le,{value:x.code,"onUpdate:value":s[16]||(s[16]=o=>x.code=o),placeholder:e.$t("codegen.review_modal.codePlaceholder"),"auto-size":{minRows:6,maxRows:16}},null,8,["value","placeholder"])]),_:1},8,["label"]),t(I,{"wrapper-col":{offset:5,span:19}},{default:a(()=>[t(b,{type:"primary",loading:N.value,onClick:Be},{icon:a(()=>[t(_(ye))]),default:a(()=>[f(" "+i(e.$t("codegen.review_modal.submit")),1)]),_:1},8,["loading"])]),_:1})]),_:1}),t(Xe),h.value?(r(),c("div",sa,[t(fe,{gutter:12,style:{"margin-bottom":"12px"}},{default:a(()=>[t(U,{span:8},{default:a(()=>[t(G,{title:e.$t("codegen.review_modal.issuesStat"),value:h.value.issuesFound,"value-style":{color:h.value.issuesFound>0?"#fa8c16":"#52c41a",fontSize:"18px"}},null,8,["title","value","value-style"])]),_:1}),t(U,{span:8},{default:a(()=>[t(G,{title:e.$t("codegen.review_modal.securityStat"),value:h.value.securityIssues,"value-style":{color:h.value.securityIssues>0?"#ff4d4f":"#52c41a",fontSize:"18px"}},null,8,["title","value","value-style"])]),_:1}),t(U,{span:8},{default:a(()=>[t(G,{title:e.$t("codegen.review_modal.reviewIdStat"),value:h.value.reviewId?h.value.reviewId.slice(0,8):"—","value-style":{fontSize:"14px",fontFamily:"monospace"}},null,8,["title","value"])]),_:1})]),_:1}),v("h5",ia,i(e.$t("codegen.review_modal.bySeverity")),1),t(Se,null,{default:a(()=>[(r(!0),c(P,null,W(_(se),o=>(r(),k(j,{key:o,color:ce(o)},{default:a(()=>[f(i(de(o))+": "+i(h.value.severitySummary[o]||0),1)]),_:2},1032,["color"]))),128))]),_:1}),h.value.reason?(r(),k(et,{key:0,type:"warning","show-icon":"",message:e.$t("codegen.review_modal.failedReason",{reason:h.value.reason}),style:{"margin-top":"12px"}},null,8,["message"])):p("",!0)])):(r(),k(Ze,{key:0,description:e.$t("codegen.review_modal.notReviewed"),image:_(R)},null,8,["description","image"]))])]),_:1},8,["open","title"]),t(Q,{open:te.value,"onUpdate:open":s[23]||(s[23]=o=>te.value=o),title:e.$t("codegen.scaffold_modal.title"),"confirm-loading":E.value,width:560,"ok-text":e.$t("codegen.scaffold_modal.ok"),"cancel-text":e.$t("codegen.scaffold_modal.cancel"),onOk:qe,onCancel:$e},{default:a(()=>[t(ve,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:a(()=>[t(I,{label:e.$t("codegen.scaffold_modal.templateLabel"),required:""},{default:a(()=>[t(at,{value:y.template,"onUpdate:value":s[18]||(s[18]=o=>y.template=o)},{default:a(()=>[(r(!0),c(P,null,W(_(ne),o=>(r(),k(tt,{key:o,value:o},{default:a(()=>[f(i(o),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),_:1},8,["label"]),t(I,{label:e.$t("codegen.scaffold_modal.projectLabel"),required:""},{default:a(()=>[t(D,{value:y.projectName,"onUpdate:value":s[19]||(s[19]=o=>y.projectName=o),placeholder:e.$t("codegen.scaffold_modal.projectPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),t(I,{label:e.$t("codegen.scaffold_modal.optionsLabel")},{default:a(()=>[t(le,{value:y.optionsJson,"onUpdate:value":s[20]||(s[20]=o=>y.optionsJson=o),placeholder:e.$t("codegen.scaffold_modal.optionsPlaceholder"),"auto-size":{minRows:2,maxRows:4}},null,8,["value","placeholder"])]),_:1},8,["label"]),t(I,{label:e.$t("codegen.scaffold_modal.filesLabel")},{default:a(()=>[t(me,{value:y.files,"onUpdate:value":s[21]||(s[21]=o=>y.files=o),min:0,style:{width:"120px"}},null,8,["value"])]),_:1},8,["label"]),t(I,{label:e.$t("codegen.scaffold_modal.outputLabel")},{default:a(()=>[t(D,{value:y.outputPath,"onUpdate:value":s[22]||(s[22]=o=>y.outputPath=o),placeholder:e.$t("codegen.scaffold_modal.outputPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),t(Q,{open:re.value,"onUpdate:open":s[24]||(s[24]=o=>re.value=o),title:e.$t("codegen.gen_details.title",{id:F.value?.id?.slice(0,12)||""}),width:780,footer:null},{default:a(()=>[F.value?(r(),c("div",ra,[t(xe,{column:2,size:"small",bordered:""},{default:a(()=>[t(z,{label:e.$t("codegen.gen_details.id"),span:2},{default:a(()=>[v("span",ua,i(F.value.id),1)]),_:1},8,["label"]),t(z,{label:e.$t("codegen.gen_details.language")},{default:a(()=>[F.value.language?(r(),k(j,{key:0,color:"blue"},{default:a(()=>[f(i(F.value.language),1)]),_:1})):(r(),c("span",da,"—"))]),_:1},8,["label"]),t(z,{label:e.$t("codegen.gen_details.framework")},{default:a(()=>[F.value.framework?(r(),k(j,{key:0,color:"purple"},{default:a(()=>[f(i(F.value.framework),1)]),_:1})):(r(),c("span",ca,"—"))]),_:1},8,["label"]),t(z,{label:e.$t("codegen.gen_details.fileCount")},{default:a(()=>[f(i(F.value.fileCount),1)]),_:1},8,["label"]),t(z,{label:e.$t("codegen.gen_details.tokenCount")},{default:a(()=>[f(i(F.value.tokenCount),1)]),_:1},8,["label"]),t(z,{label:e.$t("codegen.gen_details.createdAt"),span:2},{default:a(()=>[f(i(_(X)(F.value.createdAt)),1)]),_:1},8,["label"]),t(z,{label:e.$t("codegen.gen_details.prompt"),span:2},{default:a(()=>[v("pre",fa,i(F.value.prompt),1)]),_:1},8,["label"]),F.value.generatedCode?(r(),k(z,{key:0,label:e.$t("codegen.gen_details.code"),span:2},{default:a(()=>[v("pre",pa,i(ae(F.value.generatedCode,2e3)),1)]),_:1},8,["label"])):p("",!0)]),_:1})])):p("",!0)]),_:1},8,["open","title"]),t(Q,{open:ue.value,"onUpdate:open":s[25]||(s[25]=o=>ue.value=o),title:e.$t("codegen.review_details.title",{id:$.value?.id?.slice(0,12)||""}),width:720,footer:null},{default:a(()=>[$.value?(r(),c("div",ga,[t(xe,{column:2,size:"small",bordered:""},{default:a(()=>[t(z,{label:e.$t("codegen.review_details.id"),span:2},{default:a(()=>[v("span",ma,i($.value.id),1)]),_:1},8,["label"]),t(z,{label:e.$t("codegen.review_details.codeHash"),span:2},{default:a(()=>[v("span",va,i($.value.codeHash),1)]),_:1},8,["label"]),$.value.generationId?(r(),k(z,{key:0,label:e.$t("codegen.review_details.generationId"),span:2},{default:a(()=>[v("span",ya,i($.value.generationId),1)]),_:1},8,["label"])):p("",!0),t(z,{label:e.$t("codegen.review_details.language")},{default:a(()=>[$.value.language?(r(),k(j,{key:0,color:"blue"},{default:a(()=>[f(i($.value.language),1)]),_:1})):(r(),c("span",_a,"—"))]),_:1},8,["label"]),t(z,{label:e.$t("codegen.review_details.reviewedAt")},{default:a(()=>[f(i(_(X)($.value.reviewedAt)),1)]),_:1},8,["label"]),t(z,{label:e.$t("codegen.review_details.issuesFound")},{default:a(()=>[f(i($.value.issuesFound),1)]),_:1},8,["label"]),t(z,{label:e.$t("codegen.review_details.securityIssues")},{default:a(()=>[v("span",{style:je({color:$.value.securityIssues>0?"#ff4d4f":"#52c41a"})},i($.value.securityIssues),5)]),_:1},8,["label"])]),_:1}),v("h4",ba,i(e.$t("codegen.review_details.bySeverity")),1),(r(!0),c(P,null,W(_(se),o=>(r(),c("div",{key:o,class:"bd-row"},[t(j,{color:ce(o),style:{"min-width":"70px","text-align":"center"}},{default:a(()=>[f(i(de(o)),1)]),_:2},1032,["color"]),t(ot,{percent:Ee($.value.severitySummary[o]||0,$.value.issuesFound),"stroke-color":De(o),format:()=>`${$.value.severitySummary[o]||0}`,size:"small",style:{flex:"1","margin-left":"12px"}},null,8,["percent","stroke-color","format"])]))),128)),$.value.issuesDetail.length?(r(),c("h4",ka,i(e.$t("codegen.review_details.issues")),1)):p("",!0),$.value.issuesDetail.length?(r(),k(nt,{key:1,size:"small","data-source":$.value.issuesDetail,pagination:{pageSize:8}},{renderItem:a(({item:o})=>[t(lt,null,{default:a(()=>[t(j,{color:ce(o.severity),style:{"min-width":"60px","text-align":"center"}},{default:a(()=>[f(i(de(o.severity)),1)]),_:2},1032,["color"]),v("span",wa,i(o.rule),1),v("code",ha,i(ae(o.match,60)),1)]),_:2},1024)]),_:1},8,["data-source"])):p("",!0)])):p("",!0)]),_:1},8,["open","title"])])}}},Ia=st($a,[["__scopeId","data-v-c77cb6a0"]]);export{Ia as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{q as O,f as m,h as $,i as w}from"./index-
|
|
1
|
+
import{q as O,f as m,h as $,i as w}from"./index-CzoKAiyT.js";import{b as G,c as I}from"./index-CnezE05k.js";import{d as R,c as _,f as g}from"./vendor-BXcBOG8b.js";function A(r){return typeof r=="number"?`${r} ${r} auto`:/^\d+(\.\d+)?(px|em|rem|%)$/.test(r)?`0 0 ${r}`:r}const E=()=>({span:[String,Number],order:[String,Number],offset:[String,Number],push:[String,Number],pull:[String,Number],xs:{type:[String,Number,Object],default:void 0},sm:{type:[String,Number,Object],default:void 0},md:{type:[String,Number,Object],default:void 0},lg:{type:[String,Number,Object],default:void 0},xl:{type:[String,Number,Object],default:void 0},xxl:{type:[String,Number,Object],default:void 0},prefixCls:String,flex:[String,Number]}),F=["xs","sm","md","lg","xl","xxl"],q=R({compatConfig:{MODE:3},name:"ACol",inheritAttrs:!1,props:E(),setup(r,b){let{slots:p,attrs:d}=b;const{gutter:S,supportFlexGap:h,wrap:x}=G(),{prefixCls:f,direction:y}=O("col",r),[N,v]=I(f),j=g(()=>{const{span:n,order:u,offset:s,push:o,pull:c}=r,t=f.value;let i={};return F.forEach(l=>{let e={};const a=r[l];typeof a=="number"?e.span=a:typeof a=="object"&&(e=a||{}),i=$($({},i),{[`${t}-${l}-${e.span}`]:e.span!==void 0,[`${t}-${l}-order-${e.order}`]:e.order||e.order===0,[`${t}-${l}-offset-${e.offset}`]:e.offset||e.offset===0,[`${t}-${l}-push-${e.push}`]:e.push||e.push===0,[`${t}-${l}-pull-${e.pull}`]:e.pull||e.pull===0,[`${t}-rtl`]:y.value==="rtl"})}),w(t,{[`${t}-${n}`]:n!==void 0,[`${t}-order-${u}`]:u,[`${t}-offset-${s}`]:s,[`${t}-push-${o}`]:o,[`${t}-pull-${c}`]:c},i,d.class,v.value)}),C=g(()=>{const{flex:n}=r,u=S.value,s={};if(u&&u[0]>0){const o=`${u[0]/2}px`;s.paddingLeft=o,s.paddingRight=o}if(u&&u[1]>0&&!h.value){const o=`${u[1]/2}px`;s.paddingTop=o,s.paddingBottom=o}return n&&(s.flex=A(n),x.value===!1&&!s.minWidth&&(s.minWidth=0)),s});return()=>{var n;return N(_("div",m(m({},d),{},{class:j.value,style:[C.value,d.style]}),[(n=p.default)===null||n===void 0?void 0:n.call(p)]))}}});export{q as C};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{_ as Ce,b as we,u as Fe,S as ze,R as Re,U as Oe,V as Se,W as Te,d as m}from"./index-Cs66y4oC.js";import{R as $e,ak as Ae,aQ as Ue,x as Z,aF as ee,l as te,h as Ie,B as Le,aU as Ne}from"./icons-DlxlFL4g.js";import{r as g,o as Pe,M as y,R as v,P as i,u as o,c as a,N as n,K as p,L as r,O as f,F as S,Y as qe,Q as T,_ as Be,S as k,f as L,a as ae}from"./vendor-BXcBOG8b.js";const je={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},Me={class:"page-title"},Ve={class:"page-sub"},De={key:0,style:{"text-align":"center",padding:"60px"}},Ke={key:1,style:{"text-align":"center",padding:"60px",color:"var(--text-muted)"}},Ee={key:2,class:"post-feed"},Qe={class:"post-head"},We={class:"post-meta"},He={class:"post-author"},Ye={class:"post-time"},Ge={class:"post-body"},Je={style:{color:"var(--text-primary)","font-weight":"500"}},Xe={key:0,style:{color:"var(--text-secondary)","font-size":"11px","font-family":"monospace"}},Ze={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},et={key:0,style:{color:"var(--text-primary)","font-weight":"500"}},tt={key:0,style:{color:"var(--text-secondary)","font-family":"monospace","font-size":"11px"}},at={key:1,style:{color:"var(--text-muted)"}},ot={key:0,style:{color:"var(--text-secondary)","font-size":"12px"}},nt={key:1,style:{color:"var(--text-muted)"}},st={key:3,style:{color:"var(--text-secondary)","font-size":"11px"}},lt={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},ct={__name:"Community",setup(it){const{t:e,locale:oe}=we(),x=Fe(),z=g(!1),N=g(!1),P=g(!1),q=g(""),F=g({...ze}),B=g([]),j=g([]),$=g([]),M=g("posts"),A=g(!1),U=g(!1),h=ae({author:"",content:""}),u=ae({name:"",did:"",email:"",notes:""}),ne=L(()=>[{title:e("community.contactColumns.name"),key:"name",dataIndex:"name",width:"160px"},{title:e("community.contactColumns.did"),key:"did",dataIndex:"did"},{title:e("community.contactColumns.email"),key:"email",dataIndex:"email",width:"200px"},{title:e("community.contactColumns.createdAt"),key:"createdAt",dataIndex:"createdAt",width:"160px"},{title:e("community.contactColumns.action"),key:"action",width:"180px"}]),se=L(()=>[{title:e("community.friendColumns.contact"),key:"contact"},{title:e("community.friendColumns.status"),key:"status",width:"120px"},{title:e("community.friendColumns.createdAt"),key:"createdAt",dataIndex:"createdAt",width:"160px"},{title:e("community.friendColumns.action"),key:"action",width:"100px"}]),le=L(()=>j.value.map(s=>{const t=B.value.find(c=>c.id===s.contactId);return{...s,contactName:t?t.name:""}})),ce=L(()=>new Set(j.value.map(s=>s.contactId)));function ie(s){return ce.value.has(s)}function re(s){const t=["#1677ff","#52c41a","#722ed1","#faad14","#ff4d4f","#13c2c2","#eb2f96"];let c=0;for(let b=0;b<s.length;b++)c=c*31+s.charCodeAt(b)>>>0;return t[c%t.length]}function ue(s){return s?s.length>28?s.slice(0,16)+"..."+s.slice(-8):s:""}function D(s){if(!s)return"—";if(typeof s!="string")return String(s);const t=new Date(s);if(isNaN(t.getTime()))return s;const c=oe.value==="zh-CN"?"zh-CN":"en-US";return t.toLocaleString(c,{hour12:!1})}function de(s){return{accepted:"green",pending:"orange",blocked:"red"}[s]||"default"}function me(s){const t=`community.status.${s}`,c=e(t);return c===t?s:c}async function C(){z.value=!0;try{const[s,t,c,b]=await Promise.all([x.execute("social stats --json",1e4).catch(()=>({output:""})),x.execute("social contact list --json",1e4).catch(()=>({output:""})),x.execute("social friend list --json",1e4).catch(()=>({output:""})),x.execute("social post list --json",1e4).catch(()=>({output:""}))]);F.value=Re(s.output),B.value=Oe(t.output),j.value=Se(c.output),$.value=Te(b.output).sort((_,w)=>(w.createdAt||"").localeCompare(_.createdAt||""))}catch(s){m.error(e("community.messages.loadFailed",{err:s?.message||s}))}finally{z.value=!1}}async function pe(){const s=h.content.trim();if(!s){m.warning(e("community.messages.contentRequired"));return}N.value=!0;try{const t=s.replace(/"/g,'\\"'),c=h.author.trim(),b=c?`social post publish "${t}" --author "${c.replace(/"/g,'\\"')}"`:`social post publish "${t}"`,{output:_}=await x.execute(b,15e3);if(/error|失败/i.test(_)&&!/"id"/.test(_)){m.error(e("community.messages.publishFailed",{err:_.slice(0,120)}));return}m.success(e("community.messages.publishOk")),A.value=!1,K(),await C()}catch(t){m.error(e("community.messages.publishFailed",{err:t?.message||t}))}finally{N.value=!1}}async function ye(){const s=u.name.trim();if(!s){m.warning(e("community.messages.nameRequired"));return}P.value=!0;try{const t=[`social contact add "${s.replace(/"/g,'\\"')}"`];u.did.trim()&&t.push(`--did "${u.did.trim().replace(/"/g,'\\"')}"`),u.email.trim()&&t.push(`--email "${u.email.trim().replace(/"/g,'\\"')}"`),u.notes.trim()&&t.push(`--notes "${u.notes.trim().replace(/"/g,'\\"')}"`);const{output:c}=await x.execute(t.join(" "),15e3);if(/error|失败/i.test(c)&&!/"id"/.test(c)){m.error(e("community.messages.addFailed",{err:c.slice(0,120)}));return}m.success(e("community.messages.addOk")),U.value=!1,E(),await C()}catch(t){m.error(e("community.messages.addFailed",{err:t?.message||t}))}finally{P.value=!1}}async function fe(s){try{const{output:t}=await x.execute(`social contact delete ${s.id}`,1e4);if(/error|失败/i.test(t)){m.error(e("community.messages.deleteFailed",{err:t.slice(0,120)}));return}m.success(e("community.messages.deleteOk")),await C()}catch(t){m.error(e("community.messages.deleteFailed",{err:t?.message||t}))}}async function ve(s){q.value=s.id;try{const{output:t}=await x.execute(`social friend add ${s.id}`,1e4);if(/error|失败/i.test(t)&&!/"id"/.test(t)){m.error(e("community.messages.friendRequestFailed",{err:t.slice(0,120)}));return}m.success(e("community.messages.friendRequestOk")),await C(),M.value="friends"}catch(t){m.error(e("community.messages.friendRequestFailed",{err:t?.message||t}))}finally{q.value=""}}async function _e(s){try{const{output:t}=await x.execute(`social friend remove ${s.contactId}`,1e4);if(/error|失败/i.test(t)){m.error(e("community.messages.removeFailed",{err:t.slice(0,120)}));return}m.success(e("community.messages.removeOk")),await C()}catch(t){m.error(e("community.messages.removeFailed",{err:t?.message||t}))}}async function ge(s){try{await x.execute(`social post like ${s.id}`,1e4),s.likes++,C()}catch(t){m.error(e("community.messages.likeFailed",{err:t?.message||t}))}}function K(){h.author="",h.content=""}function E(){u.name="",u.did="",u.email="",u.notes=""}return Pe(C),(s,t)=>{const c=p("a-button"),b=p("a-space"),_=p("a-statistic"),w=p("a-card"),O=p("a-col"),xe=p("a-row"),be=p("a-spin"),ke=p("a-avatar"),V=p("a-tab-pane"),Q=p("a-tag"),W=p("a-popconfirm"),H=p("a-table"),he=p("a-tabs"),I=p("a-input"),R=p("a-form-item"),Y=p("a-textarea"),G=p("a-form"),J=p("a-modal");return r(),y("div",null,[v("div",je,[v("div",null,[v("h2",Me,i(o(e)("community.title")),1),v("p",Ve,i(o(e)("community.subtitle")),1)]),a(b,null,{default:n(()=>[a(c,{loading:z.value,onClick:C},{icon:n(()=>[a(o($e))]),default:n(()=>[f(" "+i(o(e)("community.refresh")),1)]),_:1},8,["loading"]),a(c,{type:"primary",onClick:t[0]||(t[0]=l=>A.value=!0)},{icon:n(()=>[a(o(Ae))]),default:n(()=>[f(" "+i(o(e)("community.publishButton")),1)]),_:1}),a(c,{onClick:t[1]||(t[1]=l=>U.value=!0)},{icon:n(()=>[a(o(Ue))]),default:n(()=>[f(" "+i(o(e)("community.addContactButton")),1)]),_:1})]),_:1})]),a(xe,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:n(()=>[a(O,{xs:12,sm:8,lg:5},{default:n(()=>[a(w,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:n(()=>[a(_,{title:o(e)("community.stats.contacts"),value:F.value.contacts,"value-style":{color:"#1677ff",fontSize:"20px"}},{prefix:n(()=>[a(o(Z))]),_:1},8,["title","value"])]),_:1})]),_:1}),a(O,{xs:12,sm:8,lg:5},{default:n(()=>[a(w,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:n(()=>[a(_,{title:o(e)("community.stats.friends"),value:F.value.friends,"value-style":{color:"#52c41a",fontSize:"20px"}},{prefix:n(()=>[a(o(ee))]),_:1},8,["title","value"])]),_:1})]),_:1}),a(O,{xs:12,sm:8,lg:5},{default:n(()=>[a(w,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:n(()=>[a(_,{title:o(e)("community.stats.posts"),value:F.value.posts,"value-style":{color:"#722ed1",fontSize:"20px"}},{prefix:n(()=>[a(o(te))]),_:1},8,["title","value"])]),_:1})]),_:1}),a(O,{xs:12,sm:8,lg:5},{default:n(()=>[a(w,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:n(()=>[a(_,{title:o(e)("community.stats.messages"),value:F.value.messages,"value-style":{color:"#faad14",fontSize:"20px"}},{prefix:n(()=>[a(o(Ie))]),_:1},8,["title","value"])]),_:1})]),_:1}),a(O,{xs:24,sm:8,lg:4},{default:n(()=>[a(w,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:n(()=>[a(_,{title:o(e)("community.stats.pendingRequests"),value:F.value.pendingRequests,"value-style":{color:F.value.pendingRequests>0?"#ff4d4f":"#888",fontSize:"20px"}},{prefix:n(()=>[a(o(Le))]),_:1},8,["title","value","value-style"])]),_:1})]),_:1})]),_:1}),a(he,{activeKey:M.value,"onUpdate:activeKey":t[2]||(t[2]=l=>M.value=l),class:"community-tabs"},{default:n(()=>[a(V,{key:"posts",tab:o(e)("community.tabs.posts")},{default:n(()=>[z.value&&!$.value.length?(r(),y("div",De,[a(be,{size:"large"})])):$.value.length?(r(),y("div",Ee,[(r(!0),y(S,null,qe($.value,l=>(r(),T(w,{key:l.key,class:"post-card","body-style":{padding:"16px"}},{default:n(()=>[v("div",Qe,[a(ke,{style:Be({backgroundColor:re(l.author)})},{default:n(()=>[f(i(l.author.slice(0,1).toUpperCase()),1)]),_:2},1032,["style"]),v("div",We,[v("div",He,i(l.author),1),v("div",Ye,i(D(l.createdAt)),1)]),a(c,{size:"small",type:"text",onClick:d=>ge(l)},{icon:n(()=>[a(o(Ne))]),default:n(()=>[f(" "+i(l.likes),1)]),_:2},1032,["onClick"])]),v("div",Ge,i(l.content),1)]),_:2},1024))),128))])):(r(),y("div",Ke,[a(o(te),{style:{"font-size":"40px","margin-bottom":"12px",display:"block"}}),f(" "+i(o(e)("community.posts.emptyText")),1)]))]),_:1},8,["tab"]),a(V,{key:"friends",tab:o(e)("community.tabs.friends")},{default:n(()=>[a(H,{columns:se.value,"data-source":le.value,pagination:{pageSize:20,showTotal:l=>o(e)("community.totals.rows",{count:l})},size:"small",loading:z.value,style:{background:"var(--bg-card)"}},{bodyCell:n(({column:l,record:d})=>[l.key==="contact"?(r(),y(S,{key:0},[v("span",Je,i(d.contactName||d.contactId),1),d.contactName?(r(),y("div",Xe,i(d.contactId),1)):k("",!0)],64)):k("",!0),l.key==="status"?(r(),T(Q,{key:1,color:de(d.status)},{default:n(()=>[f(i(me(d.status)),1)]),_:2},1032,["color"])):k("",!0),l.key==="action"?(r(),T(W,{key:2,title:o(e)("community.friends.removeConfirm"),"ok-text":o(e)("community.friends.removeOk"),"cancel-text":o(e)("common.cancel"),onConfirm:X=>_e(d)},{default:n(()=>[a(c,{size:"small",type:"link",danger:""},{default:n(()=>[f(i(o(e)("community.friends.remove")),1)]),_:1})]),_:1},8,["title","ok-text","cancel-text","onConfirm"])):k("",!0)]),emptyText:n(()=>[v("div",Ze,[a(o(ee),{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),f(" "+i(o(e)("community.friends.emptyText")),1)])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"]),a(V,{key:"contacts",tab:o(e)("community.tabs.contacts")},{default:n(()=>[a(H,{columns:ne.value,"data-source":B.value,pagination:{pageSize:20,showTotal:l=>o(e)("community.totals.rows",{count:l})},size:"small",loading:z.value,style:{background:"var(--bg-card)"}},{bodyCell:n(({column:l,record:d})=>[l.key==="name"?(r(),y("span",et,i(d.name),1)):k("",!0),l.key==="did"?(r(),y(S,{key:1},[d.did?(r(),y("span",tt,i(ue(d.did)),1)):(r(),y("span",at,"—"))],64)):k("",!0),l.key==="email"?(r(),y(S,{key:2},[d.email?(r(),y("span",ot,i(d.email),1)):(r(),y("span",nt,"—"))],64)):k("",!0),l.key==="createdAt"?(r(),y("span",st,i(D(d.createdAt)),1)):k("",!0),l.key==="action"?(r(),y(S,{key:4},[ie(d.id)?(r(),T(Q,{key:1,color:"green",style:{"font-size":"11px"}},{default:n(()=>[f(i(o(e)("community.contacts.alreadyFriend")),1)]),_:1})):(r(),T(c,{key:0,size:"small",type:"link",loading:q.value===d.id,onClick:X=>ve(d)},{default:n(()=>[f(i(o(e)("community.contacts.addFriend")),1)]),_:1},8,["loading","onClick"])),a(W,{title:o(e)("community.contacts.deleteConfirm"),"ok-text":o(e)("community.contacts.deleteOk"),"cancel-text":o(e)("common.cancel"),onConfirm:X=>fe(d)},{default:n(()=>[a(c,{size:"small",type:"link",danger:"",style:{"margin-left":"4px"}},{default:n(()=>[f(i(o(e)("community.contacts.delete")),1)]),_:1})]),_:1},8,["title","ok-text","cancel-text","onConfirm"])],64)):k("",!0)]),emptyText:n(()=>[v("div",lt,[a(o(Z),{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),f(" "+i(o(e)("community.contacts.emptyText")),1)])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"])]),_:1},8,["activeKey"]),a(J,{open:A.value,"onUpdate:open":t[5]||(t[5]=l=>A.value=l),title:o(e)("community.posts.publishTitle"),"confirm-loading":N.value,"ok-text":o(e)("community.posts.publishOk"),"cancel-text":o(e)("common.cancel"),onOk:pe,onCancel:K},{default:n(()=>[a(G,{"label-col":{span:4},"wrapper-col":{span:20},style:{"margin-top":"16px"}},{default:n(()=>[a(R,{label:o(e)("community.posts.authorLabel")},{default:n(()=>[a(I,{value:h.author,"onUpdate:value":t[3]||(t[3]=l=>h.author=l),placeholder:o(e)("community.posts.authorPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),a(R,{label:o(e)("community.posts.contentLabel"),required:""},{default:n(()=>[a(Y,{value:h.content,"onUpdate:value":t[4]||(t[4]=l=>h.content=l),placeholder:o(e)("community.posts.contentPlaceholder"),"auto-size":{minRows:4,maxRows:10},maxlength:2e3,"show-count":""},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),a(J,{open:U.value,"onUpdate:open":t[10]||(t[10]=l=>U.value=l),title:o(e)("community.contacts.addTitle"),"confirm-loading":P.value,"ok-text":o(e)("community.contacts.addOk"),"cancel-text":o(e)("common.cancel"),onOk:ye,onCancel:E},{default:n(()=>[a(G,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:n(()=>[a(R,{label:o(e)("community.contacts.nameLabel"),required:""},{default:n(()=>[a(I,{value:u.name,"onUpdate:value":t[6]||(t[6]=l=>u.name=l),placeholder:o(e)("community.contacts.namePlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),a(R,{label:o(e)("community.contacts.didLabel")},{default:n(()=>[a(I,{value:u.did,"onUpdate:value":t[7]||(t[7]=l=>u.did=l),placeholder:o(e)("community.contacts.didPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),a(R,{label:o(e)("community.contacts.emailLabel")},{default:n(()=>[a(I,{value:u.email,"onUpdate:value":t[8]||(t[8]=l=>u.email=l),placeholder:o(e)("community.contacts.emailPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),a(R,{label:o(e)("community.contacts.notesLabel")},{default:n(()=>[a(Y,{value:u.notes,"onUpdate:value":t[9]||(t[9]=l=>u.notes=l),"auto-size":{minRows:2,maxRows:4}},null,8,["value"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"])])}}},mt=Ce(ct,[["__scopeId","data-v-a3181cb0"]]);export{mt as default};
|
|
1
|
+
import{_ as Ce,b as we,u as Fe,S as ze,R as Re,U as Oe,V as Se,W as Te,d as m}from"./index-CzoKAiyT.js";import{R as $e,ak as Ae,aQ as Ue,x as Z,aF as ee,l as te,h as Ie,B as Le,aU as Ne}from"./icons-DlxlFL4g.js";import{r as g,o as Pe,M as y,R as v,P as i,u as o,c as a,N as n,K as p,L as r,O as f,F as S,Y as qe,Q as T,_ as Be,S as k,f as L,a as ae}from"./vendor-BXcBOG8b.js";const je={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},Me={class:"page-title"},Ve={class:"page-sub"},De={key:0,style:{"text-align":"center",padding:"60px"}},Ke={key:1,style:{"text-align":"center",padding:"60px",color:"var(--text-muted)"}},Ee={key:2,class:"post-feed"},Qe={class:"post-head"},We={class:"post-meta"},He={class:"post-author"},Ye={class:"post-time"},Ge={class:"post-body"},Je={style:{color:"var(--text-primary)","font-weight":"500"}},Xe={key:0,style:{color:"var(--text-secondary)","font-size":"11px","font-family":"monospace"}},Ze={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},et={key:0,style:{color:"var(--text-primary)","font-weight":"500"}},tt={key:0,style:{color:"var(--text-secondary)","font-family":"monospace","font-size":"11px"}},at={key:1,style:{color:"var(--text-muted)"}},ot={key:0,style:{color:"var(--text-secondary)","font-size":"12px"}},nt={key:1,style:{color:"var(--text-muted)"}},st={key:3,style:{color:"var(--text-secondary)","font-size":"11px"}},lt={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},ct={__name:"Community",setup(it){const{t:e,locale:oe}=we(),x=Fe(),z=g(!1),N=g(!1),P=g(!1),q=g(""),F=g({...ze}),B=g([]),j=g([]),$=g([]),M=g("posts"),A=g(!1),U=g(!1),h=ae({author:"",content:""}),u=ae({name:"",did:"",email:"",notes:""}),ne=L(()=>[{title:e("community.contactColumns.name"),key:"name",dataIndex:"name",width:"160px"},{title:e("community.contactColumns.did"),key:"did",dataIndex:"did"},{title:e("community.contactColumns.email"),key:"email",dataIndex:"email",width:"200px"},{title:e("community.contactColumns.createdAt"),key:"createdAt",dataIndex:"createdAt",width:"160px"},{title:e("community.contactColumns.action"),key:"action",width:"180px"}]),se=L(()=>[{title:e("community.friendColumns.contact"),key:"contact"},{title:e("community.friendColumns.status"),key:"status",width:"120px"},{title:e("community.friendColumns.createdAt"),key:"createdAt",dataIndex:"createdAt",width:"160px"},{title:e("community.friendColumns.action"),key:"action",width:"100px"}]),le=L(()=>j.value.map(s=>{const t=B.value.find(c=>c.id===s.contactId);return{...s,contactName:t?t.name:""}})),ce=L(()=>new Set(j.value.map(s=>s.contactId)));function ie(s){return ce.value.has(s)}function re(s){const t=["#1677ff","#52c41a","#722ed1","#faad14","#ff4d4f","#13c2c2","#eb2f96"];let c=0;for(let b=0;b<s.length;b++)c=c*31+s.charCodeAt(b)>>>0;return t[c%t.length]}function ue(s){return s?s.length>28?s.slice(0,16)+"..."+s.slice(-8):s:""}function D(s){if(!s)return"—";if(typeof s!="string")return String(s);const t=new Date(s);if(isNaN(t.getTime()))return s;const c=oe.value==="zh-CN"?"zh-CN":"en-US";return t.toLocaleString(c,{hour12:!1})}function de(s){return{accepted:"green",pending:"orange",blocked:"red"}[s]||"default"}function me(s){const t=`community.status.${s}`,c=e(t);return c===t?s:c}async function C(){z.value=!0;try{const[s,t,c,b]=await Promise.all([x.execute("social stats --json",1e4).catch(()=>({output:""})),x.execute("social contact list --json",1e4).catch(()=>({output:""})),x.execute("social friend list --json",1e4).catch(()=>({output:""})),x.execute("social post list --json",1e4).catch(()=>({output:""}))]);F.value=Re(s.output),B.value=Oe(t.output),j.value=Se(c.output),$.value=Te(b.output).sort((_,w)=>(w.createdAt||"").localeCompare(_.createdAt||""))}catch(s){m.error(e("community.messages.loadFailed",{err:s?.message||s}))}finally{z.value=!1}}async function pe(){const s=h.content.trim();if(!s){m.warning(e("community.messages.contentRequired"));return}N.value=!0;try{const t=s.replace(/"/g,'\\"'),c=h.author.trim(),b=c?`social post publish "${t}" --author "${c.replace(/"/g,'\\"')}"`:`social post publish "${t}"`,{output:_}=await x.execute(b,15e3);if(/error|失败/i.test(_)&&!/"id"/.test(_)){m.error(e("community.messages.publishFailed",{err:_.slice(0,120)}));return}m.success(e("community.messages.publishOk")),A.value=!1,K(),await C()}catch(t){m.error(e("community.messages.publishFailed",{err:t?.message||t}))}finally{N.value=!1}}async function ye(){const s=u.name.trim();if(!s){m.warning(e("community.messages.nameRequired"));return}P.value=!0;try{const t=[`social contact add "${s.replace(/"/g,'\\"')}"`];u.did.trim()&&t.push(`--did "${u.did.trim().replace(/"/g,'\\"')}"`),u.email.trim()&&t.push(`--email "${u.email.trim().replace(/"/g,'\\"')}"`),u.notes.trim()&&t.push(`--notes "${u.notes.trim().replace(/"/g,'\\"')}"`);const{output:c}=await x.execute(t.join(" "),15e3);if(/error|失败/i.test(c)&&!/"id"/.test(c)){m.error(e("community.messages.addFailed",{err:c.slice(0,120)}));return}m.success(e("community.messages.addOk")),U.value=!1,E(),await C()}catch(t){m.error(e("community.messages.addFailed",{err:t?.message||t}))}finally{P.value=!1}}async function fe(s){try{const{output:t}=await x.execute(`social contact delete ${s.id}`,1e4);if(/error|失败/i.test(t)){m.error(e("community.messages.deleteFailed",{err:t.slice(0,120)}));return}m.success(e("community.messages.deleteOk")),await C()}catch(t){m.error(e("community.messages.deleteFailed",{err:t?.message||t}))}}async function ve(s){q.value=s.id;try{const{output:t}=await x.execute(`social friend add ${s.id}`,1e4);if(/error|失败/i.test(t)&&!/"id"/.test(t)){m.error(e("community.messages.friendRequestFailed",{err:t.slice(0,120)}));return}m.success(e("community.messages.friendRequestOk")),await C(),M.value="friends"}catch(t){m.error(e("community.messages.friendRequestFailed",{err:t?.message||t}))}finally{q.value=""}}async function _e(s){try{const{output:t}=await x.execute(`social friend remove ${s.contactId}`,1e4);if(/error|失败/i.test(t)){m.error(e("community.messages.removeFailed",{err:t.slice(0,120)}));return}m.success(e("community.messages.removeOk")),await C()}catch(t){m.error(e("community.messages.removeFailed",{err:t?.message||t}))}}async function ge(s){try{await x.execute(`social post like ${s.id}`,1e4),s.likes++,C()}catch(t){m.error(e("community.messages.likeFailed",{err:t?.message||t}))}}function K(){h.author="",h.content=""}function E(){u.name="",u.did="",u.email="",u.notes=""}return Pe(C),(s,t)=>{const c=p("a-button"),b=p("a-space"),_=p("a-statistic"),w=p("a-card"),O=p("a-col"),xe=p("a-row"),be=p("a-spin"),ke=p("a-avatar"),V=p("a-tab-pane"),Q=p("a-tag"),W=p("a-popconfirm"),H=p("a-table"),he=p("a-tabs"),I=p("a-input"),R=p("a-form-item"),Y=p("a-textarea"),G=p("a-form"),J=p("a-modal");return r(),y("div",null,[v("div",je,[v("div",null,[v("h2",Me,i(o(e)("community.title")),1),v("p",Ve,i(o(e)("community.subtitle")),1)]),a(b,null,{default:n(()=>[a(c,{loading:z.value,onClick:C},{icon:n(()=>[a(o($e))]),default:n(()=>[f(" "+i(o(e)("community.refresh")),1)]),_:1},8,["loading"]),a(c,{type:"primary",onClick:t[0]||(t[0]=l=>A.value=!0)},{icon:n(()=>[a(o(Ae))]),default:n(()=>[f(" "+i(o(e)("community.publishButton")),1)]),_:1}),a(c,{onClick:t[1]||(t[1]=l=>U.value=!0)},{icon:n(()=>[a(o(Ue))]),default:n(()=>[f(" "+i(o(e)("community.addContactButton")),1)]),_:1})]),_:1})]),a(xe,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:n(()=>[a(O,{xs:12,sm:8,lg:5},{default:n(()=>[a(w,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:n(()=>[a(_,{title:o(e)("community.stats.contacts"),value:F.value.contacts,"value-style":{color:"#1677ff",fontSize:"20px"}},{prefix:n(()=>[a(o(Z))]),_:1},8,["title","value"])]),_:1})]),_:1}),a(O,{xs:12,sm:8,lg:5},{default:n(()=>[a(w,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:n(()=>[a(_,{title:o(e)("community.stats.friends"),value:F.value.friends,"value-style":{color:"#52c41a",fontSize:"20px"}},{prefix:n(()=>[a(o(ee))]),_:1},8,["title","value"])]),_:1})]),_:1}),a(O,{xs:12,sm:8,lg:5},{default:n(()=>[a(w,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:n(()=>[a(_,{title:o(e)("community.stats.posts"),value:F.value.posts,"value-style":{color:"#722ed1",fontSize:"20px"}},{prefix:n(()=>[a(o(te))]),_:1},8,["title","value"])]),_:1})]),_:1}),a(O,{xs:12,sm:8,lg:5},{default:n(()=>[a(w,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:n(()=>[a(_,{title:o(e)("community.stats.messages"),value:F.value.messages,"value-style":{color:"#faad14",fontSize:"20px"}},{prefix:n(()=>[a(o(Ie))]),_:1},8,["title","value"])]),_:1})]),_:1}),a(O,{xs:24,sm:8,lg:4},{default:n(()=>[a(w,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:n(()=>[a(_,{title:o(e)("community.stats.pendingRequests"),value:F.value.pendingRequests,"value-style":{color:F.value.pendingRequests>0?"#ff4d4f":"#888",fontSize:"20px"}},{prefix:n(()=>[a(o(Le))]),_:1},8,["title","value","value-style"])]),_:1})]),_:1})]),_:1}),a(he,{activeKey:M.value,"onUpdate:activeKey":t[2]||(t[2]=l=>M.value=l),class:"community-tabs"},{default:n(()=>[a(V,{key:"posts",tab:o(e)("community.tabs.posts")},{default:n(()=>[z.value&&!$.value.length?(r(),y("div",De,[a(be,{size:"large"})])):$.value.length?(r(),y("div",Ee,[(r(!0),y(S,null,qe($.value,l=>(r(),T(w,{key:l.key,class:"post-card","body-style":{padding:"16px"}},{default:n(()=>[v("div",Qe,[a(ke,{style:Be({backgroundColor:re(l.author)})},{default:n(()=>[f(i(l.author.slice(0,1).toUpperCase()),1)]),_:2},1032,["style"]),v("div",We,[v("div",He,i(l.author),1),v("div",Ye,i(D(l.createdAt)),1)]),a(c,{size:"small",type:"text",onClick:d=>ge(l)},{icon:n(()=>[a(o(Ne))]),default:n(()=>[f(" "+i(l.likes),1)]),_:2},1032,["onClick"])]),v("div",Ge,i(l.content),1)]),_:2},1024))),128))])):(r(),y("div",Ke,[a(o(te),{style:{"font-size":"40px","margin-bottom":"12px",display:"block"}}),f(" "+i(o(e)("community.posts.emptyText")),1)]))]),_:1},8,["tab"]),a(V,{key:"friends",tab:o(e)("community.tabs.friends")},{default:n(()=>[a(H,{columns:se.value,"data-source":le.value,pagination:{pageSize:20,showTotal:l=>o(e)("community.totals.rows",{count:l})},size:"small",loading:z.value,style:{background:"var(--bg-card)"}},{bodyCell:n(({column:l,record:d})=>[l.key==="contact"?(r(),y(S,{key:0},[v("span",Je,i(d.contactName||d.contactId),1),d.contactName?(r(),y("div",Xe,i(d.contactId),1)):k("",!0)],64)):k("",!0),l.key==="status"?(r(),T(Q,{key:1,color:de(d.status)},{default:n(()=>[f(i(me(d.status)),1)]),_:2},1032,["color"])):k("",!0),l.key==="action"?(r(),T(W,{key:2,title:o(e)("community.friends.removeConfirm"),"ok-text":o(e)("community.friends.removeOk"),"cancel-text":o(e)("common.cancel"),onConfirm:X=>_e(d)},{default:n(()=>[a(c,{size:"small",type:"link",danger:""},{default:n(()=>[f(i(o(e)("community.friends.remove")),1)]),_:1})]),_:1},8,["title","ok-text","cancel-text","onConfirm"])):k("",!0)]),emptyText:n(()=>[v("div",Ze,[a(o(ee),{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),f(" "+i(o(e)("community.friends.emptyText")),1)])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"]),a(V,{key:"contacts",tab:o(e)("community.tabs.contacts")},{default:n(()=>[a(H,{columns:ne.value,"data-source":B.value,pagination:{pageSize:20,showTotal:l=>o(e)("community.totals.rows",{count:l})},size:"small",loading:z.value,style:{background:"var(--bg-card)"}},{bodyCell:n(({column:l,record:d})=>[l.key==="name"?(r(),y("span",et,i(d.name),1)):k("",!0),l.key==="did"?(r(),y(S,{key:1},[d.did?(r(),y("span",tt,i(ue(d.did)),1)):(r(),y("span",at,"—"))],64)):k("",!0),l.key==="email"?(r(),y(S,{key:2},[d.email?(r(),y("span",ot,i(d.email),1)):(r(),y("span",nt,"—"))],64)):k("",!0),l.key==="createdAt"?(r(),y("span",st,i(D(d.createdAt)),1)):k("",!0),l.key==="action"?(r(),y(S,{key:4},[ie(d.id)?(r(),T(Q,{key:1,color:"green",style:{"font-size":"11px"}},{default:n(()=>[f(i(o(e)("community.contacts.alreadyFriend")),1)]),_:1})):(r(),T(c,{key:0,size:"small",type:"link",loading:q.value===d.id,onClick:X=>ve(d)},{default:n(()=>[f(i(o(e)("community.contacts.addFriend")),1)]),_:1},8,["loading","onClick"])),a(W,{title:o(e)("community.contacts.deleteConfirm"),"ok-text":o(e)("community.contacts.deleteOk"),"cancel-text":o(e)("common.cancel"),onConfirm:X=>fe(d)},{default:n(()=>[a(c,{size:"small",type:"link",danger:"",style:{"margin-left":"4px"}},{default:n(()=>[f(i(o(e)("community.contacts.delete")),1)]),_:1})]),_:1},8,["title","ok-text","cancel-text","onConfirm"])],64)):k("",!0)]),emptyText:n(()=>[v("div",lt,[a(o(Z),{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),f(" "+i(o(e)("community.contacts.emptyText")),1)])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"])]),_:1},8,["activeKey"]),a(J,{open:A.value,"onUpdate:open":t[5]||(t[5]=l=>A.value=l),title:o(e)("community.posts.publishTitle"),"confirm-loading":N.value,"ok-text":o(e)("community.posts.publishOk"),"cancel-text":o(e)("common.cancel"),onOk:pe,onCancel:K},{default:n(()=>[a(G,{"label-col":{span:4},"wrapper-col":{span:20},style:{"margin-top":"16px"}},{default:n(()=>[a(R,{label:o(e)("community.posts.authorLabel")},{default:n(()=>[a(I,{value:h.author,"onUpdate:value":t[3]||(t[3]=l=>h.author=l),placeholder:o(e)("community.posts.authorPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),a(R,{label:o(e)("community.posts.contentLabel"),required:""},{default:n(()=>[a(Y,{value:h.content,"onUpdate:value":t[4]||(t[4]=l=>h.content=l),placeholder:o(e)("community.posts.contentPlaceholder"),"auto-size":{minRows:4,maxRows:10},maxlength:2e3,"show-count":""},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),a(J,{open:U.value,"onUpdate:open":t[10]||(t[10]=l=>U.value=l),title:o(e)("community.contacts.addTitle"),"confirm-loading":P.value,"ok-text":o(e)("community.contacts.addOk"),"cancel-text":o(e)("common.cancel"),onOk:ye,onCancel:E},{default:n(()=>[a(G,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:n(()=>[a(R,{label:o(e)("community.contacts.nameLabel"),required:""},{default:n(()=>[a(I,{value:u.name,"onUpdate:value":t[6]||(t[6]=l=>u.name=l),placeholder:o(e)("community.contacts.namePlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),a(R,{label:o(e)("community.contacts.didLabel")},{default:n(()=>[a(I,{value:u.did,"onUpdate:value":t[7]||(t[7]=l=>u.did=l),placeholder:o(e)("community.contacts.didPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),a(R,{label:o(e)("community.contacts.emailLabel")},{default:n(()=>[a(I,{value:u.email,"onUpdate:value":t[8]||(t[8]=l=>u.email=l),placeholder:o(e)("community.contacts.emailPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),a(R,{label:o(e)("community.contacts.notesLabel")},{default:n(()=>[a(Y,{value:u.notes,"onUpdate:value":t[9]||(t[9]=l=>u.notes=l),"auto-size":{minRows:2,maxRows:4}},null,8,["value"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"])])}}},mt=Ce(ct,[["__scopeId","data-v-a3181cb0"]]);export{mt as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{l as j,i as x,q as k,L as D,f as I,H as S,P as v,Q as y}from"./index-
|
|
1
|
+
import{l as j,i as x,q as k,L as D,f as I,H as S,P as v,Q as y}from"./index-CzoKAiyT.js";import{c as A}from"./createContext-BRto-SQH.js";import{i as L,a as N,b as O,c as T,d as _,g as w,e as F,f as B}from"./_getTag-BVc6NQ_K.js";import{f as i,d as g,c as b}from"./vendor-BXcBOG8b.js";const H=t=>{const{componentCls:o}=t;return{[o]:{display:"inline-flex","&-block":{display:"flex",width:"100%"},"&-vertical":{flexDirection:"column"}}}},q=t=>{const{componentCls:o}=t;return{[o]:{display:"inline-flex","&-rtl":{direction:"rtl"},"&-vertical":{flexDirection:"column"},"&-align":{flexDirection:"column","&-center":{alignItems:"center"},"&-start":{alignItems:"flex-start"},"&-end":{alignItems:"flex-end"},"&-baseline":{alignItems:"baseline"}},[`${o}-item`]:{"&:empty":{display:"none"}}}}},E=j("Space",t=>[q(t),H(t)]);var K="[object Map]",M="[object Set]",Q=Object.prototype,R=Q.hasOwnProperty;function h(t){if(t==null)return!0;if(L(t)&&(N(t)||typeof t=="string"||typeof t.splice=="function"||O(t)||T(t)||_(t)))return!t.length;var o=w(t);if(o==K||o==M)return!t.size;if(F(t))return!B(t).length;for(var e in t)if(R.call(t,e))return!1;return!0}const V=()=>({compactSize:String,compactDirection:v.oneOf(y("horizontal","vertical")).def("horizontal"),isFirstItem:S(),isLastItem:S()}),s=A(null),Z=(t,o)=>{const e=s.useInject(),a=i(()=>{if(!e||h(e))return"";const{compactDirection:r,isFirstItem:l,isLastItem:n}=e,c=r==="vertical"?"-vertical-":"-";return x({[`${t.value}-compact${c}item`]:!0,[`${t.value}-compact${c}first-item`]:l,[`${t.value}-compact${c}last-item`]:n,[`${t.value}-compact${c}item-rtl`]:o.value==="rtl"})});return{compactSize:i(()=>e?.compactSize),compactDirection:i(()=>e?.compactDirection),compactItemClassnames:a}},tt=g({name:"NoCompactStyle",setup(t,o){let{slots:e}=o;return s.useProvide(null),()=>{var a;return(a=e.default)===null||a===void 0?void 0:a.call(e)}}}),G=()=>({prefixCls:String,size:{type:String},direction:v.oneOf(y("horizontal","vertical")).def("horizontal"),align:v.oneOf(y("start","end","center","baseline")),block:{type:Boolean,default:void 0}}),J=g({name:"CompactItem",props:V(),setup(t,o){let{slots:e}=o;return s.useProvide(t),()=>{var a;return(a=e.default)===null||a===void 0?void 0:a.call(e)}}}),et=g({name:"ASpaceCompact",inheritAttrs:!1,props:G(),setup(t,o){let{attrs:e,slots:a}=o;const{prefixCls:r,direction:l}=k("space-compact",t),n=s.useInject(),[c,$]=E(r),z=i(()=>x(r.value,$.value,{[`${r.value}-rtl`]:l.value==="rtl",[`${r.value}-block`]:t.block,[`${r.value}-vertical`]:t.direction==="vertical"}));return()=>{var m;const p=D(((m=a.default)===null||m===void 0?void 0:m.call(a))||[]);return p.length===0?null:c(b("div",I(I({},e),{},{class:[z.value,e.class]}),[p.map((u,d)=>{var f;const P=u&&u.key||`${r.value}-item-${d}`,C=!n||h(n);return b(J,{key:P,compactSize:(f=t.size)!==null&&f!==void 0?f:"middle",compactDirection:t.direction,isFirstItem:d===0&&(C||n?.isFirstItem),isLastItem:d===p.length-1&&(C||n?.isLastItem)},{default:()=>[u]})})]))}}});export{et as C,tt as N,E as a,Z as u};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as P,_ as Ee,u as Ie,b as qe,d as v}from"./index-Cs66y4oC.js";import{R as Me,at as Pe,b4 as De,w as Ke,b3 as Ve,K as de,a7 as We,al as me,an as Ye,A as He}from"./icons-DlxlFL4g.js";import{o as Je,M as p,R as b,P as r,c as a,N as l,Q as h,S as m,K as d,r as g,L as c,O as f,u as _,F,Y as M,_ as ye,f as U,a as le}from"./vendor-BXcBOG8b.js";const Qe=Object.freeze(["file-md5","file-sha1","file-sha256","file-sha512","ipv4","ipv6","domain","url","email"]);function A(t,s=0){return typeof t=="number"&&Number.isFinite(t)?t:s}function fe(t,s=0){if(!t||typeof t!="object")return null;const n=t.id||"";if(!n)return null;const z=Array.isArray(t.labels)?t.labels:[];return{key:n,id:n,type:String(t.type||""),value:String(t.value||""),labels:z,confidence:t.confidence!=null?A(t.confidence,null):null,sourceId:t.sourceId??t.source_id??null,sourceName:t.sourceName??t.source_name??null,validFrom:t.validFrom??t.valid_from??null,validUntil:t.validUntil??t.valid_until??null,firstSeenAt:t.firstSeenAt??t.first_seen_at??null,lastSeenAt:t.lastSeenAt??t.last_seen_at??null,_idx:s}}function Ge(t){const s=P(t);return Array.isArray(s)?s.map(fe).filter(Boolean):[]}function Xe(t){const s=P(t);return!s||typeof s!="object"||Array.isArray(s)?null:{matched:!!s.matched,type:String(s.type||"unknown"),indicator:s.indicator?fe(s.indicator):null}}function Ze(t){const s={total:0,byType:{}},n=P(t);if(!n||typeof n!="object"||Array.isArray(n))return s;if(s.total=A(n.total,0),n.byType&&typeof n.byType=="object")for(const[z,R]of Object.entries(n.byType))typeof R=="number"&&Number.isFinite(R)&&(s.byType[z]=R);return s}function et(t,s=0){if(!t||typeof t!="object")return null;const n=t.entity||"";return n?{key:n,entity:n,eventCount:A(t.eventCount??t.event_count,0),failureRate:A(t.failureRate??t.failure_rate,0),uniqueResources:A(t.uniqueResources??t.unique_resources,0),uniqueActions:A(t.uniqueActions??t.unique_actions,0),burstiness:A(t.burstiness,0),riskScore:A(t.riskScore??t.risk_score,0),_idx:s}:null}function tt(t){const s=P(t);return Array.isArray(s)?s.map(et).filter(Boolean):[]}function at(t,s=0){return!t||typeof t!="object"?null:{key:s,score:A(t.score,0),reasons:Array.isArray(t.reasons)?t.reasons:[],event:t.event&&typeof t.event=="object"?t.event:null,_idx:s}}function lt(t){const s=P(t);return Array.isArray(s)?s.map(at).filter(Boolean):[]}function oe(t){if(!t)return{noAuditLog:!1,error:""};const s=/no such table:\s*audit_log/i.test(t),n=t.match(/Failed:\s*(.+?)(?:\r?\n|$)/i);return{noAuditLog:s,error:n?n[1].trim():""}}function ot(t){if(t==null||t==="")return"—";const s=typeof t=="number"?new Date(t):new Date(String(t));return isNaN(s.getTime())?String(t):s.toLocaleString("zh-CN",{hour12:!1})}const nt={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},it={class:"page-title"},st={class:"page-sub"},rt={class:"filter-bar"},ct={key:1,style:{color:"var(--text-primary)","font-family":"monospace","font-size":"12px","word-break":"break-all"}},ut={key:0,style:{color:"var(--text-muted)"}},pt={key:1,style:{color:"var(--text-muted)"}},dt={key:0,style:{color:"var(--text-secondary)","font-size":"12px"}},mt={key:1,style:{color:"var(--text-muted)"}},yt={key:5,style:{color:"var(--text-secondary)","font-size":"11px"}},ft={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},vt={style:{color:"var(--text-primary)",margin:"16px 0 8px","font-size":"14px"}},bt={key:0,style:{color:"var(--text-primary)","font-family":"monospace","font-weight":"500"}},gt={key:2,style:{color:"var(--text-secondary)"}},ht={key:5,style:{color:"var(--text-secondary)","font-family":"monospace","font-size":"11px"}},_t={style:{padding:"30px",color:"var(--text-muted)","text-align":"center"}},kt={key:2,style:{color:"var(--text-primary)",margin:"24px 0 8px","font-size":"14px"}},xt={style:{flex:"1"}},$t={style:{display:"flex",gap:"8px","align-items":"center"}},zt={key:0,style:{color:"var(--text-primary)","font-family":"monospace","font-size":"12px"}},At={key:1,style:{color:"var(--text-secondary)","font-size":"11px"}},St={key:0,style:{"margin-top":"4px"}},Tt={style:{"margin-top":"8px","font-size":"12px",color:"var(--text-secondary)"}},Ct={key:0,style:{"margin-top":"12px","font-size":"12px"}},Ft={style:{color:"var(--text-secondary)"}},Rt={style:{color:"var(--text-secondary)"}},Ot={key:0,style:{"margin-top":"4px"}},jt={style:{color:"var(--text-secondary)","font-size":"12px",margin:"0"}},Lt={style:{color:"var(--text-secondary)","font-size":"12px",margin:"0"}},wt={__name:"Compliance",setup(t){const s=Ie(),{t:n}=qe(),z=g(!1),R=g(!1),W=g(!1),Y=g(!1),H=g([]),N=g({total:0,byType:{}}),B=g([]),O=g([]),S=g({noAuditLog:!1,error:""}),D=g("threat"),K=g(""),J=g(!1),E=g(!1),I=g(!1),Q=le({observable:""}),k=g(null),T=le({entity:"",days:30}),x=le({entity:"",threshold:.7,days:1}),ve=U(()=>[{title:n("compliance.cols.type"),key:"type",width:"120px"},{title:n("compliance.cols.value"),key:"value"},{title:n("compliance.cols.labels"),key:"labels",width:"160px"},{title:n("compliance.cols.confidence"),key:"confidence",width:"90px"},{title:n("compliance.cols.source"),key:"source",width:"160px"},{title:n("compliance.cols.lastSeen"),key:"lastSeen",width:"160px"},{title:n("compliance.cols.action"),key:"action",width:"90px"}]),be=U(()=>[{title:n("compliance.cols.entity"),key:"entity",width:"180px"},{title:n("compliance.cols.riskScore"),key:"riskScore"},{title:n("compliance.cols.eventCount"),key:"eventCount",width:"90px"},{title:n("compliance.cols.failureRate"),key:"failureRate",width:"90px"},{title:n("compliance.cols.uniqueResources"),key:"uniqueResources",width:"90px"},{title:n("compliance.cols.burstiness"),key:"burstiness",width:"90px"}]),ge=U(()=>K.value?H.value.filter(e=>e.type===K.value):H.value),he=U(()=>Object.keys(N.value.byType).length),_e=U(()=>Object.entries(N.value.byType).sort((e,i)=>i[1]-e[1])),ne=U(()=>B.value.filter(e=>e.riskScore>=70).length),ke={ipv4:"blue",ipv6:"cyan",domain:"purple",url:"magenta",email:"gold","file-md5":"orange","file-sha1":"orange","file-sha256":"red","file-sha512":"red",unknown:"default"};function G(e){return ke[e]||"default"}function xe(e){return e>=80?"#ff4d4f":e>=50?"#faad14":"#52c41a"}function ie(e){return e>=70?"#ff4d4f":e>=40?"#faad14":"#52c41a"}function $e(e,i){return e?e.length>i?e.slice(0,i)+"...":e:""}function ze({key:e}){e==="match"?(k.value=null,J.value=!0):e==="ueba-build"?E.value=!0:e==="ueba-analyze"&&(I.value=!0)}async function V(){z.value=!0;try{const[e,i,y]=await Promise.all([s.execute("compliance threat-intel list --limit 200 --json",1e4).catch(()=>({output:""})),s.execute("compliance threat-intel stats --json",8e3).catch(()=>({output:""})),s.execute("compliance ueba top --top-k 20 --json",1e4).catch(()=>({output:""}))]);H.value=Ge(e.output),N.value=Ze(i.output),S.value=oe(y.output),B.value=S.value.noAuditLog?[]:tt(y.output)}catch(e){v.error(n("compliance.msg.loadFailed")+": "+(e?.message||e))}finally{z.value=!1}}async function Ae(){const e=Q.observable.trim();if(!e){v.warning(n("compliance.msg.matchEmpty"));return}R.value=!0,k.value=null;try{const i=`compliance threat-intel match "${e.replace(/"/g,'\\"')}" --json`,{output:y}=await s.execute(i,8e3),$=Xe(y);if(!$){v.error(n("compliance.msg.matchFailed")+": "+y.slice(0,120));return}k.value=$,$.matched?v.warning(n("compliance.msg.matchHit",{type:$.type})):$.type==="unknown"?v.info(n("compliance.msg.matchUnknownType")):v.success(n("compliance.msg.matchMiss",{type:$.type}))}catch(i){v.error(n("compliance.msg.matchFailed")+": "+(i?.message||i))}finally{R.value=!1}}async function Se(e){try{const i=`compliance threat-intel remove ${e.type} "${e.value.replace(/"/g,'\\"')}" --json`,{output:y}=await s.execute(i,8e3);if(/error|失败/i.test(y)&&!/"removed"/.test(y)){v.error(n("compliance.msg.deleteFailed")+": "+y.slice(0,120));return}v.success(n("compliance.msg.deleteSuccess")),await V()}catch(i){v.error(n("compliance.msg.deleteFailed")+": "+(i?.message||i))}}async function Te(){W.value=!0;try{const e=["compliance ueba baseline"];T.entity.trim()&&e.push(`--entity "${T.entity.trim().replace(/"/g,'\\"')}"`),T.days!=null&&e.push(`--days ${T.days}`),e.push("--json");const{output:i}=await s.execute(e.join(" "),3e4),y=oe(i);if(y.noAuditLog){S.value=y,v.warning(n("compliance.msg.auditEmptyBuild")),E.value=!1;return}if(y.error){v.error(n("compliance.msg.buildFailed")+": "+y.error);return}v.success(n("compliance.msg.buildSuccess")),E.value=!1,D.value="ueba",await V()}catch(e){v.error(n("compliance.msg.buildFailed")+": "+(e?.message||e))}finally{W.value=!1}}async function Ce(){Y.value=!0;try{const e=["compliance ueba analyze"];x.entity.trim()&&e.push(`--entity "${x.entity.trim().replace(/"/g,'\\"')}"`),x.threshold!=null&&e.push(`--threshold ${x.threshold}`),x.days!=null&&e.push(`--days ${x.days}`),e.push("--json");const{output:i}=await s.execute(e.join(" "),3e4),y=oe(i);if(y.noAuditLog){S.value=y,v.warning(n("compliance.msg.auditEmptyAnalyze")),I.value=!1;return}if(y.error&&!i.includes("[")){v.error(n("compliance.msg.analyzeFailed")+": "+y.error);return}O.value=lt(i),v.success(n("compliance.msg.analyzeSuccess",{n:O.value.length})),I.value=!1,D.value="ueba"}catch(e){v.error(n("compliance.msg.analyzeFailed")+": "+(e?.message||e))}finally{Y.value=!1}}return Je(V),(e,i)=>{const y=d("a-button"),$=d("a-menu-item"),Fe=d("a-menu"),Re=d("a-dropdown"),se=d("a-space"),L=d("a-statistic"),j=d("a-card"),q=d("a-col"),Oe=d("a-row"),C=d("a-tag"),re=d("a-radio-button"),je=d("a-radio-group"),Le=d("a-popconfirm"),ce=d("a-table"),ue=d("a-tab-pane"),pe=d("a-alert"),we=d("a-progress"),Ue=d("a-list-item"),Ne=d("a-list"),Be=d("a-tabs"),X=d("a-input"),w=d("a-form-item"),Z=d("a-form"),ee=d("a-modal"),te=d("a-input-number");return c(),p("div",null,[b("div",nt,[b("div",null,[b("h2",it,r(e.$t("compliance.title")),1),b("p",st,r(e.$t("compliance.subtitle")),1)]),a(se,null,{default:l(()=>[a(y,{loading:z.value,onClick:V},{icon:l(()=>[a(_(Me))]),default:l(()=>[f(" "+r(e.$t("compliance.refresh")),1)]),_:1},8,["loading"]),a(Re,{trigger:["click"]},{overlay:l(()=>[a(Fe,{onClick:ze},{default:l(()=>[a($,{key:"match"},{default:l(()=>[a(_(De)),f(" "+r(e.$t("compliance.actions.match")),1)]),_:1}),a($,{key:"ueba-build"},{default:l(()=>[a(_(Ke)),f(" "+r(e.$t("compliance.actions.uebaBuild")),1)]),_:1}),a($,{key:"ueba-analyze"},{default:l(()=>[a(_(Ve)),f(" "+r(e.$t("compliance.actions.uebaAnalyze")),1)]),_:1})]),_:1})]),default:l(()=>[a(y,{type:"primary"},{icon:l(()=>[a(_(Pe))]),default:l(()=>[f(" "+r(e.$t("compliance.actionDropdown")),1)]),_:1})]),_:1})]),_:1})]),a(Oe,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:l(()=>[a(q,{xs:12,sm:8,lg:5},{default:l(()=>[a(j,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:l(()=>[a(L,{title:e.$t("compliance.stats.iocTotal"),value:N.value.total,"value-style":{color:"#1677ff",fontSize:"20px"}},{prefix:l(()=>[a(_(de))]),_:1},8,["title","value"])]),_:1})]),_:1}),a(q,{xs:12,sm:8,lg:5},{default:l(()=>[a(j,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:l(()=>[a(L,{title:e.$t("compliance.stats.iocTypes"),value:he.value,"value-style":{color:"#13c2c2",fontSize:"20px"}},{prefix:l(()=>[a(_(We))]),_:1},8,["title","value"])]),_:1})]),_:1}),a(q,{xs:12,sm:8,lg:5},{default:l(()=>[a(j,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:l(()=>[a(L,{title:e.$t("compliance.stats.riskEntities"),value:B.value.length,"value-style":{color:"#722ed1",fontSize:"20px"}},{prefix:l(()=>[a(_(me))]),_:1},8,["title","value"])]),_:1})]),_:1}),a(q,{xs:12,sm:8,lg:5},{default:l(()=>[a(j,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:l(()=>[a(L,{title:e.$t("compliance.stats.highRisk"),value:ne.value,"value-style":{color:ne.value>0?"#ff4d4f":"#52c41a",fontSize:"20px"}},{prefix:l(()=>[a(_(Ye))]),_:1},8,["title","value","value-style"])]),_:1})]),_:1}),a(q,{xs:24,sm:8,lg:4},{default:l(()=>[a(j,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:l(()=>[a(L,{title:e.$t("compliance.stats.recentAnomalies"),value:O.value.length,"value-style":{color:"#faad14",fontSize:"20px"}},{prefix:l(()=>[a(_(He))]),_:1},8,["title","value"])]),_:1})]),_:1})]),_:1}),N.value.total>0?(c(),h(j,{key:0,title:e.$t("compliance.typeBreakdown"),size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"20px"},"body-style":{padding:"12px 16px"}},{default:l(()=>[a(se,{size:[12,8],wrap:""},{default:l(()=>[(c(!0),p(F,null,M(_e.value,([o,u])=>(c(),h(C,{key:o,color:G(o)},{default:l(()=>[f(r(o)+": "+r(u),1)]),_:2},1032,["color"]))),128))]),_:1})]),_:1},8,["title"])):m("",!0),a(Be,{activeKey:D.value,"onUpdate:activeKey":i[1]||(i[1]=o=>D.value=o),class:"compliance-tabs"},{default:l(()=>[a(ue,{key:"threat",tab:e.$t("compliance.tabs.threat")},{default:l(()=>[b("div",rt,[a(je,{value:K.value,"onUpdate:value":i[0]||(i[0]=o=>K.value=o),size:"small"},{default:l(()=>[a(re,{value:""},{default:l(()=>[f(r(e.$t("compliance.filter.all")),1)]),_:1}),(c(!0),p(F,null,M(_(Qe),o=>(c(),h(re,{key:o,value:o},{default:l(()=>[f(r(o),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),a(ce,{columns:ve.value,"data-source":ge.value,pagination:{pageSize:20,showTotal:o=>e.$t("compliance.table.totalSuffix",{n:o})},size:"small",loading:z.value,style:{background:"var(--bg-card)"}},{bodyCell:l(({column:o,record:u})=>[o.key==="type"?(c(),h(C,{key:0,color:G(u.type),style:{"font-family":"monospace"}},{default:l(()=>[f(r(u.type),1)]),_:2},1032,["color"])):m("",!0),o.key==="value"?(c(),p("span",ct,r($e(u.value,64)),1)):m("",!0),o.key==="labels"?(c(),p(F,{key:2},[(c(!0),p(F,null,M(u.labels,ae=>(c(),h(C,{key:ae,color:"orange",style:{"font-size":"10px",margin:"1px"}},{default:l(()=>[f(r(ae),1)]),_:2},1024))),128)),u.labels.length?m("",!0):(c(),p("span",ut,"—"))],64)):m("",!0),o.key==="confidence"?(c(),p(F,{key:3},[u.confidence!=null?(c(),p("span",{key:0,style:ye({color:xe(u.confidence),fontWeight:500})},r(u.confidence),5)):(c(),p("span",pt,"—"))],64)):m("",!0),o.key==="source"?(c(),p(F,{key:4},[u.sourceName?(c(),p("span",dt,r(u.sourceName),1)):(c(),p("span",mt,"—"))],64)):m("",!0),o.key==="lastSeen"?(c(),p("span",yt,r(_(ot)(u.lastSeenAt)),1)):m("",!0),o.key==="action"?(c(),h(Le,{key:6,title:e.$t("compliance.table.deleteConfirm"),"ok-text":e.$t("compliance.table.deleteOk"),"cancel-text":e.$t("compliance.table.cancel"),onConfirm:ae=>Se(u)},{default:l(()=>[a(y,{size:"small",type:"link",danger:""},{default:l(()=>[f(r(e.$t("compliance.table.delete")),1)]),_:1})]),_:1},8,["title","ok-text","cancel-text","onConfirm"])):m("",!0)]),emptyText:l(()=>[b("div",ft,[a(_(de),{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),f(" "+r(e.$t("compliance.table.emptyThreatsLine1"))+" ",1),i[11]||(i[11]=b("code",{style:{"font-size":"11px"}},"cc compliance threat-intel import <file.json>",-1))])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"]),a(ue,{key:"ueba",tab:e.$t("compliance.tabs.ueba")},{default:l(()=>[S.value.noAuditLog?(c(),h(pe,{key:0,type:"info","show-icon":"",message:e.$t("compliance.ueba.noAuditLog"),description:e.$t("compliance.ueba.noAuditLogDesc"),style:{"margin-bottom":"16px"}},null,8,["message","description"])):S.value.error?(c(),h(pe,{key:1,type:"error","show-icon":"",message:e.$t("compliance.ueba.errorMessage",{err:S.value.error}),style:{"margin-bottom":"16px"}},null,8,["message"])):m("",!0),b("h3",vt,r(e.$t("compliance.ueba.topRiskTitle",{count:B.value.length})),1),a(ce,{columns:be.value,"data-source":B.value,pagination:!1,size:"small",loading:z.value,style:{background:"var(--bg-card)"}},{bodyCell:l(({column:o,record:u})=>[o.key==="entity"?(c(),p("span",bt,r(u.entity),1)):m("",!0),o.key==="riskScore"?(c(),h(we,{key:1,percent:Math.min(u.riskScore,100),"stroke-color":ie(u.riskScore),size:"small",format:()=>u.riskScore.toFixed(1)},null,8,["percent","stroke-color","format"])):m("",!0),o.key==="eventCount"?(c(),p("span",gt,r(u.eventCount),1)):m("",!0),o.key==="failureRate"?(c(),p("span",{key:3,style:ye({color:u.failureRate>.3?"#ff4d4f":"var(--text-secondary)",fontFamily:"monospace"})},r((u.failureRate*100).toFixed(1))+"% ",5)):m("",!0),o.key==="uniqueResources"?(c(),h(C,{key:4,color:"cyan",style:{"font-size":"11px"}},{default:l(()=>[f(r(u.uniqueResources),1)]),_:2},1024)):m("",!0),o.key==="burstiness"?(c(),p("span",ht,r((u.burstiness*100).toFixed(0))+"% ",1)):m("",!0)]),emptyText:l(()=>[b("div",_t,[a(_(me),{style:{"font-size":"32px","margin-bottom":"8px",display:"block"}}),f(" "+r(S.value.noAuditLog?e.$t("compliance.table.emptyAuditEntities"):e.$t("compliance.table.emptyRiskEntities")),1)])]),_:1},8,["columns","data-source","loading"]),O.value.length?(c(),p("h3",kt,r(e.$t("compliance.ueba.anomalyTitle",{count:O.value.length})),1)):m("",!0),O.value.length?(c(),h(Ne,{key:3,size:"small","data-source":O.value,locale:{emptyText:e.$t("compliance.table.noAnomalies")}},{renderItem:l(({item:o})=>[a(Ue,{style:{background:"var(--bg-card)",padding:"10px 16px"}},{default:l(()=>[b("div",xt,[b("div",$t,[a(C,{color:ie(o.score*100)},{default:l(()=>[f("score "+r(o.score.toFixed(2)),1)]),_:2},1032,["color"]),o.event?.entity?(c(),p("span",zt,r(o.event.entity),1)):m("",!0),o.event?.action?(c(),p("span",At," → "+r(o.event.action),1)):m("",!0)]),o.reasons.length?(c(),p("div",St,[(c(!0),p(F,null,M(o.reasons,u=>(c(),h(C,{key:u,color:"volcano",style:{"font-size":"10px",margin:"1px"}},{default:l(()=>[f(r(u),1)]),_:2},1024))),128))])):m("",!0)])]),_:2},1024)]),_:1},8,["data-source","locale"])):m("",!0)]),_:1},8,["tab"])]),_:1},8,["activeKey"]),a(ee,{open:J.value,"onUpdate:open":i[3]||(i[3]=o=>J.value=o),title:e.$t("compliance.match.modalTitle"),"confirm-loading":R.value,width:500,"ok-text":e.$t("compliance.match.ok"),"cancel-text":e.$t("compliance.match.close"),onOk:Ae},{default:l(()=>[a(Z,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:l(()=>[a(w,{label:e.$t("compliance.match.label"),required:""},{default:l(()=>[a(X,{value:Q.observable,"onUpdate:value":i[2]||(i[2]=o=>Q.observable=o),placeholder:e.$t("compliance.match.placeholder"),"allow-clear":""},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1}),k.value?(c(),h(j,{key:0,size:"small",style:{background:"var(--bg-base)","margin-top":"8px"}},{default:l(()=>[a(L,{title:e.$t("compliance.match.result"),value:k.value.matched?e.$t("compliance.match.hit"):e.$t("compliance.match.miss"),"value-style":{color:k.value.matched?"#ff4d4f":"#52c41a"}},null,8,["title","value","value-style"]),b("div",Tt,[f(r(e.$t("compliance.match.detectType"))+" ",1),a(C,{color:G(k.value.type)},{default:l(()=>[f(r(k.value.type),1)]),_:1},8,["color"])]),k.value.indicator?(c(),p("div",Ct,[b("div",Ft,r(e.$t("compliance.match.sourcePrefix"))+" "+r(k.value.indicator.sourceName||"—"),1),b("div",Rt,r(e.$t("compliance.match.confidencePrefix"))+" "+r(k.value.indicator.confidence??"—"),1),k.value.indicator.labels.length?(c(),p("div",Ot,[(c(!0),p(F,null,M(k.value.indicator.labels,o=>(c(),h(C,{key:o,color:"orange",style:{"font-size":"10px"}},{default:l(()=>[f(r(o),1)]),_:2},1024))),128))])):m("",!0)])):m("",!0)]),_:1})):m("",!0)]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),a(ee,{open:E.value,"onUpdate:open":i[6]||(i[6]=o=>E.value=o),title:e.$t("compliance.build.modalTitle"),"confirm-loading":W.value,width:480,"ok-text":e.$t("compliance.build.ok"),"cancel-text":e.$t("compliance.build.cancel"),onOk:Te},{default:l(()=>[a(Z,{"label-col":{span:6},"wrapper-col":{span:18},style:{"margin-top":"16px"}},{default:l(()=>[a(w,{label:e.$t("compliance.build.entityLabel")},{default:l(()=>[a(X,{value:T.entity,"onUpdate:value":i[4]||(i[4]=o=>T.entity=o),placeholder:e.$t("compliance.build.entityPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),a(w,{label:e.$t("compliance.build.daysLabel")},{default:l(()=>[a(te,{value:T.days,"onUpdate:value":i[5]||(i[5]=o=>T.days=o),min:1,max:365,placeholder:e.$t("compliance.build.daysPlaceholder"),style:{width:"100%"}},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1}),b("p",jt,r(e.$t("compliance.build.footnote")),1)]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),a(ee,{open:I.value,"onUpdate:open":i[10]||(i[10]=o=>I.value=o),title:e.$t("compliance.analyze.modalTitle"),"confirm-loading":Y.value,width:480,"ok-text":e.$t("compliance.analyze.ok"),"cancel-text":e.$t("compliance.analyze.cancel"),onOk:Ce},{default:l(()=>[a(Z,{"label-col":{span:6},"wrapper-col":{span:18},style:{"margin-top":"16px"}},{default:l(()=>[a(w,{label:e.$t("compliance.analyze.entityLabel")},{default:l(()=>[a(X,{value:x.entity,"onUpdate:value":i[7]||(i[7]=o=>x.entity=o),placeholder:e.$t("compliance.analyze.entityPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),a(w,{label:e.$t("compliance.analyze.thresholdLabel")},{default:l(()=>[a(te,{value:x.threshold,"onUpdate:value":i[8]||(i[8]=o=>x.threshold=o),min:0,max:1,step:.05,style:{width:"100%"}},null,8,["value"])]),_:1},8,["label"]),a(w,{label:e.$t("compliance.analyze.daysLabel")},{default:l(()=>[a(te,{value:x.days,"onUpdate:value":i[9]||(i[9]=o=>x.days=o),min:1,max:30,style:{width:"100%"}},null,8,["value"])]),_:1},8,["label"])]),_:1}),b("p",Lt,r(e.$t("compliance.analyze.footnote")),1)]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"])])}}},Et=Ee(wt,[["__scopeId","data-v-81155fa8"]]);export{Et as default};
|
|
1
|
+
import{t as P,_ as Ee,u as Ie,b as qe,d as v}from"./index-CzoKAiyT.js";import{R as Me,at as Pe,b4 as De,w as Ke,b3 as Ve,K as de,a7 as We,al as me,an as Ye,A as He}from"./icons-DlxlFL4g.js";import{o as Je,M as p,R as b,P as r,c as a,N as l,Q as h,S as m,K as d,r as g,L as c,O as f,u as _,F,Y as M,_ as ye,f as U,a as le}from"./vendor-BXcBOG8b.js";const Qe=Object.freeze(["file-md5","file-sha1","file-sha256","file-sha512","ipv4","ipv6","domain","url","email"]);function A(t,s=0){return typeof t=="number"&&Number.isFinite(t)?t:s}function fe(t,s=0){if(!t||typeof t!="object")return null;const n=t.id||"";if(!n)return null;const z=Array.isArray(t.labels)?t.labels:[];return{key:n,id:n,type:String(t.type||""),value:String(t.value||""),labels:z,confidence:t.confidence!=null?A(t.confidence,null):null,sourceId:t.sourceId??t.source_id??null,sourceName:t.sourceName??t.source_name??null,validFrom:t.validFrom??t.valid_from??null,validUntil:t.validUntil??t.valid_until??null,firstSeenAt:t.firstSeenAt??t.first_seen_at??null,lastSeenAt:t.lastSeenAt??t.last_seen_at??null,_idx:s}}function Ge(t){const s=P(t);return Array.isArray(s)?s.map(fe).filter(Boolean):[]}function Xe(t){const s=P(t);return!s||typeof s!="object"||Array.isArray(s)?null:{matched:!!s.matched,type:String(s.type||"unknown"),indicator:s.indicator?fe(s.indicator):null}}function Ze(t){const s={total:0,byType:{}},n=P(t);if(!n||typeof n!="object"||Array.isArray(n))return s;if(s.total=A(n.total,0),n.byType&&typeof n.byType=="object")for(const[z,R]of Object.entries(n.byType))typeof R=="number"&&Number.isFinite(R)&&(s.byType[z]=R);return s}function et(t,s=0){if(!t||typeof t!="object")return null;const n=t.entity||"";return n?{key:n,entity:n,eventCount:A(t.eventCount??t.event_count,0),failureRate:A(t.failureRate??t.failure_rate,0),uniqueResources:A(t.uniqueResources??t.unique_resources,0),uniqueActions:A(t.uniqueActions??t.unique_actions,0),burstiness:A(t.burstiness,0),riskScore:A(t.riskScore??t.risk_score,0),_idx:s}:null}function tt(t){const s=P(t);return Array.isArray(s)?s.map(et).filter(Boolean):[]}function at(t,s=0){return!t||typeof t!="object"?null:{key:s,score:A(t.score,0),reasons:Array.isArray(t.reasons)?t.reasons:[],event:t.event&&typeof t.event=="object"?t.event:null,_idx:s}}function lt(t){const s=P(t);return Array.isArray(s)?s.map(at).filter(Boolean):[]}function oe(t){if(!t)return{noAuditLog:!1,error:""};const s=/no such table:\s*audit_log/i.test(t),n=t.match(/Failed:\s*(.+?)(?:\r?\n|$)/i);return{noAuditLog:s,error:n?n[1].trim():""}}function ot(t){if(t==null||t==="")return"—";const s=typeof t=="number"?new Date(t):new Date(String(t));return isNaN(s.getTime())?String(t):s.toLocaleString("zh-CN",{hour12:!1})}const nt={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},it={class:"page-title"},st={class:"page-sub"},rt={class:"filter-bar"},ct={key:1,style:{color:"var(--text-primary)","font-family":"monospace","font-size":"12px","word-break":"break-all"}},ut={key:0,style:{color:"var(--text-muted)"}},pt={key:1,style:{color:"var(--text-muted)"}},dt={key:0,style:{color:"var(--text-secondary)","font-size":"12px"}},mt={key:1,style:{color:"var(--text-muted)"}},yt={key:5,style:{color:"var(--text-secondary)","font-size":"11px"}},ft={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},vt={style:{color:"var(--text-primary)",margin:"16px 0 8px","font-size":"14px"}},bt={key:0,style:{color:"var(--text-primary)","font-family":"monospace","font-weight":"500"}},gt={key:2,style:{color:"var(--text-secondary)"}},ht={key:5,style:{color:"var(--text-secondary)","font-family":"monospace","font-size":"11px"}},_t={style:{padding:"30px",color:"var(--text-muted)","text-align":"center"}},kt={key:2,style:{color:"var(--text-primary)",margin:"24px 0 8px","font-size":"14px"}},xt={style:{flex:"1"}},$t={style:{display:"flex",gap:"8px","align-items":"center"}},zt={key:0,style:{color:"var(--text-primary)","font-family":"monospace","font-size":"12px"}},At={key:1,style:{color:"var(--text-secondary)","font-size":"11px"}},St={key:0,style:{"margin-top":"4px"}},Tt={style:{"margin-top":"8px","font-size":"12px",color:"var(--text-secondary)"}},Ct={key:0,style:{"margin-top":"12px","font-size":"12px"}},Ft={style:{color:"var(--text-secondary)"}},Rt={style:{color:"var(--text-secondary)"}},Ot={key:0,style:{"margin-top":"4px"}},jt={style:{color:"var(--text-secondary)","font-size":"12px",margin:"0"}},Lt={style:{color:"var(--text-secondary)","font-size":"12px",margin:"0"}},wt={__name:"Compliance",setup(t){const s=Ie(),{t:n}=qe(),z=g(!1),R=g(!1),W=g(!1),Y=g(!1),H=g([]),N=g({total:0,byType:{}}),B=g([]),O=g([]),S=g({noAuditLog:!1,error:""}),D=g("threat"),K=g(""),J=g(!1),E=g(!1),I=g(!1),Q=le({observable:""}),k=g(null),T=le({entity:"",days:30}),x=le({entity:"",threshold:.7,days:1}),ve=U(()=>[{title:n("compliance.cols.type"),key:"type",width:"120px"},{title:n("compliance.cols.value"),key:"value"},{title:n("compliance.cols.labels"),key:"labels",width:"160px"},{title:n("compliance.cols.confidence"),key:"confidence",width:"90px"},{title:n("compliance.cols.source"),key:"source",width:"160px"},{title:n("compliance.cols.lastSeen"),key:"lastSeen",width:"160px"},{title:n("compliance.cols.action"),key:"action",width:"90px"}]),be=U(()=>[{title:n("compliance.cols.entity"),key:"entity",width:"180px"},{title:n("compliance.cols.riskScore"),key:"riskScore"},{title:n("compliance.cols.eventCount"),key:"eventCount",width:"90px"},{title:n("compliance.cols.failureRate"),key:"failureRate",width:"90px"},{title:n("compliance.cols.uniqueResources"),key:"uniqueResources",width:"90px"},{title:n("compliance.cols.burstiness"),key:"burstiness",width:"90px"}]),ge=U(()=>K.value?H.value.filter(e=>e.type===K.value):H.value),he=U(()=>Object.keys(N.value.byType).length),_e=U(()=>Object.entries(N.value.byType).sort((e,i)=>i[1]-e[1])),ne=U(()=>B.value.filter(e=>e.riskScore>=70).length),ke={ipv4:"blue",ipv6:"cyan",domain:"purple",url:"magenta",email:"gold","file-md5":"orange","file-sha1":"orange","file-sha256":"red","file-sha512":"red",unknown:"default"};function G(e){return ke[e]||"default"}function xe(e){return e>=80?"#ff4d4f":e>=50?"#faad14":"#52c41a"}function ie(e){return e>=70?"#ff4d4f":e>=40?"#faad14":"#52c41a"}function $e(e,i){return e?e.length>i?e.slice(0,i)+"...":e:""}function ze({key:e}){e==="match"?(k.value=null,J.value=!0):e==="ueba-build"?E.value=!0:e==="ueba-analyze"&&(I.value=!0)}async function V(){z.value=!0;try{const[e,i,y]=await Promise.all([s.execute("compliance threat-intel list --limit 200 --json",1e4).catch(()=>({output:""})),s.execute("compliance threat-intel stats --json",8e3).catch(()=>({output:""})),s.execute("compliance ueba top --top-k 20 --json",1e4).catch(()=>({output:""}))]);H.value=Ge(e.output),N.value=Ze(i.output),S.value=oe(y.output),B.value=S.value.noAuditLog?[]:tt(y.output)}catch(e){v.error(n("compliance.msg.loadFailed")+": "+(e?.message||e))}finally{z.value=!1}}async function Ae(){const e=Q.observable.trim();if(!e){v.warning(n("compliance.msg.matchEmpty"));return}R.value=!0,k.value=null;try{const i=`compliance threat-intel match "${e.replace(/"/g,'\\"')}" --json`,{output:y}=await s.execute(i,8e3),$=Xe(y);if(!$){v.error(n("compliance.msg.matchFailed")+": "+y.slice(0,120));return}k.value=$,$.matched?v.warning(n("compliance.msg.matchHit",{type:$.type})):$.type==="unknown"?v.info(n("compliance.msg.matchUnknownType")):v.success(n("compliance.msg.matchMiss",{type:$.type}))}catch(i){v.error(n("compliance.msg.matchFailed")+": "+(i?.message||i))}finally{R.value=!1}}async function Se(e){try{const i=`compliance threat-intel remove ${e.type} "${e.value.replace(/"/g,'\\"')}" --json`,{output:y}=await s.execute(i,8e3);if(/error|失败/i.test(y)&&!/"removed"/.test(y)){v.error(n("compliance.msg.deleteFailed")+": "+y.slice(0,120));return}v.success(n("compliance.msg.deleteSuccess")),await V()}catch(i){v.error(n("compliance.msg.deleteFailed")+": "+(i?.message||i))}}async function Te(){W.value=!0;try{const e=["compliance ueba baseline"];T.entity.trim()&&e.push(`--entity "${T.entity.trim().replace(/"/g,'\\"')}"`),T.days!=null&&e.push(`--days ${T.days}`),e.push("--json");const{output:i}=await s.execute(e.join(" "),3e4),y=oe(i);if(y.noAuditLog){S.value=y,v.warning(n("compliance.msg.auditEmptyBuild")),E.value=!1;return}if(y.error){v.error(n("compliance.msg.buildFailed")+": "+y.error);return}v.success(n("compliance.msg.buildSuccess")),E.value=!1,D.value="ueba",await V()}catch(e){v.error(n("compliance.msg.buildFailed")+": "+(e?.message||e))}finally{W.value=!1}}async function Ce(){Y.value=!0;try{const e=["compliance ueba analyze"];x.entity.trim()&&e.push(`--entity "${x.entity.trim().replace(/"/g,'\\"')}"`),x.threshold!=null&&e.push(`--threshold ${x.threshold}`),x.days!=null&&e.push(`--days ${x.days}`),e.push("--json");const{output:i}=await s.execute(e.join(" "),3e4),y=oe(i);if(y.noAuditLog){S.value=y,v.warning(n("compliance.msg.auditEmptyAnalyze")),I.value=!1;return}if(y.error&&!i.includes("[")){v.error(n("compliance.msg.analyzeFailed")+": "+y.error);return}O.value=lt(i),v.success(n("compliance.msg.analyzeSuccess",{n:O.value.length})),I.value=!1,D.value="ueba"}catch(e){v.error(n("compliance.msg.analyzeFailed")+": "+(e?.message||e))}finally{Y.value=!1}}return Je(V),(e,i)=>{const y=d("a-button"),$=d("a-menu-item"),Fe=d("a-menu"),Re=d("a-dropdown"),se=d("a-space"),L=d("a-statistic"),j=d("a-card"),q=d("a-col"),Oe=d("a-row"),C=d("a-tag"),re=d("a-radio-button"),je=d("a-radio-group"),Le=d("a-popconfirm"),ce=d("a-table"),ue=d("a-tab-pane"),pe=d("a-alert"),we=d("a-progress"),Ue=d("a-list-item"),Ne=d("a-list"),Be=d("a-tabs"),X=d("a-input"),w=d("a-form-item"),Z=d("a-form"),ee=d("a-modal"),te=d("a-input-number");return c(),p("div",null,[b("div",nt,[b("div",null,[b("h2",it,r(e.$t("compliance.title")),1),b("p",st,r(e.$t("compliance.subtitle")),1)]),a(se,null,{default:l(()=>[a(y,{loading:z.value,onClick:V},{icon:l(()=>[a(_(Me))]),default:l(()=>[f(" "+r(e.$t("compliance.refresh")),1)]),_:1},8,["loading"]),a(Re,{trigger:["click"]},{overlay:l(()=>[a(Fe,{onClick:ze},{default:l(()=>[a($,{key:"match"},{default:l(()=>[a(_(De)),f(" "+r(e.$t("compliance.actions.match")),1)]),_:1}),a($,{key:"ueba-build"},{default:l(()=>[a(_(Ke)),f(" "+r(e.$t("compliance.actions.uebaBuild")),1)]),_:1}),a($,{key:"ueba-analyze"},{default:l(()=>[a(_(Ve)),f(" "+r(e.$t("compliance.actions.uebaAnalyze")),1)]),_:1})]),_:1})]),default:l(()=>[a(y,{type:"primary"},{icon:l(()=>[a(_(Pe))]),default:l(()=>[f(" "+r(e.$t("compliance.actionDropdown")),1)]),_:1})]),_:1})]),_:1})]),a(Oe,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:l(()=>[a(q,{xs:12,sm:8,lg:5},{default:l(()=>[a(j,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:l(()=>[a(L,{title:e.$t("compliance.stats.iocTotal"),value:N.value.total,"value-style":{color:"#1677ff",fontSize:"20px"}},{prefix:l(()=>[a(_(de))]),_:1},8,["title","value"])]),_:1})]),_:1}),a(q,{xs:12,sm:8,lg:5},{default:l(()=>[a(j,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:l(()=>[a(L,{title:e.$t("compliance.stats.iocTypes"),value:he.value,"value-style":{color:"#13c2c2",fontSize:"20px"}},{prefix:l(()=>[a(_(We))]),_:1},8,["title","value"])]),_:1})]),_:1}),a(q,{xs:12,sm:8,lg:5},{default:l(()=>[a(j,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:l(()=>[a(L,{title:e.$t("compliance.stats.riskEntities"),value:B.value.length,"value-style":{color:"#722ed1",fontSize:"20px"}},{prefix:l(()=>[a(_(me))]),_:1},8,["title","value"])]),_:1})]),_:1}),a(q,{xs:12,sm:8,lg:5},{default:l(()=>[a(j,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:l(()=>[a(L,{title:e.$t("compliance.stats.highRisk"),value:ne.value,"value-style":{color:ne.value>0?"#ff4d4f":"#52c41a",fontSize:"20px"}},{prefix:l(()=>[a(_(Ye))]),_:1},8,["title","value","value-style"])]),_:1})]),_:1}),a(q,{xs:24,sm:8,lg:4},{default:l(()=>[a(j,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:l(()=>[a(L,{title:e.$t("compliance.stats.recentAnomalies"),value:O.value.length,"value-style":{color:"#faad14",fontSize:"20px"}},{prefix:l(()=>[a(_(He))]),_:1},8,["title","value"])]),_:1})]),_:1})]),_:1}),N.value.total>0?(c(),h(j,{key:0,title:e.$t("compliance.typeBreakdown"),size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"20px"},"body-style":{padding:"12px 16px"}},{default:l(()=>[a(se,{size:[12,8],wrap:""},{default:l(()=>[(c(!0),p(F,null,M(_e.value,([o,u])=>(c(),h(C,{key:o,color:G(o)},{default:l(()=>[f(r(o)+": "+r(u),1)]),_:2},1032,["color"]))),128))]),_:1})]),_:1},8,["title"])):m("",!0),a(Be,{activeKey:D.value,"onUpdate:activeKey":i[1]||(i[1]=o=>D.value=o),class:"compliance-tabs"},{default:l(()=>[a(ue,{key:"threat",tab:e.$t("compliance.tabs.threat")},{default:l(()=>[b("div",rt,[a(je,{value:K.value,"onUpdate:value":i[0]||(i[0]=o=>K.value=o),size:"small"},{default:l(()=>[a(re,{value:""},{default:l(()=>[f(r(e.$t("compliance.filter.all")),1)]),_:1}),(c(!0),p(F,null,M(_(Qe),o=>(c(),h(re,{key:o,value:o},{default:l(()=>[f(r(o),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),a(ce,{columns:ve.value,"data-source":ge.value,pagination:{pageSize:20,showTotal:o=>e.$t("compliance.table.totalSuffix",{n:o})},size:"small",loading:z.value,style:{background:"var(--bg-card)"}},{bodyCell:l(({column:o,record:u})=>[o.key==="type"?(c(),h(C,{key:0,color:G(u.type),style:{"font-family":"monospace"}},{default:l(()=>[f(r(u.type),1)]),_:2},1032,["color"])):m("",!0),o.key==="value"?(c(),p("span",ct,r($e(u.value,64)),1)):m("",!0),o.key==="labels"?(c(),p(F,{key:2},[(c(!0),p(F,null,M(u.labels,ae=>(c(),h(C,{key:ae,color:"orange",style:{"font-size":"10px",margin:"1px"}},{default:l(()=>[f(r(ae),1)]),_:2},1024))),128)),u.labels.length?m("",!0):(c(),p("span",ut,"—"))],64)):m("",!0),o.key==="confidence"?(c(),p(F,{key:3},[u.confidence!=null?(c(),p("span",{key:0,style:ye({color:xe(u.confidence),fontWeight:500})},r(u.confidence),5)):(c(),p("span",pt,"—"))],64)):m("",!0),o.key==="source"?(c(),p(F,{key:4},[u.sourceName?(c(),p("span",dt,r(u.sourceName),1)):(c(),p("span",mt,"—"))],64)):m("",!0),o.key==="lastSeen"?(c(),p("span",yt,r(_(ot)(u.lastSeenAt)),1)):m("",!0),o.key==="action"?(c(),h(Le,{key:6,title:e.$t("compliance.table.deleteConfirm"),"ok-text":e.$t("compliance.table.deleteOk"),"cancel-text":e.$t("compliance.table.cancel"),onConfirm:ae=>Se(u)},{default:l(()=>[a(y,{size:"small",type:"link",danger:""},{default:l(()=>[f(r(e.$t("compliance.table.delete")),1)]),_:1})]),_:1},8,["title","ok-text","cancel-text","onConfirm"])):m("",!0)]),emptyText:l(()=>[b("div",ft,[a(_(de),{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),f(" "+r(e.$t("compliance.table.emptyThreatsLine1"))+" ",1),i[11]||(i[11]=b("code",{style:{"font-size":"11px"}},"cc compliance threat-intel import <file.json>",-1))])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"]),a(ue,{key:"ueba",tab:e.$t("compliance.tabs.ueba")},{default:l(()=>[S.value.noAuditLog?(c(),h(pe,{key:0,type:"info","show-icon":"",message:e.$t("compliance.ueba.noAuditLog"),description:e.$t("compliance.ueba.noAuditLogDesc"),style:{"margin-bottom":"16px"}},null,8,["message","description"])):S.value.error?(c(),h(pe,{key:1,type:"error","show-icon":"",message:e.$t("compliance.ueba.errorMessage",{err:S.value.error}),style:{"margin-bottom":"16px"}},null,8,["message"])):m("",!0),b("h3",vt,r(e.$t("compliance.ueba.topRiskTitle",{count:B.value.length})),1),a(ce,{columns:be.value,"data-source":B.value,pagination:!1,size:"small",loading:z.value,style:{background:"var(--bg-card)"}},{bodyCell:l(({column:o,record:u})=>[o.key==="entity"?(c(),p("span",bt,r(u.entity),1)):m("",!0),o.key==="riskScore"?(c(),h(we,{key:1,percent:Math.min(u.riskScore,100),"stroke-color":ie(u.riskScore),size:"small",format:()=>u.riskScore.toFixed(1)},null,8,["percent","stroke-color","format"])):m("",!0),o.key==="eventCount"?(c(),p("span",gt,r(u.eventCount),1)):m("",!0),o.key==="failureRate"?(c(),p("span",{key:3,style:ye({color:u.failureRate>.3?"#ff4d4f":"var(--text-secondary)",fontFamily:"monospace"})},r((u.failureRate*100).toFixed(1))+"% ",5)):m("",!0),o.key==="uniqueResources"?(c(),h(C,{key:4,color:"cyan",style:{"font-size":"11px"}},{default:l(()=>[f(r(u.uniqueResources),1)]),_:2},1024)):m("",!0),o.key==="burstiness"?(c(),p("span",ht,r((u.burstiness*100).toFixed(0))+"% ",1)):m("",!0)]),emptyText:l(()=>[b("div",_t,[a(_(me),{style:{"font-size":"32px","margin-bottom":"8px",display:"block"}}),f(" "+r(S.value.noAuditLog?e.$t("compliance.table.emptyAuditEntities"):e.$t("compliance.table.emptyRiskEntities")),1)])]),_:1},8,["columns","data-source","loading"]),O.value.length?(c(),p("h3",kt,r(e.$t("compliance.ueba.anomalyTitle",{count:O.value.length})),1)):m("",!0),O.value.length?(c(),h(Ne,{key:3,size:"small","data-source":O.value,locale:{emptyText:e.$t("compliance.table.noAnomalies")}},{renderItem:l(({item:o})=>[a(Ue,{style:{background:"var(--bg-card)",padding:"10px 16px"}},{default:l(()=>[b("div",xt,[b("div",$t,[a(C,{color:ie(o.score*100)},{default:l(()=>[f("score "+r(o.score.toFixed(2)),1)]),_:2},1032,["color"]),o.event?.entity?(c(),p("span",zt,r(o.event.entity),1)):m("",!0),o.event?.action?(c(),p("span",At," → "+r(o.event.action),1)):m("",!0)]),o.reasons.length?(c(),p("div",St,[(c(!0),p(F,null,M(o.reasons,u=>(c(),h(C,{key:u,color:"volcano",style:{"font-size":"10px",margin:"1px"}},{default:l(()=>[f(r(u),1)]),_:2},1024))),128))])):m("",!0)])]),_:2},1024)]),_:1},8,["data-source","locale"])):m("",!0)]),_:1},8,["tab"])]),_:1},8,["activeKey"]),a(ee,{open:J.value,"onUpdate:open":i[3]||(i[3]=o=>J.value=o),title:e.$t("compliance.match.modalTitle"),"confirm-loading":R.value,width:500,"ok-text":e.$t("compliance.match.ok"),"cancel-text":e.$t("compliance.match.close"),onOk:Ae},{default:l(()=>[a(Z,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:l(()=>[a(w,{label:e.$t("compliance.match.label"),required:""},{default:l(()=>[a(X,{value:Q.observable,"onUpdate:value":i[2]||(i[2]=o=>Q.observable=o),placeholder:e.$t("compliance.match.placeholder"),"allow-clear":""},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1}),k.value?(c(),h(j,{key:0,size:"small",style:{background:"var(--bg-base)","margin-top":"8px"}},{default:l(()=>[a(L,{title:e.$t("compliance.match.result"),value:k.value.matched?e.$t("compliance.match.hit"):e.$t("compliance.match.miss"),"value-style":{color:k.value.matched?"#ff4d4f":"#52c41a"}},null,8,["title","value","value-style"]),b("div",Tt,[f(r(e.$t("compliance.match.detectType"))+" ",1),a(C,{color:G(k.value.type)},{default:l(()=>[f(r(k.value.type),1)]),_:1},8,["color"])]),k.value.indicator?(c(),p("div",Ct,[b("div",Ft,r(e.$t("compliance.match.sourcePrefix"))+" "+r(k.value.indicator.sourceName||"—"),1),b("div",Rt,r(e.$t("compliance.match.confidencePrefix"))+" "+r(k.value.indicator.confidence??"—"),1),k.value.indicator.labels.length?(c(),p("div",Ot,[(c(!0),p(F,null,M(k.value.indicator.labels,o=>(c(),h(C,{key:o,color:"orange",style:{"font-size":"10px"}},{default:l(()=>[f(r(o),1)]),_:2},1024))),128))])):m("",!0)])):m("",!0)]),_:1})):m("",!0)]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),a(ee,{open:E.value,"onUpdate:open":i[6]||(i[6]=o=>E.value=o),title:e.$t("compliance.build.modalTitle"),"confirm-loading":W.value,width:480,"ok-text":e.$t("compliance.build.ok"),"cancel-text":e.$t("compliance.build.cancel"),onOk:Te},{default:l(()=>[a(Z,{"label-col":{span:6},"wrapper-col":{span:18},style:{"margin-top":"16px"}},{default:l(()=>[a(w,{label:e.$t("compliance.build.entityLabel")},{default:l(()=>[a(X,{value:T.entity,"onUpdate:value":i[4]||(i[4]=o=>T.entity=o),placeholder:e.$t("compliance.build.entityPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),a(w,{label:e.$t("compliance.build.daysLabel")},{default:l(()=>[a(te,{value:T.days,"onUpdate:value":i[5]||(i[5]=o=>T.days=o),min:1,max:365,placeholder:e.$t("compliance.build.daysPlaceholder"),style:{width:"100%"}},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1}),b("p",jt,r(e.$t("compliance.build.footnote")),1)]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),a(ee,{open:I.value,"onUpdate:open":i[10]||(i[10]=o=>I.value=o),title:e.$t("compliance.analyze.modalTitle"),"confirm-loading":Y.value,width:480,"ok-text":e.$t("compliance.analyze.ok"),"cancel-text":e.$t("compliance.analyze.cancel"),onOk:Ce},{default:l(()=>[a(Z,{"label-col":{span:6},"wrapper-col":{span:18},style:{"margin-top":"16px"}},{default:l(()=>[a(w,{label:e.$t("compliance.analyze.entityLabel")},{default:l(()=>[a(X,{value:x.entity,"onUpdate:value":i[7]||(i[7]=o=>x.entity=o),placeholder:e.$t("compliance.analyze.entityPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),a(w,{label:e.$t("compliance.analyze.thresholdLabel")},{default:l(()=>[a(te,{value:x.threshold,"onUpdate:value":i[8]||(i[8]=o=>x.threshold=o),min:0,max:1,step:.05,style:{width:"100%"}},null,8,["value"])]),_:1},8,["label"]),a(w,{label:e.$t("compliance.analyze.daysLabel")},{default:l(()=>[a(te,{value:x.days,"onUpdate:value":i[9]||(i[9]=o=>x.days=o),min:1,max:30,style:{width:"100%"}},null,8,["value"])]),_:1},8,["label"])]),_:1}),b("p",Lt,r(e.$t("compliance.analyze.footnote")),1)]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"])])}}},Et=Ee(wt,[["__scopeId","data-v-81155fa8"]]);export{Et as default};
|