chainlesschain 0.162.133 → 0.162.135
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +2 -2
- package/src/assets/web-panel/assets/{AIOps-D5PYXgpS.js → AIOps-C8GPdDdA.js} +1 -1
- package/src/assets/web-panel/assets/{ActionButton-DA4ysdbh.js → ActionButton-l3wm1drb.js} +1 -1
- package/src/assets/web-panel/assets/{Analytics-BFWqU0kU.js → Analytics-BDqrmGFj.js} +2 -2
- package/src/assets/web-panel/assets/{AppLayout-DJaMA8zM.js → AppLayout-Brv_8SYm.js} +5 -5
- package/src/assets/web-panel/assets/{Audit-Cu5EdUNw.js → Audit-CP-tplVO.js} +1 -1
- package/src/assets/web-panel/assets/{Backup-CHqoN1Wn.js → Backup-zEeifjos.js} +1 -1
- package/src/assets/web-panel/assets/{BaseInput-D7sHv5k5.js → BaseInput-BTIoNJtV.js} +1 -1
- package/src/assets/web-panel/assets/{Chat-DwIEoXul.js → Chat-DRyq2zME.js} +5 -5
- package/src/assets/web-panel/assets/ChatBubbleRenderer-BKkD07Ou.js +1 -0
- package/src/assets/web-panel/assets/{Checkbox-0Q3R3OKe.js → Checkbox-CpyOwOBw.js} +1 -1
- package/src/assets/web-panel/assets/{Codegen-EuxRN2jc.js → Codegen-Ch-9tABk.js} +1 -1
- package/src/assets/web-panel/assets/{Col-C88Gc81T.js → Col-DTQBKMaX.js} +1 -1
- package/src/assets/web-panel/assets/{Community-DRD-Qbgo.js → Community-dCaZxTkr.js} +1 -1
- package/src/assets/web-panel/assets/{Compact-EQRtnWqU.js → Compact-j49AW-_C.js} +1 -1
- package/src/assets/web-panel/assets/{Compliance-DAkQntzW.js → Compliance-CZDScEfD.js} +1 -1
- package/src/assets/web-panel/assets/{Cowork-BjhQndo0.js → Cowork-D77z7nsK.js} +2 -2
- package/src/assets/web-panel/assets/{Cron-BNVidRa8.js → Cron-DTUUkbYr.js} +2 -2
- package/src/assets/web-panel/assets/{Crosschain-CwaR5TR4.js → Crosschain-UpAAnl37.js} +1 -1
- package/src/assets/web-panel/assets/{DID-CnZ2v2_Q.js → DID-J3DHNGdv.js} +2 -2
- package/src/assets/web-panel/assets/{Dashboard-DgjhReMB.js → Dashboard-CMhAYpbr.js} +2 -2
- package/src/assets/web-panel/assets/{Dropdown-BeoYnFbZ.js → Dropdown-E4ecORvY.js} +1 -1
- package/src/assets/web-panel/assets/{EmailListRenderer-D5YKi_uf.js → EmailListRenderer-C0JfIVnx.js} +1 -1
- package/src/assets/web-panel/assets/{FamilyGuardDashboard-Df1K_Gd7.js → FamilyGuardDashboard-BuANd_x-.js} +1 -1
- package/src/assets/web-panel/assets/{Federation-BSTYpp26.js → Federation-BoL0NWre.js} +1 -1
- package/src/assets/web-panel/assets/{FormItemContext-C2fTmnPv.js → FormItemContext-CuwP6Yl4.js} +1 -1
- package/src/assets/web-panel/assets/{GenericCardRenderer-BGWqXdu1.js → GenericCardRenderer-BddFKuox.js} +1 -1
- package/src/assets/web-panel/assets/{Git-DG8u5Uhq.js → Git-jkdzP07a.js} +2 -2
- package/src/assets/web-panel/assets/{Governance-Curqpb82.js → Governance-Xp6Z3HQ_.js} +1 -1
- package/src/assets/web-panel/assets/{Inference-oOFhrj8m.js → Inference-BkIfl0oN.js} +1 -1
- package/src/assets/web-panel/assets/{KnowledgeGraph-CBb6KH38.js → KnowledgeGraph-D4KjmcCK.js} +1 -1
- package/src/assets/web-panel/assets/{Logs-BXuwdD41.js → Logs-BvIzUdZr.js} +2 -2
- package/src/assets/web-panel/assets/{Marketplace-BTpRCkiA.js → Marketplace-CIIW5sre.js} +1 -1
- package/src/assets/web-panel/assets/{McpTools-DxCN3sKG.js → McpTools-B4koRE-u.js} +3 -3
- package/src/assets/web-panel/assets/{Memory-BI8gDlyk.js → Memory-B_wZnNsC.js} +2 -2
- package/src/assets/web-panel/assets/{MobileBridge-BxSOiRDO.js → MobileBridge-DXFo2Q24.js} +1 -1
- package/src/assets/web-panel/assets/{MobileProjects-BFiakxnr.js → MobileProjects-CVPdCW9B.js} +1 -1
- package/src/assets/web-panel/assets/{Mtc-TUKC17XK.js → Mtc-154O648I.js} +4 -4
- package/src/assets/web-panel/assets/{MtcAudit-D2RX-5pT.js → MtcAudit-De0n8SH_.js} +2 -2
- package/src/assets/web-panel/assets/{Multisig-vzRlWX2F.js → Multisig-D3oia9D9.js} +3 -3
- package/src/assets/web-panel/assets/{NLProgramming-CV7gTVMx.js → NLProgramming-Cs6kl63I.js} +1 -1
- package/src/assets/web-panel/assets/{Notes-BRwckEQP.js → Notes-BwPZuNQa.js} +3 -3
- package/src/assets/web-panel/assets/{NotificationSettings-D_epSpxf.js → NotificationSettings-BnD26DK4.js} +1 -1
- package/src/assets/web-panel/assets/{OrderTableRenderer-DiUZoZMw.js → OrderTableRenderer-BVOPWrWc.js} +1 -1
- package/src/assets/web-panel/assets/{Organization-BXMDLOZv.js → Organization-H3pMdcBb.js} +2 -2
- package/src/assets/web-panel/assets/{Overflow-D7cCvX6c.js → Overflow-Bq325sof.js} +1 -1
- package/src/assets/web-panel/assets/{P2P-DTHILhe0.js → P2P-WW4ZOjbm.js} +2 -2
- package/src/assets/web-panel/assets/PdhVaultBrowser-C1gzHyUT.js +7 -0
- package/src/assets/web-panel/assets/{Permissions-CabXm5TU.js → Permissions-B6UgMKSQ.js} +3 -3
- package/src/assets/web-panel/assets/{PersonalDataHub-CT27ryRx.js → PersonalDataHub-C6G2G_eC.js} +3 -3
- package/src/assets/web-panel/assets/{Pipeline-Ckplz3m9.js → Pipeline-o4bOsiOg.js} +1 -1
- package/src/assets/web-panel/assets/{Privacy-V4TD__ts.js → Privacy-TwX37lFt.js} +1 -1
- package/src/assets/web-panel/assets/{ProjectInit-Cic8jcbW.js → ProjectInit-BgFvgULF.js} +2 -2
- package/src/assets/web-panel/assets/{ProjectSettings-DHvk9hwH.js → ProjectSettings-BJgJb6wi.js} +2 -2
- package/src/assets/web-panel/assets/{Projects-CT9QWjwR.js → Projects-DSzrqJda.js} +1 -1
- package/src/assets/web-panel/assets/{Providers-CBiYQ8Mw.js → Providers-C6HWa3ZD.js} +1 -1
- package/src/assets/web-panel/assets/{QuickAsk-VPI7xb2Z.js → QuickAsk-Bz1g3Ie6.js} +1 -1
- package/src/assets/web-panel/assets/{Recommend-D0v1ViOX.js → Recommend-C_e2qe6f.js} +1 -1
- package/src/assets/web-panel/assets/{Reputation-Dpr8cUji.js → Reputation-C66IgdUQ.js} +1 -1
- package/src/assets/web-panel/assets/{Row-L5Z6GXFI.js → Row-CVgo4aH_.js} +1 -1
- package/src/assets/web-panel/assets/{RssFeed-kwLpn9aV.js → RssFeed-5ASYwDim.js} +2 -2
- package/src/assets/web-panel/assets/{Search-D_sra3g-.js → Search-DBOPqd_k.js} +1 -1
- package/src/assets/web-panel/assets/{Security-CWb06MeE.js → Security-BPUlVa_U.js} +2 -2
- package/src/assets/web-panel/assets/{Services-A4Ti0exb.js → Services-BtH8pNyu.js} +2 -2
- package/src/assets/web-panel/assets/{Skeleton-CH6Lp6zL.js → Skeleton-FQBcWIgc.js} +1 -1
- package/src/assets/web-panel/assets/Skills-B5SKs0R5.js +1 -0
- package/src/assets/web-panel/assets/{Sla-D7MyrxMq.js → Sla-DvynKWyz.js} +1 -1
- package/src/assets/web-panel/assets/{SpeechSettings-bZzSxulW.js → SpeechSettings-3kg5311F.js} +1 -1
- package/src/assets/web-panel/assets/{SyncSettings-Be4oJLRb.js → SyncSettings-Djoam0op.js} +2 -2
- package/src/assets/web-panel/assets/Tasks-CfFSgWDg.js +1 -0
- package/src/assets/web-panel/assets/{Templates-BnaCTa7n.js → Templates-DoJV7D56.js} +1 -1
- package/src/assets/web-panel/assets/{Tenant-04JgqZFj.js → Tenant-eb1uEcsf.js} +1 -1
- package/src/assets/web-panel/assets/{Terminal-PvO7VD-K.js → Terminal-CrQBDamW.js} +2 -2
- package/src/assets/web-panel/assets/{TimelineRenderer-C5PpCHFb.js → TimelineRenderer-Cf4PL9u2.js} +1 -1
- package/src/assets/web-panel/assets/{Tokens-Cxk8RTXc.js → Tokens-Zhct1l0_.js} +1 -1
- package/src/assets/web-panel/assets/{Trigger-D8GKqHE7.js → Trigger-C_bhjD7t.js} +1 -1
- package/src/assets/web-panel/assets/{Trust-6Xuh2TaD.js → Trust-D2qYYQ91.js} +1 -1
- package/src/assets/web-panel/assets/{UkeySign-SnjOTe6A.js → UkeySign-FgbfqaRh.js} +1 -1
- package/src/assets/web-panel/assets/{VideoEditing-D4mh67r1.js → VideoEditing-Qf9TjR_b.js} +1 -1
- package/src/assets/web-panel/assets/{Wallet-DLG1owId.js → Wallet-DwrafyCn.js} +4 -4
- package/src/assets/web-panel/assets/{WebAuthn-2lPtuboR.js → WebAuthn-BlQdPSoZ.js} +5 -5
- package/src/assets/web-panel/assets/{WorkflowEditor-JNAuaMXq.js → WorkflowEditor-B6I7YgRJ.js} +1 -1
- package/src/assets/web-panel/assets/{chat-C_VzV_CQ.js → chat-BZ3QdktE.js} +1 -1
- package/src/assets/web-panel/assets/{colors-D4Nk10ju.js → colors-mH7WpOfg.js} +1 -1
- package/src/assets/web-panel/assets/{compact-item-DF3mC45s.js → compact-item-D3hDjv9f.js} +1 -1
- package/src/assets/web-panel/assets/{createContext-DYPL7lov.js → createContext-Dl_7Nkr4.js} +1 -1
- package/src/assets/web-panel/assets/devWarning-C1-v3bP6.js +1 -0
- package/src/assets/web-panel/assets/{hasIn-D5flAJ52.js → hasIn-wvip0tzR.js} +1 -1
- package/src/assets/web-panel/assets/{index-BM2OBesL.js → index-0HVD1mxo.js} +1 -1
- package/src/assets/web-panel/assets/{index-mxl2Tk9N.js → index-B2YeO806.js} +1 -1
- package/src/assets/web-panel/assets/{index-QfqrYch4.js → index-B6czSkzN.js} +1 -1
- package/src/assets/web-panel/assets/{index-Y1PuU7dA.js → index-B9t7LEJ8.js} +1 -1
- package/src/assets/web-panel/assets/index-BDvfsM83.js +1 -0
- package/src/assets/web-panel/assets/{index-CwL5VIal.js → index-BZ14Q7jH.js} +1 -1
- package/src/assets/web-panel/assets/{index-BP_RJr7h.js → index-B_I8UbJc.js} +1 -1
- package/src/assets/web-panel/assets/{index-DIWcJ5_g.js → index-BeiskTuI.js} +1 -1
- package/src/assets/web-panel/assets/{index-DoVbiVLl.js → index-Bn1rellA.js} +1 -1
- package/src/assets/web-panel/assets/{index-D6kjxouA.js → index-Bpj16jRB.js} +1 -1
- package/src/assets/web-panel/assets/{index-CmmTTeI_.js → index-C5f0C4Cf.js} +1 -1
- package/src/assets/web-panel/assets/{index-DBrnQlVj.js → index-C7f9b3uD.js} +1 -1
- package/src/assets/web-panel/assets/{index-DB6Gfmbd.js → index-CEVQx1A1.js} +1 -1
- package/src/assets/web-panel/assets/{index-CQRTZCRK.js → index-CIjhZpoP.js} +1 -1
- package/src/assets/web-panel/assets/{index-BbqlP-0x.js → index-CQg64FhB.js} +1 -1
- package/src/assets/web-panel/assets/{index-B6HB1nYU.js → index-CTN0el_7.js} +1 -1
- package/src/assets/web-panel/assets/{index-DAB3Q_nF.js → index-CVU-sWbI.js} +1 -1
- package/src/assets/web-panel/assets/{index-CxOMN1eP.js → index-CbjJ6juC.js} +1 -1
- package/src/assets/web-panel/assets/{index-DlaUWCOV.js → index-CcFVwuKS.js} +1 -1
- package/src/assets/web-panel/assets/{index-u7jSAnE5.js → index-CdcubLNT.js} +1 -1
- package/src/assets/web-panel/assets/{index-eP13aFQA.js → index-CjD-wNN0.js} +1 -1
- package/src/assets/web-panel/assets/{index-DdSPhjdJ.js → index-Cnaz0Asm.js} +1 -1
- package/src/assets/web-panel/assets/{index-B18cp3n9.js → index-Cu82OYmb.js} +1 -1
- package/src/assets/web-panel/assets/{index-CYGcdwPp.js → index-CxDUhU5g.js} +1 -1
- package/src/assets/web-panel/assets/{index-BrhQVZvQ.js → index-D5Wuku7c.js} +1 -1
- package/src/assets/web-panel/assets/{index-B50bPMUj.js → index-D6OdgJy6.js} +1 -1
- package/src/assets/web-panel/assets/index-DC0SwdNf.js +1 -0
- package/src/assets/web-panel/assets/{index-CBQKNqZw.js → index-DCXZLI19.js} +1 -1
- package/src/assets/web-panel/assets/{index-_I4YISHL.js → index-DDBuc-Id.js} +3 -3
- package/src/assets/web-panel/assets/{index-CXgtLdeP.js → index-Db1XY8N-.js} +1 -1
- package/src/assets/web-panel/assets/{index-DFGgPqGL.js → index-DcCWULRq.js} +1 -1
- package/src/assets/web-panel/assets/{index-DLK7Yseu.js → index-DjnC31Yx.js} +1 -1
- package/src/assets/web-panel/assets/{index-BvX4TP6v.js → index-DpMNZhdq.js} +1 -1
- package/src/assets/web-panel/assets/{index-RJ5RP6OB.js → index-DxzxIwGc.js} +1 -1
- package/src/assets/web-panel/assets/{index-NJplJRk0.js → index-Jr_h0z1G.js} +1 -1
- package/src/assets/web-panel/assets/{index-BVYugqQ_.js → index-fpkVqY3Y.js} +1 -1
- package/src/assets/web-panel/assets/{index-BGEz_rsH.js → index-gZUcbNri.js} +1 -1
- package/src/assets/web-panel/assets/{index-D6yet1u8.js → index-ipake_aQ.js} +1 -1
- package/src/assets/web-panel/assets/{index-D-ZudNpP.js → index-r6tial0Z.js} +1 -1
- package/src/assets/web-panel/assets/{initDefaultProps-BYpzEQJR.js → initDefaultProps-CGh7iY6x.js} +1 -1
- package/src/assets/web-panel/assets/{motion-BwoBDSTB.js → motion-Bm1X_QyP.js} +1 -1
- package/src/assets/web-panel/assets/{move-ECqdofgP.js → move-BuIY8ECm.js} +1 -1
- package/src/assets/web-panel/assets/{mtc-parser-BwJBczVR.js → mtc-parser-DRWHeLRG.js} +1 -1
- package/src/assets/web-panel/assets/{omit-C05k2QvJ.js → omit-lTzSMFbB.js} +1 -1
- package/src/assets/web-panel/assets/{pickAttrs-yEaymbc3.js → pickAttrs-Ci02C2So.js} +1 -1
- package/src/assets/web-panel/assets/{placementArrow-BolUzOwE.js → placementArrow-B3tYnC80.js} +1 -1
- package/src/assets/web-panel/assets/{responsiveObserve-6k5y4DzK.js → responsiveObserve-wN6_3_hR.js} +1 -1
- package/src/assets/web-panel/assets/{slide-DDkfGVnC.js → slide-Dy1pMd8P.js} +1 -1
- package/src/assets/web-panel/assets/{statusUtils-CuQEwQEu.js → statusUtils-CmPmxXZF.js} +1 -1
- package/src/assets/web-panel/assets/{styleChecker-CbIXhlWn.js → styleChecker-CEKdg6Qs.js} +1 -1
- package/src/assets/web-panel/assets/{useFlexGapSupport-BRzWzevU.js → useFlexGapSupport-B2md7qB4.js} +1 -1
- package/src/assets/web-panel/assets/{useFs-AItSJ9F5.js → useFs-fOz_rVnu.js} +1 -1
- package/src/assets/web-panel/assets/{usePersonalDataHub-Btpt6GeK.js → usePersonalDataHub-B54wsK9k.js} +1 -1
- package/src/assets/web-panel/assets/{vnode-DTq_TuIb.js → vnode-B4xa3bk5.js} +1 -1
- package/src/assets/web-panel/assets/{zoom-2A1jrVbU.js → zoom-DIUKjYvp.js} +1 -1
- package/src/assets/web-panel/index.html +1 -1
- package/src/assets/web-panel/assets/ChatBubbleRenderer-87TM5pDY.js +0 -1
- package/src/assets/web-panel/assets/PdhVaultBrowser-DrOiphKi.js +0 -7
- package/src/assets/web-panel/assets/Skills-XQQG90xL.js +0 -1
- package/src/assets/web-panel/assets/Tasks-vP1RiLQe.js +0 -1
- package/src/assets/web-panel/assets/devWarning-H7hgiUpq.js +0 -1
- package/src/assets/web-panel/assets/index-BCILPdOo.js +0 -1
- package/src/assets/web-panel/assets/index-fgHY0FSb.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{q as z,f as S,h,a6 as f,i as N}from"./index-
|
|
1
|
+
import{q as z,f as S,h,a6 as f,i as N}from"./index-DDBuc-Id.js";import{d as _,o as E,f as F,b as o,c as I,r as $}from"./vendor-BvqAck49.js";import{u as M,r as u}from"./responsiveObserve-wN6_3_hR.js";import{u as T}from"./useFlexGapSupport-B2md7qB4.js";import{b as V,c as q}from"./index-D6OdgJy6.js";const D=()=>({align:f([String,Object]),justify:f([String,Object]),prefixCls:String,gutter:f([Number,Array,Object],0),wrap:{type:Boolean,default:void 0}}),P=_({compatConfig:{MODE:3},name:"ARow",inheritAttrs:!1,props:D(),setup(s,G){let{slots:d,attrs:l}=G;const{prefixCls:a,direction:R}=z("row",s),[O,C]=V(a);let m;const v=M(),p=$({xs:!0,sm:!0,md:!0,lg:!0,xl:!0,xxl:!0}),y=$({xs:!1,sm:!1,md:!1,lg:!1,xl:!1,xxl:!1}),g=e=>o(()=>{if(typeof s[e]=="string")return s[e];if(typeof s[e]!="object")return"";for(let t=0;t<u.length;t++){const n=u[t];if(!y.value[n])continue;const r=s[e][n];if(r!==void 0)return r}return""}),b=g("align"),x=g("justify"),w=T();E(()=>{m=v.value.subscribe(e=>{y.value=e;const t=s.gutter||0;(!Array.isArray(t)&&typeof t=="object"||Array.isArray(t)&&(typeof t[0]=="object"||typeof t[1]=="object"))&&(p.value=e)})}),F(()=>{v.value.unsubscribe(m)});const A=o(()=>{const e=[void 0,void 0],{gutter:t=0}=s;return(Array.isArray(t)?t:[t,void 0]).forEach((r,j)=>{if(typeof r=="object")for(let i=0;i<u.length;i++){const c=u[i];if(p.value[c]&&r[c]!==void 0){e[j]=r[c];break}}else e[j]=r}),e});q({gutter:A,supportFlexGap:w,wrap:o(()=>s.wrap)});const k=o(()=>N(a.value,{[`${a.value}-no-wrap`]:s.wrap===!1,[`${a.value}-${x.value}`]:x.value,[`${a.value}-${b.value}`]:b.value,[`${a.value}-rtl`]:R.value==="rtl"},l.class,C.value)),B=o(()=>{const e=A.value,t={},n=e[0]!=null&&e[0]>0?`${e[0]/-2}px`:void 0,r=e[1]!=null&&e[1]>0?`${e[1]/-2}px`:void 0;return n&&(t.marginLeft=n,t.marginRight=n),w.value?t.rowGap=`${e[1]}px`:r&&(t.marginTop=r,t.marginBottom=r),t});return()=>{var e;return O(I("div",S(S({},l),{},{class:k.value,style:h(h({},B.value),l.style)}),[(e=d.default)===null||e===void 0?void 0:e.call(d)]))}}});export{P as A};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{I as m,J as y,U as f,c as s,K as o,V as v,S as R,Q as g,o as Q,b as q,r as x,P as i,F as N,Z as J,R as k,a2 as $}from"./vendor-BvqAck49.js";import{_ as ee,u as Z,d as u,t as G}from"./index-
|
|
1
|
+
import{I as m,J as y,U as f,c as s,K as o,V as v,S as R,Q as g,o as Q,b as q,r as x,P as i,F as N,Z as J,R as k,a2 as $}from"./vendor-BvqAck49.js";import{_ as ee,u as Z,d as u,t as G}from"./index-DDBuc-Id.js";import{aB as te,aQ as ne,R as le,as as ae,y as oe}from"./icons-DP3uiYxy.js";const se={__name:"RssFeed",setup(X,{expose:a}){a();const h=Z(),e=x(!1),M=x(!1),D=x(!1),w=x(!1),b=x([]),C=x([]),S=x(""),L=x(!1),O=x(""),z=x([]),I=q(()=>{const n=b.value.length,l=C.value.length,d=C.value.filter(p=>!p.read).length,r=b.value.filter(p=>p.lastUpdated).sort((p,Y)=>new Date(Y.lastUpdated)-new Date(p.lastUpdated))[0],c=r?P(r.lastUpdated):"-";return[{label:"订阅源数",value:n,color:"#1677ff"},{label:"文章总数",value:l,color:"#52c41a"},{label:"未读文章",value:d,color:"#faad14"},{label:"最近刷新",value:c,color:"#13c2c2"}]}),W=[{title:"标题",key:"title",dataIndex:"title",ellipsis:!0},{title:"来源",key:"source",dataIndex:"source",width:"140px"},{title:"发布时间",key:"publishedAt",dataIndex:"publishedAt",width:"160px"},{title:"状态",key:"status",width:"80px"},{title:"操作",key:"actions",width:"100px"}];function P(n){if(!n)return"-";try{const l=new Date(n);return isNaN(l.getTime())?n:l.toLocaleString("zh-CN",{month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"})}catch{return n}}function U(n){return G(n)}async function A(){e.value=!0;try{const{output:n}=await h.execute("rss list --json",2e4),l=U(n);Array.isArray(l)?b.value=l.map((d,r)=>({key:d.id||d.url||r,id:d.id||String(r),title:d.title||d.name||"",url:d.url||d.feedUrl||"",itemCount:d.itemCount??d.articleCount??d.count??0,lastUpdated:d.lastUpdated||d.updatedAt||d.lastRefresh||""})):b.value=T(n)}catch(n){u.error("加载订阅源失败: "+n.message)}finally{e.value=!1}}function T(n){const l=[],d=n.split(`
|
|
2
2
|
`);for(const r of d){const c=r.trim();if(!c||c.startsWith("─")||c.match(/^\d+ feed/i)||c.startsWith("RSS")||c.startsWith("No "))continue;const p=c.match(/^(\d+)\.\s+(.+?)(?:\s+[-–]\s+(.+))?$/);p?l.push({key:p[1],id:p[1],title:p[2].trim(),url:(p[3]||"").trim(),itemCount:0,lastUpdated:""}):c.length>5&&l.push({key:String(l.length),id:String(l.length),title:c.slice(0,80),url:"",itemCount:0,lastUpdated:""})}return l}async function F(){M.value=!0,z.value=[];try{let n="rss articles --limit 30 --json";S.value&&(n=`rss articles --feed ${S.value} --limit 30 --json`);const{output:l}=await h.execute(n,2e4),d=U(l);Array.isArray(d)?C.value=d.map((r,c)=>({key:r.id||String(c),id:r.id||String(c),title:r.title||"无标题",link:r.link||r.url||"",source:r.source||r.feedTitle||r.feedName||"",publishedAt:r.publishedAt||r.pubDate||r.date||"",read:!!r.read,summary:r.summary||r.description||"",content:r.content||""})):C.value=j(l)}catch(n){u.error("加载文章失败: "+n.message)}finally{M.value=!1}}function j(n){const l=[],d=n.split(`
|
|
3
|
-
`);for(const r of d){const c=r.trim();if(!c||c.startsWith("─")||c.match(/^\d+ article/i)||c.startsWith("No "))continue;const p=c.match(/^(\d+)\.\s+(.+?)(?:\s+[-–]\s+(.+))?$/);p&&l.push({key:p[1],id:p[1],title:p[2].trim(),link:"",source:(p[3]||"").trim(),publishedAt:"",read:!1,summary:"",content:""})}return l}async function
|
|
3
|
+
`);for(const r of d){const c=r.trim();if(!c||c.startsWith("─")||c.match(/^\d+ article/i)||c.startsWith("No "))continue;const p=c.match(/^(\d+)\.\s+(.+?)(?:\s+[-–]\s+(.+))?$/);p&&l.push({key:p[1],id:p[1],title:p[2].trim(),link:"",source:(p[3]||"").trim(),publishedAt:"",read:!1,summary:"",content:""})}return l}async function E(){const n=O.value.trim();if(!n){u.warning("请输入订阅源地址");return}w.value=!0;try{const{output:l}=await h.execute(`rss add "${n}"`,3e4);l.includes("error")||l.includes("失败")||l.includes("Error")?u.error("添加失败: "+l.slice(0,120)):(u.success("订阅源已添加"),L.value=!1,O.value="",await A(),await F())}catch(l){u.error("添加失败: "+l.message)}finally{w.value=!1}}async function B(n){try{u.loading({content:`正在刷新 ${n.title||n.id}...`,key:"refreshFeed"}),await h.execute(`rss refresh ${n.id}`,3e4),u.success({content:"刷新完成",key:"refreshFeed"}),await A(),await F()}catch(l){u.error({content:"刷新失败: "+l.message,key:"refreshFeed"})}}async function V(n){try{u.loading({content:`正在删除 ${n.title||n.id}...`,key:"removeFeed"});const{output:l}=await h.execute(`rss remove ${n.id}`,2e4);l.includes("error")||l.includes("失败")?u.error({content:"删除失败: "+l.slice(0,120),key:"removeFeed"}):(u.success({content:"已删除订阅源",key:"removeFeed"}),await A(),await F())}catch(l){u.error({content:"删除失败: "+l.message,key:"removeFeed"})}}async function t(){D.value=!0;try{u.loading({content:"正在刷新所有订阅源...",key:"refreshAll"}),await h.execute("rss refresh-all",6e4),u.success({content:"全部刷新完成",key:"refreshAll"}),await A(),await F()}catch(n){u.error({content:"刷新失败: "+n.message,key:"refreshAll"})}finally{D.value=!1}}async function _(n){try{await h.execute(`rss mark-read ${n.id}`,1e4),n.read=!0,u.success("已标记已读")}catch(l){u.error("操作失败: "+l.message)}}function K(n,l){z.value=n?[l.key]:[]}Q(async()=>{await A(),await F()});const H={ws:h,feedsLoading:e,articlesLoading:M,refreshingAll:D,adding:w,feeds:b,articles:C,selectedFeedId:S,showAddModal:L,newFeedUrl:O,expandedKeys:z,statsCards:I,articleColumns:W,formatTime:P,safeParseJson:U,loadFeeds:A,parseFeedListText:T,loadArticles:F,parseArticlesText:j,addFeed:E,refreshFeed:B,removeFeed:V,refreshAllFeeds:t,markRead:_,onExpandArticle:K,ref:x,computed:q,onMounted:Q,get ReadOutlined(){return oe},get PlusOutlined(){return ae},get ReloadOutlined(){return le},get DeleteOutlined(){return ne},get LinkOutlined(){return te},get message(){return u},get useWsStore(){return Z},get tryParseJson(){return G}};return Object.defineProperty(H,"__isScriptSetup",{enumerable:!1,value:!0}),H}},re={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},ie={key:0,style:{"text-align":"center",padding:"60px"}},de={style:{display:"flex","align-items":"center",gap:"6px",overflow:"hidden"}},ce={style:{color:"#e0e0e0","font-size":"13px",overflow:"hidden","text-overflow":"ellipsis","white-space":"nowrap"}},ue={style:{color:"var(--text-muted)","font-size":"11px","margin-bottom":"6px",overflow:"hidden","text-overflow":"ellipsis","white-space":"nowrap"}},me={style:{display:"flex","justify-content":"space-between",color:"var(--text-secondary)","font-size":"12px"}},pe={key:2,style:{"text-align":"center",padding:"40px",color:"var(--text-muted)","margin-bottom":"24px"}},ye={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"12px"}},fe={key:3,style:{"text-align":"center",padding:"60px"}},ge=["href"],_e={key:1,style:{color:"#e0e0e0","font-weight":"500"}},ve={key:2,style:{color:"var(--text-secondary)","font-size":"12px"}},xe={key:1,style:{color:"var(--text-muted)","font-size":"12px"}},ke={style:{padding:"8px 16px",color:"var(--text-secondary)","font-size":"13px","line-height":"1.8","max-height":"300px","overflow-y":"auto"}},he={key:0,style:{"margin-bottom":"8px"}},we=["innerHTML"],be={key:2,style:{color:"var(--text-muted)"}},Ae={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}};function Fe(X,a,h,e,M,D){const w=m("a-button"),b=m("a-space"),C=m("a-statistic"),S=m("a-card"),L=m("a-col"),O=m("a-row"),z=m("a-spin"),I=m("a-menu-item"),W=m("a-menu"),P=m("a-dropdown"),U=m("a-select-option"),A=m("a-select"),T=m("a-tag"),F=m("a-table"),j=m("a-input"),E=m("a-form-item"),B=m("a-form"),V=m("a-modal");return i(),y("div",null,[f("div",re,[a[6]||(a[6]=f("div",null,[f("h2",{class:"page-title"},"RSS 订阅"),f("p",{class:"page-sub"},"订阅源 / 文章阅读")],-1)),s(b,null,{default:o(()=>[s(w,{type:"primary",onClick:a[0]||(a[0]=t=>e.showAddModal=!0)},{icon:o(()=>[s(e.PlusOutlined)]),default:o(()=>[a[4]||(a[4]=g(" 添加订阅 ",-1))]),_:1}),s(w,{ghost:"",loading:e.refreshingAll,onClick:e.refreshAllFeeds},{icon:o(()=>[s(e.ReloadOutlined)]),default:o(()=>[a[5]||(a[5]=g(" 全部刷新 ",-1))]),_:1},8,["loading"])]),_:1})]),v(" Stats Cards "),s(O,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:o(()=>[(i(!0),y(N,null,J(e.statsCards,t=>(i(),R(L,{xs:12,sm:6,key:t.label},{default:o(()=>[s(S,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"},size:"small"},{default:o(()=>[s(C,{title:t.label,value:t.value,"value-style":{color:t.color,fontSize:"20px"}},null,8,["title","value","value-style"])]),_:2},1024)]),_:2},1024))),128))]),_:1}),v(" Section 1: Feed Sources "),a[16]||(a[16]=f("h3",{style:{color:"var(--text-primary)","margin-bottom":"12px"}},"订阅源管理",-1)),e.feedsLoading?(i(),y("div",ie,[s(z,{size:"large"})])):e.feeds.length>0?(i(),R(O,{key:1,gutter:[16,16],style:{"margin-bottom":"24px"}},{default:o(()=>[(i(!0),y(N,null,J(e.feeds,t=>(i(),R(L,{xs:24,sm:12,md:8,lg:6,key:t.id||t.url},{default:o(()=>[s(S,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"},size:"small",hoverable:!0},{title:o(()=>[f("div",de,[s(e.ReadOutlined,{style:{color:"#1677ff","flex-shrink":"0"}}),f("span",ce,k(t.title||"未命名订阅"),1)])]),extra:o(()=>[s(P,null,{overlay:o(()=>[s(W,null,{default:o(()=>[s(I,{onClick:_=>e.refreshFeed(t)},{default:o(()=>[s(e.ReloadOutlined),a[8]||(a[8]=g(" 刷新 ",-1))]),_:1},8,["onClick"]),s(I,{onClick:_=>e.removeFeed(t),danger:""},{default:o(()=>[s(e.DeleteOutlined),a[9]||(a[9]=g(" 删除 ",-1))]),_:1},8,["onClick"])]),_:2},1024)]),default:o(()=>[s(w,{size:"small",type:"text",style:{color:"var(--text-muted)"}},{default:o(()=>[...a[7]||(a[7]=[g("...",-1)])]),_:1})]),_:2},1024)]),default:o(()=>[f("p",ue,[s(e.LinkOutlined),g(" "+k(t.url||"-"),1)]),f("div",me,[f("span",null,k(t.itemCount??"-")+" 篇文章",1),f("span",null,k(e.formatTime(t.lastUpdated)),1)])]),_:2},1024)]),_:2},1024))),128))]),_:1})):(i(),y("div",pe,[s(e.ReadOutlined,{style:{"font-size":"40px","margin-bottom":"12px",display:"block"}}),a[10]||(a[10]=g(' 暂无订阅源,点击"添加订阅"开始 ',-1))])),v(" Section 2: Articles "),f("div",ye,[a[12]||(a[12]=f("h3",{style:{color:"var(--text-primary)",margin:"0"}},"文章列表",-1)),s(b,null,{default:o(()=>[s(A,{value:e.selectedFeedId,"onUpdate:value":a[1]||(a[1]=t=>e.selectedFeedId=t),style:{"min-width":"180px"},placeholder:"筛选订阅源","allow-clear":"",onChange:e.loadArticles},{default:o(()=>[s(U,{value:""},{default:o(()=>[...a[11]||(a[11]=[g("全部订阅",-1)])]),_:1}),(i(!0),y(N,null,J(e.feeds,t=>(i(),R(U,{key:t.id,value:t.id},{default:o(()=>[g(k(t.title||t.url),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"]),s(w,{loading:e.articlesLoading,onClick:e.loadArticles},{icon:o(()=>[s(e.ReloadOutlined)]),_:1},8,["loading"])]),_:1})]),e.articlesLoading?(i(),y("div",fe,[s(z,{size:"large"})])):(i(),R(F,{key:4,columns:e.articleColumns,"data-source":e.articles,pagination:{pageSize:20,showTotal:t=>`共 ${t} 条`},size:"small",style:{background:"var(--bg-card)"},"row-class-name":()=>"rss-row",expandable:{expandedRowKeys:e.expandedKeys,onExpand:e.onExpandArticle}},{bodyCell:o(({column:t,record:_})=>[t.key==="title"?(i(),y(N,{key:0},[_.link?(i(),y("a",{key:0,href:_.link,target:"_blank",rel:"noopener noreferrer",style:{color:"#1677ff","font-weight":"500"}},[s(e.LinkOutlined,{style:{"margin-right":"4px"}}),g(k(_.title),1)],8,ge)):(i(),y("span",_e,k(_.title),1))],64)):v("v-if",!0),t.key==="source"?(i(),R(T,{key:1,color:"blue",style:{"font-size":"10px"}},{default:o(()=>[g(k(_.source||"-"),1)]),_:2},1024)):v("v-if",!0),t.key==="publishedAt"?(i(),y("span",ve,k(e.formatTime(_.publishedAt)),1)):v("v-if",!0),t.key==="status"?(i(),R(T,{key:3,color:_.read?"default":"green"},{default:o(()=>[g(k(_.read?"已读":"未读"),1)]),_:2},1032,["color"])):v("v-if",!0),t.key==="actions"?(i(),y(N,{key:4},[_.read?(i(),y("span",xe,"--")):(i(),R(w,{key:0,size:"small",type:"link",onClick:$(K=>e.markRead(_),["stop"])},{default:o(()=>[...a[13]||(a[13]=[g(" 标记已读 ",-1)])]),_:1},8,["onClick"]))],64)):v("v-if",!0)]),expandedRowRender:o(({record:t})=>[f("div",ke,[t.summary?(i(),y("div",he,[a[14]||(a[14]=f("strong",{style:{color:"var(--text-primary)"}},"摘要: ",-1)),g(k(t.summary),1)])):v("v-if",!0),t.content?(i(),y("div",{key:1,innerHTML:t.content,style:{color:"var(--text-secondary)"}},null,8,we)):v("v-if",!0),!t.summary&&!t.content?(i(),y("div",be,"暂无内容预览")):v("v-if",!0)])]),emptyText:o(()=>[f("div",Ae,[s(e.ReadOutlined,{style:{"font-size":"40px","margin-bottom":"12px",display:"block"}}),a[15]||(a[15]=g(" 暂无文章 ",-1))])]),_:1},8,["data-source","pagination","expandable"])),v(" Add Feed Modal "),s(V,{open:e.showAddModal,"onUpdate:open":a[3]||(a[3]=t=>e.showAddModal=t),title:"添加订阅源","confirm-loading":e.adding,onOk:e.addFeed,"ok-text":"添加","cancel-text":"取消"},{default:o(()=>[s(B,{"label-col":{span:4},"wrapper-col":{span:20},style:{"margin-top":"16px"}},{default:o(()=>[s(E,{label:"URL",required:""},{default:o(()=>[s(j,{value:e.newFeedUrl,"onUpdate:value":a[2]||(a[2]=t=>e.newFeedUrl=t),placeholder:"输入 RSS 订阅源地址,如 https://example.com/feed.xml"},null,8,["value"])]),_:1})]),_:1})]),_:1},8,["open","confirm-loading"])])}const Oe=ee(se,[["render",Fe],["__scopeId","data-v-59e72a50"],["__file","/tmp/cc-web-panel-wxwyEA/repo/packages/web-panel/src/views/RssFeed.vue"]]);export{Oe as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{I as u,J as g,U as m,R as i,c as r,K as t,V as f,S as k,r as v,o as se,a as ie,b as j,P as d,Q as _,a2 as xe,F as O,Z as L}from"./vendor-BvqAck49.js";import{Y as ke,t as ae,_ as Se,b as ce,u as de,E as ue,d as F}from"./index-_I4YISHL.js";import{at as Ce,l as Te,a4 as Ne,a_ as Ae,a9 as Oe,a2 as ze,$ as we,k as Ee,R as Me}from"./icons-DP3uiYxy.js";const Ie=Object.freeze(["bm25","vector","hybrid"]);function Fe(n,l=0){return typeof n=="number"&&Number.isFinite(n)?n:l}function Re(n){if(Array.isArray(n))return n.filter(l=>typeof l=="string");if(typeof n!="string")return[];try{const l=JSON.parse(n);if(Array.isArray(l))return l.filter(c=>typeof c=="string")}catch{}return[]}function G(n){if(!n)return{noDb:!1,error:""};const l=ke(n),c=/Database not available/i.test(l);return{noDb:c,error:c?"Database not available":""}}function De(n,l=0){if(!n||typeof n!="object")return null;const c=n.id||"";return c?{key:c,id:c,score:Fe(n.score,0),title:String(n.title||""),category:String(n.category||"general"),createdAt:n.created_at??n.createdAt??"",snippet:String(n.snippet||""),_idx:l}:null}function fe(n){const l=ae(n);return Array.isArray(l)?l.map(De).filter(Boolean):[]}function ye(n,l=0){if(!n||typeof n!="object")return null;const c=n.id||"";return c?{key:c,id:c,title:String(n.title||""),content:n.content??"",tags:Re(n.tags),category:String(n.category||"general"),createdAt:n.created_at??n.createdAt??"",updatedAt:n.updated_at??n.updatedAt??"",_idx:l}:null}function ge(n){const l=ae(n);return Array.isArray(l)?l.map(ye).filter(Boolean):[]}function me(n){const l=ae(n);return!l||typeof l!="object"||Array.isArray(l)?null:ye(l,0)}function _e(n){if(!Array.isArray(n)||n.length===0)return{total:0,categories:[],tags:[]};const l=new Map,c=new Map;for(const e of n){l.set(e.category,(l.get(e.category)||0)+1);for(const x of e.tags)c.set(x,(c.get(x)||0)+1)}return{total:n.length,categories:[...l.entries()].map(([e,x])=>({name:e,count:x})).sort((e,x)=>x.count-e.count),tags:[...c.entries()].map(([e,x])=>({name:e,count:x})).sort((e,x)=>x.count-e.count)}}function Le(n){if(n==null||n==="")return"—";const l=String(n),c=l.includes(" ")&&!l.includes("T")?l.replace(" ","T")+"Z":l,e=new Date(c);return isNaN(e.getTime())?l:e.toLocaleString("zh-CN",{hour12:!1})}const J="cc.web-panel.search.recent",re=8,Pe={__name:"Search",setup(n,{expose:l}){l();const{t:c}=ce(),e=de(),x=ue.PRESENTED_IMAGE_SIMPLE,q=v(!1),C=v(!1),P=v(!1),B=v(!1),z=v([]),h=v([]),A=v({noDb:!1,error:""}),T=ie({query:"",mode:"hybrid",topK:10}),Q=v(""),w=v(U()),K=v("results"),S=v(""),N=v(""),E=v(!1),M=v(null),V=j(()=>_e(z.value)),Y=j(()=>h.value.length?Math.max(...h.value.map(o=>o.score)):0),W=j(()=>[{title:c("search.noteColumns.title"),key:"title"},{title:c("search.noteColumns.category"),key:"category",width:"120px"},{title:c("search.noteColumns.tags"),key:"tags",width:"240px"},{title:c("search.noteColumns.createdAt"),key:"createdAt",width:"180px"},{title:c("search.noteColumns.action"),key:"action",width:"180px"}]),Z=j(()=>{let o=z.value;if(S.value&&(o=o.filter(s=>s.category===S.value)),N.value.trim()){const s=N.value.trim().toLowerCase();o=o.filter(y=>y.tags.some(b=>b.toLowerCase().includes(s)))}return o});function H(o){const s=`search.mode.${o}`,y=c(s);return y===s?o:y}function X(o){const s=["blue","green","purple","orange","cyan","magenta","gold","volcano"];let y=0;for(let b=0;b<(o||"").length;b++)y=y*31+o.charCodeAt(b)>>>0;return s[y%s.length]}function $(o){return o>=.7?"#52c41a":o>=.5?"#1677ff":o>=.3?"#faad14":"#ff4d4f"}function R(o){return String(o).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""")}function I(o,s){if(!s||!o)return R(o);const y=s.split(/\s+/).filter(Boolean);let b=R(o);for(const ve of y){const be=new RegExp(`(${ve.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")})`,"gi");b=b.replace(be,"<mark>$1</mark>")}return b}function ee(o,s){return s?I(o,s):R(o)}function U(){try{const o=localStorage.getItem(J);if(o){const s=JSON.parse(o);if(Array.isArray(s))return s.filter(y=>typeof y=="string").slice(0,re)}}catch{}return[]}function a(o){const s=o.trim();if(!s)return;const y=[s,...w.value.filter(b=>b!==s)];w.value=y.slice(0,re);try{localStorage.setItem(J,JSON.stringify(w.value))}catch{}}function p(){w.value=[];try{localStorage.removeItem(J)}catch{}}function D(o){T.query=o,te()}async function oe(){q.value=!0,A.value={noDb:!1,error:""};try{const{output:o}=await e.execute("note list -n 500 --json",12e3).catch(()=>({output:""})),s=G(o);if(s.noDb){A.value=s,z.value=[];return}z.value=ge(o)}catch(o){F.error(c("search.messages.loadIndexFailed",{err:o?.message||o}))}finally{q.value=!1}}async function te(){const o=T.query.trim();if(!o){F.warning(c("search.messages.queryRequired"));return}P.value=!0,A.value={noDb:!1,error:""};try{const s=[`search ${ne(o)}`,`--mode ${T.mode}`,`--top-k ${T.topK||10}`,"--json"],{output:y}=await e.execute(s.join(" "),15e3),b=G(y);if(b.noDb){A.value=b,h.value=[],B.value=!0,Q.value=o;return}h.value=fe(y),Q.value=o,B.value=!0,a(o),K.value="results"}catch(s){F.error(c("search.messages.searchFailed",{err:s?.message||s}))}finally{P.value=!1}}function ne(o){return`"${String(o).replace(/"/g,'\\"')}"`}function he(o){T.query=o.title,T.mode="vector",te()}async function pe(o){E.value=!0,C.value=!0,M.value=null;try{const{output:s}=await e.execute(`note show ${o} --json`,8e3);if(G(s).noDb){F.error(c("search.messages.needInit"));return}M.value=me(s),M.value||F.error(c("search.messages.noteLoadFailed"))}catch(s){F.error(c("search.messages.loadFailed",{err:s?.message||s}))}finally{C.value=!1}}se(oe);const le={t:c,ws:e,EMPTY_IMG:x,RECENT_LS:J,RECENT_MAX:re,loadingIndex:q,loadingNote:C,searching:P,searched:B,notes:z,results:h,errorState:A,form:T,currentQuery:Q,recentQueries:w,activeTab:K,indexCategoryFilter:S,indexTagFilter:N,showNoteModal:E,currentNote:M,indexSummary:V,topScore:Y,noteColumns:W,filteredNotes:Z,modeLabel:H,categoryColor:X,scoreColor:$,escapeHtml:R,highlightSnippet:I,highlightContent:ee,loadRecent:U,pushRecent:a,clearRecent:p,rerunQuery:D,loadIndex:oe,runSearch:te,shellQuote:ne,searchSimilar:he,viewNote:pe,ref:v,computed:j,onMounted:se,reactive:ie,get useI18n(){return ce},get ReloadOutlined(){return Me},get SearchOutlined(){return Ee},get ThunderboltOutlined(){return we},get BookOutlined(){return ze},get AppstoreOutlined(){return Oe},get TagsOutlined(){return Ae},get FileTextOutlined(){return Ne},get TrophyOutlined(){return Te},get EyeOutlined(){return Ce},get message(){return F},get Empty(){return ue},get useWsStore(){return de},get parseSearchResults(){return fe},get parseNotes(){return ge},get parseNote(){return me},get buildIndexSummary(){return _e},get detectSearchError(){return G},get formatSearchTime(){return Le},get SEARCH_MODES(){return Ie}};return Object.defineProperty(le,"__isScriptSetup",{enumerable:!1,value:!0}),le}},Be={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},Qe={class:"page-title"},je={class:"page-sub"},qe={key:0,class:"recent-row"},Ke={class:"recent-label"},He={class:"score-block"},Ue={class:"result-title"},Ge={style:{color:"var(--text-muted)","font-size":"11px","font-family":"monospace"}},Je={style:{"margin-left":"8px",color:"var(--text-secondary)","font-size":"11px"}},Ve={key:0,class:"result-snippet"},Ye=["innerHTML"],We={class:"filter-bar"},Ze={key:0,class:"tag-row"},Xe={class:"tag-row-label"},$e={class:"tag-count"},et={style:{color:"var(--text-primary)","font-weight":"500"}},tt={style:{color:"var(--text-muted)","font-size":"11px","font-family":"monospace","margin-top":"2px"}},rt={key:0,style:{color:"var(--text-muted)","font-size":"11px"}},at={key:3,style:{color:"var(--text-secondary)","font-size":"11px"}},ot={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},nt={key:0,style:{padding:"40px","text-align":"center"}},lt={key:1,style:{"padding-top":"8px"}},st={style:{"font-family":"monospace","font-size":"12px"}},it={key:0,style:{color:"var(--text-muted)"}},ct={style:{color:"var(--text-primary)","font-size":"13px",margin:"16px 0 8px"}},dt={key:0,class:"note-content"},ut=["innerHTML"];function ft(n,l,c,e,x,q){const C=u("a-button"),P=u("a-space"),B=u("a-alert"),z=u("a-input"),h=u("a-col"),A=u("a-radio-button"),T=u("a-radio-group"),Q=u("a-input-number"),w=u("a-row"),K=u("a-form"),S=u("a-tag"),N=u("a-card"),E=u("a-statistic"),M=u("a-empty"),V=u("a-progress"),Y=u("a-list-item-meta"),W=u("a-list-item"),Z=u("a-list"),H=u("a-tab-pane"),X=u("a-table"),$=u("a-tabs"),R=u("a-spin"),I=u("a-descriptions-item"),ee=u("a-descriptions"),U=u("a-modal");return d(),g("div",null,[m("div",Be,[m("div",null,[m("h2",Qe,i(e.t("search.title")),1),m("p",je,i(e.t("search.subtitle")),1)]),r(P,null,{default:t(()=>[r(C,{loading:e.loadingIndex,onClick:e.loadIndex},{icon:t(()=>[r(e.ReloadOutlined)]),default:t(()=>[_(" "+i(e.t("search.refreshIndex")),1)]),_:1},8,["loading"])]),_:1})]),f(" noDb banner "),e.errorState.noDb?(d(),k(B,{key:0,type:"info","show-icon":"",message:e.t("search.noDb.message"),description:e.t("search.noDb.description"),style:{"margin-bottom":"16px"}},null,8,["message","description"])):f("v-if",!0),f(" Search bar "),r(N,{size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"16px"},"body-style":{padding:"14px 16px"}},{default:t(()=>[r(K,{layout:"vertical",model:e.form,onSubmit:xe(e.runSearch,["prevent"])},{default:t(()=>[r(w,{gutter:12},{default:t(()=>[r(h,{span:14},{default:t(()=>[r(z,{value:e.form.query,"onUpdate:value":l[0]||(l[0]=a=>e.form.query=a),size:"large",placeholder:e.t("search.form.queryPlaceholder"),"allow-clear":"",onPressEnter:e.runSearch},{prefix:t(()=>[r(e.SearchOutlined)]),_:1},8,["value","placeholder"])]),_:1}),r(h,{span:4},{default:t(()=>[r(T,{value:e.form.mode,"onUpdate:value":l[1]||(l[1]=a=>e.form.mode=a),size:"large","button-style":"solid"},{default:t(()=>[(d(!0),g(O,null,L(e.SEARCH_MODES,a=>(d(),k(A,{key:a,value:a},{default:t(()=>[_(i(e.modeLabel(a)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),_:1}),r(h,{span:3},{default:t(()=>[r(Q,{value:e.form.topK,"onUpdate:value":l[2]||(l[2]=a=>e.form.topK=a),min:1,max:50,placeholder:e.t("search.form.topKPlaceholder"),size:"large",style:{width:"100%"}},null,8,["value","placeholder"])]),_:1}),r(h,{span:3},{default:t(()=>[r(C,{type:"primary",size:"large",loading:e.searching,block:"",onClick:e.runSearch},{icon:t(()=>[r(e.ThunderboltOutlined)]),default:t(()=>[_(" "+i(e.t("search.form.submit")),1)]),_:1},8,["loading"])]),_:1})]),_:1})]),_:1},8,["model"]),f(" Recent queries chips "),e.recentQueries.length?(d(),g("div",qe,[m("span",Ke,i(e.t("search.recent.label")),1),(d(!0),g(O,null,L(e.recentQueries,a=>(d(),k(S,{key:a,color:"blue",class:"recent-chip",onClick:p=>e.rerunQuery(a)},{default:t(()=>[_(i(a),1)]),_:2},1032,["onClick"]))),128)),r(C,{size:"small",type:"link",danger:"",onClick:e.clearRecent},{default:t(()=>[_(i(e.t("search.recent.clear")),1)]),_:1})])):f("v-if",!0)]),_:1}),f(" Stat cards "),r(w,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:t(()=>[r(h,{xs:12,sm:8,lg:5},{default:t(()=>[r(N,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[r(E,{title:e.t("search.stats.indexedNotes"),value:e.indexSummary.total,"value-style":{color:"#1677ff",fontSize:"20px"}},{prefix:t(()=>[r(e.BookOutlined)]),_:1},8,["title","value"])]),_:1})]),_:1}),r(h,{xs:12,sm:8,lg:5},{default:t(()=>[r(N,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[r(E,{title:e.t("search.stats.categories"),value:e.indexSummary.categories.length,"value-style":{color:"#722ed1",fontSize:"20px"}},{prefix:t(()=>[r(e.AppstoreOutlined)]),_:1},8,["title","value"])]),_:1})]),_:1}),r(h,{xs:12,sm:8,lg:5},{default:t(()=>[r(N,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[r(E,{title:e.t("search.stats.tags"),value:e.indexSummary.tags.length,"value-style":{color:"#13c2c2",fontSize:"20px"}},{prefix:t(()=>[r(e.TagsOutlined)]),_:1},8,["title","value"])]),_:1})]),_:1}),r(h,{xs:12,sm:8,lg:5},{default:t(()=>[r(N,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[r(E,{title:e.t("search.stats.results"),value:e.results.length,"value-style":{color:e.results.length>0?"#52c41a":"#888",fontSize:"20px"}},{prefix:t(()=>[r(e.FileTextOutlined)]),_:1},8,["title","value","value-style"])]),_:1})]),_:1}),r(h,{xs:24,sm:8,lg:4},{default:t(()=>[r(N,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[r(E,{title:e.t("search.stats.topScore"),value:e.topScore,precision:3,"value-style":{color:e.scoreColor(e.topScore),fontSize:"20px"}},{prefix:t(()=>[r(e.TrophyOutlined)]),_:1},8,["title","value","value-style"])]),_:1})]),_:1})]),_:1}),f(" Tabs "),r($,{activeKey:e.activeTab,"onUpdate:activeKey":l[5]||(l[5]=a=>e.activeTab=a),class:"search-tabs"},{default:t(()=>[f(" ── Results tab ───────────────────────────────────────── "),r(H,{key:"results",tab:e.t("search.tabs.results")},{default:t(()=>[e.searched?e.results.length?(d(),k(Z,{key:2,"data-source":e.results,"item-layout":"vertical",size:"large"},{renderItem:t(({item:a})=>[r(W,{class:"result-row"},{actions:t(()=>[r(C,{type:"link",size:"small",onClick:p=>e.viewNote(a.id)},{icon:t(()=>[r(e.EyeOutlined)]),default:t(()=>[_(" "+i(e.t("search.results.viewFull")),1)]),_:1},8,["onClick"])]),extra:t(()=>[m("div",He,[r(V,{type:"circle",percent:Math.round(Math.min(1,a.score)*100),"stroke-color":e.scoreColor(a.score),format:()=>a.score.toFixed(3),width:60},null,8,["percent","stroke-color","format"])])]),default:t(()=>[r(Y,null,{title:t(()=>[m("span",Ue,i(a.title||e.t("search.results.noTitle")),1),r(S,{color:e.categoryColor(a.category),style:{"margin-left":"8px"}},{default:t(()=>[_(i(a.category),1)]),_:2},1032,["color"])]),description:t(()=>[m("span",Ge,i(a.id.slice(0,16)),1),m("span",Je,i(e.formatSearchTime(a.createdAt)),1)]),_:2},1024),a.snippet?(d(),g("div",Ve,[m("span",{innerHTML:e.highlightSnippet(a.snippet,e.currentQuery)},null,8,Ye)])):f("v-if",!0)]),_:2},1024)]),_:1},8,["data-source"])):(d(),k(M,{key:1,description:e.t("search.results.noMatch",{query:e.currentQuery}),image:e.EMPTY_IMG,style:{padding:"40px 0"}},null,8,["description","image"])):(d(),k(M,{key:0,description:e.t("search.results.promptEmpty"),image:e.EMPTY_IMG,style:{padding:"40px 0"}},null,8,["description","image"]))]),_:1},8,["tab"]),f(" ── Index browser tab ────────────────────────────────── "),r(H,{key:"index",tab:e.t("search.tabs.index")},{default:t(()=>[m("div",We,[r(T,{value:e.indexCategoryFilter,"onUpdate:value":l[3]||(l[3]=a=>e.indexCategoryFilter=a),size:"small","button-style":"solid"},{default:t(()=>[r(A,{value:""},{default:t(()=>[_(i(e.t("search.index.allCategories")),1)]),_:1}),(d(!0),g(O,null,L(e.indexSummary.categories.slice(0,6),a=>(d(),k(A,{key:a.name,value:a.name},{default:t(()=>[_(i(a.name)+" ("+i(a.count)+") ",1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"]),r(z,{value:e.indexTagFilter,"onUpdate:value":l[4]||(l[4]=a=>e.indexTagFilter=a),placeholder:e.t("search.index.tagFilterPlaceholder"),"allow-clear":"",size:"small",style:{"max-width":"180px"}},null,8,["value","placeholder"])]),f(" Top tags chips "),e.indexSummary.tags.length?(d(),g("div",Ze,[m("span",Xe,i(e.t("search.index.topTagsLabel")),1),(d(!0),g(O,null,L(e.indexSummary.tags.slice(0,12),a=>(d(),k(S,{key:a.name,color:e.indexTagFilter===a.name?"blue":"default",class:"tag-chip",onClick:p=>e.indexTagFilter=e.indexTagFilter===a.name?"":a.name},{default:t(()=>[_(i(a.name)+" ",1),m("span",$e,i(a.count),1)]),_:2},1032,["color","onClick"]))),128))])):f("v-if",!0),r(X,{columns:e.noteColumns,"data-source":e.filteredNotes,pagination:{pageSize:20,showTotal:a=>e.t("search.totals.rows",{count:a})},size:"small",loading:e.loadingIndex,style:{background:"var(--bg-card)"}},{bodyCell:t(({column:a,record:p})=>[a.key==="title"?(d(),g(O,{key:0},[m("span",et,i(p.title||e.t("search.results.noTitle")),1),m("div",tt,i(p.id.slice(0,16)),1)],64)):f("v-if",!0),a.key==="category"?(d(),k(S,{key:1,color:e.categoryColor(p.category)},{default:t(()=>[_(i(p.category),1)]),_:2},1032,["color"])):f("v-if",!0),a.key==="tags"?(d(),g(O,{key:2},[(d(!0),g(O,null,L(p.tags.slice(0,4),D=>(d(),k(S,{key:D,color:"default",style:{"font-size":"11px"}},{default:t(()=>[_(i(D),1)]),_:2},1024))),128)),p.tags.length>4?(d(),g("span",rt,"+"+i(p.tags.length-4),1)):f("v-if",!0)],64)):f("v-if",!0),a.key==="createdAt"?(d(),g("span",at,i(e.formatSearchTime(p.createdAt)),1)):f("v-if",!0),a.key==="action"?(d(),g(O,{key:4},[r(C,{size:"small",type:"link",onClick:D=>e.viewNote(p.id)},{default:t(()=>[_(i(e.t("search.index.rowAction.view")),1)]),_:1},8,["onClick"]),r(C,{size:"small",type:"link",onClick:D=>e.searchSimilar(p)},{default:t(()=>[_(i(e.t("search.index.rowAction.similar")),1)]),_:1},8,["onClick"])],64)):f("v-if",!0)]),emptyText:t(()=>[m("div",ot,[r(e.BookOutlined,{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),_(" "+i(e.indexCategoryFilter||e.indexTagFilter?e.t("search.empty.filtered"):e.t("search.empty.noNotes")),1)])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"])]),_:1},8,["activeKey"]),f(" ── Note detail modal ─────────────────────────────────── "),r(U,{open:e.showNoteModal,"onUpdate:open":l[6]||(l[6]=a=>e.showNoteModal=a),title:e.t("search.note.title",{title:e.currentNote?.title||""}),width:780,footer:null},{default:t(()=>[e.loadingNote?(d(),g("div",nt,[r(R)])):e.currentNote?(d(),g("div",lt,[r(ee,{column:2,size:"small",bordered:""},{default:t(()=>[r(I,{label:e.t("search.note.id"),span:2},{default:t(()=>[m("span",st,i(e.currentNote.id),1)]),_:1},8,["label"]),r(I,{label:e.t("search.note.category")},{default:t(()=>[r(S,{color:e.categoryColor(e.currentNote.category)},{default:t(()=>[_(i(e.currentNote.category),1)]),_:1},8,["color"])]),_:1},8,["label"]),r(I,{label:e.t("search.note.tags")},{default:t(()=>[(d(!0),g(O,null,L(e.currentNote.tags,a=>(d(),k(S,{key:a,color:"default"},{default:t(()=>[_(i(a),1)]),_:2},1024))),128)),e.currentNote.tags.length?f("v-if",!0):(d(),g("span",it,"—"))]),_:1},8,["label"]),r(I,{label:e.t("search.note.createdAt")},{default:t(()=>[_(i(e.formatSearchTime(e.currentNote.createdAt)),1)]),_:1},8,["label"]),r(I,{label:e.t("search.note.updatedAt")},{default:t(()=>[_(i(e.formatSearchTime(e.currentNote.updatedAt)),1)]),_:1},8,["label"])]),_:1}),m("h4",ct,i(e.t("search.note.content")),1),e.currentNote.content?(d(),g("div",dt,[m("span",{innerHTML:e.highlightContent(e.currentNote.content,e.currentQuery)},null,8,ut)])):(d(),k(M,{key:1,description:e.t("search.note.emptyContent"),image:e.EMPTY_IMG},null,8,["description","image"]))])):f("v-if",!0)]),_:1},8,["open","title"])])}const yt=Se(Pe,[["render",ft],["__scopeId","data-v-d2b94ce3"],["__file","/tmp/cc-web-panel-50dnka/repo/packages/web-panel/src/views/Search.vue"]]);export{yt as default};
|
|
1
|
+
import{I as u,J as g,U as m,R as i,c as r,K as t,V as f,S as k,r as v,o as se,a as ie,b as j,P as d,Q as _,a2 as xe,F as O,Z as L}from"./vendor-BvqAck49.js";import{Y as ke,t as ae,_ as Se,b as ce,u as de,E as ue,d as F}from"./index-DDBuc-Id.js";import{at as Ce,l as Te,a4 as Ne,a_ as Ae,a9 as Oe,a2 as we,$ as ze,k as Ee,R as Me}from"./icons-DP3uiYxy.js";const Ie=Object.freeze(["bm25","vector","hybrid"]);function Fe(n,l=0){return typeof n=="number"&&Number.isFinite(n)?n:l}function Re(n){if(Array.isArray(n))return n.filter(l=>typeof l=="string");if(typeof n!="string")return[];try{const l=JSON.parse(n);if(Array.isArray(l))return l.filter(c=>typeof c=="string")}catch{}return[]}function G(n){if(!n)return{noDb:!1,error:""};const l=ke(n),c=/Database not available/i.test(l);return{noDb:c,error:c?"Database not available":""}}function De(n,l=0){if(!n||typeof n!="object")return null;const c=n.id||"";return c?{key:c,id:c,score:Fe(n.score,0),title:String(n.title||""),category:String(n.category||"general"),createdAt:n.created_at??n.createdAt??"",snippet:String(n.snippet||""),_idx:l}:null}function fe(n){const l=ae(n);return Array.isArray(l)?l.map(De).filter(Boolean):[]}function ye(n,l=0){if(!n||typeof n!="object")return null;const c=n.id||"";return c?{key:c,id:c,title:String(n.title||""),content:n.content??"",tags:Re(n.tags),category:String(n.category||"general"),createdAt:n.created_at??n.createdAt??"",updatedAt:n.updated_at??n.updatedAt??"",_idx:l}:null}function ge(n){const l=ae(n);return Array.isArray(l)?l.map(ye).filter(Boolean):[]}function me(n){const l=ae(n);return!l||typeof l!="object"||Array.isArray(l)?null:ye(l,0)}function _e(n){if(!Array.isArray(n)||n.length===0)return{total:0,categories:[],tags:[]};const l=new Map,c=new Map;for(const e of n){l.set(e.category,(l.get(e.category)||0)+1);for(const x of e.tags)c.set(x,(c.get(x)||0)+1)}return{total:n.length,categories:[...l.entries()].map(([e,x])=>({name:e,count:x})).sort((e,x)=>x.count-e.count),tags:[...c.entries()].map(([e,x])=>({name:e,count:x})).sort((e,x)=>x.count-e.count)}}function Le(n){if(n==null||n==="")return"—";const l=String(n),c=l.includes(" ")&&!l.includes("T")?l.replace(" ","T")+"Z":l,e=new Date(c);return isNaN(e.getTime())?l:e.toLocaleString("zh-CN",{hour12:!1})}const J="cc.web-panel.search.recent",re=8,Pe={__name:"Search",setup(n,{expose:l}){l();const{t:c}=ce(),e=de(),x=ue.PRESENTED_IMAGE_SIMPLE,q=v(!1),C=v(!1),P=v(!1),B=v(!1),w=v([]),h=v([]),A=v({noDb:!1,error:""}),T=ie({query:"",mode:"hybrid",topK:10}),Q=v(""),z=v(U()),K=v("results"),S=v(""),N=v(""),E=v(!1),M=v(null),V=j(()=>_e(w.value)),Y=j(()=>h.value.length?Math.max(...h.value.map(o=>o.score)):0),W=j(()=>[{title:c("search.noteColumns.title"),key:"title"},{title:c("search.noteColumns.category"),key:"category",width:"120px"},{title:c("search.noteColumns.tags"),key:"tags",width:"240px"},{title:c("search.noteColumns.createdAt"),key:"createdAt",width:"180px"},{title:c("search.noteColumns.action"),key:"action",width:"180px"}]),Z=j(()=>{let o=w.value;if(S.value&&(o=o.filter(s=>s.category===S.value)),N.value.trim()){const s=N.value.trim().toLowerCase();o=o.filter(y=>y.tags.some(b=>b.toLowerCase().includes(s)))}return o});function H(o){const s=`search.mode.${o}`,y=c(s);return y===s?o:y}function X(o){const s=["blue","green","purple","orange","cyan","magenta","gold","volcano"];let y=0;for(let b=0;b<(o||"").length;b++)y=y*31+o.charCodeAt(b)>>>0;return s[y%s.length]}function $(o){return o>=.7?"#52c41a":o>=.5?"#1677ff":o>=.3?"#faad14":"#ff4d4f"}function R(o){return String(o).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""")}function I(o,s){if(!s||!o)return R(o);const y=s.split(/\s+/).filter(Boolean);let b=R(o);for(const ve of y){const be=new RegExp(`(${ve.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")})`,"gi");b=b.replace(be,"<mark>$1</mark>")}return b}function ee(o,s){return s?I(o,s):R(o)}function U(){try{const o=localStorage.getItem(J);if(o){const s=JSON.parse(o);if(Array.isArray(s))return s.filter(y=>typeof y=="string").slice(0,re)}}catch{}return[]}function a(o){const s=o.trim();if(!s)return;const y=[s,...z.value.filter(b=>b!==s)];z.value=y.slice(0,re);try{localStorage.setItem(J,JSON.stringify(z.value))}catch{}}function p(){z.value=[];try{localStorage.removeItem(J)}catch{}}function D(o){T.query=o,te()}async function oe(){q.value=!0,A.value={noDb:!1,error:""};try{const{output:o}=await e.execute("note list -n 500 --json",12e3).catch(()=>({output:""})),s=G(o);if(s.noDb){A.value=s,w.value=[];return}w.value=ge(o)}catch(o){F.error(c("search.messages.loadIndexFailed",{err:o?.message||o}))}finally{q.value=!1}}async function te(){const o=T.query.trim();if(!o){F.warning(c("search.messages.queryRequired"));return}P.value=!0,A.value={noDb:!1,error:""};try{const s=[`search ${ne(o)}`,`--mode ${T.mode}`,`--top-k ${T.topK||10}`,"--json"],{output:y}=await e.execute(s.join(" "),15e3),b=G(y);if(b.noDb){A.value=b,h.value=[],B.value=!0,Q.value=o;return}h.value=fe(y),Q.value=o,B.value=!0,a(o),K.value="results"}catch(s){F.error(c("search.messages.searchFailed",{err:s?.message||s}))}finally{P.value=!1}}function ne(o){return`"${String(o).replace(/"/g,'\\"')}"`}function he(o){T.query=o.title,T.mode="vector",te()}async function pe(o){E.value=!0,C.value=!0,M.value=null;try{const{output:s}=await e.execute(`note show ${o} --json`,8e3);if(G(s).noDb){F.error(c("search.messages.needInit"));return}M.value=me(s),M.value||F.error(c("search.messages.noteLoadFailed"))}catch(s){F.error(c("search.messages.loadFailed",{err:s?.message||s}))}finally{C.value=!1}}se(oe);const le={t:c,ws:e,EMPTY_IMG:x,RECENT_LS:J,RECENT_MAX:re,loadingIndex:q,loadingNote:C,searching:P,searched:B,notes:w,results:h,errorState:A,form:T,currentQuery:Q,recentQueries:z,activeTab:K,indexCategoryFilter:S,indexTagFilter:N,showNoteModal:E,currentNote:M,indexSummary:V,topScore:Y,noteColumns:W,filteredNotes:Z,modeLabel:H,categoryColor:X,scoreColor:$,escapeHtml:R,highlightSnippet:I,highlightContent:ee,loadRecent:U,pushRecent:a,clearRecent:p,rerunQuery:D,loadIndex:oe,runSearch:te,shellQuote:ne,searchSimilar:he,viewNote:pe,ref:v,computed:j,onMounted:se,reactive:ie,get useI18n(){return ce},get ReloadOutlined(){return Me},get SearchOutlined(){return Ee},get ThunderboltOutlined(){return ze},get BookOutlined(){return we},get AppstoreOutlined(){return Oe},get TagsOutlined(){return Ae},get FileTextOutlined(){return Ne},get TrophyOutlined(){return Te},get EyeOutlined(){return Ce},get message(){return F},get Empty(){return ue},get useWsStore(){return de},get parseSearchResults(){return fe},get parseNotes(){return ge},get parseNote(){return me},get buildIndexSummary(){return _e},get detectSearchError(){return G},get formatSearchTime(){return Le},get SEARCH_MODES(){return Ie}};return Object.defineProperty(le,"__isScriptSetup",{enumerable:!1,value:!0}),le}},Be={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},Qe={class:"page-title"},je={class:"page-sub"},qe={key:0,class:"recent-row"},Ke={class:"recent-label"},He={class:"score-block"},Ue={class:"result-title"},Ge={style:{color:"var(--text-muted)","font-size":"11px","font-family":"monospace"}},Je={style:{"margin-left":"8px",color:"var(--text-secondary)","font-size":"11px"}},Ve={key:0,class:"result-snippet"},Ye=["innerHTML"],We={class:"filter-bar"},Ze={key:0,class:"tag-row"},Xe={class:"tag-row-label"},$e={class:"tag-count"},et={style:{color:"var(--text-primary)","font-weight":"500"}},tt={style:{color:"var(--text-muted)","font-size":"11px","font-family":"monospace","margin-top":"2px"}},rt={key:0,style:{color:"var(--text-muted)","font-size":"11px"}},at={key:3,style:{color:"var(--text-secondary)","font-size":"11px"}},ot={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},nt={key:0,style:{padding:"40px","text-align":"center"}},lt={key:1,style:{"padding-top":"8px"}},st={style:{"font-family":"monospace","font-size":"12px"}},it={key:0,style:{color:"var(--text-muted)"}},ct={style:{color:"var(--text-primary)","font-size":"13px",margin:"16px 0 8px"}},dt={key:0,class:"note-content"},ut=["innerHTML"];function ft(n,l,c,e,x,q){const C=u("a-button"),P=u("a-space"),B=u("a-alert"),w=u("a-input"),h=u("a-col"),A=u("a-radio-button"),T=u("a-radio-group"),Q=u("a-input-number"),z=u("a-row"),K=u("a-form"),S=u("a-tag"),N=u("a-card"),E=u("a-statistic"),M=u("a-empty"),V=u("a-progress"),Y=u("a-list-item-meta"),W=u("a-list-item"),Z=u("a-list"),H=u("a-tab-pane"),X=u("a-table"),$=u("a-tabs"),R=u("a-spin"),I=u("a-descriptions-item"),ee=u("a-descriptions"),U=u("a-modal");return d(),g("div",null,[m("div",Be,[m("div",null,[m("h2",Qe,i(e.t("search.title")),1),m("p",je,i(e.t("search.subtitle")),1)]),r(P,null,{default:t(()=>[r(C,{loading:e.loadingIndex,onClick:e.loadIndex},{icon:t(()=>[r(e.ReloadOutlined)]),default:t(()=>[_(" "+i(e.t("search.refreshIndex")),1)]),_:1},8,["loading"])]),_:1})]),f(" noDb banner "),e.errorState.noDb?(d(),k(B,{key:0,type:"info","show-icon":"",message:e.t("search.noDb.message"),description:e.t("search.noDb.description"),style:{"margin-bottom":"16px"}},null,8,["message","description"])):f("v-if",!0),f(" Search bar "),r(N,{size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"16px"},"body-style":{padding:"14px 16px"}},{default:t(()=>[r(K,{layout:"vertical",model:e.form,onSubmit:xe(e.runSearch,["prevent"])},{default:t(()=>[r(z,{gutter:12},{default:t(()=>[r(h,{span:14},{default:t(()=>[r(w,{value:e.form.query,"onUpdate:value":l[0]||(l[0]=a=>e.form.query=a),size:"large",placeholder:e.t("search.form.queryPlaceholder"),"allow-clear":"",onPressEnter:e.runSearch},{prefix:t(()=>[r(e.SearchOutlined)]),_:1},8,["value","placeholder"])]),_:1}),r(h,{span:4},{default:t(()=>[r(T,{value:e.form.mode,"onUpdate:value":l[1]||(l[1]=a=>e.form.mode=a),size:"large","button-style":"solid"},{default:t(()=>[(d(!0),g(O,null,L(e.SEARCH_MODES,a=>(d(),k(A,{key:a,value:a},{default:t(()=>[_(i(e.modeLabel(a)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),_:1}),r(h,{span:3},{default:t(()=>[r(Q,{value:e.form.topK,"onUpdate:value":l[2]||(l[2]=a=>e.form.topK=a),min:1,max:50,placeholder:e.t("search.form.topKPlaceholder"),size:"large",style:{width:"100%"}},null,8,["value","placeholder"])]),_:1}),r(h,{span:3},{default:t(()=>[r(C,{type:"primary",size:"large",loading:e.searching,block:"",onClick:e.runSearch},{icon:t(()=>[r(e.ThunderboltOutlined)]),default:t(()=>[_(" "+i(e.t("search.form.submit")),1)]),_:1},8,["loading"])]),_:1})]),_:1})]),_:1},8,["model"]),f(" Recent queries chips "),e.recentQueries.length?(d(),g("div",qe,[m("span",Ke,i(e.t("search.recent.label")),1),(d(!0),g(O,null,L(e.recentQueries,a=>(d(),k(S,{key:a,color:"blue",class:"recent-chip",onClick:p=>e.rerunQuery(a)},{default:t(()=>[_(i(a),1)]),_:2},1032,["onClick"]))),128)),r(C,{size:"small",type:"link",danger:"",onClick:e.clearRecent},{default:t(()=>[_(i(e.t("search.recent.clear")),1)]),_:1})])):f("v-if",!0)]),_:1}),f(" Stat cards "),r(z,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:t(()=>[r(h,{xs:12,sm:8,lg:5},{default:t(()=>[r(N,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[r(E,{title:e.t("search.stats.indexedNotes"),value:e.indexSummary.total,"value-style":{color:"#1677ff",fontSize:"20px"}},{prefix:t(()=>[r(e.BookOutlined)]),_:1},8,["title","value"])]),_:1})]),_:1}),r(h,{xs:12,sm:8,lg:5},{default:t(()=>[r(N,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[r(E,{title:e.t("search.stats.categories"),value:e.indexSummary.categories.length,"value-style":{color:"#722ed1",fontSize:"20px"}},{prefix:t(()=>[r(e.AppstoreOutlined)]),_:1},8,["title","value"])]),_:1})]),_:1}),r(h,{xs:12,sm:8,lg:5},{default:t(()=>[r(N,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[r(E,{title:e.t("search.stats.tags"),value:e.indexSummary.tags.length,"value-style":{color:"#13c2c2",fontSize:"20px"}},{prefix:t(()=>[r(e.TagsOutlined)]),_:1},8,["title","value"])]),_:1})]),_:1}),r(h,{xs:12,sm:8,lg:5},{default:t(()=>[r(N,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[r(E,{title:e.t("search.stats.results"),value:e.results.length,"value-style":{color:e.results.length>0?"#52c41a":"#888",fontSize:"20px"}},{prefix:t(()=>[r(e.FileTextOutlined)]),_:1},8,["title","value","value-style"])]),_:1})]),_:1}),r(h,{xs:24,sm:8,lg:4},{default:t(()=>[r(N,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[r(E,{title:e.t("search.stats.topScore"),value:e.topScore,precision:3,"value-style":{color:e.scoreColor(e.topScore),fontSize:"20px"}},{prefix:t(()=>[r(e.TrophyOutlined)]),_:1},8,["title","value","value-style"])]),_:1})]),_:1})]),_:1}),f(" Tabs "),r($,{activeKey:e.activeTab,"onUpdate:activeKey":l[5]||(l[5]=a=>e.activeTab=a),class:"search-tabs"},{default:t(()=>[f(" ── Results tab ───────────────────────────────────────── "),r(H,{key:"results",tab:e.t("search.tabs.results")},{default:t(()=>[e.searched?e.results.length?(d(),k(Z,{key:2,"data-source":e.results,"item-layout":"vertical",size:"large"},{renderItem:t(({item:a})=>[r(W,{class:"result-row"},{actions:t(()=>[r(C,{type:"link",size:"small",onClick:p=>e.viewNote(a.id)},{icon:t(()=>[r(e.EyeOutlined)]),default:t(()=>[_(" "+i(e.t("search.results.viewFull")),1)]),_:1},8,["onClick"])]),extra:t(()=>[m("div",He,[r(V,{type:"circle",percent:Math.round(Math.min(1,a.score)*100),"stroke-color":e.scoreColor(a.score),format:()=>a.score.toFixed(3),width:60},null,8,["percent","stroke-color","format"])])]),default:t(()=>[r(Y,null,{title:t(()=>[m("span",Ue,i(a.title||e.t("search.results.noTitle")),1),r(S,{color:e.categoryColor(a.category),style:{"margin-left":"8px"}},{default:t(()=>[_(i(a.category),1)]),_:2},1032,["color"])]),description:t(()=>[m("span",Ge,i(a.id.slice(0,16)),1),m("span",Je,i(e.formatSearchTime(a.createdAt)),1)]),_:2},1024),a.snippet?(d(),g("div",Ve,[m("span",{innerHTML:e.highlightSnippet(a.snippet,e.currentQuery)},null,8,Ye)])):f("v-if",!0)]),_:2},1024)]),_:1},8,["data-source"])):(d(),k(M,{key:1,description:e.t("search.results.noMatch",{query:e.currentQuery}),image:e.EMPTY_IMG,style:{padding:"40px 0"}},null,8,["description","image"])):(d(),k(M,{key:0,description:e.t("search.results.promptEmpty"),image:e.EMPTY_IMG,style:{padding:"40px 0"}},null,8,["description","image"]))]),_:1},8,["tab"]),f(" ── Index browser tab ────────────────────────────────── "),r(H,{key:"index",tab:e.t("search.tabs.index")},{default:t(()=>[m("div",We,[r(T,{value:e.indexCategoryFilter,"onUpdate:value":l[3]||(l[3]=a=>e.indexCategoryFilter=a),size:"small","button-style":"solid"},{default:t(()=>[r(A,{value:""},{default:t(()=>[_(i(e.t("search.index.allCategories")),1)]),_:1}),(d(!0),g(O,null,L(e.indexSummary.categories.slice(0,6),a=>(d(),k(A,{key:a.name,value:a.name},{default:t(()=>[_(i(a.name)+" ("+i(a.count)+") ",1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"]),r(w,{value:e.indexTagFilter,"onUpdate:value":l[4]||(l[4]=a=>e.indexTagFilter=a),placeholder:e.t("search.index.tagFilterPlaceholder"),"allow-clear":"",size:"small",style:{"max-width":"180px"}},null,8,["value","placeholder"])]),f(" Top tags chips "),e.indexSummary.tags.length?(d(),g("div",Ze,[m("span",Xe,i(e.t("search.index.topTagsLabel")),1),(d(!0),g(O,null,L(e.indexSummary.tags.slice(0,12),a=>(d(),k(S,{key:a.name,color:e.indexTagFilter===a.name?"blue":"default",class:"tag-chip",onClick:p=>e.indexTagFilter=e.indexTagFilter===a.name?"":a.name},{default:t(()=>[_(i(a.name)+" ",1),m("span",$e,i(a.count),1)]),_:2},1032,["color","onClick"]))),128))])):f("v-if",!0),r(X,{columns:e.noteColumns,"data-source":e.filteredNotes,pagination:{pageSize:20,showTotal:a=>e.t("search.totals.rows",{count:a})},size:"small",loading:e.loadingIndex,style:{background:"var(--bg-card)"}},{bodyCell:t(({column:a,record:p})=>[a.key==="title"?(d(),g(O,{key:0},[m("span",et,i(p.title||e.t("search.results.noTitle")),1),m("div",tt,i(p.id.slice(0,16)),1)],64)):f("v-if",!0),a.key==="category"?(d(),k(S,{key:1,color:e.categoryColor(p.category)},{default:t(()=>[_(i(p.category),1)]),_:2},1032,["color"])):f("v-if",!0),a.key==="tags"?(d(),g(O,{key:2},[(d(!0),g(O,null,L(p.tags.slice(0,4),D=>(d(),k(S,{key:D,color:"default",style:{"font-size":"11px"}},{default:t(()=>[_(i(D),1)]),_:2},1024))),128)),p.tags.length>4?(d(),g("span",rt,"+"+i(p.tags.length-4),1)):f("v-if",!0)],64)):f("v-if",!0),a.key==="createdAt"?(d(),g("span",at,i(e.formatSearchTime(p.createdAt)),1)):f("v-if",!0),a.key==="action"?(d(),g(O,{key:4},[r(C,{size:"small",type:"link",onClick:D=>e.viewNote(p.id)},{default:t(()=>[_(i(e.t("search.index.rowAction.view")),1)]),_:1},8,["onClick"]),r(C,{size:"small",type:"link",onClick:D=>e.searchSimilar(p)},{default:t(()=>[_(i(e.t("search.index.rowAction.similar")),1)]),_:1},8,["onClick"])],64)):f("v-if",!0)]),emptyText:t(()=>[m("div",ot,[r(e.BookOutlined,{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),_(" "+i(e.indexCategoryFilter||e.indexTagFilter?e.t("search.empty.filtered"):e.t("search.empty.noNotes")),1)])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"])]),_:1},8,["activeKey"]),f(" ── Note detail modal ─────────────────────────────────── "),r(U,{open:e.showNoteModal,"onUpdate:open":l[6]||(l[6]=a=>e.showNoteModal=a),title:e.t("search.note.title",{title:e.currentNote?.title||""}),width:780,footer:null},{default:t(()=>[e.loadingNote?(d(),g("div",nt,[r(R)])):e.currentNote?(d(),g("div",lt,[r(ee,{column:2,size:"small",bordered:""},{default:t(()=>[r(I,{label:e.t("search.note.id"),span:2},{default:t(()=>[m("span",st,i(e.currentNote.id),1)]),_:1},8,["label"]),r(I,{label:e.t("search.note.category")},{default:t(()=>[r(S,{color:e.categoryColor(e.currentNote.category)},{default:t(()=>[_(i(e.currentNote.category),1)]),_:1},8,["color"])]),_:1},8,["label"]),r(I,{label:e.t("search.note.tags")},{default:t(()=>[(d(!0),g(O,null,L(e.currentNote.tags,a=>(d(),k(S,{key:a,color:"default"},{default:t(()=>[_(i(a),1)]),_:2},1024))),128)),e.currentNote.tags.length?f("v-if",!0):(d(),g("span",it,"—"))]),_:1},8,["label"]),r(I,{label:e.t("search.note.createdAt")},{default:t(()=>[_(i(e.formatSearchTime(e.currentNote.createdAt)),1)]),_:1},8,["label"]),r(I,{label:e.t("search.note.updatedAt")},{default:t(()=>[_(i(e.formatSearchTime(e.currentNote.updatedAt)),1)]),_:1},8,["label"])]),_:1}),m("h4",ct,i(e.t("search.note.content")),1),e.currentNote.content?(d(),g("div",dt,[m("span",{innerHTML:e.highlightContent(e.currentNote.content,e.currentQuery)},null,8,ut)])):(d(),k(M,{key:1,description:e.t("search.note.emptyContent"),image:e.EMPTY_IMG},null,8,["description","image"]))])):f("v-if",!0)]),_:1},8,["open","title"])])}const yt=Se(Pe,[["render",ft],["__scopeId","data-v-d2b94ce3"],["__file","/tmp/cc-web-panel-wxwyEA/repo/packages/web-panel/src/views/Search.vue"]]);export{yt as default};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{I as y,J as g,U as R,R as l,c as t,K as a,o as ae,b as Y,r as c,P as d,Q as m,V as p,S as P,F as de,Z as ue}from"./vendor-BvqAck49.js";import{_ as ye,b as se,u as ie,d as b}from"./index-
|
|
1
|
+
import{I as y,J as g,U as R,R as l,c as t,K as a,o as ae,b as Y,r as c,P as d,Q as m,V as p,S as P,F as de,Z as ue}from"./vendor-BvqAck49.js";import{_ as ye,b as se,u as ie,d as b}from"./index-DDBuc-Id.js";import{K as pe,R as fe,as as ge,A as me,Y as ve,Z as _e}from"./icons-DP3uiYxy.js";const be={__name:"Security",setup(re,{expose:f}){f();const{t:r}=se(),e=ie(),U=c("did"),V=c(!1);async function O(){V.value=!0;try{U.value==="did"?await k():U.value==="audit"&&await Q()}finally{V.value=!1}}function G(s){s==="did"&&L.value.length===0&&k(),s==="audit"&&q.value.length===0&&Q()}const T=c(!1),h=c(!1),I=c(!1),L=c([]),z=c(!1),x=c(""),w=c(""),Z=Y(()=>[{title:r("security.didColumns.did"),key:"did",dataIndex:"did",ellipsis:!0},{title:r("security.didColumns.method"),key:"method",dataIndex:"method",width:"100px"},{title:r("security.didColumns.created"),key:"created",dataIndex:"created",width:"180px"},{title:r("security.didColumns.status"),key:"status",width:"80px"}]);async function k(){T.value=!0;try{const{output:s}=await e.execute("did list",15e3);L.value=S(s)}catch(s){b.error(r("security.messages.loadDidsFailed",{err:s.message}))}finally{T.value=!1}}function S(s){const n=[],B=s.split(`
|
|
2
2
|
`);for(const D of B){const o=D.trim();if(!o||o.startsWith("─")||o.startsWith("DID")||o.match(/^\d+ identit/i))continue;const _=o.match(/(did:\w+:\w+)/);if(_){const v=_[1],C=v.split(":")[1]||"key",A=/default|默认|\*/.test(o),K=o.match(/(\d{4}-\d{2}-\d{2}[\sT]?\d{2}:\d{2}(?::\d{2})?)/);n.push({key:v,did:v,method:C,created:K?K[1]:"-",isDefault:A})}}return n}async function M(){h.value=!0;try{const{output:s}=await e.execute("did create",2e4);s.includes("error")||s.includes("失败")?b.error(r("security.messages.didCreateFailed",{err:s.slice(0,120)})):(b.success(r("security.messages.didCreateOk")),await k())}catch(s){b.error(r("security.messages.didCreateFailed",{err:s.message}))}finally{h.value=!1}}async function j(){if(!x.value.trim()){b.warning(r("security.messages.messageRequired"));return}I.value=!0,w.value="";try{const{output:s}=await e.execute(`did sign "${x.value.replace(/"/g,'\\"')}"`,15e3);w.value=s,!s.includes("error")&&!s.includes("失败")&&b.success(r("security.messages.signOk"))}catch(s){w.value=r("security.messages.signFailed",{err:s.message})}finally{I.value=!1}}const W=c(""),F=c(""),i=c(!1),u=c(!1),N=c(null),E=c(null);async function le(){if(W.value.trim()){i.value=!0,N.value=null;try{const{output:s,exitCode:n}=await e.execute(`encrypt file "${W.value.trim()}"`,3e4);N.value={success:n===0&&!s.includes("error")&&!s.includes("失败"),output:s||r("security.encrypt.encryptDefault")},N.value.success&&b.success(r("security.messages.encryptOk"))}catch(s){N.value={success:!1,output:r("security.messages.encryptFailed",{err:s.message})}}finally{i.value=!1}}}async function ne(){if(F.value.trim()){u.value=!0,E.value=null;try{const{output:s,exitCode:n}=await e.execute(`decrypt file "${F.value.trim()}"`,3e4);E.value={success:n===0&&!s.includes("error")&&!s.includes("失败"),output:s||r("security.encrypt.decryptDefault")},E.value.success&&b.success(r("security.messages.decryptOk"))}catch(s){E.value={success:!1,output:r("security.messages.decryptFailed",{err:s.message})}}finally{u.value=!1}}}const J=c(!1),q=c([]),H=c([]),oe=Y(()=>[{title:r("security.auditColumns.time"),key:"time",dataIndex:"time",width:"180px"},{title:r("security.auditColumns.event"),key:"event",dataIndex:"event",width:"200px"},{title:r("security.auditColumns.user"),key:"user",dataIndex:"user",width:"120px"},{title:r("security.auditColumns.level"),key:"level",dataIndex:"level",width:"80px"},{title:r("security.auditColumns.detail"),key:"detail",dataIndex:"detail",ellipsis:!0}]);function ce(s){return{info:"blue",warn:"orange",warning:"orange",error:"red",critical:"red"}[(s||"").toLowerCase()]||"default"}async function Q(){J.value=!0;try{const[s,n]=await Promise.all([e.execute("audit log",15e3),e.execute("audit stats",15e3)]);q.value=X(s.output),H.value=$(n.output)}catch(s){b.error(r("security.messages.loadAuditFailed",{err:s.message}))}finally{J.value=!1}}function X(s){const n=[],B=s.split(`
|
|
3
3
|
`);for(const D of B){const o=D.trim();if(!o||o.startsWith("─")||o.startsWith("Audit")||o.startsWith("Recent"))continue;const _=o.split(/\s*[|│]\s*/);if(_.length>=3){n.push({key:n.length,time:_[0]||"-",event:_[1]||"-",user:_[2]||"-",level:_[3]||"info",detail:_.slice(4).join(" ")||""});continue}const v=o.match(/^(\d{4}-\d{2}-\d{2}[\sT]\d{2}:\d{2}(?::\d{2})?)\s+(.+)/);if(v){const C=v[2],A=C.match(/\b(INFO|WARN|WARNING|ERROR|CRITICAL)\b/i);n.push({key:n.length,time:v[1],event:C.replace(/\b(INFO|WARN|WARNING|ERROR|CRITICAL)\b/i,"").trim().slice(0,80),user:"-",level:A?A[1].toLowerCase():"info",detail:""})}else o.length>3&&!o.match(/^\d+ event/i)&&n.push({key:n.length,time:"-",event:o.slice(0,80),user:"-",level:"info",detail:""})}return n}function $(s){const n=[],B=s.split(`
|
|
4
|
-
`),D=["#1677ff","#52c41a","#faad14","#ff4d4f"];let o=0;for(const _ of B){const v=_.trim();if(!v||v.startsWith("─")||v.startsWith("Audit"))continue;const C=v.match(/^(.+?)\s*[:=:]\s*(.+)$/);if(C){const A=C[1].trim(),K=C[2].trim(),te=K.match(/^(\d+)/);n.push({label:A,value:te?parseInt(te[1],10):K,color:D[o%D.length]}),o++}}return n.length===0&&n.push({label:r("security.audit.totalEvents"),value:q.value.length,color:"#1677ff"},{label:r("security.audit.statusLabel"),value:r("security.audit.ready"),color:"#52c41a"}),n}ae(()=>{k()});const ee={t:r,ws:e,activeTab:U,refreshing:V,refreshCurrentTab:O,onTabChange:G,didLoading:T,creating:h,signing:I,didList:L,showSignModal:z,signText:x,signResult:w,didColumns:Z,loadDIDList:k,parseDIDList:S,createDID:M,signMessage:j,encryptPath:W,decryptPath:F,encrypting:i,decrypting:u,encryptResult:N,decryptResult:E,doEncrypt:le,doDecrypt:ne,auditLoading:J,auditEvents:q,auditStats:H,auditColumns:oe,levelColor:ce,loadAudit:Q,parseAuditLog:X,parseAuditStats:$,ref:c,computed:Y,onMounted:ae,get useI18n(){return se},get SafetyCertificateOutlined(){return _e},get LockOutlined(){return ve},get AuditOutlined(){return me},get PlusOutlined(){return ge},get ReloadOutlined(){return fe},get KeyOutlined(){return pe},get message(){return b},get useWsStore(){return ie}};return Object.defineProperty(ee,"__isScriptSetup",{enumerable:!1,value:!0}),ee}},he={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},xe={class:"page-title"},ke={class:"page-sub"},we={key:0,style:{"text-align":"center",padding:"60px"}},Ce={key:0,style:{color:"#e0e0e0","font-family":"monospace","font-size":"12px"}},Re={key:2,style:{color:"var(--text-secondary)","font-size":"12px"}},Oe={key:0,style:{"margin-top":"12px"}},Te={style:{color:"var(--text-secondary)","margin-bottom":"6px"}},Ie={style:{"white-space":"pre-wrap","word-break":"break-all",color:"#52c41a","font-size":"11px",background:"var(--bg-base)",padding:"12px","border-radius":"6px",border:"1px solid var(--border-color)"}},Le={key:0,style:{"margin-top":"8px"}},Se={style:{"white-space":"pre-wrap","word-break":"break-all",color:"var(--text-secondary)","font-size":"11px","margin-top":"8px",background:"var(--bg-base)",padding:"10px","border-radius":"6px",border:"1px solid var(--border-color)"}},De={key:0,style:{"margin-top":"8px"}},Ae={style:{"white-space":"pre-wrap","word-break":"break-all",color:"var(--text-secondary)","font-size":"11px","margin-top":"8px",background:"var(--bg-base)",padding:"10px","border-radius":"6px",border:"1px solid var(--border-color)"}},Pe={key:0,style:{"text-align":"center",padding:"60px"}},ze={key:0,style:{color:"var(--text-secondary)","font-size":"12px","font-family":"monospace"}},Me={key:1,style:{color:"#e0e0e0"}},We={key:2,style:{color:"var(--text-secondary)"}},Fe={key:4,style:{color:"var(--text-muted)","font-size":"12px"}};function Ne(re,f,r,e,U,V){const O=y("a-button"),G=y("a-space"),T=y("a-spin"),h=y("a-tag"),I=y("a-empty"),L=y("a-table"),z=y("a-input"),x=y("a-form-item"),w=y("a-form"),Z=y("a-modal"),k=y("a-tab-pane"),S=y("a-card"),M=y("a-col"),j=y("a-row"),W=y("a-statistic"),F=y("a-tabs");return d(),g("div",null,[R("div",he,[R("div",null,[R("h2",xe,l(e.t("security.title")),1),R("p",ke,l(e.t("security.subtitle")),1)]),t(O,{type:"primary",ghost:"",loading:e.refreshing,onClick:e.refreshCurrentTab},{icon:a(()=>[t(e.ReloadOutlined)]),default:a(()=>[m(" "+l(e.t("security.refresh")),1)]),_:1},8,["loading"])]),t(F,{activeKey:e.activeTab,"onUpdate:activeKey":f[5]||(f[5]=i=>e.activeTab=i),onChange:e.onTabChange},{default:a(()=>[p(" Tab 1: DID Identity "),t(k,{key:"did"},{tab:a(()=>[t(e.SafetyCertificateOutlined),m(" "+l(e.t("security.tabs.did")),1)]),default:a(()=>[t(G,{style:{"margin-bottom":"16px"}},{default:a(()=>[t(O,{type:"primary",loading:e.creating,onClick:e.createDID},{icon:a(()=>[t(e.PlusOutlined)]),default:a(()=>[m(" "+l(e.t("security.did.createButton")),1)]),_:1},8,["loading"]),t(O,{onClick:f[0]||(f[0]=i=>e.showSignModal=!0)},{icon:a(()=>[t(e.KeyOutlined)]),default:a(()=>[m(" "+l(e.t("security.did.signButton")),1)]),_:1})]),_:1}),e.didLoading?(d(),g("div",we,[t(T,{size:"large"})])):(d(),P(L,{key:1,columns:e.didColumns,"data-source":e.didList,pagination:{pageSize:20,showTotal:i=>e.t("security.totals.rows",{count:i})},size:"small",style:{background:"var(--bg-card)"},"row-class-name":()=>"sec-row"},{bodyCell:a(({column:i,record:u})=>[i.key==="did"?(d(),g("span",Ce,l(u.did),1)):p("v-if",!0),i.key==="method"?(d(),P(h,{key:1,color:"blue"},{default:a(()=>[m(l(u.method),1)]),_:2},1024)):p("v-if",!0),i.key==="created"?(d(),g("span",Re,l(u.created),1)):p("v-if",!0),i.key==="status"?(d(),P(h,{key:3,color:u.isDefault?"green":"default"},{default:a(()=>[m(l(u.isDefault?e.t("security.did.default"):e.t("security.did.available")),1)]),_:2},1032,["color"])):p("v-if",!0)]),emptyText:a(()=>[t(I,{description:e.t("security.did.emptyText")},null,8,["description"])]),_:1},8,["columns","data-source","pagination"])),t(Z,{open:e.showSignModal,"onUpdate:open":f[2]||(f[2]=i=>e.showSignModal=i),title:e.t("security.did.signTitle"),"confirm-loading":e.signing,onOk:e.signMessage,"ok-text":e.t("security.did.signOk"),"cancel-text":e.t("common.cancel")},{default:a(()=>[t(w,{"label-col":{span:4},"wrapper-col":{span:20},style:{"margin-top":"16px"}},{default:a(()=>[t(x,{label:e.t("security.did.messageLabel"),required:""},{default:a(()=>[t(z,{value:e.signText,"onUpdate:value":f[1]||(f[1]=i=>e.signText=i),placeholder:e.t("security.did.messagePlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1}),e.signResult?(d(),g("div",Oe,[R("p",Te,l(e.t("security.did.signResultLabel")),1),R("pre",Ie,l(e.signResult),1)])):p("v-if",!0)]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"])]),_:1}),p(" Tab 2: File Encryption "),t(k,{key:"encrypt"},{tab:a(()=>[t(e.LockOutlined),m(" "+l(e.t("security.tabs.encrypt")),1)]),default:a(()=>[t(j,{gutter:[24,24]},{default:a(()=>[t(M,{xs:24,md:12},{default:a(()=>[t(S,{title:e.t("security.encrypt.encryptCardTitle"),style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[t(w,{"label-col":{span:6},"wrapper-col":{span:18}},{default:a(()=>[t(x,{label:e.t("security.encrypt.pathLabel")},{default:a(()=>[t(z,{value:e.encryptPath,"onUpdate:value":f[3]||(f[3]=i=>e.encryptPath=i),placeholder:e.t("security.encrypt.encryptPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),t(x,{"wrapper-col":{offset:6,span:18}},{default:a(()=>[t(O,{type:"primary",loading:e.encrypting,disabled:!e.encryptPath.trim(),onClick:e.doEncrypt},{icon:a(()=>[t(e.LockOutlined)]),default:a(()=>[m(" "+l(e.t("security.encrypt.encryptButton")),1)]),_:1},8,["loading","disabled"])]),_:1})]),_:1}),e.encryptResult?(d(),g("div",Le,[t(h,{color:e.encryptResult.success?"green":"red"},{default:a(()=>[m(l(e.encryptResult.success?e.t("security.encrypt.successTag"):e.t("security.encrypt.failureTag")),1)]),_:1},8,["color"]),R("pre",Se,l(e.encryptResult.output),1)])):p("v-if",!0)]),_:1},8,["title"])]),_:1}),t(M,{xs:24,md:12},{default:a(()=>[t(S,{title:e.t("security.encrypt.decryptCardTitle"),style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[t(w,{"label-col":{span:6},"wrapper-col":{span:18}},{default:a(()=>[t(x,{label:e.t("security.encrypt.pathLabel")},{default:a(()=>[t(z,{value:e.decryptPath,"onUpdate:value":f[4]||(f[4]=i=>e.decryptPath=i),placeholder:e.t("security.encrypt.decryptPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),t(x,{"wrapper-col":{offset:6,span:18}},{default:a(()=>[t(O,{type:"primary",loading:e.decrypting,disabled:!e.decryptPath.trim(),onClick:e.doDecrypt},{icon:a(()=>[t(e.LockOutlined)]),default:a(()=>[m(" "+l(e.t("security.encrypt.decryptButton")),1)]),_:1},8,["loading","disabled"])]),_:1})]),_:1}),e.decryptResult?(d(),g("div",De,[t(h,{color:e.decryptResult.success?"green":"red"},{default:a(()=>[m(l(e.decryptResult.success?e.t("security.encrypt.successTag"):e.t("security.encrypt.failureTag")),1)]),_:1},8,["color"]),R("pre",Ae,l(e.decryptResult.output),1)])):p("v-if",!0)]),_:1},8,["title"])]),_:1})]),_:1})]),_:1}),p(" Tab 3: Audit Logs "),t(k,{key:"audit"},{tab:a(()=>[t(e.AuditOutlined),m(" "+l(e.t("security.tabs.audit")),1)]),default:a(()=>[t(j,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:a(()=>[(d(!0),g(de,null,ue(e.auditStats,i=>(d(),P(M,{xs:12,sm:6,key:i.label},{default:a(()=>[t(S,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"},size:"small"},{default:a(()=>[t(W,{title:i.label,value:i.value,"value-style":{color:i.color,fontSize:"20px"}},null,8,["title","value","value-style"])]),_:2},1024)]),_:2},1024))),128))]),_:1}),e.auditLoading?(d(),g("div",Pe,[t(T,{size:"large"})])):(d(),P(L,{key:1,columns:e.auditColumns,"data-source":e.auditEvents,pagination:{pageSize:20,showTotal:i=>e.t("security.totals.rows",{count:i})},size:"small",style:{background:"var(--bg-card)"},"row-class-name":()=>"sec-row"},{bodyCell:a(({column:i,record:u})=>[i.key==="time"?(d(),g("span",ze,l(u.time),1)):p("v-if",!0),i.key==="event"?(d(),g("span",Me,l(u.event),1)):p("v-if",!0),i.key==="user"?(d(),g("span",We,l(u.user),1)):p("v-if",!0),i.key==="level"?(d(),P(h,{key:3,color:e.levelColor(u.level)},{default:a(()=>[m(l(u.level),1)]),_:2},1032,["color"])):p("v-if",!0),i.key==="detail"?(d(),g("span",Fe,l(u.detail),1)):p("v-if",!0)]),emptyText:a(()=>[t(I,{description:e.t("security.audit.emptyText")},null,8,["description"])]),_:1},8,["columns","data-source","pagination"]))]),_:1})]),_:1},8,["activeKey"])])}const Ue=ye(be,[["render",Ne],["__scopeId","data-v-d5de013d"],["__file","/tmp/cc-web-panel-
|
|
4
|
+
`),D=["#1677ff","#52c41a","#faad14","#ff4d4f"];let o=0;for(const _ of B){const v=_.trim();if(!v||v.startsWith("─")||v.startsWith("Audit"))continue;const C=v.match(/^(.+?)\s*[:=:]\s*(.+)$/);if(C){const A=C[1].trim(),K=C[2].trim(),te=K.match(/^(\d+)/);n.push({label:A,value:te?parseInt(te[1],10):K,color:D[o%D.length]}),o++}}return n.length===0&&n.push({label:r("security.audit.totalEvents"),value:q.value.length,color:"#1677ff"},{label:r("security.audit.statusLabel"),value:r("security.audit.ready"),color:"#52c41a"}),n}ae(()=>{k()});const ee={t:r,ws:e,activeTab:U,refreshing:V,refreshCurrentTab:O,onTabChange:G,didLoading:T,creating:h,signing:I,didList:L,showSignModal:z,signText:x,signResult:w,didColumns:Z,loadDIDList:k,parseDIDList:S,createDID:M,signMessage:j,encryptPath:W,decryptPath:F,encrypting:i,decrypting:u,encryptResult:N,decryptResult:E,doEncrypt:le,doDecrypt:ne,auditLoading:J,auditEvents:q,auditStats:H,auditColumns:oe,levelColor:ce,loadAudit:Q,parseAuditLog:X,parseAuditStats:$,ref:c,computed:Y,onMounted:ae,get useI18n(){return se},get SafetyCertificateOutlined(){return _e},get LockOutlined(){return ve},get AuditOutlined(){return me},get PlusOutlined(){return ge},get ReloadOutlined(){return fe},get KeyOutlined(){return pe},get message(){return b},get useWsStore(){return ie}};return Object.defineProperty(ee,"__isScriptSetup",{enumerable:!1,value:!0}),ee}},he={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},xe={class:"page-title"},ke={class:"page-sub"},we={key:0,style:{"text-align":"center",padding:"60px"}},Ce={key:0,style:{color:"#e0e0e0","font-family":"monospace","font-size":"12px"}},Re={key:2,style:{color:"var(--text-secondary)","font-size":"12px"}},Oe={key:0,style:{"margin-top":"12px"}},Te={style:{color:"var(--text-secondary)","margin-bottom":"6px"}},Ie={style:{"white-space":"pre-wrap","word-break":"break-all",color:"#52c41a","font-size":"11px",background:"var(--bg-base)",padding:"12px","border-radius":"6px",border:"1px solid var(--border-color)"}},Le={key:0,style:{"margin-top":"8px"}},Se={style:{"white-space":"pre-wrap","word-break":"break-all",color:"var(--text-secondary)","font-size":"11px","margin-top":"8px",background:"var(--bg-base)",padding:"10px","border-radius":"6px",border:"1px solid var(--border-color)"}},De={key:0,style:{"margin-top":"8px"}},Ae={style:{"white-space":"pre-wrap","word-break":"break-all",color:"var(--text-secondary)","font-size":"11px","margin-top":"8px",background:"var(--bg-base)",padding:"10px","border-radius":"6px",border:"1px solid var(--border-color)"}},Pe={key:0,style:{"text-align":"center",padding:"60px"}},ze={key:0,style:{color:"var(--text-secondary)","font-size":"12px","font-family":"monospace"}},Me={key:1,style:{color:"#e0e0e0"}},We={key:2,style:{color:"var(--text-secondary)"}},Fe={key:4,style:{color:"var(--text-muted)","font-size":"12px"}};function Ne(re,f,r,e,U,V){const O=y("a-button"),G=y("a-space"),T=y("a-spin"),h=y("a-tag"),I=y("a-empty"),L=y("a-table"),z=y("a-input"),x=y("a-form-item"),w=y("a-form"),Z=y("a-modal"),k=y("a-tab-pane"),S=y("a-card"),M=y("a-col"),j=y("a-row"),W=y("a-statistic"),F=y("a-tabs");return d(),g("div",null,[R("div",he,[R("div",null,[R("h2",xe,l(e.t("security.title")),1),R("p",ke,l(e.t("security.subtitle")),1)]),t(O,{type:"primary",ghost:"",loading:e.refreshing,onClick:e.refreshCurrentTab},{icon:a(()=>[t(e.ReloadOutlined)]),default:a(()=>[m(" "+l(e.t("security.refresh")),1)]),_:1},8,["loading"])]),t(F,{activeKey:e.activeTab,"onUpdate:activeKey":f[5]||(f[5]=i=>e.activeTab=i),onChange:e.onTabChange},{default:a(()=>[p(" Tab 1: DID Identity "),t(k,{key:"did"},{tab:a(()=>[t(e.SafetyCertificateOutlined),m(" "+l(e.t("security.tabs.did")),1)]),default:a(()=>[t(G,{style:{"margin-bottom":"16px"}},{default:a(()=>[t(O,{type:"primary",loading:e.creating,onClick:e.createDID},{icon:a(()=>[t(e.PlusOutlined)]),default:a(()=>[m(" "+l(e.t("security.did.createButton")),1)]),_:1},8,["loading"]),t(O,{onClick:f[0]||(f[0]=i=>e.showSignModal=!0)},{icon:a(()=>[t(e.KeyOutlined)]),default:a(()=>[m(" "+l(e.t("security.did.signButton")),1)]),_:1})]),_:1}),e.didLoading?(d(),g("div",we,[t(T,{size:"large"})])):(d(),P(L,{key:1,columns:e.didColumns,"data-source":e.didList,pagination:{pageSize:20,showTotal:i=>e.t("security.totals.rows",{count:i})},size:"small",style:{background:"var(--bg-card)"},"row-class-name":()=>"sec-row"},{bodyCell:a(({column:i,record:u})=>[i.key==="did"?(d(),g("span",Ce,l(u.did),1)):p("v-if",!0),i.key==="method"?(d(),P(h,{key:1,color:"blue"},{default:a(()=>[m(l(u.method),1)]),_:2},1024)):p("v-if",!0),i.key==="created"?(d(),g("span",Re,l(u.created),1)):p("v-if",!0),i.key==="status"?(d(),P(h,{key:3,color:u.isDefault?"green":"default"},{default:a(()=>[m(l(u.isDefault?e.t("security.did.default"):e.t("security.did.available")),1)]),_:2},1032,["color"])):p("v-if",!0)]),emptyText:a(()=>[t(I,{description:e.t("security.did.emptyText")},null,8,["description"])]),_:1},8,["columns","data-source","pagination"])),t(Z,{open:e.showSignModal,"onUpdate:open":f[2]||(f[2]=i=>e.showSignModal=i),title:e.t("security.did.signTitle"),"confirm-loading":e.signing,onOk:e.signMessage,"ok-text":e.t("security.did.signOk"),"cancel-text":e.t("common.cancel")},{default:a(()=>[t(w,{"label-col":{span:4},"wrapper-col":{span:20},style:{"margin-top":"16px"}},{default:a(()=>[t(x,{label:e.t("security.did.messageLabel"),required:""},{default:a(()=>[t(z,{value:e.signText,"onUpdate:value":f[1]||(f[1]=i=>e.signText=i),placeholder:e.t("security.did.messagePlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1}),e.signResult?(d(),g("div",Oe,[R("p",Te,l(e.t("security.did.signResultLabel")),1),R("pre",Ie,l(e.signResult),1)])):p("v-if",!0)]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"])]),_:1}),p(" Tab 2: File Encryption "),t(k,{key:"encrypt"},{tab:a(()=>[t(e.LockOutlined),m(" "+l(e.t("security.tabs.encrypt")),1)]),default:a(()=>[t(j,{gutter:[24,24]},{default:a(()=>[t(M,{xs:24,md:12},{default:a(()=>[t(S,{title:e.t("security.encrypt.encryptCardTitle"),style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[t(w,{"label-col":{span:6},"wrapper-col":{span:18}},{default:a(()=>[t(x,{label:e.t("security.encrypt.pathLabel")},{default:a(()=>[t(z,{value:e.encryptPath,"onUpdate:value":f[3]||(f[3]=i=>e.encryptPath=i),placeholder:e.t("security.encrypt.encryptPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),t(x,{"wrapper-col":{offset:6,span:18}},{default:a(()=>[t(O,{type:"primary",loading:e.encrypting,disabled:!e.encryptPath.trim(),onClick:e.doEncrypt},{icon:a(()=>[t(e.LockOutlined)]),default:a(()=>[m(" "+l(e.t("security.encrypt.encryptButton")),1)]),_:1},8,["loading","disabled"])]),_:1})]),_:1}),e.encryptResult?(d(),g("div",Le,[t(h,{color:e.encryptResult.success?"green":"red"},{default:a(()=>[m(l(e.encryptResult.success?e.t("security.encrypt.successTag"):e.t("security.encrypt.failureTag")),1)]),_:1},8,["color"]),R("pre",Se,l(e.encryptResult.output),1)])):p("v-if",!0)]),_:1},8,["title"])]),_:1}),t(M,{xs:24,md:12},{default:a(()=>[t(S,{title:e.t("security.encrypt.decryptCardTitle"),style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:a(()=>[t(w,{"label-col":{span:6},"wrapper-col":{span:18}},{default:a(()=>[t(x,{label:e.t("security.encrypt.pathLabel")},{default:a(()=>[t(z,{value:e.decryptPath,"onUpdate:value":f[4]||(f[4]=i=>e.decryptPath=i),placeholder:e.t("security.encrypt.decryptPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),t(x,{"wrapper-col":{offset:6,span:18}},{default:a(()=>[t(O,{type:"primary",loading:e.decrypting,disabled:!e.decryptPath.trim(),onClick:e.doDecrypt},{icon:a(()=>[t(e.LockOutlined)]),default:a(()=>[m(" "+l(e.t("security.encrypt.decryptButton")),1)]),_:1},8,["loading","disabled"])]),_:1})]),_:1}),e.decryptResult?(d(),g("div",De,[t(h,{color:e.decryptResult.success?"green":"red"},{default:a(()=>[m(l(e.decryptResult.success?e.t("security.encrypt.successTag"):e.t("security.encrypt.failureTag")),1)]),_:1},8,["color"]),R("pre",Ae,l(e.decryptResult.output),1)])):p("v-if",!0)]),_:1},8,["title"])]),_:1})]),_:1})]),_:1}),p(" Tab 3: Audit Logs "),t(k,{key:"audit"},{tab:a(()=>[t(e.AuditOutlined),m(" "+l(e.t("security.tabs.audit")),1)]),default:a(()=>[t(j,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:a(()=>[(d(!0),g(de,null,ue(e.auditStats,i=>(d(),P(M,{xs:12,sm:6,key:i.label},{default:a(()=>[t(S,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"},size:"small"},{default:a(()=>[t(W,{title:i.label,value:i.value,"value-style":{color:i.color,fontSize:"20px"}},null,8,["title","value","value-style"])]),_:2},1024)]),_:2},1024))),128))]),_:1}),e.auditLoading?(d(),g("div",Pe,[t(T,{size:"large"})])):(d(),P(L,{key:1,columns:e.auditColumns,"data-source":e.auditEvents,pagination:{pageSize:20,showTotal:i=>e.t("security.totals.rows",{count:i})},size:"small",style:{background:"var(--bg-card)"},"row-class-name":()=>"sec-row"},{bodyCell:a(({column:i,record:u})=>[i.key==="time"?(d(),g("span",ze,l(u.time),1)):p("v-if",!0),i.key==="event"?(d(),g("span",Me,l(u.event),1)):p("v-if",!0),i.key==="user"?(d(),g("span",We,l(u.user),1)):p("v-if",!0),i.key==="level"?(d(),P(h,{key:3,color:e.levelColor(u.level)},{default:a(()=>[m(l(u.level),1)]),_:2},1032,["color"])):p("v-if",!0),i.key==="detail"?(d(),g("span",Fe,l(u.detail),1)):p("v-if",!0)]),emptyText:a(()=>[t(I,{description:e.t("security.audit.emptyText")},null,8,["description"])]),_:1},8,["columns","data-source","pagination"]))]),_:1})]),_:1},8,["activeKey"])])}const Ue=ye(be,[["render",Ne],["__scopeId","data-v-d5de013d"],["__file","/tmp/cc-web-panel-wxwyEA/repo/packages/web-panel/src/views/Security.vue"]]);export{Ue as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{I as i,J as u,U as g,c as t,K as o,V as n,o as T,b as V,r as l,P as s,Q as h,R as v,S as W}from"./vendor-BvqAck49.js";import{_ as Q,u as F}from"./index-
|
|
2
|
-
`).filter(m=>m.match(/[○●]\s+\w+:\s+\d+/));M.value=
|
|
1
|
+
import{I as i,J as u,U as g,c as t,K as o,V as n,o as T,b as V,r as l,P as s,Q as h,R as v,S as W}from"./vendor-BvqAck49.js";import{_ as Q,u as F}from"./index-DDBuc-Id.js";import{a4 as G,ar as H,f as J,af as K,a8 as U,h as q,R as X}from"./icons-DP3uiYxy.js";const Y={__name:"Services",setup(z,{expose:r}){r();const b=F(),e=window.__CC_CONFIG__||{},O=l(!1),C=l(!1),d=l(""),f=l(""),c=l(!1),_=l(""),y=l(""),D=l(""),L=l(!1),x=l(""),k=l(""),M=l([]),p=V(()=>b.status==="connected"),S=[{title:"服务",dataIndex:"name",key:"name"},{title:"端口",dataIndex:"port",key:"port"},{title:"状态",key:"status"}];async function B(){O.value=!0;try{const{output:a}=await b.execute("status",15e3);f.value=a,A(a)}catch(a){console.error("status failed:",a)}finally{O.value=!1}}function A(a){c.value=a.includes("Desktop app running")||a.includes("Running");const N=a.match(/Edition:\s+(\S+)/i);N&&(_.value=N[1]);const R=a.match(/LLM:\s+(\S+)\s+\(([^)]+)\)/i);if(R)y.value=R[1],D.value=R[2];else{const m=a.match(/LLM:\s+(\S+)/i);m&&(y.value=m[1])}L.value=a.includes("Setup completed");const P=a.match(/Setup completed \(([^)]+)\)/i);if(P)try{x.value=new Date(P[1]).toLocaleDateString("zh-CN")}catch{x.value=""}a.includes("docker-compose.yml not found")?k.value="未找到 docker-compose.yml":a.includes("Docker Services")&&(k.value="已检测到 Docker 配置");const j=a.split(`
|
|
2
|
+
`).filter(m=>m.match(/[○●]\s+\w+:\s+\d+/));M.value=j.map(m=>{const w=m.match(/([○●])\s+(\w+):\s+(\d+)/);return w?{key:w[2],name:w[2],port:parseInt(w[3]),active:w[1]==="●"}:null}).filter(Boolean)}async function E(){C.value=!0,d.value="";try{const{output:a}=await b.execute("doctor",3e4);d.value=a}catch(a){d.value=`诊断失败: ${a.message}`}finally{C.value=!1}}T(B);const I={ws:b,cfg:e,loading:O,doctorLoading:C,doctorOutput:d,rawStatus:f,appRunning:c,edition:_,activeLlm:y,activeModel:D,setupDone:L,setupDate:x,dockerStatus:k,ports:M,wsConnected:p,portColumns:S,refresh:B,parseStatus:A,runDoctor:E,ref:l,computed:V,onMounted:T,get ReloadOutlined(){return X},get DesktopOutlined(){return q},get ApiOutlined(){return U},get RobotOutlined(){return K},get CheckCircleOutlined(){return J},get MedicineBoxOutlined(){return H},get FileTextOutlined(){return G},get useWsStore(){return F}};return Object.defineProperty(I,"__isScriptSetup",{enumerable:!1,value:!0}),I}},Z={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},$={key:0,style:{"margin-top":"6px",color:"var(--text-muted)","font-size":"11px"}},ee={style:{"margin-top":"6px",color:"var(--text-muted)","font-size":"11px"}},te={key:0,style:{"margin-top":"6px",color:"var(--text-muted)","font-size":"11px",overflow:"hidden","text-overflow":"ellipsis","white-space":"nowrap"}},oe={key:0,style:{"margin-top":"6px",color:"var(--text-muted)","font-size":"11px"}},ae={key:0,style:{"text-align":"center",padding:"30px"}},re={key:1,style:{"font-family":"monospace",color:"#ccc"}},ne={key:0,style:{color:"var(--text-secondary)","font-size":"13px",padding:"8px 0"}},le={key:1,style:{color:"var(--text-muted)","font-size":"13px",padding:"8px 0"}},se={key:0,style:{"margin-top":"16px"}},ce={style:{background:"var(--bg-base)",border:"1px solid var(--border-color)","border-radius":"6px",padding:"12px",color:"#aaa","font-size":"12px","max-height":"300px","overflow-y":"auto","white-space":"pre-wrap"}};function ie(z,r,b,e,O,C){const d=i("a-button"),f=i("a-statistic"),c=i("a-card"),_=i("a-col"),y=i("a-row"),D=i("a-tag"),L=i("a-spin"),x=i("a-badge"),k=i("a-table"),M=i("a-space");return s(),u("div",null,[g("div",Z,[r[3]||(r[3]=g("div",null,[g("h2",{class:"page-title"},"服务管理"),g("p",{class:"page-sub"},"ChainlessChain 运行状态与服务控制")],-1)),t(d,{type:"primary",ghost:"",loading:e.loading,onClick:e.refresh},{icon:o(()=>[t(e.ReloadOutlined)]),default:o(()=>[r[2]||(r[2]=h(" 刷新 ",-1))]),_:1},8,["loading"])]),n(" Status Cards Row "),t(y,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:o(()=>[n(" App Status "),t(_,{xs:24,sm:12,lg:6},{default:o(()=>[t(c,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:o(()=>[t(f,{title:"应用状态",value:e.appRunning?"运行中":"未运行","value-style":{color:e.appRunning?"#52c41a":"#888",fontSize:"16px"}},{prefix:o(()=>[t(e.DesktopOutlined)]),_:1},8,["value","value-style"]),e.edition?(s(),u("div",$,"版本: "+v(e.edition),1)):n("v-if",!0)]),_:1})]),_:1}),n(" WebSocket Server "),t(_,{xs:24,sm:12,lg:6},{default:o(()=>[t(c,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:o(()=>[t(f,{title:"WebSocket 服务",value:"运行中","value-style":{color:"#52c41a",fontSize:"16px"}},{prefix:o(()=>[t(e.ApiOutlined)]),_:1}),g("div",ee," 端口: "+v(e.cfg.wsPort||18800)+" · "+v(e.cfg.wsHost||"127.0.0.1"),1)]),_:1})]),_:1}),n(" LLM Provider "),t(_,{xs:24,sm:12,lg:6},{default:o(()=>[t(c,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:o(()=>[t(f,{title:"LLM 提供商",value:e.activeLlm||"未配置","value-style":{color:e.activeLlm?"#1677ff":"#888",fontSize:"16px"}},{prefix:o(()=>[t(e.RobotOutlined)]),_:1},8,["value","value-style"]),e.activeModel?(s(),u("div",te,v(e.activeModel),1)):n("v-if",!0)]),_:1})]),_:1}),n(" Setup Status "),t(_,{xs:24,sm:12,lg:6},{default:o(()=>[t(c,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:o(()=>[t(f,{title:"初始化",value:e.setupDone?"已完成":"未完成","value-style":{color:e.setupDone?"#52c41a":"#faad14",fontSize:"16px"}},{prefix:o(()=>[t(e.CheckCircleOutlined)]),_:1},8,["value","value-style"]),e.setupDate?(s(),u("div",oe,v(e.setupDate),1)):n("v-if",!0)]),_:1})]),_:1})]),_:1}),n(" Port Status Table "),t(c,{title:"端口状态",style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"20px"}},{extra:o(()=>[t(D,{color:e.wsConnected?"green":"red"},{default:o(()=>[h(" WS "+v(e.wsConnected?"已连接":"断开"),1)]),_:1},8,["color"])]),default:o(()=>[e.loading?(s(),u("div",ae,[t(L)])):(s(),W(k,{key:1,columns:e.portColumns,"data-source":e.ports,pagination:!1,size:"small","row-class-name":p=>p.active?"port-active":""},{bodyCell:o(({column:p,record:S})=>[p.key==="status"?(s(),W(x,{key:0,status:S.active?"success":"default",text:S.active?"运行中":"未运行"},null,8,["status","text"])):n("v-if",!0),p.key==="port"?(s(),u("span",re,v(S.port),1)):n("v-if",!0)]),_:1},8,["data-source","row-class-name"]))]),_:1}),n(" Docker Services "),t(c,{title:"Docker 服务",style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"20px"}},{default:o(()=>[e.dockerStatus?(s(),u("div",ne,v(e.dockerStatus),1)):(s(),u("div",le,"未检测到 Docker 服务"))]),_:1}),n(" Quick Actions "),t(c,{title:"快速操作",style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:o(()=>[t(M,{wrap:""},{default:o(()=>[t(d,{loading:e.doctorLoading,onClick:e.runDoctor,style:{background:"var(--bg-card-hover)","border-color":"var(--border-color)"}},{icon:o(()=>[t(e.MedicineBoxOutlined)]),default:o(()=>[r[4]||(r[4]=h(" 环境诊断 ",-1))]),_:1},8,["loading"]),t(d,{onClick:r[0]||(r[0]=p=>z.$router.push("/logs")),style:{background:"var(--bg-card-hover)","border-color":"var(--border-color)"}},{icon:o(()=>[t(e.FileTextOutlined)]),default:o(()=>[r[5]||(r[5]=h(" 查看日志 ",-1))]),_:1}),t(d,{onClick:r[1]||(r[1]=p=>z.$router.push("/providers")),style:{background:"var(--bg-card-hover)","border-color":"var(--border-color)"}},{icon:o(()=>[t(e.ApiOutlined)]),default:o(()=>[r[6]||(r[6]=h(" LLM 配置 ",-1))]),_:1})]),_:1}),n(" Doctor Output "),e.doctorOutput?(s(),u("div",se,[r[7]||(r[7]=g("div",{style:{color:"var(--text-secondary)","font-size":"11px","margin-bottom":"6px"}},"诊断结果",-1)),g("pre",ce,v(e.doctorOutput),1)])):n("v-if",!0)]),_:1})])}const pe=Q(Y,[["render",ie],["__scopeId","data-v-83a35225"],["__file","/tmp/cc-web-panel-wxwyEA/repo/packages/web-panel/src/views/Services.vue"]]);export{pe as default};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{i as C,l as N,m as D,h as o,K as G,q as W}from"./index-
|
|
1
|
+
import{i as C,l as N,m as D,h as o,K as G,q as W}from"./index-DDBuc-Id.js";import{d as I,c}from"./vendor-BvqAck49.js";import{i as j}from"./initDefaultProps-CGh7iY6x.js";const z=()=>({prefixCls:String,width:{type:[Number,String]}}),O=I({compatConfig:{MODE:3},name:"SkeletonTitle",props:z(),setup(e){return()=>{const{prefixCls:t,width:n}=e,r=typeof n=="number"?`${n}px`:n;return c("h3",{class:t,style:{width:r}},null)}}}),X=()=>({prefixCls:String,width:{type:[Number,String,Array]},rows:Number}),q=I({compatConfig:{MODE:3},name:"SkeletonParagraph",props:X(),setup(e){const t=n=>{const{width:r,rows:l=2}=e;if(Array.isArray(r))return r[n];if(l-1===n)return r};return()=>{const{prefixCls:n,rows:r}=e,l=[...Array(r)].map((i,a)=>{const d=t(a);return c("li",{key:a,style:{width:typeof d=="number"?`${d}px`:d}},null)});return c("ul",{class:n},[l])}}}),ie=()=>({prefixCls:String,size:[String,Number],shape:String,active:{type:Boolean,default:void 0}}),L=e=>{const{prefixCls:t,size:n,shape:r}=e,l=C({[`${t}-lg`]:n==="large",[`${t}-sm`]:n==="small"}),i=C({[`${t}-circle`]:r==="circle",[`${t}-square`]:r==="square",[`${t}-round`]:r==="round"}),a=typeof n=="number"?{width:`${n}px`,height:`${n}px`,lineHeight:`${n}px`}:{};return c("span",{class:C(t,l,i),style:a},null)};L.displayName="SkeletonElement";const F=new G("ant-skeleton-loading",{"0%":{transform:"translateX(-37.5%)"},"100%":{transform:"translateX(37.5%)"}}),v=e=>({height:e,lineHeight:`${e}px`}),m=e=>o({width:e},v(e)),_=e=>({position:"relative",zIndex:0,overflow:"hidden",background:"transparent","&::after":{position:"absolute",top:0,insetInlineEnd:"-150%",bottom:0,insetInlineStart:"-150%",background:e.skeletonLoadingBackground,animationName:F,animationDuration:e.skeletonLoadingMotionDuration,animationTimingFunction:"ease",animationIterationCount:"infinite",content:'""'}}),P=e=>o({width:e*5,minWidth:e*5},v(e)),K=e=>{const{skeletonAvatarCls:t,color:n,controlHeight:r,controlHeightLG:l,controlHeightSM:i}=e;return{[`${t}`]:o({display:"inline-block",verticalAlign:"top",background:n},m(r)),[`${t}${t}-circle`]:{borderRadius:"50%"},[`${t}${t}-lg`]:o({},m(l)),[`${t}${t}-sm`]:o({},m(i))}},V=e=>{const{controlHeight:t,borderRadiusSM:n,skeletonInputCls:r,controlHeightLG:l,controlHeightSM:i,color:a}=e;return{[`${r}`]:o({display:"inline-block",verticalAlign:"top",background:a,borderRadius:n},P(t)),[`${r}-lg`]:o({},P(l)),[`${r}-sm`]:o({},P(i))}},M=e=>o({width:e},v(e)),J=e=>{const{skeletonImageCls:t,imageSizeBase:n,color:r,borderRadiusSM:l}=e;return{[`${t}`]:o(o({display:"flex",alignItems:"center",justifyContent:"center",verticalAlign:"top",background:r,borderRadius:l},M(n*2)),{[`${t}-path`]:{fill:"#bfbfbf"},[`${t}-svg`]:o(o({},M(n)),{maxWidth:n*4,maxHeight:n*4}),[`${t}-svg${t}-svg-circle`]:{borderRadius:"50%"}}),[`${t}${t}-circle`]:{borderRadius:"50%"}}},x=(e,t,n)=>{const{skeletonButtonCls:r}=e;return{[`${n}${r}-circle`]:{width:t,minWidth:t,borderRadius:"50%"},[`${n}${r}-round`]:{borderRadius:t}}},E=e=>o({width:e*2,minWidth:e*2},v(e)),Q=e=>{const{borderRadiusSM:t,skeletonButtonCls:n,controlHeight:r,controlHeightLG:l,controlHeightSM:i,color:a}=e;return o(o(o(o(o({[`${n}`]:o({display:"inline-block",verticalAlign:"top",background:a,borderRadius:t,width:r*2,minWidth:r*2},E(r))},x(e,r,n)),{[`${n}-lg`]:o({},E(l))}),x(e,l,`${n}-lg`)),{[`${n}-sm`]:o({},E(i))}),x(e,i,`${n}-sm`))},U=e=>{const{componentCls:t,skeletonAvatarCls:n,skeletonTitleCls:r,skeletonParagraphCls:l,skeletonButtonCls:i,skeletonInputCls:a,skeletonImageCls:d,controlHeight:y,controlHeightLG:f,controlHeightSM:p,color:g,padding:w,marginSM:B,borderRadius:s,skeletonTitleHeight:h,skeletonBlockRadius:u,skeletonParagraphLineHeight:$,controlHeightXS:k,skeletonParagraphMarginTop:S}=e;return{[`${t}`]:{display:"table",width:"100%",[`${t}-header`]:{display:"table-cell",paddingInlineEnd:w,verticalAlign:"top",[`${n}`]:o({display:"inline-block",verticalAlign:"top",background:g},m(y)),[`${n}-circle`]:{borderRadius:"50%"},[`${n}-lg`]:o({},m(f)),[`${n}-sm`]:o({},m(p))},[`${t}-content`]:{display:"table-cell",width:"100%",verticalAlign:"top",[`${r}`]:{width:"100%",height:h,background:g,borderRadius:u,[`+ ${l}`]:{marginBlockStart:p}},[`${l}`]:{padding:0,"> li":{width:"100%",height:$,listStyle:"none",background:g,borderRadius:u,"+ li":{marginBlockStart:k}}},[`${l}> li:last-child:not(:first-child):not(:nth-child(2))`]:{width:"61%"}},[`&-round ${t}-content`]:{[`${r}, ${l} > li`]:{borderRadius:s}}},[`${t}-with-avatar ${t}-content`]:{[`${r}`]:{marginBlockStart:B,[`+ ${l}`]:{marginBlockStart:S}}},[`${t}${t}-element`]:o(o(o(o({display:"inline-block",width:"auto"},Q(e)),K(e)),V(e)),J(e)),[`${t}${t}-block`]:{width:"100%",[`${i}`]:{width:"100%"},[`${a}`]:{width:"100%"}},[`${t}${t}-active`]:{[`
|
|
2
2
|
${r},
|
|
3
3
|
${l} > li,
|
|
4
4
|
${n},
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{E,b as C,r as b,I as m,J as y,U as a,R as g,c as i,K as u,V as h,F as w,Z as L,N as O,o as M,P as p,Q as S,S as A}from"./vendor-BvqAck49.js";import{u as I,_ as N}from"./index-DDBuc-Id.js";import{u as P}from"./useShellMode-CgR0wCYM.js";import{p as V}from"./parsers-UEvh_ShA.js";import{u as R}from"./chat-BZ3QdktE.js";import{a9 as j,ap as q,R as B}from"./icons-DP3uiYxy.js";const z=E("skills",()=>{const _=b(!1),t=b([]),n=b(""),e=b("all"),k=C(()=>{const o=new Set(["all"]);return t.value.forEach(l=>{l.category&&o.add(l.category),l.executionMode&&o.add(l.executionMode)}),[...o]}),v=C(()=>{let o=t.value;if(e.value!=="all"&&(o=o.filter(l=>l.category===e.value||l.executionMode===e.value)),n.value){const l=n.value.toLowerCase();o=o.filter(d=>d.name?.toLowerCase().includes(l)||d.description?.toLowerCase().includes(l)||d.title?.toLowerCase().includes(l))}return o});async function f(){const o=I();_.value=!0;try{if(P().isEmbedded){const c=await o.sendRaw({type:"skill.list"},2e4);c?.ok&&Array.isArray(c.result?.skills)?t.value=c.result.skills:(console.error("skill.list custom topic failed:",c?.error),t.value=[]);return}const{output:l}=await o.execute("skill list",2e4),d=V(l);t.value=d}catch(l){console.error("Failed to load skills:",l)}finally{_.value=!1}}return{loading:_,allSkills:t,searchQuery:n,selectedCategory:e,categories:k,filteredSkills:v,loadSkills:f}}),F={__name:"Skills",setup(_,{expose:t}){t();const n=z(),e=R(),k=O(),v=C(()=>n.categories.filter(r=>r!=="all").slice(0,6));function f(r){return{"built-in":"内置","cli-direct":"CLI",agent:"Agent","llm-query":"LLM",hybrid:"混合",workspace:"工作区",marketplace:"市场"}[r]||r}function o(r){return{"cli-direct":"CLI",agent:"Agent","llm-query":"LLM",hybrid:"混合","built-in":"内置"}[r]||r||"未知"}function l(r){return{"cli-direct":"cyan",agent:"purple","llm-query":"blue",hybrid:"orange","built-in":"green"}[r]||"default"}async function d(r){await e.createSession("agent"),k.push("/chat"),setTimeout(()=>{e.currentSessionId&&e.sendMessage(e.currentSessionId,`/skill run ${r}`)},300)}M(()=>{n.allSkills.length||n.loadSkills()});const c={skillsStore:n,chatStore:e,router:k,displayCategories:v,catLabel:f,modeLabel:o,modeColor:l,runSkill:d,computed:C,onMounted:M,get useRouter(){return O},get ReloadOutlined(){return B},get PlayCircleOutlined(){return q},get AppstoreOutlined(){return j},get useSkillsStore(){return z},get useChatStore(){return R}};return Object.defineProperty(c,"__isScriptSetup",{enumerable:!1,value:!0}),c}},Q={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},U={class:"page-sub"},T={style:{display:"flex",gap:"12px","margin-bottom":"20px","flex-wrap":"wrap"}},D={key:0,style:{"text-align":"center",padding:"60px"}},G={class:"skills-grid"},J={style:{display:"flex","justify-content":"space-between","align-items":"flex-start"}},K={style:{flex:"1","min-width":"0"}},W={style:{"font-weight":"500",color:"#e0e0e0","font-size":"14px","margin-bottom":"4px","font-family":"monospace"}},Z={style:{color:"var(--text-secondary)","font-size":"12px","line-height":"1.5"}},H={style:{"margin-left":"12px","flex-shrink":"0"}},X={style:{"margin-top":"10px",display:"flex","justify-content":"flex-end"}},Y={style:{"text-align":"center",padding:"60px",color:"var(--text-muted)"}};function $(_,t,n,e,k,v){const f=m("a-button"),o=m("a-input-search"),l=m("a-radio-button"),d=m("a-radio-group"),c=m("a-spin"),r=m("a-tag"),x=m("a-card");return p(),y("div",null,[a("div",Q,[a("div",null,[t[3]||(t[3]=a("h2",{class:"page-title"},"技能管理",-1)),a("p",U,g(e.skillsStore.allSkills.length)+" 个可用技能",1)]),i(f,{type:"primary",ghost:"",loading:e.skillsStore.loading,onClick:t[0]||(t[0]=s=>e.skillsStore.loadSkills())},{icon:u(()=>[i(e.ReloadOutlined)]),default:u(()=>[t[4]||(t[4]=S(" 刷新 ",-1))]),_:1},8,["loading"])]),h(" Search & Filter "),a("div",T,[i(o,{value:e.skillsStore.searchQuery,"onUpdate:value":t[1]||(t[1]=s=>e.skillsStore.searchQuery=s),placeholder:"搜索技能名称或描述...",style:{width:"300px"},"allow-clear":""},null,8,["value"]),i(d,{value:e.skillsStore.selectedCategory,"onUpdate:value":t[2]||(t[2]=s=>e.skillsStore.selectedCategory=s),"button-style":"solid"},{default:u(()=>[i(l,{value:"all"},{default:u(()=>[...t[5]||(t[5]=[S("全部",-1)])]),_:1}),(p(!0),y(w,null,L(e.displayCategories,s=>(p(),A(l,{key:s,value:s},{default:u(()=>[S(g(e.catLabel(s)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),h(" Loading State "),e.skillsStore.loading?(p(),y("div",D,[i(c,{size:"large"}),t[6]||(t[6]=a("div",{style:{color:"var(--text-muted)","margin-top":"12px"}},"加载技能中...",-1))])):e.skillsStore.filteredSkills.length?(p(),y(w,{key:1},[h(" Skills Grid "),a("div",G,[(p(!0),y(w,null,L(e.skillsStore.filteredSkills,s=>(p(),A(x,{key:s.name,class:"skill-card",size:"small",hoverable:"",style:{background:"var(--bg-card)","border-color":"var(--border-color)",cursor:"default"}},{default:u(()=>[a("div",J,[a("div",K,[a("div",W,g(s.name),1),a("div",Z,g(s.description||"暂无描述"),1)]),a("div",H,[i(r,{color:e.modeColor(s.executionMode),style:{"font-size":"10px"}},{default:u(()=>[S(g(e.modeLabel(s.executionMode)),1)]),_:2},1032,["color"])])]),a("div",X,[i(f,{size:"small",type:"primary",ghost:"",onClick:ee=>e.runSkill(s.name)},{icon:u(()=>[i(e.PlayCircleOutlined)]),default:u(()=>[t[7]||(t[7]=S(" 运行 ",-1))]),_:1},8,["onClick"])])]),_:2},1024))),128))])],2112)):(p(),y(w,{key:2},[h(" Empty State "),a("div",Y,[i(e.AppstoreOutlined,{style:{"font-size":"48px","margin-bottom":"16px",display:"block"}}),a("div",null,g(e.skillsStore.allSkills.length?"没有匹配的技能":"点击刷新加载技能列表"),1)])],2112))])}const ie=N(F,[["render",$],["__scopeId","data-v-d64d43f5"],["__file","/tmp/cc-web-panel-wxwyEA/repo/packages/web-panel/src/views/Skills.vue"]]);export{ie as default};
|