chainlesschain 0.161.8 → 0.161.9
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 -1
- package/src/assets/web-panel/.build-hash +1 -1
- package/src/assets/web-panel/assets/{AIOps-Uls1XIO4.js → AIOps-Cbnj25uU.js} +1 -1
- package/src/assets/web-panel/assets/{ActionButton-BpVrefl1.js → ActionButton-DY69UkxV.js} +1 -1
- package/src/assets/web-panel/assets/{Analytics-Z1Rgg9PA.js → Analytics-DUzoL75H.js} +2 -2
- package/src/assets/web-panel/assets/AppLayout-DATUppSv.js +1 -0
- package/src/assets/web-panel/assets/{AppLayout-P7jhSfLy.css → AppLayout-qr7ghxW7.css} +1 -1
- package/src/assets/web-panel/assets/{Audit-Co6yYgmX.js → Audit-CFJh6huz.js} +1 -1
- package/src/assets/web-panel/assets/{Backup-1IZDB3QD.js → Backup-CMTir4tV.js} +1 -1
- package/src/assets/web-panel/assets/{BaseInput-LYB_wIZP.js → BaseInput-BaWXBDdp.js} +1 -1
- package/src/assets/web-panel/assets/{Chat-D-6LDWGl.js → Chat-DjToexEx.js} +3 -3
- package/src/assets/web-panel/assets/{Checkbox-dLnnw7OE.js → Checkbox-DJnhKXhi.js} +1 -1
- package/src/assets/web-panel/assets/{Codegen-Wh6xypMx.js → Codegen-CgsgvRJX.js} +1 -1
- package/src/assets/web-panel/assets/{Col-BT8lkjSw.js → Col-MvMGDJAB.js} +1 -1
- package/src/assets/web-panel/assets/{Community-CdAeMHde.js → Community-q26VGOGu.js} +1 -1
- package/src/assets/web-panel/assets/{Compact-VsImrjgV.js → Compact-DyLYzWoX.js} +1 -1
- package/src/assets/web-panel/assets/{Compliance-PScuVx8d.js → Compliance-D_TF9eBc.js} +1 -1
- package/src/assets/web-panel/assets/{Cowork-qB8hRW0r.js → Cowork-B9bg988c.js} +3 -3
- package/src/assets/web-panel/assets/{Cron-CuSjuE-h.js → Cron-6k9vTFfd.js} +2 -2
- package/src/assets/web-panel/assets/{Crosschain-BqIRd8bv.js → Crosschain-B7fk2aHi.js} +1 -1
- package/src/assets/web-panel/assets/{DID-BT5BJ0DF.js → DID-XhCfTFm2.js} +2 -2
- package/src/assets/web-panel/assets/{Dashboard-BX-06zEm.js → Dashboard-Bqk7vtZM.js} +2 -2
- package/src/assets/web-panel/assets/{Dropdown-Pjo3G3Vf.js → Dropdown-CDOOZGv7.js} +1 -1
- package/src/assets/web-panel/assets/{Federation-BbnYcYhr.js → Federation-NajN4oRO.js} +1 -1
- package/src/assets/web-panel/assets/{FormItemContext-C3hf4K1_.js → FormItemContext-DgMHYlMB.js} +1 -1
- package/src/assets/web-panel/assets/{Git-Cmw6_HXW.js → Git-CZC5n1Zu.js} +2 -2
- package/src/assets/web-panel/assets/{Governance-BFBvB2G6.js → Governance-Br131eUW.js} +1 -1
- package/src/assets/web-panel/assets/{Inference-BBdX3YjM.js → Inference-BHlUfcT-.js} +1 -1
- package/src/assets/web-panel/assets/{KnowledgeGraph-BC-bcvNY.js → KnowledgeGraph-CByROhg-.js} +1 -1
- package/src/assets/web-panel/assets/{Logs-B9DuqFeW.js → Logs-D8Ghzk4B.js} +1 -1
- package/src/assets/web-panel/assets/{Marketplace-Bff1ja4R.js → Marketplace-CnjHPFm7.js} +1 -1
- package/src/assets/web-panel/assets/{McpTools-DnWqjtkb.js → McpTools-C_vszCBU.js} +1 -1
- package/src/assets/web-panel/assets/{Memory-C6YXBuM7.js → Memory-Cl5c_8In.js} +2 -2
- package/src/assets/web-panel/assets/MobileBridge-DkkMCDx9.css +1 -0
- package/src/assets/web-panel/assets/MobileBridge-K3KwwCKl.js +3 -0
- package/src/assets/web-panel/assets/{Mtc-r-J4WRfp.js → Mtc-NfZ8xzyu.js} +4 -4
- package/src/assets/web-panel/assets/{MtcAudit-DFqXLHn6.js → MtcAudit-BkktYSXj.js} +1 -1
- package/src/assets/web-panel/assets/Multisig-BLRYDn7_.css +1 -0
- package/src/assets/web-panel/assets/Multisig-qP51bs1T.js +1 -0
- package/src/assets/web-panel/assets/{NLProgramming-s5CrjYto.js → NLProgramming-BhFRuXyi.js} +1 -1
- package/src/assets/web-panel/assets/{Notes-TAbnvDCd.js → Notes-BpcAFy8i.js} +3 -3
- package/src/assets/web-panel/assets/{NotificationSettings-BZIKI219.js → NotificationSettings-DKNtYYeo.js} +1 -1
- package/src/assets/web-panel/assets/{Organization-BXbSljYa.js → Organization-C61VwQEW.js} +4 -4
- package/src/assets/web-panel/assets/{Overflow-O2RWHZxH.js → Overflow-WBloac1x.js} +1 -1
- package/src/assets/web-panel/assets/{P2P-B8jBZLh6.js → P2P-DGm7EvDg.js} +2 -2
- package/src/assets/web-panel/assets/{Permissions-Cexi8Jr6.js → Permissions-KFPtoOV6.js} +2 -2
- package/src/assets/web-panel/assets/{Pipeline-BwIBnNzj.js → Pipeline-CFjFtzZT.js} +1 -1
- package/src/assets/web-panel/assets/{Privacy-D-LOR9um.js → Privacy-T_Kewe_f.js} +1 -1
- package/src/assets/web-panel/assets/{ProjectSettings-DZ_fdRRJ.js → ProjectSettings-BQl8qTPQ.js} +1 -1
- package/src/assets/web-panel/assets/{Projects-Bis42Cb6.js → Projects-xGNn4Ov9.js} +2 -2
- package/src/assets/web-panel/assets/{Providers-DH6hY4Gx.js → Providers-ByuUztXe.js} +1 -1
- package/src/assets/web-panel/assets/{QuickAsk-Ur0bUXHK.js → QuickAsk-BwSXmXvL.js} +1 -1
- package/src/assets/web-panel/assets/{Recommend-CLDQjSf6.js → Recommend-Cp433_5Z.js} +1 -1
- package/src/assets/web-panel/assets/{Reputation-StG-zGil.js → Reputation-DE_JSjyi.js} +1 -1
- package/src/assets/web-panel/assets/{Row-DAWA1cwa.js → Row-DI36Fic1.js} +1 -1
- package/src/assets/web-panel/assets/{RssFeed-rb2CP-IS.js → RssFeed-DswpSUiI.js} +3 -3
- package/src/assets/web-panel/assets/{Search-Y9qsWaAE.js → Search-Crs2UKhh.js} +1 -1
- package/src/assets/web-panel/assets/{Security-BanZDWBe.js → Security-W8ViXXbq.js} +3 -3
- package/src/assets/web-panel/assets/{Services-DFOMZwqJ.js → Services-BIQdyLJM.js} +2 -2
- package/src/assets/web-panel/assets/{Skeleton-Cy48VmyC.js → Skeleton-DDiOevKX.js} +1 -1
- package/src/assets/web-panel/assets/{Skills-BqdkGRyO.js → Skills-v-Vw_jGa.js} +1 -1
- package/src/assets/web-panel/assets/{Sla-B8lXq9rJ.js → Sla-B-ULmz5m.js} +1 -1
- package/src/assets/web-panel/assets/{SpeechSettings-CmIkYpWT.js → SpeechSettings--8IIPHri.js} +1 -1
- package/src/assets/web-panel/assets/{SyncSettings-tZDaJZ0S.js → SyncSettings-D0QiEwJn.js} +1 -1
- package/src/assets/web-panel/assets/{Tasks-DxBlrylF.js → Tasks-BNSR9FlM.js} +1 -1
- package/src/assets/web-panel/assets/{Templates-ByshgJtu.js → Templates-CFVkaS-d.js} +1 -1
- package/src/assets/web-panel/assets/{Tenant-DCpEpRf1.js → Tenant-quU-tldS.js} +1 -1
- package/src/assets/web-panel/assets/{Tokens-BIUug_M_.js → Tokens-DTqFjS4k.js} +1 -1
- package/src/assets/web-panel/assets/{Trigger-DY4iT_Sv.js → Trigger-ZWVirxhN.js} +1 -1
- package/src/assets/web-panel/assets/{Trust-fAtm0ohe.js → Trust-DmaYf5tg.js} +1 -1
- package/src/assets/web-panel/assets/{UkeySign-CwbV_ITc.js → UkeySign-BeYyXtZW.js} +1 -1
- package/src/assets/web-panel/assets/{VideoEditing-CBJ5dw8E.js → VideoEditing-CRdDwD9C.js} +1 -1
- package/src/assets/web-panel/assets/{Wallet-B1fyWeNC.js → Wallet-H-38f7Pv.js} +4 -4
- package/src/assets/web-panel/assets/{WebAuthn-by6IZMeB.js → WebAuthn-CCQVzZ0W.js} +4 -4
- package/src/assets/web-panel/assets/{WorkflowEditor-DZkBKsSU.js → WorkflowEditor-B1RFE2oN.js} +1 -1
- package/src/assets/web-panel/assets/{chat-CKAWhBMH.js → chat-Z4UoBAeF.js} +1 -1
- package/src/assets/web-panel/assets/{colors-DgRS7Mb2.js → colors-AecMhEAZ.js} +1 -1
- package/src/assets/web-panel/assets/{compact-item-CQUZCSRU.js → compact-item-Dfhm05kA.js} +1 -1
- package/src/assets/web-panel/assets/{createContext-DgOciZHM.js → createContext-C7gBVuRm.js} +1 -1
- package/src/assets/web-panel/assets/{hasIn-DEXVOypF.js → hasIn-DQarK3iI.js} +1 -1
- package/src/assets/web-panel/assets/icons-B2mcO3YM.js +57 -0
- package/src/assets/web-panel/assets/{index-DjQzFo-O.js → index-1d6L3YWV.js} +1 -1
- package/src/assets/web-panel/assets/{index-jLpDpunJ.js → index-5I_kEh5L.js} +1 -1
- package/src/assets/web-panel/assets/{index-BjpS0vcp.js → index-5P_X26-m.js} +1 -1
- package/src/assets/web-panel/assets/{index-nMw96bEM.js → index-78eTUfD9.js} +1 -1
- package/src/assets/web-panel/assets/{index-BYrBEkTv.js → index-B1XdBIuG.js} +1 -1
- package/src/assets/web-panel/assets/{index-BQDGHgXQ.js → index-B52lOAOU.js} +1 -1
- package/src/assets/web-panel/assets/{index-Bo43zHIV.js → index-BLYMiBRw.js} +1 -1
- package/src/assets/web-panel/assets/{index-D8S-7oDQ.js → index-BxjOmfVA.js} +9 -9
- package/src/assets/web-panel/assets/{index-D2PDzVV6.js → index-C-4d1ug2.js} +1 -1
- package/src/assets/web-panel/assets/{index-D1dIizuf.js → index-C0kyGID6.js} +1 -1
- package/src/assets/web-panel/assets/{index-CS3fI6_d.js → index-C7nHW5ZW.js} +1 -1
- package/src/assets/web-panel/assets/{index-Ce57JGJq.js → index-CCUfW7hO.js} +1 -1
- package/src/assets/web-panel/assets/{index-nIXYg_tf.js → index-CFR1Scu8.js} +1 -1
- package/src/assets/web-panel/assets/{index-hfGZzUzb.js → index-CS7_x1br.js} +1 -1
- package/src/assets/web-panel/assets/{index-1EDbawpk.js → index-Ch9ExDNs.js} +1 -1
- package/src/assets/web-panel/assets/{index-CEt0RfAY.js → index-CiVezMja.js} +1 -1
- package/src/assets/web-panel/assets/index-Cp5G30tN.js +1 -0
- package/src/assets/web-panel/assets/index-CuPmKar9.js +1 -0
- package/src/assets/web-panel/assets/{index-CCuIY7Ff.js → index-CxDBoEkf.js} +1 -1
- package/src/assets/web-panel/assets/{index-B-g1My7q.js → index-Cy_80Fj7.js} +1 -1
- package/src/assets/web-panel/assets/{index-CH5YkJC9.js → index-D3Pxfwcc.js} +1 -1
- package/src/assets/web-panel/assets/{index-_Oe8Zr99.js → index-D4_1yL1c.js} +1 -1
- package/src/assets/web-panel/assets/{index-HE37tYPs.js → index-D841tepe.js} +1 -1
- package/src/assets/web-panel/assets/{index-ZOpqRGzA.js → index-DWbRHjgk.js} +1 -1
- package/src/assets/web-panel/assets/{index-DkBSIb9k.js → index-DX4CKtlL.js} +1 -1
- package/src/assets/web-panel/assets/{index-wPVZuwWm.js → index-DdtxWGjo.js} +2 -2
- package/src/assets/web-panel/assets/{index-DW_-28b4.js → index-DfA9S79c.js} +1 -1
- package/src/assets/web-panel/assets/{index-CetlLBjh.js → index-DfAZSzZc.js} +1 -1
- package/src/assets/web-panel/assets/{index-B1USa9q3.js → index-Dkh_4r1F.js} +1 -1
- package/src/assets/web-panel/assets/{index-DBRA1wFF.js → index-DtrMx44i.js} +1 -1
- package/src/assets/web-panel/assets/{index-BEnMJ3rw.js → index-Dy2fLm3i.js} +1 -1
- package/src/assets/web-panel/assets/index-L6kKxFAO.js +21 -0
- package/src/assets/web-panel/assets/{index-DpL-43E_.js → index-OqY41c_z.js} +1 -1
- package/src/assets/web-panel/assets/{index-D3tqZAdL.js → index-QgJGoGAK.js} +1 -1
- package/src/assets/web-panel/assets/{index-o6vVX9C_.js → index-YJxjR7t9.js} +1 -1
- package/src/assets/web-panel/assets/{index-CQepaPId.js → index-aHqD7CZz.js} +1 -1
- package/src/assets/web-panel/assets/{index-bRI-SvZ-.js → index-d0Iy6r2J.js} +1 -1
- package/src/assets/web-panel/assets/index-eoNKQdFC.js +1 -0
- package/src/assets/web-panel/assets/{index-BMx0R9Vw.js → index-nqKLHlmq.js} +1 -1
- package/src/assets/web-panel/assets/{initDefaultProps-BSTz5E8D.js → initDefaultProps-CDOGbz6v.js} +1 -1
- package/src/assets/web-panel/assets/{markdown-xjUYbPSW.js → markdown-CsiA8-E5.js} +1 -1
- package/src/assets/web-panel/assets/{markdown-vYH_ziAO.js → markdown-Yo_c6Krv.js} +1 -1
- package/src/assets/web-panel/assets/{motion-B10pjDA-.js → motion-ChIpIzUN.js} +1 -1
- package/src/assets/web-panel/assets/{move-B_PFOXXn.js → move-DbH3dyN8.js} +1 -1
- package/src/assets/web-panel/assets/{omit-Bf31gUOR.js → omit-BJ1K-IDI.js} +1 -1
- package/src/assets/web-panel/assets/{pickAttrs-CTOOvnV9.js → pickAttrs-B0q7EpvV.js} +1 -1
- package/src/assets/web-panel/assets/{placementArrow-DfXqIy1B.js → placementArrow-D7XkOUjs.js} +1 -1
- package/src/assets/web-panel/assets/{responsiveObserve-BonUzZVT.js → responsiveObserve-efcdE4ju.js} +1 -1
- package/src/assets/web-panel/assets/{slide-DtkoQrl3.js → slide-BgAktMzM.js} +1 -1
- package/src/assets/web-panel/assets/{statusUtils-BJlmtjwo.js → statusUtils-CV83LVbI.js} +1 -1
- package/src/assets/web-panel/assets/{styleChecker-CoQ2DFN_.js → styleChecker-D1npYi6G.js} +1 -1
- package/src/assets/web-panel/assets/{useFlexGapSupport-BD9H_ICR.js → useFlexGapSupport-DTH3yXTD.js} +1 -1
- package/src/assets/web-panel/assets/{useFs-DNCH6P7V.js → useFs-BEvSw9aX.js} +1 -1
- package/src/assets/web-panel/assets/{vnode-CAFNU-3N.js → vnode-Duw65sZ1.js} +1 -1
- package/src/assets/web-panel/assets/{zoom-Beg44Pk9.js → zoom-CLMtA8PG.js} +1 -1
- package/src/assets/web-panel/index.html +2 -2
- package/src/commands/marketplace.js +286 -0
- package/src/commands/multisig.js +471 -0
- package/src/commands/p2p.js +114 -7
- package/src/index.js +2 -0
- package/src/lib/multisig-runtime.js +160 -0
- package/src/lib/p2p-manager.js +96 -2
- package/src/assets/web-panel/assets/AppLayout-GvY1b95g.js +0 -1
- package/src/assets/web-panel/assets/icons-B2G69bhT.js +0 -57
- package/src/assets/web-panel/assets/index-DLnvncqr.js +0 -1
- package/src/assets/web-panel/assets/index-DsmrJv8Y.js +0 -21
- package/src/assets/web-panel/assets/index-Rvjbak1o.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{_ as Oe,u as je,b as Ne,d as g}from"./index-D8S-7oDQ.js";import{s as Pe}from"./community-parser-CO25nZFt.js";import{R as De,Q as Be,l as ie,f as Ee,h as ue,aR as Ve,w as Ke}from"./icons-B2G69bhT.js";import{o as Je,M as f,R as h,P as d,c as l,N as o,K as v,r as _,L as i,O as k,u as y,F as $,Y as P,Q as S,S as b,f as R,a as ce}from"./vendor-Ci2pTZ_t.js";function X(n){const r=Pe(n);if(!r)return null;try{return JSON.parse(r)}catch{}const s=r.match(/\{[\s\S]*\}|\[[\s\S]*\]/);if(!s)return null;try{return JSON.parse(s[0])}catch{return null}}const H=Object.freeze(["draft","published","deprecated","suspended"]),Qe=Object.freeze(["pending","running","success","failed","timeout"]);function D(n,r=0){return typeof n=="number"&&Number.isFinite(n)?n:r}function qe(n,r=0){if(!n||typeof n!="object")return null;const s=n.id||"";return s?{key:s,id:s,name:String(n.name||""),version:String(n.version||""),description:String(n.description||""),endpoint:n.endpoint||"",pricing:n.pricing??null,status:String(n.status||"draft").toLowerCase(),owner:n.owner||"",invocationCount:D(n.invocationCount??n.invocation_count,0),createdAt:n.createdAt??n.created_at??null,updatedAt:n.updatedAt??n.updated_at??null,_idx:r}:null}function We(n){const r=X(n);return Array.isArray(r)?r.map(qe).filter(Boolean):[]}function Ye(n,r=0){if(!n||typeof n!="object")return null;const s=n.id||"";return s?{key:s,id:s,serviceId:n.serviceId||n.service_id||"",callerId:n.callerId||n.caller_id||"",input:n.input??null,output:n.output??null,status:String(n.status||"success").toLowerCase(),durationMs:n.durationMs??n.duration_ms??null,error:n.error||"",createdAt:n.createdAt??n.created_at??null,_idx:r}:null}function Ge(n){const r=X(n);return Array.isArray(r)?r.map(Ye).filter(Boolean):[]}function He(n){const r={total:0,counts:{success:0,failed:0,timeout:0,pending:0,running:0},successRate:0,avgDurationMs:0,scopedToService:null},s=X(n);if(!s||typeof s!="object"||Array.isArray(s))return r;r.total=D(s.total,0),r.successRate=D(s.successRate??s.success_rate,0),r.avgDurationMs=D(s.avgDurationMs??s.avg_duration_ms,0),r.scopedToService=s.scopedToService??s.scoped_to_service??null;const C=s.counts&&typeof s.counts=="object"?s.counts:{};for(const w of Object.keys(r.counts))r.counts[w]=D(C[w],0);return r}function de(n){if(n==null||n==="")return"—";const r=typeof n=="number"?new Date(n):new Date(String(n));return isNaN(r.getTime())?String(n):r.toLocaleString("zh-CN",{hour12:!1})}const Xe={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},Ze={class:"page-title"},et={class:"page-sub"},tt={class:"filter-bar"},at={style:{color:"var(--text-primary)","font-weight":"500"}},lt={key:1,style:{color:"var(--text-secondary)","font-size":"11px","margin-top":"2px"}},ot={key:2,style:{color:"#722ed1","font-weight":"500"}},nt={key:0,style:{color:"var(--text-secondary)","font-family":"monospace","font-size":"11px"}},st={key:1,style:{color:"var(--text-muted)"}},rt={key:4,style:{color:"var(--text-secondary)","font-size":"11px"}},it={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},ut={class:"filter-bar"},ct={style:{color:"var(--text-primary)"}},dt={style:{color:"var(--text-muted)","font-size":"11px","font-family":"monospace"}},pt={key:0,style:{color:"var(--text-secondary)","font-family":"monospace","font-size":"11px"}},mt={key:1,style:{color:"var(--text-muted)"}},vt={key:0,style:{color:"var(--text-secondary)","font-size":"12px"}},ft={key:1,style:{color:"var(--text-muted)"}},kt={key:4,style:{color:"var(--text-secondary)","font-size":"11px"}},yt={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},bt={__name:"Marketplace",setup(n){const r=je(),{t:s}=Ne(),C=_(!1),w=_(!1),K=_(!1),z=_([]),J=_([]),I=_({total:0,counts:{success:0,failed:0,timeout:0,pending:0,running:0},successRate:0,avgDurationMs:0,scopedToService:null}),Q=_("services"),L=_(""),T=_(""),B=_(null),E=_(!1),V=_(!1),c=ce({name:"",version:"",description:"",endpoint:"",owner:"",status:"published"}),u=ce({serviceId:"",caller:"",status:"success",durationMs:null,error:""}),q=_(""),pe=R(()=>[{title:s("marketplace.serviceCols.name"),key:"name"},{title:s("marketplace.serviceCols.status"),key:"status",width:"120px"},{title:s("marketplace.serviceCols.invocationCount"),key:"invocationCount",width:"110px"},{title:s("marketplace.serviceCols.owner"),key:"owner",width:"180px"},{title:s("marketplace.serviceCols.createdAt"),key:"createdAt",width:"160px"},{title:s("marketplace.serviceCols.action"),key:"action",width:"180px"}]),me=R(()=>[{title:s("marketplace.invocationCols.service"),key:"service"},{title:s("marketplace.invocationCols.caller"),key:"caller",width:"180px"},{title:s("marketplace.invocationCols.status"),key:"status",width:"100px"},{title:s("marketplace.invocationCols.durationMs"),key:"durationMs",width:"110px"},{title:s("marketplace.invocationCols.createdAt"),key:"createdAt",width:"160px"}]),ve=R(()=>z.value.filter(e=>e.status==="published").length),fe=R(()=>I.value.successRate*100),ke=R(()=>{let e=z.value;if(L.value&&(e=e.filter(t=>t.status===L.value)),T.value){const t=T.value.toLowerCase();e=e.filter(p=>p.name.toLowerCase().includes(t))}return e}),ye=R(()=>B.value?J.value.filter(e=>e.serviceId===B.value):J.value);function M(e){const t=`marketplace.serviceStatusLabels.${e}`,p=s(t);return p===t?e:p}function be(e){return{draft:"default",published:"green",deprecated:"orange",suspended:"red"}[e]||"default"}function Z(e){const t=`marketplace.invocationStatusLabels.${e}`,p=s(t);return p===t?e:p}function _e(e){return{pending:"default",running:"processing",success:"green",failed:"red",timeout:"orange"}[e]||"default"}function ee(e){return e?e.length>28?e.slice(0,16)+"..."+e.slice(-8):e:""}function ge(e,t){return e?e.length>t?e.slice(0,t)+"...":e:""}function he(e){const t=z.value.find(p=>p.id===e);return t?t.name:s("marketplace.deletedService")}async function U(){C.value=!0;try{const[e,t,p]=await Promise.all([r.execute("marketplace list --limit 200 --json",1e4).catch(()=>({output:""})),r.execute("marketplace invocations --limit 200 --json",1e4).catch(()=>({output:""})),r.execute("marketplace stats --json",1e4).catch(()=>({output:""}))]);z.value=We(e.output),J.value=Ge(t.output),I.value=He(p.output)}catch(e){g.error(s("marketplace.msg.loadFailed")+": "+(e?.message||e))}finally{C.value=!1}}async function $e(){const e=c.name.trim();if(!e){g.warning(s("marketplace.msg.publishEmpty"));return}w.value=!0;try{const t=[`marketplace publish "${e.replace(/"/g,'\\"')}"`];c.version.trim()&&t.push(`--version "${c.version.trim().replace(/"/g,'\\"')}"`),c.description.trim()&&t.push(`--description "${c.description.trim().replace(/"/g,'\\"')}"`),c.endpoint.trim()&&t.push(`--endpoint "${c.endpoint.trim().replace(/"/g,'\\"')}"`),c.owner.trim()&&t.push(`--owner "${c.owner.trim().replace(/"/g,'\\"')}"`),t.push(`--status ${c.status}`),t.push("--json");const{output:p}=await r.execute(t.join(" "),15e3);if(/error|failed|失败/i.test(p)&&!/"id"/.test(p)){g.error(s("marketplace.msg.publishFailed")+": "+p.slice(0,120));return}g.success(s("marketplace.msg.publishSuccess")),E.value=!1,te(),await U()}catch(t){g.error(s("marketplace.msg.publishFailed")+": "+(t?.message||t))}finally{w.value=!1}}function xe(e){if(e.status!=="published"){g.warning(s("marketplace.msg.recordOnlyPublished"));return}u.serviceId=e.id,u.caller="",u.status="success",u.durationMs=null,u.error="",q.value=e.name,V.value=!0}async function Se(){K.value=!0;try{const e=[`marketplace record ${u.serviceId}`];u.caller.trim()&&e.push(`--caller "${u.caller.trim().replace(/"/g,'\\"')}"`),e.push(`--status ${u.status}`),u.durationMs!=null&&e.push(`--duration-ms ${u.durationMs}`),(u.status==="failed"||u.status==="timeout")&&u.error.trim()&&e.push(`--error "${u.error.trim().replace(/"/g,'\\"')}"`),e.push("--json");const{output:t}=await r.execute(e.join(" "),15e3);if(/error|failed|失败/i.test(t)&&!/"id"/.test(t)){g.error(s("marketplace.msg.recordFailed")+": "+t.slice(0,120));return}g.success(s("marketplace.msg.recordSuccess")),V.value=!1,Q.value="invocations",await U()}catch(e){g.error(s("marketplace.msg.recordFailed")+": "+(e?.message||e))}finally{K.value=!1}}async function Ce(e,t){if(t!==e.status)try{const{output:p}=await r.execute(`marketplace status ${e.id} ${t} --json`,1e4);if(/error|invalid|失败/i.test(p)&&!/"status"/.test(p)){g.error(s("marketplace.msg.transitionFailed")+": "+p.slice(0,120));return}g.success(s("marketplace.msg.transitionSuccess",{label:M(t)})),await U()}catch(p){g.error(s("marketplace.msg.transitionFailed")+": "+(p?.message||p))}}function te(){c.name="",c.version="",c.description="",c.endpoint="",c.owner="",c.status="published"}function we(){u.serviceId="",u.caller="",u.status="success",u.durationMs=null,u.error="",q.value=""}return Je(U),(e,t)=>{const p=v("a-button"),ze=v("a-space"),F=v("a-statistic"),O=v("a-card"),j=v("a-col"),Me=v("a-row"),ae=v("a-radio-button"),Ae=v("a-radio-group"),Re=v("a-input-search"),W=v("a-tag"),Ie=v("a-menu-item"),Le=v("a-menu"),Te=v("a-dropdown"),le=v("a-table"),oe=v("a-tab-pane"),Y=v("a-select-option"),G=v("a-select"),Ue=v("a-tabs"),N=v("a-input"),x=v("a-form-item"),ne=v("a-textarea"),se=v("a-form"),re=v("a-modal"),Fe=v("a-input-number");return i(),f("div",null,[h("div",Xe,[h("div",null,[h("h2",Ze,d(e.$t("marketplace.title")),1),h("p",et,d(e.$t("marketplace.subtitle")),1)]),l(ze,null,{default:o(()=>[l(p,{loading:C.value,onClick:U},{icon:o(()=>[l(y(De))]),default:o(()=>[k(" "+d(e.$t("marketplace.refresh")),1)]),_:1},8,["loading"]),l(p,{type:"primary",onClick:t[0]||(t[0]=a=>E.value=!0)},{icon:o(()=>[l(y(Be))]),default:o(()=>[k(" "+d(e.$t("marketplace.publish")),1)]),_:1})]),_:1})]),l(Me,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:o(()=>[l(j,{xs:12,sm:8,lg:5},{default:o(()=>[l(O,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:o(()=>[l(F,{title:e.$t("marketplace.stats.total"),value:z.value.length,"value-style":{color:"#1677ff",fontSize:"20px"}},{prefix:o(()=>[l(y(ie))]),_:1},8,["title","value"])]),_:1})]),_:1}),l(j,{xs:12,sm:8,lg:5},{default:o(()=>[l(O,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:o(()=>[l(F,{title:e.$t("marketplace.stats.published"),value:ve.value,"value-style":{color:"#52c41a",fontSize:"20px"}},{prefix:o(()=>[l(y(Ee))]),_:1},8,["title","value"])]),_:1})]),_:1}),l(j,{xs:12,sm:8,lg:5},{default:o(()=>[l(O,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:o(()=>[l(F,{title:e.$t("marketplace.stats.invocations"),value:I.value.total,"value-style":{color:"#722ed1",fontSize:"20px"}},{prefix:o(()=>[l(y(ue))]),_:1},8,["title","value"])]),_:1})]),_:1}),l(j,{xs:12,sm:8,lg:5},{default:o(()=>[l(O,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:o(()=>[l(F,{title:e.$t("marketplace.stats.successRate"),value:fe.value,suffix:"%",precision:1,"value-style":{color:I.value.successRate>=.9?"#52c41a":"#faad14",fontSize:"20px"}},{prefix:o(()=>[l(y(Ve))]),_:1},8,["title","value","value-style"])]),_:1})]),_:1}),l(j,{xs:24,sm:8,lg:4},{default:o(()=>[l(O,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:o(()=>[l(F,{title:e.$t("marketplace.stats.avgDuration"),value:I.value.avgDurationMs,suffix:"ms","value-style":{color:"#faad14",fontSize:"20px"}},{prefix:o(()=>[l(y(Ke))]),_:1},8,["title","value"])]),_:1})]),_:1})]),_:1}),l(Ue,{activeKey:Q.value,"onUpdate:activeKey":t[4]||(t[4]=a=>Q.value=a),class:"market-tabs"},{default:o(()=>[l(oe,{key:"services",tab:e.$t("marketplace.tabs.services")},{default:o(()=>[h("div",tt,[l(Ae,{value:L.value,"onUpdate:value":t[1]||(t[1]=a=>L.value=a),size:"small","button-style":"solid"},{default:o(()=>[l(ae,{value:""},{default:o(()=>[k(d(e.$t("marketplace.filter.all")),1)]),_:1}),(i(!0),f($,null,P(y(H),a=>(i(),S(ae,{key:a,value:a},{default:o(()=>[k(d(M(a)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"]),l(Re,{value:T.value,"onUpdate:value":t[2]||(t[2]=a=>T.value=a),placeholder:e.$t("marketplace.filter.namePlaceholder"),"allow-clear":"",style:{"max-width":"280px"}},null,8,["value","placeholder"])]),l(le,{columns:pe.value,"data-source":ke.value,pagination:{pageSize:20,showTotal:a=>e.$t("marketplace.table.totalSuffix",{n:a})},size:"small",loading:C.value,style:{background:"var(--bg-card)"}},{bodyCell:o(({column:a,record:m})=>[a.key==="name"?(i(),f($,{key:0},[h("span",at,d(m.name),1),m.version?(i(),S(W,{key:0,color:"blue",style:{"margin-left":"6px","font-size":"10px"}},{default:o(()=>[k(" v"+d(m.version),1)]),_:2},1024)):b("",!0),m.description?(i(),f("div",lt,d(ge(m.description,80)),1)):b("",!0)],64)):b("",!0),a.key==="status"?(i(),S(W,{key:1,color:be(m.status)},{default:o(()=>[k(d(M(m.status)),1)]),_:2},1032,["color"])):b("",!0),a.key==="invocationCount"?(i(),f("span",ot,d(m.invocationCount),1)):b("",!0),a.key==="owner"?(i(),f($,{key:3},[m.owner?(i(),f("span",nt,d(ee(m.owner)),1)):(i(),f("span",st,"—"))],64)):b("",!0),a.key==="createdAt"?(i(),f("span",rt,d(y(de)(m.createdAt)),1)):b("",!0),a.key==="action"?(i(),f($,{key:5},[l(p,{size:"small",type:"link",onClick:A=>xe(m)},{default:o(()=>[k(d(e.$t("marketplace.table.actionRecord")),1)]),_:1},8,["onClick"]),l(Te,{trigger:["click"]},{overlay:o(()=>[l(Le,{onClick:A=>Ce(m,A.key)},{default:o(()=>[(i(!0),f($,null,P(y(H),A=>(i(),S(Ie,{key:A,disabled:A===m.status},{default:o(()=>[k(d(M(A)),1)]),_:2},1032,["disabled"]))),128))]),_:2},1032,["onClick"])]),default:o(()=>[l(p,{size:"small",type:"link"},{default:o(()=>[k(d(e.$t("marketplace.table.statusDropdown")),1)]),_:1})]),_:2},1024)],64)):b("",!0)]),emptyText:o(()=>[h("div",it,[l(y(ie),{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),k(" "+d(L.value||T.value?e.$t("marketplace.table.emptyFiltered"):e.$t("marketplace.table.empty")),1)])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"]),l(oe,{key:"invocations",tab:e.$t("marketplace.tabs.invocations")},{default:o(()=>[h("div",ut,[l(G,{value:B.value,"onUpdate:value":t[3]||(t[3]=a=>B.value=a),placeholder:e.$t("marketplace.filter.byService"),"allow-clear":"",style:{width:"280px"},size:"small"},{default:o(()=>[(i(!0),f($,null,P(z.value,a=>(i(),S(Y,{key:a.id,value:a.id},{default:o(()=>[k(d(a.name)+" ("+d(M(a.status))+") ",1)]),_:2},1032,["value"]))),128))]),_:1},8,["value","placeholder"])]),l(le,{columns:me.value,"data-source":ye.value,pagination:{pageSize:20,showTotal:a=>e.$t("marketplace.table.totalSuffix",{n:a})},size:"small",loading:C.value,style:{background:"var(--bg-card)"}},{bodyCell:o(({column:a,record:m})=>[a.key==="service"?(i(),f($,{key:0},[h("span",ct,d(he(m.serviceId)),1),h("div",dt,d(m.serviceId.slice(0,8)),1)],64)):b("",!0),a.key==="caller"?(i(),f($,{key:1},[m.callerId?(i(),f("span",pt,d(ee(m.callerId)),1)):(i(),f("span",mt,"—"))],64)):b("",!0),a.key==="status"?(i(),S(W,{key:2,color:_e(m.status)},{default:o(()=>[k(d(Z(m.status)),1)]),_:2},1032,["color"])):b("",!0),a.key==="durationMs"?(i(),f($,{key:3},[m.durationMs!=null?(i(),f("span",vt,d(m.durationMs)+" ms ",1)):(i(),f("span",ft,"—"))],64)):b("",!0),a.key==="createdAt"?(i(),f("span",kt,d(y(de)(m.createdAt)),1)):b("",!0)]),emptyText:o(()=>[h("div",yt,[l(y(ue),{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),k(" "+d(e.$t("marketplace.table.emptyInvocations")),1)])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"])]),_:1},8,["activeKey"]),l(re,{open:E.value,"onUpdate:open":t[11]||(t[11]=a=>E.value=a),title:e.$t("marketplace.publish_modal.title"),"confirm-loading":w.value,width:560,"ok-text":e.$t("marketplace.publish_modal.ok"),"cancel-text":e.$t("marketplace.publish_modal.cancel"),onOk:$e,onCancel:te},{default:o(()=>[l(se,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:o(()=>[l(x,{label:e.$t("marketplace.publish_modal.nameLabel"),required:""},{default:o(()=>[l(N,{value:c.name,"onUpdate:value":t[5]||(t[5]=a=>c.name=a),placeholder:e.$t("marketplace.publish_modal.namePlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),l(x,{label:e.$t("marketplace.publish_modal.versionLabel")},{default:o(()=>[l(N,{value:c.version,"onUpdate:value":t[6]||(t[6]=a=>c.version=a),placeholder:e.$t("marketplace.publish_modal.versionPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),l(x,{label:e.$t("marketplace.publish_modal.descLabel")},{default:o(()=>[l(ne,{value:c.description,"onUpdate:value":t[7]||(t[7]=a=>c.description=a),"auto-size":{minRows:2,maxRows:5}},null,8,["value"])]),_:1},8,["label"]),l(x,{label:e.$t("marketplace.publish_modal.endpointLabel")},{default:o(()=>[l(N,{value:c.endpoint,"onUpdate:value":t[8]||(t[8]=a=>c.endpoint=a),placeholder:e.$t("marketplace.publish_modal.endpointPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),l(x,{label:e.$t("marketplace.publish_modal.ownerLabel")},{default:o(()=>[l(N,{value:c.owner,"onUpdate:value":t[9]||(t[9]=a=>c.owner=a),placeholder:e.$t("marketplace.publish_modal.ownerPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),l(x,{label:e.$t("marketplace.publish_modal.statusLabel")},{default:o(()=>[l(G,{value:c.status,"onUpdate:value":t[10]||(t[10]=a=>c.status=a)},{default:o(()=>[(i(!0),f($,null,P(y(H),a=>(i(),S(Y,{key:a,value:a},{default:o(()=>[k(d(M(a)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),l(re,{open:V.value,"onUpdate:open":t[16]||(t[16]=a=>V.value=a),title:e.$t("marketplace.record_modal.title",{name:q.value}),"confirm-loading":K.value,width:520,"ok-text":e.$t("marketplace.record_modal.ok"),"cancel-text":e.$t("marketplace.record_modal.cancel"),onOk:Se,onCancel:we},{default:o(()=>[l(se,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:o(()=>[l(x,{label:e.$t("marketplace.record_modal.callerLabel")},{default:o(()=>[l(N,{value:u.caller,"onUpdate:value":t[12]||(t[12]=a=>u.caller=a),placeholder:e.$t("marketplace.record_modal.callerPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),l(x,{label:e.$t("marketplace.record_modal.statusLabel")},{default:o(()=>[l(G,{value:u.status,"onUpdate:value":t[13]||(t[13]=a=>u.status=a)},{default:o(()=>[(i(!0),f($,null,P(y(Qe),a=>(i(),S(Y,{key:a,value:a},{default:o(()=>[k(d(Z(a)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),_:1},8,["label"]),l(x,{label:e.$t("marketplace.record_modal.durationLabel")},{default:o(()=>[l(Fe,{value:u.durationMs,"onUpdate:value":t[14]||(t[14]=a=>u.durationMs=a),min:0,max:36e5,style:{width:"100%"}},null,8,["value"])]),_:1},8,["label"]),u.status==="failed"||u.status==="timeout"?(i(),S(x,{key:0,label:e.$t("marketplace.record_modal.errorLabel")},{default:o(()=>[l(ne,{value:u.error,"onUpdate:value":t[15]||(t[15]=a=>u.error=a),"auto-size":{minRows:2,maxRows:4}},null,8,["value"])]),_:1},8,["label"])):b("",!0)]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"])])}}},xt=Oe(bt,[["__scopeId","data-v-72a2b91d"]]);export{xt as default};
|
|
1
|
+
import{_ as Oe,u as je,b as Ne,d as g}from"./index-BxjOmfVA.js";import{s as Pe}from"./community-parser-CO25nZFt.js";import{R as De,V as Ve,l as ie,f as Be,h as ue,aT as Ee,w as Ke}from"./icons-B2mcO3YM.js";import{o as Je,M as f,R as h,P as d,c as l,N as o,K as v,r as _,L as i,O as k,u as y,F as $,Y as P,Q as S,S as b,f as R,a as ce}from"./vendor-Ci2pTZ_t.js";function X(n){const r=Pe(n);if(!r)return null;try{return JSON.parse(r)}catch{}const s=r.match(/\{[\s\S]*\}|\[[\s\S]*\]/);if(!s)return null;try{return JSON.parse(s[0])}catch{return null}}const H=Object.freeze(["draft","published","deprecated","suspended"]),qe=Object.freeze(["pending","running","success","failed","timeout"]);function D(n,r=0){return typeof n=="number"&&Number.isFinite(n)?n:r}function Qe(n,r=0){if(!n||typeof n!="object")return null;const s=n.id||"";return s?{key:s,id:s,name:String(n.name||""),version:String(n.version||""),description:String(n.description||""),endpoint:n.endpoint||"",pricing:n.pricing??null,status:String(n.status||"draft").toLowerCase(),owner:n.owner||"",invocationCount:D(n.invocationCount??n.invocation_count,0),createdAt:n.createdAt??n.created_at??null,updatedAt:n.updatedAt??n.updated_at??null,_idx:r}:null}function We(n){const r=X(n);return Array.isArray(r)?r.map(Qe).filter(Boolean):[]}function Ye(n,r=0){if(!n||typeof n!="object")return null;const s=n.id||"";return s?{key:s,id:s,serviceId:n.serviceId||n.service_id||"",callerId:n.callerId||n.caller_id||"",input:n.input??null,output:n.output??null,status:String(n.status||"success").toLowerCase(),durationMs:n.durationMs??n.duration_ms??null,error:n.error||"",createdAt:n.createdAt??n.created_at??null,_idx:r}:null}function Ge(n){const r=X(n);return Array.isArray(r)?r.map(Ye).filter(Boolean):[]}function He(n){const r={total:0,counts:{success:0,failed:0,timeout:0,pending:0,running:0},successRate:0,avgDurationMs:0,scopedToService:null},s=X(n);if(!s||typeof s!="object"||Array.isArray(s))return r;r.total=D(s.total,0),r.successRate=D(s.successRate??s.success_rate,0),r.avgDurationMs=D(s.avgDurationMs??s.avg_duration_ms,0),r.scopedToService=s.scopedToService??s.scoped_to_service??null;const C=s.counts&&typeof s.counts=="object"?s.counts:{};for(const w of Object.keys(r.counts))r.counts[w]=D(C[w],0);return r}function de(n){if(n==null||n==="")return"—";const r=typeof n=="number"?new Date(n):new Date(String(n));return isNaN(r.getTime())?String(n):r.toLocaleString("zh-CN",{hour12:!1})}const Xe={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},Ze={class:"page-title"},et={class:"page-sub"},tt={class:"filter-bar"},at={style:{color:"var(--text-primary)","font-weight":"500"}},lt={key:1,style:{color:"var(--text-secondary)","font-size":"11px","margin-top":"2px"}},ot={key:2,style:{color:"#722ed1","font-weight":"500"}},nt={key:0,style:{color:"var(--text-secondary)","font-family":"monospace","font-size":"11px"}},st={key:1,style:{color:"var(--text-muted)"}},rt={key:4,style:{color:"var(--text-secondary)","font-size":"11px"}},it={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},ut={class:"filter-bar"},ct={style:{color:"var(--text-primary)"}},dt={style:{color:"var(--text-muted)","font-size":"11px","font-family":"monospace"}},pt={key:0,style:{color:"var(--text-secondary)","font-family":"monospace","font-size":"11px"}},mt={key:1,style:{color:"var(--text-muted)"}},vt={key:0,style:{color:"var(--text-secondary)","font-size":"12px"}},ft={key:1,style:{color:"var(--text-muted)"}},kt={key:4,style:{color:"var(--text-secondary)","font-size":"11px"}},yt={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},bt={__name:"Marketplace",setup(n){const r=je(),{t:s}=Ne(),C=_(!1),w=_(!1),K=_(!1),z=_([]),J=_([]),I=_({total:0,counts:{success:0,failed:0,timeout:0,pending:0,running:0},successRate:0,avgDurationMs:0,scopedToService:null}),q=_("services"),L=_(""),T=_(""),V=_(null),B=_(!1),E=_(!1),c=ce({name:"",version:"",description:"",endpoint:"",owner:"",status:"published"}),u=ce({serviceId:"",caller:"",status:"success",durationMs:null,error:""}),Q=_(""),pe=R(()=>[{title:s("marketplace.serviceCols.name"),key:"name"},{title:s("marketplace.serviceCols.status"),key:"status",width:"120px"},{title:s("marketplace.serviceCols.invocationCount"),key:"invocationCount",width:"110px"},{title:s("marketplace.serviceCols.owner"),key:"owner",width:"180px"},{title:s("marketplace.serviceCols.createdAt"),key:"createdAt",width:"160px"},{title:s("marketplace.serviceCols.action"),key:"action",width:"180px"}]),me=R(()=>[{title:s("marketplace.invocationCols.service"),key:"service"},{title:s("marketplace.invocationCols.caller"),key:"caller",width:"180px"},{title:s("marketplace.invocationCols.status"),key:"status",width:"100px"},{title:s("marketplace.invocationCols.durationMs"),key:"durationMs",width:"110px"},{title:s("marketplace.invocationCols.createdAt"),key:"createdAt",width:"160px"}]),ve=R(()=>z.value.filter(e=>e.status==="published").length),fe=R(()=>I.value.successRate*100),ke=R(()=>{let e=z.value;if(L.value&&(e=e.filter(t=>t.status===L.value)),T.value){const t=T.value.toLowerCase();e=e.filter(p=>p.name.toLowerCase().includes(t))}return e}),ye=R(()=>V.value?J.value.filter(e=>e.serviceId===V.value):J.value);function M(e){const t=`marketplace.serviceStatusLabels.${e}`,p=s(t);return p===t?e:p}function be(e){return{draft:"default",published:"green",deprecated:"orange",suspended:"red"}[e]||"default"}function Z(e){const t=`marketplace.invocationStatusLabels.${e}`,p=s(t);return p===t?e:p}function _e(e){return{pending:"default",running:"processing",success:"green",failed:"red",timeout:"orange"}[e]||"default"}function ee(e){return e?e.length>28?e.slice(0,16)+"..."+e.slice(-8):e:""}function ge(e,t){return e?e.length>t?e.slice(0,t)+"...":e:""}function he(e){const t=z.value.find(p=>p.id===e);return t?t.name:s("marketplace.deletedService")}async function U(){C.value=!0;try{const[e,t,p]=await Promise.all([r.execute("marketplace list --limit 200 --json",1e4).catch(()=>({output:""})),r.execute("marketplace invocations --limit 200 --json",1e4).catch(()=>({output:""})),r.execute("marketplace stats --json",1e4).catch(()=>({output:""}))]);z.value=We(e.output),J.value=Ge(t.output),I.value=He(p.output)}catch(e){g.error(s("marketplace.msg.loadFailed")+": "+(e?.message||e))}finally{C.value=!1}}async function $e(){const e=c.name.trim();if(!e){g.warning(s("marketplace.msg.publishEmpty"));return}w.value=!0;try{const t=[`marketplace publish "${e.replace(/"/g,'\\"')}"`];c.version.trim()&&t.push(`--version "${c.version.trim().replace(/"/g,'\\"')}"`),c.description.trim()&&t.push(`--description "${c.description.trim().replace(/"/g,'\\"')}"`),c.endpoint.trim()&&t.push(`--endpoint "${c.endpoint.trim().replace(/"/g,'\\"')}"`),c.owner.trim()&&t.push(`--owner "${c.owner.trim().replace(/"/g,'\\"')}"`),t.push(`--status ${c.status}`),t.push("--json");const{output:p}=await r.execute(t.join(" "),15e3);if(/error|failed|失败/i.test(p)&&!/"id"/.test(p)){g.error(s("marketplace.msg.publishFailed")+": "+p.slice(0,120));return}g.success(s("marketplace.msg.publishSuccess")),B.value=!1,te(),await U()}catch(t){g.error(s("marketplace.msg.publishFailed")+": "+(t?.message||t))}finally{w.value=!1}}function xe(e){if(e.status!=="published"){g.warning(s("marketplace.msg.recordOnlyPublished"));return}u.serviceId=e.id,u.caller="",u.status="success",u.durationMs=null,u.error="",Q.value=e.name,E.value=!0}async function Se(){K.value=!0;try{const e=[`marketplace record ${u.serviceId}`];u.caller.trim()&&e.push(`--caller "${u.caller.trim().replace(/"/g,'\\"')}"`),e.push(`--status ${u.status}`),u.durationMs!=null&&e.push(`--duration-ms ${u.durationMs}`),(u.status==="failed"||u.status==="timeout")&&u.error.trim()&&e.push(`--error "${u.error.trim().replace(/"/g,'\\"')}"`),e.push("--json");const{output:t}=await r.execute(e.join(" "),15e3);if(/error|failed|失败/i.test(t)&&!/"id"/.test(t)){g.error(s("marketplace.msg.recordFailed")+": "+t.slice(0,120));return}g.success(s("marketplace.msg.recordSuccess")),E.value=!1,q.value="invocations",await U()}catch(e){g.error(s("marketplace.msg.recordFailed")+": "+(e?.message||e))}finally{K.value=!1}}async function Ce(e,t){if(t!==e.status)try{const{output:p}=await r.execute(`marketplace status ${e.id} ${t} --json`,1e4);if(/error|invalid|失败/i.test(p)&&!/"status"/.test(p)){g.error(s("marketplace.msg.transitionFailed")+": "+p.slice(0,120));return}g.success(s("marketplace.msg.transitionSuccess",{label:M(t)})),await U()}catch(p){g.error(s("marketplace.msg.transitionFailed")+": "+(p?.message||p))}}function te(){c.name="",c.version="",c.description="",c.endpoint="",c.owner="",c.status="published"}function we(){u.serviceId="",u.caller="",u.status="success",u.durationMs=null,u.error="",Q.value=""}return Je(U),(e,t)=>{const p=v("a-button"),ze=v("a-space"),F=v("a-statistic"),O=v("a-card"),j=v("a-col"),Me=v("a-row"),ae=v("a-radio-button"),Ae=v("a-radio-group"),Re=v("a-input-search"),W=v("a-tag"),Ie=v("a-menu-item"),Le=v("a-menu"),Te=v("a-dropdown"),le=v("a-table"),oe=v("a-tab-pane"),Y=v("a-select-option"),G=v("a-select"),Ue=v("a-tabs"),N=v("a-input"),x=v("a-form-item"),ne=v("a-textarea"),se=v("a-form"),re=v("a-modal"),Fe=v("a-input-number");return i(),f("div",null,[h("div",Xe,[h("div",null,[h("h2",Ze,d(e.$t("marketplace.title")),1),h("p",et,d(e.$t("marketplace.subtitle")),1)]),l(ze,null,{default:o(()=>[l(p,{loading:C.value,onClick:U},{icon:o(()=>[l(y(De))]),default:o(()=>[k(" "+d(e.$t("marketplace.refresh")),1)]),_:1},8,["loading"]),l(p,{type:"primary",onClick:t[0]||(t[0]=a=>B.value=!0)},{icon:o(()=>[l(y(Ve))]),default:o(()=>[k(" "+d(e.$t("marketplace.publish")),1)]),_:1})]),_:1})]),l(Me,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:o(()=>[l(j,{xs:12,sm:8,lg:5},{default:o(()=>[l(O,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:o(()=>[l(F,{title:e.$t("marketplace.stats.total"),value:z.value.length,"value-style":{color:"#1677ff",fontSize:"20px"}},{prefix:o(()=>[l(y(ie))]),_:1},8,["title","value"])]),_:1})]),_:1}),l(j,{xs:12,sm:8,lg:5},{default:o(()=>[l(O,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:o(()=>[l(F,{title:e.$t("marketplace.stats.published"),value:ve.value,"value-style":{color:"#52c41a",fontSize:"20px"}},{prefix:o(()=>[l(y(Be))]),_:1},8,["title","value"])]),_:1})]),_:1}),l(j,{xs:12,sm:8,lg:5},{default:o(()=>[l(O,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:o(()=>[l(F,{title:e.$t("marketplace.stats.invocations"),value:I.value.total,"value-style":{color:"#722ed1",fontSize:"20px"}},{prefix:o(()=>[l(y(ue))]),_:1},8,["title","value"])]),_:1})]),_:1}),l(j,{xs:12,sm:8,lg:5},{default:o(()=>[l(O,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:o(()=>[l(F,{title:e.$t("marketplace.stats.successRate"),value:fe.value,suffix:"%",precision:1,"value-style":{color:I.value.successRate>=.9?"#52c41a":"#faad14",fontSize:"20px"}},{prefix:o(()=>[l(y(Ee))]),_:1},8,["title","value","value-style"])]),_:1})]),_:1}),l(j,{xs:24,sm:8,lg:4},{default:o(()=>[l(O,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:o(()=>[l(F,{title:e.$t("marketplace.stats.avgDuration"),value:I.value.avgDurationMs,suffix:"ms","value-style":{color:"#faad14",fontSize:"20px"}},{prefix:o(()=>[l(y(Ke))]),_:1},8,["title","value"])]),_:1})]),_:1})]),_:1}),l(Ue,{activeKey:q.value,"onUpdate:activeKey":t[4]||(t[4]=a=>q.value=a),class:"market-tabs"},{default:o(()=>[l(oe,{key:"services",tab:e.$t("marketplace.tabs.services")},{default:o(()=>[h("div",tt,[l(Ae,{value:L.value,"onUpdate:value":t[1]||(t[1]=a=>L.value=a),size:"small","button-style":"solid"},{default:o(()=>[l(ae,{value:""},{default:o(()=>[k(d(e.$t("marketplace.filter.all")),1)]),_:1}),(i(!0),f($,null,P(y(H),a=>(i(),S(ae,{key:a,value:a},{default:o(()=>[k(d(M(a)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"]),l(Re,{value:T.value,"onUpdate:value":t[2]||(t[2]=a=>T.value=a),placeholder:e.$t("marketplace.filter.namePlaceholder"),"allow-clear":"",style:{"max-width":"280px"}},null,8,["value","placeholder"])]),l(le,{columns:pe.value,"data-source":ke.value,pagination:{pageSize:20,showTotal:a=>e.$t("marketplace.table.totalSuffix",{n:a})},size:"small",loading:C.value,style:{background:"var(--bg-card)"}},{bodyCell:o(({column:a,record:m})=>[a.key==="name"?(i(),f($,{key:0},[h("span",at,d(m.name),1),m.version?(i(),S(W,{key:0,color:"blue",style:{"margin-left":"6px","font-size":"10px"}},{default:o(()=>[k(" v"+d(m.version),1)]),_:2},1024)):b("",!0),m.description?(i(),f("div",lt,d(ge(m.description,80)),1)):b("",!0)],64)):b("",!0),a.key==="status"?(i(),S(W,{key:1,color:be(m.status)},{default:o(()=>[k(d(M(m.status)),1)]),_:2},1032,["color"])):b("",!0),a.key==="invocationCount"?(i(),f("span",ot,d(m.invocationCount),1)):b("",!0),a.key==="owner"?(i(),f($,{key:3},[m.owner?(i(),f("span",nt,d(ee(m.owner)),1)):(i(),f("span",st,"—"))],64)):b("",!0),a.key==="createdAt"?(i(),f("span",rt,d(y(de)(m.createdAt)),1)):b("",!0),a.key==="action"?(i(),f($,{key:5},[l(p,{size:"small",type:"link",onClick:A=>xe(m)},{default:o(()=>[k(d(e.$t("marketplace.table.actionRecord")),1)]),_:1},8,["onClick"]),l(Te,{trigger:["click"]},{overlay:o(()=>[l(Le,{onClick:A=>Ce(m,A.key)},{default:o(()=>[(i(!0),f($,null,P(y(H),A=>(i(),S(Ie,{key:A,disabled:A===m.status},{default:o(()=>[k(d(M(A)),1)]),_:2},1032,["disabled"]))),128))]),_:2},1032,["onClick"])]),default:o(()=>[l(p,{size:"small",type:"link"},{default:o(()=>[k(d(e.$t("marketplace.table.statusDropdown")),1)]),_:1})]),_:2},1024)],64)):b("",!0)]),emptyText:o(()=>[h("div",it,[l(y(ie),{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),k(" "+d(L.value||T.value?e.$t("marketplace.table.emptyFiltered"):e.$t("marketplace.table.empty")),1)])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"]),l(oe,{key:"invocations",tab:e.$t("marketplace.tabs.invocations")},{default:o(()=>[h("div",ut,[l(G,{value:V.value,"onUpdate:value":t[3]||(t[3]=a=>V.value=a),placeholder:e.$t("marketplace.filter.byService"),"allow-clear":"",style:{width:"280px"},size:"small"},{default:o(()=>[(i(!0),f($,null,P(z.value,a=>(i(),S(Y,{key:a.id,value:a.id},{default:o(()=>[k(d(a.name)+" ("+d(M(a.status))+") ",1)]),_:2},1032,["value"]))),128))]),_:1},8,["value","placeholder"])]),l(le,{columns:me.value,"data-source":ye.value,pagination:{pageSize:20,showTotal:a=>e.$t("marketplace.table.totalSuffix",{n:a})},size:"small",loading:C.value,style:{background:"var(--bg-card)"}},{bodyCell:o(({column:a,record:m})=>[a.key==="service"?(i(),f($,{key:0},[h("span",ct,d(he(m.serviceId)),1),h("div",dt,d(m.serviceId.slice(0,8)),1)],64)):b("",!0),a.key==="caller"?(i(),f($,{key:1},[m.callerId?(i(),f("span",pt,d(ee(m.callerId)),1)):(i(),f("span",mt,"—"))],64)):b("",!0),a.key==="status"?(i(),S(W,{key:2,color:_e(m.status)},{default:o(()=>[k(d(Z(m.status)),1)]),_:2},1032,["color"])):b("",!0),a.key==="durationMs"?(i(),f($,{key:3},[m.durationMs!=null?(i(),f("span",vt,d(m.durationMs)+" ms ",1)):(i(),f("span",ft,"—"))],64)):b("",!0),a.key==="createdAt"?(i(),f("span",kt,d(y(de)(m.createdAt)),1)):b("",!0)]),emptyText:o(()=>[h("div",yt,[l(y(ue),{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),k(" "+d(e.$t("marketplace.table.emptyInvocations")),1)])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"])]),_:1},8,["activeKey"]),l(re,{open:B.value,"onUpdate:open":t[11]||(t[11]=a=>B.value=a),title:e.$t("marketplace.publish_modal.title"),"confirm-loading":w.value,width:560,"ok-text":e.$t("marketplace.publish_modal.ok"),"cancel-text":e.$t("marketplace.publish_modal.cancel"),onOk:$e,onCancel:te},{default:o(()=>[l(se,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:o(()=>[l(x,{label:e.$t("marketplace.publish_modal.nameLabel"),required:""},{default:o(()=>[l(N,{value:c.name,"onUpdate:value":t[5]||(t[5]=a=>c.name=a),placeholder:e.$t("marketplace.publish_modal.namePlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),l(x,{label:e.$t("marketplace.publish_modal.versionLabel")},{default:o(()=>[l(N,{value:c.version,"onUpdate:value":t[6]||(t[6]=a=>c.version=a),placeholder:e.$t("marketplace.publish_modal.versionPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),l(x,{label:e.$t("marketplace.publish_modal.descLabel")},{default:o(()=>[l(ne,{value:c.description,"onUpdate:value":t[7]||(t[7]=a=>c.description=a),"auto-size":{minRows:2,maxRows:5}},null,8,["value"])]),_:1},8,["label"]),l(x,{label:e.$t("marketplace.publish_modal.endpointLabel")},{default:o(()=>[l(N,{value:c.endpoint,"onUpdate:value":t[8]||(t[8]=a=>c.endpoint=a),placeholder:e.$t("marketplace.publish_modal.endpointPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),l(x,{label:e.$t("marketplace.publish_modal.ownerLabel")},{default:o(()=>[l(N,{value:c.owner,"onUpdate:value":t[9]||(t[9]=a=>c.owner=a),placeholder:e.$t("marketplace.publish_modal.ownerPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),l(x,{label:e.$t("marketplace.publish_modal.statusLabel")},{default:o(()=>[l(G,{value:c.status,"onUpdate:value":t[10]||(t[10]=a=>c.status=a)},{default:o(()=>[(i(!0),f($,null,P(y(H),a=>(i(),S(Y,{key:a,value:a},{default:o(()=>[k(d(M(a)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),l(re,{open:E.value,"onUpdate:open":t[16]||(t[16]=a=>E.value=a),title:e.$t("marketplace.record_modal.title",{name:Q.value}),"confirm-loading":K.value,width:520,"ok-text":e.$t("marketplace.record_modal.ok"),"cancel-text":e.$t("marketplace.record_modal.cancel"),onOk:Se,onCancel:we},{default:o(()=>[l(se,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:o(()=>[l(x,{label:e.$t("marketplace.record_modal.callerLabel")},{default:o(()=>[l(N,{value:u.caller,"onUpdate:value":t[12]||(t[12]=a=>u.caller=a),placeholder:e.$t("marketplace.record_modal.callerPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),l(x,{label:e.$t("marketplace.record_modal.statusLabel")},{default:o(()=>[l(G,{value:u.status,"onUpdate:value":t[13]||(t[13]=a=>u.status=a)},{default:o(()=>[(i(!0),f($,null,P(y(qe),a=>(i(),S(Y,{key:a,value:a},{default:o(()=>[k(d(Z(a)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),_:1},8,["label"]),l(x,{label:e.$t("marketplace.record_modal.durationLabel")},{default:o(()=>[l(Fe,{value:u.durationMs,"onUpdate:value":t[14]||(t[14]=a=>u.durationMs=a),min:0,max:36e5,style:{width:"100%"}},null,8,["value"])]),_:1},8,["label"]),u.status==="failed"||u.status==="timeout"?(i(),S(x,{key:0,label:e.$t("marketplace.record_modal.errorLabel")},{default:o(()=>[l(ne,{value:u.error,"onUpdate:value":t[15]||(t[15]=a=>u.error=a),"auto-size":{minRows:2,maxRows:4}},null,8,["value"])]),_:1},8,["label"])):b("",!0)]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"])])}}},xt=Oe(bt,[["__scopeId","data-v-72a2b91d"]]);export{xt as default};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{u as be,_ as Pe,b as Ee}from"./index-
|
|
1
|
+
import{u as be,_ as Pe,b as Ee}from"./index-BxjOmfVA.js";import{aq as Ne,R as qe,n as he,ac as Fe,f as Ie,ao as Je,ar as Be}from"./icons-B2mcO3YM.js";import{K as V,L as o,M as s,F as Y,Y as le,$ as We,P as a,S as k,R as y,c as v,N as f,O as M,Q as A,u as i,f as W,o as He,r as $}from"./vendor-Ci2pTZ_t.js";function ue(t){if(t&&typeof t.ok=="boolean"&&!t.ok)throw new Error(t.error||"MCP call failed");return t?.result??t??null}function Ke(){const t=be();async function e(m){const u=await t.sendRaw(m?{type:"mcp.list_tools",serverName:m}:{type:"mcp.list_tools"},15e3);return ue(u)}async function d(m,u,j={}){if(typeof m!="string"||!m)throw new Error("serverName is required");if(typeof u!="string"||!u)throw new Error("toolName is required");const w=await t.sendRaw({type:"mcp.call_tool",serverName:m,toolName:u,params:j},6e4);return ue(w)}async function c(m){const u=await t.sendRaw(m?{type:"mcp.list_resources",serverName:m}:{type:"mcp.list_resources"},15e3);return ue(u)}async function r(m,u){if(typeof m!="string"||!m)throw new Error("serverName is required");if(typeof u!="string"||!u)throw new Error("uri is required");const j=await t.sendRaw({type:"mcp.read_resource",serverName:m,uri:u},3e4);return ue(j)}return{listTools:e,callTool:d,listResources:c,readResource:r}}function ce(t){return!t||typeof t!="object"?[]:t.type!=="object"||!t.properties||typeof t.properties!="object"?[]:pe(t,[])}function pe(t,e){const d=new Set(Array.isArray(t.required)?t.required:[]),c=[],r=t.properties||{};for(const[m,u]of Object.entries(r)){if(!u||typeof u!="object")continue;const j=[...e,m],w=d.has(m);if(de(u.type)==="object"&&u.properties&&typeof u.properties=="object"){const O=pe(u,j);O.length===0?c.push(xe(j,u,w,"raw")):c.push(...O);continue}c.push(xe(j,u,w))}return c}function xe(t,e,d,c){const r=de(e.type),m=typeof e.description=="string"?e.description:"",u=t.join("."),j=e.title||t[t.length-1],w=Array.isArray(e.enum)&&e.enum.length>0;let T="raw",O=null,U;if(c)T=c;else if(w)T="select";else if(r==="string")T=Ye(e,m)?"textarea":"text";else if(r==="integer"||r==="number")T="number";else if(r==="boolean")T="boolean";else if(r==="array"){const P=e.items&&typeof e.items=="object"?e.items:null,x=P?de(P.type):null;x==="string"?(T="tags",O="string"):x==="object"&&P.properties&&typeof P.properties=="object"&&(T="objectList",U=pe(P,[]),U.length===0&&(T="raw",U=void 0))}return{name:u,path:t,type:r,widget:T,label:j,description:m,required:d,default:e.default,enum:w?e.enum.slice():void 0,itemsType:O,...U?{itemFields:U}:{}}}function de(t){return typeof t=="string"?t:Array.isArray(t)&&t.find(d=>d&&d!=="null")||"any"}function Ye(t,e){return t.format==="long-text"||t.format==="textarea"||typeof t.maxLength=="number"&&t.maxLength>200||e.length>120}function De(t){const e={};for(const d of t){if(d.default!==void 0){e[d.name]=me(d.default);continue}d.widget==="boolean"?e[d.name]=!1:d.widget==="tags"?e[d.name]=[]:d.widget==="number"?e[d.name]=null:d.widget==="raw"?e[d.name]="":d.widget==="objectList"?e[d.name]=[]:e[d.name]=""}return e}function me(t){if(Array.isArray(t))return t.map(me);if(t&&typeof t=="object"){const e={};for(const[d,c]of Object.entries(t))e[d]=me(c);return e}return t}function ke(t,e){const d={},c={};for(const r of t){const m=Array.isArray(r.path)?r.path:String(r.name).split("."),u=e?.[r.name];if(Qe(u,r.widget)){r.required&&(d[r.name]="必填");continue}if(r.widget==="number"){const w=typeof u=="number"?u:Number(u);if(Number.isNaN(w)){d[r.name]="必须是数字";continue}if(r.type==="integer"&&!Number.isInteger(w)){d[r.name]="必须是整数";continue}G(c,m,w);continue}if(r.widget==="boolean"){G(c,m,!!u);continue}if(r.widget==="tags"){const w=Array.isArray(u)?u:String(u).split(/[\n,]/).map(T=>T.trim()).filter(Boolean);G(c,m,w);continue}if(r.widget==="select"){if(Array.isArray(r.enum)&&!r.enum.includes(u)){d[r.name]="值不在允许的选项内";continue}G(c,m,u);continue}if(r.widget==="raw"){try{G(c,m,JSON.parse(u))}catch(w){d[r.name]=`JSON 解析失败:${w.message}`}continue}if(r.widget==="objectList"){if(!Array.isArray(u)){d[r.name]="必须是列表";continue}if(u.length===0)continue;const w=[];let T=!1;for(let O=0;O<u.length;O++){const U=u[O];if(!U||typeof U!="object"){d[`${r.name}[${O}]`]="必须是对象",T=!0;continue}const P=ke(r.itemFields||[],U);if(!P.ok){T=!0;for(const[x,S]of Object.entries(P.errors))d[`${r.name}[${O}].${x}`]=S;continue}w.push(P.params)}T||G(c,m,w);continue}G(c,m,u)}return Object.keys(d).length>0?{ok:!1,errors:d}:{ok:!0,params:c}}function G(t,e,d){if(e.length===1){t[e[0]]=d;return}let c=t;for(let r=0;r<e.length-1;r++){const m=e[r];(c[m]===void 0||typeof c[m]!="object"||Array.isArray(c[m]))&&(c[m]={}),c=c[m]}c[e[e.length-1]]=d}function Qe(t,e){return t==null?!0:e==="boolean"?!1:e==="number"?t===""||t===null:e==="tags"?Array.isArray(t)?t.length===0:String(t).trim()==="":e==="objectList"?t==null:typeof t=="string"?t.trim()==="":!1}const Ge={key:0,style:{color:"var(--text-muted)","font-size":"12px",padding:"8px 0"}},Xe={key:1,style:{display:"flex","flex-direction":"column",gap:"14px"}},Ze={key:0,style:{color:"var(--text-muted)","font-size":"10px","font-family":"monospace","margin-bottom":"4px"}},et={style:{"margin-bottom":"4px"}},tt={style:{"font-family":"monospace","font-size":"12px"}},ot={key:0,style:{color:"#ff4d4f","margin-left":"4px"}},nt={key:1,style:{color:"var(--text-muted)","font-size":"11px","margin-bottom":"4px"}},at={key:8},lt={style:{display:"flex","justify-content":"space-between","align-items":"center","margin-bottom":"8px"}},rt={style:{color:"var(--text-muted)","font-size":"11px"}},st={style:{display:"flex","flex-direction":"column",gap:"10px"}},it={style:{"font-family":"monospace","font-size":"11px"}},ut={key:0,style:{color:"#ff4d4f","margin-left":"4px"}},ct={key:5,style:{color:"#ff4d4f","font-size":"11px"}},dt={key:10,style:{color:"#ff4d4f","font-size":"11px","margin-top":"4px"}},mt={__name:"McpToolForm",props:{schema:{type:Object,default:null},modelValue:{type:Object,default:()=>({})},errors:{type:Object,default:()=>({})}},emits:["update:modelValue"],setup(t,{expose:e,emit:d}){const c=t,r=d,m=W(()=>ce(c.schema));function u(x){const S=Math.max(0,(x.path?.length??1)-1);return S>0?`margin-left: ${S*16}px;`:""}let j=null;function w(x){const S=x.path||[x.name];if(S.length<=1)return j=null,"";const L=S.slice(0,-1).join(".");return L===j?"":(j=L,L)}function T(x,S){r("update:modelValue",{...c.modelValue,[x]:S})}function O(x,S,L,N){const H=Array.isArray(c.modelValue[x])?c.modelValue[x].slice():[];H[S]={...H[S]||{},[L]:N},r("update:modelValue",{...c.modelValue,[x]:H})}function U(x){const S=Array.isArray(c.modelValue[x.name])?c.modelValue[x.name].slice():[],L={};for(const N of x.itemFields||[])N.default!==void 0?L[N.name]=N.default:N.widget==="boolean"?L[N.name]=!1:N.widget==="number"?L[N.name]=null:L[N.name]="";S.push(L),r("update:modelValue",{...c.modelValue,[x.name]:S})}function P(x,S){const L=Array.isArray(c.modelValue[x])?c.modelValue[x].slice():[];L.splice(S,1),r("update:modelValue",{...c.modelValue,[x]:L})}return e({fields:m}),(x,S)=>{const L=V("a-tag"),N=V("a-input"),H=V("a-textarea"),X=V("a-input-number"),F=V("a-switch"),D=V("a-select"),K=V("a-button");return m.value.length?(o(),s("div",Xe,[(o(!0),s(Y,null,le(m.value,n=>(o(),s("div",{key:n.name,style:We(u(n))},[w(n)!==""?(o(),s("div",Ze,a(w(n)),1)):k("",!0),y("div",et,[y("span",tt,a(n.label),1),n.required?(o(),s("span",ot,"*")):k("",!0),v(L,{size:"small",style:{"margin-left":"8px","font-size":"10px"}},{default:f(()=>[M(a(n.type)+a(n.itemsType?`<${n.itemsType}>`:""),1)]),_:2},1024)]),n.description?(o(),s("div",nt,a(n.description),1)):k("",!0),n.widget==="text"?(o(),A(N,{key:2,value:t.modelValue[n.name]??"",placeholder:n.default!==void 0?`默认 ${n.default}`:"",size:"small","onUpdate:value":z=>T(n.name,z)},null,8,["value","placeholder","onUpdate:value"])):n.widget==="textarea"?(o(),A(H,{key:3,value:t.modelValue[n.name]??"",rows:4,placeholder:n.default!==void 0?`默认 ${n.default}`:"","onUpdate:value":z=>T(n.name,z)},null,8,["value","placeholder","onUpdate:value"])):n.widget==="number"?(o(),A(X,{key:4,value:t.modelValue[n.name],size:"small",placeholder:n.default!==void 0?`默认 ${n.default}`:"",style:{width:"100%"},"onUpdate:value":z=>T(n.name,z)},null,8,["value","placeholder","onUpdate:value"])):n.widget==="boolean"?(o(),A(F,{key:5,checked:!!t.modelValue[n.name],"onUpdate:checked":z=>T(n.name,z)},null,8,["checked","onUpdate:checked"])):n.widget==="select"?(o(),A(D,{key:6,value:t.modelValue[n.name]??void 0,options:(n.enum||[]).map(z=>({label:String(z),value:z})),size:"small",style:{width:"100%"},placeholder:n.default!==void 0?`默认 ${n.default}`:"请选择","onUpdate:value":z=>T(n.name,z)},null,8,["value","options","placeholder","onUpdate:value"])):n.widget==="tags"?(o(),A(D,{key:7,value:Array.isArray(t.modelValue[n.name])?t.modelValue[n.name]:[],mode:"tags",size:"small",style:{width:"100%"},placeholder:"输入后回车添加","token-separators":[",",`
|
|
2
2
|
`],"onUpdate:value":z=>T(n.name,z)},null,8,["value","onUpdate:value"])):n.widget==="objectList"?(o(),s("div",at,[(o(!0),s(Y,null,le(Array.isArray(t.modelValue[n.name])?t.modelValue[n.name]:[],(z,I)=>(o(),s("div",{key:I,style:{border:"1px dashed var(--border-color)",padding:"10px","border-radius":"4px","margin-bottom":"8px",background:"var(--bg-card-hover)"}},[y("div",lt,[y("span",rt,"#"+a(I+1),1),v(K,{size:"small",type:"link",danger:"",onClick:C=>P(n.name,I)},{default:f(()=>[...S[0]||(S[0]=[M(" 删除 ",-1)])]),_:1},8,["onClick"])]),y("div",st,[(o(!0),s(Y,null,le(n.itemFields||[],C=>(o(),s("div",{key:C.name,style:{display:"flex","flex-direction":"column",gap:"4px"}},[y("div",null,[y("span",it,a(C.label),1),C.required?(o(),s("span",ut,"*")):k("",!0),v(L,{size:"small",style:{"margin-left":"6px","font-size":"10px"}},{default:f(()=>[M(a(C.type),1)]),_:2},1024)]),C.widget==="text"?(o(),A(N,{key:0,value:z[C.name]??"",size:"small","onUpdate:value":E=>O(n.name,I,C.name,E)},null,8,["value","onUpdate:value"])):C.widget==="number"?(o(),A(X,{key:1,value:z[C.name],size:"small",style:{width:"100%"},"onUpdate:value":E=>O(n.name,I,C.name,E)},null,8,["value","onUpdate:value"])):C.widget==="boolean"?(o(),A(F,{key:2,checked:!!z[C.name],"onUpdate:checked":E=>O(n.name,I,C.name,E)},null,8,["checked","onUpdate:checked"])):C.widget==="select"?(o(),A(D,{key:3,value:z[C.name]??void 0,options:(C.enum||[]).map(E=>({label:String(E),value:E})),size:"small",style:{width:"100%"},"onUpdate:value":E=>O(n.name,I,C.name,E)},null,8,["value","options","onUpdate:value"])):(o(),A(H,{key:4,value:typeof z[C.name]=="string"?z[C.name]:"",rows:2,placeholder:"复杂子字段 — 请用 JSON 模式",style:{"font-family":"monospace","font-size":"11px"},"onUpdate:value":E=>O(n.name,I,C.name,E)},null,8,["value","onUpdate:value"])),t.errors[`${n.name}[${I}].${C.name}`]?(o(),s("div",ct,a(t.errors[`${n.name}[${I}].${C.name}`]),1)):k("",!0)]))),128))])]))),128)),v(K,{size:"small",type:"dashed",block:"",onClick:z=>U(n)},{icon:f(()=>[v(i(Ne))]),default:f(()=>[S[1]||(S[1]=M(" 添加项 ",-1))]),_:1},8,["onClick"])])):(o(),A(H,{key:9,value:t.modelValue[n.name]??"",rows:3,placeholder:'复杂类型 — 请输入 JSON,如 {"key":"value"}',style:{"font-family":"monospace","font-size":"12px"},"onUpdate:value":z=>T(n.name,z)},null,8,["value","onUpdate:value"])),t.errors[n.name]?(o(),s("div",dt,a(t.errors[n.name]),1)):k("",!0)],4))),128))])):(o(),s("div",Ge," 此工具的 inputSchema 不是 type:object — 请用 JSON 模式编辑。 "))}}},pt={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},ft={class:"page-title"},yt={class:"page-sub"},vt={key:0,style:{"text-align":"center",padding:"30px"}},_t={key:1,style:{"text-align":"center",padding:"30px",color:"var(--text-muted)"}},gt={style:{background:"var(--bg-card-hover)",padding:"2px 6px","border-radius":"3px"}},ht={key:2,class:"servers-grid"},xt={style:{display:"flex","align-items":"center",gap:"10px","margin-bottom":"6px"}},bt={style:{color:"#e0e0e0","font-weight":"500","font-family":"monospace"}},kt={key:0,style:{color:"var(--text-secondary)","font-size":"11px","font-family":"monospace"}},wt={key:1,style:{color:"var(--text-secondary)","font-size":"11px","margin-top":"4px"}},Tt={key:0,style:{"text-align":"center",padding:"30px"}},zt={key:0,style:{color:"#91caff","font-family":"monospace","font-size":"12px"}},St={key:1,style:{color:"var(--text-muted)","font-size":"11px"}},Ct={style:{padding:"30px",color:"var(--text-muted)"}},$t={key:0,style:{"text-align":"center",padding:"30px"}},At={key:1,style:{"text-align":"center",padding:"30px",color:"var(--text-muted)"}},Vt={key:0,style:{color:"#87d068","font-family":"monospace","font-size":"11px","word-break":"break-all"}},jt={key:1,style:{color:"var(--text-muted)","font-size":"10px"}},Ot={style:{padding:"30px",color:"var(--text-muted)"}},Ut={key:0,style:{display:"flex","flex-direction":"column",gap:"12px"}},Lt={style:{color:"var(--text-muted)","font-size":"11px","margin-bottom":"4px"}},Rt={style:{"font-family":"monospace","font-size":"13px"}},Mt={style:{color:"#91caff"}},Pt={key:0},Et={style:{color:"var(--text-muted)","font-size":"11px","margin-bottom":"4px"}},Nt={style:{"font-size":"12px"}},qt={key:1},Ft={style:{color:"var(--text-muted)","font-size":"11px","margin-bottom":"4px"}},It={style:{background:"var(--bg-card-hover)",padding:"8px","border-radius":"4px","font-size":"11px","max-height":"140px",overflow:"auto",margin:"0"}},Jt={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"4px"}},Bt={style:{color:"var(--text-muted)","font-size":"11px"}},Wt={key:0,style:{color:"#ff4d4f","font-size":"11px","margin-top":"4px"}},Ht={key:2,style:{background:"#2a1517",border:"1px solid #5c2426",padding:"8px","border-radius":"4px"}},Kt={style:{color:"#ff4d4f","font-size":"11px","font-weight":"500","margin-bottom":"4px"}},Yt={style:{color:"#ff7875","font-size":"11px",margin:"0","white-space":"pre-wrap"}},Dt={key:3},Qt={style:{color:"var(--text-muted)","font-size":"11px","margin-bottom":"4px"}},Gt={style:{background:"var(--bg-card-hover)",padding:"8px","border-radius":"4px","font-size":"11px","max-height":"240px",overflow:"auto",margin:"0","white-space":"pre-wrap"}},Xt={key:0,style:{display:"flex","flex-direction":"column",gap:"12px"}},Zt={style:{color:"var(--text-muted)","font-size":"11px","margin-bottom":"4px"}},eo={style:{"font-family":"monospace","font-size":"12px","word-break":"break-all"}},to={style:{color:"#87d068"}},oo={key:0},no={style:{color:"var(--text-muted)","font-size":"11px","margin-bottom":"4px"}},ao={style:{"font-size":"12px"}},lo={key:1,style:{"text-align":"center",padding:"20px"}},ro={key:2,style:{background:"#2a1517",border:"1px solid #5c2426",padding:"8px","border-radius":"4px"}},so={style:{color:"#ff4d4f","font-size":"11px","font-weight":"500","margin-bottom":"4px"}},io={style:{color:"#ff7875","font-size":"11px",margin:"0","white-space":"pre-wrap"}},uo={key:3},co={style:{color:"var(--text-muted)","font-size":"11px","margin-bottom":"4px"}},mo={style:{display:"flex",gap:"8px","align-items":"center","margin-bottom":"4px"}},po={key:1,style:{color:"var(--text-muted)","font-size":"10px","font-family":"monospace"}},fo={key:0,style:{background:"var(--bg-card-hover)",padding:"8px","border-radius":"4px","font-size":"11px","max-height":"360px",overflow:"auto",margin:"0","white-space":"pre-wrap","word-break":"break-all"}},yo={key:1,style:{"font-size":"11px",color:"var(--text-muted)","font-style":"italic"}},vo={key:2,style:{"font-size":"11px",color:"var(--text-muted)","font-style":"italic"}},_o={__name:"McpTools",setup(t){const{t:e}=Ee(),d=be(),c=Ke(),r=$(!1),m=$([]),u=$([]),j=$(""),w=$(""),T=W(()=>{if(!j.value)return u.value;const p=j.value.toLowerCase();return u.value.filter(l=>l.name?.toLowerCase().includes(p)||l.description?.toLowerCase().includes(p))}),O=W(()=>[{title:e("mcpTools.toolColumns.name"),key:"name",dataIndex:"name",width:"28%"},{title:e("mcpTools.toolColumns.server"),key:"server",dataIndex:"server",width:"18%"},{title:e("mcpTools.toolColumns.description"),dataIndex:"description",ellipsis:!0},{title:e("mcpTools.toolColumns.action"),key:"action",width:110}]),U=$([]),P=$(""),x=$(!1),S=$(!1),L=W(()=>[{title:e("mcpTools.resourceColumns.uri"),key:"uri",dataIndex:"uri"},{title:e("mcpTools.resourceColumns.server"),key:"server",dataIndex:"server",width:"15%"},{title:e("mcpTools.resourceColumns.mime"),key:"mimeType",dataIndex:"mimeType",width:"15%"},{title:e("mcpTools.resourceColumns.action"),key:"action",width:90}]),N=W(()=>{if(!P.value)return U.value;const p=P.value.toLowerCase();return U.value.filter(l=>l.uri?.toLowerCase().includes(p)||l.name?.toLowerCase().includes(p)||l.description?.toLowerCase().includes(p))});async function H(){if(!x.value){x.value=!0;try{const p=await c.listResources();if(!p||!Array.isArray(p.servers)){U.value=[];return}const l=[];for(const g of p.servers)if(Array.isArray(g.resources))for(const h of g.resources)l.push({key:`${g.name}.${h.uri}`,uri:h.uri,name:h.name||"",description:h.description||"",mimeType:h.mimeType||null,server:g.name});U.value=l,S.value=!0}catch(p){console.error("listResources failed:",p),U.value=[]}finally{x.value=!1}}}const X=$(!1),F=$(null),D=$(!1),K=$([]),n=$(""),z=W(()=>F.value?e("mcpTools.read.modalTitle",{server:F.value.server}):e("mcpTools.read.fallbackTitle"));async function I(p){F.value=p,K.value=[],n.value="",X.value=!0,D.value=!0;try{const l=await c.readResource(p.server,p.uri);l&&Array.isArray(l.contents)?K.value=l.contents:K.value=l?[l]:[]}catch(l){n.value=l?.message||String(l)}finally{D.value=!1}}function C(){X.value=!1}const E=$(!1),R=$(null),oe=$("form"),re=$({}),se=$({}),ie=$("{}"),ne=$(!1),Q=$(null),ae=$(""),we=W(()=>ce(R.value?.inputSchema||null).length>0),Te=W(()=>R.value?e("mcpTools.run.modalTitle",{server:R.value.server,tool:R.value.name}):e("mcpTools.run.fallbackTitle")),ze=W(()=>{if(!R.value?.inputSchema)return"";try{return JSON.stringify(R.value.inputSchema,null,2)}catch{return String(R.value.inputSchema)}}),Se=W(()=>{if(Q.value===null)return"";try{return JSON.stringify(Q.value,null,2)}catch{return String(Q.value)}}),Z=$("");function Ce(p){R.value=p,ie.value="{}",Q.value=null,ae.value="",Z.value="",se.value={};const l=ce(p?.inputSchema||null);oe.value=l.length>0?"form":"json",re.value=De(l),E.value=!0}function $e(){E.value=!1}async function Ae(){if(!R.value||ne.value)return;Z.value="",se.value={};let p={};if(oe.value==="form"){const l=ce(R.value.inputSchema||null),g=ke(l,re.value);if(!g.ok){se.value=g.errors;return}p=g.params}else{const l=(ie.value||"").trim();if(l){try{p=JSON.parse(l)}catch(g){Z.value=g.message||"invalid JSON";return}if(p===null||typeof p!="object"||Array.isArray(p)){Z.value=e("mcpTools.run.paramsMustBeObject");return}}}ne.value=!0,ae.value="",Q.value=null;try{const l=await c.callTool(R.value.server,R.value.name,p);Q.value=l}catch(l){ae.value=l?.message||String(l)}finally{ne.value=!1}}async function Ve(){const p=await c.listTools();if(!p||!Array.isArray(p.servers))return!1;m.value=p.servers.map(g=>({key:g.name,name:g.name,command:"",args:[],description:g.state?`state: ${g.state}`:"",error:g.error||null}));const l=[];for(const g of p.servers)if(Array.isArray(g.tools))for(const h of g.tools)l.push({key:`${g.name}.${h.name}`,name:h.name,description:h.description||"",server:g.name,inputSchema:h.inputSchema||null});return u.value=l,!0}async function fe(){r.value=!0;try{try{if(await Ve()){w.value="topic";return}}catch(g){const h=g?.message||"";h.includes("mcp_unavailable")||h.includes("no_handler")||h.includes("UNKNOWN_TYPE")||console.error("MCP topic load failed:",g)}const[p,l]=await Promise.all([d.execute("mcp servers",15e3).catch(()=>({output:""})),d.execute("mcp tools",15e3).catch(()=>({output:""}))]);m.value=je(p.output),u.value=Oe(l.output),w.value="cli"}catch(p){console.error("MCP load failed:",p)}finally{r.value=!1,w.value==="topic"?H():(U.value=[],S.value=!1)}}function je(p){const l=[],g=p.split(`
|
|
3
3
|
`);let h=null;for(const q of g){const b=q.trim();if(!b||b.startsWith("─")||b.startsWith("MCP"))continue;const J=b.match(/^[●•]?\s*([a-z][a-z0-9-_]+)\s*$/i)||b.match(/^([a-z][a-z0-9-_]+)\s*[::]/);J?(h&&l.push(h),h={key:J[1],name:J[1],command:"",args:[],description:""}):h&&(b.startsWith("command:")||b.startsWith("Command:")?h.command=b.replace(/^command:\s*/i,"").trim():b.startsWith("args:")||b.startsWith("Args:")?h.args=b.replace(/^args:\s*/i,"").split(",").map(ee=>ee.trim()):h.description||(h.description=b.slice(0,80)))}return h&&l.push(h),!l.length&&p.trim()&&!p.includes("No MCP")&&p.split(`
|
|
4
4
|
`).filter(b=>b.trim()&&!b.includes("─")).slice(0,10).forEach((b,J)=>{l.push({key:J,name:b.trim(),command:"",args:[],description:""})}),l}function Oe(p){const l=[],g=p.split(`
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{_ as X,b as Z,u as ee,d as C}from"./index-
|
|
2
|
-
`);for(const k of u){const d=k.trim();if(!d||d.startsWith("─")||d.startsWith("Recall"))continue;const y=d.match(/^[-●•\d.]+\s+(.+)/);if(y){const w=y[1].trim();w.length>5&&e.push({id:e.length,content:w,layer:m.value,importance:"",time:""})}else d.length>10&&!d.includes(":")&&e.length<30&&e.push({id:e.length,content:d,layer:m.value,importance:"",time:""})}return e.slice(0,20)}async function H(){if(!v.value.content.trim()){C.warning(o("memory.messages.contentRequired"));return}M.value=!0;try{const r=`hmemory store "${v.value.content.replace(/"/g,'\\"')}" --importance ${v.value.importance}`,{output:e}=await T.execute(r,15e3);e.toLowerCase().includes("stored")||e.includes("✔")?(C.success(o("memory.messages.storeOk")),z.value=!1,v.value={content:"",importance:.5},await L()):(C.warning(e.slice(0,100)||o("memory.messages.storeDefault")),z.value=!1)}catch(r){C.error(o("memory.messages.storeFailed",{err:r.message}))}finally{M.value=!1}}async function W(){$.value=!0;try{await T.execute("hmemory consolidate",2e4),C.success(o("memory.messages.consolidateOk")),await L()}catch(r){C.error(o("memory.messages.consolidateFailed",{err:r.message}))}finally{$.value=!1}}return se(L),(r,e)=>{const u=c("a-button"),k=c("a-space"),d=c("a-statistic"),y=c("a-card"),w=c("a-col"),j=c("a-row"),R=c("a-radio-button"),D=c("a-radio-group"),E=c("a-input-search"),K=c("a-spin"),Q=c("a-tag"),Y=c("a-textarea"),N=c("a-form-item"),A=c("a-slider"),G=c("a-form"),J=c("a-modal");return f(),_("div",null,[i("div",de,[i("div",null,[i("h2",pe,s(l(o)("memory.title")),1),i("p",ve,s(l(o)("memory.subtitle")),1)]),t(k,null,{default:a(()=>[t(u,{onClick:e[0]||(e[0]=n=>z.value=!0),type:"primary"},{icon:a(()=>[t(l(te))]),default:a(()=>[g(" "+s(l(o)("memory.storeButton")),1)]),_:1}),t(u,{ghost:"",loading:S.value,onClick:L},{icon:a(()=>[t(l(oe))]),default:a(()=>[g(" "+s(l(o)("memory.refresh")),1)]),_:1},8,["loading"])]),_:1})]),t(j,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:a(()=>[t(w,{xs:24,sm:8},{default:a(()=>[t(y,{style:{background:"rgba(114,46,209,.1)","border-color":"rgba(114,46,209,.35)",cursor:"pointer"},hoverable:"",onClick:e[1]||(e[1]=n=>m.value="short-term")},{default:a(()=>[t(d,{title:l(o)("memory.stats.shortTerm"),value:x.value.shortTerm||0,"value-style":"color: #c084fc; font-size: 20px;"},{prefix:a(()=>[t(l(ae))]),_:1},8,["title","value"]),i("div",ye,s(l(o)("memory.stats.shortTermHint")),1)]),_:1})]),_:1}),t(w,{xs:24,sm:8},{default:a(()=>[t(y,{style:{background:"rgba(22,119,255,.08)","border-color":"rgba(22,119,255,.3)",cursor:"pointer"},hoverable:"",onClick:e[2]||(e[2]=n=>m.value="long-term")},{default:a(()=>[t(d,{title:l(o)("memory.stats.longTerm"),value:x.value.longTerm||0,"value-style":"color: #91caff; font-size: 20px;"},{prefix:a(()=>[t(l(le))]),_:1},8,["title","value"]),i("div",_e,s(l(o)("memory.stats.longTermHint")),1)]),_:1})]),_:1}),t(w,{xs:24,sm:8},{default:a(()=>[t(y,{style:{background:"rgba(41,162,112,.08)","border-color":"rgba(41,162,112,.3)",cursor:"pointer"},hoverable:"",onClick:e[3]||(e[3]=n=>m.value="core")},{default:a(()=>[t(d,{title:l(o)("memory.stats.core"),value:x.value.core||0,"value-style":"color: #69db7c; font-size: 20px;"},{prefix:a(()=>[t(l(re))]),_:1},8,["title","value"]),i("div",fe,s(l(o)("memory.stats.coreHint")),1)]),_:1})]),_:1})]),_:1}),t(y,{style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"16px"}},{title:a(()=>[i("div",ge,[i("span",null,s(l(o)("memory.card.title")),1),t(D,{value:m.value,"onUpdate:value":e[4]||(e[4]=n=>m.value=n),"button-style":"solid",size:"small",onChange:B},{default:a(()=>[t(R,{value:"short-term"},{default:a(()=>[g(s(l(o)("memory.card.tabs.short")),1)]),_:1}),t(R,{value:"long-term"},{default:a(()=>[g(s(l(o)("memory.card.tabs.long")),1)]),_:1}),t(R,{value:"core"},{default:a(()=>[g(s(l(o)("memory.card.tabs.core")),1)]),_:1})]),_:1},8,["value"])])]),extra:a(()=>[t(E,{value:O.value,"onUpdate:value":e[5]||(e[5]=n=>O.value=n),placeholder:l(o)("memory.card.searchPlaceholder"),"allow-clear":"",size:"small",style:{width:"220px"},loading:h.value,onSearch:
|
|
1
|
+
import{_ as X,b as Z,u as ee,d as C}from"./index-BxjOmfVA.js";import{aq as te,R as oe,h as ae,w as le,ay as re,o as ne}from"./icons-B2mcO3YM.js";import{o as se,M as _,R as i,P as s,u as l,c as t,N as a,K as c,r as p,L as f,O as g,F as ce,Y as ie,S as me,f as ue}from"./vendor-Ci2pTZ_t.js";const de={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},pe={class:"page-title"},ve={class:"page-sub"},ye={style:{"margin-top":"4px",color:"var(--text-secondary)","font-size":"11px"}},_e={style:{"margin-top":"4px",color:"var(--text-secondary)","font-size":"11px"}},fe={style:{"margin-top":"4px",color:"var(--text-secondary)","font-size":"11px"}},ge={style:{display:"flex","align-items":"center",gap:"12px"}},he={key:0,style:{"text-align":"center",padding:"30px"}},xe={key:1,style:{"text-align":"center",padding:"30px",color:"var(--text-muted)"}},be={key:2,class:"memory-list"},ke={style:{display:"flex","justify-content":"space-between","align-items":"flex-start","margin-bottom":"4px"}},we={style:{display:"flex",gap:"8px","align-items":"center"}},Ce={key:0,style:{color:"var(--text-secondary)","font-size":"11px"}},Te={style:{color:"var(--text-muted)","font-size":"11px"}},ze={style:{color:"#ccc","font-size":"13px","line-height":"1.6"}},Oe={__name:"Memory",setup(Le){const{t:o}=Z(),T=ee(),S=p(!1),h=p(!1),$=p(!1),M=p(!1),z=p(!1),x=p({shortTerm:0,longTerm:0,core:0}),b=p([]),m=p("short-term"),O=p(""),v=p({content:"",importance:.5}),U=ue(()=>({0:o("memory.modal.marks.low"),.5:o("memory.modal.marks.mid"),1:o("memory.modal.marks.high")}));function q(r){return{"short-term":"purple","long-term":"blue",core:"green"}[r]||"default"}function F(r){const e=`memory.layer.${r}`,u=o(e);return u===e?r:u}async function L(){S.value=!0;try{const{output:r}=await T.execute("hmemory stats",15e3);P(r)}catch(r){console.error("hmemory stats failed:",r)}finally{S.value=!1,await B()}}function P(r){const e=r.match(/short.?term[^\d]*(\d+)/i),u=r.match(/long.?term[^\d]*(\d+)/i),k=r.match(/core[^\d]*(\d+)/i);e&&(x.value.shortTerm=parseInt(e[1])),u&&(x.value.longTerm=parseInt(u[1])),k&&(x.value.core=parseInt(k[1]))}async function B(){h.value=!0;try{const r=m.value==="short-term"?"recent":m.value==="long-term"?"important":"core",{output:e}=await T.execute(`hmemory recall "${r}" --limit 20`,15e3);b.value=I(e)}catch{b.value=[]}finally{h.value=!1}}async function V(){if(!O.value.trim()){await B();return}h.value=!0;try{const{output:r}=await T.execute(`hmemory recall "${O.value}"`,15e3);b.value=I(r)}catch{b.value=[]}finally{h.value=!1}}function I(r){const e=[],u=r.split(`
|
|
2
|
+
`);for(const k of u){const d=k.trim();if(!d||d.startsWith("─")||d.startsWith("Recall"))continue;const y=d.match(/^[-●•\d.]+\s+(.+)/);if(y){const w=y[1].trim();w.length>5&&e.push({id:e.length,content:w,layer:m.value,importance:"",time:""})}else d.length>10&&!d.includes(":")&&e.length<30&&e.push({id:e.length,content:d,layer:m.value,importance:"",time:""})}return e.slice(0,20)}async function H(){if(!v.value.content.trim()){C.warning(o("memory.messages.contentRequired"));return}M.value=!0;try{const r=`hmemory store "${v.value.content.replace(/"/g,'\\"')}" --importance ${v.value.importance}`,{output:e}=await T.execute(r,15e3);e.toLowerCase().includes("stored")||e.includes("✔")?(C.success(o("memory.messages.storeOk")),z.value=!1,v.value={content:"",importance:.5},await L()):(C.warning(e.slice(0,100)||o("memory.messages.storeDefault")),z.value=!1)}catch(r){C.error(o("memory.messages.storeFailed",{err:r.message}))}finally{M.value=!1}}async function W(){$.value=!0;try{await T.execute("hmemory consolidate",2e4),C.success(o("memory.messages.consolidateOk")),await L()}catch(r){C.error(o("memory.messages.consolidateFailed",{err:r.message}))}finally{$.value=!1}}return se(L),(r,e)=>{const u=c("a-button"),k=c("a-space"),d=c("a-statistic"),y=c("a-card"),w=c("a-col"),j=c("a-row"),R=c("a-radio-button"),D=c("a-radio-group"),E=c("a-input-search"),K=c("a-spin"),Q=c("a-tag"),Y=c("a-textarea"),N=c("a-form-item"),A=c("a-slider"),G=c("a-form"),J=c("a-modal");return f(),_("div",null,[i("div",de,[i("div",null,[i("h2",pe,s(l(o)("memory.title")),1),i("p",ve,s(l(o)("memory.subtitle")),1)]),t(k,null,{default:a(()=>[t(u,{onClick:e[0]||(e[0]=n=>z.value=!0),type:"primary"},{icon:a(()=>[t(l(te))]),default:a(()=>[g(" "+s(l(o)("memory.storeButton")),1)]),_:1}),t(u,{ghost:"",loading:S.value,onClick:L},{icon:a(()=>[t(l(oe))]),default:a(()=>[g(" "+s(l(o)("memory.refresh")),1)]),_:1},8,["loading"])]),_:1})]),t(j,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:a(()=>[t(w,{xs:24,sm:8},{default:a(()=>[t(y,{style:{background:"rgba(114,46,209,.1)","border-color":"rgba(114,46,209,.35)",cursor:"pointer"},hoverable:"",onClick:e[1]||(e[1]=n=>m.value="short-term")},{default:a(()=>[t(d,{title:l(o)("memory.stats.shortTerm"),value:x.value.shortTerm||0,"value-style":"color: #c084fc; font-size: 20px;"},{prefix:a(()=>[t(l(ae))]),_:1},8,["title","value"]),i("div",ye,s(l(o)("memory.stats.shortTermHint")),1)]),_:1})]),_:1}),t(w,{xs:24,sm:8},{default:a(()=>[t(y,{style:{background:"rgba(22,119,255,.08)","border-color":"rgba(22,119,255,.3)",cursor:"pointer"},hoverable:"",onClick:e[2]||(e[2]=n=>m.value="long-term")},{default:a(()=>[t(d,{title:l(o)("memory.stats.longTerm"),value:x.value.longTerm||0,"value-style":"color: #91caff; font-size: 20px;"},{prefix:a(()=>[t(l(le))]),_:1},8,["title","value"]),i("div",_e,s(l(o)("memory.stats.longTermHint")),1)]),_:1})]),_:1}),t(w,{xs:24,sm:8},{default:a(()=>[t(y,{style:{background:"rgba(41,162,112,.08)","border-color":"rgba(41,162,112,.3)",cursor:"pointer"},hoverable:"",onClick:e[3]||(e[3]=n=>m.value="core")},{default:a(()=>[t(d,{title:l(o)("memory.stats.core"),value:x.value.core||0,"value-style":"color: #69db7c; font-size: 20px;"},{prefix:a(()=>[t(l(re))]),_:1},8,["title","value"]),i("div",fe,s(l(o)("memory.stats.coreHint")),1)]),_:1})]),_:1})]),_:1}),t(y,{style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"16px"}},{title:a(()=>[i("div",ge,[i("span",null,s(l(o)("memory.card.title")),1),t(D,{value:m.value,"onUpdate:value":e[4]||(e[4]=n=>m.value=n),"button-style":"solid",size:"small",onChange:B},{default:a(()=>[t(R,{value:"short-term"},{default:a(()=>[g(s(l(o)("memory.card.tabs.short")),1)]),_:1}),t(R,{value:"long-term"},{default:a(()=>[g(s(l(o)("memory.card.tabs.long")),1)]),_:1}),t(R,{value:"core"},{default:a(()=>[g(s(l(o)("memory.card.tabs.core")),1)]),_:1})]),_:1},8,["value"])])]),extra:a(()=>[t(E,{value:O.value,"onUpdate:value":e[5]||(e[5]=n=>O.value=n),placeholder:l(o)("memory.card.searchPlaceholder"),"allow-clear":"",size:"small",style:{width:"220px"},loading:h.value,onSearch:V},null,8,["value","placeholder","loading"])]),default:a(()=>[h.value?(f(),_("div",he,[t(K)])):b.value.length?(f(),_("div",be,[(f(!0),_(ce,null,ie(b.value,n=>(f(),_("div",{key:n.id,class:"memory-item"},[i("div",ke,[i("div",we,[t(Q,{color:q(n.layer||m.value),style:{"font-size":"10px"}},{default:a(()=>[g(s(F(n.layer||m.value)),1)]),_:2},1032,["color"]),n.importance?(f(),_("span",Ce,s(l(o)("memory.card.importanceLabel",{value:n.importance})),1)):me("",!0)]),i("span",Te,s(n.time),1)]),i("div",ze,s(n.content),1)]))),128))])):(f(),_("div",xe,s(l(o)("memory.card.emptyText")),1))]),_:1}),t(u,{loading:$.value,onClick:W,style:{background:"var(--bg-card-hover)","border-color":"var(--text-muted)",width:"100%"}},{icon:a(()=>[t(l(ne))]),default:a(()=>[g(" "+s(l(o)("memory.consolidateButton")),1)]),_:1},8,["loading"]),t(J,{open:z.value,"onUpdate:open":e[8]||(e[8]=n=>z.value=n),title:l(o)("memory.modal.title"),"confirm-loading":M.value,onOk:H},{default:a(()=>[t(G,{"label-col":{span:4},"wrapper-col":{span:20},style:{"margin-top":"16px"}},{default:a(()=>[t(N,{label:l(o)("memory.modal.contentLabel"),required:""},{default:a(()=>[t(Y,{value:v.value.content,"onUpdate:value":e[6]||(e[6]=n=>v.value.content=n),rows:4,placeholder:l(o)("memory.modal.contentPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),t(N,{label:l(o)("memory.modal.importanceLabel")},{default:a(()=>[t(A,{value:v.value.importance,"onUpdate:value":e[7]||(e[7]=n=>v.value.importance=n),min:0,max:1,step:.1,marks:U.value},null,8,["value","marks"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading"])])}}},Be=X(Oe,[["__scopeId","data-v-a74b99b3"]]);export{Be as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.scanner-wrap[data-v-5e64932d]{display:flex;flex-direction:column}.video-frame[data-v-5e64932d]{position:relative;width:100%;aspect-ratio:4 / 3;background:#000;border-radius:8px;overflow:hidden}.video-frame video[data-v-5e64932d]{width:100%;height:100%;object-fit:cover}.overlay[data-v-5e64932d]{position:absolute;inset:0;display:flex;align-items:flex-end;justify-content:center;pointer-events:none}.overlay .hint[data-v-5e64932d]{background:#0009;color:#fff;padding:6px 12px;border-radius:4px;font-size:12px;margin-bottom:16px}.page-title[data-v-e9122f77]{margin:0 0 4px}.page-sub[data-v-e9122f77]{color:var(--text-secondary);margin:0;font-size:13px}
|