chainlesschain 0.161.9 → 0.161.11
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 +1 -1
- package/src/assets/web-panel/.build-hash +1 -1
- package/src/assets/web-panel/assets/{AIOps-Cbnj25uU.js → AIOps-Cv7DnNSv.js} +1 -1
- package/src/assets/web-panel/assets/{ActionButton-DY69UkxV.js → ActionButton-B1m9njbz.js} +1 -1
- package/src/assets/web-panel/assets/{Analytics-DUzoL75H.js → Analytics-CU5lrpIq.js} +2 -2
- package/src/assets/web-panel/assets/AppLayout-BpbfrB7k.css +1 -0
- package/src/assets/web-panel/assets/AppLayout-CrQBcjC1.js +3 -0
- package/src/assets/web-panel/assets/{Audit-CFJh6huz.js → Audit-DUkzhAbX.js} +1 -1
- package/src/assets/web-panel/assets/{Backup-CMTir4tV.js → Backup-L1i5rG4e.js} +1 -1
- package/src/assets/web-panel/assets/{BaseInput-BaWXBDdp.js → BaseInput-CQSPRZVh.js} +1 -1
- package/src/assets/web-panel/assets/{Chat-DjToexEx.js → Chat-ySuja9_N.js} +1 -1
- package/src/assets/web-panel/assets/{Checkbox-DJnhKXhi.js → Checkbox-5jHkbotn.js} +1 -1
- package/src/assets/web-panel/assets/{Codegen-CgsgvRJX.js → Codegen-CpTSti2I.js} +1 -1
- package/src/assets/web-panel/assets/{Col-MvMGDJAB.js → Col-C5SJSGcO.js} +1 -1
- package/src/assets/web-panel/assets/{Community-q26VGOGu.js → Community-0PMz9hPX.js} +1 -1
- package/src/assets/web-panel/assets/{Compact-DyLYzWoX.js → Compact-CwrJK_94.js} +1 -1
- package/src/assets/web-panel/assets/{Compliance-D_TF9eBc.js → Compliance-BEVqh-i7.js} +1 -1
- package/src/assets/web-panel/assets/{Cowork-B9bg988c.js → Cowork-C_UEYiR5.js} +3 -3
- package/src/assets/web-panel/assets/{Cron-6k9vTFfd.js → Cron-B4f0_E2W.js} +1 -1
- package/src/assets/web-panel/assets/{Crosschain-B7fk2aHi.js → Crosschain-CZT6FKhl.js} +1 -1
- package/src/assets/web-panel/assets/{DID-XhCfTFm2.js → DID-LDSJdg_E.js} +2 -2
- package/src/assets/web-panel/assets/{Dashboard-Bqk7vtZM.js → Dashboard-CczHBzZy.js} +2 -2
- package/src/assets/web-panel/assets/{Dropdown-CDOOZGv7.js → Dropdown-KJXQPCdN.js} +1 -1
- package/src/assets/web-panel/assets/{Federation-NajN4oRO.js → Federation-Bu085RVF.js} +1 -1
- package/src/assets/web-panel/assets/{FormItemContext-DgMHYlMB.js → FormItemContext-CenKDKRv.js} +1 -1
- package/src/assets/web-panel/assets/{Git-CZC5n1Zu.js → Git-Ck3yvIOj.js} +1 -1
- package/src/assets/web-panel/assets/{Governance-Br131eUW.js → Governance-C-Wqvp5q.js} +1 -1
- package/src/assets/web-panel/assets/{Inference-BHlUfcT-.js → Inference-D1Q4GQsE.js} +1 -1
- package/src/assets/web-panel/assets/{KnowledgeGraph-CByROhg-.js → KnowledgeGraph-6-id5kqA.js} +1 -1
- package/src/assets/web-panel/assets/{Logs-D8Ghzk4B.js → Logs-BIrBldyi.js} +1 -1
- package/src/assets/web-panel/assets/{Marketplace-CnjHPFm7.js → Marketplace-DuEYH2k1.js} +1 -1
- package/src/assets/web-panel/assets/{McpTools-C_vszCBU.js → McpTools-CJyrjpOa.js} +3 -3
- package/src/assets/web-panel/assets/{Memory-Cl5c_8In.js → Memory-25VBuGGA.js} +1 -1
- package/src/assets/web-panel/assets/{MobileBridge-K3KwwCKl.js → MobileBridge-DDepR_yK.js} +3 -3
- package/src/assets/web-panel/assets/{MobileBridge-DkkMCDx9.css → MobileBridge-DwxX55b_.css} +1 -1
- package/src/assets/web-panel/assets/{Mtc-NfZ8xzyu.js → Mtc-B52jkX63.js} +4 -4
- package/src/assets/web-panel/assets/{MtcAudit-BkktYSXj.js → MtcAudit-BimrvH_0.js} +1 -1
- package/src/assets/web-panel/assets/Multisig-D-IuEDLa.css +1 -0
- package/src/assets/web-panel/assets/Multisig-DWsGuuyz.js +1 -0
- package/src/assets/web-panel/assets/{NLProgramming-BhFRuXyi.js → NLProgramming-D9sqtzgg.js} +1 -1
- package/src/assets/web-panel/assets/{Notes-BpcAFy8i.js → Notes-BtaoLR6l.js} +1 -1
- package/src/assets/web-panel/assets/{NotificationSettings-DKNtYYeo.js → NotificationSettings-DGc4Pnhc.js} +1 -1
- package/src/assets/web-panel/assets/{Organization-C61VwQEW.js → Organization-CH8YH1WC.js} +4 -4
- package/src/assets/web-panel/assets/{Overflow-WBloac1x.js → Overflow-BEfCQNlN.js} +1 -1
- package/src/assets/web-panel/assets/{OverrideContext-DSwW21YS.js → OverrideContext-DYxbd09I.js} +1 -1
- package/src/assets/web-panel/assets/{P2P-DGm7EvDg.js → P2P-Bp_HTJ00.js} +2 -2
- package/src/assets/web-panel/assets/{Permissions-KFPtoOV6.js → Permissions-UHQF_4gL.js} +4 -4
- package/src/assets/web-panel/assets/{Pipeline-CFjFtzZT.js → Pipeline-yCVADMbj.js} +1 -1
- package/src/assets/web-panel/assets/{Privacy-T_Kewe_f.js → Privacy-C1oNG_1P.js} +1 -1
- package/src/assets/web-panel/assets/ProjectInit-CteEo-wF.css +1 -0
- package/src/assets/web-panel/assets/{Projects-xGNn4Ov9.js → ProjectInit-DMW2d6Cb.js} +2 -2
- package/src/assets/web-panel/assets/{ProjectSettings-BQl8qTPQ.js → ProjectSettings-5G8pJeC_.js} +1 -1
- package/src/assets/web-panel/assets/Projects-BpLpgCga.js +1 -0
- package/src/assets/web-panel/assets/Projects-C34BWmmy.css +1 -0
- package/src/assets/web-panel/assets/{Providers-ByuUztXe.js → Providers-CL_oE5tl.js} +1 -1
- package/src/assets/web-panel/assets/{QuickAsk-BwSXmXvL.js → QuickAsk-BV38kJpn.js} +1 -1
- package/src/assets/web-panel/assets/{Recommend-Cp433_5Z.js → Recommend-SAj9Q6gO.js} +1 -1
- package/src/assets/web-panel/assets/{Reputation-DE_JSjyi.js → Reputation-1kCD0gaB.js} +1 -1
- package/src/assets/web-panel/assets/{Row-DI36Fic1.js → Row-CUF6ofec.js} +1 -1
- package/src/assets/web-panel/assets/{RssFeed-DswpSUiI.js → RssFeed-CAJCjHjh.js} +3 -3
- package/src/assets/web-panel/assets/{Search-Crs2UKhh.js → Search-cvcqK6k5.js} +1 -1
- package/src/assets/web-panel/assets/{Security-W8ViXXbq.js → Security-CQg7wTKN.js} +3 -3
- package/src/assets/web-panel/assets/{Services-BIQdyLJM.js → Services-CsUFvNqx.js} +1 -1
- package/src/assets/web-panel/assets/{Skeleton-DDiOevKX.js → Skeleton-xBd6cpeg.js} +1 -1
- package/src/assets/web-panel/assets/{Skills-v-Vw_jGa.js → Skills-CaroVcXP.js} +1 -1
- package/src/assets/web-panel/assets/{Sla-B-ULmz5m.js → Sla-BtpCM7Ko.js} +1 -1
- package/src/assets/web-panel/assets/{SpeechSettings--8IIPHri.js → SpeechSettings-BqMJfygi.js} +1 -1
- package/src/assets/web-panel/assets/{SyncSettings-D0QiEwJn.js → SyncSettings-CZouEnTT.js} +1 -1
- package/src/assets/web-panel/assets/{Tasks-BNSR9FlM.js → Tasks-CXRSaKbt.js} +1 -1
- package/src/assets/web-panel/assets/{Templates-CFVkaS-d.js → Templates-DJY8TQ5i.js} +1 -1
- package/src/assets/web-panel/assets/{Tenant-quU-tldS.js → Tenant-BvR-WVDe.js} +1 -1
- package/src/assets/web-panel/assets/{Tokens-DTqFjS4k.js → Tokens-BvsTsita.js} +1 -1
- package/src/assets/web-panel/assets/{Trigger-ZWVirxhN.js → Trigger-BpAXwpX5.js} +1 -1
- package/src/assets/web-panel/assets/{Trust-DmaYf5tg.js → Trust-CQn3-pr1.js} +1 -1
- package/src/assets/web-panel/assets/{UkeySign-BeYyXtZW.js → UkeySign-mdcVVgmW.js} +1 -1
- package/src/assets/web-panel/assets/{VideoEditing-CRdDwD9C.js → VideoEditing-B64a6mxs.js} +1 -1
- package/src/assets/web-panel/assets/{Wallet-H-38f7Pv.js → Wallet-CD6sh797.js} +1 -1
- package/src/assets/web-panel/assets/{WebAuthn-CCQVzZ0W.js → WebAuthn-CBMAhuJk.js} +4 -4
- package/src/assets/web-panel/assets/{WorkflowEditor-B1RFE2oN.js → WorkflowEditor-BL2e4pEf.js} +1 -1
- package/src/assets/web-panel/assets/{chat-Z4UoBAeF.js → chat-D0R75-Vf.js} +1 -1
- package/src/assets/web-panel/assets/{collapseMotion-6-_FbiKl.js → collapseMotion-CZQhO80h.js} +1 -1
- package/src/assets/web-panel/assets/{colors-AecMhEAZ.js → colors-Z5R3KUYW.js} +1 -1
- package/src/assets/web-panel/assets/{compact-item-Dfhm05kA.js → compact-item-Buyen0aR.js} +1 -1
- package/src/assets/web-panel/assets/{createContext-C7gBVuRm.js → createContext-D9l1X-OX.js} +1 -1
- package/src/assets/web-panel/assets/{echarts-BrEnqXDv.js → echarts-TwhxblyG.js} +1 -1
- package/src/assets/web-panel/assets/{hasIn-DQarK3iI.js → hasIn-DV4wtumO.js} +1 -1
- package/src/assets/web-panel/assets/{icons-B2mcO3YM.js → icons-Q99MnhG8.js} +2 -2
- package/src/assets/web-panel/assets/{index-CiVezMja.js → index--pPzkOu2.js} +1 -1
- package/src/assets/web-panel/assets/{index-CuPmKar9.js → index-0P8ZPtKp.js} +1 -1
- package/src/assets/web-panel/assets/{index-Cy_80Fj7.js → index-AXmFZTsT.js} +1 -1
- package/src/assets/web-panel/assets/{index-CS7_x1br.js → index-BAf0-ayI.js} +1 -1
- package/src/assets/web-panel/assets/{index-DfAZSzZc.js → index-BBFrPlY4.js} +1 -1
- package/src/assets/web-panel/assets/index-BBvRNeKy.js +1 -0
- package/src/assets/web-panel/assets/{index-C7nHW5ZW.js → index-BJzerWCW.js} +1 -1
- package/src/assets/web-panel/assets/{index-OqY41c_z.js → index-BLDanIEV.js} +1 -1
- package/src/assets/web-panel/assets/{index-BxjOmfVA.js → index-BRWO_MUe.js} +4 -4
- package/src/assets/web-panel/assets/{index-5I_kEh5L.js → index-BSXvEQFS.js} +1 -1
- package/src/assets/web-panel/assets/{index-78eTUfD9.js → index-BbZ_pXN3.js} +1 -1
- package/src/assets/web-panel/assets/{index-CFR1Scu8.js → index-BloaIh8i.js} +1 -1
- package/src/assets/web-panel/assets/{index-CxDBoEkf.js → index-C1u_F_WR.js} +1 -1
- package/src/assets/web-panel/assets/{index-D841tepe.js → index-C4m8PjHn.js} +1 -1
- package/src/assets/web-panel/assets/{index-CCUfW7hO.js → index-CHPsWSeL.js} +1 -1
- package/src/assets/web-panel/assets/{index-DfA9S79c.js → index-CHs1Rtgi.js} +1 -1
- package/src/assets/web-panel/assets/{index-nqKLHlmq.js → index-CLk9-Adx.js} +1 -1
- package/src/assets/web-panel/assets/{index-BLYMiBRw.js → index-CRvOaSuy.js} +1 -1
- package/src/assets/web-panel/assets/{index-B1XdBIuG.js → index-CT46jhtC.js} +1 -1
- package/src/assets/web-panel/assets/{index-DdtxWGjo.js → index-CoV9UGnc.js} +1 -1
- package/src/assets/web-panel/assets/{index-C0kyGID6.js → index-CpemtT_B.js} +1 -1
- package/src/assets/web-panel/assets/{index-DX4CKtlL.js → index-CprQ5h5e.js} +1 -1
- package/src/assets/web-panel/assets/{index-Dy2fLm3i.js → index-Cs2QeQFi.js} +1 -1
- package/src/assets/web-panel/assets/{index-1d6L3YWV.js → index-Cs7GKmFk.js} +1 -1
- package/src/assets/web-panel/assets/index-Cyal1Os0.js +1 -0
- package/src/assets/web-panel/assets/{index-5P_X26-m.js → index-DBBX0xZN.js} +1 -1
- package/src/assets/web-panel/assets/{index-D3Pxfwcc.js → index-DMcK4Son.js} +1 -1
- package/src/assets/web-panel/assets/{index-aHqD7CZz.js → index-DO9gd9wz.js} +1 -1
- package/src/assets/web-panel/assets/{index-D4_1yL1c.js → index-DYq0yh8a.js} +1 -1
- package/src/assets/web-panel/assets/{index-DWbRHjgk.js → index-D_g5wyjB.js} +1 -1
- package/src/assets/web-panel/assets/{index-DtrMx44i.js → index-DtRv6Tqv.js} +1 -1
- package/src/assets/web-panel/assets/{index-L6kKxFAO.js → index-KvlSpGws.js} +1 -1
- package/src/assets/web-panel/assets/{index-QgJGoGAK.js → index-RpJYGfg0.js} +1 -1
- package/src/assets/web-panel/assets/{index-C-4d1ug2.js → index-UAkLBWLE.js} +1 -1
- package/src/assets/web-panel/assets/{index-B52lOAOU.js → index-WbY1RGjg.js} +1 -1
- package/src/assets/web-panel/assets/{index-YJxjR7t9.js → index-Z-i_sfIN.js} +1 -1
- package/src/assets/web-panel/assets/{index-d0Iy6r2J.js → index-cTf60nCj.js} +1 -1
- package/src/assets/web-panel/assets/{index-Dkh_4r1F.js → index-ry4j00pG.js} +1 -1
- package/src/assets/web-panel/assets/{index-Ch9ExDNs.js → index-vSjbNv8F.js} +1 -1
- package/src/assets/web-panel/assets/{initDefaultProps-CDOGbz6v.js → initDefaultProps-C5tyEoyp.js} +1 -1
- package/src/assets/web-panel/assets/{motion-ChIpIzUN.js → motion-By5VpSMZ.js} +1 -1
- package/src/assets/web-panel/assets/{move-DbH3dyN8.js → move-CNRFLi9k.js} +1 -1
- package/src/assets/web-panel/assets/{omit-BJ1K-IDI.js → omit-DYc7DRhT.js} +1 -1
- package/src/assets/web-panel/assets/{pickAttrs-B0q7EpvV.js → pickAttrs-D667btUF.js} +1 -1
- package/src/assets/web-panel/assets/{placementArrow-D7XkOUjs.js → placementArrow-Ce-Y2-Qq.js} +1 -1
- package/src/assets/web-panel/assets/{responsiveObserve-efcdE4ju.js → responsiveObserve-BzzJzAds.js} +1 -1
- package/src/assets/web-panel/assets/{slide-BgAktMzM.js → slide-CyKGKfJ8.js} +1 -1
- package/src/assets/web-panel/assets/{statusUtils-CV83LVbI.js → statusUtils-DffXAKmJ.js} +1 -1
- package/src/assets/web-panel/assets/{styleChecker-D1npYi6G.js → styleChecker-CeeSLisW.js} +1 -1
- package/src/assets/web-panel/assets/useFlexGapSupport-CCzODKgI.js +1 -0
- package/src/assets/web-panel/assets/{useFs-BEvSw9aX.js → useFs--Vkrwu51.js} +1 -1
- package/src/assets/web-panel/assets/{useMergedState-n0f81Aew.js → useMergedState-D3PX36GT.js} +1 -1
- package/src/assets/web-panel/assets/{useRefs-CTh0C9xI.js → useRefs-opfcK7Pm.js} +1 -1
- package/src/assets/web-panel/assets/{useState-4T1Ntfpx.js → useState-Cp5WlLTS.js} +1 -1
- package/src/assets/web-panel/assets/{vendor-Ci2pTZ_t.js → vendor-BVLz_z7V.js} +1 -1
- package/src/assets/web-panel/assets/{vnode-Duw65sZ1.js → vnode-ChnNrJNw.js} +1 -1
- package/src/assets/web-panel/assets/{zoom-CLMtA8PG.js → zoom-DE1Teifl.js} +1 -1
- package/src/assets/web-panel/index.html +3 -3
- package/src/commands/mtc.js +1 -1
- package/src/commands/project.js +258 -0
- package/src/index.js +3 -0
- package/src/lib/audit-mtc.js +1 -1
- package/src/lib/project-runtime.js +171 -0
- package/src/assets/web-panel/assets/AppLayout-DATUppSv.js +0 -1
- package/src/assets/web-panel/assets/AppLayout-qr7ghxW7.css +0 -1
- package/src/assets/web-panel/assets/Multisig-BLRYDn7_.css +0 -1
- package/src/assets/web-panel/assets/Multisig-qP51bs1T.js +0 -1
- package/src/assets/web-panel/assets/Projects-B5IgXt-x.css +0 -1
- package/src/assets/web-panel/assets/index-Cp5G30tN.js +0 -1
- package/src/assets/web-panel/assets/index-eoNKQdFC.js +0 -1
- package/src/assets/web-panel/assets/useFlexGapSupport-DTH3yXTD.js +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import{u as be,_ as Pe,b as Ee}from"./index-
|
|
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(`
|
|
1
|
+
import{u as be,_ as Pe,b as Ee}from"./index-BRWO_MUe.js";import{aq as Ne,R as qe,o as he,ac as Fe,f as Ie,ao as Je,ar as Be}from"./icons-Q99MnhG8.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 $,u as i,f as W,o as He,r as A}from"./vendor-BVLz_z7V.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(),$(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(),$(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(),$(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(),$(F,{key:5,checked:!!t.modelValue[n.name],"onUpdate:checked":z=>T(n.name,z)},null,8,["checked","onUpdate:checked"])):n.widget==="select"?(o(),$(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(),$(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
|
+
`],"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(),$(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(),$(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(),$(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(),$(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(),$(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(),$(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)"}},At={key:0,style:{"text-align":"center",padding:"30px"}},$t={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=A(!1),m=A([]),u=A([]),j=A(""),w=A(""),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=A([]),P=A(""),x=A(!1),S=A(!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=A(!1),F=A(null),D=A(!1),K=A([]),n=A(""),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=A(!1),R=A(null),oe=A("form"),re=A({}),se=A({}),ie=A("{}"),ne=A(!1),Q=A(null),ae=A(""),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=A("");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 Ae(){E.value=!1}async function $e(){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(`
|
|
5
|
-
`);let h="unknown";for(const q of g){const b=q.trim();if(!b||b.startsWith("─"))continue;if(b.match(/^\[/)||b.match(/^Server:/i)){h=b.replace(/[\[\]]/g,"").replace(/^Server:\s*/i,"").trim();continue}const J=b.match(/^[●•]?\s*([a-z][a-z0-9_-]+)\s*[-–]\s*(.+)/i)||b.match(/^[●•]?\s*([a-z][a-z0-9_-]+)$/);J&&l.push({key:l.length,name:J[1],description:J[2]||"",server:h})}return l}return He(fe),(p,l)=>{const g=V("a-button"),h=V("a-statistic"),q=V("a-card"),b=V("a-col"),J=V("a-row"),ee=V("a-spin"),Ue=V("a-badge"),ye=V("a-input-search"),te=V("a-tag"),ve=V("a-table"),_e=V("a-radio-button"),Le=V("a-radio-group"),Re=V("a-textarea"),ge=V("a-modal");return o(),s("div",null,[y("div",pt,[y("div",null,[y("h2",ft,a(i(e)("mcpTools.title")),1),y("p",yt,a(i(e)("mcpTools.subtitle")),1)]),v(g,{type:"primary",ghost:"",loading:r.value,onClick:fe},{icon:f(()=>[v(i(qe))]),default:f(()=>[M(" "+a(i(e)("mcpTools.refresh")),1)]),_:1},8,["loading"])]),v(J,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:f(()=>[v(b,{xs:24,sm:8},{default:f(()=>[v(q,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"},size:"small"},{default:f(()=>[v(h,{title:i(e)("mcpTools.stats.servers"),value:m.value.length,"value-style":"color: #1677ff; font-size: 20px;"},{prefix:f(()=>[v(i(he))]),_:1},8,["title","value"])]),_:1})]),_:1}),v(b,{xs:24,sm:8},{default:f(()=>[v(q,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"},size:"small"},{default:f(()=>[v(h,{title:i(e)("mcpTools.stats.tools"),value:u.value.length,"value-style":"color: #52c41a; font-size: 20px;"},{prefix:f(()=>[v(i(Fe))]),_:1},8,["title","value"])]),_:1})]),_:1}),v(b,{xs:24,sm:8},{default:f(()=>[v(q,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"},size:"small"},{default:f(()=>[v(h,{title:i(e)("mcpTools.stats.running"),value:i(e)("mcpTools.stats.ready"),"value-style":"color: #52c41a; font-size: 20px;"},{prefix:f(()=>[v(i(Ie))]),_:1},8,["title","value"])]),_:1})]),_:1})]),_:1}),v(q,{title:i(e)("mcpTools.servers.title"),style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"16px"}},{default:f(()=>[r.value?(o(),s("div",vt,[v(ee)])):m.value.length?(o(),s("div",ht,[(o(!0),s(Y,null,le(m.value,_=>(o()
|
|
5
|
+
`);let h="unknown";for(const q of g){const b=q.trim();if(!b||b.startsWith("─"))continue;if(b.match(/^\[/)||b.match(/^Server:/i)){h=b.replace(/[\[\]]/g,"").replace(/^Server:\s*/i,"").trim();continue}const J=b.match(/^[●•]?\s*([a-z][a-z0-9_-]+)\s*[-–]\s*(.+)/i)||b.match(/^[●•]?\s*([a-z][a-z0-9_-]+)$/);J&&l.push({key:l.length,name:J[1],description:J[2]||"",server:h})}return l}return He(fe),(p,l)=>{const g=V("a-button"),h=V("a-statistic"),q=V("a-card"),b=V("a-col"),J=V("a-row"),ee=V("a-spin"),Ue=V("a-badge"),ye=V("a-input-search"),te=V("a-tag"),ve=V("a-table"),_e=V("a-radio-button"),Le=V("a-radio-group"),Re=V("a-textarea"),ge=V("a-modal");return o(),s("div",null,[y("div",pt,[y("div",null,[y("h2",ft,a(i(e)("mcpTools.title")),1),y("p",yt,a(i(e)("mcpTools.subtitle")),1)]),v(g,{type:"primary",ghost:"",loading:r.value,onClick:fe},{icon:f(()=>[v(i(qe))]),default:f(()=>[M(" "+a(i(e)("mcpTools.refresh")),1)]),_:1},8,["loading"])]),v(J,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:f(()=>[v(b,{xs:24,sm:8},{default:f(()=>[v(q,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"},size:"small"},{default:f(()=>[v(h,{title:i(e)("mcpTools.stats.servers"),value:m.value.length,"value-style":"color: #1677ff; font-size: 20px;"},{prefix:f(()=>[v(i(he))]),_:1},8,["title","value"])]),_:1})]),_:1}),v(b,{xs:24,sm:8},{default:f(()=>[v(q,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"},size:"small"},{default:f(()=>[v(h,{title:i(e)("mcpTools.stats.tools"),value:u.value.length,"value-style":"color: #52c41a; font-size: 20px;"},{prefix:f(()=>[v(i(Fe))]),_:1},8,["title","value"])]),_:1})]),_:1}),v(b,{xs:24,sm:8},{default:f(()=>[v(q,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"},size:"small"},{default:f(()=>[v(h,{title:i(e)("mcpTools.stats.running"),value:i(e)("mcpTools.stats.ready"),"value-style":"color: #52c41a; font-size: 20px;"},{prefix:f(()=>[v(i(Ie))]),_:1},8,["title","value"])]),_:1})]),_:1})]),_:1}),v(q,{title:i(e)("mcpTools.servers.title"),style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"16px"}},{default:f(()=>[r.value?(o(),s("div",vt,[v(ee)])):m.value.length?(o(),s("div",ht,[(o(!0),s(Y,null,le(m.value,_=>(o(),$(q,{key:_.name,size:"small",style:{background:"var(--bg-card-hover)","border-color":"var(--border-color)"}},{default:f(()=>[y("div",xt,[v(i(he),{style:{color:"#1677ff"}}),y("span",bt,a(_.name),1),v(Ue,{status:"success"})]),_.command?(o(),s("div",kt,a(_.command)+" "+a(_.args?.join(" ")),1)):k("",!0),_.description?(o(),s("div",wt,a(_.description),1)):k("",!0)]),_:2},1024))),128))])):(o(),s("div",_t,[M(a(i(e)("mcpTools.servers.emptyHintPrefix"))+" ",1),y("code",gt,a(i(e)("mcpTools.servers.emptyHintCommand")),1),M(" "+a(i(e)("mcpTools.servers.emptyHintSuffix")),1)]))]),_:1},8,["title"]),v(q,{title:i(e)("mcpTools.tools.title"),style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{extra:f(()=>[v(ye,{value:j.value,"onUpdate:value":l[0]||(l[0]=_=>j.value=_),placeholder:i(e)("mcpTools.tools.searchPlaceholder"),"allow-clear":"",size:"small",style:{width:"200px"}},null,8,["value","placeholder"])]),default:f(()=>[r.value?(o(),s("div",Tt,[v(ee)])):(o(),$(ve,{key:1,columns:O.value,"data-source":T.value,pagination:{pageSize:15},size:"small"},{bodyCell:f(({column:_,record:B})=>[_.key==="name"?(o(),s("span",zt,a(B.name),1)):k("",!0),_.key==="server"?(o(),$(te,{key:1,color:"blue",style:{"font-size":"10px"}},{default:f(()=>[M(a(B.server),1)]),_:2},1024)):k("",!0),_.key==="action"?(o(),s(Y,{key:2},[w.value==="topic"?(o(),$(g,{key:0,size:"small",type:"link",onClick:Me=>Ce(B)},{icon:f(()=>[v(i(Je))]),default:f(()=>[M(" "+a(i(e)("mcpTools.tools.runAction")),1)]),_:1},8,["onClick"])):(o(),s("span",St,a(i(e)("mcpTools.tools.desktopOnly")),1))],64)):k("",!0)]),emptyText:f(()=>[y("div",Ct,a(i(e)("mcpTools.tools.emptyText")),1)]),_:1},8,["columns","data-source"]))]),_:1},8,["title"]),w.value==="topic"?(o(),$(q,{key:0,title:i(e)("mcpTools.resources.title"),style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-top":"16px"}},{extra:f(()=>[v(ye,{value:P.value,"onUpdate:value":l[1]||(l[1]=_=>P.value=_),placeholder:i(e)("mcpTools.resources.searchPlaceholder"),"allow-clear":"",size:"small",style:{width:"200px"}},null,8,["value","placeholder"])]),default:f(()=>[x.value?(o(),s("div",At,[v(ee)])):U.value.length?(o(),$(ve,{key:2,columns:L.value,"data-source":N.value,pagination:{pageSize:15},size:"small"},{bodyCell:f(({column:_,record:B})=>[_.key==="uri"?(o(),s("span",Vt,a(B.uri),1)):k("",!0),_.key==="server"?(o(),$(te,{key:1,color:"blue",style:{"font-size":"10px"}},{default:f(()=>[M(a(B.server),1)]),_:2},1024)):k("",!0),_.key==="mimeType"?(o(),s(Y,{key:2},[B.mimeType?(o(),$(te,{key:0,style:{"font-size":"10px"}},{default:f(()=>[M(a(B.mimeType),1)]),_:2},1024)):(o(),s("span",jt,"—"))],64)):k("",!0),_.key==="action"?(o(),$(g,{key:3,size:"small",type:"link",onClick:Me=>I(B)},{icon:f(()=>[v(i(Be))]),default:f(()=>[M(" "+a(i(e)("mcpTools.resources.readAction")),1)]),_:1},8,["onClick"])):k("",!0)]),emptyText:f(()=>[y("div",Ot,a(i(e)("mcpTools.resources.emptyTable")),1)]),_:1},8,["columns","data-source"])):(o(),s("div",$t,a(i(e)("mcpTools.resources.emptyHint")),1))]),_:1},8,["title"])):k("",!0),v(ge,{open:E.value,title:Te.value,width:640,"confirm-loading":ne.value,"ok-text":ne.value?i(e)("mcpTools.run.okRunning"):i(e)("mcpTools.run.okIdle"),"cancel-text":i(e)("mcpTools.run.cancel"),onOk:$e,onCancel:Ae},{default:f(()=>[R.value?(o(),s("div",Ut,[y("div",null,[y("div",Lt,a(i(e)("mcpTools.run.serverLabel")),1),y("div",Rt,[v(te,{color:"blue"},{default:f(()=>[M(a(R.value.server),1)]),_:1}),y("span",Mt,a(R.value.name),1)])]),R.value.description?(o(),s("div",Pt,[y("div",Et,a(i(e)("mcpTools.run.descriptionLabel")),1),y("div",Nt,a(R.value.description),1)])):k("",!0),R.value.inputSchema?(o(),s("div",qt,[y("div",Ft,a(i(e)("mcpTools.run.schemaLabel")),1),y("pre",It,a(ze.value),1)])):k("",!0),y("div",null,[y("div",Jt,[y("span",Bt,a(i(e)("mcpTools.run.paramsLabel")),1),v(Le,{value:oe.value,"onUpdate:value":l[2]||(l[2]=_=>oe.value=_),size:"small","button-style":"solid"},{default:f(()=>[v(_e,{value:"form",disabled:!we.value},{default:f(()=>[M(a(i(e)("mcpTools.run.modeForm")),1)]),_:1},8,["disabled"]),v(_e,{value:"json"},{default:f(()=>[M(a(i(e)("mcpTools.run.modeJson")),1)]),_:1})]),_:1},8,["value"])]),oe.value==="form"?(o(),$(mt,{key:0,modelValue:re.value,"onUpdate:modelValue":l[3]||(l[3]=_=>re.value=_),schema:R.value.inputSchema,errors:se.value},null,8,["modelValue","schema","errors"])):(o(),s(Y,{key:1},[v(Re,{value:ie.value,"onUpdate:value":l[4]||(l[4]=_=>ie.value=_),rows:6,placeholder:"{}",style:{"font-family":"monospace","font-size":"12px"}},null,8,["value"]),Z.value?(o(),s("div",Wt,a(i(e)("mcpTools.run.jsonParseFailed",{err:Z.value})),1)):k("",!0)],64))]),ae.value?(o(),s("div",Ht,[y("div",Kt,a(i(e)("mcpTools.run.errorTitle")),1),y("pre",Yt,a(ae.value),1)])):k("",!0),Q.value!==null?(o(),s("div",Dt,[y("div",Qt,a(i(e)("mcpTools.run.resultLabel")),1),y("pre",Gt,a(Se.value),1)])):k("",!0)])):k("",!0)]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),v(ge,{open:X.value,title:z.value,width:720,footer:null,onCancel:C},{default:f(()=>[F.value?(o(),s("div",Xt,[y("div",null,[y("div",Zt,a(i(e)("mcpTools.read.serverLabel")),1),y("div",eo,[v(te,{color:"blue"},{default:f(()=>[M(a(F.value.server),1)]),_:1}),y("span",to,a(F.value.uri),1)])]),F.value.description?(o(),s("div",oo,[y("div",no,a(i(e)("mcpTools.read.descriptionLabel")),1),y("div",ao,a(F.value.description),1)])):k("",!0),D.value?(o(),s("div",lo,[v(ee,{tip:i(e)("mcpTools.read.spinnerTip")},null,8,["tip"])])):k("",!0),n.value?(o(),s("div",ro,[y("div",so,a(i(e)("mcpTools.read.errorTitle")),1),y("pre",io,a(n.value),1)])):k("",!0),K.value.length?(o(),s("div",uo,[y("div",co,a(i(e)("mcpTools.read.contentsLabel",{count:K.value.length})),1),(o(!0),s(Y,null,le(K.value,(_,B)=>(o(),s("div",{key:B,style:{"margin-bottom":"12px"}},[y("div",mo,[_.mimeType?(o(),$(te,{key:0,size:"small",style:{"font-size":"10px"}},{default:f(()=>[M(a(_.mimeType),1)]),_:2},1024)):k("",!0),_.uri&&_.uri!==F.value.uri?(o(),s("span",po,a(_.uri),1)):k("",!0)]),_.text?(o(),s("pre",fo,a(_.text),1)):_.blob?(o(),s("div",yo,a(i(e)("mcpTools.read.binaryNote",{count:_.blob.length})),1)):(o(),s("div",vo,a(i(e)("mcpTools.read.emptyContent")),1))]))),128))])):k("",!0)])):k("",!0)]),_:1},8,["open","title"])])}}},bo=Pe(_o,[["__scopeId","data-v-1d115bb9"]]);export{bo as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{_ as X,b as Z,u as ee,d as C}from"./index-
|
|
1
|
+
import{_ as X,b as Z,u as ee,d as C}from"./index-BRWO_MUe.js";import{aq as te,R as oe,i as ae,x as le,ay as re,p as ne}from"./icons-Q99MnhG8.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-BVLz_z7V.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
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};
|