@qqbrowser/openclaw-qbot 0.10.1 → 0.10.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (214) hide show
  1. package/dist/{agents-Cd1yL8fG.js → agents-CCGNI0th.js} +1 -1
  2. package/dist/{agents.config-CaRMmWS8.js → agents.config-B9_IT_un.js} +1 -1
  3. package/dist/{agents.config-DSCcdYtv.js → agents.config-D8Q8p7re.js} +1 -1
  4. package/dist/{auth-choice-MqcWuVyu.js → auth-choice-DacG9sC7.js} +1 -1
  5. package/dist/{auth-choice-BmI4sIGs.js → auth-choice-EAV1bi1K.js} +1 -1
  6. package/dist/{banner-CAtilyXr.js → banner-DiQjNe9B.js} +1 -1
  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-CCqtIYCc.js → channel-options-DcI5T_Su.js} +1 -1
  12. package/dist/{channel-options-CKoyPq8p.js → channel-options-llKYy0-2.js} +1 -1
  13. package/dist/{channel-web-CwUfYqjg.js → channel-web-Qr8ST6tz.js} +1 -1
  14. package/dist/{channel-web-CCSMlUux.js → channel-web-TKrgB4oQ.js} +1 -1
  15. package/dist/{channels-cli-BfgVv5jH.js → channels-cli-BtyzpSQo.js} +1 -1
  16. package/dist/{channels-cli-BvGXgERj.js → channels-cli-CrdwqyiA.js} +1 -1
  17. package/dist/{cli-Bt--1dhL.js → cli-BDzG5MP5.js} +1 -1
  18. package/dist/{cli-CBg8KhmQ.js → cli-BY5POVX1.js} +1 -1
  19. package/dist/{command-registry-D_jtBegA.js → command-registry-DtMCIKRu.js} +1 -1
  20. package/dist/{compact-CYbPi7_-.js → compact-uyQDx8pN.js} +36 -36
  21. package/dist/{compact.runtime-BQu-8DFN.js → compact.runtime-BvWn8-VF.js} +1 -1
  22. package/dist/{compact.runtime-D-fOpaU3.js → compact.runtime-CbCNReBm.js} +1 -1
  23. package/dist/{compact.runtime-owWgKVDf.js → compact.runtime-DcRVnY_G.js} +1 -1
  24. package/dist/{compact.runtime-CrzmR0tV.js → compact.runtime-dgJTRf2V.js} +1 -1
  25. package/dist/{completion-cli-Bw_hBrlA.js → completion-cli-ByNU0Lbo.js} +1 -1
  26. package/dist/{completion-cli-BVbT_aR2.js → completion-cli-DHH7Zr2u.js} +1 -1
  27. package/dist/{config-cli-CwW76_j_.js → config-cli-BeVM5uz1.js} +1 -1
  28. package/dist/{config-cli-F-lkPjjz.js → config-cli-CcE1aKR3.js} +1 -1
  29. package/dist/{configure-DFlnM_zh.js → configure-CF42Va3r.js} +1 -1
  30. package/dist/{configure--c4tTVPz.js → configure-CYw7mK89.js} +1 -1
  31. package/dist/{deps-send-whatsapp.runtime-CqISN5vF.js → deps-send-whatsapp.runtime-7SqhJmWZ.js} +1 -1
  32. package/dist/{deps-send-whatsapp.runtime-C1zG74Si.js → deps-send-whatsapp.runtime-Bocaadqa.js} +1 -1
  33. package/dist/{deps-send-whatsapp.runtime-B5GMQIFv.js → deps-send-whatsapp.runtime-CjA6T7V6.js} +1 -1
  34. package/dist/{deps-send-whatsapp.runtime-CJnSJVnN.js → deps-send-whatsapp.runtime-DTyzQeR_.js} +1 -1
  35. package/dist/{doctor-completion-DI7mGC3D.js → doctor-completion-C15UB3EM.js} +1 -1
  36. package/dist/{doctor-completion-C9CPhCor.js → doctor-completion-KLuf1f33.js} +1 -1
  37. package/dist/entry.js +1 -1
  38. package/dist/extensionAPI.js +1 -1
  39. package/dist/{gateway-cli-BMmU2dsG.js → gateway-cli-CHyybU4X.js} +2 -2
  40. package/dist/{gateway-cli-Kp-caOwI.js → gateway-cli-DV3M2tJP.js} +2 -2
  41. package/dist/{health-B_-ZE5FK.js → health-2MbtCw6U.js} +1 -1
  42. package/dist/{health-CIZFVJEG.js → health-Dmtcw9K8.js} +1 -1
  43. package/dist/{hooks-cli-BoxAnC-E.js → hooks-cli-BaoD0-6l.js} +1 -1
  44. package/dist/{hooks-cli-CnCOjVv0.js → hooks-cli-DWCe4aHR.js} +1 -1
  45. package/dist/index.js +2 -2
  46. package/dist/llm-slug-generator.js +1 -1
  47. package/dist/{models-BBYqej07.js → models-DKf-4KoV.js} +1 -1
  48. package/dist/{models-cli-CMMhnlHo.js → models-cli-Bc8cIZ0A.js} +1 -1
  49. package/dist/{models-cli-CqbDyDn2.js → models-cli-Ble64nV3.js} +1 -1
  50. package/dist/{npm-resolution-CBlwQq3a.js → npm-resolution-BzXV2s2P.js} +1 -1
  51. package/dist/{npm-resolution--_-0q2ks.js → npm-resolution-CZUqHH_2.js} +1 -1
  52. package/dist/{onboard-DZG0HnuP.js → onboard-B8dVlGVk.js} +2 -2
  53. package/dist/{onboard-DlCEww7K.js → onboard-By9pkNca.js} +2 -2
  54. package/dist/{onboard-channels-BDMtq3ex.js → onboard-channels-C5lcb7dF.js} +1 -1
  55. package/dist/{onboard-channels-BO3AN_eA.js → onboard-channels-DFB6deX0.js} +1 -1
  56. package/dist/{onboarding-m-m__16h.js → onboarding-C7vbkuBI.js} +1 -1
  57. package/dist/{onboarding-CxRTJCBM.js → onboarding-DCldCoVy.js} +1 -1
  58. package/dist/{onboarding.finalize-BJxMhYUa.js → onboarding.finalize-C-b9zSIO.js} +1 -1
  59. package/dist/{onboarding.finalize-UiX3YmbI.js → onboarding.finalize-XCttW8IU.js} +1 -1
  60. package/dist/{pi-embedded-X_Svd4Wi.js → pi-embedded-CoHiJa9Q.js} +8 -8
  61. package/dist/{pi-embedded-6yGEd2xd.js → pi-embedded-DLlQ5e_w.js} +8 -8
  62. package/dist/{plugin-registry-DYwEy5eM.js → plugin-registry-C_HKxFxs.js} +1 -1
  63. package/dist/{plugin-registry-CN2aCPP7.js → plugin-registry-DBgXa8jD.js} +1 -1
  64. package/dist/plugin-sdk/{channel-web-Bg8DNyeb.js → channel-web-CMlv9Yzv.js} +1 -1
  65. package/dist/plugin-sdk/{channel-web-B795Ild9.cjs → channel-web-D1tzaMsH.cjs} +1 -1
  66. package/dist/plugin-sdk/{channel-web-D5zxPW-x.js → channel-web-DowgDxtO.js} +1 -1
  67. package/dist/plugin-sdk/{channel-web-CW42ALB5.cjs → channel-web-VsaRZCG2.cjs} +1 -1
  68. package/dist/plugin-sdk/{compact.runtime-Cr6oI5li.js → compact.runtime-B4M-VPyN.js} +1 -1
  69. package/dist/plugin-sdk/{compact.runtime-BR00C0_i.cjs → compact.runtime-BeWqnWW5.cjs} +1 -1
  70. package/dist/plugin-sdk/{compact.runtime-DOcQzBT5.cjs → compact.runtime-BnF9vU5j.cjs} +1 -1
  71. package/dist/plugin-sdk/{compact.runtime-D-3vVYGF.js → compact.runtime-C5vcsriA.js} +1 -1
  72. package/dist/plugin-sdk/{compact.runtime-BBqQuOlJ.cjs → compact.runtime-CS04yjUP.cjs} +1 -1
  73. package/dist/plugin-sdk/{compact.runtime-CGKItjCQ.js → compact.runtime-CepgZBh6.js} +1 -1
  74. package/dist/plugin-sdk/{compact.runtime-C-sPm0kL.cjs → compact.runtime-CuGn1L3D.cjs} +1 -1
  75. package/dist/plugin-sdk/{compact.runtime-CAiT8DtI.js → compact.runtime-DNocZUm6.js} +1 -1
  76. package/dist/plugin-sdk/{compact.runtime-CmQT69OD.cjs → compact.runtime-DQRsRwKH.cjs} +1 -1
  77. package/dist/plugin-sdk/{compact.runtime-BXuXwnQ_.cjs → compact.runtime-DnWYG9Ij.cjs} +1 -1
  78. package/dist/plugin-sdk/{compact.runtime-BxzvSPrQ.js → compact.runtime-W8dIsxRV.js} +1 -1
  79. package/dist/plugin-sdk/{compact.runtime-B1fslZX1.js → compact.runtime-hS2NXspw.js} +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-WXiE5pA7.js → deps-send-whatsapp.runtime-B5Nz8XrQ.js} +1 -1
  83. package/dist/plugin-sdk/{deps-send-whatsapp.runtime-DKoOiTZZ.cjs → deps-send-whatsapp.runtime-B5R8WAYy.cjs} +1 -1
  84. package/dist/plugin-sdk/{deps-send-whatsapp.runtime-DlO-S_iA.js → deps-send-whatsapp.runtime-B6ua6LoP.js} +1 -1
  85. package/dist/plugin-sdk/{deps-send-whatsapp.runtime-BUuj08qp.cjs → deps-send-whatsapp.runtime-BPMIzR5x.cjs} +1 -1
  86. package/dist/plugin-sdk/{deps-send-whatsapp.runtime-iI9qWUzR.cjs → deps-send-whatsapp.runtime-Bpq7VeGO.cjs} +1 -1
  87. package/dist/plugin-sdk/{deps-send-whatsapp.runtime-3kX5dnHC.js → deps-send-whatsapp.runtime-D3YUudyV.js} +1 -1
  88. package/dist/plugin-sdk/{deps-send-whatsapp.runtime-Xn1KqyPS.js → deps-send-whatsapp.runtime-DFxWO5_f.js} +1 -1
  89. package/dist/plugin-sdk/{deps-send-whatsapp.runtime-CE9LgvzJ.cjs → deps-send-whatsapp.runtime-DZ_pLOPK.cjs} +1 -1
  90. package/dist/plugin-sdk/{deps-send-whatsapp.runtime-t0Z0IyDq.cjs → deps-send-whatsapp.runtime-DyoJd0Hw.cjs} +1 -1
  91. package/dist/plugin-sdk/{deps-send-whatsapp.runtime-rOnSc6qE.js → deps-send-whatsapp.runtime-ZkaerhQ1.js} +1 -1
  92. package/dist/plugin-sdk/{deps-send-whatsapp.runtime-QUlRFE48.cjs → deps-send-whatsapp.runtime-_wzNB18A.cjs} +1 -1
  93. package/dist/plugin-sdk/{deps-send-whatsapp.runtime-DKVfDIzU.js → deps-send-whatsapp.runtime-bBd46QxW.js} +1 -1
  94. package/dist/plugin-sdk/{dispatch-DAaOM5c1.cjs → dispatch-B8dzPpi1.cjs} +8 -8
  95. package/dist/plugin-sdk/{dispatch-DYRrW05S.js → dispatch-B9FQyNfe.js} +36 -36
  96. package/dist/plugin-sdk/{dispatch-Dl0eaYcY.cjs → dispatch-BB5AfYlI.cjs} +8 -8
  97. package/dist/plugin-sdk/{dispatch-_tJF5hSh.cjs → dispatch-BIaey_BU.cjs} +8 -8
  98. package/dist/plugin-sdk/{dispatch-B13B2T1k.js → dispatch-BY1FkQOr.js} +8 -8
  99. package/dist/plugin-sdk/{dispatch-cPg1rBWu.cjs → dispatch-Bybxc9Yl.cjs} +8 -8
  100. package/dist/plugin-sdk/{dispatch-BlOkbw2U.js → dispatch-CADw_Fi7.js} +8 -8
  101. package/dist/plugin-sdk/{dispatch-Dap2ZPC9.js → dispatch-CZqPeEcw.js} +8 -8
  102. package/dist/plugin-sdk/{dispatch-BaBcLOry.js → dispatch-DafB1x1O.js} +8 -8
  103. package/dist/plugin-sdk/{dispatch-D2Km7gvG.cjs → dispatch-DcyylSdu.cjs} +8 -8
  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-JD6VIW5N.cjs → reply-6D8nZUZ1.cjs} +8 -8
  115. package/dist/plugin-sdk/{reply-73PF8kN_.js → reply-gpVkJsEs.js} +8 -8
  116. package/dist/plugin-sdk/{slash-dispatch.runtime-DAgDLU__.js → slash-dispatch.runtime-2hUZv0o4.js} +1 -1
  117. package/dist/plugin-sdk/{slash-dispatch.runtime-BfheQLfD.js → slash-dispatch.runtime-B4sdtKqK.js} +1 -1
  118. package/dist/plugin-sdk/{slash-dispatch.runtime-CmVqJqfV.js → slash-dispatch.runtime-BCAWJ135.js} +1 -1
  119. package/dist/plugin-sdk/{slash-dispatch.runtime-wWa-kKvH.js → slash-dispatch.runtime-BJX-7mTD.js} +1 -1
  120. package/dist/plugin-sdk/{slash-dispatch.runtime-C6cMCwSp.js → slash-dispatch.runtime-BY3aBzxK.js} +1 -1
  121. package/dist/plugin-sdk/{slash-dispatch.runtime-BVXTmhZU.js → slash-dispatch.runtime-CHFbytW1.js} +1 -1
  122. package/dist/plugin-sdk/{slash-dispatch.runtime-BcO6NdxL.cjs → slash-dispatch.runtime-Cf-EuMPD.cjs} +1 -1
  123. package/dist/plugin-sdk/{slash-dispatch.runtime-CYmmyw9o.cjs → slash-dispatch.runtime-CukipBLa.cjs} +1 -1
  124. package/dist/plugin-sdk/{slash-dispatch.runtime-DNI9fZFo.cjs → slash-dispatch.runtime-D7JTU7km.cjs} +1 -1
  125. package/dist/plugin-sdk/{slash-dispatch.runtime-BQWrcjEG.cjs → slash-dispatch.runtime-DZq0olM2.cjs} +1 -1
  126. package/dist/plugin-sdk/{slash-dispatch.runtime-Cp5-cPgM.cjs → slash-dispatch.runtime-ILA0KH-p.cjs} +1 -1
  127. package/dist/plugin-sdk/{slash-dispatch.runtime-CD6AFEn3.cjs → slash-dispatch.runtime-_i2UiDTt.cjs} +1 -1
  128. package/dist/plugin-sdk/{subagent-registry-runtime-BINR9wKz.cjs → subagent-registry-runtime-7wfZ9Ydg.cjs} +1 -1
  129. package/dist/plugin-sdk/{subagent-registry-runtime-q6csFFiS.js → subagent-registry-runtime-B6Go3QMY.js} +1 -1
  130. package/dist/plugin-sdk/{subagent-registry-runtime-CPYQLLoh.cjs → subagent-registry-runtime-Bf71VzVF.cjs} +1 -1
  131. package/dist/plugin-sdk/{subagent-registry-runtime-DCd8DMgz.js → subagent-registry-runtime-CKlyWpvM.js} +1 -1
  132. package/dist/plugin-sdk/{subagent-registry-runtime-BfT45xXa.cjs → subagent-registry-runtime-CcyvhbJH.cjs} +1 -1
  133. package/dist/plugin-sdk/{subagent-registry-runtime-DYhr9YcP.js → subagent-registry-runtime-D4y3Fxlu.js} +1 -1
  134. package/dist/plugin-sdk/{subagent-registry-runtime-BBwsJL9B.cjs → subagent-registry-runtime-DFCUhuvT.cjs} +1 -1
  135. package/dist/plugin-sdk/{subagent-registry-runtime-CjnSOShL.js → subagent-registry-runtime-DWZUy1eI.js} +1 -1
  136. package/dist/plugin-sdk/{subagent-registry-runtime-B9uDb_ij.js → subagent-registry-runtime-DkCs3cQj.js} +1 -1
  137. package/dist/plugin-sdk/{subagent-registry-runtime-DB8YDuGj.js → subagent-registry-runtime-RrhCNI-u.js} +1 -1
  138. package/dist/plugin-sdk/{subagent-registry-runtime-iiOzLeYb.cjs → subagent-registry-runtime-S2yCcuWA.cjs} +1 -1
  139. package/dist/plugin-sdk/{subagent-registry-runtime-ClkQBnJu.cjs → subagent-registry-runtime-zTYi4rJR.cjs} +1 -1
  140. package/dist/plugin-sdk/{web-Bh78uOi8.cjs → web-C-_Bja5u.cjs} +1 -1
  141. package/dist/plugin-sdk/{web-C4ezqWIt.js → web-C7h16O4t.js} +1 -1
  142. package/dist/plugin-sdk/{web-B7d3p3kx.cjs → web-Cf2Ivjcn.cjs} +1 -1
  143. package/dist/plugin-sdk/{web-DFDao2So.cjs → web-CfvlhITy.cjs} +1 -1
  144. package/dist/plugin-sdk/{web-JciOW43P.js → web-DzgvdKmn.js} +1 -1
  145. package/dist/plugin-sdk/{web-Bg2LIMdb.cjs → web-RmaRbUK1.cjs} +1 -1
  146. package/dist/plugin-sdk/{web-SwpoHf2A.js → web-bHdImk0G.js} +1 -1
  147. package/dist/plugin-sdk/{web-DjbeDvyv.js → web-bT52Rp59.js} +1 -1
  148. package/dist/plugin-sdk/{web-vSFigMHz.cjs → web-pFlzmHcu.cjs} +1 -1
  149. package/dist/plugin-sdk/{web-BEuW8Yqw.js → web-rFQBs9b0.js} +1 -1
  150. package/dist/plugin-sdk/{web--8MBOleK.js → web-uQqWClDT.js} +1 -1
  151. package/dist/plugin-sdk/{web-BPQv-4Qv.cjs → web-wnw_PMil.cjs} +1 -1
  152. package/dist/plugin-sdk/whatsapp.cjs +1 -1
  153. package/dist/plugin-sdk/whatsapp.js +1 -1
  154. package/dist/{plugins-cli-PVHBZeb8.js → plugins-cli-BjLj52hA.js} +1 -1
  155. package/dist/{plugins-cli-CnXgwZzI.js → plugins-cli-CwQOOOym.js} +1 -1
  156. package/dist/ports-BDZyt9rk.js +2 -0
  157. package/dist/ports-DmJX-iq9.js +2 -0
  158. package/dist/{program-D53eGuSf.js → program-RvezCMDs.js} +2 -2
  159. package/dist/{program-context-n-ovYq69.js → program-context-C4vPkfWW.js} +1 -1
  160. package/dist/{prompt-select-styled-DolCW-_j.js → prompt-select-styled-C-zw_5_b.js} +1 -1
  161. package/dist/{prompt-select-styled-DZnefcrY.js → prompt-select-styled-CoP6cSMX.js} +1 -1
  162. package/dist/{provider-auth-helpers-BLm2bdp5.js → provider-auth-helpers-DeCLF5oV.js} +1 -1
  163. package/dist/{provider-auth-helpers-DPz0vN_c.js → provider-auth-helpers-Rv3hdZ7j.js} +1 -1
  164. package/dist/{push-apns-BBv62ncV.js → push-apns-BfTKAzRZ.js} +1 -1
  165. package/dist/{push-apns-DIV5dBPP.js → push-apns-CeY33Rxc.js} +1 -1
  166. package/dist/{register.agent-DQdoMfmw.js → register.agent-CANRVL5k.js} +1 -1
  167. package/dist/{register.agent-DHOTtB8X.js → register.agent-He4UYNpV.js} +1 -1
  168. package/dist/{register.configure-C2N82brC.js → register.configure-CqsxTDtC.js} +1 -1
  169. package/dist/{register.configure-C6zjzaEo.js → register.configure-CwuLuKsv.js} +1 -1
  170. package/dist/{register.maintenance-CStaPxaB.js → register.maintenance-B5cnDjLy.js} +1 -1
  171. package/dist/{register.maintenance-aKBTd9Zp.js → register.maintenance-CHJQh81L.js} +1 -1
  172. package/dist/{register.message-DHDcOA8X.js → register.message-CEcXemHd.js} +1 -1
  173. package/dist/{register.message-Dh72QHKA.js → register.message-DoA6MALf.js} +1 -1
  174. package/dist/{register.onboard-DB9FWAKT.js → register.onboard-B01N1AYH.js} +1 -1
  175. package/dist/{register.onboard-Bu9gpFlA.js → register.onboard-B5iQpfVG.js} +1 -1
  176. package/dist/{register.setup-D76IRs4s.js → register.setup-BTKZzyRh.js} +1 -1
  177. package/dist/{register.setup-CeG2ETmr.js → register.setup-CPGByOtO.js} +1 -1
  178. package/dist/{register.status-health-sessions-mPGKFjIz.js → register.status-health-sessions-CPmSNp3F.js} +1 -1
  179. package/dist/{register.status-health-sessions-Dtpd1P2M.js → register.status-health-sessions-hrQLxH-w.js} +1 -1
  180. package/dist/{register.subclis-Drp2dGBe.js → register.subclis-CqVDIyhT.js} +1 -1
  181. package/dist/{reply-DwfVhea1.js → reply-mWIMy_ju.js} +8 -8
  182. package/dist/{run-main-CjwjyWA6.js → run-main-B2f6FBb0.js} +1 -1
  183. package/dist/{server-node-events-CL0pWoMa.js → server-node-events-BtKnElP0.js} +1 -1
  184. package/dist/{server-node-events-ChPQ984b.js → server-node-events-DnyBXZtB.js} +1 -1
  185. package/dist/{slash-dispatch.runtime-jR7ZpRLo.js → slash-dispatch.runtime-B8S9VVjy.js} +1 -1
  186. package/dist/{slash-dispatch.runtime-CHDiNcch.js → slash-dispatch.runtime-CS58xiJF.js} +1 -1
  187. package/dist/{slash-dispatch.runtime-DgsOlRbg.js → slash-dispatch.runtime-CZrxUnBW.js} +1 -1
  188. package/dist/{slash-dispatch.runtime-Bh87LG5X.js → slash-dispatch.runtime-Cq_OU6GL.js} +1 -1
  189. package/dist/{status-o3Gfr-6l.js → status-C3OhTrWE.js} +1 -1
  190. package/dist/{status-BSHWBrg0.js → status-tL-XCvJC.js} +1 -1
  191. package/dist/{subagent-registry-runtime-B8nEWxYm.js → subagent-registry-runtime-BvPAovsV.js} +1 -1
  192. package/dist/{subagent-registry-runtime-D5PhzS7u.js → subagent-registry-runtime-ClREKCLG.js} +1 -1
  193. package/dist/{subagent-registry-runtime-C6xoTyr_.js → subagent-registry-runtime-D2cjV86K.js} +1 -1
  194. package/dist/{subagent-registry-runtime-DU6-3b5M.js → subagent-registry-runtime-dcrGDOTV.js} +1 -1
  195. package/dist/{update-cli-DU5tRH3c.js → update-cli-CZsuMrHE.js} +1 -1
  196. package/dist/{update-cli-CL_cUjuq.js → update-cli-DAPHNGDM.js} +1 -1
  197. package/dist/{update-runner-DG-1TYYc.js → update-runner-DZkN4otc.js} +1 -1
  198. package/dist/{update-runner-DABdlxfN.js → update-runner-DhaHCCx3.js} +1 -1
  199. package/dist/{web-C0WkwHal.js → web-BPloShgg.js} +1 -1
  200. package/dist/{web-u71NbOpT.js → web-BbOH61Lx.js} +1 -1
  201. package/dist/{web-DPQjx48C.js → web-CMSYMAHG.js} +1 -1
  202. package/dist/{web-Dfi2WjvN.js → web-WBvnAfBv.js} +1 -1
  203. package/extensions/qqbrowser-skill-control/index.js +1 -1
  204. package/node_modules/@google/genai/dist/index.cjs +8 -8
  205. package/node_modules/@google/genai/dist/index.mjs +8 -8
  206. package/node_modules/@google/genai/dist/node/index.cjs +8 -8
  207. package/node_modules/@google/genai/dist/node/index.mjs +8 -8
  208. package/node_modules/@google/genai/dist/vertex_internal/index.cjs +1 -1
  209. package/node_modules/@google/genai/dist/vertex_internal/index.js +1 -1
  210. package/node_modules/@google/genai/dist/web/index.mjs +8 -8
  211. package/node_modules/@google/genai/package.json +1 -1
  212. package/package.json +1 -1
  213. package/dist/ports-BAaLOkJp.js +0 -2
  214. package/dist/ports-DDWP1p0X.js +0 -2
