@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
@@ -1,3 +1,3 @@
1
1
  require(`./paths-BvlJvmRS.cjs`);const e=require(`./config-DT_csBcZ.cjs`),t=require(`./logger-Bm93ZKOk.cjs`),n=require(`./fetch-guard-u2Dt6P9i.cjs`),r=require(`./ir-BxKSHYao.cjs`),i=require(`./render-CzHaQB0d.cjs`),a=require(`./tokens-Dq2wDF3_.cjs`);let o=require(`@slack/web-api`);function s(e){try{return JSON.parse(e)}catch{throw Error(`blocks must be valid JSON`)}}function c(e){if(!Array.isArray(e))throw Error(`blocks must be an array`);if(e.length===0)throw Error(`blocks must contain at least one block`);if(e.length>50)throw Error(`blocks cannot exceed 50 items`);for(let t of e){if(!t||typeof t!=`object`||Array.isArray(t))throw Error(`each block must be an object`);let e=t.type;if(typeof e!=`string`||e.trim().length===0)throw Error(`each block must include a non-empty string type`)}}function l(e){return c(e),e}function u(e){if(e!=null)return l(typeof e==`string`?s(e):e)}const d={retries:2,factor:2,minTimeout:500,maxTimeout:3e3,randomize:!0};function f(e={}){return{...e,retryConfig:e.retryConfig??d}}function p(e,t={}){return new o.WebClient(e,f(t))}function m(e){if(typeof e!=`string`)return;let t=e.replace(/\s+/g,` `).trim();return t.length>0?t:void 0}function h(e){return m(e.text?.text)}function g(e){return m(e.text?.text)}function _(e){return m(e.alt_text)??m(e.title?.text)}function v(e){return m(e.title?.text)??m(e.alt_text)}function y(e){if(!Array.isArray(e.elements))return;let t=e.elements.map(e=>m(e.text)).filter(e=>!!e);return t.length>0?t.join(` `):void 0}function b(e){for(let t of e){let e=t;switch(e.type){case`header`:{let t=g(e);if(t)return t;break}case`section`:{let t=h(e);if(t)return t;break}case`image`:return _(e)||`Shared an image`;case`video`:return v(e)||`Shared a video`;case`file`:return`Shared a file`;case`context`:{let t=y(e);if(t)return t;break}default:break}}return`Shared a Block Kit message`}function x(e){return e.replace(/&/g,`&amp;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`)}const S=/<[^>\n]+>/g;function C(e){if(!e.startsWith(`<`)||!e.endsWith(`>`))return!1;let t=e.slice(1,-1);return t.startsWith(`@`)||t.startsWith(`#`)||t.startsWith(`!`)||t.startsWith(`mailto:`)||t.startsWith(`tel:`)||t.startsWith(`http://`)||t.startsWith(`https://`)||t.startsWith(`slack://`)}function w(e){if(!e)return``;if(!e.includes(`&`)&&!e.includes(`<`)&&!e.includes(`>`))return e;S.lastIndex=0;let t=[],n=0;for(let r=S.exec(e);r;r=S.exec(e)){let i=r.index??0;t.push(x(e.slice(n,i)));let a=r[0]??``;t.push(C(a)?a:x(a)),n=i+a.length}return t.push(x(e.slice(n))),t.join(``)}function T(e){return e?!e.includes(`&`)&&!e.includes(`<`)&&!e.includes(`>`)?e:e.split(`
2
2
  `).map(e=>e.startsWith(`> `)?`> ${w(e.slice(2))}`:w(e)).join(`
3
- `):``}function E(e,t){let n=e.href.trim();if(!n)return null;let r=t.slice(e.start,e.end).trim(),i=n.startsWith(`mailto:`)?n.slice(7):n;if(!(r.length>0&&r!==n&&r!==i))return null;let a=x(n);return{start:e.start,end:e.end,open:`<${a}|`,close:`>`}}function D(){return{styleMarkers:{bold:{open:`*`,close:`*`},italic:{open:`_`,close:`_`},strikethrough:{open:`~`,close:`~`},code:{open:"`",close:"`"},code_block:{open:"```\n",close:"```"}},escapeText:T,buildLink:E}}function O(e,t={}){return i.t(r.n(e??``,{linkify:!1,autolink:!1,headingStyle:`bold`,blockquotePrefix:`> `,tableMode:t.tableMode}),D())}function k(e){return O(e??``)}function A(e,t,n={}){let a=r.t(r.n(e??``,{linkify:!1,autolink:!1,headingStyle:`bold`,blockquotePrefix:`> `,tableMode:n.tableMode}),t),o=D();return a.map(e=>i.t(e,o))}const j={allowedHostnames:[`*.slack.com`,`*.slack-edge.com`,`*.slack-files.com`],allowRfc2544BenchmarkRange:!0};function M(e){return!!(e?.username||e?.iconUrl||e?.iconEmoji)}function N(e){if(!(e instanceof Error))return!1;let t=e;return t.data?.error?.toLowerCase()===`missing_scope`?(t.data?.needed?.toLowerCase())?.includes(`chat:write.customize`)?!0:[...t.data?.response_metadata?.scopes??[],...t.data?.response_metadata?.acceptedScopes??[]].map(e=>e.toLowerCase()).includes(`chat:write.customize`):!1}async function P(e){let n={channel:e.channelId,text:e.text,thread_ts:e.threadTs,...e.blocks?.length?{blocks:e.blocks}:{}};try{return e.identity?.iconUrl?await e.client.chat.postMessage({...n,...e.identity.username?{username:e.identity.username}:{},icon_url:e.identity.iconUrl}):e.identity?.iconEmoji?await e.client.chat.postMessage({...n,...e.identity.username?{username:e.identity.username}:{},icon_emoji:e.identity.iconEmoji}):await e.client.chat.postMessage({...n,...e.identity?.username?{username:e.identity.username}:{}})}catch(r){if(!M(e.identity)||!N(r))throw r;return t.R(`slack send: missing chat:write.customize, retrying without custom identity`),e.client.chat.postMessage(n)}}function F(n){let r=e.Ca(n.explicit);if(r)return r;let i=e.Ca(n.fallbackToken);if(!i)throw t.R(`slack send: missing bot token for account=${n.accountId} explicit=${!!n.explicit} source=${n.fallbackSource??`unknown`}`),Error(`Slack bot token missing for account "${n.accountId}" (set channels.slack.accounts.${n.accountId}.botToken or SLACK_BOT_TOKEN for default).`);return i}function I(t){let n=e.Oi(t);if(!n)throw Error(`Recipient is required for Slack sends`);return{kind:n.kind,id:n.id}}async function L(e,t){if(!(t.kind===`user`||/^U[A-Z0-9]+$/i.test(t.id)))return{channelId:t.id};let n=(await e.conversations.open({users:t.id})).channel?.id;if(!n)throw Error(`Failed to open Slack DM channel`);return{channelId:n,isDm:!0}}async function R(e){let{buffer:t,contentType:i,fileName:a}=await r.v(e.mediaUrl,{maxBytes:e.maxBytes,localRoots:e.mediaLocalRoots}),o=await e.client.files.getUploadURLExternal({filename:a??`upload`,length:t.length});if(!o.ok||!o.upload_url||!o.file_id)throw Error(`Failed to get upload URL: ${o.error??`unknown error`}`);let s=new Uint8Array(t),{response:c,release:l}=await n.t(n.r({url:o.upload_url,init:{method:`POST`,...i?{headers:{"Content-Type":i}}:{},body:s},policy:j,auditContext:`slack-upload-file`}));try{if(!c.ok)throw Error(`Failed to upload file: HTTP ${c.status}`)}finally{await l()}let u=await e.client.files.completeUploadExternal({files:[{id:o.file_id,title:a??`upload`}],channel_id:e.channelId,...e.caption?{initial_comment:e.caption}:{},...e.threadTs?{thread_ts:e.threadTs}:{}});if(!u.ok)throw Error(`Failed to complete upload: ${u.error??`unknown error`}`);return o.file_id}async function z(n,i,o={}){let s=i?.trim()??``;if(a.i(s)&&!o.mediaUrl&&!o.blocks)return t.R(`slack send: suppressed NO_REPLY token before API call`),{messageId:`suppressed`,channelId:``};let c=o.blocks==null?void 0:l(o.blocks);if(!s&&!o.mediaUrl&&!c)throw Error(`Slack send requires text, blocks, or media`);let u=o.cfg??e.r(),d=e.ba({cfg:u,accountId:o.accountId}),f=F({explicit:o.token,accountId:d.accountId,fallbackToken:d.botToken,fallbackSource:d.botTokenSource}),m=o.client??p(f),{channelId:h}=await L(m,I(n));if(c){if(o.mediaUrl)throw Error(`Slack send does not support blocks with mediaUrl`);return{messageId:(await P({client:m,channelId:h,text:s||b(c),threadTs:o.threadTs,identity:o.identity,blocks:c})).ts??`unknown`,channelId:h}}let g=r.f(u,`slack`,d.accountId),_=Math.min(g,4e3),v=r.i({cfg:u,channel:`slack`,accountId:d.accountId}),y=r.d(u,`slack`,d.accountId),x=(y===`newline`?r.c(s,_,y):[s]).flatMap(e=>A(e,_,{tableMode:v}));!x.length&&s&&x.push(s);let S=typeof d.config.mediaMaxMb==`number`?d.config.mediaMaxMb*1024*1024:void 0,C=``;if(o.mediaUrl){let[e,...t]=x;C=await R({client:m,channelId:h,mediaUrl:o.mediaUrl,mediaLocalRoots:o.mediaLocalRoots,caption:e,threadTs:o.threadTs,maxBytes:S});for(let e of t)C=(await P({client:m,channelId:h,text:e,threadTs:o.threadTs,identity:o.identity})).ts??C}else for(let e of x.length?x:[``])C=(await P({client:m,channelId:h,text:e,threadTs:o.threadTs,identity:o.identity})).ts??C;return{messageId:C||`unknown`,channelId:h}}Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return p}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return l}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return b}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return A}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return f}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return k}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return u}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return z}});
3
+ `):``}function E(e,t){let n=e.href.trim();if(!n)return null;let r=t.slice(e.start,e.end).trim(),i=n.startsWith(`mailto:`)?n.slice(7):n;if(!(r.length>0&&r!==n&&r!==i))return null;let a=x(n);return{start:e.start,end:e.end,open:`<${a}|`,close:`>`}}function D(){return{styleMarkers:{bold:{open:`*`,close:`*`},italic:{open:`_`,close:`_`},strikethrough:{open:`~`,close:`~`},code:{open:"`",close:"`"},code_block:{open:"```\n",close:"```"}},escapeText:T,buildLink:E}}function O(e,t={}){return i.t(r.n(e??``,{linkify:!1,autolink:!1,headingStyle:`bold`,blockquotePrefix:`> `,tableMode:t.tableMode}),D())}function k(e){return O(e??``)}function A(e,t,n={}){let a=r.t(r.n(e??``,{linkify:!1,autolink:!1,headingStyle:`bold`,blockquotePrefix:`> `,tableMode:n.tableMode}),t),o=D();return a.map(e=>i.t(e,o))}const j={allowedHostnames:[`*.slack.com`,`*.slack-edge.com`,`*.slack-files.com`],allowRfc2544BenchmarkRange:!0};function M(e){return!!(e?.username||e?.iconUrl||e?.iconEmoji)}function N(e){if(!(e instanceof Error))return!1;let t=e;return t.data?.error?.toLowerCase()===`missing_scope`?(t.data?.needed?.toLowerCase())?.includes(`chat:write.customize`)?!0:[...t.data?.response_metadata?.scopes??[],...t.data?.response_metadata?.acceptedScopes??[]].map(e=>e.toLowerCase()).includes(`chat:write.customize`):!1}async function P(e){let n={channel:e.channelId,text:e.text,thread_ts:e.threadTs,...e.blocks?.length?{blocks:e.blocks}:{}};try{return e.identity?.iconUrl?await e.client.chat.postMessage({...n,...e.identity.username?{username:e.identity.username}:{},icon_url:e.identity.iconUrl}):e.identity?.iconEmoji?await e.client.chat.postMessage({...n,...e.identity.username?{username:e.identity.username}:{},icon_emoji:e.identity.iconEmoji}):await e.client.chat.postMessage({...n,...e.identity?.username?{username:e.identity.username}:{}})}catch(r){if(!M(e.identity)||!N(r))throw r;return t.R(`slack send: missing chat:write.customize, retrying without custom identity`),e.client.chat.postMessage(n)}}function F(n){let r=e.Ca(n.explicit);if(r)return r;let i=e.Ca(n.fallbackToken);if(!i)throw t.R(`slack send: missing bot token for account=${n.accountId} explicit=${!!n.explicit} source=${n.fallbackSource??`unknown`}`),Error(`Slack bot token missing for account "${n.accountId}" (set channels.slack.accounts.${n.accountId}.botToken or SLACK_BOT_TOKEN for default).`);return i}function I(t){let n=e.Oi(t);if(!n)throw Error(`Recipient is required for Slack sends`);return{kind:n.kind,id:n.id}}async function L(e,t){if(!(t.kind===`user`||/^U[A-Z0-9]+$/i.test(t.id)))return{channelId:t.id};let n=(await e.conversations.open({users:t.id})).channel?.id;if(!n)throw Error(`Failed to open Slack DM channel`);return{channelId:n,isDm:!0}}async function R(e){let{buffer:t,contentType:i,fileName:a}=await r.v(e.mediaUrl,{maxBytes:e.maxBytes,localRoots:e.mediaLocalRoots}),o=await e.client.files.getUploadURLExternal({filename:a??`upload`,length:t.length});if(!o.ok||!o.upload_url||!o.file_id)throw Error(`Failed to get upload URL: ${o.error??`unknown error`}`);let s=new Uint8Array(t),{response:c,release:l}=await n.t(n.r({url:o.upload_url,init:{method:`POST`,...i?{headers:{"Content-Type":i}}:{},body:s},policy:j,auditContext:`slack-upload-file`}));try{if(!c.ok)throw Error(`Failed to upload file: HTTP ${c.status}`)}finally{await l()}let u=await e.client.files.completeUploadExternal({files:[{id:o.file_id,title:a??`upload`}],channel_id:e.channelId,...e.caption?{initial_comment:e.caption}:{},...e.threadTs?{thread_ts:e.threadTs}:{}});if(!u.ok)throw Error(`Failed to complete upload: ${u.error??`unknown error`}`);return o.file_id}async function z(n,i,o={}){let s=i?.trim()??``;if(a.i(s)&&!o.mediaUrl&&!o.blocks)return t.R(`slack send: suppressed NO_REPLY token before API call`),{messageId:`suppressed`,channelId:``};let c=o.blocks==null?void 0:l(o.blocks);if(!s&&!o.mediaUrl&&!c)throw Error(`Slack send requires text, blocks, or media`);let u=o.cfg??e.r(),d=e.ba({cfg:u,accountId:o.accountId}),f=F({explicit:o.token,accountId:d.accountId,fallbackToken:d.botToken,fallbackSource:d.botTokenSource}),m=o.client??p(f),{channelId:h}=await L(m,I(n));if(c){if(o.mediaUrl)throw Error(`Slack send does not support blocks with mediaUrl`);return{messageId:(await P({client:m,channelId:h,text:s||b(c),threadTs:o.threadTs,identity:o.identity,blocks:c})).ts??`unknown`,channelId:h}}let g=r.f(u,`slack`,d.accountId),_=Math.min(g,4e3),v=r.i({cfg:u,channel:`slack`,accountId:d.accountId}),y=r.d(u,`slack`,d.accountId),x=(y===`newline`?r.c(s,_,y):[s]).flatMap(e=>A(e,_,{tableMode:v}));!x.length&&s&&x.push(s);let S=typeof d.config.mediaMaxMb==`number`?d.config.mediaMaxMb*1024*1024:void 0,C=``;if(o.mediaUrl){let[e,...t]=x;C=await R({client:m,channelId:h,mediaUrl:o.mediaUrl,mediaLocalRoots:o.mediaLocalRoots,caption:e,threadTs:o.threadTs,maxBytes:S});for(let e of t)C=(await P({client:m,channelId:h,text:e,threadTs:o.threadTs,identity:o.identity})).ts??C}else for(let e of x.length?x:[``])C=(await P({client:m,channelId:h,text:e,threadTs:o.threadTs,identity:o.identity})).ts??C;return{messageId:C||`unknown`,channelId:h}}Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return p}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return l}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return b}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return A}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return f}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return k}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return u}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return z}});
@@ -1,3 +1,3 @@
1
1
  import{Da as e,In as t,zn as n}from"./model-auth-D7YupJDS.js";import{R as r}from"./logger-C210xuWx.js";import{i,n as a,r as o,t as s}from"./targets-uycXZ8vQ.js";import{r as c,t as l}from"./fetch-guard-qfU6iTvp.js";import{i as u}from"./tokens-B20KNIDD.js";import{a as d,d as f,h as p,m,n as h,s as g,t as _}from"./ir-DJ08DSkk.js";import{t as v}from"./render-DhTJXP1U.js";import{WebClient as y}from"@slack/web-api";function b(e,t={}){let n=e.trim();return n?o({raw:n,mentionPattern:/^<@([A-Z0-9]+)>$/i,prefixes:[{prefix:`user:`,kind:`user`},{prefix:`channel:`,kind:`channel`},{prefix:`slack:`,kind:`user`}],atUserPattern:/^[A-Z0-9]+$/i,atUserErrorMessage:`Slack DMs require a user id (use user:<id> or <@id>)`})||(n.startsWith(`#`)?s(`channel`,a({candidate:n.slice(1).trim(),pattern:/^[A-Z0-9]+$/i,errorMessage:`Slack channels require a channel id (use channel:<id>)`}),n):t.defaultKind?s(t.defaultKind,n,n):s(`channel`,n,n)):void 0}function x(e){return i({platform:`Slack`,target:b(e,{defaultKind:`channel`}),kind:`channel`})}const S={retries:2,factor:2,minTimeout:500,maxTimeout:3e3,randomize:!0};function C(e={}){return{...e,retryConfig:e.retryConfig??S}}function w(e,t={}){return new y(e,C(t))}function T(e){if(typeof e!=`string`)return;let t=e.replace(/\s+/g,` `).trim();return t.length>0?t:void 0}function E(e){return T(e.text?.text)}function D(e){return T(e.text?.text)}function O(e){return T(e.alt_text)??T(e.title?.text)}function k(e){return T(e.title?.text)??T(e.alt_text)}function A(e){if(!Array.isArray(e.elements))return;let t=e.elements.map(e=>T(e.text)).filter(e=>!!e);return t.length>0?t.join(` `):void 0}function j(e){for(let t of e){let e=t;switch(e.type){case`header`:{let t=D(e);if(t)return t;break}case`section`:{let t=E(e);if(t)return t;break}case`image`:return O(e)||`Shared an image`;case`video`:return k(e)||`Shared a video`;case`file`:return`Shared a file`;case`context`:{let t=A(e);if(t)return t;break}default:break}}return`Shared a Block Kit message`}function M(e){try{return JSON.parse(e)}catch{throw Error(`blocks must be valid JSON`)}}function N(e){if(!Array.isArray(e))throw Error(`blocks must be an array`);if(e.length===0)throw Error(`blocks must contain at least one block`);if(e.length>50)throw Error(`blocks cannot exceed 50 items`);for(let t of e){if(!t||typeof t!=`object`||Array.isArray(t))throw Error(`each block must be an object`);let e=t.type;if(typeof e!=`string`||e.trim().length===0)throw Error(`each block must include a non-empty string type`)}}function P(e){return N(e),e}function F(e){if(e!=null)return P(typeof e==`string`?M(e):e)}function I(e){return e.replace(/&/g,`&amp;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`)}const L=/<[^>\n]+>/g;function R(e){if(!e.startsWith(`<`)||!e.endsWith(`>`))return!1;let t=e.slice(1,-1);return t.startsWith(`@`)||t.startsWith(`#`)||t.startsWith(`!`)||t.startsWith(`mailto:`)||t.startsWith(`tel:`)||t.startsWith(`http://`)||t.startsWith(`https://`)||t.startsWith(`slack://`)}function z(e){if(!e)return``;if(!e.includes(`&`)&&!e.includes(`<`)&&!e.includes(`>`))return e;L.lastIndex=0;let t=[],n=0;for(let r=L.exec(e);r;r=L.exec(e)){let i=r.index??0;t.push(I(e.slice(n,i)));let a=r[0]??``;t.push(R(a)?a:I(a)),n=i+a.length}return t.push(I(e.slice(n))),t.join(``)}function B(e){return e?!e.includes(`&`)&&!e.includes(`<`)&&!e.includes(`>`)?e:e.split(`
