stableclaw 2026.4.6 → 2026.4.8

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 (2751) hide show
  1. package/README.md +22 -290
  2. package/package.json +1 -73
  3. package/dist/.buildstamp +0 -1
  4. package/dist/abort-C9luPDzM.js +0 -192
  5. package/dist/abort-cutoff-B1ws4nOb.js +0 -56
  6. package/dist/abort-cutoff.runtime-DyRUNN6p.js +0 -20
  7. package/dist/abort-cutoff.runtime.js +0 -1
  8. package/dist/abort-primitives-CGyFwJ93.js +0 -92
  9. package/dist/abort-signal-CrrraMAi.js +0 -13
  10. package/dist/abort.runtime-oBiooAFx.js +0 -2
  11. package/dist/abort.runtime.js +0 -1
  12. package/dist/access-DIqrGWVo.js +0 -81
  13. package/dist/access-control-DfV6HWO9.js +0 -152
  14. package/dist/account-action-gate-eHi2MB4J.js +0 -12
  15. package/dist/account-core-DOelA7Wl.js +0 -26
  16. package/dist/account-helpers-CafpxP7V.js +0 -1
  17. package/dist/account-helpers-jJOgsae3.js +0 -102
  18. package/dist/account-id-DXal1kRJ.js +0 -1
  19. package/dist/account-inspect-CfagweUE.js +0 -158
  20. package/dist/account-inspect-DOt4IDX6.js +0 -92
  21. package/dist/account-inspect-pnXre-7b.js +0 -81
  22. package/dist/account-lookup-CLJxpfHr.js +0 -17
  23. package/dist/account-resolution-CbKUJkzG.js +0 -30
  24. package/dist/account-selection-B8a_DqXo.js +0 -222
  25. package/dist/account-snapshot-fields-mr-1u321.js +0 -130
  26. package/dist/account-summary-DA6ds0Hk.js +0 -36
  27. package/dist/accounts-CO-lK8jJ.js +0 -150
  28. package/dist/accounts-D419O6Gq.js +0 -2
  29. package/dist/accounts-DKMLcV4g.js +0 -132
  30. package/dist/accounts-DdiZwn14.js +0 -57
  31. package/dist/accounts-SWhOQhoA.js +0 -58
  32. package/dist/accounts-iR2U_Vs4.js +0 -41
  33. package/dist/accounts-jsSym1md.js +0 -102
  34. package/dist/accounts-p4Eir-wB.js +0 -107
  35. package/dist/accounts-uAWNlC7q.js +0 -94
  36. package/dist/accounts-x23pAGjm.js +0 -137
  37. package/dist/accounts.runtime-PJOhs60R.js +0 -2
  38. package/dist/accounts.runtime.js +0 -1
  39. package/dist/ack-reactions-fcKs7CQ_.js +0 -43
  40. package/dist/acp-cli-ByWTIhFx.js +0 -2207
  41. package/dist/acp-runtime-D7wrReOP.js +0 -8
  42. package/dist/acp-stateful-target-driver-DY2EfkQt.js +0 -60
  43. package/dist/action-runtime-BdRtmydq.js +0 -318
  44. package/dist/action-runtime-DvNB5A61.js +0 -72
  45. package/dist/action-runtime-api-BnVs42oX.js +0 -1028
  46. package/dist/actions-CUYHtUqe.js +0 -531
  47. package/dist/actions.runtime-BBrSlYkH.js +0 -18
  48. package/dist/actions.runtime-DB4aKmBO.js +0 -5
  49. package/dist/actions.runtime-bdKprwSE.js +0 -2
  50. package/dist/actions.runtime.js +0 -1
  51. package/dist/active-listener-SB9ihcaC.js +0 -46
  52. package/dist/agent-command-C_MGil8o.js +0 -1457
  53. package/dist/agent-list-MRXQwyo0.js +0 -52
  54. package/dist/agent-media-payload-DDTSvr-n.js +0 -17
  55. package/dist/agent-paths-D711oayD.js +0 -12
  56. package/dist/agent-runner-utils-DEYzwZHa.js +0 -182
  57. package/dist/agent-runner.runtime-v2uIsAVy.js +0 -2218
  58. package/dist/agent-runner.runtime.js +0 -1
  59. package/dist/agent-runtime-Cz19IsmJ.js +0 -142
  60. package/dist/agent-s4m0Xp6V.js +0 -2
  61. package/dist/agent-scope-rWWUivuC.js +0 -215
  62. package/dist/agent-tools-login-DU1gQC9-.js +0 -57
  63. package/dist/agents/auth-profiles.runtime.js +0 -7
  64. package/dist/agents/pi-model-discovery-runtime.js +0 -2
  65. package/dist/agents-B2W3IoEe.js +0 -888
  66. package/dist/agents-DmE3LRim.js +0 -5
  67. package/dist/agents.config-D6XoJFQ-.js +0 -3
  68. package/dist/agents.config-Ui_tQc3C.js +0 -121
  69. package/dist/allow-from-Bj0HDNYh.js +0 -20
  70. package/dist/allow-from-CJwSUt_K.js +0 -9
  71. package/dist/allow-from-xOap1t02.js +0 -62
  72. package/dist/allow-list-DeRUbyj4.js +0 -319
  73. package/dist/allowed-updates-aOgPxM0g.js +0 -31
  74. package/dist/allowlist-config-edit-Ch2EvAYo.js +0 -279
  75. package/dist/allowlist-match-Dm6AqFEs.js +0 -63
  76. package/dist/ansi-B_0KjIJj.js +0 -54
  77. package/dist/anthropic-vertex-Stff_3_3.js +0 -21
  78. package/dist/anthropic-vertex-stream-DgR8-m-G.js +0 -653
  79. package/dist/api-7Pf2fGBp.js +0 -11
  80. package/dist/api-B80kCRiV.js +0 -11
  81. package/dist/api-B8_Wwelx.js +0 -2
  82. package/dist/api-BLI24uxW.js +0 -2
  83. package/dist/api-BLSg8PM8.js +0 -2
  84. package/dist/api-BRy2h4ZA.js +0 -2
  85. package/dist/api-BU_YBaOK.js +0 -3
  86. package/dist/api-BXQjqvPC.js +0 -2
  87. package/dist/api-BY9iT-AK.js +0 -106
  88. package/dist/api-BipiQQoS.js +0 -2
  89. package/dist/api-Bk5mFOju.js +0 -10
  90. package/dist/api-BrsLZRXn.js +0 -3
  91. package/dist/api-C16j1Xno.js +0 -2
  92. package/dist/api-CGtiPyfv.js +0 -8358
  93. package/dist/api-CHIsf5Wl.js +0 -21
  94. package/dist/api-CP9q4gi6.js +0 -19
  95. package/dist/api-CWPDpJCM.js +0 -2
  96. package/dist/api-CaMdAP9T.js +0 -2
  97. package/dist/api-CftMlodx.js +0 -5
  98. package/dist/api-Cpj_QQAF.js +0 -5
  99. package/dist/api-D13mhDzE.js +0 -33
  100. package/dist/api-DGcbqpSh.js +0 -2
  101. package/dist/api-DIGFhGqm.js +0 -30
  102. package/dist/api-DNxTJAiA.js +0 -5
  103. package/dist/api-DasNTWRo.js +0 -2
  104. package/dist/api-Dn7n2sWC.js +0 -74
  105. package/dist/api-Drq06O1M2.js +0 -6
  106. package/dist/api-OOJHubHS.js +0 -77
  107. package/dist/api-XH46JouJ.js +0 -2
  108. package/dist/api-builder-uuKvRs_O.js +0 -66
  109. package/dist/api-e3cIcFaV.js +0 -1
  110. package/dist/api-fetch-CvBBI8q8.js +0 -35
  111. package/dist/api-key-rotation-BCssmYGp.js +0 -150
  112. package/dist/api-rPpH8518.js +0 -322
  113. package/dist/api-w-46PN0B.js +0 -2
  114. package/dist/apply-DfjUTAkv.js +0 -485
  115. package/dist/apply.runtime-B-srtEUl.js +0 -2
  116. package/dist/apply.runtime-DOG87kW8.js +0 -166
  117. package/dist/apply.runtime.js +0 -1
  118. package/dist/approval-native-CI9-iVJa.js +0 -79
  119. package/dist/approval-native-runtime-2AVlvrdL.js +0 -399
  120. package/dist/approval-renderers-BTKeDNRo.js +0 -87
  121. package/dist/approval-runtime-DIA8ohXa.js +0 -262
  122. package/dist/archive-BaCqqQP1.js +0 -537
  123. package/dist/arg-split-get0R_Yr.js +0 -38
  124. package/dist/artifacts-DXKlQp1z.js +0 -52
  125. package/dist/assistant-error-format-CFSPB8qt.js +0 -109
  126. package/dist/async-lock-QqhPYwhW.js +0 -19
  127. package/dist/attachment-normalize-CMMyswNa.js +0 -921
  128. package/dist/audio-BxqNDSFq.js +0 -53
  129. package/dist/audio-DZWA6M9B.js +0 -41
  130. package/dist/audit-86J-sIQq.js +0 -54
  131. package/dist/audit-D9O3O-41.js +0 -86
  132. package/dist/audit-DwAT-Kzg.js +0 -892
  133. package/dist/audit-channel.allow-from.runtime-DmuUvr2f.js +0 -5
  134. package/dist/audit-channel.allow-from.runtime.js +0 -1
  135. package/dist/audit-channel.collect.runtime-B76LAkrF.js +0 -528
  136. package/dist/audit-channel.collect.runtime.js +0 -1
  137. package/dist/audit-channel.discord.runtime-qM5u1Hnl.js +0 -5
  138. package/dist/audit-channel.discord.runtime.js +0 -1
  139. package/dist/audit-channel.telegram.runtime-DpwmRUPy.js +0 -8
  140. package/dist/audit-channel.telegram.runtime.js +0 -1
  141. package/dist/audit-channel.zalouser.runtime-CzlFZYsv.js +0 -5
  142. package/dist/audit-channel.zalouser.runtime.js +0 -1
  143. package/dist/audit-extra.async-BupKW2BB.js +0 -820
  144. package/dist/audit-fs-B3GdTjId.js +0 -375
  145. package/dist/audit-membership-runtime-n195y1jy.js +0 -55
  146. package/dist/audit.deep.runtime-2gZPpwj8.js +0 -2
  147. package/dist/audit.deep.runtime.js +0 -1
  148. package/dist/audit.nondeep.runtime-6MT8p_25.js +0 -831
  149. package/dist/audit.nondeep.runtime.js +0 -1
  150. package/dist/audit.runtime-jdG0-1Bq.js +0 -7
  151. package/dist/audit.runtime.js +0 -1
  152. package/dist/auth-CmL8nlqP.js +0 -371
  153. package/dist/auth-Zya_1BCc.js +0 -181
  154. package/dist/auth-choice-CSSk-2VN.js +0 -69
  155. package/dist/auth-choice-Uyll2O8p.js +0 -341
  156. package/dist/auth-choice-legacy-5XgU4yCZ.js +0 -44
  157. package/dist/auth-choice-options-DTRb6fq4.js +0 -98
  158. package/dist/auth-choice-prompt-BAQTSD2R.js +0 -36
  159. package/dist/auth-choice-prompt-D6qkTw8h.js +0 -2
  160. package/dist/auth-choice-x5Cm9EXp.js +0 -3
  161. package/dist/auth-choice.apply-helpers-CtKCiOT4.js +0 -2
  162. package/dist/auth-choice.plugin-providers.runtime-BVH7Kq_W.js +0 -11
  163. package/dist/auth-choice.plugin-providers.runtime.js +0 -1
  164. package/dist/auth-health-BBleirOY.js +0 -165
  165. package/dist/auth-mode-policy-BD7_M2AG.js +0 -18
  166. package/dist/auth-profiles-B0SpzBJv.js +0 -440
  167. package/dist/auth-rate-limit-OkMcM1wH.js +0 -119
  168. package/dist/auth-store-Bro-SY1-.js +0 -242
  169. package/dist/avatar-policy-pho6U35i.js +0 -67
  170. package/dist/backend-config-CNAjcjho.js +0 -311
  171. package/dist/backoff-nvVV-tHk.js +0 -18
  172. package/dist/backup-create-CkkM1HNg.js +0 -462
  173. package/dist/backup-health-BWSliymu.js +0 -59
  174. package/dist/banner-DPWatUan.js +0 -370
  175. package/dist/banner-lDKgB6uE.js +0 -2
  176. package/dist/base-session-key-CRSigEPk.js +0 -14
  177. package/dist/binaries-CWBYavgU.js +0 -2
  178. package/dist/binaries-sPf-9aLM.js +0 -11
  179. package/dist/binding-registry-BkSvI4jO.js +0 -520
  180. package/dist/binding-targets-CdIq3brX.js +0 -99
  181. package/dist/bindings-AuReyzvX.js +0 -21
  182. package/dist/bindings-CYhLRcr8.js +0 -69
  183. package/dist/block-reply-pipeline-GSCCinHx.js +0 -266
  184. package/dist/block-streaming-4outFa6R.js +0 -107
  185. package/dist/bluebubbles-CorTCHc9.js +0 -64
  186. package/dist/bluebubbles-D2WymlOg.js +0 -235
  187. package/dist/bluebubbles-policy-C3d8eqhQ.js +0 -13
  188. package/dist/bonjour-cache-cleanup-BZJ-GrdX.js +0 -126
  189. package/dist/boolean-BEhDlAk_.js +0 -29
  190. package/dist/boolean-param-B807dWHx.js +0 -13
  191. package/dist/bot-BM1bybV7.js +0 -4268
  192. package/dist/bot-message-context-CdedyAq_.js +0 -2
  193. package/dist/bot-message-context-DKGx6N8p.js +0 -1175
  194. package/dist/bot-message-context.runtime-ClW1x1V5.js +0 -7
  195. package/dist/bot-message-context.runtime.js +0 -1
  196. package/dist/bot-message-context.session.runtime-BWjdkRuf.js +0 -12
  197. package/dist/bot-message-context.session.runtime.js +0 -1
  198. package/dist/bot-native-commands.delivery.runtime-CgfbR-Nj.js +0 -3
  199. package/dist/bot-native-commands.delivery.runtime.js +0 -1
  200. package/dist/bot-native-commands.runtime-DCz7w0aK.js +0 -11
  201. package/dist/bot-native-commands.runtime.js +0 -1
  202. package/dist/boundary-file-read-DB4ibbUg.js +0 -192
  203. package/dist/brave-web-search-provider-B7m_Mprt.js +0 -441
  204. package/dist/brew-B9JEV5Jj.js +0 -44
  205. package/dist/browser-config-D_OlwMzh.js +0 -226
  206. package/dist/browser-open-C9FOO4U_.js +0 -94
  207. package/dist/browser-runtime-CnWZ_eLQ.js +0 -185
  208. package/dist/browser-support-Cdp2Gr_6.js +0 -34
  209. package/dist/btw-command-CPUGSdlD.js +0 -16
  210. package/dist/build-info.json +0 -5
  211. package/dist/bundle-lsp-CCIAK1od.js +0 -93
  212. package/dist/bundled/boot-md/HOOK.md +0 -20
  213. package/dist/bundled/boot-md/handler.js +0 -180
  214. package/dist/bundled/bootstrap-extra-files/HOOK.md +0 -53
  215. package/dist/bundled/bootstrap-extra-files/handler.js +0 -42
  216. package/dist/bundled/command-logger/HOOK.md +0 -122
  217. package/dist/bundled/command-logger/handler.js +0 -56
  218. package/dist/bundled/session-memory/HOOK.md +0 -108
  219. package/dist/bundled/session-memory/handler.js +0 -196
  220. package/dist/bundled/workflow-summary/HOOK.md +0 -123
  221. package/dist/bundled/workflow-summary/handler.js +0 -115
  222. package/dist/bundled-capability-metadata-BpPgIy_5.js +0 -40
  223. package/dist/bundled-compat-BLlVmkDi.js +0 -64
  224. package/dist/bundled-sources-BQTCt2mJ.js +0 -53
  225. package/dist/button-types-B3_mzf8P.js +0 -54
  226. package/dist/cache-controls-DBdT4I-H.js +0 -40
  227. package/dist/call-dy-GwrXS.js +0 -649
  228. package/dist/call-ti-nPnzT.js +0 -2
  229. package/dist/canvas-host/a2ui/.bundle.hash +0 -1
  230. package/dist/canvas-host/a2ui/a2ui.bundle.js +0 -14896
  231. package/dist/canvas-host/a2ui/index.html +0 -307
  232. package/dist/capability-provider-runtime-CFUC5NbJ.js +0 -40
  233. package/dist/catalog-5PPtilI5.js +0 -274
  234. package/dist/channel-2EW4xzvV.js +0 -788
  235. package/dist/channel-BiRtGLF8.js +0 -1135
  236. package/dist/channel-C3AVw0Nl.js +0 -883
  237. package/dist/channel-CPe2XmyD.js +0 -1217
  238. package/dist/channel-CVFWRvjf.js +0 -337
  239. package/dist/channel-Cs0onQ6d.js +0 -4976
  240. package/dist/channel-D18v9r53.js +0 -1661
  241. package/dist/channel-D2n2s8Le.js +0 -208
  242. package/dist/channel-DWKApPW2.js +0 -454
  243. package/dist/channel-Depm5C-f.js +0 -800
  244. package/dist/channel-DwTcZxFU.js +0 -1129
  245. package/dist/channel-LT5vI3EK.js +0 -361
  246. package/dist/channel-XgThIGmf.js +0 -698
  247. package/dist/channel-account-context-CWd3uN_m.js +0 -104
  248. package/dist/channel-actions-DSvaYD1T.js +0 -39
  249. package/dist/channel-bQKtZIt6.js +0 -599
  250. package/dist/channel-catalog.json +0 -3
  251. package/dist/channel-config-D0eO5f5m.js +0 -115
  252. package/dist/channel-config-helpers-CLFL8FLU.js +0 -482
  253. package/dist/channel-config-primitives-DwsP66Ak.js +0 -3
  254. package/dist/channel-config-schema-DsguzRfd.js +0 -6
  255. package/dist/channel-config-writes-DQZOOZZ8.js +0 -1
  256. package/dist/channel-configured-B6WgvouH.js +0 -108
  257. package/dist/channel-feedback-DiLm9hqS.js +0 -257
  258. package/dist/channel-inbound-CXD3aSAK.js +0 -30
  259. package/dist/channel-issues-C-49e607.js +0 -13
  260. package/dist/channel-lifecycle-BnjeZxB6.js +0 -286
  261. package/dist/channel-lifecycle.core-Cn3zeU0h.js +0 -69
  262. package/dist/channel-options-DXJ7b7Ye.js +0 -39
  263. package/dist/channel-pairing-Byr3MFbN.js +0 -68
  264. package/dist/channel-plugin-common-D2EFcTg8.js +0 -4
  265. package/dist/channel-plugin-ids-DiOSWlnO.js +0 -56
  266. package/dist/channel-plugin-resolution-SMHmHx5v.js +0 -144
  267. package/dist/channel-policy-B-XKjrjK.js +0 -32
  268. package/dist/channel-reply-pipeline-BtBcBCNu.js +0 -16
  269. package/dist/channel-resolution-Du3EtWh1.js +0 -60
  270. package/dist/channel-runtime-F8_51GPp.js +0 -9
  271. package/dist/channel-selection-Bz3pl14y.js +0 -125
  272. package/dist/channel-send-result-CyfDCXJG.js +0 -40
  273. package/dist/channel-setup-yWpuHwhm.js +0 -51
  274. package/dist/channel-shared-gHcJ8n-f.js +0 -58
  275. package/dist/channel-status-CyoeLEnj.js +0 -2
  276. package/dist/channel-summary-5zHt-z1E.js +0 -139
  277. package/dist/channel-summary-B_fbXZ3l.js +0 -2
  278. package/dist/channel-target-DHO43h-I.js +0 -157
  279. package/dist/channel-targets-C8ZPfJmV.js +0 -18
  280. package/dist/channel-y-bXwYi3.js +0 -783
  281. package/dist/channel.runtime-B2SEUCf0.js +0 -14
  282. package/dist/channel.runtime-BF5qdBeA.js +0 -5
  283. package/dist/channel.runtime-BPaq6EO_.js +0 -108
  284. package/dist/channel.runtime-BV8FGxyb.js +0 -373
  285. package/dist/channel.runtime-CGnamSTC.js +0 -125
  286. package/dist/channel.runtime-CRNf20Ct.js +0 -80
  287. package/dist/channel.runtime-CRSWVexY.js +0 -335
  288. package/dist/channel.runtime-Cg6DmoTp.js +0 -783
  289. package/dist/channel.runtime-CpHTHeFR.js +0 -309
  290. package/dist/channel.runtime-ZdhCn8XI.js +0 -3315
  291. package/dist/channel.runtime-cXufT2kW.js +0 -61
  292. package/dist/channel.runtime.js +0 -1
  293. package/dist/channel.setup-Bq1vgxXZ.js +0 -279
  294. package/dist/channels-BZC2kp_G.js +0 -409
  295. package/dist/channels-CMeYB3bY.js +0 -1134
  296. package/dist/channels-cli-BIzqRmuu.js +0 -246
  297. package/dist/channels-status-issues-DqTdy1lq.js +0 -17
  298. package/dist/chat-envelope-DlGbh8k2.js +0 -158
  299. package/dist/chat-meta-wVbKo1sw.js +0 -700
  300. package/dist/chat-target-prefixes-DCF8a_Lp.js +0 -156
  301. package/dist/chat-type-DXjGtE-S.js +0 -10
  302. package/dist/chunk-CW-a7Cfh.js +0 -334
  303. package/dist/chunk-CrysgU_F.js +0 -36
  304. package/dist/chutes-oauth-Bh3BTMMG.js +0 -127
  305. package/dist/cjk-chars-Dl_Ko7yI.js +0 -50
  306. package/dist/clack-prompter-C5PtKpUH.js +0 -112
  307. package/dist/clawbot-cli-CgHyabtp.js +0 -9
  308. package/dist/clawhub-CDs2LE11.js +0 -263
  309. package/dist/clawhub-CO6YnoQZ.js +0 -163
  310. package/dist/cli/daemon-cli.js +0 -9
  311. package/dist/cli-CoOwN-V4.js +0 -164
  312. package/dist/cli-CpOL_jWZ.js +0 -152
  313. package/dist/cli-DCp06hI2.js +0 -2
  314. package/dist/cli-DVSDSUQm.js +0 -695
  315. package/dist/cli-backend-B20k67rv.js +0 -44
  316. package/dist/cli-backend-CcuyEMrq.js +0 -1
  317. package/dist/cli-backend-DMTxL8mq.js +0 -40
  318. package/dist/cli-backend-M4CTb3mq.js +0 -49
  319. package/dist/cli-migration-BwqQvUer.js +0 -100
  320. package/dist/cli-name-C3PA6Rhs.js +0 -21
  321. package/dist/cli-runner-8SNo1pKS.js +0 -1014
  322. package/dist/cli-runtime-ChUqI2f-.js +0 -3
  323. package/dist/cli-shared-01J1LZRE.js +0 -72
  324. package/dist/cli-startup-metadata.json +0 -14
  325. package/dist/cli-utils-eYXt_xAg.js +0 -40
  326. package/dist/cli-watchdog-defaults-Dff-MFUz.js +0 -14
  327. package/dist/cli.runtime-WWGaX6X6.js +0 -547
  328. package/dist/cli.runtime.js +0 -1
  329. package/dist/client-BFxjGELJ.js +0 -5
  330. package/dist/client-C8_DsF-r.js +0 -7
  331. package/dist/client-bootstrap-BiVps8T6.js +0 -2
  332. package/dist/client-bootstrap-CFGCltAu.js +0 -121
  333. package/dist/client-lEilgam1.js +0 -87
  334. package/dist/cmd-argv-BbyQhzAC.js +0 -68
  335. package/dist/code-execution-CPcuE0sX.js +0 -142
  336. package/dist/codex-native-web-search-CyrsDBZ2.js +0 -155
  337. package/dist/codex-native-web-search-PFJu8fcM.js +0 -2
  338. package/dist/collection-runtime-DJjFReXJ.js +0 -1
  339. package/dist/command-auth-BAkZv3cP.js +0 -356
  340. package/dist/command-auth-native-Bsp5Doyd.js +0 -3
  341. package/dist/command-auth-tqFmaIaJ.js +0 -64
  342. package/dist/command-detection-BV7Ipg_0.js +0 -49
  343. package/dist/command-detection-DyqWl5Nq.js +0 -2
  344. package/dist/command-format-CX1xXtgB.js +0 -22
  345. package/dist/command-format-DwYoemR9.js +0 -2
  346. package/dist/command-gating-NyDk7t84.js +0 -40
  347. package/dist/command-options-BUoAEXAi.js +0 -25
  348. package/dist/command-poll-backoff-B7RiSvcV.js +0 -56
  349. package/dist/command-poll-backoff.runtime-DX9gobB0.js +0 -7
  350. package/dist/command-poll-backoff.runtime.js +0 -1
  351. package/dist/command-queue-CxEmvSGT.js +0 -253
  352. package/dist/command-registry-CaJXKNoO.js +0 -3
  353. package/dist/command-registry-Ct0qor9d.js +0 -199
  354. package/dist/command-secret-gateway-43O-1Hnf.js +0 -2
  355. package/dist/command-secret-gateway-C39SFGHd.js +0 -442
  356. package/dist/command-secret-targets-Bns-l1xV.js +0 -2
  357. package/dist/command-secret-targets-CTrFghcj.js +0 -87
  358. package/dist/command-surface-CfP1vask.js +0 -2
  359. package/dist/commands/status.summary.runtime.js +0 -146
  360. package/dist/commands-BxWe27p0.js +0 -42
  361. package/dist/commands-CiyPyNRY.js +0 -194
  362. package/dist/commands-acp-BeCm2Wnq.js +0 -990
  363. package/dist/commands-context-DbfMrVv4.js +0 -33
  364. package/dist/commands-core-CEmQydIV.js +0 -241
  365. package/dist/commands-core.runtime-BYooAQbc.js +0 -2
  366. package/dist/commands-core.runtime.js +0 -1
  367. package/dist/commands-handlers.runtime-CEAP4Yv2.js +0 -3707
  368. package/dist/commands-handlers.runtime.js +0 -1
  369. package/dist/commands-info-COwAtIWb.js +0 -651
  370. package/dist/commands-models-B4EJh5Fy.js +0 -395
  371. package/dist/commands-o21Y9Xck.js +0 -4
  372. package/dist/commands-registry-DgMc5_jk.js +0 -295
  373. package/dist/commands-registry.data-5O2FOeZl.js +0 -935
  374. package/dist/commands-registry.runtime-CT_YXpwM.js +0 -2
  375. package/dist/commands-registry.runtime.js +0 -1
  376. package/dist/commands-status.runtime-D4F4iVUh.js +0 -2
  377. package/dist/commands-status.runtime.js +0 -1
  378. package/dist/commands.runtime-_ALsMFcS.js +0 -4
  379. package/dist/commands.runtime.js +0 -1
  380. package/dist/common-Dbmo0I1E.js +0 -206
  381. package/dist/compact.runtime-CBfyBJbR.js +0 -7
  382. package/dist/compact.runtime.js +0 -1
  383. package/dist/completion-cli-COhEd9CF.js +0 -2
  384. package/dist/completion-cli-DHe4Rit5.js +0 -466
  385. package/dist/components-CamLdbbq.js +0 -797
  386. package/dist/components-DPbtLC3x.js +0 -2
  387. package/dist/config-CKJA2kAO.js +0 -53
  388. package/dist/config-D7-9dK3i.js +0 -138
  389. package/dist/config-DJ29sg5U.js +0 -475
  390. package/dist/config-DJNI2tTK.js +0 -136
  391. package/dist/config-Dr2GRT3y.js +0 -135
  392. package/dist/config-DsqKYjeo.js +0 -421
  393. package/dist/config-Q9kc32gz.js +0 -41
  394. package/dist/config-RUefx-_1.js +0 -8
  395. package/dist/config-cli-BqlYHmPA.js +0 -945
  396. package/dist/config-error-handler-BKRR0_j_.js +0 -197
  397. package/dist/config-error-handler-CT1igiX6.js +0 -2
  398. package/dist/config-eval-hTWq4IVy.js +0 -100
  399. package/dist/config-guard-Bk3_wSTH.js +0 -113
  400. package/dist/config-helpers-DLVbtn1B.js +0 -117
  401. package/dist/config-paths-BKYh__Ga.js +0 -8
  402. package/dist/config-paths-DP5yXXo2.js +0 -102
  403. package/dist/config-presence-omlqvhAQ.js +0 -79
  404. package/dist/config-regex-CvZFnWkO.js +0 -39
  405. package/dist/config-runtime-ngoccXmP.js +0 -13
  406. package/dist/config-schema-B3sQY5B_.js +0 -133
  407. package/dist/config-schema-B_2MhEQY.js +0 -71
  408. package/dist/config-schema-BpIXBNbc.js +0 -202
  409. package/dist/config-schema-BtfQOmdV.js +0 -115
  410. package/dist/config-schema-Bw-Xbo_T.js +0 -85
  411. package/dist/config-schema-Cqj-Mugi.js +0 -105
  412. package/dist/config-schema-DQSj_ZL_.js +0 -29
  413. package/dist/config-schema-Pe1Vn9kb.js +0 -17
  414. package/dist/config-schema-f7nntJMh.js +0 -25
  415. package/dist/config-schema-lBqODOnr.js +0 -25
  416. package/dist/config-schema-mfJ91WLf.js +0 -65
  417. package/dist/config-secret-input.runtime-B_HyRtgE.js +0 -3
  418. package/dist/config-secret-input.runtime.js +0 -1
  419. package/dist/config-state-DfIk9ME6.js +0 -289
  420. package/dist/config-status-Bnobp1-p.js +0 -2
  421. package/dist/config-status-Db93sFQB.js +0 -109
  422. package/dist/config-update-B_S0YQ_Y.js +0 -3
  423. package/dist/config-update-CK4EDDeD.js +0 -127
  424. package/dist/config-validation-Bh_sg7RW.js +0 -276
  425. package/dist/config-value-CMTdBw5q.js +0 -25
  426. package/dist/configure-CGDY1YR7.js +0 -1140
  427. package/dist/configure-V8jejRHr.js +0 -2
  428. package/dist/configured-provider-fallback-DWYDg0L7.js +0 -15
  429. package/dist/connection-auth-CKM60o55.js +0 -30
  430. package/dist/connection-details-DyVOoGG6.js +0 -56
  431. package/dist/constants-Bq55qi82.js +0 -71
  432. package/dist/constants-CimYBSye.js +0 -4
  433. package/dist/content-blocks-DuKJNUtm.js +0 -785
  434. package/dist/context-D-9a98Zk.js +0 -227
  435. package/dist/context-visibility-DTMZdcAH.js +0 -14
  436. package/dist/context-visibility-vOvLMUrZ.js +0 -35
  437. package/dist/context-window-guard-WE0ENAeQ.js +0 -46
  438. package/dist/control-ui-assets-DVYAF-2p.js +0 -240
  439. package/dist/control-ui-shared-BKXkFsA7.js +0 -29
  440. package/dist/conversation-binding-C2nuZ3Eg.js +0 -520
  441. package/dist/conversation-binding-input-CBwdWDC4.js +0 -250
  442. package/dist/conversation-bindings-Cq4z4vhr.js +0 -210
  443. package/dist/conversation-id-4JeHag0a.js +0 -168
  444. package/dist/conversation-id-CXuzm-Ub.js +0 -116
  445. package/dist/conversation-id-DCTwJCZF.js +0 -43
  446. package/dist/conversation-label-C2xTELop.js +0 -32
  447. package/dist/conversation-runtime-bArk0IjJ.js +0 -85
  448. package/dist/core-DaMVvavf.js +0 -195
  449. package/dist/core-api-D0U2iGRK.js +0 -670
  450. package/dist/core-command-descriptors-DxRm2H1p.js +0 -91
  451. package/dist/create-client-BOKOxyiu.js +0 -58
  452. package/dist/create-client-Bzn467Jo.js +0 -2
  453. package/dist/credentials-BGPs1gIX.js +0 -242
  454. package/dist/credentials-DUoYFiLk.js +0 -22
  455. package/dist/credentials-read-CDYtvkBt.js +0 -74
  456. package/dist/credentials-read-KB395CbD.js +0 -2
  457. package/dist/credentials-write.runtime-Bx7mKj4E.js +0 -9
  458. package/dist/credentials-write.runtime.js +0 -1
  459. package/dist/creds-files-CTtTs6zG.js +0 -19
  460. package/dist/cron-cli-Di3TakVa.js +0 -644
  461. package/dist/crypto-node.runtime-DI0fQ6wI.js +0 -5
  462. package/dist/crypto-node.runtime.js +0 -1
  463. package/dist/crypto-runtime-Bc-jKPlv.js +0 -1036
  464. package/dist/current-time--aIDbABZ.js +0 -20
  465. package/dist/daemon-cli-Cnry1ft1.js +0 -370
  466. package/dist/daemon-install-de_bWPuS.js +0 -63
  467. package/dist/daemon-install-plan.shared-u00bwv47.js +0 -222
  468. package/dist/daemon-runtime-DPejcJWG.js +0 -12
  469. package/dist/dangerous-name-matching-DnCDaXzP.js +0 -48
  470. package/dist/dangerous-name-runtime-Dinw00TZ.js +0 -1
  471. package/dist/dangerous-tools-C3RlQe7u.js +0 -38
  472. package/dist/date-time-DRQ0-oaw.js +0 -118
  473. package/dist/ddg-search-provider-B0zLjcDN.js +0 -182
  474. package/dist/dedupe-DZbQYOSD.js +0 -59
  475. package/dist/default-account-warnings-BCrmijcz.js +0 -15
  476. package/dist/default-models-Br0v8QOH.js +0 -35
  477. package/dist/defaults-DAt--D9n.js +0 -6
  478. package/dist/defaults-D_Y_lvUP.js +0 -7
  479. package/dist/defaults-MkMfnGzi.js +0 -7
  480. package/dist/delegate-CLP7zDS_.js +0 -43
  481. package/dist/deliver-CIUEKe4q.js +0 -954
  482. package/dist/deliver-LN-Yg8wS.js +0 -3
  483. package/dist/deliver-reply-DL-CSF43.js +0 -238
  484. package/dist/deliver-runtime-CoqXhxlS.js +0 -2
  485. package/dist/delivery-CL_3vFSl.js +0 -834
  486. package/dist/delivery-context-CoAL-jTI.js +0 -106
  487. package/dist/delivery-info-DTAUApso.js +0 -40
  488. package/dist/delivery-queue-DBW69jH4.js +0 -2
  489. package/dist/delivery-queue-DMubgaLa.js +0 -289
  490. package/dist/deps-34N0Nmbl.js +0 -67
  491. package/dist/deps-BVogrCia.js +0 -2
  492. package/dist/deps-DZJpA4XG.js +0 -153
  493. package/dist/detect-Zrcrs8SP.js +0 -12
  494. package/dist/detect-binary-CEX186X6.js +0 -30
  495. package/dist/device-auth-D_0GUMYY.js +0 -19
  496. package/dist/device-bootstrap-Bnn4K3fQ.js +0 -3
  497. package/dist/device-bootstrap-bwpHYQhY.js +0 -176
  498. package/dist/device-health-B3q7Cmqn.js +0 -2
  499. package/dist/device-health-DhmPD0gq.js +0 -16
  500. package/dist/device-identity-Cak311si.js +0 -2
  501. package/dist/device-identity-Doxo0HJx.js +0 -140
  502. package/dist/device-metadata-normalization-B5_zplC_.js +0 -21
  503. package/dist/device-pairing-BCpR-Vtb.js +0 -520
  504. package/dist/devices-cli-DYPkfzsG.js +0 -328
  505. package/dist/diagnostic-DfKz60Xk.js +0 -311
  506. package/dist/diagnostic-events-CUSmY-rn.js +0 -48
  507. package/dist/diagnostic-flags-DLDDycUv.js +0 -64
  508. package/dist/diagnostic-runtime-ZQC4AswI.js +0 -1
  509. package/dist/diagnostics-Cxl1bFGj.js +0 -33
  510. package/dist/diagnostics-GjF7wpY9.js +0 -2
  511. package/dist/diagnostics-otel-C2RQUlQT.js +0 -3
  512. package/dist/diffs-DsHt689X.js +0 -2
  513. package/dist/direct-dm-ByuWacLn.js +0 -139
  514. package/dist/direct-management-DEtuCcDL.js +0 -2
  515. package/dist/direct-management-DMp7MOnt.js +0 -300
  516. package/dist/direct-room-ARYWsCbX.js +0 -2
  517. package/dist/direct-room-DYlSJOU_.js +0 -67
  518. package/dist/directive-handling.defaults-BMh2DXTA.js +0 -19
  519. package/dist/directive-handling.fast-lane-CBX4jbax.js +0 -2
  520. package/dist/directive-handling.fast-lane-DRvycpgg.js +0 -64
  521. package/dist/directive-handling.impl-BKJf5Ltu.js +0 -672
  522. package/dist/directive-handling.impl-BkdGnm-T.js +0 -2
  523. package/dist/directive-handling.levels-BHOBnnn8.js +0 -2
  524. package/dist/directive-handling.levels-CecoBNlK.js +0 -12
  525. package/dist/directive-handling.parse-BuTiWmrT.js +0 -375
  526. package/dist/directive-handling.persist-D9RYevoA.js +0 -133
  527. package/dist/directive-handling.persist.runtime-Cb_unTVH.js +0 -2
  528. package/dist/directive-handling.persist.runtime.js +0 -1
  529. package/dist/directive-handling.shared-_Zvt3-ej.js +0 -158
  530. package/dist/directive-tags-Cm0H6Dn_.js +0 -109
  531. package/dist/directives-f-UxcP8D.js +0 -209
  532. package/dist/directory-cache-CM_EUchr.js +0 -62
  533. package/dist/directory-cli-D6N59tzr.js +0 -238
  534. package/dist/directory-config-helpers-BCrssKbI.js +0 -141
  535. package/dist/directory-runtime-CAabZ_XW.js +0 -20
  536. package/dist/directory.static-TKo2MeNR.js +0 -45
  537. package/dist/discord-BOpl5w4U.js +0 -5
  538. package/dist/discord-account-wyFuLDq_.js +0 -11
  539. package/dist/discord-core-BpzKxDZ7.js +0 -5
  540. package/dist/discord-lOPvIxp4.js +0 -11
  541. package/dist/discord-runtime-surface-Dm5WUtCV.js +0 -67
  542. package/dist/discord-session-key-DaPto1yr.js +0 -11
  543. package/dist/discord-surface-Cg_Mu9MI.js +0 -30
  544. package/dist/discord-thread-bindings-zIOp1Tj4.js +0 -29
  545. package/dist/discord-timeouts-Di5n5LAU.js +0 -12
  546. package/dist/discovery-DLbFJLD_.js +0 -171
  547. package/dist/dispatch-C4gGGYZt.js +0 -858
  548. package/dist/dispatch-acp.runtime-DUHj6bP-.js +0 -884
  549. package/dist/dispatch-acp.runtime.js +0 -1
  550. package/dist/dist-7JNqoGV7.js +0 -3
  551. package/dist/dist-BqJPEiV8.js +0 -14245
  552. package/dist/dist-DdE56Pmi.js +0 -503
  553. package/dist/dist-shQCTuJB.js +0 -1239
  554. package/dist/dm-policy-shared-C99GNVxp.js +0 -188
  555. package/dist/dns-cli-vQBAzTmg.js +0 -192
  556. package/dist/docker-BN7sQKCb.js +0 -789
  557. package/dist/docs-cli-Br6cfKoS.js +0 -156
  558. package/dist/doctor-completion-Cf0GcTXR.js +0 -90
  559. package/dist/doctor-config-preflight-C2cKYiKe.js +0 -2
  560. package/dist/doctor-config-preflight-DNbO-_N8.js +0 -148
  561. package/dist/doctor-state-migrations-BXkbeSFy.js +0 -2
  562. package/dist/doctor-state-migrations-G3shZ-W_.js +0 -3
  563. package/dist/dotenv-CelghjA4.js +0 -11
  564. package/dist/dotenv-Csg1Xj8n.js +0 -113
  565. package/dist/embedding-provider-Aey9VsDb.js +0 -129
  566. package/dist/enable-BgSxsKp_.js +0 -57
  567. package/dist/encryption-guidance-62xAQFP4.js +0 -33
  568. package/dist/entry-status-3ymZYX2l.js +0 -172
  569. package/dist/entry.js +0 -209
  570. package/dist/env-CK3eZNIX.js +0 -40
  571. package/dist/env-overrides-CcDOWo0Y.js +0 -346
  572. package/dist/env-overrides.runtime-CKb7-Q72.js +0 -7
  573. package/dist/env-overrides.runtime.js +0 -1
  574. package/dist/env-substitution-UhJwb0ys.js +0 -136
  575. package/dist/envelope-CrC9AdBL.js +0 -137
  576. package/dist/error-runtime-D-gKufd_.js +0 -2
  577. package/dist/error-text-BC9WfvfX.js +0 -24
  578. package/dist/errors-Bs2h5H8p.js +0 -71
  579. package/dist/errors-CjFsF-QY.js +0 -9
  580. package/dist/exa-web-search-provider-DUUlmDcV.js +0 -355
  581. package/dist/exec-BO6vYjRf.js +0 -368
  582. package/dist/exec-CD7C9g-b.js +0 -2
  583. package/dist/exec-approval-reply-CFOEcmIv.js +0 -189
  584. package/dist/exec-approval-session-target-BbsAlD1Q.js +0 -159
  585. package/dist/exec-approvals-3UDrE7Q9.js +0 -1565
  586. package/dist/exec-approvals-CW5axvaY.js +0 -121
  587. package/dist/exec-approvals-cli-BPYvtJv-.js +0 -483
  588. package/dist/exec-approvals-effective-DbLJfkpe.js +0 -140
  589. package/dist/exec-safe-bin-runtime-policy-218hHVyc.js +0 -90
  590. package/dist/exec-safety-XzKkUSvE.js +0 -24
  591. package/dist/export-html/template.css +0 -1060
  592. package/dist/export-html/template.html +0 -88
  593. package/dist/export-html/template.js +0 -1875
  594. package/dist/export-html/vendor/highlight.min.js +0 -1213
  595. package/dist/export-html/vendor/marked.min.js +0 -6
  596. package/dist/extension-shared-V_4IXpRU.js +0 -74
  597. package/dist/extensionAPI.js +0 -17
  598. package/dist/extensions/acpx/index.js +0 -1855
  599. package/dist/extensions/acpx/mcp-proxy.mjs +0 -151
  600. package/dist/extensions/acpx/openclaw.plugin.json +0 -132
  601. package/dist/extensions/acpx/package.json +0 -14
  602. package/dist/extensions/acpx/runtime-api.js +0 -5
  603. package/dist/extensions/acpx/skills/acp-router/SKILL.md +0 -245
  604. package/dist/extensions/aicq-chat/index.js +0 -284
  605. package/dist/extensions/aicq-chat/openclaw.plugin.json +0 -30
  606. package/dist/extensions/amazon-bedrock/api.js +0 -3
  607. package/dist/extensions/amazon-bedrock/discovery.js +0 -2
  608. package/dist/extensions/amazon-bedrock/index.js +0 -65
  609. package/dist/extensions/amazon-bedrock/openclaw.plugin.json +0 -44
  610. package/dist/extensions/amazon-bedrock/package.json +0 -23
  611. package/dist/extensions/anthropic/api.js +0 -3
  612. package/dist/extensions/anthropic/cli-backend.js +0 -2
  613. package/dist/extensions/anthropic/cli-migration.js +0 -2
  614. package/dist/extensions/anthropic/cli-shared.js +0 -2
  615. package/dist/extensions/anthropic/index.js +0 -357
  616. package/dist/extensions/anthropic/media-understanding-provider.js +0 -2
  617. package/dist/extensions/anthropic/openclaw.plugin.json +0 -64
  618. package/dist/extensions/anthropic/package.json +0 -12
  619. package/dist/extensions/anthropic/stream-wrappers.js +0 -2
  620. package/dist/extensions/anthropic/test-api.js +0 -2
  621. package/dist/extensions/anthropic-vertex/api.js +0 -4
  622. package/dist/extensions/anthropic-vertex/index.js +0 -36
  623. package/dist/extensions/anthropic-vertex/openclaw.plugin.json +0 -12
  624. package/dist/extensions/anthropic-vertex/package.json +0 -12
  625. package/dist/extensions/anthropic-vertex/provider-catalog.js +0 -2
  626. package/dist/extensions/anthropic-vertex/region.js +0 -2
  627. package/dist/extensions/bluebubbles/api.js +0 -5
  628. package/dist/extensions/bluebubbles/channel-config-api.js +0 -2
  629. package/dist/extensions/bluebubbles/index.js +0 -13
  630. package/dist/extensions/bluebubbles/openclaw.plugin.json +0 -11
  631. package/dist/extensions/bluebubbles/package.json +0 -48
  632. package/dist/extensions/bluebubbles/runtime-api.js +0 -2
  633. package/dist/extensions/bluebubbles/setup-entry.js +0 -26
  634. package/dist/extensions/brave/index.js +0 -13
  635. package/dist/extensions/brave/openclaw.plugin.json +0 -50
  636. package/dist/extensions/brave/package.json +0 -12
  637. package/dist/extensions/brave/test-api.js +0 -2
  638. package/dist/extensions/brave/web-search-provider.js +0 -2
  639. package/dist/extensions/browser/browser-runtime-api.js +0 -4
  640. package/dist/extensions/browser/index.js +0 -20
  641. package/dist/extensions/browser/openclaw.plugin.json +0 -9
  642. package/dist/extensions/browser/package.json +0 -12
  643. package/dist/extensions/browser/runtime-api.js +0 -6
  644. package/dist/extensions/browser/test-support.js +0 -50
  645. package/dist/extensions/byteplus/api.js +0 -3
  646. package/dist/extensions/byteplus/index.js +0 -63
  647. package/dist/extensions/byteplus/models.js +0 -2
  648. package/dist/extensions/byteplus/openclaw.plugin.json +0 -33
  649. package/dist/extensions/byteplus/package.json +0 -12
  650. package/dist/extensions/byteplus/provider-catalog.js +0 -2
  651. package/dist/extensions/chutes/api.js +0 -3
  652. package/dist/extensions/chutes/index.js +0 -143
  653. package/dist/extensions/chutes/models.js +0 -2
  654. package/dist/extensions/chutes/onboard.js +0 -3
  655. package/dist/extensions/chutes/openclaw.plugin.json +0 -44
  656. package/dist/extensions/chutes/package.json +0 -12
  657. package/dist/extensions/chutes/provider-catalog.js +0 -2
  658. package/dist/extensions/cloudflare-ai-gateway/api.js +0 -3
  659. package/dist/extensions/cloudflare-ai-gateway/index.js +0 -188
  660. package/dist/extensions/cloudflare-ai-gateway/models.js +0 -2
  661. package/dist/extensions/cloudflare-ai-gateway/onboard.js +0 -2
  662. package/dist/extensions/cloudflare-ai-gateway/openclaw.plugin.json +0 -33
  663. package/dist/extensions/cloudflare-ai-gateway/package.json +0 -12
  664. package/dist/extensions/copilot-proxy/index.js +0 -125
  665. package/dist/extensions/copilot-proxy/openclaw.plugin.json +0 -27
  666. package/dist/extensions/copilot-proxy/package.json +0 -12
  667. package/dist/extensions/copilot-proxy/runtime-api.js +0 -3
  668. package/dist/extensions/deepgram/audio.js +0 -2
  669. package/dist/extensions/deepgram/index.js +0 -13
  670. package/dist/extensions/deepgram/media-understanding-provider.js +0 -2
  671. package/dist/extensions/deepgram/openclaw.plugin.json +0 -13
  672. package/dist/extensions/deepgram/package.json +0 -12
  673. package/dist/extensions/deepseek/api.js +0 -3
  674. package/dist/extensions/deepseek/index.js +0 -33
  675. package/dist/extensions/deepseek/models.js +0 -2
  676. package/dist/extensions/deepseek/onboard.js +0 -2
  677. package/dist/extensions/deepseek/openclaw.plugin.json +0 -32
  678. package/dist/extensions/deepseek/package.json +0 -12
  679. package/dist/extensions/deepseek/provider-catalog.js +0 -2
  680. package/dist/extensions/device-pair/api.js +0 -10
  681. package/dist/extensions/device-pair/index.js +0 -483
  682. package/dist/extensions/device-pair/notify.js +0 -2
  683. package/dist/extensions/device-pair/openclaw.plugin.json +0 -21
  684. package/dist/extensions/device-pair/qr-image.js +0 -3
  685. package/dist/extensions/diagnostics-otel/api.js +0 -6
  686. package/dist/extensions/diagnostics-otel/index.js +0 -485
  687. package/dist/extensions/diagnostics-otel/openclaw.plugin.json +0 -8
  688. package/dist/extensions/diagnostics-otel/package.json +0 -27
  689. package/dist/extensions/diffs/api.js +0 -4
  690. package/dist/extensions/diffs/assets/viewer-runtime.js +0 -1888
  691. package/dist/extensions/diffs/index.js +0 -2058
  692. package/dist/extensions/diffs/openclaw.plugin.json +0 -226
  693. package/dist/extensions/diffs/package.json +0 -24
  694. package/dist/extensions/diffs/runtime-api.js +0 -3
  695. package/dist/extensions/diffs/skills/diffs/SKILL.md +0 -23
  696. package/dist/extensions/discord/action-runtime-api.js +0 -2
  697. package/dist/extensions/discord/api.js +0 -14
  698. package/dist/extensions/discord/channel-config-api.js +0 -2
  699. package/dist/extensions/discord/index.js +0 -612
  700. package/dist/extensions/discord/openclaw.plugin.json +0 -11
  701. package/dist/extensions/discord/package.json +0 -52
  702. package/dist/extensions/discord/runtime-api.js +0 -230
  703. package/dist/extensions/discord/session-key-api.js +0 -2
  704. package/dist/extensions/discord/setup-entry.js +0 -10
  705. package/dist/extensions/discord/test-api.js +0 -45
  706. package/dist/extensions/discord/timeouts.js +0 -2
  707. package/dist/extensions/duckduckgo/index.js +0 -13
  708. package/dist/extensions/duckduckgo/openclaw.plugin.json +0 -41
  709. package/dist/extensions/duckduckgo/package.json +0 -12
  710. package/dist/extensions/duckduckgo/web-search-provider.js +0 -2
  711. package/dist/extensions/elevenlabs/index.js +0 -13
  712. package/dist/extensions/elevenlabs/openclaw.plugin.json +0 -13
  713. package/dist/extensions/elevenlabs/package.json +0 -12
  714. package/dist/extensions/elevenlabs/speech-provider.js +0 -2
  715. package/dist/extensions/elevenlabs/test-api.js +0 -2
  716. package/dist/extensions/elevenlabs/tts.js +0 -2
  717. package/dist/extensions/exa/index.js +0 -13
  718. package/dist/extensions/exa/openclaw.plugin.json +0 -39
  719. package/dist/extensions/exa/package.json +0 -12
  720. package/dist/extensions/exa/web-search-provider.js +0 -2
  721. package/dist/extensions/fal/image-generation-provider.js +0 -2
  722. package/dist/extensions/fal/index.js +0 -45
  723. package/dist/extensions/fal/onboard.js +0 -2
  724. package/dist/extensions/fal/openclaw.plugin.json +0 -40
  725. package/dist/extensions/fal/package.json +0 -12
  726. package/dist/extensions/feishu/api.js +0 -7
  727. package/dist/extensions/feishu/index.js +0 -2531
  728. package/dist/extensions/feishu/openclaw.plugin.json +0 -14
  729. package/dist/extensions/feishu/package.json +0 -52
  730. package/dist/extensions/feishu/runtime-api.js +0 -34
  731. package/dist/extensions/feishu/session-key-api.js +0 -2
  732. package/dist/extensions/feishu/setup-api.js +0 -2
  733. package/dist/extensions/feishu/setup-entry.js +0 -6
  734. package/dist/extensions/feishu/skills/feishu-doc/SKILL.md +0 -211
  735. package/dist/extensions/feishu/skills/feishu-doc/references/block-types.md +0 -103
  736. package/dist/extensions/feishu/skills/feishu-drive/SKILL.md +0 -97
  737. package/dist/extensions/feishu/skills/feishu-perm/SKILL.md +0 -119
  738. package/dist/extensions/feishu/skills/feishu-wiki/SKILL.md +0 -111
  739. package/dist/extensions/firecrawl/api.js +0 -33
  740. package/dist/extensions/firecrawl/index.js +0 -184
  741. package/dist/extensions/firecrawl/openclaw.plugin.json +0 -87
  742. package/dist/extensions/firecrawl/package.json +0 -12
  743. package/dist/extensions/firecrawl/web-search-provider.js +0 -2
  744. package/dist/extensions/github-copilot/api.js +0 -2
  745. package/dist/extensions/github-copilot/index.js +0 -138
  746. package/dist/extensions/github-copilot/login.js +0 -2
  747. package/dist/extensions/github-copilot/models-defaults.js +0 -38
  748. package/dist/extensions/github-copilot/models.js +0 -2
  749. package/dist/extensions/github-copilot/openclaw.plugin.json +0 -31
  750. package/dist/extensions/github-copilot/package.json +0 -12
  751. package/dist/extensions/github-copilot/token.js +0 -3
  752. package/dist/extensions/github-copilot/usage.js +0 -2
  753. package/dist/extensions/google/api.js +0 -3
  754. package/dist/extensions/google/cli-backend.js +0 -2
  755. package/dist/extensions/google/gemini-cli-provider.js +0 -110
  756. package/dist/extensions/google/google-shared.test-helpers.js +0 -92
  757. package/dist/extensions/google/image-generation-provider.js +0 -162
  758. package/dist/extensions/google/index.js +0 -213
  759. package/dist/extensions/google/media-understanding-provider.js +0 -104
  760. package/dist/extensions/google/model-id.js +0 -2
  761. package/dist/extensions/google/oauth.credentials.js +0 -2
  762. package/dist/extensions/google/oauth.flow.js +0 -2
  763. package/dist/extensions/google/oauth.http.js +0 -2
  764. package/dist/extensions/google/oauth.js +0 -3
  765. package/dist/extensions/google/oauth.project.js +0 -2
  766. package/dist/extensions/google/oauth.runtime.js +0 -2
  767. package/dist/extensions/google/oauth.shared.js +0 -2
  768. package/dist/extensions/google/oauth.token.js +0 -2
  769. package/dist/extensions/google/openclaw.plugin.json +0 -89
  770. package/dist/extensions/google/package.json +0 -12
  771. package/dist/extensions/google/provider-models.js +0 -2
  772. package/dist/extensions/google/runtime-api.js +0 -4
  773. package/dist/extensions/google/test-api.js +0 -2
  774. package/dist/extensions/google/web-search-provider.js +0 -2
  775. package/dist/extensions/googlechat/api.js +0 -2
  776. package/dist/extensions/googlechat/channel-config-api.js +0 -7
  777. package/dist/extensions/googlechat/index.js +0 -13
  778. package/dist/extensions/googlechat/openclaw.plugin.json +0 -11
  779. package/dist/extensions/googlechat/package.json +0 -48
  780. package/dist/extensions/googlechat/runtime-api.js +0 -39
  781. package/dist/extensions/googlechat/setup-entry.js +0 -6
  782. package/dist/extensions/googlechat/test-api.js +0 -3
  783. package/dist/extensions/groq/index.js +0 -13
  784. package/dist/extensions/groq/media-understanding-provider.js +0 -2
  785. package/dist/extensions/groq/openclaw.plugin.json +0 -13
  786. package/dist/extensions/groq/package.json +0 -12
  787. package/dist/extensions/huggingface/api.js +0 -4
  788. package/dist/extensions/huggingface/index.js +0 -54
  789. package/dist/extensions/huggingface/models.js +0 -2
  790. package/dist/extensions/huggingface/onboard.js +0 -2
  791. package/dist/extensions/huggingface/openclaw.plugin.json +0 -34
  792. package/dist/extensions/huggingface/package.json +0 -12
  793. package/dist/extensions/huggingface/provider-catalog.js +0 -3
  794. package/dist/extensions/imessage/api.js +0 -4
  795. package/dist/extensions/imessage/channel-config-api.js +0 -2
  796. package/dist/extensions/imessage/index.js +0 -211
  797. package/dist/extensions/imessage/openclaw.plugin.json +0 -11
  798. package/dist/extensions/imessage/package.json +0 -26
  799. package/dist/extensions/imessage/runtime-api.js +0 -11
  800. package/dist/extensions/imessage/setup-entry.js +0 -13
  801. package/dist/extensions/irc/api.js +0 -2
  802. package/dist/extensions/irc/channel-config-api.js +0 -2
  803. package/dist/extensions/irc/index.js +0 -12
  804. package/dist/extensions/irc/openclaw.plugin.json +0 -11
  805. package/dist/extensions/irc/package.json +0 -28
  806. package/dist/extensions/irc/setup-entry.js +0 -6
  807. package/dist/extensions/kilocode/api.js +0 -3
  808. package/dist/extensions/kilocode/index.js +0 -37
  809. package/dist/extensions/kilocode/onboard.js +0 -3
  810. package/dist/extensions/kilocode/openclaw.plugin.json +0 -33
  811. package/dist/extensions/kilocode/package.json +0 -12
  812. package/dist/extensions/kilocode/provider-catalog.js +0 -2
  813. package/dist/extensions/kilocode/provider-models.js +0 -2
  814. package/dist/extensions/kilocode/shared.js +0 -2
  815. package/dist/extensions/kimi-coding/api.js +0 -3
  816. package/dist/extensions/kimi-coding/index.js +0 -81
  817. package/dist/extensions/kimi-coding/onboard.js +0 -2
  818. package/dist/extensions/kimi-coding/openclaw.plugin.json +0 -38
  819. package/dist/extensions/kimi-coding/package.json +0 -12
  820. package/dist/extensions/kimi-coding/provider-catalog.js +0 -2
  821. package/dist/extensions/kimi-coding/stream.js +0 -2
  822. package/dist/extensions/line/api.js +0 -13
  823. package/dist/extensions/line/index.js +0 -815
  824. package/dist/extensions/line/openclaw.plugin.json +0 -11
  825. package/dist/extensions/line/package.json +0 -41
  826. package/dist/extensions/line/runtime-api.js +0 -11
  827. package/dist/extensions/line/setup-api.js +0 -3
  828. package/dist/extensions/line/setup-entry.js +0 -15
  829. package/dist/extensions/litellm/api.js +0 -2
  830. package/dist/extensions/litellm/index.js +0 -36
  831. package/dist/extensions/litellm/onboard.js +0 -2
  832. package/dist/extensions/litellm/openclaw.plugin.json +0 -33
  833. package/dist/extensions/litellm/package.json +0 -12
  834. package/dist/extensions/litellm/provider-catalog.js +0 -2
  835. package/dist/extensions/llm-task/api.js +0 -6
  836. package/dist/extensions/llm-task/index.js +0 -156
  837. package/dist/extensions/llm-task/openclaw.plugin.json +0 -33
  838. package/dist/extensions/llm-task/package.json +0 -16
  839. package/dist/extensions/lobster/index.js +0 -232
  840. package/dist/extensions/lobster/openclaw.plugin.json +0 -10
  841. package/dist/extensions/lobster/package.json +0 -17
  842. package/dist/extensions/lobster/runtime-api.js +0 -4
  843. package/dist/extensions/matrix/api.js +0 -10
  844. package/dist/extensions/matrix/helper-api.js +0 -3
  845. package/dist/extensions/matrix/index.js +0 -44
  846. package/dist/extensions/matrix/legacy-crypto-inspector.js +0 -41
  847. package/dist/extensions/matrix/openclaw.plugin.json +0 -11
  848. package/dist/extensions/matrix/package.json +0 -53
  849. package/dist/extensions/matrix/plugin-entry.handlers.runtime.js +0 -48
  850. package/dist/extensions/matrix/runtime-api.js +0 -25
  851. package/dist/extensions/matrix/setup-entry.js +0 -6
  852. package/dist/extensions/matrix/test-api.js +0 -3
  853. package/dist/extensions/matrix/thread-bindings-runtime.js +0 -2
  854. package/dist/extensions/mattermost/api.js +0 -2
  855. package/dist/extensions/mattermost/index.js +0 -15
  856. package/dist/extensions/mattermost/openclaw.plugin.json +0 -11
  857. package/dist/extensions/mattermost/package.json +0 -41
  858. package/dist/extensions/mattermost/runtime-api.js +0 -41
  859. package/dist/extensions/mattermost/setup-entry.js +0 -6
  860. package/dist/extensions/memory-core/api.js +0 -1
  861. package/dist/extensions/memory-core/index.js +0 -440
  862. package/dist/extensions/memory-core/openclaw.plugin.json +0 -9
  863. package/dist/extensions/memory-core/package.json +0 -23
  864. package/dist/extensions/memory-core/runtime-api.js +0 -3
  865. package/dist/extensions/memory-lancedb/api.js +0 -4
  866. package/dist/extensions/memory-lancedb/config.js +0 -2
  867. package/dist/extensions/memory-lancedb/index.js +0 -7037
  868. package/dist/extensions/memory-lancedb/lancedb-runtime.js +0 -2
  869. package/dist/extensions/memory-lancedb/openclaw.plugin.json +0 -92
  870. package/dist/extensions/memory-lancedb/package.json +0 -24
  871. package/dist/extensions/microsoft/index.js +0 -13
  872. package/dist/extensions/microsoft/openclaw.plugin.json +0 -13
  873. package/dist/extensions/microsoft/package.json +0 -15
  874. package/dist/extensions/microsoft/speech-provider.js +0 -2
  875. package/dist/extensions/microsoft/test-api.js +0 -2
  876. package/dist/extensions/microsoft/tts.js +0 -2
  877. package/dist/extensions/microsoft-foundry/auth.js +0 -2
  878. package/dist/extensions/microsoft-foundry/cli.js +0 -2
  879. package/dist/extensions/microsoft-foundry/index.js +0 -13
  880. package/dist/extensions/microsoft-foundry/onboard.js +0 -3
  881. package/dist/extensions/microsoft-foundry/openclaw.plugin.json +0 -39
  882. package/dist/extensions/microsoft-foundry/package.json +0 -12
  883. package/dist/extensions/microsoft-foundry/provider.js +0 -2
  884. package/dist/extensions/microsoft-foundry/runtime.js +0 -2
  885. package/dist/extensions/microsoft-foundry/shared-runtime.js +0 -3
  886. package/dist/extensions/microsoft-foundry/shared.js +0 -2
  887. package/dist/extensions/minimax/api.js +0 -6
  888. package/dist/extensions/minimax/image-generation-provider.js +0 -2
  889. package/dist/extensions/minimax/index.js +0 -219
  890. package/dist/extensions/minimax/media-understanding-provider.js +0 -2
  891. package/dist/extensions/minimax/model-definitions.js +0 -2
  892. package/dist/extensions/minimax/oauth.js +0 -2
  893. package/dist/extensions/minimax/oauth.runtime.js +0 -2
  894. package/dist/extensions/minimax/onboard.js +0 -2
  895. package/dist/extensions/minimax/openclaw.plugin.json +0 -98
  896. package/dist/extensions/minimax/package.json +0 -12
  897. package/dist/extensions/minimax/provider-catalog.js +0 -2
  898. package/dist/extensions/minimax/provider-models.js +0 -2
  899. package/dist/extensions/mistral/api.js +0 -5
  900. package/dist/extensions/mistral/index.js +0 -79
  901. package/dist/extensions/mistral/media-understanding-provider.js +0 -2
  902. package/dist/extensions/mistral/model-definitions.js +0 -2
  903. package/dist/extensions/mistral/onboard.js +0 -2
  904. package/dist/extensions/mistral/openclaw.plugin.json +0 -37
  905. package/dist/extensions/mistral/package.json +0 -12
  906. package/dist/extensions/mistral/provider-catalog.js +0 -2
  907. package/dist/extensions/modelstudio/api.js +0 -4
  908. package/dist/extensions/modelstudio/index.js +0 -111
  909. package/dist/extensions/modelstudio/model-definitions.js +0 -2
  910. package/dist/extensions/modelstudio/models.js +0 -2
  911. package/dist/extensions/modelstudio/onboard.js +0 -3
  912. package/dist/extensions/modelstudio/openclaw.plugin.json +0 -75
  913. package/dist/extensions/modelstudio/package.json +0 -12
  914. package/dist/extensions/modelstudio/provider-catalog.js +0 -2
  915. package/dist/extensions/moonshot/api.js +0 -4
  916. package/dist/extensions/moonshot/index.js +0 -58
  917. package/dist/extensions/moonshot/media-understanding-provider.js +0 -2
  918. package/dist/extensions/moonshot/onboard.js +0 -2
  919. package/dist/extensions/moonshot/openclaw.plugin.json +0 -87
  920. package/dist/extensions/moonshot/package.json +0 -12
  921. package/dist/extensions/moonshot/provider-catalog.js +0 -2
  922. package/dist/extensions/moonshot/test-api.js +0 -2
  923. package/dist/extensions/moonshot/web-search-provider.js +0 -2
  924. package/dist/extensions/msteams/api.js +0 -2
  925. package/dist/extensions/msteams/channel-config-api.js +0 -2
  926. package/dist/extensions/msteams/index.js +0 -13
  927. package/dist/extensions/msteams/openclaw.plugin.json +0 -11
  928. package/dist/extensions/msteams/package.json +0 -48
  929. package/dist/extensions/msteams/runtime-api.js +0 -47
  930. package/dist/extensions/msteams/setup-entry.js +0 -6
  931. package/dist/extensions/msteams/test-api.js +0 -2
  932. package/dist/extensions/nextcloud-talk/api.js +0 -2
  933. package/dist/extensions/nextcloud-talk/index.js +0 -12
  934. package/dist/extensions/nextcloud-talk/openclaw.plugin.json +0 -11
  935. package/dist/extensions/nextcloud-talk/package.json +0 -45
  936. package/dist/extensions/nextcloud-talk/runtime-api.js +0 -35
  937. package/dist/extensions/nextcloud-talk/setup-entry.js +0 -6
  938. package/dist/extensions/nostr/api.js +0 -15
  939. package/dist/extensions/nostr/index.js +0 -559
  940. package/dist/extensions/nostr/openclaw.plugin.json +0 -11
  941. package/dist/extensions/nostr/package.json +0 -44
  942. package/dist/extensions/nostr/runtime-api.js +0 -15
  943. package/dist/extensions/nostr/setup-api.js +0 -2
  944. package/dist/extensions/nostr/setup-entry.js +0 -6
  945. package/dist/extensions/nostr/test-api.js +0 -2
  946. package/dist/extensions/nvidia/api.js +0 -2
  947. package/dist/extensions/nvidia/index.js +0 -16
  948. package/dist/extensions/nvidia/openclaw.plugin.json +0 -17
  949. package/dist/extensions/nvidia/package.json +0 -12
  950. package/dist/extensions/nvidia/provider-catalog.js +0 -2
  951. package/dist/extensions/ollama/api.js +0 -3
  952. package/dist/extensions/ollama/index.js +0 -139
  953. package/dist/extensions/ollama/openclaw.plugin.json +0 -29
  954. package/dist/extensions/ollama/package.json +0 -12
  955. package/dist/extensions/ollama/runtime-api.js +0 -3
  956. package/dist/extensions/open-prose/index.js +0 -10
  957. package/dist/extensions/open-prose/openclaw.plugin.json +0 -13
  958. package/dist/extensions/open-prose/package.json +0 -12
  959. package/dist/extensions/open-prose/runtime-api.js +0 -3
  960. package/dist/extensions/open-prose/skills/prose/LICENSE +0 -21
  961. package/dist/extensions/open-prose/skills/prose/SKILL.md +0 -323
  962. package/dist/extensions/open-prose/skills/prose/alt-borges.md +0 -141
  963. package/dist/extensions/open-prose/skills/prose/alts/arabian-nights.md +0 -229
  964. package/dist/extensions/open-prose/skills/prose/alts/borges.md +0 -360
  965. package/dist/extensions/open-prose/skills/prose/alts/folk.md +0 -322
  966. package/dist/extensions/open-prose/skills/prose/alts/homer.md +0 -217
  967. package/dist/extensions/open-prose/skills/prose/alts/kafka.md +0 -373
  968. package/dist/extensions/open-prose/skills/prose/alts/shared-appendix.md +0 -35
  969. package/dist/extensions/open-prose/skills/prose/compiler.md +0 -2971
  970. package/dist/extensions/open-prose/skills/prose/examples/01-hello-world.prose +0 -4
  971. package/dist/extensions/open-prose/skills/prose/examples/02-research-and-summarize.prose +0 -6
  972. package/dist/extensions/open-prose/skills/prose/examples/03-code-review.prose +0 -17
  973. package/dist/extensions/open-prose/skills/prose/examples/04-write-and-refine.prose +0 -14
  974. package/dist/extensions/open-prose/skills/prose/examples/05-debug-issue.prose +0 -20
  975. package/dist/extensions/open-prose/skills/prose/examples/06-explain-codebase.prose +0 -17
  976. package/dist/extensions/open-prose/skills/prose/examples/07-refactor.prose +0 -20
  977. package/dist/extensions/open-prose/skills/prose/examples/08-blog-post.prose +0 -20
  978. package/dist/extensions/open-prose/skills/prose/examples/09-research-with-agents.prose +0 -25
  979. package/dist/extensions/open-prose/skills/prose/examples/10-code-review-agents.prose +0 -32
  980. package/dist/extensions/open-prose/skills/prose/examples/11-skills-and-imports.prose +0 -27
  981. package/dist/extensions/open-prose/skills/prose/examples/12-secure-agent-permissions.prose +0 -43
  982. package/dist/extensions/open-prose/skills/prose/examples/13-variables-and-context.prose +0 -51
  983. package/dist/extensions/open-prose/skills/prose/examples/14-composition-blocks.prose +0 -48
  984. package/dist/extensions/open-prose/skills/prose/examples/15-inline-sequences.prose +0 -23
  985. package/dist/extensions/open-prose/skills/prose/examples/16-parallel-reviews.prose +0 -19
  986. package/dist/extensions/open-prose/skills/prose/examples/17-parallel-research.prose +0 -19
  987. package/dist/extensions/open-prose/skills/prose/examples/18-mixed-parallel-sequential.prose +0 -36
  988. package/dist/extensions/open-prose/skills/prose/examples/19-advanced-parallel.prose +0 -71
  989. package/dist/extensions/open-prose/skills/prose/examples/20-fixed-loops.prose +0 -20
  990. package/dist/extensions/open-prose/skills/prose/examples/21-pipeline-operations.prose +0 -35
  991. package/dist/extensions/open-prose/skills/prose/examples/22-error-handling.prose +0 -51
  992. package/dist/extensions/open-prose/skills/prose/examples/23-retry-with-backoff.prose +0 -63
  993. package/dist/extensions/open-prose/skills/prose/examples/24-choice-blocks.prose +0 -86
  994. package/dist/extensions/open-prose/skills/prose/examples/25-conditionals.prose +0 -114
  995. package/dist/extensions/open-prose/skills/prose/examples/26-parameterized-blocks.prose +0 -100
  996. package/dist/extensions/open-prose/skills/prose/examples/27-string-interpolation.prose +0 -105
  997. package/dist/extensions/open-prose/skills/prose/examples/28-automated-pr-review.prose +0 -37
  998. package/dist/extensions/open-prose/skills/prose/examples/28-gas-town.prose +0 -1572
  999. package/dist/extensions/open-prose/skills/prose/examples/29-captains-chair.prose +0 -218
  1000. package/dist/extensions/open-prose/skills/prose/examples/30-captains-chair-simple.prose +0 -42
  1001. package/dist/extensions/open-prose/skills/prose/examples/31-captains-chair-with-memory.prose +0 -145
  1002. package/dist/extensions/open-prose/skills/prose/examples/33-pr-review-autofix.prose +0 -168
  1003. package/dist/extensions/open-prose/skills/prose/examples/34-content-pipeline.prose +0 -204
  1004. package/dist/extensions/open-prose/skills/prose/examples/35-feature-factory.prose +0 -296
  1005. package/dist/extensions/open-prose/skills/prose/examples/36-bug-hunter.prose +0 -237
  1006. package/dist/extensions/open-prose/skills/prose/examples/37-the-forge.prose +0 -1474
  1007. package/dist/extensions/open-prose/skills/prose/examples/38-skill-scan.prose +0 -455
  1008. package/dist/extensions/open-prose/skills/prose/examples/39-architect-by-simulation.prose +0 -277
  1009. package/dist/extensions/open-prose/skills/prose/examples/40-rlm-self-refine.prose +0 -32
  1010. package/dist/extensions/open-prose/skills/prose/examples/41-rlm-divide-conquer.prose +0 -38
  1011. package/dist/extensions/open-prose/skills/prose/examples/42-rlm-filter-recurse.prose +0 -46
  1012. package/dist/extensions/open-prose/skills/prose/examples/43-rlm-pairwise.prose +0 -50
  1013. package/dist/extensions/open-prose/skills/prose/examples/44-run-endpoint-ux-test.prose +0 -261
  1014. package/dist/extensions/open-prose/skills/prose/examples/45-plugin-release.prose +0 -159
  1015. package/dist/extensions/open-prose/skills/prose/examples/45-run-endpoint-ux-test-with-remediation.prose +0 -637
  1016. package/dist/extensions/open-prose/skills/prose/examples/46-run-endpoint-ux-test-fast.prose +0 -148
  1017. package/dist/extensions/open-prose/skills/prose/examples/46-workflow-crystallizer.prose +0 -225
  1018. package/dist/extensions/open-prose/skills/prose/examples/47-language-self-improvement.prose +0 -356
  1019. package/dist/extensions/open-prose/skills/prose/examples/48-habit-miner.prose +0 -445
  1020. package/dist/extensions/open-prose/skills/prose/examples/49-prose-run-retrospective.prose +0 -210
  1021. package/dist/extensions/open-prose/skills/prose/examples/README.md +0 -391
  1022. package/dist/extensions/open-prose/skills/prose/examples/roadmap/README.md +0 -22
  1023. package/dist/extensions/open-prose/skills/prose/examples/roadmap/iterative-refinement.prose +0 -20
  1024. package/dist/extensions/open-prose/skills/prose/examples/roadmap/parallel-review.prose +0 -18
  1025. package/dist/extensions/open-prose/skills/prose/examples/roadmap/simple-pipeline.prose +0 -17
  1026. package/dist/extensions/open-prose/skills/prose/examples/roadmap/syntax/open-prose-syntax.prose +0 -223
  1027. package/dist/extensions/open-prose/skills/prose/guidance/antipatterns.md +0 -951
  1028. package/dist/extensions/open-prose/skills/prose/guidance/patterns.md +0 -700
  1029. package/dist/extensions/open-prose/skills/prose/guidance/system-prompt.md +0 -180
  1030. package/dist/extensions/open-prose/skills/prose/help.md +0 -144
  1031. package/dist/extensions/open-prose/skills/prose/lib/README.md +0 -108
  1032. package/dist/extensions/open-prose/skills/prose/lib/calibrator.prose +0 -215
  1033. package/dist/extensions/open-prose/skills/prose/lib/cost-analyzer.prose +0 -174
  1034. package/dist/extensions/open-prose/skills/prose/lib/error-forensics.prose +0 -250
  1035. package/dist/extensions/open-prose/skills/prose/lib/inspector.prose +0 -196
  1036. package/dist/extensions/open-prose/skills/prose/lib/profiler.prose +0 -460
  1037. package/dist/extensions/open-prose/skills/prose/lib/program-improver.prose +0 -275
  1038. package/dist/extensions/open-prose/skills/prose/lib/project-memory.prose +0 -118
  1039. package/dist/extensions/open-prose/skills/prose/lib/user-memory.prose +0 -93
  1040. package/dist/extensions/open-prose/skills/prose/lib/vm-improver.prose +0 -243
  1041. package/dist/extensions/open-prose/skills/prose/primitives/session.md +0 -593
  1042. package/dist/extensions/open-prose/skills/prose/prose.md +0 -1237
  1043. package/dist/extensions/open-prose/skills/prose/state/filesystem.md +0 -498
  1044. package/dist/extensions/open-prose/skills/prose/state/in-context.md +0 -384
  1045. package/dist/extensions/open-prose/skills/prose/state/postgres.md +0 -880
  1046. package/dist/extensions/open-prose/skills/prose/state/sqlite.md +0 -531
  1047. package/dist/extensions/openai/api.js +0 -4
  1048. package/dist/extensions/openai/cli-backend.js +0 -2
  1049. package/dist/extensions/openai/default-models.js +0 -2
  1050. package/dist/extensions/openai/image-generation-provider.js +0 -2
  1051. package/dist/extensions/openai/index.js +0 -24
  1052. package/dist/extensions/openai/media-understanding-provider.js +0 -2
  1053. package/dist/extensions/openai/openai-codex-auth-identity.js +0 -2
  1054. package/dist/extensions/openai/openai-codex-catalog.js +0 -2
  1055. package/dist/extensions/openai/openai-codex-provider.js +0 -2
  1056. package/dist/extensions/openai/openai-codex-provider.runtime.js +0 -14
  1057. package/dist/extensions/openai/openai-provider.js +0 -2
  1058. package/dist/extensions/openai/openclaw.plugin.json +0 -61
  1059. package/dist/extensions/openai/package.json +0 -12
  1060. package/dist/extensions/openai/shared.js +0 -4
  1061. package/dist/extensions/openai/speech-provider.js +0 -2
  1062. package/dist/extensions/openai/test-api.js +0 -5
  1063. package/dist/extensions/openai/tts.js +0 -2
  1064. package/dist/extensions/opencode/api.js +0 -3
  1065. package/dist/extensions/opencode/index.js +0 -63
  1066. package/dist/extensions/opencode/onboard.js +0 -2
  1067. package/dist/extensions/opencode/openclaw.plugin.json +0 -33
  1068. package/dist/extensions/opencode/package.json +0 -12
  1069. package/dist/extensions/opencode-go/api.js +0 -3
  1070. package/dist/extensions/opencode-go/index.js +0 -54
  1071. package/dist/extensions/opencode-go/onboard.js +0 -2
  1072. package/dist/extensions/opencode-go/openclaw.plugin.json +0 -33
  1073. package/dist/extensions/opencode-go/package.json +0 -12
  1074. package/dist/extensions/openrouter/api.js +0 -3
  1075. package/dist/extensions/openrouter/index.js +0 -121
  1076. package/dist/extensions/openrouter/media-understanding-provider.js +0 -2
  1077. package/dist/extensions/openrouter/onboard.js +0 -2
  1078. package/dist/extensions/openrouter/openclaw.plugin.json +0 -37
  1079. package/dist/extensions/openrouter/package.json +0 -12
  1080. package/dist/extensions/openrouter/provider-catalog.js +0 -2
  1081. package/dist/extensions/openshell/index.js +0 -919
  1082. package/dist/extensions/openshell/openclaw.plugin.json +0 -118
  1083. package/dist/extensions/openshell/package.json +0 -12
  1084. package/dist/extensions/perplexity/index.js +0 -13
  1085. package/dist/extensions/perplexity/openclaw.plugin.json +0 -54
  1086. package/dist/extensions/perplexity/package.json +0 -12
  1087. package/dist/extensions/perplexity/test-api.js +0 -2
  1088. package/dist/extensions/perplexity/web-search-provider.js +0 -2
  1089. package/dist/extensions/phone-control/index.js +0 -283
  1090. package/dist/extensions/phone-control/openclaw.plugin.json +0 -11
  1091. package/dist/extensions/phone-control/runtime-api.js +0 -3
  1092. package/dist/extensions/qianfan/api.js +0 -3
  1093. package/dist/extensions/qianfan/index.js +0 -26
  1094. package/dist/extensions/qianfan/onboard.js +0 -2
  1095. package/dist/extensions/qianfan/openclaw.plugin.json +0 -32
  1096. package/dist/extensions/qianfan/package.json +0 -12
  1097. package/dist/extensions/qianfan/provider-catalog.js +0 -2
  1098. package/dist/extensions/qqbot/api.js +0 -173
  1099. package/dist/extensions/qqbot/index.js +0 -445
  1100. package/dist/extensions/qqbot/openclaw.plugin.json +0 -257
  1101. package/dist/extensions/qqbot/package.json +0 -52
  1102. package/dist/extensions/qqbot/runtime-api.js +0 -2
  1103. package/dist/extensions/qqbot/setup-entry.js +0 -6
  1104. package/dist/extensions/qqbot/skills/qqbot-channel/SKILL.md +0 -262
  1105. package/dist/extensions/qqbot/skills/qqbot-channel/references/api_references.md +0 -521
  1106. package/dist/extensions/qqbot/skills/qqbot-media/SKILL.md +0 -36
  1107. package/dist/extensions/qqbot/skills/qqbot-remind/SKILL.md +0 -149
  1108. package/dist/extensions/searxng/index.js +0 -13
  1109. package/dist/extensions/searxng/openclaw.plugin.json +0 -46
  1110. package/dist/extensions/searxng/package.json +0 -12
  1111. package/dist/extensions/searxng/web-search-provider.js +0 -2
  1112. package/dist/extensions/sglang/api.js +0 -4
  1113. package/dist/extensions/sglang/defaults.js +0 -2
  1114. package/dist/extensions/sglang/index.js +0 -77
  1115. package/dist/extensions/sglang/models.js +0 -2
  1116. package/dist/extensions/sglang/openclaw.plugin.json +0 -29
  1117. package/dist/extensions/sglang/package.json +0 -12
  1118. package/dist/extensions/signal/api.js +0 -7
  1119. package/dist/extensions/signal/channel-config-api.js +0 -2
  1120. package/dist/extensions/signal/index.js +0 -319
  1121. package/dist/extensions/signal/openclaw.plugin.json +0 -11
  1122. package/dist/extensions/signal/package.json +0 -24
  1123. package/dist/extensions/signal/reaction-runtime-api.js +0 -2
  1124. package/dist/extensions/signal/runtime-api.js +0 -24
  1125. package/dist/extensions/signal/setup-entry.js +0 -13
  1126. package/dist/extensions/signal/test-api.js +0 -111
  1127. package/dist/extensions/slack/api.js +0 -10
  1128. package/dist/extensions/slack/channel-config-api.js +0 -2
  1129. package/dist/extensions/slack/index.js +0 -12
  1130. package/dist/extensions/slack/openclaw.plugin.json +0 -11
  1131. package/dist/extensions/slack/package.json +0 -31
  1132. package/dist/extensions/slack/runtime-api.js +0 -110
  1133. package/dist/extensions/slack/setup-entry.js +0 -12
  1134. package/dist/extensions/slack/test-api.js +0 -47
  1135. package/dist/extensions/stepfun/index.js +0 -163
  1136. package/dist/extensions/stepfun/onboard.js +0 -3
  1137. package/dist/extensions/stepfun/openclaw.plugin.json +0 -83
  1138. package/dist/extensions/stepfun/package.json +0 -12
  1139. package/dist/extensions/stepfun/provider-catalog.js +0 -2
  1140. package/dist/extensions/synology-chat/index.js +0 -12
  1141. package/dist/extensions/synology-chat/openclaw.plugin.json +0 -11
  1142. package/dist/extensions/synology-chat/package.json +0 -26
  1143. package/dist/extensions/synology-chat/setup-api.js +0 -2
  1144. package/dist/extensions/synology-chat/setup-entry.js +0 -6
  1145. package/dist/extensions/synthetic/api.js +0 -4
  1146. package/dist/extensions/synthetic/index.js +0 -27
  1147. package/dist/extensions/synthetic/models.js +0 -2
  1148. package/dist/extensions/synthetic/onboard.js +0 -3
  1149. package/dist/extensions/synthetic/openclaw.plugin.json +0 -32
  1150. package/dist/extensions/synthetic/package.json +0 -12
  1151. package/dist/extensions/synthetic/provider-catalog.js +0 -2
  1152. package/dist/extensions/talk-voice/api.js +0 -3
  1153. package/dist/extensions/talk-voice/index.js +0 -160
  1154. package/dist/extensions/talk-voice/openclaw.plugin.json +0 -11
  1155. package/dist/extensions/tavily/index.js +0 -128
  1156. package/dist/extensions/tavily/openclaw.plugin.json +0 -53
  1157. package/dist/extensions/tavily/package.json +0 -12
  1158. package/dist/extensions/tavily/skills/tavily/SKILL.md +0 -94
  1159. package/dist/extensions/tavily/web-search-provider.js +0 -2
  1160. package/dist/extensions/telegram/allow-from.js +0 -2
  1161. package/dist/extensions/telegram/api.js +0 -14
  1162. package/dist/extensions/telegram/channel-config-api.js +0 -2
  1163. package/dist/extensions/telegram/index.js +0 -12
  1164. package/dist/extensions/telegram/openclaw.plugin.json +0 -11
  1165. package/dist/extensions/telegram/package.json +0 -37
  1166. package/dist/extensions/telegram/runtime-api.js +0 -25
  1167. package/dist/extensions/telegram/session-key-api.js +0 -2
  1168. package/dist/extensions/telegram/setup-entry.js +0 -13
  1169. package/dist/extensions/telegram/test-api.js +0 -88
  1170. package/dist/extensions/telegram/test-support.js +0 -46
  1171. package/dist/extensions/telegram/update-offset-runtime-api.js +0 -2
  1172. package/dist/extensions/thread-ownership/api.js +0 -5
  1173. package/dist/extensions/thread-ownership/index.js +0 -82
  1174. package/dist/extensions/thread-ownership/openclaw.plugin.json +0 -30
  1175. package/dist/extensions/tlon/api.js +0 -14
  1176. package/dist/extensions/tlon/index.js +0 -150
  1177. package/dist/extensions/tlon/openclaw.plugin.json +0 -12
  1178. package/dist/extensions/tlon/package.json +0 -44
  1179. package/dist/extensions/tlon/runtime-api.js +0 -14
  1180. package/dist/extensions/tlon/setup-api.js +0 -3
  1181. package/dist/extensions/tlon/setup-entry.js +0 -6
  1182. package/dist/extensions/tlon/test-api.js +0 -2
  1183. package/dist/extensions/together/api.js +0 -3
  1184. package/dist/extensions/together/index.js +0 -26
  1185. package/dist/extensions/together/models.js +0 -2
  1186. package/dist/extensions/together/onboard.js +0 -2
  1187. package/dist/extensions/together/openclaw.plugin.json +0 -32
  1188. package/dist/extensions/together/package.json +0 -12
  1189. package/dist/extensions/together/provider-catalog.js +0 -2
  1190. package/dist/extensions/twitch/api.js +0 -9
  1191. package/dist/extensions/twitch/index.js +0 -1090
  1192. package/dist/extensions/twitch/openclaw.plugin.json +0 -11
  1193. package/dist/extensions/twitch/package.json +0 -29
  1194. package/dist/extensions/twitch/runtime-api.js +0 -9
  1195. package/dist/extensions/venice/api.js +0 -3
  1196. package/dist/extensions/venice/index.js +0 -55
  1197. package/dist/extensions/venice/models.js +0 -2
  1198. package/dist/extensions/venice/onboard.js +0 -3
  1199. package/dist/extensions/venice/openclaw.plugin.json +0 -32
  1200. package/dist/extensions/venice/package.json +0 -12
  1201. package/dist/extensions/venice/provider-catalog.js +0 -2
  1202. package/dist/extensions/vercel-ai-gateway/api.js +0 -4
  1203. package/dist/extensions/vercel-ai-gateway/index.js +0 -30
  1204. package/dist/extensions/vercel-ai-gateway/models.js +0 -2
  1205. package/dist/extensions/vercel-ai-gateway/onboard.js +0 -2
  1206. package/dist/extensions/vercel-ai-gateway/openclaw.plugin.json +0 -32
  1207. package/dist/extensions/vercel-ai-gateway/package.json +0 -12
  1208. package/dist/extensions/vercel-ai-gateway/provider-catalog.js +0 -2
  1209. package/dist/extensions/vllm/api.js +0 -4
  1210. package/dist/extensions/vllm/defaults.js +0 -2
  1211. package/dist/extensions/vllm/index.js +0 -78
  1212. package/dist/extensions/vllm/models.js +0 -2
  1213. package/dist/extensions/vllm/openclaw.plugin.json +0 -29
  1214. package/dist/extensions/vllm/package.json +0 -12
  1215. package/dist/extensions/voice-call/api.js +0 -7
  1216. package/dist/extensions/voice-call/index.js +0 -698
  1217. package/dist/extensions/voice-call/openclaw.plugin.json +0 -700
  1218. package/dist/extensions/voice-call/package.json +0 -33
  1219. package/dist/extensions/voice-call/runtime-api.js +0 -7
  1220. package/dist/extensions/voice-call/runtime-entry.js +0 -2
  1221. package/dist/extensions/volcengine/api.js +0 -3
  1222. package/dist/extensions/volcengine/index.js +0 -63
  1223. package/dist/extensions/volcengine/models.js +0 -2
  1224. package/dist/extensions/volcengine/openclaw.plugin.json +0 -33
  1225. package/dist/extensions/volcengine/package.json +0 -12
  1226. package/dist/extensions/volcengine/provider-catalog.js +0 -2
  1227. package/dist/extensions/whatsapp/action-runtime-api.js +0 -2
  1228. package/dist/extensions/whatsapp/action-runtime.runtime.js +0 -2
  1229. package/dist/extensions/whatsapp/api.js +0 -8
  1230. package/dist/extensions/whatsapp/auth-presence.js +0 -2
  1231. package/dist/extensions/whatsapp/channel-config-api.js +0 -2
  1232. package/dist/extensions/whatsapp/constants.js +0 -2
  1233. package/dist/extensions/whatsapp/index.js +0 -12
  1234. package/dist/extensions/whatsapp/light-runtime-api.js +0 -5
  1235. package/dist/extensions/whatsapp/login-qr-api.js +0 -2
  1236. package/dist/extensions/whatsapp/openclaw.plugin.json +0 -11
  1237. package/dist/extensions/whatsapp/package.json +0 -45
  1238. package/dist/extensions/whatsapp/runtime-api.js +0 -334
  1239. package/dist/extensions/whatsapp/setup-entry.js +0 -23
  1240. package/dist/extensions/whatsapp/test-api.js +0 -76
  1241. package/dist/extensions/xai/api.js +0 -6
  1242. package/dist/extensions/xai/code-execution.js +0 -2
  1243. package/dist/extensions/xai/index.js +0 -122
  1244. package/dist/extensions/xai/model-definitions.js +0 -2
  1245. package/dist/extensions/xai/model-id.js +0 -2
  1246. package/dist/extensions/xai/onboard.js +0 -2
  1247. package/dist/extensions/xai/openclaw.plugin.json +0 -157
  1248. package/dist/extensions/xai/package.json +0 -12
  1249. package/dist/extensions/xai/provider-catalog.js +0 -2
  1250. package/dist/extensions/xai/provider-models.js +0 -2
  1251. package/dist/extensions/xai/stream.js +0 -2
  1252. package/dist/extensions/xai/web-search.js +0 -2
  1253. package/dist/extensions/xai/x-search.js +0 -2
  1254. package/dist/extensions/xiaomi/api.js +0 -3
  1255. package/dist/extensions/xiaomi/index.js +0 -37
  1256. package/dist/extensions/xiaomi/onboard.js +0 -2
  1257. package/dist/extensions/xiaomi/openclaw.plugin.json +0 -32
  1258. package/dist/extensions/xiaomi/package.json +0 -12
  1259. package/dist/extensions/xiaomi/provider-catalog.js +0 -2
  1260. package/dist/extensions/zai/api.js +0 -3
  1261. package/dist/extensions/zai/detect.js +0 -2
  1262. package/dist/extensions/zai/index.js +0 -239
  1263. package/dist/extensions/zai/media-understanding-provider.js +0 -2
  1264. package/dist/extensions/zai/model-definitions.js +0 -2
  1265. package/dist/extensions/zai/onboard.js +0 -2
  1266. package/dist/extensions/zai/openclaw.plugin.json +0 -94
  1267. package/dist/extensions/zai/package.json +0 -12
  1268. package/dist/extensions/zai/runtime-api.js +0 -3
  1269. package/dist/extensions/zalo/api.js +0 -3
  1270. package/dist/extensions/zalo/index.js +0 -13
  1271. package/dist/extensions/zalo/openclaw.plugin.json +0 -11
  1272. package/dist/extensions/zalo/package.json +0 -47
  1273. package/dist/extensions/zalo/runtime-api.js +0 -38
  1274. package/dist/extensions/zalo/setup-entry.js +0 -6
  1275. package/dist/extensions/zalo/test-api.js +0 -2
  1276. package/dist/extensions/zalouser/api.js +0 -2
  1277. package/dist/extensions/zalouser/index.js +0 -599
  1278. package/dist/extensions/zalouser/openclaw.plugin.json +0 -11
  1279. package/dist/extensions/zalouser/package.json +0 -48
  1280. package/dist/extensions/zalouser/runtime-api.js +0 -30
  1281. package/dist/extensions/zalouser/setup-entry.js +0 -13
  1282. package/dist/extensions/zalouser/test-api.js +0 -5
  1283. package/dist/external-content-DtoRY-d1.js +0 -242
  1284. package/dist/facade-runtime-Bpi4Gy-u.js +0 -263
  1285. package/dist/failover-error-BrdBIFg2.js +0 -180
  1286. package/dist/feishu-81Iv8tqF.js +0 -18
  1287. package/dist/feishu-conversation-NmEqAxSA.js +0 -17
  1288. package/dist/feishu-setup-DXAK6GqE.js +0 -12
  1289. package/dist/fetch-7dbKQPT5.js +0 -256
  1290. package/dist/fetch-BjiGl865.js +0 -418
  1291. package/dist/fetch-Bp23aO5S.js +0 -65
  1292. package/dist/fetch-guard-BnhVFBtf.js +0 -150
  1293. package/dist/fetch-mock-WghRRNpK.js +0 -6
  1294. package/dist/fetch-runtime-DfFmkkZH.js +0 -4
  1295. package/dist/fetch-timeout-BKMGkHu9.js +0 -58
  1296. package/dist/file-identity-DPm-6kp0.js +0 -567
  1297. package/dist/file-lock-CH0V9dhL.js +0 -141
  1298. package/dist/file-lock-D292sbfa.js +0 -2
  1299. package/dist/firecrawl-client-GOGPuEeg.js +0 -338
  1300. package/dist/firecrawl-search-provider-ptp7GNAt.js +0 -47
  1301. package/dist/format-BwzSM9vY.js +0 -24
  1302. package/dist/format-D38w0aKT.js +0 -817
  1303. package/dist/format-DCFsK8oa.js +0 -19
  1304. package/dist/format-datetime-Bl6-b7G1.js +0 -73
  1305. package/dist/format-duration-DqcpDYkZ.js +0 -57
  1306. package/dist/format-relative-CYrRyrT7.js +0 -54
  1307. package/dist/frontmatter-Ba2Hn11b.js +0 -45
  1308. package/dist/frontmatter-Cjxy4vX8.js +0 -210
  1309. package/dist/fs-safe-BQ59ttjX.js +0 -999
  1310. package/dist/gateway-CWPyH-P7.js +0 -2575
  1311. package/dist/gateway-cli-BmPBPCcJ.js +0 -1572
  1312. package/dist/gateway-discovery-targets--oNzWOVw.js +0 -430
  1313. package/dist/gateway-install-token-tyQyR2ED.js +0 -230
  1314. package/dist/gateway-lock-BbUQuUet.js +0 -292
  1315. package/dist/gateway-presence-BVCIm1hy.js +0 -15
  1316. package/dist/gateway-registry-tQcIThkV.js +0 -74
  1317. package/dist/gateway-rpc-BXdoSPN7.js +0 -26
  1318. package/dist/gateway-runtime-C7EhkU_c.js +0 -12
  1319. package/dist/gaxios-fetch-compat-D4gl5582.js +0 -180
  1320. package/dist/gemini-auth-Dlpcd9MB.js +0 -29
  1321. package/dist/gemini-web-search-provider-CkNEl2du.js +0 -162
  1322. package/dist/get-reply-from-config.runtime-vBmBttxw.js +0 -2
  1323. package/dist/get-reply-from-config.runtime.js +0 -1
  1324. package/dist/git-commit-BS28SZVT.js +0 -2
  1325. package/dist/git-commit-ChiOoWyK.js +0 -177
  1326. package/dist/github-copilot-login-B8s4OVQ4.js +0 -11
  1327. package/dist/github-copilot-token-BwXtH-ZJ.js +0 -2
  1328. package/dist/github-copilot-token-D81Wvm8b.js +0 -2
  1329. package/dist/github-copilot-token-beHjQGOp.js +0 -91
  1330. package/dist/global-singleton-54zT3rCn.js +0 -13
  1331. package/dist/global-singleton-iOq2_-p8.js +0 -1
  1332. package/dist/global-state-DUuMGgts.js +0 -17
  1333. package/dist/globals-CDtV0ht8.js +0 -25
  1334. package/dist/gmail-setup-utils-CxXfU7cy.js +0 -421
  1335. package/dist/google-Cx1_z3Q3.js +0 -24
  1336. package/dist/googlechat-CoiMNDC2.js +0 -37
  1337. package/dist/graph-users-BmZWavVH.js +0 -917
  1338. package/dist/group-access-BZZ3FNmb.js +0 -32
  1339. package/dist/group-access-BjveEAjz.js +0 -113
  1340. package/dist/group-access-owHLoCWX.js +0 -119
  1341. package/dist/group-activation-ClEb7qwj.js +0 -22
  1342. package/dist/group-id-CcsUNOct.js +0 -11
  1343. package/dist/group-policy-Bb8dxOpM.js +0 -25
  1344. package/dist/group-policy-G9GcSyph.js +0 -201
  1345. package/dist/group-policy-wS9F8Y_i.js +0 -51
  1346. package/dist/group-policy-warnings-CL2gHsXM.js +0 -196
  1347. package/dist/groups.runtime-K758xQFV.js +0 -6
  1348. package/dist/groups.runtime.js +0 -1
  1349. package/dist/handle-action-CE4vpa7G.js +0 -500
  1350. package/dist/health-D_KQbqQY.js +0 -577
  1351. package/dist/health-a1VPtSyV.js +0 -2
  1352. package/dist/health-format-COR93f8W.js +0 -26
  1353. package/dist/heartbeat-C_TrErgd.js +0 -122
  1354. package/dist/heartbeat-reply-payload-C7Ac3fOZ.js +0 -13
  1355. package/dist/heartbeat-summary-v5gPj5bd.js +0 -57
  1356. package/dist/heartbeat-visibility-CHMO4pmJ.js +0 -102
  1357. package/dist/help-CyR1Oo4X.js +0 -81
  1358. package/dist/help-format-l1phKNA8.js +0 -15
  1359. package/dist/helpers-COHnQbWX.js +0 -32
  1360. package/dist/helpers-DNpD7VMo.js +0 -24
  1361. package/dist/history-B4mW8GfY.js +0 -102
  1362. package/dist/home-dir-n9onX5PG.js +0 -83
  1363. package/dist/hook-runner-global-C9GhdBtf.js +0 -632
  1364. package/dist/hook-runner-global-Cr_Pthp4.js +0 -2
  1365. package/dist/hook-runtime-DK8QF-2x.js +0 -3
  1366. package/dist/hooks-cli-XCo-7nz9.js +0 -353
  1367. package/dist/hooks-policy-BmULXBcp.js +0 -20
  1368. package/dist/hooks-status-D_ZxRD0H.js +0 -86
  1369. package/dist/host-env-security-SlXI58bc.js +0 -290
  1370. package/dist/host-runtime-BGHb06HN.js +0 -1
  1371. package/dist/hostname-BRYLr_mh.js +0 -8
  1372. package/dist/http-body-CfdQSEp0.js +0 -238
  1373. package/dist/http-client-_3i4-nw5.js +0 -294
  1374. package/dist/http-registry-ZGSBfYSe.js +0 -54
  1375. package/dist/http-route-overlap-C8lbolN5.js +0 -101
  1376. package/dist/identity-BoQQh6Y8.js +0 -26
  1377. package/dist/identity-D64Wfv_s.js +0 -29
  1378. package/dist/identity-DvwF6Yix.js +0 -84
  1379. package/dist/identity-avatar-DPBgVwpU.js +0 -86
  1380. package/dist/identity-file-BtIJI4dn.js +0 -60
  1381. package/dist/image-C4V19x9x.js +0 -152
  1382. package/dist/image-generation-BbOnazXi.js +0 -1
  1383. package/dist/image-generation-provider-CQK8HA0O.js +0 -136
  1384. package/dist/image-generation-provider-CWUvRxmv.js +0 -131
  1385. package/dist/image-generation-provider-F2sfNjcr.js +0 -281
  1386. package/dist/image-ops-BJKjhMAu.js +0 -476
  1387. package/dist/image-runtime-DodXcK2e.js +0 -7
  1388. package/dist/imessage-2ukkzufG.js +0 -19
  1389. package/dist/inbound-context-Cxvd3JHZ.js +0 -59
  1390. package/dist/inbound-context-Czd3FdNb.js +0 -52
  1391. package/dist/inbound-debounce-CI7l3R36.js +0 -159
  1392. package/dist/inbound-envelope-LyHTUTue.js +0 -61
  1393. package/dist/inbound-reply-dispatch-BdeY6N-k.js +0 -73
  1394. package/dist/inbound-text-CacimZtw.js +0 -14
  1395. package/dist/inbound.runtime-CqX3n132.js +0 -3
  1396. package/dist/inbound.runtime.js +0 -1
  1397. package/dist/includes-Ccr-Q5DB.js +0 -188
  1398. package/dist/includes-scan-DVvYLj4S.js +0 -55
  1399. package/dist/index.js +0 -56
  1400. package/dist/infra/warning-filter.js +0 -2
  1401. package/dist/infra-runtime-Cl0iZpRS.js +0 -22
  1402. package/dist/input-files-PZC6ZR4W.js +0 -251
  1403. package/dist/input-provenance-8GBFuk0Q.js +0 -44
  1404. package/dist/inspect-B8dw6NVJ.js +0 -286
  1405. package/dist/install-Bk7XyvtC.js +0 -590
  1406. package/dist/install-package-dir-C2ba2toB.js +0 -284
  1407. package/dist/install-safe-path-CkCd0rWS.js +0 -69
  1408. package/dist/install-security-scan-C02VaEU9.js +0 -22
  1409. package/dist/install-security-scan.runtime-CDUuS6Dl.js +0 -299
  1410. package/dist/install-security-scan.runtime.js +0 -1
  1411. package/dist/install-source-utils-2tdWQmwI.js +0 -167
  1412. package/dist/install-target-CBNysuiP.js +0 -175
  1413. package/dist/install.runtime-D_zKCpnB.js +0 -11
  1414. package/dist/install.runtime-DjQozvMe.js +0 -27
  1415. package/dist/install.runtime.js +0 -1
  1416. package/dist/installs-BnAbQ70v.js +0 -28
  1417. package/dist/interactive-CEnsu1RT.js +0 -8
  1418. package/dist/interactive-runtime-Bxq5ztle.js +0 -1
  1419. package/dist/internal-Lk0wFTNq.js +0 -411
  1420. package/dist/internal-hooks-C3ziA7w_.js +0 -155
  1421. package/dist/io-BUxKr33U.js +0 -2236
  1422. package/dist/io-BuMkfjp3.js +0 -4
  1423. package/dist/ip-BZP18dDl.js +0 -208
  1424. package/dist/ipv4-Xiyu1rvD.js +0 -82
  1425. package/dist/irc-DXfYh-Sd.js +0 -14
  1426. package/dist/irc-surface-Di-joPuc.js +0 -15
  1427. package/dist/is-main-Bv5ej4lF.js +0 -27
  1428. package/dist/issue-format-8Eylt-2O.js +0 -2
  1429. package/dist/issue-format-DLZczJ0U.js +0 -31
  1430. package/dist/json-file-5xJqyXrK.js +0 -23
  1431. package/dist/json-files-C4lsZ_HR.js +0 -72
  1432. package/dist/json-mode-4O1xL2fT.js +0 -34
  1433. package/dist/json-pointer-C30cknnZ.js +0 -43
  1434. package/dist/json-store-FUgu1pyj.js +0 -37
  1435. package/dist/keyed-async-queue-BTOTBE8n.js +0 -32
  1436. package/dist/kill-tree-CIfAbzdN.js +0 -2
  1437. package/dist/kill-tree-CUPpLbeq.js +0 -82
  1438. package/dist/kimi-web-search-provider-Cb3F9_Da.js +0 -224
  1439. package/dist/known-users-DjerpGCB.js +0 -167
  1440. package/dist/lancedb-runtime-DTb_mDUG.js +0 -201
  1441. package/dist/launchd-cp98MUhz.js +0 -517
  1442. package/dist/lazy-runtime-C6LCAM-L.js +0 -29
  1443. package/dist/lazy-runtime-yh_WT4on.js +0 -1
  1444. package/dist/lazy-service-module-CeifO9oo.js +0 -24
  1445. package/dist/legacy-crypto-restore-CsHmLVjY.js +0 -85
  1446. package/dist/legacy-names-CFo8Oe-2.js +0 -9
  1447. package/dist/legacy-web-search-Bn8F2jrN.js +0 -140
  1448. package/dist/legacy.shared-oZM32end.js +0 -45
  1449. package/dist/level-overrides-gqc8xfh2.js +0 -36
  1450. package/dist/library-ChjjeniJ.js +0 -44
  1451. package/dist/lifecycle-core-Ce_ZEvjl.js +0 -402
  1452. package/dist/line-Be0jY3CU.js +0 -4
  1453. package/dist/line-runtime-B0ZGTK81.js +0 -60
  1454. package/dist/line-surface-BTopinac.js +0 -27
  1455. package/dist/links-D7o22Ygt.js +0 -17
  1456. package/dist/listeners-_47QWN8-.js +0 -14
  1457. package/dist/llm-slug-generator-Dv-sLOW9.js +0 -68
  1458. package/dist/llm-slug-generator.js +0 -2
  1459. package/dist/llm-task-BDA3i86A.js +0 -3
  1460. package/dist/load-BXSzQ8YA.js +0 -28
  1461. package/dist/load-options-BqszWkkN.js +0 -36
  1462. package/dist/loader-DsZDoLQ6.js +0 -2519
  1463. package/dist/local-file-access-PajXzDdK.js +0 -49
  1464. package/dist/local-roots-DrpNBv4b.js +0 -46
  1465. package/dist/location-CtMHXE-d.js +0 -42
  1466. package/dist/logger-Bc2lC3X3.js +0 -79
  1467. package/dist/logger-CIV9WBoa.js +0 -11
  1468. package/dist/logger-DdGvppaE.js +0 -75
  1469. package/dist/logger-MWEZrHUL.js +0 -582
  1470. package/dist/logging-B1QD0DRq.js +0 -2
  1471. package/dist/logging-CAfgK7sj.js +0 -3
  1472. package/dist/logging-ColPHIDT.js +0 -16
  1473. package/dist/logging-D4xyCEzZ.js +0 -85
  1474. package/dist/logging-Dt_aiHur.js +0 -13
  1475. package/dist/logging-Dywye6yZ.js +0 -2
  1476. package/dist/logging-core-hw7Df6Hl.js +0 -3
  1477. package/dist/login-BrqdQcNh.js +0 -108
  1478. package/dist/login-DSqrZNW-.js +0 -2333
  1479. package/dist/login-qr-Dm3iC25_.js +0 -212
  1480. package/dist/login-qr-api-BxRDJKkp.js +0 -16
  1481. package/dist/logs-cli-CxjV80As.js +0 -221
  1482. package/dist/magic-string.es-CVHNyqW1.js +0 -1011
  1483. package/dist/main-session-BbO0A-No.js +0 -38
  1484. package/dist/manager-c_fEco8X.js +0 -2773
  1485. package/dist/manager-runtime-Vy_F8ORR.js +0 -2
  1486. package/dist/manager.runtime-Bm1Knq-3.js +0 -670
  1487. package/dist/manager.runtime.js +0 -1
  1488. package/dist/manifest-f_gihArl.js +0 -237
  1489. package/dist/manifest-registry-Kx5Z2lJL.js +0 -1069
  1490. package/dist/map-size-BBQq2RPq.js +0 -15
  1491. package/dist/markdown-table-runtime-Dx12DQTq.js +0 -2
  1492. package/dist/markdown-tables-CSlyhQVP.js +0 -31
  1493. package/dist/mask-api-key-BYVFDQdo.js +0 -10
  1494. package/dist/matrix-NDa-FoaE.js +0 -351
  1495. package/dist/matrix-config-helpers-D0D-oL7I.js +0 -153
  1496. package/dist/matrix-helper-DioFIiaO.js +0 -20
  1497. package/dist/matrix-migration-snapshot-DAOFFSgM.js +0 -714
  1498. package/dist/matrix-ouiFsVI1.js +0 -39
  1499. package/dist/matrix-runtime-heavy-KUEg_MfD.js +0 -4
  1500. package/dist/matrix-runtime-shared-B6aE5Uu6.js +0 -1
  1501. package/dist/matrix-runtime-surface-R78Hde6Q.js +0 -12
  1502. package/dist/matrix-surface-B-nU-e0B.js +0 -13
  1503. package/dist/matrix-thread-bindings-B77Krs8r.js +0 -12
  1504. package/dist/mattermost-Cg2PI71s.js +0 -18
  1505. package/dist/mcp/plugin-tools-serve.js +0 -105
  1506. package/dist/mcp-cli-BMNT4RIm.js +0 -768
  1507. package/dist/mcp-config-3y1z3N2x.js +0 -118
  1508. package/dist/media-CUdiVhEt.js +0 -1691
  1509. package/dist/media-limits-DmcT5KnO.js +0 -14
  1510. package/dist/media-runtime-8QR_uTs0.js +0 -295
  1511. package/dist/media-understanding-CpMkSmKj.js +0 -51
  1512. package/dist/media-understanding-provider-C0xVBaas.js +0 -11
  1513. package/dist/media-understanding-provider-C8RSrdEy.js +0 -16
  1514. package/dist/media-understanding-provider-CCB6_bwc2.js +0 -9
  1515. package/dist/media-understanding-provider-CZ83ep6L.js +0 -16
  1516. package/dist/media-understanding-provider-Cmcg82YY.js +0 -28
  1517. package/dist/media-understanding-provider-D1_z5Kwx.js +0 -11
  1518. package/dist/media-understanding-provider-DC9bhcFj.js +0 -11
  1519. package/dist/media-understanding-provider-DbMV-bHu.js +0 -17
  1520. package/dist/media-understanding-provider-Drg3Vyoe.js +0 -86
  1521. package/dist/media-understanding-runtime-JIhXSD7e.js +0 -15
  1522. package/dist/media-understanding.runtime-2Muvvak4.js +0 -7
  1523. package/dist/media-understanding.runtime.js +0 -1
  1524. package/dist/memory-DPYsR3Cn.js +0 -228
  1525. package/dist/memory-core-engine-runtime-DP_nzKMm.js +0 -14
  1526. package/dist/memory-core-host-engine-embeddings-BhsmnP-6.js +0 -1370
  1527. package/dist/memory-core-host-engine-foundation-CtFD8jpc.js +0 -10
  1528. package/dist/memory-core-host-engine-qmd-DCvmid82.js +0 -375
  1529. package/dist/memory-core-host-engine-storage-N3YflxjF.js +0 -109
  1530. package/dist/memory-core-host-multimodal-BVd6eEE3.js +0 -1
  1531. package/dist/memory-core-host-query-Bxzu0mAD.js +0 -2
  1532. package/dist/memory-core-host-runtime-cli-nz5fxbbn.js +0 -10
  1533. package/dist/memory-core-host-runtime-core-BcGQFQUw.js +0 -8
  1534. package/dist/memory-core-host-runtime-files-DO5A0pY5.js +0 -3
  1535. package/dist/memory-core-host-secret-CQAiTACg.js +0 -1
  1536. package/dist/memory-core-host-status-0g2XexDn.js +0 -44
  1537. package/dist/memory-embedding-providers-BOMS0u3X.js +0 -34
  1538. package/dist/memory-lancedb-kZBcB07O.js +0 -2
  1539. package/dist/memory-runtime-BIGGpmaC.js +0 -2
  1540. package/dist/memory-runtime-XyiDon5w.js +0 -34
  1541. package/dist/memory-search-CQFSugEg.js +0 -2
  1542. package/dist/memory-search-DpAYXyjc.js +0 -202
  1543. package/dist/memory-state-DDJh6L4-.js +0 -41
  1544. package/dist/mention-gating-_kzByrvM.js +0 -25
  1545. package/dist/mentions-BCBF5Klg.js +0 -65
  1546. package/dist/mentions-BKYgZd-C.js +0 -155
  1547. package/dist/merge-patch-CtvE2OP0.js +0 -65
  1548. package/dist/message-Dna6Vsdg.js +0 -205
  1549. package/dist/message-action-discovery-CPTCAl8K.js +0 -133
  1550. package/dist/message-action-runner-Byldnjex.js +0 -1703
  1551. package/dist/message-channel-bEWdw4ul.js +0 -105
  1552. package/dist/message-handler-C9TRy9hy.js +0 -1771
  1553. package/dist/message-hook-mappers-CzwFvq_c.js +0 -255
  1554. package/dist/messages-CQT2FDZ3.js +0 -270
  1555. package/dist/method-scopes-B6e_KuRU.js +0 -2663
  1556. package/dist/migrate-cli-C_iDle77.js +0 -500
  1557. package/dist/migration-snapshot.runtime-DAzTUgU-.js +0 -3
  1558. package/dist/migration-snapshot.runtime.js +0 -1
  1559. package/dist/mime-DkaKoCVP.js +0 -156
  1560. package/dist/min-host-version-CIhgRq0c.js +0 -349
  1561. package/dist/minimax-vlm-Dh6g-MLh.js +0 -512
  1562. package/dist/model-auth-DcCyGs_6.js +0 -377
  1563. package/dist/model-auth-env-OT6ucjoP.js +0 -63
  1564. package/dist/model-auth-label-fGtOs2u-.js +0 -45
  1565. package/dist/model-auth-markers-D2z_AIuC.js +0 -70
  1566. package/dist/model-auth-runtime-shared-DnhseQ_3.js +0 -18
  1567. package/dist/model-buttons-zQ-cRhqo.js +0 -187
  1568. package/dist/model-catalog-f9zO4b6C.js +0 -208
  1569. package/dist/model-catalog.runtime-iRu_OMJS.js +0 -2
  1570. package/dist/model-catalog.runtime.js +0 -1
  1571. package/dist/model-definitions-BGWurJeM.js +0 -49
  1572. package/dist/model-definitions-C-e07VgA.js +0 -255
  1573. package/dist/model-definitions-DUANiLUG.js +0 -126
  1574. package/dist/model-definitions-DrxdjAkB.js +0 -202
  1575. package/dist/model-id-9W_sHLHy.js +0 -12
  1576. package/dist/model-id-DEv7HEyl.js +0 -20
  1577. package/dist/model-input-DwbpFRYm.js +0 -20
  1578. package/dist/model-overrides-BaecXmMv.js +0 -84
  1579. package/dist/model-overrides-UUODi1G1.js +0 -91
  1580. package/dist/model-param-b-BHlbSl5R.js +0 -15
  1581. package/dist/model-picker-BgVMnja3.js +0 -439
  1582. package/dist/model-picker-D8elZqN_.js +0 -3
  1583. package/dist/model-picker.runtime-BUfgRpvT.js +0 -15
  1584. package/dist/model-picker.runtime.js +0 -1
  1585. package/dist/model-runtime-CkjgxQmB.js +0 -1772
  1586. package/dist/model-selection-DXY5nwui.js +0 -407
  1587. package/dist/model-selection-Dx6Ag-ZE.js +0 -505
  1588. package/dist/model-suppression-C8XSEnsv.js +0 -24
  1589. package/dist/model-suppression.runtime-Dqra9AAF.js +0 -7
  1590. package/dist/model-suppression.runtime.js +0 -1
  1591. package/dist/models--Ze_o5z6.js +0 -193
  1592. package/dist/models-7_w_ynp7.js +0 -35
  1593. package/dist/models-BMmB_oQc.js +0 -130
  1594. package/dist/models-B_TKM4gG.js +0 -18
  1595. package/dist/models-B_UROL5b.js +0 -3
  1596. package/dist/models-BmDGSZCK.js +0 -31
  1597. package/dist/models-BywIyTzh.js +0 -126
  1598. package/dist/models-C5GB-E7D.js +0 -154
  1599. package/dist/models-DU3Lv10g.js +0 -754
  1600. package/dist/models-VgpjMiqM.js +0 -138
  1601. package/dist/models-_DZVZ2Na.js +0 -18
  1602. package/dist/models-bBe0FFJe.js +0 -2550
  1603. package/dist/models-cli-kZR11PgM.js +0 -197
  1604. package/dist/models-config-D6j7jkCN.js +0 -2
  1605. package/dist/models-config-lYKxSxLo.js +0 -1106
  1606. package/dist/models-config.runtime-D2tdVUsi.js +0 -2
  1607. package/dist/models-config.runtime.js +0 -1
  1608. package/dist/models-emJUoDsF.js +0 -40
  1609. package/dist/models-gPCm0Fco.js +0 -122
  1610. package/dist/models-mi7nu17U.js +0 -99
  1611. package/dist/models-nUP9ZPV8.js +0 -552
  1612. package/dist/models-provider-runtime-DfIZ0cvV.js +0 -2
  1613. package/dist/monitor-BEjwRY59.js +0 -3622
  1614. package/dist/monitor-BiwufaF7.js +0 -718
  1615. package/dist/monitor-BqwlHm94.js +0 -3660
  1616. package/dist/monitor-Cj6Atk8I.js +0 -676
  1617. package/dist/monitor-D2qBnOYz.js +0 -666
  1618. package/dist/monitor-DZmBV1Nj2.js +0 -2
  1619. package/dist/monitor-RMoB6sGQ.js +0 -4067
  1620. package/dist/monitor-auth-EvlH1zbN.js +0 -192
  1621. package/dist/monitor-lbUydC5_.js +0 -1525
  1622. package/dist/monitor-polling.runtime-O6ZG6yYv.js +0 -307
  1623. package/dist/monitor-polling.runtime.js +0 -1
  1624. package/dist/monitor-provider-x4TUmYNN.js +0 -1782
  1625. package/dist/monitor-vE0skDM1.js +0 -687
  1626. package/dist/monitor-webhook.runtime-DoTv_oZv.js +0 -297
  1627. package/dist/monitor-webhook.runtime.js +0 -1
  1628. package/dist/moonshot-stream-wrappers-Csssd6kW.js +0 -24
  1629. package/dist/moonshot-thinking-stream-wrappers-D3j6Q9Yk.js +0 -69
  1630. package/dist/msteams-DsFLaFEV.js +0 -33
  1631. package/dist/multimodal-DoXQtvBl.js +0 -66
  1632. package/dist/mutable-allowlist-detectors-CbFK2eTK.js +0 -62
  1633. package/dist/native-command-registry-B4BAqmAW.js +0 -2
  1634. package/dist/native-command-session-targets-DfUCBY63.js +0 -10
  1635. package/dist/net-DjzoSxQo.js +0 -265
  1636. package/dist/network-discovery-display-h8MqTMCI.js +0 -48
  1637. package/dist/network-mode-QjJNOXMa.js +0 -17
  1638. package/dist/nextcloud-talk-COZ5YrPY.js +0 -18
  1639. package/dist/node-cli-z8LHYl1w.js +0 -2323
  1640. package/dist/node-command-policy-DoeXKD1V.js +0 -205
  1641. package/dist/node-commands-ycnRypMq.js +0 -11
  1642. package/dist/node-require-BgDD9bTi.js +0 -14
  1643. package/dist/node-resolve-Drr1RIcN.js +0 -110
  1644. package/dist/node-service-Nyf8eLc4.js +0 -68
  1645. package/dist/node-startup-env-CVMjxAUF.js +0 -50
  1646. package/dist/nodes-cli-BMyafV_R.js +0 -1044
  1647. package/dist/nodes-screen-oyGHNlY5.js +0 -219
  1648. package/dist/nodes.helpers-DKBA9twS.js +0 -203
  1649. package/dist/normalize-C46CugdT.js +0 -35
  1650. package/dist/normalize-reply-VrMa_PA2.js +0 -500
  1651. package/dist/normalize-secret-input-CC9iFcnK.js +0 -32
  1652. package/dist/nostr-DGfd-Skj.js +0 -19
  1653. package/dist/note-B5R9zt2K.js +0 -109
  1654. package/dist/notify-CKEt6MKY.js +0 -298
  1655. package/dist/npm-registry-spec-dWUFCqDk.js +0 -100
  1656. package/dist/oauth-BBIy_OBl.js +0 -152
  1657. package/dist/oauth-DzMUt9ZO.js +0 -56
  1658. package/dist/oauth.credentials-CKrXIXPf.js +0 -119
  1659. package/dist/oauth.flow-Dd6MZcHS.js +0 -122
  1660. package/dist/oauth.http-CZlbXoZD.js +0 -23
  1661. package/dist/oauth.project-DAVNbct7.js +0 -125
  1662. package/dist/oauth.shared-D1_wwlyt.js +0 -26
  1663. package/dist/oauth.token-CnB-w_v2.js +0 -42
  1664. package/dist/ollama-EE_SvO8P.js +0 -26
  1665. package/dist/onboard-2otvb4-n.js +0 -307
  1666. package/dist/onboard-72nGEzpd.js +0 -25
  1667. package/dist/onboard-B14oDS4M.js +0 -23
  1668. package/dist/onboard-BH5hcOyK.js +0 -39
  1669. package/dist/onboard-BRkQIFt_.js +0 -25
  1670. package/dist/onboard-BSArlkkq.js +0 -73
  1671. package/dist/onboard-Bau_HSmO.js +0 -36
  1672. package/dist/onboard-BsqpQhXj.js +0 -591
  1673. package/dist/onboard-CBa7u1iZ.js +0 -25
  1674. package/dist/onboard-CLKZrJow.js +0 -29
  1675. package/dist/onboard-COaMJ5wS.js +0 -28
  1676. package/dist/onboard-CbTQZti9.js +0 -48
  1677. package/dist/onboard-Ce3rcBNR.js +0 -29
  1678. package/dist/onboard-CiMzgSvO.js +0 -67
  1679. package/dist/onboard-DNuWjUOg.js +0 -17
  1680. package/dist/onboard-DY3JtOcX.js +0 -47
  1681. package/dist/onboard-Dd_eFJ7g.js +0 -25
  1682. package/dist/onboard-DgMI-C3P.js +0 -24
  1683. package/dist/onboard-Dj3Kkl9C.js +0 -49
  1684. package/dist/onboard-Djne8OY8.js +0 -34
  1685. package/dist/onboard-DnNU28xK.js +0 -48
  1686. package/dist/onboard-MFS79j1I.js +0 -23
  1687. package/dist/onboard-REHqRyQm.js +0 -26
  1688. package/dist/onboard-VVnzyvuh.js +0 -46
  1689. package/dist/onboard-channels-B8UocRdo.js +0 -705
  1690. package/dist/onboard-channels-Ci5QQyQ0.js +0 -2
  1691. package/dist/onboard-config-7edS4yYd.js +0 -2
  1692. package/dist/onboard-config-C-6p2HNL.js +0 -29
  1693. package/dist/onboard-custom-BREC7K0s.js +0 -2
  1694. package/dist/onboard-custom-D7oXiV6u.js +0 -646
  1695. package/dist/onboard-helpers-BCIfy96O.js +0 -4
  1696. package/dist/onboard-helpers-CLedS83g.js +0 -227
  1697. package/dist/onboard-hooks-DW0gav3i.js +0 -52
  1698. package/dist/onboard-lh38uUOa.js +0 -25
  1699. package/dist/onboard-rH_HA9v-.js +0 -34
  1700. package/dist/onboard-remote-DG5Rb2y7.js +0 -2
  1701. package/dist/onboard-remote-DgDwHLCW.js +0 -193
  1702. package/dist/onboard-search-Bz78SAON.js +0 -339
  1703. package/dist/onboard-skills-BK1iF6NI.js +0 -2
  1704. package/dist/onboard-skills-Cfs4Gz-d.js +0 -134
  1705. package/dist/openai-B3atWWiZ.js +0 -21
  1706. package/dist/openai-codex-auth-identity-blYgqX5I.js +0 -40
  1707. package/dist/openai-codex-catalog-DQoW5ntP.js +0 -11
  1708. package/dist/openai-codex-provider-BeX3_fQL.js +0 -254
  1709. package/dist/openai-provider-DfSRc815.js +0 -272
  1710. package/dist/openai-stream-wrappers-Cmn9nSYj.js +0 -338
  1711. package/dist/openclaw-exec-env-DnTrPIdx.js +0 -17
  1712. package/dist/openclaw-root-F1SOdmJ0.js +0 -88
  1713. package/dist/openclaw-tools.runtime-Dx73yE1V.js +0 -2
  1714. package/dist/openclaw-tools.runtime.js +0 -1
  1715. package/dist/operator-approvals-client-NQtGN5k_.js +0 -33
  1716. package/dist/order-DNBhjW6F.js +0 -744
  1717. package/dist/origin-routing-BC2EzQqM.js +0 -15
  1718. package/dist/origin-routing-BVUTLJGu.js +0 -2
  1719. package/dist/os-summary-CdlXkpL1.js +0 -26
  1720. package/dist/outbound-adapter-D6WGzS7P.js +0 -183
  1721. package/dist/outbound-ek4CqhT2.js +0 -2
  1722. package/dist/outbound-hgMEZIU9.js +0 -2739
  1723. package/dist/outbound-media-B2ZrkOxl.js +0 -15
  1724. package/dist/outbound-runtime-CtDmQy3z.js +0 -2
  1725. package/dist/outbound-send-deps-COPf3lwV.js +0 -7
  1726. package/dist/outbound-session-DHKvttsz.js +0 -41
  1727. package/dist/pairing-challenge-O7jo1Q5R.js +0 -33
  1728. package/dist/pairing-cli-BEUxC5EH.js +0 -116
  1729. package/dist/pairing-labels-Cj1fFxG9.js +0 -7
  1730. package/dist/pairing-message-FaqHPEFk.js +0 -4
  1731. package/dist/pairing-messages-DxLpe0GE.js +0 -23
  1732. package/dist/pairing-pending-DGyUpmjC.js +0 -14
  1733. package/dist/pairing-store-B171dUVa.js +0 -617
  1734. package/dist/pairing-token-CnyXOU__.js +0 -88
  1735. package/dist/param-readers-CqAoT2n2.js +0 -2
  1736. package/dist/parse-duration-D9q1V0xx.js +0 -41
  1737. package/dist/parse-finite-number-CzdLC_gQ.js +0 -30
  1738. package/dist/parse-json-compat-DfjRYtKX.js +0 -11
  1739. package/dist/parse-log-line-Cd0JHPGg.js +0 -43
  1740. package/dist/parse-port-BFmNhrtE.js +0 -8
  1741. package/dist/parse-timeout-bktz0495.js +0 -27
  1742. package/dist/path-alias-guards-BeOn9PZR.js +0 -40
  1743. package/dist/path-env-C2F1kvna.js +0 -87
  1744. package/dist/path-safety-2mfHCe0n.js +0 -12
  1745. package/dist/paths-Bw8Ci57u.js +0 -2
  1746. package/dist/paths-GWMNxnBn.js +0 -201
  1747. package/dist/paths-xpks599B.js +0 -180
  1748. package/dist/payload-S8niBCaz.js +0 -90
  1749. package/dist/pdf-extract-Cm83kt2M.js +0 -73
  1750. package/dist/perplexity-web-search-provider-Cgr2BYVk.js +0 -423
  1751. package/dist/persistent-bindings.lifecycle-CAOm8v8I.js +0 -159
  1752. package/dist/persistent-dedupe-DoNHVMWs.js +0 -116
  1753. package/dist/pi-embedded-DEAtCIdT.js +0 -40616
  1754. package/dist/pi-embedded-helpers-BVjvCsor.js +0 -1733
  1755. package/dist/pi-embedded.runtime-Ctj3QFs-.js +0 -4
  1756. package/dist/pi-embedded.runtime.js +0 -1
  1757. package/dist/pi-model-discovery-KjI5xf8m.js +0 -188
  1758. package/dist/pi-settings-BJzoHYF9.js +0 -57
  1759. package/dist/pi-tools.before-tool-call.runtime-DJ6s0GDV.js +0 -354
  1760. package/dist/pi-tools.before-tool-call.runtime.js +0 -1
  1761. package/dist/plugin-auto-enable-BZvicayR.js +0 -400
  1762. package/dist/plugin-entry-D0vhddM4.js +0 -25
  1763. package/dist/plugin-entry.runtime-Xd644UDA.js +0 -112
  1764. package/dist/plugin-entry.runtime.js +0 -1
  1765. package/dist/plugin-error-boundary-RI4ByQoA.js +0 -55
  1766. package/dist/plugin-error-handler-DWUTf_UF.js +0 -109
  1767. package/dist/plugin-health-checker-2c6LyJwr.js +0 -125
  1768. package/dist/plugin-hot-reload-CA3__dZN.js +0 -215
  1769. package/dist/plugin-install-BjVLwj7-.js +0 -230
  1770. package/dist/plugin-install-CjwMt13j.js +0 -2
  1771. package/dist/plugin-install-config-policy-MApev-w-.js +0 -93
  1772. package/dist/plugin-install-path-warnings-BkBH-k4n.js +0 -40
  1773. package/dist/plugin-install-plan-0fWhyVBN.js +0 -50
  1774. package/dist/plugin-registry-CORVyKHv.js +0 -74
  1775. package/dist/plugin-registry-Dl1iIh7W.js +0 -2
  1776. package/dist/plugin-runtime-Dd1YN95W.js +0 -6
  1777. package/dist/plugin-sdk/account-core.js +0 -8
  1778. package/dist/plugin-sdk/account-helpers.js +0 -4
  1779. package/dist/plugin-sdk/account-id.js +0 -3
  1780. package/dist/plugin-sdk/account-resolution.js +0 -12
  1781. package/dist/plugin-sdk/acp-runtime.js +0 -3
  1782. package/dist/plugin-sdk/agent-config-primitives.js +0 -3
  1783. package/dist/plugin-sdk/agent-runtime.js +0 -29
  1784. package/dist/plugin-sdk/allow-from.js +0 -5
  1785. package/dist/plugin-sdk/allowlist-config-edit.js +0 -2
  1786. package/dist/plugin-sdk/amazon-bedrock.js +0 -15
  1787. package/dist/plugin-sdk/anthropic-vertex.js +0 -2
  1788. package/dist/plugin-sdk/approval-runtime.js +0 -8
  1789. package/dist/plugin-sdk/bluebubbles-policy.js +0 -2
  1790. package/dist/plugin-sdk/bluebubbles.js +0 -39
  1791. package/dist/plugin-sdk/boolean-param.js +0 -2
  1792. package/dist/plugin-sdk/browser-runtime.js +0 -3
  1793. package/dist/plugin-sdk/browser-support.js +0 -44
  1794. package/dist/plugin-sdk/browser.js +0 -15
  1795. package/dist/plugin-sdk/byteplus.js +0 -17
  1796. package/dist/plugin-sdk/channel-actions.js +0 -3
  1797. package/dist/plugin-sdk/channel-config-helpers.js +0 -2
  1798. package/dist/plugin-sdk/channel-config-primitives.js +0 -4
  1799. package/dist/plugin-sdk/channel-config-schema.js +0 -7
  1800. package/dist/plugin-sdk/channel-config-writes.js +0 -3
  1801. package/dist/plugin-sdk/channel-contract.js +0 -1
  1802. package/dist/plugin-sdk/channel-feedback.js +0 -5
  1803. package/dist/plugin-sdk/channel-inbound.js +0 -10
  1804. package/dist/plugin-sdk/channel-lifecycle.js +0 -3
  1805. package/dist/plugin-sdk/channel-pairing.js +0 -2
  1806. package/dist/plugin-sdk/channel-policy.js +0 -6
  1807. package/dist/plugin-sdk/channel-reply-pipeline.js +0 -2
  1808. package/dist/plugin-sdk/channel-runtime.js +0 -16
  1809. package/dist/plugin-sdk/channel-send-result.js +0 -2
  1810. package/dist/plugin-sdk/channel-setup.js +0 -5
  1811. package/dist/plugin-sdk/channel-status.js +0 -5
  1812. package/dist/plugin-sdk/channel-targets.js +0 -5
  1813. package/dist/plugin-sdk/chutes.js +0 -20
  1814. package/dist/plugin-sdk/cli-backend.js +0 -3
  1815. package/dist/plugin-sdk/cli-runtime.js +0 -7
  1816. package/dist/plugin-sdk/cloudflare-ai-gateway.js +0 -18
  1817. package/dist/plugin-sdk/collection-runtime.js +0 -3
  1818. package/dist/plugin-sdk/command-auth-native.js +0 -6
  1819. package/dist/plugin-sdk/command-auth.js +0 -14
  1820. package/dist/plugin-sdk/command-detection.js +0 -3
  1821. package/dist/plugin-sdk/command-surface.js +0 -3
  1822. package/dist/plugin-sdk/compat.js +0 -35
  1823. package/dist/plugin-sdk/config-runtime.js +0 -25
  1824. package/dist/plugin-sdk/conversation-runtime.js +0 -15
  1825. package/dist/plugin-sdk/core.js +0 -22
  1826. package/dist/plugin-sdk/dangerous-name-runtime.js +0 -3
  1827. package/dist/plugin-sdk/deepseek.js +0 -14
  1828. package/dist/plugin-sdk/device-bootstrap.js +0 -4
  1829. package/dist/plugin-sdk/diagnostic-runtime.js +0 -4
  1830. package/dist/plugin-sdk/diagnostics-otel.js +0 -6
  1831. package/dist/plugin-sdk/diffs.js +0 -4
  1832. package/dist/plugin-sdk/direct-dm.js +0 -2
  1833. package/dist/plugin-sdk/directory-runtime.js +0 -5
  1834. package/dist/plugin-sdk/discord-account.js +0 -2
  1835. package/dist/plugin-sdk/discord-core.js +0 -9
  1836. package/dist/plugin-sdk/discord-runtime-surface.js +0 -2
  1837. package/dist/plugin-sdk/discord-session-key.js +0 -2
  1838. package/dist/plugin-sdk/discord-surface.js +0 -2
  1839. package/dist/plugin-sdk/discord-thread-bindings.js +0 -2
  1840. package/dist/plugin-sdk/discord-timeouts.js +0 -2
  1841. package/dist/plugin-sdk/discord.js +0 -21
  1842. package/dist/plugin-sdk/error-runtime.js +0 -3
  1843. package/dist/plugin-sdk/extension-shared.js +0 -3
  1844. package/dist/plugin-sdk/feishu-conversation.js +0 -2
  1845. package/dist/plugin-sdk/feishu-setup.js +0 -2
  1846. package/dist/plugin-sdk/feishu.js +0 -34
  1847. package/dist/plugin-sdk/fetch-runtime.js +0 -7
  1848. package/dist/plugin-sdk/file-lock.js +0 -2
  1849. package/dist/plugin-sdk/gateway-runtime.js +0 -4
  1850. package/dist/plugin-sdk/github-copilot-login.js +0 -2
  1851. package/dist/plugin-sdk/github-copilot-token.js +0 -3
  1852. package/dist/plugin-sdk/global-singleton.js +0 -4
  1853. package/dist/plugin-sdk/google.js +0 -2
  1854. package/dist/plugin-sdk/googlechat.js +0 -38
  1855. package/dist/plugin-sdk/group-access.js +0 -2
  1856. package/dist/plugin-sdk/hook-runtime.js +0 -4
  1857. package/dist/plugin-sdk/host-runtime.js +0 -4
  1858. package/dist/plugin-sdk/huggingface.js +0 -18
  1859. package/dist/plugin-sdk/image-generation-core.js +0 -63
  1860. package/dist/plugin-sdk/image-generation.js +0 -2
  1861. package/dist/plugin-sdk/index.js +0 -5
  1862. package/dist/plugin-sdk/infra-runtime.js +0 -45
  1863. package/dist/plugin-sdk/interactive-runtime.js +0 -4
  1864. package/dist/plugin-sdk/irc-surface.js +0 -2
  1865. package/dist/plugin-sdk/irc.js +0 -30
  1866. package/dist/plugin-sdk/json-store.js +0 -3
  1867. package/dist/plugin-sdk/keyed-async-queue.js +0 -2
  1868. package/dist/plugin-sdk/kilocode.js +0 -23
  1869. package/dist/plugin-sdk/kimi-coding.js +0 -11
  1870. package/dist/plugin-sdk/lazy-runtime.js +0 -3
  1871. package/dist/plugin-sdk/line-core.js +0 -6
  1872. package/dist/plugin-sdk/line-runtime.js +0 -2
  1873. package/dist/plugin-sdk/line-surface.js +0 -2
  1874. package/dist/plugin-sdk/line.js +0 -9
  1875. package/dist/plugin-sdk/llm-task.js +0 -6
  1876. package/dist/plugin-sdk/logging-core.js +0 -5
  1877. package/dist/plugin-sdk/markdown-table-runtime.js +0 -3
  1878. package/dist/plugin-sdk/matrix-helper.js +0 -2
  1879. package/dist/plugin-sdk/matrix-runtime-heavy.js +0 -5
  1880. package/dist/plugin-sdk/matrix-runtime-shared.js +0 -3
  1881. package/dist/plugin-sdk/matrix-runtime-surface.js +0 -2
  1882. package/dist/plugin-sdk/matrix-surface.js +0 -2
  1883. package/dist/plugin-sdk/matrix-thread-bindings.js +0 -2
  1884. package/dist/plugin-sdk/matrix.js +0 -53
  1885. package/dist/plugin-sdk/mattermost-policy.js +0 -11
  1886. package/dist/plugin-sdk/mattermost.js +0 -41
  1887. package/dist/plugin-sdk/media-runtime.js +0 -17
  1888. package/dist/plugin-sdk/media-understanding-runtime.js +0 -2
  1889. package/dist/plugin-sdk/media-understanding.js +0 -3
  1890. package/dist/plugin-sdk/memory-core-engine-runtime.js +0 -2
  1891. package/dist/plugin-sdk/memory-core-host-engine-embeddings.js +0 -6
  1892. package/dist/plugin-sdk/memory-core-host-engine-foundation.js +0 -17
  1893. package/dist/plugin-sdk/memory-core-host-engine-qmd.js +0 -3
  1894. package/dist/plugin-sdk/memory-core-host-engine-storage.js +0 -4
  1895. package/dist/plugin-sdk/memory-core-host-multimodal.js +0 -3
  1896. package/dist/plugin-sdk/memory-core-host-query.js +0 -3
  1897. package/dist/plugin-sdk/memory-core-host-runtime-cli.js +0 -12
  1898. package/dist/plugin-sdk/memory-core-host-runtime-core.js +0 -14
  1899. package/dist/plugin-sdk/memory-core-host-runtime-files.js +0 -4
  1900. package/dist/plugin-sdk/memory-core-host-secret.js +0 -3
  1901. package/dist/plugin-sdk/memory-core-host-status.js +0 -2
  1902. package/dist/plugin-sdk/memory-core.js +0 -29
  1903. package/dist/plugin-sdk/memory-lancedb.js +0 -4
  1904. package/dist/plugin-sdk/minimax.js +0 -24
  1905. package/dist/plugin-sdk/mistral.js +0 -17
  1906. package/dist/plugin-sdk/models-provider-runtime.js +0 -3
  1907. package/dist/plugin-sdk/modelstudio-definitions.js +0 -19
  1908. package/dist/plugin-sdk/modelstudio.js +0 -24
  1909. package/dist/plugin-sdk/moonshot.js +0 -17
  1910. package/dist/plugin-sdk/msteams.js +0 -46
  1911. package/dist/plugin-sdk/native-command-registry.js +0 -3
  1912. package/dist/plugin-sdk/nextcloud-talk.js +0 -35
  1913. package/dist/plugin-sdk/nostr.js +0 -14
  1914. package/dist/plugin-sdk/nvidia.js +0 -11
  1915. package/dist/plugin-sdk/ollama-surface.js +0 -24
  1916. package/dist/plugin-sdk/ollama.js +0 -2
  1917. package/dist/plugin-sdk/openai.js +0 -2
  1918. package/dist/plugin-sdk/opencode-go.js +0 -14
  1919. package/dist/plugin-sdk/opencode.js +0 -15
  1920. package/dist/plugin-sdk/outbound-runtime.js +0 -5
  1921. package/dist/plugin-sdk/param-readers.js +0 -3
  1922. package/dist/plugin-sdk/plugin-entry.js +0 -3
  1923. package/dist/plugin-sdk/plugin-runtime.js +0 -8
  1924. package/dist/plugin-sdk/process-runtime.js +0 -3
  1925. package/dist/plugin-sdk/provider-auth-api-key.js +0 -9
  1926. package/dist/plugin-sdk/provider-auth-login.js +0 -2
  1927. package/dist/plugin-sdk/provider-auth-result.js +0 -2
  1928. package/dist/plugin-sdk/provider-auth-runtime.js +0 -5
  1929. package/dist/plugin-sdk/provider-auth.js +0 -17
  1930. package/dist/plugin-sdk/provider-catalog-shared.js +0 -2
  1931. package/dist/plugin-sdk/provider-entry.js +0 -2
  1932. package/dist/plugin-sdk/provider-env-vars.js +0 -3
  1933. package/dist/plugin-sdk/provider-http.js +0 -6
  1934. package/dist/plugin-sdk/provider-model-shared.js +0 -5
  1935. package/dist/plugin-sdk/provider-moonshot.js +0 -3
  1936. package/dist/plugin-sdk/provider-onboard.js +0 -3
  1937. package/dist/plugin-sdk/provider-setup.js +0 -3
  1938. package/dist/plugin-sdk/provider-stream.js +0 -4
  1939. package/dist/plugin-sdk/provider-tools.js +0 -2
  1940. package/dist/plugin-sdk/provider-usage.js +0 -3
  1941. package/dist/plugin-sdk/provider-web-fetch.js +0 -6
  1942. package/dist/plugin-sdk/provider-web-search.js +0 -7
  1943. package/dist/plugin-sdk/provider-zai-endpoint.js +0 -2
  1944. package/dist/plugin-sdk/qianfan.js +0 -13
  1945. package/dist/plugin-sdk/reply-chunking.js +0 -4
  1946. package/dist/plugin-sdk/reply-dispatch-runtime.js +0 -5
  1947. package/dist/plugin-sdk/reply-history.js +0 -3
  1948. package/dist/plugin-sdk/reply-payload.js +0 -2
  1949. package/dist/plugin-sdk/reply-runtime.js +0 -14
  1950. package/dist/plugin-sdk/request-url.js +0 -2
  1951. package/dist/plugin-sdk/retry-runtime.js +0 -4
  1952. package/dist/plugin-sdk/root-alias.cjs +0 -347
  1953. package/dist/plugin-sdk/routing.js +0 -9
  1954. package/dist/plugin-sdk/runtime-config-snapshot.js +0 -3
  1955. package/dist/plugin-sdk/runtime-env.js +0 -17
  1956. package/dist/plugin-sdk/runtime-group-policy.js +0 -3
  1957. package/dist/plugin-sdk/runtime-store.js +0 -2
  1958. package/dist/plugin-sdk/runtime.js +0 -9
  1959. package/dist/plugin-sdk/sandbox.js +0 -6
  1960. package/dist/plugin-sdk/secret-input.js +0 -4
  1961. package/dist/plugin-sdk/security-runtime.js +0 -6
  1962. package/dist/plugin-sdk/self-hosted-provider-setup.js +0 -2
  1963. package/dist/plugin-sdk/session-store-runtime.js +0 -4
  1964. package/dist/plugin-sdk/setup-adapter-runtime.js +0 -3
  1965. package/dist/plugin-sdk/setup-runtime.js +0 -6
  1966. package/dist/plugin-sdk/setup-tools.js +0 -6
  1967. package/dist/plugin-sdk/setup.js +0 -13
  1968. package/dist/plugin-sdk/sglang.js +0 -15
  1969. package/dist/plugin-sdk/signal-account.js +0 -2
  1970. package/dist/plugin-sdk/signal-surface.js +0 -2
  1971. package/dist/plugin-sdk/signal.js +0 -24
  1972. package/dist/plugin-sdk/skill-commands-runtime.js +0 -3
  1973. package/dist/plugin-sdk/slack-account.js +0 -2
  1974. package/dist/plugin-sdk/slack-core.js +0 -7
  1975. package/dist/plugin-sdk/slack-runtime-surface.js +0 -2
  1976. package/dist/plugin-sdk/slack-surface.js +0 -2
  1977. package/dist/plugin-sdk/slack-target-parser.js +0 -2
  1978. package/dist/plugin-sdk/slack-targets.js +0 -3
  1979. package/dist/plugin-sdk/slack.js +0 -20
  1980. package/dist/plugin-sdk/speech-core.js +0 -4
  1981. package/dist/plugin-sdk/speech-runtime.js +0 -2
  1982. package/dist/plugin-sdk/speech.js +0 -5
  1983. package/dist/plugin-sdk/ssrf-runtime.js +0 -6
  1984. package/dist/plugin-sdk/state-paths.js +0 -3
  1985. package/dist/plugin-sdk/status-helpers.js +0 -4
  1986. package/dist/plugin-sdk/string-normalization-runtime.js +0 -3
  1987. package/dist/plugin-sdk/synthetic.js +0 -17
  1988. package/dist/plugin-sdk/telegram-account.js +0 -2
  1989. package/dist/plugin-sdk/telegram-allow-from.js +0 -12
  1990. package/dist/plugin-sdk/telegram-command-config.js +0 -3
  1991. package/dist/plugin-sdk/telegram-core.js +0 -18
  1992. package/dist/plugin-sdk/telegram-surface.js +0 -42
  1993. package/dist/plugin-sdk/temp-path.js +0 -4
  1994. package/dist/plugin-sdk/testing.js +0 -11
  1995. package/dist/plugin-sdk/text-runtime.js +0 -19
  1996. package/dist/plugin-sdk/thread-bindings-runtime.js +0 -4
  1997. package/dist/plugin-sdk/thread-ownership.js +0 -5
  1998. package/dist/plugin-sdk/tlon.js +0 -13
  1999. package/dist/plugin-sdk/together.js +0 -16
  2000. package/dist/plugin-sdk/tool-send.js +0 -2
  2001. package/dist/plugin-sdk/twitch.js +0 -8
  2002. package/dist/plugin-sdk/venice.js +0 -16
  2003. package/dist/plugin-sdk/vllm.js +0 -15
  2004. package/dist/plugin-sdk/voice-call.js +0 -7
  2005. package/dist/plugin-sdk/volcengine.js +0 -17
  2006. package/dist/plugin-sdk/web-media.js +0 -4
  2007. package/dist/plugin-sdk/webhook-ingress.js +0 -9
  2008. package/dist/plugin-sdk/webhook-path.js +0 -2
  2009. package/dist/plugin-sdk/webhook-request-guards.js +0 -3
  2010. package/dist/plugin-sdk/whatsapp-auth-presence.js +0 -2
  2011. package/dist/plugin-sdk/whatsapp-core.js +0 -11
  2012. package/dist/plugin-sdk/whatsapp-shared.js +0 -5
  2013. package/dist/plugin-sdk/whatsapp-surface.js +0 -2
  2014. package/dist/plugin-sdk/whatsapp-targets.js +0 -2
  2015. package/dist/plugin-sdk/windows-spawn.js +0 -2
  2016. package/dist/plugin-sdk/xai.js +0 -27
  2017. package/dist/plugin-sdk/zalo-setup.js +0 -2
  2018. package/dist/plugin-sdk/zalo.js +0 -38
  2019. package/dist/plugin-sdk/zalouser.js +0 -29
  2020. package/dist/plugin-sdk/zod.js +0 -3
  2021. package/dist/plugins/build-smoke-entry.js +0 -4
  2022. package/dist/plugins/provider-runtime.runtime.js +0 -2
  2023. package/dist/plugins/runtime/index.js +0 -2
  2024. package/dist/plugins/runtime/runtime-line.contract.js +0 -23
  2025. package/dist/plugins-DcjzAZWt.js +0 -5
  2026. package/dist/plugins-allowlist-DoZlIC4p.js +0 -14
  2027. package/dist/plugins-cli-G6GhHHD0.js +0 -561
  2028. package/dist/plugins-command-helpers-CIYzoC65.js +0 -116
  2029. package/dist/plugins-install-persist-C5-bJdRb.js +0 -121
  2030. package/dist/plugins-update-command-CsT_saJm.js +0 -974
  2031. package/dist/plugins-w6xUzHby.js +0 -40
  2032. package/dist/pluralkit-B_DWQnc5.js +0 -21
  2033. package/dist/pluralkit-Bez5QVFC.js +0 -2
  2034. package/dist/policy-D6OQdw73.js +0 -173
  2035. package/dist/policy-DXeeH8B2.js +0 -147
  2036. package/dist/poll-params-DTVSSuok.js +0 -52
  2037. package/dist/polls-CMmT0F_y.js +0 -35
  2038. package/dist/port-defaults-Dajs4Obu.js +0 -30
  2039. package/dist/ports-DuU-A86K.js +0 -262
  2040. package/dist/ports-ZA1n2It7.js +0 -432
  2041. package/dist/ports-lsof-Cw_6T7ru.js +0 -25
  2042. package/dist/ports-probe-DeuK48Pq.js +0 -14
  2043. package/dist/preflight-audio-DTSBExi8.js +0 -48
  2044. package/dist/preflight-audio.runtime-BJRLyBvf.js +0 -7
  2045. package/dist/preflight-audio.runtime.js +0 -1
  2046. package/dist/prepare-BQBndJUC.js +0 -1301
  2047. package/dist/probe-BO4hbHvs.js +0 -435
  2048. package/dist/probe-DPv2pfj5.js +0 -1868
  2049. package/dist/probe-DlO2Q9rN.js +0 -170
  2050. package/dist/probe-RbbTQOHx.js +0 -178
  2051. package/dist/probe-auth-Bl9MHtlP.js +0 -2
  2052. package/dist/probe-auth-CUfEH7di.js +0 -63
  2053. package/dist/probe-eYLpFww_.js +0 -137
  2054. package/dist/probe-kfBMuOWF.js +0 -2
  2055. package/dist/probe-wktb4WTP.js +0 -349
  2056. package/dist/probe.runtime-BhbUesak.js +0 -2
  2057. package/dist/probe.runtime.js +0 -1
  2058. package/dist/process-runtime-CBFMzhIk.js +0 -2
  2059. package/dist/process-scoped-map-C7IoOrV-.js +0 -61
  2060. package/dist/profile-B5n9yLlB.js +0 -2
  2061. package/dist/profile-CmsqnPsu.js +0 -107
  2062. package/dist/profile-update-D6f10CZk.js +0 -67
  2063. package/dist/profile-utils-C7uzTwgJ.js +0 -15
  2064. package/dist/profiles-BoNergZo.js +0 -79
  2065. package/dist/program-BuKG0Ntx.js +0 -158
  2066. package/dist/program-context-DDmlbmbl.js +0 -2
  2067. package/dist/program-context-DQOnR5c_.js +0 -10
  2068. package/dist/progress-DQvXYKne.js +0 -132
  2069. package/dist/prompt-COzf5LIJ.js +0 -2
  2070. package/dist/prompt-OSmU-o7R.js +0 -20
  2071. package/dist/prompt-select-styled-yYL3el77.js +0 -6432
  2072. package/dist/prompt-style-DekFM6h7.js +0 -7
  2073. package/dist/prompts-MtRTsZpw.js +0 -9
  2074. package/dist/prototype-keys-DrjhYNcz.js +0 -11
  2075. package/dist/provider-BWTXmDq3.js +0 -3685
  2076. package/dist/provider-BrmcrkEe.js +0 -70
  2077. package/dist/provider-ByBRbhW5.js +0 -7216
  2078. package/dist/provider-api-key-auth-BcyipSdy.js +0 -109
  2079. package/dist/provider-api-key-auth.runtime-BRu_8L4m.js +0 -14
  2080. package/dist/provider-api-key-auth.runtime.js +0 -1
  2081. package/dist/provider-attribution-DMVujx9B.js +0 -285
  2082. package/dist/provider-auth-DK2UmYsZ.js +0 -43
  2083. package/dist/provider-auth-api-key-99KxscjW.js +0 -5
  2084. package/dist/provider-auth-choice-GbHta8Bp.js +0 -134
  2085. package/dist/provider-auth-choice-helpers-CO2MnSGR.js +0 -58
  2086. package/dist/provider-auth-choice-preference-DvAqSMGK.js +0 -44
  2087. package/dist/provider-auth-choice.runtime-B8R63sLq.js +0 -14
  2088. package/dist/provider-auth-choice.runtime-DypTKgMQ.js +0 -2
  2089. package/dist/provider-auth-choice.runtime.js +0 -1
  2090. package/dist/provider-auth-choices-n-JV1XgU.js +0 -65
  2091. package/dist/provider-auth-guidance-DAB9sGGR.js +0 -35
  2092. package/dist/provider-auth-helpers-gmTAji1W.js +0 -92
  2093. package/dist/provider-auth-input-GgY_tjJh.js +0 -116
  2094. package/dist/provider-auth-login-BYbccnB1.js +0 -8
  2095. package/dist/provider-auth-login.runtime-DnSxCwqU.js +0 -196
  2096. package/dist/provider-auth-login.runtime.js +0 -1
  2097. package/dist/provider-auth-mode-Dbja5LLX.js +0 -20
  2098. package/dist/provider-auth-ref-BErMfwCd.js +0 -171
  2099. package/dist/provider-auth-ref-DEF_hE2R.js +0 -2
  2100. package/dist/provider-auth-result-DiUxDF1G.js +0 -31
  2101. package/dist/provider-auth-runtime-BwMq9oMD.js +0 -32
  2102. package/dist/provider-catalog--Qc0q0I-.js +0 -26
  2103. package/dist/provider-catalog-A_s8JQaq.js +0 -18
  2104. package/dist/provider-catalog-B-EcLvBI.js +0 -11
  2105. package/dist/provider-catalog-Bte-HucL.js +0 -44
  2106. package/dist/provider-catalog-C63Rfat7.js +0 -11
  2107. package/dist/provider-catalog-C7q0Vb3S.js +0 -95
  2108. package/dist/provider-catalog-CCnuf8d3.js +0 -49
  2109. package/dist/provider-catalog-CYQ7k_Db.js +0 -48
  2110. package/dist/provider-catalog-CnlB2mMZ.js +0 -11
  2111. package/dist/provider-catalog-CoyAbDZX.js +0 -56
  2112. package/dist/provider-catalog-CtqhFopw.js +0 -48
  2113. package/dist/provider-catalog-CyGxB_aR.js +0 -18
  2114. package/dist/provider-catalog-D1pmWiDQ.js +0 -48
  2115. package/dist/provider-catalog-DGgsalJv.js +0 -12
  2116. package/dist/provider-catalog-DLdTTMmW.js +0 -11
  2117. package/dist/provider-catalog-DZzX7Vwk.js +0 -54
  2118. package/dist/provider-catalog-J2dZciKS.js +0 -11
  2119. package/dist/provider-catalog-LVrcrz-W.js +0 -36
  2120. package/dist/provider-catalog-aIN0QojF.js +0 -11
  2121. package/dist/provider-catalog-shared-Db9nbr1B.js +0 -28
  2122. package/dist/provider-discovery.runtime-BCUAsMMz.js +0 -10
  2123. package/dist/provider-discovery.runtime.js +0 -1
  2124. package/dist/provider-dispatcher-COxXbow_.js +0 -22
  2125. package/dist/provider-entry-CT_YeII_.js +0 -86
  2126. package/dist/provider-env-vars-4Bon7Y2X.js +0 -121
  2127. package/dist/provider-env-vars-Np7qkDjC.js +0 -2
  2128. package/dist/provider-flow-Dlg1GcXQ.js +0 -93
  2129. package/dist/provider-http-DQQ317hc.js +0 -3
  2130. package/dist/provider-id-CHzLB538.js +0 -30
  2131. package/dist/provider-model-defaults-dSPzPas0.js +0 -5
  2132. package/dist/provider-model-primary-D8SgLcOd.js +0 -26
  2133. package/dist/provider-model-shared-GO1WT2fY.js +0 -104
  2134. package/dist/provider-models-BG8YwJaY.js +0 -117
  2135. package/dist/provider-models-BVVCdM8F.js +0 -22
  2136. package/dist/provider-models-D2UZvTo3.js +0 -46
  2137. package/dist/provider-moonshot-Cl8urWHL.js +0 -2
  2138. package/dist/provider-oauth-flow-Bu2gIeX6.js +0 -33
  2139. package/dist/provider-onboard-CTEHTjfw.js +0 -264
  2140. package/dist/provider-openai-codex-oauth-tls-DdLUDuIM.js +0 -101
  2141. package/dist/provider-registry-Ljtt6CKE.js +0 -49
  2142. package/dist/provider-request-config-CIrbwAnR.js +0 -209
  2143. package/dist/provider-runtime-BBFXlsU0.js +0 -2
  2144. package/dist/provider-runtime-D_itmv9t.js +0 -291
  2145. package/dist/provider-runtime.runtime-B_oC992d.js +0 -26
  2146. package/dist/provider-runtime.runtime.js +0 -1
  2147. package/dist/provider-self-hosted-setup-BlNrSREL.js +0 -272
  2148. package/dist/provider-session.runtime-DQyRV-t3.js +0 -7
  2149. package/dist/provider-session.runtime.js +0 -1
  2150. package/dist/provider-setup-CSrOyU04.js +0 -2
  2151. package/dist/provider-stream-m5D8QZPz.js +0 -289
  2152. package/dist/provider-tools-NuJzTqa1.js +0 -37
  2153. package/dist/provider-usage-BB5mQ8Fg.js +0 -3
  2154. package/dist/provider-usage-CbPs3eFQ.js +0 -2
  2155. package/dist/provider-usage-DG1gff_M.js +0 -375
  2156. package/dist/provider-usage.fetch-DHWQ4YZu.js +0 -633
  2157. package/dist/provider-web-fetch-QzED2vth.js +0 -5
  2158. package/dist/provider-web-search-CVMEZcl8.js +0 -306
  2159. package/dist/provider-wizard-B0ocsg3q.js +0 -209
  2160. package/dist/provider-zai-endpoint-DoIy5HQf.js +0 -116
  2161. package/dist/provider.runtime-jHt6447e.js +0 -2
  2162. package/dist/provider.runtime.js +0 -1
  2163. package/dist/providers-DUy2TaM-.js +0 -59
  2164. package/dist/providers.runtime-Bz0X8DZ2.js +0 -60
  2165. package/dist/providers.runtime.js +0 -1
  2166. package/dist/proxy-env-D4H9qI5l.js +0 -40
  2167. package/dist/proxy-fetch-DiyTLcAR.js +0 -55
  2168. package/dist/proxy-hcRRmsDd.js +0 -121
  2169. package/dist/pw-ai-Cp64-UGh.js +0 -2037
  2170. package/dist/qmd-manager-D2rMomsU.js +0 -1740
  2171. package/dist/qr-cli-DuANCi-n.js +0 -2
  2172. package/dist/qr-cli-lr5CcLr8.js +0 -367
  2173. package/dist/qr-image-DOcoqAUw.js +0 -2
  2174. package/dist/query-expansion-85HlYbKD.js +0 -633
  2175. package/dist/queue-CtO0M_P1.js +0 -663
  2176. package/dist/reaction-runtime-api-B4KmfKtJ.js +0 -114
  2177. package/dist/reactions-5N2KSGJ2.js +0 -258
  2178. package/dist/read-only-account-inspect-Y_ijOKJ3.js +0 -9
  2179. package/dist/read-only-account-inspect.telegram-BSjjDWnM.js +0 -202
  2180. package/dist/reasoning-tags-CAmbBXLr.js +0 -77
  2181. package/dist/recovery-key-store-DqgdfMc7.js +0 -283
  2182. package/dist/redact-BDinS1q9.js +0 -102
  2183. package/dist/redact-identifier-S69DDJn1.js +0 -13
  2184. package/dist/redact-sensitive-url-CAJSZ_7g.js +0 -50
  2185. package/dist/redirect-headers-CGxONG_L.js +0 -25
  2186. package/dist/ref-contract-CC5BLDoS.js +0 -53
  2187. package/dist/region-BFGEM88n.js +0 -62
  2188. package/dist/register-lazy-command-D6EEI-zz.js +0 -43
  2189. package/dist/register.agent-D1eKwVU7.js +0 -239
  2190. package/dist/register.backup-S8hwHpZL.js +0 -236
  2191. package/dist/register.configure-CJrQ3u9y.js +0 -15
  2192. package/dist/register.maintenance-BrKWl7_D.js +0 -449
  2193. package/dist/register.message-BCWJfH2h.js +0 -642
  2194. package/dist/register.onboard-zzNq0pJS.js +0 -79
  2195. package/dist/register.setup-BLQwDKzc.js +0 -104
  2196. package/dist/register.status-health-sessions-B4TUEudf.js +0 -1206
  2197. package/dist/register.subclis-B0pG22H2.js +0 -295
  2198. package/dist/register.subclis-BEM0mzJb.js +0 -3
  2199. package/dist/registry-ByjnKj3u.js +0 -219
  2200. package/dist/registry-CuFNdbH5.js +0 -60
  2201. package/dist/registry-DvqOrcbF.js +0 -675
  2202. package/dist/registry-mVzzlPf7.js +0 -50
  2203. package/dist/repair-IMBZnz-L.js +0 -112
  2204. package/dist/replies-BCoZ2HxY.js +0 -118
  2205. package/dist/reply-D8bUQd-Q.js +0 -3176
  2206. package/dist/reply-blocks-CjCUTZru.js +0 -103
  2207. package/dist/reply-chunking-CxFd5izq.js +0 -3
  2208. package/dist/reply-dispatch-runtime-Bk9RDzB9.js +0 -3
  2209. package/dist/reply-history-DtTaPEgt.js +0 -2
  2210. package/dist/reply-payload-CRYI4jIB.js +0 -232
  2211. package/dist/reply-payloads-CQXH7ury.js +0 -116
  2212. package/dist/reply-payloads-dedupe-BKObDjVe.js +0 -135
  2213. package/dist/reply-payloads-dedupe.runtime-SbVNMvEs.js +0 -2
  2214. package/dist/reply-payloads-dedupe.runtime.js +0 -1
  2215. package/dist/reply-prefix-Eema_xXG.js +0 -39
  2216. package/dist/reply-runtime-DUrpJTzu.js +0 -123
  2217. package/dist/reply.runtime-Cdb_6NI1.js +0 -2
  2218. package/dist/reply.runtime.js +0 -1
  2219. package/dist/request-url-B8k-YRRH.js +0 -10
  2220. package/dist/resolve-C3pJ2gj_.js +0 -174
  2221. package/dist/resolve-C_pCWwC0.js +0 -619
  2222. package/dist/resolve-allowlist-HrJ_3icS.js +0 -147
  2223. package/dist/resolve-cbCi7mbs.js +0 -2
  2224. package/dist/resolve-channels-BTyErRev.js +0 -226
  2225. package/dist/resolve-channels-DvV-fUQv.js +0 -263
  2226. package/dist/resolve-configured-secret-input-string-BasQGOd9.js +0 -112
  2227. package/dist/resolve-route-EE8E7OAF.js +0 -486
  2228. package/dist/resolve-system-bin-TC907QYo.js +0 -120
  2229. package/dist/resolve-targets-B1MvBWpT.js +0 -280
  2230. package/dist/resolve-users-BfVoBZG_.js +0 -145
  2231. package/dist/resolve-utils-ClmKSkEQ.js +0 -102
  2232. package/dist/response-generator-ACP21F1j.js +0 -153
  2233. package/dist/response-prefix-template-Cp4tg6Qw.js +0 -50
  2234. package/dist/restart-sentinel-B3EigRIb.js +0 -70
  2235. package/dist/restart-stale-pids-dsB3eE6_.js +0 -187
  2236. package/dist/retry-CIAqcw7C.js +0 -76
  2237. package/dist/retry-policy-BJ5Q68It.js +0 -58
  2238. package/dist/retry-runtime-Cbu5zDnX.js +0 -3
  2239. package/dist/rooms-B1IyUfuR.js +0 -325
  2240. package/dist/root-help-Bwa-vlhy.js +0 -53
  2241. package/dist/route-reply-bC07YRDb.js +0 -133
  2242. package/dist/route-reply.runtime-dS2XMwkv.js +0 -2
  2243. package/dist/route-reply.runtime.js +0 -1
  2244. package/dist/route-resolution-DQHmIfWN.js +0 -461
  2245. package/dist/routes-CWXihJFR.js +0 -6884
  2246. package/dist/routing-BVt9nMN-.js +0 -16
  2247. package/dist/rpc-5eaI-FsF.js +0 -67
  2248. package/dist/rpc-context-Dimdo4io.js +0 -155
  2249. package/dist/run-command-2jxKF1a6.js +0 -32
  2250. package/dist/run-main-BKeNUaXq.js +0 -425
  2251. package/dist/run-with-concurrency-DGLkItan.js +0 -41
  2252. package/dist/runner-COmi-bB0.js +0 -1479
  2253. package/dist/runs-CX-70k4f.js +0 -616
  2254. package/dist/runtime-1phb9iVo.js +0 -6
  2255. package/dist/runtime-B8hqEtu6.js +0 -181
  2256. package/dist/runtime-BpHrcXgA.js +0 -5
  2257. package/dist/runtime-BscSIjIL.js +0 -126
  2258. package/dist/runtime-C8qvwPYG.js +0 -286
  2259. package/dist/runtime-CBX_rq4O.js +0 -18
  2260. package/dist/runtime-CC1YDOst.js +0 -5
  2261. package/dist/runtime-CIE7xJwu.js +0 -5
  2262. package/dist/runtime-CNZi_czi.js +0 -42
  2263. package/dist/runtime-CPw-0dWW.js +0 -5
  2264. package/dist/runtime-DXdxDbJm.js +0 -102
  2265. package/dist/runtime-DofOSZ5U.js +0 -2153
  2266. package/dist/runtime-api-B4Zb5p1_.js +0 -2
  2267. package/dist/runtime-api-BB2RZPnq.js +0 -2
  2268. package/dist/runtime-api-BJnw1_pK.js +0 -2
  2269. package/dist/runtime-api-BTf2rLCn.js +0 -2
  2270. package/dist/runtime-api-BTgAUySz.js +0 -2
  2271. package/dist/runtime-api-BVftCkYc.js +0 -2484
  2272. package/dist/runtime-api-BWaVsvsK.js +0 -14
  2273. package/dist/runtime-api-BXlE282E.js +0 -2
  2274. package/dist/runtime-api-Ba7wWBWO.js +0 -1
  2275. package/dist/runtime-api-BfZqvwkY.js +0 -2
  2276. package/dist/runtime-api-Bja3afzd.js +0 -3676
  2277. package/dist/runtime-api-C7cX3f2r.js +0 -2
  2278. package/dist/runtime-api-CCKblcQO.js +0 -81
  2279. package/dist/runtime-api-CEmQSooZ.js +0 -2
  2280. package/dist/runtime-api-CWQMIahu.js +0 -241
  2281. package/dist/runtime-api-Ch1E1gvT.js +0 -2
  2282. package/dist/runtime-api-CjgyJEjn.js +0 -2
  2283. package/dist/runtime-api-CuqnElJG.js +0 -3
  2284. package/dist/runtime-api-DOyNJNHi.js +0 -2
  2285. package/dist/runtime-api-DUbp7oPz.js +0 -2
  2286. package/dist/runtime-api-DZDDizAj.js +0 -1
  2287. package/dist/runtime-api-DZcQIyI0.js +0 -1
  2288. package/dist/runtime-api-Di-XE7J4.js +0 -3
  2289. package/dist/runtime-api-Dq7rdsm6.js +0 -2
  2290. package/dist/runtime-api-DxO7sIvA.js +0 -120
  2291. package/dist/runtime-api-Dzz1aWyq.js +0 -29
  2292. package/dist/runtime-api-_dg5Me1l.js +0 -2
  2293. package/dist/runtime-config-snapshot-DqWNFIej.js +0 -2
  2294. package/dist/runtime-d8L2hZ57.js +0 -5
  2295. package/dist/runtime-discord-ops.runtime-C2o0995d.js +0 -25
  2296. package/dist/runtime-discord-ops.runtime.js +0 -1
  2297. package/dist/runtime-embedded-pi.runtime-Bk8vHdbc.js +0 -2
  2298. package/dist/runtime-embedded-pi.runtime.js +0 -1
  2299. package/dist/runtime-entry-BypP0hpR.js +0 -4925
  2300. package/dist/runtime-env-SHKgcATc.js +0 -9
  2301. package/dist/runtime-forwarders-ev8FdVyV.js +0 -44
  2302. package/dist/runtime-group-policy-DXJJCWpk.js +0 -1
  2303. package/dist/runtime-group-policy-zTp8fKRK.js +0 -59
  2304. package/dist/runtime-guard-78ESz4Qy.js +0 -70
  2305. package/dist/runtime-kS8e4c6-.js +0 -125
  2306. package/dist/runtime-media-understanding.runtime-CpPWzWdQ.js +0 -2
  2307. package/dist/runtime-media-understanding.runtime.js +0 -1
  2308. package/dist/runtime-model-auth.runtime-1Gsp1j1n.js +0 -2
  2309. package/dist/runtime-model-auth.runtime.js +0 -1
  2310. package/dist/runtime-parse-vvG9x7Ps.js +0 -83
  2311. package/dist/runtime-paths-NiQSNveu.js +0 -305
  2312. package/dist/runtime-plugin-boundary-CzRNh2jW.js +0 -65
  2313. package/dist/runtime-schema-uKXWjWrD.js +0 -14440
  2314. package/dist/runtime-slack-ops.runtime-MQwSRdp3.js +0 -15
  2315. package/dist/runtime-slack-ops.runtime.js +0 -1
  2316. package/dist/runtime-status-2omGgKaM.js +0 -109
  2317. package/dist/runtime-status-Cc383GkB.js +0 -15
  2318. package/dist/runtime-store-CT3yRBe_.js +0 -22
  2319. package/dist/runtime-tts.runtime-DTfPYn3H.js +0 -2
  2320. package/dist/runtime-tts.runtime.js +0 -1
  2321. package/dist/runtime-uvckmk15.js +0 -68
  2322. package/dist/runtime-web-tools-Cf6BXnCm.js +0 -2042
  2323. package/dist/runtime-whatsapp-boundary-Bs8RrKxP.js +0 -139
  2324. package/dist/runtime-whatsapp-boundary-C5mx67ac.js +0 -2
  2325. package/dist/safe-regex-tLlDZYfM.js +0 -244
  2326. package/dist/safe-text-DhIQbZid.js +0 -16
  2327. package/dist/sandbox-DkZ4-LBj.js +0 -4
  2328. package/dist/sandbox-cli-Cho_k3dA.js +0 -443
  2329. package/dist/sandbox-f4-hZNCj.js +0 -2710
  2330. package/dist/sandbox-paths-Br54mtAJ.js +0 -146
  2331. package/dist/sanitize-env-vars-BpNLWkzd.js +0 -82
  2332. package/dist/scan-paths-Bln7l19-.js +0 -28
  2333. package/dist/schema-validator-DofqBvJi.js +0 -176
  2334. package/dist/scoped-expiring-id-cache-C8wyKEV-.js +0 -35
  2335. package/dist/scp-host-B9NPcVwn.js +0 -62
  2336. package/dist/sdk-Ba91_ru8.js +0 -1108
  2337. package/dist/searxng-search-provider-CUEJoeaQ.js +0 -220
  2338. package/dist/secret-equal-fMR1DjSl.js +0 -9
  2339. package/dist/secret-file-BNKBIds0.js +0 -11
  2340. package/dist/secret-file-DwDmPLSX.js +0 -92
  2341. package/dist/secret-input-4MqmO__N.js +0 -13
  2342. package/dist/secret-input-Bqf5ho4v.js +0 -38
  2343. package/dist/secret-input-DyzcNLLY.js +0 -2
  2344. package/dist/secrets-cli-DAP4hi4r.js +0 -2112
  2345. package/dist/secure-random-Diy9rj1m.js +0 -20
  2346. package/dist/security-cli-2WQVKZ3w.js +0 -477
  2347. package/dist/security-runtime-BSQDlFPi.js +0 -55
  2348. package/dist/semver-compare-DkYCMcwG.js +0 -53
  2349. package/dist/send--GwzHbbI.js +0 -100
  2350. package/dist/send-4ZItW1GB.js +0 -3
  2351. package/dist/send-B1YVZR_q.js +0 -1076
  2352. package/dist/send-B6AgLKhw.js +0 -178
  2353. package/dist/send-CAosrV3E.js +0 -2
  2354. package/dist/send-CTHiX-WN.js +0 -442
  2355. package/dist/send-CywIIzow.js +0 -318
  2356. package/dist/send-DZ2VaVTD.js +0 -856
  2357. package/dist/send-deps-Cuc-dTy5.js +0 -19
  2358. package/dist/send-policy-Dz5lteoO.js +0 -60
  2359. package/dist/send-q09VUMe3.js +0 -532
  2360. package/dist/send.components-Cbi5ixnJ.js +0 -844
  2361. package/dist/send.components-dLe6ppiS.js +0 -2
  2362. package/dist/server-BRW1HQ2M.js +0 -67
  2363. package/dist/server-Clq20rV8.js +0 -27990
  2364. package/dist/server-middleware-Ubw3OFd1.js +0 -108
  2365. package/dist/server-node-events-kgWhdE2I.js +0 -454
  2366. package/dist/server-startup-matrix-migration-DJZgJiUa.js +0 -1348
  2367. package/dist/service-2O78fADl.js +0 -867
  2368. package/dist/service-BCUDr0mF.js +0 -2
  2369. package/dist/session-BIwHn1FL.js +0 -137
  2370. package/dist/session-BJudz6Rb.js +0 -50
  2371. package/dist/session-archive.runtime-8FrIp7MP.js +0 -2
  2372. package/dist/session-archive.runtime.js +0 -1
  2373. package/dist/session-binding-service-D7bUc7mS.js +0 -421
  2374. package/dist/session-context-DbS6R7x0.js +0 -23
  2375. package/dist/session-conversation-5Z-WApq_.js +0 -15
  2376. package/dist/session-conversation-BC-SPGma.js +0 -135
  2377. package/dist/session-conversation-D-Olnomz.js +0 -27
  2378. package/dist/session-cost-usage-5iS5N1Rs.js +0 -651
  2379. package/dist/session-cost-usage-ibiGeH7Z.js +0 -2
  2380. package/dist/session-envelope-RE_1D3fZ.js +0 -18
  2381. package/dist/session-errors-CoC2qhLC.js +0 -63
  2382. package/dist/session-file-CnTnoAyl.js +0 -120
  2383. package/dist/session-fork.runtime-Bb9nNLwX.js +0 -50
  2384. package/dist/session-fork.runtime.js +0 -1
  2385. package/dist/session-hooks-D4zcaOKV.js +0 -109
  2386. package/dist/session-key-CQMUjsSp.js +0 -52
  2387. package/dist/session-key-Do__tq1E.js +0 -279
  2388. package/dist/session-key-normalization-BamCBtxj.js +0 -22
  2389. package/dist/session-override-CHm5auQy.js +0 -100
  2390. package/dist/session-reset-model.runtime-DD5SooaH.js +0 -119
  2391. package/dist/session-reset-model.runtime.js +0 -1
  2392. package/dist/session-route-O1Pb7Oid.js +0 -91
  2393. package/dist/session-store-runtime-ePmbOWO1.js +0 -2
  2394. package/dist/session-subagent-reactivation.runtime-BwUDVflj.js +0 -2
  2395. package/dist/session-subagent-reactivation.runtime.js +0 -1
  2396. package/dist/session-transcript-files.fs-CyBs2u56.js +0 -149
  2397. package/dist/session-updates-C33bkLCm.js +0 -222
  2398. package/dist/session-updates.runtime-BHLQJ71D.js +0 -2
  2399. package/dist/session-updates.runtime.js +0 -1
  2400. package/dist/session-utils-C0HJP9m_.js +0 -1743
  2401. package/dist/session-write-lock-C7svKLqX.js +0 -343
  2402. package/dist/sessions-CkaONOVi.js +0 -224
  2403. package/dist/sessions-Dqj9fL_x.js +0 -2
  2404. package/dist/sessions-j2hbBGOS.js +0 -443
  2405. package/dist/setup-0GrDtpRN.js +0 -427
  2406. package/dist/setup-BrOJEPVN.js +0 -15
  2407. package/dist/setup-adapter-runtime-CyIIvoms.js +0 -2
  2408. package/dist/setup-api-1P88M5pV.js +0 -2
  2409. package/dist/setup-binary-CXmsVXWb.js +0 -2
  2410. package/dist/setup-bootstrap-QdrIAyis.js +0 -54
  2411. package/dist/setup-core-BqPbreVF.js +0 -256
  2412. package/dist/setup-core-CFzSqpD7.js +0 -256
  2413. package/dist/setup-core-DJHWTJKX.js +0 -383
  2414. package/dist/setup-core-DT1fK9yD.js +0 -146
  2415. package/dist/setup-core-kjYyNYvv.js +0 -48
  2416. package/dist/setup-core-t03VZdcn.js +0 -160
  2417. package/dist/setup-group-access-BQbnTk8B.js +0 -70
  2418. package/dist/setup-helpers-0yWIq2cW.js +0 -390
  2419. package/dist/setup-runtime-BChXvJOO.js +0 -4
  2420. package/dist/setup-surface-B8loJ-nJ.js +0 -272
  2421. package/dist/setup-surface-BKizDP2g.js +0 -237
  2422. package/dist/setup-surface-BOd4V0w5.js +0 -261
  2423. package/dist/setup-surface-BaLQtvFW.js +0 -353
  2424. package/dist/setup-surface-Bha7U86Z.js +0 -72
  2425. package/dist/setup-surface-BkHkduRm.js +0 -450
  2426. package/dist/setup-surface-CDfudYpT2.js +0 -261
  2427. package/dist/setup-surface-CT-Erp53.js +0 -346
  2428. package/dist/setup-surface-Co1jSLDk.js +0 -656
  2429. package/dist/setup-surface-D0joW4q1.js +0 -333
  2430. package/dist/setup-surface-D9rWJb4Z.js +0 -1447
  2431. package/dist/setup-surface-D_CJfyJ1.js +0 -381
  2432. package/dist/setup-surface-DbVJ8CAj.js +0 -484
  2433. package/dist/setup-surface-Di1q12ha.js +0 -97
  2434. package/dist/setup-surface-LWupQ_eL.js +0 -304
  2435. package/dist/setup-tools-Cb6PLN3L.js +0 -4
  2436. package/dist/setup-wizard-helpers-CA5yiprq.js +0 -841
  2437. package/dist/setup-wizard-proxy-bmMo6OPA.js +0 -127
  2438. package/dist/setup.finalize-DvGlwfbU.js +0 -443
  2439. package/dist/setup.gateway-config-D_eSo_Jz.js +0 -246
  2440. package/dist/setup.secret-input-BAQnay16.js +0 -25
  2441. package/dist/shared-1nXP7RAM.js +0 -78
  2442. package/dist/shared-6u4-kP5J.js +0 -221
  2443. package/dist/shared-BnSR7joQ.js +0 -144
  2444. package/dist/shared-BsLpgVLV.js +0 -37
  2445. package/dist/shared-C-PSF7Rv.js +0 -64
  2446. package/dist/shared-C1MrVu4M.js +0 -180
  2447. package/dist/shared-CA8QQ_O5.js +0 -94
  2448. package/dist/shared-CCV62W5K.js +0 -2
  2449. package/dist/shared-CHJjz6Zz.js +0 -72
  2450. package/dist/shared-CK49TKED.js +0 -50
  2451. package/dist/shared-CL7I4ij0.js +0 -160
  2452. package/dist/shared-Cr7ijuS4.js +0 -198
  2453. package/dist/shared-D61IX915.js +0 -10
  2454. package/dist/shared-Dr9OQu4c.js +0 -64
  2455. package/dist/shared-DwxV-O-g.js +0 -136
  2456. package/dist/shared-dWHdeoyy.js +0 -126
  2457. package/dist/shared-runtime-yV5uP0IO.js +0 -7
  2458. package/dist/shell-argv-B9p91CMW.js +0 -72
  2459. package/dist/shell-env-BTztt4a1.js +0 -181
  2460. package/dist/signal-B1kD3iF3.js +0 -46
  2461. package/dist/signal-DP8FUJOa.js +0 -6
  2462. package/dist/signal-Dvmeol77.js +0 -13
  2463. package/dist/signal-account-CYKnyxZK.js +0 -11
  2464. package/dist/signal-cli-install-DcmsRDbB.js +0 -188
  2465. package/dist/signal-surface-AbofIH7s.js +0 -21
  2466. package/dist/simple-completion-transport-Dl5DzRWP.js +0 -24
  2467. package/dist/skill-commands-CH4lfyW8.js +0 -77
  2468. package/dist/skill-commands-base-CvVjZByy.js +0 -60
  2469. package/dist/skill-commands-runtime-zpWkVBay.js +0 -2
  2470. package/dist/skill-commands.runtime-BKa5oyH-.js +0 -2
  2471. package/dist/skill-commands.runtime.js +0 -1
  2472. package/dist/skill-scanner-bqroDZTs.js +0 -354
  2473. package/dist/skills-D0K7gu2V.js +0 -972
  2474. package/dist/skills-DFTLIGCd.js +0 -4
  2475. package/dist/skills-clawhub-KJGw0uGT.js +0 -274
  2476. package/dist/skills-cli-DziAPxba.js +0 -369
  2477. package/dist/skills-install-CQeO3Sll.js +0 -819
  2478. package/dist/skills-remote-BojLLDxp.js +0 -584
  2479. package/dist/skills-status-BINZ_svK.js +0 -2
  2480. package/dist/skills-status-CdQUttuP.js +0 -170
  2481. package/dist/slack-BuMSbx3k.js +0 -6
  2482. package/dist/slack-DMg3O5YT.js +0 -9
  2483. package/dist/slack-account-LEbfbXys.js +0 -11
  2484. package/dist/slack-core-oqCiyGw8.js +0 -4
  2485. package/dist/slack-runtime-surface-CyaeT7yk.js +0 -18
  2486. package/dist/slack-surface-1yTIS5Q8.js +0 -44
  2487. package/dist/slack-target-parser-CruIJ5w5.js +0 -12
  2488. package/dist/slack-targets-ukxuKR1I.js +0 -45
  2489. package/dist/slash-commands-CRuXC74L.js +0 -672
  2490. package/dist/slash-commands.runtime-F6b9KUnh.js +0 -20
  2491. package/dist/slash-commands.runtime.js +0 -1
  2492. package/dist/slash-dispatch.runtime-CItGyoBF.js +0 -38
  2493. package/dist/slash-dispatch.runtime.js +0 -1
  2494. package/dist/slash-skill-commands.runtime-Caw0oNvV.js +0 -8
  2495. package/dist/slash-skill-commands.runtime.js +0 -1
  2496. package/dist/slots-Dq-2eIRb.js +0 -93
  2497. package/dist/speech-Ceb4ISD4.js +0 -46
  2498. package/dist/speech-provider-BHjDbut-.js +0 -190
  2499. package/dist/speech-provider-D45m9grJ.js +0 -154
  2500. package/dist/speech-provider-DM1ZXsz2.js +0 -385
  2501. package/dist/speech-runtime-CNvOkPw4.js +0 -34
  2502. package/dist/src-Dn1TYXp6.js +0 -2739
  2503. package/dist/ssh-config-C1ipLHgq.js +0 -77
  2504. package/dist/ssh-tunnel-BwMCLc2e.js +0 -159
  2505. package/dist/ssh-tunnel-D5YdH2SQ.js +0 -2
  2506. package/dist/ssrf-Duye12M_.js +0 -246
  2507. package/dist/ssrf-policy-5L7qS2kK.js +0 -69
  2508. package/dist/ssrf-runtime-bpDM5Bgo.js +0 -5
  2509. package/dist/stable-node-path-n7TARbHZ.js +0 -32
  2510. package/dist/stage-sandbox-media.runtime-Tlgx4F6M.js +0 -229
  2511. package/dist/stage-sandbox-media.runtime.js +0 -1
  2512. package/dist/stagger-Cs-6sySM.js +0 -54
  2513. package/dist/startup-verification-DS8Rlwfj.js +0 -131
  2514. package/dist/state-migrations-ssGF0Trg.js +0 -845
  2515. package/dist/state-paths-LoYjHd5L.js +0 -2
  2516. package/dist/status-B7yRr4OV.js +0 -3
  2517. package/dist/status-BM1Lyqo6.js +0 -261
  2518. package/dist/status-BekOC_tW.js +0 -650
  2519. package/dist/status-CxodlqzZ.js +0 -2
  2520. package/dist/status-DHbl5eIj.js +0 -608
  2521. package/dist/status-PsQV2sfU.js +0 -44
  2522. package/dist/status-all-C53a3881.js +0 -798
  2523. package/dist/status-helpers-CCJSSrVJ.js +0 -170
  2524. package/dist/status-issues-M-RUxHvm.js +0 -336
  2525. package/dist/status-issues-qWKbW6r2.js +0 -187
  2526. package/dist/status-json-B66tF12J.js +0 -86
  2527. package/dist/status.agent-local-B8Sw_p6M.js +0 -59
  2528. package/dist/status.command.text-runtime-csZS5yHm.js +0 -18
  2529. package/dist/status.daemon-D0GzvHft.js +0 -25
  2530. package/dist/status.format-C1VNrTBi.js +0 -44
  2531. package/dist/status.gateway-probe-4INUEsUo.js +0 -15
  2532. package/dist/status.link-channel-CJtR5UX6.js +0 -35
  2533. package/dist/status.node-mode-Bva3wbBI.js +0 -2
  2534. package/dist/status.node-mode-CneoXHPW.js +0 -32
  2535. package/dist/status.scan-t1kfm4e0.js +0 -264
  2536. package/dist/status.scan.deps.runtime-CCaTJlzV.js +0 -18
  2537. package/dist/status.scan.deps.runtime.js +0 -1
  2538. package/dist/status.scan.fast-json-DmzN3HuU.js +0 -97
  2539. package/dist/status.scan.fast-json-gu6uL_BR.js +0 -2
  2540. package/dist/status.scan.json-core-JjMIy9YZ.js +0 -254
  2541. package/dist/status.scan.runtime-r_5mTC8f.js +0 -9
  2542. package/dist/status.scan.runtime.js +0 -1
  2543. package/dist/status.service-summary-DnbDBXMs.js +0 -32
  2544. package/dist/status.summary-CbEhZE0h.js +0 -210
  2545. package/dist/status.summary-SLm6uT22.js +0 -2
  2546. package/dist/status.update-Bw9CvcCc.js +0 -2
  2547. package/dist/status.update-CLnevxJb.js +0 -79
  2548. package/dist/sticker-cache-C_FrWgaA.js +0 -1573
  2549. package/dist/sticker-vision.runtime-DR7e08nD.js +0 -16
  2550. package/dist/sticker-vision.runtime.js +0 -1
  2551. package/dist/storage-CPQLpmgN.js +0 -234
  2552. package/dist/storage-paths-DvC4vQo1.js +0 -51
  2553. package/dist/store-8ONMiMTI.js +0 -365
  2554. package/dist/store-DQJZr0Yf.js +0 -767
  2555. package/dist/store-Dxcm2vsw.js +0 -140
  2556. package/dist/store-_OZh8RrM.js +0 -1343
  2557. package/dist/store-read-JHUhrL0Z.js +0 -16
  2558. package/dist/store.runtime-Dmqv-8M7.js +0 -2
  2559. package/dist/store.runtime.js +0 -1
  2560. package/dist/stream-CGrFe0j0.js +0 -123
  2561. package/dist/stream-D9HOuZmn.js +0 -633
  2562. package/dist/stream-Di_JOWoE.js +0 -180
  2563. package/dist/stream-wrappers-D-DlMIYG.js +0 -136
  2564. package/dist/string-normalization-Ddc4JXRe.js +0 -19
  2565. package/dist/string-normalization-runtime-CCsvs1ds.js +0 -1
  2566. package/dist/string-sample-BIWt11jp.js +0 -11
  2567. package/dist/strip-inbound-meta-DvHTlpJG.js +0 -155
  2568. package/dist/subagent-orphan-recovery-Do8Az2RD.js +0 -206
  2569. package/dist/subagent-registry-runtime-D5PNyCsh.js +0 -2
  2570. package/dist/subcli-descriptors-Dasenv4J.js +0 -151
  2571. package/dist/subsystem-C9VSlEcV.js +0 -582
  2572. package/dist/supervisor-log.runtime-CZe76kAj.js +0 -8
  2573. package/dist/supervisor-log.runtime.js +0 -1
  2574. package/dist/system-cli-2-HDh_Ev.js +0 -58
  2575. package/dist/system-events-5SDw3lix.js +0 -93
  2576. package/dist/system-events-BuGmSpuG.js +0 -34
  2577. package/dist/system-message-0oem5MWV.js +0 -16
  2578. package/dist/system-run-command-BmlO5dn2.js +0 -301
  2579. package/dist/systemd-B2HBHMpF.js +0 -588
  2580. package/dist/systemd-hints-DkRlAuPR.js +0 -325
  2581. package/dist/systemd-linger-BBPBJSm0.js +0 -68
  2582. package/dist/systemd-linger-DiWO9n2E.js +0 -2
  2583. package/dist/table-CY2XIg3l.js +0 -305
  2584. package/dist/tables-D6qL6k4d.js +0 -832
  2585. package/dist/tailnet-CZMxMuGK.js +0 -76
  2586. package/dist/tailscale-mpS_cTve.js +0 -238
  2587. package/dist/tailscale-status-Dg2Iov5f.js +0 -71
  2588. package/dist/target-errors-ThNFqo8X.js +0 -26
  2589. package/dist/target-ids-O3O6piTN.js +0 -76
  2590. package/dist/target-parsing-Boyj_2v0.js +0 -41
  2591. package/dist/target-registry-BHJcVSo1.js +0 -1269
  2592. package/dist/targets-C7I_wjs2.js +0 -283
  2593. package/dist/targets-CZA632lq.js +0 -39
  2594. package/dist/targets-Dz1dx4G8.js +0 -78
  2595. package/dist/targets-Zd0-pJu7.js +0 -748
  2596. package/dist/targets-krmeAAxz.js +0 -70
  2597. package/dist/task-registry-delivery-runtime-BnkUa6Mp.js +0 -2
  2598. package/dist/task-registry.audit-DbCRt5MR.js +0 -320
  2599. package/dist/task-registry.audit.shared-SH4MOLKM.js +0 -18
  2600. package/dist/task-registry.maintenance-DfZmDWog.js +0 -2
  2601. package/dist/task-registry.summary-SoFiECCc.js +0 -44
  2602. package/dist/tavily-search-provider-BCY1kfQB.js +0 -227
  2603. package/dist/telegram/audit.js +0 -2
  2604. package/dist/telegram/token.js +0 -2
  2605. package/dist/telegram-Cq20PSxw.js +0 -23
  2606. package/dist/telegram-account-vRRwyfuA.js +0 -11
  2607. package/dist/telegram-command-config-BiHhXScJ.js +0 -1
  2608. package/dist/telegram-core-DTJayyAj.js +0 -6
  2609. package/dist/telegram-custom-commands-C-nv8yoB.js +0 -75
  2610. package/dist/temp-download-Ccatr7zI.js +0 -62
  2611. package/dist/temp-path-JU2kkd64.js +0 -2
  2612. package/dist/templating-Bu436Euy.js +0 -24
  2613. package/dist/testing-BrrgubIp.js +0 -690
  2614. package/dist/text-chunking-BTs2yTSd.js +0 -12
  2615. package/dist/text-chunking-ByXwyFNP.js +0 -20
  2616. package/dist/text-format-lEYRGxj5.js +0 -8
  2617. package/dist/text-runtime-D9ApM_8O.js +0 -398
  2618. package/dist/theme-Bb-qluq6.js +0 -2
  2619. package/dist/theme-wBMZmJzz.js +0 -34
  2620. package/dist/thinking-Dga2zdtd.js +0 -68
  2621. package/dist/thinking.shared-D6IkoLJU.js +0 -243
  2622. package/dist/thread-bindings-BMnz7w-V.js +0 -219
  2623. package/dist/thread-bindings-BbQWOcMr.js +0 -352
  2624. package/dist/thread-bindings-Bv0I9sBY.js +0 -534
  2625. package/dist/thread-bindings-C3jMrVvp.js +0 -778
  2626. package/dist/thread-bindings-policy-Br8s4hQ6.js +0 -172
  2627. package/dist/thread-bindings-runtime-CbG63N4N.js +0 -2
  2628. package/dist/thread-bindings-shared-DjSYaoHi.js +0 -95
  2629. package/dist/thread-bindings.discord-api-NFR5qsWt.js +0 -487
  2630. package/dist/thread-ownership-DG810AQi.js +0 -3
  2631. package/dist/threading-1Z_3y_Dp.js +0 -2
  2632. package/dist/threading-Hl8nWez6.js +0 -832
  2633. package/dist/threading-helpers-BpqyeyAU.js +0 -14
  2634. package/dist/threading-tool-context-DxV30qIW.js +0 -157
  2635. package/dist/timeouts-B1NiHSGi.js +0 -74
  2636. package/dist/tlon-C54Qojl0.js +0 -20
  2637. package/dist/tmp-openclaw-dir-B44_vmJv.js +0 -102
  2638. package/dist/token-BlUJQi_X.js +0 -2
  2639. package/dist/token-CDYFJvj8.js +0 -82
  2640. package/dist/token-kCjtGElJ.js +0 -45
  2641. package/dist/tokens-C2f9Klbt.js +0 -66
  2642. package/dist/tool-actions.runtime-aB0DgLk7.js +0 -532
  2643. package/dist/tool-actions.runtime.js +0 -1
  2644. package/dist/tool-display-C7h9IZa_.js +0 -1607
  2645. package/dist/tool-images-BDUvc_pd.js +0 -270
  2646. package/dist/tool-mutation-DIBpIegg.js +0 -140
  2647. package/dist/tool-policy-FUm_F19C.js +0 -515
  2648. package/dist/tool-policy-match-CCFHTsu9.js +0 -49
  2649. package/dist/tool-send-DClM4vsZ.js +0 -16
  2650. package/dist/tools-54j1hYBv.js +0 -123
  2651. package/dist/tools-effective-inventory-C09suj6-.js +0 -148
  2652. package/dist/tools.runtime-VBFxIXC8.js +0 -4
  2653. package/dist/tools.runtime.js +0 -1
  2654. package/dist/transcript-events-Dc7U5QmQ.js +0 -29
  2655. package/dist/transport-ready-Cje3USX4.js +0 -36
  2656. package/dist/tts-CTM9C09A.js +0 -2
  2657. package/dist/tts-Ck_K3tIi.js +0 -84
  2658. package/dist/tts-auto-mode-bD-u2biE.js +0 -14
  2659. package/dist/tts-bTuorllO.js +0 -102
  2660. package/dist/tts-eOLiJF6d.js +0 -29
  2661. package/dist/tts.runtime-ChTwy0yH.js +0 -3
  2662. package/dist/tts.runtime.js +0 -1
  2663. package/dist/tui-CrM-Bz3i.js +0 -3899
  2664. package/dist/tui-cli-aVL5aPGw.js +0 -31
  2665. package/dist/twitch-CFFlkhYG.js +0 -15
  2666. package/dist/typebox-DmerPHaM.js +0 -22
  2667. package/dist/types-BzNSmNk3.js +0 -12
  2668. package/dist/types-DAzqpvqD.js +0 -83
  2669. package/dist/types-DVJVELY7.js +0 -471
  2670. package/dist/types-DqNppUoh.js +0 -15
  2671. package/dist/types.secrets-BpcqHPAv.js +0 -80
  2672. package/dist/types.tools-BTQL6INB.js +0 -22
  2673. package/dist/typing-BnCchGtL.js +0 -8
  2674. package/dist/typing-Bugg5LPP.js +0 -68
  2675. package/dist/typing-J_ktpWeA.js +0 -2
  2676. package/dist/typing-mode-DDYL_0TG.js +0 -75
  2677. package/dist/typing-policy-CaZhrM-F.js +0 -11
  2678. package/dist/typing-start-guard-Cgjgzy5e.js +0 -73
  2679. package/dist/ui-BLDY9-7R.js +0 -212
  2680. package/dist/undici-global-dispatcher-CcNdQ7Dt.js +0 -99
  2681. package/dist/unhandled-rejections-CA_e1R-O.js +0 -2
  2682. package/dist/unhandled-rejections-V7U9keRG.js +0 -241
  2683. package/dist/update-CcALvtl_.js +0 -1253
  2684. package/dist/update-channels-Dn1F57Kf.js +0 -78
  2685. package/dist/update-check-CoDVxy35.js +0 -354
  2686. package/dist/update-cli-BWOYy_Mp.js +0 -1447
  2687. package/dist/update-offset-store-BLZmshZE.js +0 -75
  2688. package/dist/usage-CC7-wLUi.js +0 -39
  2689. package/dist/usage-format-C7nMV1jc.js +0 -513
  2690. package/dist/utils-CN_F_3Qg.js +0 -243
  2691. package/dist/utils-Cgw9Y0-Q.js +0 -2
  2692. package/dist/validation-BNNAUmDO.js +0 -18521
  2693. package/dist/verification-B4ogZ29M.js +0 -130
  2694. package/dist/verification-B99uVIxo.js +0 -2
  2695. package/dist/version-BNzJ37Re.js +0 -79
  2696. package/dist/version-Dw0eJ-1F.js +0 -2
  2697. package/dist/voice-call-Dt6m6oA3.js +0 -4
  2698. package/dist/wait-YXJvtMmp.js +0 -7
  2699. package/dist/warning-filter-GX8LpGKz.js +0 -57
  2700. package/dist/web-fetch-utils-CoVia2ez.js +0 -413
  2701. package/dist/web-media-D9opLz21.js +0 -2
  2702. package/dist/web-media-DHlguFej.js +0 -339
  2703. package/dist/web-search-BcSDWJK9.js +0 -169
  2704. package/dist/web-search-providers-CqY6CVp3.js +0 -21
  2705. package/dist/web-search-providers.runtime-BHjzPQW-.js +0 -113
  2706. package/dist/web-search-providers.runtime.js +0 -1
  2707. package/dist/web-search-providers.shared-CMeQec8y.js +0 -421
  2708. package/dist/web-search-shared-B5mHm7QD.js +0 -87
  2709. package/dist/webhook-ingress-CTl81NUR.js +0 -164
  2710. package/dist/webhook-memory-guards-B6k3g-po.js +0 -129
  2711. package/dist/webhook-path-CklCw5kp.js +0 -22
  2712. package/dist/webhook-request-guards-CxDPmU9e.js +0 -178
  2713. package/dist/webhook-shared-Bw9wLe6L.js +0 -370
  2714. package/dist/webhooks-cli-DPRITERU.js +0 -326
  2715. package/dist/whatsapp-CSzf1Nu0.js +0 -5
  2716. package/dist/whatsapp-D18Otn45.js +0 -30
  2717. package/dist/whatsapp-auth-presence-B5GZUgTA.js +0 -41
  2718. package/dist/whatsapp-core-Be0P_p4R.js +0 -7
  2719. package/dist/whatsapp-heartbeat-a2-OB01n.js +0 -85
  2720. package/dist/whatsapp-shared-ChjLiMDw.js +0 -56
  2721. package/dist/whatsapp-shared-FR_Jw-NH.js +0 -4
  2722. package/dist/whatsapp-surface-Dwrfi_SD.js +0 -26
  2723. package/dist/whatsapp-targets-59A3BDBi.js +0 -13
  2724. package/dist/widearea-dns-CfQt6b3q.js +0 -125
  2725. package/dist/windows-argv-DDAf3waz.js +0 -345
  2726. package/dist/windows-install-roots-XI3CvO9O.js +0 -149
  2727. package/dist/windows-spawn-DKvkg_66.js +0 -154
  2728. package/dist/with-timeout-B2smrGj0.js +0 -214
  2729. package/dist/with-timeout-BmJKiOMd.js +0 -13
  2730. package/dist/workflow-summary-BMvffn8D.js +0 -2
  2731. package/dist/workflow-summary-NvN5lUvK.js +0 -167
  2732. package/dist/workspace-D5P9nuJd.js +0 -479
  2733. package/dist/workspace-D5UiPYKk.js +0 -306
  2734. package/dist/workspace-dirs-CRv8Jwfz.js +0 -13
  2735. package/dist/ws-97FEIc7w.js +0 -11
  2736. package/dist/ws-log-BaAOgG9m.js +0 -281
  2737. package/dist/ws-logging-M92fgmyp.js +0 -10
  2738. package/dist/wsl-ytdRZp54.js +0 -57
  2739. package/dist/x-search-FsMNZ7d0.js +0 -166
  2740. package/dist/x-search-shared-D0tVMJk9.js +0 -124
  2741. package/dist/zalo-CNoa7XH7.js +0 -13
  2742. package/dist/zalo-js-HktBGDbg.js +0 -1156
  2743. package/dist/zalo-setup-BT-xGElf.js +0 -14
  2744. package/dist/zalouser-TwyfhIYz.js +0 -22
  2745. package/dist/zod-1Wegy5nx.js +0 -7
  2746. package/dist/zod-parse-HlGwTZP3.js +0 -14
  2747. package/dist/zod-schema.agent-runtime-DFC7a3eV.js +0 -602
  2748. package/dist/zod-schema.core-C1Ewlj9j.js +0 -520
  2749. package/dist/zod-schema.providers-core-Bmbs-R4l.js +0 -1541
  2750. package/dist/zod-schema.providers-whatsapp-CanJPkvb.js +0 -132
  2751. package/dist/zod-schema.sensitive-DEzKzMxI.js +0 -5
@@ -1,3622 +0,0 @@
1
- import { d as resolveThreadSessionKeys, u as resolveAgentIdFromSessionKey } from "./session-key-Do__tq1E.js";
2
- import { n as formatAllowlistMatchMeta } from "./allowlist-match-Dm6AqFEs.js";
3
- import { n as writeJsonFileAtomically, t as readJsonFileWithFallback } from "./json-store-FUgu1pyj.js";
4
- import { r as getSessionBindingService } from "./session-binding-service-D7bUc7mS.js";
5
- import { a as warnMissingProviderGroupPolicyFallbackOnce, n as resolveAllowlistProviderRuntimeGroupPolicy, r as resolveDefaultGroupPolicy, t as GROUP_POLICY_BLOCKED_LABEL } from "./runtime-group-policy-zTp8fKRK.js";
6
- import { t as resolveAckReaction } from "./identity-DvwF6Yix.js";
7
- import { a as buildExecApprovalPendingReplyPayload, c as getExecApprovalApproverDmNoticeText } from "./exec-approval-reply-CFOEcmIv.js";
8
- import { r as getAgentScopedMediaLocalRoots } from "./local-roots-DrpNBv4b.js";
9
- import { n as deriveLastRoutePolicy } from "./resolve-route-EE8E7OAF.js";
10
- import { c as resolveThreadBindingIdleTimeoutMsForChannel, d as resolveThreadBindingMaxAgeMsForChannel } from "./thread-bindings-policy-Br8s4hQ6.js";
11
- import "./routing-BVt9nMN-.js";
12
- import { n as resolveControlCommandGate } from "./command-gating-NyDk7t84.js";
13
- import { a as patchAllowlistUsersInConfigEntries, n as buildAllowlistResolutionSummary, o as summarizeMapping, r as canonicalizeAllowlistWithResolvedIds, t as addAllowlistUserEntriesFromConfigEntry } from "./resolve-utils-ClmKSkEQ.js";
14
- import { o as resolveExecApprovalCommandDisplay } from "./exec-approval-session-target-BbsAlD1Q.js";
15
- import "./approval-runtime-DIA8ohXa.js";
16
- import { t as createChannelNativeApprovalRuntime } from "./approval-native-runtime-2AVlvrdL.js";
17
- import { t as resolveChannelContextVisibilityMode } from "./context-visibility-DTMZdcAH.js";
18
- import "./config-runtime-ngoccXmP.js";
19
- import { n as createReplyPrefixOptions } from "./reply-prefix-Eema_xXG.js";
20
- import { t as createTypingCallbacks } from "./typing-Bugg5LPP.js";
21
- import "./infra-runtime-Cl0iZpRS.js";
22
- import "./conversation-runtime-bArk0IjJ.js";
23
- import { i as resolveConfiguredAcpBindingRecord, t as ensureConfiguredAcpBindingReady } from "./persistent-bindings.lifecycle-CAOm8v8I.js";
24
- import "./security-runtime-BSQDlFPi.js";
25
- import { t as evaluateSupplementalContextVisibility } from "./context-visibility-vOvLMUrZ.js";
26
- import { n as logInboundDrop, r as logTypingFailure } from "./logging-ColPHIDT.js";
27
- import "./command-auth-tqFmaIaJ.js";
28
- import { n as toLocationContext, t as formatLocationText } from "./location-CtMHXE-d.js";
29
- import { c as createDraftStreamLoop } from "./channel-lifecycle-BnjeZxB6.js";
30
- import { s as resolveMatrixAccountConfig } from "./config-paths-DP5yXXo2.js";
31
- import { t as getMatrixRuntime } from "./runtime-CC1YDOst.js";
32
- import { i as resolveMatrixAccount, n as resolveConfiguredMatrixBotUserIds } from "./accounts-CO-lK8jJ.js";
33
- import "./runtime-api-Dzz1aWyq.js";
34
- import { a as shouldHandleMatrixExecApprovalRequest, c as normalizeMatrixUserId, i as isMatrixExecApprovalClientEnabled, l as resolveMatrixAllowListMatch, r as matrixNativeApprovalAdapter, s as normalizeMatrixAllowList, t as resolveMatrixRoomConfig } from "./rooms-B1IyUfuR.js";
35
- import { a as resolveMatrixTargetIdentity, t as isMatrixQualifiedUserId } from "./target-ids-O3O6piTN.js";
36
- import { t as isBunRuntime } from "./runtime-1phb9iVo.js";
37
- import { n as resolveMatrixAuth, r as resolveMatrixAuthContext } from "./config-DJ29sg5U.js";
38
- import { n as resolveMatrixStateFilePath } from "./storage-CPQLpmgN.js";
39
- import { n as LogService } from "./logger-Bc2lC3X3.js";
40
- import { i as resolveSharedMatrixClient, n as releaseSharedClientInstance } from "./shared-C1MrVu4M.js";
41
- import "./client-BFxjGELJ.js";
42
- import { t as resolveMatrixTargets } from "./resolve-targets-B1MvBWpT.js";
43
- import { a as sendMessageMatrix, c as sendSingleTextMessageMatrix, g as isPollStartType, h as isPollEventType, i as reactMatrixMessage, l as sendTypingMatrix, n as editMessageMatrix, p as formatPollAsText, r as prepareMatrixSingleText, s as sendReadReceiptMatrix, t as chunkMatrixText, v as parsePollStartContent } from "./send-B1YVZR_q.js";
44
- import { c as MATRIX_REACTION_EVENT_TYPE, d as extractMatrixReactionAnnotation, i as repairMatrixDirectRooms, r as promoteMatrixDirectRoomCandidate } from "./direct-management-DMp7MOnt.js";
45
- import { o as readJoinedMatrixMembers, r as isStrictDirectMembership, t as hasDirectMatrixMemberFlag } from "./direct-room-DYlSJOU_.js";
46
- import { t as createMatrixThreadBindingManager } from "./thread-bindings-BbQWOcMr.js";
47
- import { i as setActiveMatrixClient } from "./client-bootstrap-CFGCltAu.js";
48
- import { t as formatMatrixEncryptedEventDisabledWarning } from "./encryption-guidance-62xAQFP4.js";
49
- import { c as formatMatrixMediaUnavailableText, d as resolveMatrixMessageBody, l as formatMatrixMessageText, n as editMatrixMessage, p as fetchMatrixPollSnapshot, t as deleteMatrixMessage, u as resolveMatrixMessageAttachment } from "./messages-CQT2FDZ3.js";
50
- import { t as isMatrixNotFoundError } from "./errors-CjFsF-QY.js";
51
- import { t as createAsyncLock } from "./async-lock-QqhPYwhW.js";
52
- import { format } from "node:util";
53
- //#region extensions/matrix/src/exec-approvals-handler.ts
54
- function isHandlerConfigured(params) {
55
- return isMatrixExecApprovalClientEnabled(params);
56
- }
57
- function normalizeThreadId(value) {
58
- return (value == null ? "" : String(value).trim()) || void 0;
59
- }
60
- function buildPendingApprovalText(params) {
61
- return buildExecApprovalPendingReplyPayload({
62
- approvalId: params.request.id,
63
- approvalSlug: params.request.id.slice(0, 8),
64
- approvalCommandId: params.request.id,
65
- ask: params.request.request.ask ?? void 0,
66
- agentId: params.request.request.agentId ?? void 0,
67
- allowedDecisions: params.request.request.allowedDecisions,
68
- command: resolveExecApprovalCommandDisplay(params.request.request).commandText,
69
- cwd: params.request.request.cwd ?? void 0,
70
- host: params.request.request.host === "node" ? "node" : "gateway",
71
- nodeId: params.request.request.nodeId ?? void 0,
72
- sessionKey: params.request.request.sessionKey ?? void 0,
73
- expiresAtMs: params.request.expiresAtMs,
74
- nowMs: params.nowMs
75
- }).text;
76
- }
77
- function buildResolvedApprovalText(params) {
78
- const command = resolveExecApprovalCommandDisplay(params.request.request).commandText;
79
- return [
80
- `Exec approval: ${params.resolved.decision === "allow-once" ? "Allowed once" : params.resolved.decision === "allow-always" ? "Allowed always" : "Denied"}`,
81
- "",
82
- "Command",
83
- "```",
84
- command,
85
- "```"
86
- ].join("\n");
87
- }
88
- var MatrixExecApprovalHandler = class {
89
- constructor(opts, deps = {}) {
90
- this.opts = opts;
91
- this.nowMs = deps.nowMs ?? Date.now;
92
- this.sendMessage = deps.sendMessage ?? sendMessageMatrix;
93
- this.editMessage = deps.editMessage ?? editMatrixMessage;
94
- this.deleteMessage = deps.deleteMessage ?? deleteMatrixMessage;
95
- this.repairDirectRooms = deps.repairDirectRooms ?? repairMatrixDirectRooms;
96
- this.runtime = createChannelNativeApprovalRuntime({
97
- label: "matrix/exec-approvals",
98
- clientDisplayName: `Matrix Exec Approvals (${this.opts.accountId})`,
99
- cfg: this.opts.cfg,
100
- accountId: this.opts.accountId,
101
- gatewayUrl: this.opts.gatewayUrl,
102
- eventKinds: ["exec"],
103
- nowMs: this.nowMs,
104
- nativeAdapter: matrixNativeApprovalAdapter.native,
105
- isConfigured: () => isHandlerConfigured({
106
- cfg: this.opts.cfg,
107
- accountId: this.opts.accountId
108
- }),
109
- shouldHandle: (request) => shouldHandleMatrixExecApprovalRequest({
110
- cfg: this.opts.cfg,
111
- accountId: this.opts.accountId,
112
- request
113
- }),
114
- buildPendingContent: ({ request, nowMs }) => buildPendingApprovalText({
115
- request,
116
- nowMs
117
- }),
118
- sendOriginNotice: async ({ originTarget }) => {
119
- const preparedTarget = await this.prepareTarget(originTarget);
120
- if (!preparedTarget) return;
121
- await this.sendMessage(preparedTarget.to, getExecApprovalApproverDmNoticeText(), {
122
- cfg: this.opts.cfg,
123
- accountId: this.opts.accountId,
124
- client: this.opts.client,
125
- threadId: preparedTarget.threadId
126
- });
127
- },
128
- prepareTarget: async ({ plannedTarget }) => {
129
- const preparedTarget = await this.prepareTarget(plannedTarget.target);
130
- if (!preparedTarget) return null;
131
- return {
132
- dedupeKey: `${preparedTarget.roomId}:${preparedTarget.threadId ?? ""}`,
133
- target: preparedTarget
134
- };
135
- },
136
- deliverTarget: async ({ preparedTarget, pendingContent }) => {
137
- const result = await this.sendMessage(preparedTarget.to, pendingContent, {
138
- cfg: this.opts.cfg,
139
- accountId: this.opts.accountId,
140
- client: this.opts.client,
141
- threadId: preparedTarget.threadId
142
- });
143
- return {
144
- roomId: result.roomId,
145
- messageId: result.messageId
146
- };
147
- },
148
- finalizeResolved: async ({ request, resolved, entries }) => {
149
- await this.finalizeResolved(request, resolved, entries);
150
- },
151
- finalizeExpired: async ({ entries }) => {
152
- await this.clearPending(entries);
153
- }
154
- });
155
- }
156
- async start() {
157
- await this.runtime.start();
158
- }
159
- async stop() {
160
- await this.runtime.stop();
161
- }
162
- async handleRequested(request) {
163
- await this.runtime.handleRequested(request);
164
- }
165
- async handleResolved(resolved) {
166
- await this.runtime.handleResolved(resolved);
167
- }
168
- async prepareTarget(rawTarget) {
169
- const target = resolveMatrixTargetIdentity(rawTarget.to);
170
- if (!target) return null;
171
- const threadId = normalizeThreadId(rawTarget.threadId);
172
- if (target.kind === "user") {
173
- const account = resolveMatrixAccount({
174
- cfg: this.opts.cfg,
175
- accountId: this.opts.accountId
176
- });
177
- const repaired = await this.repairDirectRooms({
178
- client: this.opts.client,
179
- remoteUserId: target.id,
180
- encrypted: account.config.encryption === true
181
- });
182
- if (!repaired.activeRoomId) return null;
183
- return {
184
- to: `room:${repaired.activeRoomId}`,
185
- roomId: repaired.activeRoomId,
186
- threadId
187
- };
188
- }
189
- return {
190
- to: `room:${target.id}`,
191
- roomId: target.id,
192
- threadId
193
- };
194
- }
195
- async finalizeResolved(request, resolved, entries) {
196
- const text = buildResolvedApprovalText({
197
- request,
198
- resolved
199
- });
200
- await Promise.allSettled(entries.map(async (entry) => {
201
- await this.editMessage(entry.roomId, entry.messageId, text, {
202
- cfg: this.opts.cfg,
203
- accountId: this.opts.accountId,
204
- client: this.opts.client
205
- });
206
- }));
207
- }
208
- async clearPending(entries) {
209
- await Promise.allSettled(entries.map(async (entry) => {
210
- await this.deleteMessage(entry.roomId, entry.messageId, {
211
- cfg: this.opts.cfg,
212
- accountId: this.opts.accountId,
213
- client: this.opts.client,
214
- reason: "approval expired"
215
- });
216
- }));
217
- }
218
- };
219
- //#endregion
220
- //#region extensions/matrix/src/matrix/monitor/auto-join.ts
221
- function registerMatrixAutoJoin(params) {
222
- const { client, accountConfig, runtime } = params;
223
- const core = getMatrixRuntime();
224
- const logVerbose = (message) => {
225
- if (!core.logging.shouldLogVerbose()) return;
226
- runtime.log?.(message);
227
- };
228
- const autoJoin = accountConfig.autoJoin ?? "off";
229
- const rawAllowlist = (accountConfig.autoJoinAllowlist ?? []).map((entry) => String(entry).trim()).filter(Boolean);
230
- const autoJoinAllowlist = new Set(rawAllowlist);
231
- const allowedRoomIds = new Set(rawAllowlist.filter((entry) => entry.startsWith("!")));
232
- const allowedAliases = rawAllowlist.filter((entry) => entry.startsWith("#"));
233
- const resolvedAliasRoomIds = /* @__PURE__ */ new Map();
234
- if (autoJoin === "off") return;
235
- if (autoJoin === "always") logVerbose("matrix: auto-join enabled for all invites");
236
- else logVerbose("matrix: auto-join enabled for allowlist invites");
237
- const resolveAllowedAliasRoomId = async (alias) => {
238
- if (resolvedAliasRoomIds.has(alias)) return resolvedAliasRoomIds.get(alias) ?? null;
239
- const resolved = await params.client.resolveRoom(alias);
240
- if (resolved) resolvedAliasRoomIds.set(alias, resolved);
241
- return resolved;
242
- };
243
- const resolveAllowedAliasRoomIds = async () => {
244
- return (await Promise.all(allowedAliases.map(async (alias) => {
245
- try {
246
- return await resolveAllowedAliasRoomId(alias);
247
- } catch (err) {
248
- runtime.error?.(`matrix: failed resolving allowlisted alias ${alias}: ${String(err)}`);
249
- return null;
250
- }
251
- }))).filter((roomId) => Boolean(roomId));
252
- };
253
- client.on("room.invite", async (roomId, _inviteEvent) => {
254
- if (autoJoin === "allowlist") {
255
- const allowedAliasRoomIds = await resolveAllowedAliasRoomIds();
256
- if (!(autoJoinAllowlist.has("*") || allowedRoomIds.has(roomId) || allowedAliasRoomIds.some((resolvedRoomId) => resolvedRoomId === roomId))) {
257
- logVerbose(`matrix: invite ignored (not in allowlist) room=${roomId}`);
258
- return;
259
- }
260
- }
261
- try {
262
- await client.joinRoom(roomId);
263
- logVerbose(`matrix: joined room ${roomId}`);
264
- } catch (err) {
265
- runtime.error?.(`matrix: failed to join room ${roomId}: ${String(err)}`);
266
- }
267
- });
268
- }
269
- //#endregion
270
- //#region extensions/matrix/src/matrix/monitor/config.ts
271
- function normalizeMatrixUserLookupEntry(raw) {
272
- return raw.replace(/^matrix:/i, "").replace(/^user:/i, "").trim();
273
- }
274
- function normalizeMatrixRoomLookupEntry(raw) {
275
- return raw.replace(/^matrix:/i, "").replace(/^(room|channel):/i, "").trim();
276
- }
277
- function filterResolvedMatrixAllowlistEntries(entries) {
278
- return entries.filter((entry) => {
279
- const trimmed = entry.trim();
280
- if (!trimmed) return false;
281
- if (trimmed === "*") return true;
282
- return isMatrixQualifiedUserId(normalizeMatrixUserLookupEntry(trimmed));
283
- });
284
- }
285
- function sanitizeMatrixRoomUserAllowlists(entries) {
286
- const nextEntries = { ...entries };
287
- for (const [roomKey, roomConfig] of Object.entries(entries)) {
288
- const users = roomConfig?.users;
289
- if (!Array.isArray(users)) continue;
290
- nextEntries[roomKey] = {
291
- ...roomConfig,
292
- users: filterResolvedMatrixAllowlistEntries(users.map(String))
293
- };
294
- }
295
- return nextEntries;
296
- }
297
- async function resolveMatrixMonitorUserEntries(params) {
298
- const directMatches = [];
299
- const pending = [];
300
- for (const entry of params.entries) {
301
- const input = String(entry).trim();
302
- if (!input) continue;
303
- const query = normalizeMatrixUserLookupEntry(input);
304
- if (!query || query === "*") continue;
305
- if (isMatrixQualifiedUserId(query)) {
306
- directMatches.push({
307
- input,
308
- resolved: true,
309
- id: normalizeMatrixUserId(query)
310
- });
311
- continue;
312
- }
313
- pending.push({
314
- input,
315
- query
316
- });
317
- }
318
- (pending.length === 0 ? [] : await params.resolveTargets({
319
- cfg: params.cfg,
320
- accountId: params.accountId,
321
- inputs: pending.map((entry) => entry.query),
322
- kind: "user",
323
- runtime: params.runtime
324
- })).forEach((entry, index) => {
325
- const source = pending[index];
326
- if (!source) return;
327
- directMatches.push({
328
- input: source.input,
329
- resolved: entry.resolved,
330
- id: entry.id ? normalizeMatrixUserId(entry.id) : void 0
331
- });
332
- });
333
- return buildAllowlistResolutionSummary(directMatches);
334
- }
335
- async function resolveMatrixMonitorUserAllowlist(params) {
336
- const allowList = (params.list ?? []).map(String);
337
- if (allowList.length === 0) return allowList;
338
- const resolution = await resolveMatrixMonitorUserEntries({
339
- cfg: params.cfg,
340
- accountId: params.accountId,
341
- entries: allowList,
342
- runtime: params.runtime,
343
- resolveTargets: params.resolveTargets
344
- });
345
- const canonicalized = canonicalizeAllowlistWithResolvedIds({
346
- existing: allowList,
347
- resolvedMap: resolution.resolvedMap
348
- });
349
- summarizeMapping(params.label, resolution.mapping, resolution.unresolved, params.runtime);
350
- if (resolution.unresolved.length > 0) params.runtime.log?.(`${params.label} entries must be full Matrix IDs (example: @user:server). Unresolved entries are ignored.`);
351
- return filterResolvedMatrixAllowlistEntries(canonicalized);
352
- }
353
- async function resolveMatrixMonitorRoomsConfig(params) {
354
- const roomsConfig = params.roomsConfig;
355
- if (!roomsConfig || Object.keys(roomsConfig).length === 0) return roomsConfig;
356
- const mapping = [];
357
- const unresolved = [];
358
- const nextRooms = {};
359
- if (roomsConfig["*"]) nextRooms["*"] = roomsConfig["*"];
360
- const pending = [];
361
- for (const [entry, roomConfig] of Object.entries(roomsConfig)) {
362
- if (entry === "*") continue;
363
- const input = entry.trim();
364
- if (!input) continue;
365
- const cleaned = normalizeMatrixRoomLookupEntry(input);
366
- if (!cleaned) {
367
- unresolved.push(entry);
368
- continue;
369
- }
370
- if (cleaned.startsWith("!") && cleaned.includes(":")) {
371
- if (!nextRooms[cleaned]) nextRooms[cleaned] = roomConfig;
372
- if (cleaned !== input) mapping.push(`${input}→${cleaned}`);
373
- continue;
374
- }
375
- pending.push({
376
- input,
377
- query: cleaned,
378
- config: roomConfig
379
- });
380
- }
381
- if (pending.length > 0) (await params.resolveTargets({
382
- cfg: params.cfg,
383
- accountId: params.accountId,
384
- inputs: pending.map((entry) => entry.query),
385
- kind: "group",
386
- runtime: params.runtime
387
- })).forEach((entry, index) => {
388
- const source = pending[index];
389
- if (!source) return;
390
- if (entry.resolved && entry.id) {
391
- const roomKey = normalizeMatrixRoomLookupEntry(entry.id);
392
- if (!nextRooms[roomKey]) nextRooms[roomKey] = source.config;
393
- mapping.push(`${source.input}→${roomKey}`);
394
- } else unresolved.push(source.input);
395
- });
396
- summarizeMapping("matrix rooms", mapping, unresolved, params.runtime);
397
- if (unresolved.length > 0) params.runtime.log?.("matrix rooms must be room IDs or aliases (example: !room:server or #alias:server). Unresolved entries are ignored.");
398
- const roomUsers = /* @__PURE__ */ new Set();
399
- for (const roomConfig of Object.values(nextRooms)) addAllowlistUserEntriesFromConfigEntry(roomUsers, roomConfig);
400
- if (roomUsers.size === 0) return nextRooms;
401
- const resolution = await resolveMatrixMonitorUserEntries({
402
- cfg: params.cfg,
403
- accountId: params.accountId,
404
- entries: Array.from(roomUsers),
405
- runtime: params.runtime,
406
- resolveTargets: params.resolveTargets
407
- });
408
- summarizeMapping("matrix room users", resolution.mapping, resolution.unresolved, params.runtime);
409
- if (resolution.unresolved.length > 0) params.runtime.log?.("matrix room users entries must be full Matrix IDs (example: @user:server). Unresolved entries are ignored.");
410
- return sanitizeMatrixRoomUserAllowlists(patchAllowlistUsersInConfigEntries({
411
- entries: nextRooms,
412
- resolvedMap: resolution.resolvedMap,
413
- strategy: "canonicalize"
414
- }));
415
- }
416
- async function resolveMatrixMonitorConfig(params) {
417
- const resolveTargets = params.resolveTargets ?? resolveMatrixTargets;
418
- const [allowFrom, groupAllowFrom, roomsConfig] = await Promise.all([
419
- resolveMatrixMonitorUserAllowlist({
420
- cfg: params.cfg,
421
- accountId: params.accountId,
422
- label: "matrix dm allowlist",
423
- list: params.allowFrom,
424
- runtime: params.runtime,
425
- resolveTargets
426
- }),
427
- resolveMatrixMonitorUserAllowlist({
428
- cfg: params.cfg,
429
- accountId: params.accountId,
430
- label: "matrix group allowlist",
431
- list: params.groupAllowFrom,
432
- runtime: params.runtime,
433
- resolveTargets
434
- }),
435
- resolveMatrixMonitorRoomsConfig({
436
- cfg: params.cfg,
437
- accountId: params.accountId,
438
- roomsConfig: params.roomsConfig,
439
- runtime: params.runtime,
440
- resolveTargets
441
- })
442
- ]);
443
- return {
444
- allowFrom,
445
- groupAllowFrom,
446
- roomsConfig
447
- };
448
- }
449
- //#endregion
450
- //#region extensions/matrix/src/matrix/monitor/direct.ts
451
- const DM_CACHE_TTL_MS = 3e4;
452
- const RECENT_INVITE_TTL_MS = 3e4;
453
- const MAX_TRACKED_DM_ROOMS = 1024;
454
- const MAX_TRACKED_DM_MEMBER_FLAGS = 2048;
455
- function rememberBounded$1(map, key, value, maxSize = MAX_TRACKED_DM_ROOMS) {
456
- map.set(key, value);
457
- if (map.size > maxSize) {
458
- const oldest = map.keys().next().value;
459
- if (typeof oldest === "string") map.delete(oldest);
460
- }
461
- }
462
- function createDirectRoomTracker(client, opts = {}) {
463
- const log = opts.log ?? (() => {});
464
- let lastDmUpdateMs = 0;
465
- let hasSeededDmCache = false;
466
- let cachedSelfUserId = null;
467
- const joinedMembersCache = /* @__PURE__ */ new Map();
468
- const directMemberFlagCache = /* @__PURE__ */ new Map();
469
- const recentInviteCandidates = /* @__PURE__ */ new Map();
470
- const locallyPromotedDirectRooms = /* @__PURE__ */ new Map();
471
- const ensureSelfUserId = async () => {
472
- if (cachedSelfUserId) return cachedSelfUserId;
473
- try {
474
- cachedSelfUserId = await client.getUserId();
475
- } catch {
476
- cachedSelfUserId = null;
477
- }
478
- return cachedSelfUserId;
479
- };
480
- const refreshDmCache = async () => {
481
- const now = Date.now();
482
- if (now - lastDmUpdateMs < DM_CACHE_TTL_MS) return;
483
- lastDmUpdateMs = now;
484
- hasSeededDmCache = await client.dms.update() || hasSeededDmCache;
485
- };
486
- const resolveJoinedMembers = async (roomId) => {
487
- const cached = joinedMembersCache.get(roomId);
488
- const now = Date.now();
489
- if (cached && now - cached.ts < DM_CACHE_TTL_MS) return cached.members;
490
- try {
491
- const normalized = await readJoinedMatrixMembers(client, roomId);
492
- if (!normalized) throw new Error("membership unavailable");
493
- rememberBounded$1(joinedMembersCache, roomId, {
494
- members: normalized,
495
- ts: now
496
- });
497
- return normalized;
498
- } catch (err) {
499
- log(`matrix: dm member lookup failed room=${roomId} (${String(err)})`);
500
- return null;
501
- }
502
- };
503
- const resolveDirectMemberFlag = async (roomId, userId) => {
504
- const normalizedUserId = userId?.trim();
505
- if (!normalizedUserId) return null;
506
- const cacheKey = `${roomId}\n${normalizedUserId}`;
507
- const cached = directMemberFlagCache.get(cacheKey);
508
- const now = Date.now();
509
- if (cached && now - cached.ts < DM_CACHE_TTL_MS) return cached.isDirect;
510
- const isDirect = await hasDirectMatrixMemberFlag(client, roomId, normalizedUserId);
511
- rememberBounded$1(directMemberFlagCache, cacheKey, {
512
- isDirect,
513
- ts: now
514
- }, MAX_TRACKED_DM_MEMBER_FLAGS);
515
- return isDirect;
516
- };
517
- const hasRecentInviteCandidate = (roomId, remoteUserId) => {
518
- const normalizedRemoteUserId = remoteUserId?.trim();
519
- if (!normalizedRemoteUserId) return false;
520
- const cached = recentInviteCandidates.get(roomId);
521
- if (!cached) return false;
522
- if (Date.now() - cached.ts >= RECENT_INVITE_TTL_MS) {
523
- recentInviteCandidates.delete(roomId);
524
- return false;
525
- }
526
- return cached.remoteUserId === normalizedRemoteUserId;
527
- };
528
- const canPromoteRecentInvite = async (roomId) => {
529
- try {
530
- return await opts.canPromoteRecentInvite?.(roomId) ?? true;
531
- } catch (err) {
532
- log(`matrix: recent invite promotion veto failed room=${roomId} (${String(err)})`);
533
- return false;
534
- }
535
- };
536
- const shouldKeepLocallyPromotedDirectRoom = async (roomId) => {
537
- try {
538
- return await opts.shouldKeepLocallyPromotedDirectRoom?.(roomId);
539
- } catch (err) {
540
- log(`matrix: local promotion keep-check failed room=${roomId} (${String(err)})`);
541
- return;
542
- }
543
- };
544
- const hasLocallyPromotedDirectRoom = (roomId, remoteUserId) => {
545
- const normalizedRemoteUserId = remoteUserId?.trim();
546
- if (!normalizedRemoteUserId) return false;
547
- return locallyPromotedDirectRooms.get(roomId)?.remoteUserId === normalizedRemoteUserId;
548
- };
549
- const rememberLocallyPromotedDirectRoom = (roomId, remoteUserId) => {
550
- const normalizedRemoteUserId = remoteUserId.trim();
551
- if (!normalizedRemoteUserId) return;
552
- rememberBounded$1(locallyPromotedDirectRooms, roomId, { remoteUserId: normalizedRemoteUserId });
553
- };
554
- return {
555
- invalidateRoom: (roomId) => {
556
- joinedMembersCache.delete(roomId);
557
- for (const key of directMemberFlagCache.keys()) if (key.startsWith(`${roomId}\n`)) directMemberFlagCache.delete(key);
558
- lastDmUpdateMs = 0;
559
- log(`matrix: invalidated dm cache room=${roomId}`);
560
- },
561
- rememberInvite: (roomId, remoteUserId) => {
562
- const normalizedRemoteUserId = remoteUserId.trim();
563
- if (!normalizedRemoteUserId) return;
564
- rememberBounded$1(recentInviteCandidates, roomId, {
565
- remoteUserId: normalizedRemoteUserId,
566
- ts: Date.now()
567
- });
568
- log(`matrix: remembered invite candidate room=${roomId} sender=${normalizedRemoteUserId}`);
569
- },
570
- isDirectMessage: async (params) => {
571
- const { roomId, senderId } = params;
572
- const selfUserId = params.selfUserId ?? await ensureSelfUserId();
573
- const joinedMembers = await resolveJoinedMembers(roomId);
574
- const strictDirectMembership = isStrictDirectMembership({
575
- selfUserId,
576
- remoteUserId: senderId,
577
- joinedMembers
578
- });
579
- try {
580
- await refreshDmCache();
581
- } catch (err) {
582
- log(`matrix: dm cache refresh failed (${String(err)})`);
583
- }
584
- if (client.dms.isDm(roomId)) {
585
- if (strictDirectMembership) {
586
- log(`matrix: dm detected via m.direct room=${roomId}`);
587
- return true;
588
- }
589
- log(`matrix: ignoring stale m.direct classification room=${roomId}`);
590
- }
591
- if (strictDirectMembership) {
592
- const directViaSelf = await resolveDirectMemberFlag(roomId, selfUserId);
593
- if (directViaSelf === true) {
594
- log(`matrix: dm detected via member state room=${roomId}`);
595
- return true;
596
- }
597
- if (directViaSelf === false) {
598
- log(`matrix: dm rejected via member state room=${roomId}`);
599
- return false;
600
- }
601
- if (!hasSeededDmCache) {
602
- log(`matrix: dm detected via exact 2-member fallback before dm cache seed room=${roomId}`);
603
- return true;
604
- }
605
- if (hasLocallyPromotedDirectRoom(roomId, senderId)) {
606
- if (await shouldKeepLocallyPromotedDirectRoom(roomId) !== false) {
607
- log(`matrix: dm detected via local promotion room=${roomId}`);
608
- return true;
609
- }
610
- locallyPromotedDirectRooms.delete(roomId);
611
- log(`matrix: local promotion cleared room=${roomId}`);
612
- }
613
- if (hasRecentInviteCandidate(roomId, senderId) && await canPromoteRecentInvite(roomId)) {
614
- const promotion = await promoteMatrixDirectRoomCandidate({
615
- client,
616
- remoteUserId: senderId ?? "",
617
- roomId,
618
- selfUserId
619
- });
620
- if (promotion.classifyAsDirect) {
621
- rememberLocallyPromotedDirectRoom(roomId, senderId ?? "");
622
- log(`matrix: dm detected via recent invite room=${roomId} reason=${promotion.reason} repaired=${String(promotion.repaired)}`);
623
- return true;
624
- }
625
- }
626
- }
627
- log(`matrix: dm check room=${roomId} result=group members=${joinedMembers?.length ?? "unknown"}`);
628
- return false;
629
- }
630
- };
631
- }
632
- //#endregion
633
- //#region extensions/matrix/src/matrix/monitor/types.ts
634
- const EventType = {
635
- RoomMessage: "m.room.message",
636
- RoomMessageEncrypted: "m.room.encrypted",
637
- RoomMember: "m.room.member",
638
- Location: "m.location",
639
- Reaction: MATRIX_REACTION_EVENT_TYPE
640
- };
641
- const RelationType = {
642
- Replace: "m.replace",
643
- Thread: "m.thread"
644
- };
645
- //#endregion
646
- //#region extensions/matrix/src/matrix/monitor/access-state.ts
647
- function resolveMatrixMonitorAccessState(params) {
648
- const effectiveAllowFrom = normalizeMatrixAllowList([...params.allowFrom, ...params.storeAllowFrom]);
649
- const effectiveGroupAllowFrom = normalizeMatrixAllowList(params.groupAllowFrom);
650
- const effectiveRoomUsers = normalizeMatrixAllowList(params.roomUsers);
651
- const directAllowMatch = resolveMatrixAllowListMatch({
652
- allowList: effectiveAllowFrom,
653
- userId: params.senderId
654
- });
655
- const roomUserMatch = params.isRoom && effectiveRoomUsers.length > 0 ? resolveMatrixAllowListMatch({
656
- allowList: effectiveRoomUsers,
657
- userId: params.senderId
658
- }) : null;
659
- const groupAllowMatch = effectiveGroupAllowFrom.length > 0 ? resolveMatrixAllowListMatch({
660
- allowList: effectiveGroupAllowFrom,
661
- userId: params.senderId
662
- }) : null;
663
- return {
664
- effectiveAllowFrom,
665
- effectiveGroupAllowFrom,
666
- effectiveRoomUsers,
667
- groupAllowConfigured: effectiveGroupAllowFrom.length > 0,
668
- directAllowMatch,
669
- roomUserMatch,
670
- groupAllowMatch,
671
- commandAuthorizers: [
672
- {
673
- configured: effectiveAllowFrom.length > 0,
674
- allowed: directAllowMatch.allowed
675
- },
676
- {
677
- configured: effectiveRoomUsers.length > 0,
678
- allowed: roomUserMatch?.allowed ?? false
679
- },
680
- {
681
- configured: effectiveGroupAllowFrom.length > 0,
682
- allowed: groupAllowMatch?.allowed ?? false
683
- }
684
- ]
685
- };
686
- }
687
- //#endregion
688
- //#region extensions/matrix/src/matrix/monitor/verification-utils.ts
689
- const VERIFICATION_EVENT_PREFIX = "m.key.verification.";
690
- const VERIFICATION_REQUEST_MSGTYPE = "m.key.verification.request";
691
- const VERIFICATION_NOTICE_PREFIXES = [
692
- "Matrix verification request received from ",
693
- "Matrix verification is ready with ",
694
- "Matrix verification started with ",
695
- "Matrix verification completed with ",
696
- "Matrix verification cancelled by ",
697
- "Matrix verification SAS with "
698
- ];
699
- function trimMaybeString$1(input) {
700
- return typeof input === "string" ? input.trim() : "";
701
- }
702
- function isMatrixVerificationEventType(type) {
703
- return trimMaybeString$1(type).startsWith(VERIFICATION_EVENT_PREFIX);
704
- }
705
- function isMatrixVerificationRequestMsgType(msgtype) {
706
- return trimMaybeString$1(msgtype) === VERIFICATION_REQUEST_MSGTYPE;
707
- }
708
- function isMatrixVerificationNoticeBody(body) {
709
- const text = trimMaybeString$1(body);
710
- return VERIFICATION_NOTICE_PREFIXES.some((prefix) => text.startsWith(prefix));
711
- }
712
- function isMatrixVerificationRoomMessage(content) {
713
- return isMatrixVerificationRequestMsgType(content.msgtype) || trimMaybeString$1(content.msgtype) === "m.notice" && isMatrixVerificationNoticeBody(content.body);
714
- }
715
- const matrixVerificationConstants = {
716
- eventPrefix: VERIFICATION_EVENT_PREFIX,
717
- requestMsgtype: VERIFICATION_REQUEST_MSGTYPE
718
- };
719
- //#endregion
720
- //#region extensions/matrix/src/matrix/monitor/verification-events.ts
721
- const MAX_TRACKED_VERIFICATION_EVENTS = 1024;
722
- const SAS_NOTICE_RETRY_DELAY_MS = 750;
723
- const VERIFICATION_EVENT_STARTUP_GRACE_MS = 3e4;
724
- let matrixDirectRoomDepsPromise;
725
- async function loadMatrixDirectRoomDeps() {
726
- matrixDirectRoomDepsPromise ??= Promise.all([import("./direct-management-DEtuCcDL.js"), import("./direct-room-ARYWsCbX.js")]).then(([directManagementModule, directRoomModule]) => ({
727
- inspectMatrixDirectRooms: directManagementModule.inspectMatrixDirectRooms,
728
- isStrictDirectRoom: directRoomModule.isStrictDirectRoom
729
- }));
730
- return await matrixDirectRoomDepsPromise;
731
- }
732
- function trimMaybeString(input) {
733
- if (typeof input !== "string") return null;
734
- const trimmed = input.trim();
735
- return trimmed.length > 0 ? trimmed : null;
736
- }
737
- function readVerificationSignal(event) {
738
- const type = trimMaybeString(event?.type) ?? "";
739
- const content = event?.content ?? {};
740
- const msgtype = trimMaybeString(content.msgtype) ?? "";
741
- const relatedEventId = trimMaybeString(content["m.relates_to"]?.event_id);
742
- const transactionId = trimMaybeString(content.transaction_id);
743
- if (type === EventType.RoomMessage && isMatrixVerificationRequestMsgType(msgtype)) return {
744
- stage: "request",
745
- flowId: trimMaybeString(event.event_id) ?? transactionId ?? relatedEventId
746
- };
747
- if (!isMatrixVerificationEventType(type)) return null;
748
- const flowId = transactionId ?? relatedEventId ?? trimMaybeString(event.event_id);
749
- if (type === `${matrixVerificationConstants.eventPrefix}request`) return {
750
- stage: "request",
751
- flowId
752
- };
753
- if (type === `${matrixVerificationConstants.eventPrefix}ready`) return {
754
- stage: "ready",
755
- flowId
756
- };
757
- if (type === "m.key.verification.start") return {
758
- stage: "start",
759
- flowId
760
- };
761
- if (type === "m.key.verification.cancel") return {
762
- stage: "cancel",
763
- flowId
764
- };
765
- if (type === "m.key.verification.done") return {
766
- stage: "done",
767
- flowId
768
- };
769
- return {
770
- stage: "other",
771
- flowId
772
- };
773
- }
774
- function formatVerificationStageNotice(params) {
775
- const { stage, senderId, event } = params;
776
- const content = event.content;
777
- switch (stage) {
778
- case "request": return `Matrix verification request received from ${senderId}. Open "Verify by emoji" in your Matrix client to continue.`;
779
- case "ready": return `Matrix verification is ready with ${senderId}. Choose "Verify by emoji" to reveal the emoji sequence.`;
780
- case "start": return `Matrix verification started with ${senderId}.`;
781
- case "done": return `Matrix verification completed with ${senderId}.`;
782
- case "cancel": {
783
- const code = trimMaybeString(content.code);
784
- const reason = trimMaybeString(content.reason);
785
- if (code && reason) return `Matrix verification cancelled by ${senderId} (${code}: ${reason}).`;
786
- if (reason) return `Matrix verification cancelled by ${senderId} (${reason}).`;
787
- return `Matrix verification cancelled by ${senderId}.`;
788
- }
789
- default: return null;
790
- }
791
- }
792
- function formatVerificationSasNotice(summary) {
793
- const sas = summary.sas;
794
- if (!sas) return null;
795
- const emojiLine = Array.isArray(sas.emoji) && sas.emoji.length > 0 ? `SAS emoji: ${sas.emoji.map(([emoji, name]) => `${trimMaybeString(emoji) ?? "?"} ${trimMaybeString(name) ?? "?"}`).join(" | ")}` : null;
796
- const decimalLine = Array.isArray(sas.decimal) && sas.decimal.length === 3 ? `SAS decimal: ${sas.decimal.join(" ")}` : null;
797
- if (!emojiLine && !decimalLine) return null;
798
- const lines = [`Matrix verification SAS with ${summary.otherUserId}:`];
799
- if (emojiLine) lines.push(emojiLine);
800
- if (decimalLine) lines.push(decimalLine);
801
- lines.push("If both sides match, choose 'They match' in your Matrix app.");
802
- return lines.join("\n");
803
- }
804
- function resolveVerificationFlowCandidates(params) {
805
- const { event, flowId } = params;
806
- const content = event.content;
807
- const candidates = /* @__PURE__ */ new Set();
808
- const add = (value) => {
809
- const normalized = trimMaybeString(value);
810
- if (normalized) candidates.add(normalized);
811
- };
812
- add(flowId);
813
- add(event.event_id);
814
- add(content.transaction_id);
815
- add(content["m.relates_to"]?.event_id);
816
- return Array.from(candidates);
817
- }
818
- function resolveSummaryRecency(summary) {
819
- const ts = Date.parse(summary.updatedAt ?? "");
820
- return Number.isFinite(ts) ? ts : 0;
821
- }
822
- function isActiveVerificationSummary(summary) {
823
- if (summary.completed === true) return false;
824
- if (summary.phaseName === "cancelled" || summary.phaseName === "done") return false;
825
- if (typeof summary.phase === "number" && summary.phase >= 4) return false;
826
- return true;
827
- }
828
- async function resolveVerificationSummaryForSignal(client, params) {
829
- if (!client.crypto) return null;
830
- await client.crypto.ensureVerificationDmTracked({
831
- roomId: params.roomId,
832
- userId: params.senderId
833
- }).catch(() => null);
834
- const list = await client.crypto.listVerifications();
835
- if (list.length === 0) return null;
836
- const candidates = resolveVerificationFlowCandidates({
837
- event: params.event,
838
- flowId: params.flowId
839
- });
840
- const byTransactionId = list.find((entry) => candidates.some((candidate) => entry.transactionId === candidate));
841
- if (byTransactionId) return byTransactionId;
842
- const { inspectMatrixDirectRooms, isStrictDirectRoom } = await loadMatrixDirectRoomDeps();
843
- const activeRoomId = trimMaybeString((await inspectMatrixDirectRooms({
844
- client,
845
- remoteUserId: params.senderId
846
- }).catch(() => null))?.activeRoomId);
847
- if (activeRoomId) {
848
- if (activeRoomId !== params.roomId) return null;
849
- } else if (!await isStrictDirectRoom({
850
- client,
851
- roomId: params.roomId,
852
- remoteUserId: params.senderId
853
- })) return null;
854
- const activeByUser = list.filter((entry) => entry.otherUserId === params.senderId && isActiveVerificationSummary(entry)).sort((a, b) => resolveSummaryRecency(b) - resolveSummaryRecency(a));
855
- const activeInRoom = activeByUser.filter((entry) => {
856
- return trimMaybeString(entry.roomId) === params.roomId;
857
- });
858
- if (activeInRoom.length > 0) return activeInRoom[0] ?? null;
859
- return activeByUser[0] ?? null;
860
- }
861
- async function resolveVerificationSasNoticeForSignal(client, params) {
862
- const summary = await resolveVerificationSummaryForSignal(client, params);
863
- const immediateNotice = summary && isActiveVerificationSummary(summary) ? formatVerificationSasNotice(summary) : null;
864
- if (immediateNotice || params.stage !== "ready" && params.stage !== "start") return {
865
- summary,
866
- sasNotice: immediateNotice
867
- };
868
- await new Promise((resolve) => setTimeout(resolve, SAS_NOTICE_RETRY_DELAY_MS));
869
- const retriedSummary = await resolveVerificationSummaryForSignal(client, params);
870
- return {
871
- summary: retriedSummary,
872
- sasNotice: retriedSummary && isActiveVerificationSummary(retriedSummary) ? formatVerificationSasNotice(retriedSummary) : null
873
- };
874
- }
875
- function trackBounded(set, value) {
876
- if (!value || set.has(value)) return false;
877
- set.add(value);
878
- if (set.size > MAX_TRACKED_VERIFICATION_EVENTS) {
879
- const oldest = set.values().next().value;
880
- if (typeof oldest === "string") set.delete(oldest);
881
- }
882
- return true;
883
- }
884
- async function sendVerificationNotice(params) {
885
- const roomId = trimMaybeString(params.roomId);
886
- if (!roomId) return;
887
- try {
888
- await params.client.sendMessage(roomId, {
889
- msgtype: "m.notice",
890
- body: params.body
891
- });
892
- } catch (err) {
893
- params.logVerboseMessage(`matrix: failed sending verification notice room=${roomId}: ${String(err)}`);
894
- }
895
- }
896
- async function isVerificationNoticeAuthorized(params) {
897
- if (!params.dmEnabled || params.dmPolicy === "disabled") {
898
- params.logVerboseMessage(`matrix: blocked verification sender ${params.senderId} (dmPolicy=${params.dmPolicy}, dmEnabled=${String(params.dmEnabled)})`);
899
- return false;
900
- }
901
- if (params.dmPolicy === "open") return true;
902
- const storeAllowFrom = await params.readStoreAllowFrom();
903
- if (resolveMatrixMonitorAccessState({
904
- allowFrom: params.allowFrom,
905
- storeAllowFrom,
906
- groupAllowFrom: [],
907
- roomUsers: [],
908
- senderId: params.senderId,
909
- isRoom: false
910
- }).directAllowMatch.allowed) return true;
911
- params.logVerboseMessage(`matrix: blocked verification sender ${params.senderId} (dmPolicy=${params.dmPolicy})`);
912
- return false;
913
- }
914
- function createMatrixVerificationEventRouter(params) {
915
- const routerStartedAtMs = Date.now();
916
- const routedVerificationEvents = /* @__PURE__ */ new Set();
917
- const routedVerificationSasFingerprints = /* @__PURE__ */ new Set();
918
- const routedVerificationStageNotices = /* @__PURE__ */ new Set();
919
- const verificationFlowRooms = /* @__PURE__ */ new Map();
920
- const verificationUserRooms = /* @__PURE__ */ new Map();
921
- async function resolveActiveDirectRoomId(remoteUserId) {
922
- const { inspectMatrixDirectRooms } = await loadMatrixDirectRoomDeps();
923
- return trimMaybeString((await inspectMatrixDirectRooms({
924
- client: params.client,
925
- remoteUserId
926
- }).catch(() => null))?.activeRoomId);
927
- }
928
- function shouldEmitVerificationEventNotice(event) {
929
- const eventTs = typeof event.origin_server_ts === "number" && Number.isFinite(event.origin_server_ts) ? event.origin_server_ts : null;
930
- if (eventTs === null) return true;
931
- return eventTs >= routerStartedAtMs - VERIFICATION_EVENT_STARTUP_GRACE_MS;
932
- }
933
- function rememberVerificationRoom(roomId, event, flowId) {
934
- for (const candidate of resolveVerificationFlowCandidates({
935
- event,
936
- flowId
937
- })) {
938
- verificationFlowRooms.set(candidate, roomId);
939
- if (verificationFlowRooms.size > MAX_TRACKED_VERIFICATION_EVENTS) {
940
- const oldest = verificationFlowRooms.keys().next().value;
941
- if (typeof oldest === "string") verificationFlowRooms.delete(oldest);
942
- }
943
- }
944
- }
945
- function rememberVerificationUserRoom(remoteUserId, roomId) {
946
- const normalizedUserId = trimMaybeString(remoteUserId);
947
- const normalizedRoomId = trimMaybeString(roomId);
948
- if (!normalizedUserId || !normalizedRoomId) return;
949
- verificationUserRooms.delete(normalizedUserId);
950
- verificationUserRooms.set(normalizedUserId, normalizedRoomId);
951
- if (verificationUserRooms.size > MAX_TRACKED_VERIFICATION_EVENTS) {
952
- const oldest = verificationUserRooms.keys().next().value;
953
- if (typeof oldest === "string") verificationUserRooms.delete(oldest);
954
- }
955
- }
956
- async function resolveSummaryRoomId(summary) {
957
- const mappedRoomId = trimMaybeString(summary.roomId) ?? trimMaybeString(summary.transactionId ? verificationFlowRooms.get(summary.transactionId) : null) ?? trimMaybeString(verificationFlowRooms.get(summary.id));
958
- if (mappedRoomId) return mappedRoomId;
959
- const remoteUserId = trimMaybeString(summary.otherUserId);
960
- if (!remoteUserId) return null;
961
- const recentRoomId = trimMaybeString(verificationUserRooms.get(remoteUserId));
962
- const activeRoomId = await resolveActiveDirectRoomId(remoteUserId);
963
- if (recentRoomId && activeRoomId && recentRoomId === activeRoomId) return recentRoomId;
964
- if (activeRoomId) return activeRoomId;
965
- if (recentRoomId && await (await loadMatrixDirectRoomDeps()).isStrictDirectRoom({
966
- client: params.client,
967
- roomId: recentRoomId,
968
- remoteUserId
969
- })) return recentRoomId;
970
- return null;
971
- }
972
- async function routeVerificationSummary(summary) {
973
- const roomId = await resolveSummaryRoomId(summary);
974
- if (!roomId || !isActiveVerificationSummary(summary)) return;
975
- if (!await (await loadMatrixDirectRoomDeps()).isStrictDirectRoom({
976
- client: params.client,
977
- roomId,
978
- remoteUserId: summary.otherUserId
979
- })) {
980
- params.logVerboseMessage(`matrix: ignoring verification summary outside strict DM room=${roomId} sender=${summary.otherUserId}`);
981
- return;
982
- }
983
- if (!await isVerificationNoticeAuthorized({
984
- senderId: summary.otherUserId,
985
- allowFrom: params.allowFrom,
986
- dmEnabled: params.dmEnabled,
987
- dmPolicy: params.dmPolicy,
988
- readStoreAllowFrom: params.readStoreAllowFrom,
989
- logVerboseMessage: params.logVerboseMessage
990
- })) return;
991
- const sasNotice = formatVerificationSasNotice(summary);
992
- if (!sasNotice) return;
993
- if (!trackBounded(routedVerificationSasFingerprints, `${summary.id}:${JSON.stringify(summary.sas)}`)) return;
994
- await sendVerificationNotice({
995
- client: params.client,
996
- roomId,
997
- body: sasNotice,
998
- logVerboseMessage: params.logVerboseMessage
999
- });
1000
- }
1001
- function routeVerificationEvent(roomId, event) {
1002
- const senderId = trimMaybeString(event?.sender);
1003
- if (!senderId) return false;
1004
- const signal = readVerificationSignal(event);
1005
- if (!signal) return false;
1006
- rememberVerificationRoom(roomId, event, signal.flowId);
1007
- (async () => {
1008
- if (!shouldEmitVerificationEventNotice(event)) {
1009
- params.logVerboseMessage(`matrix: ignoring historical verification event room=${roomId} id=${event.event_id ?? "unknown"} type=${event.type ?? "unknown"}`);
1010
- return;
1011
- }
1012
- const flowId = signal.flowId;
1013
- const sourceFingerprint = trimMaybeString(event?.event_id) ?? `${senderId}:${event.type}:${flowId ?? "none"}`;
1014
- if (!await (await loadMatrixDirectRoomDeps()).isStrictDirectRoom({
1015
- client: params.client,
1016
- roomId,
1017
- remoteUserId: senderId
1018
- })) {
1019
- params.logVerboseMessage(`matrix: ignoring verification event outside strict DM room=${roomId} sender=${senderId}`);
1020
- return;
1021
- }
1022
- if (!await isVerificationNoticeAuthorized({
1023
- senderId,
1024
- allowFrom: params.allowFrom,
1025
- dmEnabled: params.dmEnabled,
1026
- dmPolicy: params.dmPolicy,
1027
- readStoreAllowFrom: params.readStoreAllowFrom,
1028
- logVerboseMessage: params.logVerboseMessage
1029
- })) return;
1030
- rememberVerificationUserRoom(senderId, roomId);
1031
- if (!trackBounded(routedVerificationEvents, sourceFingerprint)) return;
1032
- const stageNotice = formatVerificationStageNotice({
1033
- stage: signal.stage,
1034
- senderId,
1035
- event
1036
- });
1037
- const { summary, sasNotice } = await resolveVerificationSasNoticeForSignal(params.client, {
1038
- roomId,
1039
- event,
1040
- senderId,
1041
- flowId,
1042
- stage: signal.stage
1043
- }).catch(() => ({
1044
- summary: null,
1045
- sasNotice: null
1046
- }));
1047
- const notices = [];
1048
- if (stageNotice) {
1049
- if (trackBounded(routedVerificationStageNotices, `${roomId}:${senderId}:${flowId ?? sourceFingerprint}:${signal.stage}`)) notices.push(stageNotice);
1050
- }
1051
- if (summary && sasNotice) {
1052
- if (trackBounded(routedVerificationSasFingerprints, `${summary.id}:${JSON.stringify(summary.sas)}`)) notices.push(sasNotice);
1053
- }
1054
- if (notices.length === 0) return;
1055
- for (const body of notices) await sendVerificationNotice({
1056
- client: params.client,
1057
- roomId,
1058
- body,
1059
- logVerboseMessage: params.logVerboseMessage
1060
- });
1061
- })().catch((err) => {
1062
- params.logVerboseMessage(`matrix: failed routing verification event: ${String(err)}`);
1063
- });
1064
- return true;
1065
- }
1066
- return {
1067
- routeVerificationEvent,
1068
- routeVerificationSummary
1069
- };
1070
- }
1071
- //#endregion
1072
- //#region extensions/matrix/src/matrix/monitor/events.ts
1073
- function formatMatrixSelfDecryptionHint(accountId) {
1074
- return `matrix: failed to decrypt a message from this same Matrix user. This usually means another Matrix device did not share the room key, or another OpenClaw runtime is using the same account. Check 'openclaw matrix verify status --verbose --account ${accountId}' and 'openclaw matrix devices list --account ${accountId}'.`;
1075
- }
1076
- async function resolveMatrixSelfUserId(client, logVerboseMessage) {
1077
- if (typeof client.getUserId !== "function") return null;
1078
- try {
1079
- return await client.getUserId() ?? null;
1080
- } catch (err) {
1081
- logVerboseMessage(`matrix: failed resolving self user id for decrypt warning: ${String(err)}`);
1082
- return null;
1083
- }
1084
- }
1085
- function registerMatrixMonitorEvents(params) {
1086
- const { cfg, client, auth, allowFrom, dmEnabled, dmPolicy, readStoreAllowFrom, directTracker, logVerboseMessage, warnedEncryptedRooms, warnedCryptoMissingRooms, logger, formatNativeDependencyHint, onRoomMessage } = params;
1087
- const { routeVerificationEvent, routeVerificationSummary } = createMatrixVerificationEventRouter({
1088
- client,
1089
- allowFrom,
1090
- dmEnabled,
1091
- dmPolicy,
1092
- readStoreAllowFrom,
1093
- logVerboseMessage
1094
- });
1095
- client.on("room.message", (roomId, event) => {
1096
- if (routeVerificationEvent(roomId, event)) return;
1097
- onRoomMessage(roomId, event);
1098
- });
1099
- client.on("room.encrypted_event", (roomId, event) => {
1100
- const eventId = event?.event_id ?? "unknown";
1101
- logVerboseMessage(`matrix: encrypted event room=${roomId} type=${event?.type ?? "unknown"} id=${eventId}`);
1102
- });
1103
- client.on("room.decrypted_event", (roomId, event) => {
1104
- const eventId = event?.event_id ?? "unknown";
1105
- logVerboseMessage(`matrix: decrypted event room=${roomId} type=${event?.type ?? "unknown"} id=${eventId}`);
1106
- });
1107
- client.on("room.failed_decryption", async (roomId, event, error) => {
1108
- const selfUserId = await resolveMatrixSelfUserId(client, logVerboseMessage);
1109
- const sender = typeof event.sender === "string" ? event.sender : null;
1110
- const senderMatchesOwnUser = Boolean(selfUserId && sender && selfUserId === sender);
1111
- logger.warn("Failed to decrypt message", {
1112
- roomId,
1113
- eventId: event.event_id,
1114
- sender,
1115
- senderMatchesOwnUser,
1116
- error: error.message
1117
- });
1118
- if (senderMatchesOwnUser) logger.warn(formatMatrixSelfDecryptionHint(auth.accountId), {
1119
- roomId,
1120
- eventId: event.event_id,
1121
- sender
1122
- });
1123
- logVerboseMessage(`matrix: failed decrypt room=${roomId} id=${event.event_id ?? "unknown"} error=${error.message}`);
1124
- });
1125
- client.on("verification.summary", (summary) => {
1126
- routeVerificationSummary(summary);
1127
- });
1128
- client.on("room.invite", (roomId, event) => {
1129
- directTracker?.invalidateRoom(roomId);
1130
- const eventId = event?.event_id ?? "unknown";
1131
- const sender = event?.sender ?? "unknown";
1132
- const invitee = typeof event?.state_key === "string" ? event.state_key.trim() : "";
1133
- const senderIsInvitee = typeof event?.sender === "string" && invitee && event.sender.trim() === invitee;
1134
- const isDirect = (event?.content)?.is_direct === true;
1135
- if (typeof event?.sender === "string" && event.sender.trim() && !senderIsInvitee) directTracker?.rememberInvite?.(roomId, event.sender);
1136
- logVerboseMessage(`matrix: invite room=${roomId} sender=${sender} direct=${String(isDirect)} id=${eventId}`);
1137
- });
1138
- client.on("room.join", (roomId, event) => {
1139
- directTracker?.invalidateRoom(roomId);
1140
- logVerboseMessage(`matrix: join room=${roomId} id=${event?.event_id ?? "unknown"}`);
1141
- });
1142
- client.on("room.event", (roomId, event) => {
1143
- const eventType = event?.type ?? "unknown";
1144
- if (eventType === EventType.RoomMessageEncrypted) {
1145
- logVerboseMessage(`matrix: encrypted raw event room=${roomId} id=${event?.event_id ?? "unknown"}`);
1146
- if (auth.encryption !== true && !warnedEncryptedRooms.has(roomId)) {
1147
- warnedEncryptedRooms.add(roomId);
1148
- const warning = formatMatrixEncryptedEventDisabledWarning(cfg, auth.accountId);
1149
- logger.warn(warning, { roomId });
1150
- }
1151
- if (auth.encryption === true && !client.crypto && !warnedCryptoMissingRooms.has(roomId)) {
1152
- warnedCryptoMissingRooms.add(roomId);
1153
- const warning = `matrix: encryption enabled but crypto is unavailable; ${formatNativeDependencyHint({
1154
- packageName: "@matrix-org/matrix-sdk-crypto-nodejs",
1155
- manager: "pnpm",
1156
- downloadCommand: "node node_modules/@matrix-org/matrix-sdk-crypto-nodejs/download-lib.js"
1157
- })}`;
1158
- logger.warn(warning, { roomId });
1159
- }
1160
- return;
1161
- }
1162
- if (eventType === EventType.RoomMember) {
1163
- directTracker?.invalidateRoom(roomId);
1164
- const membership = (event?.content)?.membership;
1165
- logVerboseMessage(`matrix: member event room=${roomId} stateKey=${event.state_key ?? ""} membership=${membership ?? "unknown"}`);
1166
- }
1167
- if (eventType === EventType.Reaction) {
1168
- onRoomMessage(roomId, event);
1169
- return;
1170
- }
1171
- routeVerificationEvent(roomId, event);
1172
- });
1173
- }
1174
- //#endregion
1175
- //#region extensions/matrix/src/matrix/draft-stream.ts
1176
- const DEFAULT_THROTTLE_MS = 1e3;
1177
- function createMatrixDraftStream(params) {
1178
- const { roomId, client, cfg, threadId, accountId, log } = params;
1179
- let currentEventId;
1180
- let lastSentText = "";
1181
- let stopped = false;
1182
- let sendFailed = false;
1183
- let finalizeInPlaceBlocked = false;
1184
- let replyToId = params.replyToId;
1185
- const sendOrEdit = async (text) => {
1186
- const trimmed = text.trimEnd();
1187
- if (!trimmed) return false;
1188
- const preparedText = prepareMatrixSingleText(trimmed, {
1189
- cfg,
1190
- accountId
1191
- });
1192
- if (!preparedText.fitsInSingleEvent) {
1193
- finalizeInPlaceBlocked = true;
1194
- if (!currentEventId) sendFailed = true;
1195
- stopped = true;
1196
- log?.(`draft-stream: preview exceeded single-event limit (${preparedText.convertedText.length} > ${preparedText.singleEventLimit})`);
1197
- return false;
1198
- }
1199
- if (sendFailed) return false;
1200
- if (preparedText.trimmedText === lastSentText) return true;
1201
- try {
1202
- if (!currentEventId) {
1203
- currentEventId = (await sendSingleTextMessageMatrix(roomId, preparedText.trimmedText, {
1204
- client,
1205
- cfg,
1206
- replyToId,
1207
- threadId,
1208
- accountId
1209
- })).messageId;
1210
- lastSentText = preparedText.trimmedText;
1211
- log?.(`draft-stream: created message ${currentEventId}`);
1212
- } else {
1213
- await editMessageMatrix(roomId, currentEventId, preparedText.trimmedText, {
1214
- client,
1215
- cfg,
1216
- threadId,
1217
- accountId
1218
- });
1219
- lastSentText = preparedText.trimmedText;
1220
- }
1221
- return true;
1222
- } catch (err) {
1223
- log?.(`draft-stream: send/edit failed: ${String(err)}`);
1224
- if (err instanceof Error && err.message.startsWith("Matrix single-message text exceeds limit")) finalizeInPlaceBlocked = true;
1225
- if (!currentEventId) sendFailed = true;
1226
- stopped = true;
1227
- return false;
1228
- }
1229
- };
1230
- const loop = createDraftStreamLoop({
1231
- throttleMs: DEFAULT_THROTTLE_MS,
1232
- isStopped: () => stopped,
1233
- sendOrEditStreamMessage: sendOrEdit
1234
- });
1235
- log?.(`draft-stream: ready (throttleMs=${DEFAULT_THROTTLE_MS})`);
1236
- const stop = async () => {
1237
- await loop.flush();
1238
- stopped = true;
1239
- return currentEventId;
1240
- };
1241
- const reset = () => {
1242
- replyToId = params.preserveReplyId ? params.replyToId : void 0;
1243
- currentEventId = void 0;
1244
- lastSentText = "";
1245
- stopped = false;
1246
- sendFailed = false;
1247
- finalizeInPlaceBlocked = false;
1248
- loop.resetPending();
1249
- loop.resetThrottleWindow();
1250
- };
1251
- return {
1252
- update: (text) => {
1253
- if (stopped) return;
1254
- loop.update(text);
1255
- },
1256
- flush: loop.flush,
1257
- stop,
1258
- reset,
1259
- eventId: () => currentEventId,
1260
- lastSentText: () => lastSentText,
1261
- mustDeliverFinalNormally: () => sendFailed || finalizeInPlaceBlocked
1262
- };
1263
- }
1264
- //#endregion
1265
- //#region extensions/matrix/src/matrix/monitor/ack-config.ts
1266
- function resolveMatrixAckReactionConfig(params) {
1267
- const matrixConfig = params.cfg.channels?.matrix;
1268
- const accountConfig = resolveMatrixAccountConfig({
1269
- cfg: params.cfg,
1270
- accountId: params.accountId
1271
- });
1272
- return {
1273
- ackReaction: resolveAckReaction(params.cfg, params.agentId, {
1274
- channel: "matrix",
1275
- accountId: params.accountId ?? void 0
1276
- }).trim(),
1277
- ackReactionScope: accountConfig.ackReactionScope ?? matrixConfig?.ackReactionScope ?? params.cfg.messages?.ackReactionScope ?? "group-mentions"
1278
- };
1279
- }
1280
- //#endregion
1281
- //#region extensions/matrix/src/matrix/monitor/location.ts
1282
- function parseGeoUri(value) {
1283
- const trimmed = value.trim();
1284
- if (!trimmed) return null;
1285
- if (!trimmed.toLowerCase().startsWith("geo:")) return null;
1286
- const [coordsPart, ...paramParts] = trimmed.slice(4).split(";");
1287
- const coords = coordsPart.split(",");
1288
- if (coords.length < 2) return null;
1289
- const latitude = Number.parseFloat(coords[0] ?? "");
1290
- const longitude = Number.parseFloat(coords[1] ?? "");
1291
- if (!Number.isFinite(latitude) || !Number.isFinite(longitude)) return null;
1292
- const params = /* @__PURE__ */ new Map();
1293
- for (const part of paramParts) {
1294
- const segment = part.trim();
1295
- if (!segment) continue;
1296
- const eqIndex = segment.indexOf("=");
1297
- const rawKey = eqIndex === -1 ? segment : segment.slice(0, eqIndex);
1298
- const rawValue = eqIndex === -1 ? "" : segment.slice(eqIndex + 1);
1299
- const key = rawKey.trim().toLowerCase();
1300
- if (!key) continue;
1301
- const valuePart = rawValue.trim();
1302
- params.set(key, valuePart ? decodeURIComponent(valuePart) : "");
1303
- }
1304
- const accuracyRaw = params.get("u");
1305
- const accuracy = accuracyRaw ? Number.parseFloat(accuracyRaw) : void 0;
1306
- return {
1307
- latitude,
1308
- longitude,
1309
- accuracy: Number.isFinite(accuracy) ? accuracy : void 0
1310
- };
1311
- }
1312
- function resolveMatrixLocation(params) {
1313
- const { eventType, content } = params;
1314
- if (!(eventType === EventType.Location || eventType === EventType.RoomMessage && content.msgtype === EventType.Location)) return null;
1315
- const geoUri = typeof content.geo_uri === "string" ? content.geo_uri.trim() : "";
1316
- if (!geoUri) return null;
1317
- const parsed = parseGeoUri(geoUri);
1318
- if (!parsed) return null;
1319
- const caption = typeof content.body === "string" ? content.body.trim() : "";
1320
- const location = {
1321
- latitude: parsed.latitude,
1322
- longitude: parsed.longitude,
1323
- accuracy: parsed.accuracy,
1324
- caption: caption || void 0,
1325
- source: "pin",
1326
- isLive: false
1327
- };
1328
- return {
1329
- text: formatLocationText(location),
1330
- context: toLocationContext(location)
1331
- };
1332
- }
1333
- //#endregion
1334
- //#region extensions/matrix/src/matrix/monitor/media.ts
1335
- const MATRIX_MEDIA_DOWNLOAD_IDLE_TIMEOUT_MS = 3e4;
1336
- async function fetchMatrixMediaBuffer(params) {
1337
- try {
1338
- return { buffer: await params.client.downloadContent(params.mxcUrl, {
1339
- maxBytes: params.maxBytes,
1340
- readIdleTimeoutMs: MATRIX_MEDIA_DOWNLOAD_IDLE_TIMEOUT_MS
1341
- }) };
1342
- } catch (err) {
1343
- throw new Error(`Matrix media download failed: ${String(err)}`, { cause: err });
1344
- }
1345
- }
1346
- /**
1347
- * Download and decrypt encrypted media from a Matrix room.
1348
- * Uses the Matrix crypto adapter's decryptMedia helper.
1349
- */
1350
- async function fetchEncryptedMediaBuffer(params) {
1351
- if (!params.client.crypto) throw new Error("Cannot decrypt media: crypto not enabled");
1352
- const decrypted = await params.client.crypto.decryptMedia(params.file, {
1353
- maxBytes: params.maxBytes,
1354
- readIdleTimeoutMs: MATRIX_MEDIA_DOWNLOAD_IDLE_TIMEOUT_MS
1355
- });
1356
- if (decrypted.byteLength > params.maxBytes) throw new Error("Matrix media exceeds configured size limit");
1357
- return { buffer: decrypted };
1358
- }
1359
- async function downloadMatrixMedia(params) {
1360
- let fetched;
1361
- if (typeof params.sizeBytes === "number" && params.sizeBytes > params.maxBytes) throw new Error("Matrix media exceeds configured size limit");
1362
- if (params.file) fetched = await fetchEncryptedMediaBuffer({
1363
- client: params.client,
1364
- file: params.file,
1365
- maxBytes: params.maxBytes
1366
- });
1367
- else fetched = await fetchMatrixMediaBuffer({
1368
- client: params.client,
1369
- mxcUrl: params.mxcUrl,
1370
- maxBytes: params.maxBytes
1371
- });
1372
- if (!fetched) return null;
1373
- const headerType = params.contentType ?? void 0;
1374
- const saved = await getMatrixRuntime().channel.media.saveMediaBuffer(fetched.buffer, headerType, "inbound", params.maxBytes, params.originalFilename);
1375
- return {
1376
- path: saved.path,
1377
- contentType: saved.contentType,
1378
- placeholder: "[matrix media]"
1379
- };
1380
- }
1381
- //#endregion
1382
- //#region extensions/matrix/src/matrix/monitor/mentions.ts
1383
- const HTML_ENTITY_REPLACEMENTS = {
1384
- amp: "&",
1385
- apos: "'",
1386
- gt: ">",
1387
- lt: "<",
1388
- nbsp: " ",
1389
- quot: "\""
1390
- };
1391
- const MAX_UNICODE_SCALAR_VALUE = 1114111;
1392
- function decodeNumericHtmlEntity(match, rawValue, radix) {
1393
- const codePoint = Number.parseInt(rawValue, radix);
1394
- if (!Number.isSafeInteger(codePoint) || codePoint < 0 || codePoint > MAX_UNICODE_SCALAR_VALUE || codePoint >= 55296 && codePoint <= 57343) return match;
1395
- return String.fromCodePoint(codePoint);
1396
- }
1397
- function decodeHtmlEntities(value) {
1398
- return value.replace(/&(#x?[0-9a-f]+|\w+);/gi, (match, entity) => {
1399
- const normalized = entity.toLowerCase();
1400
- if (normalized.startsWith("#x")) return decodeNumericHtmlEntity(match, normalized.slice(2), 16);
1401
- if (normalized.startsWith("#")) return decodeNumericHtmlEntity(match, normalized.slice(1), 10);
1402
- return HTML_ENTITY_REPLACEMENTS[normalized] ?? match;
1403
- });
1404
- }
1405
- function normalizeVisibleMentionText(value) {
1406
- return decodeHtmlEntities(value.replace(/<[^>]+>/g, " ").replace(/[\u200b-\u200f\u202a-\u202e\u2060-\u206f]/g, "")).replace(/\s+/g, " ").trim().toLowerCase();
1407
- }
1408
- function extractVisibleMentionText(value) {
1409
- return normalizeVisibleMentionText(value ?? "");
1410
- }
1411
- function resolveMatrixUserLocalpart(userId) {
1412
- const trimmed = userId.trim();
1413
- if (!trimmed.startsWith("@")) return null;
1414
- const colonIndex = trimmed.indexOf(":");
1415
- if (colonIndex <= 1) return null;
1416
- return trimmed.slice(1, colonIndex).trim() || null;
1417
- }
1418
- function isVisibleMentionLabel(params) {
1419
- const cleaned = extractVisibleMentionText(params.text);
1420
- if (!cleaned) return false;
1421
- if (params.mentionRegexes.some((pattern) => pattern.test(cleaned))) return true;
1422
- const localpart = resolveMatrixUserLocalpart(params.userId);
1423
- return [
1424
- extractVisibleMentionText(params.userId),
1425
- localpart ? extractVisibleMentionText(localpart) : null,
1426
- localpart ? extractVisibleMentionText(`@${localpart}`) : null,
1427
- params.displayName ? extractVisibleMentionText(params.displayName) : null
1428
- ].filter((value) => Boolean(value)).includes(cleaned);
1429
- }
1430
- function hasVisibleRoomMention(value) {
1431
- const cleaned = extractVisibleMentionText(value);
1432
- return /(^|[^a-z0-9_])@room\b/i.test(cleaned);
1433
- }
1434
- /**
1435
- * Check if formatted_body contains a matrix.to link whose visible label still
1436
- * looks like a real mention for the given user. Do not trust href alone, since
1437
- * senders can hide arbitrary matrix.to links behind unrelated link text.
1438
- * Many Matrix clients (including Element) use HTML links in formatted_body instead of
1439
- * or in addition to the m.mentions field.
1440
- */
1441
- function checkFormattedBodyMention(params) {
1442
- if (!params.formattedBody || !params.userId) return false;
1443
- for (const match of params.formattedBody.matchAll(/<a\b[^>]*href=(["'])(https:\/\/matrix\.to\/#[^"']+)\1[^>]*>(.*?)<\/a>/gis)) {
1444
- const href = match[2];
1445
- const visibleLabel = match[3] ?? "";
1446
- if (!href) continue;
1447
- try {
1448
- const parsed = new URL(href);
1449
- if (decodeURIComponent(parsed.hash.replace(/^#\/?/, "").trim()) !== params.userId.trim()) continue;
1450
- if (isVisibleMentionLabel({
1451
- text: visibleLabel,
1452
- userId: params.userId,
1453
- mentionRegexes: params.mentionRegexes,
1454
- displayName: params.displayName
1455
- })) return true;
1456
- } catch {
1457
- continue;
1458
- }
1459
- }
1460
- return false;
1461
- }
1462
- function resolveMentions(params) {
1463
- const mentions = params.content["m.mentions"];
1464
- const mentionedUsers = Array.isArray(mentions?.user_ids) ? new Set(mentions.user_ids) : /* @__PURE__ */ new Set();
1465
- const textMentioned = getMatrixRuntime().channel.mentions.matchesMentionPatterns(params.text ?? "", params.mentionRegexes);
1466
- const visibleRoomMention = hasVisibleRoomMention(params.text) || hasVisibleRoomMention(params.content.formatted_body);
1467
- const mentionedInFormattedBody = params.userId ? checkFormattedBodyMention({
1468
- formattedBody: params.content.formatted_body,
1469
- userId: params.userId,
1470
- displayName: params.displayName,
1471
- mentionRegexes: params.mentionRegexes
1472
- }) : false;
1473
- const metadataBackedUserMention = Boolean(params.userId && mentionedUsers.has(params.userId) && (mentionedInFormattedBody || textMentioned));
1474
- const metadataBackedRoomMention = Boolean(mentions?.room) && visibleRoomMention;
1475
- const explicitMention = mentionedInFormattedBody || metadataBackedUserMention || metadataBackedRoomMention;
1476
- return {
1477
- wasMentioned: explicitMention || textMentioned || visibleRoomMention,
1478
- hasExplicitMention: explicitMention
1479
- };
1480
- }
1481
- //#endregion
1482
- //#region extensions/matrix/src/matrix/monitor/threads.ts
1483
- function resolveMatrixThreadSessionKeys(params) {
1484
- return resolveThreadSessionKeys({
1485
- ...params,
1486
- normalizeThreadId: (threadId) => threadId
1487
- });
1488
- }
1489
- function resolveMatrixRelatedReplyToEventId(relates) {
1490
- if (!relates || typeof relates !== "object") return;
1491
- if ("m.in_reply_to" in relates && typeof relates["m.in_reply_to"] === "object" && relates["m.in_reply_to"] && "event_id" in relates["m.in_reply_to"] && typeof relates["m.in_reply_to"].event_id === "string") return relates["m.in_reply_to"].event_id;
1492
- }
1493
- function resolveMatrixThreadRouting(params) {
1494
- const effectiveThreadReplies = params.isDirectMessage && params.dmThreadReplies !== void 0 ? params.dmThreadReplies : params.threadReplies;
1495
- const messageId = params.messageId.trim();
1496
- const threadRootId = params.threadRootId?.trim();
1497
- const inboundThreadId = threadRootId && threadRootId !== messageId ? threadRootId : void 0;
1498
- return { threadId: effectiveThreadReplies === "off" ? void 0 : effectiveThreadReplies === "inbound" ? inboundThreadId : inboundThreadId ?? (messageId || void 0) };
1499
- }
1500
- function resolveMatrixThreadRootId(params) {
1501
- const relates = params.content["m.relates_to"];
1502
- if (!relates || typeof relates !== "object") return;
1503
- if ("rel_type" in relates && relates.rel_type === RelationType.Thread) {
1504
- if ("event_id" in relates && typeof relates.event_id === "string") return relates.event_id;
1505
- return resolveMatrixRelatedReplyToEventId(relates);
1506
- }
1507
- }
1508
- function resolveMatrixReplyToEventId(content) {
1509
- return resolveMatrixRelatedReplyToEventId(content["m.relates_to"]);
1510
- }
1511
- //#endregion
1512
- //#region extensions/matrix/src/matrix/monitor/route.ts
1513
- function resolveMatrixInboundRoute(params) {
1514
- const baseRoute = params.resolveAgentRoute({
1515
- cfg: params.cfg,
1516
- channel: "matrix",
1517
- accountId: params.accountId,
1518
- peer: {
1519
- kind: params.isDirectMessage ? "direct" : "channel",
1520
- id: params.isDirectMessage ? params.senderId : params.roomId
1521
- },
1522
- parentPeer: params.isDirectMessage ? {
1523
- kind: "channel",
1524
- id: params.roomId
1525
- } : void 0
1526
- });
1527
- const bindingConversationId = params.threadId ?? params.roomId;
1528
- const bindingParentConversationId = params.threadId ? params.roomId : void 0;
1529
- const runtimeBinding = getSessionBindingService().resolveByConversation({
1530
- channel: "matrix",
1531
- accountId: params.accountId,
1532
- conversationId: bindingConversationId,
1533
- parentConversationId: bindingParentConversationId
1534
- });
1535
- const boundSessionKey = runtimeBinding?.targetSessionKey?.trim();
1536
- if (runtimeBinding && boundSessionKey) return {
1537
- route: {
1538
- ...baseRoute,
1539
- sessionKey: boundSessionKey,
1540
- agentId: resolveAgentIdFromSessionKey(boundSessionKey) || baseRoute.agentId,
1541
- lastRoutePolicy: deriveLastRoutePolicy({
1542
- sessionKey: boundSessionKey,
1543
- mainSessionKey: baseRoute.mainSessionKey
1544
- }),
1545
- matchedBy: "binding.channel"
1546
- },
1547
- configuredBinding: null,
1548
- runtimeBindingId: runtimeBinding.bindingId
1549
- };
1550
- const configuredBinding = runtimeBinding == null ? resolveConfiguredAcpBindingRecord({
1551
- cfg: params.cfg,
1552
- channel: "matrix",
1553
- accountId: params.accountId,
1554
- conversationId: bindingConversationId,
1555
- parentConversationId: bindingParentConversationId
1556
- }) : null;
1557
- const configuredSessionKey = configuredBinding?.record.targetSessionKey?.trim();
1558
- const effectiveRoute = configuredBinding && configuredSessionKey ? {
1559
- ...baseRoute,
1560
- sessionKey: configuredSessionKey,
1561
- agentId: resolveAgentIdFromSessionKey(configuredSessionKey) || configuredBinding.spec.agentId || baseRoute.agentId,
1562
- lastRoutePolicy: deriveLastRoutePolicy({
1563
- sessionKey: configuredSessionKey,
1564
- mainSessionKey: baseRoute.mainSessionKey
1565
- }),
1566
- matchedBy: "binding.channel"
1567
- } : baseRoute;
1568
- if (!configuredBinding && !configuredSessionKey && params.threadId) {
1569
- const threadKeys = resolveMatrixThreadSessionKeys({
1570
- baseSessionKey: effectiveRoute.sessionKey,
1571
- threadId: params.threadId,
1572
- parentSessionKey: effectiveRoute.sessionKey
1573
- });
1574
- return {
1575
- route: {
1576
- ...effectiveRoute,
1577
- sessionKey: threadKeys.sessionKey,
1578
- mainSessionKey: threadKeys.parentSessionKey ?? effectiveRoute.sessionKey,
1579
- lastRoutePolicy: deriveLastRoutePolicy({
1580
- sessionKey: threadKeys.sessionKey,
1581
- mainSessionKey: threadKeys.parentSessionKey ?? effectiveRoute.sessionKey
1582
- })
1583
- },
1584
- configuredBinding,
1585
- runtimeBindingId: null
1586
- };
1587
- }
1588
- return {
1589
- route: effectiveRoute,
1590
- configuredBinding,
1591
- runtimeBindingId: null
1592
- };
1593
- }
1594
- //#endregion
1595
- //#region extensions/matrix/src/matrix/monitor/reaction-events.ts
1596
- function resolveMatrixReactionNotificationMode(params) {
1597
- const matrixConfig = params.cfg.channels?.matrix;
1598
- return resolveMatrixAccountConfig({
1599
- cfg: params.cfg,
1600
- accountId: params.accountId
1601
- }).reactionNotifications ?? matrixConfig?.reactionNotifications ?? "own";
1602
- }
1603
- async function handleInboundMatrixReaction(params) {
1604
- const notificationMode = resolveMatrixReactionNotificationMode({
1605
- cfg: params.cfg,
1606
- accountId: params.accountId
1607
- });
1608
- if (notificationMode === "off") return;
1609
- const reaction = extractMatrixReactionAnnotation(params.event.content);
1610
- if (!reaction?.eventId) return;
1611
- const targetEvent = await params.client.getEvent(params.roomId, reaction.eventId).catch((err) => {
1612
- params.logVerboseMessage(`matrix: failed resolving reaction target room=${params.roomId} id=${reaction.eventId}: ${String(err)}`);
1613
- return null;
1614
- });
1615
- const targetSender = targetEvent && typeof targetEvent.sender === "string" ? targetEvent.sender.trim() : "";
1616
- if (!targetSender) return;
1617
- if (notificationMode === "own" && targetSender !== params.selfUserId) return;
1618
- const targetContent = targetEvent && targetEvent.content && typeof targetEvent.content === "object" ? targetEvent.content : void 0;
1619
- const threadRootId = targetContent ? resolveMatrixThreadRootId({
1620
- event: targetEvent,
1621
- content: targetContent
1622
- }) : void 0;
1623
- const accountConfig = resolveMatrixAccountConfig({
1624
- cfg: params.cfg,
1625
- accountId: params.accountId
1626
- });
1627
- const thread = resolveMatrixThreadRouting({
1628
- isDirectMessage: params.isDirectMessage,
1629
- threadReplies: accountConfig.threadReplies ?? "inbound",
1630
- dmThreadReplies: accountConfig.dm?.threadReplies,
1631
- messageId: reaction.eventId,
1632
- threadRootId
1633
- });
1634
- const { route, runtimeBindingId } = resolveMatrixInboundRoute({
1635
- cfg: params.cfg,
1636
- accountId: params.accountId,
1637
- roomId: params.roomId,
1638
- senderId: params.senderId,
1639
- isDirectMessage: params.isDirectMessage,
1640
- threadId: thread.threadId,
1641
- eventTs: params.event.origin_server_ts,
1642
- resolveAgentRoute: params.core.channel.routing.resolveAgentRoute
1643
- });
1644
- if (runtimeBindingId) getSessionBindingService().touch(runtimeBindingId, params.event.origin_server_ts);
1645
- const text = `Matrix reaction added: ${reaction.key} by ${params.senderLabel} on msg ${reaction.eventId}`;
1646
- params.core.system.enqueueSystemEvent(text, {
1647
- sessionKey: route.sessionKey,
1648
- contextKey: `matrix:reaction:add:${params.roomId}:${reaction.eventId}:${params.senderId}:${reaction.key}`
1649
- });
1650
- params.logVerboseMessage(`matrix: reaction event enqueued room=${params.roomId} target=${reaction.eventId} sender=${params.senderId} emoji=${reaction.key}`);
1651
- }
1652
- //#endregion
1653
- //#region extensions/matrix/src/matrix/monitor/replies.ts
1654
- const THINKING_TAG_RE = /<\s*\/?\s*(?:think(?:ing)?|thought|antthinking)\b[^<>]*>/gi;
1655
- const THINKING_BLOCK_RE = /<\s*(?:think(?:ing)?|thought|antthinking)\b[^<>]*>[\s\S]*?<\s*\/\s*(?:think(?:ing)?|thought|antthinking)\s*>/gi;
1656
- function shouldSuppressReasoningReplyText(text) {
1657
- if (typeof text !== "string") return false;
1658
- const trimmedStart = text.trimStart();
1659
- if (!trimmedStart) return false;
1660
- if (trimmedStart.toLowerCase().startsWith("reasoning:")) return true;
1661
- THINKING_TAG_RE.lastIndex = 0;
1662
- if (!THINKING_TAG_RE.test(text)) return false;
1663
- THINKING_BLOCK_RE.lastIndex = 0;
1664
- const withoutThinkingBlocks = text.replace(THINKING_BLOCK_RE, "");
1665
- THINKING_TAG_RE.lastIndex = 0;
1666
- return !withoutThinkingBlocks.replace(THINKING_TAG_RE, "").trim();
1667
- }
1668
- async function deliverMatrixReplies(params) {
1669
- const core = getMatrixRuntime();
1670
- const tableMode = params.tableMode ?? core.channel.text.resolveMarkdownTableMode({
1671
- cfg: params.cfg,
1672
- channel: "matrix",
1673
- accountId: params.accountId
1674
- });
1675
- const logVerbose = (message) => {
1676
- if (core.logging.shouldLogVerbose()) params.runtime.log?.(message);
1677
- };
1678
- let hasReplied = false;
1679
- for (const reply of params.replies) {
1680
- if (reply.isReasoning === true || shouldSuppressReasoningReplyText(reply.text)) {
1681
- logVerbose("matrix reply suppressed as reasoning-only");
1682
- continue;
1683
- }
1684
- const hasMedia = Boolean(reply?.mediaUrl) || (reply?.mediaUrls?.length ?? 0) > 0;
1685
- if (!reply?.text && !hasMedia) {
1686
- if (reply?.audioAsVoice) {
1687
- logVerbose("matrix reply has audioAsVoice without media/text; skipping");
1688
- continue;
1689
- }
1690
- params.runtime.error?.("matrix reply missing text/media");
1691
- continue;
1692
- }
1693
- const replyToIdRaw = reply.replyToId?.trim();
1694
- const replyToId = params.threadId || params.replyToMode === "off" ? void 0 : replyToIdRaw;
1695
- const rawText = reply.text ?? "";
1696
- const mediaList = reply.mediaUrls?.length ? reply.mediaUrls : reply.mediaUrl ? [reply.mediaUrl] : [];
1697
- const shouldIncludeReply = (id) => Boolean(id) && (params.replyToMode === "all" || !hasReplied);
1698
- const replyToIdForReply = shouldIncludeReply(replyToId) ? replyToId : void 0;
1699
- if (mediaList.length === 0) {
1700
- let sentTextChunk = false;
1701
- const { chunks } = chunkMatrixText(rawText, {
1702
- cfg: params.cfg,
1703
- accountId: params.accountId,
1704
- tableMode
1705
- });
1706
- for (const chunk of chunks) {
1707
- const trimmed = chunk.trim();
1708
- if (!trimmed) continue;
1709
- await sendMessageMatrix(params.roomId, trimmed, {
1710
- client: params.client,
1711
- cfg: params.cfg,
1712
- replyToId: replyToIdForReply,
1713
- threadId: params.threadId,
1714
- accountId: params.accountId
1715
- });
1716
- sentTextChunk = true;
1717
- }
1718
- if (replyToIdForReply && !hasReplied && sentTextChunk) hasReplied = true;
1719
- continue;
1720
- }
1721
- let first = true;
1722
- for (const mediaUrl of mediaList) {
1723
- const caption = first ? rawText : "";
1724
- await sendMessageMatrix(params.roomId, caption, {
1725
- client: params.client,
1726
- cfg: params.cfg,
1727
- mediaUrl,
1728
- mediaLocalRoots: params.mediaLocalRoots,
1729
- replyToId: replyToIdForReply,
1730
- threadId: params.threadId,
1731
- audioAsVoice: reply.audioAsVoice,
1732
- accountId: params.accountId
1733
- });
1734
- first = false;
1735
- }
1736
- if (replyToIdForReply && !hasReplied) hasReplied = true;
1737
- }
1738
- }
1739
- //#endregion
1740
- //#region extensions/matrix/src/matrix/monitor/context-summary.ts
1741
- function trimMatrixMaybeString(value) {
1742
- if (typeof value !== "string") return;
1743
- return value.trim() || void 0;
1744
- }
1745
- function summarizeMatrixMessageContextEvent(event) {
1746
- if (isPollStartType(event.type)) {
1747
- const pollSummary = parsePollStartContent(event.content);
1748
- if (pollSummary) return formatPollAsText(pollSummary);
1749
- }
1750
- const content = event.content;
1751
- return formatMatrixMessageText({
1752
- body: resolveMatrixMessageBody({
1753
- body: trimMatrixMaybeString(content.body),
1754
- filename: trimMatrixMaybeString(content.filename),
1755
- msgtype: trimMatrixMaybeString(content.msgtype)
1756
- }),
1757
- attachment: resolveMatrixMessageAttachment({
1758
- body: trimMatrixMaybeString(content.body),
1759
- filename: trimMatrixMaybeString(content.filename),
1760
- msgtype: trimMatrixMaybeString(content.msgtype)
1761
- })
1762
- });
1763
- }
1764
- //#endregion
1765
- //#region extensions/matrix/src/matrix/monitor/reply-context.ts
1766
- const MAX_CACHED_REPLY_CONTEXTS = 256;
1767
- const MAX_REPLY_BODY_LENGTH = 500;
1768
- function truncateReplyBody(value) {
1769
- if (value.length <= MAX_REPLY_BODY_LENGTH) return value;
1770
- return `${value.slice(0, MAX_REPLY_BODY_LENGTH - 3)}...`;
1771
- }
1772
- function summarizeMatrixReplyEvent(event) {
1773
- const body = summarizeMatrixMessageContextEvent(event);
1774
- return body ? truncateReplyBody(body) : void 0;
1775
- }
1776
- /**
1777
- * Creates a cached resolver that fetches the body and sender of a replied-to
1778
- * Matrix event. This allows the agent to see the content of the message being
1779
- * replied to, not just its event ID.
1780
- */
1781
- function createMatrixReplyContextResolver(params) {
1782
- const cache = /* @__PURE__ */ new Map();
1783
- const remember = (key, value) => {
1784
- cache.set(key, value);
1785
- if (cache.size > MAX_CACHED_REPLY_CONTEXTS) {
1786
- const oldest = cache.keys().next().value;
1787
- if (typeof oldest === "string") cache.delete(oldest);
1788
- }
1789
- return value;
1790
- };
1791
- return async (input) => {
1792
- const cacheKey = `${input.roomId}:${input.eventId}`;
1793
- const cached = cache.get(cacheKey);
1794
- if (cached) {
1795
- cache.delete(cacheKey);
1796
- cache.set(cacheKey, cached);
1797
- return cached;
1798
- }
1799
- const event = await params.client.getEvent(input.roomId, input.eventId).catch((err) => {
1800
- params.logVerboseMessage(`matrix: failed resolving reply context room=${input.roomId} id=${input.eventId}: ${String(err)}`);
1801
- return null;
1802
- });
1803
- if (!event) return {};
1804
- const rawEvent = event;
1805
- if (rawEvent.unsigned?.redacted_because) return remember(cacheKey, {});
1806
- const replyToBody = summarizeMatrixReplyEvent(rawEvent);
1807
- if (!replyToBody) return remember(cacheKey, {});
1808
- const senderId = trimMatrixMaybeString(rawEvent.sender);
1809
- return remember(cacheKey, {
1810
- replyToBody,
1811
- replyToSender: (senderId && await params.getMemberDisplayName(input.roomId, senderId).catch(() => void 0)) ?? senderId,
1812
- replyToSenderId: senderId
1813
- });
1814
- };
1815
- }
1816
- //#endregion
1817
- //#region extensions/matrix/src/matrix/monitor/room-history.ts
1818
- /** Maximum entries retained per room (hard cap to bound memory). */
1819
- const DEFAULT_MAX_QUEUE_SIZE = 200;
1820
- /** Maximum number of rooms to retain queues for (FIFO eviction beyond this). */
1821
- const DEFAULT_MAX_ROOM_QUEUES = 1e3;
1822
- /** Maximum number of (agentId, roomId) watermark entries to retain. */
1823
- const MAX_WATERMARK_ENTRIES = 5e3;
1824
- /** Maximum prepared trigger snapshots retained per room for retry reuse. */
1825
- const MAX_PREPARED_TRIGGER_ENTRIES = 500;
1826
- function createRoomHistoryTrackerInternal(maxQueueSize = DEFAULT_MAX_QUEUE_SIZE, maxRoomQueues = DEFAULT_MAX_ROOM_QUEUES, maxWatermarkEntries = MAX_WATERMARK_ENTRIES, maxPreparedTriggerEntries = MAX_PREPARED_TRIGGER_ENTRIES) {
1827
- const roomQueues = /* @__PURE__ */ new Map();
1828
- /** Maps `${agentId}:${roomId}` → absolute consumed-up-to index */
1829
- const agentWatermarks = /* @__PURE__ */ new Map();
1830
- let nextQueueGeneration = 1;
1831
- function clearRoomWatermarks(roomId) {
1832
- const roomSuffix = `:${roomId}`;
1833
- for (const key of agentWatermarks.keys()) if (key.endsWith(roomSuffix)) agentWatermarks.delete(key);
1834
- }
1835
- function getOrCreateQueue(roomId) {
1836
- let queue = roomQueues.get(roomId);
1837
- if (!queue) {
1838
- queue = {
1839
- entries: [],
1840
- baseIndex: 0,
1841
- generation: nextQueueGeneration++,
1842
- preparedTriggers: /* @__PURE__ */ new Map()
1843
- };
1844
- roomQueues.set(roomId, queue);
1845
- if (roomQueues.size > maxRoomQueues) {
1846
- const oldest = roomQueues.keys().next().value;
1847
- if (oldest !== void 0) {
1848
- roomQueues.delete(oldest);
1849
- clearRoomWatermarks(oldest);
1850
- }
1851
- }
1852
- }
1853
- return queue;
1854
- }
1855
- function appendToQueue(queue, entry) {
1856
- queue.entries.push(entry);
1857
- if (queue.entries.length > maxQueueSize) {
1858
- const overflow = queue.entries.length - maxQueueSize;
1859
- queue.entries.splice(0, overflow);
1860
- queue.baseIndex += overflow;
1861
- }
1862
- return {
1863
- snapshotIdx: queue.baseIndex + queue.entries.length,
1864
- queueGeneration: queue.generation
1865
- };
1866
- }
1867
- function wmKey(agentId, roomId) {
1868
- return `${agentId}:${roomId}`;
1869
- }
1870
- function preparedTriggerKey(agentId, messageId) {
1871
- if (!messageId?.trim()) return null;
1872
- return `${agentId}:${messageId.trim()}`;
1873
- }
1874
- function rememberWatermark(key, snapshotIdx) {
1875
- const nextSnapshotIdx = Math.max(agentWatermarks.get(key) ?? 0, snapshotIdx);
1876
- if (agentWatermarks.has(key)) agentWatermarks.delete(key);
1877
- agentWatermarks.set(key, nextSnapshotIdx);
1878
- if (agentWatermarks.size > maxWatermarkEntries) {
1879
- const oldest = agentWatermarks.keys().next().value;
1880
- if (oldest !== void 0) agentWatermarks.delete(oldest);
1881
- }
1882
- }
1883
- function rememberPreparedTrigger(queue, retryKey, prepared) {
1884
- if (queue.preparedTriggers.has(retryKey)) queue.preparedTriggers.delete(retryKey);
1885
- queue.preparedTriggers.set(retryKey, prepared);
1886
- if (queue.preparedTriggers.size > maxPreparedTriggerEntries) {
1887
- const oldest = queue.preparedTriggers.keys().next().value;
1888
- if (oldest !== void 0) queue.preparedTriggers.delete(oldest);
1889
- }
1890
- return prepared;
1891
- }
1892
- function computePendingHistory(queue, agentId, roomId, limit) {
1893
- if (limit <= 0 || queue.entries.length === 0) return [];
1894
- const wm = agentWatermarks.get(wmKey(agentId, roomId)) ?? 0;
1895
- const startRel = Math.max(wm, queue.baseIndex) - queue.baseIndex;
1896
- const available = queue.entries.slice(startRel);
1897
- return available.length > limit ? available.slice(-limit) : available;
1898
- }
1899
- return {
1900
- recordPending(roomId, entry) {
1901
- appendToQueue(getOrCreateQueue(roomId), entry);
1902
- },
1903
- getPendingHistory(agentId, roomId, limit) {
1904
- const queue = roomQueues.get(roomId);
1905
- if (!queue) return [];
1906
- return computePendingHistory(queue, agentId, roomId, limit);
1907
- },
1908
- recordTrigger(roomId, entry) {
1909
- return appendToQueue(getOrCreateQueue(roomId), entry);
1910
- },
1911
- prepareTrigger(agentId, roomId, limit, entry) {
1912
- const queue = getOrCreateQueue(roomId);
1913
- const retryKey = preparedTriggerKey(agentId, entry.messageId);
1914
- if (retryKey) {
1915
- const prepared = queue.preparedTriggers.get(retryKey);
1916
- if (prepared) return rememberPreparedTrigger(queue, retryKey, prepared);
1917
- }
1918
- const prepared = {
1919
- history: computePendingHistory(queue, agentId, roomId, limit),
1920
- ...appendToQueue(queue, entry)
1921
- };
1922
- if (retryKey) return rememberPreparedTrigger(queue, retryKey, prepared);
1923
- return prepared;
1924
- },
1925
- consumeHistory(agentId, roomId, snapshot, messageId) {
1926
- const key = wmKey(agentId, roomId);
1927
- const queue = roomQueues.get(roomId);
1928
- if (!queue) {
1929
- agentWatermarks.delete(key);
1930
- return;
1931
- }
1932
- if (queue.generation !== snapshot.queueGeneration) return;
1933
- rememberWatermark(key, snapshot.snapshotIdx);
1934
- const retryKey = preparedTriggerKey(agentId, messageId);
1935
- if (queue && retryKey) queue.preparedTriggers.delete(retryKey);
1936
- }
1937
- };
1938
- }
1939
- function createRoomHistoryTracker(maxQueueSize = DEFAULT_MAX_QUEUE_SIZE, maxRoomQueues = DEFAULT_MAX_ROOM_QUEUES, maxWatermarkEntries = MAX_WATERMARK_ENTRIES, maxPreparedTriggerEntries = MAX_PREPARED_TRIGGER_ENTRIES) {
1940
- const tracker = createRoomHistoryTrackerInternal(maxQueueSize, maxRoomQueues, maxWatermarkEntries, maxPreparedTriggerEntries);
1941
- return {
1942
- recordPending: tracker.recordPending,
1943
- prepareTrigger: tracker.prepareTrigger,
1944
- consumeHistory: tracker.consumeHistory
1945
- };
1946
- }
1947
- //#endregion
1948
- //#region extensions/matrix/src/matrix/monitor/thread-context.ts
1949
- const MAX_TRACKED_THREAD_STARTERS = 256;
1950
- const MAX_THREAD_STARTER_BODY_LENGTH = 500;
1951
- function truncateThreadStarterBody(value) {
1952
- if (value.length <= MAX_THREAD_STARTER_BODY_LENGTH) return value;
1953
- return `${value.slice(0, MAX_THREAD_STARTER_BODY_LENGTH - 3)}...`;
1954
- }
1955
- function summarizeMatrixThreadStarterEvent(event) {
1956
- const body = summarizeMatrixMessageContextEvent(event);
1957
- if (body) return truncateThreadStarterBody(body);
1958
- const content = event.content;
1959
- const msgtype = trimMatrixMaybeString(content.msgtype);
1960
- if (msgtype) return `Matrix ${msgtype} message`;
1961
- const eventType = trimMatrixMaybeString(event.type);
1962
- return eventType ? `Matrix ${eventType} event` : void 0;
1963
- }
1964
- function formatMatrixThreadStarterBody(params) {
1965
- const senderLabel = params.senderName ?? params.senderId ?? "unknown sender";
1966
- const lines = [`Matrix thread root ${params.threadRootId} from ${senderLabel}:`];
1967
- if (params.summary) lines.push(params.summary);
1968
- return lines.join("\n");
1969
- }
1970
- function createMatrixThreadContextResolver(params) {
1971
- const cache = /* @__PURE__ */ new Map();
1972
- const remember = (key, value) => {
1973
- cache.set(key, value);
1974
- if (cache.size > MAX_TRACKED_THREAD_STARTERS) {
1975
- const oldest = cache.keys().next().value;
1976
- if (typeof oldest === "string") cache.delete(oldest);
1977
- }
1978
- return value;
1979
- };
1980
- return async (input) => {
1981
- const cacheKey = `${input.roomId}:${input.threadRootId}`;
1982
- const cached = cache.get(cacheKey);
1983
- if (cached) return cached;
1984
- const rootEvent = await params.client.getEvent(input.roomId, input.threadRootId).catch((err) => {
1985
- params.logVerboseMessage(`matrix: failed resolving thread root room=${input.roomId} id=${input.threadRootId}: ${String(err)}`);
1986
- return null;
1987
- });
1988
- if (!rootEvent) return { threadStarterBody: `Matrix thread root ${input.threadRootId}` };
1989
- const rawEvent = rootEvent;
1990
- const senderId = trimMatrixMaybeString(rawEvent.sender);
1991
- const senderName = senderId && await params.getMemberDisplayName(input.roomId, senderId).catch(() => void 0);
1992
- const senderLabel = senderName ?? senderId;
1993
- const summary = summarizeMatrixThreadStarterEvent(rawEvent);
1994
- return remember(cacheKey, {
1995
- threadStarterBody: formatMatrixThreadStarterBody({
1996
- threadRootId: input.threadRootId,
1997
- senderId,
1998
- senderName,
1999
- summary
2000
- }),
2001
- senderId,
2002
- senderLabel,
2003
- summary
2004
- });
2005
- };
2006
- }
2007
- //#endregion
2008
- //#region extensions/matrix/src/matrix/monitor/handler.ts
2009
- const ALLOW_FROM_STORE_CACHE_TTL_MS = 3e4;
2010
- const PAIRING_REPLY_COOLDOWN_MS = 5 * 6e4;
2011
- const MAX_TRACKED_PAIRING_REPLY_SENDERS = 512;
2012
- function resolveMatrixMentionPrecheckText(params) {
2013
- if (params.locationText?.trim()) return params.locationText.trim();
2014
- if (typeof params.content.body === "string" && params.content.body.trim()) return params.content.body.trim();
2015
- if (isPollStartType(params.eventType)) {
2016
- const parsed = parsePollStartContent(params.content);
2017
- if (parsed) return formatPollAsText(parsed);
2018
- }
2019
- return "";
2020
- }
2021
- function resolveMatrixInboundBodyText(params) {
2022
- if (params.mediaPlaceholder) return params.rawBody || params.mediaPlaceholder;
2023
- if (!params.mediaDownloadFailed || !params.hadMediaUrl) return params.rawBody;
2024
- return formatMatrixMediaUnavailableText({
2025
- body: params.rawBody,
2026
- filename: params.filename,
2027
- msgtype: params.msgtype
2028
- });
2029
- }
2030
- function resolveMatrixPendingHistoryText(params) {
2031
- if (params.mentionPrecheckText) return params.mentionPrecheckText;
2032
- if (!params.mediaUrl) return "";
2033
- const body = typeof params.content.body === "string" ? params.content.body.trim() : void 0;
2034
- const filename = typeof params.content.filename === "string" ? params.content.filename.trim() : void 0;
2035
- const msgtype = typeof params.content.msgtype === "string" ? params.content.msgtype : void 0;
2036
- return formatMatrixMessageText({
2037
- body: resolveMatrixMessageBody({
2038
- body,
2039
- filename,
2040
- msgtype
2041
- }),
2042
- attachment: resolveMatrixMessageAttachment({
2043
- body,
2044
- filename,
2045
- msgtype
2046
- })
2047
- }) ?? "";
2048
- }
2049
- function resolveMatrixAllowBotsMode(value) {
2050
- if (value === true) return "all";
2051
- if (value === "mentions") return "mentions";
2052
- return "off";
2053
- }
2054
- function createMatrixRoomMessageHandler(params) {
2055
- const { client, core, cfg, accountId, runtime, logger, logVerboseMessage, allowFrom, groupAllowFrom = [], roomsConfig, accountAllowBots, configuredBotUserIds = /* @__PURE__ */ new Set(), groupPolicy, replyToMode, threadReplies, dmThreadReplies, streaming, blockStreamingEnabled, dmEnabled, dmPolicy, textLimit, mediaMaxBytes, historyLimit, startupMs, startupGraceMs, dropPreStartupMessages, inboundDeduper, directTracker, getRoomInfo, getMemberDisplayName, needsRoomAliasesForConfig } = params;
2056
- const contextVisibilityMode = resolveChannelContextVisibilityMode({
2057
- cfg,
2058
- channel: "matrix",
2059
- accountId
2060
- });
2061
- let cachedStoreAllowFrom = null;
2062
- const pairingReplySentAtMsBySender = /* @__PURE__ */ new Map();
2063
- const resolveThreadContext = createMatrixThreadContextResolver({
2064
- client,
2065
- getMemberDisplayName,
2066
- logVerboseMessage
2067
- });
2068
- const resolveReplyContext = createMatrixReplyContextResolver({
2069
- client,
2070
- getMemberDisplayName,
2071
- logVerboseMessage
2072
- });
2073
- const roomHistoryTracker = createRoomHistoryTracker();
2074
- const roomIngressTails = /* @__PURE__ */ new Map();
2075
- const readStoreAllowFrom = async () => {
2076
- const now = Date.now();
2077
- if (cachedStoreAllowFrom && now < cachedStoreAllowFrom.expiresAtMs) return cachedStoreAllowFrom.value;
2078
- const value = await core.channel.pairing.readAllowFromStore({
2079
- channel: "matrix",
2080
- env: process.env,
2081
- accountId
2082
- }).catch(() => []);
2083
- cachedStoreAllowFrom = {
2084
- value,
2085
- expiresAtMs: now + ALLOW_FROM_STORE_CACHE_TTL_MS
2086
- };
2087
- return value;
2088
- };
2089
- const shouldSendPairingReply = (senderId, created) => {
2090
- const now = Date.now();
2091
- if (created) {
2092
- pairingReplySentAtMsBySender.set(senderId, now);
2093
- return true;
2094
- }
2095
- const lastSentAtMs = pairingReplySentAtMsBySender.get(senderId);
2096
- if (typeof lastSentAtMs === "number" && now - lastSentAtMs < PAIRING_REPLY_COOLDOWN_MS) return false;
2097
- pairingReplySentAtMsBySender.set(senderId, now);
2098
- if (pairingReplySentAtMsBySender.size > MAX_TRACKED_PAIRING_REPLY_SENDERS) {
2099
- const oldestSender = pairingReplySentAtMsBySender.keys().next().value;
2100
- if (typeof oldestSender === "string") pairingReplySentAtMsBySender.delete(oldestSender);
2101
- }
2102
- return true;
2103
- };
2104
- const runRoomIngress = async (roomId, task) => {
2105
- const previous = roomIngressTails.get(roomId) ?? Promise.resolve();
2106
- let releaseCurrent;
2107
- const current = new Promise((resolve) => {
2108
- releaseCurrent = resolve;
2109
- });
2110
- const chain = previous.catch(() => {}).then(() => current);
2111
- roomIngressTails.set(roomId, chain);
2112
- await previous.catch(() => {});
2113
- try {
2114
- return await task();
2115
- } finally {
2116
- releaseCurrent();
2117
- if (roomIngressTails.get(roomId) === chain) roomIngressTails.delete(roomId);
2118
- }
2119
- };
2120
- return async (roomId, event) => {
2121
- const eventId = typeof event.event_id === "string" ? event.event_id.trim() : "";
2122
- let claimedInboundEvent = false;
2123
- let draftStreamRef;
2124
- try {
2125
- const eventType = event.type;
2126
- if (eventType === EventType.RoomMessageEncrypted) return;
2127
- const isPollEvent = isPollEventType(eventType);
2128
- const isReactionEvent = eventType === EventType.Reaction;
2129
- const locationContent = event.content;
2130
- const isLocationEvent = eventType === EventType.Location || eventType === EventType.RoomMessage && locationContent.msgtype === EventType.Location;
2131
- if (eventType !== EventType.RoomMessage && !isPollEvent && !isLocationEvent && !isReactionEvent) return;
2132
- logVerboseMessage(`matrix: inbound event room=${roomId} type=${eventType} id=${event.event_id ?? "unknown"}`);
2133
- if (event.unsigned?.redacted_because) return;
2134
- const senderId = event.sender;
2135
- if (!senderId) return;
2136
- const eventTs = event.origin_server_ts;
2137
- const eventAge = event.unsigned?.age;
2138
- const commitInboundEventIfClaimed = async () => {
2139
- if (!claimedInboundEvent || !inboundDeduper || !eventId) return;
2140
- await inboundDeduper.commitEvent({
2141
- roomId,
2142
- eventId
2143
- });
2144
- claimedInboundEvent = false;
2145
- };
2146
- const readIngressPrefix = async () => {
2147
- const selfUserId = await client.getUserId();
2148
- if (senderId === selfUserId) return;
2149
- if (dropPreStartupMessages) {
2150
- if (typeof eventTs === "number" && eventTs < startupMs - startupGraceMs) return;
2151
- if (typeof eventTs !== "number" && typeof eventAge === "number" && eventAge > startupGraceMs) return;
2152
- }
2153
- let content = event.content;
2154
- if (eventType === EventType.RoomMessage && isMatrixVerificationRoomMessage({
2155
- msgtype: content.msgtype,
2156
- body: content.body
2157
- })) {
2158
- logVerboseMessage(`matrix: skip verification/system room message room=${roomId}`);
2159
- return;
2160
- }
2161
- const locationPayload = resolveMatrixLocation({
2162
- eventType,
2163
- content
2164
- });
2165
- const relates = content["m.relates_to"];
2166
- if (relates && "rel_type" in relates && relates.rel_type === RelationType.Replace) return;
2167
- if (eventId && inboundDeduper) {
2168
- claimedInboundEvent = inboundDeduper.claimEvent({
2169
- roomId,
2170
- eventId
2171
- });
2172
- if (!claimedInboundEvent) {
2173
- logVerboseMessage(`matrix: skip duplicate inbound event room=${roomId} id=${eventId}`);
2174
- return;
2175
- }
2176
- }
2177
- return {
2178
- content,
2179
- isDirectMessage: await directTracker.isDirectMessage({
2180
- roomId,
2181
- senderId,
2182
- selfUserId
2183
- }),
2184
- locationPayload,
2185
- selfUserId
2186
- };
2187
- };
2188
- const continueIngress = async (params) => {
2189
- let content = params.content;
2190
- const isDirectMessage = params.isDirectMessage;
2191
- const isRoom = !isDirectMessage;
2192
- const { locationPayload, selfUserId } = params;
2193
- if (isRoom && groupPolicy === "disabled") {
2194
- await commitInboundEventIfClaimed();
2195
- return;
2196
- }
2197
- const roomInfoForConfig = isRoom && needsRoomAliasesForConfig ? await getRoomInfo(roomId, { includeAliases: true }) : void 0;
2198
- const roomAliasesForConfig = roomInfoForConfig ? [roomInfoForConfig.canonicalAlias ?? "", ...roomInfoForConfig.altAliases].filter(Boolean) : [];
2199
- const roomConfigInfo = isRoom ? resolveMatrixRoomConfig({
2200
- rooms: roomsConfig,
2201
- roomId,
2202
- aliases: roomAliasesForConfig
2203
- }) : void 0;
2204
- const roomConfig = roomConfigInfo?.config;
2205
- const allowBotsMode = resolveMatrixAllowBotsMode(roomConfig?.allowBots ?? accountAllowBots);
2206
- const isConfiguredBotSender = configuredBotUserIds.has(senderId);
2207
- const roomMatchMeta = roomConfigInfo ? `matchKey=${roomConfigInfo.matchKey ?? "none"} matchSource=${roomConfigInfo.matchSource ?? "none"}` : "matchKey=none matchSource=none";
2208
- if (isConfiguredBotSender && allowBotsMode === "off") {
2209
- logVerboseMessage(`matrix: drop configured bot sender=${senderId} (allowBots=false${isDirectMessage ? "" : `, ${roomMatchMeta}`})`);
2210
- await commitInboundEventIfClaimed();
2211
- return;
2212
- }
2213
- if (isRoom && roomConfig && !roomConfigInfo?.allowed) {
2214
- logVerboseMessage(`matrix: room disabled room=${roomId} (${roomMatchMeta})`);
2215
- await commitInboundEventIfClaimed();
2216
- return;
2217
- }
2218
- if (isRoom && groupPolicy === "allowlist") {
2219
- if (!roomConfigInfo?.allowlistConfigured) {
2220
- logVerboseMessage(`matrix: drop room message (no allowlist, ${roomMatchMeta})`);
2221
- await commitInboundEventIfClaimed();
2222
- return;
2223
- }
2224
- if (!roomConfig) {
2225
- logVerboseMessage(`matrix: drop room message (not in allowlist, ${roomMatchMeta})`);
2226
- await commitInboundEventIfClaimed();
2227
- return;
2228
- }
2229
- }
2230
- let senderNamePromise = null;
2231
- const getSenderName = async () => {
2232
- senderNamePromise ??= getMemberDisplayName(roomId, senderId).catch(() => senderId);
2233
- return await senderNamePromise;
2234
- };
2235
- const { effectiveGroupAllowFrom, effectiveRoomUsers, groupAllowConfigured, directAllowMatch, roomUserMatch, groupAllowMatch, commandAuthorizers } = resolveMatrixMonitorAccessState({
2236
- allowFrom,
2237
- storeAllowFrom: await readStoreAllowFrom(),
2238
- groupAllowFrom,
2239
- roomUsers: roomConfig?.users ?? [],
2240
- senderId,
2241
- isRoom
2242
- });
2243
- if (isDirectMessage) {
2244
- if (!dmEnabled || dmPolicy === "disabled") {
2245
- await commitInboundEventIfClaimed();
2246
- return;
2247
- }
2248
- if (dmPolicy !== "open") {
2249
- const allowMatchMeta = formatAllowlistMatchMeta(directAllowMatch);
2250
- if (!directAllowMatch.allowed) {
2251
- if (!isReactionEvent && dmPolicy === "pairing") {
2252
- const senderName = await getSenderName();
2253
- const { code, created } = await core.channel.pairing.upsertPairingRequest({
2254
- channel: "matrix",
2255
- id: senderId,
2256
- accountId,
2257
- meta: { name: senderName }
2258
- });
2259
- if (shouldSendPairingReply(senderId, created)) {
2260
- const pairingReply = core.channel.pairing.buildPairingReply({
2261
- channel: "matrix",
2262
- idLine: `Your Matrix user id: ${senderId}`,
2263
- code
2264
- });
2265
- logVerboseMessage(created ? `matrix pairing request sender=${senderId} name=${senderName ?? "unknown"} (${allowMatchMeta})` : `matrix pairing reminder sender=${senderId} name=${senderName ?? "unknown"} (${allowMatchMeta})`);
2266
- try {
2267
- await sendMessageMatrix(`room:${roomId}`, created ? pairingReply : `${pairingReply}\n\nPairing request is still pending approval. Reusing existing code.`, {
2268
- client,
2269
- cfg,
2270
- accountId
2271
- });
2272
- await commitInboundEventIfClaimed();
2273
- } catch (err) {
2274
- logVerboseMessage(`matrix pairing reply failed for ${senderId}: ${String(err)}`);
2275
- return;
2276
- }
2277
- } else {
2278
- logVerboseMessage(`matrix pairing reminder suppressed sender=${senderId} (cooldown)`);
2279
- await commitInboundEventIfClaimed();
2280
- }
2281
- }
2282
- if (isReactionEvent || dmPolicy !== "pairing") {
2283
- logVerboseMessage(`matrix: blocked ${isReactionEvent ? "reaction" : "dm"} sender ${senderId} (dmPolicy=${dmPolicy}, ${allowMatchMeta})`);
2284
- await commitInboundEventIfClaimed();
2285
- }
2286
- return;
2287
- }
2288
- }
2289
- }
2290
- if (isRoom && roomUserMatch && !roomUserMatch.allowed) {
2291
- logVerboseMessage(`matrix: blocked sender ${senderId} (room users allowlist, ${roomMatchMeta}, ${formatAllowlistMatchMeta(roomUserMatch)})`);
2292
- await commitInboundEventIfClaimed();
2293
- return;
2294
- }
2295
- if (isRoom && groupPolicy === "allowlist" && effectiveRoomUsers.length === 0 && groupAllowConfigured && groupAllowMatch && !groupAllowMatch.allowed) {
2296
- logVerboseMessage(`matrix: blocked sender ${senderId} (groupAllowFrom, ${roomMatchMeta}, ${formatAllowlistMatchMeta(groupAllowMatch)})`);
2297
- await commitInboundEventIfClaimed();
2298
- return;
2299
- }
2300
- if (isRoom) logVerboseMessage(`matrix: allow room ${roomId} (${roomMatchMeta})`);
2301
- if (isReactionEvent) {
2302
- await handleInboundMatrixReaction({
2303
- client,
2304
- core,
2305
- cfg,
2306
- accountId,
2307
- roomId,
2308
- event,
2309
- senderId,
2310
- senderLabel: await getSenderName(),
2311
- selfUserId,
2312
- isDirectMessage,
2313
- logVerboseMessage
2314
- });
2315
- await commitInboundEventIfClaimed();
2316
- return;
2317
- }
2318
- let pollSnapshotPromise = null;
2319
- const getPollSnapshot = async () => {
2320
- if (!isPollEvent) return null;
2321
- pollSnapshotPromise ??= fetchMatrixPollSnapshot(client, roomId, event).catch((err) => {
2322
- logVerboseMessage(`matrix: failed resolving poll snapshot room=${roomId} id=${event.event_id ?? "unknown"}: ${String(err)}`);
2323
- return null;
2324
- });
2325
- return await pollSnapshotPromise;
2326
- };
2327
- const mentionPrecheckText = resolveMatrixMentionPrecheckText({
2328
- eventType,
2329
- content,
2330
- locationText: locationPayload?.text
2331
- });
2332
- const contentUrl = "url" in content && typeof content.url === "string" ? content.url : void 0;
2333
- const contentFile = "file" in content && content.file && typeof content.file === "object" ? content.file : void 0;
2334
- const mediaUrl = contentUrl ?? contentFile?.url;
2335
- const pendingHistoryText = resolveMatrixPendingHistoryText({
2336
- mentionPrecheckText,
2337
- content,
2338
- mediaUrl
2339
- });
2340
- const pendingHistoryPollText = !pendingHistoryText && isPollEvent && historyLimit > 0 ? (await getPollSnapshot())?.text : "";
2341
- if (!mentionPrecheckText && !mediaUrl && !isPollEvent) {
2342
- await commitInboundEventIfClaimed();
2343
- return;
2344
- }
2345
- const _messageId = event.event_id ?? "";
2346
- const _threadRootId = resolveMatrixThreadRootId({
2347
- event,
2348
- content
2349
- });
2350
- const thread = resolveMatrixThreadRouting({
2351
- isDirectMessage,
2352
- threadReplies,
2353
- dmThreadReplies,
2354
- messageId: _messageId,
2355
- threadRootId: _threadRootId
2356
- });
2357
- const { route: _route, configuredBinding: _configuredBinding, runtimeBindingId: _runtimeBindingId } = resolveMatrixInboundRoute({
2358
- cfg,
2359
- accountId,
2360
- roomId,
2361
- senderId,
2362
- isDirectMessage,
2363
- threadId: thread.threadId,
2364
- eventTs: eventTs ?? void 0,
2365
- resolveAgentRoute: core.channel.routing.resolveAgentRoute
2366
- });
2367
- const agentMentionRegexes = core.channel.mentions.buildMentionRegexes(cfg, _route.agentId);
2368
- const selfDisplayName = content.formatted_body ? await getMemberDisplayName(roomId, selfUserId).catch(() => void 0) : void 0;
2369
- const { wasMentioned, hasExplicitMention } = resolveMentions({
2370
- content,
2371
- userId: selfUserId,
2372
- displayName: selfDisplayName,
2373
- text: mentionPrecheckText,
2374
- mentionRegexes: agentMentionRegexes
2375
- });
2376
- if (isConfiguredBotSender && allowBotsMode === "mentions" && !isDirectMessage && !wasMentioned) {
2377
- logVerboseMessage(`matrix: drop configured bot sender=${senderId} (allowBots=mentions, missing mention, ${roomMatchMeta})`);
2378
- await commitInboundEventIfClaimed();
2379
- return;
2380
- }
2381
- const allowTextCommands = core.channel.commands.shouldHandleTextCommands({
2382
- cfg,
2383
- surface: "matrix"
2384
- });
2385
- const useAccessGroups = cfg.commands?.useAccessGroups !== false;
2386
- const hasControlCommandInMessage = core.channel.text.hasControlCommand(mentionPrecheckText, cfg);
2387
- const commandGate = resolveControlCommandGate({
2388
- useAccessGroups,
2389
- authorizers: commandAuthorizers,
2390
- allowTextCommands,
2391
- hasControlCommand: hasControlCommandInMessage
2392
- });
2393
- const commandAuthorized = commandGate.commandAuthorized;
2394
- if (isRoom && commandGate.shouldBlock) {
2395
- logInboundDrop({
2396
- log: logVerboseMessage,
2397
- channel: "matrix",
2398
- reason: "control command (unauthorized)",
2399
- target: senderId
2400
- });
2401
- await commitInboundEventIfClaimed();
2402
- return;
2403
- }
2404
- const shouldRequireMention = isRoom ? roomConfig?.autoReply === true ? false : roomConfig?.autoReply === false ? true : typeof roomConfig?.requireMention === "boolean" ? roomConfig?.requireMention : true : false;
2405
- const shouldBypassMention = allowTextCommands && isRoom && shouldRequireMention && !wasMentioned && !hasExplicitMention && commandAuthorized && hasControlCommandInMessage;
2406
- const canDetectMention = agentMentionRegexes.length > 0 || hasExplicitMention;
2407
- if (isRoom && shouldRequireMention && !wasMentioned && !shouldBypassMention) {
2408
- const pendingHistoryBody = pendingHistoryText || pendingHistoryPollText;
2409
- if (historyLimit > 0 && pendingHistoryBody) {
2410
- const pendingEntry = {
2411
- sender: senderId,
2412
- body: pendingHistoryBody,
2413
- timestamp: eventTs ?? void 0,
2414
- messageId: _messageId
2415
- };
2416
- roomHistoryTracker.recordPending(roomId, pendingEntry);
2417
- }
2418
- logger.info("skipping room message", {
2419
- roomId,
2420
- reason: "no-mention"
2421
- });
2422
- await commitInboundEventIfClaimed();
2423
- return;
2424
- }
2425
- if (isPollEvent) {
2426
- const pollSnapshot = await getPollSnapshot();
2427
- if (!pollSnapshot) return;
2428
- content = {
2429
- msgtype: "m.text",
2430
- body: pollSnapshot.text
2431
- };
2432
- }
2433
- let media = null;
2434
- let mediaDownloadFailed = false;
2435
- const finalContentUrl = "url" in content && typeof content.url === "string" ? content.url : void 0;
2436
- const finalContentFile = "file" in content && content.file && typeof content.file === "object" ? content.file : void 0;
2437
- const finalMediaUrl = finalContentUrl ?? finalContentFile?.url;
2438
- const contentBody = typeof content.body === "string" ? content.body.trim() : "";
2439
- const originalFilename = (typeof content.filename === "string" ? content.filename.trim() : "") || contentBody || void 0;
2440
- const contentInfo = "info" in content && content.info && typeof content.info === "object" ? content.info : void 0;
2441
- const contentType = contentInfo?.mimetype;
2442
- const contentSize = typeof contentInfo?.size === "number" ? contentInfo.size : void 0;
2443
- if (finalMediaUrl?.startsWith("mxc://")) try {
2444
- media = await downloadMatrixMedia({
2445
- client,
2446
- mxcUrl: finalMediaUrl,
2447
- contentType,
2448
- sizeBytes: contentSize,
2449
- maxBytes: mediaMaxBytes,
2450
- file: finalContentFile,
2451
- originalFilename
2452
- });
2453
- } catch (err) {
2454
- mediaDownloadFailed = true;
2455
- const errorText = err instanceof Error ? err.message : String(err);
2456
- logVerboseMessage(`matrix: media download failed room=${roomId} id=${event.event_id ?? "unknown"} type=${content.msgtype} error=${errorText}`);
2457
- logger.warn("matrix media download failed", {
2458
- roomId,
2459
- eventId: event.event_id,
2460
- msgtype: content.msgtype,
2461
- encrypted: Boolean(finalContentFile),
2462
- error: errorText
2463
- });
2464
- }
2465
- const bodyText = resolveMatrixInboundBodyText({
2466
- rawBody: locationPayload?.text ?? contentBody,
2467
- filename: typeof content.filename === "string" ? content.filename : void 0,
2468
- mediaPlaceholder: media?.placeholder,
2469
- msgtype: content.msgtype,
2470
- hadMediaUrl: Boolean(finalMediaUrl),
2471
- mediaDownloadFailed
2472
- });
2473
- if (!bodyText) {
2474
- await commitInboundEventIfClaimed();
2475
- return;
2476
- }
2477
- const senderName = await getSenderName();
2478
- if (_configuredBinding) {
2479
- if (!(await ensureConfiguredAcpBindingReady({
2480
- cfg,
2481
- configuredBinding: _configuredBinding
2482
- })).ok) {
2483
- logInboundDrop({
2484
- log: logVerboseMessage,
2485
- channel: "matrix",
2486
- reason: "configured ACP binding unavailable",
2487
- target: _configuredBinding.spec.conversationId
2488
- });
2489
- return;
2490
- }
2491
- }
2492
- if (_runtimeBindingId) getSessionBindingService().touch(_runtimeBindingId, eventTs ?? void 0);
2493
- const preparedTrigger = isRoom && historyLimit > 0 ? roomHistoryTracker.prepareTrigger(_route.agentId, roomId, historyLimit, {
2494
- sender: senderName,
2495
- body: bodyText,
2496
- timestamp: eventTs ?? void 0,
2497
- messageId: _messageId
2498
- }) : void 0;
2499
- return {
2500
- route: _route,
2501
- roomConfig,
2502
- isDirectMessage,
2503
- isRoom,
2504
- shouldRequireMention,
2505
- wasMentioned,
2506
- shouldBypassMention,
2507
- canDetectMention,
2508
- commandAuthorized,
2509
- inboundHistory: preparedTrigger?.history,
2510
- senderName,
2511
- bodyText,
2512
- media,
2513
- locationPayload,
2514
- messageId: _messageId,
2515
- triggerSnapshot: preparedTrigger,
2516
- threadRootId: _threadRootId,
2517
- thread,
2518
- effectiveGroupAllowFrom,
2519
- effectiveRoomUsers
2520
- };
2521
- };
2522
- const ingressResult = historyLimit > 0 ? await runRoomIngress(roomId, async () => {
2523
- const prefix = await readIngressPrefix();
2524
- if (!prefix) return;
2525
- if (prefix.isDirectMessage) return { deferredPrefix: prefix };
2526
- return { ingressResult: await continueIngress(prefix) };
2527
- }) : void 0;
2528
- const resolvedIngressResult = historyLimit > 0 ? ingressResult?.deferredPrefix ? await continueIngress(ingressResult.deferredPrefix) : ingressResult?.ingressResult : await (async () => {
2529
- const prefix = await readIngressPrefix();
2530
- if (!prefix) return;
2531
- return await continueIngress(prefix);
2532
- })();
2533
- if (!resolvedIngressResult) return;
2534
- const { route: _route, roomConfig, isDirectMessage, isRoom, shouldRequireMention, wasMentioned, shouldBypassMention, canDetectMention, commandAuthorized, inboundHistory, senderName, bodyText, media, locationPayload, messageId: _messageId, triggerSnapshot, threadRootId: _threadRootId, thread, effectiveGroupAllowFrom, effectiveRoomUsers } = resolvedIngressResult;
2535
- const replyToEventId = resolveMatrixReplyToEventId(event.content);
2536
- const threadTarget = thread.threadId;
2537
- const isRoomContextSenderAllowed = (contextSenderId) => {
2538
- if (!isRoom || !contextSenderId) return true;
2539
- if (effectiveRoomUsers.length > 0) return resolveMatrixAllowListMatch({
2540
- allowList: effectiveRoomUsers,
2541
- userId: contextSenderId
2542
- }).allowed;
2543
- if (groupPolicy === "allowlist" && effectiveGroupAllowFrom.length > 0) return resolveMatrixAllowListMatch({
2544
- allowList: effectiveGroupAllowFrom,
2545
- userId: contextSenderId
2546
- }).allowed;
2547
- return true;
2548
- };
2549
- const shouldIncludeRoomContextSender = (kind, contextSenderId) => evaluateSupplementalContextVisibility({
2550
- mode: contextVisibilityMode,
2551
- kind,
2552
- senderAllowed: isRoomContextSenderAllowed(contextSenderId)
2553
- }).include;
2554
- let threadContext = _threadRootId ? await resolveThreadContext({
2555
- roomId,
2556
- threadRootId: _threadRootId
2557
- }) : void 0;
2558
- let threadContextBlockedByPolicy = false;
2559
- if (threadContext?.senderId && !shouldIncludeRoomContextSender("thread", threadContext.senderId)) {
2560
- logVerboseMessage(`matrix: drop thread root context (mode=${contextVisibilityMode})`);
2561
- threadContextBlockedByPolicy = true;
2562
- threadContext = void 0;
2563
- }
2564
- let replyContext;
2565
- if (replyToEventId && replyToEventId === _threadRootId && threadContext?.summary) replyContext = {
2566
- replyToBody: threadContext.summary,
2567
- replyToSender: threadContext.senderLabel,
2568
- replyToSenderId: threadContext.senderId
2569
- };
2570
- else if (replyToEventId && replyToEventId === _threadRootId && threadContextBlockedByPolicy) replyContext = await resolveReplyContext({
2571
- roomId,
2572
- eventId: replyToEventId
2573
- });
2574
- else replyContext = replyToEventId ? await resolveReplyContext({
2575
- roomId,
2576
- eventId: replyToEventId
2577
- }) : void 0;
2578
- if (replyContext?.replyToSenderId && !shouldIncludeRoomContextSender("quote", replyContext.replyToSenderId)) {
2579
- logVerboseMessage(`matrix: drop reply context (mode=${contextVisibilityMode})`);
2580
- replyContext = void 0;
2581
- }
2582
- const roomName = (isRoom ? await getRoomInfo(roomId) : void 0)?.name;
2583
- const envelopeFrom = isDirectMessage ? senderName : roomName ?? roomId;
2584
- const textWithId = `${bodyText}\n[matrix event id: ${_messageId} room: ${roomId}]`;
2585
- const storePath = core.channel.session.resolveStorePath(cfg.session?.store, { agentId: _route.agentId });
2586
- const envelopeOptions = core.channel.reply.resolveEnvelopeFormatOptions(cfg);
2587
- const previousTimestamp = core.channel.session.readSessionUpdatedAt({
2588
- storePath,
2589
- sessionKey: _route.sessionKey
2590
- });
2591
- const body = core.channel.reply.formatAgentEnvelope({
2592
- channel: "Matrix",
2593
- from: envelopeFrom,
2594
- timestamp: eventTs ?? void 0,
2595
- previousTimestamp,
2596
- envelope: envelopeOptions,
2597
- body: textWithId
2598
- });
2599
- const groupSystemPrompt = roomConfig?.systemPrompt?.trim() || void 0;
2600
- const ctxPayload = core.channel.reply.finalizeInboundContext({
2601
- Body: body,
2602
- RawBody: bodyText,
2603
- CommandBody: bodyText,
2604
- InboundHistory: inboundHistory && inboundHistory.length > 0 ? inboundHistory : void 0,
2605
- From: isDirectMessage ? `matrix:${senderId}` : `matrix:channel:${roomId}`,
2606
- To: `room:${roomId}`,
2607
- SessionKey: _route.sessionKey,
2608
- AccountId: _route.accountId,
2609
- ChatType: isDirectMessage ? "direct" : "channel",
2610
- ConversationLabel: envelopeFrom,
2611
- SenderName: senderName,
2612
- SenderId: senderId,
2613
- SenderUsername: senderId.split(":")[0]?.replace(/^@/, ""),
2614
- GroupSubject: isRoom ? roomName ?? roomId : void 0,
2615
- GroupId: isRoom ? roomId : void 0,
2616
- GroupSystemPrompt: isRoom ? groupSystemPrompt : void 0,
2617
- Provider: "matrix",
2618
- Surface: "matrix",
2619
- WasMentioned: isRoom ? wasMentioned : void 0,
2620
- MessageSid: _messageId,
2621
- ReplyToId: threadTarget ? void 0 : replyToEventId ?? void 0,
2622
- ReplyToBody: replyContext?.replyToBody,
2623
- ReplyToSender: replyContext?.replyToSender,
2624
- MessageThreadId: threadTarget,
2625
- ThreadStarterBody: threadContext?.threadStarterBody,
2626
- Timestamp: eventTs ?? void 0,
2627
- MediaPath: media?.path,
2628
- MediaType: media?.contentType,
2629
- MediaUrl: media?.path,
2630
- ...locationPayload?.context,
2631
- CommandAuthorized: commandAuthorized,
2632
- CommandSource: "text",
2633
- OriginatingChannel: "matrix",
2634
- OriginatingTo: `room:${roomId}`
2635
- });
2636
- await core.channel.session.recordInboundSession({
2637
- storePath,
2638
- sessionKey: ctxPayload.SessionKey ?? _route.sessionKey,
2639
- ctx: ctxPayload,
2640
- updateLastRoute: isDirectMessage ? {
2641
- sessionKey: _route.mainSessionKey,
2642
- channel: "matrix",
2643
- to: `room:${roomId}`,
2644
- accountId: _route.accountId
2645
- } : void 0,
2646
- onRecordError: (err) => {
2647
- logger.warn("failed updating session meta", {
2648
- error: String(err),
2649
- storePath,
2650
- sessionKey: ctxPayload.SessionKey ?? _route.sessionKey
2651
- });
2652
- }
2653
- });
2654
- logVerboseMessage(`matrix inbound: room=${roomId} from=${senderId} preview="${bodyText.slice(0, 200).replace(/\n/g, "\\n")}"`);
2655
- const replyTarget = ctxPayload.To;
2656
- if (!replyTarget) {
2657
- runtime.error?.("matrix: missing reply target");
2658
- return;
2659
- }
2660
- const { ackReaction, ackReactionScope: ackScope } = resolveMatrixAckReactionConfig({
2661
- cfg,
2662
- agentId: _route.agentId,
2663
- accountId
2664
- });
2665
- const shouldAckReaction = () => Boolean(ackReaction && core.channel.reactions.shouldAckReaction({
2666
- scope: ackScope,
2667
- isDirect: isDirectMessage,
2668
- isGroup: isRoom,
2669
- isMentionableGroup: isRoom,
2670
- requireMention: Boolean(shouldRequireMention),
2671
- canDetectMention,
2672
- effectiveWasMentioned: wasMentioned || shouldBypassMention,
2673
- shouldBypassMention
2674
- }));
2675
- if (shouldAckReaction() && _messageId) reactMatrixMessage(roomId, _messageId, ackReaction, client).catch((err) => {
2676
- logVerboseMessage(`matrix react failed for room ${roomId}: ${String(err)}`);
2677
- });
2678
- if (_messageId) sendReadReceiptMatrix(roomId, _messageId, client).catch((err) => {
2679
- logVerboseMessage(`matrix: read receipt failed room=${roomId} id=${_messageId}: ${String(err)}`);
2680
- });
2681
- const tableMode = core.channel.text.resolveMarkdownTableMode({
2682
- cfg,
2683
- channel: "matrix",
2684
- accountId: _route.accountId
2685
- });
2686
- const mediaLocalRoots = getAgentScopedMediaLocalRoots(cfg, _route.agentId);
2687
- let finalReplyDeliveryFailed = false;
2688
- let nonFinalReplyDeliveryFailed = false;
2689
- const { onModelSelected, ...prefixOptions } = createReplyPrefixOptions({
2690
- cfg,
2691
- agentId: _route.agentId,
2692
- channel: "matrix",
2693
- accountId: _route.accountId
2694
- });
2695
- const typingCallbacks = createTypingCallbacks({
2696
- start: () => sendTypingMatrix(roomId, true, void 0, client),
2697
- stop: () => sendTypingMatrix(roomId, false, void 0, client),
2698
- onStartError: (err) => {
2699
- logTypingFailure({
2700
- log: logVerboseMessage,
2701
- channel: "matrix",
2702
- action: "start",
2703
- target: roomId,
2704
- error: err
2705
- });
2706
- },
2707
- onStopError: (err) => {
2708
- logTypingFailure({
2709
- log: logVerboseMessage,
2710
- channel: "matrix",
2711
- action: "stop",
2712
- target: roomId,
2713
- error: err
2714
- });
2715
- }
2716
- });
2717
- const draftStreamingEnabled = streaming === "partial";
2718
- const draftReplyToId = replyToMode !== "off" && !threadTarget ? _messageId : void 0;
2719
- let currentDraftReplyToId = draftReplyToId;
2720
- const draftStream = draftStreamingEnabled ? createMatrixDraftStream({
2721
- roomId,
2722
- client,
2723
- cfg,
2724
- threadId: threadTarget,
2725
- replyToId: draftReplyToId,
2726
- preserveReplyId: replyToMode === "all",
2727
- accountId: _route.accountId,
2728
- log: logVerboseMessage
2729
- }) : void 0;
2730
- draftStreamRef = draftStream;
2731
- let currentDraftMessageGeneration = 0;
2732
- let currentDraftBlockOffset = 0;
2733
- let latestDraftFullText = "";
2734
- const pendingDraftBoundaries = [];
2735
- const latestQueuedDraftBoundaryOffsets = /* @__PURE__ */ new Map();
2736
- let draftConsumed = false;
2737
- const getDisplayableDraftText = () => {
2738
- const nextDraftBoundaryOffset = pendingDraftBoundaries.find((boundary) => boundary.messageGeneration === currentDraftMessageGeneration)?.endOffset;
2739
- if (nextDraftBoundaryOffset === void 0) return latestDraftFullText.slice(currentDraftBlockOffset);
2740
- return latestDraftFullText.slice(currentDraftBlockOffset, nextDraftBoundaryOffset);
2741
- };
2742
- const updateDraftFromLatestFullText = () => {
2743
- const blockText = getDisplayableDraftText();
2744
- if (blockText) draftStream?.update(blockText);
2745
- };
2746
- const queueDraftBlockBoundary = (payload, context) => {
2747
- const payloadTextLength = payload.text?.length ?? 0;
2748
- const messageGeneration = context?.assistantMessageIndex ?? currentDraftMessageGeneration;
2749
- const nextDraftBoundaryOffset = (latestQueuedDraftBoundaryOffsets.get(messageGeneration) ?? 0) + payloadTextLength;
2750
- latestQueuedDraftBoundaryOffsets.set(messageGeneration, nextDraftBoundaryOffset);
2751
- pendingDraftBoundaries.push({
2752
- messageGeneration,
2753
- endOffset: nextDraftBoundaryOffset
2754
- });
2755
- };
2756
- const advanceDraftBlockBoundary = (options) => {
2757
- const completedBoundary = pendingDraftBoundaries.shift();
2758
- if (completedBoundary) {
2759
- if (!pendingDraftBoundaries.some((entry) => entry.messageGeneration === completedBoundary.messageGeneration)) latestQueuedDraftBoundaryOffsets.delete(completedBoundary.messageGeneration);
2760
- if (completedBoundary.messageGeneration === currentDraftMessageGeneration) currentDraftBlockOffset = completedBoundary.endOffset;
2761
- return;
2762
- }
2763
- if (options?.fallbackToLatestEnd) currentDraftBlockOffset = latestDraftFullText.length;
2764
- };
2765
- const resetDraftBlockOffsets = () => {
2766
- currentDraftMessageGeneration += 1;
2767
- currentDraftBlockOffset = 0;
2768
- latestDraftFullText = "";
2769
- };
2770
- const { dispatcher, replyOptions, markDispatchIdle, markRunComplete } = core.channel.reply.createReplyDispatcherWithTyping({
2771
- ...prefixOptions,
2772
- humanDelay: core.channel.reply.resolveHumanDelayConfig(cfg, _route.agentId),
2773
- deliver: async (payload, info) => {
2774
- if (draftStream && info.kind !== "tool" && !payload.isCompactionNotice) {
2775
- const hasMedia = Boolean(payload.mediaUrl) || (payload.mediaUrls?.length ?? 0) > 0;
2776
- await draftStream.stop();
2777
- if (draftConsumed) {
2778
- await deliverMatrixReplies({
2779
- cfg,
2780
- replies: [payload],
2781
- roomId,
2782
- client,
2783
- runtime,
2784
- textLimit,
2785
- replyToMode,
2786
- threadId: threadTarget,
2787
- accountId: _route.accountId,
2788
- mediaLocalRoots,
2789
- tableMode
2790
- });
2791
- return;
2792
- }
2793
- const draftEventId = draftStream.eventId();
2794
- const payloadReplyToId = payload.replyToId?.trim() || void 0;
2795
- const payloadReplyMismatch = replyToMode !== "off" && !threadTarget && payloadReplyToId !== currentDraftReplyToId;
2796
- const mustDeliverFinalNormally = draftStream.mustDeliverFinalNormally();
2797
- if (draftEventId && payload.text && !hasMedia && !payloadReplyMismatch && !mustDeliverFinalNormally) {
2798
- if (payload.text !== draftStream.lastSentText()) try {
2799
- await editMessageMatrix(roomId, draftEventId, payload.text, {
2800
- client,
2801
- cfg,
2802
- threadId: threadTarget,
2803
- accountId: _route.accountId
2804
- });
2805
- } catch {
2806
- await client.redactEvent(roomId, draftEventId).catch(() => {});
2807
- await deliverMatrixReplies({
2808
- cfg,
2809
- replies: [payload],
2810
- roomId,
2811
- client,
2812
- runtime,
2813
- textLimit,
2814
- replyToMode,
2815
- threadId: threadTarget,
2816
- accountId: _route.accountId,
2817
- mediaLocalRoots,
2818
- tableMode
2819
- });
2820
- }
2821
- draftConsumed = true;
2822
- } else if (draftEventId && hasMedia && !payloadReplyMismatch) {
2823
- let textEditOk = !mustDeliverFinalNormally;
2824
- if (textEditOk && payload.text && payload.text !== draftStream.lastSentText()) textEditOk = await editMessageMatrix(roomId, draftEventId, payload.text, {
2825
- client,
2826
- cfg,
2827
- threadId: threadTarget,
2828
- accountId: _route.accountId
2829
- }).then(() => true, () => false);
2830
- const reusesDraftAsFinalText = Boolean(payload.text?.trim()) && textEditOk;
2831
- if (!reusesDraftAsFinalText) await client.redactEvent(roomId, draftEventId).catch(() => {});
2832
- await deliverMatrixReplies({
2833
- cfg,
2834
- replies: [{
2835
- ...payload,
2836
- text: reusesDraftAsFinalText ? void 0 : payload.text
2837
- }],
2838
- roomId,
2839
- client,
2840
- runtime,
2841
- textLimit,
2842
- replyToMode,
2843
- threadId: threadTarget,
2844
- accountId: _route.accountId,
2845
- mediaLocalRoots,
2846
- tableMode
2847
- });
2848
- draftConsumed = true;
2849
- } else {
2850
- if (draftEventId && (payloadReplyMismatch || mustDeliverFinalNormally)) await client.redactEvent(roomId, draftEventId).catch(() => {});
2851
- await deliverMatrixReplies({
2852
- cfg,
2853
- replies: [payload],
2854
- roomId,
2855
- client,
2856
- runtime,
2857
- textLimit,
2858
- replyToMode,
2859
- threadId: threadTarget,
2860
- accountId: _route.accountId,
2861
- mediaLocalRoots,
2862
- tableMode
2863
- });
2864
- }
2865
- if (info.kind === "block") {
2866
- draftConsumed = false;
2867
- advanceDraftBlockBoundary({ fallbackToLatestEnd: true });
2868
- draftStream.reset();
2869
- currentDraftReplyToId = replyToMode === "all" ? draftReplyToId : void 0;
2870
- updateDraftFromLatestFullText();
2871
- await sendTypingMatrix(roomId, true, void 0, client).catch(() => {});
2872
- }
2873
- } else await deliverMatrixReplies({
2874
- cfg,
2875
- replies: [payload],
2876
- roomId,
2877
- client,
2878
- runtime,
2879
- textLimit,
2880
- replyToMode,
2881
- threadId: threadTarget,
2882
- accountId: _route.accountId,
2883
- mediaLocalRoots,
2884
- tableMode
2885
- });
2886
- },
2887
- onError: (err, info) => {
2888
- if (info.kind === "final") finalReplyDeliveryFailed = true;
2889
- else nonFinalReplyDeliveryFailed = true;
2890
- if (info.kind === "block") advanceDraftBlockBoundary({ fallbackToLatestEnd: true });
2891
- runtime.error?.(`matrix ${info.kind} reply failed: ${String(err)}`);
2892
- },
2893
- onReplyStart: typingCallbacks.onReplyStart,
2894
- onIdle: typingCallbacks.onIdle
2895
- });
2896
- const { queuedFinal, counts } = await core.channel.reply.withReplyDispatcher({
2897
- dispatcher,
2898
- onSettled: () => {
2899
- markDispatchIdle();
2900
- },
2901
- run: async () => {
2902
- try {
2903
- return await core.channel.reply.dispatchReplyFromConfig({
2904
- ctx: ctxPayload,
2905
- cfg,
2906
- dispatcher,
2907
- replyOptions: {
2908
- ...replyOptions,
2909
- skillFilter: roomConfig?.skills,
2910
- disableBlockStreaming: !blockStreamingEnabled,
2911
- onPartialReply: draftStream ? (payload) => {
2912
- latestDraftFullText = payload.text ?? "";
2913
- updateDraftFromLatestFullText();
2914
- } : void 0,
2915
- onBlockReplyQueued: draftStream ? (payload, context) => {
2916
- if (payload.isCompactionNotice === true) return;
2917
- queueDraftBlockBoundary(payload, context);
2918
- } : void 0,
2919
- onAssistantMessageStart: draftStream ? () => {
2920
- resetDraftBlockOffsets();
2921
- } : void 0,
2922
- onModelSelected
2923
- }
2924
- });
2925
- } finally {
2926
- markRunComplete();
2927
- }
2928
- }
2929
- });
2930
- if (finalReplyDeliveryFailed) {
2931
- logVerboseMessage(`matrix: final reply delivery failed room=${roomId} id=${_messageId}; leaving event uncommitted`);
2932
- return;
2933
- }
2934
- if (!queuedFinal && nonFinalReplyDeliveryFailed) {
2935
- logVerboseMessage(`matrix: non-final reply delivery failed room=${roomId} id=${_messageId}; leaving event uncommitted`);
2936
- return;
2937
- }
2938
- if (isRoom && triggerSnapshot) roomHistoryTracker.consumeHistory(_route.agentId, roomId, triggerSnapshot, _messageId);
2939
- if (!queuedFinal) {
2940
- await commitInboundEventIfClaimed();
2941
- return;
2942
- }
2943
- const finalCount = counts.final;
2944
- logVerboseMessage(`matrix: delivered ${finalCount} reply${finalCount === 1 ? "" : "ies"} to ${replyTarget}`);
2945
- await commitInboundEventIfClaimed();
2946
- } catch (err) {
2947
- runtime.error?.(`matrix handler failed: ${String(err)}`);
2948
- } finally {
2949
- if (draftStreamRef) await draftStreamRef.stop().catch(() => {});
2950
- if (claimedInboundEvent && inboundDeduper && eventId) inboundDeduper.releaseEvent({
2951
- roomId,
2952
- eventId
2953
- });
2954
- }
2955
- };
2956
- }
2957
- //#endregion
2958
- //#region extensions/matrix/src/matrix/monitor/inbound-dedupe.ts
2959
- const INBOUND_DEDUPE_FILENAME = "inbound-dedupe.json";
2960
- const STORE_VERSION = 1;
2961
- const DEFAULT_MAX_ENTRIES = 2e4;
2962
- const DEFAULT_TTL_MS = 720 * 60 * 60 * 1e3;
2963
- const PERSIST_DEBOUNCE_MS = 250;
2964
- function normalizeEventPart(value) {
2965
- return value.trim();
2966
- }
2967
- function buildEventKey(params) {
2968
- const roomId = normalizeEventPart(params.roomId);
2969
- const eventId = normalizeEventPart(params.eventId);
2970
- return roomId && eventId ? `${roomId}|${eventId}` : "";
2971
- }
2972
- function resolveInboundDedupeStatePath(params) {
2973
- return resolveMatrixStateFilePath({
2974
- auth: params.auth,
2975
- env: params.env,
2976
- stateDir: params.stateDir,
2977
- filename: INBOUND_DEDUPE_FILENAME
2978
- });
2979
- }
2980
- function normalizeTimestamp(raw) {
2981
- if (typeof raw !== "number" || !Number.isFinite(raw)) return null;
2982
- return Math.max(0, Math.floor(raw));
2983
- }
2984
- function pruneSeenEvents(params) {
2985
- const { seen, ttlMs, maxEntries, nowMs } = params;
2986
- if (ttlMs > 0) {
2987
- const cutoff = nowMs - ttlMs;
2988
- for (const [key, ts] of seen) if (ts < cutoff) seen.delete(key);
2989
- }
2990
- const max = Math.max(0, Math.floor(maxEntries));
2991
- if (max <= 0) {
2992
- seen.clear();
2993
- return;
2994
- }
2995
- while (seen.size > max) {
2996
- const oldestKey = seen.keys().next().value;
2997
- if (typeof oldestKey !== "string") break;
2998
- seen.delete(oldestKey);
2999
- }
3000
- }
3001
- function toStoredState(params) {
3002
- pruneSeenEvents(params);
3003
- return {
3004
- version: STORE_VERSION,
3005
- entries: Array.from(params.seen.entries()).map(([key, ts]) => ({
3006
- key,
3007
- ts
3008
- }))
3009
- };
3010
- }
3011
- async function readStoredState(storagePath) {
3012
- const { value } = await readJsonFileWithFallback(storagePath, null);
3013
- if (value?.version !== STORE_VERSION || !Array.isArray(value.entries)) return null;
3014
- return value;
3015
- }
3016
- async function createMatrixInboundEventDeduper(params) {
3017
- const nowMs = params.nowMs ?? (() => Date.now());
3018
- const ttlMs = typeof params.ttlMs === "number" && Number.isFinite(params.ttlMs) ? Math.max(0, Math.floor(params.ttlMs)) : DEFAULT_TTL_MS;
3019
- const maxEntries = typeof params.maxEntries === "number" && Number.isFinite(params.maxEntries) ? Math.max(0, Math.floor(params.maxEntries)) : DEFAULT_MAX_ENTRIES;
3020
- const storagePath = params.storagePath ?? resolveInboundDedupeStatePath({
3021
- auth: params.auth,
3022
- env: params.env,
3023
- stateDir: params.stateDir
3024
- });
3025
- const seen = /* @__PURE__ */ new Map();
3026
- const pending = /* @__PURE__ */ new Set();
3027
- const persistLock = createAsyncLock();
3028
- try {
3029
- const stored = await readStoredState(storagePath);
3030
- for (const entry of stored?.entries ?? []) {
3031
- if (!entry || typeof entry.key !== "string") continue;
3032
- const key = entry.key.trim();
3033
- const ts = normalizeTimestamp(entry.ts);
3034
- if (!key || ts === null) continue;
3035
- seen.set(key, ts);
3036
- }
3037
- pruneSeenEvents({
3038
- seen,
3039
- ttlMs,
3040
- maxEntries,
3041
- nowMs: nowMs()
3042
- });
3043
- } catch (err) {
3044
- LogService.warn("MatrixInboundDedupe", "Failed loading Matrix inbound dedupe store:", err);
3045
- }
3046
- let dirty = false;
3047
- let persistTimer = null;
3048
- let persistPromise = null;
3049
- const persist = async () => {
3050
- dirty = false;
3051
- const payload = toStoredState({
3052
- seen,
3053
- ttlMs,
3054
- maxEntries,
3055
- nowMs: nowMs()
3056
- });
3057
- try {
3058
- await persistLock(async () => {
3059
- await writeJsonFileAtomically(storagePath, payload);
3060
- });
3061
- } catch (err) {
3062
- dirty = true;
3063
- throw err;
3064
- }
3065
- };
3066
- const flush = async () => {
3067
- if (persistTimer) {
3068
- clearTimeout(persistTimer);
3069
- persistTimer = null;
3070
- }
3071
- while (dirty || persistPromise) {
3072
- if (dirty && !persistPromise) persistPromise = persist().finally(() => {
3073
- persistPromise = null;
3074
- });
3075
- await persistPromise;
3076
- }
3077
- };
3078
- const schedulePersist = () => {
3079
- dirty = true;
3080
- if (persistTimer) return;
3081
- persistTimer = setTimeout(() => {
3082
- persistTimer = null;
3083
- flush().catch((err) => {
3084
- LogService.warn("MatrixInboundDedupe", "Failed persisting Matrix inbound dedupe store:", err);
3085
- });
3086
- }, PERSIST_DEBOUNCE_MS);
3087
- persistTimer.unref?.();
3088
- };
3089
- return {
3090
- claimEvent: ({ roomId, eventId }) => {
3091
- const key = buildEventKey({
3092
- roomId,
3093
- eventId
3094
- });
3095
- if (!key) return true;
3096
- pruneSeenEvents({
3097
- seen,
3098
- ttlMs,
3099
- maxEntries,
3100
- nowMs: nowMs()
3101
- });
3102
- if (seen.has(key) || pending.has(key)) return false;
3103
- pending.add(key);
3104
- return true;
3105
- },
3106
- commitEvent: async ({ roomId, eventId }) => {
3107
- const key = buildEventKey({
3108
- roomId,
3109
- eventId
3110
- });
3111
- if (!key) return;
3112
- pending.delete(key);
3113
- const ts = nowMs();
3114
- seen.delete(key);
3115
- seen.set(key, ts);
3116
- pruneSeenEvents({
3117
- seen,
3118
- ttlMs,
3119
- maxEntries,
3120
- nowMs: nowMs()
3121
- });
3122
- schedulePersist();
3123
- },
3124
- releaseEvent: ({ roomId, eventId }) => {
3125
- const key = buildEventKey({
3126
- roomId,
3127
- eventId
3128
- });
3129
- if (!key) return;
3130
- pending.delete(key);
3131
- },
3132
- flush,
3133
- stop: async () => {
3134
- try {
3135
- await flush();
3136
- } catch (err) {
3137
- LogService.warn("MatrixInboundDedupe", "Failed to flush Matrix inbound dedupe store during stop():", err);
3138
- }
3139
- }
3140
- };
3141
- }
3142
- //#endregion
3143
- //#region extensions/matrix/src/matrix/monitor/recent-invite.ts
3144
- function shouldPromoteRecentInviteRoom(params) {
3145
- if (!params.roomInfo.nameResolved || !params.roomInfo.aliasesResolved) return false;
3146
- const roomAliases = [params.roomInfo.canonicalAlias ?? "", ...params.roomInfo.altAliases].filter(Boolean);
3147
- if ((params.roomInfo.name?.trim() ?? "") || roomAliases.length > 0) return false;
3148
- return resolveMatrixRoomConfig({
3149
- rooms: params.rooms,
3150
- roomId: params.roomId,
3151
- aliases: roomAliases
3152
- }).matchSource === void 0;
3153
- }
3154
- //#endregion
3155
- //#region extensions/matrix/src/matrix/monitor/room-info.ts
3156
- const MAX_TRACKED_ROOM_INFO = 1024;
3157
- const MAX_TRACKED_MEMBER_DISPLAY_NAMES = 4096;
3158
- function rememberBounded(map, key, value, maxEntries) {
3159
- map.set(key, value);
3160
- if (map.size > maxEntries) {
3161
- const oldest = map.keys().next().value;
3162
- if (typeof oldest === "string") map.delete(oldest);
3163
- }
3164
- }
3165
- function createMatrixRoomInfoResolver(client) {
3166
- const roomNameCache = /* @__PURE__ */ new Map();
3167
- const roomAliasCache = /* @__PURE__ */ new Map();
3168
- const memberDisplayNameCache = /* @__PURE__ */ new Map();
3169
- const getRoomName = async (roomId) => {
3170
- if (roomNameCache.has(roomId)) return roomNameCache.get(roomId) ?? { nameResolved: false };
3171
- let name;
3172
- let nameResolved = false;
3173
- try {
3174
- const nameState = await client.getRoomStateEvent(roomId, "m.room.name", "");
3175
- nameResolved = true;
3176
- if (nameState && typeof nameState.name === "string") name = nameState.name;
3177
- } catch (err) {
3178
- if (isMatrixNotFoundError(err)) nameResolved = true;
3179
- }
3180
- const info = {
3181
- name,
3182
- nameResolved
3183
- };
3184
- if (nameResolved) rememberBounded(roomNameCache, roomId, info, MAX_TRACKED_ROOM_INFO);
3185
- return info;
3186
- };
3187
- const getRoomAliases = async (roomId) => {
3188
- const cached = roomAliasCache.get(roomId);
3189
- if (cached) return cached;
3190
- let canonicalAlias;
3191
- let altAliases = [];
3192
- let aliasesResolved = false;
3193
- try {
3194
- const aliasState = await client.getRoomStateEvent(roomId, "m.room.canonical_alias", "");
3195
- aliasesResolved = true;
3196
- if (aliasState && typeof aliasState.alias === "string") canonicalAlias = aliasState.alias;
3197
- const rawAliases = aliasState?.alt_aliases;
3198
- if (Array.isArray(rawAliases)) altAliases = rawAliases.filter((entry) => typeof entry === "string");
3199
- } catch (err) {
3200
- if (isMatrixNotFoundError(err)) aliasesResolved = true;
3201
- }
3202
- const info = {
3203
- canonicalAlias,
3204
- altAliases,
3205
- aliasesResolved
3206
- };
3207
- if (aliasesResolved) rememberBounded(roomAliasCache, roomId, info, MAX_TRACKED_ROOM_INFO);
3208
- return info;
3209
- };
3210
- const getRoomInfo = async (roomId, opts = {}) => {
3211
- const { name, nameResolved } = await getRoomName(roomId);
3212
- if (!opts.includeAliases) return {
3213
- name,
3214
- altAliases: [],
3215
- nameResolved,
3216
- aliasesResolved: false
3217
- };
3218
- return {
3219
- name,
3220
- nameResolved,
3221
- ...await getRoomAliases(roomId)
3222
- };
3223
- };
3224
- const getMemberDisplayName = async (roomId, userId) => {
3225
- const cacheKey = `${roomId}:${userId}`;
3226
- if (memberDisplayNameCache.has(cacheKey)) return memberDisplayNameCache.get(cacheKey) ?? userId;
3227
- const memberState = await client.getRoomStateEvent(roomId, "m.room.member", userId).catch(() => null);
3228
- const displayName = memberState && typeof memberState.displayname === "string" ? memberState.displayname : userId;
3229
- rememberBounded(memberDisplayNameCache, cacheKey, displayName, MAX_TRACKED_MEMBER_DISPLAY_NAMES);
3230
- return displayName;
3231
- };
3232
- return {
3233
- getRoomInfo,
3234
- getMemberDisplayName
3235
- };
3236
- }
3237
- //#endregion
3238
- //#region extensions/matrix/src/matrix/monitor/startup.ts
3239
- let matrixStartupMaintenanceDepsPromise;
3240
- async function loadMatrixStartupMaintenanceDeps() {
3241
- matrixStartupMaintenanceDepsPromise ??= Promise.all([
3242
- import("./config-update-B_S0YQ_Y.js"),
3243
- import("./device-health-B3q7Cmqn.js"),
3244
- import("./profile-B5n9yLlB.js"),
3245
- import("./legacy-crypto-restore-CsHmLVjY.js"),
3246
- import("./startup-verification-DS8Rlwfj.js")
3247
- ]).then(([configUpdateModule, deviceHealthModule, profileModule, legacyCryptoRestoreModule, startupVerificationModule]) => ({
3248
- updateMatrixAccountConfig: configUpdateModule.updateMatrixAccountConfig,
3249
- summarizeMatrixDeviceHealth: deviceHealthModule.summarizeMatrixDeviceHealth,
3250
- syncMatrixOwnProfile: profileModule.syncMatrixOwnProfile,
3251
- maybeRestoreLegacyMatrixBackup: legacyCryptoRestoreModule.maybeRestoreLegacyMatrixBackup,
3252
- ensureMatrixStartupVerification: startupVerificationModule.ensureMatrixStartupVerification
3253
- }));
3254
- return await matrixStartupMaintenanceDepsPromise;
3255
- }
3256
- async function runMatrixStartupMaintenance(params, deps) {
3257
- const runtimeDeps = deps ?? await loadMatrixStartupMaintenanceDeps();
3258
- try {
3259
- const profileSync = await runtimeDeps.syncMatrixOwnProfile({
3260
- client: params.client,
3261
- userId: params.auth.userId,
3262
- displayName: params.accountConfig.name,
3263
- avatarUrl: params.accountConfig.avatarUrl,
3264
- loadAvatarFromUrl: async (url, maxBytes) => await params.loadWebMedia(url, maxBytes)
3265
- });
3266
- if (profileSync.displayNameUpdated) params.logger.info(`matrix: profile display name updated for ${params.auth.userId}`);
3267
- if (profileSync.avatarUpdated) params.logger.info(`matrix: profile avatar updated for ${params.auth.userId}`);
3268
- if (profileSync.convertedAvatarFromHttp && profileSync.resolvedAvatarUrl && params.accountConfig.avatarUrl !== profileSync.resolvedAvatarUrl) {
3269
- const latestCfg = params.loadConfig();
3270
- const updatedCfg = runtimeDeps.updateMatrixAccountConfig(latestCfg, params.accountId, { avatarUrl: profileSync.resolvedAvatarUrl });
3271
- await params.writeConfigFile(updatedCfg);
3272
- params.logVerboseMessage(`matrix: persisted converted avatar URL for account ${params.accountId} (${profileSync.resolvedAvatarUrl})`);
3273
- }
3274
- } catch (err) {
3275
- params.logger.warn("matrix: failed to sync profile from config", { error: String(err) });
3276
- }
3277
- if (!(params.auth.encryption && params.client.crypto)) return;
3278
- try {
3279
- const deviceHealth = runtimeDeps.summarizeMatrixDeviceHealth(await params.client.listOwnDevices());
3280
- if (deviceHealth.staleOpenClawDevices.length > 0) params.logger.warn(`matrix: stale OpenClaw devices detected for ${params.auth.userId}: ${deviceHealth.staleOpenClawDevices.map((device) => device.deviceId).join(", ")}. Run 'openclaw matrix devices prune-stale --account ${params.effectiveAccountId}' to keep encrypted-room trust healthy.`);
3281
- } catch (err) {
3282
- params.logger.debug?.("Failed to inspect matrix device hygiene (non-fatal)", { error: String(err) });
3283
- }
3284
- try {
3285
- const startupVerification = await runtimeDeps.ensureMatrixStartupVerification({
3286
- client: params.client,
3287
- auth: params.auth,
3288
- accountConfig: params.accountConfig,
3289
- env: params.env
3290
- });
3291
- if (startupVerification.kind === "verified") params.logger.info("matrix: device is verified by its owner and ready for encrypted rooms");
3292
- else if (startupVerification.kind === "disabled" || startupVerification.kind === "cooldown" || startupVerification.kind === "pending" || startupVerification.kind === "request-failed") {
3293
- params.logger.info("matrix: device not verified — run 'openclaw matrix verify device <key>' to enable E2EE");
3294
- if (startupVerification.kind === "pending") params.logger.info("matrix: startup verification request is already pending; finish it in another Matrix client");
3295
- else if (startupVerification.kind === "cooldown") params.logVerboseMessage(`matrix: skipped startup verification request due to cooldown (retryAfterMs=${startupVerification.retryAfterMs ?? 0})`);
3296
- else if (startupVerification.kind === "request-failed") params.logger.debug?.("Matrix startup verification request failed (non-fatal)", { error: startupVerification.error ?? "unknown" });
3297
- } else if (startupVerification.kind === "requested") params.logger.info("matrix: device not verified — requested verification in another Matrix client");
3298
- } catch (err) {
3299
- params.logger.debug?.("Failed to resolve matrix verification status (non-fatal)", { error: String(err) });
3300
- }
3301
- try {
3302
- const legacyCryptoRestore = await runtimeDeps.maybeRestoreLegacyMatrixBackup({
3303
- client: params.client,
3304
- auth: params.auth,
3305
- env: params.env
3306
- });
3307
- if (legacyCryptoRestore.kind === "restored") {
3308
- params.logger.info(`matrix: restored ${legacyCryptoRestore.imported}/${legacyCryptoRestore.total} room key(s) from legacy encrypted-state backup`);
3309
- if (legacyCryptoRestore.localOnlyKeys > 0) params.logger.warn(`matrix: ${legacyCryptoRestore.localOnlyKeys} legacy local-only room key(s) were never backed up and could not be restored automatically`);
3310
- } else if (legacyCryptoRestore.kind === "failed") {
3311
- params.logger.warn(`matrix: failed restoring room keys from legacy encrypted-state backup: ${legacyCryptoRestore.error}`);
3312
- if (legacyCryptoRestore.localOnlyKeys > 0) params.logger.warn(`matrix: ${legacyCryptoRestore.localOnlyKeys} legacy local-only room key(s) were never backed up and may remain unavailable until manually recovered`);
3313
- }
3314
- } catch (err) {
3315
- params.logger.warn("matrix: failed restoring legacy encrypted-state backup", { error: String(err) });
3316
- }
3317
- }
3318
- //#endregion
3319
- //#region extensions/matrix/src/matrix/monitor/index.ts
3320
- const DEFAULT_MEDIA_MAX_MB = 20;
3321
- async function monitorMatrixProvider(opts = {}) {
3322
- if (opts.abortSignal?.aborted) return;
3323
- if (isBunRuntime()) throw new Error("Matrix provider requires Node (bun runtime not supported)");
3324
- const core = getMatrixRuntime();
3325
- let cfg = core.config.loadConfig();
3326
- if (cfg.channels?.["matrix"]?.enabled === false) return;
3327
- const logger = core.logging.getChildLogger({ module: "matrix-auto-reply" });
3328
- const formatRuntimeMessage = (...args) => format(...args);
3329
- const runtime = opts.runtime ?? {
3330
- log: (...args) => {
3331
- logger.info(formatRuntimeMessage(...args));
3332
- },
3333
- error: (...args) => {
3334
- logger.error(formatRuntimeMessage(...args));
3335
- },
3336
- exit: (code) => {
3337
- throw new Error(`exit ${code}`);
3338
- }
3339
- };
3340
- const logVerboseMessage = (message) => {
3341
- if (!core.logging.shouldLogVerbose()) return;
3342
- logger.debug?.(message);
3343
- };
3344
- const effectiveAccountId = resolveMatrixAuthContext({
3345
- cfg,
3346
- accountId: opts.accountId
3347
- }).accountId;
3348
- const accountConfig = resolveMatrixAccountConfig({
3349
- cfg,
3350
- accountId: effectiveAccountId
3351
- });
3352
- const allowlistOnly = accountConfig.allowlistOnly === true;
3353
- const accountAllowBots = accountConfig.allowBots;
3354
- let allowFrom = (accountConfig.dm?.allowFrom ?? []).map(String);
3355
- let groupAllowFrom = (accountConfig.groupAllowFrom ?? []).map(String);
3356
- let roomsConfig = accountConfig.groups ?? accountConfig.rooms;
3357
- let needsRoomAliasesForConfig = false;
3358
- const configuredBotUserIds = resolveConfiguredMatrixBotUserIds({
3359
- cfg,
3360
- accountId: effectiveAccountId
3361
- });
3362
- ({allowFrom, groupAllowFrom, roomsConfig} = await resolveMatrixMonitorConfig({
3363
- cfg,
3364
- accountId: effectiveAccountId,
3365
- allowFrom,
3366
- groupAllowFrom,
3367
- roomsConfig,
3368
- runtime
3369
- }));
3370
- needsRoomAliasesForConfig = Boolean(roomsConfig && Object.keys(roomsConfig).some((key) => key.trim().startsWith("#")));
3371
- cfg = {
3372
- ...cfg,
3373
- channels: {
3374
- ...cfg.channels,
3375
- matrix: {
3376
- ...cfg.channels?.["matrix"],
3377
- dm: {
3378
- ...cfg.channels?.["matrix"]?.dm,
3379
- allowFrom
3380
- },
3381
- groupAllowFrom,
3382
- ...roomsConfig ? { groups: roomsConfig } : {}
3383
- }
3384
- }
3385
- };
3386
- const auth = await resolveMatrixAuth({
3387
- cfg,
3388
- accountId: effectiveAccountId
3389
- });
3390
- const resolvedInitialSyncLimit = typeof opts.initialSyncLimit === "number" ? Math.max(0, Math.floor(opts.initialSyncLimit)) : auth.initialSyncLimit;
3391
- const authWithLimit = resolvedInitialSyncLimit === auth.initialSyncLimit ? auth : {
3392
- ...auth,
3393
- initialSyncLimit: resolvedInitialSyncLimit
3394
- };
3395
- const client = await resolveSharedMatrixClient({
3396
- cfg,
3397
- auth: authWithLimit,
3398
- startClient: false,
3399
- accountId: auth.accountId
3400
- });
3401
- setActiveMatrixClient(client, auth.accountId);
3402
- let cleanedUp = false;
3403
- let threadBindingManager = null;
3404
- let execApprovalsHandler = null;
3405
- const inboundDeduper = await createMatrixInboundEventDeduper({
3406
- auth,
3407
- env: process.env
3408
- });
3409
- const inFlightRoomMessages = /* @__PURE__ */ new Set();
3410
- const waitForInFlightRoomMessages = async () => {
3411
- while (inFlightRoomMessages.size > 0) await Promise.allSettled(Array.from(inFlightRoomMessages));
3412
- };
3413
- const cleanup = async () => {
3414
- if (cleanedUp) return;
3415
- cleanedUp = true;
3416
- try {
3417
- client.stopSyncWithoutPersist();
3418
- await client.drainPendingDecryptions("matrix monitor shutdown");
3419
- await waitForInFlightRoomMessages();
3420
- await execApprovalsHandler?.stop();
3421
- threadBindingManager?.stop();
3422
- await inboundDeduper.stop();
3423
- await releaseSharedClientInstance(client, "persist");
3424
- } finally {
3425
- setActiveMatrixClient(null, auth.accountId);
3426
- }
3427
- };
3428
- const defaultGroupPolicy = resolveDefaultGroupPolicy(cfg);
3429
- const { groupPolicy: groupPolicyRaw, providerMissingFallbackApplied } = resolveAllowlistProviderRuntimeGroupPolicy({
3430
- providerConfigPresent: cfg.channels?.["matrix"] !== void 0,
3431
- groupPolicy: accountConfig.groupPolicy,
3432
- defaultGroupPolicy
3433
- });
3434
- warnMissingProviderGroupPolicyFallbackOnce({
3435
- providerMissingFallbackApplied,
3436
- providerKey: "matrix",
3437
- accountId: effectiveAccountId,
3438
- blockedLabel: GROUP_POLICY_BLOCKED_LABEL.room,
3439
- log: (message) => logVerboseMessage(message)
3440
- });
3441
- const groupPolicy = allowlistOnly && groupPolicyRaw === "open" ? "allowlist" : groupPolicyRaw;
3442
- const replyToMode = opts.replyToMode ?? accountConfig.replyToMode ?? "off";
3443
- const threadReplies = accountConfig.threadReplies ?? "inbound";
3444
- const dmThreadReplies = accountConfig.dm?.threadReplies;
3445
- const threadBindingIdleTimeoutMs = resolveThreadBindingIdleTimeoutMsForChannel({
3446
- cfg,
3447
- channel: "matrix",
3448
- accountId: effectiveAccountId
3449
- });
3450
- const threadBindingMaxAgeMs = resolveThreadBindingMaxAgeMsForChannel({
3451
- cfg,
3452
- channel: "matrix",
3453
- accountId: effectiveAccountId
3454
- });
3455
- const dmConfig = accountConfig.dm;
3456
- const dmEnabled = dmConfig?.enabled ?? true;
3457
- const dmPolicyRaw = dmConfig?.policy ?? "pairing";
3458
- const dmPolicy = allowlistOnly && dmPolicyRaw !== "disabled" ? "allowlist" : dmPolicyRaw;
3459
- const textLimit = core.channel.text.resolveTextChunkLimit(cfg, "matrix", effectiveAccountId);
3460
- const globalGroupChatHistoryLimit = cfg.messages?.groupChat?.historyLimit;
3461
- const historyLimit = Math.max(0, accountConfig.historyLimit ?? globalGroupChatHistoryLimit ?? 0);
3462
- const mediaMaxMb = opts.mediaMaxMb ?? accountConfig.mediaMaxMb ?? DEFAULT_MEDIA_MAX_MB;
3463
- const mediaMaxBytes = Math.max(1, mediaMaxMb) * 1024 * 1024;
3464
- const streaming = accountConfig.streaming === true || accountConfig.streaming === "partial" ? "partial" : "off";
3465
- const blockStreamingEnabled = accountConfig.blockStreaming === true;
3466
- const startupMs = Date.now();
3467
- const startupGraceMs = 0;
3468
- const dropPreStartupMessages = !client.hasPersistedSyncState();
3469
- const { getRoomInfo, getMemberDisplayName } = createMatrixRoomInfoResolver(client);
3470
- const directTracker = createDirectRoomTracker(client, {
3471
- log: logVerboseMessage,
3472
- canPromoteRecentInvite: async (roomId) => shouldPromoteRecentInviteRoom({
3473
- roomId,
3474
- roomInfo: await getRoomInfo(roomId, { includeAliases: true }),
3475
- rooms: roomsConfig
3476
- }),
3477
- shouldKeepLocallyPromotedDirectRoom: async (roomId) => {
3478
- try {
3479
- const roomInfo = await getRoomInfo(roomId, { includeAliases: true });
3480
- if (!roomInfo.nameResolved || !roomInfo.aliasesResolved) return;
3481
- return shouldPromoteRecentInviteRoom({
3482
- roomId,
3483
- roomInfo,
3484
- rooms: roomsConfig
3485
- });
3486
- } catch (err) {
3487
- logVerboseMessage(`matrix: local promotion revalidation failed room=${roomId} (${String(err)})`);
3488
- return;
3489
- }
3490
- }
3491
- });
3492
- registerMatrixAutoJoin({
3493
- client,
3494
- accountConfig,
3495
- runtime
3496
- });
3497
- const warnedEncryptedRooms = /* @__PURE__ */ new Set();
3498
- const warnedCryptoMissingRooms = /* @__PURE__ */ new Set();
3499
- const handleRoomMessage = createMatrixRoomMessageHandler({
3500
- client,
3501
- core,
3502
- cfg,
3503
- accountId: effectiveAccountId,
3504
- runtime,
3505
- logger,
3506
- logVerboseMessage,
3507
- allowFrom,
3508
- groupAllowFrom,
3509
- roomsConfig,
3510
- accountAllowBots,
3511
- configuredBotUserIds,
3512
- groupPolicy,
3513
- replyToMode,
3514
- threadReplies,
3515
- dmThreadReplies,
3516
- streaming,
3517
- blockStreamingEnabled,
3518
- dmEnabled,
3519
- dmPolicy,
3520
- textLimit,
3521
- mediaMaxBytes,
3522
- historyLimit,
3523
- startupMs,
3524
- startupGraceMs,
3525
- dropPreStartupMessages,
3526
- inboundDeduper,
3527
- directTracker,
3528
- getRoomInfo,
3529
- getMemberDisplayName,
3530
- needsRoomAliasesForConfig
3531
- });
3532
- const trackRoomMessage = (roomId, event) => {
3533
- const task = Promise.resolve(handleRoomMessage(roomId, event)).finally(() => {
3534
- inFlightRoomMessages.delete(task);
3535
- });
3536
- inFlightRoomMessages.add(task);
3537
- return task;
3538
- };
3539
- try {
3540
- threadBindingManager = await createMatrixThreadBindingManager({
3541
- accountId: effectiveAccountId,
3542
- auth,
3543
- client,
3544
- env: process.env,
3545
- idleTimeoutMs: threadBindingIdleTimeoutMs,
3546
- maxAgeMs: threadBindingMaxAgeMs,
3547
- logVerboseMessage
3548
- });
3549
- logVerboseMessage(`matrix: thread bindings ready account=${threadBindingManager.accountId} idleMs=${threadBindingIdleTimeoutMs} maxAgeMs=${threadBindingMaxAgeMs}`);
3550
- registerMatrixMonitorEvents({
3551
- cfg,
3552
- client,
3553
- auth,
3554
- allowFrom,
3555
- dmEnabled,
3556
- dmPolicy,
3557
- readStoreAllowFrom: async () => await core.channel.pairing.readAllowFromStore({
3558
- channel: "matrix",
3559
- env: process.env,
3560
- accountId: effectiveAccountId
3561
- }).catch(() => []),
3562
- directTracker,
3563
- logVerboseMessage,
3564
- warnedEncryptedRooms,
3565
- warnedCryptoMissingRooms,
3566
- logger,
3567
- formatNativeDependencyHint: core.system.formatNativeDependencyHint,
3568
- onRoomMessage: trackRoomMessage
3569
- });
3570
- logVerboseMessage("matrix: starting client");
3571
- await resolveSharedMatrixClient({
3572
- cfg,
3573
- auth: authWithLimit,
3574
- accountId: auth.accountId
3575
- });
3576
- logVerboseMessage("matrix: client started");
3577
- logger.info(`matrix: logged in as ${auth.userId}`);
3578
- execApprovalsHandler = new MatrixExecApprovalHandler({
3579
- client,
3580
- accountId: effectiveAccountId,
3581
- cfg
3582
- });
3583
- await execApprovalsHandler.start();
3584
- await runMatrixStartupMaintenance({
3585
- client,
3586
- auth,
3587
- accountId: effectiveAccountId,
3588
- effectiveAccountId,
3589
- accountConfig,
3590
- logger,
3591
- logVerboseMessage,
3592
- loadConfig: () => core.config.loadConfig(),
3593
- writeConfigFile: async (nextCfg) => await core.config.writeConfigFile(nextCfg),
3594
- loadWebMedia: async (url, maxBytes) => await core.media.loadWebMedia(url, maxBytes),
3595
- env: process.env
3596
- });
3597
- await new Promise((resolve) => {
3598
- const stopAndResolve = async () => {
3599
- try {
3600
- logVerboseMessage("matrix: stopping client");
3601
- await cleanup();
3602
- } catch (err) {
3603
- logger.warn("matrix: failed during monitor shutdown cleanup", { error: String(err) });
3604
- } finally {
3605
- resolve();
3606
- }
3607
- };
3608
- if (opts.abortSignal?.aborted) {
3609
- stopAndResolve();
3610
- return;
3611
- }
3612
- opts.abortSignal?.addEventListener("abort", () => {
3613
- stopAndResolve();
3614
- }, { once: true });
3615
- });
3616
- } catch (err) {
3617
- await cleanup();
3618
- throw err;
3619
- }
3620
- }
3621
- //#endregion
3622
- export { monitorMatrixProvider };