remoteclaw 0.1.0-next.2abd2fa → 0.1.0-next.2e9a6cd

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 (1052) hide show
  1. package/README.md +9 -7
  2. package/dist/accounts-A8jZK_v9.js +272 -0
  3. package/dist/accounts-BegPt5VR.js +36 -0
  4. package/dist/accounts-BmiimLpP.js +47 -0
  5. package/dist/accounts-Bomfgw0M.js +32 -0
  6. package/dist/accounts-Bpk-loA6.js +47 -0
  7. package/dist/accounts-DAdUdbPk.js +36 -0
  8. package/dist/accounts-WYyfAiie.js +270 -0
  9. package/dist/ack-reactions-CMDRj7fJ.js +446 -0
  10. package/dist/ack-reactions-D7VScSny.js +446 -0
  11. package/dist/acp-cli-BpMS0SsZ.js +1323 -0
  12. package/dist/acp-cli-DkXTlCpF.js +1317 -0
  13. package/dist/active-listener--FT8ewxl.js +37 -0
  14. package/dist/active-listener-C1StcdIA.js +37 -0
  15. package/dist/agent-C76P7tEr.js +703 -0
  16. package/dist/agent-helpers-CK3Obbsi.js +400 -0
  17. package/dist/agent-helpers-KHUla1K7.js +400 -0
  18. package/dist/agent-scope-BrDeaWWf.js +116 -0
  19. package/dist/agent-scope-DxqtYjuJ.js +114 -0
  20. package/dist/agent-ue8p9AIv.js +704 -0
  21. package/dist/agents--24oKN80.js +788 -0
  22. package/dist/agents.config-CWAUoPzG.js +116 -0
  23. package/dist/agents.config-Ck45E_ce.js +116 -0
  24. package/dist/audio-B85HoT7E.js +43 -0
  25. package/dist/audio-BbCUzndz.js +43 -0
  26. package/dist/audio-preflight-B3f0x3zu.js +69 -0
  27. package/dist/audio-preflight-Dv76vFTu.js +64 -0
  28. package/dist/audit-BAbBf2MU.js +3149 -0
  29. package/dist/audit-g55SYz1m.js +3149 -0
  30. package/dist/auth-Bq44qPUd.js +448 -0
  31. package/dist/auth-CVfoI--S.js +281 -0
  32. package/dist/auth-DTWpZJ1a.js +279 -0
  33. package/dist/auth-VItd2pwK.js +448 -0
  34. package/dist/banner-CyPQJybO.js +294 -0
  35. package/dist/binaries-DbgLoSWv.js +13 -0
  36. package/dist/bindings-6KojDoIi.js +69 -0
  37. package/dist/bindings-B6icMMUx.js +69 -0
  38. package/dist/bonjour-discovery-CQU4QbLK.js +378 -0
  39. package/dist/bonjour-discovery-D8aOnk3M.js +378 -0
  40. package/dist/boot/handler.js +42 -69
  41. package/dist/browser-cli-BH41geGr.js +1693 -0
  42. package/dist/browser-cli-u4nrjp1h.js +1688 -0
  43. package/dist/build-info.json +3 -3
  44. package/dist/call-CMDcRlGW.js +2826 -0
  45. package/dist/call-D5YKTYSM.js +2827 -0
  46. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  47. package/dist/catalog-CUY_iTaG.js +185 -0
  48. package/dist/catalog-p6W09S2j.js +185 -0
  49. package/dist/channel-account-context-CA2m93Kt.js +550 -0
  50. package/dist/channel-account-context-Las-t6RP.js +550 -0
  51. package/dist/channel-activity-BD603ehL.js +94 -0
  52. package/dist/channel-activity-CwiF_QMr.js +94 -0
  53. package/dist/channel-activity-daCpxHdT.js +292 -0
  54. package/dist/channel-options-CAlClffy.js +33 -0
  55. package/dist/channel-options-Hl_ep3UG.js +32 -0
  56. package/dist/channel-selection-CHJ7TumC.js +51 -0
  57. package/dist/channel-selection-DR7eW8UG.js +51 -0
  58. package/dist/channel-web-B79j9fSC.js +2134 -0
  59. package/dist/channel-web-DHTTcipm.js +2136 -0
  60. package/dist/channels-cli-DeZ95hcx.js +1427 -0
  61. package/dist/channels-cli-eUCi6jXk.js +1422 -0
  62. package/dist/channels-status-issues-By77REbh.js +18 -0
  63. package/dist/channels-status-issues-DXyOO-KH.js +18 -0
  64. package/dist/chat-envelope-BEDutlnF.js +248 -0
  65. package/dist/chat-envelope-vJJUdDE7.js +248 -0
  66. package/dist/chrome-BuAi16Rq.js +1732 -0
  67. package/dist/chrome-IR-2ukph.js +1733 -0
  68. package/dist/chunk-C1mQSjas.js +341 -0
  69. package/dist/chunk-D7VX4pmT.js +341 -0
  70. package/dist/clack-prompter-BX8SVxtP.js +122 -0
  71. package/dist/clack-prompter-D6HhVlZW.js +121 -0
  72. package/dist/cleanup-utils-DNd0wdKZ.js +94 -0
  73. package/dist/cli/daemon-cli.js +1 -1
  74. package/dist/cli-CK4Y43rx.js +131 -0
  75. package/dist/cli-Cha5Uk29.js +126 -0
  76. package/dist/clipboard-Cbj3McM_.js +31 -0
  77. package/dist/clipboard-Ne8gaWea.js +31 -0
  78. package/dist/command-format-D0vKipG9.js +32 -0
  79. package/dist/command-format-KkslAzwV.js +18 -0
  80. package/dist/command-logger/handler.js +3 -3
  81. package/dist/command-registry-07zlvSN8.js +215 -0
  82. package/dist/commands-DChC3pIF.js +41 -0
  83. package/dist/commands-DFHMoQgH.js +41 -0
  84. package/dist/commands-registry-BN04GIlJ.js +891 -0
  85. package/dist/commands-registry-DbS9NHeX.js +892 -0
  86. package/dist/common-DHHHAcmR.js +156 -0
  87. package/dist/common-De-Lakuh.js +156 -0
  88. package/dist/completion-cli--Jcg794c.js +452 -0
  89. package/dist/completion-cli-B8n7umme.js +452 -0
  90. package/dist/config-BupC6eiJ.js +4223 -0
  91. package/dist/config-CHDaGquZ.js +4225 -0
  92. package/dist/config-cli-Cu79BThx.js +242 -0
  93. package/dist/config-cli-DrJtiyW-.js +247 -0
  94. package/dist/config-guard-BLsqW1qt.js +98 -0
  95. package/dist/config-guard-NQ7jaYM4.js +75 -0
  96. package/dist/config-validation-BLllMW0t.js +18 -0
  97. package/dist/config-validation-DT29VEco.js +18 -0
  98. package/dist/configure-B25UEQnQ.js +889 -0
  99. package/dist/configure-CqMUE4Zw.js +891 -0
  100. package/dist/constants-BbAEYzFC.js +70 -0
  101. package/dist/constants-tLOgmZZ1.js +70 -0
  102. package/dist/control-auth-BFbDXKLK.js +397 -0
  103. package/dist/control-auth-BiiO-FNy.js +397 -0
  104. package/dist/control-ui/assets/index-CuY3pfh1.js +7716 -0
  105. package/dist/control-ui/assets/index-CuY3pfh1.js.map +1 -0
  106. package/dist/control-ui/assets/index-D_fjkN3g.css +1 -0
  107. package/dist/control-ui/index.html +2 -2
  108. package/dist/control-ui-assets-BlpSXjlT.js +186 -0
  109. package/dist/control-ui-assets-eJU2-yvs.js +186 -0
  110. package/dist/conversation-label-Bn5j3lUT.js +36 -0
  111. package/dist/conversation-label-L0QTtKji.js +36 -0
  112. package/dist/cron-cli-BV1o0UgM.js +491 -0
  113. package/dist/cron-cli-C8j-P8GF.js +496 -0
  114. package/dist/daemon-cli-BDvU0Xv6.js +1199 -0
  115. package/dist/daemon-cli-CoNl2Ugf.js +1197 -0
  116. package/dist/daemon-cli.js +53 -97
  117. package/dist/daemon-install-BMEnzWwq.js +60 -0
  118. package/dist/daemon-install-BkUJbdPC.js +55 -0
  119. package/dist/daemon-install-helpers-B9kMxC1v.js +462 -0
  120. package/dist/daemon-install-helpers-DoYR5z4H.js +462 -0
  121. package/dist/deliver-D8P9_nk-.js +481 -0
  122. package/dist/deliver-F9ed3dhp.js +481 -0
  123. package/dist/delivery-queue-B6TuHppj.js +244 -0
  124. package/dist/delivery-queue-BZc3AiGu.js +244 -0
  125. package/dist/devices-cli-DZgxMNLD.js +322 -0
  126. package/dist/devices-cli-DlG9ehK0.js +317 -0
  127. package/dist/diagnostics-CK2HGAFw.js +46 -0
  128. package/dist/diagnostics-G-C-IuxO.js +46 -0
  129. package/dist/directory-cli-CY6tHRIZ.js +218 -0
  130. package/dist/directory-cli-HyvRJ1Ua.js +223 -0
  131. package/dist/dm-policy-shared-1FdjwGtJ.js +22 -0
  132. package/dist/dm-policy-shared-CT3er5HI.js +22 -0
  133. package/dist/dns-cli-Cu-wYvll.js +203 -0
  134. package/dist/dns-cli-DQdnNJh4.js +198 -0
  135. package/dist/dock-D038fZZl.js +929 -0
  136. package/dist/dock-D5pZ3a44.js +928 -0
  137. package/dist/doctor-completion-BrHnayfU.js +92 -0
  138. package/dist/doctor-completion-CoZP2KiR.js +92 -0
  139. package/dist/doctor-config-flow-DJ1nWCTZ.js +1935 -0
  140. package/dist/doctor-config-flow-DYhXUwEq.js +1934 -0
  141. package/dist/enable-B5dIjgnm.js +59 -0
  142. package/dist/enable-FmiEY4ng.js +59 -0
  143. package/dist/entry.js +14 -16
  144. package/dist/env-DUb5GiQe.js +60 -0
  145. package/dist/env-vars-C8WMB8Ix.js +93 -0
  146. package/dist/errors-CdmXrBic.js +35 -0
  147. package/dist/errors-DdLfwEVi.js +35 -0
  148. package/dist/exec-BhkXWg7V.js +164 -0
  149. package/dist/exec-ClUTXFZ9.js +164 -0
  150. package/dist/export-html/template.css +0 -36
  151. package/dist/export-html/template.js +1 -32
  152. package/dist/extensionAPI.js +1015 -142
  153. package/dist/fetch-CCuD0LYV.js +67 -0
  154. package/dist/fetch-JBWLkOpL.js +67 -0
  155. package/dist/fetch-oku6r8tJ.js +67 -0
  156. package/dist/file-lock-6NXMPZTT.js +107 -0
  157. package/dist/file-lock-Ks-RPU6W.js +107 -0
  158. package/dist/fs-safe-93aDW4mH.js +98 -0
  159. package/dist/fs-safe-ACrBwOF5.js +88 -0
  160. package/dist/gateway-cli-CJs4Mxlv.js +23730 -0
  161. package/dist/gateway-cli-gUVR20v7.js +23725 -0
  162. package/dist/gateway-rpc-CSdrtPzg.js +28 -0
  163. package/dist/gateway-rpc-PNA_wUoe.js +28 -0
  164. package/dist/gmail-setup-utils-DNZEf6T0.js +422 -0
  165. package/dist/gmail-setup-utils-KPAKWwGy.js +423 -0
  166. package/dist/health-BCidscV-.js +1417 -0
  167. package/dist/health-Cw2dr19V.js +1414 -0
  168. package/dist/health-format-DOhfU1rY.js +28 -0
  169. package/dist/heartbeat-visibility-C5Vxudi9.js +125 -0
  170. package/dist/heartbeat-visibility-DHeZ-ko1.js +125 -0
  171. package/dist/help-format-Ch0EWh7N.js +17 -0
  172. package/dist/helpers-B4NWktS8.js +10 -0
  173. package/dist/hook-runner-global-Vj-YQxeR.js +527 -0
  174. package/dist/hooks-cli---vy0V0j.js +1218 -0
  175. package/dist/hooks-cli-CX-JUHdJ.js +1223 -0
  176. package/dist/image-ops-DMl7j7f4.js +354 -0
  177. package/dist/image-ops-DpkTOzhI.js +354 -0
  178. package/dist/import-DIjlFm_Y.js +493 -0
  179. package/dist/import-DdQvVR-_.js +495 -0
  180. package/dist/inbound-context-CmmmT8IP.js +68 -0
  181. package/dist/inbound-context-oxIWzEgc.js +68 -0
  182. package/dist/inbound-path-policy-BdmTOUka.js +90 -0
  183. package/dist/inbound-path-policy-DYTLjca8.js +90 -0
  184. package/dist/index.js +106 -105
  185. package/dist/inspect-C9d1V-lI.js +559 -0
  186. package/dist/inspect-rHjRqr3W.js +559 -0
  187. package/dist/installs-QUjSL2ZA.js +325 -0
  188. package/dist/installs-vT5wnxC4.js +325 -0
  189. package/dist/ipv4-DdcyK1aU.js +46 -0
  190. package/dist/ipv4-OHvujh00.js +46 -0
  191. package/dist/ir-CnMQRFBu.js +940 -0
  192. package/dist/json-files-BiA_B-xm.js +46 -0
  193. package/dist/links-CIHbVNO_.js +15 -0
  194. package/dist/loader-CYigLbch.js +22404 -0
  195. package/dist/loader-ElWX62xE.js +22401 -0
  196. package/dist/local-roots-B0QcJDJI.js +313 -0
  197. package/dist/local-roots-BfXsZRkm.js +314 -0
  198. package/dist/logger-BtwpYD7c.js +49 -0
  199. package/dist/logging-CLc3Umm0.js +20 -0
  200. package/dist/login-C8jHYLxN.js +61 -0
  201. package/dist/login-D__FYZX9.js +62 -0
  202. package/dist/login-qr-C0Gd6ybl.js +323 -0
  203. package/dist/login-qr-D7dw54Yp.js +328 -0
  204. package/dist/logs-cli-CFOVARdJ.js +234 -0
  205. package/dist/logs-cli-DtAR__VH.js +239 -0
  206. package/dist/markdown-tables-ChBqQA_Q.js +29 -0
  207. package/dist/markdown-tables-xMuH3QnS.js +29 -0
  208. package/dist/media-CmiNXiOZ.js +10453 -0
  209. package/dist/media-DYopaoc0.js +940 -0
  210. package/dist/message-action-names-CACBi-HB.js +2521 -0
  211. package/dist/message-action-names-CFwlz01T.js +2521 -0
  212. package/dist/message-channel-DF4I2vOK.js +91 -0
  213. package/dist/net-COL170MG.js +225 -0
  214. package/dist/net-QZ8IHNXc.js +225 -0
  215. package/dist/node-cli-CW8jOcHO.js +24 -0
  216. package/dist/nodes-cli-B4lvU9N5.js +1349 -0
  217. package/dist/nodes-cli-B8iTBsI6.js +1344 -0
  218. package/dist/nodes-screen-CZCXHrWB.js +250 -0
  219. package/dist/nodes-screen-C_K1vcS5.js +250 -0
  220. package/dist/note-BVerR3D5.js +92 -0
  221. package/dist/note-Dk8-EaJg.js +92 -0
  222. package/dist/npm-registry-spec-Dma0KHft.js +786 -0
  223. package/dist/npm-registry-spec-vYkxZb6u.js +786 -0
  224. package/dist/npm-resolution-CcZYnzrL.js +86 -0
  225. package/dist/npm-resolution-DsATEEGx.js +86 -0
  226. package/dist/onboard-Csm4bDd_.js +438 -0
  227. package/dist/onboard-D1b535pC.js +436 -0
  228. package/dist/onboard-channels-5EIXyDZh.js +2547 -0
  229. package/dist/onboard-channels-bedB47Hs.js +2548 -0
  230. package/dist/onboard-config-CcPV3Cqz.js +39 -0
  231. package/dist/onboard-config-DcTaxmuf.js +39 -0
  232. package/dist/onboard-helpers-BHNXyhA4.js +364 -0
  233. package/dist/onboard-helpers-eTUU00t8.js +363 -0
  234. package/dist/onboard-remote-DwDKQk1K.js +127 -0
  235. package/dist/onboard-remote-TPbiye5m.js +127 -0
  236. package/dist/onboarding-D0YGZ_Ux.js +588 -0
  237. package/dist/onboarding-DCfmKzl2.js +586 -0
  238. package/dist/onboarding.finalize-BhpsVwME.js +399 -0
  239. package/dist/onboarding.finalize-CY8vgmi9.js +402 -0
  240. package/dist/onboarding.gateway-config-C_eqpJ7D.js +192 -0
  241. package/dist/onboarding.gateway-config-DR1ey6tU.js +199 -0
  242. package/dist/outbound-Be4BgVqF.js +220 -0
  243. package/dist/outbound-CXJLn8kn.js +221 -0
  244. package/dist/outbound-attachment-CbNLn0lk.js +18 -0
  245. package/dist/outbound-attachment-DNCMF74c.js +18 -0
  246. package/dist/outbound-attachment-DaStRTGv.js +18 -0
  247. package/dist/pairing-cli-CxGDUsLT.js +128 -0
  248. package/dist/pairing-cli-D83T3PG9.js +123 -0
  249. package/dist/pairing-labels-6f8FqSS5.js +9 -0
  250. package/dist/pairing-labels-CI5j-OUT.js +9 -0
  251. package/dist/pairing-store-DnTHRcnO.js +459 -0
  252. package/dist/pairing-store-ONzqxcNb.js +460 -0
  253. package/dist/path-env-D7VB7sOO.js +89 -0
  254. package/dist/path-env-DFiYvvI-.js +89 -0
  255. package/dist/path-safety-BshBsw4P.js +14 -0
  256. package/dist/path-safety-CZbhQciI.js +14 -0
  257. package/dist/plugin-auto-enable-BnCQKkIK.js +302 -0
  258. package/dist/plugin-auto-enable-CFRs-pcA.js +301 -0
  259. package/dist/plugin-registry-CV5pfXOU.js +33 -0
  260. package/dist/plugin-registry-CmG34W0u.js +33 -0
  261. package/dist/plugin-sdk/agents/agent-helpers.d.ts +0 -1
  262. package/dist/plugin-sdk/agents/agent-scope.d.ts +10 -0
  263. package/dist/plugin-sdk/agents/agent-types.d.ts +1 -6
  264. package/dist/plugin-sdk/agents/agent-utils.d.ts +0 -14
  265. package/dist/plugin-sdk/agents/provider-utils.d.ts +0 -1
  266. package/dist/plugin-sdk/agents/subagent-spawn.d.ts +0 -1
  267. package/dist/plugin-sdk/agents/tools/sessions-helpers.d.ts +0 -1
  268. package/dist/plugin-sdk/auth/constants.d.ts +16 -0
  269. package/dist/plugin-sdk/auth/display.d.ts +7 -0
  270. package/dist/plugin-sdk/auth/doctor.d.ts +8 -0
  271. package/dist/plugin-sdk/auth/env-injection.d.ts +41 -0
  272. package/dist/plugin-sdk/auth/index.d.ts +8 -0
  273. package/dist/plugin-sdk/auth/oauth.d.ts +14 -0
  274. package/dist/plugin-sdk/auth/provider-auth.d.ts +40 -0
  275. package/dist/plugin-sdk/auth/session-override.d.ts +18 -0
  276. package/dist/plugin-sdk/auto-reply/reply/agent-runner-execution.d.ts +0 -1
  277. package/dist/plugin-sdk/auto-reply/reply/agent-runner-utils.d.ts +0 -2
  278. package/dist/plugin-sdk/auto-reply/reply/commands-status.d.ts +1 -4
  279. package/dist/plugin-sdk/auto-reply/reply/commands-types.d.ts +1 -4
  280. package/dist/plugin-sdk/auto-reply/reply/directive-handling.levels.d.ts +1 -7
  281. package/dist/plugin-sdk/auto-reply/reply/directive-handling.params.d.ts +1 -4
  282. package/dist/plugin-sdk/auto-reply/reply/directive-handling.parse.d.ts +1 -7
  283. package/dist/plugin-sdk/auto-reply/reply/directive-handling.shared.d.ts +1 -4
  284. package/dist/plugin-sdk/auto-reply/reply/directives.d.ts +3 -15
  285. package/dist/plugin-sdk/auto-reply/reply/get-reply-directives.d.ts +1 -5
  286. package/dist/plugin-sdk/auto-reply/reply/get-reply-inline-actions.d.ts +1 -5
  287. package/dist/plugin-sdk/auto-reply/reply/get-reply-run.d.ts +1 -5
  288. package/dist/plugin-sdk/auto-reply/reply/queue/types.d.ts +1 -3
  289. package/dist/plugin-sdk/auto-reply/reply/response-prefix-template.d.ts +4 -6
  290. package/dist/plugin-sdk/auto-reply/reply/session-run-accounting.d.ts +0 -7
  291. package/dist/plugin-sdk/auto-reply/reply/session-updates.d.ts +0 -10
  292. package/dist/plugin-sdk/auto-reply/reply.d.ts +1 -1
  293. package/dist/plugin-sdk/auto-reply/status.d.ts +2 -6
  294. package/dist/plugin-sdk/auto-reply/thinking.d.ts +0 -11
  295. package/dist/plugin-sdk/auto-reply/types.d.ts +1 -2
  296. package/dist/plugin-sdk/commands/agent/session.d.ts +1 -2
  297. package/dist/plugin-sdk/config/defaults.d.ts +0 -1
  298. package/dist/plugin-sdk/config/sessions/types.d.ts +0 -8
  299. package/dist/plugin-sdk/config/types.agent-defaults.d.ts +28 -112
  300. package/dist/plugin-sdk/config/types.agents.d.ts +8 -0
  301. package/dist/plugin-sdk/config/types.messages.d.ts +1 -2
  302. package/dist/plugin-sdk/config/types.tools.d.ts +1 -1
  303. package/dist/plugin-sdk/config/zod-schema.agent-defaults.d.ts +9 -66
  304. package/dist/plugin-sdk/config/zod-schema.agent-runtime.d.ts +5 -13
  305. package/dist/plugin-sdk/config/zod-schema.agents.d.ts +12 -76
  306. package/dist/plugin-sdk/config/zod-schema.d.ts +12 -76
  307. package/dist/plugin-sdk/daemon/constants.d.ts +2 -2
  308. package/dist/plugin-sdk/gateway/protocol/index.d.ts +1 -3
  309. package/dist/plugin-sdk/gateway/protocol/schema/sessions.d.ts +0 -2
  310. package/dist/plugin-sdk/gateway/session-utils.types.d.ts +0 -2
  311. package/dist/plugin-sdk/index.js +108 -134
  312. package/dist/plugin-sdk/middleware/auth-key-retry.d.ts +32 -0
  313. package/dist/plugin-sdk/middleware/channel-bridge.d.ts +4 -0
  314. package/dist/plugin-sdk/middleware/error-classifier.d.ts +5 -0
  315. package/dist/plugin-sdk/middleware/media-resolver.d.ts +12 -0
  316. package/dist/plugin-sdk/middleware/runtime-factory.d.ts +42 -0
  317. package/dist/plugin-sdk/middleware/types.d.ts +33 -1
  318. package/dist/plugin-sdk/plugins/types.d.ts +1 -1
  319. package/dist/plugin-sdk/terminal/palette.d.ts +2 -2
  320. package/dist/plugins-B4waLB_f.js +453 -0
  321. package/dist/plugins-D6-JJ1il.js +455 -0
  322. package/dist/plugins-cli-DG2zHgdP.js +799 -0
  323. package/dist/plugins-cli-DZvQzkWd.js +794 -0
  324. package/dist/ports-BcTKFlWl.js +96 -0
  325. package/dist/ports-DAc2AlZE.js +316 -0
  326. package/dist/ports-HiuYk3bt.js +96 -0
  327. package/dist/ports-dEePqmCq.js +370 -0
  328. package/dist/program-CX-EtQ9W.js +245 -0
  329. package/dist/program-context-R3wsjl2f.js +474 -0
  330. package/dist/progress-DQ1drugY.js +124 -0
  331. package/dist/prompt-edYTUtju.js +21 -0
  332. package/dist/prompt-select-styled-BzL7v1zQ.js +1647 -0
  333. package/dist/prompt-select-styled-g5q4srtu.js +1650 -0
  334. package/dist/prompt-style-CYEpbwXH.js +9 -0
  335. package/dist/provider-dispatcher-D7qFGoUR.js +660 -0
  336. package/dist/provider-dispatcher-dB_rm6tV.js +659 -0
  337. package/dist/push-apns-DQwR-i4_.js +713 -0
  338. package/dist/push-apns-Dj5RApCY.js +711 -0
  339. package/dist/pw-ai-DOQMJFB-.js +1911 -0
  340. package/dist/pw-ai-oqtYDmjQ.js +1907 -0
  341. package/dist/qr-cli-CBGm_Cik.js +353 -0
  342. package/dist/qr-cli-D2jZPdW9.js +348 -0
  343. package/dist/redact-gXuh8MFk.js +191 -0
  344. package/dist/redact-snapshot-B-2V56Yb.js +2016 -0
  345. package/dist/redact-snapshot-CD36XSYE.js +2016 -0
  346. package/dist/register.agent-DLSuiqWE.js +287 -0
  347. package/dist/register.agent-DcvEt3hG.js +1044 -0
  348. package/dist/register.configure-3edoYZai.js +131 -0
  349. package/dist/register.configure-CyOJCmnY.js +125 -0
  350. package/dist/register.import-Cku0T-PA.js +31 -0
  351. package/dist/register.import-Dr8TiUVx.js +28 -0
  352. package/dist/register.maintenance-5aaPQbJk.js +495 -0
  353. package/dist/register.maintenance-DPSswZDJ.js +498 -0
  354. package/dist/register.message-BaSVFv92.js +682 -0
  355. package/dist/register.message-FEI0RiNN.js +687 -0
  356. package/dist/register.onboard-CO1UZL-9.js +258 -0
  357. package/dist/register.onboard-DuLKxjXl.js +263 -0
  358. package/dist/register.setup-CFYYd_Ev.js +115 -0
  359. package/dist/register.setup-P0UHDBMS.js +110 -0
  360. package/dist/register.status-health-sessions-D_3vm2yw.js +424 -0
  361. package/dist/register.status-health-sessions-z9x79dmg.js +665 -0
  362. package/dist/register.subclis-B-d970d6.js +267 -0
  363. package/dist/replies-BvarRpHb.js +136 -0
  364. package/dist/replies-CSzm5168.js +136 -0
  365. package/dist/reply-CTgksTO1.js +13695 -0
  366. package/dist/reply-CUyafs4J.js +13692 -0
  367. package/dist/reply-directives-Caq4zVTg.js +182 -0
  368. package/dist/reply-directives-D91fapDF.js +182 -0
  369. package/dist/reply-payloads-te0YnESs.js +527 -0
  370. package/dist/reply-prefix-Bv8Mv9q8.js +37 -0
  371. package/dist/reply-prefix-Rk_UEaJa.js +37 -0
  372. package/dist/resolve-route-BPa6q23t.js +249 -0
  373. package/dist/resolve-route-CN9BEALz.js +249 -0
  374. package/dist/response-prefix-template-D-ptXREi.js +134 -0
  375. package/dist/response-prefix-template-Dckjdftg.js +134 -0
  376. package/dist/retry-BcZuGfnV.js +77 -0
  377. package/dist/retry-BzWBtFpP.js +77 -0
  378. package/dist/run-main-BugUkGES.js +303 -0
  379. package/dist/runner-CVMXkHe9.js +2295 -0
  380. package/dist/runner-DOWTBU0-.js +2295 -0
  381. package/dist/runtime-guard-CXt4yzo-.js +60 -0
  382. package/dist/secure-random-CBwDBdj1.js +44 -0
  383. package/dist/security-cli-BQzdzJUp.js +479 -0
  384. package/dist/security-cli-D2d8RvsT.js +485 -0
  385. package/dist/send-B3G3I3II.js +349 -0
  386. package/dist/send-B6IB6ELR.js +547 -0
  387. package/dist/send-BT8XEvZB.js +332 -0
  388. package/dist/send-BTupAHVX.js +2245 -0
  389. package/dist/send-BZCfto_I.js +1174 -0
  390. package/dist/send-C5EDjThR.js +492 -0
  391. package/dist/send-CBM54hgN.js +349 -0
  392. package/dist/send-CPBd6ItT.js +29 -0
  393. package/dist/send-CzYm7ULP.js +2245 -0
  394. package/dist/send-D2m_x8xM.js +374 -0
  395. package/dist/send-DmEBPE2S.js +1779 -0
  396. package/dist/send-Dt4iCx61.js +426 -0
  397. package/dist/send-MWjpLHEV.js +11 -0
  398. package/dist/send-qpwqt34s.js +547 -0
  399. package/dist/send-rW25uKNz.js +1776 -0
  400. package/dist/send-uqa6CNuP.js +492 -0
  401. package/dist/server-BhmYVCED.js +201 -0
  402. package/dist/server-DaUw1o2B.js +206 -0
  403. package/dist/server-lifecycle-BeZsBQwF.js +2437 -0
  404. package/dist/server-lifecycle-C2F1_TE2.js +2437 -0
  405. package/dist/server-node-events-DoRFbKCT.js +390 -0
  406. package/dist/server-node-events-jbbbt-4R.js +395 -0
  407. package/dist/service-BDt-zUvV.js +670 -0
  408. package/dist/service-Os7W1F2S.js +670 -0
  409. package/dist/session-B9KGKVrY.js +170 -0
  410. package/dist/session-DzAupDyj.js +170 -0
  411. package/dist/session-cost-usage-BYCI739a.js +627 -0
  412. package/dist/session-cost-usage-DGsPcuMj.js +627 -0
  413. package/dist/session-dirs-BIg5RHAh.js +947 -0
  414. package/dist/session-dirs-DwDxjK1p.js +947 -0
  415. package/dist/session-utils-BgWDCbyx.js +622 -0
  416. package/dist/session-utils-CxxOeC1M.js +622 -0
  417. package/dist/sessions-Bwu0l_CG.js +2569 -0
  418. package/dist/sessions-CiuFFCnt.js +247 -0
  419. package/dist/shell-env-CsV_IkJj.js +163 -0
  420. package/dist/shell-env-hZW9j-Uc.js +163 -0
  421. package/dist/ssrf-B-rF_tZB.js +183 -0
  422. package/dist/ssrf-D6fl_7ww.js +183 -0
  423. package/dist/status-BOFm7iyj.js +2065 -0
  424. package/dist/status-RI2y_M21.js +2061 -0
  425. package/dist/status.update-DbO7izip.js +79 -0
  426. package/dist/status.update-wXyvcztI.js +79 -0
  427. package/dist/store-BLGrRL_E.js +64 -0
  428. package/dist/store-BYhcsOLr.js +64 -0
  429. package/dist/store-Dv76bGHg.js +2571 -0
  430. package/dist/store-Dw93tSB-.js +53 -0
  431. package/dist/subagent-registry-DWL-tayF.js +4856 -0
  432. package/dist/subagent-registry-HjR1tO3-.js +4854 -0
  433. package/dist/subsystem-BCkt9Ocb.js +1079 -0
  434. package/dist/subsystem-BgxIzx7w.js +1137 -0
  435. package/dist/system-cli-DtrDDmCt.js +71 -0
  436. package/dist/system-cli-xDr_Yyaa.js +76 -0
  437. package/dist/systemd-BlbIQ1PV.js +547 -0
  438. package/dist/systemd-DzXePo7r.js +547 -0
  439. package/dist/systemd-linger-mLbBF4pa.js +75 -0
  440. package/dist/systemd-linger-qlGGW2JB.js +75 -0
  441. package/dist/table-V_9n7CjP.js +279 -0
  442. package/dist/tables-Cy3gObW7.js +55 -0
  443. package/dist/tables-DAuk-Y6F.js +55 -0
  444. package/dist/tables-DRh09aPZ.js +55 -0
  445. package/dist/tailnet-BoTa0e2q.js +40 -0
  446. package/dist/tailnet-Cy0Q27lj.js +40 -0
  447. package/dist/tailscale-CiWkh0vS.js +230 -0
  448. package/dist/tailscale-Driw3j8E.js +230 -0
  449. package/dist/targets-3hewwPvM.js +120 -0
  450. package/dist/targets-Bkw_co-B.js +220 -0
  451. package/dist/targets-C1Tt0ZWd.js +2406 -0
  452. package/dist/targets-CsrqF2M4.js +650 -0
  453. package/dist/targets-DKriCISG.js +53 -0
  454. package/dist/targets-DTM2OPnS.js +650 -0
  455. package/dist/targets-DhhaK2xG.js +53 -0
  456. package/dist/targets-tDrl_ioQ.js +46 -0
  457. package/dist/targets-yq1kGK1_.js +2407 -0
  458. package/dist/thinking-XA5P_zFw.js +88 -0
  459. package/dist/thinking-l-rrvZwu.js +88 -0
  460. package/dist/tokens-7ZtWRjA3.js +21 -0
  461. package/dist/tool-display-AxpSXZVq.js +785 -0
  462. package/dist/tool-display-D6GD-41Y.js +785 -0
  463. package/dist/tool-images-D16vIWPg.js +263 -0
  464. package/dist/tool-images-IVIZ29ID.js +263 -0
  465. package/dist/trash--8b4GDyV.js +125 -0
  466. package/dist/trash-ivbG2QWV.js +125 -0
  467. package/dist/tui-Cbe1EW-B.js +3319 -0
  468. package/dist/tui-Dj3XrTCV.js +3319 -0
  469. package/dist/tui-cli-EGqEcdfE.js +64 -0
  470. package/dist/tui-cli-KKmqnNs2.js +59 -0
  471. package/dist/update-DruVguh4.js +349 -0
  472. package/dist/update-cli-C5tdQeGG.js +1371 -0
  473. package/dist/update-cli-Canq11sh.js +1374 -0
  474. package/dist/update-y8nz-3OC.js +349 -0
  475. package/dist/usage-CAuX4vsd.js +5384 -0
  476. package/dist/utils-C5daYcFn.js +631 -0
  477. package/dist/web-B9gR_cGR.js +3071 -0
  478. package/dist/web-DZ8ahrhK.js +77 -0
  479. package/dist/web-DkYPsnyd.js +71 -0
  480. package/dist/webhooks-cli-DFqGwW1f.js +329 -0
  481. package/dist/webhooks-cli-y-E-q0Xo.js +334 -0
  482. package/dist/whatsapp-actions-BXIe-Uei.js +123 -0
  483. package/dist/whatsapp-actions-BictxOCB.js +129 -0
  484. package/dist/widearea-dns-fHQt5-Q3.js +127 -0
  485. package/dist/workspace-DvbSDgO_.js +449 -0
  486. package/dist/workspace-zLfKNRwR.js +447 -0
  487. package/dist/zod-schema-B9RGngMW.js +2696 -0
  488. package/dist/zod-schema-D3hQ5SKe.js +2696 -0
  489. package/extensions/matrix/src/matrix/monitor/replies.ts +0 -24
  490. package/extensions/mattermost/src/mattermost/monitor-helpers.ts +0 -1
  491. package/package.json +3 -3
  492. package/dist/accounts-BFy_Z3od.js +0 -272
  493. package/dist/accounts-BTXSfPWi.js +0 -270
  494. package/dist/accounts-BxGS70Do.js +0 -36
  495. package/dist/accounts-CNY1TGj1.js +0 -47
  496. package/dist/accounts-DBohBlww.js +0 -32
  497. package/dist/accounts-DqRQ75w3.js +0 -36
  498. package/dist/accounts-iODF3SK2.js +0 -47
  499. package/dist/ack-reactions-B11TAC2D.js +0 -446
  500. package/dist/ack-reactions-BWVjL4H6.js +0 -446
  501. package/dist/acp-cli-CA1xMmVo.js +0 -1320
  502. package/dist/acp-cli-CGo6fJVZ.js +0 -1326
  503. package/dist/active-listener-VzhWW8W6.js +0 -37
  504. package/dist/active-listener-z0qVEcom.js +0 -37
  505. package/dist/agent-CTizRPIJ.js +0 -732
  506. package/dist/agent-D2RVoS5g.js +0 -731
  507. package/dist/agent-helpers-B6VfZ9_u.js +0 -606
  508. package/dist/agent-helpers-CTx5KKJu.js +0 -606
  509. package/dist/agent-scope-BGYzhtWQ.js +0 -121
  510. package/dist/agent-scope-C50VuLKh.js +0 -119
  511. package/dist/agents-BuYn-obw.js +0 -788
  512. package/dist/agents.config-BSTxuTVd.js +0 -116
  513. package/dist/agents.config-p3V3b9u6.js +0 -116
  514. package/dist/audio-DPOuhNq7.js +0 -43
  515. package/dist/audio-VBcVDa08.js +0 -43
  516. package/dist/audio-preflight-BwmCYeuM.js +0 -64
  517. package/dist/audio-preflight-co8gjlPX.js +0 -69
  518. package/dist/audit-oH4urD3G.js +0 -3138
  519. package/dist/audit-qgtCT3ik.js +0 -3138
  520. package/dist/auth-CAczFgAO.js +0 -448
  521. package/dist/auth-Deh9i9Eg.js +0 -448
  522. package/dist/auth-profiles-BquJGKLC.js +0 -279
  523. package/dist/auth-profiles-D8vKiBPq.js +0 -281
  524. package/dist/banner-Cf978khN.js +0 -294
  525. package/dist/binaries-DXW6oATV.js +0 -13
  526. package/dist/bindings-CRU_udk8.js +0 -69
  527. package/dist/bindings-DQZAu8Wv.js +0 -69
  528. package/dist/bonjour-discovery-DdAk1VyO.js +0 -378
  529. package/dist/bonjour-discovery-DuhiIZZx.js +0 -378
  530. package/dist/browser-cli-CZC4h5V4.js +0 -1687
  531. package/dist/browser-cli-DAgi_aQk.js +0 -1692
  532. package/dist/call-BbwtB9Y-.js +0 -2828
  533. package/dist/call-PivL7Uex.js +0 -2829
  534. package/dist/catalog-BqO6yem_.js +0 -185
  535. package/dist/catalog-DFmaYwfk.js +0 -185
  536. package/dist/channel-account-context-CvIDAtHS.js +0 -550
  537. package/dist/channel-account-context-q-o0pG1A.js +0 -550
  538. package/dist/channel-activity-BaCNOZpP.js +0 -94
  539. package/dist/channel-activity-C-G4n9BK.js +0 -292
  540. package/dist/channel-activity-DTKGf3j5.js +0 -94
  541. package/dist/channel-options-Cyappik_.js +0 -32
  542. package/dist/channel-options-DFnypY5S.js +0 -33
  543. package/dist/channel-selection-BGl53D5K.js +0 -51
  544. package/dist/channel-selection-NNPbxnyZ.js +0 -51
  545. package/dist/channel-web-DmhVkWbP.js +0 -2134
  546. package/dist/channel-web-kRC3UYBJ.js +0 -2136
  547. package/dist/channels-cli-C5XRkPJl.js +0 -1421
  548. package/dist/channels-cli-D6TqCI0m.js +0 -1426
  549. package/dist/channels-status-issues-CUc9mpeW.js +0 -18
  550. package/dist/channels-status-issues-DwRDzwrV.js +0 -18
  551. package/dist/chat-envelope-DEZ-5RY8.js +0 -248
  552. package/dist/chat-envelope-el7Uo-Fe.js +0 -248
  553. package/dist/chrome-0QaGKb3L.js +0 -1732
  554. package/dist/chrome-CFeWdP0Y.js +0 -1733
  555. package/dist/chunk-CSQfUhgF.js +0 -341
  556. package/dist/chunk-D0Y_w4oX.js +0 -341
  557. package/dist/clack-prompter-B7tOxhJd.js +0 -122
  558. package/dist/clack-prompter-CCFnKP_1.js +0 -121
  559. package/dist/cleanup-utils-CqAVZz2b.js +0 -94
  560. package/dist/cli-BR2J3c4l.js +0 -125
  561. package/dist/cli-C1q1vSmN.js +0 -130
  562. package/dist/clipboard-D7_SKHPK.js +0 -31
  563. package/dist/clipboard-Dzkx6Q2K.js +0 -31
  564. package/dist/command-format-CVfo8I5f.js +0 -18
  565. package/dist/command-format-DgXcqxBt.js +0 -32
  566. package/dist/command-registry-CYjvOp8W.js +0 -215
  567. package/dist/commands-CDonBOrw.js +0 -41
  568. package/dist/commands-D_-bgTlO.js +0 -41
  569. package/dist/commands-registry-CWJv6xe2.js +0 -892
  570. package/dist/commands-registry-Ci8_cFk9.js +0 -893
  571. package/dist/common-CMI-qsF8.js +0 -156
  572. package/dist/common-DSVmydhm.js +0 -156
  573. package/dist/completion-cli-8iZJqfmX.js +0 -452
  574. package/dist/completion-cli-CYDjEZSt.js +0 -452
  575. package/dist/config-D5XU45KD.js +0 -6953
  576. package/dist/config-FHu9Bn4R.js +0 -6951
  577. package/dist/config-cli-Gehy4sav.js +0 -241
  578. package/dist/config-cli-RC9qMgJq.js +0 -246
  579. package/dist/config-guard-J-Q_DFWk.js +0 -97
  580. package/dist/config-guard-cB5a_ANg.js +0 -75
  581. package/dist/config-validation-BPNyd9_3.js +0 -18
  582. package/dist/config-validation-BPWuvhVe.js +0 -18
  583. package/dist/configure-CC2XdRRm.js +0 -891
  584. package/dist/configure-DxFBJuhZ.js +0 -889
  585. package/dist/constants-BmRFoHl0.js +0 -67
  586. package/dist/constants-C9WPAluB.js +0 -67
  587. package/dist/control-auth-D0tpV3ts.js +0 -397
  588. package/dist/control-auth-_-0PGRUs.js +0 -397
  589. package/dist/control-ui/assets/index-B4ZM1lW1.js +0 -7738
  590. package/dist/control-ui/assets/index-B4ZM1lW1.js.map +0 -1
  591. package/dist/control-ui/assets/index-PED72sKF.css +0 -1
  592. package/dist/control-ui-assets-Cx_mw4D0.js +0 -186
  593. package/dist/control-ui-assets-W1AUuGrO.js +0 -186
  594. package/dist/conversation-label-C4SDz4sT.js +0 -36
  595. package/dist/conversation-label-D1frnvYe.js +0 -36
  596. package/dist/cron-cli-BzERxhr5.js +0 -495
  597. package/dist/cron-cli-C8j_uslU.js +0 -490
  598. package/dist/daemon-cli-C95XNbX0.js +0 -1199
  599. package/dist/daemon-cli-e6sURMqd.js +0 -1197
  600. package/dist/daemon-install-CcohRvKV.js +0 -55
  601. package/dist/daemon-install-DDshfT0J.js +0 -60
  602. package/dist/daemon-install-helpers-CFGAfRlj.js +0 -462
  603. package/dist/daemon-install-helpers-DIUzSFG1.js +0 -462
  604. package/dist/defaults-B5KStIBg.js +0 -7
  605. package/dist/defaults-xUAL2Z-F.js +0 -7
  606. package/dist/deliver-912khjLK.js +0 -481
  607. package/dist/deliver-D56J4-1F.js +0 -481
  608. package/dist/delivery-queue-Cfa9Wmxp.js +0 -244
  609. package/dist/delivery-queue-CxVRi4tw.js +0 -244
  610. package/dist/devices-cli-0qDhTgZR.js +0 -316
  611. package/dist/devices-cli-6SKMR2bV.js +0 -321
  612. package/dist/diagnostics-99iCgBUh.js +0 -46
  613. package/dist/diagnostics-VC0cz7kX.js +0 -46
  614. package/dist/directory-cli-5YXdoVdn.js +0 -217
  615. package/dist/directory-cli-D3IKCHmn.js +0 -222
  616. package/dist/dm-policy-shared-4rkjhcrM.js +0 -22
  617. package/dist/dm-policy-shared-D8lgnmrC.js +0 -22
  618. package/dist/dns-cli-11CtErVU.js +0 -197
  619. package/dist/dns-cli-SiEd_1Lq.js +0 -202
  620. package/dist/dock-BqNINg7k.js +0 -928
  621. package/dist/dock-CQuu41bw.js +0 -929
  622. package/dist/doctor-completion-BR1SlAT3.js +0 -92
  623. package/dist/doctor-completion-CZwpEhIK.js +0 -92
  624. package/dist/doctor-config-flow-BVkHcvoj.js +0 -1933
  625. package/dist/doctor-config-flow-DVYRn0An.js +0 -1934
  626. package/dist/enable-DcJnkzfz.js +0 -59
  627. package/dist/enable-ibNq4UWy.js +0 -59
  628. package/dist/env-DeF64iu0.js +0 -60
  629. package/dist/env-vars-7aZqKPhk.js +0 -93
  630. package/dist/errors-8F-77i6m.js +0 -35
  631. package/dist/errors-DZ199hOo.js +0 -35
  632. package/dist/exec-DbKuYyM1.js +0 -164
  633. package/dist/exec-DkFE7lqU.js +0 -164
  634. package/dist/fetch-BFSBLBkA.js +0 -67
  635. package/dist/fetch-C6XKGA11.js +0 -67
  636. package/dist/fetch-CEDsOiql.js +0 -67
  637. package/dist/file-lock-CIvloidc.js +0 -107
  638. package/dist/file-lock-CzBL_VIx.js +0 -107
  639. package/dist/fs-safe-DSwT85uK.js +0 -88
  640. package/dist/fs-safe-DkBhNAc3.js +0 -98
  641. package/dist/gateway-cli-BEEZhCHv.js +0 -23747
  642. package/dist/gateway-cli-Nob0g_4y.js +0 -23742
  643. package/dist/gateway-rpc-CksB-N83.js +0 -28
  644. package/dist/gateway-rpc-Dq44SkOv.js +0 -28
  645. package/dist/gmail-setup-utils-Cnx8A5pW.js +0 -422
  646. package/dist/gmail-setup-utils-nkabbKOE.js +0 -423
  647. package/dist/health-RT-F3hzT.js +0 -1423
  648. package/dist/health-SOuaKNRa.js +0 -1420
  649. package/dist/health-format-BG95OE6N.js +0 -28
  650. package/dist/heartbeat-visibility-BxkZjE5m.js +0 -125
  651. package/dist/heartbeat-visibility-CGG-G7px.js +0 -125
  652. package/dist/help-format-DAxf0l_h.js +0 -17
  653. package/dist/helpers-kkeXif0Q.js +0 -10
  654. package/dist/hook-runner-global-DJ14gXFP.js +0 -527
  655. package/dist/hooks-cli-DyEKryW8.js +0 -1217
  656. package/dist/hooks-cli-RuEn0-oy.js +0 -1222
  657. package/dist/image-ops-Bi6JPSkD.js +0 -354
  658. package/dist/image-ops-DWytvdh_.js +0 -354
  659. package/dist/import-D8BBZQgl.js +0 -170
  660. package/dist/import-DQ6NI4Fz.js +0 -168
  661. package/dist/inbound-context-CPkkQW0i.js +0 -68
  662. package/dist/inbound-context-DS_kpIYI.js +0 -68
  663. package/dist/inbound-path-policy-Bg4gZBx-.js +0 -250
  664. package/dist/inbound-path-policy-sdr5Ji0k.js +0 -250
  665. package/dist/inspect-Dt8hogS3.js +0 -559
  666. package/dist/inspect-vYIL1oA0.js +0 -559
  667. package/dist/installs-aM5dWAyn.js +0 -325
  668. package/dist/installs-pWdqG8HL.js +0 -325
  669. package/dist/ipv4--2WXMVtE.js +0 -46
  670. package/dist/ipv4-CDQpx1A7.js +0 -46
  671. package/dist/ir-BpaAMTfW.js +0 -940
  672. package/dist/json-files-DzpTak5i.js +0 -46
  673. package/dist/links-C3soDNDH.js +0 -15
  674. package/dist/loader-Ccwsh8Sh.js +0 -22624
  675. package/dist/loader-y9MhJewT.js +0 -22621
  676. package/dist/local-roots-BrH0Q63K.js +0 -313
  677. package/dist/local-roots-nImrw2WR.js +0 -314
  678. package/dist/logger-Bw3cFE5t.js +0 -49
  679. package/dist/logging-C-nxX2fn.js +0 -20
  680. package/dist/login-C_Kt57nO.js +0 -62
  681. package/dist/login-DOmWDMeP.js +0 -61
  682. package/dist/login-qr-CXU0wC5K.js +0 -322
  683. package/dist/login-qr-D0u6fdeO.js +0 -327
  684. package/dist/logs-cli-CschwP4d.js +0 -238
  685. package/dist/logs-cli-D7ayUvz_.js +0 -233
  686. package/dist/markdown-tables-CrmghPAr.js +0 -29
  687. package/dist/markdown-tables-jrnSPvZ6.js +0 -29
  688. package/dist/media-CojxZ45J.js +0 -10492
  689. package/dist/media-DN7yRfrH.js +0 -940
  690. package/dist/message-action-names-CtEZcmlU.js +0 -2521
  691. package/dist/message-action-names-WglOO_DT.js +0 -2521
  692. package/dist/message-channel-DzJqHVZD.js +0 -91
  693. package/dist/net-Cg8AQeke.js +0 -225
  694. package/dist/net-D6D0wgcF.js +0 -225
  695. package/dist/node-cli-Q2-n3Fgv.js +0 -24
  696. package/dist/nodes-cli-C2SoKfCv.js +0 -1343
  697. package/dist/nodes-cli-CQmlfx0K.js +0 -1348
  698. package/dist/nodes-screen-BR9sYoPa.js +0 -250
  699. package/dist/nodes-screen-Cw7Hv7M2.js +0 -250
  700. package/dist/note-Dlv4NmlQ.js +0 -92
  701. package/dist/note-kvWV4xtw.js +0 -92
  702. package/dist/npm-registry-spec-0qiKawvv.js +0 -786
  703. package/dist/npm-registry-spec-COvUzy5J.js +0 -786
  704. package/dist/npm-resolution-6v_Zm-9G.js +0 -86
  705. package/dist/npm-resolution-BFz7LeoN.js +0 -86
  706. package/dist/onboard-CgyU-mDL.js +0 -407
  707. package/dist/onboard-RI4vNTZd.js +0 -405
  708. package/dist/onboard-channels-DN5JoKPd.js +0 -2548
  709. package/dist/onboard-channels-DyAd1OZr.js +0 -2547
  710. package/dist/onboard-config-BCTthQ7J.js +0 -24
  711. package/dist/onboard-config-y-2cgT0V.js +0 -24
  712. package/dist/onboard-helpers-BCzZUD0z.js +0 -363
  713. package/dist/onboard-helpers-sDc2Ky6H.js +0 -362
  714. package/dist/onboard-remote-CJrMtttl.js +0 -127
  715. package/dist/onboard-remote-hyQIBguz.js +0 -127
  716. package/dist/onboarding-DCu1iBTV.js +0 -541
  717. package/dist/onboarding-zKMitzpb.js +0 -543
  718. package/dist/onboarding.finalize-ClHhYE2E.js +0 -401
  719. package/dist/onboarding.finalize-D5JkVJgg.js +0 -398
  720. package/dist/onboarding.gateway-config-DFh71Ndn.js +0 -198
  721. package/dist/onboarding.gateway-config-VBk6AP9U.js +0 -191
  722. package/dist/outbound-BYlZshIw.js +0 -221
  723. package/dist/outbound-CFfJC1j5.js +0 -220
  724. package/dist/outbound-attachment-BCNs1u1F.js +0 -18
  725. package/dist/outbound-attachment-B_0D60Yr.js +0 -18
  726. package/dist/outbound-attachment-o0seS0CP.js +0 -18
  727. package/dist/pairing-cli-BeydfoF9.js +0 -122
  728. package/dist/pairing-cli-DWzX866x.js +0 -127
  729. package/dist/pairing-labels-B-N8S5Fc.js +0 -9
  730. package/dist/pairing-labels-B_53dY5L.js +0 -9
  731. package/dist/pairing-store-BxdqFZGK.js +0 -460
  732. package/dist/pairing-store-CTkD51uW.js +0 -459
  733. package/dist/path-env-DR5vn3QL.js +0 -89
  734. package/dist/path-env-qRJbjJzj.js +0 -89
  735. package/dist/path-safety-DkT9RmTG.js +0 -14
  736. package/dist/path-safety-juI2XbO1.js +0 -14
  737. package/dist/plugin-auto-enable-D23gv7Aw.js +0 -302
  738. package/dist/plugin-auto-enable-DuPS9XiJ.js +0 -301
  739. package/dist/plugin-registry-CNu_1KZz.js +0 -33
  740. package/dist/plugin-registry-DeHwd2jk.js +0 -33
  741. package/dist/plugin-sdk/agents/agent-helpers/thinking.d.ts +0 -5
  742. package/dist/plugin-sdk/agents/auth-profiles/constants.d.ts +0 -16
  743. package/dist/plugin-sdk/agents/auth-profiles/display.d.ts +0 -7
  744. package/dist/plugin-sdk/agents/auth-profiles/doctor.d.ts +0 -8
  745. package/dist/plugin-sdk/agents/auth-profiles/oauth.d.ts +0 -14
  746. package/dist/plugin-sdk/agents/auth-profiles/session-override.d.ts +0 -18
  747. package/dist/plugin-sdk/agents/auth-profiles.d.ts +0 -8
  748. package/dist/plugin-sdk/agents/defaults.d.ts +0 -3
  749. package/dist/plugin-sdk/agents/provider-auth.d.ts +0 -40
  750. package/dist/plugin-sdk/auto-reply/model-runtime.d.ts +0 -17
  751. package/dist/plugin-sdk/config/model-input.d.ts +0 -9
  752. package/dist/plugin-sdk/config/zod-schema.agent-model.d.ts +0 -5
  753. package/dist/plugin-sdk/sessions/model-overrides.d.ts +0 -14
  754. package/dist/plugin-sdk/telegram/reasoning-lane-coordinator.d.ts +0 -18
  755. package/dist/plugins-BflZz0sp.js +0 -453
  756. package/dist/plugins-cli-DV82scUw.js +0 -798
  757. package/dist/plugins-cli-Qj1UyIZO.js +0 -793
  758. package/dist/plugins-woGRXMzU.js +0 -455
  759. package/dist/ports-DrruB2fK.js +0 -370
  760. package/dist/ports-GT1yV-Tg.js +0 -96
  761. package/dist/ports-NPqtlfp0.js +0 -316
  762. package/dist/ports-QMI4-F9m.js +0 -96
  763. package/dist/program-CQmIaRUI.js +0 -244
  764. package/dist/program-context-DEU6ACnL.js +0 -474
  765. package/dist/progress-CBkSaM6z.js +0 -124
  766. package/dist/prompt-Bllj1dhc.js +0 -21
  767. package/dist/prompt-select-styled-BhTN6zE2.js +0 -1650
  768. package/dist/prompt-select-styled-WopXnjIy.js +0 -1647
  769. package/dist/prompt-style-DVEm3BZW.js +0 -9
  770. package/dist/provider-dispatcher-B4QMe-I6.js +0 -659
  771. package/dist/provider-dispatcher-Bfauw6zz.js +0 -660
  772. package/dist/push-apns-C0LyG-WB.js +0 -713
  773. package/dist/push-apns-DuG95AKC.js +0 -711
  774. package/dist/pw-ai-D9n6-Wa6.js +0 -1906
  775. package/dist/pw-ai-T280E6Mn.js +0 -1910
  776. package/dist/qr-cli-DVECWTHN.js +0 -352
  777. package/dist/qr-cli-hSLixZCe.js +0 -347
  778. package/dist/redact-eZq1uwNK.js +0 -191
  779. package/dist/redact-snapshot-BZYLIqe-.js +0 -2028
  780. package/dist/redact-snapshot-C6hVx_9I.js +0 -2028
  781. package/dist/register.agent-Dmj-sgEl.js +0 -1043
  782. package/dist/register.agent-IspcBFeD.js +0 -286
  783. package/dist/register.configure-BqJEqyGL.js +0 -130
  784. package/dist/register.configure-PPkU_4Ea.js +0 -124
  785. package/dist/register.import-Bs-UkOs-.js +0 -27
  786. package/dist/register.import-DLng8g-e.js +0 -30
  787. package/dist/register.maintenance-BbpkJil3.js +0 -497
  788. package/dist/register.maintenance-C5nkOQxa.js +0 -494
  789. package/dist/register.message-C83Hi1b3.js +0 -681
  790. package/dist/register.message-D16isu4u.js +0 -686
  791. package/dist/register.onboard-B8EzX3wY.js +0 -257
  792. package/dist/register.onboard-CyRbr_0V.js +0 -262
  793. package/dist/register.setup-DWyoowAz.js +0 -109
  794. package/dist/register.setup-Dz6GwMnu.js +0 -114
  795. package/dist/register.status-health-sessions-CbQOfycz.js +0 -423
  796. package/dist/register.status-health-sessions-DXIWG47y.js +0 -669
  797. package/dist/register.subclis-DeGP5UPU.js +0 -267
  798. package/dist/replies-BKrzM0QI.js +0 -136
  799. package/dist/replies-Cl2gYBVt.js +0 -136
  800. package/dist/reply-CCu_DY64.js +0 -13900
  801. package/dist/reply-DSKC8kyS.js +0 -13897
  802. package/dist/reply-directives-BHJKp1Du.js +0 -182
  803. package/dist/reply-directives-CD2WycBM.js +0 -182
  804. package/dist/reply-payloads-D_BM1Anb.js +0 -527
  805. package/dist/reply-prefix-DBLCYiup.js +0 -38
  806. package/dist/reply-prefix-Q4DOJSn_.js +0 -38
  807. package/dist/resolve-route-CBVbY0xS.js +0 -249
  808. package/dist/resolve-route-DGEgTEif.js +0 -249
  809. package/dist/response-prefix-template-rVZQOViK.js +0 -136
  810. package/dist/response-prefix-template-up4REfuR.js +0 -136
  811. package/dist/retry-BhuXOEVR.js +0 -77
  812. package/dist/retry-DUjAzOBy.js +0 -77
  813. package/dist/run-main-Um5xhxla.js +0 -320
  814. package/dist/runner-yVJ4HB2K.js +0 -2294
  815. package/dist/runner-z92MWZ3m.js +0 -2294
  816. package/dist/runtime-guard-DZ_xuCc4.js +0 -60
  817. package/dist/secure-random-Pl9rPl0l.js +0 -44
  818. package/dist/security-cli-CdwbWZUj.js +0 -484
  819. package/dist/security-cli-DP5QJpa5.js +0 -478
  820. package/dist/send-B1_Ymjb9.js +0 -1778
  821. package/dist/send-B84axiIa.js +0 -29
  822. package/dist/send-BN_zYVlx.js +0 -547
  823. package/dist/send-BqVOxAmK.js +0 -1174
  824. package/dist/send-Bx9bUGav.js +0 -492
  825. package/dist/send-C3pdJ6p-.js +0 -2245
  826. package/dist/send-CBGSXjfD.js +0 -2245
  827. package/dist/send-CGXyTF22.js +0 -426
  828. package/dist/send-CKavrhXj.js +0 -11
  829. package/dist/send-D08Je6DL.js +0 -374
  830. package/dist/send-D1aYEG-k.js +0 -332
  831. package/dist/send-DHldI3gf.js +0 -492
  832. package/dist/send-D_DUQJ6H.js +0 -349
  833. package/dist/send-Ds63eF4a.js +0 -349
  834. package/dist/send-YRVDWfSs.js +0 -547
  835. package/dist/send-xnwty9cY.js +0 -1775
  836. package/dist/server-BQFoyCRR.js +0 -200
  837. package/dist/server-DhXw25Jq.js +0 -205
  838. package/dist/server-lifecycle-BjCCyD3w.js +0 -2437
  839. package/dist/server-lifecycle-Coyr6Lda.js +0 -2437
  840. package/dist/server-node-events-De4WZQQD.js +0 -393
  841. package/dist/server-node-events-dXXayuqY.js +0 -398
  842. package/dist/service-Bjqii5nW.js +0 -670
  843. package/dist/service-fp29z5Ww.js +0 -670
  844. package/dist/session-DBL5nHDy.js +0 -170
  845. package/dist/session-cost-usage-DX09eTPU.js +0 -627
  846. package/dist/session-cost-usage-yYi525j3.js +0 -627
  847. package/dist/session-dirs-Cj5xi7zX.js +0 -947
  848. package/dist/session-dirs-DdF6TDsE.js +0 -947
  849. package/dist/session-utils-CEtEq6bi.js +0 -625
  850. package/dist/session-utils-WmlWAs1r.js +0 -625
  851. package/dist/session-xKIW6gL2.js +0 -170
  852. package/dist/sessions--PykPynp.js +0 -2593
  853. package/dist/sessions-Bw4LRnSr.js +0 -252
  854. package/dist/ssrf-Ck9HDZpv.js +0 -183
  855. package/dist/ssrf-m7kFIobZ.js +0 -183
  856. package/dist/status-CtzYFLLF.js +0 -2072
  857. package/dist/status-DiN1cq2p.js +0 -2068
  858. package/dist/status.update-C55QM2xs.js +0 -79
  859. package/dist/status.update-CBmPXwYN.js +0 -79
  860. package/dist/store-C3tOpizT.js +0 -64
  861. package/dist/store-CPJXuhvQ.js +0 -53
  862. package/dist/store-SusmIfz7.js +0 -2595
  863. package/dist/store-v3P-OWhi.js +0 -64
  864. package/dist/subagent-registry-Db4Ho_2Y.js +0 -4858
  865. package/dist/subagent-registry-Du_j0Fnt.js +0 -4860
  866. package/dist/subsystem-BUXAJwPD.js +0 -1079
  867. package/dist/subsystem-COd61u0P.js +0 -1139
  868. package/dist/system-cli-DYCpLO3T.js +0 -75
  869. package/dist/system-cli-eAk5wVbP.js +0 -70
  870. package/dist/systemd-DSnlM3jX.js +0 -547
  871. package/dist/systemd-TfK8GuTx.js +0 -547
  872. package/dist/systemd-linger-Axnc1xCb.js +0 -75
  873. package/dist/systemd-linger-_0_-RY4v.js +0 -75
  874. package/dist/table-DPTzZyhu.js +0 -279
  875. package/dist/tables-DI5LGEr1.js +0 -55
  876. package/dist/tables-PxcSPSO0.js +0 -55
  877. package/dist/tables-TWiml6b1.js +0 -55
  878. package/dist/tailnet-CEudzG0i.js +0 -40
  879. package/dist/tailnet-PnMrjwGT.js +0 -40
  880. package/dist/tailscale-DTATQxAG.js +0 -230
  881. package/dist/tailscale-Dbyahx0J.js +0 -230
  882. package/dist/targets-C1NeMn2J.js +0 -220
  883. package/dist/targets-CcTME3bp.js +0 -46
  884. package/dist/targets-CmC5m7Ey.js +0 -53
  885. package/dist/targets-D-u6Kyio.js +0 -650
  886. package/dist/targets-D7OKVXMI.js +0 -650
  887. package/dist/targets-DB4vBpIQ.js +0 -2172
  888. package/dist/targets-DfqPGOmM.js +0 -2173
  889. package/dist/targets-DyybKefq.js +0 -53
  890. package/dist/targets-JCISV-hS.js +0 -120
  891. package/dist/tokens-DzFOtLlW.js +0 -21
  892. package/dist/tool-display-Br6mwaJc.js +0 -785
  893. package/dist/tool-display-sgNwLOBj.js +0 -785
  894. package/dist/tool-images-BNfIJ_Kj.js +0 -263
  895. package/dist/tool-images-kloBqxqK.js +0 -263
  896. package/dist/trash-DPi0aCCQ.js +0 -125
  897. package/dist/trash-D_Jd_yQZ.js +0 -125
  898. package/dist/tui-CHc0EfJO.js +0 -3392
  899. package/dist/tui-CyHwc2uX.js +0 -3392
  900. package/dist/tui-cli-BvwbrIYO.js +0 -63
  901. package/dist/tui-cli-C9I18SfW.js +0 -58
  902. package/dist/update-DxyjwCL2.js +0 -349
  903. package/dist/update-IX7vdqA8.js +0 -349
  904. package/dist/update-cli-CBeXUSzq.js +0 -1373
  905. package/dist/update-cli-DkAWmUrp.js +0 -1370
  906. package/dist/usage-CYlQW4M2.js +0 -5279
  907. package/dist/utils-LBKvDoPx.js +0 -631
  908. package/dist/web-BUYUdnRH.js +0 -3065
  909. package/dist/web-Dquzwqf4.js +0 -70
  910. package/dist/web-tS8diboh.js +0 -76
  911. package/dist/webhooks-cli-B7Vw3CMz.js +0 -333
  912. package/dist/webhooks-cli-BpZHQlVd.js +0 -328
  913. package/dist/whatsapp-actions-D5HXezjp.js +0 -128
  914. package/dist/whatsapp-actions-DaA291Ya.js +0 -122
  915. package/dist/widearea-dns-DSoaA-eH.js +0 -127
  916. package/dist/workspace-B4ZvVYT9.js +0 -447
  917. package/dist/workspace-B8PA8oxJ.js +0 -449
  918. /package/dist/{account-lookup-0KDSp5Mj.js → account-lookup-BOCzCnir.js} +0 -0
  919. /package/dist/{account-lookup-zvANGr2x.js → account-lookup-DGscKBsr.js} +0 -0
  920. /package/dist/{ansi-D04X81yq.js → ansi-aRwLYlzD.js} +0 -0
  921. /package/dist/{api-BeQMq2iS.js → api-BDff51CS.js} +0 -0
  922. /package/dist/{api-CxX8-gGz.js → api-qWSMsT8m.js} +0 -0
  923. /package/dist/{argv-Co-b9Zsc.js → argv-neJY_Hxm.js} +0 -0
  924. /package/dist/{brew-C4zKZsHX.js → brew-ByYl36Mt.js} +0 -0
  925. /package/dist/{brew-DbSbN8sD.js → brew-CMSQ5Fek.js} +0 -0
  926. /package/dist/{chat-type-CYPyHAj-.js → chat-type-BKe459rw.js} +0 -0
  927. /package/dist/{chat-type-DKb2TlGZ.js → chat-type-DyovJwCt.js} +0 -0
  928. /package/dist/{cleanup-utils-CwQvD73q.js → cleanup-utils-S_P5Jebv.js} +0 -0
  929. /package/dist/{cli-name-BicfmwQX.js → cli-name-CRLBidNP.js} +0 -0
  930. /package/dist/{cli-name-C6rJGl18.js → cli-name-Yv30OygA.js} +0 -0
  931. /package/dist/{cli-utils-BhXbz2UF.js → cli-utils-C5nQDfa6.js} +0 -0
  932. /package/dist/{cli-utils-DZe_rVkZ.js → cli-utils-KcEwAsuZ.js} +0 -0
  933. /package/dist/{client-C61M8zI3.js → client-C7B0uFB0.js} +0 -0
  934. /package/dist/{client-DdpmATKq.js → client-Cd2HNUX0.js} +0 -0
  935. /package/dist/{command-options-C4paWSGf.js → command-options-1bi44p_B.js} +0 -0
  936. /package/dist/{command-options-CA30lfLK.js → command-options-7y5Zrv4M.js} +0 -0
  937. /package/dist/{config-eval-CjGZtLwx.js → config-eval-CJtk3Msr.js} +0 -0
  938. /package/dist/{config-eval-H_wlEYIG.js → config-eval-DQIwdWg7.js} +0 -0
  939. /package/dist/{constants-ChptG3d7.js → constants--3PuQVaS.js} +0 -0
  940. /package/dist/{constants-DY6b-_Wl.js → constants-DNWjlxZ5.js} +0 -0
  941. /package/dist/{credentials-BHWUBHMd.js → credentials-BhnauW0K.js} +0 -0
  942. /package/dist/{credentials-DFsi1_e8.js → credentials-eZcqWNG_.js} +0 -0
  943. /package/dist/{daemon-runtime-CMnbwryP.js → daemon-runtime-99xh1fGv.js} +0 -0
  944. /package/dist/{daemon-runtime-CvqE4ysg.js → daemon-runtime-BOcdJaFy.js} +0 -0
  945. /package/dist/{dangerous-name-matching-BzmiLXmA.js → dangerous-name-matching-YeatnYIA.js} +0 -0
  946. /package/dist/{dangerous-name-matching-DaVRgwer.js → dangerous-name-matching-oVb1EqYT.js} +0 -0
  947. /package/dist/{dangerous-tools-BOLoCRv4.js → dangerous-tools-BMt8-6jE.js} +0 -0
  948. /package/dist/{dangerous-tools-Baq7Q-i6.js → dangerous-tools-CripTfYv.js} +0 -0
  949. /package/dist/{fetch-timeout-DTIN7CGM.js → fetch-timeout-Db3da8yR.js} +0 -0
  950. /package/dist/{fetch-timeout-DoySHqfO.js → fetch-timeout-l_6RdoMw.js} +0 -0
  951. /package/dist/{file-identity-BxlKD8Ys.js → file-identity-Bs9zZOi2.js} +0 -0
  952. /package/dist/{format-duration-CqUERz51.js → format-duration-Bo-Mxi3E.js} +0 -0
  953. /package/dist/{format-duration-Ct-yiwkS.js → format-duration-CfrJ5T8k.js} +0 -0
  954. /package/dist/{format-relative-79_Y1n2Y.js → format-relative-8cNYQsqb.js} +0 -0
  955. /package/dist/{format-relative-CxLpEQOX.js → format-relative-CZOlQ2pA.js} +0 -0
  956. /package/dist/{health-format-B_QRD8Si.js → health-format-WMRp1BbP.js} +0 -0
  957. /package/dist/{heartbeat-wake-LGEgcXjs.js → heartbeat-wake-BtRrOB-t.js} +0 -0
  958. /package/dist/{heartbeat-wake-Y97geucO.js → heartbeat-wake-eRINROYK.js} +0 -0
  959. /package/dist/{help-format-NNm_Ov4H.js → help-format-BEb0SPHF.js} +0 -0
  960. /package/dist/{helpers-BAsMXprO.js → helpers-BJtPtu_2.js} +0 -0
  961. /package/dist/{helpers-DLgbkcEn.js → helpers-Cj6f8SPZ.js} +0 -0
  962. /package/dist/{helpers-R7bU5IBz.js → helpers-ryxLx-aM.js} +0 -0
  963. /package/dist/{host-env-security-szwfmhC4.js → host-env-security-CbiODGvQ.js} +0 -0
  964. /package/dist/{input-provenance-Bn6thJNm.js → input-provenance-CPhdY-0F.js} +0 -0
  965. /package/dist/{input-provenance-xUsSMOsz.js → input-provenance-DUNEQoFM.js} +0 -0
  966. /package/dist/{ip-C9q3Oq20.js → ip-BAhS4rY2.js} +0 -0
  967. /package/dist/{ip-D0zgNmBV.js → ip-BcdPcLiP.js} +0 -0
  968. /package/dist/{is-main-DN8-sNR5.js → is-main-KcWqINzy.js} +0 -0
  969. /package/dist/{json-file-ChO_R9yh.js → json-file-BVvmrQG3.js} +0 -0
  970. /package/dist/{json-file-B7l5-Xhr.js → json-file-Dbg7nZg1.js} +0 -0
  971. /package/dist/{json-files-CmpYSF4G.js → json-files-DSKEdz7x.js} +0 -0
  972. /package/dist/{lanes-ByWMUgrz.js → lanes-Brd-nf-Z.js} +0 -0
  973. /package/dist/{lanes-cHJ5arWg.js → lanes-COs3zODW.js} +0 -0
  974. /package/dist/{links-Bz4V7R_p.js → links-gse8sWn-.js} +0 -0
  975. /package/dist/{location-DBWCGNLq.js → location-D1FM_C63.js} +0 -0
  976. /package/dist/{location-GbZ0bBRU.js → location-LuzkqHGi.js} +0 -0
  977. /package/dist/{logger-DyL5G2DO.js → logger-BMP_j_Lx.js} +0 -0
  978. /package/dist/{logger-BWMPnILd.js → logger-DWbwXLjl.js} +0 -0
  979. /package/dist/{logger-GvipVDfh.js → logger-DXCDb7qu.js} +0 -0
  980. /package/dist/{logging-D8-Kozjc.js → logging-CAgCb3n3.js} +0 -0
  981. /package/dist/{message-channel-uWMAiywE.js → message-channel-D72Bc6Tb.js} +0 -0
  982. /package/dist/{mime-BS3jhcZE.js → mime-Cqg1jjia.js} +0 -0
  983. /package/dist/{mime-Cxh_64P6.js → mime-D4bQLMJL.js} +0 -0
  984. /package/dist/{mutable-allowlist-detectors-DiZDtmlZ.js → mutable-allowlist-detectors-NtI6s4TE.js} +0 -0
  985. /package/dist/{mutable-allowlist-detectors-U5ThQr9V.js → mutable-allowlist-detectors-nAmo9v5u.js} +0 -0
  986. /package/dist/{node-cli-Uf6lAntf.js → node-cli-bNJbha3z.js} +0 -0
  987. /package/dist/{parse-log-line-enq8pduH.js → parse-log-line-BY9Vz72K.js} +0 -0
  988. /package/dist/{parse-log-line-mz9TG6ig.js → parse-log-line-BrrE4onI.js} +0 -0
  989. /package/dist/{parse-timeout-BMP8a0_a.js → parse-timeout-Dfyln-4M.js} +0 -0
  990. /package/dist/{path-guards-CIx4hURU.js → path-guards-D9LU0y9L.js} +0 -0
  991. /package/dist/{path-guards-CrQOUlsq.js → path-guards-crZaTVvq.js} +0 -0
  992. /package/dist/plugin-sdk/{agents → auth}/api-key-rotation.d.ts +0 -0
  993. /package/dist/plugin-sdk/{agents/auth-profiles → auth}/paths.d.ts +0 -0
  994. /package/dist/plugin-sdk/{agents/auth-profiles → auth}/profiles.d.ts +0 -0
  995. /package/dist/plugin-sdk/{agents/auth-profiles → auth}/store.d.ts +0 -0
  996. /package/dist/plugin-sdk/{agents/auth-profiles → auth}/types.d.ts +0 -0
  997. /package/dist/{plugins-allowlist-BbTQ5Z2k.js → plugins-allowlist-CD4oIJNk.js} +0 -0
  998. /package/dist/{plugins-allowlist-C20oaESO.js → plugins-allowlist-CUhk3GDh.js} +0 -0
  999. /package/dist/{polls-B0CCBDeR.js → polls-ChvH1OIW.js} +0 -0
  1000. /package/dist/{polls-CwwHzYBM.js → polls-Dn1C2d1-.js} +0 -0
  1001. /package/dist/{ports-lsof-Wteul3ju.js → ports-lsof-BDQWExpn.js} +0 -0
  1002. /package/dist/{process-scoped-map-CV9kDvfG.js → process-scoped-map-BwUkYFQV.js} +0 -0
  1003. /package/dist/{process-scoped-map-PEvnG75N.js → process-scoped-map-CBWcUvTa.js} +0 -0
  1004. /package/dist/{program-context-jqeI5alP.js → program-context-DtsEOsdM.js} +0 -0
  1005. /package/dist/{progress-C1kUfYL-.js → progress-BjGCAXH7.js} +0 -0
  1006. /package/dist/{prompt-Yn2yClg1.js → prompt-FIISMuNm.js} +0 -0
  1007. /package/dist/{prompt-style-DjEYC_s-.js → prompt-style-DL64_X-p.js} +0 -0
  1008. /package/dist/{provider-utils-3JTMJroG.js → provider-utils-DiLhkKQp.js} +0 -0
  1009. /package/dist/{proxy-DL3MD6-P.js → proxy-DUTF0OYE.js} +0 -0
  1010. /package/dist/{proxy-DpNv2cSV.js → proxy-Dv0sbx6A.js} +0 -0
  1011. /package/dist/{pw-ai-state-CGfLv6nV.js → pw-ai-state-DKhOTqDv.js} +0 -0
  1012. /package/dist/{pw-ai-state-Dynx20hr.js → pw-ai-state-kkp06zyZ.js} +0 -0
  1013. /package/dist/{redact-Dx1Fue21.js → redact-BTeK8lMZ.js} +0 -0
  1014. /package/dist/{redact-identifier-BTIWtaa-.js → redact-identifier-F6t5pklx.js} +0 -0
  1015. /package/dist/{redact-identifier-CAagcfWA.js → redact-identifier-VdOrq-IK.js} +0 -0
  1016. /package/dist/{remoteclaw-root-C2HV2VeC.js → remoteclaw-root-DF8m3X4C.js} +0 -0
  1017. /package/dist/{remoteclaw-root-DybYl8PL.js → remoteclaw-root-rJHOCwzo.js} +0 -0
  1018. /package/dist/{render-CCLsW6Lz.js → render-e7fENCYH.js} +0 -0
  1019. /package/dist/{render-uf6PvGMV.js → render-qcqmrHse.js} +0 -0
  1020. /package/dist/{retry-DnqPAqWp.js → retry-CwZiwLDN.js} +0 -0
  1021. /package/dist/{runtime-DJNp29jv.js → runtime-Ds3E9SqF.js} +0 -0
  1022. /package/dist/{runtime-guard-U-ewY_QH.js → runtime-guard-CdJVmJc0.js} +0 -0
  1023. /package/dist/{secret-equal-BbHdTtqY.js → secret-equal-CDUVxXmp.js} +0 -0
  1024. /package/dist/{secret-equal-CXJEZiWb.js → secret-equal-d3sEnK98.js} +0 -0
  1025. /package/dist/{secure-random-CS2mSdTn.js → secure-random-CJtykx_p.js} +0 -0
  1026. /package/dist/{secure-random-_dzDDlFo.js → secure-random-y6N6Gted.js} +0 -0
  1027. /package/dist/{session-key-5YLnn_qf.js → session-key-BF-9YzxC.js} +0 -0
  1028. /package/dist/{stagger-BXv_apuy.js → stagger-B-_Wnofy.js} +0 -0
  1029. /package/dist/{stagger-MI9gd2rQ.js → stagger-CjkdqPuN.js} +0 -0
  1030. /package/dist/{status-BmtCS3T1.js → status-BFmH9Uge.js} +0 -0
  1031. /package/dist/{status-BrwHRn2B.js → status-BIupzBh9.js} +0 -0
  1032. /package/dist/{strip-inbound-meta-DjKcSFaW.js → strip-inbound-meta-BNXRYvmY.js} +0 -0
  1033. /package/dist/{strip-inbound-meta-jy3bkUab.js → strip-inbound-meta-BtNFmc6V.js} +0 -0
  1034. /package/dist/{table-C1rdyYl9.js → table-Au5EeKD6.js} +0 -0
  1035. /package/dist/{target-errors-BDpPcwh5.js → target-errors-B6YON-5k.js} +0 -0
  1036. /package/dist/{target-errors-DdIAPcMM.js → target-errors-sPHoHj73.js} +0 -0
  1037. /package/dist/{targets-D-qLBpTA.js → targets-BtGRUQMa.js} +0 -0
  1038. /package/dist/{targets-BMenhVHg.js → targets-D3r6Zgic.js} +0 -0
  1039. /package/dist/{targets-C-2xwh9f.js → targets-DDdPVd12.js} +0 -0
  1040. /package/dist/{targets-UncQvCVs.js → targets-Ds5eT_RZ.js} +0 -0
  1041. /package/dist/{targets-D7PT_rdO.js → targets-DtvPW-B8.js} +0 -0
  1042. /package/dist/{text-format-BQ3z_OXA.js → text-format-CFm4X8Ze.js} +0 -0
  1043. /package/dist/{text-format-oWqzVmah.js → text-format-KHU3KzvQ.js} +0 -0
  1044. /package/dist/{tokens-B-jmvNR9.js → tokens-BGw4xHhW.js} +0 -0
  1045. /package/dist/{usage-BdhBT0Vz.js → usage-BEjWlD9A.js} +0 -0
  1046. /package/dist/{usage-format-C3mNLfhI.js → usage-format-Cx3JveFn.js} +0 -0
  1047. /package/dist/{usage-format-DAaPzr_z.js → usage-format-D-ZaYT_e.js} +0 -0
  1048. /package/dist/{usage-BtQcAnf6.js → usage-o8O_TxA-.js} +0 -0
  1049. /package/dist/{widearea-dns-CsmBVbez.js → widearea-dns-DUDYT3z2.js} +0 -0
  1050. /package/dist/{workspace-BzPeZDew.js → workspace-9__vtmnA.js} +0 -0
  1051. /package/dist/{wsl-B_sPlzWw.js → wsl-BLrG__iS.js} +0 -0
  1052. /package/dist/{wsl-BCnYV9O0.js → wsl-C2dudsWt.js} +0 -0
