@qqbrowser/openclaw-qbot 0.0.142 → 0.0.144

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.
Files changed (257) hide show
  1. package/dist/{agents-Bpp_F5In.js → agents-D3Z05GqK.js} +2 -2
  2. package/dist/{agents.config-DfIJAGcd.js → agents.config-BUQjISaN.js} +2 -2
  3. package/dist/{agents.config-B6LRG9eP.js → agents.config-BvxrGqOT.js} +2 -2
  4. package/dist/{auth-choice-DvTApGhx.js → auth-choice-CYGzLW73.js} +2 -2
  5. package/dist/{auth-choice-EQdNd7jO.js → auth-choice-DJn6683d.js} +2 -2
  6. package/dist/{banner-9u45RL26.js → banner-xQa2kS6O.js} +2 -2
  7. package/dist/build-info.json +3 -3
  8. package/dist/bundled/boot-md/handler.js +1 -1
  9. package/dist/bundled/session-memory/handler.js +1 -1
  10. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  11. package/dist/{channel-options-D2syI791.js → channel-options-BurUBfoY.js} +2 -2
  12. package/dist/{channel-options-CEIzjOno.js → channel-options-Ce8uNnAp.js} +2 -2
  13. package/dist/{channel-web-BrElpZAc.js → channel-web-D5TgFlMz.js} +2 -2
  14. package/dist/{channel-web-CxHbET4B.js → channel-web-D7FkrASC.js} +2 -2
  15. package/dist/{channels-cli-BmAJuuRs.js → channels-cli-BfzZrnkt.js} +2 -2
  16. package/dist/{channels-cli-Dgosczr6.js → channels-cli-DFI6F6G0.js} +2 -2
  17. package/dist/{cli-D8T2tphD.js → cli-CMLvfh6N.js} +2 -2
  18. package/dist/{cli-BcnoCo4z.js → cli-MTpYYgjl.js} +2 -2
  19. package/dist/{command-registry-CfuXCRwV.js → command-registry-CSBvrqwW.js} +2 -2
  20. package/dist/{compact-Dg66DXx_.js → compact-BEeB6bwq.js} +7 -7
  21. package/dist/{compact.runtime-3mTLUPqu.js → compact.runtime-BC7F7HPJ.js} +1 -1
  22. package/dist/{compact.runtime-DcTdUW4o.js → compact.runtime-BTUQRS-2.js} +1 -1
  23. package/dist/{compact.runtime-Bhewj5vA.js → compact.runtime-C0GyLWem.js} +1 -1
  24. package/dist/{compact.runtime-XXtYlNJN.js → compact.runtime-CrOFsO5D.js} +1 -1
  25. package/dist/{completion-cli-BZi4nuQb.js → completion-cli-Bizog38J.js} +2 -2
  26. package/dist/{completion-cli-C40TWdsv.js → completion-cli-W1_FoDFF.js} +2 -2
  27. package/dist/{config-cli-CBte2b1h.js → config-cli-B9hEiZsw.js} +2 -2
  28. package/dist/{config-cli-1ojSLwAj.js → config-cli-BNTGUqL_.js} +2 -2
  29. package/dist/{configure-kod4tmZa.js → configure-DForkh7R.js} +2 -2
  30. package/dist/{configure-DJrNDEpR.js → configure-DR77VUCy.js} +2 -2
  31. package/dist/{deps-send-whatsapp.runtime-C4O9crnk.js → deps-send-whatsapp.runtime-BuIiTn5n.js} +1 -1
  32. package/dist/{deps-send-whatsapp.runtime-5Lot99zq.js → deps-send-whatsapp.runtime-C4hGmfeP.js} +1 -1
  33. package/dist/{deps-send-whatsapp.runtime-LiNvHd_E.js → deps-send-whatsapp.runtime-CYlLppMS.js} +1 -1
  34. package/dist/{deps-send-whatsapp.runtime-Bg-_kVX6.js → deps-send-whatsapp.runtime-FY-HuZ5S.js} +1 -1
  35. package/dist/{doctor-completion-BJ6steqx.js → doctor-completion-Da0cocZX.js} +2 -2
  36. package/dist/{doctor-completion-DMJhfrtC.js → doctor-completion-DpCWb88H.js} +2 -2
  37. package/dist/entry.js +1 -1
  38. package/dist/extensionAPI.js +1 -1
  39. package/dist/{gateway-cli-CKu0FA7D.js → gateway-cli-C4YOlz3m.js} +6 -6
  40. package/dist/{gateway-cli-C_s9eMlC.js → gateway-cli-D78GfbjG.js} +6 -6
  41. package/dist/{health-PaRHFItm.js → health-DBu0V1Y-.js} +2 -2
  42. package/dist/{health-BgOggK9k.js → health-RQzDNQwf.js} +2 -2
  43. package/dist/{hooks-cli-CsBrScq0.js → hooks-cli-B3eDoEHO.js} +2 -2
  44. package/dist/{hooks-cli-BzyzTNBx.js → hooks-cli-xgORhqZ2.js} +2 -2
  45. package/dist/index.js +2 -2
  46. package/dist/llm-slug-generator.js +1 -1
  47. package/dist/{models-C_Vg3Cty.js → models-BEO5lvkx.js} +2 -2
  48. package/dist/{models-cli-CDZliTXq.js → models-cli-BbcJ6A0F.js} +2 -2
  49. package/dist/{models-cli-bGr8jwAb.js → models-cli-Dacwv6BY.js} +2 -2
  50. package/dist/{npm-resolution-DWPloph4.js → npm-resolution-Bui58Ks1.js} +2 -2
  51. package/dist/{npm-resolution-BnJGLwhi.js → npm-resolution-Ct6MRtq6.js} +2 -2
  52. package/dist/{onboard-B0BNCQaO.js → onboard-2iF3lTUI.js} +3 -3
  53. package/dist/{onboard-CjVhdaiR.js → onboard-B9ouFJC7.js} +3 -3
  54. package/dist/{onboard-channels-CZK_7xMR.js → onboard-channels-BXReNh4B.js} +2 -2
  55. package/dist/{onboard-channels-BMIOddLN.js → onboard-channels-CjXCpXI-.js} +2 -2
  56. package/dist/{onboarding-B6ixWwgp.js → onboarding-BTBbx6Ka.js} +2 -2
  57. package/dist/{onboarding-ouEqUuUr.js → onboarding-TkoOoq9D.js} +2 -2
  58. package/dist/{onboarding.finalize-Bgat5Npc.js → onboarding.finalize-C9QGFQpa.js} +2 -2
  59. package/dist/{onboarding.finalize-DsMVlTcH.js → onboarding.finalize-CwjLMPKK.js} +2 -2
  60. package/dist/{pi-embedded-BZSn84Bh.js → pi-embedded-B_6OtP8m.js} +7 -7
  61. package/dist/{pi-embedded-Dsz7p3MF.js → pi-embedded-DjX-gdoY.js} +7 -7
  62. package/dist/{plugin-registry-CIBiHZH1.js → plugin-registry-CI5K3iWc.js} +2 -2
  63. package/dist/{plugin-registry-C6dY-Et7.js → plugin-registry-CYlBYbc8.js} +2 -2
  64. package/dist/plugin-sdk/{channel-web-9zn1Itpg.cjs → channel-web-BSUPSLCU.cjs} +2 -2
  65. package/dist/plugin-sdk/{channel-web-4ZQVqsrt.js → channel-web-CeSPyNTh.js} +2 -2
  66. package/dist/plugin-sdk/{channel-web-BrB00HKH.js → channel-web-Cptth4mc.js} +2 -2
  67. package/dist/plugin-sdk/{channel-web-DN5La-Ol.cjs → channel-web-D4x22KPN.cjs} +2 -2
  68. package/dist/plugin-sdk/{compact.runtime-8oUv1ld1.cjs → compact.runtime-BDgWntMu.cjs} +1 -1
  69. package/dist/plugin-sdk/{compact.runtime-CmJayEYX.js → compact.runtime-BJFMaTF4.js} +1 -1
  70. package/dist/plugin-sdk/{compact.runtime-BjJCBESR.cjs → compact.runtime-BWadwUyE.cjs} +1 -1
  71. package/dist/plugin-sdk/{compact.runtime-ALKRoVEG.js → compact.runtime-Bfu2rMai.js} +1 -1
  72. package/dist/plugin-sdk/{compact.runtime-DBlESOSV.cjs → compact.runtime-Cg47oUHq.cjs} +1 -1
  73. package/dist/plugin-sdk/{compact.runtime-Dmc0G6Yn.js → compact.runtime-CqK86P7R.js} +1 -1
  74. package/dist/plugin-sdk/{compact.runtime-Chumwp0K.cjs → compact.runtime-CqrB25-A.cjs} +1 -1
  75. package/dist/plugin-sdk/{compact.runtime-Ddfxp3fz.js → compact.runtime-DeATtENL.js} +1 -1
  76. package/dist/plugin-sdk/{compact.runtime-C_dc78Lp.cjs → compact.runtime-GMu30Jmw.cjs} +1 -1
  77. package/dist/plugin-sdk/{compact.runtime-ZrApPcrV.js → compact.runtime-YFzugj-k.js} +1 -1
  78. package/dist/plugin-sdk/{compact.runtime-BF4SCZ-5.js → compact.runtime-a8Z4_6wu.js} +1 -1
  79. package/dist/plugin-sdk/{compact.runtime-CbzQiVEW.cjs → compact.runtime-jGNfnpo2.cjs} +1 -1
  80. package/dist/plugin-sdk/compat.cjs +1 -1
  81. package/dist/plugin-sdk/compat.js +1 -1
  82. package/dist/plugin-sdk/{deps-send-whatsapp.runtime-BEDFRjff.js → deps-send-whatsapp.runtime-23E2Ab5R.js} +1 -1
  83. package/dist/plugin-sdk/{deps-send-whatsapp.runtime-QY0XTSgX.cjs → deps-send-whatsapp.runtime-B1oA3XBA.cjs} +1 -1
  84. package/dist/plugin-sdk/{deps-send-whatsapp.runtime-Du_3Rw7K.cjs → deps-send-whatsapp.runtime-C8q_3sOf.cjs} +1 -1
  85. package/dist/plugin-sdk/{deps-send-whatsapp.runtime-DMeaTnvE.cjs → deps-send-whatsapp.runtime-CsebM75z.cjs} +1 -1
  86. package/dist/plugin-sdk/{deps-send-whatsapp.runtime-CrVVnzLl.js → deps-send-whatsapp.runtime-D3mYdwaT.js} +1 -1
  87. package/dist/plugin-sdk/{deps-send-whatsapp.runtime-DR4rvUQL.js → deps-send-whatsapp.runtime-DDwUEbJ8.js} +1 -1
  88. package/dist/plugin-sdk/{deps-send-whatsapp.runtime-BULlOkpi.cjs → deps-send-whatsapp.runtime-Di3p_3Eh.cjs} +1 -1
  89. package/dist/plugin-sdk/{deps-send-whatsapp.runtime--uXLMs1C.js → deps-send-whatsapp.runtime-JzRD4jTI.js} +1 -1
  90. package/dist/plugin-sdk/{deps-send-whatsapp.runtime-BRjb9631.cjs → deps-send-whatsapp.runtime-gEp895yA.cjs} +1 -1
  91. package/dist/plugin-sdk/{deps-send-whatsapp.runtime-VQXeRmRl.js → deps-send-whatsapp.runtime-iV5E6CHf.js} +1 -1
  92. package/dist/plugin-sdk/{deps-send-whatsapp.runtime-2Us9O7dL.cjs → deps-send-whatsapp.runtime-k0yGrhs2.cjs} +1 -1
  93. package/dist/plugin-sdk/{deps-send-whatsapp.runtime-BfV5Q2fx.js → deps-send-whatsapp.runtime-v3sqBoDg.js} +1 -1
  94. package/dist/plugin-sdk/{dispatch-C2YTqGlf.js → dispatch-3PrSaGZi.js} +7 -7
  95. package/dist/plugin-sdk/{dispatch-DHbSBeFJ.js → dispatch-Bcf1uPHo.js} +7 -7
  96. package/dist/plugin-sdk/{dispatch-SWyfAZT0.cjs → dispatch-BgGE9usQ.cjs} +7 -7
  97. package/dist/plugin-sdk/{dispatch-BYlcmJ9u.js → dispatch-BhUN9ZDP.js} +7 -7
  98. package/dist/plugin-sdk/{dispatch-DK5ub8qa.cjs → dispatch-C3k8j6Zb.cjs} +7 -7
  99. package/dist/plugin-sdk/{dispatch-DCSwqteL.js → dispatch-C_gJPvbD.js} +7 -7
  100. package/dist/plugin-sdk/{dispatch-5v3v8zzA.js → dispatch-Df8B7owq.js} +7 -7
  101. package/dist/plugin-sdk/{dispatch-CNy3g9ma.cjs → dispatch-YK0qHNtb.cjs} +7 -7
  102. package/dist/plugin-sdk/{dispatch-B6UbZCpL.cjs → dispatch-_fZDA253.cjs} +7 -7
  103. package/dist/plugin-sdk/{dispatch-mR2vLkGa.cjs → dispatch-wEH2eS4y.cjs} +7 -7
  104. package/dist/plugin-sdk/index.cjs +1 -1
  105. package/dist/plugin-sdk/index.js +1 -1
  106. package/dist/plugin-sdk/irc.cjs +1 -1
  107. package/dist/plugin-sdk/irc.js +1 -1
  108. package/dist/plugin-sdk/matrix.cjs +1 -1
  109. package/dist/plugin-sdk/matrix.js +1 -1
  110. package/dist/plugin-sdk/msteams.cjs +1 -1
  111. package/dist/plugin-sdk/msteams.js +1 -1
  112. package/dist/plugin-sdk/nextcloud-talk.cjs +1 -1
  113. package/dist/plugin-sdk/nextcloud-talk.js +1 -1
  114. package/dist/plugin-sdk/{reply-0zCEbT4w.cjs → reply-BoWg-IXT.cjs} +7 -7
  115. package/dist/plugin-sdk/{reply-D-f2bbXy.js → reply-bS9U9BwG.js} +7 -7
  116. package/dist/plugin-sdk/{slash-dispatch.runtime-CNhhOTEP.js → slash-dispatch.runtime-4y3z-kPo.js} +1 -1
  117. package/dist/plugin-sdk/{slash-dispatch.runtime-B3b2L4iH.js → slash-dispatch.runtime-BRr9YGOs.js} +1 -1
  118. package/dist/plugin-sdk/{slash-dispatch.runtime-CPPp4KKH.cjs → slash-dispatch.runtime-BtdMVJQe.cjs} +1 -1
  119. package/dist/plugin-sdk/{slash-dispatch.runtime-Dw9M-fvv.js → slash-dispatch.runtime-C6iak1_0.js} +1 -1
  120. package/dist/plugin-sdk/{slash-dispatch.runtime-BoTYqNiv.js → slash-dispatch.runtime-CMx727dE.js} +1 -1
  121. package/dist/plugin-sdk/{slash-dispatch.runtime-CaWoVNJu.cjs → slash-dispatch.runtime-CXXaAMYa.cjs} +1 -1
  122. package/dist/plugin-sdk/{slash-dispatch.runtime-DbheDKxM.cjs → slash-dispatch.runtime-Cvom2Onl.cjs} +1 -1
  123. package/dist/plugin-sdk/{slash-dispatch.runtime-DpBWBF7J.js → slash-dispatch.runtime-D00kIROj.js} +1 -1
  124. package/dist/plugin-sdk/{slash-dispatch.runtime-DSQ2U0MM.cjs → slash-dispatch.runtime-DEu-D4XB.cjs} +1 -1
  125. package/dist/plugin-sdk/{slash-dispatch.runtime-Bu6Gwr3m.cjs → slash-dispatch.runtime-DG7_jQXD.cjs} +1 -1
  126. package/dist/plugin-sdk/{slash-dispatch.runtime-CCEMBSm2.cjs → slash-dispatch.runtime-DVP1q-_z.cjs} +1 -1
  127. package/dist/plugin-sdk/{slash-dispatch.runtime-Dm_cVnlq.js → slash-dispatch.runtime-U6qjtCfd.js} +1 -1
  128. package/dist/plugin-sdk/{subagent-registry-runtime-bVH8kl6Y.js → subagent-registry-runtime-BD_DkCmR.js} +1 -1
  129. package/dist/plugin-sdk/{subagent-registry-runtime-Der4fbZK.cjs → subagent-registry-runtime-BWiMCyG_.cjs} +1 -1
  130. package/dist/plugin-sdk/{subagent-registry-runtime-Pp_rfnk0.js → subagent-registry-runtime-C6vGkwe9.js} +1 -1
  131. package/dist/plugin-sdk/{subagent-registry-runtime-B0cZ_eaC.cjs → subagent-registry-runtime-CCcI3vhb.cjs} +1 -1
  132. package/dist/plugin-sdk/{subagent-registry-runtime-B-P4w-z9.js → subagent-registry-runtime-CDCU--WW.js} +1 -1
  133. package/dist/plugin-sdk/{subagent-registry-runtime-Ciev9m2W.cjs → subagent-registry-runtime-D98xiwmA.cjs} +1 -1
  134. package/dist/plugin-sdk/{subagent-registry-runtime-DBPvxiJW.cjs → subagent-registry-runtime-LebBdxD7.cjs} +1 -1
  135. package/dist/plugin-sdk/{subagent-registry-runtime-BfmeSbXD.cjs → subagent-registry-runtime-MfHdezNY.cjs} +1 -1
  136. package/dist/plugin-sdk/{subagent-registry-runtime-CL0sdx5J.cjs → subagent-registry-runtime-bMabqk9V.cjs} +1 -1
  137. package/dist/plugin-sdk/{subagent-registry-runtime-DH_Jx5hU.js → subagent-registry-runtime-h3qrqiJH.js} +1 -1
  138. package/dist/plugin-sdk/{subagent-registry-runtime-CEvE9keW.js → subagent-registry-runtime-tmI7JUke.js} +1 -1
  139. package/dist/plugin-sdk/{subagent-registry-runtime-Du8BhjzJ.js → subagent-registry-runtime-uC8wbfNS.js} +1 -1
  140. package/dist/plugin-sdk/{web-BdnQzLgF.js → web-9Os8v8Cu.js} +2 -2
  141. package/dist/plugin-sdk/{web-pcTha_l7.cjs → web-BQ9hOKe8.cjs} +2 -2
  142. package/dist/plugin-sdk/{web-C9T7tf6w.js → web-Bjk0MWu3.js} +2 -2
  143. package/dist/plugin-sdk/{web-_tj8xNZE.js → web-BsmnVZaX.js} +2 -2
  144. package/dist/plugin-sdk/{web-B2PwjHsu.cjs → web-CUbdclQS.cjs} +2 -2
  145. package/dist/plugin-sdk/{web-CcYBsmAj.cjs → web-C_Vx3mgY.cjs} +1 -1
  146. package/dist/plugin-sdk/{web-BZoOYDwf.js → web-Cdo1e0C7.js} +1 -1
  147. package/dist/plugin-sdk/{web-CODD4ksc.cjs → web-CfTkaUMk.cjs} +2 -2
  148. package/dist/plugin-sdk/{web-24o5tNe3.js → web-DkmdYSZ8.js} +1 -1
  149. package/dist/plugin-sdk/{web-B-QDcVRv.cjs → web-DpGXJ6SQ.cjs} +2 -2
  150. package/dist/plugin-sdk/{web-Czl9vNVv.cjs → web-DuF9udb6.cjs} +1 -1
  151. package/dist/plugin-sdk/{web-CkdCvvR-.js → web-Jr2J55LO.js} +2 -2
  152. package/dist/plugin-sdk/whatsapp.cjs +1 -1
  153. package/dist/plugin-sdk/whatsapp.js +1 -1
  154. package/dist/{plugins-cli-BiVMAr5T.js → plugins-cli-BzJeq-CW.js} +2 -2
  155. package/dist/{plugins-cli-BbjMbzJU.js → plugins-cli-o74CJV4A.js} +2 -2
  156. package/dist/{program-BrAZTwFr.js → program-CCS3CIqA.js} +3 -3
  157. package/dist/{program-context-B9ydtPje.js → program-context-lyPXjPfN.js} +2 -2
  158. package/dist/{prompt-select-styled-DIOWLjl0.js → prompt-select-styled-DmTwJKOO.js} +2 -2
  159. package/dist/{prompt-select-styled-BeJNbzSa.js → prompt-select-styled-Z30OVmpM.js} +2 -2
  160. package/dist/{provider-auth-helpers-pBVCjBj9.js → provider-auth-helpers-BzlcSA6U.js} +2 -2
  161. package/dist/{provider-auth-helpers-1lU43eTW.js → provider-auth-helpers-CDIiLD1m.js} +2 -2
  162. package/dist/{push-apns-BGUOmD5M.js → push-apns-CrAWstBo.js} +2 -2
  163. package/dist/{push-apns-B_a2MBJ4.js → push-apns-CrMV74Qs.js} +2 -2
  164. package/dist/{register.agent-CX78s_X9.js → register.agent-CisptTv_.js} +2 -2
  165. package/dist/{register.agent-DLDKQENq.js → register.agent-Dl2Ef-K5.js} +2 -2
  166. package/dist/{register.configure-BA5u9hT3.js → register.configure-CvPihXst.js} +2 -2
  167. package/dist/{register.configure-BhPtf3Qo.js → register.configure-D8bJJ16k.js} +2 -2
  168. package/dist/{register.maintenance-r_MzNK3-.js → register.maintenance-COWBeetm.js} +2 -2
  169. package/dist/{register.maintenance-BhsBepKS.js → register.maintenance-vhmmqtIi.js} +2 -2
  170. package/dist/{register.message-CTF--Z2a.js → register.message-3zVHQZ27.js} +2 -2
  171. package/dist/{register.message-jcZ875be.js → register.message-CM_Qudzn.js} +2 -2
  172. package/dist/{register.onboard-CNwnStUk.js → register.onboard-CJZKG0PP.js} +2 -2
  173. package/dist/{register.onboard-C3yL50_c.js → register.onboard-CaFl_mB1.js} +2 -2
  174. package/dist/{register.setup-BRJMzgfU.js → register.setup-CSW03BKj.js} +2 -2
  175. package/dist/{register.setup-BvsS-zgm.js → register.setup-DDkBFyvF.js} +2 -2
  176. package/dist/{register.status-health-sessions-Dqmkw820.js → register.status-health-sessions-BXiMraHZ.js} +2 -2
  177. package/dist/{register.status-health-sessions-DVc__2pc.js → register.status-health-sessions-Bo9VWxLG.js} +2 -2
  178. package/dist/{register.subclis-D-24j83X.js → register.subclis-B_0ZS-_K.js} +2 -2
  179. package/dist/{reply-l-Y47HP4.js → reply-CjyZeZ-j.js} +7 -7
  180. package/dist/{run-main-B_YBE_TN.js → run-main-CV49c7uu.js} +2 -2
  181. package/dist/{server-node-events-CFSY_-4t.js → server-node-events-BWiQg1NL.js} +2 -2
  182. package/dist/{server-node-events-ZFwmPwQ-.js → server-node-events-DicMyck-.js} +2 -2
  183. package/dist/{slash-dispatch.runtime-pdAIQrzR.js → slash-dispatch.runtime-CGgP5dBX.js} +1 -1
  184. package/dist/{slash-dispatch.runtime-CKWXmLO1.js → slash-dispatch.runtime-CknX8Fkv.js} +1 -1
  185. package/dist/{slash-dispatch.runtime-DIR5H2MY.js → slash-dispatch.runtime-CoKGpcpS.js} +1 -1
  186. package/dist/{slash-dispatch.runtime-14ABU-DD.js → slash-dispatch.runtime-pSpPe8qL.js} +1 -1
  187. package/dist/{status-DYqPF0rB.js → status-BoL8-JxA.js} +2 -2
  188. package/dist/{status-JIPeVrsc.js → status-DEAX-TLb.js} +2 -2
  189. package/dist/{subagent-registry-runtime-rPbwTnju.js → subagent-registry-runtime-2Nh6-7ym.js} +1 -1
  190. package/dist/{subagent-registry-runtime-DTVXQJOP.js → subagent-registry-runtime-CG_2Atu3.js} +1 -1
  191. package/dist/{subagent-registry-runtime-Cj4CKKl_.js → subagent-registry-runtime-Cc264UfD.js} +1 -1
  192. package/dist/{subagent-registry-runtime-8_ktZPZB.js → subagent-registry-runtime-CpYm78z3.js} +1 -1
  193. package/dist/{update-cli-YrBbmw4f.js → update-cli--P65ciut.js} +2 -2
  194. package/dist/{update-cli-BwBMOeP0.js → update-cli-Ibrshx_w.js} +2 -2
  195. package/dist/{update-runner-BvtyRBD2.js → update-runner-CvWH2ZAc.js} +2 -2
  196. package/dist/{update-runner-DYamgo1V.js → update-runner-mMbwEOlU.js} +2 -2
  197. package/dist/{web-DwcxsgH0.js → web-ARUUCMQo.js} +2 -2
  198. package/dist/{web-C15yQ-wI.js → web-C6jRFeYp.js} +1 -1
  199. package/dist/{web-C6So15hm.js → web-CDXYiCsB.js} +1 -1
  200. package/dist/{web-Cq3xWCaD.js → web-CiagxaWr.js} +2 -2
  201. package/node_modules/@aws-sdk/client-bedrock-runtime/package.json +42 -42
  202. package/node_modules/@aws-sdk/core/dist-cjs/index.js +17 -0
  203. package/node_modules/@aws-sdk/core/dist-cjs/submodules/client/index.js +17 -0
  204. package/node_modules/@aws-sdk/core/dist-es/submodules/client/index.js +1 -0
  205. package/node_modules/@aws-sdk/core/dist-es/submodules/client/longPollMiddleware.js +15 -0
  206. package/node_modules/@aws-sdk/core/package.json +11 -11
  207. package/node_modules/@aws-sdk/credential-provider-env/package.json +5 -5
  208. package/node_modules/@aws-sdk/credential-provider-http/package.json +10 -10
  209. package/node_modules/@aws-sdk/credential-provider-ini/package.json +14 -14
  210. package/node_modules/@aws-sdk/credential-provider-login/package.json +8 -8
  211. package/node_modules/@aws-sdk/credential-provider-node/package.json +12 -12
  212. package/node_modules/@aws-sdk/credential-provider-process/package.json +6 -6
  213. package/node_modules/@aws-sdk/credential-provider-sso/package.json +8 -8
  214. package/node_modules/@aws-sdk/credential-provider-web-identity/package.json +7 -7
  215. package/node_modules/@aws-sdk/eventstream-handler-node/package.json +4 -4
  216. package/node_modules/@aws-sdk/middleware-eventstream/package.json +4 -4
  217. package/node_modules/@aws-sdk/middleware-host-header/package.json +4 -4
  218. package/node_modules/@aws-sdk/middleware-logger/package.json +3 -3
  219. package/node_modules/@aws-sdk/middleware-recursion-detection/package.json +4 -4
  220. package/node_modules/@aws-sdk/middleware-user-agent/package.json +8 -8
  221. package/node_modules/@aws-sdk/middleware-websocket/package.json +9 -9
  222. package/node_modules/@aws-sdk/nested-clients/package.json +32 -32
  223. package/node_modules/@aws-sdk/region-config-resolver/package.json +5 -5
  224. package/node_modules/@aws-sdk/token-providers/package.json +7 -7
  225. package/node_modules/@aws-sdk/types/package.json +2 -2
  226. package/node_modules/@aws-sdk/util-endpoints/package.json +5 -5
  227. package/node_modules/@aws-sdk/util-format-url/package.json +4 -4
  228. package/node_modules/@aws-sdk/util-user-agent-browser/package.json +3 -3
  229. package/node_modules/@aws-sdk/util-user-agent-node/package.json +5 -5
  230. package/node_modules/@aws-sdk/xml-builder/package.json +2 -2
  231. package/node_modules/@whiskeysockets/baileys/node_modules/p-queue/dist/index.js +1 -0
  232. package/node_modules/@whiskeysockets/baileys/node_modules/p-queue/package.json +1 -1
  233. package/node_modules/content-disposition/index.js +118 -40
  234. package/node_modules/content-disposition/package.json +8 -11
  235. package/node_modules/path-expression-matcher/lib/pem.cjs +1 -1
  236. package/node_modules/path-expression-matcher/lib/pem.d.cts +18 -0
  237. package/node_modules/path-expression-matcher/lib/pem.min.js +1 -1
  238. package/node_modules/path-expression-matcher/package.json +1 -1
  239. package/node_modules/path-expression-matcher/src/Expression.js +2 -2
  240. package/node_modules/path-expression-matcher/src/ExpressionSet.js +24 -4
  241. package/package.json +1 -1
  242. package/preset-config.json +1 -1
  243. package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/LICENSE +0 -201
  244. package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/README.md +0 -62
  245. package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/dist-cjs/index.js +0 -157
  246. package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/dist-es/constants.js +0 -2
  247. package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/dist-es/fromEnvSigningName.js +0 -16
  248. package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/dist-es/fromSso.js +0 -81
  249. package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/dist-es/fromStatic.js +0 -8
  250. package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/dist-es/getNewSsoOidcToken.js +0 -11
  251. package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/dist-es/getSsoOidcClient.js +0 -10
  252. package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/dist-es/index.js +0 -4
  253. package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/dist-es/nodeProvider.js +0 -5
  254. package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/dist-es/validateTokenExpiry.js +0 -7
  255. package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/dist-es/validateTokenKey.js +0 -7
  256. package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/dist-es/writeSSOTokenToFile.js +0 -8
  257. package/node_modules/@aws-sdk/credential-provider-sso/node_modules/@aws-sdk/token-providers/package.json +0 -70
