chainlesschain 0.162.29 → 0.162.31
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +2 -2
- package/src/assets/web-panel/assets/AIOps-BqWP6FKu.js +1 -0
- package/src/assets/web-panel/assets/AIOps-CSpp7iGY.css +1 -0
- package/src/assets/web-panel/assets/{ActionButton-wRdLFzBQ.js → ActionButton-CXwMgOvX.js} +1 -1
- package/src/assets/web-panel/assets/Analytics-DAebZ4IY.js +3 -0
- package/src/assets/web-panel/assets/Analytics-DJcHjy5J.css +1 -0
- package/src/assets/web-panel/assets/AppLayout-CYsqYoME.js +9 -0
- package/src/assets/web-panel/assets/AppLayout-VlanTjPw.css +1 -0
- package/src/assets/web-panel/assets/Audit-BbTtX1Nf.js +1 -0
- package/src/assets/web-panel/assets/Audit-D8oxP0wr.css +1 -0
- package/src/assets/web-panel/assets/Backup-DgqY2Eb-.js +1 -0
- package/src/assets/web-panel/assets/Backup-Wi9CaP3d.css +1 -0
- package/src/assets/web-panel/assets/BaseInput-Cq2ZuSoO.js +1 -0
- package/src/assets/web-panel/assets/Chat-D2kqpUyO.js +8 -0
- package/src/assets/web-panel/assets/Chat-DDh58PCf.css +1 -0
- package/src/assets/web-panel/assets/ChatBubbleRenderer-C-svYkrC.js +1 -0
- package/src/assets/web-panel/assets/ChatBubbleRenderer-gy5SDGw2.css +1 -0
- package/src/assets/web-panel/assets/{Checkbox-DoGqmF9g.js → Checkbox-_9swHpyc.js} +1 -1
- package/src/assets/web-panel/assets/Codegen-BB08p1fn.css +1 -0
- package/src/assets/web-panel/assets/Codegen-Cr9YbCPl.js +1 -0
- package/src/assets/web-panel/assets/{Col-C-9-jORK.js → Col--wdpCMxx.js} +1 -1
- package/src/assets/web-panel/assets/Community-Cbq1nrpo.css +1 -0
- package/src/assets/web-panel/assets/Community-DuFcVnLu.js +1 -0
- package/src/assets/web-panel/assets/{Compact-CemvxU3z.js → Compact-1yzYeT04.js} +1 -1
- package/src/assets/web-panel/assets/Compliance-Dq3aU9Df.js +1 -0
- package/src/assets/web-panel/assets/Compliance-NoXr2Vof.css +1 -0
- package/src/assets/web-panel/assets/Cowork-BlXJRu6L.css +1 -0
- package/src/assets/web-panel/assets/Cowork-CrWcnIg8.js +6 -0
- package/src/assets/web-panel/assets/Cron-Bh6fKZ0h.js +2 -0
- package/src/assets/web-panel/assets/Crosschain-8ofPaWVW.js +1 -0
- package/src/assets/web-panel/assets/Crosschain-CgRAecoR.css +1 -0
- package/src/assets/web-panel/assets/DID-D3EiYm3w.js +2 -0
- package/src/assets/web-panel/assets/DID-DVsYcgvs.css +1 -0
- package/src/assets/web-panel/assets/Dashboard-BFjEdFne.js +3 -0
- package/src/assets/web-panel/assets/Dashboard-CAPSdFR4.css +1 -0
- package/src/assets/web-panel/assets/Dropdown-pYVPcP6O.js +1 -0
- package/src/assets/web-panel/assets/EmailListRenderer-DTPZPx_S.css +1 -0
- package/src/assets/web-panel/assets/EmailListRenderer-zBPodwJ1.js +1 -0
- package/src/assets/web-panel/assets/FamilyGuardDashboard-CyQTW6PW.js +1 -0
- package/src/assets/web-panel/assets/FamilyGuardDashboard-nd3idUVb.css +1 -0
- package/src/assets/web-panel/assets/Federation-Ctaq3zYq.js +1 -0
- package/src/assets/web-panel/assets/Federation-fGN6iMX_.css +1 -0
- package/src/assets/web-panel/assets/FormItemContext-CWYJCLq1.js +2 -0
- package/src/assets/web-panel/assets/GenericCardRenderer-B1g6t9R9.js +1 -0
- package/src/assets/web-panel/assets/GenericCardRenderer-o85VDYQS.css +1 -0
- package/src/assets/web-panel/assets/{Git-DPuaGtg7.css → Git-BdHhxBWR.css} +1 -1
- package/src/assets/web-panel/assets/Git-DH-v8iwd.js +2 -0
- package/src/assets/web-panel/assets/Governance-DtCS4NDm.css +1 -0
- package/src/assets/web-panel/assets/Governance-jZxXvOs5.js +1 -0
- package/src/assets/web-panel/assets/Inference-D07LRghn.js +1 -0
- package/src/assets/web-panel/assets/Inference-t-w0NgIS.css +1 -0
- package/src/assets/web-panel/assets/KnowledgeGraph-4NU1S2Xm.css +1 -0
- package/src/assets/web-panel/assets/KnowledgeGraph-DnGtRZhx.js +1 -0
- package/src/assets/web-panel/assets/Logs-D2pM9C4W.js +2 -0
- package/src/assets/web-panel/assets/Logs-DQbCaYhL.css +1 -0
- package/src/assets/web-panel/assets/Marketplace-Bvo5cuGa.css +1 -0
- package/src/assets/web-panel/assets/Marketplace-UyIO7C7r.js +1 -0
- package/src/assets/web-panel/assets/McpTools-534Q95Mx.css +1 -0
- package/src/assets/web-panel/assets/McpTools-Bf1gvZPf.js +7 -0
- package/src/assets/web-panel/assets/Memory-C1bWj4RN.js +2 -0
- package/src/assets/web-panel/assets/Memory-CleW_R6V.css +1 -0
- package/src/assets/web-panel/assets/MobileBridge-C_Ot1H_a.js +3 -0
- package/src/assets/web-panel/assets/MobileBridge-zJpPuf4E.css +1 -0
- package/src/assets/web-panel/assets/MobileProjects-BD4alw6-.css +1 -0
- package/src/assets/web-panel/assets/MobileProjects-zr-PpsT_.js +1 -0
- package/src/assets/web-panel/assets/Mtc-CXZGO9Sh.css +1 -0
- package/src/assets/web-panel/assets/Mtc-CnzFUz5J.js +6 -0
- package/src/assets/web-panel/assets/MtcAudit-C1JM8esp.css +1 -0
- package/src/assets/web-panel/assets/MtcAudit-CAAh99wz.js +19 -0
- package/src/assets/web-panel/assets/Multisig-BryR2Jpr.css +1 -0
- package/src/assets/web-panel/assets/Multisig-D6IAg6HE.js +13 -0
- package/src/assets/web-panel/assets/NLProgramming-BFMarxb0.js +1 -0
- package/src/assets/web-panel/assets/NLProgramming-DGDHq6Z9.css +1 -0
- package/src/assets/web-panel/assets/Notes-BKKmMtqV.css +1 -0
- package/src/assets/web-panel/assets/Notes-BRp9ro3t.js +7 -0
- package/src/assets/web-panel/assets/NotificationSettings-C0Au3Cxb.js +1 -0
- package/src/assets/web-panel/assets/NotificationSettings-CG3Kfuef.css +1 -0
- package/src/assets/web-panel/assets/OrderTableRenderer-CfrDjSHT.css +1 -0
- package/src/assets/web-panel/assets/OrderTableRenderer-ISp6btRY.js +1 -0
- package/src/assets/web-panel/assets/Organization-DYoxLBRX.js +4 -0
- package/src/assets/web-panel/assets/Organization-LVvqwG0D.css +1 -0
- package/src/assets/web-panel/assets/{Overflow-BFxt7NlK.js → Overflow-rO8JJWGJ.js} +1 -1
- package/src/assets/web-panel/assets/{OverrideContext-C_4H9tGA.js → OverrideContext-C2r4vyBb.js} +1 -1
- package/src/assets/web-panel/assets/P2P-DJleeXIK.js +2 -0
- package/src/assets/web-panel/assets/P2P-DcFvP7F-.css +1 -0
- package/src/assets/web-panel/assets/PdhVaultBrowser-DM5qghFp.js +7 -0
- package/src/assets/web-panel/assets/PdhVaultBrowser-DZZrUOr1.css +1 -0
- package/src/assets/web-panel/assets/Permissions-D5v4Beya.js +4 -0
- package/src/assets/web-panel/assets/Permissions-DsPE_IQy.css +1 -0
- package/src/assets/web-panel/assets/PersonalDataHub-BhpRlh9D.css +1 -0
- package/src/assets/web-panel/assets/PersonalDataHub-c2ZTX0Pv.js +9 -0
- package/src/assets/web-panel/assets/Pipeline-BItr5CyP.css +1 -0
- package/src/assets/web-panel/assets/Pipeline-Crrkyhpz.js +1 -0
- package/src/assets/web-panel/assets/Privacy-DZVyrJKa.js +1 -0
- package/src/assets/web-panel/assets/Privacy-F_ENsxZk.css +1 -0
- package/src/assets/web-panel/assets/ProjectInit-B86LEzDL.css +1 -0
- package/src/assets/web-panel/assets/ProjectInit-DKg7J0gz.js +2 -0
- package/src/assets/web-panel/assets/ProjectSettings-3ndmTvVH.js +2 -0
- package/src/assets/web-panel/assets/ProjectSettings-DK7KA_iX.css +1 -0
- package/src/assets/web-panel/assets/Projects-CmJeUDBW.css +1 -0
- package/src/assets/web-panel/assets/Projects-ll5wnj2L.js +1 -0
- package/src/assets/web-panel/assets/Providers-BeqBVMhB.js +1 -0
- package/src/assets/web-panel/assets/Providers-C6q_fvea.css +1 -0
- package/src/assets/web-panel/assets/QuickAsk-DKAAxzuA.js +1 -0
- package/src/assets/web-panel/assets/Recommend-Byu7IGei.js +1 -0
- package/src/assets/web-panel/assets/Recommend-D_bf91K6.css +1 -0
- package/src/assets/web-panel/assets/Reputation-BKhWAmCu.js +1 -0
- package/src/assets/web-panel/assets/Reputation-DiOsOleI.css +1 -0
- package/src/assets/web-panel/assets/Row-BFtn11O6.js +1 -0
- package/src/assets/web-panel/assets/RssFeed-CjcbkyUb.css +1 -0
- package/src/assets/web-panel/assets/RssFeed-D5a0PT0k.js +3 -0
- package/src/assets/web-panel/assets/Search-DAkuaZNe.js +1 -0
- package/src/assets/web-panel/assets/Search-Klk29S7C.css +1 -0
- package/src/assets/web-panel/assets/Security-BmrukMHn.css +1 -0
- package/src/assets/web-panel/assets/Security-C79Ml2Ms.js +4 -0
- package/src/assets/web-panel/assets/Services-BBk_jH6-.js +2 -0
- package/src/assets/web-panel/assets/Services-DAnVNhUG.css +1 -0
- package/src/assets/web-panel/assets/{Skeleton-DL5ebkDK.js → Skeleton-Cy0VvL0M.js} +1 -1
- package/src/assets/web-panel/assets/Skills-BUu9owbR.css +1 -0
- package/src/assets/web-panel/assets/Skills-OQNky3uI.js +1 -0
- package/src/assets/web-panel/assets/Sla-CbX1f8xN.js +1 -0
- package/src/assets/web-panel/assets/Sla-sodqCU4a.css +1 -0
- package/src/assets/web-panel/assets/SpeechSettings-BIkoUjws.js +1 -0
- package/src/assets/web-panel/assets/SpeechSettings-CgB9nFyq.css +1 -0
- package/src/assets/web-panel/assets/SyncSettings-B3hJqmBP.css +1 -0
- package/src/assets/web-panel/assets/SyncSettings-DG6Swk7G.js +2 -0
- package/src/assets/web-panel/assets/Tasks-C9R8sgyi.js +1 -0
- package/src/assets/web-panel/assets/Tasks-nbTUVXvt.css +1 -0
- package/src/assets/web-panel/assets/Templates-AaJPeCIz.js +1 -0
- package/src/assets/web-panel/assets/Templates-CpFsKk_l.css +1 -0
- package/src/assets/web-panel/assets/Tenant-MuPJnOjk.css +1 -0
- package/src/assets/web-panel/assets/Tenant-jVFRofww.js +1 -0
- package/src/assets/web-panel/assets/Terminal-DHBMzfK6.js +3 -0
- package/src/assets/web-panel/assets/Terminal-DHoveJwj.css +1 -0
- package/src/assets/web-panel/assets/TimelineRenderer-9RFfOHSI.js +1 -0
- package/src/assets/web-panel/assets/TimelineRenderer-BlTAtkOc.css +1 -0
- package/src/assets/web-panel/assets/Tokens-CynVae-o.css +1 -0
- package/src/assets/web-panel/assets/Tokens-ZTfwuABF.js +1 -0
- package/src/assets/web-panel/assets/{Trigger-Rzs-a8Xf.js → Trigger-Xo7uZNQs.js} +1 -1
- package/src/assets/web-panel/assets/Trust-C-WrW0Fj.css +1 -0
- package/src/assets/web-panel/assets/Trust-C0cTPYvn.js +1 -0
- package/src/assets/web-panel/assets/UkeySign-DmMKio71.js +1 -0
- package/src/assets/web-panel/assets/VideoEditing-BDFghpzP.css +1 -0
- package/src/assets/web-panel/assets/VideoEditing-DP7B-oGT.js +1 -0
- package/src/assets/web-panel/assets/Wallet-B1kZDARo.js +4 -0
- package/src/assets/web-panel/assets/Wallet-DUbpTRcg.css +1 -0
- package/src/assets/web-panel/assets/WebAuthn-Bo5kBx27.js +5 -0
- package/src/assets/web-panel/assets/WebAuthn-CVAFRfCQ.css +1 -0
- package/src/assets/web-panel/assets/WorkflowEditor-429lPWYk.css +1 -0
- package/src/assets/web-panel/assets/WorkflowEditor-DGI9SNHH.js +1 -0
- package/src/assets/web-panel/assets/{_getTag-BVc6NQ_K.js → _getTag-DnrRH4E6.js} +1 -1
- package/src/assets/web-panel/assets/{chat-C7tndXfg.js → chat-y97W1CIG.js} +1 -1
- package/src/assets/web-panel/assets/{collapseMotion-DfnRZex1.js → collapseMotion-mxzzcDsg.js} +1 -1
- package/src/assets/web-panel/assets/{colors-dUAGx-eS.js → colors-DtTNo0sH.js} +1 -1
- package/src/assets/web-panel/assets/{compact-item-X13u92RU.js → compact-item-D0q0exuS.js} +1 -1
- package/src/assets/web-panel/assets/createContext-D7pLFs2I.js +1 -0
- package/src/assets/web-panel/assets/{debounce-D9xTw4Sx.js → debounce-CFGTTtN3.js} +1 -1
- package/src/assets/web-panel/assets/devWarning-BDK34w0I.js +1 -0
- package/src/assets/web-panel/assets/echarts-jxgIOFUZ.js +25 -0
- package/src/assets/web-panel/assets/{hasIn-DGFXWm7Y.js → hasIn-CXjG5B2j.js} +1 -1
- package/src/assets/web-panel/assets/{icons--SBOhPAi.js → icons-DP3uiYxy.js} +4 -4
- package/src/assets/web-panel/assets/{index-Deh_HoQ3.js → index-1dwtkcJv.js} +2 -2
- package/src/assets/web-panel/assets/index-4mWZhCzz.js +1 -0
- package/src/assets/web-panel/assets/index-6np5ESBM.js +1 -0
- package/src/assets/web-panel/assets/{index-Bewc5jaO.js → index-8jxbZupG.js} +1 -1
- package/src/assets/web-panel/assets/{index-DW1GR68q.js → index-B3y_4OdG.js} +1 -1
- package/src/assets/web-panel/assets/index-B4dPdrvC.js +1 -0
- package/src/assets/web-panel/assets/index-B6SaRuCI.js +1 -0
- package/src/assets/web-panel/assets/index-B9ekWb3I.js +1 -0
- package/src/assets/web-panel/assets/index-BJUf19Wd.js +73 -0
- package/src/assets/web-panel/assets/index-BO644Q4S.js +21 -0
- package/src/assets/web-panel/assets/index-BPXhU-jp.js +7 -0
- package/src/assets/web-panel/assets/index-BU944DeT.js +31 -0
- package/src/assets/web-panel/assets/index-B_hjkMtX.js +3 -0
- package/src/assets/web-panel/assets/index-BdhEYW2a.js +1 -0
- package/src/assets/web-panel/assets/{index-DBfn83eM.js → index-BgmvrPJH.js} +1 -1
- package/src/assets/web-panel/assets/index-BgyrM0UN.js +19 -0
- package/src/assets/web-panel/assets/{index-Cq-fdWWC.js → index-BnLrbXDA.js} +1 -1
- package/src/assets/web-panel/assets/{index-C54Ydkuz.js → index-BqVjUN8b.js} +4 -4
- package/src/assets/web-panel/assets/index-BzCPx1cq.js +21 -0
- package/src/assets/web-panel/assets/index-CFsPe2N7.js +3 -0
- package/src/assets/web-panel/assets/{index-C14mc-46.js → index-CKrbutAQ.js} +1 -1
- package/src/assets/web-panel/assets/index-CSdhC7Qo.js +1 -0
- package/src/assets/web-panel/assets/{index-BqX3jeij.js → index-Cbqu804A.js} +1 -1
- package/src/assets/web-panel/assets/{index-CvlrcZKy.js → index-CkGFqlYX.js} +4 -4
- package/src/assets/web-panel/assets/{index-CfX1DEtk.css → index-Cq93VfoF.css} +1 -1
- package/src/assets/web-panel/assets/index-Ct6xtKkc.js +1 -0
- package/src/assets/web-panel/assets/index-DY6KLlgG.js +1 -0
- package/src/assets/web-panel/assets/index-D_4WcI1V.js +13 -0
- package/src/assets/web-panel/assets/{index-Ced-t9AY.js → index-DjCawXk1.js} +3 -3
- package/src/assets/web-panel/assets/index-Dr45Nm9V.js +55 -0
- package/src/assets/web-panel/assets/index-EaIfumgW.js +1 -0
- package/src/assets/web-panel/assets/index-POaFzYGS.js +1 -0
- package/src/assets/web-panel/assets/index-TrBGgrwG.js +1 -0
- package/src/assets/web-panel/assets/{index-DrH9uW99.js → index-YWOEx3rP.js} +2 -2
- package/src/assets/web-panel/assets/{index-DZMiVgXE.js → index-_3wPBMKt.js} +1 -1
- package/src/assets/web-panel/assets/{index-CBnkvGxd.js → index-aarO4HT9.js} +1 -1
- package/src/assets/web-panel/assets/index-bVJvqDAz.js +1 -0
- package/src/assets/web-panel/assets/{index-BipKV1Yr.js → index-gFLQe31v.js} +2 -2
- package/src/assets/web-panel/assets/index-kvV0f4tV.js +12 -0
- package/src/assets/web-panel/assets/index-qoB3whR9.js +12 -0
- package/src/assets/web-panel/assets/{initDefaultProps-B8zdOlFC.js → initDefaultProps-BnXISaAa.js} +1 -1
- package/src/assets/web-panel/assets/{isPlainObject-_gz-soRW.js → isPlainObject-BWRMT62c.js} +1 -1
- package/src/assets/web-panel/assets/isSymbol-S5WZT7lS.js +1 -0
- package/src/assets/web-panel/assets/motion-ChY7C0zJ.js +11 -0
- package/src/assets/web-panel/assets/{move-BioqdqDn.js → move-ByFZMFM5.js} +1 -1
- package/src/assets/web-panel/assets/{mtc-parser-Cc3pB9Xm.js → mtc-parser-BbAbUB-9.js} +1 -1
- package/src/assets/web-panel/assets/{omit-C1hn14Vc.js → omit-BYeliY1H.js} +1 -1
- package/src/assets/web-panel/assets/{pickAttrs-DgVG8oMj.js → pickAttrs-B9dcAKnu.js} +1 -1
- package/src/assets/web-panel/assets/{placementArrow-cJY6hoXZ.js → placementArrow-D3F_txz7.js} +1 -1
- package/src/assets/web-panel/assets/{responsiveObserve-DbUdURRx.js → responsiveObserve-ClkwY7wS.js} +1 -1
- package/src/assets/web-panel/assets/{slide-C2OEWnC4.js → slide-BNgy2Eea.js} +1 -1
- package/src/assets/web-panel/assets/{statusUtils-DghgcGqm.js → statusUtils-Bv3heMCD.js} +1 -1
- package/src/assets/web-panel/assets/{styleChecker-GoQ7uwU1.js → styleChecker-DVdlHbQm.js} +1 -1
- package/src/assets/web-panel/assets/useFlexGapSupport-alrRY5BK.js +1 -0
- package/src/assets/web-panel/assets/{useFs-CZCJDMup.js → useFs-CcVh0-Vu.js} +1 -1
- package/src/assets/web-panel/assets/{useMergedState-WwedrFR0.js → useMergedState-Cl2q1fes.js} +1 -1
- package/src/assets/web-panel/assets/{usePersonalDataHub-BjAS9b7w.js → usePersonalDataHub-CkkHPhyq.js} +1 -1
- package/src/assets/web-panel/assets/{useRefs-Cdq8EWeF.js → useRefs-DD9q4mOT.js} +1 -1
- package/src/assets/web-panel/assets/{useState-DGS1NOyn.js → useState-BK4hy8Ma.js} +1 -1
- package/src/assets/web-panel/assets/vendor-BvqAck49.js +42 -0
- package/src/assets/web-panel/assets/vnode-DWi0X9WN.js +1 -0
- package/src/assets/web-panel/assets/{zoom-CzyiNxpd.js → zoom-DCbqxxLH.js} +1 -1
- package/src/assets/web-panel/index.html +4 -4
- package/src/commands/agent.js +306 -1
- package/src/commands/ask.js +35 -1
- package/src/commands/checkpoint.js +239 -0
- package/src/commands/cost.js +114 -0
- package/src/commands/session.js +22 -2
- package/src/index.js +4 -0
- package/src/lib/file-checkpoint.js +300 -0
- package/src/lib/llm-pricing.js +227 -0
- package/src/lib/personal-data-hub-wiring.js +30 -0
- package/src/lib/recent-session.js +72 -0
- package/src/lib/session-picker.js +68 -0
- package/src/repl/agent-repl.js +58 -2
- package/src/repl/chat-repl.js +16 -1
- package/src/runtime/agent-core.js +68 -31
- package/src/runtime/fallback-model.js +109 -0
- package/src/runtime/file-ref-expander.js +258 -0
- package/src/runtime/headless-runner.js +576 -0
- package/src/runtime/headless-stream.js +302 -0
- package/src/runtime/policies/agent-policy.js +6 -0
- package/src/runtime/quiet-stdout.js +35 -0
- package/src/runtime/system-prompt.js +60 -0
- package/src/assets/web-panel/assets/AIOps-BWWsdf3s.js +0 -1
- package/src/assets/web-panel/assets/AIOps-Cchx1iXI.css +0 -1
- package/src/assets/web-panel/assets/Analytics-C1-TXmTC.css +0 -1
- package/src/assets/web-panel/assets/Analytics-CU1ellhG.js +0 -3
- package/src/assets/web-panel/assets/AppLayout-9pWRQa_t.css +0 -1
- package/src/assets/web-panel/assets/AppLayout-cXY-mRTd.js +0 -3
- package/src/assets/web-panel/assets/Audit-6ZMsXmrO.css +0 -1
- package/src/assets/web-panel/assets/Audit-CtQuC6zy.js +0 -1
- package/src/assets/web-panel/assets/Backup-CY9QozR7.css +0 -1
- package/src/assets/web-panel/assets/Backup-WeATa8CV.js +0 -1
- package/src/assets/web-panel/assets/BaseInput-BCu2Cejw.js +0 -1
- package/src/assets/web-panel/assets/Chat-Bj0XPlH8.js +0 -7
- package/src/assets/web-panel/assets/Chat-IlrLB9ZV.css +0 -1
- package/src/assets/web-panel/assets/ChatBubbleRenderer-Bpp2sN9W.js +0 -1
- package/src/assets/web-panel/assets/ChatBubbleRenderer-CO908iBt.css +0 -1
- package/src/assets/web-panel/assets/Codegen-BLP7id2a.css +0 -1
- package/src/assets/web-panel/assets/Codegen-PeBhNei5.js +0 -1
- package/src/assets/web-panel/assets/Community-BvaB_Wcs.js +0 -1
- package/src/assets/web-panel/assets/Community-C2RejeOY.css +0 -1
- package/src/assets/web-panel/assets/Compliance-DOys4Ov1.css +0 -1
- package/src/assets/web-panel/assets/Compliance-DjquEqsU.js +0 -1
- package/src/assets/web-panel/assets/Cowork-Bv6Tm40_.js +0 -6
- package/src/assets/web-panel/assets/Cowork-DsOst4XK.css +0 -1
- package/src/assets/web-panel/assets/Cron-D9fPIXV8.js +0 -2
- package/src/assets/web-panel/assets/Crosschain-C0WilDBF.js +0 -1
- package/src/assets/web-panel/assets/Crosschain-C7Le4Pte.css +0 -1
- package/src/assets/web-panel/assets/DID-BX6k3jZi.css +0 -1
- package/src/assets/web-panel/assets/DID-CiGeAI1K.js +0 -2
- package/src/assets/web-panel/assets/Dashboard-MFDcsVcM.css +0 -1
- package/src/assets/web-panel/assets/Dashboard-zqQuizB8.js +0 -3
- package/src/assets/web-panel/assets/Dropdown-_Mjb8yOR.js +0 -1
- package/src/assets/web-panel/assets/EmailListRenderer-C369EVhV.js +0 -1
- package/src/assets/web-panel/assets/EmailListRenderer-CVJ1j3Ll.css +0 -1
- package/src/assets/web-panel/assets/FamilyGuardDashboard-D8WsrCmn.js +0 -1
- package/src/assets/web-panel/assets/FamilyGuardDashboard-Df-D09Q4.css +0 -1
- package/src/assets/web-panel/assets/Federation-CgmfLbx1.css +0 -1
- package/src/assets/web-panel/assets/Federation-Dq7CrAzj.js +0 -1
- package/src/assets/web-panel/assets/FormItemContext-C7TvuLVK.js +0 -1
- package/src/assets/web-panel/assets/GenericCardRenderer-BJUR1Emh.js +0 -1
- package/src/assets/web-panel/assets/GenericCardRenderer-DtJFcJYl.css +0 -1
- package/src/assets/web-panel/assets/Git-B5MdAp15.js +0 -2
- package/src/assets/web-panel/assets/Governance-BIbPWlSM.js +0 -1
- package/src/assets/web-panel/assets/Governance-BoipmXaM.css +0 -1
- package/src/assets/web-panel/assets/Inference-BWxYJF9-.css +0 -1
- package/src/assets/web-panel/assets/Inference-vOz9J05E.js +0 -1
- package/src/assets/web-panel/assets/KnowledgeGraph-B_vUO-Td.js +0 -1
- package/src/assets/web-panel/assets/KnowledgeGraph-CztPDA96.css +0 -1
- package/src/assets/web-panel/assets/Logs-BwPfxX3p.js +0 -2
- package/src/assets/web-panel/assets/Logs-Gf_Mv9Nx.css +0 -1
- package/src/assets/web-panel/assets/Marketplace-Djp5q9dS.css +0 -1
- package/src/assets/web-panel/assets/Marketplace-T5HNwUjX.js +0 -1
- package/src/assets/web-panel/assets/McpTools-CDjHmzxH.css +0 -1
- package/src/assets/web-panel/assets/McpTools-CuKeBPxy.js +0 -5
- package/src/assets/web-panel/assets/Memory-Bcc2hxOA.css +0 -1
- package/src/assets/web-panel/assets/Memory-DmRW_sTE.js +0 -2
- package/src/assets/web-panel/assets/MobileBridge-DK2N_MJA.js +0 -3
- package/src/assets/web-panel/assets/MobileBridge-DwxX55b_.css +0 -1
- package/src/assets/web-panel/assets/MobileProjects-Ceaxrqzc.css +0 -1
- package/src/assets/web-panel/assets/MobileProjects-wl3bXCnJ.js +0 -1
- package/src/assets/web-panel/assets/Mtc-C8e0941i.js +0 -6
- package/src/assets/web-panel/assets/Mtc-DHwbdUqA.css +0 -1
- package/src/assets/web-panel/assets/MtcAudit-B0x8gahq.css +0 -1
- package/src/assets/web-panel/assets/MtcAudit-Cwigy2IR.js +0 -19
- package/src/assets/web-panel/assets/Multisig-BSfh_ncy.js +0 -7
- package/src/assets/web-panel/assets/Multisig-kwPDnXnl.css +0 -1
- package/src/assets/web-panel/assets/NLProgramming-BwzJAfJg.js +0 -1
- package/src/assets/web-panel/assets/NLProgramming-CLOvy-35.css +0 -1
- package/src/assets/web-panel/assets/Notes-COE2q2gD.css +0 -1
- package/src/assets/web-panel/assets/Notes-uilHH6hE.js +0 -7
- package/src/assets/web-panel/assets/NotificationSettings-Co0e0uEO.css +0 -1
- package/src/assets/web-panel/assets/NotificationSettings-DvM3DTPW.js +0 -1
- package/src/assets/web-panel/assets/OrderTableRenderer-BIEm3hZl.js +0 -1
- package/src/assets/web-panel/assets/OrderTableRenderer-BnOISpKI.css +0 -1
- package/src/assets/web-panel/assets/Organization-BX-cIO8M.css +0 -1
- package/src/assets/web-panel/assets/Organization-zxWoIwYM.js +0 -4
- package/src/assets/web-panel/assets/P2P-BsbToYKZ.js +0 -2
- package/src/assets/web-panel/assets/P2P-Cx88UaiD.css +0 -1
- package/src/assets/web-panel/assets/PdhVaultBrowser-B9ZGFpn4.css +0 -1
- package/src/assets/web-panel/assets/PdhVaultBrowser-VU8vfhsS.js +0 -7
- package/src/assets/web-panel/assets/Permissions-C10Sd26B.js +0 -4
- package/src/assets/web-panel/assets/Permissions-C9WlkGl-.css +0 -1
- package/src/assets/web-panel/assets/PersonalDataHub-Bz5u9Gth.css +0 -1
- package/src/assets/web-panel/assets/PersonalDataHub-edJB7VeU.js +0 -2
- package/src/assets/web-panel/assets/Pipeline-DxkXqrH2.css +0 -1
- package/src/assets/web-panel/assets/Pipeline-qNmVxn5A.js +0 -1
- package/src/assets/web-panel/assets/Privacy-CrsfSFKd.css +0 -1
- package/src/assets/web-panel/assets/Privacy-h78XF7eO.js +0 -1
- package/src/assets/web-panel/assets/ProjectInit-C9-vm1no.js +0 -2
- package/src/assets/web-panel/assets/ProjectInit-CteEo-wF.css +0 -1
- package/src/assets/web-panel/assets/ProjectSettings-DpDNsQTb.js +0 -2
- package/src/assets/web-panel/assets/ProjectSettings-pLSae-wy.css +0 -1
- package/src/assets/web-panel/assets/Projects-BX-SG9R4.css +0 -1
- package/src/assets/web-panel/assets/Projects-CwU3W4RD.js +0 -1
- package/src/assets/web-panel/assets/Providers-BNI-WkmA.css +0 -1
- package/src/assets/web-panel/assets/Providers-C3KZlUEI.js +0 -1
- package/src/assets/web-panel/assets/QuickAsk-CILvLGze.js +0 -1
- package/src/assets/web-panel/assets/Recommend-CH6wKzGo.css +0 -1
- package/src/assets/web-panel/assets/Recommend-XfFlk3BY.js +0 -1
- package/src/assets/web-panel/assets/Reputation-BqmWvaMD.js +0 -1
- package/src/assets/web-panel/assets/Reputation-D6VPNEd0.css +0 -1
- package/src/assets/web-panel/assets/Row-BEbjCI_X.js +0 -1
- package/src/assets/web-panel/assets/RssFeed-BlFC20eg.css +0 -1
- package/src/assets/web-panel/assets/RssFeed-CFukIl-a.js +0 -3
- package/src/assets/web-panel/assets/Search-B6RalzTB.css +0 -1
- package/src/assets/web-panel/assets/Search-dVPkf1o2.js +0 -1
- package/src/assets/web-panel/assets/Security-13K57V_v.css +0 -1
- package/src/assets/web-panel/assets/Security-DlRFaUrn.js +0 -4
- package/src/assets/web-panel/assets/Services-C8Qs6KXv.css +0 -1
- package/src/assets/web-panel/assets/Services-DKy7AjpA.js +0 -2
- package/src/assets/web-panel/assets/Skills-BEqnpg2j.js +0 -1
- package/src/assets/web-panel/assets/Skills-BdjRyorN.css +0 -1
- package/src/assets/web-panel/assets/Sla-CZ9_lzPI.js +0 -1
- package/src/assets/web-panel/assets/Sla-K19oOyQc.css +0 -1
- package/src/assets/web-panel/assets/SpeechSettings-DVSY_ehZ.js +0 -1
- package/src/assets/web-panel/assets/SpeechSettings-DYPJTDKz.css +0 -1
- package/src/assets/web-panel/assets/SyncSettings-C6cDrwDR.css +0 -1
- package/src/assets/web-panel/assets/SyncSettings-DgvsRpGt.js +0 -1
- package/src/assets/web-panel/assets/Tasks-BJjN_YEm.css +0 -1
- package/src/assets/web-panel/assets/Tasks-L5qXKsxK.js +0 -1
- package/src/assets/web-panel/assets/Templates-BWTV8-2E.css +0 -1
- package/src/assets/web-panel/assets/Templates-DR4VBx7q.js +0 -1
- package/src/assets/web-panel/assets/Tenant-D3zkSAV0.css +0 -1
- package/src/assets/web-panel/assets/Tenant-jMyaK184.js +0 -1
- package/src/assets/web-panel/assets/Terminal-DA5gjCiE.js +0 -3
- package/src/assets/web-panel/assets/Terminal-G1DrFtKr.css +0 -1
- package/src/assets/web-panel/assets/TimelineRenderer-BM17JHyr.js +0 -1
- package/src/assets/web-panel/assets/TimelineRenderer-DmztdsbF.css +0 -1
- package/src/assets/web-panel/assets/Tokens-BBOdNRHQ.css +0 -1
- package/src/assets/web-panel/assets/Tokens-CCJIrnhi.js +0 -1
- package/src/assets/web-panel/assets/Trust-BHeJEfNG.js +0 -1
- package/src/assets/web-panel/assets/Trust-DeOo0xAh.css +0 -1
- package/src/assets/web-panel/assets/UkeySign-DjcIVRk4.js +0 -1
- package/src/assets/web-panel/assets/VideoEditing-BPhptg3q.js +0 -1
- package/src/assets/web-panel/assets/VideoEditing-DksiizfS.css +0 -1
- package/src/assets/web-panel/assets/Wallet-D_xDgfaz.js +0 -4
- package/src/assets/web-panel/assets/Wallet-gR0ZvZbK.css +0 -1
- package/src/assets/web-panel/assets/WebAuthn-SSh5VhVO.css +0 -1
- package/src/assets/web-panel/assets/WebAuthn-pd961lgM.js +0 -5
- package/src/assets/web-panel/assets/WorkflowEditor-BmXDUZ8M.js +0 -1
- package/src/assets/web-panel/assets/WorkflowEditor-IiwsD8Kh.css +0 -1
- package/src/assets/web-panel/assets/createContext-BBLoTzN8.js +0 -1
- package/src/assets/web-panel/assets/devWarning-CNIS3FrJ.js +0 -1
- package/src/assets/web-panel/assets/echarts-Dj_pBaVI.js +0 -19
- package/src/assets/web-panel/assets/favicon-FSU2gSy6.ico +0 -0
- package/src/assets/web-panel/assets/index-1xUFGcnI.js +0 -21
- package/src/assets/web-panel/assets/index-4BeUpRaU.js +0 -1
- package/src/assets/web-panel/assets/index-AVHrO1io.js +0 -21
- package/src/assets/web-panel/assets/index-B2fc2n_u.js +0 -3
- package/src/assets/web-panel/assets/index-B5aXiiOG.js +0 -1
- package/src/assets/web-panel/assets/index-B78VsLFL.js +0 -1
- package/src/assets/web-panel/assets/index-BECv44dY.js +0 -12
- package/src/assets/web-panel/assets/index-BGn5-2TK.js +0 -1
- package/src/assets/web-panel/assets/index-BM9IHnrf.js +0 -13
- package/src/assets/web-panel/assets/index-BlMshk9V.js +0 -1
- package/src/assets/web-panel/assets/index-BoWoWh9f.js +0 -19
- package/src/assets/web-panel/assets/index-Bt79ud6Y.js +0 -1
- package/src/assets/web-panel/assets/index-CO9Tt0Bo.js +0 -1
- package/src/assets/web-panel/assets/index-CSZvB2uy.js +0 -12
- package/src/assets/web-panel/assets/index-CjeazYU2.js +0 -1
- package/src/assets/web-panel/assets/index-Cw-TEBru.js +0 -1
- package/src/assets/web-panel/assets/index-CyObfnlZ.js +0 -3
- package/src/assets/web-panel/assets/index-D0d2TS5o.js +0 -69
- package/src/assets/web-panel/assets/index-DV3zNhRX.js +0 -1
- package/src/assets/web-panel/assets/index-DnHElN_A.js +0 -7
- package/src/assets/web-panel/assets/index-DspW4reY.js +0 -55
- package/src/assets/web-panel/assets/index-DxUFdvJ5.js +0 -1
- package/src/assets/web-panel/assets/index-La4F-U-s.js +0 -1
- package/src/assets/web-panel/assets/index-azbNWBMo.js +0 -1
- package/src/assets/web-panel/assets/index-squRDiXd.js +0 -31
- package/src/assets/web-panel/assets/isSymbol-DAy2hlR5.js +0 -1
- package/src/assets/web-panel/assets/motion-ChVLXdRp.js +0 -11
- package/src/assets/web-panel/assets/useFlexGapSupport-CzD0s7wN.js +0 -1
- package/src/assets/web-panel/assets/vendor-DhFY8mDK.js +0 -1
- package/src/assets/web-panel/assets/vnode-CnXQ7gJ2.js +0 -1
- package/src/assets/web-panel/assets/warning-Pq00owYb.js +0 -1
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import{d as Le,o as xe,c as r,s as kt,t as Et,a as se,w as Ze,r as K,W as It,e as Tt,n as tt,b as Dt,f as we,F as ue,z as Ot,M as ne,N as o,u as e,Q as B,S as P,L as A,O as S,R as j,a1 as Rt,P as _}from"./vendor-DhFY8mDK.js";import{h as k,f as le,l as At,i as ut,q as dt,w as nt,N as Fe,Q as $t,R as _t,u as ke,_ as Nt,d as X}from"./index-D0d2TS5o.js";import{u as Ee}from"./useShellMode-CgR0wCYM.js";import{K as Ce}from"./KeyCode-D63Tfrq7.js";import{w as Ve}from"./raf-Deuc0E8-.js";import{i as ct}from"./styleChecker-GoQ7uwU1.js";import L,{Textarea as Se}from"./index-CSZvB2uy.js";import{b6 as Mt,b7 as Bt,aj as Pt,ai as zt,aR as Ut}from"./icons--SBOhPAi.js";import{i as Kt}from"./index-Cq-fdWWC.js";import{o as pt}from"./operationUnit-vCu2co3e.js";import{s as Ht}from"./BaseInput-BCu2Cejw.js";import{R as Lt}from"./index-DZMiVgXE.js";import{T as Je}from"./index-4BeUpRaU.js";import{o as ye}from"./omit-C1hn14Vc.js";import{u as jt}from"./useMergedState-WwedrFR0.js";import q from"./index-DrH9uW99.js";import Wt,{TabPane as be}from"./index-B2fc2n_u.js";import he,{FormItem as O}from"./index-BoWoWh9f.js";import{B as z}from"./index-BqX3jeij.js";import rt,{DescriptionsItem as Y}from"./index-azbNWBMo.js";import re from"./index-DV3zNhRX.js";import ie from"./index-Deh_HoQ3.js";import Q from"./index-Bewc5jaO.js";import Xe from"./index-BlMshk9V.js";import Be,{ListItem as pe}from"./index-Cw-TEBru.js";import lt from"./index-BM9IHnrf.js";import Ft from"./index-C54Ydkuz.js";import"./FormItemContext-C7TvuLVK.js";import"./createContext-BBLoTzN8.js";import"./statusUtils-DghgcGqm.js";import"./vnode-CnXQ7gJ2.js";import"./Compact-CemvxU3z.js";import"./_getTag-BVc6NQ_K.js";import"./isPlainObject-_gz-soRW.js";import"./compact-item-X13u92RU.js";import"./ResizeObserver.es-D6qJbdzf.js";import"./Trigger-Rzs-a8Xf.js";import"./motion-ChVLXdRp.js";import"./isVisible-C7tPsqfj.js";import"./placementArrow-cJY6hoXZ.js";import"./firstNotUndefined-CLFzEa0p.js";import"./colors-dUAGx-eS.js";import"./zoom-CzyiNxpd.js";import"./initDefaultProps-B8zdOlFC.js";import"./index-CvlrcZKy.js";import"./devWarning-CNIS3FrJ.js";import"./warning-Pq00owYb.js";import"./_arrayIncludes-B8uzE354.js";import"./injectionKey-BXVc-oGP.js";import"./Overflow-BFxt7NlK.js";import"./collapseMotion-DfnRZex1.js";import"./slide-C2OEWnC4.js";import"./OverrideContext-C_4H9tGA.js";import"./Dropdown-_Mjb8yOR.js";import"./useState-DGS1NOyn.js";import"./useRefs-Cdq8EWeF.js";import"./hasIn-DGFXWm7Y.js";import"./isSymbol-DAy2hlR5.js";import"./isMobile--2fOlCHx.js";import"./Row-BEbjCI_X.js";import"./responsiveObserve-DbUdURRx.js";import"./useFlexGapSupport-CzD0s7wN.js";import"./index-C14mc-46.js";import"./debounce-D9xTw4Sx.js";import"./Col-C-9-jORK.js";import"./index-BGn5-2TK.js";import"./Skeleton-DL5ebkDK.js";import"./index-La4F-U-s.js";import"./index-1xUFGcnI.js";import"./index-AVHrO1io.js";import"./pickAttrs-DgVG8oMj.js";import"./move-BioqdqDn.js";import"./ActionButton-wRdLFzBQ.js";var Vt=function(t,s){var a={};for(var l in t)Object.prototype.hasOwnProperty.call(t,l)&&s.indexOf(l)<0&&(a[l]=t[l]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,l=Object.getOwnPropertySymbols(t);i<l.length;i++)s.indexOf(l[i])<0&&Object.prototype.propertyIsEnumerable.call(t,l[i])&&(a[l[i]]=t[l[i]]);return a};const Jt={border:0,background:"transparent",padding:0,lineHeight:"inherit",display:"inline-block"},ot=Le({compatConfig:{MODE:3},name:"TransButton",inheritAttrs:!1,props:{noStyle:{type:Boolean,default:void 0},onClick:Function,disabled:{type:Boolean,default:void 0},autofocus:{type:Boolean,default:void 0}},setup(t,s){let{slots:a,emit:l,attrs:i,expose:d}=s;const c=kt(),p=g=>{const{keyCode:y}=g;y===Ce.ENTER&&g.preventDefault()},C=g=>{const{keyCode:y}=g;y===Ce.ENTER&&l("click",g)},N=g=>{l("click",g)},w=()=>{c.value&&c.value.focus()},f=()=>{c.value&&c.value.blur()};return xe(()=>{t.autofocus&&w()}),d({focus:w,blur:f}),()=>{var g;const{noStyle:y,disabled:I}=t,b=Vt(t,["noStyle","disabled"]);let h={};return y||(h=k({},Jt)),I&&(h.pointerEvents="none"),r("div",le(le(le({role:"button",tabindex:0,ref:c},b),i),{},{onClick:N,onKeydown:p,onKeyup:C,style:k(k({},h),i.style||{})}),[(g=a.default)===null||g===void 0?void 0:g.call(a)])}}}),Xt=(t,s,a,l)=>{const{sizeMarginHeadingVerticalEnd:i,fontWeightStrong:d}=l;return{marginBottom:i,color:a,fontWeight:d,fontSize:t,lineHeight:s}},qt=t=>{const s=[1,2,3,4,5],a={};return s.forEach(l=>{a[`
|
|
2
|
-
h${l}&,
|
|
3
|
-
div&-h${l},
|
|
4
|
-
div&-h${l} > textarea,
|
|
5
|
-
h${l}
|
|
6
|
-
`]=Xt(t[`fontSizeHeading${l}`],t[`lineHeightHeading${l}`],t.colorTextHeading,t)}),a},Qt=t=>{const{componentCls:s}=t;return{"a&, a":k(k({},pt(t)),{textDecoration:t.linkDecoration,"&:active, &:hover":{textDecoration:t.linkHoverDecoration},[`&[disabled], &${s}-disabled`]:{color:t.colorTextDisabled,cursor:"not-allowed","&:active, &:hover":{color:t.colorTextDisabled},"&:active":{pointerEvents:"none"}}})}},Gt=()=>({code:{margin:"0 0.2em",paddingInline:"0.4em",paddingBlock:"0.2em 0.1em",fontSize:"85%",background:"rgba(150, 150, 150, 0.1)",border:"1px solid rgba(100, 100, 100, 0.2)",borderRadius:3},kbd:{margin:"0 0.2em",paddingInline:"0.4em",paddingBlock:"0.15em 0.1em",fontSize:"90%",background:"rgba(150, 150, 150, 0.06)",border:"1px solid rgba(100, 100, 100, 0.2)",borderBottomWidth:2,borderRadius:3},mark:{padding:0,backgroundColor:Mt[2]},"u, ins":{textDecoration:"underline",textDecorationSkipInk:"auto"},"s, del":{textDecoration:"line-through"},strong:{fontWeight:600},"ul, ol":{marginInline:0,marginBlock:"0 1em",padding:0,li:{marginInline:"20px 0",marginBlock:0,paddingInline:"4px 0",paddingBlock:0}},ul:{listStyleType:"circle",ul:{listStyleType:"disc"}},ol:{listStyleType:"decimal"},"pre, blockquote":{margin:"1em 0"},pre:{padding:"0.4em 0.6em",whiteSpace:"pre-wrap",wordWrap:"break-word",background:"rgba(150, 150, 150, 0.1)",border:"1px solid rgba(100, 100, 100, 0.2)",borderRadius:3,code:{display:"inline",margin:0,padding:0,fontSize:"inherit",fontFamily:"inherit",background:"transparent",border:0}},blockquote:{paddingInline:"0.6em 0",paddingBlock:0,borderInlineStart:"4px solid rgba(100, 100, 100, 0.2)",opacity:.85}}),Zt=t=>{const{componentCls:s}=t,l=Kt(t).inputPaddingVertical+1;return{"&-edit-content":{position:"relative","div&":{insetInlineStart:-t.paddingSM,marginTop:-l,marginBottom:`calc(1em - ${l}px)`},[`${s}-edit-content-confirm`]:{position:"absolute",insetInlineEnd:t.marginXS+2,insetBlockEnd:t.marginXS,color:t.colorTextDescription,fontWeight:"normal",fontSize:t.fontSize,fontStyle:"normal",pointerEvents:"none"},textarea:{margin:"0!important",MozTransition:"none",height:"1em"}}}},Yt=t=>({"&-copy-success":{"\n &,\n &:hover,\n &:focus":{color:t.colorSuccess}}}),en=()=>({"\n a&-ellipsis,\n span&-ellipsis\n ":{display:"inline-block",maxWidth:"100%"},"&-single-line":{whiteSpace:"nowrap"},"&-ellipsis-single-line":{overflow:"hidden",textOverflow:"ellipsis","a&, span&":{verticalAlign:"bottom"}},"&-ellipsis-multiple-line":{display:"-webkit-box",overflow:"hidden",WebkitLineClamp:3,WebkitBoxOrient:"vertical"}}),tn=t=>{const{componentCls:s,sizeMarginHeadingVerticalStart:a}=t;return{[s]:k(k(k(k(k(k(k(k(k({color:t.colorText,wordBreak:"break-word",lineHeight:t.lineHeight,[`&${s}-secondary`]:{color:t.colorTextDescription},[`&${s}-success`]:{color:t.colorSuccess},[`&${s}-warning`]:{color:t.colorWarning},[`&${s}-danger`]:{color:t.colorError,"a&:active, a&:focus":{color:t.colorErrorActive},"a&:hover":{color:t.colorErrorHover}},[`&${s}-disabled`]:{color:t.colorTextDisabled,cursor:"not-allowed",userSelect:"none"},"\n div&,\n p\n ":{marginBottom:"1em"}},qt(t)),{[`
|
|
7
|
-
& + h1${s},
|
|
8
|
-
& + h2${s},
|
|
9
|
-
& + h3${s},
|
|
10
|
-
& + h4${s},
|
|
11
|
-
& + h5${s}
|
|
12
|
-
`]:{marginTop:a},"\n div,\n ul,\n li,\n p,\n h1,\n h2,\n h3,\n h4,\n h5":{"\n + h1,\n + h2,\n + h3,\n + h4,\n + h5\n ":{marginTop:a}}}),Gt()),Qt(t)),{[`
|
|
13
|
-
${s}-expand,
|
|
14
|
-
${s}-edit,
|
|
15
|
-
${s}-copy
|
|
16
|
-
`]:k(k({},pt(t)),{marginInlineStart:t.marginXXS})}),Zt(t)),Yt(t)),en()),{"&-rtl":{direction:"rtl"}})}},ft=At("Typography",t=>[tn(t)],{sizeMarginHeadingVerticalStart:"1.2em",sizeMarginHeadingVerticalEnd:"0.5em"}),nn=()=>({prefixCls:String,value:String,maxlength:Number,autoSize:{type:[Boolean,Object]},onSave:Function,onCancel:Function,onEnd:Function,onChange:Function,originContent:String,direction:String,component:String}),rn=Le({compatConfig:{MODE:3},name:"Editable",inheritAttrs:!1,props:nn(),setup(t,s){let{emit:a,slots:l,attrs:i}=s;const{prefixCls:d}=Et(t),c=se({current:t.value||"",lastKeyCode:void 0,inComposition:!1,cancelFlag:!1});Ze(()=>t.value,T=>{c.current=T});const p=K();xe(()=>{var T;if(p.value){const D=(T=p.value)===null||T===void 0?void 0:T.resizableTextArea,H=D?.textArea;H.focus();const{length:U}=H.value;H.setSelectionRange(U,U)}});function C(T){p.value=T}function N(T){let{target:{value:D}}=T;c.current=D.replace(/[\r\n]/g,""),a("change",c.current)}function w(){c.inComposition=!0}function f(){c.inComposition=!1}function g(T){const{keyCode:D}=T;D===Ce.ENTER&&T.preventDefault(),!c.inComposition&&(c.lastKeyCode=D)}function y(T){const{keyCode:D,ctrlKey:H,altKey:U,metaKey:V,shiftKey:M}=T;c.lastKeyCode===D&&!c.inComposition&&!H&&!U&&!V&&!M&&(D===Ce.ENTER?(b(),a("end")):D===Ce.ESC&&(c.current=t.originContent,a("cancel")))}function I(){b()}function b(){a("save",c.current.trim())}const[h,R]=ft(d);return()=>{const T=ut({[`${d.value}`]:!0,[`${d.value}-edit-content`]:!0,[`${d.value}-rtl`]:t.direction==="rtl",[t.component?`${d.value}-${t.component}`:""]:!0},i.class,R.value);return h(r("div",le(le({},i),{},{class:T}),[r(Se,{ref:C,maxlength:t.maxlength,value:c.current,onChange:N,onKeydown:g,onKeyup:y,onCompositionstart:w,onCompositionend:f,onBlur:I,rows:1,autoSize:t.autoSize===void 0||t.autoSize},null),l.enterIcon?l.enterIcon({className:`${t.prefixCls}-edit-content-confirm`}):r(Bt,{class:`${t.prefixCls}-edit-content-confirm`},null)]))}}}),ln=3,on=8;let J;const qe={padding:0,margin:0,display:"inline",lineHeight:"inherit"};function mt(t,s){t.setAttribute("aria-hidden","true");const a=window.getComputedStyle(s),l=Ht(a);t.setAttribute("style",l),t.style.position="fixed",t.style.left="0",t.style.height="auto",t.style.minHeight="auto",t.style.maxHeight="auto",t.style.paddingTop="0",t.style.paddingBottom="0",t.style.borderTopWidth="0",t.style.borderBottomWidth="0",t.style.top="-999999px",t.style.zIndex="-1000",t.style.textOverflow="clip",t.style.whiteSpace="normal",t.style.webkitLineClamp="none"}function an(t){const s=document.createElement("div");mt(s,t),s.appendChild(document.createTextNode("text")),document.body.appendChild(s);const a=s.getBoundingClientRect().height;return document.body.removeChild(s),a}const sn=((t,s,a,l,i)=>{J||(J=document.createElement("div"),J.setAttribute("aria-hidden","true"),document.body.appendChild(J));const{rows:d,suffix:c=""}=s,p=an(t),C=Math.round(p*d*100)/100;mt(J,t);const N=It({render(){return r("div",{style:qe},[r("span",{style:qe},[a,c]),r("span",{style:qe},[l])])}});N.mount(J);function w(){return Math.round(J.getBoundingClientRect().height*100)/100-.1<=C}if(w())return N.unmount(),{content:a,text:J.innerHTML,ellipsis:!1};const f=Array.prototype.slice.apply(J.childNodes[0].childNodes[0].cloneNode(!0).childNodes).filter(D=>{let{nodeType:H,data:U}=D;return H!==on&&U!==""}),g=Array.prototype.slice.apply(J.childNodes[0].childNodes[1].cloneNode(!0).childNodes);N.unmount();const y=[];J.innerHTML="";const I=document.createElement("span");J.appendChild(I);const b=document.createTextNode(i+c);I.appendChild(b),g.forEach(D=>{J.appendChild(D)});function h(D){I.insertBefore(D,b)}function R(D,H){let U=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,V=arguments.length>3&&arguments[3]!==void 0?arguments[3]:H.length,M=arguments.length>4&&arguments[4]!==void 0?arguments[4]:0;const G=Math.floor((U+V)/2),ve=H.slice(0,G);if(D.textContent=ve,U>=V-1)for(let ee=V;ee>=U;ee-=1){const oe=H.slice(0,ee);if(D.textContent=oe,w()||!oe)return ee===H.length?{finished:!1,vNode:H}:{finished:!0,vNode:oe}}return w()?R(D,H,G,V,G):R(D,H,U,G,M)}function T(D){if(D.nodeType===ln){const U=D.textContent||"",V=document.createTextNode(U);return h(V),R(V,U)}return{finished:!1,vNode:null}}return f.some(D=>{const{finished:H,vNode:U}=T(D);return U&&y.push(U),H}),{content:y,text:J.innerHTML,ellipsis:!0}});var un=function(t,s){var a={};for(var l in t)Object.prototype.hasOwnProperty.call(t,l)&&s.indexOf(l)<0&&(a[l]=t[l]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,l=Object.getOwnPropertySymbols(t);i<l.length;i++)s.indexOf(l[i])<0&&Object.prototype.propertyIsEnumerable.call(t,l[i])&&(a[l[i]]=t[l[i]]);return a};const dn=()=>({prefixCls:String,direction:String,component:String}),W=Le({name:"ATypography",inheritAttrs:!1,props:dn(),setup(t,s){let{slots:a,attrs:l}=s;const{prefixCls:i,direction:d}=dt("typography",t),[c,p]=ft(i);return()=>{var C;const N=k(k({},t),l),{prefixCls:w,direction:f,component:g="article"}=N,y=un(N,["prefixCls","direction","component"]);return c(r(g,le(le({},y),{},{class:ut(i.value,{[`${i.value}-rtl`]:d.value==="rtl"},l.class,p.value)}),{default:()=>[(C=a.default)===null||C===void 0?void 0:C.call(a)]}))}}}),cn=()=>{const t=document.getSelection();if(!t.rangeCount)return function(){};let s=document.activeElement;const a=[];for(let l=0;l<t.rangeCount;l++)a.push(t.getRangeAt(l));switch(s.tagName.toUpperCase()){case"INPUT":case"TEXTAREA":s.blur();break;default:s=null;break}return t.removeAllRanges(),function(){t.type==="Caret"&&t.removeAllRanges(),t.rangeCount||a.forEach(function(l){t.addRange(l)}),s&&s.focus()}},at={"text/plain":"Text","text/html":"Url",default:"Text"},pn="Copy to clipboard: #{key}, Enter";function fn(t){const s=(/mac os x/i.test(navigator.userAgent)?"⌘":"Ctrl")+"+C";return t.replace(/#{\s*key\s*}/g,s)}function mn(t,s){let a,l,i,d,c,p=!1;s||(s={});const C=s.debug||!1;try{if(l=cn(),i=document.createRange(),d=document.getSelection(),c=document.createElement("span"),c.textContent=t,c.style.all="unset",c.style.position="fixed",c.style.top=0,c.style.clip="rect(0, 0, 0, 0)",c.style.whiteSpace="pre",c.style.webkitUserSelect="text",c.style.MozUserSelect="text",c.style.msUserSelect="text",c.style.userSelect="text",c.addEventListener("copy",function(w){if(w.stopPropagation(),s.format)if(w.preventDefault(),typeof w.clipboardData>"u"){C&&console.warn("unable to use e.clipboardData"),C&&console.warn("trying IE specific stuff"),window.clipboardData.clearData();const f=at[s.format]||at.default;window.clipboardData.setData(f,t)}else w.clipboardData.clearData(),w.clipboardData.setData(s.format,t);s.onCopy&&(w.preventDefault(),s.onCopy(w.clipboardData))}),document.body.appendChild(c),i.selectNodeContents(c),d.addRange(i),!document.execCommand("copy"))throw new Error("copy command was unsuccessful");p=!0}catch(N){C&&console.error("unable to copy using execCommand: ",N),C&&console.warn("trying IE specific stuff");try{window.clipboardData.setData(s.format||"text",t),s.onCopy&&s.onCopy(window.clipboardData),p=!0}catch(w){C&&console.error("unable to copy using clipboardData: ",w),C&&console.error("falling back to prompt"),a=fn("message"in s?s.message:pn),window.prompt(a,t)}}finally{d&&(typeof d.removeRange=="function"?d.removeRange(i):d.removeAllRanges()),c&&document.body.removeChild(c),l()}return p}var yn=function(t,s){var a={};for(var l in t)Object.prototype.hasOwnProperty.call(t,l)&&s.indexOf(l)<0&&(a[l]=t[l]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,l=Object.getOwnPropertySymbols(t);i<l.length;i++)s.indexOf(l[i])<0&&Object.prototype.propertyIsEnumerable.call(t,l[i])&&(a[l[i]]=t[l[i]]);return a};const vn=ct("webkitLineClamp"),gn=ct("textOverflow"),it="...",Ie=()=>({editable:{type:[Boolean,Object],default:void 0},copyable:{type:[Boolean,Object],default:void 0},prefixCls:String,component:String,type:String,disabled:{type:Boolean,default:void 0},ellipsis:{type:[Boolean,Object],default:void 0},code:{type:Boolean,default:void 0},mark:{type:Boolean,default:void 0},underline:{type:Boolean,default:void 0},delete:{type:Boolean,default:void 0},strong:{type:Boolean,default:void 0},keyboard:{type:Boolean,default:void 0},content:String,"onUpdate:content":Function}),Te=Le({compatConfig:{MODE:3},name:"TypographyBase",inheritAttrs:!1,props:Ie(),setup(t,s){let{slots:a,attrs:l,emit:i}=s;const{prefixCls:d,direction:c}=dt("typography",t),p=se({copied:!1,ellipsisText:"",ellipsisContent:null,isEllipsis:!1,expanded:!1,clientRendered:!1,expandStr:"",copyStr:"",copiedStr:"",editStr:"",copyId:void 0,rafId:void 0,prevProps:void 0,originContent:""}),C=K(),N=K(),w=we(()=>{const v=t.ellipsis;return v?k({rows:1,expandable:!1},typeof v=="object"?v:null):{}});xe(()=>{p.clientRendered=!0,G()}),Tt(()=>{clearTimeout(p.copyId),Ve.cancel(p.rafId)}),Ze([()=>w.value.rows,()=>t.content],()=>{tt(()=>{V()})},{flush:"post",deep:!0}),Dt(()=>{t.content===void 0&&(nt(!t.editable),nt(!t.ellipsis))});function f(){var v;return t.ellipsis||t.editable?t.content:(v=Fe(C.value))===null||v===void 0?void 0:v.innerText}function g(v){const{onExpand:E}=w.value;p.expanded=!0,E?.(v)}function y(v){v.preventDefault(),p.originContent=t.content,U(!0)}function I(v){b(v),U(!1)}function b(v){const{onChange:E}=T.value;v!==t.content&&(i("update:content",v),E?.(v))}function h(){var v,E;(E=(v=T.value).onCancel)===null||E===void 0||E.call(v),U(!1)}function R(v){v.preventDefault(),v.stopPropagation();const{copyable:E}=t,$=k({},typeof E=="object"?E:null);$.text===void 0&&($.text=f()),mn($.text||""),p.copied=!0,tt(()=>{$.onCopy&&$.onCopy(v),p.copyId=setTimeout(()=>{p.copied=!1},3e3)})}const T=we(()=>{const v=t.editable;return v?k({},typeof v=="object"?v:null):{editing:!1}}),[D,H]=jt(!1,{value:we(()=>T.value.editing)});function U(v){const{onStart:E}=T.value;v&&E&&E(),H(v)}Ze(D,v=>{var E;v||(E=N.value)===null||E===void 0||E.focus()},{flush:"post"});function V(v){if(v){const{width:E,height:$}=v;if(!E||!$)return}Ve.cancel(p.rafId),p.rafId=Ve(()=>{G()})}const M=we(()=>{const{rows:v,expandable:E,suffix:$,onEllipsis:m,tooltip:n}=w.value;return $||n||t.editable||t.copyable||E||m?!1:v===1?gn:vn}),G=()=>{const{ellipsisText:v,isEllipsis:E}=p,{rows:$,suffix:m,onEllipsis:n}=w.value;if(!$||$<0||!Fe(C.value)||p.expanded||t.content===void 0||M.value)return;const{content:u,text:F,ellipsis:ae}=sn(Fe(C.value),{rows:$,suffix:m},t.content,$e(!0),it);(v!==F||p.isEllipsis!==ae)&&(p.ellipsisText=F,p.ellipsisContent=u,p.isEllipsis=ae,E!==ae&&n&&n(ae))};function ve(v,E){let{mark:$,code:m,underline:n,delete:u,strong:F,keyboard:ae}=v,ge=E;function te(_e,Z){if(!_e)return;const Ne=(function(){return ge})();ge=r(Z,null,{default:()=>[Ne]})}return te(F,"strong"),te(n,"u"),te(u,"del"),te(m,"code"),te($,"mark"),te(ae,"kbd"),ge}function ee(v){const{expandable:E,symbol:$}=w.value;if(!E||!v&&(p.expanded||!p.isEllipsis))return null;const m=(a.ellipsisSymbol?a.ellipsisSymbol():$)||p.expandStr;return r("a",{key:"expand",class:`${d.value}-expand`,onClick:g,"aria-label":p.expandStr},[m])}function oe(){if(!t.editable)return;const{tooltip:v,triggerType:E=["icon"]}=t.editable,$=a.editableIcon?a.editableIcon():r(Pt,{role:"button"},null),m=a.editableTooltip?a.editableTooltip():p.editStr,n=typeof m=="string"?m:"";return E.indexOf("icon")!==-1?r(Je,{key:"edit",title:v===!1?"":m},{default:()=>[r(ot,{ref:N,class:`${d.value}-edit`,onClick:y,"aria-label":n},{default:()=>[$]})]}):null}function x(){if(!t.copyable)return;const{tooltip:v}=t.copyable,E=p.copied?p.copiedStr:p.copyStr,$=a.copyableTooltip?a.copyableTooltip({copied:p.copied}):E,m=typeof $=="string"?$:"",n=p.copied?r(zt,null,null):r(Ut,null,null),u=a.copyableIcon?a.copyableIcon({copied:!!p.copied}):n;return r(Je,{key:"copy",title:v===!1?"":$},{default:()=>[r(ot,{class:[`${d.value}-copy`,{[`${d.value}-copy-success`]:p.copied}],onClick:R,"aria-label":m},{default:()=>[u]})]})}function je(){const{class:v,style:E}=l,{maxlength:$,autoSize:m,onEnd:n}=T.value;return r(rn,{class:v,style:E,prefixCls:d.value,value:t.content,originContent:p.originContent,maxlength:$,autoSize:m,onSave:I,onChange:b,onCancel:h,onEnd:n,direction:c.value,component:t.component},{enterIcon:a.editableEnterIcon})}function $e(v){return[ee(v),oe(),x()].filter(E=>E)}return()=>{var v;const{triggerType:E=["icon"]}=T.value,$=t.ellipsis||t.editable?t.content!==void 0?t.content:(v=a.default)===null||v===void 0?void 0:v.call(a):a.default?a.default():t.content;return D.value?je():r($t,{componentName:"Text",children:m=>{const n=k(k({},t),l),{type:u,disabled:F,content:ae,class:ge,style:te}=n,_e=yn(n,["type","disabled","content","class","style"]),{rows:Z,suffix:Ne,tooltip:We}=w.value,{edit:yt,copy:vt,copied:gt,expand:bt}=m;p.editStr=yt,p.copyStr=vt,p.copiedStr=gt,p.expandStr=bt;const ht=ye(_e,["prefixCls","editable","copyable","ellipsis","mark","code","delete","underline","strong","keyboard","onUpdate:content"]),Me=M.value,wt=Z===1&&Me,Ye=Z&&Z>1&&Me;let de=$,St;if(Z&&p.isEllipsis&&!p.expanded&&!Me){const{title:et}=_e;let ce=et||"";!et&&(typeof $=="string"||typeof $=="number")&&(ce=String($)),ce=ce?.slice(String(p.ellipsisContent||"").length),de=r(ue,null,[Ot(p.ellipsisContent),r("span",{title:ce,"aria-hidden":"true"},[it]),Ne])}else de=r(ue,null,[$,Ne]);de=ve(t,de);const Ct=We&&Z&&p.isEllipsis&&!p.expanded&&!Me,xt=a.ellipsisTooltip?a.ellipsisTooltip():We;return r(Lt,{onResize:V,disabled:!Z},{default:()=>[r(W,le({ref:C,class:[{[`${d.value}-${u}`]:u,[`${d.value}-disabled`]:F,[`${d.value}-ellipsis`]:Z,[`${d.value}-single-line`]:Z===1&&!p.isEllipsis,[`${d.value}-ellipsis-single-line`]:wt,[`${d.value}-ellipsis-multiple-line`]:Ye},ge],style:k(k({},te),{WebkitLineClamp:Ye?Z:void 0}),"aria-label":St,direction:c.value,onClick:E.indexOf("text")!==-1?y:()=>{}},ht),{default:()=>[Ct?r(Je,{title:We===!0?$:xt},{default:()=>[r("span",null,[de])]}):de,$e()]})]})}},null)}}});var bn=function(t,s){var a={};for(var l in t)Object.prototype.hasOwnProperty.call(t,l)&&s.indexOf(l)<0&&(a[l]=t[l]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,l=Object.getOwnPropertySymbols(t);i<l.length;i++)s.indexOf(l[i])<0&&Object.prototype.propertyIsEnumerable.call(t,l[i])&&(a[l[i]]=t[l[i]]);return a};const hn=()=>ye(k(k({},Ie()),{ellipsis:{type:Boolean,default:void 0}}),["component"]),De=(t,s)=>{let{slots:a,attrs:l}=s;const i=k(k({},t),l),{ellipsis:d,rel:c}=i,p=bn(i,["ellipsis","rel"]),C=k(k({},p),{rel:c===void 0&&p.target==="_blank"?"noopener noreferrer":c,ellipsis:!!d,component:"a"});return delete C.navigate,r(Te,C,a)};De.displayName="ATypographyLink";De.inheritAttrs=!1;De.props=hn();const wn=()=>ye(Ie(),["component"]),Oe=(t,s)=>{let{slots:a,attrs:l}=s;const i=k(k(k({},t),{component:"div"}),l);return r(Te,i,a)};Oe.displayName="ATypographyParagraph";Oe.inheritAttrs=!1;Oe.props=wn();const Sn=()=>k(k({},ye(Ie(),["component"])),{ellipsis:{type:[Boolean,Object],default:void 0}}),Re=(t,s)=>{let{slots:a,attrs:l}=s;const{ellipsis:i}=t,d=k(k(k({},t),{ellipsis:i&&typeof i=="object"?ye(i,["expandable","rows"]):i,component:"span"}),l);return r(Te,d,a)};Re.displayName="ATypographyText";Re.inheritAttrs=!1;Re.props=Sn();var Cn=function(t,s){var a={};for(var l in t)Object.prototype.hasOwnProperty.call(t,l)&&s.indexOf(l)<0&&(a[l]=t[l]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var i=0,l=Object.getOwnPropertySymbols(t);i<l.length;i++)s.indexOf(l[i])<0&&Object.prototype.propertyIsEnumerable.call(t,l[i])&&(a[l[i]]=t[l[i]]);return a};const xn=_t(1,2,3,4,5),kn=()=>k(k({},ye(Ie(),["component","strong"])),{level:Number}),Ae=(t,s)=>{let{slots:a,attrs:l}=s;const{level:i=1}=t,d=Cn(t,["level"]);let c;xn.includes(i)?c=`h${i}`:c="h1";const p=k(k(k({},d),{component:c}),l);return r(Te,p,a)};Ae.displayName="ATypographyTitle";Ae.inheritAttrs=!1;Ae.props=kn();W.Text=Re;W.Title=Ae;W.Paragraph=Oe;W.Link=De;W.Base=Te;W.install=function(t){return t.component(W.name,W),t.component(W.Text.displayName,Re),t.component(W.Title.displayName,Ae),t.component(W.Paragraph.displayName,Oe),t.component(W.Link.displayName,De),t};const En=12e3;function In(t){if(t&&t.ok===!1)throw new Error(t.error||"mtc.envelope.get handler failed");return t?.result??t}function Tn(){const t=ke(),{isEmbedded:s}=Ee(),a=K({phase:"idle"});async function l(d,c){if(!d||!c){a.value={phase:"error",message:"communityId / messageId 必填"};return}if(!s){a.value={phase:"error",message:"此功能仅在嵌入式 web-shell 中可用"};return}a.value={phase:"loading"};try{const p=await t.sendRaw({type:"mtc.envelope.get",communityId:d,messageId:c},En),C=In(p);if(!C||C.success!==!0){a.value={phase:"not-found",reason:C?.error};return}a.value={phase:"found",result:{origin:C.origin||"local",envelope:C.envelope||{},landmark:C.landmark??null,treeHeadId:C.treeHeadId||"",namespace:C.namespace,batchId:C.batchId,leafIndex:C.leafIndex,staging:C.staging}}}catch(p){a.value={phase:"error",message:p?.message||String(p)}}}function i(){a.value={phase:"idle"}}return{state:a,fetch:l,reset:i,isEmbedded:s}}const Pe=6e4;function ze(t){if(t&&t.ok===!1)throw new Error(t.error||"archive handler failed");return t?.result??t}function Dn(){const t=ke(),{isEmbedded:s}=Ee(),a=K([]),l=K(null),i=K(!1),d=K(""),c=K(null);function p(g){return d.value=g?.message||String(g),null}async function C(g,y){if(d.value="",!g)return p(new Error("communityId 必填"));i.value=!0;try{const I=await t.sendRaw({type:"mtc.archive.list",communityId:g,providerSpec:y},Pe),b=ze(I);return!b||b.success!==!0?p(new Error(b?.error||"列出归档失败")):(a.value=Array.isArray(b.archives)?b.archives:[],a.value)}catch(I){return p(I)}finally{i.value=!1}}async function N(g,y,I={}){if(d.value="",!g)return p(new Error("communityId 必填"));i.value=!0;try{const b=await t.sendRaw({type:"mtc.archive.push",communityId:g,providerSpec:y,packOpts:I},Pe),h=ze(b);return!h||h.success!==!0?p(new Error(h?.error||"归档推送失败")):(l.value=h.result,h.result)}catch(b){return p(b)}finally{i.value=!1}}async function w(g,y,I){if(d.value="",!g||!y)return p(new Error("communityId + archiveName 必填"));i.value=!0;try{const b=await t.sendRaw({type:"mtc.archive.restore",communityId:g,archiveName:y,providerSpec:I},Pe),h=ze(b);return!h||h.success!==!0?p(new Error(h?.error||"归档恢复失败")):(l.value=h.result,h.result)}catch(b){return p(b)}finally{i.value=!1}}async function f(){d.value="";try{const g=await t.sendRaw({type:"mtc.archive.has-stored-webdav-credentials"},Pe),y=ze(g);return!y||y.success!==!0?(c.value=!1,!1):(c.value=!!y.hasCredentials,c.value)}catch(g){return c.value=!1,p(g)}}return{archives:a,lastResult:l,loading:i,errorMessage:d,isEmbedded:s,hasStoredWebdavCredentials:c,listArchives:C,pushArchive:N,restoreArchive:w,checkStoredWebdavCredentials:f}}const fe=12e3;function me(t){if(t&&t.ok===!1)throw new Error(t.error||"governance-mofn handler failed");return t?.result??t}function st(t){if(typeof Buffer<"u"&&Buffer.isBuffer(t))return t.toString("base64");if(t instanceof Uint8Array){let s="";for(let a=0;a<t.length;a++)s+=String.fromCharCode(t[a]);return globalThis.btoa(s)}if(typeof t=="string")return t;throw new TypeError("signerKeys.{secretKey,publicKey} must be Buffer / Uint8Array / base64 string")}function On(){const t=ke(),{isEmbedded:s}=Ee(),a=K([]),l=K(null),i=K(!1),d=K("");function c(y){return d.value=y?.message||String(y),null}async function p(y){if(d.value="",!y)return c(new Error("communityId 必填"));i.value=!0;try{const I=await t.sendRaw({type:"mtc.governance-mofn.list",communityId:y},fe),b=me(I);return!b||b.success!==!0?c(new Error(b?.error||"提案列表读取失败")):(a.value=Array.isArray(b.proposals)?b.proposals:[],a.value)}catch(I){return c(I)}finally{i.value=!1}}async function C({communityId:y,proposalId:I,payload:b,members:h,threshold:R}){d.value="",i.value=!0;try{const T=await t.sendRaw({type:"mtc.governance-mofn.create",communityId:y,proposalId:I,payload:b,members:h,threshold:R},fe),D=me(T);return!D||D.success!==!0?c(new Error(D?.error||"创建提案失败")):D.proposal}catch(T){return c(T)}finally{i.value=!1}}async function N(y,I,b){if(d.value="",!b||!b.did)return c(new Error("signerKeys 必须含 did/secretKey/publicKey"));i.value=!0;try{const h={did:b.did,secretKey:st(b.secretKey),publicKey:st(b.publicKey)},R=await t.sendRaw({type:"mtc.governance-mofn.sign",communityId:y,proposalId:I,signerKeys:h},fe),T=me(R);return!T||T.success!==!0?c(new Error(T?.error||"签名提交失败")):(l.value=T.status,T.status)}catch(h){return c(h)}finally{i.value=!1}}async function w(y,I){if(d.value="",!y||!I)return c(new Error("communityId + proposalId 必填"));i.value=!0;try{const b=await t.sendRaw({type:"mtc.governance-mofn.sign-as-self",communityId:y,proposalId:I},fe),h=me(b);return!h||h.success!==!0?c(new Error(h?.error||"代签失败")):(l.value=h.status,{...h.status,signerDID:h.signerDID})}catch(b){return c(b)}finally{i.value=!1}}async function f(y,I){d.value="",i.value=!0;try{const b=await t.sendRaw({type:"mtc.governance-mofn.status",communityId:y,proposalId:I},fe),h=me(b);return!h||h.success!==!0?c(new Error(h?.error||"状态读取失败")):(l.value=h.status,h.status)}catch(b){return c(b)}finally{i.value=!1}}async function g(y,I){d.value="",i.value=!0;try{const b=await t.sendRaw({type:"mtc.governance-mofn.finalize",communityId:y,proposalId:I},fe),h=me(b);return!h||h.success!==!0?c(new Error(h?.error||"提案 finalize 失败")):h.result}catch(b){return c(b)}finally{i.value=!1}}return{proposals:a,currentStatus:l,loading:i,errorMessage:d,isEmbedded:s,listProposals:p,createProposal:C,addSignature:N,signAsSelf:w,getStatus:f,finalize:g}}const Ue=8e3;function Ke(t){if(t&&t.ok===!1)throw new Error(t.error||"cross-fed-trust handler failed");return t?.result??t}function Rn(){const t=ke(),{isEmbedded:s}=Ee(),a=K([]),l=K([]),i=K(!1),d=K("");function c(f){return d.value=f?.message||String(f),null}async function p(f){if(d.value="",!f)return c(new Error("localCommunityId 必填"));i.value=!0;try{const g=await t.sendRaw({type:"mtc.cross-fed-trust.list",localCommunityId:f},Ue),y=Ke(g);return!y||y.success!==!0?c(new Error(y?.error||"信任列表读取失败")):(a.value=Array.isArray(y.records)?y.records:[],a.value)}catch(g){return c(g)}finally{i.value=!1}}async function C({localCommunityId:f,remoteCommunityId:g,remoteMembers:y,expiresAt:I,note:b}){d.value="",i.value=!0;try{const h=await t.sendRaw({type:"mtc.cross-fed-trust.establish",localCommunityId:f,remoteCommunityId:g,remoteMembers:y,expiresAt:I||void 0,note:b||void 0},Ue),R=Ke(h);return!R||R.success!==!0?c(new Error(R?.error||"建立信任失败")):R.record}catch(h){return c(h)}finally{i.value=!1}}async function N(f,g){d.value="",i.value=!0;try{const y=await t.sendRaw({type:"mtc.cross-fed-trust.revoke",localCommunityId:f,remoteCommunityId:g},Ue),I=Ke(y);return!I||I.success!==!0?c(new Error(I?.error||"撤销信任失败")):I.removed}catch(y){return c(y)}finally{i.value=!1}}async function w(f){if(d.value="",!f)return c(new Error("localCommunityId 必填"));i.value=!0;try{const g=await t.sendRaw({type:"mtc.cross-fed-trust.get-trusted-dids",localCommunityId:f},Ue),y=Ke(g);return!y||y.success!==!0?c(new Error(y?.error||"DID 列表读取失败")):(l.value=Array.isArray(y.dids)?y.dids:[],l.value)}catch(g){return c(g)}finally{i.value=!1}}return{records:a,trustedDids:l,loading:i,errorMessage:d,isEmbedded:s,listTrust:p,establishTrust:C,revokeTrust:N,getTrustedDids:w}}const Qe=6e4;function Ge(t){if(t&&t.ok===!1)throw new Error(t.error||"auto-archive handler failed");return t?.result??t}function An(){const t=ke(),{isEmbedded:s}=Ee(),a=K(null),l=K(null),i=K(!1),d=K("");function c(w){return d.value=w?.message||String(w),null}async function p(){d.value="",i.value=!0;try{const w=await t.sendRaw({type:"mtc.auto-archive.config-get"},Qe),f=Ge(w);return!f||f.success!==!0?c(new Error(f?.error||"config-get failed")):(a.value=f.config,f.config)}catch(w){return c(w)}finally{i.value=!1}}async function C(w){if(d.value="",!w||typeof w!="object")return c(new Error("patch 必须是对象"));i.value=!0;try{const f=await t.sendRaw({type:"mtc.auto-archive.config-set",patch:w},Qe),g=Ge(f);return!g||g.success!==!0?c(new Error(g?.error||"config-set failed")):(a.value=g.config,g.config)}catch(f){return c(f)}finally{i.value=!1}}async function N(){d.value="",i.value=!0;try{const w=await t.sendRaw({type:"mtc.auto-archive.run-now"},Qe*5),f=Ge(w);return!f||f.success!==!0?c(new Error(f?.error||"run-now failed")):(l.value=f.result,await p(),f.result)}catch(w){return c(w)}finally{i.value=!1}}return{config:a,lastRunResult:l,loading:i,errorMessage:d,isEmbedded:s,getConfig:p,setConfig:C,runNow:N}}const $n={class:"mtc-audit-page"},_n={style:{"margin-top":"16px"}},Nn={key:0,style:{"margin-top":"8px"}},Mn={style:{"font-size":"12px","max-height":"240px",overflow:"auto"}},Bn={style:{"font-size":"12px","max-height":"240px",overflow:"auto"}},Pn={style:{"font-size":"12px","max-height":"200px",overflow:"auto"}},zn={style:{"font-size":"12px","max-height":"240px",overflow:"auto"}},Un={key:1},Kn={style:{"font-size":"12px","max-height":"200px",overflow:"auto"}},He=36e5,Hn={__name:"MtcAudit",setup(t){const s=Tn(),a=Dn(),l=On(),i=Rn(),d=An(),c=K("envelope"),p=se({communityId:"",messageId:""});async function C(){await s.fetch(p.communityId,p.messageId)}const N=K(!1);function w(m){navigator.clipboard&&(navigator.clipboard.writeText(JSON.stringify(m,null,2)),X.success("已复制到剪贴板"))}const f=se({communityId:"",providerKind:"filesystem",rootDir:"",useStoredCredentials:!0,url:"",username:"",password:"",remotePath:"",sinceBatchId:"",archiveName:""});async function g(){a.isEmbedded&&await a.checkStoredWebdavCredentials()}xe(g);const y=we(()=>f.providerKind==="filesystem"?{kind:"filesystem",rootDir:f.rootDir}:f.providerKind==="webdav"?f.useStoredCredentials?{kind:"webdav",useStoredCredentials:!0}:{kind:"webdav",url:f.url,username:f.username,password:f.password,remotePath:f.remotePath}:null);async function I(){await a.listArchives(f.communityId,y.value)}async function b(){const m={};f.sinceBatchId&&(m.sinceBatchId=f.sinceBatchId);const n=await a.pushArchive(f.communityId,y.value,m);n&&X.success(`归档已推送:${n.name} (${n.bytes} bytes)`)}async function h(){const m=await a.restoreArchive(f.communityId,f.archiveName,y.value);m&&X.success(`恢复完成:${m.restored} 新文件 / ${m.skipped} 跳过`)}const R=se({communityId:"",proposalId:"",payload:'{ "kind": "rule_change", "body": "" }',members:"",threshold:2});async function T(){await l.listProposals(R.communityId)}async function D(){let m;try{m=JSON.parse(R.payload)}catch(F){X.error("payload 必须是合法 JSON: "+F.message);return}const n=R.members.split(/\s+/).map(F=>F.trim()).filter(Boolean),u=await l.createProposal({communityId:R.communityId,proposalId:R.proposalId,payload:m,members:n,threshold:R.threshold});u&&(X.success(`提案已创建:${u.proposalId} (${u.threshold}-of-${u.members.length})`),await T())}async function H(m){const n=await l.finalize(R.communityId,m);n&&(X.success(`提案已 finalize: ${n.treeHeadId.slice(0,24)}...`),await T())}async function U(m){await l.getStatus(R.communityId,m)}async function V(m){const n=await l.signAsSelf(R.communityId,m);n&&(X.success(`已用本人身份 (${(n.signerDID||"").slice(-8)}) 代签 — 已收集 ${n.collected}/${n.threshold}`),await T())}const M=se({localCommunityId:"",remoteCommunityId:"",remoteMembers:"",expiresAt:"",note:""});async function G(){await i.listTrust(M.localCommunityId)}async function ve(){const m=M.remoteMembers.split(/\s+/).map(u=>u.trim()).filter(Boolean);await i.establishTrust({localCommunityId:M.localCommunityId,remoteCommunityId:M.remoteCommunityId,remoteMembers:m,expiresAt:M.expiresAt,note:M.note})&&(X.success(`信任已建立: ${M.localCommunityId} ↔ ${M.remoteCommunityId}`),await G())}async function ee(m){Ft.confirm({title:"确认撤销跨联邦信任?",content:`${M.localCommunityId} → ${m} 将不再被 inbound landmark 校验接受`,onOk:async()=>{await i.revokeTrust(M.localCommunityId,m)&&(X.success("已撤销"),await G())}})}async function oe(){await i.getTrustedDids(M.localCommunityId)}const x=se({enabled:!1,intervalHours:24,providerKind:"webdav",rootDir:"",useStoredCredentials:!0,url:"",username:"",password:"",remotePath:"",communityIdsRaw:""});function je(){const m=Number(x.intervalHours);return Number.isFinite(m)&&m>=5/60?Math.round(m*He):He*24}function $e(){return x.providerKind==="filesystem"?{kind:"filesystem",rootDir:x.rootDir}:x.useStoredCredentials?{kind:"webdav",useStoredCredentials:!0}:{kind:"webdav",url:x.url,username:x.username,password:x.password,remotePath:x.remotePath}}async function v(){const m=await d.getConfig();m&&(x.enabled=!!m.enabled,x.intervalHours=Math.round((m.intervalMs||He*24)/He),m.providerSpec&&(x.providerKind=m.providerSpec.kind,m.providerSpec.kind==="filesystem"?x.rootDir=m.providerSpec.rootDir||"":m.providerSpec.kind==="webdav"&&(x.useStoredCredentials=!!m.providerSpec.useStoredCredentials,m.providerSpec.useStoredCredentials||(x.url=m.providerSpec.url||"",x.username=m.providerSpec.username||"",x.remotePath=m.providerSpec.remotePath||""))),x.communityIdsRaw=(m.communityIds||[]).join(`
|
|
17
|
-
`))}async function E(){const m=x.communityIdsRaw.split(/\s+/).map(u=>u.trim()).filter(Boolean);await d.setConfig({enabled:x.enabled,intervalMs:je(),providerSpec:$e(),communityIds:m})&&X.success(x.enabled?"已保存并启动定时归档":"已保存(定时归档关闭)")}async function $(){const m=await d.runNow();if(m)if(m.status==="ok")X.success(`归档完成:${m.summary?.totalArchives||0} 包 / ${m.summary?.totalBytes||0} bytes`);else if(m.status==="partial"){const n=Object.entries(m.summary?.perCommunity||{}).filter(([,u])=>!u.ok).length;X.warning(`部分成功:${m.summary?.totalArchives||0} 包成功,${n} 个 community 失败`)}else X.error(`归档失败:${m.error||"未知错误"}`)}return xe(async()=>{d.isEmbedded&&await v()}),(m,n)=>(A(),ne("div",$n,[r(e(W).Title,{level:3},{default:o(()=>[...n[38]||(n[38]=[S("🔐 MTC 审计套件 (B4)",-1)])]),_:1}),r(e(W).Paragraph,{type:"secondary"},{default:o(()=>[...n[39]||(n[39]=[S(" Merkle envelope 查询 / 外部归档 / M-of-N 治理 / 跨联邦信任锚 — 全套对外暴露。 默认壳走 WS topic ",-1),j("code",null,"mtc.*",-1),S(",主进程未托管对应 manager 时按钮会返回错误信息。 ",-1)])]),_:1}),e(s).isEmbedded?P("",!0):(A(),B(e(q),{key:0,type:"warning","show-icon":"",message:"非嵌入式 web-shell",description:"此页所有功能依赖桌面主进程的 channelEventBatcher / channelEnvelopeArchiver / governanceMultiSig / crossFedTrust 实例 — 请用桌面 Web Shell 访问,纯浏览器模式下按钮会一律失败。",style:{"margin-bottom":"16px"}})),r(e(Wt),{"active-key":c.value,"onUpdate:activeKey":n[37]||(n[37]=u=>c.value=u)},{default:o(()=>[r(e(be),{key:"envelope",tab:"Envelope 查询"},{default:o(()=>[r(e(he),{layout:"inline",onSubmit:Rt(C,["prevent"])},{default:o(()=>[r(e(O),{label:"communityId"},{default:o(()=>[r(e(L),{value:p.communityId,"onUpdate:value":n[0]||(n[0]=u=>p.communityId=u),placeholder:"comm-X","allow-clear":""},null,8,["value"])]),_:1}),r(e(O),{label:"messageId"},{default:o(()=>[r(e(L),{value:p.messageId,"onUpdate:value":n[1]||(n[1]=u=>p.messageId=u),placeholder:"msg-X","allow-clear":""},null,8,["value"])]),_:1}),r(e(O),null,{default:o(()=>[r(e(z),{type:"primary","html-type":"submit",loading:e(s).state.value.phase==="loading",disabled:!e(s).isEmbedded},{default:o(()=>[...n[40]||(n[40]=[S(" 查询 ",-1)])]),_:1},8,["loading","disabled"])]),_:1})]),_:1}),j("div",_n,[e(s).state.value.phase==="error"?(A(),B(e(q),{key:0,type:"error","show-icon":"",message:e(s).state.value.message},null,8,["message"])):e(s).state.value.phase==="not-found"?(A(),B(e(q),{key:1,type:"warning","show-icon":"",message:"未找到密码学证据",description:e(s).state.value.reason||"消息可能尚未被打包到 Merkle 批,或发送方未在线。"},null,8,["description"])):e(s).state.value.phase==="found"?(A(),ne(ue,{key:2},[r(e(rt),{bordered:"",column:1,size:"small"},{default:o(()=>[r(e(Y),{label:"来源"},{default:o(()=>[r(e(re),{color:e(s).state.value.result.origin==="local"?"green":"blue"},{default:o(()=>[S(_(e(s).state.value.result.origin==="local"?"本机批次":"远端拉取"),1)]),_:1},8,["color"]),e(s).state.value.result.staging?(A(),B(e(re),{key:0,color:"orange"},{default:o(()=>[...n[41]||(n[41]=[S("尚未关闭批次",-1)])]),_:1})):P("",!0)]),_:1}),r(e(Y),{label:"Tree Head ID"},{default:o(()=>[j("code",null,_(e(s).state.value.result.treeHeadId),1)]),_:1}),e(s).state.value.result.batchId?(A(),B(e(Y),{key:0,label:"Batch ID"},{default:o(()=>[S(_(e(s).state.value.result.batchId),1)]),_:1})):P("",!0),e(s).state.value.result.namespace?(A(),B(e(Y),{key:1,label:"Namespace"},{default:o(()=>[j("code",null,_(e(s).state.value.result.namespace),1)]),_:1})):P("",!0),e(s).state.value.result.leafIndex!==void 0?(A(),B(e(Y),{key:2,label:"Leaf Index"},{default:o(()=>[S(_(e(s).state.value.result.leafIndex),1)]),_:1})):P("",!0)]),_:1}),r(e(z),{type:"link",size:"small",style:{"padding-left":"0","margin-top":"8px"},onClick:n[2]||(n[2]=u=>N.value=!N.value)},{default:o(()=>[S(_(N.value?"收起":"展开")+" raw JSON ",1)]),_:1}),N.value?(A(),ne("div",Nn,[r(e(ie),{size:"small"},{title:o(()=>[r(e(Q),null,{default:o(()=>[n[43]||(n[43]=j("span",null,"Envelope",-1)),r(e(z),{size:"small",onClick:n[3]||(n[3]=u=>w(e(s).state.value.result.envelope))},{default:o(()=>[...n[42]||(n[42]=[S("复制",-1)])]),_:1})]),_:1})]),default:o(()=>[j("pre",Mn,_(JSON.stringify(e(s).state.value.result.envelope,null,2)),1)]),_:1}),e(s).state.value.result.landmark?(A(),B(e(ie),{key:0,size:"small",style:{"margin-top":"8px"}},{title:o(()=>[r(e(Q),null,{default:o(()=>[n[45]||(n[45]=j("span",null,"Landmark",-1)),r(e(z),{size:"small",onClick:n[4]||(n[4]=u=>w(e(s).state.value.result.landmark))},{default:o(()=>[...n[44]||(n[44]=[S("复制",-1)])]),_:1})]),_:1})]),default:o(()=>[j("pre",Bn,_(JSON.stringify(e(s).state.value.result.landmark,null,2)),1)]),_:1})):P("",!0)])):P("",!0)],64)):P("",!0)])]),_:1}),r(e(be),{key:"archive",tab:"Archive 归档"},{default:o(()=>[r(e(he),{layout:"vertical"},{default:o(()=>[r(e(O),{label:"communityId",required:""},{default:o(()=>[r(e(L),{value:f.communityId,"onUpdate:value":n[5]||(n[5]=u=>f.communityId=u),placeholder:"comm-X"},null,8,["value"])]),_:1}),r(e(O),{label:"provider 类型"},{default:o(()=>[r(e(Q),null,{default:o(()=>[r(e(z),{type:f.providerKind==="filesystem"?"primary":"default",onClick:n[6]||(n[6]=u=>f.providerKind="filesystem")},{default:o(()=>[...n[46]||(n[46]=[S(" Filesystem ",-1)])]),_:1},8,["type"]),r(e(z),{type:f.providerKind==="webdav"?"primary":"default",onClick:n[7]||(n[7]=u=>f.providerKind="webdav")},{default:o(()=>[...n[47]||(n[47]=[S(" WebDAV ",-1)])]),_:1},8,["type"])]),_:1})]),_:1}),f.providerKind==="filesystem"?(A(),B(e(O),{key:0,label:"rootDir 本地路径",required:""},{default:o(()=>[r(e(L),{value:f.rootDir,"onUpdate:value":n[8]||(n[8]=u=>f.rootDir=u),placeholder:"/path/to/archive-mirror"},null,8,["value"])]),_:1})):(A(),ne(ue,{key:1},[r(e(O),{label:"使用已保存的 WebDAV 凭据"},{default:o(()=>[r(e(Q),{direction:"vertical",style:{width:"100%"}},{default:o(()=>[r(e(Xe),{checked:f.useStoredCredentials,"onUpdate:checked":n[9]||(n[9]=u=>f.useStoredCredentials=u),disabled:e(a).hasStoredWebdavCredentials.value===!1,"checked-children":"使用 Settings 中已保存的 WebDAV 配置","un-checked-children":"本次手输(仍只在 main 进程暂存,不写盘)"},null,8,["checked","disabled"]),f.useStoredCredentials&&e(a).hasStoredWebdavCredentials.value===!0?(A(),B(e(q),{key:0,type:"success","show-icon":"",message:"已找到 Settings → 同步 → WebDAV 中保存的凭据,主进程会从 secure-config.enc(safeStorage / AES-256-GCM 加密)解密后构造 WebDAVClient — 渲染端不接触明文密码。"})):f.useStoredCredentials&&e(a).hasStoredWebdavCredentials.value===!1?(A(),B(e(q),{key:1,type:"warning","show-icon":"",message:"尚未保存 WebDAV 凭据,请先在 Settings → 同步 → WebDAV 中配置一次,然后再回来推送归档。"})):P("",!0)]),_:1})]),_:1}),f.useStoredCredentials?P("",!0):(A(),ne(ue,{key:0},[r(e(O),{label:"url"},{default:o(()=>[r(e(L),{value:f.url,"onUpdate:value":n[10]||(n[10]=u=>f.url=u),placeholder:"https://nas.example/dav"},null,8,["value"])]),_:1}),r(e(O),{label:"username"},{default:o(()=>[r(e(L),{value:f.username,"onUpdate:value":n[11]||(n[11]=u=>f.username=u)},null,8,["value"])]),_:1}),r(e(O),{label:"password"},{default:o(()=>[r(e(L),{value:f.password,"onUpdate:value":n[12]||(n[12]=u=>f.password=u),type:"password"},null,8,["value"])]),_:1}),r(e(O),{label:"remotePath"},{default:o(()=>[r(e(L),{value:f.remotePath,"onUpdate:value":n[13]||(n[13]=u=>f.remotePath=u),placeholder:"/cc-archives"},null,8,["value"])]),_:1})],64))],64)),r(e(O),{label:"(可选) sinceBatchId 增量推"},{default:o(()=>[r(e(L),{value:f.sinceBatchId,"onUpdate:value":n[14]||(n[14]=u=>f.sinceBatchId=u),placeholder:"000005"},null,8,["value"])]),_:1}),r(e(O),{label:"(restore 用) archiveName"},{default:o(()=>[r(e(L),{value:f.archiveName,"onUpdate:value":n[15]||(n[15]=u=>f.archiveName=u),placeholder:"channel-mtc-...zip"},null,8,["value"])]),_:1}),r(e(O),null,{default:o(()=>[r(e(Q),null,{default:o(()=>[r(e(z),{loading:e(a).loading.value,onClick:I},{default:o(()=>[...n[48]||(n[48]=[S("列出归档",-1)])]),_:1},8,["loading"]),r(e(z),{type:"primary",loading:e(a).loading.value,disabled:!e(a).isEmbedded,onClick:b},{default:o(()=>[...n[49]||(n[49]=[S(" 推送 ",-1)])]),_:1},8,["loading","disabled"]),r(e(z),{loading:e(a).loading.value,disabled:!e(a).isEmbedded,onClick:h},{default:o(()=>[...n[50]||(n[50]=[S(" 恢复 ",-1)])]),_:1},8,["loading","disabled"])]),_:1})]),_:1})]),_:1}),e(a).errorMessage.value?(A(),B(e(q),{key:0,type:"error","show-icon":"",message:e(a).errorMessage.value},null,8,["message"])):P("",!0),e(a).archives.value.length?(A(),B(e(Be),{key:1,size:"small",bordered:"","data-source":e(a).archives.value,style:{"margin-top":"12px"}},{header:o(()=>[j("span",null,"provider 现有归档("+_(e(a).archives.value.length)+")",1)]),renderItem:o(({item:u})=>[r(e(pe),null,{default:o(()=>[j("code",null,_(u),1),r(e(z),{size:"small",type:"link",onClick:F=>f.archiveName=u},{default:o(()=>[...n[51]||(n[51]=[S("填入恢复",-1)])]),_:1},8,["onClick"])]),_:2},1024)]),_:1},8,["data-source"])):P("",!0),e(a).lastResult.value?(A(),B(e(ie),{key:2,size:"small",style:{"margin-top":"12px"}},{title:o(()=>[...n[52]||(n[52]=[S("最近一次操作",-1)])]),default:o(()=>[j("pre",Pn,_(JSON.stringify(e(a).lastResult.value,null,2)),1)]),_:1})):P("",!0)]),_:1}),r(e(be),{key:"mofn",tab:"Governance M-of-N"},{default:o(()=>[r(e(he),{layout:"vertical"},{default:o(()=>[r(e(O),{label:"communityId",required:""},{default:o(()=>[r(e(L),{value:R.communityId,"onUpdate:value":n[16]||(n[16]=u=>R.communityId=u),placeholder:"comm-X"},null,8,["value"])]),_:1}),r(e(O),{label:"proposalId",required:""},{default:o(()=>[r(e(L),{value:R.proposalId,"onUpdate:value":n[17]||(n[17]=u=>R.proposalId=u),placeholder:"prop-rule-1"},null,8,["value"])]),_:1}),r(e(O),{label:"payload (JSON)"},{default:o(()=>[r(e(Se),{value:R.payload,"onUpdate:value":n[18]||(n[18]=u=>R.payload=u),rows:3},null,8,["value"])]),_:1}),r(e(O),{label:"members(DID 列表,空白分隔)"},{default:o(()=>[r(e(Se),{value:R.members,"onUpdate:value":n[19]||(n[19]=u=>R.members=u),rows:3,placeholder:`did:chainlesschain:abc
|
|
18
|
-
did:chainlesschain:def`},null,8,["value"])]),_:1}),r(e(O),{label:"threshold"},{default:o(()=>[r(e(lt),{value:R.threshold,"onUpdate:value":n[20]||(n[20]=u=>R.threshold=u),min:1,max:100},null,8,["value"])]),_:1}),r(e(O),null,{default:o(()=>[r(e(Q),null,{default:o(()=>[r(e(z),{loading:e(l).loading.value,onClick:T},{default:o(()=>[...n[53]||(n[53]=[S("刷新提案列表",-1)])]),_:1},8,["loading"]),r(e(z),{type:"primary",loading:e(l).loading.value,disabled:!e(l).isEmbedded,onClick:D},{default:o(()=>[...n[54]||(n[54]=[S(" 创建提案 ",-1)])]),_:1},8,["loading","disabled"])]),_:1})]),_:1})]),_:1}),e(l).errorMessage.value?(A(),B(e(q),{key:0,type:"error","show-icon":"",message:e(l).errorMessage.value,style:{margin:"12px 0"}},null,8,["message"])):P("",!0),r(e(q),{type:"success","show-icon":"",message:"签名收集 v2 — 主进程代签",description:"点击提案行的「代我签名」按钮:renderer 只发 (communityId, proposalId),桌面主进程从 DIDManager 取本人当前身份,在主进程内完成 Ed25519 签名后写入 staging/。私钥永不离开主进程。",style:{"margin-bottom":"12px"}}),e(l).proposals.value.length?(A(),B(e(Be),{key:1,size:"small",bordered:"","data-source":e(l).proposals.value},{header:o(()=>[j("span",null,"提案列表("+_(e(l).proposals.value.length)+")",1)]),renderItem:o(({item:u})=>[r(e(pe),null,{default:o(()=>[r(e(pe).Meta,null,{title:o(()=>[r(e(Q),null,{default:o(()=>[j("code",null,_(u.proposalId),1),r(e(re),{color:u.finalized?"green":"blue"},{default:o(()=>[S(_(u.finalized?"已最终化":`${u.collected}/${u.threshold} 收集中`),1)]),_:2},1032,["color"])]),_:2},1024)]),description:o(()=>[S(" members="+_(u.members.length)+" · created "+_(u.createdAt),1)]),_:2},1024),r(e(Q),null,{default:o(()=>[r(e(z),{size:"small",loading:e(l).loading.value,onClick:F=>U(u.proposalId)},{default:o(()=>[...n[55]||(n[55]=[S("详情",-1)])]),_:1},8,["loading","onClick"]),r(e(z),{size:"small",disabled:u.finalized||!e(l).isEmbedded,loading:e(l).loading.value,onClick:F=>V(u.proposalId)},{default:o(()=>[...n[56]||(n[56]=[S(" 代我签名 ",-1)])]),_:1},8,["disabled","loading","onClick"]),r(e(z),{size:"small",type:"primary",disabled:u.finalized||u.collected<u.threshold||!e(l).isEmbedded,loading:e(l).loading.value,onClick:F=>H(u.proposalId)},{default:o(()=>[...n[57]||(n[57]=[S(" Finalize ",-1)])]),_:1},8,["disabled","loading","onClick"])]),_:2},1024)]),_:2},1024)]),_:1},8,["data-source"])):P("",!0),e(l).currentStatus.value?(A(),B(e(ie),{key:2,size:"small",style:{"margin-top":"12px"}},{title:o(()=>[...n[58]||(n[58]=[S("当前提案状态",-1)])]),default:o(()=>[j("pre",zn,_(JSON.stringify(e(l).currentStatus.value,null,2)),1)]),_:1})):P("",!0)]),_:1}),r(e(be),{key:"trust",tab:"Cross-Fed Trust"},{default:o(()=>[r(e(he),{layout:"vertical"},{default:o(()=>[r(e(O),{label:"localCommunityId",required:""},{default:o(()=>[r(e(L),{value:M.localCommunityId,"onUpdate:value":n[21]||(n[21]=u=>M.localCommunityId=u),placeholder:"comm-engineering"},null,8,["value"])]),_:1}),r(e(O),{label:"remoteCommunityId"},{default:o(()=>[r(e(L),{value:M.remoteCommunityId,"onUpdate:value":n[22]||(n[22]=u=>M.remoteCommunityId=u),placeholder:"comm-research"},null,8,["value"])]),_:1}),r(e(O),{label:"remoteMembers(DID 列表,空白分隔)"},{default:o(()=>[r(e(Se),{value:M.remoteMembers,"onUpdate:value":n[23]||(n[23]=u=>M.remoteMembers=u),rows:3},null,8,["value"])]),_:1}),r(e(O),{label:"expiresAt(ISO 时间,留空表示永久)"},{default:o(()=>[r(e(L),{value:M.expiresAt,"onUpdate:value":n[24]||(n[24]=u=>M.expiresAt=u),placeholder:"2099-01-01T00:00:00Z"},null,8,["value"])]),_:1}),r(e(O),{label:"note (可选)"},{default:o(()=>[r(e(L),{value:M.note,"onUpdate:value":n[25]||(n[25]=u=>M.note=u)},null,8,["value"])]),_:1}),r(e(O),null,{default:o(()=>[r(e(Q),null,{default:o(()=>[r(e(z),{loading:e(i).loading.value,onClick:G},{default:o(()=>[...n[59]||(n[59]=[S("刷新",-1)])]),_:1},8,["loading"]),r(e(z),{type:"primary",loading:e(i).loading.value,disabled:!e(i).isEmbedded,onClick:ve},{default:o(()=>[...n[60]||(n[60]=[S(" 建立信任 ",-1)])]),_:1},8,["loading","disabled"]),r(e(z),{loading:e(i).loading.value,onClick:oe},{default:o(()=>[...n[61]||(n[61]=[S("查看合并 DID 集",-1)])]),_:1},8,["loading"])]),_:1})]),_:1})]),_:1}),e(i).errorMessage.value?(A(),B(e(q),{key:0,type:"error","show-icon":"",message:e(i).errorMessage.value},null,8,["message"])):P("",!0),e(i).records.value.length?(A(),B(e(Be),{key:1,size:"small",bordered:"","data-source":e(i).records.value,style:{"margin-top":"12px"}},{header:o(()=>[j("span",null,"已建立信任("+_(e(i).records.value.length)+")",1)]),renderItem:o(({item:u})=>[r(e(pe),null,{default:o(()=>[r(e(pe).Meta,null,{title:o(()=>[r(e(Q),null,{default:o(()=>[j("code",null,_(u.remoteCommunityId),1),r(e(re),{color:"blue"},{default:o(()=>[S(_(u.remoteMembers.length)+" 成员",1)]),_:2},1024),u.expiresAt?(A(),B(e(re),{key:0,color:"orange"},{default:o(()=>[S("expires "+_(u.expiresAt),1)]),_:2},1024)):(A(),B(e(re),{key:1,color:"green"},{default:o(()=>[...n[62]||(n[62]=[S("永久",-1)])]),_:1}))]),_:2},1024)]),description:o(()=>[S(_(u.note||"(无备注)")+" · issued "+_(u.issuedAt),1)]),_:2},1024),r(e(z),{size:"small",danger:"",disabled:!e(i).isEmbedded,onClick:F=>ee(u.remoteCommunityId)},{default:o(()=>[...n[63]||(n[63]=[S(" 撤销 ",-1)])]),_:1},8,["disabled","onClick"])]),_:2},1024)]),_:1},8,["data-source"])):P("",!0),e(i).trustedDids.value.length?(A(),B(e(ie),{key:2,size:"small",style:{"margin-top":"12px"}},{title:o(()=>[S("合并 DID 集("+_(e(i).trustedDids.value.length)+" 个)",1)]),default:o(()=>[r(e(Be),{size:"small","data-source":e(i).trustedDids.value},{renderItem:o(({item:u})=>[r(e(pe),null,{default:o(()=>[j("code",null,_(u),1)]),_:2},1024)]),_:1},8,["data-source"])]),_:1})):P("",!0)]),_:1}),r(e(be),{key:"auto-archive",tab:"Auto Archive 定时归档"},{default:o(()=>[r(e(q),{type:"info","show-icon":"",message:"B4-auto-archive v1 — 主进程内的定时器",description:"开启后桌面主进程会按设定的间隔自动 ChannelEnvelopeArchiver.push 一遍所有目标 community。最小间隔 5 分钟(防误配)。任何归档失败会记入 lastRunStatus='partial',不会中断后续 community 的归档。",style:{"margin-bottom":"16px"}}),r(e(he),{layout:"vertical"},{default:o(()=>[r(e(O),{label:"启用定时归档"},{default:o(()=>[r(e(Xe),{checked:x.enabled,"onUpdate:checked":n[26]||(n[26]=u=>x.enabled=u)},null,8,["checked"])]),_:1}),r(e(O),{label:"归档间隔(小时)"},{default:o(()=>[r(e(lt),{value:x.intervalHours,"onUpdate:value":n[27]||(n[27]=u=>x.intervalHours=u),min:.1,max:168,step:1},null,8,["value"]),r(e(W).Text,{type:"secondary",style:{"margin-left":"8px"}},{default:o(()=>[...n[64]||(n[64]=[S(" ≥ 5 分钟(0.083 小时);常用值:1 / 6 / 24 / 168 ",-1)])]),_:1})]),_:1}),r(e(O),{label:"归档目标 provider"},{default:o(()=>[r(e(Q),null,{default:o(()=>[r(e(z),{type:x.providerKind==="filesystem"?"primary":"default",onClick:n[28]||(n[28]=u=>x.providerKind="filesystem")},{default:o(()=>[...n[65]||(n[65]=[S(" Filesystem ",-1)])]),_:1},8,["type"]),r(e(z),{type:x.providerKind==="webdav"?"primary":"default",onClick:n[29]||(n[29]=u=>x.providerKind="webdav")},{default:o(()=>[...n[66]||(n[66]=[S(" WebDAV ",-1)])]),_:1},8,["type"])]),_:1})]),_:1}),x.providerKind==="filesystem"?(A(),B(e(O),{key:0,label:"rootDir 本地路径",required:""},{default:o(()=>[r(e(L),{value:x.rootDir,"onUpdate:value":n[30]||(n[30]=u=>x.rootDir=u),placeholder:"/path/to/archive-mirror"},null,8,["value"])]),_:1})):(A(),ne(ue,{key:1},[r(e(O),{label:"使用已保存的 WebDAV 凭据"},{default:o(()=>[r(e(Xe),{checked:x.useStoredCredentials,"onUpdate:checked":n[31]||(n[31]=u=>x.useStoredCredentials=u)},null,8,["checked"]),r(e(W).Text,{type:"secondary",style:{"margin-left":"8px"}},{default:o(()=>[...n[67]||(n[67]=[S(" 建议 ON — main 进程从 secure-config.enc 解密,密码不写入 cron 配置 ",-1)])]),_:1})]),_:1}),x.useStoredCredentials?P("",!0):(A(),ne(ue,{key:0},[r(e(O),{label:"url"},{default:o(()=>[r(e(L),{value:x.url,"onUpdate:value":n[32]||(n[32]=u=>x.url=u),placeholder:"https://nas.example/dav"},null,8,["value"])]),_:1}),r(e(O),{label:"username"},{default:o(()=>[r(e(L),{value:x.username,"onUpdate:value":n[33]||(n[33]=u=>x.username=u)},null,8,["value"])]),_:1}),r(e(O),{label:"password"},{default:o(()=>[r(e(L),{value:x.password,"onUpdate:value":n[34]||(n[34]=u=>x.password=u),type:"password"},null,8,["value"])]),_:1}),r(e(O),{label:"remotePath"},{default:o(()=>[r(e(L),{value:x.remotePath,"onUpdate:value":n[35]||(n[35]=u=>x.remotePath=u),placeholder:"/cc-archives"},null,8,["value"])]),_:1})],64))],64)),r(e(O),{label:"目标 community(每行一个;留空表示全部已加入的)"},{default:o(()=>[r(e(Se),{value:x.communityIdsRaw,"onUpdate:value":n[36]||(n[36]=u=>x.communityIdsRaw=u),rows:3,placeholder:`comm-A
|
|
19
|
-
comm-B`},null,8,["value"])]),_:1}),r(e(O),null,{default:o(()=>[r(e(Q),null,{default:o(()=>[r(e(z),{type:"primary",loading:e(d).loading.value,disabled:!e(d).isEmbedded,onClick:E},{default:o(()=>[...n[68]||(n[68]=[S(" 保存配置 ",-1)])]),_:1},8,["loading","disabled"]),r(e(z),{loading:e(d).loading.value,disabled:!e(d).isEmbedded,onClick:$},{default:o(()=>[...n[69]||(n[69]=[S(" 立即归档一次 ",-1)])]),_:1},8,["loading","disabled"]),r(e(z),{disabled:!e(d).isEmbedded,onClick:v},{default:o(()=>[...n[70]||(n[70]=[S("刷新",-1)])]),_:1},8,["disabled"])]),_:1})]),_:1})]),_:1}),e(d).errorMessage.value?(A(),B(e(q),{key:0,type:"error","show-icon":"",message:e(d).errorMessage.value,style:{"margin-top":"12px"}},null,8,["message"])):P("",!0),e(d).config.value?(A(),B(e(ie),{key:1,size:"small",title:"当前持久化配置 + 上次运行状态",style:{"margin-top":"16px"}},{default:o(()=>[r(e(rt),{column:2,size:"small"},{default:o(()=>[r(e(Y),{label:"enabled"},{default:o(()=>[r(e(re),{color:e(d).config.value.enabled?"green":"default"},{default:o(()=>[S(_(e(d).config.value.enabled?"ON":"OFF"),1)]),_:1},8,["color"])]),_:1}),r(e(Y),{label:"interval"},{default:o(()=>[S(_(Math.round((e(d).config.value.intervalMs||0)/1e3/60))+" 分钟 ",1)]),_:1}),r(e(Y),{label:"providerKind"},{default:o(()=>[S(_(e(d).config.value.providerSpec?.kind||"—"),1)]),_:1}),r(e(Y),{label:"targets"},{default:o(()=>[S(_(e(d).config.value.communityIds.length||"全部"),1)]),_:1}),r(e(Y),{label:"lastRunAt"},{default:o(()=>[S(_(e(d).config.value.lastRunAt?new Date(e(d).config.value.lastRunAt).toLocaleString():"—"),1)]),_:1}),r(e(Y),{label:"lastRunStatus"},{default:o(()=>[e(d).config.value.lastRunStatus?(A(),B(e(re),{key:0,color:e(d).config.value.lastRunStatus==="ok"?"green":e(d).config.value.lastRunStatus==="partial"?"orange":"red"},{default:o(()=>[S(_(e(d).config.value.lastRunStatus),1)]),_:1},8,["color"])):(A(),ne("span",Un,"—"))]),_:1})]),_:1}),e(d).config.value.lastRunError?(A(),B(e(q),{key:0,type:"error","show-icon":"",message:e(d).config.value.lastRunError,style:{"margin-top":"8px"}},null,8,["message"])):P("",!0)]),_:1})):P("",!0),e(d).lastRunResult.value&&e(d).lastRunResult.value.summary?(A(),B(e(ie),{key:2,size:"small",title:"本次手动 run-now 摘要",style:{"margin-top":"12px"}},{default:o(()=>[j("pre",Kn,_(JSON.stringify(e(d).lastRunResult.value.summary,null,2)),1)]),_:1})):P("",!0)]),_:1})]),_:1},8,["active-key"])]))}},il=Nt(Hn,[["__scopeId","data-v-96ccb8cf"]]);export{il as default};
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import{w as ve,L as c,Q as g,N as t,M as E,c as a,O as l,P as s,R as m,F as re,Y as be,S as w,K as i,f as P,r as $,o as De,u as j,_ as Ie,a1 as W}from"./vendor-DhFY8mDK.js";import{_ as xe,u as ke,d as v}from"./index-D0d2TS5o.js";import{u as he}from"./useShellMode-CgR0wCYM.js";import{R as Ae,z as ge,l as Le,aM as Oe,f as ye,d as Pe,c as Ue}from"./icons--SBOhPAi.js";import _e from"./index-C54Ydkuz.js";import"./KeyCode-D63Tfrq7.js";import"./omit-C1hn14Vc.js";import"./pickAttrs-DgVG8oMj.js";import"./initDefaultProps-B8zdOlFC.js";import"./motion-ChVLXdRp.js";import"./raf-Deuc0E8-.js";import"./index-BqX3jeij.js";import"./index-BGn5-2TK.js";import"./isVisible-C7tPsqfj.js";import"./useState-DGS1NOyn.js";import"./devWarning-CNIS3FrJ.js";import"./warning-Pq00owYb.js";import"./compact-item-X13u92RU.js";import"./createContext-BBLoTzN8.js";import"./Compact-CemvxU3z.js";import"./_getTag-BVc6NQ_K.js";import"./styleChecker-GoQ7uwU1.js";import"./zoom-CzyiNxpd.js";import"./ActionButton-wRdLFzBQ.js";import"./vnode-CnXQ7gJ2.js";const je={style:{"font-size":"12px"}},Fe={style:{margin:"8px 0 0","max-height":"200px",overflow:"auto","font-size":"11px"}},Ne={style:{"margin-bottom":"16px"}},Ee={style:{"font-size":"12px"}},Je={style:{"margin-left":"8px",color:"var(--text-secondary)","font-size":"12px"}},Ke={style:{"margin-bottom":"16px"}},Te={__name:"SignProposalModal",props:{open:{type:Boolean,default:!1},proposal:{type:Object,default:null}},emits:["update:open","signed"],setup(Y,{emit:G}){const q=Y,C=G,J=ke(),{isEmbedded:B}=he(),x=$(!1),M=$(null),k=$("ukey"),L=$(""),D=$(!1);async function n(r,d,b,S=15e3){if(B){const U=await J.sendRaw({type:r,...d},S);if(!U?.ok){const T=U?.error;throw new Error(typeof T=="string"?T:T?.message||`${r} failed`)}return U.result}return J.executeJson(b,S)}const y=P(()=>q.proposal?.proposal??{}),R=P(()=>new Set((q.proposal?.signatures??[]).map(r=>r.signerDid))),oe=P(()=>R.value.size),V=P(()=>(y.value?.memberSet??[]).filter(r=>!R.value.has(r.did))),K=P(()=>{const r=y.value?.payloadHash;return!r||typeof r!="string"?"(unavailable)":r.length<=12?r:`${r.slice(0,8)}…${r.slice(-4)}`}),le=P(()=>{const r=y.value?.payload;try{return r?JSON.stringify(r,null,2):y.value?.payloadJcs||"(empty)"}catch{return String(r)}}),Q=P(()=>x.value||!M.value?!1:k.value==="hex"?/^[0-9a-fA-F]{2,}$/.test(L.value.trim()):k.value==="ukey"),X=P(()=>k.value==="ukey"?"签名将通过主进程调用 U-Key 硬件 (Windows) / simulation 驱动 (macOS/Linux)。 请确认 payload hash 与发起方提供的一致。私钥不出硬件边界。":"调试模式:私钥 hex 仅供 CLI / dev 测试。生产环境请使用 U-Key 硬件源。");function O(r){return r?r.length<=28?r:`${r.slice(0,20)}…${r.slice(-8)}`:""}function Z(){M.value=null,k.value="ukey",L.value="",D.value=!1,x.value=!1}ve(()=>q.open,r=>{r&&Z()}),ve(V,r=>{r.length>0&&!M.value&&(M.value=r[0].did)});function se(r){x.value||C("update:open",r)}function ee(){x.value||C("update:open",!1)}async function ne(){if(!Q.value)return;const r=k.value==="hex"?{secretKeyHex:L.value.trim()}:{},d=y.value.memberSet.find(b=>b.did===M.value);x.value=!0;try{const b=await n("multisig.sign",{proposalId:y.value.id,signerDid:M.value,alg:d?.alg??"Ed25519",source:k.value,params:r},k.value==="hex"?`multisig sign ${y.value.id} --signer ${M.value} --key ${r.secretKeyHex} --json`:`multisig sign ${y.value.id} --signer ${M.value} --json`,2e4);if(b.accepted)v.success(b.reachedThreshold?"✓ 签名已接受 — 达到阈值":"✓ 签名已接受"),C("signed",b),C("update:open",!1);else{const S=b.reason||"unknown",U=b.detail?` (${b.detail})`:"";v.error(`签名失败: ${S}${U}`)}}catch(b){v.error(b.message||String(b))}finally{x.value=!1}}return(r,d)=>{const b=i("a-tag"),S=i("a-descriptions-item"),U=i("a-descriptions"),T=i("a-divider"),o=i("a-select-option"),e=i("a-select"),p=i("a-typography-text"),_=i("a-radio"),h=i("a-radio-group"),I=i("a-input-password"),F=i("a-alert"),te=i("a-button"),N=i("a-space"),ie=i("a-modal");return c(),g(ie,{open:Y.open,title:"签名提案",width:600,"mask-closable":!1,keyboard:!1,"destroy-on-close":"","onUpdate:open":se},{footer:t(()=>[a(N,null,{default:t(()=>[a(te,{disabled:x.value,onClick:ee},{default:t(()=>[...d[12]||(d[12]=[l("取消",-1)])]),_:1},8,["disabled"]),a(te,{type:"primary",danger:"",loading:x.value,disabled:!Q.value,onClick:ne},{default:t(()=>[...d[13]||(d[13]=[l("立即签名",-1)])]),_:1},8,["loading","disabled"])]),_:1})]),default:t(()=>[Y.proposal?(c(),E(re,{key:0},[a(U,{column:1,bordered:"",size:"small"},{default:t(()=>[a(S,{label:"Domain"},{default:t(()=>[a(b,{color:"purple"},{default:t(()=>[l(s(y.value.domain),1)]),_:1})]),_:1}),a(S,{label:"Proposal ID"},{default:t(()=>[m("code",je,s(y.value.id),1)]),_:1}),a(S,{label:"阈值"},{default:t(()=>[l(s(y.value.thresholdM)+"-of-"+s(y.value.memberSet.length),1)]),_:1}),a(S,{label:"已签 / 需签"},{default:t(()=>[l(s(oe.value)+" / "+s(y.value.thresholdM),1)]),_:1}),a(S,{label:"Payload hash"},{default:t(()=>[D.value?(c(),E("code",{key:1,class:"hash-full",style:{cursor:"pointer","font-size":"11px","word-break":"break-all"},onClick:d[1]||(d[1]=z=>D.value=!1)},s(y.value.payloadHash||"(unavailable)"),1)):(c(),E("code",{key:0,class:"hash-short",style:{cursor:"pointer","font-size":"12px"},onClick:d[0]||(d[0]=z=>D.value=!0),title:"点击展开完整 hash"},s(K.value),1))]),_:1}),a(S,{label:"Payload"},{default:t(()=>[m("details",null,[d[5]||(d[5]=m("summary",{style:{cursor:"pointer",color:"var(--text-secondary)"}}," 展开 (JCS) ",-1)),m("pre",Fe,s(le.value),1)])]),_:1})]),_:1}),a(T),m("div",Ne,[d[7]||(d[7]=m("div",{style:{"margin-bottom":"8px","font-weight":"500"}},"签名身份 (DID)",-1)),a(e,{value:M.value,"onUpdate:value":d[2]||(d[2]=z=>M.value=z),style:{width:"100%"},placeholder:"选择签名成员",disabled:x.value},{default:t(()=>[(c(!0),E(re,null,be(V.value,z=>(c(),g(o,{key:z.did,value:z.did},{default:t(()=>[m("code",Ee,s(O(z.did)),1),m("span",Je," ("+s(z.alg)+") ",1)]),_:2},1032,["value"]))),128))]),_:1},8,["value","disabled"]),V.value.length===0?(c(),g(p,{key:0,type:"warning",style:{"font-size":"12px"}},{default:t(()=>[...d[6]||(d[6]=[l(" 所有成员均已签名 (达阈值) ",-1)])]),_:1})):w("",!0)]),m("div",Ke,[d[11]||(d[11]=m("div",{style:{"margin-bottom":"8px","font-weight":"500"}},"密钥来源",-1)),a(h,{value:k.value,"onUpdate:value":d[3]||(d[3]=z=>k.value=z),disabled:x.value},{default:t(()=>[a(_,{value:"ukey"},{default:t(()=>[...d[8]||(d[8]=[m("strong",null,"U-Key 硬件",-1),m("span",{style:{color:"var(--text-secondary)","margin-left":"8px","font-size":"12px"}}," 推荐 (PIN 确认 via 主进程) ",-1)])]),_:1}),d[10]||(d[10]=m("br",null,null,-1)),a(_,{value:"hex",style:{"margin-top":"6px"}},{default:t(()=>[...d[9]||(d[9]=[m("strong",null,"软件 hex",-1),m("span",{style:{color:"var(--text-secondary)","margin-left":"8px","font-size":"12px"}}," 调试用 — 私钥不应在 UI 输入 ",-1)])]),_:1})]),_:1},8,["value","disabled"]),k.value==="hex"?(c(),g(I,{key:0,value:L.value,"onUpdate:value":d[4]||(d[4]=z=>L.value=z),placeholder:"hex (32 bytes = 64 chars Ed25519)",style:{"margin-top":"8px"},disabled:x.value},null,8,["value","disabled"])):w("",!0)]),a(F,{message:"高风险操作",description:X.value,type:"warning","show-icon":"",style:{"margin-bottom":"8px"}},null,8,["description"])],64)):w("",!0)]),_:1},8,["open"])}}},Be=xe(Te,[["__scopeId","data-v-61747175"]]),Re={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},He={class:"filter-bar"},qe={key:0,style:{"font-size":"12px"}},Ve={style:{margin:"0 0 8px 0"}},Qe={style:{"margin-left":"8px",color:"var(--text-secondary)"}},We={style:{"margin-top":"8px"}},Ye={style:{cursor:"pointer",color:"var(--text-secondary)"}},Ge={key:0},Xe={style:{margin:"0","max-height":"240px",overflow:"auto","font-size":"12px"}},Ze={style:{margin:"16px 0 8px 0"}},et={style:{"font-size":"12px"}},tt={__name:"Multisig",setup(Y){const G=ke(),{isEmbedded:q}=he();async function C(o,e,p,_=8e3){if(q){const h=await G.sendRaw({type:o,...e},_);if(!h?.ok){const I=h?.error;throw new Error(typeof I=="string"?I:I?.message||`${o} failed`)}return h.result}return G.executeJson(p,_)}const J=$(!1),B=$([]),x=$([]),M=$("proposals"),k=$(""),L=$(""),D=$(!1),n=$(null),y=$(!1),R=$(null),oe=[{title:"ID",key:"id",width:200},{title:"Domain",dataIndex:"domain",width:220},{title:"状态",key:"state",width:110},{title:"阈值",key:"sigs",width:80},{title:"创建",key:"createdAt",width:140},{title:"过期",key:"expiresAt",width:140},{title:"操作",key:"actions",width:240,fixed:"right"}],V=[{title:"DID",dataIndex:"did"},{title:"Alg",dataIndex:"alg",width:200}],K=P(()=>{const o={pending:0,reached:0,consumed:0,cancelled:0,expired:0};for(const e of B.value)o[e.state]!==void 0&&(o[e.state]+=1);return o}),le=P(()=>B.value.filter(o=>!(k.value&&o.state!==k.value||L.value&&!o.domain.toLowerCase().includes(L.value.toLowerCase()))));function Q(o){switch(o){case"pending":return"gold";case"reached":return"cyan";case"consumed":return"green";case"cancelled":return"default";case"expired":return"red";default:return"default"}}function X(o){const e=o-Date.now(),p=Math.abs(e)/6e4;if(p<60)return e>0?`${Math.round(p)} 分钟后`:`${Math.round(p)} 分钟前`;const _=p/60;if(_<24)return e>0?`${Math.round(_)} 小时后`:`${Math.round(_)} 小时前`;const h=_/24;return e>0?`${Math.round(h)} 天后`:`${Math.round(h)} 天前`}async function O(){J.value=!0;try{const[o,e]=await Promise.all([C("multisig.list",{limit:500},"multisig list --limit 500 --json",1e4).catch(()=>[]),Promise.all(["marketplace.purchase","crosschain.bridge.outbound","did.rotate"].map(async p=>{try{const _=await C("multisig.policy.show",{domain:p},`multisig policy show ${p} --json`,8e3);return{domain:p,policy:_,updatedAtMs:Date.now()}}catch{return null}})).then(p=>p.filter(Boolean))]);B.value=Array.isArray(o)?o:[],x.value=Array.isArray(e)?e:[]}catch(o){v.error("加载失败: "+(o.message||o))}finally{J.value=!1}}async function Z(o){try{const e=await C("multisig.show",{proposalId:o.id},`multisig show ${o.id} --json`,8e3);n.value=e,D.value=!0}catch(e){v.error("加载详情失败: "+(e.message||e))}}function se(o){return{onClick:()=>Z(o)}}async function ee(o){_e.confirm({title:`取消提案 ${o.id.slice(0,12)}…?`,content:"已签名的成员需要重新发起新提案。此操作不可撤销。",okText:"取消提案",okType:"danger",cancelText:"保持",onOk:async()=>{try{const e=await C("multisig.cancel",{proposalId:o.id,reason:"web-shell"},`multisig cancel ${o.id} --reason web-shell --json`,8e3);e.ok?(v.success("提案已取消"),D.value=!1,await O()):v.error("取消失败: "+e.reason)}catch(e){v.error(e.message||String(e))}}})}async function ne(o){try{const e=await C("multisig.show",{proposalId:o.id},`multisig show ${o.id} --json`,8e3);R.value=e,y.value=!0}catch(e){v.error("加载提案详情失败: "+(e.message||e))}}function r(){n.value&&(R.value=n.value,y.value=!0)}async function d(){D.value=!1,await O()}async function b(o){try{const e=await C("marketplace.consume",{proposalId:o.id},`marketplace consume ${o.id} --json`,1e4);e.status==="consumed"?(v.success(`订单 ${e.order.itemId} 已执行 (¥${(e.order.amountFen/100).toFixed(2)})`),D.value=!1,await O()):v.error("执行失败: "+(e.reason||JSON.stringify(e)))}catch(e){v.error(e.message||String(e))}}async function S(o){try{const e=await C("crosschain.bridge.consume",{proposalId:o.id},`crosschain bridge-consume ${o.id} --json`,1e4);if(e.status==="consumed"){const p=e.payload||{},_=`${p.fromChain||"?"} → ${p.toChain||"?"} (amount ${p.amount??"?"})`;e.bridgeId?v.success(`跨链桥已执行: ${_} · bridgeId ${e.bridgeId}`):(v.success(`跨链桥提案已 finalize: ${_}`),_e.info({title:"跨链桥提案 finalize 完成",content:`Proposal 已标记 consumed。
|
|
2
|
-
|
|
3
|
-
在 CLI 侧运行以下命令完成 cc_bridges 行插入:
|
|
4
|
-
|
|
5
|
-
cc crosschain bridge-consume ${o.id}
|
|
6
|
-
|
|
7
|
-
web-shell 不持有 crosschain DB 句柄,实际 SQLite 插入仍由 CLI 端执行。`})),D.value=!1,await O()}else v.error("执行失败: "+(e.reason||JSON.stringify(e)))}catch(e){v.error(e.message||String(e))}}async function U(o){try{const e=await C("multisig.finalize",{proposalId:o.id},`multisig finalize ${o.id} --json`,8e3);e.ok?(v.success("提案已 finalize"),D.value=!1,await O()):v.error("Finalize 失败: "+e.reason)}catch(e){v.error(e.message||String(e))}}async function T(){try{const o=await C("multisig.sweep",{},"multisig sweep --json",8e3);o.expired===0?v.info("无过期提案"):(v.success(`已标记 ${o.expired} 条提案为过期`),await O())}catch(o){v.error(o.message||String(o))}}return De(O),(o,e)=>{const p=i("a-button"),_=i("a-space"),h=i("a-statistic"),I=i("a-card"),F=i("a-col"),te=i("a-row"),N=i("a-radio-button"),ie=i("a-radio-group"),z=i("a-input-search"),H=i("a-tag"),ue=i("a-tooltip"),de=i("a-table"),pe=i("a-tab-pane"),we=i("a-empty"),A=i("a-descriptions-item"),ce=i("a-descriptions"),me=i("a-list-item"),fe=i("a-list"),$e=i("a-tabs"),Ce=i("a-list-item-meta"),Se=i("a-divider"),ze=i("a-alert"),Me=i("a-drawer");return c(),E("div",null,[m("div",Re,[e[12]||(e[12]=m("div",null,[m("h2",{class:"page-title"},"M-of-N 多签"),m("p",{class:"page-sub"},"marketplace.purchase 大额、DID 关键操作、跨链桥 outbound 的联合签名审批")],-1)),a(_,null,{default:t(()=>[a(p,{loading:J.value,onClick:O},{icon:t(()=>[a(j(Ae))]),default:t(()=>[e[10]||(e[10]=l(" 刷新 ",-1))]),_:1},8,["loading"]),a(p,{onClick:T},{icon:t(()=>[a(j(ge))]),default:t(()=>[e[11]||(e[11]=l(" 扫过期 ",-1))]),_:1})]),_:1})]),a(te,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:t(()=>[a(F,{xs:12,sm:8,lg:4},{default:t(()=>[a(I,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[a(h,{title:"总提案",value:B.value.length,"value-style":{color:"#1677ff",fontSize:"20px"}},{prefix:t(()=>[a(j(Le))]),_:1},8,["value"])]),_:1})]),_:1}),a(F,{xs:12,sm:8,lg:4},{default:t(()=>[a(I,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[a(h,{title:"待签",value:K.value.pending,"value-style":{color:"#faad14",fontSize:"20px"}},{prefix:t(()=>[a(j(ge))]),_:1},8,["value"])]),_:1})]),_:1}),a(F,{xs:12,sm:8,lg:4},{default:t(()=>[a(I,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[a(h,{title:"已达阈值",value:K.value.reached,"value-style":{color:"#13c2c2",fontSize:"20px"}},{prefix:t(()=>[a(j(Oe))]),_:1},8,["value"])]),_:1})]),_:1}),a(F,{xs:12,sm:8,lg:4},{default:t(()=>[a(I,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[a(h,{title:"已执行",value:K.value.consumed,"value-style":{color:"#52c41a",fontSize:"20px"}},{prefix:t(()=>[a(j(ye))]),_:1},8,["value"])]),_:1})]),_:1}),a(F,{xs:12,sm:8,lg:4},{default:t(()=>[a(I,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[a(h,{title:"已取消",value:K.value.cancelled,"value-style":{color:"#8c8c8c",fontSize:"20px"}},{prefix:t(()=>[a(j(Pe))]),_:1},8,["value"])]),_:1})]),_:1}),a(F,{xs:12,sm:8,lg:4},{default:t(()=>[a(I,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[a(h,{title:"已过期",value:K.value.expired,"value-style":{color:"#ff4d4f",fontSize:"20px"}},{prefix:t(()=>[a(j(Ue))]),_:1},8,["value"])]),_:1})]),_:1})]),_:1}),a($e,{activeKey:M.value,"onUpdate:activeKey":e[2]||(e[2]=u=>M.value=u)},{default:t(()=>[a(pe,{key:"proposals",tab:"提案列表"},{default:t(()=>[m("div",He,[a(ie,{value:k.value,"onUpdate:value":e[0]||(e[0]=u=>k.value=u),size:"small","button-style":"solid"},{default:t(()=>[a(N,{value:""},{default:t(()=>[...e[13]||(e[13]=[l("全部",-1)])]),_:1}),a(N,{value:"pending"},{default:t(()=>[...e[14]||(e[14]=[l("待签",-1)])]),_:1}),a(N,{value:"reached"},{default:t(()=>[...e[15]||(e[15]=[l("已达阈值",-1)])]),_:1}),a(N,{value:"consumed"},{default:t(()=>[...e[16]||(e[16]=[l("已执行",-1)])]),_:1}),a(N,{value:"cancelled"},{default:t(()=>[...e[17]||(e[17]=[l("已取消",-1)])]),_:1}),a(N,{value:"expired"},{default:t(()=>[...e[18]||(e[18]=[l("已过期",-1)])]),_:1})]),_:1},8,["value"]),a(z,{value:L.value,"onUpdate:value":e[1]||(e[1]=u=>L.value=u),placeholder:"按 domain 过滤 (marketplace.purchase 等)","allow-clear":"",style:{"max-width":"360px","margin-left":"12px"}},null,8,["value"])]),a(de,{columns:oe,"data-source":le.value,loading:J.value,pagination:{pageSize:20,showSizeChanger:!0,pageSizeOptions:["10","20","50","100"]},"row-key":"id",size:"middle",onRowClick:se,"row-class-name":()=>"multisig-row"},{bodyCell:t(({column:u,record:f})=>[u.key==="id"?(c(),E("code",qe,s(f.id.slice(0,16))+"…",1)):u.key==="state"?(c(),g(H,{key:1,color:Q(f.state)},{default:t(()=>[l(s(f.state),1)]),_:2},1032,["color"])):u.key==="sigs"?(c(),g(H,{key:2,color:f.n===f.m?"cyan":"default"},{default:t(()=>[l(s(f.m)+"/"+s(f.n),1)]),_:2},1032,["color"])):u.key==="createdAt"?(c(),g(ue,{key:3,title:new Date(f.createdAtMs).toLocaleString()},{default:t(()=>[l(s(X(f.createdAtMs)),1)]),_:2},1032,["title"])):u.key==="expiresAt"?(c(),g(ue,{key:4,title:new Date(f.expiresAtMs).toLocaleString()},{default:t(()=>[m("span",{style:Ie({color:f.expiresAtMs<Date.now()?"#ff4d4f":"inherit"})},s(X(f.expiresAtMs)),5)]),_:2},1032,["title"])):u.key==="actions"?(c(),g(_,{key:5,size:"small"},{default:t(()=>[a(p,{size:"small",onClick:W(ae=>Z(f),["stop"])},{default:t(()=>[...e[19]||(e[19]=[l("详情",-1)])]),_:1},8,["onClick"]),f.state==="pending"||f.state==="reached"?(c(),g(p,{key:0,size:"small",danger:"",onClick:W(ae=>ee(f),["stop"])},{default:t(()=>[...e[20]||(e[20]=[l("取消",-1)])]),_:1},8,["onClick"])):w("",!0),f.state==="pending"?(c(),g(p,{key:1,size:"small",type:"primary",onClick:W(ae=>ne(f),["stop"])},{default:t(()=>[...e[21]||(e[21]=[l("签名",-1)])]),_:1},8,["onClick"])):w("",!0),f.state==="reached"&&f.domain==="marketplace.purchase"?(c(),g(p,{key:2,size:"small",type:"primary",onClick:W(ae=>b(f),["stop"])},{default:t(()=>[...e[22]||(e[22]=[l("执行购买",-1)])]),_:1},8,["onClick"])):w("",!0),f.state==="reached"&&f.domain==="crosschain.bridge.outbound"?(c(),g(p,{key:3,size:"small",type:"primary",onClick:W(ae=>S(f),["stop"])},{default:t(()=>[...e[23]||(e[23]=[l("执行跨链桥",-1)])]),_:1},8,["onClick"])):w("",!0)]),_:2},1024)):w("",!0)]),_:1},8,["data-source","loading"])]),_:1}),a(pe,{key:"policies",tab:"域策略"},{default:t(()=>[x.value.length===0?(c(),g(we,{key:0,description:"暂无域策略 — 用 CLI 配置: cc multisig policy set <domain> --m <M> --members <json>"})):(c(),g(fe,{key:1,"data-source":x.value,"item-layout":"vertical"},{renderItem:t(({item:u})=>[a(me,null,{default:t(()=>[a(I,null,{default:t(()=>[m("h4",Ve,[a(H,{color:"purple"},{default:t(()=>[l(s(u.domain),1)]),_:2},1024),m("span",Qe,[l(s(u.policy.m)+"-of-"+s(u.policy.members.length)+" ",1),u.policy.requirePqc?(c(),g(H,{key:0,color:"orange",style:{"margin-left":"8px"}},{default:t(()=>[...e[24]||(e[24]=[l("requirePQC",-1)])]),_:1})):w("",!0)])]),a(ce,{size:"small",column:2},{default:t(()=>[a(A,{label:"阈值 M"},{default:t(()=>[l(s(u.policy.m),1)]),_:2},1024),a(A,{label:"成员数 N"},{default:t(()=>[l(s(u.policy.members.length),1)]),_:2},1024),a(A,{label:"算法"},{default:t(()=>[(c(!0),E(re,null,be(u.policy.algorithms||[],f=>(c(),g(H,{key:f,size:"small"},{default:t(()=>[l(s(f),1)]),_:2},1024))),128))]),_:2},1024),a(A,{label:"默认有效期"},{default:t(()=>[l(s(Math.round((u.policy.defaultExpiryMs||864e5)/1e3/60/60))+"h ",1)]),_:2},1024)]),_:2},1024),m("details",We,[m("summary",Ye,"展开成员列表 ("+s(u.policy.members.length)+")",1),a(de,{columns:V,"data-source":u.policy.members,pagination:!1,size:"small","row-key":"did",style:{"margin-top":"8px"}},null,8,["data-source"])])]),_:2},1024)]),_:2},1024)]),_:1},8,["data-source"]))]),_:1})]),_:1},8,["activeKey"]),a(Me,{open:D.value,"onUpdate:open":e[8]||(e[8]=u=>D.value=u),title:n.value?`提案 ${n.value.proposal.id}`:"提案详情",width:"640","destroy-on-close":""},{default:t(()=>[n.value?(c(),E("div",Ge,[a(ce,{column:1,bordered:"",size:"small"},{default:t(()=>[a(A,{label:"Domain"},{default:t(()=>[l(s(n.value.proposal.domain),1)]),_:1}),a(A,{label:"状态"},{default:t(()=>[a(H,{color:Q(n.value.proposal.state)},{default:t(()=>[l(s(n.value.proposal.state),1)]),_:1},8,["color"])]),_:1}),a(A,{label:"阈值"},{default:t(()=>[l(s(n.value.proposal.thresholdM)+"-of-"+s(n.value.proposal.memberSet.length),1)]),_:1}),a(A,{label:"已签 / 需签"},{default:t(()=>[l(s(n.value.signatures.length)+" / "+s(n.value.proposal.thresholdM),1)]),_:1}),a(A,{label:"发起方"},{default:t(()=>[l(s(n.value.proposal.initiatorDid),1)]),_:1}),a(A,{label:"创建时间"},{default:t(()=>[l(s(new Date(n.value.proposal.createdAtMs).toLocaleString()),1)]),_:1}),a(A,{label:"过期时间"},{default:t(()=>[l(s(new Date(n.value.proposal.expiresAtMs).toLocaleString()),1)]),_:1}),a(A,{label:"Payload"},{default:t(()=>[m("pre",Xe,s(n.value.proposal.payload?JSON.stringify(n.value.proposal.payload,null,2):n.value.proposal.payloadJcs),1)]),_:1})]),_:1}),m("h4",Ze,"签名列表 ("+s(n.value.signatures.length)+")",1),a(fe,{"data-source":n.value.signatures,size:"small"},{renderItem:t(({item:u})=>[a(me,null,{default:t(()=>[a(Ce,null,{title:t(()=>[a(j(ye),{style:{color:"#52c41a","margin-right":"6px"}}),m("code",et,s(u.signerDid),1)]),description:t(()=>[l(s(u.alg)+" — "+s(new Date(u.signedAtMs).toLocaleString()),1)]),_:2},1024)]),_:2},1024)]),_:1},8,["data-source"]),a(Se),a(ze,{message:"签名 / 执行操作需通过 CLI 提供私钥",description:"Web shell 不直接持有私钥(接 Unified KeyStore 仍未收口)。本面板用于查看提案状态,签名请用 cc multisig sign;执行已 reached 的提案可在此面板按 domain 直达(marketplace.purchase / crosschain.bridge.outbound),其它 domain 走 cc multisig finalize。",type:"info","show-icon":"",style:{"margin-bottom":"12px"}}),a(_,null,{default:t(()=>[n.value.proposal.state==="pending"||n.value.proposal.state==="reached"?(c(),g(p,{key:0,danger:"",onClick:e[3]||(e[3]=u=>ee(n.value.proposal))},{default:t(()=>[...e[25]||(e[25]=[l("取消提案",-1)])]),_:1})):w("",!0),n.value.proposal.state==="pending"?(c(),g(p,{key:1,type:"primary",onClick:e[4]||(e[4]=u=>r())},{default:t(()=>[...e[26]||(e[26]=[l("签名 (multisig.sign)",-1)])]),_:1})):w("",!0),n.value.proposal.state==="reached"&&n.value.proposal.domain==="marketplace.purchase"?(c(),g(p,{key:2,type:"primary",onClick:e[5]||(e[5]=u=>b(n.value.proposal))},{default:t(()=>[...e[27]||(e[27]=[l("执行购买 (cc marketplace consume)",-1)])]),_:1})):w("",!0),n.value.proposal.state==="reached"&&n.value.proposal.domain==="crosschain.bridge.outbound"?(c(),g(p,{key:3,type:"primary",onClick:e[6]||(e[6]=u=>S(n.value.proposal))},{default:t(()=>[...e[28]||(e[28]=[l("执行跨链桥 (cc crosschain bridge-consume)",-1)])]),_:1})):w("",!0),n.value.proposal.state==="reached"&&n.value.proposal.domain!=="marketplace.purchase"&&n.value.proposal.domain!=="crosschain.bridge.outbound"?(c(),g(p,{key:4,type:"primary",onClick:e[7]||(e[7]=u=>U(n.value.proposal))},{default:t(()=>[...e[29]||(e[29]=[l("finalize (cc multisig finalize)",-1)])]),_:1})):w("",!0)]),_:1})])):w("",!0)]),_:1},8,["open","title"]),a(Be,{open:y.value,"onUpdate:open":e[9]||(e[9]=u=>y.value=u),proposal:R.value,onSigned:d},null,8,["open","proposal"])])}}},zt=xe(tt,[["__scopeId","data-v-c8a8d20c"]]);export{zt as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.hash-short[data-v-61747175],.hash-full[data-v-61747175]{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;background:var(--bg-card, rgba(0, 0, 0, .04));padding:2px 6px;border-radius:4px}.page-title[data-v-c8a8d20c]{font-size:22px;font-weight:600;margin:0;color:var(--text-primary)}.page-sub[data-v-c8a8d20c]{font-size:13px;color:var(--text-secondary);margin:4px 0 0}.filter-bar[data-v-c8a8d20c]{display:flex;align-items:center;margin-bottom:16px}.multisig-row[data-v-c8a8d20c]{cursor:pointer}.multisig-row[data-v-c8a8d20c]:hover{background:var(--bg-hover, rgba(22, 119, 255, .05))}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{_ as nt,u as at,b as ot,d as v}from"./index-D0d2TS5o.js";import{s as lt}from"./community-parser-CO25nZFt.js";import{R as rt,as as st,q as it,r as _e,l as be,a$ as ut,aj as ct,f as pt}from"./icons--SBOhPAi.js";import{o as dt,M as m,R as b,P as i,c as a,N as t,Q as h,S as _,K as d,r as x,L as u,O as p,u as y,F as C,Y as j,_ as ft,f as Q,a as ke}from"./vendor-DhFY8mDK.js";function P(s){const r=lt(s);if(!r)return null;try{return JSON.parse(r)}catch{}const l=r.match(/\{[\s\S]*\}|\[[\s\S]*\]/);if(!l)return null;try{return JSON.parse(l[0])}catch{return null}}const oe=Object.freeze(["create_component","add_feature","fix_bug","refactor","add_api","add_test","update_style","configure","general"]),Le=Object.freeze(["draft","complete","refined"]),xe=Object.freeze(["naming","architecture","testing","style","imports","components"]);function D(s,r=0){return typeof s=="number"&&Number.isFinite(s)?s:r}function q(s,r){if(s==null)return r;if(typeof s!="string")return s;try{return JSON.parse(s)}catch{return s}}function mt(s){const r=P(s);return!r||typeof r!="object"||Array.isArray(r)?null:{intent:String(r.intent||"general"),confidence:D(r.confidence,0)}}function gt(s){const r=P(s);if(!r||typeof r!="object"||Array.isArray(r))return null;const l=Array.isArray(r.entities)?r.entities.map(g=>g&&typeof g=="object"?{type:String(g.type||""),value:String(g.value||"")}:null).filter(Boolean):[];return{entities:l,count:D(r.count,l.length)}}function yt(s){const r=P(s);if(!r||typeof r!="object"||Array.isArray(r))return null;const l=Array.isArray(r.detected)?r.detected.filter(g=>typeof g=="string"):[];return{detected:l,primary:r.primary?String(r.primary):l[0]||null}}function vt(s,r=0){if(!s||typeof s!="object")return null;const l=s.id||"";return l?{key:l,id:l,inputText:s.inputText??s.input_text??"",intent:String(s.intent||"general"),entities:q(s.entities,[]),techStack:q(s.techStack??s.tech_stack,[]),spec:q(s.spec,null),completenessScore:D(s.completenessScore??s.completeness_score,0),ambiguities:q(s.ambiguities,[]),status:String(s.status||"draft").toLowerCase(),createdAt:s.createdAt??s.created_at??null,updatedAt:s.updatedAt??s.updated_at??null,_idx:r}:null}function _t(s){const r=P(s);return Array.isArray(r)?r.map(vt).filter(Boolean):[]}function bt(s){const r=P(s);return!r||typeof r!="object"||Array.isArray(r)||r.translationId===void 0?null:{translated:!!r.translated,translationId:r.translationId,intent:String(r.intent||""),completeness:D(r.completeness,0)}}function kt(s){if(!s)return{noDb:!1,error:""};const r=/No ChainlessChain project database/i.test(s)||/Cannot read properties of undefined \(reading ['"]prepare['"]\)/i.test(s)||/TypeError.*prepare/i.test(s),l=s.match(/Error:\s*(No ChainlessChain project database[^\r\n]*)/i);if(l)return{noDb:!0,error:l[1].trim()};const g=s.match(/TypeError:\s*(.+?)(?:\r?\n|$)/i);return{noDb:r,error:g?g[1].trim():""}}function xt(s,r=0){if(!s||typeof s!="object")return null;const l=s.id||"";return l?{key:l,id:l,category:String(s.category||""),pattern:String(s.pattern||""),examples:q(s.examples,[]),confidence:D(s.confidence,0),sourceFiles:q(s.sourceFiles??s.source_files,[]),createdAt:s.createdAt??s.created_at??null,_idx:r}:null}function ht(s){const r=P(s);return Array.isArray(r)?r.map(xt).filter(Boolean):[]}const $t={translations:{total:0,byIntent:{},byStatus:{draft:0,complete:0,refined:0},avgCompleteness:0},conventions:{total:0,byCategory:{}}};function Ct(s){const r=JSON.parse(JSON.stringify($t));for(const g of oe)r.translations.byIntent[g]=0;for(const g of xe)r.conventions.byCategory[g]=0;const l=P(s);if(!l||typeof l!="object"||Array.isArray(l))return r;if(l.translations&&typeof l.translations=="object"){if(r.translations.total=D(l.translations.total,0),r.translations.avgCompleteness=D(l.translations.avgCompleteness??l.translations.avg_completeness,0),l.translations.byIntent&&typeof l.translations.byIntent=="object")for(const[g,S]of Object.entries(l.translations.byIntent))typeof S=="number"&&Number.isFinite(S)&&(r.translations.byIntent[g]=S);if(l.translations.byStatus&&typeof l.translations.byStatus=="object")for(const g of Object.keys(r.translations.byStatus))r.translations.byStatus[g]=D(l.translations.byStatus[g],0)}if(l.conventions&&typeof l.conventions=="object"&&(r.conventions.total=D(l.conventions.total,0),l.conventions.byCategory&&typeof l.conventions.byCategory=="object"))for(const[g,S]of Object.entries(l.conventions.byCategory))typeof S=="number"&&Number.isFinite(S)&&(r.conventions.byCategory[g]=S);return r}function ae(s){if(s==null||s==="")return"—";const r=typeof s=="number"?new Date(s):new Date(String(s));return isNaN(r.getTime())?String(s):r.toLocaleString("zh-CN",{hour12:!1})}const St={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},zt={class:"page-title"},At={class:"page-sub"},Tt={class:"filter-bar"},jt={key:0,style:{color:"var(--text-primary)"}},Ft={key:4,style:{color:"var(--text-secondary)","font-size":"11px"}},wt={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},Nt={class:"filter-bar"},Ot={key:1,style:{color:"var(--text-primary)","font-family":"monospace","font-size":"12px"}},Lt={key:0,style:{color:"var(--text-muted)"}},Dt={key:4,style:{color:"var(--text-secondary)","font-size":"11px"}},Rt={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},Et={key:0,style:{"margin-bottom":"12px"}},It={style:{"font-size":"12px",color:"var(--text-secondary)","margin-bottom":"4px"}},Ut={style:{color:"var(--text-secondary)","font-size":"12px"}},Pt={key:1,style:{"margin-bottom":"12px"}},Jt={style:{"font-size":"12px",color:"var(--text-secondary)","margin-bottom":"4px"}},Mt={key:0,style:{color:"var(--text-muted)"}},Bt={key:2},qt={style:{"font-size":"12px",color:"var(--text-secondary)","margin-bottom":"4px"}},Kt={key:0,style:{color:"var(--text-muted)"}},Vt={key:0,style:{"padding-top":"8px"}},Wt={style:{"white-space":"pre-wrap",color:"var(--text-primary)"}},Yt={style:{"margin-top":"16px"}},Gt={style:{color:"var(--text-primary)","font-size":"13px","margin-bottom":"8px"}},Qt={class:"json-block"},Ht={style:{color:"var(--text-primary)","font-size":"13px","margin-bottom":"8px"}},Xt={class:"json-block"},Zt={key:0},en={style:{color:"var(--text-primary)","font-size":"13px","margin-bottom":"8px"}},tn={class:"json-block"},nn={__name:"NLProgramming",setup(s){const r=at(),{t:l}=ot(),g=x(!1),S=x(!1),le=x(!1),re=x(!1),he=x([]),se=x([]),F=x({translations:{total:0,byIntent:{},byStatus:{draft:0,complete:0,refined:0},avgCompleteness:0},conventions:{total:0,byCategory:{}}}),ie=x("translations"),K=x(""),V=x(""),H=x(""),ue=x(!1),X=x(!1),Z=x(!1),ce=x(!1),pe=ke({text:""}),w=ke({text:"",intent:null}),k=ke({category:"naming",pattern:"",examples:"",confidence:.8}),N=x(null),O=x(null),T=x(null),ee=x({noDb:!1,error:""}),$=x(null),De=Q(()=>[{title:l("nlprog.translationCols.inputText"),key:"inputText"},{title:l("nlprog.translationCols.intent"),key:"intent",width:"140px"},{title:l("nlprog.translationCols.completeness"),key:"completeness",width:"160px"},{title:l("nlprog.translationCols.status"),key:"status",width:"100px"},{title:l("nlprog.translationCols.updatedAt"),key:"updatedAt",width:"160px"},{title:l("nlprog.translationCols.action"),key:"action",width:"210px"}]),Re=Q(()=>[{title:l("nlprog.conventionCols.category"),key:"category",width:"120px"},{title:l("nlprog.conventionCols.pattern"),key:"pattern"},{title:l("nlprog.conventionCols.examples"),key:"examples",width:"220px"},{title:l("nlprog.conventionCols.confidence"),key:"confidence",width:"90px"},{title:l("nlprog.conventionCols.createdAt"),key:"createdAt",width:"160px"},{title:l("nlprog.conventionCols.action"),key:"action",width:"90px"}]),Ee=Q(()=>F.value.translations.avgCompleteness*100),Ie=Q(()=>{let e=he.value;return K.value&&(e=e.filter(n=>n.intent===K.value)),V.value&&(e=e.filter(n=>n.status===V.value)),e}),Ue=Q(()=>H.value?se.value.filter(e=>e.category===H.value):se.value);function J(e){const n=`nlprog.intentLabels.${e}`,c=l(n);return c===n?e:c}function te(e){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"}[e]||"default"}function W(e){const n=`nlprog.statusLabels.${e}`,c=l(n);return c===n?e:c}function $e(e){return{draft:"default",complete:"green",refined:"cyan"}[e]||"default"}function de(e){const n=`nlprog.categoryLabels.${e}`,c=l(n);return c===n?e:c}function Pe(e){return{naming:"blue",architecture:"purple",testing:"cyan",style:"magenta",imports:"orange",components:"green"}[e]||"default"}function fe(e){return e>=.7?"#52c41a":e>=.4?"#faad14":"#ff4d4f"}function Je(e,n){return e?e.length>n?e.slice(0,n)+"...":e:""}function me(e){if(e==null)return"—";if(typeof e=="string")return e;try{return JSON.stringify(e,null,2)}catch{return String(e)}}function Me({key:e}){e==="analyze"?(N.value=null,O.value=null,T.value=null,ue.value=!0):e==="translate"?(ee.value={noDb:!1,error:""},X.value=!0):e==="convention"&&(Z.value=!0)}async function R(){g.value=!0;try{const[e,n,c]=await Promise.all([r.execute("nlprog list --limit 200 --json",1e4).catch(()=>({output:""})),r.execute("nlprog conventions --limit 200 --json",1e4).catch(()=>({output:""})),r.execute("nlprog stats --json",8e3).catch(()=>({output:""}))]);he.value=_t(e.output),se.value=ht(n.output),F.value=Ct(c.output)}catch(e){v.error(l("nlprog.msg.loadFailed")+": "+(e?.message||e))}finally{g.value=!1}}async function Be(){const e=pe.text.trim();if(!e){v.warning(l("nlprog.msg.textEmpty"));return}S.value=!0,N.value=null,O.value=null,T.value=null;try{const n=e.replace(/"/g,'\\"'),[c,L,E]=await Promise.all([r.execute(`nlprog classify "${n}" --json`,8e3).catch(()=>({output:""})),r.execute(`nlprog extract "${n}" --json`,8e3).catch(()=>({output:""})),r.execute(`nlprog detect-stack "${n}" --json`,8e3).catch(()=>({output:""}))]);N.value=mt(c.output),O.value=gt(L.output),T.value=yt(E.output),!N.value&&!O.value&&!T.value&&v.error(l("nlprog.msg.analyzeFailed"))}catch(n){v.error(l("nlprog.msg.analyzeFailed")+": "+(n?.message||n))}finally{S.value=!1}}async function qe(){const e=w.text.trim();if(!e){v.warning(l("nlprog.msg.translateTextEmpty"));return}le.value=!0,ee.value={noDb:!1,error:""};try{const n=[`nlprog translate "${e.replace(/"/g,'\\"')}"`];w.intent&&n.push(`--intent ${w.intent}`),n.push("--json");const{output:c}=await r.execute(n.join(" "),12e3),L=kt(c);if(L.noDb){ee.value=L;return}const E=bt(c);if(!E){v.error(l("nlprog.msg.translateFailed")+": "+c.slice(0,120));return}v.success(l("nlprog.msg.translateSuccess",{pct:(E.completeness*100).toFixed(0)})),X.value=!1,Ce(),await R()}catch(n){v.error(l("nlprog.msg.translateFailed")+": "+(n?.message||n))}finally{le.value=!1}}async function Ke(e,n){if(n!==e.status)try{const{output:c}=await r.execute(`nlprog status ${e.id} ${n} --json`,8e3);if(/error|invalid/i.test(c)&&!/"updated"/.test(c)){v.error(l("nlprog.msg.transitionFailed")+": "+c.slice(0,120));return}v.success(l("nlprog.msg.transitionSuccess",{label:W(n)})),await R()}catch(c){v.error(l("nlprog.msg.transitionFailed")+": "+(c?.message||c))}}async function Ve(e){try{const{output:n}=await r.execute(`nlprog remove ${e.id} --json`,8e3);if(/error/i.test(n)&&!/"removed"/.test(n)){v.error(l("nlprog.msg.deleteFailed")+": "+n.slice(0,120));return}v.success(l("nlprog.msg.deleteSuccess")),await R()}catch(n){v.error(l("nlprog.msg.deleteFailed")+": "+(n?.message||n))}}function We(e){$.value=e,ce.value=!0}async function Ye(){const e=k.pattern.trim();if(!e){v.warning(l("nlprog.msg.patternEmpty"));return}if(k.examples.trim())try{JSON.parse(k.examples)}catch{v.warning(l("nlprog.msg.examplesBadJson"));return}re.value=!0;try{const n=[`nlprog convention-add --category ${k.category}`];n.push(`--pattern "${e.replace(/"/g,'\\"')}"`),k.examples.trim()&&n.push(`--examples '${k.examples.trim().replace(/'/g,"'\\''")}'`),k.confidence!=null&&n.push(`--confidence ${k.confidence}`),n.push("--json");const{output:c}=await r.execute(n.join(" "),1e4);if(/error|invalid|失败/i.test(c)&&!/"added"/.test(c)){v.error(l("nlprog.msg.addFailed")+": "+c.slice(0,120));return}v.success(l("nlprog.msg.addSuccess")),Z.value=!1,Se(),ie.value="conventions",await R()}catch(n){v.error(l("nlprog.msg.addFailed")+": "+(n?.message||n))}finally{re.value=!1}}async function Ge(e){try{const{output:n}=await r.execute(`nlprog convention-remove ${e.id} --json`,8e3);if(/error/i.test(n)&&!/"removed"/.test(n)){v.error(l("nlprog.msg.deleteFailed")+": "+n.slice(0,120));return}v.success(l("nlprog.msg.deleteSuccess")),await R()}catch(n){v.error(l("nlprog.msg.deleteFailed")+": "+(n?.message||n))}}function Ce(){w.text="",w.intent=null}function Se(){k.category="naming",k.pattern="",k.examples="",k.confidence=.8}return dt(R),(e,n)=>{const c=d("a-button"),L=d("a-menu-item"),E=d("a-menu"),ze=d("a-dropdown"),Ae=d("a-space"),Y=d("a-statistic"),I=d("a-card"),G=d("a-col"),Qe=d("a-row"),z=d("a-tag"),M=d("a-radio-button"),ge=d("a-radio-group"),Te=d("a-progress"),je=d("a-popconfirm"),Fe=d("a-table"),we=d("a-tab-pane"),He=d("a-tabs"),ye=d("a-textarea"),U=d("a-form-item"),ve=d("a-form"),ne=d("a-modal"),Ne=d("a-select-option"),Oe=d("a-select"),Xe=d("a-alert"),Ze=d("a-input"),et=d("a-input-number"),B=d("a-descriptions-item"),tt=d("a-descriptions");return u(),m("div",null,[b("div",St,[b("div",null,[b("h2",zt,i(e.$t("nlprog.title")),1),b("p",At,i(e.$t("nlprog.subtitle")),1)]),a(Ae,null,{default:t(()=>[a(c,{loading:g.value,onClick:R},{icon:t(()=>[a(y(rt))]),default:t(()=>[p(" "+i(e.$t("nlprog.refresh")),1)]),_:1},8,["loading"]),a(ze,{trigger:["click"]},{overlay:t(()=>[a(E,{onClick:Me},{default:t(()=>[a(L,{key:"analyze"},{default:t(()=>[a(y(it)),p(" "+i(e.$t("nlprog.actions.analyze")),1)]),_:1}),a(L,{key:"translate"},{default:t(()=>[a(y(_e)),p(" "+i(e.$t("nlprog.actions.translate")),1)]),_:1}),a(L,{key:"convention"},{default:t(()=>[a(y(be)),p(" "+i(e.$t("nlprog.actions.convention")),1)]),_:1})]),_:1})]),default:t(()=>[a(c,{type:"primary"},{icon:t(()=>[a(y(st))]),default:t(()=>[p(" "+i(e.$t("nlprog.actionDropdown")),1)]),_:1})]),_:1})]),_:1})]),a(Qe,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:t(()=>[a(G,{xs:12,sm:8,lg:5},{default:t(()=>[a(I,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[a(Y,{title:e.$t("nlprog.stats.translations"),value:F.value.translations.total,"value-style":{color:"#1677ff",fontSize:"20px"}},{prefix:t(()=>[a(y(_e))]),_:1},8,["title","value"])]),_:1})]),_:1}),a(G,{xs:12,sm:8,lg:5},{default:t(()=>[a(I,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[a(Y,{title:e.$t("nlprog.stats.avgCompleteness"),value:Ee.value,precision:1,suffix:"%","value-style":{color:F.value.translations.avgCompleteness>=.7?"#52c41a":"#faad14",fontSize:"20px"}},{prefix:t(()=>[a(y(ut))]),_:1},8,["title","value","value-style"])]),_:1})]),_:1}),a(G,{xs:12,sm:8,lg:5},{default:t(()=>[a(I,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[a(Y,{title:e.$t("nlprog.stats.drafts"),value:F.value.translations.byStatus.draft,"value-style":{color:"#faad14",fontSize:"20px"}},{prefix:t(()=>[a(y(ct))]),_:1},8,["title","value"])]),_:1})]),_:1}),a(G,{xs:12,sm:8,lg:5},{default:t(()=>[a(I,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[a(Y,{title:e.$t("nlprog.stats.completed"),value:F.value.translations.byStatus.complete,"value-style":{color:"#52c41a",fontSize:"20px"}},{prefix:t(()=>[a(y(pt))]),_:1},8,["title","value"])]),_:1})]),_:1}),a(G,{xs:24,sm:8,lg:4},{default:t(()=>[a(I,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:t(()=>[a(Y,{title:e.$t("nlprog.stats.conventions"),value:F.value.conventions.total,"value-style":{color:"#722ed1",fontSize:"20px"}},{prefix:t(()=>[a(y(be))]),_:1},8,["title","value"])]),_:1})]),_:1})]),_:1}),F.value.translations.total>0?(u(),h(I,{key:0,title:e.$t("nlprog.intentCard"),size:"small",style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"20px"},"body-style":{padding:"12px 16px"}},{default:t(()=>[a(Ae,{size:[12,8],wrap:""},{default:t(()=>[(u(!0),m(C,null,j(y(oe),o=>(u(),h(z,{key:o,color:te(o)},{default:t(()=>[p(i(J(o))+": "+i(F.value.translations.byIntent[o]||0),1)]),_:2},1032,["color"]))),128))]),_:1})]),_:1},8,["title"])):_("",!0),a(He,{activeKey:ie.value,"onUpdate:activeKey":n[3]||(n[3]=o=>ie.value=o),class:"nlprog-tabs"},{default:t(()=>[a(we,{key:"translations",tab:e.$t("nlprog.tabs.translations")},{default:t(()=>[b("div",Tt,[a(ge,{value:K.value,"onUpdate:value":n[0]||(n[0]=o=>K.value=o),size:"small"},{default:t(()=>[a(M,{value:""},{default:t(()=>[p(i(e.$t("nlprog.filter.allIntents")),1)]),_:1}),(u(!0),m(C,null,j(y(oe),o=>(u(),h(M,{key:o,value:o},{default:t(()=>[p(i(J(o)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"]),a(ge,{value:V.value,"onUpdate:value":n[1]||(n[1]=o=>V.value=o),size:"small","button-style":"solid"},{default:t(()=>[a(M,{value:""},{default:t(()=>[p(i(e.$t("nlprog.filter.allStatuses")),1)]),_:1}),(u(!0),m(C,null,j(y(Le),o=>(u(),h(M,{key:o,value:o},{default:t(()=>[p(i(W(o)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),a(Fe,{columns:De.value,"data-source":Ie.value,pagination:{pageSize:20,showTotal:o=>e.$t("nlprog.table.totalSuffix",{n:o})},size:"small",loading:g.value,style:{background:"var(--bg-card)"}},{bodyCell:t(({column:o,record:f})=>[o.key==="inputText"?(u(),m("span",jt,i(Je(f.inputText,80)),1)):_("",!0),o.key==="intent"?(u(),h(z,{key:1,color:te(f.intent),style:{"font-size":"11px"}},{default:t(()=>[p(i(J(f.intent)),1)]),_:2},1032,["color"])):_("",!0),o.key==="completeness"?(u(),h(Te,{key:2,percent:Math.round(f.completenessScore*100),size:"small","stroke-color":fe(f.completenessScore),format:()=>(f.completenessScore*100).toFixed(0)+"%"},null,8,["percent","stroke-color","format"])):_("",!0),o.key==="status"?(u(),h(z,{key:3,color:$e(f.status)},{default:t(()=>[p(i(W(f.status)),1)]),_:2},1032,["color"])):_("",!0),o.key==="updatedAt"?(u(),m("span",Ft,i(y(ae)(f.updatedAt)),1)):_("",!0),o.key==="action"?(u(),m(C,{key:5},[a(c,{size:"small",type:"link",onClick:A=>We(f)},{default:t(()=>[p(i(e.$t("nlprog.table.actionDetails")),1)]),_:1},8,["onClick"]),a(ze,{trigger:["click"]},{overlay:t(()=>[a(E,{onClick:A=>Ke(f,A.key)},{default:t(()=>[(u(!0),m(C,null,j(y(Le),A=>(u(),h(L,{key:A,disabled:A===f.status},{default:t(()=>[p(i(W(A)),1)]),_:2},1032,["disabled"]))),128))]),_:2},1032,["onClick"])]),default:t(()=>[a(c,{size:"small",type:"link"},{default:t(()=>[p(i(e.$t("nlprog.table.actionStatusDropdown")),1)]),_:1})]),_:2},1024),a(je,{title:e.$t("nlprog.deleteTranslationConfirm.title"),"ok-text":e.$t("nlprog.deleteTranslationConfirm.ok"),"cancel-text":e.$t("nlprog.deleteTranslationConfirm.cancel"),onConfirm:A=>Ve(f)},{default:t(()=>[a(c,{size:"small",type:"link",danger:""},{default:t(()=>[p(i(e.$t("nlprog.deleteTranslationConfirm.ok")),1)]),_:1})]),_:1},8,["title","ok-text","cancel-text","onConfirm"])],64)):_("",!0)]),emptyText:t(()=>[b("div",wt,[a(y(_e),{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),p(" "+i(K.value||V.value?e.$t("nlprog.table.emptyTranslationsFiltered"):e.$t("nlprog.table.emptyTranslations")),1)])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"]),a(we,{key:"conventions",tab:e.$t("nlprog.tabs.conventions")},{default:t(()=>[b("div",Nt,[a(ge,{value:H.value,"onUpdate:value":n[2]||(n[2]=o=>H.value=o),size:"small","button-style":"solid"},{default:t(()=>[a(M,{value:""},{default:t(()=>[p(i(e.$t("nlprog.filter.allCategories")),1)]),_:1}),(u(!0),m(C,null,j(y(xe),o=>(u(),h(M,{key:o,value:o},{default:t(()=>[p(i(de(o)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),a(Fe,{columns:Re.value,"data-source":Ue.value,pagination:{pageSize:20,showTotal:o=>e.$t("nlprog.table.totalSuffix",{n:o})},size:"small",loading:g.value,style:{background:"var(--bg-card)"}},{bodyCell:t(({column:o,record:f})=>[o.key==="category"?(u(),h(z,{key:0,color:Pe(f.category)},{default:t(()=>[p(i(de(f.category)),1)]),_:2},1032,["color"])):_("",!0),o.key==="pattern"?(u(),m("span",Ot,i(f.pattern),1)):_("",!0),o.key==="examples"?(u(),m(C,{key:2},[(u(!0),m(C,null,j(Array.isArray(f.examples)?f.examples.slice(0,3):[],A=>(u(),h(z,{key:A,color:"default",style:{"font-size":"10px","font-family":"monospace",margin:"1px"}},{default:t(()=>[p(i(A),1)]),_:2},1024))),128)),!Array.isArray(f.examples)||f.examples.length===0?(u(),m("span",Lt,"—")):_("",!0)],64)):_("",!0),o.key==="confidence"?(u(),m("span",{key:3,style:ft({color:fe(f.confidence),fontWeight:500})},i((f.confidence*100).toFixed(0))+"% ",5)):_("",!0),o.key==="createdAt"?(u(),m("span",Dt,i(y(ae)(f.createdAt)),1)):_("",!0),o.key==="action"?(u(),h(je,{key:5,title:e.$t("nlprog.deleteConventionConfirm.title"),"ok-text":e.$t("nlprog.deleteConventionConfirm.ok"),"cancel-text":e.$t("nlprog.deleteConventionConfirm.cancel"),onConfirm:A=>Ge(f)},{default:t(()=>[a(c,{size:"small",type:"link",danger:""},{default:t(()=>[p(i(e.$t("nlprog.deleteConventionConfirm.ok")),1)]),_:1})]),_:1},8,["title","ok-text","cancel-text","onConfirm"])):_("",!0)]),emptyText:t(()=>[b("div",Rt,[a(y(be),{style:{"font-size":"36px","margin-bottom":"10px",display:"block"}}),p(" "+i(e.$t("nlprog.table.emptyConventions")),1)])]),_:1},8,["columns","data-source","pagination","loading"])]),_:1},8,["tab"])]),_:1},8,["activeKey"]),a(ne,{open:ue.value,"onUpdate:open":n[5]||(n[5]=o=>ue.value=o),title:e.$t("nlprog.analyze_modal.title"),"confirm-loading":S.value,width:600,"ok-text":e.$t("nlprog.analyze_modal.ok"),"cancel-text":e.$t("nlprog.analyze_modal.cancel"),onOk:Be},{default:t(()=>[a(ve,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:t(()=>[a(U,{label:e.$t("nlprog.analyze_modal.textLabel"),required:""},{default:t(()=>[a(ye,{value:pe.text,"onUpdate:value":n[4]||(n[4]=o=>pe.text=o),placeholder:e.$t("nlprog.analyze_modal.textPlaceholder"),"auto-size":{minRows:3,maxRows:6}},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1}),N.value||O.value||T.value?(u(),h(I,{key:0,size:"small",style:{background:"var(--bg-base)","margin-top":"8px"}},{default:t(()=>[N.value?(u(),m("div",Et,[b("div",It,i(e.$t("nlprog.analyze_modal.intent")),1),a(z,{color:te(N.value.intent),style:{"margin-right":"6px"}},{default:t(()=>[p(i(J(N.value.intent)),1)]),_:1},8,["color"]),b("span",Ut,i(e.$t("nlprog.analyze_modal.confidenceLine",{pct:(N.value.confidence*100).toFixed(0)})),1)])):_("",!0),O.value?(u(),m("div",Pt,[b("div",Jt,i(e.$t("nlprog.analyze_modal.entities",{n:O.value.count})),1),O.value.entities.length?_("",!0):(u(),m("span",Mt,i(e.$t("nlprog.analyze_modal.notDetected")),1)),(u(!0),m(C,null,j(O.value.entities,(o,f)=>(u(),h(z,{key:f,color:"purple",style:{"font-family":"monospace","font-size":"11px",margin:"1px"}},{default:t(()=>[p(" ["+i(o.type)+"] "+i(o.value),1)]),_:2},1024))),128))])):_("",!0),T.value?(u(),m("div",Bt,[b("div",qt,i(e.$t("nlprog.analyze_modal.stack")),1),T.value.detected.length?(u(),m(C,{key:1},[a(z,{color:"cyan",style:{"font-family":"monospace"}},{default:t(()=>[p(i(e.$t("nlprog.analyze_modal.stackPrimary",{name:T.value.primary})),1)]),_:1}),(u(!0),m(C,null,j(T.value.detected.filter(o=>o!==T.value.primary),o=>(u(),h(z,{key:o,color:"default",style:{"font-family":"monospace","font-size":"11px"}},{default:t(()=>[p(i(o),1)]),_:2},1024))),128))],64)):(u(),m("span",Kt,i(e.$t("nlprog.analyze_modal.notDetected")),1))])):_("",!0)]),_:1})):_("",!0)]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),a(ne,{open:X.value,"onUpdate:open":n[8]||(n[8]=o=>X.value=o),title:e.$t("nlprog.translate_modal.title"),"confirm-loading":le.value,width:540,"ok-text":e.$t("nlprog.translate_modal.ok"),"cancel-text":e.$t("nlprog.translate_modal.cancel"),onOk:qe,onCancel:Ce},{default:t(()=>[a(ve,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:t(()=>[a(U,{label:e.$t("nlprog.translate_modal.textLabel"),required:""},{default:t(()=>[a(ye,{value:w.text,"onUpdate:value":n[6]||(n[6]=o=>w.text=o),placeholder:e.$t("nlprog.translate_modal.textPlaceholder"),"auto-size":{minRows:3,maxRows:6}},null,8,["value","placeholder"])]),_:1},8,["label"]),a(U,{label:e.$t("nlprog.translate_modal.intentLabel")},{default:t(()=>[a(Oe,{value:w.intent,"onUpdate:value":n[7]||(n[7]=o=>w.intent=o),"allow-clear":"",placeholder:e.$t("nlprog.translate_modal.intentPlaceholder")},{default:t(()=>[(u(!0),m(C,null,j(y(oe),o=>(u(),h(Ne,{key:o,value:o},{default:t(()=>[p(i(J(o)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value","placeholder"])]),_:1},8,["label"])]),_:1}),ee.value.noDb?(u(),h(Xe,{key:0,type:"warning","show-icon":"",message:e.$t("nlprog.translate_modal.noDbMessage"),description:e.$t("nlprog.translate_modal.noDbDescription"),style:{"margin-top":"12px"}},null,8,["message","description"])):_("",!0)]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),a(ne,{open:Z.value,"onUpdate:open":n[13]||(n[13]=o=>Z.value=o),title:e.$t("nlprog.convention_modal.title"),"confirm-loading":re.value,width:540,"ok-text":e.$t("nlprog.convention_modal.ok"),"cancel-text":e.$t("nlprog.convention_modal.cancel"),onOk:Ye,onCancel:Se},{default:t(()=>[a(ve,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:t(()=>[a(U,{label:e.$t("nlprog.convention_modal.categoryLabel"),required:""},{default:t(()=>[a(Oe,{value:k.category,"onUpdate:value":n[9]||(n[9]=o=>k.category=o)},{default:t(()=>[(u(!0),m(C,null,j(y(xe),o=>(u(),h(Ne,{key:o,value:o},{default:t(()=>[p(i(de(o)),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),_:1},8,["label"]),a(U,{label:e.$t("nlprog.convention_modal.patternLabel"),required:""},{default:t(()=>[a(Ze,{value:k.pattern,"onUpdate:value":n[10]||(n[10]=o=>k.pattern=o),placeholder:e.$t("nlprog.convention_modal.patternPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),a(U,{label:e.$t("nlprog.convention_modal.examplesLabel")},{default:t(()=>[a(ye,{value:k.examples,"onUpdate:value":n[11]||(n[11]=o=>k.examples=o),placeholder:e.$t("nlprog.convention_modal.examplesPlaceholder"),"auto-size":{minRows:2,maxRows:4}},null,8,["value","placeholder"])]),_:1},8,["label"]),a(U,{label:e.$t("nlprog.convention_modal.confidenceLabel")},{default:t(()=>[a(et,{value:k.confidence,"onUpdate:value":n[12]||(n[12]=o=>k.confidence=o),min:0,max:1,step:.05,style:{width:"100%"}},null,8,["value"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),a(ne,{open:ce.value,"onUpdate:open":n[14]||(n[14]=o=>ce.value=o),title:e.$t("nlprog.details.title",{id:$.value?.id?.slice(0,8)||""}),width:720,footer:null},{default:t(()=>[$.value?(u(),m("div",Vt,[a(tt,{column:2,size:"small",bordered:""},{default:t(()=>[a(B,{label:e.$t("nlprog.details.intent")},{default:t(()=>[a(z,{color:te($.value.intent)},{default:t(()=>[p(i(J($.value.intent)),1)]),_:1},8,["color"])]),_:1},8,["label"]),a(B,{label:e.$t("nlprog.details.status")},{default:t(()=>[a(z,{color:$e($.value.status)},{default:t(()=>[p(i(W($.value.status)),1)]),_:1},8,["color"])]),_:1},8,["label"]),a(B,{label:e.$t("nlprog.details.completeness"),span:2},{default:t(()=>[a(Te,{percent:Math.round($.value.completenessScore*100),"stroke-color":fe($.value.completenessScore),size:"small"},null,8,["percent","stroke-color"])]),_:1},8,["label"]),a(B,{label:e.$t("nlprog.details.createdAt")},{default:t(()=>[p(i(y(ae)($.value.createdAt)),1)]),_:1},8,["label"]),a(B,{label:e.$t("nlprog.details.updatedAt")},{default:t(()=>[p(i(y(ae)($.value.updatedAt)),1)]),_:1},8,["label"]),a(B,{label:e.$t("nlprog.details.inputText"),span:2},{default:t(()=>[b("span",Wt,i($.value.inputText),1)]),_:1},8,["label"])]),_:1}),b("div",Yt,[b("h4",Gt,i(e.$t("nlprog.details.entities")),1),b("pre",Qt,i(me($.value.entities)),1)]),b("div",null,[b("h4",Ht,i(e.$t("nlprog.details.techStack")),1),b("pre",Xt,i(me($.value.techStack)),1)]),$.value.spec?(u(),m("div",Zt,[b("h4",en,i(e.$t("nlprog.details.spec")),1),b("pre",tn,i(me($.value.spec)),1)])):_("",!0)])):_("",!0)]),_:1},8,["open","title"])])}}},sn=nt(nn,[["__scopeId","data-v-55209f60"]]);export{sn as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.page-title[data-v-55209f60]{margin:0;color:var(--text-primary);font-size:22px;font-weight:600}.page-sub[data-v-55209f60]{margin:4px 0 0;color:var(--text-secondary);font-size:13px}.nlprog-tabs[data-v-55209f60] .ant-tabs-nav{margin-bottom:16px}.filter-bar[data-v-55209f60]{display:flex;align-items:center;gap:12px;margin-bottom:12px;flex-wrap:wrap}.json-block[data-v-55209f60]{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 +0,0 @@
|
|
|
1
|
-
.ss-error[data-v-d65e43c0]{margin-bottom:12px}.ss-actions[data-v-d65e43c0]{display:flex;align-items:center;gap:8px;margin-bottom:12px}.ss-preview[data-v-d65e43c0]{max-height:240px;overflow:auto;border:1px solid var(--border-color, #f0f0f0);border-radius:4px;margin-bottom:12px;background:var(--bg-base, #fafafa)}.ss-preview img[data-v-d65e43c0]{display:block;max-width:100%;height:auto}[data-v-fe526205] .note-row:hover td{background:var(--bg-card-hover)!important;cursor:pointer}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import{w as Z,K as s,L as v,Q as I,N as n,M as U,c as a,S as N,r as c,a as pe,f as ee,u as A,R as L,O as k,P as q,o as we,H as ye,F as ce,Y as de}from"./vendor-DhFY8mDK.js";import{u as ie,d as $,_ as ve}from"./index-D0d2TS5o.js";import{u as _e}from"./useFs-CZCJDMup.js";import{u as fe}from"./useShellMode-CgR0wCYM.js";import{aw as me,ax as he,as as ke,ay as xe,R as be,l as Se,az as $e}from"./icons--SBOhPAi.js";function Ce(d){if(d&&d.ok===!1)throw new Error(d.error||"knowledge handler failed");return d?.result??d}function re(d){return String(d).replace(/(["\\])/g,"\\$1")}function ge(){const d=ie();async function B({title:C,content:x,tags:b=[],type:f="note"}={}){if(typeof C!="string"||!C.trim())throw new Error("title is required");if(typeof x!="string")throw new Error("content is required");const i=Array.isArray(b)?b.filter(Boolean):[];if(fe().isEmbedded){const y=await d.sendRaw({type:"knowledge.add-item",item:{title:C.trim(),content:x,tags:i,type:f}},2e4),S=Ce(y);if(S?.success===!1)throw new Error(S.error||"knowledge.add-item failed");return S?.item??null}let r=`note add "${re(C.trim())}" -c "${re(x)}"`;i.length&&(r+=` -t "${re(i.join(","))}"`);const{output:l}=await d.execute(r,15e3);if(l&&/^[\s\S]*✖|error/i.test(l))throw new Error(l.slice(0,200));return{title:C.trim(),content:x,tags:i,type:f}}return{addItem:B}}const Re={key:0,style:{"margin-bottom":"16px"}},Ve={__name:"ClipboardImportDialog",props:{modelValue:{type:Boolean,default:!1}},emits:["update:modelValue","saved"],setup(d,{emit:B}){const C=d,x=B,b=ge(),f=ee({get:()=>C.modelValue,set:p=>x("update:modelValue",p)}),i=c(!1),r=c(""),l=pe({title:"",content:"",tagsRaw:""}),y=()=>`剪贴板导入 - ${new Date().toLocaleString()}`;function S(){l.title=y(),l.content="",l.tagsRaw="",r.value=""}async function z(){if(r.value="",!navigator.clipboard?.readText){r.value="当前环境不支持剪贴板读取 API";return}try{const p=await navigator.clipboard.readText();l.content=p||"",p||(r.value="剪贴板为空")}catch(p){r.value="读取剪贴板失败:"+(p?.message||String(p))}}Z(()=>C.modelValue,async p=>{p&&(S(),await z())},{immediate:!0});async function E(){if(!l.content.trim()){$.warning("内容为空,无法保存");return}i.value=!0;try{const p=l.tagsRaw.split(/[,,]/).map(g=>g.trim()).filter(Boolean),m=await b.addItem({title:l.title.trim()||y(),content:l.content,tags:p,type:"note"});$.success("已保存到知识库"),x("saved",m),f.value=!1}catch(p){$.error("保存失败:"+(p?.message||String(p)))}finally{i.value=!1}}function T(){f.value=!1}return(p,m)=>{const g=s("a-alert"),u=s("a-input"),_=s("a-form-item"),P=s("a-textarea"),W=s("a-form"),F=s("a-modal");return v(),I(F,{open:f.value,"onUpdate:open":m[3]||(m[3]=O=>f.value=O),title:"剪贴板导入",width:640,"ok-text":i.value?"保存中…":"保存到知识库","cancel-text":"取消","ok-button-props":{loading:i.value,disabled:!l.content.trim()},onOk:E,onCancel:T},{default:n(()=>[r.value?(v(),U("div",Re,[a(g,{type:"warning","show-icon":"",message:r.value,description:"请确认浏览器/系统已授予剪贴板读取权限,或手动粘贴到下方输入框。"},null,8,["message"])])):N("",!0),a(W,{layout:"vertical",model:l},{default:n(()=>[a(_,{label:"标题"},{default:n(()=>[a(u,{value:l.title,"onUpdate:value":m[0]||(m[0]=O=>l.title=O),placeholder:"导入条目的标题","allow-clear":""},null,8,["value"])]),_:1}),a(_,{label:"内容"},{default:n(()=>[a(P,{value:l.content,"onUpdate:value":m[1]||(m[1]=O=>l.content=O),placeholder:"粘贴或编辑要保存的内容…","auto-size":{minRows:10,maxRows:20},"show-count":""},null,8,["value"])]),_:1}),a(_,{label:"标签(逗号分隔,可选)"},{default:n(()=>[a(u,{value:l.tagsRaw,"onUpdate:value":m[2]||(m[2]=O=>l.tagsRaw=O),placeholder:"例如:素材, 链接","allow-clear":""},null,8,["value"])]),_:1})]),_:1},8,["model"])]),_:1},8,["open","ok-text","ok-button-props"])}}};function ue(d){if(d&&d.ok===!1)throw new Error(d.error||"screenshot handler failed");return d?.result??d}function Ee(){const d=ie();if(!fe().isEmbedded)return{unsupported:!0,capture:async()=>{throw new Error("截图需要桌面壳;浏览器模式不支持")},ocr:async()=>{throw new Error("OCR 仅在桌面壳可用")},cleanup:async()=>{}};async function C({screenIndex:f}={}){const i=await d.sendRaw({type:"screenshot.capture",screenIndex:f},3e4),r=ue(i);if(r?.success===!1)throw new Error(r.error||"screenshot.capture failed");return r}async function x(f,i,r){if(!f)throw new Error("path is required");const l=await d.sendRaw({type:"screenshot.ocr",path:f,lang:i,engine:r},9e4),y=ue(l);if(y?.success===!1)throw new Error(y.error||"screenshot.ocr failed");return y}async function b(f){if(f)try{const i=await d.sendRaw({type:"screenshot.cleanup",path:f},1e4),r=ue(i);r?.success===!1&&console.warn("[useScreenshot] cleanup failed:",r.error)}catch(i){console.warn("[useScreenshot] cleanup error:",i?.message||i)}}return{unsupported:!1,capture:C,ocr:x,cleanup:b}}const Oe={key:0,style:{"margin-bottom":"16px"}},Ue={key:1,class:"ss-error"},Ne={key:2},Ie={class:"ss-actions"},ze={key:0,class:"ss-preview"},Te=["src"],Le={__name:"ScreenshotImportDialog",props:{modelValue:{type:Boolean,default:!1}},emits:["update:modelValue","saved"],setup(d,{emit:B}){const C=d,x=B,b=Ee(),f=ge(),i=ee({get:()=>C.modelValue,set:w=>x("update:modelValue",w)}),r=c(!1),l=c(!1),y=c(!1),S=c(""),z=c(null),E=c("auto"),T=c(null),p=c(""),m=c(""),g=c(null),u=pe({title:"",content:"",tagsRaw:""}),_=ee(()=>!!g.value&&(u.content.trim()||"").length>0),P=()=>`截图识别 - ${new Date().toLocaleString()}`;function W(){u.title=P(),u.content="",u.tagsRaw="",S.value="",z.value=null,T.value=null,p.value="",m.value="",g.value=null}async function F(){g.value?.path&&await b.cleanup(g.value.path)}async function O(){if(b.unsupported)return S.value="浏览器模式不支持截图,请用桌面壳",null;l.value=!0;try{return await b.capture({})}catch(w){return S.value=w?.message||String(w),null}finally{l.value=!1}}async function M(w){if(w){y.value=!0;try{const e=await b.ocr(w,void 0,E.value);u.content=e.text||"",z.value=typeof e.confidence=="number"?e.confidence:null,T.value=e.engine||null,p.value=e.model||"",m.value=e.fallbackReason||"",e.text||$.info("OCR 未识别到文本,可手动输入")}catch(e){$.warning("OCR 失败: "+(e?.message||String(e)))}finally{y.value=!1}}}async function Y(){m.value=""}async function te(){await F(),W();const w=await O();w&&(g.value=w,await M(w.path))}async function Q(){g.value?.path&&await M(g.value.path)}Z(()=>C.modelValue,async w=>{if(w){W();const e=await O();e&&(g.value=e,await M(e.path))}else await F(),g.value=null},{immediate:!0});async function ae(){if(!_.value){$.warning("识别文本为空,无法保存");return}r.value=!0;try{const w=u.tagsRaw.split(/[,,]/).map(t=>t.trim()).filter(Boolean),e=await f.addItem({title:u.title.trim()||P(),content:u.content,tags:w,type:"note"});$.success("已保存到知识库"),x("saved",e),await F(),i.value=!1}catch(w){$.error("保存失败: "+(w?.message||String(w)))}finally{r.value=!1}}async function ne(){await F(),i.value=!1}return(w,e)=>{const t=s("a-alert"),V=s("a-button"),D=s("a-select-option"),h=s("a-select"),R=s("a-tag"),K=s("a-tooltip"),G=s("a-input"),j=s("a-form-item"),H=s("a-spin"),oe=s("a-textarea"),le=s("a-form"),J=s("a-modal");return v(),I(J,{open:i.value,"onUpdate:open":e[4]||(e[4]=o=>i.value=o),title:"截图识别",width:780,"ok-text":r.value?"保存中…":"保存到知识库","cancel-text":"取消","ok-button-props":{loading:r.value,disabled:!_.value},onOk:ae,onCancel:ne},{default:n(()=>[A(b).unsupported?(v(),U("div",Oe,[a(t,{type:"warning","show-icon":"",message:"浏览器模式不支持截图",description:"screenshot-desktop 需要 OS 原生 API,请用桌面壳 (cc desktop) 打开本面板。"})])):S.value?(v(),U("div",Ue,[a(t,{type:"error","show-icon":"",message:S.value},null,8,["message"])])):(v(),U("div",Ne,[L("div",Ie,[a(V,{size:"small",loading:l.value,onClick:te},{icon:n(()=>[a(A(me))]),default:n(()=>[e[5]||(e[5]=k(" 重新截图 ",-1))]),_:1},8,["loading"]),a(V,{size:"small",loading:y.value,disabled:!g.value||y.value,onClick:Q},{icon:n(()=>[a(A(he))]),default:n(()=>[e[6]||(e[6]=k(" 重跑 OCR ",-1))]),_:1},8,["loading","disabled"]),a(h,{value:E.value,"onUpdate:value":e[0]||(e[0]=o=>E.value=o),size:"small",style:{width:"140px"},disabled:y.value,onChange:Y},{default:n(()=>[a(D,{value:"auto"},{default:n(()=>[...e[7]||(e[7]=[k("自动 (推荐)",-1)])]),_:1}),a(D,{value:"llm"},{default:n(()=>[...e[8]||(e[8]=[k("视觉 LLM",-1)])]),_:1}),a(D,{value:"tesseract"},{default:n(()=>[...e[9]||(e[9]=[k("本地 Tesseract",-1)])]),_:1})]),_:1},8,["value","disabled"]),T.value==="llm"?(v(),I(R,{key:0,color:"blue"},{default:n(()=>[k(q(p.value||"豆包视觉"),1)]),_:1})):T.value==="tesseract"&&z.value!==null?(v(),I(R,{key:1},{default:n(()=>[k(" Tesseract · "+q(z.value)+"% ",1)]),_:1})):N("",!0),m.value?(v(),I(K,{key:2,title:`LLM 识别失败已回落 Tesseract: ${m.value}`},{default:n(()=>[a(R,{color:"orange"},{default:n(()=>[...e[10]||(e[10]=[k("回落 Tesseract",-1)])]),_:1})]),_:1},8,["title"])):N("",!0)]),g.value?.dataUrl?(v(),U("div",ze,[L("img",{src:g.value.dataUrl,alt:"screenshot"},null,8,Te)])):N("",!0),a(le,{layout:"vertical",model:u},{default:n(()=>[a(j,{label:"标题"},{default:n(()=>[a(G,{value:u.title,"onUpdate:value":e[1]||(e[1]=o=>u.title=o),placeholder:"导入条目的标题","allow-clear":""},null,8,["value"])]),_:1}),a(j,null,{label:n(()=>[e[11]||(e[11]=L("span",null,"识别文本",-1)),y.value?(v(),I(H,{key:0,size:"small",style:{"margin-left":"8px"}})):N("",!0)]),default:n(()=>[a(oe,{value:u.content,"onUpdate:value":e[2]||(e[2]=o=>u.content=o),placeholder:y.value?"正在识别…":"识别结果,可手动编辑","auto-size":{minRows:8,maxRows:16},"show-count":""},null,8,["value","placeholder"])]),_:1}),a(j,{label:"标签 (逗号分隔, 可选)"},{default:n(()=>[a(G,{value:u.tagsRaw,"onUpdate:value":e[3]||(e[3]=o=>u.tagsRaw=o),placeholder:"例如: 截图, 参考","allow-clear":""},null,8,["value"])]),_:1})]),_:1},8,["model"])]))]),_:1},8,["open","ok-text","ok-button-props"])}}},Be=ve(Le,[["__scopeId","data-v-d65e43c0"]]),qe={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},Me={class:"page-sub"},De={style:{"margin-bottom":"16px",display:"flex",gap:"10px"}},Ae={key:0,style:{"text-align":"center",padding:"60px"}},Fe={key:0,style:{color:"#e0e0e0","font-weight":"500"}},Pe={key:2,style:{color:"var(--text-secondary)","font-size":"12px"}},We={style:{padding:"40px",color:"var(--text-muted)","text-align":"center"}},je={key:0,style:{"max-height":"60vh","overflow-y":"auto"}},Qe={style:{"margin-bottom":"10px"}},Ke={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)"}},He={__name:"Notes",setup(d){const B=ie(),C=_e(),x=ye(),b=c(!1),f=c(!1),i=c(!1),r=c(!1),l=c(""),y=c([]),S=c([]),z=c(!1),E=c(""),T=c(!1),p=c(!1),m=c(!1),g=c(!1),u=c(null),_=c({title:"",content:"",tags:""});async function P(){$.success("剪贴板内容已保存到知识库"),await M()}async function W(){$.success("截图内容已保存到知识库"),await M()}const F=ee(()=>z.value?S.value:y.value),O=[{title:"标题",dataIndex:"title",key:"title",width:"30%"},{title:"预览",key:"content",ellipsis:!0},{title:"标签",key:"tags",width:"20%"},{title:"操作",key:"actions",width:"80px"}];async function M(){f.value=!0,l.value="";try{const{output:e}=await B.execute("note list",2e4);y.value=Y(e)}catch(e){l.value=`加载失败: ${e.message}`}finally{f.value=!1}}function Y(e){const t=[],V=e.split(`
|
|
2
|
-
`);for(const D of V){const h=D.trim();if(!h||h.startsWith("─")||h.startsWith("Note")||h.match(/^\d+ note/i))continue;const R=h.match(/^(\d+)\.\s+(.+?)(?:\s+\[([^\]]+)\])?\s*(?:-\s*(.*))?$/);R?t.push({key:R[1],id:R[1],title:R[2].trim(),tags:R[3]?R[3].split(",").map(K=>K.trim()):[],preview:(R[4]||"").trim().slice(0,100),content:""}):h.length>2&&!h.startsWith("✖")&&!h.startsWith("[")&&t.push({key:t.length,id:String(t.length),title:h,tags:[],preview:"",content:""})}return t}async function te(){if(!E.value.trim()){Q();return}i.value=!0,z.value=!0;try{const{output:e}=await B.execute(`note search "${E.value}"`,15e3);S.value=Y(e)}catch{S.value=[]}finally{i.value=!1}}function Q(){E.value="",z.value=!1,S.value=[]}async function ae(){if(!_.value.title.trim()){$.warning("请输入标题");return}r.value=!0;try{let e=`note add "${_.value.title}"`;_.value.content&&(e+=` -c "${_.value.content.replace(/"/g,'\\"')}"`),_.value.tags&&(e+=` -t "${_.value.tags}"`);const{output:t}=await B.execute(e,15e3);t.includes("✖")||t.toLowerCase().includes("error")?$.error("添加失败: "+t.slice(0,100)):($.success("笔记已添加"),T.value=!1,_.value={title:"",content:"",tags:""},await M())}catch(e){$.error("添加失败: "+e.message)}finally{r.value=!1}}function ne(e){u.value=e,p.value=!0}async function w(){if(!u.value)return;const e=u.value,t=e.tags?.length?`tags: [${e.tags.join(", ")}]
|
|
3
|
-
|
|
4
|
-
`:"",V=`# ${e.title}
|
|
5
|
-
|
|
6
|
-
${t}${e.content||e.preview||""}
|
|
7
|
-
`,D=(e.title||"note").replace(/[\\/:*?"<>|\x00-\x1f]+/g,"_").slice(0,80)||"note";b.value=!0;try{const h=await C.saveText(V,{defaultPath:`${D}.md`,filters:[{name:"Markdown",extensions:["md"]}]});if(h.canceled)return;$.success(h.path?`已导出到 ${h.path}`:"已导出")}catch(h){$.error(`导出失败: ${h.message||h}`)}finally{b.value=!1}}return we(()=>{M(),x.query.clipboardImport&&(m.value=!0),x.query.screenshotOcr&&(g.value=!0)}),Z(()=>x.query.clipboardImport,e=>{e&&(m.value=!0)}),Z(()=>x.query.screenshotOcr,e=>{e&&(g.value=!0)}),(e,t)=>{const V=s("a-button"),D=s("a-space"),h=s("a-input-search"),R=s("a-tag"),K=s("a-spin"),G=s("a-table"),j=s("a-input"),H=s("a-form-item"),oe=s("a-textarea"),le=s("a-form"),J=s("a-modal");return v(),U("div",null,[L("div",qe,[L("div",null,[t[12]||(t[12]=L("h2",{class:"page-title"},"笔记管理",-1)),L("p",Me,"个人知识库 · "+q(y.value.length)+" 条笔记",1)]),a(D,null,{default:n(()=>[a(V,{onClick:t[0]||(t[0]=o=>T.value=!0),type:"primary"},{icon:n(()=>[a(A(ke))]),default:n(()=>[t[13]||(t[13]=k(" 新建笔记 ",-1))]),_:1}),a(V,{onClick:t[1]||(t[1]=o=>m.value=!0)},{icon:n(()=>[a(A(xe))]),default:n(()=>[t[14]||(t[14]=k(" 剪贴板导入 ",-1))]),_:1}),a(V,{onClick:t[2]||(t[2]=o=>g.value=!0)},{icon:n(()=>[a(A(me))]),default:n(()=>[t[15]||(t[15]=k(" 截图识别 ",-1))]),_:1}),a(V,{ghost:"",loading:f.value,onClick:M},{icon:n(()=>[a(A(be))]),default:n(()=>[t[16]||(t[16]=k(" 刷新 ",-1))]),_:1},8,["loading"])]),_:1})]),L("div",De,[a(h,{value:E.value,"onUpdate:value":t[3]||(t[3]=o=>E.value=o),placeholder:"搜索笔记...","allow-clear":"",style:{"max-width":"400px"},loading:i.value,onSearch:te,onClear:Q},null,8,["value","loading"]),z.value?(v(),I(R,{key:0,color:"blue",closable:"",onClose:Q},{default:n(()=>[k(" 搜索: "+q(E.value),1)]),_:1})):N("",!0)]),f.value?(v(),U("div",Ae,[a(K,{size:"large"})])):(v(),I(G,{key:1,columns:O,"data-source":F.value,pagination:{pageSize:20,showTotal:o=>`共 ${o} 条`},size:"small",style:{background:"var(--bg-card)"},"row-class-name":()=>"note-row"},{bodyCell:n(({column:o,record:X})=>[o.key==="title"?(v(),U("span",Fe,q(X.title),1)):N("",!0),o.key==="tags"?(v(!0),U(ce,{key:1},de(X.tags,se=>(v(),I(R,{key:se,color:"blue",style:{"font-size":"10px",margin:"1px"}},{default:n(()=>[k(q(se),1)]),_:2},1024))),128)):N("",!0),o.key==="content"?(v(),U("span",Pe,q(X.preview),1)):N("",!0),o.key==="actions"?(v(),I(V,{key:3,size:"small",type:"link",onClick:se=>ne(X)},{default:n(()=>[...t[17]||(t[17]=[k("查看",-1)])]),_:1},8,["onClick"])):N("",!0)]),emptyText:n(()=>[L("div",We,[a(A(Se),{style:{"font-size":"40px","margin-bottom":"12px",display:"block"}}),k(" "+q(l.value||'暂无笔记,点击"新建笔记"添加'),1)])]),_:1},8,["data-source","pagination"])),a(J,{open:T.value,"onUpdate:open":t[7]||(t[7]=o=>T.value=o),title:"新建笔记","confirm-loading":r.value,onOk:ae},{default:n(()=>[a(le,{"label-col":{span:4},"wrapper-col":{span:20},style:{"margin-top":"16px"}},{default:n(()=>[a(H,{label:"标题",required:""},{default:n(()=>[a(j,{value:_.value.title,"onUpdate:value":t[4]||(t[4]=o=>_.value.title=o),placeholder:"笔记标题"},null,8,["value"])]),_:1}),a(H,{label:"内容"},{default:n(()=>[a(oe,{value:_.value.content,"onUpdate:value":t[5]||(t[5]=o=>_.value.content=o),rows:5,placeholder:"笔记内容..."},null,8,["value"])]),_:1}),a(H,{label:"标签"},{default:n(()=>[a(j,{value:_.value.tags,"onUpdate:value":t[6]||(t[6]=o=>_.value.tags=o),placeholder:"用逗号分隔,如: work,ideas"},null,8,["value"])]),_:1})]),_:1})]),_:1},8,["open","confirm-loading"]),a(Ve,{modelValue:m.value,"onUpdate:modelValue":t[8]||(t[8]=o=>m.value=o),onSaved:P},null,8,["modelValue"]),a(Be,{modelValue:g.value,"onUpdate:modelValue":t[9]||(t[9]=o=>g.value=o),onSaved:W},null,8,["modelValue"]),a(J,{open:p.value,"onUpdate:open":t[11]||(t[11]=o=>p.value=o),title:u.value?.title,width:"700px"},{footer:n(()=>[a(V,{onClick:t[10]||(t[10]=o=>p.value=!1)},{default:n(()=>[...t[18]||(t[18]=[k("关闭",-1)])]),_:1}),u.value?(v(),I(V,{key:0,type:"primary",loading:b.value,onClick:w},{icon:n(()=>[a(A($e))]),default:n(()=>[t[19]||(t[19]=k(" 导出 .md ",-1))]),_:1},8,["loading"])):N("",!0)]),default:n(()=>[u.value?(v(),U("div",je,[L("div",Qe,[(v(!0),U(ce,null,de(u.value.tags,o=>(v(),I(R,{key:o,color:"blue"},{default:n(()=>[k(q(o),1)]),_:2},1024))),128))]),L("pre",Ke,q(u.value.content||u.value.preview),1)])):N("",!0)]),_:1},8,["open","title"])])}}},et=ve(He,[["__scopeId","data-v-fe526205"]]);export{et as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.page-head[data-v-63dfa730]{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.page-title[data-v-63dfa730]{margin:0;color:var(--text-primary);font-size:22px;font-weight:600}.page-sub[data-v-63dfa730]{margin:4px 0 0;color:var(--text-secondary);font-size:13px}.hint[data-v-63dfa730]{margin-left:12px;color:var(--text-secondary);font-size:12px}.footer-row[data-v-63dfa730]{display:flex;align-items:center;gap:12px}.last-saved[data-v-63dfa730]{color:var(--text-muted);font-size:12px}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{u as D,_ as F,d as E}from"./index-D0d2TS5o.js";import{u as M}from"./useShellMode-CgR0wCYM.js";import{r as h,o as O,M as C,R as r,u as s,Q as A,S as N,c as t,N as d,K as f,L as y,F as W,O as j,P as q}from"./vendor-DhFY8mDK.js";import{R as z}from"./icons--SBOhPAi.js";const m={enabled:!0,sound:!0,badge:!0,desktop:!0};function V(n){if(n&&n.ok===!1)throw new Error(n.error||"notification-settings handler failed");return n?.result??n}const g={settings:h({...m})};function I(){const n=D(),o=M().isEmbedded;async function l(){if(!o)return g.settings.value={...m},g.settings.value;const u=await n.sendRaw({type:"notification-settings.get"},1e4),i=V(u);if(i?.success===!1)throw new Error(i.error||"notification-settings.get failed");return g.settings.value={...m,...i?.settings||{}},g.settings.value}async function b(u){if(!u||typeof u!="object")throw new Error("patch is required");if(!o)throw new Error("通知设置仅在嵌入式 web-shell 中可写");const i=await n.sendRaw({type:"notification-settings.update",settings:u},1e4),a=V(i);if(a?.success===!1)throw new Error(a.error||"notification-settings.update failed");return g.settings.value={...m,...a?.settings||{}},g.settings.value}return{settings:g.settings,isEmbedded:o,load:l,update:b,DEFAULTS:m}}const K={class:"footer-row"},P={key:0,class:"last-saved"},Q={__name:"NotificationSettings",setup(n){const{settings:o,isEmbedded:l,load:b,update:u}=I(),i=h(!1),a=h(!1),S=h("");async function x(){i.value=!0;try{await b()}catch(p){E.error("加载失败: "+(p?.message||String(p)))}finally{i.value=!1}}async function v(p,e){if(l){a.value=!0;try{await u({[p]:e}),S.value=new Date().toLocaleTimeString(),E.success("已保存")}catch(w){E.error("保存失败: "+(w?.message||String(w))),await b().catch(()=>{})}finally{a.value=!1}}}return O(x),(p,e)=>{const w=f("a-alert"),_=f("a-switch"),k=f("a-form-item"),R=f("a-form"),B=f("a-divider"),L=f("a-button"),T=f("a-card");return y(),C("div",null,[e[9]||(e[9]=r("div",{class:"page-head"},[r("div",null,[r("h2",{class:"page-title"},"通知设置"),r("p",{class:"page-sub"},"控制应用通知行为 · 与桌面 V5/V6 设置同源")])],-1)),s(l)?N("",!0):(y(),A(w,{key:0,type:"info","show-icon":"",style:{"margin-bottom":"16px"},message:"浏览器模式只读",description:"纯浏览器没有 Electron AppConfig 后端,本页只能展示默认值。请使用桌面壳 (cc desktop) 写入。"})),t(T,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:d(()=>[t(R,{layout:"horizontal","label-col":{span:6},"wrapper-col":{span:18}},{default:d(()=>[t(k,{label:"启用通知"},{default:d(()=>[t(_,{checked:s(o).enabled,disabled:!s(l)||a.value,onChange:e[0]||(e[0]=c=>v("enabled",c))},null,8,["checked","disabled"]),e[4]||(e[4]=r("span",{class:"hint"},"关闭后所有通知静默",-1))]),_:1}),s(o).enabled?(y(),C(W,{key:0},[t(k,{label:"通知声音"},{default:d(()=>[t(_,{checked:s(o).sound,disabled:!s(l)||a.value,onChange:e[1]||(e[1]=c=>v("sound",c))},null,8,["checked","disabled"]),e[5]||(e[5]=r("span",{class:"hint"},"桌面通知伴随系统提示音",-1))]),_:1}),t(k,{label:"角标提示"},{default:d(()=>[t(_,{checked:s(o).badge,disabled:!s(l)||a.value,onChange:e[2]||(e[2]=c=>v("badge",c))},null,8,["checked","disabled"]),e[6]||(e[6]=r("span",{class:"hint"},"在应用图标 / 任务栏角标显示未读数",-1))]),_:1}),t(k,{label:"桌面通知"},{default:d(()=>[t(_,{checked:s(o).desktop,disabled:!s(l)||a.value,onChange:e[3]||(e[3]=c=>v("desktop",c))},null,8,["checked","disabled"]),e[7]||(e[7]=r("span",{class:"hint"},"系统级 toast (Windows / macOS / Linux 原生通知)",-1))]),_:1})],64)):N("",!0)]),_:1}),t(B),r("div",K,[t(L,{loading:i.value,onClick:x},{icon:d(()=>[t(s(z))]),default:d(()=>[e[8]||(e[8]=j(" 重新加载 ",-1))]),_:1},8,["loading"]),S.value?(y(),C("span",P,"最近保存: "+q(S.value),1)):N("",!0)])]),_:1})])}}},X=F(Q,[["__scopeId","data-v-63dfa730"]]);export{X as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{_ as w}from"./index-D0d2TS5o.js";import{K as N,L as d,M as i,R as s,P as r,c as v,N as p,O as m,S as g,f as o}from"./vendor-DhFY8mDK.js";import"./icons--SBOhPAi.js";const T={class:"order-card"},$={class:"head"},b={class:"time"},C={class:"row"},O={class:"val"},V={class:"row"},B={class:"val"},D={class:"row amount-row"},M={class:"val amount"},R={key:0,class:"row"},A={class:"val mono"},F={key:1,class:"row"},I={__name:"OrderTableRenderer",props:{event:{type:Object,required:!0}},setup(l){const n=l,t=o(()=>n.event.content||{}),_=o(()=>n.event.extra||{}),y=o(()=>_.value.merchant||t.value.merchant||t.value.counterparty||"—"),x=o(()=>t.value.title||t.value.name||t.value.itemName||t.value.text||"—"),S=o(()=>{const e=t.value.amount??t.value.price??t.value.total;return e==null?"—":`${t.value.currency||"¥"} ${typeof e=="number"?e.toFixed(2):e}`}),f=o(()=>_.value.orderNo||t.value.orderNo||t.value.orderId),u=o(()=>t.value.status||t.value.state),h=o(()=>{const e=(u.value||"").toLowerCase();return e.includes("成功")||e.includes("succe")||e.includes("paid")?"green":e.includes("退")||e.includes("refund")?"orange":e.includes("失败")||e.includes("fail")?"red":"default"}),k=o(()=>{if(!n.event.occurredAt)return"";const e=new Date(n.event.occurredAt);return`${e.getFullYear()}-${String(e.getMonth()+1).padStart(2,"0")}-${String(e.getDate()).padStart(2,"0")} ${String(e.getHours()).padStart(2,"0")}:${String(e.getMinutes()).padStart(2,"0")}`});return(e,a)=>{const c=N("a-tag");return d(),i("div",T,[s("div",$,[s("span",b,r(k.value),1),v(c,{color:"gold"},{default:p(()=>[m(r(l.event.source.adapter),1)]),_:1}),v(c,null,{default:p(()=>[m(r(l.event.subtype),1)]),_:1})]),s("div",C,[a[0]||(a[0]=s("span",{class:"key"},"商户",-1)),s("span",O,r(y.value),1)]),s("div",V,[a[1]||(a[1]=s("span",{class:"key"},"商品/项目",-1)),s("span",B,r(x.value),1)]),s("div",D,[a[2]||(a[2]=s("span",{class:"key"},"金额",-1)),s("span",M,r(S.value),1)]),f.value?(d(),i("div",R,[a[3]||(a[3]=s("span",{class:"key"},"单号",-1)),s("span",A,r(f.value),1)])):g("",!0),u.value?(d(),i("div",F,[a[4]||(a[4]=s("span",{class:"key"},"状态",-1)),v(c,{color:h.value},{default:p(()=>[m(r(u.value),1)]),_:1},8,["color"])])):g("",!0)])}}},E=w(I,[["__scopeId","data-v-c24ad3fd"]]);export{E as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.order-card[data-v-c24ad3fd]{padding:12px 16px;background:#fff;border:1px solid #f0f0f0;border-radius:8px;margin-bottom:8px}.head[data-v-c24ad3fd]{display:flex;gap:8px;align-items:center;margin-bottom:8px;padding-bottom:8px;border-bottom:1px dashed #f0f0f0}.time[data-v-c24ad3fd]{font-size:12px;color:#999;font-variant-numeric:tabular-nums}.row[data-v-c24ad3fd]{display:flex;gap:12px;padding:4px 0;font-size:13px}.row .key[data-v-c24ad3fd]{width:70px;color:#999;flex-shrink:0}.row .val[data-v-c24ad3fd]{color:#333;word-break:break-word}.row.amount-row .amount[data-v-c24ad3fd]{font-weight:600;color:#d48806;font-size:15px}.row .mono[data-v-c24ad3fd]{font-family:ui-monospace,SF Mono,Consolas,monospace;font-size:12px;color:#666}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
[data-v-5c758732] .org-row:hover td{background:var(--bg-card-hover)!important}[data-v-5c758732] .ant-tabs-tab{color:var(--text-secondary)!important}[data-v-5c758732] .ant-tabs-tab-active .ant-tabs-tab-btn{color:#1677ff!important}[data-v-5c758732] .ant-card-head{border-color:var(--border-color)!important;color:var(--text-primary)!important}
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import{o as Qe,M as y,R as O,P as u,u as o,c as n,N as s,r as d,K as _,L as p,O as b,Q as w,S as f,F as xe,a1 as ke,f as A}from"./vendor-DhFY8mDK.js";import{_ as Ge,b as He,u as Xe,d as g}from"./index-D0d2TS5o.js";import{R as Ye,as as _e,x as Ze,aP as we,ai as ea,b as aa,a8 as ta}from"./icons--SBOhPAi.js";const oa={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},na={class:"page-title"},la={class:"page-sub"},ia={key:0,style:{"text-align":"center",padding:"60px"}},sa={key:0,style:{color:"var(--text-secondary)","font-family":"monospace","font-size":"12px"}},ra={key:1,style:{color:"#1677ff"}},ua={key:2,style:{color:"var(--text-secondary)"}},da={key:3,style:{color:"var(--text-muted)","font-size":"12px"}},pa={key:0,style:{"text-align":"center",padding:"40px"}},ca={key:1},ma={style:{"font-family":"monospace",color:"#ccc"}},ga={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"}},va={style:{"margin-bottom":"16px",display:"flex","align-items":"center",gap:"12px"}},ya={key:0,style:{"text-align":"center",padding:"60px"}},fa={key:0,style:{color:"var(--text-secondary)","font-family":"monospace","font-size":"12px"}},ba={key:1,style:{color:"#e0e0e0"}},_a={key:3,style:{color:"var(--text-secondary)","font-size":"12px"}},za={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"12px"}},xa={style:{color:"var(--text-primary)",margin:"0","font-size":"15px"}},ka={key:0,style:{"text-align":"center",padding:"40px"}},wa={key:0,style:{color:"#e0e0e0"}},ha={key:1,style:{color:"var(--text-muted)","font-size":"12px"}},Ca={key:2,style:{color:"var(--text-secondary)"}},Oa={key:0,style:{"text-align":"center",padding:"60px"}},Ia={key:0,style:{color:"var(--text-secondary)","font-family":"monospace","font-size":"12px"}},La={key:1,style:{color:"#e0e0e0"}},Ta={key:3,style:{color:"var(--text-secondary)"}},ja={key:1,style:{color:"var(--text-muted)","font-size":"12px"}},Aa={__name:"Organization",setup($a){const{t:e}=He(),k=Xe(),$=d("orgs"),te=d(!1);async function he(){te.value=!0;try{$.value==="orgs"?await T():$.value==="members"?(await T(),z.value&&(await me(),await ge())):$.value==="approvals"&&await S()}finally{te.value=!1}}function Ce(l){l==="orgs"&&I.value.length===0&&T(),l==="members"&&I.value.length===0&&T(),l==="approvals"&&H.value.length===0&&S()}function U(l){try{const a=l.trim(),t=a.indexOf("["),r=a.indexOf("{"),c=t>=0&&(r<0||t<r)?t:r;return c>=0?JSON.parse(a.slice(c)):null}catch{return null}}const oe=d(!1),I=d([]),D=d(!1),ne=d(!1),F=d(""),V=d(""),le=d(!1),ie=d(!1),h=d({}),L=d(""),Oe=A(()=>[{title:e("organization.orgColumns.id"),key:"id",dataIndex:"id",width:"100px"},{title:e("organization.orgColumns.name"),key:"name",dataIndex:"name",width:"180px"},{title:e("organization.orgColumns.owner"),key:"owner",dataIndex:"owner",width:"140px"},{title:e("organization.orgColumns.description"),key:"description",dataIndex:"description",ellipsis:!0},{title:e("organization.orgColumns.memberCount"),key:"memberCount",dataIndex:"memberCount",width:"90px"}]),ze=A(()=>I.value.map(l=>({label:l.name,value:l.id})));async function T(){oe.value=!0;try{const{output:l}=await k.execute("org list --json",15e3),a=U(l);Array.isArray(a)?I.value=a.map((t,r)=>({key:t.id||r,id:t.id||"-",name:t.name||"-",owner:t.owner||"-",description:t.description||"",memberCount:t.memberCount??t.members??0})):I.value=Ie(l)}catch(l){g.error(e("organization.messages.loadOrgsFailed",{err:l.message}))}finally{oe.value=!1}}function Ie(l){const a=[],t=l.split(`
|
|
2
|
-
`);for(const r of t){const c=r.trim();if(!c||c.startsWith("─")||c.match(/^\d+ org/i))continue;const v=c.split(/\s*[|│]\s*/);v.length>=3&&a.push({key:a.length,id:v[0]||"-",name:v[1]||"-",owner:v[2]||"-",description:v[3]||"",memberCount:parseInt(v[4],10)||0})}return a}async function Le(){if(!F.value.trim()){g.warning(e("organization.messages.orgNameRequired"));return}ne.value=!0;try{const l=F.value.trim().replace(/"/g,'\\"'),a=V.value.trim().replace(/"/g,'\\"');let t=`org create "${l}" --json`;a&&(t=`org create "${l}" --description "${a}" --json`);const{output:r}=await k.execute(t,2e4);r.includes("error")||r.includes("失败")?g.error(e("organization.messages.orgCreateFailed",{err:r.slice(0,120)})):(g.success(e("organization.messages.orgCreateOk")),D.value=!1,F.value="",V.value="",await T())}catch(l){g.error(e("organization.messages.orgCreateFailed",{err:l.message}))}finally{ne.value=!1}}async function Te(l){h.value={...l},L.value="",le.value=!0,ie.value=!0;try{const{output:a}=await k.execute(`org show ${l.id} --json`,15e3),t=U(a);t&&typeof t=="object"?(h.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||""},L.value=JSON.stringify(t,null,2)):L.value=a}catch(a){L.value=e("organization.messages.loadDetailFailed",{err:a.message})}finally{ie.value=!1}}const z=d(null),se=d(!1),re=d([]),ue=d(!1),de=d([]),K=d(!1),pe=d(!1),q=d(""),W=d(""),J=d("member"),E=d(!1),ce=d(!1),P=d(""),Q=d(""),G=d(""),je=A(()=>[{label:e("organization.members.roleAdmin"),value:"admin"},{label:e("organization.members.roleMember"),value:"member"},{label:e("organization.members.roleViewer"),value:"viewer"}]),Ae=A(()=>[{title:e("organization.memberColumns.userId"),key:"userId",dataIndex:"userId",width:"160px"},{title:e("organization.memberColumns.name"),key:"name",dataIndex:"name",width:"140px"},{title:e("organization.memberColumns.role"),key:"role",dataIndex:"role",width:"100px"},{title:e("organization.memberColumns.joinedAt"),key:"joinedAt",dataIndex:"joinedAt",width:"180px"}]),$e=A(()=>[{title:e("organization.teamColumns.name"),key:"name",dataIndex:"name",width:"180px"},{title:e("organization.teamColumns.description"),key:"description",dataIndex:"description",ellipsis:!0},{title:e("organization.teamColumns.lead"),key:"lead",dataIndex:"lead",width:"140px"}]);function Ue(l){return{admin:"gold",member:"blue",viewer:"default",owner:"purple"}[(l||"").toLowerCase()]||"default"}async function Fe(){z.value&&await Promise.all([me(),ge()])}async function me(){if(z.value){se.value=!0;try{const{output:l}=await k.execute(`org members ${z.value} --json`,15e3),a=U(l);Array.isArray(a)?re.value=a.map((t,r)=>({key:t.userId||t.id||r,userId:t.userId||t.id||"-",name:t.name||t.displayName||"-",role:t.role||"member",joinedAt:t.joinedAt||t.joined||"-"})):re.value=qe(l)}catch(l){g.error(e("organization.messages.loadMembersFailed",{err:l.message}))}finally{se.value=!1}}}function qe(l){const a=[],t=l.split(`
|
|
3
|
-
`);for(const r of t){const c=r.trim();if(!c||c.startsWith("─")||c.match(/^\d+ member/i))continue;const v=c.split(/\s*[|│]\s*/);v.length>=3&&a.push({key:a.length,userId:v[0]||"-",name:v[1]||"-",role:v[2]||"member",joinedAt:v[3]||"-"})}return a}async function ge(){if(z.value){ue.value=!0;try{const{output:l}=await k.execute(`org teams ${z.value} --json`,15e3),a=U(l);Array.isArray(a)?de.value=a.map((t,r)=>({key:t.id||t.name||r,name:t.name||"-",description:t.description||"",lead:t.lead||t.leader||"-"})):de.value=[]}catch(l){g.error(e("organization.messages.loadTeamsFailed",{err:l.message}))}finally{ue.value=!1}}}async function Pe(){if(!q.value.trim()){g.warning(e("organization.messages.userIdRequired"));return}pe.value=!0;try{const l=q.value.trim().replace(/"/g,'\\"'),a=W.value.trim().replace(/"/g,'\\"');let t=`org invite ${z.value} ${l} --role ${J.value}`;a&&(t+=` --name "${a}"`);const{output:r}=await k.execute(t,2e4);r.includes("error")||r.includes("失败")?g.error(e("organization.messages.inviteFailed",{err:r.slice(0,120)})):(g.success(e("organization.messages.inviteOk")),K.value=!1,q.value="",W.value="",J.value="member",await me())}catch(l){g.error(e("organization.messages.inviteFailed",{err:l.message}))}finally{pe.value=!1}}async function Ne(){if(!P.value.trim()){g.warning(e("organization.messages.teamNameRequired"));return}ce.value=!0;try{const l=P.value.trim().replace(/"/g,'\\"'),a=Q.value.trim().replace(/"/g,'\\"'),t=G.value.trim().replace(/"/g,'\\"');let r=`org teams ${z.value} create "${l}"`;a&&(r+=` --description "${a}"`),t&&(r+=` --lead "${t}"`);const{output:c}=await k.execute(r,2e4);c.includes("error")||c.includes("失败")?g.error(e("organization.messages.teamCreateFailed",{err:c.slice(0,120)})):(g.success(e("organization.messages.teamCreateOk")),E.value=!1,P.value="",Q.value="",G.value="",await ge())}catch(l){g.error(e("organization.messages.teamCreateFailed",{err:l.message}))}finally{ce.value=!1}}const ve=d(!1),H=d([]),X=d(!1),ye=d(!1),N=d(null),M=d(""),Y=d(""),Z=d(""),Me=A(()=>[{title:e("organization.approvalColumns.id"),key:"id",dataIndex:"id",width:"100px"},{title:e("organization.approvalColumns.title"),key:"title",dataIndex:"title",width:"200px"},{title:e("organization.approvalColumns.type"),key:"type",dataIndex:"type",width:"120px"},{title:e("organization.approvalColumns.requester"),key:"requester",dataIndex:"requester",width:"140px"},{title:e("organization.approvalColumns.status"),key:"status",dataIndex:"status",width:"100px"},{title:e("organization.approvalColumns.actions"),key:"actions",width:"180px"}]);function Se(l){return{pending:"orange",approved:"green",rejected:"red"}[(l||"").toLowerCase()]||"default"}async function S(){ve.value=!0;try{const{output:l}=await k.execute("org approvals --json",15e3),a=U(l);Array.isArray(a)?H.value=a.map((t,r)=>({key:t.id||r,id:t.id||"-",title:t.title||"-",type:t.type||"-",requester:t.requester||t.requestedBy||"-",status:t.status||"pending",_approving:!1,_rejecting:!1})):H.value=Re(l)}catch(l){g.error(e("organization.messages.loadApprovalsFailed",{err:l.message}))}finally{ve.value=!1}}function Re(l){const a=[],t=l.split(`
|
|
4
|
-
`);for(const r of t){const c=r.trim();if(!c||c.startsWith("─")||c.match(/^\d+ approval/i))continue;const v=c.split(/\s*[|│]\s*/);v.length>=4&&a.push({key:a.length,id:v[0]||"-",title:v[1]||"-",type:v[2]||"-",requester:v[3]||"-",status:v[4]||"pending",_approving:!1,_rejecting:!1})}return a}async function Be(l){l._approving=!0;try{const{output:a}=await k.execute(`org approve ${l.id}`,15e3);a.includes("error")||a.includes("失败")?g.error(e("organization.messages.approveFailed",{err:a.slice(0,120)})):(g.success(e("organization.messages.approveOk")),await S())}catch(a){g.error(e("organization.messages.approveFailed",{err:a.message}))}finally{l._approving=!1}}async function De(l){l._rejecting=!0;try{const{output:a}=await k.execute(`org reject ${l.id}`,15e3);a.includes("error")||a.includes("失败")?g.error(e("organization.messages.rejectFailed",{err:a.slice(0,120)})):(g.success(e("organization.messages.rejectOk")),await S())}catch(a){g.error(e("organization.messages.rejectFailed",{err:a.message}))}finally{l._rejecting=!1}}async function Ve(){if(!N.value){g.warning(e("organization.messages.orgRequired"));return}if(!M.value.trim()){g.warning(e("organization.messages.approvalTitleRequired"));return}ye.value=!0;try{const l=M.value.trim().replace(/"/g,'\\"'),a=Y.value.trim().replace(/"/g,'\\"'),t=Z.value.trim().replace(/"/g,'\\"');let r=`org approve --submit --org ${N.value} --title "${l}"`;a&&(r+=` --type "${a}"`),t&&(r+=` --description "${t}"`);const{output:c}=await k.execute(r,2e4);c.includes("error")||c.includes("失败")?g.error(e("organization.messages.submitFailed",{err:c.slice(0,120)})):(g.success(e("organization.messages.submitOk")),X.value=!1,N.value=null,M.value="",Y.value="",Z.value="",await S())}catch(l){g.error(e("organization.messages.submitFailed",{err:l.message}))}finally{ye.value=!1}}return Qe(()=>{T()}),(l,a)=>{const t=_("a-button"),r=_("a-space"),c=_("a-spin"),v=_("a-tag"),R=_("a-empty"),ee=_("a-table"),j=_("a-descriptions-item"),Ke=_("a-descriptions"),B=_("a-modal"),C=_("a-input"),x=_("a-form-item"),ae=_("a-form"),fe=_("a-tab-pane"),be=_("a-select"),We=_("a-textarea"),Je=_("a-tabs");return p(),y("div",null,[O("div",oa,[O("div",null,[O("h2",na,u(o(e)("organization.title")),1),O("p",la,u(o(e)("organization.subtitle")),1)]),n(t,{type:"primary",ghost:"",loading:te.value,onClick:he},{icon:s(()=>[n(o(Ye))]),default:s(()=>[b(" "+u(o(e)("organization.refresh")),1)]),_:1},8,["loading"])]),n(Je,{activeKey:$.value,"onUpdate:activeKey":a[22]||(a[22]=i=>$.value=i),type:"card",onChange:Ce},{default:s(()=>[n(fe,{key:"orgs"},{tab:s(()=>[n(o(Ze)),b(" "+u(o(e)("organization.tabs.orgs")),1)]),default:s(()=>[n(r,{style:{"margin-bottom":"16px"}},{default:s(()=>[n(t,{type:"primary",onClick:a[0]||(a[0]=i=>D.value=!0)},{icon:s(()=>[n(o(_e))]),default:s(()=>[b(" "+u(o(e)("organization.orgs.createButton")),1)]),_:1})]),_:1}),oe.value?(p(),y("div",ia,[n(c,{size:"large"})])):(p(),w(ee,{key:1,columns:Oe.value,"data-source":I.value,pagination:{pageSize:20,showTotal:i=>o(e)("organization.totals.rows",{count:i})},size:"small",style:{background:"var(--bg-card)"},"row-class-name":()=>"org-row","custom-row":i=>({onClick:()=>Te(i)})},{bodyCell:s(({column:i,record:m})=>[i.key==="id"?(p(),y("span",sa,u(m.id),1)):f("",!0),i.key==="name"?(p(),y("a",ra,u(m.name),1)):f("",!0),i.key==="owner"?(p(),y("span",ua,u(m.owner),1)):f("",!0),i.key==="description"?(p(),y("span",da,u(m.description),1)):f("",!0),i.key==="memberCount"?(p(),w(v,{key:4,color:"blue"},{default:s(()=>[b(u(m.memberCount),1)]),_:2},1024)):f("",!0)]),emptyText:s(()=>[n(R,{description:o(e)("organization.orgs.emptyText")},null,8,["description"])]),_:1},8,["columns","data-source","pagination","custom-row"])),n(B,{open:le.value,"onUpdate:open":a[1]||(a[1]=i=>le.value=i),title:o(e)("organization.orgs.detailTitle",{name:h.value.name||""}),footer:null,width:"640px"},{default:s(()=>[ie.value?(p(),y("div",pa,[n(c)])):(p(),y("div",ca,[n(Ke,{column:1,bordered:"",size:"small",style:{"margin-bottom":"16px"}},{default:s(()=>[n(j,{label:o(e)("organization.orgs.detailLabels.id")},{default:s(()=>[O("span",ma,u(h.value.id),1)]),_:1},8,["label"]),n(j,{label:o(e)("organization.orgs.detailLabels.name")},{default:s(()=>[b(u(h.value.name),1)]),_:1},8,["label"]),n(j,{label:o(e)("organization.orgs.detailLabels.owner")},{default:s(()=>[b(u(h.value.owner),1)]),_:1},8,["label"]),n(j,{label:o(e)("organization.orgs.detailLabels.description")},{default:s(()=>[b(u(h.value.description||"-"),1)]),_:1},8,["label"]),n(j,{label:o(e)("organization.orgs.detailLabels.memberCount")},{default:s(()=>[b(u(h.value.memberCount),1)]),_:1},8,["label"]),h.value.createdAt?(p(),w(j,{key:0,label:o(e)("organization.orgs.detailLabels.createdAt")},{default:s(()=>[b(u(h.value.createdAt),1)]),_:1},8,["label"])):f("",!0)]),_:1}),L.value?(p(),y("pre",ga,u(L.value),1)):f("",!0)]))]),_:1},8,["open","title"]),n(B,{open:D.value,"onUpdate:open":a[4]||(a[4]=i=>D.value=i),title:o(e)("organization.orgs.createTitle"),"confirm-loading":ne.value,onOk:Le,"ok-text":o(e)("organization.orgs.createOk"),"cancel-text":o(e)("common.cancel")},{default:s(()=>[n(ae,{"label-col":{span:4},"wrapper-col":{span:20},style:{"margin-top":"16px"}},{default:s(()=>[n(x,{label:o(e)("organization.orgs.nameLabel"),required:""},{default:s(()=>[n(C,{value:F.value,"onUpdate:value":a[2]||(a[2]=i=>F.value=i),placeholder:o(e)("organization.orgs.namePlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),n(x,{label:o(e)("organization.orgs.descriptionLabel")},{default:s(()=>[n(C,{value:V.value,"onUpdate:value":a[3]||(a[3]=i=>V.value=i),placeholder:o(e)("organization.orgs.descriptionPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"])]),_:1}),n(fe,{key:"members"},{tab:s(()=>[n(o(we)),b(" "+u(o(e)("organization.tabs.members")),1)]),default:s(()=>[O("div",va,[n(be,{value:z.value,"onUpdate:value":a[5]||(a[5]=i=>z.value=i),placeholder:o(e)("organization.members.selectPlaceholder"),style:{width:"280px"},options:ze.value,onChange:Fe},null,8,["value","placeholder","options"]),n(t,{type:"primary",disabled:!z.value,onClick:a[6]||(a[6]=i=>K.value=!0)},{icon:s(()=>[n(o(we))]),default:s(()=>[b(" "+u(o(e)("organization.members.inviteButton")),1)]),_:1},8,["disabled"])]),se.value?(p(),y("div",ya,[n(c,{size:"large"})])):z.value?(p(),w(ee,{key:1,columns:Ae.value,"data-source":re.value,pagination:{pageSize:20,showTotal:i=>o(e)("organization.totals.rows",{count:i})},size:"small",style:{background:"var(--bg-card)","margin-bottom":"24px"},"row-class-name":()=>"org-row"},{bodyCell:s(({column:i,record:m})=>[i.key==="userId"?(p(),y("span",fa,u(m.userId),1)):f("",!0),i.key==="name"?(p(),y("span",ba,u(m.name),1)):f("",!0),i.key==="role"?(p(),w(v,{key:2,color:Ue(m.role)},{default:s(()=>[b(u(m.role),1)]),_:2},1032,["color"])):f("",!0),i.key==="joinedAt"?(p(),y("span",_a,u(m.joinedAt),1)):f("",!0)]),emptyText:s(()=>[n(R,{description:o(e)("organization.members.emptyMembers")},null,8,["description"])]),_:1},8,["columns","data-source","pagination"])):(p(),w(R,{key:2,description:o(e)("organization.members.selectFirst"),style:{padding:"60px 0"}},null,8,["description"])),z.value?(p(),y(xe,{key:3},[O("div",za,[O("h3",xa,u(o(e)("organization.members.teamsTitle")),1),n(t,{size:"small",onClick:a[7]||(a[7]=i=>E.value=!0)},{icon:s(()=>[n(o(_e))]),default:s(()=>[b(" "+u(o(e)("organization.members.createTeamButton")),1)]),_:1})]),ue.value?(p(),y("div",ka,[n(c)])):(p(),w(ee,{key:1,columns:$e.value,"data-source":de.value,pagination:!1,size:"small",style:{background:"var(--bg-card)"},"row-class-name":()=>"org-row"},{bodyCell:s(({column:i,record:m})=>[i.key==="name"?(p(),y("span",wa,u(m.name),1)):f("",!0),i.key==="description"?(p(),y("span",ha,u(m.description),1)):f("",!0),i.key==="lead"?(p(),y("span",Ca,u(m.lead),1)):f("",!0)]),emptyText:s(()=>[n(R,{description:o(e)("organization.members.emptyTeams")},null,8,["description"])]),_:1},8,["columns","data-source"]))],64)):f("",!0),n(B,{open:K.value,"onUpdate:open":a[11]||(a[11]=i=>K.value=i),title:o(e)("organization.members.inviteTitle"),"confirm-loading":pe.value,onOk:Pe,"ok-text":o(e)("organization.members.inviteOk"),"cancel-text":o(e)("common.cancel")},{default:s(()=>[n(ae,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:s(()=>[n(x,{label:o(e)("organization.members.userIdLabel"),required:""},{default:s(()=>[n(C,{value:q.value,"onUpdate:value":a[8]||(a[8]=i=>q.value=i),placeholder:o(e)("organization.members.userIdPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),n(x,{label:o(e)("organization.members.nameLabel")},{default:s(()=>[n(C,{value:W.value,"onUpdate:value":a[9]||(a[9]=i=>W.value=i),placeholder:o(e)("organization.members.namePlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),n(x,{label:o(e)("organization.members.roleLabel")},{default:s(()=>[n(be,{value:J.value,"onUpdate:value":a[10]||(a[10]=i=>J.value=i),options:je.value},null,8,["value","options"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),n(B,{open:E.value,"onUpdate:open":a[15]||(a[15]=i=>E.value=i),title:o(e)("organization.members.createTeamTitle"),"confirm-loading":ce.value,onOk:Ne,"ok-text":o(e)("organization.members.createTeamOk"),"cancel-text":o(e)("common.cancel")},{default:s(()=>[n(ae,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:s(()=>[n(x,{label:o(e)("organization.members.teamNameLabel"),required:""},{default:s(()=>[n(C,{value:P.value,"onUpdate:value":a[12]||(a[12]=i=>P.value=i),placeholder:o(e)("organization.members.teamNamePlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),n(x,{label:o(e)("organization.members.teamDescLabel")},{default:s(()=>[n(C,{value:Q.value,"onUpdate:value":a[13]||(a[13]=i=>Q.value=i),placeholder:o(e)("organization.members.teamDescPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),n(x,{label:o(e)("organization.members.teamLeadLabel")},{default:s(()=>[n(C,{value:G.value,"onUpdate:value":a[14]||(a[14]=i=>G.value=i),placeholder:o(e)("organization.members.teamLeadPlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"])]),_:1}),n(fe,{key:"approvals"},{tab:s(()=>[n(o(ta)),b(" "+u(o(e)("organization.tabs.approvals")),1)]),default:s(()=>[n(r,{style:{"margin-bottom":"16px"}},{default:s(()=>[n(t,{type:"primary",onClick:a[16]||(a[16]=i=>X.value=!0)},{icon:s(()=>[n(o(_e))]),default:s(()=>[b(" "+u(o(e)("organization.approvals.submitButton")),1)]),_:1})]),_:1}),ve.value?(p(),y("div",Oa,[n(c,{size:"large"})])):(p(),w(ee,{key:1,columns:Me.value,"data-source":H.value,pagination:{pageSize:20,showTotal:i=>o(e)("organization.totals.rows",{count:i})},size:"small",style:{background:"var(--bg-card)"},"row-class-name":()=>"org-row"},{bodyCell:s(({column:i,record:m})=>[i.key==="id"?(p(),y("span",Ia,u(m.id),1)):f("",!0),i.key==="title"?(p(),y("span",La,u(m.title),1)):f("",!0),i.key==="type"?(p(),w(v,{key:2,color:"blue"},{default:s(()=>[b(u(m.type),1)]),_:2},1024)):f("",!0),i.key==="requester"?(p(),y("span",Ta,u(m.requester),1)):f("",!0),i.key==="status"?(p(),w(v,{key:4,color:Se(m.status)},{default:s(()=>[b(u(m.status),1)]),_:2},1032,["color"])):f("",!0),i.key==="actions"?(p(),y(xe,{key:5},[(m.status||"").toLowerCase()==="pending"?(p(),w(r,{key:0},{default:s(()=>[n(t,{type:"primary",size:"small",loading:m._approving,onClick:ke(Ee=>Be(m),["stop"])},{icon:s(()=>[n(o(ea))]),default:s(()=>[b(" "+u(o(e)("organization.approvals.approve")),1)]),_:1},8,["loading","onClick"]),n(t,{danger:"",size:"small",loading:m._rejecting,onClick:ke(Ee=>De(m),["stop"])},{icon:s(()=>[n(o(aa))]),default:s(()=>[b(" "+u(o(e)("organization.approvals.reject")),1)]),_:1},8,["loading","onClick"])]),_:2},1024)):(p(),y("span",ja,"-"))],64)):f("",!0)]),emptyText:s(()=>[n(R,{description:o(e)("organization.approvals.emptyText")},null,8,["description"])]),_:1},8,["columns","data-source","pagination"])),n(B,{open:X.value,"onUpdate:open":a[21]||(a[21]=i=>X.value=i),title:o(e)("organization.approvals.submitTitle"),"confirm-loading":ye.value,onOk:Ve,"ok-text":o(e)("organization.approvals.submitOk"),"cancel-text":o(e)("common.cancel")},{default:s(()=>[n(ae,{"label-col":{span:5},"wrapper-col":{span:19},style:{"margin-top":"16px"}},{default:s(()=>[n(x,{label:o(e)("organization.approvals.orgLabel"),required:""},{default:s(()=>[n(be,{value:N.value,"onUpdate:value":a[17]||(a[17]=i=>N.value=i),placeholder:o(e)("organization.approvals.orgPlaceholder"),options:ze.value},null,8,["value","placeholder","options"])]),_:1},8,["label"]),n(x,{label:o(e)("organization.approvals.titleLabel"),required:""},{default:s(()=>[n(C,{value:M.value,"onUpdate:value":a[18]||(a[18]=i=>M.value=i),placeholder:o(e)("organization.approvals.titlePlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),n(x,{label:o(e)("organization.approvals.typeLabel")},{default:s(()=>[n(C,{value:Y.value,"onUpdate:value":a[19]||(a[19]=i=>Y.value=i),placeholder:o(e)("organization.approvals.typePlaceholder")},null,8,["value","placeholder"])]),_:1},8,["label"]),n(x,{label:o(e)("organization.approvals.descLabel")},{default:s(()=>[n(We,{value:Z.value,"onUpdate:value":a[20]||(a[20]=i=>Z.value=i),placeholder:o(e)("organization.approvals.descPlaceholder"),rows:3},null,8,["value","placeholder"])]),_:1},8,["label"])]),_:1})]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"])]),_:1})]),_:1},8,["activeKey"])])}}},Pa=Ge(Aa,[["__scopeId","data-v-5c758732"]]);export{Pa as default};
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{_ as ve,b as ye,u as me}from"./index-D0d2TS5o.js";import{R as fe,M as _e,al as te,as as ge,p as B}from"./icons--SBOhPAi.js";import{o as be,M as v,R as d,P as l,u as t,c as a,N as n,r,K as p,L as i,O as y,Q as w,S as m,F as ae,Y as xe,f as he}from"./vendor-DhFY8mDK.js";const ke={style:{display:"flex","align-items":"center","justify-content":"space-between","margin-bottom":"24px"}},we={class:"page-title"},Se={class:"page-sub"},Pe={key:0,style:{"text-align":"center",padding:"30px"}},Ce={key:2,style:{"font-family":"monospace",color:"var(--text-muted)","font-size":"12px"}},Le={key:3,style:{"margin-top":"12px",color:"#ff4d4f","font-size":"12px"}},ze={key:0,style:{"text-align":"center",padding:"30px"}},Oe={key:0,style:{"margin-top":"16px"}},Me={style:{color:"var(--text-secondary)","font-size":"11px","margin-bottom":"6px"}},Be={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"}},Fe={key:2,style:{"margin-top":"12px",color:"#ff4d4f","font-size":"12px"}},Te={style:{"margin-bottom":"12px",color:"var(--text-secondary)"}},$e={key:0,style:{"margin-top":"12px"}},Ne={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"}},De={style:{"margin-bottom":"8px",color:"var(--text-secondary)"}},Ee={style:{"margin-bottom":"8px",color:"var(--text-secondary)"}},Re={key:0,style:{"margin-top":"12px"}},Ue={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"}},Ve={__name:"P2P",setup(Ie){const{t:e}=ye(),x=me(),F=r(!1),T=r(""),S=r([]),oe=he(()=>[{title:e("p2p.peerColumns.name"),key:"name"},{title:e("p2p.peerColumns.id"),key:"id"},{title:e("p2p.peerColumns.status"),key:"status"},{title:e("p2p.peerColumns.action"),key:"action",width:100}]);async function q(){F.value=!0,T.value="";try{const{output:o}=await x.execute("p2p peers",15e3);S.value=ne(o)}catch(o){T.value=e("p2p.messages.loadPeersFailed",{err:o.message})}finally{F.value=!1}}function ne(o){if(!o||o.includes("No peers")||o.includes("no peers"))return[];const c=o.split(`
|
|
2
|
-
`).filter(_=>_.trim()),u=[];for(const _ of c){const b=_.match(/^\s*(\S+)\s+(.+?)\s+(connected|online|offline|disconnected)\s*$/i);if(b){u.push({id:b[1],name:b[2].trim(),connected:/connected|online/i.test(b[3])});continue}const k=_.match(/^\s*((?:12D3|Qm)\S{10,})\s*(.*)$/);if(k){const O=k[2].trim();u.push({id:k[1],name:O||k[1].slice(0,12),connected:/connected|online/i.test(O)})}}return u}const E=r(!1),R=r(!1),$=r(""),P=r("");async function G(){if($.value.trim()){R.value=!0,P.value="";try{const{output:o}=await x.execute(`p2p pair "${$.value.trim()}"`,3e4);P.value=o,await q()}catch(o){P.value=e("p2p.messages.pairFailed",{err:o.message})}finally{R.value=!1}}}const N=r(!1),U=r(!1),C=r(void 0),L=r(""),h=r("");function le(o){C.value=o.id,L.value="",h.value="",N.value=!0}async function H(){if(!(!C.value||!L.value.trim())){U.value=!0,h.value="";try{const{output:o}=await x.execute(`p2p send ${C.value} "${L.value.trim()}"`,15e3);h.value=o||e("p2p.send.messageDefault")}catch(o){h.value=e("p2p.messages.sendFailed",{err:o.message})}finally{U.value=!1}}}const V=r(!1),D=r(""),z=r(!1),I=r(""),Q=r(0),J=r(""),f=r(""),j=r(!1),A=r(!1);async function K(){V.value=!0,D.value="";try{const{output:o}=await x.execute("sync status",15e3);se(o)}catch(o){D.value=e("p2p.messages.loadSyncFailed",{err:o.message})}finally{V.value=!1}}function se(o){if(!o){I.value=e("p2p.sync.unknown");return}z.value=/synced|online|up.to.date/i.test(o),I.value=z.value?e("p2p.sync.synced"):e("p2p.sync.notSynced");const c=o.match(/pending[:\s]+(\d+)/i);Q.value=c?parseInt(c[1]):0;const u=o.match(/last[:\s]+(.+)/i);u&&(J.value=u[1].trim())}async function re(){j.value=!0,f.value="";try{const{output:o}=await x.execute("sync push",3e4);f.value=o||e("p2p.sync.pushDefault"),await K()}catch(o){f.value=e("p2p.messages.pushFailed",{err:o.message})}finally{j.value=!1}}async function ce(){A.value=!0,f.value="";try{const{output:o}=await x.execute("sync pull",3e4);f.value=o||e("p2p.sync.pullDefault"),await K()}catch(o){f.value=e("p2p.messages.pullFailed",{err:o.message})}finally{A.value=!1}}async function X(){await Promise.all([q(),K()])}return be(X),(o,c)=>{const u=p("a-button"),_=p("a-space"),b=p("a-spin"),k=p("a-empty"),O=p("a-tag"),ie=p("a-table"),M=p("a-card"),W=p("a-statistic"),Y=p("a-col"),pe=p("a-row"),Z=p("a-input"),ee=p("a-modal"),ue=p("a-select-option"),de=p("a-select");return i(),v("div",null,[d("div",ke,[d("div",null,[d("h2",we,l(t(e)("p2p.title")),1),d("p",Se,l(t(e)("p2p.subtitle")),1)]),a(u,{type:"primary",ghost:"",loading:F.value,onClick:X},{icon:n(()=>[a(t(fe))]),default:n(()=>[y(" "+l(t(e)("p2p.refresh")),1)]),_:1},8,["loading"])]),a(M,{title:t(e)("p2p.peers.cardTitle"),style:{background:"var(--bg-card)","border-color":"var(--border-color)","margin-bottom":"20px"}},{extra:n(()=>[a(_,null,{default:n(()=>[a(u,{size:"small",onClick:c[0]||(c[0]=s=>E.value=!0),style:{background:"var(--bg-card-hover)","border-color":"var(--border-color)"}},{icon:n(()=>[a(t(ge))]),default:n(()=>[y(" "+l(t(e)("p2p.peers.pairButton")),1)]),_:1}),a(u,{size:"small",onClick:c[1]||(c[1]=s=>N.value=!0),disabled:S.value.length===0,style:{background:"var(--bg-card-hover)","border-color":"var(--border-color)"}},{icon:n(()=>[a(t(te))]),default:n(()=>[y(" "+l(t(e)("p2p.peers.sendButton")),1)]),_:1},8,["disabled"])]),_:1})]),default:n(()=>[F.value?(i(),v("div",Pe,[a(b)])):S.value.length===0?(i(),w(k,{key:1,description:t(e)("p2p.peers.emptyText")},null,8,["description"])):(i(),w(ie,{key:2,columns:oe.value,"data-source":S.value,pagination:!1,size:"small","row-key":"id"},{bodyCell:n(({column:s,record:g})=>[s.key==="status"?(i(),w(O,{key:0,color:g.connected?"green":"default"},{default:n(()=>[y(l(g.connected?t(e)("p2p.peers.online"):t(e)("p2p.peers.offline")),1)]),_:2},1032,["color"])):m("",!0),s.key==="name"?(i(),w(_,{key:1},{default:n(()=>[a(t(_e),{style:{color:"var(--text-muted)"}}),d("span",null,l(g.name||g.id),1)]),_:2},1024)):m("",!0),s.key==="id"?(i(),v("span",Ce,l(g.id.length>16?g.id.slice(0,16)+"...":g.id),1)):m("",!0),s.key==="action"?(i(),w(u,{key:3,size:"small",type:"link",onClick:Qe=>le(g)},{default:n(()=>[a(t(te)),y(" "+l(t(e)("p2p.peers.rowSend")),1)]),_:1},8,["onClick"])):m("",!0)]),_:1},8,["columns","data-source"])),T.value?(i(),v("div",Le,l(T.value),1)):m("",!0)]),_:1},8,["title"]),a(M,{title:t(e)("p2p.sync.cardTitle"),style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{extra:n(()=>[a(O,{color:z.value?"green":"default"},{default:n(()=>[y(l(z.value?t(e)("p2p.sync.synced"):t(e)("p2p.sync.notSynced")),1)]),_:1},8,["color"])]),default:n(()=>[V.value?(i(),v("div",ze,[a(b)])):(i(),v(ae,{key:1},[a(pe,{gutter:[16,16],style:{"margin-bottom":"20px"}},{default:n(()=>[a(Y,{xs:24,sm:8},{default:n(()=>[a(M,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:n(()=>[a(W,{title:t(e)("p2p.sync.statusLabel"),value:I.value,"value-style":{color:z.value?"#52c41a":"#888",fontSize:"16px"}},{prefix:n(()=>[a(t(B))]),_:1},8,["title","value","value-style"])]),_:1})]),_:1}),a(Y,{xs:24,sm:8},{default:n(()=>[a(M,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:n(()=>[a(W,{title:t(e)("p2p.sync.pendingLabel"),value:Q.value,"value-style":{color:Q.value>0?"#faad14":"#52c41a",fontSize:"16px"}},{prefix:n(()=>[a(t(B))]),_:1},8,["title","value","value-style"])]),_:1})]),_:1}),a(Y,{xs:24,sm:8},{default:n(()=>[a(M,{style:{background:"var(--bg-card)","border-color":"var(--border-color)"}},{default:n(()=>[a(W,{title:t(e)("p2p.sync.lastSyncLabel"),value:J.value||t(e)("p2p.sync.noLastSync"),"value-style":{color:"var(--text-secondary)",fontSize:"16px"}},{prefix:n(()=>[a(t(B))]),_:1},8,["title","value"])]),_:1})]),_:1})]),_:1}),a(_,null,{default:n(()=>[a(u,{loading:j.value,onClick:re,style:{background:"var(--bg-card-hover)","border-color":"var(--border-color)"}},{icon:n(()=>[a(t(B))]),default:n(()=>[y(" "+l(t(e)("p2p.sync.pushButton")),1)]),_:1},8,["loading"]),a(u,{loading:A.value,onClick:ce,style:{background:"var(--bg-card-hover)","border-color":"var(--border-color)"}},{icon:n(()=>[a(t(B))]),default:n(()=>[y(" "+l(t(e)("p2p.sync.pullButton")),1)]),_:1},8,["loading"])]),_:1}),f.value?(i(),v("div",Oe,[d("div",Me,l(t(e)("p2p.sync.outputLabel")),1),d("pre",Be,l(f.value),1)])):m("",!0)],64)),D.value?(i(),v("div",Fe,l(D.value),1)):m("",!0)]),_:1},8,["title"]),a(ee,{open:E.value,"onUpdate:open":c[3]||(c[3]=s=>E.value=s),title:t(e)("p2p.pair.title"),"confirm-loading":R.value,onOk:G,"ok-text":t(e)("p2p.pair.ok"),"cancel-text":t(e)("common.cancel")},{default:n(()=>[d("div",Te,l(t(e)("p2p.pair.intro")),1),a(Z,{value:$.value,"onUpdate:value":c[2]||(c[2]=s=>$.value=s),placeholder:t(e)("p2p.pair.placeholder"),onPressEnter:G},null,8,["value","placeholder"]),P.value?(i(),v("div",$e,[d("pre",Ne,l(P.value),1)])):m("",!0)]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"]),a(ee,{open:N.value,"onUpdate:open":c[6]||(c[6]=s=>N.value=s),title:t(e)("p2p.send.title"),"confirm-loading":U.value,onOk:H,"ok-text":t(e)("p2p.send.ok"),"cancel-text":t(e)("common.cancel")},{default:n(()=>[d("div",De,l(t(e)("p2p.send.targetLabel")),1),a(de,{value:C.value,"onUpdate:value":c[4]||(c[4]=s=>C.value=s),style:{width:"100%","margin-bottom":"16px"},placeholder:t(e)("p2p.send.targetPlaceholder")},{default:n(()=>[(i(!0),v(ae,null,xe(S.value,s=>(i(),w(ue,{key:s.id,value:s.id},{default:n(()=>[y(l(s.name||s.id),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value","placeholder"]),d("div",Ee,l(t(e)("p2p.send.messageLabel")),1),a(Z,{value:L.value,"onUpdate:value":c[5]||(c[5]=s=>L.value=s),placeholder:t(e)("p2p.send.messagePlaceholder"),onPressEnter:H},null,8,["value","placeholder"]),h.value?(i(),v("div",Re,[d("pre",Ue,l(h.value),1)])):m("",!0)]),_:1},8,["open","title","confirm-loading","ok-text","cancel-text"])])}}},We=ve(Ve,[["__scopeId","data-v-832d025d"]]);export{We as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
[data-v-832d025d] .ant-table{background:transparent}[data-v-832d025d] .ant-select-selector{background:var(--bg-card)!important;border-color:var(--border-color)!important}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.pdh-sidebar[data-v-0c0dc745]{background:#fff;border-radius:8px;padding:12px 8px;border:1px solid #f0f0f0}.sidebar-title[data-v-0c0dc745]{font-size:12px;color:#999;padding:4px 8px 8px;font-weight:600;letter-spacing:.5px}.cat-item[data-v-0c0dc745]{display:flex;align-items:center;gap:10px;padding:8px 12px;border-radius:6px;cursor:pointer;transition:background .15s;margin-bottom:2px}.cat-item[data-v-0c0dc745]:hover{background:#f5f5f5}.cat-item.active[data-v-0c0dc745]{background:#1677ff;color:#fff}.cat-item.dim[data-v-0c0dc745]{opacity:.45}.cat-item .icon[data-v-0c0dc745]{font-size:16px}.cat-item .label[data-v-0c0dc745]{flex:1;font-size:14px}.pdh-filter-bar[data-v-44891485]{display:flex;align-items:center;gap:12px;padding:12px 16px;background:#fff;border-radius:8px;border:1px solid #f0f0f0;flex-wrap:wrap}.hint[data-v-44891485]{font-size:12px;color:#999;display:flex;align-items:center;gap:4px}.pdh-browser-page[data-v-b77bf5a7]{padding:16px;height:100%;background:#f5f5f5;overflow-y:auto}.page-header[data-v-b77bf5a7]{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:16px}.page-title[data-v-b77bf5a7]{margin:0 0 4px;font-size:18px}.page-sub[data-v-b77bf5a7]{margin:0;color:#999;font-size:13px}.browser-layout[data-v-b77bf5a7]{align-items:flex-start}.main-pane[data-v-b77bf5a7]{display:flex;flex-direction:column;gap:12px}.results-summary[data-v-b77bf5a7]{font-size:13px;color:#666;padding:4px 4px 8px}.results-summary .loaded-of[data-v-b77bf5a7]{margin-left:8px;color:#999}.load-more[data-v-b77bf5a7]{margin-top:12px}
|