@@ -1,4 +1,4 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./paths-BvlJvmRS.cjs`),t=require(`./paths-BPlgbwrb.cjs`),n=require(`./config-C2-9m5-M.cjs`),r=require(`./dispatch-Dl0eaYcY.cjs`);require(`./github-copilot-token-TMkfxxD2.cjs`);const i=require(`./logger-Bm93ZKOk.cjs`),a=require(`./proxy-env-Bcl14j2_.cjs`),o=require(`./send-DMxohaL_.cjs`);require(`./fetch-lw-aF17e.cjs`),require(`./channel-activity-CC3JLAxD.cjs`);const s=require(`./fetch-guard-BI5z5sCg.cjs`);require(`./local-roots-CzbssMW1.cjs`);const c=require(`./ir-DcWa7gsX.cjs`);require(`./render-CzHaQB0d.cjs`),require(`./tables-BszYJkqX.cjs`);const l=require(`./send-CL2pl8br.cjs`),u=require(`./target-errors-DwAKh8KU.cjs`),d=require(`./send-DcRj8DUU.cjs`),f=require(`./deliver-d7VfVmTa.cjs`),p=require(`./diagnostic-C2jKFixS.cjs`);require(`./pi-model-discovery-CAYSx-Lw.cjs`);const m=require(`./audio-transcription-runner-DA6TwXrV.cjs`);require(`./image-BLG2OrjE.cjs`),require(`./api-key-rotation-YRRtbk9Y.cjs`),require(`./proxy-fetch-DH7VIiBH.cjs`);const h=require(`./tokens-Dq2wDF3_.cjs`);require(`./commands-registry-Bnadsir-.cjs`);const g=require(`./targets-D-m7SV9x.cjs`);require(`./send-DogBiU4n.cjs`);const _=require(`./fetch-DpwR_cJU.cjs`),v=require(`./skill-commands-B4AbCkKe.cjs`);require(`./outbound-attachment-BAHrn3r7.cjs`);const y=require(`./send-DJ419AIX.cjs`);require(`./query-expansion-DO2CFW4z.cjs`),require(`./manager-BuNveORY.cjs`);const ee=require(`./resolve-outbound-target-CDM7_xfU.cjs`),te=require(`./channel-web-B795Ild9.cjs`);require(`./outbound-Dy87UlCV.cjs`),require(`./session-Djo63EGV.cjs`);const ne=require(`./login-DHBcWg4R.cjs`);let b=require(`node:fs`);b=e.p(b);let x=require(`node:path`);x=e.p(x);let S=require(`node:os`);S=e.p(S);let C=require(`node:fs/promises`);C=e.p(C);let re=require(`node:crypto`),ie=require(`node:util`),ae=require(`node:stream/promises`),oe=require(`node:https`),w=require(`zod`),se=require(`node:stream`),ce=require(`jszip`);ce=e.p(ce);let le=require(`tar`);le=e.p(le);function ue(e){return{success:!1,error:{issues:[{path:[],message:e}]}}}function de(){return{safeParse(e){return e===void 0?{success:!0,data:void 0}:!e||typeof e!=`object`||Array.isArray(e)?ue(`expected config object`):Object.keys(e).length>0?ue(`config must be empty`):{success:!0,data:e}},jsonSchema:{type:`object`,additionalProperties:!1,properties:{}}}}function fe(e){return e.map(e=>({input:e.input,resolved:e.resolved,id:e.id,name:e.name,note:e.note}))}async function pe(e){let t=[];for(let n of e.inputs)t.push(await e.mapInput(n));return t}function me(e){return typeof e==`string`?e:e instanceof URL?e.toString():typeof e==`object`&&e&&`url`in e&&typeof e.url==`string`?e.url:``}function he(e){return{verbose:!1,replyTo:e.replyToId??void 0,accountId:e.accountId??void 0,silent:e.silent??void 0}}function ge(e){return{...he(e),mediaUrl:e.mediaUrl,mediaLocalRoots:e.mediaLocalRoots}}function _e(e){return{channel:`discord`,...e}}function T(e){let t=e.trim();if(!t)return`/`;let n=t.startsWith(`/`)?t:`/${t}`;return n.length>1&&n.endsWith(`/`)?n.slice(0,-1):n}function ve(e){let t=e.webhookPath?.trim();if(t)return T(t);if(e.webhookUrl?.trim())try{return T(new URL(e.webhookUrl).pathname||`/`)}catch{return null}return e.defaultPath??null}const ye=Object.freeze({preAuth:{maxBytes:64*1024,timeoutMs:5e3},postAuth:{maxBytes:1024*1024,timeoutMs:3e4}}),be=Object.freeze({maxInFlightPerKey:8,maxTrackedKeys:4096});function xe(e){let t=e.profile===`pre-auth`?ye.preAuth:ye.postAuth;return{maxBytes:typeof e.maxBytes==`number`&&Number.isFinite(e.maxBytes)&&e.maxBytes>0?Math.floor(e.maxBytes):t.maxBytes,timeoutMs:typeof e.timeoutMs==`number`&&Number.isFinite(e.timeoutMs)&&e.timeoutMs>0?Math.floor(e.timeoutMs):t.timeoutMs}}function Se(e){let{res:t,code:n,invalidMessage:i}=e;return n===`PAYLOAD_TOO_LARGE`?(t.statusCode=413,t.end(r.tn(`PAYLOAD_TOO_LARGE`)),{ok:!1}):n===`REQUEST_BODY_TIMEOUT`?(t.statusCode=408,t.end(r.tn(`REQUEST_BODY_TIMEOUT`)),{ok:!1}):n===`CONNECTION_CLOSED`?(t.statusCode=400,t.end(r.tn(`CONNECTION_CLOSED`)),{ok:!1}):(t.statusCode=400,t.end(i??`Bad Request`),{ok:!1})}function Ce(e){let t=Math.max(1,Math.floor(e?.maxInFlightPerKey??be.maxInFlightPerKey)),n=Math.max(1,Math.floor(e?.maxTrackedKeys??be.maxTrackedKeys)),i=new Map;return{tryAcquire:e=>{if(!e)return!0;let a=i.get(e)??0;return a>=t?!1:(i.set(e,a+1),r.qt(i,n),!0)},release:e=>{if(!e)return;let t=i.get(e);if(t!==void 0){if(t<=1){i.delete(e);return}i.set(e,t-1)}},size:()=>i.size,clear:()=>i.clear()}}function we(e){let t=Array.isArray(e)?e[0]:e;if(!t)return!1;let n=t.split(`;`,1)[0]?.trim().toLowerCase();return n===`application/json`||!!n?.endsWith(`+json`)}function Te(e){let t=e.allowMethods?.length?e.allowMethods:null;return t&&!t.includes(e.req.method??``)?(e.res.statusCode=405,e.res.setHeader(`Allow`,t.join(`, `)),e.res.end(`Method Not Allowed`),!1):e.rateLimiter&&e.rateLimitKey&&e.rateLimiter.isRateLimited(e.rateLimitKey,e.nowMs??Date.now())?(e.res.statusCode=429,e.res.end(`Too Many Requests`),!1):e.requireJsonContentType&&e.req.method===`POST`&&!we(e.req.headers[`content-type`])?(e.res.statusCode=415,e.res.end(`Unsupported Media Type`),!1):!0}function Ee(e){if(!Te({req:e.req,res:e.res,allowMethods:e.allowMethods,rateLimiter:e.rateLimiter,rateLimitKey:e.rateLimitKey,nowMs:e.nowMs,requireJsonContentType:e.requireJsonContentType}))return{ok:!1};let t=e.inFlightKey??``,n=e.inFlightLimiter;if(n&&t&&!n.tryAcquire(t))return e.res.statusCode=e.inFlightLimitStatusCode??429,e.res.end(e.inFlightLimitMessage??`Too Many Requests`),{ok:!1};let r=!1;return{ok:!0,release:()=>{r||(r=!0,n&&t&&n.release(t))}}}async function De(e){let t=xe({maxBytes:e.maxBytes,timeoutMs:e.timeoutMs,profile:e.profile});try{return{ok:!0,value:await r.en(e.req,t)}}catch(t){return r.Qt(t)?Se({res:e.res,code:t.code,invalidMessage:e.invalidBodyMessage}):Se({res:e.res,code:`INVALID_BODY`,invalidMessage:e.invalidBodyMessage??(t instanceof Error?t.message:String(t))})}}async function Oe(e){let t=xe({maxBytes:e.maxBytes,timeoutMs:e.timeoutMs,profile:e.profile}),n=await r.$t(e.req,{maxBytes:t.maxBytes,timeoutMs:t.timeoutMs,emptyObjectOnEmpty:e.emptyObjectOnEmpty});return n.ok?{ok:!0,value:n.value}:Se({res:e.res,code:n.code,invalidMessage:e.invalidJsonMessage})}function ke(e){return Me(e.targetsByPath,e.target,{onFirstPathTarget:({path:t})=>r.an({...e.route,path:t,replaceExisting:e.route.replaceExisting??!0}),onLastPathTargetRemoved:e.onLastPathTargetRemoved})}const Ae=new WeakMap;function je(e){let t=e,n=Ae.get(t);if(n)return n;let r=new Map;return Ae.set(t,r),r}function Me(e,t,n){let r=T(t.path),i={...t,path:r},a=e.get(r)??[];if(a.length===0){let t=n?.onFirstPathTarget?.({path:r,target:i});typeof t==`function`&&je(e).set(r,t)}e.set(r,[...a,i]);let o=!0;return{target:i,unregister:()=>{if(!o)return;o=!1;let t=(e.get(r)??[]).filter(e=>e!==i);if(t.length>0){e.set(r,t);return}e.delete(r);let a=je(e).get(r);a&&(je(e).delete(r),a()),n?.onLastPathTargetRemoved?.({path:r})}}}function Ne(e,t){let n=T(new URL(e.url??`/`,`http://localhost`).pathname),r=t.get(n);return!r||r.length===0?null:{path:n,targets:r}}async function Pe(e){let t=Ne(e.req,e.targetsByPath);if(!t)return!1;let n=typeof e.inFlightKey==`function`?e.inFlightKey({req:e.req,path:t.path,targets:t.targets}):e.inFlightKey??`${t.path}:${e.req.socket?.remoteAddress??`unknown`}`,r=Ee({req:e.req,res:e.res,allowMethods:e.allowMethods,rateLimiter:e.rateLimiter,rateLimitKey:e.rateLimitKey,nowMs:e.nowMs,requireJsonContentType:e.requireJsonContentType,inFlightLimiter:e.inFlightLimiter,inFlightKey:n,inFlightLimitStatusCode:e.inFlightLimitStatusCode,inFlightLimitMessage:e.inFlightLimitMessage});if(!r.ok)return!0;try{return await e.handle(t),!0}finally{r.release()}}function Fe(e,t){return e?{ok:!1,result:{kind:`ambiguous`}}:{ok:!0,matched:t}}function Ie(e){return e?{kind:`single`,target:e}:{kind:`none`}}function Le(e,t){let n;for(let r of e){if(!t(r))continue;let e=Fe(n,r);if(!e.ok)return e.result;n=e.matched}return Ie(n)}async function Re(e,t){let n;for(let r of e){if(!await t(r))continue;let e=Fe(n,r);if(!e.ok)return e.result;n=e.matched}return Ie(n)}async function ze(e){return Ve(e,await Re(e.targets,async t=>!!await e.isMatch(t)))}function Be(e){return Ve(e,Le(e.targets,e.isMatch))}function Ve(e,t){return t.kind===`single`?t.target:t.kind===`ambiguous`?(e.res.statusCode=e.ambiguousStatusCode??401,e.res.end(e.ambiguousMessage??`ambiguous webhook target`),null):(e.res.statusCode=e.unauthorizedStatusCode??401,e.res.end(e.unauthorizedMessage??`unauthorized`),null)}function He(e,t){return e.method===`POST`?!1:(t.statusCode=405,t.setHeader(`Allow`,`POST`),t.end(`Method Not Allowed`),!0)}function Ue(e){return t=>{e.setStatus({accountId:e.accountId,...t})}}function We(e,t){return new Promise((n,r)=>{let i=()=>{Promise.resolve(t?.()).then(()=>n(),r)};if(e){if(e.aborted){i();return}e.addEventListener(`abort`,i,{once:!0})}})}async function Ge(e){let t=await e.start();try{await We(e.abortSignal)}finally{await e.stop?.(t),await e.onStop?.()}}async function Ke(e){let{server:t,abortSignal:n,onAbort:r}=e,i=Promise.resolve(),a=!1,o=()=>{a||(a=!0,i=Promise.resolve(r?.()).then(()=>void 0))},s=()=>{o()};n&&(n.aborted?o():n.addEventListener(`abort`,s,{once:!0})),await new Promise(e=>{t.once(`close`,()=>e())}),n&&n.removeEventListener(`abort`,s),await i}function qe(e){let t=e[0],n=e.map(e=>e.path),r=e.map(e=>e.contentType).filter(Boolean);return{MediaPath:t?.path,MediaType:t?.contentType??void 0,MediaUrl:t?.path,MediaPaths:n.length>0?n:void 0,MediaUrls:n.length>0?n:void 0,MediaTypes:r.length>0?r:void 0}}function Je(e,t){return{accountId:e,running:!1,lastStartAt:null,lastStopAt:null,lastError:null,...t??{}}}function Ye(e){return{configured:e.configured??!1,running:e.running??!1,lastStartAt:e.lastStartAt??null,lastStopAt:e.lastStopAt??null,lastError:e.lastError??null}}function Xe(e,t){return{...Ye(e),...t??{},probe:e.probe,lastProbeAt:e.lastProbeAt??null}}function Ze(e){let{account:t,runtime:n,probe:r}=e;return{accountId:t.accountId,name:t.name,enabled:t.enabled,configured:t.configured,...$e({runtime:n,probe:r}),lastInboundAt:n?.lastInboundAt??null,lastOutboundAt:n?.lastOutboundAt??null}}function Qe(e){let{accountId:t,name:n,enabled:r,configured:i,runtime:a,probe:o}=e;return Ze({account:{accountId:t,name:n,enabled:r,configured:i},runtime:a,probe:o})}function $e(e){let{runtime:t,probe:n}=e;return{running:t?.running??!1,lastStartAt:t?.lastStartAt??null,lastStopAt:t?.lastStopAt??null,lastError:t?.lastError??null,probe:n}}function et(e,t){let n={...Ye(e),tokenSource:e.tokenSource??`none`,probe:e.probe,lastProbeAt:e.lastProbeAt??null};return t?.includeMode===!1?n:{...n,mode:e.mode??null}}function tt(e,t){return t.flatMap(t=>{let n=typeof t.lastError==`string`?t.lastError.trim():``;return n?[{channel:e,accountId:t.accountId,kind:`runtime`,message:`Channel error: ${n}`}]:[]})}const nt={openai:[`OPENAI_API_KEY`],anthropic:[`ANTHROPIC_API_KEY`],google:[`GEMINI_API_KEY`],minimax:[`MINIMAX_API_KEY`],"minimax-cn":[`MINIMAX_API_KEY`],moonshot:[`MOONSHOT_API_KEY`],"kimi-coding":[`KIMI_API_KEY`,`KIMICODE_API_KEY`],synthetic:[`SYNTHETIC_API_KEY`],venice:[`VENICE_API_KEY`],zai:[`ZAI_API_KEY`,`Z_AI_API_KEY`],xiaomi:[`XIAOMI_API_KEY`],openrouter:[`OPENROUTER_API_KEY`],"cloudflare-ai-gateway":[`CLOUDFLARE_AI_GATEWAY_API_KEY`],litellm:[`LITELLM_API_KEY`],"vercel-ai-gateway":[`AI_GATEWAY_API_KEY`],opencode:[`OPENCODE_API_KEY`,`OPENCODE_ZEN_API_KEY`],"opencode-go":[`OPENCODE_API_KEY`,`OPENCODE_ZEN_API_KEY`],together:[`TOGETHER_API_KEY`],huggingface:[`HUGGINGFACE_HUB_TOKEN`,`HF_TOKEN`],qianfan:[`QIANFAN_API_KEY`],xai:[`XAI_API_KEY`],mistral:[`MISTRAL_API_KEY`],kilocode:[`KILOCODE_API_KEY`],modelstudio:[`MODELSTUDIO_API_KEY`],volcengine:[`VOLCANO_ENGINE_API_KEY`],byteplus:[`BYTEPLUS_API_KEY`]},rt=[`VOYAGE_API_KEY`,`GROQ_API_KEY`,`DEEPGRAM_API_KEY`,`CEREBRAS_API_KEY`,`NVIDIA_API_KEY`,`COPILOT_GITHUB_TOKEN`,`GH_TOKEN`,`GITHUB_TOKEN`,`ANTHROPIC_OAUTH_TOKEN`,`CHUTES_OAUTH_TOKEN`,`CHUTES_API_KEY`,`QWEN_OAUTH_TOKEN`,`QWEN_PORTAL_API_KEY`,`MINIMAX_OAUTH_TOKEN`,`OLLAMA_API_KEY`,`VLLM_API_KEY`],it=[...new Set(Object.values(nt).flatMap(e=>e))];[...new Set([...it,...rt])];function at(e){return e instanceof Error&&typeof e.message==`string`&&e.message.trim()?e.message:String(e)}function ot(e){return nt[e]?.find(e=>e.trim().length>0)}function st(e){return`/providers/${n.El(e)}/apiKey`}async function ct(e){let t=e.preferredEnvVar??ot(e.provider)??``,r=st(e.provider),i=`env`;for(;;){let a=await e.prompter.select({message:e.copy?.sourceMessage??`Where is this API key stored?`,initialValue:i,options:[{value:`env`,label:`Environment variable`,hint:`Reference a variable from your runtime environment`},{value:`provider`,label:`Configured secret provider`,hint:`Use a configured file or exec secret provider`}]})===`provider`?`provider`:`env`;if(i=a,a===`env`){let r=await e.prompter.text({message:e.copy?.envVarMessage??`Environment variable name`,initialValue:t||void 0,placeholder:e.copy?.envVarPlaceholder??`OPENAI_API_KEY`,validate:t=>{let r=t.trim();if(!n.Ql(r))return e.copy?.envVarFormatError??`Use an env var name like "OPENAI_API_KEY" (uppercase letters, numbers, underscores).`;if(!process.env[r]?.trim())return e.copy?.envVarMissingError?.(r)??`Environment variable "${r}" is missing or empty in this session.`}}),i=String(r??``).trim(),a=i&&n.Ql(i)?i:t;if(!a)throw Error(`No valid environment variable name provided for provider "${e.provider}".`);let o={source:`env`,provider:n.wl(e.config,`env`,{preferFirstProviderForSource:!0}),id:a},s=await n.dl(o,{config:e.config,env:process.env});return await e.prompter.note(e.copy?.envValidatedMessage?.(a)??`Validated environment variable ${a}. OpenClaw will store a reference, not the key value.`,`Reference validated`),{ref:o,resolvedValue:s}}let o=Object.entries(e.config.secrets?.providers??{}).filter(([,e])=>e?.source===`file`||e?.source===`exec`);if(o.length===0){await e.prompter.note(e.copy?.noProvidersMessage??`No file/exec secret providers are configured yet. Add one under secrets.providers, or select Environment variable.`,`No providers configured`);continue}let s=n.wl(e.config,`file`,{preferFirstProviderForSource:!0}),c=await e.prompter.select({message:`Select secret provider`,initialValue:o.find(([e])=>e===s)?.[0]??o[0]?.[0],options:o.map(([e,t])=>({value:e,label:e,hint:t?.source===`exec`?`Exec provider`:`File provider`}))}),l=e.config.secrets?.providers?.[c];if(!l||l.source!==`file`&&l.source!==`exec`){await e.prompter.note(`Provider "${c}" is not a file/exec provider.`,`Invalid provider`);continue}let u=l.source===`file`?`Secret id (JSON pointer for json mode, or 'value' for singleValue mode)`:`Secret id for the exec provider`,d=l.source===`file`?l.mode===`singleValue`?`value`:r:`${e.provider}/apiKey`,f=await e.prompter.text({message:u,initialValue:d,placeholder:l.source===`file`?`/providers/openai/apiKey`:`openai/api-key`,validate:e=>{let t=e.trim();if(!t)return`Secret id cannot be empty.`;if(l.source===`file`&&l.mode!==`singleValue`&&!n.Cl(t))return`Use an absolute JSON pointer like "/providers/openai/apiKey".`;if(l.source===`file`&&l.mode===`singleValue`&&t!==`value`)return`singleValue mode expects id "value".`;if(l.source===`exec`&&!n.Sl(t))return n.xl()}}),p=String(f??``).trim()||d,m={source:l.source,provider:c,id:p};try{let t=await n.dl(m,{config:e.config,env:process.env});return await e.prompter.note(e.copy?.providerValidatedMessage?.(c,p,l.source)??`Validated ${l.source} reference ${c}:${p}. OpenClaw will store a reference, not the key value.`,`Reference validated`),{ref:m,resolvedValue:t}}catch(t){await e.prompter.note([`Could not validate provider reference ${c}:${p}.`,at(t),`Check your provider configuration and try again.`].join(`
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./paths-BvlJvmRS.cjs`),t=require(`./paths-BPlgbwrb.cjs`),n=require(`./config-C2-9m5-M.cjs`),r=require(`./dispatch-BB5AfYlI.cjs`);require(`./github-copilot-token-TMkfxxD2.cjs`);const i=require(`./logger-Bm93ZKOk.cjs`),a=require(`./proxy-env-Bcl14j2_.cjs`),o=require(`./send-DMxohaL_.cjs`);require(`./fetch-lw-aF17e.cjs`),require(`./channel-activity-CC3JLAxD.cjs`);const s=require(`./fetch-guard-BI5z5sCg.cjs`);require(`./local-roots-CzbssMW1.cjs`);const c=require(`./ir-DcWa7gsX.cjs`);require(`./render-CzHaQB0d.cjs`),require(`./tables-BszYJkqX.cjs`);const l=require(`./send-CL2pl8br.cjs`),u=require(`./target-errors-DwAKh8KU.cjs`),d=require(`./send-DcRj8DUU.cjs`),f=require(`./deliver-d7VfVmTa.cjs`),p=require(`./diagnostic-C2jKFixS.cjs`);require(`./pi-model-discovery-CAYSx-Lw.cjs`);const m=require(`./audio-transcription-runner-DA6TwXrV.cjs`);require(`./image-BLG2OrjE.cjs`),require(`./api-key-rotation-YRRtbk9Y.cjs`),require(`./proxy-fetch-DH7VIiBH.cjs`);const h=require(`./tokens-Dq2wDF3_.cjs`);require(`./commands-registry-Bnadsir-.cjs`);const g=require(`./targets-D-m7SV9x.cjs`);require(`./send-DogBiU4n.cjs`);const _=require(`./fetch-DpwR_cJU.cjs`),v=require(`./skill-commands-B4AbCkKe.cjs`);require(`./outbound-attachment-BAHrn3r7.cjs`);const y=require(`./send-DJ419AIX.cjs`);require(`./query-expansion-DO2CFW4z.cjs`),require(`./manager-BuNveORY.cjs`);const ee=require(`./resolve-outbound-target-CDM7_xfU.cjs`),te=require(`./channel-web-D1tzaMsH.cjs`);require(`./outbound-Dy87UlCV.cjs`),require(`./session-Djo63EGV.cjs`);const ne=require(`./login-DHBcWg4R.cjs`);let b=require(`node:fs`);b=e.p(b);let x=require(`node:path`);x=e.p(x);let S=require(`node:os`);S=e.p(S);let C=require(`node:fs/promises`);C=e.p(C);let re=require(`node:crypto`),ie=require(`node:util`),ae=require(`node:stream/promises`),oe=require(`node:https`),w=require(`zod`),se=require(`node:stream`),ce=require(`jszip`);ce=e.p(ce);let le=require(`tar`);le=e.p(le);function ue(e){return{success:!1,error:{issues:[{path:[],message:e}]}}}function de(){return{safeParse(e){return e===void 0?{success:!0,data:void 0}:!e||typeof e!=`object`||Array.isArray(e)?ue(`expected config object`):Object.keys(e).length>0?ue(`config must be empty`):{success:!0,data:e}},jsonSchema:{type:`object`,additionalProperties:!1,properties:{}}}}function fe(e){return e.map(e=>({input:e.input,resolved:e.resolved,id:e.id,name:e.name,note:e.note}))}async function pe(e){let t=[];for(let n of e.inputs)t.push(await e.mapInput(n));return t}function me(e){return typeof e==`string`?e:e instanceof URL?e.toString():typeof e==`object`&&e&&`url`in e&&typeof e.url==`string`?e.url:``}function he(e){return{verbose:!1,replyTo:e.replyToId??void 0,accountId:e.accountId??void 0,silent:e.silent??void 0}}function ge(e){return{...he(e),mediaUrl:e.mediaUrl,mediaLocalRoots:e.mediaLocalRoots}}function _e(e){return{channel:`discord`,...e}}function T(e){let t=e.trim();if(!t)return`/`;let n=t.startsWith(`/`)?t:`/${t}`;return n.length>1&&n.endsWith(`/`)?n.slice(0,-1):n}function ve(e){let t=e.webhookPath?.trim();if(t)return T(t);if(e.webhookUrl?.trim())try{return T(new URL(e.webhookUrl).pathname||`/`)}catch{return null}return e.defaultPath??null}const ye=Object.freeze({preAuth:{maxBytes:64*1024,timeoutMs:5e3},postAuth:{maxBytes:1024*1024,timeoutMs:3e4}}),be=Object.freeze({maxInFlightPerKey:8,maxTrackedKeys:4096});function xe(e){let t=e.profile===`pre-auth`?ye.preAuth:ye.postAuth;return{maxBytes:typeof e.maxBytes==`number`&&Number.isFinite(e.maxBytes)&&e.maxBytes>0?Math.floor(e.maxBytes):t.maxBytes,timeoutMs:typeof e.timeoutMs==`number`&&Number.isFinite(e.timeoutMs)&&e.timeoutMs>0?Math.floor(e.timeoutMs):t.timeoutMs}}function Se(e){let{res:t,code:n,invalidMessage:i}=e;return n===`PAYLOAD_TOO_LARGE`?(t.statusCode=413,t.end(r.tn(`PAYLOAD_TOO_LARGE`)),{ok:!1}):n===`REQUEST_BODY_TIMEOUT`?(t.statusCode=408,t.end(r.tn(`REQUEST_BODY_TIMEOUT`)),{ok:!1}):n===`CONNECTION_CLOSED`?(t.statusCode=400,t.end(r.tn(`CONNECTION_CLOSED`)),{ok:!1}):(t.statusCode=400,t.end(i??`Bad Request`),{ok:!1})}function Ce(e){let t=Math.max(1,Math.floor(e?.maxInFlightPerKey??be.maxInFlightPerKey)),n=Math.max(1,Math.floor(e?.maxTrackedKeys??be.maxTrackedKeys)),i=new Map;return{tryAcquire:e=>{if(!e)return!0;let a=i.get(e)??0;return a>=t?!1:(i.set(e,a+1),r.qt(i,n),!0)},release:e=>{if(!e)return;let t=i.get(e);if(t!==void 0){if(t<=1){i.delete(e);return}i.set(e,t-1)}},size:()=>i.size,clear:()=>i.clear()}}function we(e){let t=Array.isArray(e)?e[0]:e;if(!t)return!1;let n=t.split(`;`,1)[0]?.trim().toLowerCase();return n===`application/json`||!!n?.endsWith(`+json`)}function Te(e){let t=e.allowMethods?.length?e.allowMethods:null;return t&&!t.includes(e.req.method??``)?(e.res.statusCode=405,e.res.setHeader(`Allow`,t.join(`, `)),e.res.end(`Method Not Allowed`),!1):e.rateLimiter&&e.rateLimitKey&&e.rateLimiter.isRateLimited(e.rateLimitKey,e.nowMs??Date.now())?(e.res.statusCode=429,e.res.end(`Too Many Requests`),!1):e.requireJsonContentType&&e.req.method===`POST`&&!we(e.req.headers[`content-type`])?(e.res.statusCode=415,e.res.end(`Unsupported Media Type`),!1):!0}function Ee(e){if(!Te({req:e.req,res:e.res,allowMethods:e.allowMethods,rateLimiter:e.rateLimiter,rateLimitKey:e.rateLimitKey,nowMs:e.nowMs,requireJsonContentType:e.requireJsonContentType}))return{ok:!1};let t=e.inFlightKey??``,n=e.inFlightLimiter;if(n&&t&&!n.tryAcquire(t))return e.res.statusCode=e.inFlightLimitStatusCode??429,e.res.end(e.inFlightLimitMessage??`Too Many Requests`),{ok:!1};let r=!1;return{ok:!0,release:()=>{r||(r=!0,n&&t&&n.release(t))}}}async function De(e){let t=xe({maxBytes:e.maxBytes,timeoutMs:e.timeoutMs,profile:e.profile});try{return{ok:!0,value:await r.en(e.req,t)}}catch(t){return r.Qt(t)?Se({res:e.res,code:t.code,invalidMessage:e.invalidBodyMessage}):Se({res:e.res,code:`INVALID_BODY`,invalidMessage:e.invalidBodyMessage??(t instanceof Error?t.message:String(t))})}}async function Oe(e){let t=xe({maxBytes:e.maxBytes,timeoutMs:e.timeoutMs,profile:e.profile}),n=await r.$t(e.req,{maxBytes:t.maxBytes,timeoutMs:t.timeoutMs,emptyObjectOnEmpty:e.emptyObjectOnEmpty});return n.ok?{ok:!0,value:n.value}:Se({res:e.res,code:n.code,invalidMessage:e.invalidJsonMessage})}function ke(e){return Me(e.targetsByPath,e.target,{onFirstPathTarget:({path:t})=>r.an({...e.route,path:t,replaceExisting:e.route.replaceExisting??!0}),onLastPathTargetRemoved:e.onLastPathTargetRemoved})}const Ae=new WeakMap;function je(e){let t=e,n=Ae.get(t);if(n)return n;let r=new Map;return Ae.set(t,r),r}function Me(e,t,n){let r=T(t.path),i={...t,path:r},a=e.get(r)??[];if(a.length===0){let t=n?.onFirstPathTarget?.({path:r,target:i});typeof t==`function`&&je(e).set(r,t)}e.set(r,[...a,i]);let o=!0;return{target:i,unregister:()=>{if(!o)return;o=!1;let t=(e.get(r)??[]).filter(e=>e!==i);if(t.length>0){e.set(r,t);return}e.delete(r);let a=je(e).get(r);a&&(je(e).delete(r),a()),n?.onLastPathTargetRemoved?.({path:r})}}}function Ne(e,t){let n=T(new URL(e.url??`/`,`http://localhost`).pathname),r=t.get(n);return!r||r.length===0?null:{path:n,targets:r}}async function Pe(e){let t=Ne(e.req,e.targetsByPath);if(!t)return!1;let n=typeof e.inFlightKey==`function`?e.inFlightKey({req:e.req,path:t.path,targets:t.targets}):e.inFlightKey??`${t.path}:${e.req.socket?.remoteAddress??`unknown`}`,r=Ee({req:e.req,res:e.res,allowMethods:e.allowMethods,rateLimiter:e.rateLimiter,rateLimitKey:e.rateLimitKey,nowMs:e.nowMs,requireJsonContentType:e.requireJsonContentType,inFlightLimiter:e.inFlightLimiter,inFlightKey:n,inFlightLimitStatusCode:e.inFlightLimitStatusCode,inFlightLimitMessage:e.inFlightLimitMessage});if(!r.ok)return!0;try{return await e.handle(t),!0}finally{r.release()}}function Fe(e,t){return e?{ok:!1,result:{kind:`ambiguous`}}:{ok:!0,matched:t}}function Ie(e){return e?{kind:`single`,target:e}:{kind:`none`}}function Le(e,t){let n;for(let r of e){if(!t(r))continue;let e=Fe(n,r);if(!e.ok)return e.result;n=e.matched}return Ie(n)}async function Re(e,t){let n;for(let r of e){if(!await t(r))continue;let e=Fe(n,r);if(!e.ok)return e.result;n=e.matched}return Ie(n)}async function ze(e){return Ve(e,await Re(e.targets,async t=>!!await e.isMatch(t)))}function Be(e){return Ve(e,Le(e.targets,e.isMatch))}function Ve(e,t){return t.kind===`single`?t.target:t.kind===`ambiguous`?(e.res.statusCode=e.ambiguousStatusCode??401,e.res.end(e.ambiguousMessage??`ambiguous webhook target`),null):(e.res.statusCode=e.unauthorizedStatusCode??401,e.res.end(e.unauthorizedMessage??`unauthorized`),null)}function He(e,t){return e.method===`POST`?!1:(t.statusCode=405,t.setHeader(`Allow`,`POST`),t.end(`Method Not Allowed`),!0)}function Ue(e){return t=>{e.setStatus({accountId:e.accountId,...t})}}function We(e,t){return new Promise((n,r)=>{let i=()=>{Promise.resolve(t?.()).then(()=>n(),r)};if(e){if(e.aborted){i();return}e.addEventListener(`abort`,i,{once:!0})}})}async function Ge(e){let t=await e.start();try{await We(e.abortSignal)}finally{await e.stop?.(t),await e.onStop?.()}}async function Ke(e){let{server:t,abortSignal:n,onAbort:r}=e,i=Promise.resolve(),a=!1,o=()=>{a||(a=!0,i=Promise.resolve(r?.()).then(()=>void 0))},s=()=>{o()};n&&(n.aborted?o():n.addEventListener(`abort`,s,{once:!0})),await new Promise(e=>{t.once(`close`,()=>e())}),n&&n.removeEventListener(`abort`,s),await i}function qe(e){let t=e[0],n=e.map(e=>e.path),r=e.map(e=>e.contentType).filter(Boolean);return{MediaPath:t?.path,MediaType:t?.contentType??void 0,MediaUrl:t?.path,MediaPaths:n.length>0?n:void 0,MediaUrls:n.length>0?n:void 0,MediaTypes:r.length>0?r:void 0}}function Je(e,t){return{accountId:e,running:!1,lastStartAt:null,lastStopAt:null,lastError:null,...t??{}}}function Ye(e){return{configured:e.configured??!1,running:e.running??!1,lastStartAt:e.lastStartAt??null,lastStopAt:e.lastStopAt??null,lastError:e.lastError??null}}function Xe(e,t){return{...Ye(e),...t??{},probe:e.probe,lastProbeAt:e.lastProbeAt??null}}function Ze(e){let{account:t,runtime:n,probe:r}=e;return{accountId:t.accountId,name:t.name,enabled:t.enabled,configured:t.configured,...$e({runtime:n,probe:r}),lastInboundAt:n?.lastInboundAt??null,lastOutboundAt:n?.lastOutboundAt??null}}function Qe(e){let{accountId:t,name:n,enabled:r,configured:i,runtime:a,probe:o}=e;return Ze({account:{accountId:t,name:n,enabled:r,configured:i},runtime:a,probe:o})}function $e(e){let{runtime:t,probe:n}=e;return{running:t?.running??!1,lastStartAt:t?.lastStartAt??null,lastStopAt:t?.lastStopAt??null,lastError:t?.lastError??null,probe:n}}function et(e,t){let n={...Ye(e),tokenSource:e.tokenSource??`none`,probe:e.probe,lastProbeAt:e.lastProbeAt??null};return t?.includeMode===!1?n:{...n,mode:e.mode??null}}function tt(e,t){return t.flatMap(t=>{let n=typeof t.lastError==`string`?t.lastError.trim():``;return n?[{channel:e,accountId:t.accountId,kind:`runtime`,message:`Channel error: ${n}`}]:[]})}const nt={openai:[`OPENAI_API_KEY`],anthropic:[`ANTHROPIC_API_KEY`],google:[`GEMINI_API_KEY`],minimax:[`MINIMAX_API_KEY`],"minimax-cn":[`MINIMAX_API_KEY`],moonshot:[`MOONSHOT_API_KEY`],"kimi-coding":[`KIMI_API_KEY`,`KIMICODE_API_KEY`],synthetic:[`SYNTHETIC_API_KEY`],venice:[`VENICE_API_KEY`],zai:[`ZAI_API_KEY`,`Z_AI_API_KEY`],xiaomi:[`XIAOMI_API_KEY`],openrouter:[`OPENROUTER_API_KEY`],"cloudflare-ai-gateway":[`CLOUDFLARE_AI_GATEWAY_API_KEY`],litellm:[`LITELLM_API_KEY`],"vercel-ai-gateway":[`AI_GATEWAY_API_KEY`],opencode:[`OPENCODE_API_KEY`,`OPENCODE_ZEN_API_KEY`],"opencode-go":[`OPENCODE_API_KEY`,`OPENCODE_ZEN_API_KEY`],together:[`TOGETHER_API_KEY`],huggingface:[`HUGGINGFACE_HUB_TOKEN`,`HF_TOKEN`],qianfan:[`QIANFAN_API_KEY`],xai:[`XAI_API_KEY`],mistral:[`MISTRAL_API_KEY`],kilocode:[`KILOCODE_API_KEY`],modelstudio:[`MODELSTUDIO_API_KEY`],volcengine:[`VOLCANO_ENGINE_API_KEY`],byteplus:[`BYTEPLUS_API_KEY`]},rt=[`VOYAGE_API_KEY`,`GROQ_API_KEY`,`DEEPGRAM_API_KEY`,`CEREBRAS_API_KEY`,`NVIDIA_API_KEY`,`COPILOT_GITHUB_TOKEN`,`GH_TOKEN`,`GITHUB_TOKEN`,`ANTHROPIC_OAUTH_TOKEN`,`CHUTES_OAUTH_TOKEN`,`CHUTES_API_KEY`,`QWEN_OAUTH_TOKEN`,`QWEN_PORTAL_API_KEY`,`MINIMAX_OAUTH_TOKEN`,`OLLAMA_API_KEY`,`VLLM_API_KEY`],it=[...new Set(Object.values(nt).flatMap(e=>e))];[...new Set([...it,...rt])];function at(e){return e instanceof Error&&typeof e.message==`string`&&e.message.trim()?e.message:String(e)}function ot(e){return nt[e]?.find(e=>e.trim().length>0)}function st(e){return`/providers/${n.El(e)}/apiKey`}async function ct(e){let t=e.preferredEnvVar??ot(e.provider)??``,r=st(e.provider),i=`env`;for(;;){let a=await e.prompter.select({message:e.copy?.sourceMessage??`Where is this API key stored?`,initialValue:i,options:[{value:`env`,label:`Environment variable`,hint:`Reference a variable from your runtime environment`},{value:`provider`,label:`Configured secret provider`,hint:`Use a configured file or exec secret provider`}]})===`provider`?`provider`:`env`;if(i=a,a===`env`){let r=await e.prompter.text({message:e.copy?.envVarMessage??`Environment variable name`,initialValue:t||void 0,placeholder:e.copy?.envVarPlaceholder??`OPENAI_API_KEY`,validate:t=>{let r=t.trim();if(!n.Ql(r))return e.copy?.envVarFormatError??`Use an env var name like "OPENAI_API_KEY" (uppercase letters, numbers, underscores).`;if(!process.env[r]?.trim())return e.copy?.envVarMissingError?.(r)??`Environment variable "${r}" is missing or empty in this session.`}}),i=String(r??``).trim(),a=i&&n.Ql(i)?i:t;if(!a)throw Error(`No valid environment variable name provided for provider "${e.provider}".`);let o={source:`env`,provider:n.wl(e.config,`env`,{preferFirstProviderForSource:!0}),id:a},s=await n.dl(o,{config:e.config,env:process.env});return await e.prompter.note(e.copy?.envValidatedMessage?.(a)??`Validated environment variable ${a}. OpenClaw will store a reference, not the key value.`,`Reference validated`),{ref:o,resolvedValue:s}}let o=Object.entries(e.config.secrets?.providers??{}).filter(([,e])=>e?.source===`file`||e?.source===`exec`);if(o.length===0){await e.prompter.note(e.copy?.noProvidersMessage??`No file/exec secret providers are configured yet. Add one under secrets.providers, or select Environment variable.`,`No providers configured`);continue}let s=n.wl(e.config,`file`,{preferFirstProviderForSource:!0}),c=await e.prompter.select({message:`Select secret provider`,initialValue:o.find(([e])=>e===s)?.[0]??o[0]?.[0],options:o.map(([e,t])=>({value:e,label:e,hint:t?.source===`exec`?`Exec provider`:`File provider`}))}),l=e.config.secrets?.providers?.[c];if(!l||l.source!==`file`&&l.source!==`exec`){await e.prompter.note(`Provider "${c}" is not a file/exec provider.`,`Invalid provider`);continue}let u=l.source===`file`?`Secret id (JSON pointer for json mode, or 'value' for singleValue mode)`:`Secret id for the exec provider`,d=l.source===`file`?l.mode===`singleValue`?`value`:r:`${e.provider}/apiKey`,f=await e.prompter.text({message:u,initialValue:d,placeholder:l.source===`file`?`/providers/openai/apiKey`:`openai/api-key`,validate:e=>{let t=e.trim();if(!t)return`Secret id cannot be empty.`;if(l.source===`file`&&l.mode!==`singleValue`&&!n.Cl(t))return`Use an absolute JSON pointer like "/providers/openai/apiKey".`;if(l.source===`file`&&l.mode===`singleValue`&&t!==`value`)return`singleValue mode expects id "value".`;if(l.source===`exec`&&!n.Sl(t))return n.xl()}}),p=String(f??``).trim()||d,m={source:l.source,provider:c,id:p};try{let t=await n.dl(m,{config:e.config,env:process.env});return await e.prompter.note(e.copy?.providerValidatedMessage?.(c,p,l.source)??`Validated ${l.source} reference ${c}:${p}. OpenClaw will store a reference, not the key value.`,`Reference validated`),{ref:m,resolvedValue:t}}catch(t){await e.prompter.note([`Could not validate provider reference ${c}:${p}.`,at(t),`Check your provider configuration and try again.`].join(`
2
2
  `),`Reference check failed`)}}}async function lt(e){return e.explicitMode?e.explicitMode:typeof e.prompter.select==`function`&&await e.prompter.select({message:e.copy?.modeMessage??`How do you want to provide this API key?`,initialValue:`plaintext`,options:[{value:`plaintext`,label:e.copy?.plaintextLabel??`Paste API key now`,hint:e.copy?.plaintextHint??`Stores the key directly in OpenClaw config`},{value:`ref`,label:e.copy?.refLabel??`Use external secret provider`,hint:e.copy?.refHint??`Stores a reference to env or configured external secret providers`}]})===`ref`?`ref`:`plaintext`}async function ut(e){let n=e.listAccountIds(e.cfg),r=e.currentId?.trim()||e.defaultAccountId||`default`,i=await e.prompter.select({message:`${e.label} account`,options:[...n.map(e=>({value:e,label:e===`default`?`default (primary)`:e})),{value:`__new__`,label:`Add a new account`}],initialValue:r});if(i!==`__new__`)return t.Wt(i);let a=await e.prompter.text({message:`New ${e.label} account id`,validate:e=>e?.trim()?void 0:`Required`}),o=t.Wt(String(a));return String(a).trim()!==o&&await e.prompter.note(`Normalized account id to "${o}".`,`${e.label} account`),o}function dt(e,t){let n=e.channels?.[t];return!!(n?.accounts&&Object.keys(n.accounts).length>0)}function ft(e){return e.alwaysUseAccounts||e.accountId!==`default`?!0:dt(e.cfg,e.channelKey)}function pt(e){let n=e.name?.trim();if(!n)return e.cfg;let r=t.Wt(e.accountId),i=e.cfg.channels?.[e.channelKey],a=typeof i==`object`&&i?i:void 0;if(!ft({cfg:e.cfg,channelKey:e.channelKey,accountId:r,alwaysUseAccounts:e.alwaysUseAccounts})&&r===`default`){let t=a??{};return{...e.cfg,channels:{...e.cfg.channels,[e.channelKey]:{...t,name:n}}}}let o=a?.accounts??{},s=o[r]??{},c=r===`default`?(({name:e,...t})=>t)(a??{}):a??{};return{...e.cfg,channels:{...e.cfg.channels,[e.channelKey]:{...c,accounts:{...o,[r]:{...s,name:n}}}}}}function mt(e){if(e.alwaysUseAccounts)return e.cfg;let n=e.cfg.channels?.[e.channelKey],r=n?.name?.trim();if(!r)return e.cfg;let i={...n?.accounts},a=i.default??{};a.name||(i[t.Ut]={...a,name:r});let{name:o,...s}=n??{};return{...e.cfg,channels:{...e.cfg.channels,[e.channelKey]:{...s,accounts:i}}}}function ht(e){return gt({cfg:e.cfg,channelKey:e.channelKey,accountId:e.accountId,patch:e.patch})}function gt(e){let n=t.Wt(e.accountId),r=e.cfg.channels?.[e.channelKey],i=typeof r==`object`&&r?r:void 0,a=e.ensureChannelEnabled??!0,o=e.ensureAccountEnabled??a,s=e.patch,c=e.accountPatch??s;if(n===`default`)return{...e.cfg,channels:{...e.cfg.channels,[e.channelKey]:{...i,...a?{enabled:!0}:{},...s}}};let l=i?.accounts??{},u=l[n]??{};return{...e.cfg,channels:{...e.cfg.channels,[e.channelKey]:{...i,...a?{enabled:!0}:{},accounts:{...l,[n]:{...u,...o?{enabled:typeof u.enabled==`boolean`?u.enabled:!0}:{},...c}}}}}}const _t=new Set(`name.token.tokenFile.botToken.appToken.account.signalNumber.authDir.cliPath.dbPath.httpUrl.httpHost.httpPort.webhookPath.webhookUrl.webhookSecret.service.region.homeserver.userId.accessToken.password.deviceName.url.code.dmPolicy.allowFrom.groupPolicy.groupAllowFrom.defaultTo`.split(`.`)),vt={telegram:new Set([`streaming`])};function yt(e){return _t.has(e.key)?!0:vt[e.channelKey]?.has(e.key)??!1}function bt(e){return e&&typeof e==`object`?structuredClone(e):e}function xt(e){let n=e.cfg.channels?.[e.channelKey],r=typeof n==`object`&&n?n:void 0;if(!r)return e.cfg;let i=r.accounts??{};if(Object.keys(i).length>0)return e.cfg;let a=Object.entries(r).filter(([t,n])=>t!==`accounts`&&t!==`enabled`&&n!==void 0&&yt({channelKey:e.channelKey,key:t})).map(([e])=>e),o={};for(let e of a){let t=r[e];o[e]=bt(t)}let s={...r};for(let e of a)delete s[e];return{...e.cfg,channels:{...e.cfg.channels,[e.channelKey]:{...s,accounts:{...i,[t.Ut]:o}}}}}const St=async e=>await ut(e);function E(e){let t=(e??[]).map(e=>String(e).trim()).filter(Boolean);return t.includes(`*`)||t.push(`*`),t}function D(e,t){let n=[...e??[],...t].map(e=>String(e).trim()).filter(Boolean);return[...new Set(n)]}function O(e){return e.split(/[\n,;]+/g).map(e=>e.trim()).filter(Boolean)}function Ct(e,t){let n=O(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:k(r)}}function wt(e,t){return Ct(e,e=>e===`*`?{value:`*`}:t(e))}function Tt(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 k(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 A(e){return e.accountId?.trim()?t.Wt(e.accountId):e.defaultAccountId}async function j(e){let n=e.accountOverride?.trim(),r=n?t.Wt(n):e.defaultAccountId;return e.shouldPromptAccountIds&&!n&&(r=await St({cfg:e.cfg,prompter:e.prompter,label:e.label,currentId:r,listAccountIds:e.listAccountIds,defaultAccountId:e.defaultAccountId})),r}function Et(e){let{cfg:t,channel:n,accountId:r,allowFrom:i}=e;return Ft({cfg:t,channel:n,accountId:r,patch:{allowFrom:i},ensureEnabled:!1})}function Dt(e){let t=e.cfg.channels?.[e.channel]??{};return{...e.cfg,channels:{...e.cfg.channels,[e.channel]:{...t,...e.enabled?{enabled:!0}:{},allowFrom:e.allowFrom}}}}function Ot(e){let t=e.cfg.channels?.[e.channel]??{},n=e.getAllowFrom?.(e.cfg)??t.allowFrom??void 0,r=e.dmPolicy===`open`?E(n):void 0;return{...e.cfg,channels:{...e.cfg.channels,[e.channel]:{...t,dmPolicy:e.dmPolicy,...r?{allowFrom:r}:{}}}}}function kt(e){let t=e.cfg.channels?.[e.channel]??{};return{...e.cfg,channels:{...e.cfg.channels,[e.channel]:{...t,...e.enabled?{enabled:!0}:{},groupPolicy:e.groupPolicy}}}}function At(e){let{cfg:t,channel:n,dmPolicy:r}=e,i=r===`open`?E(t.channels?.[n]?.allowFrom):void 0;return{...t,channels:{...t.channels,[n]:{...t.channels?.[n],dmPolicy:r,...i?{allowFrom:i}:{}}}}}function jt(e){let t=e.cfg.channels?.[e.channel]??{allowFrom:void 0,dm:void 0},n=t.allowFrom??t.dm?.allowFrom,r=e.dmPolicy===`open`?E(n):void 0;return Pt({cfg:e.cfg,channel:e.channel,patch:{dmPolicy:e.dmPolicy,...r?{allowFrom:r}:{}}})}function Mt(e){return Pt({cfg:e.cfg,channel:e.channel,patch:{allowFrom:e.allowFrom}})}function Nt(e){return N({cfg:e.cfg,channel:e.channel,accountId:e.accountId,patch:{groupPolicy:e.groupPolicy}})}function Pt(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 M(e,t,n){let r=e.channels?.[t]??{};return{...e,channels:{...e.channels,[t]:{...r,enabled:n}}}}function Ft(e){let{cfg:t,channel:n,accountId:r,patch:i,ensureEnabled:a}=e;return gt({cfg:r===`default`?t:xt({cfg:t,channelKey:n}),channelKey:n,accountId:r,patch:i,ensureChannelEnabled:a,ensureAccountEnabled:a})}function N(e){return Ft({...e,ensureEnabled:!0})}function P(e){let t=e.cfg;return e.tokenResult.useEnv&&(t=N({cfg:t,channel:e.channel,accountId:e.accountId,patch:{}})),e.tokenResult.token&&(t=N({cfg:t,channel:e.channel,accountId:e.accountId,patch:{[e.tokenPatchKey]:e.tokenResult.token}})),t}function It(e){return{accountConfigured:e.accountConfigured,hasConfigToken:e.hasConfigToken,canUseEnv:e.allowEnv&&!!e.envValue?.trim()&&!e.hasConfigToken}}async function Lt(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 F(e){let t=It({accountConfigured:e.accountConfigured,hasConfigToken:e.hasConfigToken,allowEnv:e.allowEnv,envValue:e.envValue});!t.accountConfigured&&e.onMissingConfigured&&await e.onMissingConfigured();let n=await Rt({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 Rt(e){if(await lt({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 Lt({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 ct({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 zt(e){let t=A({accountId:e.accountId,defaultAccountId:e.defaultAccountId}),n=e.getExistingAllowFrom({cfg:e.cfg,accountId:t});await e.prompter.note(e.noteLines.join(`
