@qqbrowser/openclaw-qbot 0.0.139 → 0.0.142

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 (1565) hide show
  1. package/dist/account-lookup-CW-_CL7y.js +1 -0
  2. package/dist/acp-cli-BaslDuk6.js +1 -0
  3. package/dist/acp-cli-f5-uI85a.js +1 -0
  4. package/dist/active-listener-Cce5tcPa.js +1 -0
  5. package/dist/active-listener-D8VOdVx3.js +1 -0
  6. package/dist/active-listener-DeKRt_UV.js +1 -0
  7. package/dist/active-listener-Dle9QX40.js +1 -0
  8. package/dist/agent-scope-DAWJwFfl.js +1 -0
  9. package/dist/agent-scope-DXZc3eNT.js +1 -0
  10. package/dist/agents-Bpp_F5In.js +1 -0
  11. package/dist/agents.config-B6LRG9eP.js +1 -0
  12. package/dist/agents.config-DfIJAGcd.js +1 -0
  13. package/dist/allow-from-B6dI7oz8.js +1 -0
  14. package/dist/allow-from-DEeVIPKS.js +1 -0
  15. package/dist/api-BeG0ObSq.js +1 -0
  16. package/dist/api-Dx8x1KTs.js +1 -0
  17. package/dist/api-key-rotation-BRt-vnRV.js +1 -0
  18. package/dist/api-key-rotation-CCH1wYVU.js +1 -0
  19. package/dist/api-key-rotation-D0QU-kQ9.js +1 -0
  20. package/dist/api-key-rotation-Di6QgXx7.js +1 -0
  21. package/dist/arg-split-BOqSMBuf.js +1 -0
  22. package/dist/arg-split-DE5RqDHq.js +1 -0
  23. package/dist/audio-preflight-B5o7P9qi.js +1 -0
  24. package/dist/audio-preflight-CxD7VCHW.js +1 -0
  25. package/dist/audio-preflight-DKSCBKRb.js +1 -0
  26. package/dist/audio-preflight-Dpk8-Bmk.js +1 -0
  27. package/dist/audio-transcription-runner-Bd1OZC6K.js +1 -0
  28. package/dist/audio-transcription-runner-D4Bp6MM7.js +1 -0
  29. package/dist/audio-transcription-runner-DPwmBYQj.js +1 -0
  30. package/dist/audio-transcription-runner-DSr6OIz1.js +1 -0
  31. package/dist/audit-C7RP7G_g.js +1 -0
  32. package/dist/audit-jkdcAUep.js +1 -0
  33. package/dist/audit-membership-runtime-BpRsMj5-.js +1 -0
  34. package/dist/audit-membership-runtime-BsfLZNBj.js +1 -0
  35. package/dist/audit-membership-runtime-DRHirRmx.js +1 -0
  36. package/dist/audit-membership-runtime-g0dEWJTp.js +1 -0
  37. package/dist/audit-membership-runtime-kdyToskD.js +1 -0
  38. package/dist/auth-choice-B7LSoXZ_.js +1 -0
  39. package/dist/auth-choice-CxMH4c-u.js +1 -0
  40. package/dist/auth-choice-DvTApGhx.js +1 -0
  41. package/dist/auth-choice-EQdNd7jO.js +1 -0
  42. package/dist/auth-choice-options-B3WQyS7I.js +1 -0
  43. package/dist/auth-choice-options-Dw14noox.js +1 -0
  44. package/dist/auth-choice-prompt-uegl56cf.js +1 -0
  45. package/dist/auth-choice-prompt-xYj13czb.js +1 -0
  46. package/dist/auth-choice.apply-helpers-B7S-PcH_.js +1 -0
  47. package/dist/auth-choice.apply-helpers-gaL-oSft.js +1 -0
  48. package/dist/auth-profiles-T8DuH3ax.js +1 -0
  49. package/dist/auth-token-9OTF1FmL.js +1 -0
  50. package/dist/auth-token-kGltuM6S.js +1 -0
  51. package/dist/banner-9u45RL26.js +1 -0
  52. package/dist/bonjour-discovery-CFZXPega.js +1 -0
  53. package/dist/bonjour-discovery-CjivQOxi.js +1 -0
  54. package/dist/boolean-Ch3DfXPy.js +1 -0
  55. package/dist/boolean-D15s2V33.js +1 -0
  56. package/dist/boolean-DypnRoRK.js +1 -0
  57. package/dist/brew-COcDl8CB.js +1 -0
  58. package/dist/brew-DDPm_HfE.js +1 -0
  59. package/dist/browser-cli-DQHE2iPY.js +1 -0
  60. package/dist/browser-cli-Dt0ds-an.js +1 -0
  61. package/dist/build-info.json +3 -3
  62. package/dist/bundled/boot-md/handler.js +1 -0
  63. package/dist/bundled/bootstrap-extra-files/handler.js +1 -0
  64. package/dist/bundled/command-logger/handler.js +1 -0
  65. package/dist/bundled/session-memory/handler.js +1 -0
  66. package/dist/call-B8Fb4_oh.js +1 -0
  67. package/dist/call-CqoMqP5b.js +1 -0
  68. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  69. package/dist/canvas-host/a2ui/a2ui.bundle.js +1705 -2
  70. package/dist/channel-account-context-BMPAMZEv.js +1 -0
  71. package/dist/channel-account-context-DAcarnqW.js +1 -0
  72. package/dist/channel-activity-B04WbrrK.js +1 -0
  73. package/dist/channel-activity-BBrgoad1.js +1 -0
  74. package/dist/channel-activity-CgbOWaay.js +1 -0
  75. package/dist/channel-activity-YIMhOAUo.js +1 -0
  76. package/dist/channel-activity-YjYNzCpJ.js +1 -0
  77. package/dist/channel-options-CEIzjOno.js +1 -0
  78. package/dist/channel-options-D2syI791.js +1 -0
  79. package/dist/channel-selection-BBeE1TmB.js +1 -0
  80. package/dist/channel-selection-CbNtbAEf.js +1 -0
  81. package/dist/channel-web-BrElpZAc.js +1 -0
  82. package/dist/channel-web-CxHbET4B.js +1 -0
  83. package/dist/channels/plugins/actions/discord.js +1 -0
  84. package/dist/channels/plugins/actions/signal.js +1 -0
  85. package/dist/channels/plugins/actions/telegram.js +1 -0
  86. package/dist/channels/plugins/agent-tools/whatsapp-login.js +1 -0
  87. package/dist/channels-cli-BmAJuuRs.js +1 -0
  88. package/dist/channels-cli-Dgosczr6.js +1 -0
  89. package/dist/channels-status-issues-8eFrGKyf.js +1 -0
  90. package/dist/channels-status-issues-PRgOT90w.js +1 -0
  91. package/dist/chat-envelope-Bznn2SoS.js +1 -0
  92. package/dist/chat-envelope-HVpKusFc.js +1 -0
  93. package/dist/clack-prompter-DBPdGdqp.js +1 -0
  94. package/dist/clack-prompter-Dq0aY6iM.js +1 -0
  95. package/dist/clawbot-cli-CgS7TkEx.js +1 -0
  96. package/dist/clawbot-cli-DZ2K0OTk.js +1 -0
  97. package/dist/cleanup-utils-BWm70DoD.js +1 -0
  98. package/dist/cleanup-utils-D-RhEX6F.js +1 -0
  99. package/dist/cli-BcnoCo4z.js +1 -0
  100. package/dist/cli-D8T2tphD.js +1 -0
  101. package/dist/cli-utils-BY7dLMFy.js +1 -0
  102. package/dist/cli-utils-BleB1eys.js +1 -0
  103. package/dist/clipboard-Bk8cviBt.js +1 -0
  104. package/dist/clipboard-CKT_VIkG.js +1 -0
  105. package/dist/cmd-argv-BBT5l8AV.js +1 -0
  106. package/dist/cmd-argv-Bh-KpaZ0.js +1 -0
  107. package/dist/command-format-BbDT1tlm.js +1 -0
  108. package/dist/command-format-CLxIPuLR.js +1 -0
  109. package/dist/command-options-BpOUDl2S.js +1 -0
  110. package/dist/command-options-Bq5nQxz6.js +1 -0
  111. package/dist/command-poll-backoff-BZLHYB2k.js +1 -0
  112. package/dist/command-poll-backoff-Cww_r-24.js +1 -0
  113. package/dist/command-poll-backoff-Df6cOQrX.js +1 -0
  114. package/dist/command-poll-backoff-endAPdwn.js +1 -0
  115. package/dist/command-registry-CfuXCRwV.js +1 -0
  116. package/dist/command-secret-targets-BVN3kiT9.js +1 -0
  117. package/dist/command-secret-targets-BlN-J_fA.js +1 -0
  118. package/dist/commands-CGpM84iR.js +1 -0
  119. package/dist/commands-Dy7duWlt.js +1 -0
  120. package/dist/commands-registry-B1x54ukc.js +1 -0
  121. package/dist/commands-registry-Cpl4QnG4.js +1 -0
  122. package/dist/commands-registry-D40KqYOm.js +1 -0
  123. package/dist/commands-registry-SeddSmFK.js +1 -0
  124. package/dist/compact-Dg66DXx_.js +1 -0
  125. package/dist/completion-cli-BZi4nuQb.js +1 -0
  126. package/dist/completion-cli-C40TWdsv.js +1 -0
  127. package/dist/config-BqW5S1xL.js +1 -0
  128. package/dist/config-D12ZLKqh.js +1 -0
  129. package/dist/config-cli-1ojSLwAj.js +1 -0
  130. package/dist/config-cli-CBte2b1h.js +1 -0
  131. package/dist/config-guard-BTNXbWoO.js +1 -0
  132. package/dist/config-guard-sYYx9zEF.js +1 -0
  133. package/dist/config-validation-C1La_IZU.js +1 -0
  134. package/dist/config-validation-DviYxW8Y.js +1 -0
  135. package/dist/configure-DJrNDEpR.js +1 -0
  136. package/dist/configure-kod4tmZa.js +1 -0
  137. package/dist/connection-auth-B_Uk6Vk8.js +1 -0
  138. package/dist/connection-auth-C8iru0UB.js +1 -0
  139. package/dist/context-window-guard-7crlatf9.js +1 -0
  140. package/dist/context-window-guard-CPChk363.js +1 -0
  141. package/dist/control-ui-assets-BIa0GGDg.js +1 -0
  142. package/dist/control-ui-assets-CTHGGgaX.js +1 -0
  143. package/dist/cron-cli-Dha16Lo-.js +1 -0
  144. package/dist/cron-cli-QHS2pKZ_.js +1 -0
  145. package/dist/daemon-cli-BuXTzSnU.js +1 -0
  146. package/dist/daemon-cli-DOTKuS7d.js +1 -0
  147. package/dist/daemon-cli.js +1 -0
  148. package/dist/daemon-install-C30rBssi.js +1 -0
  149. package/dist/daemon-install-HrqlOCrc.js +1 -0
  150. package/dist/daemon-install-plan.shared-CfA37Ut_.js +1 -0
  151. package/dist/daemon-install-plan.shared-Dx3DBXCG.js +1 -0
  152. package/dist/daemon-runtime-DHiDbRuC.js +1 -0
  153. package/dist/daemon-runtime-VcpeBRJV.js +1 -0
  154. package/dist/dangerous-name-matching-BOmvAibz.js +1 -0
  155. package/dist/dangerous-name-matching-DtllRqBD.js +1 -0
  156. package/dist/dangerous-tools-CFRYQJ6V.js +1 -0
  157. package/dist/dangerous-tools-oYCu5wfC.js +1 -0
  158. package/dist/deliver-56mQkDw3.js +1 -0
  159. package/dist/deliver-BFQ4Zx9z.js +1 -0
  160. package/dist/deliver-BHuhHfkH.js +1 -0
  161. package/dist/deliver-ClBkV2eD.js +1 -0
  162. package/dist/delivery-queue-CKbauSFq.js +1 -0
  163. package/dist/delivery-queue-nkPJu0fY.js +1 -0
  164. package/dist/device-pairing-CTFpaTrD.js +1 -0
  165. package/dist/device-pairing-QTK0dod3.js +1 -0
  166. package/dist/devices-cli-Ckxd0k0I.js +1 -0
  167. package/dist/devices-cli-Db36mBHq.js +1 -0
  168. package/dist/diagnostic-BrE4lMIf.js +1 -0
  169. package/dist/diagnostic-CDxNevIQ.js +1 -0
  170. package/dist/diagnostic-DOzHPnht.js +1 -0
  171. package/dist/diagnostic-DQq4Bwrs.js +1 -0
  172. package/dist/diagnostics-BgbeL9KE.js +1 -0
  173. package/dist/diagnostics-Cdctg9K_.js +1 -0
  174. package/dist/directory-cli-DDTaUkjW.js +1 -0
  175. package/dist/directory-cli-_gTFSHMW.js +1 -0
  176. package/dist/dns-cli--4PwtR2Y.js +1 -0
  177. package/dist/dns-cli-C4DwKquN.js +1 -0
  178. package/dist/docs-cli-Cdw9Iz9a.js +1 -0
  179. package/dist/docs-cli-ClD2UyX1.js +1 -0
  180. package/dist/doctor-completion-BJ6steqx.js +1 -0
  181. package/dist/doctor-completion-DMJhfrtC.js +1 -0
  182. package/dist/doctor-config-flow-D4F3mz4h.js +1 -0
  183. package/dist/doctor-config-flow-DnOyVZhQ.js +1 -0
  184. package/dist/enable-BhD84GhD.js +1 -0
  185. package/dist/enable-Ccf9wSM8.js +1 -0
  186. package/dist/entry-status-CCwwKO43.js +1 -0
  187. package/dist/entry-status-CoXkbJcX.js +1 -0
  188. package/dist/entry.js +1 -0
  189. package/dist/env-D7wNuBx1.js +1 -0
  190. package/dist/env-overrides-DHtB4kK3.js +1 -0
  191. package/dist/env-overrides-DXJbFrwI.js +1 -0
  192. package/dist/errors-6SQWM9dj.js +1 -0
  193. package/dist/errors-Bunti32V.js +1 -0
  194. package/dist/exec-B3eleY5O.js +1 -0
  195. package/dist/exec-DHqLtFYt.js +1 -0
  196. package/dist/exec-approvals-BXO9Cezj.js +1 -0
  197. package/dist/exec-approvals-BpBNEy6i.js +1 -0
  198. package/dist/exec-approvals-allowlist-CE3nYh0K.js +1 -0
  199. package/dist/exec-approvals-allowlist-D8mN7nxV.js +1 -0
  200. package/dist/exec-approvals-cli-CUcuN63y.js +1 -0
  201. package/dist/exec-approvals-cli-CxUGD08t.js +1 -0
  202. package/dist/exec-safe-bin-runtime-policy-Dt0GchLp.js +1 -0
  203. package/dist/exec-safe-bin-runtime-policy-dcCS_Adf.js +1 -0
  204. package/dist/fetch-B9tORjG8.js +1 -0
  205. package/dist/fetch-BJT3BrkJ.js +1 -0
  206. package/dist/fetch-B_wRifvZ.js +1 -0
  207. package/dist/fetch-Bn0mWg6a.js +1 -0
  208. package/dist/fetch-CQaNr5J1.js +1 -0
  209. package/dist/fetch-Ce-scEU-.js +1 -0
  210. package/dist/fetch-D0rZDHKO.js +1 -0
  211. package/dist/fetch-DHo17YmK.js +1 -0
  212. package/dist/fetch-Dh-apy46.js +1 -0
  213. package/dist/fetch-Dikjvc5M.js +1 -0
  214. package/dist/fetch-DsjPfQlp.js +1 -0
  215. package/dist/fetch-_g8lZ8K8.js +1 -0
  216. package/dist/fetch-guard-BrTtJw7h.js +1 -0
  217. package/dist/fetch-guard-D10s0raB.js +1 -0
  218. package/dist/fetch-guard-DPdY0NXR.js +1 -0
  219. package/dist/fetch-guard-cu7DGSRF.js +1 -0
  220. package/dist/fetch-hy0JKSsm.js +1 -0
  221. package/dist/fetch-timeout-CdYxWG9w.js +1 -0
  222. package/dist/fetch-timeout-Cj8_oAls.js +1 -0
  223. package/dist/fetch-timeout-DoOI_izT.js +1 -0
  224. package/dist/fetch-timeout-u8g99Ax0.js +1 -0
  225. package/dist/format-Bn1bwJKX.js +1 -0
  226. package/dist/format-Ce7I7s-k.js +1 -0
  227. package/dist/format-duration-C8AzNqKh.js +1 -0
  228. package/dist/format-duration-D5AMtmHa.js +1 -0
  229. package/dist/format-relative-B9pSIdGe.js +1 -0
  230. package/dist/format-relative-DkMjYy7z.js +1 -0
  231. package/dist/frontmatter-BkZkwkVO.js +1 -0
  232. package/dist/frontmatter-C7mzDNxd.js +1 -0
  233. package/dist/frontmatter-CzpfPBFl.js +1 -0
  234. package/dist/gateway-cli-CKu0FA7D.js +1 -0
  235. package/dist/gateway-cli-C_s9eMlC.js +1 -0
  236. package/dist/gateway-install-token-BCnuZeh1.js +1 -0
  237. package/dist/gateway-install-token-DiDvDPJQ.js +1 -0
  238. package/dist/gateway-rpc-iFvDyHYd.js +1 -0
  239. package/dist/gateway-rpc-tEEvY0kH.js +1 -0
  240. package/dist/github-copilot-token-C79yeDKS.js +1 -0
  241. package/dist/github-copilot-token-DGYAlOmV.js +1 -0
  242. package/dist/github-copilot-token-DePP-lIf.js +1 -0
  243. package/dist/github-copilot-token-wm6mbypz.js +1 -0
  244. package/dist/gmail-setup-utils-CYOH3zzx.js +1 -0
  245. package/dist/gmail-setup-utils-S-MyEGuj.js +1 -0
  246. package/dist/group-access-BHKVOhrj.js +1 -0
  247. package/dist/group-access-D2DOYMfr.js +1 -0
  248. package/dist/health-BgOggK9k.js +1 -0
  249. package/dist/health-PaRHFItm.js +1 -0
  250. package/dist/health-format-B1nj3Wfn.js +1 -0
  251. package/dist/health-format-VBr6LEpt.js +1 -0
  252. package/dist/heartbeat-visibility-BQ_esv2m.js +1 -0
  253. package/dist/heartbeat-visibility-q74UdY8O.js +1 -0
  254. package/dist/help-format-B4aEI7V9.js +1 -0
  255. package/dist/help-format-BRbF_INg.js +1 -0
  256. package/dist/helpers-COz1ghcB.js +1 -0
  257. package/dist/helpers-Cp8gcO6u.js +1 -0
  258. package/dist/hooks-cli-BzyzTNBx.js +1 -0
  259. package/dist/hooks-cli-CsBrScq0.js +1 -0
  260. package/dist/hooks-status-BHt-Xvh4.js +1 -0
  261. package/dist/hooks-status-CRJ4J0ZW.js +1 -0
  262. package/dist/image-BkWwI54C.js +1 -0
  263. package/dist/image-CcVQg-YN.js +1 -0
  264. package/dist/image-Cm1RUBqD.js +1 -0
  265. package/dist/image-DsoO5VP5.js +1 -0
  266. package/dist/index.js +1 -0
  267. package/dist/inspect-BKV-I1UE.js +1 -0
  268. package/dist/inspect-z59cgmYc.js +1 -0
  269. package/dist/install-safe-path-C6kc_8NW.js +1 -0
  270. package/dist/install-safe-path-iesxijn2.js +1 -0
  271. package/dist/installs-BNeI_oML.js +1 -0
  272. package/dist/installs-C1xQLuby.js +1 -0
  273. package/dist/ipv4-BOuNtoGn.js +1 -0
  274. package/dist/ipv4-CWdaEiVH.js +1 -0
  275. package/dist/ir-BF0M2kGp.js +1 -0
  276. package/dist/ir-D8Hh84ab.js +1 -0
  277. package/dist/ir-DBWscfBd.js +1 -0
  278. package/dist/ir-Dk7OQ4bA.js +1 -0
  279. package/dist/is-main-DG5ueqhF.js +1 -0
  280. package/dist/issue-format-BT7cQEt3.js +1 -0
  281. package/dist/issue-format-C_lNzrKa.js +1 -0
  282. package/dist/kill-tree-B3g7HrAO.js +1 -0
  283. package/dist/lifecycle-core-D9KNCvxY.js +1 -0
  284. package/dist/lifecycle-core-LM5UUUB1.js +1 -0
  285. package/dist/line/accounts.js +1 -0
  286. package/dist/line/send.js +1 -0
  287. package/dist/line/template-messages.js +1 -0
  288. package/dist/links-CBnmRP9D.js +1 -0
  289. package/dist/links-CySwdMcF.js +1 -0
  290. package/dist/llm-slug-generator.js +1 -0
  291. package/dist/load-options-BsOW74dp.js +1 -0
  292. package/dist/load-options-C7dLuybp.js +1 -0
  293. package/dist/load-options-DV4j6Aqb.js +1 -0
  294. package/dist/load-options-Dwt0CeEg.js +1 -0
  295. package/dist/local-roots-6waH0SZ0.js +1 -0
  296. package/dist/logger-5W0OocJW.js +1 -0
  297. package/dist/logger-Bl8URnrW.js +1 -0
  298. package/dist/logger-DwWqfo66.js +1 -0
  299. package/dist/logger-kQAOe3qp.js +1 -0
  300. package/dist/logging-Dqe9dxSX.js +1 -0
  301. package/dist/logging-tYw1NbJd.js +1 -0
  302. package/dist/login-BOlqRyr0.js +1 -0
  303. package/dist/login-CkWesqf_.js +1 -0
  304. package/dist/login-Do_NA1Je.js +1 -0
  305. package/dist/login-op9S8yqv.js +1 -0
  306. package/dist/login-qr-B6rxvoTS.js +1 -0
  307. package/dist/login-qr-BGH9zmhw.js +1 -0
  308. package/dist/login-qr-CiENvgog.js +1 -0
  309. package/dist/login-qr-DsV-lxFd.js +1 -0
  310. package/dist/login-qr-QcDMg23y.js +1 -0
  311. package/dist/logs-cli-B4eUg_87.js +1 -0
  312. package/dist/logs-cli-BA3Aso8a.js +1 -0
  313. package/dist/manager-4Y9fRgdw.js +1 -0
  314. package/dist/manager-C2YW7Hkq.js +1 -0
  315. package/dist/manager-Dtd_loL8.js +1 -0
  316. package/dist/manager-M1GKhLUC.js +1 -0
  317. package/dist/memory-cli-XaxtBQm1.js +1 -0
  318. package/dist/memory-cli-jhzJ3as7.js +1 -0
  319. package/dist/model-catalog-C1kpjR75.js +1 -0
  320. package/dist/model-catalog-COVzoZD9.js +1 -0
  321. package/dist/model-param-b-B0r2cPDw.js +1 -0
  322. package/dist/model-param-b-BqIr5rY5.js +1 -0
  323. package/dist/model-picker-D3ZSpr0i.js +1 -0
  324. package/dist/model-picker-bZNuI66U.js +1 -0
  325. package/dist/model-selection-B5JsBS9D.js +1 -0
  326. package/dist/model-selection-BlC_rXAN.js +1 -0
  327. package/dist/model-selection-vfhBuN9O.js +1 -0
  328. package/dist/models-C_Vg3Cty.js +1 -0
  329. package/dist/models-cli-CDZliTXq.js +1 -0
  330. package/dist/models-cli-bGr8jwAb.js +1 -0
  331. package/dist/models-config-CdMhNxKV.js +1 -0
  332. package/dist/models-config-_htt7eY5.js +1 -0
  333. package/dist/mutable-allowlist-detectors-C4rNVag8.js +1 -0
  334. package/dist/mutable-allowlist-detectors-CL0qe54J.js +1 -0
  335. package/dist/node-cli-5lYbDZ70.js +1 -0
  336. package/dist/node-cli-Br04Qmqo.js +1 -0
  337. package/dist/node-command-policy-CejeQemH.js +1 -0
  338. package/dist/node-command-policy-CqXhdnHh.js +1 -0
  339. package/dist/node-commands-8GBOiktk.js +1 -0
  340. package/dist/node-commands-DdkziOTx.js +1 -0
  341. package/dist/node-resolve-B3BJbmQX.js +1 -0
  342. package/dist/node-resolve-DLZf3-1V.js +1 -0
  343. package/dist/node-service-BRfrNp8l.js +1 -0
  344. package/dist/node-service-C0bl7jcZ.js +1 -0
  345. package/dist/node-shell-DyOfwHrh.js +1 -0
  346. package/dist/nodes-cli-8By8--bW.js +1 -0
  347. package/dist/nodes-cli-zq41EwJN.js +1 -0
  348. package/dist/nodes-screen-DECgxo6A.js +1 -0
  349. package/dist/note-D4GAwgha.js +1 -0
  350. package/dist/note-Dp-d_utk.js +1 -0
  351. package/dist/npm-pack-install-B23L-AtF.js +1 -0
  352. package/dist/npm-pack-install-C0te3Oap.js +1 -0
  353. package/dist/npm-resolution-BnJGLwhi.js +1 -0
  354. package/dist/npm-resolution-DWPloph4.js +1 -0
  355. package/dist/oauth-env-DAamJ1oz.js +1 -0
  356. package/dist/oauth-env-DSLBTWb1.js +1 -0
  357. package/dist/oauth-tls-preflight-BSBRDIfC.js +1 -0
  358. package/dist/oauth-tls-preflight-ByNjbUR5.js +1 -0
  359. package/dist/ollama-setup-BMEKWyIE.js +1 -0
  360. package/dist/ollama-setup-DlwS6Gl-.js +1 -0
  361. package/dist/onboard-B0BNCQaO.js +1 -0
  362. package/dist/onboard-CjVhdaiR.js +1 -0
  363. package/dist/onboard-channels-BMIOddLN.js +1 -0
  364. package/dist/onboard-channels-CZK_7xMR.js +1 -0
  365. package/dist/onboard-config-B7U20YRw.js +1 -0
  366. package/dist/onboard-config-DS9dUv8M.js +1 -0
  367. package/dist/onboard-custom-B03SlEHB.js +1 -0
  368. package/dist/onboard-custom-Bl0y8c-g.js +1 -0
  369. package/dist/onboard-helpers-PGl5bVPE.js +1 -0
  370. package/dist/onboard-helpers-zwybUJWu.js +1 -0
  371. package/dist/onboard-hooks-CERzXObm.js +1 -0
  372. package/dist/onboard-hooks-gQ3sxBNi.js +1 -0
  373. package/dist/onboard-provider-auth-flags-CqbipO7D.js +1 -0
  374. package/dist/onboard-provider-auth-flags-Dvwzdz37.js +1 -0
  375. package/dist/onboard-remote-BOpIRdDu.js +1 -0
  376. package/dist/onboard-remote-DPU-H_2O.js +1 -0
  377. package/dist/onboard-search-f2tJD4hg.js +1 -0
  378. package/dist/onboard-search-fslKKhyg.js +1 -0
  379. package/dist/onboard-skills-BMAJs6ly.js +1 -0
  380. package/dist/onboard-skills-CMSQc2Mm.js +1 -0
  381. package/dist/onboarding-B6ixWwgp.js +1 -0
  382. package/dist/onboarding-ouEqUuUr.js +1 -0
  383. package/dist/onboarding.finalize-Bgat5Npc.js +1 -0
  384. package/dist/onboarding.finalize-DsMVlTcH.js +1 -0
  385. package/dist/onboarding.gateway-config-BtLDJWJ2.js +1 -0
  386. package/dist/onboarding.gateway-config-y3pqsL9i.js +1 -0
  387. package/dist/onboarding.secret-input-BsBgh8Tc.js +1 -0
  388. package/dist/onboarding.secret-input-kO5OzYC7.js +1 -0
  389. package/dist/openai-codex-model-default-DuE2_wN7.js +1 -0
  390. package/dist/openai-codex-model-default-yVfRw-Mm.js +1 -0
  391. package/dist/openai-model-default-Bl8MHPb6.js +1 -0
  392. package/dist/openai-model-default-DJObMvLJ.js +1 -0
  393. package/dist/openclaw-exec-env-BWbOu_YC.js +1 -0
  394. package/dist/openclaw-root-CnsBf6ZU.js +1 -0
  395. package/dist/openclaw-root-D_0Q6--h.js +1 -0
  396. package/dist/outbound-BOSIEiEY.js +1 -0
  397. package/dist/outbound-BtUeDLjU.js +1 -0
  398. package/dist/outbound-Bx2Z2aYK.js +1 -0
  399. package/dist/outbound-Bz8bbrMI.js +1 -0
  400. package/dist/outbound-attachment-B7wMxwj6.js +1 -0
  401. package/dist/outbound-attachment-BgAe99RM.js +1 -0
  402. package/dist/outbound-attachment-Dds8xirj.js +1 -0
  403. package/dist/outbound-attachment-DqEKghQp.js +1 -0
  404. package/dist/pairing-cli-Bya9M-I_.js +1 -0
  405. package/dist/pairing-cli-D2JEhufv.js +1 -0
  406. package/dist/pairing-labels-BUU_-70B.js +1 -0
  407. package/dist/pairing-labels-D-kzQEL2.js +1 -0
  408. package/dist/pairing-store-BH-FTYkn.js +1 -0
  409. package/dist/pairing-store-Cg2UxreQ.js +1 -0
  410. package/dist/pairing-token-BjYBuREl.js +1 -0
  411. package/dist/pairing-token-DAR7V7FJ.js +1 -0
  412. package/dist/parse-duration-XTjMKl8s.js +1 -0
  413. package/dist/parse-finite-number-DqzUM-_s.js +1 -0
  414. package/dist/parse-finite-number-dBmDLLKL.js +1 -0
  415. package/dist/parse-log-line-CsYLg7Qu.js +1 -0
  416. package/dist/parse-log-line-NV-cipB_.js +1 -0
  417. package/dist/parse-port-Bv1Y9Wk5.js +1 -0
  418. package/dist/parse-port-JVwkxcZ8.js +1 -0
  419. package/dist/parse-timeout-DWSGfCkQ.js +1 -0
  420. package/dist/parse-timeout-Dx4QnVzo.js +1 -0
  421. package/dist/path-alias-guards-kY_ZbWs-.js +1 -0
  422. package/dist/path-alias-guards-mvyLCPlN.js +1 -0
  423. package/dist/path-env-BPd1Yd-i.js +1 -0
  424. package/dist/path-env-emdAQejM.js +1 -0
  425. package/dist/path-safety-BukYK8Kd.js +1 -0
  426. package/dist/path-safety-DaaMJFdt.js +1 -0
  427. package/dist/paths-B4IRk3wi.js +1 -0
  428. package/dist/paths-BfjJY2VL.js +1 -0
  429. package/dist/paths-BjD3T_xq.js +1 -0
  430. package/dist/paths-BpQOWYiT.js +1 -0
  431. package/dist/paths-CChBdtE8.js +1 -0
  432. package/dist/paths-CrCoPIVK.js +1 -0
  433. package/dist/paths-piJASC5k.js +1 -0
  434. package/dist/paths-yLEk_25I.js +1 -0
  435. package/dist/pi-embedded-BZSn84Bh.js +1 -0
  436. package/dist/pi-embedded-Dsz7p3MF.js +1 -0
  437. package/dist/pi-model-discovery-BbD1YJNx.js +1 -0
  438. package/dist/pi-model-discovery-CpjYoBQf.js +1 -0
  439. package/dist/pi-model-discovery-DeQdHV8O.js +1 -0
  440. package/dist/pi-model-discovery-Dps1PPWz.js +1 -0
  441. package/dist/pi-tools.before-tool-call.runtime-DseAq0gm.js +1 -0
  442. package/dist/pi-tools.before-tool-call.runtime-KKGILAuK.js +1 -0
  443. package/dist/pi-tools.before-tool-call.runtime-Pck2WdIO.js +1 -0
  444. package/dist/pi-tools.before-tool-call.runtime-ZzMJQ1BP.js +1 -0
  445. package/dist/pi-tools.policy-D40r0HmD.js +1 -0
  446. package/dist/plugin-auto-enable-DpVL6-ES.js +1 -0
  447. package/dist/plugin-auto-enable-NzmNh4oU.js +1 -0
  448. package/dist/plugin-install-plan-BobX0y9S.js +1 -0
  449. package/dist/plugin-install-plan-NvDGp0d8.js +1 -0
  450. package/dist/plugin-registry-C6dY-Et7.js +1 -0
  451. package/dist/plugin-registry-CIBiHZH1.js +1 -0
  452. package/dist/plugin-sdk/account-id.cjs +1 -0
  453. package/dist/plugin-sdk/account-id.js +1 -0
  454. package/dist/plugin-sdk/acpx.cjs +1 -0
  455. package/dist/plugin-sdk/acpx.js +1 -0
  456. package/dist/plugin-sdk/active-listener-BApFQlQn.js +1 -0
  457. package/dist/plugin-sdk/active-listener-BETopzG5.cjs +1 -0
  458. package/dist/plugin-sdk/active-listener-BEcmvyxh.cjs +1 -0
  459. package/dist/plugin-sdk/active-listener-BZPPbsNy.cjs +1 -0
  460. package/dist/plugin-sdk/active-listener-B_Mxemq7.cjs +1 -0
  461. package/dist/plugin-sdk/active-listener-BgW_qfd3.js +1 -0
  462. package/dist/plugin-sdk/active-listener-Coet66pF.cjs +1 -0
  463. package/dist/plugin-sdk/active-listener-CvML9qVF.js +1 -0
  464. package/dist/plugin-sdk/active-listener-DuO6KMXJ.js +1 -0
  465. package/dist/plugin-sdk/active-listener-DymzfmOG.cjs +1 -0
  466. package/dist/plugin-sdk/active-listener-ILBdBHMv.js +1 -0
  467. package/dist/plugin-sdk/active-listener-gRRIfN1q.js +1 -0
  468. package/dist/plugin-sdk/api-key-rotation-Bj1A9Slo.cjs +1 -0
  469. package/dist/plugin-sdk/api-key-rotation-CFPNzksf.cjs +1 -0
  470. package/dist/plugin-sdk/api-key-rotation-CXY0AyM1.js +1 -0
  471. package/dist/plugin-sdk/api-key-rotation-ClIwV8yq.js +1 -0
  472. package/dist/plugin-sdk/api-key-rotation-D5Nr1xl3.js +1 -0
  473. package/dist/plugin-sdk/api-key-rotation-DDCwA0KM.cjs +1 -0
  474. package/dist/plugin-sdk/api-key-rotation-DHMvXm70.cjs +1 -0
  475. package/dist/plugin-sdk/api-key-rotation-DaFFZfk5.js +1 -0
  476. package/dist/plugin-sdk/api-key-rotation-DcREl_0x.js +1 -0
  477. package/dist/plugin-sdk/api-key-rotation-X-5Fb7av.cjs +1 -0
  478. package/dist/plugin-sdk/api-key-rotation-_VfXYfHS.js +1 -0
  479. package/dist/plugin-sdk/api-key-rotation-wFUVOOfM.cjs +1 -0
  480. package/dist/plugin-sdk/audio-preflight-B1MP5_bc.cjs +1 -0
  481. package/dist/plugin-sdk/audio-preflight-BETx142T.cjs +1 -0
  482. package/dist/plugin-sdk/audio-preflight-BGRLhCLc.cjs +1 -0
  483. package/dist/plugin-sdk/audio-preflight-BNICfOY5.cjs +1 -0
  484. package/dist/plugin-sdk/audio-preflight-BV3Cav8M.js +1 -0
  485. package/dist/plugin-sdk/audio-preflight-BmO72Cqr.cjs +1 -0
  486. package/dist/plugin-sdk/audio-preflight-BpE8wFQc.js +1 -0
  487. package/dist/plugin-sdk/audio-preflight-CTAafaiH.js +1 -0
  488. package/dist/plugin-sdk/audio-preflight-D82aewIt.js +1 -0
  489. package/dist/plugin-sdk/audio-preflight-DmzxEaq3.cjs +1 -0
  490. package/dist/plugin-sdk/audio-preflight-DrSIYRnD.js +1 -0
  491. package/dist/plugin-sdk/audio-preflight-SZZoA2Ff.js +1 -0
  492. package/dist/plugin-sdk/audio-transcription-runner-B54MyF1_.js +1 -0
  493. package/dist/plugin-sdk/audio-transcription-runner-BIqM5H5q.js +1 -0
  494. package/dist/plugin-sdk/audio-transcription-runner-BLAxZL-U.js +1 -0
  495. package/dist/plugin-sdk/audio-transcription-runner-BVmaaA2k.js +1 -0
  496. package/dist/plugin-sdk/audio-transcription-runner-BdY-TMcc.js +1 -0
  497. package/dist/plugin-sdk/audio-transcription-runner-By3lSLub.cjs +1 -0
  498. package/dist/plugin-sdk/audio-transcription-runner-CH5CoZrF.cjs +1 -0
  499. package/dist/plugin-sdk/audio-transcription-runner-CMsp7bhn.cjs +1 -0
  500. package/dist/plugin-sdk/audio-transcription-runner-ClGibmMi.cjs +1 -0
  501. package/dist/plugin-sdk/audio-transcription-runner-QfEC19vE.cjs +1 -0
  502. package/dist/plugin-sdk/audio-transcription-runner-g7L0m-Z5.cjs +1 -0
  503. package/dist/plugin-sdk/audio-transcription-runner-pVTD93vq.js +1 -0
  504. package/dist/plugin-sdk/audit-membership-runtime-7LqcvqFo.js +1 -0
  505. package/dist/plugin-sdk/audit-membership-runtime-BQFUzFc0.cjs +1 -0
  506. package/dist/plugin-sdk/audit-membership-runtime-BYtdDX9G.cjs +1 -0
  507. package/dist/plugin-sdk/audit-membership-runtime-BzEtBUX6.cjs +1 -0
  508. package/dist/plugin-sdk/audit-membership-runtime-CBUmGrl4.js +1 -0
  509. package/dist/plugin-sdk/audit-membership-runtime-ChlVgt2y.js +1 -0
  510. package/dist/plugin-sdk/audit-membership-runtime-DLRX7LR0.js +1 -0
  511. package/dist/plugin-sdk/audit-membership-runtime-DbJW5X3L.cjs +1 -0
  512. package/dist/plugin-sdk/audit-membership-runtime-Du9LAxDa.cjs +1 -0
  513. package/dist/plugin-sdk/audit-membership-runtime-DylNnj1m.js +1 -0
  514. package/dist/plugin-sdk/audit-membership-runtime-voi5sPwF.js +1 -0
  515. package/dist/plugin-sdk/audit-membership-runtime-yWYvSpgZ.cjs +1 -0
  516. package/dist/plugin-sdk/bluebubbles.cjs +1 -0
  517. package/dist/plugin-sdk/bluebubbles.js +1 -0
  518. package/dist/plugin-sdk/channel-activity-BGK-Bj2_.cjs +1 -0
  519. package/dist/plugin-sdk/channel-activity-BRHvpV0C.js +1 -0
  520. package/dist/plugin-sdk/channel-activity-CKfWFchu.js +1 -0
  521. package/dist/plugin-sdk/channel-activity-CLUi31fX.cjs +1 -0
  522. package/dist/plugin-sdk/channel-activity-CVOp-PL4.cjs +1 -0
  523. package/dist/plugin-sdk/channel-activity-CgXnZ0GC.cjs +1 -0
  524. package/dist/plugin-sdk/channel-activity-CmYpOPAn.js +1 -0
  525. package/dist/plugin-sdk/channel-activity-CwaMf9qT.cjs +1 -0
  526. package/dist/plugin-sdk/channel-activity-D5D5tBWf.cjs +1 -0
  527. package/dist/plugin-sdk/channel-activity-D7tpmatp.js +1 -0
  528. package/dist/plugin-sdk/channel-activity-DpxSOlXF.js +1 -0
  529. package/dist/plugin-sdk/channel-activity-spvDzlTl.js +1 -0
  530. package/dist/plugin-sdk/channel-web-4ZQVqsrt.js +1 -0
  531. package/dist/plugin-sdk/channel-web-9zn1Itpg.cjs +1 -0
  532. package/dist/plugin-sdk/channel-web-BrB00HKH.js +1 -0
  533. package/dist/plugin-sdk/channel-web-DN5La-Ol.cjs +1 -0
  534. package/dist/plugin-sdk/command-poll-backoff-4910Mpwp.js +1 -0
  535. package/dist/plugin-sdk/command-poll-backoff-BLJZzV5W.cjs +1 -0
  536. package/dist/plugin-sdk/command-poll-backoff-CUNcN0dv.cjs +1 -0
  537. package/dist/plugin-sdk/command-poll-backoff-Cww_r-24.js +1 -0
  538. package/dist/plugin-sdk/command-poll-backoff-D0lJhquZ.js +1 -0
  539. package/dist/plugin-sdk/command-poll-backoff-Glwt3wHa.cjs +1 -0
  540. package/dist/plugin-sdk/commands-registry-5lStNoKW.cjs +1 -0
  541. package/dist/plugin-sdk/commands-registry-C8wnXqNa.cjs +1 -0
  542. package/dist/plugin-sdk/commands-registry-Cnr6PvIw.js +1 -0
  543. package/dist/plugin-sdk/commands-registry-CtYCWfuM.cjs +1 -0
  544. package/dist/plugin-sdk/commands-registry-D2gv242l.js +1 -0
  545. package/dist/plugin-sdk/commands-registry-DI2vPscP.js +1 -0
  546. package/dist/plugin-sdk/commands-registry-DcBvmwSU.js +1 -0
  547. package/dist/plugin-sdk/commands-registry-DkUhCIDk.cjs +1 -0
  548. package/dist/plugin-sdk/commands-registry-DsMbmie-.cjs +1 -0
  549. package/dist/plugin-sdk/commands-registry-MCsWR5Vf.js +1 -0
  550. package/dist/plugin-sdk/commands-registry-SHZVq_qf.cjs +1 -0
  551. package/dist/plugin-sdk/commands-registry-kRjFifgj.js +1 -0
  552. package/dist/plugin-sdk/common-B4iFXuoZ.cjs +1 -0
  553. package/dist/plugin-sdk/common-B6fDMl_i.js +1 -0
  554. package/dist/plugin-sdk/compat.cjs +1 -0
  555. package/dist/plugin-sdk/compat.js +1 -0
  556. package/dist/plugin-sdk/config-ByA2hluR.js +1 -0
  557. package/dist/plugin-sdk/config-rBz8C_Hi.cjs +1 -0
  558. package/dist/plugin-sdk/copilot-proxy.cjs +1 -0
  559. package/dist/plugin-sdk/copilot-proxy.js +1 -0
  560. package/dist/plugin-sdk/core.cjs +1 -0
  561. package/dist/plugin-sdk/core.js +1 -0
  562. package/dist/plugin-sdk/deliver-B0fB4hAV.js +1 -0
  563. package/dist/plugin-sdk/deliver-BOLmjIJ3.js +1 -0
  564. package/dist/plugin-sdk/deliver-BrfVwkYz.cjs +1 -0
  565. package/dist/plugin-sdk/deliver-C-tChWTI.cjs +1 -0
  566. package/dist/plugin-sdk/deliver-CjQPkWS-.cjs +1 -0
  567. package/dist/plugin-sdk/deliver-D1P0FNTu.js +1 -0
  568. package/dist/plugin-sdk/deliver-DCrO9mvv.cjs +1 -0
  569. package/dist/plugin-sdk/deliver-DQLekoj2.cjs +1 -0
  570. package/dist/plugin-sdk/deliver-DkfCVM78.js +1 -0
  571. package/dist/plugin-sdk/deliver-Dkh3lqXR.js +1 -0
  572. package/dist/plugin-sdk/deliver-DsFtXFyr.cjs +1 -0
  573. package/dist/plugin-sdk/deliver-vYe_sYOL.js +1 -0
  574. package/dist/plugin-sdk/device-pair.cjs +1 -0
  575. package/dist/plugin-sdk/device-pair.js +1 -0
  576. package/dist/plugin-sdk/diagnostic-8iX73nz_.cjs +1 -0
  577. package/dist/plugin-sdk/diagnostic-CLUtpxAp.js +1 -0
  578. package/dist/plugin-sdk/diagnostic-CVS4k9hh.cjs +1 -0
  579. package/dist/plugin-sdk/diagnostic-CkePwN5F.js +1 -0
  580. package/dist/plugin-sdk/diagnostic-Cu1PGj0E.cjs +1 -0
  581. package/dist/plugin-sdk/diagnostic-D0oCfBju.cjs +1 -0
  582. package/dist/plugin-sdk/diagnostic-D7A9cQYf.cjs +1 -0
  583. package/dist/plugin-sdk/diagnostic-DGLX0zXU.js +1 -0
  584. package/dist/plugin-sdk/diagnostic-DXscFT8t.cjs +1 -0
  585. package/dist/plugin-sdk/diagnostic-Efe4b81B.js +1 -0
  586. package/dist/plugin-sdk/diagnostic-EqHqw9xo.js +1 -0
  587. package/dist/plugin-sdk/diagnostic-vsjHZ_fY.js +1 -0
  588. package/dist/plugin-sdk/diagnostics-otel.cjs +1 -0
  589. package/dist/plugin-sdk/diagnostics-otel.js +1 -0
  590. package/dist/plugin-sdk/diffs.cjs +1 -0
  591. package/dist/plugin-sdk/diffs.js +1 -0
  592. package/dist/plugin-sdk/discord.cjs +1 -0
  593. package/dist/plugin-sdk/discord.js +1 -0
  594. package/dist/plugin-sdk/dispatch-5v3v8zzA.js +1 -0
  595. package/dist/plugin-sdk/dispatch-B6UbZCpL.cjs +1 -0
  596. package/dist/plugin-sdk/dispatch-BYlcmJ9u.js +1 -0
  597. package/dist/plugin-sdk/dispatch-C2YTqGlf.js +1 -0
  598. package/dist/plugin-sdk/dispatch-CNy3g9ma.cjs +1 -0
  599. package/dist/plugin-sdk/dispatch-DCSwqteL.js +1 -0
  600. package/dist/plugin-sdk/dispatch-DHbSBeFJ.js +1 -0
  601. package/dist/plugin-sdk/dispatch-DK5ub8qa.cjs +1 -0
  602. package/dist/plugin-sdk/dispatch-SWyfAZT0.cjs +1 -0
  603. package/dist/plugin-sdk/dispatch-mR2vLkGa.cjs +1 -0
  604. package/dist/plugin-sdk/feishu.cjs +1 -0
  605. package/dist/plugin-sdk/feishu.js +1 -0
  606. package/dist/plugin-sdk/fetch-7Iq9POda.js +1 -0
  607. package/dist/plugin-sdk/fetch-B1GR6-u4.js +1 -0
  608. package/dist/plugin-sdk/fetch-B27H-XCf.js +1 -0
  609. package/dist/plugin-sdk/fetch-BMYDLRWo.js +1 -0
  610. package/dist/plugin-sdk/fetch-BN9y3kTg.cjs +1 -0
  611. package/dist/plugin-sdk/fetch-BVEVk5YF.js +1 -0
  612. package/dist/plugin-sdk/fetch-BY6lVRlY.cjs +1 -0
  613. package/dist/plugin-sdk/fetch-Bi8krAaT.cjs +1 -0
  614. package/dist/plugin-sdk/fetch-BjXhwqrE.cjs +1 -0
  615. package/dist/plugin-sdk/fetch-BtZY623f.js +1 -0
  616. package/dist/plugin-sdk/fetch-C-HRWp5R.js +1 -0
  617. package/dist/plugin-sdk/fetch-C3LEMysf.js +1 -0
  618. package/dist/plugin-sdk/fetch-CCLWsYaQ.js +1 -0
  619. package/dist/plugin-sdk/fetch-CZewCAvu.cjs +1 -0
  620. package/dist/plugin-sdk/fetch-ClKErpni.cjs +1 -0
  621. package/dist/plugin-sdk/fetch-DBRI0sKI.js +1 -0
  622. package/dist/plugin-sdk/fetch-DQxuOB8o.cjs +1 -0
  623. package/dist/plugin-sdk/fetch-DUMEaqum.cjs +1 -0
  624. package/dist/plugin-sdk/fetch-DpwR_cJU.cjs +1 -0
  625. package/dist/plugin-sdk/fetch-J0IzopiJ.js +1 -0
  626. package/dist/plugin-sdk/fetch-guard-8I7EHbDM.cjs +1 -0
  627. package/dist/plugin-sdk/fetch-guard-CIJUkBIL.cjs +1 -0
  628. package/dist/plugin-sdk/fetch-guard-CY03i4gu.js +1 -0
  629. package/dist/plugin-sdk/fetch-guard-Cz-cgYmR.cjs +1 -0
  630. package/dist/plugin-sdk/fetch-guard-DB85MORy.cjs +1 -0
  631. package/dist/plugin-sdk/fetch-guard-DE9BslxX.js +1 -0
  632. package/dist/plugin-sdk/fetch-guard-DLNzldn9.cjs +1 -0
  633. package/dist/plugin-sdk/fetch-guard-DSvAbvSx.js +1 -0
  634. package/dist/plugin-sdk/fetch-guard-DXe8oqEE.js +1 -0
  635. package/dist/plugin-sdk/fetch-guard-DY9jpsXo.cjs +1 -0
  636. package/dist/plugin-sdk/fetch-guard-DbOZYxyN.js +1 -0
  637. package/dist/plugin-sdk/fetch-guard-_fifU0fX.js +1 -0
  638. package/dist/plugin-sdk/fetch-lw-aF17e.cjs +1 -0
  639. package/dist/plugin-sdk/fetch-timeout-6oZsqWxA.js +1 -0
  640. package/dist/plugin-sdk/fetch-timeout-BygUD0rd.cjs +1 -0
  641. package/dist/plugin-sdk/fetch-timeout-CLw1U7VS.js +1 -0
  642. package/dist/plugin-sdk/fetch-timeout-CX1w-9p4.cjs +1 -0
  643. package/dist/plugin-sdk/fetch-timeout-Coc9xyC3.cjs +1 -0
  644. package/dist/plugin-sdk/fetch-timeout-Cz6GuU_c.js +1 -0
  645. package/dist/plugin-sdk/fetch-timeout-DC8T2JCr.js +1 -0
  646. package/dist/plugin-sdk/fetch-timeout-DFDmks9T.cjs +1 -0
  647. package/dist/plugin-sdk/fetch-timeout-DkYpp08Q.js +1 -0
  648. package/dist/plugin-sdk/github-copilot-token-BHdMLLqf.cjs +1 -0
  649. package/dist/plugin-sdk/github-copilot-token-Bt4PduRB.js +1 -0
  650. package/dist/plugin-sdk/github-copilot-token-C1O2cBqk.cjs +1 -0
  651. package/dist/plugin-sdk/github-copilot-token-C1hiDugd.js +1 -0
  652. package/dist/plugin-sdk/github-copilot-token-C8j8_NjX.js +1 -0
  653. package/dist/plugin-sdk/github-copilot-token-CCrgp2py.cjs +1 -0
  654. package/dist/plugin-sdk/github-copilot-token-DoHgkI2r.cjs +1 -0
  655. package/dist/plugin-sdk/github-copilot-token-N8vnLZPw.js +1 -0
  656. package/dist/plugin-sdk/github-copilot-token-TMkfxxD2.cjs +1 -0
  657. package/dist/plugin-sdk/github-copilot-token-vKAKX6iE.js +1 -0
  658. package/dist/plugin-sdk/github-copilot-token-ylX_gawo.js +1 -0
  659. package/dist/plugin-sdk/github-copilot-token-zskwAEpd.cjs +1 -0
  660. package/dist/plugin-sdk/google-gemini-cli-auth.cjs +1 -0
  661. package/dist/plugin-sdk/google-gemini-cli-auth.js +1 -0
  662. package/dist/plugin-sdk/googlechat.cjs +1 -0
  663. package/dist/plugin-sdk/googlechat.js +1 -0
  664. package/dist/plugin-sdk/image-B6HEHWlJ.js +1 -0
  665. package/dist/plugin-sdk/image-Bte8cr4F.js +1 -0
  666. package/dist/plugin-sdk/image-BxafJgQ6.cjs +1 -0
  667. package/dist/plugin-sdk/image-CDI5SqeR.js +1 -0
  668. package/dist/plugin-sdk/image-CTgwucug.cjs +1 -0
  669. package/dist/plugin-sdk/image-CWnsS03L.js +1 -0
  670. package/dist/plugin-sdk/image-CoksjGBL.cjs +1 -0
  671. package/dist/plugin-sdk/image-CuOIoxl2.cjs +1 -0
  672. package/dist/plugin-sdk/image-DJyEMzkq.cjs +1 -0
  673. package/dist/plugin-sdk/image-DegWnAZU.cjs +1 -0
  674. package/dist/plugin-sdk/image-TCSQZpr6.js +1 -0
  675. package/dist/plugin-sdk/image-aG-5S1vd.js +1 -0
  676. package/dist/plugin-sdk/imessage.cjs +1 -0
  677. package/dist/plugin-sdk/imessage.js +1 -0
  678. package/dist/plugin-sdk/index.cjs +1 -0
  679. package/dist/plugin-sdk/index.js +1 -0
  680. package/dist/plugin-sdk/ir-8rDh7div.js +1 -0
  681. package/dist/plugin-sdk/ir-Bh6lKGdS.js +1 -0
  682. package/dist/plugin-sdk/ir-C3VNqnc2.cjs +1 -0
  683. package/dist/plugin-sdk/ir-CZOtKajq.cjs +1 -0
  684. package/dist/plugin-sdk/ir-CveCWs8q.cjs +1 -0
  685. package/dist/plugin-sdk/ir-DAxY-7c1.cjs +1 -0
  686. package/dist/plugin-sdk/ir-DSuLr2UE.cjs +1 -0
  687. package/dist/plugin-sdk/ir-DanxCjD-.cjs +1 -0
  688. package/dist/plugin-sdk/ir-Dgc6qZMX.js +1 -0
  689. package/dist/plugin-sdk/ir-OBi5zaEW.js +1 -0
  690. package/dist/plugin-sdk/ir-hQ6EW92h.js +1 -0
  691. package/dist/plugin-sdk/ir-ynWQeZD9.js +1 -0
  692. package/dist/plugin-sdk/irc.cjs +1 -0
  693. package/dist/plugin-sdk/irc.js +1 -0
  694. package/dist/plugin-sdk/keyed-async-queue.cjs +1 -0
  695. package/dist/plugin-sdk/keyed-async-queue.js +1 -0
  696. package/dist/plugin-sdk/line.cjs +1 -0
  697. package/dist/plugin-sdk/line.js +1 -0
  698. package/dist/plugin-sdk/llm-task.cjs +1 -0
  699. package/dist/plugin-sdk/llm-task.js +1 -0
  700. package/dist/plugin-sdk/load-options-B9Ss5YOO.js +1 -0
  701. package/dist/plugin-sdk/load-options-BOfn6Zgo.cjs +1 -0
  702. package/dist/plugin-sdk/load-options-BXvm8HVv.js +1 -0
  703. package/dist/plugin-sdk/load-options-Bb7u8yZz.cjs +1 -0
  704. package/dist/plugin-sdk/load-options-BcSg1ODN.js +1 -0
  705. package/dist/plugin-sdk/load-options-NqnXJ-Nh.cjs +1 -0
  706. package/dist/plugin-sdk/lobster.cjs +1 -0
  707. package/dist/plugin-sdk/lobster.js +1 -0
  708. package/dist/plugin-sdk/local-roots-5udQUs81.js +1 -0
  709. package/dist/plugin-sdk/local-roots-BmhNPIJm.cjs +1 -0
  710. package/dist/plugin-sdk/local-roots-C5UoE741.cjs +1 -0
  711. package/dist/plugin-sdk/local-roots-Ca8KoAAp.js +1 -0
  712. package/dist/plugin-sdk/local-roots-CeAYfmPb.cjs +1 -0
  713. package/dist/plugin-sdk/local-roots-Cu7YCpql.cjs +1 -0
  714. package/dist/plugin-sdk/local-roots-D0yN794S.js +1 -0
  715. package/dist/plugin-sdk/local-roots-D4i3H0UG.cjs +1 -0
  716. package/dist/plugin-sdk/local-roots-DGe-SRNu.js +1 -0
  717. package/dist/plugin-sdk/local-roots-bWA2msT0.js +1 -0
  718. package/dist/plugin-sdk/local-roots-tee85Q-1.js +1 -0
  719. package/dist/plugin-sdk/local-roots-wTkpE7go.cjs +1 -0
  720. package/dist/plugin-sdk/logger-6O6OsYBL.cjs +1 -0
  721. package/dist/plugin-sdk/logger-BlddiV_d.cjs +1 -0
  722. package/dist/plugin-sdk/logger-Bm93ZKOk.cjs +1 -0
  723. package/dist/plugin-sdk/logger-BtrWb0dj.js +1 -0
  724. package/dist/plugin-sdk/logger-C210xuWx.js +1 -0
  725. package/dist/plugin-sdk/logger-DJGHvDbX.js +1 -0
  726. package/dist/plugin-sdk/logger-DPlqYkRm.cjs +1 -0
  727. package/dist/plugin-sdk/logger-DUYnS-W3.cjs +1 -0
  728. package/dist/plugin-sdk/logger-DwWqfo66.js +1 -0
  729. package/dist/plugin-sdk/logger-vBDTZWl3.js +1 -0
  730. package/dist/plugin-sdk/login-B5IwNcl4.cjs +1 -0
  731. package/dist/plugin-sdk/login-BIbt7ZL_.js +1 -0
  732. package/dist/plugin-sdk/login-CxnDKwXC.js +1 -0
  733. package/dist/plugin-sdk/login-D5iTWowo.cjs +1 -0
  734. package/dist/plugin-sdk/login-DHE1rzB1.js +1 -0
  735. package/dist/plugin-sdk/login-DIPBcPQc.cjs +1 -0
  736. package/dist/plugin-sdk/login-DtDOozuU.js +1 -0
  737. package/dist/plugin-sdk/login-UrWNtI80.cjs +1 -0
  738. package/dist/plugin-sdk/login-VviMkBU2.js +1 -0
  739. package/dist/plugin-sdk/login-jQwwt6C-.js +1 -0
  740. package/dist/plugin-sdk/login-mGjCzJzb.cjs +1 -0
  741. package/dist/plugin-sdk/login-pZnnpj38.cjs +1 -0
  742. package/dist/plugin-sdk/login-qr-BexuTIDJ.cjs +1 -0
  743. package/dist/plugin-sdk/login-qr-C366Qlh-.cjs +1 -0
  744. package/dist/plugin-sdk/login-qr-CQY4ty0o.js +1 -0
  745. package/dist/plugin-sdk/login-qr-CSabEb-n.cjs +1 -0
  746. package/dist/plugin-sdk/login-qr-CUgNKijx.js +1 -0
  747. package/dist/plugin-sdk/login-qr-C_LEw1Bi.js +1 -0
  748. package/dist/plugin-sdk/login-qr-CcPvldsG.js +1 -0
  749. package/dist/plugin-sdk/login-qr-CnNGKwDR.cjs +1 -0
  750. package/dist/plugin-sdk/login-qr-DQm50pXk.js +1 -0
  751. package/dist/plugin-sdk/login-qr-DayvAWkx.js +1 -0
  752. package/dist/plugin-sdk/login-qr-eodIsL9V.cjs +1 -0
  753. package/dist/plugin-sdk/login-qr-yIJE7MmY.cjs +1 -0
  754. package/dist/plugin-sdk/manager-932XljTT.js +1 -0
  755. package/dist/plugin-sdk/manager-CGHd5p2T.js +1 -0
  756. package/dist/plugin-sdk/manager-CbGA_JDa.js +1 -0
  757. package/dist/plugin-sdk/manager-CdD7HaGW.cjs +1 -0
  758. package/dist/plugin-sdk/manager-CmAH_a7A.cjs +1 -0
  759. package/dist/plugin-sdk/manager-DIS4ywpb.cjs +1 -0
  760. package/dist/plugin-sdk/manager-DQ2C-2IU.cjs +1 -0
  761. package/dist/plugin-sdk/manager-DdvFnsT7.cjs +1 -0
  762. package/dist/plugin-sdk/manager-DfdDglld.js +1 -0
  763. package/dist/plugin-sdk/manager-MR9stU_p.js +1 -0
  764. package/dist/plugin-sdk/manager-WwW37IUu.js +1 -0
  765. package/dist/plugin-sdk/manager-gE9187gu.cjs +1 -0
  766. package/dist/plugin-sdk/matrix.cjs +1 -0
  767. package/dist/plugin-sdk/matrix.js +1 -0
  768. package/dist/plugin-sdk/mattermost.cjs +1 -0
  769. package/dist/plugin-sdk/mattermost.js +1 -0
  770. package/dist/plugin-sdk/memory-core.cjs +1 -0
  771. package/dist/plugin-sdk/memory-core.js +1 -0
  772. package/dist/plugin-sdk/minimax-portal-auth.cjs +1 -0
  773. package/dist/plugin-sdk/minimax-portal-auth.js +1 -0
  774. package/dist/plugin-sdk/model-auth-BpS4IWDi.cjs +1 -0
  775. package/dist/plugin-sdk/model-auth-BwajGuoF.cjs +1 -0
  776. package/dist/plugin-sdk/model-auth-C1YL9HcW.js +1 -0
  777. package/dist/plugin-sdk/model-auth-Cc-8H6Cu.js +1 -0
  778. package/dist/plugin-sdk/model-auth-Cw3fuhm_.js +1 -0
  779. package/dist/plugin-sdk/model-auth-CycDtQl-.js +1 -0
  780. package/dist/plugin-sdk/model-auth-D-7xiXhK.cjs +1 -0
  781. package/dist/plugin-sdk/model-auth-TFUxaK0f.cjs +1 -0
  782. package/dist/plugin-sdk/model-selection-BADTZM9n.cjs +1 -0
  783. package/dist/plugin-sdk/model-selection-DUAudCtL.js +1 -0
  784. package/dist/plugin-sdk/msteams.cjs +1 -0
  785. package/dist/plugin-sdk/msteams.js +1 -0
  786. package/dist/plugin-sdk/nextcloud-talk.cjs +1 -0
  787. package/dist/plugin-sdk/nextcloud-talk.js +1 -0
  788. package/dist/plugin-sdk/nostr.cjs +1 -0
  789. package/dist/plugin-sdk/nostr.js +1 -0
  790. package/dist/plugin-sdk/outbound-2Lo6mZEY.js +1 -0
  791. package/dist/plugin-sdk/outbound-9XFlZzaF.cjs +1 -0
  792. package/dist/plugin-sdk/outbound-BlWsUmjQ.js +1 -0
  793. package/dist/plugin-sdk/outbound-Bs2rUcWZ.cjs +1 -0
  794. package/dist/plugin-sdk/outbound-C18nEOFP.js +1 -0
  795. package/dist/plugin-sdk/outbound-CW3o4Eng.cjs +1 -0
  796. package/dist/plugin-sdk/outbound-CzsdW5sy.js +1 -0
  797. package/dist/plugin-sdk/outbound-DcP22VOo.cjs +1 -0
  798. package/dist/plugin-sdk/outbound-QhOJAEO8.cjs +1 -0
  799. package/dist/plugin-sdk/outbound-attachment-1pf06Oiu.cjs +1 -0
  800. package/dist/plugin-sdk/outbound-attachment-B8-ZVX2i.cjs +1 -0
  801. package/dist/plugin-sdk/outbound-attachment-BDwI_tn0.cjs +1 -0
  802. package/dist/plugin-sdk/outbound-attachment-BXhbJils.js +1 -0
  803. package/dist/plugin-sdk/outbound-attachment-Bgf1pCh8.js +1 -0
  804. package/dist/plugin-sdk/outbound-attachment-COgf85S8.cjs +1 -0
  805. package/dist/plugin-sdk/outbound-attachment-CfN9OvMC.js +1 -0
  806. package/dist/plugin-sdk/outbound-attachment-CftilZWd.js +1 -0
  807. package/dist/plugin-sdk/outbound-attachment-Cujprd6T.cjs +1 -0
  808. package/dist/plugin-sdk/outbound-attachment-CvSHb9ci.js +1 -0
  809. package/dist/plugin-sdk/outbound-attachment-DQYtdTUw.js +1 -0
  810. package/dist/plugin-sdk/outbound-attachment-FqWC0WJx.cjs +1 -0
  811. package/dist/plugin-sdk/outbound-dTvIiFIZ.js +1 -0
  812. package/dist/plugin-sdk/outbound-fZ1WJGfe.cjs +1 -0
  813. package/dist/plugin-sdk/outbound-oHoWYWxf.js +1 -0
  814. package/dist/plugin-sdk/paths-BPlgbwrb.cjs +1 -0
  815. package/dist/plugin-sdk/paths-Bcdg3ma0.cjs +1 -0
  816. package/dist/plugin-sdk/paths-BpQOWYiT.js +1 -0
  817. package/dist/plugin-sdk/paths-BvlJvmRS.cjs +1 -0
  818. package/dist/plugin-sdk/paths-CIcxeNL-.cjs +1 -0
  819. package/dist/plugin-sdk/paths-CXgWvWAM.js +1 -0
  820. package/dist/plugin-sdk/paths-Chp3zwtq.cjs +1 -0
  821. package/dist/plugin-sdk/paths-CnHSNSeR.js +1 -0
  822. package/dist/plugin-sdk/paths-Cqca1YmF.cjs +1 -0
  823. package/dist/plugin-sdk/paths-CtrEseGU.js +1 -0
  824. package/dist/plugin-sdk/paths-D55o_j8-.js +1 -0
  825. package/dist/plugin-sdk/paths-D90l3h_o.cjs +1 -0
  826. package/dist/plugin-sdk/paths-DaRoqzBQ.js +1 -0
  827. package/dist/plugin-sdk/paths-Dd7r1qlB.cjs +1 -0
  828. package/dist/plugin-sdk/paths-DhSjTRMz.js +1 -0
  829. package/dist/plugin-sdk/paths-Do0djuaj.js +1 -0
  830. package/dist/plugin-sdk/paths-J4JUiRsa.js +1 -0
  831. package/dist/plugin-sdk/paths-cBAF6Bj0.js +1 -0
  832. package/dist/plugin-sdk/paths-piJASC5k.js +1 -0
  833. package/dist/plugin-sdk/paths-rO4ehkyU.js +1 -0
  834. package/dist/plugin-sdk/pi-model-discovery-B9boErNZ.cjs +1 -0
  835. package/dist/plugin-sdk/pi-model-discovery-BJ8wTgFH.cjs +1 -0
  836. package/dist/plugin-sdk/pi-model-discovery-Bb2vCP6M.js +1 -0
  837. package/dist/plugin-sdk/pi-model-discovery-Bor7jHYd.js +1 -0
  838. package/dist/plugin-sdk/pi-model-discovery-BrTw1qE2.cjs +1 -0
  839. package/dist/plugin-sdk/pi-model-discovery-BuEMyAsU.js +1 -0
  840. package/dist/plugin-sdk/pi-model-discovery-CV9NTjC4.js +1 -0
  841. package/dist/plugin-sdk/pi-model-discovery-D5tLf04u.js +1 -0
  842. package/dist/plugin-sdk/pi-model-discovery-D5xlUS2J.cjs +1 -0
  843. package/dist/plugin-sdk/pi-model-discovery-DGoPUzBj.cjs +1 -0
  844. package/dist/plugin-sdk/pi-model-discovery-DMrqvV1O.cjs +1 -0
  845. package/dist/plugin-sdk/pi-model-discovery-DoY7qnlI.cjs +1 -0
  846. package/dist/plugin-sdk/pi-model-discovery-Dqq9Vm8o.js +1 -0
  847. package/dist/plugin-sdk/pi-model-discovery-zCuISPPq.js +1 -0
  848. package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-4238P8NF.js +1 -0
  849. package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-BEoqzgFe.cjs +1 -0
  850. package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-BGPjibRD.js +1 -0
  851. package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-BJ_amISU.cjs +1 -0
  852. package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-BX2r_qPT.cjs +1 -0
  853. package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-CGLHFxSr.js +1 -0
  854. package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-CsNn_Lv8.js +1 -0
  855. package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-CsiKBTHg.cjs +1 -0
  856. package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-CuXQQk4F.cjs +1 -0
  857. package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-DNatrz-3.cjs +1 -0
  858. package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-PApjB0tY.js +1 -0
  859. package/dist/plugin-sdk/pi-tools.before-tool-call.runtime-xsXDBYNq.js +1 -0
  860. package/dist/plugin-sdk/polls-BuaJuIpV.cjs +1 -0
  861. package/dist/plugin-sdk/polls-CBAGZuJ6.js +1 -0
  862. package/dist/plugin-sdk/polls-CSKMbBIS.js +1 -0
  863. package/dist/plugin-sdk/polls-D0wY0FvT.cjs +1 -0
  864. package/dist/plugin-sdk/polls-PGxiE05J.js +1 -0
  865. package/dist/plugin-sdk/polls-yWqSCEP0.cjs +1 -0
  866. package/dist/plugin-sdk/proxy-env-B765haXA.js +1 -0
  867. package/dist/plugin-sdk/proxy-env-Bcl14j2_.cjs +1 -0
  868. package/dist/plugin-sdk/proxy-env-BlrHtJWH.js +1 -0
  869. package/dist/plugin-sdk/proxy-env-D48qBPAr.cjs +1 -0
  870. package/dist/plugin-sdk/proxy-env-DGzNnnJh.js +1 -0
  871. package/dist/plugin-sdk/proxy-env-DQoJjkWE.cjs +1 -0
  872. package/dist/plugin-sdk/proxy-env-DWw9TnOj.cjs +1 -0
  873. package/dist/plugin-sdk/proxy-env-MEjSyzTr.js +1 -0
  874. package/dist/plugin-sdk/proxy-env-a590sPAz.cjs +1 -0
  875. package/dist/plugin-sdk/proxy-env-k93igu7v.cjs +1 -0
  876. package/dist/plugin-sdk/proxy-env-m9eG3uZN.js +1 -0
  877. package/dist/plugin-sdk/proxy-env-t6hcaFqC.js +1 -0
  878. package/dist/plugin-sdk/proxy-fetch-B9aXJVe-.js +1 -0
  879. package/dist/plugin-sdk/proxy-fetch-BaA3JYgW.cjs +1 -0
  880. package/dist/plugin-sdk/proxy-fetch-BwXFVsHE.cjs +1 -0
  881. package/dist/plugin-sdk/proxy-fetch-BzcKzknk.cjs +1 -0
  882. package/dist/plugin-sdk/proxy-fetch-CYVChsKE.js +1 -0
  883. package/dist/plugin-sdk/proxy-fetch-ClOb2LUH.js +1 -0
  884. package/dist/plugin-sdk/proxy-fetch-DH7VIiBH.cjs +1 -0
  885. package/dist/plugin-sdk/proxy-fetch-DPOhfrou.cjs +1 -0
  886. package/dist/plugin-sdk/proxy-fetch-DXt2R_Z5.js +1 -0
  887. package/dist/plugin-sdk/proxy-fetch-Del551nu.js +1 -0
  888. package/dist/plugin-sdk/proxy-fetch-YCVHz7Rl.js +1 -0
  889. package/dist/plugin-sdk/proxy-fetch-qbrYAz8k.cjs +1 -0
  890. package/dist/plugin-sdk/pw-ai-B0_rvdfF.js +1 -0
  891. package/dist/plugin-sdk/pw-ai-BqdrA15F.js +1 -0
  892. package/dist/plugin-sdk/pw-ai-CDzxu5B3.js +1 -0
  893. package/dist/plugin-sdk/pw-ai-CJIogpwF.cjs +1 -0
  894. package/dist/plugin-sdk/pw-ai-CL_gU5PJ.cjs +1 -0
  895. package/dist/plugin-sdk/pw-ai-Ca4aZTaG.cjs +1 -0
  896. package/dist/plugin-sdk/pw-ai-CrfYxLI8.cjs +1 -0
  897. package/dist/plugin-sdk/pw-ai-DCiFlwP8.js +1 -0
  898. package/dist/plugin-sdk/pw-ai-DSqXNmNZ.js +1 -0
  899. package/dist/plugin-sdk/pw-ai-Dh55xTz1.cjs +1 -0
  900. package/dist/plugin-sdk/pw-ai-DxAvipyK.cjs +1 -0
  901. package/dist/plugin-sdk/pw-ai-U9nPHH-0.js +1 -0
  902. package/dist/plugin-sdk/qmd-manager-B3xNbdye.cjs +1 -0
  903. package/dist/plugin-sdk/qmd-manager-BMyDNBPi.js +1 -0
  904. package/dist/plugin-sdk/qmd-manager-BZhiv_zq.cjs +1 -0
  905. package/dist/plugin-sdk/qmd-manager-C3uVDbhW.js +1 -0
  906. package/dist/plugin-sdk/qmd-manager-CW46NrS-.cjs +1 -0
  907. package/dist/plugin-sdk/qmd-manager-C_e04BNg.js +1 -0
  908. package/dist/plugin-sdk/qmd-manager-CczVoslK.cjs +1 -0
  909. package/dist/plugin-sdk/qmd-manager-CzLKqPmR.js +1 -0
  910. package/dist/plugin-sdk/qmd-manager-DFh8b5N-.cjs +1 -0
  911. package/dist/plugin-sdk/qmd-manager-DXLfZZMI.js +1 -0
  912. package/dist/plugin-sdk/qmd-manager-FL9fAfNo.cjs +1 -0
  913. package/dist/plugin-sdk/qmd-manager-fWxbGqzk.js +1 -0
  914. package/dist/plugin-sdk/query-expansion-0zYzKrrd.cjs +1 -0
  915. package/dist/plugin-sdk/query-expansion-BYSjmpkV.cjs +1 -0
  916. package/dist/plugin-sdk/query-expansion-CAboqtWr.js +1 -0
  917. package/dist/plugin-sdk/query-expansion-C_DnhmUy.js +1 -0
  918. package/dist/plugin-sdk/query-expansion-Cb2vnF6y.js +1 -0
  919. package/dist/plugin-sdk/query-expansion-DCeqywxh.cjs +1 -0
  920. package/dist/plugin-sdk/query-expansion-DF4LMxRQ.js +1 -0
  921. package/dist/plugin-sdk/query-expansion-DKJkqmNM.cjs +1 -0
  922. package/dist/plugin-sdk/query-expansion-DO2CFW4z.cjs +1 -0
  923. package/dist/plugin-sdk/query-expansion-DyCDaZbL.js +1 -0
  924. package/dist/plugin-sdk/query-expansion-cpXCyoDy.cjs +1 -0
  925. package/dist/plugin-sdk/query-expansion-r_iXkNzt.js +1 -0
  926. package/dist/plugin-sdk/qwen-portal-auth.cjs +1 -0
  927. package/dist/plugin-sdk/qwen-portal-auth.js +1 -0
  928. package/dist/plugin-sdk/render-6fCdtAr6.cjs +1 -0
  929. package/dist/plugin-sdk/render-CBsnn-2A.js +1 -0
  930. package/dist/plugin-sdk/render-CzHaQB0d.cjs +1 -0
  931. package/dist/plugin-sdk/render-DGmfCIRG.js +1 -0
  932. package/dist/plugin-sdk/render-DhTJXP1U.js +1 -0
  933. package/dist/plugin-sdk/render-Djx15dPh.js +1 -0
  934. package/dist/plugin-sdk/render-DxBO2Blp.cjs +1 -0
  935. package/dist/plugin-sdk/render-g5VlmgpF.cjs +1 -0
  936. package/dist/plugin-sdk/reply-0zCEbT4w.cjs +1 -0
  937. package/dist/plugin-sdk/reply-D-f2bbXy.js +1 -0
  938. package/dist/plugin-sdk/resolve-outbound-target-CrQGbaua.js +1 -0
  939. package/dist/plugin-sdk/resolve-outbound-target-H7Q9HcfW.js +1 -0
  940. package/dist/plugin-sdk/resolve-outbound-target-MS6Xpp17.cjs +1 -0
  941. package/dist/plugin-sdk/resolve-outbound-target-cDxjy3TL.cjs +1 -0
  942. package/dist/plugin-sdk/send-3VNTSIhr.js +1 -0
  943. package/dist/plugin-sdk/send-61GHLNYP.cjs +1 -0
  944. package/dist/plugin-sdk/send-6q4owAw0.js +1 -0
  945. package/dist/plugin-sdk/send-A2s5sPTd.js +1 -0
  946. package/dist/plugin-sdk/send-B2qa7CSk.js +1 -0
  947. package/dist/plugin-sdk/send-B3aEYvqG.cjs +1 -0
  948. package/dist/plugin-sdk/send-BAoqP09M.cjs +1 -0
  949. package/dist/plugin-sdk/send-BNBJ4CF8.js +1 -0
  950. package/dist/plugin-sdk/send-BTE2rI1E.js +1 -0
  951. package/dist/plugin-sdk/send-BlWuQHYB.js +1 -0
  952. package/dist/plugin-sdk/send-Bnvt7ZUE.cjs +1 -0
  953. package/dist/plugin-sdk/send-Bq6Mqs9G.cjs +1 -0
  954. package/dist/plugin-sdk/send-Bq787fi_.js +1 -0
  955. package/dist/plugin-sdk/send-BrAHLYBR.js +1 -0
  956. package/dist/plugin-sdk/send-Bt2eFBk2.js +1 -0
  957. package/dist/plugin-sdk/send-C4ZFbUux.js +1 -0
  958. package/dist/plugin-sdk/send-C4cyMW4S.cjs +1 -0
  959. package/dist/plugin-sdk/send-C8f5H4XV.cjs +1 -0
  960. package/dist/plugin-sdk/send-CDwTrbgT.cjs +1 -0
  961. package/dist/plugin-sdk/send-CEfs0Fsr.js +1 -0
  962. package/dist/plugin-sdk/send-CFuJjCNB.cjs +1 -0
  963. package/dist/plugin-sdk/send-CJGLeSJ8.cjs +1 -0
  964. package/dist/plugin-sdk/send-CL0W7jLW.js +1 -0
  965. package/dist/plugin-sdk/send-CLl490Gb.cjs +1 -0
  966. package/dist/plugin-sdk/send-CQtITZ7k.cjs +1 -0
  967. package/dist/plugin-sdk/send-CSGh_GVr.cjs +1 -0
  968. package/dist/plugin-sdk/send-CicLiXB4.js +1 -0
  969. package/dist/plugin-sdk/send-Cm7bEwx-.cjs +1 -0
  970. package/dist/plugin-sdk/send-CmO9z2-b.js +1 -0
  971. package/dist/plugin-sdk/send-Co_Wy2kT.cjs +1 -0
  972. package/dist/plugin-sdk/send-Cox_iyYB.cjs +1 -0
  973. package/dist/plugin-sdk/send-CuX4LcJ3.cjs +1 -0
  974. package/dist/plugin-sdk/send-CxMiTtxI.cjs +1 -0
  975. package/dist/plugin-sdk/send-CyyzWwDr.js +1 -0
  976. package/dist/plugin-sdk/send-D-HZnehy.cjs +1 -0
  977. package/dist/plugin-sdk/send-D-qD7BCb.js +1 -0
  978. package/dist/plugin-sdk/send-D3imkSlz.cjs +1 -0
  979. package/dist/plugin-sdk/send-D5UwpCoU.cjs +1 -0
  980. package/dist/plugin-sdk/send-D75OGJco.js +1 -0
  981. package/dist/plugin-sdk/send-DB4i1kUy.cjs +1 -0
  982. package/dist/plugin-sdk/send-DBjzdBda.cjs +1 -0
  983. package/dist/plugin-sdk/send-DPgRTM8s.js +1 -0
  984. package/dist/plugin-sdk/send-DPpBLiL4.js +1 -0
  985. package/dist/plugin-sdk/send-DV_afQnj.cjs +1 -0
  986. package/dist/plugin-sdk/send-DWuChr46.js +1 -0
  987. package/dist/plugin-sdk/send-DZ4szmEa.cjs +1 -0
  988. package/dist/plugin-sdk/send-DZr98eqE.cjs +1 -0
  989. package/dist/plugin-sdk/send-D_1K0zmx.cjs +1 -0
  990. package/dist/plugin-sdk/send-DaLB9Lca.js +1 -0
  991. package/dist/plugin-sdk/send-De4qiprb.js +1 -0
  992. package/dist/plugin-sdk/send-DeU-T5ps.js +1 -0
  993. package/dist/plugin-sdk/send-DtjJM0LO.js +1 -0
  994. package/dist/plugin-sdk/send-DvDCmTQf.js +1 -0
  995. package/dist/plugin-sdk/send-EvcsiFBC.cjs +1 -0
  996. package/dist/plugin-sdk/send-GuISe9C82.js +1 -0
  997. package/dist/plugin-sdk/send-IoGcE0w2.js +1 -0
  998. package/dist/plugin-sdk/send-JVdUTsN1.cjs +1 -0
  999. package/dist/plugin-sdk/send-NpNVFRmY.js +1 -0
  1000. package/dist/plugin-sdk/send-XMOZsJcs.js +1 -0
  1001. package/dist/plugin-sdk/send-h--iKoQE.cjs +1 -0
  1002. package/dist/plugin-sdk/session-8BcB905y.cjs +1 -0
  1003. package/dist/plugin-sdk/session-B2oURX5K.js +1 -0
  1004. package/dist/plugin-sdk/session-BJhNqIOi.js +1 -0
  1005. package/dist/plugin-sdk/session-BRgGsw96.cjs +1 -0
  1006. package/dist/plugin-sdk/session-Be_7rXAz.js +1 -0
  1007. package/dist/plugin-sdk/session-C66IXbE-.js +1 -0
  1008. package/dist/plugin-sdk/session-CCYDbcyV.js +1 -0
  1009. package/dist/plugin-sdk/session-CHu3C2m0.cjs +1 -0
  1010. package/dist/plugin-sdk/session-DUlmK2IL.cjs +1 -0
  1011. package/dist/plugin-sdk/session-DxTRZTnu.js +1 -0
  1012. package/dist/plugin-sdk/session-DzhI0nj-.cjs +1 -0
  1013. package/dist/plugin-sdk/session-WRCBgAzG.cjs +1 -0
  1014. package/dist/plugin-sdk/sessions-DxXXAfdI.js +1 -0
  1015. package/dist/plugin-sdk/sessions-Dz5JUL8j.cjs +1 -0
  1016. package/dist/plugin-sdk/signal.cjs +1 -0
  1017. package/dist/plugin-sdk/signal.js +1 -0
  1018. package/dist/plugin-sdk/skill-commands-B4wI8ETo.cjs +1 -0
  1019. package/dist/plugin-sdk/skill-commands-BoTeA376.cjs +1 -0
  1020. package/dist/plugin-sdk/skill-commands-BwrYJu7Z.js +1 -0
  1021. package/dist/plugin-sdk/skill-commands-BzkMuA58.cjs +1 -0
  1022. package/dist/plugin-sdk/skill-commands-CIAf9cWN.cjs +1 -0
  1023. package/dist/plugin-sdk/skill-commands-CKc7JO_c.cjs +1 -0
  1024. package/dist/plugin-sdk/skill-commands-Cvb6oXym.js +1 -0
  1025. package/dist/plugin-sdk/skill-commands-DWDtyCtB.js +1 -0
  1026. package/dist/plugin-sdk/skill-commands-Hmuw0PPK.js +1 -0
  1027. package/dist/plugin-sdk/skill-commands-KyN0FGaC.cjs +1 -0
  1028. package/dist/plugin-sdk/skill-commands-KzwEqk5p.js +1 -0
  1029. package/dist/plugin-sdk/skill-commands-Ny38ZFIC.js +1 -0
  1030. package/dist/plugin-sdk/slack.cjs +1 -0
  1031. package/dist/plugin-sdk/slack.js +1 -0
  1032. package/dist/plugin-sdk/synology-chat.cjs +1 -0
  1033. package/dist/plugin-sdk/synology-chat.js +1 -0
  1034. package/dist/plugin-sdk/tables-BIDWwpX8.js +1 -0
  1035. package/dist/plugin-sdk/tables-Bk8lHaPx.cjs +1 -0
  1036. package/dist/plugin-sdk/tables-BlNIkMV8.js +1 -0
  1037. package/dist/plugin-sdk/tables-Bp0a2WRP.cjs +1 -0
  1038. package/dist/plugin-sdk/tables-BtVUf77b.cjs +1 -0
  1039. package/dist/plugin-sdk/tables-C4j5Bar_.js +1 -0
  1040. package/dist/plugin-sdk/tables-CZGtYzDC.cjs +1 -0
  1041. package/dist/plugin-sdk/tables-CnrHab5d.cjs +1 -0
  1042. package/dist/plugin-sdk/tables-DtslIPYw.js +1 -0
  1043. package/dist/plugin-sdk/tables-NrdtIJGp.cjs +1 -0
  1044. package/dist/plugin-sdk/tables-XYb3T-vE.js +1 -0
  1045. package/dist/plugin-sdk/tables-lbv-0tl3.js +1 -0
  1046. package/dist/plugin-sdk/target-errors-9cdJA1L2.cjs +1 -0
  1047. package/dist/plugin-sdk/target-errors-BEkhKWCq.cjs +1 -0
  1048. package/dist/plugin-sdk/target-errors-BZRN-lPd.js +1 -0
  1049. package/dist/plugin-sdk/target-errors-BrwqillR.cjs +1 -0
  1050. package/dist/plugin-sdk/target-errors-Buo5pfom.js +1 -0
  1051. package/dist/plugin-sdk/target-errors-CFzzcffg.js +1 -0
  1052. package/dist/plugin-sdk/target-errors-DFmK5loi.js +1 -0
  1053. package/dist/plugin-sdk/target-errors-DXqwykNX.js +1 -0
  1054. package/dist/plugin-sdk/target-errors-Dd6CopYF.cjs +1 -0
  1055. package/dist/plugin-sdk/target-errors-DeNJ10ks.cjs +1 -0
  1056. package/dist/plugin-sdk/targets-BSc11Uk8.cjs +1 -0
  1057. package/dist/plugin-sdk/targets-BSkiizml.js +1 -0
  1058. package/dist/plugin-sdk/targets-CBI0xqve.cjs +1 -0
  1059. package/dist/plugin-sdk/targets-CL5fYQi7.js +1 -0
  1060. package/dist/plugin-sdk/targets-CUZWrFrm.cjs +1 -0
  1061. package/dist/plugin-sdk/targets-CVEYTFPQ.js +1 -0
  1062. package/dist/plugin-sdk/targets-Co2R6K14.cjs +1 -0
  1063. package/dist/plugin-sdk/targets-CrkJkzil.js +1 -0
  1064. package/dist/plugin-sdk/targets-D-m7SV9x.cjs +1 -0
  1065. package/dist/plugin-sdk/targets-D8HTxbo4.js +1 -0
  1066. package/dist/plugin-sdk/targets-DcGNB9nk.cjs +1 -0
  1067. package/dist/plugin-sdk/targets-Dn9gDiEw.js +1 -0
  1068. package/dist/plugin-sdk/targets-X28mff4s.cjs +1 -0
  1069. package/dist/plugin-sdk/targets-uycXZ8vQ.js +1 -0
  1070. package/dist/plugin-sdk/telegram.cjs +1 -0
  1071. package/dist/plugin-sdk/telegram.js +1 -0
  1072. package/dist/plugin-sdk/test-utils.cjs +1 -0
  1073. package/dist/plugin-sdk/test-utils.js +1 -0
  1074. package/dist/plugin-sdk/tlon.cjs +1 -0
  1075. package/dist/plugin-sdk/tlon.js +1 -0
  1076. package/dist/plugin-sdk/tokens-AAdZjj0M.js +1 -0
  1077. package/dist/plugin-sdk/tokens-B20KNIDD.js +1 -0
  1078. package/dist/plugin-sdk/tokens-B8ys7Q2e.js +1 -0
  1079. package/dist/plugin-sdk/tokens-BPc1fcZ3.js +1 -0
  1080. package/dist/plugin-sdk/tokens-BqABmXSe.js +1 -0
  1081. package/dist/plugin-sdk/tokens-CXsPDJTr.cjs +1 -0
  1082. package/dist/plugin-sdk/tokens-CnB4dJmp.cjs +1 -0
  1083. package/dist/plugin-sdk/tokens-CytSl1X8.cjs +1 -0
  1084. package/dist/plugin-sdk/tokens-DgPZk2Uu.js +1 -0
  1085. package/dist/plugin-sdk/tokens-Dq2wDF3_.cjs +1 -0
  1086. package/dist/plugin-sdk/tokens-DtrljGtQ.cjs +1 -0
  1087. package/dist/plugin-sdk/tokens-g5KWvWhD.cjs +1 -0
  1088. package/dist/plugin-sdk/twitch.cjs +1 -0
  1089. package/dist/plugin-sdk/twitch.js +1 -0
  1090. package/dist/plugin-sdk/utils-BJtJR72k.js +1 -0
  1091. package/dist/plugin-sdk/utils-PPIvU9qw.cjs +1 -0
  1092. package/dist/plugin-sdk/voice-call.cjs +1 -0
  1093. package/dist/plugin-sdk/voice-call.js +1 -0
  1094. package/dist/plugin-sdk/web-B-QDcVRv.cjs +1 -0
  1095. package/dist/plugin-sdk/web-B2PwjHsu.cjs +1 -0
  1096. package/dist/plugin-sdk/web-BdnQzLgF.js +1 -0
  1097. package/dist/plugin-sdk/web-C9T7tf6w.js +1 -0
  1098. package/dist/plugin-sdk/web-CODD4ksc.cjs +1 -0
  1099. package/dist/plugin-sdk/web-CkdCvvR-.js +1 -0
  1100. package/dist/plugin-sdk/web-_tj8xNZE.js +1 -0
  1101. package/dist/plugin-sdk/web-pcTha_l7.cjs +1 -0
  1102. package/dist/plugin-sdk/weixin.cjs +1 -0
  1103. package/dist/plugin-sdk/weixin.js +1 -0
  1104. package/dist/plugin-sdk/whatsapp-actions-Bhz2j1uz.cjs +1 -0
  1105. package/dist/plugin-sdk/whatsapp-actions-Bm2UyRYg.cjs +1 -0
  1106. package/dist/plugin-sdk/whatsapp-actions-Bolz0jl5.js +1 -0
  1107. package/dist/plugin-sdk/whatsapp-actions-CJ3LDpaG.js +1 -0
  1108. package/dist/plugin-sdk/whatsapp-actions-CL1Gmkb0.js +1 -0
  1109. package/dist/plugin-sdk/whatsapp-actions-D-bZRT7s.js +1 -0
  1110. package/dist/plugin-sdk/whatsapp-actions-DSGTTE8M.cjs +1 -0
  1111. package/dist/plugin-sdk/whatsapp-actions-DjQxgMpW.cjs +1 -0
  1112. package/dist/plugin-sdk/whatsapp-actions-DrPBBi5t.cjs +1 -0
  1113. package/dist/plugin-sdk/whatsapp-actions-DtK657CZ.cjs +1 -0
  1114. package/dist/plugin-sdk/whatsapp-actions-Xwev51_N.js +1 -0
  1115. package/dist/plugin-sdk/whatsapp-actions-m7vLtNAA.js +1 -0
  1116. package/dist/plugin-sdk/whatsapp.cjs +1 -0
  1117. package/dist/plugin-sdk/whatsapp.js +1 -0
  1118. package/dist/plugin-sdk/zalo.cjs +1 -0
  1119. package/dist/plugin-sdk/zalo.js +1 -0
  1120. package/dist/plugin-sdk/zalouser.cjs +1 -0
  1121. package/dist/plugin-sdk/zalouser.js +1 -0
  1122. package/dist/plugins-CYLrFT4h.js +1 -0
  1123. package/dist/plugins-DNlgeTTc.js +1 -0
  1124. package/dist/plugins-cli-BbjMbzJU.js +1 -0
  1125. package/dist/plugins-cli-BiVMAr5T.js +1 -0
  1126. package/dist/polls-BIVz6a4F.js +1 -0
  1127. package/dist/polls-Bh5wc9-6.js +1 -0
  1128. package/dist/polls-C_XSFz3d.js +1 -0
  1129. package/dist/polls-DKJOFSzJ.js +1 -0
  1130. package/dist/ports-B0XdGTfS.js +1 -0
  1131. package/dist/ports-BR0PLRtq.js +1 -0
  1132. package/dist/probe-auth-BMA0yM94.js +1 -0
  1133. package/dist/probe-auth-VI96zmTK.js +1 -0
  1134. package/dist/profile-utils-CWmra1aY.js +1 -0
  1135. package/dist/program-BrAZTwFr.js +1 -0
  1136. package/dist/program-context-B9ydtPje.js +1 -0
  1137. package/dist/program-context-CH9p6anW.js +1 -0
  1138. package/dist/progress-LNttnI-y.js +1 -0
  1139. package/dist/progress-d1m2sqR1.js +1 -0
  1140. package/dist/prompt-select-styled-BeJNbzSa.js +1 -0
  1141. package/dist/prompt-select-styled-DIOWLjl0.js +1 -0
  1142. package/dist/prompt-style-BThRSQJR.js +1 -0
  1143. package/dist/prompt-style-CXKekIBY.js +1 -0
  1144. package/dist/prompts-CMzglboN.js +1 -0
  1145. package/dist/prompts-wv-lfVrJ.js +1 -0
  1146. package/dist/provider-auth-helpers-1lU43eTW.js +1 -0
  1147. package/dist/provider-auth-helpers-pBVCjBj9.js +1 -0
  1148. package/dist/provider-env-vars-D8p6Ohpj.js +1 -0
  1149. package/dist/provider-env-vars-Dt0Q29Su.js +1 -0
  1150. package/dist/proxy-env-BNhTHkd_.js +1 -0
  1151. package/dist/proxy-env-DcmW_urA.js +1 -0
  1152. package/dist/proxy-env-DrC3TIGh.js +1 -0
  1153. package/dist/proxy-env-FJr5nlvs.js +1 -0
  1154. package/dist/proxy-fetch-BADsUK4d.js +1 -0
  1155. package/dist/proxy-fetch-BZ9O8Dvj.js +1 -0
  1156. package/dist/proxy-fetch-DnjU1fEB.js +1 -0
  1157. package/dist/proxy-fetch-gWETR3cl.js +1 -0
  1158. package/dist/push-apns-BGUOmD5M.js +1 -0
  1159. package/dist/push-apns-B_a2MBJ4.js +1 -0
  1160. package/dist/pw-ai-C-Ffkwai.js +1 -0
  1161. package/dist/pw-ai-CV1H1Vrs.js +1 -0
  1162. package/dist/pw-ai-D_MB1lrR.js +1 -0
  1163. package/dist/pw-ai-_l9lVice.js +1 -0
  1164. package/dist/qmd-manager-C_e04BNg.js +1 -0
  1165. package/dist/qmd-manager-DSQ_mDCl.js +1 -0
  1166. package/dist/qmd-manager-DcBYbt_V.js +1 -0
  1167. package/dist/qmd-manager-NLI0R6kp.js +1 -0
  1168. package/dist/qr-cli-3aG6CB6K.js +1 -0
  1169. package/dist/qr-cli-fiJxD5M4.js +1 -0
  1170. package/dist/query-expansion-0OxEb1Io.js +1 -0
  1171. package/dist/query-expansion-BUUx_oWg.js +1 -0
  1172. package/dist/query-expansion-r_iXkNzt.js +1 -0
  1173. package/dist/reaction-level-DVPHL14p.js +1 -0
  1174. package/dist/reaction-message-id-BEEe7X3D.js +1 -0
  1175. package/dist/read-only-account-inspect-DBwAwB3_.js +1 -0
  1176. package/dist/redact-3_CiXMY6.js +1 -0
  1177. package/dist/redact-CnRxK70G.js +1 -0
  1178. package/dist/register.agent-CX78s_X9.js +1 -0
  1179. package/dist/register.agent-DLDKQENq.js +1 -0
  1180. package/dist/register.backup-DkFoTcuT.js +1 -0
  1181. package/dist/register.backup-PzF5rmeU.js +1 -0
  1182. package/dist/register.configure-BA5u9hT3.js +1 -0
  1183. package/dist/register.configure-BhPtf3Qo.js +1 -0
  1184. package/dist/register.maintenance-BhsBepKS.js +1 -0
  1185. package/dist/register.maintenance-r_MzNK3-.js +1 -0
  1186. package/dist/register.message-CTF--Z2a.js +1 -0
  1187. package/dist/register.message-jcZ875be.js +1 -0
  1188. package/dist/register.onboard-C3yL50_c.js +1 -0
  1189. package/dist/register.onboard-CNwnStUk.js +1 -0
  1190. package/dist/register.setup-BRJMzgfU.js +1 -0
  1191. package/dist/register.setup-BvsS-zgm.js +1 -0
  1192. package/dist/register.status-health-sessions-DVc__2pc.js +1 -0
  1193. package/dist/register.status-health-sessions-Dqmkw820.js +1 -0
  1194. package/dist/register.subclis-D-24j83X.js +1 -0
  1195. package/dist/registry-BptzrW8D.js +1 -0
  1196. package/dist/registry-hFAtCSWG.js +1 -0
  1197. package/dist/render-BXEUPIHe.js +1 -0
  1198. package/dist/render-CBsnn-2A.js +1 -0
  1199. package/dist/render-D8OWO2hT.js +1 -0
  1200. package/dist/render-DrrPmnMI.js +1 -0
  1201. package/dist/reply-l-Y47HP4.js +1 -0
  1202. package/dist/restart-CHXEHdSC.js +1 -0
  1203. package/dist/rpc-B3ReBNXG.js +1 -0
  1204. package/dist/rpc-DumDLalJ.js +1 -0
  1205. package/dist/run-main-B_YBE_TN.js +1 -0
  1206. package/dist/runtime-BC5Ep2pJ.js +1 -0
  1207. package/dist/runtime-Dlg2-Omq.js +1 -0
  1208. package/dist/runtime-guard-DFYBaYZS.js +1 -0
  1209. package/dist/runtime-guard-DX2Ie4ri.js +1 -0
  1210. package/dist/runtime-status-CqFBmdRd.js +1 -0
  1211. package/dist/runtime-status-DszMjvJK.js +1 -0
  1212. package/dist/runtime-web-tools-D8fms06-.js +1 -0
  1213. package/dist/runtime-web-tools-bz76ZaRc.js +1 -0
  1214. package/dist/sandbox-cli-BDorUBm-.js +1 -0
  1215. package/dist/sandbox-cli-Bq40R5Vs.js +1 -0
  1216. package/dist/scan-paths-C13EseXp.js +1 -0
  1217. package/dist/scan-paths-CWtvWW40.js +1 -0
  1218. package/dist/search-manager-Bp9x20r6.js +1 -0
  1219. package/dist/secret-file-C7JffiM_.js +1 -0
  1220. package/dist/secret-file-D60EFEOe.js +1 -0
  1221. package/dist/secret-file-DuWm26jS.js +1 -0
  1222. package/dist/secrets-cli-Bo6PC32U.js +1 -0
  1223. package/dist/secrets-cli-CoXJv3Jp.js +1 -0
  1224. package/dist/secure-random-D7JQgiK-.js +1 -0
  1225. package/dist/security-cli-CgZL2KKh.js +1 -0
  1226. package/dist/security-cli-DVOfhwAP.js +1 -0
  1227. package/dist/send-B7sHR38c2.js +1 -0
  1228. package/dist/send-Bx2Qr7VH.js +1 -0
  1229. package/dist/send-C-AP01PR.js +1 -0
  1230. package/dist/send-C1CJ-GHU.js +1 -0
  1231. package/dist/send-C48Y9SAq.js +1 -0
  1232. package/dist/send-CVplsJpw.js +1 -0
  1233. package/dist/send-CW81y5Wz.js +1 -0
  1234. package/dist/send-CYgHok1p.js +1 -0
  1235. package/dist/send-Cgd_VJHR.js +1 -0
  1236. package/dist/send-Chz0YMoJ.js +1 -0
  1237. package/dist/send-D9hVVn7p2.js +1 -0
  1238. package/dist/send-DKrzj_Ts.js +1 -0
  1239. package/dist/send-DRLSCwCk.js +1 -0
  1240. package/dist/send-DavpkzhH.js +1 -0
  1241. package/dist/send-DbeEC2a3.js +1 -0
  1242. package/dist/send-DkiKKUkt.js +1 -0
  1243. package/dist/send-DlfVd5mL.js +1 -0
  1244. package/dist/send-JYgM9Sm-2.js +1 -0
  1245. package/dist/send-hZFDcGLM.js +1 -0
  1246. package/dist/send-vthbs31u.js +1 -0
  1247. package/dist/server-DpyBukwA.js +1 -0
  1248. package/dist/server-IgiSKzXH.js +1 -0
  1249. package/dist/server-node-events-CFSY_-4t.js +1 -0
  1250. package/dist/server-node-events-ZFwmPwQ-.js +1 -0
  1251. package/dist/service-BtB9epJk.js +1 -0
  1252. package/dist/service-DZ9EbS15.js +1 -0
  1253. package/dist/session-C9TDmUS7.js +1 -0
  1254. package/dist/session-CUUGjiV3.js +1 -0
  1255. package/dist/session-DA-i5xQ-.js +1 -0
  1256. package/dist/session-bk3gFwO4.js +1 -0
  1257. package/dist/session-cost-usage-BgqKixv0.js +1 -0
  1258. package/dist/session-cost-usage-CHtVgnE8.js +1 -0
  1259. package/dist/session-key-C7F_iqYg.js +1 -0
  1260. package/dist/session-key-D3P0tf5P.js +1 -0
  1261. package/dist/session-utils-8acNlxwP.js +1 -0
  1262. package/dist/sessions-BsxT0V2m.js +1 -0
  1263. package/dist/shared-9x5sqYRb.js +1 -0
  1264. package/dist/shared-BKWhOp64.js +1 -0
  1265. package/dist/shared-GesXrZzd.js +1 -0
  1266. package/dist/skill-commands-BWW6mc6t.js +1 -0
  1267. package/dist/skill-commands-CSF6wVPU.js +1 -0
  1268. package/dist/skill-commands-Db232ZRp.js +1 -0
  1269. package/dist/skill-commands-HJHHZqt6.js +1 -0
  1270. package/dist/skill-scanner-CUUF3Fvo.js +1 -0
  1271. package/dist/skill-scanner-CkxXNioD.js +1 -0
  1272. package/dist/skills-CKTicUKS.js +1 -0
  1273. package/dist/skills-DHbOKEGc.js +1 -0
  1274. package/dist/skills-cli-9Ls94z5H.js +1 -0
  1275. package/dist/skills-cli-BY7OhJzj.js +1 -0
  1276. package/dist/skills-install-CIdGCXSy.js +1 -0
  1277. package/dist/skills-install-DIdiVt9Y.js +1 -0
  1278. package/dist/skills-status-BWIugRCz.js +1 -0
  1279. package/dist/skills-status-DswSl5aD.js +1 -0
  1280. package/dist/sqlite-CILF3z9U.js +1 -0
  1281. package/dist/stagger-DmFYysrJ.js +1 -0
  1282. package/dist/stagger-DxzgG2jd.js +1 -0
  1283. package/dist/status-C-9fSiMn.js +1 -0
  1284. package/dist/status-CeBGmSAz.js +1 -0
  1285. package/dist/status-DYqPF0rB.js +1 -0
  1286. package/dist/status-JIPeVrsc.js +1 -0
  1287. package/dist/status.update-B_8Gumuc.js +1 -0
  1288. package/dist/status.update-DoSzHu2F.js +1 -0
  1289. package/dist/string-normalization-BrUPaXaM.js +1 -0
  1290. package/dist/string-normalization-DJT5zuUF.js +1 -0
  1291. package/dist/subsystem-BLbY429l.js +1 -0
  1292. package/dist/subsystem-Bc2XrjUz.js +1 -0
  1293. package/dist/subsystem-C5XF2Fy5.js +1 -0
  1294. package/dist/system-cli-CeZfoVPN.js +1 -0
  1295. package/dist/system-cli-DZkTYB9d.js +1 -0
  1296. package/dist/system-run-command-BKfMiqQM.js +1 -0
  1297. package/dist/system-run-command-DEWnZE0r.js +1 -0
  1298. package/dist/systemd-D7odsu4K.js +1 -0
  1299. package/dist/systemd-DbevZh65.js +1 -0
  1300. package/dist/systemd-hints-C0DKDl35.js +1 -0
  1301. package/dist/systemd-hints-lXpMy-kY.js +1 -0
  1302. package/dist/systemd-linger-C2MJD6KG.js +1 -0
  1303. package/dist/systemd-linger-cWKbFNpu.js +1 -0
  1304. package/dist/table-CR7TFMew.js +1 -0
  1305. package/dist/table-CY440fI1.js +1 -0
  1306. package/dist/tables-Brc2lNcB.js +1 -0
  1307. package/dist/tables-CrXdLc_6.js +1 -0
  1308. package/dist/tables-Oieq7UbT.js +1 -0
  1309. package/dist/tables-btcG3yFT.js +1 -0
  1310. package/dist/target-errors-CRlevJJ5.js +1 -0
  1311. package/dist/target-errors-CgWAJOam.js +1 -0
  1312. package/dist/target-errors-CpKXh2RS.js +1 -0
  1313. package/dist/target-errors-a35Md15n.js +1 -0
  1314. package/dist/targets-4EaxWBal.js +1 -0
  1315. package/dist/targets-BJTo7bqu.js +1 -0
  1316. package/dist/targets-BYVMrXDf.js +1 -0
  1317. package/dist/targets-Bq6rS6-Z.js +1 -0
  1318. package/dist/targets-CL5fYQi7.js +1 -0
  1319. package/dist/targets-fozeWOOg.js +1 -0
  1320. package/dist/targets-m_41k_Mv.js +1 -0
  1321. package/dist/telegram/audit.js +1 -0
  1322. package/dist/text-format-CvrvBBre.js +1 -0
  1323. package/dist/text-format-DEWK6oCT.js +1 -0
  1324. package/dist/token-DnTmiyJu.js +1 -0
  1325. package/dist/tokens-B2fq-rL6.js +1 -0
  1326. package/dist/tokens-CL2fSjGl.js +1 -0
  1327. package/dist/tokens-DRM8vzJx.js +1 -0
  1328. package/dist/tokens-XGbQGn67.js +1 -0
  1329. package/dist/tool-display-DJDtttQg.js +1 -0
  1330. package/dist/tool-display-DjuSUUbH.js +1 -0
  1331. package/dist/tui-B506apla.js +1 -0
  1332. package/dist/tui-CJUkUxHb.js +1 -0
  1333. package/dist/tui-cli-BEdGHmhc.js +1 -0
  1334. package/dist/tui-cli-Cq_eXDAV.js +1 -0
  1335. package/dist/types.secrets-C-5U96pc.js +1 -0
  1336. package/dist/types.secrets-D4tbc3Wq.js +1 -0
  1337. package/dist/update-BGrxUIyz.js +1 -0
  1338. package/dist/update-CwTy5DPl.js +1 -0
  1339. package/dist/update-cli-BwBMOeP0.js +1 -0
  1340. package/dist/update-cli-YrBbmw4f.js +1 -0
  1341. package/dist/update-runner-BvtyRBD2.js +1 -0
  1342. package/dist/update-runner-DYamgo1V.js +1 -0
  1343. package/dist/usage-format-BWD8FJFL.js +1 -0
  1344. package/dist/usage-format-yPwal8Iz.js +1 -0
  1345. package/dist/utils-CGdo13HV.js +1 -0
  1346. package/dist/utils-D3t-vPka.js +1 -0
  1347. package/dist/utils-R-mFyVJi.js +1 -0
  1348. package/dist/utils-UGOV_184.js +1 -0
  1349. package/dist/version-q3SkUw2K.js +1 -0
  1350. package/dist/warning-filter.js +1 -0
  1351. package/dist/web-Cq3xWCaD.js +1 -0
  1352. package/dist/web-DwcxsgH0.js +1 -0
  1353. package/dist/webhooks-cli-CIeyainW.js +1 -0
  1354. package/dist/webhooks-cli-DSNAve_D.js +1 -0
  1355. package/dist/whatsapp-actions-B6gt1KeB.js +1 -0
  1356. package/dist/whatsapp-actions-DACoH7qd.js +1 -0
  1357. package/dist/whatsapp-actions-iQhIeMya.js +1 -0
  1358. package/dist/whatsapp-actions-tmjID75a.js +1 -0
  1359. package/dist/widearea-dns-BDx7vkV2.js +1 -0
  1360. package/dist/widearea-dns-BFjqKXu_.js +1 -0
  1361. package/dist/windows-spawn-7oINn5ao.js +1 -0
  1362. package/dist/windows-spawn-AB7ItGAE.js +1 -0
  1363. package/dist/with-timeout-WveKxvFV.js +1 -0
  1364. package/dist/with-timeout-c1CzdShT.js +1 -0
  1365. package/dist/workspace-B0ZQeHXg.js +1 -0
  1366. package/dist/workspace-C45T1Cxg.js +1 -0
  1367. package/dist/workspace-dirs-A8Vib9_B.js +1 -0
  1368. package/dist/workspace-dirs-BhF1Dzxt.js +1 -0
  1369. package/dist/workspace-xNEpaJvu.js +1 -0
  1370. package/dist/wsl-DHxB2Ew_.js +1 -0
  1371. package/dist/wsl-Ok7GaSJ6.js +1 -0
  1372. package/node_modules/@aws-sdk/client-bedrock-runtime/package.json +2 -2
  1373. package/node_modules/@aws-sdk/token-providers/package.json +1 -1
  1374. package/node_modules/@grammyjs/types/package.json +1 -1
  1375. package/node_modules/@line/bot-sdk/dist/channel-access-token/api/channelAccessTokenClient.js +49 -3
  1376. package/node_modules/@line/bot-sdk/dist/cjs/channel-access-token/api/channelAccessTokenClient.js +49 -3
  1377. package/node_modules/@line/bot-sdk/dist/cjs/client.js +636 -0
  1378. package/node_modules/@line/bot-sdk/dist/cjs/endpoints.js +7 -0
  1379. package/node_modules/@line/bot-sdk/dist/cjs/exceptions.js +15 -1
  1380. package/node_modules/@line/bot-sdk/dist/cjs/http-axios.js +2 -6
  1381. package/node_modules/@line/bot-sdk/dist/cjs/http-fetch.js +5 -13
  1382. package/node_modules/@line/bot-sdk/dist/cjs/index.js +3 -1
  1383. package/node_modules/@line/bot-sdk/dist/cjs/insight/api/insightClient.js +3 -0
  1384. package/node_modules/@line/bot-sdk/dist/cjs/liff/api/liffClient.js +3 -0
  1385. package/node_modules/@line/bot-sdk/dist/cjs/line-bot-client.factory.generated.js +66 -0
  1386. package/node_modules/@line/bot-sdk/dist/cjs/line-bot-client.generated.js +1999 -0
  1387. package/node_modules/@line/bot-sdk/dist/cjs/line-bot-client.js +61 -0
  1388. package/node_modules/@line/bot-sdk/dist/cjs/manage-audience/api/manageAudienceBlobClient.js +3 -0
  1389. package/node_modules/@line/bot-sdk/dist/cjs/manage-audience/api/manageAudienceClient.js +3 -0
  1390. package/node_modules/@line/bot-sdk/dist/cjs/messaging-api/api/messagingApiBlobClient.js +3 -0
  1391. package/node_modules/@line/bot-sdk/dist/cjs/messaging-api/api/messagingApiClient.js +3 -0
  1392. package/node_modules/@line/bot-sdk/dist/cjs/module/api/lineModuleClient.js +3 -0
  1393. package/node_modules/@line/bot-sdk/dist/cjs/module-attach/api/lineModuleAttachClient.js +3 -0
  1394. package/node_modules/@line/bot-sdk/dist/cjs/shop/api/shopClient.js +3 -0
  1395. package/node_modules/@line/bot-sdk/dist/cjs/utils.js +10 -0
  1396. package/node_modules/@line/bot-sdk/dist/cjs/version.js +1 -1
  1397. package/node_modules/@line/bot-sdk/dist/client.js +636 -0
  1398. package/node_modules/@line/bot-sdk/dist/endpoints.js +7 -0
  1399. package/node_modules/@line/bot-sdk/dist/exceptions.js +15 -1
  1400. package/node_modules/@line/bot-sdk/dist/http-axios.js +2 -6
  1401. package/node_modules/@line/bot-sdk/dist/http-fetch.js +5 -13
  1402. package/node_modules/@line/bot-sdk/dist/index.js +1 -0
  1403. package/node_modules/@line/bot-sdk/dist/insight/api/insightClient.js +3 -0
  1404. package/node_modules/@line/bot-sdk/dist/liff/api/liffClient.js +3 -0
  1405. package/node_modules/@line/bot-sdk/dist/line-bot-client.factory.generated.js +63 -0
  1406. package/node_modules/@line/bot-sdk/dist/line-bot-client.generated.js +1995 -0
  1407. package/node_modules/@line/bot-sdk/dist/line-bot-client.js +58 -0
  1408. package/node_modules/@line/bot-sdk/dist/manage-audience/api/manageAudienceBlobClient.js +3 -0
  1409. package/node_modules/@line/bot-sdk/dist/manage-audience/api/manageAudienceClient.js +3 -0
  1410. package/node_modules/@line/bot-sdk/dist/messaging-api/api/messagingApiBlobClient.js +3 -0
  1411. package/node_modules/@line/bot-sdk/dist/messaging-api/api/messagingApiClient.js +3 -0
  1412. package/node_modules/@line/bot-sdk/dist/module/api/lineModuleClient.js +3 -0
  1413. package/node_modules/@line/bot-sdk/dist/module-attach/api/lineModuleAttachClient.js +3 -0
  1414. package/node_modules/@line/bot-sdk/dist/shop/api/shopClient.js +3 -0
  1415. package/node_modules/@line/bot-sdk/dist/utils.js +9 -0
  1416. package/node_modules/@line/bot-sdk/dist/version.js +1 -1
  1417. package/node_modules/@line/bot-sdk/package.json +10 -7
  1418. package/node_modules/@mariozechner/clipboard-linux-x64-gnu/clipboard.linux-x64-gnu.node +0 -0
  1419. package/node_modules/@mariozechner/clipboard-linux-x64-gnu/package.json +25 -0
  1420. package/node_modules/@mariozechner/clipboard-linux-x64-musl/clipboard.linux-x64-musl.node +0 -0
  1421. package/node_modules/@mariozechner/clipboard-linux-x64-musl/package.json +25 -0
  1422. package/node_modules/@slack/bolt/dist/App.js +22 -30
  1423. package/node_modules/@slack/bolt/dist/Assistant.js +21 -37
  1424. package/node_modules/@slack/bolt/dist/CustomFunction.js +1 -43
  1425. package/node_modules/@slack/bolt/dist/context/create-function-complete.js +23 -0
  1426. package/node_modules/@slack/bolt/dist/context/create-function-fail.js +23 -0
  1427. package/node_modules/@slack/bolt/dist/context/create-respond.js +11 -0
  1428. package/node_modules/@slack/bolt/dist/context/create-say-stream.js +16 -0
  1429. package/node_modules/@slack/bolt/dist/context/create-say.js +17 -0
  1430. package/node_modules/@slack/bolt/dist/context/create-set-status.js +21 -0
  1431. package/node_modules/@slack/bolt/dist/context/index.js +16 -0
  1432. package/node_modules/@slack/bolt/dist/helpers.js +79 -3
  1433. package/node_modules/@slack/bolt/dist/index.js +10 -8
  1434. package/node_modules/@slack/bolt/dist/receivers/SocketModeReceiver.js +5 -1
  1435. package/node_modules/@slack/bolt/dist/types/events/index.js +0 -4
  1436. package/node_modules/@slack/bolt/package.json +7 -7
  1437. package/node_modules/@smithy/config-resolver/package.json +10 -11
  1438. package/node_modules/@smithy/core/dist-cjs/getSmithyContext.js +6 -0
  1439. package/node_modules/@smithy/core/dist-cjs/index.js +1 -1
  1440. package/node_modules/@smithy/core/dist-cjs/middleware-http-auth-scheme/getHttpAuthSchemeEndpointRuleSetPlugin.js +21 -0
  1441. package/node_modules/@smithy/core/dist-cjs/middleware-http-auth-scheme/getHttpAuthSchemePlugin.js +21 -0
  1442. package/node_modules/@smithy/core/dist-cjs/middleware-http-auth-scheme/httpAuthSchemeMiddleware.js +46 -0
  1443. package/node_modules/@smithy/core/dist-cjs/middleware-http-auth-scheme/index.js +6 -0
  1444. package/node_modules/@smithy/core/dist-cjs/middleware-http-auth-scheme/resolveAuthOptions.js +24 -0
  1445. package/node_modules/@smithy/core/dist-cjs/middleware-http-signing/getHttpSigningMiddleware.js +19 -0
  1446. package/node_modules/@smithy/core/dist-cjs/middleware-http-signing/httpSigningMiddleware.js +27 -0
  1447. package/node_modules/@smithy/core/dist-cjs/middleware-http-signing/index.js +5 -0
  1448. package/node_modules/@smithy/core/dist-cjs/normalizeProvider.js +10 -0
  1449. package/node_modules/@smithy/core/dist-cjs/pagination/createPaginator.js +44 -0
  1450. package/node_modules/@smithy/core/dist-cjs/request-builder/requestBuilder.js +5 -0
  1451. package/node_modules/@smithy/core/dist-cjs/setFeature.js +14 -0
  1452. package/node_modules/@smithy/core/dist-cjs/util-identity-and-auth/DefaultIdentityProviderConfig.js +17 -0
  1453. package/node_modules/@smithy/core/dist-cjs/util-identity-and-auth/httpAuthSchemes/httpApiKeyAuth.js +38 -0
  1454. package/node_modules/@smithy/core/dist-cjs/util-identity-and-auth/httpAuthSchemes/httpBearerAuth.js +15 -0
  1455. package/node_modules/@smithy/core/dist-cjs/util-identity-and-auth/httpAuthSchemes/index.js +6 -0
  1456. package/node_modules/@smithy/core/dist-cjs/util-identity-and-auth/httpAuthSchemes/noAuth.js +9 -0
  1457. package/node_modules/@smithy/core/dist-cjs/util-identity-and-auth/index.js +6 -0
  1458. package/node_modules/@smithy/core/dist-cjs/util-identity-and-auth/memoizeIdentityProvider.js +61 -0
  1459. package/node_modules/@smithy/core/package.json +15 -16
  1460. package/node_modules/@smithy/credential-provider-imds/package.json +9 -10
  1461. package/node_modules/@smithy/eventstream-codec/dist-cjs/index.js +13 -0
  1462. package/node_modules/@smithy/eventstream-codec/package.json +6 -7
  1463. package/node_modules/@smithy/eventstream-serde-browser/package.json +7 -8
  1464. package/node_modules/@smithy/eventstream-serde-config-resolver/package.json +7 -8
  1465. package/node_modules/@smithy/eventstream-serde-node/package.json +7 -8
  1466. package/node_modules/@smithy/eventstream-serde-universal/package.json +9 -10
  1467. package/node_modules/@smithy/fetch-http-handler/package.json +12 -13
  1468. package/node_modules/@smithy/hash-node/package.json +6 -7
  1469. package/node_modules/@smithy/invalid-dependency/package.json +6 -7
  1470. package/node_modules/@smithy/middleware-content-length/package.json +7 -8
  1471. package/node_modules/@smithy/middleware-endpoint/dist-cjs/index.js +2 -2
  1472. package/node_modules/@smithy/middleware-endpoint/package.json +13 -14
  1473. package/node_modules/@smithy/middleware-retry/dist-cjs/index.js +70 -29
  1474. package/node_modules/@smithy/middleware-retry/dist-es/index.js +5 -4
  1475. package/node_modules/@smithy/middleware-retry/dist-es/longPollMiddleware.js +15 -0
  1476. package/node_modules/@smithy/middleware-retry/dist-es/parseRetryAfterHeader.js +49 -0
  1477. package/node_modules/@smithy/middleware-retry/dist-es/{StandardRetryStrategy.js → retry-pre-sra-deprecated/StandardRetryStrategy.js} +1 -1
  1478. package/node_modules/@smithy/middleware-retry/dist-es/retryMiddleware.js +13 -20
  1479. package/node_modules/@smithy/middleware-retry/package.json +16 -16
  1480. package/node_modules/@smithy/middleware-serde/package.json +10 -11
  1481. package/node_modules/@smithy/middleware-stack/package.json +7 -8
  1482. package/node_modules/@smithy/node-config-provider/package.json +8 -9
  1483. package/node_modules/@smithy/node-http-handler/package.json +10 -11
  1484. package/node_modules/@smithy/property-provider/package.json +6 -7
  1485. package/node_modules/@smithy/protocol-http/package.json +6 -7
  1486. package/node_modules/@smithy/querystring-builder/package.json +6 -7
  1487. package/node_modules/@smithy/querystring-parser/package.json +6 -7
  1488. package/node_modules/@smithy/service-error-classification/package.json +6 -7
  1489. package/node_modules/@smithy/shared-ini-file-loader/package.json +7 -8
  1490. package/node_modules/@smithy/signature-v4/dist-cjs/index.js +13 -0
  1491. package/node_modules/@smithy/signature-v4/package.json +9 -10
  1492. package/node_modules/@smithy/smithy-client/dist-cjs/index.js +1 -1
  1493. package/node_modules/@smithy/smithy-client/package.json +14 -15
  1494. package/node_modules/@smithy/types/package.json +7 -8
  1495. package/node_modules/@smithy/url-parser/package.json +7 -8
  1496. package/node_modules/@smithy/util-defaults-mode-browser/package.json +8 -9
  1497. package/node_modules/@smithy/util-defaults-mode-node/package.json +11 -12
  1498. package/node_modules/@smithy/util-endpoints/package.json +9 -10
  1499. package/node_modules/@smithy/util-middleware/package.json +6 -7
  1500. package/node_modules/@smithy/util-retry/dist-cjs/index.js +123 -76
  1501. package/node_modules/@smithy/util-retry/dist-es/AdaptiveRetryStrategy.js +7 -4
  1502. package/node_modules/@smithy/util-retry/dist-es/ConfiguredRetryStrategy.js +2 -2
  1503. package/node_modules/@smithy/util-retry/dist-es/DefaultRateLimiter.js +24 -25
  1504. package/node_modules/@smithy/util-retry/dist-es/DefaultRetryBackoffStrategy.js +14 -0
  1505. package/node_modules/@smithy/util-retry/dist-es/DefaultRetryToken.js +25 -0
  1506. package/node_modules/@smithy/util-retry/dist-es/StandardRetryStrategy.js +39 -26
  1507. package/node_modules/@smithy/util-retry/dist-es/index.js +1 -0
  1508. package/node_modules/@smithy/util-retry/dist-es/retries-2026-config.js +18 -0
  1509. package/node_modules/@smithy/util-retry/package.json +10 -11
  1510. package/node_modules/@smithy/util-stream/package.json +12 -13
  1511. package/node_modules/@snazzah/davey-linux-x64-gnu/davey.linux-x64-gnu.node +0 -0
  1512. package/node_modules/@snazzah/davey-linux-x64-gnu/package.json +43 -0
  1513. package/node_modules/@snazzah/davey-linux-x64-musl/davey.linux-x64-musl.node +0 -0
  1514. package/node_modules/@snazzah/davey-linux-x64-musl/package.json +43 -0
  1515. package/node_modules/dotenv/lib/main.js +1 -1
  1516. package/node_modules/dotenv/package.json +1 -1
  1517. package/node_modules/dotenv/skills/dotenv/SKILL.md +32 -52
  1518. package/node_modules/dotenv/skills/dotenvx/SKILL.md +57 -273
  1519. package/node_modules/grammy/out/bot.js +1 -0
  1520. package/node_modules/grammy/out/context.js +35 -0
  1521. package/node_modules/grammy/out/convenience/keyboard.js +30 -2
  1522. package/node_modules/grammy/out/core/api.js +34 -0
  1523. package/node_modules/grammy/out/filter.js +6 -2
  1524. package/node_modules/grammy/out/web.mjs +58 -10
  1525. package/node_modules/grammy/package.json +2 -2
  1526. package/node_modules/lru-cache/dist/commonjs/diagnostics-channel.js +12 -0
  1527. package/node_modules/lru-cache/dist/commonjs/index.js +227 -130
  1528. package/node_modules/lru-cache/dist/commonjs/index.min.js +1 -1
  1529. package/node_modules/lru-cache/dist/esm/diagnostics-channel-esm.d.mts.map +1 -0
  1530. package/node_modules/lru-cache/dist/esm/diagnostics-channel.js +17 -0
  1531. package/node_modules/lru-cache/dist/esm/index.js +227 -130
  1532. package/node_modules/lru-cache/dist/esm/index.min.js +1 -1
  1533. package/node_modules/lru-cache/dist/esm/node/diagnostics-channel-node.d.mts.map +1 -0
  1534. package/node_modules/lru-cache/dist/esm/node/diagnostics-channel.js +8 -0
  1535. package/node_modules/lru-cache/dist/esm/node/index.js +1688 -0
  1536. package/node_modules/lru-cache/dist/esm/node/index.min.js +2 -0
  1537. package/node_modules/lru-cache/package.json +29 -9
  1538. package/node_modules/netmask/dist/netmask.js +58 -0
  1539. package/node_modules/netmask/dist/netmask4.js +189 -0
  1540. package/node_modules/netmask/dist/netmask6.js +187 -0
  1541. package/node_modules/netmask/package.json +15 -6
  1542. package/node_modules/path-expression-matcher/lib/pem.cjs +1 -1
  1543. package/node_modules/path-expression-matcher/lib/pem.d.cts +93 -0
  1544. package/node_modules/path-expression-matcher/lib/pem.min.js +1 -1
  1545. package/node_modules/path-expression-matcher/package.json +1 -1
  1546. package/node_modules/path-expression-matcher/src/ExpressionSet.js +189 -0
  1547. package/node_modules/path-expression-matcher/src/Matcher.js +50 -20
  1548. package/node_modules/path-expression-matcher/src/index.js +3 -2
  1549. package/node_modules/strnum/package.json +1 -1
  1550. package/package.json +1 -1
  1551. package/preset-config.json +12 -0
  1552. package/node_modules/@smithy/util-retry/dist-es/defaultRetryBackoffStrategy.js +0 -14
  1553. package/node_modules/@smithy/util-retry/dist-es/defaultRetryToken.js +0 -11
  1554. package/node_modules/netmask/CREDITS.md +0 -30
  1555. package/node_modules/netmask/lib/netmask.coffee +0 -167
  1556. package/node_modules/netmask/lib/netmask.js +0 -208
  1557. package/node_modules/strnum/.github/SECURITY.md +0 -5
  1558. package/node_modules/strnum/.vscode/launch.json +0 -25
  1559. package/node_modules/strnum/algo.stflow +0 -84
  1560. package/skills/sherpa-onnx-tts/bin/sherpa-onnx-tts +0 -178
  1561. /package/node_modules/@smithy/middleware-retry/dist-es/{AdaptiveRetryStrategy.js → retry-pre-sra-deprecated/AdaptiveRetryStrategy.js} +0 -0
  1562. /package/node_modules/@smithy/middleware-retry/dist-es/{defaultRetryQuota.js → retry-pre-sra-deprecated/defaultRetryQuota.js} +0 -0
  1563. /package/node_modules/@smithy/middleware-retry/dist-es/{delayDecider.js → retry-pre-sra-deprecated/delayDecider.js} +0 -0
  1564. /package/node_modules/@smithy/middleware-retry/dist-es/{retryDecider.js → retry-pre-sra-deprecated/retryDecider.js} +0 -0
  1565. /package/node_modules/@smithy/middleware-retry/dist-es/{types.js → retry-pre-sra-deprecated/types.js} +0 -0
@@ -5,3 +5,4 @@ import{H as e}from"./subsystem-BLbY429l.js";import{Ll as t,Rl as n,jo as r}from"
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=Bt(s,l);e.trim().length&&o.push(e)}return Wt(e,o)}function Ut(e,t){if((t.chunkMode??`length`)!==`newline`)return Ht(e,t);let n=m(e,Math.max(1,Math.floor(t.maxChars??Ft)),`newline`),r=[];for(let e of n){let n=Ht(e,t);if(!n.length&&e){r.push(e);continue}r.push(...n)}return r}function Wt(e,t){if(t.length<=1||!(e.startsWith(`Reasoning:
6
6
  _`)&&e.trimEnd().endsWith(`_`)))return t;let n=[...t];for(let e=0;e<n.length;e++){let t=e===n.length-1,r=n[e];if(r.trimEnd().endsWith(`_`)||(n[e]=`${r}_`),t)break;let i=n[e+1],a=i.length-i.trimStart().length,o=i.slice(0,a),s=i.slice(a);s.startsWith(`_`)||(n[e+1]=`${o}_${s}`)}return n}const Gt=Object.entries(oe).filter(([,e])=>typeof e==`bigint`),Kt=Gt.reduce((e,[,t])=>e|t,0n),qt=oe.Administrator;function B(e,t){return t?e|BigInt(t):e}function Jt(e,t){return t?e&~BigInt(t):e}function Yt(e){return Gt.filter(([,t])=>(e&t)===t).map(([e])=>e).toSorted()}function Xt(e){return(e&qt)===qt}function Zt(e,t){return(e&t)===t}function Qt(e){return e===D.GuildNewsThread||e===D.GuildPublicThread||e===D.GuildPrivateThread}async function $t(e){let t=await e.get(O.user(`@me`));if(!t?.id)throw Error(`Failed to resolve bot user id`);return t.id}async function en(e,t,n={}){let r=z(n);try{let[n,i]=await Promise.all([r.get(O.guild(e)),r.get(O.guildMember(e,t))]),a=new Map((n.roles??[]).map(e=>[e.id,e])),o=a.get(e),s=0n;o?.permissions&&(s=B(s,o.permissions));for(let e of i.roles??[]){let t=a.get(e);t?.permissions&&(s=B(s,t.permissions))}return s}catch{return null}}async function tn(e,t,n,r,i={}){let a=await en(e,t,i);return a===null?!1:Xt(a)?!0:r(a,n)}async function nn(e,t,n,r={}){return await tn(e,t,n,(e,t)=>t.some(t=>Zt(e,t)),r)}async function rn(e,t={}){let n=z(t),r=await n.get(O.channel(e)),i=`type`in r?r.type:void 0,a=`guild_id`in r?r.guild_id:void 0;if(!a)return{channelId:e,permissions:[],raw:`0`,isDm:!0,channelType:i};let o=await $t(n),[s,c]=await Promise.all([n.get(O.guild(a)),n.get(O.guildMember(a,o))]),l=new Map((s.roles??[]).map(e=>[e.id,e])),u=l.get(a),d=0n;u?.permissions&&(d=B(d,u.permissions));for(let e of c.roles??[]){let t=l.get(e);t?.permissions&&(d=B(d,t.permissions))}if(Xt(d))return{channelId:e,guildId:a,permissions:Yt(Kt),raw:Kt.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=Jt(f,e.deny??`0`),f=B(f,e.allow??`0`));for(let e of p)c.roles?.includes(e.id)&&(f=Jt(f,e.deny??`0`),f=B(f,e.allow??`0`));for(let e of p)e.id===o&&(f=Jt(f,e.deny??`0`),f=B(f,e.allow??`0`));return{channelId:e,guildId:a,permissions:Yt(f),raw:f.toString(),isDm:!1,channelType:i}}var an=class extends Error{constructor(e,t){super(e),this.name=`DiscordSendError`,t&&Object.assign(this,t)}toString(){return this.message}};function on(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 V(e,t,n){let i=n??r(),o=a({cfg:i,accountId:t}),s=e.trim(),c={ambiguousMessage:`Ambiguous Discord recipient "${s}". Use "user:${s}" for DMs or "channel:${s}" for channel messages.`},l=await Dt(e,{cfg:i,accountId:o.accountId},c);if(l)return{kind:l.kind,id:l.id};let u=L(e,c);if(!u)throw Error(`Recipient is required for Discord sends`);return{kind:u.kind,id:u.id}}function sn(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 H(e,t){let n=e.trim();if(!n)throw Error(`${t} is required`);return n}function cn(e){let t=S(e,{maxOptions:10}),n=te(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 ln(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 U(e,t){if(e instanceof an)return e;let n=ln(e);if(n===50007)return new an(`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 rn(t.channelId,{rest:t.rest,token:t.token}),n=new Set(e.permissions),i=[`ViewChannel`,`SendMessages`];Qt(e.channelType)&&i.push(`SendMessagesInThreads`),t.hasMedia&&i.push(`AttachFiles`),r=i.filter(e=>!n.has(e))}catch{}return new an(`${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 W(e,t,n){if(t.kind===`channel`)return{channelId:t.id};let r=await n(()=>e.post(O.userChannels(),{body:{recipient_id:t.id}}),`dm-channel`);if(!r?.id)throw Error(`Failed to create Discord DM channel`);return{channelId:r.id,dm:!0}}async function un(e,t){try{return(await e.get(O.channel(t)))?.type}catch{return}}const G=4096;function dn(e,t={}){if(!e)return[];let n=Ut(e,{maxChars:t.maxChars??2e3,maxLines:t.maxLinesPerMessage,chunkMode:t.chunkMode});return!n.length&&e&&n.push(e),n}function fn(e){return!!e?.some(e=>`isV2`in e&&e.isV2)}function pn(e){if(!(!e.components||!e.isFirst))return typeof e.components==`function`?e.components(e.text):e.components}function mn(e){if(e?.length)return e.map(e=>e instanceof fe?e:new fe(e))}function hn(e){if(!(!e.embeds||!e.isFirst))return mn(e.embeds)}function gn(e){let t={},n=fn(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 K(e){return Object.fromEntries(Object.entries(e).filter(([,e])=>e!==void 0))}function _n(e){if(e instanceof Blob)return e;let t=new ArrayBuffer(e.byteLength);return new Uint8Array(t).set(e),new Blob([t])}async function q(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?G:void 0,f=dn(n,{maxLinesPerMessage:a,chunkMode:c}),p=async(n,r)=>{let a=K({...M(gn({text:n,components:pn({components:o,text:n,isFirst:r}),embeds:hn({embeds:s,isFirst:r}),flags:d})),...u?{message_reference:u}:{}});return await i(()=>e.post(O.channelMessages(t),{body:a}),`text`)};if(f.length===1)return await p(f[0],!0);let m=null;for(let[e,t]of f.entries())m=await p(t,e===0);if(!m)throw Error(`Discord send failed (empty chunk result)`);return m}async function vn(e,t,n,r,i,a,o,s,c,l,u,d,f){let m=await p(r,ee({maxBytes:a,mediaLocalRoots:i})),h=n?dn(n,{maxLinesPerMessage:c,chunkMode:d}):[],g=h[0]??``,_=o?{message_id:o,fail_if_not_exists:!1}:void 0,v=f?G:void 0,y=_n(m.buffer),b=gn({text:g,components:pn({components:l,text:g,isFirst:!0}),embeds:hn({embeds:u,isFirst:!0}),flags:v,files:[{data:y,name:m.fileName??`upload`}]}),x=await s(()=>e.post(O.channelMessages(t),{body:K({...M(b),..._?{message_reference:_}:{}})}),`media`);for(let n of h.slice(1))n.trim()&&await q(e,t,n,o,s,c,void 0,void 0,d,f);return x}function yn(e){return e.id&&e.name?`${e.name}:${e.id}`:e.name??``}function bn(e){return yn(e)}async function xn(e,t={}){let n=z(t),r={name:e.name};return e.type!==void 0&&(r.type=e.type),e.parentId&&(r.parent_id=e.parentId),e.topic&&(r.topic=e.topic),e.position!==void 0&&(r.position=e.position),e.nsfw!==void 0&&(r.nsfw=e.nsfw),await n.post(O.guildChannels(e.guildId),{body:r})}async function Sn(e,t={}){let n=z(t),r={};return e.name!==void 0&&(r.name=e.name),e.topic!==void 0&&(r.topic=e.topic),e.position!==void 0&&(r.position=e.position),e.parentId!==void 0&&(r.parent_id=e.parentId),e.nsfw!==void 0&&(r.nsfw=e.nsfw),e.rateLimitPerUser!==void 0&&(r.rate_limit_per_user=e.rateLimitPerUser),e.archived!==void 0&&(r.archived=e.archived),e.locked!==void 0&&(r.locked=e.locked),e.autoArchiveDuration!==void 0&&(r.auto_archive_duration=e.autoArchiveDuration),e.availableTags!==void 0&&(r.available_tags=e.availableTags.map(e=>({...e.id!==void 0&&{id:e.id},name:e.name,...e.moderated!==void 0&&{moderated:e.moderated},...e.emoji_id!==void 0&&{emoji_id:e.emoji_id},...e.emoji_name!==void 0&&{emoji_name:e.emoji_name}}))),await n.patch(O.channel(e.channelId),{body:r})}async function Cn(e,t={}){return await z(t).delete(O.channel(e)),{ok:!0,channelId:e}}async function wn(e,t={}){let n=z(t),r=[{id:e.channelId,...e.parentId!==void 0&&{parent_id:e.parentId},...e.position!==void 0&&{position:e.position}}];return await n.patch(O.guildChannels(e.guildId),{body:r}),{ok:!0}}async function Tn(e,t={}){let n=z(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 En(e,t,n={}){return await z(n).delete(`/channels/${e}/permissions/${t}`),{ok:!0}}async function Dn(e,t={}){return await z(t).get(O.guildEmojis(e))}async function On(e,t={}){let n=z(t),r=await g(e.mediaUrl,262144),i=r.contentType?.toLowerCase();if(!i||![`image/png`,`image/jpeg`,`image/jpg`,`image/gif`].includes(i))throw Error(`Discord emoji uploads require a PNG, JPG, or GIF image`);let a=`data:${i};base64,${r.buffer.toString(`base64`)}`,o=(e.roleIds??[]).map(e=>e.trim()).filter(Boolean);return await n.post(O.guildEmojis(e.guildId),{body:{name:H(e.name,`Emoji name`),image:a,roles:o.length?o:void 0}})}async function kn(e,t={}){let n=z(t),r=await g(e.mediaUrl,524288),i=r.contentType?.toLowerCase();if(!i||![`image/png`,`image/apng`,`application/json`].includes(i))throw Error(`Discord sticker uploads require a PNG, APNG, or Lottie JSON file`);return await n.post(O.guildStickers(e.guildId),{body:{name:H(e.name,`Sticker name`),description:H(e.description,`Sticker description`),tags:H(e.tags,`Sticker tags`),files:[{data:r.buffer,name:r.fileName??`sticker`,contentType:i}]}})}async function An(e,t,n={}){return await z(n).get(O.guildMember(e,t))}async function jn(e,t={}){return await z(t).get(O.guildRoles(e))}async function Mn(e,t={}){return await z(t).put(O.guildMemberRole(e.guildId,e.userId,e.roleId)),{ok:!0}}async function Nn(e,t={}){return await z(t).delete(O.guildMemberRole(e.guildId,e.userId,e.roleId)),{ok:!0}}async function Pn(e,t={}){return await z(t).get(O.channel(e))}async function Fn(e,t={}){return await z(t).get(O.guildChannels(e))}async function In(e,t,n={}){return await z(n).get(O.guildVoiceState(e,t))}async function Ln(e,t={}){return await z(t).get(O.guildScheduledEvents(e))}async function Rn(e,t,n={}){return await z(n).post(O.guildScheduledEvents(e),{body:t})}async function zn(e,t={}){let n=z(t),r=e.until;if(!r&&e.durationMinutes){let t=e.durationMinutes*60*1e3;r=new Date(Date.now()+t).toISOString()}return await n.patch(O.guildMember(e.guildId,e.userId),{body:{communication_disabled_until:r??null},headers:e.reason?{"X-Audit-Log-Reason":encodeURIComponent(e.reason)}:void 0})}async function Bn(e,t={}){return await z(t).delete(O.guildMember(e.guildId,e.userId),{headers:e.reason?{"X-Audit-Log-Reason":encodeURIComponent(e.reason)}:void 0}),{ok:!0}}async function Vn(e,t={}){let n=z(t),r=typeof e.deleteMessageDays==`number`&&Number.isFinite(e.deleteMessageDays)?Math.min(Math.max(Math.floor(e.deleteMessageDays),0),7):void 0;return await n.put(O.guildBan(e.guildId,e.userId),{body:r===void 0?void 0:{delete_message_days:r},headers:e.reason?{"X-Audit-Log-Reason":encodeURIComponent(e.reason)}:void 0}),{ok:!0}}async function Hn(e,t={},n={}){let r=z(n),i=typeof t.limit==`number`&&Number.isFinite(t.limit)?Math.min(Math.max(Math.floor(t.limit),1),100):void 0,a={};return i&&(a.limit=i),t.before&&(a.before=t.before),t.after&&(a.after=t.after),t.around&&(a.around=t.around),await r.get(O.channelMessages(e),a)}async function Un(e,t,n={}){return await z(n).get(O.channelMessage(e,t))}async function Wn(e,t,n,r={}){return await z(r).patch(O.channelMessage(e,t),{body:{content:n.content}})}async function Gn(e,t,n={}){return await z(n).delete(O.channelMessage(e,t)),{ok:!0}}async function Kn(e,t,n={}){return await z(n).put(O.channelPin(e,t)),{ok:!0}}async function qn(e,t,n={}){return await z(n).delete(O.channelPin(e,t)),{ok:!0}}async function Jn(e,t={}){return await z(t).get(O.channelPins(e))}async function Yn(e,t,n={}){let r=z(n),i={name:t.name};t.autoArchiveMinutes&&(i.auto_archive_duration=t.autoArchiveMinutes),!t.messageId&&t.type!==void 0&&(i.type=t.type);let a;if(!t.messageId)try{a=(await r.get(O.channel(e)))?.type}catch{a=void 0}let o=a===D.GuildForum||a===D.GuildMedia;o&&(i.message={content:t.content?.trim()?t.content:t.name},t.appliedTags?.length&&(i.applied_tags=t.appliedTags)),!t.messageId&&!o&&i.type===void 0&&(i.type=D.PublicThread);let s=t.messageId?O.threads(e,t.messageId):O.threads(e),c=await r.post(s,{body:i});return!o&&t.content?.trim()&&await r.post(O.channelMessages(c.id),{body:{content:t.content}}),c}async function Xn(e,t={}){let n=z(t);if(e.includeArchived){if(!e.channelId)throw Error(`channelId required to list archived threads`);let t={};return e.before&&(t.before=e.before),e.limit&&(t.limit=e.limit),await n.get(O.channelThreads(e.channelId,`public`),t)}return await n.get(O.guildActiveThreads(e.guildId))}async function Zn(e,t={}){let n=z(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 Qn(e){if(e)try{await w.unlink(e)}catch{}}const $n=/```[\s\S]*?```|`[^`\n]*`/g,er=/(^|[\s([{"'.,;:!?])@([a-z0-9_.-]{2,32}(?:#[0-9]{4})?)/gi,tr=new Set([`everyone`,`here`]);function nr(e){let t=String(e??``).trim();return/^\d+$/.test(t)?t:null}function rr(e){let t=e.userId==null?null:nr(e.userId),n=e.roleId==null?null:nr(e.roleId),r=e.channelId==null?null:nr(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 ir(e,t){return e.includes(`@`)?e.replace(er,(e,n,r)=>{let i=String(r??``).trim();if(!i)return e;let a=i.toLowerCase();if(tr.has(a))return e;let o=yt({accountId:t,handle:i});return o?`${String(n??``)}${rr({userId:o})}`:e}):e}function ar(e,t){if(!e.includes(`@`))return e;let n=``,r=0;$n.lastIndex=0;for(let i of e.matchAll($n)){let a=i.index??0;n+=ir(e.slice(r,a),t.accountId),n+=i[0],r=a+i[0].length}return n+=ir(e.slice(r),t.accountId),n}const or=ie(re);function sr(e,t){return{timeout:t?.timeoutMs??e,maxBuffer:t?.maxBufferBytes??10485760}}async function cr(e,t){let{stdout:n}=await or(`ffprobe`,e,sr(1e4,t));return n.toString()}async function lr(e,t){let{stdout:n}=await or(`ffmpeg`,e,sr(45e3,t));return n.toString()}function ur(e,t){return e.trim().toLowerCase().split(/[,\r\n]+/,t).map(e=>e.trim())}function dr(e){let[t,n]=ur(e,2),r=t||null,i=n?Number.parseInt(n,10):NaN;return{codec:r,sampleRateHz:Number.isFinite(i)?i:null}}const fr=8192;async function pr(e){try{let t=await cr([`-v`,`error`,`-show_entries`,`format=duration`,`-of`,`csv=p=0`,e]),n=parseFloat(t.trim());if(isNaN(n))throw Error(`Could not parse duration`);return Math.round(n*100)/100}catch(e){let t=e instanceof Error?e.message:String(e);throw Error(`Failed to get audio duration: ${t}`,{cause:e})}}async function mr(e){try{return await hr(e)}catch{return gr()}}async function hr(t){let n=e(),r=C.join(n,`waveform-${T.randomUUID()}.raw`);try{await lr([`-y`,`-i`,t,`-vn`,`-sn`,`-dn`,`-t`,`1200`,`-f`,`s16le`,`-acodec`,`pcm_s16le`,`-ac`,`1`,`-ar`,`8000`,r]);let e=await w.readFile(r),n=new Int16Array(e.buffer,e.byteOffset,e.byteLength/2),i=Math.max(1,Math.floor(n.length/256)),a=[];for(let e=0;e<256&&e*i<n.length;e++){let t=0,r=0;for(let a=0;a<i&&e*i+a<n.length;a++)t+=Math.abs(n[e*i+a]),r++;let o=r>0?t/r: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 Qn(r)}}function gr(){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 _r(t){let n=t.trim();if(/^[a-z][a-z0-9+.-]*:\/\//i.test(n))throw Error(`Voice message conversion requires a local file path; received a URL/protocol source: ${n}`);if(C.extname(t).toLowerCase()===`.ogg`)try{let{codec:e,sampleRateHz:n}=dr(await cr([`-v`,`error`,`-select_streams`,`a:0`,`-show_entries`,`stream=codec_name,sample_rate`,`-of`,`csv=p=0`,t]));if(e===`opus`&&n===48e3)return{path:t,cleanup:!1}}catch{}let r=e(),i=C.join(r,`voice-${T.randomUUID()}.ogg`);return await lr([`-y`,`-i`,t,`-vn`,`-sn`,`-dn`,`-t`,`1200`,`-ar`,`48000`,`-c:a`,`libopus`,`-b:a`,`64k`,i]),{path:i,cleanup:!0}}async function vr(e){let[t,n]=await Promise.all([pr(e),mr(e)]);return{durationSecs:t,waveform:n}}async function yr(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?fr|4096:fr,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 br(e){for(let t of e.chunks)await q(e.rest,e.threadId,t,void 0,e.request,e.maxLinesPerMessage,void 0,void 0,e.chunkMode,e.silent)}function xr(e){return(e.split(`
7
7
  `).find(e=>e.trim())?.trim()??``).slice(0,100)||new Date().toISOString().slice(0,16)}function Sr(e){return e===D.GuildForum||e===D.GuildMedia}function J(e,t){return{messageId:e.id?String(e.id):`unknown`,channelId:String(e.channel_id??t)}}async function Cr(e,t){let n=t.cfg??r(),{rest:i,request:a}=R(t,n),{channelId:o}=await W(i,await V(e,t.accountId,n),a);return{rest:i,request:a,channelId:o}}async function wr(e,t,n={}){let i=n.cfg??r(),o=a({cfg:i,accountId:n.accountId}),s=_({cfg:i,channel:`discord`,accountId:o.accountId}),c=h(i,`discord`,o.accountId),l=typeof o.config.mediaMaxMb==`number`?o.config.mediaMaxMb*1024*1024:8*1024*1024,u=ne(t??``,s),d=ar(u,{accountId:o.accountId}),{token:f,rest:p,request:m}=R(n,i),{channelId:g}=await W(p,await V(e,n.accountId,i),m);if(Sr(await un(p,g))){let e=xr(u),t=dn(d,{maxLinesPerMessage:o.config.maxLinesPerMessage,chunkMode:c}),r=t[0]?.trim()?t[0]:e,i=gn({text:r,components:pn({components:n.components,text:r,isFirst:!0}),embeds:hn({embeds:n.embeds,isFirst:!0}),flags:n.silent?4096:void 0}),a;try{a=await m(()=>p.post(O.threads(g),{body:{name:e,message:K(M(i))}}),`forum-thread`)}catch(e){throw await U(e,{channelId:g,rest:p,token:f,hasMedia:!!n.mediaUrl})}let s=a.id,h=a.message?.id??s,_=a.message?.channel_id??s,v=t.slice(1);try{if(n.mediaUrl){let[e,...t]=v;await vn(p,s,e??``,n.mediaUrl,n.mediaLocalRoots,l,void 0,m,o.config.maxLinesPerMessage,void 0,void 0,c,n.silent),await br({rest:p,threadId:s,chunks:t,request:m,maxLinesPerMessage:o.config.maxLinesPerMessage,chunkMode:c,silent:n.silent})}else await br({rest:p,threadId:s,chunks:v,request:m,maxLinesPerMessage:o.config.maxLinesPerMessage,chunkMode:c,silent:n.silent})}catch(e){throw await U(e,{channelId:s,rest:p,token:f,hasMedia:!!n.mediaUrl})}return b({channel:`discord`,accountId:o.accountId,direction:`outbound`}),J({id:h,channel_id:_},g)}let v;try{v=n.mediaUrl?await vn(p,g,d,n.mediaUrl,n.mediaLocalRoots,l,n.replyTo,m,o.config.maxLinesPerMessage,n.components,n.embeds,c,n.silent):await q(p,g,d,n.replyTo,m,o.config.maxLinesPerMessage,n.components,n.embeds,c,n.silent)}catch(e){throw await U(e,{channelId:g,rest:p,token:f,hasMedia:!!n.mediaUrl})}return b({channel:`discord`,accountId:o.accountId,direction:`outbound`}),J(v,g)}function Tr(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 Er(e,t){let n=t.webhookId.trim(),i=t.webhookToken.trim();if(!n||!i)throw Error(`Discord webhook id/token are required`);let o=ar(e,{accountId:t.accountId}),s=typeof t.replyTo==`string`?t.replyTo.trim():``,c=s?{message_id:s,fail_if_not_exists:!1}:void 0,l=await fetch(Tr({webhookId:n,webhookToken:i,threadId:t.threadId,wait:t.wait}),{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({content:o,username:t.username?.trim()||void 0,avatar_url:t.avatarUrl?.trim()||void 0,...c?{message_reference:c}:{}})});if(!l.ok){let e=await l.text().catch(()=>``);throw Error(`Discord webhook send failed (${l.status}${e?`: ${e.slice(0,200)}`:``})`)}let u=await l.json().catch(()=>({}));try{b({channel:`discord`,accountId:a({cfg:t.cfg??r(),accountId:t.accountId}).accountId,direction:`outbound`})}catch{}return{messageId:u.id?String(u.id):`unknown`,channelId:u.channel_id?String(u.channel_id):t.threadId?String(t.threadId):``}}async function Dr(e,t,n={}){let{rest:r,request:i,channelId:a}=await Cr(e,n),o=n.content?.trim(),s=o?ar(o,{accountId:n.accountId}):void 0,c=sn(t);return J(await i(()=>r.post(O.channelMessages(a),{body:{content:s||void 0,sticker_ids:c}}),`sticker`),a)}async function Or(e,t,n={}){let{rest:r,request:i,channelId:a}=await Cr(e,n),o=n.content?.trim(),s=o?ar(o,{accountId:n.accountId}):void 0;if(t.durationSeconds!==void 0)throw Error(`Discord polls do not support durationSeconds; use durationHours`);let c=cn(t),l=n.silent?G:void 0;return J(await i(()=>r.post(O.channelMessages(a),{body:{content:s||void 0,poll:c,...l?{flags:l}:{}}}),`poll`),a)}async function kr(t){let n=await g(t,c(`audio`)),r=n.fileName?C.extname(n.fileName):``,i=n.contentType?l(n.contentType):``,a=r||i||`.bin`,o=e(),s=C.join(o,`voice-src-${T.randomUUID()}${a}`);return await w.writeFile(s,n.buffer,{mode:384}),{filePath:s}}async function Ar(e,t,n={}){let{filePath:i}=await kr(t),o=null,s=!1,c,l,u;try{let t=n.cfg??r(),d=a({cfg:t,accountId:n.accountId}),f=R(n,t);c=f.token,l=f.rest;let p=f.request,m=await V(e,n.accountId,t);u=(await W(l,m,p)).channelId;let h=await _r(i);o=h.path,s=h.cleanup;let g=await vr(o),_=await w.readFile(o),v=await yr(l,u,_,g,n.replyTo,p,n.silent,c);return b({channel:`discord`,accountId:d.accountId,direction:`outbound`}),J(v,u)}catch(e){throw u&&l&&c?await U(e,{channelId:u,rest:l,token:c,hasMedia:!0}):e}finally{await Qn(s?o:null),await Qn(i)}}const jr=new Map,Mr=new Map;function Nr(e,t){return typeof e.expiresAt==`number`&&e.expiresAt<=t}function Pr(e,t,n){let r=e.createdAt??t,i=e.expiresAt??r+n;return{...e,createdAt:r,expiresAt:i}}function Fr(e){let t=Date.now(),n=e.ttlMs??18e5;for(let r of e.entries){let i=Pr({...r,messageId:e.messageId??r.messageId},t,n);jr.set(r.id,i)}for(let r of e.modals){let i=Pr({...r,messageId:e.messageId??r.messageId},t,n);Mr.set(r.id,i)}}function Ir(e){let t=jr.get(e.id);return t?Nr(t,Date.now())?(jr.delete(e.id),null):(e.consume!==!1&&jr.delete(e.id),t):null}function Lr(e){let t=Mr.get(e.id);return t?Nr(t,Date.now())?(Mr.delete(e.id),null):(e.consume!==!1&&Mr.delete(e.id),t):null}const Rr=`attachment://`,zr=new Map([[`row`,`actions`],[`action-row`,`actions`]]);function Y(e){return`${e}${T.randomBytes(6).toString(`base64url`)}`}function X(e,t){if(!e||typeof e!=`object`||Array.isArray(e))throw Error(`${t} must be an object`);return e}function Z(e,t,n){if(typeof e!=`string`)throw Error(`${t} must be a string`);let r=e.trim();if(!n?.allowEmpty&&!r)throw Error(`${t} cannot be empty`);return n?.allowEmpty?e:r}function Q(e){return typeof e==`string`&&e.trim()||void 0}function Br(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 Vr(e,t){return e?.trim()||`field_${t+1}`}function Hr(e,t){let n=e.trim();if(!n.startsWith(`attachment://`))throw Error(`${t} must start with "${Rr}"`);let r=n.slice(13).trim();if(!r)throw Error(`${t} must include an attachment filename`);return`${Rr}${r}`}function Ur(e){let t=e.trim();if(!t.startsWith(`attachment://`))throw Error(`Attachment reference must start with "${Rr}"`);let n=t.slice(13).trim();if(!n)throw Error(`Attachment reference must include a filename`);return n}function Wr(e){switch((e??`primary`).toLowerCase()){case`secondary`:return E.Secondary;case`success`:return E.Success;case`danger`:return E.Danger;case`link`:return E.Link;default:return E.Primary}}function Gr(e){return e===`paragraph`?se.Paragraph:se.Short}function Kr(e){let t=e.trim().toLowerCase();return zr.get(t)??t}function qr(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 Jr(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:Br(n.allowedUsers,`${t}.allowedUsers`)}}function Yr(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:qr(n.options,`${t}.options`)}}function Xr(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=qr(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:Vr(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 Zr(e,t){let n=X(e,t);switch(Kr(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:Jr(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)=>Jr(e,`${t}.buttons[${n}]`)):void 0,i=n.select?Yr(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:Hr(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 Qr(e){if(e==null)return null;let t=X(e,`components`),n=t.blocks,r=Array.isArray(n)?n.map((e,t)=>Zr(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)=>Xr(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 $r(e){let t=`occomp:cid=${e.componentId}`;return e.modalId?`${t};mid=${e.modalId}`:t}function ei(e){return`ocmodal:mid=${e}`}function ti(e){let t=j(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 ni(e){let t=j(e);if(t.key!==`ocmodal`)return null;let n=t.data.mid;return typeof n!=`string`||!n.trim()?null:n}function ri(e){return/^__openclaw_discord_component_[a-z_]+_wildcard__$/.test(e)}function ii(e){if(e===`*`||ri(e))return{key:`*`,data:{}};let t=j(e);return t.key===`occomp`?{key:`*`,data:t.data}:t}function ai(e){if(e===`*`||ri(e))return{key:`*`,data:{}};let t=j(e);return t.key===`ocmodal`?{key:`*`,data:t.data}:t}function oi(e,t){return t&&t.length>0?t.map(e=>new A(e)):e?[new A(e)]:[]}function si(e){let t=Wr(e.spec.style);if(t===E.Link||e.spec.url){if(!e.spec.url)throw Error(`Link buttons require a url`);let t=e.spec.url;class n extends he{constructor(...n){super(...n),this.label=e.spec.label,this.url=t}}return{component:new n}}let n=e.componentId??Y(`btn_`),r=$r({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 ci(e){let t=(e.spec.type??`string`).toLowerCase(),n=e.componentId??Y(`sel_`),r=$r({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 li(e){return e instanceof Te||e instanceof Oe||e instanceof Se||e instanceof _e||e instanceof le}function ui(e){if(e.type===`text`){class t extends Ee{constructor(...t){super(...t),this.customId=e.id,this.style=Gr(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 di(e){let t=[],n=[],r=[],i=[],a=n=>{t.push({...n,sessionKey:e.sessionKey,agentId:e.agentId,accountId:e.accountId,reusable:n.reusable??e.spec.reusable})},o=e.spec.text??e.fallbackText;o&&i.push(new A(o));for(let t of e.spec.blocks??[]){if(t.type===`text`){i.push(new A(t.text));continue}if(t.type===`section`){let e=oi(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}=si({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}=si({spec:n});e.push(t),r&&a(r)}}else if(t.select){let{component:n,entry:r}=ci({spec:t.select});e.push(n),a(r)}i.push(new k(e))}}if(e.spec.modal){let t=Y(`mdl_`),r=e.spec.modal.fields.map((e,t)=>({id:Y(`fld_`),name:Vr(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}=si({spec:{label:e.spec.modal.triggerLabel??`Open form`,style:e.spec.modal.triggerStyle??`primary`},modalId:t});s&&a(s);let c=i.at(-1);if(c instanceof k){let e=c,t=e.components.some(e=>li(e));e.components.length<5&&!t?e.addComponent(o):i.push(new k([o]))}else i.push(new k([o]))}if(i.length===0)throw Error(`components must include at least one block, text, or modal trigger`);let s=new de(i,e.spec.container);return r.push(s),{components:r,entries:t,modals:n}}function fi(e){return e.some(e=>e.isV2)?ae.IsComponentsV2:void 0}var pi=class extends ve{constructor(e){super(),this.customIdParser=ai,this.title=e.title,this.customId=ei(e.modalId),this.components=e.fields.map(e=>{let t=ui(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 mi(e){return new pi({modalId:e.id,title:e.title,fields:e.fields})}function hi(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 gi=new Set([D.GuildForum,D.GuildMedia]);function _i(e){let t=[];for(let n of e.blocks??[])n.type===`file`&&t.push(Ur(n.file));return t}async function vi(e,t,n={}){let i=n.cfg??r(),o=a({cfg:i,accountId:n.accountId}),{token:s,rest:c,request:l}=R(n,i),{channelId:u}=await W(c,await V(e,n.accountId,i),l),d=await un(c,u);if(d&&gi.has(d))throw Error(`Discord components are not supported in forum-style channels`);let f=di({spec:t,sessionKey:n.sessionKey,agentId:n.agentId,accountId:o.accountId}),m=fi(f.components),h=n.silent?(m??0)|G:m??void 0,g=n.replyTo?{message_id:n.replyTo,fail_if_not_exists:!1}:void 0,_=_i(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],x;if(n.mediaUrl){let e=await p(n.mediaUrl,{localRoots:n.mediaLocalRoots}),t=n.filename?.trim()||e.fileName||`upload`;if(y&&y!==t)throw Error(`Component file block expects attachment "${y}", but the uploaded file is "${t}". Update components.blocks[].file or provide a matching filename.`);x=[{data:_n(e.buffer),name:t}]}else if(y)throw Error(`Discord component file blocks require a media attachment (media/path/filePath).`);let ee=K({...M({components:f.components,...h?{flags:h}:{},...x?{files:x}:{}}),...g?{message_reference:g}:{}}),S;try{S=await l(()=>c.post(O.channelMessages(u),{body:ee}),`components`)}catch(e){throw await U(e,{channelId:u,rest:c,token:s,hasMedia:!!x?.length})}return Fr({entries:f.entries,modals:f.modals,messageId:S.id}),b({channel:`discord`,accountId:o.accountId,direction:`outbound`}),{messageId:S.id??`unknown`,channelId:S.channel_id??u}}async function yi(e,t,n,i={}){let{rest:a,request:o}=R(i,i.cfg??r()),s=on(n);return await o(()=>a.put(O.channelMessageOwnReaction(e,t,s)),`react`),{ok:!0}}async function bi(e,t,n,i={}){let{rest:a}=R(i,i.cfg??r()),o=on(n);return await a.delete(O.channelMessageOwnReaction(e,t,o)),{ok:!0}}async function xi(e,t,n={}){let{rest:i}=R(n,n.cfg??r()),a=await i.get(O.channelMessage(e,t)),o=new Set;for(let e of a.reactions??[]){let t=yn(e.emoji);t&&o.add(t)}if(o.size===0)return{ok:!0,removed:[]};let s=[];return await Promise.allSettled(Array.from(o,n=>(s.push(n),i.delete(O.channelMessageOwnReaction(e,t,on(n)))))),{ok:!0,removed:s}}async function Si(e,t,n={}){let{rest:i}=R(n,n.cfg??r()),a=(await i.get(O.channelMessage(e,t))).reactions??[];if(a.length===0)return[];let o=typeof n.limit==`number`&&Number.isFinite(n.limit)?Math.min(Math.max(Math.floor(n.limit),1),100):100,s=[];for(let n of a){let r=yn(n.emoji);if(!r)continue;let a=encodeURIComponent(r),c=await i.get(O.channelMessageReaction(e,t,a),{limit:o});s.push({emoji:{id:n.emoji.id??null,name:n.emoji.name??null,raw:bn(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{K as $,qn as A,Fe as At,Ln as B,Wn as C,Ve as Ct,Kn as D,Ae as Dt,Xn as E,P as Et,An as F,kn as G,zn as H,jn as I,Sn as J,xn as K,In as L,Vn as M,Rn as N,Hn as O,Ne as Ot,Pn as P,q as Q,Bn as R,Gn as S,Ue as St,Jn as T,N as Tt,Dn as U,Nn as V,On as W,En as X,wn as Y,Tn as Z,Dr as _,Qe as _t,vi as a,L as at,rr as b,ut as bt,ti as c,Tt as ct,ai as d,I as dt,rn as et,Qr as f,qe as ft,Or as g,$e as gt,wr as h,Ze as ht,bi as i,Pt as it,Mn as j,Zn as k,Me as kt,ii as l,ct as lt,Lr as m,et as mt,yi as n,Ut as nt,mi as o,Et as ot,Ir as p,at as pt,Cn as q,xi as r,R as rt,hi as s,wt as st,Si as t,nn as tt,ni as u,F as ut,Ar as v,ot as vt,Un as w,We as wt,Yn as x,He as xt,Er as y,lt as yt,Fn as z};
8
+ //# sourceMappingURL=send-DavpkzhH.js.map
@@ -1 +1,2 @@
1
1
  import{m as e,y as t}from"./utils-UGOV_184.js";import{$r as n,qs as r}from"./model-selection-BlC_rXAN.js";import{ot as i}from"./plugins-CYLrFT4h.js";import{l as a}from"./windows-spawn-AB7ItGAE.js";import{s as o}from"./ir-Dk7OQ4bA.js";import{t as s}from"./outbound-attachment-B7wMxwj6.js";import{t as c}from"./tables-Oieq7UbT.js";import{spawn as l}from"node:child_process";import{createInterface as u}from"node:readline";function d(e,t){return e.slice(t.length).trim()}function f(e,t){return t.some(t=>e.startsWith(t))}function p(e){for(let{prefix:t,service:n}of e.servicePrefixes){if(!e.lower.startsWith(t))continue;let r=d(e.trimmed,t);if(!r)throw Error(`${t} target is required`);let i=r.toLowerCase();return e.isChatTarget(i)?e.parseTarget(r):{kind:`handle`,to:r,service:n}}return null}function m(e){let t=[...e.chatIdPrefixes,...e.chatGuidPrefixes,...e.chatIdentifierPrefixes,...e.extraChatPrefixes??[]];return p({trimmed:e.trimmed,lower:e.lower,servicePrefixes:e.servicePrefixes,isChatTarget:e=>f(e,t),parseTarget:e.parseTarget})}function h(e){for(let t of e.chatIdPrefixes)if(e.lower.startsWith(t)){let n=d(e.trimmed,t),r=Number.parseInt(n,10);if(!Number.isFinite(r))throw Error(`Invalid chat_id: ${n}`);return{kind:`chat_id`,chatId:r}}for(let t of e.chatGuidPrefixes)if(e.lower.startsWith(t)){let n=d(e.trimmed,t);if(!n)throw Error(`chat_guid is required`);return{kind:`chat_guid`,chatGuid:n}}for(let t of e.chatIdentifierPrefixes)if(e.lower.startsWith(t)){let n=d(e.trimmed,t);if(!n)throw Error(`chat_identifier is required`);return{kind:`chat_identifier`,chatIdentifier:n}}return null}function g(e){for(let{prefix:t}of e.servicePrefixes){if(!e.lower.startsWith(t))continue;let n=d(e.trimmed,t);return n?e.parseAllowTarget(n):{kind:`handle`,handle:``}}return null}function _(e){return g({trimmed:e.trimmed,lower:e.lower,servicePrefixes:e.servicePrefixes,parseAllowTarget:e.parseAllowTarget})||y({trimmed:e.trimmed,lower:e.lower,chatIdPrefixes:e.chatIdPrefixes,chatGuidPrefixes:e.chatGuidPrefixes,chatIdentifierPrefixes:e.chatIdentifierPrefixes})||null}function v(e){return t=>n({allowFrom:t.allowFrom,sender:t.sender,chatId:t.chatId,chatGuid:t.chatGuid,chatIdentifier:t.chatIdentifier,normalizeSender:e.normalizeSender,parseAllowTarget:e.parseAllowTarget})}function y(e){for(let t of e.chatIdPrefixes)if(e.lower.startsWith(t)){let n=d(e.trimmed,t),r=Number.parseInt(n,10);if(Number.isFinite(r))return{kind:`chat_id`,chatId:r}}for(let t of e.chatGuidPrefixes)if(e.lower.startsWith(t)){let n=d(e.trimmed,t);if(n)return{kind:`chat_guid`,chatGuid:n}}for(let t of e.chatIdentifierPrefixes)if(e.lower.startsWith(t)){let n=d(e.trimmed,t);if(n)return{kind:`chat_identifier`,chatIdentifier:n}}return null}const b=[`chat_id:`,`chatid:`,`chat:`],x=[`chat_guid:`,`chatguid:`,`guid:`],S=[`chat_identifier:`,`chatidentifier:`,`chatident:`],C=[{prefix:`imessage:`,service:`imessage`},{prefix:`sms:`,service:`sms`},{prefix:`auto:`,service:`auto`}];function w(t){let n=t.trim();if(!n)return``;let r=n.toLowerCase();if(r.startsWith(`imessage:`))return w(n.slice(9));if(r.startsWith(`sms:`))return w(n.slice(4));if(r.startsWith(`auto:`))return w(n.slice(5));for(let e of b)if(r.startsWith(e))return`chat_id:${n.slice(e.length).trim()}`;for(let e of x)if(r.startsWith(e))return`chat_guid:${n.slice(e.length).trim()}`;for(let e of S)if(r.startsWith(e))return`chat_identifier:${n.slice(e.length).trim()}`;return n.includes(`@`)?n.toLowerCase():e(n)||n.replace(/\s+/g,``)}function T(e){let t=e.trim();if(!t)throw Error(`iMessage target is required`);let n=t.toLowerCase();return m({trimmed:t,lower:n,servicePrefixes:C,chatIdPrefixes:b,chatGuidPrefixes:x,chatIdentifierPrefixes:S,parseTarget:T})||h({trimmed:t,lower:n,chatIdPrefixes:b,chatGuidPrefixes:x,chatIdentifierPrefixes:S})||{kind:`handle`,to:t,service:`auto`}}function E(e){let t=e.trim();return t?_({trimmed:t,lower:t.toLowerCase(),servicePrefixes:C,parseAllowTarget:E,chatIdPrefixes:b,chatGuidPrefixes:x,chatIdentifierPrefixes:S})||{kind:`handle`,handle:w(t)}:{kind:`handle`,handle:``}}const D=v({normalizeSender:w,parseAllowTarget:E});function O(e){return D(e)}function k(e){return!e||!Number.isFinite(e)?``:`chat_id:${e}`}const A=1e4;function j(){return!!process.env.VITEST?.trim().toLowerCase()}var M=class{constructor(e={}){this.pending=new Map,this.closedResolve=null,this.child=null,this.reader=null,this.nextId=1,this.cliPath=e.cliPath?.trim()||`imsg`,this.dbPath=e.dbPath?.trim()?t(e.dbPath):void 0,this.runtime=e.runtime,this.onNotification=e.onNotification,this.closed=new Promise(e=>{this.closedResolve=e})}async start(){if(this.child)return;if(j())throw Error(`Refusing to start imsg rpc in test environment; mock iMessage RPC client`);let e=[`rpc`];this.dbPath&&e.push(`--db`,this.dbPath);let t=l(this.cliPath,e,{stdio:[`pipe`,`pipe`,`pipe`]});this.child=t,this.reader=u({input:t.stdout}),this.reader.on(`line`,e=>{let t=e.trim();t&&this.handleLine(t)}),t.stderr?.on(`data`,e=>{let t=e.toString().split(/\r?\n/);for(let e of t)e.trim()&&this.runtime?.error?.(`imsg rpc: ${e.trim()}`)}),t.on(`error`,e=>{this.failAll(e instanceof Error?e:Error(String(e))),this.closedResolve?.()}),t.on(`close`,(e,t)=>{if(e!==0&&e!==null){let n=t?`signal ${t}`:`code ${e}`;this.failAll(Error(`imsg rpc exited (${n})`))}else this.failAll(Error(`imsg rpc closed`));this.closedResolve?.()})}async stop(){if(!this.child)return;this.reader?.close(),this.reader=null,this.child.stdin?.end();let e=this.child;this.child=null,await Promise.race([this.closed,new Promise(t=>{setTimeout(()=>{e.killed||e.kill(`SIGTERM`),t()},500)})])}async waitForClose(){await this.closed}async request(e,t,n){if(!this.child||!this.child.stdin)throw Error(`imsg rpc not running`);let r=this.nextId++,i={jsonrpc:`2.0`,id:r,method:e,params:t??{}},a=`${JSON.stringify(i)}\n`,o=n?.timeoutMs??1e4,s=new Promise((t,n)=>{let i=String(r),a=o>0?setTimeout(()=>{this.pending.delete(i),n(Error(`imsg rpc timeout (${e})`))},o):void 0;this.pending.set(i,{resolve:e=>t(e),reject:n,timer:a})});return this.child.stdin.write(a),await s}handleLine(e){let t;try{t=JSON.parse(e)}catch(t){let n=t instanceof Error?t.message:String(t);this.runtime?.error?.(`imsg rpc: failed to parse ${e}: ${n}`);return}if(t.id!==void 0&&t.id!==null){let e=String(t.id),n=this.pending.get(e);if(!n)return;if(n.timer&&clearTimeout(n.timer),this.pending.delete(e),t.error){let e=t.error.message??`imsg rpc error`,r=t.error.data,i=t.error.code,a=[];if(typeof i==`number`&&a.push(`code=${i}`),r!==void 0){let e=typeof r==`string`?r:JSON.stringify(r,null,2);e&&a.push(e)}let o=a.length>0?`${e}: ${a.join(` `)}`:e;n.reject(Error(o));return}n.resolve(t.result);return}t.method&&this.onNotification?.({method:t.method,params:t.params})}failAll(e){for(let[t,n]of this.pending.entries())n.timer&&clearTimeout(n.timer),n.reject(e),this.pending.delete(t)}};async function N(e={}){let t=new M(e);return await t.start(),t}const P=/^\s*\[\[\s*reply_to\s*:\s*([^\]\n]+)\s*\]\]\s*/i;function F(e){let t=``;for(let n of e){let e=n.charCodeAt(0);e>=0&&e<=31||e===127||n===`[`||n===`]`||(t+=n)}return t}function I(e){let t=e?.trim();if(!t)return;let n=F(t).trim();if(n)return n.length>256?n.slice(0,256):n}function L(e,t){let n=I(t);if(!n)return e;let r=`[[reply_to:${n}]]`,i=e.match(P);if(i){let t=e.slice(i[0].length).trimStart();return t?`${r} ${t}`:r}let a=e.trimStart();return a?`${r} ${a}`:r}function R(e){if(!e)return null;let t=typeof e.messageId==`string`&&e.messageId.trim()||typeof e.message_id==`string`&&e.message_id.trim()||typeof e.id==`string`&&e.id.trim()||typeof e.guid==`string`&&e.guid.trim()||(typeof e.message_id==`number`?String(e.message_id):null)||(typeof e.id==`number`?String(e.id):null);return t?String(t).trim():null}async function z(e,t,n={}){let l=n.config??r(),u=n.account??i({cfg:l,accountId:n.accountId}),d=n.cliPath?.trim()||u.config.cliPath?.trim()||`imsg`,f=n.dbPath?.trim()||u.config.dbPath?.trim(),p=T(n.chatId?k(n.chatId):e),m=n.service??(p.kind===`handle`?p.service:void 0)??u.config.service,h=n.region?.trim()||u.config.region?.trim()||`US`,g=typeof n.maxBytes==`number`?n.maxBytes:typeof u.config.mediaMaxMb==`number`?u.config.mediaMaxMb*1024*1024:16*1024*1024,_=t??``,v;if(n.mediaUrl?.trim()){let e=await(n.resolveAttachmentImpl??s)(n.mediaUrl.trim(),g,{localRoots:n.mediaLocalRoots});if(v=e.path,!_.trim()){let t=a(e.contentType??void 0);t&&(_=t===`image`?`<media:image>`:`<media:${t}>`)}}if(!_.trim()&&!v)throw Error(`iMessage send requires text or media`);if(_.trim()){let e=o({cfg:l,channel:`imessage`,accountId:u.accountId});_=c(_,e)}_=L(_,n.replyToId);let y={text:_,service:m||`auto`,region:h};v&&(y.file=v),p.kind===`chat_id`?y.chat_id=p.chatId:p.kind===`chat_guid`?y.chat_guid=p.chatGuid:p.kind===`chat_identifier`?y.chat_identifier=p.chatIdentifier:y.to=p.to;let b=n.client??(n.createClient?await n.createClient({cliPath:d,dbPath:f}):await N({cliPath:d,dbPath:f})),x=!n.client;try{let e=await b.request(`send`,y,{timeoutMs:n.timeoutMs});return{messageId:R(e)??(e?.ok?`ok`:`unknown`)}}finally{x&&await b.stop()}}export{O as a,k as i,N as n,w as o,A as r,T as s,z as t};
2
+ //# sourceMappingURL=send-DbeEC2a3.js.map
@@ -1 +1,2 @@
1
1
  import{S as e,t,v as n}from"./subsystem-BLbY429l.js";import{_ as r}from"./paths-BjD3T_xq.js";import{Bo as i,Io as a,jo as o,sc as s}from"./auth-profiles-T8DuH3ax.js";import{_ as c}from"./session-key-C7F_iqYg.js";import{t as l}from"./utils-CGdo13HV.js";import{u}from"./plugins-DNlgeTTc.js";import{a as d,c as f,l as p,u as m}from"./windows-spawn-7oINn5ao.js";import{n as h}from"./redact-CnRxK70G.js";import{i as g,n as _,r as v,s as y,t as b}from"./errors-6SQWM9dj.js";import{n as x,r as S,t as C}from"./targets-4EaxWBal.js";import{n as w}from"./proxy-fetch-gWETR3cl.js";import{a as ee,n as T,s as E,t as te}from"./ir-D8Hh84ab.js";import{t as ne}from"./render-DrrPmnMI.js";import{i as D}from"./pairing-store-BH-FTYkn.js";import{i as re,n as O}from"./channel-activity-BBrgoad1.js";import{t as ie}from"./load-options-DV4j6Aqb.js";import{n as k}from"./polls-DKJOFSzJ.js";import{n as A,r as j,t as M}from"./allow-from-DEeVIPKS.js";import{t as ae}from"./fetch-Ce-scEU-.js";import N from"node:path";import P from"node:fs";import oe from"json5";import{randomBytes as se}from"node:crypto";import{Bot as ce,HttpError as le,InputFile as ue}from"grammy";const de=new Set([`.oga`,`.ogg`,`.opus`,`.mp3`,`.m4a`]),fe=new Set([`audio/ogg`,`audio/opus`,`audio/mpeg`,`audio/mp3`,`audio/mp4`,`audio/x-m4a`,`audio/m4a`]);function pe(e){let t=m(e.contentType);if(t&&fe.has(t))return!0;let n=e.fileName?.trim();if(!n)return!1;let r=d(n);return r?de.has(r):!1}function me(e){return pe(e)}function he(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 ge(e){return Number.isFinite(e)?` ±${Math.round(e??0)}m`:``}function _e(e,t){return`${e.toFixed(6)}, ${t.toFixed(6)}`}function ve(e){let t=he(e),n=_e(t.latitude,t.longitude),r=ge(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 ye(e){let t=he(e);return{LocationLat:t.latitude,LocationLon:t.longitude,LocationAccuracy:t.accuracy,LocationName:t.name,LocationAddress:t.address,LocationSource:t.source,LocationIsLive:t.isLive}}const be=new Set,xe=t(`telegram/bot-access`);function Se(e){if(!process.env.VITEST)for(let t of e)be.has(t)||(be.add(t),xe.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 Ce=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&&Se([...new Set(i)]),{entries:r.filter(e=>/^\d+$/.test(e)),hasWildcard:n,hasEntries:t.length>0,invalidEntries:i}},we=e=>Ce(j(e)),Te=e=>{let{allow:t,senderId:n}=e;return A(t,n,!0)},Ee=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 De(e){let t=c(e.accountId),n=ke({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,a=r??i,o=await D(`telegram`,process.env,t).catch(()=>[]),{groupConfig:s,topicConfig:l}=e.resolveTelegramGroupConfig(e.chatId,a),u=M(l?.allowFrom,s?.allowFrom);return{resolvedThreadId:r,dmThreadId:i,storeAllowFrom:o,groupConfig:s,topicConfig:l,groupAllowOverride:u,effectiveGroupAllow:Ce(u??e.groupAllowFrom),hasGroupAllowOverride:u!==void 0}}function Oe(e){if(e.isForum)return e.messageThreadId==null?1:e.messageThreadId}function ke(e){return e.isGroup?{id:Oe({isForum:e.isForum,messageThreadId:e.messageThreadId}),scope:e.isForum?`forum`:`none`}:e.messageThreadId==null?{scope:`dm`}:{id:e.messageThreadId,scope:`dm`}}function Ae(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 je(e){if(e!=null)return{message_thread_id:Math.trunc(e)}}function Me(e){return s(e)}function Ne(e,t){return t==null?String(e):`${e}:topic:${t}`}function Pe(e){return(e.senderId==null?``:String(e.senderId).trim())||String(e.chatId)}function Fe(e,t){return`telegram:group:${Ne(e,t)}`}function Ie(e){if(!(!e.isGroup||e.resolvedThreadId==null))return{kind:`group`,id:String(e.chatId)}}function F(e){return[e.from?.first_name,e.from?.last_name].filter(Boolean).join(` `).trim()||e.from?.username||void 0}function Le(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 Re(e,t){let n=F(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 ze(e,t,n){let r=e.chat?.title,i=n==null?``:` topic:${n}`;return r?`${r} id:${t}${i}`:`group:${t}${i}`}function Be(e){return{text:e.text??e.caption??``,entities:e.entities??e.caption_entities??[]}}function Ve(e){return e!=null&&/[a-z0-9_]/i.test(e)}function He(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(!Ve(i)&&!Ve(a))return!0;n=r+1}return!1}function Ue(e,t){let{text:n,entities:r}=Be(e),i=`@${t}`.toLowerCase();if(He(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 We(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 Ge(e){if(!e)return;let t=Number(e);if(Number.isFinite(t))return t}function Ke(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=Le(o)??``,!i))){let e=et(o);e&&(i=ve(e))}if(!i)return null;let s=(o?F(o):void 0)??`unknown sender`,c=o?.forward_origin?Qe(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 qe(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 Je(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 Ye(e){let{display:t,name:n,username:r,id:i}=qe(e.user);return t?{from:t,date:e.date,fromType:e.type,fromId:i,fromUsername:r,fromTitle:n}:null}function Xe(e){let t=e.name?.trim();return t?{from:t,date:e.date,fromType:e.type,fromTitle:t}:null}function Ze(e){let t=e.type===`channel`?`channel`:`chat`,{display:n,title:r,username:i,id:a}=Je(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 Qe(e){switch(e.type){case`user`:return Ye({user:e.sender_user,date:e.date,type:`user`});case`hidden_user`:return Xe({name:e.sender_user_name,date:e.date,type:`hidden_user`});case`chat`:return Ze({chat:e.sender_chat,date:e.date,type:`chat`,signature:e.author_signature});case`channel`:return Ze({chat:e.chat,date:e.date,type:`channel`,signature:e.author_signature,messageId:e.message_id});default:return null}}function $e(e){return e.forward_origin?Qe(e.forward_origin):null}function et(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}const tt=N.join(l,`cron`),nt=N.join(tt,`jobs.json`),I=new Map;function rt(e){if(e?.trim()){let t=e.trim();return t.startsWith(`~`)?N.resolve(r(t)):N.resolve(t)}return nt}async function it(e){try{let t=await P.promises.readFile(e,`utf-8`),n;try{n=oe.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 I.set(e,JSON.stringify(i,null,2)),i}catch(t){if(t?.code===`ENOENT`)return I.delete(e),{version:1,jobs:[]};throw t}}async function L(e){await P.promises.chmod(e,384).catch(()=>void 0)}async function at(e,t,n){let r=N.dirname(e);await P.promises.mkdir(r,{recursive:!0,mode:448}),await P.promises.chmod(r,448).catch(()=>void 0);let i=JSON.stringify(t,null,2),a=I.get(e);if(a===i)return;let o=a??null;if(o===null)try{o=await P.promises.readFile(e,`utf-8`)}catch(e){if(e.code!==`ENOENT`)throw e}if(o===i){I.set(e,i);return}let s=`${e}.${process.pid}.${se(8).toString(`hex`)}.tmp`;if(await P.promises.writeFile(s,i,{encoding:`utf-8`,mode:384}),await L(s),o!==null&&!n?.skipBackup)try{let t=`${e}.bak`;await P.promises.copyFile(e,t),await L(t)}catch{}await ot(s,e),await L(e),I.set(e,i)}async function ot(e,t){for(let n=0;n<=3;n++)try{await P.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 P.promises.copyFile(e,t),await P.promises.unlink(e).catch(()=>{});return}throw r}}function R(e){return e.trim().toLowerCase()}function st(e){if(!e)return[];let t=e.trim();if(!t)return[];let n=t.toLowerCase();return[`0`,`false`,`off`,`none`].includes(n)?[]:[`1`,`true`,`all`,`*`].includes(n)?[`*`]:t.split(/[,\s]+/).map(R).filter(Boolean)}function ct(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 lt(e,t=process.env){let n=Array.isArray(e?.diagnostics?.flags)?e?.diagnostics?.flags:[],r=st(t.OPENCLAW_DIAGNOSTICS);return ct([...n,...r])}function ut(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 dt(e,t,n=process.env){return ut(e,lt(t,n))}const ft=t(`telegram/api`);function pt(e,t){return t||(e?.error?e.error:e=>ft.error(e))}async function mt({operation:e,fn:t,runtime:r,logger:i,shouldLog:a}){try{return await t()}catch(t){if(!a||a(t)){let a=v(t);pt(r,i)(n(`telegram ${e} failed: ${a}`))}throw t}}function ht(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 gt(e){return z(e).replace(/"/g,`&quot;`)}const _t=new Set([`md`,`go`,`py`,`pl`,`sh`,`am`,`at`,`be`,`cc`]);function vt(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(!_t.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 yt(e,t){let n=e.href.trim();if(!n||e.start===e.end||vt(n,t.slice(e.start,e.end)))return null;let r=gt(n);return{start:e.start,end:e.end,open:`<a href="${r}">`,close:`</a>`}}function bt(e){return ne(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:yt})}function xt(e,t={}){let n=bt(T(e??``,{linkify:!0,enableSpoilers:!0,headingStyle:`none`,blockquotePrefix:``,tableMode:t.tableMode}));return t.wrapFileRefs===!1?n:kt(n)}function St(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}const Ct=Array.from(_t).map(St).join(`|`),wt=/<a\s+href="https?:\/\/([^"]+)"[^>]*>\1<\/a>/gi,Tt=RegExp(`(^|[^a-zA-Z0-9_\\-/])([a-zA-Z0-9_.\\-./]+\\.(?:${Ct}))(?=$|[^a-zA-Z0-9_\\-/])`,`gi`),Et=RegExp(`([^a-zA-Z0-9]|^)([A-Za-z]\\.(?:${Ct}))(?=[^a-zA-Z0-9/]|$)`,`g`),B=/(<\/?)([a-zA-Z][a-zA-Z0-9-]*)\b[^>]*?>/gi;function Dt(e,t,n){return n.startsWith(`//`)||/https?:\/\/$/i.test(t)?e:`${t}<code>${z(n)}</code>`}function Ot(e,t,n,r){return!e||t>0||n>0||r>0?e:e.replace(Tt,Dt).replace(Et,(e,t,n)=>t===`>`?e:`${t}<code>${z(n)}</code>`)}function kt(e){wt.lastIndex=0;let t=e.replace(wt,(e,t)=>vt(`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+=Ot(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+=Ot(c,n,r,i),a}function At(e,t={}){return(t.textMode??`markdown`)===`html`?e:xt(e,{tableMode:t.tableMode})}const jt=new Set([`br`]);function Mt(e){return e.map(e=>e.openTag).join(``)}function Nt(e){return e.slice().toReversed().map(e=>e.closeTag).join(``)}function Pt(e){return e.reduce((e,t)=>e+t.closeTag.length,0)}function Ft(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 It(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=Ft(e,r);return i===-1||i<n?n:r}function Lt(e,t){for(let n=e.length-1;n>=0;--n)if(e[n]?.name===t){e.splice(n,1);return}}function Rt(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=Mt(i),o=!1},c=()=>{o&&(r.push(`${a}${Nt(i)}`),s())},l=e=>{let t=e;for(;t.length>0;){let e=n-a.length-Pt(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=It(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&&(jt.has(p)||s.trimEnd().endsWith(`/>`));if(!f){let e=m?0:`</${p}>`.length;o&&a.length+s.length+Pt(i)+e>n&&c()}a+=s,m&&(o=!0),f?Lt(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 zt(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=Ht(e,Number.isFinite(a)&&a>0?a:Math.max(1,Math.floor(r/2)));return o.length>1?o:Ht(e,Math.max(1,Math.floor(r/2)))}function Bt(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 Vt(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 Ht(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:Bt(e.styles,i,t),links:Vt(e.links,i,t)}),i=t}return r}function Ut(e,t){let n=Math.max(1,Math.floor(t)),r=te(e,n),i=[];for(;r.length>0;){let e=r.shift();if(!e)continue;let t=kt(bt(e));if(t.length<=n||e.text.length<=1){i.push({html:t,text:e.text});continue}let a=zt(e,n,t.length);if(a.length<=1){i.push({html:t,text:e.text});continue}r.unshift(...a)}return i}function Wt(e,t,n={}){return Ut(T(e??``,{linkify:!0,enableSpoilers:!0,headingStyle:`none`,blockquotePrefix:``,tableMode:n.tableMode}),t)}const Gt=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`]),Kt=new Set([`ECONNREFUSED`,`ENOTFOUND`,`EAI_AGAIN`,`ENETUNREACH`,`EHOSTUNREACH`]),qt=new Set([`AbortError`,`TimeoutError`,`ConnectTimeoutError`,`HeadersTimeoutError`,`BodyTimeoutError`]),Jt=new Set([`fetch failed`,`typeerror: fetch failed`]),Yt=/^network request(?:\s+for\s+["']?[^"']+["']?)?\s+failed\s+after\b.*[!.]?$/i,Xt=[`undici`,`network error`,`network request`,`client network socket disconnected`,`socket hang up`,`getaddrinfo`,`timeout`,`timed out`];function Zt(e){return b(e,e=>{let t=[e.cause,e.reason];return Array.isArray(e.errors)&&t.push(...e.errors),y(e)===`HttpError`&&t.push(e.error),t})}function Qt(e){return e?.trim().toUpperCase()??``}function $t(e){let t=_(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 en(e){if(!e)return!1;for(let t of Zt(e)){let e=Qt($t(t));if(e&&Kt.has(e))return!0}return!1}function tn(e,t){for(let n of Zt(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 nn(e){return tn(e,e=>e>=500)}function rn(e){return tn(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 Zt(e)){let e=Qt($t(t));if(e&&Gt.has(e))return!0;let r=y(t);if(r&&qt.has(r))return!0;let i=v(t).trim().toLowerCase();if(i&&Jt.has(i)||i&&Yt.test(i)||n&&i&&Xt.some(e=>i.includes(e)))return!0}return!1}const an=new Map;function on(e){return String(e)}function sn(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=on(e),r=an.get(n);r||(r={timestamps:new Map},an.set(n,r)),r.timestamps.set(t,Date.now()),r.timestamps.size>100&&sn(r)}function cn(e,t){let n=on(e),r=an.get(n);return r?(sn(r),r.timestamps.has(t)):!1}const U=t(`telegram/target-writeback`);function ln(e){return!e||typeof e!=`object`||Array.isArray(e)?null:e}function un(e){let t=x(e);if(t)return t.startsWith(`@`)?t.toLowerCase():t}function dn(e){let t=S(e),n=un(t.chatId);if(n)return`${n}|${t.messageThreadId==null?``:String(t.messageThreadId)}`}function fn(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 pn(e){let t=S(e.raw);if(C(t.chatId))return null;let n=un(t.chatId);return n?{matchKey:`${n}|${t.messageThreadId==null?``:String(t.messageThreadId)}`,resolvedTarget:fn({raw:e.raw,parsed:t,resolvedChatId:e.resolvedChatId})}:null}function mn(e){if(typeof e.rawValue!=`string`&&typeof e.rawValue!=`number`)return null;let t=String(e.rawValue).trim();return!t||dn(t)!==e.matchKey?null:e.resolvedTarget}function hn(e){let t=!1,n=ln(e.cfg.channels?.telegram);if(!n)return t;let r=(n,r)=>{let i=mn({rawValue:n[r],matchKey:e.matchKey,resolvedTarget:e.resolvedTarget});i&&(n[r]=i,t=!0)};r(n,`defaultTo`);let i=ln(n.accounts);if(!i)return t;for(let e of Object.keys(i)){let t=ln(i[e]);t&&r(t,`defaultTo`)}return t}async function gn(e){let t=e.rawTarget.trim();if(!t)return;let n=pn({raw:t,resolvedChatId:e.resolvedChatId});if(!n)return;let{matchKey:r,resolvedTarget:o}=n;try{let{snapshot:n,writeOptions:s}=await a(),c=structuredClone(n.config??{});hn({cfg:c,matchKey:r,resolvedTarget:o})&&(await i(c,s),e.verbose&&U.warn(`resolved Telegram defaultTo target ${t} -> ${o}`))}catch(n){e.verbose&&U.warn(`failed to persist Telegram defaultTo target ${t}: ${String(n)}`)}try{let n=rt(e.cfg.cron?.store),i=await it(n),a=!1;for(let e of i.jobs){if(e.delivery?.channel!==`telegram`)continue;let t=mn({rawValue:e.delivery.to,matchKey:r,resolvedTarget:o});t&&(e.delivery.to=t,a=!0)}a&&(await at(n,i),e.verbose&&U.warn(`resolved Telegram cron delivery target ${t} -> ${o}`))}catch(n){e.verbose&&U.warn(`failed to persist Telegram cron target ${t}: ${String(n)}`)}}function _n(e){return e.wantsVoice?pe(e)?{useVoice:!0}:{useVoice:!1,reason:`media is ${e.contentType??`unknown`} (${e.fileName??`unknown`})`}:{useVoice:!1}}function vn(e){let t=_n(e);return t.reason&&e.logFallback&&e.logFallback(`Telegram voice requested but ${t.reason}; sending as audio file instead.`),{useVoice:t.useVoice}}function W(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 yn(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 bn(e,t,n){if(!e)return[];let r=Math.max(1,Math.floor(n)),i=yn(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 xn=/can't parse entities|parse entities|find end of the entity/i,Sn=/400:\s*Bad Request:\s*message thread not found/i,Cn=/400:\s*Bad Request:\s*message is not modified|MESSAGE_NOT_MODIFIED/i,wn=/400: Bad Request: chat not found/i,Tn=t(`telegram/send`),En=t(`telegram/diagnostic`),G=new Map;function Dn(e){return dt(`telegram.http`,e)?(e,t)=>{if(!(t instanceof le))return;let n=h(g(t.error??t));En.warn(`telegram http error (${e}): ${n}`)}:()=>{}}function On(){return!process.env.VITEST&&!0}function kn(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 An(e,t){if(G.set(e,t),G.size>64){let e=G.keys().next().value;e!==void 0&&G.delete(e)}return t}function jn(e){let t=typeof e.config.timeoutSeconds==`number`&&Number.isFinite(e.config.timeoutSeconds)?Math.max(1,Math.floor(e.config.timeoutSeconds)):void 0,n=On()?kn({account:e,timeoutSeconds:t}):null;if(n&&G.has(n))return G.get(n);let r=e.config.proxy?.trim(),i=ae(r?w(r):void 0,{network:e.config.network}),a=i||t?{...i?{fetch:i}:{},...t?{timeoutSeconds:t}:{}}:void 0;return n?An(n,a):a}function Mn(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 Nn(e,t){let n=C(e);if(n)return n;let r=x(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=C(String(e?.id??``));if(!n)throw Error(`resolved chat id is not numeric (${String(e?.id??``)})`);return t.verbose&&Tn.warn(`telegram recipient ${r} resolved to numeric chat id ${n}`),n}catch(e){let t=v(e);throw Error(`Telegram recipient ${r} could not be resolved to a numeric chat ID (${t})`,{cause:e})}}async function K(e){let t=await Nn(e.lookupTarget,{api:e.api,verbose:e.verbose});return await gn({cfg:e.cfg,rawTarget:e.persistTarget,resolvedChatId:t,verbose:e.verbose}),t}function q(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 Pn(e){return Sn.test(v(e))}function J(e){return Cn.test(v(e))}function Fn(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 In(e){if(!e||!Fn(e))return e;let t={...e};return delete t.message_thread_id,Object.keys(t).length>0?t:void 0}function Ln(e){return xn.test(v(e))}function Y(e){let t=e.messageThreadId==null?e.targetMessageThreadId:e.messageThreadId,n=e.chatType===`direct`?`dm`:`forum`,r=Ae(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 Rn(e){try{return await e.requestHtml(e.label)}catch(t){if(!Ln(t))throw t;return e.verbose&&Tn.warn(`telegram ${e.label} failed with HTML parse error, retrying as plain text: ${v(t)}`),await e.requestPlain(`${e.label}-plain`)}}function X(e){let t=e.cfg??o(),n=u({cfg:t,accountId:e.accountId}),r=Mn(e.token,n),i=jn(n);return{cfg:t,account:n,api:e.api??new ce(r,i?{client:i}:void 0).api}}function Z(e){let t=re({retry:e.retry,configRetry:e.account.config.retry,verbose:e.verbose,...e.shouldRetry?{shouldRetry:e.shouldRetry}:{},...e.strictShouldRetry?{strictShouldRetry:!0}:{}}),n=Dn(e.cfg);return(r,i,a)=>{let o=()=>t(r,i);return(e.useApiErrorLogging===!1?o():mt({operation:i??`request`,fn:o,...a?.shouldLog?{shouldLog:a.shouldLog}:{}})).catch(e=>{throw n(i??`request`,e),e})}}function zn(e,t){return wn.test(v(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(!Fn(e)||!Pn(i))throw i;return n&&Tn.warn(`telegram ${t} failed with message_thread_id, retrying without thread: ${v(i)}`),await r(In(e),`${t}-threadless`)}}function Bn(e){return async(t,n)=>e.requestWithDiag(t,n).catch(t=>{throw zn(t,{chatId:e.chatId,input:e.input})})}function Vn(e){return Z({cfg:e.cfg,account:e.account,retry:e.retry,verbose:e.verbose,useApiErrorLogging:e.useApiErrorLogging,shouldRetry:e=>en(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 Hn(t,n,r={}){let{cfg:i,account:a,api:o}=X(r),s=S(t),c=await K({cfg:i,api:o,lookupTarget:s.chatId,persistTarget:t,verbose:r.verbose}),l=r.mediaUrl?.trim(),u=r.maxBytes??(typeof a.config.mediaMaxMb==`number`?a.config.mediaMaxMb:100)*1024*1024,d=$(r.buttons),m=Y({targetMessageThreadId:s.messageThreadId,messageThreadId:r.messageThreadId,chatType:s.chatType,replyToMessageId:r.replyToMessageId,quoteText:r.quoteText}),h=Object.keys(m).length>0,g=Bn({requestWithDiag:Vn({cfg:i,account:a,retry:r.retry,verbose:r.verbose}),chatId:c,input:t}),_=r.textMode??`markdown`,y=E({cfg:i,channel:`telegram`,accountId:a.accountId}),b=e=>At(e,{textMode:_,tableMode:y}),x=a.config.linkPreview??!0?void 0:{is_disabled:!0},C=async(e,t)=>await Q(t,`message`,r.verbose,async(t,n)=>{let i=t?{...t}:{};x&&(i.link_preview_options=x);let a={...i,...r.silent===!0?{disable_notification:!0}:{}},s=Object.keys(a).length>0,l=t=>g(()=>s?o.sendMessage(c,e.plainText,a):o.sendMessage(c,e.plainText),t);if(!e.htmlText)return await l(n);let u=e.htmlText,d={parse_mode:`HTML`,...a};return await Rn({label:n,verbose:r.verbose,requestHtml:e=>g(()=>o.sendMessage(c,u,d),e),requestPlain:l})}),w=e=>h||e&&d?{...m,...e&&d?{reply_markup:d}:{}}:void 0,T=async(e,t)=>{let n=``,r=c;for(let i=0;i<e.length;i+=1){let a=e[i];if(!a)continue;let o=await C(a,w(i===e.length-1)),s=W(o,t);H(c,s),n=String(s),r=String(o?.chat?.id??c)}return{messageId:n,chatId:r}},te=(t,n)=>{let i=r.plainText??t,a;try{a=Rt(t,4e3)}catch(t){return e(`telegram ${n} failed HTML chunk planning, retrying as plain text: ${v(t)}`),yn(i,4e3).map(e=>({plainText:e}))}let o=yn(i,4e3);if(o.length>a.length)return e(`telegram ${n} plain-text fallback needs more chunks than HTML; sending plain text`),o.map(e=>({plainText:e}));let s=bn(i,a.length,4e3);return a.map((e,t)=>({htmlText:e,plainText:s[t]??e}))},ne=async(e,t)=>await T(te(e,t),t);if(l){let t=await ee(l,ie({maxBytes:u,mediaLocalRoots:r.mediaLocalRoots})),i=p(t.contentType??void 0),s=f({contentType:t.contentType,fileName:t.fileName}),v=i===`video`&&r.asVideoNote===!0,y=t.fileName??(s?`animation.gif`:Jn(i??`document`))??`file`,x=new ue(t.buffer,y),S,C;if(v)S=void 0,C=n.trim()?n:void 0;else{let e=ht(n);S=e.caption,C=e.followUpText}let w=S?b(S):void 0,E=!!C,te={...h?m:{},...!E&&d?{reply_markup:d}:{}},D={...w?{caption:w,parse_mode:`HTML`}:{},...te,...r.silent===!0?{disable_notification:!0}:{}},re=async(e,t)=>await Q(D,e,r.verbose,async(e,n)=>g(()=>t(e),n)),k=(()=>{if(s)return{label:`animation`,sender:e=>o.sendAnimation(c,x,e)};if(i===`image`)return{label:`photo`,sender:e=>o.sendPhoto(c,x,e)};if(i===`video`)return v?{label:`video_note`,sender:e=>o.sendVideoNote(c,x,e)}:{label:`video`,sender:e=>o.sendVideo(c,x,e)};if(i===`audio`){let{useVoice:n}=vn({wantsVoice:r.asVoice===!0,contentType:t.contentType,fileName:y,logFallback:e});return n?{label:`voice`,sender:e=>o.sendVoice(c,x,e)}:{label:`audio`,sender:e=>o.sendAudio(c,x,e)}}return{label:`document`,sender:e=>o.sendDocument(c,x,e)}})(),A=await re(k.label,k.sender),j=W(A,`media send`),M=String(A?.chat?.id??c);return H(c,j),O({channel:`telegram`,accountId:a.accountId,direction:`outbound`}),E&&C?_===`html`?{messageId:(await ne(C,`text follow-up send`)).messageId,chatId:M}:{messageId:(await T([{plainText:C,htmlText:b(C)}],`text follow-up send`)).messageId,chatId:M}:{messageId:String(j),chatId:M}}if(!n||!n.trim())throw Error(`Message must be non-empty for Telegram sends`);let D;return D=_===`html`?await ne(n,`text send`):await T([{plainText:r.plainText??n,htmlText:b(n)}],`text send`),O({channel:`telegram`,accountId:a.accountId,direction:`outbound`}),D}async function Un(e,t={}){let{cfg:n,account:r,api:i}=X(t),a=S(e),o=await K({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=je(a.messageThreadId??t.messageThreadId);return await s(()=>i.sendChatAction(o,`typing`,c),`typing`),{ok:!0}}async function Wn(e,t,n,r={}){let{cfg:i,account:a,api:o}=X(r),s=String(e),c=await K({cfg:i,api:o,lookupTarget:s,persistTarget:s,verbose:r.verbose}),l=q(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 Gn(t,n,r={}){let{cfg:i,account:a,api:o}=X(r),s=String(t),c=await K({cfg:i,api:o,lookupTarget:s,persistTarget:s,verbose:r.verbose}),l=q(n);return await Z({cfg:i,account:a,retry:r.retry,verbose:r.verbose,shouldRetry:e=>V(e,{context:`send`})})(()=>o.deleteMessage(c,l),`deleteMessage`),e(`[telegram] Deleted message ${l} from chat ${c}`),{ok:!0}}async function Kn(t,n,r,i={}){let{cfg:a,account:o,api:s}=X({...i,cfg:i.cfg}),c=String(t),l=await K({cfg:a,api:s,lookupTarget:c,persistTarget:c,verbose:i.verbose}),u=q(n),d=Z({cfg:a,account:o,retry:i.retry,verbose:i.verbose}),f=$(r)??{inline_keyboard:[]};try{await d(()=>s.editMessageReplyMarkup(l,u,{reply_markup:f}),`editMessageReplyMarkup`,{shouldLog:e=>!J(e)})}catch(e){if(!J(e))throw e}return e(`[telegram] Edited reply markup for message ${u} in chat ${l}`),{ok:!0,messageId:String(u),chatId:l}}async function qn(t,n,r,i={}){let{cfg:a,account:o,api:s}=X({...i,cfg:i.cfg}),c=String(t),l=await K({cfg:a,api:s,lookupTarget:c,persistTarget:c,verbose:i.verbose}),u=q(n),d=Z({cfg:a,account:o,retry:i.retry,verbose:i.verbose,shouldRetry:e=>V(e,{allowMessageMatch:!0})||nn(e)}),f=(e,t,n)=>d(e,t,n?{shouldLog:n}:void 0),p=At(r,{textMode:i.textMode??`markdown`,tableMode:E({cfg:a,channel:`telegram`,accountId:o.accountId})}),m=i.buttons!==void 0,h=m?$(i.buttons):void 0,g=m?h??{inline_keyboard:[]}:void 0,_={parse_mode:`HTML`};i.linkPreview===!1&&(_.link_preview_options={is_disabled:!0}),g!==void 0&&(_.reply_markup=g);let v={};i.linkPreview===!1&&(v.link_preview_options={is_disabled:!0}),g!==void 0&&(v.reply_markup=g);try{await Rn({label:`editMessage`,verbose:i.verbose,requestHtml:e=>f(()=>s.editMessageText(l,u,p,_),e,e=>!J(e)),requestPlain:e=>f(()=>Object.keys(v).length>0?s.editMessageText(l,u,r,v):s.editMessageText(l,u,r),e,e=>!J(e))})}catch(e){if(!J(e))throw e}return e(`[telegram] Edited message ${u} in chat ${l}`),{ok:!0,messageId:String(u),chatId:l}}function Jn(e){switch(e){case`image`:return`image.jpg`;case`video`:return`video.mp4`;case`audio`:return`audio.ogg`;default:return`file.bin`}}async function Yn(e,t,n={}){if(!t?.trim())throw Error(`Telegram sticker file_id is required`);let{cfg:r,account:i,api:a}=X(n),o=S(e),s=await K({cfg:r,api:a,lookupTarget:o.chatId,persistTarget:e,verbose:n.verbose}),c=Y({targetMessageThreadId:o.messageThreadId,messageThreadId:n.messageThreadId,chatType:o.chatType,replyToMessageId:n.replyToMessageId}),l=Object.keys(c).length>0,u=Bn({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=W(d,`sticker send`),p=String(d?.chat?.id??s);return H(s,f),O({channel:`telegram`,accountId:i.accountId,direction:`outbound`}),{messageId:String(f),chatId:p}}async function Xn(e,t,n={}){let{cfg:r,account:i,api:a}=X(n),o=S(e),s=await K({cfg:r,api:a,lookupTarget:o.chatId,persistTarget:e,verbose:n.verbose}),c=k(t,{maxOptions:10}),l=Y({targetMessageThreadId:o.messageThreadId,messageThreadId:n.messageThreadId,chatType:o.chatType,replyToMessageId:n.replyToMessageId}),u=c.options,d=Bn({requestWithDiag:Vn({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=W(p,`poll send`),h=String(p?.chat?.id??s),g=p?.poll?.id;return H(s,m),O({channel:`telegram`,accountId:i.accountId,direction:`outbound`}),{messageId:String(m),chatId:h,pollId:g}}async function Zn(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 K({cfg:i,api:o,lookupTarget:S(e).chatId,persistTarget:e,verbose:n.verbose}),c=Vn({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 O({channel:`telegram`,accountId:a.accountId,direction:`outbound`}),{topicId:f,name:d.name??r,chatId:s}}export{Ie as A,Oe as B,rt as C,F as D,Re as E,et as F,ke as G,Le as H,Be as I,we as J,Te as K,Ue as L,je as M,Ke as N,Fe as O,We as P,me as Q,$e as R,it as S,ze as T,Ge as U,De as V,Me as W,ve as X,Ee as Y,ye as Z,xt as _,qn as a,ht as b,Xn as c,vn as d,cn as f,Wt as g,rn as h,Kn as i,Ae as j,Ne as k,Yn as l,en as m,Zn as n,Wn as o,V as p,Ce as q,Gn as r,Hn as s,$ as t,Un as u,At as v,at as w,mt as x,kt as y,Pe as z};
2
+ //# sourceMappingURL=send-DkiKKUkt.js.map
@@ -1 +1,2 @@
1
1
  import{g as e}from"./paths-CrCoPIVK.js";import{d as t,h as n}from"./utils-D3t-vPka.js";import{Ar as r,Nr as i,Za as a}from"./model-selection-B5JsBS9D.js";import{s as o}from"./ir-DBWscfBd.js";import{t as s}from"./tables-CrXdLc_6.js";import{t as c}from"./outbound-attachment-Dds8xirj.js";import{spawn as l}from"node:child_process";import{createInterface as u}from"node:readline";function d(e,t){return e.slice(t.length).trim()}function f(e,t){return t.some(t=>e.startsWith(t))}function p(e){for(let{prefix:t,service:n}of e.servicePrefixes){if(!e.lower.startsWith(t))continue;let r=d(e.trimmed,t);if(!r)throw Error(`${t} target is required`);let i=r.toLowerCase();return e.isChatTarget(i)?e.parseTarget(r):{kind:`handle`,to:r,service:n}}return null}function m(e){let t=[...e.chatIdPrefixes,...e.chatGuidPrefixes,...e.chatIdentifierPrefixes,...e.extraChatPrefixes??[]];return p({trimmed:e.trimmed,lower:e.lower,servicePrefixes:e.servicePrefixes,isChatTarget:e=>f(e,t),parseTarget:e.parseTarget})}function h(e){for(let t of e.chatIdPrefixes)if(e.lower.startsWith(t)){let n=d(e.trimmed,t),r=Number.parseInt(n,10);if(!Number.isFinite(r))throw Error(`Invalid chat_id: ${n}`);return{kind:`chat_id`,chatId:r}}for(let t of e.chatGuidPrefixes)if(e.lower.startsWith(t)){let n=d(e.trimmed,t);if(!n)throw Error(`chat_guid is required`);return{kind:`chat_guid`,chatGuid:n}}for(let t of e.chatIdentifierPrefixes)if(e.lower.startsWith(t)){let n=d(e.trimmed,t);if(!n)throw Error(`chat_identifier is required`);return{kind:`chat_identifier`,chatIdentifier:n}}return null}function g(e){for(let{prefix:t}of e.servicePrefixes){if(!e.lower.startsWith(t))continue;let n=d(e.trimmed,t);return n?e.parseAllowTarget(n):{kind:`handle`,handle:``}}return null}function _(e){return g({trimmed:e.trimmed,lower:e.lower,servicePrefixes:e.servicePrefixes,parseAllowTarget:e.parseAllowTarget})||y({trimmed:e.trimmed,lower:e.lower,chatIdPrefixes:e.chatIdPrefixes,chatGuidPrefixes:e.chatGuidPrefixes,chatIdentifierPrefixes:e.chatIdentifierPrefixes})||null}function v(e){return t=>i({allowFrom:t.allowFrom,sender:t.sender,chatId:t.chatId,chatGuid:t.chatGuid,chatIdentifier:t.chatIdentifier,normalizeSender:e.normalizeSender,parseAllowTarget:e.parseAllowTarget})}function y(e){for(let t of e.chatIdPrefixes)if(e.lower.startsWith(t)){let n=d(e.trimmed,t),r=Number.parseInt(n,10);if(Number.isFinite(r))return{kind:`chat_id`,chatId:r}}for(let t of e.chatGuidPrefixes)if(e.lower.startsWith(t)){let n=d(e.trimmed,t);if(n)return{kind:`chat_guid`,chatGuid:n}}for(let t of e.chatIdentifierPrefixes)if(e.lower.startsWith(t)){let n=d(e.trimmed,t);if(n)return{kind:`chat_identifier`,chatIdentifier:n}}return null}const b=[`chat_id:`,`chatid:`,`chat:`],x=[`chat_guid:`,`chatguid:`,`guid:`],S=[`chat_identifier:`,`chatidentifier:`,`chatident:`],C=[{prefix:`imessage:`,service:`imessage`},{prefix:`sms:`,service:`sms`},{prefix:`auto:`,service:`auto`}];function w(e){let n=e.trim();if(!n)return``;let r=n.toLowerCase();if(r.startsWith(`imessage:`))return w(n.slice(9));if(r.startsWith(`sms:`))return w(n.slice(4));if(r.startsWith(`auto:`))return w(n.slice(5));for(let e of b)if(r.startsWith(e))return`chat_id:${n.slice(e.length).trim()}`;for(let e of x)if(r.startsWith(e))return`chat_guid:${n.slice(e.length).trim()}`;for(let e of S)if(r.startsWith(e))return`chat_identifier:${n.slice(e.length).trim()}`;return n.includes(`@`)?n.toLowerCase():t(n)||n.replace(/\s+/g,``)}function T(e){let t=e.trim();if(!t)throw Error(`iMessage target is required`);let n=t.toLowerCase();return m({trimmed:t,lower:n,servicePrefixes:C,chatIdPrefixes:b,chatGuidPrefixes:x,chatIdentifierPrefixes:S,parseTarget:T})||h({trimmed:t,lower:n,chatIdPrefixes:b,chatGuidPrefixes:x,chatIdentifierPrefixes:S})||{kind:`handle`,to:t,service:`auto`}}function E(e){let t=e.trim();return t?_({trimmed:t,lower:t.toLowerCase(),servicePrefixes:C,parseAllowTarget:E,chatIdPrefixes:b,chatGuidPrefixes:x,chatIdentifierPrefixes:S})||{kind:`handle`,handle:w(t)}:{kind:`handle`,handle:``}}const D=v({normalizeSender:w,parseAllowTarget:E});function O(e){return D(e)}function k(e){return!e||!Number.isFinite(e)?``:`chat_id:${e}`}const A=1e4;function j(){return!!process.env.VITEST?.trim().toLowerCase()}var M=class{constructor(e={}){this.pending=new Map,this.closedResolve=null,this.child=null,this.reader=null,this.nextId=1,this.cliPath=e.cliPath?.trim()||`imsg`,this.dbPath=e.dbPath?.trim()?n(e.dbPath):void 0,this.runtime=e.runtime,this.onNotification=e.onNotification,this.closed=new Promise(e=>{this.closedResolve=e})}async start(){if(this.child)return;if(j())throw Error(`Refusing to start imsg rpc in test environment; mock iMessage RPC client`);let e=[`rpc`];this.dbPath&&e.push(`--db`,this.dbPath);let t=l(this.cliPath,e,{stdio:[`pipe`,`pipe`,`pipe`]});this.child=t,this.reader=u({input:t.stdout}),this.reader.on(`line`,e=>{let t=e.trim();t&&this.handleLine(t)}),t.stderr?.on(`data`,e=>{let t=e.toString().split(/\r?\n/);for(let e of t)e.trim()&&this.runtime?.error?.(`imsg rpc: ${e.trim()}`)}),t.on(`error`,e=>{this.failAll(e instanceof Error?e:Error(String(e))),this.closedResolve?.()}),t.on(`close`,(e,t)=>{if(e!==0&&e!==null){let n=t?`signal ${t}`:`code ${e}`;this.failAll(Error(`imsg rpc exited (${n})`))}else this.failAll(Error(`imsg rpc closed`));this.closedResolve?.()})}async stop(){if(!this.child)return;this.reader?.close(),this.reader=null,this.child.stdin?.end();let e=this.child;this.child=null,await Promise.race([this.closed,new Promise(t=>{setTimeout(()=>{e.killed||e.kill(`SIGTERM`),t()},500)})])}async waitForClose(){await this.closed}async request(e,t,n){if(!this.child||!this.child.stdin)throw Error(`imsg rpc not running`);let r=this.nextId++,i={jsonrpc:`2.0`,id:r,method:e,params:t??{}},a=`${JSON.stringify(i)}\n`,o=n?.timeoutMs??1e4,s=new Promise((t,n)=>{let i=String(r),a=o>0?setTimeout(()=>{this.pending.delete(i),n(Error(`imsg rpc timeout (${e})`))},o):void 0;this.pending.set(i,{resolve:e=>t(e),reject:n,timer:a})});return this.child.stdin.write(a),await s}handleLine(e){let t;try{t=JSON.parse(e)}catch(t){let n=t instanceof Error?t.message:String(t);this.runtime?.error?.(`imsg rpc: failed to parse ${e}: ${n}`);return}if(t.id!==void 0&&t.id!==null){let e=String(t.id),n=this.pending.get(e);if(!n)return;if(n.timer&&clearTimeout(n.timer),this.pending.delete(e),t.error){let e=t.error.message??`imsg rpc error`,r=t.error.data,i=t.error.code,a=[];if(typeof i==`number`&&a.push(`code=${i}`),r!==void 0){let e=typeof r==`string`?r:JSON.stringify(r,null,2);e&&a.push(e)}let o=a.length>0?`${e}: ${a.join(` `)}`:e;n.reject(Error(o));return}n.resolve(t.result);return}t.method&&this.onNotification?.({method:t.method,params:t.params})}failAll(e){for(let[t,n]of this.pending.entries())n.timer&&clearTimeout(n.timer),n.reject(e),this.pending.delete(t)}};async function N(e={}){let t=new M(e);return await t.start(),t}const P=/^\s*\[\[\s*reply_to\s*:\s*([^\]\n]+)\s*\]\]\s*/i;function F(e){let t=``;for(let n of e){let e=n.charCodeAt(0);e>=0&&e<=31||e===127||n===`[`||n===`]`||(t+=n)}return t}function I(e){let t=e?.trim();if(!t)return;let n=F(t).trim();if(n)return n.length>256?n.slice(0,256):n}function L(e,t){let n=I(t);if(!n)return e;let r=`[[reply_to:${n}]]`,i=e.match(P);if(i){let t=e.slice(i[0].length).trimStart();return t?`${r} ${t}`:r}let a=e.trimStart();return a?`${r} ${a}`:r}function R(e){if(!e)return null;let t=typeof e.messageId==`string`&&e.messageId.trim()||typeof e.message_id==`string`&&e.message_id.trim()||typeof e.id==`string`&&e.id.trim()||typeof e.guid==`string`&&e.guid.trim()||(typeof e.message_id==`number`?String(e.message_id):null)||(typeof e.id==`number`?String(e.id):null);return t?String(t).trim():null}async function z(t,n,i={}){let l=i.config??a(),u=i.account??r({cfg:l,accountId:i.accountId}),d=i.cliPath?.trim()||u.config.cliPath?.trim()||`imsg`,f=i.dbPath?.trim()||u.config.dbPath?.trim(),p=T(i.chatId?k(i.chatId):t),m=i.service??(p.kind===`handle`?p.service:void 0)??u.config.service,h=i.region?.trim()||u.config.region?.trim()||`US`,g=typeof i.maxBytes==`number`?i.maxBytes:typeof u.config.mediaMaxMb==`number`?u.config.mediaMaxMb*1024*1024:16*1024*1024,_=n??``,v;if(i.mediaUrl?.trim()){let t=await(i.resolveAttachmentImpl??c)(i.mediaUrl.trim(),g,{localRoots:i.mediaLocalRoots});if(v=t.path,!_.trim()){let n=e(t.contentType??void 0);n&&(_=n===`image`?`<media:image>`:`<media:${n}>`)}}if(!_.trim()&&!v)throw Error(`iMessage send requires text or media`);if(_.trim()){let e=o({cfg:l,channel:`imessage`,accountId:u.accountId});_=s(_,e)}_=L(_,i.replyToId);let y={text:_,service:m||`auto`,region:h};v&&(y.file=v),p.kind===`chat_id`?y.chat_id=p.chatId:p.kind===`chat_guid`?y.chat_guid=p.chatGuid:p.kind===`chat_identifier`?y.chat_identifier=p.chatIdentifier:y.to=p.to;let b=i.client??(i.createClient?await i.createClient({cliPath:d,dbPath:f}):await N({cliPath:d,dbPath:f})),x=!i.client;try{let e=await b.request(`send`,y,{timeoutMs:i.timeoutMs});return{messageId:R(e)??(e?.ok?`ok`:`unknown`)}}finally{x&&await b.stop()}}export{O as a,k as i,N as n,w as o,A as r,T as s,z as t};
2
+ //# sourceMappingURL=send-DlfVd5mL.js.map
@@ -1 +1,2 @@
1
1
  import{g as e}from"./paths-piJASC5k.js";import{h as t,y as n}from"./logger-DwWqfo66.js";import{Ar as r,Nr as i,Za as a}from"./model-selection-vfhBuN9O.js";import{s as o}from"./ir-BF0M2kGp.js";import{t as s}from"./tables-btcG3yFT.js";import{t as c}from"./outbound-attachment-DqEKghQp.js";import{spawn as l}from"node:child_process";import{createInterface as u}from"node:readline";function d(e,t){return e.slice(t.length).trim()}function f(e,t){return t.some(t=>e.startsWith(t))}function p(e){for(let{prefix:t,service:n}of e.servicePrefixes){if(!e.lower.startsWith(t))continue;let r=d(e.trimmed,t);if(!r)throw Error(`${t} target is required`);let i=r.toLowerCase();return e.isChatTarget(i)?e.parseTarget(r):{kind:`handle`,to:r,service:n}}return null}function m(e){let t=[...e.chatIdPrefixes,...e.chatGuidPrefixes,...e.chatIdentifierPrefixes,...e.extraChatPrefixes??[]];return p({trimmed:e.trimmed,lower:e.lower,servicePrefixes:e.servicePrefixes,isChatTarget:e=>f(e,t),parseTarget:e.parseTarget})}function h(e){for(let t of e.chatIdPrefixes)if(e.lower.startsWith(t)){let n=d(e.trimmed,t),r=Number.parseInt(n,10);if(!Number.isFinite(r))throw Error(`Invalid chat_id: ${n}`);return{kind:`chat_id`,chatId:r}}for(let t of e.chatGuidPrefixes)if(e.lower.startsWith(t)){let n=d(e.trimmed,t);if(!n)throw Error(`chat_guid is required`);return{kind:`chat_guid`,chatGuid:n}}for(let t of e.chatIdentifierPrefixes)if(e.lower.startsWith(t)){let n=d(e.trimmed,t);if(!n)throw Error(`chat_identifier is required`);return{kind:`chat_identifier`,chatIdentifier:n}}return null}function g(e){for(let{prefix:t}of e.servicePrefixes){if(!e.lower.startsWith(t))continue;let n=d(e.trimmed,t);return n?e.parseAllowTarget(n):{kind:`handle`,handle:``}}return null}function _(e){return g({trimmed:e.trimmed,lower:e.lower,servicePrefixes:e.servicePrefixes,parseAllowTarget:e.parseAllowTarget})||y({trimmed:e.trimmed,lower:e.lower,chatIdPrefixes:e.chatIdPrefixes,chatGuidPrefixes:e.chatGuidPrefixes,chatIdentifierPrefixes:e.chatIdentifierPrefixes})||null}function v(e){return t=>i({allowFrom:t.allowFrom,sender:t.sender,chatId:t.chatId,chatGuid:t.chatGuid,chatIdentifier:t.chatIdentifier,normalizeSender:e.normalizeSender,parseAllowTarget:e.parseAllowTarget})}function y(e){for(let t of e.chatIdPrefixes)if(e.lower.startsWith(t)){let n=d(e.trimmed,t),r=Number.parseInt(n,10);if(Number.isFinite(r))return{kind:`chat_id`,chatId:r}}for(let t of e.chatGuidPrefixes)if(e.lower.startsWith(t)){let n=d(e.trimmed,t);if(n)return{kind:`chat_guid`,chatGuid:n}}for(let t of e.chatIdentifierPrefixes)if(e.lower.startsWith(t)){let n=d(e.trimmed,t);if(n)return{kind:`chat_identifier`,chatIdentifier:n}}return null}const b=[`chat_id:`,`chatid:`,`chat:`],x=[`chat_guid:`,`chatguid:`,`guid:`],S=[`chat_identifier:`,`chatidentifier:`,`chatident:`],C=[{prefix:`imessage:`,service:`imessage`},{prefix:`sms:`,service:`sms`},{prefix:`auto:`,service:`auto`}];function w(e){let n=e.trim();if(!n)return``;let r=n.toLowerCase();if(r.startsWith(`imessage:`))return w(n.slice(9));if(r.startsWith(`sms:`))return w(n.slice(4));if(r.startsWith(`auto:`))return w(n.slice(5));for(let e of b)if(r.startsWith(e))return`chat_id:${n.slice(e.length).trim()}`;for(let e of x)if(r.startsWith(e))return`chat_guid:${n.slice(e.length).trim()}`;for(let e of S)if(r.startsWith(e))return`chat_identifier:${n.slice(e.length).trim()}`;return n.includes(`@`)?n.toLowerCase():t(n)||n.replace(/\s+/g,``)}function T(e){let t=e.trim();if(!t)throw Error(`iMessage target is required`);let n=t.toLowerCase();return m({trimmed:t,lower:n,servicePrefixes:C,chatIdPrefixes:b,chatGuidPrefixes:x,chatIdentifierPrefixes:S,parseTarget:T})||h({trimmed:t,lower:n,chatIdPrefixes:b,chatGuidPrefixes:x,chatIdentifierPrefixes:S})||{kind:`handle`,to:t,service:`auto`}}function E(e){let t=e.trim();return t?_({trimmed:t,lower:t.toLowerCase(),servicePrefixes:C,parseAllowTarget:E,chatIdPrefixes:b,chatGuidPrefixes:x,chatIdentifierPrefixes:S})||{kind:`handle`,handle:w(t)}:{kind:`handle`,handle:``}}const D=v({normalizeSender:w,parseAllowTarget:E});function O(e){return D(e)}function k(e){return!e||!Number.isFinite(e)?``:`chat_id:${e}`}const A=1e4;function j(){return!!process.env.VITEST?.trim().toLowerCase()}var M=class{constructor(e={}){this.pending=new Map,this.closedResolve=null,this.child=null,this.reader=null,this.nextId=1,this.cliPath=e.cliPath?.trim()||`imsg`,this.dbPath=e.dbPath?.trim()?n(e.dbPath):void 0,this.runtime=e.runtime,this.onNotification=e.onNotification,this.closed=new Promise(e=>{this.closedResolve=e})}async start(){if(this.child)return;if(j())throw Error(`Refusing to start imsg rpc in test environment; mock iMessage RPC client`);let e=[`rpc`];this.dbPath&&e.push(`--db`,this.dbPath);let t=l(this.cliPath,e,{stdio:[`pipe`,`pipe`,`pipe`]});this.child=t,this.reader=u({input:t.stdout}),this.reader.on(`line`,e=>{let t=e.trim();t&&this.handleLine(t)}),t.stderr?.on(`data`,e=>{let t=e.toString().split(/\r?\n/);for(let e of t)e.trim()&&this.runtime?.error?.(`imsg rpc: ${e.trim()}`)}),t.on(`error`,e=>{this.failAll(e instanceof Error?e:Error(String(e))),this.closedResolve?.()}),t.on(`close`,(e,t)=>{if(e!==0&&e!==null){let n=t?`signal ${t}`:`code ${e}`;this.failAll(Error(`imsg rpc exited (${n})`))}else this.failAll(Error(`imsg rpc closed`));this.closedResolve?.()})}async stop(){if(!this.child)return;this.reader?.close(),this.reader=null,this.child.stdin?.end();let e=this.child;this.child=null,await Promise.race([this.closed,new Promise(t=>{setTimeout(()=>{e.killed||e.kill(`SIGTERM`),t()},500)})])}async waitForClose(){await this.closed}async request(e,t,n){if(!this.child||!this.child.stdin)throw Error(`imsg rpc not running`);let r=this.nextId++,i={jsonrpc:`2.0`,id:r,method:e,params:t??{}},a=`${JSON.stringify(i)}\n`,o=n?.timeoutMs??1e4,s=new Promise((t,n)=>{let i=String(r),a=o>0?setTimeout(()=>{this.pending.delete(i),n(Error(`imsg rpc timeout (${e})`))},o):void 0;this.pending.set(i,{resolve:e=>t(e),reject:n,timer:a})});return this.child.stdin.write(a),await s}handleLine(e){let t;try{t=JSON.parse(e)}catch(t){let n=t instanceof Error?t.message:String(t);this.runtime?.error?.(`imsg rpc: failed to parse ${e}: ${n}`);return}if(t.id!==void 0&&t.id!==null){let e=String(t.id),n=this.pending.get(e);if(!n)return;if(n.timer&&clearTimeout(n.timer),this.pending.delete(e),t.error){let e=t.error.message??`imsg rpc error`,r=t.error.data,i=t.error.code,a=[];if(typeof i==`number`&&a.push(`code=${i}`),r!==void 0){let e=typeof r==`string`?r:JSON.stringify(r,null,2);e&&a.push(e)}let o=a.length>0?`${e}: ${a.join(` `)}`:e;n.reject(Error(o));return}n.resolve(t.result);return}t.method&&this.onNotification?.({method:t.method,params:t.params})}failAll(e){for(let[t,n]of this.pending.entries())n.timer&&clearTimeout(n.timer),n.reject(e),this.pending.delete(t)}};async function N(e={}){let t=new M(e);return await t.start(),t}const P=/^\s*\[\[\s*reply_to\s*:\s*([^\]\n]+)\s*\]\]\s*/i;function F(e){let t=``;for(let n of e){let e=n.charCodeAt(0);e>=0&&e<=31||e===127||n===`[`||n===`]`||(t+=n)}return t}function I(e){let t=e?.trim();if(!t)return;let n=F(t).trim();if(n)return n.length>256?n.slice(0,256):n}function L(e,t){let n=I(t);if(!n)return e;let r=`[[reply_to:${n}]]`,i=e.match(P);if(i){let t=e.slice(i[0].length).trimStart();return t?`${r} ${t}`:r}let a=e.trimStart();return a?`${r} ${a}`:r}function R(e){if(!e)return null;let t=typeof e.messageId==`string`&&e.messageId.trim()||typeof e.message_id==`string`&&e.message_id.trim()||typeof e.id==`string`&&e.id.trim()||typeof e.guid==`string`&&e.guid.trim()||(typeof e.message_id==`number`?String(e.message_id):null)||(typeof e.id==`number`?String(e.id):null);return t?String(t).trim():null}async function z(t,n,i={}){let l=i.config??a(),u=i.account??r({cfg:l,accountId:i.accountId}),d=i.cliPath?.trim()||u.config.cliPath?.trim()||`imsg`,f=i.dbPath?.trim()||u.config.dbPath?.trim(),p=T(i.chatId?k(i.chatId):t),m=i.service??(p.kind===`handle`?p.service:void 0)??u.config.service,h=i.region?.trim()||u.config.region?.trim()||`US`,g=typeof i.maxBytes==`number`?i.maxBytes:typeof u.config.mediaMaxMb==`number`?u.config.mediaMaxMb*1024*1024:16*1024*1024,_=n??``,v;if(i.mediaUrl?.trim()){let t=await(i.resolveAttachmentImpl??c)(i.mediaUrl.trim(),g,{localRoots:i.mediaLocalRoots});if(v=t.path,!_.trim()){let n=e(t.contentType??void 0);n&&(_=n===`image`?`<media:image>`:`<media:${n}>`)}}if(!_.trim()&&!v)throw Error(`iMessage send requires text or media`);if(_.trim()){let e=o({cfg:l,channel:`imessage`,accountId:u.accountId});_=s(_,e)}_=L(_,i.replyToId);let y={text:_,service:m||`auto`,region:h};v&&(y.file=v),p.kind===`chat_id`?y.chat_id=p.chatId:p.kind===`chat_guid`?y.chat_guid=p.chatGuid:p.kind===`chat_identifier`?y.chat_identifier=p.chatIdentifier:y.to=p.to;let b=i.client??(i.createClient?await i.createClient({cliPath:d,dbPath:f}):await N({cliPath:d,dbPath:f})),x=!i.client;try{let e=await b.request(`send`,y,{timeoutMs:i.timeoutMs});return{messageId:R(e)??(e?.ok?`ok`:`unknown`)}}finally{x&&await b.stop()}}export{O as a,k as i,N as n,w as o,A as r,T as s,z as t};
2
+ //# sourceMappingURL=send-JYgM9Sm-2.js.map
@@ -5,3 +5,4 @@ import{H as e}from"./subsystem-C5XF2Fy5.js";import{$ as t,et as n,qs as r}from".
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=It(s,l);e.trim().length&&o.push(e)}return Bt(e,o)}function zt(e,t){if((t.chunkMode??`length`)!==`newline`)return Rt(e,t);let n=g(e,Math.max(1,Math.floor(t.maxChars??jt)),`newline`),r=[];for(let e of n){let n=Rt(e,t);if(!n.length&&e){r.push(e);continue}r.push(...n)}return r}function Bt(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 Vt(e){let t=s(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 Ht(e,t){return t??new ve(e)}function Ut(e){let t=i(e.accountId),n=o(e.cfg,t),r=e.cfg.channels?.discord?.enabled!==!1,a=n.enabled!==!1;return{accountId:t,enabled:r&&a,name:n.name?.trim()||void 0,token:``,tokenSource:`none`,config:n}}function Wt(e,t){let n=e.cfg??t??r(),i=s(e.token,`channels.discord.token`),o=i?Ut({cfg:n,accountId:e.accountId}):a({cfg:n,accountId:e.accountId}),c=i??Vt({accountId:o.accountId,fallbackToken:o.token});return{token:c,rest:Ht(c,e.rest),account:o}}function R(e,t){let{token:n,rest:r,account:i}=Wt(e,e.cfg??t);return{token:n,rest:r,request:te({retry:e.retry,configRetry:i.config.retry,verbose:e.verbose})}}function z(e){return Wt(e,e.cfg).rest}const Gt=Object.entries(De).filter(([,e])=>typeof e==`bigint`),Kt=Gt.reduce((e,[,t])=>e|t,0n),qt=De.Administrator;function B(e,t){return t?e|BigInt(t):e}function Jt(e,t){return t?e&~BigInt(t):e}function Yt(e){return Gt.filter(([,t])=>(e&t)===t).map(([e])=>e).toSorted()}function Xt(e){return(e&qt)===qt}function Zt(e,t){return(e&t)===t}function Qt(e){return e===j.GuildNewsThread||e===j.GuildPublicThread||e===j.GuildPrivateThread}async function $t(e){let t=await e.get(M.user(`@me`));if(!t?.id)throw Error(`Failed to resolve bot user id`);return t.id}async function en(e,t,n={}){let r=z(n);try{let[n,i]=await Promise.all([r.get(M.guild(e)),r.get(M.guildMember(e,t))]),a=new Map((n.roles??[]).map(e=>[e.id,e])),o=a.get(e),s=0n;o?.permissions&&(s=B(s,o.permissions));for(let e of i.roles??[]){let t=a.get(e);t?.permissions&&(s=B(s,t.permissions))}return s}catch{return null}}async function tn(e,t,n,r,i={}){let a=await en(e,t,i);return a===null?!1:Xt(a)?!0:r(a,n)}async function nn(e,t,n,r={}){return await tn(e,t,n,(e,t)=>t.some(t=>Zt(e,t)),r)}async function rn(e,t={}){let n=z(t),r=await n.get(M.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 $t(n),[s,c]=await Promise.all([n.get(M.guild(a)),n.get(M.guildMember(a,o))]),l=new Map((s.roles??[]).map(e=>[e.id,e])),u=l.get(a),d=0n;u?.permissions&&(d=B(d,u.permissions));for(let e of c.roles??[]){let t=l.get(e);t?.permissions&&(d=B(d,t.permissions))}if(Xt(d))return{channelId:e,guildId:a,permissions:Yt(Kt),raw:Kt.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=Jt(f,e.deny??`0`),f=B(f,e.allow??`0`));for(let e of p)c.roles?.includes(e.id)&&(f=Jt(f,e.deny??`0`),f=B(f,e.allow??`0`));for(let e of p)e.id===o&&(f=Jt(f,e.deny??`0`),f=B(f,e.allow??`0`));return{channelId:e,guildId:a,permissions:Yt(f),raw:f.toString(),isDm:!1,channelType:i}}var an=class extends Error{constructor(e,t){super(e),this.name=`DiscordSendError`,t&&Object.assign(this,t)}toString(){return this.message}};function on(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 V(e,t,n){let i=n??r(),o=a({cfg:i,accountId:t}),s=e.trim(),c={ambiguousMessage:`Ambiguous Discord recipient "${s}". Use "user:${s}" for DMs or "channel:${s}" for channel messages.`},l=await Dt(e,{cfg:i,accountId:o.accountId},c);if(l)return{kind:l.kind,id:l.id};let u=L(e,c);if(!u)throw Error(`Recipient is required for Discord sends`);return{kind:u.kind,id:u.id}}function sn(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 H(e,t){let n=e.trim();if(!n)throw Error(`${t} is required`);return n}function cn(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 ln(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 U(e,t){if(e instanceof an)return e;let n=ln(e);if(n===50007)return new an(`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 rn(t.channelId,{rest:t.rest,token:t.token}),n=new Set(e.permissions),i=[`ViewChannel`,`SendMessages`];Qt(e.channelType)&&i.push(`SendMessagesInThreads`),t.hasMedia&&i.push(`AttachFiles`),r=i.filter(e=>!n.has(e))}catch{}return new an(`${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 W(e,t,n){if(t.kind===`channel`)return{channelId:t.id};let r=await n(()=>e.post(M.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 un(e,t){try{return(await e.get(M.channel(t)))?.type}catch{return}}const G=4096;function dn(e,t={}){if(!e)return[];let n=zt(e,{maxChars:t.maxChars??2e3,maxLines:t.maxLinesPerMessage,chunkMode:t.chunkMode});return!n.length&&e&&n.push(e),n}function fn(e){return!!e?.some(e=>`isV2`in e&&e.isV2)}function pn(e){if(!(!e.components||!e.isFirst))return typeof e.components==`function`?e.components(e.text):e.components}function mn(e){if(e?.length)return e.map(e=>e instanceof le?e:new le(e))}function hn(e){if(!(!e.embeds||!e.isFirst))return mn(e.embeds)}function gn(e){let t={},n=fn(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 K(e){return Object.fromEntries(Object.entries(e).filter(([,e])=>e!==void 0))}function _n(e){if(e instanceof Blob)return e;let t=new ArrayBuffer(e.byteLength);return new Uint8Array(t).set(e),new Blob([t])}async function q(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?G:void 0,f=dn(n,{maxLinesPerMessage:a,chunkMode:c}),p=async(n,r)=>{let a=K({...k(gn({text:n,components:pn({components:o,text:n,isFirst:r}),embeds:hn({embeds:s,isFirst:r}),flags:d})),...u?{message_reference:u}:{}});return await i(()=>e.post(M.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 vn(e,t,n,r,i,a,o,s,c,l,u,d,f){let p=await h(r,x({maxBytes:a,mediaLocalRoots:i})),m=n?dn(n,{maxLinesPerMessage:c,chunkMode:d}):[],g=m[0]??``,_=o?{message_id:o,fail_if_not_exists:!1}:void 0,v=f?G:void 0,y=_n(p.buffer),b=gn({text:g,components:pn({components:l,text:g,isFirst:!0}),embeds:hn({embeds:u,isFirst:!0}),flags:v,files:[{data:y,name:p.fileName??`upload`}]}),ee=await s(()=>e.post(M.channelMessages(t),{body:K({...k(b),..._?{message_reference:_}:{}})}),`media`);for(let n of m.slice(1))n.trim()&&await q(e,t,n,o,s,c,void 0,void 0,d,f);return ee}function yn(e){return e.id&&e.name?`${e.name}:${e.id}`:e.name??``}function bn(e){return yn(e)}async function xn(e,t={}){let n=z(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(M.guildChannels(e.guildId),{body:r})}async function Sn(e,t={}){let n=z(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(M.channel(e.channelId),{body:r})}async function Cn(e,t={}){return await z(t).delete(M.channel(e)),{ok:!0,channelId:e}}async function wn(e,t={}){let n=z(t),r=[{id:e.channelId,...e.parentId!==void 0&&{parent_id:e.parentId},...e.position!==void 0&&{position:e.position}}];return await n.patch(M.guildChannels(e.guildId),{body:r}),{ok:!0}}async function Tn(e,t={}){let n=z(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 En(e,t,n={}){return await z(n).delete(`/channels/${e}/permissions/${t}`),{ok:!0}}async function Dn(e,t={}){return await z(t).get(M.guildEmojis(e))}async function On(e,t={}){let n=z(t),r=await v(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(M.guildEmojis(e.guildId),{body:{name:H(e.name,`Emoji name`),image:a,roles:o.length?o:void 0}})}async function kn(e,t={}){let n=z(t),r=await v(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(M.guildStickers(e.guildId),{body:{name:H(e.name,`Sticker name`),description:H(e.description,`Sticker description`),tags:H(e.tags,`Sticker tags`),files:[{data:r.buffer,name:r.fileName??`sticker`,contentType:i}]}})}async function An(e,t,n={}){return await z(n).get(M.guildMember(e,t))}async function jn(e,t={}){return await z(t).get(M.guildRoles(e))}async function Mn(e,t={}){return await z(t).put(M.guildMemberRole(e.guildId,e.userId,e.roleId)),{ok:!0}}async function Nn(e,t={}){return await z(t).delete(M.guildMemberRole(e.guildId,e.userId,e.roleId)),{ok:!0}}async function Pn(e,t={}){return await z(t).get(M.channel(e))}async function Fn(e,t={}){return await z(t).get(M.guildChannels(e))}async function In(e,t,n={}){return await z(n).get(M.guildVoiceState(e,t))}async function Ln(e,t={}){return await z(t).get(M.guildScheduledEvents(e))}async function Rn(e,t,n={}){return await z(n).post(M.guildScheduledEvents(e),{body:t})}async function zn(e,t={}){let n=z(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(M.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 Bn(e,t={}){return await z(t).delete(M.guildMember(e.guildId,e.userId),{headers:e.reason?{"X-Audit-Log-Reason":encodeURIComponent(e.reason)}:void 0}),{ok:!0}}async function Vn(e,t={}){let n=z(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(M.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 Hn(e,t={},n={}){let r=z(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(M.channelMessages(e),a)}async function Un(e,t,n={}){return await z(n).get(M.channelMessage(e,t))}async function Wn(e,t,n,r={}){return await z(r).patch(M.channelMessage(e,t),{body:{content:n.content}})}async function Gn(e,t,n={}){return await z(n).delete(M.channelMessage(e,t)),{ok:!0}}async function Kn(e,t,n={}){return await z(n).put(M.channelPin(e,t)),{ok:!0}}async function qn(e,t,n={}){return await z(n).delete(M.channelPin(e,t)),{ok:!0}}async function Jn(e,t={}){return await z(t).get(M.channelPins(e))}async function Yn(e,t,n={}){let r=z(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(M.channel(e)))?.type}catch{a=void 0}let o=a===j.GuildForum||a===j.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=j.PublicThread);let s=t.messageId?M.threads(e,t.messageId):M.threads(e),c=await r.post(s,{body:i});return!o&&t.content?.trim()&&await r.post(M.channelMessages(c.id),{body:{content:t.content}}),c}async function Xn(e,t={}){let n=z(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(M.channelThreads(e.channelId,`public`),t)}return await n.get(M.guildActiveThreads(e.guildId))}async function Zn(e,t={}){let n=z(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 Qn(e){if(e)try{await w.unlink(e)}catch{}}const $n=/```[\s\S]*?```|`[^`\n]*`/g,er=/(^|[\s([{"'.,;:!?])@([a-z0-9_.-]{2,32}(?:#[0-9]{4})?)/gi,tr=new Set([`everyone`,`here`]);function nr(e){let t=String(e??``).trim();return/^\d+$/.test(t)?t:null}function rr(e){let t=e.userId==null?null:nr(e.userId),n=e.roleId==null?null:nr(e.roleId),r=e.channelId==null?null:nr(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 ir(e,t){return e.includes(`@`)?e.replace(er,(e,n,r)=>{let i=String(r??``).trim();if(!i)return e;let a=i.toLowerCase();if(tr.has(a))return e;let o=yt({accountId:t,handle:i});return o?`${String(n??``)}${rr({userId:o})}`:e}):e}function ar(e,t){if(!e.includes(`@`))return e;let n=``,r=0;$n.lastIndex=0;for(let i of e.matchAll($n)){let a=i.index??0;n+=ir(e.slice(r,a),t.accountId),n+=i[0],r=a+i[0].length}return n+=ir(e.slice(r),t.accountId),n}const or=re(ie);function sr(e,t){return{timeout:t?.timeoutMs??e,maxBuffer:t?.maxBufferBytes??10485760}}async function cr(e,t){let{stdout:n}=await or(`ffprobe`,e,sr(1e4,t));return n.toString()}async function lr(e,t){let{stdout:n}=await or(`ffmpeg`,e,sr(45e3,t));return n.toString()}function ur(e,t){return e.trim().toLowerCase().split(/[,\r\n]+/,t).map(e=>e.trim())}function dr(e){let[t,n]=ur(e,2),r=t||null,i=n?Number.parseInt(n,10):NaN;return{codec:r,sampleRateHz:Number.isFinite(i)?i:null}}const fr=8192;async function pr(e){try{let t=await cr([`-v`,`error`,`-show_entries`,`format=duration`,`-of`,`csv=p=0`,e]),n=parseFloat(t.trim());if(isNaN(n))throw Error(`Could not parse duration`);return Math.round(n*100)/100}catch(e){let t=e instanceof Error?e.message:String(e);throw Error(`Failed to get audio duration: ${t}`,{cause:e})}}async function mr(e){try{return await hr(e)}catch{return gr()}}async function hr(t){let n=e(),r=C.join(n,`waveform-${T.randomUUID()}.raw`);try{await lr([`-y`,`-i`,t,`-vn`,`-sn`,`-dn`,`-t`,`1200`,`-f`,`s16le`,`-acodec`,`pcm_s16le`,`-ac`,`1`,`-ar`,`8000`,r]);let e=await w.readFile(r),n=new Int16Array(e.buffer,e.byteOffset,e.byteLength/2),i=Math.max(1,Math.floor(n.length/256)),a=[];for(let e=0;e<256&&e*i<n.length;e++){let t=0,r=0;for(let a=0;a<i&&e*i+a<n.length;a++)t+=Math.abs(n[e*i+a]),r++;let o=r>0?t/r: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 Qn(r)}}function gr(){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 _r(t){let n=t.trim();if(/^[a-z][a-z0-9+.-]*:\/\//i.test(n))throw Error(`Voice message conversion requires a local file path; received a URL/protocol source: ${n}`);if(C.extname(t).toLowerCase()===`.ogg`)try{let{codec:e,sampleRateHz:n}=dr(await cr([`-v`,`error`,`-select_streams`,`a:0`,`-show_entries`,`stream=codec_name,sample_rate`,`-of`,`csv=p=0`,t]));if(e===`opus`&&n===48e3)return{path:t,cleanup:!1}}catch{}let r=e(),i=C.join(r,`voice-${T.randomUUID()}.ogg`);return await lr([`-y`,`-i`,t,`-vn`,`-sn`,`-dn`,`-t`,`1200`,`-ar`,`48000`,`-c:a`,`libopus`,`-b:a`,`64k`,i]),{path:i,cleanup:!0}}async function vr(e){let[t,n]=await Promise.all([pr(e),mr(e)]);return{durationSecs:t,waveform:n}}async function yr(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 _e(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?fr|4096:fr,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 br(e){for(let t of e.chunks)await q(e.rest,e.threadId,t,void 0,e.request,e.maxLinesPerMessage,void 0,void 0,e.chunkMode,e.silent)}function xr(e){return(e.split(`
7
7
  `).find(e=>e.trim())?.trim()??``).slice(0,100)||new Date().toISOString().slice(0,16)}function Sr(e){return e===j.GuildForum||e===j.GuildMedia}function J(e,t){return{messageId:e.id?String(e.id):`unknown`,channelId:String(e.channel_id??t)}}async function Cr(e,t){let n=t.cfg??r(),{rest:i,request:a}=R(t,n),{channelId:o}=await W(i,await V(e,t.accountId,n),a);return{rest:i,request:a,channelId:o}}async function wr(e,t,n={}){let i=n.cfg??r(),o=a({cfg:i,accountId:n.accountId}),s=y({cfg:i,channel:`discord`,accountId:o.accountId}),c=_(i,`discord`,o.accountId),l=typeof o.config.mediaMaxMb==`number`?o.config.mediaMaxMb*1024*1024:8*1024*1024,u=ne(t??``,s),d=ar(u,{accountId:o.accountId}),{token:f,rest:p,request:m}=R(n,i),{channelId:h}=await W(p,await V(e,n.accountId,i),m);if(Sr(await un(p,h))){let e=xr(u),t=dn(d,{maxLinesPerMessage:o.config.maxLinesPerMessage,chunkMode:c}),r=t[0]?.trim()?t[0]:e,i=gn({text:r,components:pn({components:n.components,text:r,isFirst:!0}),embeds:hn({embeds:n.embeds,isFirst:!0}),flags:n.silent?4096:void 0}),a;try{a=await m(()=>p.post(M.threads(h),{body:{name:e,message:K(k(i))}}),`forum-thread`)}catch(e){throw await U(e,{channelId:h,rest:p,token:f,hasMedia:!!n.mediaUrl})}let s=a.id,g=a.message?.id??s,_=a.message?.channel_id??s,v=t.slice(1);try{if(n.mediaUrl){let[e,...t]=v;await vn(p,s,e??``,n.mediaUrl,n.mediaLocalRoots,l,void 0,m,o.config.maxLinesPerMessage,void 0,void 0,c,n.silent),await br({rest:p,threadId:s,chunks:t,request:m,maxLinesPerMessage:o.config.maxLinesPerMessage,chunkMode:c,silent:n.silent})}else await br({rest:p,threadId:s,chunks:v,request:m,maxLinesPerMessage:o.config.maxLinesPerMessage,chunkMode:c,silent:n.silent})}catch(e){throw await U(e,{channelId:s,rest:p,token:f,hasMedia:!!n.mediaUrl})}return S({channel:`discord`,accountId:o.accountId,direction:`outbound`}),J({id:g,channel_id:_},h)}let g;try{g=n.mediaUrl?await vn(p,h,d,n.mediaUrl,n.mediaLocalRoots,l,n.replyTo,m,o.config.maxLinesPerMessage,n.components,n.embeds,c,n.silent):await q(p,h,d,n.replyTo,m,o.config.maxLinesPerMessage,n.components,n.embeds,c,n.silent)}catch(e){throw await U(e,{channelId:h,rest:p,token:f,hasMedia:!!n.mediaUrl})}return S({channel:`discord`,accountId:o.accountId,direction:`outbound`}),J(g,h)}function Tr(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 Er(e,t){let n=t.webhookId.trim(),i=t.webhookToken.trim();if(!n||!i)throw Error(`Discord webhook id/token are required`);let o=ar(e,{accountId:t.accountId}),s=typeof t.replyTo==`string`?t.replyTo.trim():``,c=s?{message_id:s,fail_if_not_exists:!1}:void 0,l=await fetch(Tr({webhookId:n,webhookToken:i,threadId:t.threadId,wait:t.wait}),{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({content:o,username:t.username?.trim()||void 0,avatar_url:t.avatarUrl?.trim()||void 0,...c?{message_reference:c}:{}})});if(!l.ok){let e=await l.text().catch(()=>``);throw Error(`Discord webhook send failed (${l.status}${e?`: ${e.slice(0,200)}`:``})`)}let u=await l.json().catch(()=>({}));try{S({channel:`discord`,accountId:a({cfg:t.cfg??r(),accountId:t.accountId}).accountId,direction:`outbound`})}catch{}return{messageId:u.id?String(u.id):`unknown`,channelId:u.channel_id?String(u.channel_id):t.threadId?String(t.threadId):``}}async function Dr(e,t,n={}){let{rest:r,request:i,channelId:a}=await Cr(e,n),o=n.content?.trim(),s=o?ar(o,{accountId:n.accountId}):void 0,c=sn(t);return J(await i(()=>r.post(M.channelMessages(a),{body:{content:s||void 0,sticker_ids:c}}),`sticker`),a)}async function Or(e,t,n={}){let{rest:r,request:i,channelId:a}=await Cr(e,n),o=n.content?.trim(),s=o?ar(o,{accountId:n.accountId}):void 0;if(t.durationSeconds!==void 0)throw Error(`Discord polls do not support durationSeconds; use durationHours`);let c=cn(t),l=n.silent?G:void 0;return J(await i(()=>r.post(M.channelMessages(a),{body:{content:s||void 0,poll:c,...l?{flags:l}:{}}}),`poll`),a)}async function kr(t){let n=await v(t,c(`audio`)),r=n.fileName?C.extname(n.fileName):``,i=n.contentType?l(n.contentType):``,a=r||i||`.bin`,o=e(),s=C.join(o,`voice-src-${T.randomUUID()}${a}`);return await w.writeFile(s,n.buffer,{mode:384}),{filePath:s}}async function Ar(e,t,n={}){let{filePath:i}=await kr(t),o=null,s=!1,c,l,u;try{let t=n.cfg??r(),d=a({cfg:t,accountId:n.accountId}),f=R(n,t);c=f.token,l=f.rest;let p=f.request,m=await V(e,n.accountId,t);u=(await W(l,m,p)).channelId;let h=await _r(i);o=h.path,s=h.cleanup;let g=await vr(o),_=await w.readFile(o),v=await yr(l,u,_,g,n.replyTo,p,n.silent,c);return S({channel:`discord`,accountId:d.accountId,direction:`outbound`}),J(v,u)}catch(e){throw u&&l&&c?await U(e,{channelId:u,rest:l,token:c,hasMedia:!0}):e}finally{await Qn(s?o:null),await Qn(i)}}const jr=new Map,Mr=new Map;function Nr(e,t){return typeof e.expiresAt==`number`&&e.expiresAt<=t}function Pr(e,t,n){let r=e.createdAt??t,i=e.expiresAt??r+n;return{...e,createdAt:r,expiresAt:i}}function Fr(e){let t=Date.now(),n=e.ttlMs??18e5;for(let r of e.entries){let i=Pr({...r,messageId:e.messageId??r.messageId},t,n);jr.set(r.id,i)}for(let r of e.modals){let i=Pr({...r,messageId:e.messageId??r.messageId},t,n);Mr.set(r.id,i)}}function Ir(e){let t=jr.get(e.id);return t?Nr(t,Date.now())?(jr.delete(e.id),null):(e.consume!==!1&&jr.delete(e.id),t):null}function Lr(e){let t=Mr.get(e.id);return t?Nr(t,Date.now())?(Mr.delete(e.id),null):(e.consume!==!1&&Mr.delete(e.id),t):null}const Rr=`attachment://`,zr=new Map([[`row`,`actions`],[`action-row`,`actions`]]);function Y(e){return`${e}${T.randomBytes(6).toString(`base64url`)}`}function X(e,t){if(!e||typeof e!=`object`||Array.isArray(e))throw Error(`${t} must be an object`);return e}function Z(e,t,n){if(typeof e!=`string`)throw Error(`${t} must be a string`);let r=e.trim();if(!n?.allowEmpty&&!r)throw Error(`${t} cannot be empty`);return n?.allowEmpty?e:r}function Q(e){return typeof e==`string`&&e.trim()||void 0}function Br(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 Vr(e,t){return e?.trim()||`field_${t+1}`}function Hr(e,t){let n=e.trim();if(!n.startsWith(`attachment://`))throw Error(`${t} must start with "${Rr}"`);let r=n.slice(13).trim();if(!r)throw Error(`${t} must include an attachment filename`);return`${Rr}${r}`}function Ur(e){let t=e.trim();if(!t.startsWith(`attachment://`))throw Error(`Attachment reference must start with "${Rr}"`);let n=t.slice(13).trim();if(!n)throw Error(`Attachment reference must include a filename`);return n}function Wr(e){switch((e??`primary`).toLowerCase()){case`secondary`:return A.Secondary;case`success`:return A.Success;case`danger`:return A.Danger;case`link`:return A.Link;default:return A.Primary}}function Gr(e){return e===`paragraph`?Oe.Paragraph:Oe.Short}function Kr(e){let t=e.trim().toLowerCase();return zr.get(t)??t}function qr(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 Jr(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:Br(n.allowedUsers,`${t}.allowedUsers`)}}function Yr(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:qr(n.options,`${t}.options`)}}function Xr(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=qr(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:Vr(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 Zr(e,t){let n=X(e,t);switch(Kr(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:Jr(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)=>Jr(e,`${t}.buttons[${n}]`)):void 0,i=n.select?Yr(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:Hr(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 Qr(e){if(e==null)return null;let t=X(e,`components`),n=t.blocks,r=Array.isArray(n)?n.map((e,t)=>Zr(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)=>Xr(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 $r(e){let t=`occomp:cid=${e.componentId}`;return e.modalId?`${t};mid=${e.modalId}`:t}function ei(e){return`ocmodal:mid=${e}`}function ti(e){let t=O(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 ni(e){let t=O(e);if(t.key!==`ocmodal`)return null;let n=t.data.mid;return typeof n!=`string`||!n.trim()?null:n}function ri(e){return/^__openclaw_discord_component_[a-z_]+_wildcard__$/.test(e)}function ii(e){if(e===`*`||ri(e))return{key:`*`,data:{}};let t=O(e);return t.key===`occomp`?{key:`*`,data:t.data}:t}function ai(e){if(e===`*`||ri(e))return{key:`*`,data:{}};let t=O(e);return t.key===`ocmodal`?{key:`*`,data:t.data}:t}function oi(e,t){return t&&t.length>0?t.map(e=>new D(e)):e?[new D(e)]:[]}function si(e){let t=Wr(e.spec.style);if(t===A.Link||e.spec.url){if(!e.spec.url)throw Error(`Link buttons require a url`);let t=e.spec.url;class n extends fe{constructor(...n){super(...n),this.label=e.spec.label,this.url=t}}return{component:new n}}let n=e.componentId??Y(`btn_`),r=$r({componentId:n,modalId:e.modalId});class i extends ae{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 ci(e){let t=(e.spec.type??`string`).toLowerCase(),n=e.componentId??Y(`sel_`),r=$r({componentId:n});if(t===`string`){let t=e.spec.options??[];if(t.length===0)throw Error(`String select menus require options`);class i extends Se{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 Te{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 ye{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 me{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 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 i,entry:{id:n,kind:`select`,label:e.spec.placeholder??`channel select`,selectType:`channel`}}}function li(e){return e instanceof Se||e instanceof Te||e instanceof ye||e instanceof me||e instanceof oe}function ui(e){if(e.type===`text`){class t extends Ce{constructor(...t){super(...t),this.customId=e.id,this.style=Gr(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 Se{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 ye{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 Te{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 se{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 ge{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 di(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 D(o));for(let t of e.spec.blocks??[]){if(t.type===`text`){i.push(new D(t.text));continue}if(t.type===`section`){let e=oi(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 we(t.accessory.url);else if(t.accessory?.type===`button`){let{component:e,entry:r}=si({spec:t.accessory.button});n=e,r&&a(r)}i.push(new be(e,n));continue}if(t.type===`separator`){i.push(new xe({spacing:t.spacing,divider:t.divider}));continue}if(t.type===`media-gallery`){i.push(new pe(t.items));continue}if(t.type===`file`){i.push(new ue(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}=si({spec:n});e.push(t),r&&a(r)}}else if(t.select){let{component:n,entry:r}=ci({spec:t.select});e.push(n),a(r)}i.push(new E(e))}}if(e.spec.modal){let t=Y(`mdl_`),r=e.spec.modal.fields.map((e,t)=>({id:Y(`fld_`),name:Vr(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}=si({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 E){let e=c,t=e.components.some(e=>li(e));e.components.length<5&&!t?e.addComponent(o):i.push(new E([o]))}else i.push(new E([o]))}if(i.length===0)throw Error(`components must include at least one block, text, or modal trigger`);let s=new ce(i,e.spec.container);return r.push(s),{components:r,entries:t,modals:n}}function fi(e){return e.some(e=>e.isV2)?Ee.IsComponentsV2:void 0}var pi=class extends he{constructor(e){super(),this.customIdParser=ai,this.title=e.title,this.customId=ei(e.modalId),this.components=e.fields.map(e=>{let t=ui(e);class n extends de{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 mi(e){return new pi({modalId:e.id,title:e.title,fields:e.fields})}function hi(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 gi=new Set([j.GuildForum,j.GuildMedia]);function _i(e){let t=[];for(let n of e.blocks??[])n.type===`file`&&t.push(Ur(n.file));return t}async function vi(e,t,n={}){let i=n.cfg??r(),o=a({cfg:i,accountId:n.accountId}),{token:s,rest:c,request:l}=R(n,i),{channelId:u}=await W(c,await V(e,n.accountId,i),l),d=await un(c,u);if(d&&gi.has(d))throw Error(`Discord components are not supported in forum-style channels`);let f=di({spec:t,sessionKey:n.sessionKey,agentId:n.agentId,accountId:o.accountId}),p=fi(f.components),m=n.silent?(p??0)|G:p??void 0,g=n.replyTo?{message_id:n.replyTo,fail_if_not_exists:!1}:void 0,_=_i(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 h(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:_n(e.buffer),name:t}]}else if(y)throw Error(`Discord component file blocks require a media attachment (media/path/filePath).`);let ee=K({...k({components:f.components,...m?{flags:m}:{},...b?{files:b}:{}}),...g?{message_reference:g}:{}}),x;try{x=await l(()=>c.post(M.channelMessages(u),{body:ee}),`components`)}catch(e){throw await U(e,{channelId:u,rest:c,token:s,hasMedia:!!b?.length})}return Fr({entries:f.entries,modals:f.modals,messageId:x.id}),S({channel:`discord`,accountId:o.accountId,direction:`outbound`}),{messageId:x.id??`unknown`,channelId:x.channel_id??u}}async function yi(e,t,n,i={}){let{rest:a,request:o}=R(i,i.cfg??r()),s=on(n);return await o(()=>a.put(M.channelMessageOwnReaction(e,t,s)),`react`),{ok:!0}}async function bi(e,t,n,i={}){let{rest:a}=R(i,i.cfg??r()),o=on(n);return await a.delete(M.channelMessageOwnReaction(e,t,o)),{ok:!0}}async function xi(e,t,n={}){let{rest:i}=R(n,n.cfg??r()),a=await i.get(M.channelMessage(e,t)),o=new Set;for(let e of a.reactions??[]){let t=yn(e.emoji);t&&o.add(t)}if(o.size===0)return{ok:!0,removed:[]};let s=[];return await Promise.allSettled(Array.from(o,n=>(s.push(n),i.delete(M.channelMessageOwnReaction(e,t,on(n)))))),{ok:!0,removed:s}}async function Si(e,t,n={}){let{rest:i}=R(n,n.cfg??r()),a=(await i.get(M.channelMessage(e,t))).reactions??[];if(a.length===0)return[];let o=typeof n.limit==`number`&&Number.isFinite(n.limit)?Math.min(Math.max(Math.floor(n.limit),1),100):100,s=[];for(let n of a){let r=yn(n.emoji);if(!r)continue;let a=encodeURIComponent(r),c=await i.get(M.channelMessageReaction(e,t,a),{limit:o});s.push({emoji:{id:n.emoji.id??null,name:n.emoji.name??null,raw:bn(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{K as $,qn as A,Fe as At,Ln as B,Wn as C,Ve as Ct,Kn as D,Ae as Dt,Xn as E,P as Et,An as F,kn as G,zn as H,jn as I,Sn as J,xn as K,In as L,Vn as M,Rn as N,Hn as O,Ne as Ot,Pn as P,q as Q,Bn as R,Gn as S,Ue as St,Jn as T,N as Tt,Dn as U,Nn as V,On as W,En as X,wn as Y,Tn as Z,Dr as _,Qe as _t,vi as a,L as at,rr as b,ut as bt,ti as c,Tt as ct,ai as d,I as dt,rn as et,Qr as f,qe as ft,Or as g,$e as gt,wr as h,Ze as ht,bi as i,zt as it,Mn as j,Zn as k,Me as kt,ii as l,ct as lt,Lr as m,et as mt,yi as n,R as nt,mi as o,Et as ot,Ir as p,at as pt,Cn as q,xi as r,Wt as rt,hi as s,wt as st,Si as t,nn as tt,ni as u,F as ut,Ar as v,ot as vt,Un as w,We as wt,Yn as x,He as xt,Er as y,lt as yt,Fn as z};
8
+ //# sourceMappingURL=send-hZFDcGLM.js.map
@@ -5,3 +5,4 @@ import{d as e,y as t}from"./paths-CrCoPIVK.js";import{E as n}from"./subsystem-Bc
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=Xt(s,l);e.trim().length&&o.push(e)}return en(e,o)}function $t(e,t){if((t.chunkMode??`length`)!==`newline`)return Qt(e,t);let n=m(e,Math.max(1,Math.floor(t.maxChars??Gt)),`newline`),r=[];for(let e of n){let n=Qt(e,t);if(!n.length&&e){r.push(e);continue}r.push(...n)}return r}function en(e,t){if(t.length<=1||!(e.startsWith(`Reasoning:
6
6
  _`)&&e.trimEnd().endsWith(`_`)))return t;let n=[...t];for(let e=0;e<n.length;e++){let t=e===n.length-1,r=n[e];if(r.trimEnd().endsWith(`_`)||(n[e]=`${r}_`),t)break;let i=n[e+1],a=i.length-i.trimStart().length,o=i.slice(0,a),s=i.slice(a);s.startsWith(`_`)||(n[e+1]=`${o}_${s}`)}return n}const tn=Object.entries(oe).filter(([,e])=>typeof e==`bigint`),nn=tn.reduce((e,[,t])=>e|t,0n),rn=oe.Administrator;function R(e,t){return t?e|BigInt(t):e}function an(e,t){return t?e&~BigInt(t):e}function on(e){return tn.filter(([,t])=>(e&t)===t).map(([e])=>e).toSorted()}function sn(e){return(e&rn)===rn}function cn(e,t){return(e&t)===t}function ln(e){return e===E.GuildNewsThread||e===E.GuildPublicThread||e===E.GuildPrivateThread}async function un(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 dn(e,t,n={}){let r=L(n);try{let[n,i]=await Promise.all([r.get(D.guild(e)),r.get(D.guildMember(e,t))]),a=new Map((n.roles??[]).map(e=>[e.id,e])),o=a.get(e),s=0n;o?.permissions&&(s=R(s,o.permissions));for(let e of i.roles??[]){let t=a.get(e);t?.permissions&&(s=R(s,t.permissions))}return s}catch{return null}}async function fn(e,t,n,r,i={}){let a=await dn(e,t,i);return a===null?!1:sn(a)?!0:r(a,n)}async function pn(e,t,n,r={}){return await fn(e,t,n,(e,t)=>t.some(t=>cn(e,t)),r)}async function mn(e,t={}){let n=L(t),r=await n.get(D.channel(e)),i=`type`in r?r.type:void 0,a=`guild_id`in r?r.guild_id:void 0;if(!a)return{channelId:e,permissions:[],raw:`0`,isDm:!0,channelType:i};let o=await un(n),[s,c]=await Promise.all([n.get(D.guild(a)),n.get(D.guildMember(a,o))]),l=new Map((s.roles??[]).map(e=>[e.id,e])),u=l.get(a),d=0n;u?.permissions&&(d=R(d,u.permissions));for(let e of c.roles??[]){let t=l.get(e);t?.permissions&&(d=R(d,t.permissions))}if(sn(d))return{channelId:e,guildId:a,permissions:on(nn),raw:nn.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=an(f,e.deny??`0`),f=R(f,e.allow??`0`));for(let e of p)c.roles?.includes(e.id)&&(f=an(f,e.deny??`0`),f=R(f,e.allow??`0`));for(let e of p)e.id===o&&(f=an(f,e.deny??`0`),f=R(f,e.allow??`0`));return{channelId:e,guildId:a,permissions:on(f),raw:f.toString(),isDm:!1,channelType:i}}var hn=class extends Error{constructor(e,t){super(e),this.name=`DiscordSendError`,t&&Object.assign(this,t)}toString(){return this.message}};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??l(),i=s({cfg:r,accountId:t}),a=e.trim(),o={ambiguousMessage:`Ambiguous Discord recipient "${a}". Use "user:${a}" for DMs or "channel:${a}" for channel messages.`},c=await Lt(e,{cfg:r,accountId:i.accountId},o);if(c)return{kind:c.kind,id:c.id};let u=F(e,o);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=ee(e,{maxOptions:10}),n=S(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 hn)return e;let n=yn(e);if(n===50007)return new hn(`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 mn(t.channelId,{rest:t.rest,token:t.token}),n=new Set(e.permissions),i=[`ViewChannel`,`SendMessages`];ln(e.channelType)&&i.push(`SendMessagesInThreads`),t.hasMedia&&i.push(`AttachFiles`),r=i.filter(e=>!n.has(e))}catch{}return new hn(`${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=$t(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 m=await p(r,x({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,y=Dn(m.buffer),b=En({text:g,components:Cn({components:l,text:g,isFirst:!0}),embeds:Tn({embeds:u,isFirst:!0}),flags:v,files:[{data:y,name:m.fileName??`upload`}]}),ee=await s(()=>e.post(D.channelMessages(t),{body:W({...j(b),..._?{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 ee}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=L(t),r={name:e.name};return e.type!==void 0&&(r.type=e.type),e.parentId&&(r.parent_id=e.parentId),e.topic&&(r.topic=e.topic),e.position!==void 0&&(r.position=e.position),e.nsfw!==void 0&&(r.nsfw=e.nsfw),await n.post(D.guildChannels(e.guildId),{body:r})}async function Mn(e,t={}){let n=L(t),r={};return e.name!==void 0&&(r.name=e.name),e.topic!==void 0&&(r.topic=e.topic),e.position!==void 0&&(r.position=e.position),e.parentId!==void 0&&(r.parent_id=e.parentId),e.nsfw!==void 0&&(r.nsfw=e.nsfw),e.rateLimitPerUser!==void 0&&(r.rate_limit_per_user=e.rateLimitPerUser),e.archived!==void 0&&(r.archived=e.archived),e.locked!==void 0&&(r.locked=e.locked),e.autoArchiveDuration!==void 0&&(r.auto_archive_duration=e.autoArchiveDuration),e.availableTags!==void 0&&(r.available_tags=e.availableTags.map(e=>({...e.id!==void 0&&{id:e.id},name:e.name,...e.moderated!==void 0&&{moderated:e.moderated},...e.emoji_id!==void 0&&{emoji_id:e.emoji_id},...e.emoji_name!==void 0&&{emoji_name:e.emoji_name}}))),await n.patch(D.channel(e.channelId),{body:r})}async function Nn(e,t={}){return await L(t).delete(D.channel(e)),{ok:!0,channelId:e}}async function Pn(e,t={}){let n=L(t),r=[{id:e.channelId,...e.parentId!==void 0&&{parent_id:e.parentId},...e.position!==void 0&&{position:e.position}}];return await n.patch(D.guildChannels(e.guildId),{body:r}),{ok:!0}}async function Fn(e,t={}){let n=L(t),r={type:e.targetType};return e.allow!==void 0&&(r.allow=e.allow),e.deny!==void 0&&(r.deny=e.deny),await n.put(`/channels/${e.channelId}/permissions/${e.targetId}`,{body:r}),{ok:!0}}async function In(e,t,n={}){return await L(n).delete(`/channels/${e}/permissions/${t}`),{ok:!0}}async function Ln(e,t={}){return await L(t).get(D.guildEmojis(e))}async function Rn(e,t={}){let n=L(t),r=await g(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=L(t),r=await g(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 L(n).get(D.guildMember(e,t))}async function Vn(e,t={}){return await L(t).get(D.guildRoles(e))}async function Hn(e,t={}){return await L(t).put(D.guildMemberRole(e.guildId,e.userId,e.roleId)),{ok:!0}}async function Un(e,t={}){return await L(t).delete(D.guildMemberRole(e.guildId,e.userId,e.roleId)),{ok:!0}}async function Wn(e,t={}){return await L(t).get(D.channel(e))}async function Gn(e,t={}){return await L(t).get(D.guildChannels(e))}async function Kn(e,t,n={}){return await L(n).get(D.guildVoiceState(e,t))}async function qn(e,t={}){return await L(t).get(D.guildScheduledEvents(e))}async function Jn(e,t,n={}){return await L(n).post(D.guildScheduledEvents(e),{body:t})}async function Yn(e,t={}){let n=L(t),r=e.until;if(!r&&e.durationMinutes){let t=e.durationMinutes*60*1e3;r=new Date(Date.now()+t).toISOString()}return await n.patch(D.guildMember(e.guildId,e.userId),{body:{communication_disabled_until:r??null},headers:e.reason?{"X-Audit-Log-Reason":encodeURIComponent(e.reason)}:void 0})}async function Xn(e,t={}){return await L(t).delete(D.guildMember(e.guildId,e.userId),{headers:e.reason?{"X-Audit-Log-Reason":encodeURIComponent(e.reason)}:void 0}),{ok:!0}}async function Zn(e,t={}){let n=L(t),r=typeof e.deleteMessageDays==`number`&&Number.isFinite(e.deleteMessageDays)?Math.min(Math.max(Math.floor(e.deleteMessageDays),0),7):void 0;return await n.put(D.guildBan(e.guildId,e.userId),{body:r===void 0?void 0:{delete_message_days:r},headers:e.reason?{"X-Audit-Log-Reason":encodeURIComponent(e.reason)}:void 0}),{ok:!0}}async function Qn(e,t={},n={}){let r=L(n),i=typeof t.limit==`number`&&Number.isFinite(t.limit)?Math.min(Math.max(Math.floor(t.limit),1),100):void 0,a={};return i&&(a.limit=i),t.before&&(a.before=t.before),t.after&&(a.after=t.after),t.around&&(a.around=t.around),await r.get(D.channelMessages(e),a)}async function $n(e,t,n={}){return await L(n).get(D.channelMessage(e,t))}async function er(e,t,n,r={}){return await L(r).patch(D.channelMessage(e,t),{body:{content:n.content}})}async function tr(e,t,n={}){return await L(n).delete(D.channelMessage(e,t)),{ok:!0}}async function nr(e,t,n={}){return await L(n).put(D.channelPin(e,t)),{ok:!0}}async function rr(e,t,n={}){return await L(n).delete(D.channelPin(e,t)),{ok:!0}}async function ir(e,t={}){return await L(t).get(D.channelPins(e))}async function ar(e,t,n={}){let r=L(n),i={name:t.name};t.autoArchiveMinutes&&(i.auto_archive_duration=t.autoArchiveMinutes),!t.messageId&&t.type!==void 0&&(i.type=t.type);let a;if(!t.messageId)try{a=(await r.get(D.channel(e)))?.type}catch{a=void 0}let o=a===E.GuildForum||a===E.GuildMedia;o&&(i.message={content:t.content?.trim()?t.content:t.name},t.appliedTags?.length&&(i.applied_tags=t.appliedTags)),!t.messageId&&!o&&i.type===void 0&&(i.type=E.PublicThread);let s=t.messageId?D.threads(e,t.messageId):D.threads(e),c=await r.post(s,{body:i});return!o&&t.content?.trim()&&await r.post(D.channelMessages(c.id),{body:{content:t.content}}),c}async function or(e,t={}){let n=L(t);if(e.includeArchived){if(!e.channelId)throw Error(`channelId required to list archived threads`);let t={};return e.before&&(t.before=e.before),e.limit&&(t.limit=e.limit),await n.get(D.channelThreads(e.channelId,`public`),t)}return await n.get(D.guildActiveThreads(e.guildId))}async function sr(e,t={}){let n=L(t),r=new URLSearchParams;if(r.set(`content`,e.content),e.channelIds?.length)for(let t of e.channelIds)r.append(`channel_id`,t);if(e.authorIds?.length)for(let t of e.authorIds)r.append(`author_id`,t);if(e.limit){let t=Math.min(Math.max(Math.floor(e.limit),1),25);r.set(`limit`,String(t))}return await n.get(`/guilds/${e.guildId}/messages/search?${r.toString()}`)}async function cr(e){if(e)try{await C.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=kt({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=ne(re);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=n(),r=w.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`,r]);let t=await C.readFile(r),n=new Int16Array(t.buffer,t.byteOffset,t.byteLength/2),i=Math.max(1,Math.floor(n.length/256)),a=[];for(let e=0;e<256&&e*i<n.length;e++){let t=0,r=0;for(let a=0;a<i&&e*i+a<n.length;a++)t+=Math.abs(n[e*i+a]),r++;let o=r>0?t/r: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(r)}}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(w.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 r=n(),i=w.join(r,`voice-${ie.randomUUID()}.ogg`);return await vr([`-y`,`-i`,e,`-vn`,`-sn`,`-dn`,`-t`,`1200`,`-ar`,`48000`,`-c:a`,`libopus`,`-b:a`,`64k`,i]),{path:i,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
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??l(),{rest:r,request:i}=I(t,n),{channelId:a}=await H(r,await z(e,t.accountId,n),i);return{rest:r,request:i,channelId:a}}async function Nr(e,t,n={}){let r=n.cfg??l(),i=s({cfg:r,accountId:n.accountId}),a=_({cfg:r,channel:`discord`,accountId:i.accountId}),o=h(r,`discord`,i.accountId),c=typeof i.config.mediaMaxMb==`number`?i.config.mediaMaxMb*1024*1024:8*1024*1024,u=te(t??``,a),d=K(u,{accountId:i.accountId}),{token:f,rest:p,request:m}=I(n,r),{channelId:g}=await H(p,await z(e,n.accountId,r),m);if(jr(await bn(p,g))){let e=Ar(u),t=xn(d,{maxLinesPerMessage:i.config.maxLinesPerMessage,chunkMode:o}),r=t[0]?.trim()?t[0]:e,a=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}),s;try{s=await m(()=>p.post(D.threads(g),{body:{name:e,message:W(j(a))}}),`forum-thread`)}catch(e){throw await V(e,{channelId:g,rest:p,token:f,hasMedia:!!n.mediaUrl})}let l=s.id,h=s.message?.id??l,_=s.message?.channel_id??l,v=t.slice(1);try{if(n.mediaUrl){let[e,...t]=v;await On(p,l,e??``,n.mediaUrl,n.mediaLocalRoots,c,void 0,m,i.config.maxLinesPerMessage,void 0,void 0,o,n.silent),await kr({rest:p,threadId:l,chunks:t,request:m,maxLinesPerMessage:i.config.maxLinesPerMessage,chunkMode:o,silent:n.silent})}else await kr({rest:p,threadId:l,chunks:v,request:m,maxLinesPerMessage:i.config.maxLinesPerMessage,chunkMode:o,silent:n.silent})}catch(e){throw await V(e,{channelId:l,rest:p,token:f,hasMedia:!!n.mediaUrl})}return y({channel:`discord`,accountId:i.accountId,direction:`outbound`}),q({id:h,channel_id:_},g)}let v;try{v=n.mediaUrl?await On(p,g,d,n.mediaUrl,n.mediaLocalRoots,c,n.replyTo,m,i.config.maxLinesPerMessage,n.components,n.embeds,o,n.silent):await G(p,g,d,n.replyTo,m,i.config.maxLinesPerMessage,n.components,n.embeds,o,n.silent)}catch(e){throw await V(e,{channelId:g,rest:p,token:f,hasMedia:!!n.mediaUrl})}return y({channel:`discord`,accountId:i.accountId,direction:`outbound`}),q(v,g)}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 i=K(e,{accountId:t.accountId}),a=typeof t.replyTo==`string`?t.replyTo.trim():``,o=a?{message_id:a,fail_if_not_exists:!1}:void 0,c=await fetch(Pr({webhookId:n,webhookToken:r,threadId:t.threadId,wait:t.wait}),{method:`POST`,headers:{"content-type":`application/json`},body:JSON.stringify({content:i,username:t.username?.trim()||void 0,avatar_url:t.avatarUrl?.trim()||void 0,...o?{message_reference:o}:{}})});if(!c.ok){let e=await c.text().catch(()=>``);throw Error(`Discord webhook send failed (${c.status}${e?`: ${e.slice(0,200)}`:``})`)}let u=await c.json().catch(()=>({}));try{y({channel:`discord`,accountId:s({cfg:t.cfg??l(),accountId:t.accountId}).accountId,direction:`outbound`})}catch{}return{messageId:u.id?String(u.id):`unknown`,channelId:u.channel_id?String(u.channel_id):t.threadId?String(t.threadId):``}}async function 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(r){let i=await g(r,t(`audio`)),a=i.fileName?w.extname(i.fileName):``,o=i.contentType?e(i.contentType):``,s=a||o||`.bin`,c=n(),l=w.join(c,`voice-src-${ie.randomUUID()}${s}`);return await C.writeFile(l,i.buffer,{mode:384}),{filePath:l}}async function zr(e,t,n={}){let{filePath:r}=await Rr(t),i=null,a=!1,o,c,u;try{let t=n.cfg??l(),d=s({cfg:t,accountId:n.accountId}),f=I(n,t);o=f.token,c=f.rest;let p=f.request,m=await z(e,n.accountId,t);u=(await H(c,m,p)).channelId;let h=await Er(r);i=h.path,a=h.cleanup;let g=await Dr(i),_=await C.readFile(i),v=await Or(c,u,_,g,n.replyTo,p,n.silent,o);return y({channel:`discord`,accountId:d.accountId,direction:`outbound`}),q(v,u)}catch(e){throw u&&c&&o?await V(e,{channelId:u,rest:c,token:o,hasMedia:!0}):e}finally{await cr(a?i: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??l(),i=s({cfg:r,accountId:n.accountId}),{token:a,rest:o,request:c}=I(n,r),{channelId:u}=await H(o,await z(e,n.accountId,r),c),d=await bn(o,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:i.accountId}),m=bi(f.components),h=n.silent?(m??0)|U:m??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 b=v[0],x;if(n.mediaUrl){let e=await p(n.mediaUrl,{localRoots:n.mediaLocalRoots}),t=n.filename?.trim()||e.fileName||`upload`;if(b&&b!==t)throw Error(`Component file block expects attachment "${b}", but the uploaded file is "${t}". Update components.blocks[].file or provide a matching filename.`);x=[{data:Dn(e.buffer),name:t}]}else if(b)throw Error(`Discord component file blocks require a media attachment (media/path/filePath).`);let ee=W({...j({components:f.components,...h?{flags:h}:{},...x?{files:x}:{}}),...g?{message_reference:g}:{}}),S;try{S=await c(()=>o.post(D.channelMessages(u),{body:ee}),`components`)}catch(e){throw await V(e,{channelId:u,rest:o,token:a,hasMedia:!!x?.length})}return Hr({entries:f.entries,modals:f.modals,messageId:S.id}),y({channel:`discord`,accountId:i.accountId,direction:`outbound`}),{messageId:S.id??`unknown`,channelId:S.channel_id??u}}async function Di(e,t,n,r={}){let{rest:i,request:a}=I(r,r.cfg??l()),o=gn(n);return await a(()=>i.put(D.channelMessageOwnReaction(e,t,o)),`react`),{ok:!0}}async function Oi(e,t,n,r={}){let{rest:i}=I(r,r.cfg??l()),a=gn(n);return await i.delete(D.channelMessageOwnReaction(e,t,a)),{ok:!0}}async function ki(e,t,n={}){let{rest:r}=I(n,n.cfg??l()),i=await r.get(D.channelMessage(e,t)),a=new Set;for(let e of i.reactions??[]){let t=kn(e.emoji);t&&a.add(t)}if(a.size===0)return{ok:!0,removed:[]};let o=[];return await Promise.allSettled(Array.from(a,n=>(o.push(n),r.delete(D.channelMessageOwnReaction(e,t,gn(n)))))),{ok:!0,removed:o}}async function Ai(e,t,n={}){let{rest:r}=I(n,n.cfg??l()),i=(await r.get(D.channelMessage(e,t))).reactions??[];if(i.length===0)return[];let a=typeof n.limit==`number`&&Number.isFinite(n.limit)?Math.min(Math.max(Math.floor(n.limit),1),100):100,o=[];for(let n of i){let i=kn(n.emoji);if(!i)continue;let s=encodeURIComponent(i),c=await r.get(D.channelMessageReaction(e,t,s),{limit:a});o.push({emoji:{id:n.emoji.id??null,name:n.emoji.name??null,raw: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 o}export{W as $,rr as A,Ge as At,qn as B,er as C,Ze as Ct,nr as D,We 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,M as Mt,Jn as N,Ve as Nt,Qn as O,Ke as Ot,Wn as P,Ae as Pt,G as Q,Xn as R,tr as S,$e as St,ir as T,Ye 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,F as at,pr as b,bt,li as c,Ft as ct,pi as d,P as dt,mn as et,oi as f,rt as ft,Lr as g,lt as gt,Nr as h,st as ht,Oi as i,Wt as it,Hn as j,Je as jt,sr as k,Ue as kt,fi as l,vt as lt,Wr as m,ut as mt,Di as n,$t as nt,Si as o,It as ot,Ur as p,ht as pt,Nn as q,ki as r,I as rt,Ci as s,Pt as st,Ai as t,pn 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};
8
+ //# sourceMappingURL=send-vthbs31u.js.map
@@ -1 +1,2 @@
1
1
  import{t as e}from"./subsystem-BLbY429l.js";import"./paths-BjD3T_xq.js";import"./boolean-D15s2V33.js";import{Br as t,Cr as n,Hr as r,Qr as i,Sr as a,Ti as o,Vr as s,jo as c,wi as l,xr as u}from"./auth-profiles-T8DuH3ax.js";import"./agent-scope-DAWJwFfl.js";import"./utils-CGdo13HV.js";import"./openclaw-root-CnsBf6ZU.js";import"./github-copilot-token-C79yeDKS.js";import"./env-overrides-DHtB4kK3.js";import"./version-q3SkUw2K.js";import"./registry-BptzrW8D.js";import"./skills-CKTicUKS.js";import"./frontmatter-C7mzDNxd.js";import"./plugins-DNlgeTTc.js";import"./logger-kQAOe3qp.js";import"./exec-B3eleY5O.js";import"./windows-spawn-7oINn5ao.js";import"./redact-CnRxK70G.js";import"./path-alias-guards-kY_ZbWs-.js";import"./errors-6SQWM9dj.js";import"./paths-BfjJY2VL.js";import"./chat-envelope-Bznn2SoS.js";import d from"express";let f=null;const p=e(`browser`).child(`server`);async function m(){if(f)return f;let e=c(),s=i(e.browser,e);if(!s.enabled)return null;let m=o(e),h=!1;try{let t=await l({cfg:e});m=t.auth,t.generatedToken&&p.info(`No browser auth configured; generated gateway.auth.token automatically.`)}catch(e){p.warn(`failed to auto-configure browser auth: ${String(e)}`),h=!0}if(h&&!m.token&&!m.password)return p.error(`browser control startup aborted: authentication bootstrap failed and no fallback auth is configured.`),null;let g=d();a(g),u(g,m),n(g,r({getState:()=>f,refreshConfigFromDisk:!0}));let _=s.controlPort,v=await new Promise((e,t)=>{let n=g.listen(_,`127.0.0.1`,()=>e(n));n.once(`error`,t)}).catch(e=>(p.error(`openclaw browser server failed to bind 127.0.0.1:${_}: ${String(e)}`),null));if(!v)return null;f=await t({server:v,port:_,resolved:s,onWarn:e=>p.warn(e)});let y=m.token?`token`:m.password?`password`:`off`;return p.info(`Browser control listening on http://127.0.0.1:${_}/ (auth=${y})`),f}async function h(){await s({current:f,getState:()=>f,clearState:()=>{f=null},closeServer:!0,onWarn:e=>p.warn(e)})}export{m as startBrowserControlServerFromConfig,h as stopBrowserControlServer};
2
+ //# sourceMappingURL=server-DpyBukwA.js.map
@@ -1 +1,2 @@
1
1
  import"./paths-B4IRk3wi.js";import{t as e}from"./subsystem-C5XF2Fy5.js";import"./utils-UGOV_184.js";import{$i as t,Ba as n,Fi as r,Ni as i,Pi as a,Qi as o,ea as s,pa as c,qs as l,za as u}from"./model-selection-BlC_rXAN.js";import"./agent-scope-DXZc3eNT.js";import"./openclaw-root-D_0Q6--h.js";import"./github-copilot-token-DGYAlOmV.js";import"./boolean-Ch3DfXPy.js";import"./env-D7wNuBx1.js";import"./env-overrides-DXJbFrwI.js";import"./registry-hFAtCSWG.js";import"./skills-DHbOKEGc.js";import"./frontmatter-BkZkwkVO.js";import"./plugins-CYLrFT4h.js";import"./logger-Bl8URnrW.js";import"./exec-DHqLtFYt.js";import"./windows-spawn-AB7ItGAE.js";import"./redact-3_CiXMY6.js";import"./path-alias-guards-mvyLCPlN.js";import"./errors-Bunti32V.js";import"./paths-yLEk_25I.js";import"./chat-envelope-HVpKusFc.js";import d from"express";let f=null;const p=e(`browser`).child(`server`);async function m(){if(f)return f;let e=l(),t=c(e.browser,e);if(!t.enabled)return null;let m=n(e),h=!1;try{let t=await u({cfg:e});m=t.auth,t.generatedToken&&p.info(`No browser auth configured; generated gateway.auth.token automatically.`)}catch(e){p.warn(`failed to auto-configure browser auth: ${String(e)}`),h=!0}if(h&&!m.token&&!m.password)return p.error(`browser control startup aborted: authentication bootstrap failed and no fallback auth is configured.`),null;let g=d();a(g),i(g,m),r(g,s({getState:()=>f,refreshConfigFromDisk:!0}));let _=t.controlPort,v=await new Promise((e,t)=>{let n=g.listen(_,`127.0.0.1`,()=>e(n));n.once(`error`,t)}).catch(e=>(p.error(`openclaw browser server failed to bind 127.0.0.1:${_}: ${String(e)}`),null));if(!v)return null;f=await o({server:v,port:_,resolved:t,onWarn:e=>p.warn(e)});let y=m.token?`token`:m.password?`password`:`off`;return p.info(`Browser control listening on http://127.0.0.1:${_}/ (auth=${y})`),f}async function h(){await t({current:f,getState:()=>f,clearState:()=>{f=null},closeServer:!0,onWarn:e=>p.warn(e)})}export{m as startBrowserControlServerFromConfig,h as stopBrowserControlServer};
2
+ //# sourceMappingURL=server-IgiSKzXH.js.map
@@ -1 +1,2 @@
1
1
  import{p as e}from"./subsystem-BLbY429l.js";import"./paths-BjD3T_xq.js";import"./boolean-D15s2V33.js";import{Lt as t,jo as n}from"./auth-profiles-T8DuH3ax.js";import"./agent-scope-DAWJwFfl.js";import{l as r,p as i}from"./session-key-C7F_iqYg.js";import"./utils-CGdo13HV.js";import"./openclaw-root-CnsBf6ZU.js";import"./github-copilot-token-C79yeDKS.js";import"./env-overrides-DHtB4kK3.js";import"./version-q3SkUw2K.js";import"./registry-BptzrW8D.js";import"./skills-CKTicUKS.js";import"./frontmatter-C7mzDNxd.js";import{r as a}from"./plugins-DNlgeTTc.js";import"./logger-kQAOe3qp.js";import"./exec-B3eleY5O.js";import"./windows-spawn-7oINn5ao.js";import"./redact-CnRxK70G.js";import"./path-alias-guards-kY_ZbWs-.js";import"./errors-6SQWM9dj.js";import"./send-CW81y5Wz.js";import"./send-DavpkzhH.js";import{Cn as o,O as s,bt as c,sr as l,st as u,w as d}from"./compact-Dg66DXx_.js";import"./paths-BfjJY2VL.js";import"./chat-envelope-Bznn2SoS.js";import"./models-config-_htt7eY5.js";import"./tokens-DRM8vzJx.js";import"./with-timeout-c1CzdShT.js";import{t as f}from"./deliver-BHuhHfkH.js";import"./diagnostic-DQq4Bwrs.js";import"./send-DkiKKUkt.js";import"./pi-model-discovery-CpjYoBQf.js";import"./exec-approvals-allowlist-D8mN7nxV.js";import"./exec-safe-bin-runtime-policy-dcCS_Adf.js";import"./model-catalog-COVzoZD9.js";import"./fetch-CQaNr5J1.js";import"./audio-transcription-runner-Bd1OZC6K.js";import"./fetch-guard-BrTtJw7h.js";import"./image-BkWwI54C.js";import"./tool-display-DJDtttQg.js";import"./api-key-rotation-D0QU-kQ9.js";import"./proxy-fetch-gWETR3cl.js";import"./ir-D8Hh84ab.js";import"./render-DrrPmnMI.js";import"./target-errors-CgWAJOam.js";import"./commands-Dy7duWlt.js";import"./commands-registry-Cpl4QnG4.js";import"./session-cost-usage-CHtVgnE8.js";import{c as p,o as m,s as h}from"./session-utils-8acNlxwP.js";import"./sqlite-CILF3z9U.js";import"./call-B8Fb4_oh.js";import"./pi-tools.policy-D40r0HmD.js";import"./pairing-store-BH-FTYkn.js";import"./fetch-Dh-apy46.js";import"./skill-commands-CSF6wVPU.js";import"./workspace-dirs-A8Vib9_B.js";import"./pairing-token-DAR7V7FJ.js";import"./channel-activity-BBrgoad1.js";import"./tables-Brc2lNcB.js";import"./kill-tree-B3g7HrAO.js";import"./runtime-web-tools-D8fms06-.js";import"./runtime-Dlg2-Omq.js";import"./node-shell-DyOfwHrh.js";import"./stagger-DxzgG2jd.js";import"./channel-selection-BBeE1TmB.js";import"./plugin-auto-enable-NzmNh4oU.js";import"./send-CVplsJpw.js";import"./outbound-attachment-BgAe99RM.js";import"./delivery-queue-nkPJu0fY.js";import"./send-C48Y9SAq.js";import"./system-run-command-BKfMiqQM.js";import"./fetch-Ce-scEU-.js";import"./command-secret-targets-BlN-J_fA.js";import"./connection-auth-B_Uk6Vk8.js";import"./onboard-helpers-PGl5bVPE.js";import"./prompt-style-BThRSQJR.js";import"./pairing-labels-D-kzQEL2.js";import"./search-manager-Bp9x20r6.js";import"./manager-C2YW7Hkq.js";import"./memory-cli-XaxtBQm1.js";import"./links-CBnmRP9D.js";import"./cli-utils-BleB1eys.js";import"./help-format-B4aEI7V9.js";import"./progress-d1m2sqR1.js";import"./exec-approvals-BXO9Cezj.js";import{c as g,l as _,r as v,s as y}from"./push-apns-B_a2MBJ4.js";import{randomUUID as b}from"node:crypto";const x=1500,S=new Map;function C(e){if(typeof e!=`string`)return null;let t=e.trim();return t.length>0?t:null}function w(e){return typeof e==`number`&&Number.isFinite(e)?Math.trunc(e):null}function T(e,t){let n=C(e.eventId)??C(e.providerEventId)??C(e.transcriptId);if(n)return`event:${n}`;let r=C(e.providerCallId)??C(e.callId),i=w(e.sequence)??w(e.seq);if(r&&i!==null)return`call-seq:${r}:${i}`;let a=w(e.timestamp)??w(e.ts)??w(e.eventTimestamp);return r&&a!==null?`call-ts:${r}:${a}`:a===null?`text:${t}`:`timestamp:${a}|text:${t}`}function E(e){let t=S.get(e.sessionKey);if(t&&t.fingerprint===e.fingerprint&&e.now-t.ts<=x)return!0;if(S.set(e.sessionKey,{fingerprint:e.fingerprint,ts:e.now}),S.size>200){let t=e.now-x*2;for(let[e,n]of S)if(n.ts<t&&S.delete(e),S.size<=200)break;for(;S.size>200;){let e=S.keys().next().value;if(e===void 0)break;S.delete(e)}}return!1}function D(e){let t=e.replace(/\s+/g,` `).trim();return t?t.length<=180?t:`${t.slice(0,179)}…`:``}function O(e){let t=e.replace(/\s+/g,` `).trim();return t?t.length<=120?t:`${t.slice(0,119)}…`:``}async function k(e){let{storePath:n}=e;n&&await t(n,t=>{let n=p({cfg:e.cfg,key:e.sessionKey,store:t});h({store:t,canonicalKey:n.canonicalKey,candidates:n.storeKeys}),t[e.canonicalKey]={sessionId:e.sessionId,updatedAt:e.now,thinkingLevel:e.entry?.thinkingLevel,verboseLevel:e.entry?.verboseLevel,reasoningLevel:e.entry?.reasoningLevel,systemSent:e.entry?.systemSent,sendPolicy:e.entry?.sendPolicy,lastChannel:e.entry?.lastChannel,lastTo:e.entry?.lastTo}})}function A(e){k({cfg:e.cfg,sessionKey:e.sessionKey,storePath:e.storePath,canonicalKey:e.canonicalKey,entry:e.entry,sessionId:e.sessionId,now:e.now}).catch(t=>{e.ctx.logGateway.warn(`voice session-store update failed: `+_(t))})}function j(e){let t;try{t=JSON.parse(e)}catch{return null}if(typeof t!=`object`||!t)return null;let n=t,r=typeof n.sessionKey==`string`?n.sessionKey.trim():``;return r.length>0?r:null}function M(e){if(!e)return null;let t;try{t=JSON.parse(e)}catch{return null}return typeof t==`object`&&t?t:null}async function N(e){let t=c({channel:e.channel,to:e.to,cfg:e.cfg,mode:`explicit`});if(!t.ok)throw Error(String(t.error));let n=l({cfg:e.cfg,sessionKey:e.sessionKey});await f({cfg:e.cfg,channel:e.channel,to:t.to,payloads:[{text:e.text}],session:n,bestEffort:!0,deps:s(e.deps)})}const P=async(t,s,c)=>{switch(c.event){case`voice.transcript`:{let i=M(c.payloadJSON);if(!i)return;let a=typeof i.text==`string`?i.text.trim():``;if(!a||a.length>2e4)return;let o=typeof i.sessionKey==`string`?i.sessionKey.trim():``,l=n(),u=r(l.session?.mainKey),f=o.length>0?o:u,{storePath:p,entry:h,canonicalKey:g}=m(f),v=Date.now();if(E({sessionKey:g,fingerprint:T(i,a),now:v}))return;let y=h?.sessionId??b();A({ctx:t,cfg:l,sessionKey:f,storePath:p,canonicalKey:g,entry:h,sessionId:y,now:v}),t.addChatRun(y,{sessionKey:g,clientRunId:`voice-${b()}`}),d({message:a,sessionId:y,sessionKey:g,thinking:`low`,deliver:!1,messageChannel:`node`,inputProvenance:{kind:`external_user`,sourceChannel:`voice`,sourceTool:`gateway.voice.transcript`},senderIsOwner:!1},e,t.deps).catch(e=>{t.logGateway.warn(`agent failed node=${s}: ${_(e)}`)});return}case`agent.request`:{if(!c.payloadJSON)return;let r=null;try{r=JSON.parse(c.payloadJSON)}catch{return}let i=(r?.message??``).trim(),o=y(r?.attachments??void 0),l=[];if(o.length>0)try{let e=await g(i,o,{maxBytes:5e6,log:t.logGateway});i=e.message.trim(),l=e.images}catch{return}if(!i||i.length>2e4)return;let u=a(typeof r?.channel==`string`?r.channel.trim():``)??void 0,f=typeof r?.to==`string`&&r.to.trim()?r.to.trim():void 0,p=!!r?.deliver,h=!!r?.receipt,v=(typeof r?.receiptText==`string`?r.receiptText.trim():``)||`Just received your iOS share + request, working on it.`,x=(r?.sessionKey??``).trim(),S=x.length>0?x:`node-${s}`,C=n(),{storePath:w,entry:T,canonicalKey:E}=m(S),D=Date.now(),O=T?.sessionId??b();if(await k({cfg:C,sessionKey:S,storePath:w,canonicalKey:E,entry:T,sessionId:O,now:D}),p&&(!u||!f)){let e=typeof T?.lastChannel==`string`?a(T.lastChannel):void 0,t=typeof T?.lastTo==`string`?T.lastTo.trim():``;!u&&e&&(u=e),!f&&t&&(f=t)}let A=p&&!!(u&&f),j=A?u:void 0,M=A?f:void 0;p&&!A&&t.logGateway.warn(`agent delivery disabled node=${s}: missing session delivery route (channel=${u??`-`} to=${f??`-`})`),h&&j&&M?N({cfg:C,deps:t.deps,sessionKey:E,channel:j,to:M,text:v}).catch(e=>{t.logGateway.warn(`agent receipt failed node=${s}: ${_(e)}`)}):h&&t.logGateway.warn(`agent receipt skipped node=${s}: missing delivery route (channel=${j??`-`} to=${M??`-`})`),d({message:i,images:l,sessionId:O,sessionKey:E,thinking:r?.thinking??void 0,deliver:A,to:M,channel:j,timeout:typeof r?.timeoutSeconds==`number`?r.timeoutSeconds.toString():void 0,messageChannel:`node`,senderIsOwner:!1},e,t.deps).catch(e=>{t.logGateway.warn(`agent failed node=${s}: ${_(e)}`)});return}case`notifications.changed`:{let e=M(c.payloadJSON);if(!e)return;let t=C(e.change)?.toLowerCase();if(t!==`posted`&&t!==`removed`)return;let n=C(e.key);if(!n)return;let{canonicalKey:r}=m(C(e.sessionKey)??`node-${s}`),i=C(e.packageName),a=O(C(e.title)??``),l=O(C(e.text)??``),d=`Notification ${t} (node=${s} key=${n}`;if(i&&(d+=` package=${i}`),d+=`)`,t===`posted`){let e=[a,l].filter(Boolean);e.length>0&&(d+=`: ${e.join(` - `)}`)}o(d,{sessionKey:r,contextKey:`notification:${n}`})&&u({reason:`notifications-event`,sessionKey:r});return}case`chat.subscribe`:{if(!c.payloadJSON)return;let e=j(c.payloadJSON);if(!e)return;t.nodeSubscribe(s,e);return}case`chat.unsubscribe`:{if(!c.payloadJSON)return;let e=j(c.payloadJSON);if(!e)return;t.nodeUnsubscribe(s,e);return}case`exec.started`:case`exec.finished`:case`exec.denied`:{let e=M(c.payloadJSON);if(!e)return;let t=typeof e.sessionKey==`string`?e.sessionKey.trim():`node-${s}`;if(!t||n().tools?.exec?.notifyOnExit===!1||e.suppressNotifyOnExit===!0)return;let r=typeof e.runId==`string`?e.runId.trim():``,a=typeof e.command==`string`?e.command.trim():``,l=typeof e.exitCode==`number`&&Number.isFinite(e.exitCode)?e.exitCode:void 0,d=e.timedOut===!0,f=typeof e.output==`string`?e.output.trim():``,p=typeof e.reason==`string`?e.reason.trim():``,m=``;if(c.event===`exec.started`)m=`Exec started (node=${s}${r?` id=${r}`:``})`,a&&(m+=`: ${a}`);else if(c.event===`exec.finished`){let e=d?`timeout`:`code ${l??`?`}`,t=D(f);if(!(d||l!==0||t.length>0))return;m=`Exec finished (node=${s}${r?` id=${r}`:``}, ${e})`,t&&(m+=`\n${t}`)}else m=`Exec denied (node=${s}${r?` id=${r}`:``}${p?`, ${p}`:``})`,a&&(m+=`: ${a}`);o(m,{sessionKey:t,contextKey:r?`exec:${r}`:`exec`}),u(i(t,{reason:`exec-event`}));return}case`push.apns.register`:{let e=M(c.payloadJSON);if(!e)return;let n=typeof e.token==`string`?e.token:``,r=typeof e.topic==`string`?e.topic:``,i=e.environment;try{await v({nodeId:s,token:n,topic:r,environment:i})}catch(e){t.logGateway.warn(`push apns register failed node=${s}: ${_(e)}`)}return}default:return}};export{P as handleNodeEvent};
2
+ //# sourceMappingURL=server-node-events-CFSY_-4t.js.map
@@ -1 +1,2 @@
1
1
  import"./paths-B4IRk3wi.js";import{p as e}from"./subsystem-C5XF2Fy5.js";import"./utils-UGOV_184.js";import{Jn as t,qs as n}from"./model-selection-BlC_rXAN.js";import{Gn as r,Kt as i,M as a,Mt as o,N as s,Ot as c,Sn as l,br as u,j as d}from"./reply-l-Y47HP4.js";import"./agent-scope-DXZc3eNT.js";import{l as f,p}from"./session-key-D3P0tf5P.js";import"./openclaw-root-D_0Q6--h.js";import"./github-copilot-token-DGYAlOmV.js";import"./boolean-Ch3DfXPy.js";import"./env-D7wNuBx1.js";import"./env-overrides-DXJbFrwI.js";import"./registry-hFAtCSWG.js";import"./skills-DHbOKEGc.js";import"./frontmatter-BkZkwkVO.js";import{r as m}from"./plugins-CYLrFT4h.js";import"./logger-Bl8URnrW.js";import"./exec-DHqLtFYt.js";import"./windows-spawn-AB7ItGAE.js";import"./redact-3_CiXMY6.js";import"./path-alias-guards-mvyLCPlN.js";import"./errors-Bunti32V.js";import"./send-Cgd_VJHR.js";import"./send-hZFDcGLM.js";import"./paths-yLEk_25I.js";import"./chat-envelope-HVpKusFc.js";import"./audio-transcription-runner-D4Bp6MM7.js";import"./image-DsoO5VP5.js";import"./models-config-CdMhNxKV.js";import"./tool-display-DjuSUUbH.js";import"./fetch-guard-DPdY0NXR.js";import"./api-key-rotation-BRt-vnRV.js";import"./local-roots-6waH0SZ0.js";import"./model-catalog-C1kpjR75.js";import"./proxy-fetch-BADsUK4d.js";import"./tokens-XGbQGn67.js";import{t as h}from"./deliver-ClBkV2eD.js";import"./commands-CGpM84iR.js";import"./commands-registry-B1x54ukc.js";import"./pairing-store-Cg2UxreQ.js";import"./fetch-Dikjvc5M.js";import"./call-CqoMqP5b.js";import"./with-timeout-WveKxvFV.js";import"./diagnostic-DOzHPnht.js";import"./send-B7sHR38c2.js";import"./pi-model-discovery-Dps1PPWz.js";import"./exec-approvals-allowlist-CE3nYh0K.js";import"./exec-safe-bin-runtime-policy-Dt0GchLp.js";import"./ir-Dk7OQ4bA.js";import"./render-D8OWO2hT.js";import"./target-errors-a35Md15n.js";import"./read-only-account-inspect-DBwAwB3_.js";import"./channel-selection-CbNtbAEf.js";import"./plugin-auto-enable-DpVL6-ES.js";import"./send-C-AP01PR.js";import"./outbound-attachment-B7wMxwj6.js";import"./delivery-queue-CKbauSFq.js";import"./send-DbeEC2a3.js";import"./channel-activity-YjYNzCpJ.js";import"./tables-Oieq7UbT.js";import"./fetch-Bn0mWg6a.js";import"./skill-commands-HJHHZqt6.js";import"./workspace-dirs-BhF1Dzxt.js";import"./pairing-token-BjYBuREl.js";import"./restart-CHXEHdSC.js";import"./runtime-web-tools-bz76ZaRc.js";import"./command-secret-targets-BVN3kiT9.js";import"./session-cost-usage-BgqKixv0.js";import"./connection-auth-C8iru0UB.js";import"./onboard-helpers-zwybUJWu.js";import"./prompt-style-CXKekIBY.js";import"./pairing-labels-BUU_-70B.js";import"./memory-cli-jhzJ3as7.js";import"./query-expansion-0OxEb1Io.js";import"./manager-M1GKhLUC.js";import"./links-CySwdMcF.js";import"./cli-utils-BY7dLMFy.js";import"./help-format-BRbF_INg.js";import"./progress-LNttnI-y.js";import"./exec-approvals-BpBNEy6i.js";import"./nodes-screen-DECgxo6A.js";import"./system-run-command-DEWnZE0r.js";import"./runtime-BC5Ep2pJ.js";import"./stagger-DmFYysrJ.js";import{c as g,l as _,r as v,s as y}from"./push-apns-BGUOmD5M.js";import{randomUUID as b}from"node:crypto";const x=1500,S=new Map;function C(e){if(typeof e!=`string`)return null;let t=e.trim();return t.length>0?t:null}function w(e){return typeof e==`number`&&Number.isFinite(e)?Math.trunc(e):null}function T(e,t){let n=C(e.eventId)??C(e.providerEventId)??C(e.transcriptId);if(n)return`event:${n}`;let r=C(e.providerCallId)??C(e.callId),i=w(e.sequence)??w(e.seq);if(r&&i!==null)return`call-seq:${r}:${i}`;let a=w(e.timestamp)??w(e.ts)??w(e.eventTimestamp);return r&&a!==null?`call-ts:${r}:${a}`:a===null?`text:${t}`:`timestamp:${a}|text:${t}`}function E(e){let t=S.get(e.sessionKey);if(t&&t.fingerprint===e.fingerprint&&e.now-t.ts<=x)return!0;if(S.set(e.sessionKey,{fingerprint:e.fingerprint,ts:e.now}),S.size>200){let t=e.now-x*2;for(let[e,n]of S)if(n.ts<t&&S.delete(e),S.size<=200)break;for(;S.size>200;){let e=S.keys().next().value;if(e===void 0)break;S.delete(e)}}return!1}function D(e){let t=e.replace(/\s+/g,` `).trim();return t?t.length<=180?t:`${t.slice(0,179)}…`:``}function O(e){let t=e.replace(/\s+/g,` `).trim();return t?t.length<=120?t:`${t.slice(0,119)}…`:``}async function k(e){let{storePath:n}=e;n&&await t(n,t=>{let n=s({cfg:e.cfg,key:e.sessionKey,store:t});a({store:t,canonicalKey:n.canonicalKey,candidates:n.storeKeys}),t[e.canonicalKey]={sessionId:e.sessionId,updatedAt:e.now,thinkingLevel:e.entry?.thinkingLevel,verboseLevel:e.entry?.verboseLevel,reasoningLevel:e.entry?.reasoningLevel,systemSent:e.entry?.systemSent,sendPolicy:e.entry?.sendPolicy,lastChannel:e.entry?.lastChannel,lastTo:e.entry?.lastTo}})}function A(e){k({cfg:e.cfg,sessionKey:e.sessionKey,storePath:e.storePath,canonicalKey:e.canonicalKey,entry:e.entry,sessionId:e.sessionId,now:e.now}).catch(t=>{e.ctx.logGateway.warn(`voice session-store update failed: `+_(t))})}function j(e){let t;try{t=JSON.parse(e)}catch{return null}if(typeof t!=`object`||!t)return null;let n=t,r=typeof n.sessionKey==`string`?n.sessionKey.trim():``;return r.length>0?r:null}function M(e){if(!e)return null;let t;try{t=JSON.parse(e)}catch{return null}return typeof t==`object`&&t?t:null}async function N(e){let t=r({channel:e.channel,to:e.to,cfg:e.cfg,mode:`explicit`});if(!t.ok)throw Error(String(t.error));let n=u({cfg:e.cfg,sessionKey:e.sessionKey});await h({cfg:e.cfg,channel:e.channel,to:t.to,payloads:[{text:e.text}],session:n,bestEffort:!0,deps:o(e.deps)})}const P=async(t,r,a)=>{switch(a.event){case`voice.transcript`:{let i=M(a.payloadJSON);if(!i)return;let o=typeof i.text==`string`?i.text.trim():``;if(!o||o.length>2e4)return;let s=typeof i.sessionKey==`string`?i.sessionKey.trim():``,l=n(),u=f(l.session?.mainKey),p=s.length>0?s:u,{storePath:m,entry:h,canonicalKey:g}=d(p),v=Date.now();if(E({sessionKey:g,fingerprint:T(i,o),now:v}))return;let y=h?.sessionId??b();A({ctx:t,cfg:l,sessionKey:p,storePath:m,canonicalKey:g,entry:h,sessionId:y,now:v}),t.addChatRun(y,{sessionKey:g,clientRunId:`voice-${b()}`}),c({message:o,sessionId:y,sessionKey:g,thinking:`low`,deliver:!1,messageChannel:`node`,inputProvenance:{kind:`external_user`,sourceChannel:`voice`,sourceTool:`gateway.voice.transcript`},senderIsOwner:!1},e,t.deps).catch(e=>{t.logGateway.warn(`agent failed node=${r}: ${_(e)}`)});return}case`agent.request`:{if(!a.payloadJSON)return;let i=null;try{i=JSON.parse(a.payloadJSON)}catch{return}let o=(i?.message??``).trim(),s=y(i?.attachments??void 0),l=[];if(s.length>0)try{let e=await g(o,s,{maxBytes:5e6,log:t.logGateway});o=e.message.trim(),l=e.images}catch{return}if(!o||o.length>2e4)return;let u=m(typeof i?.channel==`string`?i.channel.trim():``)??void 0,f=typeof i?.to==`string`&&i.to.trim()?i.to.trim():void 0,p=!!i?.deliver,h=!!i?.receipt,v=(typeof i?.receiptText==`string`?i.receiptText.trim():``)||`Just received your iOS share + request, working on it.`,x=(i?.sessionKey??``).trim(),S=x.length>0?x:`node-${r}`,C=n(),{storePath:w,entry:T,canonicalKey:E}=d(S),D=Date.now(),O=T?.sessionId??b();if(await k({cfg:C,sessionKey:S,storePath:w,canonicalKey:E,entry:T,sessionId:O,now:D}),p&&(!u||!f)){let e=typeof T?.lastChannel==`string`?m(T.lastChannel):void 0,t=typeof T?.lastTo==`string`?T.lastTo.trim():``;!u&&e&&(u=e),!f&&t&&(f=t)}let A=p&&!!(u&&f),j=A?u:void 0,M=A?f:void 0;p&&!A&&t.logGateway.warn(`agent delivery disabled node=${r}: missing session delivery route (channel=${u??`-`} to=${f??`-`})`),h&&j&&M?N({cfg:C,deps:t.deps,sessionKey:E,channel:j,to:M,text:v}).catch(e=>{t.logGateway.warn(`agent receipt failed node=${r}: ${_(e)}`)}):h&&t.logGateway.warn(`agent receipt skipped node=${r}: missing delivery route (channel=${j??`-`} to=${M??`-`})`),c({message:o,images:l,sessionId:O,sessionKey:E,thinking:i?.thinking??void 0,deliver:A,to:M,channel:j,timeout:typeof i?.timeoutSeconds==`number`?i.timeoutSeconds.toString():void 0,messageChannel:`node`,senderIsOwner:!1},e,t.deps).catch(e=>{t.logGateway.warn(`agent failed node=${r}: ${_(e)}`)});return}case`notifications.changed`:{let e=M(a.payloadJSON);if(!e)return;let t=C(e.change)?.toLowerCase();if(t!==`posted`&&t!==`removed`)return;let n=C(e.key);if(!n)return;let{canonicalKey:o}=d(C(e.sessionKey)??`node-${r}`),s=C(e.packageName),c=O(C(e.title)??``),u=O(C(e.text)??``),f=`Notification ${t} (node=${r} key=${n}`;if(s&&(f+=` package=${s}`),f+=`)`,t===`posted`){let e=[c,u].filter(Boolean);e.length>0&&(f+=`: ${e.join(` - `)}`)}l(f,{sessionKey:o,contextKey:`notification:${n}`})&&i({reason:`notifications-event`,sessionKey:o});return}case`chat.subscribe`:{if(!a.payloadJSON)return;let e=j(a.payloadJSON);if(!e)return;t.nodeSubscribe(r,e);return}case`chat.unsubscribe`:{if(!a.payloadJSON)return;let e=j(a.payloadJSON);if(!e)return;t.nodeUnsubscribe(r,e);return}case`exec.started`:case`exec.finished`:case`exec.denied`:{let e=M(a.payloadJSON);if(!e)return;let t=typeof e.sessionKey==`string`?e.sessionKey.trim():`node-${r}`;if(!t||n().tools?.exec?.notifyOnExit===!1||e.suppressNotifyOnExit===!0)return;let o=typeof e.runId==`string`?e.runId.trim():``,s=typeof e.command==`string`?e.command.trim():``,c=typeof e.exitCode==`number`&&Number.isFinite(e.exitCode)?e.exitCode:void 0,u=e.timedOut===!0,d=typeof e.output==`string`?e.output.trim():``,f=typeof e.reason==`string`?e.reason.trim():``,m=``;if(a.event===`exec.started`)m=`Exec started (node=${r}${o?` id=${o}`:``})`,s&&(m+=`: ${s}`);else if(a.event===`exec.finished`){let e=u?`timeout`:`code ${c??`?`}`,t=D(d);if(!(u||c!==0||t.length>0))return;m=`Exec finished (node=${r}${o?` id=${o}`:``}, ${e})`,t&&(m+=`\n${t}`)}else m=`Exec denied (node=${r}${o?` id=${o}`:``}${f?`, ${f}`:``})`,s&&(m+=`: ${s}`);l(m,{sessionKey:t,contextKey:o?`exec:${o}`:`exec`}),i(p(t,{reason:`exec-event`}));return}case`push.apns.register`:{let e=M(a.payloadJSON);if(!e)return;let n=typeof e.token==`string`?e.token:``,i=typeof e.topic==`string`?e.topic:``,o=e.environment;try{await v({nodeId:r,token:n,topic:i,environment:o})}catch(e){t.logGateway.warn(`push apns register failed node=${r}: ${_(e)}`)}return}default:return}};export{P as handleNodeEvent};
2
+ //# sourceMappingURL=server-node-events-ZFwmPwQ-.js.map
@@ -30,3 +30,4 @@ fi
30
30
  `)):Error(`launchctl bootstrap failed: ${e}`)}return await L([`kickstart`,`-k`,`${d}/${f}`]),C(t,[{label:`Installed LaunchAgent`,value:p},{label:`Logs`,value:l}],{leadingBlankLine:!0}),{plistPath:p}}async function me({stdout:e,env:t}){let n=t??process.env,r=R(),i=M({env:n}),a=P(n),o=`${r}/${i}`;if(ce(i)){let t=j({env:n,mode:`kickstart`,waitForPid:process.pid});if(!t.ok)throw Error(`launchd restart handoff failed: ${t.detail??`unknown error`}`);try{e.write(`${f(`Scheduled LaunchAgent restart`,o)}\n`)}catch(e){if(e?.code!==`EPIPE`)throw e}return{outcome:`scheduled`}}let s=await L([`kickstart`,`-k`,o]);if(s.code===0){try{e.write(`${f(`Restarted LaunchAgent`,o)}\n`)}catch(e){if(e?.code!==`EPIPE`)throw e}return{outcome:`completed`}}if(!G(s))throw Error(`launchctl kickstart failed: ${s.stderr||s.stdout}`.trim());await L([`enable`,o]);let c=await L([`bootstrap`,r,a]);if(c.code!==0){let e=(c.stderr||c.stdout).trim();throw K(e)?Error([`launchctl bootstrap failed: ${e}`,`LaunchAgent restart requires a logged-in macOS GUI session for this user (${r}).`,`This usually means you are running from SSH/headless context or as the wrong user (including sudo).`,"Fix: sign in to the macOS desktop as the target user and rerun `openclaw gateway restart`.",`Headless deployments should use a dedicated logged-in user session or a custom LaunchDaemon (not shipped): https://docs.openclaw.ai/gateway`].join(`
31
31
  `)):Error(`launchctl bootstrap failed: ${e}`)}let l=await L([`kickstart`,`-k`,o]);if(l.code!==0)throw Error(`launchctl kickstart failed: ${l.stderr||l.stdout}`.trim());try{e.write(`${f(`Restarted LaunchAgent`,o)}\n`)}catch(e){if(e?.code!==`EPIPE`)throw e}return{outcome:`completed`}}async function q(e){return await m(`schtasks`,e,{windowsHide:!0})}function J(e){return e.OPENCLAW_WINDOWS_TASK_NAME?.trim()||i(e.OPENCLAW_PROFILE)}function Y(e){let t=e.OPENCLAW_TASK_SCRIPT?.trim();if(t)return t;let n=e.OPENCLAW_TASK_SCRIPT_NAME?.trim()||`gateway.cmd`,r=v(e);return T.join(r,n)}function he(e){return/[ \t"]/g.test(e)?`"${e.replace(/"/g,`\\"`)}"`:e}function ge(e){let t=e.USERNAME||e.USER||e.LOGNAME;if(!t)return null;if(t.includes(`\\`))return t;let n=e.USERDOMAIN;return n?`${n}\\${t}`:t}async function _e(e){let t=Y(e);try{let e=await E.readFile(t,`utf8`),n=``,r=``,i={};for(let t of e.split(/\r?\n/)){let e=t.trim();if(!e)continue;let a=e.toLowerCase();if(!e.startsWith(`@echo`)&&!a.startsWith(`rem `)){if(a.startsWith(`set `)){let t=c(e.slice(4));t&&(i[t.key]=t.value);continue}if(a.startsWith(`cd /d `)){n=e.slice(6).trim().replace(/^"|"$/g,``);continue}r=e;break}}return r?{programArguments:d(r),...n?{workingDirectory:n}:{},...Object.keys(i).length>0?{environment:i}:{}}:null}catch{return null}}function ve(e){let t=b(e,`:`),n={},r=t.status;r&&(n.status=r);let i=t[`last run time`];i&&(n.lastRunTime=i);let a=t[`last run result`];return a&&(n.lastRunResult=a),n}function ye(e){if(!e)return null;let t=e.trim().toLowerCase();if(!t)return null;if(/^0x[0-9a-f]+$/.test(t))return`0x${t.slice(2).replace(/^0+/,``)||`0`}`;if(/^\d+$/.test(t)){let e=Number.parseInt(t,10);if(Number.isFinite(e))return`0x${e.toString(16)}`}return null}const be=new Set([`0x41301`]);function xe(e){let t=ye(e.lastRunResult);return t==null?e.status?.trim()?{status:`unknown`,detail:`Task status is locale-dependent and no numeric Last Run Result was available.`}:{status:`unknown`}:be.has(t)?{status:`running`}:{status:`stopped`,detail:`Task Last Run Result=${e.lastRunResult}; treating as not running.`}}function Se({description:e,programArguments:t,workingDirectory:n,environment:r}){let i=[`@echo off`],a=e?.trim();if(a&&(u(a,`Task description`),i.push(`rem ${a}`)),n&&i.push(`cd /d ${l(n)}`),r)for(let[e,t]of Object.entries(r))t&&e.toUpperCase()!==`PATH`&&i.push(s(e,t));let o=t.map(l).join(` `);return i.push(o),`${i.join(`\r
32
32
  `)}\r\n`}async function X(){let e=await q([`/Query`]);if(e.code===0)return;let t=e.stderr||e.stdout;throw Error(`schtasks unavailable: ${t||`unknown error`}`.trim())}async function Ce({env:e,stdout:t,programArguments:r,workingDirectory:i,environment:a,description:o}){await X();let s=Y(e);await E.mkdir(T.dirname(s),{recursive:!0});let c=Se({description:n({env:e,environment:a,description:o}),programArguments:r,workingDirectory:i,environment:a});await E.writeFile(s,c,`utf8`);let l=J(e),u=[`/Create`,`/F`,`/SC`,`ONLOGON`,`/RL`,`LIMITED`,`/TN`,l,`/TR`,he(s)],d=ge(e),f=await q(d?[...u,`/RU`,d,`/NP`,`/IT`]:u);if(f.code!==0&&d&&(f=await q(u)),f.code!==0){let e=f.stderr||f.stdout,t=/access is denied/i.test(e)?` Run PowerShell as Administrator or rerun without installing the daemon.`:``;throw Error(`schtasks create failed: ${e}${t}`.trim())}return await q([`/Run`,`/TN`,l]),C(t,[{label:`Installed Scheduled Task`,value:l},{label:`Task script`,value:s}],{leadingBlankLine:!0}),{scriptPath:s}}async function we({env:e,stdout:t}){await X(),await q([`/Delete`,`/F`,`/TN`,J(e)]);let n=Y(e);try{await E.unlink(n),t.write(`${f(`Removed task script`,n)}\n`)}catch{t.write(`Task script not found at ${n}\n`)}}function Z(e){return(e.stderr||e.stdout).toLowerCase().includes(`not running`)}async function Te({stdout:e,env:t}){await X();let n=J(t??process.env),r=await q([`/End`,`/TN`,n]);if(r.code!==0&&!Z(r))throw Error(`schtasks end failed: ${r.stderr||r.stdout}`.trim());e.write(`${f(`Stopped Scheduled Task`,n)}\n`)}async function Ee({stdout:e,env:t}){await X();let n=J(t??process.env);await q([`/End`,`/TN`,n]);let r=await q([`/Run`,`/TN`,n]);if(r.code!==0)throw Error(`schtasks run failed: ${r.stderr||r.stdout}`.trim());return e.write(`${f(`Restarted Scheduled Task`,n)}\n`),{outcome:`completed`}}async function De(e){return await X(),(await q([`/Query`,`/TN`,J(e.env??process.env)])).code===0}async function Oe(e=process.env){try{await X()}catch(e){return{status:`unknown`,detail:String(e)}}let t=await q([`/Query`,`/TN`,J(e),`/V`,`/FO`,`LIST`]);if(t.code!==0){let e=(t.stderr||t.stdout).trim(),n=e.toLowerCase().includes(`cannot find the file`);return{status:n?`stopped`:`unknown`,detail:e||void 0,missingUnit:n}}let n=ve(t.stdout||``),r=xe(n);return{status:r.status,state:n.status,lastRunTime:n.lastRunTime,lastRunResult:n.lastRunResult,...r.detail?{detail:r.detail}:{}}}function Q(e){return async t=>{await e(t)}}function ke(e,t){return t.outcome===`scheduled`?{scheduled:!0,daemonActionResult:`scheduled`,message:`restart scheduled, ${e.toLowerCase()} will restart momentarily`,progressMessage:`${e} service restart scheduled.`}:{scheduled:!1,daemonActionResult:`restarted`,message:`${e} service restarted.`,progressMessage:`${e} service restarted.`}}const $={darwin:{label:`LaunchAgent`,loadedText:`loaded`,notLoadedText:`not loaded`,install:Q(pe),uninstall:de,stop:fe,restart:me,isLoaded:V,readCommand:le,readRuntime:W},linux:{label:`systemd`,loadedText:`enabled`,notLoadedText:`disabled`,install:Q(te),uninstall:g,stop:y,restart:h,isLoaded:x,readCommand:p,readRuntime:ee},win32:{label:`Scheduled Task`,loadedText:`registered`,notLoadedText:`missing`,install:Q(Ce),uninstall:we,stop:Te,restart:Ee,isLoaded:De,readCommand:_e,readRuntime:Oe}};function Ae(e){return Object.hasOwn($,e)}function je(){if(Ae(process.platform))return $[process.platform];throw Error(`Gateway service install not supported on ${process.platform}`)}export{V as a,F as c,H as i,P as l,je as n,U as o,q as r,ue as s,ke as t,j as u};
33
+ //# sourceMappingURL=service-BtB9epJk.js.map