chainlesschain 0.166.138 → 0.166.140
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 +37 -11
- package/package.json +1 -1
- 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-CHItp4vg.js → AIOps-BefmcZw2.js} +1 -1
- package/src/assets/web-panel/assets/{ActionButton-nhMNWW_d.js → ActionButton-BBlS9rmj.js} +1 -1
- package/src/assets/web-panel/assets/{Analytics-DRc81BBI.js → Analytics-DfNjXT9e.js} +1 -1
- package/src/assets/web-panel/assets/{AppLayout-CVt7HMkp.js → AppLayout-CIBZPPMS.js} +2 -2
- package/src/assets/web-panel/assets/{Artifacts-BuJgG5jf.js → Artifacts-CE66rTTZ.js} +1 -1
- package/src/assets/web-panel/assets/{Audit-msNg0aH-.js → Audit-DOC8Lt8U.js} +1 -1
- package/src/assets/web-panel/assets/{BackgroundAgents-BpcV8yWC.js → BackgroundAgents-9TMG041Q.js} +1 -1
- package/src/assets/web-panel/assets/{Backup-P53DADwG.js → Backup-us3KWb9F.js} +1 -1
- package/src/assets/web-panel/assets/{BaseInput-DFxT2yWN.js → BaseInput-D6Q95Wr5.js} +1 -1
- package/src/assets/web-panel/assets/{Chat-BXoHisHW.js → Chat-BPrM5ARp.js} +1 -1
- package/src/assets/web-panel/assets/{ChatBubbleRenderer-DMGtSdDx.js → ChatBubbleRenderer-Drs9vSc4.js} +1 -1
- package/src/assets/web-panel/assets/{Checkbox-B4g_ckJq.js → Checkbox-DqZGMV0o.js} +1 -1
- package/src/assets/web-panel/assets/{Codegen-C6SSSOfp.js → Codegen-CmolL6wr.js} +1 -1
- package/src/assets/web-panel/assets/{Col-IO1NEUYL.js → Col-BwHSmoYQ.js} +1 -1
- package/src/assets/web-panel/assets/{Community-CdEBl93F.js → Community-DGWqobpd.js} +1 -1
- package/src/assets/web-panel/assets/{Compact-DYs0a9k7.js → Compact-t_yy09-r.js} +1 -1
- package/src/assets/web-panel/assets/{Compliance-BPnk7948.js → Compliance-D0S8-EsN.js} +1 -1
- package/src/assets/web-panel/assets/{Cowork-VLOTGbza.js → Cowork-Y1LiuRwP.js} +1 -1
- package/src/assets/web-panel/assets/{Cron-_9GgQLJo.js → Cron-FTqEw7QV.js} +1 -1
- package/src/assets/web-panel/assets/{Crosschain-B21yn0qy.js → Crosschain-C3rPZ4Qu.js} +1 -1
- package/src/assets/web-panel/assets/{DID-mBeDgRZ7.js → DID-Ba2zySM-.js} +1 -1
- package/src/assets/web-panel/assets/{Dashboard-BckYYzhP.js → Dashboard-D6xyN2ND.js} +2 -2
- package/src/assets/web-panel/assets/{Dropdown-DEedqFiE.js → Dropdown-BF4QuXJw.js} +1 -1
- package/src/assets/web-panel/assets/{EmailListRenderer-CMs0k9TB.js → EmailListRenderer-s9dUxq14.js} +1 -1
- package/src/assets/web-panel/assets/{EvolutionSettings-B00Qd0fN.js → EvolutionSettings-CoAKOfqZ.js} +1 -1
- package/src/assets/web-panel/assets/{FamilyGuardDashboard-DxMTAMa8.js → FamilyGuardDashboard-CEznwH1c.js} +1 -1
- package/src/assets/web-panel/assets/{Federation-B-UZw0LO.js → Federation-rIzOt8-a.js} +1 -1
- package/src/assets/web-panel/assets/{FormItemContext-CkafazEw.js → FormItemContext-BARFiExr.js} +1 -1
- package/src/assets/web-panel/assets/{GenericCardRenderer-DEUG25ZJ.js → GenericCardRenderer-DI0A4swS.js} +1 -1
- package/src/assets/web-panel/assets/{Git-D7dr9oz9.js → Git-DdmysND4.js} +1 -1
- package/src/assets/web-panel/assets/{Governance-DKlUJ1wg.js → Governance-DrdhwUz2.js} +1 -1
- package/src/assets/web-panel/assets/{Inference-BJKqplap.js → Inference-Scm8tumd.js} +1 -1
- package/src/assets/web-panel/assets/{KnowledgeGraph-B78fB-bz.js → KnowledgeGraph-_6bgPs4W.js} +1 -1
- package/src/assets/web-panel/assets/{Logs-DJGcHYH_.js → Logs-DW_v7bSo.js} +1 -1
- package/src/assets/web-panel/assets/{MarkdownRenderer-DkcG_MxW.js → MarkdownRenderer-7JABuv1j.js} +1 -1
- package/src/assets/web-panel/assets/{Marketplace-ucTbwByD.js → Marketplace-0h3YSvME.js} +1 -1
- package/src/assets/web-panel/assets/{McpTools-Cu1xZYYk.js → McpTools-Byrg0Y3e.js} +1 -1
- package/src/assets/web-panel/assets/{Memory-DCGpXmi-.js → Memory-Cyoq-o29.js} +1 -1
- package/src/assets/web-panel/assets/{MobileBridge-BnKr0aAS.js → MobileBridge-ISIlploU.js} +1 -1
- package/src/assets/web-panel/assets/{MobileProjects-C5UvYJTP.js → MobileProjects-04EncaRx.js} +1 -1
- package/src/assets/web-panel/assets/{Mtc-D1UUl4WH.js → Mtc-BMzkpyOF.js} +1 -1
- package/src/assets/web-panel/assets/{MtcAudit-D3aa8XP4.js → MtcAudit-Cx7BR5sz.js} +1 -1
- package/src/assets/web-panel/assets/{Multisig-DiXdfJjO.js → Multisig-D4pmkSX4.js} +1 -1
- package/src/assets/web-panel/assets/{NLProgramming-DbWABgSE.js → NLProgramming-CCfaaWNu.js} +1 -1
- package/src/assets/web-panel/assets/{Notes-BP1DPl-R.js → Notes-Mq-1ZyaH.js} +1 -1
- package/src/assets/web-panel/assets/{NotificationSettings-xaB6ONe7.js → NotificationSettings-rzf5V1TR.js} +1 -1
- package/src/assets/web-panel/assets/{OrderTableRenderer-D1uNcz3b.js → OrderTableRenderer-OREUs5ue.js} +1 -1
- package/src/assets/web-panel/assets/{Organization-DMLDGaf1.js → Organization-BQfOATgw.js} +1 -1
- package/src/assets/web-panel/assets/{Overflow-DH4QPEoI.js → Overflow-D7Pa6aaA.js} +1 -1
- package/src/assets/web-panel/assets/{P2P-Bl4OS10o.js → P2P-CaJ79ZsC.js} +1 -1
- package/src/assets/web-panel/assets/{PdhVaultBrowser-D9XSE2YI.js → PdhVaultBrowser-CtimQQN3.js} +2 -2
- package/src/assets/web-panel/assets/{Permissions-CUaPlr6d.js → Permissions-AzmmkLZ0.js} +1 -1
- package/src/assets/web-panel/assets/{PersonalDataHub-Ba92dZk-.js → PersonalDataHub-BRU8ME7z.js} +1 -1
- package/src/assets/web-panel/assets/{Pipeline-Bh2okm-8.js → Pipeline-BnNqutXh.js} +1 -1
- package/src/assets/web-panel/assets/{Privacy-Bmq3p4gC.js → Privacy-gMyZcxsz.js} +1 -1
- package/src/assets/web-panel/assets/{ProjectInit-BPu2fdKR.js → ProjectInit-CkK-Fvr0.js} +1 -1
- package/src/assets/web-panel/assets/{ProjectSettings-D6ABLpmt.js → ProjectSettings-CGY_uiIX.js} +1 -1
- package/src/assets/web-panel/assets/{Projects-qWHEve0z.js → Projects-DBNC7xXG.js} +1 -1
- package/src/assets/web-panel/assets/{Providers-D9DI-2hc.js → Providers-BVgWawtE.js} +1 -1
- package/src/assets/web-panel/assets/{QrScannerModal-CxifoeD5.js → QrScannerModal-DZILESCa.js} +1 -1
- package/src/assets/web-panel/assets/{QuickAsk-DC1BvwR7.js → QuickAsk-DwRBzFWW.js} +1 -1
- package/src/assets/web-panel/assets/{Recommend-CKqbMB5o.js → Recommend-B3VxvUih.js} +1 -1
- package/src/assets/web-panel/assets/{RemoteSession-BGGzPdS5.js → RemoteSession-DM74lufU.js} +1 -1
- package/src/assets/web-panel/assets/{Reputation-DH90O9-5.js → Reputation-DOOEuGHh.js} +1 -1
- package/src/assets/web-panel/assets/{Row-h7ovueJc.js → Row-BZJYAo0S.js} +1 -1
- package/src/assets/web-panel/assets/{RssFeed-DaHxXTZg.js → RssFeed-CYw44jcD.js} +1 -1
- package/src/assets/web-panel/assets/{Search-Bn6Nqpn4.js → Search-CbypjDNG.js} +1 -1
- package/src/assets/web-panel/assets/{Security-ClbBmPJi.js → Security-0rSBDrXh.js} +1 -1
- package/src/assets/web-panel/assets/{Services-ChHLQwRn.js → Services-kqP79CBD.js} +1 -1
- package/src/assets/web-panel/assets/{Skeleton-DfN6BFzt.js → Skeleton-BjxvGVfI.js} +1 -1
- package/src/assets/web-panel/assets/{Skills-C926wDev.js → Skills-SOoWyPCO.js} +1 -1
- package/src/assets/web-panel/assets/{Sla-DJzi1l1M.js → Sla-kdRVAT19.js} +1 -1
- package/src/assets/web-panel/assets/{SpeechSettings-_GSyVjm_.js → SpeechSettings-DILtcMaJ.js} +1 -1
- package/src/assets/web-panel/assets/{SyncSettings-B67xnERe.js → SyncSettings-C98Jauc4.js} +1 -1
- package/src/assets/web-panel/assets/{Tasks-BaYZadcG.js → Tasks-Bw-KaQAs.js} +1 -1
- package/src/assets/web-panel/assets/{Templates-Bu8kN1Xt.js → Templates-CDJ027Hd.js} +1 -1
- package/src/assets/web-panel/assets/{Tenant-BM9qufw1.js → Tenant-BqNV62UA.js} +1 -1
- package/src/assets/web-panel/assets/{Terminal-MEdd5DjB.js → Terminal-B8aQ3GLO.js} +1 -1
- package/src/assets/web-panel/assets/{TimelineRenderer-C27kL2oU.js → TimelineRenderer-BSpccq11.js} +1 -1
- package/src/assets/web-panel/assets/{Tokens-Cvjd98VC.js → Tokens-BbGMoFO6.js} +1 -1
- package/src/assets/web-panel/assets/{Trigger-CLym84HI.js → Trigger-D75Mawa_.js} +1 -1
- package/src/assets/web-panel/assets/{Trust-Bv2JTaNN.js → Trust-BiK_Pk05.js} +1 -1
- package/src/assets/web-panel/assets/{UkeySign-CSCkNbtm.js → UkeySign-Dv2xX_b9.js} +1 -1
- package/src/assets/web-panel/assets/{VideoEditing-BFDXB4xh.js → VideoEditing-CdBWfeEE.js} +1 -1
- package/src/assets/web-panel/assets/{Wallet-CMEFrG_b.js → Wallet-Cvrp4agg.js} +1 -1
- package/src/assets/web-panel/assets/{WebAuthn-x4eO_Q4y.js → WebAuthn-D0Htlf3v.js} +1 -1
- package/src/assets/web-panel/assets/{WorkflowEditor-ClWEPgV1.js → WorkflowEditor-nuUBOHIF.js} +1 -1
- package/src/assets/web-panel/assets/{chat-BdYOI4gM.js → chat-C6MLShIo.js} +1 -1
- package/src/assets/web-panel/assets/{colors-DcTBrGvS.js → colors-9G5FqFOC.js} +1 -1
- package/src/assets/web-panel/assets/{compact-item-Dn2ktVuj.js → compact-item-0M49EurU.js} +1 -1
- package/src/assets/web-panel/assets/{createContext-XTreuyqp.js → createContext-CiDDLED_.js} +1 -1
- package/src/assets/web-panel/assets/{hasIn-CFRNsYQd.js → hasIn-wZvUczmn.js} +1 -1
- package/src/assets/web-panel/assets/{index-ir2ZwWz5.js → index-8jz-X3xg.js} +1 -1
- package/src/assets/web-panel/assets/{index-DFl_a0n5.js → index-B0JZ_ccM.js} +1 -1
- package/src/assets/web-panel/assets/{index-kzyCd8a0.js → index-B6TAOS4G.js} +1 -1
- package/src/assets/web-panel/assets/{index-CsnYp4qF.js → index-BCfxxScC.js} +1 -1
- package/src/assets/web-panel/assets/{index-CbaPXyNc.js → index-BTCIIdoS.js} +1 -1
- package/src/assets/web-panel/assets/{index-ma-rJkfE.js → index-BVV2mBbo.js} +1 -1
- package/src/assets/web-panel/assets/{index-DQEu7uW0.js → index-BWTcG128.js} +1 -1
- package/src/assets/web-panel/assets/{index-DW9XncMy.js → index-BXIY2BIN.js} +1 -1
- package/src/assets/web-panel/assets/{index-D45vulkq.js → index-B_XOMujL.js} +1 -1
- package/src/assets/web-panel/assets/{index-DNdiAymC.js → index-BfwJm0DU.js} +1 -1
- package/src/assets/web-panel/assets/{index-CjHA_Q7s.js → index-BlcOkfzz.js} +1 -1
- package/src/assets/web-panel/assets/{index-Daa1yCt_.js → index-BmS2P_eX.js} +1 -1
- package/src/assets/web-panel/assets/{index-DdVpoNEQ.js → index-BzeA3eRQ.js} +1 -1
- package/src/assets/web-panel/assets/index-C101Sec6.js +1 -0
- package/src/assets/web-panel/assets/{index-BBd64wj8.js → index-C63qiwQz.js} +1 -1
- package/src/assets/web-panel/assets/{index-lnTt0Jps.js → index-CTy9gD3m.js} +1 -1
- package/src/assets/web-panel/assets/{index-CRW3AWdS.js → index-CdUmgLxP.js} +1 -1
- package/src/assets/web-panel/assets/{index-Vo7A4aiN.js → index-CdaLWIz-.js} +1 -1
- package/src/assets/web-panel/assets/{index-CUT4h5JB.js → index-CoxzvhoN.js} +1 -1
- package/src/assets/web-panel/assets/{index-3RqDry-K.js → index-Cs66y4oC.js} +3 -3
- package/src/assets/web-panel/assets/{index-BMLpP8QQ.js → index-CtbFv3Et.js} +1 -1
- package/src/assets/web-panel/assets/{index-CG9YLDmI.js → index-Cz1SAgnb.js} +1 -1
- package/src/assets/web-panel/assets/index-D23TaGOp.js +1 -0
- package/src/assets/web-panel/assets/{index-Brc0BF-k.js → index-D2wN6VIq.js} +1 -1
- package/src/assets/web-panel/assets/{index-BSqydcDa.js → index-D51V5vmz.js} +1 -1
- package/src/assets/web-panel/assets/{index-CXMa7Z-S.js → index-D9J_tLGk.js} +1 -1
- package/src/assets/web-panel/assets/{index-BV6LojRv.js → index-DN9t1qjW.js} +1 -1
- package/src/assets/web-panel/assets/{index-CNHWMMDX.js → index-DOxTmc3k.js} +1 -1
- package/src/assets/web-panel/assets/{index-BEyVNbNE.js → index-DcZxOXd8.js} +1 -1
- package/src/assets/web-panel/assets/{index-D9kPBEqD.js → index-Dclwd_lj.js} +1 -1
- package/src/assets/web-panel/assets/{index-DDTSgpXz.js → index-DeHSwWVG.js} +1 -1
- package/src/assets/web-panel/assets/{index-XdlYkgCa.js → index-DvWRS-s7.js} +1 -1
- package/src/assets/web-panel/assets/{index-r5sNECM5.js → index-DwUOiN8M.js} +1 -1
- package/src/assets/web-panel/assets/{index-8METW_Wr.js → index-DwX9cOL6.js} +1 -1
- package/src/assets/web-panel/assets/{index-uT4fRDzU.js → index-JhfNEldK.js} +1 -1
- package/src/assets/web-panel/assets/{index-BbMWvjLZ.js → index-dJ_V_Fqy.js} +1 -1
- package/src/assets/web-panel/assets/{index-COuEJdmr.js → index-k0BVfcwQ.js} +1 -1
- package/src/assets/web-panel/assets/{index-Dhi4Oybt.js → index-qJcOtd8J.js} +1 -1
- package/src/assets/web-panel/assets/{index-oE4jTpHK.js → index-sBsJaBmM.js} +1 -1
- package/src/assets/web-panel/assets/{initDefaultProps-mdL0oeZa.js → initDefaultProps-DyIyjurJ.js} +1 -1
- package/src/assets/web-panel/assets/{motion-ZgVCKcEX.js → motion-B2D0PuTM.js} +1 -1
- package/src/assets/web-panel/assets/{move-A_28O5T2.js → move-B22T5MnN.js} +1 -1
- package/src/assets/web-panel/assets/{mtc-parser-0zlMjabo.js → mtc-parser-i4b7HNzF.js} +1 -1
- package/src/assets/web-panel/assets/{omit-DF7mU3yG.js → omit-ByNIr_gz.js} +1 -1
- package/src/assets/web-panel/assets/{pickAttrs-Cmt8liJP.js → pickAttrs-_xP2RvxA.js} +1 -1
- package/src/assets/web-panel/assets/{placementArrow-DaMDC57b.js → placementArrow-CVDvzK0z.js} +1 -1
- package/src/assets/web-panel/assets/{responsiveObserve-CHw_f2d3.js → responsiveObserve-CI1toXJ_.js} +1 -1
- package/src/assets/web-panel/assets/{slide-DJS9fFQq.js → slide-2_VosSRQ.js} +1 -1
- package/src/assets/web-panel/assets/{statusUtils-Bk3XdZwh.js → statusUtils-CMiWWrZC.js} +1 -1
- package/src/assets/web-panel/assets/{styleChecker-DMybAFsA.js → styleChecker-DY8wTVCe.js} +1 -1
- package/src/assets/web-panel/assets/{useFlexGapSupport-_tbIIFMu.js → useFlexGapSupport-DkdcgIyl.js} +1 -1
- package/src/assets/web-panel/assets/{useFs-KPklVptS.js → useFs-gpl11PEF.js} +1 -1
- package/src/assets/web-panel/assets/{usePersonalDataHub-C7FrKDhD.js → usePersonalDataHub-DqnQ0H9y.js} +1 -1
- package/src/assets/web-panel/assets/{vnode-DB3JBusp.js → vnode-CgY9xUvr.js} +1 -1
- package/src/assets/web-panel/assets/{zoom-C8rAdf81.js → zoom-Ch0jan5_.js} +1 -1
- package/src/assets/web-panel/index.html +1 -1
- package/src/data/changelog.json +26 -0
- package/src/gateways/ws/ws-server.js +16 -0
- package/src/lib/coding-change-review-context.js +51 -0
- package/src/lib/coding-task-guidance.js +1 -1
- package/src/lib/evolution/agent-model-projection.js +17 -0
- package/src/lib/evolution/evolution-evidence-projector.js +85 -8
- package/src/lib/read-file-loop-guard.js +13 -10
- package/src/lib/read-file-page.js +4 -1
- package/src/lib/source-read-recovery.js +89 -0
- package/src/lib/tool-result-preview.js +7 -3
- package/src/runtime/agent-core.js +104 -52
- package/src/runtime/tool-argument-recovery.js +111 -0
- package/src/assets/web-panel/assets/index-DoVoNjtJ.js +0 -1
- package/src/assets/web-panel/assets/index-xlS8pDS2.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{t as M,_ as st,u as it,b as rt,E as ut,d as A}from"./index-3RqDry-K.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-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 +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-Cs66y4oC.js";import{b as G,c as I}from"./index-BlcOkfzz.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-3RqDry-K.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-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 +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-Cs66y4oC.js";import{c as A}from"./createContext-CiDDLED_.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-3RqDry-K.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-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,4 +1,4 @@
|
|
|
1
|
-
import{E as oe,w as ne,r as d,f as z,o as ie,M as i,R as n,c as p,u as s,F as x,Y as b,Z as I,a1 as Y,P as r,S as _,O as g,Q as k,$ as X,N as v,a0 as re,K as C,L as a,n as ae}from"./vendor-BXcBOG8b.js";import{u as ee,_ as ce}from"./index-
|
|
1
|
+
import{E as oe,w as ne,r as d,f as z,o as ie,M as i,R as n,c as p,u as s,F as x,Y as b,Z as I,a1 as Y,P as r,S as _,O as g,Q as k,$ as X,N as v,a0 as re,K as C,L as a,n as ae}from"./vendor-BXcBOG8b.js";import{u as ee,_ as ce}from"./index-Cs66y4oC.js";import{u as F}from"./chat-C6MLShIo.js";import{r as te}from"./markdown-Bq2x0XsR.js";import{j as H,i as ue,ao as le,ap as de,K as pe,ad as ve,G as me,Z as _e,s as ye,aq as fe,u as ge,a6 as he,ar as ke,l as we,af as Se,am as xe}from"./icons-DlxlFL4g.js";import"./markdown-DUKxbhE4.js";const be=[{id:"doc-convert",name:"文档格式转换",icon:"FileTextOutlined",category:"document",description:"Word、Markdown、HTML、PDF 之间的格式互转",examples:["把 report.docx 转成 PDF","合并多个 Markdown 为一个文档"],acceptsFiles:!0},{id:"media-process",name:"音视频处理",icon:"PlayCircleOutlined",category:"media",description:"视频压缩、音频提取、格式转换、剪辑",examples:["提取 MP4 的音频","压缩视频到 50MB 以内"],acceptsFiles:!0},{id:"data-analysis",name:"数据分析",icon:"BarChartOutlined",category:"data",description:"CSV/Excel 分析、统计、可视化图表",examples:["分析 sales.csv 的月度趋势"],acceptsFiles:!0},{id:"web-research",name:"信息检索与调研",icon:"SearchOutlined",category:"research",description:"网页抓取、API 调用、多源信息汇总",examples:["调研 AI Agent 框架对比"],acceptsFiles:!1},{id:"image-process",name:"图片处理",icon:"PictureOutlined",category:"media",description:"批量压缩、格式转换、加水印、OCR",examples:["批量压缩到 500KB"],acceptsFiles:!0},{id:"code-helper",name:"代码辅助",icon:"CodeOutlined",category:"development",description:"生成脚本、调试代码、自动化任务",examples:["写一个批量重命名脚本"],acceptsFiles:!0},{id:"system-admin",name:"系统运维",icon:"DesktopOutlined",category:"system",description:"磁盘分析、进程管理、日志分析",examples:["查看磁盘使用情况"],acceptsFiles:!1},{id:"file-organize",name:"文件整理",icon:"FolderOpenOutlined",category:"file",description:"批量重命名、分类整理、查找重复",examples:["按文件类型分类整理"],acceptsFiles:!1},{id:"network-tools",name:"网络工具",icon:"GlobalOutlined",category:"network",description:"API 调试、网页抓取、网络诊断",examples:["测试 API 接口"],acceptsFiles:!1},{id:"learning-assist",name:"学习辅助",icon:"ReadOutlined",category:"learning",description:"文档翻译、内容总结、论文分析",examples:["翻译 PDF 摘要"],acceptsFiles:!0}],Ce=oe("cowork",()=>{const W=d(be),t=d(null),y=d([]),w=d(!1),O=d([]),h=d([]),T=d(null),m=d(null),S=d(null),P=d([]),Q=d(!1),U=d(3),A=d(!1),R=d([]),D=F();ne(()=>D.isLoading,o=>{!o&&m.value&&(w.value=!1)});function j(o){t.value=o,q()}function q(){O.value=[],h.value=[],T.value=null,w.value=!1,m.value=null,S.value=null}function E(o){y.value.includes(o)||y.value.push(o)}function B(o){y.value=y.value.filter(e=>e!==o)}async function u(){const o=ee();try{await o.waitConnected(5e3);const e=await o.sendRaw({type:"cowork-templates"},1e4);e?.templates?.length&&(W.value=e.templates)}catch{}}async function l(){const o=ee();try{await o.waitConnected(5e3);const e=await o.sendRaw({type:"cowork-history",limit:50},1e4);e?.entries&&(P.value=e.entries)}catch{}}async function f(o){S.value={mode:"session",message:o},w.value=!0;const e=t.value;let c="";e&&(c=`## 当前任务类型: ${e.name}
|
|
2
2
|
${e.description||""}`);let $=o;y.value.length&&($+=`
|
|
3
3
|
|
|
4
4
|
[用户提供的文件: ${y.value.join(", ")}]`),h.value.push({role:"user",content:o,timestamp:Date.now()});const M={systemPromptExtension:c};e?.shellPolicyOverrides&&(M.shellPolicyOverrides=e.shellPolicyOverrides);const se=await D.createSession("agent",M);m.value=se,await D.sendMessage(se,$)}async function N(o){S.value={mode:"direct",message:o};const e=ee();w.value=!0,h.value.push({role:"user",content:o,timestamp:Date.now()});try{await e.waitConnected(8e3);const c={type:"cowork-task",templateId:t.value?.id||null,userMessage:o,files:y.value};Q.value&&(c.parallel=!0,c.agents=U.value);const $=t.value;(A.value||$?.mode==="debate")&&(c.mode="debate",R.value.length&&(c.perspectives=R.value));const M=await e.sendRaw(c,3e5);h.value.push({role:"assistant",content:M.summary||"(No output)",timestamp:Date.now(),toolsUsed:M.toolsUsed||[],iterationCount:M.iterationCount||0}),T.value=M}catch(c){h.value.push({role:"assistant",content:`Error: ${c.message}`,timestamp:Date.now()})}finally{w.value=!1}}const G=z(()=>m.value?F().getMessages(m.value):[]),J=z(()=>{if(!m.value)return null;const e=F().streaming[m.value];return e?.active?e.content:null}),V=z(()=>m.value&&F().pendingQuestion[m.value]||null);function K(o){if(!m.value)return;F().answerQuestion(m.value,o)}async function L(){if(!S.value)return;const{mode:o,message:e}=S.value;o==="direct"?await N(e):await f(e)}async function Z(o){if(!m.value)return;const e=F();h.value.push({role:"user",content:o,timestamp:Date.now()});let c=o;y.value.length&&(c+=`
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{b as ae,u as le,d as _}from"./index-
|
|
1
|
+
import{b as ae,u as le,d as _}from"./index-Cs66y4oC.js";import{at as te,R as ne,z as oe}from"./icons-DlxlFL4g.js";import{o as se,M as g,R as f,P as i,u as n,c as a,N as t,K as c,r as z,L as p,O as b,F as R,Y as re,Q as L,S as C,f as P}from"./vendor-BXcBOG8b.js";const ce={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},ie={class:"page-title"},ue={class:"page-sub"},de={key:0,style:{"text-align":"center",padding:"40px"}},me={style:{color:"#e0e0e0","font-weight":"500"}},pe={key:0,style:{color:"var(--text-secondary)","font-size":"11px"}},ve={key:1,style:{background:"var(--bg-card-hover)",padding:"2px 6px","border-radius":"3px",color:"#91caff","font-size":"11px"}},_e={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},ye={style:{color:"var(--text-secondary)","font-size":"11px","margin-top":"4px"}},he={__name:"Cron",setup(fe){const{t:e}=ae(),k=le(),T=z(!1),O=z(!1),h=z(!1),y=z([]),q=P(()=>y.value.filter(l=>l.enabled).length),B=P(()=>y.value.filter(l=>!l.enabled).length),E=[{key:"every5m",cron:"*/5 * * * *"},{key:"every15m",cron:"*/15 * * * *"},{key:"everyHour",cron:"0 * * * *"},{key:"every9am",cron:"0 9 * * *"},{key:"every6pm",cron:"0 18 * * *"},{key:"weeklyMon9",cron:"0 9 * * 1"},{key:"monthly1",cron:"0 9 1 * *"}],U=P(()=>E.map(l=>({...l,label:e(`cron.presets.${l.key}`)}))),r=z({name:"",cron:"",payload:"",description:"",enabled:!0}),V=P(()=>[{title:e("cron.columns.name"),key:"name",width:"25%"},{title:e("cron.columns.cron"),key:"cron",width:"20%"},{title:e("cron.columns.status"),key:"status",width:"15%"},{title:e("cron.columns.actions"),key:"actions",width:"20%"}]);async function F(){T.value=!0;try{const{output:l}=await k.execute('skill run cron-scheduler "list all scheduled tasks"',2e4);y.value=M(l)}catch{y.value=[]}finally{T.value=!1}}function M(l){const o=[],v=l.split(`
|
|
2
2
|
`);for(const x of v){const d=x.trim();if(!d||d.startsWith("─"))continue;const m=d.match(/^([^\t|]+?)[\t|]+([*\d/,\-?LW#\s]+)[\t|]+/);m&&o.push({key:o.length,name:m[1].trim(),cron:m[2].trim(),enabled:!d.toLowerCase().includes("pause")&&!d.toLowerCase().includes("disabled"),description:"",running:!1})}return o}function W(l){r.value.cron=l.cron,h.value=!0}async function A(){if(!r.value.name||!r.value.cron){_.warning(e("cron.messages.nameAndCronRequired"));return}O.value=!0;try{const l=`skill run cron-scheduler "add task: ${r.value.name}, schedule: ${r.value.cron}, payload: ${r.value.payload||"ping"}"`;await k.execute(l,2e4),_.success(e("cron.messages.createOk")),h.value=!1,r.value={name:"",cron:"",payload:"",description:"",enabled:!0},await F()}catch(l){_.error(e("cron.messages.createFailed",{err:l.message}))}finally{O.value=!1}}async function H(l){l.running=!0;try{await k.execute(`skill run cron-scheduler "run task: ${l.name}"`,3e4),_.success(e("cron.messages.runOk",{name:l.name}))}catch(o){_.error(e("cron.messages.runFailed",{err:o.message}))}finally{l.running=!1}}async function j(l){const o=l.enabled?"pause":"enable";try{await k.execute(`skill run cron-scheduler "${o} task: ${l.name}"`,1e4),l.enabled=!l.enabled,_.success(l.enabled?e("cron.messages.toggleEnabled"):e("cron.messages.togglePaused"))}catch{_.error(e("cron.messages.toggleFailed"))}}async function D(l){try{await k.execute(`skill run cron-scheduler "delete task: ${l.name}"`,1e4),y.value=y.value.filter(o=>o.key!==l.key),_.success(e("cron.messages.deleteOk"))}catch{_.error(e("cron.messages.deleteFailed"))}}return se(F),(l,o)=>{const v=c("a-button"),x=c("a-space"),d=c("a-statistic"),m=c("a-card"),$=c("a-col"),I=c("a-row"),K=c("a-spin"),Q=c("a-badge"),Y=c("a-popconfirm"),G=c("a-table"),S=c("a-input"),w=c("a-form-item"),J=c("a-textarea"),X=c("a-switch"),Z=c("a-form"),ee=c("a-modal");return p(),g("div",null,[f("div",ce,[f("div",null,[f("h2",ie,i(n(e)("cron.title")),1),f("p",ue,i(n(e)("cron.subtitle")),1)]),a(x,null,{default:t(()=>[a(v,{onClick:o[0]||(o[0]=s=>h.value=!0),type:"primary"},{icon:t(()=>[a(n(te))]),default:t(()=>[b(" "+i(n(e)("cron.newTask")),1)]),_:1}),a(v,{ghost:"",loading:T.value,onClick:F},{icon:t(()=>[a(n(ne))]),default:t(()=>[b(" "+i(n(e)("cron.refresh")),1)]),_:1},8,["loading"])]),_:1})]),a(I,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:t(()=>[a($,{xs:12,sm:6},{default:t(()=>[a(m,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"},size:"small"},{default:t(()=>[a(d,{title:n(e)("cron.stats.all"),value:y.value.length,"value-style":"color: #ccc; font-size: 18px;"},null,8,["title","value"])]),_:1})]),_:1}),a($,{xs:12,sm:6},{default:t(()=>[a(m,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"},size:"small"},{default:t(()=>[a(d,{title:n(e)("cron.stats.active"),value:q.value,"value-style":"color: #52c41a; font-size: 18px;"},null,8,["title","value"])]),_:1})]),_:1}),a($,{xs:12,sm:6},{default:t(()=>[a(m,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"},size:"small"},{default:t(()=>[a(d,{title:n(e)("cron.stats.paused"),value:B.value,"value-style":"color: #faad14; font-size: 18px;"},null,8,["title","value"])]),_:1})]),_:1}),a($,{xs:12,sm:6},{default:t(()=>[a(m,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"},size:"small"},{default:t(()=>[a(d,{title:n(e)("cron.stats.presets"),value:U.value.length,"value-style":"color: #1677ff; font-size: 18px;"},null,8,["title","value"])]),_:1})]),_:1})]),_:1}),a(m,{title:n(e)("cron.presetsCardTitle"),style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"16px"},size:"small"},{default:t(()=>[a(x,{wrap:""},{default:t(()=>[(p(!0),g(R,null,re(U.value,s=>(p(),L(v,{key:s.key,size:"small",style:{background:"var(--bg-card-hover)","border-color":"var(--border-color)","font-size":"12px"},onClick:u=>W(s)},{default:t(()=>[b(i(s.label),1)]),_:2},1032,["onClick"]))),128))]),_:1})]),_:1},8,["title"]),a(m,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[T.value?(p(),g("div",de,[a(K,{size:"large"})])):(p(),L(G,{key:1,columns:V.value,"data-source":y.value,pagination:{pageSize:15},size:"small"},{bodyCell:t(({column:s,record:u})=>[s.key==="name"?(p(),g(R,{key:0},[f("div",me,i(u.name),1),u.description?(p(),g("div",pe,i(u.description),1)):C("",!0)],64)):C("",!0),s.key==="cron"?(p(),g("code",ve,i(u.cron),1)):C("",!0),s.key==="status"?(p(),L(Q,{key:2,status:u.enabled?"success":"warning",text:u.enabled?n(e)("cron.running"):n(e)("cron.paused")},null,8,["status","text"])):C("",!0),s.key==="actions"?(p(),L(x,{key:3,size:"small"},{default:t(()=>[a(v,{size:"small",type:"link",loading:u.running,onClick:N=>H(u)},{default:t(()=>[b(i(n(e)("cron.actions.run")),1)]),_:1},8,["loading","onClick"]),a(v,{size:"small",type:"link",onClick:N=>j(u)},{default:t(()=>[b(i(u.enabled?n(e)("cron.actions.pause"):n(e)("cron.actions.enable")),1)]),_:2},1032,["onClick"]),a(Y,{title:n(e)("cron.actions.deleteConfirm"),onConfirm:N=>D(u)},{default:t(()=>[a(v,{size:"small",type:"link",danger:""},{default:t(()=>[b(i(n(e)("cron.actions.delete")),1)]),_:1})]),_:1},8,["title","onConfirm"])]),_:2},1024)):C("",!0)]),emptyText:t(()=>[f("div",_e,[a(n(oe),{style:{"font-size":"36px","margin-bottom":"12px",display:"block"}}),b(" "+i(n(e)("cron.emptyText")),1)])]),_:1},8,["columns","data-source"]))]),_:1}),a(ee,{open:h.value,"onUpdate:open":o[6]||(o[6]=s=>h.value=s),title:n(e)("cron.modal.title"),"confirm-loading":O.value,onOk:A,width:"520px"},{default:t(()=>[a(Z,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:t(()=>[a(w,{label:n(e)("cron.modal.nameLabel"),required:""},{default:t(()=>[a(S,{value:r.value.name,"onUpdate:value":o[1]||(o[1]=s=>r.value.name=s),placeholder:n(e)("cron.modal.namePlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),a(w,{label:n(e)("cron.modal.cronLabel"),required:""},{default:t(()=>[a(S,{value:r.value.cron,"onUpdate:value":o[2]||(o[2]=s=>r.value.cron=s),placeholder:n(e)("cron.modal.cronPlaceholder")},null,8,["value","placeholder"]),f("div",ye,i(n(e)("cron.modal.cronHint")),1)]),_:1},8,["label"]),a(w,{label:n(e)("cron.modal.payloadLabel"),required:""},{default:t(()=>[a(J,{value:r.value.payload,"onUpdate:value":o[3]||(o[3]=s=>r.value.payload=s),rows:3,placeholder:n(e)("cron.modal.payloadPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),a(w,{label:n(e)("cron.modal.descriptionLabel")},{default:t(()=>[a(S,{value:r.value.description,"onUpdate:value":o[4]||(o[4]=s=>r.value.description=s),placeholder:n(e)("cron.modal.descriptionPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),a(w,{label:n(e)("cron.modal.enabledLabel")},{default:t(()=>[a(X,{checked:r.value.enabled,"onUpdate:checked":o[5]||(o[5]=s=>r.value.enabled=s)},null,8,["checked"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading"])])}}};export{he as default};
|