@qqbrowser/openclaw-qbot 0.0.127 → 0.0.129

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 (1470) hide show
  1. package/dist/account-lookup-CW-_CL7y.js +1 -1
  2. package/dist/acp-cli-01SGjPGi.js +1 -1
  3. package/dist/acp-cli-uxN405XG.js +1 -1
  4. package/dist/active-listener-BZ6loNaF.js +1 -1
  5. package/dist/active-listener-D8VOdVx3.js +1 -1
  6. package/dist/active-listener-DB5mhDuO.js +1 -1
  7. package/dist/active-listener-DeKRt_UV.js +1 -1
  8. package/dist/agent-scope-DAWJwFfl.js +1 -1
  9. package/dist/agent-scope-DXZc3eNT.js +1 -1
  10. package/dist/agents-BMh3ZeoB.js +1 -1
  11. package/dist/agents.config-B-0lZSmb.js +1 -1
  12. package/dist/agents.config-BDEN2Eph.js +1 -1
  13. package/dist/allow-from-B6dI7oz8.js +1 -1
  14. package/dist/allow-from-DEeVIPKS.js +1 -1
  15. package/dist/api-BeG0ObSq.js +1 -1
  16. package/dist/api-Dx8x1KTs.js +1 -1
  17. package/dist/api-key-rotation-C_MG2y1D.js +1 -1
  18. package/dist/api-key-rotation-D8WsZ43x.js +1 -1
  19. package/dist/api-key-rotation-DYYvcqSG.js +1 -1
  20. package/dist/api-key-rotation-dNu0GxPN.js +1 -1
  21. package/dist/arg-split-BOqSMBuf.js +1 -1
  22. package/dist/arg-split-DE5RqDHq.js +1 -1
  23. package/dist/audio-preflight--K4-eUVY.js +1 -1
  24. package/dist/audio-preflight-BKIm58PG.js +1 -1
  25. package/dist/audio-preflight-CAfi10dl.js +1 -1
  26. package/dist/audio-preflight-Xm0NL5JA.js +1 -1
  27. package/dist/audio-transcription-runner-BJNP7vB8.js +1 -1
  28. package/dist/audio-transcription-runner-BUsb6cqv.js +1 -1
  29. package/dist/audio-transcription-runner-C_31Yoq0.js +1 -1
  30. package/dist/audio-transcription-runner-CjKLRVPo.js +1 -1
  31. package/dist/audit-7DFnKINd.js +1 -1
  32. package/dist/audit-B6LsW3Ai.js +1 -1
  33. package/dist/audit-membership-runtime-BpRsMj5-.js +1 -1
  34. package/dist/audit-membership-runtime-BsfLZNBj.js +1 -1
  35. package/dist/audit-membership-runtime-DRHirRmx.js +1 -1
  36. package/dist/audit-membership-runtime-g0dEWJTp.js +1 -1
  37. package/dist/audit-membership-runtime-kdyToskD.js +1 -1
  38. package/dist/auth-choice-BNd2SNjJ.js +1 -1
  39. package/dist/auth-choice-C3aUWXx9.js +1 -1
  40. package/dist/auth-choice-DViEjgMg.js +1 -1
  41. package/dist/auth-choice-edozMf7r.js +1 -1
  42. package/dist/auth-choice-options-B3WQyS7I.js +1 -1
  43. package/dist/auth-choice-options-Dw14noox.js +1 -1
  44. package/dist/auth-choice-prompt-uegl56cf.js +1 -1
  45. package/dist/auth-choice-prompt-xYj13czb.js +1 -1
  46. package/dist/auth-choice.apply-helpers-CNLYnRxx.js +1 -1
  47. package/dist/auth-choice.apply-helpers-DCe5nTyP.js +1 -1
  48. package/dist/auth-profiles-BhXA8Jy2.js +1 -1
  49. package/dist/auth-token-C75IOb_K.js +1 -1
  50. package/dist/auth-token-CzgZf-ta.js +1 -1
  51. package/dist/banner-mIDEloRy.js +1 -1
  52. package/dist/bonjour-discovery-CpvzLjyB.js +1 -1
  53. package/dist/bonjour-discovery-wsh3Si1Q.js +1 -1
  54. package/dist/boolean-Ch3DfXPy.js +1 -1
  55. package/dist/boolean-D15s2V33.js +1 -1
  56. package/dist/boolean-DypnRoRK.js +1 -1
  57. package/dist/brew-COcDl8CB.js +1 -1
  58. package/dist/brew-DDPm_HfE.js +1 -1
  59. package/dist/browser-cli-BjzNbvF9.js +1 -1
  60. package/dist/browser-cli-CgHkgtgV.js +1 -1
  61. package/dist/build-info.json +3 -3
  62. package/dist/bundled/boot-md/handler.js +1 -1
  63. package/dist/bundled/bootstrap-extra-files/handler.js +1 -1
  64. package/dist/bundled/command-logger/handler.js +1 -1
  65. package/dist/bundled/session-memory/handler.js +1 -1
  66. package/dist/call-BA3O_Qpl.js +1 -1
  67. package/dist/call-BQT0zCgv.js +1 -1
  68. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  69. package/dist/channel-account-context-BMPAMZEv.js +1 -1
  70. package/dist/channel-account-context-DAcarnqW.js +1 -1
  71. package/dist/channel-activity-B04WbrrK.js +1 -1
  72. package/dist/channel-activity-BPRCQpI6.js +1 -1
  73. package/dist/channel-activity-D2VTmenR.js +1 -1
  74. package/dist/channel-activity-DHY5wAyl.js +1 -1
  75. package/dist/channel-activity-DYpm-0Cz.js +1 -1
  76. package/dist/channel-options-BYmHreMn.js +1 -1
  77. package/dist/channel-options-Cbv7VETu.js +1 -1
  78. package/dist/channel-selection-Ddyykqxv.js +1 -1
  79. package/dist/channel-selection-oRONo9z3.js +1 -1
  80. package/dist/channel-web-CK4RqVCH.js +1 -1
  81. package/dist/channel-web-Xw89Exy3.js +1 -1
  82. package/dist/channels/plugins/actions/discord.js +1 -1
  83. package/dist/channels/plugins/actions/signal.js +1 -1
  84. package/dist/channels/plugins/actions/telegram.js +1 -1
  85. package/dist/channels/plugins/agent-tools/whatsapp-login.js +1 -1
  86. package/dist/channels-cli-D2y5Xk5i.js +1 -1
  87. package/dist/channels-cli-cwFjBXcP.js +1 -1
  88. package/dist/channels-status-issues-8eFrGKyf.js +1 -1
  89. package/dist/channels-status-issues-PRgOT90w.js +1 -1
  90. package/dist/chat-envelope-Bznn2SoS.js +1 -1
  91. package/dist/chat-envelope-HVpKusFc.js +1 -1
  92. package/dist/clack-prompter-DBPdGdqp.js +1 -1
  93. package/dist/clack-prompter-Dq0aY6iM.js +1 -1
  94. package/dist/clawbot-cli-BwG1-8A9.js +1 -1
  95. package/dist/clawbot-cli-CaNu5A0G.js +1 -1
  96. package/dist/cleanup-utils-BWm70DoD.js +1 -1
  97. package/dist/cleanup-utils-D-RhEX6F.js +1 -1
  98. package/dist/cli-CQKA38bc.js +1 -1
  99. package/dist/cli-i7P4bYBg.js +1 -1
  100. package/dist/cli-utils-BY7dLMFy.js +1 -1
  101. package/dist/cli-utils-BleB1eys.js +1 -1
  102. package/dist/clipboard-Bk8cviBt.js +1 -1
  103. package/dist/clipboard-CKT_VIkG.js +1 -1
  104. package/dist/cmd-argv-BBT5l8AV.js +1 -1
  105. package/dist/cmd-argv-Bh-KpaZ0.js +1 -1
  106. package/dist/command-format-BbDT1tlm.js +1 -1
  107. package/dist/command-format-CLxIPuLR.js +1 -1
  108. package/dist/command-options-BpOUDl2S.js +1 -1
  109. package/dist/command-options-Bq5nQxz6.js +1 -1
  110. package/dist/command-poll-backoff-BZLHYB2k.js +1 -1
  111. package/dist/command-poll-backoff-Cww_r-24.js +1 -1
  112. package/dist/command-poll-backoff-Df6cOQrX.js +1 -1
  113. package/dist/command-poll-backoff-endAPdwn.js +1 -1
  114. package/dist/command-registry-BYk36N_R.js +1 -1
  115. package/dist/command-secret-targets-BBTiqQKa.js +1 -1
  116. package/dist/command-secret-targets-KM3OecbM.js +1 -1
  117. package/dist/commands-CGpM84iR.js +1 -1
  118. package/dist/commands-Dy7duWlt.js +1 -1
  119. package/dist/commands-registry-B3FI6TSl.js +1 -1
  120. package/dist/commands-registry-CxDVU5s9.js +1 -1
  121. package/dist/commands-registry-Dn2uuNuy.js +1 -1
  122. package/dist/commands-registry-Du79fdAL.js +1 -1
  123. package/dist/compact-CuBCVnVS.js +1 -1
  124. package/dist/completion-cli-CRNTbZlR.js +1 -1
  125. package/dist/completion-cli-DbGDCoiM.js +1 -1
  126. package/dist/config-BqW5S1xL.js +1 -1
  127. package/dist/config-DAQjvwZw.js +1 -1
  128. package/dist/config-cli-D_coAWd9.js +1 -1
  129. package/dist/config-cli-EKXoNzLf.js +1 -1
  130. package/dist/config-guard-U0wlYLUN.js +1 -1
  131. package/dist/config-guard-XayIkveC.js +1 -1
  132. package/dist/config-validation-B0nN9egx.js +1 -1
  133. package/dist/config-validation-CAHnpjrk.js +1 -1
  134. package/dist/configure-DNnQRKy8.js +1 -1
  135. package/dist/configure-NCNskZPe.js +1 -1
  136. package/dist/connection-auth-BcPbGyxw.js +1 -1
  137. package/dist/connection-auth-DZ-3Svr_.js +1 -1
  138. package/dist/context-window-guard-7crlatf9.js +1 -1
  139. package/dist/context-window-guard-CPChk363.js +1 -1
  140. package/dist/control-ui/apple-touch-icon.png +0 -0
  141. package/dist/control-ui/assets/de-DuUYLvt1.js +1 -0
  142. package/dist/control-ui/assets/es-DHtyqUQZ.js +1 -0
  143. package/dist/control-ui/assets/index-CYbiPp9k.js +8383 -0
  144. package/dist/control-ui/assets/index-C_GaJ8wS.css +1 -0
  145. package/dist/control-ui/assets/pt-BR-D2dJb9G8.js +1 -0
  146. package/dist/control-ui/assets/zh-CN-BgJ8_lE3.js +1 -0
  147. package/dist/control-ui/assets/zh-TW-cW5xB87I.js +1 -0
  148. package/dist/control-ui/favicon-32.png +0 -0
  149. package/dist/control-ui/favicon.ico +0 -0
  150. package/dist/control-ui/favicon.svg +22 -0
  151. package/dist/control-ui/index.html +17 -0
  152. package/dist/control-ui-assets-BIa0GGDg.js +1 -1
  153. package/dist/control-ui-assets-CTHGGgaX.js +1 -1
  154. package/dist/cron-cli-Cro66JtU.js +1 -1
  155. package/dist/cron-cli-DIeBukvk.js +1 -1
  156. package/dist/daemon-cli-Cw_fxNgE.js +1 -1
  157. package/dist/daemon-cli-DQsKS3pT.js +1 -1
  158. package/dist/daemon-cli.js +1 -1
  159. package/dist/daemon-install-C_DmJEkV.js +1 -1
  160. package/dist/daemon-install-D1DacLbM.js +1 -1
  161. package/dist/daemon-install-plan.shared-BSDdwWjB.js +1 -1
  162. package/dist/daemon-install-plan.shared-Dx3DBXCG.js +1 -1
  163. package/dist/daemon-runtime-DHiDbRuC.js +1 -1
  164. package/dist/daemon-runtime-VcpeBRJV.js +1 -1
  165. package/dist/dangerous-name-matching-BOmvAibz.js +1 -1
  166. package/dist/dangerous-name-matching-DtllRqBD.js +1 -1
  167. package/dist/dangerous-tools-CFRYQJ6V.js +1 -1
  168. package/dist/dangerous-tools-oYCu5wfC.js +1 -1
  169. package/dist/deliver-2c-EsQ_W.js +1 -1
  170. package/dist/deliver-BudDnEIb.js +1 -1
  171. package/dist/deliver-COKdxPmA.js +1 -1
  172. package/dist/deliver-DHP2vHKB.js +1 -1
  173. package/dist/delivery-queue-CKbauSFq.js +1 -1
  174. package/dist/delivery-queue-nkPJu0fY.js +1 -1
  175. package/dist/device-pairing-4eDo43Kk.js +1 -1
  176. package/dist/device-pairing-B7ZXiXp3.js +1 -1
  177. package/dist/devices-cli-BXUIb_UN.js +1 -1
  178. package/dist/devices-cli-D7PkbnHO.js +1 -1
  179. package/dist/diagnostic-Bzd5vlKH.js +1 -1
  180. package/dist/diagnostic-CFmHdXHP.js +1 -1
  181. package/dist/diagnostic-CW_Jv5UM.js +1 -1
  182. package/dist/diagnostic-Dza7-pMC.js +1 -1
  183. package/dist/diagnostics-BgbeL9KE.js +1 -1
  184. package/dist/diagnostics-Cdctg9K_.js +1 -1
  185. package/dist/directory-cli-CxeuNJcC.js +1 -1
  186. package/dist/directory-cli-DFlYCB5L.js +1 -1
  187. package/dist/dns-cli-BDbHznhi.js +1 -1
  188. package/dist/dns-cli-OuwliJ60.js +1 -1
  189. package/dist/docs-cli-Cdw9Iz9a.js +1 -1
  190. package/dist/docs-cli-ClD2UyX1.js +1 -1
  191. package/dist/doctor-completion-BSOX-LSq.js +1 -1
  192. package/dist/doctor-completion-DXqdpdlo.js +1 -1
  193. package/dist/doctor-config-flow-DHB8N7tT.js +1 -1
  194. package/dist/doctor-config-flow-MjfHBDlw.js +1 -1
  195. package/dist/enable-DVuqWT2a.js +1 -1
  196. package/dist/enable-DWaSH1HY.js +1 -1
  197. package/dist/entry-status-CCwwKO43.js +1 -1
  198. package/dist/entry-status-CoXkbJcX.js +1 -1
  199. package/dist/entry.js +1 -1
  200. package/dist/env-D7wNuBx1.js +1 -1
  201. package/dist/env-overrides-DHtB4kK3.js +1 -1
  202. package/dist/env-overrides-DXJbFrwI.js +1 -1
  203. package/dist/errors-6SQWM9dj.js +1 -1
  204. package/dist/errors-Bunti32V.js +1 -1
  205. package/dist/exec-B3eleY5O.js +1 -1
  206. package/dist/exec-DHqLtFYt.js +1 -1
  207. package/dist/exec-approvals-BXO9Cezj.js +1 -1
  208. package/dist/exec-approvals-BpBNEy6i.js +1 -1
  209. package/dist/exec-approvals-allowlist-BKFaHvA5.js +1 -1
  210. package/dist/exec-approvals-allowlist-DBh9Pm77.js +1 -1
  211. package/dist/exec-approvals-cli-0neCwpk-.js +1 -1
  212. package/dist/exec-approvals-cli-BuHSw09B.js +1 -1
  213. package/dist/exec-safe-bin-runtime-policy-Ck3GO5AB.js +1 -1
  214. package/dist/exec-safe-bin-runtime-policy-D2WexijZ.js +1 -1
  215. package/dist/fetch-BI3CnKE3.js +1 -1
  216. package/dist/fetch-BJT3BrkJ.js +1 -1
  217. package/dist/fetch-Bn0mWg6a.js +1 -1
  218. package/dist/fetch-CY5G3PDq.js +1 -1
  219. package/dist/fetch-Ce-scEU-.js +1 -1
  220. package/dist/fetch-D0rZDHKO.js +1 -1
  221. package/dist/fetch-DHo17YmK.js +1 -1
  222. package/dist/fetch-Dh-apy46.js +1 -1
  223. package/dist/fetch-Dikjvc5M.js +1 -1
  224. package/dist/fetch-DsjPfQlp.js +1 -1
  225. package/dist/fetch-_g8lZ8K8.js +1 -1
  226. package/dist/fetch-guard-BaRbr_V6.js +1 -1
  227. package/dist/fetch-guard-BmNIhXP-.js +1 -1
  228. package/dist/fetch-guard-ChVqc0HF.js +1 -1
  229. package/dist/fetch-guard-Cji70DJW.js +1 -1
  230. package/dist/fetch-hy0JKSsm.js +1 -1
  231. package/dist/fetch-timeout-CdYxWG9w.js +1 -1
  232. package/dist/fetch-timeout-Cj8_oAls.js +1 -1
  233. package/dist/fetch-timeout-DoOI_izT.js +1 -1
  234. package/dist/fetch-timeout-u8g99Ax0.js +1 -1
  235. package/dist/fetch-xT2jRpqs.js +1 -1
  236. package/dist/format-Bn1bwJKX.js +1 -1
  237. package/dist/format-Ce7I7s-k.js +1 -1
  238. package/dist/format-duration-C8AzNqKh.js +1 -1
  239. package/dist/format-duration-D5AMtmHa.js +1 -1
  240. package/dist/format-relative-B9pSIdGe.js +1 -1
  241. package/dist/format-relative-DkMjYy7z.js +1 -1
  242. package/dist/frontmatter-BkZkwkVO.js +1 -1
  243. package/dist/frontmatter-C7mzDNxd.js +1 -1
  244. package/dist/frontmatter-CzpfPBFl.js +1 -1
  245. package/dist/gateway-cli-Bj-BYgGN.js +1 -1
  246. package/dist/gateway-cli-DP65otLl.js +1 -1
  247. package/dist/gateway-install-token-BIqlEgy0.js +1 -1
  248. package/dist/gateway-install-token-CtUJl3A3.js +1 -1
  249. package/dist/gateway-rpc-DJHjmEZz.js +1 -1
  250. package/dist/gateway-rpc-XRAMeV67.js +1 -1
  251. package/dist/github-copilot-token-C79yeDKS.js +1 -1
  252. package/dist/github-copilot-token-DGYAlOmV.js +1 -1
  253. package/dist/github-copilot-token-DePP-lIf.js +1 -1
  254. package/dist/github-copilot-token-wm6mbypz.js +1 -1
  255. package/dist/gmail-setup-utils-CYOH3zzx.js +1 -1
  256. package/dist/gmail-setup-utils-S-MyEGuj.js +1 -1
  257. package/dist/group-access-BHKVOhrj.js +1 -1
  258. package/dist/group-access-D2DOYMfr.js +1 -1
  259. package/dist/health-Bedsiigi.js +1 -1
  260. package/dist/health-Cy_CvKbX.js +1 -1
  261. package/dist/health-format-B1nj3Wfn.js +1 -1
  262. package/dist/health-format-VBr6LEpt.js +1 -1
  263. package/dist/heartbeat-visibility-BQ_esv2m.js +1 -1
  264. package/dist/heartbeat-visibility-q74UdY8O.js +1 -1
  265. package/dist/help-format-B4aEI7V9.js +1 -1
  266. package/dist/help-format-BRbF_INg.js +1 -1
  267. package/dist/helpers-COz1ghcB.js +1 -1
  268. package/dist/helpers-Cp8gcO6u.js +1 -1
  269. package/dist/hooks-cli-DrnH2iDk.js +1 -1
  270. package/dist/hooks-cli-DvfZKyZl.js +1 -1
  271. package/dist/hooks-status-BHt-Xvh4.js +1 -1
  272. package/dist/hooks-status-CRJ4J0ZW.js +1 -1
  273. package/dist/image-BJC11A7e.js +1 -1
  274. package/dist/image-BKPxWO_2.js +1 -1
  275. package/dist/image-Ba-mOMMV.js +1 -1
  276. package/dist/image-D-R3N1it.js +1 -1
  277. package/dist/index.js +1 -1
  278. package/dist/inspect-BKV-I1UE.js +1 -1
  279. package/dist/inspect-z59cgmYc.js +1 -1
  280. package/dist/install-safe-path-C6kc_8NW.js +1 -1
  281. package/dist/install-safe-path-iesxijn2.js +1 -1
  282. package/dist/installs-BNeI_oML.js +1 -1
  283. package/dist/installs-C1xQLuby.js +1 -1
  284. package/dist/ipv4-BXZDlz5C.js +1 -1
  285. package/dist/ipv4-BnPLbv6y.js +1 -1
  286. package/dist/ir-BYCrFFZ9.js +1 -1
  287. package/dist/ir-CH7YvSi9.js +1 -1
  288. package/dist/ir-CSysIkNU.js +1 -1
  289. package/dist/ir-CZdZsdnI.js +1 -1
  290. package/dist/is-main-DG5ueqhF.js +1 -1
  291. package/dist/issue-format-CpTuk_rQ.js +1 -1
  292. package/dist/issue-format-kj7FXHhi.js +1 -1
  293. package/dist/kill-tree-DBJW8_Q-.js +1 -1
  294. package/dist/lifecycle-core-B72WHNHV.js +1 -1
  295. package/dist/lifecycle-core-dhkH_Nux.js +1 -1
  296. package/dist/line/accounts.js +1 -1
  297. package/dist/line/send.js +1 -1
  298. package/dist/line/template-messages.js +1 -1
  299. package/dist/links-CBnmRP9D.js +1 -1
  300. package/dist/links-CySwdMcF.js +1 -1
  301. package/dist/llm-slug-generator.js +1 -1
  302. package/dist/load-options-BsOW74dp.js +1 -1
  303. package/dist/load-options-C7dLuybp.js +1 -1
  304. package/dist/load-options-DV4j6Aqb.js +1 -1
  305. package/dist/load-options-Dwt0CeEg.js +1 -1
  306. package/dist/local-roots-Dxioh0C2.js +1 -1
  307. package/dist/logger-5W0OocJW.js +1 -1
  308. package/dist/logger-Bl8URnrW.js +1 -1
  309. package/dist/logger-DwWqfo66.js +1 -1
  310. package/dist/logger-kQAOe3qp.js +1 -1
  311. package/dist/logging-Dz4Qg6th.js +1 -1
  312. package/dist/logging-KiJmOmw4.js +1 -1
  313. package/dist/login-BMZxDYaU.js +1 -1
  314. package/dist/login-BdzP8F8J.js +1 -1
  315. package/dist/login-BzU0cMck.js +1 -1
  316. package/dist/login-Cb1A6qwM.js +1 -1
  317. package/dist/login-qr-BgsmAwKm.js +1 -1
  318. package/dist/login-qr-Bux8gWTO.js +1 -1
  319. package/dist/login-qr-COr_25Hx.js +1 -1
  320. package/dist/login-qr-CxBPOOAK.js +1 -1
  321. package/dist/login-qr-DnQm7bM4.js +1 -1
  322. package/dist/logs-cli-BM2XCmrH.js +1 -1
  323. package/dist/logs-cli-HKhyxaUs.js +1 -1
  324. package/dist/manager-B6zZuJEB.js +1 -1
  325. package/dist/manager-BwrZfep3.js +1 -1
  326. package/dist/manager-C5SBozw4.js +1 -1
  327. package/dist/manager-CjihRbGa.js +1 -1
  328. package/dist/memory-cli-CnruTL1h.js +1 -1
  329. package/dist/memory-cli-DHvscp7X.js +1 -1
  330. package/dist/model-catalog-BLdaFmIo.js +1 -1
  331. package/dist/model-catalog-vNCcsy4h.js +1 -1
  332. package/dist/model-param-b-B0r2cPDw.js +1 -1
  333. package/dist/model-param-b-BqIr5rY5.js +1 -1
  334. package/dist/model-picker-BaeW3tiV.js +1 -1
  335. package/dist/model-picker-DN0czUYS.js +1 -1
  336. package/dist/model-selection-C2QwHmXT.js +1 -1
  337. package/dist/model-selection-I1ctjFOB.js +1 -1
  338. package/dist/model-selection-qkByRv5A.js +1 -1
  339. package/dist/models-UTdl0vXO.js +1 -1
  340. package/dist/models-cli-QRONP7EL.js +1 -1
  341. package/dist/models-cli-vRoB_gfX.js +1 -1
  342. package/dist/models-config-CWIlroKT.js +1 -1
  343. package/dist/models-config-DN2Q51fC.js +1 -1
  344. package/dist/mutable-allowlist-detectors-C4rNVag8.js +1 -1
  345. package/dist/mutable-allowlist-detectors-CL0qe54J.js +1 -1
  346. package/dist/node-cli-2-E4-83G.js +1 -1
  347. package/dist/node-cli-DUI7Zctj.js +1 -1
  348. package/dist/node-command-policy-Bbmnc16l.js +1 -1
  349. package/dist/node-command-policy-DgkwfoCs.js +1 -1
  350. package/dist/node-commands-8GBOiktk.js +1 -1
  351. package/dist/node-commands-DdkziOTx.js +1 -1
  352. package/dist/node-resolve-B3BJbmQX.js +1 -1
  353. package/dist/node-resolve-DLZf3-1V.js +1 -1
  354. package/dist/node-service-BRfrNp8l.js +1 -1
  355. package/dist/node-service-C0bl7jcZ.js +1 -1
  356. package/dist/node-shell-dXp4vk-i.js +1 -1
  357. package/dist/nodes-cli-DU13-dCL.js +1 -1
  358. package/dist/nodes-cli-rPeIRj_f.js +1 -1
  359. package/dist/nodes-screen-C7-5RrbN.js +1 -1
  360. package/dist/note-D4GAwgha.js +1 -1
  361. package/dist/note-Dp-d_utk.js +1 -1
  362. package/dist/npm-pack-install-B23L-AtF.js +1 -1
  363. package/dist/npm-pack-install-C0te3Oap.js +1 -1
  364. package/dist/npm-resolution-BCXCw93f.js +1 -1
  365. package/dist/npm-resolution-Cmm82lui.js +1 -1
  366. package/dist/oauth-env-DAamJ1oz.js +1 -1
  367. package/dist/oauth-env-DSLBTWb1.js +1 -1
  368. package/dist/oauth-tls-preflight-BSBRDIfC.js +1 -1
  369. package/dist/oauth-tls-preflight-ByNjbUR5.js +1 -1
  370. package/dist/ollama-setup-CKt3tF-S.js +1 -1
  371. package/dist/ollama-setup-I8lghdX1.js +1 -1
  372. package/dist/onboard-B3WSjKCu.js +1 -1
  373. package/dist/onboard-C65vdb94.js +1 -1
  374. package/dist/onboard-channels-9CmG3Jgn.js +1 -1
  375. package/dist/onboard-channels-CV1AK9jY.js +1 -1
  376. package/dist/onboard-config-B7U20YRw.js +1 -1
  377. package/dist/onboard-config-DS9dUv8M.js +1 -1
  378. package/dist/onboard-custom-CwHYUB0T.js +1 -1
  379. package/dist/onboard-custom-uwufXtQf.js +1 -1
  380. package/dist/onboard-helpers-CGJLUoxR.js +1 -1
  381. package/dist/onboard-helpers-DbpWQoiB.js +1 -1
  382. package/dist/onboard-hooks-CERzXObm.js +1 -1
  383. package/dist/onboard-hooks-gQ3sxBNi.js +1 -1
  384. package/dist/onboard-provider-auth-flags-CqbipO7D.js +1 -1
  385. package/dist/onboard-provider-auth-flags-Dvwzdz37.js +1 -1
  386. package/dist/onboard-remote-BeDZ_gbH.js +1 -1
  387. package/dist/onboard-remote-KTUx-3G1.js +1 -1
  388. package/dist/onboard-search-f2tJD4hg.js +1 -1
  389. package/dist/onboard-search-fslKKhyg.js +1 -1
  390. package/dist/onboard-skills-BoS_oVdm.js +1 -1
  391. package/dist/onboard-skills-C4omGWoD.js +1 -1
  392. package/dist/onboarding-B8icigkk.js +1 -1
  393. package/dist/onboarding-BJRqNsZ8.js +1 -1
  394. package/dist/onboarding.finalize-D0qISqn-.js +1 -1
  395. package/dist/onboarding.finalize-Ds9NwPBL.js +1 -1
  396. package/dist/onboarding.gateway-config-F8n_QFUR.js +1 -1
  397. package/dist/onboarding.gateway-config-eno73eHw.js +1 -1
  398. package/dist/onboarding.secret-input-B6fzeucQ.js +1 -1
  399. package/dist/onboarding.secret-input-CBuD3c32.js +1 -1
  400. package/dist/openai-codex-model-default-Df2T3foI.js +1 -1
  401. package/dist/openai-codex-model-default-DtIeKJm0.js +1 -1
  402. package/dist/openai-model-default-DIE55yBt.js +1 -1
  403. package/dist/openai-model-default-sqvWk4kB.js +1 -1
  404. package/dist/openclaw-exec-env-BWbOu_YC.js +1 -1
  405. package/dist/openclaw-root-CnsBf6ZU.js +1 -1
  406. package/dist/openclaw-root-D_0Q6--h.js +1 -1
  407. package/dist/outbound-B88MLJN3.js +1 -1
  408. package/dist/outbound-C-4qToKv.js +1 -1
  409. package/dist/outbound-CSk4oF0g.js +1 -1
  410. package/dist/outbound-DKMI_4xm.js +1 -1
  411. package/dist/outbound-attachment-BOax42-M.js +1 -1
  412. package/dist/outbound-attachment-DBNxdLYh.js +1 -1
  413. package/dist/outbound-attachment-DVjJQ3V6.js +1 -1
  414. package/dist/outbound-attachment-aZWcoZ-N.js +1 -1
  415. package/dist/pairing-cli-Cby6Ww8F.js +1 -1
  416. package/dist/pairing-cli-DiJb_a0V.js +1 -1
  417. package/dist/pairing-labels-BP1h0iHy.js +1 -1
  418. package/dist/pairing-labels-ryOnuOFA.js +1 -1
  419. package/dist/pairing-store-Bv4KSELv.js +1 -1
  420. package/dist/pairing-store-CjTPxq0X.js +1 -1
  421. package/dist/pairing-token-CKX1ds78.js +1 -1
  422. package/dist/pairing-token-CX0SUJsB.js +1 -1
  423. package/dist/parse-duration-XTjMKl8s.js +1 -1
  424. package/dist/parse-finite-number-DqzUM-_s.js +1 -1
  425. package/dist/parse-finite-number-dBmDLLKL.js +1 -1
  426. package/dist/parse-log-line-CsYLg7Qu.js +1 -1
  427. package/dist/parse-log-line-NV-cipB_.js +1 -1
  428. package/dist/parse-port-Bv1Y9Wk5.js +1 -1
  429. package/dist/parse-port-JVwkxcZ8.js +1 -1
  430. package/dist/parse-timeout-DWSGfCkQ.js +1 -1
  431. package/dist/parse-timeout-Dx4QnVzo.js +1 -1
  432. package/dist/path-alias-guards-kY_ZbWs-.js +1 -1
  433. package/dist/path-alias-guards-mvyLCPlN.js +1 -1
  434. package/dist/path-env-BPd1Yd-i.js +1 -1
  435. package/dist/path-env-emdAQejM.js +1 -1
  436. package/dist/path-safety-BukYK8Kd.js +1 -1
  437. package/dist/path-safety-DaaMJFdt.js +1 -1
  438. package/dist/paths-B4IRk3wi.js +1 -1
  439. package/dist/paths-BfjJY2VL.js +1 -1
  440. package/dist/paths-BjD3T_xq.js +1 -1
  441. package/dist/paths-BpQOWYiT.js +1 -1
  442. package/dist/paths-CChBdtE8.js +1 -1
  443. package/dist/paths-CrCoPIVK.js +1 -1
  444. package/dist/paths-piJASC5k.js +1 -1
  445. package/dist/paths-yLEk_25I.js +1 -1
  446. package/dist/pi-embedded-ZEWNj7P5.js +1 -1
  447. package/dist/pi-embedded-bqE4EmdD.js +1 -1
  448. package/dist/pi-model-discovery-6myCPEJE.js +1 -1
  449. package/dist/pi-model-discovery-AiV9h8k6.js +1 -1
  450. package/dist/pi-model-discovery-BzqdozHB.js +1 -1
  451. package/dist/pi-model-discovery-C8YBu6D4.js +1 -1
  452. package/dist/pi-tools.before-tool-call.runtime-CPAJMO7J.js +1 -1
  453. package/dist/pi-tools.before-tool-call.runtime-CYmLHod0.js +1 -1
  454. package/dist/pi-tools.before-tool-call.runtime-CfVqI0Ng.js +1 -1
  455. package/dist/pi-tools.before-tool-call.runtime-D9FlPJ_v.js +1 -1
  456. package/dist/pi-tools.policy-CeSKHaKa.js +1 -1
  457. package/dist/plugin-auto-enable-Cp7L8ko8.js +1 -1
  458. package/dist/plugin-auto-enable-DCOxqfDQ.js +1 -1
  459. package/dist/plugin-install-plan-BobX0y9S.js +1 -1
  460. package/dist/plugin-install-plan-NvDGp0d8.js +1 -1
  461. package/dist/plugin-registry-Fg000e4I.js +1 -1
  462. package/dist/plugin-registry-fm5tDUbE.js +1 -1
  463. package/dist/plugin-sdk/account-id.cjs +1 -1
  464. package/dist/plugin-sdk/account-id.js +1 -1
  465. package/dist/plugin-sdk/acpx.cjs +1 -1
  466. package/dist/plugin-sdk/acpx.js +1 -1
  467. package/dist/plugin-sdk/active-listener-BFeaYGID.js +1 -1
  468. package/dist/plugin-sdk/active-listener-BszCM2Au.cjs +1 -1
  469. package/dist/plugin-sdk/active-listener-CIcleJgU.cjs +1 -1
  470. package/dist/plugin-sdk/active-listener-Cqgd7xVh.cjs +1 -1
  471. package/dist/plugin-sdk/active-listener-D578zEtk.cjs +1 -1
  472. package/dist/plugin-sdk/active-listener-D6gGPLq-.js +1 -1
  473. package/dist/plugin-sdk/active-listener-DKSZRn4x.cjs +1 -1
  474. package/dist/plugin-sdk/active-listener-DNO10F1L.js +1 -1
  475. package/dist/plugin-sdk/active-listener-DQq07Aar.js +1 -1
  476. package/dist/plugin-sdk/active-listener-Dle_kYqb.js +1 -1
  477. package/dist/plugin-sdk/active-listener-DmJcHkMC.js +1 -1
  478. package/dist/plugin-sdk/active-listener-UmFpcYFY.cjs +1 -1
  479. package/dist/plugin-sdk/api-key-rotation-39TRXDEA.cjs +1 -1
  480. package/dist/plugin-sdk/api-key-rotation-7qlqJ_ou.js +1 -1
  481. package/dist/plugin-sdk/api-key-rotation-BY7fLi9z.js +1 -1
  482. package/dist/plugin-sdk/api-key-rotation-CF9_CKS-.cjs +1 -1
  483. package/dist/plugin-sdk/api-key-rotation-CWylhFOt.cjs +1 -1
  484. package/dist/plugin-sdk/api-key-rotation-ClZmonv2.js +1 -1
  485. package/dist/plugin-sdk/api-key-rotation-CmesQWXP.cjs +1 -1
  486. package/dist/plugin-sdk/api-key-rotation-Cs6II2__.js +1 -1
  487. package/dist/plugin-sdk/api-key-rotation-CxaiMcI1.js +1 -1
  488. package/dist/plugin-sdk/api-key-rotation-D5cfmg7E.cjs +1 -1
  489. package/dist/plugin-sdk/api-key-rotation-DkP7KnSm.cjs +1 -1
  490. package/dist/plugin-sdk/api-key-rotation-mDqgBFMG.js +1 -1
  491. package/dist/plugin-sdk/audio-preflight-B-HrF5Oc.js +1 -1
  492. package/dist/plugin-sdk/audio-preflight-B2MGeSoT.js +1 -1
  493. package/dist/plugin-sdk/audio-preflight-BVjiz_Qk.cjs +1 -1
  494. package/dist/plugin-sdk/audio-preflight-Behqe7F3.cjs +1 -1
  495. package/dist/plugin-sdk/audio-preflight-C0ncOCbK.cjs +1 -1
  496. package/dist/plugin-sdk/audio-preflight-C1o1n-KK.js +1 -1
  497. package/dist/plugin-sdk/audio-preflight-CzLYTZ5P.cjs +1 -1
  498. package/dist/plugin-sdk/audio-preflight-DDiBwIB9.js +1 -1
  499. package/dist/plugin-sdk/audio-preflight-DQyh-XSn.cjs +1 -1
  500. package/dist/plugin-sdk/audio-preflight-WH9WDR81.cjs +1 -1
  501. package/dist/plugin-sdk/audio-preflight-ZPLO3G1S.js +1 -1
  502. package/dist/plugin-sdk/audio-preflight-s3BAID12.js +1 -1
  503. package/dist/plugin-sdk/audio-transcription-runner-2-ZQ5Md-.cjs +1 -1
  504. package/dist/plugin-sdk/audio-transcription-runner-BO7T_SzP.cjs +1 -1
  505. package/dist/plugin-sdk/audio-transcription-runner-CRYJlAeP.js +1 -1
  506. package/dist/plugin-sdk/audio-transcription-runner-CmW24oVR.js +1 -1
  507. package/dist/plugin-sdk/audio-transcription-runner-CmYuWS0_.cjs +1 -1
  508. package/dist/plugin-sdk/audio-transcription-runner-CslXJs5c.js +1 -1
  509. package/dist/plugin-sdk/audio-transcription-runner-DE1tKTQV.cjs +1 -1
  510. package/dist/plugin-sdk/audio-transcription-runner-DZR84B28.js +1 -1
  511. package/dist/plugin-sdk/audio-transcription-runner-DoR-NOcV.cjs +1 -1
  512. package/dist/plugin-sdk/audio-transcription-runner-IE4olXkd.cjs +1 -1
  513. package/dist/plugin-sdk/audio-transcription-runner-YiDQM_Rb.js +1 -1
  514. package/dist/plugin-sdk/audio-transcription-runner-kAVM4YFR.js +1 -1
  515. package/dist/plugin-sdk/audit-membership-runtime-7LqcvqFo.js +1 -1
  516. package/dist/plugin-sdk/audit-membership-runtime-BQFUzFc0.cjs +1 -1
  517. package/dist/plugin-sdk/audit-membership-runtime-BYtdDX9G.cjs +1 -1
  518. package/dist/plugin-sdk/audit-membership-runtime-BzEtBUX6.cjs +1 -1
  519. package/dist/plugin-sdk/audit-membership-runtime-CBUmGrl4.js +1 -1
  520. package/dist/plugin-sdk/audit-membership-runtime-ChlVgt2y.js +1 -1
  521. package/dist/plugin-sdk/audit-membership-runtime-DLRX7LR0.js +1 -1
  522. package/dist/plugin-sdk/audit-membership-runtime-DbJW5X3L.cjs +1 -1
  523. package/dist/plugin-sdk/audit-membership-runtime-Du9LAxDa.cjs +1 -1
  524. package/dist/plugin-sdk/audit-membership-runtime-DylNnj1m.js +1 -1
  525. package/dist/plugin-sdk/audit-membership-runtime-voi5sPwF.js +1 -1
  526. package/dist/plugin-sdk/audit-membership-runtime-yWYvSpgZ.cjs +1 -1
  527. package/dist/plugin-sdk/bluebubbles.cjs +1 -1
  528. package/dist/plugin-sdk/bluebubbles.js +1 -1
  529. package/dist/plugin-sdk/channel-activity-Bed876M5.js +1 -1
  530. package/dist/plugin-sdk/channel-activity-Bu8tAmGa.cjs +1 -1
  531. package/dist/plugin-sdk/channel-activity-C01Im_o1.js +1 -1
  532. package/dist/plugin-sdk/channel-activity-CIycjzUC.js +1 -1
  533. package/dist/plugin-sdk/channel-activity-Cdkn3O_i.js +1 -1
  534. package/dist/plugin-sdk/channel-activity-Cia2G3v5.js +1 -1
  535. package/dist/plugin-sdk/channel-activity-D6d2wU8H.cjs +1 -1
  536. package/dist/plugin-sdk/channel-activity-DNv7JLBx.cjs +1 -1
  537. package/dist/plugin-sdk/channel-activity-Df3DfYyZ.cjs +1 -1
  538. package/dist/plugin-sdk/channel-activity-Rut-HCfT.cjs +1 -1
  539. package/dist/plugin-sdk/channel-activity-mffNSQrX.cjs +1 -1
  540. package/dist/plugin-sdk/channel-activity-qjwFifkE.js +1 -1
  541. package/dist/plugin-sdk/channel-web-Ces_xx2T.js +1 -1
  542. package/dist/plugin-sdk/channel-web-CsmEnYD8.cjs +1 -1
  543. package/dist/plugin-sdk/channel-web-DtzNv49H.cjs +1 -1
  544. package/dist/plugin-sdk/channel-web-VEZVrMYU.js +1 -1
  545. package/dist/plugin-sdk/command-poll-backoff-4910Mpwp.js +1 -1
  546. package/dist/plugin-sdk/command-poll-backoff-BLJZzV5W.cjs +1 -1
  547. package/dist/plugin-sdk/command-poll-backoff-CUNcN0dv.cjs +1 -1
  548. package/dist/plugin-sdk/command-poll-backoff-Cww_r-24.js +1 -1
  549. package/dist/plugin-sdk/command-poll-backoff-D0lJhquZ.js +1 -1
  550. package/dist/plugin-sdk/command-poll-backoff-Glwt3wHa.cjs +1 -1
  551. package/dist/plugin-sdk/commands-registry-33H8WYTk.cjs +1 -1
  552. package/dist/plugin-sdk/commands-registry-BGdm1KdC.js +1 -1
  553. package/dist/plugin-sdk/commands-registry-BgV9i-bj.cjs +1 -1
  554. package/dist/plugin-sdk/commands-registry-BifdCfty.cjs +1 -1
  555. package/dist/plugin-sdk/commands-registry-CJLBIIIp.js +1 -1
  556. package/dist/plugin-sdk/commands-registry-CWK9ARbc.js +1 -1
  557. package/dist/plugin-sdk/commands-registry-CfVD1h8L.cjs +1 -1
  558. package/dist/plugin-sdk/commands-registry-CpG4pxrA.js +1 -1
  559. package/dist/plugin-sdk/commands-registry-D-AnIQWz.cjs +1 -1
  560. package/dist/plugin-sdk/commands-registry-DBI4cPqT.cjs +1 -1
  561. package/dist/plugin-sdk/commands-registry-DOBe9cWq.js +1 -1
  562. package/dist/plugin-sdk/commands-registry-DqemUyiv.js +1 -1
  563. package/dist/plugin-sdk/common-CEe87dmX.js +1 -1
  564. package/dist/plugin-sdk/common-CjMKHm2Z.cjs +1 -1
  565. package/dist/plugin-sdk/compat.cjs +1 -1
  566. package/dist/plugin-sdk/compat.js +1 -1
  567. package/dist/plugin-sdk/config-DT_csBcZ.cjs +1 -1
  568. package/dist/plugin-sdk/config-LR8GH3Ws.js +1 -1
  569. package/dist/plugin-sdk/copilot-proxy.cjs +1 -1
  570. package/dist/plugin-sdk/copilot-proxy.js +1 -1
  571. package/dist/plugin-sdk/core.cjs +1 -1
  572. package/dist/plugin-sdk/core.js +1 -1
  573. package/dist/plugin-sdk/deliver-AORlkcbD.cjs +1 -1
  574. package/dist/plugin-sdk/deliver-BiBFW5fm.cjs +1 -1
  575. package/dist/plugin-sdk/deliver-BpqEPwLO.cjs +1 -1
  576. package/dist/plugin-sdk/deliver-BvC6aUKM.js +1 -1
  577. package/dist/plugin-sdk/deliver-CT0AIuK1.cjs +1 -1
  578. package/dist/plugin-sdk/deliver-CmddcjtG.cjs +1 -1
  579. package/dist/plugin-sdk/deliver-DFz5N1Eh.js +1 -1
  580. package/dist/plugin-sdk/deliver-DcJWpoqf.cjs +1 -1
  581. package/dist/plugin-sdk/deliver-ILim6ANU.js +1 -1
  582. package/dist/plugin-sdk/deliver-QgxW9IxV.js +1 -1
  583. package/dist/plugin-sdk/deliver-cT-Q8v0h.js +1 -1
  584. package/dist/plugin-sdk/deliver-cu_NQTmb.js +1 -1
  585. package/dist/plugin-sdk/device-pair.cjs +1 -1
  586. package/dist/plugin-sdk/device-pair.js +1 -1
  587. package/dist/plugin-sdk/diagnostic-BCyE1aYH.cjs +1 -1
  588. package/dist/plugin-sdk/diagnostic-BFea3l_a.js +1 -1
  589. package/dist/plugin-sdk/diagnostic-BvR96WdC.js +1 -1
  590. package/dist/plugin-sdk/diagnostic-C0xDsk89.cjs +1 -1
  591. package/dist/plugin-sdk/diagnostic-CEPhLgsW.cjs +1 -1
  592. package/dist/plugin-sdk/diagnostic-CbLwUqTE.cjs +1 -1
  593. package/dist/plugin-sdk/diagnostic-CbfxoqI_.cjs +1 -1
  594. package/dist/plugin-sdk/diagnostic-DDwUPG1m.js +1 -1
  595. package/dist/plugin-sdk/diagnostic-DS_mKKOu.js +1 -1
  596. package/dist/plugin-sdk/diagnostic-DYpehqHU.cjs +1 -1
  597. package/dist/plugin-sdk/diagnostic-DkncnZ3G.js +1 -1
  598. package/dist/plugin-sdk/diagnostic-Dz8HPEDe.js +1 -1
  599. package/dist/plugin-sdk/diagnostics-otel.cjs +1 -1
  600. package/dist/plugin-sdk/diagnostics-otel.js +1 -1
  601. package/dist/plugin-sdk/diffs.cjs +1 -1
  602. package/dist/plugin-sdk/diffs.js +1 -1
  603. package/dist/plugin-sdk/discord.cjs +1 -1
  604. package/dist/plugin-sdk/discord.js +1 -1
  605. package/dist/plugin-sdk/dispatch-6m3206FH.js +1 -1
  606. package/dist/plugin-sdk/dispatch-BYZNaz0n.cjs +1 -1
  607. package/dist/plugin-sdk/dispatch-BahZCe-D.js +1 -1
  608. package/dist/plugin-sdk/dispatch-Bi3yeWxb.cjs +1 -1
  609. package/dist/plugin-sdk/dispatch-BjB_TqWy.cjs +1 -1
  610. package/dist/plugin-sdk/dispatch-CNR186B3.js +1 -1
  611. package/dist/plugin-sdk/dispatch-CStT30wi.cjs +1 -1
  612. package/dist/plugin-sdk/dispatch-CdZAW9dg.cjs +1 -1
  613. package/dist/plugin-sdk/dispatch-Ewg2Jgw9.js +1 -1
  614. package/dist/plugin-sdk/dispatch-HRTsdeCV.js +1 -1
  615. package/dist/plugin-sdk/feishu.cjs +1 -1
  616. package/dist/plugin-sdk/feishu.js +1 -1
  617. package/dist/plugin-sdk/fetch-7Iq9POda.js +1 -1
  618. package/dist/plugin-sdk/fetch-B1GR6-u4.js +1 -1
  619. package/dist/plugin-sdk/fetch-B27H-XCf.js +1 -1
  620. package/dist/plugin-sdk/fetch-BMYDLRWo.js +1 -1
  621. package/dist/plugin-sdk/fetch-BN9y3kTg.cjs +1 -1
  622. package/dist/plugin-sdk/fetch-BVEVk5YF.js +1 -1
  623. package/dist/plugin-sdk/fetch-BY6lVRlY.cjs +1 -1
  624. package/dist/plugin-sdk/fetch-Bi8krAaT.cjs +1 -1
  625. package/dist/plugin-sdk/fetch-BjXhwqrE.cjs +1 -1
  626. package/dist/plugin-sdk/fetch-BtZY623f.js +1 -1
  627. package/dist/plugin-sdk/fetch-C-HRWp5R.js +1 -1
  628. package/dist/plugin-sdk/fetch-C3LEMysf.js +1 -1
  629. package/dist/plugin-sdk/fetch-CCLWsYaQ.js +1 -1
  630. package/dist/plugin-sdk/fetch-CZewCAvu.cjs +1 -1
  631. package/dist/plugin-sdk/fetch-ClKErpni.cjs +1 -1
  632. package/dist/plugin-sdk/fetch-DBRI0sKI.js +1 -1
  633. package/dist/plugin-sdk/fetch-DQxuOB8o.cjs +1 -1
  634. package/dist/plugin-sdk/fetch-DUMEaqum.cjs +1 -1
  635. package/dist/plugin-sdk/fetch-DpwR_cJU.cjs +1 -1
  636. package/dist/plugin-sdk/fetch-J0IzopiJ.js +1 -1
  637. package/dist/plugin-sdk/fetch-guard-D8TdhTHU.js +1 -1
  638. package/dist/plugin-sdk/fetch-guard-DC_pFJEy.js +1 -1
  639. package/dist/plugin-sdk/fetch-guard-DDkd30BG.js +1 -1
  640. package/dist/plugin-sdk/fetch-guard-DELiFG5g.js +1 -1
  641. package/dist/plugin-sdk/fetch-guard-DIYjBRpq.cjs +1 -1
  642. package/dist/plugin-sdk/fetch-guard-DPVfELS7.js +1 -1
  643. package/dist/plugin-sdk/fetch-guard-Dpz6CnJY.cjs +1 -1
  644. package/dist/plugin-sdk/fetch-guard-DqNKwgHP.cjs +1 -1
  645. package/dist/plugin-sdk/fetch-guard-DqTxZ3G8.cjs +1 -1
  646. package/dist/plugin-sdk/fetch-guard-EoAitPe9.cjs +1 -1
  647. package/dist/plugin-sdk/fetch-guard-qfU6iTvp.js +1 -1
  648. package/dist/plugin-sdk/fetch-guard-u2Dt6P9i.cjs +1 -1
  649. package/dist/plugin-sdk/fetch-lw-aF17e.cjs +1 -1
  650. package/dist/plugin-sdk/fetch-timeout-6oZsqWxA.js +1 -1
  651. package/dist/plugin-sdk/fetch-timeout-BygUD0rd.cjs +1 -1
  652. package/dist/plugin-sdk/fetch-timeout-CLw1U7VS.js +1 -1
  653. package/dist/plugin-sdk/fetch-timeout-CX1w-9p4.cjs +1 -1
  654. package/dist/plugin-sdk/fetch-timeout-Coc9xyC3.cjs +1 -1
  655. package/dist/plugin-sdk/fetch-timeout-Cz6GuU_c.js +1 -1
  656. package/dist/plugin-sdk/fetch-timeout-DC8T2JCr.js +1 -1
  657. package/dist/plugin-sdk/fetch-timeout-DFDmks9T.cjs +1 -1
  658. package/dist/plugin-sdk/fetch-timeout-DkYpp08Q.js +1 -1
  659. package/dist/plugin-sdk/github-copilot-token-BHdMLLqf.cjs +1 -1
  660. package/dist/plugin-sdk/github-copilot-token-Bt4PduRB.js +1 -1
  661. package/dist/plugin-sdk/github-copilot-token-C1O2cBqk.cjs +1 -1
  662. package/dist/plugin-sdk/github-copilot-token-C1hiDugd.js +1 -1
  663. package/dist/plugin-sdk/github-copilot-token-C8j8_NjX.js +1 -1
  664. package/dist/plugin-sdk/github-copilot-token-CCrgp2py.cjs +1 -1
  665. package/dist/plugin-sdk/github-copilot-token-DoHgkI2r.cjs +1 -1
  666. package/dist/plugin-sdk/github-copilot-token-N8vnLZPw.js +1 -1
  667. package/dist/plugin-sdk/github-copilot-token-TMkfxxD2.cjs +1 -1
  668. package/dist/plugin-sdk/github-copilot-token-vKAKX6iE.js +1 -1
  669. package/dist/plugin-sdk/github-copilot-token-ylX_gawo.js +1 -1
  670. package/dist/plugin-sdk/github-copilot-token-zskwAEpd.cjs +1 -1
  671. package/dist/plugin-sdk/google-gemini-cli-auth.cjs +1 -1
  672. package/dist/plugin-sdk/google-gemini-cli-auth.js +1 -1
  673. package/dist/plugin-sdk/googlechat.cjs +1 -1
  674. package/dist/plugin-sdk/googlechat.js +1 -1
  675. package/dist/plugin-sdk/image-0OHO98b9.cjs +1 -1
  676. package/dist/plugin-sdk/image-B9SLKAOs.cjs +1 -1
  677. package/dist/plugin-sdk/image-BVnZq5Y4.js +1 -1
  678. package/dist/plugin-sdk/image-CKLAyhco.js +1 -1
  679. package/dist/plugin-sdk/image-DUHEJeBF.js +1 -1
  680. package/dist/plugin-sdk/image-DngxW2Nh.cjs +1 -1
  681. package/dist/plugin-sdk/image-DrPh2689.cjs +1 -1
  682. package/dist/plugin-sdk/image-ISWO0Dwt.js +1 -1
  683. package/dist/plugin-sdk/image-KfZYW6Lh.cjs +1 -1
  684. package/dist/plugin-sdk/image-YVlw68CK.js +1 -1
  685. package/dist/plugin-sdk/image-gehqJnV6.js +1 -1
  686. package/dist/plugin-sdk/image-jUYo-0eT.cjs +1 -1
  687. package/dist/plugin-sdk/imessage.cjs +1 -1
  688. package/dist/plugin-sdk/imessage.js +1 -1
  689. package/dist/plugin-sdk/index.cjs +1 -1
  690. package/dist/plugin-sdk/index.js +1 -1
  691. package/dist/plugin-sdk/ir-78toXVqC.cjs +1 -1
  692. package/dist/plugin-sdk/ir-A_TqKaXP.cjs +1 -1
  693. package/dist/plugin-sdk/ir-B0_rUT7m.js +1 -1
  694. package/dist/plugin-sdk/ir-B7agH4cQ.cjs +1 -1
  695. package/dist/plugin-sdk/ir-B9ap_YNW.cjs +1 -1
  696. package/dist/plugin-sdk/ir-BxKSHYao.cjs +1 -1
  697. package/dist/plugin-sdk/ir-BzZArF6l.js +1 -1
  698. package/dist/plugin-sdk/ir-CpkEWZD6.js +1 -1
  699. package/dist/plugin-sdk/ir-D4Dz-giw.cjs +1 -1
  700. package/dist/plugin-sdk/ir-DJ08DSkk.js +1 -1
  701. package/dist/plugin-sdk/ir-L2vhtuGx.js +1 -1
  702. package/dist/plugin-sdk/ir-ntSck5Kp.js +1 -1
  703. package/dist/plugin-sdk/irc.cjs +1 -1
  704. package/dist/plugin-sdk/irc.js +1 -1
  705. package/dist/plugin-sdk/keyed-async-queue.cjs +1 -1
  706. package/dist/plugin-sdk/keyed-async-queue.js +1 -1
  707. package/dist/plugin-sdk/line.cjs +1 -1
  708. package/dist/plugin-sdk/line.js +1 -1
  709. package/dist/plugin-sdk/llm-task.cjs +1 -1
  710. package/dist/plugin-sdk/llm-task.js +1 -1
  711. package/dist/plugin-sdk/load-options-B9Ss5YOO.js +1 -1
  712. package/dist/plugin-sdk/load-options-BOfn6Zgo.cjs +1 -1
  713. package/dist/plugin-sdk/load-options-BXvm8HVv.js +1 -1
  714. package/dist/plugin-sdk/load-options-Bb7u8yZz.cjs +1 -1
  715. package/dist/plugin-sdk/load-options-BcSg1ODN.js +1 -1
  716. package/dist/plugin-sdk/load-options-NqnXJ-Nh.cjs +1 -1
  717. package/dist/plugin-sdk/lobster.cjs +1 -1
  718. package/dist/plugin-sdk/lobster.js +1 -1
  719. package/dist/plugin-sdk/local-roots-B0zm186S.js +1 -1
  720. package/dist/plugin-sdk/local-roots-B4Uy4kG3.cjs +1 -1
  721. package/dist/plugin-sdk/local-roots-CM1R1Ncr.cjs +1 -1
  722. package/dist/plugin-sdk/local-roots-CW78ZeZV.js +1 -1
  723. package/dist/plugin-sdk/local-roots-CnsaE7a_.js +1 -1
  724. package/dist/plugin-sdk/local-roots-D1k-fAlE.cjs +1 -1
  725. package/dist/plugin-sdk/local-roots-DQ_vfJPK.js +1 -1
  726. package/dist/plugin-sdk/local-roots-DYlB1au6.cjs +1 -1
  727. package/dist/plugin-sdk/local-roots-H4-t0qG_.js +1 -1
  728. package/dist/plugin-sdk/local-roots-SCyeUfM3.cjs +1 -1
  729. package/dist/plugin-sdk/local-roots-l4PqCmiU.js +1 -1
  730. package/dist/plugin-sdk/local-roots-xHoEq1Fq.cjs +1 -1
  731. package/dist/plugin-sdk/logger-6O6OsYBL.cjs +1 -1
  732. package/dist/plugin-sdk/logger-BlddiV_d.cjs +1 -1
  733. package/dist/plugin-sdk/logger-Bm93ZKOk.cjs +1 -1
  734. package/dist/plugin-sdk/logger-BtrWb0dj.js +1 -1
  735. package/dist/plugin-sdk/logger-C210xuWx.js +1 -1
  736. package/dist/plugin-sdk/logger-DJGHvDbX.js +1 -1
  737. package/dist/plugin-sdk/logger-DPlqYkRm.cjs +1 -1
  738. package/dist/plugin-sdk/logger-DUYnS-W3.cjs +1 -1
  739. package/dist/plugin-sdk/logger-DwWqfo66.js +1 -1
  740. package/dist/plugin-sdk/logger-vBDTZWl3.js +1 -1
  741. package/dist/plugin-sdk/login-BN1TsFp4.cjs +1 -1
  742. package/dist/plugin-sdk/login-BXUtcSnB.cjs +1 -1
  743. package/dist/plugin-sdk/login-BoMH2iJT.js +1 -1
  744. package/dist/plugin-sdk/login-BtT7yRJO.js +1 -1
  745. package/dist/plugin-sdk/login-COzybMRK.js +1 -1
  746. package/dist/plugin-sdk/login-Cw1jFbel.cjs +1 -1
  747. package/dist/plugin-sdk/login-DEmpr5YK.js +1 -1
  748. package/dist/plugin-sdk/login-Dln00cFs.cjs +1 -1
  749. package/dist/plugin-sdk/login-S2Fe5n5K.cjs +1 -1
  750. package/dist/plugin-sdk/login-TieaF0ts.cjs +1 -1
  751. package/dist/plugin-sdk/login-ZQK4uJLw.js +1 -1
  752. package/dist/plugin-sdk/login-fKxJv0_F.js +1 -1
  753. package/dist/plugin-sdk/login-qr-1ilmySGx.js +1 -1
  754. package/dist/plugin-sdk/login-qr-B0ZSZaNI.js +1 -1
  755. package/dist/plugin-sdk/login-qr-B2P2Ky4j.js +1 -1
  756. package/dist/plugin-sdk/login-qr-B2U87iU8.js +1 -1
  757. package/dist/plugin-sdk/login-qr-B4x_eWI_.js +1 -1
  758. package/dist/plugin-sdk/login-qr-BIaJB24t.cjs +1 -1
  759. package/dist/plugin-sdk/login-qr-BMl5Beq2.cjs +1 -1
  760. package/dist/plugin-sdk/login-qr-Bkm3QorK.cjs +1 -1
  761. package/dist/plugin-sdk/login-qr-ClL8FMAJ.cjs +1 -1
  762. package/dist/plugin-sdk/login-qr-DFVK1lg-.js +1 -1
  763. package/dist/plugin-sdk/login-qr-DhieI9fL.cjs +1 -1
  764. package/dist/plugin-sdk/login-qr-DyQT1QnE.cjs +1 -1
  765. package/dist/plugin-sdk/manager-0tvX3Z_N.cjs +1 -1
  766. package/dist/plugin-sdk/manager-8uylP7PH.cjs +1 -1
  767. package/dist/plugin-sdk/manager-B6hWglXe.js +1 -1
  768. package/dist/plugin-sdk/manager-BGoKN9ur.js +1 -1
  769. package/dist/plugin-sdk/manager-BRP1lzb6.js +1 -1
  770. package/dist/plugin-sdk/manager-BeLNhsXC.cjs +1 -1
  771. package/dist/plugin-sdk/manager-BnytMgmq.js +1 -1
  772. package/dist/plugin-sdk/manager-BoMQeM1I.cjs +1 -1
  773. package/dist/plugin-sdk/manager-CYZY9vcM.js +1 -1
  774. package/dist/plugin-sdk/manager-DCDy2V1U.cjs +1 -1
  775. package/dist/plugin-sdk/manager-DE7sDip8.cjs +1 -1
  776. package/dist/plugin-sdk/manager-PwgQZNK1.js +1 -1
  777. package/dist/plugin-sdk/matrix.cjs +1 -1
  778. package/dist/plugin-sdk/matrix.js +1 -1
  779. package/dist/plugin-sdk/mattermost.cjs +1 -1
  780. package/dist/plugin-sdk/mattermost.js +1 -1
  781. package/dist/plugin-sdk/memory-core.cjs +1 -1
  782. package/dist/plugin-sdk/memory-core.js +1 -1
  783. package/dist/plugin-sdk/minimax-portal-auth.cjs +1 -1
  784. package/dist/plugin-sdk/minimax-portal-auth.js +1 -1
  785. package/dist/plugin-sdk/model-auth-BgS7ynQw.cjs +1 -1
  786. package/dist/plugin-sdk/model-auth-CKlA2xRB.cjs +1 -1
  787. package/dist/plugin-sdk/model-auth-CLnFIqcf.cjs +1 -1
  788. package/dist/plugin-sdk/model-auth-D7YupJDS.js +1 -1
  789. package/dist/plugin-sdk/model-auth-eNVBeC-B.js +1 -1
  790. package/dist/plugin-sdk/model-auth-fJrNIbke.cjs +1 -1
  791. package/dist/plugin-sdk/model-auth-g6eGgTwR.js +1 -1
  792. package/dist/plugin-sdk/model-auth-wcxJptQX.js +1 -1
  793. package/dist/plugin-sdk/model-selection-4ExiFkaW.js +1 -1
  794. package/dist/plugin-sdk/model-selection-CZY_x2-a.cjs +1 -1
  795. package/dist/plugin-sdk/msteams.cjs +1 -1
  796. package/dist/plugin-sdk/msteams.js +1 -1
  797. package/dist/plugin-sdk/nextcloud-talk.cjs +1 -1
  798. package/dist/plugin-sdk/nextcloud-talk.js +1 -1
  799. package/dist/plugin-sdk/nostr.cjs +1 -1
  800. package/dist/plugin-sdk/nostr.js +1 -1
  801. package/dist/plugin-sdk/outbound-2VVSR_d4.js +1 -1
  802. package/dist/plugin-sdk/outbound-B03BQa7T.cjs +1 -1
  803. package/dist/plugin-sdk/outbound-BE8CJ9c_.js +1 -1
  804. package/dist/plugin-sdk/outbound-BWtGs0dn.cjs +1 -1
  805. package/dist/plugin-sdk/outbound-BrD0UsX0.js +1 -1
  806. package/dist/plugin-sdk/outbound-Bvu4LbQx.js +1 -1
  807. package/dist/plugin-sdk/outbound-C5rNt-8z.cjs +1 -1
  808. package/dist/plugin-sdk/outbound-C6BJCoYf.cjs +1 -1
  809. package/dist/plugin-sdk/outbound-Cgc0JJtB.js +1 -1
  810. package/dist/plugin-sdk/outbound-DAHIkpiA.cjs +1 -1
  811. package/dist/plugin-sdk/outbound-DnO_udAm.cjs +1 -1
  812. package/dist/plugin-sdk/outbound-UAHsCNyW.js +1 -1
  813. package/dist/plugin-sdk/outbound-attachment-0QahtSQB.cjs +1 -1
  814. package/dist/plugin-sdk/outbound-attachment-8qvAj1MK.js +1 -1
  815. package/dist/plugin-sdk/outbound-attachment-B6SJy_CG.js +1 -1
  816. package/dist/plugin-sdk/outbound-attachment-BVdSGifg.js +1 -1
  817. package/dist/plugin-sdk/outbound-attachment-C-QqSQ79.cjs +1 -1
  818. package/dist/plugin-sdk/outbound-attachment-CYGrnygD.cjs +1 -1
  819. package/dist/plugin-sdk/outbound-attachment-CtA5eBgj.cjs +1 -1
  820. package/dist/plugin-sdk/outbound-attachment-D8Ng5uVX.cjs +1 -1
  821. package/dist/plugin-sdk/outbound-attachment-DS0S0NLK.js +1 -1
  822. package/dist/plugin-sdk/outbound-attachment-Ds2XsjQl.js +1 -1
  823. package/dist/plugin-sdk/outbound-attachment-acB4qID1.js +1 -1
  824. package/dist/plugin-sdk/outbound-attachment-x4Q2SVIA.cjs +1 -1
  825. package/dist/plugin-sdk/paths-BPlgbwrb.cjs +1 -1
  826. package/dist/plugin-sdk/paths-Bcdg3ma0.cjs +1 -1
  827. package/dist/plugin-sdk/paths-BpQOWYiT.js +1 -1
  828. package/dist/plugin-sdk/paths-BvlJvmRS.cjs +1 -1
  829. package/dist/plugin-sdk/paths-CIcxeNL-.cjs +1 -1
  830. package/dist/plugin-sdk/paths-CXgWvWAM.js +1 -1
  831. package/dist/plugin-sdk/paths-Chp3zwtq.cjs +1 -1
  832. package/dist/plugin-sdk/paths-CnHSNSeR.js +1 -1
  833. package/dist/plugin-sdk/paths-Cqca1YmF.cjs +1 -1
  834. package/dist/plugin-sdk/paths-CtrEseGU.js +1 -1
  835. package/dist/plugin-sdk/paths-D55o_j8-.js +1 -1
  836. package/dist/plugin-sdk/paths-D90l3h_o.cjs +1 -1
  837. package/dist/plugin-sdk/paths-DaRoqzBQ.js +1 -1
  838. package/dist/plugin-sdk/paths-Dd7r1qlB.cjs +1 -1
  839. package/dist/plugin-sdk/paths-DhSjTRMz.js +1 -1
  840. package/dist/plugin-sdk/paths-Do0djuaj.js +1 -1
  841. package/dist/plugin-sdk/paths-J4JUiRsa.js +1 -1
  842. package/dist/plugin-sdk/paths-cBAF6Bj0.js +1 -1
  843. package/dist/plugin-sdk/paths-piJASC5k.js +1 -1
  844. package/dist/plugin-sdk/paths-rO4ehkyU.js +1 -1
  845. package/dist/plugin-sdk/pi-model-discovery--UcCzdQg.js +1 -1
  846. package/dist/plugin-sdk/pi-model-discovery-Bi4dKtW0.cjs +1 -1
  847. package/dist/plugin-sdk/pi-model-discovery-CCK2Ppj9.js +1 -1
  848. package/dist/plugin-sdk/pi-model-discovery-CRSZ0OFi.js +1 -1
  849. package/dist/plugin-sdk/pi-model-discovery-Cx_r4FGY.js +1 -1
  850. package/dist/plugin-sdk/pi-model-discovery-D3JQMjAa.cjs +1 -1
  851. package/dist/plugin-sdk/pi-model-discovery-DN1RHetG.cjs +1 -1
  852. package/dist/plugin-sdk/pi-model-discovery-DVFSU0-f.cjs +1 -1
  853. package/dist/plugin-sdk/pi-model-discovery-DWMAAhA-.cjs +1 -1
  854. package/dist/plugin-sdk/pi-model-discovery-DYOHzCjs.js +1 -1
  855. package/dist/plugin-sdk/pi-model-discovery-DdSVvbQ5.cjs +1 -1
  856. package/dist/plugin-sdk/pi-model-discovery-DejkxBol.js +1 -1
  857. package/dist/plugin-sdk/pi-model-discovery-SmVAFMj_.cjs +1 -1
  858. package/dist/plugin-sdk/pi-model-discovery-ma8st1Ek.js +1 -1
  859. package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-B2WodYBY.cjs +1 -1
  860. package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-BC114tUb.js +1 -1
  861. package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-BF6jP1nM.js +1 -1
  862. package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-Beg-U7Z-.cjs +1 -1
  863. package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-BkEYsSLL.js +1 -1
  864. package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-C21sWtkh.js +1 -1
  865. package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-CKkgBGIj.cjs +1 -1
  866. package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-CNun__L-.js +1 -1
  867. package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-Clulhv2X.cjs +1 -1
  868. package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-DvwL5in9.cjs +1 -1
  869. package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-FnzjmZqP.js +1 -1
  870. package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-Rq5y0QJ2.cjs +1 -1
  871. package/dist/plugin-sdk/polls-BuaJuIpV.cjs +1 -1
  872. package/dist/plugin-sdk/polls-CBAGZuJ6.js +1 -1
  873. package/dist/plugin-sdk/polls-CSKMbBIS.js +1 -1
  874. package/dist/plugin-sdk/polls-D0wY0FvT.cjs +1 -1
  875. package/dist/plugin-sdk/polls-PGxiE05J.js +1 -1
  876. package/dist/plugin-sdk/polls-yWqSCEP0.cjs +1 -1
  877. package/dist/plugin-sdk/proxy-env-B765haXA.js +1 -1
  878. package/dist/plugin-sdk/proxy-env-Bcl14j2_.cjs +1 -1
  879. package/dist/plugin-sdk/proxy-env-BlrHtJWH.js +1 -1
  880. package/dist/plugin-sdk/proxy-env-D48qBPAr.cjs +1 -1
  881. package/dist/plugin-sdk/proxy-env-DGzNnnJh.js +1 -1
  882. package/dist/plugin-sdk/proxy-env-DQoJjkWE.cjs +1 -1
  883. package/dist/plugin-sdk/proxy-env-DWw9TnOj.cjs +1 -1
  884. package/dist/plugin-sdk/proxy-env-MEjSyzTr.js +1 -1
  885. package/dist/plugin-sdk/proxy-env-a590sPAz.cjs +1 -1
  886. package/dist/plugin-sdk/proxy-env-k93igu7v.cjs +1 -1
  887. package/dist/plugin-sdk/proxy-env-m9eG3uZN.js +1 -1
  888. package/dist/plugin-sdk/proxy-env-t6hcaFqC.js +1 -1
  889. package/dist/plugin-sdk/proxy-fetch-B9aXJVe-.js +1 -1
  890. package/dist/plugin-sdk/proxy-fetch-BaA3JYgW.cjs +1 -1
  891. package/dist/plugin-sdk/proxy-fetch-BwXFVsHE.cjs +1 -1
  892. package/dist/plugin-sdk/proxy-fetch-BzcKzknk.cjs +1 -1
  893. package/dist/plugin-sdk/proxy-fetch-CYVChsKE.js +1 -1
  894. package/dist/plugin-sdk/proxy-fetch-ClOb2LUH.js +1 -1
  895. package/dist/plugin-sdk/proxy-fetch-DH7VIiBH.cjs +1 -1
  896. package/dist/plugin-sdk/proxy-fetch-DPOhfrou.cjs +1 -1
  897. package/dist/plugin-sdk/proxy-fetch-DXt2R_Z5.js +1 -1
  898. package/dist/plugin-sdk/proxy-fetch-Del551nu.js +1 -1
  899. package/dist/plugin-sdk/proxy-fetch-YCVHz7Rl.js +1 -1
  900. package/dist/plugin-sdk/proxy-fetch-qbrYAz8k.cjs +1 -1
  901. package/dist/plugin-sdk/pw-ai-3piACPqP.cjs +1 -1
  902. package/dist/plugin-sdk/pw-ai-8dajXBkZ.js +1 -1
  903. package/dist/plugin-sdk/pw-ai-B7mrBDW5.js +1 -1
  904. package/dist/plugin-sdk/pw-ai-BLD7x-3a.js +1 -1
  905. package/dist/plugin-sdk/pw-ai-BYmANcaC.cjs +1 -1
  906. package/dist/plugin-sdk/pw-ai-C1rVW06B.cjs +1 -1
  907. package/dist/plugin-sdk/pw-ai-CCDvaBUm.cjs +1 -1
  908. package/dist/plugin-sdk/pw-ai-CVYUOcKM.js +1 -1
  909. package/dist/plugin-sdk/pw-ai-DBg5CCXp.cjs +1 -1
  910. package/dist/plugin-sdk/pw-ai-DY11CCd3.cjs +1 -1
  911. package/dist/plugin-sdk/pw-ai-Kf2RyA25.js +1 -1
  912. package/dist/plugin-sdk/pw-ai-f5yF3n3t.js +1 -1
  913. package/dist/plugin-sdk/qmd-manager-B3xNbdye.cjs +1 -1
  914. package/dist/plugin-sdk/qmd-manager-BMyDNBPi.js +1 -1
  915. package/dist/plugin-sdk/qmd-manager-BZhiv_zq.cjs +1 -1
  916. package/dist/plugin-sdk/qmd-manager-C3uVDbhW.js +1 -1
  917. package/dist/plugin-sdk/qmd-manager-CW46NrS-.cjs +1 -1
  918. package/dist/plugin-sdk/qmd-manager-C_e04BNg.js +1 -1
  919. package/dist/plugin-sdk/qmd-manager-CczVoslK.cjs +1 -1
  920. package/dist/plugin-sdk/qmd-manager-CzLKqPmR.js +1 -1
  921. package/dist/plugin-sdk/qmd-manager-DFh8b5N-.cjs +1 -1
  922. package/dist/plugin-sdk/qmd-manager-DXLfZZMI.js +1 -1
  923. package/dist/plugin-sdk/qmd-manager-FL9fAfNo.cjs +1 -1
  924. package/dist/plugin-sdk/qmd-manager-fWxbGqzk.js +1 -1
  925. package/dist/plugin-sdk/query-expansion-0zYzKrrd.cjs +1 -1
  926. package/dist/plugin-sdk/query-expansion-BYSjmpkV.cjs +1 -1
  927. package/dist/plugin-sdk/query-expansion-CAboqtWr.js +1 -1
  928. package/dist/plugin-sdk/query-expansion-C_DnhmUy.js +1 -1
  929. package/dist/plugin-sdk/query-expansion-Cb2vnF6y.js +1 -1
  930. package/dist/plugin-sdk/query-expansion-DCeqywxh.cjs +1 -1
  931. package/dist/plugin-sdk/query-expansion-DF4LMxRQ.js +1 -1
  932. package/dist/plugin-sdk/query-expansion-DKJkqmNM.cjs +1 -1
  933. package/dist/plugin-sdk/query-expansion-DO2CFW4z.cjs +1 -1
  934. package/dist/plugin-sdk/query-expansion-DyCDaZbL.js +1 -1
  935. package/dist/plugin-sdk/query-expansion-cpXCyoDy.cjs +1 -1
  936. package/dist/plugin-sdk/query-expansion-r_iXkNzt.js +1 -1
  937. package/dist/plugin-sdk/qwen-portal-auth.cjs +1 -1
  938. package/dist/plugin-sdk/qwen-portal-auth.js +1 -1
  939. package/dist/plugin-sdk/render-6fCdtAr6.cjs +1 -1
  940. package/dist/plugin-sdk/render-CBsnn-2A.js +1 -1
  941. package/dist/plugin-sdk/render-CzHaQB0d.cjs +1 -1
  942. package/dist/plugin-sdk/render-DGmfCIRG.js +1 -1
  943. package/dist/plugin-sdk/render-DhTJXP1U.js +1 -1
  944. package/dist/plugin-sdk/render-Djx15dPh.js +1 -1
  945. package/dist/plugin-sdk/render-DxBO2Blp.cjs +1 -1
  946. package/dist/plugin-sdk/render-g5VlmgpF.cjs +1 -1
  947. package/dist/plugin-sdk/reply-BrHB7v5V.cjs +1 -1
  948. package/dist/plugin-sdk/reply-Clex4c2R.js +1 -1
  949. package/dist/plugin-sdk/resolve-outbound-target-BHLQMMp-.cjs +1 -1
  950. package/dist/plugin-sdk/resolve-outbound-target-Cvz2WXAk.cjs +1 -1
  951. package/dist/plugin-sdk/resolve-outbound-target-DDqGniMw.js +1 -1
  952. package/dist/plugin-sdk/resolve-outbound-target-DEpmpEep.js +1 -1
  953. package/dist/plugin-sdk/send--HeMLLzj.js +1 -1
  954. package/dist/plugin-sdk/send-2IhtEEzb.js +1 -1
  955. package/dist/plugin-sdk/send-9tPLnqkc.js +1 -1
  956. package/dist/plugin-sdk/send-B-exJfkg.js +1 -1
  957. package/dist/plugin-sdk/send-B4kzPtcN.js +1 -1
  958. package/dist/plugin-sdk/send-BCSkdYN6.cjs +1 -1
  959. package/dist/plugin-sdk/send-BEmZxBcF.js +1 -1
  960. package/dist/plugin-sdk/send-BHvZIrbJ.cjs +1 -1
  961. package/dist/plugin-sdk/send-BLbCBxeF.js +1 -1
  962. package/dist/plugin-sdk/send-BOkABdQu.cjs +1 -1
  963. package/dist/plugin-sdk/send-BPNd63Qs.js +1 -1
  964. package/dist/plugin-sdk/send-BVAm6Zbr.cjs +1 -1
  965. package/dist/plugin-sdk/send-B_619b3s.js +1 -1
  966. package/dist/plugin-sdk/send-BcuylzbX.js +1 -1
  967. package/dist/plugin-sdk/send-BdFvK9Wc2.js +1 -1
  968. package/dist/plugin-sdk/send-Bh-J7XWZ.cjs +1 -1
  969. package/dist/plugin-sdk/send-BkREPc90.cjs +1 -1
  970. package/dist/plugin-sdk/send-Bp4f-KJu.cjs +1 -1
  971. package/dist/plugin-sdk/send-BtF36kYb.js +1 -1
  972. package/dist/plugin-sdk/send-C6S8tkTA.cjs +1 -1
  973. package/dist/plugin-sdk/send-CDQF_izk.js +1 -1
  974. package/dist/plugin-sdk/send-CF3qas-K.js +1 -1
  975. package/dist/plugin-sdk/send-CFKQX2Wo.js +1 -1
  976. package/dist/plugin-sdk/send-CIP1u5a-.js +1 -1
  977. package/dist/plugin-sdk/send-CIxh7PV0.cjs +1 -1
  978. package/dist/plugin-sdk/send-CJJdcDHX.js +1 -1
  979. package/dist/plugin-sdk/send-COtvydDt.cjs +1 -1
  980. package/dist/plugin-sdk/send-CPwh7tRu.js +1 -1
  981. package/dist/plugin-sdk/send-CRnIqXN9.cjs +1 -1
  982. package/dist/plugin-sdk/send-CSqipUeV.cjs +1 -1
  983. package/dist/plugin-sdk/send-Chfe8tPY.js +1 -1
  984. package/dist/plugin-sdk/send-ClMvdjfg.js +1 -1
  985. package/dist/plugin-sdk/send-CmoJSYhT.js +1 -1
  986. package/dist/plugin-sdk/send-Cs5jSTw0.cjs +1 -1
  987. package/dist/plugin-sdk/send-D-6Et_9H.js +1 -1
  988. package/dist/plugin-sdk/send-D13uFnzH.cjs +1 -1
  989. package/dist/plugin-sdk/send-D3eT0F4N.cjs +1 -1
  990. package/dist/plugin-sdk/send-DAtg_VHa.js +1 -1
  991. package/dist/plugin-sdk/send-DCF59ijQ.cjs +1 -1
  992. package/dist/plugin-sdk/send-DN2xic3w.cjs +1 -1
  993. package/dist/plugin-sdk/send-DOjSTB6D.cjs +1 -1
  994. package/dist/plugin-sdk/send-DavwL7cF.js +1 -1
  995. package/dist/plugin-sdk/send-Dbmn1rgD.cjs +1 -1
  996. package/dist/plugin-sdk/send-DhfDqcwc.cjs +1 -1
  997. package/dist/plugin-sdk/send-DsDCrJWq.js +1 -1
  998. package/dist/plugin-sdk/send-DyR5Lpl-.js +1 -1
  999. package/dist/plugin-sdk/send-DyzuwDjE.js +1 -1
  1000. package/dist/plugin-sdk/send-GtphEa1b.cjs +1 -1
  1001. package/dist/plugin-sdk/send-HZNY_u3L.cjs +1 -1
  1002. package/dist/plugin-sdk/send-IM-76QZu.js +1 -1
  1003. package/dist/plugin-sdk/send-IqcgAO8b.cjs +1 -1
  1004. package/dist/plugin-sdk/send-OQcuL9tP.js +1 -1
  1005. package/dist/plugin-sdk/send-_92aOzWU.cjs +1 -1
  1006. package/dist/plugin-sdk/send-h_kE-cAK.js +1 -1
  1007. package/dist/plugin-sdk/send-jOMdGt0L.cjs +1 -1
  1008. package/dist/plugin-sdk/send-mZ_d-t_3.cjs +1 -1
  1009. package/dist/plugin-sdk/send-puyUta4_.cjs +1 -1
  1010. package/dist/plugin-sdk/send-t5U34FhY.cjs +1 -1
  1011. package/dist/plugin-sdk/send-tvw8j-Se.cjs +1 -1
  1012. package/dist/plugin-sdk/send-z1vaCgF3.cjs +1 -1
  1013. package/dist/plugin-sdk/session--K1m5v7m.js +1 -1
  1014. package/dist/plugin-sdk/session-B1DJ45om.js +1 -1
  1015. package/dist/plugin-sdk/session-B80NWO1m.js +1 -1
  1016. package/dist/plugin-sdk/session-BKPBr445.js +1 -1
  1017. package/dist/plugin-sdk/session-BQLjsBwL.cjs +1 -1
  1018. package/dist/plugin-sdk/session-BZHltxdM.js +1 -1
  1019. package/dist/plugin-sdk/session-Bt5yI-VW.cjs +1 -1
  1020. package/dist/plugin-sdk/session-CC1GqwiM.cjs +1 -1
  1021. package/dist/plugin-sdk/session-C_yqyp3P.cjs +1 -1
  1022. package/dist/plugin-sdk/session-ClISxvtJ.js +1 -1
  1023. package/dist/plugin-sdk/session-D4nn-nXX.cjs +1 -1
  1024. package/dist/plugin-sdk/session-DOA4CJgj.cjs +1 -1
  1025. package/dist/plugin-sdk/sessions-BwTjGneU.js +1 -1
  1026. package/dist/plugin-sdk/sessions-CJbvfO6m.cjs +1 -1
  1027. package/dist/plugin-sdk/signal.cjs +1 -1
  1028. package/dist/plugin-sdk/signal.js +1 -1
  1029. package/dist/plugin-sdk/skill-commands-5WGHyr3h.cjs +1 -1
  1030. package/dist/plugin-sdk/skill-commands-BZlF3g3o.js +1 -1
  1031. package/dist/plugin-sdk/skill-commands-BmBQSmNH.js +1 -1
  1032. package/dist/plugin-sdk/skill-commands-CD4GQXTR.cjs +1 -1
  1033. package/dist/plugin-sdk/skill-commands-CGOPOT-r.js +1 -1
  1034. package/dist/plugin-sdk/skill-commands-CM9ziCQY.cjs +1 -1
  1035. package/dist/plugin-sdk/skill-commands-CVsU5rEy.js +1 -1
  1036. package/dist/plugin-sdk/skill-commands-DNPxE-kc.cjs +1 -1
  1037. package/dist/plugin-sdk/skill-commands-DcgKCVDt.js +1 -1
  1038. package/dist/plugin-sdk/skill-commands-IAwkVeOe.js +1 -1
  1039. package/dist/plugin-sdk/skill-commands-ZyLkXbR_.cjs +1 -1
  1040. package/dist/plugin-sdk/skill-commands-xJWQthd5.cjs +1 -1
  1041. package/dist/plugin-sdk/slack.cjs +1 -1
  1042. package/dist/plugin-sdk/slack.js +1 -1
  1043. package/dist/plugin-sdk/synology-chat.cjs +1 -1
  1044. package/dist/plugin-sdk/synology-chat.js +1 -1
  1045. package/dist/plugin-sdk/tables-BZUVdTR-.cjs +1 -1
  1046. package/dist/plugin-sdk/tables-Bbodvj_s.cjs +1 -1
  1047. package/dist/plugin-sdk/tables-C5b2CtNw.cjs +1 -1
  1048. package/dist/plugin-sdk/tables-C6TX2QvW.js +1 -1
  1049. package/dist/plugin-sdk/tables-Cz5osenc.js +1 -1
  1050. package/dist/plugin-sdk/tables-DBSeZ07-.cjs +1 -1
  1051. package/dist/plugin-sdk/tables-DLSXY2-Q.js +1 -1
  1052. package/dist/plugin-sdk/tables-DQad-z2Z.cjs +1 -1
  1053. package/dist/plugin-sdk/tables-DYuLwL1d.js +1 -1
  1054. package/dist/plugin-sdk/tables-D_J655yN.js +1 -1
  1055. package/dist/plugin-sdk/tables-_vqK8P0T.js +1 -1
  1056. package/dist/plugin-sdk/tables-bSgb8OzP.cjs +1 -1
  1057. package/dist/plugin-sdk/target-errors-B-mJ4s4b.cjs +1 -1
  1058. package/dist/plugin-sdk/target-errors-BAHAHc8f.js +1 -1
  1059. package/dist/plugin-sdk/target-errors-BKruhz8r.js +1 -1
  1060. package/dist/plugin-sdk/target-errors-BbQBR5da.js +1 -1
  1061. package/dist/plugin-sdk/target-errors-BjgLCOTm.cjs +1 -1
  1062. package/dist/plugin-sdk/target-errors-CQbFkOae.js +1 -1
  1063. package/dist/plugin-sdk/target-errors-C_HYvghh.cjs +1 -1
  1064. package/dist/plugin-sdk/target-errors-CaaKhU6m.js +1 -1
  1065. package/dist/plugin-sdk/target-errors-QWTCk98R.cjs +1 -1
  1066. package/dist/plugin-sdk/target-errors-oh0u5K2w.cjs +1 -1
  1067. package/dist/plugin-sdk/targets-BSc11Uk8.cjs +1 -1
  1068. package/dist/plugin-sdk/targets-BSkiizml.js +1 -1
  1069. package/dist/plugin-sdk/targets-CBI0xqve.cjs +1 -1
  1070. package/dist/plugin-sdk/targets-CL5fYQi7.js +1 -1
  1071. package/dist/plugin-sdk/targets-CUZWrFrm.cjs +1 -1
  1072. package/dist/plugin-sdk/targets-CVEYTFPQ.js +1 -1
  1073. package/dist/plugin-sdk/targets-Co2R6K14.cjs +1 -1
  1074. package/dist/plugin-sdk/targets-CrkJkzil.js +1 -1
  1075. package/dist/plugin-sdk/targets-D-m7SV9x.cjs +1 -1
  1076. package/dist/plugin-sdk/targets-D8HTxbo4.js +1 -1
  1077. package/dist/plugin-sdk/targets-DcGNB9nk.cjs +1 -1
  1078. package/dist/plugin-sdk/targets-Dn9gDiEw.js +1 -1
  1079. package/dist/plugin-sdk/targets-X28mff4s.cjs +1 -1
  1080. package/dist/plugin-sdk/targets-uycXZ8vQ.js +1 -1
  1081. package/dist/plugin-sdk/telegram.cjs +1 -1
  1082. package/dist/plugin-sdk/telegram.js +1 -1
  1083. package/dist/plugin-sdk/test-utils.cjs +1 -1
  1084. package/dist/plugin-sdk/test-utils.js +1 -1
  1085. package/dist/plugin-sdk/tlon.cjs +1 -1
  1086. package/dist/plugin-sdk/tlon.js +1 -1
  1087. package/dist/plugin-sdk/tokens-AAdZjj0M.js +1 -1
  1088. package/dist/plugin-sdk/tokens-B20KNIDD.js +1 -1
  1089. package/dist/plugin-sdk/tokens-B8ys7Q2e.js +1 -1
  1090. package/dist/plugin-sdk/tokens-BPc1fcZ3.js +1 -1
  1091. package/dist/plugin-sdk/tokens-BqABmXSe.js +1 -1
  1092. package/dist/plugin-sdk/tokens-CXsPDJTr.cjs +1 -1
  1093. package/dist/plugin-sdk/tokens-CnB4dJmp.cjs +1 -1
  1094. package/dist/plugin-sdk/tokens-CytSl1X8.cjs +1 -1
  1095. package/dist/plugin-sdk/tokens-DgPZk2Uu.js +1 -1
  1096. package/dist/plugin-sdk/tokens-Dq2wDF3_.cjs +1 -1
  1097. package/dist/plugin-sdk/tokens-DtrljGtQ.cjs +1 -1
  1098. package/dist/plugin-sdk/tokens-g5KWvWhD.cjs +1 -1
  1099. package/dist/plugin-sdk/twitch.cjs +1 -1
  1100. package/dist/plugin-sdk/twitch.js +1 -1
  1101. package/dist/plugin-sdk/utils-BJtJR72k.js +1 -1
  1102. package/dist/plugin-sdk/utils-PPIvU9qw.cjs +1 -1
  1103. package/dist/plugin-sdk/voice-call.cjs +1 -1
  1104. package/dist/plugin-sdk/voice-call.js +1 -1
  1105. package/dist/plugin-sdk/web-B4A8zBP9.cjs +1 -1
  1106. package/dist/plugin-sdk/web-BKKx3jqf.cjs +1 -1
  1107. package/dist/plugin-sdk/web-BTBgpaEi.js +1 -1
  1108. package/dist/plugin-sdk/web-BfjArU7g.js +1 -1
  1109. package/dist/plugin-sdk/web-C7KhecaH.cjs +1 -1
  1110. package/dist/plugin-sdk/web-CFMrBQv7.js +1 -1
  1111. package/dist/plugin-sdk/web-CS0AvKLx.js +1 -1
  1112. package/dist/plugin-sdk/web-EfgEjg15.cjs +1 -1
  1113. package/dist/plugin-sdk/weixin.cjs +1 -1
  1114. package/dist/plugin-sdk/weixin.js +1 -1
  1115. package/dist/plugin-sdk/whatsapp-actions-6N2LIWVD.js +1 -1
  1116. package/dist/plugin-sdk/whatsapp-actions-BGEghean.js +1 -1
  1117. package/dist/plugin-sdk/whatsapp-actions-BP_fSzB9.cjs +1 -1
  1118. package/dist/plugin-sdk/whatsapp-actions-BSx6-Onq.cjs +1 -1
  1119. package/dist/plugin-sdk/whatsapp-actions-BZAMGDn8.cjs +1 -1
  1120. package/dist/plugin-sdk/whatsapp-actions-BvZMduqd.js +1 -1
  1121. package/dist/plugin-sdk/whatsapp-actions-CDUbwNdp.cjs +1 -1
  1122. package/dist/plugin-sdk/whatsapp-actions-DNVIKnqz.cjs +1 -1
  1123. package/dist/plugin-sdk/whatsapp-actions-DTVbVkOo.js +1 -1
  1124. package/dist/plugin-sdk/whatsapp-actions-DjMYqpSS.js +1 -1
  1125. package/dist/plugin-sdk/whatsapp-actions-P1DVqKhD.cjs +1 -1
  1126. package/dist/plugin-sdk/whatsapp-actions-shElOKKX.js +1 -1
  1127. package/dist/plugin-sdk/whatsapp.cjs +1 -1
  1128. package/dist/plugin-sdk/whatsapp.js +1 -1
  1129. package/dist/plugin-sdk/zalo.cjs +1 -1
  1130. package/dist/plugin-sdk/zalo.js +1 -1
  1131. package/dist/plugin-sdk/zalouser.cjs +1 -1
  1132. package/dist/plugin-sdk/zalouser.js +1 -1
  1133. package/dist/plugins-CYLrFT4h.js +1 -1
  1134. package/dist/plugins-DNlgeTTc.js +1 -1
  1135. package/dist/plugins-cli-BiV4FaGs.js +1 -1
  1136. package/dist/plugins-cli-C0PLRxT0.js +1 -1
  1137. package/dist/polls-BIVz6a4F.js +1 -1
  1138. package/dist/polls-Bh5wc9-6.js +1 -1
  1139. package/dist/polls-C_XSFz3d.js +1 -1
  1140. package/dist/polls-DKJOFSzJ.js +1 -1
  1141. package/dist/ports-Bjc9q__g.js +1 -1
  1142. package/dist/ports-Di2_MOUb.js +1 -1
  1143. package/dist/probe-auth-9RrZOStc.js +1 -1
  1144. package/dist/probe-auth-Cg6SAov9.js +1 -1
  1145. package/dist/profile-utils-CWmra1aY.js +1 -1
  1146. package/dist/program-CI--7377.js +1 -1
  1147. package/dist/program-context-CH9p6anW.js +1 -1
  1148. package/dist/program-context-Cu8fVR-O.js +1 -1
  1149. package/dist/progress-LNttnI-y.js +1 -1
  1150. package/dist/progress-d1m2sqR1.js +1 -1
  1151. package/dist/prompt-select-styled-CbTtKeIC.js +1 -1
  1152. package/dist/prompt-select-styled-sYEl0gMg.js +1 -1
  1153. package/dist/prompt-style-BThRSQJR.js +1 -1
  1154. package/dist/prompt-style-CXKekIBY.js +1 -1
  1155. package/dist/prompts-CMzglboN.js +1 -1
  1156. package/dist/prompts-wv-lfVrJ.js +1 -1
  1157. package/dist/provider-auth-helpers-C3OaF218.js +1 -1
  1158. package/dist/provider-auth-helpers-CZyb7LUg.js +1 -1
  1159. package/dist/provider-env-vars-D8p6Ohpj.js +1 -1
  1160. package/dist/provider-env-vars-Dt0Q29Su.js +1 -1
  1161. package/dist/proxy-env-BNhTHkd_.js +1 -1
  1162. package/dist/proxy-env-DcmW_urA.js +1 -1
  1163. package/dist/proxy-env-DrC3TIGh.js +1 -1
  1164. package/dist/proxy-env-FJr5nlvs.js +1 -1
  1165. package/dist/proxy-fetch-BADsUK4d.js +1 -1
  1166. package/dist/proxy-fetch-BZ9O8Dvj.js +1 -1
  1167. package/dist/proxy-fetch-DnjU1fEB.js +1 -1
  1168. package/dist/proxy-fetch-gWETR3cl.js +1 -1
  1169. package/dist/push-apns-kySzOiJr.js +1 -1
  1170. package/dist/push-apns-tM6G9LLm.js +1 -1
  1171. package/dist/pw-ai-B7YMA_4Q.js +1 -1
  1172. package/dist/pw-ai-C7peCONw.js +1 -1
  1173. package/dist/pw-ai-CojtT9WR.js +1 -1
  1174. package/dist/pw-ai-DWJWFzTA.js +1 -1
  1175. package/dist/qmd-manager-C_e04BNg.js +1 -1
  1176. package/dist/qmd-manager-DSQ_mDCl.js +1 -1
  1177. package/dist/qmd-manager-DcBYbt_V.js +1 -1
  1178. package/dist/qmd-manager-NLI0R6kp.js +1 -1
  1179. package/dist/qr-cli-DUR7oW0_.js +1 -1
  1180. package/dist/qr-cli-kb3ygh9I.js +1 -1
  1181. package/dist/query-expansion-0OxEb1Io.js +1 -1
  1182. package/dist/query-expansion-BUUx_oWg.js +1 -1
  1183. package/dist/query-expansion-r_iXkNzt.js +1 -1
  1184. package/dist/reaction-level-DVPHL14p.js +1 -1
  1185. package/dist/reaction-message-id-BEEe7X3D.js +1 -1
  1186. package/dist/read-only-account-inspect-DEnPVHTo.js +1 -1
  1187. package/dist/redact-3_CiXMY6.js +1 -1
  1188. package/dist/redact-CnRxK70G.js +1 -1
  1189. package/dist/register.agent-BwmE1VD-.js +1 -1
  1190. package/dist/register.agent-D1hQi_68.js +1 -1
  1191. package/dist/register.backup-8s5jgnHQ.js +1 -1
  1192. package/dist/register.backup-CAiwLaIW.js +1 -1
  1193. package/dist/register.configure-BsTw4XfK.js +1 -1
  1194. package/dist/register.configure-DxR84Ot6.js +1 -1
  1195. package/dist/register.maintenance-3nzWAo_a.js +1 -1
  1196. package/dist/register.maintenance-DxKGQ9Jo.js +1 -1
  1197. package/dist/register.message-Bk1pHVSK.js +1 -1
  1198. package/dist/register.message-PcFtBR0-.js +1 -1
  1199. package/dist/register.onboard-AWxbhU7j.js +1 -1
  1200. package/dist/register.onboard-BTOZN8ro.js +1 -1
  1201. package/dist/register.setup-B-e1qIbc.js +1 -1
  1202. package/dist/register.setup-CweJJdt8.js +1 -1
  1203. package/dist/register.status-health-sessions-B1R_nl6P.js +1 -1
  1204. package/dist/register.status-health-sessions-CWNLXpAn.js +1 -1
  1205. package/dist/register.subclis-C0VQ_HfZ.js +1 -1
  1206. package/dist/registry-BptzrW8D.js +1 -1
  1207. package/dist/registry-hFAtCSWG.js +1 -1
  1208. package/dist/render-BXEUPIHe.js +1 -1
  1209. package/dist/render-CBsnn-2A.js +1 -1
  1210. package/dist/render-D8OWO2hT.js +1 -1
  1211. package/dist/render-DrrPmnMI.js +1 -1
  1212. package/dist/reply-r9KtzgpM.js +1 -1
  1213. package/dist/restart-CTfuVGfA.js +1 -1
  1214. package/dist/rpc-BQXfCyCw.js +1 -1
  1215. package/dist/rpc-CcrILVsV.js +1 -1
  1216. package/dist/run-main-CuQQyoU3.js +1 -1
  1217. package/dist/runtime-BlsMYeaw.js +1 -1
  1218. package/dist/runtime-DLxfCs7F.js +1 -1
  1219. package/dist/runtime-guard-DFYBaYZS.js +1 -1
  1220. package/dist/runtime-guard-DX2Ie4ri.js +1 -1
  1221. package/dist/runtime-status-CqFBmdRd.js +1 -1
  1222. package/dist/runtime-status-DszMjvJK.js +1 -1
  1223. package/dist/runtime-web-tools-BWv0X5qp.js +1 -1
  1224. package/dist/runtime-web-tools-CCIXUISf.js +1 -1
  1225. package/dist/sandbox-cli-CxluKLFV.js +1 -1
  1226. package/dist/sandbox-cli-xCX6FV4Z.js +1 -1
  1227. package/dist/scan-paths-C13EseXp.js +1 -1
  1228. package/dist/scan-paths-CWtvWW40.js +1 -1
  1229. package/dist/search-manager-KMRzwyPH.js +1 -1
  1230. package/dist/secret-file-C7JffiM_.js +1 -1
  1231. package/dist/secret-file-D60EFEOe.js +1 -1
  1232. package/dist/secret-file-DuWm26jS.js +1 -1
  1233. package/dist/secrets-cli-Be6OBr6Q.js +1 -1
  1234. package/dist/secrets-cli-DmDZiX17.js +1 -1
  1235. package/dist/secure-random-D7JQgiK-.js +1 -1
  1236. package/dist/security-cli-CllLwpQ-.js +1 -1
  1237. package/dist/security-cli-DcA9keUK.js +1 -1
  1238. package/dist/send-8rJCpsDu.js +1 -1
  1239. package/dist/send-BJjoLBo3.js +1 -1
  1240. package/dist/send-BOxuQt9L.js +1 -1
  1241. package/dist/send-BPfl_1It.js +1 -1
  1242. package/dist/send-BdS6jUBa.js +1 -1
  1243. package/dist/send-BeZJ1zbp.js +1 -1
  1244. package/dist/send-BkZ8dWQV2.js +1 -1
  1245. package/dist/send-CDAeI9xB2.js +1 -1
  1246. package/dist/send-CgeRzkWS.js +1 -1
  1247. package/dist/send-CiTZ4p2t.js +1 -1
  1248. package/dist/send-D0y-r_hg2.js +1 -1
  1249. package/dist/send-DIw8ExHc.js +1 -1
  1250. package/dist/send-DRm6AFp-.js +1 -1
  1251. package/dist/send-DS5Quwb7.js +1 -1
  1252. package/dist/send-DVmPgxm7.js +1 -1
  1253. package/dist/send-Ds5sy22D.js +1 -1
  1254. package/dist/send-DvGzdoKK.js +1 -1
  1255. package/dist/send-OVet2uKx.js +1 -1
  1256. package/dist/send-YPQFx-fV.js +1 -1
  1257. package/dist/send-e2ppdA_R.js +1 -1
  1258. package/dist/server-Dzqb5Tau.js +1 -1
  1259. package/dist/server-node-events-B2irOUJ_.js +1 -1
  1260. package/dist/server-node-events-DSr6P0VG.js +1 -1
  1261. package/dist/server-w7sUBJEA.js +1 -1
  1262. package/dist/service-BtB9epJk.js +1 -1
  1263. package/dist/service-DZ9EbS15.js +1 -1
  1264. package/dist/session-BYYOduc1.js +1 -1
  1265. package/dist/session-B_qrXLsR.js +1 -1
  1266. package/dist/session-Be0RV2V1.js +1 -1
  1267. package/dist/session-bk3gFwO4.js +1 -1
  1268. package/dist/session-cost-usage-BgqKixv0.js +1 -1
  1269. package/dist/session-cost-usage-CHtVgnE8.js +1 -1
  1270. package/dist/session-key-C7F_iqYg.js +1 -1
  1271. package/dist/session-key-D3P0tf5P.js +1 -1
  1272. package/dist/session-utils-CrR0wD3W.js +1 -1
  1273. package/dist/sessions-BvTGb3rW.js +1 -1
  1274. package/dist/shared-9x5sqYRb.js +1 -1
  1275. package/dist/shared-BKWhOp64.js +1 -1
  1276. package/dist/shared-BV-hfJ3h.js +1 -1
  1277. package/dist/skill-commands-C59b8Yso.js +1 -1
  1278. package/dist/skill-commands-CqIEajsA.js +1 -1
  1279. package/dist/skill-commands-F5NFH0NR.js +1 -1
  1280. package/dist/skill-commands-O39uSj-k.js +1 -1
  1281. package/dist/skill-scanner-CUUF3Fvo.js +1 -1
  1282. package/dist/skill-scanner-CkxXNioD.js +1 -1
  1283. package/dist/skills-CKTicUKS.js +1 -1
  1284. package/dist/skills-DHbOKEGc.js +1 -1
  1285. package/dist/skills-cli-CZD1Ng18.js +1 -1
  1286. package/dist/skills-cli-nj0w4fe0.js +1 -1
  1287. package/dist/skills-install-D0I6c17J.js +1 -1
  1288. package/dist/skills-install-XHpqMBWl.js +1 -1
  1289. package/dist/skills-status-BWIugRCz.js +1 -1
  1290. package/dist/skills-status-DswSl5aD.js +1 -1
  1291. package/dist/sqlite-CILF3z9U.js +1 -1
  1292. package/dist/stagger-DmFYysrJ.js +1 -1
  1293. package/dist/stagger-DxzgG2jd.js +1 -1
  1294. package/dist/status-DKB9gdSp.js +1 -1
  1295. package/dist/status-DgRrUxyg.js +1 -1
  1296. package/dist/status-YZD9V9xi.js +1 -1
  1297. package/dist/status-isxcm8Xz.js +1 -1
  1298. package/dist/status.update-B_8Gumuc.js +1 -1
  1299. package/dist/status.update-Cf2e-l9d.js +1 -1
  1300. package/dist/string-normalization-BrUPaXaM.js +1 -1
  1301. package/dist/string-normalization-DJT5zuUF.js +1 -1
  1302. package/dist/subsystem-BLbY429l.js +1 -1
  1303. package/dist/subsystem-Bc2XrjUz.js +1 -1
  1304. package/dist/subsystem-C5XF2Fy5.js +1 -1
  1305. package/dist/system-cli-CRs3TOTw.js +1 -1
  1306. package/dist/system-cli-GyoLZQpj.js +1 -1
  1307. package/dist/system-run-command-DCzdgYyb.js +1 -1
  1308. package/dist/system-run-command-FCk9hSMO.js +1 -1
  1309. package/dist/systemd-D7odsu4K.js +1 -1
  1310. package/dist/systemd-DbevZh65.js +1 -1
  1311. package/dist/systemd-hints-lXpMy-kY.js +1 -1
  1312. package/dist/systemd-hints-x1lJAOxS.js +1 -1
  1313. package/dist/systemd-linger-C2MJD6KG.js +1 -1
  1314. package/dist/systemd-linger-cWKbFNpu.js +1 -1
  1315. package/dist/table-CR7TFMew.js +1 -1
  1316. package/dist/table-CY440fI1.js +1 -1
  1317. package/dist/tables-3Rjt6nwZ.js +1 -1
  1318. package/dist/tables-B9wFKQvT.js +1 -1
  1319. package/dist/tables-D1pcaye7.js +1 -1
  1320. package/dist/tables-h7y1Jhf4.js +1 -1
  1321. package/dist/target-errors-CUQcIty1.js +1 -1
  1322. package/dist/target-errors-D55sWZ4E.js +1 -1
  1323. package/dist/target-errors-DH0aw-m5.js +1 -1
  1324. package/dist/target-errors-LuLROpta.js +1 -1
  1325. package/dist/targets-4EaxWBal.js +1 -1
  1326. package/dist/targets-BJTo7bqu.js +1 -1
  1327. package/dist/targets-BYVMrXDf.js +1 -1
  1328. package/dist/targets-Bq6rS6-Z.js +1 -1
  1329. package/dist/targets-CL5fYQi7.js +1 -1
  1330. package/dist/targets-fozeWOOg.js +1 -1
  1331. package/dist/targets-m_41k_Mv.js +1 -1
  1332. package/dist/telegram/audit.js +1 -1
  1333. package/dist/text-format-CvrvBBre.js +1 -1
  1334. package/dist/text-format-DEWK6oCT.js +1 -1
  1335. package/dist/token-DnTmiyJu.js +1 -1
  1336. package/dist/tokens-B2fq-rL6.js +1 -1
  1337. package/dist/tokens-CL2fSjGl.js +1 -1
  1338. package/dist/tokens-DRM8vzJx.js +1 -1
  1339. package/dist/tokens-XGbQGn67.js +1 -1
  1340. package/dist/tool-display-DJDtttQg.js +1 -1
  1341. package/dist/tool-display-DjuSUUbH.js +1 -1
  1342. package/dist/tui-CqEb9hrT.js +1 -1
  1343. package/dist/tui-DdZ8SpNW.js +1 -1
  1344. package/dist/tui-cli-Bj0okLCf.js +1 -1
  1345. package/dist/tui-cli-CYvBshyB.js +1 -1
  1346. package/dist/types.secrets-C-5U96pc.js +1 -1
  1347. package/dist/types.secrets-D4tbc3Wq.js +1 -1
  1348. package/dist/update-BGrxUIyz.js +1 -1
  1349. package/dist/update-CwTy5DPl.js +1 -1
  1350. package/dist/update-cli-lciKU8_L.js +1 -1
  1351. package/dist/update-cli-xb0jHjE8.js +1 -1
  1352. package/dist/update-runner-8Hto6X-M.js +1 -1
  1353. package/dist/update-runner-LVJcy569.js +1 -1
  1354. package/dist/usage-format-BWD8FJFL.js +1 -1
  1355. package/dist/usage-format-yPwal8Iz.js +1 -1
  1356. package/dist/utils-CGdo13HV.js +1 -1
  1357. package/dist/utils-D3t-vPka.js +1 -1
  1358. package/dist/utils-R-mFyVJi.js +1 -1
  1359. package/dist/utils-UGOV_184.js +1 -1
  1360. package/dist/version-q3SkUw2K.js +1 -1
  1361. package/dist/warning-filter.js +1 -1
  1362. package/dist/web-Bfz_qlYe.js +1 -1
  1363. package/dist/web-ClbIohhf.js +1 -1
  1364. package/dist/webhooks-cli-DKfKihmJ.js +1 -1
  1365. package/dist/webhooks-cli-LU2ADRQp.js +1 -1
  1366. package/dist/whatsapp-actions-1TJ8dlv0.js +1 -1
  1367. package/dist/whatsapp-actions-CuDiuPGa.js +1 -1
  1368. package/dist/whatsapp-actions-DkLDOIk1.js +1 -1
  1369. package/dist/whatsapp-actions-EnduXWui.js +1 -1
  1370. package/dist/widearea-dns-BDx7vkV2.js +1 -1
  1371. package/dist/widearea-dns-BFjqKXu_.js +1 -1
  1372. package/dist/windows-spawn-7oINn5ao.js +1 -1
  1373. package/dist/windows-spawn-AB7ItGAE.js +1 -1
  1374. package/dist/with-timeout-WveKxvFV.js +1 -1
  1375. package/dist/with-timeout-c1CzdShT.js +1 -1
  1376. package/dist/workspace-B0ZQeHXg.js +1 -1
  1377. package/dist/workspace-C45T1Cxg.js +1 -1
  1378. package/dist/workspace-dirs-A8Vib9_B.js +1 -1
  1379. package/dist/workspace-dirs-BhF1Dzxt.js +1 -1
  1380. package/dist/workspace-xNEpaJvu.js +1 -1
  1381. package/dist/wsl-DHxB2Ew_.js +1 -1
  1382. package/dist/wsl-Ok7GaSJ6.js +1 -1
  1383. package/extensions/memory-core/index.js +1 -0
  1384. package/extensions/memory-core/package.json +1 -1
  1385. package/extensions/openclaw-telemetry-galileo-embedded/index.js +4 -0
  1386. package/extensions/openclaw-telemetry-galileo-embedded/package.json +2 -2
  1387. package/extensions/openclaw-telemetry-galileo-embedded/src/service.js +13 -0
  1388. package/extensions/openclaw-weixin/index.js +1 -0
  1389. package/extensions/openclaw-weixin/package.json +3 -3
  1390. package/extensions/openclaw-weixin/src/api/api.js +1 -0
  1391. package/extensions/openclaw-weixin/src/api/config-cache.js +1 -0
  1392. package/extensions/openclaw-weixin/src/api/session-guard.js +1 -0
  1393. package/extensions/openclaw-weixin/src/api/types.js +1 -0
  1394. package/extensions/openclaw-weixin/src/auth/accounts.js +1 -0
  1395. package/extensions/openclaw-weixin/src/auth/login-qr.js +11 -0
  1396. package/extensions/openclaw-weixin/src/auth/pairing.js +1 -0
  1397. package/extensions/openclaw-weixin/src/cdn/aes-ecb.js +1 -0
  1398. package/extensions/openclaw-weixin/src/cdn/cdn-upload.js +1 -0
  1399. package/extensions/openclaw-weixin/src/cdn/cdn-url.js +1 -0
  1400. package/extensions/openclaw-weixin/src/cdn/pic-decrypt.js +1 -0
  1401. package/extensions/openclaw-weixin/src/cdn/upload.js +1 -0
  1402. package/extensions/openclaw-weixin/src/channel.js +6 -0
  1403. package/extensions/openclaw-weixin/src/config/config-schema.js +1 -0
  1404. package/extensions/openclaw-weixin/src/log-upload.js +4 -0
  1405. package/extensions/openclaw-weixin/src/media/media-download.js +1 -0
  1406. package/extensions/openclaw-weixin/src/media/mime.js +1 -0
  1407. package/extensions/openclaw-weixin/src/media/silk-transcode.js +1 -0
  1408. package/extensions/openclaw-weixin/src/messaging/debug-mode.js +1 -0
  1409. package/extensions/openclaw-weixin/src/messaging/error-notice.js +1 -0
  1410. package/extensions/openclaw-weixin/src/messaging/inbound.js +2 -0
  1411. package/extensions/openclaw-weixin/src/messaging/process-message.js +3 -0
  1412. package/extensions/openclaw-weixin/src/messaging/send-media.js +1 -0
  1413. package/extensions/openclaw-weixin/src/messaging/send.js +1 -0
  1414. package/extensions/openclaw-weixin/src/messaging/slash-commands.js +2 -0
  1415. package/extensions/openclaw-weixin/src/monitor/monitor.js +1 -0
  1416. package/extensions/openclaw-weixin/src/runtime.js +1 -0
  1417. package/extensions/openclaw-weixin/src/storage/state-dir.js +1 -0
  1418. package/extensions/openclaw-weixin/src/storage/sync-buf.js +1 -0
  1419. package/extensions/openclaw-weixin/src/util/logger.js +2 -0
  1420. package/extensions/openclaw-weixin/src/util/random.js +1 -0
  1421. package/extensions/openclaw-weixin/src/util/redact.js +1 -0
  1422. package/extensions/qbagent-mcp-server-x5uselocal-node/index.js +1 -0
  1423. package/extensions/qbagent-mcp-server-x5uselocal-node/package.json +1 -1
  1424. package/extensions/qbagent-mcp-server-x5uselocal-node/src/browser-use-tool.js +1 -0
  1425. package/extensions/qbagent-mcp-server-x5uselocal-node/src/server.js +1 -0
  1426. package/extensions/qbagent-mcp-server-x5uselocal-node/src/tools.js +1 -0
  1427. package/extensions/qbagent-mcp-server-x5uselocal-node/src/websocket-manager.js +1 -0
  1428. package/package.json +1 -1
  1429. package/extensions/memory-core/index.ts +0 -38
  1430. package/extensions/openclaw-telemetry-galileo-embedded/index.ts +0 -663
  1431. package/extensions/openclaw-telemetry-galileo-embedded/src/service.ts +0 -1590
  1432. package/extensions/openclaw-weixin/index.ts +0 -26
  1433. package/extensions/openclaw-weixin/src/api/api.ts +0 -238
  1434. package/extensions/openclaw-weixin/src/api/config-cache.ts +0 -79
  1435. package/extensions/openclaw-weixin/src/api/session-guard.ts +0 -58
  1436. package/extensions/openclaw-weixin/src/api/types.ts +0 -222
  1437. package/extensions/openclaw-weixin/src/auth/accounts.ts +0 -363
  1438. package/extensions/openclaw-weixin/src/auth/login-qr.ts +0 -344
  1439. package/extensions/openclaw-weixin/src/auth/pairing.ts +0 -120
  1440. package/extensions/openclaw-weixin/src/cdn/aes-ecb.ts +0 -21
  1441. package/extensions/openclaw-weixin/src/cdn/cdn-upload.ts +0 -75
  1442. package/extensions/openclaw-weixin/src/cdn/cdn-url.ts +0 -17
  1443. package/extensions/openclaw-weixin/src/cdn/pic-decrypt.ts +0 -85
  1444. package/extensions/openclaw-weixin/src/cdn/upload.ts +0 -154
  1445. package/extensions/openclaw-weixin/src/channel.ts +0 -483
  1446. package/extensions/openclaw-weixin/src/config/config-schema.ts +0 -21
  1447. package/extensions/openclaw-weixin/src/log-upload.ts +0 -129
  1448. package/extensions/openclaw-weixin/src/media/media-download.ts +0 -138
  1449. package/extensions/openclaw-weixin/src/media/mime.ts +0 -76
  1450. package/extensions/openclaw-weixin/src/media/silk-transcode.ts +0 -74
  1451. package/extensions/openclaw-weixin/src/messaging/debug-mode.ts +0 -68
  1452. package/extensions/openclaw-weixin/src/messaging/error-notice.ts +0 -36
  1453. package/extensions/openclaw-weixin/src/messaging/inbound.ts +0 -283
  1454. package/extensions/openclaw-weixin/src/messaging/process-message.ts +0 -488
  1455. package/extensions/openclaw-weixin/src/messaging/send-media.ts +0 -76
  1456. package/extensions/openclaw-weixin/src/messaging/send.ts +0 -267
  1457. package/extensions/openclaw-weixin/src/messaging/slash-commands.ts +0 -105
  1458. package/extensions/openclaw-weixin/src/monitor/monitor.ts +0 -225
  1459. package/extensions/openclaw-weixin/src/runtime.ts +0 -67
  1460. package/extensions/openclaw-weixin/src/storage/state-dir.ts +0 -11
  1461. package/extensions/openclaw-weixin/src/storage/sync-buf.ts +0 -79
  1462. package/extensions/openclaw-weixin/src/util/logger.ts +0 -146
  1463. package/extensions/openclaw-weixin/src/util/random.ts +0 -17
  1464. package/extensions/openclaw-weixin/src/util/redact.ts +0 -57
  1465. package/extensions/openclaw-weixin/src/vendor.d.ts +0 -21
  1466. package/extensions/qbagent-mcp-server-x5uselocal-node/index.ts +0 -140
  1467. package/extensions/qbagent-mcp-server-x5uselocal-node/src/browser-use-tool.ts +0 -157
  1468. package/extensions/qbagent-mcp-server-x5uselocal-node/src/server.ts +0 -135
  1469. package/extensions/qbagent-mcp-server-x5uselocal-node/src/tools.ts +0 -205
  1470. package/extensions/qbagent-mcp-server-x5uselocal-node/src/websocket-manager.ts +0 -351
@@ -4,4 +4,4 @@ const e=require(`./paths-Bcdg3ma0.cjs`),t=require(`./paths-Dd7r1qlB.cjs`),n=requ
4
4
  `),o=[],s=``,c=0,l=null,u=()=>{if(!s)return;let e=We(s,l);e.trim().length&&o.push(e),s=``,c=0,l&&(s=l.openLine,c=1)};for(let e of a){let t=He(e),i=l!==null,a=l;t&&(l?l.markerChar===t.markerChar&&t.markerLen>=l.markerLen&&(a=null):a=t);let o=a?Ue(a).length+1:0,d=a?1:0,f=n-o,p=r-d,m=f>0?f:n,h=p>0?p:r,g=s.length>0?s.length+1:0,_=Ge(e,Math.max(1,m-g),{preserveWhitespace:i});for(let e=0;e<_.length;e++){let t=_[e],n=e>0,r=`${n?``:s.length>0?`
5
5
  `:``}${t}`,i=s.length+r.length,a=c+(n?0:1);(i>m||a>h)&&s.length>0&&u(),s.length>0?(s+=r,n||(c+=1)):(s=t,c=1)}l=a}if(s.length){let e=We(s,l);e.trim().length&&o.push(e)}return Je(e,o)}function qe(e,t){if((t.chunkMode??`length`)!==`newline`)return Ke(e,t);let n=o.d(e,Math.max(1,Math.floor(t.maxChars??ze)),`newline`),r=[];for(let e of n){let n=Ke(e,t);if(!n.length&&e){r.push(e);continue}r.push(...n)}return r}function Je(e,t){if(t.length<=1||!(e.startsWith(`Reasoning:
6
6
  _`)&&e.trimEnd().endsWith(`_`)))return t;let n=[...t];for(let e=0;e<n.length;e++){let t=e===n.length-1,r=n[e];if(r.trimEnd().endsWith(`_`)||(n[e]=`${r}_`),t)break;let i=n[e+1],a=i.length-i.trimStart().length,o=i.slice(0,a),s=i.slice(a);s.startsWith(`_`)||(n[e+1]=`${o}_${s}`)}return n}function Ye(e){let t=n.hr(e.fallbackToken,`channels.discord.token`);if(!t)throw Error(`Discord bot token missing for account "${e.accountId}" (set discord.accounts.${e.accountId}.token or DISCORD_BOT_TOKEN for default).`);return t}function Xe(e,t){return t??new _.RequestClient(e)}function Ze(e){let r=t.zt(e.accountId),i=n.fr(e.cfg,r),a=e.cfg.channels?.discord?.enabled!==!1,o=i.enabled!==!1;return{accountId:r,enabled:a&&o,name:i.name?.trim()||void 0,token:``,tokenSource:`none`,config:i}}function k(e,t){let r=e.cfg??t??n.Oa(),i=n.hr(e.token,`channels.discord.token`),a=i?Ze({cfg:r,accountId:e.accountId}):n.pr({cfg:r,accountId:e.accountId}),o=i??Ye({accountId:a.accountId,fallbackToken:a.token});return{token:o,rest:Xe(o,e.rest),account:a}}function A(e,t){let{token:n,rest:r,account:i}=k(e,e.cfg??t);return{token:n,rest:r,request:l.r({retry:e.retry,configRetry:i.config.retry,verbose:e.verbose})}}function j(e){return k(e,e.cfg).rest}const Qe=Object.entries(g.PermissionFlagsBits).filter(([,e])=>typeof e==`bigint`),$e=Qe.reduce((e,[,t])=>e|t,0n),et=g.PermissionFlagsBits.Administrator;function M(e,t){return t?e|BigInt(t):e}function N(e,t){return t?e&~BigInt(t):e}function tt(e){return Qe.filter(([,t])=>(e&t)===t).map(([e])=>e).toSorted()}function nt(e){return(e&et)===et}function rt(e,t){return(e&t)===t}function it(e){return e===g.ChannelType.GuildNewsThread||e===g.ChannelType.GuildPublicThread||e===g.ChannelType.GuildPrivateThread}async function at(e){let t=await e.get(g.Routes.user(`@me`));if(!t?.id)throw Error(`Failed to resolve bot user id`);return t.id}async function ot(e,t,n={}){let r=j(n);try{let[n,i]=await Promise.all([r.get(g.Routes.guild(e)),r.get(g.Routes.guildMember(e,t))]),a=new Map((n.roles??[]).map(e=>[e.id,e])),o=a.get(e),s=0n;o?.permissions&&(s=M(s,o.permissions));for(let e of i.roles??[]){let t=a.get(e);t?.permissions&&(s=M(s,t.permissions))}return s}catch{return null}}async function st(e,t,n,r,i={}){let a=await ot(e,t,i);return a===null?!1:nt(a)?!0:r(a,n)}async function ct(e,t,n,r={}){return await st(e,t,n,(e,t)=>t.some(t=>rt(e,t)),r)}async function lt(e,t={}){let n=j(t),r=await n.get(g.Routes.channel(e)),i=`type`in r?r.type:void 0,a=`guild_id`in r?r.guild_id:void 0;if(!a)return{channelId:e,permissions:[],raw:`0`,isDm:!0,channelType:i};let o=await at(n),[s,c]=await Promise.all([n.get(g.Routes.guild(a)),n.get(g.Routes.guildMember(a,o))]),l=new Map((s.roles??[]).map(e=>[e.id,e])),u=l.get(a),d=0n;u?.permissions&&(d=M(d,u.permissions));for(let e of c.roles??[]){let t=l.get(e);t?.permissions&&(d=M(d,t.permissions))}if(nt(d))return{channelId:e,guildId:a,permissions:tt($e),raw:$e.toString(),isDm:!1,channelType:i};let f=d,p=`permission_overwrites`in r?r.permission_overwrites??[]:[];for(let e of p)e.id===a&&(f=N(f,e.deny??`0`),f=M(f,e.allow??`0`));for(let e of p)c.roles?.includes(e.id)&&(f=N(f,e.deny??`0`),f=M(f,e.allow??`0`));for(let e of p)e.id===o&&(f=N(f,e.deny??`0`),f=M(f,e.allow??`0`));return{channelId:e,guildId:a,permissions:tt(f),raw:f.toString(),isDm:!1,channelType:i}}var P=class extends Error{constructor(e,t){super(e),this.name=`DiscordSendError`,t&&Object.assign(this,t)}toString(){return this.message}};const ut=/#\d{4}$/,F=new Map;function dt(e){return t.zt(e??`default`)||`default`}function ft(e){let t=String(e??``).trim();return/^\d+$/.test(t)?t:null}function pt(e){let t=e.trim();return!t||(t.startsWith(`@`)&&(t=t.slice(1).trim()),!t||/\s/.test(t))?null:t.toLowerCase()}function mt(e){let t=dt(e),n=F.get(t);if(n)return n;let r=new Map;return F.set(t,r),r}function ht(e,t,n){if(e.has(t)&&e.delete(t),e.set(t,n),e.size<=4e3)return;let r=e.keys().next();r.done||e.delete(r.value)}function gt(e){let t=ft(e.userId);if(!t)return;let n=mt(e.accountId);for(let r of e.handles){if(typeof r!=`string`)continue;let e=pt(r);if(!e)continue;ht(n,e,t);let i=e.replace(ut,``);i&&i!==e&&ht(n,i,t)}}function _t(e){let t=F.get(dt(e.accountId));if(!t)return;let n=pt(e.handle);if(!n)return;let r=t.get(n);if(r)return r;let i=n.replace(ut,``);if(!(!i||i===n))return t.get(i)}function vt(e){return e?.trim().toLowerCase()??``}function yt(e){return e.bot?0:1}function bt(e){let t=n.hr(n.pr({cfg:e.cfg,accountId:e.accountId}).token,`channels.discord.token`);return t?{token:t,query:vt(e.query)}:null}async function xt(e){return(await E(`/users/@me/guilds`,e)).filter(e=>e.id&&e.name)}async function St(e){let t=bt(e);if(!t)return[];let{token:n,query:r}=t,i=await xt(n),a=[];for(let t of i){let i=await E(`/guilds/${t.id}/channels`,n);for(let t of i){let n=t.name?.trim();if(n&&!(r&&!O(n).includes(O(r)))&&(a.push({kind:`group`,id:`channel:${t.id}`,name:n,handle:`#${n}`,raw:t}),typeof e.limit==`number`&&e.limit>0&&a.length>=e.limit))return a}}return a}async function Ct(e){let t=bt(e);if(!t)return[];let{token:n,query:r}=t;if(!r)return[];let i=await xt(n),a=[],o=typeof e.limit==`number`&&e.limit>0?e.limit:25;for(let t of i){let i=new URLSearchParams({query:r,limit:String(Math.min(o,100))}),s=await E(`/guilds/${t.id}/members/search?${i.toString()}`,n);for(let t of s){let n=t.user;if(!n?.id)continue;gt({accountId:e.accountId,userId:n.id,handles:[n.username,n.global_name,t.nick,n.username?`@${n.username}`:null]});let r=t.nick?.trim()||n.global_name?.trim()||n.username?.trim();if(a.push({kind:`user`,id:`user:${n.id}`,name:r||void 0,handle:n.username?`@${n.username}`:void 0,rank:yt(n),raw:t}),a.length>=o)return a}}return a}function I(e,t={}){let n=e.trim();if(!n)return;let r=i.r({raw:n,mentionPattern:/^<@!?(\d+)>$/,prefixes:[{prefix:`user:`,kind:`user`},{prefix:`channel:`,kind:`channel`},{prefix:`discord:`,kind:`user`}],atUserPattern:/^\d+$/,atUserErrorMessage:`Discord DMs require a user id (use user:<id> or a <@id> mention)`});if(r)return r;if(/^\d+$/.test(n)){if(t.defaultKind)return i.t(t.defaultKind,n,n);throw Error(t.ambiguousMessage??`Ambiguous Discord recipient "${n}". Use "user:${n}" for DMs or "channel:${n}" for channel messages.`)}return i.t(`channel`,n,n)}function wt(e){return i.i({platform:`Discord`,target:I(e,{defaultKind:`channel`}),kind:`channel`})}async function Tt(e,t,n={}){let r=e.trim();if(!r)return;let a=Ot(r),o=Dt(r,n)||a,s=Et(r,n);if(s&&s.kind!==`channel`&&!a)return s;if(!o)return s??I(r,n);try{let e=(await Ct({...t,query:r,limit:1}))[0];if(e&&e.kind===`user`){let n=e.id.replace(/^user:/,``);return gt({accountId:t.accountId,userId:n,handles:[r,e.name,e.handle]}),i.t(`user`,n,r)}}catch{}return I(r,n)}function Et(e,t){try{return I(e,t)}catch{return}}function Dt(e,t){return/^<@!?(\d+)>$/.test(e)||/^(user:|discord:)/.test(e)||e.startsWith(`@`)?!0:/^\d+$/.test(e)?t.defaultKind===`user`:!1}function Ot(e){return!/^(user:|channel:|discord:|@|<@!?)|[\d]+$/.test(e)}function kt(e){let t=e.trim();if(!t)throw Error(`emoji required`);let n=t.match(/^<a?:([^:>]+):(\d+)>$/),r=n?`${n[1]}:${n[2]}`:t.replace(/[\uFE0E\uFE0F]/g,``);return encodeURIComponent(r)}async function L(e,t,r){let i=r??n.Oa(),a=n.pr({cfg:i,accountId:t}),o=e.trim(),s={ambiguousMessage:`Ambiguous Discord recipient "${o}". Use "user:${o}" for DMs or "channel:${o}" for channel messages.`},c=await Tt(e,{cfg:i,accountId:a.accountId},s);if(c)return{kind:c.kind,id:c.id};let l=I(e,s);if(!l)throw Error(`Recipient is required for Discord sends`);return{kind:l.kind,id:l.id}}function At(e){let t=e.map(e=>e.trim()).filter(Boolean);if(t.length===0)throw Error(`At least one sticker id is required`);if(t.length>3)throw Error(`Discord supports up to 3 stickers per message`);return t}function R(e,t){let n=e.trim();if(!n)throw Error(`${t} is required`);return n}function jt(e){let t=c.n(e,{maxOptions:10}),n=c.t(t.durationHours,{defaultHours:24,maxHours:768});return{question:{text:t.question},answers:t.options.map(e=>({poll_media:{text:e}})),duration:n,allow_multiselect:t.maxSelections>1,layout_type:v.PollLayoutType.Default}}function Mt(e){if(!e||typeof e!=`object`)return;let t=`code`in e&&e.code!==void 0?e.code:`rawError`in e&&e.rawError&&typeof e.rawError==`object`?e.rawError.code:void 0;if(typeof t==`number`)return t;if(typeof t==`string`&&/^\d+$/.test(t))return Number(t)}async function z(e,t){if(e instanceof P)return e;let n=Mt(e);if(n===50007)return new P(`discord dm failed: user blocks dms or privacy settings disallow it`,{kind:`dm-blocked`});if(n!==50013)return e;let r=[];try{let e=await lt(t.channelId,{rest:t.rest,token:t.token}),n=new Set(e.permissions),i=[`ViewChannel`,`SendMessages`];it(e.channelType)&&i.push(`SendMessagesInThreads`),t.hasMedia&&i.push(`AttachFiles`),r=i.filter(e=>!n.has(e))}catch{}return new P(`${r.length?`missing permissions in channel ${t.channelId}: ${r.join(`, `)}`:`missing permissions in channel ${t.channelId}`}. bot might be muted or blocked by role/channel overrides`,{kind:`missing-permissions`,channelId:t.channelId,missingPermissions:r})}async function B(e,t,n){if(t.kind===`channel`)return{channelId:t.id};let r=await n(()=>e.post(g.Routes.userChannels(),{body:{recipient_id:t.id}}),`dm-channel`);if(!r?.id)throw Error(`Failed to create Discord DM channel`);return{channelId:r.id,dm:!0}}async function Nt(e,t){try{return(await e.get(g.Routes.channel(t)))?.type}catch{return}}const V=4096;function Pt(e,t={}){if(!e)return[];let n=qe(e,{maxChars:t.maxChars??2e3,maxLines:t.maxLinesPerMessage,chunkMode:t.chunkMode});return!n.length&&e&&n.push(e),n}function Ft(e){return!!e?.some(e=>`isV2`in e&&e.isV2)}function It(e){if(!(!e.components||!e.isFirst))return typeof e.components==`function`?e.components(e.text):e.components}function Lt(e){if(e?.length)return e.map(e=>e instanceof _.Embed?e:new _.Embed(e))}function Rt(e){if(!(!e.embeds||!e.isFirst))return Lt(e.embeds)}function zt(e){let t={},n=Ft(e.components),r=e.text.trim();return!n&&r&&(t.content=e.text),e.components?.length&&(t.components=e.components),!n&&e.embeds?.length&&(t.embeds=e.embeds),e.flags!==void 0&&(t.flags=e.flags),e.files?.length&&(t.files=e.files),t}function H(e){return Object.fromEntries(Object.entries(e).filter(([,e])=>e!==void 0))}function Bt(e){if(e instanceof Blob)return e;let t=new ArrayBuffer(e.byteLength);return new Uint8Array(t).set(e),new Blob([t])}async function U(e,t,n,r,i,a,o,s,c,l){if(!n.trim())throw Error(`Message must be non-empty for Discord sends`);let u=r?{message_id:r,fail_if_not_exists:!1}:void 0,d=l?V:void 0,f=Pt(n,{maxLinesPerMessage:a,chunkMode:c}),p=async(n,r)=>{let a=H({...(0,_.serializePayload)(zt({text:n,components:It({components:o,text:n,isFirst:r}),embeds:Rt({embeds:s,isFirst:r}),flags:d})),...u?{message_reference:u}:{}});return await i(()=>e.post(g.Routes.channelMessages(t),{body:a}),`text`)};if(f.length===1)return await p(f[0],!0);let m=null;for(let[e,t]of f.entries())m=await p(t,e===0);if(!m)throw Error(`Discord send failed (empty chunk result)`);return m}async function Vt(e,t,n,r,i,a,c,l,u,d,f,p,m){let h=await o.a(r,s.t({maxBytes:a,mediaLocalRoots:i})),v=n?Pt(n,{maxLinesPerMessage:u,chunkMode:p}):[],y=v[0]??``,b=c?{message_id:c,fail_if_not_exists:!1}:void 0,x=m?V:void 0,S=Bt(h.buffer),C=zt({text:y,components:It({components:d,text:y,isFirst:!0}),embeds:Rt({embeds:f,isFirst:!0}),flags:x,files:[{data:S,name:h.fileName??`upload`}]}),w=await l(()=>e.post(g.Routes.channelMessages(t),{body:H({...(0,_.serializePayload)(C),...b?{message_reference:b}:{}})}),`media`);for(let n of v.slice(1))n.trim()&&await U(e,t,n,c,l,u,void 0,void 0,p,m);return w}function Ht(e){return e.id&&e.name?`${e.name}:${e.id}`:e.name??``}function Ut(e){return Ht(e)}async function Wt(e,t={}){let n=j(t),r={name:e.name};return e.type!==void 0&&(r.type=e.type),e.parentId&&(r.parent_id=e.parentId),e.topic&&(r.topic=e.topic),e.position!==void 0&&(r.position=e.position),e.nsfw!==void 0&&(r.nsfw=e.nsfw),await n.post(g.Routes.guildChannels(e.guildId),{body:r})}async function Gt(e,t={}){let n=j(t),r={};return e.name!==void 0&&(r.name=e.name),e.topic!==void 0&&(r.topic=e.topic),e.position!==void 0&&(r.position=e.position),e.parentId!==void 0&&(r.parent_id=e.parentId),e.nsfw!==void 0&&(r.nsfw=e.nsfw),e.rateLimitPerUser!==void 0&&(r.rate_limit_per_user=e.rateLimitPerUser),e.archived!==void 0&&(r.archived=e.archived),e.locked!==void 0&&(r.locked=e.locked),e.autoArchiveDuration!==void 0&&(r.auto_archive_duration=e.autoArchiveDuration),e.availableTags!==void 0&&(r.available_tags=e.availableTags.map(e=>({...e.id!==void 0&&{id:e.id},name:e.name,...e.moderated!==void 0&&{moderated:e.moderated},...e.emoji_id!==void 0&&{emoji_id:e.emoji_id},...e.emoji_name!==void 0&&{emoji_name:e.emoji_name}}))),await n.patch(g.Routes.channel(e.channelId),{body:r})}async function Kt(e,t={}){return await j(t).delete(g.Routes.channel(e)),{ok:!0,channelId:e}}async function qt(e,t={}){let n=j(t),r=[{id:e.channelId,...e.parentId!==void 0&&{parent_id:e.parentId},...e.position!==void 0&&{position:e.position}}];return await n.patch(g.Routes.guildChannels(e.guildId),{body:r}),{ok:!0}}async function Jt(e,t={}){let n=j(t),r={type:e.targetType};return e.allow!==void 0&&(r.allow=e.allow),e.deny!==void 0&&(r.deny=e.deny),await n.put(`/channels/${e.channelId}/permissions/${e.targetId}`,{body:r}),{ok:!0}}async function Yt(e,t,n={}){return await j(n).delete(`/channels/${e}/permissions/${t}`),{ok:!0}}async function Xt(e,t={}){return await j(t).get(g.Routes.guildEmojis(e))}async function Zt(e,t={}){let n=j(t),r=await o.o(e.mediaUrl,262144),i=r.contentType?.toLowerCase();if(!i||![`image/png`,`image/jpeg`,`image/jpg`,`image/gif`].includes(i))throw Error(`Discord emoji uploads require a PNG, JPG, or GIF image`);let a=`data:${i};base64,${r.buffer.toString(`base64`)}`,s=(e.roleIds??[]).map(e=>e.trim()).filter(Boolean);return await n.post(g.Routes.guildEmojis(e.guildId),{body:{name:R(e.name,`Emoji name`),image:a,roles:s.length?s:void 0}})}async function Qt(e,t={}){let n=j(t),r=await o.o(e.mediaUrl,524288),i=r.contentType?.toLowerCase();if(!i||![`image/png`,`image/apng`,`application/json`].includes(i))throw Error(`Discord sticker uploads require a PNG, APNG, or Lottie JSON file`);return await n.post(g.Routes.guildStickers(e.guildId),{body:{name:R(e.name,`Sticker name`),description:R(e.description,`Sticker description`),tags:R(e.tags,`Sticker tags`),files:[{data:r.buffer,name:r.fileName??`sticker`,contentType:i}]}})}async function $t(e,t,n={}){return await j(n).get(g.Routes.guildMember(e,t))}async function en(e,t={}){return await j(t).get(g.Routes.guildRoles(e))}async function tn(e,t={}){return await j(t).put(g.Routes.guildMemberRole(e.guildId,e.userId,e.roleId)),{ok:!0}}async function nn(e,t={}){return await j(t).delete(g.Routes.guildMemberRole(e.guildId,e.userId,e.roleId)),{ok:!0}}async function rn(e,t={}){return await j(t).get(g.Routes.channel(e))}async function an(e,t={}){return await j(t).get(g.Routes.guildChannels(e))}async function on(e,t,n={}){return await j(n).get(g.Routes.guildVoiceState(e,t))}async function sn(e,t={}){return await j(t).get(g.Routes.guildScheduledEvents(e))}async function cn(e,t,n={}){return await j(n).post(g.Routes.guildScheduledEvents(e),{body:t})}async function ln(e,t={}){let n=j(t),r=e.until;if(!r&&e.durationMinutes){let t=e.durationMinutes*60*1e3;r=new Date(Date.now()+t).toISOString()}return await n.patch(g.Routes.guildMember(e.guildId,e.userId),{body:{communication_disabled_until:r??null},headers:e.reason?{"X-Audit-Log-Reason":encodeURIComponent(e.reason)}:void 0})}async function un(e,t={}){return await j(t).delete(g.Routes.guildMember(e.guildId,e.userId),{headers:e.reason?{"X-Audit-Log-Reason":encodeURIComponent(e.reason)}:void 0}),{ok:!0}}async function dn(e,t={}){let n=j(t),r=typeof e.deleteMessageDays==`number`&&Number.isFinite(e.deleteMessageDays)?Math.min(Math.max(Math.floor(e.deleteMessageDays),0),7):void 0;return await n.put(g.Routes.guildBan(e.guildId,e.userId),{body:r===void 0?void 0:{delete_message_days:r},headers:e.reason?{"X-Audit-Log-Reason":encodeURIComponent(e.reason)}:void 0}),{ok:!0}}async function fn(e,t={},n={}){let r=j(n),i=typeof t.limit==`number`&&Number.isFinite(t.limit)?Math.min(Math.max(Math.floor(t.limit),1),100):void 0,a={};return i&&(a.limit=i),t.before&&(a.before=t.before),t.after&&(a.after=t.after),t.around&&(a.around=t.around),await r.get(g.Routes.channelMessages(e),a)}async function pn(e,t,n={}){return await j(n).get(g.Routes.channelMessage(e,t))}async function mn(e,t,n,r={}){return await j(r).patch(g.Routes.channelMessage(e,t),{body:{content:n.content}})}async function hn(e,t,n={}){return await j(n).delete(g.Routes.channelMessage(e,t)),{ok:!0}}async function gn(e,t,n={}){return await j(n).put(g.Routes.channelPin(e,t)),{ok:!0}}async function _n(e,t,n={}){return await j(n).delete(g.Routes.channelPin(e,t)),{ok:!0}}async function vn(e,t={}){return await j(t).get(g.Routes.channelPins(e))}async function yn(e,t,n={}){let r=j(n),i={name:t.name};t.autoArchiveMinutes&&(i.auto_archive_duration=t.autoArchiveMinutes),!t.messageId&&t.type!==void 0&&(i.type=t.type);let a;if(!t.messageId)try{a=(await r.get(g.Routes.channel(e)))?.type}catch{a=void 0}let o=a===g.ChannelType.GuildForum||a===g.ChannelType.GuildMedia;o&&(i.message={content:t.content?.trim()?t.content:t.name},t.appliedTags?.length&&(i.applied_tags=t.appliedTags)),!t.messageId&&!o&&i.type===void 0&&(i.type=g.ChannelType.PublicThread);let s=t.messageId?g.Routes.threads(e,t.messageId):g.Routes.threads(e),c=await r.post(s,{body:i});return!o&&t.content?.trim()&&await r.post(g.Routes.channelMessages(c.id),{body:{content:t.content}}),c}async function bn(e,t={}){let n=j(t);if(e.includeArchived){if(!e.channelId)throw Error(`channelId required to list archived threads`);let t={};return e.before&&(t.before=e.before),e.limit&&(t.limit=e.limit),await n.get(g.Routes.channelThreads(e.channelId,`public`),t)}return await n.get(g.Routes.guildActiveThreads(e.guildId))}async function xn(e,t={}){let n=j(t),r=new URLSearchParams;if(r.set(`content`,e.content),e.channelIds?.length)for(let t of e.channelIds)r.append(`channel_id`,t);if(e.authorIds?.length)for(let t of e.authorIds)r.append(`author_id`,t);if(e.limit){let t=Math.min(Math.max(Math.floor(e.limit),1),25);r.set(`limit`,String(t))}return await n.get(`/guilds/${e.guildId}/messages/search?${r.toString()}`)}async function Sn(e){if(e)try{await m.default.unlink(e)}catch{}}const Cn=/```[\s\S]*?```|`[^`\n]*`/g,wn=/(^|[\s([{"'.,;:!?])@([a-z0-9_.-]{2,32}(?:#[0-9]{4})?)/gi,Tn=new Set([`everyone`,`here`]);function En(e){let t=String(e??``).trim();return/^\d+$/.test(t)?t:null}function Dn(e){let t=e.userId==null?null:En(e.userId),n=e.roleId==null?null:En(e.roleId),r=e.channelId==null?null:En(e.channelId),i=[t?{kind:`user`,id:t}:null,n?{kind:`role`,id:n}:null,r?{kind:`channel`,id:r}:null].filter(e=>!!e);if(i.length!==1)throw Error(`formatMention requires exactly one of userId, roleId, or channelId`);let a=i[0];return a.kind===`user`?`<@${a.id}>`:a.kind===`role`?`<@&${a.id}>`:`<#${a.id}>`}function On(e,t){return e.includes(`@`)?e.replace(wn,(e,n,r)=>{let i=String(r??``).trim();if(!i)return e;let a=i.toLowerCase();if(Tn.has(a))return e;let o=_t({accountId:t,handle:i});return o?`${String(n??``)}${Dn({userId:o})}`:e}):e}function W(e,t){if(!e.includes(`@`))return e;let n=``,r=0;Cn.lastIndex=0;for(let i of e.matchAll(Cn)){let a=i.index??0;n+=On(e.slice(r,a),t.accountId),n+=i[0],r=a+i[0].length}return n+=On(e.slice(r),t.accountId),n}const kn=(0,p.promisify)(f.execFile);function An(e,t){return{timeout:t?.timeoutMs??e,maxBuffer:t?.maxBufferBytes??10485760}}async function jn(e,t){let{stdout:n}=await kn(`ffprobe`,e,An(1e4,t));return n.toString()}async function Mn(e,t){let{stdout:n}=await kn(`ffmpeg`,e,An(45e3,t));return n.toString()}function Nn(e,t){return e.trim().toLowerCase().split(/[,\r\n]+/,t).map(e=>e.trim())}function Pn(e){let[t,n]=Nn(e,2),r=t||null,i=n?Number.parseInt(n,10):NaN;return{codec:r,sampleRateHz:Number.isFinite(i)?i:null}}const Fn=8192;async function In(e){try{let t=await jn([`-v`,`error`,`-show_entries`,`format=duration`,`-of`,`csv=p=0`,e]),n=parseFloat(t.trim());if(isNaN(n))throw Error(`Could not parse duration`);return Math.round(n*100)/100}catch(e){let t=e instanceof Error?e.message:String(e);throw Error(`Failed to get audio duration: ${t}`,{cause:e})}}async function Ln(e){try{return await Rn(e)}catch{return zn()}}async function Rn(e){let t=r.Z(),n=d.default.join(t,`waveform-${h.default.randomUUID()}.raw`);try{await Mn([`-y`,`-i`,e,`-vn`,`-sn`,`-dn`,`-t`,`1200`,`-f`,`s16le`,`-acodec`,`pcm_s16le`,`-ac`,`1`,`-ar`,`8000`,n]);let t=await m.default.readFile(n),r=new Int16Array(t.buffer,t.byteOffset,t.byteLength/2),i=Math.max(1,Math.floor(r.length/256)),a=[];for(let e=0;e<256&&e*i<r.length;e++){let t=0,n=0;for(let a=0;a<i&&e*i+a<r.length;a++)t+=Math.abs(r[e*i+a]),n++;let o=n>0?t/n:0,s=Math.min(255,Math.round(o/32767*255));a.push(s)}for(;a.length<256;)a.push(0);return Buffer.from(a).toString(`base64`)}finally{await Sn(n)}}function zn(){let e=[];for(let t=0;t<256;t++){let n=Math.round(128+64*Math.sin(t/256*Math.PI*8));e.push(Math.min(255,Math.max(0,n)))}return Buffer.from(e).toString(`base64`)}async function Bn(e){let t=e.trim();if(/^[a-z][a-z0-9+.-]*:\/\//i.test(t))throw Error(`Voice message conversion requires a local file path; received a URL/protocol source: ${t}`);if(d.default.extname(e).toLowerCase()===`.ogg`)try{let{codec:t,sampleRateHz:n}=Pn(await jn([`-v`,`error`,`-select_streams`,`a:0`,`-show_entries`,`stream=codec_name,sample_rate`,`-of`,`csv=p=0`,e]));if(t===`opus`&&n===48e3)return{path:e,cleanup:!1}}catch{}let n=r.Z(),i=d.default.join(n,`voice-${h.default.randomUUID()}.ogg`);return await Mn([`-y`,`-i`,e,`-vn`,`-sn`,`-dn`,`-t`,`1200`,`-ar`,`48000`,`-c:a`,`libopus`,`-b:a`,`64k`,i]),{path:i,cleanup:!0}}async function Vn(e){let[t,n]=await Promise.all([In(e),Ln(e)]);return{durationSecs:t,waveform:n}}async function Hn(e,t,n,r,i,a,o,s){let c=`voice-message.ogg`,l=n.byteLength,u=s;if(!u)throw Error(`Discord bot token is required for voice message upload`);let d=await a(async()=>{let n=`${e.options?.baseUrl??`https://discord.com/api`}/channels/${t}/attachments`,r=await fetch(n,{method:`POST`,headers:{Authorization:`Bot ${u}`,"Content-Type":`application/json`},body:JSON.stringify({files:[{filename:c,file_size:l,id:`0`}]})});if(!r.ok){if(r.status===429){let e=await r.json().catch(()=>({}));throw new _.RateLimitError(r,{message:e.message??`You are being rate limited.`,retry_after:e.retry_after??1,global:e.global??!1})}let e=await r.json().catch(()=>null),t=Error(`Upload URL request failed: ${r.status} ${e?.message??``}`);throw e?.code!==void 0&&(t.code=e.code),t}return await r.json()},`voice-upload-url`);if(!d.attachments?.[0])throw Error(`Failed to get upload URL for voice message`);let{upload_url:f,upload_filename:p}=d.attachments[0],m=await fetch(f,{method:`PUT`,headers:{"Content-Type":`audio/ogg`},body:new Uint8Array(n)});if(!m.ok)throw Error(`Failed to upload voice message: ${m.status}`);let h={flags:o?Fn|4096:Fn,attachments:[{id:`0`,filename:c,uploaded_filename:p,duration_secs:r.durationSecs,waveform:r.waveform}]};return i&&(h.message_reference={message_id:i,fail_if_not_exists:!1}),await a(()=>e.post(`/channels/${t}/messages`,{body:h}),`voice-message`)}async function Un(e){for(let t of e.chunks)await U(e.rest,e.threadId,t,void 0,e.request,e.maxLinesPerMessage,void 0,void 0,e.chunkMode,e.silent)}function Wn(e){return(e.split(`
7
- `).find(e=>e.trim())?.trim()??``).slice(0,100)||new Date().toISOString().slice(0,16)}function Gn(e){return e===g.ChannelType.GuildForum||e===g.ChannelType.GuildMedia}function G(e,t){return{messageId:e.id?String(e.id):`unknown`,channelId:String(e.channel_id??t)}}async function Kn(e,t){let r=t.cfg??n.Oa(),{rest:i,request:a}=A(t,r),{channelId:o}=await B(i,await L(e,t.accountId,r),a);return{rest:i,request:a,channelId:o}}async function qn(e,t,r={}){let i=r.cfg??n.Oa(),a=n.pr({cfg:i,accountId:r.accountId}),s=o.s({cfg:i,channel:`discord`,accountId:a.accountId}),c=o.m(i,`discord`,a.accountId),d=typeof a.config.mediaMaxMb==`number`?a.config.mediaMaxMb*1024*1024:8*1024*1024,f=u.t(t??``,s),p=W(f,{accountId:a.accountId}),{token:m,rest:h,request:v}=A(r,i),{channelId:y}=await B(h,await L(e,r.accountId,i),v);if(Gn(await Nt(h,y))){let e=Wn(f),t=Pt(p,{maxLinesPerMessage:a.config.maxLinesPerMessage,chunkMode:c}),n=t[0]?.trim()?t[0]:e,i=zt({text:n,components:It({components:r.components,text:n,isFirst:!0}),embeds:Rt({embeds:r.embeds,isFirst:!0}),flags:r.silent?4096:void 0}),o;try{o=await v(()=>h.post(g.Routes.threads(y),{body:{name:e,message:H((0,_.serializePayload)(i))}}),`forum-thread`)}catch(e){throw await z(e,{channelId:y,rest:h,token:m,hasMedia:!!r.mediaUrl})}let s=o.id,u=o.message?.id??s,b=o.message?.channel_id??s,x=t.slice(1);try{if(r.mediaUrl){let[e,...t]=x;await Vt(h,s,e??``,r.mediaUrl,r.mediaLocalRoots,d,void 0,v,a.config.maxLinesPerMessage,void 0,void 0,c,r.silent),await Un({rest:h,threadId:s,chunks:t,request:v,maxLinesPerMessage:a.config.maxLinesPerMessage,chunkMode:c,silent:r.silent})}else await Un({rest:h,threadId:s,chunks:x,request:v,maxLinesPerMessage:a.config.maxLinesPerMessage,chunkMode:c,silent:r.silent})}catch(e){throw await z(e,{channelId:s,rest:h,token:m,hasMedia:!!r.mediaUrl})}return l.n({channel:`discord`,accountId:a.accountId,direction:`outbound`}),G({id:u,channel_id:b},y)}let b;try{b=r.mediaUrl?await Vt(h,y,p,r.mediaUrl,r.mediaLocalRoots,d,r.replyTo,v,a.config.maxLinesPerMessage,r.components,r.embeds,c,r.silent):await U(h,y,p,r.replyTo,v,a.config.maxLinesPerMessage,r.components,r.embeds,c,r.silent)}catch(e){throw await z(e,{channelId:y,rest:h,token:m,hasMedia:!!r.mediaUrl})}return l.n({channel:`discord`,accountId:a.accountId,direction:`outbound`}),G(b,y)}function Jn(e){let t=new URL(`https://discord.com/api/v10/webhooks/${encodeURIComponent(e.webhookId)}/${encodeURIComponent(e.webhookToken)}`);return t.searchParams.set(`wait`,e.wait===!1?`false`:`true`),e.threadId!==void 0&&e.threadId!==null&&e.threadId!==``&&t.searchParams.set(`thread_id`,String(e.threadId)),t.toString()}async function Yn(e,t){let r=t.webhookId.trim(),i=t.webhookToken.trim();if(!r||!i)throw Error(`Discord webhook id/token are required`);let a=W(e,{accountId:t.accountId}),o=typeof t.replyTo==`string`?t.replyTo.trim():``,s=o?{message_id:o,fail_if_not_exists:!1}:void 0,c=await fetch(Jn({webhookId:r,webhookToken:i,threadId:t.threadId,wait:t.wait}),{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({content:a,username:t.username?.trim()||void 0,avatar_url:t.avatarUrl?.trim()||void 0,...s?{message_reference:s}:{}})});if(!c.ok){let e=await c.text().catch(()=>``);throw Error(`Discord webhook send failed (${c.status}${e?`: ${e.slice(0,200)}`:``})`)}let u=await c.json().catch(()=>({}));try{l.n({channel:`discord`,accountId:n.pr({cfg:t.cfg??n.Oa(),accountId:t.accountId}).accountId,direction:`outbound`})}catch{}return{messageId:u.id?String(u.id):`unknown`,channelId:u.channel_id?String(u.channel_id):t.threadId?String(t.threadId):``}}async function Xn(e,t,n={}){let{rest:r,request:i,channelId:a}=await Kn(e,n),o=n.content?.trim(),s=o?W(o,{accountId:n.accountId}):void 0,c=At(t);return G(await i(()=>r.post(g.Routes.channelMessages(a),{body:{content:s||void 0,sticker_ids:c}}),`sticker`),a)}async function Zn(e,t,n={}){let{rest:r,request:i,channelId:a}=await Kn(e,n),o=n.content?.trim(),s=o?W(o,{accountId:n.accountId}):void 0;if(t.durationSeconds!==void 0)throw Error(`Discord polls do not support durationSeconds; use durationHours`);let c=jt(t),l=n.silent?V:void 0;return G(await i(()=>r.post(g.Routes.channelMessages(a),{body:{content:s||void 0,poll:c,...l?{flags:l}:{}}}),`poll`),a)}async function Qn(e){let n=await o.o(e,t.y(`audio`)),i=n.fileName?d.default.extname(n.fileName):``,a=n.contentType?t.d(n.contentType):``,s=i||a||`.bin`,c=r.Z(),l=d.default.join(c,`voice-src-${h.default.randomUUID()}${s}`);return await m.default.writeFile(l,n.buffer,{mode:384}),{filePath:l}}async function $n(e,t,r={}){let{filePath:i}=await Qn(t),a=null,o=!1,s,c,u;try{let t=r.cfg??n.Oa(),d=n.pr({cfg:t,accountId:r.accountId}),f=A(r,t);s=f.token,c=f.rest;let p=f.request,h=await L(e,r.accountId,t);u=(await B(c,h,p)).channelId;let g=await Bn(i);a=g.path,o=g.cleanup;let _=await Vn(a),v=await m.default.readFile(a),y=await Hn(c,u,v,_,r.replyTo,p,r.silent,s);return l.n({channel:`discord`,accountId:d.accountId,direction:`outbound`}),G(y,u)}catch(e){throw u&&c&&s?await z(e,{channelId:u,rest:c,token:s,hasMedia:!0}):e}finally{await Sn(o?a:null),await Sn(i)}}const K=new Map,q=new Map;function er(e,t){return typeof e.expiresAt==`number`&&e.expiresAt<=t}function tr(e,t,n){let r=e.createdAt??t,i=e.expiresAt??r+n;return{...e,createdAt:r,expiresAt:i}}function nr(e){let t=Date.now(),n=e.ttlMs??18e5;for(let r of e.entries){let i=tr({...r,messageId:e.messageId??r.messageId},t,n);K.set(r.id,i)}for(let r of e.modals){let i=tr({...r,messageId:e.messageId??r.messageId},t,n);q.set(r.id,i)}}function rr(e){let t=K.get(e.id);return t?er(t,Date.now())?(K.delete(e.id),null):(e.consume!==!1&&K.delete(e.id),t):null}function ir(e){let t=q.get(e.id);return t?er(t,Date.now())?(q.delete(e.id),null):(e.consume!==!1&&q.delete(e.id),t):null}const ar=`attachment://`,or=new Map([[`row`,`actions`],[`action-row`,`actions`]]);function J(e){return`${e}${h.default.randomBytes(6).toString(`base64url`)}`}function Y(e,t){if(!e||typeof e!=`object`||Array.isArray(e))throw Error(`${t} must be an object`);return e}function X(e,t,n){if(typeof e!=`string`)throw Error(`${t} must be a string`);let r=e.trim();if(!n?.allowEmpty&&!r)throw Error(`${t} cannot be empty`);return n?.allowEmpty?e:r}function Z(e){return typeof e==`string`&&e.trim()||void 0}function sr(e,t){if(e!==void 0){if(!Array.isArray(e))throw Error(`${t} must be an array`);if(e.length!==0)return e.map((e,n)=>X(e,`${t}[${n}]`))}}function Q(e){if(!(typeof e!=`number`||!Number.isFinite(e)))return e}function cr(e,t){return e?.trim()||`field_${t+1}`}function lr(e,t){let n=e.trim();if(!n.startsWith(`attachment://`))throw Error(`${t} must start with "${ar}"`);let r=n.slice(13).trim();if(!r)throw Error(`${t} must include an attachment filename`);return`${ar}${r}`}function ur(e){let t=e.trim();if(!t.startsWith(`attachment://`))throw Error(`Attachment reference must start with "${ar}"`);let n=t.slice(13).trim();if(!n)throw Error(`Attachment reference must include a filename`);return n}function dr(e){switch((e??`primary`).toLowerCase()){case`secondary`:return g.ButtonStyle.Secondary;case`success`:return g.ButtonStyle.Success;case`danger`:return g.ButtonStyle.Danger;case`link`:return g.ButtonStyle.Link;default:return g.ButtonStyle.Primary}}function fr(e){return e===`paragraph`?g.TextInputStyle.Paragraph:g.TextInputStyle.Short}function pr(e){let t=e.trim().toLowerCase();return or.get(t)??t}function mr(e,t){if(e!==void 0){if(!Array.isArray(e))throw Error(`${t} must be an array`);return e.map((e,n)=>{let r=Y(e,`${t}[${n}]`);return{label:X(r.label,`${t}[${n}].label`),value:X(r.value,`${t}[${n}].value`),description:Z(r.description),emoji:typeof r.emoji==`object`&&r.emoji&&!Array.isArray(r.emoji)?{name:X(r.emoji.name,`${t}[${n}].emoji.name`),id:Z(r.emoji.id),animated:typeof r.emoji.animated==`boolean`?r.emoji.animated:void 0}:void 0,default:typeof r.default==`boolean`?r.default:void 0}})}}function hr(e,t){let n=Y(e,t),r=Z(n.style),i=Z(n.url);if((r===`link`||i)&&!i)throw Error(`${t}.url is required for link buttons`);return{label:X(n.label,`${t}.label`),style:r,url:i,emoji:typeof n.emoji==`object`&&n.emoji&&!Array.isArray(n.emoji)?{name:X(n.emoji.name,`${t}.emoji.name`),id:Z(n.emoji.id),animated:typeof n.emoji.animated==`boolean`?n.emoji.animated:void 0}:void 0,disabled:typeof n.disabled==`boolean`?n.disabled:void 0,allowedUsers:sr(n.allowedUsers,`${t}.allowedUsers`)}}function gr(e,t){let n=Y(e,t),r=Z(n.type),i=[`string`,`user`,`role`,`mentionable`,`channel`];if(r&&!i.includes(r))throw Error(`${t}.type must be one of ${i.join(`, `)}`);return{type:r,placeholder:Z(n.placeholder),minValues:Q(n.minValues),maxValues:Q(n.maxValues),options:mr(n.options,`${t}.options`)}}function _r(e,t,n){let r=Y(e,t),i=X(r.type,`${t}.type`).toLowerCase(),a=[`text`,`checkbox`,`radio`,`select`,`role-select`,`user-select`];if(!a.includes(i))throw Error(`${t}.type must be one of ${a.join(`, `)}`);let o=mr(r.options,`${t}.options`);if([`checkbox`,`radio`,`select`].includes(i)&&(!o||o.length===0))throw Error(`${t}.options is required for ${i} fields`);return{type:i,name:cr(Z(r.name),n),label:X(r.label,`${t}.label`),description:Z(r.description),placeholder:Z(r.placeholder),required:typeof r.required==`boolean`?r.required:void 0,options:o,minValues:Q(r.minValues),maxValues:Q(r.maxValues),minLength:Q(r.minLength),maxLength:Q(r.maxLength),style:Z(r.style)}}function vr(e,t){let n=Y(e,t);switch(pr(X(n.type,`${t}.type`).toLowerCase())){case`text`:return{type:`text`,text:X(n.text,`${t}.text`)};case`section`:{let e=Z(n.text),r=n.texts,i=Array.isArray(r)?r.map((e,n)=>X(e,`${t}.texts[${n}]`)):void 0;if(!e&&(!i||i.length===0))throw Error(`${t}.text or ${t}.texts is required for section blocks`);let a;if(n.accessory!==void 0){let e=Y(n.accessory,`${t}.accessory`),r=X(e.type,`${t}.accessory.type`).toLowerCase();if(r===`thumbnail`)a={type:`thumbnail`,url:X(e.url,`${t}.accessory.url`)};else if(r===`button`)a={type:`button`,button:hr(e.button,`${t}.accessory.button`)};else throw Error(`${t}.accessory.type must be "thumbnail" or "button"`)}return{type:`section`,text:e,texts:i,accessory:a}}case`separator`:{let e=n.spacing,r;if(e===`small`||e===`large`)r=e;else if(e===1||e===2)r=e;else if(e!==void 0)throw Error(`${t}.spacing must be "small", "large", 1, or 2`);let i=typeof n.divider==`boolean`?n.divider:void 0;return{type:`separator`,spacing:r,divider:i}}case`actions`:{let e=n.buttons,r=Array.isArray(e)?e.map((e,n)=>hr(e,`${t}.buttons[${n}]`)):void 0,i=n.select?gr(n.select,`${t}.select`):void 0;if((!r||r.length===0)&&!i)throw Error(`${t} requires buttons or select`);if(r&&i)throw Error(`${t} cannot include both buttons and select`);return{type:`actions`,buttons:r,select:i}}case`media-gallery`:{let e=n.items;if(!Array.isArray(e)||e.length===0)throw Error(`${t}.items must be a non-empty array`);return{type:`media-gallery`,items:e.map((e,n)=>{let r=Y(e,`${t}.items[${n}]`);return{url:X(r.url,`${t}.items[${n}].url`),description:Z(r.description),spoiler:typeof r.spoiler==`boolean`?r.spoiler:void 0}})}}case`file`:return{type:`file`,file:lr(X(n.file,`${t}.file`),`${t}.file`),spoiler:typeof n.spoiler==`boolean`?n.spoiler:void 0};default:throw Error(`${t}.type must be a supported component block`)}}function yr(e){if(e==null)return null;let t=Y(e,`components`),n=t.blocks,r=Array.isArray(n)?n.map((e,t)=>vr(e,`components.blocks[${t}]`)):void 0,i=t.modal,a=typeof t.reusable==`boolean`?t.reusable:void 0,o;if(i!==void 0){let e=Y(i,`components.modal`),t=e.fields;if(!Array.isArray(t)||t.length===0)throw Error(`components.modal.fields must be a non-empty array`);if(t.length>5)throw Error(`components.modal.fields supports up to 5 inputs`);let n=t.map((e,t)=>_r(e,`components.modal.fields[${t}]`,t));o={title:X(e.title,`components.modal.title`),triggerLabel:Z(e.triggerLabel),triggerStyle:Z(e.triggerStyle),fields:n}}return{text:Z(t.text),reusable:a,container:typeof t.container==`object`&&t.container&&!Array.isArray(t.container)?{accentColor:t.container.accentColor,spoiler:typeof t.container.spoiler==`boolean`?t.container.spoiler:void 0}:void 0,blocks:r,modal:o}}function br(e){let t=`occomp:cid=${e.componentId}`;return e.modalId?`${t};mid=${e.modalId}`:t}function xr(e){return`ocmodal:mid=${e}`}function Sr(e){let t=(0,_.parseCustomId)(e);if(t.key!==`occomp`)return null;let n=t.data.cid;if(typeof n!=`string`||!n.trim())return null;let r=t.data.mid;return{componentId:n,modalId:typeof r==`string`&&r.trim()?r:void 0}}function Cr(e){let t=(0,_.parseCustomId)(e);if(t.key!==`ocmodal`)return null;let n=t.data.mid;return typeof n!=`string`||!n.trim()?null:n}function wr(e){return/^__openclaw_discord_component_[a-z_]+_wildcard__$/.test(e)}function Tr(e){if(e===`*`||wr(e))return{key:`*`,data:{}};let t=(0,_.parseCustomId)(e);return t.key===`occomp`?{key:`*`,data:t.data}:t}function Er(e){if(e===`*`||wr(e))return{key:`*`,data:{}};let t=(0,_.parseCustomId)(e);return t.key===`ocmodal`?{key:`*`,data:t.data}:t}function Dr(e,t){return t&&t.length>0?t.map(e=>new _.TextDisplay(e)):e?[new _.TextDisplay(e)]:[]}function $(e){let t=dr(e.spec.style);if(t===g.ButtonStyle.Link||e.spec.url){if(!e.spec.url)throw Error(`Link buttons require a url`);let t=e.spec.url;class n extends _.LinkButton{constructor(...n){super(...n),this.label=e.spec.label,this.url=t}}return{component:new n}}let n=e.componentId??J(`btn_`),r=br({componentId:n,modalId:e.modalId});class i extends _.Button{constructor(...n){super(...n),this.label=e.spec.label,this.customId=r,this.style=t,this.emoji=e.spec.emoji,this.disabled=e.spec.disabled??!1}}return{component:new i,entry:{id:n,kind:e.modalId?`modal-trigger`:`button`,label:e.spec.label,modalId:e.modalId,allowedUsers:e.spec.allowedUsers}}}function Or(e){let t=(e.spec.type??`string`).toLowerCase(),n=e.componentId??J(`sel_`),r=br({componentId:n});if(t===`string`){let t=e.spec.options??[];if(t.length===0)throw Error(`String select menus require options`);class i extends _.StringSelectMenu{constructor(...n){super(...n),this.customId=r,this.options=t,this.minValues=e.spec.minValues,this.maxValues=e.spec.maxValues,this.placeholder=e.spec.placeholder,this.disabled=!1}}return{component:new i,entry:{id:n,kind:`select`,label:e.spec.placeholder??`select`,selectType:`string`,options:t.map(e=>({value:e.value,label:e.label}))}}}if(t===`user`){class t extends _.UserSelectMenu{constructor(...t){super(...t),this.customId=r,this.minValues=e.spec.minValues,this.maxValues=e.spec.maxValues,this.placeholder=e.spec.placeholder,this.disabled=!1}}return{component:new t,entry:{id:n,kind:`select`,label:e.spec.placeholder??`user select`,selectType:`user`}}}if(t===`role`){class t extends _.RoleSelectMenu{constructor(...t){super(...t),this.customId=r,this.minValues=e.spec.minValues,this.maxValues=e.spec.maxValues,this.placeholder=e.spec.placeholder,this.disabled=!1}}return{component:new t,entry:{id:n,kind:`select`,label:e.spec.placeholder??`role select`,selectType:`role`}}}if(t===`mentionable`){class t extends _.MentionableSelectMenu{constructor(...t){super(...t),this.customId=r,this.minValues=e.spec.minValues,this.maxValues=e.spec.maxValues,this.placeholder=e.spec.placeholder,this.disabled=!1}}return{component:new t,entry:{id:n,kind:`select`,label:e.spec.placeholder??`mentionable select`,selectType:`mentionable`}}}class i extends _.ChannelSelectMenu{constructor(...t){super(...t),this.customId=r,this.minValues=e.spec.minValues,this.maxValues=e.spec.maxValues,this.placeholder=e.spec.placeholder,this.disabled=!1}}return{component:new i,entry:{id:n,kind:`select`,label:e.spec.placeholder??`channel select`,selectType:`channel`}}}function kr(e){return e instanceof _.StringSelectMenu||e instanceof _.UserSelectMenu||e instanceof _.RoleSelectMenu||e instanceof _.MentionableSelectMenu||e instanceof _.ChannelSelectMenu}function Ar(e){if(e.type===`text`){class t extends _.TextInput{constructor(...t){super(...t),this.customId=e.id,this.style=fr(e.style),this.placeholder=e.placeholder,this.required=e.required,this.minLength=e.minLength,this.maxLength=e.maxLength}}return new t}if(e.type===`select`){let t=e.options??[];class n extends _.StringSelectMenu{constructor(...n){super(...n),this.customId=e.id,this.options=t,this.required=e.required,this.minValues=e.minValues,this.maxValues=e.maxValues,this.placeholder=e.placeholder}}return new n}if(e.type===`role-select`){class t extends _.RoleSelectMenu{constructor(...t){super(...t),this.customId=e.id,this.required=e.required,this.minValues=e.minValues,this.maxValues=e.maxValues,this.placeholder=e.placeholder}}return new t}if(e.type===`user-select`){class t extends _.UserSelectMenu{constructor(...t){super(...t),this.customId=e.id,this.required=e.required,this.minValues=e.minValues,this.maxValues=e.maxValues,this.placeholder=e.placeholder}}return new t}if(e.type===`checkbox`){let t=e.options??[];class n extends _.CheckboxGroup{constructor(...n){super(...n),this.customId=e.id,this.options=t,this.required=e.required,this.minValues=e.minValues,this.maxValues=e.maxValues}}return new n}let t=e.options??[];class n extends _.RadioGroup{constructor(...n){super(...n),this.customId=e.id,this.options=t,this.required=e.required,this.minValues=e.minValues,this.maxValues=e.maxValues}}return new n}function jr(e){let t=[],n=[],r=[],i=[],a=n=>{t.push({...n,sessionKey:e.sessionKey,agentId:e.agentId,accountId:e.accountId,reusable:n.reusable??e.spec.reusable})},o=e.spec.text??e.fallbackText;o&&i.push(new _.TextDisplay(o));for(let t of e.spec.blocks??[]){if(t.type===`text`){i.push(new _.TextDisplay(t.text));continue}if(t.type===`section`){let e=Dr(t.text,t.texts);if(e.length>3)throw Error(`Section blocks support up to 3 text displays`);let n;if(t.accessory?.type===`thumbnail`)n=new _.Thumbnail(t.accessory.url);else if(t.accessory?.type===`button`){let{component:e,entry:r}=$({spec:t.accessory.button});n=e,r&&a(r)}i.push(new _.Section(e,n));continue}if(t.type===`separator`){i.push(new _.Separator({spacing:t.spacing,divider:t.divider}));continue}if(t.type===`media-gallery`){i.push(new _.MediaGallery(t.items));continue}if(t.type===`file`){i.push(new _.File(t.file,t.spoiler));continue}if(t.type===`actions`){let e=[];if(t.buttons){if(t.buttons.length>5)throw Error(`Action rows support up to 5 buttons`);for(let n of t.buttons){let{component:t,entry:r}=$({spec:n});e.push(t),r&&a(r)}}else if(t.select){let{component:n,entry:r}=Or({spec:t.select});e.push(n),a(r)}i.push(new _.Row(e))}}if(e.spec.modal){let t=J(`mdl_`),r=e.spec.modal.fields.map((e,t)=>({id:J(`fld_`),name:cr(e.name,t),label:e.label,type:e.type,description:e.description,placeholder:e.placeholder,required:e.required,options:e.options,minValues:e.minValues,maxValues:e.maxValues,minLength:e.minLength,maxLength:e.maxLength,style:e.style}));n.push({id:t,title:e.spec.modal.title,fields:r,sessionKey:e.sessionKey,agentId:e.agentId,accountId:e.accountId,reusable:e.spec.reusable});let{component:o,entry:s}=$({spec:{label:e.spec.modal.triggerLabel??`Open form`,style:e.spec.modal.triggerStyle??`primary`},modalId:t});s&&a(s);let c=i.at(-1);if(c instanceof _.Row){let e=c,t=e.components.some(e=>kr(e));e.components.length<5&&!t?e.addComponent(o):i.push(new _.Row([o]))}else i.push(new _.Row([o]))}if(i.length===0)throw Error(`components must include at least one block, text, or modal trigger`);let s=new _.Container(i,e.spec.container);return r.push(s),{components:r,entries:t,modals:n}}function Mr(e){return e.some(e=>e.isV2)?g.MessageFlags.IsComponentsV2:void 0}var Nr=class extends _.Modal{constructor(e){super(),this.customIdParser=Er,this.title=e.title,this.customId=xr(e.modalId),this.components=e.fields.map(e=>{let t=Ar(e);class n extends _.Label{constructor(...n){super(...n),this.label=e.label,this.description=e.description,this.component=t,this.customId=e.id}}return new n(t)})}async run(){throw Error(`Modal handler is not registered for dynamic forms`)}};function Pr(e){return new Nr({modalId:e.id,title:e.title,fields:e.fields})}function Fr(e){if(e.kind===`button`)return`Clicked "${e.label}".`;let t=e.values??[];return t.length===0?`Updated "${e.label}".`:`Selected ${t.join(`, `)} from "${e.label}".`}const Ir=new Set([g.ChannelType.GuildForum,g.ChannelType.GuildMedia]);function Lr(e){let t=[];for(let n of e.blocks??[])n.type===`file`&&t.push(ur(n.file));return t}async function Rr(e,t,r={}){let i=r.cfg??n.Oa(),a=n.pr({cfg:i,accountId:r.accountId}),{token:s,rest:c,request:u}=A(r,i),{channelId:d}=await B(c,await L(e,r.accountId,i),u),f=await Nt(c,d);if(f&&Ir.has(f))throw Error(`Discord components are not supported in forum-style channels`);let p=jr({spec:t,sessionKey:r.sessionKey,agentId:r.agentId,accountId:a.accountId}),m=Mr(p.components),h=r.silent?(m??0)|V:m??void 0,v=r.replyTo?{message_id:r.replyTo,fail_if_not_exists:!1}:void 0,y=Lr(t),b=[...new Set(y)];if(b.length>1)throw Error(`Discord component attachments currently support a single file. Use media-gallery for multiple files.`);let x=b[0],S;if(r.mediaUrl){let e=await o.a(r.mediaUrl,{localRoots:r.mediaLocalRoots}),t=r.filename?.trim()||e.fileName||`upload`;if(x&&x!==t)throw Error(`Component file block expects attachment "${x}", but the uploaded file is "${t}". Update components.blocks[].file or provide a matching filename.`);S=[{data:Bt(e.buffer),name:t}]}else if(x)throw Error(`Discord component file blocks require a media attachment (media/path/filePath).`);let C=H({...(0,_.serializePayload)({components:p.components,...h?{flags:h}:{},...S?{files:S}:{}}),...v?{message_reference:v}:{}}),w;try{w=await u(()=>c.post(g.Routes.channelMessages(d),{body:C}),`components`)}catch(e){throw await z(e,{channelId:d,rest:c,token:s,hasMedia:!!S?.length})}return nr({entries:p.entries,modals:p.modals,messageId:w.id}),l.n({channel:`discord`,accountId:a.accountId,direction:`outbound`}),{messageId:w.id??`unknown`,channelId:w.channel_id??d}}async function zr(e,t,r,i={}){let{rest:a,request:o}=A(i,i.cfg??n.Oa()),s=kt(r);return await o(()=>a.put(g.Routes.channelMessageOwnReaction(e,t,s)),`react`),{ok:!0}}async function Br(e,t,r,i={}){let{rest:a}=A(i,i.cfg??n.Oa()),o=kt(r);return await a.delete(g.Routes.channelMessageOwnReaction(e,t,o)),{ok:!0}}async function Vr(e,t,r={}){let{rest:i}=A(r,r.cfg??n.Oa()),a=await i.get(g.Routes.channelMessage(e,t)),o=new Set;for(let e of a.reactions??[]){let t=Ht(e.emoji);t&&o.add(t)}if(o.size===0)return{ok:!0,removed:[]};let s=[];return await Promise.allSettled(Array.from(o,n=>(s.push(n),i.delete(g.Routes.channelMessageOwnReaction(e,t,kt(n)))))),{ok:!0,removed:s}}async function Hr(e,t,r={}){let{rest:i}=A(r,r.cfg??n.Oa()),a=(await i.get(g.Routes.channelMessage(e,t))).reactions??[];if(a.length===0)return[];let o=typeof r.limit==`number`&&Number.isFinite(r.limit)?Math.min(Math.max(Math.floor(r.limit),1),100):100,s=[];for(let n of a){let r=Ht(n.emoji);if(!r)continue;let a=encodeURIComponent(r),c=await i.get(g.Routes.channelMessageReaction(e,t,a),{limit:o});s.push({emoji:{id:n.emoji.id??null,name:n.emoji.name??null,raw:Ut(n.emoji)},count:n.count,users:c.map(e=>({id:e.id,username:e.username,tag:e.username&&e.discriminator?`${e.username}#${e.discriminator}`:e.username}))})}return s}Object.defineProperty(exports,`$`,{enumerable:!0,get:function(){return H}}),Object.defineProperty(exports,`A`,{enumerable:!0,get:function(){return _n}}),Object.defineProperty(exports,`At`,{enumerable:!0,get:function(){return ae}}),Object.defineProperty(exports,`B`,{enumerable:!0,get:function(){return sn}}),Object.defineProperty(exports,`C`,{enumerable:!0,get:function(){return mn}}),Object.defineProperty(exports,`Ct`,{enumerable:!0,get:function(){return he}}),Object.defineProperty(exports,`D`,{enumerable:!0,get:function(){return gn}}),Object.defineProperty(exports,`Dt`,{enumerable:!0,get:function(){return ce}}),Object.defineProperty(exports,`E`,{enumerable:!0,get:function(){return bn}}),Object.defineProperty(exports,`Et`,{enumerable:!0,get:function(){return E}}),Object.defineProperty(exports,`F`,{enumerable:!0,get:function(){return $t}}),Object.defineProperty(exports,`Ft`,{enumerable:!0,get:function(){return S}}),Object.defineProperty(exports,`G`,{enumerable:!0,get:function(){return Qt}}),Object.defineProperty(exports,`H`,{enumerable:!0,get:function(){return ln}}),Object.defineProperty(exports,`I`,{enumerable:!0,get:function(){return en}}),Object.defineProperty(exports,`It`,{enumerable:!0,get:function(){return x}}),Object.defineProperty(exports,`J`,{enumerable:!0,get:function(){return Gt}}),Object.defineProperty(exports,`K`,{enumerable:!0,get:function(){return Wt}}),Object.defineProperty(exports,`L`,{enumerable:!0,get:function(){return on}}),Object.defineProperty(exports,`Lt`,{enumerable:!0,get:function(){return w}}),Object.defineProperty(exports,`M`,{enumerable:!0,get:function(){return dn}}),Object.defineProperty(exports,`Mt`,{enumerable:!0,get:function(){return ie}}),Object.defineProperty(exports,`N`,{enumerable:!0,get:function(){return cn}}),Object.defineProperty(exports,`Nt`,{enumerable:!0,get:function(){return se}}),Object.defineProperty(exports,`O`,{enumerable:!0,get:function(){return fn}}),Object.defineProperty(exports,`Ot`,{enumerable:!0,get:function(){return le}}),Object.defineProperty(exports,`P`,{enumerable:!0,get:function(){return rn}}),Object.defineProperty(exports,`Pt`,{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,`Q`,{enumerable:!0,get:function(){return U}}),Object.defineProperty(exports,`R`,{enumerable:!0,get:function(){return un}}),Object.defineProperty(exports,`Rt`,{enumerable:!0,get:function(){return ee}}),Object.defineProperty(exports,`S`,{enumerable:!0,get:function(){return hn}}),Object.defineProperty(exports,`St`,{enumerable:!0,get:function(){return _e}}),Object.defineProperty(exports,`T`,{enumerable:!0,get:function(){return vn}}),Object.defineProperty(exports,`Tt`,{enumerable:!0,get:function(){return T}}),Object.defineProperty(exports,`U`,{enumerable:!0,get:function(){return Xt}}),Object.defineProperty(exports,`V`,{enumerable:!0,get:function(){return nn}}),Object.defineProperty(exports,`W`,{enumerable:!0,get:function(){return Zt}}),Object.defineProperty(exports,`X`,{enumerable:!0,get:function(){return Yt}}),Object.defineProperty(exports,`Y`,{enumerable:!0,get:function(){return qt}}),Object.defineProperty(exports,`Z`,{enumerable:!0,get:function(){return Jt}}),Object.defineProperty(exports,`_`,{enumerable:!0,get:function(){return Xn}}),Object.defineProperty(exports,`_t`,{enumerable:!0,get:function(){return Ee}}),Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return Rr}}),Object.defineProperty(exports,`at`,{enumerable:!0,get:function(){return ct}}),Object.defineProperty(exports,`b`,{enumerable:!0,get:function(){return Dn}}),Object.defineProperty(exports,`bt`,{enumerable:!0,get:function(){return Re}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return Sr}}),Object.defineProperty(exports,`ct`,{enumerable:!0,get:function(){return qe}}),Object.defineProperty(exports,`d`,{enumerable:!0,get:function(){return Er}}),Object.defineProperty(exports,`dt`,{enumerable:!0,get:function(){return O}}),Object.defineProperty(exports,`et`,{enumerable:!0,get:function(){return I}}),Object.defineProperty(exports,`f`,{enumerable:!0,get:function(){return yr}}),Object.defineProperty(exports,`ft`,{enumerable:!0,get:function(){return xe}}),Object.defineProperty(exports,`g`,{enumerable:!0,get:function(){return Zn}}),Object.defineProperty(exports,`gt`,{enumerable:!0,get:function(){return De}}),Object.defineProperty(exports,`h`,{enumerable:!0,get:function(){return qn}}),Object.defineProperty(exports,`ht`,{enumerable:!0,get:function(){return Te}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return Br}}),Object.defineProperty(exports,`it`,{enumerable:!0,get:function(){return lt}}),Object.defineProperty(exports,`j`,{enumerable:!0,get:function(){return tn}}),Object.defineProperty(exports,`jt`,{enumerable:!0,get:function(){return ne}}),Object.defineProperty(exports,`k`,{enumerable:!0,get:function(){return xn}}),Object.defineProperty(exports,`kt`,{enumerable:!0,get:function(){return re}}),Object.defineProperty(exports,`l`,{enumerable:!0,get:function(){return Tr}}),Object.defineProperty(exports,`lt`,{enumerable:!0,get:function(){return Ie}}),Object.defineProperty(exports,`m`,{enumerable:!0,get:function(){return ir}}),Object.defineProperty(exports,`mt`,{enumerable:!0,get:function(){return Oe}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return zr}}),Object.defineProperty(exports,`nt`,{enumerable:!0,get:function(){return St}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return Pr}}),Object.defineProperty(exports,`ot`,{enumerable:!0,get:function(){return A}}),Object.defineProperty(exports,`p`,{enumerable:!0,get:function(){return rr}}),Object.defineProperty(exports,`pt`,{enumerable:!0,get:function(){return Ne}}),Object.defineProperty(exports,`q`,{enumerable:!0,get:function(){return Kt}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return Vr}}),Object.defineProperty(exports,`rt`,{enumerable:!0,get:function(){return Ct}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return Fr}}),Object.defineProperty(exports,`st`,{enumerable:!0,get:function(){return k}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return Hr}}),Object.defineProperty(exports,`tt`,{enumerable:!0,get:function(){return wt}}),Object.defineProperty(exports,`u`,{enumerable:!0,get:function(){return Cr}}),Object.defineProperty(exports,`ut`,{enumerable:!0,get:function(){return D}}),Object.defineProperty(exports,`v`,{enumerable:!0,get:function(){return $n}}),Object.defineProperty(exports,`vt`,{enumerable:!0,get:function(){return Pe}}),Object.defineProperty(exports,`w`,{enumerable:!0,get:function(){return pn}}),Object.defineProperty(exports,`wt`,{enumerable:!0,get:function(){return ve}}),Object.defineProperty(exports,`x`,{enumerable:!0,get:function(){return yn}}),Object.defineProperty(exports,`xt`,{enumerable:!0,get:function(){return ge}}),Object.defineProperty(exports,`y`,{enumerable:!0,get:function(){return Yn}}),Object.defineProperty(exports,`yt`,{enumerable:!0,get:function(){return Le}}),Object.defineProperty(exports,`z`,{enumerable:!0,get:function(){return an}});
7
+ `).find(e=>e.trim())?.trim()??``).slice(0,100)||new Date().toISOString().slice(0,16)}function Gn(e){return e===g.ChannelType.GuildForum||e===g.ChannelType.GuildMedia}function G(e,t){return{messageId:e.id?String(e.id):`unknown`,channelId:String(e.channel_id??t)}}async function Kn(e,t){let r=t.cfg??n.Oa(),{rest:i,request:a}=A(t,r),{channelId:o}=await B(i,await L(e,t.accountId,r),a);return{rest:i,request:a,channelId:o}}async function qn(e,t,r={}){let i=r.cfg??n.Oa(),a=n.pr({cfg:i,accountId:r.accountId}),s=o.s({cfg:i,channel:`discord`,accountId:a.accountId}),c=o.m(i,`discord`,a.accountId),d=typeof a.config.mediaMaxMb==`number`?a.config.mediaMaxMb*1024*1024:8*1024*1024,f=u.t(t??``,s),p=W(f,{accountId:a.accountId}),{token:m,rest:h,request:v}=A(r,i),{channelId:y}=await B(h,await L(e,r.accountId,i),v);if(Gn(await Nt(h,y))){let e=Wn(f),t=Pt(p,{maxLinesPerMessage:a.config.maxLinesPerMessage,chunkMode:c}),n=t[0]?.trim()?t[0]:e,i=zt({text:n,components:It({components:r.components,text:n,isFirst:!0}),embeds:Rt({embeds:r.embeds,isFirst:!0}),flags:r.silent?4096:void 0}),o;try{o=await v(()=>h.post(g.Routes.threads(y),{body:{name:e,message:H((0,_.serializePayload)(i))}}),`forum-thread`)}catch(e){throw await z(e,{channelId:y,rest:h,token:m,hasMedia:!!r.mediaUrl})}let s=o.id,u=o.message?.id??s,b=o.message?.channel_id??s,x=t.slice(1);try{if(r.mediaUrl){let[e,...t]=x;await Vt(h,s,e??``,r.mediaUrl,r.mediaLocalRoots,d,void 0,v,a.config.maxLinesPerMessage,void 0,void 0,c,r.silent),await Un({rest:h,threadId:s,chunks:t,request:v,maxLinesPerMessage:a.config.maxLinesPerMessage,chunkMode:c,silent:r.silent})}else await Un({rest:h,threadId:s,chunks:x,request:v,maxLinesPerMessage:a.config.maxLinesPerMessage,chunkMode:c,silent:r.silent})}catch(e){throw await z(e,{channelId:s,rest:h,token:m,hasMedia:!!r.mediaUrl})}return l.n({channel:`discord`,accountId:a.accountId,direction:`outbound`}),G({id:u,channel_id:b},y)}let b;try{b=r.mediaUrl?await Vt(h,y,p,r.mediaUrl,r.mediaLocalRoots,d,r.replyTo,v,a.config.maxLinesPerMessage,r.components,r.embeds,c,r.silent):await U(h,y,p,r.replyTo,v,a.config.maxLinesPerMessage,r.components,r.embeds,c,r.silent)}catch(e){throw await z(e,{channelId:y,rest:h,token:m,hasMedia:!!r.mediaUrl})}return l.n({channel:`discord`,accountId:a.accountId,direction:`outbound`}),G(b,y)}function Jn(e){let t=new URL(`https://discord.com/api/v10/webhooks/${encodeURIComponent(e.webhookId)}/${encodeURIComponent(e.webhookToken)}`);return t.searchParams.set(`wait`,e.wait===!1?`false`:`true`),e.threadId!==void 0&&e.threadId!==null&&e.threadId!==``&&t.searchParams.set(`thread_id`,String(e.threadId)),t.toString()}async function Yn(e,t){let r=t.webhookId.trim(),i=t.webhookToken.trim();if(!r||!i)throw Error(`Discord webhook id/token are required`);let a=W(e,{accountId:t.accountId}),o=typeof t.replyTo==`string`?t.replyTo.trim():``,s=o?{message_id:o,fail_if_not_exists:!1}:void 0,c=await fetch(Jn({webhookId:r,webhookToken:i,threadId:t.threadId,wait:t.wait}),{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({content:a,username:t.username?.trim()||void 0,avatar_url:t.avatarUrl?.trim()||void 0,...s?{message_reference:s}:{}})});if(!c.ok){let e=await c.text().catch(()=>``);throw Error(`Discord webhook send failed (${c.status}${e?`: ${e.slice(0,200)}`:``})`)}let u=await c.json().catch(()=>({}));try{l.n({channel:`discord`,accountId:n.pr({cfg:t.cfg??n.Oa(),accountId:t.accountId}).accountId,direction:`outbound`})}catch{}return{messageId:u.id?String(u.id):`unknown`,channelId:u.channel_id?String(u.channel_id):t.threadId?String(t.threadId):``}}async function Xn(e,t,n={}){let{rest:r,request:i,channelId:a}=await Kn(e,n),o=n.content?.trim(),s=o?W(o,{accountId:n.accountId}):void 0,c=At(t);return G(await i(()=>r.post(g.Routes.channelMessages(a),{body:{content:s||void 0,sticker_ids:c}}),`sticker`),a)}async function Zn(e,t,n={}){let{rest:r,request:i,channelId:a}=await Kn(e,n),o=n.content?.trim(),s=o?W(o,{accountId:n.accountId}):void 0;if(t.durationSeconds!==void 0)throw Error(`Discord polls do not support durationSeconds; use durationHours`);let c=jt(t),l=n.silent?V:void 0;return G(await i(()=>r.post(g.Routes.channelMessages(a),{body:{content:s||void 0,poll:c,...l?{flags:l}:{}}}),`poll`),a)}async function Qn(e){let n=await o.o(e,t.y(`audio`)),i=n.fileName?d.default.extname(n.fileName):``,a=n.contentType?t.d(n.contentType):``,s=i||a||`.bin`,c=r.Z(),l=d.default.join(c,`voice-src-${h.default.randomUUID()}${s}`);return await m.default.writeFile(l,n.buffer,{mode:384}),{filePath:l}}async function $n(e,t,r={}){let{filePath:i}=await Qn(t),a=null,o=!1,s,c,u;try{let t=r.cfg??n.Oa(),d=n.pr({cfg:t,accountId:r.accountId}),f=A(r,t);s=f.token,c=f.rest;let p=f.request,h=await L(e,r.accountId,t);u=(await B(c,h,p)).channelId;let g=await Bn(i);a=g.path,o=g.cleanup;let _=await Vn(a),v=await m.default.readFile(a),y=await Hn(c,u,v,_,r.replyTo,p,r.silent,s);return l.n({channel:`discord`,accountId:d.accountId,direction:`outbound`}),G(y,u)}catch(e){throw u&&c&&s?await z(e,{channelId:u,rest:c,token:s,hasMedia:!0}):e}finally{await Sn(o?a:null),await Sn(i)}}const K=new Map,q=new Map;function er(e,t){return typeof e.expiresAt==`number`&&e.expiresAt<=t}function tr(e,t,n){let r=e.createdAt??t,i=e.expiresAt??r+n;return{...e,createdAt:r,expiresAt:i}}function nr(e){let t=Date.now(),n=e.ttlMs??18e5;for(let r of e.entries){let i=tr({...r,messageId:e.messageId??r.messageId},t,n);K.set(r.id,i)}for(let r of e.modals){let i=tr({...r,messageId:e.messageId??r.messageId},t,n);q.set(r.id,i)}}function rr(e){let t=K.get(e.id);return t?er(t,Date.now())?(K.delete(e.id),null):(e.consume!==!1&&K.delete(e.id),t):null}function ir(e){let t=q.get(e.id);return t?er(t,Date.now())?(q.delete(e.id),null):(e.consume!==!1&&q.delete(e.id),t):null}const ar=`attachment://`,or=new Map([[`row`,`actions`],[`action-row`,`actions`]]);function J(e){return`${e}${h.default.randomBytes(6).toString(`base64url`)}`}function Y(e,t){if(!e||typeof e!=`object`||Array.isArray(e))throw Error(`${t} must be an object`);return e}function X(e,t,n){if(typeof e!=`string`)throw Error(`${t} must be a string`);let r=e.trim();if(!n?.allowEmpty&&!r)throw Error(`${t} cannot be empty`);return n?.allowEmpty?e:r}function Z(e){return typeof e==`string`&&e.trim()||void 0}function sr(e,t){if(e!==void 0){if(!Array.isArray(e))throw Error(`${t} must be an array`);if(e.length!==0)return e.map((e,n)=>X(e,`${t}[${n}]`))}}function Q(e){if(!(typeof e!=`number`||!Number.isFinite(e)))return e}function cr(e,t){return e?.trim()||`field_${t+1}`}function lr(e,t){let n=e.trim();if(!n.startsWith(`attachment://`))throw Error(`${t} must start with "${ar}"`);let r=n.slice(13).trim();if(!r)throw Error(`${t} must include an attachment filename`);return`${ar}${r}`}function ur(e){let t=e.trim();if(!t.startsWith(`attachment://`))throw Error(`Attachment reference must start with "${ar}"`);let n=t.slice(13).trim();if(!n)throw Error(`Attachment reference must include a filename`);return n}function dr(e){switch((e??`primary`).toLowerCase()){case`secondary`:return g.ButtonStyle.Secondary;case`success`:return g.ButtonStyle.Success;case`danger`:return g.ButtonStyle.Danger;case`link`:return g.ButtonStyle.Link;default:return g.ButtonStyle.Primary}}function fr(e){return e===`paragraph`?g.TextInputStyle.Paragraph:g.TextInputStyle.Short}function pr(e){let t=e.trim().toLowerCase();return or.get(t)??t}function mr(e,t){if(e!==void 0){if(!Array.isArray(e))throw Error(`${t} must be an array`);return e.map((e,n)=>{let r=Y(e,`${t}[${n}]`);return{label:X(r.label,`${t}[${n}].label`),value:X(r.value,`${t}[${n}].value`),description:Z(r.description),emoji:typeof r.emoji==`object`&&r.emoji&&!Array.isArray(r.emoji)?{name:X(r.emoji.name,`${t}[${n}].emoji.name`),id:Z(r.emoji.id),animated:typeof r.emoji.animated==`boolean`?r.emoji.animated:void 0}:void 0,default:typeof r.default==`boolean`?r.default:void 0}})}}function hr(e,t){let n=Y(e,t),r=Z(n.style),i=Z(n.url);if((r===`link`||i)&&!i)throw Error(`${t}.url is required for link buttons`);return{label:X(n.label,`${t}.label`),style:r,url:i,emoji:typeof n.emoji==`object`&&n.emoji&&!Array.isArray(n.emoji)?{name:X(n.emoji.name,`${t}.emoji.name`),id:Z(n.emoji.id),animated:typeof n.emoji.animated==`boolean`?n.emoji.animated:void 0}:void 0,disabled:typeof n.disabled==`boolean`?n.disabled:void 0,allowedUsers:sr(n.allowedUsers,`${t}.allowedUsers`)}}function gr(e,t){let n=Y(e,t),r=Z(n.type),i=[`string`,`user`,`role`,`mentionable`,`channel`];if(r&&!i.includes(r))throw Error(`${t}.type must be one of ${i.join(`, `)}`);return{type:r,placeholder:Z(n.placeholder),minValues:Q(n.minValues),maxValues:Q(n.maxValues),options:mr(n.options,`${t}.options`)}}function _r(e,t,n){let r=Y(e,t),i=X(r.type,`${t}.type`).toLowerCase(),a=[`text`,`checkbox`,`radio`,`select`,`role-select`,`user-select`];if(!a.includes(i))throw Error(`${t}.type must be one of ${a.join(`, `)}`);let o=mr(r.options,`${t}.options`);if([`checkbox`,`radio`,`select`].includes(i)&&(!o||o.length===0))throw Error(`${t}.options is required for ${i} fields`);return{type:i,name:cr(Z(r.name),n),label:X(r.label,`${t}.label`),description:Z(r.description),placeholder:Z(r.placeholder),required:typeof r.required==`boolean`?r.required:void 0,options:o,minValues:Q(r.minValues),maxValues:Q(r.maxValues),minLength:Q(r.minLength),maxLength:Q(r.maxLength),style:Z(r.style)}}function vr(e,t){let n=Y(e,t);switch(pr(X(n.type,`${t}.type`).toLowerCase())){case`text`:return{type:`text`,text:X(n.text,`${t}.text`)};case`section`:{let e=Z(n.text),r=n.texts,i=Array.isArray(r)?r.map((e,n)=>X(e,`${t}.texts[${n}]`)):void 0;if(!e&&(!i||i.length===0))throw Error(`${t}.text or ${t}.texts is required for section blocks`);let a;if(n.accessory!==void 0){let e=Y(n.accessory,`${t}.accessory`),r=X(e.type,`${t}.accessory.type`).toLowerCase();if(r===`thumbnail`)a={type:`thumbnail`,url:X(e.url,`${t}.accessory.url`)};else if(r===`button`)a={type:`button`,button:hr(e.button,`${t}.accessory.button`)};else throw Error(`${t}.accessory.type must be "thumbnail" or "button"`)}return{type:`section`,text:e,texts:i,accessory:a}}case`separator`:{let e=n.spacing,r;if(e===`small`||e===`large`)r=e;else if(e===1||e===2)r=e;else if(e!==void 0)throw Error(`${t}.spacing must be "small", "large", 1, or 2`);let i=typeof n.divider==`boolean`?n.divider:void 0;return{type:`separator`,spacing:r,divider:i}}case`actions`:{let e=n.buttons,r=Array.isArray(e)?e.map((e,n)=>hr(e,`${t}.buttons[${n}]`)):void 0,i=n.select?gr(n.select,`${t}.select`):void 0;if((!r||r.length===0)&&!i)throw Error(`${t} requires buttons or select`);if(r&&i)throw Error(`${t} cannot include both buttons and select`);return{type:`actions`,buttons:r,select:i}}case`media-gallery`:{let e=n.items;if(!Array.isArray(e)||e.length===0)throw Error(`${t}.items must be a non-empty array`);return{type:`media-gallery`,items:e.map((e,n)=>{let r=Y(e,`${t}.items[${n}]`);return{url:X(r.url,`${t}.items[${n}].url`),description:Z(r.description),spoiler:typeof r.spoiler==`boolean`?r.spoiler:void 0}})}}case`file`:return{type:`file`,file:lr(X(n.file,`${t}.file`),`${t}.file`),spoiler:typeof n.spoiler==`boolean`?n.spoiler:void 0};default:throw Error(`${t}.type must be a supported component block`)}}function yr(e){if(e==null)return null;let t=Y(e,`components`),n=t.blocks,r=Array.isArray(n)?n.map((e,t)=>vr(e,`components.blocks[${t}]`)):void 0,i=t.modal,a=typeof t.reusable==`boolean`?t.reusable:void 0,o;if(i!==void 0){let e=Y(i,`components.modal`),t=e.fields;if(!Array.isArray(t)||t.length===0)throw Error(`components.modal.fields must be a non-empty array`);if(t.length>5)throw Error(`components.modal.fields supports up to 5 inputs`);let n=t.map((e,t)=>_r(e,`components.modal.fields[${t}]`,t));o={title:X(e.title,`components.modal.title`),triggerLabel:Z(e.triggerLabel),triggerStyle:Z(e.triggerStyle),fields:n}}return{text:Z(t.text),reusable:a,container:typeof t.container==`object`&&t.container&&!Array.isArray(t.container)?{accentColor:t.container.accentColor,spoiler:typeof t.container.spoiler==`boolean`?t.container.spoiler:void 0}:void 0,blocks:r,modal:o}}function br(e){let t=`occomp:cid=${e.componentId}`;return e.modalId?`${t};mid=${e.modalId}`:t}function xr(e){return`ocmodal:mid=${e}`}function Sr(e){let t=(0,_.parseCustomId)(e);if(t.key!==`occomp`)return null;let n=t.data.cid;if(typeof n!=`string`||!n.trim())return null;let r=t.data.mid;return{componentId:n,modalId:typeof r==`string`&&r.trim()?r:void 0}}function Cr(e){let t=(0,_.parseCustomId)(e);if(t.key!==`ocmodal`)return null;let n=t.data.mid;return typeof n!=`string`||!n.trim()?null:n}function wr(e){return/^__openclaw_discord_component_[a-z_]+_wildcard__$/.test(e)}function Tr(e){if(e===`*`||wr(e))return{key:`*`,data:{}};let t=(0,_.parseCustomId)(e);return t.key===`occomp`?{key:`*`,data:t.data}:t}function Er(e){if(e===`*`||wr(e))return{key:`*`,data:{}};let t=(0,_.parseCustomId)(e);return t.key===`ocmodal`?{key:`*`,data:t.data}:t}function Dr(e,t){return t&&t.length>0?t.map(e=>new _.TextDisplay(e)):e?[new _.TextDisplay(e)]:[]}function $(e){let t=dr(e.spec.style);if(t===g.ButtonStyle.Link||e.spec.url){if(!e.spec.url)throw Error(`Link buttons require a url`);let t=e.spec.url;class n extends _.LinkButton{constructor(...n){super(...n),this.label=e.spec.label,this.url=t}}return{component:new n}}let n=e.componentId??J(`btn_`),r=br({componentId:n,modalId:e.modalId});class i extends _.Button{constructor(...n){super(...n),this.label=e.spec.label,this.customId=r,this.style=t,this.emoji=e.spec.emoji,this.disabled=e.spec.disabled??!1}}return{component:new i,entry:{id:n,kind:e.modalId?`modal-trigger`:`button`,label:e.spec.label,modalId:e.modalId,allowedUsers:e.spec.allowedUsers}}}function Or(e){let t=(e.spec.type??`string`).toLowerCase(),n=e.componentId??J(`sel_`),r=br({componentId:n});if(t===`string`){let t=e.spec.options??[];if(t.length===0)throw Error(`String select menus require options`);class i extends _.StringSelectMenu{constructor(...n){super(...n),this.customId=r,this.options=t,this.minValues=e.spec.minValues,this.maxValues=e.spec.maxValues,this.placeholder=e.spec.placeholder,this.disabled=!1}}return{component:new i,entry:{id:n,kind:`select`,label:e.spec.placeholder??`select`,selectType:`string`,options:t.map(e=>({value:e.value,label:e.label}))}}}if(t===`user`){class t extends _.UserSelectMenu{constructor(...t){super(...t),this.customId=r,this.minValues=e.spec.minValues,this.maxValues=e.spec.maxValues,this.placeholder=e.spec.placeholder,this.disabled=!1}}return{component:new t,entry:{id:n,kind:`select`,label:e.spec.placeholder??`user select`,selectType:`user`}}}if(t===`role`){class t extends _.RoleSelectMenu{constructor(...t){super(...t),this.customId=r,this.minValues=e.spec.minValues,this.maxValues=e.spec.maxValues,this.placeholder=e.spec.placeholder,this.disabled=!1}}return{component:new t,entry:{id:n,kind:`select`,label:e.spec.placeholder??`role select`,selectType:`role`}}}if(t===`mentionable`){class t extends _.MentionableSelectMenu{constructor(...t){super(...t),this.customId=r,this.minValues=e.spec.minValues,this.maxValues=e.spec.maxValues,this.placeholder=e.spec.placeholder,this.disabled=!1}}return{component:new t,entry:{id:n,kind:`select`,label:e.spec.placeholder??`mentionable select`,selectType:`mentionable`}}}class i extends _.ChannelSelectMenu{constructor(...t){super(...t),this.customId=r,this.minValues=e.spec.minValues,this.maxValues=e.spec.maxValues,this.placeholder=e.spec.placeholder,this.disabled=!1}}return{component:new i,entry:{id:n,kind:`select`,label:e.spec.placeholder??`channel select`,selectType:`channel`}}}function kr(e){return e instanceof _.StringSelectMenu||e instanceof _.UserSelectMenu||e instanceof _.RoleSelectMenu||e instanceof _.MentionableSelectMenu||e instanceof _.ChannelSelectMenu}function Ar(e){if(e.type===`text`){class t extends _.TextInput{constructor(...t){super(...t),this.customId=e.id,this.style=fr(e.style),this.placeholder=e.placeholder,this.required=e.required,this.minLength=e.minLength,this.maxLength=e.maxLength}}return new t}if(e.type===`select`){let t=e.options??[];class n extends _.StringSelectMenu{constructor(...n){super(...n),this.customId=e.id,this.options=t,this.required=e.required,this.minValues=e.minValues,this.maxValues=e.maxValues,this.placeholder=e.placeholder}}return new n}if(e.type===`role-select`){class t extends _.RoleSelectMenu{constructor(...t){super(...t),this.customId=e.id,this.required=e.required,this.minValues=e.minValues,this.maxValues=e.maxValues,this.placeholder=e.placeholder}}return new t}if(e.type===`user-select`){class t extends _.UserSelectMenu{constructor(...t){super(...t),this.customId=e.id,this.required=e.required,this.minValues=e.minValues,this.maxValues=e.maxValues,this.placeholder=e.placeholder}}return new t}if(e.type===`checkbox`){let t=e.options??[];class n extends _.CheckboxGroup{constructor(...n){super(...n),this.customId=e.id,this.options=t,this.required=e.required,this.minValues=e.minValues,this.maxValues=e.maxValues}}return new n}let t=e.options??[];class n extends _.RadioGroup{constructor(...n){super(...n),this.customId=e.id,this.options=t,this.required=e.required,this.minValues=e.minValues,this.maxValues=e.maxValues}}return new n}function jr(e){let t=[],n=[],r=[],i=[],a=n=>{t.push({...n,sessionKey:e.sessionKey,agentId:e.agentId,accountId:e.accountId,reusable:n.reusable??e.spec.reusable})},o=e.spec.text??e.fallbackText;o&&i.push(new _.TextDisplay(o));for(let t of e.spec.blocks??[]){if(t.type===`text`){i.push(new _.TextDisplay(t.text));continue}if(t.type===`section`){let e=Dr(t.text,t.texts);if(e.length>3)throw Error(`Section blocks support up to 3 text displays`);let n;if(t.accessory?.type===`thumbnail`)n=new _.Thumbnail(t.accessory.url);else if(t.accessory?.type===`button`){let{component:e,entry:r}=$({spec:t.accessory.button});n=e,r&&a(r)}i.push(new _.Section(e,n));continue}if(t.type===`separator`){i.push(new _.Separator({spacing:t.spacing,divider:t.divider}));continue}if(t.type===`media-gallery`){i.push(new _.MediaGallery(t.items));continue}if(t.type===`file`){i.push(new _.File(t.file,t.spoiler));continue}if(t.type===`actions`){let e=[];if(t.buttons){if(t.buttons.length>5)throw Error(`Action rows support up to 5 buttons`);for(let n of t.buttons){let{component:t,entry:r}=$({spec:n});e.push(t),r&&a(r)}}else if(t.select){let{component:n,entry:r}=Or({spec:t.select});e.push(n),a(r)}i.push(new _.Row(e))}}if(e.spec.modal){let t=J(`mdl_`),r=e.spec.modal.fields.map((e,t)=>({id:J(`fld_`),name:cr(e.name,t),label:e.label,type:e.type,description:e.description,placeholder:e.placeholder,required:e.required,options:e.options,minValues:e.minValues,maxValues:e.maxValues,minLength:e.minLength,maxLength:e.maxLength,style:e.style}));n.push({id:t,title:e.spec.modal.title,fields:r,sessionKey:e.sessionKey,agentId:e.agentId,accountId:e.accountId,reusable:e.spec.reusable});let{component:o,entry:s}=$({spec:{label:e.spec.modal.triggerLabel??`Open form`,style:e.spec.modal.triggerStyle??`primary`},modalId:t});s&&a(s);let c=i.at(-1);if(c instanceof _.Row){let e=c,t=e.components.some(e=>kr(e));e.components.length<5&&!t?e.addComponent(o):i.push(new _.Row([o]))}else i.push(new _.Row([o]))}if(i.length===0)throw Error(`components must include at least one block, text, or modal trigger`);let s=new _.Container(i,e.spec.container);return r.push(s),{components:r,entries:t,modals:n}}function Mr(e){return e.some(e=>e.isV2)?g.MessageFlags.IsComponentsV2:void 0}var Nr=class extends _.Modal{constructor(e){super(),this.customIdParser=Er,this.title=e.title,this.customId=xr(e.modalId),this.components=e.fields.map(e=>{let t=Ar(e);class n extends _.Label{constructor(...n){super(...n),this.label=e.label,this.description=e.description,this.component=t,this.customId=e.id}}return new n(t)})}async run(){throw Error(`Modal handler is not registered for dynamic forms`)}};function Pr(e){return new Nr({modalId:e.id,title:e.title,fields:e.fields})}function Fr(e){if(e.kind===`button`)return`Clicked "${e.label}".`;let t=e.values??[];return t.length===0?`Updated "${e.label}".`:`Selected ${t.join(`, `)} from "${e.label}".`}const Ir=new Set([g.ChannelType.GuildForum,g.ChannelType.GuildMedia]);function Lr(e){let t=[];for(let n of e.blocks??[])n.type===`file`&&t.push(ur(n.file));return t}async function Rr(e,t,r={}){let i=r.cfg??n.Oa(),a=n.pr({cfg:i,accountId:r.accountId}),{token:s,rest:c,request:u}=A(r,i),{channelId:d}=await B(c,await L(e,r.accountId,i),u),f=await Nt(c,d);if(f&&Ir.has(f))throw Error(`Discord components are not supported in forum-style channels`);let p=jr({spec:t,sessionKey:r.sessionKey,agentId:r.agentId,accountId:a.accountId}),m=Mr(p.components),h=r.silent?(m??0)|V:m??void 0,v=r.replyTo?{message_id:r.replyTo,fail_if_not_exists:!1}:void 0,y=Lr(t),b=[...new Set(y)];if(b.length>1)throw Error(`Discord component attachments currently support a single file. Use media-gallery for multiple files.`);let x=b[0],S;if(r.mediaUrl){let e=await o.a(r.mediaUrl,{localRoots:r.mediaLocalRoots}),t=r.filename?.trim()||e.fileName||`upload`;if(x&&x!==t)throw Error(`Component file block expects attachment "${x}", but the uploaded file is "${t}". Update components.blocks[].file or provide a matching filename.`);S=[{data:Bt(e.buffer),name:t}]}else if(x)throw Error(`Discord component file blocks require a media attachment (media/path/filePath).`);let C=H({...(0,_.serializePayload)({components:p.components,...h?{flags:h}:{},...S?{files:S}:{}}),...v?{message_reference:v}:{}}),w;try{w=await u(()=>c.post(g.Routes.channelMessages(d),{body:C}),`components`)}catch(e){throw await z(e,{channelId:d,rest:c,token:s,hasMedia:!!S?.length})}return nr({entries:p.entries,modals:p.modals,messageId:w.id}),l.n({channel:`discord`,accountId:a.accountId,direction:`outbound`}),{messageId:w.id??`unknown`,channelId:w.channel_id??d}}async function zr(e,t,r,i={}){let{rest:a,request:o}=A(i,i.cfg??n.Oa()),s=kt(r);return await o(()=>a.put(g.Routes.channelMessageOwnReaction(e,t,s)),`react`),{ok:!0}}async function Br(e,t,r,i={}){let{rest:a}=A(i,i.cfg??n.Oa()),o=kt(r);return await a.delete(g.Routes.channelMessageOwnReaction(e,t,o)),{ok:!0}}async function Vr(e,t,r={}){let{rest:i}=A(r,r.cfg??n.Oa()),a=await i.get(g.Routes.channelMessage(e,t)),o=new Set;for(let e of a.reactions??[]){let t=Ht(e.emoji);t&&o.add(t)}if(o.size===0)return{ok:!0,removed:[]};let s=[];return await Promise.allSettled(Array.from(o,n=>(s.push(n),i.delete(g.Routes.channelMessageOwnReaction(e,t,kt(n)))))),{ok:!0,removed:s}}async function Hr(e,t,r={}){let{rest:i}=A(r,r.cfg??n.Oa()),a=(await i.get(g.Routes.channelMessage(e,t))).reactions??[];if(a.length===0)return[];let o=typeof r.limit==`number`&&Number.isFinite(r.limit)?Math.min(Math.max(Math.floor(r.limit),1),100):100,s=[];for(let n of a){let r=Ht(n.emoji);if(!r)continue;let a=encodeURIComponent(r),c=await i.get(g.Routes.channelMessageReaction(e,t,a),{limit:o});s.push({emoji:{id:n.emoji.id??null,name:n.emoji.name??null,raw:Ut(n.emoji)},count:n.count,users:c.map(e=>({id:e.id,username:e.username,tag:e.username&&e.discriminator?`${e.username}#${e.discriminator}`:e.username}))})}return s}Object.defineProperty(exports,`$`,{enumerable:!0,get:function(){return H}}),Object.defineProperty(exports,`A`,{enumerable:!0,get:function(){return _n}}),Object.defineProperty(exports,`At`,{enumerable:!0,get:function(){return ae}}),Object.defineProperty(exports,`B`,{enumerable:!0,get:function(){return sn}}),Object.defineProperty(exports,`C`,{enumerable:!0,get:function(){return mn}}),Object.defineProperty(exports,`Ct`,{enumerable:!0,get:function(){return he}}),Object.defineProperty(exports,`D`,{enumerable:!0,get:function(){return gn}}),Object.defineProperty(exports,`Dt`,{enumerable:!0,get:function(){return ce}}),Object.defineProperty(exports,`E`,{enumerable:!0,get:function(){return bn}}),Object.defineProperty(exports,`Et`,{enumerable:!0,get:function(){return E}}),Object.defineProperty(exports,`F`,{enumerable:!0,get:function(){return $t}}),Object.defineProperty(exports,`Ft`,{enumerable:!0,get:function(){return S}}),Object.defineProperty(exports,`G`,{enumerable:!0,get:function(){return Qt}}),Object.defineProperty(exports,`H`,{enumerable:!0,get:function(){return ln}}),Object.defineProperty(exports,`I`,{enumerable:!0,get:function(){return en}}),Object.defineProperty(exports,`It`,{enumerable:!0,get:function(){return x}}),Object.defineProperty(exports,`J`,{enumerable:!0,get:function(){return Gt}}),Object.defineProperty(exports,`K`,{enumerable:!0,get:function(){return Wt}}),Object.defineProperty(exports,`L`,{enumerable:!0,get:function(){return on}}),Object.defineProperty(exports,`Lt`,{enumerable:!0,get:function(){return w}}),Object.defineProperty(exports,`M`,{enumerable:!0,get:function(){return dn}}),Object.defineProperty(exports,`Mt`,{enumerable:!0,get:function(){return ie}}),Object.defineProperty(exports,`N`,{enumerable:!0,get:function(){return cn}}),Object.defineProperty(exports,`Nt`,{enumerable:!0,get:function(){return se}}),Object.defineProperty(exports,`O`,{enumerable:!0,get:function(){return fn}}),Object.defineProperty(exports,`Ot`,{enumerable:!0,get:function(){return le}}),Object.defineProperty(exports,`P`,{enumerable:!0,get:function(){return rn}}),Object.defineProperty(exports,`Pt`,{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,`Q`,{enumerable:!0,get:function(){return U}}),Object.defineProperty(exports,`R`,{enumerable:!0,get:function(){return un}}),Object.defineProperty(exports,`Rt`,{enumerable:!0,get:function(){return ee}}),Object.defineProperty(exports,`S`,{enumerable:!0,get:function(){return hn}}),Object.defineProperty(exports,`St`,{enumerable:!0,get:function(){return _e}}),Object.defineProperty(exports,`T`,{enumerable:!0,get:function(){return vn}}),Object.defineProperty(exports,`Tt`,{enumerable:!0,get:function(){return T}}),Object.defineProperty(exports,`U`,{enumerable:!0,get:function(){return Xt}}),Object.defineProperty(exports,`V`,{enumerable:!0,get:function(){return nn}}),Object.defineProperty(exports,`W`,{enumerable:!0,get:function(){return Zt}}),Object.defineProperty(exports,`X`,{enumerable:!0,get:function(){return Yt}}),Object.defineProperty(exports,`Y`,{enumerable:!0,get:function(){return qt}}),Object.defineProperty(exports,`Z`,{enumerable:!0,get:function(){return Jt}}),Object.defineProperty(exports,`_`,{enumerable:!0,get:function(){return Xn}}),Object.defineProperty(exports,`_t`,{enumerable:!0,get:function(){return Ee}}),Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return Rr}}),Object.defineProperty(exports,`at`,{enumerable:!0,get:function(){return ct}}),Object.defineProperty(exports,`b`,{enumerable:!0,get:function(){return Dn}}),Object.defineProperty(exports,`bt`,{enumerable:!0,get:function(){return Re}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return Sr}}),Object.defineProperty(exports,`ct`,{enumerable:!0,get:function(){return qe}}),Object.defineProperty(exports,`d`,{enumerable:!0,get:function(){return Er}}),Object.defineProperty(exports,`dt`,{enumerable:!0,get:function(){return O}}),Object.defineProperty(exports,`et`,{enumerable:!0,get:function(){return I}}),Object.defineProperty(exports,`f`,{enumerable:!0,get:function(){return yr}}),Object.defineProperty(exports,`ft`,{enumerable:!0,get:function(){return xe}}),Object.defineProperty(exports,`g`,{enumerable:!0,get:function(){return Zn}}),Object.defineProperty(exports,`gt`,{enumerable:!0,get:function(){return De}}),Object.defineProperty(exports,`h`,{enumerable:!0,get:function(){return qn}}),Object.defineProperty(exports,`ht`,{enumerable:!0,get:function(){return Te}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return Br}}),Object.defineProperty(exports,`it`,{enumerable:!0,get:function(){return lt}}),Object.defineProperty(exports,`j`,{enumerable:!0,get:function(){return tn}}),Object.defineProperty(exports,`jt`,{enumerable:!0,get:function(){return ne}}),Object.defineProperty(exports,`k`,{enumerable:!0,get:function(){return xn}}),Object.defineProperty(exports,`kt`,{enumerable:!0,get:function(){return re}}),Object.defineProperty(exports,`l`,{enumerable:!0,get:function(){return Tr}}),Object.defineProperty(exports,`lt`,{enumerable:!0,get:function(){return Ie}}),Object.defineProperty(exports,`m`,{enumerable:!0,get:function(){return ir}}),Object.defineProperty(exports,`mt`,{enumerable:!0,get:function(){return Oe}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return zr}}),Object.defineProperty(exports,`nt`,{enumerable:!0,get:function(){return St}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return Pr}}),Object.defineProperty(exports,`ot`,{enumerable:!0,get:function(){return A}}),Object.defineProperty(exports,`p`,{enumerable:!0,get:function(){return rr}}),Object.defineProperty(exports,`pt`,{enumerable:!0,get:function(){return Ne}}),Object.defineProperty(exports,`q`,{enumerable:!0,get:function(){return Kt}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return Vr}}),Object.defineProperty(exports,`rt`,{enumerable:!0,get:function(){return Ct}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return Fr}}),Object.defineProperty(exports,`st`,{enumerable:!0,get:function(){return k}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return Hr}}),Object.defineProperty(exports,`tt`,{enumerable:!0,get:function(){return wt}}),Object.defineProperty(exports,`u`,{enumerable:!0,get:function(){return Cr}}),Object.defineProperty(exports,`ut`,{enumerable:!0,get:function(){return D}}),Object.defineProperty(exports,`v`,{enumerable:!0,get:function(){return $n}}),Object.defineProperty(exports,`vt`,{enumerable:!0,get:function(){return Pe}}),Object.defineProperty(exports,`w`,{enumerable:!0,get:function(){return pn}}),Object.defineProperty(exports,`wt`,{enumerable:!0,get:function(){return ve}}),Object.defineProperty(exports,`x`,{enumerable:!0,get:function(){return yn}}),Object.defineProperty(exports,`xt`,{enumerable:!0,get:function(){return ge}}),Object.defineProperty(exports,`y`,{enumerable:!0,get:function(){return Yn}}),Object.defineProperty(exports,`yt`,{enumerable:!0,get:function(){return Le}}),Object.defineProperty(exports,`z`,{enumerable:!0,get:function(){return an}});
@@ -3,4 +3,4 @@ import{g as e}from"./paths-cBAF6Bj0.js";import{Y as t,ci as n,ho as r}from"./ses
3
3
  `);for(;n!==-1;){let e=c.slice(0,n);if(c=c.slice(n+1),e.endsWith(`\r`)&&(e=e.slice(0,-1)),e===``){u(),n=c.indexOf(`
4
4
  `);continue}if(e.startsWith(`:`)){n=c.indexOf(`
5
5
  `);continue}let[t,...r]=e.split(`:`),i=t.trim(),a=r.join(`:`),o=a.startsWith(` `)?a.slice(1):a;i===`event`?l.event=o:i===`data`?l.data=l.data?`${l.data}\n${o}`:o:i===`id`&&(l.id=o),n=c.indexOf(`
6
- `)}}u()}function O(e,n){let i=!!e.baseUrl?.trim(),a=!!e.account?.trim(),o=n||(!i||!a?r({cfg:t(),accountId:e.accountId}):void 0),s=e.baseUrl?.trim()||o?.baseUrl;if(!s)throw Error(`Signal base URL is required`);return{baseUrl:s,account:e.account?.trim()||o?.config.account?.trim()}}function k(e){let t=e.trim();if(!t)throw Error(`Signal recipient is required`);t.toLowerCase().startsWith(`signal:`)&&(t=t.slice(7).trim());let n=t.toLowerCase();return n.startsWith(`group:`)?{type:`group`,groupId:t.slice(6).trim()}:n.startsWith(`username:`)?{type:`username`,username:t.slice(9).trim()}:n.startsWith(`u:`)?{type:`username`,username:t.trim()}:{type:`recipient`,recipient:t}}function A(e,t){return e.type===`recipient`?t.recipient?{recipient:[e.recipient]}:null:e.type===`group`?t.group?{groupId:e.groupId}:null:e.type===`username`&&t.username?{username:[e.username]}:null}async function j(n,i,a={}){let o=a.cfg??t(),c=r({cfg:o,accountId:a.accountId}),{baseUrl:u,account:d}=O(a,c),f=k(n),p=i??``,m=!1,h=[],_=a.textMode??`markdown`,v=typeof a.maxBytes==`number`?a.maxBytes:typeof c.config.mediaMaxMb==`number`?c.config.mediaMaxMb*1024*1024:typeof o.agents?.defaults?.mediaMaxMb==`number`?o.agents.defaults.mediaMaxMb*1024*1024:8*1024*1024,y;if(a.mediaUrl?.trim()){let t=await l(a.mediaUrl.trim(),v,{localRoots:a.mediaLocalRoots});y=[t.path];let n=e(t.contentType??void 0);!p&&n&&(p=n===`image`?`<media:image>`:`<media:${n}>`,m=!0)}if(p.trim()&&!m)if(_===`plain`)h=a.textStyles??[];else{let e=s({cfg:o,channel:`signal`,accountId:c.accountId}),t=g(p,{tableMode:e});p=t.text,h=t.styles}if(!p.trim()&&(!y||y.length===0))throw Error(`Signal send requires text or media`);let b={message:p};h.length>0&&(b[`text-style`]=h.map(e=>`${e.start}:${e.length}:${e.style}`)),d&&(b.account=d),y&&y.length>0&&(b.attachments=y);let x=A(f,{recipient:!0,group:!0,username:!0});if(!x)throw Error(`Signal recipient is required`);Object.assign(b,x);let S=(await T(`send`,b,{baseUrl:u,timeoutMs:a.timeoutMs}))?.timestamp;return{messageId:S?String(S):`unknown`,timestamp:S}}async function M(e,t={}){let{baseUrl:n,account:r}=O(t),i=A(k(e),{recipient:!0,group:!0});if(!i)return!1;let a={...i};return r&&(a.account=r),t.stop&&(a.stop=!0),await T(`sendTyping`,a,{baseUrl:n,timeoutMs:t.timeoutMs}),!0}async function N(e,t,n={}){if(!Number.isFinite(t)||t<=0)return!1;let{baseUrl:r,account:i}=O(n),a=A(k(e),{recipient:!0});if(!a)return!1;let o={...a,targetTimestamp:t,type:n.type??`read`};return i&&(o.account=i),await T(`sendReceipt`,o,{baseUrl:r,timeoutMs:n.timeoutMs}),!0}export{E as a,b as c,O as i,N as n,T as o,M as r,D as s,j as t};
6
+ `)}}u()}function O(e,n){let i=!!e.baseUrl?.trim(),a=!!e.account?.trim(),o=n||(!i||!a?r({cfg:t(),accountId:e.accountId}):void 0),s=e.baseUrl?.trim()||o?.baseUrl;if(!s)throw Error(`Signal base URL is required`);return{baseUrl:s,account:e.account?.trim()||o?.config.account?.trim()}}function k(e){let t=e.trim();if(!t)throw Error(`Signal recipient is required`);t.toLowerCase().startsWith(`signal:`)&&(t=t.slice(7).trim());let n=t.toLowerCase();return n.startsWith(`group:`)?{type:`group`,groupId:t.slice(6).trim()}:n.startsWith(`username:`)?{type:`username`,username:t.slice(9).trim()}:n.startsWith(`u:`)?{type:`username`,username:t.trim()}:{type:`recipient`,recipient:t}}function A(e,t){return e.type===`recipient`?t.recipient?{recipient:[e.recipient]}:null:e.type===`group`?t.group?{groupId:e.groupId}:null:e.type===`username`&&t.username?{username:[e.username]}:null}async function j(n,i,a={}){let o=a.cfg??t(),c=r({cfg:o,accountId:a.accountId}),{baseUrl:u,account:d}=O(a,c),f=k(n),p=i??``,m=!1,h=[],_=a.textMode??`markdown`,v=typeof a.maxBytes==`number`?a.maxBytes:typeof c.config.mediaMaxMb==`number`?c.config.mediaMaxMb*1024*1024:typeof o.agents?.defaults?.mediaMaxMb==`number`?o.agents.defaults.mediaMaxMb*1024*1024:8*1024*1024,y;if(a.mediaUrl?.trim()){let t=await l(a.mediaUrl.trim(),v,{localRoots:a.mediaLocalRoots});y=[t.path];let n=e(t.contentType??void 0);!p&&n&&(p=n===`image`?`<media:image>`:`<media:${n}>`,m=!0)}if(p.trim()&&!m)if(_===`plain`)h=a.textStyles??[];else{let e=s({cfg:o,channel:`signal`,accountId:c.accountId}),t=g(p,{tableMode:e});p=t.text,h=t.styles}if(!p.trim()&&(!y||y.length===0))throw Error(`Signal send requires text or media`);let b={message:p};h.length>0&&(b[`text-style`]=h.map(e=>`${e.start}:${e.length}:${e.style}`)),d&&(b.account=d),y&&y.length>0&&(b.attachments=y);let x=A(f,{recipient:!0,group:!0,username:!0});if(!x)throw Error(`Signal recipient is required`);Object.assign(b,x);let S=(await T(`send`,b,{baseUrl:u,timeoutMs:a.timeoutMs}))?.timestamp;return{messageId:S?String(S):`unknown`,timestamp:S}}async function M(e,t={}){let{baseUrl:n,account:r}=O(t),i=A(k(e),{recipient:!0,group:!0});if(!i)return!1;let a={...i};return r&&(a.account=r),t.stop&&(a.stop=!0),await T(`sendTyping`,a,{baseUrl:n,timeoutMs:t.timeoutMs}),!0}async function N(e,t,n={}){if(!Number.isFinite(t)||t<=0)return!1;let{baseUrl:r,account:i}=O(n),a=A(k(e),{recipient:!0});if(!a)return!1;let o={...a,targetTimestamp:t,type:n.type??`read`};return i&&(o.account=i),await T(`sendReceipt`,o,{baseUrl:r,timeoutMs:n.timeoutMs}),!0}export{E as a,b as c,O as i,N as n,T as o,M as r,D as s,j as t};
@@ -1,3 +1,3 @@
1
1
  require(`./paths-BvlJvmRS.cjs`);const e=require(`./logger-BlddiV_d.cjs`),t=require(`./model-auth-CKlA2xRB.cjs`),n=require(`./targets-DcGNB9nk.cjs`),r=require(`./tokens-DtrljGtQ.cjs`),i=require(`./fetch-guard-DqTxZ3G8.cjs`),a=require(`./ir-B7agH4cQ.cjs`),o=require(`./render-DxBO2Blp.cjs`);let s=require(`@slack/web-api`);function c(e,t={}){let r=e.trim();return r?n.r({raw:r,mentionPattern:/^<@([A-Z0-9]+)>$/i,prefixes:[{prefix:`user:`,kind:`user`},{prefix:`channel:`,kind:`channel`},{prefix:`slack:`,kind:`user`}],atUserPattern:/^[A-Z0-9]+$/i,atUserErrorMessage:`Slack DMs require a user id (use user:<id> or <@id>)`})||(r.startsWith(`#`)?n.t(`channel`,n.n({candidate:r.slice(1).trim(),pattern:/^[A-Z0-9]+$/i,errorMessage:`Slack channels require a channel id (use channel:<id>)`}),r):t.defaultKind?n.t(t.defaultKind,r,r):n.t(`channel`,r,r)):void 0}function l(e){return n.i({platform:`Slack`,target:c(e,{defaultKind:`channel`}),kind:`channel`})}const u={retries:2,factor:2,minTimeout:500,maxTimeout:3e3,randomize:!0};function d(e={}){return{...e,retryConfig:e.retryConfig??u}}function f(e,t={}){return new s.WebClient(e,d(t))}function p(e){if(typeof e!=`string`)return;let t=e.replace(/\s+/g,` `).trim();return t.length>0?t:void 0}function m(e){return p(e.text?.text)}function h(e){return p(e.text?.text)}function g(e){return p(e.alt_text)??p(e.title?.text)}function _(e){return p(e.title?.text)??p(e.alt_text)}function v(e){if(!Array.isArray(e.elements))return;let t=e.elements.map(e=>p(e.text)).filter(e=>!!e);return t.length>0?t.join(` `):void 0}function y(e){for(let t of e){let e=t;switch(e.type){case`header`:{let t=h(e);if(t)return t;break}case`section`:{let t=m(e);if(t)return t;break}case`image`:return g(e)||`Shared an image`;case`video`:return _(e)||`Shared a video`;case`file`:return`Shared a file`;case`context`:{let t=v(e);if(t)return t;break}default:break}}return`Shared a Block Kit message`}function b(e){try{return JSON.parse(e)}catch{throw Error(`blocks must be valid JSON`)}}function x(e){if(!Array.isArray(e))throw Error(`blocks must be an array`);if(e.length===0)throw Error(`blocks must contain at least one block`);if(e.length>50)throw Error(`blocks cannot exceed 50 items`);for(let t of e){if(!t||typeof t!=`object`||Array.isArray(t))throw Error(`each block must be an object`);let e=t.type;if(typeof e!=`string`||e.trim().length===0)throw Error(`each block must include a non-empty string type`)}}function S(e){return x(e),e}function C(e){if(e!=null)return S(typeof e==`string`?b(e):e)}function w(e){return e.replace(/&/g,`&amp;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`)}const T=/<[^>\n]+>/g;function E(e){if(!e.startsWith(`<`)||!e.endsWith(`>`))return!1;let t=e.slice(1,-1);return t.startsWith(`@`)||t.startsWith(`#`)||t.startsWith(`!`)||t.startsWith(`mailto:`)||t.startsWith(`tel:`)||t.startsWith(`http://`)||t.startsWith(`https://`)||t.startsWith(`slack://`)}function D(e){if(!e)return``;if(!e.includes(`&`)&&!e.includes(`<`)&&!e.includes(`>`))return e;T.lastIndex=0;let t=[],n=0;for(let r=T.exec(e);r;r=T.exec(e)){let i=r.index??0;t.push(w(e.slice(n,i)));let a=r[0]??``;t.push(E(a)?a:w(a)),n=i+a.length}return t.push(w(e.slice(n))),t.join(``)}function O(e){return e?!e.includes(`&`)&&!e.includes(`<`)&&!e.includes(`>`)?e:e.split(`
2
2
  `).map(e=>e.startsWith(`> `)?`> ${D(e.slice(2))}`:D(e)).join(`
3
- `):``}function k(e,t){let n=e.href.trim();if(!n)return null;let r=t.slice(e.start,e.end).trim(),i=n.startsWith(`mailto:`)?n.slice(7):n;if(!(r.length>0&&r!==n&&r!==i))return null;let a=w(n);return{start:e.start,end:e.end,open:`<${a}|`,close:`>`}}function A(){return{styleMarkers:{bold:{open:`*`,close:`*`},italic:{open:`_`,close:`_`},strikethrough:{open:`~`,close:`~`},code:{open:"`",close:"`"},code_block:{open:"```\n",close:"```"}},escapeText:O,buildLink:k}}function j(e,t={}){return o.t(a.n(e??``,{linkify:!1,autolink:!1,headingStyle:`bold`,blockquotePrefix:`> `,tableMode:t.tableMode}),A())}function M(e){return j(e??``)}function N(e,t,n={}){let r=a.t(a.n(e??``,{linkify:!1,autolink:!1,headingStyle:`bold`,blockquotePrefix:`> `,tableMode:n.tableMode}),t),i=A();return r.map(e=>o.t(e,i))}const P={allowedHostnames:[`*.slack.com`,`*.slack-edge.com`,`*.slack-files.com`],allowRfc2544BenchmarkRange:!0};function F(e){return!!(e?.username||e?.iconUrl||e?.iconEmoji)}function I(e){if(!(e instanceof Error))return!1;let t=e;return t.data?.error?.toLowerCase()===`missing_scope`?(t.data?.needed?.toLowerCase())?.includes(`chat:write.customize`)?!0:[...t.data?.response_metadata?.scopes??[],...t.data?.response_metadata?.acceptedScopes??[]].map(e=>e.toLowerCase()).includes(`chat:write.customize`):!1}async function L(t){let n={channel:t.channelId,text:t.text,thread_ts:t.threadTs,...t.blocks?.length?{blocks:t.blocks}:{}};try{return t.identity?.iconUrl?await t.client.chat.postMessage({...n,...t.identity.username?{username:t.identity.username}:{},icon_url:t.identity.iconUrl}):t.identity?.iconEmoji?await t.client.chat.postMessage({...n,...t.identity.username?{username:t.identity.username}:{},icon_emoji:t.identity.iconEmoji}):await t.client.chat.postMessage({...n,...t.identity?.username?{username:t.identity.username}:{}})}catch(r){if(!F(t.identity)||!I(r))throw r;return e.R(`slack send: missing chat:write.customize, retrying without custom identity`),t.client.chat.postMessage(n)}}function R(n){let r=t.cs(n.explicit);if(r)return r;let i=t.cs(n.fallbackToken);if(!i)throw e.R(`slack send: missing bot token for account=${n.accountId} explicit=${!!n.explicit} source=${n.fallbackSource??`unknown`}`),Error(`Slack bot token missing for account "${n.accountId}" (set channels.slack.accounts.${n.accountId}.botToken or SLACK_BOT_TOKEN for default).`);return i}function z(e){let t=c(e);if(!t)throw Error(`Recipient is required for Slack sends`);return{kind:t.kind,id:t.id}}async function B(e,t){if(!(t.kind===`user`||/^U[A-Z0-9]+$/i.test(t.id)))return{channelId:t.id};let n=(await e.conversations.open({users:t.id})).channel?.id;if(!n)throw Error(`Failed to open Slack DM channel`);return{channelId:n,isDm:!0}}async function V(e){let{buffer:t,contentType:n,fileName:r}=await a._(e.mediaUrl,{maxBytes:e.maxBytes,localRoots:e.mediaLocalRoots}),o=await e.client.files.getUploadURLExternal({filename:r??`upload`,length:t.length});if(!o.ok||!o.upload_url||!o.file_id)throw Error(`Failed to get upload URL: ${o.error??`unknown error`}`);let s=new Uint8Array(t),{response:c,release:l}=await i.t(i.r({url:o.upload_url,init:{method:`POST`,...n?{headers:{"Content-Type":n}}:{},body:s},policy:P,auditContext:`slack-upload-file`}));try{if(!c.ok)throw Error(`Failed to upload file: HTTP ${c.status}`)}finally{await l()}let u=await e.client.files.completeUploadExternal({files:[{id:o.file_id,title:r??`upload`}],channel_id:e.channelId,...e.caption?{initial_comment:e.caption}:{},...e.threadTs?{thread_ts:e.threadTs}:{}});if(!u.ok)throw Error(`Failed to complete upload: ${u.error??`unknown error`}`);return o.file_id}async function H(n,i,o={}){let s=i?.trim()??``;if(r.i(s)&&!o.mediaUrl&&!o.blocks)return e.R(`slack send: suppressed NO_REPLY token before API call`),{messageId:`suppressed`,channelId:``};let c=o.blocks==null?void 0:S(o.blocks);if(!s&&!o.mediaUrl&&!c)throw Error(`Slack send requires text, blocks, or media`);let l=o.cfg??t.Si(),u=t.as({cfg:l,accountId:o.accountId}),d=R({explicit:o.token,accountId:u.accountId,fallbackToken:u.botToken,fallbackSource:u.botTokenSource}),p=o.client??f(d),{channelId:m}=await B(p,z(n));if(c){if(o.mediaUrl)throw Error(`Slack send does not support blocks with mediaUrl`);return{messageId:(await L({client:p,channelId:m,text:s||y(c),threadTs:o.threadTs,identity:o.identity,blocks:c})).ts??`unknown`,channelId:m}}let h=a.f(l,`slack`,u.accountId),g=Math.min(h,4e3),_=a.i({cfg:l,channel:`slack`,accountId:u.accountId}),v=a.d(l,`slack`,u.accountId),b=(v===`newline`?a.c(s,g,v):[s]).flatMap(e=>N(e,g,{tableMode:_}));!b.length&&s&&b.push(s);let x=typeof u.config.mediaMaxMb==`number`?u.config.mediaMaxMb*1024*1024:void 0,C=``;if(o.mediaUrl){let[e,...t]=b;C=await V({client:p,channelId:m,mediaUrl:o.mediaUrl,mediaLocalRoots:o.mediaLocalRoots,caption:e,threadTs:o.threadTs,maxBytes:x});for(let e of t)C=(await L({client:p,channelId:m,text:e,threadTs:o.threadTs,identity:o.identity})).ts??C}else for(let e of b.length?b:[``])C=(await L({client:p,channelId:m,text:e,threadTs:o.threadTs,identity:o.identity})).ts??C;return{messageId:C||`unknown`,channelId:m}}Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return S}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return d}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return C}}),Object.defineProperty(exports,`l`,{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return N}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return M}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return f}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return H}}),Object.defineProperty(exports,`u`,{enumerable:!0,get:function(){return l}});
3
+ `):``}function k(e,t){let n=e.href.trim();if(!n)return null;let r=t.slice(e.start,e.end).trim(),i=n.startsWith(`mailto:`)?n.slice(7):n;if(!(r.length>0&&r!==n&&r!==i))return null;let a=w(n);return{start:e.start,end:e.end,open:`<${a}|`,close:`>`}}function A(){return{styleMarkers:{bold:{open:`*`,close:`*`},italic:{open:`_`,close:`_`},strikethrough:{open:`~`,close:`~`},code:{open:"`",close:"`"},code_block:{open:"```\n",close:"```"}},escapeText:O,buildLink:k}}function j(e,t={}){return o.t(a.n(e??``,{linkify:!1,autolink:!1,headingStyle:`bold`,blockquotePrefix:`> `,tableMode:t.tableMode}),A())}function M(e){return j(e??``)}function N(e,t,n={}){let r=a.t(a.n(e??``,{linkify:!1,autolink:!1,headingStyle:`bold`,blockquotePrefix:`> `,tableMode:n.tableMode}),t),i=A();return r.map(e=>o.t(e,i))}const P={allowedHostnames:[`*.slack.com`,`*.slack-edge.com`,`*.slack-files.com`],allowRfc2544BenchmarkRange:!0};function F(e){return!!(e?.username||e?.iconUrl||e?.iconEmoji)}function I(e){if(!(e instanceof Error))return!1;let t=e;return t.data?.error?.toLowerCase()===`missing_scope`?(t.data?.needed?.toLowerCase())?.includes(`chat:write.customize`)?!0:[...t.data?.response_metadata?.scopes??[],...t.data?.response_metadata?.acceptedScopes??[]].map(e=>e.toLowerCase()).includes(`chat:write.customize`):!1}async function L(t){let n={channel:t.channelId,text:t.text,thread_ts:t.threadTs,...t.blocks?.length?{blocks:t.blocks}:{}};try{return t.identity?.iconUrl?await t.client.chat.postMessage({...n,...t.identity.username?{username:t.identity.username}:{},icon_url:t.identity.iconUrl}):t.identity?.iconEmoji?await t.client.chat.postMessage({...n,...t.identity.username?{username:t.identity.username}:{},icon_emoji:t.identity.iconEmoji}):await t.client.chat.postMessage({...n,...t.identity?.username?{username:t.identity.username}:{}})}catch(r){if(!F(t.identity)||!I(r))throw r;return e.R(`slack send: missing chat:write.customize, retrying without custom identity`),t.client.chat.postMessage(n)}}function R(n){let r=t.cs(n.explicit);if(r)return r;let i=t.cs(n.fallbackToken);if(!i)throw e.R(`slack send: missing bot token for account=${n.accountId} explicit=${!!n.explicit} source=${n.fallbackSource??`unknown`}`),Error(`Slack bot token missing for account "${n.accountId}" (set channels.slack.accounts.${n.accountId}.botToken or SLACK_BOT_TOKEN for default).`);return i}function z(e){let t=c(e);if(!t)throw Error(`Recipient is required for Slack sends`);return{kind:t.kind,id:t.id}}async function B(e,t){if(!(t.kind===`user`||/^U[A-Z0-9]+$/i.test(t.id)))return{channelId:t.id};let n=(await e.conversations.open({users:t.id})).channel?.id;if(!n)throw Error(`Failed to open Slack DM channel`);return{channelId:n,isDm:!0}}async function V(e){let{buffer:t,contentType:n,fileName:r}=await a._(e.mediaUrl,{maxBytes:e.maxBytes,localRoots:e.mediaLocalRoots}),o=await e.client.files.getUploadURLExternal({filename:r??`upload`,length:t.length});if(!o.ok||!o.upload_url||!o.file_id)throw Error(`Failed to get upload URL: ${o.error??`unknown error`}`);let s=new Uint8Array(t),{response:c,release:l}=await i.t(i.r({url:o.upload_url,init:{method:`POST`,...n?{headers:{"Content-Type":n}}:{},body:s},policy:P,auditContext:`slack-upload-file`}));try{if(!c.ok)throw Error(`Failed to upload file: HTTP ${c.status}`)}finally{await l()}let u=await e.client.files.completeUploadExternal({files:[{id:o.file_id,title:r??`upload`}],channel_id:e.channelId,...e.caption?{initial_comment:e.caption}:{},...e.threadTs?{thread_ts:e.threadTs}:{}});if(!u.ok)throw Error(`Failed to complete upload: ${u.error??`unknown error`}`);return o.file_id}async function H(n,i,o={}){let s=i?.trim()??``;if(r.i(s)&&!o.mediaUrl&&!o.blocks)return e.R(`slack send: suppressed NO_REPLY token before API call`),{messageId:`suppressed`,channelId:``};let c=o.blocks==null?void 0:S(o.blocks);if(!s&&!o.mediaUrl&&!c)throw Error(`Slack send requires text, blocks, or media`);let l=o.cfg??t.Si(),u=t.as({cfg:l,accountId:o.accountId}),d=R({explicit:o.token,accountId:u.accountId,fallbackToken:u.botToken,fallbackSource:u.botTokenSource}),p=o.client??f(d),{channelId:m}=await B(p,z(n));if(c){if(o.mediaUrl)throw Error(`Slack send does not support blocks with mediaUrl`);return{messageId:(await L({client:p,channelId:m,text:s||y(c),threadTs:o.threadTs,identity:o.identity,blocks:c})).ts??`unknown`,channelId:m}}let h=a.f(l,`slack`,u.accountId),g=Math.min(h,4e3),_=a.i({cfg:l,channel:`slack`,accountId:u.accountId}),v=a.d(l,`slack`,u.accountId),b=(v===`newline`?a.c(s,g,v):[s]).flatMap(e=>N(e,g,{tableMode:_}));!b.length&&s&&b.push(s);let x=typeof u.config.mediaMaxMb==`number`?u.config.mediaMaxMb*1024*1024:void 0,C=``;if(o.mediaUrl){let[e,...t]=b;C=await V({client:p,channelId:m,mediaUrl:o.mediaUrl,mediaLocalRoots:o.mediaLocalRoots,caption:e,threadTs:o.threadTs,maxBytes:x});for(let e of t)C=(await L({client:p,channelId:m,text:e,threadTs:o.threadTs,identity:o.identity})).ts??C}else for(let e of b.length?b:[``])C=(await L({client:p,channelId:m,text:e,threadTs:o.threadTs,identity:o.identity})).ts??C;return{messageId:C||`unknown`,channelId:m}}Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return S}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return d}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return C}}),Object.defineProperty(exports,`l`,{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return N}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return M}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return f}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return H}}),Object.defineProperty(exports,`u`,{enumerable:!0,get:function(){return l}});
@@ -1,3 +1,3 @@
1
1
  require(`./paths-Bcdg3ma0.cjs`);const e=require(`./sessions-CJbvfO6m.cjs`),t=require(`./logger-DUYnS-W3.cjs`),n=require(`./targets-DcGNB9nk.cjs`),r=require(`./tokens-CXsPDJTr.cjs`),i=require(`./fetch-guard-Dpz6CnJY.cjs`),a=require(`./ir-B9ap_YNW.cjs`),o=require(`./render-6fCdtAr6.cjs`);let s=require(`@slack/web-api`);function c(e,t={}){let r=e.trim();return r?n.r({raw:r,mentionPattern:/^<@([A-Z0-9]+)>$/i,prefixes:[{prefix:`user:`,kind:`user`},{prefix:`channel:`,kind:`channel`},{prefix:`slack:`,kind:`user`}],atUserPattern:/^[A-Z0-9]+$/i,atUserErrorMessage:`Slack DMs require a user id (use user:<id> or <@id>)`})||(r.startsWith(`#`)?n.t(`channel`,n.n({candidate:r.slice(1).trim(),pattern:/^[A-Z0-9]+$/i,errorMessage:`Slack channels require a channel id (use channel:<id>)`}),r):t.defaultKind?n.t(t.defaultKind,r,r):n.t(`channel`,r,r)):void 0}function l(e){return n.i({platform:`Slack`,target:c(e,{defaultKind:`channel`}),kind:`channel`})}const u={retries:2,factor:2,minTimeout:500,maxTimeout:3e3,randomize:!0};function d(e={}){return{...e,retryConfig:e.retryConfig??u}}function f(e,t={}){return new s.WebClient(e,d(t))}function p(e){if(typeof e!=`string`)return;let t=e.replace(/\s+/g,` `).trim();return t.length>0?t:void 0}function m(e){return p(e.text?.text)}function h(e){return p(e.text?.text)}function g(e){return p(e.alt_text)??p(e.title?.text)}function _(e){return p(e.title?.text)??p(e.alt_text)}function v(e){if(!Array.isArray(e.elements))return;let t=e.elements.map(e=>p(e.text)).filter(e=>!!e);return t.length>0?t.join(` `):void 0}function y(e){for(let t of e){let e=t;switch(e.type){case`header`:{let t=h(e);if(t)return t;break}case`section`:{let t=m(e);if(t)return t;break}case`image`:return g(e)||`Shared an image`;case`video`:return _(e)||`Shared a video`;case`file`:return`Shared a file`;case`context`:{let t=v(e);if(t)return t;break}default:break}}return`Shared a Block Kit message`}function b(e){try{return JSON.parse(e)}catch{throw Error(`blocks must be valid JSON`)}}function x(e){if(!Array.isArray(e))throw Error(`blocks must be an array`);if(e.length===0)throw Error(`blocks must contain at least one block`);if(e.length>50)throw Error(`blocks cannot exceed 50 items`);for(let t of e){if(!t||typeof t!=`object`||Array.isArray(t))throw Error(`each block must be an object`);let e=t.type;if(typeof e!=`string`||e.trim().length===0)throw Error(`each block must include a non-empty string type`)}}function S(e){return x(e),e}function C(e){if(e!=null)return S(typeof e==`string`?b(e):e)}function w(e){return e.replace(/&/g,`&amp;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`)}const T=/<[^>\n]+>/g;function E(e){if(!e.startsWith(`<`)||!e.endsWith(`>`))return!1;let t=e.slice(1,-1);return t.startsWith(`@`)||t.startsWith(`#`)||t.startsWith(`!`)||t.startsWith(`mailto:`)||t.startsWith(`tel:`)||t.startsWith(`http://`)||t.startsWith(`https://`)||t.startsWith(`slack://`)}function D(e){if(!e)return``;if(!e.includes(`&`)&&!e.includes(`<`)&&!e.includes(`>`))return e;T.lastIndex=0;let t=[],n=0;for(let r=T.exec(e);r;r=T.exec(e)){let i=r.index??0;t.push(w(e.slice(n,i)));let a=r[0]??``;t.push(E(a)?a:w(a)),n=i+a.length}return t.push(w(e.slice(n))),t.join(``)}function O(e){return e?!e.includes(`&`)&&!e.includes(`<`)&&!e.includes(`>`)?e:e.split(`
2
2
  `).map(e=>e.startsWith(`> `)?`> ${D(e.slice(2))}`:D(e)).join(`
3
- `):``}function k(e,t){let n=e.href.trim();if(!n)return null;let r=t.slice(e.start,e.end).trim(),i=n.startsWith(`mailto:`)?n.slice(7):n;if(!(r.length>0&&r!==n&&r!==i))return null;let a=w(n);return{start:e.start,end:e.end,open:`<${a}|`,close:`>`}}function A(){return{styleMarkers:{bold:{open:`*`,close:`*`},italic:{open:`_`,close:`_`},strikethrough:{open:`~`,close:`~`},code:{open:"`",close:"`"},code_block:{open:"```\n",close:"```"}},escapeText:O,buildLink:k}}function j(e,t={}){return o.t(a.n(e??``,{linkify:!1,autolink:!1,headingStyle:`bold`,blockquotePrefix:`> `,tableMode:t.tableMode}),A())}function M(e){return j(e??``)}function N(e,t,n={}){let r=a.t(a.n(e??``,{linkify:!1,autolink:!1,headingStyle:`bold`,blockquotePrefix:`> `,tableMode:n.tableMode}),t),i=A();return r.map(e=>o.t(e,i))}const P={allowedHostnames:[`*.slack.com`,`*.slack-edge.com`,`*.slack-files.com`],allowRfc2544BenchmarkRange:!0};function F(e){return!!(e?.username||e?.iconUrl||e?.iconEmoji)}function I(e){if(!(e instanceof Error))return!1;let t=e;return t.data?.error?.toLowerCase()===`missing_scope`?(t.data?.needed?.toLowerCase())?.includes(`chat:write.customize`)?!0:[...t.data?.response_metadata?.scopes??[],...t.data?.response_metadata?.acceptedScopes??[]].map(e=>e.toLowerCase()).includes(`chat:write.customize`):!1}async function L(e){let n={channel:e.channelId,text:e.text,thread_ts:e.threadTs,...e.blocks?.length?{blocks:e.blocks}:{}};try{return e.identity?.iconUrl?await e.client.chat.postMessage({...n,...e.identity.username?{username:e.identity.username}:{},icon_url:e.identity.iconUrl}):e.identity?.iconEmoji?await e.client.chat.postMessage({...n,...e.identity.username?{username:e.identity.username}:{},icon_emoji:e.identity.iconEmoji}):await e.client.chat.postMessage({...n,...e.identity?.username?{username:e.identity.username}:{}})}catch(r){if(!F(e.identity)||!I(r))throw r;return t.R(`slack send: missing chat:write.customize, retrying without custom identity`),e.client.chat.postMessage(n)}}function R(n){let r=e.ss(n.explicit);if(r)return r;let i=e.ss(n.fallbackToken);if(!i)throw t.R(`slack send: missing bot token for account=${n.accountId} explicit=${!!n.explicit} source=${n.fallbackSource??`unknown`}`),Error(`Slack bot token missing for account "${n.accountId}" (set channels.slack.accounts.${n.accountId}.botToken or SLACK_BOT_TOKEN for default).`);return i}function z(e){let t=c(e);if(!t)throw Error(`Recipient is required for Slack sends`);return{kind:t.kind,id:t.id}}async function B(e,t){if(!(t.kind===`user`||/^U[A-Z0-9]+$/i.test(t.id)))return{channelId:t.id};let n=(await e.conversations.open({users:t.id})).channel?.id;if(!n)throw Error(`Failed to open Slack DM channel`);return{channelId:n,isDm:!0}}async function V(e){let{buffer:t,contentType:n,fileName:r}=await a.a(e.mediaUrl,{maxBytes:e.maxBytes,localRoots:e.mediaLocalRoots}),o=await e.client.files.getUploadURLExternal({filename:r??`upload`,length:t.length});if(!o.ok||!o.upload_url||!o.file_id)throw Error(`Failed to get upload URL: ${o.error??`unknown error`}`);let s=new Uint8Array(t),{response:c,release:l}=await i.t(i.r({url:o.upload_url,init:{method:`POST`,...n?{headers:{"Content-Type":n}}:{},body:s},policy:P,auditContext:`slack-upload-file`}));try{if(!c.ok)throw Error(`Failed to upload file: HTTP ${c.status}`)}finally{await l()}let u=await e.client.files.completeUploadExternal({files:[{id:o.file_id,title:r??`upload`}],channel_id:e.channelId,...e.caption?{initial_comment:e.caption}:{},...e.threadTs?{thread_ts:e.threadTs}:{}});if(!u.ok)throw Error(`Failed to complete upload: ${u.error??`unknown error`}`);return o.file_id}async function H(n,i,o={}){let s=i?.trim()??``;if(r.i(s)&&!o.mediaUrl&&!o.blocks)return t.R(`slack send: suppressed NO_REPLY token before API call`),{messageId:`suppressed`,channelId:``};let c=o.blocks==null?void 0:S(o.blocks);if(!s&&!o.mediaUrl&&!c)throw Error(`Slack send requires text, blocks, or media`);let l=o.cfg??e.Y(),u=e.is({cfg:l,accountId:o.accountId}),d=R({explicit:o.token,accountId:u.accountId,fallbackToken:u.botToken,fallbackSource:u.botTokenSource}),p=o.client??f(d),{channelId:m}=await B(p,z(n));if(c){if(o.mediaUrl)throw Error(`Slack send does not support blocks with mediaUrl`);return{messageId:(await L({client:p,channelId:m,text:s||y(c),threadTs:o.threadTs,identity:o.identity,blocks:c})).ts??`unknown`,channelId:m}}let h=a.h(l,`slack`,u.accountId),g=Math.min(h,4e3),_=a.s({cfg:l,channel:`slack`,accountId:u.accountId}),v=a.m(l,`slack`,u.accountId),b=(v===`newline`?a.d(s,g,v):[s]).flatMap(e=>N(e,g,{tableMode:_}));!b.length&&s&&b.push(s);let x=typeof u.config.mediaMaxMb==`number`?u.config.mediaMaxMb*1024*1024:void 0,C=``;if(o.mediaUrl){let[e,...t]=b;C=await V({client:p,channelId:m,mediaUrl:o.mediaUrl,mediaLocalRoots:o.mediaLocalRoots,caption:e,threadTs:o.threadTs,maxBytes:x});for(let e of t)C=(await L({client:p,channelId:m,text:e,threadTs:o.threadTs,identity:o.identity})).ts??C}else for(let e of b.length?b:[``])C=(await L({client:p,channelId:m,text:e,threadTs:o.threadTs,identity:o.identity})).ts??C;return{messageId:C||`unknown`,channelId:m}}Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return S}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return d}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return C}}),Object.defineProperty(exports,`l`,{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return N}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return M}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return f}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return H}}),Object.defineProperty(exports,`u`,{enumerable:!0,get:function(){return l}});
3
+ `):``}function k(e,t){let n=e.href.trim();if(!n)return null;let r=t.slice(e.start,e.end).trim(),i=n.startsWith(`mailto:`)?n.slice(7):n;if(!(r.length>0&&r!==n&&r!==i))return null;let a=w(n);return{start:e.start,end:e.end,open:`<${a}|`,close:`>`}}function A(){return{styleMarkers:{bold:{open:`*`,close:`*`},italic:{open:`_`,close:`_`},strikethrough:{open:`~`,close:`~`},code:{open:"`",close:"`"},code_block:{open:"```\n",close:"```"}},escapeText:O,buildLink:k}}function j(e,t={}){return o.t(a.n(e??``,{linkify:!1,autolink:!1,headingStyle:`bold`,blockquotePrefix:`> `,tableMode:t.tableMode}),A())}function M(e){return j(e??``)}function N(e,t,n={}){let r=a.t(a.n(e??``,{linkify:!1,autolink:!1,headingStyle:`bold`,blockquotePrefix:`> `,tableMode:n.tableMode}),t),i=A();return r.map(e=>o.t(e,i))}const P={allowedHostnames:[`*.slack.com`,`*.slack-edge.com`,`*.slack-files.com`],allowRfc2544BenchmarkRange:!0};function F(e){return!!(e?.username||e?.iconUrl||e?.iconEmoji)}function I(e){if(!(e instanceof Error))return!1;let t=e;return t.data?.error?.toLowerCase()===`missing_scope`?(t.data?.needed?.toLowerCase())?.includes(`chat:write.customize`)?!0:[...t.data?.response_metadata?.scopes??[],...t.data?.response_metadata?.acceptedScopes??[]].map(e=>e.toLowerCase()).includes(`chat:write.customize`):!1}async function L(e){let n={channel:e.channelId,text:e.text,thread_ts:e.threadTs,...e.blocks?.length?{blocks:e.blocks}:{}};try{return e.identity?.iconUrl?await e.client.chat.postMessage({...n,...e.identity.username?{username:e.identity.username}:{},icon_url:e.identity.iconUrl}):e.identity?.iconEmoji?await e.client.chat.postMessage({...n,...e.identity.username?{username:e.identity.username}:{},icon_emoji:e.identity.iconEmoji}):await e.client.chat.postMessage({...n,...e.identity?.username?{username:e.identity.username}:{}})}catch(r){if(!F(e.identity)||!I(r))throw r;return t.R(`slack send: missing chat:write.customize, retrying without custom identity`),e.client.chat.postMessage(n)}}function R(n){let r=e.ss(n.explicit);if(r)return r;let i=e.ss(n.fallbackToken);if(!i)throw t.R(`slack send: missing bot token for account=${n.accountId} explicit=${!!n.explicit} source=${n.fallbackSource??`unknown`}`),Error(`Slack bot token missing for account "${n.accountId}" (set channels.slack.accounts.${n.accountId}.botToken or SLACK_BOT_TOKEN for default).`);return i}function z(e){let t=c(e);if(!t)throw Error(`Recipient is required for Slack sends`);return{kind:t.kind,id:t.id}}async function B(e,t){if(!(t.kind===`user`||/^U[A-Z0-9]+$/i.test(t.id)))return{channelId:t.id};let n=(await e.conversations.open({users:t.id})).channel?.id;if(!n)throw Error(`Failed to open Slack DM channel`);return{channelId:n,isDm:!0}}async function V(e){let{buffer:t,contentType:n,fileName:r}=await a.a(e.mediaUrl,{maxBytes:e.maxBytes,localRoots:e.mediaLocalRoots}),o=await e.client.files.getUploadURLExternal({filename:r??`upload`,length:t.length});if(!o.ok||!o.upload_url||!o.file_id)throw Error(`Failed to get upload URL: ${o.error??`unknown error`}`);let s=new Uint8Array(t),{response:c,release:l}=await i.t(i.r({url:o.upload_url,init:{method:`POST`,...n?{headers:{"Content-Type":n}}:{},body:s},policy:P,auditContext:`slack-upload-file`}));try{if(!c.ok)throw Error(`Failed to upload file: HTTP ${c.status}`)}finally{await l()}let u=await e.client.files.completeUploadExternal({files:[{id:o.file_id,title:r??`upload`}],channel_id:e.channelId,...e.caption?{initial_comment:e.caption}:{},...e.threadTs?{thread_ts:e.threadTs}:{}});if(!u.ok)throw Error(`Failed to complete upload: ${u.error??`unknown error`}`);return o.file_id}async function H(n,i,o={}){let s=i?.trim()??``;if(r.i(s)&&!o.mediaUrl&&!o.blocks)return t.R(`slack send: suppressed NO_REPLY token before API call`),{messageId:`suppressed`,channelId:``};let c=o.blocks==null?void 0:S(o.blocks);if(!s&&!o.mediaUrl&&!c)throw Error(`Slack send requires text, blocks, or media`);let l=o.cfg??e.Y(),u=e.is({cfg:l,accountId:o.accountId}),d=R({explicit:o.token,accountId:u.accountId,fallbackToken:u.botToken,fallbackSource:u.botTokenSource}),p=o.client??f(d),{channelId:m}=await B(p,z(n));if(c){if(o.mediaUrl)throw Error(`Slack send does not support blocks with mediaUrl`);return{messageId:(await L({client:p,channelId:m,text:s||y(c),threadTs:o.threadTs,identity:o.identity,blocks:c})).ts??`unknown`,channelId:m}}let h=a.h(l,`slack`,u.accountId),g=Math.min(h,4e3),_=a.s({cfg:l,channel:`slack`,accountId:u.accountId}),v=a.m(l,`slack`,u.accountId),b=(v===`newline`?a.d(s,g,v):[s]).flatMap(e=>N(e,g,{tableMode:_}));!b.length&&s&&b.push(s);let x=typeof u.config.mediaMaxMb==`number`?u.config.mediaMaxMb*1024*1024:void 0,C=``;if(o.mediaUrl){let[e,...t]=b;C=await V({client:p,channelId:m,mediaUrl:o.mediaUrl,mediaLocalRoots:o.mediaLocalRoots,caption:e,threadTs:o.threadTs,maxBytes:x});for(let e of t)C=(await L({client:p,channelId:m,text:e,threadTs:o.threadTs,identity:o.identity})).ts??C}else for(let e of b.length?b:[``])C=(await L({client:p,channelId:m,text:e,threadTs:o.threadTs,identity:o.identity})).ts??C;return{messageId:C||`unknown`,channelId:m}}Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return S}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return d}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return C}}),Object.defineProperty(exports,`l`,{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return N}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return M}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return f}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return H}}),Object.defineProperty(exports,`u`,{enumerable:!0,get:function(){return l}});
@@ -1 +1 @@
1
- require(`./paths-Bcdg3ma0.cjs`);const e=require(`./paths-CIcxeNL-.cjs`),t=require(`./utils-PPIvU9qw.cjs`),n=require(`./model-auth-BgS7ynQw.cjs`),r=require(`./ir-D4Dz-giw.cjs`),i=require(`./tables-DBSeZ07-.cjs`),a=require(`./outbound-attachment-D8Ng5uVX.cjs`);let o=require(`node:child_process`),s=require(`node:readline`);function c(){return!!process.env.VITEST?.trim().toLowerCase()}var l=class{constructor(e={}){this.pending=new Map,this.closedResolve=null,this.child=null,this.reader=null,this.nextId=1,this.cliPath=e.cliPath?.trim()||`imsg`,this.dbPath=e.dbPath?.trim()?t.h(e.dbPath):void 0,this.runtime=e.runtime,this.onNotification=e.onNotification,this.closed=new Promise(e=>{this.closedResolve=e})}async start(){if(this.child)return;if(c())throw Error(`Refusing to start imsg rpc in test environment; mock iMessage RPC client`);let e=[`rpc`];this.dbPath&&e.push(`--db`,this.dbPath);let t=(0,o.spawn)(this.cliPath,e,{stdio:[`pipe`,`pipe`,`pipe`]});this.child=t,this.reader=(0,s.createInterface)({input:t.stdout}),this.reader.on(`line`,e=>{let t=e.trim();t&&this.handleLine(t)}),t.stderr?.on(`data`,e=>{let t=e.toString().split(/\r?\n/);for(let e of t)e.trim()&&this.runtime?.error?.(`imsg rpc: ${e.trim()}`)}),t.on(`error`,e=>{this.failAll(e instanceof Error?e:Error(String(e))),this.closedResolve?.()}),t.on(`close`,(e,t)=>{if(e!==0&&e!==null){let n=t?`signal ${t}`:`code ${e}`;this.failAll(Error(`imsg rpc exited (${n})`))}else this.failAll(Error(`imsg rpc closed`));this.closedResolve?.()})}async stop(){if(!this.child)return;this.reader?.close(),this.reader=null,this.child.stdin?.end();let e=this.child;this.child=null,await Promise.race([this.closed,new Promise(t=>{setTimeout(()=>{e.killed||e.kill(`SIGTERM`),t()},500)})])}async waitForClose(){await this.closed}async request(e,t,n){if(!this.child||!this.child.stdin)throw Error(`imsg rpc not running`);let r=this.nextId++,i={jsonrpc:`2.0`,id:r,method:e,params:t??{}},a=`${JSON.stringify(i)}\n`,o=n?.timeoutMs??1e4,s=new Promise((t,n)=>{let i=String(r),a=o>0?setTimeout(()=>{this.pending.delete(i),n(Error(`imsg rpc timeout (${e})`))},o):void 0;this.pending.set(i,{resolve:e=>t(e),reject:n,timer:a})});return this.child.stdin.write(a),await s}handleLine(e){let t;try{t=JSON.parse(e)}catch(t){let n=t instanceof Error?t.message:String(t);this.runtime?.error?.(`imsg rpc: failed to parse ${e}: ${n}`);return}if(t.id!==void 0&&t.id!==null){let e=String(t.id),n=this.pending.get(e);if(!n)return;if(n.timer&&clearTimeout(n.timer),this.pending.delete(e),t.error){let e=t.error.message??`imsg rpc error`,r=t.error.data,i=t.error.code,a=[];if(typeof i==`number`&&a.push(`code=${i}`),r!==void 0){let e=typeof r==`string`?r:JSON.stringify(r,null,2);e&&a.push(e)}let o=a.length>0?`${e}: ${a.join(` `)}`:e;n.reject(Error(o));return}n.resolve(t.result);return}t.method&&this.onNotification?.({method:t.method,params:t.params})}failAll(e){for(let[t,n]of this.pending.entries())n.timer&&clearTimeout(n.timer),n.reject(e),this.pending.delete(t)}};async function u(e={}){let t=new l(e);return await t.start(),t}function d(e,t){return e.slice(t.length).trim()}function f(e,t){return t.some(t=>e.startsWith(t))}function p(e){for(let{prefix:t,service:n}of e.servicePrefixes){if(!e.lower.startsWith(t))continue;let r=d(e.trimmed,t);if(!r)throw Error(`${t} target is required`);let i=r.toLowerCase();return e.isChatTarget(i)?e.parseTarget(r):{kind:`handle`,to:r,service:n}}return null}function m(e){let t=[...e.chatIdPrefixes,...e.chatGuidPrefixes,...e.chatIdentifierPrefixes,...e.extraChatPrefixes??[]];return p({trimmed:e.trimmed,lower:e.lower,servicePrefixes:e.servicePrefixes,isChatTarget:e=>f(e,t),parseTarget:e.parseTarget})}function h(e){for(let t of e.chatIdPrefixes)if(e.lower.startsWith(t)){let n=d(e.trimmed,t),r=Number.parseInt(n,10);if(!Number.isFinite(r))throw Error(`Invalid chat_id: ${n}`);return{kind:`chat_id`,chatId:r}}for(let t of e.chatGuidPrefixes)if(e.lower.startsWith(t)){let n=d(e.trimmed,t);if(!n)throw Error(`chat_guid is required`);return{kind:`chat_guid`,chatGuid:n}}for(let t of e.chatIdentifierPrefixes)if(e.lower.startsWith(t)){let n=d(e.trimmed,t);if(!n)throw Error(`chat_identifier is required`);return{kind:`chat_identifier`,chatIdentifier:n}}return null}function g(e){for(let{prefix:t}of e.servicePrefixes){if(!e.lower.startsWith(t))continue;let n=d(e.trimmed,t);return n?e.parseAllowTarget(n):{kind:`handle`,handle:``}}return null}function _(e){return g({trimmed:e.trimmed,lower:e.lower,servicePrefixes:e.servicePrefixes,parseAllowTarget:e.parseAllowTarget})||y({trimmed:e.trimmed,lower:e.lower,chatIdPrefixes:e.chatIdPrefixes,chatGuidPrefixes:e.chatGuidPrefixes,chatIdentifierPrefixes:e.chatIdentifierPrefixes})||null}function v(e){return t=>n.In({allowFrom:t.allowFrom,sender:t.sender,chatId:t.chatId,chatGuid:t.chatGuid,chatIdentifier:t.chatIdentifier,normalizeSender:e.normalizeSender,parseAllowTarget:e.parseAllowTarget})}function y(e){for(let t of e.chatIdPrefixes)if(e.lower.startsWith(t)){let n=d(e.trimmed,t),r=Number.parseInt(n,10);if(Number.isFinite(r))return{kind:`chat_id`,chatId:r}}for(let t of e.chatGuidPrefixes)if(e.lower.startsWith(t)){let n=d(e.trimmed,t);if(n)return{kind:`chat_guid`,chatGuid:n}}for(let t of e.chatIdentifierPrefixes)if(e.lower.startsWith(t)){let n=d(e.trimmed,t);if(n)return{kind:`chat_identifier`,chatIdentifier:n}}return null}const b=[`chat_id:`,`chatid:`,`chat:`],x=[`chat_guid:`,`chatguid:`,`guid:`],S=[`chat_identifier:`,`chatidentifier:`,`chatident:`],C=[{prefix:`imessage:`,service:`imessage`},{prefix:`sms:`,service:`sms`},{prefix:`auto:`,service:`auto`}];function w(e){let n=e.trim();if(!n)return``;let r=n.toLowerCase();if(r.startsWith(`imessage:`))return w(n.slice(9));if(r.startsWith(`sms:`))return w(n.slice(4));if(r.startsWith(`auto:`))return w(n.slice(5));for(let e of b)if(r.startsWith(e))return`chat_id:${n.slice(e.length).trim()}`;for(let e of x)if(r.startsWith(e))return`chat_guid:${n.slice(e.length).trim()}`;for(let e of S)if(r.startsWith(e))return`chat_identifier:${n.slice(e.length).trim()}`;return n.includes(`@`)?n.toLowerCase():t.d(n)||n.replace(/\s+/g,``)}function T(e){let t=e.trim();if(!t)throw Error(`iMessage target is required`);let n=t.toLowerCase();return m({trimmed:t,lower:n,servicePrefixes:C,chatIdPrefixes:b,chatGuidPrefixes:x,chatIdentifierPrefixes:S,parseTarget:T})||h({trimmed:t,lower:n,chatIdPrefixes:b,chatGuidPrefixes:x,chatIdentifierPrefixes:S})||{kind:`handle`,to:t,service:`auto`}}function E(e){let t=e.trim();return t?_({trimmed:t,lower:t.toLowerCase(),servicePrefixes:C,parseAllowTarget:E,chatIdPrefixes:b,chatGuidPrefixes:x,chatIdentifierPrefixes:S})||{kind:`handle`,handle:w(t)}:{kind:`handle`,handle:``}}const D=v({normalizeSender:w,parseAllowTarget:E});function O(e){return D(e)}function k(e){return!e||!Number.isFinite(e)?``:`chat_id:${e}`}const A=/^\s*\[\[\s*reply_to\s*:\s*([^\]\n]+)\s*\]\]\s*/i;function j(e){let t=``;for(let n of e){let e=n.charCodeAt(0);e>=0&&e<=31||e===127||n===`[`||n===`]`||(t+=n)}return t}function M(e){let t=e?.trim();if(!t)return;let n=j(t).trim();if(n)return n.length>256?n.slice(0,256):n}function N(e,t){let n=M(t);if(!n)return e;let r=`[[reply_to:${n}]]`,i=e.match(A);if(i){let t=e.slice(i[0].length).trimStart();return t?`${r} ${t}`:r}let a=e.trimStart();return a?`${r} ${a}`:r}function P(e){if(!e)return null;let t=typeof e.messageId==`string`&&e.messageId.trim()||typeof e.message_id==`string`&&e.message_id.trim()||typeof e.id==`string`&&e.id.trim()||typeof e.guid==`string`&&e.guid.trim()||(typeof e.message_id==`number`?String(e.message_id):null)||(typeof e.id==`number`?String(e.id):null);return t?String(t).trim():null}async function F(t,o,s={}){let c=s.config??n.Gi(),l=s.account??n.$s({cfg:c,accountId:s.accountId}),d=s.cliPath?.trim()||l.config.cliPath?.trim()||`imsg`,f=s.dbPath?.trim()||l.config.dbPath?.trim(),p=T(s.chatId?k(s.chatId):t),m=s.service??(p.kind===`handle`?p.service:void 0)??l.config.service,h=s.region?.trim()||l.config.region?.trim()||`US`,g=typeof s.maxBytes==`number`?s.maxBytes:typeof l.config.mediaMaxMb==`number`?l.config.mediaMaxMb*1024*1024:16*1024*1024,_=o??``,v;if(s.mediaUrl?.trim()){let t=await(s.resolveAttachmentImpl??a.t)(s.mediaUrl.trim(),g,{localRoots:s.mediaLocalRoots});if(v=t.path,!_.trim()){let n=e.Wt(t.contentType??void 0);n&&(_=n===`image`?`<media:image>`:`<media:${n}>`)}}if(!_.trim()&&!v)throw Error(`iMessage send requires text or media`);if(_.trim()){let e=r.s({cfg:c,channel:`imessage`,accountId:l.accountId});_=i.t(_,e)}_=N(_,s.replyToId);let y={text:_,service:m||`auto`,region:h};v&&(y.file=v),p.kind===`chat_id`?y.chat_id=p.chatId:p.kind===`chat_guid`?y.chat_guid=p.chatGuid:p.kind===`chat_identifier`?y.chat_identifier=p.chatIdentifier:y.to=p.to;let b=s.client??(s.createClient?await s.createClient({cliPath:d,dbPath:f}):await u({cliPath:d,dbPath:f})),x=!s.client;try{let e=await b.request(`send`,y,{timeoutMs:s.timeoutMs});return{messageId:P(e)??(e?.ok?`ok`:`unknown`)}}finally{x&&await b.stop()}}Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return T}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return w}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return k}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return u}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return O}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return 1e4}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return F}});
1
+ require(`./paths-Bcdg3ma0.cjs`);const e=require(`./paths-CIcxeNL-.cjs`),t=require(`./utils-PPIvU9qw.cjs`),n=require(`./model-auth-BgS7ynQw.cjs`),r=require(`./ir-D4Dz-giw.cjs`),i=require(`./tables-DBSeZ07-.cjs`),a=require(`./outbound-attachment-D8Ng5uVX.cjs`);let o=require(`node:child_process`),s=require(`node:readline`);function c(){return!!process.env.VITEST?.trim().toLowerCase()}var l=class{constructor(e={}){this.pending=new Map,this.closedResolve=null,this.child=null,this.reader=null,this.nextId=1,this.cliPath=e.cliPath?.trim()||`imsg`,this.dbPath=e.dbPath?.trim()?t.h(e.dbPath):void 0,this.runtime=e.runtime,this.onNotification=e.onNotification,this.closed=new Promise(e=>{this.closedResolve=e})}async start(){if(this.child)return;if(c())throw Error(`Refusing to start imsg rpc in test environment; mock iMessage RPC client`);let e=[`rpc`];this.dbPath&&e.push(`--db`,this.dbPath);let t=(0,o.spawn)(this.cliPath,e,{stdio:[`pipe`,`pipe`,`pipe`]});this.child=t,this.reader=(0,s.createInterface)({input:t.stdout}),this.reader.on(`line`,e=>{let t=e.trim();t&&this.handleLine(t)}),t.stderr?.on(`data`,e=>{let t=e.toString().split(/\r?\n/);for(let e of t)e.trim()&&this.runtime?.error?.(`imsg rpc: ${e.trim()}`)}),t.on(`error`,e=>{this.failAll(e instanceof Error?e:Error(String(e))),this.closedResolve?.()}),t.on(`close`,(e,t)=>{if(e!==0&&e!==null){let n=t?`signal ${t}`:`code ${e}`;this.failAll(Error(`imsg rpc exited (${n})`))}else this.failAll(Error(`imsg rpc closed`));this.closedResolve?.()})}async stop(){if(!this.child)return;this.reader?.close(),this.reader=null,this.child.stdin?.end();let e=this.child;this.child=null,await Promise.race([this.closed,new Promise(t=>{setTimeout(()=>{e.killed||e.kill(`SIGTERM`),t()},500)})])}async waitForClose(){await this.closed}async request(e,t,n){if(!this.child||!this.child.stdin)throw Error(`imsg rpc not running`);let r=this.nextId++,i={jsonrpc:`2.0`,id:r,method:e,params:t??{}},a=`${JSON.stringify(i)}\n`,o=n?.timeoutMs??1e4,s=new Promise((t,n)=>{let i=String(r),a=o>0?setTimeout(()=>{this.pending.delete(i),n(Error(`imsg rpc timeout (${e})`))},o):void 0;this.pending.set(i,{resolve:e=>t(e),reject:n,timer:a})});return this.child.stdin.write(a),await s}handleLine(e){let t;try{t=JSON.parse(e)}catch(t){let n=t instanceof Error?t.message:String(t);this.runtime?.error?.(`imsg rpc: failed to parse ${e}: ${n}`);return}if(t.id!==void 0&&t.id!==null){let e=String(t.id),n=this.pending.get(e);if(!n)return;if(n.timer&&clearTimeout(n.timer),this.pending.delete(e),t.error){let e=t.error.message??`imsg rpc error`,r=t.error.data,i=t.error.code,a=[];if(typeof i==`number`&&a.push(`code=${i}`),r!==void 0){let e=typeof r==`string`?r:JSON.stringify(r,null,2);e&&a.push(e)}let o=a.length>0?`${e}: ${a.join(` `)}`:e;n.reject(Error(o));return}n.resolve(t.result);return}t.method&&this.onNotification?.({method:t.method,params:t.params})}failAll(e){for(let[t,n]of this.pending.entries())n.timer&&clearTimeout(n.timer),n.reject(e),this.pending.delete(t)}};async function u(e={}){let t=new l(e);return await t.start(),t}function d(e,t){return e.slice(t.length).trim()}function f(e,t){return t.some(t=>e.startsWith(t))}function p(e){for(let{prefix:t,service:n}of e.servicePrefixes){if(!e.lower.startsWith(t))continue;let r=d(e.trimmed,t);if(!r)throw Error(`${t} target is required`);let i=r.toLowerCase();return e.isChatTarget(i)?e.parseTarget(r):{kind:`handle`,to:r,service:n}}return null}function m(e){let t=[...e.chatIdPrefixes,...e.chatGuidPrefixes,...e.chatIdentifierPrefixes,...e.extraChatPrefixes??[]];return p({trimmed:e.trimmed,lower:e.lower,servicePrefixes:e.servicePrefixes,isChatTarget:e=>f(e,t),parseTarget:e.parseTarget})}function h(e){for(let t of e.chatIdPrefixes)if(e.lower.startsWith(t)){let n=d(e.trimmed,t),r=Number.parseInt(n,10);if(!Number.isFinite(r))throw Error(`Invalid chat_id: ${n}`);return{kind:`chat_id`,chatId:r}}for(let t of e.chatGuidPrefixes)if(e.lower.startsWith(t)){let n=d(e.trimmed,t);if(!n)throw Error(`chat_guid is required`);return{kind:`chat_guid`,chatGuid:n}}for(let t of e.chatIdentifierPrefixes)if(e.lower.startsWith(t)){let n=d(e.trimmed,t);if(!n)throw Error(`chat_identifier is required`);return{kind:`chat_identifier`,chatIdentifier:n}}return null}function g(e){for(let{prefix:t}of e.servicePrefixes){if(!e.lower.startsWith(t))continue;let n=d(e.trimmed,t);return n?e.parseAllowTarget(n):{kind:`handle`,handle:``}}return null}function _(e){return g({trimmed:e.trimmed,lower:e.lower,servicePrefixes:e.servicePrefixes,parseAllowTarget:e.parseAllowTarget})||y({trimmed:e.trimmed,lower:e.lower,chatIdPrefixes:e.chatIdPrefixes,chatGuidPrefixes:e.chatGuidPrefixes,chatIdentifierPrefixes:e.chatIdentifierPrefixes})||null}function v(e){return t=>n.In({allowFrom:t.allowFrom,sender:t.sender,chatId:t.chatId,chatGuid:t.chatGuid,chatIdentifier:t.chatIdentifier,normalizeSender:e.normalizeSender,parseAllowTarget:e.parseAllowTarget})}function y(e){for(let t of e.chatIdPrefixes)if(e.lower.startsWith(t)){let n=d(e.trimmed,t),r=Number.parseInt(n,10);if(Number.isFinite(r))return{kind:`chat_id`,chatId:r}}for(let t of e.chatGuidPrefixes)if(e.lower.startsWith(t)){let n=d(e.trimmed,t);if(n)return{kind:`chat_guid`,chatGuid:n}}for(let t of e.chatIdentifierPrefixes)if(e.lower.startsWith(t)){let n=d(e.trimmed,t);if(n)return{kind:`chat_identifier`,chatIdentifier:n}}return null}const b=[`chat_id:`,`chatid:`,`chat:`],x=[`chat_guid:`,`chatguid:`,`guid:`],S=[`chat_identifier:`,`chatidentifier:`,`chatident:`],C=[{prefix:`imessage:`,service:`imessage`},{prefix:`sms:`,service:`sms`},{prefix:`auto:`,service:`auto`}];function w(e){let n=e.trim();if(!n)return``;let r=n.toLowerCase();if(r.startsWith(`imessage:`))return w(n.slice(9));if(r.startsWith(`sms:`))return w(n.slice(4));if(r.startsWith(`auto:`))return w(n.slice(5));for(let e of b)if(r.startsWith(e))return`chat_id:${n.slice(e.length).trim()}`;for(let e of x)if(r.startsWith(e))return`chat_guid:${n.slice(e.length).trim()}`;for(let e of S)if(r.startsWith(e))return`chat_identifier:${n.slice(e.length).trim()}`;return n.includes(`@`)?n.toLowerCase():t.d(n)||n.replace(/\s+/g,``)}function T(e){let t=e.trim();if(!t)throw Error(`iMessage target is required`);let n=t.toLowerCase();return m({trimmed:t,lower:n,servicePrefixes:C,chatIdPrefixes:b,chatGuidPrefixes:x,chatIdentifierPrefixes:S,parseTarget:T})||h({trimmed:t,lower:n,chatIdPrefixes:b,chatGuidPrefixes:x,chatIdentifierPrefixes:S})||{kind:`handle`,to:t,service:`auto`}}function E(e){let t=e.trim();return t?_({trimmed:t,lower:t.toLowerCase(),servicePrefixes:C,parseAllowTarget:E,chatIdPrefixes:b,chatGuidPrefixes:x,chatIdentifierPrefixes:S})||{kind:`handle`,handle:w(t)}:{kind:`handle`,handle:``}}const D=v({normalizeSender:w,parseAllowTarget:E});function O(e){return D(e)}function k(e){return!e||!Number.isFinite(e)?``:`chat_id:${e}`}const A=/^\s*\[\[\s*reply_to\s*:\s*([^\]\n]+)\s*\]\]\s*/i;function j(e){let t=``;for(let n of e){let e=n.charCodeAt(0);e>=0&&e<=31||e===127||n===`[`||n===`]`||(t+=n)}return t}function M(e){let t=e?.trim();if(!t)return;let n=j(t).trim();if(n)return n.length>256?n.slice(0,256):n}function N(e,t){let n=M(t);if(!n)return e;let r=`[[reply_to:${n}]]`,i=e.match(A);if(i){let t=e.slice(i[0].length).trimStart();return t?`${r} ${t}`:r}let a=e.trimStart();return a?`${r} ${a}`:r}function P(e){if(!e)return null;let t=typeof e.messageId==`string`&&e.messageId.trim()||typeof e.message_id==`string`&&e.message_id.trim()||typeof e.id==`string`&&e.id.trim()||typeof e.guid==`string`&&e.guid.trim()||(typeof e.message_id==`number`?String(e.message_id):null)||(typeof e.id==`number`?String(e.id):null);return t?String(t).trim():null}async function F(t,o,s={}){let c=s.config??n.Gi(),l=s.account??n.$s({cfg:c,accountId:s.accountId}),d=s.cliPath?.trim()||l.config.cliPath?.trim()||`imsg`,f=s.dbPath?.trim()||l.config.dbPath?.trim(),p=T(s.chatId?k(s.chatId):t),m=s.service??(p.kind===`handle`?p.service:void 0)??l.config.service,h=s.region?.trim()||l.config.region?.trim()||`US`,g=typeof s.maxBytes==`number`?s.maxBytes:typeof l.config.mediaMaxMb==`number`?l.config.mediaMaxMb*1024*1024:16*1024*1024,_=o??``,v;if(s.mediaUrl?.trim()){let t=await(s.resolveAttachmentImpl??a.t)(s.mediaUrl.trim(),g,{localRoots:s.mediaLocalRoots});if(v=t.path,!_.trim()){let n=e.Wt(t.contentType??void 0);n&&(_=n===`image`?`<media:image>`:`<media:${n}>`)}}if(!_.trim()&&!v)throw Error(`iMessage send requires text or media`);if(_.trim()){let e=r.s({cfg:c,channel:`imessage`,accountId:l.accountId});_=i.t(_,e)}_=N(_,s.replyToId);let y={text:_,service:m||`auto`,region:h};v&&(y.file=v),p.kind===`chat_id`?y.chat_id=p.chatId:p.kind===`chat_guid`?y.chat_guid=p.chatGuid:p.kind===`chat_identifier`?y.chat_identifier=p.chatIdentifier:y.to=p.to;let b=s.client??(s.createClient?await s.createClient({cliPath:d,dbPath:f}):await u({cliPath:d,dbPath:f})),x=!s.client;try{let e=await b.request(`send`,y,{timeoutMs:s.timeoutMs});return{messageId:P(e)??(e?.ok?`ok`:`unknown`)}}finally{x&&await b.stop()}}Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return T}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return w}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return k}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return u}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return O}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return 1e4}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return F}});
@@ -4,4 +4,4 @@ import{It as e,d as t,y as n}from"./paths-piJASC5k.js";import{Z as r}from"./logg
4
4
  `),o=[],s=``,c=0,l=null,u=()=>{if(!s)return;let e=kt(s,l);e.trim().length&&o.push(e),s=``,c=0,l&&(s=l.openLine,c=1)};for(let e of a){let t=Dt(e),i=l!==null,a=l;t&&(l?l.markerChar===t.markerChar&&t.markerLen>=l.markerLen&&(a=null):a=t);let o=a?Ot(a).length+1:0,d=a?1:0,f=n-o,p=r-d,m=f>0?f:n,h=p>0?p:r,g=s.length>0?s.length+1:0,_=At(e,Math.max(1,m-g),{preserveWhitespace:i});for(let e=0;e<_.length;e++){let t=_[e],n=e>0,r=`${n?``:s.length>0?`
5
5
  `:``}${t}`,i=s.length+r.length,a=c+(n?0:1);(i>m||a>h)&&s.length>0&&u(),s.length>0?(s+=r,n||(c+=1)):(s=t,c=1)}l=a}if(s.length){let e=kt(s,l);e.trim().length&&o.push(e)}return Nt(e,o)}function Mt(e,t){if((t.chunkMode??`length`)!==`newline`)return jt(e,t);let n=m(e,Math.max(1,Math.floor(t.maxChars??wt)),`newline`),r=[];for(let e of n){let n=jt(e,t);if(!n.length&&e){r.push(e);continue}r.push(...n)}return r}function Nt(e,t){if(t.length<=1||!(e.startsWith(`Reasoning:
6
6
  _`)&&e.trimEnd().endsWith(`_`)))return t;let n=[...t];for(let e=0;e<n.length;e++){let t=e===n.length-1,r=n[e];if(r.trimEnd().endsWith(`_`)||(n[e]=`${r}_`),t)break;let i=n[e+1],a=i.length-i.trimStart().length,o=i.slice(0,a),s=i.slice(a);s.startsWith(`_`)||(n[e+1]=`${o}_${s}`)}return n}function Pt(e){let t=i(e.fallbackToken,`channels.discord.token`);if(!t)throw Error(`Discord bot token missing for account "${e.accountId}" (set discord.accounts.${e.accountId}.token or DISCORD_BOT_TOKEN for default).`);return t}function Ft(e,t){return t??new be(e)}function It(t){let n=e(t.accountId),r=a(t.cfg,n),i=t.cfg.channels?.discord?.enabled!==!1,o=r.enabled!==!1;return{accountId:n,enabled:i&&o,name:r.name?.trim()||void 0,token:``,tokenSource:`none`,config:r}}function Lt(e,t){let n=e.cfg??t??l(),r=i(e.token,`channels.discord.token`),a=r?It({cfg:n,accountId:e.accountId}):o({cfg:n,accountId:e.accountId}),s=r??Pt({accountId:a.accountId,fallbackToken:a.token});return{token:s,rest:Ft(s,e.rest),account:a}}function F(e,t){let{token:n,rest:r,account:i}=Lt(e,e.cfg??t);return{token:n,rest:r,request:S({retry:e.retry,configRetry:i.config.retry,verbose:e.verbose})}}function I(e){return Lt(e,e.cfg).rest}const Rt=Object.entries(ae).filter(([,e])=>typeof e==`bigint`),zt=Rt.reduce((e,[,t])=>e|t,0n),Bt=ae.Administrator;function L(e,t){return t?e|BigInt(t):e}function Vt(e,t){return t?e&~BigInt(t):e}function Ht(e){return Rt.filter(([,t])=>(e&t)===t).map(([e])=>e).toSorted()}function Ut(e){return(e&Bt)===Bt}function Wt(e,t){return(e&t)===t}function Gt(e){return e===D.GuildNewsThread||e===D.GuildPublicThread||e===D.GuildPrivateThread}async function Kt(e){let t=await e.get(O.user(`@me`));if(!t?.id)throw Error(`Failed to resolve bot user id`);return t.id}async function qt(e,t,n={}){let r=I(n);try{let[n,i]=await Promise.all([r.get(O.guild(e)),r.get(O.guildMember(e,t))]),a=new Map((n.roles??[]).map(e=>[e.id,e])),o=a.get(e),s=0n;o?.permissions&&(s=L(s,o.permissions));for(let e of i.roles??[]){let t=a.get(e);t?.permissions&&(s=L(s,t.permissions))}return s}catch{return null}}async function Jt(e,t,n,r,i={}){let a=await qt(e,t,i);return a===null?!1:Ut(a)?!0:r(a,n)}async function Yt(e,t,n,r={}){return await Jt(e,t,n,(e,t)=>t.some(t=>Wt(e,t)),r)}async function Xt(e,t={}){let n=I(t),r=await n.get(O.channel(e)),i=`type`in r?r.type:void 0,a=`guild_id`in r?r.guild_id:void 0;if(!a)return{channelId:e,permissions:[],raw:`0`,isDm:!0,channelType:i};let o=await Kt(n),[s,c]=await Promise.all([n.get(O.guild(a)),n.get(O.guildMember(a,o))]),l=new Map((s.roles??[]).map(e=>[e.id,e])),u=l.get(a),d=0n;u?.permissions&&(d=L(d,u.permissions));for(let e of c.roles??[]){let t=l.get(e);t?.permissions&&(d=L(d,t.permissions))}if(Ut(d))return{channelId:e,guildId:a,permissions:Ht(zt),raw:zt.toString(),isDm:!1,channelType:i};let f=d,p=`permission_overwrites`in r?r.permission_overwrites??[]:[];for(let e of p)e.id===a&&(f=Vt(f,e.deny??`0`),f=L(f,e.allow??`0`));for(let e of p)c.roles?.includes(e.id)&&(f=Vt(f,e.deny??`0`),f=L(f,e.allow??`0`));for(let e of p)e.id===o&&(f=Vt(f,e.deny??`0`),f=L(f,e.allow??`0`));return{channelId:e,guildId:a,permissions:Ht(f),raw:f.toString(),isDm:!1,channelType:i}}var Zt=class extends Error{constructor(e,t){super(e),this.name=`DiscordSendError`,t&&Object.assign(this,t)}toString(){return this.message}};const Qt=/#\d{4}$/,$t=new Map;function en(t){return e(t??`default`)||`default`}function tn(e){let t=String(e??``).trim();return/^\d+$/.test(t)?t:null}function nn(e){let t=e.trim();return!t||(t.startsWith(`@`)&&(t=t.slice(1).trim()),!t||/\s/.test(t))?null:t.toLowerCase()}function rn(e){let t=en(e),n=$t.get(t);if(n)return n;let r=new Map;return $t.set(t,r),r}function an(e,t,n){if(e.has(t)&&e.delete(t),e.set(t,n),e.size<=4e3)return;let r=e.keys().next();r.done||e.delete(r.value)}function on(e){let t=tn(e.userId);if(!t)return;let n=rn(e.accountId);for(let r of e.handles){if(typeof r!=`string`)continue;let e=nn(r);if(!e)continue;an(n,e,t);let i=e.replace(Qt,``);i&&i!==e&&an(n,i,t)}}function sn(e){let t=$t.get(en(e.accountId));if(!t)return;let n=nn(e.handle);if(!n)return;let r=t.get(n);if(r)return r;let i=n.replace(Qt,``);if(!(!i||i===n))return t.get(i)}function cn(e){return e?.trim().toLowerCase()??``}function ln(e){return e.bot?0:1}function un(e){let t=i(o({cfg:e.cfg,accountId:e.accountId}).token,`channels.discord.token`);return t?{token:t,query:cn(e.query)}:null}async function dn(e){return(await M(`/users/@me/guilds`,e)).filter(e=>e.id&&e.name)}async function fn(e){let t=un(e);if(!t)return[];let{token:n,query:r}=t,i=await dn(n),a=[];for(let t of i){let i=await M(`/guilds/${t.id}/channels`,n);for(let t of i){let n=t.name?.trim();if(n&&!(r&&!P(n).includes(P(r)))&&(a.push({kind:`group`,id:`channel:${t.id}`,name:n,handle:`#${n}`,raw:t}),typeof e.limit==`number`&&e.limit>0&&a.length>=e.limit))return a}}return a}async function pn(e){let t=un(e);if(!t)return[];let{token:n,query:r}=t;if(!r)return[];let i=await dn(n),a=[],o=typeof e.limit==`number`&&e.limit>0?e.limit:25;for(let t of i){let i=new URLSearchParams({query:r,limit:String(Math.min(o,100))}),s=await M(`/guilds/${t.id}/members/search?${i.toString()}`,n);for(let t of s){let n=t.user;if(!n?.id)continue;on({accountId:e.accountId,userId:n.id,handles:[n.username,n.global_name,t.nick,n.username?`@${n.username}`:null]});let r=t.nick?.trim()||n.global_name?.trim()||n.username?.trim();if(a.push({kind:`user`,id:`user:${n.id}`,name:r||void 0,handle:n.username?`@${n.username}`:void 0,rank:ln(n),raw:t}),a.length>=o)return a}}return a}function R(e,t={}){let n=e.trim();if(!n)return;let r=d({raw:n,mentionPattern:/^<@!?(\d+)>$/,prefixes:[{prefix:`user:`,kind:`user`},{prefix:`channel:`,kind:`channel`},{prefix:`discord:`,kind:`user`}],atUserPattern:/^\d+$/,atUserErrorMessage:`Discord DMs require a user id (use user:<id> or a <@id> mention)`});if(r)return r;if(/^\d+$/.test(n)){if(t.defaultKind)return f(t.defaultKind,n,n);throw Error(t.ambiguousMessage??`Ambiguous Discord recipient "${n}". Use "user:${n}" for DMs or "channel:${n}" for channel messages.`)}return f(`channel`,n,n)}function mn(e){return u({platform:`Discord`,target:R(e,{defaultKind:`channel`}),kind:`channel`})}async function hn(e,t,n={}){let r=e.trim();if(!r)return;let i=vn(r),a=_n(r,n)||i,o=gn(r,n);if(o&&o.kind!==`channel`&&!i)return o;if(!a)return o??R(r,n);try{let e=(await pn({...t,query:r,limit:1}))[0];if(e&&e.kind===`user`){let n=e.id.replace(/^user:/,``);return on({accountId:t.accountId,userId:n,handles:[r,e.name,e.handle]}),f(`user`,n,r)}}catch{}return R(r,n)}function gn(e,t){try{return R(e,t)}catch{return}}function _n(e,t){return/^<@!?(\d+)>$/.test(e)||/^(user:|discord:)/.test(e)||e.startsWith(`@`)?!0:/^\d+$/.test(e)?t.defaultKind===`user`:!1}function vn(e){return!/^(user:|channel:|discord:|@|<@!?)|[\d]+$/.test(e)}function yn(e){let t=e.trim();if(!t)throw Error(`emoji required`);let n=t.match(/^<a?:([^:>]+):(\d+)>$/),r=n?`${n[1]}:${n[2]}`:t.replace(/[\uFE0E\uFE0F]/g,``);return encodeURIComponent(r)}async function bn(e,t,n){let r=n??l(),i=o({cfg:r,accountId:t}),a=e.trim(),s={ambiguousMessage:`Ambiguous Discord recipient "${a}". Use "user:${a}" for DMs or "channel:${a}" for channel messages.`},c=await hn(e,{cfg:r,accountId:i.accountId},s);if(c)return{kind:c.kind,id:c.id};let u=R(e,s);if(!u)throw Error(`Recipient is required for Discord sends`);return{kind:u.kind,id:u.id}}function xn(e){let t=e.map(e=>e.trim()).filter(Boolean);if(t.length===0)throw Error(`At least one sticker id is required`);if(t.length>3)throw Error(`Discord supports up to 3 stickers per message`);return t}function z(e,t){let n=e.trim();if(!n)throw Error(`${t} is required`);return n}function Sn(e){let t=b(e,{maxOptions:10}),n=ee(t.durationHours,{defaultHours:24,maxHours:768});return{question:{text:t.question},answers:t.options.map(e=>({poll_media:{text:e}})),duration:n,allow_multiselect:t.maxSelections>1,layout_type:Ae.Default}}function Cn(e){if(!e||typeof e!=`object`)return;let t=`code`in e&&e.code!==void 0?e.code:`rawError`in e&&e.rawError&&typeof e.rawError==`object`?e.rawError.code:void 0;if(typeof t==`number`)return t;if(typeof t==`string`&&/^\d+$/.test(t))return Number(t)}async function B(e,t){if(e instanceof Zt)return e;let n=Cn(e);if(n===50007)return new Zt(`discord dm failed: user blocks dms or privacy settings disallow it`,{kind:`dm-blocked`});if(n!==50013)return e;let r=[];try{let e=await Xt(t.channelId,{rest:t.rest,token:t.token}),n=new Set(e.permissions),i=[`ViewChannel`,`SendMessages`];Gt(e.channelType)&&i.push(`SendMessagesInThreads`),t.hasMedia&&i.push(`AttachFiles`),r=i.filter(e=>!n.has(e))}catch{}return new Zt(`${r.length?`missing permissions in channel ${t.channelId}: ${r.join(`, `)}`:`missing permissions in channel ${t.channelId}`}. bot might be muted or blocked by role/channel overrides`,{kind:`missing-permissions`,channelId:t.channelId,missingPermissions:r})}async function V(e,t,n){if(t.kind===`channel`)return{channelId:t.id};let r=await n(()=>e.post(O.userChannels(),{body:{recipient_id:t.id}}),`dm-channel`);if(!r?.id)throw Error(`Failed to create Discord DM channel`);return{channelId:r.id,dm:!0}}async function wn(e,t){try{return(await e.get(O.channel(t)))?.type}catch{return}}const H=4096;function Tn(e,t={}){if(!e)return[];let n=Mt(e,{maxChars:t.maxChars??2e3,maxLines:t.maxLinesPerMessage,chunkMode:t.chunkMode});return!n.length&&e&&n.push(e),n}function En(e){return!!e?.some(e=>`isV2`in e&&e.isV2)}function Dn(e){if(!(!e.components||!e.isFirst))return typeof e.components==`function`?e.components(e.text):e.components}function On(e){if(e?.length)return e.map(e=>e instanceof de?e:new de(e))}function kn(e){if(!(!e.embeds||!e.isFirst))return On(e.embeds)}function An(e){let t={},n=En(e.components),r=e.text.trim();return!n&&r&&(t.content=e.text),e.components?.length&&(t.components=e.components),!n&&e.embeds?.length&&(t.embeds=e.embeds),e.flags!==void 0&&(t.flags=e.flags),e.files?.length&&(t.files=e.files),t}function U(e){return Object.fromEntries(Object.entries(e).filter(([,e])=>e!==void 0))}function jn(e){if(e instanceof Blob)return e;let t=new ArrayBuffer(e.byteLength);return new Uint8Array(t).set(e),new Blob([t])}async function W(e,t,n,r,i,a,o,s,c,l){if(!n.trim())throw Error(`Message must be non-empty for Discord sends`);let u=r?{message_id:r,fail_if_not_exists:!1}:void 0,d=l?H:void 0,f=Tn(n,{maxLinesPerMessage:a,chunkMode:c}),p=async(n,r)=>{let a=U({...ke(An({text:n,components:Dn({components:o,text:n,isFirst:r}),embeds:kn({embeds:s,isFirst:r}),flags:d})),...u?{message_reference:u}:{}});return await i(()=>e.post(O.channelMessages(t),{body:a}),`text`)};if(f.length===1)return await p(f[0],!0);let m=null;for(let[e,t]of f.entries())m=await p(t,e===0);if(!m)throw Error(`Discord send failed (empty chunk result)`);return m}async function Mn(e,t,n,r,i,a,o,s,c,l,u,d,f){let m=await p(r,y({maxBytes:a,mediaLocalRoots:i})),h=n?Tn(n,{maxLinesPerMessage:c,chunkMode:d}):[],g=h[0]??``,_=o?{message_id:o,fail_if_not_exists:!1}:void 0,v=f?H:void 0,b=jn(m.buffer),ee=An({text:g,components:Dn({components:l,text:g,isFirst:!0}),embeds:kn({embeds:u,isFirst:!0}),flags:v,files:[{data:b,name:m.fileName??`upload`}]}),x=await s(()=>e.post(O.channelMessages(t),{body:U({...ke(ee),..._?{message_reference:_}:{}})}),`media`);for(let n of h.slice(1))n.trim()&&await W(e,t,n,o,s,c,void 0,void 0,d,f);return x}function Nn(e){return e.id&&e.name?`${e.name}:${e.id}`:e.name??``}function Pn(e){return Nn(e)}async function Fn(e,t={}){let n=I(t),r={name:e.name};return e.type!==void 0&&(r.type=e.type),e.parentId&&(r.parent_id=e.parentId),e.topic&&(r.topic=e.topic),e.position!==void 0&&(r.position=e.position),e.nsfw!==void 0&&(r.nsfw=e.nsfw),await n.post(O.guildChannels(e.guildId),{body:r})}async function In(e,t={}){let n=I(t),r={};return e.name!==void 0&&(r.name=e.name),e.topic!==void 0&&(r.topic=e.topic),e.position!==void 0&&(r.position=e.position),e.parentId!==void 0&&(r.parent_id=e.parentId),e.nsfw!==void 0&&(r.nsfw=e.nsfw),e.rateLimitPerUser!==void 0&&(r.rate_limit_per_user=e.rateLimitPerUser),e.archived!==void 0&&(r.archived=e.archived),e.locked!==void 0&&(r.locked=e.locked),e.autoArchiveDuration!==void 0&&(r.auto_archive_duration=e.autoArchiveDuration),e.availableTags!==void 0&&(r.available_tags=e.availableTags.map(e=>({...e.id!==void 0&&{id:e.id},name:e.name,...e.moderated!==void 0&&{moderated:e.moderated},...e.emoji_id!==void 0&&{emoji_id:e.emoji_id},...e.emoji_name!==void 0&&{emoji_name:e.emoji_name}}))),await n.patch(O.channel(e.channelId),{body:r})}async function Ln(e,t={}){return await I(t).delete(O.channel(e)),{ok:!0,channelId:e}}async function Rn(e,t={}){let n=I(t),r=[{id:e.channelId,...e.parentId!==void 0&&{parent_id:e.parentId},...e.position!==void 0&&{position:e.position}}];return await n.patch(O.guildChannels(e.guildId),{body:r}),{ok:!0}}async function zn(e,t={}){let n=I(t),r={type:e.targetType};return e.allow!==void 0&&(r.allow=e.allow),e.deny!==void 0&&(r.deny=e.deny),await n.put(`/channels/${e.channelId}/permissions/${e.targetId}`,{body:r}),{ok:!0}}async function Bn(e,t,n={}){return await I(n).delete(`/channels/${e}/permissions/${t}`),{ok:!0}}async function Vn(e,t={}){return await I(t).get(O.guildEmojis(e))}async function Hn(e,t={}){let n=I(t),r=await _(e.mediaUrl,262144),i=r.contentType?.toLowerCase();if(!i||![`image/png`,`image/jpeg`,`image/jpg`,`image/gif`].includes(i))throw Error(`Discord emoji uploads require a PNG, JPG, or GIF image`);let a=`data:${i};base64,${r.buffer.toString(`base64`)}`,o=(e.roleIds??[]).map(e=>e.trim()).filter(Boolean);return await n.post(O.guildEmojis(e.guildId),{body:{name:z(e.name,`Emoji name`),image:a,roles:o.length?o:void 0}})}async function Un(e,t={}){let n=I(t),r=await _(e.mediaUrl,524288),i=r.contentType?.toLowerCase();if(!i||![`image/png`,`image/apng`,`application/json`].includes(i))throw Error(`Discord sticker uploads require a PNG, APNG, or Lottie JSON file`);return await n.post(O.guildStickers(e.guildId),{body:{name:z(e.name,`Sticker name`),description:z(e.description,`Sticker description`),tags:z(e.tags,`Sticker tags`),files:[{data:r.buffer,name:r.fileName??`sticker`,contentType:i}]}})}async function Wn(e,t,n={}){return await I(n).get(O.guildMember(e,t))}async function Gn(e,t={}){return await I(t).get(O.guildRoles(e))}async function Kn(e,t={}){return await I(t).put(O.guildMemberRole(e.guildId,e.userId,e.roleId)),{ok:!0}}async function qn(e,t={}){return await I(t).delete(O.guildMemberRole(e.guildId,e.userId,e.roleId)),{ok:!0}}async function Jn(e,t={}){return await I(t).get(O.channel(e))}async function Yn(e,t={}){return await I(t).get(O.guildChannels(e))}async function Xn(e,t,n={}){return await I(n).get(O.guildVoiceState(e,t))}async function Zn(e,t={}){return await I(t).get(O.guildScheduledEvents(e))}async function Qn(e,t,n={}){return await I(n).post(O.guildScheduledEvents(e),{body:t})}async function $n(e,t={}){let n=I(t),r=e.until;if(!r&&e.durationMinutes){let t=e.durationMinutes*60*1e3;r=new Date(Date.now()+t).toISOString()}return await n.patch(O.guildMember(e.guildId,e.userId),{body:{communication_disabled_until:r??null},headers:e.reason?{"X-Audit-Log-Reason":encodeURIComponent(e.reason)}:void 0})}async function er(e,t={}){return await I(t).delete(O.guildMember(e.guildId,e.userId),{headers:e.reason?{"X-Audit-Log-Reason":encodeURIComponent(e.reason)}:void 0}),{ok:!0}}async function tr(e,t={}){let n=I(t),r=typeof e.deleteMessageDays==`number`&&Number.isFinite(e.deleteMessageDays)?Math.min(Math.max(Math.floor(e.deleteMessageDays),0),7):void 0;return await n.put(O.guildBan(e.guildId,e.userId),{body:r===void 0?void 0:{delete_message_days:r},headers:e.reason?{"X-Audit-Log-Reason":encodeURIComponent(e.reason)}:void 0}),{ok:!0}}async function nr(e,t={},n={}){let r=I(n),i=typeof t.limit==`number`&&Number.isFinite(t.limit)?Math.min(Math.max(Math.floor(t.limit),1),100):void 0,a={};return i&&(a.limit=i),t.before&&(a.before=t.before),t.after&&(a.after=t.after),t.around&&(a.around=t.around),await r.get(O.channelMessages(e),a)}async function rr(e,t,n={}){return await I(n).get(O.channelMessage(e,t))}async function ir(e,t,n,r={}){return await I(r).patch(O.channelMessage(e,t),{body:{content:n.content}})}async function ar(e,t,n={}){return await I(n).delete(O.channelMessage(e,t)),{ok:!0}}async function or(e,t,n={}){return await I(n).put(O.channelPin(e,t)),{ok:!0}}async function sr(e,t,n={}){return await I(n).delete(O.channelPin(e,t)),{ok:!0}}async function cr(e,t={}){return await I(t).get(O.channelPins(e))}async function lr(e,t,n={}){let r=I(n),i={name:t.name};t.autoArchiveMinutes&&(i.auto_archive_duration=t.autoArchiveMinutes),!t.messageId&&t.type!==void 0&&(i.type=t.type);let a;if(!t.messageId)try{a=(await r.get(O.channel(e)))?.type}catch{a=void 0}let o=a===D.GuildForum||a===D.GuildMedia;o&&(i.message={content:t.content?.trim()?t.content:t.name},t.appliedTags?.length&&(i.applied_tags=t.appliedTags)),!t.messageId&&!o&&i.type===void 0&&(i.type=D.PublicThread);let s=t.messageId?O.threads(e,t.messageId):O.threads(e),c=await r.post(s,{body:i});return!o&&t.content?.trim()&&await r.post(O.channelMessages(c.id),{body:{content:t.content}}),c}async function ur(e,t={}){let n=I(t);if(e.includeArchived){if(!e.channelId)throw Error(`channelId required to list archived threads`);let t={};return e.before&&(t.before=e.before),e.limit&&(t.limit=e.limit),await n.get(O.channelThreads(e.channelId,`public`),t)}return await n.get(O.guildActiveThreads(e.guildId))}async function dr(e,t={}){let n=I(t),r=new URLSearchParams;if(r.set(`content`,e.content),e.channelIds?.length)for(let t of e.channelIds)r.append(`channel_id`,t);if(e.authorIds?.length)for(let t of e.authorIds)r.append(`author_id`,t);if(e.limit){let t=Math.min(Math.max(Math.floor(e.limit),1),25);r.set(`limit`,String(t))}return await n.get(`/guilds/${e.guildId}/messages/search?${r.toString()}`)}async function fr(e){if(e)try{await w.unlink(e)}catch{}}const pr=/```[\s\S]*?```|`[^`\n]*`/g,mr=/(^|[\s([{"'.,;:!?])@([a-z0-9_.-]{2,32}(?:#[0-9]{4})?)/gi,hr=new Set([`everyone`,`here`]);function gr(e){let t=String(e??``).trim();return/^\d+$/.test(t)?t:null}function _r(e){let t=e.userId==null?null:gr(e.userId),n=e.roleId==null?null:gr(e.roleId),r=e.channelId==null?null:gr(e.channelId),i=[t?{kind:`user`,id:t}:null,n?{kind:`role`,id:n}:null,r?{kind:`channel`,id:r}:null].filter(e=>!!e);if(i.length!==1)throw Error(`formatMention requires exactly one of userId, roleId, or channelId`);let a=i[0];return a.kind===`user`?`<@${a.id}>`:a.kind===`role`?`<@&${a.id}>`:`<#${a.id}>`}function vr(e,t){return e.includes(`@`)?e.replace(mr,(e,n,r)=>{let i=String(r??``).trim();if(!i)return e;let a=i.toLowerCase();if(hr.has(a))return e;let o=sn({accountId:t,handle:i});return o?`${String(n??``)}${_r({userId:o})}`:e}):e}function G(e,t){if(!e.includes(`@`))return e;let n=``,r=0;pr.lastIndex=0;for(let i of e.matchAll(pr)){let a=i.index??0;n+=vr(e.slice(r,a),t.accountId),n+=i[0],r=a+i[0].length}return n+=vr(e.slice(r),t.accountId),n}const yr=ne(re);function br(e,t){return{timeout:t?.timeoutMs??e,maxBuffer:t?.maxBufferBytes??10485760}}async function xr(e,t){let{stdout:n}=await yr(`ffprobe`,e,br(1e4,t));return n.toString()}async function Sr(e,t){let{stdout:n}=await yr(`ffmpeg`,e,br(45e3,t));return n.toString()}function Cr(e,t){return e.trim().toLowerCase().split(/[,\r\n]+/,t).map(e=>e.trim())}function wr(e){let[t,n]=Cr(e,2),r=t||null,i=n?Number.parseInt(n,10):NaN;return{codec:r,sampleRateHz:Number.isFinite(i)?i:null}}const Tr=8192;async function Er(e){try{let t=await xr([`-v`,`error`,`-show_entries`,`format=duration`,`-of`,`csv=p=0`,e]),n=parseFloat(t.trim());if(isNaN(n))throw Error(`Could not parse duration`);return Math.round(n*100)/100}catch(e){let t=e instanceof Error?e.message:String(e);throw Error(`Failed to get audio duration: ${t}`,{cause:e})}}async function Dr(e){try{return await Or(e)}catch{return kr()}}async function Or(e){let t=r(),n=C.join(t,`waveform-${T.randomUUID()}.raw`);try{await Sr([`-y`,`-i`,e,`-vn`,`-sn`,`-dn`,`-t`,`1200`,`-f`,`s16le`,`-acodec`,`pcm_s16le`,`-ac`,`1`,`-ar`,`8000`,n]);let t=await w.readFile(n),r=new Int16Array(t.buffer,t.byteOffset,t.byteLength/2),i=Math.max(1,Math.floor(r.length/256)),a=[];for(let e=0;e<256&&e*i<r.length;e++){let t=0,n=0;for(let a=0;a<i&&e*i+a<r.length;a++)t+=Math.abs(r[e*i+a]),n++;let o=n>0?t/n:0,s=Math.min(255,Math.round(o/32767*255));a.push(s)}for(;a.length<256;)a.push(0);return Buffer.from(a).toString(`base64`)}finally{await fr(n)}}function kr(){let e=[];for(let t=0;t<256;t++){let n=Math.round(128+64*Math.sin(t/256*Math.PI*8));e.push(Math.min(255,Math.max(0,n)))}return Buffer.from(e).toString(`base64`)}async function Ar(e){let t=e.trim();if(/^[a-z][a-z0-9+.-]*:\/\//i.test(t))throw Error(`Voice message conversion requires a local file path; received a URL/protocol source: ${t}`);if(C.extname(e).toLowerCase()===`.ogg`)try{let{codec:t,sampleRateHz:n}=wr(await xr([`-v`,`error`,`-select_streams`,`a:0`,`-show_entries`,`stream=codec_name,sample_rate`,`-of`,`csv=p=0`,e]));if(t===`opus`&&n===48e3)return{path:e,cleanup:!1}}catch{}let n=r(),i=C.join(n,`voice-${T.randomUUID()}.ogg`);return await Sr([`-y`,`-i`,e,`-vn`,`-sn`,`-dn`,`-t`,`1200`,`-ar`,`48000`,`-c:a`,`libopus`,`-b:a`,`64k`,i]),{path:i,cleanup:!0}}async function jr(e){let[t,n]=await Promise.all([Er(e),Dr(e)]);return{durationSecs:t,waveform:n}}async function Mr(e,t,n,r,i,a,o,s){let c=`voice-message.ogg`,l=n.byteLength,u=s;if(!u)throw Error(`Discord bot token is required for voice message upload`);let d=await a(async()=>{let n=`${e.options?.baseUrl??`https://discord.com/api`}/channels/${t}/attachments`,r=await fetch(n,{method:`POST`,headers:{Authorization:`Bot ${u}`,"Content-Type":`application/json`},body:JSON.stringify({files:[{filename:c,file_size:l,id:`0`}]})});if(!r.ok){if(r.status===429){let e=await r.json().catch(()=>({}));throw new ye(r,{message:e.message??`You are being rate limited.`,retry_after:e.retry_after??1,global:e.global??!1})}let e=await r.json().catch(()=>null),t=Error(`Upload URL request failed: ${r.status} ${e?.message??``}`);throw e?.code!==void 0&&(t.code=e.code),t}return await r.json()},`voice-upload-url`);if(!d.attachments?.[0])throw Error(`Failed to get upload URL for voice message`);let{upload_url:f,upload_filename:p}=d.attachments[0],m=await fetch(f,{method:`PUT`,headers:{"Content-Type":`audio/ogg`},body:new Uint8Array(n)});if(!m.ok)throw Error(`Failed to upload voice message: ${m.status}`);let h={flags:o?Tr|4096:Tr,attachments:[{id:`0`,filename:c,uploaded_filename:p,duration_secs:r.durationSecs,waveform:r.waveform}]};return i&&(h.message_reference={message_id:i,fail_if_not_exists:!1}),await a(()=>e.post(`/channels/${t}/messages`,{body:h}),`voice-message`)}async function Nr(e){for(let t of e.chunks)await W(e.rest,e.threadId,t,void 0,e.request,e.maxLinesPerMessage,void 0,void 0,e.chunkMode,e.silent)}function Pr(e){return(e.split(`
7
- `).find(e=>e.trim())?.trim()??``).slice(0,100)||new Date().toISOString().slice(0,16)}function Fr(e){return e===D.GuildForum||e===D.GuildMedia}function K(e,t){return{messageId:e.id?String(e.id):`unknown`,channelId:String(e.channel_id??t)}}async function Ir(e,t){let n=t.cfg??l(),{rest:r,request:i}=F(t,n),{channelId:a}=await V(r,await bn(e,t.accountId,n),i);return{rest:r,request:i,channelId:a}}async function Lr(e,t,n={}){let r=n.cfg??l(),i=o({cfg:r,accountId:n.accountId}),a=g({cfg:r,channel:`discord`,accountId:i.accountId}),s=h(r,`discord`,i.accountId),c=typeof i.config.mediaMaxMb==`number`?i.config.mediaMaxMb*1024*1024:8*1024*1024,u=te(t??``,a),d=G(u,{accountId:i.accountId}),{token:f,rest:p,request:m}=F(n,r),{channelId:_}=await V(p,await bn(e,n.accountId,r),m);if(Fr(await wn(p,_))){let e=Pr(u),t=Tn(d,{maxLinesPerMessage:i.config.maxLinesPerMessage,chunkMode:s}),r=t[0]?.trim()?t[0]:e,a=An({text:r,components:Dn({components:n.components,text:r,isFirst:!0}),embeds:kn({embeds:n.embeds,isFirst:!0}),flags:n.silent?4096:void 0}),o;try{o=await m(()=>p.post(O.threads(_),{body:{name:e,message:U(ke(a))}}),`forum-thread`)}catch(e){throw await B(e,{channelId:_,rest:p,token:f,hasMedia:!!n.mediaUrl})}let l=o.id,h=o.message?.id??l,g=o.message?.channel_id??l,v=t.slice(1);try{if(n.mediaUrl){let[e,...t]=v;await Mn(p,l,e??``,n.mediaUrl,n.mediaLocalRoots,c,void 0,m,i.config.maxLinesPerMessage,void 0,void 0,s,n.silent),await Nr({rest:p,threadId:l,chunks:t,request:m,maxLinesPerMessage:i.config.maxLinesPerMessage,chunkMode:s,silent:n.silent})}else await Nr({rest:p,threadId:l,chunks:v,request:m,maxLinesPerMessage:i.config.maxLinesPerMessage,chunkMode:s,silent:n.silent})}catch(e){throw await B(e,{channelId:l,rest:p,token:f,hasMedia:!!n.mediaUrl})}return x({channel:`discord`,accountId:i.accountId,direction:`outbound`}),K({id:h,channel_id:g},_)}let v;try{v=n.mediaUrl?await Mn(p,_,d,n.mediaUrl,n.mediaLocalRoots,c,n.replyTo,m,i.config.maxLinesPerMessage,n.components,n.embeds,s,n.silent):await W(p,_,d,n.replyTo,m,i.config.maxLinesPerMessage,n.components,n.embeds,s,n.silent)}catch(e){throw await B(e,{channelId:_,rest:p,token:f,hasMedia:!!n.mediaUrl})}return x({channel:`discord`,accountId:i.accountId,direction:`outbound`}),K(v,_)}function Rr(e){let t=new URL(`https://discord.com/api/v10/webhooks/${encodeURIComponent(e.webhookId)}/${encodeURIComponent(e.webhookToken)}`);return t.searchParams.set(`wait`,e.wait===!1?`false`:`true`),e.threadId!==void 0&&e.threadId!==null&&e.threadId!==``&&t.searchParams.set(`thread_id`,String(e.threadId)),t.toString()}async function zr(e,t){let n=t.webhookId.trim(),r=t.webhookToken.trim();if(!n||!r)throw Error(`Discord webhook id/token are required`);let i=G(e,{accountId:t.accountId}),a=typeof t.replyTo==`string`?t.replyTo.trim():``,s=a?{message_id:a,fail_if_not_exists:!1}:void 0,c=await fetch(Rr({webhookId:n,webhookToken:r,threadId:t.threadId,wait:t.wait}),{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({content:i,username:t.username?.trim()||void 0,avatar_url:t.avatarUrl?.trim()||void 0,...s?{message_reference:s}:{}})});if(!c.ok){let e=await c.text().catch(()=>``);throw Error(`Discord webhook send failed (${c.status}${e?`: ${e.slice(0,200)}`:``})`)}let u=await c.json().catch(()=>({}));try{x({channel:`discord`,accountId:o({cfg:t.cfg??l(),accountId:t.accountId}).accountId,direction:`outbound`})}catch{}return{messageId:u.id?String(u.id):`unknown`,channelId:u.channel_id?String(u.channel_id):t.threadId?String(t.threadId):``}}async function Br(e,t,n={}){let{rest:r,request:i,channelId:a}=await Ir(e,n),o=n.content?.trim(),s=o?G(o,{accountId:n.accountId}):void 0,c=xn(t);return K(await i(()=>r.post(O.channelMessages(a),{body:{content:s||void 0,sticker_ids:c}}),`sticker`),a)}async function Vr(e,t,n={}){let{rest:r,request:i,channelId:a}=await Ir(e,n),o=n.content?.trim(),s=o?G(o,{accountId:n.accountId}):void 0;if(t.durationSeconds!==void 0)throw Error(`Discord polls do not support durationSeconds; use durationHours`);let c=Sn(t),l=n.silent?H:void 0;return K(await i(()=>r.post(O.channelMessages(a),{body:{content:s||void 0,poll:c,...l?{flags:l}:{}}}),`poll`),a)}async function Hr(e){let i=await _(e,n(`audio`)),a=i.fileName?C.extname(i.fileName):``,o=i.contentType?t(i.contentType):``,s=a||o||`.bin`,c=r(),l=C.join(c,`voice-src-${T.randomUUID()}${s}`);return await w.writeFile(l,i.buffer,{mode:384}),{filePath:l}}async function Ur(e,t,n={}){let{filePath:r}=await Hr(t),i=null,a=!1,s,c,u;try{let t=n.cfg??l(),d=o({cfg:t,accountId:n.accountId}),f=F(n,t);s=f.token,c=f.rest;let p=f.request,m=await bn(e,n.accountId,t);u=(await V(c,m,p)).channelId;let h=await Ar(r);i=h.path,a=h.cleanup;let g=await jr(i),_=await w.readFile(i),v=await Mr(c,u,_,g,n.replyTo,p,n.silent,s);return x({channel:`discord`,accountId:d.accountId,direction:`outbound`}),K(v,u)}catch(e){throw u&&c&&s?await B(e,{channelId:u,rest:c,token:s,hasMedia:!0}):e}finally{await fr(a?i:null),await fr(r)}}const q=new Map,J=new Map;function Wr(e,t){return typeof e.expiresAt==`number`&&e.expiresAt<=t}function Gr(e,t,n){let r=e.createdAt??t,i=e.expiresAt??r+n;return{...e,createdAt:r,expiresAt:i}}function Kr(e){let t=Date.now(),n=e.ttlMs??18e5;for(let r of e.entries){let i=Gr({...r,messageId:e.messageId??r.messageId},t,n);q.set(r.id,i)}for(let r of e.modals){let i=Gr({...r,messageId:e.messageId??r.messageId},t,n);J.set(r.id,i)}}function qr(e){let t=q.get(e.id);return t?Wr(t,Date.now())?(q.delete(e.id),null):(e.consume!==!1&&q.delete(e.id),t):null}function Jr(e){let t=J.get(e.id);return t?Wr(t,Date.now())?(J.delete(e.id),null):(e.consume!==!1&&J.delete(e.id),t):null}const Yr=`attachment://`,Xr=new Map([[`row`,`actions`],[`action-row`,`actions`]]);function Y(e){return`${e}${T.randomBytes(6).toString(`base64url`)}`}function X(e,t){if(!e||typeof e!=`object`||Array.isArray(e))throw Error(`${t} must be an object`);return e}function Z(e,t,n){if(typeof e!=`string`)throw Error(`${t} must be a string`);let r=e.trim();if(!n?.allowEmpty&&!r)throw Error(`${t} cannot be empty`);return n?.allowEmpty?e:r}function Q(e){return typeof e==`string`&&e.trim()||void 0}function Zr(e,t){if(e!==void 0){if(!Array.isArray(e))throw Error(`${t} must be an array`);if(e.length!==0)return e.map((e,n)=>Z(e,`${t}[${n}]`))}}function $(e){if(!(typeof e!=`number`||!Number.isFinite(e)))return e}function Qr(e,t){return e?.trim()||`field_${t+1}`}function $r(e,t){let n=e.trim();if(!n.startsWith(`attachment://`))throw Error(`${t} must start with "${Yr}"`);let r=n.slice(13).trim();if(!r)throw Error(`${t} must include an attachment filename`);return`${Yr}${r}`}function ei(e){let t=e.trim();if(!t.startsWith(`attachment://`))throw Error(`Attachment reference must start with "${Yr}"`);let n=t.slice(13).trim();if(!n)throw Error(`Attachment reference must include a filename`);return n}function ti(e){switch((e??`primary`).toLowerCase()){case`secondary`:return E.Secondary;case`success`:return E.Success;case`danger`:return E.Danger;case`link`:return E.Link;default:return E.Primary}}function ni(e){return e===`paragraph`?oe.Paragraph:oe.Short}function ri(e){let t=e.trim().toLowerCase();return Xr.get(t)??t}function ii(e,t){if(e!==void 0){if(!Array.isArray(e))throw Error(`${t} must be an array`);return e.map((e,n)=>{let r=X(e,`${t}[${n}]`);return{label:Z(r.label,`${t}[${n}].label`),value:Z(r.value,`${t}[${n}].value`),description:Q(r.description),emoji:typeof r.emoji==`object`&&r.emoji&&!Array.isArray(r.emoji)?{name:Z(r.emoji.name,`${t}[${n}].emoji.name`),id:Q(r.emoji.id),animated:typeof r.emoji.animated==`boolean`?r.emoji.animated:void 0}:void 0,default:typeof r.default==`boolean`?r.default:void 0}})}}function ai(e,t){let n=X(e,t),r=Q(n.style),i=Q(n.url);if((r===`link`||i)&&!i)throw Error(`${t}.url is required for link buttons`);return{label:Z(n.label,`${t}.label`),style:r,url:i,emoji:typeof n.emoji==`object`&&n.emoji&&!Array.isArray(n.emoji)?{name:Z(n.emoji.name,`${t}.emoji.name`),id:Q(n.emoji.id),animated:typeof n.emoji.animated==`boolean`?n.emoji.animated:void 0}:void 0,disabled:typeof n.disabled==`boolean`?n.disabled:void 0,allowedUsers:Zr(n.allowedUsers,`${t}.allowedUsers`)}}function oi(e,t){let n=X(e,t),r=Q(n.type),i=[`string`,`user`,`role`,`mentionable`,`channel`];if(r&&!i.includes(r))throw Error(`${t}.type must be one of ${i.join(`, `)}`);return{type:r,placeholder:Q(n.placeholder),minValues:$(n.minValues),maxValues:$(n.maxValues),options:ii(n.options,`${t}.options`)}}function si(e,t,n){let r=X(e,t),i=Z(r.type,`${t}.type`).toLowerCase(),a=[`text`,`checkbox`,`radio`,`select`,`role-select`,`user-select`];if(!a.includes(i))throw Error(`${t}.type must be one of ${a.join(`, `)}`);let o=ii(r.options,`${t}.options`);if([`checkbox`,`radio`,`select`].includes(i)&&(!o||o.length===0))throw Error(`${t}.options is required for ${i} fields`);return{type:i,name:Qr(Q(r.name),n),label:Z(r.label,`${t}.label`),description:Q(r.description),placeholder:Q(r.placeholder),required:typeof r.required==`boolean`?r.required:void 0,options:o,minValues:$(r.minValues),maxValues:$(r.maxValues),minLength:$(r.minLength),maxLength:$(r.maxLength),style:Q(r.style)}}function ci(e,t){let n=X(e,t);switch(ri(Z(n.type,`${t}.type`).toLowerCase())){case`text`:return{type:`text`,text:Z(n.text,`${t}.text`)};case`section`:{let e=Q(n.text),r=n.texts,i=Array.isArray(r)?r.map((e,n)=>Z(e,`${t}.texts[${n}]`)):void 0;if(!e&&(!i||i.length===0))throw Error(`${t}.text or ${t}.texts is required for section blocks`);let a;if(n.accessory!==void 0){let e=X(n.accessory,`${t}.accessory`),r=Z(e.type,`${t}.accessory.type`).toLowerCase();if(r===`thumbnail`)a={type:`thumbnail`,url:Z(e.url,`${t}.accessory.url`)};else if(r===`button`)a={type:`button`,button:ai(e.button,`${t}.accessory.button`)};else throw Error(`${t}.accessory.type must be "thumbnail" or "button"`)}return{type:`section`,text:e,texts:i,accessory:a}}case`separator`:{let e=n.spacing,r;if(e===`small`||e===`large`)r=e;else if(e===1||e===2)r=e;else if(e!==void 0)throw Error(`${t}.spacing must be "small", "large", 1, or 2`);let i=typeof n.divider==`boolean`?n.divider:void 0;return{type:`separator`,spacing:r,divider:i}}case`actions`:{let e=n.buttons,r=Array.isArray(e)?e.map((e,n)=>ai(e,`${t}.buttons[${n}]`)):void 0,i=n.select?oi(n.select,`${t}.select`):void 0;if((!r||r.length===0)&&!i)throw Error(`${t} requires buttons or select`);if(r&&i)throw Error(`${t} cannot include both buttons and select`);return{type:`actions`,buttons:r,select:i}}case`media-gallery`:{let e=n.items;if(!Array.isArray(e)||e.length===0)throw Error(`${t}.items must be a non-empty array`);return{type:`media-gallery`,items:e.map((e,n)=>{let r=X(e,`${t}.items[${n}]`);return{url:Z(r.url,`${t}.items[${n}].url`),description:Q(r.description),spoiler:typeof r.spoiler==`boolean`?r.spoiler:void 0}})}}case`file`:return{type:`file`,file:$r(Z(n.file,`${t}.file`),`${t}.file`),spoiler:typeof n.spoiler==`boolean`?n.spoiler:void 0};default:throw Error(`${t}.type must be a supported component block`)}}function li(e){if(e==null)return null;let t=X(e,`components`),n=t.blocks,r=Array.isArray(n)?n.map((e,t)=>ci(e,`components.blocks[${t}]`)):void 0,i=t.modal,a=typeof t.reusable==`boolean`?t.reusable:void 0,o;if(i!==void 0){let e=X(i,`components.modal`),t=e.fields;if(!Array.isArray(t)||t.length===0)throw Error(`components.modal.fields must be a non-empty array`);if(t.length>5)throw Error(`components.modal.fields supports up to 5 inputs`);let n=t.map((e,t)=>si(e,`components.modal.fields[${t}]`,t));o={title:Z(e.title,`components.modal.title`),triggerLabel:Q(e.triggerLabel),triggerStyle:Q(e.triggerStyle),fields:n}}return{text:Q(t.text),reusable:a,container:typeof t.container==`object`&&t.container&&!Array.isArray(t.container)?{accentColor:t.container.accentColor,spoiler:typeof t.container.spoiler==`boolean`?t.container.spoiler:void 0}:void 0,blocks:r,modal:o}}function ui(e){let t=`occomp:cid=${e.componentId}`;return e.modalId?`${t};mid=${e.modalId}`:t}function di(e){return`ocmodal:mid=${e}`}function fi(e){let t=Oe(e);if(t.key!==`occomp`)return null;let n=t.data.cid;if(typeof n!=`string`||!n.trim())return null;let r=t.data.mid;return{componentId:n,modalId:typeof r==`string`&&r.trim()?r:void 0}}function pi(e){let t=Oe(e);if(t.key!==`ocmodal`)return null;let n=t.data.mid;return typeof n!=`string`||!n.trim()?null:n}function mi(e){return/^__openclaw_discord_component_[a-z_]+_wildcard__$/.test(e)}function hi(e){if(e===`*`||mi(e))return{key:`*`,data:{}};let t=Oe(e);return t.key===`occomp`?{key:`*`,data:t.data}:t}function gi(e){if(e===`*`||mi(e))return{key:`*`,data:{}};let t=Oe(e);return t.key===`ocmodal`?{key:`*`,data:t.data}:t}function _i(e,t){return t&&t.length>0?t.map(e=>new A(e)):e?[new A(e)]:[]}function vi(e){let t=ti(e.spec.style);if(t===E.Link||e.spec.url){if(!e.spec.url)throw Error(`Link buttons require a url`);let t=e.spec.url;class n extends me{constructor(...n){super(...n),this.label=e.spec.label,this.url=t}}return{component:new n}}let n=e.componentId??Y(`btn_`),r=ui({componentId:n,modalId:e.modalId});class i extends se{constructor(...n){super(...n),this.label=e.spec.label,this.customId=r,this.style=t,this.emoji=e.spec.emoji,this.disabled=e.spec.disabled??!1}}return{component:new i,entry:{id:n,kind:e.modalId?`modal-trigger`:`button`,label:e.spec.label,modalId:e.modalId,allowedUsers:e.spec.allowedUsers}}}function yi(e){let t=(e.spec.type??`string`).toLowerCase(),n=e.componentId??Y(`sel_`),r=ui({componentId:n});if(t===`string`){let t=e.spec.options??[];if(t.length===0)throw Error(`String select menus require options`);class i extends we{constructor(...n){super(...n),this.customId=r,this.options=t,this.minValues=e.spec.minValues,this.maxValues=e.spec.maxValues,this.placeholder=e.spec.placeholder,this.disabled=!1}}return{component:new i,entry:{id:n,kind:`select`,label:e.spec.placeholder??`select`,selectType:`string`,options:t.map(e=>({value:e.value,label:e.label}))}}}if(t===`user`){class t extends De{constructor(...t){super(...t),this.customId=r,this.minValues=e.spec.minValues,this.maxValues=e.spec.maxValues,this.placeholder=e.spec.placeholder,this.disabled=!1}}return{component:new t,entry:{id:n,kind:`select`,label:e.spec.placeholder??`user select`,selectType:`user`}}}if(t===`role`){class t extends xe{constructor(...t){super(...t),this.customId=r,this.minValues=e.spec.minValues,this.maxValues=e.spec.maxValues,this.placeholder=e.spec.placeholder,this.disabled=!1}}return{component:new t,entry:{id:n,kind:`select`,label:e.spec.placeholder??`role select`,selectType:`role`}}}if(t===`mentionable`){class t extends ge{constructor(...t){super(...t),this.customId=r,this.minValues=e.spec.minValues,this.maxValues=e.spec.maxValues,this.placeholder=e.spec.placeholder,this.disabled=!1}}return{component:new t,entry:{id:n,kind:`select`,label:e.spec.placeholder??`mentionable select`,selectType:`mentionable`}}}class i extends ce{constructor(...t){super(...t),this.customId=r,this.minValues=e.spec.minValues,this.maxValues=e.spec.maxValues,this.placeholder=e.spec.placeholder,this.disabled=!1}}return{component:new i,entry:{id:n,kind:`select`,label:e.spec.placeholder??`channel select`,selectType:`channel`}}}function bi(e){return e instanceof we||e instanceof De||e instanceof xe||e instanceof ge||e instanceof ce}function xi(e){if(e.type===`text`){class t extends Te{constructor(...t){super(...t),this.customId=e.id,this.style=ni(e.style),this.placeholder=e.placeholder,this.required=e.required,this.minLength=e.minLength,this.maxLength=e.maxLength}}return new t}if(e.type===`select`){let t=e.options??[];class n extends we{constructor(...n){super(...n),this.customId=e.id,this.options=t,this.required=e.required,this.minValues=e.minValues,this.maxValues=e.maxValues,this.placeholder=e.placeholder}}return new n}if(e.type===`role-select`){class t extends xe{constructor(...t){super(...t),this.customId=e.id,this.required=e.required,this.minValues=e.minValues,this.maxValues=e.maxValues,this.placeholder=e.placeholder}}return new t}if(e.type===`user-select`){class t extends De{constructor(...t){super(...t),this.customId=e.id,this.required=e.required,this.minValues=e.minValues,this.maxValues=e.maxValues,this.placeholder=e.placeholder}}return new t}if(e.type===`checkbox`){let t=e.options??[];class n extends le{constructor(...n){super(...n),this.customId=e.id,this.options=t,this.required=e.required,this.minValues=e.minValues,this.maxValues=e.maxValues}}return new n}let t=e.options??[];class n extends ve{constructor(...n){super(...n),this.customId=e.id,this.options=t,this.required=e.required,this.minValues=e.minValues,this.maxValues=e.maxValues}}return new n}function Si(e){let t=[],n=[],r=[],i=[],a=n=>{t.push({...n,sessionKey:e.sessionKey,agentId:e.agentId,accountId:e.accountId,reusable:n.reusable??e.spec.reusable})},o=e.spec.text??e.fallbackText;o&&i.push(new A(o));for(let t of e.spec.blocks??[]){if(t.type===`text`){i.push(new A(t.text));continue}if(t.type===`section`){let e=_i(t.text,t.texts);if(e.length>3)throw Error(`Section blocks support up to 3 text displays`);let n;if(t.accessory?.type===`thumbnail`)n=new Ee(t.accessory.url);else if(t.accessory?.type===`button`){let{component:e,entry:r}=vi({spec:t.accessory.button});n=e,r&&a(r)}i.push(new Se(e,n));continue}if(t.type===`separator`){i.push(new Ce({spacing:t.spacing,divider:t.divider}));continue}if(t.type===`media-gallery`){i.push(new he(t.items));continue}if(t.type===`file`){i.push(new fe(t.file,t.spoiler));continue}if(t.type===`actions`){let e=[];if(t.buttons){if(t.buttons.length>5)throw Error(`Action rows support up to 5 buttons`);for(let n of t.buttons){let{component:t,entry:r}=vi({spec:n});e.push(t),r&&a(r)}}else if(t.select){let{component:n,entry:r}=yi({spec:t.select});e.push(n),a(r)}i.push(new k(e))}}if(e.spec.modal){let t=Y(`mdl_`),r=e.spec.modal.fields.map((e,t)=>({id:Y(`fld_`),name:Qr(e.name,t),label:e.label,type:e.type,description:e.description,placeholder:e.placeholder,required:e.required,options:e.options,minValues:e.minValues,maxValues:e.maxValues,minLength:e.minLength,maxLength:e.maxLength,style:e.style}));n.push({id:t,title:e.spec.modal.title,fields:r,sessionKey:e.sessionKey,agentId:e.agentId,accountId:e.accountId,reusable:e.spec.reusable});let{component:o,entry:s}=vi({spec:{label:e.spec.modal.triggerLabel??`Open form`,style:e.spec.modal.triggerStyle??`primary`},modalId:t});s&&a(s);let c=i.at(-1);if(c instanceof k){let e=c,t=e.components.some(e=>bi(e));e.components.length<5&&!t?e.addComponent(o):i.push(new k([o]))}else i.push(new k([o]))}if(i.length===0)throw Error(`components must include at least one block, text, or modal trigger`);let s=new ue(i,e.spec.container);return r.push(s),{components:r,entries:t,modals:n}}function Ci(e){return e.some(e=>e.isV2)?ie.IsComponentsV2:void 0}var wi=class extends _e{constructor(e){super(),this.customIdParser=gi,this.title=e.title,this.customId=di(e.modalId),this.components=e.fields.map(e=>{let t=xi(e);class n extends pe{constructor(...n){super(...n),this.label=e.label,this.description=e.description,this.component=t,this.customId=e.id}}return new n(t)})}async run(){throw Error(`Modal handler is not registered for dynamic forms`)}};function Ti(e){return new wi({modalId:e.id,title:e.title,fields:e.fields})}function Ei(e){if(e.kind===`button`)return`Clicked "${e.label}".`;let t=e.values??[];return t.length===0?`Updated "${e.label}".`:`Selected ${t.join(`, `)} from "${e.label}".`}const Di=new Set([D.GuildForum,D.GuildMedia]);function Oi(e){let t=[];for(let n of e.blocks??[])n.type===`file`&&t.push(ei(n.file));return t}async function ki(e,t,n={}){let r=n.cfg??l(),i=o({cfg:r,accountId:n.accountId}),{token:a,rest:s,request:c}=F(n,r),{channelId:u}=await V(s,await bn(e,n.accountId,r),c),d=await wn(s,u);if(d&&Di.has(d))throw Error(`Discord components are not supported in forum-style channels`);let f=Si({spec:t,sessionKey:n.sessionKey,agentId:n.agentId,accountId:i.accountId}),m=Ci(f.components),h=n.silent?(m??0)|H:m??void 0,g=n.replyTo?{message_id:n.replyTo,fail_if_not_exists:!1}:void 0,_=Oi(t),v=[...new Set(_)];if(v.length>1)throw Error(`Discord component attachments currently support a single file. Use media-gallery for multiple files.`);let y=v[0],b;if(n.mediaUrl){let e=await p(n.mediaUrl,{localRoots:n.mediaLocalRoots}),t=n.filename?.trim()||e.fileName||`upload`;if(y&&y!==t)throw Error(`Component file block expects attachment "${y}", but the uploaded file is "${t}". Update components.blocks[].file or provide a matching filename.`);b=[{data:jn(e.buffer),name:t}]}else if(y)throw Error(`Discord component file blocks require a media attachment (media/path/filePath).`);let ee=U({...ke({components:f.components,...h?{flags:h}:{},...b?{files:b}:{}}),...g?{message_reference:g}:{}}),S;try{S=await c(()=>s.post(O.channelMessages(u),{body:ee}),`components`)}catch(e){throw await B(e,{channelId:u,rest:s,token:a,hasMedia:!!b?.length})}return Kr({entries:f.entries,modals:f.modals,messageId:S.id}),x({channel:`discord`,accountId:i.accountId,direction:`outbound`}),{messageId:S.id??`unknown`,channelId:S.channel_id??u}}async function Ai(e,t,n,r={}){let{rest:i,request:a}=F(r,r.cfg??l()),o=yn(n);return await a(()=>i.put(O.channelMessageOwnReaction(e,t,o)),`react`),{ok:!0}}async function ji(e,t,n,r={}){let{rest:i}=F(r,r.cfg??l()),a=yn(n);return await i.delete(O.channelMessageOwnReaction(e,t,a)),{ok:!0}}async function Mi(e,t,n={}){let{rest:r}=F(n,n.cfg??l()),i=await r.get(O.channelMessage(e,t)),a=new Set;for(let e of i.reactions??[]){let t=Nn(e.emoji);t&&a.add(t)}if(a.size===0)return{ok:!0,removed:[]};let o=[];return await Promise.allSettled(Array.from(a,n=>(o.push(n),r.delete(O.channelMessageOwnReaction(e,t,yn(n)))))),{ok:!0,removed:o}}async function Ni(e,t,n={}){let{rest:r}=F(n,n.cfg??l()),i=(await r.get(O.channelMessage(e,t))).reactions??[];if(i.length===0)return[];let a=typeof n.limit==`number`&&Number.isFinite(n.limit)?Math.min(Math.max(Math.floor(n.limit),1),100):100,o=[];for(let n of i){let i=Nn(n.emoji);if(!i)continue;let s=encodeURIComponent(i),c=await r.get(O.channelMessageReaction(e,t,s),{limit:a});o.push({emoji:{id:n.emoji.id??null,name:n.emoji.name??null,raw:Pn(n.emoji)},count:n.count,users:c.map(e=>({id:e.id,username:e.username,tag:e.username&&e.discriminator?`${e.username}#${e.discriminator}`:e.username}))})}return o}export{U as $,sr as A,Ge as At,Zn as B,Le as Bt,ir as C,et as Ct,or as D,Ke as Dt,ur as E,M as Et,Wn as F,We as Ft,Un as G,$n as H,Gn as I,je as It,In as J,Fn as K,Xn as L,Pe as Lt,tr as M,He as Mt,Qn as N,ze as Nt,nr as O,qe as Ot,Jn as P,Ve as Pt,W as Q,er as R,Ne as Rt,ar as S,nt as St,cr as T,j as Tt,Vn as U,qn as V,Hn as W,Bn as X,Rn as Y,zn as Z,Br as _,dt as _t,ki as a,Yt as at,_r as b,Ct as bt,fi as c,Mt as ct,gi as d,P as dt,R as et,li as f,ot as ft,Vr as g,ft as gt,Lr as h,ut as ht,ji as i,Xt as it,Kn as j,Be as jt,dr as k,Je as kt,hi as l,xt as lt,Jr as m,pt as mt,Ai as n,fn as nt,Ti as o,F as ot,qr as p,vt as pt,Ln as q,Mi as r,pn as rt,Ei as s,Lt as st,Ni as t,mn as tt,pi as u,N as ut,Ur as v,yt as vt,rr as w,rt as wt,lr as x,tt as xt,zr as y,St as yt,Yn as z,Ie as zt};
7
+ `).find(e=>e.trim())?.trim()??``).slice(0,100)||new Date().toISOString().slice(0,16)}function Fr(e){return e===D.GuildForum||e===D.GuildMedia}function K(e,t){return{messageId:e.id?String(e.id):`unknown`,channelId:String(e.channel_id??t)}}async function Ir(e,t){let n=t.cfg??l(),{rest:r,request:i}=F(t,n),{channelId:a}=await V(r,await bn(e,t.accountId,n),i);return{rest:r,request:i,channelId:a}}async function Lr(e,t,n={}){let r=n.cfg??l(),i=o({cfg:r,accountId:n.accountId}),a=g({cfg:r,channel:`discord`,accountId:i.accountId}),s=h(r,`discord`,i.accountId),c=typeof i.config.mediaMaxMb==`number`?i.config.mediaMaxMb*1024*1024:8*1024*1024,u=te(t??``,a),d=G(u,{accountId:i.accountId}),{token:f,rest:p,request:m}=F(n,r),{channelId:_}=await V(p,await bn(e,n.accountId,r),m);if(Fr(await wn(p,_))){let e=Pr(u),t=Tn(d,{maxLinesPerMessage:i.config.maxLinesPerMessage,chunkMode:s}),r=t[0]?.trim()?t[0]:e,a=An({text:r,components:Dn({components:n.components,text:r,isFirst:!0}),embeds:kn({embeds:n.embeds,isFirst:!0}),flags:n.silent?4096:void 0}),o;try{o=await m(()=>p.post(O.threads(_),{body:{name:e,message:U(ke(a))}}),`forum-thread`)}catch(e){throw await B(e,{channelId:_,rest:p,token:f,hasMedia:!!n.mediaUrl})}let l=o.id,h=o.message?.id??l,g=o.message?.channel_id??l,v=t.slice(1);try{if(n.mediaUrl){let[e,...t]=v;await Mn(p,l,e??``,n.mediaUrl,n.mediaLocalRoots,c,void 0,m,i.config.maxLinesPerMessage,void 0,void 0,s,n.silent),await Nr({rest:p,threadId:l,chunks:t,request:m,maxLinesPerMessage:i.config.maxLinesPerMessage,chunkMode:s,silent:n.silent})}else await Nr({rest:p,threadId:l,chunks:v,request:m,maxLinesPerMessage:i.config.maxLinesPerMessage,chunkMode:s,silent:n.silent})}catch(e){throw await B(e,{channelId:l,rest:p,token:f,hasMedia:!!n.mediaUrl})}return x({channel:`discord`,accountId:i.accountId,direction:`outbound`}),K({id:h,channel_id:g},_)}let v;try{v=n.mediaUrl?await Mn(p,_,d,n.mediaUrl,n.mediaLocalRoots,c,n.replyTo,m,i.config.maxLinesPerMessage,n.components,n.embeds,s,n.silent):await W(p,_,d,n.replyTo,m,i.config.maxLinesPerMessage,n.components,n.embeds,s,n.silent)}catch(e){throw await B(e,{channelId:_,rest:p,token:f,hasMedia:!!n.mediaUrl})}return x({channel:`discord`,accountId:i.accountId,direction:`outbound`}),K(v,_)}function Rr(e){let t=new URL(`https://discord.com/api/v10/webhooks/${encodeURIComponent(e.webhookId)}/${encodeURIComponent(e.webhookToken)}`);return t.searchParams.set(`wait`,e.wait===!1?`false`:`true`),e.threadId!==void 0&&e.threadId!==null&&e.threadId!==``&&t.searchParams.set(`thread_id`,String(e.threadId)),t.toString()}async function zr(e,t){let n=t.webhookId.trim(),r=t.webhookToken.trim();if(!n||!r)throw Error(`Discord webhook id/token are required`);let i=G(e,{accountId:t.accountId}),a=typeof t.replyTo==`string`?t.replyTo.trim():``,s=a?{message_id:a,fail_if_not_exists:!1}:void 0,c=await fetch(Rr({webhookId:n,webhookToken:r,threadId:t.threadId,wait:t.wait}),{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({content:i,username:t.username?.trim()||void 0,avatar_url:t.avatarUrl?.trim()||void 0,...s?{message_reference:s}:{}})});if(!c.ok){let e=await c.text().catch(()=>``);throw Error(`Discord webhook send failed (${c.status}${e?`: ${e.slice(0,200)}`:``})`)}let u=await c.json().catch(()=>({}));try{x({channel:`discord`,accountId:o({cfg:t.cfg??l(),accountId:t.accountId}).accountId,direction:`outbound`})}catch{}return{messageId:u.id?String(u.id):`unknown`,channelId:u.channel_id?String(u.channel_id):t.threadId?String(t.threadId):``}}async function Br(e,t,n={}){let{rest:r,request:i,channelId:a}=await Ir(e,n),o=n.content?.trim(),s=o?G(o,{accountId:n.accountId}):void 0,c=xn(t);return K(await i(()=>r.post(O.channelMessages(a),{body:{content:s||void 0,sticker_ids:c}}),`sticker`),a)}async function Vr(e,t,n={}){let{rest:r,request:i,channelId:a}=await Ir(e,n),o=n.content?.trim(),s=o?G(o,{accountId:n.accountId}):void 0;if(t.durationSeconds!==void 0)throw Error(`Discord polls do not support durationSeconds; use durationHours`);let c=Sn(t),l=n.silent?H:void 0;return K(await i(()=>r.post(O.channelMessages(a),{body:{content:s||void 0,poll:c,...l?{flags:l}:{}}}),`poll`),a)}async function Hr(e){let i=await _(e,n(`audio`)),a=i.fileName?C.extname(i.fileName):``,o=i.contentType?t(i.contentType):``,s=a||o||`.bin`,c=r(),l=C.join(c,`voice-src-${T.randomUUID()}${s}`);return await w.writeFile(l,i.buffer,{mode:384}),{filePath:l}}async function Ur(e,t,n={}){let{filePath:r}=await Hr(t),i=null,a=!1,s,c,u;try{let t=n.cfg??l(),d=o({cfg:t,accountId:n.accountId}),f=F(n,t);s=f.token,c=f.rest;let p=f.request,m=await bn(e,n.accountId,t);u=(await V(c,m,p)).channelId;let h=await Ar(r);i=h.path,a=h.cleanup;let g=await jr(i),_=await w.readFile(i),v=await Mr(c,u,_,g,n.replyTo,p,n.silent,s);return x({channel:`discord`,accountId:d.accountId,direction:`outbound`}),K(v,u)}catch(e){throw u&&c&&s?await B(e,{channelId:u,rest:c,token:s,hasMedia:!0}):e}finally{await fr(a?i:null),await fr(r)}}const q=new Map,J=new Map;function Wr(e,t){return typeof e.expiresAt==`number`&&e.expiresAt<=t}function Gr(e,t,n){let r=e.createdAt??t,i=e.expiresAt??r+n;return{...e,createdAt:r,expiresAt:i}}function Kr(e){let t=Date.now(),n=e.ttlMs??18e5;for(let r of e.entries){let i=Gr({...r,messageId:e.messageId??r.messageId},t,n);q.set(r.id,i)}for(let r of e.modals){let i=Gr({...r,messageId:e.messageId??r.messageId},t,n);J.set(r.id,i)}}function qr(e){let t=q.get(e.id);return t?Wr(t,Date.now())?(q.delete(e.id),null):(e.consume!==!1&&q.delete(e.id),t):null}function Jr(e){let t=J.get(e.id);return t?Wr(t,Date.now())?(J.delete(e.id),null):(e.consume!==!1&&J.delete(e.id),t):null}const Yr=`attachment://`,Xr=new Map([[`row`,`actions`],[`action-row`,`actions`]]);function Y(e){return`${e}${T.randomBytes(6).toString(`base64url`)}`}function X(e,t){if(!e||typeof e!=`object`||Array.isArray(e))throw Error(`${t} must be an object`);return e}function Z(e,t,n){if(typeof e!=`string`)throw Error(`${t} must be a string`);let r=e.trim();if(!n?.allowEmpty&&!r)throw Error(`${t} cannot be empty`);return n?.allowEmpty?e:r}function Q(e){return typeof e==`string`&&e.trim()||void 0}function Zr(e,t){if(e!==void 0){if(!Array.isArray(e))throw Error(`${t} must be an array`);if(e.length!==0)return e.map((e,n)=>Z(e,`${t}[${n}]`))}}function $(e){if(!(typeof e!=`number`||!Number.isFinite(e)))return e}function Qr(e,t){return e?.trim()||`field_${t+1}`}function $r(e,t){let n=e.trim();if(!n.startsWith(`attachment://`))throw Error(`${t} must start with "${Yr}"`);let r=n.slice(13).trim();if(!r)throw Error(`${t} must include an attachment filename`);return`${Yr}${r}`}function ei(e){let t=e.trim();if(!t.startsWith(`attachment://`))throw Error(`Attachment reference must start with "${Yr}"`);let n=t.slice(13).trim();if(!n)throw Error(`Attachment reference must include a filename`);return n}function ti(e){switch((e??`primary`).toLowerCase()){case`secondary`:return E.Secondary;case`success`:return E.Success;case`danger`:return E.Danger;case`link`:return E.Link;default:return E.Primary}}function ni(e){return e===`paragraph`?oe.Paragraph:oe.Short}function ri(e){let t=e.trim().toLowerCase();return Xr.get(t)??t}function ii(e,t){if(e!==void 0){if(!Array.isArray(e))throw Error(`${t} must be an array`);return e.map((e,n)=>{let r=X(e,`${t}[${n}]`);return{label:Z(r.label,`${t}[${n}].label`),value:Z(r.value,`${t}[${n}].value`),description:Q(r.description),emoji:typeof r.emoji==`object`&&r.emoji&&!Array.isArray(r.emoji)?{name:Z(r.emoji.name,`${t}[${n}].emoji.name`),id:Q(r.emoji.id),animated:typeof r.emoji.animated==`boolean`?r.emoji.animated:void 0}:void 0,default:typeof r.default==`boolean`?r.default:void 0}})}}function ai(e,t){let n=X(e,t),r=Q(n.style),i=Q(n.url);if((r===`link`||i)&&!i)throw Error(`${t}.url is required for link buttons`);return{label:Z(n.label,`${t}.label`),style:r,url:i,emoji:typeof n.emoji==`object`&&n.emoji&&!Array.isArray(n.emoji)?{name:Z(n.emoji.name,`${t}.emoji.name`),id:Q(n.emoji.id),animated:typeof n.emoji.animated==`boolean`?n.emoji.animated:void 0}:void 0,disabled:typeof n.disabled==`boolean`?n.disabled:void 0,allowedUsers:Zr(n.allowedUsers,`${t}.allowedUsers`)}}function oi(e,t){let n=X(e,t),r=Q(n.type),i=[`string`,`user`,`role`,`mentionable`,`channel`];if(r&&!i.includes(r))throw Error(`${t}.type must be one of ${i.join(`, `)}`);return{type:r,placeholder:Q(n.placeholder),minValues:$(n.minValues),maxValues:$(n.maxValues),options:ii(n.options,`${t}.options`)}}function si(e,t,n){let r=X(e,t),i=Z(r.type,`${t}.type`).toLowerCase(),a=[`text`,`checkbox`,`radio`,`select`,`role-select`,`user-select`];if(!a.includes(i))throw Error(`${t}.type must be one of ${a.join(`, `)}`);let o=ii(r.options,`${t}.options`);if([`checkbox`,`radio`,`select`].includes(i)&&(!o||o.length===0))throw Error(`${t}.options is required for ${i} fields`);return{type:i,name:Qr(Q(r.name),n),label:Z(r.label,`${t}.label`),description:Q(r.description),placeholder:Q(r.placeholder),required:typeof r.required==`boolean`?r.required:void 0,options:o,minValues:$(r.minValues),maxValues:$(r.maxValues),minLength:$(r.minLength),maxLength:$(r.maxLength),style:Q(r.style)}}function ci(e,t){let n=X(e,t);switch(ri(Z(n.type,`${t}.type`).toLowerCase())){case`text`:return{type:`text`,text:Z(n.text,`${t}.text`)};case`section`:{let e=Q(n.text),r=n.texts,i=Array.isArray(r)?r.map((e,n)=>Z(e,`${t}.texts[${n}]`)):void 0;if(!e&&(!i||i.length===0))throw Error(`${t}.text or ${t}.texts is required for section blocks`);let a;if(n.accessory!==void 0){let e=X(n.accessory,`${t}.accessory`),r=Z(e.type,`${t}.accessory.type`).toLowerCase();if(r===`thumbnail`)a={type:`thumbnail`,url:Z(e.url,`${t}.accessory.url`)};else if(r===`button`)a={type:`button`,button:ai(e.button,`${t}.accessory.button`)};else throw Error(`${t}.accessory.type must be "thumbnail" or "button"`)}return{type:`section`,text:e,texts:i,accessory:a}}case`separator`:{let e=n.spacing,r;if(e===`small`||e===`large`)r=e;else if(e===1||e===2)r=e;else if(e!==void 0)throw Error(`${t}.spacing must be "small", "large", 1, or 2`);let i=typeof n.divider==`boolean`?n.divider:void 0;return{type:`separator`,spacing:r,divider:i}}case`actions`:{let e=n.buttons,r=Array.isArray(e)?e.map((e,n)=>ai(e,`${t}.buttons[${n}]`)):void 0,i=n.select?oi(n.select,`${t}.select`):void 0;if((!r||r.length===0)&&!i)throw Error(`${t} requires buttons or select`);if(r&&i)throw Error(`${t} cannot include both buttons and select`);return{type:`actions`,buttons:r,select:i}}case`media-gallery`:{let e=n.items;if(!Array.isArray(e)||e.length===0)throw Error(`${t}.items must be a non-empty array`);return{type:`media-gallery`,items:e.map((e,n)=>{let r=X(e,`${t}.items[${n}]`);return{url:Z(r.url,`${t}.items[${n}].url`),description:Q(r.description),spoiler:typeof r.spoiler==`boolean`?r.spoiler:void 0}})}}case`file`:return{type:`file`,file:$r(Z(n.file,`${t}.file`),`${t}.file`),spoiler:typeof n.spoiler==`boolean`?n.spoiler:void 0};default:throw Error(`${t}.type must be a supported component block`)}}function li(e){if(e==null)return null;let t=X(e,`components`),n=t.blocks,r=Array.isArray(n)?n.map((e,t)=>ci(e,`components.blocks[${t}]`)):void 0,i=t.modal,a=typeof t.reusable==`boolean`?t.reusable:void 0,o;if(i!==void 0){let e=X(i,`components.modal`),t=e.fields;if(!Array.isArray(t)||t.length===0)throw Error(`components.modal.fields must be a non-empty array`);if(t.length>5)throw Error(`components.modal.fields supports up to 5 inputs`);let n=t.map((e,t)=>si(e,`components.modal.fields[${t}]`,t));o={title:Z(e.title,`components.modal.title`),triggerLabel:Q(e.triggerLabel),triggerStyle:Q(e.triggerStyle),fields:n}}return{text:Q(t.text),reusable:a,container:typeof t.container==`object`&&t.container&&!Array.isArray(t.container)?{accentColor:t.container.accentColor,spoiler:typeof t.container.spoiler==`boolean`?t.container.spoiler:void 0}:void 0,blocks:r,modal:o}}function ui(e){let t=`occomp:cid=${e.componentId}`;return e.modalId?`${t};mid=${e.modalId}`:t}function di(e){return`ocmodal:mid=${e}`}function fi(e){let t=Oe(e);if(t.key!==`occomp`)return null;let n=t.data.cid;if(typeof n!=`string`||!n.trim())return null;let r=t.data.mid;return{componentId:n,modalId:typeof r==`string`&&r.trim()?r:void 0}}function pi(e){let t=Oe(e);if(t.key!==`ocmodal`)return null;let n=t.data.mid;return typeof n!=`string`||!n.trim()?null:n}function mi(e){return/^__openclaw_discord_component_[a-z_]+_wildcard__$/.test(e)}function hi(e){if(e===`*`||mi(e))return{key:`*`,data:{}};let t=Oe(e);return t.key===`occomp`?{key:`*`,data:t.data}:t}function gi(e){if(e===`*`||mi(e))return{key:`*`,data:{}};let t=Oe(e);return t.key===`ocmodal`?{key:`*`,data:t.data}:t}function _i(e,t){return t&&t.length>0?t.map(e=>new A(e)):e?[new A(e)]:[]}function vi(e){let t=ti(e.spec.style);if(t===E.Link||e.spec.url){if(!e.spec.url)throw Error(`Link buttons require a url`);let t=e.spec.url;class n extends me{constructor(...n){super(...n),this.label=e.spec.label,this.url=t}}return{component:new n}}let n=e.componentId??Y(`btn_`),r=ui({componentId:n,modalId:e.modalId});class i extends se{constructor(...n){super(...n),this.label=e.spec.label,this.customId=r,this.style=t,this.emoji=e.spec.emoji,this.disabled=e.spec.disabled??!1}}return{component:new i,entry:{id:n,kind:e.modalId?`modal-trigger`:`button`,label:e.spec.label,modalId:e.modalId,allowedUsers:e.spec.allowedUsers}}}function yi(e){let t=(e.spec.type??`string`).toLowerCase(),n=e.componentId??Y(`sel_`),r=ui({componentId:n});if(t===`string`){let t=e.spec.options??[];if(t.length===0)throw Error(`String select menus require options`);class i extends we{constructor(...n){super(...n),this.customId=r,this.options=t,this.minValues=e.spec.minValues,this.maxValues=e.spec.maxValues,this.placeholder=e.spec.placeholder,this.disabled=!1}}return{component:new i,entry:{id:n,kind:`select`,label:e.spec.placeholder??`select`,selectType:`string`,options:t.map(e=>({value:e.value,label:e.label}))}}}if(t===`user`){class t extends De{constructor(...t){super(...t),this.customId=r,this.minValues=e.spec.minValues,this.maxValues=e.spec.maxValues,this.placeholder=e.spec.placeholder,this.disabled=!1}}return{component:new t,entry:{id:n,kind:`select`,label:e.spec.placeholder??`user select`,selectType:`user`}}}if(t===`role`){class t extends xe{constructor(...t){super(...t),this.customId=r,this.minValues=e.spec.minValues,this.maxValues=e.spec.maxValues,this.placeholder=e.spec.placeholder,this.disabled=!1}}return{component:new t,entry:{id:n,kind:`select`,label:e.spec.placeholder??`role select`,selectType:`role`}}}if(t===`mentionable`){class t extends ge{constructor(...t){super(...t),this.customId=r,this.minValues=e.spec.minValues,this.maxValues=e.spec.maxValues,this.placeholder=e.spec.placeholder,this.disabled=!1}}return{component:new t,entry:{id:n,kind:`select`,label:e.spec.placeholder??`mentionable select`,selectType:`mentionable`}}}class i extends ce{constructor(...t){super(...t),this.customId=r,this.minValues=e.spec.minValues,this.maxValues=e.spec.maxValues,this.placeholder=e.spec.placeholder,this.disabled=!1}}return{component:new i,entry:{id:n,kind:`select`,label:e.spec.placeholder??`channel select`,selectType:`channel`}}}function bi(e){return e instanceof we||e instanceof De||e instanceof xe||e instanceof ge||e instanceof ce}function xi(e){if(e.type===`text`){class t extends Te{constructor(...t){super(...t),this.customId=e.id,this.style=ni(e.style),this.placeholder=e.placeholder,this.required=e.required,this.minLength=e.minLength,this.maxLength=e.maxLength}}return new t}if(e.type===`select`){let t=e.options??[];class n extends we{constructor(...n){super(...n),this.customId=e.id,this.options=t,this.required=e.required,this.minValues=e.minValues,this.maxValues=e.maxValues,this.placeholder=e.placeholder}}return new n}if(e.type===`role-select`){class t extends xe{constructor(...t){super(...t),this.customId=e.id,this.required=e.required,this.minValues=e.minValues,this.maxValues=e.maxValues,this.placeholder=e.placeholder}}return new t}if(e.type===`user-select`){class t extends De{constructor(...t){super(...t),this.customId=e.id,this.required=e.required,this.minValues=e.minValues,this.maxValues=e.maxValues,this.placeholder=e.placeholder}}return new t}if(e.type===`checkbox`){let t=e.options??[];class n extends le{constructor(...n){super(...n),this.customId=e.id,this.options=t,this.required=e.required,this.minValues=e.minValues,this.maxValues=e.maxValues}}return new n}let t=e.options??[];class n extends ve{constructor(...n){super(...n),this.customId=e.id,this.options=t,this.required=e.required,this.minValues=e.minValues,this.maxValues=e.maxValues}}return new n}function Si(e){let t=[],n=[],r=[],i=[],a=n=>{t.push({...n,sessionKey:e.sessionKey,agentId:e.agentId,accountId:e.accountId,reusable:n.reusable??e.spec.reusable})},o=e.spec.text??e.fallbackText;o&&i.push(new A(o));for(let t of e.spec.blocks??[]){if(t.type===`text`){i.push(new A(t.text));continue}if(t.type===`section`){let e=_i(t.text,t.texts);if(e.length>3)throw Error(`Section blocks support up to 3 text displays`);let n;if(t.accessory?.type===`thumbnail`)n=new Ee(t.accessory.url);else if(t.accessory?.type===`button`){let{component:e,entry:r}=vi({spec:t.accessory.button});n=e,r&&a(r)}i.push(new Se(e,n));continue}if(t.type===`separator`){i.push(new Ce({spacing:t.spacing,divider:t.divider}));continue}if(t.type===`media-gallery`){i.push(new he(t.items));continue}if(t.type===`file`){i.push(new fe(t.file,t.spoiler));continue}if(t.type===`actions`){let e=[];if(t.buttons){if(t.buttons.length>5)throw Error(`Action rows support up to 5 buttons`);for(let n of t.buttons){let{component:t,entry:r}=vi({spec:n});e.push(t),r&&a(r)}}else if(t.select){let{component:n,entry:r}=yi({spec:t.select});e.push(n),a(r)}i.push(new k(e))}}if(e.spec.modal){let t=Y(`mdl_`),r=e.spec.modal.fields.map((e,t)=>({id:Y(`fld_`),name:Qr(e.name,t),label:e.label,type:e.type,description:e.description,placeholder:e.placeholder,required:e.required,options:e.options,minValues:e.minValues,maxValues:e.maxValues,minLength:e.minLength,maxLength:e.maxLength,style:e.style}));n.push({id:t,title:e.spec.modal.title,fields:r,sessionKey:e.sessionKey,agentId:e.agentId,accountId:e.accountId,reusable:e.spec.reusable});let{component:o,entry:s}=vi({spec:{label:e.spec.modal.triggerLabel??`Open form`,style:e.spec.modal.triggerStyle??`primary`},modalId:t});s&&a(s);let c=i.at(-1);if(c instanceof k){let e=c,t=e.components.some(e=>bi(e));e.components.length<5&&!t?e.addComponent(o):i.push(new k([o]))}else i.push(new k([o]))}if(i.length===0)throw Error(`components must include at least one block, text, or modal trigger`);let s=new ue(i,e.spec.container);return r.push(s),{components:r,entries:t,modals:n}}function Ci(e){return e.some(e=>e.isV2)?ie.IsComponentsV2:void 0}var wi=class extends _e{constructor(e){super(),this.customIdParser=gi,this.title=e.title,this.customId=di(e.modalId),this.components=e.fields.map(e=>{let t=xi(e);class n extends pe{constructor(...n){super(...n),this.label=e.label,this.description=e.description,this.component=t,this.customId=e.id}}return new n(t)})}async run(){throw Error(`Modal handler is not registered for dynamic forms`)}};function Ti(e){return new wi({modalId:e.id,title:e.title,fields:e.fields})}function Ei(e){if(e.kind===`button`)return`Clicked "${e.label}".`;let t=e.values??[];return t.length===0?`Updated "${e.label}".`:`Selected ${t.join(`, `)} from "${e.label}".`}const Di=new Set([D.GuildForum,D.GuildMedia]);function Oi(e){let t=[];for(let n of e.blocks??[])n.type===`file`&&t.push(ei(n.file));return t}async function ki(e,t,n={}){let r=n.cfg??l(),i=o({cfg:r,accountId:n.accountId}),{token:a,rest:s,request:c}=F(n,r),{channelId:u}=await V(s,await bn(e,n.accountId,r),c),d=await wn(s,u);if(d&&Di.has(d))throw Error(`Discord components are not supported in forum-style channels`);let f=Si({spec:t,sessionKey:n.sessionKey,agentId:n.agentId,accountId:i.accountId}),m=Ci(f.components),h=n.silent?(m??0)|H:m??void 0,g=n.replyTo?{message_id:n.replyTo,fail_if_not_exists:!1}:void 0,_=Oi(t),v=[...new Set(_)];if(v.length>1)throw Error(`Discord component attachments currently support a single file. Use media-gallery for multiple files.`);let y=v[0],b;if(n.mediaUrl){let e=await p(n.mediaUrl,{localRoots:n.mediaLocalRoots}),t=n.filename?.trim()||e.fileName||`upload`;if(y&&y!==t)throw Error(`Component file block expects attachment "${y}", but the uploaded file is "${t}". Update components.blocks[].file or provide a matching filename.`);b=[{data:jn(e.buffer),name:t}]}else if(y)throw Error(`Discord component file blocks require a media attachment (media/path/filePath).`);let ee=U({...ke({components:f.components,...h?{flags:h}:{},...b?{files:b}:{}}),...g?{message_reference:g}:{}}),S;try{S=await c(()=>s.post(O.channelMessages(u),{body:ee}),`components`)}catch(e){throw await B(e,{channelId:u,rest:s,token:a,hasMedia:!!b?.length})}return Kr({entries:f.entries,modals:f.modals,messageId:S.id}),x({channel:`discord`,accountId:i.accountId,direction:`outbound`}),{messageId:S.id??`unknown`,channelId:S.channel_id??u}}async function Ai(e,t,n,r={}){let{rest:i,request:a}=F(r,r.cfg??l()),o=yn(n);return await a(()=>i.put(O.channelMessageOwnReaction(e,t,o)),`react`),{ok:!0}}async function ji(e,t,n,r={}){let{rest:i}=F(r,r.cfg??l()),a=yn(n);return await i.delete(O.channelMessageOwnReaction(e,t,a)),{ok:!0}}async function Mi(e,t,n={}){let{rest:r}=F(n,n.cfg??l()),i=await r.get(O.channelMessage(e,t)),a=new Set;for(let e of i.reactions??[]){let t=Nn(e.emoji);t&&a.add(t)}if(a.size===0)return{ok:!0,removed:[]};let o=[];return await Promise.allSettled(Array.from(a,n=>(o.push(n),r.delete(O.channelMessageOwnReaction(e,t,yn(n)))))),{ok:!0,removed:o}}async function Ni(e,t,n={}){let{rest:r}=F(n,n.cfg??l()),i=(await r.get(O.channelMessage(e,t))).reactions??[];if(i.length===0)return[];let a=typeof n.limit==`number`&&Number.isFinite(n.limit)?Math.min(Math.max(Math.floor(n.limit),1),100):100,o=[];for(let n of i){let i=Nn(n.emoji);if(!i)continue;let s=encodeURIComponent(i),c=await r.get(O.channelMessageReaction(e,t,s),{limit:a});o.push({emoji:{id:n.emoji.id??null,name:n.emoji.name??null,raw:Pn(n.emoji)},count:n.count,users:c.map(e=>({id:e.id,username:e.username,tag:e.username&&e.discriminator?`${e.username}#${e.discriminator}`:e.username}))})}return o}export{U as $,sr as A,Ge as At,Zn as B,Le as Bt,ir as C,et as Ct,or as D,Ke as Dt,ur as E,M as Et,Wn as F,We as Ft,Un as G,$n as H,Gn as I,je as It,In as J,Fn as K,Xn as L,Pe as Lt,tr as M,He as Mt,Qn as N,ze as Nt,nr as O,qe as Ot,Jn as P,Ve as Pt,W as Q,er as R,Ne as Rt,ar as S,nt as St,cr as T,j as Tt,Vn as U,qn as V,Hn as W,Bn as X,Rn as Y,zn as Z,Br as _,dt as _t,ki as a,Yt as at,_r as b,Ct as bt,fi as c,Mt as ct,gi as d,P as dt,R as et,li as f,ot as ft,Vr as g,ft as gt,Lr as h,ut as ht,ji as i,Xt as it,Kn as j,Be as jt,dr as k,Je as kt,hi as l,xt as lt,Jr as m,pt as mt,Ai as n,fn as nt,Ti as o,F as ot,qr as p,vt as pt,Ln as q,Mi as r,pn as rt,Ei as s,Lt as st,Ni as t,mn as tt,pi as u,N as ut,Ur as v,yt as vt,rr as w,rt as wt,lr as x,tt as xt,zr as y,St as yt,Yn as z,Ie as zt};
@@ -1,3 +1,3 @@
1
1
  require(`./paths-Bcdg3ma0.cjs`);const e=require(`./utils-PPIvU9qw.cjs`),t=require(`./model-auth-BgS7ynQw.cjs`),n=require(`./targets-BSc11Uk8.cjs`),r=require(`./fetch-guard-EoAitPe9.cjs`),i=require(`./tokens-CnB4dJmp.cjs`),a=require(`./ir-D4Dz-giw.cjs`),o=require(`./render-g5VlmgpF.cjs`);let s=require(`@slack/web-api`);function c(e,t={}){let r=e.trim();return r?n.r({raw:r,mentionPattern:/^<@([A-Z0-9]+)>$/i,prefixes:[{prefix:`user:`,kind:`user`},{prefix:`channel:`,kind:`channel`},{prefix:`slack:`,kind:`user`}],atUserPattern:/^[A-Z0-9]+$/i,atUserErrorMessage:`Slack DMs require a user id (use user:<id> or <@id>)`})||(r.startsWith(`#`)?n.t(`channel`,n.n({candidate:r.slice(1).trim(),pattern:/^[A-Z0-9]+$/i,errorMessage:`Slack channels require a channel id (use channel:<id>)`}),r):t.defaultKind?n.t(t.defaultKind,r,r):n.t(`channel`,r,r)):void 0}function l(e){return n.i({platform:`Slack`,target:c(e,{defaultKind:`channel`}),kind:`channel`})}const u={retries:2,factor:2,minTimeout:500,maxTimeout:3e3,randomize:!0};function d(e={}){return{...e,retryConfig:e.retryConfig??u}}function f(e,t={}){return new s.WebClient(e,d(t))}function p(e){if(typeof e!=`string`)return;let t=e.replace(/\s+/g,` `).trim();return t.length>0?t:void 0}function m(e){return p(e.text?.text)}function h(e){return p(e.text?.text)}function g(e){return p(e.alt_text)??p(e.title?.text)}function _(e){return p(e.title?.text)??p(e.alt_text)}function v(e){if(!Array.isArray(e.elements))return;let t=e.elements.map(e=>p(e.text)).filter(e=>!!e);return t.length>0?t.join(` `):void 0}function y(e){for(let t of e){let e=t;switch(e.type){case`header`:{let t=h(e);if(t)return t;break}case`section`:{let t=m(e);if(t)return t;break}case`image`:return g(e)||`Shared an image`;case`video`:return _(e)||`Shared a video`;case`file`:return`Shared a file`;case`context`:{let t=v(e);if(t)return t;break}default:break}}return`Shared a Block Kit message`}function b(e){try{return JSON.parse(e)}catch{throw Error(`blocks must be valid JSON`)}}function x(e){if(!Array.isArray(e))throw Error(`blocks must be an array`);if(e.length===0)throw Error(`blocks must contain at least one block`);if(e.length>50)throw Error(`blocks cannot exceed 50 items`);for(let t of e){if(!t||typeof t!=`object`||Array.isArray(t))throw Error(`each block must be an object`);let e=t.type;if(typeof e!=`string`||e.trim().length===0)throw Error(`each block must include a non-empty string type`)}}function S(e){return x(e),e}function C(e){if(e!=null)return S(typeof e==`string`?b(e):e)}function w(e){return e.replace(/&/g,`&amp;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`)}const T=/<[^>\n]+>/g;function E(e){if(!e.startsWith(`<`)||!e.endsWith(`>`))return!1;let t=e.slice(1,-1);return t.startsWith(`@`)||t.startsWith(`#`)||t.startsWith(`!`)||t.startsWith(`mailto:`)||t.startsWith(`tel:`)||t.startsWith(`http://`)||t.startsWith(`https://`)||t.startsWith(`slack://`)}function D(e){if(!e)return``;if(!e.includes(`&`)&&!e.includes(`<`)&&!e.includes(`>`))return e;T.lastIndex=0;let t=[],n=0;for(let r=T.exec(e);r;r=T.exec(e)){let i=r.index??0;t.push(w(e.slice(n,i)));let a=r[0]??``;t.push(E(a)?a:w(a)),n=i+a.length}return t.push(w(e.slice(n))),t.join(``)}function O(e){return e?!e.includes(`&`)&&!e.includes(`<`)&&!e.includes(`>`)?e:e.split(`
2
2
  `).map(e=>e.startsWith(`> `)?`> ${D(e.slice(2))}`:D(e)).join(`
3
- `):``}function k(e,t){let n=e.href.trim();if(!n)return null;let r=t.slice(e.start,e.end).trim(),i=n.startsWith(`mailto:`)?n.slice(7):n;if(!(r.length>0&&r!==n&&r!==i))return null;let a=w(n);return{start:e.start,end:e.end,open:`<${a}|`,close:`>`}}function A(){return{styleMarkers:{bold:{open:`*`,close:`*`},italic:{open:`_`,close:`_`},strikethrough:{open:`~`,close:`~`},code:{open:"`",close:"`"},code_block:{open:"```\n",close:"```"}},escapeText:O,buildLink:k}}function j(e,t={}){return o.t(a.n(e??``,{linkify:!1,autolink:!1,headingStyle:`bold`,blockquotePrefix:`> `,tableMode:t.tableMode}),A())}function M(e){return j(e??``)}function N(e,t,n={}){let r=a.t(a.n(e??``,{linkify:!1,autolink:!1,headingStyle:`bold`,blockquotePrefix:`> `,tableMode:n.tableMode}),t),i=A();return r.map(e=>o.t(e,i))}const P={allowedHostnames:[`*.slack.com`,`*.slack-edge.com`,`*.slack-files.com`],allowRfc2544BenchmarkRange:!0};function F(e){return!!(e?.username||e?.iconUrl||e?.iconEmoji)}function I(e){if(!(e instanceof Error))return!1;let t=e;return t.data?.error?.toLowerCase()===`missing_scope`?(t.data?.needed?.toLowerCase())?.includes(`chat:write.customize`)?!0:[...t.data?.response_metadata?.scopes??[],...t.data?.response_metadata?.acceptedScopes??[]].map(e=>e.toLowerCase()).includes(`chat:write.customize`):!1}async function L(t){let n={channel:t.channelId,text:t.text,thread_ts:t.threadTs,...t.blocks?.length?{blocks:t.blocks}:{}};try{return t.identity?.iconUrl?await t.client.chat.postMessage({...n,...t.identity.username?{username:t.identity.username}:{},icon_url:t.identity.iconUrl}):t.identity?.iconEmoji?await t.client.chat.postMessage({...n,...t.identity.username?{username:t.identity.username}:{},icon_emoji:t.identity.iconEmoji}):await t.client.chat.postMessage({...n,...t.identity?.username?{username:t.identity.username}:{}})}catch(r){if(!F(t.identity)||!I(r))throw r;return e.R(`slack send: missing chat:write.customize, retrying without custom identity`),t.client.chat.postMessage(n)}}function R(n){let r=t.Nn(n.explicit);if(r)return r;let i=t.Nn(n.fallbackToken);if(!i)throw e.R(`slack send: missing bot token for account=${n.accountId} explicit=${!!n.explicit} source=${n.fallbackSource??`unknown`}`),Error(`Slack bot token missing for account "${n.accountId}" (set channels.slack.accounts.${n.accountId}.botToken or SLACK_BOT_TOKEN for default).`);return i}function z(e){let t=c(e);if(!t)throw Error(`Recipient is required for Slack sends`);return{kind:t.kind,id:t.id}}async function B(e,t){if(!(t.kind===`user`||/^U[A-Z0-9]+$/i.test(t.id)))return{channelId:t.id};let n=(await e.conversations.open({users:t.id})).channel?.id;if(!n)throw Error(`Failed to open Slack DM channel`);return{channelId:n,isDm:!0}}async function V(e){let{buffer:t,contentType:n,fileName:i}=await a.a(e.mediaUrl,{maxBytes:e.maxBytes,localRoots:e.mediaLocalRoots}),o=await e.client.files.getUploadURLExternal({filename:i??`upload`,length:t.length});if(!o.ok||!o.upload_url||!o.file_id)throw Error(`Failed to get upload URL: ${o.error??`unknown error`}`);let s=new Uint8Array(t),{response:c,release:l}=await r.t(r.r({url:o.upload_url,init:{method:`POST`,...n?{headers:{"Content-Type":n}}:{},body:s},policy:P,auditContext:`slack-upload-file`}));try{if(!c.ok)throw Error(`Failed to upload file: HTTP ${c.status}`)}finally{await l()}let u=await e.client.files.completeUploadExternal({files:[{id:o.file_id,title:i??`upload`}],channel_id:e.channelId,...e.caption?{initial_comment:e.caption}:{},...e.threadTs?{thread_ts:e.threadTs}:{}});if(!u.ok)throw Error(`Failed to complete upload: ${u.error??`unknown error`}`);return o.file_id}async function H(n,r,o={}){let s=r?.trim()??``;if(i.i(s)&&!o.mediaUrl&&!o.blocks)return e.R(`slack send: suppressed NO_REPLY token before API call`),{messageId:`suppressed`,channelId:``};let c=o.blocks==null?void 0:S(o.blocks);if(!s&&!o.mediaUrl&&!c)throw Error(`Slack send requires text, blocks, or media`);let l=o.cfg??t.Gi(),u=t.An({cfg:l,accountId:o.accountId}),d=R({explicit:o.token,accountId:u.accountId,fallbackToken:u.botToken,fallbackSource:u.botTokenSource}),p=o.client??f(d),{channelId:m}=await B(p,z(n));if(c){if(o.mediaUrl)throw Error(`Slack send does not support blocks with mediaUrl`);return{messageId:(await L({client:p,channelId:m,text:s||y(c),threadTs:o.threadTs,identity:o.identity,blocks:c})).ts??`unknown`,channelId:m}}let h=a.h(l,`slack`,u.accountId),g=Math.min(h,4e3),_=a.s({cfg:l,channel:`slack`,accountId:u.accountId}),v=a.m(l,`slack`,u.accountId),b=(v===`newline`?a.d(s,g,v):[s]).flatMap(e=>N(e,g,{tableMode:_}));!b.length&&s&&b.push(s);let x=typeof u.config.mediaMaxMb==`number`?u.config.mediaMaxMb*1024*1024:void 0,C=``;if(o.mediaUrl){let[e,...t]=b;C=await V({client:p,channelId:m,mediaUrl:o.mediaUrl,mediaLocalRoots:o.mediaLocalRoots,caption:e,threadTs:o.threadTs,maxBytes:x});for(let e of t)C=(await L({client:p,channelId:m,text:e,threadTs:o.threadTs,identity:o.identity})).ts??C}else for(let e of b.length?b:[``])C=(await L({client:p,channelId:m,text:e,threadTs:o.threadTs,identity:o.identity})).ts??C;return{messageId:C||`unknown`,channelId:m}}Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return S}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return d}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return C}}),Object.defineProperty(exports,`l`,{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return N}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return M}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return f}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return H}}),Object.defineProperty(exports,`u`,{enumerable:!0,get:function(){return l}});
3
+ `):``}function k(e,t){let n=e.href.trim();if(!n)return null;let r=t.slice(e.start,e.end).trim(),i=n.startsWith(`mailto:`)?n.slice(7):n;if(!(r.length>0&&r!==n&&r!==i))return null;let a=w(n);return{start:e.start,end:e.end,open:`<${a}|`,close:`>`}}function A(){return{styleMarkers:{bold:{open:`*`,close:`*`},italic:{open:`_`,close:`_`},strikethrough:{open:`~`,close:`~`},code:{open:"`",close:"`"},code_block:{open:"```\n",close:"```"}},escapeText:O,buildLink:k}}function j(e,t={}){return o.t(a.n(e??``,{linkify:!1,autolink:!1,headingStyle:`bold`,blockquotePrefix:`> `,tableMode:t.tableMode}),A())}function M(e){return j(e??``)}function N(e,t,n={}){let r=a.t(a.n(e??``,{linkify:!1,autolink:!1,headingStyle:`bold`,blockquotePrefix:`> `,tableMode:n.tableMode}),t),i=A();return r.map(e=>o.t(e,i))}const P={allowedHostnames:[`*.slack.com`,`*.slack-edge.com`,`*.slack-files.com`],allowRfc2544BenchmarkRange:!0};function F(e){return!!(e?.username||e?.iconUrl||e?.iconEmoji)}function I(e){if(!(e instanceof Error))return!1;let t=e;return t.data?.error?.toLowerCase()===`missing_scope`?(t.data?.needed?.toLowerCase())?.includes(`chat:write.customize`)?!0:[...t.data?.response_metadata?.scopes??[],...t.data?.response_metadata?.acceptedScopes??[]].map(e=>e.toLowerCase()).includes(`chat:write.customize`):!1}async function L(t){let n={channel:t.channelId,text:t.text,thread_ts:t.threadTs,...t.blocks?.length?{blocks:t.blocks}:{}};try{return t.identity?.iconUrl?await t.client.chat.postMessage({...n,...t.identity.username?{username:t.identity.username}:{},icon_url:t.identity.iconUrl}):t.identity?.iconEmoji?await t.client.chat.postMessage({...n,...t.identity.username?{username:t.identity.username}:{},icon_emoji:t.identity.iconEmoji}):await t.client.chat.postMessage({...n,...t.identity?.username?{username:t.identity.username}:{}})}catch(r){if(!F(t.identity)||!I(r))throw r;return e.R(`slack send: missing chat:write.customize, retrying without custom identity`),t.client.chat.postMessage(n)}}function R(n){let r=t.Nn(n.explicit);if(r)return r;let i=t.Nn(n.fallbackToken);if(!i)throw e.R(`slack send: missing bot token for account=${n.accountId} explicit=${!!n.explicit} source=${n.fallbackSource??`unknown`}`),Error(`Slack bot token missing for account "${n.accountId}" (set channels.slack.accounts.${n.accountId}.botToken or SLACK_BOT_TOKEN for default).`);return i}function z(e){let t=c(e);if(!t)throw Error(`Recipient is required for Slack sends`);return{kind:t.kind,id:t.id}}async function B(e,t){if(!(t.kind===`user`||/^U[A-Z0-9]+$/i.test(t.id)))return{channelId:t.id};let n=(await e.conversations.open({users:t.id})).channel?.id;if(!n)throw Error(`Failed to open Slack DM channel`);return{channelId:n,isDm:!0}}async function V(e){let{buffer:t,contentType:n,fileName:i}=await a.a(e.mediaUrl,{maxBytes:e.maxBytes,localRoots:e.mediaLocalRoots}),o=await e.client.files.getUploadURLExternal({filename:i??`upload`,length:t.length});if(!o.ok||!o.upload_url||!o.file_id)throw Error(`Failed to get upload URL: ${o.error??`unknown error`}`);let s=new Uint8Array(t),{response:c,release:l}=await r.t(r.r({url:o.upload_url,init:{method:`POST`,...n?{headers:{"Content-Type":n}}:{},body:s},policy:P,auditContext:`slack-upload-file`}));try{if(!c.ok)throw Error(`Failed to upload file: HTTP ${c.status}`)}finally{await l()}let u=await e.client.files.completeUploadExternal({files:[{id:o.file_id,title:i??`upload`}],channel_id:e.channelId,...e.caption?{initial_comment:e.caption}:{},...e.threadTs?{thread_ts:e.threadTs}:{}});if(!u.ok)throw Error(`Failed to complete upload: ${u.error??`unknown error`}`);return o.file_id}async function H(n,r,o={}){let s=r?.trim()??``;if(i.i(s)&&!o.mediaUrl&&!o.blocks)return e.R(`slack send: suppressed NO_REPLY token before API call`),{messageId:`suppressed`,channelId:``};let c=o.blocks==null?void 0:S(o.blocks);if(!s&&!o.mediaUrl&&!c)throw Error(`Slack send requires text, blocks, or media`);let l=o.cfg??t.Gi(),u=t.An({cfg:l,accountId:o.accountId}),d=R({explicit:o.token,accountId:u.accountId,fallbackToken:u.botToken,fallbackSource:u.botTokenSource}),p=o.client??f(d),{channelId:m}=await B(p,z(n));if(c){if(o.mediaUrl)throw Error(`Slack send does not support blocks with mediaUrl`);return{messageId:(await L({client:p,channelId:m,text:s||y(c),threadTs:o.threadTs,identity:o.identity,blocks:c})).ts??`unknown`,channelId:m}}let h=a.h(l,`slack`,u.accountId),g=Math.min(h,4e3),_=a.s({cfg:l,channel:`slack`,accountId:u.accountId}),v=a.m(l,`slack`,u.accountId),b=(v===`newline`?a.d(s,g,v):[s]).flatMap(e=>N(e,g,{tableMode:_}));!b.length&&s&&b.push(s);let x=typeof u.config.mediaMaxMb==`number`?u.config.mediaMaxMb*1024*1024:void 0,C=``;if(o.mediaUrl){let[e,...t]=b;C=await V({client:p,channelId:m,mediaUrl:o.mediaUrl,mediaLocalRoots:o.mediaLocalRoots,caption:e,threadTs:o.threadTs,maxBytes:x});for(let e of t)C=(await L({client:p,channelId:m,text:e,threadTs:o.threadTs,identity:o.identity})).ts??C}else for(let e of b.length?b:[``])C=(await L({client:p,channelId:m,text:e,threadTs:o.threadTs,identity:o.identity})).ts??C;return{messageId:C||`unknown`,channelId:m}}Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return S}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return d}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return C}}),Object.defineProperty(exports,`l`,{enumerable:!0,get:function(){return c}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return N}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return y}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return M}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return f}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return H}}),Object.defineProperty(exports,`u`,{enumerable:!0,get:function(){return l}});