chainlesschain 0.166.142 → 0.166.143
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +107 -2
- package/package.json +2 -2
- package/src/assets/linux-subreaper/linux-arm64/manifest.json +1 -1
- package/src/assets/linux-subreaper/linux-x64/manifest.json +1 -1
- package/src/assets/web-panel/assets/{AIOps-BefmcZw2.js → AIOps-DNySV2Kf.js} +1 -1
- package/src/assets/web-panel/assets/{ActionButton-BBlS9rmj.js → ActionButton-ByFuxJsa.js} +1 -1
- package/src/assets/web-panel/assets/{Analytics-DfNjXT9e.js → Analytics-ETbdywk5.js} +1 -1
- package/src/assets/web-panel/assets/{AppLayout-CIBZPPMS.js → AppLayout-CuHekZaP.js} +2 -2
- package/src/assets/web-panel/assets/{Artifacts-CE66rTTZ.js → Artifacts-BJJq2BDq.js} +1 -1
- package/src/assets/web-panel/assets/{Audit-DOC8Lt8U.js → Audit-DXrietv8.js} +1 -1
- package/src/assets/web-panel/assets/{BackgroundAgents-9TMG041Q.js → BackgroundAgents-CFB1fxsr.js} +1 -1
- package/src/assets/web-panel/assets/{Backup-us3KWb9F.js → Backup-VLtflRmp.js} +1 -1
- package/src/assets/web-panel/assets/{BaseInput-D6Q95Wr5.js → BaseInput-BbqBaS2r.js} +1 -1
- package/src/assets/web-panel/assets/{Chat-BPrM5ARp.js → Chat-t0g7BXL8.js} +1 -1
- package/src/assets/web-panel/assets/{ChatBubbleRenderer-Drs9vSc4.js → ChatBubbleRenderer-JNFsjV0j.js} +1 -1
- package/src/assets/web-panel/assets/{Checkbox-DqZGMV0o.js → Checkbox-BCSclHQb.js} +1 -1
- package/src/assets/web-panel/assets/{Codegen-CmolL6wr.js → Codegen-BcyINEHT.js} +1 -1
- package/src/assets/web-panel/assets/{Col-BwHSmoYQ.js → Col-C-0WNlwS.js} +1 -1
- package/src/assets/web-panel/assets/{Community-DGWqobpd.js → Community-DxZeoORX.js} +1 -1
- package/src/assets/web-panel/assets/{Compact-t_yy09-r.js → Compact-BNnX4jpz.js} +1 -1
- package/src/assets/web-panel/assets/{Compliance-D0S8-EsN.js → Compliance-KnjHtn9C.js} +1 -1
- package/src/assets/web-panel/assets/{Cowork-Y1LiuRwP.js → Cowork-CDyCrhbX.js} +1 -1
- package/src/assets/web-panel/assets/{Cron-FTqEw7QV.js → Cron-DxpS3D1G.js} +1 -1
- package/src/assets/web-panel/assets/{Crosschain-C3rPZ4Qu.js → Crosschain-BSzTZYyc.js} +1 -1
- package/src/assets/web-panel/assets/{DID-Ba2zySM-.js → DID-Bfj9Vdne.js} +1 -1
- package/src/assets/web-panel/assets/{Dashboard-D6xyN2ND.js → Dashboard-CcERVdgo.js} +2 -2
- package/src/assets/web-panel/assets/{Dropdown-BF4QuXJw.js → Dropdown-BtYXAz6E.js} +1 -1
- package/src/assets/web-panel/assets/{EmailListRenderer-s9dUxq14.js → EmailListRenderer-fdCMeGXU.js} +1 -1
- package/src/assets/web-panel/assets/{EvolutionSettings-CoAKOfqZ.js → EvolutionSettings-LHxhcuF2.js} +1 -1
- package/src/assets/web-panel/assets/{FamilyGuardDashboard-CEznwH1c.js → FamilyGuardDashboard-MIgtLsos.js} +1 -1
- package/src/assets/web-panel/assets/{Federation-rIzOt8-a.js → Federation-9-TOztwa.js} +1 -1
- package/src/assets/web-panel/assets/{FormItemContext-BARFiExr.js → FormItemContext-BKcwEE6w.js} +1 -1
- package/src/assets/web-panel/assets/{GenericCardRenderer-DI0A4swS.js → GenericCardRenderer-DJBPVUK2.js} +1 -1
- package/src/assets/web-panel/assets/{Git-DdmysND4.js → Git-C_XYISjG.js} +1 -1
- package/src/assets/web-panel/assets/{Governance-DrdhwUz2.js → Governance-DWsbPrwq.js} +1 -1
- package/src/assets/web-panel/assets/{Inference-Scm8tumd.js → Inference-D0_bYket.js} +1 -1
- package/src/assets/web-panel/assets/{KnowledgeGraph-_6bgPs4W.js → KnowledgeGraph-BoA3VQlw.js} +1 -1
- package/src/assets/web-panel/assets/{Logs-DW_v7bSo.js → Logs-LEGItChf.js} +1 -1
- package/src/assets/web-panel/assets/{MarkdownRenderer-7JABuv1j.js → MarkdownRenderer-DOHVc-Uw.js} +1 -1
- package/src/assets/web-panel/assets/{Marketplace-0h3YSvME.js → Marketplace-BKovl9NH.js} +1 -1
- package/src/assets/web-panel/assets/{McpTools-Byrg0Y3e.js → McpTools-D61ktoGb.js} +1 -1
- package/src/assets/web-panel/assets/{Memory-Cyoq-o29.js → Memory-CllorS0l.js} +1 -1
- package/src/assets/web-panel/assets/{MobileBridge-ISIlploU.js → MobileBridge-D-dJ78bk.js} +1 -1
- package/src/assets/web-panel/assets/{MobileProjects-04EncaRx.js → MobileProjects-CaxMKkd3.js} +1 -1
- package/src/assets/web-panel/assets/{Mtc-BMzkpyOF.js → Mtc-qEc62Qsx.js} +1 -1
- package/src/assets/web-panel/assets/{MtcAudit-Cx7BR5sz.js → MtcAudit-BY68jOZJ.js} +1 -1
- package/src/assets/web-panel/assets/{Multisig-D4pmkSX4.js → Multisig-eCCR8ELt.js} +1 -1
- package/src/assets/web-panel/assets/{NLProgramming-CCfaaWNu.js → NLProgramming-VtGv8pky.js} +1 -1
- package/src/assets/web-panel/assets/{Notes-Mq-1ZyaH.js → Notes-CPkYQySe.js} +1 -1
- package/src/assets/web-panel/assets/{NotificationSettings-rzf5V1TR.js → NotificationSettings-BuAvlHUu.js} +1 -1
- package/src/assets/web-panel/assets/{OrderTableRenderer-OREUs5ue.js → OrderTableRenderer-CLf_HAGv.js} +1 -1
- package/src/assets/web-panel/assets/{Organization-BQfOATgw.js → Organization-DjujhMbD.js} +1 -1
- package/src/assets/web-panel/assets/{Overflow-D7Pa6aaA.js → Overflow-RznznTS4.js} +1 -1
- package/src/assets/web-panel/assets/{P2P-CaJ79ZsC.js → P2P-DSa5ot0t.js} +1 -1
- package/src/assets/web-panel/assets/{PdhVaultBrowser-CtimQQN3.js → PdhVaultBrowser-oSEh6vkf.js} +2 -2
- package/src/assets/web-panel/assets/{Permissions-AzmmkLZ0.js → Permissions-CdOZguX9.js} +1 -1
- package/src/assets/web-panel/assets/{PersonalDataHub-BRU8ME7z.js → PersonalDataHub-B4--6iEF.js} +1 -1
- package/src/assets/web-panel/assets/{Pipeline-BnNqutXh.js → Pipeline-BnI57jE8.js} +1 -1
- package/src/assets/web-panel/assets/{Privacy-gMyZcxsz.js → Privacy-C8MId3ad.js} +1 -1
- package/src/assets/web-panel/assets/{ProjectInit-CkK-Fvr0.js → ProjectInit-DPGyYO8a.js} +1 -1
- package/src/assets/web-panel/assets/{ProjectSettings-CGY_uiIX.js → ProjectSettings-qBMqaJaO.js} +1 -1
- package/src/assets/web-panel/assets/{Projects-DBNC7xXG.js → Projects-Bq87Syce.js} +1 -1
- package/src/assets/web-panel/assets/{Providers-BVgWawtE.js → Providers-CVuG9Ugf.js} +1 -1
- package/src/assets/web-panel/assets/{QrScannerModal-DZILESCa.js → QrScannerModal-C94c8m3q.js} +1 -1
- package/src/assets/web-panel/assets/{QuickAsk-DwRBzFWW.js → QuickAsk-BvfsXZ8s.js} +1 -1
- package/src/assets/web-panel/assets/{Recommend-B3VxvUih.js → Recommend-CoezBYH9.js} +1 -1
- package/src/assets/web-panel/assets/{RemoteSession-DM74lufU.js → RemoteSession-CcYC4v3u.js} +1 -1
- package/src/assets/web-panel/assets/{Reputation-DOOEuGHh.js → Reputation-diDbL4cO.js} +1 -1
- package/src/assets/web-panel/assets/{Row-BZJYAo0S.js → Row-5qp3_fNS.js} +1 -1
- package/src/assets/web-panel/assets/{RssFeed-CYw44jcD.js → RssFeed-BCsMvpV4.js} +1 -1
- package/src/assets/web-panel/assets/{Search-CbypjDNG.js → Search-Br9nVxOp.js} +1 -1
- package/src/assets/web-panel/assets/{Security-0rSBDrXh.js → Security-BdOUzRfA.js} +1 -1
- package/src/assets/web-panel/assets/{Services-kqP79CBD.js → Services-Cp9TqzyN.js} +1 -1
- package/src/assets/web-panel/assets/{Skeleton-BjxvGVfI.js → Skeleton-DSdWsUMR.js} +1 -1
- package/src/assets/web-panel/assets/{Skills-SOoWyPCO.js → Skills-DRczAMTe.js} +1 -1
- package/src/assets/web-panel/assets/{Sla-kdRVAT19.js → Sla-B6G_Vd8N.js} +1 -1
- package/src/assets/web-panel/assets/{SpeechSettings-DILtcMaJ.js → SpeechSettings-BCcLx5x4.js} +1 -1
- package/src/assets/web-panel/assets/{SyncSettings-C98Jauc4.js → SyncSettings-BFhwtxCp.js} +1 -1
- package/src/assets/web-panel/assets/{Tasks-Bw-KaQAs.js → Tasks-DGRE6VHO.js} +1 -1
- package/src/assets/web-panel/assets/{Templates-CDJ027Hd.js → Templates-CJkJRFzd.js} +1 -1
- package/src/assets/web-panel/assets/{Tenant-BqNV62UA.js → Tenant-CAOv6p00.js} +1 -1
- package/src/assets/web-panel/assets/{Terminal-B8aQ3GLO.js → Terminal-CDrwwrKj.js} +1 -1
- package/src/assets/web-panel/assets/{TimelineRenderer-BSpccq11.js → TimelineRenderer-DI0YE2SN.js} +1 -1
- package/src/assets/web-panel/assets/{Tokens-BbGMoFO6.js → Tokens-DmqWTZSG.js} +1 -1
- package/src/assets/web-panel/assets/{Trigger-D75Mawa_.js → Trigger-CkXkhmjk.js} +1 -1
- package/src/assets/web-panel/assets/{Trust-BiK_Pk05.js → Trust-U8YJLcoJ.js} +1 -1
- package/src/assets/web-panel/assets/{UkeySign-Dv2xX_b9.js → UkeySign-BLTozMmr.js} +1 -1
- package/src/assets/web-panel/assets/{VideoEditing-CdBWfeEE.js → VideoEditing-DHKyFlZa.js} +1 -1
- package/src/assets/web-panel/assets/{Wallet-Cvrp4agg.js → Wallet-DapBxIQt.js} +1 -1
- package/src/assets/web-panel/assets/{WebAuthn-D0Htlf3v.js → WebAuthn-CkvG3yOr.js} +1 -1
- package/src/assets/web-panel/assets/{WorkflowEditor-nuUBOHIF.js → WorkflowEditor-cNLsinXP.js} +1 -1
- package/src/assets/web-panel/assets/{chat-C6MLShIo.js → chat-BzgkgfMC.js} +1 -1
- package/src/assets/web-panel/assets/{colors-9G5FqFOC.js → colors-BPpVKQsb.js} +1 -1
- package/src/assets/web-panel/assets/{compact-item-0M49EurU.js → compact-item-zepznuTv.js} +1 -1
- package/src/assets/web-panel/assets/{createContext-CiDDLED_.js → createContext-BRto-SQH.js} +1 -1
- package/src/assets/web-panel/assets/{hasIn-wZvUczmn.js → hasIn-CqsmU_n6.js} +1 -1
- package/src/assets/web-panel/assets/{index-B0JZ_ccM.js → index-B-bNzvdU.js} +1 -1
- package/src/assets/web-panel/assets/{index-B_XOMujL.js → index-B0Z6rfV-.js} +1 -1
- package/src/assets/web-panel/assets/{index-DwX9cOL6.js → index-B9_jRD2e.js} +1 -1
- package/src/assets/web-panel/assets/{index-DwUOiN8M.js → index-BEXKES7V.js} +1 -1
- package/src/assets/web-panel/assets/{index-8jz-X3xg.js → index-BGHd4D8F.js} +1 -1
- package/src/assets/web-panel/assets/{index-BVV2mBbo.js → index-BLwY9y0X.js} +1 -1
- package/src/assets/web-panel/assets/{index-qJcOtd8J.js → index-B_l6gfDh.js} +1 -1
- package/src/assets/web-panel/assets/{index-B6TAOS4G.js → index-BeBxP1M6.js} +1 -1
- package/src/assets/web-panel/assets/{index-C63qiwQz.js → index-BeSzdB7x.js} +1 -1
- package/src/assets/web-panel/assets/{index-k0BVfcwQ.js → index-BuBnM6Kz.js} +1 -1
- package/src/assets/web-panel/assets/{index-BXIY2BIN.js → index-Bz7pG8z3.js} +1 -1
- package/src/assets/web-panel/assets/{index-D51V5vmz.js → index-CBI-7Q3W.js} +1 -1
- package/src/assets/web-panel/assets/{index-BWTcG128.js → index-CTk9gY88.js} +1 -1
- package/src/assets/web-panel/assets/{index-sBsJaBmM.js → index-CdHXVSZ4.js} +1 -1
- package/src/assets/web-panel/assets/{index-Dclwd_lj.js → index-CmPnDXx4.js} +1 -1
- package/src/assets/web-panel/assets/{index-BlcOkfzz.js → index-CnezE05k.js} +1 -1
- package/src/assets/web-panel/assets/{index-DOxTmc3k.js → index-CwkhrUmw.js} +1 -1
- package/src/assets/web-panel/assets/{index-Cs66y4oC.js → index-CzoKAiyT.js} +3 -3
- package/src/assets/web-panel/assets/{index-BzeA3eRQ.js → index-DDPmr5Yr.js} +1 -1
- package/src/assets/web-panel/assets/{index-CdaLWIz-.js → index-DEbAW3Ec.js} +1 -1
- package/src/assets/web-panel/assets/{index-DvWRS-s7.js → index-DJSn3owP.js} +1 -1
- package/src/assets/web-panel/assets/{index-DN9t1qjW.js → index-DKa_jSfj.js} +1 -1
- package/src/assets/web-panel/assets/{index-BTCIIdoS.js → index-DUclk35X.js} +1 -1
- package/src/assets/web-panel/assets/{index-BmS2P_eX.js → index-DXkw-nt5.js} +1 -1
- package/src/assets/web-panel/assets/{index-CoxzvhoN.js → index-D_-w4KkD.js} +1 -1
- package/src/assets/web-panel/assets/{index-Cz1SAgnb.js → index-D_asIcU7.js} +1 -1
- package/src/assets/web-panel/assets/{index-BfwJm0DU.js → index-Df_CY0We.js} +1 -1
- package/src/assets/web-panel/assets/{index-JhfNEldK.js → index-Dnvj_XU-.js} +1 -1
- package/src/assets/web-panel/assets/index-DruOFzuF.js +1 -0
- package/src/assets/web-panel/assets/{index-D9J_tLGk.js → index-DvGttIXQ.js} +1 -1
- package/src/assets/web-panel/assets/{index-DcZxOXd8.js → index-JrVhUwyh.js} +1 -1
- package/src/assets/web-panel/assets/{index-CdUmgLxP.js → index-LVvzNdPa.js} +1 -1
- package/src/assets/web-panel/assets/{index-CTy9gD3m.js → index-Q5sAV7wp.js} +1 -1
- package/src/assets/web-panel/assets/{index-CtbFv3Et.js → index-S8fkzbQ_.js} +1 -1
- package/src/assets/web-panel/assets/{index-BCfxxScC.js → index-Z6DBe2RU.js} +1 -1
- package/src/assets/web-panel/assets/{index-dJ_V_Fqy.js → index-faHHtBKj.js} +1 -1
- package/src/assets/web-panel/assets/index-hhOrZ6HO.js +1 -0
- package/src/assets/web-panel/assets/{index-DeHSwWVG.js → index-w36TkwyO.js} +1 -1
- package/src/assets/web-panel/assets/{index-D2wN6VIq.js → index-wbvZayBb.js} +1 -1
- package/src/assets/web-panel/assets/{initDefaultProps-DyIyjurJ.js → initDefaultProps-BlhbrsQk.js} +1 -1
- package/src/assets/web-panel/assets/{motion-B2D0PuTM.js → motion-UZx12NPM.js} +1 -1
- package/src/assets/web-panel/assets/{move-B22T5MnN.js → move-BTby5W4q.js} +1 -1
- package/src/assets/web-panel/assets/{mtc-parser-i4b7HNzF.js → mtc-parser-BOOaGiCg.js} +1 -1
- package/src/assets/web-panel/assets/{omit-ByNIr_gz.js → omit-BVylGzEr.js} +1 -1
- package/src/assets/web-panel/assets/{pickAttrs-_xP2RvxA.js → pickAttrs-Cp3Nflbr.js} +1 -1
- package/src/assets/web-panel/assets/{placementArrow-CVDvzK0z.js → placementArrow-BVXYvwH2.js} +1 -1
- package/src/assets/web-panel/assets/{responsiveObserve-CI1toXJ_.js → responsiveObserve-C67SbpBN.js} +1 -1
- package/src/assets/web-panel/assets/{slide-2_VosSRQ.js → slide-CnBvM22R.js} +1 -1
- package/src/assets/web-panel/assets/{statusUtils-CMiWWrZC.js → statusUtils-T8fy53tf.js} +1 -1
- package/src/assets/web-panel/assets/{styleChecker-DY8wTVCe.js → styleChecker-Bf7i4nlm.js} +1 -1
- package/src/assets/web-panel/assets/{useFlexGapSupport-DkdcgIyl.js → useFlexGapSupport-BUKk7jqw.js} +1 -1
- package/src/assets/web-panel/assets/{useFs-gpl11PEF.js → useFs-T5lg6SpD.js} +1 -1
- package/src/assets/web-panel/assets/{usePersonalDataHub-DqnQ0H9y.js → usePersonalDataHub-Brvye8Tg.js} +1 -1
- package/src/assets/web-panel/assets/{vnode-CgY9xUvr.js → vnode-CK992ojP.js} +1 -1
- package/src/assets/web-panel/assets/{zoom-Ch0jan5_.js → zoom-CcABB_97.js} +1 -1
- package/src/assets/web-panel/index.html +1 -1
- package/src/command-help-index.json +1 -1
- package/src/commands/goal.js +211 -177
- package/src/commands/setup.js +17 -0
- package/src/data/changelog.json +14 -1
- package/src/lib/llm-onboarding-catalog.json +4 -3
- package/src/lib/plugin-runtime/cli-goal-capabilities.js +1 -0
- package/src/lib/plugin-runtime/cli-goal-draft-request.js +24 -10
- package/src/lib/plugin-runtime/cli-goal-drafts.js +77 -30
- package/src/lib/plugin-runtime/examples/goal-task-creator/README.md +60 -0
- package/src/lib/plugin-runtime/examples/goal-task-creator/plugin.json +13 -0
- package/src/lib/plugin-runtime/examples/project-delivery-assistant/README.md +47 -14
- package/src/lib/plugin-runtime/examples/project-delivery-assistant/plugin.json +8 -7
- package/src/lib/plugin-runtime/goal-extensions.js +1 -0
- package/src/lib/project-goal-connection.js +15 -3
- package/src/lib/project-goal-draft-connection.js +18 -11
- package/src/assets/web-panel/assets/index-C101Sec6.js +0 -1
- package/src/assets/web-panel/assets/index-D23TaGOp.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{M as D}from"./MarkdownRenderer-
|
|
1
|
+
import{M as D}from"./MarkdownRenderer-DOHVc-Uw.js";import{E as K,r as _,f as B,o as G,e as Q,M as w,R as v,c as r,N as o,u as i,Q as x,S as z,K as m,L as c,O as d,P as f,F as V}from"./vendor-BXcBOG8b.js";import{u as S,_ as W,d as R}from"./index-CzoKAiyT.js";import{R as q}from"./icons-DlxlFL4g.js";import"./markdown-Bq2x0XsR.js";import"./markdown-DUKxbhE4.js";const H=K("artifacts",()=>{const A=_([]),t=_(!1),g=_(""),b=_(""),u=_(null),C=_(!1),I=B(()=>[...new Set(A.value.map(a=>a.kind).filter(Boolean))].sort());async function l(){const e=S();t.value=!0;try{const a={type:"artifact-list"};g.value&&(a.kind=g.value),b.value&&(a.session=b.value);const s=await e.sendRaw(a);s&&Array.isArray(s.artifacts)&&(A.value=[...s.artifacts].reverse())}catch{}finally{t.value=!1}}async function n(e){const a=S();C.value=!0,u.value={entry:e,previewable:!1};try{const s=await a.sendRaw({type:"artifact-content",artifactId:e.id});u.value={entry:e,previewable:s?.previewable===!0,encoding:s?.encoding||null,content:s?.content||"",truncated:s?.truncated===!0,reason:s?.reason||null}}catch(s){u.value={entry:e,previewable:!1,reason:s?.message||"preview failed"}}finally{C.value=!1}}function F(){u.value=null}const p=B(()=>{const e=u.value;return!e?.previewable||e.encoding!=="base64"?null:`data:${e.entry?.mime||"image/png"};base64,${e.content}`}),$=B(()=>{const e=u.value;return e?.previewable===!0&&e.encoding==="utf8"&&String(e.entry?.mime||"").toLowerCase()==="text/markdown"});async function k(e,a={}){if(!e?.id)return!1;const s=a.fetch||globalThis.fetch,P=a.document||globalThis.document,T=a.URL||globalThis.URL,O=(a.config||globalThis.window?.__CC_CONFIG__)??{};try{const E=await s(`/api/artifacts/${e.id}/download`,{headers:O.wsToken?{Authorization:`Bearer ${O.wsToken}`}:{}});if(!E.ok)return!1;const j=await E.blob(),U=T.createObjectURL(j),h=P.createElement("a");return h.href=U,h.download=e.title||e.id,P.body.appendChild(h),h.click(),h.remove(),T.revokeObjectURL(U),!0}catch{return!1}}async function y(e){const a=S();if(!e)return!1;try{const s=await a.sendRaw({type:"artifact-remove",artifactId:e});return u.value?.entry?.id===e&&(u.value=null),await l(),s?.found===!0}catch{return!1}}async function M(){const e=S();try{const a=await e.sendRaw({type:"artifact-clean"});return await l(),Number(a?.removed)||0}catch{return 0}}function L(e){const a=Number(e)||0;return a<1024?`${a} B`:a<1024*1024?`${(a/1024).toFixed(1)} KB`:`${(a/(1024*1024)).toFixed(1)} MB`}function N(e){switch(e){case"report":return"blue";case"patch":return"purple";case"screenshot":return"cyan";case"log":return"default";case"data":return"green";default:return"default"}}return{artifacts:A,loading:t,kindFilter:g,sessionFilter:b,kinds:I,preview:u,previewLoading:C,previewImageSrc:p,previewIsMarkdown:$,fetchArtifacts:l,openPreview:n,closePreview:F,removeArtifact:y,cleanExpired:M,downloadArtifact:k,formatSize:L,kindColor:N}}),J={class:"page-header"},X=["onClick"],Y=["src"],Z={key:1,class:"preview-markdown"},ee={key:2,class:"preview-text"},te={class:"preview-meta"},ne={key:0},ae={__name:"Artifacts",setup(A){const t=H(),g=[{title:"标题",key:"title",dataIndex:"title",ellipsis:!0},{title:"类型",key:"kind",dataIndex:"kind",width:110},{title:"MIME",dataIndex:"mime",width:160,ellipsis:!0},{title:"大小",key:"size",dataIndex:"size",width:90},{title:"发布时间",key:"createdAt",dataIndex:"createdAt",width:170},{title:"会话",dataIndex:"sessionId",width:160,ellipsis:!0},{title:"操作",key:"actions",width:150}],b=B(()=>t.kinds.map(l=>({label:l,value:l})));async function u(l){await t.removeArtifact(l)?R.success("已删除"):R.error("删除失败")}async function C(){const l=await t.cleanExpired();R.info(l>0?`清理了 ${l} 个过期交付物`:"没有过期交付物")}async function I(l){await t.downloadArtifact(l)||R.error("下载失败")}return G(()=>{t.fetchArtifacts()}),Q(()=>{t.closePreview()}),(l,n)=>{const F=m("a-select"),p=m("a-button"),$=m("a-popconfirm"),k=m("a-space"),y=m("a-tag"),M=m("a-table"),L=m("a-empty"),N=m("a-card");return c(),w("div",null,[v("div",J,[n[7]||(n[7]=v("div",null,[v("h2",{class:"page-title"},"交付物"),v("p",{class:"page-sub"}," agent 用 publish_artifact 发布的交付物(报告 / patch / 截图 / 日志),在这里预览与管理(cc artifacts 同源)。 ")],-1)),r(k,null,{default:o(()=>[r(F,{value:i(t).kindFilter,"onUpdate:value":n[0]||(n[0]=e=>i(t).kindFilter=e),style:{"min-width":"120px"},placeholder:"全部类型","allow-clear":"",options:b.value,onChange:n[1]||(n[1]=e=>i(t).fetchArtifacts())},null,8,["value","options"]),r($,{title:"删除所有过期交付物?",onConfirm:C},{default:o(()=>[r(p,null,{default:o(()=>[...n[5]||(n[5]=[d("清理过期",-1)])]),_:1})]),_:1}),r(p,{ghost:"",loading:i(t).loading,onClick:n[2]||(n[2]=e=>i(t).fetchArtifacts())},{icon:o(()=>[r(i(q))]),default:o(()=>[n[6]||(n[6]=d(" 刷新 ",-1))]),_:1},8,["loading"])]),_:1})]),r(M,{"data-source":i(t).artifacts,columns:g,"row-key":"id",size:"small",pagination:{pageSize:10,hideOnSinglePage:!0}},{bodyCell:o(({column:e,record:a})=>[e.key==="title"?(c(),w("a",{key:0,onClick:s=>i(t).openPreview(a)},f(a.title),9,X)):e.key==="kind"?(c(),x(y,{key:1,color:i(t).kindColor(a.kind)},{default:o(()=>[d(f(a.kind),1)]),_:2},1032,["color"])):e.key==="size"?(c(),w(V,{key:2},[d(f(i(t).formatSize(a.size)),1)],64)):e.key==="createdAt"?(c(),w(V,{key:3},[d(f((a.createdAt||"").replace("T"," ").slice(0,19)),1)],64)):e.key==="actions"?(c(),x(k,{key:4},{default:o(()=>[r(p,{size:"small",onClick:s=>i(t).openPreview(a)},{default:o(()=>[...n[8]||(n[8]=[d("预览",-1)])]),_:1},8,["onClick"]),r(p,{size:"small",onClick:s=>I(a)},{default:o(()=>[...n[9]||(n[9]=[d("下载",-1)])]),_:1},8,["onClick"]),r($,{title:"删除该交付物?",onConfirm:s=>u(a.id)},{default:o(()=>[r(p,{size:"small",danger:""},{default:o(()=>[...n[10]||(n[10]=[d("删除",-1)])]),_:1})]),_:1},8,["onConfirm"])]),_:2},1024)):z("",!0)]),_:1},8,["data-source"]),i(t).preview?(c(),x(N,{key:0,size:"small",class:"preview-card",loading:i(t).previewLoading},{title:o(()=>[r(k,null,{default:o(()=>[v("span",null,f(i(t).preview.entry?.title),1),r(y,{color:i(t).kindColor(i(t).preview.entry?.kind)},{default:o(()=>[d(f(i(t).preview.entry?.kind),1)]),_:1},8,["color"]),r(y,{color:"default"},{default:o(()=>[d(f(i(t).preview.entry?.mime),1)]),_:1}),i(t).preview.truncated?(c(),x(y,{key:0,color:"warning"},{default:o(()=>[...n[11]||(n[11]=[d("已截断预览",-1)])]),_:1})):z("",!0)]),_:1})]),extra:o(()=>[r(k,null,{default:o(()=>[r(p,{size:"small",onClick:n[3]||(n[3]=e=>I(i(t).preview.entry))},{default:o(()=>[...n[12]||(n[12]=[d("下载",-1)])]),_:1}),r(p,{size:"small",onClick:n[4]||(n[4]=e=>i(t).closePreview())},{default:o(()=>[...n[13]||(n[13]=[d("关闭",-1)])]),_:1})]),_:1})]),default:o(()=>[i(t).previewImageSrc?(c(),w("img",{key:0,src:i(t).previewImageSrc,class:"preview-image",alt:"artifact preview"},null,8,Y)):i(t).previewIsMarkdown?(c(),w("div",Z,[r(D,{content:i(t).preview.content||""},null,8,["content"])])):i(t).preview.previewable?(c(),w("pre",ee,f(i(t).preview.content||"(空文件)"),1)):(c(),x(L,{key:3,description:i(t).preview.reason||"该类型不支持在线预览,可在本机用 cc artifacts open <id> 打开"},null,8,["description"])),v("div",te,[v("span",null,f(i(t).preview.entry?.id),1),i(t).preview.entry?.sessionId?(c(),w("span",ne," · session "+f(i(t).preview.entry.sessionId),1)):z("",!0),v("span",null," · sha256 "+f((i(t).preview.entry?.sha256||"").slice(0,12))+"…",1)])]),_:1},8,["loading"])):z("",!0)])}}},de=W(ae,[["__scopeId","data-v-c5692fe9"]]);export{de as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{X as De,t as te,_ as Ne,b as Fe,u as je,d as R}from"./index-Cs66y4oC.js";import{u as Be}from"./useFs-gpl11PEF.js";import{R as Je,aA as $e,V as de,d as Ue,an as Ve,A as Ke,f as Pe}from"./icons-DlxlFL4g.js";import{o as He,M as p,R as g,P as r,u as s,c as l,N as t,Q as x,S as k,K as _,r as L,L as u,O as y,F as z,Y as D,_ as We,f as U}from"./vendor-BXcBOG8b.js";import"./useShellMode-CgR0wCYM.js";const V=Object.freeze(["auth","permission","data","system","file","did","crypto","api"]),ee=Object.freeze(["low","medium","high","critical"]);function G(i,e=0){return typeof i=="number"&&Number.isFinite(i)?i:e}function fe(i){if(!i)return{noDb:!1,error:""};const e=De(i),d=/Database not available/i.test(e);return{noDb:d,error:d?"Database not available":""}}function Ye(i,e=0){if(!i||typeof i!="object")return null;const d=i.id||"";if(!d)return null;let b=i.details;if(typeof b=="string"&&b)try{b=JSON.parse(b)}catch{}const h=typeof i.success=="boolean"?i.success:i.success===1||i.success==="1"||i.success===!0,N=i.audit_mtc_event_id??i.auditMtcEventId??null;return{key:d,id:d,eventType:String(i.event_type??i.eventType??"").toLowerCase(),operation:String(i.operation||""),actor:i.actor??"",target:i.target??"",details:b??null,riskLevel:String(i.risk_level??i.riskLevel??"low").toLowerCase(),ipAddress:i.ip_address??i.ipAddress??"",userAgent:i.user_agent??i.userAgent??"",success:h,errorMessage:i.error_message??i.errorMessage??"",createdAt:i.created_at??i.createdAt??"",auditMtcEventId:N,_idx:e}}function qe(i){const e=te(i);return Array.isArray(e)?e.map(Ye).filter(Boolean):[]}const Qe={total:0,failures:0,highRisk:0,byEventType:{},byRiskLevel:{}};function Xe(i){const e=JSON.parse(JSON.stringify(Qe));for(const b of V)e.byEventType[b]=0;for(const b of ee)e.byRiskLevel[b]=0;const d=te(i);if(!d||typeof d!="object"||Array.isArray(d))return e;if(e.total=G(d.total,0),e.failures=G(d.failures,0),e.highRisk=G(d.highRisk,0),d.byEventType&&typeof d.byEventType=="object")for(const[b,h]of Object.entries(d.byEventType))typeof h=="number"&&Number.isFinite(h)&&(e.byEventType[b]=h);if(d.byRiskLevel&&typeof d.byRiskLevel=="object")for(const[b,h]of Object.entries(d.byRiskLevel))typeof h=="number"&&Number.isFinite(h)&&(e.byRiskLevel[b]=h);return e}function Ze(i){return!i||!i.auditMtcEventId?"none":"tracked"}function pe(i){if(i==null||i==="")return"—";const e=String(i),d=e.includes(" ")&&!e.includes("T")?e.replace(" ","T")+"Z":e,b=new Date(d);return isNaN(b.getTime())?e:b.toLocaleString("zh-CN",{hour12:!1})}const Ge={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},et={class:"page-title"},tt={class:"page-sub"},at={class:"type-name"},lt={class:"type-count"},ot={class:"filter-bar"},st={key:0,style:{color:"var(--text-secondary)","font-size":"11px","font-family":"monospace"}},nt={style:{color:"var(--text-primary)","font-weight":"500","font-family":"monospace","font-size":"12px"}},it={key:0,style:{color:"#ff4d4f","font-size":"11px","margin-top":"2px"}},rt={key:0,style:{color:"var(--text-secondary)","font-size":"12px"}},ut={key:1,style:{color:"var(--text-muted)"}},ct={key:0,style:{color:"var(--text-secondary)","font-size":"12px","font-family":"monospace"}},dt={key:1,style:{color:"var(--text-muted)"}},ft={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},pt={key:0,style:{"padding-top":"8px"}},yt={style:{"font-family":"monospace","font-size":"12px"}},vt={style:{"margin-left":"8px",color:"var(--text-secondary)","font-size":"12px"}},_t={style:{"font-family":"monospace"}},mt={key:0,style:{"font-family":"monospace","font-size":"12px"}},bt={key:1,style:{color:"var(--text-muted)"}},gt={key:0,style:{"font-family":"monospace","font-size":"12px"}},kt={key:1,style:{color:"var(--text-muted)"}},ht={style:{"font-family":"monospace","font-size":"12px"}},xt={style:{"font-family":"monospace","font-size":"11px"}},Lt={style:{color:"#ff4d4f"}},Tt={class:"details-pre"},Ct={__name:"Audit",setup(i){const{t:e}=Fe(),d=je(),b=Be(),h=L(!1),N=L([]),m=L({total:0,failures:0,highRisk:0,byEventType:{},byRiskLevel:{}}),K=L({noDb:!1,error:""}),ae=L("events"),F=L(""),w=L(""),I=L(""),M=L(""),j=L(!1),P=L(!1),f=L(null),ye=U(()=>[{title:e("audit.logColumns.createdAt"),key:"createdAt",width:"160px"},{title:e("audit.logColumns.eventType"),key:"eventType",width:"110px"},{title:e("audit.logColumns.operation"),key:"operation"},{title:e("audit.logColumns.actor"),key:"actor",width:"140px"},{title:e("audit.logColumns.target"),key:"target",width:"180px"},{title:e("audit.logColumns.riskLevel"),key:"riskLevel",width:"90px"},{title:e("audit.logColumns.success"),key:"success",width:"80px"},{title:e("audit.logColumns.mtc"),key:"mtc",width:"110px"},{title:e("audit.logColumns.action"),key:"action",width:"80px"}]),H=L({});function W(a){return a.auditMtcEventId&&H.value[a.id]||null}function ve(a){const o=W(a);return o?o.state==="staging"?e("audit.mtc.stagingLabel"):o.state==="batched"?e("audit.mtc.batchedLabel",{batchId:o.batchId||"?"}):e("audit.mtc.unknownLabel"):e("audit.mtc.signedNotChecked")}function _e(a){const o=W(a);return o?o.state==="staging"?"orange":o.state==="batched"?"green":"default":"blue"}function me(a){if(!a.auditMtcEventId)return"";const o=W(a),c=e("audit.mtc.tooltipBase",{id:a.auditMtcEventId});return o?o.state==="staging"?e("audit.mtc.tooltipStaging",{base:c}):o.state==="batched"?e("audit.mtc.tooltipBatched",{base:c,batchId:o.batchId,treeHead:o.treeHeadId||""}):c:e("audit.mtc.tooltipNotChecked",{base:c})}async function be(a){if(!a.auditMtcEventId)return;const o=a.auditMtcEventId.replace(/"/g,'\\"');try{const c=await d.execute(`audit mtc reconcile-check "${o}" --json`,8e3),C=te(c.output);if(!C){R.warning(e("audit.mtc.noJson"));return}const X=C.found?{state:"batched",batchId:C.batchId,treeHeadId:C.treeHeadId}:C.staging?{state:"staging"}:{state:"unknown"};H.value={...H.value,[a.id]:X}}catch(c){R.error(e("audit.mtc.checkFailed",{err:c?.message||c}))}}const Y=U(()=>m.value.total?(m.value.total-m.value.failures)/m.value.total*100:100),ge=U(()=>!!(w.value||I.value||M.value||j.value)),ke=U(()=>{let a=N.value;if(I.value&&(a=a.filter(o=>o.eventType===I.value)),M.value&&(a=a.filter(o=>o.riskLevel===M.value)),j.value&&(a=a.filter(o=>!o.success)),w.value){const o=w.value.toLowerCase();a=a.filter(c=>(c.operation||"").toLowerCase().includes(o)||(c.actor||"").toLowerCase().includes(o)||(c.target||"").toLowerCase().includes(o))}return a});function q(a){const o=`audit.type.${a}`,c=e(o);return c===o?a:c}function B(a){return{auth:"blue",permission:"purple",data:"cyan",system:"default",file:"green",did:"gold",crypto:"magenta",api:"volcano"}[a]||"default"}function le(a){return{auth:"#1677ff",permission:"#722ed1",data:"#13c2c2",system:"#888",file:"#52c41a",did:"#faad14",crypto:"#eb2f96",api:"#fa541c"}[a]||"#888"}function J(a){const o=`audit.risk.${a}`,c=e(o);return c===o?a:c}function Q(a){return{low:"default",medium:"gold",high:"orange",critical:"red"}[a]||"default"}function he(a){return{low:"#888",medium:"#faad14",high:"#fa8c16",critical:"#ff4d4f"}[a]||"#888"}function oe(a,o){return o?Math.round(a/o*100):0}function xe(a,o){return a?a.length<=o?a:a.slice(0,o)+"…":""}function Le(a){if(typeof a=="string")return a;try{return JSON.stringify(a,null,2)}catch{return String(a)}}let se=null;function Te(){clearTimeout(se),se=setTimeout(()=>{w.value=F.value.trim()},300)}function Ce(){w.value=F.value.trim()}async function ne(){h.value=!0,K.value={noDb:!1,error:""};try{const[a,o]=await Promise.all([d.execute("audit log --json -n 200",12e3).catch(()=>({output:""})),d.execute("audit stats --json",8e3).catch(()=>({output:""}))]),c=[a,o].map(C=>fe(C.output)).find(C=>C.noDb);c&&(K.value=c),N.value=qe(a.output),m.value=Xe(o.output)}catch(a){R.error(e("audit.messages.loadFailed",{err:a?.message||a}))}finally{h.value=!1}}function Se(a){f.value=a,P.value=!0}async function ze(){try{const{output:a}=await d.execute("audit export -f json -n 10000",2e4);if(fe(a).noDb){R.error(e("audit.messages.needInit"));return}if(!a.trim().startsWith("[")){R.error(e("audit.messages.exportFailed",{err:a.slice(0,120)}));return}const c=await b.saveText(a.trim(),{defaultPath:`audit-${new Date().toISOString().slice(0,10)}.json`,filters:[{name:"JSON",extensions:["json"]}]});if(c.canceled)return;R.success(c.path?e("audit.messages.exportOk",{path:c.path}):e("audit.messages.exportOkDefault"))}catch(a){R.error(e("audit.messages.exportFailed",{err:a?.message||a}))}}return He(ne),(a,o)=>{const c=_("a-button"),C=_("a-space"),X=_("a-alert"),O=_("a-statistic"),A=_("a-card"),E=_("a-col"),Z=_("a-row"),S=_("a-tag"),Ae=_("a-input-search"),$=_("a-radio-button"),ie=_("a-radio-group"),Ee=_("a-checkbox"),re=_("a-tooltip"),Re=_("a-table"),ue=_("a-tab-pane"),ce=_("a-progress"),we=_("a-tabs"),T=_("a-descriptions-item"),Ie=_("a-descriptions"),Me=_("a-modal");return u(),p("div",null,[g("div",Ge,[g("div",null,[g("h2",et,r(s(e)("audit.title")),1),g("p",tt,r(s(e)("audit.subtitle")),1)]),l(C,null,{default:t(()=>[l(c,{loading:h.value,onClick:ne},{icon:t(()=>[l(s(Je))]),default:t(()=>[y(" "+r(s(e)("audit.refresh")),1)]),_:1},8,["loading"]),l(c,{onClick:ze},{icon:t(()=>[l(s($e))]),default:t(()=>[y(" "+r(s(e)("audit.exportJson")),1)]),_:1})]),_:1})]),K.value.noDb?(u(),x(X,{key:0,type:"info","show-icon":"",message:s(e)("audit.noDb.message"),description:s(e)("audit.noDb.description"),style:{"margin-bottom":"16px"}},null,8,["message","description"])):k("",!0),l(Z,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:t(()=>[l(E,{xs:12,sm:8,lg:5},{default:t(()=>[l(A,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[l(O,{title:s(e)("audit.stats.total"),value:m.value.total,"value-style":{color:"#1677ff",fontSize:"20px"}},{prefix:t(()=>[l(s(de))]),_:1},8,["title","value"])]),_:1})]),_:1}),l(E,{xs:12,sm:8,lg:5},{default:t(()=>[l(A,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[l(O,{title:s(e)("audit.stats.failures"),value:m.value.failures,"value-style":{color:m.value.failures>0?"#ff4d4f":"#52c41a",fontSize:"20px"}},{prefix:t(()=>[l(s(Ue))]),_:1},8,["title","value","value-style"])]),_:1})]),_:1}),l(E,{xs:12,sm:8,lg:5},{default:t(()=>[l(A,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[l(O,{title:s(e)("audit.stats.highRisk"),value:m.value.highRisk,"value-style":{color:m.value.highRisk>0?"#fa8c16":"#52c41a",fontSize:"20px"}},{prefix:t(()=>[l(s(Ve))]),_:1},8,["title","value","value-style"])]),_:1})]),_:1}),l(E,{xs:12,sm:8,lg:5},{default:t(()=>[l(A,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[l(O,{title:s(e)("audit.stats.critical"),value:m.value.byRiskLevel.critical||0,"value-style":{color:(m.value.byRiskLevel.critical||0)>0?"#ff4d4f":"#888",fontSize:"20px"}},{prefix:t(()=>[l(s(Ke))]),_:1},8,["title","value","value-style"])]),_:1})]),_:1}),l(E,{xs:24,sm:8,lg:4},{default:t(()=>[l(A,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[l(O,{title:s(e)("audit.stats.successRate"),value:Y.value,suffix:"%",precision:1,"value-style":{color:Y.value>=95?"#52c41a":Y.value>=80?"#faad14":"#ff4d4f",fontSize:"20px"}},{prefix:t(()=>[l(s(Pe))]),_:1},8,["title","value","value-style"])]),_:1})]),_:1})]),_:1}),l(A,{title:s(e)("audit.typeCatalogueTitle"),size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"20px"},"body-style":{padding:"12px 16px"}},{default:t(()=>[l(Z,{gutter:[12,12]},{default:t(()=>[(u(!0),p(z,null,D(s(V),n=>(u(),x(E,{key:n,xs:12,sm:8,lg:3},{default:t(()=>[g("div",{class:"type-pill",style:We({borderLeftColor:le(n)})},[l(S,{color:B(n),style:{"font-family":"monospace","font-size":"11px"}},{default:t(()=>[y(r(n),1)]),_:2},1032,["color"]),g("div",at,r(q(n)),1),g("div",lt,r(m.value.byEventType[n]||0),1)],4)]),_:2},1024))),128))]),_:1})]),_:1},8,["title"]),l(we,{activeKey:ae.value,"onUpdate:activeKey":o[4]||(o[4]=n=>ae.value=n),class:"audit-tabs"},{default:t(()=>[l(ue,{key:"events",tab:s(e)("audit.tabs.events")},{default:t(()=>[g("div",ot,[l(Ae,{value:F.value,"onUpdate:value":o[0]||(o[0]=n=>F.value=n),placeholder:s(e)("audit.filter.searchPlaceholder"),"allow-clear":"",style:{"max-width":"280px"},onSearch:Ce,onInput:Te},null,8,["value","placeholder"]),l(ie,{value:I.value,"onUpdate:value":o[1]||(o[1]=n=>I.value=n),size:"small","button-style":"solid"},{default:t(()=>[l($,{value:""},{default:t(()=>[y(r(s(e)("audit.filter.allTypes")),1)]),_:1}),(u(!0),p(z,null,D(s(V),n=>(u(),x($,{key:n,value:n},{default:t(()=>[y(r(q(n)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"]),l(ie,{value:M.value,"onUpdate:value":o[2]||(o[2]=n=>M.value=n),size:"small"},{default:t(()=>[l($,{value:""},{default:t(()=>[y(r(s(e)("audit.filter.allRisks")),1)]),_:1}),(u(!0),p(z,null,D(s(ee),n=>(u(),x($,{key:n,value:n},{default:t(()=>[y(r(J(n)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"]),l(Ee,{checked:j.value,"onUpdate:checked":o[3]||(o[3]=n=>j.value=n)},{default:t(()=>[y(r(s(e)("audit.filter.failuresOnly")),1)]),_:1},8,["checked"])]),l(Re,{columns:ye.value,"data-source":ke.value,pagination:{pageSize:20,showTotal:n=>s(e)("audit.totals.rows",{count:n})},size:"small",loading:h.value,style:{background:"var(--bg-card)"}},{bodyCell:t(({column:n,record:v})=>[n.key==="createdAt"?(u(),p("span",st,r(s(pe)(v.createdAt)),1)):k("",!0),n.key==="eventType"?(u(),x(S,{key:1,color:B(v.eventType),style:{"font-family":"monospace"}},{default:t(()=>[y(r(v.eventType),1)]),_:2},1032,["color"])):k("",!0),n.key==="operation"?(u(),p(z,{key:2},[g("span",nt,r(v.operation),1),v.errorMessage?(u(),p("div",it,r(v.errorMessage),1)):k("",!0)],64)):k("",!0),n.key==="actor"?(u(),p(z,{key:3},[v.actor?(u(),p("span",rt,r(v.actor),1)):(u(),p("span",ut,"—"))],64)):k("",!0),n.key==="target"?(u(),p(z,{key:4},[v.target?(u(),p("span",ct,r(xe(v.target,32)),1)):(u(),p("span",dt,"—"))],64)):k("",!0),n.key==="riskLevel"?(u(),x(S,{key:5,color:Q(v.riskLevel)},{default:t(()=>[y(r(J(v.riskLevel)),1)]),_:2},1032,["color"])):k("",!0),n.key==="success"?(u(),x(S,{key:6,color:v.success?"green":"red"},{default:t(()=>[y(r(v.success?"OK":"FAIL"),1)]),_:2},1032,["color"])):k("",!0),n.key==="mtc"?(u(),p(z,{key:7},[s(Ze)(v)==="none"?(u(),x(re,{key:0,title:s(e)("audit.mtc.noneTooltip")},{default:t(()=>[l(S,{color:"default"},{default:t(()=>[...o[6]||(o[6]=[y("—",-1)])]),_:1})]),_:1},8,["title"])):(u(),x(re,{key:1,title:me(v)},{default:t(()=>[l(S,{color:_e(v),style:{cursor:"pointer"},onClick:Oe=>be(v)},{default:t(()=>[y(r(ve(v)),1)]),_:2},1032,["color","onClick"])]),_:2},1032,["title"]))],64)):k("",!0),n.key==="action"?(u(),x(c,{key:8,size:"small",type:"link",onClick:Oe=>Se(v)},{default:t(()=>[y(r(s(e)("audit.rowAction.details")),1)]),_:1},8,["onClick"])):k("",!0)]),emptyText:t(()=>[g("div",ft,[l(s(de),{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),y(" "+r(ge.value?s(e)("audit.empty.filtered"):s(e)("audit.empty.noEvents")),1)])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"]),l(ue,{key:"breakdown",tab:s(e)("audit.tabs.breakdown")},{default:t(()=>[l(Z,{gutter:[16,16]},{default:t(()=>[l(E,{xs:24,lg:12},{default:t(()=>[l(A,{title:s(e)("audit.breakdown.byType"),size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[(u(!0),p(z,null,D(s(V),n=>(u(),p("div",{key:n,class:"bd-row"},[l(S,{color:B(n),style:{"min-width":"80px","text-align":"center","font-family":"monospace"}},{default:t(()=>[y(r(n),1)]),_:2},1032,["color"]),l(ce,{percent:oe(m.value.byEventType[n]||0,m.value.total),"stroke-color":le(n),format:()=>`${m.value.byEventType[n]||0}`,size:"small",style:{flex:"1","margin-left":"12px"}},null,8,["percent","stroke-color","format"])]))),128))]),_:1},8,["title"])]),_:1}),l(E,{xs:24,lg:12},{default:t(()=>[l(A,{title:s(e)("audit.breakdown.byRisk"),size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[(u(!0),p(z,null,D(s(ee),n=>(u(),p("div",{key:n,class:"bd-row"},[l(S,{color:Q(n),style:{"min-width":"80px","text-align":"center"}},{default:t(()=>[y(r(J(n)),1)]),_:2},1032,["color"]),l(ce,{percent:oe(m.value.byRiskLevel[n]||0,m.value.total),"stroke-color":he(n),format:()=>`${m.value.byRiskLevel[n]||0}`,size:"small",style:{flex:"1","margin-left":"12px"}},null,8,["percent","stroke-color","format"])]))),128))]),_:1},8,["title"])]),_:1})]),_:1})]),_:1},8,["tab"])]),_:1},8,["activeKey"]),l(Me,{open:P.value,"onUpdate:open":o[5]||(o[5]=n=>P.value=n),title:s(e)("audit.details.title",{id:f.value?.id?.slice(0,8)||""}),width:720,footer:null},{default:t(()=>[f.value?(u(),p("div",pt,[l(Ie,{column:2,size:"small",bordered:""},{default:t(()=>[l(T,{label:s(e)("audit.details.id"),span:2},{default:t(()=>[g("span",yt,r(f.value.id),1)]),_:1},8,["label"]),l(T,{label:s(e)("audit.details.eventType")},{default:t(()=>[l(S,{color:B(f.value.eventType),style:{"font-family":"monospace"}},{default:t(()=>[y(r(f.value.eventType),1)]),_:1},8,["color"]),g("span",vt,r(q(f.value.eventType)),1)]),_:1},8,["label"]),l(T,{label:s(e)("audit.details.riskLevel")},{default:t(()=>[l(S,{color:Q(f.value.riskLevel)},{default:t(()=>[y(r(J(f.value.riskLevel)),1)]),_:1},8,["color"])]),_:1},8,["label"]),l(T,{label:s(e)("audit.details.operation"),span:2},{default:t(()=>[g("span",_t,r(f.value.operation),1)]),_:1},8,["label"]),l(T,{label:s(e)("audit.details.status")},{default:t(()=>[l(S,{color:f.value.success?"green":"red"},{default:t(()=>[y(r(f.value.success?s(e)("audit.details.success"):s(e)("audit.details.failure")),1)]),_:1},8,["color"])]),_:1},8,["label"]),l(T,{label:s(e)("audit.details.time")},{default:t(()=>[y(r(s(pe)(f.value.createdAt)),1)]),_:1},8,["label"]),l(T,{label:s(e)("audit.details.actor")},{default:t(()=>[f.value.actor?(u(),p("span",mt,r(f.value.actor),1)):(u(),p("span",bt,"—"))]),_:1},8,["label"]),l(T,{label:s(e)("audit.details.target")},{default:t(()=>[f.value.target?(u(),p("span",gt,r(f.value.target),1)):(u(),p("span",kt,"—"))]),_:1},8,["label"]),f.value.ipAddress?(u(),x(T,{key:0,label:s(e)("audit.details.ip")},{default:t(()=>[g("span",ht,r(f.value.ipAddress),1)]),_:1},8,["label"])):k("",!0),f.value.userAgent?(u(),x(T,{key:1,label:s(e)("audit.details.userAgent")},{default:t(()=>[g("span",xt,r(f.value.userAgent),1)]),_:1},8,["label"])):k("",!0),f.value.errorMessage?(u(),x(T,{key:2,label:s(e)("audit.details.errorMessage"),span:2},{default:t(()=>[g("span",Lt,r(f.value.errorMessage),1)]),_:1},8,["label"])):k("",!0),f.value.details?(u(),x(T,{key:3,label:s(e)("audit.details.details"),span:2},{default:t(()=>[g("pre",Tt,r(Le(f.value.details)),1)]),_:1},8,["label"])):k("",!0)]),_:1})])):k("",!0)]),_:1},8,["open","title"])])}}},wt=Ne(Ct,[["__scopeId","data-v-42ba1d8d"]]);export{wt as default};
|
|
1
|
+
import{X as De,t as te,_ as Ne,b as Fe,u as je,d as R}from"./index-CzoKAiyT.js";import{u as Be}from"./useFs-T5lg6SpD.js";import{R as Je,aA as $e,V as de,d as Ue,an as Ve,A as Ke,f as Pe}from"./icons-DlxlFL4g.js";import{o as He,M as p,R as g,P as r,u as s,c as l,N as t,Q as x,S as k,K as _,r as L,L as u,O as y,F as z,Y as D,_ as We,f as U}from"./vendor-BXcBOG8b.js";import"./useShellMode-CgR0wCYM.js";const V=Object.freeze(["auth","permission","data","system","file","did","crypto","api"]),ee=Object.freeze(["low","medium","high","critical"]);function G(i,e=0){return typeof i=="number"&&Number.isFinite(i)?i:e}function fe(i){if(!i)return{noDb:!1,error:""};const e=De(i),d=/Database not available/i.test(e);return{noDb:d,error:d?"Database not available":""}}function Ye(i,e=0){if(!i||typeof i!="object")return null;const d=i.id||"";if(!d)return null;let b=i.details;if(typeof b=="string"&&b)try{b=JSON.parse(b)}catch{}const h=typeof i.success=="boolean"?i.success:i.success===1||i.success==="1"||i.success===!0,N=i.audit_mtc_event_id??i.auditMtcEventId??null;return{key:d,id:d,eventType:String(i.event_type??i.eventType??"").toLowerCase(),operation:String(i.operation||""),actor:i.actor??"",target:i.target??"",details:b??null,riskLevel:String(i.risk_level??i.riskLevel??"low").toLowerCase(),ipAddress:i.ip_address??i.ipAddress??"",userAgent:i.user_agent??i.userAgent??"",success:h,errorMessage:i.error_message??i.errorMessage??"",createdAt:i.created_at??i.createdAt??"",auditMtcEventId:N,_idx:e}}function qe(i){const e=te(i);return Array.isArray(e)?e.map(Ye).filter(Boolean):[]}const Qe={total:0,failures:0,highRisk:0,byEventType:{},byRiskLevel:{}};function Xe(i){const e=JSON.parse(JSON.stringify(Qe));for(const b of V)e.byEventType[b]=0;for(const b of ee)e.byRiskLevel[b]=0;const d=te(i);if(!d||typeof d!="object"||Array.isArray(d))return e;if(e.total=G(d.total,0),e.failures=G(d.failures,0),e.highRisk=G(d.highRisk,0),d.byEventType&&typeof d.byEventType=="object")for(const[b,h]of Object.entries(d.byEventType))typeof h=="number"&&Number.isFinite(h)&&(e.byEventType[b]=h);if(d.byRiskLevel&&typeof d.byRiskLevel=="object")for(const[b,h]of Object.entries(d.byRiskLevel))typeof h=="number"&&Number.isFinite(h)&&(e.byRiskLevel[b]=h);return e}function Ze(i){return!i||!i.auditMtcEventId?"none":"tracked"}function pe(i){if(i==null||i==="")return"—";const e=String(i),d=e.includes(" ")&&!e.includes("T")?e.replace(" ","T")+"Z":e,b=new Date(d);return isNaN(b.getTime())?e:b.toLocaleString("zh-CN",{hour12:!1})}const Ge={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},et={class:"page-title"},tt={class:"page-sub"},at={class:"type-name"},lt={class:"type-count"},ot={class:"filter-bar"},st={key:0,style:{color:"var(--text-secondary)","font-size":"11px","font-family":"monospace"}},nt={style:{color:"var(--text-primary)","font-weight":"500","font-family":"monospace","font-size":"12px"}},it={key:0,style:{color:"#ff4d4f","font-size":"11px","margin-top":"2px"}},rt={key:0,style:{color:"var(--text-secondary)","font-size":"12px"}},ut={key:1,style:{color:"var(--text-muted)"}},ct={key:0,style:{color:"var(--text-secondary)","font-size":"12px","font-family":"monospace"}},dt={key:1,style:{color:"var(--text-muted)"}},ft={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},pt={key:0,style:{"padding-top":"8px"}},yt={style:{"font-family":"monospace","font-size":"12px"}},vt={style:{"margin-left":"8px",color:"var(--text-secondary)","font-size":"12px"}},_t={style:{"font-family":"monospace"}},mt={key:0,style:{"font-family":"monospace","font-size":"12px"}},bt={key:1,style:{color:"var(--text-muted)"}},gt={key:0,style:{"font-family":"monospace","font-size":"12px"}},kt={key:1,style:{color:"var(--text-muted)"}},ht={style:{"font-family":"monospace","font-size":"12px"}},xt={style:{"font-family":"monospace","font-size":"11px"}},Lt={style:{color:"#ff4d4f"}},Tt={class:"details-pre"},Ct={__name:"Audit",setup(i){const{t:e}=Fe(),d=je(),b=Be(),h=L(!1),N=L([]),m=L({total:0,failures:0,highRisk:0,byEventType:{},byRiskLevel:{}}),K=L({noDb:!1,error:""}),ae=L("events"),F=L(""),w=L(""),I=L(""),M=L(""),j=L(!1),P=L(!1),f=L(null),ye=U(()=>[{title:e("audit.logColumns.createdAt"),key:"createdAt",width:"160px"},{title:e("audit.logColumns.eventType"),key:"eventType",width:"110px"},{title:e("audit.logColumns.operation"),key:"operation"},{title:e("audit.logColumns.actor"),key:"actor",width:"140px"},{title:e("audit.logColumns.target"),key:"target",width:"180px"},{title:e("audit.logColumns.riskLevel"),key:"riskLevel",width:"90px"},{title:e("audit.logColumns.success"),key:"success",width:"80px"},{title:e("audit.logColumns.mtc"),key:"mtc",width:"110px"},{title:e("audit.logColumns.action"),key:"action",width:"80px"}]),H=L({});function W(a){return a.auditMtcEventId&&H.value[a.id]||null}function ve(a){const o=W(a);return o?o.state==="staging"?e("audit.mtc.stagingLabel"):o.state==="batched"?e("audit.mtc.batchedLabel",{batchId:o.batchId||"?"}):e("audit.mtc.unknownLabel"):e("audit.mtc.signedNotChecked")}function _e(a){const o=W(a);return o?o.state==="staging"?"orange":o.state==="batched"?"green":"default":"blue"}function me(a){if(!a.auditMtcEventId)return"";const o=W(a),c=e("audit.mtc.tooltipBase",{id:a.auditMtcEventId});return o?o.state==="staging"?e("audit.mtc.tooltipStaging",{base:c}):o.state==="batched"?e("audit.mtc.tooltipBatched",{base:c,batchId:o.batchId,treeHead:o.treeHeadId||""}):c:e("audit.mtc.tooltipNotChecked",{base:c})}async function be(a){if(!a.auditMtcEventId)return;const o=a.auditMtcEventId.replace(/"/g,'\\"');try{const c=await d.execute(`audit mtc reconcile-check "${o}" --json`,8e3),C=te(c.output);if(!C){R.warning(e("audit.mtc.noJson"));return}const X=C.found?{state:"batched",batchId:C.batchId,treeHeadId:C.treeHeadId}:C.staging?{state:"staging"}:{state:"unknown"};H.value={...H.value,[a.id]:X}}catch(c){R.error(e("audit.mtc.checkFailed",{err:c?.message||c}))}}const Y=U(()=>m.value.total?(m.value.total-m.value.failures)/m.value.total*100:100),ge=U(()=>!!(w.value||I.value||M.value||j.value)),ke=U(()=>{let a=N.value;if(I.value&&(a=a.filter(o=>o.eventType===I.value)),M.value&&(a=a.filter(o=>o.riskLevel===M.value)),j.value&&(a=a.filter(o=>!o.success)),w.value){const o=w.value.toLowerCase();a=a.filter(c=>(c.operation||"").toLowerCase().includes(o)||(c.actor||"").toLowerCase().includes(o)||(c.target||"").toLowerCase().includes(o))}return a});function q(a){const o=`audit.type.${a}`,c=e(o);return c===o?a:c}function B(a){return{auth:"blue",permission:"purple",data:"cyan",system:"default",file:"green",did:"gold",crypto:"magenta",api:"volcano"}[a]||"default"}function le(a){return{auth:"#1677ff",permission:"#722ed1",data:"#13c2c2",system:"#888",file:"#52c41a",did:"#faad14",crypto:"#eb2f96",api:"#fa541c"}[a]||"#888"}function J(a){const o=`audit.risk.${a}`,c=e(o);return c===o?a:c}function Q(a){return{low:"default",medium:"gold",high:"orange",critical:"red"}[a]||"default"}function he(a){return{low:"#888",medium:"#faad14",high:"#fa8c16",critical:"#ff4d4f"}[a]||"#888"}function oe(a,o){return o?Math.round(a/o*100):0}function xe(a,o){return a?a.length<=o?a:a.slice(0,o)+"…":""}function Le(a){if(typeof a=="string")return a;try{return JSON.stringify(a,null,2)}catch{return String(a)}}let se=null;function Te(){clearTimeout(se),se=setTimeout(()=>{w.value=F.value.trim()},300)}function Ce(){w.value=F.value.trim()}async function ne(){h.value=!0,K.value={noDb:!1,error:""};try{const[a,o]=await Promise.all([d.execute("audit log --json -n 200",12e3).catch(()=>({output:""})),d.execute("audit stats --json",8e3).catch(()=>({output:""}))]),c=[a,o].map(C=>fe(C.output)).find(C=>C.noDb);c&&(K.value=c),N.value=qe(a.output),m.value=Xe(o.output)}catch(a){R.error(e("audit.messages.loadFailed",{err:a?.message||a}))}finally{h.value=!1}}function Se(a){f.value=a,P.value=!0}async function ze(){try{const{output:a}=await d.execute("audit export -f json -n 10000",2e4);if(fe(a).noDb){R.error(e("audit.messages.needInit"));return}if(!a.trim().startsWith("[")){R.error(e("audit.messages.exportFailed",{err:a.slice(0,120)}));return}const c=await b.saveText(a.trim(),{defaultPath:`audit-${new Date().toISOString().slice(0,10)}.json`,filters:[{name:"JSON",extensions:["json"]}]});if(c.canceled)return;R.success(c.path?e("audit.messages.exportOk",{path:c.path}):e("audit.messages.exportOkDefault"))}catch(a){R.error(e("audit.messages.exportFailed",{err:a?.message||a}))}}return He(ne),(a,o)=>{const c=_("a-button"),C=_("a-space"),X=_("a-alert"),O=_("a-statistic"),A=_("a-card"),E=_("a-col"),Z=_("a-row"),S=_("a-tag"),Ae=_("a-input-search"),$=_("a-radio-button"),ie=_("a-radio-group"),Ee=_("a-checkbox"),re=_("a-tooltip"),Re=_("a-table"),ue=_("a-tab-pane"),ce=_("a-progress"),we=_("a-tabs"),T=_("a-descriptions-item"),Ie=_("a-descriptions"),Me=_("a-modal");return u(),p("div",null,[g("div",Ge,[g("div",null,[g("h2",et,r(s(e)("audit.title")),1),g("p",tt,r(s(e)("audit.subtitle")),1)]),l(C,null,{default:t(()=>[l(c,{loading:h.value,onClick:ne},{icon:t(()=>[l(s(Je))]),default:t(()=>[y(" "+r(s(e)("audit.refresh")),1)]),_:1},8,["loading"]),l(c,{onClick:ze},{icon:t(()=>[l(s($e))]),default:t(()=>[y(" "+r(s(e)("audit.exportJson")),1)]),_:1})]),_:1})]),K.value.noDb?(u(),x(X,{key:0,type:"info","show-icon":"",message:s(e)("audit.noDb.message"),description:s(e)("audit.noDb.description"),style:{"margin-bottom":"16px"}},null,8,["message","description"])):k("",!0),l(Z,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:t(()=>[l(E,{xs:12,sm:8,lg:5},{default:t(()=>[l(A,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[l(O,{title:s(e)("audit.stats.total"),value:m.value.total,"value-style":{color:"#1677ff",fontSize:"20px"}},{prefix:t(()=>[l(s(de))]),_:1},8,["title","value"])]),_:1})]),_:1}),l(E,{xs:12,sm:8,lg:5},{default:t(()=>[l(A,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[l(O,{title:s(e)("audit.stats.failures"),value:m.value.failures,"value-style":{color:m.value.failures>0?"#ff4d4f":"#52c41a",fontSize:"20px"}},{prefix:t(()=>[l(s(Ue))]),_:1},8,["title","value","value-style"])]),_:1})]),_:1}),l(E,{xs:12,sm:8,lg:5},{default:t(()=>[l(A,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[l(O,{title:s(e)("audit.stats.highRisk"),value:m.value.highRisk,"value-style":{color:m.value.highRisk>0?"#fa8c16":"#52c41a",fontSize:"20px"}},{prefix:t(()=>[l(s(Ve))]),_:1},8,["title","value","value-style"])]),_:1})]),_:1}),l(E,{xs:12,sm:8,lg:5},{default:t(()=>[l(A,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[l(O,{title:s(e)("audit.stats.critical"),value:m.value.byRiskLevel.critical||0,"value-style":{color:(m.value.byRiskLevel.critical||0)>0?"#ff4d4f":"#888",fontSize:"20px"}},{prefix:t(()=>[l(s(Ke))]),_:1},8,["title","value","value-style"])]),_:1})]),_:1}),l(E,{xs:24,sm:8,lg:4},{default:t(()=>[l(A,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[l(O,{title:s(e)("audit.stats.successRate"),value:Y.value,suffix:"%",precision:1,"value-style":{color:Y.value>=95?"#52c41a":Y.value>=80?"#faad14":"#ff4d4f",fontSize:"20px"}},{prefix:t(()=>[l(s(Pe))]),_:1},8,["title","value","value-style"])]),_:1})]),_:1})]),_:1}),l(A,{title:s(e)("audit.typeCatalogueTitle"),size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"20px"},"body-style":{padding:"12px 16px"}},{default:t(()=>[l(Z,{gutter:[12,12]},{default:t(()=>[(u(!0),p(z,null,D(s(V),n=>(u(),x(E,{key:n,xs:12,sm:8,lg:3},{default:t(()=>[g("div",{class:"type-pill",style:We({borderLeftColor:le(n)})},[l(S,{color:B(n),style:{"font-family":"monospace","font-size":"11px"}},{default:t(()=>[y(r(n),1)]),_:2},1032,["color"]),g("div",at,r(q(n)),1),g("div",lt,r(m.value.byEventType[n]||0),1)],4)]),_:2},1024))),128))]),_:1})]),_:1},8,["title"]),l(we,{activeKey:ae.value,"onUpdate:activeKey":o[4]||(o[4]=n=>ae.value=n),class:"audit-tabs"},{default:t(()=>[l(ue,{key:"events",tab:s(e)("audit.tabs.events")},{default:t(()=>[g("div",ot,[l(Ae,{value:F.value,"onUpdate:value":o[0]||(o[0]=n=>F.value=n),placeholder:s(e)("audit.filter.searchPlaceholder"),"allow-clear":"",style:{"max-width":"280px"},onSearch:Ce,onInput:Te},null,8,["value","placeholder"]),l(ie,{value:I.value,"onUpdate:value":o[1]||(o[1]=n=>I.value=n),size:"small","button-style":"solid"},{default:t(()=>[l($,{value:""},{default:t(()=>[y(r(s(e)("audit.filter.allTypes")),1)]),_:1}),(u(!0),p(z,null,D(s(V),n=>(u(),x($,{key:n,value:n},{default:t(()=>[y(r(q(n)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"]),l(ie,{value:M.value,"onUpdate:value":o[2]||(o[2]=n=>M.value=n),size:"small"},{default:t(()=>[l($,{value:""},{default:t(()=>[y(r(s(e)("audit.filter.allRisks")),1)]),_:1}),(u(!0),p(z,null,D(s(ee),n=>(u(),x($,{key:n,value:n},{default:t(()=>[y(r(J(n)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"]),l(Ee,{checked:j.value,"onUpdate:checked":o[3]||(o[3]=n=>j.value=n)},{default:t(()=>[y(r(s(e)("audit.filter.failuresOnly")),1)]),_:1},8,["checked"])]),l(Re,{columns:ye.value,"data-source":ke.value,pagination:{pageSize:20,showTotal:n=>s(e)("audit.totals.rows",{count:n})},size:"small",loading:h.value,style:{background:"var(--bg-card)"}},{bodyCell:t(({column:n,record:v})=>[n.key==="createdAt"?(u(),p("span",st,r(s(pe)(v.createdAt)),1)):k("",!0),n.key==="eventType"?(u(),x(S,{key:1,color:B(v.eventType),style:{"font-family":"monospace"}},{default:t(()=>[y(r(v.eventType),1)]),_:2},1032,["color"])):k("",!0),n.key==="operation"?(u(),p(z,{key:2},[g("span",nt,r(v.operation),1),v.errorMessage?(u(),p("div",it,r(v.errorMessage),1)):k("",!0)],64)):k("",!0),n.key==="actor"?(u(),p(z,{key:3},[v.actor?(u(),p("span",rt,r(v.actor),1)):(u(),p("span",ut,"—"))],64)):k("",!0),n.key==="target"?(u(),p(z,{key:4},[v.target?(u(),p("span",ct,r(xe(v.target,32)),1)):(u(),p("span",dt,"—"))],64)):k("",!0),n.key==="riskLevel"?(u(),x(S,{key:5,color:Q(v.riskLevel)},{default:t(()=>[y(r(J(v.riskLevel)),1)]),_:2},1032,["color"])):k("",!0),n.key==="success"?(u(),x(S,{key:6,color:v.success?"green":"red"},{default:t(()=>[y(r(v.success?"OK":"FAIL"),1)]),_:2},1032,["color"])):k("",!0),n.key==="mtc"?(u(),p(z,{key:7},[s(Ze)(v)==="none"?(u(),x(re,{key:0,title:s(e)("audit.mtc.noneTooltip")},{default:t(()=>[l(S,{color:"default"},{default:t(()=>[...o[6]||(o[6]=[y("—",-1)])]),_:1})]),_:1},8,["title"])):(u(),x(re,{key:1,title:me(v)},{default:t(()=>[l(S,{color:_e(v),style:{cursor:"pointer"},onClick:Oe=>be(v)},{default:t(()=>[y(r(ve(v)),1)]),_:2},1032,["color","onClick"])]),_:2},1032,["title"]))],64)):k("",!0),n.key==="action"?(u(),x(c,{key:8,size:"small",type:"link",onClick:Oe=>Se(v)},{default:t(()=>[y(r(s(e)("audit.rowAction.details")),1)]),_:1},8,["onClick"])):k("",!0)]),emptyText:t(()=>[g("div",ft,[l(s(de),{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),y(" "+r(ge.value?s(e)("audit.empty.filtered"):s(e)("audit.empty.noEvents")),1)])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"]),l(ue,{key:"breakdown",tab:s(e)("audit.tabs.breakdown")},{default:t(()=>[l(Z,{gutter:[16,16]},{default:t(()=>[l(E,{xs:24,lg:12},{default:t(()=>[l(A,{title:s(e)("audit.breakdown.byType"),size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[(u(!0),p(z,null,D(s(V),n=>(u(),p("div",{key:n,class:"bd-row"},[l(S,{color:B(n),style:{"min-width":"80px","text-align":"center","font-family":"monospace"}},{default:t(()=>[y(r(n),1)]),_:2},1032,["color"]),l(ce,{percent:oe(m.value.byEventType[n]||0,m.value.total),"stroke-color":le(n),format:()=>`${m.value.byEventType[n]||0}`,size:"small",style:{flex:"1","margin-left":"12px"}},null,8,["percent","stroke-color","format"])]))),128))]),_:1},8,["title"])]),_:1}),l(E,{xs:24,lg:12},{default:t(()=>[l(A,{title:s(e)("audit.breakdown.byRisk"),size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[(u(!0),p(z,null,D(s(ee),n=>(u(),p("div",{key:n,class:"bd-row"},[l(S,{color:Q(n),style:{"min-width":"80px","text-align":"center"}},{default:t(()=>[y(r(J(n)),1)]),_:2},1032,["color"]),l(ce,{percent:oe(m.value.byRiskLevel[n]||0,m.value.total),"stroke-color":he(n),format:()=>`${m.value.byRiskLevel[n]||0}`,size:"small",style:{flex:"1","margin-left":"12px"}},null,8,["percent","stroke-color","format"])]))),128))]),_:1},8,["title"])]),_:1})]),_:1})]),_:1},8,["tab"])]),_:1},8,["activeKey"]),l(Me,{open:P.value,"onUpdate:open":o[5]||(o[5]=n=>P.value=n),title:s(e)("audit.details.title",{id:f.value?.id?.slice(0,8)||""}),width:720,footer:null},{default:t(()=>[f.value?(u(),p("div",pt,[l(Ie,{column:2,size:"small",bordered:""},{default:t(()=>[l(T,{label:s(e)("audit.details.id"),span:2},{default:t(()=>[g("span",yt,r(f.value.id),1)]),_:1},8,["label"]),l(T,{label:s(e)("audit.details.eventType")},{default:t(()=>[l(S,{color:B(f.value.eventType),style:{"font-family":"monospace"}},{default:t(()=>[y(r(f.value.eventType),1)]),_:1},8,["color"]),g("span",vt,r(q(f.value.eventType)),1)]),_:1},8,["label"]),l(T,{label:s(e)("audit.details.riskLevel")},{default:t(()=>[l(S,{color:Q(f.value.riskLevel)},{default:t(()=>[y(r(J(f.value.riskLevel)),1)]),_:1},8,["color"])]),_:1},8,["label"]),l(T,{label:s(e)("audit.details.operation"),span:2},{default:t(()=>[g("span",_t,r(f.value.operation),1)]),_:1},8,["label"]),l(T,{label:s(e)("audit.details.status")},{default:t(()=>[l(S,{color:f.value.success?"green":"red"},{default:t(()=>[y(r(f.value.success?s(e)("audit.details.success"):s(e)("audit.details.failure")),1)]),_:1},8,["color"])]),_:1},8,["label"]),l(T,{label:s(e)("audit.details.time")},{default:t(()=>[y(r(s(pe)(f.value.createdAt)),1)]),_:1},8,["label"]),l(T,{label:s(e)("audit.details.actor")},{default:t(()=>[f.value.actor?(u(),p("span",mt,r(f.value.actor),1)):(u(),p("span",bt,"—"))]),_:1},8,["label"]),l(T,{label:s(e)("audit.details.target")},{default:t(()=>[f.value.target?(u(),p("span",gt,r(f.value.target),1)):(u(),p("span",kt,"—"))]),_:1},8,["label"]),f.value.ipAddress?(u(),x(T,{key:0,label:s(e)("audit.details.ip")},{default:t(()=>[g("span",ht,r(f.value.ipAddress),1)]),_:1},8,["label"])):k("",!0),f.value.userAgent?(u(),x(T,{key:1,label:s(e)("audit.details.userAgent")},{default:t(()=>[g("span",xt,r(f.value.userAgent),1)]),_:1},8,["label"])):k("",!0),f.value.errorMessage?(u(),x(T,{key:2,label:s(e)("audit.details.errorMessage"),span:2},{default:t(()=>[g("span",Lt,r(f.value.errorMessage),1)]),_:1},8,["label"])):k("",!0),f.value.details?(u(),x(T,{key:3,label:s(e)("audit.details.details"),span:2},{default:t(()=>[g("pre",Tt,r(Le(f.value.details)),1)]),_:1},8,["label"])):k("",!0)]),_:1})])):k("",!0)]),_:1},8,["open","title"])])}}},wt=Ne(Ct,[["__scopeId","data-v-42ba1d8d"]]);export{wt as default};
|
package/src/assets/web-panel/assets/{BackgroundAgents-9TMG041Q.js → BackgroundAgents-CFB1fxsr.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{E as ee,r as c,f as Z,w as te,o as ne,e as ae,M as j,R as P,c as d,N as l,u,Q as M,S as x,K as _,L as g,O as m,F as W,P as h,n as se}from"./vendor-BXcBOG8b.js";import{u as b,_ as le,d as D}from"./index-
|
|
1
|
+
import{E as ee,r as c,f as Z,w as te,o as ne,e as ae,M as j,R as P,c as d,N as l,u,Q as M,S as x,K as _,L as g,O as m,F as W,P as h,n as se}from"./vendor-BXcBOG8b.js";import{u as b,_ as le,d as D}from"./index-CzoKAiyT.js";import{R as oe}from"./icons-DlxlFL4g.js";function R(y,t={}){return{type:y,...t}}function ue(y){if(typeof y!="object"||y===null)return!1;const t=y;return(t.type==="bg-event"||t.type==="bg-log")&&typeof t.bgId=="string"}const J=200,Y=4e5,re=ee("backgroundAgents",()=>{const y=c([]),t=c(!1),C=c(!0),r=c(null),E=c(null),A=c(!1),$=c(""),S=c([]);let T=null,w=null;const H=Z(()=>y.value.filter(n=>n.status==="running"));async function v(){const n=b();t.value=!0;try{const a=await n.sendRaw(R("bg-list",{all:C.value}));a&&Array.isArray(a.sessions)&&(y.value=a.sessions)}catch{}finally{t.value=!1}}function F(n){S.value.push(n),S.value.length>J&&S.value.splice(0,S.value.length-J)}function G(n){$.value+=n,$.value.length>Y&&($.value=$.value.slice(-Y))}function L(){if(w)return;w=b().onMessage(a=>{!ue(a)||a.bgId!==r.value||(a.type==="bg-log"&&typeof a.chunk=="string"?G(a.chunk):a.type==="bg-event"&&a.event&&(F(a.event),a.event.type==="transport-closed"?(A.value=!0,v()):(a.event.type==="turn-started"||a.event.type==="turn-ended"||a.event.type==="idle")&&v()))})}async function B(n){const a=b();r.value&&r.value!==n&&await O();const o=await a.sendRaw(R("bg-attach",{bgId:n,lines:200}));return r.value=n,E.value=o?.hello||null,A.value=!1,o?.reattached||($.value=typeof o?.log=="string"?o.log:"",S.value=[]),L(),o}async function N(n){const a=b(),o=String(n||"").trim();return!r.value||!o?!1:(await a.sendRaw(R("bg-prompt",{bgId:r.value,text:o})),!0)}async function I(){const n=b();r.value&&await n.sendRaw(R("bg-stop-turn",{bgId:r.value}))}async function O(){const n=b(),a=r.value;if(r.value=null,E.value=null,A.value=!1,a)try{await n.sendRaw(R("bg-detach",{bgId:a}))}catch{}}async function K(n,a){const o=b(),p=String(a||"").trim();return!n||!p?!1:(await o.sendRaw(R("bg-rename",{bgId:n,title:p})),await v(),!0)}async function q(n,a){const o=b(),p=String(a||"").trim();if(!n||!p)return null;const X=await o.sendRaw(R("bg-resume",{bgId:n,text:p}));return await v(),X?.session||null}async function s(n){const a=b(),o=n||r.value;if(o)try{await a.sendRaw(R("bg-stop",{bgId:o}))}finally{r.value===o&&(r.value=null,E.value=null),await v()}}function e(n=5e3){V(),v(),T=setInterval(v,n)}function V(){T&&(clearInterval(T),T=null)}async function k(){V(),w&&(w(),w=null),await O()}function z(n){switch(n){case"running":return"processing";case"completed":return"success";case"failed":return"error";case"stopped":return"warning";case"lost":return"error";default:return"default"}}function U(n,a=Date.now()){const o=n?.endedAt||a,p=Math.max(0,o-(n?.startedAt||o));return p<6e4?`${Math.round(p/1e3)}s`:p<36e5?`${Math.floor(p/6e4)}m ${Math.round(p%6e4/1e3)}s`:`${Math.floor(p/36e5)}h ${Math.floor(p%36e5/6e4)}m`}return{sessions:y,loading:t,showAll:C,running:H,attachedId:r,attachedHello:E,transportClosed:A,logText:$,events:S,fetchSessions:v,attach:B,sendPrompt:N,stopTurn:I,detach:O,renameSession:K,resumeSession:q,stopSession:s,startPolling:e,stopPolling:V,teardown:k,getStatusColor:z,formatElapsed:U}}),ie={class:"page-header"},de={key:0,class:"event-line"},ce={class:"prompt-row"},pe={__name:"BackgroundAgents",setup(y){const t=re(),C=c(""),r=c(null),E=[{title:"ID",dataIndex:"id",key:"id",ellipsis:!0},{title:"状态",key:"status",width:160},{title:"标题",dataIndex:"title",key:"title",ellipsis:!0},{title:"轮次",dataIndex:"turnCount",key:"turnCount",width:70},{title:"耗时",key:"elapsed",width:100},{title:"操作",key:"actions",width:170}],A=Z(()=>t.events.length?t.events[t.events.length-1]:null);function $(s){switch(s.type){case"turn-started":return`第 ${s.turn} 轮开始${s.prompt?`:${s.prompt}`:""}`;case"turn-ended":return`第 ${s.turn} 轮结束(exit ${s.exitCode})`;case"idle":return"会话空闲,等待 follow-up prompt";case"accepted":return`prompt 已排队(#${s.queued})`;case"stopping":return"正在停止当前轮";case"transport-closed":return"会话已收尾,连接关闭";case"error":return`错误:${s.message}`;default:return s.type}}async function S(s){try{await t.attach(s)}catch(e){D.error(`接管失败:${e.message}`)}}async function T(){const s=C.value;if(s.trim())try{await t.sendPrompt(s),C.value=""}catch(e){D.error(`发送失败:${e.message}`)}}const w=c(!1),H=c(!1),v=c("");let F=null;function G(s){F=s.id,v.value=s.title||"",w.value=!0}async function L(){if(v.value.trim()){H.value=!0;try{await t.renameSession(F,v.value),w.value=!1}catch(s){D.error(`重命名失败:${s.message}`)}finally{H.value=!1}}}const B=c(!1),N=c(!1),I=c("");let O=null;function K(s){O=s.id,I.value="",B.value=!0}async function q(){if(I.value.trim()){N.value=!0;try{const s=await t.resumeSession(O,I.value);B.value=!1,s&&D.success(`已续跑为 ${s.id}`)}catch(s){D.error(`续跑失败:${s.message}`)}finally{N.value=!1}}}return te(()=>t.logText,async()=>{await se(),r.value&&(r.value.scrollTop=r.value.scrollHeight)}),ne(()=>t.startPolling(5e3)),ae(()=>t.teardown()),(s,e)=>{const V=_("a-switch"),k=_("a-button"),z=_("a-space"),U=_("a-tag"),n=_("a-popconfirm"),a=_("a-table"),o=_("a-input"),p=_("a-card"),X=_("a-modal");return g(),j("div",null,[P("div",ie,[e[11]||(e[11]=P("div",null,[P("h2",{class:"page-title"},"后台 Agent"),P("p",{class:"page-sub"}," 查看 cc agent --bg 后台会话,实时跟随日志并交互接管(follow-up prompt / 停止本轮)。 ")],-1)),d(z,null,{default:l(()=>[d(V,{checked:u(t).showAll,"onUpdate:checked":e[0]||(e[0]=i=>u(t).showAll=i),"checked-children":"全部","un-checked-children":"运行中",onChange:e[1]||(e[1]=i=>u(t).fetchSessions())},null,8,["checked"]),d(k,{ghost:"",loading:u(t).loading,onClick:e[2]||(e[2]=i=>u(t).fetchSessions())},{icon:l(()=>[d(u(oe))]),default:l(()=>[e[10]||(e[10]=m(" 刷新 ",-1))]),_:1},8,["loading"])]),_:1})]),d(a,{"data-source":u(t).sessions,columns:E,"row-key":"id",size:"small",pagination:{pageSize:8,hideOnSinglePage:!0},class:"bg-table"},{bodyCell:l(({column:i,record:f})=>[i.key==="status"?(g(),j(W,{key:0},[d(U,{color:u(t).getStatusColor(f.status)},{default:l(()=>[m(h(f.status),1)]),_:2},1032,["color"]),f.phase?(g(),M(U,{key:0,color:"default"},{default:l(()=>[m(h(f.phase),1)]),_:2},1024)):x("",!0)],64)):i.key==="elapsed"?(g(),j(W,{key:1},[m(h(u(t).formatElapsed(f)),1)],64)):i.key==="actions"?(g(),M(z,{key:2},{default:l(()=>[d(k,{size:"small",type:"primary",disabled:f.status!=="running"||!f.interactive,onClick:Q=>S(f.id)},{default:l(()=>[m(h(u(t).attachedId===f.id?"已连接":"接管"),1)]),_:2},1032,["disabled","onClick"]),d(k,{size:"small",onClick:Q=>G(f)},{default:l(()=>[...e[12]||(e[12]=[m("重命名",-1)])]),_:1},8,["onClick"]),f.status!=="running"&&f.sessionId?(g(),M(k,{key:0,size:"small",onClick:Q=>K(f)},{default:l(()=>[...e[13]||(e[13]=[m(" 续跑 ",-1)])]),_:1},8,["onClick"])):x("",!0),f.status==="running"?(g(),M(n,{key:1,title:"终止整个后台会话?",onConfirm:Q=>u(t).stopSession(f.id)},{default:l(()=>[d(k,{size:"small",danger:""},{default:l(()=>[...e[14]||(e[14]=[m("终止",-1)])]),_:1})]),_:1},8,["onConfirm"])):x("",!0)]),_:2},1024)):x("",!0)]),_:1},8,["data-source"]),u(t).attachedId?(g(),M(p,{key:0,size:"small",class:"attach-card"},{title:l(()=>[d(z,null,{default:l(()=>[P("span",null,h(u(t).attachedId),1),u(t).attachedHello?(g(),M(U,{key:0,color:"processing"},{default:l(()=>[m(" turn "+h(u(t).attachedHello.turn)+" · "+h(u(t).attachedHello.phase),1)]),_:1})):x("",!0),u(t).transportClosed?(g(),M(U,{key:1,color:"warning"},{default:l(()=>[...e[15]||(e[15]=[m("会话已结束",-1)])]),_:1})):x("",!0)]),_:1})]),extra:l(()=>[d(z,null,{default:l(()=>[d(k,{size:"small",disabled:u(t).transportClosed,onClick:e[3]||(e[3]=i=>u(t).stopTurn())},{default:l(()=>[...e[16]||(e[16]=[m("停止本轮",-1)])]),_:1},8,["disabled"]),d(k,{size:"small",onClick:e[4]||(e[4]=i=>u(t).detach())},{default:l(()=>[...e[17]||(e[17]=[m("断开",-1)])]),_:1})]),_:1})]),default:l(()=>[P("pre",{ref_key:"logPane",ref:r,class:"log-pane"},h(u(t).logText||"(暂无输出)"),513),A.value?(g(),j("div",de," — "+h($(A.value)),1)):x("",!0),P("div",ce,[d(o,{value:C.value,"onUpdate:value":e[5]||(e[5]=i=>C.value=i),placeholder:"输入 follow-up prompt,回车发送到该后台会话",disabled:u(t).transportClosed,onPressEnter:T},null,8,["value","disabled"]),d(k,{type:"primary",disabled:u(t).transportClosed||!C.value.trim(),onClick:T},{default:l(()=>[...e[18]||(e[18]=[m(" 发送 ",-1)])]),_:1},8,["disabled"])])]),_:1})):x("",!0),d(X,{open:w.value,"onUpdate:open":e[7]||(e[7]=i=>w.value=i),title:"重命名后台会话","confirm-loading":H.value,onOk:L},{default:l(()=>[d(o,{value:v.value,"onUpdate:value":e[6]||(e[6]=i=>v.value=i),placeholder:"新标题",onPressEnter:L},null,8,["value"])]),_:1},8,["open","confirm-loading"]),d(X,{open:B.value,"onUpdate:open":e[9]||(e[9]=i=>B.value=i),title:"续跑该会话(新的后台运行,续接同一对话)","confirm-loading":N.value,onOk:q},{default:l(()=>[d(o,{value:I.value,"onUpdate:value":e[8]||(e[8]=i=>I.value=i),placeholder:"输入要继续执行的 prompt",onPressEnter:q},null,8,["value"])]),_:1},8,["open","confirm-loading"])])}}},ge=le(pe,[["__scopeId","data-v-da096c10"]]);export{ge as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{_ as Ue,b as Ke,u as Ve,t as Je,d as xe}from"./index-Cs66y4oC.js";import{u as qe}from"./useFs-gpl11PEF.js";import{R as Ge,aA as He,at as he,_ as re,q as I,aT as K,aR as Qe}from"./icons-DlxlFL4g.js";import{o as We,M as i,R as f,P as n,u as a,c as o,N as s,r as c,K as y,L as u,O as b,Q as _,S as r,F as Xe,f as pe}from"./vendor-BXcBOG8b.js";import"./useShellMode-CgR0wCYM.js";const de=["B","KB","MB","GB","TB","PB","EB"];function we(D){if(D==null||isNaN(D))return"-";const e=Number(D);if(e<0)return"-";if(e===0)return"0 B";let d=Math.floor(Math.log(e)/Math.log(1024));return d<0&&(d=0),d>=de.length&&(d=de.length-1),(e/Math.pow(1024,d)).toFixed(d>0?1:0)+" "+de[d]}const Ye={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},Ze={class:"page-title"},ea={class:"page-sub"},aa={key:0,style:{"text-align":"center",padding:"30px"}},ta={key:0,style:{"font-family":"monospace",color:"var(--text-muted)","font-size":"12px"}},oa={key:1},sa={key:2,style:{color:"var(--text-secondary)","font-size":"12px"}},la={key:3,style:{"margin-top":"16px"}},na={style:{color:"var(--text-secondary)","font-size":"11px","margin-bottom":"6px"}},ca={style:{background:"var(--bg-base)",border:"1px solid var(--border-color)","border-radius":"6px",padding:"12px",color:"#aaa","font-size":"12px","max-height":"200px","overflow-y":"auto","white-space":"pre-wrap"}},ua={key:4,style:{"margin-top":"12px",color:"#ff4d4f","font-size":"12px"}},ia={style:{color:"var(--text-secondary)"}},ra={key:0,style:{background:"var(--bg-base)",border:"1px solid var(--border-color)","border-radius":"6px",padding:"12px","margin-top":"8px"}},pa={style:{"font-family":"monospace"}},da={key:0},va={key:1,style:{"margin-top":"12px"}},fa={style:{background:"var(--bg-base)",border:"1px solid var(--border-color)","border-radius":"6px",padding:"12px",color:"#aaa","font-size":"12px","white-space":"pre-wrap"}},ya={key:0,style:{"text-align":"center",padding:"30px"}},ba={key:0,style:{"margin-bottom":"16px"}},ka={style:{color:"var(--text-secondary)","font-size":"11px","margin-bottom":"6px"}},ga={style:{background:"var(--bg-base)",border:"1px solid var(--border-color)","border-radius":"6px",padding:"12px",color:"#aaa","font-size":"12px","max-height":"200px","overflow-y":"auto","white-space":"pre-wrap"}},ma={key:0,style:{"font-family":"monospace","font-size":"12px"}},_a={key:2,style:{"margin-top":"12px",color:"#ff4d4f","font-size":"12px"}},xa={key:0,style:{"text-align":"center",padding:"30px"}},ha={key:2,style:{"margin-top":"12px",color:"#ff4d4f","font-size":"12px"}},wa={key:0,style:{"text-align":"center",padding:"30px"}},za={key:0,style:{"font-family":"monospace",color:"var(--text-muted)","font-size":"12px"}},Ca={key:1},Sa={key:2},Aa={key:3,style:{color:"var(--text-secondary)","font-size":"12px"}},Ba={key:3,style:{"margin-top":"12px",color:"#ff4d4f","font-size":"12px"}},La={style:{"margin-bottom":"12px",color:"var(--text-secondary)"}},Ma={key:0,style:{"margin-top":"12px"}},Oa={style:{background:"var(--bg-base)",border:"1px solid var(--border-color)","border-radius":"6px",padding:"12px",color:"#aaa","font-size":"12px","white-space":"pre-wrap"}},Pa={__name:"Backup",setup(D){const{t:e}=Ke(),d=Ve(),ze=qe(),V=c(!1),ve=c("backup"),J=c(!1),q=c(!1),G=c(!1),M=c(""),g=c([]),h=c(""),Ce=pe(()=>[{title:e("backup.backupColumns.id"),key:"id"},{title:e("backup.backupColumns.size"),key:"size",width:120},{title:e("backup.backupColumns.createdAt"),key:"createdAt"},{title:e("backup.backupColumns.action"),key:"action",width:100}]);async function fe(){q.value=!0,M.value="";try{const{output:t}=await d.execute("backup list --json",15e3),l=T(t);Array.isArray(l)?g.value=l:l&&Array.isArray(l.backups)?g.value=l.backups:(g.value=[],t&&t.trim()&&(h.value=t))}catch(t){M.value=e("backup.messages.loadBackupsFailed",{err:t.message})}finally{q.value=!1}}async function Se(){G.value=!0,h.value="",M.value="";try{const{output:t}=await d.execute("backup create --json",3e4);h.value=t||e("backup.backup.createDefaultMessage"),await fe()}catch(t){h.value=e("backup.messages.createBackupFailed",{err:t.message})}finally{G.value=!1}}const H=c(!1),Q=c(!1),w=c(null),z=c("");function Ae(t){w.value=t,z.value="",H.value=!0}async function Be(){if(w.value){Q.value=!0,z.value="";try{const{output:t}=await d.execute(`backup restore ${w.value.id}`,6e4);z.value=t||e("backup.backup.restoreDefaultMessage")}catch(t){z.value=e("backup.messages.restoreFailed",{err:t.message})}finally{Q.value=!1}}}const W=c(!1),R=c(""),O=c(!1),N=c(""),j=c(0),X=c(""),x=c(""),Y=c(!1),Z=c(!1),C=c([]),Le=pe(()=>[{title:e("backup.conflictColumns.path"),key:"path"},{title:e("backup.conflictColumns.type"),key:"type",width:120}]);async function ee(){W.value=!0,R.value="";try{const{output:t}=await d.execute("sync status --json",15e3),l=T(t);l?(O.value=l.online||l.synced||l.status==="online"||!1,N.value=O.value?e("backup.sync.synced"):e("backup.sync.notSynced"),j.value=l.pending??l.pendingChanges??0,X.value=l.lastSync||l.lastSyncTime||""):Me(t)}catch(t){R.value=e("backup.messages.loadSyncFailed",{err:t.message})}finally{W.value=!1}}function Me(t){if(!t){N.value=e("backup.sync.unknown");return}O.value=/synced|online|up.to.date/i.test(t),N.value=O.value?e("backup.sync.synced"):e("backup.sync.notSynced");const l=t.match(/pending[:\s]+(\d+)/i);j.value=l?parseInt(l[1]):0;const k=t.match(/last[:\s]+(.+)/i);k&&(X.value=k[1].trim())}async function Oe(){Y.value=!0,x.value="";try{const{output:t}=await d.execute("sync push",3e4);x.value=t||e("backup.sync.pushDefaultMessage"),await ee()}catch(t){x.value=e("backup.messages.pushFailed",{err:t.message})}finally{Y.value=!1}}async function Pe(){Z.value=!0,x.value="";try{const{output:t}=await d.execute("sync pull",3e4);x.value=t||e("backup.sync.pullDefaultMessage"),await ee()}catch(t){x.value=e("backup.messages.pullFailed",{err:t.message})}finally{Z.value=!1}}async function Fe(){try{const{output:t}=await d.execute("sync conflicts --json",15e3),l=T(t);Array.isArray(l)?C.value=l:l&&Array.isArray(l.conflicts)?C.value=l.conflicts:C.value=[]}catch{C.value=[]}}const ae=c(!1),E=c(""),S=c(!1),te=c(""),oe=c(!1),P=c(""),A=c([]),Te=pe(()=>[{title:e("backup.pinColumns.cid"),key:"cid"},{title:e("backup.pinColumns.name"),key:"name"},{title:e("backup.pinColumns.size"),key:"size",width:120},{title:e("backup.pinColumns.pinnedAt"),key:"pinnedAt"},{title:e("backup.pinColumns.action"),key:"action",width:120}]);async function Ie(){ae.value=!0,E.value="";try{const{output:t}=await d.execute("ipfs status --json",15e3),l=T(t);if(l)S.value=l.online||l.status==="online"||l.connected||!1,te.value=l.peerId||l.id||"";else{S.value=t?/online|connected|running/i.test(t):!1;const k=t?t.match(/(?:peer\s*id|id)[:\s]+(\S+)/i):null;te.value=k?k[1]:""}}catch(t){E.value=e("backup.messages.loadIpfsFailed",{err:t.message})}finally{ae.value=!1}}async function se(){oe.value=!0,P.value="";try{const{output:t}=await d.execute("ipfs pins --json",15e3),l=T(t);Array.isArray(l)?A.value=l:l&&Array.isArray(l.pins)?A.value=l.pins:A.value=[]}catch(t){P.value=e("backup.messages.loadPinsFailed",{err:t.message})}finally{oe.value=!1}}const le=c(!1),ne=c(!1),$=c(""),F=c("");async function ye(){if($.value.trim()){ne.value=!0,F.value="";try{const{output:t}=await d.execute(`ipfs pin "${$.value.trim()}"`,3e4);F.value=t||e("backup.ipfs.pinDefaultSuccess"),await se()}catch(t){F.value=e("backup.messages.pinFailed",{err:t.message})}finally{ne.value=!1}}}async function De(t){try{await d.execute(`ipfs unpin ${t.cid}`,15e3),await se()}catch(l){P.value=e("backup.messages.unpinFailed",{err:l.message})}}function T(t){return Je(t)}async function Re(){if(g.value.length){V.value=!0;try{const t=await ze.saveJson({schema:1,exportedAt:new Date().toISOString(),count:g.value.length,backups:g.value},{defaultPath:`backup-list-${new Date().toISOString().slice(0,10)}.json`});if(t.canceled)return;xe.success(t.path?e("backup.messages.exportOk",{count:g.value.length,path:t.path}):e("backup.messages.exportOkDefault"))}catch(t){xe.error(e("backup.messages.exportFailed",{err:t.message||t}))}finally{V.value=!1}}}async function be(){J.value=!0;try{await Promise.all([fe(),ee(),Fe(),Ie(),se()])}finally{J.value=!1}}return We(be),(t,l)=>{const k=y("a-button"),ce=y("a-space"),U=y("a-spin"),ke=y("a-empty"),ue=y("a-table"),m=y("a-card"),ge=y("a-modal"),ie=y("a-tab-pane"),B=y("a-statistic"),L=y("a-col"),me=y("a-row"),_e=y("a-tag"),Ne=y("a-popconfirm"),je=y("a-input"),Ee=y("a-tabs");return u(),i("div",null,[f("div",Ye,[f("div",null,[f("h2",Ze,n(a(e)("backup.title")),1),f("p",ea,n(a(e)("backup.subtitle")),1)]),o(k,{type:"primary",ghost:"",loading:J.value,onClick:be},{icon:s(()=>[o(a(Ge))]),default:s(()=>[b(" "+n(a(e)("backup.refresh")),1)]),_:1},8,["loading"])]),o(Ee,{activeKey:ve.value,"onUpdate:activeKey":l[4]||(l[4]=p=>ve.value=p),type:"card"},{default:s(()=>[o(ie,{key:"backup"},{tab:s(()=>[o(a(re)),b(" "+n(a(e)("backup.tabs.backup")),1)]),default:s(()=>[o(m,{style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"20px"}},{title:s(()=>[o(ce,null,{default:s(()=>[o(a(re)),f("span",null,n(a(e)("backup.backup.cardTitle")),1)]),_:1})]),extra:s(()=>[o(ce,null,{default:s(()=>[o(k,{disabled:!g.value.length,loading:V.value,onClick:Re},{icon:s(()=>[o(a(He))]),default:s(()=>[b(" "+n(a(e)("backup.backup.exportButton")),1)]),_:1},8,["disabled","loading"]),o(k,{type:"primary",loading:G.value,onClick:Se},{icon:s(()=>[o(a(he))]),default:s(()=>[b(" "+n(a(e)("backup.backup.createButton")),1)]),_:1},8,["loading"])]),_:1})]),default:s(()=>[q.value?(u(),i("div",aa,[o(U)])):g.value.length===0&&!h.value?(u(),_(ke,{key:1,description:a(e)("backup.backup.emptyText")},null,8,["description"])):r("",!0),g.value.length>0?(u(),_(ue,{key:2,columns:Ce.value,"data-source":g.value,pagination:!1,size:"small","row-key":"id"},{bodyCell:s(({column:p,record:v})=>[p.key==="id"?(u(),i("span",ta,n(v.id.length>20?v.id.slice(0,20)+"...":v.id),1)):r("",!0),p.key==="size"?(u(),i("span",oa,n(a(we)(v.size)),1)):r("",!0),p.key==="createdAt"?(u(),i("span",sa,n(v.createdAt||"-"),1)):r("",!0),p.key==="action"?(u(),_(k,{key:3,size:"small",type:"link",onClick:$e=>Ae(v)},{default:s(()=>[b(n(a(e)("backup.backupColumns.restore")),1)]),_:1},8,["onClick"])):r("",!0)]),_:1},8,["columns","data-source"])):r("",!0),h.value?(u(),i("div",la,[f("div",na,n(a(e)("backup.backup.lastResultLabel")),1),f("pre",ca,n(h.value),1)])):r("",!0),M.value?(u(),i("div",ua,n(M.value),1)):r("",!0)]),_:1}),o(ge,{open:H.value,"onUpdate:open":l[0]||(l[0]=p=>H.value=p),title:a(e)("backup.backup.restoreTitle"),"ok-text":a(e)("backup.backup.restoreOk"),"cancel-text":a(e)("common.cancel"),"confirm-loading":Q.value,onOk:Be,"ok-type":"danger"},{default:s(()=>[f("p",ia,n(a(e)("backup.backup.restoreIntro")),1),w.value?(u(),i("div",ra,[f("div",null,[f("strong",null,n(a(e)("backup.backup.backupIdPrefix")),1),l[5]||(l[5]=b()),f("span",pa,n(w.value.id),1)]),w.value.createdAt?(u(),i("div",da,[f("strong",null,n(a(e)("backup.backup.createdAtPrefix")),1),b(" "+n(w.value.createdAt),1)])):r("",!0)])):r("",!0),z.value?(u(),i("div",va,[f("pre",fa,n(z.value),1)])):r("",!0)]),_:1},8,["open","title","ok-text","cancel-text","confirm-loading"])]),_:1}),o(ie,{key:"sync"},{tab:s(()=>[o(a(I)),b(" "+n(a(e)("backup.tabs.sync")),1)]),default:s(()=>[W.value?(u(),i("div",ya,[o(U)])):(u(),i(Xe,{key:1},[o(me,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:s(()=>[o(L,{xs:24,sm:8},{default:s(()=>[o(m,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:s(()=>[o(B,{title:a(e)("backup.sync.statusLabel"),value:N.value,"value-style":{color:O.value?"#52c41a":"#888",fontSize:"16px"}},{prefix:s(()=>[o(a(I))]),_:1},8,["title","value","value-style"])]),_:1})]),_:1}),o(L,{xs:24,sm:8},{default:s(()=>[o(m,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:s(()=>[o(B,{title:a(e)("backup.sync.pendingLabel"),value:j.value,"value-style":{color:j.value>0?"#faad14":"#52c41a",fontSize:"16px"}},{prefix:s(()=>[o(a(I))]),_:1},8,["title","value","value-style"])]),_:1})]),_:1}),o(L,{xs:24,sm:8},{default:s(()=>[o(m,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:s(()=>[o(B,{title:a(e)("backup.sync.lastSyncLabel"),value:X.value||a(e)("backup.sync.noLastSync"),"value-style":{color:"var(--text-secondary)",fontSize:"16px"}},{prefix:s(()=>[o(a(I))]),_:1},8,["title","value"])]),_:1})]),_:1})]),_:1}),o(ce,{style:{"margin-bottom":"16px"}},{default:s(()=>[o(k,{loading:Y.value,onClick:Oe,style:{background:"var(--bg-card-hover)","border-color":"var(--border-color)"}},{icon:s(()=>[o(a(re))]),default:s(()=>[b(" "+n(a(e)("backup.sync.pushButton")),1)]),_:1},8,["loading"]),o(k,{loading:Z.value,onClick:Pe,style:{background:"var(--bg-card-hover)","border-color":"var(--border-color)"}},{icon:s(()=>[o(a(I))]),default:s(()=>[b(" "+n(a(e)("backup.sync.pullButton")),1)]),_:1},8,["loading"])]),_:1}),x.value?(u(),i("div",ba,[f("div",ka,n(a(e)("backup.sync.outputLabel")),1),f("pre",ga,n(x.value),1)])):r("",!0),C.value.length>0?(u(),_(m,{key:1,title:a(e)("backup.sync.conflictsTitle"),style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:s(()=>[o(ue,{columns:Le.value,"data-source":C.value,pagination:!1,size:"small","row-key":"path"},{bodyCell:s(({column:p,record:v})=>[p.key==="path"?(u(),i("span",ma,n(v.path),1)):r("",!0),p.key==="type"?(u(),_(_e,{key:1,color:"red"},{default:s(()=>[b(n(v.type||a(e)("backup.sync.conflictDefault")),1)]),_:2},1024)):r("",!0)]),_:1},8,["columns","data-source"])]),_:1},8,["title"])):r("",!0)],64)),R.value?(u(),i("div",_a,n(R.value),1)):r("",!0)]),_:1}),o(ie,{key:"ipfs"},{tab:s(()=>[o(a(K)),b(" "+n(a(e)("backup.tabs.ipfs")),1)]),default:s(()=>[o(m,{title:a(e)("backup.ipfs.statusCardTitle"),style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"20px"}},{extra:s(()=>[o(_e,{color:S.value?"green":"default"},{default:s(()=>[b(n(S.value?a(e)("backup.ipfs.online"):a(e)("backup.ipfs.offline")),1)]),_:1},8,["color"])]),default:s(()=>[ae.value?(u(),i("div",xa,[o(U)])):(u(),_(me,{key:1,gutter:[16,16]},{default:s(()=>[o(L,{xs:24,sm:8},{default:s(()=>[o(m,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:s(()=>[o(B,{title:a(e)("backup.ipfs.nodeStatusLabel"),value:S.value?a(e)("backup.ipfs.connected"):a(e)("backup.ipfs.disconnected"),"value-style":{color:S.value?"#52c41a":"#888",fontSize:"16px"}},{prefix:s(()=>[o(a(K))]),_:1},8,["title","value","value-style"])]),_:1})]),_:1}),o(L,{xs:24,sm:8},{default:s(()=>[o(m,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:s(()=>[o(B,{title:a(e)("backup.ipfs.pinnedLabel"),value:A.value.length,"value-style":{fontSize:"16px"}},{prefix:s(()=>[o(a(K))]),_:1},8,["title","value"])]),_:1})]),_:1}),o(L,{xs:24,sm:8},{default:s(()=>[o(m,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:s(()=>[o(B,{title:a(e)("backup.ipfs.peerIdLabel"),value:te.value||"-","value-style":{color:"var(--text-muted)",fontSize:"12px",fontFamily:"monospace"}},{prefix:s(()=>[o(a(K))]),_:1},8,["title","value"])]),_:1})]),_:1})]),_:1})),E.value?(u(),i("div",ha,n(E.value),1)):r("",!0)]),_:1},8,["title"]),o(m,{title:a(e)("backup.ipfs.pinListTitle"),style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{extra:s(()=>[o(k,{size:"small",onClick:l[1]||(l[1]=p=>le.value=!0),style:{background:"var(--bg-card-hover)","border-color":"var(--border-color)"}},{icon:s(()=>[o(a(he))]),default:s(()=>[b(" "+n(a(e)("backup.ipfs.pinFileButton")),1)]),_:1})]),default:s(()=>[oe.value?(u(),i("div",wa,[o(U)])):A.value.length===0?(u(),_(ke,{key:1,description:a(e)("backup.ipfs.pinEmptyText")},null,8,["description"])):(u(),_(ue,{key:2,columns:Te.value,"data-source":A.value,pagination:{pageSize:10},size:"small","row-key":"cid"},{bodyCell:s(({column:p,record:v})=>[p.key==="cid"?(u(),i("span",za,n(v.cid.length>24?v.cid.slice(0,24)+"...":v.cid),1)):r("",!0),p.key==="name"?(u(),i("span",Ca,n(v.name||"-"),1)):r("",!0),p.key==="size"?(u(),i("span",Sa,n(a(we)(v.size)),1)):r("",!0),p.key==="pinnedAt"?(u(),i("span",Aa,n(v.pinnedAt||"-"),1)):r("",!0),p.key==="action"?(u(),_(Ne,{key:4,title:a(e)("backup.ipfs.unpinConfirm"),"ok-text":a(e)("backup.ipfs.unpinOk"),"cancel-text":a(e)("common.cancel"),onConfirm:$e=>De(v)},{default:s(()=>[o(k,{size:"small",type:"link",danger:""},{default:s(()=>[o(a(Qe)),b(" "+n(a(e)("backup.ipfs.unpinAction")),1)]),_:1})]),_:1},8,["title","ok-text","cancel-text","onConfirm"])):r("",!0)]),_:1},8,["columns","data-source"])),P.value?(u(),i("div",Ba,n(P.value),1)):r("",!0)]),_:1},8,["title"]),o(ge,{open:le.value,"onUpdate:open":l[3]||(l[3]=p=>le.value=p),title:a(e)("backup.ipfs.pinModalTitle"),"confirm-loading":ne.value,onOk:ye,"ok-text":a(e)("backup.ipfs.pinModalOk"),"cancel-text":a(e)("common.cancel")},{default:s(()=>[f("div",La,n(a(e)("backup.ipfs.pinModalIntro")),1),o(je,{value:$.value,"onUpdate:value":l[2]||(l[2]=p=>$.value=p),placeholder:a(e)("backup.ipfs.pinModalPlaceholder"),onPressEnter:ye},null,8,["value","placeholder"]),F.value?(u(),i("div",Ma,[f("pre",Oa,n(F.value),1)])):r("",!0)]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"])]),_:1})]),_:1},8,["activeKey"])])}}},Na=Ue(Pa,[["__scopeId","data-v-9db8d2e8"]]);export{Na as default};
|
|
1
|
+
import{_ as Ue,b as Ke,u as Ve,t as Je,d as xe}from"./index-CzoKAiyT.js";import{u as qe}from"./useFs-T5lg6SpD.js";import{R as Ge,aA as He,at as he,_ as re,q as I,aT as K,aR as Qe}from"./icons-DlxlFL4g.js";import{o as We,M as i,R as f,P as n,u as a,c as o,N as s,r as c,K as y,L as u,O as b,Q as _,S as r,F as Xe,f as pe}from"./vendor-BXcBOG8b.js";import"./useShellMode-CgR0wCYM.js";const de=["B","KB","MB","GB","TB","PB","EB"];function we(D){if(D==null||isNaN(D))return"-";const e=Number(D);if(e<0)return"-";if(e===0)return"0 B";let d=Math.floor(Math.log(e)/Math.log(1024));return d<0&&(d=0),d>=de.length&&(d=de.length-1),(e/Math.pow(1024,d)).toFixed(d>0?1:0)+" "+de[d]}const Ye={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},Ze={class:"page-title"},ea={class:"page-sub"},aa={key:0,style:{"text-align":"center",padding:"30px"}},ta={key:0,style:{"font-family":"monospace",color:"var(--text-muted)","font-size":"12px"}},oa={key:1},sa={key:2,style:{color:"var(--text-secondary)","font-size":"12px"}},la={key:3,style:{"margin-top":"16px"}},na={style:{color:"var(--text-secondary)","font-size":"11px","margin-bottom":"6px"}},ca={style:{background:"var(--bg-base)",border:"1px solid var(--border-color)","border-radius":"6px",padding:"12px",color:"#aaa","font-size":"12px","max-height":"200px","overflow-y":"auto","white-space":"pre-wrap"}},ua={key:4,style:{"margin-top":"12px",color:"#ff4d4f","font-size":"12px"}},ia={style:{color:"var(--text-secondary)"}},ra={key:0,style:{background:"var(--bg-base)",border:"1px solid var(--border-color)","border-radius":"6px",padding:"12px","margin-top":"8px"}},pa={style:{"font-family":"monospace"}},da={key:0},va={key:1,style:{"margin-top":"12px"}},fa={style:{background:"var(--bg-base)",border:"1px solid var(--border-color)","border-radius":"6px",padding:"12px",color:"#aaa","font-size":"12px","white-space":"pre-wrap"}},ya={key:0,style:{"text-align":"center",padding:"30px"}},ba={key:0,style:{"margin-bottom":"16px"}},ka={style:{color:"var(--text-secondary)","font-size":"11px","margin-bottom":"6px"}},ga={style:{background:"var(--bg-base)",border:"1px solid var(--border-color)","border-radius":"6px",padding:"12px",color:"#aaa","font-size":"12px","max-height":"200px","overflow-y":"auto","white-space":"pre-wrap"}},ma={key:0,style:{"font-family":"monospace","font-size":"12px"}},_a={key:2,style:{"margin-top":"12px",color:"#ff4d4f","font-size":"12px"}},xa={key:0,style:{"text-align":"center",padding:"30px"}},ha={key:2,style:{"margin-top":"12px",color:"#ff4d4f","font-size":"12px"}},wa={key:0,style:{"text-align":"center",padding:"30px"}},za={key:0,style:{"font-family":"monospace",color:"var(--text-muted)","font-size":"12px"}},Ca={key:1},Sa={key:2},Aa={key:3,style:{color:"var(--text-secondary)","font-size":"12px"}},Ba={key:3,style:{"margin-top":"12px",color:"#ff4d4f","font-size":"12px"}},La={style:{"margin-bottom":"12px",color:"var(--text-secondary)"}},Ma={key:0,style:{"margin-top":"12px"}},Oa={style:{background:"var(--bg-base)",border:"1px solid var(--border-color)","border-radius":"6px",padding:"12px",color:"#aaa","font-size":"12px","white-space":"pre-wrap"}},Pa={__name:"Backup",setup(D){const{t:e}=Ke(),d=Ve(),ze=qe(),V=c(!1),ve=c("backup"),J=c(!1),q=c(!1),G=c(!1),M=c(""),g=c([]),h=c(""),Ce=pe(()=>[{title:e("backup.backupColumns.id"),key:"id"},{title:e("backup.backupColumns.size"),key:"size",width:120},{title:e("backup.backupColumns.createdAt"),key:"createdAt"},{title:e("backup.backupColumns.action"),key:"action",width:100}]);async function fe(){q.value=!0,M.value="";try{const{output:t}=await d.execute("backup list --json",15e3),l=T(t);Array.isArray(l)?g.value=l:l&&Array.isArray(l.backups)?g.value=l.backups:(g.value=[],t&&t.trim()&&(h.value=t))}catch(t){M.value=e("backup.messages.loadBackupsFailed",{err:t.message})}finally{q.value=!1}}async function Se(){G.value=!0,h.value="",M.value="";try{const{output:t}=await d.execute("backup create --json",3e4);h.value=t||e("backup.backup.createDefaultMessage"),await fe()}catch(t){h.value=e("backup.messages.createBackupFailed",{err:t.message})}finally{G.value=!1}}const H=c(!1),Q=c(!1),w=c(null),z=c("");function Ae(t){w.value=t,z.value="",H.value=!0}async function Be(){if(w.value){Q.value=!0,z.value="";try{const{output:t}=await d.execute(`backup restore ${w.value.id}`,6e4);z.value=t||e("backup.backup.restoreDefaultMessage")}catch(t){z.value=e("backup.messages.restoreFailed",{err:t.message})}finally{Q.value=!1}}}const W=c(!1),R=c(""),O=c(!1),N=c(""),j=c(0),X=c(""),x=c(""),Y=c(!1),Z=c(!1),C=c([]),Le=pe(()=>[{title:e("backup.conflictColumns.path"),key:"path"},{title:e("backup.conflictColumns.type"),key:"type",width:120}]);async function ee(){W.value=!0,R.value="";try{const{output:t}=await d.execute("sync status --json",15e3),l=T(t);l?(O.value=l.online||l.synced||l.status==="online"||!1,N.value=O.value?e("backup.sync.synced"):e("backup.sync.notSynced"),j.value=l.pending??l.pendingChanges??0,X.value=l.lastSync||l.lastSyncTime||""):Me(t)}catch(t){R.value=e("backup.messages.loadSyncFailed",{err:t.message})}finally{W.value=!1}}function Me(t){if(!t){N.value=e("backup.sync.unknown");return}O.value=/synced|online|up.to.date/i.test(t),N.value=O.value?e("backup.sync.synced"):e("backup.sync.notSynced");const l=t.match(/pending[:\s]+(\d+)/i);j.value=l?parseInt(l[1]):0;const k=t.match(/last[:\s]+(.+)/i);k&&(X.value=k[1].trim())}async function Oe(){Y.value=!0,x.value="";try{const{output:t}=await d.execute("sync push",3e4);x.value=t||e("backup.sync.pushDefaultMessage"),await ee()}catch(t){x.value=e("backup.messages.pushFailed",{err:t.message})}finally{Y.value=!1}}async function Pe(){Z.value=!0,x.value="";try{const{output:t}=await d.execute("sync pull",3e4);x.value=t||e("backup.sync.pullDefaultMessage"),await ee()}catch(t){x.value=e("backup.messages.pullFailed",{err:t.message})}finally{Z.value=!1}}async function Fe(){try{const{output:t}=await d.execute("sync conflicts --json",15e3),l=T(t);Array.isArray(l)?C.value=l:l&&Array.isArray(l.conflicts)?C.value=l.conflicts:C.value=[]}catch{C.value=[]}}const ae=c(!1),E=c(""),S=c(!1),te=c(""),oe=c(!1),P=c(""),A=c([]),Te=pe(()=>[{title:e("backup.pinColumns.cid"),key:"cid"},{title:e("backup.pinColumns.name"),key:"name"},{title:e("backup.pinColumns.size"),key:"size",width:120},{title:e("backup.pinColumns.pinnedAt"),key:"pinnedAt"},{title:e("backup.pinColumns.action"),key:"action",width:120}]);async function Ie(){ae.value=!0,E.value="";try{const{output:t}=await d.execute("ipfs status --json",15e3),l=T(t);if(l)S.value=l.online||l.status==="online"||l.connected||!1,te.value=l.peerId||l.id||"";else{S.value=t?/online|connected|running/i.test(t):!1;const k=t?t.match(/(?:peer\s*id|id)[:\s]+(\S+)/i):null;te.value=k?k[1]:""}}catch(t){E.value=e("backup.messages.loadIpfsFailed",{err:t.message})}finally{ae.value=!1}}async function se(){oe.value=!0,P.value="";try{const{output:t}=await d.execute("ipfs pins --json",15e3),l=T(t);Array.isArray(l)?A.value=l:l&&Array.isArray(l.pins)?A.value=l.pins:A.value=[]}catch(t){P.value=e("backup.messages.loadPinsFailed",{err:t.message})}finally{oe.value=!1}}const le=c(!1),ne=c(!1),$=c(""),F=c("");async function ye(){if($.value.trim()){ne.value=!0,F.value="";try{const{output:t}=await d.execute(`ipfs pin "${$.value.trim()}"`,3e4);F.value=t||e("backup.ipfs.pinDefaultSuccess"),await se()}catch(t){F.value=e("backup.messages.pinFailed",{err:t.message})}finally{ne.value=!1}}}async function De(t){try{await d.execute(`ipfs unpin ${t.cid}`,15e3),await se()}catch(l){P.value=e("backup.messages.unpinFailed",{err:l.message})}}function T(t){return Je(t)}async function Re(){if(g.value.length){V.value=!0;try{const t=await ze.saveJson({schema:1,exportedAt:new Date().toISOString(),count:g.value.length,backups:g.value},{defaultPath:`backup-list-${new Date().toISOString().slice(0,10)}.json`});if(t.canceled)return;xe.success(t.path?e("backup.messages.exportOk",{count:g.value.length,path:t.path}):e("backup.messages.exportOkDefault"))}catch(t){xe.error(e("backup.messages.exportFailed",{err:t.message||t}))}finally{V.value=!1}}}async function be(){J.value=!0;try{await Promise.all([fe(),ee(),Fe(),Ie(),se()])}finally{J.value=!1}}return We(be),(t,l)=>{const k=y("a-button"),ce=y("a-space"),U=y("a-spin"),ke=y("a-empty"),ue=y("a-table"),m=y("a-card"),ge=y("a-modal"),ie=y("a-tab-pane"),B=y("a-statistic"),L=y("a-col"),me=y("a-row"),_e=y("a-tag"),Ne=y("a-popconfirm"),je=y("a-input"),Ee=y("a-tabs");return u(),i("div",null,[f("div",Ye,[f("div",null,[f("h2",Ze,n(a(e)("backup.title")),1),f("p",ea,n(a(e)("backup.subtitle")),1)]),o(k,{type:"primary",ghost:"",loading:J.value,onClick:be},{icon:s(()=>[o(a(Ge))]),default:s(()=>[b(" "+n(a(e)("backup.refresh")),1)]),_:1},8,["loading"])]),o(Ee,{activeKey:ve.value,"onUpdate:activeKey":l[4]||(l[4]=p=>ve.value=p),type:"card"},{default:s(()=>[o(ie,{key:"backup"},{tab:s(()=>[o(a(re)),b(" "+n(a(e)("backup.tabs.backup")),1)]),default:s(()=>[o(m,{style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"20px"}},{title:s(()=>[o(ce,null,{default:s(()=>[o(a(re)),f("span",null,n(a(e)("backup.backup.cardTitle")),1)]),_:1})]),extra:s(()=>[o(ce,null,{default:s(()=>[o(k,{disabled:!g.value.length,loading:V.value,onClick:Re},{icon:s(()=>[o(a(He))]),default:s(()=>[b(" "+n(a(e)("backup.backup.exportButton")),1)]),_:1},8,["disabled","loading"]),o(k,{type:"primary",loading:G.value,onClick:Se},{icon:s(()=>[o(a(he))]),default:s(()=>[b(" "+n(a(e)("backup.backup.createButton")),1)]),_:1},8,["loading"])]),_:1})]),default:s(()=>[q.value?(u(),i("div",aa,[o(U)])):g.value.length===0&&!h.value?(u(),_(ke,{key:1,description:a(e)("backup.backup.emptyText")},null,8,["description"])):r("",!0),g.value.length>0?(u(),_(ue,{key:2,columns:Ce.value,"data-source":g.value,pagination:!1,size:"small","row-key":"id"},{bodyCell:s(({column:p,record:v})=>[p.key==="id"?(u(),i("span",ta,n(v.id.length>20?v.id.slice(0,20)+"...":v.id),1)):r("",!0),p.key==="size"?(u(),i("span",oa,n(a(we)(v.size)),1)):r("",!0),p.key==="createdAt"?(u(),i("span",sa,n(v.createdAt||"-"),1)):r("",!0),p.key==="action"?(u(),_(k,{key:3,size:"small",type:"link",onClick:$e=>Ae(v)},{default:s(()=>[b(n(a(e)("backup.backupColumns.restore")),1)]),_:1},8,["onClick"])):r("",!0)]),_:1},8,["columns","data-source"])):r("",!0),h.value?(u(),i("div",la,[f("div",na,n(a(e)("backup.backup.lastResultLabel")),1),f("pre",ca,n(h.value),1)])):r("",!0),M.value?(u(),i("div",ua,n(M.value),1)):r("",!0)]),_:1}),o(ge,{open:H.value,"onUpdate:open":l[0]||(l[0]=p=>H.value=p),title:a(e)("backup.backup.restoreTitle"),"ok-text":a(e)("backup.backup.restoreOk"),"cancel-text":a(e)("common.cancel"),"confirm-loading":Q.value,onOk:Be,"ok-type":"danger"},{default:s(()=>[f("p",ia,n(a(e)("backup.backup.restoreIntro")),1),w.value?(u(),i("div",ra,[f("div",null,[f("strong",null,n(a(e)("backup.backup.backupIdPrefix")),1),l[5]||(l[5]=b()),f("span",pa,n(w.value.id),1)]),w.value.createdAt?(u(),i("div",da,[f("strong",null,n(a(e)("backup.backup.createdAtPrefix")),1),b(" "+n(w.value.createdAt),1)])):r("",!0)])):r("",!0),z.value?(u(),i("div",va,[f("pre",fa,n(z.value),1)])):r("",!0)]),_:1},8,["open","title","ok-text","cancel-text","confirm-loading"])]),_:1}),o(ie,{key:"sync"},{tab:s(()=>[o(a(I)),b(" "+n(a(e)("backup.tabs.sync")),1)]),default:s(()=>[W.value?(u(),i("div",ya,[o(U)])):(u(),i(Xe,{key:1},[o(me,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:s(()=>[o(L,{xs:24,sm:8},{default:s(()=>[o(m,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:s(()=>[o(B,{title:a(e)("backup.sync.statusLabel"),value:N.value,"value-style":{color:O.value?"#52c41a":"#888",fontSize:"16px"}},{prefix:s(()=>[o(a(I))]),_:1},8,["title","value","value-style"])]),_:1})]),_:1}),o(L,{xs:24,sm:8},{default:s(()=>[o(m,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:s(()=>[o(B,{title:a(e)("backup.sync.pendingLabel"),value:j.value,"value-style":{color:j.value>0?"#faad14":"#52c41a",fontSize:"16px"}},{prefix:s(()=>[o(a(I))]),_:1},8,["title","value","value-style"])]),_:1})]),_:1}),o(L,{xs:24,sm:8},{default:s(()=>[o(m,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:s(()=>[o(B,{title:a(e)("backup.sync.lastSyncLabel"),value:X.value||a(e)("backup.sync.noLastSync"),"value-style":{color:"var(--text-secondary)",fontSize:"16px"}},{prefix:s(()=>[o(a(I))]),_:1},8,["title","value"])]),_:1})]),_:1})]),_:1}),o(ce,{style:{"margin-bottom":"16px"}},{default:s(()=>[o(k,{loading:Y.value,onClick:Oe,style:{background:"var(--bg-card-hover)","border-color":"var(--border-color)"}},{icon:s(()=>[o(a(re))]),default:s(()=>[b(" "+n(a(e)("backup.sync.pushButton")),1)]),_:1},8,["loading"]),o(k,{loading:Z.value,onClick:Pe,style:{background:"var(--bg-card-hover)","border-color":"var(--border-color)"}},{icon:s(()=>[o(a(I))]),default:s(()=>[b(" "+n(a(e)("backup.sync.pullButton")),1)]),_:1},8,["loading"])]),_:1}),x.value?(u(),i("div",ba,[f("div",ka,n(a(e)("backup.sync.outputLabel")),1),f("pre",ga,n(x.value),1)])):r("",!0),C.value.length>0?(u(),_(m,{key:1,title:a(e)("backup.sync.conflictsTitle"),style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:s(()=>[o(ue,{columns:Le.value,"data-source":C.value,pagination:!1,size:"small","row-key":"path"},{bodyCell:s(({column:p,record:v})=>[p.key==="path"?(u(),i("span",ma,n(v.path),1)):r("",!0),p.key==="type"?(u(),_(_e,{key:1,color:"red"},{default:s(()=>[b(n(v.type||a(e)("backup.sync.conflictDefault")),1)]),_:2},1024)):r("",!0)]),_:1},8,["columns","data-source"])]),_:1},8,["title"])):r("",!0)],64)),R.value?(u(),i("div",_a,n(R.value),1)):r("",!0)]),_:1}),o(ie,{key:"ipfs"},{tab:s(()=>[o(a(K)),b(" "+n(a(e)("backup.tabs.ipfs")),1)]),default:s(()=>[o(m,{title:a(e)("backup.ipfs.statusCardTitle"),style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"20px"}},{extra:s(()=>[o(_e,{color:S.value?"green":"default"},{default:s(()=>[b(n(S.value?a(e)("backup.ipfs.online"):a(e)("backup.ipfs.offline")),1)]),_:1},8,["color"])]),default:s(()=>[ae.value?(u(),i("div",xa,[o(U)])):(u(),_(me,{key:1,gutter:[16,16]},{default:s(()=>[o(L,{xs:24,sm:8},{default:s(()=>[o(m,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:s(()=>[o(B,{title:a(e)("backup.ipfs.nodeStatusLabel"),value:S.value?a(e)("backup.ipfs.connected"):a(e)("backup.ipfs.disconnected"),"value-style":{color:S.value?"#52c41a":"#888",fontSize:"16px"}},{prefix:s(()=>[o(a(K))]),_:1},8,["title","value","value-style"])]),_:1})]),_:1}),o(L,{xs:24,sm:8},{default:s(()=>[o(m,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:s(()=>[o(B,{title:a(e)("backup.ipfs.pinnedLabel"),value:A.value.length,"value-style":{fontSize:"16px"}},{prefix:s(()=>[o(a(K))]),_:1},8,["title","value"])]),_:1})]),_:1}),o(L,{xs:24,sm:8},{default:s(()=>[o(m,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:s(()=>[o(B,{title:a(e)("backup.ipfs.peerIdLabel"),value:te.value||"-","value-style":{color:"var(--text-muted)",fontSize:"12px",fontFamily:"monospace"}},{prefix:s(()=>[o(a(K))]),_:1},8,["title","value"])]),_:1})]),_:1})]),_:1})),E.value?(u(),i("div",ha,n(E.value),1)):r("",!0)]),_:1},8,["title"]),o(m,{title:a(e)("backup.ipfs.pinListTitle"),style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{extra:s(()=>[o(k,{size:"small",onClick:l[1]||(l[1]=p=>le.value=!0),style:{background:"var(--bg-card-hover)","border-color":"var(--border-color)"}},{icon:s(()=>[o(a(he))]),default:s(()=>[b(" "+n(a(e)("backup.ipfs.pinFileButton")),1)]),_:1})]),default:s(()=>[oe.value?(u(),i("div",wa,[o(U)])):A.value.length===0?(u(),_(ke,{key:1,description:a(e)("backup.ipfs.pinEmptyText")},null,8,["description"])):(u(),_(ue,{key:2,columns:Te.value,"data-source":A.value,pagination:{pageSize:10},size:"small","row-key":"cid"},{bodyCell:s(({column:p,record:v})=>[p.key==="cid"?(u(),i("span",za,n(v.cid.length>24?v.cid.slice(0,24)+"...":v.cid),1)):r("",!0),p.key==="name"?(u(),i("span",Ca,n(v.name||"-"),1)):r("",!0),p.key==="size"?(u(),i("span",Sa,n(a(we)(v.size)),1)):r("",!0),p.key==="pinnedAt"?(u(),i("span",Aa,n(v.pinnedAt||"-"),1)):r("",!0),p.key==="action"?(u(),_(Ne,{key:4,title:a(e)("backup.ipfs.unpinConfirm"),"ok-text":a(e)("backup.ipfs.unpinOk"),"cancel-text":a(e)("common.cancel"),onConfirm:$e=>De(v)},{default:s(()=>[o(k,{size:"small",type:"link",danger:""},{default:s(()=>[o(a(Qe)),b(" "+n(a(e)("backup.ipfs.unpinAction")),1)]),_:1})]),_:1},8,["title","ok-text","cancel-text","onConfirm"])):r("",!0)]),_:1},8,["columns","data-source"])),P.value?(u(),i("div",Ba,n(P.value),1)):r("",!0)]),_:1},8,["title"]),o(ge,{open:le.value,"onUpdate:open":l[3]||(l[3]=p=>le.value=p),title:a(e)("backup.ipfs.pinModalTitle"),"confirm-loading":ne.value,onOk:ye,"ok-text":a(e)("backup.ipfs.pinModalOk"),"cancel-text":a(e)("common.cancel")},{default:s(()=>[f("div",La,n(a(e)("backup.ipfs.pinModalIntro")),1),o(je,{value:$.value,"onUpdate:value":l[2]||(l[2]=p=>$.value=p),placeholder:a(e)("backup.ipfs.pinModalPlaceholder"),onPressEnter:ye},null,8,["value","placeholder"]),F.value?(u(),i("div",Ma,[f("pre",Oa,n(F.value),1)])):r("",!0)]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"])]),_:1})]),_:1},8,["activeKey"])])}}},Na=Ue(Pa,[["__scopeId","data-v-9db8d2e8"]]);export{Na as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{P as s,f}from"./index-
|
|
1
|
+
import{P as s,f}from"./index-CzoKAiyT.js";import{d as w,c as O,s as h,w as k,f as b,r as S}from"./vendor-BXcBOG8b.js";var z=function(n,u){var o={};for(var t in n)Object.prototype.hasOwnProperty.call(n,t)&&u.indexOf(t)<0&&(o[t]=n[t]);if(n!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,t=Object.getOwnPropertySymbols(n);r<t.length;r++)u.indexOf(t[r])<0&&Object.prototype.propertyIsEnumerable.call(n,t[r])&&(o[t[r]]=n[t[r]]);return o};const K=w({compatConfig:{MODE:3},props:{disabled:s.looseBool,type:s.string,value:s.any,tag:{type:String,default:"input"},size:s.string,onChange:Function,onInput:Function,onBlur:Function,onFocus:Function,onKeydown:Function,onCompositionstart:Function,onCompositionend:Function,onKeyup:Function,onPaste:Function,onMousedown:Function},emits:["change","input","blur","keydown","focus","compositionstart","compositionend","keyup","paste","mousedown"],setup(n,u){let{expose:o}=u;const t=h(null);return o({focus:()=>{t.value&&t.value.focus()},blur:()=>{t.value&&t.value.blur()},input:t,setSelectionRange:(l,c,d)=>{var v;(v=t.value)===null||v===void 0||v.setSelectionRange(l,c,d)},select:()=>{var l;(l=t.value)===null||l===void 0||l.select()},getSelectionStart:()=>{var l;return(l=t.value)===null||l===void 0?void 0:l.selectionStart},getSelectionEnd:()=>{var l;return(l=t.value)===null||l===void 0?void 0:l.selectionEnd},getScrollTop:()=>{var l;return(l=t.value)===null||l===void 0?void 0:l.scrollTop}}),()=>{const{tag:l,value:c}=n,d=z(n,["tag","value"]);return O(l,f(f({},d),{},{ref:t,value:c}),null)}}});function D(n){const u=n.getBoundingClientRect(),o=document.documentElement;return{left:u.left+(window.scrollX||o.scrollLeft)-(o.clientLeft||document.body.clientLeft||0),top:u.top+(window.scrollY||o.scrollTop)-(o.clientTop||document.body.clientTop||0)}}function N(n){return Array.prototype.slice.apply(n).map(o=>`${o}: ${n.getPropertyValue(o)};`).join("")}function M(n){return Object.keys(n).reduce((u,o)=>{const t=n[o];return typeof t>"u"||t===null||(u+=`${o}: ${n[o]};`),u},"")}var $=function(n,u){var o={};for(var t in n)Object.prototype.hasOwnProperty.call(n,t)&&u.indexOf(t)<0&&(o[t]=n[t]);if(n!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,t=Object.getOwnPropertySymbols(n);r<t.length;r++)u.indexOf(t[r])<0&&Object.prototype.propertyIsEnumerable.call(n,t[r])&&(o[t[r]]=n[t[r]]);return o};const A=w({compatConfig:{MODE:3},inheritAttrs:!1,props:{disabled:s.looseBool,type:s.string,value:s.any,lazy:s.bool.def(!0),tag:{type:String,default:"input"},size:s.string,style:s.oneOfType([String,Object]),class:s.string},emits:["change","input","blur","keydown","focus","compositionstart","compositionend","keyup","paste","mousedown"],setup(n,u){let{emit:o,attrs:t,expose:r}=u;const a=h(null),y=S(),i=S(!1);k([()=>n.value,i],()=>{i.value||(y.value=n.value)},{immediate:!0});const l=e=>{o("change",e)},c=e=>{i.value=!0,e.target.composing=!0,o("compositionstart",e)},d=e=>{i.value=!1,e.target.composing=!1,o("compositionend",e);const p=document.createEvent("HTMLEvents");p.initEvent("input",!0,!0),e.target.dispatchEvent(p),l(e)},v=e=>{if(i.value&&n.lazy){y.value=e.target.value;return}o("input",e)},_=e=>{o("blur",e)},C=e=>{o("focus",e)},E=()=>{a.value&&a.value.focus()},P=()=>{a.value&&a.value.blur()},j=e=>{o("keydown",e)},F=e=>{o("keyup",e)},T=(e,p,g)=>{var m;(m=a.value)===null||m===void 0||m.setSelectionRange(e,p,g)},B=()=>{var e;(e=a.value)===null||e===void 0||e.select()};r({focus:E,blur:P,input:b(()=>{var e;return(e=a.value)===null||e===void 0?void 0:e.input}),setSelectionRange:T,select:B,getSelectionStart:()=>{var e;return(e=a.value)===null||e===void 0?void 0:e.getSelectionStart()},getSelectionEnd:()=>{var e;return(e=a.value)===null||e===void 0?void 0:e.getSelectionEnd()},getScrollTop:()=>{var e;return(e=a.value)===null||e===void 0?void 0:e.getScrollTop()}});const R=e=>{o("mousedown",e)},x=e=>{o("paste",e)},I=b(()=>n.style&&typeof n.style!="string"?M(n.style):n.style);return()=>{const{style:e,lazy:p}=n,g=$(n,["style","lazy"]);return O(K,f(f(f({},g),t),{},{style:I.value,onInput:v,onChange:l,onBlur:_,onFocus:C,ref:a,value:y.value,onCompositionstart:c,onCompositionend:d,onKeyup:F,onKeydown:j,onPaste:x,onMousedown:R}),null)}}});export{A as B,D as g,N as s};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{L as a,M as m,R as d,Q as z,u as _,P as c,S as M,Z as Y,w as Z,o as ye,n as B,x as Ae,_ as ae,F as K,Y as G,U as he,r as N,f as k,K as q,c as g,N as I,O as E,a0 as Te,a1 as Fe,H as Re,I as Pe,a as qe}from"./vendor-BXcBOG8b.js";import{_ as ne,b as je}from"./index-
|
|
1
|
+
import{L as a,M as m,R as d,Q as z,u as _,P as c,S as M,Z as Y,w as Z,o as ye,n as B,x as Ae,_ as ae,F as K,Y as G,U as he,r as N,f as k,K as q,c as g,N as I,O as E,a0 as Te,a1 as Fe,H as Re,I as Pe,a as qe}from"./vendor-BXcBOG8b.js";import{_ as ne,b as je}from"./index-CzoKAiyT.js";import{u as De,M as Le}from"./chat-BzgkgfMC.js";import{a as Ne,L as _e,z as We,ah as Be,ai as Ve,f as Ue,c as He,r as Qe,aj as fe,ak as Ke,b as Ge,F as me,G as pe,h as Je,ae as ge,l as Xe,al as Ye,am as Ze}from"./icons-DlxlFL4g.js";import{M as et}from"./MarkdownRenderer-DOHVc-Uw.js";import"./markdown-Bq2x0XsR.js";import"./markdown-DUKxbhE4.js";const tt=["data-testid"],st={class:"cb-action__icon"},nt={class:"cb-action__label"},it={key:0,class:"cb-action__detail"},ot={key:1,class:"cb-action__caret"},lt={__name:"ToolInvocationCard",props:{item:{type:Object,required:!0},expandable:{type:Boolean,default:!1},expanded:{type:Boolean,default:!1}},emits:["toggle"],setup(u,{emit:v}){const e=u,t=v;function s(){e.expandable&&t("toggle")}return(n,o)=>(a(),m("div",{class:Y(["cb-action",[`cb-action--${u.item.status}`,{"cb-action--expandable":u.expandable,"cb-action--open":u.expanded}]]),"data-testid":`tool-card-${u.item.id}`,onClick:s},[d("span",st,[u.item.status==="done"?(a(),z(_(Ne),{key:0})):u.item.status==="running"?(a(),z(_(_e),{key:1})):(a(),z(_(We),{key:2}))]),d("span",nt,c(u.item.label),1),u.item.detail?(a(),m("span",it,c(u.item.detail),1)):M("",!0),u.expandable?(a(),m("span",ot,[u.expanded?(a(),z(_(Be),{key:0})):(a(),z(_(Ve),{key:1}))])):M("",!0)],10,tt))}},at=ne(lt,[["__scopeId","data-v-cf5a0925"]]);function Q(u,v,e){let t=e.initialDeps??[],s,n=!0;function o(){var l,r,O;let S;e.key&&((l=e.debug)!=null&&l.call(e))&&(S=Date.now());const b=u();if(!(b.length!==t.length||b.some((x,C)=>t[C]!==x)))return s;t=b;let h;if(e.key&&((r=e.debug)!=null&&r.call(e))&&(h=Date.now()),s=v(...b),e.key&&((O=e.debug)!=null&&O.call(e))){const x=Math.round((Date.now()-S)*100)/100,C=Math.round((Date.now()-h)*100)/100,y=C/16,F=(A,j)=>{for(A=String(A);A.length<j;)A=" "+A;return A};console.info(`%c⏱ ${F(C,5)} /${F(x,5)} ms`,`
|
|
2
2
|
font-size: .6rem;
|
|
3
3
|
font-weight: bold;
|
|
4
4
|
color: hsl(${Math.max(0,Math.min(120-120*y,120))}deg 100% 31%);`,e?.key)}return e?.onChange&&!(n&&e.skipInitialOnChange)&&e.onChange(s),n=!1,s}return o.updateDeps=l=>{t=l},o}function ve(u,v){if(u===void 0)throw new Error("Unexpected undefined");return u}const rt=(u,v)=>Math.abs(u-v)<1.01,ct=u=>u,ut=u=>{const v=Math.max(u.startIndex-u.overscan,0),e=Math.min(u.endIndex+u.overscan,u.count-1),t=[];for(let s=v;s<=e;s++)t.push(s);return t},dt=(u,v,e)=>{if(v?.borderBoxSize){const t=v.borderBoxSize[0];if(t)return Math.round(t[e.options.horizontal?"inlineSize":"blockSize"])}return u[e.options.horizontal?"offsetWidth":"offsetHeight"]};class ht{constructor(v){this.unsubs=[],this.scrollElement=null,this.targetWindow=null,this.isScrolling=!1,this.scrollState=null,this.measurementsCache=[],this.itemSizeCache=new Map,this.laneAssignments=new Map,this.pendingMeasuredCacheIndexes=[],this.prevLanes=void 0,this.lanesChangedFlag=!1,this.lanesSettling=!1,this.scrollRect=null,this.scrollOffset=null,this.scrollDirection=null,this.scrollAdjustments=0,this.elementsCache=new Map,this.now=()=>{var e,t,s;return((s=(t=(e=this.targetWindow)==null?void 0:e.performance)==null?void 0:t.now)==null?void 0:s.call(t))??Date.now()},this.observer=(()=>{let e=null;const t=()=>e||(!this.targetWindow||!this.targetWindow.ResizeObserver?null:e=new this.targetWindow.ResizeObserver(s=>{s.forEach(n=>{const o=()=>{const l=n.target,r=this.indexFromElement(l);if(!l.isConnected){this.observer.unobserve(l);return}this.shouldMeasureDuringScroll(r)&&this.resizeItem(r,this.options.measureElement(l,n,this))};this.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(o):o()})}));return{disconnect:()=>{var s;(s=t())==null||s.disconnect(),e=null},observe:s=>{var n;return(n=t())==null?void 0:n.observe(s,{box:"border-box"})},unobserve:s=>{var n;return(n=t())==null?void 0:n.unobserve(s)}}})(),this.range=null,this.setOptions=e=>{Object.entries(e).forEach(([t,s])=>{typeof s>"u"&&delete e[t]}),this.options={debug:!1,initialOffset:0,overscan:1,paddingStart:0,paddingEnd:0,scrollPaddingStart:0,scrollPaddingEnd:0,horizontal:!1,getItemKey:ct,rangeExtractor:ut,onChange:()=>{},measureElement:dt,initialRect:{width:0,height:0},scrollMargin:0,gap:0,indexAttribute:"data-index",initialMeasurementsCache:[],lanes:1,isScrollingResetDelay:150,enabled:!0,isRtl:!1,useScrollendEvent:!1,useAnimationFrameWithResizeObserver:!1,laneAssignmentMode:"estimate",...e}},this.notify=e=>{var t,s;(s=(t=this.options).onChange)==null||s.call(t,this,e)},this.maybeNotify=Q(()=>(this.calculateRange(),[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]),e=>{this.notify(e)},{key:!1,debug:()=>this.options.debug,initialDeps:[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]}),this.cleanup=()=>{this.unsubs.filter(Boolean).forEach(e=>e()),this.unsubs=[],this.observer.disconnect(),this.rafId!=null&&this.targetWindow&&(this.targetWindow.cancelAnimationFrame(this.rafId),this.rafId=null),this.scrollState=null,this.scrollElement=null,this.targetWindow=null},this._didMount=()=>()=>{this.cleanup()},this._willUpdate=()=>{var e;const t=this.options.enabled?this.options.getScrollElement():null;if(this.scrollElement!==t){if(this.cleanup(),!t){this.maybeNotify();return}this.scrollElement=t,this.scrollElement&&"ownerDocument"in this.scrollElement?this.targetWindow=this.scrollElement.ownerDocument.defaultView:this.targetWindow=((e=this.scrollElement)==null?void 0:e.window)??null,this.elementsCache.forEach(s=>{this.observer.observe(s)}),this.unsubs.push(this.options.observeElementRect(this,s=>{this.scrollRect=s,this.maybeNotify()})),this.unsubs.push(this.options.observeElementOffset(this,(s,n)=>{this.scrollAdjustments=0,this.scrollDirection=n?this.getScrollOffset()<s?"forward":"backward":null,this.scrollOffset=s,this.isScrolling=n,this.scrollState&&this.scheduleScrollReconcile(),this.maybeNotify()})),this._scrollToOffset(this.getScrollOffset(),{adjustments:void 0,behavior:void 0})}},this.rafId=null,this.getSize=()=>this.options.enabled?(this.scrollRect=this.scrollRect??this.options.initialRect,this.scrollRect[this.options.horizontal?"width":"height"]):(this.scrollRect=null,0),this.getScrollOffset=()=>this.options.enabled?(this.scrollOffset=this.scrollOffset??(typeof this.options.initialOffset=="function"?this.options.initialOffset():this.options.initialOffset),this.scrollOffset):(this.scrollOffset=null,0),this.getFurthestMeasurement=(e,t)=>{const s=new Map,n=new Map;for(let o=t-1;o>=0;o--){const l=e[o];if(s.has(l.lane))continue;const r=n.get(l.lane);if(r==null||l.end>r.end?n.set(l.lane,l):l.end<r.end&&s.set(l.lane,!0),s.size===this.options.lanes)break}return n.size===this.options.lanes?Array.from(n.values()).sort((o,l)=>o.end===l.end?o.index-l.index:o.end-l.end)[0]:void 0},this.getMeasurementOptions=Q(()=>[this.options.count,this.options.paddingStart,this.options.scrollMargin,this.options.getItemKey,this.options.enabled,this.options.lanes,this.options.laneAssignmentMode],(e,t,s,n,o,l,r)=>(this.prevLanes!==void 0&&this.prevLanes!==l&&(this.lanesChangedFlag=!0),this.prevLanes=l,this.pendingMeasuredCacheIndexes=[],{count:e,paddingStart:t,scrollMargin:s,getItemKey:n,enabled:o,lanes:l,laneAssignmentMode:r}),{key:!1}),this.getMeasurements=Q(()=>[this.getMeasurementOptions(),this.itemSizeCache],({count:e,paddingStart:t,scrollMargin:s,getItemKey:n,enabled:o,lanes:l,laneAssignmentMode:r},O)=>{if(!o)return this.measurementsCache=[],this.itemSizeCache.clear(),this.laneAssignments.clear(),[];if(this.laneAssignments.size>e)for(const h of this.laneAssignments.keys())h>=e&&this.laneAssignments.delete(h);this.lanesChangedFlag&&(this.lanesChangedFlag=!1,this.lanesSettling=!0,this.measurementsCache=[],this.itemSizeCache.clear(),this.laneAssignments.clear(),this.pendingMeasuredCacheIndexes=[]),this.measurementsCache.length===0&&!this.lanesSettling&&(this.measurementsCache=this.options.initialMeasurementsCache,this.measurementsCache.forEach(h=>{this.itemSizeCache.set(h.key,h.size)}));const S=this.lanesSettling?0:this.pendingMeasuredCacheIndexes.length>0?Math.min(...this.pendingMeasuredCacheIndexes):0;this.pendingMeasuredCacheIndexes=[],this.lanesSettling&&this.measurementsCache.length===e&&(this.lanesSettling=!1);const b=this.measurementsCache.slice(0,S),T=new Array(l).fill(void 0);for(let h=0;h<S;h++){const x=b[h];x&&(T[x.lane]=h)}for(let h=S;h<e;h++){const x=n(h),C=this.laneAssignments.get(h);let y,F;const A=r==="estimate"||O.has(x);if(C!==void 0&&this.options.lanes>1){y=C;const w=T[y],P=w!==void 0?b[w]:void 0;F=P?P.end+this.options.gap:t+s}else{const w=this.options.lanes===1?b[h-1]:this.getFurthestMeasurement(b,h);F=w?w.end+this.options.gap:t+s,y=w?w.lane:h%this.options.lanes,this.options.lanes>1&&A&&this.laneAssignments.set(h,y)}const j=O.get(x),D=typeof j=="number"?j:this.options.estimateSize(h),W=F+D;b[h]={index:h,start:F,size:D,end:W,key:x,lane:y},T[y]=h}return this.measurementsCache=b,b},{key:!1,debug:()=>this.options.debug}),this.calculateRange=Q(()=>[this.getMeasurements(),this.getSize(),this.getScrollOffset(),this.options.lanes],(e,t,s,n)=>this.range=e.length>0&&t>0?ft({measurements:e,outerSize:t,scrollOffset:s,lanes:n}):null,{key:!1,debug:()=>this.options.debug}),this.getVirtualIndexes=Q(()=>{let e=null,t=null;const s=this.calculateRange();return s&&(e=s.startIndex,t=s.endIndex),this.maybeNotify.updateDeps([this.isScrolling,e,t]),[this.options.rangeExtractor,this.options.overscan,this.options.count,e,t]},(e,t,s,n,o)=>n===null||o===null?[]:e({startIndex:n,endIndex:o,overscan:t,count:s}),{key:!1,debug:()=>this.options.debug}),this.indexFromElement=e=>{const t=this.options.indexAttribute,s=e.getAttribute(t);return s?parseInt(s,10):(console.warn(`Missing attribute name '${t}={index}' on measured element.`),-1)},this.shouldMeasureDuringScroll=e=>{var t;if(!this.scrollState||this.scrollState.behavior!=="smooth")return!0;const s=this.scrollState.index??((t=this.getVirtualItemForOffset(this.scrollState.lastTargetOffset))==null?void 0:t.index);if(s!==void 0&&this.range){const n=Math.max(this.options.overscan,Math.ceil((this.range.endIndex-this.range.startIndex)/2)),o=Math.max(0,s-n),l=Math.min(this.options.count-1,s+n);return e>=o&&e<=l}return!0},this.measureElement=e=>{if(!e){this.elementsCache.forEach((o,l)=>{o.isConnected||(this.observer.unobserve(o),this.elementsCache.delete(l))});return}const t=this.indexFromElement(e),s=this.options.getItemKey(t),n=this.elementsCache.get(s);n!==e&&(n&&this.observer.unobserve(n),this.observer.observe(e),this.elementsCache.set(s,e)),(!this.isScrolling||this.scrollState)&&this.shouldMeasureDuringScroll(t)&&this.resizeItem(t,this.options.measureElement(e,void 0,this))},this.resizeItem=(e,t)=>{var s;const n=this.measurementsCache[e];if(!n)return;const o=this.itemSizeCache.get(n.key)??n.size,l=t-o;l!==0&&(((s=this.scrollState)==null?void 0:s.behavior)!=="smooth"&&(this.shouldAdjustScrollPositionOnItemSizeChange!==void 0?this.shouldAdjustScrollPositionOnItemSizeChange(n,l,this):n.start<this.getScrollOffset()+this.scrollAdjustments)&&this._scrollToOffset(this.getScrollOffset(),{adjustments:this.scrollAdjustments+=l,behavior:void 0}),this.pendingMeasuredCacheIndexes.push(n.index),this.itemSizeCache=new Map(this.itemSizeCache.set(n.key,t)),this.notify(!1))},this.getVirtualItems=Q(()=>[this.getVirtualIndexes(),this.getMeasurements()],(e,t)=>{const s=[];for(let n=0,o=e.length;n<o;n++){const l=e[n],r=t[l];s.push(r)}return s},{key:!1,debug:()=>this.options.debug}),this.getVirtualItemForOffset=e=>{const t=this.getMeasurements();if(t.length!==0)return ve(t[be(0,t.length-1,s=>ve(t[s]).start,e)])},this.getMaxScrollOffset=()=>{if(!this.scrollElement)return 0;if("scrollHeight"in this.scrollElement)return this.options.horizontal?this.scrollElement.scrollWidth-this.scrollElement.clientWidth:this.scrollElement.scrollHeight-this.scrollElement.clientHeight;{const e=this.scrollElement.document.documentElement;return this.options.horizontal?e.scrollWidth-this.scrollElement.innerWidth:e.scrollHeight-this.scrollElement.innerHeight}},this.getOffsetForAlignment=(e,t,s=0)=>{if(!this.scrollElement)return 0;const n=this.getSize(),o=this.getScrollOffset();t==="auto"&&(t=e>=o+n?"end":"start"),t==="center"?e+=(s-n)/2:t==="end"&&(e-=n);const l=this.getMaxScrollOffset();return Math.max(Math.min(l,e),0)},this.getOffsetForIndex=(e,t="auto")=>{e=Math.max(0,Math.min(e,this.options.count-1));const s=this.getSize(),n=this.getScrollOffset(),o=this.measurementsCache[e];if(!o)return;if(t==="auto")if(o.end>=n+s-this.options.scrollPaddingEnd)t="end";else if(o.start<=n+this.options.scrollPaddingStart)t="start";else return[n,t];if(t==="end"&&e===this.options.count-1)return[this.getMaxScrollOffset(),t];const l=t==="end"?o.end+this.options.scrollPaddingEnd:o.start-this.options.scrollPaddingStart;return[this.getOffsetForAlignment(l,t,o.size),t]},this.scrollToOffset=(e,{align:t="start",behavior:s="auto"}={})=>{const n=this.getOffsetForAlignment(e,t),o=this.now();this.scrollState={index:null,align:t,behavior:s,startedAt:o,lastTargetOffset:n,stableFrames:0},this._scrollToOffset(n,{adjustments:void 0,behavior:s}),this.scheduleScrollReconcile()},this.scrollToIndex=(e,{align:t="auto",behavior:s="auto"}={})=>{e=Math.max(0,Math.min(e,this.options.count-1));const n=this.getOffsetForIndex(e,t);if(!n)return;const[o,l]=n,r=this.now();this.scrollState={index:e,align:l,behavior:s,startedAt:r,lastTargetOffset:o,stableFrames:0},this._scrollToOffset(o,{adjustments:void 0,behavior:s}),this.scheduleScrollReconcile()},this.scrollBy=(e,{behavior:t="auto"}={})=>{const s=this.getScrollOffset()+e,n=this.now();this.scrollState={index:null,align:"start",behavior:t,startedAt:n,lastTargetOffset:s,stableFrames:0},this._scrollToOffset(s,{adjustments:void 0,behavior:t}),this.scheduleScrollReconcile()},this.getTotalSize=()=>{var e;const t=this.getMeasurements();let s;if(t.length===0)s=this.options.paddingStart;else if(this.options.lanes===1)s=((e=t[t.length-1])==null?void 0:e.end)??0;else{const n=Array(this.options.lanes).fill(null);let o=t.length-1;for(;o>=0&&n.some(l=>l===null);){const l=t[o];n[l.lane]===null&&(n[l.lane]=l.end),o--}s=Math.max(...n.filter(l=>l!==null))}return Math.max(s-this.options.scrollMargin+this.options.paddingEnd,0)},this._scrollToOffset=(e,{adjustments:t,behavior:s})=>{this.options.scrollToFn(e,{behavior:s,adjustments:t},this)},this.measure=()=>{this.itemSizeCache=new Map,this.laneAssignments=new Map,this.notify(!1)},this.setOptions(v)}scheduleScrollReconcile(){if(!this.targetWindow){this.scrollState=null;return}this.rafId==null&&(this.rafId=this.targetWindow.requestAnimationFrame(()=>{this.rafId=null,this.reconcileScroll()}))}reconcileScroll(){if(!this.scrollState||!this.scrollElement)return;if(this.now()-this.scrollState.startedAt>5e3){this.scrollState=null;return}const t=this.scrollState.index!=null?this.getOffsetForIndex(this.scrollState.index,this.scrollState.align):void 0,s=t?t[0]:this.scrollState.lastTargetOffset,n=1,o=s!==this.scrollState.lastTargetOffset;if(!o&&rt(s,this.getScrollOffset())){if(this.scrollState.stableFrames++,this.scrollState.stableFrames>=n){this.scrollState=null;return}}else this.scrollState.stableFrames=0,o&&(this.scrollState.lastTargetOffset=s,this.scrollState.behavior="auto",this._scrollToOffset(s,{adjustments:void 0,behavior:"auto"}));this.scheduleScrollReconcile()}}const be=(u,v,e,t)=>{for(;u<=v;){const s=(u+v)/2|0,n=e(s);if(n<t)u=s+1;else if(n>t)v=s-1;else return s}return u>0?u-1:0};function ft({measurements:u,outerSize:v,scrollOffset:e,lanes:t}){const s=u.length-1,n=r=>u[r].start;if(u.length<=t)return{startIndex:0,endIndex:s};let o=be(0,s,n,e),l=o;if(t===1)for(;l<s&&u[l].end<e+v;)l++;else if(t>1){const r=Array(t).fill(0);for(;l<s&&r.some(S=>S<e+v);){const S=u[l];r[S.lane]=S.end,l++}const O=Array(t).fill(e+v);for(;o>=0&&O.some(S=>S>=e);){const S=u[o];O[S.lane]=S.start,o--}o=Math.max(0,o-o%t),l=Math.min(s,l+(t-1-l%t))}return{startIndex:o,endIndex:l}}const mt={key:1,class:"fallback-list"},pt={__name:"VirtualMessageList",props:{messages:{type:Array,required:!0,default:()=>[]},estimateSize:{type:Number,default:120}},emits:["scroll-to-bottom","load-more"],setup(u,{expose:v,emit:e}){const t=u,s=e,n=N(null),o=N(null),l=N(0),r=k(()=>o.value?(l.value,o.value.getVirtualItems()):[]),O=()=>{if(n.value)try{o.value=new ht({count:t.messages.length,getScrollElement:()=>n.value,estimateSize:()=>t.estimateSize,overscan:5,scrollMargin:0,onChange:()=>{l.value++}}),B(()=>{o.value&&n.value&&(o.value.measure(),l.value++,n.value.scrollTop=1,setTimeout(()=>{n.value&&(n.value.scrollTop=0)},50))})}catch(h){console.error("[VirtualMessageList] init failed:",h)}},S=()=>{if(!n.value)return;o.value&&o.value.measure();const{scrollTop:h,scrollHeight:x,clientHeight:C}=n.value;h<100&&s("load-more"),h+C>=x-50&&s("scroll-to-bottom")},b=()=>{n.value&&requestAnimationFrame(()=>{n.value&&(n.value.scrollTop=n.value.scrollHeight)})},T=h=>{const x=t.messages.findIndex(C=>C.id===h);x!==-1&&o.value&&o.value.scrollToIndex(x,{align:"center"})};return Z(()=>t.messages.length,(h,x)=>{o.value?(o.value.setOptions({count:h,estimateSize:()=>t.estimateSize}),l.value++,h>x&&B(()=>b())):B(()=>{O(),o.value&&l.value++})}),Z(()=>t.messages,h=>{!o.value&&h.length>0?B(()=>O()):o.value&&(o.value.setOptions({count:h.length,estimateSize:()=>t.estimateSize,getScrollElement:()=>n.value,overscan:5,scrollMargin:0,onChange:()=>{l.value++}}),l.value++,B(()=>{o.value&&o.value.measure()}))},{deep:!0}),v({scrollToBottom:b,scrollToMessage:T}),ye(()=>{B(()=>{O(),t.messages.length>0&&b()})}),Ae(()=>{o.value&&(o.value=null)}),(h,x)=>(a(),m("div",{ref_key:"scrollContainer",ref:n,class:"virtual-message-list",onScroll:S},[o.value&&r.value.length>0?(a(),m("div",{key:0,style:ae({height:`${o.value.getTotalSize()}px`,width:"100%",position:"relative"})},[(a(!0),m(K,null,G(r.value,C=>(a(),m("div",{key:C.key,style:ae({position:"absolute",top:0,left:0,width:"100%",transform:`translateY(${C.start}px)`})},[he(h.$slots,"default",{message:u.messages[C.index],index:C.index},void 0)],4))),128))],4)):(a(),m("div",mt,[(a(!0),m(K,null,G(u.messages,(C,y)=>(a(),m("div",{key:C.id||y},[he(h.$slots,"default",{message:C,index:y},void 0)]))),128))]))],544))}},gt=ne(pt,[["__scopeId","data-v-3c34170a"]]),vt={class:"intent-confirmation-message"},yt={class:"confirmation-header"},_t={class:"header-icon"},bt={class:"header-text"},St={key:0},xt={key:1},kt={key:2},Ct={class:"understanding-content"},wt={key:0,class:"original-input"},It={class:"label"},$t={class:"value original-text"},Mt={key:1,class:"corrected-input"},Ot={class:"label"},zt={class:"value corrected-text"},Et={class:"intent-section"},At={class:"label"},Tt={class:"value"},Ft={key:2,class:"key-points-section"},Rt={class:"label"},Pt={class:"key-points-list"},qt={key:3,class:"correction-section"},jt={class:"label"},Dt={class:"value correction-text"},Lt={key:0,class:"streaming-indicator"},Nt={key:0,class:"streaming-tokens"},Wt={key:1,class:"action-buttons"},Bt={key:2,class:"correction-input-section"},Vt={class:"correction-actions"},Ut={__name:"IntentConfirmationMessage",props:{message:{type:Object,required:!0}},emits:["confirm","correct"],setup(u,{emit:v}){const e=u,t=v,s=N(!1),n=N(""),o=k(()=>e.message.metadata?.originalInput||""),l=k(()=>e.message.metadata?.understanding||{}),r=k(()=>l.value.correctedInput||o.value),O=k(()=>l.value.intent||"未识别"),S=k(()=>l.value.keyPoints||[]),b=k(()=>r.value!==o.value&&o.value.trim()!==""),T=k(()=>e.message.metadata?.status||"pending"),h=k(()=>T.value==="confirmed"),x=k(()=>T.value==="corrected"),C=k(()=>!!e.message.metadata?.streaming),y=k(()=>e.message.metadata?.streamingTokens||0),F=k(()=>e.message.metadata?.correction||null);function A(){t("confirm",{messageId:e.message.id,originalInput:o.value,understanding:l.value})}function j(){s.value=!0,n.value=r.value}function D(){n.value.trim()&&(t("correct",{messageId:e.message.id,originalInput:o.value,correction:n.value}),s.value=!1)}function W(){s.value=!1,n.value=""}return(w,P)=>{const U=q("a-button"),ie=q("a-textarea");return a(),m("div",vt,[d("div",yt,[d("div",_t,[h.value?(a(),z(_(Ue),{key:0,style:{color:"#52c41a"}})):x.value?(a(),z(_(He),{key:1,style:{color:"#faad14"}})):(a(),z(_(Qe),{key:2,style:{color:"#1890ff"}}))]),d("div",bt,[h.value?(a(),m("span",St,c(w.$t("chat.intent.confirmed")),1)):x.value?(a(),m("span",xt,c(w.$t("chat.intent.corrected")),1)):(a(),m("span",kt,c(u.message.content),1))])]),d("div",Ct,[b.value?(a(),m("div",wt,[d("div",It,c(w.$t("chat.intent.label.original")),1),d("div",$t,c(o.value),1)])):M("",!0),b.value?(a(),m("div",Mt,[d("div",Ot,c(w.$t("chat.intent.label.understood")),1),d("div",zt,c(r.value),1)])):M("",!0),d("div",Et,[d("div",At,"🎯 "+c(w.$t("chat.intent.label.intent")),1),d("div",Tt,c(O.value),1)]),S.value&&S.value.length>0?(a(),m("div",Ft,[d("div",Rt,"📝 "+c(w.$t("chat.intent.label.keyPoints")),1),d("ul",Pt,[(a(!0),m(K,null,G(S.value,(J,H)=>(a(),m("li",{key:H},c(J),1))),128))])])):M("",!0),F.value?(a(),m("div",qt,[d("div",jt,"📝 "+c(w.$t("chat.intent.label.correction")),1),d("div",Dt,c(F.value),1)])):M("",!0)]),C.value?(a(),m("div",Lt,[g(_(_e),{spin:""}),d("span",null,c(w.$t("chat.intent.status.understanding")),1),y.value>0?(a(),m("span",Nt,"· "+c(y.value)+" tokens",1)):M("",!0)])):!h.value&&!x.value?(a(),m("div",Wt,[g(U,{type:"primary",onClick:A},{default:I(()=>[g(_(fe)),E(" "+c(w.$t("chat.intent.action.confirm")),1)]),_:1}),g(U,{onClick:j},{default:I(()=>[g(_(Ke)),E(" "+c(w.$t("chat.intent.action.correct")),1)]),_:1})])):M("",!0),s.value?(a(),m("div",Bt,[g(ie,{value:n.value,"onUpdate:value":P[0]||(P[0]=J=>n.value=J),placeholder:w.$t("chat.intent.action.correctPlaceholder"),"auto-size":{minRows:2,maxRows:6}},null,8,["value","placeholder"]),d("div",Vt,[g(U,{type:"primary",size:"small",onClick:D},{default:I(()=>[g(_(fe)),E(" "+c(w.$t("chat.intent.action.submitCorrection")),1)]),_:1}),g(U,{size:"small",onClick:W},{default:I(()=>[g(_(Ge)),E(" "+c(w.$t("chat.intent.action.cancelCorrection")),1)]),_:1})])])):M("",!0)])}}},Ht=ne(Ut,[["__scopeId","data-v-ded139e5"]]),Qt={style:{display:"flex",height:"calc(100vh - 56px - 48px)",gap:"16px"}},Kt={style:{width:"240px","flex-shrink":"0",background:"var(--bg-card)","border-radius":"8px",border:"1px solid var(--border-color)",display:"flex","flex-direction":"column",overflow:"hidden"}},Gt={key:0,style:{padding:"6px 12px 4px","font-size":"11px",color:"#1677ff",background:"rgba(22,119,255,.07)","border-bottom":"1px solid rgba(22,119,255,.15)",display:"flex","align-items":"center",gap:"4px"}},Jt=["title"],Xt={key:1,style:{padding:"6px 12px 4px","font-size":"11px",color:"#722ed1",background:"rgba(114,46,209,.07)","border-bottom":"1px solid rgba(114,46,209,.15)",display:"flex","align-items":"center",gap:"4px"}},Yt={style:{padding:"10px 12px","border-bottom":"1px solid var(--border-color)",display:"flex",gap:"8px"}},Zt={style:{flex:"1","overflow-y":"auto",padding:"8px"}},es=["onClick"],ts={class:"session-icon"},ss={class:"session-info"},ns={class:"session-title"},is={class:"session-meta"},os={key:0,style:{"text-align":"center",color:"var(--text-muted)",padding:"24px 0","font-size":"13px"}},ls={style:{flex:"1",background:"var(--bg-card)","border-radius":"8px",border:"1px solid var(--border-color)",display:"flex","flex-direction":"column",overflow:"hidden"}},as={key:0,style:{flex:"1",display:"flex","flex-direction":"column","align-items":"center","justify-content":"center",color:"var(--text-muted)"}},rs={style:{"font-size":"16px","margin-bottom":"8px",color:"#777"}},cs={style:{"font-size":"13px",color:"var(--text-muted)"}},us={style:{"margin-top":"24px",display:"flex",gap:"12px"}},ds={key:1,class:"chat-header"},hs={class:"chat-intent-toggle"},fs={class:"chat-intent-toggle-label"},ms={key:2,class:"chat-area-body"},ps={key:0,class:"chat-empty-prompts"},gs={class:"empty-title"},vs={class:"empty-hint"},ys={class:"quick-prompts"},_s={key:1,class:"system-banner"},bs={key:2,class:"tool-msg"},Ss={key:0,class:"tool-detail"},xs={class:"tool-detail__pre tool-detail__pre--input"},ks={key:0,class:"tool-detail__result"},Cs={class:"tool-detail__pre tool-detail__pre--result"},ws={class:"msg-body"},Is={class:"msg-meta-row"},$s={class:"msg-role"},Ms={class:"msg-time"},Os={key:0,class:"msg-tokens"},zs={key:0,class:"bubble user"},Es={key:2,class:"question-card"},As={class:"question-text"},Ts={key:0,style:{display:"flex","flex-wrap":"wrap",gap:"8px","margin-top":"10px"}},Fs={key:3,style:{padding:"16px","border-top":"1px solid var(--border-color)"}},Rs={style:{display:"flex",gap:"8px","align-items":"flex-end"}},Ps={style:{"margin-bottom":"8px","font-size":"12px",color:"var(--text-muted)"}},qs={style:{"margin-top":"8px"}},js={__name:"Chat",setup(u){const{t:v,tm:e,rt:t}=je(),s=Re()||null,n=Pe()||null,o=window.__CC_CONFIG__||{},l=k(()=>o.mode==="project"),r=De(),O=new Set,S=N(null),b=N(""),T=k(()=>r.contextMode);function h(i){r.setContextMode(i)}const x=k(()=>r.intentEnabled);function C(i){r.setIntentEnabled(i)}const y=k(()=>r.currentSessionId),F=k(()=>y.value?r.getMessages(y.value):[]),A=k(()=>{const i=r.streaming[y.value];return i?.active?i.content:null}),j=k(()=>{const i=F.value;return A.value?[...i,{role:"assistant",content:A.value,_streaming:!0,timestamp:Date.now()}]:i}),D=k(()=>r.pendingQuestion[y.value]),W=k(()=>r.getIsLoading(y.value));function w(i){if(!i)return"";const p=new Date(i);return`${String(p.getHours()).padStart(2,"0")}:${String(p.getMinutes()).padStart(2,"0")}`}const P=qe(new Set);function U(i){P.has(i)?P.delete(i):P.add(i)}function ie(i,p){return{id:`tool-${p}`,label:i.tool||v("chat.tool.unknownTool"),detail:J(i),status:i.status==="done"?"done":"running"}}function J(i){if(i.status==="running"){const R=i.input&&typeof i.input=="object"?Object.keys(i.input):[];return R.length?v("chat.tool.argsPreview",{n:R.length,key:R[0]}):v("chat.tool.running")}if(i.result==null)return v("chat.tool.done");const $=(typeof i.result=="string"?i.result:JSON.stringify(i.result)).split(`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{_ as h}from"./index-
|
|
1
|
+
import{_ as h}from"./index-CzoKAiyT.js";import{K as f,L as d,M as b,R as s,P as n,Q as y,N as S,O as C,S as x,Z as w,f as a}from"./vendor-BXcBOG8b.js";import"./icons-DlxlFL4g.js";const B={class:"bubble"},N={class:"meta"},k={class:"actor"},$={class:"time"},M={class:"body"},q={__name:"ChatBubbleRenderer",props:{event:{type:Object,required:!0}},setup(r){const t=r,i=a(()=>{const e=t.event.content||{};return e.text||e.body||e.message||e.title||JSON.stringify(e).slice(0,200)}),l=a(()=>{const e=t.event.content||{};return e.from||e.sender||e.senderName||t.event.actor||"(unknown)"}),u=a(()=>{const e=(t.event.actor||"").toLowerCase();return e.includes("self")||e==="me"||e.endsWith("_self")}),m=a(()=>{const e=t.event.source.adapter||"";return e.startsWith("messaging-qq")?"magenta":e==="wechat"?"green":"blue"}),p=a(()=>{if(!t.event.occurredAt)return"";try{const e=new Date(t.event.occurredAt),c=e.getFullYear(),o=String(e.getMonth()+1).padStart(2,"0"),_=String(e.getDate()).padStart(2,"0"),v=String(e.getHours()).padStart(2,"0"),g=String(e.getMinutes()).padStart(2,"0");return`${c}-${o}-${_} ${v}:${g}`}catch{return""}});return(e,c)=>{const o=f("a-tag");return d(),b("div",{class:w(["chat-row",{mine:u.value}])},[s("div",B,[s("div",N,[s("span",k,n(l.value),1),s("span",$,n(p.value),1)]),s("div",M,n(i.value),1),r.event.source.adapter?(d(),y(o,{key:0,class:"src",color:m.value},{default:S(()=>[C(n(r.event.source.adapter),1)]),_:1},8,["color"])):x("",!0)])],2)}}},R=h(q,[["__scopeId","data-v-eb2be309"]]);export{R as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{h as o,i as E,f as V,P as W}from"./index-
|
|
1
|
+
import{h as o,i as E,f as V,P as W}from"./index-CzoKAiyT.js";import{i as F}from"./initDefaultProps-BlhbrsQk.js";import{d as I,r as f,w as M,c as h}from"./vendor-BXcBOG8b.js";var R=function(t,l){var c={};for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&l.indexOf(n)<0&&(c[n]=t[n]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var a=0,n=Object.getOwnPropertySymbols(t);a<n.length;a++)l.indexOf(n[a])<0&&Object.prototype.propertyIsEnumerable.call(t,n[a])&&(c[n[a]]=t[n[a]]);return c};const T={prefixCls:String,name:String,id:String,type:String,defaultChecked:{type:[Boolean,Number],default:void 0},checked:{type:[Boolean,Number],default:void 0},disabled:Boolean,tabindex:{type:[Number,String]},readonly:Boolean,autofocus:Boolean,value:W.any,required:Boolean},J=I({compatConfig:{MODE:3},name:"Checkbox",inheritAttrs:!1,props:F(T,{prefixCls:"rc-checkbox",type:"checkbox",defaultChecked:!1}),emits:["click","change"],setup(t,l){let{attrs:c,emit:n,expose:a}=l;const d=f(t.checked===void 0?t.defaultChecked:t.checked),s=f();M(()=>t.checked,()=>{d.value=t.checked}),a({focus(){var e;(e=s.value)===null||e===void 0||e.focus()},blur(){var e;(e=s.value)===null||e===void 0||e.blur()}});const i=f(),y=e=>{if(t.disabled)return;t.checked===void 0&&(d.value=e.target.checked),e.shiftKey=i.value;const u={target:o(o({},t),{checked:e.target.checked}),stopPropagation(){e.stopPropagation()},preventDefault(){e.preventDefault()},nativeEvent:e};t.checked!==void 0&&(s.value.checked=!!t.checked),n("change",u),i.value=!1},k=e=>{n("click",e),i.value=e.shiftKey};return()=>{const{prefixCls:e,name:u,id:m,type:g,disabled:b,readonly:x,tabindex:C,autofocus:O,value:P,required:S}=t,_=R(t,["prefixCls","name","id","type","disabled","readonly","tabindex","autofocus","value","required"]),{class:j,onFocus:B,onBlur:w,onKeydown:K,onKeypress:N,onKeyup:D}=c,v=o(o({},_),c),$=Object.keys(v).reduce((p,r)=>((r.startsWith("data-")||r.startsWith("aria-")||r==="role")&&(p[r]=v[r]),p),{}),q=E(e,j,{[`${e}-checked`]:d.value,[`${e}-disabled`]:b}),A=o(o({name:u,id:m,type:g,readonly:x,disabled:b,tabindex:C,class:`${e}-input`,checked:!!d.value,autofocus:O,value:P},$),{onChange:y,onClick:k,onFocus:B,onBlur:w,onKeydown:K,onKeypress:N,onKeyup:D,required:S});return h("span",{class:q},[h("input",V({ref:s},A),null),h("span",{class:`${e}-inner`},null)])}}});export{J as V};
|