@@ -1,4 +1,4 @@
1
- import{t as e}from"./rolldown-runtime-CNxR59P3.js";import{t}from"./subsystem-BLbY429l.js";import{Bn as n,Rn as r,zn as i}from"./auth-profiles-T8DuH3ax.js";import{t as a}from"./command-format-CLxIPuLR.js";import{d as o,f as s}from"./agent-scope-DAWJwFfl.js";import{_ as c,g as l}from"./session-key-C7F_iqYg.js";import{m as u,p as d,t as f}from"./utils-CGdo13HV.js";import{a as p}from"./types.secrets-D4tbc3Wq.js";import{i as m,o as h,r as g}from"./registry-BptzrW8D.js";import{g as _}from"./skills-CKTicUKS.js";import{D as v,E as y,H as b,O as x,T as ee,V as S,W as te,a as ne,at as C,c as w,ft as T,gt as E,ht as D,it as O,l as k,lt as re,n as ie,ot as ae,t as A,u as j,ut as oe}from"./plugins-DNlgeTTc.js";import{t as M}from"./exec-B3eleY5O.js";import{dt as N}from"./send-DavpkzhH.js";import{Dn as se,On as ce,c as le,g as ue,l as de,x as fe}from"./compact-Dg66DXx_.js";import{a as pe,n as me}from"./plugin-auto-enable-NzmNh4oU.js";import{o as he}from"./send-C48Y9SAq.js";import{r as P}from"./onboard-helpers-PGl5bVPE.js";import{t as F}from"./links-CBnmRP9D.js";import{t as ge}from"./login-Do_NA1Je.js";import{t as _e}from"./brew-DDPm_HfE.js";import{n as ve,r as ye,t as be}from"./api-BeG0ObSq.js";import{t as I}from"./enable-BhD84GhD.js";import{s as xe}from"./install-safe-path-C6kc_8NW.js";import{a as Se,i as Ce,n as we,s as Te,t as Ee}from"./installs-C1xQLuby.js";import{n as De}from"./plugin-install-plan-NvDGp0d8.js";import{c as Oe,s as ke}from"./auth-choice.apply-helpers-B7S-PcH_.js";import Ae from"node:os";import L from"node:path";import je,{createWriteStream as Me}from"node:fs";import R from"node:fs/promises";import{pipeline as Ne}from"node:stream/promises";import{request as Pe}from"node:https";function Fe(e){let t=new Set;t.add(L.join(process.cwd(),`.git`)),e&&e!==process.cwd()&&t.add(L.join(e,`.git`));for(let e of t)if(je.existsSync(e))return!0;return!1}function Ie(e,t,n){if(!n)return null;let r=e.install.localPath?.trim();if(!r)return null;let i=new Set;i.add(L.resolve(process.cwd(),r)),t&&t!==process.cwd()&&i.add(L.resolve(t,r));for(let e of i)if(je.existsSync(e))return e;return null}function Le(e,t){let n=e.plugins?.load?.paths??[],r=Array.from(new Set([...n,t]));return{...e,plugins:{...e.plugins,load:{...e.plugins?.load,paths:r}}}}async function Re(e){let{entry:t,localPath:n,prompter:r,defaultChoice:i}=e,a=n?[{value:`local`,label:`Use local plugin path`,hint:n}]:[],o=[{value:`npm`,label:`Download from npm (${t.install.npmSpec})`},...a,{value:`skip`,label:`Skip for now`}],s=i===`local`&&!n?`npm`:i;return await r.select({message:`Install ${t.meta.label} plugin?`,options:o,initialValue:s})}function ze(e){let{cfg:t,entry:n,localPath:r,bundledLocalPath:i}=e;if(i)return`local`;let a=t.update?.channel;if(a===`dev`)return r?`local`:`npm`;if(a===`stable`||a===`beta`)return`npm`;let o=n.install.defaultChoice;return o===`local`?r?`local`:`npm`:o===`npm`?`npm`:r?`local`:`npm`}async function Be(e){let{entry:t,prompter:n,runtime:r,workspaceDir:i}=e,a=e.cfg,o=Fe(i),s=Se({workspaceDir:i}),c=De({pluginId:t.id,npmSpec:t.install.npmSpec,findBundledSource:e=>Ce({bundled:s,lookup:e})})?.bundledSource.localPath??null,l=c??Ie(t,i,o),u=await Re({entry:t,localPath:l,defaultChoice:ze({cfg:a,entry:t,localPath:l,bundledLocalPath:c}),prompter:n});if(u===`skip`)return{cfg:a,installed:!1};if(u===`local`&&l)return a=Le(a,l),a=I(a,t.id).config,{cfg:a,installed:!0};let d=await Te({spec:t.install.npmSpec,logger:{info:e=>r.log?.(e),warn:e=>r.log?.(e)}});return d.ok?(a=I(a,d.pluginId).config,a=we(a,{pluginId:d.pluginId,source:`npm`,spec:t.install.npmSpec,installPath:d.targetDir,version:d.version,...Ee(d.npmResolution)}),{cfg:a,installed:!0}):(await n.note(`Failed to install ${t.install.npmSpec}: ${d.error}`,`Plugin install`),l&&await n.confirm({message:`Use local plugin path instead? (${l})`,initialValue:!0})?(a=Le(a,l),a=I(a,t.id).config,{cfg:a,installed:!0}):(r.error?.(`Plugin install failed: ${d.error}`),{cfg:a,installed:!1}))}function Ve(e){_();let n=e.workspaceDir??o(e.cfg,s(e.cfg)),r=t(`plugins`);de({config:e.cfg,workspaceDir:n,cache:!1,logger:le(r)})}async function He(e){let t=e.listAccountIds(e.cfg),n=e.currentId?.trim()||e.defaultAccountId||`default`,r=await e.prompter.select({message:`${e.label} account`,options:[...t.map(e=>({value:e,label:e===`default`?`default (primary)`:e})),{value:`__new__`,label:`Add a new account`}],initialValue:n});if(r!==`__new__`)return c(r);let i=await e.prompter.text({message:`New ${e.label} account id`,validate:e=>e?.trim()?void 0:`Required`}),a=c(String(i));return String(i).trim()!==a&&await e.prompter.note(`Normalized account id to "${a}".`,`${e.label} account`),a}const Ue=async e=>await He(e);function We(e){let t=(e??[]).map(e=>String(e).trim()).filter(Boolean);return t.includes(`*`)||t.push(`*`),t}function Ge(e,t){let n=[...e??[],...t].map(e=>String(e).trim()).filter(Boolean);return[...new Set(n)]}function z(e){return e.split(/[\n,;]+/g).map(e=>e.trim()).filter(Boolean)}function Ke(e,t){let n=z(String(e??``)),r=[];for(let e of n){let n=t(e);if(`error`in n)return{entries:[],error:n.error};r.push(n.value)}return{entries:B(r)}}function qe(e,t){return Ke(e,e=>e===`*`?{value:`*`}:t(e))}function Je(e){let t=e.value.trim();if(!t)return null;let n=t.match(e.mentionPattern);if(n?.[1])return e.normalizeId?e.normalizeId(n[1]):n[1];let r=e.prefixPattern?t.replace(e.prefixPattern,``):t;return e.idPattern.test(r)?e.normalizeId?e.normalizeId(r):r:null}function B(e,t){let n=e.map(e=>String(e).trim()).filter(Boolean).map(e=>{if(e===`*`)return`*`;if(!t)return e;let n=t(e);return typeof n==`string`?n.trim():``}).filter(Boolean);return[...new Set(n)]}function V(e){return e.accountId?.trim()?c(e.accountId):e.defaultAccountId}async function H(e){let t=e.accountOverride?.trim(),n=t?c(t):e.defaultAccountId;return e.shouldPromptAccountIds&&!t&&(n=await Ue({cfg:e.cfg,prompter:e.prompter,label:e.label,currentId:n,listAccountIds:e.listAccountIds,defaultAccountId:e.defaultAccountId})),n}function Ye(e){let{cfg:t,channel:n,accountId:r,allowFrom:i}=e;return tt({cfg:t,channel:n,accountId:r,patch:{allowFrom:i},ensureEnabled:!1})}function Xe(e){let{cfg:t,channel:n,dmPolicy:r}=e,i=r===`open`?We(t.channels?.[n]?.allowFrom):void 0;return{...t,channels:{...t.channels,[n]:{...t.channels?.[n],dmPolicy:r,...i?{allowFrom:i}:{}}}}}function Ze(e){let t=e.cfg.channels?.[e.channel]??{allowFrom:void 0,dm:void 0},n=t.allowFrom??t.dm?.allowFrom,r=e.dmPolicy===`open`?We(n):void 0;return et({cfg:e.cfg,channel:e.channel,patch:{dmPolicy:e.dmPolicy,...r?{allowFrom:r}:{}}})}function Qe(e){return et({cfg:e.cfg,channel:e.channel,patch:{allowFrom:e.allowFrom}})}function $e(e){return W({cfg:e.cfg,channel:e.channel,accountId:e.accountId,patch:{groupPolicy:e.groupPolicy}})}function et(e){let{cfg:t,channel:n,patch:r}=e,i=t.channels?.[n]??{},a=i.dm??{};return{...t,channels:{...t.channels,[n]:{...i,...r,dm:{...a,enabled:typeof a.enabled==`boolean`?a.enabled:!0}}}}}function U(e,t,n){let r=e.channels?.[t]??{};return{...e,channels:{...e.channels,[t]:{...r,enabled:n}}}}function tt(e){let{cfg:t,channel:n,accountId:r,patch:i,ensureEnabled:a}=e;return ye({cfg:r===`default`?t:ve({cfg:t,channelKey:n}),channelKey:n,accountId:r,patch:i,ensureChannelEnabled:a,ensureAccountEnabled:a})}function W(e){return tt({...e,ensureEnabled:!0})}function G(e){let t=e.cfg;return e.tokenResult.useEnv&&(t=W({cfg:t,channel:e.channel,accountId:e.accountId,patch:{}})),e.tokenResult.token&&(t=W({cfg:t,channel:e.channel,accountId:e.accountId,patch:{[e.tokenPatchKey]:e.tokenResult.token}})),t}function nt(e){return{accountConfigured:e.accountConfigured,hasConfigToken:e.hasConfigToken,canUseEnv:e.allowEnv&&!!e.envValue?.trim()&&!e.hasConfigToken}}async function rt(e){let t=async()=>String(await e.prompter.text({message:e.inputPrompt,validate:e=>e?.trim()?void 0:`Required`})).trim();return e.canUseEnv?await e.prompter.confirm({message:e.envPrompt,initialValue:!0})?{useEnv:!0,token:null}:{useEnv:!1,token:await t()}:e.hasConfigToken&&e.accountConfigured&&await e.prompter.confirm({message:e.keepPrompt,initialValue:!0})?{useEnv:!1,token:null}:{useEnv:!1,token:await t()}}async function K(e){let t=nt({accountConfigured:e.accountConfigured,hasConfigToken:e.hasConfigToken,allowEnv:e.allowEnv,envValue:e.envValue});!t.accountConfigured&&e.onMissingConfigured&&await e.onMissingConfigured();let n=await it({cfg:e.cfg,prompter:e.prompter,providerHint:e.providerHint,credentialLabel:e.credentialLabel,secretInputMode:e.secretInputMode,accountConfigured:t.accountConfigured,canUseEnv:t.canUseEnv,hasConfigToken:t.hasConfigToken,envPrompt:e.envPrompt,keepPrompt:e.keepPrompt,inputPrompt:e.inputPrompt,preferredEnvVar:e.preferredEnvVar});return n.action===`use-env`?{cfg:e.applyUseEnv?await e.applyUseEnv(e.cfg):e.cfg,action:n.action,resolvedValue:e.envValue?.trim()||void 0}:n.action===`set`?{cfg:e.applySet?await e.applySet(e.cfg,n.value,n.resolvedValue):e.cfg,action:n.action,resolvedValue:n.resolvedValue}:{cfg:e.cfg,action:n.action}}async function it(e){if(await Oe({prompter:e.prompter,explicitMode:e.secretInputMode,copy:{modeMessage:`How do you want to provide this ${e.credentialLabel}?`,plaintextLabel:`Enter ${e.credentialLabel}`,plaintextHint:`Stores the credential directly in OpenClaw config`,refLabel:`Use external secret provider`,refHint:`Stores a reference to env or configured external secret providers`}})===`plaintext`){let t=await rt({prompter:e.prompter,accountConfigured:e.accountConfigured,canUseEnv:e.canUseEnv,hasConfigToken:e.hasConfigToken,envPrompt:e.envPrompt,keepPrompt:e.keepPrompt,inputPrompt:e.inputPrompt});return t.useEnv?{action:`use-env`}:t.token?{action:`set`,value:t.token,resolvedValue:t.token}:{action:`keep`}}if(e.hasConfigToken&&e.accountConfigured&&await e.prompter.confirm({message:e.keepPrompt,initialValue:!0}))return{action:`keep`};let t=await ke({provider:e.providerHint,config:e.cfg,prompter:e.prompter,preferredEnvVar:e.preferredEnvVar,copy:{sourceMessage:`Where is this ${e.credentialLabel} stored?`,envVarPlaceholder:e.preferredEnvVar??`OPENCLAW_SECRET`,envVarFormatError:`Use an env var name like "OPENCLAW_SECRET" (uppercase letters, numbers, underscores).`,noProvidersMessage:`No file/exec secret providers are configured yet. Add one under secrets.providers, or select Environment variable.`}});return{action:`set`,value:t.ref,resolvedValue:t.resolvedValue}}async function at(e){let t=V({accountId:e.accountId,defaultAccountId:e.defaultAccountId}),n=e.getExistingAllowFrom({cfg:e.cfg,accountId:t});await e.prompter.note(e.noteLines.join(`
1
+ import{t as e}from"./rolldown-runtime-CNxR59P3.js";import{t}from"./subsystem-BLbY429l.js";import{Bn as n,Rn as r,zn as i}from"./auth-profiles-T8DuH3ax.js";import{t as a}from"./command-format-CLxIPuLR.js";import{d as o,f as s}from"./agent-scope-DAWJwFfl.js";import{_ as c,g as l}from"./session-key-C7F_iqYg.js";import{m as u,p as d,t as f}from"./utils-CGdo13HV.js";import{a as p}from"./types.secrets-D4tbc3Wq.js";import{i as m,o as h,r as g}from"./registry-BptzrW8D.js";import{g as _}from"./skills-CKTicUKS.js";import{D as v,E as y,H as b,O as x,T as ee,V as S,W as te,a as ne,at as C,c as w,ft as T,gt as E,ht as D,it as O,l as k,lt as re,n as ie,ot as ae,t as A,u as j,ut as oe}from"./plugins-DNlgeTTc.js";import{t as M}from"./exec-B3eleY5O.js";import{dt as N}from"./send-DavpkzhH.js";import{Dn as se,On as ce,c as le,g as ue,l as de,x as fe}from"./compact-BEeB6bwq.js";import{a as pe,n as me}from"./plugin-auto-enable-NzmNh4oU.js";import{o as he}from"./send-C48Y9SAq.js";import{r as P}from"./onboard-helpers-PGl5bVPE.js";import{t as F}from"./links-CBnmRP9D.js";import{t as ge}from"./login-Do_NA1Je.js";import{t as _e}from"./brew-DDPm_HfE.js";import{n as ve,r as ye,t as be}from"./api-BeG0ObSq.js";import{t as I}from"./enable-BhD84GhD.js";import{s as xe}from"./install-safe-path-C6kc_8NW.js";import{a as Se,i as Ce,n as we,s as Te,t as Ee}from"./installs-C1xQLuby.js";import{n as De}from"./plugin-install-plan-NvDGp0d8.js";import{c as Oe,s as ke}from"./auth-choice.apply-helpers-B7S-PcH_.js";import Ae from"node:os";import L from"node:path";import je,{createWriteStream as Me}from"node:fs";import R from"node:fs/promises";import{pipeline as Ne}from"node:stream/promises";import{request as Pe}from"node:https";function Fe(e){let t=new Set;t.add(L.join(process.cwd(),`.git`)),e&&e!==process.cwd()&&t.add(L.join(e,`.git`));for(let e of t)if(je.existsSync(e))return!0;return!1}function Ie(e,t,n){if(!n)return null;let r=e.install.localPath?.trim();if(!r)return null;let i=new Set;i.add(L.resolve(process.cwd(),r)),t&&t!==process.cwd()&&i.add(L.resolve(t,r));for(let e of i)if(je.existsSync(e))return e;return null}function Le(e,t){let n=e.plugins?.load?.paths??[],r=Array.from(new Set([...n,t]));return{...e,plugins:{...e.plugins,load:{...e.plugins?.load,paths:r}}}}async function Re(e){let{entry:t,localPath:n,prompter:r,defaultChoice:i}=e,a=n?[{value:`local`,label:`Use local plugin path`,hint:n}]:[],o=[{value:`npm`,label:`Download from npm (${t.install.npmSpec})`},...a,{value:`skip`,label:`Skip for now`}],s=i===`local`&&!n?`npm`:i;return await r.select({message:`Install ${t.meta.label} plugin?`,options:o,initialValue:s})}function ze(e){let{cfg:t,entry:n,localPath:r,bundledLocalPath:i}=e;if(i)return`local`;let a=t.update?.channel;if(a===`dev`)return r?`local`:`npm`;if(a===`stable`||a===`beta`)return`npm`;let o=n.install.defaultChoice;return o===`local`?r?`local`:`npm`:o===`npm`?`npm`:r?`local`:`npm`}async function Be(e){let{entry:t,prompter:n,runtime:r,workspaceDir:i}=e,a=e.cfg,o=Fe(i),s=Se({workspaceDir:i}),c=De({pluginId:t.id,npmSpec:t.install.npmSpec,findBundledSource:e=>Ce({bundled:s,lookup:e})})?.bundledSource.localPath??null,l=c??Ie(t,i,o),u=await Re({entry:t,localPath:l,defaultChoice:ze({cfg:a,entry:t,localPath:l,bundledLocalPath:c}),prompter:n});if(u===`skip`)return{cfg:a,installed:!1};if(u===`local`&&l)return a=Le(a,l),a=I(a,t.id).config,{cfg:a,installed:!0};let d=await Te({spec:t.install.npmSpec,logger:{info:e=>r.log?.(e),warn:e=>r.log?.(e)}});return d.ok?(a=I(a,d.pluginId).config,a=we(a,{pluginId:d.pluginId,source:`npm`,spec:t.install.npmSpec,installPath:d.targetDir,version:d.version,...Ee(d.npmResolution)}),{cfg:a,installed:!0}):(await n.note(`Failed to install ${t.install.npmSpec}: ${d.error}`,`Plugin install`),l&&await n.confirm({message:`Use local plugin path instead? (${l})`,initialValue:!0})?(a=Le(a,l),a=I(a,t.id).config,{cfg:a,installed:!0}):(r.error?.(`Plugin install failed: ${d.error}`),{cfg:a,installed:!1}))}function Ve(e){_();let n=e.workspaceDir??o(e.cfg,s(e.cfg)),r=t(`plugins`);de({config:e.cfg,workspaceDir:n,cache:!1,logger:le(r)})}async function He(e){let t=e.listAccountIds(e.cfg),n=e.currentId?.trim()||e.defaultAccountId||`default`,r=await e.prompter.select({message:`${e.label} account`,options:[...t.map(e=>({value:e,label:e===`default`?`default (primary)`:e})),{value:`__new__`,label:`Add a new account`}],initialValue:n});if(r!==`__new__`)return c(r);let i=await e.prompter.text({message:`New ${e.label} account id`,validate:e=>e?.trim()?void 0:`Required`}),a=c(String(i));return String(i).trim()!==a&&await e.prompter.note(`Normalized account id to "${a}".`,`${e.label} account`),a}const Ue=async e=>await He(e);function We(e){let t=(e??[]).map(e=>String(e).trim()).filter(Boolean);return t.includes(`*`)||t.push(`*`),t}function Ge(e,t){let n=[...e??[],...t].map(e=>String(e).trim()).filter(Boolean);return[...new Set(n)]}function z(e){return e.split(/[\n,;]+/g).map(e=>e.trim()).filter(Boolean)}function Ke(e,t){let n=z(String(e??``)),r=[];for(let e of n){let n=t(e);if(`error`in n)return{entries:[],error:n.error};r.push(n.value)}return{entries:B(r)}}function qe(e,t){return Ke(e,e=>e===`*`?{value:`*`}:t(e))}function Je(e){let t=e.value.trim();if(!t)return null;let n=t.match(e.mentionPattern);if(n?.[1])return e.normalizeId?e.normalizeId(n[1]):n[1];let r=e.prefixPattern?t.replace(e.prefixPattern,``):t;return e.idPattern.test(r)?e.normalizeId?e.normalizeId(r):r:null}function B(e,t){let n=e.map(e=>String(e).trim()).filter(Boolean).map(e=>{if(e===`*`)return`*`;if(!t)return e;let n=t(e);return typeof n==`string`?n.trim():``}).filter(Boolean);return[...new Set(n)]}function V(e){return e.accountId?.trim()?c(e.accountId):e.defaultAccountId}async function H(e){let t=e.accountOverride?.trim(),n=t?c(t):e.defaultAccountId;return e.shouldPromptAccountIds&&!t&&(n=await Ue({cfg:e.cfg,prompter:e.prompter,label:e.label,currentId:n,listAccountIds:e.listAccountIds,defaultAccountId:e.defaultAccountId})),n}function Ye(e){let{cfg:t,channel:n,accountId:r,allowFrom:i}=e;return tt({cfg:t,channel:n,accountId:r,patch:{allowFrom:i},ensureEnabled:!1})}function Xe(e){let{cfg:t,channel:n,dmPolicy:r}=e,i=r===`open`?We(t.channels?.[n]?.allowFrom):void 0;return{...t,channels:{...t.channels,[n]:{...t.channels?.[n],dmPolicy:r,...i?{allowFrom:i}:{}}}}}function Ze(e){let t=e.cfg.channels?.[e.channel]??{allowFrom:void 0,dm:void 0},n=t.allowFrom??t.dm?.allowFrom,r=e.dmPolicy===`open`?We(n):void 0;return et({cfg:e.cfg,channel:e.channel,patch:{dmPolicy:e.dmPolicy,...r?{allowFrom:r}:{}}})}function Qe(e){return et({cfg:e.cfg,channel:e.channel,patch:{allowFrom:e.allowFrom}})}function $e(e){return W({cfg:e.cfg,channel:e.channel,accountId:e.accountId,patch:{groupPolicy:e.groupPolicy}})}function et(e){let{cfg:t,channel:n,patch:r}=e,i=t.channels?.[n]??{},a=i.dm??{};return{...t,channels:{...t.channels,[n]:{...i,...r,dm:{...a,enabled:typeof a.enabled==`boolean`?a.enabled:!0}}}}}function U(e,t,n){let r=e.channels?.[t]??{};return{...e,channels:{...e.channels,[t]:{...r,enabled:n}}}}function tt(e){let{cfg:t,channel:n,accountId:r,patch:i,ensureEnabled:a}=e;return ye({cfg:r===`default`?t:ve({cfg:t,channelKey:n}),channelKey:n,accountId:r,patch:i,ensureChannelEnabled:a,ensureAccountEnabled:a})}function W(e){return tt({...e,ensureEnabled:!0})}function G(e){let t=e.cfg;return e.tokenResult.useEnv&&(t=W({cfg:t,channel:e.channel,accountId:e.accountId,patch:{}})),e.tokenResult.token&&(t=W({cfg:t,channel:e.channel,accountId:e.accountId,patch:{[e.tokenPatchKey]:e.tokenResult.token}})),t}function nt(e){return{accountConfigured:e.accountConfigured,hasConfigToken:e.hasConfigToken,canUseEnv:e.allowEnv&&!!e.envValue?.trim()&&!e.hasConfigToken}}async function rt(e){let t=async()=>String(await e.prompter.text({message:e.inputPrompt,validate:e=>e?.trim()?void 0:`Required`})).trim();return e.canUseEnv?await e.prompter.confirm({message:e.envPrompt,initialValue:!0})?{useEnv:!0,token:null}:{useEnv:!1,token:await t()}:e.hasConfigToken&&e.accountConfigured&&await e.prompter.confirm({message:e.keepPrompt,initialValue:!0})?{useEnv:!1,token:null}:{useEnv:!1,token:await t()}}async function K(e){let t=nt({accountConfigured:e.accountConfigured,hasConfigToken:e.hasConfigToken,allowEnv:e.allowEnv,envValue:e.envValue});!t.accountConfigured&&e.onMissingConfigured&&await e.onMissingConfigured();let n=await it({cfg:e.cfg,prompter:e.prompter,providerHint:e.providerHint,credentialLabel:e.credentialLabel,secretInputMode:e.secretInputMode,accountConfigured:t.accountConfigured,canUseEnv:t.canUseEnv,hasConfigToken:t.hasConfigToken,envPrompt:e.envPrompt,keepPrompt:e.keepPrompt,inputPrompt:e.inputPrompt,preferredEnvVar:e.preferredEnvVar});return n.action===`use-env`?{cfg:e.applyUseEnv?await e.applyUseEnv(e.cfg):e.cfg,action:n.action,resolvedValue:e.envValue?.trim()||void 0}:n.action===`set`?{cfg:e.applySet?await e.applySet(e.cfg,n.value,n.resolvedValue):e.cfg,action:n.action,resolvedValue:n.resolvedValue}:{cfg:e.cfg,action:n.action}}async function it(e){if(await Oe({prompter:e.prompter,explicitMode:e.secretInputMode,copy:{modeMessage:`How do you want to provide this ${e.credentialLabel}?`,plaintextLabel:`Enter ${e.credentialLabel}`,plaintextHint:`Stores the credential directly in OpenClaw config`,refLabel:`Use external secret provider`,refHint:`Stores a reference to env or configured external secret providers`}})===`plaintext`){let t=await rt({prompter:e.prompter,accountConfigured:e.accountConfigured,canUseEnv:e.canUseEnv,hasConfigToken:e.hasConfigToken,envPrompt:e.envPrompt,keepPrompt:e.keepPrompt,inputPrompt:e.inputPrompt});return t.useEnv?{action:`use-env`}:t.token?{action:`set`,value:t.token,resolvedValue:t.token}:{action:`keep`}}if(e.hasConfigToken&&e.accountConfigured&&await e.prompter.confirm({message:e.keepPrompt,initialValue:!0}))return{action:`keep`};let t=await ke({provider:e.providerHint,config:e.cfg,prompter:e.prompter,preferredEnvVar:e.preferredEnvVar,copy:{sourceMessage:`Where is this ${e.credentialLabel} stored?`,envVarPlaceholder:e.preferredEnvVar??`OPENCLAW_SECRET`,envVarFormatError:`Use an env var name like "OPENCLAW_SECRET" (uppercase letters, numbers, underscores).`,noProvidersMessage:`No file/exec secret providers are configured yet. Add one under secrets.providers, or select Environment variable.`}});return{action:`set`,value:t.ref,resolvedValue:t.resolvedValue}}async function at(e){let t=V({accountId:e.accountId,defaultAccountId:e.defaultAccountId}),n=e.getExistingAllowFrom({cfg:e.cfg,accountId:t});await e.prompter.note(e.noteLines.join(`
2
2
  `),e.noteTitle);let r=await e.prompter.text({message:e.message,placeholder:e.placeholder,initialValue:n[0]?String(n[0]):void 0,validate:t=>{let n=String(t??``).trim();return n?e.parseEntries(n).error:`Required`}}),i=Ge(void 0,e.parseEntries(String(r)).entries);return Ye({cfg:e.cfg,channel:e.channel,accountId:t,allowFrom:i})}async function ot(e){let t=[];for(let n of e.resolvedSections)n.values.length!==0&&t.push(`${n.title}: ${n.values.join(`, `)}`);e.unresolved&&e.unresolved.length>0&&t.push(`Unresolved (kept as typed): ${e.unresolved.join(`, `)}`),t.length>0&&await e.prompter.note(t.join(`
3
3
  `),e.label)}async function st(e){await e.prompter.note(`Channel lookup failed; keeping entries as typed. ${String(e.error)}`,e.label)}async function ct(e){for(;;){let t=await e.prompter.text({message:e.message,placeholder:e.placeholder,initialValue:e.existing[0]?String(e.existing[0]):void 0,validate:e=>String(e??``).trim()?void 0:`Required`}),n=e.parseInputs(String(t));if(!e.token){let t=n.map(e.parseId).filter(Boolean);if(t.length!==n.length){await e.prompter.note(e.invalidWithoutTokenNote,e.label);continue}return Ge(e.existing,t)}let r=await e.resolveEntries({token:e.token,entries:n}).catch(()=>null);if(!r){await e.prompter.note(`Failed to resolve usernames. Try again.`,e.label);continue}let i=r.filter(e=>!e.resolved||!e.id);if(i.length>0){await e.prompter.note(`Could not resolve: ${i.map(e=>e.input).join(`, `)}`,e.label);continue}let a=r.map(e=>e.id);return Ge(e.existing,a)}}async function lt(e){await e.prompter.note(e.noteLines.join(`
4
4
  `),e.noteTitle);let t=await ct({prompter:e.prompter,existing:e.existing,token:e.token,message:e.message,placeholder:e.placeholder,label:e.noteTitle,parseInputs:z,parseId:e.parseId,invalidWithoutTokenNote:e.invalidWithoutTokenNote,resolveEntries:e.resolveEntries});return Qe({cfg:e.cfg,channel:e.channel,allowFrom:t})}function ut(e){return z(String(e??``))}function dt(e){return e.map(e=>e.trim()).filter(Boolean).join(`, `)}async function ft(e){let t=[{value:`allowlist`,label:`Allowlist (recommended)`}];e.allowOpen!==!1&&t.push({value:`open`,label:`Open (allow all channels)`}),e.allowDisabled!==!1&&t.push({value:`disabled`,label:`Disabled (block all channels)`});let n=e.currentPolicy??`allowlist`;return await e.prompter.select({message:`${e.label} access`,options:t,initialValue:n})}async function pt(e){let t=e.currentEntries&&e.currentEntries.length>0?dt(e.currentEntries):void 0;return ut(await e.prompter.text({message:`${e.label} allowlist (comma-separated)`,placeholder:e.placeholder,initialValue:t}))}async function mt(e){let t=(e.currentEntries??[]).length>0,n=e.defaultPrompt??!t;if(!await e.prompter.confirm({message:e.updatePrompt?`Update ${e.label} access?`:`Configure ${e.label} access?`,initialValue:n}))return null;let r=await ft({prompter:e.prompter,label:e.label,currentPolicy:e.currentPolicy,allowOpen:e.allowOpen,allowDisabled:e.allowDisabled});return r===`allowlist`?{policy:r,entries:await pt({prompter:e.prompter,label:e.label,currentEntries:e.currentEntries,placeholder:e.placeholder})}:{policy:r,entries:[]}}async function ht(e){let t=e.cfg,n=await mt({prompter:e.prompter,label:e.label,currentPolicy:e.currentPolicy,currentEntries:e.currentEntries,placeholder:e.placeholder,updatePrompt:e.updatePrompt});if(!n)return t;if(n.policy!==`allowlist`)return e.setPolicy(t,n.policy);let r=await e.resolveAllowlist({cfg:t,entries:n.entries});return t=e.setPolicy(t,`allowlist`),e.applyAllowlist({cfg:t,resolved:r})}const q=`discord`;async function gt(e){await e.note([`1) Discord Developer Portal → Applications → New Application`,`2) Bot → Add Bot → Reset Token → copy token`,`3) OAuth2 → URL Generator → scope 'bot' → invite to your server`,`Tip: enable Message Content Intent if you need message text. (Bot → Privileged Gateway Intents → Message Content Intent)`,`Docs: ${F(`/discord`,`discord`)}`].join(`
