@qqbrowser/openclaw-qbot 0.0.129 → 0.0.132

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 (278) hide show
  1. package/dist/{agents-BMh3ZeoB.js → agents-Cubon1TX.js} +1 -1
  2. package/dist/{agents.config-B-0lZSmb.js → agents.config-Bq8Ak0F3.js} +1 -1
  3. package/dist/{agents.config-BDEN2Eph.js → agents.config-TMOG_1fN.js} +1 -1
  4. package/dist/{auth-choice-C3aUWXx9.js → auth-choice-BV7aG7qI.js} +1 -1
  5. package/dist/{auth-choice-edozMf7r.js → auth-choice-D4TVgwap.js} +1 -1
  6. package/dist/{banner-mIDEloRy.js → banner-FuYXKuyX.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-Cbv7VETu.js → channel-options-B2FyYCfD.js} +1 -1
  12. package/dist/{channel-options-BYmHreMn.js → channel-options-BZ_7THWI.js} +1 -1
  13. package/dist/{channel-web-CK4RqVCH.js → channel-web-BGS9PUif.js} +1 -1
  14. package/dist/{channel-web-Xw89Exy3.js → channel-web-BtadNk83.js} +1 -1
  15. package/dist/{channels-cli-cwFjBXcP.js → channels-cli-DSFKjDFp.js} +1 -1
  16. package/dist/{channels-cli-D2y5Xk5i.js → channels-cli-bxaeOCRb.js} +1 -1
  17. package/dist/{cli-i7P4bYBg.js → cli-DKII0pIr.js} +1 -1
  18. package/dist/{cli-CQKA38bc.js → cli-e_aOkw6O.js} +1 -1
  19. package/dist/{command-registry-BYk36N_R.js → command-registry-CNhmhDmG.js} +1 -1
  20. package/dist/{compact-CuBCVnVS.js → compact-Cc9Dtg1D.js} +9 -6
  21. package/dist/{compact.runtime-Dk_X42a5.js → compact.runtime-B2zAVRW9.js} +1 -1
  22. package/dist/{compact.runtime-By-cADOP.js → compact.runtime-CGPivLl2.js} +1 -1
  23. package/dist/{compact.runtime-BPKLT0Y6.js → compact.runtime-YW0iMT9b.js} +1 -1
  24. package/dist/{compact.runtime-D4b4CL27.js → compact.runtime-nz90Pkok.js} +1 -1
  25. package/dist/{completion-cli-CRNTbZlR.js → completion-cli-B7pfb9r3.js} +1 -1
  26. package/dist/{completion-cli-DbGDCoiM.js → completion-cli-BqdH9qEZ.js} +1 -1
  27. package/dist/{config-cli-D_coAWd9.js → config-cli-BPyNIRN1.js} +1 -1
  28. package/dist/{config-cli-EKXoNzLf.js → config-cli-skIm9kJt.js} +1 -1
  29. package/dist/{configure-DNnQRKy8.js → configure-2N7tIyd5.js} +1 -1
  30. package/dist/{configure-NCNskZPe.js → configure-CXJUA1uP.js} +1 -1
  31. package/dist/{deps-send-whatsapp.runtime-3b97lk9B.js → deps-send-whatsapp.runtime-BDsE5mxt.js} +1 -1
  32. package/dist/{deps-send-whatsapp.runtime-Cb3WMzFa.js → deps-send-whatsapp.runtime-BJvK8RlR.js} +1 -1
  33. package/dist/{deps-send-whatsapp.runtime-BjO7JYUz.js → deps-send-whatsapp.runtime-C5rMMlu_.js} +1 -1
  34. package/dist/{deps-send-whatsapp.runtime-zvLP-GL2.js → deps-send-whatsapp.runtime-YXjIEWx_.js} +1 -1
  35. package/dist/{doctor-completion-BSOX-LSq.js → doctor-completion-DDbR5Q2j.js} +1 -1
  36. package/dist/{doctor-completion-DXqdpdlo.js → doctor-completion-lmr77XW2.js} +1 -1
  37. package/dist/entry.js +1 -1
  38. package/dist/extensionAPI.js +1 -1
  39. package/dist/{gateway-cli-DP65otLl.js → gateway-cli-C5MRJ6an.js} +2 -2
  40. package/dist/{gateway-cli-Bj-BYgGN.js → gateway-cli-CeiwBnIp.js} +2 -2
  41. package/dist/{health-Bedsiigi.js → health-BQNPexgp.js} +1 -1
  42. package/dist/{health-Cy_CvKbX.js → health-Cle8Wm2y.js} +1 -1
  43. package/dist/{hooks-cli-DrnH2iDk.js → hooks-cli-Dqj4slS1.js} +1 -1
  44. package/dist/{hooks-cli-DvfZKyZl.js → hooks-cli-HLimaYiF.js} +1 -1
  45. package/dist/index.js +2 -2
  46. package/dist/llm-slug-generator.js +1 -1
  47. package/dist/{models-UTdl0vXO.js → models-6WKxossI.js} +1 -1
  48. package/dist/{models-cli-vRoB_gfX.js → models-cli-BOluqRVa.js} +1 -1
  49. package/dist/{models-cli-QRONP7EL.js → models-cli-CafqEMQa.js} +1 -1
  50. package/dist/{npm-resolution-BCXCw93f.js → npm-resolution-Cg5YljRY.js} +1 -1
  51. package/dist/{npm-resolution-Cmm82lui.js → npm-resolution-D-DzMtit.js} +1 -1
  52. package/dist/{onboard-C65vdb94.js → onboard-DgPNeSDC.js} +2 -2
  53. package/dist/{onboard-channels-9CmG3Jgn.js → onboard-channels-BZ713LQ0.js} +1 -1
  54. package/dist/{onboard-channels-CV1AK9jY.js → onboard-channels-BhJDBFvw.js} +1 -1
  55. package/dist/{onboard-B3WSjKCu.js → onboard-nH3CTwLv.js} +2 -2
  56. package/dist/{onboarding-B8icigkk.js → onboarding-C6ipSJbr.js} +1 -1
  57. package/dist/{onboarding-BJRqNsZ8.js → onboarding-CuDTCs2I.js} +1 -1
  58. package/dist/{onboarding.finalize-Ds9NwPBL.js → onboarding.finalize-B1FGq010.js} +1 -1
  59. package/dist/{onboarding.finalize-D0qISqn-.js → onboarding.finalize-DKOoRYGJ.js} +1 -1
  60. package/dist/{pi-embedded-bqE4EmdD.js → pi-embedded-B4Un3CQs.js} +9 -6
  61. package/dist/{pi-embedded-ZEWNj7P5.js → pi-embedded-BB-XnYmz.js} +9 -6
  62. package/dist/{plugin-registry-Fg000e4I.js → plugin-registry-BdytW3KN.js} +1 -1
  63. package/dist/{plugin-registry-fm5tDUbE.js → plugin-registry-Bg5MxMF_.js} +1 -1
  64. package/dist/plugin-sdk/{channel-web-Ces_xx2T.js → channel-web-BeV4rAGn.js} +1 -1
  65. package/dist/plugin-sdk/{channel-web-VEZVrMYU.js → channel-web-D4n7Ejq1.js} +1 -1
  66. package/dist/plugin-sdk/{channel-web-CsmEnYD8.cjs → channel-web-DUQbgeQI.cjs} +1 -1
  67. package/dist/plugin-sdk/{channel-web-DtzNv49H.cjs → channel-web-DY8qidtg.cjs} +1 -1
  68. package/dist/plugin-sdk/{compact.runtime-dHvwUcPw.cjs → compact.runtime-AKxo6Nlw.cjs} +1 -1
  69. package/dist/plugin-sdk/{compact.runtime-a9NY6gkE.cjs → compact.runtime-BEL9QhHa.cjs} +1 -1
  70. package/dist/plugin-sdk/{compact.runtime-lkTiEMuC.js → compact.runtime-Bwiv6Ffu.js} +1 -1
  71. package/dist/plugin-sdk/{compact.runtime-3HjzHUZP.js → compact.runtime-C506XCjP.js} +1 -1
  72. package/dist/plugin-sdk/{compact.runtime-BNWdeSZd.js → compact.runtime-C72Z_cRS.js} +1 -1
  73. package/dist/plugin-sdk/{compact.runtime-DdTqQqss.cjs → compact.runtime-CCOK7ViI.cjs} +1 -1
  74. package/dist/plugin-sdk/{compact.runtime-CV7XZLm9.cjs → compact.runtime-CL13VtHJ.cjs} +1 -1
  75. package/dist/plugin-sdk/{compact.runtime-DW5wVRhP.js → compact.runtime-CtQXjpnH.js} +1 -1
  76. package/dist/plugin-sdk/{compact.runtime-BV06PFoQ.js → compact.runtime-DRX9nGYX.js} +1 -1
  77. package/dist/plugin-sdk/{compact.runtime-DVUYkIq_.cjs → compact.runtime-ZC51rihc.cjs} +1 -1
  78. package/dist/plugin-sdk/{compact.runtime-Crk_pXQN.cjs → compact.runtime-chy72HQu.cjs} +1 -1
  79. package/dist/plugin-sdk/{compact.runtime-zEdbh4jm.js → compact.runtime-tnKCDMJd.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-D5MoDp6d.cjs → deps-send-whatsapp.runtime-B5XtORj2.cjs} +1 -1
  83. package/dist/plugin-sdk/{deps-send-whatsapp.runtime-BtJlY6w4.cjs → deps-send-whatsapp.runtime-BKc2YqfU.cjs} +1 -1
  84. package/dist/plugin-sdk/{deps-send-whatsapp.runtime--ecTt2Sc.js → deps-send-whatsapp.runtime-BdOOZs_o.js} +1 -1
  85. package/dist/plugin-sdk/{deps-send-whatsapp.runtime-hMZEvL0_.cjs → deps-send-whatsapp.runtime-CcYcxuN4.cjs} +1 -1
  86. package/dist/plugin-sdk/{deps-send-whatsapp.runtime-BLVt-zaJ.cjs → deps-send-whatsapp.runtime-CwAxDCX3.cjs} +1 -1
  87. package/dist/plugin-sdk/{deps-send-whatsapp.runtime-BBcljK3U.cjs → deps-send-whatsapp.runtime-D5J_2Hrs.cjs} +1 -1
  88. package/dist/plugin-sdk/{deps-send-whatsapp.runtime-B2W5Uyu3.js → deps-send-whatsapp.runtime-D8KfxShd.js} +1 -1
  89. package/dist/plugin-sdk/{deps-send-whatsapp.runtime-BBtHI22g.js → deps-send-whatsapp.runtime-DINMmgeN.js} +1 -1
  90. package/dist/plugin-sdk/{deps-send-whatsapp.runtime-B6fogJhg.js → deps-send-whatsapp.runtime-DLg6z6cA.js} +1 -1
  91. package/dist/plugin-sdk/{deps-send-whatsapp.runtime-CkstVwD8.js → deps-send-whatsapp.runtime-DT5t3zuS.js} +1 -1
  92. package/dist/plugin-sdk/{deps-send-whatsapp.runtime-k0NK6T1t.cjs → deps-send-whatsapp.runtime-DdnTJYXN.cjs} +1 -1
  93. package/dist/plugin-sdk/{deps-send-whatsapp.runtime-CQgpd-kW.js → deps-send-whatsapp.runtime-DsmBHHGq.js} +1 -1
  94. package/dist/plugin-sdk/{dispatch-BYZNaz0n.cjs → dispatch-7BS7RM76.cjs} +9 -6
  95. package/dist/plugin-sdk/{dispatch-BjB_TqWy.cjs → dispatch-B2j2ToZn.cjs} +9 -6
  96. package/dist/plugin-sdk/{dispatch-HRTsdeCV.js → dispatch-CDpXVpXP.js} +9 -6
  97. package/dist/plugin-sdk/{dispatch-BahZCe-D.js → dispatch-CLpAMfPN.js} +9 -6
  98. package/dist/plugin-sdk/{dispatch-CdZAW9dg.cjs → dispatch-CXC-k9Rs.cjs} +9 -6
  99. package/dist/plugin-sdk/{dispatch-Ewg2Jgw9.js → dispatch-CYu9GW2y.js} +9 -6
  100. package/dist/plugin-sdk/{dispatch-CNR186B3.js → dispatch-Ck_jhPMl.js} +9 -6
  101. package/dist/plugin-sdk/{dispatch-CStT30wi.cjs → dispatch-CrVSyC50.cjs} +9 -6
  102. package/dist/plugin-sdk/{dispatch-Bi3yeWxb.cjs → dispatch-DpztrKuM.cjs} +9 -6
  103. package/dist/plugin-sdk/{dispatch-6m3206FH.js → dispatch-evtvC4CX.js} +9 -6
  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/qqbrowser/system_prompt/custom-prompt.generated.d.ts +1 -1
  115. package/dist/plugin-sdk/{reply-Clex4c2R.js → reply-DVyXycvP.js} +9 -6
  116. package/dist/plugin-sdk/{reply-BrHB7v5V.cjs → reply-DoisbReD.cjs} +9 -6
  117. package/dist/plugin-sdk/{slash-dispatch.runtime-N9-DHC5J.cjs → slash-dispatch.runtime-BYnrEiwV.cjs} +1 -1
  118. package/dist/plugin-sdk/{slash-dispatch.runtime-OyqBIT5K.js → slash-dispatch.runtime-C-1ypBEP.js} +1 -1
  119. package/dist/plugin-sdk/{slash-dispatch.runtime-BHG116tz.js → slash-dispatch.runtime-C6RRCuOI.js} +1 -1
  120. package/dist/plugin-sdk/{slash-dispatch.runtime-CYtxleiJ.cjs → slash-dispatch.runtime-CEj4d_D_.cjs} +1 -1
  121. package/dist/plugin-sdk/{slash-dispatch.runtime-BdoE2woN.js → slash-dispatch.runtime-CGVrDWbe.js} +1 -1
  122. package/dist/plugin-sdk/{slash-dispatch.runtime-DYF5C2b7.js → slash-dispatch.runtime-CLllUNlh.js} +1 -1
  123. package/dist/plugin-sdk/{slash-dispatch.runtime-B7VKSvWz.cjs → slash-dispatch.runtime-Cbn21nTX.cjs} +1 -1
  124. package/dist/plugin-sdk/{slash-dispatch.runtime-6TNUV5sD.cjs → slash-dispatch.runtime-DiBPKJnQ.cjs} +1 -1
  125. package/dist/plugin-sdk/{slash-dispatch.runtime-FHwp9NT0.js → slash-dispatch.runtime-NQj0Ea4E.js} +1 -1
  126. package/dist/plugin-sdk/{slash-dispatch.runtime-CVuiZAJX.cjs → slash-dispatch.runtime-S41pqvTC.cjs} +1 -1
  127. package/dist/plugin-sdk/{slash-dispatch.runtime-eCaT05fr.js → slash-dispatch.runtime-XalVe1mU.js} +1 -1
  128. package/dist/plugin-sdk/{slash-dispatch.runtime-scWEh2DK.cjs → slash-dispatch.runtime-g9XbY-BR.cjs} +1 -1
  129. package/dist/plugin-sdk/{subagent-registry-runtime-wO-j_HvW.cjs → subagent-registry-runtime-BZPfJcK7.cjs} +1 -1
  130. package/dist/plugin-sdk/{subagent-registry-runtime-h0yhcS5X.js → subagent-registry-runtime-BfvaomBi.js} +1 -1
  131. package/dist/plugin-sdk/{subagent-registry-runtime-DuxxoFvb.cjs → subagent-registry-runtime-BkfV_qZo.cjs} +1 -1
  132. package/dist/plugin-sdk/{subagent-registry-runtime-Dc-5y7KZ.cjs → subagent-registry-runtime-C9kY6i4W.cjs} +1 -1
  133. package/dist/plugin-sdk/{subagent-registry-runtime-LThjIc8b.js → subagent-registry-runtime-CCunMoSD.js} +1 -1
  134. package/dist/plugin-sdk/{subagent-registry-runtime-BZbV2G_e.js → subagent-registry-runtime-CrWzukNj.js} +1 -1
  135. package/dist/plugin-sdk/{subagent-registry-runtime-CPTL-18y.js → subagent-registry-runtime-CutSwJqz.js} +1 -1
  136. package/dist/plugin-sdk/{subagent-registry-runtime-DduSFKtc.cjs → subagent-registry-runtime-DsXsp4lT.cjs} +1 -1
  137. package/dist/plugin-sdk/{subagent-registry-runtime-CVARl9Ob.js → subagent-registry-runtime-UbbSTSVS.js} +1 -1
  138. package/dist/plugin-sdk/{subagent-registry-runtime-DBo0_1La.cjs → subagent-registry-runtime-f0_GhLOw.cjs} +1 -1
  139. package/dist/plugin-sdk/{subagent-registry-runtime-C1uIU3Ox.cjs → subagent-registry-runtime-pM4nQU6u.cjs} +1 -1
  140. package/dist/plugin-sdk/{subagent-registry-runtime-2dXCCdh7.js → subagent-registry-runtime-s1EZG_RJ.js} +1 -1
  141. package/dist/plugin-sdk/{web-BnDJ2-GG.cjs → web-BBj3pJRI.cjs} +1 -1
  142. package/dist/plugin-sdk/{web-BfjArU7g.js → web-BX_wf694.js} +1 -1
  143. package/dist/plugin-sdk/{web-BTBgpaEi.js → web-Bt6Qr5DN.js} +1 -1
  144. package/dist/plugin-sdk/{web-BKKx3jqf.cjs → web-Bv54jzps.cjs} +1 -1
  145. package/dist/plugin-sdk/{web-C7KhecaH.cjs → web-C10r6DA0.cjs} +1 -1
  146. package/dist/plugin-sdk/{web-CS0AvKLx.js → web-CM_BL-xM.js} +1 -1
  147. package/dist/plugin-sdk/{web-Bstc61W4.cjs → web-CtEFg9k1.cjs} +1 -1
  148. package/dist/plugin-sdk/{web-B4A8zBP9.cjs → web-D24ZmMDR.cjs} +1 -1
  149. package/dist/plugin-sdk/{web-DFnjoFzV.js → web-DIJEtPIy.js} +1 -1
  150. package/dist/plugin-sdk/{web-CFMrBQv7.js → web-Dq1_toZ-.js} +1 -1
  151. package/dist/plugin-sdk/{web-BBtjNUBg.js → web-Y2KsC_aj.js} +1 -1
  152. package/dist/plugin-sdk/{web-EfgEjg15.cjs → web-fUWZzZ2V.cjs} +1 -1
  153. package/dist/plugin-sdk/whatsapp.cjs +1 -1
  154. package/dist/plugin-sdk/whatsapp.js +1 -1
  155. package/dist/{plugins-cli-BiV4FaGs.js → plugins-cli-FyQKyII0.js} +1 -1
  156. package/dist/{plugins-cli-C0PLRxT0.js → plugins-cli-QSi9jupq.js} +1 -1
  157. package/dist/{program-CI--7377.js → program-CSs3zbIT.js} +2 -2
  158. package/dist/{program-context-Cu8fVR-O.js → program-context-CvzQGlmy.js} +1 -1
  159. package/dist/{prompt-select-styled-sYEl0gMg.js → prompt-select-styled-C1y3TIrL.js} +1 -1
  160. package/dist/{prompt-select-styled-CbTtKeIC.js → prompt-select-styled-CtfTvGkL.js} +1 -1
  161. package/dist/{provider-auth-helpers-CZyb7LUg.js → provider-auth-helpers-BsJzFqzN.js} +1 -1
  162. package/dist/{provider-auth-helpers-C3OaF218.js → provider-auth-helpers-DNCEAkC3.js} +1 -1
  163. package/dist/{push-apns-tM6G9LLm.js → push-apns-3-i_UkDn.js} +1 -1
  164. package/dist/{push-apns-kySzOiJr.js → push-apns-B6ZnHIkM.js} +1 -1
  165. package/dist/{register.agent-D1hQi_68.js → register.agent-BZkNoJfz.js} +1 -1
  166. package/dist/{register.agent-BwmE1VD-.js → register.agent-DUyQiL_H.js} +1 -1
  167. package/dist/{register.configure-BsTw4XfK.js → register.configure-LYVJtNSx.js} +1 -1
  168. package/dist/{register.configure-DxR84Ot6.js → register.configure-N3fcntfr.js} +1 -1
  169. package/dist/{register.maintenance-DxKGQ9Jo.js → register.maintenance-CoYIK__n.js} +1 -1
  170. package/dist/{register.maintenance-3nzWAo_a.js → register.maintenance-DInaXQpP.js} +1 -1
  171. package/dist/{register.message-Bk1pHVSK.js → register.message-COd9aEOR.js} +1 -1
  172. package/dist/{register.message-PcFtBR0-.js → register.message-PcWHnhgg.js} +1 -1
  173. package/dist/{register.onboard-AWxbhU7j.js → register.onboard-CBGi44rr.js} +1 -1
  174. package/dist/{register.onboard-BTOZN8ro.js → register.onboard-DKq25Ahd.js} +1 -1
  175. package/dist/{register.setup-CweJJdt8.js → register.setup-9nNK9GJa.js} +1 -1
  176. package/dist/{register.setup-B-e1qIbc.js → register.setup-DtlxWUxF.js} +1 -1
  177. package/dist/{register.status-health-sessions-CWNLXpAn.js → register.status-health-sessions-DI_2pQB7.js} +1 -1
  178. package/dist/{register.status-health-sessions-B1R_nl6P.js → register.status-health-sessions-DnR2WcUj.js} +1 -1
  179. package/dist/{register.subclis-C0VQ_HfZ.js → register.subclis-cE0hv18s.js} +1 -1
  180. package/dist/{reply-r9KtzgpM.js → reply-SbDsPAiQ.js} +9 -6
  181. package/dist/{run-main-CuQQyoU3.js → run-main-DwWcrQo6.js} +1 -1
  182. package/dist/{server-node-events-B2irOUJ_.js → server-node-events-D_dQc21k.js} +1 -1
  183. package/dist/{server-node-events-DSr6P0VG.js → server-node-events-Faqpyiif.js} +1 -1
  184. package/dist/{slash-dispatch.runtime-D0HpS_2c.js → slash-dispatch.runtime-CDrV9rRD.js} +1 -1
  185. package/dist/{slash-dispatch.runtime-CzLPF9HE.js → slash-dispatch.runtime-nuZoxX0_.js} +1 -1
  186. package/dist/{slash-dispatch.runtime-DAVp4-2z.js → slash-dispatch.runtime-valnWMeB.js} +1 -1
  187. package/dist/{slash-dispatch.runtime-BQNJacCj.js → slash-dispatch.runtime-z7RQ4pU1.js} +1 -1
  188. package/dist/{status-DgRrUxyg.js → status-3v-rmxvZ.js} +1 -1
  189. package/dist/{status-DKB9gdSp.js → status-D1lt7CDs.js} +1 -1
  190. package/dist/{subagent-registry-runtime-DbSqq5RB.js → subagent-registry-runtime-BvE58vM7.js} +1 -1
  191. package/dist/{subagent-registry-runtime-c2C-KBDy.js → subagent-registry-runtime-CINY8Tso.js} +1 -1
  192. package/dist/{subagent-registry-runtime-ca1bXmj0.js → subagent-registry-runtime-DbZvan_g.js} +1 -1
  193. package/dist/{subagent-registry-runtime-COHXQCbb.js → subagent-registry-runtime-DxsLafxM.js} +1 -1
  194. package/dist/{update-cli-xb0jHjE8.js → update-cli-DDpqwP6G.js} +1 -1
  195. package/dist/{update-cli-lciKU8_L.js → update-cli-DfjeHwDJ.js} +1 -1
  196. package/dist/{update-runner-LVJcy569.js → update-runner-C5yG78nD.js} +1 -1
  197. package/dist/{update-runner-8Hto6X-M.js → update-runner-Cn2FFLI4.js} +1 -1
  198. package/dist/{web-B4nEAmKA.js → web-BIzg4tS6.js} +1 -1
  199. package/dist/{web-Bfz_qlYe.js → web-BS-UjHFC.js} +1 -1
  200. package/dist/{web-ClbIohhf.js → web-CW41_jQN.js} +1 -1
  201. package/dist/{web-BhBkUC7j.js → web-Cc3cVVew.js} +1 -1
  202. package/node_modules/@aws-sdk/client-bedrock-runtime/dist-es/BedrockRuntime.js +2 -2
  203. package/node_modules/@aws-sdk/client-bedrock-runtime/package.json +16 -16
  204. package/node_modules/@aws-sdk/core/package.json +3 -3
  205. package/node_modules/@aws-sdk/credential-provider-env/package.json +2 -2
  206. package/node_modules/@aws-sdk/credential-provider-http/package.json +5 -5
  207. package/node_modules/@aws-sdk/credential-provider-ini/package.json +9 -9
  208. package/node_modules/@aws-sdk/credential-provider-login/package.json +3 -3
  209. package/node_modules/@aws-sdk/credential-provider-node/package.json +7 -7
  210. package/node_modules/@aws-sdk/credential-provider-process/package.json +2 -2
  211. package/node_modules/@aws-sdk/credential-provider-sso/package.json +4 -4
  212. package/node_modules/@aws-sdk/credential-provider-web-identity/package.json +3 -3
  213. package/node_modules/@aws-sdk/middleware-user-agent/dist-cjs/index.js +10 -10
  214. package/node_modules/@aws-sdk/middleware-user-agent/dist-es/check-features.js +1 -1
  215. package/node_modules/@aws-sdk/middleware-user-agent/package.json +3 -3
  216. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/cognito-identity/CognitoIdentity.js +1 -1
  217. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/cognito-identity/CognitoIdentityClient.js +1 -1
  218. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/signin/Signin.js +1 -1
  219. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/signin/SigninClient.js +1 -1
  220. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso/SSO.js +1 -1
  221. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso/SSOClient.js +1 -1
  222. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/SSOOIDC.js +1 -1
  223. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sso-oidc/SSOOIDCClient.js +1 -1
  224. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/STS.js +2 -2
  225. package/node_modules/@aws-sdk/nested-clients/dist-es/submodules/sts/STSClient.js +1 -1
  226. package/node_modules/@aws-sdk/nested-clients/package.json +12 -12
  227. package/node_modules/@aws-sdk/token-providers/package.json +3 -3
  228. package/node_modules/@aws-sdk/util-user-agent-node/package.json +2 -2
  229. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/client/stdio.js +1 -4
  230. package/node_modules/@modelcontextprotocol/sdk/dist/cjs/types.js +18 -5
  231. package/node_modules/@modelcontextprotocol/sdk/dist/esm/client/stdio.js +1 -4
  232. package/node_modules/@modelcontextprotocol/sdk/dist/esm/types.js +18 -5
  233. package/node_modules/@modelcontextprotocol/sdk/package.json +10 -1
  234. package/node_modules/@smithy/core/dist-cjs/submodules/protocols/index.js +8 -17
  235. package/node_modules/@smithy/core/dist-es/submodules/protocols/HttpBindingProtocol.js +1 -8
  236. package/node_modules/@smithy/core/dist-es/submodules/protocols/RpcProtocol.js +7 -9
  237. package/node_modules/@smithy/core/package.json +2 -2
  238. package/node_modules/@smithy/middleware-endpoint/package.json +3 -3
  239. package/node_modules/@smithy/middleware-retry/package.json +2 -2
  240. package/node_modules/@smithy/middleware-serde/package.json +2 -2
  241. package/node_modules/@smithy/node-http-handler/package.json +2 -2
  242. package/node_modules/@smithy/smithy-client/package.json +4 -4
  243. package/node_modules/@smithy/util-defaults-mode-browser/package.json +2 -2
  244. package/node_modules/@smithy/util-defaults-mode-node/package.json +2 -2
  245. package/node_modules/@smithy/util-stream/package.json +2 -2
  246. package/node_modules/express-rate-limit/dist/index.cjs +24 -13
  247. package/node_modules/express-rate-limit/dist/index.mjs +24 -13
  248. package/node_modules/express-rate-limit/package.json +7 -7
  249. package/node_modules/express-rate-limit/readme.md +1 -16
  250. package/node_modules/minimatch/dist/commonjs/ast.js +9 -10
  251. package/node_modules/minimatch/dist/commonjs/index.js +26 -20
  252. package/node_modules/minimatch/dist/commonjs/unescape.js +6 -6
  253. package/node_modules/minimatch/dist/esm/ast.js +9 -10
  254. package/node_modules/minimatch/dist/esm/index.js +26 -20
  255. package/node_modules/minimatch/dist/esm/unescape.js +6 -6
  256. package/node_modules/minimatch/package.json +14 -8
  257. package/node_modules/path-to-regexp/Readme.md +3 -3
  258. package/node_modules/path-to-regexp/dist/index.js +21 -49
  259. package/node_modules/path-to-regexp/package.json +2 -2
  260. package/package.json +1 -1
  261. package/preset-config.json +2 -2
  262. package/dist/control-ui/apple-touch-icon.png +0 -0
  263. package/dist/control-ui/assets/de-DuUYLvt1.js +0 -1
  264. package/dist/control-ui/assets/es-DHtyqUQZ.js +0 -1
  265. package/dist/control-ui/assets/index-CYbiPp9k.js +0 -8383
  266. package/dist/control-ui/assets/index-C_GaJ8wS.css +0 -1
  267. package/dist/control-ui/assets/pt-BR-D2dJb9G8.js +0 -1
  268. package/dist/control-ui/assets/zh-CN-BgJ8_lE3.js +0 -1
  269. package/dist/control-ui/assets/zh-TW-cW5xB87I.js +0 -1
  270. package/dist/control-ui/favicon-32.png +0 -0
  271. package/dist/control-ui/favicon.ico +0 -0
  272. package/dist/control-ui/favicon.svg +0 -22
  273. package/dist/control-ui/index.html +0 -17
  274. package/node_modules/@smithy/abort-controller/dist-cjs/index.js +0 -32
  275. package/node_modules/@smithy/abort-controller/dist-es/AbortController.js +0 -7
  276. package/node_modules/@smithy/abort-controller/dist-es/AbortSignal.js +0 -20
  277. package/node_modules/@smithy/abort-controller/dist-es/index.js +0 -2
  278. package/node_modules/@smithy/abort-controller/package.json +0 -63