@@ -1,1174 +0,0 @@
1
- import { C as writeConfigFile, N as resolveTelegramAccount, P as isTruthyEnvValue, S as readConfigFileSnapshotForWrite, a as isGifMedia, i as getFileExtension, l as markdownToIR, o as normalizeMimeType, p as resolveMarkdownTableMode, s as mediaKindFromMime, t as loadWebMedia, x as loadConfig } from "./media-CojxZ45J.js";
2
- import { F as expandHomePrefix, l as CONFIG_DIR, t as createSubsystemLogger, v as danger, y as logVerbose } from "./subsystem-BUXAJwPD.js";
3
- import { n as normalizeTelegramLookupTarget, r as parseTelegramTarget, t as normalizeTelegramChatId } from "./targets-JCISV-hS.js";
4
- import { t as resolveFetch } from "./fetch-BFSBLBkA.js";
5
- import "./retry-DUjAzOBy.js";
6
- import { a as formatErrorMessage, i as extractErrorCode, o as formatUncaughtError, r as createTelegramRetryRunner, s as redactSensitiveText, t as recordChannelActivity } from "./channel-activity-C-G4n9BK.js";
7
- import { t as renderMarkdownWithMarkers } from "./render-6ahYfPwj.js";
8
- import path from "node:path";
9
- import fs, { readFileSync } from "node:fs";
10
- import os from "node:os";
11
- import JSON5 from "json5";
12
- import fs$1 from "node:fs/promises";
13
- import crypto from "node:crypto";
14
- import * as dns from "node:dns";
15
- import { Agent, ProxyAgent, fetch, setGlobalDispatcher } from "undici";
16
- import * as net from "node:net";
17
- import process$1 from "node:process";
18
- import { Bot, HttpError, InputFile } from "grammy";
19
-
20
- //#region src/pairing/pairing-store.ts
21
- const PAIRING_PENDING_TTL_MS = 3600 * 1e3;
22
-
23
- //#endregion
24
- //#region src/media/audio.ts
25
- const TELEGRAM_VOICE_AUDIO_EXTENSIONS = new Set([
26
- ".oga",
27
- ".ogg",
28
- ".opus",
29
- ".mp3",
30
- ".m4a"
31
- ]);
32
- /**
33
- * MIME types compatible with voice messages.
34
- * Telegram sendVoice supports OGG/Opus, MP3, and M4A.
35
- * https://core.telegram.org/bots/api#sendvoice
36
- */
37
- const TELEGRAM_VOICE_MIME_TYPES = new Set([
38
- "audio/ogg",
39
- "audio/opus",
40
- "audio/mpeg",
41
- "audio/mp3",
42
- "audio/mp4",
43
- "audio/x-m4a",
44
- "audio/m4a"
45
- ]);
46
- function isTelegramVoiceCompatibleAudio(opts) {
47
- const mime = normalizeMimeType(opts.contentType);
48
- if (mime && TELEGRAM_VOICE_MIME_TYPES.has(mime)) return true;
49
- const fileName = opts.fileName?.trim();
50
- if (!fileName) return false;
51
- const ext = getFileExtension(fileName);
52
- if (!ext) return false;
53
- return TELEGRAM_VOICE_AUDIO_EXTENSIONS.has(ext);
54
- }
55
-
56
- //#endregion
57
- //#region src/infra/diagnostic-flags.ts
58
- const DIAGNOSTICS_ENV = "REMOTECLAW_DIAGNOSTICS";
59
- function normalizeFlag(value) {
60
- return value.trim().toLowerCase();
61
- }
62
- function parseEnvFlags(raw) {
63
- if (!raw) return [];
64
- const trimmed = raw.trim();
65
- if (!trimmed) return [];
66
- const lowered = trimmed.toLowerCase();
67
- if ([
68
- "0",
69
- "false",
70
- "off",
71
- "none"
72
- ].includes(lowered)) return [];
73
- if ([
74
- "1",
75
- "true",
76
- "all",
77
- "*"
78
- ].includes(lowered)) return ["*"];
79
- return trimmed.split(/[,\s]+/).map(normalizeFlag).filter(Boolean);
80
- }
81
- function uniqueFlags(flags) {
82
- const seen = /* @__PURE__ */ new Set();
83
- const out = [];
84
- for (const flag of flags) {
85
- const normalized = normalizeFlag(flag);
86
- if (!normalized || seen.has(normalized)) continue;
87
- seen.add(normalized);
88
- out.push(normalized);
89
- }
90
- return out;
91
- }
92
- function resolveDiagnosticFlags(cfg, env = process.env) {
93
- const configFlags = Array.isArray(cfg?.diagnostics?.flags) ? cfg?.diagnostics?.flags : [];
94
- const envFlags = parseEnvFlags(env[DIAGNOSTICS_ENV]);
95
- return uniqueFlags([...configFlags, ...envFlags]);
96
- }
97
- function matchesDiagnosticFlag(flag, enabledFlags) {
98
- const target = normalizeFlag(flag);
99
- if (!target) return false;
100
- for (const raw of enabledFlags) {
101
- const enabled = normalizeFlag(raw);
102
- if (!enabled) continue;
103
- if (enabled === "*" || enabled === "all") return true;
104
- if (enabled.endsWith(".*")) {
105
- const prefix = enabled.slice(0, -2);
106
- if (target === prefix || target.startsWith(`${prefix}.`)) return true;
107
- }
108
- if (enabled.endsWith("*")) {
109
- const prefix = enabled.slice(0, -1);
110
- if (target.startsWith(prefix)) return true;
111
- }
112
- if (enabled === target) return true;
113
- }
114
- return false;
115
- }
116
- function isDiagnosticFlagEnabled(flag, cfg, env = process.env) {
117
- return matchesDiagnosticFlag(flag, resolveDiagnosticFlags(cfg, env));
118
- }
119
-
120
- //#endregion
121
- //#region src/telegram/api-logging.ts
122
- const fallbackLogger = createSubsystemLogger("telegram/api");
123
- function resolveTelegramApiLogger(runtime, logger) {
124
- if (logger) return logger;
125
- if (runtime?.error) return runtime.error;
126
- return (message) => fallbackLogger.error(message);
127
- }
128
- async function withTelegramApiErrorLogging({ operation, fn, runtime, logger, shouldLog }) {
129
- try {
130
- return await fn();
131
- } catch (err) {
132
- if (!shouldLog || shouldLog(err)) {
133
- const errText = formatErrorMessage(err);
134
- resolveTelegramApiLogger(runtime, logger)(danger(`telegram ${operation} failed: ${errText}`));
135
- }
136
- throw err;
137
- }
138
- }
139
-
140
- //#endregion
141
- //#region src/telegram/bot-access.ts
142
- const log$1 = createSubsystemLogger("telegram/bot-access");
143
-
144
- //#endregion
145
- //#region src/telegram/bot/helpers.ts
146
- const TELEGRAM_GENERAL_TOPIC_ID = 1;
147
- /**
148
- * Build thread params for Telegram API calls (messages, media).
149
- *
150
- * IMPORTANT: Thread IDs behave differently based on chat type:
151
- * - DMs (private chats): Include message_thread_id when present (DM topics)
152
- * - Forum topics: Skip thread_id=1 (General topic), include others
153
- * - Regular groups: Thread IDs are ignored by Telegram
154
- *
155
- * General forum topic (id=1) must be treated like a regular supergroup send:
156
- * Telegram rejects sendMessage/sendMedia with message_thread_id=1 ("thread not found").
157
- *
158
- * @param thread - Thread specification with ID and scope
159
- * @returns API params object or undefined if thread_id should be omitted
160
- */
161
- function buildTelegramThreadParams(thread) {
162
- if (thread?.id == null) return;
163
- const normalized = Math.trunc(thread.id);
164
- if (thread.scope === "dm") return normalized > 0 ? { message_thread_id: normalized } : void 0;
165
- if (normalized === TELEGRAM_GENERAL_TOPIC_ID) return;
166
- return { message_thread_id: normalized };
167
- }
168
-
169
- //#endregion
170
- //#region src/telegram/caption.ts
171
- const TELEGRAM_MAX_CAPTION_LENGTH = 1024;
172
- function splitTelegramCaption(text) {
173
- const trimmed = text?.trim() ?? "";
174
- if (!trimmed) return {
175
- caption: void 0,
176
- followUpText: void 0
177
- };
178
- if (trimmed.length > TELEGRAM_MAX_CAPTION_LENGTH) return {
179
- caption: void 0,
180
- followUpText: trimmed
181
- };
182
- return {
183
- caption: trimmed,
184
- followUpText: void 0
185
- };
186
- }
187
-
188
- //#endregion
189
- //#region src/infra/wsl.ts
190
- function isWSLEnv() {
191
- if (process.env.WSL_INTEROP || process.env.WSL_DISTRO_NAME || process.env.WSLENV) return true;
192
- return false;
193
- }
194
- /**
195
- * Synchronously check if running in WSL.
196
- * Checks env vars first, then /proc/version.
197
- */
198
- function isWSLSync() {
199
- if (process.platform !== "linux") return false;
200
- if (isWSLEnv()) return true;
201
- try {
202
- const release = readFileSync("/proc/version", "utf8").toLowerCase();
203
- return release.includes("microsoft") || release.includes("wsl");
204
- } catch {
205
- return false;
206
- }
207
- }
208
- /**
209
- * Synchronously check if running in WSL2.
210
- */
211
- function isWSL2Sync() {
212
- if (!isWSLSync()) return false;
213
- try {
214
- const version = readFileSync("/proc/version", "utf8").toLowerCase();
215
- return version.includes("wsl2") || version.includes("microsoft-standard");
216
- } catch {
217
- return false;
218
- }
219
- }
220
-
221
- //#endregion
222
- //#region src/telegram/network-config.ts
223
- const TELEGRAM_DISABLE_AUTO_SELECT_FAMILY_ENV = "REMOTECLAW_TELEGRAM_DISABLE_AUTO_SELECT_FAMILY";
224
- const TELEGRAM_ENABLE_AUTO_SELECT_FAMILY_ENV = "REMOTECLAW_TELEGRAM_ENABLE_AUTO_SELECT_FAMILY";
225
- const TELEGRAM_DNS_RESULT_ORDER_ENV = "REMOTECLAW_TELEGRAM_DNS_RESULT_ORDER";
226
- let wsl2SyncCache;
227
- function isWSL2SyncCached() {
228
- if (typeof wsl2SyncCache === "boolean") return wsl2SyncCache;
229
- wsl2SyncCache = isWSL2Sync();
230
- return wsl2SyncCache;
231
- }
232
- function resolveTelegramAutoSelectFamilyDecision(params) {
233
- const env = params?.env ?? process$1.env;
234
- const nodeMajor = typeof params?.nodeMajor === "number" ? params.nodeMajor : Number(process$1.versions.node.split(".")[0]);
235
- if (isTruthyEnvValue(env[TELEGRAM_ENABLE_AUTO_SELECT_FAMILY_ENV])) return {
236
- value: true,
237
- source: `env:${TELEGRAM_ENABLE_AUTO_SELECT_FAMILY_ENV}`
238
- };
239
- if (isTruthyEnvValue(env[TELEGRAM_DISABLE_AUTO_SELECT_FAMILY_ENV])) return {
240
- value: false,
241
- source: `env:${TELEGRAM_DISABLE_AUTO_SELECT_FAMILY_ENV}`
242
- };
243
- if (typeof params?.network?.autoSelectFamily === "boolean") return {
244
- value: params.network.autoSelectFamily,
245
- source: "config"
246
- };
247
- if (isWSL2SyncCached()) return {
248
- value: false,
249
- source: "default-wsl2"
250
- };
251
- if (Number.isFinite(nodeMajor) && nodeMajor >= 22) return {
252
- value: true,
253
- source: "default-node22"
254
- };
255
- return { value: null };
256
- }
257
- /**
258
- * Resolve DNS result order setting for Telegram network requests.
259
- * Some networks/ISPs have issues with IPv6 causing fetch failures.
260
- * Setting "ipv4first" prioritizes IPv4 addresses in DNS resolution.
261
- *
262
- * Priority:
263
- * 1. Environment variable REMOTECLAW_TELEGRAM_DNS_RESULT_ORDER
264
- * 2. Config: channels.telegram.network.dnsResultOrder
265
- * 3. Default: "ipv4first" on Node 22+ (to work around common IPv6 issues)
266
- */
267
- function resolveTelegramDnsResultOrderDecision(params) {
268
- const env = params?.env ?? process$1.env;
269
- const nodeMajor = typeof params?.nodeMajor === "number" ? params.nodeMajor : Number(process$1.versions.node.split(".")[0]);
270
- const envValue = env[TELEGRAM_DNS_RESULT_ORDER_ENV]?.trim().toLowerCase();
271
- if (envValue === "ipv4first" || envValue === "verbatim") return {
272
- value: envValue,
273
- source: `env:${TELEGRAM_DNS_RESULT_ORDER_ENV}`
274
- };
275
- const configValue = (params?.network)?.dnsResultOrder?.trim().toLowerCase();
276
- if (configValue === "ipv4first" || configValue === "verbatim") return {
277
- value: configValue,
278
- source: "config"
279
- };
280
- if (Number.isFinite(nodeMajor) && nodeMajor >= 22) return {
281
- value: "ipv4first",
282
- source: "default-node22"
283
- };
284
- return { value: null };
285
- }
286
-
287
- //#endregion
288
- //#region src/telegram/fetch.ts
289
- let appliedAutoSelectFamily = null;
290
- let appliedDnsResultOrder = null;
291
- let appliedGlobalDispatcherAutoSelectFamily = null;
292
- const log = createSubsystemLogger("telegram/network");
293
- function applyTelegramNetworkWorkarounds(network) {
294
- const autoSelectDecision = resolveTelegramAutoSelectFamilyDecision({ network });
295
- if (autoSelectDecision.value !== null && autoSelectDecision.value !== appliedAutoSelectFamily) {
296
- if (typeof net.setDefaultAutoSelectFamily === "function") try {
297
- net.setDefaultAutoSelectFamily(autoSelectDecision.value);
298
- appliedAutoSelectFamily = autoSelectDecision.value;
299
- const label = autoSelectDecision.source ? ` (${autoSelectDecision.source})` : "";
300
- log.info(`autoSelectFamily=${autoSelectDecision.value}${label}`);
301
- } catch {}
302
- }
303
- if (autoSelectDecision.value !== null && autoSelectDecision.value !== appliedGlobalDispatcherAutoSelectFamily) try {
304
- setGlobalDispatcher(new Agent({ connect: {
305
- autoSelectFamily: autoSelectDecision.value,
306
- autoSelectFamilyAttemptTimeout: 300
307
- } }));
308
- appliedGlobalDispatcherAutoSelectFamily = autoSelectDecision.value;
309
- log.info(`global undici dispatcher autoSelectFamily=${autoSelectDecision.value}`);
310
- } catch {}
311
- const dnsDecision = resolveTelegramDnsResultOrderDecision({ network });
312
- if (dnsDecision.value !== null && dnsDecision.value !== appliedDnsResultOrder) {
313
- if (typeof dns.setDefaultResultOrder === "function") try {
314
- dns.setDefaultResultOrder(dnsDecision.value);
315
- appliedDnsResultOrder = dnsDecision.value;
316
- const label = dnsDecision.source ? ` (${dnsDecision.source})` : "";
317
- log.info(`dnsResultOrder=${dnsDecision.value}${label}`);
318
- } catch {}
319
- }
320
- }
321
- function resolveTelegramFetch(proxyFetch, options) {
322
- applyTelegramNetworkWorkarounds(options?.network);
323
- if (proxyFetch) return resolveFetch(proxyFetch);
324
- const fetchImpl = resolveFetch();
325
- if (!fetchImpl) throw new Error("fetch is not available; set channels.telegram.proxy in config");
326
- return fetchImpl;
327
- }
328
-
329
- //#endregion
330
- //#region src/telegram/format.ts
331
- function escapeHtml(text) {
332
- return text.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;");
333
- }
334
- function escapeHtmlAttr(text) {
335
- return escapeHtml(text).replace(/"/g, "&quot;");
336
- }
337
- /**
338
- * File extensions that share TLDs and commonly appear in code/documentation.
339
- * These are wrapped in <code> tags to prevent Telegram from generating
340
- * spurious domain registrar previews.
341
- *
342
- * Only includes extensions that are:
343
- * 1. Commonly used as file extensions in code/docs
344
- * 2. Rarely used as intentional domain references
345
- *
346
- * Excluded: .ai, .io, .tv, .fm (popular domain TLDs like x.ai, vercel.io, github.io)
347
- */
348
- const FILE_EXTENSIONS_WITH_TLD = new Set([
349
- "md",
350
- "go",
351
- "py",
352
- "pl",
353
- "sh",
354
- "am",
355
- "at",
356
- "be",
357
- "cc"
358
- ]);
359
- /** Detects when markdown-it linkify auto-generated a link from a bare filename (e.g. README.md → http://README.md) */
360
- function isAutoLinkedFileRef(href, label) {
361
- if (href.replace(/^https?:\/\//i, "") !== label) return false;
362
- const dotIndex = label.lastIndexOf(".");
363
- if (dotIndex < 1) return false;
364
- const ext = label.slice(dotIndex + 1).toLowerCase();
365
- if (!FILE_EXTENSIONS_WITH_TLD.has(ext)) return false;
366
- const segments = label.split("/");
367
- if (segments.length > 1) {
368
- for (let i = 0; i < segments.length - 1; i++) if (segments[i].includes(".")) return false;
369
- }
370
- return true;
371
- }
372
- function buildTelegramLink(link, text) {
373
- const href = link.href.trim();
374
- if (!href) return null;
375
- if (link.start === link.end) return null;
376
- if (isAutoLinkedFileRef(href, text.slice(link.start, link.end))) return null;
377
- const safeHref = escapeHtmlAttr(href);
378
- return {
379
- start: link.start,
380
- end: link.end,
381
- open: `<a href="${safeHref}">`,
382
- close: "</a>"
383
- };
384
- }
385
- function renderTelegramHtml(ir) {
386
- return renderMarkdownWithMarkers(ir, {
387
- styleMarkers: {
388
- bold: {
389
- open: "<b>",
390
- close: "</b>"
391
- },
392
- italic: {
393
- open: "<i>",
394
- close: "</i>"
395
- },
396
- strikethrough: {
397
- open: "<s>",
398
- close: "</s>"
399
- },
400
- code: {
401
- open: "<code>",
402
- close: "</code>"
403
- },
404
- code_block: {
405
- open: "<pre><code>",
406
- close: "</code></pre>"
407
- },
408
- spoiler: {
409
- open: "<tg-spoiler>",
410
- close: "</tg-spoiler>"
411
- },
412
- blockquote: {
413
- open: "<blockquote>",
414
- close: "</blockquote>"
415
- }
416
- },
417
- escapeText: escapeHtml,
418
- buildLink: buildTelegramLink
419
- });
420
- }
421
- function markdownToTelegramHtml(markdown, options = {}) {
422
- const html = renderTelegramHtml(markdownToIR(markdown ?? "", {
423
- linkify: true,
424
- enableSpoilers: true,
425
- headingStyle: "none",
426
- blockquotePrefix: "",
427
- tableMode: options.tableMode
428
- }));
429
- if (options.wrapFileRefs !== false) return wrapFileReferencesInHtml(html);
430
- return html;
431
- }
432
- /**
433
- * Wraps standalone file references (with TLD extensions) in <code> tags.
434
- * This prevents Telegram from treating them as URLs and generating
435
- * irrelevant domain registrar previews.
436
- *
437
- * Runs AFTER markdown→HTML conversion to avoid modifying HTML attributes.
438
- * Skips content inside <code>, <pre>, and <a> tags to avoid nesting issues.
439
- */
440
- /** Escape regex metacharacters in a string */
441
- function escapeRegex(str) {
442
- return str.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
443
- }
444
- const FILE_EXTENSIONS_PATTERN = Array.from(FILE_EXTENSIONS_WITH_TLD).map(escapeRegex).join("|");
445
- const AUTO_LINKED_ANCHOR_PATTERN = /<a\s+href="https?:\/\/([^"]+)"[^>]*>\1<\/a>/gi;
446
- const FILE_REFERENCE_PATTERN = new RegExp(`(^|[^a-zA-Z0-9_\\-/])([a-zA-Z0-9_.\\-./]+\\.(?:${FILE_EXTENSIONS_PATTERN}))(?=$|[^a-zA-Z0-9_\\-/])`, "gi");
447
- const ORPHANED_TLD_PATTERN = new RegExp(`([^a-zA-Z0-9]|^)([A-Za-z]\\.(?:${FILE_EXTENSIONS_PATTERN}))(?=[^a-zA-Z0-9/]|$)`, "g");
448
- const HTML_TAG_PATTERN = /(<\/?)([a-zA-Z][a-zA-Z0-9-]*)\b[^>]*?>/gi;
449
- function wrapStandaloneFileRef(match, prefix, filename) {
450
- if (filename.startsWith("//")) return match;
451
- if (/https?:\/\/$/i.test(prefix)) return match;
452
- return `${prefix}<code>${escapeHtml(filename)}</code>`;
453
- }
454
- function wrapSegmentFileRefs(text, codeDepth, preDepth, anchorDepth) {
455
- if (!text || codeDepth > 0 || preDepth > 0 || anchorDepth > 0) return text;
456
- return text.replace(FILE_REFERENCE_PATTERN, wrapStandaloneFileRef).replace(ORPHANED_TLD_PATTERN, (match, prefix, tld) => prefix === ">" ? match : `${prefix}<code>${escapeHtml(tld)}</code>`);
457
- }
458
- function wrapFileReferencesInHtml(html) {
459
- AUTO_LINKED_ANCHOR_PATTERN.lastIndex = 0;
460
- const deLinkified = html.replace(AUTO_LINKED_ANCHOR_PATTERN, (_match, label) => {
461
- if (!isAutoLinkedFileRef(`http://${label}`, label)) return _match;
462
- return `<code>${escapeHtml(label)}</code>`;
463
- });
464
- let codeDepth = 0;
465
- let preDepth = 0;
466
- let anchorDepth = 0;
467
- let result = "";
468
- let lastIndex = 0;
469
- HTML_TAG_PATTERN.lastIndex = 0;
470
- let match;
471
- while ((match = HTML_TAG_PATTERN.exec(deLinkified)) !== null) {
472
- const tagStart = match.index;
473
- const tagEnd = HTML_TAG_PATTERN.lastIndex;
474
- const isClosing = match[1] === "</";
475
- const tagName = match[2].toLowerCase();
476
- const textBefore = deLinkified.slice(lastIndex, tagStart);
477
- result += wrapSegmentFileRefs(textBefore, codeDepth, preDepth, anchorDepth);
478
- if (tagName === "code") codeDepth = isClosing ? Math.max(0, codeDepth - 1) : codeDepth + 1;
479
- else if (tagName === "pre") preDepth = isClosing ? Math.max(0, preDepth - 1) : preDepth + 1;
480
- else if (tagName === "a") anchorDepth = isClosing ? Math.max(0, anchorDepth - 1) : anchorDepth + 1;
481
- result += deLinkified.slice(tagStart, tagEnd);
482
- lastIndex = tagEnd;
483
- }
484
- const remainingText = deLinkified.slice(lastIndex);
485
- result += wrapSegmentFileRefs(remainingText, codeDepth, preDepth, anchorDepth);
486
- return result;
487
- }
488
- function renderTelegramHtmlText(text, options = {}) {
489
- if ((options.textMode ?? "markdown") === "html") return text;
490
- return markdownToTelegramHtml(text, { tableMode: options.tableMode });
491
- }
492
-
493
- //#endregion
494
- //#region src/telegram/network-errors.ts
495
- const RECOVERABLE_ERROR_CODES = new Set([
496
- "ECONNRESET",
497
- "ECONNREFUSED",
498
- "EPIPE",
499
- "ETIMEDOUT",
500
- "ESOCKETTIMEDOUT",
501
- "ENETUNREACH",
502
- "EHOSTUNREACH",
503
- "ENOTFOUND",
504
- "EAI_AGAIN",
505
- "UND_ERR_CONNECT_TIMEOUT",
506
- "UND_ERR_HEADERS_TIMEOUT",
507
- "UND_ERR_BODY_TIMEOUT",
508
- "UND_ERR_SOCKET",
509
- "UND_ERR_ABORTED",
510
- "ECONNABORTED",
511
- "ERR_NETWORK"
512
- ]);
513
- const RECOVERABLE_ERROR_NAMES = new Set([
514
- "AbortError",
515
- "TimeoutError",
516
- "ConnectTimeoutError",
517
- "HeadersTimeoutError",
518
- "BodyTimeoutError"
519
- ]);
520
- const ALWAYS_RECOVERABLE_MESSAGES = new Set(["fetch failed", "typeerror: fetch failed"]);
521
- const RECOVERABLE_MESSAGE_SNIPPETS = [
522
- "undici",
523
- "network error",
524
- "network request",
525
- "client network socket disconnected",
526
- "socket hang up",
527
- "getaddrinfo",
528
- "timeout",
529
- "timed out"
530
- ];
531
- function normalizeCode(code) {
532
- return code?.trim().toUpperCase() ?? "";
533
- }
534
- function getErrorName(err) {
535
- if (!err || typeof err !== "object") return "";
536
- return "name" in err ? String(err.name) : "";
537
- }
538
- function getErrorCode(err) {
539
- const direct = extractErrorCode(err);
540
- if (direct) return direct;
541
- if (!err || typeof err !== "object") return;
542
- const errno = err.errno;
543
- if (typeof errno === "string") return errno;
544
- if (typeof errno === "number") return String(errno);
545
- }
546
- function collectErrorCandidates(err) {
547
- const queue = [err];
548
- const seen = /* @__PURE__ */ new Set();
549
- const candidates = [];
550
- while (queue.length > 0) {
551
- const current = queue.shift();
552
- if (current == null || seen.has(current)) continue;
553
- seen.add(current);
554
- candidates.push(current);
555
- if (typeof current === "object") {
556
- const cause = current.cause;
557
- if (cause && !seen.has(cause)) queue.push(cause);
558
- const reason = current.reason;
559
- if (reason && !seen.has(reason)) queue.push(reason);
560
- const errors = current.errors;
561
- if (Array.isArray(errors)) {
562
- for (const nested of errors) if (nested && !seen.has(nested)) queue.push(nested);
563
- }
564
- if (getErrorName(current) === "HttpError") {
565
- const wrappedError = current.error;
566
- if (wrappedError && !seen.has(wrappedError)) queue.push(wrappedError);
567
- }
568
- }
569
- }
570
- return candidates;
571
- }
572
- function isRecoverableTelegramNetworkError(err, options = {}) {
573
- if (!err) return false;
574
- const allowMessageMatch = typeof options.allowMessageMatch === "boolean" ? options.allowMessageMatch : options.context !== "send";
575
- for (const candidate of collectErrorCandidates(err)) {
576
- const code = normalizeCode(getErrorCode(candidate));
577
- if (code && RECOVERABLE_ERROR_CODES.has(code)) return true;
578
- const name = getErrorName(candidate);
579
- if (name && RECOVERABLE_ERROR_NAMES.has(name)) return true;
580
- const message = formatErrorMessage(candidate).trim().toLowerCase();
581
- if (message && ALWAYS_RECOVERABLE_MESSAGES.has(message)) return true;
582
- if (allowMessageMatch && message) {
583
- if (RECOVERABLE_MESSAGE_SNIPPETS.some((snippet) => message.includes(snippet))) return true;
584
- }
585
- }
586
- return false;
587
- }
588
-
589
- //#endregion
590
- //#region src/telegram/proxy.ts
591
- function makeProxyFetch(proxyUrl) {
592
- const agent = new ProxyAgent(proxyUrl);
593
- const fetcher = ((input, init) => fetch(input, {
594
- ...init,
595
- dispatcher: agent
596
- }));
597
- return fetcher;
598
- }
599
-
600
- //#endregion
601
- //#region src/telegram/sent-message-cache.ts
602
- /**
603
- * In-memory cache of sent message IDs per chat.
604
- * Used to identify bot's own messages for reaction filtering ("own" mode).
605
- */
606
- const TTL_MS = 1440 * 60 * 1e3;
607
- const sentMessages = /* @__PURE__ */ new Map();
608
- function getChatKey(chatId) {
609
- return String(chatId);
610
- }
611
- function cleanupExpired(entry) {
612
- const now = Date.now();
613
- for (const [msgId, timestamp] of entry.timestamps) if (now - timestamp > TTL_MS) entry.timestamps.delete(msgId);
614
- }
615
- /**
616
- * Record a message ID as sent by the bot.
617
- */
618
- function recordSentMessage(chatId, messageId) {
619
- const key = getChatKey(chatId);
620
- let entry = sentMessages.get(key);
621
- if (!entry) {
622
- entry = { timestamps: /* @__PURE__ */ new Map() };
623
- sentMessages.set(key, entry);
624
- }
625
- entry.timestamps.set(messageId, Date.now());
626
- if (entry.timestamps.size > 100) cleanupExpired(entry);
627
- }
628
-
629
- //#endregion
630
- //#region src/cron/store.ts
631
- const DEFAULT_CRON_DIR = path.join(CONFIG_DIR, "cron");
632
- const DEFAULT_CRON_STORE_PATH = path.join(DEFAULT_CRON_DIR, "jobs.json");
633
- function resolveCronStorePath(storePath) {
634
- if (storePath?.trim()) {
635
- const raw = storePath.trim();
636
- if (raw.startsWith("~")) return path.resolve(expandHomePrefix(raw));
637
- return path.resolve(raw);
638
- }
639
- return DEFAULT_CRON_STORE_PATH;
640
- }
641
- async function loadCronStore(storePath) {
642
- try {
643
- const raw = await fs.promises.readFile(storePath, "utf-8");
644
- let parsed;
645
- try {
646
- parsed = JSON5.parse(raw);
647
- } catch (err) {
648
- throw new Error(`Failed to parse cron store at ${storePath}: ${String(err)}`, { cause: err });
649
- }
650
- const parsedRecord = parsed && typeof parsed === "object" && !Array.isArray(parsed) ? parsed : {};
651
- return {
652
- version: 1,
653
- jobs: (Array.isArray(parsedRecord.jobs) ? parsedRecord.jobs : []).filter(Boolean)
654
- };
655
- } catch (err) {
656
- if (err?.code === "ENOENT") return {
657
- version: 1,
658
- jobs: []
659
- };
660
- throw err;
661
- }
662
- }
663
- async function saveCronStore(storePath, store) {
664
- await fs.promises.mkdir(path.dirname(storePath), { recursive: true });
665
- const { randomBytes } = await import("node:crypto");
666
- const tmp = `${storePath}.${process.pid}.${randomBytes(8).toString("hex")}.tmp`;
667
- const json = JSON.stringify(store, null, 2);
668
- await fs.promises.writeFile(tmp, json, "utf-8");
669
- await fs.promises.rename(tmp, storePath);
670
- try {
671
- await fs.promises.copyFile(storePath, `${storePath}.bak`);
672
- } catch {}
673
- }
674
-
675
- //#endregion
676
- //#region src/telegram/target-writeback.ts
677
- const writebackLogger = createSubsystemLogger("telegram/target-writeback");
678
- function asObjectRecord(value) {
679
- if (!value || typeof value !== "object" || Array.isArray(value)) return null;
680
- return value;
681
- }
682
- function normalizeTelegramLookupTargetForMatch(raw) {
683
- const normalized = normalizeTelegramLookupTarget(raw);
684
- if (!normalized) return;
685
- return normalized.startsWith("@") ? normalized.toLowerCase() : normalized;
686
- }
687
- function normalizeTelegramTargetForMatch(raw) {
688
- const parsed = parseTelegramTarget(raw);
689
- const normalized = normalizeTelegramLookupTargetForMatch(parsed.chatId);
690
- if (!normalized) return;
691
- return `${normalized}|${parsed.messageThreadId == null ? "" : String(parsed.messageThreadId)}`;
692
- }
693
- function buildResolvedTelegramTarget(params) {
694
- const { raw, parsed, resolvedChatId } = params;
695
- if (parsed.messageThreadId == null) return resolvedChatId;
696
- return raw.includes(":topic:") ? `${resolvedChatId}:topic:${parsed.messageThreadId}` : `${resolvedChatId}:${parsed.messageThreadId}`;
697
- }
698
- function resolveLegacyRewrite(params) {
699
- const parsed = parseTelegramTarget(params.raw);
700
- if (normalizeTelegramChatId(parsed.chatId)) return null;
701
- const normalized = normalizeTelegramLookupTargetForMatch(parsed.chatId);
702
- if (!normalized) return null;
703
- return {
704
- matchKey: `${normalized}|${parsed.messageThreadId == null ? "" : String(parsed.messageThreadId)}`,
705
- resolvedTarget: buildResolvedTelegramTarget({
706
- raw: params.raw,
707
- parsed,
708
- resolvedChatId: params.resolvedChatId
709
- })
710
- };
711
- }
712
- function rewriteTargetIfMatch(params) {
713
- if (typeof params.rawValue !== "string" && typeof params.rawValue !== "number") return null;
714
- const value = String(params.rawValue).trim();
715
- if (!value) return null;
716
- if (normalizeTelegramTargetForMatch(value) !== params.matchKey) return null;
717
- return params.resolvedTarget;
718
- }
719
- function replaceTelegramDefaultToTargets(params) {
720
- let changed = false;
721
- const telegram = asObjectRecord(params.cfg.channels?.telegram);
722
- if (!telegram) return changed;
723
- const maybeReplace = (holder, key) => {
724
- const nextTarget = rewriteTargetIfMatch({
725
- rawValue: holder[key],
726
- matchKey: params.matchKey,
727
- resolvedTarget: params.resolvedTarget
728
- });
729
- if (!nextTarget) return;
730
- holder[key] = nextTarget;
731
- changed = true;
732
- };
733
- maybeReplace(telegram, "defaultTo");
734
- const accounts = asObjectRecord(telegram.accounts);
735
- if (!accounts) return changed;
736
- for (const accountId of Object.keys(accounts)) {
737
- const account = asObjectRecord(accounts[accountId]);
738
- if (!account) continue;
739
- maybeReplace(account, "defaultTo");
740
- }
741
- return changed;
742
- }
743
- async function maybePersistResolvedTelegramTarget(params) {
744
- const raw = params.rawTarget.trim();
745
- if (!raw) return;
746
- const rewrite = resolveLegacyRewrite({
747
- raw,
748
- resolvedChatId: params.resolvedChatId
749
- });
750
- if (!rewrite) return;
751
- const { matchKey, resolvedTarget } = rewrite;
752
- try {
753
- const { snapshot, writeOptions } = await readConfigFileSnapshotForWrite();
754
- const nextConfig = structuredClone(snapshot.config ?? {});
755
- if (replaceTelegramDefaultToTargets({
756
- cfg: nextConfig,
757
- matchKey,
758
- resolvedTarget
759
- })) {
760
- await writeConfigFile(nextConfig, writeOptions);
761
- if (params.verbose) writebackLogger.warn(`resolved Telegram defaultTo target ${raw} -> ${resolvedTarget}`);
762
- }
763
- } catch (err) {
764
- if (params.verbose) writebackLogger.warn(`failed to persist Telegram defaultTo target ${raw}: ${String(err)}`);
765
- }
766
- try {
767
- const storePath = resolveCronStorePath(params.cfg.cron?.store);
768
- const store = await loadCronStore(storePath);
769
- let cronChanged = false;
770
- for (const job of store.jobs) {
771
- if (job.delivery?.channel !== "telegram") continue;
772
- const nextTarget = rewriteTargetIfMatch({
773
- rawValue: job.delivery.to,
774
- matchKey,
775
- resolvedTarget
776
- });
777
- if (!nextTarget) continue;
778
- job.delivery.to = nextTarget;
779
- cronChanged = true;
780
- }
781
- if (cronChanged) {
782
- await saveCronStore(storePath, store);
783
- if (params.verbose) writebackLogger.warn(`resolved Telegram cron delivery target ${raw} -> ${resolvedTarget}`);
784
- }
785
- } catch (err) {
786
- if (params.verbose) writebackLogger.warn(`failed to persist Telegram cron target ${raw}: ${String(err)}`);
787
- }
788
- }
789
-
790
- //#endregion
791
- //#region src/telegram/voice.ts
792
- function resolveTelegramVoiceDecision(opts) {
793
- if (!opts.wantsVoice) return { useVoice: false };
794
- if (isTelegramVoiceCompatibleAudio(opts)) return { useVoice: true };
795
- return {
796
- useVoice: false,
797
- reason: `media is ${opts.contentType ?? "unknown"} (${opts.fileName ?? "unknown"})`
798
- };
799
- }
800
- function resolveTelegramVoiceSend(opts) {
801
- const decision = resolveTelegramVoiceDecision(opts);
802
- if (decision.reason && opts.logFallback) opts.logFallback(`Telegram voice requested but ${decision.reason}; sending as audio file instead.`);
803
- return { useVoice: decision.useVoice };
804
- }
805
-
806
- //#endregion
807
- //#region src/telegram/send.ts
808
- const PARSE_ERR_RE = /can't parse entities|parse entities|find end of the entity/i;
809
- const THREAD_NOT_FOUND_RE = /400:\s*Bad Request:\s*message thread not found/i;
810
- const CHAT_NOT_FOUND_RE = /400: Bad Request: chat not found/i;
811
- const sendLogger = createSubsystemLogger("telegram/send");
812
- const diagLogger = createSubsystemLogger("telegram/diagnostic");
813
- function createTelegramHttpLogger(cfg) {
814
- if (!isDiagnosticFlagEnabled("telegram.http", cfg)) return () => {};
815
- return (label, err) => {
816
- if (!(err instanceof HttpError)) return;
817
- const detail = redactSensitiveText(formatUncaughtError(err.error ?? err));
818
- diagLogger.warn(`telegram http error (${label}): ${detail}`);
819
- };
820
- }
821
- function resolveTelegramClientOptions(account) {
822
- const proxyUrl = account.config.proxy?.trim();
823
- const fetchImpl = resolveTelegramFetch(proxyUrl ? makeProxyFetch(proxyUrl) : void 0, { network: account.config.network });
824
- const timeoutSeconds = typeof account.config.timeoutSeconds === "number" && Number.isFinite(account.config.timeoutSeconds) ? Math.max(1, Math.floor(account.config.timeoutSeconds)) : void 0;
825
- return fetchImpl || timeoutSeconds ? {
826
- ...fetchImpl ? { fetch: fetchImpl } : {},
827
- ...timeoutSeconds ? { timeoutSeconds } : {}
828
- } : void 0;
829
- }
830
- function resolveToken(explicit, params) {
831
- if (explicit?.trim()) return explicit.trim();
832
- if (!params.token) throw new Error(`Telegram bot token missing for account "${params.accountId}" (set channels.telegram.accounts.${params.accountId}.botToken/tokenFile or TELEGRAM_BOT_TOKEN for default).`);
833
- return params.token.trim();
834
- }
835
- async function resolveChatId(to, params) {
836
- const numericChatId = normalizeTelegramChatId(to);
837
- if (numericChatId) return numericChatId;
838
- const lookupTarget = normalizeTelegramLookupTarget(to);
839
- const getChat = params.api.getChat;
840
- if (!lookupTarget || typeof getChat !== "function") throw new Error("Telegram recipient must be a numeric chat ID");
841
- try {
842
- const chat = await getChat.call(params.api, lookupTarget);
843
- const resolved = normalizeTelegramChatId(String(chat?.id ?? ""));
844
- if (!resolved) throw new Error(`resolved chat id is not numeric (${String(chat?.id ?? "")})`);
845
- if (params.verbose) sendLogger.warn(`telegram recipient ${lookupTarget} resolved to numeric chat id ${resolved}`);
846
- return resolved;
847
- } catch (err) {
848
- const detail = formatErrorMessage(err);
849
- throw new Error(`Telegram recipient ${lookupTarget} could not be resolved to a numeric chat ID (${detail})`, { cause: err });
850
- }
851
- }
852
- async function resolveAndPersistChatId(params) {
853
- const chatId = await resolveChatId(params.lookupTarget, {
854
- api: params.api,
855
- verbose: params.verbose
856
- });
857
- await maybePersistResolvedTelegramTarget({
858
- cfg: params.cfg,
859
- rawTarget: params.persistTarget,
860
- resolvedChatId: chatId,
861
- verbose: params.verbose
862
- });
863
- return chatId;
864
- }
865
- function isTelegramThreadNotFoundError(err) {
866
- return THREAD_NOT_FOUND_RE.test(formatErrorMessage(err));
867
- }
868
- function hasMessageThreadIdParam(params) {
869
- if (!params) return false;
870
- const value = params.message_thread_id;
871
- if (typeof value === "number") return Number.isFinite(value);
872
- if (typeof value === "string") return value.trim().length > 0;
873
- return false;
874
- }
875
- function removeMessageThreadIdParam(params) {
876
- if (!params || !hasMessageThreadIdParam(params)) return params;
877
- const next = { ...params };
878
- delete next.message_thread_id;
879
- return Object.keys(next).length > 0 ? next : void 0;
880
- }
881
- function isTelegramHtmlParseError(err) {
882
- return PARSE_ERR_RE.test(formatErrorMessage(err));
883
- }
884
- function buildTelegramThreadReplyParams(params) {
885
- const messageThreadId = params.messageThreadId != null ? params.messageThreadId : params.targetMessageThreadId;
886
- const threadScope = params.chatType === "direct" ? "dm" : "forum";
887
- const threadIdParams = buildTelegramThreadParams(messageThreadId != null ? {
888
- id: messageThreadId,
889
- scope: threadScope
890
- } : void 0);
891
- const threadParams = threadIdParams ? { ...threadIdParams } : {};
892
- if (params.replyToMessageId != null) {
893
- const replyToMessageId = Math.trunc(params.replyToMessageId);
894
- if (params.quoteText?.trim()) threadParams.reply_parameters = {
895
- message_id: replyToMessageId,
896
- quote: params.quoteText.trim()
897
- };
898
- else threadParams.reply_to_message_id = replyToMessageId;
899
- }
900
- return threadParams;
901
- }
902
- async function withTelegramHtmlParseFallback(params) {
903
- try {
904
- return await params.requestHtml(params.label);
905
- } catch (err) {
906
- if (!isTelegramHtmlParseError(err)) throw err;
907
- if (params.verbose) sendLogger.warn(`telegram ${params.label} failed with HTML parse error, retrying as plain text: ${formatErrorMessage(err)}`);
908
- return await params.requestPlain(`${params.label}-plain`);
909
- }
910
- }
911
- function resolveTelegramApiContext(opts) {
912
- const cfg = opts.cfg ?? loadConfig();
913
- const account = resolveTelegramAccount({
914
- cfg,
915
- accountId: opts.accountId
916
- });
917
- const token = resolveToken(opts.token, account);
918
- const client = resolveTelegramClientOptions(account);
919
- return {
920
- cfg,
921
- account,
922
- api: opts.api ?? new Bot(token, client ? { client } : void 0).api
923
- };
924
- }
925
- function createTelegramRequestWithDiag(params) {
926
- const request = createTelegramRetryRunner({
927
- retry: params.retry,
928
- configRetry: params.account.config.retry,
929
- verbose: params.verbose,
930
- ...params.shouldRetry ? { shouldRetry: params.shouldRetry } : {}
931
- });
932
- const logHttpError = createTelegramHttpLogger(params.cfg);
933
- return (fn, label, options) => {
934
- const runRequest = () => request(fn, label);
935
- return (params.useApiErrorLogging === false ? runRequest() : withTelegramApiErrorLogging({
936
- operation: label ?? "request",
937
- fn: runRequest,
938
- ...options?.shouldLog ? { shouldLog: options.shouldLog } : {}
939
- })).catch((err) => {
940
- logHttpError(label ?? "request", err);
941
- throw err;
942
- });
943
- };
944
- }
945
- function wrapTelegramChatNotFoundError(err, params) {
946
- if (!CHAT_NOT_FOUND_RE.test(formatErrorMessage(err))) return err;
947
- return new Error([
948
- `Telegram send failed: chat not found (chat_id=${params.chatId}).`,
949
- "Likely: bot not started in DM, bot removed from group/channel, group migrated (new -100… id), or wrong bot token.",
950
- `Input was: ${JSON.stringify(params.input)}.`
951
- ].join(" "));
952
- }
953
- async function withTelegramThreadFallback(params, label, verbose, attempt) {
954
- try {
955
- return await attempt(params, label);
956
- } catch (err) {
957
- if (!hasMessageThreadIdParam(params) || !isTelegramThreadNotFoundError(err)) throw err;
958
- if (verbose) sendLogger.warn(`telegram ${label} failed with message_thread_id, retrying without thread: ${formatErrorMessage(err)}`);
959
- return await attempt(removeMessageThreadIdParam(params), `${label}-threadless`);
960
- }
961
- }
962
- function createRequestWithChatNotFound(params) {
963
- return async (fn, label) => params.requestWithDiag(fn, label).catch((err) => {
964
- throw wrapTelegramChatNotFoundError(err, {
965
- chatId: params.chatId,
966
- input: params.input
967
- });
968
- });
969
- }
970
- function buildInlineKeyboard(buttons) {
971
- if (!buttons?.length) return;
972
- const rows = buttons.map((row) => row.filter((button) => button?.text && button?.callback_data).map((button) => ({
973
- text: button.text,
974
- callback_data: button.callback_data,
975
- ...button.style ? { style: button.style } : {}
976
- }))).filter((row) => row.length > 0);
977
- if (rows.length === 0) return;
978
- return { inline_keyboard: rows };
979
- }
980
- async function sendMessageTelegram(to, text, opts = {}) {
981
- const { cfg, account, api } = resolveTelegramApiContext(opts);
982
- const target = parseTelegramTarget(to);
983
- const chatId = await resolveAndPersistChatId({
984
- cfg,
985
- api,
986
- lookupTarget: target.chatId,
987
- persistTarget: to,
988
- verbose: opts.verbose
989
- });
990
- const mediaUrl = opts.mediaUrl?.trim();
991
- const replyMarkup = buildInlineKeyboard(opts.buttons);
992
- const threadParams = buildTelegramThreadReplyParams({
993
- targetMessageThreadId: target.messageThreadId,
994
- messageThreadId: opts.messageThreadId,
995
- chatType: target.chatType,
996
- replyToMessageId: opts.replyToMessageId,
997
- quoteText: opts.quoteText
998
- });
999
- const hasThreadParams = Object.keys(threadParams).length > 0;
1000
- const requestWithChatNotFound = createRequestWithChatNotFound({
1001
- requestWithDiag: createTelegramRequestWithDiag({
1002
- cfg,
1003
- account,
1004
- retry: opts.retry,
1005
- verbose: opts.verbose,
1006
- shouldRetry: (err) => isRecoverableTelegramNetworkError(err, { context: "send" })
1007
- }),
1008
- chatId,
1009
- input: to
1010
- });
1011
- const textMode = opts.textMode ?? "markdown";
1012
- const tableMode = resolveMarkdownTableMode({
1013
- cfg,
1014
- channel: "telegram",
1015
- accountId: account.accountId
1016
- });
1017
- const renderHtmlText = (value) => renderTelegramHtmlText(value, {
1018
- textMode,
1019
- tableMode
1020
- });
1021
- const linkPreviewOptions = account.config.linkPreview ?? true ? void 0 : { is_disabled: true };
1022
- const sendTelegramText = async (rawText, params, fallbackText) => {
1023
- return await withTelegramThreadFallback(params, "message", opts.verbose, async (effectiveParams, label) => {
1024
- const htmlText = renderHtmlText(rawText);
1025
- const baseParams = effectiveParams ? { ...effectiveParams } : {};
1026
- if (linkPreviewOptions) baseParams.link_preview_options = linkPreviewOptions;
1027
- const hasBaseParams = Object.keys(baseParams).length > 0;
1028
- const sendParams = {
1029
- parse_mode: "HTML",
1030
- ...baseParams,
1031
- ...opts.silent === true ? { disable_notification: true } : {}
1032
- };
1033
- return await withTelegramHtmlParseFallback({
1034
- label,
1035
- verbose: opts.verbose,
1036
- requestHtml: (retryLabel) => requestWithChatNotFound(() => api.sendMessage(chatId, htmlText, sendParams), retryLabel),
1037
- requestPlain: (retryLabel) => {
1038
- const plainParams = hasBaseParams ? baseParams : void 0;
1039
- return requestWithChatNotFound(() => plainParams ? api.sendMessage(chatId, fallbackText ?? rawText, plainParams) : api.sendMessage(chatId, fallbackText ?? rawText), retryLabel);
1040
- }
1041
- });
1042
- });
1043
- };
1044
- if (mediaUrl) {
1045
- const media = await loadWebMedia(mediaUrl, {
1046
- maxBytes: opts.maxBytes,
1047
- localRoots: opts.mediaLocalRoots
1048
- });
1049
- const kind = mediaKindFromMime(media.contentType ?? void 0);
1050
- const isGif = isGifMedia({
1051
- contentType: media.contentType,
1052
- fileName: media.fileName
1053
- });
1054
- const isVideoNote = kind === "video" && opts.asVideoNote === true;
1055
- const fileName = media.fileName ?? (isGif ? "animation.gif" : inferFilename(kind)) ?? "file";
1056
- const file = new InputFile(media.buffer, fileName);
1057
- let caption;
1058
- let followUpText;
1059
- if (isVideoNote) {
1060
- caption = void 0;
1061
- followUpText = text.trim() ? text : void 0;
1062
- } else {
1063
- const split = splitTelegramCaption(text);
1064
- caption = split.caption;
1065
- followUpText = split.followUpText;
1066
- }
1067
- const htmlCaption = caption ? renderHtmlText(caption) : void 0;
1068
- const needsSeparateText = Boolean(followUpText);
1069
- const baseMediaParams = {
1070
- ...hasThreadParams ? threadParams : {},
1071
- ...!needsSeparateText && replyMarkup ? { reply_markup: replyMarkup } : {}
1072
- };
1073
- const mediaParams = {
1074
- ...htmlCaption ? {
1075
- caption: htmlCaption,
1076
- parse_mode: "HTML"
1077
- } : {},
1078
- ...baseMediaParams,
1079
- ...opts.silent === true ? { disable_notification: true } : {}
1080
- };
1081
- const sendMedia = async (label, sender) => await withTelegramThreadFallback(mediaParams, label, opts.verbose, async (effectiveParams, retryLabel) => requestWithChatNotFound(() => sender(effectiveParams), retryLabel));
1082
- const mediaSender = (() => {
1083
- if (isGif) return {
1084
- label: "animation",
1085
- sender: (effectiveParams) => api.sendAnimation(chatId, file, effectiveParams)
1086
- };
1087
- if (kind === "image") return {
1088
- label: "photo",
1089
- sender: (effectiveParams) => api.sendPhoto(chatId, file, effectiveParams)
1090
- };
1091
- if (kind === "video") {
1092
- if (isVideoNote) return {
1093
- label: "video_note",
1094
- sender: (effectiveParams) => api.sendVideoNote(chatId, file, effectiveParams)
1095
- };
1096
- return {
1097
- label: "video",
1098
- sender: (effectiveParams) => api.sendVideo(chatId, file, effectiveParams)
1099
- };
1100
- }
1101
- if (kind === "audio") {
1102
- const { useVoice } = resolveTelegramVoiceSend({
1103
- wantsVoice: opts.asVoice === true,
1104
- contentType: media.contentType,
1105
- fileName,
1106
- logFallback: logVerbose
1107
- });
1108
- if (useVoice) return {
1109
- label: "voice",
1110
- sender: (effectiveParams) => api.sendVoice(chatId, file, effectiveParams)
1111
- };
1112
- return {
1113
- label: "audio",
1114
- sender: (effectiveParams) => api.sendAudio(chatId, file, effectiveParams)
1115
- };
1116
- }
1117
- return {
1118
- label: "document",
1119
- sender: (effectiveParams) => api.sendDocument(chatId, file, effectiveParams)
1120
- };
1121
- })();
1122
- const result = await sendMedia(mediaSender.label, mediaSender.sender);
1123
- const mediaMessageId = String(result?.message_id ?? "unknown");
1124
- const resolvedChatId = String(result?.chat?.id ?? chatId);
1125
- if (result?.message_id) recordSentMessage(chatId, result.message_id);
1126
- recordChannelActivity({
1127
- channel: "telegram",
1128
- accountId: account.accountId,
1129
- direction: "outbound"
1130
- });
1131
- if (needsSeparateText && followUpText) {
1132
- const textParams = hasThreadParams || replyMarkup ? {
1133
- ...threadParams,
1134
- ...replyMarkup ? { reply_markup: replyMarkup } : {}
1135
- } : void 0;
1136
- const textRes = await sendTelegramText(followUpText, textParams);
1137
- return {
1138
- messageId: String(textRes?.message_id ?? mediaMessageId),
1139
- chatId: resolvedChatId
1140
- };
1141
- }
1142
- return {
1143
- messageId: mediaMessageId,
1144
- chatId: resolvedChatId
1145
- };
1146
- }
1147
- if (!text || !text.trim()) throw new Error("Message must be non-empty for Telegram sends");
1148
- const res = await sendTelegramText(text, hasThreadParams || replyMarkup ? {
1149
- ...threadParams,
1150
- ...replyMarkup ? { reply_markup: replyMarkup } : {}
1151
- } : void 0, opts.plainText);
1152
- const messageId = String(res?.message_id ?? "unknown");
1153
- if (res?.message_id) recordSentMessage(chatId, res.message_id);
1154
- recordChannelActivity({
1155
- channel: "telegram",
1156
- accountId: account.accountId,
1157
- direction: "outbound"
1158
- });
1159
- return {
1160
- messageId,
1161
- chatId: String(res?.chat?.id ?? chatId)
1162
- };
1163
- }
1164
- function inferFilename(kind) {
1165
- switch (kind) {
1166
- case "image": return "image.jpg";
1167
- case "video": return "video.mp4";
1168
- case "audio": return "audio.ogg";
1169
- default: return "file.bin";
1170
- }
1171
- }
1172
-
1173
- //#endregion
1174
- export { sendMessageTelegram };