@qqbrowser/openclaw-qbot 0.0.128 → 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 (1471) 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 +2 -2
  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/preset-config.json +22 -0
  1430. package/extensions/memory-core/index.ts +0 -38
  1431. package/extensions/openclaw-telemetry-galileo-embedded/index.ts +0 -663
  1432. package/extensions/openclaw-telemetry-galileo-embedded/src/service.ts +0 -1590
  1433. package/extensions/openclaw-weixin/index.ts +0 -26
  1434. package/extensions/openclaw-weixin/src/api/api.ts +0 -238
  1435. package/extensions/openclaw-weixin/src/api/config-cache.ts +0 -79
  1436. package/extensions/openclaw-weixin/src/api/session-guard.ts +0 -58
  1437. package/extensions/openclaw-weixin/src/api/types.ts +0 -222
  1438. package/extensions/openclaw-weixin/src/auth/accounts.ts +0 -363
  1439. package/extensions/openclaw-weixin/src/auth/login-qr.ts +0 -344
  1440. package/extensions/openclaw-weixin/src/auth/pairing.ts +0 -120
  1441. package/extensions/openclaw-weixin/src/cdn/aes-ecb.ts +0 -21
  1442. package/extensions/openclaw-weixin/src/cdn/cdn-upload.ts +0 -75
  1443. package/extensions/openclaw-weixin/src/cdn/cdn-url.ts +0 -17
  1444. package/extensions/openclaw-weixin/src/cdn/pic-decrypt.ts +0 -85
  1445. package/extensions/openclaw-weixin/src/cdn/upload.ts +0 -154
  1446. package/extensions/openclaw-weixin/src/channel.ts +0 -483
  1447. package/extensions/openclaw-weixin/src/config/config-schema.ts +0 -21
  1448. package/extensions/openclaw-weixin/src/log-upload.ts +0 -129
  1449. package/extensions/openclaw-weixin/src/media/media-download.ts +0 -138
  1450. package/extensions/openclaw-weixin/src/media/mime.ts +0 -76
  1451. package/extensions/openclaw-weixin/src/media/silk-transcode.ts +0 -74
  1452. package/extensions/openclaw-weixin/src/messaging/debug-mode.ts +0 -68
  1453. package/extensions/openclaw-weixin/src/messaging/error-notice.ts +0 -36
  1454. package/extensions/openclaw-weixin/src/messaging/inbound.ts +0 -283
  1455. package/extensions/openclaw-weixin/src/messaging/process-message.ts +0 -488
  1456. package/extensions/openclaw-weixin/src/messaging/send-media.ts +0 -76
  1457. package/extensions/openclaw-weixin/src/messaging/send.ts +0 -267
  1458. package/extensions/openclaw-weixin/src/messaging/slash-commands.ts +0 -105
  1459. package/extensions/openclaw-weixin/src/monitor/monitor.ts +0 -225
  1460. package/extensions/openclaw-weixin/src/runtime.ts +0 -67
  1461. package/extensions/openclaw-weixin/src/storage/state-dir.ts +0 -11
  1462. package/extensions/openclaw-weixin/src/storage/sync-buf.ts +0 -79
  1463. package/extensions/openclaw-weixin/src/util/logger.ts +0 -146
  1464. package/extensions/openclaw-weixin/src/util/random.ts +0 -17
  1465. package/extensions/openclaw-weixin/src/util/redact.ts +0 -57
  1466. package/extensions/openclaw-weixin/src/vendor.d.ts +0 -21
  1467. package/extensions/qbagent-mcp-server-x5uselocal-node/index.ts +0 -140
  1468. package/extensions/qbagent-mcp-server-x5uselocal-node/src/browser-use-tool.ts +0 -157
  1469. package/extensions/qbagent-mcp-server-x5uselocal-node/src/server.ts +0 -135
  1470. package/extensions/qbagent-mcp-server-x5uselocal-node/src/tools.ts +0 -205
  1471. package/extensions/qbagent-mcp-server-x5uselocal-node/src/websocket-manager.ts +0 -351
@@ -3,4 +3,4 @@ const e=require(`./paths-Dd7r1qlB.cjs`),t=require(`./model-auth-CLnFIqcf.cjs`),n
3
3
  `);continue}if(e.startsWith(`:`)){n=l.indexOf(`
4
4
  `);continue}let[t,...r]=e.split(`:`),i=t.trim(),a=r.join(`:`),o=a.startsWith(` `)?a.slice(1):a;i===`event`?u.event=o:i===`data`?u.data=u.data?`${u.data}\n${o}`:o:i===`id`&&(u.id=o),n=l.indexOf(`
5
5
  `)}}d()}function p(e,n){let r=!!e.baseUrl?.trim(),i=!!e.account?.trim(),a=n||(!r||!i?t.Hn({cfg:t.Oa(),accountId:e.accountId}):void 0),o=e.baseUrl?.trim()||a?.baseUrl;if(!o)throw Error(`Signal base URL is required`);return{baseUrl:o,account:e.account?.trim()||a?.config.account?.trim()}}function m(e){let t=e.toLowerCase();return t=t.replace(/^https?:\/\//,``),t=t.replace(/^www\./,``),t=t.replace(/\/+$/,``),t}function h(e){switch(e){case`bold`:return`BOLD`;case`italic`:return`ITALIC`;case`strikethrough`:return`STRIKETHROUGH`;case`code`:case`code_block`:return`MONOSPACE`;case`spoiler`:return`SPOILER`;default:return null}}function g(e){let t=[...e].toSorted((e,t)=>e.start===t.start?e.length===t.length?e.style.localeCompare(t.style):e.length-t.length:e.start-t.start),n=[];for(let e of t){let t=n[n.length-1];if(t&&t.style===e.style&&e.start<=t.start+t.length){let n=t.start+t.length;t.length=Math.max(n,e.start+e.length)-t.start;continue}n.push({...e})}return n}function _(e,t){let n=[];for(let r of e){let e=Math.max(0,Math.min(r.start,t)),i=Math.min(r.start+r.length,t)-e;i>0&&n.push({start:e,length:i,style:r.style})}return n}function v(e,t){if(t.length===0)return e;let n=[...t].toSorted((e,t)=>e.pos-t.pos),r=e,i=0;for(let e of n){let t=e.pos+i,n=[];for(let i of r){if(i.end<=t){n.push(i);continue}if(i.start>=t){n.push({start:i.start+e.length,end:i.end+e.length,style:i.style});continue}if(i.start<t&&i.end>t){t>i.start&&n.push({start:i.start,end:t,style:i.style});let r=t+e.length,a=i.end+e.length;a>r&&n.push({start:r,end:a,style:i.style})}}r=n,i+=e.length}return r}function y(e){let t=e.text??``;if(!t)return{text:``,styles:[]};let n=[...e.links].toSorted((e,t)=>e.start-t.start),r=``,i=0,a=[];for(let e of n){if(e.start<i)continue;r+=t.slice(i,e.end);let n=e.href.trim(),o=t.slice(e.start,e.end).trim();if(n)if(!o)r+=n,a.push({pos:e.end,length:n.length});else{let t=m(o),i=n;if(n.startsWith(`mailto:`)&&(i=n.slice(7)),t!==m(i)){let t=` (${n})`;r+=t,a.push({pos:e.end,length:t.length})}}i=e.end}r+=t.slice(i);let o=v(e.styles.map(e=>{let t=h(e.style);return t?{start:e.start,end:e.end,style:t}:null}).filter(e=>e!==null),a),s=r.trimEnd(),c=s.length;return{text:s,styles:g(_(o.map(e=>({start:e.start,length:e.end-e.start,style:e.style})),c))}}function b(e,t={}){return y(i.n(e??``,{linkify:!0,enableSpoilers:!0,headingStyle:`bold`,blockquotePrefix:`> `,tableMode:t.tableMode}))}function x(e,t,n){let r=[];for(let i of e){let e=i.start+i.length,a=Math.max(i.start,t),o=Math.min(e,n);o>a&&r.push({start:a-t,length:o-a,style:i.style})}return r}function S(e,t){let{text:n,styles:r}=e;if(n.length<=t)return[e];let i=[],a=n,o=0;for(;a.length>0;){if(a.length<=t){let e=a.trimEnd();e.length>0&&i.push({text:e,styles:g(x(r,o,o+e.length))});break}let e=C(a.slice(0,t));e<=0&&(e=t);let s=a.slice(0,e).trimEnd();s.length>0&&i.push({text:s,styles:g(x(r,o,o+s.length))});let c=e<a.length&&/\s/.test(a[e]),l=Math.min(a.length,e+(c?1:0));a=a.slice(l).trimStart(),o=n.length-a.length}return i}function C(e){let t=-1,n=-1,r=0;for(let i=0;i<e.length;i++){let a=e[i];if(a===`(`){r++;continue}if(a===`)`&&r>0){r--;continue}r===0&&(a===`