@@ -16,4 +16,4 @@ import{t as e}from"./rolldown-runtime-CNxR59P3.js";import{t}from"./subsystem-BLb
16
16
  `),`${e.label} DM access`),await n.select({message:`${e.label} DM policy`,options:[{value:`pairing`,label:`Pairing (recommended)`},{value:`allowlist`,label:`Allowlist (specific users only)`},{value:`open`,label:`Open (public inbound DMs)`},{value:`disabled`,label:`Disabled (ignore DMs)`}]}));for(let e of i){let t=e.getCurrent(o),i=await s(e);i!==t&&(o=e.setPolicy(o,i)),i===`allowlist`&&e.promptAllowFrom&&(o=await e.promptAllowFrom({cfg:o,prompter:n,accountId:r?.get(e.channel)}))}return o}async function yn(e,t,n,r){let i=e,l=new Set(r?.forceAllowFromChannels??[]),u={...r?.accountIds};r?.whatsappAccountId?.trim()&&(u.whatsapp=r.whatsappAccountId.trim());let{installedPlugins:d,catalogEntries:f,statusByChannel:p,statusLines:g}=await mn({cfg:i,options:r,accountOverrides:u});if(!r?.skipStatusNote&&g.length>0&&await n.note(g.join(`
17
17
  `),`Channel status`),!(r?.skipConfirm||await n.confirm({message:`Configure chat channels now?`,initialValue:!0})))return e;let _=h().map(e=>({id:e.id,label:e.label,blurb:e.blurb})),v=new Set(_.map(e=>e.id));await gn(n,[..._,...d.filter(e=>!v.has(e.id)).map(e=>({id:e.id,label:e.meta.label,blurb:e.meta.blurb})),...f.filter(e=>!v.has(e.id)).map(e=>({id:e.id,label:e.meta.label,blurb:e.meta.blurb}))]);let y=r?.initialSelection?.[0]??_n(p),b=r?.promptAccountIds===!0,x=new Map,ee=(e,t)=>{r?.onAccountId?.(e,t),$(e)?.onAccountRecorded?.(t,r),x.set(e,t)},S=[],te=e=>{S.includes(e)||S.push(e)},ne=e=>{let t=A(e);if(!t)return i.plugins?.entries?.[e]?.enabled===!1?`plugin disabled`:i.plugins?.enabled===!1?`plugins disabled`:void 0;let n=re({plugin:t,cfg:i}),r=t.config.resolveAccount(i,n),a;return t.config.isEnabled?a=t.config.isEnabled(r,i):typeof r?.enabled==`boolean`?a=r.enabled:typeof i.channels?.[e]?.enabled==`boolean`&&(a=i.channels[e]?.enabled),a===!1?`disabled`:void 0},C=e=>e.map(e=>{let t=p.get(e.id),n=ne(e.id),r=[t?.selectionHint,n].filter(Boolean).join(` · `)||void 0;return{value:e.meta.id,label:e.meta.selectionLabel??e.meta.label,...r?{hint:r}:{}}}),w=()=>{let e=h(),t=ie(),n=new Set(t.map(e=>e.id)),r=pe({workspaceDir:o(i,s(i))}).filter(e=>!n.has(e.id)),a=new Map;for(let t of e)a.set(t.id,t);for(let e of t)a.set(e.id,e.meta);for(let e of r)a.has(e.id)||a.set(e.id,e.meta);return{entries:Array.from(a,([e,t])=>({id:e,meta:t})),catalog:r,catalogById:new Map(r.map(e=>[e.id,e]))}},T=async e=>{let t=$(e);if(!t)return;let n=await t.getStatus({cfg:i,options:r,accountOverrides:u});p.set(e,n)},E=async e=>{if(A(e))return!0;let r=I(i,e);if(i=r.config,!r.enabled)return await n.note(`Cannot enable ${e}: ${r.reason??`plugin disabled`}.`,`Channel setup`),!1;let c=o(i,s(i));return Ve({cfg:i,runtime:t,workspaceDir:c}),A(e)?(await T(e),!0):$(e)?(await n.note(`${e} plugin not available (continuing with onboarding). If the channel still doesn't work after setup, run \`${a(`openclaw plugins list`)}\` and \`${a(`openclaw plugins enable `+e)}\`, then restart the gateway.`,`Channel setup`),await T(e),!0):(await n.note(`${e} plugin not available.`,`Channel setup`),!1)},D=async(e,t)=>{i=t.cfg,t.accountId&&ee(e,t.accountId),te(e),await T(e)},O=async(e,t)=>t===`skip`?!1:(await D(e,t),!0),k=async e=>{let a=$(e);if(!a){await n.note(`${e} does not support onboarding yet.`,`Channel setup`);return}await D(e,await a.configure({cfg:i,runtime:t,prompter:n,options:r,accountOverrides:u,shouldPromptAccountIds:b,forceAllowFrom:l.has(e)}))},ae=async(e,a)=>{let o=A(e),s=$(e);if(s?.configureWhenConfigured)return await O(e,await s.configureWhenConfigured({cfg:i,runtime:t,prompter:n,options:r,accountOverrides:u,shouldPromptAccountIds:b,forceAllowFrom:l.has(e),configured:!0,label:a})),void 0;let d=!!(r?.allowDisable&&(o?.config.setAccountEnabled||s?.disable)),f=!!(r?.allowDisable&&o?.config.deleteAccount),p=await fn({prompter:n,label:a,supportsDisable:d,supportsDelete:f});if(p===`skip`)return;if(p===`update`){await k(e);return}if(!r?.allowDisable)return;if(p===`delete`&&!f){await n.note(`${a} does not support deleting config entries.`,`Remove channel`);return}let m=c((p===`delete`?o?.config.deleteAccount:o?.config.setAccountEnabled)?await pn({cfg:i,prompter:n,label:a,channel:e}):`default`)??(o?re({plugin:o,cfg:i}):`default`),h=dn(m);if(p===`delete`){if(!await n.confirm({message:`Delete ${a} account "${h}"?`,initialValue:!1}))return;o?.config.deleteAccount&&(i=o.config.deleteAccount({cfg:i,accountId:m})),await T(e);return}o?.config.setAccountEnabled?i=o.config.setAccountEnabled({cfg:i,accountId:m,enabled:!1}):s?.disable&&(i=s.disable(i)),await T(e)},j=async e=>{let{catalogById:a}=w(),c=a.get(e);if(c){let r=o(i,s(i)),a=await Be({cfg:i,entry:c,prompter:n,runtime:t,workspaceDir:r});if(i=a.cfg,!a.installed)return;Ve({cfg:i,runtime:t,workspaceDir:r}),await T(e)}else if(!await E(e))return;let d=A(e),f=$(e),m=d?.meta.label??c?.meta.label??e,h=p.get(e)?.configured??!1;if(f?.configureInteractive)return await O(e,await f.configureInteractive({cfg:i,runtime:t,prompter:n,options:r,accountOverrides:u,shouldPromptAccountIds:b,forceAllowFrom:l.has(e),configured:h,label:m})),void 0;if(h){await ae(e,m);return}await k(e)};if(r?.quickstartDefaults){let{entries:e}=w(),t=await n.select({message:`Select channel (QuickStart)`,options:[...C(e),{value:`__skip__`,label:`Skip for now`,hint:`You can add channels later via \`${a(`openclaw channels add`)}\``}],initialValue:y});t!==`__skip__`&&await j(t)}else{let e=`__done__`,t=r?.initialSelection?.[0]??y;for(;;){let{entries:r}=w(),i=await n.select({message:`Select a channel`,options:[...C(r),{value:e,label:`Finished`,hint:S.length>0?`Done`:`Skip for now`}],initialValue:t});if(i===e)break;await j(i)}}r?.onSelection?.(S);let oe=new Map,{entries:M}=w();for(let e of M)oe.set(e.id,m(e.meta,F));let N=S.map(e=>oe.get(e)).filter(e=>!!e);return N.length>0&&await n.note(N.join(`