@@ -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-DT_csBcZ.cjs`),r=require(`./dispatch-CdZAW9dg.cjs`);require(`./github-copilot-token-TMkfxxD2.cjs`);const i=require(`./logger-Bm93ZKOk.cjs`),a=require(`./proxy-env-Bcl14j2_.cjs`),o=require(`./send-BkREPc90.cjs`);require(`./fetch-lw-aF17e.cjs`),require(`./channel-activity-DNv7JLBx.cjs`);const s=require(`./fetch-guard-u2Dt6P9i.cjs`);require(`./local-roots-xHoEq1Fq.cjs`);const c=require(`./ir-BxKSHYao.cjs`);require(`./render-CzHaQB0d.cjs`),require(`./tables-BZUVdTR-.cjs`);const l=require(`./send-BHvZIrbJ.cjs`),u=require(`./target-errors-QWTCk98R.cjs`),d=require(`./send-C6S8tkTA.cjs`),f=require(`./deliver-AORlkcbD.cjs`),p=require(`./diagnostic-BCyE1aYH.cjs`);require(`./pi-model-discovery-D3JQMjAa.cjs`);const m=require(`./audio-transcription-runner-IE4olXkd.cjs`);require(`./image-DrPh2689.cjs`),require(`./api-key-rotation-CWylhFOt.cjs`),require(`./proxy-fetch-DH7VIiBH.cjs`);const h=require(`./tokens-Dq2wDF3_.cjs`);require(`./commands-registry-33H8WYTk.cjs`);const g=require(`./targets-D-m7SV9x.cjs`);require(`./send-_92aOzWU.cjs`);const _=require(`./fetch-DpwR_cJU.cjs`),v=require(`./skill-commands-DNPxE-kc.cjs`);require(`./outbound-attachment-x4Q2SVIA.cjs`);const y=require(`./send-jOMdGt0L.cjs`);require(`./query-expansion-DO2CFW4z.cjs`),require(`./manager-BoMQeM1I.cjs`);const ee=require(`./resolve-outbound-target-BHLQMMp-.cjs`),te=require(`./channel-web-CsmEnYD8.cjs`);require(`./outbound-DAHIkpiA.cjs`),require(`./session-CC1GqwiM.cjs`);const ne=require(`./login-BN1TsFp4.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-DT_csBcZ.cjs`),r=require(`./dispatch-CXC-k9Rs.cjs`);require(`./github-copilot-token-TMkfxxD2.cjs`);const i=require(`./logger-Bm93ZKOk.cjs`),a=require(`./proxy-env-Bcl14j2_.cjs`),o=require(`./send-BkREPc90.cjs`);require(`./fetch-lw-aF17e.cjs`),require(`./channel-activity-DNv7JLBx.cjs`);const s=require(`./fetch-guard-u2Dt6P9i.cjs`);require(`./local-roots-xHoEq1Fq.cjs`);const c=require(`./ir-BxKSHYao.cjs`);require(`./render-CzHaQB0d.cjs`),require(`./tables-BZUVdTR-.cjs`);const l=require(`./send-BHvZIrbJ.cjs`),u=require(`./target-errors-QWTCk98R.cjs`),d=require(`./send-C6S8tkTA.cjs`),f=require(`./deliver-AORlkcbD.cjs`),p=require(`./diagnostic-BCyE1aYH.cjs`);require(`./pi-model-discovery-D3JQMjAa.cjs`);const m=require(`./audio-transcription-runner-IE4olXkd.cjs`);require(`./image-DrPh2689.cjs`),require(`./api-key-rotation-CWylhFOt.cjs`),require(`./proxy-fetch-DH7VIiBH.cjs`);const h=require(`./tokens-Dq2wDF3_.cjs`);require(`./commands-registry-33H8WYTk.cjs`);const g=require(`./targets-D-m7SV9x.cjs`);require(`./send-_92aOzWU.cjs`);const _=require(`./fetch-DpwR_cJU.cjs`),v=require(`./skill-commands-DNPxE-kc.cjs`);require(`./outbound-attachment-x4Q2SVIA.cjs`);const y=require(`./send-jOMdGt0L.cjs`);require(`./query-expansion-DO2CFW4z.cjs`),require(`./manager-BoMQeM1I.cjs`);const ee=require(`./resolve-outbound-target-BHLQMMp-.cjs`),te=require(`./channel-web-DUQbgeQI.cjs`);require(`./outbound-DAHIkpiA.cjs`),require(`./session-CC1GqwiM.cjs`);const ne=require(`./login-BN1TsFp4.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-LR8GH3Ws.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-BahZCe-D.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-DsDCrJWq.js";import"./fetch-DBRI0sKI.js";import"./channel-activity-qjwFifkE.js";import{t as zi}from"./fetch-guard-DC_pFJEy.js";import"./local-roots-l4PqCmiU.js";import{p as Bi,v as Vi}from"./ir-ntSck5Kp.js";import"./render-DGmfCIRG.js";import"./tables-Cz5osenc.js";import{J as Hi,Y as Ui,it as Wi,rt as Gi}from"./send-CPwh7tRu.js";import{d as k,f as Ki,h as A,l as qi,n as Ji,o as Yi}from"./target-errors-BbQBR5da.js";import{s as Xi}from"./send-BcuylzbX.js";import{l as Zi}from"./deliver-BvC6aUKM.js";import{g as Qi,h as $i,m as ea}from"./diagnostic-DS_mKKOu.js";import"./pi-model-discovery-ma8st1Ek.js";import{d as ta,f as na}from"./audio-transcription-runner-DZR84B28.js";import"./image-ISWO0Dwt.js";import"./api-key-rotation-mDqgBFMG.js";import"./proxy-fetch-B9aXJVe-.js";import{i as ra,n as ia}from"./tokens-AAdZjj0M.js";import"./commands-registry-BGdm1KdC.js";import{n as aa,r as oa}from"./targets-CVEYTFPQ.js";import"./send-ClMvdjfg.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-DcgKCVDt.js";import"./outbound-attachment-acB4qID1.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-2IhtEEzb.js";import"./query-expansion-DyCDaZbL.js";import"./manager-BRP1lzb6.js";import{t as Ca}from"./resolve-outbound-target-DEpmpEep.js";import{r as wa}from"./channel-web-VEZVrMYU.js";import"./outbound-BrD0UsX0.js";import"./session-B80NWO1m.js";import{t as Ta}from"./login-DEmpr5YK.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-LR8GH3Ws.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-CLpAMfPN.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-DsDCrJWq.js";import"./fetch-DBRI0sKI.js";import"./channel-activity-qjwFifkE.js";import{t as zi}from"./fetch-guard-DC_pFJEy.js";import"./local-roots-l4PqCmiU.js";import{p as Bi,v as Vi}from"./ir-ntSck5Kp.js";import"./render-DGmfCIRG.js";import"./tables-Cz5osenc.js";import{J as Hi,Y as Ui,it as Wi,rt as Gi}from"./send-CPwh7tRu.js";import{d as k,f as Ki,h as A,l as qi,n as Ji,o as Yi}from"./target-errors-BbQBR5da.js";import{s as Xi}from"./send-BcuylzbX.js";import{l as Zi}from"./deliver-BvC6aUKM.js";import{g as Qi,h as $i,m as ea}from"./diagnostic-DS_mKKOu.js";import"./pi-model-discovery-ma8st1Ek.js";import{d as ta,f as na}from"./audio-transcription-runner-DZR84B28.js";import"./image-ISWO0Dwt.js";import"./api-key-rotation-mDqgBFMG.js";import"./proxy-fetch-B9aXJVe-.js";import{i as ra,n as ia}from"./tokens-AAdZjj0M.js";import"./commands-registry-BGdm1KdC.js";import{n as aa,r as oa}from"./targets-CVEYTFPQ.js";import"./send-ClMvdjfg.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-DcgKCVDt.js";import"./outbound-attachment-acB4qID1.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-2IhtEEzb.js";import"./query-expansion-DyCDaZbL.js";import"./manager-BRP1lzb6.js";import{t as Ca}from"./resolve-outbound-target-DEpmpEep.js";import{r as wa}from"./channel-web-D4n7Ejq1.js";import"./outbound-BrD0UsX0.js";import"./session-B80NWO1m.js";import{t as Ta}from"./login-DEmpr5YK.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-CStT30wi.cjs`),t=require(`./paths-Cqca1YmF.cjs`),n=require(`./model-auth-fJrNIbke.cjs`);require(`./logger-DPlqYkRm.cjs`),require(`./proxy-env-a590sPAz.cjs`),require(`./github-copilot-token-CCrgp2py.cjs`),require(`./send-z1vaCgF3.cjs`);const r=require(`./send-BCSkdYN6.cjs`);require(`./send-GtphEa1b.cjs`),require(`./deliver-BpqEPwLO.cjs`),require(`./diagnostic-CbfxoqI_.cjs`),require(`./pi-model-discovery-Bi4dKtW0.cjs`),require(`./audio-transcription-runner-2-ZQ5Md-.cjs`),require(`./image-0OHO98b9.cjs`),require(`./fetch-guard-DIYjBRpq.cjs`),require(`./api-key-rotation-DkP7KnSm.cjs`),require(`./local-roots-SCyeUfM3.cjs`),require(`./proxy-fetch-DPOhfrou.cjs`),require(`./tokens-g5KWvWhD.cjs`),require(`./commands-registry-DBI4cPqT.cjs`),require(`./fetch-ClKErpni.cjs`),require(`./ir-78toXVqC.cjs`),require(`./render-DxBO2Blp.cjs`),require(`./target-errors-oh0u5K2w.cjs`),require(`./channel-activity-D6d2wU8H.cjs`),require(`./tables-bSgb8OzP.cjs`),require(`./send-BOkABdQu.cjs`),require(`./fetch-BY6lVRlY.cjs`),require(`./skill-commands-CD4GQXTR.cjs`),require(`./outbound-attachment-0QahtSQB.cjs`),require(`./send-CSqipUeV.cjs`),require(`./query-expansion-DCeqywxh.cjs`),require(`./manager-DCDy2V1U.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-CrVSyC50.cjs`),t=require(`./paths-Cqca1YmF.cjs`),n=require(`./model-auth-fJrNIbke.cjs`);require(`./logger-DPlqYkRm.cjs`),require(`./proxy-env-a590sPAz.cjs`),require(`./github-copilot-token-CCrgp2py.cjs`),require(`./send-z1vaCgF3.cjs`);const r=require(`./send-BCSkdYN6.cjs`);require(`./send-GtphEa1b.cjs`),require(`./deliver-BpqEPwLO.cjs`),require(`./diagnostic-CbfxoqI_.cjs`),require(`./pi-model-discovery-Bi4dKtW0.cjs`),require(`./audio-transcription-runner-2-ZQ5Md-.cjs`),require(`./image-0OHO98b9.cjs`),require(`./fetch-guard-DIYjBRpq.cjs`),require(`./api-key-rotation-DkP7KnSm.cjs`),require(`./local-roots-SCyeUfM3.cjs`),require(`./proxy-fetch-DPOhfrou.cjs`),require(`./tokens-g5KWvWhD.cjs`),require(`./commands-registry-DBI4cPqT.cjs`),require(`./fetch-ClKErpni.cjs`),require(`./ir-78toXVqC.cjs`),require(`./render-DxBO2Blp.cjs`),require(`./target-errors-oh0u5K2w.cjs`),require(`./channel-activity-D6d2wU8H.cjs`),require(`./tables-bSgb8OzP.cjs`),require(`./send-BOkABdQu.cjs`),require(`./fetch-BY6lVRlY.cjs`),require(`./skill-commands-CD4GQXTR.cjs`),require(`./outbound-attachment-0QahtSQB.cjs`),require(`./send-CSqipUeV.cjs`),require(`./query-expansion-DCeqywxh.cjs`),require(`./manager-DCDy2V1U.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-Ewg2Jgw9.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-g6eGgTwR.js";import"./logger-DJGHvDbX.js";import"./paths-CtrEseGU.js";import"./proxy-env-MEjSyzTr.js";import"./github-copilot-token-vKAKX6iE.js";import"./send-BPNd63Qs.js";import{At as S,Nt as C,jt as w,kt as T}from"./send-CF3qas-K.js";import"./send-D-6Et_9H.js";import"./deliver-cu_NQTmb.js";import"./diagnostic-DDwUPG1m.js";import"./pi-model-discovery-DYOHzCjs.js";import"./audio-transcription-runner-YiDQM_Rb.js";import"./image-gehqJnV6.js";import"./fetch-guard-D8TdhTHU.js";import"./api-key-rotation-ClZmonv2.js";import"./local-roots-CnsaE7a_.js";import"./proxy-fetch-DXt2R_Z5.js";import"./tokens-BqABmXSe.js";import"./commands-registry-CJLBIIIp.js";import"./fetch-BtZY623f.js";import"./ir-L2vhtuGx.js";import"./render-DhTJXP1U.js";import"./target-errors-CQbFkOae.js";import"./channel-activity-Bed876M5.js";import"./tables-_vqK8P0T.js";import"./send-9tPLnqkc.js";import"./fetch-7Iq9POda.js";import"./skill-commands-IAwkVeOe.js";import"./outbound-attachment-Ds2XsjQl.js";import"./send-BdFvK9Wc2.js";import"./query-expansion-CAboqtWr.js";import"./manager-BGoKN9ur.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-CYu9GW2y.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-g6eGgTwR.js";import"./logger-DJGHvDbX.js";import"./paths-CtrEseGU.js";import"./proxy-env-MEjSyzTr.js";import"./github-copilot-token-vKAKX6iE.js";import"./send-BPNd63Qs.js";import{At as S,Nt as C,jt as w,kt as T}from"./send-CF3qas-K.js";import"./send-D-6Et_9H.js";import"./deliver-cu_NQTmb.js";import"./diagnostic-DDwUPG1m.js";import"./pi-model-discovery-DYOHzCjs.js";import"./audio-transcription-runner-YiDQM_Rb.js";import"./image-gehqJnV6.js";import"./fetch-guard-D8TdhTHU.js";import"./api-key-rotation-ClZmonv2.js";import"./local-roots-CnsaE7a_.js";import"./proxy-fetch-DXt2R_Z5.js";import"./tokens-BqABmXSe.js";import"./commands-registry-CJLBIIIp.js";import"./fetch-BtZY623f.js";import"./ir-L2vhtuGx.js";import"./render-DhTJXP1U.js";import"./target-errors-CQbFkOae.js";import"./channel-activity-Bed876M5.js";import"./tables-_vqK8P0T.js";import"./send-9tPLnqkc.js";import"./fetch-7Iq9POda.js";import"./skill-commands-IAwkVeOe.js";import"./outbound-attachment-Ds2XsjQl.js";import"./send-BdFvK9Wc2.js";import"./query-expansion-CAboqtWr.js";import"./manager-BGoKN9ur.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-BgS7ynQw.cjs`),n=require(`./target-errors-BjgLCOTm.cjs`),r=require(`./dispatch-BYZNaz0n.cjs`),i=require(`./send-COtvydDt.cjs`),a=require(`./send-CIxh7PV0.cjs`);require(`./proxy-env-D48qBPAr.cjs`),require(`./github-copilot-token-C1O2cBqk.cjs`),require(`./send-Dbmn1rgD.cjs`);const o=require(`./fetch-guard-EoAitPe9.cjs`);require(`./deliver-DcJWpoqf.cjs`),require(`./diagnostic-DYpehqHU.cjs`),require(`./pi-model-discovery-SmVAFMj_.cjs`),require(`./audio-transcription-runner-CmYuWS0_.cjs`),require(`./image-jUYo-0eT.cjs`),require(`./api-key-rotation-CF9_CKS-.cjs`),require(`./local-roots-DYlB1au6.cjs`),require(`./proxy-fetch-BwXFVsHE.cjs`),require(`./tokens-CnB4dJmp.cjs`),require(`./commands-registry-BifdCfty.cjs`),require(`./fetch-CZewCAvu.cjs`),require(`./ir-D4Dz-giw.cjs`),require(`./render-g5VlmgpF.cjs`),require(`./channel-activity-mffNSQrX.cjs`),require(`./tables-DBSeZ07-.cjs`),require(`./send-IqcgAO8b.cjs`),require(`./fetch-BN9y3kTg.cjs`),require(`./skill-commands-xJWQthd5.cjs`),require(`./outbound-attachment-D8Ng5uVX.cjs`),require(`./send-DOjSTB6D.cjs`),require(`./query-expansion-cpXCyoDy.cjs`),require(`./manager-0tvX3Z_N.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-BgS7ynQw.cjs`),n=require(`./target-errors-BjgLCOTm.cjs`),r=require(`./dispatch-7BS7RM76.cjs`),i=require(`./send-COtvydDt.cjs`),a=require(`./send-CIxh7PV0.cjs`);require(`./proxy-env-D48qBPAr.cjs`),require(`./github-copilot-token-C1O2cBqk.cjs`),require(`./send-Dbmn1rgD.cjs`);const o=require(`./fetch-guard-EoAitPe9.cjs`);require(`./deliver-DcJWpoqf.cjs`),require(`./diagnostic-DYpehqHU.cjs`),require(`./pi-model-discovery-SmVAFMj_.cjs`),require(`./audio-transcription-runner-CmYuWS0_.cjs`),require(`./image-jUYo-0eT.cjs`),require(`./api-key-rotation-CF9_CKS-.cjs`),require(`./local-roots-DYlB1au6.cjs`),require(`./proxy-fetch-BwXFVsHE.cjs`),require(`./tokens-CnB4dJmp.cjs`),require(`./commands-registry-BifdCfty.cjs`),require(`./fetch-CZewCAvu.cjs`),require(`./ir-D4Dz-giw.cjs`),require(`./render-g5VlmgpF.cjs`),require(`./channel-activity-mffNSQrX.cjs`),require(`./tables-DBSeZ07-.cjs`),require(`./send-IqcgAO8b.cjs`),require(`./fetch-BN9y3kTg.cjs`),require(`./skill-commands-xJWQthd5.cjs`),require(`./outbound-attachment-D8Ng5uVX.cjs`),require(`./send-DOjSTB6D.cjs`),require(`./query-expansion-cpXCyoDy.cjs`),require(`./manager-0tvX3Z_N.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-wcxJptQX.js";import{d as ne,f as re,h as ie,l as ae,o as oe}from"./target-errors-CaaKhU6m.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-HRTsdeCV.js";import{ct as R,lt as z}from"./send-DyzuwDjE.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-BEmZxBcF.js";import"./proxy-env-m9eG3uZN.js";import"./github-copilot-token-C8j8_NjX.js";import"./send-B_619b3s.js";import{t as se}from"./fetch-guard-DDkd30BG.js";import"./deliver-ILim6ANU.js";import"./diagnostic-Dz8HPEDe.js";import"./pi-model-discovery--UcCzdQg.js";import"./audio-transcription-runner-CslXJs5c.js";import"./image-BVnZq5Y4.js";import"./api-key-rotation-Cs6II2__.js";import"./local-roots-B0zm186S.js";import"./proxy-fetch-YCVHz7Rl.js";import"./tokens-DgPZk2Uu.js";import"./commands-registry-CpG4pxrA.js";import"./fetch-B1GR6-u4.js";import"./ir-CpkEWZD6.js";import"./render-Djx15dPh.js";import"./channel-activity-CIycjzUC.js";import"./tables-C6TX2QvW.js";import"./send-B4kzPtcN.js";import"./fetch-J0IzopiJ.js";import"./skill-commands-BZlF3g3o.js";import"./outbound-attachment-DS0S0NLK.js";import"./send-h_kE-cAK.js";import"./query-expansion-Cb2vnF6y.js";import"./manager-BnytMgmq.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-wcxJptQX.js";import{d as ne,f as re,h as ie,l as ae,o as oe}from"./target-errors-CaaKhU6m.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-CDpXVpXP.js";import{ct as R,lt as z}from"./send-DyzuwDjE.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-BEmZxBcF.js";import"./proxy-env-m9eG3uZN.js";import"./github-copilot-token-C8j8_NjX.js";import"./send-B_619b3s.js";import{t as se}from"./fetch-guard-DDkd30BG.js";import"./deliver-ILim6ANU.js";import"./diagnostic-Dz8HPEDe.js";import"./pi-model-discovery--UcCzdQg.js";import"./audio-transcription-runner-CslXJs5c.js";import"./image-BVnZq5Y4.js";import"./api-key-rotation-Cs6II2__.js";import"./local-roots-B0zm186S.js";import"./proxy-fetch-YCVHz7Rl.js";import"./tokens-DgPZk2Uu.js";import"./commands-registry-CpG4pxrA.js";import"./fetch-B1GR6-u4.js";import"./ir-CpkEWZD6.js";import"./render-Djx15dPh.js";import"./channel-activity-CIycjzUC.js";import"./tables-C6TX2QvW.js";import"./send-B4kzPtcN.js";import"./fetch-J0IzopiJ.js";import"./skill-commands-BZlF3g3o.js";import"./outbound-attachment-DS0S0NLK.js";import"./send-h_kE-cAK.js";import"./query-expansion-Cb2vnF6y.js";import"./manager-BnytMgmq.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-CKlA2xRB.cjs`);require(`./proxy-env-DWw9TnOj.cjs`),require(`./send-DCF59ijQ.cjs`);const r=require(`./send-D13uFnzH.cjs`),i=require(`./dispatch-Bi3yeWxb.cjs`),a=require(`./tokens-DtrljGtQ.cjs`),o=require(`./deliver-BiBFW5fm.cjs`);require(`./github-copilot-token-DoHgkI2r.cjs`);const s=require(`./fetch-guard-DqTxZ3G8.cjs`),c=require(`./send-Bp4f-KJu.cjs`);require(`./local-roots-B4Uy4kG3.cjs`);const l=require(`./ir-B7agH4cQ.cjs`);require(`./diagnostic-C0xDsk89.cjs`),require(`./pi-model-discovery-DdSVvbQ5.cjs`),require(`./audio-transcription-runner-DoR-NOcV.cjs`),require(`./image-KfZYW6Lh.cjs`),require(`./api-key-rotation-CmesQWXP.cjs`),require(`./proxy-fetch-BaA3JYgW.cjs`),require(`./commands-registry-D-AnIQWz.cjs`),require(`./fetch-CZewCAvu.cjs`),require(`./render-DxBO2Blp.cjs`),require(`./target-errors-B-mJ4s4b.cjs`),require(`./channel-activity-Bu8tAmGa.cjs`),require(`./tables-C5b2CtNw.cjs`),require(`./send-Cs5jSTw0.cjs`),require(`./fetch-DUMEaqum.cjs`),require(`./skill-commands-CM9ziCQY.cjs`),require(`./outbound-attachment-CtA5eBgj.cjs`),require(`./send-mZ_d-t_3.cjs`),require(`./query-expansion-BYSjmpkV.cjs`),require(`./manager-BeLNhsXC.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-CKlA2xRB.cjs`);require(`./proxy-env-DWw9TnOj.cjs`),require(`./send-DCF59ijQ.cjs`);const r=require(`./send-D13uFnzH.cjs`),i=require(`./dispatch-DpztrKuM.cjs`),a=require(`./tokens-DtrljGtQ.cjs`),o=require(`./deliver-BiBFW5fm.cjs`);require(`./github-copilot-token-DoHgkI2r.cjs`);const s=require(`./fetch-guard-DqTxZ3G8.cjs`),c=require(`./send-Bp4f-KJu.cjs`);require(`./local-roots-B4Uy4kG3.cjs`);const l=require(`./ir-B7agH4cQ.cjs`);require(`./diagnostic-C0xDsk89.cjs`),require(`./pi-model-discovery-DdSVvbQ5.cjs`),require(`./audio-transcription-runner-DoR-NOcV.cjs`),require(`./image-KfZYW6Lh.cjs`),require(`./api-key-rotation-CmesQWXP.cjs`),require(`./proxy-fetch-BaA3JYgW.cjs`),require(`./commands-registry-D-AnIQWz.cjs`),require(`./fetch-CZewCAvu.cjs`),require(`./render-DxBO2Blp.cjs`),require(`./target-errors-B-mJ4s4b.cjs`),require(`./channel-activity-Bu8tAmGa.cjs`),require(`./tables-C5b2CtNw.cjs`),require(`./send-Cs5jSTw0.cjs`),require(`./fetch-DUMEaqum.cjs`),require(`./skill-commands-CM9ziCQY.cjs`),require(`./outbound-attachment-CtA5eBgj.cjs`),require(`./send-mZ_d-t_3.cjs`),require(`./query-expansion-BYSjmpkV.cjs`),require(`./manager-BeLNhsXC.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-eNVBeC-B.js";import"./proxy-env-DGzNnnJh.js";import"./send-CmoJSYhT.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-DavwL7cF.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-6m3206FH.js";import{i as V,n as H}from"./tokens-BPc1fcZ3.js";import{P as U}from"./deliver-cT-Q8v0h.js";import"./github-copilot-token-Bt4PduRB.js";import{t as W}from"./fetch-guard-DELiFG5g.js";import{nt as G,rt as oe}from"./send--HeMLLzj.js";import"./local-roots-CW78ZeZV.js";import{_ as K}from"./ir-BzZArF6l.js";import"./diagnostic-BvR96WdC.js";import"./pi-model-discovery-CRSZ0OFi.js";import"./audio-transcription-runner-kAVM4YFR.js";import"./image-DUHEJeBF.js";import"./api-key-rotation-7qlqJ_ou.js";import"./proxy-fetch-Del551nu.js";import"./commands-registry-DqemUyiv.js";import"./fetch-B1GR6-u4.js";import"./render-DhTJXP1U.js";import"./target-errors-BAHAHc8f.js";import"./channel-activity-Cia2G3v5.js";import"./tables-D_J655yN.js";import"./send-CIP1u5a-.js";import"./fetch-B27H-XCf.js";import"./skill-commands-CGOPOT-r.js";import"./outbound-attachment-B6SJy_CG.js";import"./send-OQcuL9tP.js";import"./query-expansion-r_iXkNzt.js";import"./manager-B6hWglXe.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-eNVBeC-B.js";import"./proxy-env-DGzNnnJh.js";import"./send-CmoJSYhT.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-DavwL7cF.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-evtvC4CX.js";import{i as V,n as H}from"./tokens-BPc1fcZ3.js";import{P as U}from"./deliver-cT-Q8v0h.js";import"./github-copilot-token-Bt4PduRB.js";import{t as W}from"./fetch-guard-DELiFG5g.js";import{nt as G,rt as oe}from"./send--HeMLLzj.js";import"./local-roots-CW78ZeZV.js";import{_ as K}from"./ir-BzZArF6l.js";import"./diagnostic-BvR96WdC.js";import"./pi-model-discovery-CRSZ0OFi.js";import"./audio-transcription-runner-kAVM4YFR.js";import"./image-DUHEJeBF.js";import"./api-key-rotation-7qlqJ_ou.js";import"./proxy-fetch-Del551nu.js";import"./commands-registry-DqemUyiv.js";import"./fetch-B1GR6-u4.js";import"./render-DhTJXP1U.js";import"./target-errors-BAHAHc8f.js";import"./channel-activity-Cia2G3v5.js";import"./tables-D_J655yN.js";import"./send-CIP1u5a-.js";import"./fetch-B27H-XCf.js";import"./skill-commands-CGOPOT-r.js";import"./outbound-attachment-B6SJy_CG.js";import"./send-OQcuL9tP.js";import"./query-expansion-r_iXkNzt.js";import"./manager-B6hWglXe.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};