6
- `?t=i:/\s/.test(a)&&(n=i))}return t>0?t:n}function w(e,t,n={}){let r=i.t(i.n(e??``,{linkify:!0,enableSpoilers:!0,headingStyle:`bold`,blockquotePrefix:`> `,tableMode:n.tableMode}),t),a=[];for(let e of r){let n=y(e);n.text.length>t?a.push(...S(n,t)):a.push(n)}return a}function T(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 E(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 D(n,r,o={}){let s=o.cfg??t.Oa(),c=t.Hn({cfg:s,accountId:o.accountId}),{baseUrl:l,account:d}=p(o,c),f=T(n),m=r??``,h=!1,g=[],_=o.textMode??`markdown`,v=typeof o.maxBytes==`number`?o.maxBytes:typeof c.config.mediaMaxMb==`number`?c.config.mediaMaxMb*1024*1024:typeof s.agents?.defaults?.mediaMaxMb==`number`?s.agents.defaults.mediaMaxMb*1024*1024:8*1024*1024,y;if(o.mediaUrl?.trim()){let t=await a.t(o.mediaUrl.trim(),v,{localRoots:o.mediaLocalRoots});y=[t.path];let n=e.g(t.contentType??void 0);!m&&n&&(m=n===`image`?`<media:image>`:`<media:${n}>`,h=!0)}if(m.trim()&&!h)if(_===`plain`)g=o.textStyles??[];else{let e=i.s({cfg:s,channel:`signal`,accountId:c.accountId}),t=b(m,{tableMode:e});m=t.text,g=t.styles}if(!m.trim()&&(!y||y.length===0))throw Error(`Signal send requires text or media`);let x={message:m};g.length>0&&(x[`text-style`]=g.map(e=>`${e.start}:${e.length}:${e.style}`)),d&&(x.account=d),y&&y.length>0&&(x.attachments=y);let S=E(f,{recipient:!0,group:!0,username:!0});if(!S)throw Error(`Signal recipient is required`);Object.assign(x,S);let C=(await u(`send`,x,{baseUrl:l,timeoutMs:o.timeoutMs}))?.timestamp;return{messageId:C?String(C):`unknown`,timestamp:C}}async function O(e,t={}){let{baseUrl:n,account:r}=p(t),i=E(T(e),{recipient:!0,group:!0});if(!i)return!1;let a={...i};return r&&(a.account=r),t.stop&&(a.stop=!0),await u(`sendTyping`,a,{baseUrl:n,timeoutMs:t.timeoutMs}),!0}async function k(e,t,n={}){if(!Number.isFinite(t)||t<=0)return!1;let{baseUrl:r,account:i}=p(n),a=E(T(e),{recipient:!0});if(!a)return!1;let o={...a,targetTimestamp:t,type:n.type??`read`};return i&&(o.account=i),await u(`sendReceipt`,o,{baseUrl:r,timeoutMs:n.timeoutMs}),!0}Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return p}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return f}}),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 d}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return O}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return u}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return D}});
6
+ `?t=i:/\s/.test(a)&&(n=i))}return t>0?t:n}function w(e,t,n={}){let r=i.t(i.n(e??``,{linkify:!0,enableSpoilers:!0,headingStyle:`bold`,blockquotePrefix:`> `,tableMode:n.tableMode}),t),a=[];for(let e of r){let n=y(e);n.text.length>t?a.push(...S(n,t)):a.push(n)}return a}function T(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 E(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 D(n,r,o={}){let s=o.cfg??t.Oa(),c=t.Hn({cfg:s,accountId:o.accountId}),{baseUrl:l,account:d}=p(o,c),f=T(n),m=r??``,h=!1,g=[],_=o.textMode??`markdown`,v=typeof o.maxBytes==`number`?o.maxBytes:typeof c.config.mediaMaxMb==`number`?c.config.mediaMaxMb*1024*1024:typeof s.agents?.defaults?.mediaMaxMb==`number`?s.agents.defaults.mediaMaxMb*1024*1024:8*1024*1024,y;if(o.mediaUrl?.trim()){let t=await a.t(o.mediaUrl.trim(),v,{localRoots:o.mediaLocalRoots});y=[t.path];let n=e.g(t.contentType??void 0);!m&&n&&(m=n===`image`?`<media:image>`:`<media:${n}>`,h=!0)}if(m.trim()&&!h)if(_===`plain`)g=o.textStyles??[];else{let e=i.s({cfg:s,channel:`signal`,accountId:c.accountId}),t=b(m,{tableMode:e});m=t.text,g=t.styles}if(!m.trim()&&(!y||y.length===0))throw Error(`Signal send requires text or media`);let x={message:m};g.length>0&&(x[`text-style`]=g.map(e=>`${e.start}:${e.length}:${e.style}`)),d&&(x.account=d),y&&y.length>0&&(x.attachments=y);let S=E(f,{recipient:!0,group:!0,username:!0});if(!S)throw Error(`Signal recipient is required`);Object.assign(x,S);let C=(await u(`send`,x,{baseUrl:l,timeoutMs:o.timeoutMs}))?.timestamp;return{messageId:C?String(C):`unknown`,timestamp:C}}async function O(e,t={}){let{baseUrl:n,account:r}=p(t),i=E(T(e),{recipient:!0,group:!0});if(!i)return!1;let a={...i};return r&&(a.account=r),t.stop&&(a.stop=!0),await u(`sendTyping`,a,{baseUrl:n,timeoutMs:t.timeoutMs}),!0}async function k(e,t,n={}){if(!Number.isFinite(t)||t<=0)return!1;let{baseUrl:r,account:i}=p(n),a=E(T(e),{recipient:!0});if(!a)return!1;let o={...a,targetTimestamp:t,type:n.type??`read`};return i&&(o.account=i),await u(`sendReceipt`,o,{baseUrl:r,timeoutMs:n.timeoutMs}),!0}Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return p}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return f}}),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 d}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return O}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return u}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return D}});
@@ -4,4 +4,4 @@ import{S as e,Wt as t,m as n}from"./paths-J4JUiRsa.js";import{Ai as r,Do as i,To
4
4
  `),o=[],s=``,c=0,l=null,u=()=>{if(!s)return;let e=tn(s,l);e.trim().length&&o.push(e),s=``,c=0,l&&(s=l.openLine,c=1)};for(let e of a){let t=$t(e),i=l!==null,a=l;t&&(l?l.markerChar===t.markerChar&&t.markerLen>=l.markerLen&&(a=null):a=t);let o=a?en(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,_=nn(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=tn(s,l);e.trim().length&&o.push(e)}return on(e,o)}function an(e,t){if((t.chunkMode??`length`)!==`newline`)return rn(e,t);let n=y(e,Math.max(1,Math.floor(t.maxChars??Xt)),`newline`),r=[];for(let e of n){let n=rn(e,t);if(!n.length&&e){r.push(e);continue}r.push(...n)}return r}function on(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}const sn=Object.entries(oe).filter(([,e])=>typeof e==`bigint`),cn=sn.reduce((e,[,t])=>e|t,0n),ln=oe.Administrator;function R(e,t){return t?e|BigInt(t):e}function un(e,t){return t?e&~BigInt(t):e}function dn(e){return sn.filter(([,t])=>(e&t)===t).map(([e])=>e).toSorted()}function fn(e){return(e&ln)===ln}function pn(e,t){return(e&t)===t}function mn(e){return e===E.GuildNewsThread||e===E.GuildPublicThread||e===E.GuildPrivateThread}async function hn(e){let t=await e.get(D.user(`@me`));if(!t?.id)throw Error(`Failed to resolve bot user id`);return t.id}async function gn(e,t,n={}){let r=L(n);try{let[n,i]=await Promise.all([r.get(D.guild(e)),r.get(D.guildMember(e,t))]),a=new Map((n.roles??[]).map(e=>[e.id,e])),o=a.get(e),s=0n;o?.permissions&&(s=R(s,o.permissions));for(let e of i.roles??[]){let t=a.get(e);t?.permissions&&(s=R(s,t.permissions))}return s}catch{return null}}async function _n(e,t,n,r,i={}){let a=await gn(e,t,i);return a===null?!1:fn(a)?!0:r(a,n)}async function vn(e,t,n,r={}){return await _n(e,t,n,(e,t)=>t.some(t=>pn(e,t)),r)}async function yn(e,t={}){let n=L(t),r=await n.get(D.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 hn(n),[s,c]=await Promise.all([n.get(D.guild(a)),n.get(D.guildMember(a,o))]),l=new Map((s.roles??[]).map(e=>[e.id,e])),u=l.get(a),d=0n;u?.permissions&&(d=R(d,u.permissions));for(let e of c.roles??[]){let t=l.get(e);t?.permissions&&(d=R(d,t.permissions))}if(fn(d))return{channelId:e,guildId:a,permissions:dn(cn),raw:cn.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=un(f,e.deny??`0`),f=R(f,e.allow??`0`));for(let e of p)c.roles?.includes(e.id)&&(f=un(f,e.deny??`0`),f=R(f,e.allow??`0`));for(let e of p)e.id===o&&(f=un(f,e.deny??`0`),f=R(f,e.allow??`0`));return{channelId:e,guildId:a,permissions:dn(f),raw:f.toString(),isDm:!1,channelType:i}}var bn=class extends Error{constructor(e,t){super(e),this.name=`DiscordSendError`,t&&Object.assign(this,t)}toString(){return this.message}};function xn(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 Sn(e,t,n){let r=n??d(),a=i({cfg:r,accountId:t}),o=e.trim(),s={ambiguousMessage:`Ambiguous Discord recipient "${o}". Use "user:${o}" for DMs or "channel:${o}" for channel messages.`},c=await Ht(e,{cfg:r,accountId:a.accountId},s);if(c)return{kind:c.kind,id:c.id};let l=F(e,s);if(!l)throw Error(`Recipient is required for Discord sends`);return{kind:l.kind,id:l.id}}function Cn(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 wn(e){let t=_(e,{maxOptions:10}),n=v(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:ke.Default}}function Tn(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 bn)return e;let n=Tn(e);if(n===50007)return new bn(`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 yn(t.channelId,{rest:t.rest,token:t.token}),n=new Set(e.permissions),i=[`ViewChannel`,`SendMessages`];mn(e.channelType)&&i.push(`SendMessagesInThreads`),t.hasMedia&&i.push(`AttachFiles`),r=i.filter(e=>!n.has(e))}catch{}return new bn(`${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(D.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 En(e,t){try{return(await e.get(D.channel(t)))?.type}catch{return}}const H=4096;function Dn(e,t={}){if(!e)return[];let n=an(e,{maxChars:t.maxChars??2e3,maxLines:t.maxLinesPerMessage,chunkMode:t.chunkMode});return!n.length&&e&&n.push(e),n}function On(e){return!!e?.some(e=>`isV2`in e&&e.isV2)}function kn(e){if(!(!e.components||!e.isFirst))return typeof e.components==`function`?e.components(e.text):e.components}function An(e){if(e?.length)return e.map(e=>e instanceof fe?e:new fe(e))}function jn(e){if(!(!e.embeds||!e.isFirst))return An(e.embeds)}function Mn(e){let t={},n=On(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 Nn(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=Dn(n,{maxLinesPerMessage:a,chunkMode:c}),p=async(n,r)=>{let a=U({...j(Mn({text:n,components:kn({components:o,text:n,isFirst:r}),embeds:jn({embeds:s,isFirst:r}),flags:d})),...u?{message_reference:u}:{}});return await i(()=>e.post(D.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 Pn(e,t,n,r,i,a,o,s,c,l,u,d,f){let p=await te(r,g({maxBytes:a,mediaLocalRoots:i})),m=n?Dn(n,{maxLinesPerMessage:c,chunkMode:d}):[],h=m[0]??``,_=o?{message_id:o,fail_if_not_exists:!1}:void 0,v=f?H:void 0,y=Nn(p.buffer),b=Mn({text:h,components:kn({components:l,text:h,isFirst:!0}),embeds:jn({embeds:u,isFirst:!0}),flags:v,files:[{data:y,name:p.fileName??`upload`}]}),ee=await s(()=>e.post(D.channelMessages(t),{body:U({...j(b),..._?{message_reference:_}:{}})}),`media`);for(let n of m.slice(1))n.trim()&&await W(e,t,n,o,s,c,void 0,void 0,d,f);return ee}function Fn(e){return e.id&&e.name?`${e.name}:${e.id}`:e.name??``}function In(e){return Fn(e)}async function Ln(e,t={}){let n=L(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(D.guildChannels(e.guildId),{body:r})}async function Rn(e,t={}){let n=L(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(D.channel(e.channelId),{body:r})}async function zn(e,t={}){return await L(t).delete(D.channel(e)),{ok:!0,channelId:e}}async function Bn(e,t={}){let n=L(t),r=[{id:e.channelId,...e.parentId!==void 0&&{parent_id:e.parentId},...e.position!==void 0&&{position:e.position}}];return await n.patch(D.guildChannels(e.guildId),{body:r}),{ok:!0}}async function Vn(e,t={}){let n=L(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 Hn(e,t,n={}){return await L(n).delete(`/channels/${e}/permissions/${t}`),{ok:!0}}async function Un(e,t={}){return await L(t).get(D.guildEmojis(e))}async function Wn(e,t={}){let n=L(t),r=await x(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(D.guildEmojis(e.guildId),{body:{name:z(e.name,`Emoji name`),image:a,roles:o.length?o:void 0}})}async function Gn(e,t={}){let n=L(t),r=await x(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(D.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 Kn(e,t,n={}){return await L(n).get(D.guildMember(e,t))}async function qn(e,t={}){return await L(t).get(D.guildRoles(e))}async function Jn(e,t={}){return await L(t).put(D.guildMemberRole(e.guildId,e.userId,e.roleId)),{ok:!0}}async function Yn(e,t={}){return await L(t).delete(D.guildMemberRole(e.guildId,e.userId,e.roleId)),{ok:!0}}async function Xn(e,t={}){return await L(t).get(D.channel(e))}async function Zn(e,t={}){return await L(t).get(D.guildChannels(e))}async function Qn(e,t,n={}){return await L(n).get(D.guildVoiceState(e,t))}async function $n(e,t={}){return await L(t).get(D.guildScheduledEvents(e))}async function er(e,t,n={}){return await L(n).post(D.guildScheduledEvents(e),{body:t})}async function tr(e,t={}){let n=L(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(D.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 nr(e,t={}){return await L(t).delete(D.guildMember(e.guildId,e.userId),{headers:e.reason?{"X-Audit-Log-Reason":encodeURIComponent(e.reason)}:void 0}),{ok:!0}}async function rr(e,t={}){let n=L(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(D.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 ir(e,t={},n={}){let r=L(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(D.channelMessages(e),a)}async function ar(e,t,n={}){return await L(n).get(D.channelMessage(e,t))}async function or(e,t,n,r={}){return await L(r).patch(D.channelMessage(e,t),{body:{content:n.content}})}async function sr(e,t,n={}){return await L(n).delete(D.channelMessage(e,t)),{ok:!0}}async function cr(e,t,n={}){return await L(n).put(D.channelPin(e,t)),{ok:!0}}async function lr(e,t,n={}){return await L(n).delete(D.channelPin(e,t)),{ok:!0}}async function ur(e,t={}){return await L(t).get(D.channelPins(e))}async function dr(e,t,n={}){let r=L(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(D.channel(e)))?.type}catch{a=void 0}let o=a===E.GuildForum||a===E.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=E.PublicThread);let s=t.messageId?D.threads(e,t.messageId):D.threads(e),c=await r.post(s,{body:i});return!o&&t.content?.trim()&&await r.post(D.channelMessages(c.id),{body:{content:t.content}}),c}async function fr(e,t={}){let n=L(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(D.channelThreads(e.channelId,`public`),t)}return await n.get(D.guildActiveThreads(e.guildId))}async function pr(e,t={}){let n=L(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 mr(e){if(e)try{await C.unlink(e)}catch{}}const hr=/```[\s\S]*?```|`[^`\n]*`/g,gr=/(^|[\s([{"'.,;:!?])@([a-z0-9_.-]{2,32}(?:#[0-9]{4})?)/gi,_r=new Set([`everyone`,`here`]);function vr(e){let t=String(e??``).trim();return/^\d+$/.test(t)?t:null}function yr(e){let t=e.userId==null?null:vr(e.userId),n=e.roleId==null?null:vr(e.roleId),r=e.channelId==null?null:vr(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 br(e,t){return e.includes(`@`)?e.replace(gr,(e,n,r)=>{let i=String(r??``).trim();if(!i)return e;let a=i.toLowerCase();if(_r.has(a))return e;let o=Ge({accountId:t,handle:i});return o?`${String(n??``)}${yr({userId:o})}`:e}):e}function G(e,t){if(!e.includes(`@`))return e;let n=``,r=0;hr.lastIndex=0;for(let i of e.matchAll(hr)){let a=i.index??0;n+=br(e.slice(r,a),t.accountId),n+=i[0],r=a+i[0].length}return n+=br(e.slice(r),t.accountId),n}const xr=re(ie);function Sr(e,t){return{timeout:t?.timeoutMs??e,maxBuffer:t?.maxBufferBytes??10485760}}async function Cr(e,t){let{stdout:n}=await xr(`ffprobe`,e,Sr(1e4,t));return n.toString()}async function wr(e,t){let{stdout:n}=await xr(`ffmpeg`,e,Sr(45e3,t));return n.toString()}function Tr(e,t){return e.trim().toLowerCase().split(/[,\r\n]+/,t).map(e=>e.trim())}function Er(e){let[t,n]=Tr(e,2),r=t||null,i=n?Number.parseInt(n,10):NaN;return{codec:r,sampleRateHz:Number.isFinite(i)?i:null}}const Dr=8192;async function Or(e){try{let t=await Cr([`-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 kr(e){try{return await Ar(e)}catch{return jr()}}async function Ar(e){let t=f(),n=S.join(t,`waveform-${w.randomUUID()}.raw`);try{await wr([`-y`,`-i`,e,`-vn`,`-sn`,`-dn`,`-t`,`1200`,`-f`,`s16le`,`-acodec`,`pcm_s16le`,`-ac`,`1`,`-ar`,`8000`,n]);let t=await C.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 mr(n)}}function jr(){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 Mr(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(S.extname(e).toLowerCase()===`.ogg`)try{let{codec:t,sampleRateHz:n}=Er(await Cr([`-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=f(),r=S.join(n,`voice-${w.randomUUID()}.ogg`);return await wr([`-y`,`-i`,e,`-vn`,`-sn`,`-dn`,`-t`,`1200`,`-ar`,`48000`,`-c:a`,`libopus`,`-b:a`,`64k`,r]),{path:r,cleanup:!0}}async function Nr(e){let[t,n]=await Promise.all([Or(e),kr(e)]);return{durationSecs:t,waveform:n}}async function Pr(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 be(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?Dr|4096:Dr,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 Fr(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 Ir(e){return(e.split(`
7
- `).find(e=>e.trim())?.trim()??``).slice(0,100)||new Date().toISOString().slice(0,16)}function Lr(e){return e===E.GuildForum||e===E.GuildMedia}function K(e,t){return{messageId:e.id?String(e.id):`unknown`,channelId:String(e.channel_id??t)}}async function Rr(e,t){let n=t.cfg??d(),{rest:r,request:i}=I(t,n),{channelId:a}=await V(r,await Sn(e,t.accountId,n),i);return{rest:r,request:i,channelId:a}}async function zr(e,t,n={}){let r=n.cfg??d(),a=i({cfg:r,accountId:n.accountId}),o=ee({cfg:r,channel:`discord`,accountId:a.accountId}),s=b(r,`discord`,a.accountId),c=typeof a.config.mediaMaxMb==`number`?a.config.mediaMaxMb*1024*1024:8*1024*1024,l=ne(t??``,o),u=G(l,{accountId:a.accountId}),{token:f,rest:p,request:h}=I(n,r),{channelId:g}=await V(p,await Sn(e,n.accountId,r),h);if(Lr(await En(p,g))){let e=Ir(l),t=Dn(u,{maxLinesPerMessage:a.config.maxLinesPerMessage,chunkMode:s}),r=t[0]?.trim()?t[0]:e,i=Mn({text:r,components:kn({components:n.components,text:r,isFirst:!0}),embeds:jn({embeds:n.embeds,isFirst:!0}),flags:n.silent?4096:void 0}),o;try{o=await h(()=>p.post(D.threads(g),{body:{name:e,message:U(j(i))}}),`forum-thread`)}catch(e){throw await B(e,{channelId:g,rest:p,token:f,hasMedia:!!n.mediaUrl})}let d=o.id,_=o.message?.id??d,v=o.message?.channel_id??d,y=t.slice(1);try{if(n.mediaUrl){let[e,...t]=y;await Pn(p,d,e??``,n.mediaUrl,n.mediaLocalRoots,c,void 0,h,a.config.maxLinesPerMessage,void 0,void 0,s,n.silent),await Fr({rest:p,threadId:d,chunks:t,request:h,maxLinesPerMessage:a.config.maxLinesPerMessage,chunkMode:s,silent:n.silent})}else await Fr({rest:p,threadId:d,chunks:y,request:h,maxLinesPerMessage:a.config.maxLinesPerMessage,chunkMode:s,silent:n.silent})}catch(e){throw await B(e,{channelId:d,rest:p,token:f,hasMedia:!!n.mediaUrl})}return m({channel:`discord`,accountId:a.accountId,direction:`outbound`}),K({id:_,channel_id:v},g)}let _;try{_=n.mediaUrl?await Pn(p,g,u,n.mediaUrl,n.mediaLocalRoots,c,n.replyTo,h,a.config.maxLinesPerMessage,n.components,n.embeds,s,n.silent):await W(p,g,u,n.replyTo,h,a.config.maxLinesPerMessage,n.components,n.embeds,s,n.silent)}catch(e){throw await B(e,{channelId:g,rest:p,token:f,hasMedia:!!n.mediaUrl})}return m({channel:`discord`,accountId:a.accountId,direction:`outbound`}),K(_,g)}function Br(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 Vr(e,t){let n=t.webhookId.trim(),r=t.webhookToken.trim();if(!n||!r)throw Error(`Discord webhook id/token are required`);let a=G(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(Br({webhookId:n,webhookToken:r,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 l=await c.json().catch(()=>({}));try{m({channel:`discord`,accountId:i({cfg:t.cfg??d(),accountId:t.accountId}).accountId,direction:`outbound`})}catch{}return{messageId:l.id?String(l.id):`unknown`,channelId:l.channel_id?String(l.channel_id):t.threadId?String(t.threadId):``}}async function Hr(e,t,n={}){let{rest:r,request:i,channelId:a}=await Rr(e,n),o=n.content?.trim(),s=o?G(o,{accountId:n.accountId}):void 0,c=Cn(t);return K(await i(()=>r.post(D.channelMessages(a),{body:{content:s||void 0,sticker_ids:c}}),`sticker`),a)}async function Ur(e,t,n={}){let{rest:r,request:i,channelId:a}=await Rr(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=wn(t),l=n.silent?H:void 0;return K(await i(()=>r.post(D.channelMessages(a),{body:{content:s||void 0,poll:c,...l?{flags:l}:{}}}),`poll`),a)}async function Wr(t){let r=await x(t,e(`audio`)),i=r.fileName?S.extname(r.fileName):``,a=r.contentType?n(r.contentType):``,o=i||a||`.bin`,s=f(),c=S.join(s,`voice-src-${w.randomUUID()}${o}`);return await C.writeFile(c,r.buffer,{mode:384}),{filePath:c}}async function Gr(e,t,n={}){let{filePath:r}=await Wr(t),a=null,o=!1,s,c,l;try{let t=n.cfg??d(),u=i({cfg:t,accountId:n.accountId}),f=I(n,t);s=f.token,c=f.rest;let p=f.request,h=await Sn(e,n.accountId,t);l=(await V(c,h,p)).channelId;let g=await Mr(r);a=g.path,o=g.cleanup;let _=await Nr(a),v=await C.readFile(a),y=await Pr(c,l,v,_,n.replyTo,p,n.silent,s);return m({channel:`discord`,accountId:u.accountId,direction:`outbound`}),K(y,l)}catch(e){throw l&&c&&s?await B(e,{channelId:l,rest:c,token:s,hasMedia:!0}):e}finally{await mr(o?a:null),await mr(r)}}const q=new Map,J=new Map;function Kr(e,t){return typeof e.expiresAt==`number`&&e.expiresAt<=t}function qr(e,t,n){let r=e.createdAt??t,i=e.expiresAt??r+n;return{...e,createdAt:r,expiresAt:i}}function Jr(e){let t=Date.now(),n=e.ttlMs??18e5;for(let r of e.entries){let i=qr({...r,messageId:e.messageId??r.messageId},t,n);q.set(r.id,i)}for(let r of e.modals){let i=qr({...r,messageId:e.messageId??r.messageId},t,n);J.set(r.id,i)}}function Yr(e){let t=q.get(e.id);return t?Kr(t,Date.now())?(q.delete(e.id),null):(e.consume!==!1&&q.delete(e.id),t):null}function Xr(e){let t=J.get(e.id);return t?Kr(t,Date.now())?(J.delete(e.id),null):(e.consume!==!1&&J.delete(e.id),t):null}const Zr=`attachment://`,Qr=new Map([[`row`,`actions`],[`action-row`,`actions`]]);function Y(e){return`${e}${w.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 $r(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 ei(e,t){return e?.trim()||`field_${t+1}`}function ti(e,t){let n=e.trim();if(!n.startsWith(`attachment://`))throw Error(`${t} must start with "${Zr}"`);let r=n.slice(13).trim();if(!r)throw Error(`${t} must include an attachment filename`);return`${Zr}${r}`}function ni(e){let t=e.trim();if(!t.startsWith(`attachment://`))throw Error(`Attachment reference must start with "${Zr}"`);let n=t.slice(13).trim();if(!n)throw Error(`Attachment reference must include a filename`);return n}function ri(e){switch((e??`primary`).toLowerCase()){case`secondary`:return T.Secondary;case`success`:return T.Success;case`danger`:return T.Danger;case`link`:return T.Link;default:return T.Primary}}function ii(e){return e===`paragraph`?se.Paragraph:se.Short}function ai(e){let t=e.trim().toLowerCase();return Qr.get(t)??t}function oi(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 si(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:$r(n.allowedUsers,`${t}.allowedUsers`)}}function ci(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:oi(n.options,`${t}.options`)}}function li(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=oi(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:ei(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 ui(e,t){let n=X(e,t);switch(ai(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:si(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)=>si(e,`${t}.buttons[${n}]`)):void 0,i=n.select?ci(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:ti(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 di(e){if(e==null)return null;let t=X(e,`components`),n=t.blocks,r=Array.isArray(n)?n.map((e,t)=>ui(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)=>li(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 fi(e){let t=`occomp:cid=${e.componentId}`;return e.modalId?`${t};mid=${e.modalId}`:t}function pi(e){return`ocmodal:mid=${e}`}function mi(e){let t=A(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 hi(e){let t=A(e);if(t.key!==`ocmodal`)return null;let n=t.data.mid;return typeof n!=`string`||!n.trim()?null:n}function gi(e){return/^__openclaw_discord_component_[a-z_]+_wildcard__$/.test(e)}function _i(e){if(e===`*`||gi(e))return{key:`*`,data:{}};let t=A(e);return t.key===`occomp`?{key:`*`,data:t.data}:t}function vi(e){if(e===`*`||gi(e))return{key:`*`,data:{}};let t=A(e);return t.key===`ocmodal`?{key:`*`,data:t.data}:t}function yi(e,t){return t&&t.length>0?t.map(e=>new k(e)):e?[new k(e)]:[]}function bi(e){let t=ri(e.spec.style);if(t===T.Link||e.spec.url){if(!e.spec.url)throw Error(`Link buttons require a url`);let t=e.spec.url;class n extends he{constructor(...n){super(...n),this.label=e.spec.label,this.url=t}}return{component:new n}}let n=e.componentId??Y(`btn_`),r=fi({componentId:n,modalId:e.modalId});class i extends ce{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 xi(e){let t=(e.spec.type??`string`).toLowerCase(),n=e.componentId??Y(`sel_`),r=fi({componentId:n});if(t===`string`){let t=e.spec.options??[];if(t.length===0)throw Error(`String select menus require options`);class i extends Te{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 Oe{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 Se{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 _e{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 le{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 Si(e){return e instanceof Te||e instanceof Oe||e instanceof Se||e instanceof _e||e instanceof le}function Ci(e){if(e.type===`text`){class t extends Ee{constructor(...t){super(...t),this.customId=e.id,this.style=ii(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 Te{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 Se{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 Oe{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 ue{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 ye{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 wi(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 k(o));for(let t of e.spec.blocks??[]){if(t.type===`text`){i.push(new k(t.text));continue}if(t.type===`section`){let e=yi(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 De(t.accessory.url);else if(t.accessory?.type===`button`){let{component:e,entry:r}=bi({spec:t.accessory.button});n=e,r&&a(r)}i.push(new Ce(e,n));continue}if(t.type===`separator`){i.push(new we({spacing:t.spacing,divider:t.divider}));continue}if(t.type===`media-gallery`){i.push(new ge(t.items));continue}if(t.type===`file`){i.push(new pe(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}=bi({spec:n});e.push(t),r&&a(r)}}else if(t.select){let{component:n,entry:r}=xi({spec:t.select});e.push(n),a(r)}i.push(new O(e))}}if(e.spec.modal){let t=Y(`mdl_`),r=e.spec.modal.fields.map((e,t)=>({id:Y(`fld_`),name:ei(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}=bi({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 O){let e=c,t=e.components.some(e=>Si(e));e.components.length<5&&!t?e.addComponent(o):i.push(new O([o]))}else i.push(new O([o]))}if(i.length===0)throw Error(`components must include at least one block, text, or modal trigger`);let s=new de(i,e.spec.container);return r.push(s),{components:r,entries:t,modals:n}}function Ti(e){return e.some(e=>e.isV2)?ae.IsComponentsV2:void 0}var Ei=class extends ve{constructor(e){super(),this.customIdParser=vi,this.title=e.title,this.customId=pi(e.modalId),this.components=e.fields.map(e=>{let t=Ci(e);class n extends me{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 Di(e){return new Ei({modalId:e.id,title:e.title,fields:e.fields})}function Oi(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 ki=new Set([E.GuildForum,E.GuildMedia]);function Ai(e){let t=[];for(let n of e.blocks??[])n.type===`file`&&t.push(ni(n.file));return t}async function ji(e,t,n={}){let r=n.cfg??d(),a=i({cfg:r,accountId:n.accountId}),{token:o,rest:s,request:c}=I(n,r),{channelId:l}=await V(s,await Sn(e,n.accountId,r),c),u=await En(s,l);if(u&&ki.has(u))throw Error(`Discord components are not supported in forum-style channels`);let f=wi({spec:t,sessionKey:n.sessionKey,agentId:n.agentId,accountId:a.accountId}),p=Ti(f.components),h=n.silent?(p??0)|H:p??void 0,g=n.replyTo?{message_id:n.replyTo,fail_if_not_exists:!1}:void 0,_=Ai(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 te(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:Nn(e.buffer),name:t}]}else if(y)throw Error(`Discord component file blocks require a media attachment (media/path/filePath).`);let ee=U({...j({components:f.components,...h?{flags:h}:{},...b?{files:b}:{}}),...g?{message_reference:g}:{}}),x;try{x=await c(()=>s.post(D.channelMessages(l),{body:ee}),`components`)}catch(e){throw await B(e,{channelId:l,rest:s,token:o,hasMedia:!!b?.length})}return Jr({entries:f.entries,modals:f.modals,messageId:x.id}),m({channel:`discord`,accountId:a.accountId,direction:`outbound`}),{messageId:x.id??`unknown`,channelId:x.channel_id??l}}async function Mi(e,t,n,r={}){let{rest:i,request:a}=I(r,r.cfg??d()),o=xn(n);return await a(()=>i.put(D.channelMessageOwnReaction(e,t,o)),`react`),{ok:!0}}async function Ni(e,t,n,r={}){let{rest:i}=I(r,r.cfg??d()),a=xn(n);return await i.delete(D.channelMessageOwnReaction(e,t,a)),{ok:!0}}async function Pi(e,t,n={}){let{rest:r}=I(n,n.cfg??d()),i=await r.get(D.channelMessage(e,t)),a=new Set;for(let e of i.reactions??[]){let t=Fn(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(D.channelMessageOwnReaction(e,t,xn(n)))))),{ok:!0,removed:o}}async function Fi(e,t,n={}){let{rest:r}=I(n,n.cfg??d()),i=(await r.get(D.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=Fn(n.emoji);if(!i)continue;let s=encodeURIComponent(i),c=await r.get(D.channelMessageReaction(e,t,s),{limit:a});o.push({emoji:{id:n.emoji.id??null,name:n.emoji.name??null,raw:In(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 $,lr as A,et as At,$n as B,Ne as Bt,or as C,dt as Ct,cr as D,ut as Dt,fr as E,ct as Et,Kn as F,Qe as Ft,Gn as G,tr as H,Pe as Ht,qn as I,it as It,Rn as J,Ln as K,Qn as L,Ze as Lt,rr as M,nt as Mt,er as N,$e as Nt,ir as O,lt as Ot,Xn as P,tt as Pt,W as Q,nr as R,M as Rt,sr as S,pt as St,ur as T,st as Tt,Un as U,Fe as Ut,Yn as V,Me as Vt,Wn as W,Ie as Wt,Hn as X,Bn as Y,Vn as Z,Hr as _,St as _t,ji as a,F as at,yr as b,Pt as bt,mi as c,Bt as ct,vi as d,P as dt,yn as et,di as f,_t as ft,Ur as g,Ct as gt,zr as h,xt as ht,Ni as i,Yt as it,Jn as j,at as jt,pr as k,ot as kt,_i as l,Mt as lt,Xr as m,wt as mt,Mi as n,an as nt,Di as o,Vt as ot,Yr as p,kt as pt,zn as q,Pi as r,I as rt,Oi as s,zt as st,Fi as t,vn as tt,hi as u,N as ut,Gr as v,At as vt,ar as w,mt as wt,dr as x,ft as xt,Vr as y,Nt as yt,Zn as z,Ae as zt};
7
+ `).find(e=>e.trim())?.trim()??``).slice(0,100)||new Date().toISOString().slice(0,16)}function Lr(e){return e===E.GuildForum||e===E.GuildMedia}function K(e,t){return{messageId:e.id?String(e.id):`unknown`,channelId:String(e.channel_id??t)}}async function Rr(e,t){let n=t.cfg??d(),{rest:r,request:i}=I(t,n),{channelId:a}=await V(r,await Sn(e,t.accountId,n),i);return{rest:r,request:i,channelId:a}}async function zr(e,t,n={}){let r=n.cfg??d(),a=i({cfg:r,accountId:n.accountId}),o=ee({cfg:r,channel:`discord`,accountId:a.accountId}),s=b(r,`discord`,a.accountId),c=typeof a.config.mediaMaxMb==`number`?a.config.mediaMaxMb*1024*1024:8*1024*1024,l=ne(t??``,o),u=G(l,{accountId:a.accountId}),{token:f,rest:p,request:h}=I(n,r),{channelId:g}=await V(p,await Sn(e,n.accountId,r),h);if(Lr(await En(p,g))){let e=Ir(l),t=Dn(u,{maxLinesPerMessage:a.config.maxLinesPerMessage,chunkMode:s}),r=t[0]?.trim()?t[0]:e,i=Mn({text:r,components:kn({components:n.components,text:r,isFirst:!0}),embeds:jn({embeds:n.embeds,isFirst:!0}),flags:n.silent?4096:void 0}),o;try{o=await h(()=>p.post(D.threads(g),{body:{name:e,message:U(j(i))}}),`forum-thread`)}catch(e){throw await B(e,{channelId:g,rest:p,token:f,hasMedia:!!n.mediaUrl})}let d=o.id,_=o.message?.id??d,v=o.message?.channel_id??d,y=t.slice(1);try{if(n.mediaUrl){let[e,...t]=y;await Pn(p,d,e??``,n.mediaUrl,n.mediaLocalRoots,c,void 0,h,a.config.maxLinesPerMessage,void 0,void 0,s,n.silent),await Fr({rest:p,threadId:d,chunks:t,request:h,maxLinesPerMessage:a.config.maxLinesPerMessage,chunkMode:s,silent:n.silent})}else await Fr({rest:p,threadId:d,chunks:y,request:h,maxLinesPerMessage:a.config.maxLinesPerMessage,chunkMode:s,silent:n.silent})}catch(e){throw await B(e,{channelId:d,rest:p,token:f,hasMedia:!!n.mediaUrl})}return m({channel:`discord`,accountId:a.accountId,direction:`outbound`}),K({id:_,channel_id:v},g)}let _;try{_=n.mediaUrl?await Pn(p,g,u,n.mediaUrl,n.mediaLocalRoots,c,n.replyTo,h,a.config.maxLinesPerMessage,n.components,n.embeds,s,n.silent):await W(p,g,u,n.replyTo,h,a.config.maxLinesPerMessage,n.components,n.embeds,s,n.silent)}catch(e){throw await B(e,{channelId:g,rest:p,token:f,hasMedia:!!n.mediaUrl})}return m({channel:`discord`,accountId:a.accountId,direction:`outbound`}),K(_,g)}function Br(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 Vr(e,t){let n=t.webhookId.trim(),r=t.webhookToken.trim();if(!n||!r)throw Error(`Discord webhook id/token are required`);let a=G(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(Br({webhookId:n,webhookToken:r,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 l=await c.json().catch(()=>({}));try{m({channel:`discord`,accountId:i({cfg:t.cfg??d(),accountId:t.accountId}).accountId,direction:`outbound`})}catch{}return{messageId:l.id?String(l.id):`unknown`,channelId:l.channel_id?String(l.channel_id):t.threadId?String(t.threadId):``}}async function Hr(e,t,n={}){let{rest:r,request:i,channelId:a}=await Rr(e,n),o=n.content?.trim(),s=o?G(o,{accountId:n.accountId}):void 0,c=Cn(t);return K(await i(()=>r.post(D.channelMessages(a),{body:{content:s||void 0,sticker_ids:c}}),`sticker`),a)}async function Ur(e,t,n={}){let{rest:r,request:i,channelId:a}=await Rr(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=wn(t),l=n.silent?H:void 0;return K(await i(()=>r.post(D.channelMessages(a),{body:{content:s||void 0,poll:c,...l?{flags:l}:{}}}),`poll`),a)}async function Wr(t){let r=await x(t,e(`audio`)),i=r.fileName?S.extname(r.fileName):``,a=r.contentType?n(r.contentType):``,o=i||a||`.bin`,s=f(),c=S.join(s,`voice-src-${w.randomUUID()}${o}`);return await C.writeFile(c,r.buffer,{mode:384}),{filePath:c}}async function Gr(e,t,n={}){let{filePath:r}=await Wr(t),a=null,o=!1,s,c,l;try{let t=n.cfg??d(),u=i({cfg:t,accountId:n.accountId}),f=I(n,t);s=f.token,c=f.rest;let p=f.request,h=await Sn(e,n.accountId,t);l=(await V(c,h,p)).channelId;let g=await Mr(r);a=g.path,o=g.cleanup;let _=await Nr(a),v=await C.readFile(a),y=await Pr(c,l,v,_,n.replyTo,p,n.silent,s);return m({channel:`discord`,accountId:u.accountId,direction:`outbound`}),K(y,l)}catch(e){throw l&&c&&s?await B(e,{channelId:l,rest:c,token:s,hasMedia:!0}):e}finally{await mr(o?a:null),await mr(r)}}const q=new Map,J=new Map;function Kr(e,t){return typeof e.expiresAt==`number`&&e.expiresAt<=t}function qr(e,t,n){let r=e.createdAt??t,i=e.expiresAt??r+n;return{...e,createdAt:r,expiresAt:i}}function Jr(e){let t=Date.now(),n=e.ttlMs??18e5;for(let r of e.entries){let i=qr({...r,messageId:e.messageId??r.messageId},t,n);q.set(r.id,i)}for(let r of e.modals){let i=qr({...r,messageId:e.messageId??r.messageId},t,n);J.set(r.id,i)}}function Yr(e){let t=q.get(e.id);return t?Kr(t,Date.now())?(q.delete(e.id),null):(e.consume!==!1&&q.delete(e.id),t):null}function Xr(e){let t=J.get(e.id);return t?Kr(t,Date.now())?(J.delete(e.id),null):(e.consume!==!1&&J.delete(e.id),t):null}const Zr=`attachment://`,Qr=new Map([[`row`,`actions`],[`action-row`,`actions`]]);function Y(e){return`${e}${w.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 $r(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 ei(e,t){return e?.trim()||`field_${t+1}`}function ti(e,t){let n=e.trim();if(!n.startsWith(`attachment://`))throw Error(`${t} must start with "${Zr}"`);let r=n.slice(13).trim();if(!r)throw Error(`${t} must include an attachment filename`);return`${Zr}${r}`}function ni(e){let t=e.trim();if(!t.startsWith(`attachment://`))throw Error(`Attachment reference must start with "${Zr}"`);let n=t.slice(13).trim();if(!n)throw Error(`Attachment reference must include a filename`);return n}function ri(e){switch((e??`primary`).toLowerCase()){case`secondary`:return T.Secondary;case`success`:return T.Success;case`danger`:return T.Danger;case`link`:return T.Link;default:return T.Primary}}function ii(e){return e===`paragraph`?se.Paragraph:se.Short}function ai(e){let t=e.trim().toLowerCase();return Qr.get(t)??t}function oi(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 si(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:$r(n.allowedUsers,`${t}.allowedUsers`)}}function ci(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:oi(n.options,`${t}.options`)}}function li(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=oi(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:ei(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 ui(e,t){let n=X(e,t);switch(ai(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:si(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)=>si(e,`${t}.buttons[${n}]`)):void 0,i=n.select?ci(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:ti(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 di(e){if(e==null)return null;let t=X(e,`components`),n=t.blocks,r=Array.isArray(n)?n.map((e,t)=>ui(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)=>li(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 fi(e){let t=`occomp:cid=${e.componentId}`;return e.modalId?`${t};mid=${e.modalId}`:t}function pi(e){return`ocmodal:mid=${e}`}function mi(e){let t=A(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 hi(e){let t=A(e);if(t.key!==`ocmodal`)return null;let n=t.data.mid;return typeof n!=`string`||!n.trim()?null:n}function gi(e){return/^__openclaw_discord_component_[a-z_]+_wildcard__$/.test(e)}function _i(e){if(e===`*`||gi(e))return{key:`*`,data:{}};let t=A(e);return t.key===`occomp`?{key:`*`,data:t.data}:t}function vi(e){if(e===`*`||gi(e))return{key:`*`,data:{}};let t=A(e);return t.key===`ocmodal`?{key:`*`,data:t.data}:t}function yi(e,t){return t&&t.length>0?t.map(e=>new k(e)):e?[new k(e)]:[]}function bi(e){let t=ri(e.spec.style);if(t===T.Link||e.spec.url){if(!e.spec.url)throw Error(`Link buttons require a url`);let t=e.spec.url;class n extends he{constructor(...n){super(...n),this.label=e.spec.label,this.url=t}}return{component:new n}}let n=e.componentId??Y(`btn_`),r=fi({componentId:n,modalId:e.modalId});class i extends ce{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 xi(e){let t=(e.spec.type??`string`).toLowerCase(),n=e.componentId??Y(`sel_`),r=fi({componentId:n});if(t===`string`){let t=e.spec.options??[];if(t.length===0)throw Error(`String select menus require options`);class i extends Te{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 Oe{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 Se{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 _e{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 le{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 Si(e){return e instanceof Te||e instanceof Oe||e instanceof Se||e instanceof _e||e instanceof le}function Ci(e){if(e.type===`text`){class t extends Ee{constructor(...t){super(...t),this.customId=e.id,this.style=ii(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 Te{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 Se{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 Oe{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 ue{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 ye{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 wi(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 k(o));for(let t of e.spec.blocks??[]){if(t.type===`text`){i.push(new k(t.text));continue}if(t.type===`section`){let e=yi(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 De(t.accessory.url);else if(t.accessory?.type===`button`){let{component:e,entry:r}=bi({spec:t.accessory.button});n=e,r&&a(r)}i.push(new Ce(e,n));continue}if(t.type===`separator`){i.push(new we({spacing:t.spacing,divider:t.divider}));continue}if(t.type===`media-gallery`){i.push(new ge(t.items));continue}if(t.type===`file`){i.push(new pe(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}=bi({spec:n});e.push(t),r&&a(r)}}else if(t.select){let{component:n,entry:r}=xi({spec:t.select});e.push(n),a(r)}i.push(new O(e))}}if(e.spec.modal){let t=Y(`mdl_`),r=e.spec.modal.fields.map((e,t)=>({id:Y(`fld_`),name:ei(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}=bi({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 O){let e=c,t=e.components.some(e=>Si(e));e.components.length<5&&!t?e.addComponent(o):i.push(new O([o]))}else i.push(new O([o]))}if(i.length===0)throw Error(`components must include at least one block, text, or modal trigger`);let s=new de(i,e.spec.container);return r.push(s),{components:r,entries:t,modals:n}}function Ti(e){return e.some(e=>e.isV2)?ae.IsComponentsV2:void 0}var Ei=class extends ve{constructor(e){super(),this.customIdParser=vi,this.title=e.title,this.customId=pi(e.modalId),this.components=e.fields.map(e=>{let t=Ci(e);class n extends me{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 Di(e){return new Ei({modalId:e.id,title:e.title,fields:e.fields})}function Oi(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 ki=new Set([E.GuildForum,E.GuildMedia]);function Ai(e){let t=[];for(let n of e.blocks??[])n.type===`file`&&t.push(ni(n.file));return t}async function ji(e,t,n={}){let r=n.cfg??d(),a=i({cfg:r,accountId:n.accountId}),{token:o,rest:s,request:c}=I(n,r),{channelId:l}=await V(s,await Sn(e,n.accountId,r),c),u=await En(s,l);if(u&&ki.has(u))throw Error(`Discord components are not supported in forum-style channels`);let f=wi({spec:t,sessionKey:n.sessionKey,agentId:n.agentId,accountId:a.accountId}),p=Ti(f.components),h=n.silent?(p??0)|H:p??void 0,g=n.replyTo?{message_id:n.replyTo,fail_if_not_exists:!1}:void 0,_=Ai(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 te(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:Nn(e.buffer),name:t}]}else if(y)throw Error(`Discord component file blocks require a media attachment (media/path/filePath).`);let ee=U({...j({components:f.components,...h?{flags:h}:{},...b?{files:b}:{}}),...g?{message_reference:g}:{}}),x;try{x=await c(()=>s.post(D.channelMessages(l),{body:ee}),`components`)}catch(e){throw await B(e,{channelId:l,rest:s,token:o,hasMedia:!!b?.length})}return Jr({entries:f.entries,modals:f.modals,messageId:x.id}),m({channel:`discord`,accountId:a.accountId,direction:`outbound`}),{messageId:x.id??`unknown`,channelId:x.channel_id??l}}async function Mi(e,t,n,r={}){let{rest:i,request:a}=I(r,r.cfg??d()),o=xn(n);return await a(()=>i.put(D.channelMessageOwnReaction(e,t,o)),`react`),{ok:!0}}async function Ni(e,t,n,r={}){let{rest:i}=I(r,r.cfg??d()),a=xn(n);return await i.delete(D.channelMessageOwnReaction(e,t,a)),{ok:!0}}async function Pi(e,t,n={}){let{rest:r}=I(n,n.cfg??d()),i=await r.get(D.channelMessage(e,t)),a=new Set;for(let e of i.reactions??[]){let t=Fn(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(D.channelMessageOwnReaction(e,t,xn(n)))))),{ok:!0,removed:o}}async function Fi(e,t,n={}){let{rest:r}=I(n,n.cfg??d()),i=(await r.get(D.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=Fn(n.emoji);if(!i)continue;let s=encodeURIComponent(i),c=await r.get(D.channelMessageReaction(e,t,s),{limit:a});o.push({emoji:{id:n.emoji.id??null,name:n.emoji.name??null,raw:In(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 $,lr as A,et as At,$n as B,Ne as Bt,or as C,dt as Ct,cr as D,ut as Dt,fr as E,ct as Et,Kn as F,Qe as Ft,Gn as G,tr as H,Pe as Ht,qn as I,it as It,Rn as J,Ln as K,Qn as L,Ze as Lt,rr as M,nt as Mt,er as N,$e as Nt,ir as O,lt as Ot,Xn as P,tt as Pt,W as Q,nr as R,M as Rt,sr as S,pt as St,ur as T,st as Tt,Un as U,Fe as Ut,Yn as V,Me as Vt,Wn as W,Ie as Wt,Hn as X,Bn as Y,Vn as Z,Hr as _,St as _t,ji as a,F as at,yr as b,Pt as bt,mi as c,Bt as ct,vi as d,P as dt,yn as et,di as f,_t as ft,Ur as g,Ct as gt,zr as h,xt as ht,Ni as i,Yt as it,Jn as j,at as jt,pr as k,ot as kt,_i as l,Mt as lt,Xr as m,wt as mt,Mi as n,an as nt,Di as o,Vt as ot,Yr as p,kt as pt,zn as q,Pi as r,I as rt,Oi as s,zt as st,Fi as t,vn as tt,hi as u,N as ut,Gr as v,At as vt,ar as w,mt as wt,dr as x,ft as xt,Vr as y,Nt as yt,Zn as z,Ae as zt};
@@ -4,4 +4,4 @@ import{d as e,y as t,zt as n}from"./paths-D55o_j8-.js";import{Da as r,Ns as i,Ps
4
4
  `),o=[],s=``,c=0,l=null,u=()=>{if(!s)return;let e=Dt(s,l);e.trim().length&&o.push(e),s=``,c=0,l&&(s=l.openLine,c=1)};for(let e of a){let t=Tt(e),i=l!==null,a=l;t&&(l?l.markerChar===t.markerChar&&t.markerLen>=l.markerLen&&(a=null):a=t);let o=a?Et(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,_=Ot(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=Dt(s,l);e.trim().length&&o.push(e)}return jt(e,o)}function At(e,t){if((t.chunkMode??`length`)!==`newline`)return kt(e,t);let n=h(e,Math.max(1,Math.floor(t.maxChars??St)),`newline`),r=[];for(let e of n){let n=kt(e,t);if(!n.length&&e){r.push(e);continue}r.push(...n)}return r}function jt(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 Mt(e){let t=c(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 Nt(e,t){return t??new xe(e)}function Pt(e){let t=n(e.accountId),r=o(e.cfg,t),i=e.cfg.channels?.discord?.enabled!==!1,a=r.enabled!==!1;return{accountId:t,enabled:i&&a,name:r.name?.trim()||void 0,token:``,tokenSource:`none`,config:r}}function Ft(e,t){let n=e.cfg??t??r(),i=c(e.token,`channels.discord.token`),a=i?Pt({cfg:n,accountId:e.accountId}):s({cfg:n,accountId:e.accountId}),o=i??Mt({accountId:a.accountId,fallbackToken:a.token});return{token:o,rest:Nt(o,e.rest),account:a}}function F(e,t){let{token:n,rest:r,account:i}=Ft(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 Ft(e,e.cfg).rest}const It=Object.entries(oe).filter(([,e])=>typeof e==`bigint`),Lt=It.reduce((e,[,t])=>e|t,0n),Rt=oe.Administrator;function L(e,t){return t?e|BigInt(t):e}function zt(e,t){return t?e&~BigInt(t):e}function Bt(e){return It.filter(([,t])=>(e&t)===t).map(([e])=>e).toSorted()}function Vt(e){return(e&Rt)===Rt}function Ht(e,t){return(e&t)===t}function Ut(e){return e===E.GuildNewsThread||e===E.GuildPublicThread||e===E.GuildPrivateThread}async function Wt(e){let t=await e.get(D.user(`@me`));if(!t?.id)throw Error(`Failed to resolve bot user id`);return t.id}async function Gt(e,t,n={}){let r=I(n);try{let[n,i]=await Promise.all([r.get(D.guild(e)),r.get(D.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 Kt(e,t,n,r,i={}){let a=await Gt(e,t,i);return a===null?!1:Vt(a)?!0:r(a,n)}async function qt(e,t,n,r={}){return await Kt(e,t,n,(e,t)=>t.some(t=>Ht(e,t)),r)}async function Jt(e,t={}){let n=I(t),r=await n.get(D.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 Wt(n),[s,c]=await Promise.all([n.get(D.guild(a)),n.get(D.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(Vt(d))return{channelId:e,guildId:a,permissions:Bt(Lt),raw:Lt.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=zt(f,e.deny??`0`),f=L(f,e.allow??`0`));for(let e of p)c.roles?.includes(e.id)&&(f=zt(f,e.deny??`0`),f=L(f,e.allow??`0`));for(let e of p)e.id===o&&(f=zt(f,e.deny??`0`),f=L(f,e.allow??`0`));return{channelId:e,guildId:a,permissions:Bt(f),raw:f.toString(),isDm:!1,channelType:i}}var Yt=class extends Error{constructor(e,t){super(e),this.name=`DiscordSendError`,t&&Object.assign(this,t)}toString(){return this.message}};const Xt=/#\d{4}$/,Zt=new Map;function Qt(e){return n(e??`default`)||`default`}function $t(e){let t=String(e??``).trim();return/^\d+$/.test(t)?t:null}function en(e){let t=e.trim();return!t||(t.startsWith(`@`)&&(t=t.slice(1).trim()),!t||/\s/.test(t))?null:t.toLowerCase()}function tn(e){let t=Qt(e),n=Zt.get(t);if(n)return n;let r=new Map;return Zt.set(t,r),r}function nn(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 rn(e){let t=$t(e.userId);if(!t)return;let n=tn(e.accountId);for(let r of e.handles){if(typeof r!=`string`)continue;let e=en(r);if(!e)continue;nn(n,e,t);let i=e.replace(Xt,``);i&&i!==e&&nn(n,i,t)}}function an(e){let t=Zt.get(Qt(e.accountId));if(!t)return;let n=en(e.handle);if(!n)return;let r=t.get(n);if(r)return r;let i=n.replace(Xt,``);if(!(!i||i===n))return t.get(i)}function on(e){return e?.trim().toLowerCase()??``}function sn(e){return e.bot?0:1}function cn(e){let t=c(s({cfg:e.cfg,accountId:e.accountId}).token,`channels.discord.token`);return t?{token:t,query:on(e.query)}:null}async function ln(e){return(await Ze(`/users/@me/guilds`,e)).filter(e=>e.id&&e.name)}async function un(e){let t=cn(e);if(!t)return[];let{token:n,query:r}=t,i=await ln(n),a=[];for(let t of i){let i=await Ze(`/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 dn(e){let t=cn(e);if(!t)return[];let{token:n,query:r}=t;if(!r)return[];let i=await ln(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 Ze(`/guilds/${t.id}/members/search?${i.toString()}`,n);for(let t of s){let n=t.user;if(!n?.id)continue;rn({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:sn(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 fn(e){return u({platform:`Discord`,target:R(e,{defaultKind:`channel`}),kind:`channel`})}async function pn(e,t,n={}){let r=e.trim();if(!r)return;let i=gn(r),a=hn(r,n)||i,o=mn(r,n);if(o&&o.kind!==`channel`&&!i)return o;if(!a)return o??R(r,n);try{let e=(await dn({...t,query:r,limit:1}))[0];if(e&&e.kind===`user`){let n=e.id.replace(/^user:/,``);return rn({accountId:t.accountId,userId:n,handles:[r,e.name,e.handle]}),f(`user`,n,r)}}catch{}return R(r,n)}function mn(e,t){try{return R(e,t)}catch{return}}function hn(e,t){return/^<@!?(\d+)>$/.test(e)||/^(user:|discord:)/.test(e)||e.startsWith(`@`)?!0:/^\d+$/.test(e)?t.defaultKind===`user`:!1}function gn(e){return!/^(user:|channel:|discord:|@|<@!?)|[\d]+$/.test(e)}function _n(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 z(e,t,n){let i=n??r(),a=s({cfg:i,accountId:t}),o=e.trim(),c={ambiguousMessage:`Ambiguous Discord recipient "${o}". Use "user:${o}" for DMs or "channel:${o}" for channel messages.`},l=await pn(e,{cfg:i,accountId:a.accountId},c);if(l)return{kind:l.kind,id:l.id};let u=R(e,c);if(!u)throw Error(`Recipient is required for Discord sends`);return{kind:u.kind,id:u.id}}function vn(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 B(e,t){let n=e.trim();if(!n)throw Error(`${t} is required`);return n}function yn(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:ke.Default}}function bn(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 V(e,t){if(e instanceof Yt)return e;let n=bn(e);if(n===50007)return new Yt(`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 Jt(t.channelId,{rest:t.rest,token:t.token}),n=new Set(e.permissions),i=[`ViewChannel`,`SendMessages`];Ut(e.channelType)&&i.push(`SendMessagesInThreads`),t.hasMedia&&i.push(`AttachFiles`),r=i.filter(e=>!n.has(e))}catch{}return new Yt(`${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 H(e,t,n){if(t.kind===`channel`)return{channelId:t.id};let r=await n(()=>e.post(D.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 xn(e,t){try{return(await e.get(D.channel(t)))?.type}catch{return}}const U=4096;function Sn(e,t={}){if(!e)return[];let n=At(e,{maxChars:t.maxChars??2e3,maxLines:t.maxLinesPerMessage,chunkMode:t.chunkMode});return!n.length&&e&&n.push(e),n}function Cn(e){return!!e?.some(e=>`isV2`in e&&e.isV2)}function wn(e){if(!(!e.components||!e.isFirst))return typeof e.components==`function`?e.components(e.text):e.components}function Tn(e){if(e?.length)return e.map(e=>e instanceof fe?e:new fe(e))}function En(e){if(!(!e.embeds||!e.isFirst))return Tn(e.embeds)}function Dn(e){let t={},n=Cn(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 W(e){return Object.fromEntries(Object.entries(e).filter(([,e])=>e!==void 0))}function On(e){if(e instanceof Blob)return e;let t=new ArrayBuffer(e.byteLength);return new Uint8Array(t).set(e),new Blob([t])}async function G(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?U:void 0,f=Sn(n,{maxLinesPerMessage:a,chunkMode:c}),p=async(n,r)=>{let a=W({...j(Dn({text:n,components:wn({components:o,text:n,isFirst:r}),embeds:En({embeds:s,isFirst:r}),flags:d})),...u?{message_reference:u}:{}});return await i(()=>e.post(D.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 kn(e,t,n,r,i,a,o,s,c,l,u,d,f){let p=await m(r,y({maxBytes:a,mediaLocalRoots:i})),h=n?Sn(n,{maxLinesPerMessage:c,chunkMode:d}):[],g=h[0]??``,_=o?{message_id:o,fail_if_not_exists:!1}:void 0,v=f?U:void 0,b=On(p.buffer),ee=Dn({text:g,components:wn({components:l,text:g,isFirst:!0}),embeds:En({embeds:u,isFirst:!0}),flags:v,files:[{data:b,name:p.fileName??`upload`}]}),x=await s(()=>e.post(D.channelMessages(t),{body:W({...j(ee),..._?{message_reference:_}:{}})}),`media`);for(let n of h.slice(1))n.trim()&&await G(e,t,n,o,s,c,void 0,void 0,d,f);return x}function An(e){return e.id&&e.name?`${e.name}:${e.id}`:e.name??``}function jn(e){return An(e)}async function Mn(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(D.guildChannels(e.guildId),{body:r})}async function Nn(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(D.channel(e.channelId),{body:r})}async function Pn(e,t={}){return await I(t).delete(D.channel(e)),{ok:!0,channelId:e}}async function Fn(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(D.guildChannels(e.guildId),{body:r}),{ok:!0}}async function In(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 Ln(e,t,n={}){return await I(n).delete(`/channels/${e}/permissions/${t}`),{ok:!0}}async function Rn(e,t={}){return await I(t).get(D.guildEmojis(e))}async function zn(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(D.guildEmojis(e.guildId),{body:{name:B(e.name,`Emoji name`),image:a,roles:o.length?o:void 0}})}async function Bn(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(D.guildStickers(e.guildId),{body:{name:B(e.name,`Sticker name`),description:B(e.description,`Sticker description`),tags:B(e.tags,`Sticker tags`),files:[{data:r.buffer,name:r.fileName??`sticker`,contentType:i}]}})}async function Vn(e,t,n={}){return await I(n).get(D.guildMember(e,t))}async function Hn(e,t={}){return await I(t).get(D.guildRoles(e))}async function Un(e,t={}){return await I(t).put(D.guildMemberRole(e.guildId,e.userId,e.roleId)),{ok:!0}}async function Wn(e,t={}){return await I(t).delete(D.guildMemberRole(e.guildId,e.userId,e.roleId)),{ok:!0}}async function Gn(e,t={}){return await I(t).get(D.channel(e))}async function Kn(e,t={}){return await I(t).get(D.guildChannels(e))}async function qn(e,t,n={}){return await I(n).get(D.guildVoiceState(e,t))}async function Jn(e,t={}){return await I(t).get(D.guildScheduledEvents(e))}async function Yn(e,t,n={}){return await I(n).post(D.guildScheduledEvents(e),{body:t})}async function Xn(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(D.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 Zn(e,t={}){return await I(t).delete(D.guildMember(e.guildId,e.userId),{headers:e.reason?{"X-Audit-Log-Reason":encodeURIComponent(e.reason)}:void 0}),{ok:!0}}async function Qn(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(D.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 $n(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(D.channelMessages(e),a)}async function er(e,t,n={}){return await I(n).get(D.channelMessage(e,t))}async function tr(e,t,n,r={}){return await I(r).patch(D.channelMessage(e,t),{body:{content:n.content}})}async function nr(e,t,n={}){return await I(n).delete(D.channelMessage(e,t)),{ok:!0}}async function rr(e,t,n={}){return await I(n).put(D.channelPin(e,t)),{ok:!0}}async function ir(e,t,n={}){return await I(n).delete(D.channelPin(e,t)),{ok:!0}}async function ar(e,t={}){return await I(t).get(D.channelPins(e))}async function or(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(D.channel(e)))?.type}catch{a=void 0}let o=a===E.GuildForum||a===E.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=E.PublicThread);let s=t.messageId?D.threads(e,t.messageId):D.threads(e),c=await r.post(s,{body:i});return!o&&t.content?.trim()&&await r.post(D.channelMessages(c.id),{body:{content:t.content}}),c}async function sr(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(D.channelThreads(e.channelId,`public`),t)}return await n.get(D.guildActiveThreads(e.guildId))}async function cr(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 lr(e){if(e)try{await w.unlink(e)}catch{}}const ur=/```[\s\S]*?```|`[^`\n]*`/g,dr=/(^|[\s([{"'.,;:!?])@([a-z0-9_.-]{2,32}(?:#[0-9]{4})?)/gi,fr=new Set([`everyone`,`here`]);function pr(e){let t=String(e??``).trim();return/^\d+$/.test(t)?t:null}function mr(e){let t=e.userId==null?null:pr(e.userId),n=e.roleId==null?null:pr(e.roleId),r=e.channelId==null?null:pr(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 hr(e,t){return e.includes(`@`)?e.replace(dr,(e,n,r)=>{let i=String(r??``).trim();if(!i)return e;let a=i.toLowerCase();if(fr.has(a))return e;let o=an({accountId:t,handle:i});return o?`${String(n??``)}${mr({userId:o})}`:e}):e}function K(e,t){if(!e.includes(`@`))return e;let n=``,r=0;ur.lastIndex=0;for(let i of e.matchAll(ur)){let a=i.index??0;n+=hr(e.slice(r,a),t.accountId),n+=i[0],r=a+i[0].length}return n+=hr(e.slice(r),t.accountId),n}const gr=re(ne);function _r(e,t){return{timeout:t?.timeoutMs??e,maxBuffer:t?.maxBufferBytes??10485760}}async function vr(e,t){let{stdout:n}=await gr(`ffprobe`,e,_r(1e4,t));return n.toString()}async function yr(e,t){let{stdout:n}=await gr(`ffmpeg`,e,_r(45e3,t));return n.toString()}function br(e,t){return e.trim().toLowerCase().split(/[,\r\n]+/,t).map(e=>e.trim())}function xr(e){let[t,n]=br(e,2),r=t||null,i=n?Number.parseInt(n,10):NaN;return{codec:r,sampleRateHz:Number.isFinite(i)?i:null}}const Sr=8192;async function Cr(e){try{let t=await vr([`-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 wr(e){try{return await Tr(e)}catch{return Er()}}async function Tr(e){let t=l(),n=C.join(t,`waveform-${ie.randomUUID()}.raw`);try{await yr([`-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 lr(n)}}function Er(){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 Dr(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}=xr(await vr([`-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=l(),r=C.join(n,`voice-${ie.randomUUID()}.ogg`);return await yr([`-y`,`-i`,e,`-vn`,`-sn`,`-dn`,`-t`,`1200`,`-ar`,`48000`,`-c:a`,`libopus`,`-b:a`,`64k`,r]),{path:r,cleanup:!0}}async function Or(e){let[t,n]=await Promise.all([Cr(e),wr(e)]);return{durationSecs:t,waveform:n}}async function kr(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 be(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?Sr|4096:Sr,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 Ar(e){for(let t of e.chunks)await G(e.rest,e.threadId,t,void 0,e.request,e.maxLinesPerMessage,void 0,void 0,e.chunkMode,e.silent)}function jr(e){return(e.split(`
7
- `).find(e=>e.trim())?.trim()??``).slice(0,100)||new Date().toISOString().slice(0,16)}function Mr(e){return e===E.GuildForum||e===E.GuildMedia}function q(e,t){return{messageId:e.id?String(e.id):`unknown`,channelId:String(e.channel_id??t)}}async function Nr(e,t){let n=t.cfg??r(),{rest:i,request:a}=F(t,n),{channelId:o}=await H(i,await z(e,t.accountId,n),a);return{rest:i,request:a,channelId:o}}async function Pr(e,t,n={}){let i=n.cfg??r(),a=s({cfg:i,accountId:n.accountId}),o=v({cfg:i,channel:`discord`,accountId:a.accountId}),c=g(i,`discord`,a.accountId),l=typeof a.config.mediaMaxMb==`number`?a.config.mediaMaxMb*1024*1024:8*1024*1024,u=te(t??``,o),d=K(u,{accountId:a.accountId}),{token:f,rest:p,request:m}=F(n,i),{channelId:h}=await H(p,await z(e,n.accountId,i),m);if(Mr(await xn(p,h))){let e=jr(u),t=Sn(d,{maxLinesPerMessage:a.config.maxLinesPerMessage,chunkMode:c}),r=t[0]?.trim()?t[0]:e,i=Dn({text:r,components:wn({components:n.components,text:r,isFirst:!0}),embeds:En({embeds:n.embeds,isFirst:!0}),flags:n.silent?4096:void 0}),o;try{o=await m(()=>p.post(D.threads(h),{body:{name:e,message:W(j(i))}}),`forum-thread`)}catch(e){throw await V(e,{channelId:h,rest:p,token:f,hasMedia:!!n.mediaUrl})}let s=o.id,g=o.message?.id??s,_=o.message?.channel_id??s,v=t.slice(1);try{if(n.mediaUrl){let[e,...t]=v;await kn(p,s,e??``,n.mediaUrl,n.mediaLocalRoots,l,void 0,m,a.config.maxLinesPerMessage,void 0,void 0,c,n.silent),await Ar({rest:p,threadId:s,chunks:t,request:m,maxLinesPerMessage:a.config.maxLinesPerMessage,chunkMode:c,silent:n.silent})}else await Ar({rest:p,threadId:s,chunks:v,request:m,maxLinesPerMessage:a.config.maxLinesPerMessage,chunkMode:c,silent:n.silent})}catch(e){throw await V(e,{channelId:s,rest:p,token:f,hasMedia:!!n.mediaUrl})}return x({channel:`discord`,accountId:a.accountId,direction:`outbound`}),q({id:g,channel_id:_},h)}let _;try{_=n.mediaUrl?await kn(p,h,d,n.mediaUrl,n.mediaLocalRoots,l,n.replyTo,m,a.config.maxLinesPerMessage,n.components,n.embeds,c,n.silent):await G(p,h,d,n.replyTo,m,a.config.maxLinesPerMessage,n.components,n.embeds,c,n.silent)}catch(e){throw await V(e,{channelId:h,rest:p,token:f,hasMedia:!!n.mediaUrl})}return x({channel:`discord`,accountId:a.accountId,direction:`outbound`}),q(_,h)}function Fr(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 Ir(e,t){let n=t.webhookId.trim(),i=t.webhookToken.trim();if(!n||!i)throw Error(`Discord webhook id/token are required`);let a=K(e,{accountId:t.accountId}),o=typeof t.replyTo==`string`?t.replyTo.trim():``,c=o?{message_id:o,fail_if_not_exists:!1}:void 0,l=await fetch(Fr({webhookId:n,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,...c?{message_reference:c}:{}})});if(!l.ok){let e=await l.text().catch(()=>``);throw Error(`Discord webhook send failed (${l.status}${e?`: ${e.slice(0,200)}`:``})`)}let u=await l.json().catch(()=>({}));try{x({channel:`discord`,accountId:s({cfg:t.cfg??r(),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 Lr(e,t,n={}){let{rest:r,request:i,channelId:a}=await Nr(e,n),o=n.content?.trim(),s=o?K(o,{accountId:n.accountId}):void 0,c=vn(t);return q(await i(()=>r.post(D.channelMessages(a),{body:{content:s||void 0,sticker_ids:c}}),`sticker`),a)}async function Rr(e,t,n={}){let{rest:r,request:i,channelId:a}=await Nr(e,n),o=n.content?.trim(),s=o?K(o,{accountId:n.accountId}):void 0;if(t.durationSeconds!==void 0)throw Error(`Discord polls do not support durationSeconds; use durationHours`);let c=yn(t),l=n.silent?U:void 0;return q(await i(()=>r.post(D.channelMessages(a),{body:{content:s||void 0,poll:c,...l?{flags:l}:{}}}),`poll`),a)}async function zr(n){let r=await _(n,t(`audio`)),i=r.fileName?C.extname(r.fileName):``,a=r.contentType?e(r.contentType):``,o=i||a||`.bin`,s=l(),c=C.join(s,`voice-src-${ie.randomUUID()}${o}`);return await w.writeFile(c,r.buffer,{mode:384}),{filePath:c}}async function Br(e,t,n={}){let{filePath:i}=await zr(t),a=null,o=!1,c,l,u;try{let t=n.cfg??r(),d=s({cfg:t,accountId:n.accountId}),f=F(n,t);c=f.token,l=f.rest;let p=f.request,m=await z(e,n.accountId,t);u=(await H(l,m,p)).channelId;let h=await Dr(i);a=h.path,o=h.cleanup;let g=await Or(a),_=await w.readFile(a),v=await kr(l,u,_,g,n.replyTo,p,n.silent,c);return x({channel:`discord`,accountId:d.accountId,direction:`outbound`}),q(v,u)}catch(e){throw u&&l&&c?await V(e,{channelId:u,rest:l,token:c,hasMedia:!0}):e}finally{await lr(o?a:null),await lr(i)}}const J=new Map,Y=new Map;function Vr(e,t){return typeof e.expiresAt==`number`&&e.expiresAt<=t}function Hr(e,t,n){let r=e.createdAt??t,i=e.expiresAt??r+n;return{...e,createdAt:r,expiresAt:i}}function Ur(e){let t=Date.now(),n=e.ttlMs??18e5;for(let r of e.entries){let i=Hr({...r,messageId:e.messageId??r.messageId},t,n);J.set(r.id,i)}for(let r of e.modals){let i=Hr({...r,messageId:e.messageId??r.messageId},t,n);Y.set(r.id,i)}}function Wr(e){let t=J.get(e.id);return t?Vr(t,Date.now())?(J.delete(e.id),null):(e.consume!==!1&&J.delete(e.id),t):null}function Gr(e){let t=Y.get(e.id);return t?Vr(t,Date.now())?(Y.delete(e.id),null):(e.consume!==!1&&Y.delete(e.id),t):null}const Kr=`attachment://`,qr=new Map([[`row`,`actions`],[`action-row`,`actions`]]);function Jr(e){return`${e}${ie.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 Yr(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 Xr(e,t){return e?.trim()||`field_${t+1}`}function Zr(e,t){let n=e.trim();if(!n.startsWith(`attachment://`))throw Error(`${t} must start with "${Kr}"`);let r=n.slice(13).trim();if(!r)throw Error(`${t} must include an attachment filename`);return`${Kr}${r}`}function Qr(e){let t=e.trim();if(!t.startsWith(`attachment://`))throw Error(`Attachment reference must start with "${Kr}"`);let n=t.slice(13).trim();if(!n)throw Error(`Attachment reference must include a filename`);return n}function $r(e){switch((e??`primary`).toLowerCase()){case`secondary`:return T.Secondary;case`success`:return T.Success;case`danger`:return T.Danger;case`link`:return T.Link;default:return T.Primary}}function ei(e){return e===`paragraph`?se.Paragraph:se.Short}function ti(e){let t=e.trim().toLowerCase();return qr.get(t)??t}function ni(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 ri(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:Yr(n.allowedUsers,`${t}.allowedUsers`)}}function ii(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:ni(n.options,`${t}.options`)}}function ai(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=ni(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:Xr(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 oi(e,t){let n=X(e,t);switch(ti(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:ri(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)=>ri(e,`${t}.buttons[${n}]`)):void 0,i=n.select?ii(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:Zr(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 si(e){if(e==null)return null;let t=X(e,`components`),n=t.blocks,r=Array.isArray(n)?n.map((e,t)=>oi(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)=>ai(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 ci(e){let t=`occomp:cid=${e.componentId}`;return e.modalId?`${t};mid=${e.modalId}`:t}function li(e){return`ocmodal:mid=${e}`}function ui(e){let t=A(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 di(e){let t=A(e);if(t.key!==`ocmodal`)return null;let n=t.data.mid;return typeof n!=`string`||!n.trim()?null:n}function fi(e){return/^__openclaw_discord_component_[a-z_]+_wildcard__$/.test(e)}function pi(e){if(e===`*`||fi(e))return{key:`*`,data:{}};let t=A(e);return t.key===`occomp`?{key:`*`,data:t.data}:t}function mi(e){if(e===`*`||fi(e))return{key:`*`,data:{}};let t=A(e);return t.key===`ocmodal`?{key:`*`,data:t.data}:t}function hi(e,t){return t&&t.length>0?t.map(e=>new k(e)):e?[new k(e)]:[]}function gi(e){let t=$r(e.spec.style);if(t===T.Link||e.spec.url){if(!e.spec.url)throw Error(`Link buttons require a url`);let t=e.spec.url;class n extends he{constructor(...n){super(...n),this.label=e.spec.label,this.url=t}}return{component:new n}}let n=e.componentId??Jr(`btn_`),r=ci({componentId:n,modalId:e.modalId});class i extends ce{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 _i(e){let t=(e.spec.type??`string`).toLowerCase(),n=e.componentId??Jr(`sel_`),r=ci({componentId:n});if(t===`string`){let t=e.spec.options??[];if(t.length===0)throw Error(`String select menus require options`);class i extends Te{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 Oe{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 Se{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 _e{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 le{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 vi(e){return e instanceof Te||e instanceof Oe||e instanceof Se||e instanceof _e||e instanceof le}function yi(e){if(e.type===`text`){class t extends Ee{constructor(...t){super(...t),this.customId=e.id,this.style=ei(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 Te{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 Se{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 Oe{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 ue{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 ye{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 bi(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 k(o));for(let t of e.spec.blocks??[]){if(t.type===`text`){i.push(new k(t.text));continue}if(t.type===`section`){let e=hi(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 De(t.accessory.url);else if(t.accessory?.type===`button`){let{component:e,entry:r}=gi({spec:t.accessory.button});n=e,r&&a(r)}i.push(new Ce(e,n));continue}if(t.type===`separator`){i.push(new we({spacing:t.spacing,divider:t.divider}));continue}if(t.type===`media-gallery`){i.push(new ge(t.items));continue}if(t.type===`file`){i.push(new pe(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}=gi({spec:n});e.push(t),r&&a(r)}}else if(t.select){let{component:n,entry:r}=_i({spec:t.select});e.push(n),a(r)}i.push(new O(e))}}if(e.spec.modal){let t=Jr(`mdl_`),r=e.spec.modal.fields.map((e,t)=>({id:Jr(`fld_`),name:Xr(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}=gi({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 O){let e=c,t=e.components.some(e=>vi(e));e.components.length<5&&!t?e.addComponent(o):i.push(new O([o]))}else i.push(new O([o]))}if(i.length===0)throw Error(`components must include at least one block, text, or modal trigger`);let s=new de(i,e.spec.container);return r.push(s),{components:r,entries:t,modals:n}}function xi(e){return e.some(e=>e.isV2)?ae.IsComponentsV2:void 0}var Si=class extends ve{constructor(e){super(),this.customIdParser=mi,this.title=e.title,this.customId=li(e.modalId),this.components=e.fields.map(e=>{let t=yi(e);class n extends me{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 Ci(e){return new Si({modalId:e.id,title:e.title,fields:e.fields})}function wi(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 Ti=new Set([E.GuildForum,E.GuildMedia]);function Ei(e){let t=[];for(let n of e.blocks??[])n.type===`file`&&t.push(Qr(n.file));return t}async function Di(e,t,n={}){let i=n.cfg??r(),a=s({cfg:i,accountId:n.accountId}),{token:o,rest:c,request:l}=F(n,i),{channelId:u}=await H(c,await z(e,n.accountId,i),l),d=await xn(c,u);if(d&&Ti.has(d))throw Error(`Discord components are not supported in forum-style channels`);let f=bi({spec:t,sessionKey:n.sessionKey,agentId:n.agentId,accountId:a.accountId}),p=xi(f.components),h=n.silent?(p??0)|U:p??void 0,g=n.replyTo?{message_id:n.replyTo,fail_if_not_exists:!1}:void 0,_=Ei(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 m(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:On(e.buffer),name:t}]}else if(y)throw Error(`Discord component file blocks require a media attachment (media/path/filePath).`);let ee=W({...j({components:f.components,...h?{flags:h}:{},...b?{files:b}:{}}),...g?{message_reference:g}:{}}),S;try{S=await l(()=>c.post(D.channelMessages(u),{body:ee}),`components`)}catch(e){throw await V(e,{channelId:u,rest:c,token:o,hasMedia:!!b?.length})}return Ur({entries:f.entries,modals:f.modals,messageId:S.id}),x({channel:`discord`,accountId:a.accountId,direction:`outbound`}),{messageId:S.id??`unknown`,channelId:S.channel_id??u}}async function Oi(e,t,n,i={}){let{rest:a,request:o}=F(i,i.cfg??r()),s=_n(n);return await o(()=>a.put(D.channelMessageOwnReaction(e,t,s)),`react`),{ok:!0}}async function ki(e,t,n,i={}){let{rest:a}=F(i,i.cfg??r()),o=_n(n);return await a.delete(D.channelMessageOwnReaction(e,t,o)),{ok:!0}}async function Ai(e,t,n={}){let{rest:i}=F(n,n.cfg??r()),a=await i.get(D.channelMessage(e,t)),o=new Set;for(let e of a.reactions??[]){let t=An(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(D.channelMessageOwnReaction(e,t,_n(n)))))),{ok:!0,removed:s}}async function ji(e,t,n={}){let{rest:i}=F(n,n.cfg??r()),a=(await i.get(D.channelMessage(e,t))).reactions??[];if(a.length===0)return[];let o=typeof n.limit==`number`&&Number.isFinite(n.limit)?Math.min(Math.max(Math.floor(n.limit),1),100):100,s=[];for(let n of a){let r=An(n.emoji);if(!r)continue;let a=encodeURIComponent(r),c=await i.get(D.channelMessageReaction(e,t,a),{limit:o});s.push({emoji:{id:n.emoji.id??null,name:n.emoji.name??null,raw:jn(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}export{W as $,ir as A,Ve as At,Jn as B,tr as C,Qe as Ct,rr as D,We as Dt,sr as E,Ze as Et,Vn as F,Ne as Ft,Bn as G,Xn as H,Hn as I,Me as It,Nn as J,Mn as K,qn as L,Fe as Lt,Qn as M,Be as Mt,Yn as N,Ue as Nt,$n as O,Ge as Ot,Gn as P,Ae as Pt,G as Q,Zn as R,Ie as Rt,nr as S,et as St,ar as T,M as Tt,Rn as U,Wn as V,zn as W,Ln as X,Fn as Y,In as Z,Lr as _,lt as _t,Di as a,qt as at,mr as b,xt as bt,ui as c,At as ct,mi as d,P as dt,R as et,si as f,it as ft,Rr as g,ut as gt,Pr as h,ct as ht,ki as i,Jt as it,Un as j,Re as jt,cr as k,ze as kt,pi as l,yt as lt,Gr as m,dt as mt,Oi as n,un as nt,Ci as o,F as ot,Wr as p,gt as pt,Pn as q,Ai as r,dn as rt,wi as s,Ft as st,ji as t,fn as tt,di as u,N as ut,Br as v,_t as vt,er as w,tt as wt,or as x,$e as xt,Ir as y,bt as yt,Kn as z};
7
+ `).find(e=>e.trim())?.trim()??``).slice(0,100)||new Date().toISOString().slice(0,16)}function Mr(e){return e===E.GuildForum||e===E.GuildMedia}function q(e,t){return{messageId:e.id?String(e.id):`unknown`,channelId:String(e.channel_id??t)}}async function Nr(e,t){let n=t.cfg??r(),{rest:i,request:a}=F(t,n),{channelId:o}=await H(i,await z(e,t.accountId,n),a);return{rest:i,request:a,channelId:o}}async function Pr(e,t,n={}){let i=n.cfg??r(),a=s({cfg:i,accountId:n.accountId}),o=v({cfg:i,channel:`discord`,accountId:a.accountId}),c=g(i,`discord`,a.accountId),l=typeof a.config.mediaMaxMb==`number`?a.config.mediaMaxMb*1024*1024:8*1024*1024,u=te(t??``,o),d=K(u,{accountId:a.accountId}),{token:f,rest:p,request:m}=F(n,i),{channelId:h}=await H(p,await z(e,n.accountId,i),m);if(Mr(await xn(p,h))){let e=jr(u),t=Sn(d,{maxLinesPerMessage:a.config.maxLinesPerMessage,chunkMode:c}),r=t[0]?.trim()?t[0]:e,i=Dn({text:r,components:wn({components:n.components,text:r,isFirst:!0}),embeds:En({embeds:n.embeds,isFirst:!0}),flags:n.silent?4096:void 0}),o;try{o=await m(()=>p.post(D.threads(h),{body:{name:e,message:W(j(i))}}),`forum-thread`)}catch(e){throw await V(e,{channelId:h,rest:p,token:f,hasMedia:!!n.mediaUrl})}let s=o.id,g=o.message?.id??s,_=o.message?.channel_id??s,v=t.slice(1);try{if(n.mediaUrl){let[e,...t]=v;await kn(p,s,e??``,n.mediaUrl,n.mediaLocalRoots,l,void 0,m,a.config.maxLinesPerMessage,void 0,void 0,c,n.silent),await Ar({rest:p,threadId:s,chunks:t,request:m,maxLinesPerMessage:a.config.maxLinesPerMessage,chunkMode:c,silent:n.silent})}else await Ar({rest:p,threadId:s,chunks:v,request:m,maxLinesPerMessage:a.config.maxLinesPerMessage,chunkMode:c,silent:n.silent})}catch(e){throw await V(e,{channelId:s,rest:p,token:f,hasMedia:!!n.mediaUrl})}return x({channel:`discord`,accountId:a.accountId,direction:`outbound`}),q({id:g,channel_id:_},h)}let _;try{_=n.mediaUrl?await kn(p,h,d,n.mediaUrl,n.mediaLocalRoots,l,n.replyTo,m,a.config.maxLinesPerMessage,n.components,n.embeds,c,n.silent):await G(p,h,d,n.replyTo,m,a.config.maxLinesPerMessage,n.components,n.embeds,c,n.silent)}catch(e){throw await V(e,{channelId:h,rest:p,token:f,hasMedia:!!n.mediaUrl})}return x({channel:`discord`,accountId:a.accountId,direction:`outbound`}),q(_,h)}function Fr(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 Ir(e,t){let n=t.webhookId.trim(),i=t.webhookToken.trim();if(!n||!i)throw Error(`Discord webhook id/token are required`);let a=K(e,{accountId:t.accountId}),o=typeof t.replyTo==`string`?t.replyTo.trim():``,c=o?{message_id:o,fail_if_not_exists:!1}:void 0,l=await fetch(Fr({webhookId:n,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,...c?{message_reference:c}:{}})});if(!l.ok){let e=await l.text().catch(()=>``);throw Error(`Discord webhook send failed (${l.status}${e?`: ${e.slice(0,200)}`:``})`)}let u=await l.json().catch(()=>({}));try{x({channel:`discord`,accountId:s({cfg:t.cfg??r(),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 Lr(e,t,n={}){let{rest:r,request:i,channelId:a}=await Nr(e,n),o=n.content?.trim(),s=o?K(o,{accountId:n.accountId}):void 0,c=vn(t);return q(await i(()=>r.post(D.channelMessages(a),{body:{content:s||void 0,sticker_ids:c}}),`sticker`),a)}async function Rr(e,t,n={}){let{rest:r,request:i,channelId:a}=await Nr(e,n),o=n.content?.trim(),s=o?K(o,{accountId:n.accountId}):void 0;if(t.durationSeconds!==void 0)throw Error(`Discord polls do not support durationSeconds; use durationHours`);let c=yn(t),l=n.silent?U:void 0;return q(await i(()=>r.post(D.channelMessages(a),{body:{content:s||void 0,poll:c,...l?{flags:l}:{}}}),`poll`),a)}async function zr(n){let r=await _(n,t(`audio`)),i=r.fileName?C.extname(r.fileName):``,a=r.contentType?e(r.contentType):``,o=i||a||`.bin`,s=l(),c=C.join(s,`voice-src-${ie.randomUUID()}${o}`);return await w.writeFile(c,r.buffer,{mode:384}),{filePath:c}}async function Br(e,t,n={}){let{filePath:i}=await zr(t),a=null,o=!1,c,l,u;try{let t=n.cfg??r(),d=s({cfg:t,accountId:n.accountId}),f=F(n,t);c=f.token,l=f.rest;let p=f.request,m=await z(e,n.accountId,t);u=(await H(l,m,p)).channelId;let h=await Dr(i);a=h.path,o=h.cleanup;let g=await Or(a),_=await w.readFile(a),v=await kr(l,u,_,g,n.replyTo,p,n.silent,c);return x({channel:`discord`,accountId:d.accountId,direction:`outbound`}),q(v,u)}catch(e){throw u&&l&&c?await V(e,{channelId:u,rest:l,token:c,hasMedia:!0}):e}finally{await lr(o?a:null),await lr(i)}}const J=new Map,Y=new Map;function Vr(e,t){return typeof e.expiresAt==`number`&&e.expiresAt<=t}function Hr(e,t,n){let r=e.createdAt??t,i=e.expiresAt??r+n;return{...e,createdAt:r,expiresAt:i}}function Ur(e){let t=Date.now(),n=e.ttlMs??18e5;for(let r of e.entries){let i=Hr({...r,messageId:e.messageId??r.messageId},t,n);J.set(r.id,i)}for(let r of e.modals){let i=Hr({...r,messageId:e.messageId??r.messageId},t,n);Y.set(r.id,i)}}function Wr(e){let t=J.get(e.id);return t?Vr(t,Date.now())?(J.delete(e.id),null):(e.consume!==!1&&J.delete(e.id),t):null}function Gr(e){let t=Y.get(e.id);return t?Vr(t,Date.now())?(Y.delete(e.id),null):(e.consume!==!1&&Y.delete(e.id),t):null}const Kr=`attachment://`,qr=new Map([[`row`,`actions`],[`action-row`,`actions`]]);function Jr(e){return`${e}${ie.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 Yr(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 Xr(e,t){return e?.trim()||`field_${t+1}`}function Zr(e,t){let n=e.trim();if(!n.startsWith(`attachment://`))throw Error(`${t} must start with "${Kr}"`);let r=n.slice(13).trim();if(!r)throw Error(`${t} must include an attachment filename`);return`${Kr}${r}`}function Qr(e){let t=e.trim();if(!t.startsWith(`attachment://`))throw Error(`Attachment reference must start with "${Kr}"`);let n=t.slice(13).trim();if(!n)throw Error(`Attachment reference must include a filename`);return n}function $r(e){switch((e??`primary`).toLowerCase()){case`secondary`:return T.Secondary;case`success`:return T.Success;case`danger`:return T.Danger;case`link`:return T.Link;default:return T.Primary}}function ei(e){return e===`paragraph`?se.Paragraph:se.Short}function ti(e){let t=e.trim().toLowerCase();return qr.get(t)??t}function ni(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 ri(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:Yr(n.allowedUsers,`${t}.allowedUsers`)}}function ii(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:ni(n.options,`${t}.options`)}}function ai(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=ni(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:Xr(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 oi(e,t){let n=X(e,t);switch(ti(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:ri(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)=>ri(e,`${t}.buttons[${n}]`)):void 0,i=n.select?ii(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:Zr(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 si(e){if(e==null)return null;let t=X(e,`components`),n=t.blocks,r=Array.isArray(n)?n.map((e,t)=>oi(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)=>ai(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 ci(e){let t=`occomp:cid=${e.componentId}`;return e.modalId?`${t};mid=${e.modalId}`:t}function li(e){return`ocmodal:mid=${e}`}function ui(e){let t=A(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 di(e){let t=A(e);if(t.key!==`ocmodal`)return null;let n=t.data.mid;return typeof n!=`string`||!n.trim()?null:n}function fi(e){return/^__openclaw_discord_component_[a-z_]+_wildcard__$/.test(e)}function pi(e){if(e===`*`||fi(e))return{key:`*`,data:{}};let t=A(e);return t.key===`occomp`?{key:`*`,data:t.data}:t}function mi(e){if(e===`*`||fi(e))return{key:`*`,data:{}};let t=A(e);return t.key===`ocmodal`?{key:`*`,data:t.data}:t}function hi(e,t){return t&&t.length>0?t.map(e=>new k(e)):e?[new k(e)]:[]}function gi(e){let t=$r(e.spec.style);if(t===T.Link||e.spec.url){if(!e.spec.url)throw Error(`Link buttons require a url`);let t=e.spec.url;class n extends he{constructor(...n){super(...n),this.label=e.spec.label,this.url=t}}return{component:new n}}let n=e.componentId??Jr(`btn_`),r=ci({componentId:n,modalId:e.modalId});class i extends ce{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 _i(e){let t=(e.spec.type??`string`).toLowerCase(),n=e.componentId??Jr(`sel_`),r=ci({componentId:n});if(t===`string`){let t=e.spec.options??[];if(t.length===0)throw Error(`String select menus require options`);class i extends Te{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 Oe{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 Se{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 _e{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 le{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 vi(e){return e instanceof Te||e instanceof Oe||e instanceof Se||e instanceof _e||e instanceof le}function yi(e){if(e.type===`text`){class t extends Ee{constructor(...t){super(...t),this.customId=e.id,this.style=ei(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 Te{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 Se{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 Oe{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 ue{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 ye{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 bi(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 k(o));for(let t of e.spec.blocks??[]){if(t.type===`text`){i.push(new k(t.text));continue}if(t.type===`section`){let e=hi(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 De(t.accessory.url);else if(t.accessory?.type===`button`){let{component:e,entry:r}=gi({spec:t.accessory.button});n=e,r&&a(r)}i.push(new Ce(e,n));continue}if(t.type===`separator`){i.push(new we({spacing:t.spacing,divider:t.divider}));continue}if(t.type===`media-gallery`){i.push(new ge(t.items));continue}if(t.type===`file`){i.push(new pe(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}=gi({spec:n});e.push(t),r&&a(r)}}else if(t.select){let{component:n,entry:r}=_i({spec:t.select});e.push(n),a(r)}i.push(new O(e))}}if(e.spec.modal){let t=Jr(`mdl_`),r=e.spec.modal.fields.map((e,t)=>({id:Jr(`fld_`),name:Xr(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}=gi({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 O){let e=c,t=e.components.some(e=>vi(e));e.components.length<5&&!t?e.addComponent(o):i.push(new O([o]))}else i.push(new O([o]))}if(i.length===0)throw Error(`components must include at least one block, text, or modal trigger`);let s=new de(i,e.spec.container);return r.push(s),{components:r,entries:t,modals:n}}function xi(e){return e.some(e=>e.isV2)?ae.IsComponentsV2:void 0}var Si=class extends ve{constructor(e){super(),this.customIdParser=mi,this.title=e.title,this.customId=li(e.modalId),this.components=e.fields.map(e=>{let t=yi(e);class n extends me{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 Ci(e){return new Si({modalId:e.id,title:e.title,fields:e.fields})}function wi(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 Ti=new Set([E.GuildForum,E.GuildMedia]);function Ei(e){let t=[];for(let n of e.blocks??[])n.type===`file`&&t.push(Qr(n.file));return t}async function Di(e,t,n={}){let i=n.cfg??r(),a=s({cfg:i,accountId:n.accountId}),{token:o,rest:c,request:l}=F(n,i),{channelId:u}=await H(c,await z(e,n.accountId,i),l),d=await xn(c,u);if(d&&Ti.has(d))throw Error(`Discord components are not supported in forum-style channels`);let f=bi({spec:t,sessionKey:n.sessionKey,agentId:n.agentId,accountId:a.accountId}),p=xi(f.components),h=n.silent?(p??0)|U:p??void 0,g=n.replyTo?{message_id:n.replyTo,fail_if_not_exists:!1}:void 0,_=Ei(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 m(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:On(e.buffer),name:t}]}else if(y)throw Error(`Discord component file blocks require a media attachment (media/path/filePath).`);let ee=W({...j({components:f.components,...h?{flags:h}:{},...b?{files:b}:{}}),...g?{message_reference:g}:{}}),S;try{S=await l(()=>c.post(D.channelMessages(u),{body:ee}),`components`)}catch(e){throw await V(e,{channelId:u,rest:c,token:o,hasMedia:!!b?.length})}return Ur({entries:f.entries,modals:f.modals,messageId:S.id}),x({channel:`discord`,accountId:a.accountId,direction:`outbound`}),{messageId:S.id??`unknown`,channelId:S.channel_id??u}}async function Oi(e,t,n,i={}){let{rest:a,request:o}=F(i,i.cfg??r()),s=_n(n);return await o(()=>a.put(D.channelMessageOwnReaction(e,t,s)),`react`),{ok:!0}}async function ki(e,t,n,i={}){let{rest:a}=F(i,i.cfg??r()),o=_n(n);return await a.delete(D.channelMessageOwnReaction(e,t,o)),{ok:!0}}async function Ai(e,t,n={}){let{rest:i}=F(n,n.cfg??r()),a=await i.get(D.channelMessage(e,t)),o=new Set;for(let e of a.reactions??[]){let t=An(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(D.channelMessageOwnReaction(e,t,_n(n)))))),{ok:!0,removed:s}}async function ji(e,t,n={}){let{rest:i}=F(n,n.cfg??r()),a=(await i.get(D.channelMessage(e,t))).reactions??[];if(a.length===0)return[];let o=typeof n.limit==`number`&&Number.isFinite(n.limit)?Math.min(Math.max(Math.floor(n.limit),1),100):100,s=[];for(let n of a){let r=An(n.emoji);if(!r)continue;let a=encodeURIComponent(r),c=await i.get(D.channelMessageReaction(e,t,a),{limit:o});s.push({emoji:{id:n.emoji.id??null,name:n.emoji.name??null,raw:jn(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}export{W as $,ir as A,Ve as At,Jn as B,tr as C,Qe as Ct,rr as D,We as Dt,sr as E,Ze as Et,Vn as F,Ne as Ft,Bn as G,Xn as H,Hn as I,Me as It,Nn as J,Mn as K,qn as L,Fe as Lt,Qn as M,Be as Mt,Yn as N,Ue as Nt,$n as O,Ge as Ot,Gn as P,Ae as Pt,G as Q,Zn as R,Ie as Rt,nr as S,et as St,ar as T,M as Tt,Rn as U,Wn as V,zn as W,Ln as X,Fn as Y,In as Z,Lr as _,lt as _t,Di as a,qt as at,mr as b,xt as bt,ui as c,At as ct,mi as d,P as dt,R as et,si as f,it as ft,Rr as g,ut as gt,Pr as h,ct as ht,ki as i,Jt as it,Un as j,Re as jt,cr as k,ze as kt,pi as l,yt as lt,Gr as m,dt as mt,Oi as n,un as nt,Ci as o,F as ot,Wr as p,gt as pt,Pn as q,Ai as r,dn as rt,wi as s,Ft as st,ji as t,fn as tt,di as u,N as ut,Br as v,_t as vt,er as w,tt as wt,or as x,$e as xt,Ir as y,bt as yt,Kn as z};
@@ -1 +1 @@
1
- import{Bt as e,Gt as t,Ot as n,S as r,Ut as i,Wt as a}from"./paths-CXgWvWAM.js";import{I as o,O as s,R as c,g as l,t as u}from"./utils-BJtJR72k.js";import{c as d,d as f,l as p,o as m}from"./paths-rO4ehkyU.js";import{Fr as h,Ir as g,Lr as _,Mo as v,Nr as y,Pr as b,Wi as x,Xi as S,ln as C,qi as w,un as T,ur as ee,xn as E,xo as te}from"./model-auth-wcxJptQX.js";import{n as ne}from"./proxy-fetch-YCVHz7Rl.js";import{n as re,r as D,t as O}from"./targets-BSkiizml.js";import{a as ie,n as k,s as A,t as ae}from"./ir-CpkEWZD6.js";import{t as oe}from"./render-Djx15dPh.js";import{t as se}from"./load-options-BcSg1ODN.js";import{n as ce}from"./polls-CSKMbBIS.js";import{i as le,n as j}from"./channel-activity-CIycjzUC.js";import{t as ue}from"./fetch-J0IzopiJ.js";import M from"node:path";import N from"node:fs";import de from"node:os";import fe from"json5";import pe,{randomBytes as me}from"node:crypto";import{Bot as he,HttpError as ge,InputFile as _e}from"grammy";function ve(e){let t=e.source??(e.isLive?`live`:e.name||e.address?`place`:`pin`),n=!!(e.isLive??t===`live`);return{...e,source:t,isLive:n}}function ye(e){return Number.isFinite(e)?` ±${Math.round(e??0)}m`:``}function be(e,t){return`${e.toFixed(6)}, ${t.toFixed(6)}`}function xe(e){let t=ve(e),n=be(t.latitude,t.longitude),r=ye(t.accuracy),i=t.caption?.trim(),a=``;return a=t.source===`live`||t.isLive?`🛰 Live location: ${n}${r}`:t.name||t.address?`📍 ${[t.name,t.address].filter(Boolean).join(` — `)} (${n}${r})`:`📍 ${n}${r}`,i?`${a}\n${i}`:a}function Se(e){let t=ve(e);return{LocationLat:t.latitude,LocationLon:t.longitude,LocationAccuracy:t.accuracy,LocationName:t.name,LocationAddress:t.address,LocationSource:t.source,LocationIsLive:t.isLive}}function Ce(e){let t=e.dmPolicy===`allowlist`?[]:e.storeAllowFrom??[];return[...e.allowFrom??[],...t].map(e=>String(e).trim()).filter(Boolean)}function we(e){return((Array.isArray(e.groupAllowFrom)&&e.groupAllowFrom.length>0?e.groupAllowFrom:void 0)||(e.fallbackToAllowFrom===!1?[]:e.allowFrom??[])).map(e=>String(e).trim()).filter(Boolean)}function Te(...e){for(let t of e)if(t!==void 0)return t}function Ee(e,t,n){return e.hasEntries?e.hasWildcard?!0:t?e.entries.includes(t):!1:n}function De(){return T().filter(e=>e.pairing).map(e=>e.id)}function Oe(e){return C(e)?.pairing??null}async function ke(e,t){try{let n=l(await N.promises.readFile(e,`utf-8`));return n==null?{value:t,exists:!0}:{value:n,exists:!0}}catch(e){return e.code,{value:t,exists:!1}}}async function Ae(e,t){await ee(e,t,{mode:384,trailingNewline:!0,ensureDirMode:448})}const je={retries:{retries:10,factor:2,minTimeout:100,maxTimeout:1e4,randomize:!0},stale:3e4},Me=new Map;function Ne(e=process.env){return m(e,d(e,()=>f(e,de.homedir)))}function Pe(e){let t=String(e).trim().toLowerCase();if(!t)throw Error(`invalid pairing channel`);let n=t.replace(/[\\/:*?"<>|]/g,`_`).replace(/\.\./g,`_`);if(!n||n===`_`)throw Error(`invalid pairing channel`);return n}function Fe(e,t=process.env){return M.join(Ne(t),`${Pe(e)}-pairing.json`)}function Ie(e){let t=String(e).trim().toLowerCase();if(!t)throw Error(`invalid pairing account id`);let n=t.replace(/[\\/:*?"<>|]/g,`_`).replace(/\.\./g,`_`);if(!n||n===`_`)throw Error(`invalid pairing account id`);return n}function P(e,t=process.env,n){let r=Pe(e),i=typeof n==`string`?n.trim():``;return i?M.join(Ne(t),`${r}-${Ie(i)}-allowFrom.json`):M.join(Ne(t),`${r}-allowFrom.json`)}async function Le(e,t){return await ke(e,t)}async function F(e,t){await Ae(e,t)}async function Re(e){let{value:t}=await Le(e,{version:1,requests:[]});return Array.isArray(t.requests)?t.requests:[]}async function ze(e,t){try{await N.promises.access(e)}catch{await F(e,t)}}async function Be(e,t,n){return await ze(e,t),await v(e,je,async()=>await n())}function I(e){if(!e)return null;let t=Date.parse(e);return Number.isFinite(t)?t:null}function Ve(e,t){let n=I(e.createdAt);return n?t-n>36e5:!0}function He(e,t){let n=[],r=!1;for(let i of e){if(Ve(i,t)){r=!0;continue}n.push(i)}return{requests:n,removed:r}}function Ue(e){return I(e.lastSeenAt)??I(e.createdAt)??0}function We(e,t){return t<=0||e.length<=t?{requests:e,removed:!1}:{requests:e.slice().toSorted((e,t)=>Ue(e)-Ue(t)).slice(-t),removed:!0}}function Ge(){let e=``;for(let t=0;t<8;t++){let t=pe.randomInt(0,32);e+=`ABCDEFGHJKLMNPQRSTUVWXYZ23456789`[t]}return e}function Ke(e){for(let t=0;t<500;t+=1){let t=Ge();if(!e.has(t))return t}throw Error(`failed to generate unique pairing code`)}function qe(e){return e?.trim().toLowerCase()||``}function Je(e,t){return t?String(e.meta?.accountId??``).trim().toLowerCase()===t:!0}function Ye(e){return!e||e===`default`}function Xe(e){return qe(e)||`default`}function Ze(e){return String(e).trim()}function Qe(e,t){let n=t.trim();if(!n||n===`*`)return``;let r=Oe(e),i=r?.normalizeAllowEntry?r.normalizeAllowEntry(n):n;return String(i).trim()}function $e(e,t){return tt((Array.isArray(t.allowFrom)?t.allowFrom:[]).map(t=>Qe(e,String(t))).filter(Boolean))}function et(e,t){return Qe(e,Ze(t))}function tt(e){let t=new Set,n=[];for(let r of e){let e=String(r).trim();!e||t.has(e)||(t.add(e),n.push(e))}return n}async function nt(e,t){return(await st(e,t)).entries}function rt(e){return{exists:e.exists,mtimeMs:e.mtimeMs,size:e.size,entries:e.entries.slice()}}function it(e,t){Me.set(e,rt(t))}function at(e){let t=Me.get(e.filePath);return!t||t.exists!==e.exists||e.exists&&(t.mtimeMs!==e.mtimeMs||t.size!==e.size)?null:rt(t)}function ot(e,t){let n=at({filePath:e,exists:!!t,mtimeMs:t?.mtimeMs??null,size:t?.size??null});return n?{entries:n.entries,exists:n.exists}:t?null:(it(e,{exists:!1,mtimeMs:null,size:null,entries:[]}),{entries:[],exists:!1})}async function st(e,t){let n=null;try{n=await N.promises.stat(t)}catch(e){if(e.code!==`ENOENT`)throw e}let r=ot(t,n);if(r)return r;if(!n)return{entries:[],exists:!1};let{value:i,exists:a}=await Le(t,{version:1,allowFrom:[]}),o=$e(e,i);return it(t,{exists:a,mtimeMs:n.mtimeMs,size:n.size,entries:o}),{entries:o,exists:a}}async function ct(e){let{value:t}=await Le(e.filePath,{version:1,allowFrom:[]});return{current:$e(e.channel,t),normalized:et(e.channel,e.entry)||null}}async function lt(e,t){await F(e,{version:1,allowFrom:t});let n=null;try{n=await N.promises.stat(e)}catch{}it(e,{exists:!0,mtimeMs:n?.mtimeMs??null,size:n?.size??null,entries:t.slice()})}async function ut(e){let t=P(e.channel,e.env,e.accountId);return await nt(e.channel,t)}async function dt(e){let t=e.env??process.env,n=P(e.channel,t,e.accountId);return await Be(n,{version:1,allowFrom:[]},async()=>{let{current:t,normalized:r}=await ct({channel:e.channel,entry:e.entry,filePath:n});if(!r)return{changed:!1,allowFrom:t};let i=e.apply(t,r);return i?(await lt(n,i),{changed:!0,allowFrom:i}):{changed:!1,allowFrom:t}})}async function ft(e,t=process.env,n){let r=Xe(n);if(!Ye(r))return await ut({channel:e,env:t,accountId:r});let i=await nt(e,P(e,t,r)),a=await nt(e,P(e,t));return tt([...i,...a])}async function pt(e){return await dt({channel:e.channel,entry:e.entry,accountId:e.accountId,env:e.env,apply:e.apply})}async function mt(e,t){return await pt({...e,apply:t})}async function ht(e){return await mt(e,(e,t)=>e.includes(t)?null:[...e,t])}async function gt(e){return await mt(e,(e,t)=>{let n=e.filter(e=>e!==t);return n.length===e.length?null:n})}async function _t(e){let t=e.env??process.env,n=Fe(e.channel,t);return await Be(n,{version:1,requests:[]},async()=>{let t=new Date().toISOString(),r=Date.now(),i=Ze(e.id),a=qe(e.accountId)||`default`,o={...e.meta&&typeof e.meta==`object`?Object.fromEntries(Object.entries(e.meta).map(([e,t])=>[e,String(t??``).trim()]).filter(([e,t])=>!!t)):void 0,accountId:a},s=await Re(n),{requests:c,removed:l}=He(s,r);s=c;let u=a,d=s.findIndex(e=>e.id===i?Je(e,u):!1),f=new Set(s.map(e=>String(e.code??``).trim().toUpperCase()));if(d>=0){let e=s[d],r=(e&&typeof e.code==`string`?e.code.trim():``)||Ke(f),a={id:i,code:r,createdAt:e?.createdAt??t,lastSeenAt:t,meta:o??e?.meta};s[d]=a;let{requests:c}=We(s,3);return await F(n,{version:1,requests:c}),{code:r,created:!1}}let{requests:p,removed:m}=We(s,3);if(s=p,s.length>=3)return(l||m)&&await F(n,{version:1,requests:s}),{code:``,created:!1};let h=Ke(f),g={id:i,code:h,createdAt:t,lastSeenAt:t,...o?{meta:o}:{}};return await F(n,{version:1,requests:[...s,g]}),{code:h,created:!0}})}const vt=new Set([`.oga`,`.ogg`,`.opus`,`.mp3`,`.m4a`]),yt=new Set([`audio/ogg`,`audio/opus`,`audio/mpeg`,`audio/mp3`,`audio/mp4`,`audio/x-m4a`,`audio/m4a`]);function bt(n){let r=t(n.contentType);if(r&&yt.has(r))return!0;let i=n.fileName?.trim();if(!i)return!1;let a=e(i);return a?vt.has(a):!1}function xt(e){return bt(e)}function L(e){return e.trim().toLowerCase()}function St(e){if(!e)return[];let t=e.trim();if(!t)return[];let n=t.toLowerCase();return[`0`,`false`,`off`,`none`].includes(n)?[]:[`1`,`true`,`all`,`*`].includes(n)?[`*`]:t.split(/[,\s]+/).map(L).filter(Boolean)}function Ct(e){let t=new Set,n=[];for(let r of e){let e=L(r);!e||t.has(e)||(t.add(e),n.push(e))}return n}function wt(e,t=process.env){let n=Array.isArray(e?.diagnostics?.flags)?e?.diagnostics?.flags:[],r=St(t.OPENCLAW_DIAGNOSTICS);return Ct([...n,...r])}function Tt(e,t){let n=L(e);if(!n)return!1;for(let e of t){let t=L(e);if(t){if(t===`*`||t===`all`)return!0;if(t.endsWith(`.*`)){let e=t.slice(0,-2);if(n===e||n.startsWith(`${e}.`))return!0}if(t.endsWith(`*`)){let e=t.slice(0,-1);if(n.startsWith(e))return!0}if(t===n)return!0}}return!1}function Et(e,t,n=process.env){return Tt(e,wt(t,n))}const Dt=s(`telegram/api`);function Ot(e,t){return t||(e?.error?e.error:e=>Dt.error(e))}async function kt({operation:e,fn:t,runtime:n,logger:r,shouldLog:i}){try{return await t()}catch(t){if(!i||i(t)){let i=h(t);Ot(n,r)(o(`telegram ${e} failed: ${i}`))}throw t}}const At=new Set,jt=s(`telegram/bot-access`);function Mt(e){if(!process.env.VITEST)for(let t of e)At.has(t)||(At.add(t),jt.warn([`Invalid allowFrom entry:`,JSON.stringify(t),`- allowFrom/groupAllowFrom authorization expects numeric Telegram sender user IDs only.`,`To allow a Telegram group or supergroup, add its negative chat ID under "channels.telegram.groups" instead.`,`If you had "@username" entries, re-run onboarding (it resolves @username to IDs) or replace them manually.`].join(` `)))}const Nt=e=>{let t=(e??[]).map(e=>String(e).trim()).filter(Boolean),n=t.includes(`*`),r=t.filter(e=>e!==`*`).map(e=>e.replace(/^(telegram|tg):/i,``)),i=r.filter(e=>!/^\d+$/.test(e));return i.length>0&&Mt([...new Set(i)]),{entries:r.filter(e=>/^\d+$/.test(e)),hasWildcard:n,hasEntries:t.length>0,invalidEntries:i}},Pt=e=>Nt(Ce(e)),Ft=e=>{let{allow:t,senderId:n}=e;return Ee(t,n,!0)},It=e=>{let{allow:t,senderId:n}=e;return t.hasWildcard?{allowed:!0,matchKey:`*`,matchSource:`wildcard`}:t.hasEntries&&n&&t.entries.includes(n)?{allowed:!0,matchKey:n,matchSource:`id`}:{allowed:!1}};async function Lt(e){let t=n(e.accountId),r=zt({isGroup:e.isGroup??!1,isForum:e.isForum,messageThreadId:e.messageThreadId}),i=r.scope===`forum`?r.id:void 0,a=r.scope===`dm`?r.id:void 0,o=i??a,s=await ft(`telegram`,process.env,t).catch(()=>[]),{groupConfig:c,topicConfig:l}=e.resolveTelegramGroupConfig(e.chatId,o),u=Te(l?.allowFrom,c?.allowFrom);return{resolvedThreadId:i,dmThreadId:a,storeAllowFrom:s,groupConfig:c,topicConfig:l,groupAllowOverride:u,effectiveGroupAllow:Nt(u??e.groupAllowFrom),hasGroupAllowOverride:u!==void 0}}function Rt(e){if(e.isForum)return e.messageThreadId==null?1:e.messageThreadId}function zt(e){return e.isGroup?{id:Rt({isForum:e.isForum,messageThreadId:e.messageThreadId}),scope:e.isForum?`forum`:`none`}:e.messageThreadId==null?{scope:`dm`}:{id:e.messageThreadId,scope:`dm`}}function Bt(e){if(e?.id==null)return;let t=Math.trunc(e.id);if(e.scope===`dm`)return t>0?{message_thread_id:t}:void 0;if(t!==1)return{message_thread_id:t}}function Vt(e){if(e!=null)return{message_thread_id:Math.trunc(e)}}function Ht(e){return te(e)}function Ut(e,t){return t==null?String(e):`${e}:topic:${t}`}function Wt(e){return(e.senderId==null?``:String(e.senderId).trim())||String(e.chatId)}function Gt(e,t){return`telegram:group:${Ut(e,t)}`}function Kt(e){if(!(!e.isGroup||e.resolvedThreadId==null))return{kind:`group`,id:String(e.chatId)}}function qt(e){return[e.from?.first_name,e.from?.last_name].filter(Boolean).join(` `).trim()||e.from?.username||void 0}function Jt(e){if(e){if(e.photo)return`<media:image>`;if(e.video||e.video_note)return`<media:video>`;if(e.audio||e.voice)return`<media:audio>`;if(e.document)return`<media:document>`;if(e.sticker)return`<media:sticker>`}}function Yt(e,t){let n=qt(e),r=e.from?.username?`@${e.from.username}`:void 0,i=n;n&&r?i=`${n} (${r})`:!n&&r&&(i=r);let a=(t!=null&&`${t}`.trim()?`${t}`.trim():void 0)??(e.from?.id==null?void 0:String(e.from.id)),o=a?`id:${a}`:void 0;return i&&o?`${i} ${o}`:i||(o??`id:unknown`)}function Xt(e,t,n){let r=e.chat?.title,i=n==null?``:` topic:${n}`;return r?`${r} id:${t}${i}`:`group:${t}${i}`}function Zt(e){return{text:e.text??e.caption??``,entities:e.entities??e.caption_entities??[]}}function Qt(e){return e!=null&&/[a-z0-9_]/i.test(e)}function $t(e,t){let n=0;for(;n<e.length;){let r=e.indexOf(t,n);if(r===-1)return!1;let i=r>0?e[r-1]:void 0,a=e[r+t.length];if(!Qt(i)&&!Qt(a))return!0;n=r+1}return!1}function en(e,t){let{text:n,entities:r}=Zt(e),i=`@${t}`.toLowerCase();if($t(n.toLowerCase(),i))return!0;for(let e of r)if(e.type===`mention`&&n.slice(e.offset,e.offset+e.length).toLowerCase()===i)return!0;return!1}function tn(e,t){if(!e||!t?.length)return e;let n=t.filter(e=>e.type===`text_link`&&!!e.url).toSorted((e,t)=>t.offset-e.offset);if(n.length===0)return e;let r=e;for(let t of n){let n=`[${e.slice(t.offset,t.offset+t.length)}](${t.url})`;r=r.slice(0,t.offset)+n+r.slice(t.offset+t.length)}return r}function nn(e){if(!e)return;let t=Number(e);if(Number.isFinite(t))return t}function rn(e){let t=e.reply_to_message,n=e.external_reply,r=e.quote?.text??n?.quote?.text,i=``,a=`reply`;typeof r==`string`&&(i=r.trim(),i&&(a=`quote`));let o=t??n;if(!i&&o&&(i=(o.text??o.caption??``).trim(),!i&&(i=Jt(o)??``,!i))){let e=fn(o);e&&(i=xe(e))}if(!i)return null;let s=(o?qt(o):void 0)??`unknown sender`,c=o?.forward_origin?un(o.forward_origin)??void 0:void 0;return{id:o?.message_id?String(o.message_id):void 0,sender:s,body:i,kind:a,forwardedFrom:c}}function an(e){let t=[e.first_name,e.last_name].filter(Boolean).join(` `).trim(),n=e.username?.trim()||void 0,r=String(e.id);return{display:(t&&n?`${t} (@${n})`:t||(n?`@${n}`:void 0))||`user:${r}`,name:t||void 0,username:n,id:r}}function on(e,t){let n=e.title?.trim()||void 0,r=e.username?.trim()||void 0,i=String(e.id);return{display:n||(r?`@${r}`:void 0)||`${t}:${i}`,title:n,username:r,id:i}}function sn(e){let{display:t,name:n,username:r,id:i}=an(e.user);return t?{from:t,date:e.date,fromType:e.type,fromId:i,fromUsername:r,fromTitle:n}:null}function cn(e){let t=e.name?.trim();return t?{from:t,date:e.date,fromType:e.type,fromTitle:t}:null}function ln(e){let t=e.type===`channel`?`channel`:`chat`,{display:n,title:r,username:i,id:a}=on(e.chat,t);if(!n)return null;let o=e.signature?.trim()||void 0,s=o?`${n} (${o})`:n,c=e.chat.type?.trim()||void 0;return{from:s,date:e.date,fromType:e.type,fromId:a,fromUsername:i,fromTitle:r,fromSignature:o,fromChatType:c,fromMessageId:e.messageId}}function un(e){switch(e.type){case`user`:return sn({user:e.sender_user,date:e.date,type:`user`});case`hidden_user`:return cn({name:e.sender_user_name,date:e.date,type:`hidden_user`});case`chat`:return ln({chat:e.sender_chat,date:e.date,type:`chat`,signature:e.author_signature});case`channel`:return ln({chat:e.chat,date:e.date,type:`channel`,signature:e.author_signature,messageId:e.message_id});default:return null}}function dn(e){return e.forward_origin?un(e.forward_origin):null}function fn(e){let{venue:t,location:n}=e;if(t)return{latitude:t.location.latitude,longitude:t.location.longitude,accuracy:t.location.horizontal_accuracy,name:t.title,address:t.address,source:`place`,isLive:!1};if(n){let e=typeof n.live_period==`number`&&n.live_period>0;return{latitude:n.latitude,longitude:n.longitude,accuracy:n.horizontal_accuracy,source:e?`live`:`pin`,isLive:e}}return null}function pn(e){let t=e?.trim()??``;return t?t.length>1024?{caption:void 0,followUpText:t}:{caption:t,followUpText:void 0}:{caption:void 0,followUpText:void 0}}function R(e){return e.replace(/&/g,`&amp;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`)}function mn(e){return R(e).replace(/"/g,`&quot;`)}const hn=new Set([`md`,`go`,`py`,`pl`,`sh`,`am`,`at`,`be`,`cc`]);function gn(e,t){if(e.replace(/^https?:\/\//i,``)!==t)return!1;let n=t.lastIndexOf(`.`);if(n<1)return!1;let r=t.slice(n+1).toLowerCase();if(!hn.has(r))return!1;let i=t.split(`/`);if(i.length>1){for(let e=0;e<i.length-1;e++)if(i[e].includes(`.`))return!1}return!0}function _n(e,t){let n=e.href.trim();if(!n||e.start===e.end||gn(n,t.slice(e.start,e.end)))return null;let r=mn(n);return{start:e.start,end:e.end,open:`<a href="${r}">`,close:`</a>`}}function vn(e){return oe(e,{styleMarkers:{bold:{open:`<b>`,close:`</b>`},italic:{open:`<i>`,close:`</i>`},strikethrough:{open:`<s>`,close:`</s>`},code:{open:`<code>`,close:`</code>`},code_block:{open:`<pre><code>`,close:`</code></pre>`},spoiler:{open:`<tg-spoiler>`,close:`</tg-spoiler>`},blockquote:{open:`<blockquote>`,close:`</blockquote>`}},escapeText:R,buildLink:_n})}function yn(e,t={}){let n=vn(k(e??``,{linkify:!0,enableSpoilers:!0,headingStyle:`none`,blockquotePrefix:``,tableMode:t.tableMode}));return t.wrapFileRefs===!1?n:Dn(n)}function bn(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}const xn=Array.from(hn).map(bn).join(`|`),Sn=/<a\s+href="https?:\/\/([^"]+)"[^>]*>\1<\/a>/gi,Cn=RegExp(`(^|[^a-zA-Z0-9_\\-/])([a-zA-Z0-9_.\\-./]+\\.(?:${xn}))(?=$|[^a-zA-Z0-9_\\-/])`,`gi`),wn=RegExp(`([^a-zA-Z0-9]|^)([A-Za-z]\\.(?:${xn}))(?=[^a-zA-Z0-9/]|$)`,`g`),z=/(<\/?)([a-zA-Z][a-zA-Z0-9-]*)\b[^>]*?>/gi;function Tn(e,t,n){return n.startsWith(`//`)||/https?:\/\/$/i.test(t)?e:`${t}<code>${R(n)}</code>`}function En(e,t,n,r){return!e||t>0||n>0||r>0?e:e.replace(Cn,Tn).replace(wn,(e,t,n)=>t===`>`?e:`${t}<code>${R(n)}</code>`)}function Dn(e){Sn.lastIndex=0;let t=e.replace(Sn,(e,t)=>gn(`http://${t}`,t)?`<code>${R(t)}</code>`:e),n=0,r=0,i=0,a=``,o=0;z.lastIndex=0;let s;for(;(s=z.exec(t))!==null;){let e=s.index,c=z.lastIndex,l=s[1]===`</`,u=s[2].toLowerCase(),d=t.slice(o,e);a+=En(d,n,r,i),u===`code`?n=l?Math.max(0,n-1):n+1:u===`pre`?r=l?Math.max(0,r-1):r+1:u===`a`&&(i=l?Math.max(0,i-1):i+1),a+=t.slice(e,c),o=c}let c=t.slice(o);return a+=En(c,n,r,i),a}function On(e,t={}){return(t.textMode??`markdown`)===`html`?e:yn(e,{tableMode:t.tableMode})}const kn=new Set([`br`]);function An(e){return e.map(e=>e.openTag).join(``)}function jn(e){return e.slice().toReversed().map(e=>e.closeTag).join(``)}function Mn(e){return e.reduce((e,t)=>e+t.closeTag.length,0)}function Nn(e,t){if(e[t]!==`&`)return-1;let n=t+1;if(n>=e.length)return-1;if(e[n]===`#`){if(n+=1,n>=e.length)return-1;if(e[n]===`x`||e[n]===`X`){n+=1;let t=n;for(;/[0-9A-Fa-f]/.test(e[n]??``);)n+=1;if(n===t)return-1}else{let t=n;for(;/[0-9]/.test(e[n]??``);)n+=1;if(n===t)return-1}}else{let t=n;for(;/[A-Za-z0-9]/.test(e[n]??``);)n+=1;if(n===t)return-1}return e[n]===`;`?n:-1}function Pn(e,t){if(e.length<=t)return e.length;let n=Math.max(1,Math.floor(t)),r=e.lastIndexOf(`&`,n-1);if(r===-1||r<e.lastIndexOf(`;`,n-1))return n;let i=Nn(e,r);return i===-1||i<n?n:r}function Fn(e,t){for(let n=e.length-1;n>=0;--n)if(e[n]?.name===t){e.splice(n,1);return}}function In(e,t){if(!e)return[];let n=Math.max(1,Math.floor(t));if(e.length<=n)return[e];let r=[],i=[],a=``,o=!1,s=()=>{a=An(i),o=!1},c=()=>{o&&(r.push(`${a}${jn(i)}`),s())},l=e=>{let t=e;for(;t.length>0;){let e=n-a.length-Mn(i);if(e<=0){if(!o)throw Error(`Telegram HTML chunk limit exceeded by tag overhead (limit=${n})`);c();continue}if(t.length<=e){a+=t,o=!0;break}let r=Pn(t,e);if(r<=0){if(!o)throw Error(`Telegram HTML chunk limit exceeded by leading entity (limit=${n})`);c();continue}a+=t.slice(0,r),o=!0,t=t.slice(r),c()}};s(),z.lastIndex=0;let u=0,d;for(;(d=z.exec(e))!==null;){let t=d.index,r=z.lastIndex;l(e.slice(u,t));let s=d[0],f=d[1]===`</`,p=d[2].toLowerCase(),m=!f&&(kn.has(p)||s.trimEnd().endsWith(`/>`));if(!f){let e=m?0:`</${p}>`.length;o&&a.length+s.length+Mn(i)+e>n&&c()}a+=s,m&&(o=!0),f?Fn(i,p):m||i.push({name:p,openTag:s,closeTag:`</${p}>`}),u=r}return l(e.slice(u)),c(),r.length>0?r:[e]}function Ln(e,t,n){let r=e.text.length;if(r<=1)return[e];let i=Math.floor(r*t/Math.max(n,1)),a=Math.min(r-1,i),o=Bn(e,Number.isFinite(a)&&a>0?a:Math.max(1,Math.floor(r/2)));return o.length>1?o:Bn(e,Math.max(1,Math.floor(r/2)))}function Rn(e,t,n){return e.flatMap(e=>{if(e.end<=t||e.start>=n)return[];let r=Math.max(e.start,t)-t,i=Math.min(e.end,n)-t;return i<=r?[]:[{...e,start:r,end:i}]})}function zn(e,t,n){return e.flatMap(e=>{if(e.end<=t||e.start>=n)return[];let r=Math.max(e.start,t)-t,i=Math.min(e.end,n)-t;return i<=r?[]:[{...e,start:r,end:i}]})}function Bn(e,t){if(!e.text)return[];let n=Math.max(1,Math.floor(t));if(n<=0||e.text.length<=n)return[e];let r=[],i=0;for(;i<e.text.length;){let t=Math.min(e.text.length,i+n);r.push({text:e.text.slice(i,t),styles:Rn(e.styles,i,t),links:zn(e.links,i,t)}),i=t}return r}function Vn(e,t){let n=Math.max(1,Math.floor(t)),r=ae(e,n),i=[];for(;r.length>0;){let e=r.shift();if(!e)continue;let t=Dn(vn(e));if(t.length<=n||e.text.length<=1){i.push({html:t,text:e.text});continue}let a=Ln(e,n,t.length);if(a.length<=1){i.push({html:t,text:e.text});continue}r.unshift(...a)}return i}function Hn(e,t,n={}){return Vn(k(e??``,{linkify:!0,enableSpoilers:!0,headingStyle:`none`,blockquotePrefix:``,tableMode:n.tableMode}),t)}const Un=new Set([`ECONNRESET`,`ECONNREFUSED`,`EPIPE`,`ETIMEDOUT`,`ESOCKETTIMEDOUT`,`ENETUNREACH`,`EHOSTUNREACH`,`ENOTFOUND`,`EAI_AGAIN`,`UND_ERR_CONNECT_TIMEOUT`,`UND_ERR_HEADERS_TIMEOUT`,`UND_ERR_BODY_TIMEOUT`,`UND_ERR_SOCKET`,`UND_ERR_ABORTED`,`ECONNABORTED`,`ERR_NETWORK`]),Wn=new Set([`ECONNREFUSED`,`ENOTFOUND`,`EAI_AGAIN`,`ENETUNREACH`,`EHOSTUNREACH`]),Gn=new Set([`AbortError`,`TimeoutError`,`ConnectTimeoutError`,`HeadersTimeoutError`,`BodyTimeoutError`]),Kn=new Set([`fetch failed`,`typeerror: fetch failed`]),qn=/^network request(?:\s+for\s+["']?[^"']+["']?)?\s+failed\s+after\b.*[!.]?$/i,Jn=[`undici`,`network error`,`network request`,`client network socket disconnected`,`socket hang up`,`getaddrinfo`,`timeout`,`timed out`];function Yn(e){return y(e,e=>{let t=[e.cause,e.reason];return Array.isArray(e.errors)&&t.push(...e.errors),_(e)===`HttpError`&&t.push(e.error),t})}function Xn(e){return e?.trim().toUpperCase()??``}function Zn(e){let t=b(e);if(t)return t;if(!e||typeof e!=`object`)return;let n=e.errno;if(typeof n==`string`)return n;if(typeof n==`number`)return String(n)}function Qn(e){if(!e)return!1;for(let t of Yn(e)){let e=Xn(Zn(t));if(e&&Wn.has(e))return!0}return!1}function $n(e,t){for(let n of Yn(e)){if(!n||typeof n!=`object`||!(`error_code`in n))continue;let e=n.error_code;if(typeof e==`number`&&t(e))return!0}return!1}function er(e){return $n(e,e=>e>=500)}function tr(e){return $n(e,e=>e>=400&&e<500)}function B(e,t={}){if(!e)return!1;let n=typeof t.allowMessageMatch==`boolean`?t.allowMessageMatch:t.context!==`send`;for(let t of Yn(e)){let e=Xn(Zn(t));if(e&&Un.has(e))return!0;let r=_(t);if(r&&Gn.has(r))return!0;let i=h(t).trim().toLowerCase();if(i&&Kn.has(i)||i&&qn.test(i)||n&&i&&Jn.some(e=>i.includes(e)))return!0}return!1}const nr=new Map;function rr(e){return String(e)}function ir(e){let t=Date.now();for(let[n,r]of e.timestamps)t-r>864e5&&e.timestamps.delete(n)}function V(e,t){let n=rr(e),r=nr.get(n);r||(r={timestamps:new Map},nr.set(n,r)),r.timestamps.set(t,Date.now()),r.timestamps.size>100&&ir(r)}function ar(e,t){let n=rr(e),r=nr.get(n);return r?(ir(r),r.timestamps.has(t)):!1}const or=M.join(u,`cron`),sr=M.join(or,`jobs.json`),H=new Map;function cr(e){if(e?.trim()){let t=e.trim();return t.startsWith(`~`)?M.resolve(p(t)):M.resolve(t)}return sr}async function lr(e){try{let t=await N.promises.readFile(e,`utf-8`),n;try{n=fe.parse(t)}catch(t){throw Error(`Failed to parse cron store at ${e}: ${String(t)}`,{cause:t})}let r=n&&typeof n==`object`&&!Array.isArray(n)?n:{},i={version:1,jobs:(Array.isArray(r.jobs)?r.jobs:[]).filter(Boolean)};return H.set(e,JSON.stringify(i,null,2)),i}catch(t){if(t?.code===`ENOENT`)return H.delete(e),{version:1,jobs:[]};throw t}}async function ur(e){await N.promises.chmod(e,384).catch(()=>void 0)}async function dr(e,t,n){let r=M.dirname(e);await N.promises.mkdir(r,{recursive:!0,mode:448}),await N.promises.chmod(r,448).catch(()=>void 0);let i=JSON.stringify(t,null,2),a=H.get(e);if(a===i)return;let o=a??null;if(o===null)try{o=await N.promises.readFile(e,`utf-8`)}catch(e){if(e.code!==`ENOENT`)throw e}if(o===i){H.set(e,i);return}let s=`${e}.${process.pid}.${me(8).toString(`hex`)}.tmp`;if(await N.promises.writeFile(s,i,{encoding:`utf-8`,mode:384}),await ur(s),o!==null&&!n?.skipBackup)try{let t=`${e}.bak`;await N.promises.copyFile(e,t),await ur(t)}catch{}await fr(s,e),await ur(e),H.set(e,i)}async function fr(e,t){for(let n=0;n<=3;n++)try{await N.promises.rename(e,t);return}catch(r){let i=r.code;if(i===`EBUSY`&&n<3){await new Promise(e=>setTimeout(e,50*2**n));continue}if(i===`EPERM`||i===`EEXIST`){await N.promises.copyFile(e,t),await N.promises.unlink(e).catch(()=>{});return}throw r}}const U=s(`telegram/target-writeback`);function W(e){return!e||typeof e!=`object`||Array.isArray(e)?null:e}function pr(e){let t=re(e);if(t)return t.startsWith(`@`)?t.toLowerCase():t}function mr(e){let t=D(e),n=pr(t.chatId);if(n)return`${n}|${t.messageThreadId==null?``:String(t.messageThreadId)}`}function hr(e){let{raw:t,parsed:n,resolvedChatId:r}=e;return n.messageThreadId==null?r:t.includes(`:topic:`)?`${r}:topic:${n.messageThreadId}`:`${r}:${n.messageThreadId}`}function gr(e){let t=D(e.raw);if(O(t.chatId))return null;let n=pr(t.chatId);return n?{matchKey:`${n}|${t.messageThreadId==null?``:String(t.messageThreadId)}`,resolvedTarget:hr({raw:e.raw,parsed:t,resolvedChatId:e.resolvedChatId})}:null}function _r(e){if(typeof e.rawValue!=`string`&&typeof e.rawValue!=`number`)return null;let t=String(e.rawValue).trim();return!t||mr(t)!==e.matchKey?null:e.resolvedTarget}function vr(e){let t=!1,n=W(e.cfg.channels?.telegram);if(!n)return t;let r=(n,r)=>{let i=_r({rawValue:n[r],matchKey:e.matchKey,resolvedTarget:e.resolvedTarget});i&&(n[r]=i,t=!0)};r(n,`defaultTo`);let i=W(n.accounts);if(!i)return t;for(let e of Object.keys(i)){let t=W(i[e]);t&&r(t,`defaultTo`)}return t}async function yr(e){let t=e.rawTarget.trim();if(!t)return;let n=gr({raw:t,resolvedChatId:e.resolvedChatId});if(!n)return;let{matchKey:r,resolvedTarget:i}=n;try{let{snapshot:n,writeOptions:a}=await w(),o=structuredClone(n.config??{});vr({cfg:o,matchKey:r,resolvedTarget:i})&&(await S(o,a),e.verbose&&U.warn(`resolved Telegram defaultTo target ${t} -> ${i}`))}catch(n){e.verbose&&U.warn(`failed to persist Telegram defaultTo target ${t}: ${String(n)}`)}try{let n=cr(e.cfg.cron?.store),a=await lr(n),o=!1;for(let e of a.jobs){if(e.delivery?.channel!==`telegram`)continue;let t=_r({rawValue:e.delivery.to,matchKey:r,resolvedTarget:i});t&&(e.delivery.to=t,o=!0)}o&&(await dr(n,a),e.verbose&&U.warn(`resolved Telegram cron delivery target ${t} -> ${i}`))}catch(n){e.verbose&&U.warn(`failed to persist Telegram cron target ${t}: ${String(n)}`)}}function br(e){return e.wantsVoice?bt(e)?{useVoice:!0}:{useVoice:!1,reason:`media is ${e.contentType??`unknown`} (${e.fileName??`unknown`})`}:{useVoice:!1}}function xr(e){let t=br(e);return t.reason&&e.logFallback&&e.logFallback(`Telegram voice requested but ${t.reason}; sending as audio file instead.`),{useVoice:t.useVoice}}function G(e,t){if(typeof e?.message_id==`number`&&Number.isFinite(e.message_id))return Math.trunc(e.message_id);throw Error(`Telegram ${t} returned no message_id`)}function Sr(e,t){if(!e)return[];let n=Math.max(1,Math.floor(t)),r=[];for(let t=0;t<e.length;t+=n)r.push(e.slice(t,t+n));return r}function Cr(e,t,n){if(!e)return[];let r=Math.max(1,Math.floor(n)),i=Sr(e,r);if(t<=1||i.length>=t)return i;let a=[],o=0;for(let n=0;n<t;n+=1){let i=e.length-o,s=t-n,c=s===1?i:Math.min(r,Math.ceil(i/s));a.push(e.slice(o,o+c)),o+=c}return a}const wr=/can't parse entities|parse entities|find end of the entity/i,Tr=/400:\s*Bad Request:\s*message thread not found/i,Er=/400:\s*Bad Request:\s*message is not modified|MESSAGE_NOT_MODIFIED/i,Dr=/400: Bad Request: chat not found/i,Or=s(`telegram/send`),kr=s(`telegram/diagnostic`),K=new Map;function Ar(e){return Et(`telegram.http`,e)?(e,t)=>{if(!(t instanceof ge))return;let n=r(g(t.error??t));kr.warn(`telegram http error (${e}): ${n}`)}:()=>{}}function jr(){return!process.env.VITEST&&!0}function Mr(e){let t=e.account.config.proxy?.trim()??``,n=e.account.config.network?.autoSelectFamily,r=typeof n==`boolean`?String(n):`default`,i=e.account.config.network?.dnsResultOrder??`default`,a=typeof e.timeoutSeconds==`number`?String(e.timeoutSeconds):`default`;return`${e.account.accountId}::${t}::${r}::${i}::${a}`}function Nr(e,t){if(K.set(e,t),K.size>64){let e=K.keys().next().value;e!==void 0&&K.delete(e)}return t}function Pr(e){let t=typeof e.config.timeoutSeconds==`number`&&Number.isFinite(e.config.timeoutSeconds)?Math.max(1,Math.floor(e.config.timeoutSeconds)):void 0,n=jr()?Mr({account:e,timeoutSeconds:t}):null;if(n&&K.has(n))return K.get(n);let r=e.config.proxy?.trim(),i=ue(r?ne(r):void 0,{network:e.config.network}),a=i||t?{...i?{fetch:i}:{},...t?{timeoutSeconds:t}:{}}:void 0;return n?Nr(n,a):a}function Fr(e,t){if(e?.trim())return e.trim();if(!t.token)throw Error(`Telegram bot token missing for account "${t.accountId}" (set channels.telegram.accounts.${t.accountId}.botToken/tokenFile or TELEGRAM_BOT_TOKEN for default).`);return t.token.trim()}async function Ir(e,t){let n=O(e);if(n)return n;let r=re(e),i=t.api.getChat;if(!r||typeof i!=`function`)throw Error(`Telegram recipient must be a numeric chat ID`);try{let e=await i.call(t.api,r),n=O(String(e?.id??``));if(!n)throw Error(`resolved chat id is not numeric (${String(e?.id??``)})`);return t.verbose&&Or.warn(`telegram recipient ${r} resolved to numeric chat id ${n}`),n}catch(e){let t=h(e);throw Error(`Telegram recipient ${r} could not be resolved to a numeric chat ID (${t})`,{cause:e})}}async function q(e){let t=await Ir(e.lookupTarget,{api:e.api,verbose:e.verbose});return await yr({cfg:e.cfg,rawTarget:e.persistTarget,resolvedChatId:t,verbose:e.verbose}),t}function J(e){if(typeof e==`number`&&Number.isFinite(e))return Math.trunc(e);if(typeof e==`string`){let t=e.trim();if(!t)throw Error(`Message id is required for Telegram actions`);let n=Number.parseInt(t,10);if(Number.isFinite(n))return n}throw Error(`Message id is required for Telegram actions`)}function Lr(e){return Tr.test(h(e))}function Y(e){return Er.test(h(e))}function Rr(e){if(!e)return!1;let t=e.message_thread_id;return typeof t==`number`?Number.isFinite(t):typeof t==`string`?t.trim().length>0:!1}function zr(e){if(!e||!Rr(e))return e;let t={...e};return delete t.message_thread_id,Object.keys(t).length>0?t:void 0}function Br(e){return wr.test(h(e))}function Vr(e){let t=e.messageThreadId==null?e.targetMessageThreadId:e.messageThreadId,n=e.chatType===`direct`?`dm`:`forum`,r=Bt(t==null?void 0:{id:t,scope:n}),i=r?{...r}:{};if(e.replyToMessageId!=null){let t=Math.trunc(e.replyToMessageId);e.quoteText?.trim()?i.reply_parameters={message_id:t,quote:e.quoteText.trim()}:i.reply_to_message_id=t}return i}async function Hr(e){try{return await e.requestHtml(e.label)}catch(t){if(!Br(t))throw t;return e.verbose&&Or.warn(`telegram ${e.label} failed with HTML parse error, retrying as plain text: ${h(t)}`),await e.requestPlain(`${e.label}-plain`)}}function X(e){let t=e.cfg??x(),n=E({cfg:t,accountId:e.accountId}),r=Fr(e.token,n),i=Pr(n);return{cfg:t,account:n,api:e.api??new he(r,i?{client:i}:void 0).api}}function Z(e){let t=le({retry:e.retry,configRetry:e.account.config.retry,verbose:e.verbose,...e.shouldRetry?{shouldRetry:e.shouldRetry}:{},...e.strictShouldRetry?{strictShouldRetry:!0}:{}}),n=Ar(e.cfg);return(r,i,a)=>{let o=()=>t(r,i);return(e.useApiErrorLogging===!1?o():kt({operation:i??`request`,fn:o,...a?.shouldLog?{shouldLog:a.shouldLog}:{}})).catch(e=>{throw n(i??`request`,e),e})}}function Ur(e,t){return Dr.test(h(e))?Error([`Telegram send failed: chat not found (chat_id=${t.chatId}).`,`Likely: bot not started in DM, bot removed from group/channel, group migrated (new -100… id), or wrong bot token.`,`Input was: ${JSON.stringify(t.input)}.`].join(` `)):e}async function Q(e,t,n,r){try{return await r(e,t)}catch(i){if(!Rr(e)||!Lr(i))throw i;return n&&Or.warn(`telegram ${t} failed with message_thread_id, retrying without thread: ${h(i)}`),await r(zr(e),`${t}-threadless`)}}function Wr(e){return async(t,n)=>e.requestWithDiag(t,n).catch(t=>{throw Ur(t,{chatId:e.chatId,input:e.input})})}function Gr(e){return Z({cfg:e.cfg,account:e.account,retry:e.retry,verbose:e.verbose,useApiErrorLogging:e.useApiErrorLogging,shouldRetry:e=>Qn(e),strictShouldRetry:!0})}function $(e){if(!e?.length)return;let t=e.map(e=>e.filter(e=>e?.text&&e?.callback_data).map(e=>({text:e.text,callback_data:e.callback_data,...e.style?{style:e.style}:{}}))).filter(e=>e.length>0);if(t.length!==0)return{inline_keyboard:t}}async function Kr(e,t,n={}){let{cfg:r,account:o,api:s}=X(n),l=D(e),u=await q({cfg:r,api:s,lookupTarget:l.chatId,persistTarget:e,verbose:n.verbose}),d=n.mediaUrl?.trim(),f=n.maxBytes??(typeof o.config.mediaMaxMb==`number`?o.config.mediaMaxMb:100)*1024*1024,p=$(n.buttons),m=Vr({targetMessageThreadId:l.messageThreadId,messageThreadId:n.messageThreadId,chatType:l.chatType,replyToMessageId:n.replyToMessageId,quoteText:n.quoteText}),g=Object.keys(m).length>0,_=Wr({requestWithDiag:Gr({cfg:r,account:o,retry:n.retry,verbose:n.verbose}),chatId:u,input:e}),v=n.textMode??`markdown`,y=A({cfg:r,channel:`telegram`,accountId:o.accountId}),b=e=>On(e,{textMode:v,tableMode:y}),x=o.config.linkPreview??!0?void 0:{is_disabled:!0},S=async(e,t)=>await Q(t,`message`,n.verbose,async(t,r)=>{let i=t?{...t}:{};x&&(i.link_preview_options=x);let a={...i,...n.silent===!0?{disable_notification:!0}:{}},o=Object.keys(a).length>0,c=t=>_(()=>o?s.sendMessage(u,e.plainText,a):s.sendMessage(u,e.plainText),t);if(!e.htmlText)return await c(r);let l=e.htmlText,d={parse_mode:`HTML`,...a};return await Hr({label:r,verbose:n.verbose,requestHtml:e=>_(()=>s.sendMessage(u,l,d),e),requestPlain:c})}),C=e=>g||e&&p?{...m,...e&&p?{reply_markup:p}:{}}:void 0,w=async(e,t)=>{let n=``,r=u;for(let i=0;i<e.length;i+=1){let a=e[i];if(!a)continue;let o=await S(a,C(i===e.length-1)),s=G(o,t);V(u,s),n=String(s),r=String(o?.chat?.id??u)}return{messageId:n,chatId:r}},T=(e,t)=>{let r=n.plainText??e,i;try{i=In(e,4e3)}catch(e){return c(`telegram ${t} failed HTML chunk planning, retrying as plain text: ${h(e)}`),Sr(r,4e3).map(e=>({plainText:e}))}let a=Sr(r,4e3);if(a.length>i.length)return c(`telegram ${t} plain-text fallback needs more chunks than HTML; sending plain text`),a.map(e=>({plainText:e}));let o=Cr(r,i.length,4e3);return i.map((e,t)=>({htmlText:e,plainText:o[t]??e}))},ee=async(e,t)=>await w(T(e,t),t);if(d){let e=await ie(d,se({maxBytes:f,mediaLocalRoots:n.mediaLocalRoots})),r=a(e.contentType??void 0),l=i({contentType:e.contentType,fileName:e.fileName}),h=r===`video`&&n.asVideoNote===!0,y=e.fileName??(l?`animation.gif`:Qr(r??`document`))??`file`,x=new _e(e.buffer,y),S,C;if(h)S=void 0,C=t.trim()?t:void 0;else{let e=pn(t);S=e.caption,C=e.followUpText}let T=S?b(S):void 0,E=!!C,te={...g?m:{},...!E&&p?{reply_markup:p}:{}},ne={...T?{caption:T,parse_mode:`HTML`}:{},...te,...n.silent===!0?{disable_notification:!0}:{}},re=async(e,t)=>await Q(ne,e,n.verbose,async(e,n)=>_(()=>t(e),n)),D=(()=>{if(l)return{label:`animation`,sender:e=>s.sendAnimation(u,x,e)};if(r===`image`)return{label:`photo`,sender:e=>s.sendPhoto(u,x,e)};if(r===`video`)return h?{label:`video_note`,sender:e=>s.sendVideoNote(u,x,e)}:{label:`video`,sender:e=>s.sendVideo(u,x,e)};if(r===`audio`){let{useVoice:t}=xr({wantsVoice:n.asVoice===!0,contentType:e.contentType,fileName:y,logFallback:c});return t?{label:`voice`,sender:e=>s.sendVoice(u,x,e)}:{label:`audio`,sender:e=>s.sendAudio(u,x,e)}}return{label:`document`,sender:e=>s.sendDocument(u,x,e)}})(),O=await re(D.label,D.sender),k=G(O,`media send`),A=String(O?.chat?.id??u);return V(u,k),j({channel:`telegram`,accountId:o.accountId,direction:`outbound`}),E&&C?v===`html`?{messageId:(await ee(C,`text follow-up send`)).messageId,chatId:A}:{messageId:(await w([{plainText:C,htmlText:b(C)}],`text follow-up send`)).messageId,chatId:A}:{messageId:String(k),chatId:A}}if(!t||!t.trim())throw Error(`Message must be non-empty for Telegram sends`);let E;return E=v===`html`?await ee(t,`text send`):await w([{plainText:n.plainText??t,htmlText:b(t)}],`text send`),j({channel:`telegram`,accountId:o.accountId,direction:`outbound`}),E}async function qr(e,t={}){let{cfg:n,account:r,api:i}=X(t),a=D(e),o=await q({cfg:n,api:i,lookupTarget:a.chatId,persistTarget:e,verbose:t.verbose}),s=Z({cfg:n,account:r,retry:t.retry,verbose:t.verbose,shouldRetry:e=>B(e,{context:`send`})}),c=Vt(a.messageThreadId??t.messageThreadId);return await s(()=>i.sendChatAction(o,`typing`,c),`typing`),{ok:!0}}async function Jr(e,t,n,r={}){let{cfg:i,account:a,api:o}=X(r),s=String(e),c=await q({cfg:i,api:o,lookupTarget:s,persistTarget:s,verbose:r.verbose}),l=J(t),u=Z({cfg:i,account:a,retry:r.retry,verbose:r.verbose,shouldRetry:e=>B(e,{context:`send`})}),d=r.remove===!0,f=n.trim(),p=d||!f?[]:[{type:`emoji`,emoji:f}];if(typeof o.setMessageReaction!=`function`)throw Error(`Telegram reactions are unavailable in this bot API.`);try{await u(()=>o.setMessageReaction(c,l,p),`reaction`)}catch(e){let t=e instanceof Error?e.message:String(e);if(/REACTION_INVALID/i.test(t))return{ok:!1,warning:`Reaction unavailable: ${f}`};throw e}return{ok:!0}}async function Yr(e,t,n={}){let{cfg:r,account:i,api:a}=X(n),o=String(e),s=await q({cfg:r,api:a,lookupTarget:o,persistTarget:o,verbose:n.verbose}),l=J(t);return await Z({cfg:r,account:i,retry:n.retry,verbose:n.verbose,shouldRetry:e=>B(e,{context:`send`})})(()=>a.deleteMessage(s,l),`deleteMessage`),c(`[telegram] Deleted message ${l} from chat ${s}`),{ok:!0}}async function Xr(e,t,n,r={}){let{cfg:i,account:a,api:o}=X({...r,cfg:r.cfg}),s=String(e),l=await q({cfg:i,api:o,lookupTarget:s,persistTarget:s,verbose:r.verbose}),u=J(t),d=Z({cfg:i,account:a,retry:r.retry,verbose:r.verbose}),f=$(n)??{inline_keyboard:[]};try{await d(()=>o.editMessageReplyMarkup(l,u,{reply_markup:f}),`editMessageReplyMarkup`,{shouldLog:e=>!Y(e)})}catch(e){if(!Y(e))throw e}return c(`[telegram] Edited reply markup for message ${u} in chat ${l}`),{ok:!0,messageId:String(u),chatId:l}}async function Zr(e,t,n,r={}){let{cfg:i,account:a,api:o}=X({...r,cfg:r.cfg}),s=String(e),l=await q({cfg:i,api:o,lookupTarget:s,persistTarget:s,verbose:r.verbose}),u=J(t),d=Z({cfg:i,account:a,retry:r.retry,verbose:r.verbose,shouldRetry:e=>B(e,{allowMessageMatch:!0})||er(e)}),f=(e,t,n)=>d(e,t,n?{shouldLog:n}:void 0),p=On(n,{textMode:r.textMode??`markdown`,tableMode:A({cfg:i,channel:`telegram`,accountId:a.accountId})}),m=r.buttons!==void 0,h=m?$(r.buttons):void 0,g=m?h??{inline_keyboard:[]}:void 0,_={parse_mode:`HTML`};r.linkPreview===!1&&(_.link_preview_options={is_disabled:!0}),g!==void 0&&(_.reply_markup=g);let v={};r.linkPreview===!1&&(v.link_preview_options={is_disabled:!0}),g!==void 0&&(v.reply_markup=g);try{await Hr({label:`editMessage`,verbose:r.verbose,requestHtml:e=>f(()=>o.editMessageText(l,u,p,_),e,e=>!Y(e)),requestPlain:e=>f(()=>Object.keys(v).length>0?o.editMessageText(l,u,n,v):o.editMessageText(l,u,n),e,e=>!Y(e))})}catch(e){if(!Y(e))throw e}return c(`[telegram] Edited message ${u} in chat ${l}`),{ok:!0,messageId:String(u),chatId:l}}function Qr(e){switch(e){case`image`:return`image.jpg`;case`video`:return`video.mp4`;case`audio`:return`audio.ogg`;default:return`file.bin`}}async function $r(e,t,n={}){if(!t?.trim())throw Error(`Telegram sticker file_id is required`);let{cfg:r,account:i,api:a}=X(n),o=D(e),s=await q({cfg:r,api:a,lookupTarget:o.chatId,persistTarget:e,verbose:n.verbose}),c=Vr({targetMessageThreadId:o.messageThreadId,messageThreadId:n.messageThreadId,chatType:o.chatType,replyToMessageId:n.replyToMessageId}),l=Object.keys(c).length>0,u=Wr({requestWithDiag:Z({cfg:r,account:i,retry:n.retry,verbose:n.verbose,useApiErrorLogging:!1}),chatId:s,input:e}),d=await Q(l?c:void 0,`sticker`,n.verbose,async(e,n)=>u(()=>a.sendSticker(s,t.trim(),e),n)),f=G(d,`sticker send`),p=String(d?.chat?.id??s);return V(s,f),j({channel:`telegram`,accountId:i.accountId,direction:`outbound`}),{messageId:String(f),chatId:p}}async function ei(e,t,n={}){let{cfg:r,account:i,api:a}=X(n),o=D(e),s=await q({cfg:r,api:a,lookupTarget:o.chatId,persistTarget:e,verbose:n.verbose}),c=ce(t,{maxOptions:10}),l=Vr({targetMessageThreadId:o.messageThreadId,messageThreadId:n.messageThreadId,chatType:o.chatType,replyToMessageId:n.replyToMessageId}),u=c.options,d=Wr({requestWithDiag:Gr({cfg:r,account:i,retry:n.retry,verbose:n.verbose}),chatId:s,input:e}),f=c.durationSeconds;if(f===void 0&&c.durationHours!==void 0)throw Error(`Telegram poll durationHours is not supported. Use durationSeconds (5-600) instead.`);if(f!==void 0&&(f<5||f>600))throw Error(`Telegram poll durationSeconds must be between 5 and 600`);let p=await Q({allows_multiple_answers:c.maxSelections>1,is_anonymous:n.isAnonymous??!0,...f===void 0?{}:{open_period:f},...Object.keys(l).length>0?l:{},...n.silent===!0?{disable_notification:!0}:{}},`poll`,n.verbose,async(e,t)=>d(()=>a.sendPoll(s,c.question,u,e),t)),m=G(p,`poll send`),h=String(p?.chat?.id??s),g=p?.poll?.id;return V(s,m),j({channel:`telegram`,accountId:i.accountId,direction:`outbound`}),{messageId:String(m),chatId:h,pollId:g}}async function ti(e,t,n={}){if(!t?.trim())throw Error(`Forum topic name is required`);let r=t.trim();if(r.length>128)throw Error(`Forum topic name must be 128 characters or fewer`);let{cfg:i,account:a,api:o}=X(n),s=await q({cfg:i,api:o,lookupTarget:D(e).chatId,persistTarget:e,verbose:n.verbose}),c=Gr({cfg:i,account:a,retry:n.retry,verbose:n.verbose}),l={};n.iconColor!=null&&(l.icon_color=n.iconColor),n.iconCustomEmojiId?.trim()&&(l.icon_custom_emoji_id=n.iconCustomEmojiId.trim());let u=Object.keys(l).length>0,d=await c(()=>o.createForumTopic(s,r,u?l:void 0),`createForumTopic`),f=d.message_thread_id;return j({channel:`telegram`,accountId:a.accountId,direction:`outbound`}),{topicId:f,name:d.name??r,chatId:s}}export{_t as $,Vt as A,Jt as B,Xt as C,Ut as D,Gt as E,en as F,Nt as G,Ht as H,dn as I,kt as J,Pt as K,Wt as L,tn as M,fn as N,Kt as O,Zt as P,gt as Q,Rt as R,pn as S,qt as T,zt as U,nn as V,Ft as W,ht as X,xt as Y,ft as Z,tr as _,Zr as a,Ee as at,On as b,ei as c,xe as ct,xr as d,ke as et,lr as f,Qn as g,B as h,Xr as i,Te as it,rn as j,Bt as k,$r as l,Se as lt,ar as m,ti as n,Oe as nt,Jr as o,Ce as ot,cr as p,It as q,Yr as r,De as rt,Kr as s,we as st,$ as t,Ae as tt,qr as u,Hn as v,Yt as w,Dn as x,yn as y,Lt as z};
1
+ import{Bt as e,Gt as t,Ot as n,S as r,Ut as i,Wt as a}from"./paths-CXgWvWAM.js";import{I as o,O as s,R as c,g as l,t as u}from"./utils-BJtJR72k.js";import{c as d,d as f,l as p,o as m}from"./paths-rO4ehkyU.js";import{Fr as h,Ir as g,Lr as _,Mo as v,Nr as y,Pr as b,Wi as x,Xi as S,ln as C,qi as w,un as T,ur as ee,xn as E,xo as te}from"./model-auth-wcxJptQX.js";import{n as ne}from"./proxy-fetch-YCVHz7Rl.js";import{n as re,r as D,t as O}from"./targets-BSkiizml.js";import{a as ie,n as k,s as A,t as ae}from"./ir-CpkEWZD6.js";import{t as oe}from"./render-Djx15dPh.js";import{t as se}from"./load-options-BcSg1ODN.js";import{n as ce}from"./polls-CSKMbBIS.js";import{i as le,n as j}from"./channel-activity-CIycjzUC.js";import{t as ue}from"./fetch-J0IzopiJ.js";import M from"node:path";import N from"node:fs";import de from"node:os";import fe from"json5";import pe,{randomBytes as me}from"node:crypto";import{Bot as he,HttpError as ge,InputFile as _e}from"grammy";function ve(e){let t=e.source??(e.isLive?`live`:e.name||e.address?`place`:`pin`),n=!!(e.isLive??t===`live`);return{...e,source:t,isLive:n}}function ye(e){return Number.isFinite(e)?` ±${Math.round(e??0)}m`:``}function be(e,t){return`${e.toFixed(6)}, ${t.toFixed(6)}`}function xe(e){let t=ve(e),n=be(t.latitude,t.longitude),r=ye(t.accuracy),i=t.caption?.trim(),a=``;return a=t.source===`live`||t.isLive?`🛰 Live location: ${n}${r}`:t.name||t.address?`📍 ${[t.name,t.address].filter(Boolean).join(` — `)} (${n}${r})`:`📍 ${n}${r}`,i?`${a}\n${i}`:a}function Se(e){let t=ve(e);return{LocationLat:t.latitude,LocationLon:t.longitude,LocationAccuracy:t.accuracy,LocationName:t.name,LocationAddress:t.address,LocationSource:t.source,LocationIsLive:t.isLive}}function Ce(e){let t=e.dmPolicy===`allowlist`?[]:e.storeAllowFrom??[];return[...e.allowFrom??[],...t].map(e=>String(e).trim()).filter(Boolean)}function we(e){return((Array.isArray(e.groupAllowFrom)&&e.groupAllowFrom.length>0?e.groupAllowFrom:void 0)||(e.fallbackToAllowFrom===!1?[]:e.allowFrom??[])).map(e=>String(e).trim()).filter(Boolean)}function Te(...e){for(let t of e)if(t!==void 0)return t}function Ee(e,t,n){return e.hasEntries?e.hasWildcard?!0:t?e.entries.includes(t):!1:n}function De(){return T().filter(e=>e.pairing).map(e=>e.id)}function Oe(e){return C(e)?.pairing??null}async function ke(e,t){try{let n=l(await N.promises.readFile(e,`utf-8`));return n==null?{value:t,exists:!0}:{value:n,exists:!0}}catch(e){return e.code,{value:t,exists:!1}}}async function Ae(e,t){await ee(e,t,{mode:384,trailingNewline:!0,ensureDirMode:448})}const je={retries:{retries:10,factor:2,minTimeout:100,maxTimeout:1e4,randomize:!0},stale:3e4},Me=new Map;function Ne(e=process.env){return m(e,d(e,()=>f(e,de.homedir)))}function Pe(e){let t=String(e).trim().toLowerCase();if(!t)throw Error(`invalid pairing channel`);let n=t.replace(/[\\/:*?"<>|]/g,`_`).replace(/\.\./g,`_`);if(!n||n===`_`)throw Error(`invalid pairing channel`);return n}function Fe(e,t=process.env){return M.join(Ne(t),`${Pe(e)}-pairing.json`)}function Ie(e){let t=String(e).trim().toLowerCase();if(!t)throw Error(`invalid pairing account id`);let n=t.replace(/[\\/:*?"<>|]/g,`_`).replace(/\.\./g,`_`);if(!n||n===`_`)throw Error(`invalid pairing account id`);return n}function P(e,t=process.env,n){let r=Pe(e),i=typeof n==`string`?n.trim():``;return i?M.join(Ne(t),`${r}-${Ie(i)}-allowFrom.json`):M.join(Ne(t),`${r}-allowFrom.json`)}async function Le(e,t){return await ke(e,t)}async function F(e,t){await Ae(e,t)}async function Re(e){let{value:t}=await Le(e,{version:1,requests:[]});return Array.isArray(t.requests)?t.requests:[]}async function ze(e,t){try{await N.promises.access(e)}catch{await F(e,t)}}async function Be(e,t,n){return await ze(e,t),await v(e,je,async()=>await n())}function I(e){if(!e)return null;let t=Date.parse(e);return Number.isFinite(t)?t:null}function Ve(e,t){let n=I(e.createdAt);return n?t-n>36e5:!0}function He(e,t){let n=[],r=!1;for(let i of e){if(Ve(i,t)){r=!0;continue}n.push(i)}return{requests:n,removed:r}}function Ue(e){return I(e.lastSeenAt)??I(e.createdAt)??0}function We(e,t){return t<=0||e.length<=t?{requests:e,removed:!1}:{requests:e.slice().toSorted((e,t)=>Ue(e)-Ue(t)).slice(-t),removed:!0}}function Ge(){let e=``;for(let t=0;t<8;t++){let t=pe.randomInt(0,32);e+=`ABCDEFGHJKLMNPQRSTUVWXYZ23456789`[t]}return e}function Ke(e){for(let t=0;t<500;t+=1){let t=Ge();if(!e.has(t))return t}throw Error(`failed to generate unique pairing code`)}function qe(e){return e?.trim().toLowerCase()||``}function Je(e,t){return t?String(e.meta?.accountId??``).trim().toLowerCase()===t:!0}function Ye(e){return!e||e===`default`}function Xe(e){return qe(e)||`default`}function Ze(e){return String(e).trim()}function Qe(e,t){let n=t.trim();if(!n||n===`*`)return``;let r=Oe(e),i=r?.normalizeAllowEntry?r.normalizeAllowEntry(n):n;return String(i).trim()}function $e(e,t){return tt((Array.isArray(t.allowFrom)?t.allowFrom:[]).map(t=>Qe(e,String(t))).filter(Boolean))}function et(e,t){return Qe(e,Ze(t))}function tt(e){let t=new Set,n=[];for(let r of e){let e=String(r).trim();!e||t.has(e)||(t.add(e),n.push(e))}return n}async function nt(e,t){return(await st(e,t)).entries}function rt(e){return{exists:e.exists,mtimeMs:e.mtimeMs,size:e.size,entries:e.entries.slice()}}function it(e,t){Me.set(e,rt(t))}function at(e){let t=Me.get(e.filePath);return!t||t.exists!==e.exists||e.exists&&(t.mtimeMs!==e.mtimeMs||t.size!==e.size)?null:rt(t)}function ot(e,t){let n=at({filePath:e,exists:!!t,mtimeMs:t?.mtimeMs??null,size:t?.size??null});return n?{entries:n.entries,exists:n.exists}:t?null:(it(e,{exists:!1,mtimeMs:null,size:null,entries:[]}),{entries:[],exists:!1})}async function st(e,t){let n=null;try{n=await N.promises.stat(t)}catch(e){if(e.code!==`ENOENT`)throw e}let r=ot(t,n);if(r)return r;if(!n)return{entries:[],exists:!1};let{value:i,exists:a}=await Le(t,{version:1,allowFrom:[]}),o=$e(e,i);return it(t,{exists:a,mtimeMs:n.mtimeMs,size:n.size,entries:o}),{entries:o,exists:a}}async function ct(e){let{value:t}=await Le(e.filePath,{version:1,allowFrom:[]});return{current:$e(e.channel,t),normalized:et(e.channel,e.entry)||null}}async function lt(e,t){await F(e,{version:1,allowFrom:t});let n=null;try{n=await N.promises.stat(e)}catch{}it(e,{exists:!0,mtimeMs:n?.mtimeMs??null,size:n?.size??null,entries:t.slice()})}async function ut(e){let t=P(e.channel,e.env,e.accountId);return await nt(e.channel,t)}async function dt(e){let t=e.env??process.env,n=P(e.channel,t,e.accountId);return await Be(n,{version:1,allowFrom:[]},async()=>{let{current:t,normalized:r}=await ct({channel:e.channel,entry:e.entry,filePath:n});if(!r)return{changed:!1,allowFrom:t};let i=e.apply(t,r);return i?(await lt(n,i),{changed:!0,allowFrom:i}):{changed:!1,allowFrom:t}})}async function ft(e,t=process.env,n){let r=Xe(n);if(!Ye(r))return await ut({channel:e,env:t,accountId:r});let i=await nt(e,P(e,t,r)),a=await nt(e,P(e,t));return tt([...i,...a])}async function pt(e){return await dt({channel:e.channel,entry:e.entry,accountId:e.accountId,env:e.env,apply:e.apply})}async function mt(e,t){return await pt({...e,apply:t})}async function ht(e){return await mt(e,(e,t)=>e.includes(t)?null:[...e,t])}async function gt(e){return await mt(e,(e,t)=>{let n=e.filter(e=>e!==t);return n.length===e.length?null:n})}async function _t(e){let t=e.env??process.env,n=Fe(e.channel,t);return await Be(n,{version:1,requests:[]},async()=>{let t=new Date().toISOString(),r=Date.now(),i=Ze(e.id),a=qe(e.accountId)||`default`,o={...e.meta&&typeof e.meta==`object`?Object.fromEntries(Object.entries(e.meta).map(([e,t])=>[e,String(t??``).trim()]).filter(([e,t])=>!!t)):void 0,accountId:a},s=await Re(n),{requests:c,removed:l}=He(s,r);s=c;let u=a,d=s.findIndex(e=>e.id===i?Je(e,u):!1),f=new Set(s.map(e=>String(e.code??``).trim().toUpperCase()));if(d>=0){let e=s[d],r=(e&&typeof e.code==`string`?e.code.trim():``)||Ke(f),a={id:i,code:r,createdAt:e?.createdAt??t,lastSeenAt:t,meta:o??e?.meta};s[d]=a;let{requests:c}=We(s,3);return await F(n,{version:1,requests:c}),{code:r,created:!1}}let{requests:p,removed:m}=We(s,3);if(s=p,s.length>=3)return(l||m)&&await F(n,{version:1,requests:s}),{code:``,created:!1};let h=Ke(f),g={id:i,code:h,createdAt:t,lastSeenAt:t,...o?{meta:o}:{}};return await F(n,{version:1,requests:[...s,g]}),{code:h,created:!0}})}const vt=new Set([`.oga`,`.ogg`,`.opus`,`.mp3`,`.m4a`]),yt=new Set([`audio/ogg`,`audio/opus`,`audio/mpeg`,`audio/mp3`,`audio/mp4`,`audio/x-m4a`,`audio/m4a`]);function bt(n){let r=t(n.contentType);if(r&&yt.has(r))return!0;let i=n.fileName?.trim();if(!i)return!1;let a=e(i);return a?vt.has(a):!1}function xt(e){return bt(e)}function L(e){return e.trim().toLowerCase()}function St(e){if(!e)return[];let t=e.trim();if(!t)return[];let n=t.toLowerCase();return[`0`,`false`,`off`,`none`].includes(n)?[]:[`1`,`true`,`all`,`*`].includes(n)?[`*`]:t.split(/[,\s]+/).map(L).filter(Boolean)}function Ct(e){let t=new Set,n=[];for(let r of e){let e=L(r);!e||t.has(e)||(t.add(e),n.push(e))}return n}function wt(e,t=process.env){let n=Array.isArray(e?.diagnostics?.flags)?e?.diagnostics?.flags:[],r=St(t.OPENCLAW_DIAGNOSTICS);return Ct([...n,...r])}function Tt(e,t){let n=L(e);if(!n)return!1;for(let e of t){let t=L(e);if(t){if(t===`*`||t===`all`)return!0;if(t.endsWith(`.*`)){let e=t.slice(0,-2);if(n===e||n.startsWith(`${e}.`))return!0}if(t.endsWith(`*`)){let e=t.slice(0,-1);if(n.startsWith(e))return!0}if(t===n)return!0}}return!1}function Et(e,t,n=process.env){return Tt(e,wt(t,n))}const Dt=s(`telegram/api`);function Ot(e,t){return t||(e?.error?e.error:e=>Dt.error(e))}async function kt({operation:e,fn:t,runtime:n,logger:r,shouldLog:i}){try{return await t()}catch(t){if(!i||i(t)){let i=h(t);Ot(n,r)(o(`telegram ${e} failed: ${i}`))}throw t}}const At=new Set,jt=s(`telegram/bot-access`);function Mt(e){if(!process.env.VITEST)for(let t of e)At.has(t)||(At.add(t),jt.warn([`Invalid allowFrom entry:`,JSON.stringify(t),`- allowFrom/groupAllowFrom authorization expects numeric Telegram sender user IDs only.`,`To allow a Telegram group or supergroup, add its negative chat ID under "channels.telegram.groups" instead.`,`If you had "@username" entries, re-run onboarding (it resolves @username to IDs) or replace them manually.`].join(` `)))}const Nt=e=>{let t=(e??[]).map(e=>String(e).trim()).filter(Boolean),n=t.includes(`*`),r=t.filter(e=>e!==`*`).map(e=>e.replace(/^(telegram|tg):/i,``)),i=r.filter(e=>!/^\d+$/.test(e));return i.length>0&&Mt([...new Set(i)]),{entries:r.filter(e=>/^\d+$/.test(e)),hasWildcard:n,hasEntries:t.length>0,invalidEntries:i}},Pt=e=>Nt(Ce(e)),Ft=e=>{let{allow:t,senderId:n}=e;return Ee(t,n,!0)},It=e=>{let{allow:t,senderId:n}=e;return t.hasWildcard?{allowed:!0,matchKey:`*`,matchSource:`wildcard`}:t.hasEntries&&n&&t.entries.includes(n)?{allowed:!0,matchKey:n,matchSource:`id`}:{allowed:!1}};async function Lt(e){let t=n(e.accountId),r=zt({isGroup:e.isGroup??!1,isForum:e.isForum,messageThreadId:e.messageThreadId}),i=r.scope===`forum`?r.id:void 0,a=r.scope===`dm`?r.id:void 0,o=i??a,s=await ft(`telegram`,process.env,t).catch(()=>[]),{groupConfig:c,topicConfig:l}=e.resolveTelegramGroupConfig(e.chatId,o),u=Te(l?.allowFrom,c?.allowFrom);return{resolvedThreadId:i,dmThreadId:a,storeAllowFrom:s,groupConfig:c,topicConfig:l,groupAllowOverride:u,effectiveGroupAllow:Nt(u??e.groupAllowFrom),hasGroupAllowOverride:u!==void 0}}function Rt(e){if(e.isForum)return e.messageThreadId==null?1:e.messageThreadId}function zt(e){return e.isGroup?{id:Rt({isForum:e.isForum,messageThreadId:e.messageThreadId}),scope:e.isForum?`forum`:`none`}:e.messageThreadId==null?{scope:`dm`}:{id:e.messageThreadId,scope:`dm`}}function Bt(e){if(e?.id==null)return;let t=Math.trunc(e.id);if(e.scope===`dm`)return t>0?{message_thread_id:t}:void 0;if(t!==1)return{message_thread_id:t}}function Vt(e){if(e!=null)return{message_thread_id:Math.trunc(e)}}function Ht(e){return te(e)}function Ut(e,t){return t==null?String(e):`${e}:topic:${t}`}function Wt(e){return(e.senderId==null?``:String(e.senderId).trim())||String(e.chatId)}function Gt(e,t){return`telegram:group:${Ut(e,t)}`}function Kt(e){if(!(!e.isGroup||e.resolvedThreadId==null))return{kind:`group`,id:String(e.chatId)}}function qt(e){return[e.from?.first_name,e.from?.last_name].filter(Boolean).join(` `).trim()||e.from?.username||void 0}function Jt(e){if(e){if(e.photo)return`<media:image>`;if(e.video||e.video_note)return`<media:video>`;if(e.audio||e.voice)return`<media:audio>`;if(e.document)return`<media:document>`;if(e.sticker)return`<media:sticker>`}}function Yt(e,t){let n=qt(e),r=e.from?.username?`@${e.from.username}`:void 0,i=n;n&&r?i=`${n} (${r})`:!n&&r&&(i=r);let a=(t!=null&&`${t}`.trim()?`${t}`.trim():void 0)??(e.from?.id==null?void 0:String(e.from.id)),o=a?`id:${a}`:void 0;return i&&o?`${i} ${o}`:i||(o??`id:unknown`)}function Xt(e,t,n){let r=e.chat?.title,i=n==null?``:` topic:${n}`;return r?`${r} id:${t}${i}`:`group:${t}${i}`}function Zt(e){return{text:e.text??e.caption??``,entities:e.entities??e.caption_entities??[]}}function Qt(e){return e!=null&&/[a-z0-9_]/i.test(e)}function $t(e,t){let n=0;for(;n<e.length;){let r=e.indexOf(t,n);if(r===-1)return!1;let i=r>0?e[r-1]:void 0,a=e[r+t.length];if(!Qt(i)&&!Qt(a))return!0;n=r+1}return!1}function en(e,t){let{text:n,entities:r}=Zt(e),i=`@${t}`.toLowerCase();if($t(n.toLowerCase(),i))return!0;for(let e of r)if(e.type===`mention`&&n.slice(e.offset,e.offset+e.length).toLowerCase()===i)return!0;return!1}function tn(e,t){if(!e||!t?.length)return e;let n=t.filter(e=>e.type===`text_link`&&!!e.url).toSorted((e,t)=>t.offset-e.offset);if(n.length===0)return e;let r=e;for(let t of n){let n=`[${e.slice(t.offset,t.offset+t.length)}](${t.url})`;r=r.slice(0,t.offset)+n+r.slice(t.offset+t.length)}return r}function nn(e){if(!e)return;let t=Number(e);if(Number.isFinite(t))return t}function rn(e){let t=e.reply_to_message,n=e.external_reply,r=e.quote?.text??n?.quote?.text,i=``,a=`reply`;typeof r==`string`&&(i=r.trim(),i&&(a=`quote`));let o=t??n;if(!i&&o&&(i=(o.text??o.caption??``).trim(),!i&&(i=Jt(o)??``,!i))){let e=fn(o);e&&(i=xe(e))}if(!i)return null;let s=(o?qt(o):void 0)??`unknown sender`,c=o?.forward_origin?un(o.forward_origin)??void 0:void 0;return{id:o?.message_id?String(o.message_id):void 0,sender:s,body:i,kind:a,forwardedFrom:c}}function an(e){let t=[e.first_name,e.last_name].filter(Boolean).join(` `).trim(),n=e.username?.trim()||void 0,r=String(e.id);return{display:(t&&n?`${t} (@${n})`:t||(n?`@${n}`:void 0))||`user:${r}`,name:t||void 0,username:n,id:r}}function on(e,t){let n=e.title?.trim()||void 0,r=e.username?.trim()||void 0,i=String(e.id);return{display:n||(r?`@${r}`:void 0)||`${t}:${i}`,title:n,username:r,id:i}}function sn(e){let{display:t,name:n,username:r,id:i}=an(e.user);return t?{from:t,date:e.date,fromType:e.type,fromId:i,fromUsername:r,fromTitle:n}:null}function cn(e){let t=e.name?.trim();return t?{from:t,date:e.date,fromType:e.type,fromTitle:t}:null}function ln(e){let t=e.type===`channel`?`channel`:`chat`,{display:n,title:r,username:i,id:a}=on(e.chat,t);if(!n)return null;let o=e.signature?.trim()||void 0,s=o?`${n} (${o})`:n,c=e.chat.type?.trim()||void 0;return{from:s,date:e.date,fromType:e.type,fromId:a,fromUsername:i,fromTitle:r,fromSignature:o,fromChatType:c,fromMessageId:e.messageId}}function un(e){switch(e.type){case`user`:return sn({user:e.sender_user,date:e.date,type:`user`});case`hidden_user`:return cn({name:e.sender_user_name,date:e.date,type:`hidden_user`});case`chat`:return ln({chat:e.sender_chat,date:e.date,type:`chat`,signature:e.author_signature});case`channel`:return ln({chat:e.chat,date:e.date,type:`channel`,signature:e.author_signature,messageId:e.message_id});default:return null}}function dn(e){return e.forward_origin?un(e.forward_origin):null}function fn(e){let{venue:t,location:n}=e;if(t)return{latitude:t.location.latitude,longitude:t.location.longitude,accuracy:t.location.horizontal_accuracy,name:t.title,address:t.address,source:`place`,isLive:!1};if(n){let e=typeof n.live_period==`number`&&n.live_period>0;return{latitude:n.latitude,longitude:n.longitude,accuracy:n.horizontal_accuracy,source:e?`live`:`pin`,isLive:e}}return null}function pn(e){let t=e?.trim()??``;return t?t.length>1024?{caption:void 0,followUpText:t}:{caption:t,followUpText:void 0}:{caption:void 0,followUpText:void 0}}function R(e){return e.replace(/&/g,`&amp;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`)}function mn(e){return R(e).replace(/"/g,`&quot;`)}const hn=new Set([`md`,`go`,`py`,`pl`,`sh`,`am`,`at`,`be`,`cc`]);function gn(e,t){if(e.replace(/^https?:\/\//i,``)!==t)return!1;let n=t.lastIndexOf(`.`);if(n<1)return!1;let r=t.slice(n+1).toLowerCase();if(!hn.has(r))return!1;let i=t.split(`/`);if(i.length>1){for(let e=0;e<i.length-1;e++)if(i[e].includes(`.`))return!1}return!0}function _n(e,t){let n=e.href.trim();if(!n||e.start===e.end||gn(n,t.slice(e.start,e.end)))return null;let r=mn(n);return{start:e.start,end:e.end,open:`<a href="${r}">`,close:`</a>`}}function vn(e){return oe(e,{styleMarkers:{bold:{open:`<b>`,close:`</b>`},italic:{open:`<i>`,close:`</i>`},strikethrough:{open:`<s>`,close:`</s>`},code:{open:`<code>`,close:`</code>`},code_block:{open:`<pre><code>`,close:`</code></pre>`},spoiler:{open:`<tg-spoiler>`,close:`</tg-spoiler>`},blockquote:{open:`<blockquote>`,close:`</blockquote>`}},escapeText:R,buildLink:_n})}function yn(e,t={}){let n=vn(k(e??``,{linkify:!0,enableSpoilers:!0,headingStyle:`none`,blockquotePrefix:``,tableMode:t.tableMode}));return t.wrapFileRefs===!1?n:Dn(n)}function bn(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}const xn=Array.from(hn).map(bn).join(`|`),Sn=/<a\s+href="https?:\/\/([^"]+)"[^>]*>\1<\/a>/gi,Cn=RegExp(`(^|[^a-zA-Z0-9_\\-/])([a-zA-Z0-9_.\\-./]+\\.(?:${xn}))(?=$|[^a-zA-Z0-9_\\-/])`,`gi`),wn=RegExp(`([^a-zA-Z0-9]|^)([A-Za-z]\\.(?:${xn}))(?=[^a-zA-Z0-9/]|$)`,`g`),z=/(<\/?)([a-zA-Z][a-zA-Z0-9-]*)\b[^>]*?>/gi;function Tn(e,t,n){return n.startsWith(`//`)||/https?:\/\/$/i.test(t)?e:`${t}<code>${R(n)}</code>`}function En(e,t,n,r){return!e||t>0||n>0||r>0?e:e.replace(Cn,Tn).replace(wn,(e,t,n)=>t===`>`?e:`${t}<code>${R(n)}</code>`)}function Dn(e){Sn.lastIndex=0;let t=e.replace(Sn,(e,t)=>gn(`http://${t}`,t)?`<code>${R(t)}</code>`:e),n=0,r=0,i=0,a=``,o=0;z.lastIndex=0;let s;for(;(s=z.exec(t))!==null;){let e=s.index,c=z.lastIndex,l=s[1]===`</`,u=s[2].toLowerCase(),d=t.slice(o,e);a+=En(d,n,r,i),u===`code`?n=l?Math.max(0,n-1):n+1:u===`pre`?r=l?Math.max(0,r-1):r+1:u===`a`&&(i=l?Math.max(0,i-1):i+1),a+=t.slice(e,c),o=c}let c=t.slice(o);return a+=En(c,n,r,i),a}function On(e,t={}){return(t.textMode??`markdown`)===`html`?e:yn(e,{tableMode:t.tableMode})}const kn=new Set([`br`]);function An(e){return e.map(e=>e.openTag).join(``)}function jn(e){return e.slice().toReversed().map(e=>e.closeTag).join(``)}function Mn(e){return e.reduce((e,t)=>e+t.closeTag.length,0)}function Nn(e,t){if(e[t]!==`&`)return-1;let n=t+1;if(n>=e.length)return-1;if(e[n]===`#`){if(n+=1,n>=e.length)return-1;if(e[n]===`x`||e[n]===`X`){n+=1;let t=n;for(;/[0-9A-Fa-f]/.test(e[n]??``);)n+=1;if(n===t)return-1}else{let t=n;for(;/[0-9]/.test(e[n]??``);)n+=1;if(n===t)return-1}}else{let t=n;for(;/[A-Za-z0-9]/.test(e[n]??``);)n+=1;if(n===t)return-1}return e[n]===`;`?n:-1}function Pn(e,t){if(e.length<=t)return e.length;let n=Math.max(1,Math.floor(t)),r=e.lastIndexOf(`&`,n-1);if(r===-1||r<e.lastIndexOf(`;`,n-1))return n;let i=Nn(e,r);return i===-1||i<n?n:r}function Fn(e,t){for(let n=e.length-1;n>=0;--n)if(e[n]?.name===t){e.splice(n,1);return}}function In(e,t){if(!e)return[];let n=Math.max(1,Math.floor(t));if(e.length<=n)return[e];let r=[],i=[],a=``,o=!1,s=()=>{a=An(i),o=!1},c=()=>{o&&(r.push(`${a}${jn(i)}`),s())},l=e=>{let t=e;for(;t.length>0;){let e=n-a.length-Mn(i);if(e<=0){if(!o)throw Error(`Telegram HTML chunk limit exceeded by tag overhead (limit=${n})`);c();continue}if(t.length<=e){a+=t,o=!0;break}let r=Pn(t,e);if(r<=0){if(!o)throw Error(`Telegram HTML chunk limit exceeded by leading entity (limit=${n})`);c();continue}a+=t.slice(0,r),o=!0,t=t.slice(r),c()}};s(),z.lastIndex=0;let u=0,d;for(;(d=z.exec(e))!==null;){let t=d.index,r=z.lastIndex;l(e.slice(u,t));let s=d[0],f=d[1]===`</`,p=d[2].toLowerCase(),m=!f&&(kn.has(p)||s.trimEnd().endsWith(`/>`));if(!f){let e=m?0:`</${p}>`.length;o&&a.length+s.length+Mn(i)+e>n&&c()}a+=s,m&&(o=!0),f?Fn(i,p):m||i.push({name:p,openTag:s,closeTag:`</${p}>`}),u=r}return l(e.slice(u)),c(),r.length>0?r:[e]}function Ln(e,t,n){let r=e.text.length;if(r<=1)return[e];let i=Math.floor(r*t/Math.max(n,1)),a=Math.min(r-1,i),o=Bn(e,Number.isFinite(a)&&a>0?a:Math.max(1,Math.floor(r/2)));return o.length>1?o:Bn(e,Math.max(1,Math.floor(r/2)))}function Rn(e,t,n){return e.flatMap(e=>{if(e.end<=t||e.start>=n)return[];let r=Math.max(e.start,t)-t,i=Math.min(e.end,n)-t;return i<=r?[]:[{...e,start:r,end:i}]})}function zn(e,t,n){return e.flatMap(e=>{if(e.end<=t||e.start>=n)return[];let r=Math.max(e.start,t)-t,i=Math.min(e.end,n)-t;return i<=r?[]:[{...e,start:r,end:i}]})}function Bn(e,t){if(!e.text)return[];let n=Math.max(1,Math.floor(t));if(n<=0||e.text.length<=n)return[e];let r=[],i=0;for(;i<e.text.length;){let t=Math.min(e.text.length,i+n);r.push({text:e.text.slice(i,t),styles:Rn(e.styles,i,t),links:zn(e.links,i,t)}),i=t}return r}function Vn(e,t){let n=Math.max(1,Math.floor(t)),r=ae(e,n),i=[];for(;r.length>0;){let e=r.shift();if(!e)continue;let t=Dn(vn(e));if(t.length<=n||e.text.length<=1){i.push({html:t,text:e.text});continue}let a=Ln(e,n,t.length);if(a.length<=1){i.push({html:t,text:e.text});continue}r.unshift(...a)}return i}function Hn(e,t,n={}){return Vn(k(e??``,{linkify:!0,enableSpoilers:!0,headingStyle:`none`,blockquotePrefix:``,tableMode:n.tableMode}),t)}const Un=new Set([`ECONNRESET`,`ECONNREFUSED`,`EPIPE`,`ETIMEDOUT`,`ESOCKETTIMEDOUT`,`ENETUNREACH`,`EHOSTUNREACH`,`ENOTFOUND`,`EAI_AGAIN`,`UND_ERR_CONNECT_TIMEOUT`,`UND_ERR_HEADERS_TIMEOUT`,`UND_ERR_BODY_TIMEOUT`,`UND_ERR_SOCKET`,`UND_ERR_ABORTED`,`ECONNABORTED`,`ERR_NETWORK`]),Wn=new Set([`ECONNREFUSED`,`ENOTFOUND`,`EAI_AGAIN`,`ENETUNREACH`,`EHOSTUNREACH`]),Gn=new Set([`AbortError`,`TimeoutError`,`ConnectTimeoutError`,`HeadersTimeoutError`,`BodyTimeoutError`]),Kn=new Set([`fetch failed`,`typeerror: fetch failed`]),qn=/^network request(?:\s+for\s+["']?[^"']+["']?)?\s+failed\s+after\b.*[!.]?$/i,Jn=[`undici`,`network error`,`network request`,`client network socket disconnected`,`socket hang up`,`getaddrinfo`,`timeout`,`timed out`];function Yn(e){return y(e,e=>{let t=[e.cause,e.reason];return Array.isArray(e.errors)&&t.push(...e.errors),_(e)===`HttpError`&&t.push(e.error),t})}function Xn(e){return e?.trim().toUpperCase()??``}function Zn(e){let t=b(e);if(t)return t;if(!e||typeof e!=`object`)return;let n=e.errno;if(typeof n==`string`)return n;if(typeof n==`number`)return String(n)}function Qn(e){if(!e)return!1;for(let t of Yn(e)){let e=Xn(Zn(t));if(e&&Wn.has(e))return!0}return!1}function $n(e,t){for(let n of Yn(e)){if(!n||typeof n!=`object`||!(`error_code`in n))continue;let e=n.error_code;if(typeof e==`number`&&t(e))return!0}return!1}function er(e){return $n(e,e=>e>=500)}function tr(e){return $n(e,e=>e>=400&&e<500)}function B(e,t={}){if(!e)return!1;let n=typeof t.allowMessageMatch==`boolean`?t.allowMessageMatch:t.context!==`send`;for(let t of Yn(e)){let e=Xn(Zn(t));if(e&&Un.has(e))return!0;let r=_(t);if(r&&Gn.has(r))return!0;let i=h(t).trim().toLowerCase();if(i&&Kn.has(i)||i&&qn.test(i)||n&&i&&Jn.some(e=>i.includes(e)))return!0}return!1}const nr=new Map;function rr(e){return String(e)}function ir(e){let t=Date.now();for(let[n,r]of e.timestamps)t-r>864e5&&e.timestamps.delete(n)}function V(e,t){let n=rr(e),r=nr.get(n);r||(r={timestamps:new Map},nr.set(n,r)),r.timestamps.set(t,Date.now()),r.timestamps.size>100&&ir(r)}function ar(e,t){let n=rr(e),r=nr.get(n);return r?(ir(r),r.timestamps.has(t)):!1}const or=M.join(u,`cron`),sr=M.join(or,`jobs.json`),H=new Map;function cr(e){if(e?.trim()){let t=e.trim();return t.startsWith(`~`)?M.resolve(p(t)):M.resolve(t)}return sr}async function lr(e){try{let t=await N.promises.readFile(e,`utf-8`),n;try{n=fe.parse(t)}catch(t){throw Error(`Failed to parse cron store at ${e}: ${String(t)}`,{cause:t})}let r=n&&typeof n==`object`&&!Array.isArray(n)?n:{},i={version:1,jobs:(Array.isArray(r.jobs)?r.jobs:[]).filter(Boolean)};return H.set(e,JSON.stringify(i,null,2)),i}catch(t){if(t?.code===`ENOENT`)return H.delete(e),{version:1,jobs:[]};throw t}}async function ur(e){await N.promises.chmod(e,384).catch(()=>void 0)}async function dr(e,t,n){let r=M.dirname(e);await N.promises.mkdir(r,{recursive:!0,mode:448}),await N.promises.chmod(r,448).catch(()=>void 0);let i=JSON.stringify(t,null,2),a=H.get(e);if(a===i)return;let o=a??null;if(o===null)try{o=await N.promises.readFile(e,`utf-8`)}catch(e){if(e.code!==`ENOENT`)throw e}if(o===i){H.set(e,i);return}let s=`${e}.${process.pid}.${me(8).toString(`hex`)}.tmp`;if(await N.promises.writeFile(s,i,{encoding:`utf-8`,mode:384}),await ur(s),o!==null&&!n?.skipBackup)try{let t=`${e}.bak`;await N.promises.copyFile(e,t),await ur(t)}catch{}await fr(s,e),await ur(e),H.set(e,i)}async function fr(e,t){for(let n=0;n<=3;n++)try{await N.promises.rename(e,t);return}catch(r){let i=r.code;if(i===`EBUSY`&&n<3){await new Promise(e=>setTimeout(e,50*2**n));continue}if(i===`EPERM`||i===`EEXIST`){await N.promises.copyFile(e,t),await N.promises.unlink(e).catch(()=>{});return}throw r}}const U=s(`telegram/target-writeback`);function W(e){return!e||typeof e!=`object`||Array.isArray(e)?null:e}function pr(e){let t=re(e);if(t)return t.startsWith(`@`)?t.toLowerCase():t}function mr(e){let t=D(e),n=pr(t.chatId);if(n)return`${n}|${t.messageThreadId==null?``:String(t.messageThreadId)}`}function hr(e){let{raw:t,parsed:n,resolvedChatId:r}=e;return n.messageThreadId==null?r:t.includes(`:topic:`)?`${r}:topic:${n.messageThreadId}`:`${r}:${n.messageThreadId}`}function gr(e){let t=D(e.raw);if(O(t.chatId))return null;let n=pr(t.chatId);return n?{matchKey:`${n}|${t.messageThreadId==null?``:String(t.messageThreadId)}`,resolvedTarget:hr({raw:e.raw,parsed:t,resolvedChatId:e.resolvedChatId})}:null}function _r(e){if(typeof e.rawValue!=`string`&&typeof e.rawValue!=`number`)return null;let t=String(e.rawValue).trim();return!t||mr(t)!==e.matchKey?null:e.resolvedTarget}function vr(e){let t=!1,n=W(e.cfg.channels?.telegram);if(!n)return t;let r=(n,r)=>{let i=_r({rawValue:n[r],matchKey:e.matchKey,resolvedTarget:e.resolvedTarget});i&&(n[r]=i,t=!0)};r(n,`defaultTo`);let i=W(n.accounts);if(!i)return t;for(let e of Object.keys(i)){let t=W(i[e]);t&&r(t,`defaultTo`)}return t}async function yr(e){let t=e.rawTarget.trim();if(!t)return;let n=gr({raw:t,resolvedChatId:e.resolvedChatId});if(!n)return;let{matchKey:r,resolvedTarget:i}=n;try{let{snapshot:n,writeOptions:a}=await w(),o=structuredClone(n.config??{});vr({cfg:o,matchKey:r,resolvedTarget:i})&&(await S(o,a),e.verbose&&U.warn(`resolved Telegram defaultTo target ${t} -> ${i}`))}catch(n){e.verbose&&U.warn(`failed to persist Telegram defaultTo target ${t}: ${String(n)}`)}try{let n=cr(e.cfg.cron?.store),a=await lr(n),o=!1;for(let e of a.jobs){if(e.delivery?.channel!==`telegram`)continue;let t=_r({rawValue:e.delivery.to,matchKey:r,resolvedTarget:i});t&&(e.delivery.to=t,o=!0)}o&&(await dr(n,a),e.verbose&&U.warn(`resolved Telegram cron delivery target ${t} -> ${i}`))}catch(n){e.verbose&&U.warn(`failed to persist Telegram cron target ${t}: ${String(n)}`)}}function br(e){return e.wantsVoice?bt(e)?{useVoice:!0}:{useVoice:!1,reason:`media is ${e.contentType??`unknown`} (${e.fileName??`unknown`})`}:{useVoice:!1}}function xr(e){let t=br(e);return t.reason&&e.logFallback&&e.logFallback(`Telegram voice requested but ${t.reason}; sending as audio file instead.`),{useVoice:t.useVoice}}function G(e,t){if(typeof e?.message_id==`number`&&Number.isFinite(e.message_id))return Math.trunc(e.message_id);throw Error(`Telegram ${t} returned no message_id`)}function Sr(e,t){if(!e)return[];let n=Math.max(1,Math.floor(t)),r=[];for(let t=0;t<e.length;t+=n)r.push(e.slice(t,t+n));return r}function Cr(e,t,n){if(!e)return[];let r=Math.max(1,Math.floor(n)),i=Sr(e,r);if(t<=1||i.length>=t)return i;let a=[],o=0;for(let n=0;n<t;n+=1){let i=e.length-o,s=t-n,c=s===1?i:Math.min(r,Math.ceil(i/s));a.push(e.slice(o,o+c)),o+=c}return a}const wr=/can't parse entities|parse entities|find end of the entity/i,Tr=/400:\s*Bad Request:\s*message thread not found/i,Er=/400:\s*Bad Request:\s*message is not modified|MESSAGE_NOT_MODIFIED/i,Dr=/400: Bad Request: chat not found/i,Or=s(`telegram/send`),kr=s(`telegram/diagnostic`),K=new Map;function Ar(e){return Et(`telegram.http`,e)?(e,t)=>{if(!(t instanceof ge))return;let n=r(g(t.error??t));kr.warn(`telegram http error (${e}): ${n}`)}:()=>{}}function jr(){return!process.env.VITEST&&!0}function Mr(e){let t=e.account.config.proxy?.trim()??``,n=e.account.config.network?.autoSelectFamily,r=typeof n==`boolean`?String(n):`default`,i=e.account.config.network?.dnsResultOrder??`default`,a=typeof e.timeoutSeconds==`number`?String(e.timeoutSeconds):`default`;return`${e.account.accountId}::${t}::${r}::${i}::${a}`}function Nr(e,t){if(K.set(e,t),K.size>64){let e=K.keys().next().value;e!==void 0&&K.delete(e)}return t}function Pr(e){let t=typeof e.config.timeoutSeconds==`number`&&Number.isFinite(e.config.timeoutSeconds)?Math.max(1,Math.floor(e.config.timeoutSeconds)):void 0,n=jr()?Mr({account:e,timeoutSeconds:t}):null;if(n&&K.has(n))return K.get(n);let r=e.config.proxy?.trim(),i=ue(r?ne(r):void 0,{network:e.config.network}),a=i||t?{...i?{fetch:i}:{},...t?{timeoutSeconds:t}:{}}:void 0;return n?Nr(n,a):a}function Fr(e,t){if(e?.trim())return e.trim();if(!t.token)throw Error(`Telegram bot token missing for account "${t.accountId}" (set channels.telegram.accounts.${t.accountId}.botToken/tokenFile or TELEGRAM_BOT_TOKEN for default).`);return t.token.trim()}async function Ir(e,t){let n=O(e);if(n)return n;let r=re(e),i=t.api.getChat;if(!r||typeof i!=`function`)throw Error(`Telegram recipient must be a numeric chat ID`);try{let e=await i.call(t.api,r),n=O(String(e?.id??``));if(!n)throw Error(`resolved chat id is not numeric (${String(e?.id??``)})`);return t.verbose&&Or.warn(`telegram recipient ${r} resolved to numeric chat id ${n}`),n}catch(e){let t=h(e);throw Error(`Telegram recipient ${r} could not be resolved to a numeric chat ID (${t})`,{cause:e})}}async function q(e){let t=await Ir(e.lookupTarget,{api:e.api,verbose:e.verbose});return await yr({cfg:e.cfg,rawTarget:e.persistTarget,resolvedChatId:t,verbose:e.verbose}),t}function J(e){if(typeof e==`number`&&Number.isFinite(e))return Math.trunc(e);if(typeof e==`string`){let t=e.trim();if(!t)throw Error(`Message id is required for Telegram actions`);let n=Number.parseInt(t,10);if(Number.isFinite(n))return n}throw Error(`Message id is required for Telegram actions`)}function Lr(e){return Tr.test(h(e))}function Y(e){return Er.test(h(e))}function Rr(e){if(!e)return!1;let t=e.message_thread_id;return typeof t==`number`?Number.isFinite(t):typeof t==`string`?t.trim().length>0:!1}function zr(e){if(!e||!Rr(e))return e;let t={...e};return delete t.message_thread_id,Object.keys(t).length>0?t:void 0}function Br(e){return wr.test(h(e))}function Vr(e){let t=e.messageThreadId==null?e.targetMessageThreadId:e.messageThreadId,n=e.chatType===`direct`?`dm`:`forum`,r=Bt(t==null?void 0:{id:t,scope:n}),i=r?{...r}:{};if(e.replyToMessageId!=null){let t=Math.trunc(e.replyToMessageId);e.quoteText?.trim()?i.reply_parameters={message_id:t,quote:e.quoteText.trim()}:i.reply_to_message_id=t}return i}async function Hr(e){try{return await e.requestHtml(e.label)}catch(t){if(!Br(t))throw t;return e.verbose&&Or.warn(`telegram ${e.label} failed with HTML parse error, retrying as plain text: ${h(t)}`),await e.requestPlain(`${e.label}-plain`)}}function X(e){let t=e.cfg??x(),n=E({cfg:t,accountId:e.accountId}),r=Fr(e.token,n),i=Pr(n);return{cfg:t,account:n,api:e.api??new he(r,i?{client:i}:void 0).api}}function Z(e){let t=le({retry:e.retry,configRetry:e.account.config.retry,verbose:e.verbose,...e.shouldRetry?{shouldRetry:e.shouldRetry}:{},...e.strictShouldRetry?{strictShouldRetry:!0}:{}}),n=Ar(e.cfg);return(r,i,a)=>{let o=()=>t(r,i);return(e.useApiErrorLogging===!1?o():kt({operation:i??`request`,fn:o,...a?.shouldLog?{shouldLog:a.shouldLog}:{}})).catch(e=>{throw n(i??`request`,e),e})}}function Ur(e,t){return Dr.test(h(e))?Error([`Telegram send failed: chat not found (chat_id=${t.chatId}).`,`Likely: bot not started in DM, bot removed from group/channel, group migrated (new -100… id), or wrong bot token.`,`Input was: ${JSON.stringify(t.input)}.`].join(` `)):e}async function Q(e,t,n,r){try{return await r(e,t)}catch(i){if(!Rr(e)||!Lr(i))throw i;return n&&Or.warn(`telegram ${t} failed with message_thread_id, retrying without thread: ${h(i)}`),await r(zr(e),`${t}-threadless`)}}function Wr(e){return async(t,n)=>e.requestWithDiag(t,n).catch(t=>{throw Ur(t,{chatId:e.chatId,input:e.input})})}function Gr(e){return Z({cfg:e.cfg,account:e.account,retry:e.retry,verbose:e.verbose,useApiErrorLogging:e.useApiErrorLogging,shouldRetry:e=>Qn(e),strictShouldRetry:!0})}function $(e){if(!e?.length)return;let t=e.map(e=>e.filter(e=>e?.text&&e?.callback_data).map(e=>({text:e.text,callback_data:e.callback_data,...e.style?{style:e.style}:{}}))).filter(e=>e.length>0);if(t.length!==0)return{inline_keyboard:t}}async function Kr(e,t,n={}){let{cfg:r,account:o,api:s}=X(n),l=D(e),u=await q({cfg:r,api:s,lookupTarget:l.chatId,persistTarget:e,verbose:n.verbose}),d=n.mediaUrl?.trim(),f=n.maxBytes??(typeof o.config.mediaMaxMb==`number`?o.config.mediaMaxMb:100)*1024*1024,p=$(n.buttons),m=Vr({targetMessageThreadId:l.messageThreadId,messageThreadId:n.messageThreadId,chatType:l.chatType,replyToMessageId:n.replyToMessageId,quoteText:n.quoteText}),g=Object.keys(m).length>0,_=Wr({requestWithDiag:Gr({cfg:r,account:o,retry:n.retry,verbose:n.verbose}),chatId:u,input:e}),v=n.textMode??`markdown`,y=A({cfg:r,channel:`telegram`,accountId:o.accountId}),b=e=>On(e,{textMode:v,tableMode:y}),x=o.config.linkPreview??!0?void 0:{is_disabled:!0},S=async(e,t)=>await Q(t,`message`,n.verbose,async(t,r)=>{let i=t?{...t}:{};x&&(i.link_preview_options=x);let a={...i,...n.silent===!0?{disable_notification:!0}:{}},o=Object.keys(a).length>0,c=t=>_(()=>o?s.sendMessage(u,e.plainText,a):s.sendMessage(u,e.plainText),t);if(!e.htmlText)return await c(r);let l=e.htmlText,d={parse_mode:`HTML`,...a};return await Hr({label:r,verbose:n.verbose,requestHtml:e=>_(()=>s.sendMessage(u,l,d),e),requestPlain:c})}),C=e=>g||e&&p?{...m,...e&&p?{reply_markup:p}:{}}:void 0,w=async(e,t)=>{let n=``,r=u;for(let i=0;i<e.length;i+=1){let a=e[i];if(!a)continue;let o=await S(a,C(i===e.length-1)),s=G(o,t);V(u,s),n=String(s),r=String(o?.chat?.id??u)}return{messageId:n,chatId:r}},T=(e,t)=>{let r=n.plainText??e,i;try{i=In(e,4e3)}catch(e){return c(`telegram ${t} failed HTML chunk planning, retrying as plain text: ${h(e)}`),Sr(r,4e3).map(e=>({plainText:e}))}let a=Sr(r,4e3);if(a.length>i.length)return c(`telegram ${t} plain-text fallback needs more chunks than HTML; sending plain text`),a.map(e=>({plainText:e}));let o=Cr(r,i.length,4e3);return i.map((e,t)=>({htmlText:e,plainText:o[t]??e}))},ee=async(e,t)=>await w(T(e,t),t);if(d){let e=await ie(d,se({maxBytes:f,mediaLocalRoots:n.mediaLocalRoots})),r=a(e.contentType??void 0),l=i({contentType:e.contentType,fileName:e.fileName}),h=r===`video`&&n.asVideoNote===!0,y=e.fileName??(l?`animation.gif`:Qr(r??`document`))??`file`,x=new _e(e.buffer,y),S,C;if(h)S=void 0,C=t.trim()?t:void 0;else{let e=pn(t);S=e.caption,C=e.followUpText}let T=S?b(S):void 0,E=!!C,te={...g?m:{},...!E&&p?{reply_markup:p}:{}},ne={...T?{caption:T,parse_mode:`HTML`}:{},...te,...n.silent===!0?{disable_notification:!0}:{}},re=async(e,t)=>await Q(ne,e,n.verbose,async(e,n)=>_(()=>t(e),n)),D=(()=>{if(l)return{label:`animation`,sender:e=>s.sendAnimation(u,x,e)};if(r===`image`)return{label:`photo`,sender:e=>s.sendPhoto(u,x,e)};if(r===`video`)return h?{label:`video_note`,sender:e=>s.sendVideoNote(u,x,e)}:{label:`video`,sender:e=>s.sendVideo(u,x,e)};if(r===`audio`){let{useVoice:t}=xr({wantsVoice:n.asVoice===!0,contentType:e.contentType,fileName:y,logFallback:c});return t?{label:`voice`,sender:e=>s.sendVoice(u,x,e)}:{label:`audio`,sender:e=>s.sendAudio(u,x,e)}}return{label:`document`,sender:e=>s.sendDocument(u,x,e)}})(),O=await re(D.label,D.sender),k=G(O,`media send`),A=String(O?.chat?.id??u);return V(u,k),j({channel:`telegram`,accountId:o.accountId,direction:`outbound`}),E&&C?v===`html`?{messageId:(await ee(C,`text follow-up send`)).messageId,chatId:A}:{messageId:(await w([{plainText:C,htmlText:b(C)}],`text follow-up send`)).messageId,chatId:A}:{messageId:String(k),chatId:A}}if(!t||!t.trim())throw Error(`Message must be non-empty for Telegram sends`);let E;return E=v===`html`?await ee(t,`text send`):await w([{plainText:n.plainText??t,htmlText:b(t)}],`text send`),j({channel:`telegram`,accountId:o.accountId,direction:`outbound`}),E}async function qr(e,t={}){let{cfg:n,account:r,api:i}=X(t),a=D(e),o=await q({cfg:n,api:i,lookupTarget:a.chatId,persistTarget:e,verbose:t.verbose}),s=Z({cfg:n,account:r,retry:t.retry,verbose:t.verbose,shouldRetry:e=>B(e,{context:`send`})}),c=Vt(a.messageThreadId??t.messageThreadId);return await s(()=>i.sendChatAction(o,`typing`,c),`typing`),{ok:!0}}async function Jr(e,t,n,r={}){let{cfg:i,account:a,api:o}=X(r),s=String(e),c=await q({cfg:i,api:o,lookupTarget:s,persistTarget:s,verbose:r.verbose}),l=J(t),u=Z({cfg:i,account:a,retry:r.retry,verbose:r.verbose,shouldRetry:e=>B(e,{context:`send`})}),d=r.remove===!0,f=n.trim(),p=d||!f?[]:[{type:`emoji`,emoji:f}];if(typeof o.setMessageReaction!=`function`)throw Error(`Telegram reactions are unavailable in this bot API.`);try{await u(()=>o.setMessageReaction(c,l,p),`reaction`)}catch(e){let t=e instanceof Error?e.message:String(e);if(/REACTION_INVALID/i.test(t))return{ok:!1,warning:`Reaction unavailable: ${f}`};throw e}return{ok:!0}}async function Yr(e,t,n={}){let{cfg:r,account:i,api:a}=X(n),o=String(e),s=await q({cfg:r,api:a,lookupTarget:o,persistTarget:o,verbose:n.verbose}),l=J(t);return await Z({cfg:r,account:i,retry:n.retry,verbose:n.verbose,shouldRetry:e=>B(e,{context:`send`})})(()=>a.deleteMessage(s,l),`deleteMessage`),c(`[telegram] Deleted message ${l} from chat ${s}`),{ok:!0}}async function Xr(e,t,n,r={}){let{cfg:i,account:a,api:o}=X({...r,cfg:r.cfg}),s=String(e),l=await q({cfg:i,api:o,lookupTarget:s,persistTarget:s,verbose:r.verbose}),u=J(t),d=Z({cfg:i,account:a,retry:r.retry,verbose:r.verbose}),f=$(n)??{inline_keyboard:[]};try{await d(()=>o.editMessageReplyMarkup(l,u,{reply_markup:f}),`editMessageReplyMarkup`,{shouldLog:e=>!Y(e)})}catch(e){if(!Y(e))throw e}return c(`[telegram] Edited reply markup for message ${u} in chat ${l}`),{ok:!0,messageId:String(u),chatId:l}}async function Zr(e,t,n,r={}){let{cfg:i,account:a,api:o}=X({...r,cfg:r.cfg}),s=String(e),l=await q({cfg:i,api:o,lookupTarget:s,persistTarget:s,verbose:r.verbose}),u=J(t),d=Z({cfg:i,account:a,retry:r.retry,verbose:r.verbose,shouldRetry:e=>B(e,{allowMessageMatch:!0})||er(e)}),f=(e,t,n)=>d(e,t,n?{shouldLog:n}:void 0),p=On(n,{textMode:r.textMode??`markdown`,tableMode:A({cfg:i,channel:`telegram`,accountId:a.accountId})}),m=r.buttons!==void 0,h=m?$(r.buttons):void 0,g=m?h??{inline_keyboard:[]}:void 0,_={parse_mode:`HTML`};r.linkPreview===!1&&(_.link_preview_options={is_disabled:!0}),g!==void 0&&(_.reply_markup=g);let v={};r.linkPreview===!1&&(v.link_preview_options={is_disabled:!0}),g!==void 0&&(v.reply_markup=g);try{await Hr({label:`editMessage`,verbose:r.verbose,requestHtml:e=>f(()=>o.editMessageText(l,u,p,_),e,e=>!Y(e)),requestPlain:e=>f(()=>Object.keys(v).length>0?o.editMessageText(l,u,n,v):o.editMessageText(l,u,n),e,e=>!Y(e))})}catch(e){if(!Y(e))throw e}return c(`[telegram] Edited message ${u} in chat ${l}`),{ok:!0,messageId:String(u),chatId:l}}function Qr(e){switch(e){case`image`:return`image.jpg`;case`video`:return`video.mp4`;case`audio`:return`audio.ogg`;default:return`file.bin`}}async function $r(e,t,n={}){if(!t?.trim())throw Error(`Telegram sticker file_id is required`);let{cfg:r,account:i,api:a}=X(n),o=D(e),s=await q({cfg:r,api:a,lookupTarget:o.chatId,persistTarget:e,verbose:n.verbose}),c=Vr({targetMessageThreadId:o.messageThreadId,messageThreadId:n.messageThreadId,chatType:o.chatType,replyToMessageId:n.replyToMessageId}),l=Object.keys(c).length>0,u=Wr({requestWithDiag:Z({cfg:r,account:i,retry:n.retry,verbose:n.verbose,useApiErrorLogging:!1}),chatId:s,input:e}),d=await Q(l?c:void 0,`sticker`,n.verbose,async(e,n)=>u(()=>a.sendSticker(s,t.trim(),e),n)),f=G(d,`sticker send`),p=String(d?.chat?.id??s);return V(s,f),j({channel:`telegram`,accountId:i.accountId,direction:`outbound`}),{messageId:String(f),chatId:p}}async function ei(e,t,n={}){let{cfg:r,account:i,api:a}=X(n),o=D(e),s=await q({cfg:r,api:a,lookupTarget:o.chatId,persistTarget:e,verbose:n.verbose}),c=ce(t,{maxOptions:10}),l=Vr({targetMessageThreadId:o.messageThreadId,messageThreadId:n.messageThreadId,chatType:o.chatType,replyToMessageId:n.replyToMessageId}),u=c.options,d=Wr({requestWithDiag:Gr({cfg:r,account:i,retry:n.retry,verbose:n.verbose}),chatId:s,input:e}),f=c.durationSeconds;if(f===void 0&&c.durationHours!==void 0)throw Error(`Telegram poll durationHours is not supported. Use durationSeconds (5-600) instead.`);if(f!==void 0&&(f<5||f>600))throw Error(`Telegram poll durationSeconds must be between 5 and 600`);let p=await Q({allows_multiple_answers:c.maxSelections>1,is_anonymous:n.isAnonymous??!0,...f===void 0?{}:{open_period:f},...Object.keys(l).length>0?l:{},...n.silent===!0?{disable_notification:!0}:{}},`poll`,n.verbose,async(e,t)=>d(()=>a.sendPoll(s,c.question,u,e),t)),m=G(p,`poll send`),h=String(p?.chat?.id??s),g=p?.poll?.id;return V(s,m),j({channel:`telegram`,accountId:i.accountId,direction:`outbound`}),{messageId:String(m),chatId:h,pollId:g}}async function ti(e,t,n={}){if(!t?.trim())throw Error(`Forum topic name is required`);let r=t.trim();if(r.length>128)throw Error(`Forum topic name must be 128 characters or fewer`);let{cfg:i,account:a,api:o}=X(n),s=await q({cfg:i,api:o,lookupTarget:D(e).chatId,persistTarget:e,verbose:n.verbose}),c=Gr({cfg:i,account:a,retry:n.retry,verbose:n.verbose}),l={};n.iconColor!=null&&(l.icon_color=n.iconColor),n.iconCustomEmojiId?.trim()&&(l.icon_custom_emoji_id=n.iconCustomEmojiId.trim());let u=Object.keys(l).length>0,d=await c(()=>o.createForumTopic(s,r,u?l:void 0),`createForumTopic`),f=d.message_thread_id;return j({channel:`telegram`,accountId:a.accountId,direction:`outbound`}),{topicId:f,name:d.name??r,chatId:s}}export{_t as $,Vt as A,Jt as B,Xt as C,Ut as D,Gt as E,en as F,Nt as G,Ht as H,dn as I,kt as J,Pt as K,Wt as L,tn as M,fn as N,Kt as O,Zt as P,gt as Q,Rt as R,pn as S,qt as T,zt as U,nn as V,Ft as W,ht as X,xt as Y,ft as Z,tr as _,Zr as a,Ee as at,On as b,ei as c,xe as ct,xr as d,ke as et,lr as f,Qn as g,B as h,Xr as i,Te as it,rn as j,Bt as k,$r as l,Se as lt,ar as m,ti as n,Oe as nt,Jr as o,Ce as ot,cr as p,It as q,Yr as r,De as rt,Kr as s,we as st,$ as t,Ae as tt,qr as u,Hn as v,Yt as w,Dn as x,yn as y,Lt as z};