18
18
  `),`Selected channels`),r?.skipDmPolicyPrompt||(i=await vn({cfg:i,selection:S,prompter:n,accountIdsByChannel:x})),i}export{Ve as a,Be as i,un as n,yn as r,hn as t};
19
- //# sourceMappingURL=onboard-channels-CZK_7xMR.js.map
19
+ //# sourceMappingURL=onboard-channels-BXReNh4B.js.map
@@ -1,4 +1,4 @@
1
- import{t as e}from"./rolldown-runtime-CNxR59P3.js";import{t}from"./subsystem-C5XF2Fy5.js";import{h as n,m as r,t as i}from"./utils-UGOV_184.js";import{Qr as a,Xr as o,Zr as s}from"./model-selection-BlC_rXAN.js";import{Tt as c,at as l,bt as u,li as d,ot as f,ui as p}from"./reply-l-Y47HP4.js";import{d as m,f as h}from"./agent-scope-DXZc3eNT.js";import{_ as g,g as _}from"./session-key-D3P0tf5P.js";import{a as v}from"./types.secrets-C-5U96pc.js";import{t as y}from"./command-format-BbDT1tlm.js";import{i as ee,o as te,r as ne}from"./registry-hFAtCSWG.js";import{g as b}from"./skills-DHbOKEGc.js";import{D as re,E as ie,H as x,O as S,T as C,V as ae,W as w,a as oe,at as T,c as se,ft as E,gt as D,ht as ce,it as O,l as le,lt as ue,n as k,ot as A,t as j,u as de,ut as fe}from"./plugins-CYLrFT4h.js";import{t as M}from"./exec-DHqLtFYt.js";import{dt as pe}from"./send-hZFDcGLM.js";import{a as me,n as he}from"./plugin-auto-enable-DpVL6-ES.js";import{o as ge}from"./send-DbeEC2a3.js";import{r as N}from"./onboard-helpers-zwybUJWu.js";import{t as P}from"./links-CySwdMcF.js";import{t as _e}from"./login-CkWesqf_.js";import{t as ve}from"./brew-COcDl8CB.js";import{n as ye,r as be,t as xe}from"./api-Dx8x1KTs.js";import{t as F}from"./enable-Ccf9wSM8.js";import{s as Se}from"./install-safe-path-iesxijn2.js";import{a as Ce,i as we,n as Te,s as Ee,t as De}from"./installs-BNeI_oML.js";import{n as Oe}from"./plugin-install-plan-BobX0y9S.js";import{c as ke,s as Ae}from"./auth-choice.apply-helpers-gaL-oSft.js";import je,{createWriteStream as Me}from"node:fs";import Ne from"node:os";import I from"node:path";import L from"node:fs/promises";import{pipeline as Pe}from"node:stream/promises";import{request as Fe}from"node:https";function Ie(e){let t=new Set;t.add(I.join(process.cwd(),`.git`)),e&&e!==process.cwd()&&t.add(I.join(e,`.git`));for(let e of t)if(je.existsSync(e))return!0;return!1}function Le(e,t,n){if(!n)return null;let r=e.install.localPath?.trim();if(!r)return null;let i=new Set;i.add(I.resolve(process.cwd(),r)),t&&t!==process.cwd()&&i.add(I.resolve(t,r));for(let e of i)if(je.existsSync(e))return e;return null}function Re(e,t){let n=e.plugins?.load?.paths??[],r=Array.from(new Set([...n,t]));return{...e,plugins:{...e.plugins,load:{...e.plugins?.load,paths:r}}}}async function ze(e){let{entry:t,localPath:n,prompter:r,defaultChoice:i}=e,a=n?[{value:`local`,label:`Use local plugin path`,hint:n}]:[],o=[{value:`npm`,label:`Download from npm (${t.install.npmSpec})`},...a,{value:`skip`,label:`Skip for now`}],s=i===`local`&&!n?`npm`:i;return await r.select({message:`Install ${t.meta.label} plugin?`,options:o,initialValue:s})}function Be(e){let{cfg:t,entry:n,localPath:r,bundledLocalPath:i}=e;if(i)return`local`;let a=t.update?.channel;if(a===`dev`)return r?`local`:`npm`;if(a===`stable`||a===`beta`)return`npm`;let o=n.install.defaultChoice;return o===`local`?r?`local`:`npm`:o===`npm`?`npm`:r?`local`:`npm`}async function Ve(e){let{entry:t,prompter:n,runtime:r,workspaceDir:i}=e,a=e.cfg,o=Ie(i),s=Ce({workspaceDir:i}),c=Oe({pluginId:t.id,npmSpec:t.install.npmSpec,findBundledSource:e=>we({bundled:s,lookup:e})})?.bundledSource.localPath??null,l=c??Le(t,i,o),u=await ze({entry:t,localPath:l,defaultChoice:Be({cfg:a,entry:t,localPath:l,bundledLocalPath:c}),prompter:n});if(u===`skip`)return{cfg:a,installed:!1};if(u===`local`&&l)return a=Re(a,l),a=F(a,t.id).config,{cfg:a,installed:!0};let d=await Ee({spec:t.install.npmSpec,logger:{info:e=>r.log?.(e),warn:e=>r.log?.(e)}});return d.ok?(a=F(a,d.pluginId).config,a=Te(a,{pluginId:d.pluginId,source:`npm`,spec:t.install.npmSpec,installPath:d.targetDir,version:d.version,...De(d.npmResolution)}),{cfg:a,installed:!0}):(await n.note(`Failed to install ${t.install.npmSpec}: ${d.error}`,`Plugin install`),l&&await n.confirm({message:`Use local plugin path instead? (${l})`,initialValue:!0})?(a=Re(a,l),a=F(a,t.id).config,{cfg:a,installed:!0}):(r.error?.(`Plugin install failed: ${d.error}`),{cfg:a,installed:!1}))}function He(e){b();let n=e.workspaceDir??m(e.cfg,h(e.cfg)),r=t(`plugins`);f({config:e.cfg,workspaceDir:n,cache:!1,logger:l(r)})}async function Ue(e){let t=e.listAccountIds(e.cfg),n=e.currentId?.trim()||e.defaultAccountId||`default`,r=await e.prompter.select({message:`${e.label} account`,options:[...t.map(e=>({value:e,label:e===`default`?`default (primary)`:e})),{value:`__new__`,label:`Add a new account`}],initialValue:n});if(r!==`__new__`)return g(r);let i=await e.prompter.text({message:`New ${e.label} account id`,validate:e=>e?.trim()?void 0:`Required`}),a=g(String(i));return String(i).trim()!==a&&await e.prompter.note(`Normalized account id to "${a}".`,`${e.label} account`),a}const We=async e=>await Ue(e);function Ge(e){let t=(e??[]).map(e=>String(e).trim()).filter(Boolean);return t.includes(`*`)||t.push(`*`),t}function Ke(e,t){let n=[...e??[],...t].map(e=>String(e).trim()).filter(Boolean);return[...new Set(n)]}function R(e){return e.split(/[\n,;]+/g).map(e=>e.trim()).filter(Boolean)}function qe(e,t){let n=R(String(e??``)),r=[];for(let e of n){let n=t(e);if(`error`in n)return{entries:[],error:n.error};r.push(n.value)}return{entries:z(r)}}function Je(e,t){return qe(e,e=>e===`*`?{value:`*`}:t(e))}function Ye(e){let t=e.value.trim();if(!t)return null;let n=t.match(e.mentionPattern);if(n?.[1])return e.normalizeId?e.normalizeId(n[1]):n[1];let r=e.prefixPattern?t.replace(e.prefixPattern,``):t;return e.idPattern.test(r)?e.normalizeId?e.normalizeId(r):r:null}function z(e,t){let n=e.map(e=>String(e).trim()).filter(Boolean).map(e=>{if(e===`*`)return`*`;if(!t)return e;let n=t(e);return typeof n==`string`?n.trim():``}).filter(Boolean);return[...new Set(n)]}function B(e){return e.accountId?.trim()?g(e.accountId):e.defaultAccountId}async function V(e){let t=e.accountOverride?.trim(),n=t?g(t):e.defaultAccountId;return e.shouldPromptAccountIds&&!t&&(n=await We({cfg:e.cfg,prompter:e.prompter,label:e.label,currentId:n,listAccountIds:e.listAccountIds,defaultAccountId:e.defaultAccountId})),n}function Xe(e){let{cfg:t,channel:n,accountId:r,allowFrom:i}=e;return nt({cfg:t,channel:n,accountId:r,patch:{allowFrom:i},ensureEnabled:!1})}function Ze(e){let{cfg:t,channel:n,dmPolicy:r}=e,i=r===`open`?Ge(t.channels?.[n]?.allowFrom):void 0;return{...t,channels:{...t.channels,[n]:{...t.channels?.[n],dmPolicy:r,...i?{allowFrom:i}:{}}}}}function Qe(e){let t=e.cfg.channels?.[e.channel]??{allowFrom:void 0,dm:void 0},n=t.allowFrom??t.dm?.allowFrom,r=e.dmPolicy===`open`?Ge(n):void 0;return tt({cfg:e.cfg,channel:e.channel,patch:{dmPolicy:e.dmPolicy,...r?{allowFrom:r}:{}}})}function $e(e){return tt({cfg:e.cfg,channel:e.channel,patch:{allowFrom:e.allowFrom}})}function et(e){return U({cfg:e.cfg,channel:e.channel,accountId:e.accountId,patch:{groupPolicy:e.groupPolicy}})}function tt(e){let{cfg:t,channel:n,patch:r}=e,i=t.channels?.[n]??{},a=i.dm??{};return{...t,channels:{...t.channels,[n]:{...i,...r,dm:{...a,enabled:typeof a.enabled==`boolean`?a.enabled:!0}}}}}function H(e,t,n){let r=e.channels?.[t]??{};return{...e,channels:{...e.channels,[t]:{...r,enabled:n}}}}function nt(e){let{cfg:t,channel:n,accountId:r,patch:i,ensureEnabled:a}=e;return be({cfg:r===`default`?t:ye({cfg:t,channelKey:n}),channelKey:n,accountId:r,patch:i,ensureChannelEnabled:a,ensureAccountEnabled:a})}function U(e){return nt({...e,ensureEnabled:!0})}function W(e){let t=e.cfg;return e.tokenResult.useEnv&&(t=U({cfg:t,channel:e.channel,accountId:e.accountId,patch:{}})),e.tokenResult.token&&(t=U({cfg:t,channel:e.channel,accountId:e.accountId,patch:{[e.tokenPatchKey]:e.tokenResult.token}})),t}function rt(e){return{accountConfigured:e.accountConfigured,hasConfigToken:e.hasConfigToken,canUseEnv:e.allowEnv&&!!e.envValue?.trim()&&!e.hasConfigToken}}async function it(e){let t=async()=>String(await e.prompter.text({message:e.inputPrompt,validate:e=>e?.trim()?void 0:`Required`})).trim();return e.canUseEnv?await e.prompter.confirm({message:e.envPrompt,initialValue:!0})?{useEnv:!0,token:null}:{useEnv:!1,token:await t()}:e.hasConfigToken&&e.accountConfigured&&await e.prompter.confirm({message:e.keepPrompt,initialValue:!0})?{useEnv:!1,token:null}:{useEnv:!1,token:await t()}}async function G(e){let t=rt({accountConfigured:e.accountConfigured,hasConfigToken:e.hasConfigToken,allowEnv:e.allowEnv,envValue:e.envValue});!t.accountConfigured&&e.onMissingConfigured&&await e.onMissingConfigured();let n=await at({cfg:e.cfg,prompter:e.prompter,providerHint:e.providerHint,credentialLabel:e.credentialLabel,secretInputMode:e.secretInputMode,accountConfigured:t.accountConfigured,canUseEnv:t.canUseEnv,hasConfigToken:t.hasConfigToken,envPrompt:e.envPrompt,keepPrompt:e.keepPrompt,inputPrompt:e.inputPrompt,preferredEnvVar:e.preferredEnvVar});return n.action===`use-env`?{cfg:e.applyUseEnv?await e.applyUseEnv(e.cfg):e.cfg,action:n.action,resolvedValue:e.envValue?.trim()||void 0}:n.action===`set`?{cfg:e.applySet?await e.applySet(e.cfg,n.value,n.resolvedValue):e.cfg,action:n.action,resolvedValue:n.resolvedValue}:{cfg:e.cfg,action:n.action}}async function at(e){if(await ke({prompter:e.prompter,explicitMode:e.secretInputMode,copy:{modeMessage:`How do you want to provide this ${e.credentialLabel}?`,plaintextLabel:`Enter ${e.credentialLabel}`,plaintextHint:`Stores the credential directly in OpenClaw config`,refLabel:`Use external secret provider`,refHint:`Stores a reference to env or configured external secret providers`}})===`plaintext`){let t=await it({prompter:e.prompter,accountConfigured:e.accountConfigured,canUseEnv:e.canUseEnv,hasConfigToken:e.hasConfigToken,envPrompt:e.envPrompt,keepPrompt:e.keepPrompt,inputPrompt:e.inputPrompt});return t.useEnv?{action:`use-env`}:t.token?{action:`set`,value:t.token,resolvedValue:t.token}:{action:`keep`}}if(e.hasConfigToken&&e.accountConfigured&&await e.prompter.confirm({message:e.keepPrompt,initialValue:!0}))return{action:`keep`};let t=await Ae({provider:e.providerHint,config:e.cfg,prompter:e.prompter,preferredEnvVar:e.preferredEnvVar,copy:{sourceMessage:`Where is this ${e.credentialLabel} stored?`,envVarPlaceholder:e.preferredEnvVar??`OPENCLAW_SECRET`,envVarFormatError:`Use an env var name like "OPENCLAW_SECRET" (uppercase letters, numbers, underscores).`,noProvidersMessage:`No file/exec secret providers are configured yet. Add one under secrets.providers, or select Environment variable.`}});return{action:`set`,value:t.ref,resolvedValue:t.resolvedValue}}async function ot(e){let t=B({accountId:e.accountId,defaultAccountId:e.defaultAccountId}),n=e.getExistingAllowFrom({cfg:e.cfg,accountId:t});await e.prompter.note(e.noteLines.join(`
1
+ import{t as e}from"./rolldown-runtime-CNxR59P3.js";import{t}from"./subsystem-C5XF2Fy5.js";import{h as n,m as r,t as i}from"./utils-UGOV_184.js";import{Qr as a,Xr as o,Zr as s}from"./model-selection-BlC_rXAN.js";import{Tt as c,at as l,bt as u,li as d,ot as f,ui as p}from"./reply-CjyZeZ-j.js";import{d as m,f as h}from"./agent-scope-DXZc3eNT.js";import{_ as g,g as _}from"./session-key-D3P0tf5P.js";import{a as v}from"./types.secrets-C-5U96pc.js";import{t as y}from"./command-format-BbDT1tlm.js";import{i as ee,o as te,r as ne}from"./registry-hFAtCSWG.js";import{g as b}from"./skills-DHbOKEGc.js";import{D as re,E as ie,H as x,O as S,T as C,V as ae,W as w,a as oe,at as T,c as se,ft as E,gt as D,ht as ce,it as O,l as le,lt as ue,n as k,ot as A,t as j,u as de,ut as fe}from"./plugins-CYLrFT4h.js";import{t as M}from"./exec-DHqLtFYt.js";import{dt as pe}from"./send-hZFDcGLM.js";import{a as me,n as he}from"./plugin-auto-enable-DpVL6-ES.js";import{o as ge}from"./send-DbeEC2a3.js";import{r as N}from"./onboard-helpers-zwybUJWu.js";import{t as P}from"./links-CySwdMcF.js";import{t as _e}from"./login-CkWesqf_.js";import{t as ve}from"./brew-COcDl8CB.js";import{n as ye,r as be,t as xe}from"./api-Dx8x1KTs.js";import{t as F}from"./enable-Ccf9wSM8.js";import{s as Se}from"./install-safe-path-iesxijn2.js";import{a as Ce,i as we,n as Te,s as Ee,t as De}from"./installs-BNeI_oML.js";import{n as Oe}from"./plugin-install-plan-BobX0y9S.js";import{c as ke,s as Ae}from"./auth-choice.apply-helpers-gaL-oSft.js";import je,{createWriteStream as Me}from"node:fs";import Ne from"node:os";import I from"node:path";import L from"node:fs/promises";import{pipeline as Pe}from"node:stream/promises";import{request as Fe}from"node:https";function Ie(e){let t=new Set;t.add(I.join(process.cwd(),`.git`)),e&&e!==process.cwd()&&t.add(I.join(e,`.git`));for(let e of t)if(je.existsSync(e))return!0;return!1}function Le(e,t,n){if(!n)return null;let r=e.install.localPath?.trim();if(!r)return null;let i=new Set;i.add(I.resolve(process.cwd(),r)),t&&t!==process.cwd()&&i.add(I.resolve(t,r));for(let e of i)if(je.existsSync(e))return e;return null}function Re(e,t){let n=e.plugins?.load?.paths??[],r=Array.from(new Set([...n,t]));return{...e,plugins:{...e.plugins,load:{...e.plugins?.load,paths:r}}}}async function ze(e){let{entry:t,localPath:n,prompter:r,defaultChoice:i}=e,a=n?[{value:`local`,label:`Use local plugin path`,hint:n}]:[],o=[{value:`npm`,label:`Download from npm (${t.install.npmSpec})`},...a,{value:`skip`,label:`Skip for now`}],s=i===`local`&&!n?`npm`:i;return await r.select({message:`Install ${t.meta.label} plugin?`,options:o,initialValue:s})}function Be(e){let{cfg:t,entry:n,localPath:r,bundledLocalPath:i}=e;if(i)return`local`;let a=t.update?.channel;if(a===`dev`)return r?`local`:`npm`;if(a===`stable`||a===`beta`)return`npm`;let o=n.install.defaultChoice;return o===`local`?r?`local`:`npm`:o===`npm`?`npm`:r?`local`:`npm`}async function Ve(e){let{entry:t,prompter:n,runtime:r,workspaceDir:i}=e,a=e.cfg,o=Ie(i),s=Ce({workspaceDir:i}),c=Oe({pluginId:t.id,npmSpec:t.install.npmSpec,findBundledSource:e=>we({bundled:s,lookup:e})})?.bundledSource.localPath??null,l=c??Le(t,i,o),u=await ze({entry:t,localPath:l,defaultChoice:Be({cfg:a,entry:t,localPath:l,bundledLocalPath:c}),prompter:n});if(u===`skip`)return{cfg:a,installed:!1};if(u===`local`&&l)return a=Re(a,l),a=F(a,t.id).config,{cfg:a,installed:!0};let d=await Ee({spec:t.install.npmSpec,logger:{info:e=>r.log?.(e),warn:e=>r.log?.(e)}});return d.ok?(a=F(a,d.pluginId).config,a=Te(a,{pluginId:d.pluginId,source:`npm`,spec:t.install.npmSpec,installPath:d.targetDir,version:d.version,...De(d.npmResolution)}),{cfg:a,installed:!0}):(await n.note(`Failed to install ${t.install.npmSpec}: ${d.error}`,`Plugin install`),l&&await n.confirm({message:`Use local plugin path instead? (${l})`,initialValue:!0})?(a=Re(a,l),a=F(a,t.id).config,{cfg:a,installed:!0}):(r.error?.(`Plugin install failed: ${d.error}`),{cfg:a,installed:!1}))}function He(e){b();let n=e.workspaceDir??m(e.cfg,h(e.cfg)),r=t(`plugins`);f({config:e.cfg,workspaceDir:n,cache:!1,logger:l(r)})}async function Ue(e){let t=e.listAccountIds(e.cfg),n=e.currentId?.trim()||e.defaultAccountId||`default`,r=await e.prompter.select({message:`${e.label} account`,options:[...t.map(e=>({value:e,label:e===`default`?`default (primary)`:e})),{value:`__new__`,label:`Add a new account`}],initialValue:n});if(r!==`__new__`)return g(r);let i=await e.prompter.text({message:`New ${e.label} account id`,validate:e=>e?.trim()?void 0:`Required`}),a=g(String(i));return String(i).trim()!==a&&await e.prompter.note(`Normalized account id to "${a}".`,`${e.label} account`),a}const We=async e=>await Ue(e);function Ge(e){let t=(e??[]).map(e=>String(e).trim()).filter(Boolean);return t.includes(`*`)||t.push(`*`),t}function Ke(e,t){let n=[...e??[],...t].map(e=>String(e).trim()).filter(Boolean);return[...new Set(n)]}function R(e){return e.split(/[\n,;]+/g).map(e=>e.trim()).filter(Boolean)}function qe(e,t){let n=R(String(e??``)),r=[];for(let e of n){let n=t(e);if(`error`in n)return{entries:[],error:n.error};r.push(n.value)}return{entries:z(r)}}function Je(e,t){return qe(e,e=>e===`*`?{value:`*`}:t(e))}function Ye(e){let t=e.value.trim();if(!t)return null;let n=t.match(e.mentionPattern);if(n?.[1])return e.normalizeId?e.normalizeId(n[1]):n[1];let r=e.prefixPattern?t.replace(e.prefixPattern,``):t;return e.idPattern.test(r)?e.normalizeId?e.normalizeId(r):r:null}function z(e,t){let n=e.map(e=>String(e).trim()).filter(Boolean).map(e=>{if(e===`*`)return`*`;if(!t)return e;let n=t(e);return typeof n==`string`?n.trim():``}).filter(Boolean);return[...new Set(n)]}function B(e){return e.accountId?.trim()?g(e.accountId):e.defaultAccountId}async function V(e){let t=e.accountOverride?.trim(),n=t?g(t):e.defaultAccountId;return e.shouldPromptAccountIds&&!t&&(n=await We({cfg:e.cfg,prompter:e.prompter,label:e.label,currentId:n,listAccountIds:e.listAccountIds,defaultAccountId:e.defaultAccountId})),n}function Xe(e){let{cfg:t,channel:n,accountId:r,allowFrom:i}=e;return nt({cfg:t,channel:n,accountId:r,patch:{allowFrom:i},ensureEnabled:!1})}function Ze(e){let{cfg:t,channel:n,dmPolicy:r}=e,i=r===`open`?Ge(t.channels?.[n]?.allowFrom):void 0;return{...t,channels:{...t.channels,[n]:{...t.channels?.[n],dmPolicy:r,...i?{allowFrom:i}:{}}}}}function Qe(e){let t=e.cfg.channels?.[e.channel]??{allowFrom:void 0,dm:void 0},n=t.allowFrom??t.dm?.allowFrom,r=e.dmPolicy===`open`?Ge(n):void 0;return tt({cfg:e.cfg,channel:e.channel,patch:{dmPolicy:e.dmPolicy,...r?{allowFrom:r}:{}}})}function $e(e){return tt({cfg:e.cfg,channel:e.channel,patch:{allowFrom:e.allowFrom}})}function et(e){return U({cfg:e.cfg,channel:e.channel,accountId:e.accountId,patch:{groupPolicy:e.groupPolicy}})}function tt(e){let{cfg:t,channel:n,patch:r}=e,i=t.channels?.[n]??{},a=i.dm??{};return{...t,channels:{...t.channels,[n]:{...i,...r,dm:{...a,enabled:typeof a.enabled==`boolean`?a.enabled:!0}}}}}function H(e,t,n){let r=e.channels?.[t]??{};return{...e,channels:{...e.channels,[t]:{...r,enabled:n}}}}function nt(e){let{cfg:t,channel:n,accountId:r,patch:i,ensureEnabled:a}=e;return be({cfg:r===`default`?t:ye({cfg:t,channelKey:n}),channelKey:n,accountId:r,patch:i,ensureChannelEnabled:a,ensureAccountEnabled:a})}function U(e){return nt({...e,ensureEnabled:!0})}function W(e){let t=e.cfg;return e.tokenResult.useEnv&&(t=U({cfg:t,channel:e.channel,accountId:e.accountId,patch:{}})),e.tokenResult.token&&(t=U({cfg:t,channel:e.channel,accountId:e.accountId,patch:{[e.tokenPatchKey]:e.tokenResult.token}})),t}function rt(e){return{accountConfigured:e.accountConfigured,hasConfigToken:e.hasConfigToken,canUseEnv:e.allowEnv&&!!e.envValue?.trim()&&!e.hasConfigToken}}async function it(e){let t=async()=>String(await e.prompter.text({message:e.inputPrompt,validate:e=>e?.trim()?void 0:`Required`})).trim();return e.canUseEnv?await e.prompter.confirm({message:e.envPrompt,initialValue:!0})?{useEnv:!0,token:null}:{useEnv:!1,token:await t()}:e.hasConfigToken&&e.accountConfigured&&await e.prompter.confirm({message:e.keepPrompt,initialValue:!0})?{useEnv:!1,token:null}:{useEnv:!1,token:await t()}}async function G(e){let t=rt({accountConfigured:e.accountConfigured,hasConfigToken:e.hasConfigToken,allowEnv:e.allowEnv,envValue:e.envValue});!t.accountConfigured&&e.onMissingConfigured&&await e.onMissingConfigured();let n=await at({cfg:e.cfg,prompter:e.prompter,providerHint:e.providerHint,credentialLabel:e.credentialLabel,secretInputMode:e.secretInputMode,accountConfigured:t.accountConfigured,canUseEnv:t.canUseEnv,hasConfigToken:t.hasConfigToken,envPrompt:e.envPrompt,keepPrompt:e.keepPrompt,inputPrompt:e.inputPrompt,preferredEnvVar:e.preferredEnvVar});return n.action===`use-env`?{cfg:e.applyUseEnv?await e.applyUseEnv(e.cfg):e.cfg,action:n.action,resolvedValue:e.envValue?.trim()||void 0}:n.action===`set`?{cfg:e.applySet?await e.applySet(e.cfg,n.value,n.resolvedValue):e.cfg,action:n.action,resolvedValue:n.resolvedValue}:{cfg:e.cfg,action:n.action}}async function at(e){if(await ke({prompter:e.prompter,explicitMode:e.secretInputMode,copy:{modeMessage:`How do you want to provide this ${e.credentialLabel}?`,plaintextLabel:`Enter ${e.credentialLabel}`,plaintextHint:`Stores the credential directly in OpenClaw config`,refLabel:`Use external secret provider`,refHint:`Stores a reference to env or configured external secret providers`}})===`plaintext`){let t=await it({prompter:e.prompter,accountConfigured:e.accountConfigured,canUseEnv:e.canUseEnv,hasConfigToken:e.hasConfigToken,envPrompt:e.envPrompt,keepPrompt:e.keepPrompt,inputPrompt:e.inputPrompt});return t.useEnv?{action:`use-env`}:t.token?{action:`set`,value:t.token,resolvedValue:t.token}:{action:`keep`}}if(e.hasConfigToken&&e.accountConfigured&&await e.prompter.confirm({message:e.keepPrompt,initialValue:!0}))return{action:`keep`};let t=await Ae({provider:e.providerHint,config:e.cfg,prompter:e.prompter,preferredEnvVar:e.preferredEnvVar,copy:{sourceMessage:`Where is this ${e.credentialLabel} stored?`,envVarPlaceholder:e.preferredEnvVar??`OPENCLAW_SECRET`,envVarFormatError:`Use an env var name like "OPENCLAW_SECRET" (uppercase letters, numbers, underscores).`,noProvidersMessage:`No file/exec secret providers are configured yet. Add one under secrets.providers, or select Environment variable.`}});return{action:`set`,value:t.ref,resolvedValue:t.resolvedValue}}async function ot(e){let t=B({accountId:e.accountId,defaultAccountId:e.defaultAccountId}),n=e.getExistingAllowFrom({cfg:e.cfg,accountId:t});await e.prompter.note(e.noteLines.join(`
2
2
  `),e.noteTitle);let r=await e.prompter.text({message:e.message,placeholder:e.placeholder,initialValue:n[0]?String(n[0]):void 0,validate:t=>{let n=String(t??``).trim();return n?e.parseEntries(n).error:`Required`}}),i=Ke(void 0,e.parseEntries(String(r)).entries);return Xe({cfg:e.cfg,channel:e.channel,accountId:t,allowFrom:i})}async function st(e){let t=[];for(let n of e.resolvedSections)n.values.length!==0&&t.push(`${n.title}: ${n.values.join(`, `)}`);e.unresolved&&e.unresolved.length>0&&t.push(`Unresolved (kept as typed): ${e.unresolved.join(`, `)}`),t.length>0&&await e.prompter.note(t.join(`
3
3
  `),e.label)}async function ct(e){await e.prompter.note(`Channel lookup failed; keeping entries as typed. ${String(e.error)}`,e.label)}async function lt(e){for(;;){let t=await e.prompter.text({message:e.message,placeholder:e.placeholder,initialValue:e.existing[0]?String(e.existing[0]):void 0,validate:e=>String(e??``).trim()?void 0:`Required`}),n=e.parseInputs(String(t));if(!e.token){let t=n.map(e.parseId).filter(Boolean);if(t.length!==n.length){await e.prompter.note(e.invalidWithoutTokenNote,e.label);continue}return Ke(e.existing,t)}let r=await e.resolveEntries({token:e.token,entries:n}).catch(()=>null);if(!r){await e.prompter.note(`Failed to resolve usernames. Try again.`,e.label);continue}let i=r.filter(e=>!e.resolved||!e.id);if(i.length>0){await e.prompter.note(`Could not resolve: ${i.map(e=>e.input).join(`, `)}`,e.label);continue}let a=r.map(e=>e.id);return Ke(e.existing,a)}}async function ut(e){await e.prompter.note(e.noteLines.join(`
4
4
  `),e.noteTitle);let t=await lt({prompter:e.prompter,existing:e.existing,token:e.token,message:e.message,placeholder:e.placeholder,label:e.noteTitle,parseInputs:R,parseId:e.parseId,invalidWithoutTokenNote:e.invalidWithoutTokenNote,resolveEntries:e.resolveEntries});return $e({cfg:e.cfg,channel:e.channel,allowFrom:t})}function dt(e){return R(String(e??``))}function ft(e){return e.map(e=>e.trim()).filter(Boolean).join(`, `)}async function pt(e){let t=[{value:`allowlist`,label:`Allowlist (recommended)`}];e.allowOpen!==!1&&t.push({value:`open`,label:`Open (allow all channels)`}),e.allowDisabled!==!1&&t.push({value:`disabled`,label:`Disabled (block all channels)`});let n=e.currentPolicy??`allowlist`;return await e.prompter.select({message:`${e.label} access`,options:t,initialValue:n})}async function mt(e){let t=e.currentEntries&&e.currentEntries.length>0?ft(e.currentEntries):void 0;return dt(await e.prompter.text({message:`${e.label} allowlist (comma-separated)`,placeholder:e.placeholder,initialValue:t}))}async function ht(e){let t=(e.currentEntries??[]).length>0,n=e.defaultPrompt??!t;if(!await e.prompter.confirm({message:e.updatePrompt?`Update ${e.label} access?`:`Configure ${e.label} access?`,initialValue:n}))return null;let r=await pt({prompter:e.prompter,label:e.label,currentPolicy:e.currentPolicy,allowOpen:e.allowOpen,allowDisabled:e.allowDisabled});return r===`allowlist`?{policy:r,entries:await mt({prompter:e.prompter,label:e.label,currentEntries:e.currentEntries,placeholder:e.placeholder})}:{policy:r,entries:[]}}async function gt(e){let t=e.cfg,n=await ht({prompter:e.prompter,label:e.label,currentPolicy:e.currentPolicy,currentEntries:e.currentEntries,placeholder:e.placeholder,updatePrompt:e.updatePrompt});if(!n)return t;if(n.policy!==`allowlist`)return e.setPolicy(t,n.policy);let r=await e.resolveAllowlist({cfg:t,entries:n.entries});return t=e.setPolicy(t,`allowlist`),e.applyAllowlist({cfg:t,resolved:r})}const K=`discord`;async function _t(e){await e.note([`1) Discord Developer Portal → Applications → New Application`,`2) Bot → Add Bot → Reset Token → copy token`,`3) OAuth2 → URL Generator → scope 'bot' → invite to your server`,`Tip: enable Message Content Intent if you need message text. (Bot → Privileged Gateway Intents → Message Content Intent)`,`Docs: ${P(`/discord`,`discord`)}`].join(`
@@ -16,4 +16,4 @@ import{t as e}from"./rolldown-runtime-CNxR59P3.js";import{t}from"./subsystem-C5X
16
16
  `),`${e.label} DM access`),await n.select({message:`${e.label} DM policy`,options:[{value:`pairing`,label:`Pairing (recommended)`},{value:`allowlist`,label:`Allowlist (specific users only)`},{value:`open`,label:`Open (public inbound DMs)`},{value:`disabled`,label:`Disabled (ignore DMs)`}]}));for(let e of i){let t=e.getCurrent(a),i=await o(e);i!==t&&(a=e.setPolicy(a,i)),i===`allowlist`&&e.promptAllowFrom&&(a=await e.promptAllowFrom({cfg:a,prompter:n,accountId:r?.get(e.channel)}))}return a}async function yn(e,t,n,r){let i=e,a=new Set(r?.forceAllowFromChannels??[]),o={...r?.accountIds};r?.whatsappAccountId?.trim()&&(o.whatsapp=r.whatsappAccountId.trim());let{installedPlugins:s,catalogEntries:c,statusByChannel:l,statusLines:u}=await mn({cfg:i,options:r,accountOverrides:o});if(!r?.skipStatusNote&&u.length>0&&await n.note(u.join(`
17
17
  `),`Channel status`),!(r?.skipConfirm||await n.confirm({message:`Configure chat channels now?`,initialValue:!0})))return e;let d=te().map(e=>({id:e.id,label:e.label,blurb:e.blurb})),f=new Set(d.map(e=>e.id));await gn(n,[...d,...s.filter(e=>!f.has(e.id)).map(e=>({id:e.id,label:e.meta.label,blurb:e.meta.blurb})),...c.filter(e=>!f.has(e.id)).map(e=>({id:e.id,label:e.meta.label,blurb:e.meta.blurb}))]);let p=r?.initialSelection?.[0]??_n(l),_=r?.promptAccountIds===!0,v=new Map,ne=(e,t)=>{r?.onAccountId?.(e,t),$(e)?.onAccountRecorded?.(t,r),v.set(e,t)},b=[],re=e=>{b.includes(e)||b.push(e)},ie=e=>{let t=j(e);if(!t)return i.plugins?.entries?.[e]?.enabled===!1?`plugin disabled`:i.plugins?.enabled===!1?`plugins disabled`:void 0;let n=ue({plugin:t,cfg:i}),r=t.config.resolveAccount(i,n),a;return t.config.isEnabled?a=t.config.isEnabled(r,i):typeof r?.enabled==`boolean`?a=r.enabled:typeof i.channels?.[e]?.enabled==`boolean`&&(a=i.channels[e]?.enabled),a===!1?`disabled`:void 0},x=e=>e.map(e=>{let t=l.get(e.id),n=ie(e.id),r=[t?.selectionHint,n].filter(Boolean).join(` · `)||void 0;return{value:e.meta.id,label:e.meta.selectionLabel??e.meta.label,...r?{hint:r}:{}}}),S=()=>{let e=te(),t=k(),n=new Set(t.map(e=>e.id)),r=me({workspaceDir:m(i,h(i))}).filter(e=>!n.has(e.id)),a=new Map;for(let t of e)a.set(t.id,t);for(let e of t)a.set(e.id,e.meta);for(let e of r)a.has(e.id)||a.set(e.id,e.meta);return{entries:Array.from(a,([e,t])=>({id:e,meta:t})),catalog:r,catalogById:new Map(r.map(e=>[e.id,e]))}},C=async e=>{let t=$(e);if(!t)return;let n=await t.getStatus({cfg:i,options:r,accountOverrides:o});l.set(e,n)},ae=async e=>{if(j(e))return!0;let r=F(i,e);if(i=r.config,!r.enabled)return await n.note(`Cannot enable ${e}: ${r.reason??`plugin disabled`}.`,`Channel setup`),!1;let a=m(i,h(i));return He({cfg:i,runtime:t,workspaceDir:a}),j(e)?(await C(e),!0):$(e)?(await n.note(`${e} plugin not available (continuing with onboarding). If the channel still doesn't work after setup, run \`${y(`openclaw plugins list`)}\` and \`${y(`openclaw plugins enable `+e)}\`, then restart the gateway.`,`Channel setup`),await C(e),!0):(await n.note(`${e} plugin not available.`,`Channel setup`),!1)},w=async(e,t)=>{i=t.cfg,t.accountId&&ne(e,t.accountId),re(e),await C(e)},oe=async(e,t)=>t===`skip`?!1:(await w(e,t),!0),T=async e=>{let s=$(e);if(!s){await n.note(`${e} does not support onboarding yet.`,`Channel setup`);return}await w(e,await s.configure({cfg:i,runtime:t,prompter:n,options:r,accountOverrides:o,shouldPromptAccountIds:_,forceAllowFrom:a.has(e)}))},se=async(e,s)=>{let c=j(e),l=$(e);if(l?.configureWhenConfigured)return await oe(e,await l.configureWhenConfigured({cfg:i,runtime:t,prompter:n,options:r,accountOverrides:o,shouldPromptAccountIds:_,forceAllowFrom:a.has(e),configured:!0,label:s})),void 0;let u=!!(r?.allowDisable&&(c?.config.setAccountEnabled||l?.disable)),d=!!(r?.allowDisable&&c?.config.deleteAccount),f=await fn({prompter:n,label:s,supportsDisable:u,supportsDelete:d});if(f===`skip`)return;if(f===`update`){await T(e);return}if(!r?.allowDisable)return;if(f===`delete`&&!d){await n.note(`${s} does not support deleting config entries.`,`Remove channel`);return}let p=g((f===`delete`?c?.config.deleteAccount:c?.config.setAccountEnabled)?await pn({cfg:i,prompter:n,label:s,channel:e}):`default`)??(c?ue({plugin:c,cfg:i}):`default`),m=dn(p);if(f===`delete`){if(!await n.confirm({message:`Delete ${s} account "${m}"?`,initialValue:!1}))return;c?.config.deleteAccount&&(i=c.config.deleteAccount({cfg:i,accountId:p})),await C(e);return}c?.config.setAccountEnabled?i=c.config.setAccountEnabled({cfg:i,accountId:p,enabled:!1}):l?.disable&&(i=l.disable(i)),await C(e)},E=async e=>{let{catalogById:s}=S(),c=s.get(e);if(c){let r=m(i,h(i)),a=await Ve({cfg:i,entry:c,prompter:n,runtime:t,workspaceDir:r});if(i=a.cfg,!a.installed)return;He({cfg:i,runtime:t,workspaceDir:r}),await C(e)}else if(!await ae(e))return;let u=j(e),d=$(e),f=u?.meta.label??c?.meta.label??e,p=l.get(e)?.configured??!1;if(d?.configureInteractive)return await oe(e,await d.configureInteractive({cfg:i,runtime:t,prompter:n,options:r,accountOverrides:o,shouldPromptAccountIds:_,forceAllowFrom:a.has(e),configured:p,label:f})),void 0;if(p){await se(e,f);return}await T(e)};if(r?.quickstartDefaults){let{entries:e}=S(),t=await n.select({message:`Select channel (QuickStart)`,options:[...x(e),{value:`__skip__`,label:`Skip for now`,hint:`You can add channels later via \`${y(`openclaw channels add`)}\``}],initialValue:p});t!==`__skip__`&&await E(t)}else{let e=`__done__`,t=r?.initialSelection?.[0]??p;for(;;){let{entries:r}=S(),i=await n.select({message:`Select a channel`,options:[...x(r),{value:e,label:`Finished`,hint:b.length>0?`Done`:`Skip for now`}],initialValue:t});if(i===e)break;await E(i)}}r?.onSelection?.(b);let D=new Map,{entries:ce}=S();for(let e of ce)D.set(e.id,ee(e.meta,P));let O=b.map(e=>D.get(e)).filter(e=>!!e);return O.length>0&&await n.note(O.join(`
18
18
  `),`Selected channels`),r?.skipDmPolicyPrompt||(i=await vn({cfg:i,selection:b,prompter:n,accountIdsByChannel:v})),i}export{He as a,Ve as i,un as n,yn as r,hn as t};