2
2
  `).map(e=>e.startsWith(`> `)?`> ${z(e.slice(2))}`:z(e)).join(`
3
- `):``}function V(e,t){let n=e.href.trim();if(!n)return null;let r=t.slice(e.start,e.end).trim(),i=n.startsWith(`mailto:`)?n.slice(7):n;if(!(r.length>0&&r!==n&&r!==i))return null;let a=I(n);return{start:e.start,end:e.end,open:`<${a}|`,close:`>`}}function H(){return{styleMarkers:{bold:{open:`*`,close:`*`},italic:{open:`_`,close:`_`},strikethrough:{open:`~`,close:`~`},code:{open:"`",close:"`"},code_block:{open:"```\n",close:"```"}},escapeText:B,buildLink:V}}function U(e,t={}){return v(h(e??``,{linkify:!1,autolink:!1,headingStyle:`bold`,blockquotePrefix:`> `,tableMode:t.tableMode}),H())}function W(e){return U(e??``)}function G(e,t,n={}){let r=_(h(e??``,{linkify:!1,autolink:!1,headingStyle:`bold`,blockquotePrefix:`> `,tableMode:n.tableMode}),t),i=H();return r.map(e=>v(e,i))}const K={allowedHostnames:[`*.slack.com`,`*.slack-edge.com`,`*.slack-files.com`],allowRfc2544BenchmarkRange:!0};function q(e){return!!(e?.username||e?.iconUrl||e?.iconEmoji)}function J(e){if(!(e instanceof Error))return!1;let t=e;return t.data?.error?.toLowerCase()===`missing_scope`?(t.data?.needed?.toLowerCase())?.includes(`chat:write.customize`)?!0:[...t.data?.response_metadata?.scopes??[],...t.data?.response_metadata?.acceptedScopes??[]].map(e=>e.toLowerCase()).includes(`chat:write.customize`):!1}async function Y(e){let t={channel:e.channelId,text:e.text,thread_ts:e.threadTs,...e.blocks?.length?{blocks:e.blocks}:{}};try{return e.identity?.iconUrl?await e.client.chat.postMessage({...t,...e.identity.username?{username:e.identity.username}:{},icon_url:e.identity.iconUrl}):e.identity?.iconEmoji?await e.client.chat.postMessage({...t,...e.identity.username?{username:e.identity.username}:{},icon_emoji:e.identity.iconEmoji}):await e.client.chat.postMessage({...t,...e.identity?.username?{username:e.identity.username}:{}})}catch(n){if(!q(e.identity)||!J(n))throw n;return r(`slack send: missing chat:write.customize, retrying without custom identity`),e.client.chat.postMessage(t)}}function X(e){let t=n(e.explicit);if(t)return t;let i=n(e.fallbackToken);if(!i)throw r(`slack send: missing bot token for account=${e.accountId} explicit=${!!e.explicit} source=${e.fallbackSource??`unknown`}`),Error(`Slack bot token missing for account "${e.accountId}" (set channels.slack.accounts.${e.accountId}.botToken or SLACK_BOT_TOKEN for default).`);return i}function Z(e){let t=b(e);if(!t)throw Error(`Recipient is required for Slack sends`);return{kind:t.kind,id:t.id}}async function Q(e,t){if(!(t.kind===`user`||/^U[A-Z0-9]+$/i.test(t.id)))return{channelId:t.id};let n=(await e.conversations.open({users:t.id})).channel?.id;if(!n)throw Error(`Failed to open Slack DM channel`);return{channelId:n,isDm:!0}}async function $(e){let{buffer:t,contentType:n,fileName:r}=await d(e.mediaUrl,{maxBytes:e.maxBytes,localRoots:e.mediaLocalRoots}),i=await e.client.files.getUploadURLExternal({filename:r??`upload`,length:t.length});if(!i.ok||!i.upload_url||!i.file_id)throw Error(`Failed to get upload URL: ${i.error??`unknown error`}`);let a=new Uint8Array(t),{response:o,release:s}=await l(c({url:i.upload_url,init:{method:`POST`,...n?{headers:{"Content-Type":n}}:{},body:a},policy:K,auditContext:`slack-upload-file`}));try{if(!o.ok)throw Error(`Failed to upload file: HTTP ${o.status}`)}finally{await s()}let u=await e.client.files.completeUploadExternal({files:[{id:i.file_id,title:r??`upload`}],channel_id:e.channelId,...e.caption?{initial_comment:e.caption}:{},...e.threadTs?{thread_ts:e.threadTs}:{}});if(!u.ok)throw Error(`Failed to complete upload: ${u.error??`unknown error`}`);return i.file_id}async function ee(n,i,a={}){let o=i?.trim()??``;if(u(o)&&!a.mediaUrl&&!a.blocks)return r(`slack send: suppressed NO_REPLY token before API call`),{messageId:`suppressed`,channelId:``};let s=a.blocks==null?void 0:P(a.blocks);if(!o&&!a.mediaUrl&&!s)throw Error(`Slack send requires text, blocks, or media`);let c=a.cfg??e(),l=t({cfg:c,accountId:a.accountId}),d=X({explicit:a.token,accountId:l.accountId,fallbackToken:l.botToken,fallbackSource:l.botTokenSource}),h=a.client??w(d),{channelId:_}=await Q(h,Z(n));if(s){if(a.mediaUrl)throw Error(`Slack send does not support blocks with mediaUrl`);return{messageId:(await Y({client:h,channelId:_,text:o||j(s),threadTs:a.threadTs,identity:a.identity,blocks:s})).ts??`unknown`,channelId:_}}let v=p(c,`slack`,l.accountId),y=Math.min(v,4e3),b=g({cfg:c,channel:`slack`,accountId:l.accountId}),x=m(c,`slack`,l.accountId),S=(x===`newline`?f(o,y,x):[o]).flatMap(e=>G(e,y,{tableMode:b}));!S.length&&o&&S.push(o);let C=typeof l.config.mediaMaxMb==`number`?l.config.mediaMaxMb*1024*1024:void 0,T=``;if(a.mediaUrl){let[e,...t]=S;T=await $({client:h,channelId:_,mediaUrl:a.mediaUrl,mediaLocalRoots:a.mediaLocalRoots,caption:e,threadTs:a.threadTs,maxBytes:C});for(let e of t)T=(await Y({client:h,channelId:_,text:e,threadTs:a.threadTs,identity:a.identity})).ts??T}else for(let e of S.length?S:[``])T=(await Y({client:h,channelId:_,text:e,threadTs:a.threadTs,identity:a.identity})).ts??T;return{messageId:T||`unknown`,channelId:_}}export{P as a,C as c,F as i,b as l,G as n,j as o,W as r,w as s,ee as t,x as u};
3
+ `):``}function V(e,t){let n=e.href.trim();if(!n)return null;let r=t.slice(e.start,e.end).trim(),i=n.startsWith(`mailto:`)?n.slice(7):n;if(!(r.length>0&&r!==n&&r!==i))return null;let a=I(n);return{start:e.start,end:e.end,open:`<${a}|`,close:`>`}}function H(){return{styleMarkers:{bold:{open:`*`,close:`*`},italic:{open:`_`,close:`_`},strikethrough:{open:`~`,close:`~`},code:{open:"`",close:"`"},code_block:{open:"```\n",close:"```"}},escapeText:B,buildLink:V}}function U(e,t={}){return v(h(e??``,{linkify:!1,autolink:!1,headingStyle:`bold`,blockquotePrefix:`> `,tableMode:t.tableMode}),H())}function W(e){return U(e??``)}function G(e,t,n={}){let r=_(h(e??``,{linkify:!1,autolink:!1,headingStyle:`bold`,blockquotePrefix:`> `,tableMode:n.tableMode}),t),i=H();return r.map(e=>v(e,i))}const K={allowedHostnames:[`*.slack.com`,`*.slack-edge.com`,`*.slack-files.com`],allowRfc2544BenchmarkRange:!0};function q(e){return!!(e?.username||e?.iconUrl||e?.iconEmoji)}function J(e){if(!(e instanceof Error))return!1;let t=e;return t.data?.error?.toLowerCase()===`missing_scope`?(t.data?.needed?.toLowerCase())?.includes(`chat:write.customize`)?!0:[...t.data?.response_metadata?.scopes??[],...t.data?.response_metadata?.acceptedScopes??[]].map(e=>e.toLowerCase()).includes(`chat:write.customize`):!1}async function Y(e){let t={channel:e.channelId,text:e.text,thread_ts:e.threadTs,...e.blocks?.length?{blocks:e.blocks}:{}};try{return e.identity?.iconUrl?await e.client.chat.postMessage({...t,...e.identity.username?{username:e.identity.username}:{},icon_url:e.identity.iconUrl}):e.identity?.iconEmoji?await e.client.chat.postMessage({...t,...e.identity.username?{username:e.identity.username}:{},icon_emoji:e.identity.iconEmoji}):await e.client.chat.postMessage({...t,...e.identity?.username?{username:e.identity.username}:{}})}catch(n){if(!q(e.identity)||!J(n))throw n;return r(`slack send: missing chat:write.customize, retrying without custom identity`),e.client.chat.postMessage(t)}}function X(e){let t=n(e.explicit);if(t)return t;let i=n(e.fallbackToken);if(!i)throw r(`slack send: missing bot token for account=${e.accountId} explicit=${!!e.explicit} source=${e.fallbackSource??`unknown`}`),Error(`Slack bot token missing for account "${e.accountId}" (set channels.slack.accounts.${e.accountId}.botToken or SLACK_BOT_TOKEN for default).`);return i}function Z(e){let t=b(e);if(!t)throw Error(`Recipient is required for Slack sends`);return{kind:t.kind,id:t.id}}async function Q(e,t){if(!(t.kind===`user`||/^U[A-Z0-9]+$/i.test(t.id)))return{channelId:t.id};let n=(await e.conversations.open({users:t.id})).channel?.id;if(!n)throw Error(`Failed to open Slack DM channel`);return{channelId:n,isDm:!0}}async function $(e){let{buffer:t,contentType:n,fileName:r}=await d(e.mediaUrl,{maxBytes:e.maxBytes,localRoots:e.mediaLocalRoots}),i=await e.client.files.getUploadURLExternal({filename:r??`upload`,length:t.length});if(!i.ok||!i.upload_url||!i.file_id)throw Error(`Failed to get upload URL: ${i.error??`unknown error`}`);let a=new Uint8Array(t),{response:o,release:s}=await l(c({url:i.upload_url,init:{method:`POST`,...n?{headers:{"Content-Type":n}}:{},body:a},policy:K,auditContext:`slack-upload-file`}));try{if(!o.ok)throw Error(`Failed to upload file: HTTP ${o.status}`)}finally{await s()}let u=await e.client.files.completeUploadExternal({files:[{id:i.file_id,title:r??`upload`}],channel_id:e.channelId,...e.caption?{initial_comment:e.caption}:{},...e.threadTs?{thread_ts:e.threadTs}:{}});if(!u.ok)throw Error(`Failed to complete upload: ${u.error??`unknown error`}`);return i.file_id}async function ee(n,i,a={}){let o=i?.trim()??``;if(u(o)&&!a.mediaUrl&&!a.blocks)return r(`slack send: suppressed NO_REPLY token before API call`),{messageId:`suppressed`,channelId:``};let s=a.blocks==null?void 0:P(a.blocks);if(!o&&!a.mediaUrl&&!s)throw Error(`Slack send requires text, blocks, or media`);let c=a.cfg??e(),l=t({cfg:c,accountId:a.accountId}),d=X({explicit:a.token,accountId:l.accountId,fallbackToken:l.botToken,fallbackSource:l.botTokenSource}),h=a.client??w(d),{channelId:_}=await Q(h,Z(n));if(s){if(a.mediaUrl)throw Error(`Slack send does not support blocks with mediaUrl`);return{messageId:(await Y({client:h,channelId:_,text:o||j(s),threadTs:a.threadTs,identity:a.identity,blocks:s})).ts??`unknown`,channelId:_}}let v=p(c,`slack`,l.accountId),y=Math.min(v,4e3),b=g({cfg:c,channel:`slack`,accountId:l.accountId}),x=m(c,`slack`,l.accountId),S=(x===`newline`?f(o,y,x):[o]).flatMap(e=>G(e,y,{tableMode:b}));!S.length&&o&&S.push(o);let C=typeof l.config.mediaMaxMb==`number`?l.config.mediaMaxMb*1024*1024:void 0,T=``;if(a.mediaUrl){let[e,...t]=S;T=await $({client:h,channelId:_,mediaUrl:a.mediaUrl,mediaLocalRoots:a.mediaLocalRoots,caption:e,threadTs:a.threadTs,maxBytes:C});for(let e of t)T=(await Y({client:h,channelId:_,text:e,threadTs:a.threadTs,identity:a.identity})).ts??T}else for(let e of S.length?S:[``])T=(await Y({client:h,channelId:_,text:e,threadTs:a.threadTs,identity:a.identity})).ts??T;return{messageId:T||`unknown`,channelId:_}}export{P as a,C as c,F as i,b as l,G as n,j as o,W as r,w as s,ee as t,x as u};
@@ -4,4 +4,4 @@ import{d as e,y as t,zt as n}from"./paths-Do0djuaj.js";import{As as r,Ca as i,fr
4
4
  `),o=[],s=``,c=0,l=null,u=()=>{if(!s)return;let e=Et(s,l);e.trim().length&&o.push(e),s=``,c=0,l&&(s=l.openLine,c=1)};for(let e of a){let t=wt(e),i=l!==null,a=l;t&&(l?l.markerChar===t.markerChar&&t.markerLen>=l.markerLen&&(a=null):a=t);let o=a?Tt(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,_=Dt(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=Et(s,l);e.trim().length&&o.push(e)}return At(e,o)}function kt(e,t){if((t.chunkMode??`length`)!==`newline`)return Ot(e,t);let n=h(e,Math.max(1,Math.floor(t.maxChars??xt)),`newline`),r=[];for(let e of n){let n=Ot(e,t);if(!n.length&&e){r.push(e);continue}r.push(...n)}return r}function At(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 jt(e){let t=a(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 Mt(e,t){return t??new xe(e)}function Nt(e){let t=n(e.accountId),r=s(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 Pt(e,t){let n=e.cfg??t??i(),r=a(e.token,`channels.discord.token`),o=r?Nt({cfg:n,accountId:e.accountId}):c({cfg:n,accountId:e.accountId}),s=r??jt({accountId:o.accountId,fallbackToken:o.token});return{token:s,rest:Mt(s,e.rest),account:o}}function F(e,t){let{token:n,rest:r,account:i}=Pt(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 Pt(e,e.cfg).rest}const Ft=Object.entries(oe).filter(([,e])=>typeof e==`bigint`),It=Ft.reduce((e,[,t])=>e|t,0n),Lt=oe.Administrator;function L(e,t){return t?e|BigInt(t):e}function Rt(e,t){return t?e&~BigInt(t):e}function zt(e){return Ft.filter(([,t])=>(e&t)===t).map(([e])=>e).toSorted()}function Bt(e){return(e&Lt)===Lt}function Vt(e,t){return(e&t)===t}function Ht(e){return e===E.GuildNewsThread||e===E.GuildPublicThread||e===E.GuildPrivateThread}async function Ut(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 Wt(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 Gt(e,t,n,r,i={}){let a=await Wt(e,t,i);return a===null?!1:Bt(a)?!0:r(a,n)}async function Kt(e,t,n,r={}){return await Gt(e,t,n,(e,t)=>t.some(t=>Vt(e,t)),r)}async function qt(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 Ut(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(Bt(d))return{channelId:e,guildId:a,permissions:zt(It),raw:It.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=Rt(f,e.deny??`0`),f=L(f,e.allow??`0`));for(let e of p)c.roles?.includes(e.id)&&(f=Rt(f,e.deny??`0`),f=L(f,e.allow??`0`));for(let e of p)e.id===o&&(f=Rt(f,e.deny??`0`),f=L(f,e.allow??`0`));return{channelId:e,guildId:a,permissions:zt(f),raw:f.toString(),isDm:!1,channelType:i}}var Jt=class extends Error{constructor(e,t){super(e),this.name=`DiscordSendError`,t&&Object.assign(this,t)}toString(){return this.message}};const Yt=/#\d{4}$/,Xt=new Map;function Zt(e){return n(e??`default`)||`default`}function Qt(e){let t=String(e??``).trim();return/^\d+$/.test(t)?t:null}function $t(e){let t=e.trim();return!t||(t.startsWith(`@`)&&(t=t.slice(1).trim()),!t||/\s/.test(t))?null:t.toLowerCase()}function en(e){let t=Zt(e),n=Xt.get(t);if(n)return n;let r=new Map;return Xt.set(t,r),r}function tn(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 nn(e){let t=Qt(e.userId);if(!t)return;let n=en(e.accountId);for(let r of e.handles){if(typeof r!=`string`)continue;let e=$t(r);if(!e)continue;tn(n,e,t);let i=e.replace(Yt,``);i&&i!==e&&tn(n,i,t)}}function rn(e){let t=Xt.get(Zt(e.accountId));if(!t)return;let n=$t(e.handle);if(!n)return;let r=t.get(n);if(r)return r;let i=n.replace(Yt,``);if(!(!i||i===n))return t.get(i)}function an(e){return e?.trim().toLowerCase()??``}function on(e){return e.bot?0:1}function sn(e){let t=a(c({cfg:e.cfg,accountId:e.accountId}).token,`channels.discord.token`);return t?{token:t,query:an(e.query)}:null}async function cn(e){return(await Xe(`/users/@me/guilds`,e)).filter(e=>e.id&&e.name)}async function ln(e){let t=sn(e);if(!t)return[];let{token:n,query:r}=t,i=await cn(n),a=[];for(let t of i){let i=await Xe(`/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 un(e){let t=sn(e);if(!t)return[];let{token:n,query:r}=t;if(!r)return[];let i=await cn(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 Xe(`/guilds/${t.id}/members/search?${i.toString()}`,n);for(let t of s){let n=t.user;if(!n?.id)continue;nn({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:on(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 dn(e){return u({platform:`Discord`,target:R(e,{defaultKind:`channel`}),kind:`channel`})}async function fn(e,t,n={}){let r=e.trim();if(!r)return;let i=hn(r),a=mn(r,n)||i,o=pn(r,n);if(o&&o.kind!==`channel`&&!i)return o;if(!a)return o??R(r,n);try{let e=(await un({...t,query:r,limit:1}))[0];if(e&&e.kind===`user`){let n=e.id.replace(/^user:/,``);return nn({accountId:t.accountId,userId:n,handles:[r,e.name,e.handle]}),f(`user`,n,r)}}catch{}return R(r,n)}function pn(e,t){try{return R(e,t)}catch{return}}function mn(e,t){return/^<@!?(\d+)>$/.test(e)||/^(user:|discord:)/.test(e)||e.startsWith(`@`)?!0:/^\d+$/.test(e)?t.defaultKind===`user`:!1}function hn(e){return!/^(user:|channel:|discord:|@|<@!?)|[\d]+$/.test(e)}function gn(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 r=n??i(),a=c({cfg:r,accountId:t}),o=e.trim(),s={ambiguousMessage:`Ambiguous Discord recipient "${o}". Use "user:${o}" for DMs or "channel:${o}" for channel messages.`},l=await fn(e,{cfg:r,accountId:a.accountId},s);if(l)return{kind:l.kind,id:l.id};let u=R(e,s);if(!u)throw Error(`Recipient is required for Discord sends`);return{kind:u.kind,id:u.id}}function _n(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 vn(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 yn(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 Jt)return e;let n=yn(e);if(n===50007)return new Jt(`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 qt(t.channelId,{rest:t.rest,token:t.token}),n=new Set(e.permissions),i=[`ViewChannel`,`SendMessages`];Ht(e.channelType)&&i.push(`SendMessagesInThreads`),t.hasMedia&&i.push(`AttachFiles`),r=i.filter(e=>!n.has(e))}catch{}return new Jt(`${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 bn(e,t){try{return(await e.get(D.channel(t)))?.type}catch{return}}const U=4096;function xn(e,t={}){if(!e)return[];let n=kt(e,{maxChars:t.maxChars??2e3,maxLines:t.maxLinesPerMessage,chunkMode:t.chunkMode});return!n.length&&e&&n.push(e),n}function Sn(e){return!!e?.some(e=>`isV2`in e&&e.isV2)}function Cn(e){if(!(!e.components||!e.isFirst))return typeof e.components==`function`?e.components(e.text):e.components}function wn(e){if(e?.length)return e.map(e=>e instanceof fe?e:new fe(e))}function Tn(e){if(!(!e.embeds||!e.isFirst))return wn(e.embeds)}function En(e){let t={},n=Sn(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 Dn(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=xn(n,{maxLinesPerMessage:a,chunkMode:c}),p=async(n,r)=>{let a=W({...j(En({text:n,components:Cn({components:o,text:n,isFirst:r}),embeds:Tn({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 On(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?xn(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=Dn(p.buffer),ee=En({text:g,components:Cn({components:l,text:g,isFirst:!0}),embeds:Tn({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 kn(e){return e.id&&e.name?`${e.name}:${e.id}`:e.name??``}function An(e){return kn(e)}async function jn(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 Mn(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 Nn(e,t={}){return await I(t).delete(D.channel(e)),{ok:!0,channelId:e}}async function Pn(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 Fn(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 In(e,t,n={}){return await I(n).delete(`/channels/${e}/permissions/${t}`),{ok:!0}}async function Ln(e,t={}){return await I(t).get(D.guildEmojis(e))}async function Rn(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 zn(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 Bn(e,t,n={}){return await I(n).get(D.guildMember(e,t))}async function Vn(e,t={}){return await I(t).get(D.guildRoles(e))}async function Hn(e,t={}){return await I(t).put(D.guildMemberRole(e.guildId,e.userId,e.roleId)),{ok:!0}}async function Un(e,t={}){return await I(t).delete(D.guildMemberRole(e.guildId,e.userId,e.roleId)),{ok:!0}}async function Wn(e,t={}){return await I(t).get(D.channel(e))}async function Gn(e,t={}){return await I(t).get(D.guildChannels(e))}async function Kn(e,t,n={}){return await I(n).get(D.guildVoiceState(e,t))}async function qn(e,t={}){return await I(t).get(D.guildScheduledEvents(e))}async function Jn(e,t,n={}){return await I(n).post(D.guildScheduledEvents(e),{body:t})}async function Yn(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 Xn(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 Zn(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 Qn(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 $n(e,t,n={}){return await I(n).get(D.channelMessage(e,t))}async function er(e,t,n,r={}){return await I(r).patch(D.channelMessage(e,t),{body:{content:n.content}})}async function tr(e,t,n={}){return await I(n).delete(D.channelMessage(e,t)),{ok:!0}}async function nr(e,t,n={}){return await I(n).put(D.channelPin(e,t)),{ok:!0}}async function rr(e,t,n={}){return await I(n).delete(D.channelPin(e,t)),{ok:!0}}async function ir(e,t={}){return await I(t).get(D.channelPins(e))}async function ar(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 or(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 sr(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 cr(e){if(e)try{await w.unlink(e)}catch{}}const lr=/```[\s\S]*?```|`[^`\n]*`/g,ur=/(^|[\s([{"'.,;:!?])@([a-z0-9_.-]{2,32}(?:#[0-9]{4})?)/gi,dr=new Set([`everyone`,`here`]);function fr(e){let t=String(e??``).trim();return/^\d+$/.test(t)?t:null}function pr(e){let t=e.userId==null?null:fr(e.userId),n=e.roleId==null?null:fr(e.roleId),r=e.channelId==null?null:fr(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 mr(e,t){return e.includes(`@`)?e.replace(ur,(e,n,r)=>{let i=String(r??``).trim();if(!i)return e;let a=i.toLowerCase();if(dr.has(a))return e;let o=rn({accountId:t,handle:i});return o?`${String(n??``)}${pr({userId:o})}`:e}):e}function K(e,t){if(!e.includes(`@`))return e;let n=``,r=0;lr.lastIndex=0;for(let i of e.matchAll(lr)){let a=i.index??0;n+=mr(e.slice(r,a),t.accountId),n+=i[0],r=a+i[0].length}return n+=mr(e.slice(r),t.accountId),n}const hr=re(ne);function gr(e,t){return{timeout:t?.timeoutMs??e,maxBuffer:t?.maxBufferBytes??10485760}}async function _r(e,t){let{stdout:n}=await hr(`ffprobe`,e,gr(1e4,t));return n.toString()}async function vr(e,t){let{stdout:n}=await hr(`ffmpeg`,e,gr(45e3,t));return n.toString()}function yr(e,t){return e.trim().toLowerCase().split(/[,\r\n]+/,t).map(e=>e.trim())}function br(e){let[t,n]=yr(e,2),r=t||null,i=n?Number.parseInt(n,10):NaN;return{codec:r,sampleRateHz:Number.isFinite(i)?i:null}}const xr=8192;async function Sr(e){try{let t=await _r([`-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 Cr(e){try{return await wr(e)}catch{return Tr()}}async function wr(e){let t=l(),n=C.join(t,`waveform-${ie.randomUUID()}.raw`);try{await vr([`-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 cr(n)}}function Tr(){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 Er(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}=br(await _r([`-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 vr([`-y`,`-i`,e,`-vn`,`-sn`,`-dn`,`-t`,`1200`,`-ar`,`48000`,`-c:a`,`libopus`,`-b:a`,`64k`,r]),{path:r,cleanup:!0}}async function Dr(e){let[t,n]=await Promise.all([Sr(e),Cr(e)]);return{durationSecs:t,waveform:n}}async function Or(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?xr|4096:xr,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 kr(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 Ar(e){return(e.split(`
7
- `).find(e=>e.trim())?.trim()??``).slice(0,100)||new Date().toISOString().slice(0,16)}function jr(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 Mr(e,t){let n=t.cfg??i(),{rest:r,request:a}=F(t,n),{channelId:o}=await H(r,await z(e,t.accountId,n),a);return{rest:r,request:a,channelId:o}}async function Nr(e,t,n={}){let r=n.cfg??i(),a=c({cfg:r,accountId:n.accountId}),o=v({cfg:r,channel:`discord`,accountId:a.accountId}),s=g(r,`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,r),{channelId:h}=await H(p,await z(e,n.accountId,r),m);if(jr(await bn(p,h))){let e=Ar(u),t=xn(d,{maxLinesPerMessage:a.config.maxLinesPerMessage,chunkMode:s}),r=t[0]?.trim()?t[0]:e,i=En({text:r,components:Cn({components:n.components,text:r,isFirst:!0}),embeds:Tn({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 c=o.id,g=o.message?.id??c,_=o.message?.channel_id??c,v=t.slice(1);try{if(n.mediaUrl){let[e,...t]=v;await On(p,c,e??``,n.mediaUrl,n.mediaLocalRoots,l,void 0,m,a.config.maxLinesPerMessage,void 0,void 0,s,n.silent),await kr({rest:p,threadId:c,chunks:t,request:m,maxLinesPerMessage:a.config.maxLinesPerMessage,chunkMode:s,silent:n.silent})}else await kr({rest:p,threadId:c,chunks:v,request:m,maxLinesPerMessage:a.config.maxLinesPerMessage,chunkMode:s,silent:n.silent})}catch(e){throw await V(e,{channelId:c,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 On(p,h,d,n.mediaUrl,n.mediaLocalRoots,l,n.replyTo,m,a.config.maxLinesPerMessage,n.components,n.embeds,s,n.silent):await G(p,h,d,n.replyTo,m,a.config.maxLinesPerMessage,n.components,n.embeds,s,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 Pr(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 Fr(e,t){let n=t.webhookId.trim(),r=t.webhookToken.trim();if(!n||!r)throw Error(`Discord webhook id/token are required`);let a=K(e,{accountId:t.accountId}),o=typeof t.replyTo==`string`?t.replyTo.trim():``,s=o?{message_id:o,fail_if_not_exists:!1}:void 0,l=await fetch(Pr({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(!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:c({cfg:t.cfg??i(),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 Ir(e,t,n={}){let{rest:r,request:i,channelId:a}=await Mr(e,n),o=n.content?.trim(),s=o?K(o,{accountId:n.accountId}):void 0,c=_n(t);return q(await i(()=>r.post(D.channelMessages(a),{body:{content:s||void 0,sticker_ids:c}}),`sticker`),a)}async function Lr(e,t,n={}){let{rest:r,request:i,channelId:a}=await Mr(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=vn(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 Rr(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 zr(e,t,n={}){let{filePath:r}=await Rr(t),a=null,o=!1,s,l,u;try{let t=n.cfg??i(),d=c({cfg:t,accountId:n.accountId}),f=F(n,t);s=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 Er(r);a=h.path,o=h.cleanup;let g=await Dr(a),_=await w.readFile(a),v=await Or(l,u,_,g,n.replyTo,p,n.silent,s);return x({channel:`discord`,accountId:d.accountId,direction:`outbound`}),q(v,u)}catch(e){throw u&&l&&s?await V(e,{channelId:u,rest:l,token:s,hasMedia:!0}):e}finally{await cr(o?a:null),await cr(r)}}const J=new Map,Y=new Map;function Br(e,t){return typeof e.expiresAt==`number`&&e.expiresAt<=t}function Vr(e,t,n){let r=e.createdAt??t,i=e.expiresAt??r+n;return{...e,createdAt:r,expiresAt:i}}function Hr(e){let t=Date.now(),n=e.ttlMs??18e5;for(let r of e.entries){let i=Vr({...r,messageId:e.messageId??r.messageId},t,n);J.set(r.id,i)}for(let r of e.modals){let i=Vr({...r,messageId:e.messageId??r.messageId},t,n);Y.set(r.id,i)}}function Ur(e){let t=J.get(e.id);return t?Br(t,Date.now())?(J.delete(e.id),null):(e.consume!==!1&&J.delete(e.id),t):null}function Wr(e){let t=Y.get(e.id);return t?Br(t,Date.now())?(Y.delete(e.id),null):(e.consume!==!1&&Y.delete(e.id),t):null}const Gr=`attachment://`,Kr=new Map([[`row`,`actions`],[`action-row`,`actions`]]);function qr(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 Jr(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 Yr(e,t){return e?.trim()||`field_${t+1}`}function Xr(e,t){let n=e.trim();if(!n.startsWith(`attachment://`))throw Error(`${t} must start with "${Gr}"`);let r=n.slice(13).trim();if(!r)throw Error(`${t} must include an attachment filename`);return`${Gr}${r}`}function Zr(e){let t=e.trim();if(!t.startsWith(`attachment://`))throw Error(`Attachment reference must start with "${Gr}"`);let n=t.slice(13).trim();if(!n)throw Error(`Attachment reference must include a filename`);return n}function Qr(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 $r(e){return e===`paragraph`?se.Paragraph:se.Short}function ei(e){let t=e.trim().toLowerCase();return Kr.get(t)??t}function ti(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 ni(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:Jr(n.allowedUsers,`${t}.allowedUsers`)}}function ri(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:ti(n.options,`${t}.options`)}}function ii(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=ti(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:Yr(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 ai(e,t){let n=X(e,t);switch(ei(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:ni(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)=>ni(e,`${t}.buttons[${n}]`)):void 0,i=n.select?ri(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:Xr(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 oi(e){if(e==null)return null;let t=X(e,`components`),n=t.blocks,r=Array.isArray(n)?n.map((e,t)=>ai(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)=>ii(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 si(e){let t=`occomp:cid=${e.componentId}`;return e.modalId?`${t};mid=${e.modalId}`:t}function ci(e){return`ocmodal:mid=${e}`}function li(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 ui(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 di(e){return/^__openclaw_discord_component_[a-z_]+_wildcard__$/.test(e)}function fi(e){if(e===`*`||di(e))return{key:`*`,data:{}};let t=A(e);return t.key===`occomp`?{key:`*`,data:t.data}:t}function pi(e){if(e===`*`||di(e))return{key:`*`,data:{}};let t=A(e);return t.key===`ocmodal`?{key:`*`,data:t.data}:t}function mi(e,t){return t&&t.length>0?t.map(e=>new k(e)):e?[new k(e)]:[]}function hi(e){let t=Qr(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??qr(`btn_`),r=si({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 gi(e){let t=(e.spec.type??`string`).toLowerCase(),n=e.componentId??qr(`sel_`),r=si({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 _i(e){return e instanceof Te||e instanceof Oe||e instanceof Se||e instanceof _e||e instanceof le}function vi(e){if(e.type===`text`){class t extends Ee{constructor(...t){super(...t),this.customId=e.id,this.style=$r(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 yi(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=mi(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}=hi({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}=hi({spec:n});e.push(t),r&&a(r)}}else if(t.select){let{component:n,entry:r}=gi({spec:t.select});e.push(n),a(r)}i.push(new O(e))}}if(e.spec.modal){let t=qr(`mdl_`),r=e.spec.modal.fields.map((e,t)=>({id:qr(`fld_`),name:Yr(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}=hi({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=>_i(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 bi(e){return e.some(e=>e.isV2)?ae.IsComponentsV2:void 0}var xi=class extends ve{constructor(e){super(),this.customIdParser=pi,this.title=e.title,this.customId=ci(e.modalId),this.components=e.fields.map(e=>{let t=vi(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 Si(e){return new xi({modalId:e.id,title:e.title,fields:e.fields})}function Ci(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 wi=new Set([E.GuildForum,E.GuildMedia]);function Ti(e){let t=[];for(let n of e.blocks??[])n.type===`file`&&t.push(Zr(n.file));return t}async function Ei(e,t,n={}){let r=n.cfg??i(),a=c({cfg:r,accountId:n.accountId}),{token:o,rest:s,request:l}=F(n,r),{channelId:u}=await H(s,await z(e,n.accountId,r),l),d=await bn(s,u);if(d&&wi.has(d))throw Error(`Discord components are not supported in forum-style channels`);let f=yi({spec:t,sessionKey:n.sessionKey,agentId:n.agentId,accountId:a.accountId}),p=bi(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,_=Ti(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:Dn(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(()=>s.post(D.channelMessages(u),{body:ee}),`components`)}catch(e){throw await V(e,{channelId:u,rest:s,token:o,hasMedia:!!b?.length})}return Hr({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 Di(e,t,n,r={}){let{rest:a,request:o}=F(r,r.cfg??i()),s=gn(n);return await o(()=>a.put(D.channelMessageOwnReaction(e,t,s)),`react`),{ok:!0}}async function Oi(e,t,n,r={}){let{rest:a}=F(r,r.cfg??i()),o=gn(n);return await a.delete(D.channelMessageOwnReaction(e,t,o)),{ok:!0}}async function ki(e,t,n={}){let{rest:r}=F(n,n.cfg??i()),a=await r.get(D.channelMessage(e,t)),o=new Set;for(let e of a.reactions??[]){let t=kn(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),r.delete(D.channelMessageOwnReaction(e,t,gn(n)))))),{ok:!0,removed:s}}async function Ai(e,t,n={}){let{rest:r}=F(n,n.cfg??i()),a=(await r.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 i=kn(n.emoji);if(!i)continue;let a=encodeURIComponent(i),c=await r.get(D.channelMessageReaction(e,t,a),{limit:o});s.push({emoji:{id:n.emoji.id??null,name:n.emoji.name??null,raw:An(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 $,rr as A,Be as At,qn as B,er as C,Ze as Ct,nr as D,Ue as Dt,or as E,Xe as Et,Bn as F,Ne as Ft,zn as G,Yn as H,Vn as I,Me as It,Mn as J,jn as K,Kn as L,Fe as Lt,Zn as M,ze as Mt,Jn as N,He as Nt,Qn as O,We as Ot,Wn as P,Ae as Pt,G as Q,Xn as R,tr as S,$e as St,ir as T,M as Tt,Ln as U,Un as V,Rn as W,In as X,Pn as Y,Fn as Z,Ir as _,ct as _t,Ei as a,Kt as at,pr as b,bt,li as c,kt as ct,pi as d,P as dt,R as et,oi as f,rt as ft,Lr as g,lt as gt,Nr as h,st as ht,Oi as i,qt as it,Hn as j,Le as jt,sr as k,Re as kt,fi as l,vt as lt,Wr as m,ut as mt,Di as n,ln as nt,Si as o,F as ot,Ur as p,ht as pt,Nn as q,ki as r,un as rt,Ci as s,Pt as st,Ai as t,dn as tt,ui as u,N as ut,zr as v,gt as vt,$n as w,et as wt,ar as x,Qe as xt,Fr as y,yt,Gn as z};
7
+ `).find(e=>e.trim())?.trim()??``).slice(0,100)||new Date().toISOString().slice(0,16)}function jr(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 Mr(e,t){let n=t.cfg??i(),{rest:r,request:a}=F(t,n),{channelId:o}=await H(r,await z(e,t.accountId,n),a);return{rest:r,request:a,channelId:o}}async function Nr(e,t,n={}){let r=n.cfg??i(),a=c({cfg:r,accountId:n.accountId}),o=v({cfg:r,channel:`discord`,accountId:a.accountId}),s=g(r,`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,r),{channelId:h}=await H(p,await z(e,n.accountId,r),m);if(jr(await bn(p,h))){let e=Ar(u),t=xn(d,{maxLinesPerMessage:a.config.maxLinesPerMessage,chunkMode:s}),r=t[0]?.trim()?t[0]:e,i=En({text:r,components:Cn({components:n.components,text:r,isFirst:!0}),embeds:Tn({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 c=o.id,g=o.message?.id??c,_=o.message?.channel_id??c,v=t.slice(1);try{if(n.mediaUrl){let[e,...t]=v;await On(p,c,e??``,n.mediaUrl,n.mediaLocalRoots,l,void 0,m,a.config.maxLinesPerMessage,void 0,void 0,s,n.silent),await kr({rest:p,threadId:c,chunks:t,request:m,maxLinesPerMessage:a.config.maxLinesPerMessage,chunkMode:s,silent:n.silent})}else await kr({rest:p,threadId:c,chunks:v,request:m,maxLinesPerMessage:a.config.maxLinesPerMessage,chunkMode:s,silent:n.silent})}catch(e){throw await V(e,{channelId:c,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 On(p,h,d,n.mediaUrl,n.mediaLocalRoots,l,n.replyTo,m,a.config.maxLinesPerMessage,n.components,n.embeds,s,n.silent):await G(p,h,d,n.replyTo,m,a.config.maxLinesPerMessage,n.components,n.embeds,s,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 Pr(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 Fr(e,t){let n=t.webhookId.trim(),r=t.webhookToken.trim();if(!n||!r)throw Error(`Discord webhook id/token are required`);let a=K(e,{accountId:t.accountId}),o=typeof t.replyTo==`string`?t.replyTo.trim():``,s=o?{message_id:o,fail_if_not_exists:!1}:void 0,l=await fetch(Pr({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(!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:c({cfg:t.cfg??i(),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 Ir(e,t,n={}){let{rest:r,request:i,channelId:a}=await Mr(e,n),o=n.content?.trim(),s=o?K(o,{accountId:n.accountId}):void 0,c=_n(t);return q(await i(()=>r.post(D.channelMessages(a),{body:{content:s||void 0,sticker_ids:c}}),`sticker`),a)}async function Lr(e,t,n={}){let{rest:r,request:i,channelId:a}=await Mr(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=vn(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 Rr(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 zr(e,t,n={}){let{filePath:r}=await Rr(t),a=null,o=!1,s,l,u;try{let t=n.cfg??i(),d=c({cfg:t,accountId:n.accountId}),f=F(n,t);s=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 Er(r);a=h.path,o=h.cleanup;let g=await Dr(a),_=await w.readFile(a),v=await Or(l,u,_,g,n.replyTo,p,n.silent,s);return x({channel:`discord`,accountId:d.accountId,direction:`outbound`}),q(v,u)}catch(e){throw u&&l&&s?await V(e,{channelId:u,rest:l,token:s,hasMedia:!0}):e}finally{await cr(o?a:null),await cr(r)}}const J=new Map,Y=new Map;function Br(e,t){return typeof e.expiresAt==`number`&&e.expiresAt<=t}function Vr(e,t,n){let r=e.createdAt??t,i=e.expiresAt??r+n;return{...e,createdAt:r,expiresAt:i}}function Hr(e){let t=Date.now(),n=e.ttlMs??18e5;for(let r of e.entries){let i=Vr({...r,messageId:e.messageId??r.messageId},t,n);J.set(r.id,i)}for(let r of e.modals){let i=Vr({...r,messageId:e.messageId??r.messageId},t,n);Y.set(r.id,i)}}function Ur(e){let t=J.get(e.id);return t?Br(t,Date.now())?(J.delete(e.id),null):(e.consume!==!1&&J.delete(e.id),t):null}function Wr(e){let t=Y.get(e.id);return t?Br(t,Date.now())?(Y.delete(e.id),null):(e.consume!==!1&&Y.delete(e.id),t):null}const Gr=`attachment://`,Kr=new Map([[`row`,`actions`],[`action-row`,`actions`]]);function qr(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 Jr(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 Yr(e,t){return e?.trim()||`field_${t+1}`}function Xr(e,t){let n=e.trim();if(!n.startsWith(`attachment://`))throw Error(`${t} must start with "${Gr}"`);let r=n.slice(13).trim();if(!r)throw Error(`${t} must include an attachment filename`);return`${Gr}${r}`}function Zr(e){let t=e.trim();if(!t.startsWith(`attachment://`))throw Error(`Attachment reference must start with "${Gr}"`);let n=t.slice(13).trim();if(!n)throw Error(`Attachment reference must include a filename`);return n}function Qr(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 $r(e){return e===`paragraph`?se.Paragraph:se.Short}function ei(e){let t=e.trim().toLowerCase();return Kr.get(t)??t}function ti(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 ni(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:Jr(n.allowedUsers,`${t}.allowedUsers`)}}function ri(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:ti(n.options,`${t}.options`)}}function ii(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=ti(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:Yr(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 ai(e,t){let n=X(e,t);switch(ei(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:ni(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)=>ni(e,`${t}.buttons[${n}]`)):void 0,i=n.select?ri(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:Xr(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 oi(e){if(e==null)return null;let t=X(e,`components`),n=t.blocks,r=Array.isArray(n)?n.map((e,t)=>ai(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)=>ii(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 si(e){let t=`occomp:cid=${e.componentId}`;return e.modalId?`${t};mid=${e.modalId}`:t}function ci(e){return`ocmodal:mid=${e}`}function li(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 ui(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 di(e){return/^__openclaw_discord_component_[a-z_]+_wildcard__$/.test(e)}function fi(e){if(e===`*`||di(e))return{key:`*`,data:{}};let t=A(e);return t.key===`occomp`?{key:`*`,data:t.data}:t}function pi(e){if(e===`*`||di(e))return{key:`*`,data:{}};let t=A(e);return t.key===`ocmodal`?{key:`*`,data:t.data}:t}function mi(e,t){return t&&t.length>0?t.map(e=>new k(e)):e?[new k(e)]:[]}function hi(e){let t=Qr(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??qr(`btn_`),r=si({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 gi(e){let t=(e.spec.type??`string`).toLowerCase(),n=e.componentId??qr(`sel_`),r=si({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 _i(e){return e instanceof Te||e instanceof Oe||e instanceof Se||e instanceof _e||e instanceof le}function vi(e){if(e.type===`text`){class t extends Ee{constructor(...t){super(...t),this.customId=e.id,this.style=$r(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 yi(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=mi(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}=hi({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}=hi({spec:n});e.push(t),r&&a(r)}}else if(t.select){let{component:n,entry:r}=gi({spec:t.select});e.push(n),a(r)}i.push(new O(e))}}if(e.spec.modal){let t=qr(`mdl_`),r=e.spec.modal.fields.map((e,t)=>({id:qr(`fld_`),name:Yr(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}=hi({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=>_i(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 bi(e){return e.some(e=>e.isV2)?ae.IsComponentsV2:void 0}var xi=class extends ve{constructor(e){super(),this.customIdParser=pi,this.title=e.title,this.customId=ci(e.modalId),this.components=e.fields.map(e=>{let t=vi(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 Si(e){return new xi({modalId:e.id,title:e.title,fields:e.fields})}function Ci(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 wi=new Set([E.GuildForum,E.GuildMedia]);function Ti(e){let t=[];for(let n of e.blocks??[])n.type===`file`&&t.push(Zr(n.file));return t}async function Ei(e,t,n={}){let r=n.cfg??i(),a=c({cfg:r,accountId:n.accountId}),{token:o,rest:s,request:l}=F(n,r),{channelId:u}=await H(s,await z(e,n.accountId,r),l),d=await bn(s,u);if(d&&wi.has(d))throw Error(`Discord components are not supported in forum-style channels`);let f=yi({spec:t,sessionKey:n.sessionKey,agentId:n.agentId,accountId:a.accountId}),p=bi(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,_=Ti(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:Dn(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(()=>s.post(D.channelMessages(u),{body:ee}),`components`)}catch(e){throw await V(e,{channelId:u,rest:s,token:o,hasMedia:!!b?.length})}return Hr({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 Di(e,t,n,r={}){let{rest:a,request:o}=F(r,r.cfg??i()),s=gn(n);return await o(()=>a.put(D.channelMessageOwnReaction(e,t,s)),`react`),{ok:!0}}async function Oi(e,t,n,r={}){let{rest:a}=F(r,r.cfg??i()),o=gn(n);return await a.delete(D.channelMessageOwnReaction(e,t,o)),{ok:!0}}async function ki(e,t,n={}){let{rest:r}=F(n,n.cfg??i()),a=await r.get(D.channelMessage(e,t)),o=new Set;for(let e of a.reactions??[]){let t=kn(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),r.delete(D.channelMessageOwnReaction(e,t,gn(n)))))),{ok:!0,removed:s}}async function Ai(e,t,n={}){let{rest:r}=F(n,n.cfg??i()),a=(await r.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 i=kn(n.emoji);if(!i)continue;let a=encodeURIComponent(i),c=await r.get(D.channelMessageReaction(e,t,a),{limit:o});s.push({emoji:{id:n.emoji.id??null,name:n.emoji.name??null,raw:An(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 $,rr as A,Be as At,qn as B,er as C,Ze as Ct,nr as D,Ue as Dt,or as E,Xe as Et,Bn as F,Ne as Ft,zn as G,Yn as H,Vn as I,Me as It,Mn as J,jn as K,Kn as L,Fe as Lt,Zn as M,ze as Mt,Jn as N,He as Nt,Qn as O,We as Ot,Wn as P,Ae as Pt,G as Q,Xn as R,tr as S,$e as St,ir as T,M as Tt,Ln as U,Un as V,Rn as W,In as X,Pn as Y,Fn as Z,Ir as _,ct as _t,Ei as a,Kt as at,pr as b,bt,li as c,kt as ct,pi as d,P as dt,R as et,oi as f,rt as ft,Lr as g,lt as gt,Nr as h,st as ht,Oi as i,qt as it,Hn as j,Le as jt,sr as k,Re as kt,fi as l,vt as lt,Wr as m,ut as mt,Di as n,ln as nt,Si as o,F as ot,Ur as p,ht as pt,Nn as q,ki as r,un as rt,Ci as s,Pt as st,Ai as t,dn as tt,ui as u,N as ut,zr as v,gt as vt,$n as w,et as wt,ar as x,Qe as xt,Fr as y,yt,Gn as z};
@@ -1 +1 @@
1
- import{N as e,_ as t,f as n,g as r,h as i,zt as a}from"./paths-cBAF6Bj0.js";import{Ci as o,Ja as s,Jt as c,Ko as l,Q as u,Si as d,Ti as f,Y as p,co as m,lo as h,qr as g,tt as _,wi as v,xi as y}from"./sessions-BwTjGneU.js";import{I as b,O as x,R as S,a as C,b as w}from"./logger-vBDTZWl3.js";import{c as T,d as ee,l as E,o as te}from"./paths-CnHSNSeR.js";import{n as ne}from"./proxy-fetch-CYVChsKE.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-B0_rUT7m.js";import{t as oe}from"./render-CBsnn-2A.js";import{n as se}from"./polls-CBAGZuJ6.js";import{t as ce}from"./load-options-B9Ss5YOO.js";import{i as le,n as j}from"./channel-activity-C01Im_o1.js";import{t as ue}from"./fetch-C-HRWp5R.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(){return h().filter(e=>e.pairing).map(e=>e.id)}function ye(e){return m(e)?.pairing??null}async function be(e,t){try{let n=w(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 xe(e,t){await g(e,t,{mode:384,trailingNewline:!0,ensureDirMode:448})}const Se={retries:{retries:10,factor:2,minTimeout:100,maxTimeout:1e4,randomize:!0},stale:3e4},Ce=new Map;function we(e=process.env){return te(e,T(e,()=>ee(e,de.homedir)))}function Te(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 Ee(e,t=process.env){return M.join(we(t),`${Te(e)}-pairing.json`)}function De(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=Te(e),i=typeof n==`string`?n.trim():``;return i?M.join(we(t),`${r}-${De(i)}-allowFrom.json`):M.join(we(t),`${r}-allowFrom.json`)}async function Oe(e,t){return await be(e,t)}async function F(e,t){await xe(e,t)}async function ke(e){let{value:t}=await Oe(e,{version:1,requests:[]});return Array.isArray(t.requests)?t.requests:[]}async function Ae(e,t){try{await N.promises.access(e)}catch{await F(e,t)}}async function je(e,t,n){return await Ae(e,t),await s(e,Se,async()=>await n())}function Me(e){if(!e)return null;let t=Date.parse(e);return Number.isFinite(t)?t:null}function Ne(e,t){let n=Me(e.createdAt);return n?t-n>36e5:!0}function Pe(e,t){let n=[],r=!1;for(let i of e){if(Ne(i,t)){r=!0;continue}n.push(i)}return{requests:n,removed:r}}function Fe(e){return Me(e.lastSeenAt)??Me(e.createdAt)??0}function Ie(e,t){return t<=0||e.length<=t?{requests:e,removed:!1}:{requests:e.slice().toSorted((e,t)=>Fe(e)-Fe(t)).slice(-t),removed:!0}}function Le(){let e=``;for(let t=0;t<8;t++){let t=pe.randomInt(0,32);e+=`ABCDEFGHJKLMNPQRSTUVWXYZ23456789`[t]}return e}function Re(e){for(let t=0;t<500;t+=1){let t=Le();if(!e.has(t))return t}throw Error(`failed to generate unique pairing code`)}function ze(e){return e?.trim().toLowerCase()||``}function Be(e,t){return t?String(e.meta?.accountId??``).trim().toLowerCase()===t:!0}function Ve(e){return!e||e===`default`}function He(e){return ze(e)||`default`}function Ue(e){return String(e).trim()}function We(e,t){let n=t.trim();if(!n||n===`*`)return``;let r=ye(e),i=r?.normalizeAllowEntry?r.normalizeAllowEntry(n):n;return String(i).trim()}function Ge(e,t){return qe((Array.isArray(t.allowFrom)?t.allowFrom:[]).map(t=>We(e,String(t))).filter(Boolean))}function Ke(e,t){return We(e,Ue(t))}function qe(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 I(e,t){return(await Ze(e,t)).entries}function Je(e){return{exists:e.exists,mtimeMs:e.mtimeMs,size:e.size,entries:e.entries.slice()}}function L(e,t){Ce.set(e,Je(t))}function Ye(e){let t=Ce.get(e.filePath);return!t||t.exists!==e.exists||e.exists&&(t.mtimeMs!==e.mtimeMs||t.size!==e.size)?null:Je(t)}function Xe(e,t){let n=Ye({filePath:e,exists:!!t,mtimeMs:t?.mtimeMs??null,size:t?.size??null});return n?{entries:n.entries,exists:n.exists}:t?null:(L(e,{exists:!1,mtimeMs:null,size:null,entries:[]}),{entries:[],exists:!1})}async function Ze(e,t){let n=null;try{n=await N.promises.stat(t)}catch(e){if(e.code!==`ENOENT`)throw e}let r=Xe(t,n);if(r)return r;if(!n)return{entries:[],exists:!1};let{value:i,exists:a}=await Oe(t,{version:1,allowFrom:[]}),o=Ge(e,i);return L(t,{exists:a,mtimeMs:n.mtimeMs,size:n.size,entries:o}),{entries:o,exists:a}}function Qe(e,t){return $e(e,t).entries}function $e(e,t){let n=null;try{n=N.statSync(t)}catch(e){if(e.code!==`ENOENT`)return{entries:[],exists:!1}}let r=Xe(t,n);if(r)return r;if(!n)return{entries:[],exists:!1};let i=``;try{i=N.readFileSync(t,`utf8`)}catch(e){return e.code,{entries:[],exists:!1}}try{let r=Ge(e,JSON.parse(i));return L(t,{exists:!0,mtimeMs:n.mtimeMs,size:n.size,entries:r}),{entries:r,exists:!0}}catch{return L(t,{exists:!0,mtimeMs:n.mtimeMs,size:n.size,entries:[]}),{entries:[],exists:!0}}}async function et(e){let{value:t}=await Oe(e.filePath,{version:1,allowFrom:[]});return{current:Ge(e.channel,t),normalized:Ke(e.channel,e.entry)||null}}async function tt(e,t){await F(e,{version:1,allowFrom:t});let n=null;try{n=await N.promises.stat(e)}catch{}L(e,{exists:!0,mtimeMs:n?.mtimeMs??null,size:n?.size??null,entries:t.slice()})}async function nt(e){let t=P(e.channel,e.env,e.accountId);return await I(e.channel,t)}function rt(e){let t=P(e.channel,e.env,e.accountId);return Qe(e.channel,t)}async function it(e){let t=e.env??process.env,n=P(e.channel,t,e.accountId);return await je(n,{version:1,allowFrom:[]},async()=>{let{current:t,normalized:r}=await et({channel:e.channel,entry:e.entry,filePath:n});if(!r)return{changed:!1,allowFrom:t};let i=e.apply(t,r);return i?(await tt(n,i),{changed:!0,allowFrom:i}):{changed:!1,allowFrom:t}})}async function at(e,t=process.env,n){let r=He(n);if(!Ve(r))return await nt({channel:e,env:t,accountId:r});let i=await I(e,P(e,t,r)),a=await I(e,P(e,t));return qe([...i,...a])}function ot(e,t=process.env,n){let r=He(n);if(!Ve(r))return rt({channel:e,env:t,accountId:r});let i=Qe(e,P(e,t,r)),a=Qe(e,P(e,t));return qe([...i,...a])}async function st(e){return await it({channel:e.channel,entry:e.entry,accountId:e.accountId,env:e.env,apply:e.apply})}async function ct(e,t){return await st({...e,apply:t})}async function lt(e){return await ct(e,(e,t)=>e.includes(t)?null:[...e,t])}async function ut(e){return await ct(e,(e,t)=>{let n=e.filter(e=>e!==t);return n.length===e.length?null:n})}async function dt(e){let t=e.env??process.env,n=Ee(e.channel,t);return await je(n,{version:1,requests:[]},async()=>{let t=new Date().toISOString(),r=Date.now(),i=Ue(e.id),a=ze(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 ke(n),{requests:c,removed:l}=Pe(s,r);s=c;let u=a,d=s.findIndex(e=>e.id===i?Be(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():``)||Re(f),a={id:i,code:r,createdAt:e?.createdAt??t,lastSeenAt:t,meta:o??e?.meta};s[d]=a;let{requests:c}=Ie(s,3);return await F(n,{version:1,requests:c}),{code:r,created:!1}}let{requests:p,removed:m}=Ie(s,3);if(s=p,s.length>=3)return(l||m)&&await F(n,{version:1,requests:s}),{code:``,created:!1};let h=Re(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 ft=new Set([`.oga`,`.ogg`,`.opus`,`.mp3`,`.m4a`]),pt=new Set([`audio/ogg`,`audio/opus`,`audio/mpeg`,`audio/mp3`,`audio/mp4`,`audio/x-m4a`,`audio/m4a`]);function mt(e){let r=t(e.contentType);if(r&&pt.has(r))return!0;let i=e.fileName?.trim();if(!i)return!1;let a=n(i);return a?ft.has(a):!1}function ht(e){return mt(e)}function gt(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 _t(e){return Number.isFinite(e)?` ±${Math.round(e??0)}m`:``}function vt(e,t){return`${e.toFixed(6)}, ${t.toFixed(6)}`}function yt(e){let t=gt(e),n=vt(t.latitude,t.longitude),r=_t(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 bt(e){let t=gt(e);return{LocationLat:t.latitude,LocationLon:t.longitude,LocationAccuracy:t.accuracy,LocationName:t.name,LocationAddress:t.address,LocationSource:t.source,LocationIsLive:t.isLive}}function xt(e){let t=e.dmPolicy===`allowlist`?[]:e.storeAllowFrom??[];return[...e.allowFrom??[],...t].map(e=>String(e).trim()).filter(Boolean)}function St(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 Ct(...e){for(let t of e)if(t!==void 0)return t}function wt(e,t,n){return e.hasEntries?e.hasWildcard?!0:t?e.entries.includes(t):!1:n}const Tt=new Set,Et=x(`telegram/bot-access`);function Dt(e){if(!process.env.VITEST)for(let t of e)Tt.has(t)||(Tt.add(t),Et.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 Ot=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&&Dt([...new Set(i)]),{entries:r.filter(e=>/^\d+$/.test(e)),hasWildcard:n,hasEntries:t.length>0,invalidEntries:i}},kt=e=>Ot(xt(e)),At=e=>{let{allow:t,senderId:n}=e;return wt(t,n,!0)},jt=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 Mt(e){let t=a(e.accountId),n=Pt({isGroup:e.isGroup??!1,isForum:e.isForum,messageThreadId:e.messageThreadId}),r=n.scope===`forum`?n.id:void 0,i=n.scope===`dm`?n.id:void 0,o=r??i,s=await at(`telegram`,process.env,t).catch(()=>[]),{groupConfig:c,topicConfig:l}=e.resolveTelegramGroupConfig(e.chatId,o),u=Ct(l?.allowFrom,c?.allowFrom);return{resolvedThreadId:r,dmThreadId:i,storeAllowFrom:s,groupConfig:c,topicConfig:l,groupAllowOverride:u,effectiveGroupAllow:Ot(u??e.groupAllowFrom),hasGroupAllowOverride:u!==void 0}}function Nt(e){if(e.isForum)return e.messageThreadId==null?1:e.messageThreadId}function Pt(e){return e.isGroup?{id:Nt({isForum:e.isForum,messageThreadId:e.messageThreadId}),scope:e.isForum?`forum`:`none`}:e.messageThreadId==null?{scope:`dm`}:{id:e.messageThreadId,scope:`dm`}}function Ft(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 It(e){if(e!=null)return{message_thread_id:Math.trunc(e)}}function Lt(e){return c(e)}function Rt(e,t){return t==null?String(e):`${e}:topic:${t}`}function zt(e){return(e.senderId==null?``:String(e.senderId).trim())||String(e.chatId)}function Bt(e,t){return`telegram:group:${Rt(e,t)}`}function Vt(e){if(!(!e.isGroup||e.resolvedThreadId==null))return{kind:`group`,id:String(e.chatId)}}function Ht(e){return[e.from?.first_name,e.from?.last_name].filter(Boolean).join(` `).trim()||e.from?.username||void 0}function Ut(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 Wt(e,t){let n=Ht(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 Gt(e,t,n){let r=e.chat?.title,i=n==null?``:` topic:${n}`;return r?`${r} id:${t}${i}`:`group:${t}${i}`}function Kt(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 Jt(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 Yt(e,t){let{text:n,entities:r}=Kt(e),i=`@${t}`.toLowerCase();if(Jt(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 Xt(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 Zt(e){if(!e)return;let t=Number(e);if(Number.isFinite(t))return t}function Qt(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=Ut(o)??``,!i))){let e=sn(o);e&&(i=yt(e))}if(!i)return null;let s=(o?Ht(o):void 0)??`unknown sender`,c=o?.forward_origin?an(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 $t(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 en(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 tn(e){let{display:t,name:n,username:r,id:i}=$t(e.user);return t?{from:t,date:e.date,fromType:e.type,fromId:i,fromUsername:r,fromTitle:n}:null}function nn(e){let t=e.name?.trim();return t?{from:t,date:e.date,fromType:e.type,fromTitle:t}:null}function rn(e){let t=e.type===`channel`?`channel`:`chat`,{display:n,title:r,username:i,id:a}=en(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 an(e){switch(e.type){case`user`:return tn({user:e.sender_user,date:e.date,type:`user`});case`hidden_user`:return nn({name:e.sender_user_name,date:e.date,type:`hidden_user`});case`chat`:return rn({chat:e.sender_chat,date:e.date,type:`chat`,signature:e.author_signature});case`channel`:return rn({chat:e.chat,date:e.date,type:`channel`,signature:e.author_signature,messageId:e.message_id});default:return null}}function on(e){return e.forward_origin?an(e.forward_origin):null}function sn(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 R(e){return e.trim().toLowerCase()}function cn(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(R).filter(Boolean)}function ln(e){let t=new Set,n=[];for(let r of e){let e=R(r);!e||t.has(e)||(t.add(e),n.push(e))}return n}function un(e,t=process.env){let n=Array.isArray(e?.diagnostics?.flags)?e?.diagnostics?.flags:[],r=cn(t.OPENCLAW_DIAGNOSTICS);return ln([...n,...r])}function dn(e,t){let n=R(e);if(!n)return!1;for(let e of t){let t=R(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 fn(e,t,n=process.env){return dn(e,un(t,n))}const pn=x(`telegram/api`);function mn(e,t){return t||(e?.error?e.error:e=>pn.error(e))}async function hn({operation:e,fn:t,runtime:n,logger:r,shouldLog:i}){try{return await t()}catch(t){if(!i||i(t)){let i=o(t);mn(n,r)(b(`telegram ${e} failed: ${i}`))}throw t}}function gn(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 z(e){return e.replace(/&/g,`&amp;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`)}function _n(e){return z(e).replace(/"/g,`&quot;`)}const vn=new Set([`md`,`go`,`py`,`pl`,`sh`,`am`,`at`,`be`,`cc`]);function yn(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(!vn.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 bn(e,t){let n=e.href.trim();if(!n||e.start===e.end||yn(n,t.slice(e.start,e.end)))return null;let r=_n(n);return{start:e.start,end:e.end,open:`<a href="${r}">`,close:`</a>`}}function xn(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:z,buildLink:bn})}function Sn(e,t={}){let n=xn(k(e??``,{linkify:!0,enableSpoilers:!0,headingStyle:`none`,blockquotePrefix:``,tableMode:t.tableMode}));return t.wrapFileRefs===!1?n:An(n)}function Cn(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}const wn=Array.from(vn).map(Cn).join(`|`),Tn=/<a\s+href="https?:\/\/([^"]+)"[^>]*>\1<\/a>/gi,En=RegExp(`(^|[^a-zA-Z0-9_\\-/])([a-zA-Z0-9_.\\-./]+\\.(?:${wn}))(?=$|[^a-zA-Z0-9_\\-/])`,`gi`),Dn=RegExp(`([^a-zA-Z0-9]|^)([A-Za-z]\\.(?:${wn}))(?=[^a-zA-Z0-9/]|$)`,`g`),B=/(<\/?)([a-zA-Z][a-zA-Z0-9-]*)\b[^>]*?>/gi;function On(e,t,n){return n.startsWith(`//`)||/https?:\/\/$/i.test(t)?e:`${t}<code>${z(n)}</code>`}function kn(e,t,n,r){return!e||t>0||n>0||r>0?e:e.replace(En,On).replace(Dn,(e,t,n)=>t===`>`?e:`${t}<code>${z(n)}</code>`)}function An(e){Tn.lastIndex=0;let t=e.replace(Tn,(e,t)=>yn(`http://${t}`,t)?`<code>${z(t)}</code>`:e),n=0,r=0,i=0,a=``,o=0;B.lastIndex=0;let s;for(;(s=B.exec(t))!==null;){let e=s.index,c=B.lastIndex,l=s[1]===`</`,u=s[2].toLowerCase(),d=t.slice(o,e);a+=kn(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+=kn(c,n,r,i),a}function jn(e,t={}){return(t.textMode??`markdown`)===`html`?e:Sn(e,{tableMode:t.tableMode})}const Mn=new Set([`br`]);function Nn(e){return e.map(e=>e.openTag).join(``)}function Pn(e){return e.slice().toReversed().map(e=>e.closeTag).join(``)}function Fn(e){return e.reduce((e,t)=>e+t.closeTag.length,0)}function In(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 Ln(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=In(e,r);return i===-1||i<n?n:r}function Rn(e,t){for(let n=e.length-1;n>=0;--n)if(e[n]?.name===t){e.splice(n,1);return}}function zn(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=Nn(i),o=!1},c=()=>{o&&(r.push(`${a}${Pn(i)}`),s())},l=e=>{let t=e;for(;t.length>0;){let e=n-a.length-Fn(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=Ln(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(),B.lastIndex=0;let u=0,d;for(;(d=B.exec(e))!==null;){let t=d.index,r=B.lastIndex;l(e.slice(u,t));let s=d[0],f=d[1]===`</`,p=d[2].toLowerCase(),m=!f&&(Mn.has(p)||s.trimEnd().endsWith(`/>`));if(!f){let e=m?0:`</${p}>`.length;o&&a.length+s.length+Fn(i)+e>n&&c()}a+=s,m&&(o=!0),f?Rn(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 Bn(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=Un(e,Number.isFinite(a)&&a>0?a:Math.max(1,Math.floor(r/2)));return o.length>1?o:Un(e,Math.max(1,Math.floor(r/2)))}function Vn(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 Hn(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 Un(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:Vn(e.styles,i,t),links:Hn(e.links,i,t)}),i=t}return r}function Wn(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=An(xn(e));if(t.length<=n||e.text.length<=1){i.push({html:t,text:e.text});continue}let a=Bn(e,n,t.length);if(a.length<=1){i.push({html:t,text:e.text});continue}r.unshift(...a)}return i}function Gn(e,t,n={}){return Wn(k(e??``,{linkify:!0,enableSpoilers:!0,headingStyle:`none`,blockquotePrefix:``,tableMode:n.tableMode}),t)}const Kn=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`]),qn=new Set([`ECONNREFUSED`,`ENOTFOUND`,`EAI_AGAIN`,`ENETUNREACH`,`EHOSTUNREACH`]),Jn=new Set([`AbortError`,`TimeoutError`,`ConnectTimeoutError`,`HeadersTimeoutError`,`BodyTimeoutError`]),Yn=new Set([`fetch failed`,`typeerror: fetch failed`]),Xn=/^network request(?:\s+for\s+["']?[^"']+["']?)?\s+failed\s+after\b.*[!.]?$/i,Zn=[`undici`,`network error`,`network request`,`client network socket disconnected`,`socket hang up`,`getaddrinfo`,`timeout`,`timed out`];function Qn(e){return y(e,e=>{let t=[e.cause,e.reason];return Array.isArray(e.errors)&&t.push(...e.errors),f(e)===`HttpError`&&t.push(e.error),t})}function $n(e){return e?.trim().toUpperCase()??``}function er(e){let t=d(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 tr(e){if(!e)return!1;for(let t of Qn(e)){let e=$n(er(t));if(e&&qn.has(e))return!0}return!1}function nr(e,t){for(let n of Qn(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 rr(e){return nr(e,e=>e>=500)}function ir(e){return nr(e,e=>e>=400&&e<500)}function V(e,t={}){if(!e)return!1;let n=typeof t.allowMessageMatch==`boolean`?t.allowMessageMatch:t.context!==`send`;for(let t of Qn(e)){let e=$n(er(t));if(e&&Kn.has(e))return!0;let r=f(t);if(r&&Jn.has(r))return!0;let i=o(t).trim().toLowerCase();if(i&&Yn.has(i)||i&&Xn.test(i)||n&&i&&Zn.some(e=>i.includes(e)))return!0}return!1}const ar=new Map;function or(e){return String(e)}function sr(e){let t=Date.now();for(let[n,r]of e.timestamps)t-r>864e5&&e.timestamps.delete(n)}function H(e,t){let n=or(e),r=ar.get(n);r||(r={timestamps:new Map},ar.set(n,r)),r.timestamps.set(t,Date.now()),r.timestamps.size>100&&sr(r)}function cr(e,t){let n=or(e),r=ar.get(n);return r?(sr(r),r.timestamps.has(t)):!1}const lr=M.join(C,`cron`),ur=M.join(lr,`jobs.json`),U=new Map;function dr(e){if(e?.trim()){let t=e.trim();return t.startsWith(`~`)?M.resolve(E(t)):M.resolve(t)}return ur}async function fr(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 U.set(e,JSON.stringify(i,null,2)),i}catch(t){if(t?.code===`ENOENT`)return U.delete(e),{version:1,jobs:[]};throw t}}async function pr(e){await N.promises.chmod(e,384).catch(()=>void 0)}async function mr(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=U.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){U.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 pr(s),o!==null&&!n?.skipBackup)try{let t=`${e}.bak`;await N.promises.copyFile(e,t),await pr(t)}catch{}await hr(s,e),await pr(e),U.set(e,i)}async function hr(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 W=x(`telegram/target-writeback`);function gr(e){return!e||typeof e!=`object`||Array.isArray(e)?null:e}function _r(e){let t=re(e);if(t)return t.startsWith(`@`)?t.toLowerCase():t}function vr(e){let t=D(e),n=_r(t.chatId);if(n)return`${n}|${t.messageThreadId==null?``:String(t.messageThreadId)}`}function yr(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 br(e){let t=D(e.raw);if(O(t.chatId))return null;let n=_r(t.chatId);return n?{matchKey:`${n}|${t.messageThreadId==null?``:String(t.messageThreadId)}`,resolvedTarget:yr({raw:e.raw,parsed:t,resolvedChatId:e.resolvedChatId})}:null}function xr(e){if(typeof e.rawValue!=`string`&&typeof e.rawValue!=`number`)return null;let t=String(e.rawValue).trim();return!t||vr(t)!==e.matchKey?null:e.resolvedTarget}function Sr(e){let t=!1,n=gr(e.cfg.channels?.telegram);if(!n)return t;let r=(n,r)=>{let i=xr({rawValue:n[r],matchKey:e.matchKey,resolvedTarget:e.resolvedTarget});i&&(n[r]=i,t=!0)};r(n,`defaultTo`);let i=gr(n.accounts);if(!i)return t;for(let e of Object.keys(i)){let t=gr(i[e]);t&&r(t,`defaultTo`)}return t}async function Cr(e){let t=e.rawTarget.trim();if(!t)return;let n=br({raw:t,resolvedChatId:e.resolvedChatId});if(!n)return;let{matchKey:r,resolvedTarget:i}=n;try{let{snapshot:n,writeOptions:a}=await u(),o=structuredClone(n.config??{});Sr({cfg:o,matchKey:r,resolvedTarget:i})&&(await _(o,a),e.verbose&&W.warn(`resolved Telegram defaultTo target ${t} -> ${i}`))}catch(n){e.verbose&&W.warn(`failed to persist Telegram defaultTo target ${t}: ${String(n)}`)}try{let n=dr(e.cfg.cron?.store),a=await fr(n),o=!1;for(let e of a.jobs){if(e.delivery?.channel!==`telegram`)continue;let t=xr({rawValue:e.delivery.to,matchKey:r,resolvedTarget:i});t&&(e.delivery.to=t,o=!0)}o&&(await mr(n,a),e.verbose&&W.warn(`resolved Telegram cron delivery target ${t} -> ${i}`))}catch(n){e.verbose&&W.warn(`failed to persist Telegram cron target ${t}: ${String(n)}`)}}function wr(e){return e.wantsVoice?mt(e)?{useVoice:!0}:{useVoice:!1,reason:`media is ${e.contentType??`unknown`} (${e.fileName??`unknown`})`}:{useVoice:!1}}function Tr(e){let t=wr(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 Er(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 Dr(e,t,n){if(!e)return[];let r=Math.max(1,Math.floor(n)),i=Er(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 Or=/can't parse entities|parse entities|find end of the entity/i,kr=/400:\s*Bad Request:\s*message thread not found/i,Ar=/400:\s*Bad Request:\s*message is not modified|MESSAGE_NOT_MODIFIED/i,jr=/400: Bad Request: chat not found/i,Mr=x(`telegram/send`),Nr=x(`telegram/diagnostic`),K=new Map;function Pr(t){return fn(`telegram.http`,t)?(t,n)=>{if(!(n instanceof ge))return;let r=e(v(n.error??n));Nr.warn(`telegram http error (${t}): ${r}`)}:()=>{}}function Fr(){return!process.env.VITEST&&!0}function Ir(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 Lr(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 Rr(e){let t=typeof e.config.timeoutSeconds==`number`&&Number.isFinite(e.config.timeoutSeconds)?Math.max(1,Math.floor(e.config.timeoutSeconds)):void 0,n=Fr()?Ir({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?Lr(n,a):a}function zr(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 Br(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&&Mr.warn(`telegram recipient ${r} resolved to numeric chat id ${n}`),n}catch(e){let t=o(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 Br(e.lookupTarget,{api:e.api,verbose:e.verbose});return await Cr({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 Vr(e){return kr.test(o(e))}function Y(e){return Ar.test(o(e))}function Hr(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 Ur(e){if(!e||!Hr(e))return e;let t={...e};return delete t.message_thread_id,Object.keys(t).length>0?t:void 0}function Wr(e){return Or.test(o(e))}function Gr(e){let t=e.messageThreadId==null?e.targetMessageThreadId:e.messageThreadId,n=e.chatType===`direct`?`dm`:`forum`,r=Ft(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 Kr(e){try{return await e.requestHtml(e.label)}catch(t){if(!Wr(t))throw t;return e.verbose&&Mr.warn(`telegram ${e.label} failed with HTML parse error, retrying as plain text: ${o(t)}`),await e.requestPlain(`${e.label}-plain`)}}function X(e){let t=e.cfg??p(),n=l({cfg:t,accountId:e.accountId}),r=zr(e.token,n),i=Rr(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=Pr(e.cfg);return(r,i,a)=>{let o=()=>t(r,i);return(e.useApiErrorLogging===!1?o():hn({operation:i??`request`,fn:o,...a?.shouldLog?{shouldLog:a.shouldLog}:{}})).catch(e=>{throw n(i??`request`,e),e})}}function qr(e,t){return jr.test(o(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(!Hr(e)||!Vr(i))throw i;return n&&Mr.warn(`telegram ${t} failed with message_thread_id, retrying without thread: ${o(i)}`),await r(Ur(e),`${t}-threadless`)}}function Jr(e){return async(t,n)=>e.requestWithDiag(t,n).catch(t=>{throw qr(t,{chatId:e.chatId,input:e.input})})}function Yr(e){return Z({cfg:e.cfg,account:e.account,retry:e.retry,verbose:e.verbose,useApiErrorLogging:e.useApiErrorLogging,shouldRetry:e=>tr(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 Xr(e,t,n={}){let{cfg:a,account:s,api:c}=X(n),l=D(e),u=await q({cfg:a,api:c,lookupTarget:l.chatId,persistTarget:e,verbose:n.verbose}),d=n.mediaUrl?.trim(),f=n.maxBytes??(typeof s.config.mediaMaxMb==`number`?s.config.mediaMaxMb:100)*1024*1024,p=$(n.buttons),m=Gr({targetMessageThreadId:l.messageThreadId,messageThreadId:n.messageThreadId,chatType:l.chatType,replyToMessageId:n.replyToMessageId,quoteText:n.quoteText}),h=Object.keys(m).length>0,g=Jr({requestWithDiag:Yr({cfg:a,account:s,retry:n.retry,verbose:n.verbose}),chatId:u,input:e}),_=n.textMode??`markdown`,v=A({cfg:a,channel:`telegram`,accountId:s.accountId}),y=e=>jn(e,{textMode:_,tableMode:v}),b=s.config.linkPreview??!0?void 0:{is_disabled:!0},x=async(e,t)=>await Q(t,`message`,n.verbose,async(t,r)=>{let i=t?{...t}:{};b&&(i.link_preview_options=b);let a={...i,...n.silent===!0?{disable_notification:!0}:{}},o=Object.keys(a).length>0,s=t=>g(()=>o?c.sendMessage(u,e.plainText,a):c.sendMessage(u,e.plainText),t);if(!e.htmlText)return await s(r);let l=e.htmlText,d={parse_mode:`HTML`,...a};return await Kr({label:r,verbose:n.verbose,requestHtml:e=>g(()=>c.sendMessage(u,l,d),e),requestPlain:s})}),C=e=>h||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 x(a,C(i===e.length-1)),s=G(o,t);H(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=zn(e,4e3)}catch(e){return S(`telegram ${t} failed HTML chunk planning, retrying as plain text: ${o(e)}`),Er(r,4e3).map(e=>({plainText:e}))}let a=Er(r,4e3);if(a.length>i.length)return S(`telegram ${t} plain-text fallback needs more chunks than HTML; sending plain text`),a.map(e=>({plainText:e}));let s=Dr(r,i.length,4e3);return i.map((e,t)=>({htmlText:e,plainText:s[t]??e}))},ee=async(e,t)=>await w(T(e,t),t);if(d){let e=await ie(d,ce({maxBytes:f,mediaLocalRoots:n.mediaLocalRoots})),a=r(e.contentType??void 0),o=i({contentType:e.contentType,fileName:e.fileName}),l=a===`video`&&n.asVideoNote===!0,v=e.fileName??(o?`animation.gif`:ni(a??`document`))??`file`,b=new _e(e.buffer,v),x,C;if(l)x=void 0,C=t.trim()?t:void 0;else{let e=gn(t);x=e.caption,C=e.followUpText}let T=x?y(x):void 0,E=!!C,te={...h?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)=>g(()=>t(e),n)),D=(()=>{if(o)return{label:`animation`,sender:e=>c.sendAnimation(u,b,e)};if(a===`image`)return{label:`photo`,sender:e=>c.sendPhoto(u,b,e)};if(a===`video`)return l?{label:`video_note`,sender:e=>c.sendVideoNote(u,b,e)}:{label:`video`,sender:e=>c.sendVideo(u,b,e)};if(a===`audio`){let{useVoice:t}=Tr({wantsVoice:n.asVoice===!0,contentType:e.contentType,fileName:v,logFallback:S});return t?{label:`voice`,sender:e=>c.sendVoice(u,b,e)}:{label:`audio`,sender:e=>c.sendAudio(u,b,e)}}return{label:`document`,sender:e=>c.sendDocument(u,b,e)}})(),O=await re(D.label,D.sender),k=G(O,`media send`),A=String(O?.chat?.id??u);return H(u,k),j({channel:`telegram`,accountId:s.accountId,direction:`outbound`}),E&&C?_===`html`?{messageId:(await ee(C,`text follow-up send`)).messageId,chatId:A}:{messageId:(await w([{plainText:C,htmlText:y(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=_===`html`?await ee(t,`text send`):await w([{plainText:n.plainText??t,htmlText:y(t)}],`text send`),j({channel:`telegram`,accountId:s.accountId,direction:`outbound`}),E}async function Zr(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=>V(e,{context:`send`})}),c=It(a.messageThreadId??t.messageThreadId);return await s(()=>i.sendChatAction(o,`typing`,c),`typing`),{ok:!0}}async function Qr(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=>V(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 $r(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}),c=J(t);return await Z({cfg:r,account:i,retry:n.retry,verbose:n.verbose,shouldRetry:e=>V(e,{context:`send`})})(()=>a.deleteMessage(s,c),`deleteMessage`),S(`[telegram] Deleted message ${c} from chat ${s}`),{ok:!0}}async function ei(e,t,n,r={}){let{cfg:i,account:a,api:o}=X({...r,cfg:r.cfg}),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}),d=$(n)??{inline_keyboard:[]};try{await u(()=>o.editMessageReplyMarkup(c,l,{reply_markup:d}),`editMessageReplyMarkup`,{shouldLog:e=>!Y(e)})}catch(e){if(!Y(e))throw e}return S(`[telegram] Edited reply markup for message ${l} in chat ${c}`),{ok:!0,messageId:String(l),chatId:c}}async function ti(e,t,n,r={}){let{cfg:i,account:a,api:o}=X({...r,cfg:r.cfg}),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=>V(e,{allowMessageMatch:!0})||rr(e)}),d=(e,t,n)=>u(e,t,n?{shouldLog:n}:void 0),f=jn(n,{textMode:r.textMode??`markdown`,tableMode:A({cfg:i,channel:`telegram`,accountId:a.accountId})}),p=r.buttons!==void 0,m=p?$(r.buttons):void 0,h=p?m??{inline_keyboard:[]}:void 0,g={parse_mode:`HTML`};r.linkPreview===!1&&(g.link_preview_options={is_disabled:!0}),h!==void 0&&(g.reply_markup=h);let _={};r.linkPreview===!1&&(_.link_preview_options={is_disabled:!0}),h!==void 0&&(_.reply_markup=h);try{await Kr({label:`editMessage`,verbose:r.verbose,requestHtml:e=>d(()=>o.editMessageText(c,l,f,g),e,e=>!Y(e)),requestPlain:e=>d(()=>Object.keys(_).length>0?o.editMessageText(c,l,n,_):o.editMessageText(c,l,n),e,e=>!Y(e))})}catch(e){if(!Y(e))throw e}return S(`[telegram] Edited message ${l} in chat ${c}`),{ok:!0,messageId:String(l),chatId:c}}function ni(e){switch(e){case`image`:return`image.jpg`;case`video`:return`video.mp4`;case`audio`:return`audio.ogg`;default:return`file.bin`}}async function ri(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=Gr({targetMessageThreadId:o.messageThreadId,messageThreadId:n.messageThreadId,chatType:o.chatType,replyToMessageId:n.replyToMessageId}),l=Object.keys(c).length>0,u=Jr({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 H(s,f),j({channel:`telegram`,accountId:i.accountId,direction:`outbound`}),{messageId:String(f),chatId:p}}async function ii(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=se(t,{maxOptions:10}),l=Gr({targetMessageThreadId:o.messageThreadId,messageThreadId:n.messageThreadId,chatType:o.chatType,replyToMessageId:n.replyToMessageId}),u=c.options,d=Jr({requestWithDiag:Yr({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 H(s,m),j({channel:`telegram`,accountId:i.accountId,direction:`outbound`}),{messageId:String(m),chatId:h,pollId:g}}async function ai(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=Yr({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{yt as $,Ft as A,Mt as B,hn as C,Bt as D,Ht as E,Kt as F,At as G,Zt as H,Yt as I,jt as J,Ot as K,on as L,Qt as M,Xt as N,Rt as O,sn as P,St as Q,zt as R,gn as S,Wt as T,Lt as U,Ut as V,Pt as W,wt as X,Ct as Y,xt as Z,ir as _,ti as a,ut as at,jn as b,ii as c,xe as ct,Tr as d,bt as et,fr as f,tr as g,V as h,ei as i,ot as it,It as j,Vt as k,ri as l,ye as lt,cr as m,ai as n,lt as nt,Qr as o,dt as ot,dr as p,kt as q,$r as r,at as rt,Xr as s,be as st,$ as t,ht as tt,Zr as u,ve as ut,Gn as v,Gt as w,An as x,Sn as y,Nt as z};
1
+ import{N as e,_ as t,f as n,g as r,h as i,zt as a}from"./paths-cBAF6Bj0.js";import{Ci as o,Ja as s,Jt as c,Ko as l,Q as u,Si as d,Ti as f,Y as p,co as m,lo as h,qr as g,tt as _,wi as v,xi as y}from"./sessions-BwTjGneU.js";import{I as b,O as x,R as S,a as C,b as w}from"./logger-vBDTZWl3.js";import{c as T,d as ee,l as E,o as te}from"./paths-CnHSNSeR.js";import{n as ne}from"./proxy-fetch-CYVChsKE.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-B0_rUT7m.js";import{t as oe}from"./render-CBsnn-2A.js";import{n as se}from"./polls-CBAGZuJ6.js";import{t as ce}from"./load-options-B9Ss5YOO.js";import{i as le,n as j}from"./channel-activity-C01Im_o1.js";import{t as ue}from"./fetch-C-HRWp5R.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(){return h().filter(e=>e.pairing).map(e=>e.id)}function ye(e){return m(e)?.pairing??null}async function be(e,t){try{let n=w(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 xe(e,t){await g(e,t,{mode:384,trailingNewline:!0,ensureDirMode:448})}const Se={retries:{retries:10,factor:2,minTimeout:100,maxTimeout:1e4,randomize:!0},stale:3e4},Ce=new Map;function we(e=process.env){return te(e,T(e,()=>ee(e,de.homedir)))}function Te(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 Ee(e,t=process.env){return M.join(we(t),`${Te(e)}-pairing.json`)}function De(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=Te(e),i=typeof n==`string`?n.trim():``;return i?M.join(we(t),`${r}-${De(i)}-allowFrom.json`):M.join(we(t),`${r}-allowFrom.json`)}async function Oe(e,t){return await be(e,t)}async function F(e,t){await xe(e,t)}async function ke(e){let{value:t}=await Oe(e,{version:1,requests:[]});return Array.isArray(t.requests)?t.requests:[]}async function Ae(e,t){try{await N.promises.access(e)}catch{await F(e,t)}}async function je(e,t,n){return await Ae(e,t),await s(e,Se,async()=>await n())}function Me(e){if(!e)return null;let t=Date.parse(e);return Number.isFinite(t)?t:null}function Ne(e,t){let n=Me(e.createdAt);return n?t-n>36e5:!0}function Pe(e,t){let n=[],r=!1;for(let i of e){if(Ne(i,t)){r=!0;continue}n.push(i)}return{requests:n,removed:r}}function Fe(e){return Me(e.lastSeenAt)??Me(e.createdAt)??0}function Ie(e,t){return t<=0||e.length<=t?{requests:e,removed:!1}:{requests:e.slice().toSorted((e,t)=>Fe(e)-Fe(t)).slice(-t),removed:!0}}function Le(){let e=``;for(let t=0;t<8;t++){let t=pe.randomInt(0,32);e+=`ABCDEFGHJKLMNPQRSTUVWXYZ23456789`[t]}return e}function Re(e){for(let t=0;t<500;t+=1){let t=Le();if(!e.has(t))return t}throw Error(`failed to generate unique pairing code`)}function ze(e){return e?.trim().toLowerCase()||``}function Be(e,t){return t?String(e.meta?.accountId??``).trim().toLowerCase()===t:!0}function Ve(e){return!e||e===`default`}function He(e){return ze(e)||`default`}function Ue(e){return String(e).trim()}function We(e,t){let n=t.trim();if(!n||n===`*`)return``;let r=ye(e),i=r?.normalizeAllowEntry?r.normalizeAllowEntry(n):n;return String(i).trim()}function Ge(e,t){return qe((Array.isArray(t.allowFrom)?t.allowFrom:[]).map(t=>We(e,String(t))).filter(Boolean))}function Ke(e,t){return We(e,Ue(t))}function qe(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 I(e,t){return(await Ze(e,t)).entries}function Je(e){return{exists:e.exists,mtimeMs:e.mtimeMs,size:e.size,entries:e.entries.slice()}}function L(e,t){Ce.set(e,Je(t))}function Ye(e){let t=Ce.get(e.filePath);return!t||t.exists!==e.exists||e.exists&&(t.mtimeMs!==e.mtimeMs||t.size!==e.size)?null:Je(t)}function Xe(e,t){let n=Ye({filePath:e,exists:!!t,mtimeMs:t?.mtimeMs??null,size:t?.size??null});return n?{entries:n.entries,exists:n.exists}:t?null:(L(e,{exists:!1,mtimeMs:null,size:null,entries:[]}),{entries:[],exists:!1})}async function Ze(e,t){let n=null;try{n=await N.promises.stat(t)}catch(e){if(e.code!==`ENOENT`)throw e}let r=Xe(t,n);if(r)return r;if(!n)return{entries:[],exists:!1};let{value:i,exists:a}=await Oe(t,{version:1,allowFrom:[]}),o=Ge(e,i);return L(t,{exists:a,mtimeMs:n.mtimeMs,size:n.size,entries:o}),{entries:o,exists:a}}function Qe(e,t){return $e(e,t).entries}function $e(e,t){let n=null;try{n=N.statSync(t)}catch(e){if(e.code!==`ENOENT`)return{entries:[],exists:!1}}let r=Xe(t,n);if(r)return r;if(!n)return{entries:[],exists:!1};let i=``;try{i=N.readFileSync(t,`utf8`)}catch(e){return e.code,{entries:[],exists:!1}}try{let r=Ge(e,JSON.parse(i));return L(t,{exists:!0,mtimeMs:n.mtimeMs,size:n.size,entries:r}),{entries:r,exists:!0}}catch{return L(t,{exists:!0,mtimeMs:n.mtimeMs,size:n.size,entries:[]}),{entries:[],exists:!0}}}async function et(e){let{value:t}=await Oe(e.filePath,{version:1,allowFrom:[]});return{current:Ge(e.channel,t),normalized:Ke(e.channel,e.entry)||null}}async function tt(e,t){await F(e,{version:1,allowFrom:t});let n=null;try{n=await N.promises.stat(e)}catch{}L(e,{exists:!0,mtimeMs:n?.mtimeMs??null,size:n?.size??null,entries:t.slice()})}async function nt(e){let t=P(e.channel,e.env,e.accountId);return await I(e.channel,t)}function rt(e){let t=P(e.channel,e.env,e.accountId);return Qe(e.channel,t)}async function it(e){let t=e.env??process.env,n=P(e.channel,t,e.accountId);return await je(n,{version:1,allowFrom:[]},async()=>{let{current:t,normalized:r}=await et({channel:e.channel,entry:e.entry,filePath:n});if(!r)return{changed:!1,allowFrom:t};let i=e.apply(t,r);return i?(await tt(n,i),{changed:!0,allowFrom:i}):{changed:!1,allowFrom:t}})}async function at(e,t=process.env,n){let r=He(n);if(!Ve(r))return await nt({channel:e,env:t,accountId:r});let i=await I(e,P(e,t,r)),a=await I(e,P(e,t));return qe([...i,...a])}function ot(e,t=process.env,n){let r=He(n);if(!Ve(r))return rt({channel:e,env:t,accountId:r});let i=Qe(e,P(e,t,r)),a=Qe(e,P(e,t));return qe([...i,...a])}async function st(e){return await it({channel:e.channel,entry:e.entry,accountId:e.accountId,env:e.env,apply:e.apply})}async function ct(e,t){return await st({...e,apply:t})}async function lt(e){return await ct(e,(e,t)=>e.includes(t)?null:[...e,t])}async function ut(e){return await ct(e,(e,t)=>{let n=e.filter(e=>e!==t);return n.length===e.length?null:n})}async function dt(e){let t=e.env??process.env,n=Ee(e.channel,t);return await je(n,{version:1,requests:[]},async()=>{let t=new Date().toISOString(),r=Date.now(),i=Ue(e.id),a=ze(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 ke(n),{requests:c,removed:l}=Pe(s,r);s=c;let u=a,d=s.findIndex(e=>e.id===i?Be(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():``)||Re(f),a={id:i,code:r,createdAt:e?.createdAt??t,lastSeenAt:t,meta:o??e?.meta};s[d]=a;let{requests:c}=Ie(s,3);return await F(n,{version:1,requests:c}),{code:r,created:!1}}let{requests:p,removed:m}=Ie(s,3);if(s=p,s.length>=3)return(l||m)&&await F(n,{version:1,requests:s}),{code:``,created:!1};let h=Re(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 ft=new Set([`.oga`,`.ogg`,`.opus`,`.mp3`,`.m4a`]),pt=new Set([`audio/ogg`,`audio/opus`,`audio/mpeg`,`audio/mp3`,`audio/mp4`,`audio/x-m4a`,`audio/m4a`]);function mt(e){let r=t(e.contentType);if(r&&pt.has(r))return!0;let i=e.fileName?.trim();if(!i)return!1;let a=n(i);return a?ft.has(a):!1}function ht(e){return mt(e)}function gt(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 _t(e){return Number.isFinite(e)?` ±${Math.round(e??0)}m`:``}function vt(e,t){return`${e.toFixed(6)}, ${t.toFixed(6)}`}function yt(e){let t=gt(e),n=vt(t.latitude,t.longitude),r=_t(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 bt(e){let t=gt(e);return{LocationLat:t.latitude,LocationLon:t.longitude,LocationAccuracy:t.accuracy,LocationName:t.name,LocationAddress:t.address,LocationSource:t.source,LocationIsLive:t.isLive}}function xt(e){let t=e.dmPolicy===`allowlist`?[]:e.storeAllowFrom??[];return[...e.allowFrom??[],...t].map(e=>String(e).trim()).filter(Boolean)}function St(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 Ct(...e){for(let t of e)if(t!==void 0)return t}function wt(e,t,n){return e.hasEntries?e.hasWildcard?!0:t?e.entries.includes(t):!1:n}const Tt=new Set,Et=x(`telegram/bot-access`);function Dt(e){if(!process.env.VITEST)for(let t of e)Tt.has(t)||(Tt.add(t),Et.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 Ot=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&&Dt([...new Set(i)]),{entries:r.filter(e=>/^\d+$/.test(e)),hasWildcard:n,hasEntries:t.length>0,invalidEntries:i}},kt=e=>Ot(xt(e)),At=e=>{let{allow:t,senderId:n}=e;return wt(t,n,!0)},jt=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 Mt(e){let t=a(e.accountId),n=Pt({isGroup:e.isGroup??!1,isForum:e.isForum,messageThreadId:e.messageThreadId}),r=n.scope===`forum`?n.id:void 0,i=n.scope===`dm`?n.id:void 0,o=r??i,s=await at(`telegram`,process.env,t).catch(()=>[]),{groupConfig:c,topicConfig:l}=e.resolveTelegramGroupConfig(e.chatId,o),u=Ct(l?.allowFrom,c?.allowFrom);return{resolvedThreadId:r,dmThreadId:i,storeAllowFrom:s,groupConfig:c,topicConfig:l,groupAllowOverride:u,effectiveGroupAllow:Ot(u??e.groupAllowFrom),hasGroupAllowOverride:u!==void 0}}function Nt(e){if(e.isForum)return e.messageThreadId==null?1:e.messageThreadId}function Pt(e){return e.isGroup?{id:Nt({isForum:e.isForum,messageThreadId:e.messageThreadId}),scope:e.isForum?`forum`:`none`}:e.messageThreadId==null?{scope:`dm`}:{id:e.messageThreadId,scope:`dm`}}function Ft(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 It(e){if(e!=null)return{message_thread_id:Math.trunc(e)}}function Lt(e){return c(e)}function Rt(e,t){return t==null?String(e):`${e}:topic:${t}`}function zt(e){return(e.senderId==null?``:String(e.senderId).trim())||String(e.chatId)}function Bt(e,t){return`telegram:group:${Rt(e,t)}`}function Vt(e){if(!(!e.isGroup||e.resolvedThreadId==null))return{kind:`group`,id:String(e.chatId)}}function Ht(e){return[e.from?.first_name,e.from?.last_name].filter(Boolean).join(` `).trim()||e.from?.username||void 0}function Ut(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 Wt(e,t){let n=Ht(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 Gt(e,t,n){let r=e.chat?.title,i=n==null?``:` topic:${n}`;return r?`${r} id:${t}${i}`:`group:${t}${i}`}function Kt(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 Jt(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 Yt(e,t){let{text:n,entities:r}=Kt(e),i=`@${t}`.toLowerCase();if(Jt(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 Xt(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 Zt(e){if(!e)return;let t=Number(e);if(Number.isFinite(t))return t}function Qt(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=Ut(o)??``,!i))){let e=sn(o);e&&(i=yt(e))}if(!i)return null;let s=(o?Ht(o):void 0)??`unknown sender`,c=o?.forward_origin?an(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 $t(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 en(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 tn(e){let{display:t,name:n,username:r,id:i}=$t(e.user);return t?{from:t,date:e.date,fromType:e.type,fromId:i,fromUsername:r,fromTitle:n}:null}function nn(e){let t=e.name?.trim();return t?{from:t,date:e.date,fromType:e.type,fromTitle:t}:null}function rn(e){let t=e.type===`channel`?`channel`:`chat`,{display:n,title:r,username:i,id:a}=en(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 an(e){switch(e.type){case`user`:return tn({user:e.sender_user,date:e.date,type:`user`});case`hidden_user`:return nn({name:e.sender_user_name,date:e.date,type:`hidden_user`});case`chat`:return rn({chat:e.sender_chat,date:e.date,type:`chat`,signature:e.author_signature});case`channel`:return rn({chat:e.chat,date:e.date,type:`channel`,signature:e.author_signature,messageId:e.message_id});default:return null}}function on(e){return e.forward_origin?an(e.forward_origin):null}function sn(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 R(e){return e.trim().toLowerCase()}function cn(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(R).filter(Boolean)}function ln(e){let t=new Set,n=[];for(let r of e){let e=R(r);!e||t.has(e)||(t.add(e),n.push(e))}return n}function un(e,t=process.env){let n=Array.isArray(e?.diagnostics?.flags)?e?.diagnostics?.flags:[],r=cn(t.OPENCLAW_DIAGNOSTICS);return ln([...n,...r])}function dn(e,t){let n=R(e);if(!n)return!1;for(let e of t){let t=R(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 fn(e,t,n=process.env){return dn(e,un(t,n))}const pn=x(`telegram/api`);function mn(e,t){return t||(e?.error?e.error:e=>pn.error(e))}async function hn({operation:e,fn:t,runtime:n,logger:r,shouldLog:i}){try{return await t()}catch(t){if(!i||i(t)){let i=o(t);mn(n,r)(b(`telegram ${e} failed: ${i}`))}throw t}}function gn(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 z(e){return e.replace(/&/g,`&amp;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`)}function _n(e){return z(e).replace(/"/g,`&quot;`)}const vn=new Set([`md`,`go`,`py`,`pl`,`sh`,`am`,`at`,`be`,`cc`]);function yn(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(!vn.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 bn(e,t){let n=e.href.trim();if(!n||e.start===e.end||yn(n,t.slice(e.start,e.end)))return null;let r=_n(n);return{start:e.start,end:e.end,open:`<a href="${r}">`,close:`</a>`}}function xn(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:z,buildLink:bn})}function Sn(e,t={}){let n=xn(k(e??``,{linkify:!0,enableSpoilers:!0,headingStyle:`none`,blockquotePrefix:``,tableMode:t.tableMode}));return t.wrapFileRefs===!1?n:An(n)}function Cn(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}const wn=Array.from(vn).map(Cn).join(`|`),Tn=/<a\s+href="https?:\/\/([^"]+)"[^>]*>\1<\/a>/gi,En=RegExp(`(^|[^a-zA-Z0-9_\\-/])([a-zA-Z0-9_.\\-./]+\\.(?:${wn}))(?=$|[^a-zA-Z0-9_\\-/])`,`gi`),Dn=RegExp(`([^a-zA-Z0-9]|^)([A-Za-z]\\.(?:${wn}))(?=[^a-zA-Z0-9/]|$)`,`g`),B=/(<\/?)([a-zA-Z][a-zA-Z0-9-]*)\b[^>]*?>/gi;function On(e,t,n){return n.startsWith(`//`)||/https?:\/\/$/i.test(t)?e:`${t}<code>${z(n)}</code>`}function kn(e,t,n,r){return!e||t>0||n>0||r>0?e:e.replace(En,On).replace(Dn,(e,t,n)=>t===`>`?e:`${t}<code>${z(n)}</code>`)}function An(e){Tn.lastIndex=0;let t=e.replace(Tn,(e,t)=>yn(`http://${t}`,t)?`<code>${z(t)}</code>`:e),n=0,r=0,i=0,a=``,o=0;B.lastIndex=0;let s;for(;(s=B.exec(t))!==null;){let e=s.index,c=B.lastIndex,l=s[1]===`</`,u=s[2].toLowerCase(),d=t.slice(o,e);a+=kn(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+=kn(c,n,r,i),a}function jn(e,t={}){return(t.textMode??`markdown`)===`html`?e:Sn(e,{tableMode:t.tableMode})}const Mn=new Set([`br`]);function Nn(e){return e.map(e=>e.openTag).join(``)}function Pn(e){return e.slice().toReversed().map(e=>e.closeTag).join(``)}function Fn(e){return e.reduce((e,t)=>e+t.closeTag.length,0)}function In(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 Ln(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=In(e,r);return i===-1||i<n?n:r}function Rn(e,t){for(let n=e.length-1;n>=0;--n)if(e[n]?.name===t){e.splice(n,1);return}}function zn(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=Nn(i),o=!1},c=()=>{o&&(r.push(`${a}${Pn(i)}`),s())},l=e=>{let t=e;for(;t.length>0;){let e=n-a.length-Fn(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=Ln(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(),B.lastIndex=0;let u=0,d;for(;(d=B.exec(e))!==null;){let t=d.index,r=B.lastIndex;l(e.slice(u,t));let s=d[0],f=d[1]===`</`,p=d[2].toLowerCase(),m=!f&&(Mn.has(p)||s.trimEnd().endsWith(`/>`));if(!f){let e=m?0:`</${p}>`.length;o&&a.length+s.length+Fn(i)+e>n&&c()}a+=s,m&&(o=!0),f?Rn(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 Bn(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=Un(e,Number.isFinite(a)&&a>0?a:Math.max(1,Math.floor(r/2)));return o.length>1?o:Un(e,Math.max(1,Math.floor(r/2)))}function Vn(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 Hn(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 Un(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:Vn(e.styles,i,t),links:Hn(e.links,i,t)}),i=t}return r}function Wn(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=An(xn(e));if(t.length<=n||e.text.length<=1){i.push({html:t,text:e.text});continue}let a=Bn(e,n,t.length);if(a.length<=1){i.push({html:t,text:e.text});continue}r.unshift(...a)}return i}function Gn(e,t,n={}){return Wn(k(e??``,{linkify:!0,enableSpoilers:!0,headingStyle:`none`,blockquotePrefix:``,tableMode:n.tableMode}),t)}const Kn=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`]),qn=new Set([`ECONNREFUSED`,`ENOTFOUND`,`EAI_AGAIN`,`ENETUNREACH`,`EHOSTUNREACH`]),Jn=new Set([`AbortError`,`TimeoutError`,`ConnectTimeoutError`,`HeadersTimeoutError`,`BodyTimeoutError`]),Yn=new Set([`fetch failed`,`typeerror: fetch failed`]),Xn=/^network request(?:\s+for\s+["']?[^"']+["']?)?\s+failed\s+after\b.*[!.]?$/i,Zn=[`undici`,`network error`,`network request`,`client network socket disconnected`,`socket hang up`,`getaddrinfo`,`timeout`,`timed out`];function Qn(e){return y(e,e=>{let t=[e.cause,e.reason];return Array.isArray(e.errors)&&t.push(...e.errors),f(e)===`HttpError`&&t.push(e.error),t})}function $n(e){return e?.trim().toUpperCase()??``}function er(e){let t=d(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 tr(e){if(!e)return!1;for(let t of Qn(e)){let e=$n(er(t));if(e&&qn.has(e))return!0}return!1}function nr(e,t){for(let n of Qn(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 rr(e){return nr(e,e=>e>=500)}function ir(e){return nr(e,e=>e>=400&&e<500)}function V(e,t={}){if(!e)return!1;let n=typeof t.allowMessageMatch==`boolean`?t.allowMessageMatch:t.context!==`send`;for(let t of Qn(e)){let e=$n(er(t));if(e&&Kn.has(e))return!0;let r=f(t);if(r&&Jn.has(r))return!0;let i=o(t).trim().toLowerCase();if(i&&Yn.has(i)||i&&Xn.test(i)||n&&i&&Zn.some(e=>i.includes(e)))return!0}return!1}const ar=new Map;function or(e){return String(e)}function sr(e){let t=Date.now();for(let[n,r]of e.timestamps)t-r>864e5&&e.timestamps.delete(n)}function H(e,t){let n=or(e),r=ar.get(n);r||(r={timestamps:new Map},ar.set(n,r)),r.timestamps.set(t,Date.now()),r.timestamps.size>100&&sr(r)}function cr(e,t){let n=or(e),r=ar.get(n);return r?(sr(r),r.timestamps.has(t)):!1}const lr=M.join(C,`cron`),ur=M.join(lr,`jobs.json`),U=new Map;function dr(e){if(e?.trim()){let t=e.trim();return t.startsWith(`~`)?M.resolve(E(t)):M.resolve(t)}return ur}async function fr(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 U.set(e,JSON.stringify(i,null,2)),i}catch(t){if(t?.code===`ENOENT`)return U.delete(e),{version:1,jobs:[]};throw t}}async function pr(e){await N.promises.chmod(e,384).catch(()=>void 0)}async function mr(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=U.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){U.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 pr(s),o!==null&&!n?.skipBackup)try{let t=`${e}.bak`;await N.promises.copyFile(e,t),await pr(t)}catch{}await hr(s,e),await pr(e),U.set(e,i)}async function hr(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 W=x(`telegram/target-writeback`);function gr(e){return!e||typeof e!=`object`||Array.isArray(e)?null:e}function _r(e){let t=re(e);if(t)return t.startsWith(`@`)?t.toLowerCase():t}function vr(e){let t=D(e),n=_r(t.chatId);if(n)return`${n}|${t.messageThreadId==null?``:String(t.messageThreadId)}`}function yr(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 br(e){let t=D(e.raw);if(O(t.chatId))return null;let n=_r(t.chatId);return n?{matchKey:`${n}|${t.messageThreadId==null?``:String(t.messageThreadId)}`,resolvedTarget:yr({raw:e.raw,parsed:t,resolvedChatId:e.resolvedChatId})}:null}function xr(e){if(typeof e.rawValue!=`string`&&typeof e.rawValue!=`number`)return null;let t=String(e.rawValue).trim();return!t||vr(t)!==e.matchKey?null:e.resolvedTarget}function Sr(e){let t=!1,n=gr(e.cfg.channels?.telegram);if(!n)return t;let r=(n,r)=>{let i=xr({rawValue:n[r],matchKey:e.matchKey,resolvedTarget:e.resolvedTarget});i&&(n[r]=i,t=!0)};r(n,`defaultTo`);let i=gr(n.accounts);if(!i)return t;for(let e of Object.keys(i)){let t=gr(i[e]);t&&r(t,`defaultTo`)}return t}async function Cr(e){let t=e.rawTarget.trim();if(!t)return;let n=br({raw:t,resolvedChatId:e.resolvedChatId});if(!n)return;let{matchKey:r,resolvedTarget:i}=n;try{let{snapshot:n,writeOptions:a}=await u(),o=structuredClone(n.config??{});Sr({cfg:o,matchKey:r,resolvedTarget:i})&&(await _(o,a),e.verbose&&W.warn(`resolved Telegram defaultTo target ${t} -> ${i}`))}catch(n){e.verbose&&W.warn(`failed to persist Telegram defaultTo target ${t}: ${String(n)}`)}try{let n=dr(e.cfg.cron?.store),a=await fr(n),o=!1;for(let e of a.jobs){if(e.delivery?.channel!==`telegram`)continue;let t=xr({rawValue:e.delivery.to,matchKey:r,resolvedTarget:i});t&&(e.delivery.to=t,o=!0)}o&&(await mr(n,a),e.verbose&&W.warn(`resolved Telegram cron delivery target ${t} -> ${i}`))}catch(n){e.verbose&&W.warn(`failed to persist Telegram cron target ${t}: ${String(n)}`)}}function wr(e){return e.wantsVoice?mt(e)?{useVoice:!0}:{useVoice:!1,reason:`media is ${e.contentType??`unknown`} (${e.fileName??`unknown`})`}:{useVoice:!1}}function Tr(e){let t=wr(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 Er(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 Dr(e,t,n){if(!e)return[];let r=Math.max(1,Math.floor(n)),i=Er(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 Or=/can't parse entities|parse entities|find end of the entity/i,kr=/400:\s*Bad Request:\s*message thread not found/i,Ar=/400:\s*Bad Request:\s*message is not modified|MESSAGE_NOT_MODIFIED/i,jr=/400: Bad Request: chat not found/i,Mr=x(`telegram/send`),Nr=x(`telegram/diagnostic`),K=new Map;function Pr(t){return fn(`telegram.http`,t)?(t,n)=>{if(!(n instanceof ge))return;let r=e(v(n.error??n));Nr.warn(`telegram http error (${t}): ${r}`)}:()=>{}}function Fr(){return!process.env.VITEST&&!0}function Ir(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 Lr(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 Rr(e){let t=typeof e.config.timeoutSeconds==`number`&&Number.isFinite(e.config.timeoutSeconds)?Math.max(1,Math.floor(e.config.timeoutSeconds)):void 0,n=Fr()?Ir({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?Lr(n,a):a}function zr(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 Br(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&&Mr.warn(`telegram recipient ${r} resolved to numeric chat id ${n}`),n}catch(e){let t=o(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 Br(e.lookupTarget,{api:e.api,verbose:e.verbose});return await Cr({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 Vr(e){return kr.test(o(e))}function Y(e){return Ar.test(o(e))}function Hr(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 Ur(e){if(!e||!Hr(e))return e;let t={...e};return delete t.message_thread_id,Object.keys(t).length>0?t:void 0}function Wr(e){return Or.test(o(e))}function Gr(e){let t=e.messageThreadId==null?e.targetMessageThreadId:e.messageThreadId,n=e.chatType===`direct`?`dm`:`forum`,r=Ft(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 Kr(e){try{return await e.requestHtml(e.label)}catch(t){if(!Wr(t))throw t;return e.verbose&&Mr.warn(`telegram ${e.label} failed with HTML parse error, retrying as plain text: ${o(t)}`),await e.requestPlain(`${e.label}-plain`)}}function X(e){let t=e.cfg??p(),n=l({cfg:t,accountId:e.accountId}),r=zr(e.token,n),i=Rr(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=Pr(e.cfg);return(r,i,a)=>{let o=()=>t(r,i);return(e.useApiErrorLogging===!1?o():hn({operation:i??`request`,fn:o,...a?.shouldLog?{shouldLog:a.shouldLog}:{}})).catch(e=>{throw n(i??`request`,e),e})}}function qr(e,t){return jr.test(o(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(!Hr(e)||!Vr(i))throw i;return n&&Mr.warn(`telegram ${t} failed with message_thread_id, retrying without thread: ${o(i)}`),await r(Ur(e),`${t}-threadless`)}}function Jr(e){return async(t,n)=>e.requestWithDiag(t,n).catch(t=>{throw qr(t,{chatId:e.chatId,input:e.input})})}function Yr(e){return Z({cfg:e.cfg,account:e.account,retry:e.retry,verbose:e.verbose,useApiErrorLogging:e.useApiErrorLogging,shouldRetry:e=>tr(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 Xr(e,t,n={}){let{cfg:a,account:s,api:c}=X(n),l=D(e),u=await q({cfg:a,api:c,lookupTarget:l.chatId,persistTarget:e,verbose:n.verbose}),d=n.mediaUrl?.trim(),f=n.maxBytes??(typeof s.config.mediaMaxMb==`number`?s.config.mediaMaxMb:100)*1024*1024,p=$(n.buttons),m=Gr({targetMessageThreadId:l.messageThreadId,messageThreadId:n.messageThreadId,chatType:l.chatType,replyToMessageId:n.replyToMessageId,quoteText:n.quoteText}),h=Object.keys(m).length>0,g=Jr({requestWithDiag:Yr({cfg:a,account:s,retry:n.retry,verbose:n.verbose}),chatId:u,input:e}),_=n.textMode??`markdown`,v=A({cfg:a,channel:`telegram`,accountId:s.accountId}),y=e=>jn(e,{textMode:_,tableMode:v}),b=s.config.linkPreview??!0?void 0:{is_disabled:!0},x=async(e,t)=>await Q(t,`message`,n.verbose,async(t,r)=>{let i=t?{...t}:{};b&&(i.link_preview_options=b);let a={...i,...n.silent===!0?{disable_notification:!0}:{}},o=Object.keys(a).length>0,s=t=>g(()=>o?c.sendMessage(u,e.plainText,a):c.sendMessage(u,e.plainText),t);if(!e.htmlText)return await s(r);let l=e.htmlText,d={parse_mode:`HTML`,...a};return await Kr({label:r,verbose:n.verbose,requestHtml:e=>g(()=>c.sendMessage(u,l,d),e),requestPlain:s})}),C=e=>h||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 x(a,C(i===e.length-1)),s=G(o,t);H(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=zn(e,4e3)}catch(e){return S(`telegram ${t} failed HTML chunk planning, retrying as plain text: ${o(e)}`),Er(r,4e3).map(e=>({plainText:e}))}let a=Er(r,4e3);if(a.length>i.length)return S(`telegram ${t} plain-text fallback needs more chunks than HTML; sending plain text`),a.map(e=>({plainText:e}));let s=Dr(r,i.length,4e3);return i.map((e,t)=>({htmlText:e,plainText:s[t]??e}))},ee=async(e,t)=>await w(T(e,t),t);if(d){let e=await ie(d,ce({maxBytes:f,mediaLocalRoots:n.mediaLocalRoots})),a=r(e.contentType??void 0),o=i({contentType:e.contentType,fileName:e.fileName}),l=a===`video`&&n.asVideoNote===!0,v=e.fileName??(o?`animation.gif`:ni(a??`document`))??`file`,b=new _e(e.buffer,v),x,C;if(l)x=void 0,C=t.trim()?t:void 0;else{let e=gn(t);x=e.caption,C=e.followUpText}let T=x?y(x):void 0,E=!!C,te={...h?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)=>g(()=>t(e),n)),D=(()=>{if(o)return{label:`animation`,sender:e=>c.sendAnimation(u,b,e)};if(a===`image`)return{label:`photo`,sender:e=>c.sendPhoto(u,b,e)};if(a===`video`)return l?{label:`video_note`,sender:e=>c.sendVideoNote(u,b,e)}:{label:`video`,sender:e=>c.sendVideo(u,b,e)};if(a===`audio`){let{useVoice:t}=Tr({wantsVoice:n.asVoice===!0,contentType:e.contentType,fileName:v,logFallback:S});return t?{label:`voice`,sender:e=>c.sendVoice(u,b,e)}:{label:`audio`,sender:e=>c.sendAudio(u,b,e)}}return{label:`document`,sender:e=>c.sendDocument(u,b,e)}})(),O=await re(D.label,D.sender),k=G(O,`media send`),A=String(O?.chat?.id??u);return H(u,k),j({channel:`telegram`,accountId:s.accountId,direction:`outbound`}),E&&C?_===`html`?{messageId:(await ee(C,`text follow-up send`)).messageId,chatId:A}:{messageId:(await w([{plainText:C,htmlText:y(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=_===`html`?await ee(t,`text send`):await w([{plainText:n.plainText??t,htmlText:y(t)}],`text send`),j({channel:`telegram`,accountId:s.accountId,direction:`outbound`}),E}async function Zr(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=>V(e,{context:`send`})}),c=It(a.messageThreadId??t.messageThreadId);return await s(()=>i.sendChatAction(o,`typing`,c),`typing`),{ok:!0}}async function Qr(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=>V(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 $r(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}),c=J(t);return await Z({cfg:r,account:i,retry:n.retry,verbose:n.verbose,shouldRetry:e=>V(e,{context:`send`})})(()=>a.deleteMessage(s,c),`deleteMessage`),S(`[telegram] Deleted message ${c} from chat ${s}`),{ok:!0}}async function ei(e,t,n,r={}){let{cfg:i,account:a,api:o}=X({...r,cfg:r.cfg}),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}),d=$(n)??{inline_keyboard:[]};try{await u(()=>o.editMessageReplyMarkup(c,l,{reply_markup:d}),`editMessageReplyMarkup`,{shouldLog:e=>!Y(e)})}catch(e){if(!Y(e))throw e}return S(`[telegram] Edited reply markup for message ${l} in chat ${c}`),{ok:!0,messageId:String(l),chatId:c}}async function ti(e,t,n,r={}){let{cfg:i,account:a,api:o}=X({...r,cfg:r.cfg}),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=>V(e,{allowMessageMatch:!0})||rr(e)}),d=(e,t,n)=>u(e,t,n?{shouldLog:n}:void 0),f=jn(n,{textMode:r.textMode??`markdown`,tableMode:A({cfg:i,channel:`telegram`,accountId:a.accountId})}),p=r.buttons!==void 0,m=p?$(r.buttons):void 0,h=p?m??{inline_keyboard:[]}:void 0,g={parse_mode:`HTML`};r.linkPreview===!1&&(g.link_preview_options={is_disabled:!0}),h!==void 0&&(g.reply_markup=h);let _={};r.linkPreview===!1&&(_.link_preview_options={is_disabled:!0}),h!==void 0&&(_.reply_markup=h);try{await Kr({label:`editMessage`,verbose:r.verbose,requestHtml:e=>d(()=>o.editMessageText(c,l,f,g),e,e=>!Y(e)),requestPlain:e=>d(()=>Object.keys(_).length>0?o.editMessageText(c,l,n,_):o.editMessageText(c,l,n),e,e=>!Y(e))})}catch(e){if(!Y(e))throw e}return S(`[telegram] Edited message ${l} in chat ${c}`),{ok:!0,messageId:String(l),chatId:c}}function ni(e){switch(e){case`image`:return`image.jpg`;case`video`:return`video.mp4`;case`audio`:return`audio.ogg`;default:return`file.bin`}}async function ri(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=Gr({targetMessageThreadId:o.messageThreadId,messageThreadId:n.messageThreadId,chatType:o.chatType,replyToMessageId:n.replyToMessageId}),l=Object.keys(c).length>0,u=Jr({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 H(s,f),j({channel:`telegram`,accountId:i.accountId,direction:`outbound`}),{messageId:String(f),chatId:p}}async function ii(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=se(t,{maxOptions:10}),l=Gr({targetMessageThreadId:o.messageThreadId,messageThreadId:n.messageThreadId,chatType:o.chatType,replyToMessageId:n.replyToMessageId}),u=c.options,d=Jr({requestWithDiag:Yr({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 H(s,m),j({channel:`telegram`,accountId:i.accountId,direction:`outbound`}),{messageId:String(m),chatId:h,pollId:g}}async function ai(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=Yr({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{yt as $,Ft as A,Mt as B,hn as C,Bt as D,Ht as E,Kt as F,At as G,Zt as H,Yt as I,jt as J,Ot as K,on as L,Qt as M,Xt as N,Rt as O,sn as P,St as Q,zt as R,gn as S,Wt as T,Lt as U,Ut as V,Pt as W,wt as X,Ct as Y,xt as Z,ir as _,ti as a,ut as at,jn as b,ii as c,xe as ct,Tr as d,bt as et,fr as f,tr as g,V as h,ei as i,ot as it,It as j,Vt as k,ri as l,ye as lt,cr as m,ai as n,lt as nt,Qr as o,dt as ot,dr as p,kt as q,$r as r,at as rt,Xr as s,be as st,$ as t,ht as tt,Zr as u,ve as ut,Gn as v,Gt as w,An as x,Sn as y,Nt as z};
@@ -3,4 +3,4 @@ import{g as e}from"./paths-piJASC5k.js";import{Kn as t,ss as n,xi as r}from"./mo
3
3
  `);continue}if(e.startsWith(`:`)){n=s.indexOf(`
4
4
  `);continue}let[t,...r]=e.split(`:`),i=t.trim(),a=r.join(`:`),o=a.startsWith(` `)?a.slice(1):a;i===`event`?l.event=o:i===`data`?l.data=l.data?`${l.data}\n${o}`:o:i===`id`&&(l.id=o),n=s.indexOf(`
5
5
  `)}}u()}function _(e,t){let i=!!e.baseUrl?.trim(),a=!!e.account?.trim(),o=t||(!i||!a?n({cfg:r(),accountId:e.accountId}):void 0),s=e.baseUrl?.trim()||o?.baseUrl;if(!s)throw Error(`Signal base URL is required`);return{baseUrl:s,account:e.account?.trim()||o?.config.account?.trim()}}function v(e){let t=e.toLowerCase();return t=t.replace(/^https?:\/\//,``),t=t.replace(/^www\./,``),t=t.replace(/\/+$/,``),t}function y(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 b(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 x(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 S(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 C(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=v(o),i=n;if(n.startsWith(`mailto:`)&&(i=n.slice(7)),t!==v(i)){let t=` (${n})`;r+=t,a.push({pos:e.end,length:t.length})}}i=e.end}r+=t.slice(i);let o=S(e.styles.map(e=>{let t=y(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:b(x(o.map(e=>({start:e.start,length:e.end-e.start,style:e.style})),c))}}function w(e,t={}){return C(o(e??``,{linkify:!0,enableSpoilers:!0,headingStyle:`bold`,blockquotePrefix:`> `,tableMode:t.tableMode}))}function T(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 E(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:b(T(r,o,o+e.length))});break}let e=D(a.slice(0,t));e<=0&&(e=t);let s=a.slice(0,e).trimEnd();s.length>0&&i.push({text:s,styles:b(T(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 D(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 O(e,t,n={}){let r=s(o(e??``,{linkify:!0,enableSpoilers:!0,headingStyle:`bold`,blockquotePrefix:`> `,tableMode:n.tableMode}),t),i=[];for(let e of r){let n=C(e);n.text.length>t?i.push(...E(n,t)):i.push(n)}return i}function k(e){let t=e.trim();if(!t)throw Error(`Signal recipient is required`);t.toLowerCase().startsWith(`signal:`)&&(t=t.slice(7).trim());let n=t.toLowerCase();return n.startsWith(`group:`)?{type:`group`,groupId:t.slice(6).trim()}:n.startsWith(`username:`)?{type:`username`,username:t.slice(9).trim()}:n.startsWith(`u:`)?{type:`username`,username:t.trim()}:{type:`recipient`,recipient:t}}function A(e,t){return e.type===`recipient`?t.recipient?{recipient:[e.recipient]}:null:e.type===`group`?t.group?{groupId:e.groupId}:null:e.type===`username`&&t.username?{username:[e.username]}:null}async function j(t,i,o={}){let s=o.cfg??r(),c=n({cfg:s,accountId:o.accountId}),{baseUrl:u,account:d}=_(o,c),f=k(t),p=i??``,h=!1,g=[],v=o.textMode??`markdown`,y=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,b;if(o.mediaUrl?.trim()){let t=await l(o.mediaUrl.trim(),y,{localRoots:o.mediaLocalRoots});b=[t.path];let n=e(t.contentType??void 0);!p&&n&&(p=n===`image`?`<media:image>`:`<media:${n}>`,h=!0)}if(p.trim()&&!h)if(v===`plain`)g=o.textStyles??[];else{let e=a({cfg:s,channel:`signal`,accountId:c.accountId}),t=w(p,{tableMode:e});p=t.text,g=t.styles}if(!p.trim()&&(!b||b.length===0))throw Error(`Signal send requires text or media`);let x={message:p};g.length>0&&(x[`text-style`]=g.map(e=>`${e.start}:${e.length}:${e.style}`)),d&&(x.account=d),b&&b.length>0&&(x.attachments=b);let S=A(f,{recipient:!0,group:!0,username:!0});if(!S)throw Error(`Signal recipient is required`);Object.assign(x,S);let C=(await m(`send`,x,{baseUrl:u,timeoutMs:o.timeoutMs}))?.timestamp;return{messageId:C?String(C):`unknown`,timestamp:C}}async function M(e,t={}){let{baseUrl:n,account:r}=_(t),i=A(k(e),{recipient:!0,group:!0});if(!i)return!1;let a={...i};return r&&(a.account=r),t.stop&&(a.stop=!0),await m(`sendTyping`,a,{baseUrl:n,timeoutMs:t.timeoutMs}),!0}async function N(e,t,n={}){if(!Number.isFinite(t)||t<=0)return!1;let{baseUrl:r,account:i}=_(n),a=A(k(e),{recipient:!0});if(!a)return!1;let o={...a,targetTimestamp:t,type:n.type??`read`};return i&&(o.account=i),await m(`sendReceipt`,o,{baseUrl:r,timeoutMs:n.timeoutMs}),!0}export{_ as a,g as c,O as i,N as n,h as o,M as r,m as s,j as t};
6
+ `?t=i:/\s/.test(a)&&(n=i))}return t>0?t:n}function O(e,t,n={}){let r=s(o(e??``,{linkify:!0,enableSpoilers:!0,headingStyle:`bold`,blockquotePrefix:`> `,tableMode:n.tableMode}),t),i=[];for(let e of r){let n=C(e);n.text.length>t?i.push(...E(n,t)):i.push(n)}return i}function k(e){let t=e.trim();if(!t)throw Error(`Signal recipient is required`);t.toLowerCase().startsWith(`signal:`)&&(t=t.slice(7).trim());let n=t.toLowerCase();return n.startsWith(`group:`)?{type:`group`,groupId:t.slice(6).trim()}:n.startsWith(`username:`)?{type:`username`,username:t.slice(9).trim()}:n.startsWith(`u:`)?{type:`username`,username:t.trim()}:{type:`recipient`,recipient:t}}function A(e,t){return e.type===`recipient`?t.recipient?{recipient:[e.recipient]}:null:e.type===`group`?t.group?{groupId:e.groupId}:null:e.type===`username`&&t.username?{username:[e.username]}:null}async function j(t,i,o={}){let s=o.cfg??r(),c=n({cfg:s,accountId:o.accountId}),{baseUrl:u,account:d}=_(o,c),f=k(t),p=i??``,h=!1,g=[],v=o.textMode??`markdown`,y=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,b;if(o.mediaUrl?.trim()){let t=await l(o.mediaUrl.trim(),y,{localRoots:o.mediaLocalRoots});b=[t.path];let n=e(t.contentType??void 0);!p&&n&&(p=n===`image`?`<media:image>`:`<media:${n}>`,h=!0)}if(p.trim()&&!h)if(v===`plain`)g=o.textStyles??[];else{let e=a({cfg:s,channel:`signal`,accountId:c.accountId}),t=w(p,{tableMode:e});p=t.text,g=t.styles}if(!p.trim()&&(!b||b.length===0))throw Error(`Signal send requires text or media`);let x={message:p};g.length>0&&(x[`text-style`]=g.map(e=>`${e.start}:${e.length}:${e.style}`)),d&&(x.account=d),b&&b.length>0&&(x.attachments=b);let S=A(f,{recipient:!0,group:!0,username:!0});if(!S)throw Error(`Signal recipient is required`);Object.assign(x,S);let C=(await m(`send`,x,{baseUrl:u,timeoutMs:o.timeoutMs}))?.timestamp;return{messageId:C?String(C):`unknown`,timestamp:C}}async function M(e,t={}){let{baseUrl:n,account:r}=_(t),i=A(k(e),{recipient:!0,group:!0});if(!i)return!1;let a={...i};return r&&(a.account=r),t.stop&&(a.stop=!0),await m(`sendTyping`,a,{baseUrl:n,timeoutMs:t.timeoutMs}),!0}async function N(e,t,n={}){if(!Number.isFinite(t)||t<=0)return!1;let{baseUrl:r,account:i}=_(n),a=A(k(e),{recipient:!0});if(!a)return!1;let o={...a,targetTimestamp:t,type:n.type??`read`};return i&&(o.account=i),await m(`sendReceipt`,o,{baseUrl:r,timeoutMs:n.timeoutMs}),!0}export{_ as a,g as c,O as i,N as n,h as o,M as r,m as s,j as t};