@qqbrowser/openclaw-qbot 0.10.4 → 0.10.5
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/dist/{agents-uUms0egI.js → agents-6IxtknW5.js} +1 -1
- package/dist/{agents.config-BkB-gDby.js → agents.config-BP_dS899.js} +1 -1
- package/dist/{agents.config-Brf_8LyQ.js → agents.config-CQVkG48F.js} +1 -1
- package/dist/{auth-choice-CCPa_U3z.js → auth-choice-Baa2-mnd.js} +1 -1
- package/dist/{auth-choice-hlkl-WTV.js → auth-choice-Cw_bwgkr.js} +1 -1
- package/dist/{banner-DEPUY9RS.js → banner-CLI1ZxLT.js} +1 -1
- package/dist/build-info.json +3 -3
- package/dist/bundled/boot-md/handler.js +1 -1
- package/dist/bundled/session-memory/handler.js +1 -1
- package/dist/canvas-host/a2ui/.bundle.hash +1 -1
- package/dist/{channel-options-DqUyBMZF.js → channel-options-BmkYp9PQ.js} +1 -1
- package/dist/{channel-options-BbvCeuF4.js → channel-options-LL0twjcr.js} +1 -1
- package/dist/{channel-web-B7Dzfxgr.js → channel-web-DBxLlMxt.js} +1 -1
- package/dist/{channel-web-DztiTFmw.js → channel-web-DCbW654e.js} +1 -1
- package/dist/{channels-cli-B167LkN_.js → channels-cli-BDMHUXO6.js} +1 -1
- package/dist/{channels-cli-DqI5sufA.js → channels-cli-BomYL9U-.js} +1 -1
- package/dist/{cli-5w9Cs17g.js → cli-6GYOgeyE.js} +1 -1
- package/dist/{cli-odx2Ou54.js → cli-DcG2OfeS.js} +1 -1
- package/dist/{command-registry-kuOSuxH9.js → command-registry-B-1wiWIV.js} +1 -1
- package/dist/{compact-DutiJiBy.js → compact-B5m4267P.js} +6 -6
- package/dist/{compact.runtime-Cg-ayyOY.js → compact.runtime-BIprdRVY.js} +1 -1
- package/dist/{compact.runtime-CPJx43fM.js → compact.runtime-Bjmb9uWf.js} +1 -1
- package/dist/{compact.runtime-Cr0LrigW.js → compact.runtime-CC5tXNMI.js} +1 -1
- package/dist/{compact.runtime-8jjZMOn5.js → compact.runtime-CbiLGd2R.js} +1 -1
- package/dist/{completion-cli-Dk4i8AEs.js → completion-cli-BxTvZFra.js} +1 -1
- package/dist/{completion-cli-Btm1nzLM.js → completion-cli-CXSmC7Nh.js} +1 -1
- package/dist/{config-cli-C_Ep8Cqd.js → config-cli-CutpYl0W.js} +1 -1
- package/dist/{config-cli-GxgWLhZj.js → config-cli-_D9OjHjN.js} +1 -1
- package/dist/{configure-BGXAqK0_.js → configure-B7A-Gjbn.js} +1 -1
- package/dist/{configure-Bf9CYm_s.js → configure-GlFIJmRr.js} +1 -1
- package/dist/{deps-send-whatsapp.runtime-zwmhmYbD.js → deps-send-whatsapp.runtime-0CVkFH3c.js} +1 -1
- package/dist/{deps-send-whatsapp.runtime-BvP4xsTU.js → deps-send-whatsapp.runtime-CF7vGOV-.js} +1 -1
- package/dist/{deps-send-whatsapp.runtime-B0YhL8Lo.js → deps-send-whatsapp.runtime-CZWj9whB.js} +1 -1
- package/dist/{deps-send-whatsapp.runtime-DM3gFV5P.js → deps-send-whatsapp.runtime-CpRUDATB.js} +1 -1
- package/dist/{doctor-completion-Bp4r91Mj.js → doctor-completion-C5fxcbh9.js} +1 -1
- package/dist/{doctor-completion-DSlo6bQA.js → doctor-completion-CjAt0IBL.js} +1 -1
- package/dist/entry.js +1 -1
- package/dist/extensionAPI.js +1 -1
- package/dist/{gateway-cli-xHMUWDWx.js → gateway-cli-B4--4Rdp.js} +2 -2
- package/dist/{gateway-cli-C_zcjGt1.js → gateway-cli-LXL-gdmD.js} +2 -2
- package/dist/{health-vy-C49Dw.js → health-CIBrUBhW.js} +1 -1
- package/dist/{health-DWAEDZ8p.js → health-dTYbHKsD.js} +1 -1
- package/dist/{hooks-cli-DkjR_IzY.js → hooks-cli-B8zLSVkT.js} +1 -1
- package/dist/{hooks-cli-B0xRT8IB.js → hooks-cli-CQiuXLiA.js} +1 -1
- package/dist/index.js +2 -2
- package/dist/llm-slug-generator.js +1 -1
- package/dist/{models-CYk2Mf4W.js → models-DfPjqkxA.js} +1 -1
- package/dist/{models-cli-DPcl8k5z.js → models-cli-Crhj5KsH.js} +1 -1
- package/dist/{models-cli-BS5KD1m7.js → models-cli-DIeJKv20.js} +1 -1
- package/dist/{npm-resolution-BRKzOuRX.js → npm-resolution-BsQW2Kgr.js} +1 -1
- package/dist/{npm-resolution-B4ClzLA9.js → npm-resolution-wJ9PVAU8.js} +1 -1
- package/dist/{onboard-DtvFX5YS.js → onboard-CkDnD6Va.js} +2 -2
- package/dist/{onboard-DKohpAhM.js → onboard-DbFfuUgN.js} +2 -2
- package/dist/{onboard-channels-CO9FE0CA.js → onboard-channels-BW1eMy7S.js} +1 -1
- package/dist/{onboard-channels-B1Cta60W.js → onboard-channels-C0PAtk4T.js} +1 -1
- package/dist/{onboarding-CSBYu9X2.js → onboarding-DVLGoQj1.js} +1 -1
- package/dist/{onboarding-DTE81H7h.js → onboarding-enOGIWg6.js} +1 -1
- package/dist/{onboarding.finalize-Bk61Ef85.js → onboarding.finalize-BDLzh4dK.js} +1 -1
- package/dist/{onboarding.finalize-BzZq5LCu.js → onboarding.finalize-aguVHE5H.js} +1 -1
- package/dist/{pi-embedded-fKs8vr_l.js → pi-embedded-Bv3QACci.js} +6 -6
- package/dist/{pi-embedded-CSE8iTcT.js → pi-embedded-DJGgW90C.js} +6 -6
- package/dist/{plugin-registry--rKSomNR.js → plugin-registry-Cb3qsabM.js} +1 -1
- package/dist/{plugin-registry-BLopxJhs.js → plugin-registry-DgGaQJpH.js} +1 -1
- package/dist/plugin-sdk/{channel-web-kLUJoIaN.js → channel-web-B69hreZ-.js} +1 -1
- package/dist/plugin-sdk/{channel-web-BZwnvMDD.cjs → channel-web-CGYvIoB3.cjs} +1 -1
- package/dist/plugin-sdk/{channel-web-BUiDMnQM.js → channel-web-Cg7FoMmy.js} +1 -1
- package/dist/plugin-sdk/{channel-web-Dn8Qa28U.cjs → channel-web-yRiw9cOW.cjs} +1 -1
- package/dist/plugin-sdk/{compact.runtime-BtnHPGWW.cjs → compact.runtime-6EUZS-nm.cjs} +1 -1
- package/dist/plugin-sdk/{compact.runtime-PwQ5BH89.cjs → compact.runtime-BCReDZO0.cjs} +1 -1
- package/dist/plugin-sdk/{compact.runtime-CcAl_7JS.cjs → compact.runtime-BV8EhsZ-.cjs} +1 -1
- package/dist/plugin-sdk/{compact.runtime-BDSrWIc3.js → compact.runtime-BrTHTIXo.js} +1 -1
- package/dist/plugin-sdk/{compact.runtime-WzRsTof6.js → compact.runtime-C-nSnIie.js} +1 -1
- package/dist/plugin-sdk/{compact.runtime-D6zMtomh.js → compact.runtime-C1HIq_JF.js} +1 -1
- package/dist/plugin-sdk/{compact.runtime-DrbWVG3U.cjs → compact.runtime-CuU_iabG.cjs} +1 -1
- package/dist/plugin-sdk/{compact.runtime-CB04vm0D.js → compact.runtime-D64Cnn1T.js} +1 -1
- package/dist/plugin-sdk/{compact.runtime-BDZgCqEH.cjs → compact.runtime-DEsDlL2e.cjs} +1 -1
- package/dist/plugin-sdk/{compact.runtime-D4jmyLK_.js → compact.runtime-DyyEYJhk.js} +1 -1
- package/dist/plugin-sdk/{compact.runtime-DiGElRVu.cjs → compact.runtime-hD-8StlH.cjs} +1 -1
- package/dist/plugin-sdk/{compact.runtime-DpKoN-EI.js → compact.runtime-nrAibbrs.js} +1 -1
- package/dist/plugin-sdk/compat.cjs +1 -1
- package/dist/plugin-sdk/compat.js +1 -1
- package/dist/plugin-sdk/{deps-send-whatsapp.runtime-D9D9oUEf.js → deps-send-whatsapp.runtime-BHSEddX6.js} +1 -1
- package/dist/plugin-sdk/{deps-send-whatsapp.runtime-DAq8oj_z.cjs → deps-send-whatsapp.runtime-BIcx-YKg.cjs} +1 -1
- package/dist/plugin-sdk/{deps-send-whatsapp.runtime-Du9woGpt.js → deps-send-whatsapp.runtime-BJqrGRfn.js} +1 -1
- package/dist/plugin-sdk/{deps-send-whatsapp.runtime-Bu592CgI.cjs → deps-send-whatsapp.runtime-BYitkwEt.cjs} +1 -1
- package/dist/plugin-sdk/{deps-send-whatsapp.runtime-CslTgnDb.cjs → deps-send-whatsapp.runtime-BZZlnkSu.cjs} +1 -1
- package/dist/plugin-sdk/{deps-send-whatsapp.runtime-Ck_Odtet.cjs → deps-send-whatsapp.runtime-C8CHSY5s.cjs} +1 -1
- package/dist/plugin-sdk/{deps-send-whatsapp.runtime-C8VavsCw.cjs → deps-send-whatsapp.runtime-Cc_K5nip.cjs} +1 -1
- package/dist/plugin-sdk/{deps-send-whatsapp.runtime-BIa0po8R.js → deps-send-whatsapp.runtime-CcxJ3x8i.js} +1 -1
- package/dist/plugin-sdk/{deps-send-whatsapp.runtime-D8utCFrm.js → deps-send-whatsapp.runtime-CtGDGABW.js} +1 -1
- package/dist/plugin-sdk/{deps-send-whatsapp.runtime-BjCkJL25.js → deps-send-whatsapp.runtime-DKBA8CwU.js} +1 -1
- package/dist/plugin-sdk/{deps-send-whatsapp.runtime-D7XufA9p.js → deps-send-whatsapp.runtime-ty7jacKq.js} +1 -1
- package/dist/plugin-sdk/{deps-send-whatsapp.runtime-Bc3Bslu5.cjs → deps-send-whatsapp.runtime-uvxKpBrR.cjs} +1 -1
- package/dist/plugin-sdk/{dispatch-B0bRcI0M.js → dispatch-3RmgaKV0.js} +6 -6
- package/dist/plugin-sdk/{dispatch-CXFmGh30.cjs → dispatch-BHwyFTwz.cjs} +6 -6
- package/dist/plugin-sdk/{dispatch-CuIxFSWG.js → dispatch-BYn5wxRI.js} +6 -6
- package/dist/plugin-sdk/{dispatch-DZFfZ37w.cjs → dispatch-C-qRxvLo.cjs} +6 -6
- package/dist/plugin-sdk/{dispatch-CXTBtHYf.cjs → dispatch-CDF-QMLO.cjs} +6 -6
- package/dist/plugin-sdk/{dispatch-BzOxEE_U.cjs → dispatch-DBHCub77.cjs} +6 -6
- package/dist/plugin-sdk/{dispatch-DgMf2rhn.cjs → dispatch-DCFiq6TV.cjs} +6 -6
- package/dist/plugin-sdk/{dispatch-BHQwp2mY.js → dispatch-Dbp8KQt5.js} +6 -6
- package/dist/plugin-sdk/{dispatch-CsZWuLFg.js → dispatch-DpHTL-Ha.js} +6 -6
- package/dist/plugin-sdk/{dispatch-DXQq-1ND.js → dispatch-t6yxQhjZ.js} +6 -6
- package/dist/plugin-sdk/index.cjs +1 -1
- package/dist/plugin-sdk/index.js +1 -1
- package/dist/plugin-sdk/irc.cjs +1 -1
- package/dist/plugin-sdk/irc.js +1 -1
- package/dist/plugin-sdk/matrix.cjs +1 -1
- package/dist/plugin-sdk/matrix.js +1 -1
- package/dist/plugin-sdk/msteams.cjs +1 -1
- package/dist/plugin-sdk/msteams.js +1 -1
- package/dist/plugin-sdk/nextcloud-talk.cjs +1 -1
- package/dist/plugin-sdk/nextcloud-talk.js +1 -1
- package/dist/plugin-sdk/{reply-9oEGfJO1.cjs → reply-DYTWptyW.cjs} +6 -6
- package/dist/plugin-sdk/{reply-D_sNAum5.js → reply-nXQ3Ihgd.js} +6 -6
- package/dist/plugin-sdk/{slash-dispatch.runtime-D6j_HvFC.cjs → slash-dispatch.runtime-BSDBCdoz.cjs} +1 -1
- package/dist/plugin-sdk/{slash-dispatch.runtime-C0RwCFKq.js → slash-dispatch.runtime-Boj2xPW5.js} +1 -1
- package/dist/plugin-sdk/{slash-dispatch.runtime-B60yTzIf.js → slash-dispatch.runtime-C57opycX.js} +1 -1
- package/dist/plugin-sdk/{slash-dispatch.runtime-BERy39cs.js → slash-dispatch.runtime-C9rDQo8o.js} +1 -1
- package/dist/plugin-sdk/{slash-dispatch.runtime-UYaTQwVq.js → slash-dispatch.runtime-CApLdZER.js} +1 -1
- package/dist/plugin-sdk/{slash-dispatch.runtime-ASdOu8Cm.js → slash-dispatch.runtime-CG-zjxON.js} +1 -1
- package/dist/plugin-sdk/{slash-dispatch.runtime-BuF14A03.js → slash-dispatch.runtime-CTecvuIx.js} +1 -1
- package/dist/plugin-sdk/{slash-dispatch.runtime-_BOQ7gkd.cjs → slash-dispatch.runtime-Coe_tdLy.cjs} +1 -1
- package/dist/plugin-sdk/{slash-dispatch.runtime-Dg9uQHNW.cjs → slash-dispatch.runtime-CrfGJt-z.cjs} +1 -1
- package/dist/plugin-sdk/{slash-dispatch.runtime-30IYd84w.cjs → slash-dispatch.runtime-EgX-cRVC.cjs} +1 -1
- package/dist/plugin-sdk/{slash-dispatch.runtime-Dq7mPZxr.cjs → slash-dispatch.runtime-KA6_FxIE.cjs} +1 -1
- package/dist/plugin-sdk/{slash-dispatch.runtime-34q3H9BU.cjs → slash-dispatch.runtime-XTKieQBQ.cjs} +1 -1
- package/dist/plugin-sdk/{subagent-registry-runtime-D0_kdCJ8.js → subagent-registry-runtime-B1Lpdh_L.js} +1 -1
- package/dist/plugin-sdk/{subagent-registry-runtime-BpO-8o-v.cjs → subagent-registry-runtime-BTcxp_jJ.cjs} +1 -1
- package/dist/plugin-sdk/{subagent-registry-runtime-DUaC-nXH.js → subagent-registry-runtime-C1W2bBCX.js} +1 -1
- package/dist/plugin-sdk/{subagent-registry-runtime-B4ht4jgI.js → subagent-registry-runtime-CjDQncGB.js} +1 -1
- package/dist/plugin-sdk/{subagent-registry-runtime-C4MYbumf.cjs → subagent-registry-runtime-CsoVFakn.cjs} +1 -1
- package/dist/plugin-sdk/{subagent-registry-runtime-w7CcoTLv.cjs → subagent-registry-runtime-DRUPit2H.cjs} +1 -1
- package/dist/plugin-sdk/{subagent-registry-runtime-_MlLeMWw.js → subagent-registry-runtime-DTlB8Q96.js} +1 -1
- package/dist/plugin-sdk/{subagent-registry-runtime-DfWSD7tl.js → subagent-registry-runtime-DiwikRRl.js} +1 -1
- package/dist/plugin-sdk/{subagent-registry-runtime-CyYJQuSQ.cjs → subagent-registry-runtime-Dj2i9GGj.cjs} +1 -1
- package/dist/plugin-sdk/{subagent-registry-runtime-D_dgSTbs.cjs → subagent-registry-runtime-Djshp0MC.cjs} +1 -1
- package/dist/plugin-sdk/{subagent-registry-runtime-UoI3lad4.js → subagent-registry-runtime-DrbVJw2f.js} +1 -1
- package/dist/plugin-sdk/{subagent-registry-runtime-CKNJbYW5.cjs → subagent-registry-runtime-IVYj5ywH.cjs} +1 -1
- package/dist/plugin-sdk/{web-BtgZE8cK.js → web-2PAf1exP.js} +1 -1
- package/dist/plugin-sdk/{web-B5xIoXe1.js → web-B6Ox6Cdv.js} +1 -1
- package/dist/plugin-sdk/{web-BEIPWO4K.cjs → web-B7WqqsC8.cjs} +1 -1
- package/dist/plugin-sdk/{web-GIWXJ0Ba.js → web-BkCy5IQ7.js} +1 -1
- package/dist/plugin-sdk/{web-BK1ARWvO.cjs → web-CJcd3JMn.cjs} +1 -1
- package/dist/plugin-sdk/{web-D2JuDaoV.js → web-CjilhIQD.js} +1 -1
- package/dist/plugin-sdk/{web-C2CF_qbv.cjs → web-CjsJxq4D.cjs} +1 -1
- package/dist/plugin-sdk/{web-BZPAL5HS.cjs → web-DCAcFf5b.cjs} +1 -1
- package/dist/plugin-sdk/{web-BiZX-XYi.cjs → web-DtH3t5Jt.cjs} +1 -1
- package/dist/plugin-sdk/{web-BhnzZsyl.js → web-g-WONVYn.js} +1 -1
- package/dist/plugin-sdk/{web-C3K1qs0u.cjs → web-iRzx1ssK.cjs} +1 -1
- package/dist/plugin-sdk/{web-CYwIRzDt.js → web-ikfo8GXI.js} +1 -1
- package/dist/plugin-sdk/whatsapp.cjs +1 -1
- package/dist/plugin-sdk/whatsapp.js +1 -1
- package/dist/{plugins-cli-fvYI7MuY.js → plugins-cli-5B5urjU7.js} +1 -1
- package/dist/{plugins-cli-D7y5Vl8l.js → plugins-cli-DaxkOvPH.js} +1 -1
- package/dist/{program-o1R0ZIeK.js → program-DJxQx1DE.js} +2 -2
- package/dist/{program-context-DMLIbH2F.js → program-context-DewOK4jD.js} +1 -1
- package/dist/{prompt-select-styled-BghrrnfB.js → prompt-select-styled-U5YlFMbC.js} +1 -1
- package/dist/{prompt-select-styled-MKdHaN69.js → prompt-select-styled-VagKVjlJ.js} +1 -1
- package/dist/{provider-auth-helpers-B24NjgT2.js → provider-auth-helpers-BEBH5krH.js} +1 -1
- package/dist/{provider-auth-helpers-1c048H9l.js → provider-auth-helpers-DKQwlJ25.js} +1 -1
- package/dist/{push-apns-BU-NR-pG.js → push-apns-CIV5yU-C.js} +1 -1
- package/dist/{push-apns-CrGncT7C.js → push-apns-DOhrdJ5p.js} +1 -1
- package/dist/{register.agent-iVmRDz9B.js → register.agent-Q_qYfTfI.js} +1 -1
- package/dist/{register.agent-CQHFkB8p.js → register.agent-Zd0TARQm.js} +1 -1
- package/dist/{register.configure-CThul7Zy.js → register.configure-A6heJkJh.js} +1 -1
- package/dist/{register.configure-q-iauQUk.js → register.configure-CWTGVxwN.js} +1 -1
- package/dist/{register.maintenance-C47agRIL.js → register.maintenance-BiqiVyJY.js} +1 -1
- package/dist/{register.maintenance-BRTx_TN-.js → register.maintenance-cKlEqSE7.js} +1 -1
- package/dist/{register.message-DsJRw5nY.js → register.message-BRfalotn.js} +1 -1
- package/dist/{register.message-Dxxzi9kt.js → register.message-CXPAYgVk.js} +1 -1
- package/dist/{register.onboard-DcNYm0dn.js → register.onboard-CiK3r6Ar.js} +1 -1
- package/dist/{register.onboard-BteLZ-mA.js → register.onboard-g_3bWGn7.js} +1 -1
- package/dist/{register.setup-C4lAwlQe.js → register.setup-BgOqtS83.js} +1 -1
- package/dist/{register.setup-CeW9lN5-.js → register.setup-BoiX_qRl.js} +1 -1
- package/dist/{register.status-health-sessions-C-JabFZz.js → register.status-health-sessions-BIo6bs1r.js} +1 -1
- package/dist/{register.status-health-sessions-CZOciUK3.js → register.status-health-sessions-BrcaSoAg.js} +1 -1
- package/dist/{register.subclis-DHFqEK6G.js → register.subclis-BmtNNMP2.js} +1 -1
- package/dist/{reply-DHtpIWpD.js → reply-HrabJs88.js} +6 -6
- package/dist/{run-main-BKA6bL5R.js → run-main-CwKNqqKj.js} +1 -1
- package/dist/{server-node-events-DECiuryL.js → server-node-events-D1Pr11u8.js} +1 -1
- package/dist/{server-node-events-DQohZYL_.js → server-node-events-DYeHOQG_.js} +1 -1
- package/dist/{slash-dispatch.runtime-BltGVp6a.js → slash-dispatch.runtime-5xQBRYan.js} +1 -1
- package/dist/{slash-dispatch.runtime-U7BSD9SC.js → slash-dispatch.runtime-BRImHx9I.js} +1 -1
- package/dist/{slash-dispatch.runtime-BRh6zgqn.js → slash-dispatch.runtime-Cq5dUL-m.js} +1 -1
- package/dist/{slash-dispatch.runtime-BQCIIXIb.js → slash-dispatch.runtime-D_A_iMTY.js} +1 -1
- package/dist/{status-CUDtNIry.js → status-DiHX2LOf.js} +1 -1
- package/dist/{status-OB55GG25.js → status-m4GFy-Px.js} +1 -1
- package/dist/{subagent-registry-runtime-B9Ism-1f.js → subagent-registry-runtime-BhMKhChi.js} +1 -1
- package/dist/{subagent-registry-runtime-D2hsQSwB.js → subagent-registry-runtime-C36kHoT7.js} +1 -1
- package/dist/{subagent-registry-runtime-CO4i2ZPd.js → subagent-registry-runtime-CrUvIBql.js} +1 -1
- package/dist/{subagent-registry-runtime-85RFObHD.js → subagent-registry-runtime-GuXOBC1H.js} +1 -1
- package/dist/{update-cli-CkgaoB8p.js → update-cli-CQGioR5x.js} +1 -1
- package/dist/{update-cli-BlZnad_S.js → update-cli-ILZhc8_8.js} +1 -1
- package/dist/{update-runner-DcWJQ3bh.js → update-runner-1UCWso86.js} +1 -1
- package/dist/{update-runner-DWHUl78B.js → update-runner-JT7_BON6.js} +1 -1
- package/dist/{web-HSA7Rhwn.js → web-C1e-LYaH.js} +1 -1
- package/dist/{web-MgNpzMvd.js → web-DWIIpcnE.js} +1 -1
- package/dist/{web-B6OLwGJa.js → web-DaJ1Z41U.js} +1 -1
- package/dist/{web-Bam5_EjB.js → web-rxfH6rmG.js} +1 -1
- package/package.json +1 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{g as e}from"./paths-B4IRk3wi.js";import{b as t,s as n,t as r}from"./subsystem-BQ1073Mu.js";import{Ai as i,Mi as a,ji as o,qt as s}from"./model-selection-B2r_LMFb.js";import{C as c}from"./reply-
|
|
1
|
+
import{g as e}from"./paths-B4IRk3wi.js";import{b as t,s as n,t as r}from"./subsystem-BQ1073Mu.js";import{Ai as i,Mi as a,ji as o,qt as s}from"./model-selection-B2r_LMFb.js";import{C as c}from"./reply-HrabJs88.js";import{E as l}from"./session-key-D3P0tf5P.js";import{n as u,t as d}from"./redact-DsC5EnL7.js";import f from"node:path";import p from"chalk";import m from"node:fs/promises";import{createHash as h,createPrivateKey as g,sign as _}from"node:crypto";import v from"node:http2";let y=`auto`;function b(e){y=e}function x(){return y}const S=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i,C={mode:`tools`,patterns:d()},w=new Map;let T;const E=new Map,D=new Map,O=r(`gateway/ws`),ee=new Set([`connId`,`id`,`method`,`ok`,`event`]);function k(e){let t=[];if(!e)return t;for(let[n,r]of Object.entries(e))r!==void 0&&(ee.has(n)||t.push(`${p.dim(n)}=${P(r)}`));return t}function A(e){if((e.kind===`req`||e.kind===`res`)&&e.method)return p.bold(e.method);if(e.kind===`event`&&e.event)return p.bold(e.event)}function j(e,t){if(!(e!==`res`||t===void 0))return t?p.greenBright(`✓`):p.redBright(`✗`)}function M(e){let t=[e.prefix,e.statusToken,e.headline,e.durationToken,...e.restMeta,...e.trailing].filter(e=>!!e);O.info(t.join(` `))}function te(){return n(`gateway/ws`)}function N(e){let t=e.trim();return S.test(t)?`${t.slice(0,8)}…${t.slice(-4)}`:t.length<=24?t:`${t.slice(0,12)}…${t.slice(-4)}`}function P(e){try{if(e instanceof Error){let t=[];e.name&&t.push(e.name),e.message&&t.push(e.message);let n=`code`in e&&(typeof e.code==`string`||typeof e.code==`number`)?String(e.code):``;n&&t.push(`code=${n}`);let r=t.filter(Boolean).join(`: `).trim();if(r)return r.length>240?`${r.slice(0,240)}...`:r}if(e&&typeof e==`object`){let t=e;if(typeof t.message==`string`&&t.message.trim()){let e=typeof t.name==`string`?t.name.trim():``,n=typeof t.code==`string`||typeof t.code==`number`?String(t.code):``,r=[e,t.message.trim()].filter(Boolean);n&&r.push(`code=${n}`);let i=r.join(`: `).trim();return i.length>240?`${i.slice(0,240)}...`:i}}let t=typeof e==`string`||typeof e==`number`?String(e):JSON.stringify(e);if(!t)return``;let n=u(t,C);return n.length>240?`${n.slice(0,240)}...`:n}catch{return String(e)}}function F(e,t=160){let n=e.replace(/\s+/g,` `).trim();return n.length<=t?n:`${n.slice(0,Math.max(0,t-1))}…`}function I(e){if(!e||typeof e!=`object`)return{};let t=e,n=typeof t.runId==`string`?t.runId:void 0,r=typeof t.stream==`string`?t.stream:void 0,i=typeof t.seq==`number`?t.seq:void 0,a=typeof t.sessionKey==`string`?t.sessionKey:void 0,o=t.data&&typeof t.data==`object`?t.data:void 0,s={};if(n&&(s.run=N(n)),a){let e=l(a);e?(s.agent=e.agentId,s.session=e.rest):s.session=a}if(r&&(s.stream=r),i!==void 0&&(s.aseq=i),!o)return s;if(r===`assistant`){let e=typeof o.text==`string`?o.text:void 0;e?.trim()&&(s.text=F(e));let t=Array.isArray(o.mediaUrls)?o.mediaUrls:void 0;return t&&t.length>0&&(s.media=t.length),s}if(r===`tool`){let e=typeof o.phase==`string`?o.phase:void 0,t=typeof o.name==`string`?o.name:void 0;(e||t)&&(s.tool=`${e??`?`}:${t??`?`}`);let n=typeof o.toolCallId==`string`?o.toolCallId:void 0;n&&(s.call=N(n));let r=typeof o.meta==`string`?o.meta:void 0;return r?.trim()&&(s.meta=r),typeof o.isError==`boolean`&&(s.err=o.isError),s}if(r===`lifecycle`){let e=typeof o.phase==`string`?o.phase:void 0;e&&(s.phase=e),typeof o.aborted==`boolean`&&(s.aborted=o.aborted);let t=typeof o.error==`string`?o.error:void 0;return t?.trim()&&(s.error=F(t,120)),s}let c=typeof o.reason==`string`?o.reason:void 0;return c?.trim()&&(s.reason=c),s}function L(e,r,i){if(!n(`gateway/ws`))return;let a=x();if(!t()){ne(e,r,i);return}if(a===`compact`||a===`auto`){re(e,r,i);return}let o=Date.now(),s=typeof i?.connId==`string`?i.connId:void 0,c=typeof i?.id==`string`?i.id:void 0,l=typeof i?.method==`string`?i.method:void 0,u=typeof i?.ok==`boolean`?i.ok:void 0,d=typeof i?.event==`string`?i.event:void 0,f=s&&c?`${s}:${c}`:void 0;e===`in`&&r===`req`&&f&&D.set(f,o);let m=e===`out`&&r===`res`&&f?(()=>{let e=D.get(f);if(e!==void 0)return D.delete(f),o-e})():void 0,h=e===`in`?`←`:`→`,g=`${(e===`in`?p.greenBright:p.cyanBright)(h)} ${p.bold(r)}`,_=A({kind:r,method:l,event:d}),v=j(r,u),y=typeof m==`number`?p.dim(`${m}ms`):void 0,b=k(i),S=[];s&&S.push(`${p.dim(`conn`)}=${p.gray(N(s))}`),c&&S.push(`${p.dim(`id`)}=${p.gray(N(c))}`),M({prefix:g,statusToken:v,headline:_,durationToken:y,restMeta:b,trailing:S})}function ne(e,t,n){let r=typeof n?.connId==`string`?n.connId:void 0,i=typeof n?.id==`string`?n.id:void 0,a=typeof n?.ok==`boolean`?n.ok:void 0,o=typeof n?.method==`string`?n.method:void 0,s=r&&i?`${r}:${i}`:void 0;if(e===`in`&&t===`req`&&s){E.set(s,Date.now()),E.size>2e3&&E.clear();return}if(t===`parse-error`){let e=typeof n?.error==`string`?P(n.error):void 0;O.warn([`${p.redBright(`✗`)} ${p.bold(`parse-error`)}`,e?`${p.dim(`error`)}=${e}`:void 0,`${p.dim(`conn`)}=${p.gray(N(r??`?`))}`].filter(e=>!!e).join(` `));return}if(e!==`out`||t!==`res`)return;let c=s?E.get(s):void 0;s&&E.delete(s);let l=typeof c==`number`?Date.now()-c:void 0;if(!(a===!1||typeof l==`number`&&l>=50))return;let u=j(`res`,a),d=typeof l==`number`?p.dim(`${l}ms`):void 0,f=k(n);M({prefix:`${p.yellowBright(`⇄`)} ${p.bold(`res`)}`,statusToken:u,headline:o?p.bold(o):void 0,durationToken:d,restMeta:f,trailing:[r?`${p.dim(`conn`)}=${p.gray(N(r))}`:``,i?`${p.dim(`id`)}=${p.gray(N(i))}`:``].filter(Boolean)})}function re(e,t,n){let r=Date.now(),i=typeof n?.connId==`string`?n.connId:void 0,a=typeof n?.id==`string`?n.id:void 0,o=typeof n?.method==`string`?n.method:void 0,s=typeof n?.ok==`boolean`?n.ok:void 0,c=i&&a?`${i}:${a}`:void 0;if(t===`req`&&e===`in`&&c){w.set(c,{ts:r,method:o,meta:n});return}let l=t===`req`||t===`res`?`⇄`:e===`in`?`←`:`→`,u=`${(t===`req`||t===`res`?p.yellowBright:e===`in`?p.greenBright:p.cyanBright)(l)} ${p.bold(t)}`,d=j(t,s),f=t===`res`&&e===`out`&&c?w.get(c)?.ts:void 0;t===`res`&&e===`out`&&c&&w.delete(c);let m=typeof f==`number`?p.dim(`${r-f}ms`):void 0,h=A({kind:t,method:o,event:typeof n?.event==`string`?n.event:void 0}),g=k(n),_=[];i&&i!==T&&(_.push(`${p.dim(`conn`)}=${p.gray(N(i))}`),T=i),a&&_.push(`${p.dim(`id`)}=${p.gray(N(a))}`),M({prefix:u,statusToken:d,headline:h,durationToken:m,restMeta:g,trailing:_})}function R(e){if(e)return e.split(`;`)[0]?.trim().toLowerCase()||void 0}function z(e){return typeof e==`string`&&e.startsWith(`image/`)}function ie(e){return e.length>0&&e.length%4==0&&/^[A-Za-z0-9+/]+={0,2}$/.test(e)}function ae(e,t,n){let r=e.mimeType??``,i=e.content,a=e.fileName||e.type||`attachment-${t+1}`;if(typeof i!=`string`)throw Error(`attachment ${a}: content must be base64 string`);if(n.requireImageMime&&!r.startsWith(`image/`))throw Error(`attachment ${a}: only image/* supported`);let o=i.trim();if(n.stripDataUrlPrefix){let e=/^data:[^;]+;base64,(.*)$/.exec(o);e&&(o=e[1])}return{label:a,mime:r,base64:o}}function oe(e,t){if(!ie(e.base64))throw Error(`attachment ${e.label}: invalid base64 content`);let n=s(e.base64);if(n<=0||n>t.maxBytes)throw Error(`attachment ${e.label}: exceeds size limit (${n} > ${t.maxBytes} bytes)`);return n}async function se(e,t,n){let r=n?.maxBytes??5e6,i=n?.log;if(!t||t.length===0)return{message:e,images:[]};let a=[];for(let[e,n]of t.entries()){if(!n)continue;let t=ae(n,e,{stripDataUrlPrefix:!0,requireImageMime:!1});oe(t,{maxBytes:r});let{base64:o,label:s,mime:l}=t,u=R(l),d=R(await c(o));if(d&&!z(d)){i?.warn(`attachment ${s}: detected non-image (${d}), dropping`);continue}if(!d&&!z(u)){i?.warn(`attachment ${s}: unable to detect image mime type, dropping`);continue}d&&u&&d!==u&&i?.warn(`attachment ${s}: mime mismatch (${u} -> ${d}), using sniffed`),a.push({type:`image`,data:o,mimeType:d??u??l})}return{message:e,images:a}}function ce(e){return e?.map(e=>({type:typeof e?.type==`string`?e.type:void 0,mimeType:typeof e?.mimeType==`string`?e.mimeType:void 0,fileName:typeof e?.fileName==`string`?e.fileName:void 0,content:typeof e?.content==`string`?e.content:ArrayBuffer.isView(e?.content)?Buffer.from(e.content.buffer,e.content.byteOffset,e.content.byteLength).toString(`base64`):e?.content instanceof ArrayBuffer?Buffer.from(e.content).toString(`base64`):void 0})).filter(e=>e.content)??[]}const le=i();let B=null;function V(t){let n=t??e();return f.join(n,`push/apns-registrations.json`)}function H(e){return e.trim()}function U(e){return e.trim().replace(/[<>\s]/g,``).toLowerCase()}function W(e){return e.trim()}function G(e){return/^[0-9a-f]{32,}$/i.test(e)}function ue(e){let t=e.trim();if(t)try{let e=JSON.parse(t);return typeof e.reason==`string`&&e.reason.trim().length>0?e.reason.trim():t.slice(0,200)}catch{return t.slice(0,200)}}function K(e){return Buffer.from(e).toString(`base64`).replace(/\+/g,`-`).replace(/\//g,`_`).replace(/=+$/g,``)}function q(e){return K(Buffer.from(JSON.stringify(e)))}function de(e){let t=h(`sha256`).update(e.privateKey).digest(`hex`);return`${e.teamId}:${e.keyId}:${t}`}function fe(e,t=Date.now()){let n=de(e);if(B&&B.cacheKey===n&&t<B.expiresAtMs)return B.token;let r=Math.floor(t/1e3),i=`${q({alg:`ES256`,kid:e.keyId,typ:`JWT`})}.${q({iss:e.teamId,iat:r})}`,a=`${i}.${K(_(`sha256`,Buffer.from(i,`utf8`),{key:g(e.privateKey),dsaEncoding:`ieee-p1363`}))}`;return B={cacheKey:n,token:a,expiresAtMs:t+3e6},a}function J(e){return e.trim().replace(/\\n/g,`
|
|
2
2
|
`)}function Y(e){let t=e?.trim()??``;return t.length>0?t:null}async function X(e){let t=await o(V(e));return!t||typeof t!=`object`?{registrationsByNodeId:{}}:{registrationsByNodeId:t.registrationsByNodeId&&typeof t.registrationsByNodeId==`object`&&!Array.isArray(t.registrationsByNodeId)?t.registrationsByNodeId:{}}}async function pe(e,t){await a(V(t),e)}function Z(e){if(typeof e!=`string`)return null;let t=e.trim().toLowerCase();return t===`sandbox`||t===`production`?t:null}async function me(e){let t=H(e.nodeId),n=U(e.token),r=W(e.topic),i=Z(e.environment)??`sandbox`;if(!t)throw Error(`nodeId required`);if(!r)throw Error(`topic required`);if(!G(n))throw Error(`invalid APNs token`);return await le(async()=>{let a=await X(e.baseDir),o={nodeId:t,token:n,topic:r,environment:i,updatedAtMs:Date.now()};return a.registrationsByNodeId[t]=o,await pe(a,e.baseDir),o})}async function he(e,t){let n=H(e);return n?(await X(t)).registrationsByNodeId[n]??null:null}async function ge(e=process.env){let t=Y(e.OPENCLAW_APNS_TEAM_ID),n=Y(e.OPENCLAW_APNS_KEY_ID);if(!t||!n)return{ok:!1,error:`APNs auth missing: set OPENCLAW_APNS_TEAM_ID and OPENCLAW_APNS_KEY_ID`};let r=Y(e.OPENCLAW_APNS_PRIVATE_KEY_P8)??Y(e.OPENCLAW_APNS_PRIVATE_KEY);if(r)return{ok:!0,value:{teamId:t,keyId:n,privateKey:J(r)}};let i=Y(e.OPENCLAW_APNS_PRIVATE_KEY_PATH);if(!i)return{ok:!1,error:`APNs private key missing: set OPENCLAW_APNS_PRIVATE_KEY_P8 or OPENCLAW_APNS_PRIVATE_KEY_PATH`};try{return{ok:!0,value:{teamId:t,keyId:n,privateKey:J(await m.readFile(i,`utf8`))}}}catch(e){return{ok:!1,error:`failed reading OPENCLAW_APNS_PRIVATE_KEY_PATH (${i}): ${e instanceof Error?e.message:String(e)}`}}}async function _e(e){let t=e.environment===`production`?`https://api.push.apple.com`:`https://api.sandbox.push.apple.com`,n=JSON.stringify(e.payload),r=`/3/device/${e.token}`;return await new Promise((i,a)=>{let o=v.connect(t),s=!1,c=e=>{s||(s=!0,o.destroy(),a(e))},l=e=>{s||(s=!0,o.close(),i(e))};o.once(`error`,e=>c(e));let u=o.request({":method":`POST`,":path":r,authorization:`bearer ${e.bearerToken}`,"apns-topic":e.topic,"apns-push-type":e.pushType,"apns-priority":e.priority,"apns-expiration":`0`,"content-type":`application/json`,"content-length":Buffer.byteLength(n).toString()}),d=0,f,p=``;u.setEncoding(`utf8`),u.setTimeout(e.timeoutMs,()=>{u.close(v.constants.NGHTTP2_CANCEL),c(Error(`APNs request timed out after ${e.timeoutMs}ms`))}),u.on(`response`,e=>{let t=e[`:status`];d=typeof t==`number`?t:Number(t??0);let n=e[`apns-id`];typeof n==`string`&&n.trim().length>0&&(f=n.trim())}),u.on(`data`,e=>{typeof e==`string`&&(p+=e)}),u.on(`end`,()=>{l({status:d,apnsId:f,body:p})}),u.on(`error`,e=>c(e)),u.end(n)})}function ve(e){return typeof e==`number`&&Number.isFinite(e)?Math.max(1e3,Math.trunc(e)):1e4}function ye(e){let t=U(e.registration.token);if(!G(t))throw Error(`invalid APNs token`);let n=W(e.registration.topic);if(!n)throw Error(`topic required`);return{token:t,topic:n,environment:e.registration.environment,bearerToken:fe(e.auth)}}function be(e){return{ok:e.response.status===200,status:e.response.status,apnsId:e.response.apnsId,reason:ue(e.response.body),tokenSuffix:e.token.slice(-8),topic:e.topic,environment:e.environment}}function Q(e){return{kind:e.kind,nodeId:e.nodeId,ts:Date.now(),...e.reason?{reason:e.reason}:{}}}async function $(e){let{token:t,topic:n,environment:r,bearerToken:i}=ye({auth:e.auth,registration:e.registration});return be({response:await(e.requestSender??_e)({token:t,topic:n,environment:r,bearerToken:i,payload:e.payload,timeoutMs:ve(e.timeoutMs),pushType:e.pushType,priority:e.priority}),token:t,topic:n,environment:r})}async function xe(e){let t={aps:{alert:{title:e.title,body:e.body},sound:`default`},openclaw:Q({kind:`push.test`,nodeId:e.nodeId})};return await $({auth:e.auth,registration:e.registration,payload:t,timeoutMs:e.timeoutMs,requestSender:e.requestSender,pushType:`alert`,priority:`10`})}async function Se(e){let t={aps:{"content-available":1},openclaw:Q({kind:`node.wake`,reason:e.wakeReason??`node.invoke`,nodeId:e.nodeId})};return await $({auth:e.auth,registration:e.registration,payload:t,timeoutMs:e.timeoutMs,requestSender:e.requestSender,pushType:`background`,priority:`5`})}export{xe as a,se as c,te as d,I as f,ge as i,P as l,Z as n,Se as o,b as p,me as r,ce as s,he as t,L as u};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import"./paths-B4IRk3wi.js";import{A as e,p as t,w as n}from"./subsystem-BQ1073Mu.js";import{S as r,y as i}from"./utils-D1PlBTFH.js";import{Si as a,Yl as o,eu as s,gi as c,nc as l,qs as u,xi as d}from"./model-selection-B2r_LMFb.js";import{Dt as f,Ft as p,fn as m,kt as h,un as g}from"./reply-
|
|
1
|
+
import"./paths-B4IRk3wi.js";import{A as e,p as t,w as n}from"./subsystem-BQ1073Mu.js";import{S as r,y as i}from"./utils-D1PlBTFH.js";import{Si as a,Yl as o,eu as s,gi as c,nc as l,qs as u,xi as d}from"./model-selection-B2r_LMFb.js";import{Dt as f,Ft as p,fn as m,kt as h,un as g}from"./reply-HrabJs88.js";import{a as _,d as v,f as y,n as b,r as x}from"./agent-scope-DW6ZDCxj.js";import{c as S,g as C,t as w}from"./session-key-D3P0tf5P.js";import"./openclaw-root-D_0Q6--h.js";import"./github-copilot-token-DGYAlOmV.js";import{t as T}from"./command-format-BbDT1tlm.js";import"./boolean-Ch3DfXPy.js";import"./env-BI_g1HfG.js";import"./env-overrides-C0vMeCeX.js";import"./registry-BwcVQtsI.js";import"./skills-CZ7zEDmo.js";import"./frontmatter-BkZkwkVO.js";import{lt as E,n as D,r as O,t as k,x as A,y as ee}from"./plugins-1aNlpDX7.js";import"./logger-Bgqzq_Zu.js";import"./exec-BdtFni8N.js";import"./windows-spawn-B36IG4s2.js";import"./redact-DsC5EnL7.js";import"./path-alias-guards-mvyLCPlN.js";import"./errors-y2V0aFIS.js";import"./send-DyCUb7oW.js";import"./send-C6J_nLb9.js";import{s as te}from"./paths-yLEk_25I.js";import"./chat-envelope-HVpKusFc.js";import"./audio-transcription-runner-DsYKaMCI.js";import"./image-6t162ig6.js";import"./models-config-PU32mWpc.js";import"./tool-display-DBTvIf_I.js";import"./fetch-guard-11xgsj9-.js";import"./api-key-rotation-CayDxQxo.js";import"./local-roots-ClGHF49W.js";import"./model-catalog-CXx8LKWX.js";import"./proxy-fetch-Ci8QXzzm.js";import"./tokens-xmkeRJqo.js";import"./deliver-Dg2TVF1M.js";import"./commands-FDnZnqN5.js";import"./commands-registry-BEMFeaZR.js";import"./pairing-store-mQs2yMkt.js";import"./fetch-Dikjvc5M.js";import{a as ne,n as re}from"./call-BQAAYLj3.js";import"./with-timeout-WveKxvFV.js";import"./diagnostic-kojLym9G.js";import"./send-aEwJo2mZ2.js";import"./pi-model-discovery-DMZplc-U.js";import"./exec-approvals-allowlist-Bh3Rw-aC.js";import"./exec-safe-bin-runtime-policy-BxN1_8e_.js";import"./ir-DcrzIcfF.js";import"./render-D8OWO2hT.js";import"./target-errors-B1wrjiTA.js";import"./read-only-account-inspect-DLD1Pk6l.js";import"./channel-selection-BuH6syM3.js";import"./plugin-auto-enable-DzUZAwai.js";import"./send-HOAYSr2i.js";import"./outbound-attachment-lrGTAaR-.js";import"./delivery-queue-CKbauSFq.js";import"./send-w-vabJ4U.js";import"./channel-activity-CBKv0fto.js";import"./tables-DwrGp-F-.js";import"./fetch-D4txy8qG.js";import"./skill-commands-BN3rmzgq.js";import"./workspace-dirs-BMGwwM6X.js";import"./pairing-token-BipkTRNW.js";import"./restart-Dal_HOce.js";import"./runtime-web-tools-BiMD0yHU.js";import"./command-secret-targets-CbrSGcvV.js";import"./session-cost-usage-BgqKixv0.js";import"./connection-auth-BCxq0f5b.js";import{a as ie,l as j}from"./onboard-helpers-CKsetIvC.js";import"./prompt-style-DpAh867d.js";import"./pairing-labels-iZoSa-aT.js";import"./memory-cli-P0GDvKlz.js";import"./query-expansion-BNl6JMlz.js";import"./manager-DKyEk2dt.js";import{t as ae}from"./links-jlebCPFf.js";import{n as M}from"./cli-utils-BY7dLMFy.js";import{t as N}from"./help-format-Cav62lfS.js";import{n as oe}from"./progress-Cyn5U745.js";import"./exec-approvals-BpBNEy6i.js";import"./nodes-screen-B1Y6pbxs.js";import"./system-run-command-B212q8f9.js";import"./runtime-Dz2qgcJk.js";import"./stagger-DmFYysrJ.js";import"./channel-web-DCbW654e.js";import"./outbound-D02KD9fe.js";import"./session-SdGBXojs.js";import"./login-BdeCl-NI.js";import{t as P}from"./helpers-Cp8gcO6u.js";import"./provider-env-vars-D8p6Ohpj.js";import{t as se}from"./command-options-Bq5nQxz6.js";import"./note-PBjA39mC.js";import{t as ce}from"./prompts-wv-lfVrJ.js";import{t as F}from"./clack-prompter-D1yxUXLU.js";import{a as I,i as L,n as R,o as le,r as ue,t as de}from"./config-validation-BZofjJj7.js";import{a as fe,i as pe,n as z,r as B,t as V}from"./agents.config-CQVkG48F.js";import"./enable-DBKH-USU.js";import"./install-safe-path-CHTLw9k0.js";import"./npm-pack-install-BDxOuAxr.js";import"./skill-scanner-BKP1PUAv.js";import"./installs-C7lAxbH5.js";import"./plugin-install-plan-CZLEMxoh.js";import{r as me}from"./onboard-channels-BW1eMy7S.js";import"./auth-choice.apply-helpers-D6x5kVMH.js";import"./issue-format-BM2kAbbw.js";import"./openai-codex-model-default-mbcLbh3Q.js";import"./auth-token-C5WrmFns.js";import{n as H}from"./logging-Gwc2HmXy.js";import"./provider-auth-helpers-DKQwlJ25.js";import"./oauth-tls-preflight-OT_XKQho.js";import"./auth-choice-options-Dw14noox.js";import{n as he}from"./auth-choice-prompt-xYj13czb.js";import{i as ge,r as _e}from"./auth-choice-Baa2-mnd.js";import"./openai-model-default-BY4Fzk4Z.js";import"./model-picker-B814AwKo.js";import"./ollama-setup-CXHKnPqf.js";import U from"node:path";import W from"node:fs/promises";function ve(e){let t=e.timeout===void 0?e.cfg.agents?.defaults?.timeoutSeconds??600:Number.parseInt(String(e.timeout),10);if(Number.isNaN(t)||t<0)throw Error(`--timeout must be a non-negative integer (seconds; 0 means no timeout)`);return t}function ye(e){let t=[];e.text&&t.push(e.text.trimEnd());let n=typeof e.mediaUrl==`string`&&e.mediaUrl.trim()?e.mediaUrl.trim():void 0,r=e.mediaUrls??(n?[n]:[]);for(let e of r)t.push(`MEDIA:${e}`);return t.join(`
|
|
2
2
|
`).trimEnd()}async function be(e,t){let n=(e.message??``).trim();if(!n)throw Error(`Message (--message) is required`);if(!e.to&&!e.sessionId&&!e.agent)throw Error(`Pass --to <E.164>, --session-id, or --agent to choose a session`);let r=u(),i=e.agent?.trim(),o=i?S(i):void 0;if(o&&!x(r).includes(o))throw Error(`Unknown agent id "${i}". Use "${T(`openclaw agents list`)}" to see configured agents.`);let s=ve({cfg:r,timeout:e.timeout}),l=s===0?2147e6:Math.max(1e4,(s+30)*1e3),f=h({cfg:r,agentId:o,to:e.to,sessionId:e.sessionId}).sessionKey,p=c(e.channel),m=e.runId?.trim()||ne(),g=await oe({label:`Waiting for agent reply…`,indeterminate:!0,enabled:e.json!==!0},async()=>await re({method:`agent`,params:{message:n,agentId:o,to:e.to,replyTo:e.replyTo,sessionId:e.sessionId,sessionKey:f,thinking:e.thinking,deliver:!!e.deliver,channel:p,replyChannel:e.replyChannel,replyAccountId:e.replyAccount,bestEffortDeliver:e.bestEffortDeliver,timeout:s,lane:e.lane,extraSystemPrompt:e.extraSystemPrompt,idempotencyKey:m},expectFinal:!0,timeoutMs:l,clientName:a.CLI,mode:d.CLI}));if(e.json)return t.log(JSON.stringify(g,null,2)),g;let _=g?.result?.payloads??[];if(_.length===0)return t.log(g?.summary?String(g.summary):`No reply from agent.`),g;for(let e of _){let n=ye(e);n&&t.log(n)}return g}async function xe(e,t,n){let r={...e,agentId:e.agent,replyAccountId:e.replyAccount};if(e.local===!0)return await f(r,t,n);try{return await be(e,t)}catch(e){return t.error?.(`Gateway agent failed; falling back to embedded: ${String(e)}`),await f(r,t,n)}}function G(e){return{...e,log:()=>{}}}async function K(e){return await de(e)}function q(e,t,n){return e?t?.trim()?S(t):n?.fallbackToDefault?y(e):null:null}function J(e,t){return e?z(e).some(e=>e.id===t):!1}function Se(e){return`${S(e.agentId)} <- ${L(e)}`}function Ce(e){let t=q(e.cfg,e.agentInput?.trim(),{fallbackToDefault:!0});return t?J(e.cfg,t)?t:(e.runtime.error(`Agent "${t}" not found.`),e.runtime.exit(1),null):(e.runtime.error(`Unable to resolve agent id.`),e.runtime.exit(1),null)}function we(e){return e.map(e=>`${L(e.binding)} (agent=${e.existingAgentId})`)}function Te(e){let t=(e.bindValues??[]).map(e=>e.trim()).filter(Boolean);if(t.length===0)return e.runtime.error(e.emptyMessage),e.runtime.exit(1),null;let n=I({agentId:e.agentId,specs:t,config:e.cfg});return n.errors.length>0?(e.runtime.error(n.errors.join(`
|
|
3
3
|
`)),e.runtime.exit(1),null):n}function Y(e){return e.json?(e.runtime.log(JSON.stringify(e.payload,null,2)),(e.conflictCount??0)>0&&e.runtime.exit(1),!0):!1}async function Ee(e){let t=await K(e.runtime);if(!t)return null;let n=Ce({cfg:t,runtime:e.runtime,agentInput:e.agentInput});return n?{cfg:t,agentId:n}:null}async function De(e,n=t){let r=await K(n);if(!r)return;let i=q(r,e.agent?.trim());if(e.agent&&!i){n.error(`Agent id is required.`),n.exit(1);return}if(i&&!J(r,i)){n.error(`Agent "${i}" not found.`),n.exit(1);return}let a=A(r).filter(e=>!i||S(e.agentId)===i);if(e.json){n.log(JSON.stringify(a.map(e=>({agentId:S(e.agentId),match:e.match,description:L(e)})),null,2));return}if(a.length===0){n.log(i?`No routing bindings for agent "${i}".`:`No routing bindings.`);return}n.log([`Routing bindings:`,...a.map(e=>`- ${Se(e)}`)].join(`
|
|
4
4
|
`))}async function Oe(e,n=t){let r=await Ee({runtime:n,agentInput:e.agent});if(!r)return;let{cfg:i,agentId:a}=r,o=Te({runtime:n,cfg:i,agentId:a,bindValues:e.bind,emptyMessage:`Provide at least one --bind <channel[:accountId]>.`});if(!o)return;let s=R(i,o.bindings);(s.added.length>0||s.updated.length>0)&&(await l(s.config),e.json||H(n));let c={agentId:a,added:s.added.map(L),updated:s.updated.map(L),skipped:s.skipped.map(L),conflicts:we(s.conflicts)};if(!Y({runtime:n,json:e.json,payload:c,conflictCount:s.conflicts.length})){if(s.added.length>0){n.log(`Added bindings:`);for(let e of s.added)n.log(`- ${L(e)}`)}else s.updated.length===0&&n.log(`No new bindings added.`);if(s.updated.length>0){n.log(`Updated bindings:`);for(let e of s.updated)n.log(`- ${L(e)}`)}if(s.skipped.length>0){n.log(`Already present:`);for(let e of s.skipped)n.log(`- ${L(e)}`)}if(s.conflicts.length>0){n.error(`Skipped bindings already claimed by another agent:`);for(let e of s.conflicts)n.error(`- ${L(e.binding)} (agent=${e.existingAgentId})`);n.exit(1)}}}async function ke(e,n=t){let r=await Ee({runtime:n,agentInput:e.agent});if(!r)return;let{cfg:i,agentId:a}=r;if(e.all&&(e.bind?.length??0)>0){n.error(`Use either --all or --bind, not both.`),n.exit(1);return}if(e.all){let t=A(i),r=t.filter(e=>S(e.agentId)===a),o=t.filter(e=>S(e.agentId)!==a),s=(i.bindings??[]).filter(e=>!ee(e));if(r.length===0){n.log(`No bindings to remove for agent "${a}".`);return}await l({...i,bindings:[...o,...s].length>0?[...o,...s]:void 0}),e.json||H(n);let c={agentId:a,removed:r.map(L),missing:[],conflicts:[]};if(Y({runtime:n,json:e.json,payload:c}))return;n.log(`Removed ${r.length} binding(s) for "${a}".`);return}let o=Te({runtime:n,cfg:i,agentId:a,bindValues:e.bind,emptyMessage:`Provide at least one --bind <channel[:accountId]> or use --all.`});if(!o)return;let s=le(i,o.bindings);s.removed.length>0&&(await l(s.config),e.json||H(n));let c={agentId:a,removed:s.removed.map(L),missing:s.missing.map(L),conflicts:we(s.conflicts)};if(!Y({runtime:n,json:e.json,payload:c,conflictCount:s.conflicts.length})){if(s.removed.length>0){n.log(`Removed bindings:`);for(let e of s.removed)n.log(`- ${L(e)}`)}else n.log(`No bindings removed.`);if(s.missing.length>0){n.log(`Not found:`);for(let e of s.missing)n.log(`- ${L(e)}`)}if(s.conflicts.length>0){n.error(`Bindings are owned by another agent:`);for(let e of s.conflicts)n.error(`- ${L(e.binding)} (agent=${e.existingAgentId})`);n.exit(1)}}}async function Ae(e){try{return await W.stat(e),!0}catch{return!1}}async function je(e,n=t,a){let c=await K(n);if(!c)return;let u=e.workspace?.trim(),d=e.name?.trim(),f=a?.hasFlags===!0,p=!!(e.nonInteractive||f);if(p&&!u){n.error(`Non-interactive mode requires --workspace. Re-run without flags to use the wizard.`),n.exit(1);return}if(p){if(!d){n.error(`Agent name is required in non-interactive mode.`),n.exit(1);return}if(!u){n.error(`Non-interactive mode requires --workspace. Re-run without flags to use the wizard.`),n.exit(1);return}let t=S(d);if(t===`main`){n.error(`"${w}" is reserved. Choose another name.`),n.exit(1);return}if(t!==d&&n.log(`Normalized agent id to "${t}".`),B(b(c),t)>=0){n.error(`Agent "${t}" already exists.`),n.exit(1);return}let a=i(u),o=e.agentDir?.trim()?i(e.agentDir.trim()):_(c,t),s=e.model?.trim(),f=V(c,{agentId:t,name:d,workspace:a,agentDir:o,...s?{model:s}:{}}),p=I({agentId:t,specs:e.bind,config:f});if(p.errors.length>0){n.error(p.errors.join(`
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{A as e,p as t,w as n}from"./subsystem-kTFXkQM5.js";import"./paths-BjD3T_xq.js";import"./boolean-D15s2V33.js";import{ir as r,jo as i,lr as a,ur as o}from"./auth-profiles-e3SmOvON.js";import{t as s}from"./command-format-CLxIPuLR.js";import{r as c}from"./agent-scope-BKE4M04k.js";import{c as l}from"./session-key-C7F_iqYg.js";import"./utils-7Gdj77QB.js";import"./openclaw-root-CnsBf6ZU.js";import"./github-copilot-token-C79yeDKS.js";import"./env-overrides-R4odAlsj.js";import"./version-q3SkUw2K.js";import"./registry-Div2nEwi.js";import"./skills-Df0CxTMH.js";import"./frontmatter-C7mzDNxd.js";import"./plugins-CCU8jDti.js";import"./logger-C1GUBMt-.js";import"./exec-CiwCrGw3.js";import"./windows-spawn-Dw4dpTt2.js";import"./redact-bVcVj47r.js";import"./path-alias-guards-kY_ZbWs-.js";import"./errors-DNQO70y-.js";import"./send-Cfa08ZLE.js";import"./send-DmS34-Eb.js";import{C as u,T as d,k as f}from"./compact-
|
|
1
|
+
import{A as e,p as t,w as n}from"./subsystem-kTFXkQM5.js";import"./paths-BjD3T_xq.js";import"./boolean-D15s2V33.js";import{ir as r,jo as i,lr as a,ur as o}from"./auth-profiles-e3SmOvON.js";import{t as s}from"./command-format-CLxIPuLR.js";import{r as c}from"./agent-scope-BKE4M04k.js";import{c as l}from"./session-key-C7F_iqYg.js";import"./utils-7Gdj77QB.js";import"./openclaw-root-CnsBf6ZU.js";import"./github-copilot-token-C79yeDKS.js";import"./env-overrides-R4odAlsj.js";import"./version-q3SkUw2K.js";import"./registry-Div2nEwi.js";import"./skills-Df0CxTMH.js";import"./frontmatter-C7mzDNxd.js";import"./plugins-CCU8jDti.js";import"./logger-C1GUBMt-.js";import"./exec-CiwCrGw3.js";import"./windows-spawn-Dw4dpTt2.js";import"./redact-bVcVj47r.js";import"./path-alias-guards-kY_ZbWs-.js";import"./errors-DNQO70y-.js";import"./send-Cfa08ZLE.js";import"./send-DmS34-Eb.js";import{C as u,T as d,k as f}from"./compact-B5m4267P.js";import"./paths-BfjJY2VL.js";import"./chat-envelope-Bznn2SoS.js";import"./models-config-D5CbqIVA.js";import"./tokens-D8eWI71q.js";import"./with-timeout-c1CzdShT.js";import"./deliver-HZ99jQzl.js";import"./diagnostic-CvLTqJbq.js";import"./send-CW3hfjkM.js";import"./pi-model-discovery-cW9be_SG.js";import"./exec-approvals-allowlist-DlYH42As.js";import"./exec-safe-bin-runtime-policy-Bu9bb9U5.js";import"./model-catalog-CI2eEH9Y.js";import"./fetch-Dj-FEHSr.js";import"./audio-transcription-runner-BwviCgP5.js";import"./fetch-guard-guH8Tmju.js";import"./image-DQ_3LMNb.js";import"./tool-display-BTuQQN92.js";import"./api-key-rotation-BRm3CNd-.js";import"./proxy-fetch-ByazCl5E.js";import"./ir-CsTyrPwa.js";import"./render-DrrPmnMI.js";import"./target-errors-BRLBPboT.js";import"./commands-DOhEGWJ2.js";import"./commands-registry-CqsggloB.js";import"./session-cost-usage-CHtVgnE8.js";import"./session-utils-Bh1ozdi-.js";import"./sqlite-DgdOh9U-.js";import{a as p,n as m}from"./call-D5NJXFgu.js";import"./pi-tools.policy-CklWbQkk.js";import"./pairing-store-CmT1fSmE.js";import"./fetch-Dh-apy46.js";import"./skill-commands-qdKWuiOR.js";import"./workspace-dirs-na4G79jL.js";import"./pairing-token-YrKlxjGC.js";import"./channel-activity-CFgOyIkh.js";import"./tables-5gR6U_tC.js";import"./kill-tree-DihujQie.js";import"./runtime-web-tools-BjmhIJkd.js";import"./runtime-HwYsJOk2.js";import"./node-shell-BuPDYFhk.js";import"./stagger-DxzgG2jd.js";import"./channel-selection-C1kkZyEb.js";import"./plugin-auto-enable-CrVJR--r.js";import"./send-DQxQrVuw.js";import"./outbound-attachment-BKku_WUf.js";import"./delivery-queue-nkPJu0fY.js";import"./send-DVv1dCwu.js";import"./system-run-command-BT2tTJg2.js";import"./fetch-EBjfhrYU.js";import"./command-secret-targets-BtkZwOzh.js";import"./connection-auth-BIApbu6I.js";import"./onboard-helpers-CvWjz0op.js";import"./prompt-style-QJckocuy.js";import"./pairing-labels-B3wRXljf.js";import"./search-manager-Co5RwgQ4.js";import"./manager-p3CCKFcv.js";import"./memory-cli-CTXmLb0V.js";import{t as h}from"./links-pHmQCzdF.js";import{n as g}from"./cli-utils-BleB1eys.js";import{t as _}from"./help-format-BSNXPQuE.js";import{n as v}from"./progress-Cy6zNuIC.js";import"./exec-approvals-BXO9Cezj.js";import"./outbound-DtOHlSvV.js";import"./channel-web-DBxLlMxt.js";import"./session-qITLFUV4.js";import"./login-B3ufIWva.js";import"./provider-env-vars-Dt0Q29Su.js";import{t as y}from"./command-options-BpOUDl2S.js";import"./note-Dzei_8z5.js";import"./clack-prompter-B1OXkeHa.js";import"./config-validation-BJH21LJx.js";import"./agents.config-BP_dS899.js";import"./enable-BGfffwUv.js";import"./install-safe-path-C2oVnQ4q.js";import"./npm-pack-install-C3zwwLzE.js";import"./skill-scanner-B8TBRXeT.js";import"./installs-8EuwGg1W.js";import"./plugin-install-plan-Dsgq3kP0.js";import"./onboard-channels-C0PAtk4T.js";import"./auth-choice.apply-helpers-BpW1jrTU.js";import"./issue-format-DRHlQPnX.js";import{t as b}from"./helpers-COz1ghcB.js";import"./openai-codex-model-default-CBi_hgkL.js";import"./auth-token-Bp33mK5b.js";import"./logging-Ai_SKvpp.js";import"./provider-auth-helpers-BEBH5krH.js";import"./oauth-tls-preflight-CN5Fg7I1.js";import"./auth-choice-options-B3WQyS7I.js";import"./auth-choice-prompt-uegl56cf.js";import"./auth-choice-Cw_bwgkr.js";import"./openai-model-default-DdiaYvnL.js";import"./model-picker-Dy4yurRz.js";import"./ollama-setup-DAfBQDQ3.js";import{agentsAddCommand as x,agentsBindCommand as S,agentsBindingsCommand as C,agentsDeleteCommand as w,agentsListCommand as T,agentsSetIdentityCommand as E,agentsUnbindCommand as D}from"./agents-6IxtknW5.js";function O(e){let t=e.timeout===void 0?e.cfg.agents?.defaults?.timeoutSeconds??600:Number.parseInt(String(e.timeout),10);if(Number.isNaN(t)||t<0)throw Error(`--timeout must be a non-negative integer (seconds; 0 means no timeout)`);return t}function k(e){let t=[];e.text&&t.push(e.text.trimEnd());let n=typeof e.mediaUrl==`string`&&e.mediaUrl.trim()?e.mediaUrl.trim():void 0,r=e.mediaUrls??(n?[n]:[]);for(let e of r)t.push(`MEDIA:${e}`);return t.join(`
|
|
2
2
|
`).trimEnd()}async function A(e,t){let n=(e.message??``).trim();if(!n)throw Error(`Message (--message) is required`);if(!e.to&&!e.sessionId&&!e.agent)throw Error(`Pass --to <E.164>, --session-id, or --agent to choose a session`);let u=i(),f=e.agent?.trim(),h=f?l(f):void 0;if(h&&!c(u).includes(h))throw Error(`Unknown agent id "${f}". Use "${s(`openclaw agents list`)}" to see configured agents.`);let g=O({cfg:u,timeout:e.timeout}),_=g===0?2147e6:Math.max(1e4,(g+30)*1e3),y=d({cfg:u,agentId:h,to:e.to,sessionId:e.sessionId}).sessionKey,b=r(e.channel),x=e.runId?.trim()||p(),S=await v({label:`Waiting for agent reply…`,indeterminate:!0,enabled:e.json!==!0},async()=>await m({method:`agent`,params:{message:n,agentId:h,to:e.to,replyTo:e.replyTo,sessionId:e.sessionId,sessionKey:y,thinking:e.thinking,deliver:!!e.deliver,channel:b,replyChannel:e.replyChannel,replyAccountId:e.replyAccount,bestEffortDeliver:e.bestEffortDeliver,timeout:g,lane:e.lane,extraSystemPrompt:e.extraSystemPrompt,idempotencyKey:x},expectFinal:!0,timeoutMs:_,clientName:o.CLI,mode:a.CLI}));if(e.json)return t.log(JSON.stringify(S,null,2)),S;let C=S?.result?.payloads??[];if(C.length===0)return t.log(S?.summary?String(S.summary):`No reply from agent.`),S;for(let e of C){let n=k(e);n&&t.log(n)}return S}async function j(e,t,n){let r={...e,agentId:e.agent,replyAccountId:e.replyAccount};if(e.local===!0)return await u(r,t,n);try{return await A(e,t)}catch(e){return t.error?.(`Gateway agent failed; falling back to embedded: ${String(e)}`),await u(r,t,n)}}function M(r,i){r.command(`agent`).description(`Run an agent turn via the Gateway (use --local for embedded)`).requiredOption(`-m, --message <text>`,`Message body for the agent`).option(`-t, --to <number>`,`Recipient number in E.164 used to derive the session key`).option(`--session-id <id>`,`Use an explicit session id`).option(`--agent <id>`,`Agent id (overrides routing bindings)`).option(`--thinking <level>`,`Thinking level: off | minimal | low | medium | high`).option(`--verbose <on|off>`,`Persist agent verbose level for the session`).option(`--channel <channel>`,`Delivery channel: ${i.agentChannelOptions} (omit to use the main session channel)`).option(`--reply-to <target>`,`Delivery target override (separate from session routing)`).option(`--reply-channel <channel>`,`Delivery channel override (separate from routing)`).option(`--reply-account <id>`,`Delivery account id override`).option(`--local`,`Run the embedded agent locally (requires model provider API keys in your shell)`,!1).option(`--deliver`,`Send the agent's reply back to the selected channel`,!1).option(`--json`,`Output result as JSON`,!1).option(`--timeout <seconds>`,`Override agent command timeout (seconds, default 600 or config value)`).addHelpText(`after`,()=>`
|
|
3
3
|
${e.heading(`Examples:`)}
|
|
4
4
|
${_([[`openclaw agent --to +15555550123 --message "status update"`,`Start a new session.`],[`openclaw agent --agent ops --message "Summarize logs"`,`Use a specific agent.`],[`openclaw agent --session-id 1234 --message "Summarize inbox" --thinking medium`,`Target a session with explicit thinking level.`],[`openclaw agent --to +15555550123 --message "Trace logs" --verbose on --json`,`Enable verbose logging and JSON output.`],[`openclaw agent --to +15555550123 --message "Summon reply" --deliver`,`Deliver reply.`],[`openclaw agent --agent ops --message "Generate report" --deliver --reply-channel slack --reply-to "#reports"`,`Send reply to a different channel/target.`]])}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{A as e,p as t}from"./subsystem-kTFXkQM5.js";import"./paths-BjD3T_xq.js";import"./boolean-D15s2V33.js";import"./auth-profiles-e3SmOvON.js";import"./agent-scope-BKE4M04k.js";import"./utils-7Gdj77QB.js";import"./openclaw-root-CnsBf6ZU.js";import"./github-copilot-token-C79yeDKS.js";import"./env-overrides-R4odAlsj.js";import"./version-q3SkUw2K.js";import"./registry-Div2nEwi.js";import"./skills-Df0CxTMH.js";import"./frontmatter-C7mzDNxd.js";import"./plugins-CCU8jDti.js";import"./logger-C1GUBMt-.js";import"./exec-CiwCrGw3.js";import"./windows-spawn-Dw4dpTt2.js";import"./redact-bVcVj47r.js";import"./path-alias-guards-kY_ZbWs-.js";import"./errors-DNQO70y-.js";import"./send-Cfa08ZLE.js";import"./send-DmS34-Eb.js";import"./compact-
|
|
1
|
+
import{A as e,p as t}from"./subsystem-kTFXkQM5.js";import"./paths-BjD3T_xq.js";import"./boolean-D15s2V33.js";import"./auth-profiles-e3SmOvON.js";import"./agent-scope-BKE4M04k.js";import"./utils-7Gdj77QB.js";import"./openclaw-root-CnsBf6ZU.js";import"./github-copilot-token-C79yeDKS.js";import"./env-overrides-R4odAlsj.js";import"./version-q3SkUw2K.js";import"./registry-Div2nEwi.js";import"./skills-Df0CxTMH.js";import"./frontmatter-C7mzDNxd.js";import"./plugins-CCU8jDti.js";import"./logger-C1GUBMt-.js";import"./exec-CiwCrGw3.js";import"./windows-spawn-Dw4dpTt2.js";import"./redact-bVcVj47r.js";import"./path-alias-guards-kY_ZbWs-.js";import"./errors-DNQO70y-.js";import"./send-Cfa08ZLE.js";import"./send-DmS34-Eb.js";import"./compact-B5m4267P.js";import"./paths-BfjJY2VL.js";import"./chat-envelope-Bznn2SoS.js";import"./models-config-D5CbqIVA.js";import"./tokens-D8eWI71q.js";import"./with-timeout-c1CzdShT.js";import"./deliver-HZ99jQzl.js";import"./diagnostic-CvLTqJbq.js";import"./send-CW3hfjkM.js";import"./pi-model-discovery-cW9be_SG.js";import"./exec-approvals-allowlist-DlYH42As.js";import"./exec-safe-bin-runtime-policy-Bu9bb9U5.js";import"./model-catalog-CI2eEH9Y.js";import"./fetch-Dj-FEHSr.js";import"./audio-transcription-runner-BwviCgP5.js";import"./fetch-guard-guH8Tmju.js";import"./image-DQ_3LMNb.js";import"./tool-display-BTuQQN92.js";import"./api-key-rotation-BRm3CNd-.js";import"./proxy-fetch-ByazCl5E.js";import"./ir-CsTyrPwa.js";import"./render-DrrPmnMI.js";import"./target-errors-BRLBPboT.js";import"./commands-DOhEGWJ2.js";import"./commands-registry-CqsggloB.js";import"./session-cost-usage-CHtVgnE8.js";import"./session-utils-Bh1ozdi-.js";import"./sqlite-DgdOh9U-.js";import"./call-D5NJXFgu.js";import"./pi-tools.policy-CklWbQkk.js";import"./pairing-store-CmT1fSmE.js";import"./fetch-Dh-apy46.js";import"./skill-commands-qdKWuiOR.js";import"./workspace-dirs-na4G79jL.js";import"./pairing-token-YrKlxjGC.js";import"./channel-activity-CFgOyIkh.js";import"./tables-5gR6U_tC.js";import"./kill-tree-DihujQie.js";import"./runtime-web-tools-BjmhIJkd.js";import"./runtime-HwYsJOk2.js";import"./node-shell-BuPDYFhk.js";import"./stagger-DxzgG2jd.js";import"./channel-selection-C1kkZyEb.js";import"./plugin-auto-enable-CrVJR--r.js";import"./send-DQxQrVuw.js";import"./outbound-attachment-BKku_WUf.js";import"./delivery-queue-nkPJu0fY.js";import"./send-DVv1dCwu.js";import"./system-run-command-BT2tTJg2.js";import"./fetch-EBjfhrYU.js";import"./command-secret-targets-BtkZwOzh.js";import"./connection-auth-BIApbu6I.js";import"./onboard-helpers-CvWjz0op.js";import"./prompt-style-QJckocuy.js";import"./pairing-labels-B3wRXljf.js";import"./search-manager-Co5RwgQ4.js";import"./manager-p3CCKFcv.js";import"./memory-cli-CTXmLb0V.js";import{t as n}from"./links-pHmQCzdF.js";import{n as r}from"./cli-utils-BleB1eys.js";import"./help-format-BSNXPQuE.js";import"./progress-Cy6zNuIC.js";import"./exec-approvals-BXO9Cezj.js";import"./skills-status-Bzj-kJgo.js";import"./outbound-DtOHlSvV.js";import"./channel-web-DBxLlMxt.js";import"./session-qITLFUV4.js";import"./login-B3ufIWva.js";import"./provider-env-vars-Dt0Q29Su.js";import"./note-Dzei_8z5.js";import"./clack-prompter-B1OXkeHa.js";import"./enable-BGfffwUv.js";import"./install-safe-path-C2oVnQ4q.js";import"./npm-pack-install-C3zwwLzE.js";import"./skill-scanner-B8TBRXeT.js";import"./installs-8EuwGg1W.js";import"./plugin-install-plan-Dsgq3kP0.js";import"./onboard-channels-C0PAtk4T.js";import"./auth-choice.apply-helpers-BpW1jrTU.js";import"./issue-format-DRHlQPnX.js";import"./daemon-install-plan.shared-JQBIvXfN.js";import"./runtime-guard-BFK4A89C.js";import"./gateway-install-token-D5Aivh68.js";import"./systemd-2rjzkWWr.js";import"./service-CtJtO2Jl.js";import"./widearea-dns-pIf18JCH.js";import"./bonjour-discovery-CznRzxZc.js";import"./health-CIBrUBhW.js";import"./control-ui-assets-bS1XYZpI.js";import"./onboarding.secret-input-BbwX0Pao.js";import"./skills-install-fdWjyopz.js";import"./openai-codex-model-default-CBi_hgkL.js";import"./auth-token-Bp33mK5b.js";import"./logging-Ai_SKvpp.js";import"./provider-auth-helpers-BEBH5krH.js";import"./oauth-tls-preflight-CN5Fg7I1.js";import"./auth-choice-options-B3WQyS7I.js";import"./auth-choice-prompt-uegl56cf.js";import"./auth-choice-Cw_bwgkr.js";import"./openai-model-default-DdiaYvnL.js";import"./model-picker-Dy4yurRz.js";import"./ollama-setup-DAfBQDQ3.js";import"./systemd-linger-CFEQD-zV.js";import"./onboard-custom-CtGIbOC4.js";import"./ipv4-DEkLiUae.js";import"./health-format-nLgxB9tv.js";import"./onboard-remote-DLXvD858.js";import"./onboard-skills-B3bD0oFC.js";import{configureCommandFromSectionsArg as i,t as a}from"./configure-GlFIJmRr.js";function o(o){o.command(`configure`).description(`Interactive setup wizard for credentials, channels, gateway, and agent defaults`).addHelpText(`after`,()=>`\n${e.muted(`Docs:`)} ${n(`/cli/configure`,`docs.openclaw.ai/cli/configure`)}\n`).option(`--section <section>`,`Configuration sections (repeatable). Options: ${a.join(`, `)}`,(e,t)=>[...t,e],[]).action(async e=>{await r(t,async()=>{await i(e.section,t)})})}export{o as registerConfigureCommand};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import"./paths-B4IRk3wi.js";import{A as e,p as t}from"./subsystem-BQ1073Mu.js";import"./utils-D1PlBTFH.js";import"./model-selection-B2r_LMFb.js";import"./reply-
|
|
1
|
+
import"./paths-B4IRk3wi.js";import{A as e,p as t}from"./subsystem-BQ1073Mu.js";import"./utils-D1PlBTFH.js";import"./model-selection-B2r_LMFb.js";import"./reply-HrabJs88.js";import"./agent-scope-DW6ZDCxj.js";import"./openclaw-root-D_0Q6--h.js";import"./github-copilot-token-DGYAlOmV.js";import"./boolean-Ch3DfXPy.js";import"./env-BI_g1HfG.js";import"./env-overrides-C0vMeCeX.js";import"./registry-BwcVQtsI.js";import"./skills-CZ7zEDmo.js";import"./frontmatter-BkZkwkVO.js";import"./plugins-1aNlpDX7.js";import"./logger-Bgqzq_Zu.js";import"./exec-BdtFni8N.js";import"./windows-spawn-B36IG4s2.js";import"./redact-DsC5EnL7.js";import"./path-alias-guards-mvyLCPlN.js";import"./errors-y2V0aFIS.js";import"./send-DyCUb7oW.js";import"./send-C6J_nLb9.js";import"./paths-yLEk_25I.js";import"./chat-envelope-HVpKusFc.js";import"./audio-transcription-runner-DsYKaMCI.js";import"./image-6t162ig6.js";import"./models-config-PU32mWpc.js";import"./tool-display-DBTvIf_I.js";import"./fetch-guard-11xgsj9-.js";import"./api-key-rotation-CayDxQxo.js";import"./local-roots-ClGHF49W.js";import"./model-catalog-CXx8LKWX.js";import"./proxy-fetch-Ci8QXzzm.js";import"./tokens-xmkeRJqo.js";import"./deliver-Dg2TVF1M.js";import"./commands-FDnZnqN5.js";import"./commands-registry-BEMFeaZR.js";import"./pairing-store-mQs2yMkt.js";import"./fetch-Dikjvc5M.js";import"./call-BQAAYLj3.js";import"./with-timeout-WveKxvFV.js";import"./diagnostic-kojLym9G.js";import"./send-aEwJo2mZ2.js";import"./pi-model-discovery-DMZplc-U.js";import"./exec-approvals-allowlist-Bh3Rw-aC.js";import"./exec-safe-bin-runtime-policy-BxN1_8e_.js";import"./ir-DcrzIcfF.js";import"./render-D8OWO2hT.js";import"./target-errors-B1wrjiTA.js";import"./read-only-account-inspect-DLD1Pk6l.js";import"./channel-selection-BuH6syM3.js";import"./plugin-auto-enable-DzUZAwai.js";import"./send-HOAYSr2i.js";import"./outbound-attachment-lrGTAaR-.js";import"./delivery-queue-CKbauSFq.js";import"./send-w-vabJ4U.js";import"./channel-activity-CBKv0fto.js";import"./tables-DwrGp-F-.js";import"./fetch-D4txy8qG.js";import"./skill-commands-BN3rmzgq.js";import"./workspace-dirs-BMGwwM6X.js";import"./pairing-token-BipkTRNW.js";import"./restart-Dal_HOce.js";import"./runtime-web-tools-BiMD0yHU.js";import"./command-secret-targets-CbrSGcvV.js";import"./session-cost-usage-BgqKixv0.js";import"./connection-auth-BCxq0f5b.js";import"./onboard-helpers-CKsetIvC.js";import"./prompt-style-DpAh867d.js";import"./pairing-labels-iZoSa-aT.js";import"./memory-cli-P0GDvKlz.js";import"./query-expansion-BNl6JMlz.js";import"./manager-DKyEk2dt.js";import{t as n}from"./links-jlebCPFf.js";import{n as r}from"./cli-utils-BY7dLMFy.js";import"./help-format-Cav62lfS.js";import"./progress-Cyn5U745.js";import"./exec-approvals-BpBNEy6i.js";import"./nodes-screen-B1Y6pbxs.js";import"./system-run-command-B212q8f9.js";import"./runtime-Dz2qgcJk.js";import"./stagger-DmFYysrJ.js";import"./channel-web-DCbW654e.js";import"./outbound-D02KD9fe.js";import"./session-SdGBXojs.js";import"./login-BdeCl-NI.js";import"./runtime-guard-D_eQ0X84.js";import"./skills-status-CId4JgRV.js";import"./provider-env-vars-D8p6Ohpj.js";import"./note-PBjA39mC.js";import"./clack-prompter-D1yxUXLU.js";import"./enable-DBKH-USU.js";import"./install-safe-path-CHTLw9k0.js";import"./npm-pack-install-BDxOuAxr.js";import"./skill-scanner-BKP1PUAv.js";import"./installs-C7lAxbH5.js";import"./plugin-install-plan-CZLEMxoh.js";import"./onboard-channels-BW1eMy7S.js";import"./auth-choice.apply-helpers-D6x5kVMH.js";import"./issue-format-BM2kAbbw.js";import"./daemon-install-plan.shared-ChzeMJMO.js";import"./gateway-install-token-CqMSnPKA.js";import"./systemd-Dp59-Na4.js";import"./service-BMP0stI7.js";import"./widearea-dns-C5PxXDi2.js";import"./bonjour-discovery-Daj4nvBj.js";import"./health-dTYbHKsD.js";import"./control-ui-assets-jM-MvEQE.js";import"./onboarding.secret-input-2vgEb3Ik.js";import"./skills-install-DJ3_xdRT.js";import"./openai-codex-model-default-mbcLbh3Q.js";import"./auth-token-C5WrmFns.js";import"./logging-Gwc2HmXy.js";import"./provider-auth-helpers-DKQwlJ25.js";import"./oauth-tls-preflight-OT_XKQho.js";import"./auth-choice-options-Dw14noox.js";import"./auth-choice-prompt-xYj13czb.js";import"./auth-choice-Baa2-mnd.js";import"./openai-model-default-BY4Fzk4Z.js";import"./model-picker-B814AwKo.js";import"./ollama-setup-CXHKnPqf.js";import"./systemd-linger-Bjq6egQK.js";import"./onboard-custom-CgBAP6vW.js";import"./ipv4-DWRIcCsB.js";import"./health-format-BYfab3lP.js";import"./onboard-remote-rOf0a5yL.js";import"./onboard-skills-DckVO0z5.js";import{configureCommandFromSectionsArg as i,t as a}from"./configure-B7A-Gjbn.js";function o(o){o.command(`configure`).description(`Interactive setup wizard for credentials, channels, gateway, and agent defaults`).addHelpText(`after`,()=>`\n${e.muted(`Docs:`)} ${n(`/cli/configure`,`docs.openclaw.ai/cli/configure`)}\n`).option(`--section <section>`,`Configuration sections (repeatable). Options: ${a.join(`, `)}`,(e,t)=>[...t,e],[]).action(async e=>{await r(t,async()=>{await i(e.section,t)})})}export{o as registerConfigureCommand};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{A as e,p as t}from"./subsystem-kTFXkQM5.js";import{g as n,i as r,m as i,o as a,u as o}from"./paths-BjD3T_xq.js";import"./boolean-D15s2V33.js";import{Ai as s,Fo as c,Ki as l,jo as u}from"./auth-profiles-e3SmOvON.js";import{t as d}from"./command-format-CLxIPuLR.js";import"./agent-scope-BKE4M04k.js";import{g as f}from"./utils-7Gdj77QB.js";import"./openclaw-root-CnsBf6ZU.js";import"./github-copilot-token-C79yeDKS.js";import"./env-overrides-R4odAlsj.js";import"./version-q3SkUw2K.js";import"./registry-Div2nEwi.js";import"./skills-Df0CxTMH.js";import"./frontmatter-C7mzDNxd.js";import"./plugins-CCU8jDti.js";import"./logger-C1GUBMt-.js";import"./exec-CiwCrGw3.js";import"./windows-spawn-Dw4dpTt2.js";import"./redact-bVcVj47r.js";import"./path-alias-guards-kY_ZbWs-.js";import"./errors-DNQO70y-.js";import"./send-Cfa08ZLE.js";import"./send-DmS34-Eb.js";import"./compact-DutiJiBy.js";import"./paths-BfjJY2VL.js";import"./chat-envelope-Bznn2SoS.js";import"./models-config-D5CbqIVA.js";import"./tokens-D8eWI71q.js";import"./with-timeout-c1CzdShT.js";import"./deliver-HZ99jQzl.js";import"./diagnostic-CvLTqJbq.js";import"./send-CW3hfjkM.js";import"./pi-model-discovery-cW9be_SG.js";import"./exec-approvals-allowlist-DlYH42As.js";import"./exec-safe-bin-runtime-policy-Bu9bb9U5.js";import"./model-catalog-CI2eEH9Y.js";import"./fetch-Dj-FEHSr.js";import"./audio-transcription-runner-BwviCgP5.js";import"./fetch-guard-guH8Tmju.js";import"./image-DQ_3LMNb.js";import"./tool-display-BTuQQN92.js";import"./api-key-rotation-BRm3CNd-.js";import"./proxy-fetch-ByazCl5E.js";import"./ir-CsTyrPwa.js";import"./render-DrrPmnMI.js";import"./target-errors-BRLBPboT.js";import"./commands-DOhEGWJ2.js";import"./commands-registry-CqsggloB.js";import"./session-cost-usage-CHtVgnE8.js";import"./session-utils-Bh1ozdi-.js";import"./sqlite-DgdOh9U-.js";import"./call-D5NJXFgu.js";import"./pi-tools.policy-CklWbQkk.js";import"./pairing-store-CmT1fSmE.js";import"./fetch-Dh-apy46.js";import"./skill-commands-qdKWuiOR.js";import"./workspace-dirs-na4G79jL.js";import"./pairing-token-YrKlxjGC.js";import"./channel-activity-CFgOyIkh.js";import"./tables-5gR6U_tC.js";import"./kill-tree-DihujQie.js";import"./runtime-web-tools-BjmhIJkd.js";import"./runtime-HwYsJOk2.js";import"./node-shell-BuPDYFhk.js";import"./stagger-DxzgG2jd.js";import"./channel-selection-C1kkZyEb.js";import"./plugin-auto-enable-CrVJR--r.js";import"./send-DQxQrVuw.js";import"./outbound-attachment-BKku_WUf.js";import"./delivery-queue-nkPJu0fY.js";import"./send-DVv1dCwu.js";import"./system-run-command-BT2tTJg2.js";import"./fetch-EBjfhrYU.js";import"./command-secret-targets-BtkZwOzh.js";import"./connection-auth-BIApbu6I.js";import{f as p,g as m,i as h,o as g}from"./onboard-helpers-CvWjz0op.js";import{n as _,r as v,t as y}from"./prompt-style-QJckocuy.js";import"./pairing-labels-B3wRXljf.js";import"./search-manager-Co5RwgQ4.js";import"./manager-p3CCKFcv.js";import"./memory-cli-CTXmLb0V.js";import{t as b}from"./links-pHmQCzdF.js";import{n as x}from"./cli-utils-BleB1eys.js";import"./help-format-BSNXPQuE.js";import"./progress-Cy6zNuIC.js";import"./exec-approvals-BXO9Cezj.js";import"./skills-status-Bzj-kJgo.js";import{t as S}from"./clipboard-CmJolXeG.js";import"./note-Dzei_8z5.js";import"./issue-format-DRHlQPnX.js";import"./channels-status-issues-RPxMYADM.js";import"./completion-cli-Btm1nzLM.js";import"./register.subclis-DHFqEK6G.js";import"./command-registry-kuOSuxH9.js";import"./program-context-CH9p6anW.js";import"./daemon-install-plan.shared-JQBIvXfN.js";import"./runtime-guard-BFK4A89C.js";import"./gateway-install-token-D5Aivh68.js";import"./systemd-2rjzkWWr.js";import{n as C}from"./service-CtJtO2Jl.js";import"./systemd-hints-Cuo_K2we.js";import"./diagnostics-DnbLdEsy.js";import"./health-vy-C49Dw.js";import"./control-ui-assets-bS1XYZpI.js";import"./channel-account-context-DuBGrKuL.js";import"./update-runner-DcWJQ3bh.js";import"./logging-Ai_SKvpp.js";import"./oauth-tls-preflight-CN5Fg7I1.js";import"./doctor-config-flow-DX6_ggPf.js";import{a as w,i as T,o as E,r as D,t as O}from"./cleanup-utils-BHnPMSkb.js";import"./systemd-linger-CFEQD-zV.js";import"./health-format-nLgxB9tv.js";import{n as k,t as A}from"./prompt-select-styled-BghrrnfB.js";import"./doctor-completion-Bp4r91Mj.js";import j from"node:path";import{cancel as M,confirm as N,isCancel as P,multiselect as F}from"@clack/prompts";async function I(e,t=process.env){let n=await s({config:e,env:t,value:e.gateway?.auth?.token,path:`gateway.auth.token`,readFallback:()=>l(t)});return{token:n.value,source:n.source===`config`?`config`:n.source===`secretRef`?`secretRef`:n.source===`fallback`?`env`:void 0,unresolvedRefReason:n.unresolvedRefReason,tokenSecretRefConfigured:n.secretRefConfigured}}async function L(e=t,n={}){let r=await c(),i=r.valid?r.config:{},a=o(i),s=i.gateway?.bind??`loopback`,l=i.gateway?.controlUi?.basePath,u=i.gateway?.customBindHost,d=await I(i,process.env),f=d.token??``,_=m({port:a,bind:s===`lan`?`loopback`:s,customBindHost:u,basePath:l}),v=f.length>0&&!d.tokenSecretRefConfigured,y=v?`${_.httpUrl}#token=${encodeURIComponent(f)}`:_.httpUrl;e.log(`Dashboard URL: ${y}`),d.tokenSecretRefConfigured&&f&&e.log(`Token auto-auth is disabled for SecretRef-managed gateway.auth.token; use your external token source if prompted.`),d.unresolvedRefReason&&(e.log(`Token auto-auth unavailable: ${d.unresolvedRefReason}`),e.log("Set OPENCLAW_GATEWAY_TOKEN in this shell or resolve your secret provider, then rerun `openclaw dashboard`."));let b=await S(y).catch(()=>!1);e.log(b?`Copied to clipboard.`:`Copy to clipboard unavailable.`);let x=!1,C;n.noOpen?C=`Browser launch disabled (--no-open). Use the URL above.`:((await h()).ok&&(x=await p(y)),x||(C=g({port:a,basePath:l,token:v&&f||void 0}))),x?e.log(`Opened in your browser. Keep that tab to control OpenClaw.`):C&&e.log(C)}function R(){let e=u(),t=n(),r=a(),o=i();return{cfg:e,stateDir:t,configPath:r,oauthDir:o,...O({cfg:e,stateDir:t,configPath:r,oauthDir:o})}}async function z(e){if(r)return;let t=C(),n=!1;try{n=await t.isLoaded({env:process.env})}catch(t){e.error(`Gateway service check failed: ${String(t)}`);return}if(n)try{await t.stop({env:process.env,stdout:process.stdout})}catch(t){e.error(`Gateway stop failed: ${String(t)}`)}}function B(e){e.log(`Recommended first: ${d(`openclaw backup create`)}`)}async function V(e,t){let n=!t.nonInteractive;if(!n&&!t.yes){e.error(`Non-interactive mode requires --yes.`),e.exit(1);return}let r=t.scope;if(!r){if(!n){e.error(`Non-interactive mode requires --scope.`),e.exit(1);return}let t=await A({message:`Reset scope`,options:[{value:`config`,label:`Config only`,hint:`openclaw.json`},{value:`config+creds+sessions`,label:`Config + credentials + sessions`,hint:`keeps workspace + auth profiles`},{value:`full`,label:`Full reset`,hint:`state dir + workspace`}],initialValue:`config+creds+sessions`});if(P(t)){M(v(`Reset cancelled.`)??`Reset cancelled.`),e.exit(0);return}r=t}if(![`config`,`config+creds+sessions`,`full`].includes(r)){e.error(`Invalid --scope. Expected "config", "config+creds+sessions", or "full".`),e.exit(1);return}if(n&&!t.yes){let t=await N({message:_(`Proceed with ${r} reset?`)});if(P(t)||!t){M(v(`Reset cancelled.`)??`Reset cancelled.`),e.exit(0);return}}let i=!!t.dryRun,{stateDir:a,configPath:o,oauthDir:s,configInsideState:c,oauthInsideState:l,workspaceDirs:u}=R();if(r!==`config`&&(B(e),i?e.log(`[dry-run] stop gateway service`):await z(e)),r===`config`){await T(o,e,{dryRun:i,label:o});return}if(r===`config+creds+sessions`){await T(o,e,{dryRun:i,label:o}),await T(s,e,{dryRun:i,label:s});let t=await D(a);for(let n of t)await T(n,e,{dryRun:i,label:n});e.log(`Next: ${d(`openclaw onboard --install-daemon`)}`);return}if(r===`full`){await w({stateDir:a,configPath:o,oauthDir:s,configInsideState:c,oauthInsideState:l},e,{dryRun:i}),await E(u,e,{dryRun:i}),e.log(`Next: ${d(`openclaw onboard --install-daemon`)}`);return}}const H=e=>F({...e,message:_(e.message),options:e.options.map(e=>e.hint===void 0?e:{...e,hint:y(e.hint)})});function U(e){let t=!!(e.all||e.service||e.state||e.workspace||e.app),n=new Set;return(e.all||e.service)&&n.add(`service`),(e.all||e.state)&&n.add(`state`),(e.all||e.workspace)&&n.add(`workspace`),(e.all||e.app)&&n.add(`app`),{scopes:n,hadExplicit:t}}async function W(e){if(r)return e.error(`Nix mode detected; service uninstall is disabled.`),!1;let t=C(),n=!1;try{n=await t.isLoaded({env:process.env})}catch(t){return e.error(`Gateway service check failed: ${String(t)}`),!1}if(!n)return e.log(`Gateway service ${t.notLoadedText}.`),!0;try{await t.stop({env:process.env,stdout:process.stdout})}catch(t){e.error(`Gateway stop failed: ${String(t)}`)}try{return await t.uninstall({env:process.env,stdout:process.stdout}),!0}catch(t){return e.error(`Gateway uninstall failed: ${String(t)}`),!1}}async function G(e,t){process.platform===`darwin`&&await T(`/Applications/OpenClaw.app`,e,{dryRun:t,label:`/Applications/OpenClaw.app`})}function K(e){e.log(`Recommended first: ${d(`openclaw backup create`)}`)}async function q(e,t){let{scopes:n,hadExplicit:r}=U(t),i=!t.nonInteractive;if(!i&&!t.yes){e.error(`Non-interactive mode requires --yes.`),e.exit(1);return}if(!r){if(!i){e.error(`Non-interactive mode requires explicit scopes (use --all).`),e.exit(1);return}let t=await H({message:`Uninstall which components?`,options:[{value:`service`,label:`Gateway service`,hint:`launchd / systemd / schtasks`},{value:`state`,label:`State + config`,hint:`~/.qbotclaw`},{value:`workspace`,label:`Workspace`,hint:`agent files`},{value:`app`,label:`macOS app`,hint:`/Applications/OpenClaw.app`}],initialValues:[`service`,`state`,`workspace`]});if(P(t)){M(v(`Uninstall cancelled.`)??`Uninstall cancelled.`),e.exit(0);return}for(let e of t)n.add(e)}if(n.size===0){e.log(`Nothing selected.`);return}if(i&&!t.yes){let t=await N({message:_(`Proceed with uninstall?`)});if(P(t)||!t){M(v(`Uninstall cancelled.`)??`Uninstall cancelled.`),e.exit(0);return}}let a=!!t.dryRun,{stateDir:o,configPath:s,oauthDir:c,configInsideState:l,oauthInsideState:u,workspaceDirs:d}=R();if((n.has(`state`)||n.has(`workspace`))&&K(e),n.has(`service`)&&(a?e.log(`[dry-run] remove gateway service`):await W(e)),n.has(`state`)&&await w({stateDir:o,configPath:s,oauthDir:c,configInsideState:l,oauthInsideState:u},e,{dryRun:a}),n.has(`workspace`)&&await E(d,e,{dryRun:a}),n.has(`app`)&&await G(e,a),e.log(`CLI still installed. Remove via npm/pnpm if desired.`),n.has(`state`)&&!n.has(`workspace`)){let t=f();t&&d.some(e=>e.startsWith(j.resolve(t)))&&e.log(`Tip: workspaces were preserved. Re-run with --workspace to remove them.`)}}function J(n){n.command(`doctor`).description(`Health checks + quick fixes for the gateway and channels`).addHelpText(`after`,()=>`\n${e.muted(`Docs:`)} ${b(`/cli/doctor`,`docs.openclaw.ai/cli/doctor`)}\n`).option(`--no-workspace-suggestions`,`Disable workspace memory system suggestions`,!1).option(`--yes`,`Accept defaults without prompting`,!1).option(`--repair`,`Apply recommended repairs without prompting`,!1).option(`--fix`,`Apply recommended repairs (alias for --repair)`,!1).option(`--force`,`Apply aggressive repairs (overwrites custom service config)`,!1).option(`--non-interactive`,`Run without prompts (safe migrations only)`,!1).option(`--generate-gateway-token`,`Generate and configure a gateway token`,!1).option(`--deep`,`Scan system services for extra gateway installs`,!1).action(async e=>{await x(t,async()=>{await k(t,{workspaceSuggestions:e.workspaceSuggestions,yes:!!e.yes,repair:!!e.repair||!!e.fix,force:!!e.force,nonInteractive:!!e.nonInteractive,generateGatewayToken:!!e.generateGatewayToken,deep:!!e.deep}),t.exit(0)})}),n.command(`dashboard`).description(`Open the Control UI with your current token`).addHelpText(`after`,()=>`\n${e.muted(`Docs:`)} ${b(`/cli/dashboard`,`docs.openclaw.ai/cli/dashboard`)}\n`).option(`--no-open`,`Print URL but do not launch a browser`).action(async e=>{await x(t,async()=>{await L(t,{noOpen:e.open===!1})})}),n.command(`reset`).description(`Reset local config/state (keeps the CLI installed)`).addHelpText(`after`,()=>`\n${e.muted(`Docs:`)} ${b(`/cli/reset`,`docs.openclaw.ai/cli/reset`)}\n`).option(`--scope <scope>`,`config|config+creds+sessions|full (default: interactive prompt)`).option(`--yes`,`Skip confirmation prompts`,!1).option(`--non-interactive`,`Disable prompts (requires --scope + --yes)`,!1).option(`--dry-run`,`Print actions without removing files`,!1).action(async e=>{await x(t,async()=>{await V(t,{scope:e.scope,yes:!!e.yes,nonInteractive:!!e.nonInteractive,dryRun:!!e.dryRun})})}),n.command(`uninstall`).description(`Uninstall the gateway service + local data (CLI remains)`).addHelpText(`after`,()=>`\n${e.muted(`Docs:`)} ${b(`/cli/uninstall`,`docs.openclaw.ai/cli/uninstall`)}\n`).option(`--service`,`Remove the gateway service`,!1).option(`--state`,`Remove state + config`,!1).option(`--workspace`,`Remove workspace dirs`,!1).option(`--app`,`Remove the macOS app`,!1).option(`--all`,`Remove service + state + workspace + app`,!1).option(`--yes`,`Skip confirmation prompts`,!1).option(`--non-interactive`,`Disable prompts (requires --yes)`,!1).option(`--dry-run`,`Print actions without removing files`,!1).action(async e=>{await x(t,async()=>{await q(t,{service:!!e.service,state:!!e.state,workspace:!!e.workspace,app:!!e.app,all:!!e.all,yes:!!e.yes,nonInteractive:!!e.nonInteractive,dryRun:!!e.dryRun})})})}export{J as registerMaintenanceCommands};
|
|
1
|
+
import{A as e,p as t}from"./subsystem-kTFXkQM5.js";import{g as n,i as r,m as i,o as a,u as o}from"./paths-BjD3T_xq.js";import"./boolean-D15s2V33.js";import{Ai as s,Fo as c,Ki as l,jo as u}from"./auth-profiles-e3SmOvON.js";import{t as d}from"./command-format-CLxIPuLR.js";import"./agent-scope-BKE4M04k.js";import{g as f}from"./utils-7Gdj77QB.js";import"./openclaw-root-CnsBf6ZU.js";import"./github-copilot-token-C79yeDKS.js";import"./env-overrides-R4odAlsj.js";import"./version-q3SkUw2K.js";import"./registry-Div2nEwi.js";import"./skills-Df0CxTMH.js";import"./frontmatter-C7mzDNxd.js";import"./plugins-CCU8jDti.js";import"./logger-C1GUBMt-.js";import"./exec-CiwCrGw3.js";import"./windows-spawn-Dw4dpTt2.js";import"./redact-bVcVj47r.js";import"./path-alias-guards-kY_ZbWs-.js";import"./errors-DNQO70y-.js";import"./send-Cfa08ZLE.js";import"./send-DmS34-Eb.js";import"./compact-B5m4267P.js";import"./paths-BfjJY2VL.js";import"./chat-envelope-Bznn2SoS.js";import"./models-config-D5CbqIVA.js";import"./tokens-D8eWI71q.js";import"./with-timeout-c1CzdShT.js";import"./deliver-HZ99jQzl.js";import"./diagnostic-CvLTqJbq.js";import"./send-CW3hfjkM.js";import"./pi-model-discovery-cW9be_SG.js";import"./exec-approvals-allowlist-DlYH42As.js";import"./exec-safe-bin-runtime-policy-Bu9bb9U5.js";import"./model-catalog-CI2eEH9Y.js";import"./fetch-Dj-FEHSr.js";import"./audio-transcription-runner-BwviCgP5.js";import"./fetch-guard-guH8Tmju.js";import"./image-DQ_3LMNb.js";import"./tool-display-BTuQQN92.js";import"./api-key-rotation-BRm3CNd-.js";import"./proxy-fetch-ByazCl5E.js";import"./ir-CsTyrPwa.js";import"./render-DrrPmnMI.js";import"./target-errors-BRLBPboT.js";import"./commands-DOhEGWJ2.js";import"./commands-registry-CqsggloB.js";import"./session-cost-usage-CHtVgnE8.js";import"./session-utils-Bh1ozdi-.js";import"./sqlite-DgdOh9U-.js";import"./call-D5NJXFgu.js";import"./pi-tools.policy-CklWbQkk.js";import"./pairing-store-CmT1fSmE.js";import"./fetch-Dh-apy46.js";import"./skill-commands-qdKWuiOR.js";import"./workspace-dirs-na4G79jL.js";import"./pairing-token-YrKlxjGC.js";import"./channel-activity-CFgOyIkh.js";import"./tables-5gR6U_tC.js";import"./kill-tree-DihujQie.js";import"./runtime-web-tools-BjmhIJkd.js";import"./runtime-HwYsJOk2.js";import"./node-shell-BuPDYFhk.js";import"./stagger-DxzgG2jd.js";import"./channel-selection-C1kkZyEb.js";import"./plugin-auto-enable-CrVJR--r.js";import"./send-DQxQrVuw.js";import"./outbound-attachment-BKku_WUf.js";import"./delivery-queue-nkPJu0fY.js";import"./send-DVv1dCwu.js";import"./system-run-command-BT2tTJg2.js";import"./fetch-EBjfhrYU.js";import"./command-secret-targets-BtkZwOzh.js";import"./connection-auth-BIApbu6I.js";import{f as p,g as m,i as h,o as g}from"./onboard-helpers-CvWjz0op.js";import{n as _,r as v,t as y}from"./prompt-style-QJckocuy.js";import"./pairing-labels-B3wRXljf.js";import"./search-manager-Co5RwgQ4.js";import"./manager-p3CCKFcv.js";import"./memory-cli-CTXmLb0V.js";import{t as b}from"./links-pHmQCzdF.js";import{n as x}from"./cli-utils-BleB1eys.js";import"./help-format-BSNXPQuE.js";import"./progress-Cy6zNuIC.js";import"./exec-approvals-BXO9Cezj.js";import"./skills-status-Bzj-kJgo.js";import{t as S}from"./clipboard-CmJolXeG.js";import"./note-Dzei_8z5.js";import"./issue-format-DRHlQPnX.js";import"./channels-status-issues-RPxMYADM.js";import"./completion-cli-CXSmC7Nh.js";import"./register.subclis-BmtNNMP2.js";import"./command-registry-B-1wiWIV.js";import"./program-context-CH9p6anW.js";import"./daemon-install-plan.shared-JQBIvXfN.js";import"./runtime-guard-BFK4A89C.js";import"./gateway-install-token-D5Aivh68.js";import"./systemd-2rjzkWWr.js";import{n as C}from"./service-CtJtO2Jl.js";import"./systemd-hints-Cuo_K2we.js";import"./diagnostics-DnbLdEsy.js";import"./health-CIBrUBhW.js";import"./control-ui-assets-bS1XYZpI.js";import"./channel-account-context-DuBGrKuL.js";import"./update-runner-1UCWso86.js";import"./logging-Ai_SKvpp.js";import"./oauth-tls-preflight-CN5Fg7I1.js";import"./doctor-config-flow-DX6_ggPf.js";import{a as w,i as T,o as E,r as D,t as O}from"./cleanup-utils-BHnPMSkb.js";import"./systemd-linger-CFEQD-zV.js";import"./health-format-nLgxB9tv.js";import{n as k,t as A}from"./prompt-select-styled-U5YlFMbC.js";import"./doctor-completion-C5fxcbh9.js";import j from"node:path";import{cancel as M,confirm as N,isCancel as P,multiselect as F}from"@clack/prompts";async function I(e,t=process.env){let n=await s({config:e,env:t,value:e.gateway?.auth?.token,path:`gateway.auth.token`,readFallback:()=>l(t)});return{token:n.value,source:n.source===`config`?`config`:n.source===`secretRef`?`secretRef`:n.source===`fallback`?`env`:void 0,unresolvedRefReason:n.unresolvedRefReason,tokenSecretRefConfigured:n.secretRefConfigured}}async function L(e=t,n={}){let r=await c(),i=r.valid?r.config:{},a=o(i),s=i.gateway?.bind??`loopback`,l=i.gateway?.controlUi?.basePath,u=i.gateway?.customBindHost,d=await I(i,process.env),f=d.token??``,_=m({port:a,bind:s===`lan`?`loopback`:s,customBindHost:u,basePath:l}),v=f.length>0&&!d.tokenSecretRefConfigured,y=v?`${_.httpUrl}#token=${encodeURIComponent(f)}`:_.httpUrl;e.log(`Dashboard URL: ${y}`),d.tokenSecretRefConfigured&&f&&e.log(`Token auto-auth is disabled for SecretRef-managed gateway.auth.token; use your external token source if prompted.`),d.unresolvedRefReason&&(e.log(`Token auto-auth unavailable: ${d.unresolvedRefReason}`),e.log("Set OPENCLAW_GATEWAY_TOKEN in this shell or resolve your secret provider, then rerun `openclaw dashboard`."));let b=await S(y).catch(()=>!1);e.log(b?`Copied to clipboard.`:`Copy to clipboard unavailable.`);let x=!1,C;n.noOpen?C=`Browser launch disabled (--no-open). Use the URL above.`:((await h()).ok&&(x=await p(y)),x||(C=g({port:a,basePath:l,token:v&&f||void 0}))),x?e.log(`Opened in your browser. Keep that tab to control OpenClaw.`):C&&e.log(C)}function R(){let e=u(),t=n(),r=a(),o=i();return{cfg:e,stateDir:t,configPath:r,oauthDir:o,...O({cfg:e,stateDir:t,configPath:r,oauthDir:o})}}async function z(e){if(r)return;let t=C(),n=!1;try{n=await t.isLoaded({env:process.env})}catch(t){e.error(`Gateway service check failed: ${String(t)}`);return}if(n)try{await t.stop({env:process.env,stdout:process.stdout})}catch(t){e.error(`Gateway stop failed: ${String(t)}`)}}function B(e){e.log(`Recommended first: ${d(`openclaw backup create`)}`)}async function V(e,t){let n=!t.nonInteractive;if(!n&&!t.yes){e.error(`Non-interactive mode requires --yes.`),e.exit(1);return}let r=t.scope;if(!r){if(!n){e.error(`Non-interactive mode requires --scope.`),e.exit(1);return}let t=await A({message:`Reset scope`,options:[{value:`config`,label:`Config only`,hint:`openclaw.json`},{value:`config+creds+sessions`,label:`Config + credentials + sessions`,hint:`keeps workspace + auth profiles`},{value:`full`,label:`Full reset`,hint:`state dir + workspace`}],initialValue:`config+creds+sessions`});if(P(t)){M(v(`Reset cancelled.`)??`Reset cancelled.`),e.exit(0);return}r=t}if(![`config`,`config+creds+sessions`,`full`].includes(r)){e.error(`Invalid --scope. Expected "config", "config+creds+sessions", or "full".`),e.exit(1);return}if(n&&!t.yes){let t=await N({message:_(`Proceed with ${r} reset?`)});if(P(t)||!t){M(v(`Reset cancelled.`)??`Reset cancelled.`),e.exit(0);return}}let i=!!t.dryRun,{stateDir:a,configPath:o,oauthDir:s,configInsideState:c,oauthInsideState:l,workspaceDirs:u}=R();if(r!==`config`&&(B(e),i?e.log(`[dry-run] stop gateway service`):await z(e)),r===`config`){await T(o,e,{dryRun:i,label:o});return}if(r===`config+creds+sessions`){await T(o,e,{dryRun:i,label:o}),await T(s,e,{dryRun:i,label:s});let t=await D(a);for(let n of t)await T(n,e,{dryRun:i,label:n});e.log(`Next: ${d(`openclaw onboard --install-daemon`)}`);return}if(r===`full`){await w({stateDir:a,configPath:o,oauthDir:s,configInsideState:c,oauthInsideState:l},e,{dryRun:i}),await E(u,e,{dryRun:i}),e.log(`Next: ${d(`openclaw onboard --install-daemon`)}`);return}}const H=e=>F({...e,message:_(e.message),options:e.options.map(e=>e.hint===void 0?e:{...e,hint:y(e.hint)})});function U(e){let t=!!(e.all||e.service||e.state||e.workspace||e.app),n=new Set;return(e.all||e.service)&&n.add(`service`),(e.all||e.state)&&n.add(`state`),(e.all||e.workspace)&&n.add(`workspace`),(e.all||e.app)&&n.add(`app`),{scopes:n,hadExplicit:t}}async function W(e){if(r)return e.error(`Nix mode detected; service uninstall is disabled.`),!1;let t=C(),n=!1;try{n=await t.isLoaded({env:process.env})}catch(t){return e.error(`Gateway service check failed: ${String(t)}`),!1}if(!n)return e.log(`Gateway service ${t.notLoadedText}.`),!0;try{await t.stop({env:process.env,stdout:process.stdout})}catch(t){e.error(`Gateway stop failed: ${String(t)}`)}try{return await t.uninstall({env:process.env,stdout:process.stdout}),!0}catch(t){return e.error(`Gateway uninstall failed: ${String(t)}`),!1}}async function G(e,t){process.platform===`darwin`&&await T(`/Applications/OpenClaw.app`,e,{dryRun:t,label:`/Applications/OpenClaw.app`})}function K(e){e.log(`Recommended first: ${d(`openclaw backup create`)}`)}async function q(e,t){let{scopes:n,hadExplicit:r}=U(t),i=!t.nonInteractive;if(!i&&!t.yes){e.error(`Non-interactive mode requires --yes.`),e.exit(1);return}if(!r){if(!i){e.error(`Non-interactive mode requires explicit scopes (use --all).`),e.exit(1);return}let t=await H({message:`Uninstall which components?`,options:[{value:`service`,label:`Gateway service`,hint:`launchd / systemd / schtasks`},{value:`state`,label:`State + config`,hint:`~/.qbotclaw`},{value:`workspace`,label:`Workspace`,hint:`agent files`},{value:`app`,label:`macOS app`,hint:`/Applications/OpenClaw.app`}],initialValues:[`service`,`state`,`workspace`]});if(P(t)){M(v(`Uninstall cancelled.`)??`Uninstall cancelled.`),e.exit(0);return}for(let e of t)n.add(e)}if(n.size===0){e.log(`Nothing selected.`);return}if(i&&!t.yes){let t=await N({message:_(`Proceed with uninstall?`)});if(P(t)||!t){M(v(`Uninstall cancelled.`)??`Uninstall cancelled.`),e.exit(0);return}}let a=!!t.dryRun,{stateDir:o,configPath:s,oauthDir:c,configInsideState:l,oauthInsideState:u,workspaceDirs:d}=R();if((n.has(`state`)||n.has(`workspace`))&&K(e),n.has(`service`)&&(a?e.log(`[dry-run] remove gateway service`):await W(e)),n.has(`state`)&&await w({stateDir:o,configPath:s,oauthDir:c,configInsideState:l,oauthInsideState:u},e,{dryRun:a}),n.has(`workspace`)&&await E(d,e,{dryRun:a}),n.has(`app`)&&await G(e,a),e.log(`CLI still installed. Remove via npm/pnpm if desired.`),n.has(`state`)&&!n.has(`workspace`)){let t=f();t&&d.some(e=>e.startsWith(j.resolve(t)))&&e.log(`Tip: workspaces were preserved. Re-run with --workspace to remove them.`)}}function J(n){n.command(`doctor`).description(`Health checks + quick fixes for the gateway and channels`).addHelpText(`after`,()=>`\n${e.muted(`Docs:`)} ${b(`/cli/doctor`,`docs.openclaw.ai/cli/doctor`)}\n`).option(`--no-workspace-suggestions`,`Disable workspace memory system suggestions`,!1).option(`--yes`,`Accept defaults without prompting`,!1).option(`--repair`,`Apply recommended repairs without prompting`,!1).option(`--fix`,`Apply recommended repairs (alias for --repair)`,!1).option(`--force`,`Apply aggressive repairs (overwrites custom service config)`,!1).option(`--non-interactive`,`Run without prompts (safe migrations only)`,!1).option(`--generate-gateway-token`,`Generate and configure a gateway token`,!1).option(`--deep`,`Scan system services for extra gateway installs`,!1).action(async e=>{await x(t,async()=>{await k(t,{workspaceSuggestions:e.workspaceSuggestions,yes:!!e.yes,repair:!!e.repair||!!e.fix,force:!!e.force,nonInteractive:!!e.nonInteractive,generateGatewayToken:!!e.generateGatewayToken,deep:!!e.deep}),t.exit(0)})}),n.command(`dashboard`).description(`Open the Control UI with your current token`).addHelpText(`after`,()=>`\n${e.muted(`Docs:`)} ${b(`/cli/dashboard`,`docs.openclaw.ai/cli/dashboard`)}\n`).option(`--no-open`,`Print URL but do not launch a browser`).action(async e=>{await x(t,async()=>{await L(t,{noOpen:e.open===!1})})}),n.command(`reset`).description(`Reset local config/state (keeps the CLI installed)`).addHelpText(`after`,()=>`\n${e.muted(`Docs:`)} ${b(`/cli/reset`,`docs.openclaw.ai/cli/reset`)}\n`).option(`--scope <scope>`,`config|config+creds+sessions|full (default: interactive prompt)`).option(`--yes`,`Skip confirmation prompts`,!1).option(`--non-interactive`,`Disable prompts (requires --scope + --yes)`,!1).option(`--dry-run`,`Print actions without removing files`,!1).action(async e=>{await x(t,async()=>{await V(t,{scope:e.scope,yes:!!e.yes,nonInteractive:!!e.nonInteractive,dryRun:!!e.dryRun})})}),n.command(`uninstall`).description(`Uninstall the gateway service + local data (CLI remains)`).addHelpText(`after`,()=>`\n${e.muted(`Docs:`)} ${b(`/cli/uninstall`,`docs.openclaw.ai/cli/uninstall`)}\n`).option(`--service`,`Remove the gateway service`,!1).option(`--state`,`Remove state + config`,!1).option(`--workspace`,`Remove workspace dirs`,!1).option(`--app`,`Remove the macOS app`,!1).option(`--all`,`Remove service + state + workspace + app`,!1).option(`--yes`,`Skip confirmation prompts`,!1).option(`--non-interactive`,`Disable prompts (requires --yes)`,!1).option(`--dry-run`,`Print actions without removing files`,!1).action(async e=>{await x(t,async()=>{await q(t,{service:!!e.service,state:!!e.state,workspace:!!e.workspace,app:!!e.app,all:!!e.all,yes:!!e.yes,nonInteractive:!!e.nonInteractive,dryRun:!!e.dryRun})})})}export{J as registerMaintenanceCommands};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{g as e,i as t,m as n,o as r,u as i}from"./paths-B4IRk3wi.js";import{A as a,p as o}from"./subsystem-BQ1073Mu.js";import{_ as s}from"./utils-D1PlBTFH.js";import{Ga as c,Zs as l,qs as u,so as d}from"./model-selection-B2r_LMFb.js";import"./reply-DHtpIWpD.js";import"./agent-scope-DW6ZDCxj.js";import"./openclaw-root-D_0Q6--h.js";import"./github-copilot-token-DGYAlOmV.js";import{t as f}from"./command-format-BbDT1tlm.js";import"./boolean-Ch3DfXPy.js";import"./env-BI_g1HfG.js";import"./env-overrides-C0vMeCeX.js";import"./registry-BwcVQtsI.js";import"./skills-CZ7zEDmo.js";import"./frontmatter-BkZkwkVO.js";import"./plugins-1aNlpDX7.js";import"./logger-Bgqzq_Zu.js";import"./exec-BdtFni8N.js";import"./windows-spawn-B36IG4s2.js";import"./redact-DsC5EnL7.js";import"./path-alias-guards-mvyLCPlN.js";import"./errors-y2V0aFIS.js";import"./send-DyCUb7oW.js";import"./send-C6J_nLb9.js";import"./paths-yLEk_25I.js";import"./chat-envelope-HVpKusFc.js";import"./audio-transcription-runner-DsYKaMCI.js";import"./image-6t162ig6.js";import"./models-config-PU32mWpc.js";import"./tool-display-DBTvIf_I.js";import"./fetch-guard-11xgsj9-.js";import"./api-key-rotation-CayDxQxo.js";import"./local-roots-ClGHF49W.js";import"./model-catalog-CXx8LKWX.js";import"./proxy-fetch-Ci8QXzzm.js";import"./tokens-xmkeRJqo.js";import"./deliver-Dg2TVF1M.js";import"./commands-FDnZnqN5.js";import"./commands-registry-BEMFeaZR.js";import"./pairing-store-mQs2yMkt.js";import"./fetch-Dikjvc5M.js";import"./call-BQAAYLj3.js";import"./with-timeout-WveKxvFV.js";import"./diagnostic-kojLym9G.js";import"./send-aEwJo2mZ2.js";import"./pi-model-discovery-DMZplc-U.js";import"./exec-approvals-allowlist-Bh3Rw-aC.js";import"./exec-safe-bin-runtime-policy-BxN1_8e_.js";import"./ir-DcrzIcfF.js";import"./render-D8OWO2hT.js";import"./target-errors-B1wrjiTA.js";import"./read-only-account-inspect-DLD1Pk6l.js";import"./channel-selection-BuH6syM3.js";import"./plugin-auto-enable-DzUZAwai.js";import"./send-HOAYSr2i.js";import"./outbound-attachment-lrGTAaR-.js";import"./delivery-queue-CKbauSFq.js";import"./send-w-vabJ4U.js";import"./channel-activity-CBKv0fto.js";import"./tables-DwrGp-F-.js";import"./fetch-D4txy8qG.js";import"./skill-commands-BN3rmzgq.js";import"./workspace-dirs-BMGwwM6X.js";import"./pairing-token-BipkTRNW.js";import"./restart-Dal_HOce.js";import"./runtime-web-tools-BiMD0yHU.js";import"./command-secret-targets-CbrSGcvV.js";import"./session-cost-usage-BgqKixv0.js";import"./connection-auth-BCxq0f5b.js";import{f as p,g as m,i as h,o as g}from"./onboard-helpers-CKsetIvC.js";import{n as _,r as v,t as y}from"./prompt-style-DpAh867d.js";import"./pairing-labels-iZoSa-aT.js";import"./memory-cli-P0GDvKlz.js";import"./query-expansion-BNl6JMlz.js";import"./manager-DKyEk2dt.js";import{t as b}from"./links-jlebCPFf.js";import{n as x}from"./cli-utils-BY7dLMFy.js";import"./help-format-Cav62lfS.js";import"./progress-Cyn5U745.js";import"./exec-approvals-BpBNEy6i.js";import"./nodes-screen-B1Y6pbxs.js";import"./system-run-command-B212q8f9.js";import"./runtime-Dz2qgcJk.js";import"./stagger-DmFYysrJ.js";import"./runtime-guard-D_eQ0X84.js";import"./program-context-DMLIbH2F.js";import"./skills-status-CId4JgRV.js";import{t as S}from"./clipboard-DaFJXNg3.js";import"./note-PBjA39mC.js";import"./issue-format-BM2kAbbw.js";import"./channels-status-issues-hU0uOU87.js";import"./completion-cli-Dk4i8AEs.js";import"./daemon-install-plan.shared-ChzeMJMO.js";import"./gateway-install-token-CqMSnPKA.js";import"./systemd-Dp59-Na4.js";import{n as C}from"./service-BMP0stI7.js";import"./systemd-hints-CvFRwRSs.js";import"./diagnostics-DxEtFsuc.js";import"./health-DWAEDZ8p.js";import"./control-ui-assets-jM-MvEQE.js";import"./channel-account-context-kX_5d8CX.js";import"./update-runner-DWHUl78B.js";import"./logging-Gwc2HmXy.js";import"./oauth-tls-preflight-OT_XKQho.js";import"./doctor-config-flow-ByHDSti4.js";import{a as w,i as T,o as E,r as D,t as O}from"./cleanup-utils-DAXZPL4d.js";import"./systemd-linger-Bjq6egQK.js";import"./health-format-BYfab3lP.js";import{n as k,t as A}from"./prompt-select-styled-MKdHaN69.js";import"./doctor-completion-DSlo6bQA.js";import j from"node:path";import{cancel as M,confirm as N,isCancel as P,multiselect as F}from"@clack/prompts";async function I(e,t=process.env){let n=await c({config:e,env:t,value:e.gateway?.auth?.token,path:`gateway.auth.token`,readFallback:()=>d(t)});return{token:n.value,source:n.source===`config`?`config`:n.source===`secretRef`?`secretRef`:n.source===`fallback`?`env`:void 0,unresolvedRefReason:n.unresolvedRefReason,tokenSecretRefConfigured:n.secretRefConfigured}}async function L(e=o,t={}){let n=await l(),r=n.valid?n.config:{},a=i(r),s=r.gateway?.bind??`loopback`,c=r.gateway?.controlUi?.basePath,u=r.gateway?.customBindHost,d=await I(r,process.env),f=d.token??``,_=m({port:a,bind:s===`lan`?`loopback`:s,customBindHost:u,basePath:c}),v=f.length>0&&!d.tokenSecretRefConfigured,y=v?`${_.httpUrl}#token=${encodeURIComponent(f)}`:_.httpUrl;e.log(`Dashboard URL: ${y}`),d.tokenSecretRefConfigured&&f&&e.log(`Token auto-auth is disabled for SecretRef-managed gateway.auth.token; use your external token source if prompted.`),d.unresolvedRefReason&&(e.log(`Token auto-auth unavailable: ${d.unresolvedRefReason}`),e.log("Set OPENCLAW_GATEWAY_TOKEN in this shell or resolve your secret provider, then rerun `openclaw dashboard`."));let b=await S(y).catch(()=>!1);e.log(b?`Copied to clipboard.`:`Copy to clipboard unavailable.`);let x=!1,C;t.noOpen?C=`Browser launch disabled (--no-open). Use the URL above.`:((await h()).ok&&(x=await p(y)),x||(C=g({port:a,basePath:c,token:v&&f||void 0}))),x?e.log(`Opened in your browser. Keep that tab to control OpenClaw.`):C&&e.log(C)}function R(){let t=u(),i=e(),a=r(),o=n();return{cfg:t,stateDir:i,configPath:a,oauthDir:o,...O({cfg:t,stateDir:i,configPath:a,oauthDir:o})}}async function z(e){if(t)return;let n=C(),r=!1;try{r=await n.isLoaded({env:process.env})}catch(t){e.error(`Gateway service check failed: ${String(t)}`);return}if(r)try{await n.stop({env:process.env,stdout:process.stdout})}catch(t){e.error(`Gateway stop failed: ${String(t)}`)}}function B(e){e.log(`Recommended first: ${f(`openclaw backup create`)}`)}async function V(e,t){let n=!t.nonInteractive;if(!n&&!t.yes){e.error(`Non-interactive mode requires --yes.`),e.exit(1);return}let r=t.scope;if(!r){if(!n){e.error(`Non-interactive mode requires --scope.`),e.exit(1);return}let t=await A({message:`Reset scope`,options:[{value:`config`,label:`Config only`,hint:`openclaw.json`},{value:`config+creds+sessions`,label:`Config + credentials + sessions`,hint:`keeps workspace + auth profiles`},{value:`full`,label:`Full reset`,hint:`state dir + workspace`}],initialValue:`config+creds+sessions`});if(P(t)){M(v(`Reset cancelled.`)??`Reset cancelled.`),e.exit(0);return}r=t}if(![`config`,`config+creds+sessions`,`full`].includes(r)){e.error(`Invalid --scope. Expected "config", "config+creds+sessions", or "full".`),e.exit(1);return}if(n&&!t.yes){let t=await N({message:_(`Proceed with ${r} reset?`)});if(P(t)||!t){M(v(`Reset cancelled.`)??`Reset cancelled.`),e.exit(0);return}}let i=!!t.dryRun,{stateDir:a,configPath:o,oauthDir:s,configInsideState:c,oauthInsideState:l,workspaceDirs:u}=R();if(r!==`config`&&(B(e),i?e.log(`[dry-run] stop gateway service`):await z(e)),r===`config`){await T(o,e,{dryRun:i,label:o});return}if(r===`config+creds+sessions`){await T(o,e,{dryRun:i,label:o}),await T(s,e,{dryRun:i,label:s});let t=await D(a);for(let n of t)await T(n,e,{dryRun:i,label:n});e.log(`Next: ${f(`openclaw onboard --install-daemon`)}`);return}if(r===`full`){await w({stateDir:a,configPath:o,oauthDir:s,configInsideState:c,oauthInsideState:l},e,{dryRun:i}),await E(u,e,{dryRun:i}),e.log(`Next: ${f(`openclaw onboard --install-daemon`)}`);return}}const H=e=>F({...e,message:_(e.message),options:e.options.map(e=>e.hint===void 0?e:{...e,hint:y(e.hint)})});function U(e){let t=!!(e.all||e.service||e.state||e.workspace||e.app),n=new Set;return(e.all||e.service)&&n.add(`service`),(e.all||e.state)&&n.add(`state`),(e.all||e.workspace)&&n.add(`workspace`),(e.all||e.app)&&n.add(`app`),{scopes:n,hadExplicit:t}}async function W(e){if(t)return e.error(`Nix mode detected; service uninstall is disabled.`),!1;let n=C(),r=!1;try{r=await n.isLoaded({env:process.env})}catch(t){return e.error(`Gateway service check failed: ${String(t)}`),!1}if(!r)return e.log(`Gateway service ${n.notLoadedText}.`),!0;try{await n.stop({env:process.env,stdout:process.stdout})}catch(t){e.error(`Gateway stop failed: ${String(t)}`)}try{return await n.uninstall({env:process.env,stdout:process.stdout}),!0}catch(t){return e.error(`Gateway uninstall failed: ${String(t)}`),!1}}async function G(e,t){process.platform===`darwin`&&await T(`/Applications/OpenClaw.app`,e,{dryRun:t,label:`/Applications/OpenClaw.app`})}function K(e){e.log(`Recommended first: ${f(`openclaw backup create`)}`)}async function q(e,t){let{scopes:n,hadExplicit:r}=U(t),i=!t.nonInteractive;if(!i&&!t.yes){e.error(`Non-interactive mode requires --yes.`),e.exit(1);return}if(!r){if(!i){e.error(`Non-interactive mode requires explicit scopes (use --all).`),e.exit(1);return}let t=await H({message:`Uninstall which components?`,options:[{value:`service`,label:`Gateway service`,hint:`launchd / systemd / schtasks`},{value:`state`,label:`State + config`,hint:`~/.qbotclaw`},{value:`workspace`,label:`Workspace`,hint:`agent files`},{value:`app`,label:`macOS app`,hint:`/Applications/OpenClaw.app`}],initialValues:[`service`,`state`,`workspace`]});if(P(t)){M(v(`Uninstall cancelled.`)??`Uninstall cancelled.`),e.exit(0);return}for(let e of t)n.add(e)}if(n.size===0){e.log(`Nothing selected.`);return}if(i&&!t.yes){let t=await N({message:_(`Proceed with uninstall?`)});if(P(t)||!t){M(v(`Uninstall cancelled.`)??`Uninstall cancelled.`),e.exit(0);return}}let a=!!t.dryRun,{stateDir:o,configPath:c,oauthDir:l,configInsideState:u,oauthInsideState:d,workspaceDirs:f}=R();if((n.has(`state`)||n.has(`workspace`))&&K(e),n.has(`service`)&&(a?e.log(`[dry-run] remove gateway service`):await W(e)),n.has(`state`)&&await w({stateDir:o,configPath:c,oauthDir:l,configInsideState:u,oauthInsideState:d},e,{dryRun:a}),n.has(`workspace`)&&await E(f,e,{dryRun:a}),n.has(`app`)&&await G(e,a),e.log(`CLI still installed. Remove via npm/pnpm if desired.`),n.has(`state`)&&!n.has(`workspace`)){let t=s();t&&f.some(e=>e.startsWith(j.resolve(t)))&&e.log(`Tip: workspaces were preserved. Re-run with --workspace to remove them.`)}}function J(e){e.command(`doctor`).description(`Health checks + quick fixes for the gateway and channels`).addHelpText(`after`,()=>`\n${a.muted(`Docs:`)} ${b(`/cli/doctor`,`docs.openclaw.ai/cli/doctor`)}\n`).option(`--no-workspace-suggestions`,`Disable workspace memory system suggestions`,!1).option(`--yes`,`Accept defaults without prompting`,!1).option(`--repair`,`Apply recommended repairs without prompting`,!1).option(`--fix`,`Apply recommended repairs (alias for --repair)`,!1).option(`--force`,`Apply aggressive repairs (overwrites custom service config)`,!1).option(`--non-interactive`,`Run without prompts (safe migrations only)`,!1).option(`--generate-gateway-token`,`Generate and configure a gateway token`,!1).option(`--deep`,`Scan system services for extra gateway installs`,!1).action(async e=>{await x(o,async()=>{await k(o,{workspaceSuggestions:e.workspaceSuggestions,yes:!!e.yes,repair:!!e.repair||!!e.fix,force:!!e.force,nonInteractive:!!e.nonInteractive,generateGatewayToken:!!e.generateGatewayToken,deep:!!e.deep}),o.exit(0)})}),e.command(`dashboard`).description(`Open the Control UI with your current token`).addHelpText(`after`,()=>`\n${a.muted(`Docs:`)} ${b(`/cli/dashboard`,`docs.openclaw.ai/cli/dashboard`)}\n`).option(`--no-open`,`Print URL but do not launch a browser`).action(async e=>{await x(o,async()=>{await L(o,{noOpen:e.open===!1})})}),e.command(`reset`).description(`Reset local config/state (keeps the CLI installed)`).addHelpText(`after`,()=>`\n${a.muted(`Docs:`)} ${b(`/cli/reset`,`docs.openclaw.ai/cli/reset`)}\n`).option(`--scope <scope>`,`config|config+creds+sessions|full (default: interactive prompt)`).option(`--yes`,`Skip confirmation prompts`,!1).option(`--non-interactive`,`Disable prompts (requires --scope + --yes)`,!1).option(`--dry-run`,`Print actions without removing files`,!1).action(async e=>{await x(o,async()=>{await V(o,{scope:e.scope,yes:!!e.yes,nonInteractive:!!e.nonInteractive,dryRun:!!e.dryRun})})}),e.command(`uninstall`).description(`Uninstall the gateway service + local data (CLI remains)`).addHelpText(`after`,()=>`\n${a.muted(`Docs:`)} ${b(`/cli/uninstall`,`docs.openclaw.ai/cli/uninstall`)}\n`).option(`--service`,`Remove the gateway service`,!1).option(`--state`,`Remove state + config`,!1).option(`--workspace`,`Remove workspace dirs`,!1).option(`--app`,`Remove the macOS app`,!1).option(`--all`,`Remove service + state + workspace + app`,!1).option(`--yes`,`Skip confirmation prompts`,!1).option(`--non-interactive`,`Disable prompts (requires --yes)`,!1).option(`--dry-run`,`Print actions without removing files`,!1).action(async e=>{await x(o,async()=>{await q(o,{service:!!e.service,state:!!e.state,workspace:!!e.workspace,app:!!e.app,all:!!e.all,yes:!!e.yes,nonInteractive:!!e.nonInteractive,dryRun:!!e.dryRun})})})}export{J as registerMaintenanceCommands};
|
|
1
|
+
import{g as e,i as t,m as n,o as r,u as i}from"./paths-B4IRk3wi.js";import{A as a,p as o}from"./subsystem-BQ1073Mu.js";import{_ as s}from"./utils-D1PlBTFH.js";import{Ga as c,Zs as l,qs as u,so as d}from"./model-selection-B2r_LMFb.js";import"./reply-HrabJs88.js";import"./agent-scope-DW6ZDCxj.js";import"./openclaw-root-D_0Q6--h.js";import"./github-copilot-token-DGYAlOmV.js";import{t as f}from"./command-format-BbDT1tlm.js";import"./boolean-Ch3DfXPy.js";import"./env-BI_g1HfG.js";import"./env-overrides-C0vMeCeX.js";import"./registry-BwcVQtsI.js";import"./skills-CZ7zEDmo.js";import"./frontmatter-BkZkwkVO.js";import"./plugins-1aNlpDX7.js";import"./logger-Bgqzq_Zu.js";import"./exec-BdtFni8N.js";import"./windows-spawn-B36IG4s2.js";import"./redact-DsC5EnL7.js";import"./path-alias-guards-mvyLCPlN.js";import"./errors-y2V0aFIS.js";import"./send-DyCUb7oW.js";import"./send-C6J_nLb9.js";import"./paths-yLEk_25I.js";import"./chat-envelope-HVpKusFc.js";import"./audio-transcription-runner-DsYKaMCI.js";import"./image-6t162ig6.js";import"./models-config-PU32mWpc.js";import"./tool-display-DBTvIf_I.js";import"./fetch-guard-11xgsj9-.js";import"./api-key-rotation-CayDxQxo.js";import"./local-roots-ClGHF49W.js";import"./model-catalog-CXx8LKWX.js";import"./proxy-fetch-Ci8QXzzm.js";import"./tokens-xmkeRJqo.js";import"./deliver-Dg2TVF1M.js";import"./commands-FDnZnqN5.js";import"./commands-registry-BEMFeaZR.js";import"./pairing-store-mQs2yMkt.js";import"./fetch-Dikjvc5M.js";import"./call-BQAAYLj3.js";import"./with-timeout-WveKxvFV.js";import"./diagnostic-kojLym9G.js";import"./send-aEwJo2mZ2.js";import"./pi-model-discovery-DMZplc-U.js";import"./exec-approvals-allowlist-Bh3Rw-aC.js";import"./exec-safe-bin-runtime-policy-BxN1_8e_.js";import"./ir-DcrzIcfF.js";import"./render-D8OWO2hT.js";import"./target-errors-B1wrjiTA.js";import"./read-only-account-inspect-DLD1Pk6l.js";import"./channel-selection-BuH6syM3.js";import"./plugin-auto-enable-DzUZAwai.js";import"./send-HOAYSr2i.js";import"./outbound-attachment-lrGTAaR-.js";import"./delivery-queue-CKbauSFq.js";import"./send-w-vabJ4U.js";import"./channel-activity-CBKv0fto.js";import"./tables-DwrGp-F-.js";import"./fetch-D4txy8qG.js";import"./skill-commands-BN3rmzgq.js";import"./workspace-dirs-BMGwwM6X.js";import"./pairing-token-BipkTRNW.js";import"./restart-Dal_HOce.js";import"./runtime-web-tools-BiMD0yHU.js";import"./command-secret-targets-CbrSGcvV.js";import"./session-cost-usage-BgqKixv0.js";import"./connection-auth-BCxq0f5b.js";import{f as p,g as m,i as h,o as g}from"./onboard-helpers-CKsetIvC.js";import{n as _,r as v,t as y}from"./prompt-style-DpAh867d.js";import"./pairing-labels-iZoSa-aT.js";import"./memory-cli-P0GDvKlz.js";import"./query-expansion-BNl6JMlz.js";import"./manager-DKyEk2dt.js";import{t as b}from"./links-jlebCPFf.js";import{n as x}from"./cli-utils-BY7dLMFy.js";import"./help-format-Cav62lfS.js";import"./progress-Cyn5U745.js";import"./exec-approvals-BpBNEy6i.js";import"./nodes-screen-B1Y6pbxs.js";import"./system-run-command-B212q8f9.js";import"./runtime-Dz2qgcJk.js";import"./stagger-DmFYysrJ.js";import"./runtime-guard-D_eQ0X84.js";import"./program-context-DewOK4jD.js";import"./skills-status-CId4JgRV.js";import{t as S}from"./clipboard-DaFJXNg3.js";import"./note-PBjA39mC.js";import"./issue-format-BM2kAbbw.js";import"./channels-status-issues-hU0uOU87.js";import"./completion-cli-BxTvZFra.js";import"./daemon-install-plan.shared-ChzeMJMO.js";import"./gateway-install-token-CqMSnPKA.js";import"./systemd-Dp59-Na4.js";import{n as C}from"./service-BMP0stI7.js";import"./systemd-hints-CvFRwRSs.js";import"./diagnostics-DxEtFsuc.js";import"./health-dTYbHKsD.js";import"./control-ui-assets-jM-MvEQE.js";import"./channel-account-context-kX_5d8CX.js";import"./update-runner-JT7_BON6.js";import"./logging-Gwc2HmXy.js";import"./oauth-tls-preflight-OT_XKQho.js";import"./doctor-config-flow-ByHDSti4.js";import{a as w,i as T,o as E,r as D,t as O}from"./cleanup-utils-DAXZPL4d.js";import"./systemd-linger-Bjq6egQK.js";import"./health-format-BYfab3lP.js";import{n as k,t as A}from"./prompt-select-styled-VagKVjlJ.js";import"./doctor-completion-CjAt0IBL.js";import j from"node:path";import{cancel as M,confirm as N,isCancel as P,multiselect as F}from"@clack/prompts";async function I(e,t=process.env){let n=await c({config:e,env:t,value:e.gateway?.auth?.token,path:`gateway.auth.token`,readFallback:()=>d(t)});return{token:n.value,source:n.source===`config`?`config`:n.source===`secretRef`?`secretRef`:n.source===`fallback`?`env`:void 0,unresolvedRefReason:n.unresolvedRefReason,tokenSecretRefConfigured:n.secretRefConfigured}}async function L(e=o,t={}){let n=await l(),r=n.valid?n.config:{},a=i(r),s=r.gateway?.bind??`loopback`,c=r.gateway?.controlUi?.basePath,u=r.gateway?.customBindHost,d=await I(r,process.env),f=d.token??``,_=m({port:a,bind:s===`lan`?`loopback`:s,customBindHost:u,basePath:c}),v=f.length>0&&!d.tokenSecretRefConfigured,y=v?`${_.httpUrl}#token=${encodeURIComponent(f)}`:_.httpUrl;e.log(`Dashboard URL: ${y}`),d.tokenSecretRefConfigured&&f&&e.log(`Token auto-auth is disabled for SecretRef-managed gateway.auth.token; use your external token source if prompted.`),d.unresolvedRefReason&&(e.log(`Token auto-auth unavailable: ${d.unresolvedRefReason}`),e.log("Set OPENCLAW_GATEWAY_TOKEN in this shell or resolve your secret provider, then rerun `openclaw dashboard`."));let b=await S(y).catch(()=>!1);e.log(b?`Copied to clipboard.`:`Copy to clipboard unavailable.`);let x=!1,C;t.noOpen?C=`Browser launch disabled (--no-open). Use the URL above.`:((await h()).ok&&(x=await p(y)),x||(C=g({port:a,basePath:c,token:v&&f||void 0}))),x?e.log(`Opened in your browser. Keep that tab to control OpenClaw.`):C&&e.log(C)}function R(){let t=u(),i=e(),a=r(),o=n();return{cfg:t,stateDir:i,configPath:a,oauthDir:o,...O({cfg:t,stateDir:i,configPath:a,oauthDir:o})}}async function z(e){if(t)return;let n=C(),r=!1;try{r=await n.isLoaded({env:process.env})}catch(t){e.error(`Gateway service check failed: ${String(t)}`);return}if(r)try{await n.stop({env:process.env,stdout:process.stdout})}catch(t){e.error(`Gateway stop failed: ${String(t)}`)}}function B(e){e.log(`Recommended first: ${f(`openclaw backup create`)}`)}async function V(e,t){let n=!t.nonInteractive;if(!n&&!t.yes){e.error(`Non-interactive mode requires --yes.`),e.exit(1);return}let r=t.scope;if(!r){if(!n){e.error(`Non-interactive mode requires --scope.`),e.exit(1);return}let t=await A({message:`Reset scope`,options:[{value:`config`,label:`Config only`,hint:`openclaw.json`},{value:`config+creds+sessions`,label:`Config + credentials + sessions`,hint:`keeps workspace + auth profiles`},{value:`full`,label:`Full reset`,hint:`state dir + workspace`}],initialValue:`config+creds+sessions`});if(P(t)){M(v(`Reset cancelled.`)??`Reset cancelled.`),e.exit(0);return}r=t}if(![`config`,`config+creds+sessions`,`full`].includes(r)){e.error(`Invalid --scope. Expected "config", "config+creds+sessions", or "full".`),e.exit(1);return}if(n&&!t.yes){let t=await N({message:_(`Proceed with ${r} reset?`)});if(P(t)||!t){M(v(`Reset cancelled.`)??`Reset cancelled.`),e.exit(0);return}}let i=!!t.dryRun,{stateDir:a,configPath:o,oauthDir:s,configInsideState:c,oauthInsideState:l,workspaceDirs:u}=R();if(r!==`config`&&(B(e),i?e.log(`[dry-run] stop gateway service`):await z(e)),r===`config`){await T(o,e,{dryRun:i,label:o});return}if(r===`config+creds+sessions`){await T(o,e,{dryRun:i,label:o}),await T(s,e,{dryRun:i,label:s});let t=await D(a);for(let n of t)await T(n,e,{dryRun:i,label:n});e.log(`Next: ${f(`openclaw onboard --install-daemon`)}`);return}if(r===`full`){await w({stateDir:a,configPath:o,oauthDir:s,configInsideState:c,oauthInsideState:l},e,{dryRun:i}),await E(u,e,{dryRun:i}),e.log(`Next: ${f(`openclaw onboard --install-daemon`)}`);return}}const H=e=>F({...e,message:_(e.message),options:e.options.map(e=>e.hint===void 0?e:{...e,hint:y(e.hint)})});function U(e){let t=!!(e.all||e.service||e.state||e.workspace||e.app),n=new Set;return(e.all||e.service)&&n.add(`service`),(e.all||e.state)&&n.add(`state`),(e.all||e.workspace)&&n.add(`workspace`),(e.all||e.app)&&n.add(`app`),{scopes:n,hadExplicit:t}}async function W(e){if(t)return e.error(`Nix mode detected; service uninstall is disabled.`),!1;let n=C(),r=!1;try{r=await n.isLoaded({env:process.env})}catch(t){return e.error(`Gateway service check failed: ${String(t)}`),!1}if(!r)return e.log(`Gateway service ${n.notLoadedText}.`),!0;try{await n.stop({env:process.env,stdout:process.stdout})}catch(t){e.error(`Gateway stop failed: ${String(t)}`)}try{return await n.uninstall({env:process.env,stdout:process.stdout}),!0}catch(t){return e.error(`Gateway uninstall failed: ${String(t)}`),!1}}async function G(e,t){process.platform===`darwin`&&await T(`/Applications/OpenClaw.app`,e,{dryRun:t,label:`/Applications/OpenClaw.app`})}function K(e){e.log(`Recommended first: ${f(`openclaw backup create`)}`)}async function q(e,t){let{scopes:n,hadExplicit:r}=U(t),i=!t.nonInteractive;if(!i&&!t.yes){e.error(`Non-interactive mode requires --yes.`),e.exit(1);return}if(!r){if(!i){e.error(`Non-interactive mode requires explicit scopes (use --all).`),e.exit(1);return}let t=await H({message:`Uninstall which components?`,options:[{value:`service`,label:`Gateway service`,hint:`launchd / systemd / schtasks`},{value:`state`,label:`State + config`,hint:`~/.qbotclaw`},{value:`workspace`,label:`Workspace`,hint:`agent files`},{value:`app`,label:`macOS app`,hint:`/Applications/OpenClaw.app`}],initialValues:[`service`,`state`,`workspace`]});if(P(t)){M(v(`Uninstall cancelled.`)??`Uninstall cancelled.`),e.exit(0);return}for(let e of t)n.add(e)}if(n.size===0){e.log(`Nothing selected.`);return}if(i&&!t.yes){let t=await N({message:_(`Proceed with uninstall?`)});if(P(t)||!t){M(v(`Uninstall cancelled.`)??`Uninstall cancelled.`),e.exit(0);return}}let a=!!t.dryRun,{stateDir:o,configPath:c,oauthDir:l,configInsideState:u,oauthInsideState:d,workspaceDirs:f}=R();if((n.has(`state`)||n.has(`workspace`))&&K(e),n.has(`service`)&&(a?e.log(`[dry-run] remove gateway service`):await W(e)),n.has(`state`)&&await w({stateDir:o,configPath:c,oauthDir:l,configInsideState:u,oauthInsideState:d},e,{dryRun:a}),n.has(`workspace`)&&await E(f,e,{dryRun:a}),n.has(`app`)&&await G(e,a),e.log(`CLI still installed. Remove via npm/pnpm if desired.`),n.has(`state`)&&!n.has(`workspace`)){let t=s();t&&f.some(e=>e.startsWith(j.resolve(t)))&&e.log(`Tip: workspaces were preserved. Re-run with --workspace to remove them.`)}}function J(e){e.command(`doctor`).description(`Health checks + quick fixes for the gateway and channels`).addHelpText(`after`,()=>`\n${a.muted(`Docs:`)} ${b(`/cli/doctor`,`docs.openclaw.ai/cli/doctor`)}\n`).option(`--no-workspace-suggestions`,`Disable workspace memory system suggestions`,!1).option(`--yes`,`Accept defaults without prompting`,!1).option(`--repair`,`Apply recommended repairs without prompting`,!1).option(`--fix`,`Apply recommended repairs (alias for --repair)`,!1).option(`--force`,`Apply aggressive repairs (overwrites custom service config)`,!1).option(`--non-interactive`,`Run without prompts (safe migrations only)`,!1).option(`--generate-gateway-token`,`Generate and configure a gateway token`,!1).option(`--deep`,`Scan system services for extra gateway installs`,!1).action(async e=>{await x(o,async()=>{await k(o,{workspaceSuggestions:e.workspaceSuggestions,yes:!!e.yes,repair:!!e.repair||!!e.fix,force:!!e.force,nonInteractive:!!e.nonInteractive,generateGatewayToken:!!e.generateGatewayToken,deep:!!e.deep}),o.exit(0)})}),e.command(`dashboard`).description(`Open the Control UI with your current token`).addHelpText(`after`,()=>`\n${a.muted(`Docs:`)} ${b(`/cli/dashboard`,`docs.openclaw.ai/cli/dashboard`)}\n`).option(`--no-open`,`Print URL but do not launch a browser`).action(async e=>{await x(o,async()=>{await L(o,{noOpen:e.open===!1})})}),e.command(`reset`).description(`Reset local config/state (keeps the CLI installed)`).addHelpText(`after`,()=>`\n${a.muted(`Docs:`)} ${b(`/cli/reset`,`docs.openclaw.ai/cli/reset`)}\n`).option(`--scope <scope>`,`config|config+creds+sessions|full (default: interactive prompt)`).option(`--yes`,`Skip confirmation prompts`,!1).option(`--non-interactive`,`Disable prompts (requires --scope + --yes)`,!1).option(`--dry-run`,`Print actions without removing files`,!1).action(async e=>{await x(o,async()=>{await V(o,{scope:e.scope,yes:!!e.yes,nonInteractive:!!e.nonInteractive,dryRun:!!e.dryRun})})}),e.command(`uninstall`).description(`Uninstall the gateway service + local data (CLI remains)`).addHelpText(`after`,()=>`\n${a.muted(`Docs:`)} ${b(`/cli/uninstall`,`docs.openclaw.ai/cli/uninstall`)}\n`).option(`--service`,`Remove the gateway service`,!1).option(`--state`,`Remove state + config`,!1).option(`--workspace`,`Remove workspace dirs`,!1).option(`--app`,`Remove the macOS app`,!1).option(`--all`,`Remove service + state + workspace + app`,!1).option(`--yes`,`Skip confirmation prompts`,!1).option(`--non-interactive`,`Disable prompts (requires --yes)`,!1).option(`--dry-run`,`Print actions without removing files`,!1).action(async e=>{await x(o,async()=>{await q(o,{service:!!e.service,state:!!e.state,workspace:!!e.workspace,app:!!e.app,all:!!e.all,yes:!!e.yes,nonInteractive:!!e.nonInteractive,dryRun:!!e.dryRun})})})}export{J as registerMaintenanceCommands};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import"./paths-B4IRk3wi.js";import{A as e,k as t,p as n,v as r,w as i}from"./subsystem-BQ1073Mu.js";import"./utils-D1PlBTFH.js";import{Si as a,qs as o,xi as s}from"./model-selection-B2r_LMFb.js";import{F as c,Ft as l,In as u,Jn as d,Mt as f,Qn as p,Zn as m}from"./reply-DHtpIWpD.js";import"./agent-scope-DW6ZDCxj.js";import"./openclaw-root-D_0Q6--h.js";import"./github-copilot-token-DGYAlOmV.js";import"./boolean-Ch3DfXPy.js";import"./env-BI_g1HfG.js";import"./env-overrides-C0vMeCeX.js";import{a as h,l as g}from"./registry-BwcVQtsI.js";import"./skills-CZ7zEDmo.js";import"./frontmatter-BkZkwkVO.js";import{t as _}from"./plugins-1aNlpDX7.js";import"./logger-Bgqzq_Zu.js";import"./exec-BdtFni8N.js";import"./windows-spawn-B36IG4s2.js";import"./redact-DsC5EnL7.js";import"./path-alias-guards-mvyLCPlN.js";import"./errors-y2V0aFIS.js";import"./send-DyCUb7oW.js";import"./send-C6J_nLb9.js";import"./paths-yLEk_25I.js";import"./chat-envelope-HVpKusFc.js";import"./audio-transcription-runner-DsYKaMCI.js";import"./image-6t162ig6.js";import"./models-config-PU32mWpc.js";import"./tool-display-DBTvIf_I.js";import"./fetch-guard-11xgsj9-.js";import"./api-key-rotation-CayDxQxo.js";import"./local-roots-ClGHF49W.js";import"./model-catalog-CXx8LKWX.js";import"./proxy-fetch-Ci8QXzzm.js";import"./tokens-xmkeRJqo.js";import{P as v}from"./deliver-Dg2TVF1M.js";import"./commands-FDnZnqN5.js";import"./commands-registry-BEMFeaZR.js";import"./pairing-store-mQs2yMkt.js";import"./fetch-Dikjvc5M.js";import"./call-BQAAYLj3.js";import"./with-timeout-WveKxvFV.js";import"./diagnostic-kojLym9G.js";import"./send-aEwJo2mZ2.js";import"./pi-model-discovery-DMZplc-U.js";import"./exec-approvals-allowlist-Bh3Rw-aC.js";import"./exec-safe-bin-runtime-policy-BxN1_8e_.js";import"./ir-DcrzIcfF.js";import"./render-D8OWO2hT.js";import"./target-errors-B1wrjiTA.js";import"./read-only-account-inspect-DLD1Pk6l.js";import"./channel-selection-BuH6syM3.js";import"./plugin-auto-enable-DzUZAwai.js";import"./send-HOAYSr2i.js";import"./outbound-attachment-lrGTAaR-.js";import"./delivery-queue-CKbauSFq.js";import"./send-w-vabJ4U.js";import"./channel-activity-CBKv0fto.js";import"./tables-DwrGp-F-.js";import"./fetch-D4txy8qG.js";import"./skill-commands-BN3rmzgq.js";import"./workspace-dirs-BMGwwM6X.js";import"./pairing-token-BipkTRNW.js";import"./restart-Dal_HOce.js";import"./runtime-web-tools-BiMD0yHU.js";import{n as y,s as b}from"./command-secret-targets-CbrSGcvV.js";import"./session-cost-usage-BgqKixv0.js";import"./connection-auth-BCxq0f5b.js";import"./onboard-helpers-CKsetIvC.js";import"./prompt-style-DpAh867d.js";import"./pairing-labels-iZoSa-aT.js";import"./memory-cli-P0GDvKlz.js";import"./query-expansion-BNl6JMlz.js";import"./manager-DKyEk2dt.js";import{t as x}from"./links-jlebCPFf.js";import{n as S}from"./cli-utils-BY7dLMFy.js";import{t as C}from"./help-format-Cav62lfS.js";import{n as w}from"./progress-Cyn5U745.js";import"./exec-approvals-BpBNEy6i.js";import"./nodes-screen-B1Y6pbxs.js";import"./system-run-command-B212q8f9.js";import"./runtime-Dz2qgcJk.js";import"./stagger-DmFYysrJ.js";import{t as T}from"./helpers-Cp8gcO6u.js";import{t as E}from"./plugin-registry--rKSomNR.js";import{n as D,t as O}from"./table-CWiulZxe.js";import{t as k}from"./text-format-CvrvBBre.js";const A=e=>{let t=_(e)?.meta.label;if(t)return t;let n=g(e);return n?h(n).label:e};function j(e,t){if(!t)return`✅ Sent via ${A(e)}. Message ID: unknown`;let n=`✅ Sent via ${A(t.channel)}. Message ID: ${t.messageId}`;return`chatId`in t?`${n} (chat ${t.chatId})`:`channelId`in t?`${n} (channel ${t.channelId})`:`roomId`in t?`${n} (room ${t.roomId})`:`conversationId`in t?`${n} (conversation ${t.conversationId})`:n}function M(e){return`✅ ${e.action??`Sent`} via gateway${e.channel?` (${e.channel})`:``}. Message ID: ${e.messageId??`unknown`}`}const N=e=>_(e)?.meta.label??e;function P(e){if(!e||typeof e!=`object`)return null;let t=e.messageId;if(typeof t==`string`&&t.trim())return t.trim();let n=e.result;if(n&&typeof n==`object`){let e=n.messageId;if(typeof e==`string`&&e.trim())return e.trim()}return null}function F(e){return{action:e.action,channel:e.channel,dryRun:e.dryRun,handledBy:e.handledBy,payload:e.payload}}function I(t,n){if(!t||typeof t!=`object`)return[String(t)];let r=t,i=Object.keys(r);if(i.length===0)return[e.muted(`(empty)`)];let a=i.slice(0,20).map(e=>{let t=r[e];return{Key:e,Value:k(t==null?`null`:Array.isArray(t)?`${t.length} items`:typeof t==`object`?`object`:typeof t==`string`?t:typeof t==`number`?String(t):typeof t==`boolean`?t?`true`:`false`:typeof t==`bigint`||typeof t==`symbol`?t.toString():typeof t==`function`?`function`:`unknown`,96)}});return[D({width:n.width,columns:[{key:`Key`,header:`Key`,minWidth:16},{key:`Value`,header:`Value`,flex:!0,minWidth:24}],rows:a}).trimEnd()]}function L(t,n,r){let i=t.slice(0,25).map(e=>{let t=e,n=typeof t.id==`string`&&t.id||typeof t.ts==`string`&&t.ts||typeof t.messageId==`string`&&t.messageId||``,r=t.author,i=typeof t.authorTag==`string`&&t.authorTag||typeof r?.username==`string`&&r.username||typeof t.user==`string`&&t.user||``,a=typeof t.timestamp==`string`&&t.timestamp||typeof t.ts==`string`&&t.ts||``,o=typeof t.content==`string`&&t.content||typeof t.text==`string`&&t.text||``;return{Time:k(a,28),Author:k(i,22),Text:k(o.replace(/\s+/g,` `).trim(),90),Id:k(n,22)}});return i.length===0?[e.muted(r)]:[D({width:n.width,columns:[{key:`Time`,header:`Time`,minWidth:14},{key:`Author`,header:`Author`,minWidth:10},{key:`Text`,header:`Text`,flex:!0,minWidth:24},{key:`Id`,header:`Id`,minWidth:10}],rows:i}).trimEnd()]}function R(e,t){if(!e||typeof e!=`object`)return null;let n=e.messages;return Array.isArray(n)?L(n,t,`No messages.`):null}function z(e,t){if(!e||typeof e!=`object`)return null;let n=e.pins;return Array.isArray(n)?L(n,t,`No pins.`):null}function B(e){if(!e||typeof e!=`object`)return null;let t=e.messages;if(!Array.isArray(t))return null;let n=[];for(let e of t)Array.isArray(e)&&e.length>0?n.push(e[0]):e&&typeof e==`object`&&n.push(e);return n.length?n:null}function V(t,n){if(!t||typeof t!=`object`)return null;let r=t.reactions;if(!Array.isArray(r))return null;let i=r.slice(0,50).map(e=>{let t=e,n=t.emoji;return{Emoji:typeof n?.raw==`string`&&n.raw||typeof t.name==`string`&&t.name||typeof t.emoji==`string`&&t.emoji||``,Count:typeof t.count==`number`?String(t.count):``,Users:k((Array.isArray(t.users)?t.users.slice(0,8).map(e=>{if(typeof e==`string`)return e;if(!e||typeof e!=`object`)return``;let t=e;return typeof t.tag==`string`&&t.tag||typeof t.username==`string`&&t.username||typeof t.id==`string`&&t.id||``}).filter(Boolean):[]).join(`, `),72)}});return i.length===0?[e.muted(`No reactions.`)]:[D({width:n.width,columns:[{key:`Emoji`,header:`Emoji`,minWidth:8},{key:`Count`,header:`Count`,align:`right`,minWidth:6},{key:`Users`,header:`Users`,flex:!0,minWidth:20}],rows:i}).trimEnd()]}function H(n){let r=t(),i=t=>r?e.success(t):t,a=t=>r?e.muted(t):t,o=t=>r?e.heading(t):t,s={width:O()};if(n.handledBy===`dry-run`)return[a(`[dry-run] would run ${n.action} via ${n.channel}`)];if(n.kind===`broadcast`){let e=n.payload.results??[],t=e.map(e=>({Channel:N(e.channel),Target:k(d({channel:e.channel,target:e.to}),36),Status:e.ok?`ok`:`error`,Error:e.ok?``:k(e.error??`unknown error`,48)})),r=e.filter(e=>e.ok).length,a=e.length;return[i(`✅ Broadcast complete (${r}/${a} succeeded, ${a-r} failed)`),D({width:s.width,columns:[{key:`Channel`,header:`Channel`,minWidth:10},{key:`Target`,header:`Target`,minWidth:12,flex:!0},{key:`Status`,header:`Status`,minWidth:6},{key:`Error`,header:`Error`,minWidth:20,flex:!0}],rows:t.slice(0,50)}).trimEnd()]}if(n.kind===`send`){if(n.handledBy===`core`&&n.sendResult){let e=n.sendResult;if(e.via===`direct`){let t=e.result;return[i(j(e.channel,t))]}let t=e.result;return[i(M({channel:e.channel,messageId:t?.messageId??null}))]}let e=N(n.channel),t=P(n.payload);return[i(`✅ Sent via ${e}.${t?` Message ID: ${t}`:``}`)]}if(n.kind===`poll`){if(n.handledBy===`core`&&n.pollResult){let e=n.pollResult,t=e.result?.pollId,r=e.result?.messageId??null,a=[i(M({action:`Poll sent`,channel:e.channel,messageId:r}))];return t&&a.push(i(`Poll id: ${t}`)),a}let e=N(n.channel),t=P(n.payload);return[i(`✅ Poll sent via ${e}.${t?` Message ID: ${t}`:``}`)]}let c=n.payload,l=[];if(n.action===`react`){let e=c.added,t=c.removed;if(typeof e==`string`&&e.trim())return l.push(i(`✅ Reaction added: ${e.trim()}`)),l;if(typeof t==`string`&&t.trim())return l.push(i(`✅ Reaction removed: ${t.trim()}`)),l;if(Array.isArray(t)){let e=t.map(e=>String(e).trim()).filter(Boolean).join(`, `);return l.push(i(`✅ Reactions removed${e?`: ${e}`:``}`)),l}return l.push(i(`✅ Reaction updated.`)),l}let u=V(c,s);if(u&&n.action===`reactions`)return l.push(o(`Reactions`)),l.push(u[0]??``),l;if(n.action===`read`){let e=R(c,s);if(e)return l.push(o(`Messages`)),l.push(e[0]??``),l}if(n.action===`list-pins`){let e=z(c,s);if(e)return l.push(o(`Pinned messages`)),l.push(e[0]??``),l}if(n.action===`search`){let e=c.results,t=B(e);if(t)return l.push(o(`Search results`)),l.push(L(t,s,`No results.`)[0]??``),l}l.push(i(`✅ ${n.action} via ${N(n.channel)}.`));let f=I(c,s);return f.length&&(l.push(``),l.push(...f),l.push(``),l.push(a(`Tip: use --json for full output.`))),l}async function U(e,t,n){let{resolvedConfig:r,diagnostics:i}=await b({config:o(),commandName:`message`,targetIds:y()});for(let e of i)n.log(`[secrets] ${e}`);let l=(typeof e.action==`string`?e.action.trim():``)||`send`,d=c.find(e=>e.toLowerCase()===l.toLowerCase());if(!d)throw Error(`Unknown message action: ${l}`);let p=d,m=f(t),h=async()=>await u({cfg:r,action:p,params:e,deps:m,gateway:{clientName:a.CLI,mode:s.CLI}}),g=e.json===!0,_=e.dryRun===!0,v=!g&&!_&&(p===`send`||p===`poll`)?await w({label:p===`poll`?`Sending poll...`:`Sending...`,indeterminate:!0,enabled:!0},h):await h();if(g){n.log(JSON.stringify(F(v),null,2));return}for(let e of H(v))n.log(e)}function W(e){let{account:t,...n}=e;return{...n,accountId:typeof t==`string`?t:void 0}}async function G(){await v({event:{reason:`cli message action complete`},ctx:{},onError:e=>n.error(r(`gateway_stop hook failed: ${String(e)}`))})}function K(e,t){return{withMessageBase:e=>e.option(`--channel <channel>`,`Channel: ${t}`).option(`--account <id>`,`Channel account id (accountId)`).option(`--json`,`Output result as JSON`,!1).option(`--dry-run`,`Print payload and skip sending`,!1).option(`--verbose`,`Verbose logging`,!1),withMessageTarget:e=>e.option(`-t, --target <dest>`,p),withRequiredMessageTarget:e=>e.requiredOption(`-t, --target <dest>`,p),runMessageAction:async(e,t)=>{i(!!t.verbose),E();let a=l(),o=!1;await S(n,async()=>{await U({...W(t),action:e},a,n)},e=>{o=!0,n.error(r(String(e)))}),await G(),n.exit(o?1:0)}}}function q(e,t){t.withMessageBase(e.command(`broadcast`).description(`Broadcast a message to multiple targets`)).requiredOption(`--targets <target...>`,m).option(`--message <text>`,`Message to send`).option(`--media <url>`,`Media URL`).action(async e=>{await t.runMessageAction(`broadcast`,e)})}function J(e,t){let n=e.command(`role`).description(`Role actions`);t.withMessageBase(n.command(`info`).description(`List roles`).requiredOption(`--guild-id <id>`,`Guild id`)).action(async e=>{await t.runMessageAction(`role-info`,e)}),t.withMessageBase(n.command(`add`).description(`Add role to a member`).requiredOption(`--guild-id <id>`,`Guild id`).requiredOption(`--user-id <id>`,`User id`).requiredOption(`--role-id <id>`,`Role id`)).action(async e=>{await t.runMessageAction(`role-add`,e)}),t.withMessageBase(n.command(`remove`).description(`Remove role from a member`).requiredOption(`--guild-id <id>`,`Guild id`).requiredOption(`--user-id <id>`,`User id`).requiredOption(`--role-id <id>`,`Role id`)).action(async e=>{await t.runMessageAction(`role-remove`,e)});let r=e.command(`channel`).description(`Channel actions`);t.withMessageBase(t.withRequiredMessageTarget(r.command(`info`).description(`Fetch channel info`))).action(async e=>{await t.runMessageAction(`channel-info`,e)}),t.withMessageBase(r.command(`list`).description(`List channels`).requiredOption(`--guild-id <id>`,`Guild id`)).action(async e=>{await t.runMessageAction(`channel-list`,e)});let i=e.command(`member`).description(`Member actions`);t.withMessageBase(i.command(`info`).description(`Fetch member info`).requiredOption(`--user-id <id>`,`User id`)).option(`--guild-id <id>`,`Guild id (Discord)`).action(async e=>{await t.runMessageAction(`member-info`,e)});let a=e.command(`voice`).description(`Voice actions`);t.withMessageBase(a.command(`status`).description(`Fetch voice status`).requiredOption(`--guild-id <id>`,`Guild id`).requiredOption(`--user-id <id>`,`User id`)).action(async e=>{await t.runMessageAction(`voice-status`,e)});let o=e.command(`event`).description(`Event actions`);t.withMessageBase(o.command(`list`).description(`List scheduled events`).requiredOption(`--guild-id <id>`,`Guild id`)).action(async e=>{await t.runMessageAction(`event-list`,e)}),t.withMessageBase(o.command(`create`).description(`Create a scheduled event`).requiredOption(`--guild-id <id>`,`Guild id`).requiredOption(`--event-name <name>`,`Event name`).requiredOption(`--start-time <iso>`,`Event start time`)).option(`--end-time <iso>`,`Event end time`).option(`--desc <text>`,`Event description`).option(`--channel-id <id>`,`Channel id`).option(`--location <text>`,`Event location`).option(`--event-type <stage|external|voice>`,`Event type`).action(async e=>{await t.runMessageAction(`event-create`,e)}),t.withMessageBase(e.command(`timeout`).description(`Timeout a member`).requiredOption(`--guild-id <id>`,`Guild id`).requiredOption(`--user-id <id>`,`User id`)).option(`--duration-min <n>`,`Timeout duration minutes`).option(`--until <iso>`,`Timeout until`).option(`--reason <text>`,`Moderation reason`).action(async e=>{await t.runMessageAction(`timeout`,e)}),t.withMessageBase(e.command(`kick`).description(`Kick a member`).requiredOption(`--guild-id <id>`,`Guild id`).requiredOption(`--user-id <id>`,`User id`)).option(`--reason <text>`,`Moderation reason`).action(async e=>{await t.runMessageAction(`kick`,e)}),t.withMessageBase(e.command(`ban`).description(`Ban a member`).requiredOption(`--guild-id <id>`,`Guild id`).requiredOption(`--user-id <id>`,`User id`)).option(`--reason <text>`,`Moderation reason`).option(`--delete-days <n>`,`Ban delete message days`).action(async e=>{await t.runMessageAction(`ban`,e)})}function Y(e,t){let n=e.command(`emoji`).description(`Emoji actions`);t.withMessageBase(n.command(`list`).description(`List emojis`)).option(`--guild-id <id>`,`Guild id (Discord)`).action(async e=>{await t.runMessageAction(`emoji-list`,e)}),t.withMessageBase(n.command(`upload`).description(`Upload an emoji`).requiredOption(`--guild-id <id>`,`Guild id`)).requiredOption(`--emoji-name <name>`,`Emoji name`).requiredOption(`--media <path-or-url>`,`Emoji media (path or URL)`).option(`--role-ids <id>`,`Role id (repeat)`,T,[]).action(async e=>{await t.runMessageAction(`emoji-upload`,e)})}function X(e,t){let n=e.command(`sticker`).description(`Sticker actions`);t.withMessageBase(t.withRequiredMessageTarget(n.command(`send`).description(`Send stickers`))).requiredOption(`--sticker-id <id>`,`Sticker id (repeat)`,T).option(`-m, --message <text>`,`Optional message body`).action(async e=>{await t.runMessageAction(`sticker`,e)}),t.withMessageBase(n.command(`upload`).description(`Upload a sticker`).requiredOption(`--guild-id <id>`,`Guild id`)).requiredOption(`--sticker-name <name>`,`Sticker name`).requiredOption(`--sticker-desc <text>`,`Sticker description`).requiredOption(`--sticker-tags <tags>`,`Sticker tags`).requiredOption(`--media <path-or-url>`,`Sticker media (path or URL)`).action(async e=>{await t.runMessageAction(`sticker-upload`,e)})}function Z(e,t){t.withMessageBase(t.withRequiredMessageTarget(e.command(`permissions`).description(`Fetch channel permissions`))).action(async e=>{await t.runMessageAction(`permissions`,e)})}function Q(e,t){t.withMessageBase(e.command(`search`).description(`Search Discord messages`)).requiredOption(`--guild-id <id>`,`Guild id`).requiredOption(`--query <text>`,`Search query`).option(`--channel-id <id>`,`Channel id`).option(`--channel-ids <id>`,`Channel id (repeat)`,T,[]).option(`--author-id <id>`,`Author id`).option(`--author-ids <id>`,`Author id (repeat)`,T,[]).option(`--limit <n>`,`Result limit`).action(async e=>{await t.runMessageAction(`search`,e)})}function $(e,t){t.withMessageBase(t.withRequiredMessageTarget(e.command(`pin`).description(`Pin a message`))).requiredOption(`--message-id <id>`,`Message id`).action(async e=>{await t.runMessageAction(`pin`,e)}),t.withMessageBase(t.withRequiredMessageTarget(e.command(`unpin`).description(`Unpin a message`))).requiredOption(`--message-id <id>`,`Message id`).action(async e=>{await t.runMessageAction(`unpin`,e)}),t.withMessageBase(t.withRequiredMessageTarget(e.command(`pins`).description(`List pinned messages`))).option(`--limit <n>`,`Result limit`).action(async e=>{await t.runMessageAction(`list-pins`,e)})}function ee(e,t){t.withMessageBase(t.withRequiredMessageTarget(e.command(`poll`).description(`Send a poll`))).requiredOption(`--poll-question <text>`,`Poll question`).option(`--poll-option <choice>`,`Poll option (repeat 2-12 times)`,T,[]).option(`--poll-multi`,`Allow multiple selections`,!1).option(`--poll-duration-hours <n>`,`Poll duration in hours (Discord)`).option(`--poll-duration-seconds <n>`,`Poll duration in seconds (Telegram; 5-600)`).option(`--poll-anonymous`,`Send an anonymous poll (Telegram)`,!1).option(`--poll-public`,`Send a non-anonymous poll (Telegram)`,!1).option(`-m, --message <text>`,`Optional message body`).option(`--silent`,`Send poll silently without notification (Telegram + Discord where supported)`,!1).option(`--thread-id <id>`,`Thread id (Telegram forum topic / Slack thread ts)`).action(async e=>{await t.runMessageAction(`poll`,e)})}function te(e,t){t.withMessageBase(t.withRequiredMessageTarget(e.command(`react`).description(`Add or remove a reaction`))).requiredOption(`--message-id <id>`,`Message id`).option(`--emoji <emoji>`,`Emoji for reactions`).option(`--remove`,`Remove reaction`,!1).option(`--participant <id>`,`WhatsApp reaction participant`).option(`--from-me`,`WhatsApp reaction fromMe`,!1).option(`--target-author <id>`,`Signal reaction target author (uuid or phone)`).option(`--target-author-uuid <uuid>`,`Signal reaction target author uuid`).action(async e=>{await t.runMessageAction(`react`,e)}),t.withMessageBase(t.withRequiredMessageTarget(e.command(`reactions`).description(`List reactions on a message`))).requiredOption(`--message-id <id>`,`Message id`).option(`--limit <n>`,`Result limit`).action(async e=>{await t.runMessageAction(`reactions`,e)})}function ne(e,t){t.withMessageBase(t.withRequiredMessageTarget(e.command(`read`).description(`Read recent messages`))).option(`--limit <n>`,`Result limit`).option(`--before <id>`,`Read/search before id`).option(`--after <id>`,`Read/search after id`).option(`--around <id>`,`Read around id`).option(`--include-thread`,`Include thread replies (Discord)`,!1).action(async e=>{await t.runMessageAction(`read`,e)}),t.withMessageBase(t.withRequiredMessageTarget(e.command(`edit`).description(`Edit a message`).requiredOption(`--message-id <id>`,`Message id`).requiredOption(`-m, --message <text>`,`Message body`))).option(`--thread-id <id>`,`Thread id (Telegram forum thread)`).action(async e=>{await t.runMessageAction(`edit`,e)}),t.withMessageBase(t.withRequiredMessageTarget(e.command(`delete`).description(`Delete a message`).requiredOption(`--message-id <id>`,`Message id`))).action(async e=>{await t.runMessageAction(`delete`,e)})}function re(e,t){t.withMessageBase(t.withRequiredMessageTarget(e.command(`send`).description(`Send a message`).option(`-m, --message <text>`,`Message body (required unless --media is set)`)).option(`--media <path-or-url>`,`Attach media (image/audio/video/document). Accepts local paths or URLs.`).option(`--buttons <json>`,`Telegram inline keyboard buttons as JSON (array of button rows)`).option(`--components <json>`,`Discord components payload as JSON`).option(`--card <json>`,`Adaptive Card JSON object (when supported by the channel)`).option(`--reply-to <id>`,`Reply-to message id`).option(`--thread-id <id>`,`Thread id (Telegram forum thread)`).option(`--gif-playback`,`Treat video media as GIF playback (WhatsApp only).`,!1).option(`--silent`,`Send message silently without notification (Telegram + Discord)`,!1)).action(async e=>{await t.runMessageAction(`send`,e)})}function ie(e,t){let n=e.command(`thread`).description(`Thread actions`);t.withMessageBase(t.withRequiredMessageTarget(n.command(`create`).description(`Create a thread`).requiredOption(`--thread-name <name>`,`Thread name`))).option(`--message-id <id>`,`Message id (optional)`).option(`-m, --message <text>`,`Initial thread message text`).option(`--auto-archive-min <n>`,`Thread auto-archive minutes`).action(async e=>{await t.runMessageAction(`thread-create`,e)}),t.withMessageBase(n.command(`list`).description(`List threads`).requiredOption(`--guild-id <id>`,`Guild id`)).option(`--channel-id <id>`,`Channel id`).option(`--include-archived`,`Include archived threads`,!1).option(`--before <id>`,`Read/search before id`).option(`--limit <n>`,`Result limit`).action(async e=>{await t.runMessageAction(`thread-list`,e)}),t.withMessageBase(t.withRequiredMessageTarget(n.command(`reply`).description(`Reply in a thread`).requiredOption(`-m, --message <text>`,`Message body`))).option(`--media <path-or-url>`,`Attach media (image/audio/video/document). Accepts local paths or URLs.`).option(`--reply-to <id>`,`Reply-to message id`).action(async e=>{await t.runMessageAction(`thread-reply`,e)})}function ae(t,n){let r=t.command(`message`).description(`Send, read, and manage messages and channel actions`).addHelpText(`after`,()=>`
|
|
1
|
+
import"./paths-B4IRk3wi.js";import{A as e,k as t,p as n,v as r,w as i}from"./subsystem-BQ1073Mu.js";import"./utils-D1PlBTFH.js";import{Si as a,qs as o,xi as s}from"./model-selection-B2r_LMFb.js";import{F as c,Ft as l,In as u,Jn as d,Mt as f,Qn as p,Zn as m}from"./reply-HrabJs88.js";import"./agent-scope-DW6ZDCxj.js";import"./openclaw-root-D_0Q6--h.js";import"./github-copilot-token-DGYAlOmV.js";import"./boolean-Ch3DfXPy.js";import"./env-BI_g1HfG.js";import"./env-overrides-C0vMeCeX.js";import{a as h,l as g}from"./registry-BwcVQtsI.js";import"./skills-CZ7zEDmo.js";import"./frontmatter-BkZkwkVO.js";import{t as _}from"./plugins-1aNlpDX7.js";import"./logger-Bgqzq_Zu.js";import"./exec-BdtFni8N.js";import"./windows-spawn-B36IG4s2.js";import"./redact-DsC5EnL7.js";import"./path-alias-guards-mvyLCPlN.js";import"./errors-y2V0aFIS.js";import"./send-DyCUb7oW.js";import"./send-C6J_nLb9.js";import"./paths-yLEk_25I.js";import"./chat-envelope-HVpKusFc.js";import"./audio-transcription-runner-DsYKaMCI.js";import"./image-6t162ig6.js";import"./models-config-PU32mWpc.js";import"./tool-display-DBTvIf_I.js";import"./fetch-guard-11xgsj9-.js";import"./api-key-rotation-CayDxQxo.js";import"./local-roots-ClGHF49W.js";import"./model-catalog-CXx8LKWX.js";import"./proxy-fetch-Ci8QXzzm.js";import"./tokens-xmkeRJqo.js";import{P as v}from"./deliver-Dg2TVF1M.js";import"./commands-FDnZnqN5.js";import"./commands-registry-BEMFeaZR.js";import"./pairing-store-mQs2yMkt.js";import"./fetch-Dikjvc5M.js";import"./call-BQAAYLj3.js";import"./with-timeout-WveKxvFV.js";import"./diagnostic-kojLym9G.js";import"./send-aEwJo2mZ2.js";import"./pi-model-discovery-DMZplc-U.js";import"./exec-approvals-allowlist-Bh3Rw-aC.js";import"./exec-safe-bin-runtime-policy-BxN1_8e_.js";import"./ir-DcrzIcfF.js";import"./render-D8OWO2hT.js";import"./target-errors-B1wrjiTA.js";import"./read-only-account-inspect-DLD1Pk6l.js";import"./channel-selection-BuH6syM3.js";import"./plugin-auto-enable-DzUZAwai.js";import"./send-HOAYSr2i.js";import"./outbound-attachment-lrGTAaR-.js";import"./delivery-queue-CKbauSFq.js";import"./send-w-vabJ4U.js";import"./channel-activity-CBKv0fto.js";import"./tables-DwrGp-F-.js";import"./fetch-D4txy8qG.js";import"./skill-commands-BN3rmzgq.js";import"./workspace-dirs-BMGwwM6X.js";import"./pairing-token-BipkTRNW.js";import"./restart-Dal_HOce.js";import"./runtime-web-tools-BiMD0yHU.js";import{n as y,s as b}from"./command-secret-targets-CbrSGcvV.js";import"./session-cost-usage-BgqKixv0.js";import"./connection-auth-BCxq0f5b.js";import"./onboard-helpers-CKsetIvC.js";import"./prompt-style-DpAh867d.js";import"./pairing-labels-iZoSa-aT.js";import"./memory-cli-P0GDvKlz.js";import"./query-expansion-BNl6JMlz.js";import"./manager-DKyEk2dt.js";import{t as x}from"./links-jlebCPFf.js";import{n as S}from"./cli-utils-BY7dLMFy.js";import{t as C}from"./help-format-Cav62lfS.js";import{n as w}from"./progress-Cyn5U745.js";import"./exec-approvals-BpBNEy6i.js";import"./nodes-screen-B1Y6pbxs.js";import"./system-run-command-B212q8f9.js";import"./runtime-Dz2qgcJk.js";import"./stagger-DmFYysrJ.js";import{t as T}from"./helpers-Cp8gcO6u.js";import{t as E}from"./plugin-registry-Cb3qsabM.js";import{n as D,t as O}from"./table-CWiulZxe.js";import{t as k}from"./text-format-CvrvBBre.js";const A=e=>{let t=_(e)?.meta.label;if(t)return t;let n=g(e);return n?h(n).label:e};function j(e,t){if(!t)return`✅ Sent via ${A(e)}. Message ID: unknown`;let n=`✅ Sent via ${A(t.channel)}. Message ID: ${t.messageId}`;return`chatId`in t?`${n} (chat ${t.chatId})`:`channelId`in t?`${n} (channel ${t.channelId})`:`roomId`in t?`${n} (room ${t.roomId})`:`conversationId`in t?`${n} (conversation ${t.conversationId})`:n}function M(e){return`✅ ${e.action??`Sent`} via gateway${e.channel?` (${e.channel})`:``}. Message ID: ${e.messageId??`unknown`}`}const N=e=>_(e)?.meta.label??e;function P(e){if(!e||typeof e!=`object`)return null;let t=e.messageId;if(typeof t==`string`&&t.trim())return t.trim();let n=e.result;if(n&&typeof n==`object`){let e=n.messageId;if(typeof e==`string`&&e.trim())return e.trim()}return null}function F(e){return{action:e.action,channel:e.channel,dryRun:e.dryRun,handledBy:e.handledBy,payload:e.payload}}function I(t,n){if(!t||typeof t!=`object`)return[String(t)];let r=t,i=Object.keys(r);if(i.length===0)return[e.muted(`(empty)`)];let a=i.slice(0,20).map(e=>{let t=r[e];return{Key:e,Value:k(t==null?`null`:Array.isArray(t)?`${t.length} items`:typeof t==`object`?`object`:typeof t==`string`?t:typeof t==`number`?String(t):typeof t==`boolean`?t?`true`:`false`:typeof t==`bigint`||typeof t==`symbol`?t.toString():typeof t==`function`?`function`:`unknown`,96)}});return[D({width:n.width,columns:[{key:`Key`,header:`Key`,minWidth:16},{key:`Value`,header:`Value`,flex:!0,minWidth:24}],rows:a}).trimEnd()]}function L(t,n,r){let i=t.slice(0,25).map(e=>{let t=e,n=typeof t.id==`string`&&t.id||typeof t.ts==`string`&&t.ts||typeof t.messageId==`string`&&t.messageId||``,r=t.author,i=typeof t.authorTag==`string`&&t.authorTag||typeof r?.username==`string`&&r.username||typeof t.user==`string`&&t.user||``,a=typeof t.timestamp==`string`&&t.timestamp||typeof t.ts==`string`&&t.ts||``,o=typeof t.content==`string`&&t.content||typeof t.text==`string`&&t.text||``;return{Time:k(a,28),Author:k(i,22),Text:k(o.replace(/\s+/g,` `).trim(),90),Id:k(n,22)}});return i.length===0?[e.muted(r)]:[D({width:n.width,columns:[{key:`Time`,header:`Time`,minWidth:14},{key:`Author`,header:`Author`,minWidth:10},{key:`Text`,header:`Text`,flex:!0,minWidth:24},{key:`Id`,header:`Id`,minWidth:10}],rows:i}).trimEnd()]}function R(e,t){if(!e||typeof e!=`object`)return null;let n=e.messages;return Array.isArray(n)?L(n,t,`No messages.`):null}function z(e,t){if(!e||typeof e!=`object`)return null;let n=e.pins;return Array.isArray(n)?L(n,t,`No pins.`):null}function B(e){if(!e||typeof e!=`object`)return null;let t=e.messages;if(!Array.isArray(t))return null;let n=[];for(let e of t)Array.isArray(e)&&e.length>0?n.push(e[0]):e&&typeof e==`object`&&n.push(e);return n.length?n:null}function V(t,n){if(!t||typeof t!=`object`)return null;let r=t.reactions;if(!Array.isArray(r))return null;let i=r.slice(0,50).map(e=>{let t=e,n=t.emoji;return{Emoji:typeof n?.raw==`string`&&n.raw||typeof t.name==`string`&&t.name||typeof t.emoji==`string`&&t.emoji||``,Count:typeof t.count==`number`?String(t.count):``,Users:k((Array.isArray(t.users)?t.users.slice(0,8).map(e=>{if(typeof e==`string`)return e;if(!e||typeof e!=`object`)return``;let t=e;return typeof t.tag==`string`&&t.tag||typeof t.username==`string`&&t.username||typeof t.id==`string`&&t.id||``}).filter(Boolean):[]).join(`, `),72)}});return i.length===0?[e.muted(`No reactions.`)]:[D({width:n.width,columns:[{key:`Emoji`,header:`Emoji`,minWidth:8},{key:`Count`,header:`Count`,align:`right`,minWidth:6},{key:`Users`,header:`Users`,flex:!0,minWidth:20}],rows:i}).trimEnd()]}function H(n){let r=t(),i=t=>r?e.success(t):t,a=t=>r?e.muted(t):t,o=t=>r?e.heading(t):t,s={width:O()};if(n.handledBy===`dry-run`)return[a(`[dry-run] would run ${n.action} via ${n.channel}`)];if(n.kind===`broadcast`){let e=n.payload.results??[],t=e.map(e=>({Channel:N(e.channel),Target:k(d({channel:e.channel,target:e.to}),36),Status:e.ok?`ok`:`error`,Error:e.ok?``:k(e.error??`unknown error`,48)})),r=e.filter(e=>e.ok).length,a=e.length;return[i(`✅ Broadcast complete (${r}/${a} succeeded, ${a-r} failed)`),D({width:s.width,columns:[{key:`Channel`,header:`Channel`,minWidth:10},{key:`Target`,header:`Target`,minWidth:12,flex:!0},{key:`Status`,header:`Status`,minWidth:6},{key:`Error`,header:`Error`,minWidth:20,flex:!0}],rows:t.slice(0,50)}).trimEnd()]}if(n.kind===`send`){if(n.handledBy===`core`&&n.sendResult){let e=n.sendResult;if(e.via===`direct`){let t=e.result;return[i(j(e.channel,t))]}let t=e.result;return[i(M({channel:e.channel,messageId:t?.messageId??null}))]}let e=N(n.channel),t=P(n.payload);return[i(`✅ Sent via ${e}.${t?` Message ID: ${t}`:``}`)]}if(n.kind===`poll`){if(n.handledBy===`core`&&n.pollResult){let e=n.pollResult,t=e.result?.pollId,r=e.result?.messageId??null,a=[i(M({action:`Poll sent`,channel:e.channel,messageId:r}))];return t&&a.push(i(`Poll id: ${t}`)),a}let e=N(n.channel),t=P(n.payload);return[i(`✅ Poll sent via ${e}.${t?` Message ID: ${t}`:``}`)]}let c=n.payload,l=[];if(n.action===`react`){let e=c.added,t=c.removed;if(typeof e==`string`&&e.trim())return l.push(i(`✅ Reaction added: ${e.trim()}`)),l;if(typeof t==`string`&&t.trim())return l.push(i(`✅ Reaction removed: ${t.trim()}`)),l;if(Array.isArray(t)){let e=t.map(e=>String(e).trim()).filter(Boolean).join(`, `);return l.push(i(`✅ Reactions removed${e?`: ${e}`:``}`)),l}return l.push(i(`✅ Reaction updated.`)),l}let u=V(c,s);if(u&&n.action===`reactions`)return l.push(o(`Reactions`)),l.push(u[0]??``),l;if(n.action===`read`){let e=R(c,s);if(e)return l.push(o(`Messages`)),l.push(e[0]??``),l}if(n.action===`list-pins`){let e=z(c,s);if(e)return l.push(o(`Pinned messages`)),l.push(e[0]??``),l}if(n.action===`search`){let e=c.results,t=B(e);if(t)return l.push(o(`Search results`)),l.push(L(t,s,`No results.`)[0]??``),l}l.push(i(`✅ ${n.action} via ${N(n.channel)}.`));let f=I(c,s);return f.length&&(l.push(``),l.push(...f),l.push(``),l.push(a(`Tip: use --json for full output.`))),l}async function U(e,t,n){let{resolvedConfig:r,diagnostics:i}=await b({config:o(),commandName:`message`,targetIds:y()});for(let e of i)n.log(`[secrets] ${e}`);let l=(typeof e.action==`string`?e.action.trim():``)||`send`,d=c.find(e=>e.toLowerCase()===l.toLowerCase());if(!d)throw Error(`Unknown message action: ${l}`);let p=d,m=f(t),h=async()=>await u({cfg:r,action:p,params:e,deps:m,gateway:{clientName:a.CLI,mode:s.CLI}}),g=e.json===!0,_=e.dryRun===!0,v=!g&&!_&&(p===`send`||p===`poll`)?await w({label:p===`poll`?`Sending poll...`:`Sending...`,indeterminate:!0,enabled:!0},h):await h();if(g){n.log(JSON.stringify(F(v),null,2));return}for(let e of H(v))n.log(e)}function W(e){let{account:t,...n}=e;return{...n,accountId:typeof t==`string`?t:void 0}}async function G(){await v({event:{reason:`cli message action complete`},ctx:{},onError:e=>n.error(r(`gateway_stop hook failed: ${String(e)}`))})}function K(e,t){return{withMessageBase:e=>e.option(`--channel <channel>`,`Channel: ${t}`).option(`--account <id>`,`Channel account id (accountId)`).option(`--json`,`Output result as JSON`,!1).option(`--dry-run`,`Print payload and skip sending`,!1).option(`--verbose`,`Verbose logging`,!1),withMessageTarget:e=>e.option(`-t, --target <dest>`,p),withRequiredMessageTarget:e=>e.requiredOption(`-t, --target <dest>`,p),runMessageAction:async(e,t)=>{i(!!t.verbose),E();let a=l(),o=!1;await S(n,async()=>{await U({...W(t),action:e},a,n)},e=>{o=!0,n.error(r(String(e)))}),await G(),n.exit(o?1:0)}}}function q(e,t){t.withMessageBase(e.command(`broadcast`).description(`Broadcast a message to multiple targets`)).requiredOption(`--targets <target...>`,m).option(`--message <text>`,`Message to send`).option(`--media <url>`,`Media URL`).action(async e=>{await t.runMessageAction(`broadcast`,e)})}function J(e,t){let n=e.command(`role`).description(`Role actions`);t.withMessageBase(n.command(`info`).description(`List roles`).requiredOption(`--guild-id <id>`,`Guild id`)).action(async e=>{await t.runMessageAction(`role-info`,e)}),t.withMessageBase(n.command(`add`).description(`Add role to a member`).requiredOption(`--guild-id <id>`,`Guild id`).requiredOption(`--user-id <id>`,`User id`).requiredOption(`--role-id <id>`,`Role id`)).action(async e=>{await t.runMessageAction(`role-add`,e)}),t.withMessageBase(n.command(`remove`).description(`Remove role from a member`).requiredOption(`--guild-id <id>`,`Guild id`).requiredOption(`--user-id <id>`,`User id`).requiredOption(`--role-id <id>`,`Role id`)).action(async e=>{await t.runMessageAction(`role-remove`,e)});let r=e.command(`channel`).description(`Channel actions`);t.withMessageBase(t.withRequiredMessageTarget(r.command(`info`).description(`Fetch channel info`))).action(async e=>{await t.runMessageAction(`channel-info`,e)}),t.withMessageBase(r.command(`list`).description(`List channels`).requiredOption(`--guild-id <id>`,`Guild id`)).action(async e=>{await t.runMessageAction(`channel-list`,e)});let i=e.command(`member`).description(`Member actions`);t.withMessageBase(i.command(`info`).description(`Fetch member info`).requiredOption(`--user-id <id>`,`User id`)).option(`--guild-id <id>`,`Guild id (Discord)`).action(async e=>{await t.runMessageAction(`member-info`,e)});let a=e.command(`voice`).description(`Voice actions`);t.withMessageBase(a.command(`status`).description(`Fetch voice status`).requiredOption(`--guild-id <id>`,`Guild id`).requiredOption(`--user-id <id>`,`User id`)).action(async e=>{await t.runMessageAction(`voice-status`,e)});let o=e.command(`event`).description(`Event actions`);t.withMessageBase(o.command(`list`).description(`List scheduled events`).requiredOption(`--guild-id <id>`,`Guild id`)).action(async e=>{await t.runMessageAction(`event-list`,e)}),t.withMessageBase(o.command(`create`).description(`Create a scheduled event`).requiredOption(`--guild-id <id>`,`Guild id`).requiredOption(`--event-name <name>`,`Event name`).requiredOption(`--start-time <iso>`,`Event start time`)).option(`--end-time <iso>`,`Event end time`).option(`--desc <text>`,`Event description`).option(`--channel-id <id>`,`Channel id`).option(`--location <text>`,`Event location`).option(`--event-type <stage|external|voice>`,`Event type`).action(async e=>{await t.runMessageAction(`event-create`,e)}),t.withMessageBase(e.command(`timeout`).description(`Timeout a member`).requiredOption(`--guild-id <id>`,`Guild id`).requiredOption(`--user-id <id>`,`User id`)).option(`--duration-min <n>`,`Timeout duration minutes`).option(`--until <iso>`,`Timeout until`).option(`--reason <text>`,`Moderation reason`).action(async e=>{await t.runMessageAction(`timeout`,e)}),t.withMessageBase(e.command(`kick`).description(`Kick a member`).requiredOption(`--guild-id <id>`,`Guild id`).requiredOption(`--user-id <id>`,`User id`)).option(`--reason <text>`,`Moderation reason`).action(async e=>{await t.runMessageAction(`kick`,e)}),t.withMessageBase(e.command(`ban`).description(`Ban a member`).requiredOption(`--guild-id <id>`,`Guild id`).requiredOption(`--user-id <id>`,`User id`)).option(`--reason <text>`,`Moderation reason`).option(`--delete-days <n>`,`Ban delete message days`).action(async e=>{await t.runMessageAction(`ban`,e)})}function Y(e,t){let n=e.command(`emoji`).description(`Emoji actions`);t.withMessageBase(n.command(`list`).description(`List emojis`)).option(`--guild-id <id>`,`Guild id (Discord)`).action(async e=>{await t.runMessageAction(`emoji-list`,e)}),t.withMessageBase(n.command(`upload`).description(`Upload an emoji`).requiredOption(`--guild-id <id>`,`Guild id`)).requiredOption(`--emoji-name <name>`,`Emoji name`).requiredOption(`--media <path-or-url>`,`Emoji media (path or URL)`).option(`--role-ids <id>`,`Role id (repeat)`,T,[]).action(async e=>{await t.runMessageAction(`emoji-upload`,e)})}function X(e,t){let n=e.command(`sticker`).description(`Sticker actions`);t.withMessageBase(t.withRequiredMessageTarget(n.command(`send`).description(`Send stickers`))).requiredOption(`--sticker-id <id>`,`Sticker id (repeat)`,T).option(`-m, --message <text>`,`Optional message body`).action(async e=>{await t.runMessageAction(`sticker`,e)}),t.withMessageBase(n.command(`upload`).description(`Upload a sticker`).requiredOption(`--guild-id <id>`,`Guild id`)).requiredOption(`--sticker-name <name>`,`Sticker name`).requiredOption(`--sticker-desc <text>`,`Sticker description`).requiredOption(`--sticker-tags <tags>`,`Sticker tags`).requiredOption(`--media <path-or-url>`,`Sticker media (path or URL)`).action(async e=>{await t.runMessageAction(`sticker-upload`,e)})}function Z(e,t){t.withMessageBase(t.withRequiredMessageTarget(e.command(`permissions`).description(`Fetch channel permissions`))).action(async e=>{await t.runMessageAction(`permissions`,e)})}function Q(e,t){t.withMessageBase(e.command(`search`).description(`Search Discord messages`)).requiredOption(`--guild-id <id>`,`Guild id`).requiredOption(`--query <text>`,`Search query`).option(`--channel-id <id>`,`Channel id`).option(`--channel-ids <id>`,`Channel id (repeat)`,T,[]).option(`--author-id <id>`,`Author id`).option(`--author-ids <id>`,`Author id (repeat)`,T,[]).option(`--limit <n>`,`Result limit`).action(async e=>{await t.runMessageAction(`search`,e)})}function $(e,t){t.withMessageBase(t.withRequiredMessageTarget(e.command(`pin`).description(`Pin a message`))).requiredOption(`--message-id <id>`,`Message id`).action(async e=>{await t.runMessageAction(`pin`,e)}),t.withMessageBase(t.withRequiredMessageTarget(e.command(`unpin`).description(`Unpin a message`))).requiredOption(`--message-id <id>`,`Message id`).action(async e=>{await t.runMessageAction(`unpin`,e)}),t.withMessageBase(t.withRequiredMessageTarget(e.command(`pins`).description(`List pinned messages`))).option(`--limit <n>`,`Result limit`).action(async e=>{await t.runMessageAction(`list-pins`,e)})}function ee(e,t){t.withMessageBase(t.withRequiredMessageTarget(e.command(`poll`).description(`Send a poll`))).requiredOption(`--poll-question <text>`,`Poll question`).option(`--poll-option <choice>`,`Poll option (repeat 2-12 times)`,T,[]).option(`--poll-multi`,`Allow multiple selections`,!1).option(`--poll-duration-hours <n>`,`Poll duration in hours (Discord)`).option(`--poll-duration-seconds <n>`,`Poll duration in seconds (Telegram; 5-600)`).option(`--poll-anonymous`,`Send an anonymous poll (Telegram)`,!1).option(`--poll-public`,`Send a non-anonymous poll (Telegram)`,!1).option(`-m, --message <text>`,`Optional message body`).option(`--silent`,`Send poll silently without notification (Telegram + Discord where supported)`,!1).option(`--thread-id <id>`,`Thread id (Telegram forum topic / Slack thread ts)`).action(async e=>{await t.runMessageAction(`poll`,e)})}function te(e,t){t.withMessageBase(t.withRequiredMessageTarget(e.command(`react`).description(`Add or remove a reaction`))).requiredOption(`--message-id <id>`,`Message id`).option(`--emoji <emoji>`,`Emoji for reactions`).option(`--remove`,`Remove reaction`,!1).option(`--participant <id>`,`WhatsApp reaction participant`).option(`--from-me`,`WhatsApp reaction fromMe`,!1).option(`--target-author <id>`,`Signal reaction target author (uuid or phone)`).option(`--target-author-uuid <uuid>`,`Signal reaction target author uuid`).action(async e=>{await t.runMessageAction(`react`,e)}),t.withMessageBase(t.withRequiredMessageTarget(e.command(`reactions`).description(`List reactions on a message`))).requiredOption(`--message-id <id>`,`Message id`).option(`--limit <n>`,`Result limit`).action(async e=>{await t.runMessageAction(`reactions`,e)})}function ne(e,t){t.withMessageBase(t.withRequiredMessageTarget(e.command(`read`).description(`Read recent messages`))).option(`--limit <n>`,`Result limit`).option(`--before <id>`,`Read/search before id`).option(`--after <id>`,`Read/search after id`).option(`--around <id>`,`Read around id`).option(`--include-thread`,`Include thread replies (Discord)`,!1).action(async e=>{await t.runMessageAction(`read`,e)}),t.withMessageBase(t.withRequiredMessageTarget(e.command(`edit`).description(`Edit a message`).requiredOption(`--message-id <id>`,`Message id`).requiredOption(`-m, --message <text>`,`Message body`))).option(`--thread-id <id>`,`Thread id (Telegram forum thread)`).action(async e=>{await t.runMessageAction(`edit`,e)}),t.withMessageBase(t.withRequiredMessageTarget(e.command(`delete`).description(`Delete a message`).requiredOption(`--message-id <id>`,`Message id`))).action(async e=>{await t.runMessageAction(`delete`,e)})}function re(e,t){t.withMessageBase(t.withRequiredMessageTarget(e.command(`send`).description(`Send a message`).option(`-m, --message <text>`,`Message body (required unless --media is set)`)).option(`--media <path-or-url>`,`Attach media (image/audio/video/document). Accepts local paths or URLs.`).option(`--buttons <json>`,`Telegram inline keyboard buttons as JSON (array of button rows)`).option(`--components <json>`,`Discord components payload as JSON`).option(`--card <json>`,`Adaptive Card JSON object (when supported by the channel)`).option(`--reply-to <id>`,`Reply-to message id`).option(`--thread-id <id>`,`Thread id (Telegram forum thread)`).option(`--gif-playback`,`Treat video media as GIF playback (WhatsApp only).`,!1).option(`--silent`,`Send message silently without notification (Telegram + Discord)`,!1)).action(async e=>{await t.runMessageAction(`send`,e)})}function ie(e,t){let n=e.command(`thread`).description(`Thread actions`);t.withMessageBase(t.withRequiredMessageTarget(n.command(`create`).description(`Create a thread`).requiredOption(`--thread-name <name>`,`Thread name`))).option(`--message-id <id>`,`Message id (optional)`).option(`-m, --message <text>`,`Initial thread message text`).option(`--auto-archive-min <n>`,`Thread auto-archive minutes`).action(async e=>{await t.runMessageAction(`thread-create`,e)}),t.withMessageBase(n.command(`list`).description(`List threads`).requiredOption(`--guild-id <id>`,`Guild id`)).option(`--channel-id <id>`,`Channel id`).option(`--include-archived`,`Include archived threads`,!1).option(`--before <id>`,`Read/search before id`).option(`--limit <n>`,`Result limit`).action(async e=>{await t.runMessageAction(`thread-list`,e)}),t.withMessageBase(t.withRequiredMessageTarget(n.command(`reply`).description(`Reply in a thread`).requiredOption(`-m, --message <text>`,`Message body`))).option(`--media <path-or-url>`,`Attach media (image/audio/video/document). Accepts local paths or URLs.`).option(`--reply-to <id>`,`Reply-to message id`).action(async e=>{await t.runMessageAction(`thread-reply`,e)})}function ae(t,n){let r=t.command(`message`).description(`Send, read, and manage messages and channel actions`).addHelpText(`after`,()=>`
|
|
2
2
|
${e.heading(`Examples:`)}
|
|
3
3
|
${C([[`openclaw message send --target +15555550123 --message "Hi"`,`Send a text message.`],[`openclaw message send --target +15555550123 --message "Hi" --media photo.jpg`,`Send a message with media.`],[`openclaw message poll --channel discord --target channel:123 --poll-question "Snack?" --poll-option Pizza --poll-option Sushi`,`Create a Discord poll.`],[`openclaw message react --channel discord --target 123 --message-id 456 --emoji "✅"`,`React to a message.`]])}
|
|
4
4
|
|