19
- //# sourceMappingURL=onboard-channels-BMIOddLN.js.map
19
+ //# sourceMappingURL=onboard-channels-CjXCpXI-.js.map
@@ -4,5 +4,5 @@ import{n as e,u as t}from"./paths-B4IRk3wi.js";import{p as n}from"./subsystem-C5
4
4
  `),`QuickStart`)}let x=t(h),S=`ws://127.0.0.1:${x}`,C=process.env.OPENCLAW_GATEWAY_TOKEN??process.env.CLAWDBOT_GATEWAY_TOKEN;try{let e=await l({config:h,value:h.gateway?.auth?.token,path:`gateway.auth.token`,env:process.env});e&&(C=e)}catch(e){await f.note([`Could not resolve gateway.auth.token SecretRef for onboarding probe.`,e instanceof Error?e.message:String(e)].join(`
5
5
  `),`Gateway auth`)}let w=process.env.OPENCLAW_GATEWAY_PASSWORD??process.env.CLAWDBOT_GATEWAY_PASSWORD;try{let e=await l({config:h,value:h.gateway?.auth?.password,path:`gateway.auth.password`,env:process.env});e&&(w=e)}catch(e){await f.note([`Could not resolve gateway.auth.password SecretRef for onboarding probe.`,e instanceof Error?e.message:String(e)].join(`
6
6
  `),`Gateway auth`)}let T=await p.probeGatewayReachable({url:S,token:C,password:w}),E=h.gateway?.remote?.url?.trim()??``,D=o(h.gateway?.remote?.token);try{let e=await l({config:h,value:h.gateway?.remote?.token,path:`gateway.remote.token`,env:process.env});e&&(D=e)}catch(e){await f.note([`Could not resolve gateway.remote.token SecretRef for onboarding probe.`,e instanceof Error?e.message:String(e)].join(`
