chainlesschain 0.159.0 → 0.161.2
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-Cchx1iXI.css +1 -0
- package/src/assets/web-panel/assets/AIOps-CoZ9bIqF.js +1 -0
- package/src/assets/web-panel/assets/ActionButton-BvMi4awy.js +1 -0
- package/src/assets/web-panel/assets/Analytics-C1-TXmTC.css +1 -0
- package/src/assets/web-panel/assets/Analytics-hRk2ziup.js +3 -0
- package/src/assets/web-panel/assets/AppLayout-CtGprHSx.css +1 -0
- package/src/assets/web-panel/assets/AppLayout-_JR3Gko8.js +1 -0
- package/src/assets/web-panel/assets/Audit-6ZMsXmrO.css +1 -0
- package/src/assets/web-panel/assets/Audit-D8WmaHdX.js +1 -0
- package/src/assets/web-panel/assets/Backup-CY9QozR7.css +1 -0
- package/src/assets/web-panel/assets/Backup-CogYVeiE.js +1 -0
- package/src/assets/web-panel/assets/BaseInput-NAp5_OPY.js +1 -0
- package/src/assets/web-panel/assets/{Chat-DmX5bWvL.css → Chat-ByiYUboW.css} +1 -1
- package/src/assets/web-panel/assets/Chat-DkQnhjfk.js +2 -0
- package/src/assets/web-panel/assets/Checkbox-C9dkWb-7.js +1 -0
- package/src/assets/web-panel/assets/Codegen-BHyJ3j-p.js +1 -0
- package/src/assets/web-panel/assets/Codegen-BLP7id2a.css +1 -0
- package/src/assets/web-panel/assets/Col-JyQOivHb.js +1 -0
- package/src/assets/web-panel/assets/Community-C2RejeOY.css +1 -0
- package/src/assets/web-panel/assets/Community-UMq5QuBA.js +1 -0
- package/src/assets/web-panel/assets/Compact-DGlwooBJ.js +1 -0
- package/src/assets/web-panel/assets/Compliance-2rWGO55k.js +1 -0
- package/src/assets/web-panel/assets/Compliance-DOys4Ov1.css +1 -0
- package/src/assets/web-panel/assets/{Cowork-CFkkMMDK.js → Cowork-V-tDxtrt.js} +4 -4
- package/src/assets/web-panel/assets/Cron-YgEeQvdV.js +2 -0
- package/src/assets/web-panel/assets/Crosschain-C7Le4Pte.css +1 -0
- package/src/assets/web-panel/assets/Crosschain-Cgd5cRKn.js +1 -0
- package/src/assets/web-panel/assets/DID-BX6k3jZi.css +1 -0
- package/src/assets/web-panel/assets/DID-swdBCdMZ.js +2 -0
- package/src/assets/web-panel/assets/Dashboard-ClnWtxsT.js +3 -0
- package/src/assets/web-panel/assets/Dashboard-MFDcsVcM.css +1 -0
- package/src/assets/web-panel/assets/Dropdown-mlITwb7d.js +1 -0
- package/src/assets/web-panel/assets/Federation-CgmfLbx1.css +1 -0
- package/src/assets/web-panel/assets/Federation-DtUN3wQa.js +1 -0
- package/src/assets/web-panel/assets/{FormItemContext-Be6TSNxz.js → FormItemContext-BYmWDwAT.js} +1 -1
- package/src/assets/web-panel/assets/{Git-DGcuBXST.css → Git-DPuaGtg7.css} +1 -1
- package/src/assets/web-panel/assets/Git-Du1k1iHz.js +2 -0
- package/src/assets/web-panel/assets/Governance-B2TFaWsf.js +1 -0
- package/src/assets/web-panel/assets/Governance-BoipmXaM.css +1 -0
- package/src/assets/web-panel/assets/Inference-BWxYJF9-.css +1 -0
- package/src/assets/web-panel/assets/Inference-Cm_hmXla.js +1 -0
- package/src/assets/web-panel/assets/KnowledgeGraph-CztPDA96.css +1 -0
- package/src/assets/web-panel/assets/KnowledgeGraph-DLaLMo4r.js +1 -0
- package/src/assets/web-panel/assets/Logs-CElvIBBJ.js +2 -0
- package/src/assets/web-panel/assets/Marketplace-BlR3RCDV.js +1 -0
- package/src/assets/web-panel/assets/Marketplace-Djp5q9dS.css +1 -0
- package/src/assets/web-panel/assets/McpTools-BpHkrlka.js +5 -0
- package/src/assets/web-panel/assets/McpTools-CDjHmzxH.css +1 -0
- package/src/assets/web-panel/assets/Memory-Bcc2hxOA.css +1 -0
- package/src/assets/web-panel/assets/Memory-DeU9ys_m.js +2 -0
- package/src/assets/web-panel/assets/Mtc-CCJZpnJo.js +6 -0
- package/src/assets/web-panel/assets/Mtc-Cc8OJxe_.css +1 -0
- package/src/assets/web-panel/assets/NLProgramming-B_Tie6j1.js +1 -0
- package/src/assets/web-panel/assets/NLProgramming-CLOvy-35.css +1 -0
- package/src/assets/web-panel/assets/Notes-BcpuirPj.js +7 -0
- package/src/assets/web-panel/assets/Organization-BX-cIO8M.css +1 -0
- package/src/assets/web-panel/assets/Organization-B_SHESSc.js +4 -0
- package/src/assets/web-panel/assets/Overflow-R2SOGT0l.js +1 -0
- package/src/assets/web-panel/assets/{OverrideContext-GHsJf9ok.js → OverrideContext-Nubhv68k.js} +1 -1
- package/src/assets/web-panel/assets/P2P-Cx88UaiD.css +1 -0
- package/src/assets/web-panel/assets/P2P-IYYy3cEd.js +2 -0
- package/src/assets/web-panel/assets/Permissions-CR1N42yW.js +4 -0
- package/src/assets/web-panel/assets/Pipeline-DxkXqrH2.css +1 -0
- package/src/assets/web-panel/assets/Pipeline-nwFpKsU_.js +1 -0
- package/src/assets/web-panel/assets/Privacy-BGpz72PX.js +1 -0
- package/src/assets/web-panel/assets/Privacy-CrsfSFKd.css +1 -0
- package/src/assets/web-panel/assets/ProjectSettings-CEDhpgbs.js +2 -0
- package/src/assets/web-panel/assets/Projects-B5IgXt-x.css +1 -0
- package/src/assets/web-panel/assets/Projects-DABi6ylb.js +2 -0
- package/src/assets/web-panel/assets/Providers-HzrcE8ma.js +2 -0
- package/src/assets/web-panel/assets/QuickAsk-6FgX9DC6.js +1 -0
- package/src/assets/web-panel/assets/Recommend-BPhQwye7.js +1 -0
- package/src/assets/web-panel/assets/Recommend-CH6wKzGo.css +1 -0
- package/src/assets/web-panel/assets/Reputation-BL6hTN1s.js +1 -0
- package/src/assets/web-panel/assets/Reputation-D6VPNEd0.css +1 -0
- package/src/assets/web-panel/assets/Row-2akLU3YS.js +1 -0
- package/src/assets/web-panel/assets/RssFeed-D6qNq6Ht.js +3 -0
- package/src/assets/web-panel/assets/Search-B6RalzTB.css +1 -0
- package/src/assets/web-panel/assets/Search-R_b-u9oL.js +1 -0
- package/src/assets/web-panel/assets/Security-13K57V_v.css +1 -0
- package/src/assets/web-panel/assets/Security-DdW4hu_4.js +4 -0
- package/src/assets/web-panel/assets/Services-CnzEzGFN.js +2 -0
- package/src/assets/web-panel/assets/Skeleton-D6RevdW2.js +8 -0
- package/src/assets/web-panel/assets/Skills-DD5ReHH7.js +1 -0
- package/src/assets/web-panel/assets/Sla-CaQOOsjD.js +1 -0
- package/src/assets/web-panel/assets/Sla-K19oOyQc.css +1 -0
- package/src/assets/web-panel/assets/SpeechSettings-D-pGIn9Z.js +1 -0
- package/src/assets/web-panel/assets/SpeechSettings-DYPJTDKz.css +1 -0
- package/src/assets/web-panel/assets/Tasks-BbdO_i4Q.js +1 -0
- package/src/assets/web-panel/assets/Templates-BWTV8-2E.css +1 -0
- package/src/assets/web-panel/assets/Templates-CupAugDn.js +1 -0
- package/src/assets/web-panel/assets/Tenant-D3zkSAV0.css +1 -0
- package/src/assets/web-panel/assets/Tenant-rseAzHcY.js +1 -0
- package/src/assets/web-panel/assets/Tokens-BBOdNRHQ.css +1 -0
- package/src/assets/web-panel/assets/Tokens-DXMokNbR.js +1 -0
- package/src/assets/web-panel/assets/Trigger-DkSZjOlY.js +1 -0
- package/src/assets/web-panel/assets/Trust-CKb7QDH1.js +1 -0
- package/src/assets/web-panel/assets/Trust-DeOo0xAh.css +1 -0
- package/src/assets/web-panel/assets/UkeySign-Cux8_Ib_.js +1 -0
- package/src/assets/web-panel/assets/VideoEditing-CSOjdBZg.js +1 -0
- package/src/assets/web-panel/assets/VideoEditing-DksiizfS.css +1 -0
- package/src/assets/web-panel/assets/Wallet-DHbi5dHt.js +4 -0
- package/src/assets/web-panel/assets/Wallet-gR0ZvZbK.css +1 -0
- package/src/assets/web-panel/assets/WebAuthn-BkGDI33-.js +5 -0
- package/src/assets/web-panel/assets/WebAuthn-SSh5VhVO.css +1 -0
- package/src/assets/web-panel/assets/WorkflowEditor-BFZ3RYva.js +1 -0
- package/src/assets/web-panel/assets/WorkflowEditor-IiwsD8Kh.css +1 -0
- package/src/assets/web-panel/assets/{chat-DY27mJje.js → chat-BQ-Nk2XY.js} +1 -1
- package/src/assets/web-panel/assets/{collapseMotion-CyadT_6x.js → collapseMotion-BIjDVXtT.js} +1 -1
- package/src/assets/web-panel/assets/{colors-B7fDvuJc.js → colors-D2tTvuDI.js} +1 -1
- package/src/assets/web-panel/assets/{compact-item-DgthOVXi.js → compact-item-CqCEUZiy.js} +1 -1
- package/src/assets/web-panel/assets/{createContext-Blw2vgkG.js → createContext-C6HFlAQP.js} +1 -1
- package/src/assets/web-panel/assets/echarts-DmBLM6YO.js +19 -0
- package/src/assets/web-panel/assets/{hasIn-BfL1HJZl.js → hasIn-yp2CbhYc.js} +1 -1
- package/src/assets/web-panel/assets/icons-DvZE-RKs.js +57 -0
- package/src/assets/web-panel/assets/index-4cn1LmJ9.js +1 -0
- package/src/assets/web-panel/assets/index-B0jkl2Zb.js +1 -0
- package/src/assets/web-panel/assets/{index-BHnaIQEm.js → index-B2qFUwGb.js} +2 -2
- package/src/assets/web-panel/assets/index-B74gWYqD.js +1 -0
- package/src/assets/web-panel/assets/index-B8Qxu0q2.js +1 -0
- package/src/assets/web-panel/assets/index-B9b_mz4I.js +55 -0
- package/src/assets/web-panel/assets/index-BAA1SFp1.js +1 -0
- package/src/assets/web-panel/assets/index-BJeE7n_I.js +12 -0
- package/src/assets/web-panel/assets/index-BJoK7MkB.js +13 -0
- package/src/assets/web-panel/assets/{index-DyRzaN4b.js → index-BTL2yIvT.js} +3 -3
- package/src/assets/web-panel/assets/index-BlVnFOFL.js +1 -0
- package/src/assets/web-panel/assets/{index-x8iHfZRd.js → index-Blq49aTW.js} +3 -3
- package/src/assets/web-panel/assets/{index-BsleJWGy.js → index-BxSsO6Sm.js} +2 -2
- package/src/assets/web-panel/assets/index-CA3g3EpL.js +1 -0
- package/src/assets/web-panel/assets/{index-BuEOhTAw.js → index-CFoFkVUt.js} +5 -5
- package/src/assets/web-panel/assets/index-CWhXxdyo.js +1 -0
- package/src/assets/web-panel/assets/index-CXf0zL5i.js +13 -0
- package/src/assets/web-panel/assets/index-CcwZodUl.js +1 -0
- package/src/assets/web-panel/assets/index-Cd6m6ynF.js +1 -0
- package/src/assets/web-panel/assets/index-CfX1DEtk.css +1 -0
- package/src/assets/web-panel/assets/index-Cfy9l115.js +1 -0
- package/src/assets/web-panel/assets/index-CijiVpfO.js +1 -0
- package/src/assets/web-panel/assets/index-Cpfx7-LN.js +12 -0
- package/src/assets/web-panel/assets/index-CrEEL63u.js +1 -0
- package/src/assets/web-panel/assets/index-CucxAdwN.js +6 -0
- package/src/assets/web-panel/assets/index-CvuBD5TK.js +3 -0
- package/src/assets/web-panel/assets/index-Cw4v7ezB.js +65 -0
- package/src/assets/web-panel/assets/{index-00RNC3ZQ.js → index-D34iabcS.js} +8 -8
- package/src/assets/web-panel/assets/index-DEKuiAPQ.js +3 -0
- package/src/assets/web-panel/assets/index-Dj4P0iWm.js +1 -0
- package/src/assets/web-panel/assets/index-DjeNNVwu.js +1 -0
- package/src/assets/web-panel/assets/index-DlgMVieO.js +1 -0
- package/src/assets/web-panel/assets/{index-CiN4NEAa.js → index-DnehXcB-.js} +2 -2
- package/src/assets/web-panel/assets/index-JszcDpsT.js +7 -0
- package/src/assets/web-panel/assets/index-KdFFI-p3.js +1 -0
- package/src/assets/web-panel/assets/index-NNymVAza.js +3 -0
- package/src/assets/web-panel/assets/index-aw2DwKj-.js +21 -0
- package/src/assets/web-panel/assets/index-nzDx0JAR.js +1 -0
- package/src/assets/web-panel/assets/index-w1xShUDf.js +1 -0
- package/src/assets/web-panel/assets/{initDefaultProps-BeWIEzBr.js → initDefaultProps-DfdVxwz6.js} +1 -1
- package/src/assets/web-panel/assets/motion-CL0bdvJg.js +11 -0
- package/src/assets/web-panel/assets/move-Bo9Fgzv7.js +4 -0
- package/src/assets/web-panel/assets/mtc-parser-pGMSt10g.js +1 -0
- package/src/assets/web-panel/assets/{omit-BS0H_YEP.js → omit-C-cc6wHr.js} +1 -1
- package/src/assets/web-panel/assets/{pickAttrs-BOGgGau8.js → pickAttrs-CjLp5RN-.js} +1 -1
- package/src/assets/web-panel/assets/{placementArrow--c5TQkDQ.js → placementArrow-CJa8gsqa.js} +1 -1
- package/src/assets/web-panel/assets/{responsiveObserve-CrHOX7jp.js → responsiveObserve-CcDj3P-p.js} +1 -1
- package/src/assets/web-panel/assets/slide-CpvbHO26.js +4 -0
- package/src/assets/web-panel/assets/statusUtils-BK69kP1U.js +1 -0
- package/src/assets/web-panel/assets/{styleChecker-CiDrXnbi.js → styleChecker-CDvBRzsG.js} +1 -1
- package/src/assets/web-panel/assets/useFlexGapSupport-CRN_hzJt.js +1 -0
- package/src/assets/web-panel/assets/useFs-BD-YRwbU.js +1 -0
- package/src/assets/web-panel/assets/{useMergedState-CLY-UHry.js → useMergedState-TP9VIF2K.js} +1 -1
- package/src/assets/web-panel/assets/{useRefs-HzOoMkZk.js → useRefs-BhIz_lC3.js} +1 -1
- package/src/assets/web-panel/assets/{useState-yWVBuz1S.js → useState-CpKsyozn.js} +1 -1
- package/src/assets/web-panel/assets/vendor-B6ToihkA.js +1 -0
- package/src/assets/web-panel/assets/vnode-Bzp-FsbB.js +1 -0
- package/src/assets/web-panel/assets/{ws-4ur1fGsk.js → ws-D_5-FRIb.js} +1 -1
- package/src/assets/web-panel/assets/zoom-BHqpWXJV.js +4 -0
- package/src/assets/web-panel/index.html +4 -4
- package/src/commands/audit.js +296 -0
- package/src/commands/crosschain.js +564 -8
- package/src/commands/init.js +16 -1
- package/src/commands/mtc.js +2735 -86
- package/src/lib/audit-mtc.js +504 -0
- package/src/lib/cross-chain-mtc.js +904 -0
- package/src/assets/web-panel/assets/AIOps-Bfzpnnlg.css +0 -1
- package/src/assets/web-panel/assets/AIOps-ztGJppiG.js +0 -1
- package/src/assets/web-panel/assets/ActionButton-DCuat-R-.js +0 -1
- package/src/assets/web-panel/assets/Analytics-BFI7jbwM.css +0 -1
- package/src/assets/web-panel/assets/Analytics-m_EtU-RR.js +0 -3
- package/src/assets/web-panel/assets/AppLayout-8HizVjee.css +0 -1
- package/src/assets/web-panel/assets/AppLayout-Crz8jbEC.js +0 -1
- package/src/assets/web-panel/assets/Audit-CNLWjMXN.js +0 -1
- package/src/assets/web-panel/assets/Audit-kU7vbN-D.css +0 -1
- package/src/assets/web-panel/assets/Backup-CggaSq9O.js +0 -1
- package/src/assets/web-panel/assets/Backup-DxLiJzmk.css +0 -1
- package/src/assets/web-panel/assets/BaseInput-BssiYvl6.js +0 -1
- package/src/assets/web-panel/assets/Chat-tuVfpQUO.js +0 -2
- package/src/assets/web-panel/assets/Checkbox-BUUkXdQg.js +0 -1
- package/src/assets/web-panel/assets/Codegen-AVAcL7NA.css +0 -1
- package/src/assets/web-panel/assets/Codegen-CHu-7YGr.js +0 -1
- package/src/assets/web-panel/assets/Col-2IaMFwmX.js +0 -1
- package/src/assets/web-panel/assets/Community-CYL7Fvjq.js +0 -1
- package/src/assets/web-panel/assets/Community-DqDfLQui.css +0 -1
- package/src/assets/web-panel/assets/Compact-5yRVELhA.js +0 -1
- package/src/assets/web-panel/assets/Compliance-CKuIDJHK.js +0 -1
- package/src/assets/web-panel/assets/Compliance-CKxw6vIq.css +0 -1
- package/src/assets/web-panel/assets/Cron-DIfkI7vf.js +0 -2
- package/src/assets/web-panel/assets/Crosschain-BkjY-lst.js +0 -1
- package/src/assets/web-panel/assets/Crosschain-DThGgQk8.css +0 -1
- package/src/assets/web-panel/assets/DID-BDvsVa08.css +0 -1
- package/src/assets/web-panel/assets/DID-ChzRkgNy.js +0 -2
- package/src/assets/web-panel/assets/Dashboard-Cviwdc26.css +0 -1
- package/src/assets/web-panel/assets/Dashboard-DKrbXVNn.js +0 -3
- package/src/assets/web-panel/assets/Dropdown-BYGoxH1z.js +0 -1
- package/src/assets/web-panel/assets/Federation-B8QX-IaA.js +0 -1
- package/src/assets/web-panel/assets/Federation-BftELHDw.css +0 -1
- package/src/assets/web-panel/assets/Git-BBnGgbBR.js +0 -2
- package/src/assets/web-panel/assets/Governance-BfmfQBGB.css +0 -1
- package/src/assets/web-panel/assets/Governance-CxUHZMsp.js +0 -1
- package/src/assets/web-panel/assets/Inference-BlnOG71q.js +0 -1
- package/src/assets/web-panel/assets/Inference-EFFc7eNZ.css +0 -1
- package/src/assets/web-panel/assets/Keyframes-C7fCrnlS.js +0 -1
- package/src/assets/web-panel/assets/KnowledgeGraph-U8ps3aGJ.css +0 -1
- package/src/assets/web-panel/assets/KnowledgeGraph-vkVq38kC.js +0 -19
- package/src/assets/web-panel/assets/Logs-Bxx7WARH.js +0 -2
- package/src/assets/web-panel/assets/Marketplace-B-4uYu_j.css +0 -1
- package/src/assets/web-panel/assets/Marketplace-Bh8ExT9_.js +0 -1
- package/src/assets/web-panel/assets/McpTools-CTQrNVAQ.css +0 -1
- package/src/assets/web-panel/assets/McpTools-Djj_a3ko.js +0 -5
- package/src/assets/web-panel/assets/Memory-DRghrGJr.css +0 -1
- package/src/assets/web-panel/assets/Memory-DlgNgAov.js +0 -2
- package/src/assets/web-panel/assets/NLProgramming-BN3jaoen.js +0 -1
- package/src/assets/web-panel/assets/NLProgramming-jURs-f-a.css +0 -1
- package/src/assets/web-panel/assets/Notes-De7mIkkV.js +0 -7
- package/src/assets/web-panel/assets/Organization-B-98mdK2.js +0 -4
- package/src/assets/web-panel/assets/Organization-DdOOM4ic.css +0 -1
- package/src/assets/web-panel/assets/Overflow-G0I8IlY3.js +0 -1
- package/src/assets/web-panel/assets/P2P-DIUgHZ1z.js +0 -2
- package/src/assets/web-panel/assets/P2P-OEzOeMZX.css +0 -1
- package/src/assets/web-panel/assets/Permissions-B8XycCVk.js +0 -4
- package/src/assets/web-panel/assets/Pipeline-DyqCLFVr.css +0 -1
- package/src/assets/web-panel/assets/Pipeline-cUpETlXS.js +0 -1
- package/src/assets/web-panel/assets/Portal-SsPhn64D.js +0 -1
- package/src/assets/web-panel/assets/Privacy-B6J89UBw.js +0 -1
- package/src/assets/web-panel/assets/Privacy-B_cAicd1.css +0 -1
- package/src/assets/web-panel/assets/ProjectSettings-2Ftw0zt_.js +0 -2
- package/src/assets/web-panel/assets/Projects-CcOdFpgr.js +0 -2
- package/src/assets/web-panel/assets/Projects-DxKelI5h.css +0 -1
- package/src/assets/web-panel/assets/Providers-D0r2qSf-.js +0 -2
- package/src/assets/web-panel/assets/QuickAsk-CwsPpfkq.js +0 -1
- package/src/assets/web-panel/assets/Recommend-BYEDetJm.js +0 -1
- package/src/assets/web-panel/assets/Recommend-DgNSCgRX.css +0 -1
- package/src/assets/web-panel/assets/Reputation-Bli4hBGH.js +0 -1
- package/src/assets/web-panel/assets/Reputation-y-46ThW8.css +0 -1
- package/src/assets/web-panel/assets/Row-DTW9_BYi.js +0 -1
- package/src/assets/web-panel/assets/RssFeed-kwj_himl.js +0 -3
- package/src/assets/web-panel/assets/Search-BTk9rglb.css +0 -1
- package/src/assets/web-panel/assets/Search-DymcqASO.js +0 -1
- package/src/assets/web-panel/assets/Security-Bh3yvyNN.js +0 -4
- package/src/assets/web-panel/assets/Security-Dwxw7rfP.css +0 -1
- package/src/assets/web-panel/assets/Services-O4UZaYur.js +0 -2
- package/src/assets/web-panel/assets/Skeleton-B82oQZTz.js +0 -8
- package/src/assets/web-panel/assets/Skills-BfkrC05g.js +0 -1
- package/src/assets/web-panel/assets/Sla-C1WYuQKf.css +0 -1
- package/src/assets/web-panel/assets/Sla-DEs5XCIf.js +0 -1
- package/src/assets/web-panel/assets/SpeechSettings-BWMhb10j.js +0 -1
- package/src/assets/web-panel/assets/SpeechSettings-CiKvsIyV.css +0 -1
- package/src/assets/web-panel/assets/Tasks-CIBUb9M1.js +0 -1
- package/src/assets/web-panel/assets/Templates-DAkzr0xS.css +0 -1
- package/src/assets/web-panel/assets/Templates-iqSuJY-O.js +0 -1
- package/src/assets/web-panel/assets/Tenant-BJr-h-_0.css +0 -1
- package/src/assets/web-panel/assets/Tenant-CLqZjkVq.js +0 -1
- package/src/assets/web-panel/assets/Tokens-Bwz8aQtK.js +0 -1
- package/src/assets/web-panel/assets/Tokens-KvJRHQcl.css +0 -1
- package/src/assets/web-panel/assets/Trigger-CxnChVoS.js +0 -1
- package/src/assets/web-panel/assets/Trust-BLI308Ik.css +0 -1
- package/src/assets/web-panel/assets/Trust-Bp23lyZl.js +0 -1
- package/src/assets/web-panel/assets/UkeySign-_VAMquoh.js +0 -1
- package/src/assets/web-panel/assets/VideoEditing-BA1N-5kq.css +0 -1
- package/src/assets/web-panel/assets/VideoEditing-Bxqwg4zW.js +0 -1
- package/src/assets/web-panel/assets/Wallet-Cvht6Yrh.js +0 -4
- package/src/assets/web-panel/assets/Wallet-DnIumafl.css +0 -1
- package/src/assets/web-panel/assets/WebAuthn-CNPl2VQR.css +0 -1
- package/src/assets/web-panel/assets/WebAuthn-DD4EomJu.js +0 -5
- package/src/assets/web-panel/assets/WorkflowEditor-CEKNTS5G.css +0 -1
- package/src/assets/web-panel/assets/WorkflowEditor-CJy5e0fl.js +0 -1
- package/src/assets/web-panel/assets/_plugin-vue_export-helper-DlAUqK2U.js +0 -1
- package/src/assets/web-panel/assets/icons-CJACPYXu.js +0 -57
- package/src/assets/web-panel/assets/index-B9B9Zbf3.js +0 -1
- package/src/assets/web-panel/assets/index-BAsMNMbh.js +0 -1
- package/src/assets/web-panel/assets/index-BB5y5Y0z.js +0 -14
- package/src/assets/web-panel/assets/index-BVjDIZQ4.js +0 -1
- package/src/assets/web-panel/assets/index-BZeRnzuY.js +0 -55
- package/src/assets/web-panel/assets/index-BZfoAtZC.js +0 -1
- package/src/assets/web-panel/assets/index-Bl2nXm2J.js +0 -13
- package/src/assets/web-panel/assets/index-Bw1dwHWm.js +0 -1
- package/src/assets/web-panel/assets/index-Bw_UV2ez.js +0 -13
- package/src/assets/web-panel/assets/index-C8GYpC65.js +0 -1
- package/src/assets/web-panel/assets/index-CBHlKa-J.js +0 -3
- package/src/assets/web-panel/assets/index-CL-7KCFI.js +0 -3
- package/src/assets/web-panel/assets/index-CqjUUbil.js +0 -12
- package/src/assets/web-panel/assets/index-Cqtt1N0F.js +0 -1
- package/src/assets/web-panel/assets/index-CyGyEIVX.css +0 -1
- package/src/assets/web-panel/assets/index-D1QP9Ue1.js +0 -1
- package/src/assets/web-panel/assets/index-D6BUjL6I.js +0 -1
- package/src/assets/web-panel/assets/index-DN7ywgBJ.js +0 -1
- package/src/assets/web-panel/assets/index-DasW8LIs.js +0 -1
- package/src/assets/web-panel/assets/index-Dd9McFt_.js +0 -1
- package/src/assets/web-panel/assets/index-DdzLEdL6.js +0 -7
- package/src/assets/web-panel/assets/index-DhML6F3z.js +0 -1
- package/src/assets/web-panel/assets/index-DjN0nHiV.js +0 -1
- package/src/assets/web-panel/assets/index-DjhWpiZW.js +0 -1
- package/src/assets/web-panel/assets/index-DouFuKIR.js +0 -1
- package/src/assets/web-panel/assets/index-DzWwjWYN.js +0 -21
- package/src/assets/web-panel/assets/index-Dza_w3kG.js +0 -1
- package/src/assets/web-panel/assets/index-Q4qgOtOe.js +0 -12
- package/src/assets/web-panel/assets/index-U4Zd5IK6.js +0 -8
- package/src/assets/web-panel/assets/index-Vit9TJBu.js +0 -36
- package/src/assets/web-panel/assets/index-lkJllVbJ.js +0 -6
- package/src/assets/web-panel/assets/index-uMWaXVtR.js +0 -3
- package/src/assets/web-panel/assets/index-uwh_ikIt.js +0 -1
- package/src/assets/web-panel/assets/motion-CIQOKmi6.js +0 -11
- package/src/assets/web-panel/assets/move-ZgRPlBji.js +0 -4
- package/src/assets/web-panel/assets/slide-Dd2mJUD0.js +0 -4
- package/src/assets/web-panel/assets/statusUtils-5QFvAofV.js +0 -1
- package/src/assets/web-panel/assets/transition-CVd2ueaJ.js +0 -1
- package/src/assets/web-panel/assets/useConfigInject-DIkkDpt1.js +0 -2
- package/src/assets/web-panel/assets/useFlexGapSupport-rrtj6f1h.js +0 -1
- package/src/assets/web-panel/assets/useFs-CK8VYPus.js +0 -1
- package/src/assets/web-panel/assets/vendor-D0Qjn73K.js +0 -1
- package/src/assets/web-panel/assets/vnode-xRp-KMjS.js +0 -1
- package/src/assets/web-panel/assets/zoom-CrI_kdTW.js +0 -4
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{u as K}from"./ws-4ur1fGsk.js";import{_ as O}from"./_plugin-vue_export-helper-DlAUqK2U.js";import{_ as U}from"./icons-CJACPYXu.js";import{w as j,l as z,F as i,D as o,c as a,x as d,m as A,G as F,I as h,H as I,L as R,n as w,q as l,r,j as L,v as u,J as b,u as G,E as J}from"./vendor-D0Qjn73K.js";const Q={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},P={style:{display:"flex",gap:"10px",margin:"12px 0"}},X={key:0,style:{"text-align":"center",padding:"40px",color:"var(--text-muted)"}},Y={key:1,style:{"text-align":"center",padding:"40px",color:"var(--text-muted)"}},Z={key:2},ee=["innerHTML"],te={__name:"Logs",setup(ae){const C=K(),k=r("status"),v=r(!1),g=r(""),m=r(""),c=r(""),_=r(!0),n=r(null),T={status:"status",doctor:"doctor","skill-sources":"skill sources","llm-providers":"llm providers"},f=L(()=>m.value.split(`
|
|
2
|
-
`)),p=L(()=>{if(!c.value)return f.value;const e=c.value.toLowerCase();return f.value.filter(t=>t.toLowerCase().includes(e))});function H(e){return e.includes("✖")||e.includes("error")||e.includes("Error")||e.includes("failed")?"line-error":e.includes("✔")||e.includes("✓")||e.includes("success")||e.includes("running")?"line-success":e.includes("warn")||e.includes("Warn")||e.includes("○")?"line-warn":e.startsWith(" ")||e.startsWith(" ")?"line-indent":""}function M(e){return e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">")}function B(e){if(!c.value)return e;const t=c.value.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return e.replace(new RegExp(`(${t})`,"gi"),"<mark>$1</mark>")}async function x(){v.value=!0,g.value="",m.value="";const e=T[k.value]||"status";try{const{output:t}=await C.execute(e,3e4);m.value=t,_.value&&(await w(),n.value&&(n.value.scrollTop=n.value.scrollHeight))}catch(t){g.value=`执行失败: ${t.message}`,m.value=g.value}finally{v.value=!1}}return j(p,async()=>{_.value&&(await w(),n.value&&(n.value.scrollTop=n.value.scrollHeight))}),z(x),(e,t)=>{const N=l("a-checkbox"),S=l("a-button"),$=l("a-space"),y=l("a-tab-pane"),E=l("a-tabs"),V=l("a-input-search"),W=l("a-tag"),q=l("a-spin");return u(),i("div",null,[o("div",Q,[t[5]||(t[5]=o("div",null,[o("h2",{class:"page-title"},"日志查看"),o("p",{class:"page-sub"},"系统运行日志与诊断输出")],-1)),a($,null,{default:d(()=>[a(N,{checked:_.value,"onUpdate:checked":t[0]||(t[0]=s=>_.value=s)},{default:d(()=>[...t[3]||(t[3]=[b("自动滚动",-1)])]),_:1},8,["checked"]),a(S,{type:"primary",ghost:"",loading:v.value,onClick:x},{icon:d(()=>[a(G(U))]),default:d(()=>[t[4]||(t[4]=b(" 刷新 ",-1))]),_:1},8,["loading"])]),_:1})]),a(E,{activeKey:k.value,"onUpdate:activeKey":t[1]||(t[1]=s=>k.value=s),onChange:x,style:{"margin-bottom":"0"}},{default:d(()=>[a(y,{key:"status",tab:"系统状态"}),a(y,{key:"doctor",tab:"环境诊断"}),a(y,{key:"skill-sources",tab:"技能来源"}),a(y,{key:"llm-providers",tab:"LLM 提供商"})]),_:1},8,["activeKey"]),o("div",P,[a(V,{value:c.value,"onUpdate:value":t[2]||(t[2]=s=>c.value=s),placeholder:"搜索日志内容...","allow-clear":"",style:{flex:"1"}},null,8,["value"]),p.value.length!==f.value.length?(u(),A(W,{key:0,color:"blue"},{default:d(()=>[b(h(p.value.length)+" / "+h(f.value.length)+" 行 ",1)]),_:1})):F("",!0)]),o("div",{ref_key:"logContainer",ref:n,class:"log-box"},[v.value?(u(),i("div",X,[a(q,{size:"large"}),t[6]||(t[6]=o("div",{style:{"margin-top":"10px"}},"加载中...",-1))])):p.value.length?(u(),i("div",Z,[(u(!0),i(I,null,R(p.value,(s,D)=>(u(),i("div",{key:D,class:J(["log-line",H(s)]),innerHTML:B(M(s))},null,10,ee))),128))])):(u(),i("div",Y,h(g.value||"暂无日志内容,点击刷新加载"),1))],512)])}}},re=O(te,[["__scopeId","data-v-b316ead3"]]);export{re as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.page-title[data-v-77488449]{margin:0;color:var(--text-primary);font-size:22px;font-weight:600}.page-sub[data-v-77488449]{margin:4px 0 0;color:var(--text-secondary);font-size:13px}.market-tabs[data-v-77488449] .ant-tabs-nav{margin-bottom:16px}.filter-bar[data-v-77488449]{display:flex;align-items:center;gap:12px;margin-bottom:12px;flex-wrap:wrap}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{u as Oe}from"./ws-4ur1fGsk.js";import{s as Ne}from"./community-parser-CO25nZFt.js";import{_ as De}from"./_plugin-vue_export-helper-DlAUqK2U.js";import{a as k}from"./index-BB5y5Y0z.js";import{_ as Fe,r as Le,c as re,a9 as Be,a as ue,aM as Ve,m as Ee}from"./icons-CJACPYXu.js";import{l as Pe,F as v,D as x,c as a,x as o,q as p,r as b,v as r,J as _,u as y,H as h,L as F,m as C,I as m,G as g,j as P,a as ie}from"./vendor-D0Qjn73K.js";import"./index-Vit9TJBu.js";import"./useConfigInject-DIkkDpt1.js";import"./transition-CVd2ueaJ.js";import"./Keyframes-C7fCrnlS.js";import"./Portal-SsPhn64D.js";import"./index-U4Zd5IK6.js";function X(l){const s=Ne(l);if(!s)return null;try{return JSON.parse(s)}catch{}const u=s.match(/\{[\s\S]*\}|\[[\s\S]*\]/);if(!u)return null;try{return JSON.parse(u[0])}catch{return null}}const Q=Object.freeze(["draft","published","deprecated","suspended"]),Je=Object.freeze(["pending","running","success","failed","timeout"]);function L(l,s=0){return typeof l=="number"&&Number.isFinite(l)?l:s}function Ke(l,s=0){if(!l||typeof l!="object")return null;const u=l.id||"";return u?{key:u,id:u,name:String(l.name||""),version:String(l.version||""),description:String(l.description||""),endpoint:l.endpoint||"",pricing:l.pricing??null,status:String(l.status||"draft").toLowerCase(),owner:l.owner||"",invocationCount:L(l.invocationCount??l.invocation_count,0),createdAt:l.createdAt??l.created_at??null,updatedAt:l.updatedAt??l.updated_at??null,_idx:s}:null}function qe(l){const s=X(l);return Array.isArray(s)?s.map(Ke).filter(Boolean):[]}function Ge(l,s=0){if(!l||typeof l!="object")return null;const u=l.id||"";return u?{key:u,id:u,serviceId:l.serviceId||l.service_id||"",callerId:l.callerId||l.caller_id||"",input:l.input??null,output:l.output??null,status:String(l.status||"success").toLowerCase(),durationMs:l.durationMs??l.duration_ms??null,error:l.error||"",createdAt:l.createdAt??l.created_at??null,_idx:s}:null}function He(l){const s=X(l);return Array.isArray(s)?s.map(Ge).filter(Boolean):[]}function We(l){const s={total:0,counts:{success:0,failed:0,timeout:0,pending:0,running:0},successRate:0,avgDurationMs:0,scopedToService:null},u=X(l);if(!u||typeof u!="object"||Array.isArray(u))return s;s.total=L(u.total,0),s.successRate=L(u.successRate??u.success_rate,0),s.avgDurationMs=L(u.avgDurationMs??u.avg_duration_ms,0),s.scopedToService=u.scopedToService??u.scoped_to_service??null;const I=u.counts&&typeof u.counts=="object"?u.counts:{};for(const w of Object.keys(s.counts))s.counts[w]=L(I[w],0);return s}function ce(l){if(l==null||l==="")return"—";const s=typeof l=="number"?new Date(l):new Date(String(l));return isNaN(s.getTime())?String(l):s.toLocaleString("zh-CN",{hour12:!1})}const Qe={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},Xe={class:"filter-bar"},Ye={style:{color:"var(--text-primary)","font-weight":"500"}},Ze={key:1,style:{color:"var(--text-secondary)","font-size":"11px","margin-top":"2px"}},et={key:2,style:{color:"#722ed1","font-weight":"500"}},tt={key:0,style:{color:"var(--text-secondary)","font-family":"monospace","font-size":"11px"}},at={key:1,style:{color:"var(--text-muted)"}},ot={key:4,style:{color:"var(--text-secondary)","font-size":"11px"}},nt={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},lt={class:"filter-bar"},st={style:{color:"var(--text-primary)"}},rt={style:{color:"var(--text-muted)","font-size":"11px","font-family":"monospace"}},ut={key:0,style:{color:"var(--text-secondary)","font-family":"monospace","font-size":"11px"}},it={key:1,style:{color:"var(--text-muted)"}},ct={key:0,style:{color:"var(--text-secondary)","font-size":"12px"}},dt={key:1,style:{color:"var(--text-muted)"}},pt={key:4,style:{color:"var(--text-secondary)","font-size":"11px"}},vt={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},ft={__name:"Marketplace",setup(l){const s=Oe(),u=b(!1),I=b(!1),w=b(!1),z=b([]),J=b([]),R=b({total:0,counts:{success:0,failed:0,timeout:0,pending:0,running:0},successRate:0,avgDurationMs:0,scopedToService:null}),K=b("services"),T=b(""),U=b(""),B=b(null),V=b(!1),E=b(!1),c=ie({name:"",version:"",description:"",endpoint:"",owner:"",status:"published"}),i=ie({serviceId:"",caller:"",status:"success",durationMs:null,error:""}),q=b(""),de=[{title:"名称",key:"name"},{title:"状态",key:"status",width:"120px"},{title:"调用次数",key:"invocationCount",width:"110px"},{title:"所有者",key:"owner",width:"180px"},{title:"创建时间",key:"createdAt",width:"160px"},{title:"操作",key:"action",width:"180px"}],pe=[{title:"服务",key:"service"},{title:"调用方",key:"caller",width:"180px"},{title:"状态",key:"status",width:"100px"},{title:"耗时",key:"durationMs",width:"110px"},{title:"时间",key:"createdAt",width:"160px"}],ve=P(()=>z.value.filter(n=>n.status==="published").length),fe=P(()=>R.value.successRate*100),me=P(()=>{let n=z.value;if(T.value&&(n=n.filter(e=>e.status===T.value)),U.value){const e=U.value.toLowerCase();n=n.filter(f=>f.name.toLowerCase().includes(e))}return n}),_e=P(()=>B.value?J.value.filter(n=>n.serviceId===B.value):J.value);function M(n){return{draft:"草稿",published:"已发布",deprecated:"已弃用",suspended:"已暂停"}[n]||n}function ye(n){return{draft:"default",published:"green",deprecated:"orange",suspended:"red"}[n]||"default"}function Y(n){return{pending:"待处理",running:"运行中",success:"成功",failed:"失败",timeout:"超时"}[n]||n}function ge(n){return{pending:"default",running:"processing",success:"green",failed:"red",timeout:"orange"}[n]||"default"}function Z(n){return n?n.length>28?n.slice(0,16)+"..."+n.slice(-8):n:""}function be(n,e){return n?n.length>e?n.slice(0,e)+"...":n:""}function ke(n){const e=z.value.find(f=>f.id===n);return e?e.name:"(已删除)"}async function $(){u.value=!0;try{const[n,e,f]=await Promise.all([s.execute("marketplace list --limit 200 --json",1e4).catch(()=>({output:""})),s.execute("marketplace invocations --limit 200 --json",1e4).catch(()=>({output:""})),s.execute("marketplace stats --json",1e4).catch(()=>({output:""}))]);z.value=qe(n.output),J.value=He(e.output),R.value=We(f.output)}catch(n){k.error("加载市场数据失败: "+(n?.message||n))}finally{u.value=!1}}async function xe(){const n=c.name.trim();if(!n){k.warning("请输入服务名称");return}I.value=!0;try{const e=[`marketplace publish "${n.replace(/"/g,'\\"')}"`];c.version.trim()&&e.push(`--version "${c.version.trim().replace(/"/g,'\\"')}"`),c.description.trim()&&e.push(`--description "${c.description.trim().replace(/"/g,'\\"')}"`),c.endpoint.trim()&&e.push(`--endpoint "${c.endpoint.trim().replace(/"/g,'\\"')}"`),c.owner.trim()&&e.push(`--owner "${c.owner.trim().replace(/"/g,'\\"')}"`),e.push(`--status ${c.status}`),e.push("--json");const{output:f}=await s.execute(e.join(" "),15e3);if(/error|failed|失败/i.test(f)&&!/"id"/.test(f)){k.error("发布失败: "+f.slice(0,120));return}k.success("服务已发布"),V.value=!1,ee(),await $()}catch(e){k.error("发布失败: "+(e?.message||e))}finally{I.value=!1}}function he(n){if(n.status!=="published"){k.warning('只能对"已发布"状态的服务记录调用');return}i.serviceId=n.id,i.caller="",i.status="success",i.durationMs=null,i.error="",q.value=n.name,E.value=!0}async function Se(){w.value=!0;try{const n=[`marketplace record ${i.serviceId}`];i.caller.trim()&&n.push(`--caller "${i.caller.trim().replace(/"/g,'\\"')}"`),n.push(`--status ${i.status}`),i.durationMs!=null&&n.push(`--duration-ms ${i.durationMs}`),(i.status==="failed"||i.status==="timeout")&&i.error.trim()&&n.push(`--error "${i.error.trim().replace(/"/g,'\\"')}"`),n.push("--json");const{output:e}=await s.execute(n.join(" "),15e3);if(/error|failed|失败/i.test(e)&&!/"id"/.test(e)){k.error("记录失败: "+e.slice(0,120));return}k.success("调用已记录"),E.value=!1,K.value="invocations",await $()}catch(n){k.error("记录失败: "+(n?.message||n))}finally{w.value=!1}}async function Ce(n,e){if(e!==n.status)try{const{output:f}=await s.execute(`marketplace status ${n.id} ${e} --json`,1e4);if(/error|invalid|失败/i.test(f)&&!/"status"/.test(f)){k.error("状态转换失败: "+f.slice(0,120));return}k.success(`服务状态已更新为 ${M(e)}`),await $()}catch(f){k.error("状态转换失败: "+(f?.message||f))}}function ee(){c.name="",c.version="",c.description="",c.endpoint="",c.owner="",c.status="published"}function we(){i.serviceId="",i.caller="",i.status="success",i.durationMs=null,i.error="",q.value=""}return Pe($),(n,e)=>{const f=p("a-button"),ze=p("a-space"),j=p("a-statistic"),O=p("a-card"),N=p("a-col"),Me=p("a-row"),te=p("a-radio-button"),Ae=p("a-radio-group"),Ie=p("a-input-search"),G=p("a-tag"),Re=p("a-menu-item"),Te=p("a-menu"),Ue=p("a-dropdown"),ae=p("a-table"),oe=p("a-tab-pane"),H=p("a-select-option"),W=p("a-select"),$e=p("a-tabs"),D=p("a-input"),S=p("a-form-item"),ne=p("a-textarea"),le=p("a-form"),se=p("a-modal"),je=p("a-input-number");return r(),v("div",null,[x("div",Qe,[e[19]||(e[19]=x("div",null,[x("h2",{class:"page-title"},"技能市场"),x("p",{class:"page-sub"},"发布技能服务 · 记录调用 · 查看统计")],-1)),a(ze,null,{default:o(()=>[a(f,{loading:u.value,onClick:$},{icon:o(()=>[a(y(Fe))]),default:o(()=>[e[17]||(e[17]=_(" 刷新 ",-1))]),_:1},8,["loading"]),a(f,{type:"primary",onClick:e[0]||(e[0]=t=>V.value=!0)},{icon:o(()=>[a(y(Le))]),default:o(()=>[e[18]||(e[18]=_(" 发布服务 ",-1))]),_:1})]),_:1})]),a(Me,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:o(()=>[a(N,{xs:12,sm:8,lg:5},{default:o(()=>[a(O,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:o(()=>[a(j,{title:"服务总数",value:z.value.length,"value-style":{color:"#1677ff",fontSize:"20px"}},{prefix:o(()=>[a(y(re))]),_:1},8,["value"])]),_:1})]),_:1}),a(N,{xs:12,sm:8,lg:5},{default:o(()=>[a(O,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:o(()=>[a(j,{title:"已发布",value:ve.value,"value-style":{color:"#52c41a",fontSize:"20px"}},{prefix:o(()=>[a(y(Be))]),_:1},8,["value"])]),_:1})]),_:1}),a(N,{xs:12,sm:8,lg:5},{default:o(()=>[a(O,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:o(()=>[a(j,{title:"调用总数",value:R.value.total,"value-style":{color:"#722ed1",fontSize:"20px"}},{prefix:o(()=>[a(y(ue))]),_:1},8,["value"])]),_:1})]),_:1}),a(N,{xs:12,sm:8,lg:5},{default:o(()=>[a(O,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:o(()=>[a(j,{title:"成功率",value:fe.value,suffix:"%",precision:1,"value-style":{color:R.value.successRate>=.9?"#52c41a":"#faad14",fontSize:"20px"}},{prefix:o(()=>[a(y(Ve))]),_:1},8,["value","value-style"])]),_:1})]),_:1}),a(N,{xs:24,sm:8,lg:4},{default:o(()=>[a(O,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:o(()=>[a(j,{title:"平均耗时",value:R.value.avgDurationMs,suffix:"ms","value-style":{color:"#faad14",fontSize:"20px"}},{prefix:o(()=>[a(y(Ee))]),_:1},8,["value"])]),_:1})]),_:1})]),_:1}),a($e,{activeKey:K.value,"onUpdate:activeKey":e[4]||(e[4]=t=>K.value=t),class:"market-tabs"},{default:o(()=>[a(oe,{key:"services",tab:"服务"},{default:o(()=>[x("div",Xe,[a(Ae,{value:T.value,"onUpdate:value":e[1]||(e[1]=t=>T.value=t),size:"small","button-style":"solid"},{default:o(()=>[a(te,{value:""},{default:o(()=>[...e[20]||(e[20]=[_("全部",-1)])]),_:1}),(r(!0),v(h,null,F(y(Q),t=>(r(),C(te,{key:t,value:t},{default:o(()=>[_(m(M(t)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"]),a(Ie,{value:U.value,"onUpdate:value":e[2]||(e[2]=t=>U.value=t),placeholder:"按名称搜索","allow-clear":"",style:{"max-width":"280px"}},null,8,["value"])]),a(ae,{columns:de,"data-source":me.value,pagination:{pageSize:20,showTotal:t=>`共 ${t} 条`},size:"small",loading:u.value,style:{background:"var(--bg-card)"}},{bodyCell:o(({column:t,record:d})=>[t.key==="name"?(r(),v(h,{key:0},[x("span",Ye,m(d.name),1),d.version?(r(),C(G,{key:0,color:"blue",style:{"margin-left":"6px","font-size":"10px"}},{default:o(()=>[_(" v"+m(d.version),1)]),_:2},1024)):g("",!0),d.description?(r(),v("div",Ze,m(be(d.description,80)),1)):g("",!0)],64)):g("",!0),t.key==="status"?(r(),C(G,{key:1,color:ye(d.status)},{default:o(()=>[_(m(M(d.status)),1)]),_:2},1032,["color"])):g("",!0),t.key==="invocationCount"?(r(),v("span",et,m(d.invocationCount),1)):g("",!0),t.key==="owner"?(r(),v(h,{key:3},[d.owner?(r(),v("span",tt,m(Z(d.owner)),1)):(r(),v("span",at,"—"))],64)):g("",!0),t.key==="createdAt"?(r(),v("span",ot,m(y(ce)(d.createdAt)),1)):g("",!0),t.key==="action"?(r(),v(h,{key:5},[a(f,{size:"small",type:"link",onClick:A=>he(d)},{default:o(()=>[...e[21]||(e[21]=[_("记录调用",-1)])]),_:1},8,["onClick"]),a(Ue,{trigger:["click"]},{overlay:o(()=>[a(Te,{onClick:A=>Ce(d,A.key)},{default:o(()=>[(r(!0),v(h,null,F(y(Q),A=>(r(),C(Re,{key:A,disabled:A===d.status},{default:o(()=>[_(m(M(A)),1)]),_:2},1032,["disabled"]))),128))]),_:2},1032,["onClick"])]),default:o(()=>[a(f,{size:"small",type:"link"},{default:o(()=>[...e[22]||(e[22]=[_("状态 ▼",-1)])]),_:1})]),_:2},1024)],64)):g("",!0)]),emptyText:o(()=>[x("div",nt,[a(y(re),{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),_(" "+m(T.value||U.value?"没有符合条件的服务":'暂无服务,点击"发布服务"创建第一个'),1)])]),_:1},8,["data-source","pagination","loading"])]),_:1}),a(oe,{key:"invocations",tab:"调用记录"},{default:o(()=>[x("div",lt,[a(W,{value:B.value,"onUpdate:value":e[3]||(e[3]=t=>B.value=t),placeholder:"按服务过滤","allow-clear":"",style:{width:"280px"},size:"small"},{default:o(()=>[(r(!0),v(h,null,F(z.value,t=>(r(),C(H,{key:t.id,value:t.id},{default:o(()=>[_(m(t.name)+" ("+m(M(t.status))+") ",1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),a(ae,{columns:pe,"data-source":_e.value,pagination:{pageSize:20,showTotal:t=>`共 ${t} 条`},size:"small",loading:u.value,style:{background:"var(--bg-card)"}},{bodyCell:o(({column:t,record:d})=>[t.key==="service"?(r(),v(h,{key:0},[x("span",st,m(ke(d.serviceId)),1),x("div",rt,m(d.serviceId.slice(0,8)),1)],64)):g("",!0),t.key==="caller"?(r(),v(h,{key:1},[d.callerId?(r(),v("span",ut,m(Z(d.callerId)),1)):(r(),v("span",it,"—"))],64)):g("",!0),t.key==="status"?(r(),C(G,{key:2,color:ge(d.status)},{default:o(()=>[_(m(Y(d.status)),1)]),_:2},1032,["color"])):g("",!0),t.key==="durationMs"?(r(),v(h,{key:3},[d.durationMs!=null?(r(),v("span",ct,m(d.durationMs)+" ms ",1)):(r(),v("span",dt,"—"))],64)):g("",!0),t.key==="createdAt"?(r(),v("span",pt,m(y(ce)(d.createdAt)),1)):g("",!0)]),emptyText:o(()=>[x("div",vt,[a(y(ue),{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),e[23]||(e[23]=_(' 暂无调用记录。在"服务"标签页对已发布服务点"记录调用"。 ',-1))])]),_:1},8,["data-source","pagination","loading"])]),_:1})]),_:1},8,["activeKey"]),a(se,{open:V.value,"onUpdate:open":e[11]||(e[11]=t=>V.value=t),title:"发布技能服务","confirm-loading":I.value,width:560,"ok-text":"发布","cancel-text":"取消",onOk:xe,onCancel:ee},{default:o(()=>[a(le,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:o(()=>[a(S,{label:"服务名称",required:""},{default:o(()=>[a(D,{value:c.name,"onUpdate:value":e[5]||(e[5]=t=>c.name=t),placeholder:"例如:text-summarizer"},null,8,["value"])]),_:1}),a(S,{label:"版本"},{default:o(()=>[a(D,{value:c.version,"onUpdate:value":e[6]||(e[6]=t=>c.version=t),placeholder:"1.0.0(默认)"},null,8,["value"])]),_:1}),a(S,{label:"描述"},{default:o(()=>[a(ne,{value:c.description,"onUpdate:value":e[7]||(e[7]=t=>c.description=t),"auto-size":{minRows:2,maxRows:5}},null,8,["value"])]),_:1}),a(S,{label:"调用端点"},{default:o(()=>[a(D,{value:c.endpoint,"onUpdate:value":e[8]||(e[8]=t=>c.endpoint=t),placeholder:"https://...(可选)"},null,8,["value"])]),_:1}),a(S,{label:"所有者"},{default:o(()=>[a(D,{value:c.owner,"onUpdate:value":e[9]||(e[9]=t=>c.owner=t),placeholder:"did:key:...(可选)"},null,8,["value"])]),_:1}),a(S,{label:"初始状态"},{default:o(()=>[a(W,{value:c.status,"onUpdate:value":e[10]||(e[10]=t=>c.status=t)},{default:o(()=>[(r(!0),v(h,null,F(y(Q),t=>(r(),C(H,{key:t,value:t},{default:o(()=>[_(m(M(t)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),_:1})]),_:1})]),_:1},8,["open","confirm-loading"]),a(se,{open:E.value,"onUpdate:open":e[16]||(e[16]=t=>E.value=t),title:`记录调用:${q.value}`,"confirm-loading":w.value,width:520,"ok-text":"记录","cancel-text":"取消",onOk:Se,onCancel:we},{default:o(()=>[a(le,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:o(()=>[a(S,{label:"调用方"},{default:o(()=>[a(D,{value:i.caller,"onUpdate:value":e[12]||(e[12]=t=>i.caller=t),placeholder:"did:key:...(可选)"},null,8,["value"])]),_:1}),a(S,{label:"状态"},{default:o(()=>[a(W,{value:i.status,"onUpdate:value":e[13]||(e[13]=t=>i.status=t)},{default:o(()=>[(r(!0),v(h,null,F(y(Je),t=>(r(),C(H,{key:t,value:t},{default:o(()=>[_(m(Y(t)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),_:1}),a(S,{label:"耗时 (ms)"},{default:o(()=>[a(je,{value:i.durationMs,"onUpdate:value":e[14]||(e[14]=t=>i.durationMs=t),min:0,max:36e5,style:{width:"100%"}},null,8,["value"])]),_:1}),i.status==="failed"||i.status==="timeout"?(r(),C(S,{key:0,label:"错误信息"},{default:o(()=>[a(ne,{value:i.error,"onUpdate:value":e[15]||(e[15]=t=>i.error=t),"auto-size":{minRows:2,maxRows:4}},null,8,["value"])]),_:1})):g("",!0)]),_:1})]),_:1},8,["open","title","confirm-loading"])])}}},Mt=De(ft,[["__scopeId","data-v-77488449"]]);export{Mt as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.servers-grid[data-v-113d2cf0]{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px}
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import{u as he}from"./ws-4ur1fGsk.js";import{ah as Le,_ as Pe,e as xe,a0 as Ee,a9 as Ne,af as Ie,ai as qe}from"./icons-CJACPYXu.js";import{q as j,v as n,F as r,H as D,L as ae,N as Je,I as v,G as k,D as p,c as f,x as m,J as M,m as T,u as W,j as K,l as Fe,r as C}from"./vendor-D0Qjn73K.js";import{_ as Be}from"./_plugin-vue_export-helper-DlAUqK2U.js";function ie(t){if(t&&typeof t.ok=="boolean"&&!t.ok)throw new Error(t.error||"MCP call failed");return t?.result??t??null}function We(){const t=he();async function a(d){const u=await t.sendRaw(d?{type:"mcp.list_tools",serverName:d}:{type:"mcp.list_tools"},15e3);return ie(u)}async function s(d,u,U={}){if(typeof d!="string"||!d)throw new Error("serverName is required");if(typeof u!="string"||!u)throw new Error("toolName is required");const V=await t.sendRaw({type:"mcp.call_tool",serverName:d,toolName:u,params:U},6e4);return ie(V)}async function i(d){const u=await t.sendRaw(d?{type:"mcp.list_resources",serverName:d}:{type:"mcp.list_resources"},15e3);return ie(u)}async function l(d,u){if(typeof d!="string"||!d)throw new Error("serverName is required");if(typeof u!="string"||!u)throw new Error("uri is required");const U=await t.sendRaw({type:"mcp.read_resource",serverName:d,uri:u},3e4);return ie(U)}return{listTools:a,callTool:s,listResources:i,readResource:l}}function ue(t){return!t||typeof t!="object"?[]:t.type!=="object"||!t.properties||typeof t.properties!="object"?[]:me(t,[])}function me(t,a){const s=new Set(Array.isArray(t.required)?t.required:[]),i=[],l=t.properties||{};for(const[d,u]of Object.entries(l)){if(!u||typeof u!="object")continue;const U=[...a,d],V=s.has(d);if(de(u.type)==="object"&&u.properties&&typeof u.properties=="object"){const $=me(u,U);$.length===0?i.push(_e(U,u,V,"raw")):i.push(...$);continue}i.push(_e(U,u,V))}return i}function _e(t,a,s,i){const l=de(a.type),d=typeof a.description=="string"?a.description:"",u=t.join("."),U=a.title||t[t.length-1],V=Array.isArray(a.enum)&&a.enum.length>0;let z="raw",$=null,R;if(i)z=i;else if(V)z="select";else if(l==="string")z=Ke(a,d)?"textarea":"text";else if(l==="integer"||l==="number")z="number";else if(l==="boolean")z="boolean";else if(l==="array"){const L=a.items&&typeof a.items=="object"?a.items:null,b=L?de(L.type):null;b==="string"?(z="tags",$="string"):b==="object"&&L.properties&&typeof L.properties=="object"&&(z="objectList",R=me(L,[]),R.length===0&&(z="raw",R=void 0))}return{name:u,path:t,type:l,widget:z,label:U,description:d,required:s,default:a.default,enum:V?a.enum.slice():void 0,itemsType:$,...R?{itemFields:R}:{}}}function de(t){return typeof t=="string"?t:Array.isArray(t)&&t.find(s=>s&&s!=="null")||"any"}function Ke(t,a){return t.format==="long-text"||t.format==="textarea"||typeof t.maxLength=="number"&&t.maxLength>200||a.length>120}function De(t){const a={};for(const s of t){if(s.default!==void 0){a[s.name]=ce(s.default);continue}s.widget==="boolean"?a[s.name]=!1:s.widget==="tags"?a[s.name]=[]:s.widget==="number"?a[s.name]=null:s.widget==="raw"?a[s.name]="":s.widget==="objectList"?a[s.name]=[]:a[s.name]=""}return a}function ce(t){if(Array.isArray(t))return t.map(ce);if(t&&typeof t=="object"){const a={};for(const[s,i]of Object.entries(t))a[s]=ce(i);return a}return t}function ke(t,a){const s={},i={};for(const l of t){const d=Array.isArray(l.path)?l.path:String(l.name).split("."),u=a?.[l.name];if(He(u,l.widget)){l.required&&(s[l.name]="必填");continue}if(l.widget==="number"){const V=typeof u=="number"?u:Number(u);if(Number.isNaN(V)){s[l.name]="必须是数字";continue}if(l.type==="integer"&&!Number.isInteger(V)){s[l.name]="必须是整数";continue}Y(i,d,V);continue}if(l.widget==="boolean"){Y(i,d,!!u);continue}if(l.widget==="tags"){const V=Array.isArray(u)?u:String(u).split(/[\n,]/).map(z=>z.trim()).filter(Boolean);Y(i,d,V);continue}if(l.widget==="select"){if(Array.isArray(l.enum)&&!l.enum.includes(u)){s[l.name]="值不在允许的选项内";continue}Y(i,d,u);continue}if(l.widget==="raw"){try{Y(i,d,JSON.parse(u))}catch(V){s[l.name]=`JSON 解析失败:${V.message}`}continue}if(l.widget==="objectList"){if(!Array.isArray(u)){s[l.name]="必须是列表";continue}if(u.length===0)continue;const V=[];let z=!1;for(let $=0;$<u.length;$++){const R=u[$];if(!R||typeof R!="object"){s[`${l.name}[${$}]`]="必须是对象",z=!0;continue}const L=ke(l.itemFields||[],R);if(!L.ok){z=!0;for(const[b,A]of Object.entries(L.errors))s[`${l.name}[${$}].${b}`]=A;continue}V.push(L.params)}z||Y(i,d,V);continue}Y(i,d,u)}return Object.keys(s).length>0?{ok:!1,errors:s}:{ok:!0,params:i}}function Y(t,a,s){if(a.length===1){t[a[0]]=s;return}let i=t;for(let l=0;l<a.length-1;l++){const d=a[l];(i[d]===void 0||typeof i[d]!="object"||Array.isArray(i[d]))&&(i[d]={}),i=i[d]}i[a[a.length-1]]=s}function He(t,a){return t==null?!0:a==="boolean"?!1:a==="number"?t===""||t===null:a==="tags"?Array.isArray(t)?t.length===0:String(t).trim()==="":a==="objectList"?t==null:typeof t=="string"?t.trim()==="":!1}const Ge={key:0,style:{color:"var(--text-muted)","font-size":"12px",padding:"8px 0"}},Ye={key:1,style:{display:"flex","flex-direction":"column",gap:"14px"}},Qe={key:0,style:{color:"var(--text-muted)","font-size":"10px","font-family":"monospace","margin-bottom":"4px"}},Xe={style:{"margin-bottom":"4px"}},Ze={style:{"font-family":"monospace","font-size":"12px"}},et={key:0,style:{color:"#ff4d4f","margin-left":"4px"}},tt={key:1,style:{color:"var(--text-muted)","font-size":"11px","margin-bottom":"4px"}},nt={key:8},ot={style:{display:"flex","justify-content":"space-between","align-items":"center","margin-bottom":"8px"}},at={style:{color:"var(--text-muted)","font-size":"11px"}},lt={style:{display:"flex","flex-direction":"column",gap:"10px"}},rt={style:{"font-family":"monospace","font-size":"11px"}},st={key:0,style:{color:"#ff4d4f","margin-left":"4px"}},it={key:5,style:{color:"#ff4d4f","font-size":"11px"}},ut={key:10,style:{color:"#ff4d4f","font-size":"11px","margin-top":"4px"}},dt={__name:"McpToolForm",props:{schema:{type:Object,default:null},modelValue:{type:Object,default:()=>({})},errors:{type:Object,default:()=>({})}},emits:["update:modelValue"],setup(t,{expose:a,emit:s}){const i=t,l=s,d=K(()=>ue(i.schema));function u(b){const A=Math.max(0,(b.path?.length??1)-1);return A>0?`margin-left: ${A*16}px;`:""}let U=null;function V(b){const A=b.path||[b.name];if(A.length<=1)return U=null,"";const O=A.slice(0,-1).join(".");return O===U?"":(U=O,O)}function z(b,A){l("update:modelValue",{...i.modelValue,[b]:A})}function $(b,A,O,P){const q=Array.isArray(i.modelValue[b])?i.modelValue[b].slice():[];q[A]={...q[A]||{},[O]:P},l("update:modelValue",{...i.modelValue,[b]:q})}function R(b){const A=Array.isArray(i.modelValue[b.name])?i.modelValue[b.name].slice():[],O={};for(const P of b.itemFields||[])P.default!==void 0?O[P.name]=P.default:P.widget==="boolean"?O[P.name]=!1:P.widget==="number"?O[P.name]=null:O[P.name]="";A.push(O),l("update:modelValue",{...i.modelValue,[b.name]:A})}function L(b,A){const O=Array.isArray(i.modelValue[b])?i.modelValue[b].slice():[];O.splice(A,1),l("update:modelValue",{...i.modelValue,[b]:O})}return a({fields:d}),(b,A)=>{const O=j("a-tag"),P=j("a-input"),q=j("a-textarea"),N=j("a-input-number"),Q=j("a-switch"),B=j("a-select"),H=j("a-button");return d.value.length?(n(),r("div",Ye,[(n(!0),r(D,null,ae(d.value,o=>(n(),r("div",{key:o.name,style:Je(u(o))},[V(o)!==""?(n(),r("div",Qe,v(V(o)),1)):k("",!0),p("div",Xe,[p("span",Ze,v(o.label),1),o.required?(n(),r("span",et,"*")):k("",!0),f(O,{size:"small",style:{"margin-left":"8px","font-size":"10px"}},{default:m(()=>[M(v(o.type)+v(o.itemsType?`<${o.itemsType}>`:""),1)]),_:2},1024)]),o.description?(n(),r("div",tt,v(o.description),1)):k("",!0),o.widget==="text"?(n(),T(P,{key:2,value:t.modelValue[o.name]??"",placeholder:o.default!==void 0?`默认 ${o.default}`:"",size:"small","onUpdate:value":S=>z(o.name,S)},null,8,["value","placeholder","onUpdate:value"])):o.widget==="textarea"?(n(),T(q,{key:3,value:t.modelValue[o.name]??"",rows:4,placeholder:o.default!==void 0?`默认 ${o.default}`:"","onUpdate:value":S=>z(o.name,S)},null,8,["value","placeholder","onUpdate:value"])):o.widget==="number"?(n(),T(N,{key:4,value:t.modelValue[o.name],size:"small",placeholder:o.default!==void 0?`默认 ${o.default}`:"",style:{width:"100%"},"onUpdate:value":S=>z(o.name,S)},null,8,["value","placeholder","onUpdate:value"])):o.widget==="boolean"?(n(),T(Q,{key:5,checked:!!t.modelValue[o.name],"onUpdate:checked":S=>z(o.name,S)},null,8,["checked","onUpdate:checked"])):o.widget==="select"?(n(),T(B,{key:6,value:t.modelValue[o.name]??void 0,options:(o.enum||[]).map(S=>({label:String(S),value:S})),size:"small",style:{width:"100%"},placeholder:o.default!==void 0?`默认 ${o.default}`:"请选择","onUpdate:value":S=>z(o.name,S)},null,8,["value","options","placeholder","onUpdate:value"])):o.widget==="tags"?(n(),T(B,{key:7,value:Array.isArray(t.modelValue[o.name])?t.modelValue[o.name]:[],mode:"tags",size:"small",style:{width:"100%"},placeholder:"输入后回车添加","token-separators":[",",`
|
|
2
|
-
`],"onUpdate:value":S=>z(o.name,S)},null,8,["value","onUpdate:value"])):o.widget==="objectList"?(n(),r("div",nt,[(n(!0),r(D,null,ae(Array.isArray(t.modelValue[o.name])?t.modelValue[o.name]:[],(S,I)=>(n(),r("div",{key:I,style:{border:"1px dashed var(--border-color)",padding:"10px","border-radius":"4px","margin-bottom":"8px",background:"var(--bg-card-hover)"}},[p("div",ot,[p("span",at,"#"+v(I+1),1),f(H,{size:"small",type:"link",danger:"",onClick:w=>L(o.name,I)},{default:m(()=>[...A[0]||(A[0]=[M(" 删除 ",-1)])]),_:1},8,["onClick"])]),p("div",lt,[(n(!0),r(D,null,ae(o.itemFields||[],w=>(n(),r("div",{key:w.name,style:{display:"flex","flex-direction":"column",gap:"4px"}},[p("div",null,[p("span",rt,v(w.label),1),w.required?(n(),r("span",st,"*")):k("",!0),f(O,{size:"small",style:{"margin-left":"6px","font-size":"10px"}},{default:m(()=>[M(v(w.type),1)]),_:2},1024)]),w.widget==="text"?(n(),T(P,{key:0,value:S[w.name]??"",size:"small","onUpdate:value":x=>$(o.name,I,w.name,x)},null,8,["value","onUpdate:value"])):w.widget==="number"?(n(),T(N,{key:1,value:S[w.name],size:"small",style:{width:"100%"},"onUpdate:value":x=>$(o.name,I,w.name,x)},null,8,["value","onUpdate:value"])):w.widget==="boolean"?(n(),T(Q,{key:2,checked:!!S[w.name],"onUpdate:checked":x=>$(o.name,I,w.name,x)},null,8,["checked","onUpdate:checked"])):w.widget==="select"?(n(),T(B,{key:3,value:S[w.name]??void 0,options:(w.enum||[]).map(x=>({label:String(x),value:x})),size:"small",style:{width:"100%"},"onUpdate:value":x=>$(o.name,I,w.name,x)},null,8,["value","options","onUpdate:value"])):(n(),T(q,{key:4,value:typeof S[w.name]=="string"?S[w.name]:"",rows:2,placeholder:"复杂子字段 — 请用 JSON 模式",style:{"font-family":"monospace","font-size":"11px"},"onUpdate:value":x=>$(o.name,I,w.name,x)},null,8,["value","onUpdate:value"])),t.errors[`${o.name}[${I}].${w.name}`]?(n(),r("div",it,v(t.errors[`${o.name}[${I}].${w.name}`]),1)):k("",!0)]))),128))])]))),128)),f(H,{size:"small",type:"dashed",block:"",onClick:S=>R(o)},{icon:m(()=>[f(W(Le))]),default:m(()=>[A[1]||(A[1]=M(" 添加项 ",-1))]),_:1},8,["onClick"])])):(n(),T(q,{key:9,value:t.modelValue[o.name]??"",rows:3,placeholder:'复杂类型 — 请输入 JSON,如 {"key":"value"}',style:{"font-family":"monospace","font-size":"12px"},"onUpdate:value":S=>z(o.name,S)},null,8,["value","onUpdate:value"])),t.errors[o.name]?(n(),r("div",ut,v(t.errors[o.name]),1)):k("",!0)],4))),128))])):(n(),r("div",Ge," 此工具的 inputSchema 不是 type:object — 请用 JSON 模式编辑。 "))}}},ct={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},mt={key:0,style:{"text-align":"center",padding:"30px"}},pt={key:1,style:{"text-align":"center",padding:"30px",color:"var(--text-muted)"}},ft={key:2,class:"servers-grid"},yt={style:{display:"flex","align-items":"center",gap:"10px","margin-bottom":"6px"}},vt={style:{color:"#e0e0e0","font-weight":"500","font-family":"monospace"}},gt={key:0,style:{color:"var(--text-secondary)","font-size":"11px","font-family":"monospace"}},xt={key:1,style:{color:"var(--text-secondary)","font-size":"11px","margin-top":"4px"}},_t={key:0,style:{"text-align":"center",padding:"30px"}},ht={key:0,style:{color:"#91caff","font-family":"monospace","font-size":"12px"}},kt={key:1,style:{color:"var(--text-muted)","font-size":"11px"}},bt={key:0,style:{"text-align":"center",padding:"30px"}},wt={key:1,style:{"text-align":"center",padding:"30px",color:"var(--text-muted)"}},zt={key:0,style:{color:"#87d068","font-family":"monospace","font-size":"11px","word-break":"break-all"}},St={key:1,style:{color:"var(--text-muted)","font-size":"10px"}},$t={key:0,style:{display:"flex","flex-direction":"column",gap:"12px"}},At={style:{"font-family":"monospace","font-size":"13px"}},Ct={style:{color:"#91caff"}},Vt={key:0},Tt={style:{"font-size":"12px"}},jt={key:1},Ut={style:{background:"var(--bg-card-hover)",padding:"8px","border-radius":"4px","font-size":"11px","max-height":"140px",overflow:"auto",margin:"0"}},Ot={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"4px"}},Mt={key:0,style:{color:"#ff4d4f","font-size":"11px","margin-top":"4px"}},Rt={key:2,style:{background:"#2a1517",border:"1px solid #5c2426",padding:"8px","border-radius":"4px"}},Lt={style:{color:"#ff7875","font-size":"11px",margin:"0","white-space":"pre-wrap"}},Pt={key:3},Et={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"}},Nt={key:0,style:{display:"flex","flex-direction":"column",gap:"12px"}},It={style:{"font-family":"monospace","font-size":"12px","word-break":"break-all"}},qt={style:{color:"#87d068"}},Jt={key:0},Ft={style:{"font-size":"12px"}},Bt={key:1,style:{"text-align":"center",padding:"20px"}},Wt={key:2,style:{background:"#2a1517",border:"1px solid #5c2426",padding:"8px","border-radius":"4px"}},Kt={style:{color:"#ff7875","font-size":"11px",margin:"0","white-space":"pre-wrap"}},Dt={key:3},Ht={style:{color:"var(--text-muted)","font-size":"11px","margin-bottom":"4px"}},Gt={style:{display:"flex",gap:"8px","align-items":"center","margin-bottom":"4px"}},Yt={key:1,style:{color:"var(--text-muted)","font-size":"10px","font-family":"monospace"}},Qt={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"}},Xt={key:1,style:{"font-size":"11px",color:"var(--text-muted)","font-style":"italic"}},Zt={key:2,style:{"font-size":"11px",color:"var(--text-muted)","font-style":"italic"}},en={__name:"McpTools",setup(t){const a=he(),s=We(),i=C(!1),l=C([]),d=C([]),u=C(""),U=C(""),V=K(()=>{if(!u.value)return d.value;const c=u.value.toLowerCase();return d.value.filter(e=>e.name?.toLowerCase().includes(c)||e.description?.toLowerCase().includes(c))}),z=[{title:"工具名称",key:"name",dataIndex:"name",width:"28%"},{title:"服务器",key:"server",dataIndex:"server",width:"18%"},{title:"描述",dataIndex:"description",ellipsis:!0},{title:"操作",key:"action",width:110}],$=C([]),R=C(""),L=C(!1),b=C(!1),A=[{title:"URI",key:"uri",dataIndex:"uri"},{title:"服务器",key:"server",dataIndex:"server",width:"15%"},{title:"MIME",key:"mimeType",dataIndex:"mimeType",width:"15%"},{title:"操作",key:"action",width:90}],O=K(()=>{if(!R.value)return $.value;const c=R.value.toLowerCase();return $.value.filter(e=>e.uri?.toLowerCase().includes(c)||e.name?.toLowerCase().includes(c)||e.description?.toLowerCase().includes(c))});async function P(){if(!L.value){L.value=!0;try{const c=await s.listResources();if(!c||!Array.isArray(c.servers)){$.value=[];return}const e=[];for(const g of c.servers)if(Array.isArray(g.resources))for(const _ of g.resources)e.push({key:`${g.name}.${_.uri}`,uri:_.uri,name:_.name||"",description:_.description||"",mimeType:_.mimeType||null,server:g.name});$.value=e,b.value=!0}catch(c){console.error("listResources failed:",c),$.value=[]}finally{L.value=!1}}}const q=C(!1),N=C(null),Q=C(!1),B=C([]),H=C(""),o=K(()=>N.value?`读取 ${N.value.server}`:"读取 MCP 资源");async function S(c){N.value=c,B.value=[],H.value="",q.value=!0,Q.value=!0;try{const e=await s.readResource(c.server,c.uri);e&&Array.isArray(e.contents)?B.value=e.contents:B.value=e?[e]:[]}catch(e){H.value=e?.message||String(e)}finally{Q.value=!1}}function I(){q.value=!1}const w=C(!1),x=C(null),te=C("form"),le=C({}),re=C({}),se=C("{}"),ne=C(!1),G=C(null),oe=C(""),be=K(()=>ue(x.value?.inputSchema||null).length>0),we=K(()=>x.value?`运行 ${x.value.server}.${x.value.name}`:"运行 MCP 工具"),ze=K(()=>{if(!x.value?.inputSchema)return"";try{return JSON.stringify(x.value.inputSchema,null,2)}catch{return String(x.value.inputSchema)}}),Se=K(()=>{if(G.value===null)return"";try{return JSON.stringify(G.value,null,2)}catch{return String(G.value)}}),X=C("");function $e(c){x.value=c,se.value="{}",G.value=null,oe.value="",X.value="",re.value={};const e=ue(c?.inputSchema||null);te.value=e.length>0?"form":"json",le.value=De(e),w.value=!0}function Ae(){w.value=!1}async function Ce(){if(!x.value||ne.value)return;X.value="",re.value={};let c={};if(te.value==="form"){const e=ue(x.value.inputSchema||null),g=ke(e,le.value);if(!g.ok){re.value=g.errors;return}c=g.params}else{const e=(se.value||"").trim();if(e){try{c=JSON.parse(e)}catch(g){X.value=g.message||"invalid JSON";return}if(c===null||typeof c!="object"||Array.isArray(c)){X.value="参数必须是 JSON 对象";return}}}ne.value=!0,oe.value="",G.value=null;try{const e=await s.callTool(x.value.server,x.value.name,c);G.value=e}catch(e){oe.value=e?.message||String(e)}finally{ne.value=!1}}async function Ve(){const c=await s.listTools();if(!c||!Array.isArray(c.servers))return!1;l.value=c.servers.map(g=>({key:g.name,name:g.name,command:"",args:[],description:g.state?`state: ${g.state}`:"",error:g.error||null}));const e=[];for(const g of c.servers)if(Array.isArray(g.tools))for(const _ of g.tools)e.push({key:`${g.name}.${_.name}`,name:_.name,description:_.description||"",server:g.name,inputSchema:_.inputSchema||null});return d.value=e,!0}async function pe(){i.value=!0;try{try{if(await Ve()){U.value="topic";return}}catch(g){const _=g?.message||"";_.includes("mcp_unavailable")||_.includes("no_handler")||_.includes("UNKNOWN_TYPE")||console.error("MCP topic load failed:",g)}const[c,e]=await Promise.all([a.execute("mcp servers",15e3).catch(()=>({output:""})),a.execute("mcp tools",15e3).catch(()=>({output:""}))]);l.value=Te(c.output),d.value=je(e.output),U.value="cli"}catch(c){console.error("MCP load failed:",c)}finally{i.value=!1,U.value==="topic"?P():($.value=[],b.value=!1)}}function Te(c){const e=[],g=c.split(`
|
|
3
|
-
`);let _=null;for(const E of g){const h=E.trim();if(!h||h.startsWith("─")||h.startsWith("MCP"))continue;const J=h.match(/^[●•]?\s*([a-z][a-z0-9-_]+)\s*$/i)||h.match(/^([a-z][a-z0-9-_]+)\s*[::]/);J?(_&&e.push(_),_={key:J[1],name:J[1],command:"",args:[],description:""}):_&&(h.startsWith("command:")||h.startsWith("Command:")?_.command=h.replace(/^command:\s*/i,"").trim():h.startsWith("args:")||h.startsWith("Args:")?_.args=h.replace(/^args:\s*/i,"").split(",").map(Z=>Z.trim()):_.description||(_.description=h.slice(0,80)))}return _&&e.push(_),!e.length&&c.trim()&&!c.includes("No MCP")&&c.split(`
|
|
4
|
-
`).filter(h=>h.trim()&&!h.includes("─")).slice(0,10).forEach((h,J)=>{e.push({key:J,name:h.trim(),command:"",args:[],description:""})}),e}function je(c){const e=[],g=c.split(`
|
|
5
|
-
`);let _="unknown";for(const E of g){const h=E.trim();if(!h||h.startsWith("─"))continue;if(h.match(/^\[/)||h.match(/^Server:/i)){_=h.replace(/[\[\]]/g,"").replace(/^Server:\s*/i,"").trim();continue}const J=h.match(/^[●•]?\s*([a-z][a-z0-9_-]+)\s*[-–]\s*(.+)/i)||h.match(/^[●•]?\s*([a-z][a-z0-9_-]+)$/);J&&e.push({key:e.length,name:J[1],description:J[2]||"",server:_})}return e}return Fe(pe),(c,e)=>{const g=j("a-button"),_=j("a-statistic"),E=j("a-card"),h=j("a-col"),J=j("a-row"),Z=j("a-spin"),Ue=j("a-badge"),fe=j("a-input-search"),ee=j("a-tag"),ye=j("a-table"),ve=j("a-radio-button"),Oe=j("a-radio-group"),Me=j("a-textarea"),ge=j("a-modal");return n(),r("div",null,[p("div",ct,[e[6]||(e[6]=p("div",null,[p("h2",{class:"page-title"},"MCP 工具"),p("p",{class:"page-sub"},"Model Context Protocol — 已挂载工具与服务器")],-1)),f(g,{type:"primary",ghost:"",loading:i.value,onClick:pe},{icon:m(()=>[f(W(Pe))]),default:m(()=>[e[5]||(e[5]=M(" 刷新 ",-1))]),_:1},8,["loading"])]),f(J,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:m(()=>[f(h,{xs:24,sm:8},{default:m(()=>[f(E,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"},size:"small"},{default:m(()=>[f(_,{title:"服务器数量",value:l.value.length,"value-style":"color: #1677ff; font-size: 20px;"},{prefix:m(()=>[f(W(xe))]),_:1},8,["value"])]),_:1})]),_:1}),f(h,{xs:24,sm:8},{default:m(()=>[f(E,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"},size:"small"},{default:m(()=>[f(_,{title:"工具数量",value:d.value.length,"value-style":"color: #52c41a; font-size: 20px;"},{prefix:m(()=>[f(W(Ee))]),_:1},8,["value"])]),_:1})]),_:1}),f(h,{xs:24,sm:8},{default:m(()=>[f(E,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"},size:"small"},{default:m(()=>[f(_,{title:"运行状态",value:"就绪","value-style":"color: #52c41a; font-size: 20px;"},{prefix:m(()=>[f(W(Ne))]),_:1})]),_:1})]),_:1})]),_:1}),f(E,{title:"已配置服务器",style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"16px"}},{default:m(()=>[i.value?(n(),r("div",mt,[f(Z)])):l.value.length?(n(),r("div",ft,[(n(!0),r(D,null,ae(l.value,y=>(n(),T(E,{key:y.name,size:"small",style:{background:"var(--bg-card-hover)","border-color":"var(--border-color)"}},{default:m(()=>[p("div",yt,[f(W(xe),{style:{color:"#1677ff"}}),p("span",vt,v(y.name),1),f(Ue,{status:"success"})]),y.command?(n(),r("div",gt,v(y.command)+" "+v(y.args?.join(" ")),1)):k("",!0),y.description?(n(),r("div",xt,v(y.description),1)):k("",!0)]),_:2},1024))),128))])):(n(),r("div",pt,[...e[7]||(e[7]=[M(" 暂无 MCP 服务器,使用 ",-1),p("code",{style:{background:"var(--bg-card-hover)",padding:"2px 6px","border-radius":"3px"}},"chainlesschain mcp add",-1),M(" 添加 ",-1)])]))]),_:1}),f(E,{title:"可用工具",style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{extra:m(()=>[f(fe,{value:u.value,"onUpdate:value":e[0]||(e[0]=y=>u.value=y),placeholder:"搜索工具...","allow-clear":"",size:"small",style:{width:"200px"}},null,8,["value"])]),default:m(()=>[i.value?(n(),r("div",_t,[f(Z)])):(n(),T(ye,{key:1,columns:z,"data-source":V.value,pagination:{pageSize:15},size:"small"},{bodyCell:m(({column:y,record:F})=>[y.key==="name"?(n(),r("span",ht,v(F.name),1)):k("",!0),y.key==="server"?(n(),T(ee,{key:1,color:"blue",style:{"font-size":"10px"}},{default:m(()=>[M(v(F.server),1)]),_:2},1024)):k("",!0),y.key==="action"?(n(),r(D,{key:2},[U.value==="topic"?(n(),T(g,{key:0,size:"small",type:"link",onClick:Re=>$e(F)},{icon:m(()=>[f(W(Ie))]),default:m(()=>[e[8]||(e[8]=M(" 运行 ",-1))]),_:1},8,["onClick"])):(n(),r("span",kt,"仅桌面模式"))],64)):k("",!0)]),emptyText:m(()=>[...e[9]||(e[9]=[p("div",{style:{padding:"30px",color:"var(--text-muted)"}},"暂无可用工具",-1)])]),_:1},8,["data-source"]))]),_:1}),U.value==="topic"?(n(),T(E,{key:0,title:"可用资源",style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-top":"16px"}},{extra:m(()=>[f(fe,{value:R.value,"onUpdate:value":e[1]||(e[1]=y=>R.value=y),placeholder:"搜索资源...","allow-clear":"",size:"small",style:{width:"200px"}},null,8,["value"])]),default:m(()=>[L.value?(n(),r("div",bt,[f(Z)])):$.value.length?(n(),T(ye,{key:2,columns:A,"data-source":O.value,pagination:{pageSize:15},size:"small"},{bodyCell:m(({column:y,record:F})=>[y.key==="uri"?(n(),r("span",zt,v(F.uri),1)):k("",!0),y.key==="server"?(n(),T(ee,{key:1,color:"blue",style:{"font-size":"10px"}},{default:m(()=>[M(v(F.server),1)]),_:2},1024)):k("",!0),y.key==="mimeType"?(n(),r(D,{key:2},[F.mimeType?(n(),T(ee,{key:0,style:{"font-size":"10px"}},{default:m(()=>[M(v(F.mimeType),1)]),_:2},1024)):(n(),r("span",St,"—"))],64)):k("",!0),y.key==="action"?(n(),T(g,{key:3,size:"small",type:"link",onClick:Re=>S(F)},{icon:m(()=>[f(W(qe))]),default:m(()=>[e[10]||(e[10]=M(" 读取 ",-1))]),_:1},8,["onClick"])):k("",!0)]),emptyText:m(()=>[...e[11]||(e[11]=[p("div",{style:{padding:"30px",color:"var(--text-muted)"}},"无匹配资源",-1)])]),_:1},8,["data-source"])):(n(),r("div",wt," 当前无 MCP 资源(部分服务器不暴露 resources,是正常的) "))]),_:1})):k("",!0),f(ge,{open:w.value,title:we.value,width:640,"confirm-loading":ne.value,"ok-text":ne.value?"运行中...":"运行","cancel-text":"关闭",onOk:Ce,onCancel:Ae},{default:m(()=>[x.value?(n(),r("div",$t,[p("div",null,[e[12]||(e[12]=p("div",{style:{color:"var(--text-muted)","font-size":"11px","margin-bottom":"4px"}},"服务器 / 工具",-1)),p("div",At,[f(ee,{color:"blue"},{default:m(()=>[M(v(x.value.server),1)]),_:1}),p("span",Ct,v(x.value.name),1)])]),x.value.description?(n(),r("div",Vt,[e[13]||(e[13]=p("div",{style:{color:"var(--text-muted)","font-size":"11px","margin-bottom":"4px"}},"描述",-1)),p("div",Tt,v(x.value.description),1)])):k("",!0),x.value.inputSchema?(n(),r("div",jt,[e[14]||(e[14]=p("div",{style:{color:"var(--text-muted)","font-size":"11px","margin-bottom":"4px"}},"参数 schema",-1)),p("pre",Ut,v(ze.value),1)])):k("",!0),p("div",null,[p("div",Ot,[e[17]||(e[17]=p("span",{style:{color:"var(--text-muted)","font-size":"11px"}},"参数",-1)),f(Oe,{value:te.value,"onUpdate:value":e[2]||(e[2]=y=>te.value=y),size:"small","button-style":"solid"},{default:m(()=>[f(ve,{value:"form",disabled:!be.value},{default:m(()=>[...e[15]||(e[15]=[M("表单",-1)])]),_:1},8,["disabled"]),f(ve,{value:"json"},{default:m(()=>[...e[16]||(e[16]=[M("JSON",-1)])]),_:1})]),_:1},8,["value"])]),te.value==="form"?(n(),T(dt,{key:0,modelValue:le.value,"onUpdate:modelValue":e[3]||(e[3]=y=>le.value=y),schema:x.value.inputSchema,errors:re.value},null,8,["modelValue","schema","errors"])):(n(),r(D,{key:1},[f(Me,{value:se.value,"onUpdate:value":e[4]||(e[4]=y=>se.value=y),rows:6,placeholder:"{}",style:{"font-family":"monospace","font-size":"12px"}},null,8,["value"]),X.value?(n(),r("div",Mt," JSON 解析失败:"+v(X.value),1)):k("",!0)],64))]),oe.value?(n(),r("div",Rt,[e[18]||(e[18]=p("div",{style:{color:"#ff4d4f","font-size":"11px","font-weight":"500","margin-bottom":"4px"}},"运行失败",-1)),p("pre",Lt,v(oe.value),1)])):k("",!0),G.value!==null?(n(),r("div",Pt,[e[19]||(e[19]=p("div",{style:{color:"var(--text-muted)","font-size":"11px","margin-bottom":"4px"}},"结果",-1)),p("pre",Et,v(Se.value),1)])):k("",!0)])):k("",!0)]),_:1},8,["open","title","confirm-loading","ok-text"]),f(ge,{open:q.value,title:o.value,width:720,footer:null,onCancel:I},{default:m(()=>[N.value?(n(),r("div",Nt,[p("div",null,[e[20]||(e[20]=p("div",{style:{color:"var(--text-muted)","font-size":"11px","margin-bottom":"4px"}},"服务器 / URI",-1)),p("div",It,[f(ee,{color:"blue"},{default:m(()=>[M(v(N.value.server),1)]),_:1}),p("span",qt,v(N.value.uri),1)])]),N.value.description?(n(),r("div",Jt,[e[21]||(e[21]=p("div",{style:{color:"var(--text-muted)","font-size":"11px","margin-bottom":"4px"}},"描述",-1)),p("div",Ft,v(N.value.description),1)])):k("",!0),Q.value?(n(),r("div",Bt,[f(Z,{tip:"读取中..."})])):k("",!0),H.value?(n(),r("div",Wt,[e[22]||(e[22]=p("div",{style:{color:"#ff4d4f","font-size":"11px","font-weight":"500","margin-bottom":"4px"}},"读取失败",-1)),p("pre",Kt,v(H.value),1)])):k("",!0),B.value.length?(n(),r("div",Dt,[p("div",Ht,"内容("+v(B.value.length)+" 段)",1),(n(!0),r(D,null,ae(B.value,(y,F)=>(n(),r("div",{key:F,style:{"margin-bottom":"12px"}},[p("div",Gt,[y.mimeType?(n(),T(ee,{key:0,size:"small",style:{"font-size":"10px"}},{default:m(()=>[M(v(y.mimeType),1)]),_:2},1024)):k("",!0),y.uri&&y.uri!==N.value.uri?(n(),r("span",Yt,v(y.uri),1)):k("",!0)]),y.text?(n(),r("pre",Qt,v(y.text),1)):y.blob?(n(),r("div",Xt," [二进制 blob,"+v(y.blob.length)+" 字符 base64 — 此 demo 不渲染] ",1)):(n(),r("div",Zt," [空内容] "))]))),128))])):k("",!0)])):k("",!0)]),_:1},8,["open","title"])])}}},ln=Be(en,[["__scopeId","data-v-113d2cf0"]]);export{ln as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.memory-list[data-v-ebb07e22]{display:flex;flex-direction:column;gap:10px;max-height:400px;overflow-y:auto}.memory-item[data-v-ebb07e22]{background:var(--bg-card-hover);border:1px solid var(--border-color);border-radius:6px;padding:10px 14px;transition:border-color .2s}.memory-item[data-v-ebb07e22]:hover{border-color:var(--text-muted)}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{u as X}from"./ws-4ur1fGsk.js";import{_ as Y}from"./_plugin-vue_export-helper-DlAUqK2U.js";import{ah as Z,_ as ee,a as te,m as oe,ak as ae,a8 as le}from"./icons-CJACPYXu.js";import{a as k}from"./index-BB5y5Y0z.js";import{l as ne,F as v,D as r,c as t,x as o,q as n,r as u,v as f,J as m,u as h,G as N,H as re,L as se,I as O}from"./vendor-D0Qjn73K.js";import"./index-Vit9TJBu.js";import"./useConfigInject-DIkkDpt1.js";import"./transition-CVd2ueaJ.js";import"./Keyframes-C7fCrnlS.js";import"./Portal-SsPhn64D.js";import"./index-U4Zd5IK6.js";const ie={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},ue={style:{display:"flex","align-items":"center",gap:"12px"}},ce={key:0,style:{"text-align":"center",padding:"30px"}},de={key:1,style:{"text-align":"center",padding:"30px",color:"var(--text-muted)"}},me={key:2,class:"memory-list"},pe={style:{display:"flex","justify-content":"space-between","align-items":"flex-start","margin-bottom":"4px"}},ve={style:{display:"flex",gap:"8px","align-items":"center"}},fe={key:0,style:{color:"var(--text-secondary)","font-size":"11px"}},ye={style:{color:"var(--text-muted)","font-size":"11px"}},ge={style:{color:"#ccc","font-size":"13px","line-height":"1.6"}},_e={__name:"Memory",setup(xe){const w=X(),S=u(!1),y=u(!1),T=u(!1),$=u(!1),C=u(!1),g=u({shortTerm:0,longTerm:0,core:0}),_=u([]),s=u("short-term"),z=u(""),c=u({content:"",importance:.5});function V(a){return{"short-term":"purple","long-term":"blue",core:"green"}[a]||"default"}function q(a){return{"short-term":"短期","long-term":"长期",core:"核心"}[a]||a}async function B(){S.value=!0;try{const{output:a}=await w.execute("hmemory stats",15e3);R(a)}catch(a){console.error("hmemory stats failed:",a)}finally{S.value=!1,await L()}}function R(a){const e=a.match(/short.?term[^\d]*(\d+)/i),d=a.match(/long.?term[^\d]*(\d+)/i),x=a.match(/core[^\d]*(\d+)/i);e&&(g.value.shortTerm=parseInt(e[1])),d&&(g.value.longTerm=parseInt(d[1])),x&&(g.value.core=parseInt(x[1]))}async function L(){y.value=!0;try{const a=s.value==="short-term"?"recent":s.value==="long-term"?"important":"core",{output:e}=await w.execute(`hmemory recall "${a}" --limit 20`,15e3);_.value=I(e)}catch{_.value=[]}finally{y.value=!1}}async function W(){if(!z.value.trim()){await L();return}y.value=!0;try{const{output:a}=await w.execute(`hmemory recall "${z.value}"`,15e3);_.value=I(a)}catch{_.value=[]}finally{y.value=!1}}function I(a){const e=[],d=a.split(`
|
|
2
|
-
`);for(const x of d){const i=x.trim();if(!i||i.startsWith("─")||i.startsWith("Recall"))continue;const p=i.match(/^[-●•\d.]+\s+(.+)/);if(p){const b=p[1].trim();b.length>5&&e.push({id:e.length,content:b,layer:s.value,importance:"",time:""})}else i.length>10&&!i.includes(":")&&e.length<30&&e.push({id:e.length,content:i,layer:s.value,importance:"",time:""})}return e.slice(0,20)}async function j(){if(!c.value.content.trim()){k.warning("请输入记忆内容");return}$.value=!0;try{const a=`hmemory store "${c.value.content.replace(/"/g,'\\"')}" --importance ${c.value.importance}`,{output:e}=await w.execute(a,15e3);e.toLowerCase().includes("stored")||e.includes("✔")?(k.success("记忆已存储"),C.value=!1,c.value={content:"",importance:.5},await B()):(k.warning(e.slice(0,100)||"存储完成"),C.value=!1)}catch(a){k.error("存储失败: "+a.message)}finally{$.value=!1}}async function D(){T.value=!0;try{const{output:a}=await w.execute("hmemory consolidate",2e4);k.success("记忆巩固完成"),await B()}catch(a){k.error("巩固失败: "+a.message)}finally{T.value=!1}}return ne(B),(a,e)=>{const d=n("a-button"),x=n("a-space"),i=n("a-statistic"),p=n("a-card"),b=n("a-col"),F=n("a-row"),M=n("a-radio-button"),E=n("a-radio-group"),G=n("a-input-search"),H=n("a-spin"),be=n("BrainOutlined"),J=n("a-tag"),P=n("a-textarea"),U=n("a-form-item"),Q=n("a-slider"),A=n("a-form"),K=n("a-modal");return f(),v("div",null,[r("div",ie,[e[11]||(e[11]=r("div",null,[r("h2",{class:"page-title"},"记忆文件"),r("p",{class:"page-sub"},"分层记忆系统 — 短期 / 长期 / 核心记忆")],-1)),t(x,null,{default:o(()=>[t(d,{onClick:e[0]||(e[0]=l=>C.value=!0),type:"primary"},{icon:o(()=>[t(h(Z))]),default:o(()=>[e[9]||(e[9]=m(" 存储记忆 ",-1))]),_:1}),t(d,{ghost:"",loading:S.value,onClick:B},{icon:o(()=>[t(h(ee))]),default:o(()=>[e[10]||(e[10]=m(" 刷新 ",-1))]),_:1},8,["loading"])]),_:1})]),t(F,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:o(()=>[t(b,{xs:24,sm:8},{default:o(()=>[t(p,{style:{background:"rgba(114,46,209,.1)","border-color":"rgba(114,46,209,.35)",cursor:"pointer"},hoverable:"",onClick:e[1]||(e[1]=l=>s.value="short-term")},{default:o(()=>[t(i,{title:"短期记忆",value:g.value.shortTerm||0,"value-style":"color: #c084fc; font-size: 20px;"},{prefix:o(()=>[t(h(te))]),_:1},8,["value"]),e[12]||(e[12]=r("div",{style:{"margin-top":"4px",color:"var(--text-secondary)","font-size":"11px"}},"最近会话内容",-1))]),_:1})]),_:1}),t(b,{xs:24,sm:8},{default:o(()=>[t(p,{style:{background:"rgba(22,119,255,.08)","border-color":"rgba(22,119,255,.3)",cursor:"pointer"},hoverable:"",onClick:e[2]||(e[2]=l=>s.value="long-term")},{default:o(()=>[t(i,{title:"长期记忆",value:g.value.longTerm||0,"value-style":"color: #91caff; font-size: 20px;"},{prefix:o(()=>[t(h(oe))]),_:1},8,["value"]),e[13]||(e[13]=r("div",{style:{"margin-top":"4px",color:"var(--text-secondary)","font-size":"11px"}},"巩固后的重要信息",-1))]),_:1})]),_:1}),t(b,{xs:24,sm:8},{default:o(()=>[t(p,{style:{background:"rgba(41,162,112,.08)","border-color":"rgba(41,162,112,.3)",cursor:"pointer"},hoverable:"",onClick:e[3]||(e[3]=l=>s.value="core")},{default:o(()=>[t(i,{title:"核心记忆",value:g.value.core||0,"value-style":"color: #69db7c; font-size: 20px;"},{prefix:o(()=>[t(h(ae))]),_:1},8,["value"]),e[14]||(e[14]=r("div",{style:{"margin-top":"4px",color:"var(--text-secondary)","font-size":"11px"}},"高重要性长期保留",-1))]),_:1})]),_:1})]),_:1}),t(p,{style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"16px"}},{title:o(()=>[r("div",ue,[e[18]||(e[18]=r("span",null,"记忆内容",-1)),t(E,{value:s.value,"onUpdate:value":e[4]||(e[4]=l=>s.value=l),"button-style":"solid",size:"small",onChange:L},{default:o(()=>[t(M,{value:"short-term"},{default:o(()=>[...e[15]||(e[15]=[m("短期",-1)])]),_:1}),t(M,{value:"long-term"},{default:o(()=>[...e[16]||(e[16]=[m("长期",-1)])]),_:1}),t(M,{value:"core"},{default:o(()=>[...e[17]||(e[17]=[m("核心",-1)])]),_:1})]),_:1},8,["value"])])]),extra:o(()=>[t(G,{value:z.value,"onUpdate:value":e[5]||(e[5]=l=>z.value=l),placeholder:"语义搜索记忆...","allow-clear":"",size:"small",style:{width:"220px"},loading:y.value,onSearch:W},null,8,["value","loading"])]),default:o(()=>[y.value?(f(),v("div",ce,[t(H)])):_.value.length?(f(),v("div",me,[(f(!0),v(re,null,se(_.value,l=>(f(),v("div",{key:l.id,class:"memory-item"},[r("div",pe,[r("div",ve,[t(J,{color:V(l.layer||s.value),style:{"font-size":"10px"}},{default:o(()=>[m(O(q(l.layer||s.value)),1)]),_:2},1032,["color"]),l.importance?(f(),v("span",fe," 重要度 "+O(l.importance),1)):N("",!0)]),r("span",ye,O(l.time),1)]),r("div",ge,O(l.content),1)]))),128))])):(f(),v("div",de,[N("",!0),e[19]||(e[19]=m(' 暂无记忆内容,点击"存储记忆"添加 ',-1))]))]),_:1}),t(d,{loading:T.value,onClick:D,style:{background:"var(--bg-card-hover)","border-color":"var(--text-muted)",width:"100%"}},{icon:o(()=>[t(h(le))]),default:o(()=>[e[20]||(e[20]=m(" 巩固记忆(短期 → 长期晋升) ",-1))]),_:1},8,["loading"]),t(K,{open:C.value,"onUpdate:open":e[8]||(e[8]=l=>C.value=l),title:"存储新记忆","confirm-loading":$.value,onOk:j},{default:o(()=>[t(A,{"label-col":{span:4},"wrapper-col":{span:20},style:{"margin-top":"16px"}},{default:o(()=>[t(U,{label:"内容",required:""},{default:o(()=>[t(P,{value:c.value.content,"onUpdate:value":e[6]||(e[6]=l=>c.value.content=l),rows:4,placeholder:"要存储的记忆内容..."},null,8,["value"])]),_:1}),t(U,{label:"重要度"},{default:o(()=>[t(Q,{value:c.value.importance,"onUpdate:value":e[7]||(e[7]=l=>c.value.importance=l),min:0,max:1,step:.1,marks:{0:"低",.5:"中",1:"高"}},null,8,["value"])]),_:1})]),_:1})]),_:1},8,["open","confirm-loading"])])}}},Ie=Y(_e,[["__scopeId","data-v-ebb07e22"]]);export{Ie as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{u as tt}from"./ws-4ur1fGsk.js";import{s as nt}from"./community-parser-CO25nZFt.js";import{_ as at}from"./_plugin-vue_export-helper-DlAUqK2U.js";import{a as g}from"./index-BB5y5Y0z.js";import{_ as ot,ah as lt,B as rt,f as ve,b as ge,aM as st,aB as it,a9 as ut}from"./icons-CJACPYXu.js";import{l as ct,F as f,D as x,c as n,x as t,m as S,G as _,q as p,r as k,v as i,J as u,u as v,H as z,L as w,I as c,N as pt,j as _e,a as xe}from"./vendor-D0Qjn73K.js";import"./index-Vit9TJBu.js";import"./useConfigInject-DIkkDpt1.js";import"./transition-CVd2ueaJ.js";import"./Keyframes-C7fCrnlS.js";import"./Portal-SsPhn64D.js";import"./index-U4Zd5IK6.js";function J(l){const o=nt(l);if(!o)return null;try{return JSON.parse(o)}catch{}const s=o.match(/\{[\s\S]*\}|\[[\s\S]*\]/);if(!s)return null;try{return JSON.parse(s[0])}catch{return null}}const ae=Object.freeze(["create_component","add_feature","fix_bug","refactor","add_api","add_test","update_style","configure","general"]),$e=Object.freeze(["draft","complete","refined"]),be=Object.freeze(["naming","architecture","testing","style","imports","components"]);function I(l,o=0){return typeof l=="number"&&Number.isFinite(l)?l:o}function q(l,o){if(l==null)return o;if(typeof l!="string")return l;try{return JSON.parse(l)}catch{return l}}function dt(l){const o=J(l);return!o||typeof o!="object"||Array.isArray(o)?null:{intent:String(o.intent||"general"),confidence:I(o.confidence,0)}}function ft(l){const o=J(l);if(!o||typeof o!="object"||Array.isArray(o))return null;const s=Array.isArray(o.entities)?o.entities.map(m=>m&&typeof m=="object"?{type:String(m.type||""),value:String(m.value||"")}:null).filter(Boolean):[];return{entities:s,count:I(o.count,s.length)}}function yt(l){const o=J(l);if(!o||typeof o!="object"||Array.isArray(o))return null;const s=Array.isArray(o.detected)?o.detected.filter(m=>typeof m=="string"):[];return{detected:s,primary:o.primary?String(o.primary):s[0]||null}}function mt(l,o=0){if(!l||typeof l!="object")return null;const s=l.id||"";return s?{key:s,id:s,inputText:l.inputText??l.input_text??"",intent:String(l.intent||"general"),entities:q(l.entities,[]),techStack:q(l.techStack??l.tech_stack,[]),spec:q(l.spec,null),completenessScore:I(l.completenessScore??l.completeness_score,0),ambiguities:q(l.ambiguities,[]),status:String(l.status||"draft").toLowerCase(),createdAt:l.createdAt??l.created_at??null,updatedAt:l.updatedAt??l.updated_at??null,_idx:o}:null}function vt(l){const o=J(l);return Array.isArray(o)?o.map(mt).filter(Boolean):[]}function gt(l){const o=J(l);return!o||typeof o!="object"||Array.isArray(o)||o.translationId===void 0?null:{translated:!!o.translated,translationId:o.translationId,intent:String(o.intent||""),completeness:I(o.completeness,0)}}function _t(l){if(!l)return{noDb:!1,error:""};const o=/No ChainlessChain project database/i.test(l)||/Cannot read properties of undefined \(reading ['"]prepare['"]\)/i.test(l)||/TypeError.*prepare/i.test(l),s=l.match(/Error:\s*(No ChainlessChain project database[^\r\n]*)/i);if(s)return{noDb:!0,error:s[1].trim()};const m=l.match(/TypeError:\s*(.+?)(?:\r?\n|$)/i);return{noDb:o,error:m?m[1].trim():""}}function xt(l,o=0){if(!l||typeof l!="object")return null;const s=l.id||"";return s?{key:s,id:s,category:String(l.category||""),pattern:String(l.pattern||""),examples:q(l.examples,[]),confidence:I(l.confidence,0),sourceFiles:q(l.sourceFiles??l.source_files,[]),createdAt:l.createdAt??l.created_at??null,_idx:o}:null}function bt(l){const o=J(l);return Array.isArray(o)?o.map(xt).filter(Boolean):[]}const kt={translations:{total:0,byIntent:{},byStatus:{draft:0,complete:0,refined:0},avgCompleteness:0},conventions:{total:0,byCategory:{}}};function St(l){const o=JSON.parse(JSON.stringify(kt));for(const m of ae)o.translations.byIntent[m]=0;for(const m of be)o.conventions.byCategory[m]=0;const s=J(l);if(!s||typeof s!="object"||Array.isArray(s))return o;if(s.translations&&typeof s.translations=="object"){if(o.translations.total=I(s.translations.total,0),o.translations.avgCompleteness=I(s.translations.avgCompleteness??s.translations.avg_completeness,0),s.translations.byIntent&&typeof s.translations.byIntent=="object")for(const[m,h]of Object.entries(s.translations.byIntent))typeof h=="number"&&Number.isFinite(h)&&(o.translations.byIntent[m]=h);if(s.translations.byStatus&&typeof s.translations.byStatus=="object")for(const m of Object.keys(o.translations.byStatus))o.translations.byStatus[m]=I(s.translations.byStatus[m],0)}if(s.conventions&&typeof s.conventions=="object"&&(o.conventions.total=I(s.conventions.total,0),s.conventions.byCategory&&typeof s.conventions.byCategory=="object"))for(const[m,h]of Object.entries(s.conventions.byCategory))typeof h=="number"&&Number.isFinite(h)&&(o.conventions.byCategory[m]=h);return o}function ne(l){if(l==null||l==="")return"—";const o=typeof l=="number"?new Date(l):new Date(String(l));return isNaN(o.getTime())?String(l):o.toLocaleString("zh-CN",{hour12:!1})}const Ct={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},zt={class:"filter-bar"},ht={key:0,style:{color:"var(--text-primary)"}},At={key:4,style:{color:"var(--text-secondary)","font-size":"11px"}},jt={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},Tt={class:"filter-bar"},wt={key:1,style:{color:"var(--text-primary)","font-family":"monospace","font-size":"12px"}},Nt={key:0,style:{color:"var(--text-muted)"}},Ot={key:4,style:{color:"var(--text-secondary)","font-size":"11px"}},Ft={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},$t={key:0,style:{"margin-bottom":"12px"}},Rt={style:{color:"var(--text-secondary)","font-size":"12px"}},It={key:1,style:{"margin-bottom":"12px"}},Ut={style:{"font-size":"12px",color:"var(--text-secondary)","margin-bottom":"4px"}},Dt={key:0,style:{color:"var(--text-muted)"}},Et={key:2},Lt={key:0,style:{color:"var(--text-muted)"}},Jt={key:0,style:{"padding-top":"8px"}},Bt={style:{"white-space":"pre-wrap",color:"var(--text-primary)"}},Mt={style:{"margin-top":"16px"}},Pt={class:"json-block"},qt={class:"json-block"},Vt={key:0},Kt={class:"json-block"},Gt={__name:"NLProgramming",setup(l){const o=tt(),s=k(!1),m=k(!1),h=k(!1),oe=k(!1),ke=k([]),le=k([]),N=k({translations:{total:0,byIntent:{},byStatus:{draft:0,complete:0,refined:0},avgCompleteness:0},conventions:{total:0,byCategory:{}}}),re=k("translations"),V=k(""),K=k(""),Y=k(""),se=k(!1),Q=k(!1),X=k(!1),ie=k(!1),ue=xe({text:""}),O=xe({text:"",intent:null}),b=xe({category:"naming",pattern:"",examples:"",confidence:.8}),F=k(null),$=k(null),T=k(null),Z=k({noDb:!1,error:""}),C=k(null),Re=[{title:"原文",key:"inputText"},{title:"意图",key:"intent",width:"140px"},{title:"完整度",key:"completeness",width:"160px"},{title:"状态",key:"status",width:"100px"},{title:"更新时间",key:"updatedAt",width:"160px"},{title:"操作",key:"action",width:"210px"}],Ie=[{title:"类别",key:"category",width:"120px"},{title:"模式",key:"pattern"},{title:"示例",key:"examples",width:"220px"},{title:"置信度",key:"confidence",width:"90px"},{title:"创建时间",key:"createdAt",width:"160px"},{title:"操作",key:"action",width:"90px"}],Ue=_e(()=>N.value.translations.avgCompleteness*100),De=_e(()=>{let r=ke.value;return V.value&&(r=r.filter(e=>e.intent===V.value)),K.value&&(r=r.filter(e=>e.status===K.value)),r}),Ee=_e(()=>Y.value?le.value.filter(r=>r.category===Y.value):le.value);function B(r){return{create_component:"创建组件",add_feature:"新增功能",fix_bug:"修复 Bug",refactor:"重构",add_api:"加 API",add_test:"加测试",update_style:"改样式",configure:"配置",general:"通用"}[r]||r}function ee(r){return{create_component:"blue",add_feature:"green",fix_bug:"red",refactor:"purple",add_api:"cyan",add_test:"orange",update_style:"magenta",configure:"gold",general:"default"}[r]||"default"}function G(r){return{draft:"草稿",complete:"已完成",refined:"已精炼"}[r]||r}function Se(r){return{draft:"default",complete:"green",refined:"cyan"}[r]||"default"}function ce(r){return{naming:"命名",architecture:"架构",testing:"测试",style:"样式",imports:"导入",components:"组件"}[r]||r}function Le(r){return{naming:"blue",architecture:"purple",testing:"cyan",style:"magenta",imports:"orange",components:"green"}[r]||"default"}function pe(r){return r>=.7?"#52c41a":r>=.4?"#faad14":"#ff4d4f"}function Je(r,e){return r?r.length>e?r.slice(0,e)+"...":r:""}function de(r){if(r==null)return"—";if(typeof r=="string")return r;try{return JSON.stringify(r,null,2)}catch{return String(r)}}function Be({key:r}){r==="analyze"?(F.value=null,$.value=null,T.value=null,se.value=!0):r==="translate"?(Z.value={noDb:!1,error:""},Q.value=!0):r==="convention"&&(X.value=!0)}async function U(){s.value=!0;try{const[r,e,y]=await Promise.all([o.execute("nlprog list --limit 200 --json",1e4).catch(()=>({output:""})),o.execute("nlprog conventions --limit 200 --json",1e4).catch(()=>({output:""})),o.execute("nlprog stats --json",8e3).catch(()=>({output:""}))]);ke.value=vt(r.output),le.value=bt(e.output),N.value=St(y.output)}catch(r){g.error("加载 NL 数据失败: "+(r?.message||r))}finally{s.value=!1}}async function Me(){const r=ue.text.trim();if(!r){g.warning("请输入文本");return}m.value=!0,F.value=null,$.value=null,T.value=null;try{const e=r.replace(/"/g,'\\"'),[y,R,D]=await Promise.all([o.execute(`nlprog classify "${e}" --json`,8e3).catch(()=>({output:""})),o.execute(`nlprog extract "${e}" --json`,8e3).catch(()=>({output:""})),o.execute(`nlprog detect-stack "${e}" --json`,8e3).catch(()=>({output:""}))]);F.value=dt(y.output),$.value=ft(R.output),T.value=yt(D.output),!F.value&&!$.value&&!T.value&&g.error("分析失败")}catch(e){g.error("分析失败: "+(e?.message||e))}finally{m.value=!1}}async function Pe(){const r=O.text.trim();if(!r){g.warning("请输入自然语言文本");return}h.value=!0,Z.value={noDb:!1,error:""};try{const e=[`nlprog translate "${r.replace(/"/g,'\\"')}"`];O.intent&&e.push(`--intent ${O.intent}`),e.push("--json");const{output:y}=await o.execute(e.join(" "),12e3),R=_t(y);if(R.noDb){Z.value=R;return}const D=gt(y);if(!D){g.error("翻译失败: "+y.slice(0,120));return}g.success(`翻译完成 (完整度 ${(D.completeness*100).toFixed(0)}%)`),Q.value=!1,Ce(),await U()}catch(e){g.error("翻译失败: "+(e?.message||e))}finally{h.value=!1}}async function qe(r,e){if(e!==r.status)try{const{output:y}=await o.execute(`nlprog status ${r.id} ${e} --json`,8e3);if(/error|invalid/i.test(y)&&!/"updated"/.test(y)){g.error("状态转换失败: "+y.slice(0,120));return}g.success(`已更新为 ${G(e)}`),await U()}catch(y){g.error("状态转换失败: "+(y?.message||y))}}async function Ve(r){try{const{output:e}=await o.execute(`nlprog remove ${r.id} --json`,8e3);if(/error/i.test(e)&&!/"removed"/.test(e)){g.error("删除失败: "+e.slice(0,120));return}g.success("已删除"),await U()}catch(e){g.error("删除失败: "+(e?.message||e))}}function Ke(r){C.value=r,ie.value=!0}async function Ge(){const r=b.pattern.trim();if(!r){g.warning("请填写模式");return}if(b.examples.trim())try{JSON.parse(b.examples)}catch{g.warning("示例 JSON 格式错误");return}oe.value=!0;try{const e=[`nlprog convention-add --category ${b.category}`];e.push(`--pattern "${r.replace(/"/g,'\\"')}"`),b.examples.trim()&&e.push(`--examples '${b.examples.trim().replace(/'/g,"'\\''")}'`),b.confidence!=null&&e.push(`--confidence ${b.confidence}`),e.push("--json");const{output:y}=await o.execute(e.join(" "),1e4);if(/error|invalid|失败/i.test(y)&&!/"added"/.test(y)){g.error("添加失败: "+y.slice(0,120));return}g.success("约定已添加"),X.value=!1,ze(),re.value="conventions",await U()}catch(e){g.error("添加失败: "+(e?.message||e))}finally{oe.value=!1}}async function We(r){try{const{output:e}=await o.execute(`nlprog convention-remove ${r.id} --json`,8e3);if(/error/i.test(e)&&!/"removed"/.test(e)){g.error("删除失败: "+e.slice(0,120));return}g.success("已删除"),await U()}catch(e){g.error("删除失败: "+(e?.message||e))}}function Ce(){O.text="",O.intent=null}function ze(){b.category="naming",b.pattern="",b.examples="",b.confidence=.8}return ct(U),(r,e)=>{const y=p("a-button"),R=p("a-menu-item"),D=p("a-menu"),he=p("a-dropdown"),Ae=p("a-space"),W=p("a-statistic"),E=p("a-card"),H=p("a-col"),He=p("a-row"),A=p("a-tag"),M=p("a-radio-button"),fe=p("a-radio-group"),je=p("a-progress"),Te=p("a-popconfirm"),we=p("a-table"),Ne=p("a-tab-pane"),Ye=p("a-tabs"),ye=p("a-textarea"),L=p("a-form-item"),me=p("a-form"),te=p("a-modal"),Oe=p("a-select-option"),Fe=p("a-select"),Qe=p("a-alert"),Xe=p("a-input"),Ze=p("a-input-number"),P=p("a-descriptions-item"),et=p("a-descriptions");return i(),f("div",null,[x("div",Ct,[e[20]||(e[20]=x("div",null,[x("h2",{class:"page-title"},"自然语言编程"),x("p",{class:"page-sub"},"意图识别 · 实体抽取 · 技术栈检测 · 自然语言→规约")],-1)),n(Ae,null,{default:t(()=>[n(y,{loading:s.value,onClick:U},{icon:t(()=>[n(v(ot))]),default:t(()=>[e[15]||(e[15]=u(" 刷新 ",-1))]),_:1},8,["loading"]),n(he,{trigger:["click"]},{overlay:t(()=>[n(D,{onClick:Be},{default:t(()=>[n(R,{key:"analyze"},{default:t(()=>[n(v(rt)),e[17]||(e[17]=u(" 文本分析",-1))]),_:1}),n(R,{key:"translate"},{default:t(()=>[n(v(ve)),e[18]||(e[18]=u(" 翻译为规约",-1))]),_:1}),n(R,{key:"convention"},{default:t(()=>[n(v(ge)),e[19]||(e[19]=u(" 添加约定",-1))]),_:1})]),_:1})]),default:t(()=>[n(y,{type:"primary"},{icon:t(()=>[n(v(lt))]),default:t(()=>[e[16]||(e[16]=u(" 操作 ▼ ",-1))]),_:1})]),_:1})]),_:1})]),n(He,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:t(()=>[n(H,{xs:12,sm:8,lg:5},{default:t(()=>[n(E,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[n(W,{title:"翻译总数",value:N.value.translations.total,"value-style":{color:"#1677ff",fontSize:"20px"}},{prefix:t(()=>[n(v(ve))]),_:1},8,["value"])]),_:1})]),_:1}),n(H,{xs:12,sm:8,lg:5},{default:t(()=>[n(E,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[n(W,{title:"平均完整度",value:Ue.value,precision:1,suffix:"%","value-style":{color:N.value.translations.avgCompleteness>=.7?"#52c41a":"#faad14",fontSize:"20px"}},{prefix:t(()=>[n(v(st))]),_:1},8,["value","value-style"])]),_:1})]),_:1}),n(H,{xs:12,sm:8,lg:5},{default:t(()=>[n(E,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[n(W,{title:"草稿",value:N.value.translations.byStatus.draft,"value-style":{color:"#faad14",fontSize:"20px"}},{prefix:t(()=>[n(v(it))]),_:1},8,["value"])]),_:1})]),_:1}),n(H,{xs:12,sm:8,lg:5},{default:t(()=>[n(E,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[n(W,{title:"已完成",value:N.value.translations.byStatus.complete,"value-style":{color:"#52c41a",fontSize:"20px"}},{prefix:t(()=>[n(v(ut))]),_:1},8,["value"])]),_:1})]),_:1}),n(H,{xs:24,sm:8,lg:4},{default:t(()=>[n(E,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[n(W,{title:"项目约定",value:N.value.conventions.total,"value-style":{color:"#722ed1",fontSize:"20px"}},{prefix:t(()=>[n(v(ge))]),_:1},8,["value"])]),_:1})]),_:1})]),_:1}),N.value.translations.total>0?(i(),S(E,{key:0,title:"意图分布",size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"20px"},"body-style":{padding:"12px 16px"}},{default:t(()=>[n(Ae,{size:[12,8],wrap:""},{default:t(()=>[(i(!0),f(z,null,w(v(ae),a=>(i(),S(A,{key:a,color:ee(a)},{default:t(()=>[u(c(B(a))+": "+c(N.value.translations.byIntent[a]||0),1)]),_:2},1032,["color"]))),128))]),_:1})]),_:1})):_("",!0),n(Ye,{activeKey:re.value,"onUpdate:activeKey":e[3]||(e[3]=a=>re.value=a),class:"nlprog-tabs"},{default:t(()=>[n(Ne,{key:"translations",tab:"翻译"},{default:t(()=>[x("div",zt,[n(fe,{value:V.value,"onUpdate:value":e[0]||(e[0]=a=>V.value=a),size:"small"},{default:t(()=>[n(M,{value:""},{default:t(()=>[...e[21]||(e[21]=[u("全部意图",-1)])]),_:1}),(i(!0),f(z,null,w(v(ae),a=>(i(),S(M,{key:a,value:a},{default:t(()=>[u(c(B(a)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"]),n(fe,{value:K.value,"onUpdate:value":e[1]||(e[1]=a=>K.value=a),size:"small","button-style":"solid"},{default:t(()=>[n(M,{value:""},{default:t(()=>[...e[22]||(e[22]=[u("全部状态",-1)])]),_:1}),(i(!0),f(z,null,w(v($e),a=>(i(),S(M,{key:a,value:a},{default:t(()=>[u(c(G(a)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),n(we,{columns:Re,"data-source":De.value,pagination:{pageSize:20,showTotal:a=>`共 ${a} 条`},size:"small",loading:s.value,style:{background:"var(--bg-card)"}},{bodyCell:t(({column:a,record:d})=>[a.key==="inputText"?(i(),f("span",ht,c(Je(d.inputText,80)),1)):_("",!0),a.key==="intent"?(i(),S(A,{key:1,color:ee(d.intent),style:{"font-size":"11px"}},{default:t(()=>[u(c(B(d.intent)),1)]),_:2},1032,["color"])):_("",!0),a.key==="completeness"?(i(),S(je,{key:2,percent:Math.round(d.completenessScore*100),size:"small","stroke-color":pe(d.completenessScore),format:()=>(d.completenessScore*100).toFixed(0)+"%"},null,8,["percent","stroke-color","format"])):_("",!0),a.key==="status"?(i(),S(A,{key:3,color:Se(d.status)},{default:t(()=>[u(c(G(d.status)),1)]),_:2},1032,["color"])):_("",!0),a.key==="updatedAt"?(i(),f("span",At,c(v(ne)(d.updatedAt)),1)):_("",!0),a.key==="action"?(i(),f(z,{key:5},[n(y,{size:"small",type:"link",onClick:j=>Ke(d)},{default:t(()=>[...e[23]||(e[23]=[u("详情",-1)])]),_:1},8,["onClick"]),n(he,{trigger:["click"]},{overlay:t(()=>[n(D,{onClick:j=>qe(d,j.key)},{default:t(()=>[(i(!0),f(z,null,w(v($e),j=>(i(),S(R,{key:j,disabled:j===d.status},{default:t(()=>[u(c(G(j)),1)]),_:2},1032,["disabled"]))),128))]),_:2},1032,["onClick"])]),default:t(()=>[n(y,{size:"small",type:"link"},{default:t(()=>[...e[24]||(e[24]=[u("状态 ▼",-1)])]),_:1})]),_:2},1024),n(Te,{title:"删除该翻译?","ok-text":"删除","cancel-text":"取消",onConfirm:j=>Ve(d)},{default:t(()=>[n(y,{size:"small",type:"link",danger:""},{default:t(()=>[...e[25]||(e[25]=[u("删除",-1)])]),_:1})]),_:1},8,["onConfirm"])],64)):_("",!0)]),emptyText:t(()=>[x("div",jt,[n(v(ve),{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),u(" "+c(V.value||K.value?"没有符合条件的翻译":'暂无翻译,点"操作 → 翻译为规约"创建第一个'),1)])]),_:1},8,["data-source","pagination","loading"])]),_:1}),n(Ne,{key:"conventions",tab:"项目约定"},{default:t(()=>[x("div",Tt,[n(fe,{value:Y.value,"onUpdate:value":e[2]||(e[2]=a=>Y.value=a),size:"small","button-style":"solid"},{default:t(()=>[n(M,{value:""},{default:t(()=>[...e[26]||(e[26]=[u("全部",-1)])]),_:1}),(i(!0),f(z,null,w(v(be),a=>(i(),S(M,{key:a,value:a},{default:t(()=>[u(c(ce(a)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),n(we,{columns:Ie,"data-source":Ee.value,pagination:{pageSize:20,showTotal:a=>`共 ${a} 条`},size:"small",loading:s.value,style:{background:"var(--bg-card)"}},{bodyCell:t(({column:a,record:d})=>[a.key==="category"?(i(),S(A,{key:0,color:Le(d.category)},{default:t(()=>[u(c(ce(d.category)),1)]),_:2},1032,["color"])):_("",!0),a.key==="pattern"?(i(),f("span",wt,c(d.pattern),1)):_("",!0),a.key==="examples"?(i(),f(z,{key:2},[(i(!0),f(z,null,w(Array.isArray(d.examples)?d.examples.slice(0,3):[],j=>(i(),S(A,{key:j,color:"default",style:{"font-size":"10px","font-family":"monospace",margin:"1px"}},{default:t(()=>[u(c(j),1)]),_:2},1024))),128)),!Array.isArray(d.examples)||d.examples.length===0?(i(),f("span",Nt,"—")):_("",!0)],64)):_("",!0),a.key==="confidence"?(i(),f("span",{key:3,style:pt({color:pe(d.confidence),fontWeight:500})},c((d.confidence*100).toFixed(0))+"% ",5)):_("",!0),a.key==="createdAt"?(i(),f("span",Ot,c(v(ne)(d.createdAt)),1)):_("",!0),a.key==="action"?(i(),S(Te,{key:5,title:"删除该约定?","ok-text":"删除","cancel-text":"取消",onConfirm:j=>We(d)},{default:t(()=>[n(y,{size:"small",type:"link",danger:""},{default:t(()=>[...e[27]||(e[27]=[u("删除",-1)])]),_:1})]),_:1},8,["onConfirm"])):_("",!0)]),emptyText:t(()=>[x("div",Ft,[n(v(ge),{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),e[28]||(e[28]=u(' 暂无约定,点"操作 → 添加约定"创建第一个 ',-1))])]),_:1},8,["data-source","pagination","loading"])]),_:1})]),_:1},8,["activeKey"]),n(te,{open:se.value,"onUpdate:open":e[5]||(e[5]=a=>se.value=a),title:"文本分析(无状态)","confirm-loading":m.value,width:600,"ok-text":"分析","cancel-text":"关闭",onOk:Me},{default:t(()=>[n(me,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:t(()=>[n(L,{label:"文本",required:""},{default:t(()=>[n(ye,{value:ue.text,"onUpdate:value":e[4]||(e[4]=a=>ue.text=a),placeholder:"例如: create a login button component using React","auto-size":{minRows:3,maxRows:6}},null,8,["value"])]),_:1})]),_:1}),F.value||$.value||T.value?(i(),S(E,{key:0,size:"small",style:{background:"var(--bg-base)","margin-top":"8px"}},{default:t(()=>[F.value?(i(),f("div",$t,[e[29]||(e[29]=x("div",{style:{"font-size":"12px",color:"var(--text-secondary)","margin-bottom":"4px"}},"意图",-1)),n(A,{color:ee(F.value.intent),style:{"margin-right":"6px"}},{default:t(()=>[u(c(B(F.value.intent)),1)]),_:1},8,["color"]),x("span",Rt,"置信度: "+c((F.value.confidence*100).toFixed(0))+"%",1)])):_("",!0),$.value?(i(),f("div",It,[x("div",Ut,"实体("+c($.value.count)+")",1),$.value.entities.length?_("",!0):(i(),f("span",Dt,"未识别到")),(i(!0),f(z,null,w($.value.entities,(a,d)=>(i(),S(A,{key:d,color:"purple",style:{"font-family":"monospace","font-size":"11px",margin:"1px"}},{default:t(()=>[u(" ["+c(a.type)+"] "+c(a.value),1)]),_:2},1024))),128))])):_("",!0),T.value?(i(),f("div",Et,[e[30]||(e[30]=x("div",{style:{"font-size":"12px",color:"var(--text-secondary)","margin-bottom":"4px"}},"技术栈",-1)),T.value.detected.length?(i(),f(z,{key:1},[n(A,{color:"cyan",style:{"font-family":"monospace"}},{default:t(()=>[u("主: "+c(T.value.primary),1)]),_:1}),(i(!0),f(z,null,w(T.value.detected.filter(a=>a!==T.value.primary),a=>(i(),S(A,{key:a,color:"default",style:{"font-family":"monospace","font-size":"11px"}},{default:t(()=>[u(c(a),1)]),_:2},1024))),128))],64)):(i(),f("span",Lt,"未识别到"))])):_("",!0)]),_:1})):_("",!0)]),_:1},8,["open","confirm-loading"]),n(te,{open:Q.value,"onUpdate:open":e[8]||(e[8]=a=>Q.value=a),title:"翻译为规约","confirm-loading":h.value,width:540,"ok-text":"翻译","cancel-text":"取消",onOk:Pe,onCancel:Ce},{default:t(()=>[n(me,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:t(()=>[n(L,{label:"自然语言",required:""},{default:t(()=>[n(ye,{value:O.text,"onUpdate:value":e[6]||(e[6]=a=>O.text=a),placeholder:"例如: create a Vue 3 LoginForm component with email and password fields","auto-size":{minRows:3,maxRows:6}},null,8,["value"])]),_:1}),n(L,{label:"意图覆盖"},{default:t(()=>[n(Fe,{value:O.intent,"onUpdate:value":e[7]||(e[7]=a=>O.intent=a),"allow-clear":"",placeholder:"留空则自动识别"},{default:t(()=>[(i(!0),f(z,null,w(v(ae),a=>(i(),S(Oe,{key:a,value:a},{default:t(()=>[u(c(B(a)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),_:1})]),_:1}),Z.value.noDb?(i(),S(Qe,{key:0,type:"warning","show-icon":"",message:"该命令需要项目级数据库",description:"`cc nlprog translate` 仅在 chainlesschain 项目目录下可用。请先运行 `cc init` 初始化项目,或在已初始化的目录启动 `cc serve`。",style:{"margin-top":"12px"}})):_("",!0)]),_:1},8,["open","confirm-loading"]),n(te,{open:X.value,"onUpdate:open":e[13]||(e[13]=a=>X.value=a),title:"添加项目约定","confirm-loading":oe.value,width:540,"ok-text":"添加","cancel-text":"取消",onOk:Ge,onCancel:ze},{default:t(()=>[n(me,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:t(()=>[n(L,{label:"类别",required:""},{default:t(()=>[n(Fe,{value:b.category,"onUpdate:value":e[9]||(e[9]=a=>b.category=a)},{default:t(()=>[(i(!0),f(z,null,w(v(be),a=>(i(),S(Oe,{key:a,value:a},{default:t(()=>[u(c(ce(a)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),_:1}),n(L,{label:"模式",required:""},{default:t(()=>[n(Xe,{value:b.pattern,"onUpdate:value":e[10]||(e[10]=a=>b.pattern=a),placeholder:"例如: kebab-case for file names"},null,8,["value"])]),_:1}),n(L,{label:"示例"},{default:t(()=>[n(ye,{value:b.examples,"onUpdate:value":e[11]||(e[11]=a=>b.examples=a),placeholder:'JSON 数组,例如 ["login-form.vue","user-card.vue"]',"auto-size":{minRows:2,maxRows:4}},null,8,["value"])]),_:1}),n(L,{label:"置信度"},{default:t(()=>[n(Ze,{value:b.confidence,"onUpdate:value":e[12]||(e[12]=a=>b.confidence=a),min:0,max:1,step:.05,style:{width:"100%"}},null,8,["value"])]),_:1})]),_:1})]),_:1},8,["open","confirm-loading"]),n(te,{open:ie.value,"onUpdate:open":e[14]||(e[14]=a=>ie.value=a),title:`翻译详情:${C.value?.id?.slice(0,8)||""}`,width:720,footer:null},{default:t(()=>[C.value?(i(),f("div",Jt,[n(et,{column:2,size:"small",bordered:""},{default:t(()=>[n(P,{label:"意图"},{default:t(()=>[n(A,{color:ee(C.value.intent)},{default:t(()=>[u(c(B(C.value.intent)),1)]),_:1},8,["color"])]),_:1}),n(P,{label:"状态"},{default:t(()=>[n(A,{color:Se(C.value.status)},{default:t(()=>[u(c(G(C.value.status)),1)]),_:1},8,["color"])]),_:1}),n(P,{label:"完整度",span:2},{default:t(()=>[n(je,{percent:Math.round(C.value.completenessScore*100),"stroke-color":pe(C.value.completenessScore),size:"small"},null,8,["percent","stroke-color"])]),_:1}),n(P,{label:"创建时间"},{default:t(()=>[u(c(v(ne)(C.value.createdAt)),1)]),_:1}),n(P,{label:"更新时间"},{default:t(()=>[u(c(v(ne)(C.value.updatedAt)),1)]),_:1}),n(P,{label:"原文",span:2},{default:t(()=>[x("span",Bt,c(C.value.inputText),1)]),_:1})]),_:1}),x("div",Mt,[e[31]||(e[31]=x("h4",{style:{color:"var(--text-primary)","font-size":"13px","margin-bottom":"8px"}},"实体",-1)),x("pre",Pt,c(de(C.value.entities)),1)]),x("div",null,[e[32]||(e[32]=x("h4",{style:{color:"var(--text-primary)","font-size":"13px","margin-bottom":"8px"}},"技术栈",-1)),x("pre",qt,c(de(C.value.techStack)),1)]),C.value.spec?(i(),f("div",Vt,[e[33]||(e[33]=x("h4",{style:{color:"var(--text-primary)","font-size":"13px","margin-bottom":"8px"}},"规约",-1)),x("pre",Kt,c(de(C.value.spec)),1)])):_("",!0)])):_("",!0)]),_:1},8,["open","title"])])}}},rn=at(Gt,[["__scopeId","data-v-87b8b4dc"]]);export{rn as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.page-title[data-v-87b8b4dc]{margin:0;color:var(--text-primary);font-size:22px;font-weight:600}.page-sub[data-v-87b8b4dc]{margin:4px 0 0;color:var(--text-secondary);font-size:13px}.nlprog-tabs[data-v-87b8b4dc] .ant-tabs-nav{margin-bottom:16px}.filter-bar[data-v-87b8b4dc]{display:flex;align-items:center;gap:12px;margin-bottom:12px;flex-wrap:wrap}.json-block[data-v-87b8b4dc]{white-space:pre-wrap;word-break:break-all;color:#52c41a;font-size:11px;background:var(--bg-base);padding:8px 12px;border-radius:4px;border:1px solid var(--border-color);max-height:240px;overflow:auto;margin:0 0 16px;font-family:monospace}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import{u as te}from"./ws-4ur1fGsk.js";import{u as ae}from"./useFs-CK8VYPus.js";import{_ as oe}from"./_plugin-vue_export-helper-DlAUqK2U.js";import{ah as le,_ as ne,b as se,aj as ie}from"./icons-CJACPYXu.js";import{a as x}from"./index-BB5y5Y0z.js";import{l as re,F as g,D as m,I as f,c as l,x as o,m as w,G as y,r as i,q as c,j as ue,v as r,J as v,u as z,H as R,L as A}from"./vendor-D0Qjn73K.js";import"./useShellMode-CgR0wCYM.js";import"./index-Vit9TJBu.js";import"./useConfigInject-DIkkDpt1.js";import"./transition-CVd2ueaJ.js";import"./Keyframes-C7fCrnlS.js";import"./Portal-SsPhn64D.js";import"./index-U4Zd5IK6.js";const ce={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},pe={class:"page-sub"},de={style:{"margin-bottom":"16px",display:"flex",gap:"10px"}},ve={key:0,style:{"text-align":"center",padding:"60px"}},me={key:0,style:{color:"#e0e0e0","font-weight":"500"}},fe={key:2,style:{color:"var(--text-secondary)","font-size":"12px"}},ge={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},ye={key:0,style:{"max-height":"60vh","overflow-y":"auto"}},_e={style:{"margin-bottom":"10px"}},xe={style:{"white-space":"pre-wrap",color:"#ccc","font-family":"inherit","line-height":"1.7",background:"var(--bg-base)",padding:"16px","border-radius":"6px",border:"1px solid var(--border-color)"}},we={__name:"Notes",setup(he){const U=te(),E=ae(),L=i(!1),k=i(!1),O=i(!1),T=i(!1),V=i(""),W=i([]),b=i([]),$=i(!1),_=i(""),N=i(!1),C=i(!1),p=i(null),s=i({title:"",content:"",tags:""}),G=ue(()=>$.value?b.value:W.value),H=[{title:"标题",dataIndex:"title",key:"title",width:"30%"},{title:"预览",key:"content",ellipsis:!0},{title:"标签",key:"tags",width:"20%"},{title:"操作",key:"actions",width:"80px"}];async function j(){k.value=!0,V.value="";try{const{output:t}=await U.execute("note list",2e4);W.value=M(t)}catch(t){V.value=`加载失败: ${t.message}`}finally{k.value=!1}}function M(t){const e=[],d=t.split(`
|
|
2
|
-
`);for(const h of d){const n=h.trim();if(!n||n.startsWith("─")||n.startsWith("Note")||n.match(/^\d+ note/i))continue;const u=n.match(/^(\d+)\.\s+(.+?)(?:\s+\[([^\]]+)\])?\s*(?:-\s*(.*))?$/);u?e.push({key:u[1],id:u[1],title:u[2].trim(),tags:u[3]?u[3].split(",").map(F=>F.trim()):[],preview:(u[4]||"").trim().slice(0,100),content:""}):n.length>2&&!n.startsWith("✖")&&!n.startsWith("[")&&e.push({key:e.length,id:String(e.length),title:n,tags:[],preview:"",content:""})}return e}async function J(){if(!_.value.trim()){B();return}O.value=!0,$.value=!0;try{const{output:t}=await U.execute(`note search "${_.value}"`,15e3);b.value=M(t)}catch{b.value=[]}finally{O.value=!1}}function B(){_.value="",$.value=!1,b.value=[]}async function Q(){if(!s.value.title.trim()){x.warning("请输入标题");return}T.value=!0;try{let t=`note add "${s.value.title}"`;s.value.content&&(t+=` -c "${s.value.content.replace(/"/g,'\\"')}"`),s.value.tags&&(t+=` -t "${s.value.tags}"`);const{output:e}=await U.execute(t,15e3);e.includes("✖")||e.toLowerCase().includes("error")?x.error("添加失败: "+e.slice(0,100)):(x.success("笔记已添加"),N.value=!1,s.value={title:"",content:"",tags:""},await j())}catch(t){x.error("添加失败: "+t.message)}finally{T.value=!1}}function K(t){p.value=t,C.value=!0}async function X(){if(!p.value)return;const t=p.value,e=t.tags?.length?`tags: [${t.tags.join(", ")}]
|
|
3
|
-
|
|
4
|
-
`:"",d=`# ${t.title}
|
|
5
|
-
|
|
6
|
-
${e}${t.content||t.preview||""}
|
|
7
|
-
`,h=(t.title||"note").replace(/[\\/:*?"<>|\x00-\x1f]+/g,"_").slice(0,80)||"note";L.value=!0;try{const n=await E.saveText(d,{defaultPath:`${h}.md`,filters:[{name:"Markdown",extensions:["md"]}]});if(n.canceled)return;x.success(n.path?`已导出到 ${n.path}`:"已导出")}catch(n){x.error(`导出失败: ${n.message||n}`)}finally{L.value=!1}}return re(j),(t,e)=>{const d=c("a-button"),h=c("a-space"),n=c("a-input-search"),u=c("a-tag"),F=c("a-spin"),Y=c("a-table"),q=c("a-input"),D=c("a-form-item"),Z=c("a-textarea"),ee=c("a-form"),P=c("a-modal");return r(),g("div",null,[m("div",ce,[m("div",null,[e[8]||(e[8]=m("h2",{class:"page-title"},"笔记管理",-1)),m("p",pe,"个人知识库 · "+f(W.value.length)+" 条笔记",1)]),l(h,null,{default:o(()=>[l(d,{onClick:e[0]||(e[0]=a=>N.value=!0),type:"primary"},{icon:o(()=>[l(z(le))]),default:o(()=>[e[9]||(e[9]=v(" 新建笔记 ",-1))]),_:1}),l(d,{ghost:"",loading:k.value,onClick:j},{icon:o(()=>[l(z(ne))]),default:o(()=>[e[10]||(e[10]=v(" 刷新 ",-1))]),_:1},8,["loading"])]),_:1})]),m("div",de,[l(n,{value:_.value,"onUpdate:value":e[1]||(e[1]=a=>_.value=a),placeholder:"搜索笔记...","allow-clear":"",style:{"max-width":"400px"},loading:O.value,onSearch:J,onClear:B},null,8,["value","loading"]),$.value?(r(),w(u,{key:0,color:"blue",closable:"",onClose:B},{default:o(()=>[v(" 搜索: "+f(_.value),1)]),_:1})):y("",!0)]),k.value?(r(),g("div",ve,[l(F,{size:"large"})])):(r(),w(Y,{key:1,columns:H,"data-source":G.value,pagination:{pageSize:20,showTotal:a=>`共 ${a} 条`},size:"small",style:{background:"var(--bg-card)"},"row-class-name":()=>"note-row"},{bodyCell:o(({column:a,record:S})=>[a.key==="title"?(r(),g("span",me,f(S.title),1)):y("",!0),a.key==="tags"?(r(!0),g(R,{key:1},A(S.tags,I=>(r(),w(u,{key:I,color:"blue",style:{"font-size":"10px",margin:"1px"}},{default:o(()=>[v(f(I),1)]),_:2},1024))),128)):y("",!0),a.key==="content"?(r(),g("span",fe,f(S.preview),1)):y("",!0),a.key==="actions"?(r(),w(d,{key:3,size:"small",type:"link",onClick:I=>K(S)},{default:o(()=>[...e[11]||(e[11]=[v("查看",-1)])]),_:1},8,["onClick"])):y("",!0)]),emptyText:o(()=>[m("div",ge,[l(z(se),{style:{"font-size":"40px","margin-bottom":"12px",display:"block"}}),v(" "+f(V.value||'暂无笔记,点击"新建笔记"添加'),1)])]),_:1},8,["data-source","pagination"])),l(P,{open:N.value,"onUpdate:open":e[5]||(e[5]=a=>N.value=a),title:"新建笔记","confirm-loading":T.value,onOk:Q},{default:o(()=>[l(ee,{"label-col":{span:4},"wrapper-col":{span:20},style:{"margin-top":"16px"}},{default:o(()=>[l(D,{label:"标题",required:""},{default:o(()=>[l(q,{value:s.value.title,"onUpdate:value":e[2]||(e[2]=a=>s.value.title=a),placeholder:"笔记标题"},null,8,["value"])]),_:1}),l(D,{label:"内容"},{default:o(()=>[l(Z,{value:s.value.content,"onUpdate:value":e[3]||(e[3]=a=>s.value.content=a),rows:5,placeholder:"笔记内容..."},null,8,["value"])]),_:1}),l(D,{label:"标签"},{default:o(()=>[l(q,{value:s.value.tags,"onUpdate:value":e[4]||(e[4]=a=>s.value.tags=a),placeholder:"用逗号分隔,如: work,ideas"},null,8,["value"])]),_:1})]),_:1})]),_:1},8,["open","confirm-loading"]),l(P,{open:C.value,"onUpdate:open":e[7]||(e[7]=a=>C.value=a),title:p.value?.title,width:"700px"},{footer:o(()=>[l(d,{onClick:e[6]||(e[6]=a=>C.value=!1)},{default:o(()=>[...e[12]||(e[12]=[v("关闭",-1)])]),_:1}),p.value?(r(),w(d,{key:0,type:"primary",loading:L.value,onClick:X},{icon:o(()=>[l(z(ie))]),default:o(()=>[e[13]||(e[13]=v(" 导出 .md ",-1))]),_:1},8,["loading"])):y("",!0)]),default:o(()=>[p.value?(r(),g("div",ye,[m("div",_e,[(r(!0),g(R,null,A(p.value.tags,a=>(r(),w(u,{key:a,color:"blue"},{default:o(()=>[v(f(a),1)]),_:2},1024))),128))]),m("pre",xe,f(p.value.content||p.value.preview),1)])):y("",!0)]),_:1},8,["open","title"])])}}},je=oe(we,[["__scopeId","data-v-b654ddde"]]);export{je as default};
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import{l as Fe,F as v,D as h,c as a,x as o,r as i,q as g,v as r,J as f,u as C,m as _,I as m,G as y,H as be,P as ke,j as Ee}from"./vendor-D0Qjn73K.js";import{u as Ge}from"./ws-4ur1fGsk.js";import{_ as He}from"./_plugin-vue_export-helper-DlAUqK2U.js";import{a as p}from"./index-BB5y5Y0z.js";import{_ as Qe,ah as ge,x as Xe,ar as _e,ao as Ye,a7 as Ze,J as et}from"./icons-CJACPYXu.js";import"./index-Vit9TJBu.js";import"./useConfigInject-DIkkDpt1.js";import"./transition-CVd2ueaJ.js";import"./Keyframes-C7fCrnlS.js";import"./Portal-SsPhn64D.js";import"./index-U4Zd5IK6.js";const tt={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},at={key:0,style:{"text-align":"center",padding:"60px"}},lt={key:0,style:{color:"var(--text-secondary)","font-family":"monospace","font-size":"12px"}},nt={key:1,style:{color:"#1677ff"}},ot={key:2,style:{color:"var(--text-secondary)"}},st={key:3,style:{color:"var(--text-muted)","font-size":"12px"}},it={key:0,style:{"text-align":"center",padding:"40px"}},rt={key:1},ut={style:{"font-family":"monospace",color:"#ccc"}},dt={key:0,style:{"white-space":"pre-wrap","word-break":"break-all",color:"var(--text-secondary)","font-size":"11px",background:"var(--bg-base)",padding:"12px","border-radius":"6px",border:"1px solid var(--border-color)","max-height":"300px","overflow-y":"auto"}},pt={style:{"margin-bottom":"16px",display:"flex","align-items":"center",gap:"12px"}},ct={key:0,style:{"text-align":"center",padding:"60px"}},vt={key:0,style:{color:"var(--text-secondary)","font-family":"monospace","font-size":"12px"}},mt={key:1,style:{color:"#e0e0e0"}},yt={key:3,style:{color:"var(--text-secondary)","font-size":"12px"}},ft={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"12px"}},gt={key:0,style:{"text-align":"center",padding:"40px"}},xt={key:0,style:{color:"#e0e0e0"}},bt={key:1,style:{color:"var(--text-muted)","font-size":"12px"}},kt={key:2,style:{color:"var(--text-secondary)"}},_t={key:0,style:{"text-align":"center",padding:"60px"}},wt={key:0,style:{color:"var(--text-secondary)","font-family":"monospace","font-size":"12px"}},Ct={key:1,style:{color:"#e0e0e0"}},It={key:3,style:{color:"var(--text-secondary)"}},ht={key:1,style:{color:"var(--text-muted)","font-size":"12px"}},Ot={__name:"Organization",setup(jt){const k=Ge(),z=i("orgs"),ee=i(!1);async function we(){ee.value=!0;try{z.value==="orgs"?await $():z.value==="members"?(await $(),x.value&&(await pe(),await ce())):z.value==="approvals"&&await M()}finally{ee.value=!1}}function Ce(l){l==="orgs"&&O.value.length===0&&$(),l==="members"&&O.value.length===0&&$(),l==="approvals"&&G.value.length===0&&M()}function T(l){try{const e=l.trim(),t=e.indexOf("["),s=e.indexOf("{"),u=t>=0&&(s<0||t<s)?t:s;return u>=0?JSON.parse(e.slice(u)):null}catch{return null}}const te=i(!1),O=i([]),J=i(!1),ae=i(!1),U=i(""),P=i(""),le=i(!1),ne=i(!1),w=i({}),j=i(""),Ie=[{title:"ID",key:"id",dataIndex:"id",width:"100px"},{title:"名称",key:"name",dataIndex:"name",width:"180px"},{title:"所有者",key:"owner",dataIndex:"owner",width:"140px"},{title:"描述",key:"description",dataIndex:"description",ellipsis:!0},{title:"成员数",key:"memberCount",dataIndex:"memberCount",width:"90px"}],xe=Ee(()=>O.value.map(l=>({label:l.name,value:l.id})));async function $(){te.value=!0;try{const{output:l}=await k.execute("org list --json",15e3),e=T(l);Array.isArray(e)?O.value=e.map((t,s)=>({key:t.id||s,id:t.id||"-",name:t.name||"-",owner:t.owner||"-",description:t.description||"",memberCount:t.memberCount??t.members??0})):O.value=he(l)}catch(l){p.error("加载组织列表失败: "+l.message)}finally{te.value=!1}}function he(l){const e=[],t=l.split(`
|
|
2
|
-
`);for(const s of t){const u=s.trim();if(!u||u.startsWith("─")||u.match(/^\d+ org/i))continue;const c=u.split(/\s*[|│]\s*/);c.length>=3&&e.push({key:e.length,id:c[0]||"-",name:c[1]||"-",owner:c[2]||"-",description:c[3]||"",memberCount:parseInt(c[4],10)||0})}return e}async function Oe(){if(!U.value.trim()){p.warning("请输入组织名称");return}ae.value=!0;try{const l=U.value.trim().replace(/"/g,'\\"'),e=P.value.trim().replace(/"/g,'\\"');let t=`org create "${l}" --json`;e&&(t=`org create "${l}" --description "${e}" --json`);const{output:s}=await k.execute(t,2e4);s.includes("error")||s.includes("失败")?p.error("创建失败: "+s.slice(0,120)):(p.success("组织已创建"),J.value=!1,U.value="",P.value="",await $())}catch(l){p.error("创建失败: "+l.message)}finally{ae.value=!1}}async function je(l){w.value={...l},j.value="",le.value=!0,ne.value=!0;try{const{output:e}=await k.execute(`org show ${l.id} --json`,15e3),t=T(e);t&&typeof t=="object"?(w.value={id:t.id||l.id,name:t.name||l.name,owner:t.owner||l.owner,description:t.description||l.description,memberCount:t.memberCount??t.members??l.memberCount,createdAt:t.createdAt||t.created||""},j.value=JSON.stringify(t,null,2)):j.value=e}catch(e){j.value="加载详情失败: "+e.message}finally{ne.value=!1}}const x=i(null),oe=i(!1),se=i([]),ie=i(!1),re=i([]),V=i(!1),ue=i(!1),L=i(""),W=i(""),K=i("member"),R=i(!1),de=i(!1),D=i(""),F=i(""),E=i(""),$e=[{label:"管理员 (admin)",value:"admin"},{label:"成员 (member)",value:"member"},{label:"查看者 (viewer)",value:"viewer"}],Ae=[{title:"用户 ID",key:"userId",dataIndex:"userId",width:"160px"},{title:"名称",key:"name",dataIndex:"name",width:"140px"},{title:"角色",key:"role",dataIndex:"role",width:"100px"},{title:"加入时间",key:"joinedAt",dataIndex:"joinedAt",width:"180px"}],ze=[{title:"团队名称",key:"name",dataIndex:"name",width:"180px"},{title:"描述",key:"description",dataIndex:"description",ellipsis:!0},{title:"负责人",key:"lead",dataIndex:"lead",width:"140px"}];function Te(l){return{admin:"gold",member:"blue",viewer:"default",owner:"purple"}[(l||"").toLowerCase()]||"default"}async function Ue(){x.value&&await Promise.all([pe(),ce()])}async function pe(){if(x.value){oe.value=!0;try{const{output:l}=await k.execute(`org members ${x.value} --json`,15e3),e=T(l);Array.isArray(e)?se.value=e.map((t,s)=>({key:t.userId||t.id||s,userId:t.userId||t.id||"-",name:t.name||t.displayName||"-",role:t.role||"member",joinedAt:t.joinedAt||t.joined||"-"})):se.value=Le(l)}catch(l){p.error("加载成员失败: "+l.message)}finally{oe.value=!1}}}function Le(l){const e=[],t=l.split(`
|
|
3
|
-
`);for(const s of t){const u=s.trim();if(!u||u.startsWith("─")||u.match(/^\d+ member/i))continue;const c=u.split(/\s*[|│]\s*/);c.length>=3&&e.push({key:e.length,userId:c[0]||"-",name:c[1]||"-",role:c[2]||"member",joinedAt:c[3]||"-"})}return e}async function ce(){if(x.value){ie.value=!0;try{const{output:l}=await k.execute(`org teams ${x.value} --json`,15e3),e=T(l);Array.isArray(e)?re.value=e.map((t,s)=>({key:t.id||t.name||s,name:t.name||"-",description:t.description||"",lead:t.lead||t.leader||"-"})):re.value=[]}catch(l){p.error("加载团队失败: "+l.message)}finally{ie.value=!1}}}async function De(){if(!L.value.trim()){p.warning("请输入用户 ID");return}ue.value=!0;try{const l=L.value.trim().replace(/"/g,'\\"'),e=W.value.trim().replace(/"/g,'\\"');let t=`org invite ${x.value} ${l} --role ${K.value}`;e&&(t+=` --name "${e}"`);const{output:s}=await k.execute(t,2e4);s.includes("error")||s.includes("失败")?p.error("邀请失败: "+s.slice(0,120)):(p.success("邀请已发送"),V.value=!1,L.value="",W.value="",K.value="member",await pe())}catch(l){p.error("邀请失败: "+l.message)}finally{ue.value=!1}}async function qe(){if(!D.value.trim()){p.warning("请输入团队名称");return}de.value=!0;try{const l=D.value.trim().replace(/"/g,'\\"'),e=F.value.trim().replace(/"/g,'\\"'),t=E.value.trim().replace(/"/g,'\\"');let s=`org teams ${x.value} create "${l}"`;e&&(s+=` --description "${e}"`),t&&(s+=` --lead "${t}"`);const{output:u}=await k.execute(s,2e4);u.includes("error")||u.includes("失败")?p.error("创建失败: "+u.slice(0,120)):(p.success("团队已创建"),R.value=!1,D.value="",F.value="",E.value="",await ce())}catch(l){p.error("创建失败: "+l.message)}finally{de.value=!1}}const ve=i(!1),G=i([]),H=i(!1),me=i(!1),q=i(null),S=i(""),Q=i(""),X=i(""),Se=[{title:"ID",key:"id",dataIndex:"id",width:"100px"},{title:"标题",key:"title",dataIndex:"title",width:"200px"},{title:"类型",key:"type",dataIndex:"type",width:"120px"},{title:"申请人",key:"requester",dataIndex:"requester",width:"140px"},{title:"状态",key:"status",dataIndex:"status",width:"100px"},{title:"操作",key:"actions",width:"180px"}];function Me(l){return{pending:"orange",approved:"green",rejected:"red"}[(l||"").toLowerCase()]||"default"}async function M(){ve.value=!0;try{const{output:l}=await k.execute("org approvals --json",15e3),e=T(l);Array.isArray(e)?G.value=e.map((t,s)=>({key:t.id||s,id:t.id||"-",title:t.title||"-",type:t.type||"-",requester:t.requester||t.requestedBy||"-",status:t.status||"pending",_approving:!1,_rejecting:!1})):G.value=Ne(l)}catch(l){p.error("加载审批列表失败: "+l.message)}finally{ve.value=!1}}function Ne(l){const e=[],t=l.split(`
|
|
4
|
-
`);for(const s of t){const u=s.trim();if(!u||u.startsWith("─")||u.match(/^\d+ approval/i))continue;const c=u.split(/\s*[|│]\s*/);c.length>=4&&e.push({key:e.length,id:c[0]||"-",title:c[1]||"-",type:c[2]||"-",requester:c[3]||"-",status:c[4]||"pending",_approving:!1,_rejecting:!1})}return e}async function Be(l){l._approving=!0;try{const{output:e}=await k.execute(`org approve ${l.id}`,15e3);e.includes("error")||e.includes("失败")?p.error("审批失败: "+e.slice(0,120)):(p.success("已通过"),await M())}catch(e){p.error("审批失败: "+e.message)}finally{l._approving=!1}}async function Je(l){l._rejecting=!0;try{const{output:e}=await k.execute(`org reject ${l.id}`,15e3);e.includes("error")||e.includes("失败")?p.error("拒绝失败: "+e.slice(0,120)):(p.success("已拒绝"),await M())}catch(e){p.error("拒绝失败: "+e.message)}finally{l._rejecting=!1}}async function Pe(){if(!q.value){p.warning("请选择组织");return}if(!S.value.trim()){p.warning("请输入审批标题");return}me.value=!0;try{const l=S.value.trim().replace(/"/g,'\\"'),e=Q.value.trim().replace(/"/g,'\\"'),t=X.value.trim().replace(/"/g,'\\"');let s=`org approve --submit --org ${q.value} --title "${l}"`;e&&(s+=` --type "${e}"`),t&&(s+=` --description "${t}"`);const{output:u}=await k.execute(s,2e4);u.includes("error")||u.includes("失败")?p.error("提交失败: "+u.slice(0,120)):(p.success("审批已提交"),H.value=!1,q.value=null,S.value="",Q.value="",X.value="",await M())}catch(l){p.error("提交失败: "+l.message)}finally{me.value=!1}}return Fe(()=>{$()}),(l,e)=>{const t=g("a-button"),s=g("a-space"),u=g("a-spin"),c=g("a-tag"),N=g("a-empty"),Y=g("a-table"),A=g("a-descriptions-item"),Ve=g("a-descriptions"),B=g("a-modal"),I=g("a-input"),b=g("a-form-item"),Z=g("a-form"),ye=g("a-tab-pane"),fe=g("a-select"),We=g("a-textarea"),Ke=g("a-tabs");return r(),v("div",null,[h("div",tt,[e[24]||(e[24]=h("div",null,[h("h2",{class:"page-title"},"组织管理"),h("p",{class:"page-sub"},"组织 / 成员 / 审批")],-1)),a(t,{type:"primary",ghost:"",loading:ee.value,onClick:we},{icon:o(()=>[a(C(Qe))]),default:o(()=>[e[23]||(e[23]=f(" 刷新 ",-1))]),_:1},8,["loading"])]),a(Ke,{activeKey:z.value,"onUpdate:activeKey":e[22]||(e[22]=n=>z.value=n),type:"card",onChange:Ce},{default:o(()=>[a(ye,{key:"orgs"},{tab:o(()=>[a(C(Xe)),e[25]||(e[25]=f(" 组织列表 ",-1))]),default:o(()=>[a(s,{style:{"margin-bottom":"16px"}},{default:o(()=>[a(t,{type:"primary",onClick:e[0]||(e[0]=n=>J.value=!0)},{icon:o(()=>[a(C(ge))]),default:o(()=>[e[26]||(e[26]=f(" 创建组织 ",-1))]),_:1})]),_:1}),te.value?(r(),v("div",at,[a(u,{size:"large"})])):(r(),_(Y,{key:1,columns:Ie,"data-source":O.value,pagination:{pageSize:20,showTotal:n=>`共 ${n} 条`},size:"small",style:{background:"var(--bg-card)"},"row-class-name":()=>"org-row","custom-row":n=>({onClick:()=>je(n)})},{bodyCell:o(({column:n,record:d})=>[n.key==="id"?(r(),v("span",lt,m(d.id),1)):y("",!0),n.key==="name"?(r(),v("a",nt,m(d.name),1)):y("",!0),n.key==="owner"?(r(),v("span",ot,m(d.owner),1)):y("",!0),n.key==="description"?(r(),v("span",st,m(d.description),1)):y("",!0),n.key==="memberCount"?(r(),_(c,{key:4,color:"blue"},{default:o(()=>[f(m(d.memberCount),1)]),_:2},1024)):y("",!0)]),emptyText:o(()=>[a(N,{description:"暂无组织,点击「创建组织」添加"})]),_:1},8,["data-source","pagination","custom-row"])),a(B,{open:le.value,"onUpdate:open":e[1]||(e[1]=n=>le.value=n),title:"组织详情: "+w.value.name,footer:null,width:"640px"},{default:o(()=>[ne.value?(r(),v("div",it,[a(u)])):(r(),v("div",rt,[a(Ve,{column:1,bordered:"",size:"small",style:{"margin-bottom":"16px"}},{default:o(()=>[a(A,{label:"ID"},{default:o(()=>[h("span",ut,m(w.value.id),1)]),_:1}),a(A,{label:"名称"},{default:o(()=>[f(m(w.value.name),1)]),_:1}),a(A,{label:"所有者"},{default:o(()=>[f(m(w.value.owner),1)]),_:1}),a(A,{label:"描述"},{default:o(()=>[f(m(w.value.description||"-"),1)]),_:1}),a(A,{label:"成员数"},{default:o(()=>[f(m(w.value.memberCount),1)]),_:1}),w.value.createdAt?(r(),_(A,{key:0,label:"创建时间"},{default:o(()=>[f(m(w.value.createdAt),1)]),_:1})):y("",!0)]),_:1}),j.value?(r(),v("pre",dt,m(j.value),1)):y("",!0)]))]),_:1},8,["open","title"]),a(B,{open:J.value,"onUpdate:open":e[4]||(e[4]=n=>J.value=n),title:"创建组织","confirm-loading":ae.value,onOk:Oe,"ok-text":"创建","cancel-text":"取消"},{default:o(()=>[a(Z,{"label-col":{span:4},"wrapper-col":{span:20},style:{"margin-top":"16px"}},{default:o(()=>[a(b,{label:"名称",required:""},{default:o(()=>[a(I,{value:U.value,"onUpdate:value":e[2]||(e[2]=n=>U.value=n),placeholder:"请输入组织名称"},null,8,["value"])]),_:1}),a(b,{label:"描述"},{default:o(()=>[a(I,{value:P.value,"onUpdate:value":e[3]||(e[3]=n=>P.value=n),placeholder:"请输入组织描述(可选)"},null,8,["value"])]),_:1})]),_:1})]),_:1},8,["open","confirm-loading"])]),_:1}),a(ye,{key:"members"},{tab:o(()=>[a(C(_e)),e[27]||(e[27]=f(" 成员管理 ",-1))]),default:o(()=>[h("div",pt,[a(fe,{value:x.value,"onUpdate:value":e[5]||(e[5]=n=>x.value=n),placeholder:"选择组织",style:{width:"280px"},options:xe.value,onChange:Ue},null,8,["value","options"]),a(t,{type:"primary",disabled:!x.value,onClick:e[6]||(e[6]=n=>V.value=!0)},{icon:o(()=>[a(C(_e))]),default:o(()=>[e[28]||(e[28]=f(" 邀请成员 ",-1))]),_:1},8,["disabled"])]),oe.value?(r(),v("div",ct,[a(u,{size:"large"})])):x.value?(r(),_(Y,{key:1,columns:Ae,"data-source":se.value,pagination:{pageSize:20,showTotal:n=>`共 ${n} 条`},size:"small",style:{background:"var(--bg-card)","margin-bottom":"24px"},"row-class-name":()=>"org-row"},{bodyCell:o(({column:n,record:d})=>[n.key==="userId"?(r(),v("span",vt,m(d.userId),1)):y("",!0),n.key==="name"?(r(),v("span",mt,m(d.name),1)):y("",!0),n.key==="role"?(r(),_(c,{key:2,color:Te(d.role)},{default:o(()=>[f(m(d.role),1)]),_:2},1032,["color"])):y("",!0),n.key==="joinedAt"?(r(),v("span",yt,m(d.joinedAt),1)):y("",!0)]),emptyText:o(()=>[a(N,{description:"暂无成员"})]),_:1},8,["data-source","pagination"])):(r(),_(N,{key:2,description:"请先选择一个组织",style:{padding:"60px 0"}})),x.value?(r(),v(be,{key:3},[h("div",ft,[e[30]||(e[30]=h("h3",{style:{color:"var(--text-primary)",margin:"0","font-size":"15px"}},"团队",-1)),a(t,{size:"small",onClick:e[7]||(e[7]=n=>R.value=!0)},{icon:o(()=>[a(C(ge))]),default:o(()=>[e[29]||(e[29]=f(" 创建团队 ",-1))]),_:1})]),ie.value?(r(),v("div",gt,[a(u)])):(r(),_(Y,{key:1,columns:ze,"data-source":re.value,pagination:!1,size:"small",style:{background:"var(--bg-card)"},"row-class-name":()=>"org-row"},{bodyCell:o(({column:n,record:d})=>[n.key==="name"?(r(),v("span",xt,m(d.name),1)):y("",!0),n.key==="description"?(r(),v("span",bt,m(d.description),1)):y("",!0),n.key==="lead"?(r(),v("span",kt,m(d.lead),1)):y("",!0)]),emptyText:o(()=>[a(N,{description:"暂无团队"})]),_:1},8,["data-source"]))],64)):y("",!0),a(B,{open:V.value,"onUpdate:open":e[11]||(e[11]=n=>V.value=n),title:"邀请成员","confirm-loading":ue.value,onOk:De,"ok-text":"邀请","cancel-text":"取消"},{default:o(()=>[a(Z,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:o(()=>[a(b,{label:"用户 ID",required:""},{default:o(()=>[a(I,{value:L.value,"onUpdate:value":e[8]||(e[8]=n=>L.value=n),placeholder:"请输入用户 ID"},null,8,["value"])]),_:1}),a(b,{label:"名称"},{default:o(()=>[a(I,{value:W.value,"onUpdate:value":e[9]||(e[9]=n=>W.value=n),placeholder:"请输入用户名称"},null,8,["value"])]),_:1}),a(b,{label:"角色"},{default:o(()=>[a(fe,{value:K.value,"onUpdate:value":e[10]||(e[10]=n=>K.value=n),options:$e},null,8,["value"])]),_:1})]),_:1})]),_:1},8,["open","confirm-loading"]),a(B,{open:R.value,"onUpdate:open":e[15]||(e[15]=n=>R.value=n),title:"创建团队","confirm-loading":de.value,onOk:qe,"ok-text":"创建","cancel-text":"取消"},{default:o(()=>[a(Z,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:o(()=>[a(b,{label:"团队名称",required:""},{default:o(()=>[a(I,{value:D.value,"onUpdate:value":e[12]||(e[12]=n=>D.value=n),placeholder:"请输入团队名称"},null,8,["value"])]),_:1}),a(b,{label:"描述"},{default:o(()=>[a(I,{value:F.value,"onUpdate:value":e[13]||(e[13]=n=>F.value=n),placeholder:"请输入团队描述(可选)"},null,8,["value"])]),_:1}),a(b,{label:"负责人"},{default:o(()=>[a(I,{value:E.value,"onUpdate:value":e[14]||(e[14]=n=>E.value=n),placeholder:"请输入负责人 ID(可选)"},null,8,["value"])]),_:1})]),_:1})]),_:1},8,["open","confirm-loading"])]),_:1}),a(ye,{key:"approvals"},{tab:o(()=>[a(C(et)),e[31]||(e[31]=f(" 审批管理 ",-1))]),default:o(()=>[a(s,{style:{"margin-bottom":"16px"}},{default:o(()=>[a(t,{type:"primary",onClick:e[16]||(e[16]=n=>H.value=!0)},{icon:o(()=>[a(C(ge))]),default:o(()=>[e[32]||(e[32]=f(" 提交审批 ",-1))]),_:1})]),_:1}),ve.value?(r(),v("div",_t,[a(u,{size:"large"})])):(r(),_(Y,{key:1,columns:Se,"data-source":G.value,pagination:{pageSize:20,showTotal:n=>`共 ${n} 条`},size:"small",style:{background:"var(--bg-card)"},"row-class-name":()=>"org-row"},{bodyCell:o(({column:n,record:d})=>[n.key==="id"?(r(),v("span",wt,m(d.id),1)):y("",!0),n.key==="title"?(r(),v("span",Ct,m(d.title),1)):y("",!0),n.key==="type"?(r(),_(c,{key:2,color:"blue"},{default:o(()=>[f(m(d.type),1)]),_:2},1024)):y("",!0),n.key==="requester"?(r(),v("span",It,m(d.requester),1)):y("",!0),n.key==="status"?(r(),_(c,{key:4,color:Me(d.status)},{default:o(()=>[f(m(d.status),1)]),_:2},1032,["color"])):y("",!0),n.key==="actions"?(r(),v(be,{key:5},[(d.status||"").toLowerCase()==="pending"?(r(),_(s,{key:0},{default:o(()=>[a(t,{type:"primary",size:"small",loading:d._approving,onClick:ke(Re=>Be(d),["stop"])},{icon:o(()=>[a(C(Ye))]),default:o(()=>[e[33]||(e[33]=f(" 通过 ",-1))]),_:1},8,["loading","onClick"]),a(t,{danger:"",size:"small",loading:d._rejecting,onClick:ke(Re=>Je(d),["stop"])},{icon:o(()=>[a(C(Ze))]),default:o(()=>[e[34]||(e[34]=f(" 拒绝 ",-1))]),_:1},8,["loading","onClick"])]),_:2},1024)):(r(),v("span",ht,"-"))],64)):y("",!0)]),emptyText:o(()=>[a(N,{description:"暂无审批记录"})]),_:1},8,["data-source","pagination"])),a(B,{open:H.value,"onUpdate:open":e[21]||(e[21]=n=>H.value=n),title:"提交审批","confirm-loading":me.value,onOk:Pe,"ok-text":"提交","cancel-text":"取消"},{default:o(()=>[a(Z,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:o(()=>[a(b,{label:"组织",required:""},{default:o(()=>[a(fe,{value:q.value,"onUpdate:value":e[17]||(e[17]=n=>q.value=n),placeholder:"选择组织",options:xe.value},null,8,["value","options"])]),_:1}),a(b,{label:"标题",required:""},{default:o(()=>[a(I,{value:S.value,"onUpdate:value":e[18]||(e[18]=n=>S.value=n),placeholder:"请输入审批标题"},null,8,["value"])]),_:1}),a(b,{label:"类型"},{default:o(()=>[a(I,{value:Q.value,"onUpdate:value":e[19]||(e[19]=n=>Q.value=n),placeholder:"请输入审批类型"},null,8,["value"])]),_:1}),a(b,{label:"描述"},{default:o(()=>[a(We,{value:X.value,"onUpdate:value":e[20]||(e[20]=n=>X.value=n),placeholder:"请输入审批描述(可选)",rows:3},null,8,["value"])]),_:1})]),_:1})]),_:1},8,["open","confirm-loading"])]),_:1})]),_:1},8,["activeKey"])])}}},Bt=He(Ot,[["__scopeId","data-v-02062899"]]);export{Bt as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
[data-v-02062899] .org-row:hover td{background:var(--bg-card-hover)!important}[data-v-02062899] .ant-tabs-tab{color:var(--text-secondary)!important}[data-v-02062899] .ant-tabs-tab-active .ant-tabs-tab-btn{color:#1677ff!important}[data-v-02062899] .ant-card-head{border-color:var(--border-color)!important;color:var(--text-primary)!important}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{_ as u,c as H}from"./useConfigInject-DIkkDpt1.js";import{_ as D}from"./index-Vit9TJBu.js";import{R as ee}from"./index-Dza_w3kG.js";import{P}from"./index-U4Zd5IK6.js";import{d as k,p as ge,i as pe,j as c,M as be,c as v,r as he,w as Oe,s as C}from"./vendor-D0Qjn73K.js";const te=Symbol("OverflowContextProviderKey"),X=k({compatConfig:{MODE:3},name:"OverflowContextProvider",inheritAttrs:!1,props:{value:{type:Object}},setup(e,a){let{slots:r}=a;return ge(te,c(()=>e.value)),()=>{var t;return(t=r.default)===null||t===void 0?void 0:t.call(r)}}}),Se=()=>pe(te,c(()=>null));var xe=function(e,a){var r={};for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&a.indexOf(t)<0&&(r[t]=e[t]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var n=0,t=Object.getOwnPropertySymbols(e);n<t.length;n++)a.indexOf(t[n])<0&&Object.prototype.propertyIsEnumerable.call(e,t[n])&&(r[t[n]]=e[t[n]]);return r};const _=void 0,$=k({compatConfig:{MODE:3},name:"Item",props:{prefixCls:String,item:P.any,renderItem:Function,responsive:Boolean,itemKey:{type:[String,Number]},registerSize:Function,display:Boolean,order:Number,component:P.any,invalidate:Boolean},setup(e,a){let{slots:r,expose:t}=a;const n=c(()=>e.responsive&&!e.display),p=he();t({itemNodeRef:p});function b(i){e.registerSize(e.itemKey,i)}return be(()=>{b(null)}),()=>{var i;const{prefixCls:O,invalidate:w,item:m,renderItem:y,responsive:f,registerSize:z,itemKey:R,display:V,order:I,component:M="div"}=e,S=xe(e,["prefixCls","invalidate","item","renderItem","responsive","registerSize","itemKey","display","order","component"]),W=(i=r.default)===null||i===void 0?void 0:i.call(r),T=y&&m!==_?y(m):W;let h;w||(h={opacity:n.value?0:1,height:n.value?0:_,overflowY:n.value?"hidden":_,order:f?I:_,pointerEvents:n.value?"none":_,position:n.value?"absolute":_});const N={};return n.value&&(N["aria-hidden"]=!0),v(ee,{disabled:!f,onResize:E=>{let{offsetWidth:B}=E;b(B)}},{default:()=>v(M,u(u(u({class:H(!w&&O),style:h},N),S),{},{ref:p}),{default:()=>[T]})})}}});var U=function(e,a){var r={};for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&a.indexOf(t)<0&&(r[t]=e[t]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var n=0,t=Object.getOwnPropertySymbols(e);n<t.length;n++)a.indexOf(t[n])<0&&Object.prototype.propertyIsEnumerable.call(e,t[n])&&(r[t[n]]=e[t[n]]);return r};const Ce=k({compatConfig:{MODE:3},name:"RawItem",inheritAttrs:!1,props:{component:P.any,title:P.any,id:String,onMouseenter:{type:Function},onMouseleave:{type:Function},onClick:{type:Function},onKeydown:{type:Function},onFocus:{type:Function},role:String,tabindex:Number},setup(e,a){let{slots:r,attrs:t}=a;const n=Se();return()=>{var p;if(!n.value){const{component:y="div"}=e,f=U(e,["component"]);return v(y,u(u({},f),t),{default:()=>[(p=r.default)===null||p===void 0?void 0:p.call(r)]})}const b=n.value,{className:i}=b,O=U(b,["className"]),{class:w}=t,m=U(t,["class"]);return v(X,{value:null},{default:()=>[v($,u(u(u({class:H(i,w)},O),m),e),r)]})}}});var we=function(e,a){var r={};for(var t in e)Object.prototype.hasOwnProperty.call(e,t)&&a.indexOf(t)<0&&(r[t]=e[t]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var n=0,t=Object.getOwnPropertySymbols(e);n<t.length;n++)a.indexOf(t[n])<0&&Object.prototype.propertyIsEnumerable.call(e,t[n])&&(r[t[n]]=e[t[n]]);return r};const ne="responsive",le="invalidate";function Re(e){return`+ ${e.length} ...`}const Ie=()=>({id:String,prefixCls:String,data:Array,itemKey:[String,Number,Function],itemWidth:{type:Number,default:10},renderItem:Function,renderRawItem:Function,maxCount:[Number,String],renderRest:Function,renderRawRest:Function,suffix:P.any,component:String,itemComponent:P.any,onVisibleChange:Function,ssr:String,onMousedown:Function,role:String}),Y=k({name:"Overflow",inheritAttrs:!1,props:Ie(),emits:["visibleChange"],setup(e,a){let{attrs:r,emit:t,slots:n}=a;const p=c(()=>e.ssr==="full"),b=C(null),i=c(()=>b.value||0),O=C(new Map),w=C(0),m=C(0),y=C(0),f=C(null),z=C(null),R=c(()=>z.value===null&&p.value?Number.MAX_SAFE_INTEGER:z.value||0),V=C(!1),I=c(()=>`${e.prefixCls}-item`),M=c(()=>Math.max(w.value,m.value)),S=c(()=>!!(e.data.length&&e.maxCount===ne)),W=c(()=>e.maxCount===le),T=c(()=>S.value||typeof e.maxCount=="number"&&e.data.length>e.maxCount),h=c(()=>{let l=e.data;return S.value?b.value===null&&p.value?l=e.data:l=e.data.slice(0,Math.min(e.data.length,i.value/e.itemWidth)):typeof e.maxCount=="number"&&(l=e.data.slice(0,e.maxCount)),l}),N=c(()=>S.value?e.data.slice(R.value+1):e.data.slice(h.value.length)),E=(l,o)=>{var s;return typeof e.itemKey=="function"?e.itemKey(l):(s=e.itemKey&&l?.[e.itemKey])!==null&&s!==void 0?s:o},B=c(()=>e.renderItem||(l=>l)),A=(l,o)=>{z.value=l,o||(V.value=l<e.data.length-1,t("visibleChange",l))},re=(l,o)=>{b.value=o.clientWidth},q=(l,o)=>{const s=new Map(O.value);o===null?s.delete(l):s.set(l,o),O.value=s},oe=(l,o)=>{w.value=m.value,m.value=o},ae=(l,o)=>{y.value=o},G=l=>O.value.get(E(h.value[l],l));return Oe([i,O,m,y,()=>e.itemKey,h],()=>{if(i.value&&M.value&&h.value){let l=y.value;const o=h.value.length,s=o-1;if(!o){A(0),f.value=null;return}for(let g=0;g<o;g+=1){const F=G(g);if(F===void 0){A(g-1,!0);break}if(l+=F,s===0&&l<=i.value||g===s-1&&l+G(s)<=i.value){A(s),f.value=null;break}else if(l+M.value>i.value){A(g-1),f.value=l-F-y.value+m.value;break}}e.suffix&&G(0)+y.value>i.value&&(f.value=null)}}),()=>{const l=V.value&&!!N.value.length,{itemComponent:o,renderRawItem:s,renderRawRest:g,renderRest:F,prefixCls:ie="rc-overflow",suffix:J,component:se="div",id:ue,onMousedown:de}=e,{class:ce,style:ve}=r,fe=we(r,["class","style"]);let Q={};f.value!==null&&S.value&&(Q={position:"absolute",left:`${f.value}px`,top:0});const j={prefixCls:I.value,responsive:S.value,component:o,invalidate:W.value},me=s?(d,x)=>{const K=E(d,x);return v(X,{key:K,value:D(D({},j),{order:x,item:d,itemKey:K,registerSize:q,display:x<=R.value})},{default:()=>[s(d,x)]})}:(d,x)=>{const K=E(d,x);return v($,u(u({},j),{},{order:x,key:K,item:d,renderItem:B.value,itemKey:K,registerSize:q,display:x<=R.value}),null)};let L=()=>null;const Z={order:l?R.value:Number.MAX_SAFE_INTEGER,className:`${I.value} ${I.value}-rest`,registerSize:oe,display:l};if(g)g&&(L=()=>v(X,{value:D(D({},j),Z)},{default:()=>[g(N.value)]}));else{const d=F||Re;L=()=>v($,u(u({},j),Z),{default:()=>typeof d=="function"?d(N.value):d})}const ye=()=>{var d;return v(se,u({id:ue,class:H(!W.value&&ie,ce),style:ve,onMousedown:de,role:e.role},fe),{default:()=>[h.value.map(me),T.value?L():null,J&&v($,u(u({},j),{},{order:R.value,class:`${I.value}-suffix`,registerSize:ae,display:!0,style:Q}),{default:()=>J}),(d=n.default)===null||d===void 0?void 0:d.call(n)]})};return v(ee,{disabled:!S.value,onResize:re},{default:ye})}}});Y.Item=Ce;Y.RESPONSIVE=ne;Y.INVALIDATE=le;export{Y as O};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{u as ve}from"./ws-4ur1fGsk.js";import{_ as pe}from"./_plugin-vue_export-helper-DlAUqK2U.js";import{_ as fe,an as ye,a6 as ee,ah as me,a8 as M}from"./icons-CJACPYXu.js";import{l as ge,F as d,D as u,c as t,x as o,r as n,q as r,v as s,J as p,u as c,m as w,I as v,G as f,H as te,L as _e}from"./vendor-D0Qjn73K.js";const be={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},xe={key:0,style:{"text-align":"center",padding:"30px"}},ke={key:2,style:{"font-family":"monospace",color:"var(--text-muted)","font-size":"12px"}},we={key:3,style:{"margin-top":"12px",color:"#ff4d4f","font-size":"12px"}},he={key:0,style:{"text-align":"center",padding:"30px"}},Pe={key:0,style:{"margin-top":"16px"}},Se={style:{background:"var(--bg-base)",border:"1px solid var(--border-color)","border-radius":"6px",padding:"12px",color:"#aaa","font-size":"12px","max-height":"200px","overflow-y":"auto","white-space":"pre-wrap"}},ze={key:2,style:{"margin-top":"12px",color:"#ff4d4f","font-size":"12px"}},$e={key:0,style:{"margin-top":"12px"}},Ce={style:{background:"var(--bg-base)",border:"1px solid var(--border-color)","border-radius":"6px",padding:"12px",color:"#aaa","font-size":"12px","white-space":"pre-wrap"}},Oe={key:0,style:{"margin-top":"12px"}},Me={style:{background:"var(--bg-base)",border:"1px solid var(--border-color)","border-radius":"6px",padding:"12px",color:"#aaa","font-size":"12px","white-space":"pre-wrap"}},Le={__name:"P2P",setup(Ne){const b=ve(),L=n(!1),N=n(""),h=n([]),ae=[{title:"设备名称",key:"name"},{title:"Peer ID",key:"id"},{title:"状态",key:"status"},{title:"操作",key:"action",width:100}];async function J(){L.value=!0,N.value="";try{const{output:a}=await b.execute("p2p peers",15e3);h.value=oe(a)}catch(a){N.value=`加载失败: ${a.message}`}finally{L.value=!1}}function oe(a){if(!a||a.includes("No peers")||a.includes("no peers"))return[];const e=a.split(`
|
|
2
|
-
`).filter(m=>m.trim()),i=[];for(const m of e){const _=m.match(/^\s*(\S+)\s+(.+?)\s+(connected|online|offline|disconnected)\s*$/i);if(_){i.push({id:_[1],name:_[2].trim(),connected:/connected|online/i.test(_[3])});continue}const k=m.match(/^\s*((?:12D3|Qm)\S{10,})\s*(.*)$/);if(k){const C=k[2].trim();i.push({id:k[1],name:C||k[1].slice(0,12),connected:/connected|online/i.test(C)})}}return i}const U=n(!1),B=n(!1),D=n(""),P=n("");async function Q(){if(D.value.trim()){B.value=!0,P.value="";try{const{output:a}=await b.execute(`p2p pair "${D.value.trim()}"`,3e4);P.value=a,await J()}catch(a){P.value=`配对失败: ${a.message}`}finally{B.value=!1}}}const E=n(!1),I=n(!1),S=n(void 0),z=n(""),x=n("");function le(a){S.value=a.id,z.value="",x.value="",E.value=!0}async function W(){if(!(!S.value||!z.value.trim())){I.value=!0,x.value="";try{const{output:a}=await b.execute(`p2p send ${S.value} "${z.value.trim()}"`,15e3);x.value=a||"消息已发送"}catch(a){x.value=`发送失败: ${a.message}`}finally{I.value=!1}}}const V=n(!1),T=n(""),$=n(!1),R=n("未知"),F=n(0),K=n(""),y=n(""),j=n(!1),q=n(!1);async function A(){V.value=!0,T.value="";try{const{output:a}=await b.execute("sync status",15e3);ne(a)}catch(a){T.value=`加载失败: ${a.message}`}finally{V.value=!1}}function ne(a){if(!a){R.value="未知";return}$.value=/synced|online|up.to.date/i.test(a),R.value=$.value?"已同步":"未同步";const e=a.match(/pending[:\s]+(\d+)/i);F.value=e?parseInt(e[1]):0;const i=a.match(/last[:\s]+(.+)/i);i&&(K.value=i[1].trim())}async function se(){j.value=!0,y.value="";try{const{output:a}=await b.execute("sync push",3e4);y.value=a||"推送完成",await A()}catch(a){y.value=`推送失败: ${a.message}`}finally{j.value=!1}}async function re(){q.value=!0,y.value="";try{const{output:a}=await b.execute("sync pull",3e4);y.value=a||"拉取完成",await A()}catch(a){y.value=`拉取失败: ${a.message}`}finally{q.value=!1}}async function X(){await Promise.all([J(),A()])}return ge(X),(a,e)=>{const i=r("a-button"),m=r("a-space"),_=r("a-spin"),k=r("a-empty"),C=r("a-tag"),ie=r("a-table"),O=r("a-card"),G=r("a-statistic"),H=r("a-col"),ue=r("a-row"),Y=r("a-input"),Z=r("a-modal"),de=r("a-select-option"),ce=r("a-select");return s(),d("div",null,[u("div",be,[e[8]||(e[8]=u("div",null,[u("h2",{class:"page-title"},"P2P 网络"),u("p",{class:"page-sub"},"设备管理与数据同步")],-1)),t(i,{type:"primary",ghost:"",loading:L.value,onClick:X},{icon:o(()=>[t(c(fe))]),default:o(()=>[e[7]||(e[7]=p(" 刷新 ",-1))]),_:1},8,["loading"])]),t(O,{title:"P2P 设备",style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"20px"}},{extra:o(()=>[t(m,null,{default:o(()=>[t(i,{size:"small",onClick:e[0]||(e[0]=l=>U.value=!0),style:{background:"var(--bg-card-hover)","border-color":"var(--border-color)"}},{icon:o(()=>[t(c(me))]),default:o(()=>[e[9]||(e[9]=p(" 配对设备 ",-1))]),_:1}),t(i,{size:"small",onClick:e[1]||(e[1]=l=>E.value=!0),disabled:h.value.length===0,style:{background:"var(--bg-card-hover)","border-color":"var(--border-color)"}},{icon:o(()=>[t(c(ee))]),default:o(()=>[e[10]||(e[10]=p(" 发送消息 ",-1))]),_:1},8,["disabled"])]),_:1})]),default:o(()=>[L.value?(s(),d("div",xe,[t(_)])):h.value.length===0?(s(),w(k,{key:1,description:"暂无已连接设备"})):(s(),w(ie,{key:2,columns:ae,"data-source":h.value,pagination:!1,size:"small","row-key":"id"},{bodyCell:o(({column:l,record:g})=>[l.key==="status"?(s(),w(C,{key:0,color:g.connected?"green":"default"},{default:o(()=>[p(v(g.connected?"在线":"离线"),1)]),_:2},1032,["color"])):f("",!0),l.key==="name"?(s(),w(m,{key:1},{default:o(()=>[t(c(ye),{style:{color:"var(--text-muted)"}}),u("span",null,v(g.name||g.id),1)]),_:2},1024)):f("",!0),l.key==="id"?(s(),d("span",ke,v(g.id.length>16?g.id.slice(0,16)+"...":g.id),1)):f("",!0),l.key==="action"?(s(),w(i,{key:3,size:"small",type:"link",onClick:De=>le(g)},{default:o(()=>[t(c(ee)),e[11]||(e[11]=p(" 发送 ",-1))]),_:1},8,["onClick"])):f("",!0)]),_:1},8,["data-source"])),N.value?(s(),d("div",we,v(N.value),1)):f("",!0)]),_:1}),t(O,{title:"同步状态",style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{extra:o(()=>[t(C,{color:$.value?"green":"default"},{default:o(()=>[p(v($.value?"已同步":"未同步"),1)]),_:1},8,["color"])]),default:o(()=>[V.value?(s(),d("div",he,[t(_)])):(s(),d(te,{key:1},[t(ue,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:o(()=>[t(H,{xs:24,sm:8},{default:o(()=>[t(O,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:o(()=>[t(G,{title:"同步状态",value:R.value,"value-style":{color:$.value?"#52c41a":"#888",fontSize:"16px"}},{prefix:o(()=>[t(c(M))]),_:1},8,["value","value-style"])]),_:1})]),_:1}),t(H,{xs:24,sm:8},{default:o(()=>[t(O,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:o(()=>[t(G,{title:"待推送",value:F.value,"value-style":{color:F.value>0?"#faad14":"#52c41a",fontSize:"16px"}},{prefix:o(()=>[t(c(M))]),_:1},8,["value","value-style"])]),_:1})]),_:1}),t(H,{xs:24,sm:8},{default:o(()=>[t(O,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:o(()=>[t(G,{title:"最近同步",value:K.value||"无","value-style":{color:"var(--text-secondary)",fontSize:"16px"}},{prefix:o(()=>[t(c(M))]),_:1},8,["value"])]),_:1})]),_:1})]),_:1}),t(m,null,{default:o(()=>[t(i,{loading:j.value,onClick:se,style:{background:"var(--bg-card-hover)","border-color":"var(--border-color)"}},{icon:o(()=>[t(c(M))]),default:o(()=>[e[12]||(e[12]=p(" 推送变更 ",-1))]),_:1},8,["loading"]),t(i,{loading:q.value,onClick:re,style:{background:"var(--bg-card-hover)","border-color":"var(--border-color)"}},{icon:o(()=>[t(c(M))]),default:o(()=>[e[13]||(e[13]=p(" 拉取变更 ",-1))]),_:1},8,["loading"])]),_:1}),y.value?(s(),d("div",Pe,[e[14]||(e[14]=u("div",{style:{color:"var(--text-secondary)","font-size":"11px","margin-bottom":"6px"}},"操作结果",-1)),u("pre",Se,v(y.value),1)])):f("",!0)],64)),T.value?(s(),d("div",ze,v(T.value),1)):f("",!0)]),_:1}),t(Z,{open:U.value,"onUpdate:open":e[3]||(e[3]=l=>U.value=l),title:"配对新设备","confirm-loading":B.value,onOk:Q,"ok-text":"配对","cancel-text":"取消"},{default:o(()=>[e[15]||(e[15]=u("div",{style:{"margin-bottom":"12px",color:"var(--text-secondary)"}},"请输入要配对的设备名称",-1)),t(Y,{value:D.value,"onUpdate:value":e[2]||(e[2]=l=>D.value=l),placeholder:"设备名称,例如: My Phone",onPressEnter:Q},null,8,["value"]),P.value?(s(),d("div",$e,[u("pre",Ce,v(P.value),1)])):f("",!0)]),_:1},8,["open","confirm-loading"]),t(Z,{open:E.value,"onUpdate:open":e[6]||(e[6]=l=>E.value=l),title:"发送消息","confirm-loading":I.value,onOk:W,"ok-text":"发送","cancel-text":"取消"},{default:o(()=>[e[16]||(e[16]=u("div",{style:{"margin-bottom":"8px",color:"var(--text-secondary)"}},"选择目标设备",-1)),t(ce,{value:S.value,"onUpdate:value":e[4]||(e[4]=l=>S.value=l),style:{width:"100%","margin-bottom":"16px"},placeholder:"选择设备"},{default:o(()=>[(s(!0),d(te,null,_e(h.value,l=>(s(),w(de,{key:l.id,value:l.id},{default:o(()=>[p(v(l.name||l.id),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"]),e[17]||(e[17]=u("div",{style:{"margin-bottom":"8px",color:"var(--text-secondary)"}},"消息内容",-1)),t(Y,{value:z.value,"onUpdate:value":e[5]||(e[5]=l=>z.value=l),placeholder:"输入消息内容",onPressEnter:W},null,8,["value"]),x.value?(s(),d("div",Oe,[u("pre",Me,v(x.value),1)])):f("",!0)]),_:1},8,["open","confirm-loading"])])}}},Ie=pe(Le,[["__scopeId","data-v-f56a4f0e"]]);export{Ie as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
[data-v-f56a4f0e] .ant-table{background:transparent}[data-v-f56a4f0e] .ant-select-selector{background:var(--bg-card)!important;border-color:var(--border-color)!important}
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import{u as ue}from"./ws-4ur1fGsk.js";import{_ as ce}from"./_plugin-vue_export-helper-DlAUqK2U.js";import{a as G}from"./index-BB5y5Y0z.js";import{_ as de,L as pe,a9 as K,J as me}from"./icons-CJACPYXu.js";import{l as fe,F as d,D as T,c as o,x as s,r as v,q as u,v as i,J as h,u as I,m as b,I as _,G as g,H as j,L as E}from"./vendor-D0Qjn73K.js";import"./index-Vit9TJBu.js";import"./useConfigInject-DIkkDpt1.js";import"./transition-CVd2ueaJ.js";import"./Keyframes-C7fCrnlS.js";import"./Portal-SsPhn64D.js";import"./index-U4Zd5IK6.js";const ye={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},ve={key:0,style:{"text-align":"center",padding:"60px"}},_e={key:0,style:{color:"#e0e0e0","font-weight":"500"}},ge={key:1,style:{color:"var(--text-secondary)"}},he={key:0,style:{"margin-top":"16px"}},ke={key:0,style:{"text-align":"center",padding:"60px"}},xe={key:0,style:{color:"var(--text-secondary)","font-size":"12px","font-family":"monospace"}},be={key:1,style:{color:"#e0e0e0"}},we={key:2,style:{color:"var(--text-secondary)"}},Ce={key:4,style:{color:"var(--text-muted)","font-size":"12px"}},Ie={__name:"Permissions",setup(Re){const R=ue(),O=v("roles"),z=v(!1);async function q(){z.value=!0;try{O.value==="roles"?await P():O.value==="audit"&&await M()}finally{z.value=!1}}function H(t){t==="roles"&&S.value.length===0&&P(),t==="audit"&&A.value.length===0&&M()}const W=v(!1),S=v([]),Q=[{title:"角色名",key:"name",dataIndex:"name",width:"160px"},{title:"描述",key:"description",dataIndex:"description",width:"240px"},{title:"权限",key:"permissions",dataIndex:"permissions"},{title:"用户数",key:"userCount",dataIndex:"userCount",width:"100px"}];async function P(){W.value=!0;try{const{output:t}=await R.execute("auth roles --json",15e3);S.value=D(t,X)}catch(t){G.error("加载角色列表失败: "+t.message)}finally{W.value=!1}}function X(t){const e=[],l=t.split(`
|
|
2
|
-
`);for(const p of l){const n=p.trim();if(!n||n.startsWith("─")||n.match(/^Role/i))continue;const r=n.split(/\s*[|│]\s*/);r.length>=2?e.push({key:e.length,name:r[0]||"-",description:r[1]||"",permissions:r[2]?r[2].split(/[,;\s]+/).filter(Boolean):[],userCount:r[3]&&parseInt(r[3],10)||0}):n.length>2&&e.push({key:e.length,name:n.slice(0,60),description:"",permissions:[],userCount:0})}return e}const C=v(""),w=v(""),$=v(!1),k=v(null),Y=["note:read","note:write","admin:*","skill:execute"];async function Z(){if(!(!C.value.trim()||!w.value.trim())){$.value=!0,k.value=null;try{const t=`auth check ${C.value.trim()} "${w.value.trim()}"`,{output:e}=await R.execute(t,15e3),l=e.toLowerCase(),p=l.includes("allow")||l.includes("granted")||l.includes("true")||l.includes("yes"),n=l.includes("denied")||l.includes("reject")||l.includes("false")||l.includes("no permission");k.value={allowed:p&&!n,detail:e.trim()||(p?"用户拥有该权限":"用户没有该权限")}}catch(t){k.value={allowed:!1,detail:"检查失败: "+t.message}}finally{$.value=!1}}}const B=v(!1),A=v([]),J=v([]),ee=[{title:"时间",key:"timestamp",dataIndex:"timestamp",width:"180px"},{title:"事件",key:"event",dataIndex:"event",width:"200px"},{title:"用户",key:"user",dataIndex:"user",width:"120px"},{title:"级别",key:"level",dataIndex:"level",width:"80px"},{title:"详情",key:"detail",dataIndex:"detail",ellipsis:!0}];function te(t){return{info:"blue",warn:"orange",warning:"orange",error:"red",critical:"red"}[(t||"").toLowerCase()]||"default"}async function M(){B.value=!0;try{const[t,e]=await Promise.all([R.execute("audit log --json",15e3),R.execute("audit stats --json",15e3)]);A.value=D(t.output,ae),J.value=se(e.output)}catch(t){G.error("加载审计日志失败: "+t.message)}finally{B.value=!1}}function ae(t){const e=[],l=t.split(`
|
|
3
|
-
`);for(const p of l){const n=p.trim();if(!n||n.startsWith("─")||n.startsWith("Audit")||n.startsWith("Recent"))continue;const r=n.split(/\s*[|│]\s*/);if(r.length>=3){e.push({key:e.length,timestamp:r[0]||"-",event:r[1]||"-",user:r[2]||"-",level:r[3]||"info",detail:r.slice(4).join(" ")||""});continue}const y=n.match(/^(\d{4}-\d{2}-\d{2}[\sT]\d{2}:\d{2}(?::\d{2})?)\s+(.+)/);if(y){const m=y[2],f=m.match(/\b(INFO|WARN|WARNING|ERROR|CRITICAL)\b/i);e.push({key:e.length,timestamp:y[1],event:m.replace(/\b(INFO|WARN|WARNING|ERROR|CRITICAL)\b/i,"").trim().slice(0,80),user:"-",level:f?f[1].toLowerCase():"info",detail:""})}else n.length>3&&!n.match(/^\d+ event/i)&&e.push({key:e.length,timestamp:"-",event:n.slice(0,80),user:"-",level:"info",detail:""})}return e}function se(t){const e=V(t);if(e&&typeof e=="object"&&!Array.isArray(e)){const y=["#1677ff","#52c41a","#faad14","#ff4d4f"];return Object.entries(e).slice(0,4).map(([m,f],x)=>({label:m,value:typeof f=="number"?f:String(f),color:y[x%y.length]}))}const l=[],p=t.split(`
|
|
4
|
-
`),n=["#1677ff","#52c41a","#faad14","#ff4d4f"];let r=0;for(const y of p){const m=y.trim();if(!m||m.startsWith("─")||m.startsWith("Audit"))continue;const f=m.match(/^(.+?)\s*[:=]\s*(.+)$/);if(f){const x=f[1].trim(),L=f[2].trim(),N=L.match(/^(\d+)/);l.push({label:x,value:N?parseInt(N[1],10):L,color:n[r%n.length]}),r++}}return l.length===0&&l.push({label:"总事件数",value:A.value.length,color:"#1677ff"},{label:"状态",value:"就绪",color:"#52c41a"}),l}function V(t){try{const e=t.indexOf("[")!==-1?t.indexOf("["):t.indexOf("{");if(e===-1)return null;const l=t.lastIndexOf("]")!==-1?t.lastIndexOf("]")+1:t.lastIndexOf("}")+1;return JSON.parse(t.slice(e,l))}catch{return null}}function D(t,e){const l=V(t);return Array.isArray(l)?l.map((p,n)=>({key:n,...p})):e(t)}return fe(()=>{P()}),(t,e)=>{const l=u("a-button"),p=u("a-spin"),n=u("a-tag"),r=u("a-empty"),y=u("a-table"),m=u("a-tab-pane"),f=u("a-input"),x=u("a-form-item"),L=u("a-space"),N=u("a-form"),ne=u("a-alert"),F=u("a-card"),oe=u("a-statistic"),le=u("a-col"),ie=u("a-row"),re=u("a-tabs");return i(),d("div",null,[T("div",ye,[e[4]||(e[4]=T("div",null,[T("h2",{class:"page-title"},"权限管理"),T("p",{class:"page-sub"},"角色 / 权限检查 / 审计")],-1)),o(l,{type:"primary",ghost:"",loading:z.value,onClick:q},{icon:s(()=>[o(I(de))]),default:s(()=>[e[3]||(e[3]=h(" 刷新 ",-1))]),_:1},8,["loading"])]),o(re,{activeKey:O.value,"onUpdate:activeKey":e[2]||(e[2]=a=>O.value=a),type:"card",onChange:H},{default:s(()=>[o(m,{key:"roles"},{tab:s(()=>[o(I(pe)),e[5]||(e[5]=h(" 角色列表 ",-1))]),default:s(()=>[W.value?(i(),d("div",ve,[o(p,{size:"large"})])):(i(),b(y,{key:1,columns:Q,"data-source":S.value,pagination:{pageSize:20,showTotal:a=>`共 ${a} 条`},size:"small",style:{background:"var(--bg-card)"},"row-class-name":()=>"perm-row"},{bodyCell:s(({column:a,record:c})=>[a.key==="name"?(i(),d("span",_e,_(c.name),1)):g("",!0),a.key==="description"?(i(),d("span",ge,_(c.description),1)):g("",!0),a.key==="permissions"?(i(),d(j,{key:2},[(i(!0),d(j,null,E((c.permissions||[]).slice(0,5),U=>(i(),b(n,{key:U,color:"blue",style:{"margin-bottom":"2px"}},{default:s(()=>[h(_(U),1)]),_:2},1024))),128)),(c.permissions||[]).length>5?(i(),b(n,{key:0,color:"default"},{default:s(()=>[h(" +"+_(c.permissions.length-5),1)]),_:2},1024)):g("",!0)],64)):g("",!0),a.key==="userCount"?(i(),b(n,{key:3,color:c.userCount>0?"green":"default"},{default:s(()=>[h(_(c.userCount??0),1)]),_:2},1032,["color"])):g("",!0)]),emptyText:s(()=>[o(r,{description:"暂无角色数据"})]),_:1},8,["data-source","pagination"]))]),_:1}),o(m,{key:"check"},{tab:s(()=>[o(I(K)),e[6]||(e[6]=h(" 权限检查 ",-1))]),default:s(()=>[o(F,{style:{background:"var(--bg-card)","border-color":"var(--border-color)","max-width":"640px"}},{default:s(()=>[o(N,{"label-col":{span:5},"wrapper-col":{span:19}},{default:s(()=>[o(x,{label:"用户 ID",required:""},{default:s(()=>[o(f,{value:C.value,"onUpdate:value":e[0]||(e[0]=a=>C.value=a),placeholder:"输入用户 ID"},null,8,["value"])]),_:1}),o(x,{label:"权限",required:""},{default:s(()=>[o(f,{value:w.value,"onUpdate:value":e[1]||(e[1]=a=>w.value=a),placeholder:"note:read"},null,8,["value"])]),_:1}),o(x,{"wrapper-col":{offset:5,span:19}},{default:s(()=>[o(L,{wrap:""},{default:s(()=>[o(l,{type:"primary",loading:$.value,disabled:!C.value.trim()||!w.value.trim(),onClick:Z},{icon:s(()=>[o(I(K))]),default:s(()=>[e[7]||(e[7]=h(" 检查权限 ",-1))]),_:1},8,["loading","disabled"]),(i(),d(j,null,E(Y,a=>o(l,{key:a,size:"small",onClick:c=>w.value=a},{default:s(()=>[h(_(a),1)]),_:2},1032,["onClick"])),64))]),_:1})]),_:1})]),_:1}),k.value!==null?(i(),d("div",he,[o(ne,{message:k.value.allowed?"权限允许":"权限拒绝",description:k.value.detail,type:k.value.allowed?"success":"error","show-icon":""},null,8,["message","description","type"])])):g("",!0)]),_:1})]),_:1}),o(m,{key:"audit"},{tab:s(()=>[o(I(me)),e[8]||(e[8]=h(" 审计日志 ",-1))]),default:s(()=>[o(ie,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:s(()=>[(i(!0),d(j,null,E(J.value,a=>(i(),b(le,{xs:12,sm:6,key:a.label},{default:s(()=>[o(F,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"},size:"small"},{default:s(()=>[o(oe,{title:a.label,value:a.value,"value-style":{color:a.color,fontSize:"20px"}},null,8,["title","value","value-style"])]),_:2},1024)]),_:2},1024))),128))]),_:1}),B.value?(i(),d("div",ke,[o(p,{size:"large"})])):(i(),b(y,{key:1,columns:ee,"data-source":A.value,pagination:{pageSize:20,showTotal:a=>`共 ${a} 条`},size:"small",style:{background:"var(--bg-card)"},"row-class-name":()=>"perm-row"},{bodyCell:s(({column:a,record:c})=>[a.key==="timestamp"?(i(),d("span",xe,_(c.timestamp),1)):g("",!0),a.key==="event"?(i(),d("span",be,_(c.event),1)):g("",!0),a.key==="user"?(i(),d("span",we,_(c.user),1)):g("",!0),a.key==="level"?(i(),b(n,{key:3,color:te(c.level)},{default:s(()=>[h(_(c.level),1)]),_:2},1032,["color"])):g("",!0),a.key==="detail"?(i(),d("span",Ce,_(c.detail),1)):g("",!0)]),emptyText:s(()=>[o(r,{description:"暂无审计日志"})]),_:1},8,["data-source","pagination"]))]),_:1})]),_:1},8,["activeKey"])])}}},Be=ce(Ie,[["__scopeId","data-v-71782e36"]]);export{Be as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.page-title[data-v-d34a9ea1]{margin:0;color:var(--text-primary);font-size:22px;font-weight:600}.page-sub[data-v-d34a9ea1]{margin:4px 0 0;color:var(--text-secondary);font-size:13px}.pipeline-tabs[data-v-d34a9ea1] .ant-tabs-nav{margin-bottom:16px}.filter-bar[data-v-d34a9ea1]{display:flex;align-items:center;gap:12px;margin-bottom:12px;flex-wrap:wrap}.stage-flow[data-v-d34a9ea1]{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.stage-pill[data-v-d34a9ea1]{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:14px;background:#1677ff1f;color:#1677ff;font-size:12px;font-weight:500;border:1px solid rgba(22,119,255,.25)}.stage-pill.is-gate[data-v-d34a9ea1]{background:#faad1426;color:#faad14;border-color:#faad144d}.stage-idx[data-v-d34a9ea1]{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;background:currentColor;color:#fff!important;border-radius:50%;font-size:10px;font-weight:700}.stage-pill.is-gate .stage-idx[data-v-d34a9ea1]{background:#faad14}.stage-arrow[data-v-d34a9ea1]{color:var(--text-muted);font-size:11px}.gate-icon[data-v-d34a9ea1]{font-size:11px}.tpl-stages[data-v-d34a9ea1]{display:flex;gap:4px;flex-wrap:wrap}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{u as He}from"./ws-4ur1fGsk.js";import{s as be}from"./community-parser-CO25nZFt.js";import{_ as We}from"./_plugin-vue_export-helper-DlAUqK2U.js";import{a as O}from"./index-BB5y5Y0z.js";import{_ as Ye,ah as Qe,n as ye,af as Xe,H as Ze,b as et,r as ge,L as K,aF as tt,a9 as at,a3 as nt,ab as lt,m as ot}from"./icons-CJACPYXu.js";import{l as st,F as _,D as k,c as o,x as n,m as f,G as y,q as g,r as A,v as i,J as c,u as p,H as B,L as N,E as it,I as d,j as rt,a as ut}from"./vendor-D0Qjn73K.js";import"./index-Vit9TJBu.js";import"./useConfigInject-DIkkDpt1.js";import"./transition-CVd2ueaJ.js";import"./Keyframes-C7fCrnlS.js";import"./Portal-SsPhn64D.js";import"./index-U4Zd5IK6.js";function H(e){const s=be(e);if(!s)return null;try{return JSON.parse(s)}catch{}const r=s.match(/\{[\s\S]*\}|\[[\s\S]*\]/);if(!r)return null;try{return JSON.parse(r[0])}catch{return null}}const ke=Object.freeze(["pending","running","paused","completed","failed","cancelled"]),pt=Object.freeze(["pending","running","gate-waiting","completed","failed","skipped"]),me=Object.freeze(["requirement","architecture","code-generation","testing","code-review","deploy","monitoring"]),te=Object.freeze(["feature","bugfix","refactor","security-audit"]),ct=Object.freeze(["git-pr","docker","npm-publish","local","staging","custom"]),_e=Object.freeze(["code-review","deploy"]);function E(e,s=0){return typeof e=="number"&&Number.isFinite(e)?e:s}function ve(e){if(!e)return{noDb:!1,error:""};const s=be(e),r=/No database/i.test(s);return{noDb:r,error:r?"No database":""}}function dt(e,s=0){if(!e||typeof e!="object")return null;const r=e.id||"";return r?{key:r,id:r,pipelineId:String(e.pipelineId||""),stageIndex:E(e.stageIndex,s),name:String(e.name||""),status:String(e.status||"pending").toLowerCase(),gateRequired:!!e.gateRequired,gateApproved:!!e.gateApproved,gateRejectReason:e.gateRejectReason||"",input:e.input??null,output:e.output??null,errorMessage:e.errorMessage||"",startedAt:e.startedAt??null,completedAt:e.completedAt??null,_idx:s}:null}function ft(e,s=0){if(!e||typeof e!="object")return null;const r=e.id||"";if(!r)return null;const m=Array.isArray(e.stages)?e.stages.map(dt).filter(Boolean):[];return{key:r,id:r,name:e.name||"",template:String(e.template||""),config:e.config??null,status:String(e.status||"pending").toLowerCase(),currentStage:E(e.currentStage,0),result:e.result??null,errorMessage:e.errorMessage||"",createdAt:e.createdAt??null,updatedAt:e.updatedAt??null,startedAt:e.startedAt??null,completedAt:e.completedAt??null,stages:m,_idx:s}}function yt(e){const s=H(e);return Array.isArray(s)?s.map(ft).filter(Boolean):[]}function gt(e,s=0){if(!e||typeof e!="object")return null;const r=e.id||"";return r?{key:r,id:r,pipelineId:String(e.pipelineId||""),strategy:String(e.strategy||"").toLowerCase(),config:e.config??null,status:String(e.status||"pending").toLowerCase(),result:e.result??null,errorMessage:e.errorMessage||"",rolledBackAt:e.rolledBackAt??null,rollbackReason:e.rollbackReason||"",createdAt:e.createdAt??null,completedAt:e.completedAt??null,_idx:s}:null}function mt(e){const s=H(e);return Array.isArray(s)?s.map(gt).filter(Boolean):[]}function _t(e,s=0){if(!e||typeof e!="object")return null;const r=e.name||"";return r?{key:r,name:r,description:String(e.description||""),stages:Array.isArray(e.stages)?e.stages.filter(m=>typeof m=="string"):[],gateStages:Array.isArray(e.gateStages)?e.gateStages.filter(m=>typeof m=="string"):[],_idx:s}:null}function vt(e){const s=H(e);return Array.isArray(s)?s.map(_t).filter(Boolean):[]}const bt={totalPipelines:0,pipelinesByTemplate:{},pipelinesByStatus:{},totalStages:0,stagesByStatus:{},totalArtifacts:0,totalDeploys:0,deploysByStrategy:{}};function kt(e){const s=JSON.parse(JSON.stringify(bt));for(const m of te)s.pipelinesByTemplate[m]=0;for(const m of ke)s.pipelinesByStatus[m]=0;for(const m of pt)s.stagesByStatus[m]=0;for(const m of ct)s.deploysByStrategy[m]=0;const r=H(e);if(!r||typeof r!="object"||Array.isArray(r))return s;if(s.totalPipelines=E(r.totalPipelines,0),s.totalStages=E(r.totalStages,0),s.totalArtifacts=E(r.totalArtifacts,0),s.totalDeploys=E(r.totalDeploys,0),r.pipelinesByTemplate&&typeof r.pipelinesByTemplate=="object")for(const[m,v]of Object.entries(r.pipelinesByTemplate))typeof v=="number"&&Number.isFinite(v)&&(s.pipelinesByTemplate[m]=v);if(r.pipelinesByStatus&&typeof r.pipelinesByStatus=="object")for(const[m,v]of Object.entries(r.pipelinesByStatus))typeof v=="number"&&Number.isFinite(v)&&(s.pipelinesByStatus[m]=v);if(r.stagesByStatus&&typeof r.stagesByStatus=="object")for(const[m,v]of Object.entries(r.stagesByStatus))typeof v=="number"&&Number.isFinite(v)&&(s.stagesByStatus[m]=v);if(r.deploysByStrategy&&typeof r.deploysByStrategy=="object")for(const[m,v]of Object.entries(r.deploysByStrategy))typeof v=="number"&&Number.isFinite(v)&&(s.deploysByStrategy[m]=v);return s}function R(e){if(e==null||e==="")return"—";const s=typeof e=="number"?new Date(e):new Date(String(e));return isNaN(s.getTime())?String(e):s.toLocaleString("zh-CN",{hour12:!1})}const xt={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},St={class:"stage-flow"},At={class:"stage-idx"},zt={class:"filter-bar"},Ct={style:{color:"var(--text-primary)","font-weight":"500"}},Bt={style:{color:"var(--text-secondary)","font-size":"11px","font-family":"monospace","margin-top":"2px"}},Ot={key:1,style:{color:"var(--text-muted)"}},Tt={key:5,style:{color:"var(--text-secondary)","font-size":"11px"}},ht={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},Pt={key:0,style:{color:"var(--text-primary)","font-family":"monospace","font-size":"12px"}},jt={key:3,style:{color:"var(--text-secondary)","font-size":"11px"}},Nt={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},Dt={style:{color:"var(--text-secondary)","font-size":"12px",margin:"0 0 10px"}},Rt={class:"tpl-stages"},Et={key:0,style:{"padding-top":"8px"}},$t={style:{display:"flex","align-items":"center",gap:"8px","flex-wrap":"wrap"}},Lt={style:{color:"var(--text-primary)","font-weight":"500"}},Jt={key:0,style:{color:"#52c41a","margin-left":"4px"}},Mt={key:0,style:{color:"#ff4d4f","font-size":"11px","margin-top":"4px"}},Ft={key:1,style:{color:"var(--text-secondary)","font-size":"11px","margin-top":"2px"}},It={key:0},wt={__name:"Pipeline",setup(e){const s=He(),r=A(!1),m=A(!1),v=A([]),ae=A([]),ne=A([]),h=A({totalPipelines:0,pipelinesByTemplate:{},pipelinesByStatus:{},totalStages:0,stagesByStatus:{},totalArtifacts:0,totalDeploys:0,deploysByStrategy:{}}),W=A({noDb:!1,error:""}),le=A("pipelines"),$=A(""),L=A(""),I=A(!1),Y=A(!1),b=ut({template:"feature",name:"",configJson:""}),S=A(null),xe=[{title:"名称",key:"name"},{title:"模板",key:"template",width:"110px"},{title:"进度",key:"progress",width:"160px"},{title:"当前阶段",key:"currentStage",width:"140px"},{title:"状态",key:"status",width:"110px"},{title:"创建时间",key:"createdAt",width:"160px"},{title:"操作",key:"action",width:"260px"}],Se=[{title:"流水线",key:"pipeline",width:"180px"},{title:"策略",key:"strategy",width:"120px"},{title:"状态",key:"status",width:"110px"},{title:"创建时间",key:"createdAt"}],Ae=rt(()=>{let t=v.value;return $.value&&(t=t.filter(l=>l.template===$.value)),L.value&&(t=t.filter(l=>l.status===L.value)),t});function J(t){return{feature:"功能开发",bugfix:"缺陷修复",refactor:"重构","security-audit":"安全审计"}[t]||t}function Q(t){return{feature:"green",bugfix:"red",refactor:"purple","security-audit":"volcano"}[t]||"default"}function w(t){return{requirement:"需求",architecture:"架构","code-generation":"代码生成",testing:"测试","code-review":"代码评审",deploy:"部署",monitoring:"监控"}[t]||t}function X(t){return{pending:"待启动",running:"运行中",paused:"已暂停",completed:"已完成",failed:"失败",cancelled:"已取消"}[t]||t}function oe(t){return{pending:"default",running:"processing",paused:"orange",completed:"green",failed:"red",cancelled:"default"}[t]||"default"}function ze(t){return{pending:"待处理",running:"运行中","gate-waiting":"等待审批",completed:"已完成",failed:"失败",skipped:"跳过"}[t]||t}function se(t){return{pending:"default",running:"processing","gate-waiting":"gold",completed:"green",failed:"red",skipped:"default"}[t]||"default"}function Ce(t){return{pending:"待部署",running:"部署中",succeeded:"成功",failed:"失败","rolled-back":"已回滚"}[t]||t}function Be(t){return{pending:"default",running:"processing",succeeded:"green",failed:"red","rolled-back":"orange"}[t]||"default"}function Oe(t){return{"git-pr":"blue",docker:"cyan","npm-publish":"magenta",local:"default",staging:"orange",custom:"purple"}[t]||"default"}function Te(t){return{pending:"gray",running:"blue","gate-waiting":"gold",completed:"green",failed:"red",skipped:"gray"}[t]||"gray"}function ie(t){if(!t.stages.length)return 0;const l=t.stages.filter(x=>x.status==="completed").length;return Math.round(100*l/t.stages.length)}function U(t){if(!t.stages.length)return null;const l=Math.min(t.currentStage,t.stages.length-1);return t.stages[l]||null}function he(t){if(t.status!=="running")return!1;const l=U(t);return l&&l.status==="gate-waiting"&&l.gateRequired&&!l.gateApproved}function Pe(t){return t.status==="pending"||t.status==="running"||t.status==="paused"}async function q(){r.value=!0,W.value={noDb:!1,error:""};try{const[t,l,x,z]=await Promise.all([s.execute("pipeline list",1e4).catch(()=>({output:""})),s.execute("pipeline deploys",1e4).catch(()=>({output:""})),s.execute("pipeline templates",8e3).catch(()=>({output:""})),s.execute("pipeline stats",8e3).catch(()=>({output:""}))]),G=[t,l,z].map(T=>ve(T.output)).find(T=>T.noDb);G&&(W.value=G),v.value=yt(t.output),ae.value=mt(l.output),ne.value=vt(x.output),h.value=kt(z.output)}catch(t){O.error("加载流水线数据失败: "+(t?.message||t))}finally{r.value=!1}}async function je(){if(!b.template){O.warning("请选择模板");return}if(b.configJson.trim())try{JSON.parse(b.configJson)}catch{O.warning("配置 JSON 格式错误");return}m.value=!0;try{const t=[`pipeline create --template ${b.template}`];b.name.trim()&&t.push(`--name "${b.name.trim().replace(/"/g,'\\"')}"`),b.configJson.trim()&&t.push(`--config '${b.configJson.trim().replace(/'/g,"'\\''")}'`);const{output:l}=await s.execute(t.join(" "),1e4);if(ve(l).noDb){O.error("需要先 cc init 初始化项目");return}if(/error|Error|失败/i.test(l)&&!/"id"/.test(l)){O.error("创建失败: "+l.slice(0,120));return}O.success("流水线已创建"),I.value=!1,re(),await q()}catch(t){O.error("创建失败: "+(t?.message||t))}finally{m.value=!1}}async function Ne(t){await M(t,`pipeline start ${t.id}`,"已启动")}async function De(t){await M(t,`pipeline pause ${t.id}`,"已暂停")}async function Re(t){await M(t,`pipeline resume ${t.id}`,"已恢复")}async function Ee(t){await M(t,`pipeline approve ${t.id}`,"门已批准")}async function $e(t){await M(t,`pipeline cancel ${t.id}`,"已取消")}async function M(t,l,x){try{const{output:z}=await s.execute(l,8e3);if(/error|Error|失败/i.test(z)&&!/"id"/.test(z)){O.error("操作失败: "+z.slice(0,120));return}O.success(x),await q()}catch(z){O.error("操作失败: "+(z?.message||z))}}function Le(t){S.value=t,Y.value=!0}function re(){b.template="feature",b.name="",b.configJson=""}return st(q),(t,l)=>{const x=g("a-button"),z=g("a-space"),G=g("a-alert"),T=g("a-statistic"),P=g("a-card"),D=g("a-col"),ue=g("a-row"),V=g("a-radio-button"),pe=g("a-radio-group"),C=g("a-tag"),ce=g("a-progress"),Je=g("a-popconfirm"),de=g("a-table"),Z=g("a-tab-pane"),Me=g("a-tabs"),Fe=g("a-select-option"),Ie=g("a-select"),ee=g("a-form-item"),we=g("a-input"),Ue=g("a-textarea"),qe=g("a-form"),fe=g("a-modal"),F=g("a-descriptions-item"),Ge=g("a-descriptions"),Ve=g("a-timeline-item"),Ke=g("a-timeline");return i(),_("div",null,[k("div",xt,[l[11]||(l[11]=k("div",null,[k("h2",{class:"page-title"},"开发流水线"),k("p",{class:"page-sub"},"7 阶段 AI 开发流水线 · 质量门 · 部署策略")],-1)),o(z,null,{default:n(()=>[o(x,{loading:r.value,onClick:q},{icon:n(()=>[o(p(Ye))]),default:n(()=>[l[9]||(l[9]=c(" 刷新 ",-1))]),_:1},8,["loading"]),o(x,{type:"primary",onClick:l[0]||(l[0]=a=>I.value=!0)},{icon:n(()=>[o(p(Qe))]),default:n(()=>[l[10]||(l[10]=c(" 创建流水线 ",-1))]),_:1})]),_:1})]),W.value.noDb?(i(),f(G,{key:0,type:"info","show-icon":"",message:"该模块需要项目级数据库",description:"`cc pipeline ...` 命令仅在 chainlesschain 项目目录下可用。请先运行 `cc init` 初始化项目,或在已初始化的目录启动 `cc serve`。",style:{"margin-bottom":"16px"}})):y("",!0),o(ue,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:n(()=>[o(D,{xs:12,sm:8,lg:5},{default:n(()=>[o(P,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:n(()=>[o(T,{title:"流水线总数",value:h.value.totalPipelines,"value-style":{color:"#1677ff",fontSize:"20px"}},{prefix:n(()=>[o(p(ye))]),_:1},8,["value"])]),_:1})]),_:1}),o(D,{xs:12,sm:8,lg:5},{default:n(()=>[o(P,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:n(()=>[o(T,{title:"运行中",value:h.value.pipelinesByStatus.running||0,"value-style":{color:(h.value.pipelinesByStatus.running||0)>0?"#52c41a":"#888",fontSize:"20px"}},{prefix:n(()=>[o(p(Xe))]),_:1},8,["value","value-style"])]),_:1})]),_:1}),o(D,{xs:12,sm:8,lg:5},{default:n(()=>[o(P,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:n(()=>[o(T,{title:"阶段总数",value:h.value.totalStages,"value-style":{color:"#722ed1",fontSize:"20px"}},{prefix:n(()=>[o(p(Ze))]),_:1},8,["value"])]),_:1})]),_:1}),o(D,{xs:12,sm:8,lg:5},{default:n(()=>[o(P,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:n(()=>[o(T,{title:"制品",value:h.value.totalArtifacts,"value-style":{color:"#13c2c2",fontSize:"20px"}},{prefix:n(()=>[o(p(et))]),_:1},8,["value"])]),_:1})]),_:1}),o(D,{xs:24,sm:8,lg:4},{default:n(()=>[o(P,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:n(()=>[o(T,{title:"部署",value:h.value.totalDeploys,"value-style":{color:"#faad14",fontSize:"20px"}},{prefix:n(()=>[o(p(ge))]),_:1},8,["value"])]),_:1})]),_:1})]),_:1}),o(P,{title:"7 阶段流水线",size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"20px"},"body-style":{padding:"12px 16px"}},{default:n(()=>[k("div",St,[(i(!0),_(B,null,N(p(me),(a,u)=>(i(),_(B,{key:a},[k("span",{class:it(["stage-pill",{"is-gate":p(_e).includes(a)}])},[k("span",At,d(u+1),1),c(" "+d(w(a))+" ",1),p(_e).includes(a)?(i(),f(p(K),{key:0,class:"gate-icon"})):y("",!0)],2),u<p(me).length-1?(i(),f(p(tt),{key:0,class:"stage-arrow"})):y("",!0)],64))),128))])]),_:1}),o(Me,{activeKey:le.value,"onUpdate:activeKey":l[3]||(l[3]=a=>le.value=a),class:"pipeline-tabs"},{default:n(()=>[o(Z,{key:"pipelines",tab:"流水线"},{default:n(()=>[k("div",zt,[o(pe,{value:$.value,"onUpdate:value":l[1]||(l[1]=a=>$.value=a),size:"small","button-style":"solid"},{default:n(()=>[o(V,{value:""},{default:n(()=>[...l[12]||(l[12]=[c("全部模板",-1)])]),_:1}),(i(!0),_(B,null,N(p(te),a=>(i(),f(V,{key:a,value:a},{default:n(()=>[c(d(J(a)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"]),o(pe,{value:L.value,"onUpdate:value":l[2]||(l[2]=a=>L.value=a),size:"small"},{default:n(()=>[o(V,{value:""},{default:n(()=>[...l[13]||(l[13]=[c("全部状态",-1)])]),_:1}),(i(!0),_(B,null,N(p(ke),a=>(i(),f(V,{key:a,value:a},{default:n(()=>[c(d(X(a)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),o(de,{columns:xe,"data-source":Ae.value,pagination:{pageSize:20,showTotal:a=>`共 ${a} 条`},size:"small",loading:r.value,style:{background:"var(--bg-card)"}},{bodyCell:n(({column:a,record:u})=>[a.key==="name"?(i(),_(B,{key:0},[k("span",Ct,d(u.name||"(未命名)"),1),k("div",Bt,d(u.id.slice(0,16)),1)],64)):y("",!0),a.key==="template"?(i(),f(C,{key:1,color:Q(u.template)},{default:n(()=>[c(d(J(u.template)),1)]),_:2},1032,["color"])):y("",!0),a.key==="progress"?(i(),f(ce,{key:2,percent:ie(u),size:"small",status:u.status==="failed"?"exception":u.status==="completed"?"success":"active",format:()=>`${u.currentStage}/${u.stages.length}`},null,8,["percent","status","format"])):y("",!0),a.key==="currentStage"?(i(),_(B,{key:3},[U(u)?(i(),f(C,{key:0,color:se(U(u).status)},{default:n(()=>[c(d(w(U(u).name)),1)]),_:2},1032,["color"])):(i(),_("span",Ot,"—"))],64)):y("",!0),a.key==="status"?(i(),f(C,{key:4,color:oe(u.status)},{default:n(()=>[c(d(X(u.status)),1)]),_:2},1032,["color"])):y("",!0),a.key==="createdAt"?(i(),_("span",Tt,d(p(R)(u.createdAt)),1)):y("",!0),a.key==="action"?(i(),_(B,{key:6},[o(x,{size:"small",type:"link",onClick:j=>Le(u)},{default:n(()=>[...l[14]||(l[14]=[c("详情",-1)])]),_:1},8,["onClick"]),u.status==="pending"?(i(),f(x,{key:0,size:"small",type:"link",onClick:j=>Ne(u)},{default:n(()=>[...l[15]||(l[15]=[c("启动",-1)])]),_:1},8,["onClick"])):y("",!0),u.status==="running"?(i(),f(x,{key:1,size:"small",type:"link",onClick:j=>De(u)},{default:n(()=>[...l[16]||(l[16]=[c("暂停",-1)])]),_:1},8,["onClick"])):y("",!0),u.status==="paused"?(i(),f(x,{key:2,size:"small",type:"link",onClick:j=>Re(u)},{default:n(()=>[...l[17]||(l[17]=[c("继续",-1)])]),_:1},8,["onClick"])):y("",!0),he(u)?(i(),f(x,{key:3,size:"small",type:"link",style:{color:"#52c41a"},onClick:j=>Ee(u)},{default:n(()=>[...l[18]||(l[18]=[c("批准门",-1)])]),_:1},8,["onClick"])):y("",!0),Pe(u)?(i(),f(Je,{key:4,title:"取消该流水线?","ok-text":"取消","cancel-text":"返回",onConfirm:j=>$e(u)},{default:n(()=>[o(x,{size:"small",type:"link",danger:""},{default:n(()=>[...l[19]||(l[19]=[c("取消",-1)])]),_:1})]),_:1},8,["onConfirm"])):y("",!0)],64)):y("",!0)]),emptyText:n(()=>[k("div",ht,[o(p(ye),{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),c(" "+d($.value||L.value?"没有符合条件的流水线":'暂无流水线,点"创建流水线"创建第一条'),1)])]),_:1},8,["data-source","pagination","loading"])]),_:1}),o(Z,{key:"deploys",tab:"部署"},{default:n(()=>[o(de,{columns:Se,"data-source":ae.value,pagination:{pageSize:20,showTotal:a=>`共 ${a} 条`},size:"small",loading:r.value,style:{background:"var(--bg-card)"}},{bodyCell:n(({column:a,record:u})=>[a.key==="pipeline"?(i(),_("span",Pt,d(u.pipelineId.slice(0,12)),1)):y("",!0),a.key==="strategy"?(i(),f(C,{key:1,color:Oe(u.strategy),style:{"font-family":"monospace"}},{default:n(()=>[c(d(u.strategy),1)]),_:2},1032,["color"])):y("",!0),a.key==="status"?(i(),f(C,{key:2,color:Be(u.status)},{default:n(()=>[c(d(Ce(u.status)),1)]),_:2},1032,["color"])):y("",!0),a.key==="createdAt"?(i(),_("span",jt,d(p(R)(u.createdAt)),1)):y("",!0)]),emptyText:n(()=>[k("div",Nt,[o(p(ge),{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),l[20]||(l[20]=c(" 暂无部署记录 ",-1))])]),_:1},8,["data-source","pagination","loading"])]),_:1}),o(Z,{key:"templates",tab:"模板"},{default:n(()=>[o(ue,{gutter:[16,16]},{default:n(()=>[(i(!0),_(B,null,N(ne.value,a=>(i(),f(D,{key:a.name,xs:24,sm:12,lg:12},{default:n(()=>[o(P,{title:J(a.name),size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{extra:n(()=>[o(C,{color:Q(a.name)},{default:n(()=>[c(d(a.name),1)]),_:2},1032,["color"])]),default:n(()=>[k("p",Dt,d(a.description),1),k("div",Rt,[(i(!0),_(B,null,N(a.stages,(u,j)=>(i(),f(C,{key:u,color:a.gateStages.includes(u)?"gold":"blue",style:{"font-size":"11px"}},{default:n(()=>[c(d(j+1)+". "+d(w(u))+" ",1),a.gateStages.includes(u)?(i(),f(p(K),{key:0,style:{"font-size":"10px","margin-left":"2px"}})):y("",!0)]),_:2},1032,["color"]))),128))])]),_:2},1032,["title"])]),_:2},1024))),128))]),_:1})]),_:1})]),_:1},8,["activeKey"]),o(fe,{open:I.value,"onUpdate:open":l[7]||(l[7]=a=>I.value=a),title:"创建流水线","confirm-loading":m.value,width:540,"ok-text":"创建","cancel-text":"取消",onOk:je,onCancel:re},{default:n(()=>[o(qe,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:n(()=>[o(ee,{label:"模板",required:""},{default:n(()=>[o(Ie,{value:b.template,"onUpdate:value":l[4]||(l[4]=a=>b.template=a)},{default:n(()=>[(i(!0),_(B,null,N(p(te),a=>(i(),f(Fe,{key:a,value:a},{default:n(()=>[c(d(J(a)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),_:1}),o(ee,{label:"名称"},{default:n(()=>[o(we,{value:b.name,"onUpdate:value":l[5]||(l[5]=a=>b.name=a),placeholder:"可选,例如: 修复登录 Bug"},null,8,["value"])]),_:1}),o(ee,{label:"配置 (JSON)"},{default:n(()=>[o(Ue,{value:b.configJson,"onUpdate:value":l[6]||(l[6]=a=>b.configJson=a),placeholder:'例如 {"repo":"web","ticket":"PROJ-123"}',"auto-size":{minRows:2,maxRows:5}},null,8,["value"])]),_:1})]),_:1})]),_:1},8,["open","confirm-loading"]),o(fe,{open:Y.value,"onUpdate:open":l[8]||(l[8]=a=>Y.value=a),title:`流水线详情:${S.value?.name||S.value?.id?.slice(0,12)||""}`,width:780,footer:null},{default:n(()=>[S.value?(i(),_("div",Et,[o(Ge,{column:2,size:"small",bordered:""},{default:n(()=>[o(F,{label:"模板"},{default:n(()=>[o(C,{color:Q(S.value.template)},{default:n(()=>[c(d(J(S.value.template)),1)]),_:1},8,["color"])]),_:1}),o(F,{label:"状态"},{default:n(()=>[o(C,{color:oe(S.value.status)},{default:n(()=>[c(d(X(S.value.status)),1)]),_:1},8,["color"])]),_:1}),o(F,{label:"进度",span:2},{default:n(()=>[o(ce,{percent:ie(S.value),status:S.value.status==="failed"?"exception":S.value.status==="completed"?"success":"active",size:"small"},null,8,["percent","status"])]),_:1}),o(F,{label:"创建时间"},{default:n(()=>[c(d(p(R)(S.value.createdAt)),1)]),_:1}),o(F,{label:"开始时间"},{default:n(()=>[c(d(p(R)(S.value.startedAt)),1)]),_:1})]),_:1}),l[22]||(l[22]=k("h4",{style:{color:"var(--text-primary)","font-size":"13px",margin:"20px 0 10px"}},"阶段详情",-1)),o(Ke,{mode:"left"},{default:n(()=>[(i(!0),_(B,null,N(S.value.stages,a=>(i(),f(Ve,{key:a.id,color:Te(a.status)},{dot:n(()=>[a.status==="completed"?(i(),f(p(at),{key:0,style:{color:"#52c41a"}})):a.status==="running"?(i(),f(p(nt),{key:1,style:{color:"#1677ff"}})):a.status==="failed"?(i(),f(p(lt),{key:2,style:{color:"#ff4d4f"}})):a.status==="gate-waiting"?(i(),f(p(K),{key:3,style:{color:"#faad14"}})):(i(),f(p(ot),{key:4,style:{color:"var(--text-muted)"}}))]),default:n(()=>[k("div",$t,[k("span",Lt,d(a.stageIndex+1)+". "+d(w(a.name)),1),o(C,{color:se(a.status),style:{"font-size":"11px"}},{default:n(()=>[c(d(ze(a.status)),1)]),_:2},1032,["color"]),a.gateRequired?(i(),f(C,{key:0,color:"gold",style:{"font-size":"10px"}},{default:n(()=>[o(p(K)),l[21]||(l[21]=c(" 需要审批 ",-1)),a.gateApproved?(i(),_("span",Jt,"(已批准)")):y("",!0)]),_:2},1024)):y("",!0)]),a.errorMessage?(i(),_("div",Mt," 错误: "+d(a.errorMessage),1)):y("",!0),a.startedAt?(i(),_("div",Ft,[c(d(p(R)(a.startedAt))+" ",1),a.completedAt?(i(),_("span",It," → "+d(p(R)(a.completedAt)),1)):y("",!0)])):y("",!0)]),_:2},1032,["color"]))),128))]),_:1})])):y("",!0)]),_:1},8,["open","title"])])}}},ta=We(wt,[["__scopeId","data-v-d34a9ea1"]]);export{ta as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{P as f}from"./index-U4Zd5IK6.js";import{p as c,i as g,j as l,d as p,a2 as m,l as C,w as v,a0 as x,n as P,c as h,W as R}from"./vendor-D0Qjn73K.js";function S(e){let{prefixCls:s,animation:t,transitionName:o}=e;return t?{name:`${s}-${t}`}:o?{name:o}:{}}const u=Symbol("PortalContextKey"),T=function(e){let s=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{inTriggerContext:!0};c(u,{inTriggerContext:s.inTriggerContext,shouldRender:l(()=>{const{sPopupVisible:t,popupRef:o,forceRender:n,autoDestroy:r}=e||{};let i=!1;return(t||o||n)&&(i=!0),!t&&r&&(i=!1),i})})},y=()=>{T({},{inTriggerContext:!1});const e=g(u,{shouldRender:l(()=>!1),inTriggerContext:!1});return{shouldRender:l(()=>e.shouldRender.value||e.inTriggerContext===!1)}},U=p({compatConfig:{MODE:3},name:"Portal",inheritAttrs:!1,props:{getContainer:f.func.isRequired,didUpdate:Function},setup(e,s){let{slots:t}=s,o=!0,n;const{shouldRender:r}=y();function i(){r.value&&(n=e.getContainer())}m(()=>{o=!1,i()}),C(()=>{n||i()});const d=v(r,()=>{r.value&&!n&&(n=e.getContainer()),n&&d()});return x(()=>{P(()=>{var a;r.value&&((a=e.didUpdate)===null||a===void 0||a.call(e,e))})}),()=>{var a;return r.value?o?(a=t.default)===null||a===void 0?void 0:a.call(t):n?h(R,{to:n},t):null:null}}});export{U as P,S as g,T as u};
|