3
3
  `),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=D(void 0,e.parseEntries(String(r)).entries);return Et({cfg:e.cfg,channel:e.channel,accountId:t,allowFrom:i})}async function Bt(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(`
4
4
  `),e.label)}async function Vt(e){await e.prompter.note(`Channel lookup failed; keeping entries as typed. ${String(e.error)}`,e.label)}async function Ht(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 D(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 D(e.existing,a)}}async function Ut(e){await e.prompter.note(e.noteLines.join(`
@@ -1,4 +1,4 @@
1
- import{Bt as e,E as t,L as n,Lt as r,O as i,Ut as a,Wt as o,_t as s,bt as c,c as l,d as u,f as d,h as f,k as p,l as m,m as ee,p as te,u as h,w as ne,yt as re}from"./paths-J4JUiRsa.js";import{$o as ie,A as ae,Aa as oe,B as se,Ba as ce,Bi as le,Ci as ue,Cl as de,Co as fe,Da as pe,Do as g,Ea as _,Ei as me,El as v,Eo as he,F as ge,Fa as _e,Fi as ve,Gi as ye,Gt as be,H as xe,Ha as Se,Hi as Ce,Hs as we,I as Te,Ia as Ee,Ii as De,Il as Oe,Ji as ke,Jl as Ae,Kc as je,Ki as Me,Kl as y,L as Ne,La as Pe,Li as Fe,Ll as Ie,M as Le,Ma as Re,N as ze,Na as Be,No as Ve,Oa as He,P as Ue,Pa as We,Pc as Ge,Pi as Ke,Qo as qe,R as Je,Ri as Ye,Rl as b,Si as Xe,Sl as Ze,Ss as Qe,Ta as $e,Ti as et,Tl as tt,U as nt,Ui as rt,Us as it,V as at,Va as ot,Vi as st,Wi as ct,Wl as lt,Ws as ut,Xi as dt,Xl as ft,Yi as pt,Yl as mt,Zi as ht,_ as gt,_a as _t,_i as vt,_o as yt,aa as bt,ao as xt,ba as St,bi as Ct,bl as wt,bo as Tt,bs as Et,co as Dt,d as Ot,da as kt,do as At,ea as jt,el as Mt,es as Nt,f as Pt,fa as Ft,fo as It,g as Lt,ga as Rt,go as zt,h as Bt,ha as Vt,ho as Ht,ia as Ut,io as x,j as Wt,ja as Gt,jo as Kt,js as qt,k as Jt,ka as Yt,lo as Xt,m as Zt,ma as Qt,mo as $t,no as en,oo as tn,p as nn,po as rn,qi as an,ql as on,ra as sn,ro as cn,so as ln,su as un,ul as dn,uo as fn,v as pn,va as mn,vi as hn,vo as gn,wa as _n,wi as vn,xi as yn,xl as bn,xo as xn,ya as S,yi as Sn,yo as Cn,z as wn,za as Tn,zi as En,zs as Dn}from"./config-Cx3SFBFW.js";import{$ as On,$t as kn,A as An,At as jn,B as Mn,Bt as Nn,Cn as Pn,Ct as Fn,D as In,Dt as Ln,E as Rn,Et as zn,Ft as Bn,H as Vn,Ht as Hn,I as Un,It as Wn,Jt as Gn,Kt as Kn,L as qn,Lt as Jn,M as Yn,Mt as Xn,N as Zn,O as Qn,Ot as $n,P as er,Pt as tr,Q as nr,Qt as rr,R as ir,Rt as ar,S as or,Sn as sr,St as cr,Tt as lr,Ut as ur,V as dr,Vt as fr,Wt as pr,X as mr,Xt as hr,Y as gr,Yt as _r,Z as vr,Zt as yr,_ as br,_n as xr,_t as Sr,a as Cr,an as wr,b as Tr,bn as Er,c as Dr,cn as Or,dn as kr,en as Ar,et as jr,fn as Mr,g as Nr,gn as Pr,h as Fr,hn as Ir,in as Lr,j as Rr,jt as zr,k as Br,kt as Vr,l as C,ln as Hr,m as Ur,mn as Wr,n as Gr,nn as Kr,o as qr,on as Jr,pn as Yr,qt as w,rn as Xr,s as Zr,sn as Qr,t as $r,tn as T,un as ei,v as ti,vn as ni,vt as ri,x as ii,xn as ai,xt as oi,y as E,yn as si,z as ci,zt as li}from"./dispatch-BlOkbw2U.js";import"./paths-DaRoqzBQ.js";import"./github-copilot-token-C1hiDugd.js";import{C as D,O as ui,Q as di,b as O,j as fi,m as pi,p as mi,q as hi,s as gi,v as _i,w as vi}from"./logger-BtrWb0dj.js";import{r as yi}from"./proxy-env-t6hcaFqC.js";import{At as bi,Bt as xi,Dt as Si,Et as Ci,Ft as wi,Ht as Ti,It as Ei,Mt as Di,Nt as Oi,Ot as ki,Pt as Ai,Tt as ji,Ut as Mi,Vt as Ni,Wt as Pi,at as Fi,dt as Ii,jt as Li,kt as Ri}from"./send-BJ957TYU.js";import"./fetch-DBRI0sKI.js";import"./channel-activity-Bnai3H2M.js";import{t as zi}from"./fetch-guard-DKS4LY4o.js";import"./local-roots-2OcKjfzk.js";import{p as Bi,v as Vi}from"./ir-vhCxHELh.js";import"./render-DGmfCIRG.js";import"./tables-CAZJt5bp.js";import{J as Hi,Y as Ui,it as Wi,rt as Gi}from"./send-XX5rP5bI.js";import{d as k,f as Ki,h as A,l as qi,n as Ji,o as Yi}from"./target-errors-CAgwWHUv.js";import{s as Xi}from"./send-CzEFjTpi.js";import{l as Zi}from"./deliver-CSGTRHt1.js";import{g as Qi,h as $i,m as ea}from"./diagnostic-DE5k6C1E.js";import"./pi-model-discovery-D1WW5m-Q.js";import{d as ta,f as na}from"./audio-transcription-runner-DuBgVmcT.js";import"./image-CO9zxV0G.js";import"./api-key-rotation-DInDOH-A.js";import"./proxy-fetch-B9aXJVe-.js";import{i as ra,n as ia}from"./tokens-AAdZjj0M.js";import"./commands-registry-C1Gb98lg.js";import{n as aa,r as oa}from"./targets-CVEYTFPQ.js";import"./send-vnIJSD5l.js";import{i as sa,n as ca,r as la}from"./fetch-BVEVk5YF.js";import{c as ua,l as da,n as fa,o as pa,s as ma}from"./skill-commands-DI1TMUxQ.js";import"./outbound-attachment-C94-r948.js";import{c as ha,d as ga,f as _a,i as va,l as ya,o as ba,s as xa,u as Sa}from"./send-ByKNfU2S.js";import"./query-expansion-DyCDaZbL.js";import"./manager-D9RwKYCX.js";import{t as Ca}from"./resolve-outbound-target-CvKfootv.js";import{r as wa}from"./channel-web-D5zxPW-x.js";import"./outbound-CTyu_gZh.js";import"./session-aOZKTEyZ.js";import{t as Ta}from"./login-x9vN5UnR.js";import Ea,{constants as j,createWriteStream as Da}from"node:fs";import M from"node:path";import Oa from"node:os";import N from"node:fs/promises";import{createHash as ka,randomBytes as Aa,randomUUID as ja}from"node:crypto";import{format as Ma}from"node:util";import{pipeline as Na}from"node:stream/promises";import{request as Pa}from"node:https";import{z as P}from"zod";import{Readable as Fa,Transform as Ia}from"node:stream";import La from"jszip";import*as Ra from"tar";function za(e){return{success:!1,error:{issues:[{path:[],message:e}]}}}function Ba(){return{safeParse(e){return e===void 0?{success:!0,data:void 0}:!e||typeof e!=`object`||Array.isArray(e)?za(`expected config object`):Object.keys(e).length>0?za(`config must be empty`):{success:!0,data:e}},jsonSchema:{type:`object`,additionalProperties:!1,properties:{}}}}function Va(e){return e.map(e=>({input:e.input,resolved:e.resolved,id:e.id,name:e.name,note:e.note}))}async function Ha(e){let t=[];for(let n of e.inputs)t.push(await e.mapInput(n));return t}function Ua(e){return typeof e==`string`?e:e instanceof URL?e.toString():typeof e==`object`&&e&&`url`in e&&typeof e.url==`string`?e.url:``}function Wa(e){return{verbose:!1,replyTo:e.replyToId??void 0,accountId:e.accountId??void 0,silent:e.silent??void 0}}function Ga(e){return{...Wa(e),mediaUrl:e.mediaUrl,mediaLocalRoots:e.mediaLocalRoots}}function Ka(e){return{channel:`discord`,...e}}function F(e){let t=e.trim();if(!t)return`/`;let n=t.startsWith(`/`)?t:`/${t}`;return n.length>1&&n.endsWith(`/`)?n.slice(0,-1):n}function qa(e){let t=e.webhookPath?.trim();if(t)return F(t);if(e.webhookUrl?.trim())try{return F(new URL(e.webhookUrl).pathname||`/`)}catch{return null}return e.defaultPath??null}const Ja=Object.freeze({preAuth:{maxBytes:64*1024,timeoutMs:5e3},postAuth:{maxBytes:1024*1024,timeoutMs:3e4}}),Ya=Object.freeze({maxInFlightPerKey:8,maxTrackedKeys:4096});function Xa(e){let t=e.profile===`pre-auth`?Ja.preAuth:Ja.postAuth;return{maxBytes:typeof e.maxBytes==`number`&&Number.isFinite(e.maxBytes)&&e.maxBytes>0?Math.floor(e.maxBytes):t.maxBytes,timeoutMs:typeof e.timeoutMs==`number`&&Number.isFinite(e.timeoutMs)&&e.timeoutMs>0?Math.floor(e.timeoutMs):t.timeoutMs}}function Za(e){let{res:t,code:n,invalidMessage:r}=e;return n===`PAYLOAD_TOO_LARGE`?(t.statusCode=413,t.end(T(`PAYLOAD_TOO_LARGE`)),{ok:!1}):n===`REQUEST_BODY_TIMEOUT`?(t.statusCode=408,t.end(T(`REQUEST_BODY_TIMEOUT`)),{ok:!1}):n===`CONNECTION_CLOSED`?(t.statusCode=400,t.end(T(`CONNECTION_CLOSED`)),{ok:!1}):(t.statusCode=400,t.end(r??`Bad Request`),{ok:!1})}function Qa(e){let t=Math.max(1,Math.floor(e?.maxInFlightPerKey??Ya.maxInFlightPerKey)),n=Math.max(1,Math.floor(e?.maxTrackedKeys??Ya.maxTrackedKeys)),r=new Map;return{tryAcquire:e=>{if(!e)return!0;let i=r.get(e)??0;return i>=t?!1:(r.set(e,i+1),w(r,n),!0)},release:e=>{if(!e)return;let t=r.get(e);if(t!==void 0){if(t<=1){r.delete(e);return}r.set(e,t-1)}},size:()=>r.size,clear:()=>r.clear()}}function $a(e){let t=Array.isArray(e)?e[0]:e;if(!t)return!1;let n=t.split(`;`,1)[0]?.trim().toLowerCase();return n===`application/json`||!!n?.endsWith(`+json`)}function eo(e){let t=e.allowMethods?.length?e.allowMethods:null;return t&&!t.includes(e.req.method??``)?(e.res.statusCode=405,e.res.setHeader(`Allow`,t.join(`, `)),e.res.end(`Method Not Allowed`),!1):e.rateLimiter&&e.rateLimitKey&&e.rateLimiter.isRateLimited(e.rateLimitKey,e.nowMs??Date.now())?(e.res.statusCode=429,e.res.end(`Too Many Requests`),!1):e.requireJsonContentType&&e.req.method===`POST`&&!$a(e.req.headers[`content-type`])?(e.res.statusCode=415,e.res.end(`Unsupported Media Type`),!1):!0}function to(e){if(!eo({req:e.req,res:e.res,allowMethods:e.allowMethods,rateLimiter:e.rateLimiter,rateLimitKey:e.rateLimitKey,nowMs:e.nowMs,requireJsonContentType:e.requireJsonContentType}))return{ok:!1};let t=e.inFlightKey??``,n=e.inFlightLimiter;if(n&&t&&!n.tryAcquire(t))return e.res.statusCode=e.inFlightLimitStatusCode??429,e.res.end(e.inFlightLimitMessage??`Too Many Requests`),{ok:!1};let r=!1;return{ok:!0,release:()=>{r||(r=!0,n&&t&&n.release(t))}}}async function no(e){let t=Xa({maxBytes:e.maxBytes,timeoutMs:e.timeoutMs,profile:e.profile});try{return{ok:!0,value:await Ar(e.req,t)}}catch(t){return rr(t)?Za({res:e.res,code:t.code,invalidMessage:e.invalidBodyMessage}):Za({res:e.res,code:`INVALID_BODY`,invalidMessage:e.invalidBodyMessage??(t instanceof Error?t.message:String(t))})}}async function ro(e){let t=Xa({maxBytes:e.maxBytes,timeoutMs:e.timeoutMs,profile:e.profile}),n=await kn(e.req,{maxBytes:t.maxBytes,timeoutMs:t.timeoutMs,emptyObjectOnEmpty:e.emptyObjectOnEmpty});return n.ok?{ok:!0,value:n.value}:Za({res:e.res,code:n.code,invalidMessage:e.invalidJsonMessage})}function io(e){return so(e.targetsByPath,e.target,{onFirstPathTarget:({path:t})=>wr({...e.route,path:t,replaceExisting:e.route.replaceExisting??!0}),onLastPathTargetRemoved:e.onLastPathTargetRemoved})}const ao=new WeakMap;function oo(e){let t=e,n=ao.get(t);if(n)return n;let r=new Map;return ao.set(t,r),r}function so(e,t,n){let r=F(t.path),i={...t,path:r},a=e.get(r)??[];if(a.length===0){let t=n?.onFirstPathTarget?.({path:r,target:i});typeof t==`function`&&oo(e).set(r,t)}e.set(r,[...a,i]);let o=!0;return{target:i,unregister:()=>{if(!o)return;o=!1;let t=(e.get(r)??[]).filter(e=>e!==i);if(t.length>0){e.set(r,t);return}e.delete(r);let a=oo(e).get(r);a&&(oo(e).delete(r),a()),n?.onLastPathTargetRemoved?.({path:r})}}}function co(e,t){let n=F(new URL(e.url??`/`,`http://localhost`).pathname),r=t.get(n);return!r||r.length===0?null:{path:n,targets:r}}async function lo(e){let t=co(e.req,e.targetsByPath);if(!t)return!1;let n=typeof e.inFlightKey==`function`?e.inFlightKey({req:e.req,path:t.path,targets:t.targets}):e.inFlightKey??`${t.path}:${e.req.socket?.remoteAddress??`unknown`}`,r=to({req:e.req,res:e.res,allowMethods:e.allowMethods,rateLimiter:e.rateLimiter,rateLimitKey:e.rateLimitKey,nowMs:e.nowMs,requireJsonContentType:e.requireJsonContentType,inFlightLimiter:e.inFlightLimiter,inFlightKey:n,inFlightLimitStatusCode:e.inFlightLimitStatusCode,inFlightLimitMessage:e.inFlightLimitMessage});if(!r.ok)return!0;try{return await e.handle(t),!0}finally{r.release()}}function uo(e,t){return e?{ok:!1,result:{kind:`ambiguous`}}:{ok:!0,matched:t}}function fo(e){return e?{kind:`single`,target:e}:{kind:`none`}}function po(e,t){let n;for(let r of e){if(!t(r))continue;let e=uo(n,r);if(!e.ok)return e.result;n=e.matched}return fo(n)}async function mo(e,t){let n;for(let r of e){if(!await t(r))continue;let e=uo(n,r);if(!e.ok)return e.result;n=e.matched}return fo(n)}async function ho(e){return _o(e,await mo(e.targets,async t=>!!await e.isMatch(t)))}function go(e){return _o(e,po(e.targets,e.isMatch))}function _o(e,t){return t.kind===`single`?t.target:t.kind===`ambiguous`?(e.res.statusCode=e.ambiguousStatusCode??401,e.res.end(e.ambiguousMessage??`ambiguous webhook target`),null):(e.res.statusCode=e.unauthorizedStatusCode??401,e.res.end(e.unauthorizedMessage??`unauthorized`),null)}function vo(e,t){return e.method===`POST`?!1:(t.statusCode=405,t.setHeader(`Allow`,`POST`),t.end(`Method Not Allowed`),!0)}function yo(e){return t=>{e.setStatus({accountId:e.accountId,...t})}}function bo(e,t){return new Promise((n,r)=>{let i=()=>{Promise.resolve(t?.()).then(()=>n(),r)};if(e){if(e.aborted){i();return}e.addEventListener(`abort`,i,{once:!0})}})}async function xo(e){let t=await e.start();try{await bo(e.abortSignal)}finally{await e.stop?.(t),await e.onStop?.()}}async function So(e){let{server:t,abortSignal:n,onAbort:r}=e,i=Promise.resolve(),a=!1,o=()=>{a||(a=!0,i=Promise.resolve(r?.()).then(()=>void 0))},s=()=>{o()};n&&(n.aborted?o():n.addEventListener(`abort`,s,{once:!0})),await new Promise(e=>{t.once(`close`,()=>e())}),n&&n.removeEventListener(`abort`,s),await i}function Co(e){let t=e[0],n=e.map(e=>e.path),r=e.map(e=>e.contentType).filter(Boolean);return{MediaPath:t?.path,MediaType:t?.contentType??void 0,MediaUrl:t?.path,MediaPaths:n.length>0?n:void 0,MediaUrls:n.length>0?n:void 0,MediaTypes:r.length>0?r:void 0}}function wo(e,t){return{accountId:e,running:!1,lastStartAt:null,lastStopAt:null,lastError:null,...t??{}}}function To(e){return{configured:e.configured??!1,running:e.running??!1,lastStartAt:e.lastStartAt??null,lastStopAt:e.lastStopAt??null,lastError:e.lastError??null}}function Eo(e,t){return{...To(e),...t??{},probe:e.probe,lastProbeAt:e.lastProbeAt??null}}function Do(e){let{account:t,runtime:n,probe:r}=e;return{accountId:t.accountId,name:t.name,enabled:t.enabled,configured:t.configured,...ko({runtime:n,probe:r}),lastInboundAt:n?.lastInboundAt??null,lastOutboundAt:n?.lastOutboundAt??null}}function Oo(e){let{accountId:t,name:n,enabled:r,configured:i,runtime:a,probe:o}=e;return Do({account:{accountId:t,name:n,enabled:r,configured:i},runtime:a,probe:o})}function ko(e){let{runtime:t,probe:n}=e;return{running:t?.running??!1,lastStartAt:t?.lastStartAt??null,lastStopAt:t?.lastStopAt??null,lastError:t?.lastError??null,probe:n}}function Ao(e,t){let n={...To(e),tokenSource:e.tokenSource??`none`,probe:e.probe,lastProbeAt:e.lastProbeAt??null};return t?.includeMode===!1?n:{...n,mode:e.mode??null}}function jo(e,t){return t.flatMap(t=>{let n=typeof t.lastError==`string`?t.lastError.trim():``;return n?[{channel:e,accountId:t.accountId,kind:`runtime`,message:`Channel error: ${n}`}]:[]})}const Mo={openai:[`OPENAI_API_KEY`],anthropic:[`ANTHROPIC_API_KEY`],google:[`GEMINI_API_KEY`],minimax:[`MINIMAX_API_KEY`],"minimax-cn":[`MINIMAX_API_KEY`],moonshot:[`MOONSHOT_API_KEY`],"kimi-coding":[`KIMI_API_KEY`,`KIMICODE_API_KEY`],synthetic:[`SYNTHETIC_API_KEY`],venice:[`VENICE_API_KEY`],zai:[`ZAI_API_KEY`,`Z_AI_API_KEY`],xiaomi:[`XIAOMI_API_KEY`],openrouter:[`OPENROUTER_API_KEY`],"cloudflare-ai-gateway":[`CLOUDFLARE_AI_GATEWAY_API_KEY`],litellm:[`LITELLM_API_KEY`],"vercel-ai-gateway":[`AI_GATEWAY_API_KEY`],opencode:[`OPENCODE_API_KEY`,`OPENCODE_ZEN_API_KEY`],"opencode-go":[`OPENCODE_API_KEY`,`OPENCODE_ZEN_API_KEY`],together:[`TOGETHER_API_KEY`],huggingface:[`HUGGINGFACE_HUB_TOKEN`,`HF_TOKEN`],qianfan:[`QIANFAN_API_KEY`],xai:[`XAI_API_KEY`],mistral:[`MISTRAL_API_KEY`],kilocode:[`KILOCODE_API_KEY`],modelstudio:[`MODELSTUDIO_API_KEY`],volcengine:[`VOLCANO_ENGINE_API_KEY`],byteplus:[`BYTEPLUS_API_KEY`]},No=[`VOYAGE_API_KEY`,`GROQ_API_KEY`,`DEEPGRAM_API_KEY`,`CEREBRAS_API_KEY`,`NVIDIA_API_KEY`,`COPILOT_GITHUB_TOKEN`,`GH_TOKEN`,`GITHUB_TOKEN`,`ANTHROPIC_OAUTH_TOKEN`,`CHUTES_OAUTH_TOKEN`,`CHUTES_API_KEY`,`QWEN_OAUTH_TOKEN`,`QWEN_PORTAL_API_KEY`,`MINIMAX_OAUTH_TOKEN`,`OLLAMA_API_KEY`,`VLLM_API_KEY`],Po=[...new Set(Object.values(Mo).flatMap(e=>e))];[...new Set([...Po,...No])];function Fo(e){return e instanceof Error&&typeof e.message==`string`&&e.message.trim()?e.message:String(e)}function Io(e){return Mo[e]?.find(e=>e.trim().length>0)}function Lo(e){return`/providers/${tt(e)}/apiKey`}async function Ro(e){let t=e.preferredEnvVar??Io(e.provider)??``,n=Lo(e.provider),r=`env`;for(;;){let i=await e.prompter.select({message:e.copy?.sourceMessage??`Where is this API key stored?`,initialValue:r,options:[{value:`env`,label:`Environment variable`,hint:`Reference a variable from your runtime environment`},{value:`provider`,label:`Configured secret provider`,hint:`Use a configured file or exec secret provider`}]})===`provider`?`provider`:`env`;if(r=i,i===`env`){let n=await e.prompter.text({message:e.copy?.envVarMessage??`Environment variable name`,initialValue:t||void 0,placeholder:e.copy?.envVarPlaceholder??`OPENAI_API_KEY`,validate:t=>{let n=t.trim();if(!Ae(n))return e.copy?.envVarFormatError??`Use an env var name like "OPENAI_API_KEY" (uppercase letters, numbers, underscores).`;if(!process.env[n]?.trim())return e.copy?.envVarMissingError?.(n)??`Environment variable "${n}" is missing or empty in this session.`}}),r=String(n??``).trim(),i=r&&Ae(r)?r:t;if(!i)throw Error(`No valid environment variable name provided for provider "${e.provider}".`);let a={source:`env`,provider:de(e.config,`env`,{preferFirstProviderForSource:!0}),id:i},o=await dn(a,{config:e.config,env:process.env});return await e.prompter.note(e.copy?.envValidatedMessage?.(i)??`Validated environment variable ${i}. OpenClaw will store a reference, not the key value.`,`Reference validated`),{ref:a,resolvedValue:o}}let a=Object.entries(e.config.secrets?.providers??{}).filter(([,e])=>e?.source===`file`||e?.source===`exec`);if(a.length===0){await e.prompter.note(e.copy?.noProvidersMessage??`No file/exec secret providers are configured yet. Add one under secrets.providers, or select Environment variable.`,`No providers configured`);continue}let o=de(e.config,`file`,{preferFirstProviderForSource:!0}),s=await e.prompter.select({message:`Select secret provider`,initialValue:a.find(([e])=>e===o)?.[0]??a[0]?.[0],options:a.map(([e,t])=>({value:e,label:e,hint:t?.source===`exec`?`Exec provider`:`File provider`}))}),c=e.config.secrets?.providers?.[s];if(!c||c.source!==`file`&&c.source!==`exec`){await e.prompter.note(`Provider "${s}" is not a file/exec provider.`,`Invalid provider`);continue}let l=c.source===`file`?`Secret id (JSON pointer for json mode, or 'value' for singleValue mode)`:`Secret id for the exec provider`,u=c.source===`file`?c.mode===`singleValue`?`value`:n:`${e.provider}/apiKey`,d=await e.prompter.text({message:l,initialValue:u,placeholder:c.source===`file`?`/providers/openai/apiKey`:`openai/api-key`,validate:e=>{let t=e.trim();if(!t)return`Secret id cannot be empty.`;if(c.source===`file`&&c.mode!==`singleValue`&&!Ze(t))return`Use an absolute JSON pointer like "/providers/openai/apiKey".`;if(c.source===`file`&&c.mode===`singleValue`&&t!==`value`)return`singleValue mode expects id "value".`;if(c.source===`exec`&&!bn(t))return wt()}}),f=String(d??``).trim()||u,p={source:c.source,provider:s,id:f};try{let t=await dn(p,{config:e.config,env:process.env});return await e.prompter.note(e.copy?.providerValidatedMessage?.(s,f,c.source)??`Validated ${c.source} reference ${s}:${f}. OpenClaw will store a reference, not the key value.`,`Reference validated`),{ref:p,resolvedValue:t}}catch(t){await e.prompter.note([`Could not validate provider reference ${s}:${f}.`,Fo(t),`Check your provider configuration and try again.`].join(`
1
+ import{Bt as e,E as t,L as n,Lt as r,O as i,Ut as a,Wt as o,_t as s,bt as c,c as l,d as u,f as d,h as f,k as p,l as m,m as ee,p as te,u as h,w as ne,yt as re}from"./paths-J4JUiRsa.js";import{$o as ie,A as ae,Aa as oe,B as se,Ba as ce,Bi as le,Ci as ue,Cl as de,Co as fe,Da as pe,Do as g,Ea as _,Ei as me,El as v,Eo as he,F as ge,Fa as _e,Fi as ve,Gi as ye,Gt as be,H as xe,Ha as Se,Hi as Ce,Hs as we,I as Te,Ia as Ee,Ii as De,Il as Oe,Ji as ke,Jl as Ae,Kc as je,Ki as Me,Kl as y,L as Ne,La as Pe,Li as Fe,Ll as Ie,M as Le,Ma as Re,N as ze,Na as Be,No as Ve,Oa as He,P as Ue,Pa as We,Pc as Ge,Pi as Ke,Qo as qe,R as Je,Ri as Ye,Rl as b,Si as Xe,Sl as Ze,Ss as Qe,Ta as $e,Ti as et,Tl as tt,U as nt,Ui as rt,Us as it,V as at,Va as ot,Vi as st,Wi as ct,Wl as lt,Ws as ut,Xi as dt,Xl as ft,Yi as pt,Yl as mt,Zi as ht,_ as gt,_a as _t,_i as vt,_o as yt,aa as bt,ao as xt,ba as St,bi as Ct,bl as wt,bo as Tt,bs as Et,co as Dt,d as Ot,da as kt,do as At,ea as jt,el as Mt,es as Nt,f as Pt,fa as Ft,fo as It,g as Lt,ga as Rt,go as zt,h as Bt,ha as Vt,ho as Ht,ia as Ut,io as x,j as Wt,ja as Gt,jo as Kt,js as qt,k as Jt,ka as Yt,lo as Xt,m as Zt,ma as Qt,mo as $t,no as en,oo as tn,p as nn,po as rn,qi as an,ql as on,ra as sn,ro as cn,so as ln,su as un,ul as dn,uo as fn,v as pn,va as mn,vi as hn,vo as gn,wa as _n,wi as vn,xi as yn,xl as bn,xo as xn,ya as S,yi as Sn,yo as Cn,z as wn,za as Tn,zi as En,zs as Dn}from"./config-Cx3SFBFW.js";import{$ as On,$t as kn,A as An,At as jn,B as Mn,Bt as Nn,Cn as Pn,Ct as Fn,D as In,Dt as Ln,E as Rn,Et as zn,Ft as Bn,H as Vn,Ht as Hn,I as Un,It as Wn,Jt as Gn,Kt as Kn,L as qn,Lt as Jn,M as Yn,Mt as Xn,N as Zn,O as Qn,Ot as $n,P as er,Pt as tr,Q as nr,Qt as rr,R as ir,Rt as ar,S as or,Sn as sr,St as cr,Tt as lr,Ut as ur,V as dr,Vt as fr,Wt as pr,X as mr,Xt as hr,Y as gr,Yt as _r,Z as vr,Zt as yr,_ as br,_n as xr,_t as Sr,a as Cr,an as wr,b as Tr,bn as Er,c as Dr,cn as Or,dn as kr,en as Ar,et as jr,fn as Mr,g as Nr,gn as Pr,h as Fr,hn as Ir,in as Lr,j as Rr,jt as zr,k as Br,kt as Vr,l as C,ln as Hr,m as Ur,mn as Wr,n as Gr,nn as Kr,o as qr,on as Jr,pn as Yr,qt as w,rn as Xr,s as Zr,sn as Qr,t as $r,tn as T,un as ei,v as ti,vn as ni,vt as ri,x as ii,xn as ai,xt as oi,y as E,yn as si,z as ci,zt as li}from"./dispatch-CADw_Fi7.js";import"./paths-DaRoqzBQ.js";import"./github-copilot-token-C1hiDugd.js";import{C as D,O as ui,Q as di,b as O,j as fi,m as pi,p as mi,q as hi,s as gi,v as _i,w as vi}from"./logger-BtrWb0dj.js";import{r as yi}from"./proxy-env-t6hcaFqC.js";import{At as bi,Bt as xi,Dt as Si,Et as Ci,Ft as wi,Ht as Ti,It as Ei,Mt as Di,Nt as Oi,Ot as ki,Pt as Ai,Tt as ji,Ut as Mi,Vt as Ni,Wt as Pi,at as Fi,dt as Ii,jt as Li,kt as Ri}from"./send-BJ957TYU.js";import"./fetch-DBRI0sKI.js";import"./channel-activity-Bnai3H2M.js";import{t as zi}from"./fetch-guard-DKS4LY4o.js";import"./local-roots-2OcKjfzk.js";import{p as Bi,v as Vi}from"./ir-vhCxHELh.js";import"./render-DGmfCIRG.js";import"./tables-CAZJt5bp.js";import{J as Hi,Y as Ui,it as Wi,rt as Gi}from"./send-XX5rP5bI.js";import{d as k,f as Ki,h as A,l as qi,n as Ji,o as Yi}from"./target-errors-CAgwWHUv.js";import{s as Xi}from"./send-CzEFjTpi.js";import{l as Zi}from"./deliver-CSGTRHt1.js";import{g as Qi,h as $i,m as ea}from"./diagnostic-DE5k6C1E.js";import"./pi-model-discovery-D1WW5m-Q.js";import{d as ta,f as na}from"./audio-transcription-runner-DuBgVmcT.js";import"./image-CO9zxV0G.js";import"./api-key-rotation-DInDOH-A.js";import"./proxy-fetch-B9aXJVe-.js";import{i as ra,n as ia}from"./tokens-AAdZjj0M.js";import"./commands-registry-C1Gb98lg.js";import{n as aa,r as oa}from"./targets-CVEYTFPQ.js";import"./send-vnIJSD5l.js";import{i as sa,n as ca,r as la}from"./fetch-BVEVk5YF.js";import{c as ua,l as da,n as fa,o as pa,s as ma}from"./skill-commands-DI1TMUxQ.js";import"./outbound-attachment-C94-r948.js";import{c as ha,d as ga,f as _a,i as va,l as ya,o as ba,s as xa,u as Sa}from"./send-ByKNfU2S.js";import"./query-expansion-DyCDaZbL.js";import"./manager-D9RwKYCX.js";import{t as Ca}from"./resolve-outbound-target-CvKfootv.js";import{r as wa}from"./channel-web-DowgDxtO.js";import"./outbound-CTyu_gZh.js";import"./session-aOZKTEyZ.js";import{t as Ta}from"./login-x9vN5UnR.js";import Ea,{constants as j,createWriteStream as Da}from"node:fs";import M from"node:path";import Oa from"node:os";import N from"node:fs/promises";import{createHash as ka,randomBytes as Aa,randomUUID as ja}from"node:crypto";import{format as Ma}from"node:util";import{pipeline as Na}from"node:stream/promises";import{request as Pa}from"node:https";import{z as P}from"zod";import{Readable as Fa,Transform as Ia}from"node:stream";import La from"jszip";import*as Ra from"tar";function za(e){return{success:!1,error:{issues:[{path:[],message:e}]}}}function Ba(){return{safeParse(e){return e===void 0?{success:!0,data:void 0}:!e||typeof e!=`object`||Array.isArray(e)?za(`expected config object`):Object.keys(e).length>0?za(`config must be empty`):{success:!0,data:e}},jsonSchema:{type:`object`,additionalProperties:!1,properties:{}}}}function Va(e){return e.map(e=>({input:e.input,resolved:e.resolved,id:e.id,name:e.name,note:e.note}))}async function Ha(e){let t=[];for(let n of e.inputs)t.push(await e.mapInput(n));return t}function Ua(e){return typeof e==`string`?e:e instanceof URL?e.toString():typeof e==`object`&&e&&`url`in e&&typeof e.url==`string`?e.url:``}function Wa(e){return{verbose:!1,replyTo:e.replyToId??void 0,accountId:e.accountId??void 0,silent:e.silent??void 0}}function Ga(e){return{...Wa(e),mediaUrl:e.mediaUrl,mediaLocalRoots:e.mediaLocalRoots}}function Ka(e){return{channel:`discord`,...e}}function F(e){let t=e.trim();if(!t)return`/`;let n=t.startsWith(`/`)?t:`/${t}`;return n.length>1&&n.endsWith(`/`)?n.slice(0,-1):n}function qa(e){let t=e.webhookPath?.trim();if(t)return F(t);if(e.webhookUrl?.trim())try{return F(new URL(e.webhookUrl).pathname||`/`)}catch{return null}return e.defaultPath??null}const Ja=Object.freeze({preAuth:{maxBytes:64*1024,timeoutMs:5e3},postAuth:{maxBytes:1024*1024,timeoutMs:3e4}}),Ya=Object.freeze({maxInFlightPerKey:8,maxTrackedKeys:4096});function Xa(e){let t=e.profile===`pre-auth`?Ja.preAuth:Ja.postAuth;return{maxBytes:typeof e.maxBytes==`number`&&Number.isFinite(e.maxBytes)&&e.maxBytes>0?Math.floor(e.maxBytes):t.maxBytes,timeoutMs:typeof e.timeoutMs==`number`&&Number.isFinite(e.timeoutMs)&&e.timeoutMs>0?Math.floor(e.timeoutMs):t.timeoutMs}}function Za(e){let{res:t,code:n,invalidMessage:r}=e;return n===`PAYLOAD_TOO_LARGE`?(t.statusCode=413,t.end(T(`PAYLOAD_TOO_LARGE`)),{ok:!1}):n===`REQUEST_BODY_TIMEOUT`?(t.statusCode=408,t.end(T(`REQUEST_BODY_TIMEOUT`)),{ok:!1}):n===`CONNECTION_CLOSED`?(t.statusCode=400,t.end(T(`CONNECTION_CLOSED`)),{ok:!1}):(t.statusCode=400,t.end(r??`Bad Request`),{ok:!1})}function Qa(e){let t=Math.max(1,Math.floor(e?.maxInFlightPerKey??Ya.maxInFlightPerKey)),n=Math.max(1,Math.floor(e?.maxTrackedKeys??Ya.maxTrackedKeys)),r=new Map;return{tryAcquire:e=>{if(!e)return!0;let i=r.get(e)??0;return i>=t?!1:(r.set(e,i+1),w(r,n),!0)},release:e=>{if(!e)return;let t=r.get(e);if(t!==void 0){if(t<=1){r.delete(e);return}r.set(e,t-1)}},size:()=>r.size,clear:()=>r.clear()}}function $a(e){let t=Array.isArray(e)?e[0]:e;if(!t)return!1;let n=t.split(`;`,1)[0]?.trim().toLowerCase();return n===`application/json`||!!n?.endsWith(`+json`)}function eo(e){let t=e.allowMethods?.length?e.allowMethods:null;return t&&!t.includes(e.req.method??``)?(e.res.statusCode=405,e.res.setHeader(`Allow`,t.join(`, `)),e.res.end(`Method Not Allowed`),!1):e.rateLimiter&&e.rateLimitKey&&e.rateLimiter.isRateLimited(e.rateLimitKey,e.nowMs??Date.now())?(e.res.statusCode=429,e.res.end(`Too Many Requests`),!1):e.requireJsonContentType&&e.req.method===`POST`&&!$a(e.req.headers[`content-type`])?(e.res.statusCode=415,e.res.end(`Unsupported Media Type`),!1):!0}function to(e){if(!eo({req:e.req,res:e.res,allowMethods:e.allowMethods,rateLimiter:e.rateLimiter,rateLimitKey:e.rateLimitKey,nowMs:e.nowMs,requireJsonContentType:e.requireJsonContentType}))return{ok:!1};let t=e.inFlightKey??``,n=e.inFlightLimiter;if(n&&t&&!n.tryAcquire(t))return e.res.statusCode=e.inFlightLimitStatusCode??429,e.res.end(e.inFlightLimitMessage??`Too Many Requests`),{ok:!1};let r=!1;return{ok:!0,release:()=>{r||(r=!0,n&&t&&n.release(t))}}}async function no(e){let t=Xa({maxBytes:e.maxBytes,timeoutMs:e.timeoutMs,profile:e.profile});try{return{ok:!0,value:await Ar(e.req,t)}}catch(t){return rr(t)?Za({res:e.res,code:t.code,invalidMessage:e.invalidBodyMessage}):Za({res:e.res,code:`INVALID_BODY`,invalidMessage:e.invalidBodyMessage??(t instanceof Error?t.message:String(t))})}}async function ro(e){let t=Xa({maxBytes:e.maxBytes,timeoutMs:e.timeoutMs,profile:e.profile}),n=await kn(e.req,{maxBytes:t.maxBytes,timeoutMs:t.timeoutMs,emptyObjectOnEmpty:e.emptyObjectOnEmpty});return n.ok?{ok:!0,value:n.value}:Za({res:e.res,code:n.code,invalidMessage:e.invalidJsonMessage})}function io(e){return so(e.targetsByPath,e.target,{onFirstPathTarget:({path:t})=>wr({...e.route,path:t,replaceExisting:e.route.replaceExisting??!0}),onLastPathTargetRemoved:e.onLastPathTargetRemoved})}const ao=new WeakMap;function oo(e){let t=e,n=ao.get(t);if(n)return n;let r=new Map;return ao.set(t,r),r}function so(e,t,n){let r=F(t.path),i={...t,path:r},a=e.get(r)??[];if(a.length===0){let t=n?.onFirstPathTarget?.({path:r,target:i});typeof t==`function`&&oo(e).set(r,t)}e.set(r,[...a,i]);let o=!0;return{target:i,unregister:()=>{if(!o)return;o=!1;let t=(e.get(r)??[]).filter(e=>e!==i);if(t.length>0){e.set(r,t);return}e.delete(r);let a=oo(e).get(r);a&&(oo(e).delete(r),a()),n?.onLastPathTargetRemoved?.({path:r})}}}function co(e,t){let n=F(new URL(e.url??`/`,`http://localhost`).pathname),r=t.get(n);return!r||r.length===0?null:{path:n,targets:r}}async function lo(e){let t=co(e.req,e.targetsByPath);if(!t)return!1;let n=typeof e.inFlightKey==`function`?e.inFlightKey({req:e.req,path:t.path,targets:t.targets}):e.inFlightKey??`${t.path}:${e.req.socket?.remoteAddress??`unknown`}`,r=to({req:e.req,res:e.res,allowMethods:e.allowMethods,rateLimiter:e.rateLimiter,rateLimitKey:e.rateLimitKey,nowMs:e.nowMs,requireJsonContentType:e.requireJsonContentType,inFlightLimiter:e.inFlightLimiter,inFlightKey:n,inFlightLimitStatusCode:e.inFlightLimitStatusCode,inFlightLimitMessage:e.inFlightLimitMessage});if(!r.ok)return!0;try{return await e.handle(t),!0}finally{r.release()}}function uo(e,t){return e?{ok:!1,result:{kind:`ambiguous`}}:{ok:!0,matched:t}}function fo(e){return e?{kind:`single`,target:e}:{kind:`none`}}function po(e,t){let n;for(let r of e){if(!t(r))continue;let e=uo(n,r);if(!e.ok)return e.result;n=e.matched}return fo(n)}async function mo(e,t){let n;for(let r of e){if(!await t(r))continue;let e=uo(n,r);if(!e.ok)return e.result;n=e.matched}return fo(n)}async function ho(e){return _o(e,await mo(e.targets,async t=>!!await e.isMatch(t)))}function go(e){return _o(e,po(e.targets,e.isMatch))}function _o(e,t){return t.kind===`single`?t.target:t.kind===`ambiguous`?(e.res.statusCode=e.ambiguousStatusCode??401,e.res.end(e.ambiguousMessage??`ambiguous webhook target`),null):(e.res.statusCode=e.unauthorizedStatusCode??401,e.res.end(e.unauthorizedMessage??`unauthorized`),null)}function vo(e,t){return e.method===`POST`?!1:(t.statusCode=405,t.setHeader(`Allow`,`POST`),t.end(`Method Not Allowed`),!0)}function yo(e){return t=>{e.setStatus({accountId:e.accountId,...t})}}function bo(e,t){return new Promise((n,r)=>{let i=()=>{Promise.resolve(t?.()).then(()=>n(),r)};if(e){if(e.aborted){i();return}e.addEventListener(`abort`,i,{once:!0})}})}async function xo(e){let t=await e.start();try{await bo(e.abortSignal)}finally{await e.stop?.(t),await e.onStop?.()}}async function So(e){let{server:t,abortSignal:n,onAbort:r}=e,i=Promise.resolve(),a=!1,o=()=>{a||(a=!0,i=Promise.resolve(r?.()).then(()=>void 0))},s=()=>{o()};n&&(n.aborted?o():n.addEventListener(`abort`,s,{once:!0})),await new Promise(e=>{t.once(`close`,()=>e())}),n&&n.removeEventListener(`abort`,s),await i}function Co(e){let t=e[0],n=e.map(e=>e.path),r=e.map(e=>e.contentType).filter(Boolean);return{MediaPath:t?.path,MediaType:t?.contentType??void 0,MediaUrl:t?.path,MediaPaths:n.length>0?n:void 0,MediaUrls:n.length>0?n:void 0,MediaTypes:r.length>0?r:void 0}}function wo(e,t){return{accountId:e,running:!1,lastStartAt:null,lastStopAt:null,lastError:null,...t??{}}}function To(e){return{configured:e.configured??!1,running:e.running??!1,lastStartAt:e.lastStartAt??null,lastStopAt:e.lastStopAt??null,lastError:e.lastError??null}}function Eo(e,t){return{...To(e),...t??{},probe:e.probe,lastProbeAt:e.lastProbeAt??null}}function Do(e){let{account:t,runtime:n,probe:r}=e;return{accountId:t.accountId,name:t.name,enabled:t.enabled,configured:t.configured,...ko({runtime:n,probe:r}),lastInboundAt:n?.lastInboundAt??null,lastOutboundAt:n?.lastOutboundAt??null}}function Oo(e){let{accountId:t,name:n,enabled:r,configured:i,runtime:a,probe:o}=e;return Do({account:{accountId:t,name:n,enabled:r,configured:i},runtime:a,probe:o})}function ko(e){let{runtime:t,probe:n}=e;return{running:t?.running??!1,lastStartAt:t?.lastStartAt??null,lastStopAt:t?.lastStopAt??null,lastError:t?.lastError??null,probe:n}}function Ao(e,t){let n={...To(e),tokenSource:e.tokenSource??`none`,probe:e.probe,lastProbeAt:e.lastProbeAt??null};return t?.includeMode===!1?n:{...n,mode:e.mode??null}}function jo(e,t){return t.flatMap(t=>{let n=typeof t.lastError==`string`?t.lastError.trim():``;return n?[{channel:e,accountId:t.accountId,kind:`runtime`,message:`Channel error: ${n}`}]:[]})}const Mo={openai:[`OPENAI_API_KEY`],anthropic:[`ANTHROPIC_API_KEY`],google:[`GEMINI_API_KEY`],minimax:[`MINIMAX_API_KEY`],"minimax-cn":[`MINIMAX_API_KEY`],moonshot:[`MOONSHOT_API_KEY`],"kimi-coding":[`KIMI_API_KEY`,`KIMICODE_API_KEY`],synthetic:[`SYNTHETIC_API_KEY`],venice:[`VENICE_API_KEY`],zai:[`ZAI_API_KEY`,`Z_AI_API_KEY`],xiaomi:[`XIAOMI_API_KEY`],openrouter:[`OPENROUTER_API_KEY`],"cloudflare-ai-gateway":[`CLOUDFLARE_AI_GATEWAY_API_KEY`],litellm:[`LITELLM_API_KEY`],"vercel-ai-gateway":[`AI_GATEWAY_API_KEY`],opencode:[`OPENCODE_API_KEY`,`OPENCODE_ZEN_API_KEY`],"opencode-go":[`OPENCODE_API_KEY`,`OPENCODE_ZEN_API_KEY`],together:[`TOGETHER_API_KEY`],huggingface:[`HUGGINGFACE_HUB_TOKEN`,`HF_TOKEN`],qianfan:[`QIANFAN_API_KEY`],xai:[`XAI_API_KEY`],mistral:[`MISTRAL_API_KEY`],kilocode:[`KILOCODE_API_KEY`],modelstudio:[`MODELSTUDIO_API_KEY`],volcengine:[`VOLCANO_ENGINE_API_KEY`],byteplus:[`BYTEPLUS_API_KEY`]},No=[`VOYAGE_API_KEY`,`GROQ_API_KEY`,`DEEPGRAM_API_KEY`,`CEREBRAS_API_KEY`,`NVIDIA_API_KEY`,`COPILOT_GITHUB_TOKEN`,`GH_TOKEN`,`GITHUB_TOKEN`,`ANTHROPIC_OAUTH_TOKEN`,`CHUTES_OAUTH_TOKEN`,`CHUTES_API_KEY`,`QWEN_OAUTH_TOKEN`,`QWEN_PORTAL_API_KEY`,`MINIMAX_OAUTH_TOKEN`,`OLLAMA_API_KEY`,`VLLM_API_KEY`],Po=[...new Set(Object.values(Mo).flatMap(e=>e))];[...new Set([...Po,...No])];function Fo(e){return e instanceof Error&&typeof e.message==`string`&&e.message.trim()?e.message:String(e)}function Io(e){return Mo[e]?.find(e=>e.trim().length>0)}function Lo(e){return`/providers/${tt(e)}/apiKey`}async function Ro(e){let t=e.preferredEnvVar??Io(e.provider)??``,n=Lo(e.provider),r=`env`;for(;;){let i=await e.prompter.select({message:e.copy?.sourceMessage??`Where is this API key stored?`,initialValue:r,options:[{value:`env`,label:`Environment variable`,hint:`Reference a variable from your runtime environment`},{value:`provider`,label:`Configured secret provider`,hint:`Use a configured file or exec secret provider`}]})===`provider`?`provider`:`env`;if(r=i,i===`env`){let n=await e.prompter.text({message:e.copy?.envVarMessage??`Environment variable name`,initialValue:t||void 0,placeholder:e.copy?.envVarPlaceholder??`OPENAI_API_KEY`,validate:t=>{let n=t.trim();if(!Ae(n))return e.copy?.envVarFormatError??`Use an env var name like "OPENAI_API_KEY" (uppercase letters, numbers, underscores).`;if(!process.env[n]?.trim())return e.copy?.envVarMissingError?.(n)??`Environment variable "${n}" is missing or empty in this session.`}}),r=String(n??``).trim(),i=r&&Ae(r)?r:t;if(!i)throw Error(`No valid environment variable name provided for provider "${e.provider}".`);let a={source:`env`,provider:de(e.config,`env`,{preferFirstProviderForSource:!0}),id:i},o=await dn(a,{config:e.config,env:process.env});return await e.prompter.note(e.copy?.envValidatedMessage?.(i)??`Validated environment variable ${i}. OpenClaw will store a reference, not the key value.`,`Reference validated`),{ref:a,resolvedValue:o}}let a=Object.entries(e.config.secrets?.providers??{}).filter(([,e])=>e?.source===`file`||e?.source===`exec`);if(a.length===0){await e.prompter.note(e.copy?.noProvidersMessage??`No file/exec secret providers are configured yet. Add one under secrets.providers, or select Environment variable.`,`No providers configured`);continue}let o=de(e.config,`file`,{preferFirstProviderForSource:!0}),s=await e.prompter.select({message:`Select secret provider`,initialValue:a.find(([e])=>e===o)?.[0]??a[0]?.[0],options:a.map(([e,t])=>({value:e,label:e,hint:t?.source===`exec`?`Exec provider`:`File provider`}))}),c=e.config.secrets?.providers?.[s];if(!c||c.source!==`file`&&c.source!==`exec`){await e.prompter.note(`Provider "${s}" is not a file/exec provider.`,`Invalid provider`);continue}let l=c.source===`file`?`Secret id (JSON pointer for json mode, or 'value' for singleValue mode)`:`Secret id for the exec provider`,u=c.source===`file`?c.mode===`singleValue`?`value`:n:`${e.provider}/apiKey`,d=await e.prompter.text({message:l,initialValue:u,placeholder:c.source===`file`?`/providers/openai/apiKey`:`openai/api-key`,validate:e=>{let t=e.trim();if(!t)return`Secret id cannot be empty.`;if(c.source===`file`&&c.mode!==`singleValue`&&!Ze(t))return`Use an absolute JSON pointer like "/providers/openai/apiKey".`;if(c.source===`file`&&c.mode===`singleValue`&&t!==`value`)return`singleValue mode expects id "value".`;if(c.source===`exec`&&!bn(t))return wt()}}),f=String(d??``).trim()||u,p={source:c.source,provider:s,id:f};try{let t=await dn(p,{config:e.config,env:process.env});return await e.prompter.note(e.copy?.providerValidatedMessage?.(s,f,c.source)??`Validated ${c.source} reference ${s}:${f}. OpenClaw will store a reference, not the key value.`,`Reference validated`),{ref:p,resolvedValue:t}}catch(t){await e.prompter.note([`Could not validate provider reference ${s}:${f}.`,Fo(t),`Check your provider configuration and try again.`].join(`
2
2
  `),`Reference check failed`)}}}async function zo(e){return e.explicitMode?e.explicitMode:typeof e.prompter.select==`function`&&await e.prompter.select({message:e.copy?.modeMessage??`How do you want to provide this API key?`,initialValue:`plaintext`,options:[{value:`plaintext`,label:e.copy?.plaintextLabel??`Paste API key now`,hint:e.copy?.plaintextHint??`Stores the key directly in OpenClaw config`},{value:`ref`,label:e.copy?.refLabel??`Use external secret provider`,hint:e.copy?.refHint??`Stores a reference to env or configured external secret providers`}]})===`ref`?`ref`:`plaintext`}async function Bo(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 o(r);let i=await e.prompter.text({message:`New ${e.label} account id`,validate:e=>e?.trim()?void 0:`Required`}),a=o(String(i));return String(i).trim()!==a&&await e.prompter.note(`Normalized account id to "${a}".`,`${e.label} account`),a}function Vo(e,t){let n=e.channels?.[t];return!!(n?.accounts&&Object.keys(n.accounts).length>0)}function Ho(e){return e.alwaysUseAccounts||e.accountId!==`default`?!0:Vo(e.cfg,e.channelKey)}function Uo(e){let t=e.name?.trim();if(!t)return e.cfg;let n=o(e.accountId),r=e.cfg.channels?.[e.channelKey],i=typeof r==`object`&&r?r:void 0;if(!Ho({cfg:e.cfg,channelKey:e.channelKey,accountId:n,alwaysUseAccounts:e.alwaysUseAccounts})&&n===`default`){let n=i??{};return{...e.cfg,channels:{...e.cfg.channels,[e.channelKey]:{...n,name:t}}}}let a=i?.accounts??{},s=a[n]??{},c=n===`default`?(({name:e,...t})=>t)(i??{}):i??{};return{...e.cfg,channels:{...e.cfg.channels,[e.channelKey]:{...c,accounts:{...a,[n]:{...s,name:t}}}}}}function Wo(e){if(e.alwaysUseAccounts)return e.cfg;let t=e.cfg.channels?.[e.channelKey],n=t?.name?.trim();if(!n)return e.cfg;let r={...t?.accounts},i=r.default??{};i.name||(r[a]={...i,name:n});let{name:o,...s}=t??{};return{...e.cfg,channels:{...e.cfg.channels,[e.channelKey]:{...s,accounts:r}}}}function Go(e){return Ko({cfg:e.cfg,channelKey:e.channelKey,accountId:e.accountId,patch:e.patch})}function Ko(e){let t=o(e.accountId),n=e.cfg.channels?.[e.channelKey],r=typeof n==`object`&&n?n:void 0,i=e.ensureChannelEnabled??!0,a=e.ensureAccountEnabled??i,s=e.patch,c=e.accountPatch??s;if(t===`default`)return{...e.cfg,channels:{...e.cfg.channels,[e.channelKey]:{...r,...i?{enabled:!0}:{},...s}}};let l=r?.accounts??{},u=l[t]??{};return{...e.cfg,channels:{...e.cfg.channels,[e.channelKey]:{...r,...i?{enabled:!0}:{},accounts:{...l,[t]:{...u,...a?{enabled:typeof u.enabled==`boolean`?u.enabled:!0}:{},...c}}}}}}const qo=new Set(`name.token.tokenFile.botToken.appToken.account.signalNumber.authDir.cliPath.dbPath.httpUrl.httpHost.httpPort.webhookPath.webhookUrl.webhookSecret.service.region.homeserver.userId.accessToken.password.deviceName.url.code.dmPolicy.allowFrom.groupPolicy.groupAllowFrom.defaultTo`.split(`.`)),Jo={telegram:new Set([`streaming`])};function Yo(e){return qo.has(e.key)?!0:Jo[e.channelKey]?.has(e.key)??!1}function Xo(e){return e&&typeof e==`object`?structuredClone(e):e}function Zo(e){let t=e.cfg.channels?.[e.channelKey],n=typeof t==`object`&&t?t:void 0;if(!n)return e.cfg;let r=n.accounts??{};if(Object.keys(r).length>0)return e.cfg;let i=Object.entries(n).filter(([t,n])=>t!==`accounts`&&t!==`enabled`&&n!==void 0&&Yo({channelKey:e.channelKey,key:t})).map(([e])=>e),o={};for(let e of i){let t=n[e];o[e]=Xo(t)}let s={...n};for(let e of i)delete s[e];return{...e.cfg,channels:{...e.cfg.channels,[e.channelKey]:{...s,accounts:{...r,[a]:o}}}}}const Qo=async e=>await Bo(e);function I(e){let t=(e??[]).map(e=>String(e).trim()).filter(Boolean);return t.includes(`*`)||t.push(`*`),t}function L(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 $o(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:ns(r)}}function es(e,t){return $o(e,e=>e===`*`?{value:`*`}:t(e))}function ts(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 ns(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 z(e){return e.accountId?.trim()?o(e.accountId):e.defaultAccountId}async function B(e){let t=e.accountOverride?.trim(),n=t?o(t):e.defaultAccountId;return e.shouldPromptAccountIds&&!t&&(n=await Qo({cfg:e.cfg,prompter:e.prompter,label:e.label,currentId:n,listAccountIds:e.listAccountIds,defaultAccountId:e.defaultAccountId})),n}function rs(e){let{cfg:t,channel:n,accountId:r,allowFrom:i}=e;return fs({cfg:t,channel:n,accountId:r,patch:{allowFrom:i},ensureEnabled:!1})}function is(e){let t=e.cfg.channels?.[e.channel]??{};return{...e.cfg,channels:{...e.cfg.channels,[e.channel]:{...t,...e.enabled?{enabled:!0}:{},allowFrom:e.allowFrom}}}}function as(e){let t=e.cfg.channels?.[e.channel]??{},n=e.getAllowFrom?.(e.cfg)??t.allowFrom??void 0,r=e.dmPolicy===`open`?I(n):void 0;return{...e.cfg,channels:{...e.cfg.channels,[e.channel]:{...t,dmPolicy:e.dmPolicy,...r?{allowFrom:r}:{}}}}}function os(e){let t=e.cfg.channels?.[e.channel]??{};return{...e.cfg,channels:{...e.cfg.channels,[e.channel]:{...t,...e.enabled?{enabled:!0}:{},groupPolicy:e.groupPolicy}}}}function ss(e){let{cfg:t,channel:n,dmPolicy:r}=e,i=r===`open`?I(t.channels?.[n]?.allowFrom):void 0;return{...t,channels:{...t.channels,[n]:{...t.channels?.[n],dmPolicy:r,...i?{allowFrom:i}:{}}}}}function cs(e){let t=e.cfg.channels?.[e.channel]??{allowFrom:void 0,dm:void 0},n=t.allowFrom??t.dm?.allowFrom,r=e.dmPolicy===`open`?I(n):void 0;return ds({cfg:e.cfg,channel:e.channel,patch:{dmPolicy:e.dmPolicy,...r?{allowFrom:r}:{}}})}function ls(e){return ds({cfg:e.cfg,channel:e.channel,patch:{allowFrom:e.allowFrom}})}function us(e){return H({cfg:e.cfg,channel:e.channel,accountId:e.accountId,patch:{groupPolicy:e.groupPolicy}})}function ds(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 V(e,t,n){let r=e.channels?.[t]??{};return{...e,channels:{...e.channels,[t]:{...r,enabled:n}}}}function fs(e){let{cfg:t,channel:n,accountId:r,patch:i,ensureEnabled:a}=e;return Ko({cfg:r===`default`?t:Zo({cfg:t,channelKey:n}),channelKey:n,accountId:r,patch:i,ensureChannelEnabled:a,ensureAccountEnabled:a})}function H(e){return fs({...e,ensureEnabled:!0})}function U(e){let t=e.cfg;return e.tokenResult.useEnv&&(t=H({cfg:t,channel:e.channel,accountId:e.accountId,patch:{}})),e.tokenResult.token&&(t=H({cfg:t,channel:e.channel,accountId:e.accountId,patch:{[e.tokenPatchKey]:e.tokenResult.token}})),t}function ps(e){return{accountConfigured:e.accountConfigured,hasConfigToken:e.hasConfigToken,canUseEnv:e.allowEnv&&!!e.envValue?.trim()&&!e.hasConfigToken}}async function ms(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 W(e){let t=ps({accountConfigured:e.accountConfigured,hasConfigToken:e.hasConfigToken,allowEnv:e.allowEnv,envValue:e.envValue});!t.accountConfigured&&e.onMissingConfigured&&await e.onMissingConfigured();let n=await hs({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 hs(e){if(await zo({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 ms({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 Ro({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 gs(e){let t=z({accountId:e.accountId,defaultAccountId:e.defaultAccountId}),n=e.getExistingAllowFrom({cfg:e.cfg,accountId:t});await e.prompter.note(e.noteLines.join(`
3
3
  `),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=L(void 0,e.parseEntries(String(r)).entries);return rs({cfg:e.cfg,channel:e.channel,accountId:t,allowFrom:i})}async function _s(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(`
4
4
  `),e.label)}async function vs(e){await e.prompter.note(`Channel lookup failed; keeping entries as typed. ${String(e.error)}`,e.label)}async function ys(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 L(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 L(e.existing,a)}}async function bs(e){await e.prompter.note(e.noteLines.join(`
@@ -1,2 +1,2 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`./paths-Bcdg3ma0.cjs`);const e=require(`./dispatch-cPg1rBWu.cjs`),t=require(`./paths-Cqca1YmF.cjs`),n=require(`./model-auth-igOM3blS.cjs`);require(`./logger-DPlqYkRm.cjs`),require(`./proxy-env-a590sPAz.cjs`),require(`./github-copilot-token-CCrgp2py.cjs`),require(`./send-BxIt-s7G.cjs`);const r=require(`./send-DnwN1vBU.cjs`);require(`./send-pq2hNOwv.cjs`),require(`./deliver--pOntbRC.cjs`),require(`./diagnostic-Bmp3zWQp.cjs`),require(`./pi-model-discovery-DRYpUnOa.cjs`),require(`./audio-transcription-runner-CiRKTRED.cjs`),require(`./image-CjVyB61p.cjs`),require(`./fetch-guard-Dj-DlPBS.cjs`),require(`./api-key-rotation-BEhJdmXN.cjs`),require(`./local-roots-DRv9Y_41.cjs`),require(`./proxy-fetch-DPOhfrou.cjs`),require(`./tokens-g5KWvWhD.cjs`),require(`./commands-registry-Cfv6gDoQ.cjs`),require(`./fetch-ClKErpni.cjs`),require(`./ir-Cq7b_9v8.cjs`),require(`./render-DxBO2Blp.cjs`),require(`./target-errors-DIOJ6Eun.cjs`),require(`./channel-activity-Bm-pvlXw.cjs`),require(`./tables-BlhpY72l.cjs`),require(`./send-TRwokuAm.cjs`),require(`./fetch-BY6lVRlY.cjs`),require(`./skill-commands-2LXH0aZR.cjs`),require(`./outbound-attachment-BIGvZREF.cjs`),require(`./send-BXrh73qh.cjs`),require(`./query-expansion-DCeqywxh.cjs`),require(`./manager-C4FEmxjq.cjs`);let i=require(`zod`),a=require(`node:util`);const o=i.z.union([i.z.string(),i.z.number()]);i.z.array(o).optional();function s(e){let t=e;return typeof t.toJSONSchema==`function`?{schema:t.toJSONSchema({target:`draft-07`,unrepresentable:`any`})}:{schema:{type:`object`,additionalProperties:!0}}}const c={openai:[`OPENAI_API_KEY`],anthropic:[`ANTHROPIC_API_KEY`],google:[`GEMINI_API_KEY`],minimax:[`MINIMAX_API_KEY`],"minimax-cn":[`MINIMAX_API_KEY`],moonshot:[`MOONSHOT_API_KEY`],"kimi-coding":[`KIMI_API_KEY`,`KIMICODE_API_KEY`],synthetic:[`SYNTHETIC_API_KEY`],venice:[`VENICE_API_KEY`],zai:[`ZAI_API_KEY`,`Z_AI_API_KEY`],xiaomi:[`XIAOMI_API_KEY`],openrouter:[`OPENROUTER_API_KEY`],"cloudflare-ai-gateway":[`CLOUDFLARE_AI_GATEWAY_API_KEY`],litellm:[`LITELLM_API_KEY`],"vercel-ai-gateway":[`AI_GATEWAY_API_KEY`],opencode:[`OPENCODE_API_KEY`,`OPENCODE_ZEN_API_KEY`],"opencode-go":[`OPENCODE_API_KEY`,`OPENCODE_ZEN_API_KEY`],together:[`TOGETHER_API_KEY`],huggingface:[`HUGGINGFACE_HUB_TOKEN`,`HF_TOKEN`],qianfan:[`QIANFAN_API_KEY`],xai:[`XAI_API_KEY`],mistral:[`MISTRAL_API_KEY`],kilocode:[`KILOCODE_API_KEY`],modelstudio:[`MODELSTUDIO_API_KEY`],volcengine:[`VOLCANO_ENGINE_API_KEY`],byteplus:[`BYTEPLUS_API_KEY`]},l=[`VOYAGE_API_KEY`,`GROQ_API_KEY`,`DEEPGRAM_API_KEY`,`CEREBRAS_API_KEY`,`NVIDIA_API_KEY`,`COPILOT_GITHUB_TOKEN`,`GH_TOKEN`,`GITHUB_TOKEN`,`ANTHROPIC_OAUTH_TOKEN`,`CHUTES_OAUTH_TOKEN`,`CHUTES_API_KEY`,`QWEN_OAUTH_TOKEN`,`QWEN_PORTAL_API_KEY`,`MINIMAX_OAUTH_TOKEN`,`OLLAMA_API_KEY`,`VLLM_API_KEY`],u=[...new Set(Object.values(c).flatMap(e=>e))];[...new Set([...u,...l])];async function d(e){let n=e.listAccountIds(e.cfg),r=e.currentId?.trim()||e.defaultAccountId||`default`,i=await e.prompter.select({message:`${e.label} account`,options:[...n.map(e=>({value:e,label:e===`default`?`default (primary)`:e})),{value:`__new__`,label:`Add a new account`}],initialValue:r});if(i!==`__new__`)return t.zt(i);let a=await e.prompter.text({message:`New ${e.label} account id`,validate:e=>e?.trim()?void 0:`Required`}),o=t.zt(String(a));return String(a).trim()!==o&&await e.prompter.note(`Normalized account id to "${o}".`,`${e.label} account`),o}function f(e){let n=t.zt(e.accountId),r=e.cfg.channels?.[e.channelKey],i=typeof r==`object`&&r?r:void 0,a=e.ensureChannelEnabled??!0,o=e.ensureAccountEnabled??a,s=e.patch,c=e.accountPatch??s;if(n===`default`)return{...e.cfg,channels:{...e.cfg.channels,[e.channelKey]:{...i,...a?{enabled:!0}:{},...s}}};let l=i?.accounts??{},u=l[n]??{};return{...e.cfg,channels:{...e.cfg.channels,[e.channelKey]:{...i,...a?{enabled:!0}:{},accounts:{...l,[n]:{...u,...o?{enabled:typeof u.enabled==`boolean`?u.enabled:!0}:{},...c}}}}}}const p=async e=>await d(e);function m(e){let t=(e??[]).map(e=>String(e).trim()).filter(Boolean);return t.includes(`*`)||t.push(`*`),t}function h(e){return e.split(/[\n,;]+/g).map(e=>e.trim()).filter(Boolean)}async function g(e){let n=e.accountOverride?.trim(),r=n?t.zt(n):e.defaultAccountId;return e.shouldPromptAccountIds&&!n&&(r=await p({cfg:e.cfg,prompter:e.prompter,label:e.label,currentId:r,listAccountIds:e.listAccountIds,defaultAccountId:e.defaultAccountId})),r}function _(e){let t=e.cfg.channels?.[e.channel]??{};return{...e.cfg,channels:{...e.cfg.channels,[e.channel]:{...t,...e.enabled?{enabled:!0}:{},allowFrom:e.allowFrom}}}}function v(e){let t=e.cfg.channels?.[e.channel]??{},n=e.getAllowFrom?.(e.cfg)??t.allowFrom??void 0,r=e.dmPolicy===`open`?m(n):void 0;return{...e.cfg,channels:{...e.cfg.channels,[e.channel]:{...t,dmPolicy:e.dmPolicy,...r?{allowFrom:r}:{}}}}}function y(e){return h(String(e??``))}function b(e){return e.map(e=>e.trim()).filter(Boolean).join(`, `)}async function x(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 S(e){let t=e.currentEntries&&e.currentEntries.length>0?b(e.currentEntries):void 0;return y(await e.prompter.text({message:`${e.label} allowlist (comma-separated)`,placeholder:e.placeholder,initialValue:t}))}async function C(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 x({prompter:e.prompter,label:e.label,currentPolicy:e.currentPolicy,allowOpen:e.allowOpen,allowDisabled:e.allowDisabled});return r===`allowlist`?{policy:r,entries:await S({prompter:e.prompter,label:e.label,currentEntries:e.currentEntries,placeholder:e.placeholder})}:{policy:r,entries:[]}}function w(e){return{success:!1,error:{issues:[{path:[],message:e}]}}}function T(){return{safeParse(e){return e===void 0?{success:!0,data:void 0}:!e||typeof e!=`object`||Array.isArray(e)?w(`expected config object`):Object.keys(e).length>0?w(`config must be empty`):{success:!0,data:e}},jsonSchema:{type:`object`,additionalProperties:!1,properties:{}}}}function E(e){return t=>{e.setStatus({accountId:e.accountId,...t})}}function D(e,t){return new Promise((n,r)=>{let i=()=>{Promise.resolve(t?.()).then(()=>n(),r)};if(e){if(e.aborted){i();return}e.addEventListener(`abort`,i,{once:!0})}})}async function O(e){let t=await e.start();try{await D(e.abortSignal)}finally{await e.stop?.(t),await e.onStop?.()}}function k(e){let n=t.zt(e.accountId);return{accountId:n,readAllowFromStore:()=>e.core.channel.pairing.readAllowFromStore({channel:e.channel,accountId:n}),readStoreForDmPolicy:(n,r)=>e.core.channel.pairing.readAllowFromStore({channel:n,accountId:t.zt(r)}),upsertPairingRequest:t=>e.core.channel.pairing.upsertPairingRequest({channel:e.channel,accountId:n,...t})}}function A(e){return{text:typeof e.text==`string`?e.text:void 0,mediaUrls:Array.isArray(e.mediaUrls)?e.mediaUrls.filter(e=>typeof e==`string`&&e.length>0):void 0,mediaUrl:typeof e.mediaUrl==`string`?e.mediaUrl:void 0,replyToId:typeof e.replyToId==`string`?e.replyToId:void 0}}function j(e){return async t=>{await e(t&&typeof t==`object`?A(t):{})}}function M(e){return e.mediaUrls?.length?e.mediaUrls:e.mediaUrl?[e.mediaUrl]:[]}function N(e,t){let n=e?.trim()??``;if(!n&&t.length===0)return``;let r=t.length?t.map(e=>`Attachment: ${e}`).join(`
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`./paths-Bcdg3ma0.cjs`);const e=require(`./dispatch-Bybxc9Yl.cjs`),t=require(`./paths-Cqca1YmF.cjs`),n=require(`./model-auth-igOM3blS.cjs`);require(`./logger-DPlqYkRm.cjs`),require(`./proxy-env-a590sPAz.cjs`),require(`./github-copilot-token-CCrgp2py.cjs`),require(`./send-BxIt-s7G.cjs`);const r=require(`./send-DnwN1vBU.cjs`);require(`./send-pq2hNOwv.cjs`),require(`./deliver--pOntbRC.cjs`),require(`./diagnostic-Bmp3zWQp.cjs`),require(`./pi-model-discovery-DRYpUnOa.cjs`),require(`./audio-transcription-runner-CiRKTRED.cjs`),require(`./image-CjVyB61p.cjs`),require(`./fetch-guard-Dj-DlPBS.cjs`),require(`./api-key-rotation-BEhJdmXN.cjs`),require(`./local-roots-DRv9Y_41.cjs`),require(`./proxy-fetch-DPOhfrou.cjs`),require(`./tokens-g5KWvWhD.cjs`),require(`./commands-registry-Cfv6gDoQ.cjs`),require(`./fetch-ClKErpni.cjs`),require(`./ir-Cq7b_9v8.cjs`),require(`./render-DxBO2Blp.cjs`),require(`./target-errors-DIOJ6Eun.cjs`),require(`./channel-activity-Bm-pvlXw.cjs`),require(`./tables-BlhpY72l.cjs`),require(`./send-TRwokuAm.cjs`),require(`./fetch-BY6lVRlY.cjs`),require(`./skill-commands-2LXH0aZR.cjs`),require(`./outbound-attachment-BIGvZREF.cjs`),require(`./send-BXrh73qh.cjs`),require(`./query-expansion-DCeqywxh.cjs`),require(`./manager-C4FEmxjq.cjs`);let i=require(`zod`),a=require(`node:util`);const o=i.z.union([i.z.string(),i.z.number()]);i.z.array(o).optional();function s(e){let t=e;return typeof t.toJSONSchema==`function`?{schema:t.toJSONSchema({target:`draft-07`,unrepresentable:`any`})}:{schema:{type:`object`,additionalProperties:!0}}}const c={openai:[`OPENAI_API_KEY`],anthropic:[`ANTHROPIC_API_KEY`],google:[`GEMINI_API_KEY`],minimax:[`MINIMAX_API_KEY`],"minimax-cn":[`MINIMAX_API_KEY`],moonshot:[`MOONSHOT_API_KEY`],"kimi-coding":[`KIMI_API_KEY`,`KIMICODE_API_KEY`],synthetic:[`SYNTHETIC_API_KEY`],venice:[`VENICE_API_KEY`],zai:[`ZAI_API_KEY`,`Z_AI_API_KEY`],xiaomi:[`XIAOMI_API_KEY`],openrouter:[`OPENROUTER_API_KEY`],"cloudflare-ai-gateway":[`CLOUDFLARE_AI_GATEWAY_API_KEY`],litellm:[`LITELLM_API_KEY`],"vercel-ai-gateway":[`AI_GATEWAY_API_KEY`],opencode:[`OPENCODE_API_KEY`,`OPENCODE_ZEN_API_KEY`],"opencode-go":[`OPENCODE_API_KEY`,`OPENCODE_ZEN_API_KEY`],together:[`TOGETHER_API_KEY`],huggingface:[`HUGGINGFACE_HUB_TOKEN`,`HF_TOKEN`],qianfan:[`QIANFAN_API_KEY`],xai:[`XAI_API_KEY`],mistral:[`MISTRAL_API_KEY`],kilocode:[`KILOCODE_API_KEY`],modelstudio:[`MODELSTUDIO_API_KEY`],volcengine:[`VOLCANO_ENGINE_API_KEY`],byteplus:[`BYTEPLUS_API_KEY`]},l=[`VOYAGE_API_KEY`,`GROQ_API_KEY`,`DEEPGRAM_API_KEY`,`CEREBRAS_API_KEY`,`NVIDIA_API_KEY`,`COPILOT_GITHUB_TOKEN`,`GH_TOKEN`,`GITHUB_TOKEN`,`ANTHROPIC_OAUTH_TOKEN`,`CHUTES_OAUTH_TOKEN`,`CHUTES_API_KEY`,`QWEN_OAUTH_TOKEN`,`QWEN_PORTAL_API_KEY`,`MINIMAX_OAUTH_TOKEN`,`OLLAMA_API_KEY`,`VLLM_API_KEY`],u=[...new Set(Object.values(c).flatMap(e=>e))];[...new Set([...u,...l])];async function d(e){let n=e.listAccountIds(e.cfg),r=e.currentId?.trim()||e.defaultAccountId||`default`,i=await e.prompter.select({message:`${e.label} account`,options:[...n.map(e=>({value:e,label:e===`default`?`default (primary)`:e})),{value:`__new__`,label:`Add a new account`}],initialValue:r});if(i!==`__new__`)return t.zt(i);let a=await e.prompter.text({message:`New ${e.label} account id`,validate:e=>e?.trim()?void 0:`Required`}),o=t.zt(String(a));return String(a).trim()!==o&&await e.prompter.note(`Normalized account id to "${o}".`,`${e.label} account`),o}function f(e){let n=t.zt(e.accountId),r=e.cfg.channels?.[e.channelKey],i=typeof r==`object`&&r?r:void 0,a=e.ensureChannelEnabled??!0,o=e.ensureAccountEnabled??a,s=e.patch,c=e.accountPatch??s;if(n===`default`)return{...e.cfg,channels:{...e.cfg.channels,[e.channelKey]:{...i,...a?{enabled:!0}:{},...s}}};let l=i?.accounts??{},u=l[n]??{};return{...e.cfg,channels:{...e.cfg.channels,[e.channelKey]:{...i,...a?{enabled:!0}:{},accounts:{...l,[n]:{...u,...o?{enabled:typeof u.enabled==`boolean`?u.enabled:!0}:{},...c}}}}}}const p=async e=>await d(e);function m(e){let t=(e??[]).map(e=>String(e).trim()).filter(Boolean);return t.includes(`*`)||t.push(`*`),t}function h(e){return e.split(/[\n,;]+/g).map(e=>e.trim()).filter(Boolean)}async function g(e){let n=e.accountOverride?.trim(),r=n?t.zt(n):e.defaultAccountId;return e.shouldPromptAccountIds&&!n&&(r=await p({cfg:e.cfg,prompter:e.prompter,label:e.label,currentId:r,listAccountIds:e.listAccountIds,defaultAccountId:e.defaultAccountId})),r}function _(e){let t=e.cfg.channels?.[e.channel]??{};return{...e.cfg,channels:{...e.cfg.channels,[e.channel]:{...t,...e.enabled?{enabled:!0}:{},allowFrom:e.allowFrom}}}}function v(e){let t=e.cfg.channels?.[e.channel]??{},n=e.getAllowFrom?.(e.cfg)??t.allowFrom??void 0,r=e.dmPolicy===`open`?m(n):void 0;return{...e.cfg,channels:{...e.cfg.channels,[e.channel]:{...t,dmPolicy:e.dmPolicy,...r?{allowFrom:r}:{}}}}}function y(e){return h(String(e??``))}function b(e){return e.map(e=>e.trim()).filter(Boolean).join(`, `)}async function x(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 S(e){let t=e.currentEntries&&e.currentEntries.length>0?b(e.currentEntries):void 0;return y(await e.prompter.text({message:`${e.label} allowlist (comma-separated)`,placeholder:e.placeholder,initialValue:t}))}async function C(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 x({prompter:e.prompter,label:e.label,currentPolicy:e.currentPolicy,allowOpen:e.allowOpen,allowDisabled:e.allowDisabled});return r===`allowlist`?{policy:r,entries:await S({prompter:e.prompter,label:e.label,currentEntries:e.currentEntries,placeholder:e.placeholder})}:{policy:r,entries:[]}}function w(e){return{success:!1,error:{issues:[{path:[],message:e}]}}}function T(){return{safeParse(e){return e===void 0?{success:!0,data:void 0}:!e||typeof e!=`object`||Array.isArray(e)?w(`expected config object`):Object.keys(e).length>0?w(`config must be empty`):{success:!0,data:e}},jsonSchema:{type:`object`,additionalProperties:!1,properties:{}}}}function E(e){return t=>{e.setStatus({accountId:e.accountId,...t})}}function D(e,t){return new Promise((n,r)=>{let i=()=>{Promise.resolve(t?.()).then(()=>n(),r)};if(e){if(e.aborted){i();return}e.addEventListener(`abort`,i,{once:!0})}})}async function O(e){let t=await e.start();try{await D(e.abortSignal)}finally{await e.stop?.(t),await e.onStop?.()}}function k(e){let n=t.zt(e.accountId);return{accountId:n,readAllowFromStore:()=>e.core.channel.pairing.readAllowFromStore({channel:e.channel,accountId:n}),readStoreForDmPolicy:(n,r)=>e.core.channel.pairing.readAllowFromStore({channel:n,accountId:t.zt(r)}),upsertPairingRequest:t=>e.core.channel.pairing.upsertPairingRequest({channel:e.channel,accountId:n,...t})}}function A(e){return{text:typeof e.text==`string`?e.text:void 0,mediaUrls:Array.isArray(e.mediaUrls)?e.mediaUrls.filter(e=>typeof e==`string`&&e.length>0):void 0,mediaUrl:typeof e.mediaUrl==`string`?e.mediaUrl:void 0,replyToId:typeof e.replyToId==`string`?e.replyToId:void 0}}function j(e){return async t=>{await e(t&&typeof t==`object`?A(t):{})}}function M(e){return e.mediaUrls?.length?e.mediaUrls:e.mediaUrl?[e.mediaUrl]:[]}function N(e,t){let n=e?.trim()??``;if(!n&&t.length===0)return``;let r=t.length?t.map(e=>`Attachment: ${e}`).join(`
2
2
  `):``;return n?r?`${n}\n\n${r}`:n:r}function P(e){return{cfg:e.cfg,channel:e.channel,accountId:e.accountId,agentId:e.route.agentId,routeSessionKey:e.route.sessionKey,storePath:e.storePath,ctxPayload:e.ctxPayload,recordInboundSession:e.core.channel.session.recordInboundSession,dispatchReplyWithBufferedBlockDispatcher:e.core.channel.reply.dispatchReplyWithBufferedBlockDispatcher}}async function F(e){await I({...P(e),deliver:e.deliver,onRecordError:e.onRecordError,onDispatchError:e.onDispatchError,replyOptions:e.replyOptions})}async function I(t){await t.recordInboundSession({storePath:t.storePath,sessionKey:t.ctxPayload.SessionKey??t.routeSessionKey,ctx:t.ctxPayload,onRecordError:t.onRecordError});let{onModelSelected:n,...r}=e.J({cfg:t.cfg,agentId:t.agentId,channel:t.channel,accountId:t.accountId}),i=j(t.deliver);await t.dispatchReplyWithBufferedBlockDispatcher({ctx:t.ctxPayload,cfg:t.cfg,dispatcherOptions:{...r,deliver:i,onError:t.onDispatchError},replyOptions:{...t.replyOptions,onModelSelected:n}})}function L(e){return{log:(...t)=>{e.logger.info((0,a.format)(...t))},error:(...t)=>{e.logger.error((0,a.format)(...t))},exit:t=>{throw e.exitError?.(t)??Error(`exit ${t}`)}}}function R(e){return{configured:e.configured??!1,running:e.running??!1,lastStartAt:e.lastStartAt??null,lastStopAt:e.lastStopAt??null,lastError:e.lastError??null}}function z(e){let{account:t,runtime:n,probe:r}=e;return{accountId:t.accountId,name:t.name,enabled:t.enabled,configured:t.configured,...B({runtime:n,probe:r}),lastInboundAt:n?.lastInboundAt??null,lastOutboundAt:n?.lastOutboundAt??null}}function B(e){let{runtime:t,probe:n}=e;return{running:t?.running??!1,lastStartAt:t?.lastStartAt??null,lastStopAt:t?.lastStopAt??null,lastError:t?.lastError??null,probe:n}}exports.BlockStreamingCoalesceSchema=n.nc,exports.DEFAULT_ACCOUNT_ID=t.Rt,exports.DmConfigSchema=n.rc,exports.DmPolicySchema=n.ic,exports.GROUP_POLICY_BLOCKED_LABEL=r.kt,exports.GroupPolicySchema=n.ac,exports.MarkdownConfigSchema=n.oc,exports.PAIRING_APPROVED_MESSAGE=`✅ OpenClaw access approved. Send a message to start chatting.`,exports.ReplyRuntimeConfigSchemaShape=n.sc,exports.ToolPolicySchema=n.Ha,exports.addWildcardAllowFrom=m,exports.buildBaseAccountStatusSnapshot=z,exports.buildBaseChannelStatusSummary=R,exports.buildChannelConfigSchema=s,exports.createAccountListHelpers=n.yc,exports.createAccountStatusSink=E,exports.createLoggerBackedRuntime=L,exports.createNormalizedOutboundDeliverer=j,exports.createReplyPrefixOptions=e.J,exports.createScopedPairingAccess=k,exports.deleteAccountFromConfigSection=n.bc,exports.dispatchInboundReplyWithBase=F,exports.emptyPluginConfigSchema=T,exports.formatDocsLink=e.V,exports.formatPairingApproveHint=n.$s,exports.formatTextWithAttachmentLinks=N,exports.getChatChannelMeta=n.oo,exports.isDangerousNameMatchingEnabled=e.q,exports.issuePairingChallenge=e.B,exports.logInboundDrop=e.Z,exports.normalizeResolvedSecretInputString=n.hc,exports.patchScopedAccountConfig=f,exports.promptAccountId=p,exports.promptChannelAccessConfig=C,exports.readStoreAllowFromForDmPolicy=e.H,exports.requireOpenAllowFrom=n.cc,exports.resolveAccountIdForConfigure=g,exports.resolveAllowlistProviderRuntimeGroupPolicy=r.At,exports.resolveControlCommandGate=e.Q,exports.resolveDefaultGroupPolicy=r.jt,exports.resolveEffectiveAllowFromLists=e.G,exports.resolveOutboundMediaUrls=M,exports.runPassiveAccountLifecycle=O,exports.setAccountEnabledInConfigSection=n.xc,exports.setTopLevelChannelAllowFrom=_,exports.setTopLevelChannelDmPolicyWithAllowFrom=v,exports.warnMissingProviderGroupPolicyFallbackOnce=r.Nt;
@@ -1,2 +1,2 @@
1
- import{B as e,G as t,H as n,J as r,Q as i,V as a,Z as o,q as s}from"./dispatch-B13B2T1k.js";import{Rt as c,zt as l}from"./paths-Do0djuaj.js";import{$s as u,Qs as d,Va as f,Ys as p,_c as m,ao as h,dc as ee,ec as te,gc as g,hc as _,ic as v,nc as y,rc as b,tc as x}from"./model-auth-exDkzEDR.js";import"./logger-DJGHvDbX.js";import"./paths-CtrEseGU.js";import"./proxy-env-MEjSyzTr.js";import"./github-copilot-token-vKAKX6iE.js";import"./send-VUSa_wkg.js";import{At as S,Nt as C,jt as w,kt as T}from"./send-q6C-1cdJ.js";import"./send-Cyp5hOpt.js";import"./deliver-BcHzZPc2.js";import"./diagnostic-CSfBcIOI.js";import"./pi-model-discovery-Ba70onAm.js";import"./audio-transcription-runner-nKI1rQ0R.js";import"./image-CMeyJO2-.js";import"./fetch-guard-BZi5e63X.js";import"./api-key-rotation-tVSHRH8D.js";import"./local-roots-DprQ5M3b.js";import"./proxy-fetch-DXt2R_Z5.js";import"./tokens-BqABmXSe.js";import"./commands-registry-CeJQPXIR.js";import"./fetch-BtZY623f.js";import"./ir-DdA08iXJ.js";import"./render-DhTJXP1U.js";import"./target-errors-4q9SUsM_.js";import"./channel-activity-BlYTUiU4.js";import"./tables-ib4GZqYB.js";import"./send-CJmor6eC.js";import"./fetch-7Iq9POda.js";import"./skill-commands-CPZ9Jvbj.js";import"./outbound-attachment-CJatgPbm.js";import"./send-Cob_bnT32.js";import"./query-expansion-CAboqtWr.js";import"./manager-DJSpJkev.js";import{z as E}from"zod";import{format as D}from"node:util";const O=E.union([E.string(),E.number()]);E.array(O).optional();function k(e){let t=e;return typeof t.toJSONSchema==`function`?{schema:t.toJSONSchema({target:`draft-07`,unrepresentable:`any`})}:{schema:{type:`object`,additionalProperties:!0}}}const A={openai:[`OPENAI_API_KEY`],anthropic:[`ANTHROPIC_API_KEY`],google:[`GEMINI_API_KEY`],minimax:[`MINIMAX_API_KEY`],"minimax-cn":[`MINIMAX_API_KEY`],moonshot:[`MOONSHOT_API_KEY`],"kimi-coding":[`KIMI_API_KEY`,`KIMICODE_API_KEY`],synthetic:[`SYNTHETIC_API_KEY`],venice:[`VENICE_API_KEY`],zai:[`ZAI_API_KEY`,`Z_AI_API_KEY`],xiaomi:[`XIAOMI_API_KEY`],openrouter:[`OPENROUTER_API_KEY`],"cloudflare-ai-gateway":[`CLOUDFLARE_AI_GATEWAY_API_KEY`],litellm:[`LITELLM_API_KEY`],"vercel-ai-gateway":[`AI_GATEWAY_API_KEY`],opencode:[`OPENCODE_API_KEY`,`OPENCODE_ZEN_API_KEY`],"opencode-go":[`OPENCODE_API_KEY`,`OPENCODE_ZEN_API_KEY`],together:[`TOGETHER_API_KEY`],huggingface:[`HUGGINGFACE_HUB_TOKEN`,`HF_TOKEN`],qianfan:[`QIANFAN_API_KEY`],xai:[`XAI_API_KEY`],mistral:[`MISTRAL_API_KEY`],kilocode:[`KILOCODE_API_KEY`],modelstudio:[`MODELSTUDIO_API_KEY`],volcengine:[`VOLCANO_ENGINE_API_KEY`],byteplus:[`BYTEPLUS_API_KEY`]},j=[`VOYAGE_API_KEY`,`GROQ_API_KEY`,`DEEPGRAM_API_KEY`,`CEREBRAS_API_KEY`,`NVIDIA_API_KEY`,`COPILOT_GITHUB_TOKEN`,`GH_TOKEN`,`GITHUB_TOKEN`,`ANTHROPIC_OAUTH_TOKEN`,`CHUTES_OAUTH_TOKEN`,`CHUTES_API_KEY`,`QWEN_OAUTH_TOKEN`,`QWEN_PORTAL_API_KEY`,`MINIMAX_OAUTH_TOKEN`,`OLLAMA_API_KEY`,`VLLM_API_KEY`],M=[...new Set(Object.values(A).flatMap(e=>e))];[...new Set([...M,...j])];async function N(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 l(r);let i=await e.prompter.text({message:`New ${e.label} account id`,validate:e=>e?.trim()?void 0:`Required`}),a=l(String(i));return String(i).trim()!==a&&await e.prompter.note(`Normalized account id to "${a}".`,`${e.label} account`),a}function P(e){let t=l(e.accountId),n=e.cfg.channels?.[e.channelKey],r=typeof n==`object`&&n?n:void 0,i=e.ensureChannelEnabled??!0,a=e.ensureAccountEnabled??i,o=e.patch,s=e.accountPatch??o;if(t===`default`)return{...e.cfg,channels:{...e.cfg.channels,[e.channelKey]:{...r,...i?{enabled:!0}:{},...o}}};let c=r?.accounts??{},u=c[t]??{};return{...e.cfg,channels:{...e.cfg.channels,[e.channelKey]:{...r,...i?{enabled:!0}:{},accounts:{...c,[t]:{...u,...a?{enabled:typeof u.enabled==`boolean`?u.enabled:!0}:{},...s}}}}}}const F=async e=>await N(e);function I(e){let t=(e??[]).map(e=>String(e).trim()).filter(Boolean);return t.includes(`*`)||t.push(`*`),t}function L(e){return e.split(/[\n,;]+/g).map(e=>e.trim()).filter(Boolean)}async function R(e){let t=e.accountOverride?.trim(),n=t?l(t):e.defaultAccountId;return e.shouldPromptAccountIds&&!t&&(n=await F({cfg:e.cfg,prompter:e.prompter,label:e.label,currentId:n,listAccountIds:e.listAccountIds,defaultAccountId:e.defaultAccountId})),n}function z(e){let t=e.cfg.channels?.[e.channel]??{};return{...e.cfg,channels:{...e.cfg.channels,[e.channel]:{...t,...e.enabled?{enabled:!0}:{},allowFrom:e.allowFrom}}}}function ne(e){let t=e.cfg.channels?.[e.channel]??{},n=e.getAllowFrom?.(e.cfg)??t.allowFrom??void 0,r=e.dmPolicy===`open`?I(n):void 0;return{...e.cfg,channels:{...e.cfg.channels,[e.channel]:{...t,dmPolicy:e.dmPolicy,...r?{allowFrom:r}:{}}}}}function B(e){return L(String(e??``))}function V(e){return e.map(e=>e.trim()).filter(Boolean).join(`, `)}async function H(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 U(e){let t=e.currentEntries&&e.currentEntries.length>0?V(e.currentEntries):void 0;return B(await e.prompter.text({message:`${e.label} allowlist (comma-separated)`,placeholder:e.placeholder,initialValue:t}))}async function W(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 H({prompter:e.prompter,label:e.label,currentPolicy:e.currentPolicy,allowOpen:e.allowOpen,allowDisabled:e.allowDisabled});return r===`allowlist`?{policy:r,entries:await U({prompter:e.prompter,label:e.label,currentEntries:e.currentEntries,placeholder:e.placeholder})}:{policy:r,entries:[]}}const G=`✅ OpenClaw access approved. Send a message to start chatting.`;function K(e){return{success:!1,error:{issues:[{path:[],message:e}]}}}function q(){return{safeParse(e){return e===void 0?{success:!0,data:void 0}:!e||typeof e!=`object`||Array.isArray(e)?K(`expected config object`):Object.keys(e).length>0?K(`config must be empty`):{success:!0,data:e}},jsonSchema:{type:`object`,additionalProperties:!1,properties:{}}}}function J(e){return t=>{e.setStatus({accountId:e.accountId,...t})}}function Y(e,t){return new Promise((n,r)=>{let i=()=>{Promise.resolve(t?.()).then(()=>n(),r)};if(e){if(e.aborted){i();return}e.addEventListener(`abort`,i,{once:!0})}})}async function X(e){let t=await e.start();try{await Y(e.abortSignal)}finally{await e.stop?.(t),await e.onStop?.()}}function Z(e){let t=l(e.accountId);return{accountId:t,readAllowFromStore:()=>e.core.channel.pairing.readAllowFromStore({channel:e.channel,accountId:t}),readStoreForDmPolicy:(t,n)=>e.core.channel.pairing.readAllowFromStore({channel:t,accountId:l(n)}),upsertPairingRequest:n=>e.core.channel.pairing.upsertPairingRequest({channel:e.channel,accountId:t,...n})}}function re(e){return{text:typeof e.text==`string`?e.text:void 0,mediaUrls:Array.isArray(e.mediaUrls)?e.mediaUrls.filter(e=>typeof e==`string`&&e.length>0):void 0,mediaUrl:typeof e.mediaUrl==`string`?e.mediaUrl:void 0,replyToId:typeof e.replyToId==`string`?e.replyToId:void 0}}function Q(e){return async t=>{await e(t&&typeof t==`object`?re(t):{})}}function ie(e){return e.mediaUrls?.length?e.mediaUrls:e.mediaUrl?[e.mediaUrl]:[]}function ae(e,t){let n=e?.trim()??``;if(!n&&t.length===0)return``;let r=t.length?t.map(e=>`Attachment: ${e}`).join(`
1
+ import{B as e,G as t,H as n,J as r,Q as i,V as a,Z as o,q as s}from"./dispatch-BY1FkQOr.js";import{Rt as c,zt as l}from"./paths-Do0djuaj.js";import{$s as u,Qs as d,Va as f,Ys as p,_c as m,ao as h,dc as ee,ec as te,gc as g,hc as _,ic as v,nc as y,rc as b,tc as x}from"./model-auth-exDkzEDR.js";import"./logger-DJGHvDbX.js";import"./paths-CtrEseGU.js";import"./proxy-env-MEjSyzTr.js";import"./github-copilot-token-vKAKX6iE.js";import"./send-VUSa_wkg.js";import{At as S,Nt as C,jt as w,kt as T}from"./send-q6C-1cdJ.js";import"./send-Cyp5hOpt.js";import"./deliver-BcHzZPc2.js";import"./diagnostic-CSfBcIOI.js";import"./pi-model-discovery-Ba70onAm.js";import"./audio-transcription-runner-nKI1rQ0R.js";import"./image-CMeyJO2-.js";import"./fetch-guard-BZi5e63X.js";import"./api-key-rotation-tVSHRH8D.js";import"./local-roots-DprQ5M3b.js";import"./proxy-fetch-DXt2R_Z5.js";import"./tokens-BqABmXSe.js";import"./commands-registry-CeJQPXIR.js";import"./fetch-BtZY623f.js";import"./ir-DdA08iXJ.js";import"./render-DhTJXP1U.js";import"./target-errors-4q9SUsM_.js";import"./channel-activity-BlYTUiU4.js";import"./tables-ib4GZqYB.js";import"./send-CJmor6eC.js";import"./fetch-7Iq9POda.js";import"./skill-commands-CPZ9Jvbj.js";import"./outbound-attachment-CJatgPbm.js";import"./send-Cob_bnT32.js";import"./query-expansion-CAboqtWr.js";import"./manager-DJSpJkev.js";import{z as E}from"zod";import{format as D}from"node:util";const O=E.union([E.string(),E.number()]);E.array(O).optional();function k(e){let t=e;return typeof t.toJSONSchema==`function`?{schema:t.toJSONSchema({target:`draft-07`,unrepresentable:`any`})}:{schema:{type:`object`,additionalProperties:!0}}}const A={openai:[`OPENAI_API_KEY`],anthropic:[`ANTHROPIC_API_KEY`],google:[`GEMINI_API_KEY`],minimax:[`MINIMAX_API_KEY`],"minimax-cn":[`MINIMAX_API_KEY`],moonshot:[`MOONSHOT_API_KEY`],"kimi-coding":[`KIMI_API_KEY`,`KIMICODE_API_KEY`],synthetic:[`SYNTHETIC_API_KEY`],venice:[`VENICE_API_KEY`],zai:[`ZAI_API_KEY`,`Z_AI_API_KEY`],xiaomi:[`XIAOMI_API_KEY`],openrouter:[`OPENROUTER_API_KEY`],"cloudflare-ai-gateway":[`CLOUDFLARE_AI_GATEWAY_API_KEY`],litellm:[`LITELLM_API_KEY`],"vercel-ai-gateway":[`AI_GATEWAY_API_KEY`],opencode:[`OPENCODE_API_KEY`,`OPENCODE_ZEN_API_KEY`],"opencode-go":[`OPENCODE_API_KEY`,`OPENCODE_ZEN_API_KEY`],together:[`TOGETHER_API_KEY`],huggingface:[`HUGGINGFACE_HUB_TOKEN`,`HF_TOKEN`],qianfan:[`QIANFAN_API_KEY`],xai:[`XAI_API_KEY`],mistral:[`MISTRAL_API_KEY`],kilocode:[`KILOCODE_API_KEY`],modelstudio:[`MODELSTUDIO_API_KEY`],volcengine:[`VOLCANO_ENGINE_API_KEY`],byteplus:[`BYTEPLUS_API_KEY`]},j=[`VOYAGE_API_KEY`,`GROQ_API_KEY`,`DEEPGRAM_API_KEY`,`CEREBRAS_API_KEY`,`NVIDIA_API_KEY`,`COPILOT_GITHUB_TOKEN`,`GH_TOKEN`,`GITHUB_TOKEN`,`ANTHROPIC_OAUTH_TOKEN`,`CHUTES_OAUTH_TOKEN`,`CHUTES_API_KEY`,`QWEN_OAUTH_TOKEN`,`QWEN_PORTAL_API_KEY`,`MINIMAX_OAUTH_TOKEN`,`OLLAMA_API_KEY`,`VLLM_API_KEY`],M=[...new Set(Object.values(A).flatMap(e=>e))];[...new Set([...M,...j])];async function N(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 l(r);let i=await e.prompter.text({message:`New ${e.label} account id`,validate:e=>e?.trim()?void 0:`Required`}),a=l(String(i));return String(i).trim()!==a&&await e.prompter.note(`Normalized account id to "${a}".`,`${e.label} account`),a}function P(e){let t=l(e.accountId),n=e.cfg.channels?.[e.channelKey],r=typeof n==`object`&&n?n:void 0,i=e.ensureChannelEnabled??!0,a=e.ensureAccountEnabled??i,o=e.patch,s=e.accountPatch??o;if(t===`default`)return{...e.cfg,channels:{...e.cfg.channels,[e.channelKey]:{...r,...i?{enabled:!0}:{},...o}}};let c=r?.accounts??{},u=c[t]??{};return{...e.cfg,channels:{...e.cfg.channels,[e.channelKey]:{...r,...i?{enabled:!0}:{},accounts:{...c,[t]:{...u,...a?{enabled:typeof u.enabled==`boolean`?u.enabled:!0}:{},...s}}}}}}const F=async e=>await N(e);function I(e){let t=(e??[]).map(e=>String(e).trim()).filter(Boolean);return t.includes(`*`)||t.push(`*`),t}function L(e){return e.split(/[\n,;]+/g).map(e=>e.trim()).filter(Boolean)}async function R(e){let t=e.accountOverride?.trim(),n=t?l(t):e.defaultAccountId;return e.shouldPromptAccountIds&&!t&&(n=await F({cfg:e.cfg,prompter:e.prompter,label:e.label,currentId:n,listAccountIds:e.listAccountIds,defaultAccountId:e.defaultAccountId})),n}function z(e){let t=e.cfg.channels?.[e.channel]??{};return{...e.cfg,channels:{...e.cfg.channels,[e.channel]:{...t,...e.enabled?{enabled:!0}:{},allowFrom:e.allowFrom}}}}function ne(e){let t=e.cfg.channels?.[e.channel]??{},n=e.getAllowFrom?.(e.cfg)??t.allowFrom??void 0,r=e.dmPolicy===`open`?I(n):void 0;return{...e.cfg,channels:{...e.cfg.channels,[e.channel]:{...t,dmPolicy:e.dmPolicy,...r?{allowFrom:r}:{}}}}}function B(e){return L(String(e??``))}function V(e){return e.map(e=>e.trim()).filter(Boolean).join(`, `)}async function H(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 U(e){let t=e.currentEntries&&e.currentEntries.length>0?V(e.currentEntries):void 0;return B(await e.prompter.text({message:`${e.label} allowlist (comma-separated)`,placeholder:e.placeholder,initialValue:t}))}async function W(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 H({prompter:e.prompter,label:e.label,currentPolicy:e.currentPolicy,allowOpen:e.allowOpen,allowDisabled:e.allowDisabled});return r===`allowlist`?{policy:r,entries:await U({prompter:e.prompter,label:e.label,currentEntries:e.currentEntries,placeholder:e.placeholder})}:{policy:r,entries:[]}}const G=`✅ OpenClaw access approved. Send a message to start chatting.`;function K(e){return{success:!1,error:{issues:[{path:[],message:e}]}}}function q(){return{safeParse(e){return e===void 0?{success:!0,data:void 0}:!e||typeof e!=`object`||Array.isArray(e)?K(`expected config object`):Object.keys(e).length>0?K(`config must be empty`):{success:!0,data:e}},jsonSchema:{type:`object`,additionalProperties:!1,properties:{}}}}function J(e){return t=>{e.setStatus({accountId:e.accountId,...t})}}function Y(e,t){return new Promise((n,r)=>{let i=()=>{Promise.resolve(t?.()).then(()=>n(),r)};if(e){if(e.aborted){i();return}e.addEventListener(`abort`,i,{once:!0})}})}async function X(e){let t=await e.start();try{await Y(e.abortSignal)}finally{await e.stop?.(t),await e.onStop?.()}}function Z(e){let t=l(e.accountId);return{accountId:t,readAllowFromStore:()=>e.core.channel.pairing.readAllowFromStore({channel:e.channel,accountId:t}),readStoreForDmPolicy:(t,n)=>e.core.channel.pairing.readAllowFromStore({channel:t,accountId:l(n)}),upsertPairingRequest:n=>e.core.channel.pairing.upsertPairingRequest({channel:e.channel,accountId:t,...n})}}function re(e){return{text:typeof e.text==`string`?e.text:void 0,mediaUrls:Array.isArray(e.mediaUrls)?e.mediaUrls.filter(e=>typeof e==`string`&&e.length>0):void 0,mediaUrl:typeof e.mediaUrl==`string`?e.mediaUrl:void 0,replyToId:typeof e.replyToId==`string`?e.replyToId:void 0}}function Q(e){return async t=>{await e(t&&typeof t==`object`?re(t):{})}}function ie(e){return e.mediaUrls?.length?e.mediaUrls:e.mediaUrl?[e.mediaUrl]:[]}function ae(e,t){let n=e?.trim()??``;if(!n&&t.length===0)return``;let r=t.length?t.map(e=>`Attachment: ${e}`).join(`
2
2
  `):``;return n?r?`${n}\n\n${r}`:n:r}function oe(e){return{cfg:e.cfg,channel:e.channel,accountId:e.accountId,agentId:e.route.agentId,routeSessionKey:e.route.sessionKey,storePath:e.storePath,ctxPayload:e.ctxPayload,recordInboundSession:e.core.channel.session.recordInboundSession,dispatchReplyWithBufferedBlockDispatcher:e.core.channel.reply.dispatchReplyWithBufferedBlockDispatcher}}async function se(e){await ce({...oe(e),deliver:e.deliver,onRecordError:e.onRecordError,onDispatchError:e.onDispatchError,replyOptions:e.replyOptions})}async function ce(e){await e.recordInboundSession({storePath:e.storePath,sessionKey:e.ctxPayload.SessionKey??e.routeSessionKey,ctx:e.ctxPayload,onRecordError:e.onRecordError});let{onModelSelected:t,...n}=r({cfg:e.cfg,agentId:e.agentId,channel:e.channel,accountId:e.accountId}),i=Q(e.deliver);await e.dispatchReplyWithBufferedBlockDispatcher({ctx:e.ctxPayload,cfg:e.cfg,dispatcherOptions:{...n,deliver:i,onError:e.onDispatchError},replyOptions:{...e.replyOptions,onModelSelected:t}})}function le(e){return{log:(...t)=>{e.logger.info(D(...t))},error:(...t)=>{e.logger.error(D(...t))},exit:t=>{throw e.exitError?.(t)??Error(`exit ${t}`)}}}function $(e){return{configured:e.configured??!1,running:e.running??!1,lastStartAt:e.lastStartAt??null,lastStopAt:e.lastStopAt??null,lastError:e.lastError??null}}function ue(e){let{account:t,runtime:n,probe:r}=e;return{accountId:t.accountId,name:t.name,enabled:t.enabled,configured:t.configured,...de({runtime:n,probe:r}),lastInboundAt:n?.lastInboundAt??null,lastOutboundAt:n?.lastOutboundAt??null}}function de(e){let{runtime:t,probe:n}=e;return{running:t?.running??!1,lastStartAt:t?.lastStartAt??null,lastStopAt:t?.lastStopAt??null,lastError:t?.lastError??null,probe:n}}export{d as BlockStreamingCoalesceSchema,c as DEFAULT_ACCOUNT_ID,u as DmConfigSchema,te as DmPolicySchema,T as GROUP_POLICY_BLOCKED_LABEL,x as GroupPolicySchema,y as MarkdownConfigSchema,G as PAIRING_APPROVED_MESSAGE,b as ReplyRuntimeConfigSchemaShape,f as ToolPolicySchema,I as addWildcardAllowFrom,ue as buildBaseAccountStatusSnapshot,$ as buildBaseChannelStatusSummary,k as buildChannelConfigSchema,_ as createAccountListHelpers,J as createAccountStatusSink,le as createLoggerBackedRuntime,Q as createNormalizedOutboundDeliverer,r as createReplyPrefixOptions,Z as createScopedPairingAccess,g as deleteAccountFromConfigSection,se as dispatchInboundReplyWithBase,q as emptyPluginConfigSchema,a as formatDocsLink,p as formatPairingApproveHint,ae as formatTextWithAttachmentLinks,h as getChatChannelMeta,s as isDangerousNameMatchingEnabled,e as issuePairingChallenge,o as logInboundDrop,ee as normalizeResolvedSecretInputString,P as patchScopedAccountConfig,F as promptAccountId,W as promptChannelAccessConfig,n as readStoreAllowFromForDmPolicy,v as requireOpenAllowFrom,R as resolveAccountIdForConfigure,S as resolveAllowlistProviderRuntimeGroupPolicy,i as resolveControlCommandGate,w as resolveDefaultGroupPolicy,t as resolveEffectiveAllowFromLists,ie as resolveOutboundMediaUrls,X as runPassiveAccountLifecycle,m as setAccountEnabledInConfigSection,z as setTopLevelChannelAllowFrom,ne as setTopLevelChannelDmPolicyWithAllowFrom,C as warnMissingProviderGroupPolicyFallbackOnce};
@@ -1,3 +1,3 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`./paths-Bcdg3ma0.cjs`);const e=require(`./paths-CIcxeNL-.cjs`);require(`./utils-PPIvU9qw.cjs`);const t=require(`./model-auth-sjKLUCCz.cjs`),n=require(`./target-errors-QGzfLvuU.cjs`),r=require(`./dispatch-_tJF5hSh.cjs`),i=require(`./send-CGMqeSaY.cjs`),a=require(`./send-DmxxJFZd.cjs`);require(`./proxy-env-D48qBPAr.cjs`),require(`./github-copilot-token-C1O2cBqk.cjs`),require(`./send-BJmf3HVn.cjs`);const o=require(`./fetch-guard-CVnIQ0nI.cjs`);require(`./deliver-Cm8yUsWK.cjs`),require(`./diagnostic-DMpxa640.cjs`),require(`./pi-model-discovery-DUbDLlc7.cjs`),require(`./audio-transcription-runner-BZLASCWO.cjs`),require(`./image-BPUmI-kx.cjs`),require(`./api-key-rotation-CrVpqlS6.cjs`),require(`./local-roots-GqNj3vMl.cjs`),require(`./proxy-fetch-BwXFVsHE.cjs`),require(`./tokens-CnB4dJmp.cjs`),require(`./commands-registry-wA0CkHGk.cjs`),require(`./fetch-CZewCAvu.cjs`),require(`./ir-BiiaNbB9.cjs`),require(`./render-g5VlmgpF.cjs`),require(`./channel-activity-DymcGybX.cjs`),require(`./tables-BltHUi44.cjs`),require(`./send-BkjnUdWv.cjs`),require(`./fetch-BN9y3kTg.cjs`),require(`./skill-commands-LCW6nWWC.cjs`),require(`./outbound-attachment-Dbja7LQF.cjs`),require(`./send-BbudHjUi.cjs`),require(`./query-expansion-cpXCyoDy.cjs`),require(`./manager-BZVFXygg.cjs`);let s=require(`node:util`),c=require(`zod`);const l=c.z.union([c.z.string(),c.z.number()]);c.z.array(l).optional();function u(e){let t=e;return typeof t.toJSONSchema==`function`?{schema:t.toJSONSchema({target:`draft-07`,unrepresentable:`any`})}:{schema:{type:`object`,additionalProperties:!0}}}const d={openai:[`OPENAI_API_KEY`],anthropic:[`ANTHROPIC_API_KEY`],google:[`GEMINI_API_KEY`],minimax:[`MINIMAX_API_KEY`],"minimax-cn":[`MINIMAX_API_KEY`],moonshot:[`MOONSHOT_API_KEY`],"kimi-coding":[`KIMI_API_KEY`,`KIMICODE_API_KEY`],synthetic:[`SYNTHETIC_API_KEY`],venice:[`VENICE_API_KEY`],zai:[`ZAI_API_KEY`,`Z_AI_API_KEY`],xiaomi:[`XIAOMI_API_KEY`],openrouter:[`OPENROUTER_API_KEY`],"cloudflare-ai-gateway":[`CLOUDFLARE_AI_GATEWAY_API_KEY`],litellm:[`LITELLM_API_KEY`],"vercel-ai-gateway":[`AI_GATEWAY_API_KEY`],opencode:[`OPENCODE_API_KEY`,`OPENCODE_ZEN_API_KEY`],"opencode-go":[`OPENCODE_API_KEY`,`OPENCODE_ZEN_API_KEY`],together:[`TOGETHER_API_KEY`],huggingface:[`HUGGINGFACE_HUB_TOKEN`,`HF_TOKEN`],qianfan:[`QIANFAN_API_KEY`],xai:[`XAI_API_KEY`],mistral:[`MISTRAL_API_KEY`],kilocode:[`KILOCODE_API_KEY`],modelstudio:[`MODELSTUDIO_API_KEY`],volcengine:[`VOLCANO_ENGINE_API_KEY`],byteplus:[`BYTEPLUS_API_KEY`]},f=[`VOYAGE_API_KEY`,`GROQ_API_KEY`,`DEEPGRAM_API_KEY`,`CEREBRAS_API_KEY`,`NVIDIA_API_KEY`,`COPILOT_GITHUB_TOKEN`,`GH_TOKEN`,`GITHUB_TOKEN`,`ANTHROPIC_OAUTH_TOKEN`,`CHUTES_OAUTH_TOKEN`,`CHUTES_API_KEY`,`QWEN_OAUTH_TOKEN`,`QWEN_PORTAL_API_KEY`,`MINIMAX_OAUTH_TOKEN`,`OLLAMA_API_KEY`,`VLLM_API_KEY`],p=[...new Set(Object.values(d).flatMap(e=>e))];[...new Set([...p,...f])];function m(e){return e instanceof Error&&typeof e.message==`string`&&e.message.trim()?e.message:String(e)}function h(e){return d[e]?.find(e=>e.trim().length>0)}function g(e){return`/providers/${t.Hi(e)}/apiKey`}async function _(e){let n=e.preferredEnvVar??h(e.provider)??``,r=g(e.provider),i=`env`;for(;;){let a=await e.prompter.select({message:e.copy?.sourceMessage??`Where is this API key stored?`,initialValue:i,options:[{value:`env`,label:`Environment variable`,hint:`Reference a variable from your runtime environment`},{value:`provider`,label:`Configured secret provider`,hint:`Use a configured file or exec secret provider`}]})===`provider`?`provider`:`env`;if(i=a,a===`env`){let r=await e.prompter.text({message:e.copy?.envVarMessage??`Environment variable name`,initialValue:n||void 0,placeholder:e.copy?.envVarPlaceholder??`OPENAI_API_KEY`,validate:n=>{let r=n.trim();if(!t.Ms(r))return e.copy?.envVarFormatError??`Use an env var name like "OPENAI_API_KEY" (uppercase letters, numbers, underscores).`;if(!process.env[r]?.trim())return e.copy?.envVarMissingError?.(r)??`Environment variable "${r}" is missing or empty in this session.`}}),i=String(r??``).trim(),a=i&&t.Ms(i)?i:n;if(!a)throw Error(`No valid environment variable name provided for provider "${e.provider}".`);let o={source:`env`,provider:t.Ds(e.config,`env`,{preferFirstProviderForSource:!0}),id:a},s=await t.Fi(o,{config:e.config,env:process.env});return await e.prompter.note(e.copy?.envValidatedMessage?.(a)??`Validated environment variable ${a}. OpenClaw will store a reference, not the key value.`,`Reference validated`),{ref:o,resolvedValue:s}}let o=Object.entries(e.config.secrets?.providers??{}).filter(([,e])=>e?.source===`file`||e?.source===`exec`);if(o.length===0){await e.prompter.note(e.copy?.noProvidersMessage??`No file/exec secret providers are configured yet. Add one under secrets.providers, or select Environment variable.`,`No providers configured`);continue}let s=t.Ds(e.config,`file`,{preferFirstProviderForSource:!0}),c=await e.prompter.select({message:`Select secret provider`,initialValue:o.find(([e])=>e===s)?.[0]??o[0]?.[0],options:o.map(([e,t])=>({value:e,label:e,hint:t?.source===`exec`?`Exec provider`:`File provider`}))}),l=e.config.secrets?.providers?.[c];if(!l||l.source!==`file`&&l.source!==`exec`){await e.prompter.note(`Provider "${c}" is not a file/exec provider.`,`Invalid provider`);continue}let u=l.source===`file`?`Secret id (JSON pointer for json mode, or 'value' for singleValue mode)`:`Secret id for the exec provider`,d=l.source===`file`?l.mode===`singleValue`?`value`:r:`${e.provider}/apiKey`,f=await e.prompter.text({message:u,initialValue:d,placeholder:l.source===`file`?`/providers/openai/apiKey`:`openai/api-key`,validate:e=>{let n=e.trim();if(!n)return`Secret id cannot be empty.`;if(l.source===`file`&&l.mode!==`singleValue`&&!t.Es(n))return`Use an absolute JSON pointer like "/providers/openai/apiKey".`;if(l.source===`file`&&l.mode===`singleValue`&&n!==`value`)return`singleValue mode expects id "value".`;if(l.source===`exec`&&!t.Ts(n))return t.ws()}}),p=String(f??``).trim()||d,h={source:l.source,provider:c,id:p};try{let n=await t.Fi(h,{config:e.config,env:process.env});return await e.prompter.note(e.copy?.providerValidatedMessage?.(c,p,l.source)??`Validated ${l.source} reference ${c}:${p}. OpenClaw will store a reference, not the key value.`,`Reference validated`),{ref:h,resolvedValue:n}}catch(t){await e.prompter.note([`Could not validate provider reference ${c}:${p}.`,m(t),`Check your provider configuration and try again.`].join(`
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`./paths-Bcdg3ma0.cjs`);const e=require(`./paths-CIcxeNL-.cjs`);require(`./utils-PPIvU9qw.cjs`);const t=require(`./model-auth-sjKLUCCz.cjs`),n=require(`./target-errors-QGzfLvuU.cjs`),r=require(`./dispatch-BIaey_BU.cjs`),i=require(`./send-CGMqeSaY.cjs`),a=require(`./send-DmxxJFZd.cjs`);require(`./proxy-env-D48qBPAr.cjs`),require(`./github-copilot-token-C1O2cBqk.cjs`),require(`./send-BJmf3HVn.cjs`);const o=require(`./fetch-guard-CVnIQ0nI.cjs`);require(`./deliver-Cm8yUsWK.cjs`),require(`./diagnostic-DMpxa640.cjs`),require(`./pi-model-discovery-DUbDLlc7.cjs`),require(`./audio-transcription-runner-BZLASCWO.cjs`),require(`./image-BPUmI-kx.cjs`),require(`./api-key-rotation-CrVpqlS6.cjs`),require(`./local-roots-GqNj3vMl.cjs`),require(`./proxy-fetch-BwXFVsHE.cjs`),require(`./tokens-CnB4dJmp.cjs`),require(`./commands-registry-wA0CkHGk.cjs`),require(`./fetch-CZewCAvu.cjs`),require(`./ir-BiiaNbB9.cjs`),require(`./render-g5VlmgpF.cjs`),require(`./channel-activity-DymcGybX.cjs`),require(`./tables-BltHUi44.cjs`),require(`./send-BkjnUdWv.cjs`),require(`./fetch-BN9y3kTg.cjs`),require(`./skill-commands-LCW6nWWC.cjs`),require(`./outbound-attachment-Dbja7LQF.cjs`),require(`./send-BbudHjUi.cjs`),require(`./query-expansion-cpXCyoDy.cjs`),require(`./manager-BZVFXygg.cjs`);let s=require(`node:util`),c=require(`zod`);const l=c.z.union([c.z.string(),c.z.number()]);c.z.array(l).optional();function u(e){let t=e;return typeof t.toJSONSchema==`function`?{schema:t.toJSONSchema({target:`draft-07`,unrepresentable:`any`})}:{schema:{type:`object`,additionalProperties:!0}}}const d={openai:[`OPENAI_API_KEY`],anthropic:[`ANTHROPIC_API_KEY`],google:[`GEMINI_API_KEY`],minimax:[`MINIMAX_API_KEY`],"minimax-cn":[`MINIMAX_API_KEY`],moonshot:[`MOONSHOT_API_KEY`],"kimi-coding":[`KIMI_API_KEY`,`KIMICODE_API_KEY`],synthetic:[`SYNTHETIC_API_KEY`],venice:[`VENICE_API_KEY`],zai:[`ZAI_API_KEY`,`Z_AI_API_KEY`],xiaomi:[`XIAOMI_API_KEY`],openrouter:[`OPENROUTER_API_KEY`],"cloudflare-ai-gateway":[`CLOUDFLARE_AI_GATEWAY_API_KEY`],litellm:[`LITELLM_API_KEY`],"vercel-ai-gateway":[`AI_GATEWAY_API_KEY`],opencode:[`OPENCODE_API_KEY`,`OPENCODE_ZEN_API_KEY`],"opencode-go":[`OPENCODE_API_KEY`,`OPENCODE_ZEN_API_KEY`],together:[`TOGETHER_API_KEY`],huggingface:[`HUGGINGFACE_HUB_TOKEN`,`HF_TOKEN`],qianfan:[`QIANFAN_API_KEY`],xai:[`XAI_API_KEY`],mistral:[`MISTRAL_API_KEY`],kilocode:[`KILOCODE_API_KEY`],modelstudio:[`MODELSTUDIO_API_KEY`],volcengine:[`VOLCANO_ENGINE_API_KEY`],byteplus:[`BYTEPLUS_API_KEY`]},f=[`VOYAGE_API_KEY`,`GROQ_API_KEY`,`DEEPGRAM_API_KEY`,`CEREBRAS_API_KEY`,`NVIDIA_API_KEY`,`COPILOT_GITHUB_TOKEN`,`GH_TOKEN`,`GITHUB_TOKEN`,`ANTHROPIC_OAUTH_TOKEN`,`CHUTES_OAUTH_TOKEN`,`CHUTES_API_KEY`,`QWEN_OAUTH_TOKEN`,`QWEN_PORTAL_API_KEY`,`MINIMAX_OAUTH_TOKEN`,`OLLAMA_API_KEY`,`VLLM_API_KEY`],p=[...new Set(Object.values(d).flatMap(e=>e))];[...new Set([...p,...f])];function m(e){return e instanceof Error&&typeof e.message==`string`&&e.message.trim()?e.message:String(e)}function h(e){return d[e]?.find(e=>e.trim().length>0)}function g(e){return`/providers/${t.Hi(e)}/apiKey`}async function _(e){let n=e.preferredEnvVar??h(e.provider)??``,r=g(e.provider),i=`env`;for(;;){let a=await e.prompter.select({message:e.copy?.sourceMessage??`Where is this API key stored?`,initialValue:i,options:[{value:`env`,label:`Environment variable`,hint:`Reference a variable from your runtime environment`},{value:`provider`,label:`Configured secret provider`,hint:`Use a configured file or exec secret provider`}]})===`provider`?`provider`:`env`;if(i=a,a===`env`){let r=await e.prompter.text({message:e.copy?.envVarMessage??`Environment variable name`,initialValue:n||void 0,placeholder:e.copy?.envVarPlaceholder??`OPENAI_API_KEY`,validate:n=>{let r=n.trim();if(!t.Ms(r))return e.copy?.envVarFormatError??`Use an env var name like "OPENAI_API_KEY" (uppercase letters, numbers, underscores).`;if(!process.env[r]?.trim())return e.copy?.envVarMissingError?.(r)??`Environment variable "${r}" is missing or empty in this session.`}}),i=String(r??``).trim(),a=i&&t.Ms(i)?i:n;if(!a)throw Error(`No valid environment variable name provided for provider "${e.provider}".`);let o={source:`env`,provider:t.Ds(e.config,`env`,{preferFirstProviderForSource:!0}),id:a},s=await t.Fi(o,{config:e.config,env:process.env});return await e.prompter.note(e.copy?.envValidatedMessage?.(a)??`Validated environment variable ${a}. OpenClaw will store a reference, not the key value.`,`Reference validated`),{ref:o,resolvedValue:s}}let o=Object.entries(e.config.secrets?.providers??{}).filter(([,e])=>e?.source===`file`||e?.source===`exec`);if(o.length===0){await e.prompter.note(e.copy?.noProvidersMessage??`No file/exec secret providers are configured yet. Add one under secrets.providers, or select Environment variable.`,`No providers configured`);continue}let s=t.Ds(e.config,`file`,{preferFirstProviderForSource:!0}),c=await e.prompter.select({message:`Select secret provider`,initialValue:o.find(([e])=>e===s)?.[0]??o[0]?.[0],options:o.map(([e,t])=>({value:e,label:e,hint:t?.source===`exec`?`Exec provider`:`File provider`}))}),l=e.config.secrets?.providers?.[c];if(!l||l.source!==`file`&&l.source!==`exec`){await e.prompter.note(`Provider "${c}" is not a file/exec provider.`,`Invalid provider`);continue}let u=l.source===`file`?`Secret id (JSON pointer for json mode, or 'value' for singleValue mode)`:`Secret id for the exec provider`,d=l.source===`file`?l.mode===`singleValue`?`value`:r:`${e.provider}/apiKey`,f=await e.prompter.text({message:u,initialValue:d,placeholder:l.source===`file`?`/providers/openai/apiKey`:`openai/api-key`,validate:e=>{let n=e.trim();if(!n)return`Secret id cannot be empty.`;if(l.source===`file`&&l.mode!==`singleValue`&&!t.Es(n))return`Use an absolute JSON pointer like "/providers/openai/apiKey".`;if(l.source===`file`&&l.mode===`singleValue`&&n!==`value`)return`singleValue mode expects id "value".`;if(l.source===`exec`&&!t.Ts(n))return t.ws()}}),p=String(f??``).trim()||d,h={source:l.source,provider:c,id:p};try{let n=await t.Fi(h,{config:e.config,env:process.env});return await e.prompter.note(e.copy?.providerValidatedMessage?.(c,p,l.source)??`Validated ${l.source} reference ${c}:${p}. OpenClaw will store a reference, not the key value.`,`Reference validated`),{ref:h,resolvedValue:n}}catch(t){await e.prompter.note([`Could not validate provider reference ${c}:${p}.`,m(t),`Check your provider configuration and try again.`].join(`
2
2
  `),`Reference check failed`)}}}async function v(e){return e.explicitMode?e.explicitMode:typeof e.prompter.select==`function`&&await e.prompter.select({message:e.copy?.modeMessage??`How do you want to provide this API key?`,initialValue:`plaintext`,options:[{value:`plaintext`,label:e.copy?.plaintextLabel??`Paste API key now`,hint:e.copy?.plaintextHint??`Stores the key directly in OpenClaw config`},{value:`ref`,label:e.copy?.refLabel??`Use external secret provider`,hint:e.copy?.refHint??`Stores a reference to env or configured external secret providers`}]})===`ref`?`ref`:`plaintext`}function y(e,t){let n=e.channels?.[t];return!!(n?.accounts&&Object.keys(n.accounts).length>0)}function b(e){return e.alwaysUseAccounts||e.accountId!==`default`?!0:y(e.cfg,e.channelKey)}function x(t){let n=t.name?.trim();if(!n)return t.cfg;let r=e.Ot(t.accountId),i=t.cfg.channels?.[t.channelKey],a=typeof i==`object`&&i?i:void 0;if(!b({cfg:t.cfg,channelKey:t.channelKey,accountId:r,alwaysUseAccounts:t.alwaysUseAccounts})&&r===`default`){let e=a??{};return{...t.cfg,channels:{...t.cfg.channels,[t.channelKey]:{...e,name:n}}}}let o=a?.accounts??{},s=o[r]??{},c=r===`default`?(({name:e,...t})=>t)(a??{}):a??{};return{...t.cfg,channels:{...t.cfg.channels,[t.channelKey]:{...c,accounts:{...o,[r]:{...s,name:n}}}}}}function S(e){let t=(e??[]).map(e=>String(e).trim()).filter(Boolean);return t.includes(`*`)||t.push(`*`),t}function C(e,t){let n=[...e??[],...t].map(e=>String(e).trim()).filter(Boolean);return[...new Set(n)]}function w(e){return e.split(/[\n,;]+/g).map(e=>e.trim()).filter(Boolean)}function T(e){let t=e.cfg.channels?.[e.channel]??{};return{...e.cfg,channels:{...e.cfg.channels,[e.channel]:{...t,...e.enabled?{enabled:!0}:{},groupPolicy:e.groupPolicy}}}}function E(e){return{accountConfigured:e.accountConfigured,hasConfigToken:e.hasConfigToken,canUseEnv:e.allowEnv&&!!e.envValue?.trim()&&!e.hasConfigToken}}async function D(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 O(e){if(await v({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 D({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 _({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}}function k(e){return w(String(e??``))}function A(e){return e.map(e=>e.trim()).filter(Boolean).join(`, `)}async function j(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 M(e){let t=e.currentEntries&&e.currentEntries.length>0?A(e.currentEntries):void 0;return k(await e.prompter.text({message:`${e.label} allowlist (comma-separated)`,placeholder:e.placeholder,initialValue:t}))}async function N(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 j({prompter:e.prompter,label:e.label,currentPolicy:e.currentPolicy,allowOpen:e.allowOpen,allowDisabled:e.allowDisabled});return r===`allowlist`?{policy:r,entries:await M({prompter:e.prompter,label:e.label,currentEntries:e.currentEntries,placeholder:e.placeholder})}:{policy:r,entries:[]}}function P(){let e=c.z.string().regex(t.Cs,`Secret reference provider must match /^[a-z][a-z0-9_-]{0,63}$/ (example: "default").`);return c.z.union([c.z.string(),c.z.discriminatedUnion(`source`,[c.z.object({source:c.z.literal(`env`),provider:e,id:c.z.string().regex(t.ks,`Env secret reference id must match /^[A-Z][A-Z0-9_]{0,127}$/ (example: "OPENAI_API_KEY").`)}),c.z.object({source:c.z.literal(`file`),provider:e,id:c.z.string().refine(t.Es,`File secret reference id must be an absolute JSON pointer (example: "/providers/openai/apiKey"), or "value" for singleValue mode.`)}),c.z.object({source:c.z.literal(`exec`),provider:e,id:c.z.string().refine(t.Ts,t.ws())})])])}function F(e){return{success:!1,error:{issues:[{path:[],message:e}]}}}function I(){return{safeParse(e){return e===void 0?{success:!0,data:void 0}:!e||typeof e!=`object`||Array.isArray(e)?F(`expected config object`):Object.keys(e).length>0?F(`config must be empty`):{success:!0,data:e}},jsonSchema:{type:`object`,additionalProperties:!1,properties:{}}}}function L(t){let n=e.Ot(t.accountId);return{accountId:n,readAllowFromStore:()=>t.core.channel.pairing.readAllowFromStore({channel:t.channel,accountId:n}),readStoreForDmPolicy:(n,r)=>t.core.channel.pairing.readAllowFromStore({channel:n,accountId:e.Ot(r)}),upsertPairingRequest:e=>t.core.channel.pairing.upsertPairingRequest({channel:t.channel,accountId:n,...e})}}function R(e){if(!(e.resolved.length===0&&e.unresolved.length===0))return[e.resolved.length>0?`Resolved: ${e.resolved.join(`, `)}`:void 0,e.unresolved.length>0?`Unresolved (kept as typed): ${e.unresolved.join(`, `)}`:void 0].filter(Boolean).join(`
3
3
  `)}async function z(e){let[n]=e.argv;if(!n)return{code:1,stdout:``,stderr:`command is required`};try{let n=await t._c(e.argv,{timeoutMs:e.timeoutMs,cwd:e.cwd,env:e.env}),r=n.termination===`timeout`||n.termination===`no-output-timeout`;return{code:n.code??1,stdout:n.stdout,stderr:r?n.stderr||`command timed out after ${e.timeoutMs}ms`:n.stderr}}catch(e){return{code:1,stdout:``,stderr:e instanceof Error?e.message:String(e)}}}async function B(e){return await r.t({dispatcher:e.dispatcher,onSettled:e.onSettled,run:()=>r.n({ctx:e.ctxPayload,cfg:e.cfg,dispatcher:e.dispatcher,replyOptions:e.replyOptions})})}function V(e){return{log:(...t)=>{e.logger.info((0,s.format)(...t))},error:(...t)=>{e.logger.error((0,s.format)(...t))},exit:t=>{throw e.exitError?.(t)??Error(`exit ${t}`)}}}function H(e){return e.runtime??V(e)}function U(e){return{configured:e.configured??!1,running:e.running??!1,lastStartAt:e.lastStartAt??null,lastStopAt:e.lastStopAt??null,lastError:e.lastError??null}}function W(e,t){return{...U(e),...t??{},probe:e.probe,lastProbeAt:e.lastProbeAt??null}}function G(e,t){return t.flatMap(t=>{let n=typeof t.lastError==`string`?t.lastError.trim():``;return n?[{channel:e,accountId:t.accountId,kind:`runtime`,message:`Channel error: ${n}`}]:[]})}exports.DEFAULT_ACCOUNT_ID=e.Dt,exports.GROUP_POLICY_BLOCKED_LABEL=a.At,exports.MarkdownConfigSchema=t.bs,exports.PAIRING_APPROVED_MESSAGE=`✅ OpenClaw access approved. Send a message to start chatting.`,exports.ToolPolicySchema=t.la,exports.addWildcardAllowFrom=S,exports.applyAccountNameToChannelSection=x,exports.buildChannelConfigSchema=u,exports.buildChannelKeyCandidates=a.It,exports.buildProbeChannelStatusSummary=W,exports.buildSecretInputSchema=P,exports.buildSingleChannelSecretPromptState=E,exports.collectStatusIssuesFromLastError=G,exports.compileAllowlist=r.rt,exports.createAccountListHelpers=t.tc,exports.createActionGate=n.o,exports.createLoggerBackedRuntime=V,exports.createReplyPrefixOptions=r.Y,exports.createScopedPairingAccess=L,exports.createTypingCallbacks=r.J,exports.deleteAccountFromConfigSection=t.sc,exports.dispatchReplyFromConfigWithSettledDispatcher=B,exports.emptyPluginConfigSchema=I,exports.evaluateGroupRouteAccessForPolicy=a.Dt,exports.fetchWithSsrFGuard=o.t,exports.formatAllowlistMatchMeta=r.it,exports.formatDocsLink=r.H,exports.formatLocationText=i.ct,exports.formatPairingApproveHint=t.ic,exports.formatResolvedUnresolvedNote=R,exports.hasConfiguredSecretInput=t.js,exports.issuePairingChallenge=r.q,exports.jsonResult=n.l,exports.logInboundDrop=r.Q,exports.logTypingFailure=r.$,exports.mergeAllowFromEntries=C,exports.mergeAllowlist=r.tt,exports.normalizeAccountId=e.Ot,exports.normalizeResolvedSecretInputString=t.Ns,exports.normalizeSecretInputString=t.Ps,exports.normalizeStringEntries=e.ft,exports.promptChannelAccessConfig=N,exports.promptSingleChannelSecretInput=O,exports.readNumberParam=n.d,exports.readReactionParams=n.f,exports.readStoreAllowFromForDmPolicy=r.U,exports.readStringParam=n.h,exports.resolveAllowlistCandidates=r.at,exports.resolveAllowlistMatchByCandidates=r.ot,exports.resolveAllowlistProviderRuntimeGroupPolicy=a.jt,exports.resolveChannelEntryMatch=a.Rt,exports.resolveControlCommandGate=r.et,exports.resolveDefaultGroupPolicy=a.Mt,exports.resolveDmGroupAccessWithLists=r.G,exports.resolveInboundSessionEnvelopeContext=r.l,exports.resolveRuntimeEnv=H,exports.resolveSenderScopedGroupPolicy=a.kt,exports.runPluginCommandWithTimeout=z,exports.setAccountEnabledInConfigSection=t.cc,exports.setTopLevelChannelGroupPolicy=T,exports.summarizeMapping=r.nt,exports.toLocationContext=i.lt,exports.warnMissingProviderGroupPolicyFallbackOnce=a.Pt;
@@ -1,3 +1,3 @@
1
- import{Dt as e,Ot as t,ft as n}from"./paths-CXgWvWAM.js";import"./utils-BJtJR72k.js";import"./paths-rO4ehkyU.js";import{As as r,Cs as i,Ds as a,Os as o,Pi as s,Ss as c,Ts as l,Vi as u,Zs as d,bs as f,ca as p,ec as m,gs as h,ic as g,ks as _,pc as v,rc as ee,xs as y,ys as te}from"./model-auth-Cp2GSJwZ.js";import{d as ne,f as re,h as ie,l as ae,o as oe}from"./target-errors-BFOTHcjO.js";import{$ as b,G as x,H as S,J as C,Q as w,U as T,Y as E,at as D,et as O,it as k,l as A,n as j,nt as M,ot as N,q as P,rt as F,t as I,tt as L}from"./dispatch-DYRrW05S.js";import{ct as R,lt as z}from"./send-CMeGMLko.js";import{At as B,Dt as V,It as H,Mt as U,Pt as W,Rt as G,jt as K,kt as q}from"./send-B-GqqrNy.js";import"./proxy-env-m9eG3uZN.js";import"./github-copilot-token-C8j8_NjX.js";import"./send-_ZGBA2sz.js";import{t as se}from"./fetch-guard-Dm1nAvhl.js";import"./deliver-DRintVMn.js";import"./diagnostic-DbRdunVt.js";import"./pi-model-discovery-BsdlRK-w.js";import"./audio-transcription-runner-DZRGn6-f.js";import"./image-CNMuTe0Z.js";import"./api-key-rotation-BcDAQISn.js";import"./local-roots-DU8RuiRi.js";import"./proxy-fetch-YCVHz7Rl.js";import"./tokens-DgPZk2Uu.js";import"./commands-registry-CZcNTwNs.js";import"./fetch-B1GR6-u4.js";import"./ir-c1MS26Ci.js";import"./render-Djx15dPh.js";import"./channel-activity-BCsNxxNa.js";import"./tables-aSJP6Sef.js";import"./send-vtYROJNd.js";import"./fetch-J0IzopiJ.js";import"./skill-commands-D83BLBEG.js";import"./outbound-attachment-CLUVyl5e.js";import"./send-DIjQ2vB4.js";import"./query-expansion-Cb2vnF6y.js";import"./manager-CN4wiVFz.js";import{format as J}from"node:util";import{z as Y}from"zod";const ce=Y.union([Y.string(),Y.number()]);Y.array(ce).optional();function le(e){let t=e;return typeof t.toJSONSchema==`function`?{schema:t.toJSONSchema({target:`draft-07`,unrepresentable:`any`})}:{schema:{type:`object`,additionalProperties:!0}}}const X={openai:[`OPENAI_API_KEY`],anthropic:[`ANTHROPIC_API_KEY`],google:[`GEMINI_API_KEY`],minimax:[`MINIMAX_API_KEY`],"minimax-cn":[`MINIMAX_API_KEY`],moonshot:[`MOONSHOT_API_KEY`],"kimi-coding":[`KIMI_API_KEY`,`KIMICODE_API_KEY`],synthetic:[`SYNTHETIC_API_KEY`],venice:[`VENICE_API_KEY`],zai:[`ZAI_API_KEY`,`Z_AI_API_KEY`],xiaomi:[`XIAOMI_API_KEY`],openrouter:[`OPENROUTER_API_KEY`],"cloudflare-ai-gateway":[`CLOUDFLARE_AI_GATEWAY_API_KEY`],litellm:[`LITELLM_API_KEY`],"vercel-ai-gateway":[`AI_GATEWAY_API_KEY`],opencode:[`OPENCODE_API_KEY`,`OPENCODE_ZEN_API_KEY`],"opencode-go":[`OPENCODE_API_KEY`,`OPENCODE_ZEN_API_KEY`],together:[`TOGETHER_API_KEY`],huggingface:[`HUGGINGFACE_HUB_TOKEN`,`HF_TOKEN`],qianfan:[`QIANFAN_API_KEY`],xai:[`XAI_API_KEY`],mistral:[`MISTRAL_API_KEY`],kilocode:[`KILOCODE_API_KEY`],modelstudio:[`MODELSTUDIO_API_KEY`],volcengine:[`VOLCANO_ENGINE_API_KEY`],byteplus:[`BYTEPLUS_API_KEY`]},ue=[`VOYAGE_API_KEY`,`GROQ_API_KEY`,`DEEPGRAM_API_KEY`,`CEREBRAS_API_KEY`,`NVIDIA_API_KEY`,`COPILOT_GITHUB_TOKEN`,`GH_TOKEN`,`GITHUB_TOKEN`,`ANTHROPIC_OAUTH_TOKEN`,`CHUTES_OAUTH_TOKEN`,`CHUTES_API_KEY`,`QWEN_OAUTH_TOKEN`,`QWEN_PORTAL_API_KEY`,`MINIMAX_OAUTH_TOKEN`,`OLLAMA_API_KEY`,`VLLM_API_KEY`],de=[...new Set(Object.values(X).flatMap(e=>e))];[...new Set([...de,...ue])];function fe(e){return e instanceof Error&&typeof e.message==`string`&&e.message.trim()?e.message:String(e)}function pe(e){return X[e]?.find(e=>e.trim().length>0)}function me(e){return`/providers/${u(e)}/apiKey`}async function he(e){let t=e.preferredEnvVar??pe(e.provider)??``,n=me(e.provider),r=`env`;for(;;){let a=await e.prompter.select({message:e.copy?.sourceMessage??`Where is this API key stored?`,initialValue:r,options:[{value:`env`,label:`Environment variable`,hint:`Reference a variable from your runtime environment`},{value:`provider`,label:`Configured secret provider`,hint:`Use a configured file or exec secret provider`}]})===`provider`?`provider`:`env`;if(r=a,a===`env`){let n=await e.prompter.text({message:e.copy?.envVarMessage??`Environment variable name`,initialValue:t||void 0,placeholder:e.copy?.envVarPlaceholder??`OPENAI_API_KEY`,validate:t=>{let n=t.trim();if(!o(n))return e.copy?.envVarFormatError??`Use an env var name like "OPENAI_API_KEY" (uppercase letters, numbers, underscores).`;if(!process.env[n]?.trim())return e.copy?.envVarMissingError?.(n)??`Environment variable "${n}" is missing or empty in this session.`}}),r=String(n??``).trim(),a=r&&o(r)?r:t;if(!a)throw Error(`No valid environment variable name provided for provider "${e.provider}".`);let c={source:`env`,provider:i(e.config,`env`,{preferFirstProviderForSource:!0}),id:a},l=await s(c,{config:e.config,env:process.env});return await e.prompter.note(e.copy?.envValidatedMessage?.(a)??`Validated environment variable ${a}. OpenClaw will store a reference, not the key value.`,`Reference validated`),{ref:c,resolvedValue:l}}let l=Object.entries(e.config.secrets?.providers??{}).filter(([,e])=>e?.source===`file`||e?.source===`exec`);if(l.length===0){await e.prompter.note(e.copy?.noProvidersMessage??`No file/exec secret providers are configured yet. Add one under secrets.providers, or select Environment variable.`,`No providers configured`);continue}let u=i(e.config,`file`,{preferFirstProviderForSource:!0}),d=await e.prompter.select({message:`Select secret provider`,initialValue:l.find(([e])=>e===u)?.[0]??l[0]?.[0],options:l.map(([e,t])=>({value:e,label:e,hint:t?.source===`exec`?`Exec provider`:`File provider`}))}),p=e.config.secrets?.providers?.[d];if(!p||p.source!==`file`&&p.source!==`exec`){await e.prompter.note(`Provider "${d}" is not a file/exec provider.`,`Invalid provider`);continue}let m=p.source===`file`?`Secret id (JSON pointer for json mode, or 'value' for singleValue mode)`:`Secret id for the exec provider`,h=p.source===`file`?p.mode===`singleValue`?`value`:n:`${e.provider}/apiKey`,g=await e.prompter.text({message:m,initialValue:h,placeholder:p.source===`file`?`/providers/openai/apiKey`:`openai/api-key`,validate:e=>{let t=e.trim();if(!t)return`Secret id cannot be empty.`;if(p.source===`file`&&p.mode!==`singleValue`&&!c(t))return`Use an absolute JSON pointer like "/providers/openai/apiKey".`;if(p.source===`file`&&p.mode===`singleValue`&&t!==`value`)return`singleValue mode expects id "value".`;if(p.source===`exec`&&!y(t))return f()}}),_=String(g??``).trim()||h,v={source:p.source,provider:d,id:_};try{let t=await s(v,{config:e.config,env:process.env});return await e.prompter.note(e.copy?.providerValidatedMessage?.(d,_,p.source)??`Validated ${p.source} reference ${d}:${_}. OpenClaw will store a reference, not the key value.`,`Reference validated`),{ref:v,resolvedValue:t}}catch(t){await e.prompter.note([`Could not validate provider reference ${d}:${_}.`,fe(t),`Check your provider configuration and try again.`].join(`
1
+ import{Dt as e,Ot as t,ft as n}from"./paths-CXgWvWAM.js";import"./utils-BJtJR72k.js";import"./paths-rO4ehkyU.js";import{As as r,Cs as i,Ds as a,Os as o,Pi as s,Ss as c,Ts as l,Vi as u,Zs as d,bs as f,ca as p,ec as m,gs as h,ic as g,ks as _,pc as v,rc as ee,xs as y,ys as te}from"./model-auth-Cp2GSJwZ.js";import{d as ne,f as re,h as ie,l as ae,o as oe}from"./target-errors-BFOTHcjO.js";import{$ as b,G as x,H as S,J as C,Q as w,U as T,Y as E,at as D,et as O,it as k,l as A,n as j,nt as M,ot as N,q as P,rt as F,t as I,tt as L}from"./dispatch-B9FQyNfe.js";import{ct as R,lt as z}from"./send-CMeGMLko.js";import{At as B,Dt as V,It as H,Mt as U,Pt as W,Rt as G,jt as K,kt as q}from"./send-B-GqqrNy.js";import"./proxy-env-m9eG3uZN.js";import"./github-copilot-token-C8j8_NjX.js";import"./send-_ZGBA2sz.js";import{t as se}from"./fetch-guard-Dm1nAvhl.js";import"./deliver-DRintVMn.js";import"./diagnostic-DbRdunVt.js";import"./pi-model-discovery-BsdlRK-w.js";import"./audio-transcription-runner-DZRGn6-f.js";import"./image-CNMuTe0Z.js";import"./api-key-rotation-BcDAQISn.js";import"./local-roots-DU8RuiRi.js";import"./proxy-fetch-YCVHz7Rl.js";import"./tokens-DgPZk2Uu.js";import"./commands-registry-CZcNTwNs.js";import"./fetch-B1GR6-u4.js";import"./ir-c1MS26Ci.js";import"./render-Djx15dPh.js";import"./channel-activity-BCsNxxNa.js";import"./tables-aSJP6Sef.js";import"./send-vtYROJNd.js";import"./fetch-J0IzopiJ.js";import"./skill-commands-D83BLBEG.js";import"./outbound-attachment-CLUVyl5e.js";import"./send-DIjQ2vB4.js";import"./query-expansion-Cb2vnF6y.js";import"./manager-CN4wiVFz.js";import{format as J}from"node:util";import{z as Y}from"zod";const ce=Y.union([Y.string(),Y.number()]);Y.array(ce).optional();function le(e){let t=e;return typeof t.toJSONSchema==`function`?{schema:t.toJSONSchema({target:`draft-07`,unrepresentable:`any`})}:{schema:{type:`object`,additionalProperties:!0}}}const X={openai:[`OPENAI_API_KEY`],anthropic:[`ANTHROPIC_API_KEY`],google:[`GEMINI_API_KEY`],minimax:[`MINIMAX_API_KEY`],"minimax-cn":[`MINIMAX_API_KEY`],moonshot:[`MOONSHOT_API_KEY`],"kimi-coding":[`KIMI_API_KEY`,`KIMICODE_API_KEY`],synthetic:[`SYNTHETIC_API_KEY`],venice:[`VENICE_API_KEY`],zai:[`ZAI_API_KEY`,`Z_AI_API_KEY`],xiaomi:[`XIAOMI_API_KEY`],openrouter:[`OPENROUTER_API_KEY`],"cloudflare-ai-gateway":[`CLOUDFLARE_AI_GATEWAY_API_KEY`],litellm:[`LITELLM_API_KEY`],"vercel-ai-gateway":[`AI_GATEWAY_API_KEY`],opencode:[`OPENCODE_API_KEY`,`OPENCODE_ZEN_API_KEY`],"opencode-go":[`OPENCODE_API_KEY`,`OPENCODE_ZEN_API_KEY`],together:[`TOGETHER_API_KEY`],huggingface:[`HUGGINGFACE_HUB_TOKEN`,`HF_TOKEN`],qianfan:[`QIANFAN_API_KEY`],xai:[`XAI_API_KEY`],mistral:[`MISTRAL_API_KEY`],kilocode:[`KILOCODE_API_KEY`],modelstudio:[`MODELSTUDIO_API_KEY`],volcengine:[`VOLCANO_ENGINE_API_KEY`],byteplus:[`BYTEPLUS_API_KEY`]},ue=[`VOYAGE_API_KEY`,`GROQ_API_KEY`,`DEEPGRAM_API_KEY`,`CEREBRAS_API_KEY`,`NVIDIA_API_KEY`,`COPILOT_GITHUB_TOKEN`,`GH_TOKEN`,`GITHUB_TOKEN`,`ANTHROPIC_OAUTH_TOKEN`,`CHUTES_OAUTH_TOKEN`,`CHUTES_API_KEY`,`QWEN_OAUTH_TOKEN`,`QWEN_PORTAL_API_KEY`,`MINIMAX_OAUTH_TOKEN`,`OLLAMA_API_KEY`,`VLLM_API_KEY`],de=[...new Set(Object.values(X).flatMap(e=>e))];[...new Set([...de,...ue])];function fe(e){return e instanceof Error&&typeof e.message==`string`&&e.message.trim()?e.message:String(e)}function pe(e){return X[e]?.find(e=>e.trim().length>0)}function me(e){return`/providers/${u(e)}/apiKey`}async function he(e){let t=e.preferredEnvVar??pe(e.provider)??``,n=me(e.provider),r=`env`;for(;;){let a=await e.prompter.select({message:e.copy?.sourceMessage??`Where is this API key stored?`,initialValue:r,options:[{value:`env`,label:`Environment variable`,hint:`Reference a variable from your runtime environment`},{value:`provider`,label:`Configured secret provider`,hint:`Use a configured file or exec secret provider`}]})===`provider`?`provider`:`env`;if(r=a,a===`env`){let n=await e.prompter.text({message:e.copy?.envVarMessage??`Environment variable name`,initialValue:t||void 0,placeholder:e.copy?.envVarPlaceholder??`OPENAI_API_KEY`,validate:t=>{let n=t.trim();if(!o(n))return e.copy?.envVarFormatError??`Use an env var name like "OPENAI_API_KEY" (uppercase letters, numbers, underscores).`;if(!process.env[n]?.trim())return e.copy?.envVarMissingError?.(n)??`Environment variable "${n}" is missing or empty in this session.`}}),r=String(n??``).trim(),a=r&&o(r)?r:t;if(!a)throw Error(`No valid environment variable name provided for provider "${e.provider}".`);let c={source:`env`,provider:i(e.config,`env`,{preferFirstProviderForSource:!0}),id:a},l=await s(c,{config:e.config,env:process.env});return await e.prompter.note(e.copy?.envValidatedMessage?.(a)??`Validated environment variable ${a}. OpenClaw will store a reference, not the key value.`,`Reference validated`),{ref:c,resolvedValue:l}}let l=Object.entries(e.config.secrets?.providers??{}).filter(([,e])=>e?.source===`file`||e?.source===`exec`);if(l.length===0){await e.prompter.note(e.copy?.noProvidersMessage??`No file/exec secret providers are configured yet. Add one under secrets.providers, or select Environment variable.`,`No providers configured`);continue}let u=i(e.config,`file`,{preferFirstProviderForSource:!0}),d=await e.prompter.select({message:`Select secret provider`,initialValue:l.find(([e])=>e===u)?.[0]??l[0]?.[0],options:l.map(([e,t])=>({value:e,label:e,hint:t?.source===`exec`?`Exec provider`:`File provider`}))}),p=e.config.secrets?.providers?.[d];if(!p||p.source!==`file`&&p.source!==`exec`){await e.prompter.note(`Provider "${d}" is not a file/exec provider.`,`Invalid provider`);continue}let m=p.source===`file`?`Secret id (JSON pointer for json mode, or 'value' for singleValue mode)`:`Secret id for the exec provider`,h=p.source===`file`?p.mode===`singleValue`?`value`:n:`${e.provider}/apiKey`,g=await e.prompter.text({message:m,initialValue:h,placeholder:p.source===`file`?`/providers/openai/apiKey`:`openai/api-key`,validate:e=>{let t=e.trim();if(!t)return`Secret id cannot be empty.`;if(p.source===`file`&&p.mode!==`singleValue`&&!c(t))return`Use an absolute JSON pointer like "/providers/openai/apiKey".`;if(p.source===`file`&&p.mode===`singleValue`&&t!==`value`)return`singleValue mode expects id "value".`;if(p.source===`exec`&&!y(t))return f()}}),_=String(g??``).trim()||h,v={source:p.source,provider:d,id:_};try{let t=await s(v,{config:e.config,env:process.env});return await e.prompter.note(e.copy?.providerValidatedMessage?.(d,_,p.source)??`Validated ${p.source} reference ${d}:${_}. OpenClaw will store a reference, not the key value.`,`Reference validated`),{ref:v,resolvedValue:t}}catch(t){await e.prompter.note([`Could not validate provider reference ${d}:${_}.`,fe(t),`Check your provider configuration and try again.`].join(`
2
2
  `),`Reference check failed`)}}}async function ge(e){return e.explicitMode?e.explicitMode:typeof e.prompter.select==`function`&&await e.prompter.select({message:e.copy?.modeMessage??`How do you want to provide this API key?`,initialValue:`plaintext`,options:[{value:`plaintext`,label:e.copy?.plaintextLabel??`Paste API key now`,hint:e.copy?.plaintextHint??`Stores the key directly in OpenClaw config`},{value:`ref`,label:e.copy?.refLabel??`Use external secret provider`,hint:e.copy?.refHint??`Stores a reference to env or configured external secret providers`}]})===`ref`?`ref`:`plaintext`}function _e(e,t){let n=e.channels?.[t];return!!(n?.accounts&&Object.keys(n.accounts).length>0)}function ve(e){return e.alwaysUseAccounts||e.accountId!==`default`?!0:_e(e.cfg,e.channelKey)}function ye(e){let n=e.name?.trim();if(!n)return e.cfg;let r=t(e.accountId),i=e.cfg.channels?.[e.channelKey],a=typeof i==`object`&&i?i:void 0;if(!ve({cfg:e.cfg,channelKey:e.channelKey,accountId:r,alwaysUseAccounts:e.alwaysUseAccounts})&&r===`default`){let t=a??{};return{...e.cfg,channels:{...e.cfg.channels,[e.channelKey]:{...t,name:n}}}}let o=a?.accounts??{},s=o[r]??{},c=r===`default`?(({name:e,...t})=>t)(a??{}):a??{};return{...e.cfg,channels:{...e.cfg.channels,[e.channelKey]:{...c,accounts:{...o,[r]:{...s,name:n}}}}}}function be(e){let t=(e??[]).map(e=>String(e).trim()).filter(Boolean);return t.includes(`*`)||t.push(`*`),t}function xe(e,t){let n=[...e??[],...t].map(e=>String(e).trim()).filter(Boolean);return[...new Set(n)]}function Se(e){return e.split(/[\n,;]+/g).map(e=>e.trim()).filter(Boolean)}function Ce(e){let t=e.cfg.channels?.[e.channel]??{};return{...e.cfg,channels:{...e.cfg.channels,[e.channel]:{...t,...e.enabled?{enabled:!0}:{},groupPolicy:e.groupPolicy}}}}function we(e){return{accountConfigured:e.accountConfigured,hasConfigToken:e.hasConfigToken,canUseEnv:e.allowEnv&&!!e.envValue?.trim()&&!e.hasConfigToken}}async function Te(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 Ee(e){if(await ge({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 Te({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 he({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}}function De(e){return Se(String(e??``))}function Oe(e){return e.map(e=>e.trim()).filter(Boolean).join(`, `)}async function ke(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 Ae(e){let t=e.currentEntries&&e.currentEntries.length>0?Oe(e.currentEntries):void 0;return De(await e.prompter.text({message:`${e.label} allowlist (comma-separated)`,placeholder:e.placeholder,initialValue:t}))}async function je(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 ke({prompter:e.prompter,label:e.label,currentPolicy:e.currentPolicy,allowOpen:e.allowOpen,allowDisabled:e.allowDisabled});return r===`allowlist`?{policy:r,entries:await Ae({prompter:e.prompter,label:e.label,currentEntries:e.currentEntries,placeholder:e.placeholder})}:{policy:r,entries:[]}}const Me=`✅ OpenClaw access approved. Send a message to start chatting.`;function Ne(){let e=Y.string().regex(te,`Secret reference provider must match /^[a-z][a-z0-9_-]{0,63}$/ (example: "default").`);return Y.union([Y.string(),Y.discriminatedUnion(`source`,[Y.object({source:Y.literal(`env`),provider:e,id:Y.string().regex(l,`Env secret reference id must match /^[A-Z][A-Z0-9_]{0,127}$/ (example: "OPENAI_API_KEY").`)}),Y.object({source:Y.literal(`file`),provider:e,id:Y.string().refine(c,`File secret reference id must be an absolute JSON pointer (example: "/providers/openai/apiKey"), or "value" for singleValue mode.`)}),Y.object({source:Y.literal(`exec`),provider:e,id:Y.string().refine(y,f())})])])}function Z(e){return{success:!1,error:{issues:[{path:[],message:e}]}}}function Pe(){return{safeParse(e){return e===void 0?{success:!0,data:void 0}:!e||typeof e!=`object`||Array.isArray(e)?Z(`expected config object`):Object.keys(e).length>0?Z(`config must be empty`):{success:!0,data:e}},jsonSchema:{type:`object`,additionalProperties:!1,properties:{}}}}function Fe(e){let n=t(e.accountId);return{accountId:n,readAllowFromStore:()=>e.core.channel.pairing.readAllowFromStore({channel:e.channel,accountId:n}),readStoreForDmPolicy:(n,r)=>e.core.channel.pairing.readAllowFromStore({channel:n,accountId:t(r)}),upsertPairingRequest:t=>e.core.channel.pairing.upsertPairingRequest({channel:e.channel,accountId:n,...t})}}function Q(e){if(!(e.resolved.length===0&&e.unresolved.length===0))return[e.resolved.length>0?`Resolved: ${e.resolved.join(`, `)}`:void 0,e.unresolved.length>0?`Unresolved (kept as typed): ${e.unresolved.join(`, `)}`:void 0].filter(Boolean).join(`
3
3
  `)}async function Ie(e){let[t]=e.argv;if(!t)return{code:1,stdout:``,stderr:`command is required`};try{let t=await v(e.argv,{timeoutMs:e.timeoutMs,cwd:e.cwd,env:e.env}),n=t.termination===`timeout`||t.termination===`no-output-timeout`;return{code:t.code??1,stdout:t.stdout,stderr:n?t.stderr||`command timed out after ${e.timeoutMs}ms`:t.stderr}}catch(e){return{code:1,stdout:``,stderr:e instanceof Error?e.message:String(e)}}}async function Le(e){return await I({dispatcher:e.dispatcher,onSettled:e.onSettled,run:()=>j({ctx:e.ctxPayload,cfg:e.cfg,dispatcher:e.dispatcher,replyOptions:e.replyOptions})})}function $(e){return{log:(...t)=>{e.logger.info(J(...t))},error:(...t)=>{e.logger.error(J(...t))},exit:t=>{throw e.exitError?.(t)??Error(`exit ${t}`)}}}function Re(e){return e.runtime??$(e)}function ze(e){return{configured:e.configured??!1,running:e.running??!1,lastStartAt:e.lastStartAt??null,lastStopAt:e.lastStopAt??null,lastError:e.lastError??null}}function Be(e,t){return{...ze(e),...t??{},probe:e.probe,lastProbeAt:e.lastProbeAt??null}}function Ve(e,t){return t.flatMap(t=>{let n=typeof t.lastError==`string`?t.lastError.trim():``;return n?[{channel:e,accountId:t.accountId,kind:`runtime`,message:`Channel error: ${n}`}]:[]})}export{e as DEFAULT_ACCOUNT_ID,B as GROUP_POLICY_BLOCKED_LABEL,h as MarkdownConfigSchema,Me as PAIRING_APPROVED_MESSAGE,p as ToolPolicySchema,be as addWildcardAllowFrom,ye as applyAccountNameToChannelSection,le as buildChannelConfigSchema,H as buildChannelKeyCandidates,Be as buildProbeChannelStatusSummary,Ne as buildSecretInputSchema,we as buildSingleChannelSecretPromptState,Ve as collectStatusIssuesFromLastError,F as compileAllowlist,d as createAccountListHelpers,oe as createActionGate,$ as createLoggerBackedRuntime,E as createReplyPrefixOptions,Fe as createScopedPairingAccess,C as createTypingCallbacks,ee as deleteAccountFromConfigSection,Le as dispatchReplyFromConfigWithSettledDispatcher,Pe as emptyPluginConfigSchema,V as evaluateGroupRouteAccessForPolicy,se as fetchWithSsrFGuard,k as formatAllowlistMatchMeta,S as formatDocsLink,R as formatLocationText,m as formatPairingApproveHint,Q as formatResolvedUnresolvedNote,a as hasConfiguredSecretInput,P as issuePairingChallenge,ae as jsonResult,w as logInboundDrop,b as logTypingFailure,xe as mergeAllowFromEntries,L as mergeAllowlist,t as normalizeAccountId,_ as normalizeResolvedSecretInputString,r as normalizeSecretInputString,n as normalizeStringEntries,je as promptChannelAccessConfig,Ee as promptSingleChannelSecretInput,ne as readNumberParam,re as readReactionParams,T as readStoreAllowFromForDmPolicy,ie as readStringParam,D as resolveAllowlistCandidates,N as resolveAllowlistMatchByCandidates,K as resolveAllowlistProviderRuntimeGroupPolicy,G as resolveChannelEntryMatch,O as resolveControlCommandGate,U as resolveDefaultGroupPolicy,x as resolveDmGroupAccessWithLists,A as resolveInboundSessionEnvelopeContext,Re as resolveRuntimeEnv,q as resolveSenderScopedGroupPolicy,Ie as runPluginCommandWithTimeout,g as setAccountEnabledInConfigSection,Ce as setTopLevelChannelGroupPolicy,M as summarizeMapping,z as toLocationContext,W as warnMissingProviderGroupPolicyFallbackOnce};
@@ -1 +1 @@
1
- Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`./paths-BvlJvmRS.cjs`);const e=require(`./paths-Chp3zwtq.cjs`),t=require(`./logger-BlddiV_d.cjs`),n=require(`./model-auth-Lv74A-Si.cjs`);require(`./proxy-env-DWw9TnOj.cjs`),require(`./send-B4LTVhTd.cjs`);const r=require(`./send-B31Tjl_I.cjs`),i=require(`./dispatch-DAaOM5c1.cjs`),a=require(`./tokens-DtrljGtQ.cjs`),o=require(`./deliver-rACJj8E9.cjs`);require(`./github-copilot-token-DoHgkI2r.cjs`);const s=require(`./fetch-guard-DcAQBHbg.cjs`),c=require(`./send-X1b7Cj9U.cjs`);require(`./local-roots-ByrRvVBc.cjs`);const l=require(`./ir-Cl_S_VBR.cjs`);require(`./diagnostic-CdNZNyNv.cjs`),require(`./pi-model-discovery-DcUDwgMg.cjs`),require(`./audio-transcription-runner-D2IxJCfd.cjs`),require(`./image-CMiT6Fvk.cjs`),require(`./api-key-rotation-DKp72Rw4.cjs`),require(`./proxy-fetch-BaA3JYgW.cjs`),require(`./commands-registry-DviWu8J8.cjs`),require(`./fetch-CZewCAvu.cjs`),require(`./render-DxBO2Blp.cjs`),require(`./target-errors-DnZq9h4B.cjs`),require(`./channel-activity-CTmfXwYn.cjs`),require(`./tables-CuSMtUxt.cjs`),require(`./send-BGXPpAqy.cjs`),require(`./fetch-DUMEaqum.cjs`),require(`./skill-commands-B_xNpuH_.cjs`),require(`./outbound-attachment-CmQ0SNgK.cjs`),require(`./send-Bz2Loz_Q.cjs`),require(`./query-expansion-BYSjmpkV.cjs`),require(`./manager-DAmjm61U.cjs`);let u=require(`zod`);const d=u.z.union([u.z.string(),u.z.number()]);u.z.array(d).optional();function f(e){let t=e;return typeof t.toJSONSchema==`function`?{schema:t.toJSONSchema({target:`draft-07`,unrepresentable:`any`})}:{schema:{type:`object`,additionalProperties:!0}}}const p={openai:[`OPENAI_API_KEY`],anthropic:[`ANTHROPIC_API_KEY`],google:[`GEMINI_API_KEY`],minimax:[`MINIMAX_API_KEY`],"minimax-cn":[`MINIMAX_API_KEY`],moonshot:[`MOONSHOT_API_KEY`],"kimi-coding":[`KIMI_API_KEY`,`KIMICODE_API_KEY`],synthetic:[`SYNTHETIC_API_KEY`],venice:[`VENICE_API_KEY`],zai:[`ZAI_API_KEY`,`Z_AI_API_KEY`],xiaomi:[`XIAOMI_API_KEY`],openrouter:[`OPENROUTER_API_KEY`],"cloudflare-ai-gateway":[`CLOUDFLARE_AI_GATEWAY_API_KEY`],litellm:[`LITELLM_API_KEY`],"vercel-ai-gateway":[`AI_GATEWAY_API_KEY`],opencode:[`OPENCODE_API_KEY`,`OPENCODE_ZEN_API_KEY`],"opencode-go":[`OPENCODE_API_KEY`,`OPENCODE_ZEN_API_KEY`],together:[`TOGETHER_API_KEY`],huggingface:[`HUGGINGFACE_HUB_TOKEN`,`HF_TOKEN`],qianfan:[`QIANFAN_API_KEY`],xai:[`XAI_API_KEY`],mistral:[`MISTRAL_API_KEY`],kilocode:[`KILOCODE_API_KEY`],modelstudio:[`MODELSTUDIO_API_KEY`],volcengine:[`VOLCANO_ENGINE_API_KEY`],byteplus:[`BYTEPLUS_API_KEY`]},m=[`VOYAGE_API_KEY`,`GROQ_API_KEY`,`DEEPGRAM_API_KEY`,`CEREBRAS_API_KEY`,`NVIDIA_API_KEY`,`COPILOT_GITHUB_TOKEN`,`GH_TOKEN`,`GITHUB_TOKEN`,`ANTHROPIC_OAUTH_TOKEN`,`CHUTES_OAUTH_TOKEN`,`CHUTES_API_KEY`,`QWEN_OAUTH_TOKEN`,`QWEN_PORTAL_API_KEY`,`MINIMAX_OAUTH_TOKEN`,`OLLAMA_API_KEY`,`VLLM_API_KEY`],h=[...new Set(Object.values(p).flatMap(e=>e))];[...new Set([...h,...m])];function g(e){let t=(e??[]).map(e=>String(e).trim()).filter(Boolean);return t.includes(`*`)||t.push(`*`),t}function _(e,t){let n=[...e??[],...t].map(e=>String(e).trim()).filter(Boolean);return[...new Set(n)]}function v(e){return e.split(/[\n,;]+/g).map(e=>e.trim()).filter(Boolean)}function y(e){let t=e.cfg.channels?.[e.channel]??{};return{...e.cfg,channels:{...e.cfg.channels,[e.channel]:{...t,...e.enabled?{enabled:!0}:{},allowFrom:e.allowFrom}}}}function b(e){let t=e.cfg.channels?.[e.channel]??{},n=e.getAllowFrom?.(e.cfg)??t.allowFrom??void 0,r=e.dmPolicy===`open`?g(n):void 0;return{...e.cfg,channels:{...e.cfg.channels,[e.channel]:{...t,dmPolicy:e.dmPolicy,...r?{allowFrom:r}:{}}}}}function x(e){let t=e.cfg.channels?.[e.channel]??{};return{...e.cfg,channels:{...e.cfg.channels,[e.channel]:{...t,...e.enabled?{enabled:!0}:{},groupPolicy:e.groupPolicy}}}}function S(e){return v(String(e??``))}function C(e){return e.map(e=>e.trim()).filter(Boolean).join(`, `)}async function w(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 T(e){let t=e.currentEntries&&e.currentEntries.length>0?C(e.currentEntries):void 0;return S(await e.prompter.text({message:`${e.label} allowlist (comma-separated)`,placeholder:e.placeholder,initialValue:t}))}async function E(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 w({prompter:e.prompter,label:e.label,currentPolicy:e.currentPolicy,allowOpen:e.allowOpen,allowDisabled:e.allowDisabled});return r===`allowlist`?{policy:r,entries:await T({prompter:e.prompter,label:e.label,currentEntries:e.currentEntries,placeholder:e.placeholder})}:{policy:r,entries:[]}}function D(e){return{success:!1,error:{issues:[{path:[],message:e}]}}}function O(){return{safeParse(e){return e===void 0?{success:!0,data:void 0}:!e||typeof e!=`object`||Array.isArray(e)?D(`expected config object`):Object.keys(e).length>0?D(`config must be empty`):{success:!0,data:e}},jsonSchema:{type:`object`,additionalProperties:!1,properties:{}}}}async function k(e){let{server:t,abortSignal:n,onAbort:r}=e,i=Promise.resolve(),a=!1,o=()=>{a||(a=!0,i=Promise.resolve(r?.()).then(()=>void 0))},s=()=>{o()};n&&(n.aborted?o():n.addEventListener(`abort`,s,{once:!0})),await new Promise(e=>{t.once(`close`,()=>e())}),n&&n.removeEventListener(`abort`,s),await i}async function A(e){return await i.t({dispatcher:e.dispatcher,onSettled:e.onSettled,run:()=>i.n({ctx:e.ctxPayload,cfg:e.cfg,dispatcher:e.dispatcher,replyOptions:e.replyOptions})})}async function j(e,t={}){return await l._(e,{maxBytes:t.maxBytes,localRoots:t.mediaLocalRoots})}function M(t){let n=e.It(t.accountId);return{accountId:n,readAllowFromStore:()=>t.core.channel.pairing.readAllowFromStore({channel:t.channel,accountId:n}),readStoreForDmPolicy:(n,r)=>t.core.channel.pairing.readAllowFromStore({channel:n,accountId:e.It(r)}),upsertPairingRequest:e=>t.core.channel.pairing.upsertPairingRequest({channel:t.channel,accountId:n,...e})}}function N(e){let t=e.trim().toLowerCase();return t?t===`*`||t===`*.`?`*`:t.replace(/^\*\.?/,``).replace(/^\.+/,``).replace(/\.+$/,``):``}function P(e,t){if(t.includes(`*`))return!0;let n=e.toLowerCase();return t.some(e=>n===e||n.endsWith(`.${e}`))}function F(e,t){let n=e&&e.length>0?e:t;if(!n||n.length===0)return[];let r=n.map(N).filter(Boolean);return r.includes(`*`)?[`*`]:Array.from(new Set(r))}function I(e,t){try{let n=new URL(e);return n.protocol===`https:`?P(n.hostname,t):!1}catch{return!1}}function L(e){let t=F(e);if(t.length===0)return;let n=new Set;for(let e of t){if(e===`*`)return;n.add(e),n.add(`*.${e}`)}if(n.size!==0)return{hostnameAllowlist:Array.from(n)}}function R(e,t){return{accountId:e,running:!1,lastStartAt:null,lastStopAt:null,lastError:null,...t??{}}}function z(e){return{configured:e.configured??!1,running:e.running??!1,lastStartAt:e.lastStartAt??null,lastStopAt:e.lastStopAt??null,lastError:e.lastError??null}}function B(e,t){return{...z(e),...t??{},probe:e.probe,lastProbeAt:e.lastProbeAt??null}}function V(e){let{runtime:t,probe:n}=e;return{running:t?.running??!1,lastStartAt:t?.lastStartAt??null,lastStopAt:t?.lastStopAt??null,lastError:t?.lastError??null,probe:n}}exports.DEFAULT_ACCOUNT_ID=e.Ft,exports.DEFAULT_GROUP_HISTORY_LIMIT=i.rt,exports.DEFAULT_WEBHOOK_MAX_BODY_BYTES=i.W,exports.MSTeamsConfigSchema=n.Ai,exports.PAIRING_APPROVED_MESSAGE=`✅ OpenClaw access approved. Send a message to start chatting.`,exports.SILENT_REPLY_TOKEN=a.n,exports.addWildcardAllowFrom=g,exports.buildBaseChannelStatusSummary=z,exports.buildChannelConfigSchema=f,exports.buildChannelKeyCandidates=r.Lt,exports.buildHostnameAllowlistPolicyFromSuffixAllowlist=L,exports.buildMediaPayload=i.X,exports.buildPendingHistoryContextFromMap=i.at,exports.buildProbeChannelStatusSummary=B,exports.buildRuntimeAccountStatusSnapshot=V,exports.clearHistoryEntriesIfEnabled=i.ot,exports.createDefaultChannelRuntimeState=R,exports.createReplyPrefixOptions=i.q,exports.createScopedPairingAccess=M,exports.createTypingCallbacks=i.K,exports.detectMime=e.u,exports.dispatchReplyFromConfigWithSettledDispatcher=A,exports.emptyPluginConfigSchema=O,exports.evaluateSenderGroupAccessForPolicy=r.kt,exports.extensionForMime=e.d,exports.extractOriginalFilename=n.er,exports.fetchWithSsrFGuard=s.t,exports.formatAllowlistMatchMeta=i.ut,exports.formatDocsLink=i.R,exports.getFileExtension=e.f,exports.hasConfiguredSecretInput=n.oc,exports.isDangerousNameMatchingEnabled=i.G,exports.isHttpsUrlAllowedByHostnameSuffixAllowlist=I,exports.isPrivateIpAddress=n.xr,exports.isSilentReplyText=a.i,exports.keepHttpServerTaskAlive=k,exports.loadOutboundMediaFromUrl=j,exports.loadWebMedia=l._,exports.logInboundDrop=i.Q,exports.logTypingFailure=i.$,exports.mergeAllowFromEntries=_,exports.mergeAllowlist=i.tt,exports.normalizeChannelSlug=r.Rt,exports.normalizeHostnameSuffixAllowlist=F,exports.normalizeResolvedSecretInputString=n.sc,exports.normalizeSecretInputString=n.cc,exports.normalizeStringEntries=e.bt,exports.promptChannelAccessConfig=E,exports.readJsonFileWithFallback=c.nt,exports.readStoreAllowFromForDmPolicy=i.z,exports.recordPendingHistoryEntryIfEnabled=i.st,exports.resolveAllowlistMatchSimple=i.dt,exports.resolveAllowlistProviderRuntimeGroupPolicy=r.Mt,exports.resolveChannelEntryMatchWithFallback=r.zt,exports.resolveChannelMediaMaxBytes=o.P,exports.resolveControlCommandGate=i.et,exports.resolveDefaultGroupPolicy=r.Nt,exports.resolveDmGroupAccessWithLists=i.V,exports.resolveEffectiveAllowFromLists=i.H,exports.resolveInboundSessionEnvelopeContext=i.l,exports.resolveMentionGating=i.Z,exports.resolveNestedAllowlistDecision=r.Bt,exports.resolveSenderScopedGroupPolicy=r.At,exports.resolveToolsBySender=n.pc,exports.setTopLevelChannelAllowFrom=y,exports.setTopLevelChannelDmPolicyWithAllowFrom=b,exports.setTopLevelChannelGroupPolicy=x,exports.sleep=t.C,exports.splitOnboardingEntries=v,exports.summarizeMapping=i.nt,exports.withFileLock=n.Wa,exports.writeJsonFileAtomically=c.rt;
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`}),require(`./paths-BvlJvmRS.cjs`);const e=require(`./paths-Chp3zwtq.cjs`),t=require(`./logger-BlddiV_d.cjs`),n=require(`./model-auth-Lv74A-Si.cjs`);require(`./proxy-env-DWw9TnOj.cjs`),require(`./send-B4LTVhTd.cjs`);const r=require(`./send-B31Tjl_I.cjs`),i=require(`./dispatch-B8dzPpi1.cjs`),a=require(`./tokens-DtrljGtQ.cjs`),o=require(`./deliver-rACJj8E9.cjs`);require(`./github-copilot-token-DoHgkI2r.cjs`);const s=require(`./fetch-guard-DcAQBHbg.cjs`),c=require(`./send-X1b7Cj9U.cjs`);require(`./local-roots-ByrRvVBc.cjs`);const l=require(`./ir-Cl_S_VBR.cjs`);require(`./diagnostic-CdNZNyNv.cjs`),require(`./pi-model-discovery-DcUDwgMg.cjs`),require(`./audio-transcription-runner-D2IxJCfd.cjs`),require(`./image-CMiT6Fvk.cjs`),require(`./api-key-rotation-DKp72Rw4.cjs`),require(`./proxy-fetch-BaA3JYgW.cjs`),require(`./commands-registry-DviWu8J8.cjs`),require(`./fetch-CZewCAvu.cjs`),require(`./render-DxBO2Blp.cjs`),require(`./target-errors-DnZq9h4B.cjs`),require(`./channel-activity-CTmfXwYn.cjs`),require(`./tables-CuSMtUxt.cjs`),require(`./send-BGXPpAqy.cjs`),require(`./fetch-DUMEaqum.cjs`),require(`./skill-commands-B_xNpuH_.cjs`),require(`./outbound-attachment-CmQ0SNgK.cjs`),require(`./send-Bz2Loz_Q.cjs`),require(`./query-expansion-BYSjmpkV.cjs`),require(`./manager-DAmjm61U.cjs`);let u=require(`zod`);const d=u.z.union([u.z.string(),u.z.number()]);u.z.array(d).optional();function f(e){let t=e;return typeof t.toJSONSchema==`function`?{schema:t.toJSONSchema({target:`draft-07`,unrepresentable:`any`})}:{schema:{type:`object`,additionalProperties:!0}}}const p={openai:[`OPENAI_API_KEY`],anthropic:[`ANTHROPIC_API_KEY`],google:[`GEMINI_API_KEY`],minimax:[`MINIMAX_API_KEY`],"minimax-cn":[`MINIMAX_API_KEY`],moonshot:[`MOONSHOT_API_KEY`],"kimi-coding":[`KIMI_API_KEY`,`KIMICODE_API_KEY`],synthetic:[`SYNTHETIC_API_KEY`],venice:[`VENICE_API_KEY`],zai:[`ZAI_API_KEY`,`Z_AI_API_KEY`],xiaomi:[`XIAOMI_API_KEY`],openrouter:[`OPENROUTER_API_KEY`],"cloudflare-ai-gateway":[`CLOUDFLARE_AI_GATEWAY_API_KEY`],litellm:[`LITELLM_API_KEY`],"vercel-ai-gateway":[`AI_GATEWAY_API_KEY`],opencode:[`OPENCODE_API_KEY`,`OPENCODE_ZEN_API_KEY`],"opencode-go":[`OPENCODE_API_KEY`,`OPENCODE_ZEN_API_KEY`],together:[`TOGETHER_API_KEY`],huggingface:[`HUGGINGFACE_HUB_TOKEN`,`HF_TOKEN`],qianfan:[`QIANFAN_API_KEY`],xai:[`XAI_API_KEY`],mistral:[`MISTRAL_API_KEY`],kilocode:[`KILOCODE_API_KEY`],modelstudio:[`MODELSTUDIO_API_KEY`],volcengine:[`VOLCANO_ENGINE_API_KEY`],byteplus:[`BYTEPLUS_API_KEY`]},m=[`VOYAGE_API_KEY`,`GROQ_API_KEY`,`DEEPGRAM_API_KEY`,`CEREBRAS_API_KEY`,`NVIDIA_API_KEY`,`COPILOT_GITHUB_TOKEN`,`GH_TOKEN`,`GITHUB_TOKEN`,`ANTHROPIC_OAUTH_TOKEN`,`CHUTES_OAUTH_TOKEN`,`CHUTES_API_KEY`,`QWEN_OAUTH_TOKEN`,`QWEN_PORTAL_API_KEY`,`MINIMAX_OAUTH_TOKEN`,`OLLAMA_API_KEY`,`VLLM_API_KEY`],h=[...new Set(Object.values(p).flatMap(e=>e))];[...new Set([...h,...m])];function g(e){let t=(e??[]).map(e=>String(e).trim()).filter(Boolean);return t.includes(`*`)||t.push(`*`),t}function _(e,t){let n=[...e??[],...t].map(e=>String(e).trim()).filter(Boolean);return[...new Set(n)]}function v(e){return e.split(/[\n,;]+/g).map(e=>e.trim()).filter(Boolean)}function y(e){let t=e.cfg.channels?.[e.channel]??{};return{...e.cfg,channels:{...e.cfg.channels,[e.channel]:{...t,...e.enabled?{enabled:!0}:{},allowFrom:e.allowFrom}}}}function b(e){let t=e.cfg.channels?.[e.channel]??{},n=e.getAllowFrom?.(e.cfg)??t.allowFrom??void 0,r=e.dmPolicy===`open`?g(n):void 0;return{...e.cfg,channels:{...e.cfg.channels,[e.channel]:{...t,dmPolicy:e.dmPolicy,...r?{allowFrom:r}:{}}}}}function x(e){let t=e.cfg.channels?.[e.channel]??{};return{...e.cfg,channels:{...e.cfg.channels,[e.channel]:{...t,...e.enabled?{enabled:!0}:{},groupPolicy:e.groupPolicy}}}}function S(e){return v(String(e??``))}function C(e){return e.map(e=>e.trim()).filter(Boolean).join(`, `)}async function w(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 T(e){let t=e.currentEntries&&e.currentEntries.length>0?C(e.currentEntries):void 0;return S(await e.prompter.text({message:`${e.label} allowlist (comma-separated)`,placeholder:e.placeholder,initialValue:t}))}async function E(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 w({prompter:e.prompter,label:e.label,currentPolicy:e.currentPolicy,allowOpen:e.allowOpen,allowDisabled:e.allowDisabled});return r===`allowlist`?{policy:r,entries:await T({prompter:e.prompter,label:e.label,currentEntries:e.currentEntries,placeholder:e.placeholder})}:{policy:r,entries:[]}}function D(e){return{success:!1,error:{issues:[{path:[],message:e}]}}}function O(){return{safeParse(e){return e===void 0?{success:!0,data:void 0}:!e||typeof e!=`object`||Array.isArray(e)?D(`expected config object`):Object.keys(e).length>0?D(`config must be empty`):{success:!0,data:e}},jsonSchema:{type:`object`,additionalProperties:!1,properties:{}}}}async function k(e){let{server:t,abortSignal:n,onAbort:r}=e,i=Promise.resolve(),a=!1,o=()=>{a||(a=!0,i=Promise.resolve(r?.()).then(()=>void 0))},s=()=>{o()};n&&(n.aborted?o():n.addEventListener(`abort`,s,{once:!0})),await new Promise(e=>{t.once(`close`,()=>e())}),n&&n.removeEventListener(`abort`,s),await i}async function A(e){return await i.t({dispatcher:e.dispatcher,onSettled:e.onSettled,run:()=>i.n({ctx:e.ctxPayload,cfg:e.cfg,dispatcher:e.dispatcher,replyOptions:e.replyOptions})})}async function j(e,t={}){return await l._(e,{maxBytes:t.maxBytes,localRoots:t.mediaLocalRoots})}function M(t){let n=e.It(t.accountId);return{accountId:n,readAllowFromStore:()=>t.core.channel.pairing.readAllowFromStore({channel:t.channel,accountId:n}),readStoreForDmPolicy:(n,r)=>t.core.channel.pairing.readAllowFromStore({channel:n,accountId:e.It(r)}),upsertPairingRequest:e=>t.core.channel.pairing.upsertPairingRequest({channel:t.channel,accountId:n,...e})}}function N(e){let t=e.trim().toLowerCase();return t?t===`*`||t===`*.`?`*`:t.replace(/^\*\.?/,``).replace(/^\.+/,``).replace(/\.+$/,``):``}function P(e,t){if(t.includes(`*`))return!0;let n=e.toLowerCase();return t.some(e=>n===e||n.endsWith(`.${e}`))}function F(e,t){let n=e&&e.length>0?e:t;if(!n||n.length===0)return[];let r=n.map(N).filter(Boolean);return r.includes(`*`)?[`*`]:Array.from(new Set(r))}function I(e,t){try{let n=new URL(e);return n.protocol===`https:`?P(n.hostname,t):!1}catch{return!1}}function L(e){let t=F(e);if(t.length===0)return;let n=new Set;for(let e of t){if(e===`*`)return;n.add(e),n.add(`*.${e}`)}if(n.size!==0)return{hostnameAllowlist:Array.from(n)}}function R(e,t){return{accountId:e,running:!1,lastStartAt:null,lastStopAt:null,lastError:null,...t??{}}}function z(e){return{configured:e.configured??!1,running:e.running??!1,lastStartAt:e.lastStartAt??null,lastStopAt:e.lastStopAt??null,lastError:e.lastError??null}}function B(e,t){return{...z(e),...t??{},probe:e.probe,lastProbeAt:e.lastProbeAt??null}}function V(e){let{runtime:t,probe:n}=e;return{running:t?.running??!1,lastStartAt:t?.lastStartAt??null,lastStopAt:t?.lastStopAt??null,lastError:t?.lastError??null,probe:n}}exports.DEFAULT_ACCOUNT_ID=e.Ft,exports.DEFAULT_GROUP_HISTORY_LIMIT=i.rt,exports.DEFAULT_WEBHOOK_MAX_BODY_BYTES=i.W,exports.MSTeamsConfigSchema=n.Ai,exports.PAIRING_APPROVED_MESSAGE=`✅ OpenClaw access approved. Send a message to start chatting.`,exports.SILENT_REPLY_TOKEN=a.n,exports.addWildcardAllowFrom=g,exports.buildBaseChannelStatusSummary=z,exports.buildChannelConfigSchema=f,exports.buildChannelKeyCandidates=r.Lt,exports.buildHostnameAllowlistPolicyFromSuffixAllowlist=L,exports.buildMediaPayload=i.X,exports.buildPendingHistoryContextFromMap=i.at,exports.buildProbeChannelStatusSummary=B,exports.buildRuntimeAccountStatusSnapshot=V,exports.clearHistoryEntriesIfEnabled=i.ot,exports.createDefaultChannelRuntimeState=R,exports.createReplyPrefixOptions=i.q,exports.createScopedPairingAccess=M,exports.createTypingCallbacks=i.K,exports.detectMime=e.u,exports.dispatchReplyFromConfigWithSettledDispatcher=A,exports.emptyPluginConfigSchema=O,exports.evaluateSenderGroupAccessForPolicy=r.kt,exports.extensionForMime=e.d,exports.extractOriginalFilename=n.er,exports.fetchWithSsrFGuard=s.t,exports.formatAllowlistMatchMeta=i.ut,exports.formatDocsLink=i.R,exports.getFileExtension=e.f,exports.hasConfiguredSecretInput=n.oc,exports.isDangerousNameMatchingEnabled=i.G,exports.isHttpsUrlAllowedByHostnameSuffixAllowlist=I,exports.isPrivateIpAddress=n.xr,exports.isSilentReplyText=a.i,exports.keepHttpServerTaskAlive=k,exports.loadOutboundMediaFromUrl=j,exports.loadWebMedia=l._,exports.logInboundDrop=i.Q,exports.logTypingFailure=i.$,exports.mergeAllowFromEntries=_,exports.mergeAllowlist=i.tt,exports.normalizeChannelSlug=r.Rt,exports.normalizeHostnameSuffixAllowlist=F,exports.normalizeResolvedSecretInputString=n.sc,exports.normalizeSecretInputString=n.cc,exports.normalizeStringEntries=e.bt,exports.promptChannelAccessConfig=E,exports.readJsonFileWithFallback=c.nt,exports.readStoreAllowFromForDmPolicy=i.z,exports.recordPendingHistoryEntryIfEnabled=i.st,exports.resolveAllowlistMatchSimple=i.dt,exports.resolveAllowlistProviderRuntimeGroupPolicy=r.Mt,exports.resolveChannelEntryMatchWithFallback=r.zt,exports.resolveChannelMediaMaxBytes=o.P,exports.resolveControlCommandGate=i.et,exports.resolveDefaultGroupPolicy=r.Nt,exports.resolveDmGroupAccessWithLists=i.V,exports.resolveEffectiveAllowFromLists=i.H,exports.resolveInboundSessionEnvelopeContext=i.l,exports.resolveMentionGating=i.Z,exports.resolveNestedAllowlistDecision=r.Bt,exports.resolveSenderScopedGroupPolicy=r.At,exports.resolveToolsBySender=n.pc,exports.setTopLevelChannelAllowFrom=y,exports.setTopLevelChannelDmPolicyWithAllowFrom=b,exports.setTopLevelChannelGroupPolicy=x,exports.sleep=t.C,exports.splitOnboardingEntries=v,exports.summarizeMapping=i.nt,exports.withFileLock=n.Wa,exports.writeJsonFileAtomically=c.rt;
@@ -1 +1 @@
1
- import{Ft as e,It as t,bt as n,d as r,f as i,u as a}from"./paths-piJASC5k.js";import"./paths-BpQOWYiT.js";import{C as o}from"./logger-DwWqfo66.js";import{$n as s,Ba as c,br as l,ic as ee,ki as te,lc as ne,nc as re,rc as ie}from"./model-auth-RI6NYvTO.js";import"./proxy-env-DGzNnnJh.js";import"./send-Cdx_KGYb.js";import{At as ae,Bt as u,Lt as d,Mt as f,Nt as p,Rt as m,kt as h,zt as g}from"./send-DQlKz6Bj.js";import{$ as _,G as v,H as y,K as b,Q as x,R as S,V as C,W as w,X as T,Z as E,at as D,dt as O,et as k,l as A,n as j,nt as M,ot as N,q as P,rt as F,st as I,t as L,tt as R,ut as z,z as B}from"./dispatch-BaBcLOry.js";import{i as V,n as H}from"./tokens-BPc1fcZ3.js";import{P as U}from"./deliver-BLMe2eBS.js";import"./github-copilot-token-Bt4PduRB.js";import{t as W}from"./fetch-guard-ACKeLHgB.js";import{nt as G,rt as oe}from"./send-BW3UECzm.js";import"./local-roots-DTC7BJct.js";import{_ as K}from"./ir-DqBwrJJd.js";import"./diagnostic-zCrcFAbJ.js";import"./pi-model-discovery-BZZVGcJl.js";import"./audio-transcription-runner-Dc-WF6zu.js";import"./image-Dk2gzO1U.js";import"./api-key-rotation-C7_ooC3N.js";import"./proxy-fetch-Del551nu.js";import"./commands-registry-D734s8r7.js";import"./fetch-B1GR6-u4.js";import"./render-DhTJXP1U.js";import"./target-errors--anbEDnm.js";import"./channel-activity-BXffAklf.js";import"./tables-BXY1ms0X.js";import"./send-DTUW-YBy.js";import"./fetch-B27H-XCf.js";import"./skill-commands-BbAfKA1R.js";import"./outbound-attachment-B_OTB3A8.js";import"./send-wk_Y38Eq.js";import"./query-expansion-r_iXkNzt.js";import"./manager-EO7deQzm.js";import{z as q}from"zod";const se=q.union([q.string(),q.number()]);q.array(se).optional();function ce(e){let t=e;return typeof t.toJSONSchema==`function`?{schema:t.toJSONSchema({target:`draft-07`,unrepresentable:`any`})}:{schema:{type:`object`,additionalProperties:!0}}}const le={openai:[`OPENAI_API_KEY`],anthropic:[`ANTHROPIC_API_KEY`],google:[`GEMINI_API_KEY`],minimax:[`MINIMAX_API_KEY`],"minimax-cn":[`MINIMAX_API_KEY`],moonshot:[`MOONSHOT_API_KEY`],"kimi-coding":[`KIMI_API_KEY`,`KIMICODE_API_KEY`],synthetic:[`SYNTHETIC_API_KEY`],venice:[`VENICE_API_KEY`],zai:[`ZAI_API_KEY`,`Z_AI_API_KEY`],xiaomi:[`XIAOMI_API_KEY`],openrouter:[`OPENROUTER_API_KEY`],"cloudflare-ai-gateway":[`CLOUDFLARE_AI_GATEWAY_API_KEY`],litellm:[`LITELLM_API_KEY`],"vercel-ai-gateway":[`AI_GATEWAY_API_KEY`],opencode:[`OPENCODE_API_KEY`,`OPENCODE_ZEN_API_KEY`],"opencode-go":[`OPENCODE_API_KEY`,`OPENCODE_ZEN_API_KEY`],together:[`TOGETHER_API_KEY`],huggingface:[`HUGGINGFACE_HUB_TOKEN`,`HF_TOKEN`],qianfan:[`QIANFAN_API_KEY`],xai:[`XAI_API_KEY`],mistral:[`MISTRAL_API_KEY`],kilocode:[`KILOCODE_API_KEY`],modelstudio:[`MODELSTUDIO_API_KEY`],volcengine:[`VOLCANO_ENGINE_API_KEY`],byteplus:[`BYTEPLUS_API_KEY`]},ue=[`VOYAGE_API_KEY`,`GROQ_API_KEY`,`DEEPGRAM_API_KEY`,`CEREBRAS_API_KEY`,`NVIDIA_API_KEY`,`COPILOT_GITHUB_TOKEN`,`GH_TOKEN`,`GITHUB_TOKEN`,`ANTHROPIC_OAUTH_TOKEN`,`CHUTES_OAUTH_TOKEN`,`CHUTES_API_KEY`,`QWEN_OAUTH_TOKEN`,`QWEN_PORTAL_API_KEY`,`MINIMAX_OAUTH_TOKEN`,`OLLAMA_API_KEY`,`VLLM_API_KEY`],de=[...new Set(Object.values(le).flatMap(e=>e))];[...new Set([...de,...ue])];function J(e){let t=(e??[]).map(e=>String(e).trim()).filter(Boolean);return t.includes(`*`)||t.push(`*`),t}function fe(e,t){let n=[...e??[],...t].map(e=>String(e).trim()).filter(Boolean);return[...new Set(n)]}function Y(e){return e.split(/[\n,;]+/g).map(e=>e.trim()).filter(Boolean)}function pe(e){let t=e.cfg.channels?.[e.channel]??{};return{...e.cfg,channels:{...e.cfg.channels,[e.channel]:{...t,...e.enabled?{enabled:!0}:{},allowFrom:e.allowFrom}}}}function me(e){let t=e.cfg.channels?.[e.channel]??{},n=e.getAllowFrom?.(e.cfg)??t.allowFrom??void 0,r=e.dmPolicy===`open`?J(n):void 0;return{...e.cfg,channels:{...e.cfg.channels,[e.channel]:{...t,dmPolicy:e.dmPolicy,...r?{allowFrom:r}:{}}}}}function he(e){let t=e.cfg.channels?.[e.channel]??{};return{...e.cfg,channels:{...e.cfg.channels,[e.channel]:{...t,...e.enabled?{enabled:!0}:{},groupPolicy:e.groupPolicy}}}}function ge(e){return Y(String(e??``))}function _e(e){return e.map(e=>e.trim()).filter(Boolean).join(`, `)}async function ve(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 ye(e){let t=e.currentEntries&&e.currentEntries.length>0?_e(e.currentEntries):void 0;return ge(await e.prompter.text({message:`${e.label} allowlist (comma-separated)`,placeholder:e.placeholder,initialValue:t}))}async function be(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 ve({prompter:e.prompter,label:e.label,currentPolicy:e.currentPolicy,allowOpen:e.allowOpen,allowDisabled:e.allowDisabled});return r===`allowlist`?{policy:r,entries:await ye({prompter:e.prompter,label:e.label,currentEntries:e.currentEntries,placeholder:e.placeholder})}:{policy:r,entries:[]}}const xe=`✅ OpenClaw access approved. Send a message to start chatting.`;function X(e){return{success:!1,error:{issues:[{path:[],message:e}]}}}function Se(){return{safeParse(e){return e===void 0?{success:!0,data:void 0}:!e||typeof e!=`object`||Array.isArray(e)?X(`expected config object`):Object.keys(e).length>0?X(`config must be empty`):{success:!0,data:e}},jsonSchema:{type:`object`,additionalProperties:!1,properties:{}}}}async function Z(e){let{server:t,abortSignal:n,onAbort:r}=e,i=Promise.resolve(),a=!1,o=()=>{a||(a=!0,i=Promise.resolve(r?.()).then(()=>void 0))},s=()=>{o()};n&&(n.aborted?o():n.addEventListener(`abort`,s,{once:!0})),await new Promise(e=>{t.once(`close`,()=>e())}),n&&n.removeEventListener(`abort`,s),await i}async function Ce(e){return await L({dispatcher:e.dispatcher,onSettled:e.onSettled,run:()=>j({ctx:e.ctxPayload,cfg:e.cfg,dispatcher:e.dispatcher,replyOptions:e.replyOptions})})}async function we(e,t={}){return await K(e,{maxBytes:t.maxBytes,localRoots:t.mediaLocalRoots})}function Te(e){let n=t(e.accountId);return{accountId:n,readAllowFromStore:()=>e.core.channel.pairing.readAllowFromStore({channel:e.channel,accountId:n}),readStoreForDmPolicy:(n,r)=>e.core.channel.pairing.readAllowFromStore({channel:n,accountId:t(r)}),upsertPairingRequest:t=>e.core.channel.pairing.upsertPairingRequest({channel:e.channel,accountId:n,...t})}}function Ee(e){let t=e.trim().toLowerCase();return t?t===`*`||t===`*.`?`*`:t.replace(/^\*\.?/,``).replace(/^\.+/,``).replace(/\.+$/,``):``}function De(e,t){if(t.includes(`*`))return!0;let n=e.toLowerCase();return t.some(e=>n===e||n.endsWith(`.${e}`))}function Q(e,t){let n=e&&e.length>0?e:t;if(!n||n.length===0)return[];let r=n.map(Ee).filter(Boolean);return r.includes(`*`)?[`*`]:Array.from(new Set(r))}function Oe(e,t){try{let n=new URL(e);return n.protocol===`https:`?De(n.hostname,t):!1}catch{return!1}}function ke(e){let t=Q(e);if(t.length===0)return;let n=new Set;for(let e of t){if(e===`*`)return;n.add(e),n.add(`*.${e}`)}if(n.size!==0)return{hostnameAllowlist:Array.from(n)}}function Ae(e,t){return{accountId:e,running:!1,lastStartAt:null,lastStopAt:null,lastError:null,...t??{}}}function $(e){return{configured:e.configured??!1,running:e.running??!1,lastStartAt:e.lastStartAt??null,lastStopAt:e.lastStopAt??null,lastError:e.lastError??null}}function je(e,t){return{...$(e),...t??{},probe:e.probe,lastProbeAt:e.lastProbeAt??null}}function Me(e){let{runtime:t,probe:n}=e;return{running:t?.running??!1,lastStartAt:t?.lastStartAt??null,lastStopAt:t?.lastStopAt??null,lastError:t?.lastError??null,probe:n}}export{e as DEFAULT_ACCOUNT_ID,F as DEFAULT_GROUP_HISTORY_LIMIT,w as DEFAULT_WEBHOOK_MAX_BODY_BYTES,te as MSTeamsConfigSchema,xe as PAIRING_APPROVED_MESSAGE,H as SILENT_REPLY_TOKEN,J as addWildcardAllowFrom,$ as buildBaseChannelStatusSummary,ce as buildChannelConfigSchema,d as buildChannelKeyCandidates,ke as buildHostnameAllowlistPolicyFromSuffixAllowlist,T as buildMediaPayload,D as buildPendingHistoryContextFromMap,je as buildProbeChannelStatusSummary,Me as buildRuntimeAccountStatusSnapshot,N as clearHistoryEntriesIfEnabled,Ae as createDefaultChannelRuntimeState,P as createReplyPrefixOptions,Te as createScopedPairingAccess,b as createTypingCallbacks,a as detectMime,Ce as dispatchReplyFromConfigWithSettledDispatcher,Se as emptyPluginConfigSchema,h as evaluateSenderGroupAccessForPolicy,r as extensionForMime,s as extractOriginalFilename,W as fetchWithSsrFGuard,z as formatAllowlistMatchMeta,S as formatDocsLink,i as getFileExtension,re as hasConfiguredSecretInput,v as isDangerousNameMatchingEnabled,Oe as isHttpsUrlAllowedByHostnameSuffixAllowlist,l as isPrivateIpAddress,V as isSilentReplyText,Z as keepHttpServerTaskAlive,we as loadOutboundMediaFromUrl,K as loadWebMedia,x as logInboundDrop,_ as logTypingFailure,fe as mergeAllowFromEntries,R as mergeAllowlist,m as normalizeChannelSlug,Q as normalizeHostnameSuffixAllowlist,ie as normalizeResolvedSecretInputString,ee as normalizeSecretInputString,n as normalizeStringEntries,be as promptChannelAccessConfig,G as readJsonFileWithFallback,B as readStoreAllowFromForDmPolicy,I as recordPendingHistoryEntryIfEnabled,O as resolveAllowlistMatchSimple,f as resolveAllowlistProviderRuntimeGroupPolicy,g as resolveChannelEntryMatchWithFallback,U as resolveChannelMediaMaxBytes,k as resolveControlCommandGate,p as resolveDefaultGroupPolicy,C as resolveDmGroupAccessWithLists,y as resolveEffectiveAllowFromLists,A as resolveInboundSessionEnvelopeContext,E as resolveMentionGating,u as resolveNestedAllowlistDecision,ae as resolveSenderScopedGroupPolicy,ne as resolveToolsBySender,pe as setTopLevelChannelAllowFrom,me as setTopLevelChannelDmPolicyWithAllowFrom,he as setTopLevelChannelGroupPolicy,o as sleep,Y as splitOnboardingEntries,M as summarizeMapping,c as withFileLock,oe as writeJsonFileAtomically};
1
+ import{Ft as e,It as t,bt as n,d as r,f as i,u as a}from"./paths-piJASC5k.js";import"./paths-BpQOWYiT.js";import{C as o}from"./logger-DwWqfo66.js";import{$n as s,Ba as c,br as l,ic as ee,ki as te,lc as ne,nc as re,rc as ie}from"./model-auth-RI6NYvTO.js";import"./proxy-env-DGzNnnJh.js";import"./send-Cdx_KGYb.js";import{At as ae,Bt as u,Lt as d,Mt as f,Nt as p,Rt as m,kt as h,zt as g}from"./send-DQlKz6Bj.js";import{$ as _,G as v,H as y,K as b,Q as x,R as S,V as C,W as w,X as T,Z as E,at as D,dt as O,et as k,l as A,n as j,nt as M,ot as N,q as P,rt as F,st as I,t as L,tt as R,ut as z,z as B}from"./dispatch-DafB1x1O.js";import{i as V,n as H}from"./tokens-BPc1fcZ3.js";import{P as U}from"./deliver-BLMe2eBS.js";import"./github-copilot-token-Bt4PduRB.js";import{t as W}from"./fetch-guard-ACKeLHgB.js";import{nt as G,rt as oe}from"./send-BW3UECzm.js";import"./local-roots-DTC7BJct.js";import{_ as K}from"./ir-DqBwrJJd.js";import"./diagnostic-zCrcFAbJ.js";import"./pi-model-discovery-BZZVGcJl.js";import"./audio-transcription-runner-Dc-WF6zu.js";import"./image-Dk2gzO1U.js";import"./api-key-rotation-C7_ooC3N.js";import"./proxy-fetch-Del551nu.js";import"./commands-registry-D734s8r7.js";import"./fetch-B1GR6-u4.js";import"./render-DhTJXP1U.js";import"./target-errors--anbEDnm.js";import"./channel-activity-BXffAklf.js";import"./tables-BXY1ms0X.js";import"./send-DTUW-YBy.js";import"./fetch-B27H-XCf.js";import"./skill-commands-BbAfKA1R.js";import"./outbound-attachment-B_OTB3A8.js";import"./send-wk_Y38Eq.js";import"./query-expansion-r_iXkNzt.js";import"./manager-EO7deQzm.js";import{z as q}from"zod";const se=q.union([q.string(),q.number()]);q.array(se).optional();function ce(e){let t=e;return typeof t.toJSONSchema==`function`?{schema:t.toJSONSchema({target:`draft-07`,unrepresentable:`any`})}:{schema:{type:`object`,additionalProperties:!0}}}const le={openai:[`OPENAI_API_KEY`],anthropic:[`ANTHROPIC_API_KEY`],google:[`GEMINI_API_KEY`],minimax:[`MINIMAX_API_KEY`],"minimax-cn":[`MINIMAX_API_KEY`],moonshot:[`MOONSHOT_API_KEY`],"kimi-coding":[`KIMI_API_KEY`,`KIMICODE_API_KEY`],synthetic:[`SYNTHETIC_API_KEY`],venice:[`VENICE_API_KEY`],zai:[`ZAI_API_KEY`,`Z_AI_API_KEY`],xiaomi:[`XIAOMI_API_KEY`],openrouter:[`OPENROUTER_API_KEY`],"cloudflare-ai-gateway":[`CLOUDFLARE_AI_GATEWAY_API_KEY`],litellm:[`LITELLM_API_KEY`],"vercel-ai-gateway":[`AI_GATEWAY_API_KEY`],opencode:[`OPENCODE_API_KEY`,`OPENCODE_ZEN_API_KEY`],"opencode-go":[`OPENCODE_API_KEY`,`OPENCODE_ZEN_API_KEY`],together:[`TOGETHER_API_KEY`],huggingface:[`HUGGINGFACE_HUB_TOKEN`,`HF_TOKEN`],qianfan:[`QIANFAN_API_KEY`],xai:[`XAI_API_KEY`],mistral:[`MISTRAL_API_KEY`],kilocode:[`KILOCODE_API_KEY`],modelstudio:[`MODELSTUDIO_API_KEY`],volcengine:[`VOLCANO_ENGINE_API_KEY`],byteplus:[`BYTEPLUS_API_KEY`]},ue=[`VOYAGE_API_KEY`,`GROQ_API_KEY`,`DEEPGRAM_API_KEY`,`CEREBRAS_API_KEY`,`NVIDIA_API_KEY`,`COPILOT_GITHUB_TOKEN`,`GH_TOKEN`,`GITHUB_TOKEN`,`ANTHROPIC_OAUTH_TOKEN`,`CHUTES_OAUTH_TOKEN`,`CHUTES_API_KEY`,`QWEN_OAUTH_TOKEN`,`QWEN_PORTAL_API_KEY`,`MINIMAX_OAUTH_TOKEN`,`OLLAMA_API_KEY`,`VLLM_API_KEY`],de=[...new Set(Object.values(le).flatMap(e=>e))];[...new Set([...de,...ue])];function J(e){let t=(e??[]).map(e=>String(e).trim()).filter(Boolean);return t.includes(`*`)||t.push(`*`),t}function fe(e,t){let n=[...e??[],...t].map(e=>String(e).trim()).filter(Boolean);return[...new Set(n)]}function Y(e){return e.split(/[\n,;]+/g).map(e=>e.trim()).filter(Boolean)}function pe(e){let t=e.cfg.channels?.[e.channel]??{};return{...e.cfg,channels:{...e.cfg.channels,[e.channel]:{...t,...e.enabled?{enabled:!0}:{},allowFrom:e.allowFrom}}}}function me(e){let t=e.cfg.channels?.[e.channel]??{},n=e.getAllowFrom?.(e.cfg)??t.allowFrom??void 0,r=e.dmPolicy===`open`?J(n):void 0;return{...e.cfg,channels:{...e.cfg.channels,[e.channel]:{...t,dmPolicy:e.dmPolicy,...r?{allowFrom:r}:{}}}}}function he(e){let t=e.cfg.channels?.[e.channel]??{};return{...e.cfg,channels:{...e.cfg.channels,[e.channel]:{...t,...e.enabled?{enabled:!0}:{},groupPolicy:e.groupPolicy}}}}function ge(e){return Y(String(e??``))}function _e(e){return e.map(e=>e.trim()).filter(Boolean).join(`, `)}async function ve(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 ye(e){let t=e.currentEntries&&e.currentEntries.length>0?_e(e.currentEntries):void 0;return ge(await e.prompter.text({message:`${e.label} allowlist (comma-separated)`,placeholder:e.placeholder,initialValue:t}))}async function be(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 ve({prompter:e.prompter,label:e.label,currentPolicy:e.currentPolicy,allowOpen:e.allowOpen,allowDisabled:e.allowDisabled});return r===`allowlist`?{policy:r,entries:await ye({prompter:e.prompter,label:e.label,currentEntries:e.currentEntries,placeholder:e.placeholder})}:{policy:r,entries:[]}}const xe=`✅ OpenClaw access approved. Send a message to start chatting.`;function X(e){return{success:!1,error:{issues:[{path:[],message:e}]}}}function Se(){return{safeParse(e){return e===void 0?{success:!0,data:void 0}:!e||typeof e!=`object`||Array.isArray(e)?X(`expected config object`):Object.keys(e).length>0?X(`config must be empty`):{success:!0,data:e}},jsonSchema:{type:`object`,additionalProperties:!1,properties:{}}}}async function Z(e){let{server:t,abortSignal:n,onAbort:r}=e,i=Promise.resolve(),a=!1,o=()=>{a||(a=!0,i=Promise.resolve(r?.()).then(()=>void 0))},s=()=>{o()};n&&(n.aborted?o():n.addEventListener(`abort`,s,{once:!0})),await new Promise(e=>{t.once(`close`,()=>e())}),n&&n.removeEventListener(`abort`,s),await i}async function Ce(e){return await L({dispatcher:e.dispatcher,onSettled:e.onSettled,run:()=>j({ctx:e.ctxPayload,cfg:e.cfg,dispatcher:e.dispatcher,replyOptions:e.replyOptions})})}async function we(e,t={}){return await K(e,{maxBytes:t.maxBytes,localRoots:t.mediaLocalRoots})}function Te(e){let n=t(e.accountId);return{accountId:n,readAllowFromStore:()=>e.core.channel.pairing.readAllowFromStore({channel:e.channel,accountId:n}),readStoreForDmPolicy:(n,r)=>e.core.channel.pairing.readAllowFromStore({channel:n,accountId:t(r)}),upsertPairingRequest:t=>e.core.channel.pairing.upsertPairingRequest({channel:e.channel,accountId:n,...t})}}function Ee(e){let t=e.trim().toLowerCase();return t?t===`*`||t===`*.`?`*`:t.replace(/^\*\.?/,``).replace(/^\.+/,``).replace(/\.+$/,``):``}function De(e,t){if(t.includes(`*`))return!0;let n=e.toLowerCase();return t.some(e=>n===e||n.endsWith(`.${e}`))}function Q(e,t){let n=e&&e.length>0?e:t;if(!n||n.length===0)return[];let r=n.map(Ee).filter(Boolean);return r.includes(`*`)?[`*`]:Array.from(new Set(r))}function Oe(e,t){try{let n=new URL(e);return n.protocol===`https:`?De(n.hostname,t):!1}catch{return!1}}function ke(e){let t=Q(e);if(t.length===0)return;let n=new Set;for(let e of t){if(e===`*`)return;n.add(e),n.add(`*.${e}`)}if(n.size!==0)return{hostnameAllowlist:Array.from(n)}}function Ae(e,t){return{accountId:e,running:!1,lastStartAt:null,lastStopAt:null,lastError:null,...t??{}}}function $(e){return{configured:e.configured??!1,running:e.running??!1,lastStartAt:e.lastStartAt??null,lastStopAt:e.lastStopAt??null,lastError:e.lastError??null}}function je(e,t){return{...$(e),...t??{},probe:e.probe,lastProbeAt:e.lastProbeAt??null}}function Me(e){let{runtime:t,probe:n}=e;return{running:t?.running??!1,lastStartAt:t?.lastStartAt??null,lastStopAt:t?.lastStopAt??null,lastError:t?.lastError??null,probe:n}}export{e as DEFAULT_ACCOUNT_ID,F as DEFAULT_GROUP_HISTORY_LIMIT,w as DEFAULT_WEBHOOK_MAX_BODY_BYTES,te as MSTeamsConfigSchema,xe as PAIRING_APPROVED_MESSAGE,H as SILENT_REPLY_TOKEN,J as addWildcardAllowFrom,$ as buildBaseChannelStatusSummary,ce as buildChannelConfigSchema,d as buildChannelKeyCandidates,ke as buildHostnameAllowlistPolicyFromSuffixAllowlist,T as buildMediaPayload,D as buildPendingHistoryContextFromMap,je as buildProbeChannelStatusSummary,Me as buildRuntimeAccountStatusSnapshot,N as clearHistoryEntriesIfEnabled,Ae as createDefaultChannelRuntimeState,P as createReplyPrefixOptions,Te as createScopedPairingAccess,b as createTypingCallbacks,a as detectMime,Ce as dispatchReplyFromConfigWithSettledDispatcher,Se as emptyPluginConfigSchema,h as evaluateSenderGroupAccessForPolicy,r as extensionForMime,s as extractOriginalFilename,W as fetchWithSsrFGuard,z as formatAllowlistMatchMeta,S as formatDocsLink,i as getFileExtension,re as hasConfiguredSecretInput,v as isDangerousNameMatchingEnabled,Oe as isHttpsUrlAllowedByHostnameSuffixAllowlist,l as isPrivateIpAddress,V as isSilentReplyText,Z as keepHttpServerTaskAlive,we as loadOutboundMediaFromUrl,K as loadWebMedia,x as logInboundDrop,_ as logTypingFailure,fe as mergeAllowFromEntries,R as mergeAllowlist,m as normalizeChannelSlug,Q as normalizeHostnameSuffixAllowlist,ie as normalizeResolvedSecretInputString,ee as normalizeSecretInputString,n as normalizeStringEntries,be as promptChannelAccessConfig,G as readJsonFileWithFallback,B as readStoreAllowFromForDmPolicy,I as recordPendingHistoryEntryIfEnabled,O as resolveAllowlistMatchSimple,f as resolveAllowlistProviderRuntimeGroupPolicy,g as resolveChannelEntryMatchWithFallback,U as resolveChannelMediaMaxBytes,k as resolveControlCommandGate,p as resolveDefaultGroupPolicy,C as resolveDmGroupAccessWithLists,y as resolveEffectiveAllowFromLists,A as resolveInboundSessionEnvelopeContext,E as resolveMentionGating,u as resolveNestedAllowlistDecision,ae as resolveSenderScopedGroupPolicy,ne as resolveToolsBySender,pe as setTopLevelChannelAllowFrom,me as setTopLevelChannelDmPolicyWithAllowFrom,he as setTopLevelChannelGroupPolicy,o as sleep,Y as splitOnboardingEntries,M as summarizeMapping,c as withFileLock,oe as writeJsonFileAtomically};