7
- `),`Gateway auth`)}let O=E?await p.probeGatewayReachable({url:E,token:D}):null,k=c.mode??(y===`quickstart`?`local`:await f.select({message:`What do you want to set up?`,options:[{value:`local`,label:`Local gateway (this machine)`,hint:T.ok?`Gateway reachable (${S})`:`No gateway detected (${S})`},{value:`remote`,label:`Remote gateway (info-only)`,hint:E?O?.ok?`Gateway reachable (${E})`:`Configured but unreachable (${E})`:`No remote URL configured yet`}]}));if(k===`remote`){let{promptRemoteGatewayConfig:e}=await import(`./onboard-remote-DPU-H_2O.js`).then(e=>e.t),{logConfigUpdated:t}=await import(`./logging-Dqe9dxSX.js`).then(e=>e.r),n=await e(h,f,{secretInputMode:c.secretInputMode});n=p.applyWizardMetadata(n,{command:`onboard`,mode:k}),await a(n),t(d),await f.outro(`Remote gateway configured.`);return}let A=r((c.workspace??(y===`quickstart`?h.agents?.defaults?.workspace??p.DEFAULT_WORKSPACE:await f.text({message:`Workspace directory`,initialValue:h.agents?.defaults?.workspace??p.DEFAULT_WORKSPACE}))).trim()||p.DEFAULT_WORKSPACE),{applyOnboardingLocalWorkspaceConfig:j}=await import(`./onboard-config-DS9dUv8M.js`).then(e=>e.n),M=j(h,A),{ensureAuthProfileStore:N}=await import(`./model-selection-BlC_rXAN.js`).then(e=>e.Ct),{promptAuthChoiceGrouped:P}=await import(`./auth-choice-prompt-xYj13czb.js`).then(e=>e.t),{promptCustomApiConfig:F}=await import(`./onboard-custom-B03SlEHB.js`).then(e=>e.r),{applyAuthChoice:I,resolvePreferredProviderForAuthChoice:L,warnIfModelConfigLooksOff:R}=await import(`./auth-choice-EQdNd7jO.js`).then(e=>e.t),{applyPrimaryModel:z,promptDefaultModel:B}=await import(`./model-picker-bZNuI66U.js`).then(e=>e.i),V=N(void 0,{allowKeychainPrompt:!1}),H=c.authChoice===void 0,U=c.authChoice??await P({prompter:f,store:V,includeSkip:!0});if(U===`custom-api-key`)M=(await F({prompter:f,runtime:d,config:M,secretInputMode:c.secretInputMode})).config;else{let e=await I({authChoice:U,config:M,prompter:f,runtime:d,setDefaultModel:!(H&&U===`ollama`),opts:{tokenProvider:c.tokenProvider,token:c.authChoice===`apiKey`&&c.token?c.token:void 0}});M=e.config,e.agentModelOverride&&(M=z(M,e.agentModelOverride))}if(H&&U!==`custom-api-key`){let e=await B({config:M,prompter:f,allowKeep:!0,ignoreAllowlist:!0,includeVllm:!0,preferredProvider:L(U)});e.config&&(M=e.config),e.model&&(M=z(M,e.model))}if(U===`ollama`){let{ensureOllamaModelPulled:e}=await import(`./ollama-setup-DlwS6Gl-.js`).then(e=>e.r);await e({config:M,prompter:f})}await R(M,f);let{configureGatewayForOnboarding:W}=await import(`./onboarding.gateway-config-y3pqsL9i.js`),G=await W({flow:y,baseConfig:h,nextConfig:M,localPort:x,quickstartGateway:b,secretInputMode:c.secretInputMode,prompter:f,runtime:d});M=G.nextConfig;let K=G.settings;if(c.skipChannels??c.skipProviders)await f.note(`Skipping channel setup.`,`Channels`);else{let{listChannelPlugins:e}=await import(`./plugins-CYLrFT4h.js`).then(e=>e.i),{setupChannels:t}=await import(`./onboard-channels-BMIOddLN.js`).then(e=>e.n),n=y===`quickstart`?e().filter(e=>e.meta.quickstartAllowFrom).map(e=>e.id):[];M=await t(M,d,f,{allowSignalInstall:!0,forceAllowFromChannels:n,skipDmPolicyPrompt:y===`quickstart`,skipConfirm:y===`quickstart`,quickstartDefaults:y===`quickstart`,secretInputMode:c.secretInputMode})}await a(M);let{logConfigUpdated:q}=await import(`./logging-Dqe9dxSX.js`).then(e=>e.r);if(q(d),await p.ensureWorkspaceAndSessions(A,d,{skipBootstrap:!!M.agents?.defaults?.skipBootstrap}),c.skipSearch)await f.note(`Skipping search setup.`,`Search`);else{let{setupSearch:e}=await import(`./onboard-search-f2tJD4hg.js`);M=await e(M,d,f,{quickstartDefaults:y===`quickstart`,secretInputMode:c.secretInputMode})}if(c.skipSkills)await f.note(`Skipping skills setup.`,`Skills`);else{let{setupSkills:e}=await import(`./onboard-skills-CMSQc2Mm.js`).then(e=>e.t);M=await e(M,A,d,f)}let{setupInternalHooks:J}=await import(`./onboard-hooks-CERzXObm.js`);M=await J(M,d,f),M=p.applyWizardMetadata(M,{command:`onboard`,mode:k}),await a(M);let{finalizeOnboardingWizard:Y}=await import(`./onboarding.finalize-Bgat5Npc.js`),{launchedTui:X}=await Y({flow:y,opts:c,baseConfig:h,nextConfig:M,workspaceDir:A,settings:K,prompter:f,runtime:d})}export{d as t};
8
- //# sourceMappingURL=onboarding-B6ixWwgp.js.map
7
+ `),`Gateway auth`)}let O=E?await p.probeGatewayReachable({url:E,token:D}):null,k=c.mode??(y===`quickstart`?`local`:await f.select({message:`What do you want to set up?`,options:[{value:`local`,label:`Local gateway (this machine)`,hint:T.ok?`Gateway reachable (${S})`:`No gateway detected (${S})`},{value:`remote`,label:`Remote gateway (info-only)`,hint:E?O?.ok?`Gateway reachable (${E})`:`Configured but unreachable (${E})`:`No remote URL configured yet`}]}));if(k===`remote`){let{promptRemoteGatewayConfig:e}=await import(`./onboard-remote-DPU-H_2O.js`).then(e=>e.t),{logConfigUpdated:t}=await import(`./logging-Dqe9dxSX.js`).then(e=>e.r),n=await e(h,f,{secretInputMode:c.secretInputMode});n=p.applyWizardMetadata(n,{command:`onboard`,mode:k}),await a(n),t(d),await f.outro(`Remote gateway configured.`);return}let A=r((c.workspace??(y===`quickstart`?h.agents?.defaults?.workspace??p.DEFAULT_WORKSPACE:await f.text({message:`Workspace directory`,initialValue:h.agents?.defaults?.workspace??p.DEFAULT_WORKSPACE}))).trim()||p.DEFAULT_WORKSPACE),{applyOnboardingLocalWorkspaceConfig:j}=await import(`./onboard-config-DS9dUv8M.js`).then(e=>e.n),M=j(h,A),{ensureAuthProfileStore:N}=await import(`./model-selection-BlC_rXAN.js`).then(e=>e.Ct),{promptAuthChoiceGrouped:P}=await import(`./auth-choice-prompt-xYj13czb.js`).then(e=>e.t),{promptCustomApiConfig:F}=await import(`./onboard-custom-B03SlEHB.js`).then(e=>e.r),{applyAuthChoice:I,resolvePreferredProviderForAuthChoice:L,warnIfModelConfigLooksOff:R}=await import(`./auth-choice-DJn6683d.js`).then(e=>e.t),{applyPrimaryModel:z,promptDefaultModel:B}=await import(`./model-picker-bZNuI66U.js`).then(e=>e.i),V=N(void 0,{allowKeychainPrompt:!1}),H=c.authChoice===void 0,U=c.authChoice??await P({prompter:f,store:V,includeSkip:!0});if(U===`custom-api-key`)M=(await F({prompter:f,runtime:d,config:M,secretInputMode:c.secretInputMode})).config;else{let e=await I({authChoice:U,config:M,prompter:f,runtime:d,setDefaultModel:!(H&&U===`ollama`),opts:{tokenProvider:c.tokenProvider,token:c.authChoice===`apiKey`&&c.token?c.token:void 0}});M=e.config,e.agentModelOverride&&(M=z(M,e.agentModelOverride))}if(H&&U!==`custom-api-key`){let e=await B({config:M,prompter:f,allowKeep:!0,ignoreAllowlist:!0,includeVllm:!0,preferredProvider:L(U)});e.config&&(M=e.config),e.model&&(M=z(M,e.model))}if(U===`ollama`){let{ensureOllamaModelPulled:e}=await import(`./ollama-setup-DlwS6Gl-.js`).then(e=>e.r);await e({config:M,prompter:f})}await R(M,f);let{configureGatewayForOnboarding:W}=await import(`./onboarding.gateway-config-y3pqsL9i.js`),G=await W({flow:y,baseConfig:h,nextConfig:M,localPort:x,quickstartGateway:b,secretInputMode:c.secretInputMode,prompter:f,runtime:d});M=G.nextConfig;let K=G.settings;if(c.skipChannels??c.skipProviders)await f.note(`Skipping channel setup.`,`Channels`);else{let{listChannelPlugins:e}=await import(`./plugins-CYLrFT4h.js`).then(e=>e.i),{setupChannels:t}=await import(`./onboard-channels-CjXCpXI-.js`).then(e=>e.n),n=y===`quickstart`?e().filter(e=>e.meta.quickstartAllowFrom).map(e=>e.id):[];M=await t(M,d,f,{allowSignalInstall:!0,forceAllowFromChannels:n,skipDmPolicyPrompt:y===`quickstart`,skipConfirm:y===`quickstart`,quickstartDefaults:y===`quickstart`,secretInputMode:c.secretInputMode})}await a(M);let{logConfigUpdated:q}=await import(`./logging-Dqe9dxSX.js`).then(e=>e.r);if(q(d),await p.ensureWorkspaceAndSessions(A,d,{skipBootstrap:!!M.agents?.defaults?.skipBootstrap}),c.skipSearch)await f.note(`Skipping search setup.`,`Search`);else{let{setupSearch:e}=await import(`./onboard-search-f2tJD4hg.js`);M=await e(M,d,f,{quickstartDefaults:y===`quickstart`,secretInputMode:c.secretInputMode})}if(c.skipSkills)await f.note(`Skipping skills setup.`,`Skills`);else{let{setupSkills:e}=await import(`./onboard-skills-CMSQc2Mm.js`).then(e=>e.t);M=await e(M,A,d,f)}let{setupInternalHooks:J}=await import(`./onboard-hooks-CERzXObm.js`);M=await J(M,d,f),M=p.applyWizardMetadata(M,{command:`onboard`,mode:k}),await a(M);let{finalizeOnboardingWizard:Y}=await import(`./onboarding.finalize-C9QGFQpa.js`),{launchedTui:X}=await Y({flow:y,opts:c,baseConfig:h,nextConfig:M,workspaceDir:A,settings:K,prompter:f,runtime:d})}export{d as t};
8
+ //# sourceMappingURL=onboarding-BTBbx6Ka.js.map
@@ -4,5 +4,5 @@ import{p as e}from"./subsystem-BLbY429l.js";import{n as t,u as n}from"./paths-Bj
4
4
  `),`QuickStart`)}let x=n(h),S=`ws://127.0.0.1:${x}`,C=process.env.OPENCLAW_GATEWAY_TOKEN??process.env.CLAWDBOT_GATEWAY_TOKEN;try{let e=await l({config:h,value:h.gateway?.auth?.token,path:`gateway.auth.token`,env:process.env});e&&(C=e)}catch(e){await f.note([`Could not resolve gateway.auth.token SecretRef for onboarding probe.`,e instanceof Error?e.message:String(e)].join(`
5
5
  `),`Gateway auth`)}let w=process.env.OPENCLAW_GATEWAY_PASSWORD??process.env.CLAWDBOT_GATEWAY_PASSWORD;try{let e=await l({config:h,value:h.gateway?.auth?.password,path:`gateway.auth.password`,env:process.env});e&&(w=e)}catch(e){await f.note([`Could not resolve gateway.auth.password SecretRef for onboarding probe.`,e instanceof Error?e.message:String(e)].join(`
6
6
  `),`Gateway auth`)}let T=await p.probeGatewayReachable({url:S,token:C,password:w}),E=h.gateway?.remote?.url?.trim()??``,D=s(h.gateway?.remote?.token);try{let e=await l({config:h,value:h.gateway?.remote?.token,path:`gateway.remote.token`,env:process.env});e&&(D=e)}catch(e){await f.note([`Could not resolve gateway.remote.token SecretRef for onboarding probe.`,e instanceof Error?e.message:String(e)].join(`
