chainlesschain 0.162.101 → 0.162.103
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 +1 -1
- package/package.json +2 -2
- package/scripts/postinstall.mjs +33 -3
- package/src/assets/web-panel/assets/{AIOps-NeD6mA1O.js → AIOps-BpJ5yCcV.js} +1 -1
- package/src/assets/web-panel/assets/{ActionButton-Bhp7A7vO.js → ActionButton-B1uBfxnA.js} +1 -1
- package/src/assets/web-panel/assets/{Analytics-DgdI84Jy.js → Analytics-0ubw5quf.js} +3 -3
- package/src/assets/web-panel/assets/{AppLayout-Qw29caa7.js → AppLayout-go-GyyM_.js} +4 -4
- package/src/assets/web-panel/assets/{Audit-DgkzhBjz.js → Audit-CdUfoUnM.js} +1 -1
- package/src/assets/web-panel/assets/{Backup-CiWEQoW5.js → Backup-CBn0xtsa.js} +1 -1
- package/src/assets/web-panel/assets/{BaseInput-BWNbkeDF.js → BaseInput-a9fqTkvL.js} +1 -1
- package/src/assets/web-panel/assets/{Chat-CUcj4Vyd.js → Chat-D-d_IatD.js} +6 -6
- package/src/assets/web-panel/assets/{ChatBubbleRenderer-bAMNCgEj.js → ChatBubbleRenderer-Co9h0SbA.js} +1 -1
- package/src/assets/web-panel/assets/{Checkbox-B0uZTW8f.js → Checkbox-CiKEjtXm.js} +1 -1
- package/src/assets/web-panel/assets/{Codegen-BPk7b-Xa.js → Codegen-OQxW_9Z2.js} +1 -1
- package/src/assets/web-panel/assets/{Col-C2cV_dw4.js → Col-BZHXUEnZ.js} +1 -1
- package/src/assets/web-panel/assets/{Community-CDN6Yggb.js → Community-D3xno9fj.js} +1 -1
- package/src/assets/web-panel/assets/{Compact-C4WPtW_V.js → Compact-D62jpZk_.js} +1 -1
- package/src/assets/web-panel/assets/{Compliance-BGUfeH-3.js → Compliance-D4jFTAcQ.js} +1 -1
- package/src/assets/web-panel/assets/{Cowork-CsnVgF-o.js → Cowork-BOU_wir4.js} +3 -3
- package/src/assets/web-panel/assets/{Cron--rGanASk.js → Cron-Cr9BlJA7.js} +2 -2
- package/src/assets/web-panel/assets/{Crosschain-D_CLrd-0.js → Crosschain-L9M--CXb.js} +1 -1
- package/src/assets/web-panel/assets/{DID-iYkbVc8W.js → DID-xFu3-VWT.js} +2 -2
- package/src/assets/web-panel/assets/{Dashboard-CuFMU98t.js → Dashboard--ax48T3j.js} +2 -2
- package/src/assets/web-panel/assets/{Dropdown-BPSjv_Ye.js → Dropdown-CTOS8daR.js} +1 -1
- package/src/assets/web-panel/assets/{EmailListRenderer-DBmk7czO.js → EmailListRenderer-CNLSX81U.js} +1 -1
- package/src/assets/web-panel/assets/{FamilyGuardDashboard-BaCArN11.js → FamilyGuardDashboard-5EjFynBc.js} +1 -1
- package/src/assets/web-panel/assets/{Federation-DsTV-8Ca.js → Federation-CoPyIWIu.js} +1 -1
- package/src/assets/web-panel/assets/{FormItemContext-C6fRr_6F.js → FormItemContext-BbzCNbYy.js} +1 -1
- package/src/assets/web-panel/assets/{GenericCardRenderer-AfuZCfyv.js → GenericCardRenderer-8_9_uXY0.js} +1 -1
- package/src/assets/web-panel/assets/{Git-CAFIrGhb.js → Git-Bz_qlVPg.js} +2 -2
- package/src/assets/web-panel/assets/{Governance-C-NaxDs4.js → Governance-7eepNCeD.js} +1 -1
- package/src/assets/web-panel/assets/{Inference-BPfeNZP7.js → Inference-DlBx5l1g.js} +1 -1
- package/src/assets/web-panel/assets/{KnowledgeGraph-DDUBte_m.js → KnowledgeGraph-BPkc--rM.js} +1 -1
- package/src/assets/web-panel/assets/{Logs-DWysA6JP.js → Logs-BQw4nPvS.js} +2 -2
- package/src/assets/web-panel/assets/{Marketplace-CAK68hXc.js → Marketplace-Cil3SdgN.js} +1 -1
- package/src/assets/web-panel/assets/{McpTools-CNmmoDAk.js → McpTools-Bnch7KrG.js} +3 -3
- package/src/assets/web-panel/assets/{Memory-D_KmFoui.js → Memory-assQ3Suc.js} +2 -2
- package/src/assets/web-panel/assets/{MobileBridge-CaY-6kjj.js → MobileBridge-D5mE8c-z.js} +2 -2
- package/src/assets/web-panel/assets/MobileProjects-C4MiDXw1.js +1 -0
- package/src/assets/web-panel/assets/{Mtc-YnLrtuXT.js → Mtc-CumojeLk.js} +5 -5
- package/src/assets/web-panel/assets/{MtcAudit-D38v836u.js → MtcAudit-3tTBc_fw.js} +4 -4
- package/src/assets/web-panel/assets/{Multisig-Dv3ad9S4.js → Multisig-Dl4IJBsl.js} +3 -3
- package/src/assets/web-panel/assets/{NLProgramming-MYTh2eWC.js → NLProgramming-DHN_cV9x.js} +1 -1
- package/src/assets/web-panel/assets/{Notes-DYO-0Hva.js → Notes-DeyTvwYk.js} +3 -3
- package/src/assets/web-panel/assets/{NotificationSettings-D39gOb3h.js → NotificationSettings-BUkj8mTj.js} +1 -1
- package/src/assets/web-panel/assets/{OrderTableRenderer-CXdO0z3I.js → OrderTableRenderer-BMpEXTki.js} +1 -1
- package/src/assets/web-panel/assets/{Organization-DOYTwQwt.js → Organization-B6Ogmkpz.js} +4 -4
- package/src/assets/web-panel/assets/{Overflow-Cm-go0yU.js → Overflow-DRUE-2Wz.js} +1 -1
- package/src/assets/web-panel/assets/{P2P-CakGtorw.js → P2P-CnMUkd64.js} +2 -2
- package/src/assets/web-panel/assets/{PdhVaultBrowser-BlmbHJnb.js → PdhVaultBrowser-B3nFxT3b.js} +4 -4
- package/src/assets/web-panel/assets/{Permissions-C_podo04.js → Permissions-CyG1FR7v.js} +4 -4
- package/src/assets/web-panel/assets/{PersonalDataHub-nBbehIKp.js → PersonalDataHub-BmN6YMb5.js} +3 -3
- package/src/assets/web-panel/assets/{Pipeline-CGzQUoKv.js → Pipeline-BZcamAnH.js} +1 -1
- package/src/assets/web-panel/assets/{Privacy-BuD-Dd9m.js → Privacy-D7_zsaY3.js} +1 -1
- package/src/assets/web-panel/assets/{ProjectInit-CLcFmGXU.js → ProjectInit-DNa7XQjg.js} +2 -2
- package/src/assets/web-panel/assets/{ProjectSettings-BxXTR0dH.js → ProjectSettings-KH2Dm09G.js} +2 -2
- package/src/assets/web-panel/assets/{Projects-DkpBjAfd.js → Projects-T-WqR3D6.js} +1 -1
- package/src/assets/web-panel/assets/{Providers-DwHK42ht.js → Providers-8GtQ6GgR.js} +1 -1
- package/src/assets/web-panel/assets/{QuickAsk-idJPKErk.js → QuickAsk-BuBM5Zpg.js} +1 -1
- package/src/assets/web-panel/assets/{Recommend-BvJj0Nu2.js → Recommend-DvH95W1b.js} +1 -1
- package/src/assets/web-panel/assets/{Reputation-BK9l4Rcf.js → Reputation-BHCpMEP6.js} +1 -1
- package/src/assets/web-panel/assets/{Row-rLxg7xk5.js → Row-BnMPysBm.js} +1 -1
- package/src/assets/web-panel/assets/{RssFeed-Cw6ZcHBY.js → RssFeed-C-T8B5VU.js} +3 -3
- package/src/assets/web-panel/assets/{Search-D8mKp506.js → Search-CioiZGkX.js} +1 -1
- package/src/assets/web-panel/assets/{Security-CXunojmQ.js → Security-zSApKqdd.js} +4 -4
- package/src/assets/web-panel/assets/{Services-BE5DgmPl.js → Services-CQh0UDXC.js} +2 -2
- package/src/assets/web-panel/assets/{Skeleton-CssL5wmE.js → Skeleton-C0dRaEVG.js} +1 -1
- package/src/assets/web-panel/assets/{Skills-zyS_1YrT.js → Skills-BgQRArsa.js} +1 -1
- package/src/assets/web-panel/assets/{Sla-DIVn2Roa.js → Sla-BNn7F3jc.js} +1 -1
- package/src/assets/web-panel/assets/{SpeechSettings-CjNdZWdj.js → SpeechSettings-kvVfKfqv.js} +1 -1
- package/src/assets/web-panel/assets/{SyncSettings-BCbu5WQT.js → SyncSettings-BwIkkX1E.js} +2 -2
- package/src/assets/web-panel/assets/{Tasks-BjFrgXge.js → Tasks-BkcvhBZw.js} +1 -1
- package/src/assets/web-panel/assets/{Templates-Cl4Y3lKN.js → Templates-COK0o2pL.js} +1 -1
- package/src/assets/web-panel/assets/{Tenant-k1T0F_eH.js → Tenant-DpK87fqo.js} +1 -1
- package/src/assets/web-panel/assets/{Terminal-i0tHF8fy.js → Terminal-2g2-XPT_.js} +2 -2
- package/src/assets/web-panel/assets/{TimelineRenderer-FmPaNyqK.js → TimelineRenderer-B4SJqyqf.js} +1 -1
- package/src/assets/web-panel/assets/{Tokens-BUWEiyab.js → Tokens-C3iSR8fH.js} +1 -1
- package/src/assets/web-panel/assets/{Trigger-9srMXwpo.js → Trigger-D1Oo58Yo.js} +1 -1
- package/src/assets/web-panel/assets/{Trust-hmGor_R2.js → Trust-CUhy4DDc.js} +1 -1
- package/src/assets/web-panel/assets/{UkeySign-Dst7K10a.js → UkeySign-r-kTqSw8.js} +1 -1
- package/src/assets/web-panel/assets/{VideoEditing-D_utUv1u.js → VideoEditing-B8MyBfCX.js} +1 -1
- package/src/assets/web-panel/assets/{Wallet-BpYTTseI.js → Wallet-CquTfSv0.js} +4 -4
- package/src/assets/web-panel/assets/{WebAuthn-CEIw8QrF.js → WebAuthn-BC7TP1H3.js} +5 -5
- package/src/assets/web-panel/assets/{WorkflowEditor-Bkb4bUZ_.js → WorkflowEditor-CELBSNbP.js} +1 -1
- package/src/assets/web-panel/assets/{chat-CTqDgGRH.js → chat-d66mbO2i.js} +1 -1
- package/src/assets/web-panel/assets/{colors-CnJHVFLk.js → colors-D0WRCg20.js} +1 -1
- package/src/assets/web-panel/assets/{compact-item-D4-v0ahl.js → compact-item-4__-8TIi.js} +1 -1
- package/src/assets/web-panel/assets/{createContext-CYDbnHZX.js → createContext-Dqsf52js.js} +1 -1
- package/src/assets/web-panel/assets/devWarning-DUAmX0aE.js +1 -0
- package/src/assets/web-panel/assets/{hasIn-CbYwlEz5.js → hasIn-ClTZOS8I.js} +1 -1
- package/src/assets/web-panel/assets/{index-DVKfa-z4.js → index-0Axwx1nN.js} +1 -1
- package/src/assets/web-panel/assets/{index-Cl7-mbsb.js → index-81SaeU6t.js} +1 -1
- package/src/assets/web-panel/assets/{index-CK8nROWH.js → index-B1TGSkBt.js} +1 -1
- package/src/assets/web-panel/assets/{index-BygyTsjr.js → index-B3vrmn5v.js} +1 -1
- package/src/assets/web-panel/assets/{index-B78d_-pR.js → index-BCOpbfAH.js} +1 -1
- package/src/assets/web-panel/assets/index-BLCwqv8j.js +1 -0
- package/src/assets/web-panel/assets/{index-YuO8gxKb.js → index-BNKECBZm.js} +1 -1
- package/src/assets/web-panel/assets/{index-tmNsJzQU.js → index-BwozLU75.js} +1 -1
- package/src/assets/web-panel/assets/{index-dKpwhR5x.js → index-C4_XhCJS.js} +1 -1
- package/src/assets/web-panel/assets/{index-BNz3yht2.js → index-C5l6tSky.js} +1 -1
- package/src/assets/web-panel/assets/{index-4767GEls.js → index-CFwkeSun.js} +1 -1
- package/src/assets/web-panel/assets/{index-BCQ4kcL3.js → index-CGf3oqM0.js} +1 -1
- package/src/assets/web-panel/assets/{index-xDe5BkjU.js → index-CJKyF-y8.js} +1 -1
- package/src/assets/web-panel/assets/{index-DjFQuno4.js → index-Cg8Qw3Jw.js} +1 -1
- package/src/assets/web-panel/assets/{index-Dl_NdY39.js → index-Cops66s2.js} +3 -3
- package/src/assets/web-panel/assets/{index-D8MYVsVB.js → index-Ct5SJenr.js} +1 -1
- package/src/assets/web-panel/assets/{index-CY971z_9.js → index-CxoWS8hl.js} +1 -1
- package/src/assets/web-panel/assets/{index-CVc_5aBF.js → index-D-ya3Ohe.js} +1 -1
- package/src/assets/web-panel/assets/{index-C4chfOjw.js → index-D68tyHYa.js} +1 -1
- package/src/assets/web-panel/assets/{index-BR4facv0.js → index-D9x6i7iV.js} +1 -1
- package/src/assets/web-panel/assets/{index-CxKdSB-p.js → index-DDLjwgva.js} +1 -1
- package/src/assets/web-panel/assets/{index-B-hiXmVK.js → index-DORg0Hps.js} +1 -1
- package/src/assets/web-panel/assets/{index-BR0FfrCL.js → index-DQaGurrQ.js} +1 -1
- package/src/assets/web-panel/assets/index-Db5JRQ6E.js +1 -0
- package/src/assets/web-panel/assets/{index-5NXdAIZK.js → index-DbY1lv1z.js} +1 -1
- package/src/assets/web-panel/assets/{index-BOUSaCsn.js → index-Dm7CYK3j.js} +1 -1
- package/src/assets/web-panel/assets/{index-DxvFrsxl.js → index-DpLhC0nx.js} +1 -1
- package/src/assets/web-panel/assets/{index-qNwkSspX.js → index-P4X9zSF2.js} +1 -1
- package/src/assets/web-panel/assets/{index-OqmUv5QO.js → index-PAiWA2un.js} +1 -1
- package/src/assets/web-panel/assets/{index-B8uhiRML.js → index-PMJ4tBAA.js} +1 -1
- package/src/assets/web-panel/assets/{index-CfshMjFN.js → index-Yi5Lr63I.js} +1 -1
- package/src/assets/web-panel/assets/{index-wxz2s6uW.js → index-ZZpfHd4J.js} +1 -1
- package/src/assets/web-panel/assets/{index-DdRtpQFq.js → index-b7a5aEX9.js} +1 -1
- package/src/assets/web-panel/assets/{index-C2fICr5d.js → index-e5zJLrJQ.js} +1 -1
- package/src/assets/web-panel/assets/{index-BGUOVPjO.js → index-fi2ikHoc.js} +1 -1
- package/src/assets/web-panel/assets/{index-8cmtr1jC.js → index-jAPphbJL.js} +1 -1
- package/src/assets/web-panel/assets/{index-DMKNVIqJ.js → index-leuwRsbf.js} +1 -1
- package/src/assets/web-panel/assets/{index-CP-UKwu8.js → index-luisYDBz.js} +1 -1
- package/src/assets/web-panel/assets/{index-DaCCLe7i.js → index-we9-1IbF.js} +1 -1
- package/src/assets/web-panel/assets/{initDefaultProps-qCQgpAty.js → initDefaultProps-zqDf7qWv.js} +1 -1
- package/src/assets/web-panel/assets/{motion-SkVSGdwu.js → motion-DRqTooll.js} +1 -1
- package/src/assets/web-panel/assets/{move-BpWxaW_x.js → move-N8tkRqS4.js} +1 -1
- package/src/assets/web-panel/assets/{omit-DlZWM2H4.js → omit-Cy01f2vw.js} +1 -1
- package/src/assets/web-panel/assets/{pickAttrs-DobtUnVe.js → pickAttrs-C2ycNXNi.js} +1 -1
- package/src/assets/web-panel/assets/{placementArrow-CD6mYRZi.js → placementArrow-D60Xb1j9.js} +1 -1
- package/src/assets/web-panel/assets/{responsiveObserve-DvIIMTD_.js → responsiveObserve-BF8Y-1HQ.js} +1 -1
- package/src/assets/web-panel/assets/{slide-CVgyUfaA.js → slide-DDi6zYZf.js} +1 -1
- package/src/assets/web-panel/assets/{statusUtils-DrUDnjy_.js → statusUtils-CWPq6UzA.js} +1 -1
- package/src/assets/web-panel/assets/{styleChecker-BNYQS60m.js → styleChecker-D4zVyb4w.js} +1 -1
- package/src/assets/web-panel/assets/{useFlexGapSupport-DYv7Tvk0.js → useFlexGapSupport-BEMNO3oR.js} +1 -1
- package/src/assets/web-panel/assets/{useFs-DmAD2atJ.js → useFs-DBLO8VR7.js} +1 -1
- package/src/assets/web-panel/assets/{usePersonalDataHub-DbLVKA3I.js → usePersonalDataHub-C83ZIrPY.js} +1 -1
- package/src/assets/web-panel/assets/{vnode-C3WEt6_P.js → vnode-Dcfyve-7.js} +1 -1
- package/src/assets/web-panel/assets/{zoom-CRoSX_oZ.js → zoom-Dg6uoWSc.js} +1 -1
- package/src/assets/web-panel/index.html +1 -1
- package/src/commands/__tests__/hub-health.test.js +105 -0
- package/src/commands/__tests__/hub-stats.test.js +106 -0
- package/src/commands/a2a.js +2 -1
- package/src/commands/bi.js +4 -3
- package/src/commands/browse.js +3 -2
- package/src/commands/codegen.js +7 -6
- package/src/commands/collab.js +2 -1
- package/src/commands/crosschain.js +5 -4
- package/src/commands/dao.js +10 -10
- package/src/commands/dbevo.js +3 -2
- package/src/commands/economy.js +8 -6
- package/src/commands/evolution.js +10 -8
- package/src/commands/export.js +2 -1
- package/src/commands/federation.js +8 -7
- package/src/commands/fusion.js +4 -3
- package/src/commands/git.js +2 -1
- package/src/commands/governance.js +6 -5
- package/src/commands/hardening.js +3 -2
- package/src/commands/hmemory.js +2 -1
- package/src/commands/hub.js +111 -32
- package/src/commands/inference.js +9 -8
- package/src/commands/infra.js +9 -8
- package/src/commands/instinct.js +66 -0
- package/src/commands/learning.js +66 -0
- package/src/commands/marketplace.js +5 -4
- package/src/commands/matrix.js +2 -1
- package/src/commands/memory.js +66 -0
- package/src/commands/nlprog.js +4 -3
- package/src/commands/nostr.js +4 -3
- package/src/commands/note.js +2 -1
- package/src/commands/ops.js +3 -2
- package/src/commands/perception.js +6 -5
- package/src/commands/privacy.js +13 -12
- package/src/commands/quantization.js +3 -2
- package/src/commands/recommend.js +8 -7
- package/src/commands/reputation.js +4 -3
- package/src/commands/runtime.js +6 -5
- package/src/commands/sandbox.js +5 -4
- package/src/commands/session.js +2 -1
- package/src/commands/sla.js +6 -5
- package/src/commands/social.js +6 -5
- package/src/commands/stress.js +7 -6
- package/src/commands/sync.js +2 -1
- package/src/commands/tenant.js +3 -2
- package/src/commands/trust.js +7 -6
- package/src/commands/wallet.js +2 -1
- package/src/gateways/ws/personal-data-hub-protocol.js +16 -3
- package/src/lib/__tests__/agents.test.js +225 -0
- package/src/lib/__tests__/cowork-observe-html.test.js +141 -0
- package/src/lib/__tests__/logger.test.js +110 -0
- package/src/lib/__tests__/project-inventory.test.js +280 -0
- package/src/lib/__tests__/project-root.test.js +96 -0
- package/src/lib/__tests__/provider-stream.test.js +190 -0
- package/src/lib/cli-arg.js +41 -0
- package/src/lib/cli-numeric.js +12 -3
- package/src/lib/instinct-manager.js +64 -0
- package/src/lib/learning/learning-tables.js +83 -0
- package/src/lib/mcp-oauth.js +10 -2
- package/src/lib/memory-manager.js +67 -0
- package/src/lib/personal-data-hub-wiring.js +135 -7
- package/src/lib/plan-mode.js +3 -2
- package/src/repl/__tests__/mcp-prompt.test.js +155 -0
- package/src/repl/__tests__/slash-macro.test.js +81 -0
- package/src/runtime/__tests__/coding-agent-contract-shared.test.js +136 -0
- package/src/runtime/__tests__/coding-agent-events.test.js +263 -0
- package/src/assets/web-panel/assets/MobileProjects-DhDxrWze.js +0 -1
- package/src/assets/web-panel/assets/devWarning-OhxeajH6.js +0 -1
- package/src/assets/web-panel/assets/index-Bbtoi_47.js +0 -1
- package/src/assets/web-panel/assets/index-Cb8RWwaB.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{I as y,J as f,U as x,R as c,c as e,K as a,V as g,r as b,o as G,a as J,b as M,P as d,Q as p,F as q,Z as yt,S as B,$ as ft}from"./vendor-BvqAck49.js";import{_ as gt,b as X,u as Y,d as m}from"./index-Dl_NdY39.js";import{S as $,p as tt,a as et,b as at,c as ot}from"./community-parser-CO25nZFt.js";import{aT as _t,B as pt,ab as vt,a4 as xt,aE as bt,J as kt,aP as ht,ai as Ct,R as wt}from"./icons-DP3uiYxy.js";const Ft={__name:"Community",setup(nt,{expose:i}){i();const{t:s,locale:t}=X(),v=Y(),N=b(!1),k=b(!1),A=b(!1),h=b(""),C=b({...$}),w=b([]),z=b([]),j=b([]),E=b("posts"),R=b(!1),U=b(!1),F=J({author:"",content:""}),_=J({name:"",did:"",email:"",notes:""}),H=M(()=>[{title:s("community.contactColumns.name"),key:"name",dataIndex:"name",width:"160px"},{title:s("community.contactColumns.did"),key:"did",dataIndex:"did"},{title:s("community.contactColumns.email"),key:"email",dataIndex:"email",width:"200px"},{title:s("community.contactColumns.createdAt"),key:"createdAt",dataIndex:"createdAt",width:"160px"},{title:s("community.contactColumns.action"),key:"action",width:"180px"}]),P=M(()=>[{title:s("community.friendColumns.contact"),key:"contact"},{title:s("community.friendColumns.status"),key:"status",width:"120px"},{title:s("community.friendColumns.createdAt"),key:"createdAt",dataIndex:"createdAt",width:"160px"},{title:s("community.friendColumns.action"),key:"action",width:"100px"}]),O=M(()=>z.value.map(n=>{const o=w.value.find(u=>u.id===n.contactId);return{...n,contactName:o?o.name:""}})),I=M(()=>new Set(z.value.map(n=>n.contactId)));function D(n){return I.value.has(n)}function K(n){const o=["#1677ff","#52c41a","#722ed1","#faad14","#ff4d4f","#13c2c2","#eb2f96"];let u=0;for(let S=0;S<n.length;S++)u=u*31+n.charCodeAt(S)>>>0;return o[u%o.length]}function l(n){return n?n.length>28?n.slice(0,16)+"..."+n.slice(-8):n:""}function r(n){if(!n)return"—";if(typeof n!="string")return String(n);const o=new Date(n);if(isNaN(o.getTime()))return n;const u=t.value==="zh-CN"?"zh-CN":"en-US";return o.toLocaleString(u,{hour12:!1})}function V(n){return{accepted:"green",pending:"orange",blocked:"red"}[n]||"default"}function lt(n){const o=`community.status.${n}`,u=s(o);return u===o?n:u}async function T(){N.value=!0;try{const[n,o,u,S]=await Promise.all([v.execute("social stats --json",1e4).catch(()=>({output:""})),v.execute("social contact list --json",1e4).catch(()=>({output:""})),v.execute("social friend list --json",1e4).catch(()=>({output:""})),v.execute("social post list --json",1e4).catch(()=>({output:""}))]);C.value=tt(n.output),w.value=et(o.output),z.value=at(u.output),j.value=ot(S.output).sort((L,ut)=>(ut.createdAt||"").localeCompare(L.createdAt||""))}catch(n){m.error(s("community.messages.loadFailed",{err:n?.message||n}))}finally{N.value=!1}}async function st(){const n=F.content.trim();if(!n){m.warning(s("community.messages.contentRequired"));return}k.value=!0;try{const o=n.replace(/"/g,'\\"'),u=F.author.trim(),S=u?`social post publish "${o}" --author "${u.replace(/"/g,'\\"')}"`:`social post publish "${o}"`,{output:L}=await v.execute(S,15e3);if(/error|失败/i.test(L)&&!/"id"/.test(L)){m.error(s("community.messages.publishFailed",{err:L.slice(0,120)}));return}m.success(s("community.messages.publishOk")),R.value=!1,W(),await T()}catch(o){m.error(s("community.messages.publishFailed",{err:o?.message||o}))}finally{k.value=!1}}async function it(){const n=_.name.trim();if(!n){m.warning(s("community.messages.nameRequired"));return}A.value=!0;try{const o=[`social contact add "${n.replace(/"/g,'\\"')}"`];_.did.trim()&&o.push(`--did "${_.did.trim().replace(/"/g,'\\"')}"`),_.email.trim()&&o.push(`--email "${_.email.trim().replace(/"/g,'\\"')}"`),_.notes.trim()&&o.push(`--notes "${_.notes.trim().replace(/"/g,'\\"')}"`);const{output:u}=await v.execute(o.join(" "),15e3);if(/error|失败/i.test(u)&&!/"id"/.test(u)){m.error(s("community.messages.addFailed",{err:u.slice(0,120)}));return}m.success(s("community.messages.addOk")),U.value=!1,Q(),await T()}catch(o){m.error(s("community.messages.addFailed",{err:o?.message||o}))}finally{A.value=!1}}async function ct(n){try{const{output:o}=await v.execute(`social contact delete ${n.id}`,1e4);if(/error|失败/i.test(o)){m.error(s("community.messages.deleteFailed",{err:o.slice(0,120)}));return}m.success(s("community.messages.deleteOk")),await T()}catch(o){m.error(s("community.messages.deleteFailed",{err:o?.message||o}))}}async function rt(n){h.value=n.id;try{const{output:o}=await v.execute(`social friend add ${n.id}`,1e4);if(/error|失败/i.test(o)&&!/"id"/.test(o)){m.error(s("community.messages.friendRequestFailed",{err:o.slice(0,120)}));return}m.success(s("community.messages.friendRequestOk")),await T(),E.value="friends"}catch(o){m.error(s("community.messages.friendRequestFailed",{err:o?.message||o}))}finally{h.value=""}}async function dt(n){try{const{output:o}=await v.execute(`social friend remove ${n.contactId}`,1e4);if(/error|失败/i.test(o)){m.error(s("community.messages.removeFailed",{err:o.slice(0,120)}));return}m.success(s("community.messages.removeOk")),await T()}catch(o){m.error(s("community.messages.removeFailed",{err:o?.message||o}))}}async function mt(n){try{await v.execute(`social post like ${n.id}`,1e4),n.likes++,T()}catch(o){m.error(s("community.messages.likeFailed",{err:o?.message||o}))}}function W(){F.author="",F.content=""}function Q(){_.name="",_.did="",_.email="",_.notes=""}G(T);const Z={t:s,locale:t,ws:v,loading:N,publishing:k,addingContact:A,addingFriend:h,stats:C,contacts:w,friends:z,posts:j,activeTab:E,showPostModal:R,showContactModal:U,postForm:F,contactForm:_,contactColumns:H,friendColumns:P,friendRows:O,friendIds:I,isFriend:D,avatarColor:K,shortDid:l,formatTime:r,statusColor:V,statusLabel:lt,loadAll:T,publishPost:st,addContact:it,deleteContact:ct,sendFriendRequest:rt,removeFriend:dt,likePost:mt,resetPostForm:W,resetContactForm:Q,ref:b,computed:M,onMounted:G,reactive:J,get useI18n(){return X},get ReloadOutlined(){return wt},get EditOutlined(){return Ct},get UserAddOutlined(){return ht},get TeamOutlined(){return kt},get HeartOutlined(){return bt},get FileTextOutlined(){return xt},get MessageOutlined(){return vt},get BellOutlined(){return pt},get LikeOutlined(){return _t},get message(){return m},get useWsStore(){return Y},get parseSocialStats(){return tt},get parseContacts(){return et},get parseFriends(){return at},get parsePosts(){return ot},get STATS_DEFAULTS(){return $}};return Object.defineProperty(Z,"__isScriptSetup",{enumerable:!1,value:!0}),Z}},Ot={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},Tt={class:"page-title"},St={class:"page-sub"},zt={key:0,style:{"text-align":"center",padding:"60px"}},Rt={key:1,style:{"text-align":"center",padding:"60px",color:"var(--text-muted)"}},Pt={key:2,class:"post-feed"},At={class:"post-head"},Ut={class:"post-meta"},It={class:"post-author"},Lt={class:"post-time"},Mt={class:"post-body"},qt={style:{color:"var(--text-primary)","font-weight":"500"}},Bt={key:0,style:{color:"var(--text-secondary)","font-size":"11px","font-family":"monospace"}},Nt={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},jt={key:0,style:{color:"var(--text-primary)","font-weight":"500"}},Et={key:0,style:{color:"var(--text-secondary)","font-family":"monospace","font-size":"11px"}},Dt={key:1,style:{color:"var(--text-muted)"}},Kt={key:0,style:{color:"var(--text-secondary)","font-size":"12px"}},Vt={key:1,style:{color:"var(--text-muted)"}},Ht={key:3,style:{color:"var(--text-secondary)","font-size":"11px"}},Jt={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}};function Wt(nt,i,s,t,v,N){const k=y("a-button"),A=y("a-space"),h=y("a-statistic"),C=y("a-card"),w=y("a-col"),z=y("a-row"),j=y("a-spin"),E=y("a-avatar"),R=y("a-tab-pane"),U=y("a-tag"),F=y("a-popconfirm"),_=y("a-table"),H=y("a-tabs"),P=y("a-input"),O=y("a-form-item"),I=y("a-textarea"),D=y("a-form"),K=y("a-modal");return d(),f("div",null,[x("div",Ot,[x("div",null,[x("h2",Tt,c(t.t("community.title")),1),x("p",St,c(t.t("community.subtitle")),1)]),e(A,null,{default:a(()=>[e(k,{loading:t.loading,onClick:t.loadAll},{icon:a(()=>[e(t.ReloadOutlined)]),default:a(()=>[p(" "+c(t.t("community.refresh")),1)]),_:1},8,["loading"]),e(k,{type:"primary",onClick:i[0]||(i[0]=l=>t.showPostModal=!0)},{icon:a(()=>[e(t.EditOutlined)]),default:a(()=>[p(" "+c(t.t("community.publishButton")),1)]),_:1}),e(k,{onClick:i[1]||(i[1]=l=>t.showContactModal=!0)},{icon:a(()=>[e(t.UserAddOutlined)]),default:a(()=>[p(" "+c(t.t("community.addContactButton")),1)]),_:1})]),_:1})]),g(" Stats overview "),e(z,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:a(()=>[e(w,{xs:12,sm:8,lg:5},{default:a(()=>[e(C,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[e(h,{title:t.t("community.stats.contacts"),value:t.stats.contacts,"value-style":{color:"#1677ff",fontSize:"20px"}},{prefix:a(()=>[e(t.TeamOutlined)]),_:1},8,["title","value"])]),_:1})]),_:1}),e(w,{xs:12,sm:8,lg:5},{default:a(()=>[e(C,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[e(h,{title:t.t("community.stats.friends"),value:t.stats.friends,"value-style":{color:"#52c41a",fontSize:"20px"}},{prefix:a(()=>[e(t.HeartOutlined)]),_:1},8,["title","value"])]),_:1})]),_:1}),e(w,{xs:12,sm:8,lg:5},{default:a(()=>[e(C,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[e(h,{title:t.t("community.stats.posts"),value:t.stats.posts,"value-style":{color:"#722ed1",fontSize:"20px"}},{prefix:a(()=>[e(t.FileTextOutlined)]),_:1},8,["title","value"])]),_:1})]),_:1}),e(w,{xs:12,sm:8,lg:5},{default:a(()=>[e(C,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[e(h,{title:t.t("community.stats.messages"),value:t.stats.messages,"value-style":{color:"#faad14",fontSize:"20px"}},{prefix:a(()=>[e(t.MessageOutlined)]),_:1},8,["title","value"])]),_:1})]),_:1}),e(w,{xs:24,sm:8,lg:4},{default:a(()=>[e(C,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[e(h,{title:t.t("community.stats.pendingRequests"),value:t.stats.pendingRequests,"value-style":{color:t.stats.pendingRequests>0?"#ff4d4f":"#888",fontSize:"20px"}},{prefix:a(()=>[e(t.BellOutlined)]),_:1},8,["title","value","value-style"])]),_:1})]),_:1})]),_:1}),g(" Tabs "),e(H,{activeKey:t.activeTab,"onUpdate:activeKey":i[2]||(i[2]=l=>t.activeTab=l),class:"community-tabs"},{default:a(()=>[g(" ── Posts tab ─────────────────────────────────────────────── "),e(R,{key:"posts",tab:t.t("community.tabs.posts")},{default:a(()=>[t.loading&&!t.posts.length?(d(),f("div",zt,[e(j,{size:"large"})])):t.posts.length?(d(),f("div",Pt,[(d(!0),f(q,null,yt(t.posts,l=>(d(),B(C,{key:l.key,class:"post-card","body-style":{padding:"16px"}},{default:a(()=>[x("div",At,[e(E,{style:ft({backgroundColor:t.avatarColor(l.author)})},{default:a(()=>[p(c(l.author.slice(0,1).toUpperCase()),1)]),_:2},1032,["style"]),x("div",Ut,[x("div",It,c(l.author),1),x("div",Lt,c(t.formatTime(l.createdAt)),1)]),e(k,{size:"small",type:"text",onClick:r=>t.likePost(l)},{icon:a(()=>[e(t.LikeOutlined)]),default:a(()=>[p(" "+c(l.likes),1)]),_:2},1032,["onClick"])]),x("div",Mt,c(l.content),1)]),_:2},1024))),128))])):(d(),f("div",Rt,[e(t.FileTextOutlined,{style:{"font-size":"40px","margin-bottom":"12px",display:"block"}}),p(" "+c(t.t("community.posts.emptyText")),1)]))]),_:1},8,["tab"]),g(" ── Friends tab ───────────────────────────────────────────── "),e(R,{key:"friends",tab:t.t("community.tabs.friends")},{default:a(()=>[e(_,{columns:t.friendColumns,"data-source":t.friendRows,pagination:{pageSize:20,showTotal:l=>t.t("community.totals.rows",{count:l})},size:"small",loading:t.loading,style:{background:"var(--bg-card)"}},{bodyCell:a(({column:l,record:r})=>[l.key==="contact"?(d(),f(q,{key:0},[x("span",qt,c(r.contactName||r.contactId),1),r.contactName?(d(),f("div",Bt,c(r.contactId),1)):g("v-if",!0)],64)):g("v-if",!0),l.key==="status"?(d(),B(U,{key:1,color:t.statusColor(r.status)},{default:a(()=>[p(c(t.statusLabel(r.status)),1)]),_:2},1032,["color"])):g("v-if",!0),l.key==="action"?(d(),B(F,{key:2,title:t.t("community.friends.removeConfirm"),"ok-text":t.t("community.friends.removeOk"),"cancel-text":t.t("common.cancel"),onConfirm:V=>t.removeFriend(r)},{default:a(()=>[e(k,{size:"small",type:"link",danger:""},{default:a(()=>[p(c(t.t("community.friends.remove")),1)]),_:1})]),_:1},8,["title","ok-text","cancel-text","onConfirm"])):g("v-if",!0)]),emptyText:a(()=>[x("div",Nt,[e(t.HeartOutlined,{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),p(" "+c(t.t("community.friends.emptyText")),1)])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"]),g(" ── Contacts tab ──────────────────────────────────────────── "),e(R,{key:"contacts",tab:t.t("community.tabs.contacts")},{default:a(()=>[e(_,{columns:t.contactColumns,"data-source":t.contacts,pagination:{pageSize:20,showTotal:l=>t.t("community.totals.rows",{count:l})},size:"small",loading:t.loading,style:{background:"var(--bg-card)"}},{bodyCell:a(({column:l,record:r})=>[l.key==="name"?(d(),f("span",jt,c(r.name),1)):g("v-if",!0),l.key==="did"?(d(),f(q,{key:1},[r.did?(d(),f("span",Et,c(t.shortDid(r.did)),1)):(d(),f("span",Dt,"—"))],64)):g("v-if",!0),l.key==="email"?(d(),f(q,{key:2},[r.email?(d(),f("span",Kt,c(r.email),1)):(d(),f("span",Vt,"—"))],64)):g("v-if",!0),l.key==="createdAt"?(d(),f("span",Ht,c(t.formatTime(r.createdAt)),1)):g("v-if",!0),l.key==="action"?(d(),f(q,{key:4},[t.isFriend(r.id)?(d(),B(U,{key:1,color:"green",style:{"font-size":"11px"}},{default:a(()=>[p(c(t.t("community.contacts.alreadyFriend")),1)]),_:1})):(d(),B(k,{key:0,size:"small",type:"link",loading:t.addingFriend===r.id,onClick:V=>t.sendFriendRequest(r)},{default:a(()=>[p(c(t.t("community.contacts.addFriend")),1)]),_:1},8,["loading","onClick"])),e(F,{title:t.t("community.contacts.deleteConfirm"),"ok-text":t.t("community.contacts.deleteOk"),"cancel-text":t.t("common.cancel"),onConfirm:V=>t.deleteContact(r)},{default:a(()=>[e(k,{size:"small",type:"link",danger:"",style:{"margin-left":"4px"}},{default:a(()=>[p(c(t.t("community.contacts.delete")),1)]),_:1})]),_:1},8,["title","ok-text","cancel-text","onConfirm"])],64)):g("v-if",!0)]),emptyText:a(()=>[x("div",Jt,[e(t.TeamOutlined,{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),p(" "+c(t.t("community.contacts.emptyText")),1)])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"])]),_:1},8,["activeKey"]),g(" ── Publish post modal ──────────────────────────────────────── "),e(K,{open:t.showPostModal,"onUpdate:open":i[5]||(i[5]=l=>t.showPostModal=l),title:t.t("community.posts.publishTitle"),"confirm-loading":t.publishing,"ok-text":t.t("community.posts.publishOk"),"cancel-text":t.t("common.cancel"),onOk:t.publishPost,onCancel:t.resetPostForm},{default:a(()=>[e(D,{"label-col":{span:4},"wrapper-col":{span:20},style:{"margin-top":"16px"}},{default:a(()=>[e(O,{label:t.t("community.posts.authorLabel")},{default:a(()=>[e(P,{value:t.postForm.author,"onUpdate:value":i[3]||(i[3]=l=>t.postForm.author=l),placeholder:t.t("community.posts.authorPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),e(O,{label:t.t("community.posts.contentLabel"),required:""},{default:a(()=>[e(I,{value:t.postForm.content,"onUpdate:value":i[4]||(i[4]=l=>t.postForm.content=l),placeholder:t.t("community.posts.contentPlaceholder"),"auto-size":{minRows:4,maxRows:10},maxlength:2e3,"show-count":""},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),g(" ── Add contact modal ───────────────────────────────────────── "),e(K,{open:t.showContactModal,"onUpdate:open":i[10]||(i[10]=l=>t.showContactModal=l),title:t.t("community.contacts.addTitle"),"confirm-loading":t.addingContact,"ok-text":t.t("community.contacts.addOk"),"cancel-text":t.t("common.cancel"),onOk:t.addContact,onCancel:t.resetContactForm},{default:a(()=>[e(D,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:a(()=>[e(O,{label:t.t("community.contacts.nameLabel"),required:""},{default:a(()=>[e(P,{value:t.contactForm.name,"onUpdate:value":i[6]||(i[6]=l=>t.contactForm.name=l),placeholder:t.t("community.contacts.namePlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),e(O,{label:t.t("community.contacts.didLabel")},{default:a(()=>[e(P,{value:t.contactForm.did,"onUpdate:value":i[7]||(i[7]=l=>t.contactForm.did=l),placeholder:t.t("community.contacts.didPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),e(O,{label:t.t("community.contacts.emailLabel")},{default:a(()=>[e(P,{value:t.contactForm.email,"onUpdate:value":i[8]||(i[8]=l=>t.contactForm.email=l),placeholder:t.t("community.contacts.emailPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),e(O,{label:t.t("community.contacts.notesLabel")},{default:a(()=>[e(I,{value:t.contactForm.notes,"onUpdate:value":i[9]||(i[9]=l=>t.contactForm.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"])])}const Yt=gt(Ft,[["render",Wt],["__scopeId","data-v-7ac975f5"],["__file","/tmp/cc-web-panel-aMJ4KB/repo/packages/web-panel/src/views/Community.vue"]]);export{Yt as default};
|
|
1
|
+
import{I as y,J as f,U as x,R as c,c as e,K as a,V as g,r as b,o as G,a as J,b as q,P as d,Q as p,F as M,Z as yt,S as N,$ as ft}from"./vendor-BvqAck49.js";import{_ as gt,b as X,u as Y,d as m}from"./index-Cops66s2.js";import{S as $,p as tt,a as et,b as at,c as ot}from"./community-parser-CO25nZFt.js";import{aT as _t,B as pt,ab as vt,a4 as xt,aE as bt,J as kt,aP as ht,ai as Ct,R as wt}from"./icons-DP3uiYxy.js";const Ft={__name:"Community",setup(nt,{expose:i}){i();const{t:s,locale:t}=X(),v=Y(),B=b(!1),k=b(!1),P=b(!1),h=b(""),C=b({...$}),w=b([]),z=b([]),j=b([]),E=b("posts"),R=b(!1),U=b(!1),F=J({author:"",content:""}),_=J({name:"",did:"",email:"",notes:""}),K=q(()=>[{title:s("community.contactColumns.name"),key:"name",dataIndex:"name",width:"160px"},{title:s("community.contactColumns.did"),key:"did",dataIndex:"did"},{title:s("community.contactColumns.email"),key:"email",dataIndex:"email",width:"200px"},{title:s("community.contactColumns.createdAt"),key:"createdAt",dataIndex:"createdAt",width:"160px"},{title:s("community.contactColumns.action"),key:"action",width:"180px"}]),A=q(()=>[{title:s("community.friendColumns.contact"),key:"contact"},{title:s("community.friendColumns.status"),key:"status",width:"120px"},{title:s("community.friendColumns.createdAt"),key:"createdAt",dataIndex:"createdAt",width:"160px"},{title:s("community.friendColumns.action"),key:"action",width:"100px"}]),O=q(()=>z.value.map(n=>{const o=w.value.find(u=>u.id===n.contactId);return{...n,contactName:o?o.name:""}})),I=q(()=>new Set(z.value.map(n=>n.contactId)));function D(n){return I.value.has(n)}function V(n){const o=["#1677ff","#52c41a","#722ed1","#faad14","#ff4d4f","#13c2c2","#eb2f96"];let u=0;for(let S=0;S<n.length;S++)u=u*31+n.charCodeAt(S)>>>0;return o[u%o.length]}function l(n){return n?n.length>28?n.slice(0,16)+"..."+n.slice(-8):n:""}function r(n){if(!n)return"—";if(typeof n!="string")return String(n);const o=new Date(n);if(isNaN(o.getTime()))return n;const u=t.value==="zh-CN"?"zh-CN":"en-US";return o.toLocaleString(u,{hour12:!1})}function H(n){return{accepted:"green",pending:"orange",blocked:"red"}[n]||"default"}function lt(n){const o=`community.status.${n}`,u=s(o);return u===o?n:u}async function T(){B.value=!0;try{const[n,o,u,S]=await Promise.all([v.execute("social stats --json",1e4).catch(()=>({output:""})),v.execute("social contact list --json",1e4).catch(()=>({output:""})),v.execute("social friend list --json",1e4).catch(()=>({output:""})),v.execute("social post list --json",1e4).catch(()=>({output:""}))]);C.value=tt(n.output),w.value=et(o.output),z.value=at(u.output),j.value=ot(S.output).sort((L,ut)=>(ut.createdAt||"").localeCompare(L.createdAt||""))}catch(n){m.error(s("community.messages.loadFailed",{err:n?.message||n}))}finally{B.value=!1}}async function st(){const n=F.content.trim();if(!n){m.warning(s("community.messages.contentRequired"));return}k.value=!0;try{const o=n.replace(/"/g,'\\"'),u=F.author.trim(),S=u?`social post publish "${o}" --author "${u.replace(/"/g,'\\"')}"`:`social post publish "${o}"`,{output:L}=await v.execute(S,15e3);if(/error|失败/i.test(L)&&!/"id"/.test(L)){m.error(s("community.messages.publishFailed",{err:L.slice(0,120)}));return}m.success(s("community.messages.publishOk")),R.value=!1,W(),await T()}catch(o){m.error(s("community.messages.publishFailed",{err:o?.message||o}))}finally{k.value=!1}}async function it(){const n=_.name.trim();if(!n){m.warning(s("community.messages.nameRequired"));return}P.value=!0;try{const o=[`social contact add "${n.replace(/"/g,'\\"')}"`];_.did.trim()&&o.push(`--did "${_.did.trim().replace(/"/g,'\\"')}"`),_.email.trim()&&o.push(`--email "${_.email.trim().replace(/"/g,'\\"')}"`),_.notes.trim()&&o.push(`--notes "${_.notes.trim().replace(/"/g,'\\"')}"`);const{output:u}=await v.execute(o.join(" "),15e3);if(/error|失败/i.test(u)&&!/"id"/.test(u)){m.error(s("community.messages.addFailed",{err:u.slice(0,120)}));return}m.success(s("community.messages.addOk")),U.value=!1,Q(),await T()}catch(o){m.error(s("community.messages.addFailed",{err:o?.message||o}))}finally{P.value=!1}}async function ct(n){try{const{output:o}=await v.execute(`social contact delete ${n.id}`,1e4);if(/error|失败/i.test(o)){m.error(s("community.messages.deleteFailed",{err:o.slice(0,120)}));return}m.success(s("community.messages.deleteOk")),await T()}catch(o){m.error(s("community.messages.deleteFailed",{err:o?.message||o}))}}async function rt(n){h.value=n.id;try{const{output:o}=await v.execute(`social friend add ${n.id}`,1e4);if(/error|失败/i.test(o)&&!/"id"/.test(o)){m.error(s("community.messages.friendRequestFailed",{err:o.slice(0,120)}));return}m.success(s("community.messages.friendRequestOk")),await T(),E.value="friends"}catch(o){m.error(s("community.messages.friendRequestFailed",{err:o?.message||o}))}finally{h.value=""}}async function dt(n){try{const{output:o}=await v.execute(`social friend remove ${n.contactId}`,1e4);if(/error|失败/i.test(o)){m.error(s("community.messages.removeFailed",{err:o.slice(0,120)}));return}m.success(s("community.messages.removeOk")),await T()}catch(o){m.error(s("community.messages.removeFailed",{err:o?.message||o}))}}async function mt(n){try{await v.execute(`social post like ${n.id}`,1e4),n.likes++,T()}catch(o){m.error(s("community.messages.likeFailed",{err:o?.message||o}))}}function W(){F.author="",F.content=""}function Q(){_.name="",_.did="",_.email="",_.notes=""}G(T);const Z={t:s,locale:t,ws:v,loading:B,publishing:k,addingContact:P,addingFriend:h,stats:C,contacts:w,friends:z,posts:j,activeTab:E,showPostModal:R,showContactModal:U,postForm:F,contactForm:_,contactColumns:K,friendColumns:A,friendRows:O,friendIds:I,isFriend:D,avatarColor:V,shortDid:l,formatTime:r,statusColor:H,statusLabel:lt,loadAll:T,publishPost:st,addContact:it,deleteContact:ct,sendFriendRequest:rt,removeFriend:dt,likePost:mt,resetPostForm:W,resetContactForm:Q,ref:b,computed:q,onMounted:G,reactive:J,get useI18n(){return X},get ReloadOutlined(){return wt},get EditOutlined(){return Ct},get UserAddOutlined(){return ht},get TeamOutlined(){return kt},get HeartOutlined(){return bt},get FileTextOutlined(){return xt},get MessageOutlined(){return vt},get BellOutlined(){return pt},get LikeOutlined(){return _t},get message(){return m},get useWsStore(){return Y},get parseSocialStats(){return tt},get parseContacts(){return et},get parseFriends(){return at},get parsePosts(){return ot},get STATS_DEFAULTS(){return $}};return Object.defineProperty(Z,"__isScriptSetup",{enumerable:!1,value:!0}),Z}},Ot={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},Tt={class:"page-title"},St={class:"page-sub"},zt={key:0,style:{"text-align":"center",padding:"60px"}},Rt={key:1,style:{"text-align":"center",padding:"60px",color:"var(--text-muted)"}},At={key:2,class:"post-feed"},Pt={class:"post-head"},Ut={class:"post-meta"},It={class:"post-author"},Lt={class:"post-time"},qt={class:"post-body"},Mt={style:{color:"var(--text-primary)","font-weight":"500"}},Nt={key:0,style:{color:"var(--text-secondary)","font-size":"11px","font-family":"monospace"}},Bt={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},jt={key:0,style:{color:"var(--text-primary)","font-weight":"500"}},Et={key:0,style:{color:"var(--text-secondary)","font-family":"monospace","font-size":"11px"}},Dt={key:1,style:{color:"var(--text-muted)"}},Vt={key:0,style:{color:"var(--text-secondary)","font-size":"12px"}},Ht={key:1,style:{color:"var(--text-muted)"}},Kt={key:3,style:{color:"var(--text-secondary)","font-size":"11px"}},Jt={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}};function Wt(nt,i,s,t,v,B){const k=y("a-button"),P=y("a-space"),h=y("a-statistic"),C=y("a-card"),w=y("a-col"),z=y("a-row"),j=y("a-spin"),E=y("a-avatar"),R=y("a-tab-pane"),U=y("a-tag"),F=y("a-popconfirm"),_=y("a-table"),K=y("a-tabs"),A=y("a-input"),O=y("a-form-item"),I=y("a-textarea"),D=y("a-form"),V=y("a-modal");return d(),f("div",null,[x("div",Ot,[x("div",null,[x("h2",Tt,c(t.t("community.title")),1),x("p",St,c(t.t("community.subtitle")),1)]),e(P,null,{default:a(()=>[e(k,{loading:t.loading,onClick:t.loadAll},{icon:a(()=>[e(t.ReloadOutlined)]),default:a(()=>[p(" "+c(t.t("community.refresh")),1)]),_:1},8,["loading"]),e(k,{type:"primary",onClick:i[0]||(i[0]=l=>t.showPostModal=!0)},{icon:a(()=>[e(t.EditOutlined)]),default:a(()=>[p(" "+c(t.t("community.publishButton")),1)]),_:1}),e(k,{onClick:i[1]||(i[1]=l=>t.showContactModal=!0)},{icon:a(()=>[e(t.UserAddOutlined)]),default:a(()=>[p(" "+c(t.t("community.addContactButton")),1)]),_:1})]),_:1})]),g(" Stats overview "),e(z,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:a(()=>[e(w,{xs:12,sm:8,lg:5},{default:a(()=>[e(C,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[e(h,{title:t.t("community.stats.contacts"),value:t.stats.contacts,"value-style":{color:"#1677ff",fontSize:"20px"}},{prefix:a(()=>[e(t.TeamOutlined)]),_:1},8,["title","value"])]),_:1})]),_:1}),e(w,{xs:12,sm:8,lg:5},{default:a(()=>[e(C,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[e(h,{title:t.t("community.stats.friends"),value:t.stats.friends,"value-style":{color:"#52c41a",fontSize:"20px"}},{prefix:a(()=>[e(t.HeartOutlined)]),_:1},8,["title","value"])]),_:1})]),_:1}),e(w,{xs:12,sm:8,lg:5},{default:a(()=>[e(C,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[e(h,{title:t.t("community.stats.posts"),value:t.stats.posts,"value-style":{color:"#722ed1",fontSize:"20px"}},{prefix:a(()=>[e(t.FileTextOutlined)]),_:1},8,["title","value"])]),_:1})]),_:1}),e(w,{xs:12,sm:8,lg:5},{default:a(()=>[e(C,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[e(h,{title:t.t("community.stats.messages"),value:t.stats.messages,"value-style":{color:"#faad14",fontSize:"20px"}},{prefix:a(()=>[e(t.MessageOutlined)]),_:1},8,["title","value"])]),_:1})]),_:1}),e(w,{xs:24,sm:8,lg:4},{default:a(()=>[e(C,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[e(h,{title:t.t("community.stats.pendingRequests"),value:t.stats.pendingRequests,"value-style":{color:t.stats.pendingRequests>0?"#ff4d4f":"#888",fontSize:"20px"}},{prefix:a(()=>[e(t.BellOutlined)]),_:1},8,["title","value","value-style"])]),_:1})]),_:1})]),_:1}),g(" Tabs "),e(K,{activeKey:t.activeTab,"onUpdate:activeKey":i[2]||(i[2]=l=>t.activeTab=l),class:"community-tabs"},{default:a(()=>[g(" ── Posts tab ─────────────────────────────────────────────── "),e(R,{key:"posts",tab:t.t("community.tabs.posts")},{default:a(()=>[t.loading&&!t.posts.length?(d(),f("div",zt,[e(j,{size:"large"})])):t.posts.length?(d(),f("div",At,[(d(!0),f(M,null,yt(t.posts,l=>(d(),N(C,{key:l.key,class:"post-card","body-style":{padding:"16px"}},{default:a(()=>[x("div",Pt,[e(E,{style:ft({backgroundColor:t.avatarColor(l.author)})},{default:a(()=>[p(c(l.author.slice(0,1).toUpperCase()),1)]),_:2},1032,["style"]),x("div",Ut,[x("div",It,c(l.author),1),x("div",Lt,c(t.formatTime(l.createdAt)),1)]),e(k,{size:"small",type:"text",onClick:r=>t.likePost(l)},{icon:a(()=>[e(t.LikeOutlined)]),default:a(()=>[p(" "+c(l.likes),1)]),_:2},1032,["onClick"])]),x("div",qt,c(l.content),1)]),_:2},1024))),128))])):(d(),f("div",Rt,[e(t.FileTextOutlined,{style:{"font-size":"40px","margin-bottom":"12px",display:"block"}}),p(" "+c(t.t("community.posts.emptyText")),1)]))]),_:1},8,["tab"]),g(" ── Friends tab ───────────────────────────────────────────── "),e(R,{key:"friends",tab:t.t("community.tabs.friends")},{default:a(()=>[e(_,{columns:t.friendColumns,"data-source":t.friendRows,pagination:{pageSize:20,showTotal:l=>t.t("community.totals.rows",{count:l})},size:"small",loading:t.loading,style:{background:"var(--bg-card)"}},{bodyCell:a(({column:l,record:r})=>[l.key==="contact"?(d(),f(M,{key:0},[x("span",Mt,c(r.contactName||r.contactId),1),r.contactName?(d(),f("div",Nt,c(r.contactId),1)):g("v-if",!0)],64)):g("v-if",!0),l.key==="status"?(d(),N(U,{key:1,color:t.statusColor(r.status)},{default:a(()=>[p(c(t.statusLabel(r.status)),1)]),_:2},1032,["color"])):g("v-if",!0),l.key==="action"?(d(),N(F,{key:2,title:t.t("community.friends.removeConfirm"),"ok-text":t.t("community.friends.removeOk"),"cancel-text":t.t("common.cancel"),onConfirm:H=>t.removeFriend(r)},{default:a(()=>[e(k,{size:"small",type:"link",danger:""},{default:a(()=>[p(c(t.t("community.friends.remove")),1)]),_:1})]),_:1},8,["title","ok-text","cancel-text","onConfirm"])):g("v-if",!0)]),emptyText:a(()=>[x("div",Bt,[e(t.HeartOutlined,{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),p(" "+c(t.t("community.friends.emptyText")),1)])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"]),g(" ── Contacts tab ──────────────────────────────────────────── "),e(R,{key:"contacts",tab:t.t("community.tabs.contacts")},{default:a(()=>[e(_,{columns:t.contactColumns,"data-source":t.contacts,pagination:{pageSize:20,showTotal:l=>t.t("community.totals.rows",{count:l})},size:"small",loading:t.loading,style:{background:"var(--bg-card)"}},{bodyCell:a(({column:l,record:r})=>[l.key==="name"?(d(),f("span",jt,c(r.name),1)):g("v-if",!0),l.key==="did"?(d(),f(M,{key:1},[r.did?(d(),f("span",Et,c(t.shortDid(r.did)),1)):(d(),f("span",Dt,"—"))],64)):g("v-if",!0),l.key==="email"?(d(),f(M,{key:2},[r.email?(d(),f("span",Vt,c(r.email),1)):(d(),f("span",Ht,"—"))],64)):g("v-if",!0),l.key==="createdAt"?(d(),f("span",Kt,c(t.formatTime(r.createdAt)),1)):g("v-if",!0),l.key==="action"?(d(),f(M,{key:4},[t.isFriend(r.id)?(d(),N(U,{key:1,color:"green",style:{"font-size":"11px"}},{default:a(()=>[p(c(t.t("community.contacts.alreadyFriend")),1)]),_:1})):(d(),N(k,{key:0,size:"small",type:"link",loading:t.addingFriend===r.id,onClick:H=>t.sendFriendRequest(r)},{default:a(()=>[p(c(t.t("community.contacts.addFriend")),1)]),_:1},8,["loading","onClick"])),e(F,{title:t.t("community.contacts.deleteConfirm"),"ok-text":t.t("community.contacts.deleteOk"),"cancel-text":t.t("common.cancel"),onConfirm:H=>t.deleteContact(r)},{default:a(()=>[e(k,{size:"small",type:"link",danger:"",style:{"margin-left":"4px"}},{default:a(()=>[p(c(t.t("community.contacts.delete")),1)]),_:1})]),_:1},8,["title","ok-text","cancel-text","onConfirm"])],64)):g("v-if",!0)]),emptyText:a(()=>[x("div",Jt,[e(t.TeamOutlined,{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),p(" "+c(t.t("community.contacts.emptyText")),1)])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"])]),_:1},8,["activeKey"]),g(" ── Publish post modal ──────────────────────────────────────── "),e(V,{open:t.showPostModal,"onUpdate:open":i[5]||(i[5]=l=>t.showPostModal=l),title:t.t("community.posts.publishTitle"),"confirm-loading":t.publishing,"ok-text":t.t("community.posts.publishOk"),"cancel-text":t.t("common.cancel"),onOk:t.publishPost,onCancel:t.resetPostForm},{default:a(()=>[e(D,{"label-col":{span:4},"wrapper-col":{span:20},style:{"margin-top":"16px"}},{default:a(()=>[e(O,{label:t.t("community.posts.authorLabel")},{default:a(()=>[e(A,{value:t.postForm.author,"onUpdate:value":i[3]||(i[3]=l=>t.postForm.author=l),placeholder:t.t("community.posts.authorPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),e(O,{label:t.t("community.posts.contentLabel"),required:""},{default:a(()=>[e(I,{value:t.postForm.content,"onUpdate:value":i[4]||(i[4]=l=>t.postForm.content=l),placeholder:t.t("community.posts.contentPlaceholder"),"auto-size":{minRows:4,maxRows:10},maxlength:2e3,"show-count":""},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),g(" ── Add contact modal ───────────────────────────────────────── "),e(V,{open:t.showContactModal,"onUpdate:open":i[10]||(i[10]=l=>t.showContactModal=l),title:t.t("community.contacts.addTitle"),"confirm-loading":t.addingContact,"ok-text":t.t("community.contacts.addOk"),"cancel-text":t.t("common.cancel"),onOk:t.addContact,onCancel:t.resetContactForm},{default:a(()=>[e(D,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:a(()=>[e(O,{label:t.t("community.contacts.nameLabel"),required:""},{default:a(()=>[e(A,{value:t.contactForm.name,"onUpdate:value":i[6]||(i[6]=l=>t.contactForm.name=l),placeholder:t.t("community.contacts.namePlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),e(O,{label:t.t("community.contacts.didLabel")},{default:a(()=>[e(A,{value:t.contactForm.did,"onUpdate:value":i[7]||(i[7]=l=>t.contactForm.did=l),placeholder:t.t("community.contacts.didPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),e(O,{label:t.t("community.contacts.emailLabel")},{default:a(()=>[e(A,{value:t.contactForm.email,"onUpdate:value":i[8]||(i[8]=l=>t.contactForm.email=l),placeholder:t.t("community.contacts.emailPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),e(O,{label:t.t("community.contacts.notesLabel")},{default:a(()=>[e(I,{value:t.contactForm.notes,"onUpdate:value":i[9]||(i[9]=l=>t.contactForm.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"])])}const Yt=gt(Ft,[["render",Wt],["__scopeId","data-v-7ac975f5"],["__file","/tmp/cc-web-panel-gA2tfF/repo/packages/web-panel/src/views/Community.vue"]]);export{Yt as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{l as j,i as x,q as k,J as D,f as I,G as S,P as v,Q as y}from"./index-
|
|
1
|
+
import{l as j,i as x,q as k,J as D,f as I,G as S,P as v,Q as y}from"./index-Cops66s2.js";import{b as i,d as g,c as b}from"./vendor-BvqAck49.js";import{c as A}from"./createContext-Dqsf52js.js";import{i as N,a as O,b as T,c as _,d as L,g as w,e as F,f as B}from"./_getTag-DnrRH4E6.js";const q=t=>{const{componentCls:o}=t;return{[o]:{display:"inline-flex","&-block":{display:"flex",width:"100%"},"&-vertical":{flexDirection:"column"}}}},E=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"}}}}},G=j("Space",t=>[E(t),q(t)]);var H="[object Map]",J="[object Set]",K=Object.prototype,M=K.hasOwnProperty;function h(t){if(t==null)return!0;if(N(t)&&(O(t)||typeof t=="string"||typeof t.splice=="function"||T(t)||_(t)||L(t)))return!t.length;var o=w(t);if(o==H||o==J)return!t.size;if(F(t))return!B(t).length;for(var e in t)if(M.call(t,e))return!1;return!0}const Q=()=>({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)}}}),R=()=>({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}}),V=g({name:"CompactItem",props:Q(),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:R(),setup(t,o){let{attrs:e,slots:a}=o;const{prefixCls:r,direction:l}=k("space-compact",t),n=s.useInject(),[c,$]=G(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(V,{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,G as a,Z as u};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{I as p,J as m,U as g,R as r,c as a,K as l,V as c,S as _,o as ne,a as X,b as E,r as h,P as s,Q as b,F as R,Z as Y,$ as ie}from"./vendor-BvqAck49.js";import{_ as he,u as re,b as se,d as v}from"./index-Dl_NdY39.js";import{s as _e}from"./community-parser-CO25nZFt.js";import{s as ke,am as xe,ak as ze,G as Se,Z as Ae,b2 as Te,D as Ce,b3 as Oe,as as Fe,R as Re}from"./icons-DP3uiYxy.js";function Z(e){const o=_e(e);if(!o)return null;try{return JSON.parse(o)}catch{}const u=o.match(/\{[\s\S]*\}|\[[\s\S]*\]/);if(!u)return null;try{return JSON.parse(u[0])}catch{return null}}const we=Object.freeze(["file-md5","file-sha1","file-sha256","file-sha512","ipv4","ipv6","domain","url","email"]);function T(e,o=0){return typeof e=="number"&&Number.isFinite(e)?e:o}function ye(e,o=0){if(!e||typeof e!="object")return null;const u=e.id||"";if(!u)return null;const t=Array.isArray(e.labels)?e.labels:[];return{key:u,id:u,type:String(e.type||""),value:String(e.value||""),labels:t,confidence:e.confidence!=null?T(e.confidence,null):null,sourceId:e.sourceId??e.source_id??null,sourceName:e.sourceName??e.source_name??null,validFrom:e.validFrom??e.valid_from??null,validUntil:e.validUntil??e.valid_until??null,firstSeenAt:e.firstSeenAt??e.first_seen_at??null,lastSeenAt:e.lastSeenAt??e.last_seen_at??null,_idx:o}}function ce(e){const o=Z(e);return Array.isArray(o)?o.map(ye).filter(Boolean):[]}function ue(e){const o=Z(e);return!o||typeof o!="object"||Array.isArray(o)?null:{matched:!!o.matched,type:String(o.type||"unknown"),indicator:o.indicator?ye(o.indicator):null}}function de(e){const o={total:0,byType:{}},u=Z(e);if(!u||typeof u!="object"||Array.isArray(u))return o;if(o.total=T(u.total,0),u.byType&&typeof u.byType=="object")for(const[t,C]of Object.entries(u.byType))typeof C=="number"&&Number.isFinite(C)&&(o.byType[t]=C);return o}function Ue(e,o=0){if(!e||typeof e!="object")return null;const u=e.entity||"";return u?{key:u,entity:u,eventCount:T(e.eventCount??e.event_count,0),failureRate:T(e.failureRate??e.failure_rate,0),uniqueResources:T(e.uniqueResources??e.unique_resources,0),uniqueActions:T(e.uniqueActions??e.unique_actions,0),burstiness:T(e.burstiness,0),riskScore:T(e.riskScore??e.risk_score,0),_idx:o}:null}function me(e){const o=Z(e);return Array.isArray(o)?o.map(Ue).filter(Boolean):[]}function Be(e,o=0){return!e||typeof e!="object"?null:{key:o,score:T(e.score,0),reasons:Array.isArray(e.reasons)?e.reasons:[],event:e.event&&typeof e.event=="object"?e.event:null,_idx:o}}function pe(e){const o=Z(e);return Array.isArray(o)?o.map(Be).filter(Boolean):[]}function $(e){if(!e)return{noAuditLog:!1,error:""};const o=/no such table:\s*audit_log/i.test(e),u=e.match(/Failed:\s*(.+?)(?:\r?\n|$)/i);return{noAuditLog:o,error:u?u[1].trim():""}}function je(e){if(e==null||e==="")return"—";const o=typeof e=="number"?new Date(e):new Date(String(e));return isNaN(o.getTime())?String(e):o.toLocaleString("zh-CN",{hour12:!1})}const Ee={__name:"Compliance",setup(e,{expose:o}){o();const u=re(),{t}=se(),C=h(!1),G=h(!1),w=h(!1),U=h(!1),I=h([]),M=h({total:0,byType:{}}),L=h([]),z=h([]),k=h({noAuditLog:!1,error:""}),A=h("threat"),D=h(""),x=h(!1),B=h(!1),N=h(!1),H=X({observable:""}),j=h(null),O=X({entity:"",days:30}),S=X({entity:"",threshold:.7,days:1}),ee=E(()=>[{title:t("compliance.cols.type"),key:"type",width:"120px"},{title:t("compliance.cols.value"),key:"value"},{title:t("compliance.cols.labels"),key:"labels",width:"160px"},{title:t("compliance.cols.confidence"),key:"confidence",width:"90px"},{title:t("compliance.cols.source"),key:"source",width:"160px"},{title:t("compliance.cols.lastSeen"),key:"lastSeen",width:"160px"},{title:t("compliance.cols.action"),key:"action",width:"90px"}]),te=E(()=>[{title:t("compliance.cols.entity"),key:"entity",width:"180px"},{title:t("compliance.cols.riskScore"),key:"riskScore"},{title:t("compliance.cols.eventCount"),key:"eventCount",width:"90px"},{title:t("compliance.cols.failureRate"),key:"failureRate",width:"90px"},{title:t("compliance.cols.uniqueResources"),key:"uniqueResources",width:"90px"},{title:t("compliance.cols.burstiness"),key:"burstiness",width:"90px"}]),ae=E(()=>D.value?I.value.filter(i=>i.type===D.value):I.value),oe=E(()=>Object.keys(M.value.byType).length),W=E(()=>Object.entries(M.value.byType).sort((i,y)=>y[1]-i[1])),F=E(()=>L.value.filter(i=>i.riskScore>=70).length),P={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 J(i){return P[i]||"default"}function K(i){return i>=80?"#ff4d4f":i>=50?"#faad14":"#52c41a"}function n(i){return i>=70?"#ff4d4f":i>=40?"#faad14":"#52c41a"}function d(i,y){return i?i.length>y?i.slice(0,y)+"...":i:""}function V({key:i}){i==="match"?(j.value=null,x.value=!0):i==="ueba-build"?B.value=!0:i==="ueba-analyze"&&(N.value=!0)}async function Q(){C.value=!0;try{const[i,y,f]=await Promise.all([u.execute("compliance threat-intel list --limit 200 --json",1e4).catch(()=>({output:""})),u.execute("compliance threat-intel stats --json",8e3).catch(()=>({output:""})),u.execute("compliance ueba top --top-k 20 --json",1e4).catch(()=>({output:""}))]);I.value=ce(i.output),M.value=de(y.output),k.value=$(f.output),L.value=k.value.noAuditLog?[]:me(f.output)}catch(i){v.error(t("compliance.msg.loadFailed")+": "+(i?.message||i))}finally{C.value=!1}}async function fe(){const i=H.observable.trim();if(!i){v.warning(t("compliance.msg.matchEmpty"));return}G.value=!0,j.value=null;try{const y=`compliance threat-intel match "${i.replace(/"/g,'\\"')}" --json`,{output:f}=await u.execute(y,8e3),q=ue(f);if(!q){v.error(t("compliance.msg.matchFailed")+": "+f.slice(0,120));return}j.value=q,q.matched?v.warning(t("compliance.msg.matchHit",{type:q.type})):q.type==="unknown"?v.info(t("compliance.msg.matchUnknownType")):v.success(t("compliance.msg.matchMiss",{type:q.type}))}catch(y){v.error(t("compliance.msg.matchFailed")+": "+(y?.message||y))}finally{G.value=!1}}async function be(i){try{const y=`compliance threat-intel remove ${i.type} "${i.value.replace(/"/g,'\\"')}" --json`,{output:f}=await u.execute(y,8e3);if(/error|失败/i.test(f)&&!/"removed"/.test(f)){v.error(t("compliance.msg.deleteFailed")+": "+f.slice(0,120));return}v.success(t("compliance.msg.deleteSuccess")),await Q()}catch(y){v.error(t("compliance.msg.deleteFailed")+": "+(y?.message||y))}}async function ve(){w.value=!0;try{const i=["compliance ueba baseline"];O.entity.trim()&&i.push(`--entity "${O.entity.trim().replace(/"/g,'\\"')}"`),O.days!=null&&i.push(`--days ${O.days}`),i.push("--json");const{output:y}=await u.execute(i.join(" "),3e4),f=$(y);if(f.noAuditLog){k.value=f,v.warning(t("compliance.msg.auditEmptyBuild")),B.value=!1;return}if(f.error){v.error(t("compliance.msg.buildFailed")+": "+f.error);return}v.success(t("compliance.msg.buildSuccess")),B.value=!1,A.value="ueba",await Q()}catch(i){v.error(t("compliance.msg.buildFailed")+": "+(i?.message||i))}finally{w.value=!1}}async function ge(){U.value=!0;try{const i=["compliance ueba analyze"];S.entity.trim()&&i.push(`--entity "${S.entity.trim().replace(/"/g,'\\"')}"`),S.threshold!=null&&i.push(`--threshold ${S.threshold}`),S.days!=null&&i.push(`--days ${S.days}`),i.push("--json");const{output:y}=await u.execute(i.join(" "),3e4),f=$(y);if(f.noAuditLog){k.value=f,v.warning(t("compliance.msg.auditEmptyAnalyze")),N.value=!1;return}if(f.error&&!y.includes("[")){v.error(t("compliance.msg.analyzeFailed")+": "+f.error);return}z.value=pe(y),v.success(t("compliance.msg.analyzeSuccess",{n:z.value.length})),N.value=!1,A.value="ueba"}catch(i){v.error(t("compliance.msg.analyzeFailed")+": "+(i?.message||i))}finally{U.value=!1}}ne(Q);const le={ws:u,t,loading:C,matching:G,building:w,analyzing:U,indicators:I,threatStats:M,uebaTop:L,anomalies:z,uebaError:k,activeTab:A,iocTypeFilter:D,showMatchModal:x,showBuildModal:B,showAnalyzeModal:N,matchForm:H,matchResult:j,buildForm:O,analyzeForm:S,indicatorColumns:ee,uebaColumns:te,filteredIndicators:ae,threatTypeCount:oe,typeBreakdown:W,highRiskCount:F,IOC_TYPE_COLORS:P,iocTypeColor:J,confidenceColor:K,riskColor:n,truncate:d,handleNewClick:V,loadAll:Q,matchObservable:fe,removeIndicator:be,buildBaseline:ve,runAnalyze:ge,ref:h,computed:E,onMounted:ne,reactive:X,get ReloadOutlined(){return Re},get PlusOutlined(){return Fe},get AimOutlined(){return Oe},get DatabaseOutlined(){return Ce},get FundOutlined(){return Te},get SafetyCertificateOutlined(){return Ae},get BlockOutlined(){return Se},get UserOutlined(){return ze},get WarningOutlined(){return xe},get AlertOutlined(){return ke},get message(){return v},get useI18n(){return se},get useWsStore(){return re},get parseIndicators(){return ce},get parseMatchResult(){return ue},get parseThreatIntelStats(){return de},get parseUebaTop(){return me},get parseAnomalies(){return pe},get detectUebaError(){return $},get formatComplianceTime(){return je},get IOC_TYPES(){return we}};return Object.defineProperty(le,"__isScriptSetup",{enumerable:!1,value:!0}),le}},Ie={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},Me={class:"page-title"},Le={class:"page-sub"},Ne={class:"filter-bar"},Pe={key:1,style:{color:"var(--text-primary)","font-family":"monospace","font-size":"12px","word-break":"break-all"}},qe={key:0,style:{color:"var(--text-muted)"}},De={key:1,style:{color:"var(--text-muted)"}},We={key:0,style:{color:"var(--text-secondary)","font-size":"12px"}},Je={key:1,style:{color:"var(--text-muted)"}},Ke={key:5,style:{color:"var(--text-secondary)","font-size":"11px"}},Ve={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},Ye={style:{color:"var(--text-primary)",margin:"16px 0 8px","font-size":"14px"}},Ze={key:0,style:{color:"var(--text-primary)","font-family":"monospace","font-weight":"500"}},Ge={key:2,style:{color:"var(--text-secondary)"}},He={key:5,style:{color:"var(--text-secondary)","font-family":"monospace","font-size":"11px"}},Qe={style:{padding:"30px",color:"var(--text-muted)","text-align":"center"}},Xe={key:2,style:{color:"var(--text-primary)",margin:"24px 0 8px","font-size":"14px"}},$e={style:{flex:"1"}},et={style:{display:"flex",gap:"8px","align-items":"center"}},tt={key:0,style:{color:"var(--text-primary)","font-family":"monospace","font-size":"12px"}},at={key:1,style:{color:"var(--text-secondary)","font-size":"11px"}},ot={key:0,style:{"margin-top":"4px"}},lt={style:{"margin-top":"8px","font-size":"12px",color:"var(--text-secondary)"}},nt={key:0,style:{"margin-top":"12px","font-size":"12px"}},it={style:{color:"var(--text-secondary)"}},rt={style:{color:"var(--text-secondary)"}},st={key:0,style:{"margin-top":"4px"}},ct={style:{color:"var(--text-secondary)","font-size":"12px",margin:"0"}},ut={style:{color:"var(--text-secondary)","font-size":"12px",margin:"0"}};function dt(e,o,u,t,C,G){const w=p("a-button"),U=p("a-menu-item"),I=p("a-menu"),M=p("a-dropdown"),L=p("a-space"),z=p("a-statistic"),k=p("a-card"),A=p("a-col"),D=p("a-row"),x=p("a-tag"),B=p("a-radio-button"),N=p("a-radio-group"),H=p("a-popconfirm"),j=p("a-table"),O=p("a-tab-pane"),S=p("a-alert"),ee=p("a-progress"),te=p("a-list-item"),ae=p("a-list"),oe=p("a-tabs"),W=p("a-input"),F=p("a-form-item"),P=p("a-form"),J=p("a-modal"),K=p("a-input-number");return s(),m("div",null,[g("div",Ie,[g("div",null,[g("h2",Me,r(e.$t("compliance.title")),1),g("p",Le,r(e.$t("compliance.subtitle")),1)]),a(L,null,{default:l(()=>[a(w,{loading:t.loading,onClick:t.loadAll},{icon:l(()=>[a(t.ReloadOutlined)]),default:l(()=>[b(" "+r(e.$t("compliance.refresh")),1)]),_:1},8,["loading"]),a(M,{trigger:["click"]},{overlay:l(()=>[a(I,{onClick:t.handleNewClick},{default:l(()=>[a(U,{key:"match"},{default:l(()=>[a(t.AimOutlined),b(" "+r(e.$t("compliance.actions.match")),1)]),_:1}),a(U,{key:"ueba-build"},{default:l(()=>[a(t.DatabaseOutlined),b(" "+r(e.$t("compliance.actions.uebaBuild")),1)]),_:1}),a(U,{key:"ueba-analyze"},{default:l(()=>[a(t.FundOutlined),b(" "+r(e.$t("compliance.actions.uebaAnalyze")),1)]),_:1})]),_:1})]),default:l(()=>[a(w,{type:"primary"},{icon:l(()=>[a(t.PlusOutlined)]),default:l(()=>[b(" "+r(e.$t("compliance.actionDropdown")),1)]),_:1})]),_:1})]),_:1})]),c(" Stats overview "),a(D,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:l(()=>[a(A,{xs:12,sm:8,lg:5},{default:l(()=>[a(k,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:l(()=>[a(z,{title:e.$t("compliance.stats.iocTotal"),value:t.threatStats.total,"value-style":{color:"#1677ff",fontSize:"20px"}},{prefix:l(()=>[a(t.SafetyCertificateOutlined)]),_:1},8,["title","value"])]),_:1})]),_:1}),a(A,{xs:12,sm:8,lg:5},{default:l(()=>[a(k,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:l(()=>[a(z,{title:e.$t("compliance.stats.iocTypes"),value:t.threatTypeCount,"value-style":{color:"#13c2c2",fontSize:"20px"}},{prefix:l(()=>[a(t.BlockOutlined)]),_:1},8,["title","value"])]),_:1})]),_:1}),a(A,{xs:12,sm:8,lg:5},{default:l(()=>[a(k,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:l(()=>[a(z,{title:e.$t("compliance.stats.riskEntities"),value:t.uebaTop.length,"value-style":{color:"#722ed1",fontSize:"20px"}},{prefix:l(()=>[a(t.UserOutlined)]),_:1},8,["title","value"])]),_:1})]),_:1}),a(A,{xs:12,sm:8,lg:5},{default:l(()=>[a(k,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:l(()=>[a(z,{title:e.$t("compliance.stats.highRisk"),value:t.highRiskCount,"value-style":{color:t.highRiskCount>0?"#ff4d4f":"#52c41a",fontSize:"20px"}},{prefix:l(()=>[a(t.WarningOutlined)]),_:1},8,["title","value","value-style"])]),_:1})]),_:1}),a(A,{xs:24,sm:8,lg:4},{default:l(()=>[a(k,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:l(()=>[a(z,{title:e.$t("compliance.stats.recentAnomalies"),value:t.anomalies.length,"value-style":{color:"#faad14",fontSize:"20px"}},{prefix:l(()=>[a(t.AlertOutlined)]),_:1},8,["title","value"])]),_:1})]),_:1})]),_:1}),c(" Type breakdown "),t.threatStats.total>0?(s(),_(k,{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(L,{size:[12,8],wrap:""},{default:l(()=>[(s(!0),m(R,null,Y(t.typeBreakdown,([n,d])=>(s(),_(x,{key:n,color:t.iocTypeColor(n)},{default:l(()=>[b(r(n)+": "+r(d),1)]),_:2},1032,["color"]))),128))]),_:1})]),_:1},8,["title"])):c("v-if",!0),c(" Tabs "),a(oe,{activeKey:t.activeTab,"onUpdate:activeKey":o[1]||(o[1]=n=>t.activeTab=n),class:"compliance-tabs"},{default:l(()=>[c(" ── Threat Intel tab ──────────────────────────────────────── "),a(O,{key:"threat",tab:e.$t("compliance.tabs.threat")},{default:l(()=>[g("div",Ne,[a(N,{value:t.iocTypeFilter,"onUpdate:value":o[0]||(o[0]=n=>t.iocTypeFilter=n),size:"small"},{default:l(()=>[a(B,{value:""},{default:l(()=>[b(r(e.$t("compliance.filter.all")),1)]),_:1}),(s(!0),m(R,null,Y(t.IOC_TYPES,n=>(s(),_(B,{key:n,value:n},{default:l(()=>[b(r(n),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),a(j,{columns:t.indicatorColumns,"data-source":t.filteredIndicators,pagination:{pageSize:20,showTotal:n=>e.$t("compliance.table.totalSuffix",{n})},size:"small",loading:t.loading,style:{background:"var(--bg-card)"}},{bodyCell:l(({column:n,record:d})=>[n.key==="type"?(s(),_(x,{key:0,color:t.iocTypeColor(d.type),style:{"font-family":"monospace"}},{default:l(()=>[b(r(d.type),1)]),_:2},1032,["color"])):c("v-if",!0),n.key==="value"?(s(),m("span",Pe,r(t.truncate(d.value,64)),1)):c("v-if",!0),n.key==="labels"?(s(),m(R,{key:2},[(s(!0),m(R,null,Y(d.labels,V=>(s(),_(x,{key:V,color:"orange",style:{"font-size":"10px",margin:"1px"}},{default:l(()=>[b(r(V),1)]),_:2},1024))),128)),d.labels.length?c("v-if",!0):(s(),m("span",qe,"—"))],64)):c("v-if",!0),n.key==="confidence"?(s(),m(R,{key:3},[d.confidence!=null?(s(),m("span",{key:0,style:ie({color:t.confidenceColor(d.confidence),fontWeight:500})},r(d.confidence),5)):(s(),m("span",De,"—"))],64)):c("v-if",!0),n.key==="source"?(s(),m(R,{key:4},[d.sourceName?(s(),m("span",We,r(d.sourceName),1)):(s(),m("span",Je,"—"))],64)):c("v-if",!0),n.key==="lastSeen"?(s(),m("span",Ke,r(t.formatComplianceTime(d.lastSeenAt)),1)):c("v-if",!0),n.key==="action"?(s(),_(H,{key:6,title:e.$t("compliance.table.deleteConfirm"),"ok-text":e.$t("compliance.table.deleteOk"),"cancel-text":e.$t("compliance.table.cancel"),onConfirm:V=>t.removeIndicator(d)},{default:l(()=>[a(w,{size:"small",type:"link",danger:""},{default:l(()=>[b(r(e.$t("compliance.table.delete")),1)]),_:1})]),_:1},8,["title","ok-text","cancel-text","onConfirm"])):c("v-if",!0)]),emptyText:l(()=>[g("div",Ve,[a(t.SafetyCertificateOutlined,{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),b(" "+r(e.$t("compliance.table.emptyThreatsLine1"))+" ",1),o[11]||(o[11]=g("code",{style:{"font-size":"11px"}},"cc compliance threat-intel import <file.json>",-1))])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"]),c(" ── UEBA tab ──────────────────────────────────────────────── "),a(O,{key:"ueba",tab:e.$t("compliance.tabs.ueba")},{default:l(()=>[t.uebaError.noAuditLog?(s(),_(S,{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"])):t.uebaError.error?(s(),_(S,{key:1,type:"error","show-icon":"",message:e.$t("compliance.ueba.errorMessage",{err:t.uebaError.error}),style:{"margin-bottom":"16px"}},null,8,["message"])):c("v-if",!0),g("h3",Ye,r(e.$t("compliance.ueba.topRiskTitle",{count:t.uebaTop.length})),1),a(j,{columns:t.uebaColumns,"data-source":t.uebaTop,pagination:!1,size:"small",loading:t.loading,style:{background:"var(--bg-card)"}},{bodyCell:l(({column:n,record:d})=>[n.key==="entity"?(s(),m("span",Ze,r(d.entity),1)):c("v-if",!0),n.key==="riskScore"?(s(),_(ee,{key:1,percent:Math.min(d.riskScore,100),"stroke-color":t.riskColor(d.riskScore),size:"small",format:()=>d.riskScore.toFixed(1)},null,8,["percent","stroke-color","format"])):c("v-if",!0),n.key==="eventCount"?(s(),m("span",Ge,r(d.eventCount),1)):c("v-if",!0),n.key==="failureRate"?(s(),m("span",{key:3,style:ie({color:d.failureRate>.3?"#ff4d4f":"var(--text-secondary)",fontFamily:"monospace"})},r((d.failureRate*100).toFixed(1))+"% ",5)):c("v-if",!0),n.key==="uniqueResources"?(s(),_(x,{key:4,color:"cyan",style:{"font-size":"11px"}},{default:l(()=>[b(r(d.uniqueResources),1)]),_:2},1024)):c("v-if",!0),n.key==="burstiness"?(s(),m("span",He,r((d.burstiness*100).toFixed(0))+"% ",1)):c("v-if",!0)]),emptyText:l(()=>[g("div",Qe,[a(t.UserOutlined,{style:{"font-size":"32px","margin-bottom":"8px",display:"block"}}),b(" "+r(t.uebaError.noAuditLog?e.$t("compliance.table.emptyAuditEntities"):e.$t("compliance.table.emptyRiskEntities")),1)])]),_:1},8,["columns","data-source","loading"]),t.anomalies.length?(s(),m("h3",Xe,r(e.$t("compliance.ueba.anomalyTitle",{count:t.anomalies.length})),1)):c("v-if",!0),t.anomalies.length?(s(),_(ae,{key:3,size:"small","data-source":t.anomalies,locale:{emptyText:e.$t("compliance.table.noAnomalies")}},{renderItem:l(({item:n})=>[a(te,{style:{background:"var(--bg-card)",padding:"10px 16px"}},{default:l(()=>[g("div",$e,[g("div",et,[a(x,{color:t.riskColor(n.score*100)},{default:l(()=>[b("score "+r(n.score.toFixed(2)),1)]),_:2},1032,["color"]),n.event?.entity?(s(),m("span",tt,r(n.event.entity),1)):c("v-if",!0),n.event?.action?(s(),m("span",at," → "+r(n.event.action),1)):c("v-if",!0)]),n.reasons.length?(s(),m("div",ot,[(s(!0),m(R,null,Y(n.reasons,d=>(s(),_(x,{key:d,color:"volcano",style:{"font-size":"10px",margin:"1px"}},{default:l(()=>[b(r(d),1)]),_:2},1024))),128))])):c("v-if",!0)])]),_:2},1024)]),_:1},8,["data-source","locale"])):c("v-if",!0)]),_:1},8,["tab"])]),_:1},8,["activeKey"]),c(" ── Match modal ───────────────────────────────────────────── "),a(J,{open:t.showMatchModal,"onUpdate:open":o[3]||(o[3]=n=>t.showMatchModal=n),title:e.$t("compliance.match.modalTitle"),"confirm-loading":t.matching,width:500,"ok-text":e.$t("compliance.match.ok"),"cancel-text":e.$t("compliance.match.close"),onOk:t.matchObservable},{default:l(()=>[a(P,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:l(()=>[a(F,{label:e.$t("compliance.match.label"),required:""},{default:l(()=>[a(W,{value:t.matchForm.observable,"onUpdate:value":o[2]||(o[2]=n=>t.matchForm.observable=n),placeholder:e.$t("compliance.match.placeholder"),"allow-clear":""},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1}),t.matchResult?(s(),_(k,{key:0,size:"small",style:{background:"var(--bg-base)","margin-top":"8px"}},{default:l(()=>[a(z,{title:e.$t("compliance.match.result"),value:t.matchResult.matched?e.$t("compliance.match.hit"):e.$t("compliance.match.miss"),"value-style":{color:t.matchResult.matched?"#ff4d4f":"#52c41a"}},null,8,["title","value","value-style"]),g("div",lt,[b(r(e.$t("compliance.match.detectType"))+" ",1),a(x,{color:t.iocTypeColor(t.matchResult.type)},{default:l(()=>[b(r(t.matchResult.type),1)]),_:1},8,["color"])]),t.matchResult.indicator?(s(),m("div",nt,[g("div",it,r(e.$t("compliance.match.sourcePrefix"))+" "+r(t.matchResult.indicator.sourceName||"—"),1),g("div",rt,r(e.$t("compliance.match.confidencePrefix"))+" "+r(t.matchResult.indicator.confidence??"—"),1),t.matchResult.indicator.labels.length?(s(),m("div",st,[(s(!0),m(R,null,Y(t.matchResult.indicator.labels,n=>(s(),_(x,{key:n,color:"orange",style:{"font-size":"10px"}},{default:l(()=>[b(r(n),1)]),_:2},1024))),128))])):c("v-if",!0)])):c("v-if",!0)]),_:1})):c("v-if",!0)]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),c(" ── UEBA build baseline modal ─────────────────────────────── "),a(J,{open:t.showBuildModal,"onUpdate:open":o[6]||(o[6]=n=>t.showBuildModal=n),title:e.$t("compliance.build.modalTitle"),"confirm-loading":t.building,width:480,"ok-text":e.$t("compliance.build.ok"),"cancel-text":e.$t("compliance.build.cancel"),onOk:t.buildBaseline},{default:l(()=>[a(P,{"label-col":{span:6},"wrapper-col":{span:18},style:{"margin-top":"16px"}},{default:l(()=>[a(F,{label:e.$t("compliance.build.entityLabel")},{default:l(()=>[a(W,{value:t.buildForm.entity,"onUpdate:value":o[4]||(o[4]=n=>t.buildForm.entity=n),placeholder:e.$t("compliance.build.entityPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),a(F,{label:e.$t("compliance.build.daysLabel")},{default:l(()=>[a(K,{value:t.buildForm.days,"onUpdate:value":o[5]||(o[5]=n=>t.buildForm.days=n),min:1,max:365,placeholder:e.$t("compliance.build.daysPlaceholder"),style:{width:"100%"}},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1}),g("p",ct,r(e.$t("compliance.build.footnote")),1)]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),c(" ── UEBA analyze modal ────────────────────────────────────── "),a(J,{open:t.showAnalyzeModal,"onUpdate:open":o[10]||(o[10]=n=>t.showAnalyzeModal=n),title:e.$t("compliance.analyze.modalTitle"),"confirm-loading":t.analyzing,width:480,"ok-text":e.$t("compliance.analyze.ok"),"cancel-text":e.$t("compliance.analyze.cancel"),onOk:t.runAnalyze},{default:l(()=>[a(P,{"label-col":{span:6},"wrapper-col":{span:18},style:{"margin-top":"16px"}},{default:l(()=>[a(F,{label:e.$t("compliance.analyze.entityLabel")},{default:l(()=>[a(W,{value:t.analyzeForm.entity,"onUpdate:value":o[7]||(o[7]=n=>t.analyzeForm.entity=n),placeholder:e.$t("compliance.analyze.entityPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),a(F,{label:e.$t("compliance.analyze.thresholdLabel")},{default:l(()=>[a(K,{value:t.analyzeForm.threshold,"onUpdate:value":o[8]||(o[8]=n=>t.analyzeForm.threshold=n),min:0,max:1,step:.05,style:{width:"100%"}},null,8,["value"])]),_:1},8,["label"]),a(F,{label:e.$t("compliance.analyze.daysLabel")},{default:l(()=>[a(K,{value:t.analyzeForm.days,"onUpdate:value":o[9]||(o[9]=n=>t.analyzeForm.days=n),min:1,max:30,style:{width:"100%"}},null,8,["value"])]),_:1},8,["label"])]),_:1}),g("p",ut,r(e.$t("compliance.analyze.footnote")),1)]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"])])}const bt=he(Ee,[["render",dt],["__scopeId","data-v-d3ffc3f8"],["__file","/tmp/cc-web-panel-aMJ4KB/repo/packages/web-panel/src/views/Compliance.vue"]]);export{bt as default};
|
|
1
|
+
import{I as p,J as m,U as g,R as r,c as a,K as l,V as c,S as _,o as ne,a as X,b as E,r as h,P as s,Q as b,F as R,Z as Y,$ as ie}from"./vendor-BvqAck49.js";import{_ as he,u as re,b as se,d as v}from"./index-Cops66s2.js";import{s as _e}from"./community-parser-CO25nZFt.js";import{s as ke,am as xe,ak as ze,G as Se,Z as Ae,b2 as Te,D as Ce,b3 as Oe,as as Fe,R as Re}from"./icons-DP3uiYxy.js";function Z(e){const o=_e(e);if(!o)return null;try{return JSON.parse(o)}catch{}const u=o.match(/\{[\s\S]*\}|\[[\s\S]*\]/);if(!u)return null;try{return JSON.parse(u[0])}catch{return null}}const we=Object.freeze(["file-md5","file-sha1","file-sha256","file-sha512","ipv4","ipv6","domain","url","email"]);function T(e,o=0){return typeof e=="number"&&Number.isFinite(e)?e:o}function ye(e,o=0){if(!e||typeof e!="object")return null;const u=e.id||"";if(!u)return null;const t=Array.isArray(e.labels)?e.labels:[];return{key:u,id:u,type:String(e.type||""),value:String(e.value||""),labels:t,confidence:e.confidence!=null?T(e.confidence,null):null,sourceId:e.sourceId??e.source_id??null,sourceName:e.sourceName??e.source_name??null,validFrom:e.validFrom??e.valid_from??null,validUntil:e.validUntil??e.valid_until??null,firstSeenAt:e.firstSeenAt??e.first_seen_at??null,lastSeenAt:e.lastSeenAt??e.last_seen_at??null,_idx:o}}function ce(e){const o=Z(e);return Array.isArray(o)?o.map(ye).filter(Boolean):[]}function ue(e){const o=Z(e);return!o||typeof o!="object"||Array.isArray(o)?null:{matched:!!o.matched,type:String(o.type||"unknown"),indicator:o.indicator?ye(o.indicator):null}}function de(e){const o={total:0,byType:{}},u=Z(e);if(!u||typeof u!="object"||Array.isArray(u))return o;if(o.total=T(u.total,0),u.byType&&typeof u.byType=="object")for(const[t,C]of Object.entries(u.byType))typeof C=="number"&&Number.isFinite(C)&&(o.byType[t]=C);return o}function Ue(e,o=0){if(!e||typeof e!="object")return null;const u=e.entity||"";return u?{key:u,entity:u,eventCount:T(e.eventCount??e.event_count,0),failureRate:T(e.failureRate??e.failure_rate,0),uniqueResources:T(e.uniqueResources??e.unique_resources,0),uniqueActions:T(e.uniqueActions??e.unique_actions,0),burstiness:T(e.burstiness,0),riskScore:T(e.riskScore??e.risk_score,0),_idx:o}:null}function me(e){const o=Z(e);return Array.isArray(o)?o.map(Ue).filter(Boolean):[]}function je(e,o=0){return!e||typeof e!="object"?null:{key:o,score:T(e.score,0),reasons:Array.isArray(e.reasons)?e.reasons:[],event:e.event&&typeof e.event=="object"?e.event:null,_idx:o}}function pe(e){const o=Z(e);return Array.isArray(o)?o.map(je).filter(Boolean):[]}function $(e){if(!e)return{noAuditLog:!1,error:""};const o=/no such table:\s*audit_log/i.test(e),u=e.match(/Failed:\s*(.+?)(?:\r?\n|$)/i);return{noAuditLog:o,error:u?u[1].trim():""}}function Be(e){if(e==null||e==="")return"—";const o=typeof e=="number"?new Date(e):new Date(String(e));return isNaN(o.getTime())?String(e):o.toLocaleString("zh-CN",{hour12:!1})}const Ee={__name:"Compliance",setup(e,{expose:o}){o();const u=re(),{t}=se(),C=h(!1),G=h(!1),w=h(!1),U=h(!1),I=h([]),M=h({total:0,byType:{}}),L=h([]),z=h([]),k=h({noAuditLog:!1,error:""}),A=h("threat"),D=h(""),x=h(!1),j=h(!1),N=h(!1),H=X({observable:""}),B=h(null),O=X({entity:"",days:30}),S=X({entity:"",threshold:.7,days:1}),ee=E(()=>[{title:t("compliance.cols.type"),key:"type",width:"120px"},{title:t("compliance.cols.value"),key:"value"},{title:t("compliance.cols.labels"),key:"labels",width:"160px"},{title:t("compliance.cols.confidence"),key:"confidence",width:"90px"},{title:t("compliance.cols.source"),key:"source",width:"160px"},{title:t("compliance.cols.lastSeen"),key:"lastSeen",width:"160px"},{title:t("compliance.cols.action"),key:"action",width:"90px"}]),te=E(()=>[{title:t("compliance.cols.entity"),key:"entity",width:"180px"},{title:t("compliance.cols.riskScore"),key:"riskScore"},{title:t("compliance.cols.eventCount"),key:"eventCount",width:"90px"},{title:t("compliance.cols.failureRate"),key:"failureRate",width:"90px"},{title:t("compliance.cols.uniqueResources"),key:"uniqueResources",width:"90px"},{title:t("compliance.cols.burstiness"),key:"burstiness",width:"90px"}]),ae=E(()=>D.value?I.value.filter(i=>i.type===D.value):I.value),oe=E(()=>Object.keys(M.value.byType).length),W=E(()=>Object.entries(M.value.byType).sort((i,y)=>y[1]-i[1])),F=E(()=>L.value.filter(i=>i.riskScore>=70).length),P={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 V(i){return P[i]||"default"}function J(i){return i>=80?"#ff4d4f":i>=50?"#faad14":"#52c41a"}function n(i){return i>=70?"#ff4d4f":i>=40?"#faad14":"#52c41a"}function d(i,y){return i?i.length>y?i.slice(0,y)+"...":i:""}function K({key:i}){i==="match"?(B.value=null,x.value=!0):i==="ueba-build"?j.value=!0:i==="ueba-analyze"&&(N.value=!0)}async function Q(){C.value=!0;try{const[i,y,f]=await Promise.all([u.execute("compliance threat-intel list --limit 200 --json",1e4).catch(()=>({output:""})),u.execute("compliance threat-intel stats --json",8e3).catch(()=>({output:""})),u.execute("compliance ueba top --top-k 20 --json",1e4).catch(()=>({output:""}))]);I.value=ce(i.output),M.value=de(y.output),k.value=$(f.output),L.value=k.value.noAuditLog?[]:me(f.output)}catch(i){v.error(t("compliance.msg.loadFailed")+": "+(i?.message||i))}finally{C.value=!1}}async function fe(){const i=H.observable.trim();if(!i){v.warning(t("compliance.msg.matchEmpty"));return}G.value=!0,B.value=null;try{const y=`compliance threat-intel match "${i.replace(/"/g,'\\"')}" --json`,{output:f}=await u.execute(y,8e3),q=ue(f);if(!q){v.error(t("compliance.msg.matchFailed")+": "+f.slice(0,120));return}B.value=q,q.matched?v.warning(t("compliance.msg.matchHit",{type:q.type})):q.type==="unknown"?v.info(t("compliance.msg.matchUnknownType")):v.success(t("compliance.msg.matchMiss",{type:q.type}))}catch(y){v.error(t("compliance.msg.matchFailed")+": "+(y?.message||y))}finally{G.value=!1}}async function be(i){try{const y=`compliance threat-intel remove ${i.type} "${i.value.replace(/"/g,'\\"')}" --json`,{output:f}=await u.execute(y,8e3);if(/error|失败/i.test(f)&&!/"removed"/.test(f)){v.error(t("compliance.msg.deleteFailed")+": "+f.slice(0,120));return}v.success(t("compliance.msg.deleteSuccess")),await Q()}catch(y){v.error(t("compliance.msg.deleteFailed")+": "+(y?.message||y))}}async function ve(){w.value=!0;try{const i=["compliance ueba baseline"];O.entity.trim()&&i.push(`--entity "${O.entity.trim().replace(/"/g,'\\"')}"`),O.days!=null&&i.push(`--days ${O.days}`),i.push("--json");const{output:y}=await u.execute(i.join(" "),3e4),f=$(y);if(f.noAuditLog){k.value=f,v.warning(t("compliance.msg.auditEmptyBuild")),j.value=!1;return}if(f.error){v.error(t("compliance.msg.buildFailed")+": "+f.error);return}v.success(t("compliance.msg.buildSuccess")),j.value=!1,A.value="ueba",await Q()}catch(i){v.error(t("compliance.msg.buildFailed")+": "+(i?.message||i))}finally{w.value=!1}}async function ge(){U.value=!0;try{const i=["compliance ueba analyze"];S.entity.trim()&&i.push(`--entity "${S.entity.trim().replace(/"/g,'\\"')}"`),S.threshold!=null&&i.push(`--threshold ${S.threshold}`),S.days!=null&&i.push(`--days ${S.days}`),i.push("--json");const{output:y}=await u.execute(i.join(" "),3e4),f=$(y);if(f.noAuditLog){k.value=f,v.warning(t("compliance.msg.auditEmptyAnalyze")),N.value=!1;return}if(f.error&&!y.includes("[")){v.error(t("compliance.msg.analyzeFailed")+": "+f.error);return}z.value=pe(y),v.success(t("compliance.msg.analyzeSuccess",{n:z.value.length})),N.value=!1,A.value="ueba"}catch(i){v.error(t("compliance.msg.analyzeFailed")+": "+(i?.message||i))}finally{U.value=!1}}ne(Q);const le={ws:u,t,loading:C,matching:G,building:w,analyzing:U,indicators:I,threatStats:M,uebaTop:L,anomalies:z,uebaError:k,activeTab:A,iocTypeFilter:D,showMatchModal:x,showBuildModal:j,showAnalyzeModal:N,matchForm:H,matchResult:B,buildForm:O,analyzeForm:S,indicatorColumns:ee,uebaColumns:te,filteredIndicators:ae,threatTypeCount:oe,typeBreakdown:W,highRiskCount:F,IOC_TYPE_COLORS:P,iocTypeColor:V,confidenceColor:J,riskColor:n,truncate:d,handleNewClick:K,loadAll:Q,matchObservable:fe,removeIndicator:be,buildBaseline:ve,runAnalyze:ge,ref:h,computed:E,onMounted:ne,reactive:X,get ReloadOutlined(){return Re},get PlusOutlined(){return Fe},get AimOutlined(){return Oe},get DatabaseOutlined(){return Ce},get FundOutlined(){return Te},get SafetyCertificateOutlined(){return Ae},get BlockOutlined(){return Se},get UserOutlined(){return ze},get WarningOutlined(){return xe},get AlertOutlined(){return ke},get message(){return v},get useI18n(){return se},get useWsStore(){return re},get parseIndicators(){return ce},get parseMatchResult(){return ue},get parseThreatIntelStats(){return de},get parseUebaTop(){return me},get parseAnomalies(){return pe},get detectUebaError(){return $},get formatComplianceTime(){return Be},get IOC_TYPES(){return we}};return Object.defineProperty(le,"__isScriptSetup",{enumerable:!1,value:!0}),le}},Ie={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},Me={class:"page-title"},Le={class:"page-sub"},Ne={class:"filter-bar"},Pe={key:1,style:{color:"var(--text-primary)","font-family":"monospace","font-size":"12px","word-break":"break-all"}},qe={key:0,style:{color:"var(--text-muted)"}},De={key:1,style:{color:"var(--text-muted)"}},We={key:0,style:{color:"var(--text-secondary)","font-size":"12px"}},Ve={key:1,style:{color:"var(--text-muted)"}},Je={key:5,style:{color:"var(--text-secondary)","font-size":"11px"}},Ke={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},Ye={style:{color:"var(--text-primary)",margin:"16px 0 8px","font-size":"14px"}},Ze={key:0,style:{color:"var(--text-primary)","font-family":"monospace","font-weight":"500"}},Ge={key:2,style:{color:"var(--text-secondary)"}},He={key:5,style:{color:"var(--text-secondary)","font-family":"monospace","font-size":"11px"}},Qe={style:{padding:"30px",color:"var(--text-muted)","text-align":"center"}},Xe={key:2,style:{color:"var(--text-primary)",margin:"24px 0 8px","font-size":"14px"}},$e={style:{flex:"1"}},et={style:{display:"flex",gap:"8px","align-items":"center"}},tt={key:0,style:{color:"var(--text-primary)","font-family":"monospace","font-size":"12px"}},at={key:1,style:{color:"var(--text-secondary)","font-size":"11px"}},ot={key:0,style:{"margin-top":"4px"}},lt={style:{"margin-top":"8px","font-size":"12px",color:"var(--text-secondary)"}},nt={key:0,style:{"margin-top":"12px","font-size":"12px"}},it={style:{color:"var(--text-secondary)"}},rt={style:{color:"var(--text-secondary)"}},st={key:0,style:{"margin-top":"4px"}},ct={style:{color:"var(--text-secondary)","font-size":"12px",margin:"0"}},ut={style:{color:"var(--text-secondary)","font-size":"12px",margin:"0"}};function dt(e,o,u,t,C,G){const w=p("a-button"),U=p("a-menu-item"),I=p("a-menu"),M=p("a-dropdown"),L=p("a-space"),z=p("a-statistic"),k=p("a-card"),A=p("a-col"),D=p("a-row"),x=p("a-tag"),j=p("a-radio-button"),N=p("a-radio-group"),H=p("a-popconfirm"),B=p("a-table"),O=p("a-tab-pane"),S=p("a-alert"),ee=p("a-progress"),te=p("a-list-item"),ae=p("a-list"),oe=p("a-tabs"),W=p("a-input"),F=p("a-form-item"),P=p("a-form"),V=p("a-modal"),J=p("a-input-number");return s(),m("div",null,[g("div",Ie,[g("div",null,[g("h2",Me,r(e.$t("compliance.title")),1),g("p",Le,r(e.$t("compliance.subtitle")),1)]),a(L,null,{default:l(()=>[a(w,{loading:t.loading,onClick:t.loadAll},{icon:l(()=>[a(t.ReloadOutlined)]),default:l(()=>[b(" "+r(e.$t("compliance.refresh")),1)]),_:1},8,["loading"]),a(M,{trigger:["click"]},{overlay:l(()=>[a(I,{onClick:t.handleNewClick},{default:l(()=>[a(U,{key:"match"},{default:l(()=>[a(t.AimOutlined),b(" "+r(e.$t("compliance.actions.match")),1)]),_:1}),a(U,{key:"ueba-build"},{default:l(()=>[a(t.DatabaseOutlined),b(" "+r(e.$t("compliance.actions.uebaBuild")),1)]),_:1}),a(U,{key:"ueba-analyze"},{default:l(()=>[a(t.FundOutlined),b(" "+r(e.$t("compliance.actions.uebaAnalyze")),1)]),_:1})]),_:1})]),default:l(()=>[a(w,{type:"primary"},{icon:l(()=>[a(t.PlusOutlined)]),default:l(()=>[b(" "+r(e.$t("compliance.actionDropdown")),1)]),_:1})]),_:1})]),_:1})]),c(" Stats overview "),a(D,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:l(()=>[a(A,{xs:12,sm:8,lg:5},{default:l(()=>[a(k,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:l(()=>[a(z,{title:e.$t("compliance.stats.iocTotal"),value:t.threatStats.total,"value-style":{color:"#1677ff",fontSize:"20px"}},{prefix:l(()=>[a(t.SafetyCertificateOutlined)]),_:1},8,["title","value"])]),_:1})]),_:1}),a(A,{xs:12,sm:8,lg:5},{default:l(()=>[a(k,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:l(()=>[a(z,{title:e.$t("compliance.stats.iocTypes"),value:t.threatTypeCount,"value-style":{color:"#13c2c2",fontSize:"20px"}},{prefix:l(()=>[a(t.BlockOutlined)]),_:1},8,["title","value"])]),_:1})]),_:1}),a(A,{xs:12,sm:8,lg:5},{default:l(()=>[a(k,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:l(()=>[a(z,{title:e.$t("compliance.stats.riskEntities"),value:t.uebaTop.length,"value-style":{color:"#722ed1",fontSize:"20px"}},{prefix:l(()=>[a(t.UserOutlined)]),_:1},8,["title","value"])]),_:1})]),_:1}),a(A,{xs:12,sm:8,lg:5},{default:l(()=>[a(k,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:l(()=>[a(z,{title:e.$t("compliance.stats.highRisk"),value:t.highRiskCount,"value-style":{color:t.highRiskCount>0?"#ff4d4f":"#52c41a",fontSize:"20px"}},{prefix:l(()=>[a(t.WarningOutlined)]),_:1},8,["title","value","value-style"])]),_:1})]),_:1}),a(A,{xs:24,sm:8,lg:4},{default:l(()=>[a(k,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:l(()=>[a(z,{title:e.$t("compliance.stats.recentAnomalies"),value:t.anomalies.length,"value-style":{color:"#faad14",fontSize:"20px"}},{prefix:l(()=>[a(t.AlertOutlined)]),_:1},8,["title","value"])]),_:1})]),_:1})]),_:1}),c(" Type breakdown "),t.threatStats.total>0?(s(),_(k,{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(L,{size:[12,8],wrap:""},{default:l(()=>[(s(!0),m(R,null,Y(t.typeBreakdown,([n,d])=>(s(),_(x,{key:n,color:t.iocTypeColor(n)},{default:l(()=>[b(r(n)+": "+r(d),1)]),_:2},1032,["color"]))),128))]),_:1})]),_:1},8,["title"])):c("v-if",!0),c(" Tabs "),a(oe,{activeKey:t.activeTab,"onUpdate:activeKey":o[1]||(o[1]=n=>t.activeTab=n),class:"compliance-tabs"},{default:l(()=>[c(" ── Threat Intel tab ──────────────────────────────────────── "),a(O,{key:"threat",tab:e.$t("compliance.tabs.threat")},{default:l(()=>[g("div",Ne,[a(N,{value:t.iocTypeFilter,"onUpdate:value":o[0]||(o[0]=n=>t.iocTypeFilter=n),size:"small"},{default:l(()=>[a(j,{value:""},{default:l(()=>[b(r(e.$t("compliance.filter.all")),1)]),_:1}),(s(!0),m(R,null,Y(t.IOC_TYPES,n=>(s(),_(j,{key:n,value:n},{default:l(()=>[b(r(n),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),a(B,{columns:t.indicatorColumns,"data-source":t.filteredIndicators,pagination:{pageSize:20,showTotal:n=>e.$t("compliance.table.totalSuffix",{n})},size:"small",loading:t.loading,style:{background:"var(--bg-card)"}},{bodyCell:l(({column:n,record:d})=>[n.key==="type"?(s(),_(x,{key:0,color:t.iocTypeColor(d.type),style:{"font-family":"monospace"}},{default:l(()=>[b(r(d.type),1)]),_:2},1032,["color"])):c("v-if",!0),n.key==="value"?(s(),m("span",Pe,r(t.truncate(d.value,64)),1)):c("v-if",!0),n.key==="labels"?(s(),m(R,{key:2},[(s(!0),m(R,null,Y(d.labels,K=>(s(),_(x,{key:K,color:"orange",style:{"font-size":"10px",margin:"1px"}},{default:l(()=>[b(r(K),1)]),_:2},1024))),128)),d.labels.length?c("v-if",!0):(s(),m("span",qe,"—"))],64)):c("v-if",!0),n.key==="confidence"?(s(),m(R,{key:3},[d.confidence!=null?(s(),m("span",{key:0,style:ie({color:t.confidenceColor(d.confidence),fontWeight:500})},r(d.confidence),5)):(s(),m("span",De,"—"))],64)):c("v-if",!0),n.key==="source"?(s(),m(R,{key:4},[d.sourceName?(s(),m("span",We,r(d.sourceName),1)):(s(),m("span",Ve,"—"))],64)):c("v-if",!0),n.key==="lastSeen"?(s(),m("span",Je,r(t.formatComplianceTime(d.lastSeenAt)),1)):c("v-if",!0),n.key==="action"?(s(),_(H,{key:6,title:e.$t("compliance.table.deleteConfirm"),"ok-text":e.$t("compliance.table.deleteOk"),"cancel-text":e.$t("compliance.table.cancel"),onConfirm:K=>t.removeIndicator(d)},{default:l(()=>[a(w,{size:"small",type:"link",danger:""},{default:l(()=>[b(r(e.$t("compliance.table.delete")),1)]),_:1})]),_:1},8,["title","ok-text","cancel-text","onConfirm"])):c("v-if",!0)]),emptyText:l(()=>[g("div",Ke,[a(t.SafetyCertificateOutlined,{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),b(" "+r(e.$t("compliance.table.emptyThreatsLine1"))+" ",1),o[11]||(o[11]=g("code",{style:{"font-size":"11px"}},"cc compliance threat-intel import <file.json>",-1))])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"]),c(" ── UEBA tab ──────────────────────────────────────────────── "),a(O,{key:"ueba",tab:e.$t("compliance.tabs.ueba")},{default:l(()=>[t.uebaError.noAuditLog?(s(),_(S,{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"])):t.uebaError.error?(s(),_(S,{key:1,type:"error","show-icon":"",message:e.$t("compliance.ueba.errorMessage",{err:t.uebaError.error}),style:{"margin-bottom":"16px"}},null,8,["message"])):c("v-if",!0),g("h3",Ye,r(e.$t("compliance.ueba.topRiskTitle",{count:t.uebaTop.length})),1),a(B,{columns:t.uebaColumns,"data-source":t.uebaTop,pagination:!1,size:"small",loading:t.loading,style:{background:"var(--bg-card)"}},{bodyCell:l(({column:n,record:d})=>[n.key==="entity"?(s(),m("span",Ze,r(d.entity),1)):c("v-if",!0),n.key==="riskScore"?(s(),_(ee,{key:1,percent:Math.min(d.riskScore,100),"stroke-color":t.riskColor(d.riskScore),size:"small",format:()=>d.riskScore.toFixed(1)},null,8,["percent","stroke-color","format"])):c("v-if",!0),n.key==="eventCount"?(s(),m("span",Ge,r(d.eventCount),1)):c("v-if",!0),n.key==="failureRate"?(s(),m("span",{key:3,style:ie({color:d.failureRate>.3?"#ff4d4f":"var(--text-secondary)",fontFamily:"monospace"})},r((d.failureRate*100).toFixed(1))+"% ",5)):c("v-if",!0),n.key==="uniqueResources"?(s(),_(x,{key:4,color:"cyan",style:{"font-size":"11px"}},{default:l(()=>[b(r(d.uniqueResources),1)]),_:2},1024)):c("v-if",!0),n.key==="burstiness"?(s(),m("span",He,r((d.burstiness*100).toFixed(0))+"% ",1)):c("v-if",!0)]),emptyText:l(()=>[g("div",Qe,[a(t.UserOutlined,{style:{"font-size":"32px","margin-bottom":"8px",display:"block"}}),b(" "+r(t.uebaError.noAuditLog?e.$t("compliance.table.emptyAuditEntities"):e.$t("compliance.table.emptyRiskEntities")),1)])]),_:1},8,["columns","data-source","loading"]),t.anomalies.length?(s(),m("h3",Xe,r(e.$t("compliance.ueba.anomalyTitle",{count:t.anomalies.length})),1)):c("v-if",!0),t.anomalies.length?(s(),_(ae,{key:3,size:"small","data-source":t.anomalies,locale:{emptyText:e.$t("compliance.table.noAnomalies")}},{renderItem:l(({item:n})=>[a(te,{style:{background:"var(--bg-card)",padding:"10px 16px"}},{default:l(()=>[g("div",$e,[g("div",et,[a(x,{color:t.riskColor(n.score*100)},{default:l(()=>[b("score "+r(n.score.toFixed(2)),1)]),_:2},1032,["color"]),n.event?.entity?(s(),m("span",tt,r(n.event.entity),1)):c("v-if",!0),n.event?.action?(s(),m("span",at," → "+r(n.event.action),1)):c("v-if",!0)]),n.reasons.length?(s(),m("div",ot,[(s(!0),m(R,null,Y(n.reasons,d=>(s(),_(x,{key:d,color:"volcano",style:{"font-size":"10px",margin:"1px"}},{default:l(()=>[b(r(d),1)]),_:2},1024))),128))])):c("v-if",!0)])]),_:2},1024)]),_:1},8,["data-source","locale"])):c("v-if",!0)]),_:1},8,["tab"])]),_:1},8,["activeKey"]),c(" ── Match modal ───────────────────────────────────────────── "),a(V,{open:t.showMatchModal,"onUpdate:open":o[3]||(o[3]=n=>t.showMatchModal=n),title:e.$t("compliance.match.modalTitle"),"confirm-loading":t.matching,width:500,"ok-text":e.$t("compliance.match.ok"),"cancel-text":e.$t("compliance.match.close"),onOk:t.matchObservable},{default:l(()=>[a(P,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:l(()=>[a(F,{label:e.$t("compliance.match.label"),required:""},{default:l(()=>[a(W,{value:t.matchForm.observable,"onUpdate:value":o[2]||(o[2]=n=>t.matchForm.observable=n),placeholder:e.$t("compliance.match.placeholder"),"allow-clear":""},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1}),t.matchResult?(s(),_(k,{key:0,size:"small",style:{background:"var(--bg-base)","margin-top":"8px"}},{default:l(()=>[a(z,{title:e.$t("compliance.match.result"),value:t.matchResult.matched?e.$t("compliance.match.hit"):e.$t("compliance.match.miss"),"value-style":{color:t.matchResult.matched?"#ff4d4f":"#52c41a"}},null,8,["title","value","value-style"]),g("div",lt,[b(r(e.$t("compliance.match.detectType"))+" ",1),a(x,{color:t.iocTypeColor(t.matchResult.type)},{default:l(()=>[b(r(t.matchResult.type),1)]),_:1},8,["color"])]),t.matchResult.indicator?(s(),m("div",nt,[g("div",it,r(e.$t("compliance.match.sourcePrefix"))+" "+r(t.matchResult.indicator.sourceName||"—"),1),g("div",rt,r(e.$t("compliance.match.confidencePrefix"))+" "+r(t.matchResult.indicator.confidence??"—"),1),t.matchResult.indicator.labels.length?(s(),m("div",st,[(s(!0),m(R,null,Y(t.matchResult.indicator.labels,n=>(s(),_(x,{key:n,color:"orange",style:{"font-size":"10px"}},{default:l(()=>[b(r(n),1)]),_:2},1024))),128))])):c("v-if",!0)])):c("v-if",!0)]),_:1})):c("v-if",!0)]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),c(" ── UEBA build baseline modal ─────────────────────────────── "),a(V,{open:t.showBuildModal,"onUpdate:open":o[6]||(o[6]=n=>t.showBuildModal=n),title:e.$t("compliance.build.modalTitle"),"confirm-loading":t.building,width:480,"ok-text":e.$t("compliance.build.ok"),"cancel-text":e.$t("compliance.build.cancel"),onOk:t.buildBaseline},{default:l(()=>[a(P,{"label-col":{span:6},"wrapper-col":{span:18},style:{"margin-top":"16px"}},{default:l(()=>[a(F,{label:e.$t("compliance.build.entityLabel")},{default:l(()=>[a(W,{value:t.buildForm.entity,"onUpdate:value":o[4]||(o[4]=n=>t.buildForm.entity=n),placeholder:e.$t("compliance.build.entityPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),a(F,{label:e.$t("compliance.build.daysLabel")},{default:l(()=>[a(J,{value:t.buildForm.days,"onUpdate:value":o[5]||(o[5]=n=>t.buildForm.days=n),min:1,max:365,placeholder:e.$t("compliance.build.daysPlaceholder"),style:{width:"100%"}},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1}),g("p",ct,r(e.$t("compliance.build.footnote")),1)]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),c(" ── UEBA analyze modal ────────────────────────────────────── "),a(V,{open:t.showAnalyzeModal,"onUpdate:open":o[10]||(o[10]=n=>t.showAnalyzeModal=n),title:e.$t("compliance.analyze.modalTitle"),"confirm-loading":t.analyzing,width:480,"ok-text":e.$t("compliance.analyze.ok"),"cancel-text":e.$t("compliance.analyze.cancel"),onOk:t.runAnalyze},{default:l(()=>[a(P,{"label-col":{span:6},"wrapper-col":{span:18},style:{"margin-top":"16px"}},{default:l(()=>[a(F,{label:e.$t("compliance.analyze.entityLabel")},{default:l(()=>[a(W,{value:t.analyzeForm.entity,"onUpdate:value":o[7]||(o[7]=n=>t.analyzeForm.entity=n),placeholder:e.$t("compliance.analyze.entityPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),a(F,{label:e.$t("compliance.analyze.thresholdLabel")},{default:l(()=>[a(J,{value:t.analyzeForm.threshold,"onUpdate:value":o[8]||(o[8]=n=>t.analyzeForm.threshold=n),min:0,max:1,step:.05,style:{width:"100%"}},null,8,["value"])]),_:1},8,["label"]),a(F,{label:e.$t("compliance.analyze.daysLabel")},{default:l(()=>[a(J,{value:t.analyzeForm.days,"onUpdate:value":o[9]||(o[9]=n=>t.analyzeForm.days=n),min:1,max:30,style:{width:"100%"}},null,8,["value"])]),_:1},8,["label"])]),_:1}),g("p",ut,r(e.$t("compliance.analyze.footnote")),1)]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"])])}const bt=he(Ee,[["render",dt],["__scopeId","data-v-d3ffc3f8"],["__file","/tmp/cc-web-panel-gA2tfF/repo/packages/web-panel/src/views/Compliance.vue"]]);export{bt as default};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import{E as ge,w as G,b as H,r as u,I as b,J as l,V as o,U as n,c as p,F as w,Z as C,_ as L,a2 as K,R as i,Q as y,S as O,a0 as J,K as g,a1 as fe,n as W,o as X,P as a}from"./vendor-BvqAck49.js";import{u as j,_ as _e}from"./index-
|
|
1
|
+
import{E as ge,w as G,b as H,r as u,I as b,J as l,V as o,U as n,c as p,F as w,Z as C,_ as L,a2 as K,R as i,Q as y,S as O,a0 as J,K as g,a1 as fe,n as W,o as X,P as a}from"./vendor-BvqAck49.js";import{u as j,_ as _e}from"./index-Cops66s2.js";import{u as F}from"./chat-d66mbO2i.js";import{r as ye}from"./markdown-Yo_c6Krv.js";import{Z as Y,y as $,a6 as ee,an as te,h as se,Q as ne,ao as ae,k as oe,H as le,ap as re,a4 as ie,aq as he,ae as ke,$ as we,al as Oe,aa as Se}from"./icons-DP3uiYxy.js";import"./markdown-CsiA8-E5.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=ge("cowork",()=>{const Q=u(be),s=u(null),d=u([]),e=u(!1),T=u([]),h=u([]),f=u(null),v=u(null),S=u(null),E=u([]),P=u(!1),R=u(3),x=u(!1),M=u([]),D=F();G(()=>D.isLoading,r=>{!r&&v.value&&(e.value=!1)});function t(r){s.value=r,_()}function _(){T.value=[],h.value=[],f.value=null,e.value=!1,v.value=null,S.value=null}function U(r){d.value.includes(r)||d.value.push(r)}function q(r){d.value=d.value.filter(c=>c!==r)}async function V(){const r=j();try{await r.waitConnected(5e3);const c=await r.sendRaw({type:"cowork-templates"},1e4);c?.templates?.length&&(Q.value=c.templates)}catch{}}async function z(){const r=j();try{await r.waitConnected(5e3);const c=await r.sendRaw({type:"cowork-history",limit:50},1e4);c?.entries&&(E.value=c.entries)}catch{}}async function m(r){S.value={mode:"session",message:r},e.value=!0;const c=s.value;let k="";c&&(k=`## 当前任务类型: ${c.name}
|
|
2
2
|
${c.description||""}`);let N=r;d.value.length&&(N+=`
|
|
3
3
|
|
|
4
|
-
[用户提供的文件: ${d.value.join(", ")}]`),h.value.push({role:"user",content:r,timestamp:Date.now()});const
|
|
4
|
+
[用户提供的文件: ${d.value.join(", ")}]`),h.value.push({role:"user",content:r,timestamp:Date.now()});const A={systemPromptExtension:k};c?.shellPolicyOverrides&&(A.shellPolicyOverrides=c.shellPolicyOverrides);const Z=await D.createSession("agent",A);v.value=Z,await D.sendMessage(Z,N)}async function I(r){S.value={mode:"direct",message:r};const c=j();e.value=!0,h.value.push({role:"user",content:r,timestamp:Date.now()});try{await c.waitConnected(8e3);const k={type:"cowork-task",templateId:s.value?.id||null,userMessage:r,files:d.value};P.value&&(k.parallel=!0,k.agents=R.value);const N=s.value;(x.value||N?.mode==="debate")&&(k.mode="debate",M.value.length&&(k.perspectives=M.value));const A=await c.sendRaw(k,3e5);h.value.push({role:"assistant",content:A.summary||"(No output)",timestamp:Date.now(),toolsUsed:A.toolsUsed||[],iterationCount:A.iterationCount||0}),f.value=A}catch(k){h.value.push({role:"assistant",content:`Error: ${k.message}`,timestamp:Date.now()})}finally{e.value=!1}}const B=H(()=>v.value?F().getMessages(v.value):[]),de=H(()=>{if(!v.value)return null;const c=F().streaming[v.value];return c?.active?c.content:null}),ue=H(()=>v.value&&F().pendingQuestion[v.value]||null);function ve(r){if(!v.value)return;F().answerQuestion(v.value,r)}async function me(){if(!S.value)return;const{mode:r,message:c}=S.value;r==="direct"?await I(c):await m(c)}async function pe(r){if(!v.value)return;const c=F();h.value.push({role:"user",content:r,timestamp:Date.now()});let k=r;d.value.length&&(k+=`
|
|
5
5
|
|
|
6
|
-
[用户提供的文件: ${d.value.join(", ")}]`),await c.sendMessage(v.value,k)}return{selectedTemplate:s,files:d,isRunning:e,steps:T,messages:h,result:f,agentSessionId:v,currentAgentMessages:B,currentStreaming:de,currentQuestion:ue,selectTemplate:t,reset:_,addFile:U,removeFile:q,execute:m,executeDirectWs:I,sendFollowUp:pe,answerQuestion:ve,loadTemplates:V,templates:Q,lastRequest:S,retry:me,history:A,loadHistory:z,parallelMode:P,parallelAgents:R,debateMode:x,debatePerspectives:M}}),Ce={__name:"Cowork",setup(Q,{expose:s}){s();const d=ce(),e=F(),T=u(""),h=u(null),f=u(!1),v=u(""),S=u(!1),A=u(!1),P={FileTextOutlined:ie,PlayCircleOutlined:re,BarChartOutlined:le,SearchOutlined:oe,PictureOutlined:ae,CodeOutlined:ne,DesktopOutlined:se,FolderOpenOutlined:te,GlobalOutlined:ee,ReadOutlined:$,SafetyCertificateOutlined:Y},R=["把 report.docx 转成 PDF","压缩视频到 50MB","分析 CSV 生成图表","查询今天的汇率","批量压缩图片","写一个自动化脚本"],x=H(()=>e.isLoading?"等待响应中...":d.selectedTemplate?d.selectedTemplate.examples?.[0]||"描述你的需求...":"描述你想完成的任务,Agent 会帮你搞定"),M=H(()=>d.currentAgentMessages);function D(m){return m==="APPROVE"?"green":m==="REJECT"?"red":m==="ERROR"?"default":"orange"}function t(m){return m.split(/[\\/]/).pop()||m}function _(m){f.value=!1;const I=m.dataTransfer?.files;if(I)for(const B of I)d.addFile(B.path||B.name)}function U(){const m=v.value.trim();m&&(d.addFile(m),v.value="")}async function q(){const m=T.value.trim();!m||e.isLoading||(T.value="",d.agentSessionId?await d.sendFollowUp(m):await d.execute(m))}function V(m){T.value=m,W(()=>q())}G([M,()=>d.currentStreaming],()=>{W(()=>{h.value&&(h.value.scrollTop=h.value.scrollHeight)})},{deep:!0}),X(()=>{e.loadSessions(),d.loadTemplates(),d.loadHistory()});const z={store:d,chatStore:e,inputText:T,messagesEl:h,isDragging:f,manualFilePath:v,hasInteracted:S,showHistory:A,iconMap:P,quickExamples:R,inputPlaceholder:x,agentMessages:M,verdictColor:D,basename:t,onDrop:_,addManualFile:U,send:q,quickStart:V,ref:u,computed:H,watch:G,nextTick:W,onMounted:X,get RocketOutlined(){return Se},get SendOutlined(){return Oe},get ThunderboltOutlined(){return we},get FolderOpenOutlined(){return te},get FileTextOutlined(){return ie},get PlayCircleOutlined(){return re},get BarChartOutlined(){return le},get SearchOutlined(){return oe},get PictureOutlined(){return ae},get CodeOutlined(){return ne},get DesktopOutlined(){return se},get GlobalOutlined(){return ee},get ReadOutlined(){return $},get ToolOutlined(){return ke},get HistoryOutlined(){return he},get SafetyCertificateOutlined(){return Y},get useCoworkStore(){return ce},get useChatStore(){return F},get renderMarkdown(){return ye}};return Object.defineProperty(z,"__isScriptSetup",{enumerable:!1,value:!0}),z}},Te={class:"cowork-root"},xe={class:"template-panel"},Me={class:"template-header"},Fe={class:"template-list"},Pe=["onClick"],Re={class:"card-icon"},De={class:"card-body"},Ee={class:"card-name"},Ae={class:"card-desc"},He={class:"card-icon"},Ie={class:"drop-text"},Le={key:0,class:"file-list"},Qe={key:1,class:"history-section"},Ue={key:0,class:"history-list"},qe={class:"history-summary"},ze={class:"history-meta"},Be={class:"exec-panel"},Ne={key:0,class:"empty-state"},Ve={class:"empty-icon"},Ke={class:"example-grid"},Je=["onClick"],We={class:"ready-state"},je={class:"ready-header"},Ge={class:"ready-name"},Ze={key:0,class:"parallel-toggle"},Xe={key:1,class:"parallel-hint"},Ye={class:"ready-examples"},$e=["onClick"],et={class:"messages-area",ref:"messagesEl"},tt={key:0,class:"tool-msg"},st={class:"tool-input"},nt={key:0,class:"tool-result-box"},at={class:"tool-result"},ot={class:"user-msg"},lt={class:"bubble user"},rt={class:"assistant-msg"},it=["innerHTML"],ct={key:0,class:"assistant-msg"},dt=["innerHTML"],ut={key:1,class:"question-card"},vt={class:"question-text"},mt={key:0,class:"question-choices"},pt={key:3,class:"debate-panel"},gt={class:"debate-verdict"},ft={class:"consensus"},_t=["innerHTML"],yt={key:4,class:"task-stats"},ht={class:"input-area"},kt={key:0,class:"input-context"},wt={class:"input-row"};function Ot(Q,s,d,e,T,h){const f=b("a-tag"),v=b("a-input"),S=b("a-switch"),A=b("a-input-number"),P=b("a-collapse-panel"),R=b("a-collapse"),x=b("a-button"),M=b("a-input-search"),D=b("a-textarea");return a(),l("div",Te,[o(" Left Panel: Templates "),n("div",xe,[n("div",Me,[p(e.RocketOutlined,{class:"header-icon"}),s[9]||(s[9]=n("span",{class:"header-title"},"日常协作",-1))]),s[11]||(s[11]=n("div",{class:"template-hint"},"选择任务类型,或直接输入需求",-1)),n("div",Fe,[(a(!0),l(w,null,C(e.store.templates,t=>(a(),l("div",{key:t.id,class:L(["template-card",{active:e.store.selectedTemplate?.id===t.id}]),onClick:_=>e.store.selectTemplate(t)},[n("div",Re,[(a(),O(J(e.iconMap[t.icon]||e.RocketOutlined)))]),n("div",De,[n("div",Ee,i(t.name),1),n("div",Ae,i(t.description),1)])],10,Pe))),128)),o(" Free mode card "),n("div",{class:L(["template-card free",{active:e.store.selectedTemplate===null&&e.hasInteracted}]),onClick:s[0]||(s[0]=t=>{e.store.selectTemplate(null),e.hasInteracted=!0})},[n("div",He,[p(e.ThunderboltOutlined)]),s[10]||(s[10]=n("div",{class:"card-body"},[n("div",{class:"card-name"},"自由提问"),n("div",{class:"card-desc"},"任意任务,Agent 自主完成")],-1))],2)]),o(" File drop zone "),e.store.selectedTemplate?.acceptsFiles!==!1?(a(),l("div",{key:0,class:L(["file-zone",{dragging:e.isDragging}]),onDragover:s[2]||(s[2]=K(t=>e.isDragging=!0,["prevent"])),onDragleave:s[3]||(s[3]=t=>e.isDragging=!1),onDrop:K(e.onDrop,["prevent"])},[p(e.FolderOpenOutlined,{class:"drop-icon"}),n("div",Ie,i(e.isDragging?"松开以添加文件":"拖拽文件到此处"),1),e.store.files.length?(a(),l("div",Le,[(a(!0),l(w,null,C(e.store.files,t=>(a(),O(f,{key:t,closable:"",onClose:_=>e.store.removeFile(t),class:"file-tag"},{default:g(()=>[y(i(e.basename(t)),1)]),_:2},1032,["onClose"]))),128))])):o("v-if",!0),p(v,{value:e.manualFilePath,"onUpdate:value":s[1]||(s[1]=t=>e.manualFilePath=t),placeholder:"或输入文件路径,按 Enter 添加",size:"small",class:"path-input",onPressEnter:e.addManualFile},null,8,["value"])],34)):o("v-if",!0),o(" History "),e.store.history.length?(a(),l("div",Qe,[n("div",{class:"history-header",onClick:s[4]||(s[4]=t=>e.showHistory=!e.showHistory)},[p(e.HistoryOutlined),y(" 历史记录 ("+i(e.store.history.length)+") ",1)]),e.showHistory?(a(),l("div",Ue,[(a(!0),l(w,null,C(e.store.history.slice().reverse().slice(0,20),(t,_)=>(a(),l("div",{key:_,class:L(["history-item",t.status])},[n("div",qe,i(t.userMessage),1),n("div",ze,[n("span",null,i(t.templateName||"自由模式"),1),n("span",null,i(t.status),1)])],2))),128))])):o("v-if",!0)])):o("v-if",!0)]),o(" Right Panel: Execution "),n("div",Be,[o(" Empty state "),!e.store.agentSessionId&&!e.store.selectedTemplate?(a(),l("div",Ne,[n("div",Ve,[p(e.RocketOutlined)]),s[12]||(s[12]=n("div",{class:"empty-title"},"选择一个任务模板开始",-1)),s[13]||(s[13]=n("div",{class:"empty-sub"},"或选择「自由提问」处理任何问题",-1)),n("div",Ke,[(a(),l(w,null,C(e.quickExamples,t=>n("div",{key:t,class:"example-chip",onClick:_=>e.quickStart(t)},i(t),9,Je)),64))])])):e.store.selectedTemplate&&!e.store.agentSessionId?(a(),l(w,{key:1},[o(" Template selected but not started "),n("div",We,[n("div",je,[(a(),O(J(e.iconMap[e.store.selectedTemplate.icon]||e.RocketOutlined),{class:"ready-icon"})),n("span",Ge,i(e.store.selectedTemplate.name),1)]),o(" Parallel mode toggle "),e.store.selectedTemplate.parallelStrategy&&e.store.selectedTemplate.parallelStrategy!=="none"?(a(),l("div",Ze,[p(S,{checked:e.store.parallelMode,"onUpdate:checked":s[5]||(s[5]=t=>e.store.parallelMode=t),size:"small"},null,8,["checked"]),s[14]||(s[14]=n("span",{class:"parallel-label"},"多 Agent 并行",-1)),e.store.parallelMode?(a(),O(A,{key:0,value:e.store.parallelAgents,"onUpdate:value":s[6]||(s[6]=t=>e.store.parallelAgents=t),min:2,max:10,size:"small",class:"agent-count"},null,8,["value"])):o("v-if",!0),e.store.parallelMode?(a(),l("span",Xe,"个 Agent")):o("v-if",!0)])):o("v-if",!0),n("div",Ye,[s[15]||(s[15]=n("div",{class:"example-label"},"试试这些:",-1)),(a(!0),l(w,null,C(e.store.selectedTemplate.examples,t=>(a(),l("div",{key:t,class:"example-chip",onClick:_=>e.quickStart(t)},i(t),9,$e))),128))])])],2112)):(a(),l(w,{key:2},[o(" Messages area (active session) "),n("div",et,[(a(!0),l(w,null,C(e.agentMessages,(t,_)=>(a(),l("div",{key:_,class:L(["message-row",t.role])},[o(" Tool call "),t.role==="tool"?(a(),l("div",tt,[p(R,{ghost:"",size:"small"},{default:g(()=>[p(P,{class:"tool-collapse"},{header:g(()=>[p(e.ToolOutlined),y(" "+i(t.tool)+" "+i(t.status==="running"?"(执行中...)":"✓"),1)]),default:g(()=>[n("pre",st,i(JSON.stringify(t.input,null,2)),1),t.result?(a(),l("div",nt,[n("pre",at,i(typeof t.result=="string"?t.result:JSON.stringify(t.result,null,2)),1)])):o("v-if",!0)]),_:2},1024)]),_:2},1024)])):t.role==="user"?(a(),l(w,{key:1},[o(" User "),n("div",ot,[n("div",lt,i(t.content),1)])],2112)):(a(),l(w,{key:2},[o(" Assistant "),n("div",rt,[s[17]||(s[17]=n("div",{class:"avatar"},"AI",-1)),n("div",{class:"bubble assistant",innerHTML:e.renderMarkdown(t.content)},null,8,it),t.content?.startsWith("Error:")&&!e.store.isRunning&&e.store.lastRequest?(a(),O(x,{key:0,size:"small",type:"link",onClick:s[7]||(s[7]=U=>e.store.retry())},{default:g(()=>[...s[16]||(s[16]=[y(" 重试 ",-1)])]),_:1})):o("v-if",!0)])],2112))],2))),128)),o(" Streaming "),e.store.currentStreaming?(a(),l("div",ct,[s[18]||(s[18]=n("div",{class:"avatar"},"AI",-1)),n("div",{class:"bubble assistant streaming",innerHTML:e.renderMarkdown(e.store.currentStreaming)},null,8,dt)])):o("v-if",!0),o(" Question "),e.store.currentQuestion?(a(),l("div",ut,[n("div",vt,i(e.store.currentQuestion.question),1),e.store.currentQuestion.choices?.length?(a(),l("div",mt,[(a(!0),l(w,null,C(e.store.currentQuestion.choices,t=>(a(),O(x,{key:t,size:"small",onClick:_=>e.store.answerQuestion(t)},{default:g(()=>[y(i(t),1)]),_:2},1032,["onClick"]))),128))])):(a(),O(M,{key:1,placeholder:"输入回答...","enter-button":"发送",style:{"margin-top":"10px"},onSearch:e.store.answerQuestion},null,8,["onSearch"]))])):o("v-if",!0)],512)],2112)),o(" Debate result panel "),e.store.result?.mode==="debate"&&!e.store.isRunning?(a(),l("div",pt,[n("div",gt,[p(f,{color:e.verdictColor(e.store.result.verdict)},{default:g(()=>[y(i(e.store.result.verdict),1)]),_:1},8,["color"]),n("span",ft,"共识 "+i(e.store.result.consensusScore||0)+"/100",1)]),p(R,{ghost:"",size:"small"},{default:g(()=>[(a(!0),l(w,null,C(e.store.result.reviews||[],(t,_)=>(a(),O(P,{key:_,class:"review-collapse"},{header:g(()=>[p(f,{color:e.verdictColor(t.verdict)},{default:g(()=>[y(i(t.verdict),1)]),_:2},1032,["color"]),y(" "+i(t.role),1)]),default:g(()=>[n("div",{class:"review-body",innerHTML:e.renderMarkdown(t.review)},null,8,_t)]),_:2},1024))),128))]),_:1})])):o("v-if",!0),o(" Task stats "),e.store.result&&!e.store.isRunning?(a(),l("div",yt,[e.store.result.mode==="debate"?(a(),O(f,{key:0,color:"magenta"},{default:g(()=>[...s[19]||(s[19]=[y("debate",-1)])]),_:1})):o("v-if",!0),e.store.result.parallel?(a(),O(f,{key:1,color:"purple"},{default:g(()=>[y(i(e.store.result.subtaskCount||0)+" subtasks",1)]),_:1})):o("v-if",!0),p(f,{color:"geekblue"},{default:g(()=>[y(i(e.store.result.iterationCount||0)+" iterations",1)]),_:1}),p(f,{color:"cyan"},{default:g(()=>[y("~"+i((e.store.result.tokenCount||0).toLocaleString())+" tokens",1)]),_:1}),e.store.result.toolsUsed?.length?(a(),O(f,{key:2,color:"green"},{default:g(()=>[y(i(e.store.result.toolsUsed.length)+" tools",1)]),_:1})):o("v-if",!0)])):o("v-if",!0),o(" Input area "),n("div",ht,[e.store.selectedTemplate?(a(),l("div",kt,[p(f,{color:"blue",class:"context-tag"},{default:g(()=>[(a(),O(J(e.iconMap[e.store.selectedTemplate.icon]||e.RocketOutlined))),y(" "+i(e.store.selectedTemplate.name),1)]),_:1}),(a(!0),l(w,null,C(e.store.files,t=>(a(),O(f,{key:t,class:"context-tag file"},{default:g(()=>[y(i(e.basename(t)),1)]),_:2},1024))),128))])):o("v-if",!0),n("div",wt,[p(D,{value:e.inputText,"onUpdate:value":s[8]||(s[8]=t=>e.inputText=t),placeholder:e.inputPlaceholder,"auto-size":{minRows:1,maxRows:6},disabled:e.chatStore.isLoading,class:"msg-input",onKeydown:fe(K(e.send,["exact","prevent"]),["enter"])},null,8,["value","placeholder","disabled","onKeydown"]),p(x,{type:"primary",loading:e.chatStore.isLoading,class:"send-btn",onClick:e.send},{icon:g(()=>[p(e.SendOutlined)]),_:1},8,["loading"])])])])])}const Ft=_e(Ce,[["render",Ot],["__scopeId","data-v-f506317d"],["__file","/tmp/cc-web-panel-aMJ4KB/repo/packages/web-panel/src/views/Cowork.vue"]]);export{Ft as default};
|
|
6
|
+
[用户提供的文件: ${d.value.join(", ")}]`),await c.sendMessage(v.value,k)}return{selectedTemplate:s,files:d,isRunning:e,steps:T,messages:h,result:f,agentSessionId:v,currentAgentMessages:B,currentStreaming:de,currentQuestion:ue,selectTemplate:t,reset:_,addFile:U,removeFile:q,execute:m,executeDirectWs:I,sendFollowUp:pe,answerQuestion:ve,loadTemplates:V,templates:Q,lastRequest:S,retry:me,history:E,loadHistory:z,parallelMode:P,parallelAgents:R,debateMode:x,debatePerspectives:M}}),Ce={__name:"Cowork",setup(Q,{expose:s}){s();const d=ce(),e=F(),T=u(""),h=u(null),f=u(!1),v=u(""),S=u(!1),E=u(!1),P={FileTextOutlined:ie,PlayCircleOutlined:re,BarChartOutlined:le,SearchOutlined:oe,PictureOutlined:ae,CodeOutlined:ne,DesktopOutlined:se,FolderOpenOutlined:te,GlobalOutlined:ee,ReadOutlined:$,SafetyCertificateOutlined:Y},R=["把 report.docx 转成 PDF","压缩视频到 50MB","分析 CSV 生成图表","查询今天的汇率","批量压缩图片","写一个自动化脚本"],x=H(()=>e.isLoading?"等待响应中...":d.selectedTemplate?d.selectedTemplate.examples?.[0]||"描述你的需求...":"描述你想完成的任务,Agent 会帮你搞定"),M=H(()=>d.currentAgentMessages);function D(m){return m==="APPROVE"?"green":m==="REJECT"?"red":m==="ERROR"?"default":"orange"}function t(m){return m.split(/[\\/]/).pop()||m}function _(m){f.value=!1;const I=m.dataTransfer?.files;if(I)for(const B of I)d.addFile(B.path||B.name)}function U(){const m=v.value.trim();m&&(d.addFile(m),v.value="")}async function q(){const m=T.value.trim();!m||e.isLoading||(T.value="",d.agentSessionId?await d.sendFollowUp(m):await d.execute(m))}function V(m){T.value=m,W(()=>q())}G([M,()=>d.currentStreaming],()=>{W(()=>{h.value&&(h.value.scrollTop=h.value.scrollHeight)})},{deep:!0}),X(()=>{e.loadSessions(),d.loadTemplates(),d.loadHistory()});const z={store:d,chatStore:e,inputText:T,messagesEl:h,isDragging:f,manualFilePath:v,hasInteracted:S,showHistory:E,iconMap:P,quickExamples:R,inputPlaceholder:x,agentMessages:M,verdictColor:D,basename:t,onDrop:_,addManualFile:U,send:q,quickStart:V,ref:u,computed:H,watch:G,nextTick:W,onMounted:X,get RocketOutlined(){return Se},get SendOutlined(){return Oe},get ThunderboltOutlined(){return we},get FolderOpenOutlined(){return te},get FileTextOutlined(){return ie},get PlayCircleOutlined(){return re},get BarChartOutlined(){return le},get SearchOutlined(){return oe},get PictureOutlined(){return ae},get CodeOutlined(){return ne},get DesktopOutlined(){return se},get GlobalOutlined(){return ee},get ReadOutlined(){return $},get ToolOutlined(){return ke},get HistoryOutlined(){return he},get SafetyCertificateOutlined(){return Y},get useCoworkStore(){return ce},get useChatStore(){return F},get renderMarkdown(){return ye}};return Object.defineProperty(z,"__isScriptSetup",{enumerable:!1,value:!0}),z}},Te={class:"cowork-root"},xe={class:"template-panel"},Me={class:"template-header"},Fe={class:"template-list"},Pe=["onClick"],Re={class:"card-icon"},De={class:"card-body"},Ae={class:"card-name"},Ee={class:"card-desc"},He={class:"card-icon"},Ie={class:"drop-text"},Le={key:0,class:"file-list"},Qe={key:1,class:"history-section"},Ue={key:0,class:"history-list"},qe={class:"history-summary"},ze={class:"history-meta"},Be={class:"exec-panel"},Ne={key:0,class:"empty-state"},Ve={class:"empty-icon"},Ke={class:"example-grid"},Je=["onClick"],We={class:"ready-state"},je={class:"ready-header"},Ge={class:"ready-name"},Ze={key:0,class:"parallel-toggle"},Xe={key:1,class:"parallel-hint"},Ye={class:"ready-examples"},$e=["onClick"],et={class:"messages-area",ref:"messagesEl"},tt={key:0,class:"tool-msg"},st={class:"tool-input"},nt={key:0,class:"tool-result-box"},at={class:"tool-result"},ot={class:"user-msg"},lt={class:"bubble user"},rt={class:"assistant-msg"},it=["innerHTML"],ct={key:0,class:"assistant-msg"},dt=["innerHTML"],ut={key:1,class:"question-card"},vt={class:"question-text"},mt={key:0,class:"question-choices"},pt={key:3,class:"debate-panel"},gt={class:"debate-verdict"},ft={class:"consensus"},_t=["innerHTML"],yt={key:4,class:"task-stats"},ht={class:"input-area"},kt={key:0,class:"input-context"},wt={class:"input-row"};function Ot(Q,s,d,e,T,h){const f=b("a-tag"),v=b("a-input"),S=b("a-switch"),E=b("a-input-number"),P=b("a-collapse-panel"),R=b("a-collapse"),x=b("a-button"),M=b("a-input-search"),D=b("a-textarea");return a(),l("div",Te,[o(" Left Panel: Templates "),n("div",xe,[n("div",Me,[p(e.RocketOutlined,{class:"header-icon"}),s[9]||(s[9]=n("span",{class:"header-title"},"日常协作",-1))]),s[11]||(s[11]=n("div",{class:"template-hint"},"选择任务类型,或直接输入需求",-1)),n("div",Fe,[(a(!0),l(w,null,C(e.store.templates,t=>(a(),l("div",{key:t.id,class:L(["template-card",{active:e.store.selectedTemplate?.id===t.id}]),onClick:_=>e.store.selectTemplate(t)},[n("div",Re,[(a(),O(J(e.iconMap[t.icon]||e.RocketOutlined)))]),n("div",De,[n("div",Ae,i(t.name),1),n("div",Ee,i(t.description),1)])],10,Pe))),128)),o(" Free mode card "),n("div",{class:L(["template-card free",{active:e.store.selectedTemplate===null&&e.hasInteracted}]),onClick:s[0]||(s[0]=t=>{e.store.selectTemplate(null),e.hasInteracted=!0})},[n("div",He,[p(e.ThunderboltOutlined)]),s[10]||(s[10]=n("div",{class:"card-body"},[n("div",{class:"card-name"},"自由提问"),n("div",{class:"card-desc"},"任意任务,Agent 自主完成")],-1))],2)]),o(" File drop zone "),e.store.selectedTemplate?.acceptsFiles!==!1?(a(),l("div",{key:0,class:L(["file-zone",{dragging:e.isDragging}]),onDragover:s[2]||(s[2]=K(t=>e.isDragging=!0,["prevent"])),onDragleave:s[3]||(s[3]=t=>e.isDragging=!1),onDrop:K(e.onDrop,["prevent"])},[p(e.FolderOpenOutlined,{class:"drop-icon"}),n("div",Ie,i(e.isDragging?"松开以添加文件":"拖拽文件到此处"),1),e.store.files.length?(a(),l("div",Le,[(a(!0),l(w,null,C(e.store.files,t=>(a(),O(f,{key:t,closable:"",onClose:_=>e.store.removeFile(t),class:"file-tag"},{default:g(()=>[y(i(e.basename(t)),1)]),_:2},1032,["onClose"]))),128))])):o("v-if",!0),p(v,{value:e.manualFilePath,"onUpdate:value":s[1]||(s[1]=t=>e.manualFilePath=t),placeholder:"或输入文件路径,按 Enter 添加",size:"small",class:"path-input",onPressEnter:e.addManualFile},null,8,["value"])],34)):o("v-if",!0),o(" History "),e.store.history.length?(a(),l("div",Qe,[n("div",{class:"history-header",onClick:s[4]||(s[4]=t=>e.showHistory=!e.showHistory)},[p(e.HistoryOutlined),y(" 历史记录 ("+i(e.store.history.length)+") ",1)]),e.showHistory?(a(),l("div",Ue,[(a(!0),l(w,null,C(e.store.history.slice().reverse().slice(0,20),(t,_)=>(a(),l("div",{key:_,class:L(["history-item",t.status])},[n("div",qe,i(t.userMessage),1),n("div",ze,[n("span",null,i(t.templateName||"自由模式"),1),n("span",null,i(t.status),1)])],2))),128))])):o("v-if",!0)])):o("v-if",!0)]),o(" Right Panel: Execution "),n("div",Be,[o(" Empty state "),!e.store.agentSessionId&&!e.store.selectedTemplate?(a(),l("div",Ne,[n("div",Ve,[p(e.RocketOutlined)]),s[12]||(s[12]=n("div",{class:"empty-title"},"选择一个任务模板开始",-1)),s[13]||(s[13]=n("div",{class:"empty-sub"},"或选择「自由提问」处理任何问题",-1)),n("div",Ke,[(a(),l(w,null,C(e.quickExamples,t=>n("div",{key:t,class:"example-chip",onClick:_=>e.quickStart(t)},i(t),9,Je)),64))])])):e.store.selectedTemplate&&!e.store.agentSessionId?(a(),l(w,{key:1},[o(" Template selected but not started "),n("div",We,[n("div",je,[(a(),O(J(e.iconMap[e.store.selectedTemplate.icon]||e.RocketOutlined),{class:"ready-icon"})),n("span",Ge,i(e.store.selectedTemplate.name),1)]),o(" Parallel mode toggle "),e.store.selectedTemplate.parallelStrategy&&e.store.selectedTemplate.parallelStrategy!=="none"?(a(),l("div",Ze,[p(S,{checked:e.store.parallelMode,"onUpdate:checked":s[5]||(s[5]=t=>e.store.parallelMode=t),size:"small"},null,8,["checked"]),s[14]||(s[14]=n("span",{class:"parallel-label"},"多 Agent 并行",-1)),e.store.parallelMode?(a(),O(E,{key:0,value:e.store.parallelAgents,"onUpdate:value":s[6]||(s[6]=t=>e.store.parallelAgents=t),min:2,max:10,size:"small",class:"agent-count"},null,8,["value"])):o("v-if",!0),e.store.parallelMode?(a(),l("span",Xe,"个 Agent")):o("v-if",!0)])):o("v-if",!0),n("div",Ye,[s[15]||(s[15]=n("div",{class:"example-label"},"试试这些:",-1)),(a(!0),l(w,null,C(e.store.selectedTemplate.examples,t=>(a(),l("div",{key:t,class:"example-chip",onClick:_=>e.quickStart(t)},i(t),9,$e))),128))])])],2112)):(a(),l(w,{key:2},[o(" Messages area (active session) "),n("div",et,[(a(!0),l(w,null,C(e.agentMessages,(t,_)=>(a(),l("div",{key:_,class:L(["message-row",t.role])},[o(" Tool call "),t.role==="tool"?(a(),l("div",tt,[p(R,{ghost:"",size:"small"},{default:g(()=>[p(P,{class:"tool-collapse"},{header:g(()=>[p(e.ToolOutlined),y(" "+i(t.tool)+" "+i(t.status==="running"?"(执行中...)":"✓"),1)]),default:g(()=>[n("pre",st,i(JSON.stringify(t.input,null,2)),1),t.result?(a(),l("div",nt,[n("pre",at,i(typeof t.result=="string"?t.result:JSON.stringify(t.result,null,2)),1)])):o("v-if",!0)]),_:2},1024)]),_:2},1024)])):t.role==="user"?(a(),l(w,{key:1},[o(" User "),n("div",ot,[n("div",lt,i(t.content),1)])],2112)):(a(),l(w,{key:2},[o(" Assistant "),n("div",rt,[s[17]||(s[17]=n("div",{class:"avatar"},"AI",-1)),n("div",{class:"bubble assistant",innerHTML:e.renderMarkdown(t.content)},null,8,it),t.content?.startsWith("Error:")&&!e.store.isRunning&&e.store.lastRequest?(a(),O(x,{key:0,size:"small",type:"link",onClick:s[7]||(s[7]=U=>e.store.retry())},{default:g(()=>[...s[16]||(s[16]=[y(" 重试 ",-1)])]),_:1})):o("v-if",!0)])],2112))],2))),128)),o(" Streaming "),e.store.currentStreaming?(a(),l("div",ct,[s[18]||(s[18]=n("div",{class:"avatar"},"AI",-1)),n("div",{class:"bubble assistant streaming",innerHTML:e.renderMarkdown(e.store.currentStreaming)},null,8,dt)])):o("v-if",!0),o(" Question "),e.store.currentQuestion?(a(),l("div",ut,[n("div",vt,i(e.store.currentQuestion.question),1),e.store.currentQuestion.choices?.length?(a(),l("div",mt,[(a(!0),l(w,null,C(e.store.currentQuestion.choices,t=>(a(),O(x,{key:t,size:"small",onClick:_=>e.store.answerQuestion(t)},{default:g(()=>[y(i(t),1)]),_:2},1032,["onClick"]))),128))])):(a(),O(M,{key:1,placeholder:"输入回答...","enter-button":"发送",style:{"margin-top":"10px"},onSearch:e.store.answerQuestion},null,8,["onSearch"]))])):o("v-if",!0)],512)],2112)),o(" Debate result panel "),e.store.result?.mode==="debate"&&!e.store.isRunning?(a(),l("div",pt,[n("div",gt,[p(f,{color:e.verdictColor(e.store.result.verdict)},{default:g(()=>[y(i(e.store.result.verdict),1)]),_:1},8,["color"]),n("span",ft,"共识 "+i(e.store.result.consensusScore||0)+"/100",1)]),p(R,{ghost:"",size:"small"},{default:g(()=>[(a(!0),l(w,null,C(e.store.result.reviews||[],(t,_)=>(a(),O(P,{key:_,class:"review-collapse"},{header:g(()=>[p(f,{color:e.verdictColor(t.verdict)},{default:g(()=>[y(i(t.verdict),1)]),_:2},1032,["color"]),y(" "+i(t.role),1)]),default:g(()=>[n("div",{class:"review-body",innerHTML:e.renderMarkdown(t.review)},null,8,_t)]),_:2},1024))),128))]),_:1})])):o("v-if",!0),o(" Task stats "),e.store.result&&!e.store.isRunning?(a(),l("div",yt,[e.store.result.mode==="debate"?(a(),O(f,{key:0,color:"magenta"},{default:g(()=>[...s[19]||(s[19]=[y("debate",-1)])]),_:1})):o("v-if",!0),e.store.result.parallel?(a(),O(f,{key:1,color:"purple"},{default:g(()=>[y(i(e.store.result.subtaskCount||0)+" subtasks",1)]),_:1})):o("v-if",!0),p(f,{color:"geekblue"},{default:g(()=>[y(i(e.store.result.iterationCount||0)+" iterations",1)]),_:1}),p(f,{color:"cyan"},{default:g(()=>[y("~"+i((e.store.result.tokenCount||0).toLocaleString())+" tokens",1)]),_:1}),e.store.result.toolsUsed?.length?(a(),O(f,{key:2,color:"green"},{default:g(()=>[y(i(e.store.result.toolsUsed.length)+" tools",1)]),_:1})):o("v-if",!0)])):o("v-if",!0),o(" Input area "),n("div",ht,[e.store.selectedTemplate?(a(),l("div",kt,[p(f,{color:"blue",class:"context-tag"},{default:g(()=>[(a(),O(J(e.iconMap[e.store.selectedTemplate.icon]||e.RocketOutlined))),y(" "+i(e.store.selectedTemplate.name),1)]),_:1}),(a(!0),l(w,null,C(e.store.files,t=>(a(),O(f,{key:t,class:"context-tag file"},{default:g(()=>[y(i(e.basename(t)),1)]),_:2},1024))),128))])):o("v-if",!0),n("div",wt,[p(D,{value:e.inputText,"onUpdate:value":s[8]||(s[8]=t=>e.inputText=t),placeholder:e.inputPlaceholder,"auto-size":{minRows:1,maxRows:6},disabled:e.chatStore.isLoading,class:"msg-input",onKeydown:fe(K(e.send,["exact","prevent"]),["enter"])},null,8,["value","placeholder","disabled","onKeydown"]),p(x,{type:"primary",loading:e.chatStore.isLoading,class:"send-btn",onClick:e.send},{icon:g(()=>[p(e.SendOutlined)]),_:1},8,["loading"])])])])])}const Ft=_e(Ce,[["render",Ot],["__scopeId","data-v-f506317d"],["__file","/tmp/cc-web-panel-gA2tfF/repo/packages/web-panel/src/views/Cowork.vue"]]);export{Ft as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{I as r,J as h,U as p,R as c,c as n,K as t,V as k,o as
|
|
2
|
-
`);for(const H of C){const z=H.trim();if(!z||z.startsWith("─"))continue;const E=z.match(/^([^\t|]+?)[\t|]+([*\d/,\-?LW#\s]+)[\t|]+/);E&&l.push({key:l.length,name:E[1].trim(),cron:E[2].trim(),enabled:!z.toLowerCase().includes("pause")&&!z.toLowerCase().includes("disabled"),description:"",running:!1})}return l}function T(a){u.value.cron=a.cron,d.value=!0}async function y(){if(!u.value.name||!u.value.cron){_.warning(o("cron.messages.nameAndCronRequired"));return}S.value=!0;try{const a=`skill run cron-scheduler "add task: ${u.value.name}, schedule: ${u.value.cron}, payload: ${u.value.payload||"ping"}"`;await e.execute(a,2e4),_.success(o("cron.messages.createOk")),d.value=!1,u.value={name:"",cron:"",payload:"",description:"",enabled:!0},await w()}catch(a){_.error(o("cron.messages.createFailed",{err:a.message}))}finally{S.value=!1}}async function
|
|
1
|
+
import{I as r,J as h,U as p,R as c,c as n,K as t,V as k,o as N,b as O,r as x,P as m,Q as v,F as W,Z as D,S as A}from"./vendor-BvqAck49.js";import{_ as J,b as I,u as M,d as _}from"./index-Cops66s2.js";import{a0 as K,R as Q,as as Z}from"./icons-DP3uiYxy.js";const G={__name:"Cron",setup(j,{expose:s}){s();const{t:o}=I(),e=M(),P=x(!1),S=x(!1),d=x(!1),i=x([]),b=O(()=>i.value.filter(a=>a.enabled).length),f=O(()=>i.value.filter(a=>!a.enabled).length),g=[{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 * *"}],F=O(()=>g.map(a=>({...a,label:o(`cron.presets.${a.key}`)}))),u=x({name:"",cron:"",payload:"",description:"",enabled:!0}),U=O(()=>[{title:o("cron.columns.name"),key:"name",width:"25%"},{title:o("cron.columns.cron"),key:"cron",width:"20%"},{title:o("cron.columns.status"),key:"status",width:"15%"},{title:o("cron.columns.actions"),key:"actions",width:"20%"}]);async function w(){P.value=!0;try{const{output:a}=await e.execute('skill run cron-scheduler "list all scheduled tasks"',2e4);i.value=L(a)}catch{i.value=[]}finally{P.value=!1}}function L(a){const l=[],C=a.split(`
|
|
2
|
+
`);for(const H of C){const z=H.trim();if(!z||z.startsWith("─"))continue;const E=z.match(/^([^\t|]+?)[\t|]+([*\d/,\-?LW#\s]+)[\t|]+/);E&&l.push({key:l.length,name:E[1].trim(),cron:E[2].trim(),enabled:!z.toLowerCase().includes("pause")&&!z.toLowerCase().includes("disabled"),description:"",running:!1})}return l}function T(a){u.value.cron=a.cron,d.value=!0}async function y(){if(!u.value.name||!u.value.cron){_.warning(o("cron.messages.nameAndCronRequired"));return}S.value=!0;try{const a=`skill run cron-scheduler "add task: ${u.value.name}, schedule: ${u.value.cron}, payload: ${u.value.payload||"ping"}"`;await e.execute(a,2e4),_.success(o("cron.messages.createOk")),d.value=!1,u.value={name:"",cron:"",payload:"",description:"",enabled:!0},await w()}catch(a){_.error(o("cron.messages.createFailed",{err:a.message}))}finally{S.value=!1}}async function V(a){a.running=!0;try{await e.execute(`skill run cron-scheduler "run task: ${a.name}"`,3e4),_.success(o("cron.messages.runOk",{name:a.name}))}catch(l){_.error(o("cron.messages.runFailed",{err:l.message}))}finally{a.running=!1}}async function q(a){const l=a.enabled?"pause":"enable";try{await e.execute(`skill run cron-scheduler "${l} task: ${a.name}"`,1e4),a.enabled=!a.enabled,_.success(a.enabled?o("cron.messages.toggleEnabled"):o("cron.messages.togglePaused"))}catch{_.error(o("cron.messages.toggleFailed"))}}async function B(a){try{await e.execute(`skill run cron-scheduler "delete task: ${a.name}"`,1e4),i.value=i.value.filter(l=>l.key!==a.key),_.success(o("cron.messages.deleteOk"))}catch{_.error(o("cron.messages.deleteFailed"))}}N(w);const R={t:o,ws:e,loading:P,adding:S,showAdd:d,tasks:i,activeTasks:b,pausedTasks:f,PRESETS:g,presets:F,newTask:u,columns:U,loadTasks:w,parseTasks:L,applyPreset:T,addTask:y,runTask:V,toggleTask:q,deleteTask:B,ref:x,computed:O,onMounted:N,get useI18n(){return I},get PlusOutlined(){return Z},get ReloadOutlined(){return Q},get ClockCircleOutlined(){return K},get message(){return _},get useWsStore(){return M}};return Object.defineProperty(R,"__isScriptSetup",{enumerable:!1,value:!0}),R}},X={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},Y={class:"page-title"},$={class:"page-sub"},ee={key:0,style:{"text-align":"center",padding:"40px"}},ae={style:{color:"#e0e0e0","font-weight":"500"}},ne={key:0,style:{color:"var(--text-secondary)","font-size":"11px"}},te={key:1,style:{background:"var(--bg-card-hover)",padding:"2px 6px","border-radius":"3px",color:"#91caff","font-size":"11px"}},le={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},oe={style:{color:"var(--text-secondary)","font-size":"11px","margin-top":"4px"}};function se(j,s,o,e,P,S){const d=r("a-button"),i=r("a-space"),b=r("a-statistic"),f=r("a-card"),g=r("a-col"),F=r("a-row"),u=r("a-spin"),U=r("a-badge"),w=r("a-popconfirm"),L=r("a-table"),T=r("a-input"),y=r("a-form-item"),V=r("a-textarea"),q=r("a-switch"),B=r("a-form"),R=r("a-modal");return m(),h("div",null,[p("div",X,[p("div",null,[p("h2",Y,c(e.t("cron.title")),1),p("p",$,c(e.t("cron.subtitle")),1)]),n(i,null,{default:t(()=>[n(d,{onClick:s[0]||(s[0]=a=>e.showAdd=!0),type:"primary"},{icon:t(()=>[n(e.PlusOutlined)]),default:t(()=>[v(" "+c(e.t("cron.newTask")),1)]),_:1}),n(d,{ghost:"",loading:e.loading,onClick:e.loadTasks},{icon:t(()=>[n(e.ReloadOutlined)]),default:t(()=>[v(" "+c(e.t("cron.refresh")),1)]),_:1},8,["loading"])]),_:1})]),k(" Stats Row "),n(F,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:t(()=>[n(g,{xs:12,sm:6},{default:t(()=>[n(f,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"},size:"small"},{default:t(()=>[n(b,{title:e.t("cron.stats.all"),value:e.tasks.length,"value-style":"color: #ccc; font-size: 18px;"},null,8,["title","value"])]),_:1})]),_:1}),n(g,{xs:12,sm:6},{default:t(()=>[n(f,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"},size:"small"},{default:t(()=>[n(b,{title:e.t("cron.stats.active"),value:e.activeTasks,"value-style":"color: #52c41a; font-size: 18px;"},null,8,["title","value"])]),_:1})]),_:1}),n(g,{xs:12,sm:6},{default:t(()=>[n(f,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"},size:"small"},{default:t(()=>[n(b,{title:e.t("cron.stats.paused"),value:e.pausedTasks,"value-style":"color: #faad14; font-size: 18px;"},null,8,["title","value"])]),_:1})]),_:1}),n(g,{xs:12,sm:6},{default:t(()=>[n(f,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"},size:"small"},{default:t(()=>[n(b,{title:e.t("cron.stats.presets"),value:e.presets.length,"value-style":"color: #1677ff; font-size: 18px;"},null,8,["title","value"])]),_:1})]),_:1})]),_:1}),k(" Presets "),n(f,{title:e.t("cron.presetsCardTitle"),style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"16px"},size:"small"},{default:t(()=>[n(i,{wrap:""},{default:t(()=>[(m(!0),h(W,null,D(e.presets,a=>(m(),A(d,{key:a.key,size:"small",style:{background:"var(--bg-card-hover)","border-color":"var(--border-color)","font-size":"12px"},onClick:l=>e.applyPreset(a)},{default:t(()=>[v(c(a.label),1)]),_:2},1032,["onClick"]))),128))]),_:1})]),_:1},8,["title"]),k(" Tasks Table "),n(f,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[e.loading?(m(),h("div",ee,[n(u,{size:"large"})])):(m(),A(L,{key:1,columns:e.columns,"data-source":e.tasks,pagination:{pageSize:15},size:"small"},{bodyCell:t(({column:a,record:l})=>[a.key==="name"?(m(),h(W,{key:0},[p("div",ae,c(l.name),1),l.description?(m(),h("div",ne,c(l.description),1)):k("v-if",!0)],64)):k("v-if",!0),a.key==="cron"?(m(),h("code",te,c(l.cron),1)):k("v-if",!0),a.key==="status"?(m(),A(U,{key:2,status:l.enabled?"success":"warning",text:l.enabled?e.t("cron.running"):e.t("cron.paused")},null,8,["status","text"])):k("v-if",!0),a.key==="actions"?(m(),A(i,{key:3,size:"small"},{default:t(()=>[n(d,{size:"small",type:"link",loading:l.running,onClick:C=>e.runTask(l)},{default:t(()=>[v(c(e.t("cron.actions.run")),1)]),_:1},8,["loading","onClick"]),n(d,{size:"small",type:"link",onClick:C=>e.toggleTask(l)},{default:t(()=>[v(c(l.enabled?e.t("cron.actions.pause"):e.t("cron.actions.enable")),1)]),_:2},1032,["onClick"]),n(w,{title:e.t("cron.actions.deleteConfirm"),onConfirm:C=>e.deleteTask(l)},{default:t(()=>[n(d,{size:"small",type:"link",danger:""},{default:t(()=>[v(c(e.t("cron.actions.delete")),1)]),_:1})]),_:1},8,["title","onConfirm"])]),_:2},1024)):k("v-if",!0)]),emptyText:t(()=>[p("div",le,[n(e.ClockCircleOutlined,{style:{"font-size":"36px","margin-bottom":"12px",display:"block"}}),v(" "+c(e.t("cron.emptyText")),1)])]),_:1},8,["columns","data-source"]))]),_:1}),k(" Add Task Modal "),n(R,{open:e.showAdd,"onUpdate:open":s[6]||(s[6]=a=>e.showAdd=a),title:e.t("cron.modal.title"),"confirm-loading":e.adding,onOk:e.addTask,width:"520px"},{default:t(()=>[n(B,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:t(()=>[n(y,{label:e.t("cron.modal.nameLabel"),required:""},{default:t(()=>[n(T,{value:e.newTask.name,"onUpdate:value":s[1]||(s[1]=a=>e.newTask.name=a),placeholder:e.t("cron.modal.namePlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),n(y,{label:e.t("cron.modal.cronLabel"),required:""},{default:t(()=>[n(T,{value:e.newTask.cron,"onUpdate:value":s[2]||(s[2]=a=>e.newTask.cron=a),placeholder:e.t("cron.modal.cronPlaceholder")},null,8,["value","placeholder"]),p("div",oe,c(e.t("cron.modal.cronHint")),1)]),_:1},8,["label"]),n(y,{label:e.t("cron.modal.payloadLabel"),required:""},{default:t(()=>[n(V,{value:e.newTask.payload,"onUpdate:value":s[3]||(s[3]=a=>e.newTask.payload=a),rows:3,placeholder:e.t("cron.modal.payloadPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),n(y,{label:e.t("cron.modal.descriptionLabel")},{default:t(()=>[n(T,{value:e.newTask.description,"onUpdate:value":s[4]||(s[4]=a=>e.newTask.description=a),placeholder:e.t("cron.modal.descriptionPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),n(y,{label:e.t("cron.modal.enabledLabel")},{default:t(()=>[n(q,{checked:e.newTask.enabled,"onUpdate:checked":s[5]||(s[5]=a=>e.newTask.enabled=a)},null,8,["checked"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading"])])}const de=J(G,[["render",se],["__file","/tmp/cc-web-panel-gA2tfF/repo/packages/web-panel/src/views/Cron.vue"]]);export{de as default};
|