7
- `),`Gateway auth`)}let O=E?await p.probeGatewayReachable({url:E,token:D}):null,k=c.mode??(y===`quickstart`?`local`:await f.select({message:`What do you want to set up?`,options:[{value:`local`,label:`Local gateway (this machine)`,hint:T.ok?`Gateway reachable (${S})`:`No gateway detected (${S})`},{value:`remote`,label:`Remote gateway (info-only)`,hint:E?O?.ok?`Gateway reachable (${E})`:`Configured but unreachable (${E})`:`No remote URL configured yet`}]}));if(k===`remote`){let{promptRemoteGatewayConfig:e}=await import(`./onboard-remote-BOpIRdDu.js`).then(e=>e.t),{logConfigUpdated:t}=await import(`./logging-tYw1NbJd.js`).then(e=>e.r),n=await e(h,f,{secretInputMode:c.secretInputMode});n=p.applyWizardMetadata(n,{command:`onboard`,mode:k}),await r(n),t(d),await f.outro(`Remote gateway configured.`);return}let A=o((c.workspace??(y===`quickstart`?h.agents?.defaults?.workspace??p.DEFAULT_WORKSPACE:await f.text({message:`Workspace directory`,initialValue:h.agents?.defaults?.workspace??p.DEFAULT_WORKSPACE}))).trim()||p.DEFAULT_WORKSPACE),{applyOnboardingLocalWorkspaceConfig:j}=await import(`./onboard-config-B7U20YRw.js`).then(e=>e.n),M=j(h,A),{ensureAuthProfileStore:N}=await import(`./auth-profiles-T8DuH3ax.js`).then(e=>e.t),{promptAuthChoiceGrouped:P}=await import(`./auth-choice-prompt-uegl56cf.js`).then(e=>e.t),{promptCustomApiConfig:F}=await import(`./onboard-custom-Bl0y8c-g.js`).then(e=>e.r),{applyAuthChoice:I,resolvePreferredProviderForAuthChoice:L,warnIfModelConfigLooksOff:R}=await import(`./auth-choice-DvTApGhx.js`).then(e=>e.t),{applyPrimaryModel:z,promptDefaultModel:B}=await import(`./model-picker-D3ZSpr0i.js`).then(e=>e.i),V=N(void 0,{allowKeychainPrompt:!1}),H=c.authChoice===void 0,U=c.authChoice??await P({prompter:f,store:V,includeSkip:!0});if(U===`custom-api-key`)M=(await F({prompter:f,runtime:d,config:M,secretInputMode:c.secretInputMode})).config;else{let e=await I({authChoice:U,config:M,prompter:f,runtime:d,setDefaultModel:!(H&&U===`ollama`),opts:{tokenProvider:c.tokenProvider,token:c.authChoice===`apiKey`&&c.token?c.token:void 0}});M=e.config,e.agentModelOverride&&(M=z(M,e.agentModelOverride))}if(H&&U!==`custom-api-key`){let e=await B({config:M,prompter:f,allowKeep:!0,ignoreAllowlist:!0,includeVllm:!0,preferredProvider:L(U)});e.config&&(M=e.config),e.model&&(M=z(M,e.model))}if(U===`ollama`){let{ensureOllamaModelPulled:e}=await import(`./ollama-setup-BMEKWyIE.js`).then(e=>e.r);await e({config:M,prompter:f})}await R(M,f);let{configureGatewayForOnboarding:W}=await import(`./onboarding.gateway-config-BtLDJWJ2.js`),G=await W({flow:y,baseConfig:h,nextConfig:M,localPort:x,quickstartGateway:b,secretInputMode:c.secretInputMode,prompter:f,runtime:d});M=G.nextConfig;let K=G.settings;if(c.skipChannels??c.skipProviders)await f.note(`Skipping channel setup.`,`Channels`);else{let{listChannelPlugins:e}=await import(`./plugins-DNlgeTTc.js`).then(e=>e.i),{setupChannels:t}=await import(`./onboard-channels-CZK_7xMR.js`).then(e=>e.n),n=y===`quickstart`?e().filter(e=>e.meta.quickstartAllowFrom).map(e=>e.id):[];M=await t(M,d,f,{allowSignalInstall:!0,forceAllowFromChannels:n,skipDmPolicyPrompt:y===`quickstart`,skipConfirm:y===`quickstart`,quickstartDefaults:y===`quickstart`,secretInputMode:c.secretInputMode})}await r(M);let{logConfigUpdated:q}=await import(`./logging-tYw1NbJd.js`).then(e=>e.r);if(q(d),await p.ensureWorkspaceAndSessions(A,d,{skipBootstrap:!!M.agents?.defaults?.skipBootstrap}),c.skipSearch)await f.note(`Skipping search setup.`,`Search`);else{let{setupSearch:e}=await import(`./onboard-search-fslKKhyg.js`);M=await e(M,d,f,{quickstartDefaults:y===`quickstart`,secretInputMode:c.secretInputMode})}if(c.skipSkills)await f.note(`Skipping skills setup.`,`Skills`);else{let{setupSkills:e}=await import(`./onboard-skills-BMAJs6ly.js`).then(e=>e.t);M=await e(M,A,d,f)}let{setupInternalHooks:J}=await import(`./onboard-hooks-gQ3sxBNi.js`);M=await J(M,d,f),M=p.applyWizardMetadata(M,{command:`onboard`,mode:k}),await r(M);let{finalizeOnboardingWizard:Y}=await import(`./onboarding.finalize-DsMVlTcH.js`),{launchedTui:X}=await Y({flow:y,opts:c,baseConfig:h,nextConfig:M,workspaceDir:A,settings:K,prompter:f,runtime:d})}export{d as t};
8
- //# sourceMappingURL=onboarding-ouEqUuUr.js.map
7
+ `),`Gateway auth`)}let O=E?await p.probeGatewayReachable({url:E,token:D}):null,k=c.mode??(y===`quickstart`?`local`:await f.select({message:`What do you want to set up?`,options:[{value:`local`,label:`Local gateway (this machine)`,hint:T.ok?`Gateway reachable (${S})`:`No gateway detected (${S})`},{value:`remote`,label:`Remote gateway (info-only)`,hint:E?O?.ok?`Gateway reachable (${E})`:`Configured but unreachable (${E})`:`No remote URL configured yet`}]}));if(k===`remote`){let{promptRemoteGatewayConfig:e}=await import(`./onboard-remote-BOpIRdDu.js`).then(e=>e.t),{logConfigUpdated:t}=await import(`./logging-tYw1NbJd.js`).then(e=>e.r),n=await e(h,f,{secretInputMode:c.secretInputMode});n=p.applyWizardMetadata(n,{command:`onboard`,mode:k}),await r(n),t(d),await f.outro(`Remote gateway configured.`);return}let A=o((c.workspace??(y===`quickstart`?h.agents?.defaults?.workspace??p.DEFAULT_WORKSPACE:await f.text({message:`Workspace directory`,initialValue:h.agents?.defaults?.workspace??p.DEFAULT_WORKSPACE}))).trim()||p.DEFAULT_WORKSPACE),{applyOnboardingLocalWorkspaceConfig:j}=await import(`./onboard-config-B7U20YRw.js`).then(e=>e.n),M=j(h,A),{ensureAuthProfileStore:N}=await import(`./auth-profiles-T8DuH3ax.js`).then(e=>e.t),{promptAuthChoiceGrouped:P}=await import(`./auth-choice-prompt-uegl56cf.js`).then(e=>e.t),{promptCustomApiConfig:F}=await import(`./onboard-custom-Bl0y8c-g.js`).then(e=>e.r),{applyAuthChoice:I,resolvePreferredProviderForAuthChoice:L,warnIfModelConfigLooksOff:R}=await import(`./auth-choice-CYGzLW73.js`).then(e=>e.t),{applyPrimaryModel:z,promptDefaultModel:B}=await import(`./model-picker-D3ZSpr0i.js`).then(e=>e.i),V=N(void 0,{allowKeychainPrompt:!1}),H=c.authChoice===void 0,U=c.authChoice??await P({prompter:f,store:V,includeSkip:!0});if(U===`custom-api-key`)M=(await F({prompter:f,runtime:d,config:M,secretInputMode:c.secretInputMode})).config;else{let e=await I({authChoice:U,config:M,prompter:f,runtime:d,setDefaultModel:!(H&&U===`ollama`),opts:{tokenProvider:c.tokenProvider,token:c.authChoice===`apiKey`&&c.token?c.token:void 0}});M=e.config,e.agentModelOverride&&(M=z(M,e.agentModelOverride))}if(H&&U!==`custom-api-key`){let e=await B({config:M,prompter:f,allowKeep:!0,ignoreAllowlist:!0,includeVllm:!0,preferredProvider:L(U)});e.config&&(M=e.config),e.model&&(M=z(M,e.model))}if(U===`ollama`){let{ensureOllamaModelPulled:e}=await import(`./ollama-setup-BMEKWyIE.js`).then(e=>e.r);await e({config:M,prompter:f})}await R(M,f);let{configureGatewayForOnboarding:W}=await import(`./onboarding.gateway-config-BtLDJWJ2.js`),G=await W({flow:y,baseConfig:h,nextConfig:M,localPort:x,quickstartGateway:b,secretInputMode:c.secretInputMode,prompter:f,runtime:d});M=G.nextConfig;let K=G.settings;if(c.skipChannels??c.skipProviders)await f.note(`Skipping channel setup.`,`Channels`);else{let{listChannelPlugins:e}=await import(`./plugins-DNlgeTTc.js`).then(e=>e.i),{setupChannels:t}=await import(`./onboard-channels-BXReNh4B.js`).then(e=>e.n),n=y===`quickstart`?e().filter(e=>e.meta.quickstartAllowFrom).map(e=>e.id):[];M=await t(M,d,f,{allowSignalInstall:!0,forceAllowFromChannels:n,skipDmPolicyPrompt:y===`quickstart`,skipConfirm:y===`quickstart`,quickstartDefaults:y===`quickstart`,secretInputMode:c.secretInputMode})}await r(M);let{logConfigUpdated:q}=await import(`./logging-tYw1NbJd.js`).then(e=>e.r);if(q(d),await p.ensureWorkspaceAndSessions(A,d,{skipBootstrap:!!M.agents?.defaults?.skipBootstrap}),c.skipSearch)await f.note(`Skipping search setup.`,`Search`);else{let{setupSearch:e}=await import(`./onboard-search-fslKKhyg.js`);M=await e(M,d,f,{quickstartDefaults:y===`quickstart`,secretInputMode:c.secretInputMode})}if(c.skipSkills)await f.note(`Skipping skills setup.`,`Skills`);else{let{setupSkills:e}=await import(`./onboard-skills-BMAJs6ly.js`).then(e=>e.t);M=await e(M,A,d,f)}let{setupInternalHooks:J}=await import(`./onboard-hooks-gQ3sxBNi.js`);M=await J(M,d,f),M=p.applyWizardMetadata(M,{command:`onboard`,mode:k}),await r(M);let{finalizeOnboardingWizard:Y}=await import(`./onboarding.finalize-CwjLMPKK.js`),{launchedTui:X}=await Y({flow:y,opts:c,baseConfig:h,nextConfig:M,workspaceDir:A,settings:K,prompter:f,runtime:d})}export{d as t};
8
+ //# sourceMappingURL=onboarding-TkoOoq9D.js.map
@@ -1,4 +1,4 @@
1
- import"./paths-B4IRk3wi.js";import{m as e}from"./subsystem-C5XF2Fy5.js";import{h as t,y as n}from"./utils-UGOV_184.js";import"./model-selection-BlC_rXAN.js";import"./reply-l-Y47HP4.js";import{y as r}from"./agent-scope-DXZc3eNT.js";import"./openclaw-root-D_0Q6--h.js";import"./github-copilot-token-DGYAlOmV.js";import{r as i,t as a}from"./command-format-BbDT1tlm.js";import"./boolean-Ch3DfXPy.js";import"./env-D7wNuBx1.js";import"./env-overrides-DXJbFrwI.js";import"./registry-hFAtCSWG.js";import"./skills-DHbOKEGc.js";import"./frontmatter-BkZkwkVO.js";import"./plugins-CYLrFT4h.js";import"./logger-Bl8URnrW.js";import"./exec-DHqLtFYt.js";import"./windows-spawn-AB7ItGAE.js";import"./redact-3_CiXMY6.js";import"./path-alias-guards-mvyLCPlN.js";import"./errors-Bunti32V.js";import"./send-Cgd_VJHR.js";import"./send-hZFDcGLM.js";import"./paths-yLEk_25I.js";import"./chat-envelope-HVpKusFc.js";import"./audio-transcription-runner-D4Bp6MM7.js";import"./image-DsoO5VP5.js";import"./models-config-CdMhNxKV.js";import"./tool-display-DjuSUUbH.js";import"./fetch-guard-DPdY0NXR.js";import"./api-key-rotation-BRt-vnRV.js";import"./local-roots-6waH0SZ0.js";import"./model-catalog-C1kpjR75.js";import"./proxy-fetch-BADsUK4d.js";import"./tokens-XGbQGn67.js";import"./deliver-ClBkV2eD.js";import"./commands-CGpM84iR.js";import"./commands-registry-B1x54ukc.js";import"./pairing-store-Cg2UxreQ.js";import"./fetch-Dikjvc5M.js";import"./call-CqoMqP5b.js";import"./with-timeout-WveKxvFV.js";import"./diagnostic-DOzHPnht.js";import"./send-B7sHR38c2.js";import"./pi-model-discovery-Dps1PPWz.js";import"./exec-approvals-allowlist-CE3nYh0K.js";import"./exec-safe-bin-runtime-policy-Dt0GchLp.js";import"./ir-Dk7OQ4bA.js";import"./render-D8OWO2hT.js";import"./target-errors-a35Md15n.js";import"./read-only-account-inspect-DBwAwB3_.js";import"./channel-selection-CbNtbAEf.js";import"./plugin-auto-enable-DpVL6-ES.js";import"./send-C-AP01PR.js";import"./outbound-attachment-B7wMxwj6.js";import"./delivery-queue-CKbauSFq.js";import"./send-DbeEC2a3.js";import"./channel-activity-YjYNzCpJ.js";import"./tables-Oieq7UbT.js";import"./fetch-Bn0mWg6a.js";import"./skill-commands-HJHHZqt6.js";import"./workspace-dirs-BhF1Dzxt.js";import"./pairing-token-BjYBuREl.js";import"./restart-CHXEHdSC.js";import"./runtime-web-tools-bz76ZaRc.js";import"./command-secret-targets-BVN3kiT9.js";import"./session-cost-usage-BgqKixv0.js";import"./connection-auth-C8iru0UB.js";import{b as o,f as s,g as c,i as l,m as u,o as d}from"./onboard-helpers-zwybUJWu.js";import"./prompt-style-CXKekIBY.js";import"./pairing-labels-BUU_-70B.js";import"./memory-cli-jhzJ3as7.js";import"./query-expansion-0OxEb1Io.js";import"./manager-M1GKhLUC.js";import"./links-CySwdMcF.js";import"./cli-utils-BY7dLMFy.js";import"./help-format-BRbF_INg.js";import"./progress-LNttnI-y.js";import"./exec-approvals-BpBNEy6i.js";import"./nodes-screen-DECgxo6A.js";import"./system-run-command-DEWnZE0r.js";import"./runtime-BC5Ep2pJ.js";import"./stagger-DmFYysrJ.js";import"./runtime-guard-DFYBaYZS.js";import"./program-context-B9ydtPje.js";import"./note-D4GAwgha.js";import{r as f}from"./completion-cli-BZi4nuQb.js";import"./daemon-install-plan.shared-CfA37Ut_.js";import{n as p,r as m,t as h}from"./gateway-install-token-DiDvDPJQ.js";import{n as g,t as _}from"./daemon-runtime-DHiDbRuC.js";import{i as v}from"./systemd-D7odsu4K.js";import{n as y,t as b}from"./service-BtB9epJk.js";import{r as x}from"./health-BgOggK9k.js";import{t as S}from"./control-ui-assets-BIa0GGDg.js";import{t as C}from"./onboarding.secret-input-kO5OzYC7.js";import{t as w}from"./health-format-VBr6LEpt.js";import{r as T,t as E}from"./doctor-completion-BJ6steqx.js";import{t as D}from"./tui-CJUkUxHb.js";import O from"node:os";import k from"node:path";import A from"node:fs/promises";async function j(e){let n=process.env.HOME||O.homedir();return e===`zsh`?`~/.zshrc`:e===`bash`?await t(k.join(n,`.bashrc`))?`~/.bashrc`:`~/.bash_profile`:e===`fish`?`~/.config/fish/config.fish`:`$PROFILE`}function M(e,t){return e===`powershell`?`Restart your shell (or reload your PowerShell profile).`:`Restart your shell or run: source ${t}`}async function N(e){let t={resolveCliName:i,checkShellCompletionStatus:E,ensureCompletionCacheExists:T,installCompletion:f,...e.deps},n=t.resolveCliName(),r=await t.checkShellCompletionStatus(n);if(r.usesSlowPattern){await t.ensureCompletionCacheExists(n)&&await t.installCompletion(r.shell,!0,n);return}if(r.profileInstalled&&!r.cacheExists){await t.ensureCompletionCacheExists(n);return}if(!r.profileInstalled){if(!(e.flow===`quickstart`||await e.prompter.confirm({message:`Enable ${r.shell} shell completion for ${n}?`,initialValue:!0})))return;if(!await t.ensureCompletionCacheExists(n)){await e.prompter.note(`Failed to generate completion cache. Run \`${n} completion --install\` later.`,`Shell completion`);return}await t.installCompletion(r.shell,!0,n);let i=await j(r.shell);await e.prompter.note(`Shell completion installed. ${M(r.shell,i)}`,`Shell completion`)}}async function P(t){let{flow:i,opts:f,baseConfig:T,nextConfig:E,settings:O,prompter:j,runtime:M}=t,P=async(e,t,n)=>{let r=j.progress(e);try{return await n(r)}finally{r.stop(typeof t.doneMessage==`function`?t.doneMessage():t.doneMessage)}},F=process.platform===`linux`?await v():!0;if(process.platform===`linux`&&!F&&await j.note(`Systemd user services are unavailable. Skipping lingering checks and service install.`,`Systemd`),process.platform===`linux`&&F){let{ensureSystemdUserLingerInteractive:e}=await import(`./systemd-linger-C2MJD6KG.js`).then(e=>e.r);await e({runtime:M,prompter:{confirm:j.confirm,note:j.note},reason:`Linux installs use a systemd user service by default. Without lingering, systemd stops the user session on logout/idle and kills the Gateway.`,requireConfirm:!1})}let I=typeof f.installDaemon==`boolean`?f.installDaemon:void 0,L;if(L=I===void 0?process.platform===`linux`&&!F?!1:i===`quickstart`?!0:await j.confirm({message:`Install Gateway service (recommended)`,initialValue:!0}):I,process.platform===`linux`&&!F&&L&&(await j.note("Systemd user services are unavailable; skipping service install. Use your container supervisor or `docker compose up -d`.",`Gateway service`),L=!1),L){let e=i===`quickstart`?_:await j.select({message:`Gateway service runtime`,options:g,initialValue:f.daemonRuntime??`node`});i===`quickstart`&&await j.note(`QuickStart uses Node for the Gateway service (stable + supported).`,`Gateway service runtime`);let t=y(),n=await t.isLoaded({env:process.env}),r=!1;if(n){let e=await j.select({message:`Gateway service already installed`,options:[{value:`restart`,label:`Restart`},{value:`reinstall`,label:`Reinstall`},{value:`skip`,label:`Skip`}]});if(e===`restart`){let e=`Gateway service restarted.`;await P(`Gateway service`,{doneMessage:()=>e},async n=>{n.update(`Restarting Gateway service…`);let i=b(`Gateway`,await t.restart({env:process.env,stdout:process.stdout}));e=i.progressMessage,r=i.scheduled})}else e===`reinstall`&&await P(`Gateway service`,{doneMessage:`Gateway service uninstalled.`},async e=>{e.update(`Uninstalling Gateway service…`),await t.uninstall({env:process.env,stdout:process.stdout})})}if(!n||!r&&n&&!await t.isLoaded({env:process.env})){let n=j.progress(`Gateway service`),r=null;try{n.update(`Preparing Gateway service…`);let i=await h({config:E,env:process.env});for(let e of i.warnings)await j.note(e,`Gateway service`);if(i.unavailableReason)r=[`Gateway install blocked:`,i.unavailableReason,`Fix gateway auth config/token input and rerun onboarding.`].join(` `);else{let{programArguments:r,workingDirectory:i,environment:a}=await p({env:process.env,port:O.port,runtime:e,warn:(e,t)=>j.note(e,t),config:E});n.update(`Installing Gateway service…`),await t.install({env:process.env,stdout:process.stdout,programArguments:r,workingDirectory:i,environment:a})}}catch(e){r=e instanceof Error?e.message:String(e)}finally{n.stop(r?`Gateway service install failed.`:`Gateway service installed.`)}r&&(await j.note(`Gateway service install failed: ${r}`,`Gateway`),await j.note(m(),`Gateway`))}}if(!f.skipHealth){await o({url:c({bind:E.gateway?.bind??`loopback`,port:O.port,customBindHost:E.gateway?.customBindHost,basePath:void 0}).wsUrl,token:O.gatewayToken,deadlineMs:15e3});try{await x({json:!1,timeoutMs:1e4},M)}catch(e){M.error(w(e)),await j.note([`Docs:`,`https://docs.openclaw.ai/gateway/health`,`https://docs.openclaw.ai/gateway/troubleshooting`].join(`
1
+ import"./paths-B4IRk3wi.js";import{m as e}from"./subsystem-C5XF2Fy5.js";import{h as t,y as n}from"./utils-UGOV_184.js";import"./model-selection-BlC_rXAN.js";import"./reply-CjyZeZ-j.js";import{y as r}from"./agent-scope-DXZc3eNT.js";import"./openclaw-root-D_0Q6--h.js";import"./github-copilot-token-DGYAlOmV.js";import{r as i,t as a}from"./command-format-BbDT1tlm.js";import"./boolean-Ch3DfXPy.js";import"./env-D7wNuBx1.js";import"./env-overrides-DXJbFrwI.js";import"./registry-hFAtCSWG.js";import"./skills-DHbOKEGc.js";import"./frontmatter-BkZkwkVO.js";import"./plugins-CYLrFT4h.js";import"./logger-Bl8URnrW.js";import"./exec-DHqLtFYt.js";import"./windows-spawn-AB7ItGAE.js";import"./redact-3_CiXMY6.js";import"./path-alias-guards-mvyLCPlN.js";import"./errors-Bunti32V.js";import"./send-Cgd_VJHR.js";import"./send-hZFDcGLM.js";import"./paths-yLEk_25I.js";import"./chat-envelope-HVpKusFc.js";import"./audio-transcription-runner-D4Bp6MM7.js";import"./image-DsoO5VP5.js";import"./models-config-CdMhNxKV.js";import"./tool-display-DjuSUUbH.js";import"./fetch-guard-DPdY0NXR.js";import"./api-key-rotation-BRt-vnRV.js";import"./local-roots-6waH0SZ0.js";import"./model-catalog-C1kpjR75.js";import"./proxy-fetch-BADsUK4d.js";import"./tokens-XGbQGn67.js";import"./deliver-ClBkV2eD.js";import"./commands-CGpM84iR.js";import"./commands-registry-B1x54ukc.js";import"./pairing-store-Cg2UxreQ.js";import"./fetch-Dikjvc5M.js";import"./call-CqoMqP5b.js";import"./with-timeout-WveKxvFV.js";import"./diagnostic-DOzHPnht.js";import"./send-B7sHR38c2.js";import"./pi-model-discovery-Dps1PPWz.js";import"./exec-approvals-allowlist-CE3nYh0K.js";import"./exec-safe-bin-runtime-policy-Dt0GchLp.js";import"./ir-Dk7OQ4bA.js";import"./render-D8OWO2hT.js";import"./target-errors-a35Md15n.js";import"./read-only-account-inspect-DBwAwB3_.js";import"./channel-selection-CbNtbAEf.js";import"./plugin-auto-enable-DpVL6-ES.js";import"./send-C-AP01PR.js";import"./outbound-attachment-B7wMxwj6.js";import"./delivery-queue-CKbauSFq.js";import"./send-DbeEC2a3.js";import"./channel-activity-YjYNzCpJ.js";import"./tables-Oieq7UbT.js";import"./fetch-Bn0mWg6a.js";import"./skill-commands-HJHHZqt6.js";import"./workspace-dirs-BhF1Dzxt.js";import"./pairing-token-BjYBuREl.js";import"./restart-CHXEHdSC.js";import"./runtime-web-tools-bz76ZaRc.js";import"./command-secret-targets-BVN3kiT9.js";import"./session-cost-usage-BgqKixv0.js";import"./connection-auth-C8iru0UB.js";import{b as o,f as s,g as c,i as l,m as u,o as d}from"./onboard-helpers-zwybUJWu.js";import"./prompt-style-CXKekIBY.js";import"./pairing-labels-BUU_-70B.js";import"./memory-cli-jhzJ3as7.js";import"./query-expansion-0OxEb1Io.js";import"./manager-M1GKhLUC.js";import"./links-CySwdMcF.js";import"./cli-utils-BY7dLMFy.js";import"./help-format-BRbF_INg.js";import"./progress-LNttnI-y.js";import"./exec-approvals-BpBNEy6i.js";import"./nodes-screen-DECgxo6A.js";import"./system-run-command-DEWnZE0r.js";import"./runtime-BC5Ep2pJ.js";import"./stagger-DmFYysrJ.js";import"./runtime-guard-DFYBaYZS.js";import"./program-context-lyPXjPfN.js";import"./note-D4GAwgha.js";import{r as f}from"./completion-cli-Bizog38J.js";import"./daemon-install-plan.shared-CfA37Ut_.js";import{n as p,r as m,t as h}from"./gateway-install-token-DiDvDPJQ.js";import{n as g,t as _}from"./daemon-runtime-DHiDbRuC.js";import{i as v}from"./systemd-D7odsu4K.js";import{n as y,t as b}from"./service-BtB9epJk.js";import{r as x}from"./health-RQzDNQwf.js";import{t as S}from"./control-ui-assets-BIa0GGDg.js";import{t as C}from"./onboarding.secret-input-kO5OzYC7.js";import{t as w}from"./health-format-VBr6LEpt.js";import{r as T,t as E}from"./doctor-completion-Da0cocZX.js";import{t as D}from"./tui-CJUkUxHb.js";import O from"node:os";import k from"node:path";import A from"node:fs/promises";async function j(e){let n=process.env.HOME||O.homedir();return e===`zsh`?`~/.zshrc`:e===`bash`?await t(k.join(n,`.bashrc`))?`~/.bashrc`:`~/.bash_profile`:e===`fish`?`~/.config/fish/config.fish`:`$PROFILE`}function M(e,t){return e===`powershell`?`Restart your shell (or reload your PowerShell profile).`:`Restart your shell or run: source ${t}`}async function N(e){let t={resolveCliName:i,checkShellCompletionStatus:E,ensureCompletionCacheExists:T,installCompletion:f,...e.deps},n=t.resolveCliName(),r=await t.checkShellCompletionStatus(n);if(r.usesSlowPattern){await t.ensureCompletionCacheExists(n)&&await t.installCompletion(r.shell,!0,n);return}if(r.profileInstalled&&!r.cacheExists){await t.ensureCompletionCacheExists(n);return}if(!r.profileInstalled){if(!(e.flow===`quickstart`||await e.prompter.confirm({message:`Enable ${r.shell} shell completion for ${n}?`,initialValue:!0})))return;if(!await t.ensureCompletionCacheExists(n)){await e.prompter.note(`Failed to generate completion cache. Run \`${n} completion --install\` later.`,`Shell completion`);return}await t.installCompletion(r.shell,!0,n);let i=await j(r.shell);await e.prompter.note(`Shell completion installed. ${M(r.shell,i)}`,`Shell completion`)}}async function P(t){let{flow:i,opts:f,baseConfig:T,nextConfig:E,settings:O,prompter:j,runtime:M}=t,P=async(e,t,n)=>{let r=j.progress(e);try{return await n(r)}finally{r.stop(typeof t.doneMessage==`function`?t.doneMessage():t.doneMessage)}},F=process.platform===`linux`?await v():!0;if(process.platform===`linux`&&!F&&await j.note(`Systemd user services are unavailable. Skipping lingering checks and service install.`,`Systemd`),process.platform===`linux`&&F){let{ensureSystemdUserLingerInteractive:e}=await import(`./systemd-linger-C2MJD6KG.js`).then(e=>e.r);await e({runtime:M,prompter:{confirm:j.confirm,note:j.note},reason:`Linux installs use a systemd user service by default. Without lingering, systemd stops the user session on logout/idle and kills the Gateway.`,requireConfirm:!1})}let I=typeof f.installDaemon==`boolean`?f.installDaemon:void 0,L;if(L=I===void 0?process.platform===`linux`&&!F?!1:i===`quickstart`?!0:await j.confirm({message:`Install Gateway service (recommended)`,initialValue:!0}):I,process.platform===`linux`&&!F&&L&&(await j.note("Systemd user services are unavailable; skipping service install. Use your container supervisor or `docker compose up -d`.",`Gateway service`),L=!1),L){let e=i===`quickstart`?_:await j.select({message:`Gateway service runtime`,options:g,initialValue:f.daemonRuntime??`node`});i===`quickstart`&&await j.note(`QuickStart uses Node for the Gateway service (stable + supported).`,`Gateway service runtime`);let t=y(),n=await t.isLoaded({env:process.env}),r=!1;if(n){let e=await j.select({message:`Gateway service already installed`,options:[{value:`restart`,label:`Restart`},{value:`reinstall`,label:`Reinstall`},{value:`skip`,label:`Skip`}]});if(e===`restart`){let e=`Gateway service restarted.`;await P(`Gateway service`,{doneMessage:()=>e},async n=>{n.update(`Restarting Gateway service…`);let i=b(`Gateway`,await t.restart({env:process.env,stdout:process.stdout}));e=i.progressMessage,r=i.scheduled})}else e===`reinstall`&&await P(`Gateway service`,{doneMessage:`Gateway service uninstalled.`},async e=>{e.update(`Uninstalling Gateway service…`),await t.uninstall({env:process.env,stdout:process.stdout})})}if(!n||!r&&n&&!await t.isLoaded({env:process.env})){let n=j.progress(`Gateway service`),r=null;try{n.update(`Preparing Gateway service…`);let i=await h({config:E,env:process.env});for(let e of i.warnings)await j.note(e,`Gateway service`);if(i.unavailableReason)r=[`Gateway install blocked:`,i.unavailableReason,`Fix gateway auth config/token input and rerun onboarding.`].join(` `);else{let{programArguments:r,workingDirectory:i,environment:a}=await p({env:process.env,port:O.port,runtime:e,warn:(e,t)=>j.note(e,t),config:E});n.update(`Installing Gateway service…`),await t.install({env:process.env,stdout:process.stdout,programArguments:r,workingDirectory:i,environment:a})}}catch(e){r=e instanceof Error?e.message:String(e)}finally{n.stop(r?`Gateway service install failed.`:`Gateway service installed.`)}r&&(await j.note(`Gateway service install failed: ${r}`,`Gateway`),await j.note(m(),`Gateway`))}}if(!f.skipHealth){await o({url:c({bind:E.gateway?.bind??`loopback`,port:O.port,customBindHost:E.gateway?.customBindHost,basePath:void 0}).wsUrl,token:O.gatewayToken,deadlineMs:15e3});try{await x({json:!1,timeoutMs:1e4},M)}catch(e){M.error(w(e)),await j.note([`Docs:`,`https://docs.openclaw.ai/gateway/health`,`https://docs.openclaw.ai/gateway/troubleshooting`].join(`
2
2
  `),`Health check help`)}}let R=E.gateway?.controlUi?.enabled??T.gateway?.controlUi?.enabled??!0;if(!f.skipUi&&R){let e=await S(M);!e.ok&&e.message&&M.error(e.message)}await j.note([`Add nodes for extra features:`,`- macOS app (system + notifications)`,`- iOS app (camera/canvas)`,`- Android app (camera/canvas)`].join(`
3
3
  `),`Optional apps`);let z=E.gateway?.controlUi?.basePath??T.gateway?.controlUi?.basePath,B=c({bind:O.bind,port:O.port,customBindHost:O.customBindHost,basePath:z}),V=O.authMode===`token`&&O.gatewayToken?`${B.httpUrl}#token=${encodeURIComponent(O.gatewayToken)}`:B.httpUrl,H=``;if(O.authMode===`password`)try{H=await C({config:E,value:E.gateway?.auth?.password,path:`gateway.auth.password`,env:process.env})??``}catch(e){await j.note([`Could not resolve gateway.auth.password SecretRef for onboarding auth.`,e instanceof Error?e.message:String(e)].join(`
4
4
  `),`Gateway auth`)}let U=await u({url:B.wsUrl,token:O.authMode===`token`?O.gatewayToken:void 0,password:O.authMode===`password`?H:``}),W=U.ok?`Gateway: reachable`:`Gateway: not detected${U.detail?` (${U.detail})`:``}`,G=k.join(n(t.workspaceDir),r),K=await A.access(G).then(()=>!0).catch(()=>!1);await j.note([`Web UI: ${B.httpUrl}`,O.authMode===`token`&&O.gatewayToken?`Web UI (with token): ${V}`:void 0,`Gateway WS: ${B.wsUrl}`,W,`Docs: https://docs.openclaw.ai/web/control-ui`].filter(Boolean).join(`
@@ -13,4 +13,4 @@ import"./paths-B4IRk3wi.js";import{m as e}from"./subsystem-C5XF2Fy5.js";import{h
13
13
  `),`Web search`)}else{let{SEARCH_PROVIDER_OPTIONS:e,hasExistingKey:t,hasKeyInEnv:n}=await import(`./onboard-search-f2tJD4hg.js`),r=e.find(e=>t(E,e.value)||n(e));r?await j.note([`Web search is available via ${r.label} (auto-detected).`,`Docs: https://docs.openclaw.ai/tools/web`].join(`
14
14
  `),`Web search`):await j.note([`Web search was skipped. You can enable it later:`,` ${a(`openclaw configure --section web`)}`,``,`Docs: https://docs.openclaw.ai/tools/web`].join(`
15
15
  `),`Web search`)}return await j.note(`What now: https://openclaw.ai/showcase ("What People Are Building").`,`What now`),await j.outro(q?`Onboarding complete. Dashboard opened; keep that tab to control OpenClaw.`:`Onboarding complete. Use the dashboard link above to control OpenClaw.`),{launchedTui:X}}export{P as finalizeOnboardingWizard};
16
- //# sourceMappingURL=onboarding.finalize-Bgat5Npc.js.map
16
+ //# sourceMappingURL=onboarding.finalize-C9QGFQpa.js.map
@@ -1,4 +1,4 @@
1
- import{m as e}from"./subsystem-BLbY429l.js";import"./paths-BjD3T_xq.js";import"./boolean-D15s2V33.js";import"./auth-profiles-T8DuH3ax.js";import{r as t,t as n}from"./command-format-CLxIPuLR.js";import{y as r}from"./agent-scope-DAWJwFfl.js";import{m as i,v as a}from"./utils-CGdo13HV.js";import"./openclaw-root-CnsBf6ZU.js";import"./github-copilot-token-C79yeDKS.js";import"./env-overrides-DHtB4kK3.js";import"./version-q3SkUw2K.js";import"./registry-BptzrW8D.js";import"./skills-CKTicUKS.js";import"./frontmatter-C7mzDNxd.js";import"./plugins-DNlgeTTc.js";import"./logger-kQAOe3qp.js";import"./exec-B3eleY5O.js";import"./windows-spawn-7oINn5ao.js";import"./redact-CnRxK70G.js";import"./path-alias-guards-kY_ZbWs-.js";import"./errors-6SQWM9dj.js";import"./send-CW81y5Wz.js";import"./send-DavpkzhH.js";import"./compact-Dg66DXx_.js";import"./paths-BfjJY2VL.js";import"./chat-envelope-Bznn2SoS.js";import"./models-config-_htt7eY5.js";import"./tokens-DRM8vzJx.js";import"./with-timeout-c1CzdShT.js";import"./deliver-BHuhHfkH.js";import"./diagnostic-DQq4Bwrs.js";import"./send-DkiKKUkt.js";import"./pi-model-discovery-CpjYoBQf.js";import"./exec-approvals-allowlist-D8mN7nxV.js";import"./exec-safe-bin-runtime-policy-dcCS_Adf.js";import"./model-catalog-COVzoZD9.js";import"./fetch-CQaNr5J1.js";import"./audio-transcription-runner-Bd1OZC6K.js";import"./fetch-guard-BrTtJw7h.js";import"./image-BkWwI54C.js";import"./tool-display-DJDtttQg.js";import"./api-key-rotation-D0QU-kQ9.js";import"./proxy-fetch-gWETR3cl.js";import"./ir-D8Hh84ab.js";import"./render-DrrPmnMI.js";import"./target-errors-CgWAJOam.js";import"./commands-Dy7duWlt.js";import"./commands-registry-Cpl4QnG4.js";import"./session-cost-usage-CHtVgnE8.js";import"./session-utils-8acNlxwP.js";import"./sqlite-CILF3z9U.js";import"./call-B8Fb4_oh.js";import"./pi-tools.policy-D40r0HmD.js";import"./pairing-store-BH-FTYkn.js";import"./fetch-Dh-apy46.js";import"./skill-commands-CSF6wVPU.js";import"./workspace-dirs-A8Vib9_B.js";import"./pairing-token-DAR7V7FJ.js";import"./channel-activity-BBrgoad1.js";import"./tables-Brc2lNcB.js";import"./kill-tree-B3g7HrAO.js";import"./runtime-web-tools-D8fms06-.js";import"./runtime-Dlg2-Omq.js";import"./node-shell-DyOfwHrh.js";import"./stagger-DxzgG2jd.js";import"./channel-selection-BBeE1TmB.js";import"./plugin-auto-enable-NzmNh4oU.js";import"./send-CVplsJpw.js";import"./outbound-attachment-BgAe99RM.js";import"./delivery-queue-nkPJu0fY.js";import"./send-C48Y9SAq.js";import"./system-run-command-BKfMiqQM.js";import"./fetch-Ce-scEU-.js";import"./command-secret-targets-BlN-J_fA.js";import"./connection-auth-B_Uk6Vk8.js";import{b as o,f as s,g as c,i as l,m as u,o as d}from"./onboard-helpers-PGl5bVPE.js";import"./prompt-style-BThRSQJR.js";import"./pairing-labels-D-kzQEL2.js";import"./search-manager-Bp9x20r6.js";import"./manager-C2YW7Hkq.js";import"./memory-cli-XaxtBQm1.js";import"./links-CBnmRP9D.js";import"./cli-utils-BleB1eys.js";import"./help-format-B4aEI7V9.js";import"./progress-d1m2sqR1.js";import"./exec-approvals-BXO9Cezj.js";import"./note-Dp-d_utk.js";import{r as f}from"./completion-cli-C40TWdsv.js";import"./register.subclis-D-24j83X.js";import"./command-registry-CfuXCRwV.js";import"./program-context-CH9p6anW.js";import"./daemon-install-plan.shared-Dx3DBXCG.js";import"./runtime-guard-DX2Ie4ri.js";import{n as p,r as m,t as h}from"./gateway-install-token-BCnuZeh1.js";import{n as g,t as _}from"./daemon-runtime-VcpeBRJV.js";import{i as v}from"./systemd-DbevZh65.js";import{n as y,t as b}from"./service-DZ9EbS15.js";import{r as x}from"./health-PaRHFItm.js";import{t as S}from"./control-ui-assets-CTHGGgaX.js";import{t as C}from"./onboarding.secret-input-BsBgh8Tc.js";import{t as w}from"./health-format-B1nj3Wfn.js";import{r as T,t as E}from"./doctor-completion-DMJhfrtC.js";import{t as D}from"./tui-B506apla.js";import O from"node:os";import k from"node:path";import A from"node:fs/promises";async function j(e){let t=process.env.HOME||O.homedir();return e===`zsh`?`~/.zshrc`:e===`bash`?await i(k.join(t,`.bashrc`))?`~/.bashrc`:`~/.bash_profile`:e===`fish`?`~/.config/fish/config.fish`:`$PROFILE`}function M(e,t){return e===`powershell`?`Restart your shell (or reload your PowerShell profile).`:`Restart your shell or run: source ${t}`}async function N(e){let n={resolveCliName:t,checkShellCompletionStatus:E,ensureCompletionCacheExists:T,installCompletion:f,...e.deps},r=n.resolveCliName(),i=await n.checkShellCompletionStatus(r);if(i.usesSlowPattern){await n.ensureCompletionCacheExists(r)&&await n.installCompletion(i.shell,!0,r);return}if(i.profileInstalled&&!i.cacheExists){await n.ensureCompletionCacheExists(r);return}if(!i.profileInstalled){if(!(e.flow===`quickstart`||await e.prompter.confirm({message:`Enable ${i.shell} shell completion for ${r}?`,initialValue:!0})))return;if(!await n.ensureCompletionCacheExists(r)){await e.prompter.note(`Failed to generate completion cache. Run \`${r} completion --install\` later.`,`Shell completion`);return}await n.installCompletion(i.shell,!0,r);let t=await j(i.shell);await e.prompter.note(`Shell completion installed. ${M(i.shell,t)}`,`Shell completion`)}}async function P(t){let{flow:i,opts:f,baseConfig:T,nextConfig:E,settings:O,prompter:j,runtime:M}=t,P=async(e,t,n)=>{let r=j.progress(e);try{return await n(r)}finally{r.stop(typeof t.doneMessage==`function`?t.doneMessage():t.doneMessage)}},F=process.platform===`linux`?await v():!0;if(process.platform===`linux`&&!F&&await j.note(`Systemd user services are unavailable. Skipping lingering checks and service install.`,`Systemd`),process.platform===`linux`&&F){let{ensureSystemdUserLingerInteractive:e}=await import(`./systemd-linger-cWKbFNpu.js`).then(e=>e.r);await e({runtime:M,prompter:{confirm:j.confirm,note:j.note},reason:`Linux installs use a systemd user service by default. Without lingering, systemd stops the user session on logout/idle and kills the Gateway.`,requireConfirm:!1})}let I=typeof f.installDaemon==`boolean`?f.installDaemon:void 0,L;if(L=I===void 0?process.platform===`linux`&&!F?!1:i===`quickstart`?!0:await j.confirm({message:`Install Gateway service (recommended)`,initialValue:!0}):I,process.platform===`linux`&&!F&&L&&(await j.note("Systemd user services are unavailable; skipping service install. Use your container supervisor or `docker compose up -d`.",`Gateway service`),L=!1),L){let e=i===`quickstart`?_:await j.select({message:`Gateway service runtime`,options:g,initialValue:f.daemonRuntime??`node`});i===`quickstart`&&await j.note(`QuickStart uses Node for the Gateway service (stable + supported).`,`Gateway service runtime`);let t=y(),n=await t.isLoaded({env:process.env}),r=!1;if(n){let e=await j.select({message:`Gateway service already installed`,options:[{value:`restart`,label:`Restart`},{value:`reinstall`,label:`Reinstall`},{value:`skip`,label:`Skip`}]});if(e===`restart`){let e=`Gateway service restarted.`;await P(`Gateway service`,{doneMessage:()=>e},async n=>{n.update(`Restarting Gateway service…`);let i=b(`Gateway`,await t.restart({env:process.env,stdout:process.stdout}));e=i.progressMessage,r=i.scheduled})}else e===`reinstall`&&await P(`Gateway service`,{doneMessage:`Gateway service uninstalled.`},async e=>{e.update(`Uninstalling Gateway service…`),await t.uninstall({env:process.env,stdout:process.stdout})})}if(!n||!r&&n&&!await t.isLoaded({env:process.env})){let n=j.progress(`Gateway service`),r=null;try{n.update(`Preparing Gateway service…`);let i=await h({config:E,env:process.env});for(let e of i.warnings)await j.note(e,`Gateway service`);if(i.unavailableReason)r=[`Gateway install blocked:`,i.unavailableReason,`Fix gateway auth config/token input and rerun onboarding.`].join(` `);else{let{programArguments:r,workingDirectory:i,environment:a}=await p({env:process.env,port:O.port,runtime:e,warn:(e,t)=>j.note(e,t),config:E});n.update(`Installing Gateway service…`),await t.install({env:process.env,stdout:process.stdout,programArguments:r,workingDirectory:i,environment:a})}}catch(e){r=e instanceof Error?e.message:String(e)}finally{n.stop(r?`Gateway service install failed.`:`Gateway service installed.`)}r&&(await j.note(`Gateway service install failed: ${r}`,`Gateway`),await j.note(m(),`Gateway`))}}if(!f.skipHealth){await o({url:c({bind:E.gateway?.bind??`loopback`,port:O.port,customBindHost:E.gateway?.customBindHost,basePath:void 0}).wsUrl,token:O.gatewayToken,deadlineMs:15e3});try{await x({json:!1,timeoutMs:1e4},M)}catch(e){M.error(w(e)),await j.note([`Docs:`,`https://docs.openclaw.ai/gateway/health`,`https://docs.openclaw.ai/gateway/troubleshooting`].join(`
1
+ import{m as e}from"./subsystem-BLbY429l.js";import"./paths-BjD3T_xq.js";import"./boolean-D15s2V33.js";import"./auth-profiles-T8DuH3ax.js";import{r as t,t as n}from"./command-format-CLxIPuLR.js";import{y as r}from"./agent-scope-DAWJwFfl.js";import{m as i,v as a}from"./utils-CGdo13HV.js";import"./openclaw-root-CnsBf6ZU.js";import"./github-copilot-token-C79yeDKS.js";import"./env-overrides-DHtB4kK3.js";import"./version-q3SkUw2K.js";import"./registry-BptzrW8D.js";import"./skills-CKTicUKS.js";import"./frontmatter-C7mzDNxd.js";import"./plugins-DNlgeTTc.js";import"./logger-kQAOe3qp.js";import"./exec-B3eleY5O.js";import"./windows-spawn-7oINn5ao.js";import"./redact-CnRxK70G.js";import"./path-alias-guards-kY_ZbWs-.js";import"./errors-6SQWM9dj.js";import"./send-CW81y5Wz.js";import"./send-DavpkzhH.js";import"./compact-BEeB6bwq.js";import"./paths-BfjJY2VL.js";import"./chat-envelope-Bznn2SoS.js";import"./models-config-_htt7eY5.js";import"./tokens-DRM8vzJx.js";import"./with-timeout-c1CzdShT.js";import"./deliver-BHuhHfkH.js";import"./diagnostic-DQq4Bwrs.js";import"./send-DkiKKUkt.js";import"./pi-model-discovery-CpjYoBQf.js";import"./exec-approvals-allowlist-D8mN7nxV.js";import"./exec-safe-bin-runtime-policy-dcCS_Adf.js";import"./model-catalog-COVzoZD9.js";import"./fetch-CQaNr5J1.js";import"./audio-transcription-runner-Bd1OZC6K.js";import"./fetch-guard-BrTtJw7h.js";import"./image-BkWwI54C.js";import"./tool-display-DJDtttQg.js";import"./api-key-rotation-D0QU-kQ9.js";import"./proxy-fetch-gWETR3cl.js";import"./ir-D8Hh84ab.js";import"./render-DrrPmnMI.js";import"./target-errors-CgWAJOam.js";import"./commands-Dy7duWlt.js";import"./commands-registry-Cpl4QnG4.js";import"./session-cost-usage-CHtVgnE8.js";import"./session-utils-8acNlxwP.js";import"./sqlite-CILF3z9U.js";import"./call-B8Fb4_oh.js";import"./pi-tools.policy-D40r0HmD.js";import"./pairing-store-BH-FTYkn.js";import"./fetch-Dh-apy46.js";import"./skill-commands-CSF6wVPU.js";import"./workspace-dirs-A8Vib9_B.js";import"./pairing-token-DAR7V7FJ.js";import"./channel-activity-BBrgoad1.js";import"./tables-Brc2lNcB.js";import"./kill-tree-B3g7HrAO.js";import"./runtime-web-tools-D8fms06-.js";import"./runtime-Dlg2-Omq.js";import"./node-shell-DyOfwHrh.js";import"./stagger-DxzgG2jd.js";import"./channel-selection-BBeE1TmB.js";import"./plugin-auto-enable-NzmNh4oU.js";import"./send-CVplsJpw.js";import"./outbound-attachment-BgAe99RM.js";import"./delivery-queue-nkPJu0fY.js";import"./send-C48Y9SAq.js";import"./system-run-command-BKfMiqQM.js";import"./fetch-Ce-scEU-.js";import"./command-secret-targets-BlN-J_fA.js";import"./connection-auth-B_Uk6Vk8.js";import{b as o,f as s,g as c,i as l,m as u,o as d}from"./onboard-helpers-PGl5bVPE.js";import"./prompt-style-BThRSQJR.js";import"./pairing-labels-D-kzQEL2.js";import"./search-manager-Bp9x20r6.js";import"./manager-C2YW7Hkq.js";import"./memory-cli-XaxtBQm1.js";import"./links-CBnmRP9D.js";import"./cli-utils-BleB1eys.js";import"./help-format-B4aEI7V9.js";import"./progress-d1m2sqR1.js";import"./exec-approvals-BXO9Cezj.js";import"./note-Dp-d_utk.js";import{r as f}from"./completion-cli-W1_FoDFF.js";import"./register.subclis-B_0ZS-_K.js";import"./command-registry-CSBvrqwW.js";import"./program-context-CH9p6anW.js";import"./daemon-install-plan.shared-Dx3DBXCG.js";import"./runtime-guard-DX2Ie4ri.js";import{n as p,r as m,t as h}from"./gateway-install-token-BCnuZeh1.js";import{n as g,t as _}from"./daemon-runtime-VcpeBRJV.js";import{i as v}from"./systemd-DbevZh65.js";import{n as y,t as b}from"./service-DZ9EbS15.js";import{r as x}from"./health-DBu0V1Y-.js";import{t as S}from"./control-ui-assets-CTHGGgaX.js";import{t as C}from"./onboarding.secret-input-BsBgh8Tc.js";import{t as w}from"./health-format-B1nj3Wfn.js";import{r as T,t as E}from"./doctor-completion-DpCWb88H.js";import{t as D}from"./tui-B506apla.js";import O from"node:os";import k from"node:path";import A from"node:fs/promises";async function j(e){let t=process.env.HOME||O.homedir();return e===`zsh`?`~/.zshrc`:e===`bash`?await i(k.join(t,`.bashrc`))?`~/.bashrc`:`~/.bash_profile`:e===`fish`?`~/.config/fish/config.fish`:`$PROFILE`}function M(e,t){return e===`powershell`?`Restart your shell (or reload your PowerShell profile).`:`Restart your shell or run: source ${t}`}async function N(e){let n={resolveCliName:t,checkShellCompletionStatus:E,ensureCompletionCacheExists:T,installCompletion:f,...e.deps},r=n.resolveCliName(),i=await n.checkShellCompletionStatus(r);if(i.usesSlowPattern){await n.ensureCompletionCacheExists(r)&&await n.installCompletion(i.shell,!0,r);return}if(i.profileInstalled&&!i.cacheExists){await n.ensureCompletionCacheExists(r);return}if(!i.profileInstalled){if(!(e.flow===`quickstart`||await e.prompter.confirm({message:`Enable ${i.shell} shell completion for ${r}?`,initialValue:!0})))return;if(!await n.ensureCompletionCacheExists(r)){await e.prompter.note(`Failed to generate completion cache. Run \`${r} completion --install\` later.`,`Shell completion`);return}await n.installCompletion(i.shell,!0,r);let t=await j(i.shell);await e.prompter.note(`Shell completion installed. ${M(i.shell,t)}`,`Shell completion`)}}async function P(t){let{flow:i,opts:f,baseConfig:T,nextConfig:E,settings:O,prompter:j,runtime:M}=t,P=async(e,t,n)=>{let r=j.progress(e);try{return await n(r)}finally{r.stop(typeof t.doneMessage==`function`?t.doneMessage():t.doneMessage)}},F=process.platform===`linux`?await v():!0;if(process.platform===`linux`&&!F&&await j.note(`Systemd user services are unavailable. Skipping lingering checks and service install.`,`Systemd`),process.platform===`linux`&&F){let{ensureSystemdUserLingerInteractive:e}=await import(`./systemd-linger-cWKbFNpu.js`).then(e=>e.r);await e({runtime:M,prompter:{confirm:j.confirm,note:j.note},reason:`Linux installs use a systemd user service by default. Without lingering, systemd stops the user session on logout/idle and kills the Gateway.`,requireConfirm:!1})}let I=typeof f.installDaemon==`boolean`?f.installDaemon:void 0,L;if(L=I===void 0?process.platform===`linux`&&!F?!1:i===`quickstart`?!0:await j.confirm({message:`Install Gateway service (recommended)`,initialValue:!0}):I,process.platform===`linux`&&!F&&L&&(await j.note("Systemd user services are unavailable; skipping service install. Use your container supervisor or `docker compose up -d`.",`Gateway service`),L=!1),L){let e=i===`quickstart`?_:await j.select({message:`Gateway service runtime`,options:g,initialValue:f.daemonRuntime??`node`});i===`quickstart`&&await j.note(`QuickStart uses Node for the Gateway service (stable + supported).`,`Gateway service runtime`);let t=y(),n=await t.isLoaded({env:process.env}),r=!1;if(n){let e=await j.select({message:`Gateway service already installed`,options:[{value:`restart`,label:`Restart`},{value:`reinstall`,label:`Reinstall`},{value:`skip`,label:`Skip`}]});if(e===`restart`){let e=`Gateway service restarted.`;await P(`Gateway service`,{doneMessage:()=>e},async n=>{n.update(`Restarting Gateway service…`);let i=b(`Gateway`,await t.restart({env:process.env,stdout:process.stdout}));e=i.progressMessage,r=i.scheduled})}else e===`reinstall`&&await P(`Gateway service`,{doneMessage:`Gateway service uninstalled.`},async e=>{e.update(`Uninstalling Gateway service…`),await t.uninstall({env:process.env,stdout:process.stdout})})}if(!n||!r&&n&&!await t.isLoaded({env:process.env})){let n=j.progress(`Gateway service`),r=null;try{n.update(`Preparing Gateway service…`);let i=await h({config:E,env:process.env});for(let e of i.warnings)await j.note(e,`Gateway service`);if(i.unavailableReason)r=[`Gateway install blocked:`,i.unavailableReason,`Fix gateway auth config/token input and rerun onboarding.`].join(` `);else{let{programArguments:r,workingDirectory:i,environment:a}=await p({env:process.env,port:O.port,runtime:e,warn:(e,t)=>j.note(e,t),config:E});n.update(`Installing Gateway service…`),await t.install({env:process.env,stdout:process.stdout,programArguments:r,workingDirectory:i,environment:a})}}catch(e){r=e instanceof Error?e.message:String(e)}finally{n.stop(r?`Gateway service install failed.`:`Gateway service installed.`)}r&&(await j.note(`Gateway service install failed: ${r}`,`Gateway`),await j.note(m(),`Gateway`))}}if(!f.skipHealth){await o({url:c({bind:E.gateway?.bind??`loopback`,port:O.port,customBindHost:E.gateway?.customBindHost,basePath:void 0}).wsUrl,token:O.gatewayToken,deadlineMs:15e3});try{await x({json:!1,timeoutMs:1e4},M)}catch(e){M.error(w(e)),await j.note([`Docs:`,`https://docs.openclaw.ai/gateway/health`,`https://docs.openclaw.ai/gateway/troubleshooting`].join(`
2
2
  `),`Health check help`)}}let R=E.gateway?.controlUi?.enabled??T.gateway?.controlUi?.enabled??!0;if(!f.skipUi&&R){let e=await S(M);!e.ok&&e.message&&M.error(e.message)}await j.note([`Add nodes for extra features:`,`- macOS app (system + notifications)`,`- iOS app (camera/canvas)`,`- Android app (camera/canvas)`].join(`
3
3
  `),`Optional apps`);let z=E.gateway?.controlUi?.basePath??T.gateway?.controlUi?.basePath,B=c({bind:O.bind,port:O.port,customBindHost:O.customBindHost,basePath:z}),V=O.authMode===`token`&&O.gatewayToken?`${B.httpUrl}#token=${encodeURIComponent(O.gatewayToken)}`:B.httpUrl,H=``;if(O.authMode===`password`)try{H=await C({config:E,value:E.gateway?.auth?.password,path:`gateway.auth.password`,env:process.env})??``}catch(e){await j.note([`Could not resolve gateway.auth.password SecretRef for onboarding auth.`,e instanceof Error?e.message:String(e)].join(`
4
4
  `),`Gateway auth`)}let U=await u({url:B.wsUrl,token:O.authMode===`token`?O.gatewayToken:void 0,password:O.authMode===`password`?H:``}),W=U.ok?`Gateway: reachable`:`Gateway: not detected${U.detail?` (${U.detail})`:``}`,G=k.join(a(t.workspaceDir),r),K=await A.access(G).then(()=>!0).catch(()=>!1);await j.note([`Web UI: ${B.httpUrl}`,O.authMode===`token`&&O.gatewayToken?`Web UI (with token): ${V}`:void 0,`Gateway WS: ${B.wsUrl}`,W,`Docs: https://docs.openclaw.ai/web/control-ui`].filter(Boolean).join(`
@@ -13,4 +13,4 @@ import{m as e}from"./subsystem-BLbY429l.js";import"./paths-BjD3T_xq.js";import".
13
13
  `),`Web search`)}else{let{SEARCH_PROVIDER_OPTIONS:e,hasExistingKey:t,hasKeyInEnv:r}=await import(`./onboard-search-fslKKhyg.js`),i=e.find(e=>t(E,e.value)||r(e));i?await j.note([`Web search is available via ${i.label} (auto-detected).`,`Docs: https://docs.openclaw.ai/tools/web`].join(`
14
14
  `),`Web search`):await j.note([`Web search was skipped. You can enable it later:`,` ${n(`openclaw configure --section web`)}`,``,`Docs: https://docs.openclaw.ai/tools/web`].join(`
15
15
  `),`Web search`)}return await j.note(`What now: https://openclaw.ai/showcase ("What People Are Building").`,`What now`),await j.outro(q?`Onboarding complete. Dashboard opened; keep that tab to control OpenClaw.`:`Onboarding complete. Use the dashboard link above to control OpenClaw.`),{launchedTui:X}}export{P as finalizeOnboardingWizard};
16
- //# sourceMappingURL=onboarding.finalize-DsMVlTcH.js.map
16
+ //# sourceMappingURL=onboarding.finalize-CwjLMPKK.js.map