@gaodefa/daocore 2026.5.48 → 2026.5.51

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 (1125) hide show
  1. package/dist/abort-fu5ot-XT.js +277 -0
  2. package/dist/abort.runtime-D5daoBjn.js +2 -0
  3. package/dist/abort.runtime.js +1 -1
  4. package/dist/account-inspect-BzG5-Rgz.js +173 -0
  5. package/dist/accounts-CPcG2JIz.js +107 -0
  6. package/dist/accounts-CiDgcaPY.js +2 -0
  7. package/dist/accounts-DcI0wEyL.js +107 -0
  8. package/dist/accounts-xBYbyTsZ.js +119 -0
  9. package/dist/acp-runtime-DpVkymzf.js +26 -0
  10. package/dist/acp-spawn-CbNHSZr-.js +1275 -0
  11. package/dist/acp-spawn-DFG0HgXi.js +2 -0
  12. package/dist/acp-stateful-target-driver-pz6XosZ9.js +89 -0
  13. package/dist/action-kill-DJuPSfgy.js +33 -0
  14. package/dist/action-runtime-DxnMH2dB.js +469 -0
  15. package/dist/action-runtime-api-Dvo3Gbll.js +2 -0
  16. package/dist/action-send-WtfSYfhf.js +39 -0
  17. package/dist/action-spawn-CA4-_H9p.js +47 -0
  18. package/dist/actions-BQ2B4Vhj.js +161 -0
  19. package/dist/actions.runtime-Bw0OZtGG.js +5 -0
  20. package/dist/agent-CsPtASj4.js +2 -0
  21. package/dist/agent-command-DeA1YV0L.js +1367 -0
  22. package/dist/agent-components.runtime-CP2KCzTj.js +10 -0
  23. package/dist/agent-components.runtime.js +1 -1
  24. package/dist/agent-harness-runtime-hAssTrVq.js +180 -0
  25. package/dist/agent-harness-task-runtime-VSFzRIbH.js +140 -0
  26. package/dist/agent-rg2WmmbX.js +3 -0
  27. package/dist/agent-runner-execution-lRuwJobi.js +1713 -0
  28. package/dist/agent-runner-utils-Bluglnku.js +266 -0
  29. package/dist/agent-runner.runtime-B709koec.js +3455 -0
  30. package/dist/agent-runner.runtime.js +1 -1
  31. package/dist/agent-runtime-DKr0TX79.js +229 -0
  32. package/dist/agent-via-gateway-J8tTS5o6.js +463 -0
  33. package/dist/api-BVSGXSkS.js +3 -0
  34. package/dist/api-C7LbY8d2.js +6 -0
  35. package/dist/api-ClLB89eP.js +2 -0
  36. package/dist/api-D7kpdmvQ.js +2 -0
  37. package/dist/api-DJaf27mk.js +639 -0
  38. package/dist/api-XpFyLrKp.js +134 -0
  39. package/dist/apply-CHHI0r0H.js +41 -0
  40. package/dist/apply-DoQ4g3Kr.js +54 -0
  41. package/dist/approval-handler.runtime-Jbt7zH9f.js +130 -0
  42. package/dist/assistant-DQw33Vzx.js +291 -0
  43. package/dist/attachment-normalize-CrbLuYsp.js +225 -0
  44. package/dist/attempt-execution-DkgSHSVj.js +558 -0
  45. package/dist/attempt-execution.runtime-DCcD7P4g.js +3 -0
  46. package/dist/attempt-execution.runtime.js +1 -1
  47. package/dist/attempt-execution.shared-Cok8CE9p.js +38 -0
  48. package/dist/attempt.prompt-helpers-Kok600qT.js +475 -0
  49. package/dist/attempt.tool-run-context-C5nkRM5Y.js +2094 -0
  50. package/dist/binding-routing-BILfy0c8.js +113 -0
  51. package/dist/binding-targets-BrYDo8Jx.js +121 -0
  52. package/dist/bot-CxJsNrtp.js +7894 -0
  53. package/dist/bot-deps-BWdw7DXt.js +2 -0
  54. package/dist/bot-deps-BbL_ePix.js +747 -0
  55. package/dist/bot-message-context.runtime-qkq-RzJY.js +7 -0
  56. package/dist/bot-message-context.runtime.js +1 -1
  57. package/dist/bot-message-context.session.runtime-CxuxYsNb.js +12 -0
  58. package/dist/bot-message-context.session.runtime.js +1 -1
  59. package/dist/bot-native-commands.delivery.runtime-BOjc08fe.js +4 -0
  60. package/dist/bot-native-commands.delivery.runtime.js +1 -1
  61. package/dist/bot-native-commands.runtime-LtWQYEai.js +13 -0
  62. package/dist/bot-native-commands.runtime.js +1 -1
  63. package/dist/bridge-server-BvrlsnvW.js +113 -0
  64. package/dist/browser-cli-BmH-wDEt.js +230 -0
  65. package/dist/browser-cli-D7JUe5WT.js +2 -0
  66. package/dist/browser-cli-actions-input-BtCjZh2W.js +473 -0
  67. package/dist/browser-cli-actions-observe-CKCy--u8.js +81 -0
  68. package/dist/browser-cli-debug-D7KF3hoB.js +137 -0
  69. package/dist/browser-cli-inspect-B5_Q_bKp.js +104 -0
  70. package/dist/browser-cli-manage-BNRyXUfb.js +443 -0
  71. package/dist/browser-cli-resize-BR9dybJM.js +26 -0
  72. package/dist/browser-cli-shared-ZfP-ZP1r.js +50 -0
  73. package/dist/browser-cli-state-BJRQ87Hp.js +337 -0
  74. package/dist/browser-control-auth-C1ZlS07R.js +2 -0
  75. package/dist/browser-profiles-BLgaJJYW.js +2 -0
  76. package/dist/browser-runtime-CX-EDgFi.js +384 -0
  77. package/dist/build-DOEtxYaU.js +257 -0
  78. package/dist/build-info.json +3 -3
  79. package/dist/bundled/boot-md/handler.js +2 -2
  80. package/dist/bundled/session-memory/handler.js +1 -1
  81. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  82. package/dist/capability-cli-Mj0McddT.js +1782 -0
  83. package/dist/channel-BDvizmrp.js +1556 -0
  84. package/dist/channel-C749d8mG.js +376 -0
  85. package/dist/channel-CWP6h4W5.js +1134 -0
  86. package/dist/channel-CgzMA_Q0.js +2126 -0
  87. package/dist/channel-Chx_WUyI.js +867 -0
  88. package/dist/channel-Ctnzf_tM.js +238 -0
  89. package/dist/channel-CusFbCv9.js +653 -0
  90. package/dist/channel-D5jjabnb.js +1249 -0
  91. package/dist/channel-DF-fw8lK.js +1496 -0
  92. package/dist/channel-DKAG-w5b.js +481 -0
  93. package/dist/channel-DSbpV7ax.js +808 -0
  94. package/dist/channel-DiN2VJEK.js +955 -0
  95. package/dist/channel-DvN94bvt.js +740 -0
  96. package/dist/channel-DxtVMwdk.js +508 -0
  97. package/dist/channel-GubQ1f0C.js +362 -0
  98. package/dist/channel-MXOd30fz.d.ts +427 -0
  99. package/dist/channel-actions.runtime-DEb9ZniG.js +265 -0
  100. package/dist/channel-actions.runtime.js +1 -1
  101. package/dist/channel-core-Dr6fp5Ub.js +5 -0
  102. package/dist/channel-inbound-FG-Mc5xc.js +80 -0
  103. package/dist/channel-plugin-runtime-hiqeg-_c.js +998 -0
  104. package/dist/channel-rej8M5lJ.js +1777 -0
  105. package/dist/channel-runtime-DJp4CruI.js +408 -0
  106. package/dist/channel-z0v-MMYk.js +562 -0
  107. package/dist/channel.runtime-1o_vRC84.js +109 -0
  108. package/dist/channel.runtime-BXrIcht7.js +254 -0
  109. package/dist/channel.runtime-C9opTci8.js +2528 -0
  110. package/dist/channel.runtime-CBvyS9OE.js +1008 -0
  111. package/dist/channel.runtime-CSwcAfTq.js +88 -0
  112. package/dist/channel.runtime-DKFrmmAg.js +652 -0
  113. package/dist/channel.runtime-DTBcVFL7.js +733 -0
  114. package/dist/channel.runtime-E2IhUtz8.js +4 -0
  115. package/dist/channel.runtime-s8LoLneR.js +21009 -0
  116. package/dist/channel.setup-BU4bp4OI.js +10 -0
  117. package/dist/channel.setup-CpygZ2ZG.js +343 -0
  118. package/dist/channel.setup-Z7jM_Q-v.js +1098 -0
  119. package/dist/chat-BQA8JGz8.js +2666 -0
  120. package/dist/chrome-YaZdp6CU.js +1503 -0
  121. package/dist/cli/run-main.js +5 -5
  122. package/dist/cli-DvGvBxMy.js +1341 -0
  123. package/dist/cli-compaction-0ER1653L.js +347 -0
  124. package/dist/cli-metadata-BJX-MSNl.js +22 -0
  125. package/dist/cli-runner-BGc4U7E0.js +2 -0
  126. package/dist/cli-runner-CH30meJN.js +540 -0
  127. package/dist/cli-runner.runtime-BqU9giS7.js +4 -0
  128. package/dist/cli-runner.runtime-D14IpD46.js +3 -0
  129. package/dist/cli-runner.runtime.js +1 -1
  130. package/dist/cli-startup-metadata.json +8 -8
  131. package/dist/client-DqnCi7vL.js +650 -0
  132. package/dist/client-adapter-BKZ5qBVY.js +897 -0
  133. package/dist/client-factory-BbBpLxaP.js +9 -0
  134. package/dist/command-auth-fZ1DLCTo.js +135 -0
  135. package/dist/command-handlers-CHbhwC1N.js +1609 -0
  136. package/dist/command-registry-_Oons836.js +4 -0
  137. package/dist/command-registry-core-Btb-M6JE.js +110 -0
  138. package/dist/command-registry-gWuCKROh.js +9 -0
  139. package/dist/command-status.runtime-DLav1SGb.js +90 -0
  140. package/dist/command-status.runtime.js +1 -1
  141. package/dist/commands-acp-DVbINB4V.js +74 -0
  142. package/dist/commands-compact.runtime-CqQIDvM8.js +10 -0
  143. package/dist/commands-compact.runtime.js +1 -1
  144. package/dist/commands-handlers.runtime-DJBGEdTB.js +6154 -0
  145. package/dist/commands-handlers.runtime.js +1 -1
  146. package/dist/commands-status-BaDacW0z.js +3 -0
  147. package/dist/commands-status-CTZ-HwUc.js +16 -0
  148. package/dist/commands-status.runtime-BaDacW0z.js +3 -0
  149. package/dist/commands-status.runtime.js +1 -1
  150. package/dist/commands-subagents-control.runtime-B6SOliNd.js +2 -0
  151. package/dist/commands-subagents-control.runtime-DTdEiA7w.js +3 -0
  152. package/dist/commands-subagents-control.runtime.js +1 -1
  153. package/dist/commands-system-prompt-BAdsJpn8.js +162 -0
  154. package/dist/commands-system-prompt-CX5iT-44.js +2 -0
  155. package/dist/commands.runtime-DObObKfz.js +176 -0
  156. package/dist/commands.runtime.js +1 -1
  157. package/dist/commitments/runtime.js +1 -1
  158. package/dist/compact-Bs_eAw33.js +480 -0
  159. package/dist/compact-Ck7hE3ba.js +1141 -0
  160. package/dist/compact.runtime-el4EYgrW.js +12 -0
  161. package/dist/compact.runtime.js +1 -1
  162. package/dist/completion-cli-BbDnqYnS.js +315 -0
  163. package/dist/computer-use-GvCUpEEf.js +367 -0
  164. package/dist/config-BLgaJJYW.js +2 -0
  165. package/dist/config-FCIVG4Db.js +373 -0
  166. package/dist/config-mutations-BIPJigAd.js +159 -0
  167. package/dist/context-engine-host-compat--OOY7QEI.js +2 -0
  168. package/dist/context-engine-host-compat-DYVeYR5u.js +288 -0
  169. package/dist/context-engine-lifecycle-DAB4GWd5.js +1274 -0
  170. package/dist/control-auth-BekRscGw.js +114 -0
  171. package/dist/control-service-Hg9bqOzH.js +145 -0
  172. package/dist/control-ui/apple-touch-icon.png +0 -0
  173. package/dist/control-ui/assets/agents-BRFjPVUQ.js +1008 -0
  174. package/dist/control-ui/assets/channel-config-extras-BySqgsd3.js +2 -0
  175. package/dist/control-ui/assets/channels-CC3sudX4.js +367 -0
  176. package/dist/control-ui/assets/cron-D0s06fzI.js +1013 -0
  177. package/dist/control-ui/assets/debug-9oq9PYZU.js +97 -0
  178. package/dist/control-ui/assets/index-ChE1ypG4.js +7381 -0
  179. package/dist/control-ui/assets/instances-k9LggJet.js +57 -0
  180. package/dist/control-ui/assets/logs-DKvc2q9b.js +74 -0
  181. package/dist/control-ui/assets/nodes-Bn7kmEGE.js +436 -0
  182. package/dist/control-ui/assets/sessions-0K-_jD8O.js +399 -0
  183. package/dist/control-ui/assets/skills-C9d4OZr_.js +314 -0
  184. package/dist/control-ui/assets/skills-shared-Bv7GgVjx.js +11 -0
  185. package/dist/control-ui/favicon-32.png +0 -0
  186. package/dist/control-ui/favicon-512.png +0 -0
  187. package/dist/control-ui/index.html +1 -1
  188. package/dist/control-ui/manifest.webmanifest +19 -6
  189. package/dist/control-ui/sw.js +1 -1
  190. package/dist/conversation-binding-runtime-CC1fW5Mc.js +4 -0
  191. package/dist/conversation-runtime-YK1oLoen.js +31 -0
  192. package/dist/core-D9SaX41X.js +282 -0
  193. package/dist/core-api-6x_6ros_.js +2 -0
  194. package/dist/core-api-DQaZ_B6s.js +5 -0
  195. package/dist/crestodian/crestodian.js +1 -1
  196. package/dist/crestodian/rescue-message.js +1 -1
  197. package/dist/crestodian-DLJAlHQO.js +55 -0
  198. package/dist/daocore-tools-DnGMRYJ5.js +11727 -0
  199. package/dist/delivery-dlloZivQ.js +1002 -0
  200. package/dist/dialogue-BQcF-xHi.js +37 -0
  201. package/dist/dir-fetch-tool-BmkLMRQd.js +565 -0
  202. package/dist/dir-list-tool-lJdvGnnr.js +100 -0
  203. package/dist/direct-dm-BfzS7vxm.js +64 -0
  204. package/dist/directive-handling.fast-lane-BdYkpgfF.js +68 -0
  205. package/dist/directive-handling.impl-DRIFqx-C.js +818 -0
  206. package/dist/directive-handling.impl-DoXcyCdO.js +2 -0
  207. package/dist/directive-handling.model-selection-xgiP4xbL.js +122 -0
  208. package/dist/directive-handling.persist.runtime-Dl-jD_0m.js +263 -0
  209. package/dist/directive-handling.persist.runtime.js +1 -1
  210. package/dist/dispatch-acp-transcript.runtime-B-PwrS4S.js +40 -0
  211. package/dist/dispatch-acp-transcript.runtime.js +1 -1
  212. package/dist/dispatch-acp.runtime-CQHluA8f.js +18 -0
  213. package/dist/dispatch-acp.runtime.js +1 -1
  214. package/dist/dispatch-kxJ95i3A.js +1640 -0
  215. package/dist/doctor-3QQaqcgK.js +2 -0
  216. package/dist/doctor-B9I7SuuU.js +6 -0
  217. package/dist/doctor-config-flow-DZQY34yK.js +1741 -0
  218. package/dist/doctor-core-checks-C_o9kgoZ.js +2 -0
  219. package/dist/doctor-core-checks-jWtsa4Nz.js +573 -0
  220. package/dist/doctor-health-BJ5wJFg5.js +65 -0
  221. package/dist/doctor-health-contributions-DxNPaNU6.js +696 -0
  222. package/dist/doctor-lint-DQrwNSTd.js +94 -0
  223. package/dist/doctor-state-integrity-Ctb6H9Pr.js +1231 -0
  224. package/dist/doctor-update-BZrZGmOg.js +58 -0
  225. package/dist/dynamic-tools-B9sHtLKs.js +486 -0
  226. package/dist/embedded-backend-CVEWr5Vd.js +579 -0
  227. package/dist/embedded-gateway-stub.runtime-BUl3fCUr.js +12 -0
  228. package/dist/embedded-gateway-stub.runtime.js +1 -1
  229. package/dist/exec-approvals-U0VRo553.js +149 -0
  230. package/dist/extensionAPI.js +1 -1
  231. package/dist/extensions/active-memory/index.js +1 -1
  232. package/dist/extensions/admin-http-rpc/index.js +1 -1
  233. package/dist/extensions/browser/browser-bridge.js +1 -1
  234. package/dist/extensions/browser/browser-config.js +4 -4
  235. package/dist/extensions/browser/browser-control-auth.js +2 -2
  236. package/dist/extensions/browser/browser-doctor.js +2 -2
  237. package/dist/extensions/browser/browser-maintenance.js +1 -1
  238. package/dist/extensions/browser/browser-profiles.js +2 -2
  239. package/dist/extensions/browser/browser-runtime-api.js +11 -11
  240. package/dist/extensions/browser/cli-metadata.js +1 -1
  241. package/dist/extensions/browser/index.js +1 -1
  242. package/dist/extensions/browser/plugin-registration.js +1 -1
  243. package/dist/extensions/browser/register.runtime.js +4 -4
  244. package/dist/extensions/browser/runtime-api.js +13 -13
  245. package/dist/extensions/canvas/index.js +1 -1
  246. package/dist/extensions/clickclack/api.js +2 -2
  247. package/dist/extensions/clickclack/channel-plugin-api.js +1 -1
  248. package/dist/extensions/clickclack/runtime-api.js +2 -2
  249. package/dist/extensions/device-pair/api.js +1 -1
  250. package/dist/extensions/device-pair/pair-command-approve.js +1 -1
  251. package/dist/extensions/file-transfer/index.js +4 -4
  252. package/dist/extensions/imessage/api.js +2 -2
  253. package/dist/extensions/imessage/channel-plugin-api.js +1 -1
  254. package/dist/extensions/imessage/message-tool-api.d.ts +1 -1
  255. package/dist/extensions/imessage/runtime-api.js +3 -3
  256. package/dist/extensions/irc/api.js +2 -2
  257. package/dist/extensions/irc/channel-plugin-api.js +1 -1
  258. package/dist/extensions/llm-task/index.js +1 -1
  259. package/dist/extensions/mattermost/api.js +1 -1
  260. package/dist/extensions/mattermost/channel-plugin-api.js +1 -1
  261. package/dist/extensions/mattermost/channel-plugin-runtime.js +1 -1
  262. package/dist/extensions/mattermost/policy-api.js +1 -1
  263. package/dist/extensions/mattermost/runtime-api.js +2 -2
  264. package/dist/extensions/mattermost/slash-route-api.js +1 -1
  265. package/dist/extensions/memory-core/cli-metadata.js +1 -1
  266. package/dist/extensions/migrate-claude/apply.js +1 -1
  267. package/dist/extensions/migrate-claude/index.js +1 -1
  268. package/dist/extensions/migrate-claude/plan.js +1 -1
  269. package/dist/extensions/migrate-claude/provider.js +1 -1
  270. package/dist/extensions/migrate-claude/targets.js +1 -1
  271. package/dist/extensions/migrate-hermes/apply.js +1 -1
  272. package/dist/extensions/migrate-hermes/index.js +1 -1
  273. package/dist/extensions/migrate-hermes/model.js +1 -1
  274. package/dist/extensions/migrate-hermes/plan.js +1 -1
  275. package/dist/extensions/migrate-hermes/provider.js +1 -1
  276. package/dist/extensions/migrate-hermes/secrets.js +1 -1
  277. package/dist/extensions/migrate-hermes/targets.js +1 -1
  278. package/dist/extensions/policy/api.js +1 -1
  279. package/dist/extensions/policy/index.js +2 -2
  280. package/dist/extensions/signal/api.js +6 -6
  281. package/dist/extensions/signal/channel-plugin-api.js +1 -1
  282. package/dist/extensions/signal/reaction-runtime-api.js +1 -1
  283. package/dist/extensions/signal/runtime-api.js +7 -7
  284. package/dist/extensions/skill-workshop/api.js +1 -1
  285. package/dist/extensions/skill-workshop/index.js +2 -2
  286. package/dist/extensions/telegram/account-inspect-api.js +1 -1
  287. package/dist/extensions/telegram/api.js +11 -11
  288. package/dist/extensions/telegram/channel-plugin-api.js +2 -2
  289. package/dist/extensions/telegram/contract-api.js +3 -3
  290. package/dist/extensions/telegram/runtime-api.js +7 -7
  291. package/dist/extensions/telegram/security-audit-contract-api.js +1 -1
  292. package/dist/extensions/telegram/setup-plugin-api.js +1 -1
  293. package/dist/extensions/telegram/test-api.js +2 -2
  294. package/dist/extensions/webhooks/api.js +1 -1
  295. package/dist/extensions/webhooks/index.js +1 -1
  296. package/dist/extensions/xai/index.js +4 -4
  297. package/dist/extensions/xai/realtime-transcription-provider.js +1 -1
  298. package/dist/extensions/xai/speech-provider.js +1 -1
  299. package/dist/extensions/xai/test-api.js +1 -1
  300. package/dist/extensions/xai/tts.js +1 -1
  301. package/dist/extensions/xai/web-search.js +1 -1
  302. package/dist/extensions/xai/xai-oauth.js +1 -1
  303. package/dist/file-fetch-tool-PskYnfdX.js +124 -0
  304. package/dist/file-write-tool-BWMKcxSs.js +127 -0
  305. package/dist/format-DCronAhx.js +250 -0
  306. package/dist/format-Dk3-Jpqj.js +1145 -0
  307. package/dist/gateway-cli-BEtRyNAV.js +435 -0
  308. package/dist/gateway-method-runtime-Ba3mc5Ui.js +21 -0
  309. package/dist/get-reply-B-kNh5PS.js +4689 -0
  310. package/dist/get-reply-from-config.runtime-D-49TKR5.js +2 -0
  311. package/dist/get-reply-from-config.runtime.js +1 -1
  312. package/dist/graph-users-DIK-qpar.js +1419 -0
  313. package/dist/group-access-B6LDV7nR.js +112 -0
  314. package/dist/handle-action.guild-admin-Dz9DREmk.js +288 -0
  315. package/dist/harness-CJWitSNk.js +61 -0
  316. package/dist/health-SAxsj7q2.js +4 -0
  317. package/dist/health-state-Bp0DOLCD.js +106 -0
  318. package/dist/heartbeat-runner-D2IpmXX0.js +5 -0
  319. package/dist/heartbeat-runner.runtime-BKwSStf9.js +4 -0
  320. package/dist/heartbeat-runner.runtime.js +1 -1
  321. package/dist/hooks-C9V4TVXi.js +534 -0
  322. package/dist/inbound-direct-dm-runtime-C-KKlFVB.js +2 -0
  323. package/dist/inbound-reply-dispatch-3Kvtrdcn.js +148 -0
  324. package/dist/index.js +1 -1
  325. package/dist/init-BGepd_Xi.js +59 -0
  326. package/dist/inline-buttons-Dqa993W-.js +40 -0
  327. package/dist/internal-events-hTD06P4Z.js +90 -0
  328. package/dist/isolated-agent-C30IhhQ4.js +1118 -0
  329. package/dist/isolated-agent-D9rwsYrc.js +2 -0
  330. package/dist/lifecycle-lYxX16zr.js +571 -0
  331. package/dist/list.probe-BuLNPfwh.js +449 -0
  332. package/dist/list.status-command-C9FwGWNZ.js +789 -0
  333. package/dist/llm-slug-generator-DEOtPI7b.js +78 -0
  334. package/dist/llm-slug-generator.js +1 -1
  335. package/dist/local-dispatch.runtime-D2mwqssZ.js +9 -0
  336. package/dist/local-dispatch.runtime.js +1 -1
  337. package/dist/manager.runtime-eqnbDApb.js +2714 -0
  338. package/dist/manager.runtime.js +1 -1
  339. package/dist/markdown-to-line-n4E_Ss2j.js +811 -0
  340. package/dist/mcp-http-DG2YDXx1.js +555 -0
  341. package/dist/mcp-http-DiGvYUK1.js +2 -0
  342. package/dist/media-understanding-provider-BAzC42im.js +339 -0
  343. package/dist/message-actions-DfM9sh0u.js +145 -0
  344. package/dist/message-handler-D3j7tiLC.js +1715 -0
  345. package/dist/message-handler-PdqXVaqc.js +384 -0
  346. package/dist/message-handler.preflight-DVTL11NJ.js +1125 -0
  347. package/dist/message-handler.process-Beo6fyUz.js +1484 -0
  348. package/dist/model-DiiSzCXH.js +74 -0
  349. package/dist/model-selection-CeDXYcsy.js +272 -0
  350. package/dist/models-BecxnLfn.js +104 -0
  351. package/dist/models-BxPknoYN.js +2 -0
  352. package/dist/models-cli-CmGPOjEx.js +256 -0
  353. package/dist/monitor-B2qfveOv.js +60 -0
  354. package/dist/monitor-BIKmDw4B.js +2 -0
  355. package/dist/monitor-CJXHxvh-.js +1657 -0
  356. package/dist/monitor-CqndMsTS.js +4377 -0
  357. package/dist/monitor-Dg9KC5G4.js +834 -0
  358. package/dist/monitor-IbL8Gw1Y.js +2788 -0
  359. package/dist/monitor-LxpNUkve.js +1370 -0
  360. package/dist/monitor-auth-EPov6Z4x.js +179 -0
  361. package/dist/monitor-i7_7ne6w.js +715 -0
  362. package/dist/monitor-polling.runtime-BRFuwAQo.js +883 -0
  363. package/dist/monitor-polling.runtime.js +1 -1
  364. package/dist/monitor-webhook.runtime-CGyP4NKq.js +387 -0
  365. package/dist/monitor-webhook.runtime.js +1 -1
  366. package/dist/monitor.account-L5cJkJbV.js +5233 -0
  367. package/dist/monitor.runtime-Caq1xo2T.js +2 -0
  368. package/dist/monitor.runtime.js +1 -1
  369. package/dist/monitor.webhook-CWo_j5xt.js +180 -0
  370. package/dist/node-cli-sessions-Dlrq3Hrt.js +1228 -0
  371. package/dist/openai-http-Cbs9WY_K.js +824 -0
  372. package/dist/openresponses-http-Djc1TNo5.js +1173 -0
  373. package/dist/operations-CePwJ_bf.js +805 -0
  374. package/dist/outbound-adapter-Cmcx_Msg.js +543 -0
  375. package/dist/outbound-session-route-DIvKTIer.js +45 -0
  376. package/dist/outbound.runtime-BCm1uM9e.js +2 -0
  377. package/dist/outbound.runtime.js +1 -1
  378. package/dist/pi-embedded-BGYOawy9.js +3796 -0
  379. package/dist/pi-embedded-s_XN5zci.js +4 -0
  380. package/dist/pi-embedded.runtime-Iv_ADnNC.js +4 -0
  381. package/dist/pi-embedded.runtime.js +1 -1
  382. package/dist/pi-tools-b-Wh6fBG.js +2413 -0
  383. package/dist/plan-9Cb-QHmS.js +112 -0
  384. package/dist/plan-DOX8mLZM.js +81 -0
  385. package/dist/plugin-CRqD5XqH.js +12396 -0
  386. package/dist/plugin-app-cache-key-BKpHiVS2.js +46 -0
  387. package/dist/plugin-enabled-BEi_lYEW.js +233 -0
  388. package/dist/plugin-registration-D99tHdMd.js +88 -0
  389. package/dist/plugin-sdk/.boundary-entry-shims.stamp +1 -1
  390. package/dist/plugin-sdk/acp-runtime-backend.js +1 -1
  391. package/dist/plugin-sdk/acp-runtime.js +2 -2
  392. package/dist/plugin-sdk/agent-harness-runtime.js +6 -6
  393. package/dist/plugin-sdk/agent-harness-task-runtime.js +1 -1
  394. package/dist/plugin-sdk/agent-harness.js +7 -7
  395. package/dist/plugin-sdk/agent-runtime.js +2 -2
  396. package/dist/plugin-sdk/channel-core.js +2 -2
  397. package/dist/plugin-sdk/channel-inbound.js +2 -2
  398. package/dist/plugin-sdk/channel-test-helpers.js +1 -1
  399. package/dist/plugin-sdk/command-auth.js +1 -1
  400. package/dist/plugin-sdk/command-status-runtime.js +1 -1
  401. package/dist/plugin-sdk/compat.js +1 -1
  402. package/dist/plugin-sdk/conversation-binding-runtime.js +2 -2
  403. package/dist/plugin-sdk/conversation-runtime.js +3 -3
  404. package/dist/plugin-sdk/core.js +2 -2
  405. package/dist/plugin-sdk/direct-dm.js +1 -1
  406. package/dist/plugin-sdk/gateway-method-runtime.js +1 -1
  407. package/dist/plugin-sdk/health.js +2 -2
  408. package/dist/plugin-sdk/inbound-reply-dispatch.js +1 -1
  409. package/dist/plugin-sdk/index.js +1 -1
  410. package/dist/plugin-sdk/mattermost.js +1 -1
  411. package/dist/plugin-sdk/plugin-test-contracts.js +2 -2
  412. package/dist/plugin-sdk/provider-test-contracts.js +4 -4
  413. package/dist/plugin-sdk/reply-runtime.js +4 -4
  414. package/dist/plugin-sdk/testing.js +2 -2
  415. package/dist/plugin-sdk/zalouser.js +1 -1
  416. package/dist/plugin-service-DBTlrK7m.js +1229 -0
  417. package/dist/plugins/runtime/index.js +4 -4
  418. package/dist/policy-B-G2ltps.js +680 -0
  419. package/dist/policy-DCljYbZL.js +138 -0
  420. package/dist/prepare.runtime-Ewb81gRo.js +732 -0
  421. package/dist/prepare.runtime.js +1 -1
  422. package/dist/preview-warnings-DhWnG_r-.js +392 -0
  423. package/dist/probe-Bqu475Tv.js +2204 -0
  424. package/dist/probe-CRWUBMuB.js +682 -0
  425. package/dist/probe-Dm3lYN25.js +47 -0
  426. package/dist/probe-LLx6ayxG.js +2 -0
  427. package/dist/program-vxEyXm2e.js +131 -0
  428. package/dist/provider-B2aKgXI0.js +32 -0
  429. package/dist/provider-BUYMN3uZ.js +152 -0
  430. package/dist/provider-BlBfyHXO.js +32 -0
  431. package/dist/provider-D3O0zKex.js +8735 -0
  432. package/dist/provider-dispatcher-CYuX21il.js +22 -0
  433. package/dist/provider-dispatcher.runtime.js +1 -1
  434. package/dist/provider-session.runtime-xIOzPEA7.js +9 -0
  435. package/dist/provider-session.runtime.js +1 -1
  436. package/dist/provider.runtime-C94TKQWq.js +2 -0
  437. package/dist/provider.runtime.js +1 -1
  438. package/dist/public-surface-loader-CDa3nA_L.js +114 -0
  439. package/dist/pw-ai-BH_nTHa5.js +3029 -0
  440. package/dist/pw-role-snapshot-BPi5ipRX.js +333 -0
  441. package/dist/reaction-level-CSHisLIF.js +19 -0
  442. package/dist/reaction-runtime-api-D5YNDU-7.js +116 -0
  443. package/dist/realtime-transcription-provider-B6-wne03.js +205 -0
  444. package/dist/register-AeYt54B0.js +2178 -0
  445. package/dist/register.agent-DuW_Cioa.js +156 -0
  446. package/dist/register.crestodian-DfuAvHf8.js +24 -0
  447. package/dist/register.maintenance-DhSW2XSZ.js +83 -0
  448. package/dist/register.runtime-CYWai1dl.js +54 -0
  449. package/dist/register.status-health-sessions-BrkNpe59.js +282 -0
  450. package/dist/register.subclis-B4c9g5v0.js +31 -0
  451. package/dist/register.subclis-Do4TSxcj.js +3 -0
  452. package/dist/register.subclis-core-Dm9-Cc4K.js +273 -0
  453. package/dist/repair-sequencing-CKX_OEBn.js +640 -0
  454. package/dist/reply-delivery-Dx31Fawb.js +196 -0
  455. package/dist/reply-runtime-DyCbxbOD.js +11 -0
  456. package/dist/reply.runtime-D-49TKR5.js +2 -0
  457. package/dist/reply.runtime.js +1 -1
  458. package/dist/request-CZtiBI4R.js +54 -0
  459. package/dist/resolve-allowlist-C-WRtkEq.js +220 -0
  460. package/dist/result-fallback-classifier-BkI5uV-W.js +79 -0
  461. package/dist/route-BEeC4HAl.js +469 -0
  462. package/dist/route-resolution-CHA13yYB.js +274 -0
  463. package/dist/routes-CfBm1qOU.js +2 -0
  464. package/dist/routes-DsgV54GJ.js +3602 -0
  465. package/dist/run-DL8UkH0h.js +1162 -0
  466. package/dist/run-attempt-D0qv7bs7.js +7704 -0
  467. package/dist/run-command-BWyjy--D.js +23 -0
  468. package/dist/run-command-IDml3oWg.js +2 -0
  469. package/dist/run-embedded.runtime-DeIZpKHe.js +4 -0
  470. package/dist/run-embedded.runtime.js +1 -1
  471. package/dist/run-execution-cli.runtime-yf9gfWAm.js +4 -0
  472. package/dist/run-execution-cli.runtime.js +1 -1
  473. package/dist/run-executor.runtime.js +1 -1
  474. package/dist/run-subagent-registry.runtime-oZs4xMMU.js +2 -0
  475. package/dist/run-subagent-registry.runtime.js +1 -1
  476. package/dist/runtime-BDbGwqGy.js +6179 -0
  477. package/dist/runtime-Bwn06s0u.js +438 -0
  478. package/dist/runtime-CD6WyVpL.js +1287 -0
  479. package/dist/runtime-api-BzvORSkx.js +4 -0
  480. package/dist/runtime-api-CAORRCZU.js +17 -0
  481. package/dist/runtime-api-CZGRk5D1.js +24 -0
  482. package/dist/runtime-api-CZm1iIlw.js +13 -0
  483. package/dist/runtime-api-D0d1LZvp.js +21 -0
  484. package/dist/runtime-api-DPIkVTDM.js +3 -0
  485. package/dist/runtime-api-DbQDZRSI.js +13 -0
  486. package/dist/runtime-api.actions-CuYXLj2I.js +3 -0
  487. package/dist/runtime-api.monitor-BPMqlEBC.js +6 -0
  488. package/dist/runtime-api.send-cXGaIwD8.js +4 -0
  489. package/dist/runtime-api.threads-DF6EqVSY.js +2 -0
  490. package/dist/runtime-channel-B2dCbld0.js +2 -0
  491. package/dist/runtime-channel-BfzwZ133.js +150 -0
  492. package/dist/runtime-embedded-pi.runtime-Bz4-Me2g.js +2 -0
  493. package/dist/runtime-embedded-pi.runtime.js +1 -1
  494. package/dist/sanitize-outbound-52UJkVc2.js +127 -0
  495. package/dist/sdk-setup-tools-DzA0rD_t.js +8 -0
  496. package/dist/secrets-BzY28DjS.js +113 -0
  497. package/dist/security-audit-B_x9Bqsd.js +122 -0
  498. package/dist/security-audit-CaX5F2YD.js +118 -0
  499. package/dist/security-audit.runtime-BZFJXu8H.js +2 -0
  500. package/dist/security-audit.runtime.js +1 -1
  501. package/dist/selection-B4V4O6zr.js +16157 -0
  502. package/dist/selection-Cp7REh-j.js +3 -0
  503. package/dist/send-C8NgsGx0.js +2 -0
  504. package/dist/send-CktHKbVL.js +192 -0
  505. package/dist/send-DSDSSxuo.js +1631 -0
  506. package/dist/send-I0iE28XZ.js +143 -0
  507. package/dist/send.components-CdYNwUR8.js +500 -0
  508. package/dist/send.components-DDmsziVe.js +2 -0
  509. package/dist/send.runtime-DEr6-5Rp.js +2 -0
  510. package/dist/send.runtime.js +1 -1
  511. package/dist/server-Bdu2XxWz.js +24 -0
  512. package/dist/server-BnVdhBLM.js +73 -0
  513. package/dist/server-close.runtime.js +1 -1
  514. package/dist/server-context-B7bIBpAz.js +2 -0
  515. package/dist/server-context-BlPO5a-j.js +955 -0
  516. package/dist/server-cron-3tDiqp95.js +2989 -0
  517. package/dist/server-cron-Ckfa7HkP.js +2 -0
  518. package/dist/server-maintenance-CDfLZpYN.js +167 -0
  519. package/dist/server-methods-BNAICSKA.js +16494 -0
  520. package/dist/server-node-events-BSp5sE0Q.js +596 -0
  521. package/dist/server-plugin-bootstrap-Noai-kpp.js +70 -0
  522. package/dist/server-plugins-DYPvxv5q.js +432 -0
  523. package/dist/server-reload-handlers-I8gCBw7C.js +714 -0
  524. package/dist/server-restart-sentinel-Bykg5_Sm.js +747 -0
  525. package/dist/server-restart-sentinel-Dz8m-1uN.js +2 -0
  526. package/dist/server-runtime-services-B2DpVh1J.js +2 -0
  527. package/dist/server-runtime-services-DPDcSogD.js +267 -0
  528. package/dist/server-startup-early-Ctjir66B.js +87 -0
  529. package/dist/server-startup-plugins-DHFkcvFX.js +113 -0
  530. package/dist/server-startup-post-attach-BvKY1MjB.js +716 -0
  531. package/dist/server-ws-runtime-DbsgWSNE.js +349 -0
  532. package/dist/server.impl-DkzYcRnc.js +2586 -0
  533. package/dist/service-oKCE97n8.js +1446 -0
  534. package/dist/session-binding-BCYHcgKv.js +219 -0
  535. package/dist/session-binding-Dbc5SyV1.js +2 -0
  536. package/dist/session-kill-http-MtEei2A_.js +121 -0
  537. package/dist/session-reset-service-BetsGXPL.js +625 -0
  538. package/dist/session-route-BNumUO6m.js +93 -0
  539. package/dist/session-status.runtime-8-kVkZLZ.js +2 -0
  540. package/dist/session-status.runtime.js +1 -1
  541. package/dist/session-subagent-reactivation.runtime-C4xmUBc4.js +2 -0
  542. package/dist/session-subagent-reactivation.runtime.js +1 -1
  543. package/dist/session-tab-registry-DldD575V.js +521 -0
  544. package/dist/sessions-history-http-Dh8uuG7K.js +430 -0
  545. package/dist/sessions.runtime-CTD1EISY.js +2 -0
  546. package/dist/sessions.runtime.js +1 -1
  547. package/dist/setup-api-ClFwxmWg.js +29 -0
  548. package/dist/setup-core-DF053J7r.js +174 -0
  549. package/dist/setup-surface-C3vtcmut.js +221 -0
  550. package/dist/setup-surface-hKgM61lK.js +288 -0
  551. package/dist/setup-surface-kl5kIfCD.js +405 -0
  552. package/dist/setup-surface-o44p_EZs.js +320 -0
  553. package/dist/shared-DuNbDPVK.js +121 -0
  554. package/dist/shared-client-BGdKzX6-.js +2 -0
  555. package/dist/shared-client-DiaCaBiw.js +629 -0
  556. package/dist/side-question-vADB_V7t.js +683 -0
  557. package/dist/skill-tool-dispatch.runtime-DeTiaxln.js +143 -0
  558. package/dist/skill-tool-dispatch.runtime.js +1 -1
  559. package/dist/slash-state-TiAtCc3B.js +2166 -0
  560. package/dist/speech-provider-Dko5aOz2.js +184 -0
  561. package/dist/src-Bczx7izw.js +4256 -0
  562. package/dist/startup-context-sYE5tS1C.js +313 -0
  563. package/dist/status-CHChLqRH.js +3 -0
  564. package/dist/status-OYJF7NHg.js +4 -0
  565. package/dist/status-all-CSz2mOkm.js +573 -0
  566. package/dist/status-json-B5iKxsPt.js +14 -0
  567. package/dist/status-json-command-B7mD_HM0.js +84 -0
  568. package/dist/status-runtime-shared-tJ5_gXDE.js +283 -0
  569. package/dist/status-subagents.runtime-B79dVmOZ.js +18 -0
  570. package/dist/status-subagents.runtime.js +1 -1
  571. package/dist/status-text-CNV3Xo_z.js +296 -0
  572. package/dist/status.command-29iMh5b8.js +420 -0
  573. package/dist/status.command-cDrXztZ4.js +2 -0
  574. package/dist/status.command.text-runtime-CJLiLlec.js +15 -0
  575. package/dist/status.scan-BnCyO_-1.js +68 -0
  576. package/dist/status.scan-overview-8jfuH7wl.js +444 -0
  577. package/dist/status.scan.fast-json-CyqrMrI6.js +2 -0
  578. package/dist/status.scan.fast-json-D0y03alo.js +127 -0
  579. package/dist/status.scan.runtime-DGbNNELT.js +479 -0
  580. package/dist/status.scan.runtime.js +1 -1
  581. package/dist/status.update-C6moG8hY.js +2 -0
  582. package/dist/status.update-Ch-d2YqJ.js +86 -0
  583. package/dist/sticker-cache-ClnmeK7n.js +206 -0
  584. package/dist/sticker-vision.runtime-DKWYX_Z0.js +17 -0
  585. package/dist/sticker-vision.runtime.js +1 -1
  586. package/dist/subagent-announce-BxgiPcah.js +354 -0
  587. package/dist/subagent-announce-delivery-M73wDt9b.js +958 -0
  588. package/dist/subagent-control-Svp4alxT.js +508 -0
  589. package/dist/subagent-hooks-B8fQ4SB-.js +2 -0
  590. package/dist/subagent-hooks-Bide9UGs.js +2 -0
  591. package/dist/subagent-hooks-BroJYfmc.js +116 -0
  592. package/dist/subagent-hooks-CeLaGy0S.js +2 -0
  593. package/dist/subagent-hooks-D0jzCSJB.js +230 -0
  594. package/dist/subagent-hooks-DMtU9Utn.js +146 -0
  595. package/dist/subagent-hooks-api-6X1AhZ92.js +23 -0
  596. package/dist/subagent-hooks-api-C3hw2s-7.js +22 -0
  597. package/dist/subagent-hooks-api-D0utPXhG.js +23 -0
  598. package/dist/subagent-orphan-recovery-DlyXF_8M.js +352 -0
  599. package/dist/subagent-registry-Ct9aaUSq.js +2351 -0
  600. package/dist/subagent-registry-_ThKY_a5.js +3 -0
  601. package/dist/subagent-registry.runtime.js +1 -1
  602. package/dist/subagent-session-cleanup-D9jhUKCY.js +525 -0
  603. package/dist/subagent-spawn-Bl5_-Qro.js +1164 -0
  604. package/dist/target-id-DgUyIiaj.js +107 -0
  605. package/dist/targets-CV6YGekF.js +19 -0
  606. package/dist/targets-Ct6zFYUl.js +19 -0
  607. package/dist/targets-DQxwAOx5.js +44 -0
  608. package/dist/task-registry-control.runtime.js +1 -1
  609. package/dist/telegram/token.js +1 -1
  610. package/dist/testing-JsUCJjUs.js +267 -0
  611. package/dist/text-report-E0TZg1LV.js +695 -0
  612. package/dist/thread-bindings-BJJr5qB6.js +232 -0
  613. package/dist/thread-bindings-BVe9r2rW.js +571 -0
  614. package/dist/thread-bindings-p78_o8d0.js +228 -0
  615. package/dist/thread-bindings-yvtEoUyM.js +8 -0
  616. package/dist/thread-bindings.discord-api-DpdJ31xq.js +187 -0
  617. package/dist/thread-bindings.manager-DkA46uP3.js +536 -0
  618. package/dist/thread-bindings.manager-MVNj26UO.js +2 -0
  619. package/dist/thread-lifecycle-CLhulJIV.js +1614 -0
  620. package/dist/token-VGmXler6.js +134 -0
  621. package/dist/tool-BJkgiGjR.js +139 -0
  622. package/dist/tool-actions.runtime-DhrT4z_Z.js +534 -0
  623. package/dist/tool-actions.runtime.js +1 -1
  624. package/dist/tool-resolution-BJLcYvry.js +149 -0
  625. package/dist/tools-effective-inventory-D1c6J-sI.js +204 -0
  626. package/dist/tools-invoke-http-B-k9cOYf.js +67 -0
  627. package/dist/tools-invoke-shared-qMHGnaLY.js +200 -0
  628. package/dist/tts-CmxOJYRq.js +66 -0
  629. package/dist/tui-BcRfXYtK.js +2 -0
  630. package/dist/tui-ChmyCc_c.js +4709 -0
  631. package/dist/tui-backend-BOAgkU7O.js +256 -0
  632. package/dist/tui-cli-C_1WxXuf.js +37 -0
  633. package/dist/update-check-Dvp_oog_.js +387 -0
  634. package/dist/update-cli-CBJVr7p3.js +3664 -0
  635. package/dist/update-runner-DHzvirfV.js +2379 -0
  636. package/dist/update-startup-3l7wPrqM.js +339 -0
  637. package/dist/update-startup-C_peqiGI.js +2 -0
  638. package/dist/vision-tools-BIOoLPOZ.js +1409 -0
  639. package/dist/web-search-8-XCZJzj.js +62 -0
  640. package/dist/web-search-provider.runtime-BORgiL3n.js +2 -0
  641. package/dist/web-search-provider.runtime-CCXm-JLK.js +328 -0
  642. package/dist/web-search-provider.runtime.js +1 -1
  643. package/dist/xai-oauth-CcxHOluD.js +479 -0
  644. package/dist/xai-user-agent-BE2MgJak.js +32 -0
  645. package/package.json +1 -1
  646. package/dist/abort-Bp4IXIaT.js +0 -277
  647. package/dist/abort.runtime-yT20lVm3.js +0 -2
  648. package/dist/account-inspect-Braq4T5C.js +0 -173
  649. package/dist/accounts-B73T487L.js +0 -2
  650. package/dist/accounts-Byqhka0B.js +0 -107
  651. package/dist/accounts-C6REvXTb.js +0 -107
  652. package/dist/accounts-DHkZahnb.js +0 -119
  653. package/dist/acp-runtime-CsYu7oyf.js +0 -26
  654. package/dist/acp-spawn-BpcanpjB.js +0 -2
  655. package/dist/acp-spawn-CXnfFZet.js +0 -1275
  656. package/dist/acp-stateful-target-driver-dbQl7Cls.js +0 -89
  657. package/dist/action-kill-CmrHUh6-.js +0 -33
  658. package/dist/action-runtime-Nz_MTd85.js +0 -469
  659. package/dist/action-runtime-api-NVBTHRJ0.js +0 -2
  660. package/dist/action-send-Bw28r8YX.js +0 -39
  661. package/dist/action-spawn-Db3goKdw.js +0 -47
  662. package/dist/actions-CZEEFK0T.js +0 -161
  663. package/dist/actions.runtime-f4FlBapO.js +0 -5
  664. package/dist/agent-BFrHijEI.js +0 -3
  665. package/dist/agent-BvTZZujh.js +0 -2
  666. package/dist/agent-command-CexUxiL4.js +0 -1367
  667. package/dist/agent-components.runtime-Bv--4UUq.js +0 -10
  668. package/dist/agent-harness-runtime-_4Ou4ZI_.js +0 -180
  669. package/dist/agent-harness-task-runtime-D0TI6yGM.js +0 -140
  670. package/dist/agent-runner-execution-BWvPnRM1.js +0 -1713
  671. package/dist/agent-runner-utils-hmda0Lyc.js +0 -266
  672. package/dist/agent-runner.runtime-6MrZPOYP.js +0 -3455
  673. package/dist/agent-runtime-Cnq13raf.js +0 -229
  674. package/dist/agent-via-gateway-Cux4caUy.js +0 -463
  675. package/dist/api-0vV8JjoW.js +0 -2
  676. package/dist/api-4kojV9vT.js +0 -639
  677. package/dist/api-C4dZHG-E.js +0 -2
  678. package/dist/api-DFDhOB71.js +0 -134
  679. package/dist/api-Dd41e_NF.js +0 -3
  680. package/dist/api-DqSBNv8i.js +0 -6
  681. package/dist/apply-DnknmYSP.js +0 -41
  682. package/dist/apply-XMFoVMgK.js +0 -54
  683. package/dist/approval-handler.runtime-BIKhPCUE.js +0 -130
  684. package/dist/assistant-Cfzr-QfG.js +0 -291
  685. package/dist/attachment-normalize-Bqthqujs.js +0 -225
  686. package/dist/attempt-execution-Cc2IUiUY.js +0 -558
  687. package/dist/attempt-execution.runtime-C1pnC5CL.js +0 -3
  688. package/dist/attempt-execution.shared-DR-LL9H1.js +0 -38
  689. package/dist/attempt.prompt-helpers-DvfaNdO_.js +0 -475
  690. package/dist/attempt.tool-run-context-Fk3-iLKA.js +0 -2094
  691. package/dist/binding-routing-BjRihOZ8.js +0 -113
  692. package/dist/binding-targets-D3vQIPpu.js +0 -121
  693. package/dist/bot-BzKQljl1.js +0 -7894
  694. package/dist/bot-deps-CHJno4Xv.js +0 -747
  695. package/dist/bot-deps-CTU3vOGH.js +0 -2
  696. package/dist/bot-message-context.runtime-DPAocg_K.js +0 -7
  697. package/dist/bot-message-context.session.runtime-cWFJiTXb.js +0 -12
  698. package/dist/bot-native-commands.delivery.runtime-BBiSJ9qu.js +0 -4
  699. package/dist/bot-native-commands.runtime-BoWjkHEv.js +0 -13
  700. package/dist/bridge-server-BnWfM8E9.js +0 -113
  701. package/dist/browser-cli-CKSNhiVi.js +0 -230
  702. package/dist/browser-cli-CsC0lbjc.js +0 -2
  703. package/dist/browser-cli-actions-input-1PFDZ0_b.js +0 -473
  704. package/dist/browser-cli-actions-observe-DfH0Y9FC.js +0 -81
  705. package/dist/browser-cli-debug-hj-w-s9t.js +0 -137
  706. package/dist/browser-cli-inspect-CxxMD86J.js +0 -104
  707. package/dist/browser-cli-manage-DOn9OEh_.js +0 -443
  708. package/dist/browser-cli-resize-BFHf-RqV.js +0 -26
  709. package/dist/browser-cli-shared-Ca_pACoG.js +0 -50
  710. package/dist/browser-cli-state-CCIHMGkC.js +0 -337
  711. package/dist/browser-control-auth-dTGAuDxC.js +0 -2
  712. package/dist/browser-profiles-CjXJJdop.js +0 -2
  713. package/dist/browser-runtime-DrNsVpfv.js +0 -384
  714. package/dist/build-QfdWbTGY.js +0 -257
  715. package/dist/capability-cli-D7nQY4qe.js +0 -1782
  716. package/dist/channel-13BBMvGu.js +0 -1496
  717. package/dist/channel-B9qWcqGg.js +0 -562
  718. package/dist/channel-BB9gjVcH.js +0 -362
  719. package/dist/channel-BM_u9Kct.js +0 -508
  720. package/dist/channel-BdhbzWTg.d.ts +0 -427
  721. package/dist/channel-CQbX6z1g.js +0 -740
  722. package/dist/channel-CXkMpUA_.js +0 -1134
  723. package/dist/channel-CcENPjLR.js +0 -1556
  724. package/dist/channel-CfgfbGDs.js +0 -808
  725. package/dist/channel-D6JtLARW.js +0 -955
  726. package/dist/channel-D6klawjQ.js +0 -867
  727. package/dist/channel-DFTg6l_Y.js +0 -1777
  728. package/dist/channel-DI30oIzM.js +0 -238
  729. package/dist/channel-Dwmhp2QK.js +0 -376
  730. package/dist/channel-DyOJHorx.js +0 -481
  731. package/dist/channel-DzLAzPz_.js +0 -1249
  732. package/dist/channel-ZshGzzZU.js +0 -2126
  733. package/dist/channel-actions.runtime-BPuh-LPy.js +0 -265
  734. package/dist/channel-core-Cip0DXqW.js +0 -5
  735. package/dist/channel-inbound-nxJGbY-L.js +0 -80
  736. package/dist/channel-kn7WFIV-.js +0 -653
  737. package/dist/channel-plugin-runtime-D2mUAQP6.js +0 -998
  738. package/dist/channel-runtime-DWbCQz0-.js +0 -408
  739. package/dist/channel.runtime-BRLds_50.js +0 -1008
  740. package/dist/channel.runtime-BYk5D3KV.js +0 -652
  741. package/dist/channel.runtime-Bd5GuqVD.js +0 -4
  742. package/dist/channel.runtime-BhiiHau6.js +0 -109
  743. package/dist/channel.runtime-CKnG96oM.js +0 -254
  744. package/dist/channel.runtime-DbuDXi8A.js +0 -2528
  745. package/dist/channel.runtime-DfQ7lbcl.js +0 -21009
  746. package/dist/channel.runtime-DhzR3IQP.js +0 -733
  747. package/dist/channel.runtime-SnJqiMZZ.js +0 -88
  748. package/dist/channel.setup-0jZeZ91N.js +0 -1098
  749. package/dist/channel.setup-C3aSMtNe.js +0 -343
  750. package/dist/channel.setup-x_GPUW2e.js +0 -10
  751. package/dist/chat-DyxY_o5e.js +0 -2666
  752. package/dist/chrome-CUytWLO5.js +0 -1503
  753. package/dist/cli-BnAifbUH.js +0 -1341
  754. package/dist/cli-compaction-BsDXzDbB.js +0 -347
  755. package/dist/cli-metadata-C2ez_EOq.js +0 -22
  756. package/dist/cli-runner-Df8f6aib.js +0 -2
  757. package/dist/cli-runner-N-xuwavW.js +0 -540
  758. package/dist/cli-runner.runtime-BZgB5Wze.js +0 -3
  759. package/dist/cli-runner.runtime-CzWSBiUX.js +0 -4
  760. package/dist/client-BSznX-Sw.js +0 -650
  761. package/dist/client-adapter-CvuAhGRl.js +0 -897
  762. package/dist/client-factory-Dl9ZpTlR.js +0 -9
  763. package/dist/command-auth-Cp3qho7_.js +0 -135
  764. package/dist/command-handlers-7evBobOS.js +0 -1609
  765. package/dist/command-registry-BTdu515H.js +0 -4
  766. package/dist/command-registry-MW7FkJ_Y.js +0 -9
  767. package/dist/command-registry-core-COtKps6g.js +0 -110
  768. package/dist/command-status.runtime-HmI60xl3.js +0 -90
  769. package/dist/commands-acp-NnHhockz.js +0 -74
  770. package/dist/commands-compact.runtime-wJDJ6VWY.js +0 -10
  771. package/dist/commands-handlers.runtime-CDlvieOM.js +0 -6154
  772. package/dist/commands-status-CJsUMgIw.js +0 -16
  773. package/dist/commands-status-j5QdKUbl.js +0 -3
  774. package/dist/commands-status.runtime-j5QdKUbl.js +0 -3
  775. package/dist/commands-subagents-control.runtime-BfOBOw5t.js +0 -3
  776. package/dist/commands-subagents-control.runtime-CALs_ywD.js +0 -2
  777. package/dist/commands-system-prompt-BnMuvo_P.js +0 -2
  778. package/dist/commands-system-prompt-BqcYl8m9.js +0 -162
  779. package/dist/commands.runtime-DMhewKIp.js +0 -176
  780. package/dist/compact-B4Hs8o3S.js +0 -1141
  781. package/dist/compact-CKxyl7Ak.js +0 -480
  782. package/dist/compact.runtime-BPnE7Lia.js +0 -12
  783. package/dist/completion-cli-dN803PIC.js +0 -315
  784. package/dist/computer-use-DI-JbifZ.js +0 -367
  785. package/dist/config-CA7Mb3IV.js +0 -373
  786. package/dist/config-CjXJJdop.js +0 -2
  787. package/dist/config-mutations-CIt7XNeY.js +0 -159
  788. package/dist/context-engine-host-compat-C0PN-GqB.js +0 -288
  789. package/dist/context-engine-host-compat-r4dLJY0h.js +0 -2
  790. package/dist/context-engine-lifecycle-BgedIp9C.js +0 -1274
  791. package/dist/control-auth-BNpGd-Kk.js +0 -114
  792. package/dist/control-service-kce7bfHU.js +0 -145
  793. package/dist/control-ui/assets/agents-DYF7Shwp.js +0 -1008
  794. package/dist/control-ui/assets/channel-config-extras-BeVJ9wQW.js +0 -2
  795. package/dist/control-ui/assets/channels-B8hQJyN1.js +0 -367
  796. package/dist/control-ui/assets/cron-DEY9YxY4.js +0 -1013
  797. package/dist/control-ui/assets/debug-B4Pj_8SV.js +0 -97
  798. package/dist/control-ui/assets/index-BIr_za5p.js +0 -7370
  799. package/dist/control-ui/assets/instances-DBjo0xZX.js +0 -57
  800. package/dist/control-ui/assets/logs-Btu3zodR.js +0 -74
  801. package/dist/control-ui/assets/nodes-BNsG2ZQZ.js +0 -436
  802. package/dist/control-ui/assets/sessions-DVGZAenz.js +0 -399
  803. package/dist/control-ui/assets/skills-BOO5gAI1.js +0 -314
  804. package/dist/control-ui/assets/skills-shared-Ce6HjZf-.js +0 -11
  805. package/dist/conversation-binding-runtime-CUUOaxkw.js +0 -4
  806. package/dist/conversation-runtime-CAGsRmgG.js +0 -31
  807. package/dist/core-DDHeEXv5.js +0 -282
  808. package/dist/core-api-BfuO-na1.js +0 -5
  809. package/dist/core-api-YA03piFN.js +0 -2
  810. package/dist/crestodian-BvNBIbgT.js +0 -55
  811. package/dist/daocore-tools-V8Z6YbCA.js +0 -11727
  812. package/dist/delivery-CqDMMxF-.js +0 -1002
  813. package/dist/dialogue-C7jN6TtR.js +0 -37
  814. package/dist/dir-fetch-tool-DKizoBAo.js +0 -565
  815. package/dist/dir-list-tool-CMSe1Gic.js +0 -100
  816. package/dist/direct-dm-CNDGhZHH.js +0 -64
  817. package/dist/directive-handling.fast-lane-BNDUrJm9.js +0 -68
  818. package/dist/directive-handling.impl-CNMskvfI.js +0 -2
  819. package/dist/directive-handling.impl-DkSnupbX.js +0 -818
  820. package/dist/directive-handling.model-selection-DrYH2dJi.js +0 -122
  821. package/dist/directive-handling.persist.runtime-Bf1g-e09.js +0 -263
  822. package/dist/dispatch-BqXq6928.js +0 -1640
  823. package/dist/dispatch-acp-transcript.runtime-B8OLBkcv.js +0 -40
  824. package/dist/dispatch-acp.runtime-CFRlXnm3.js +0 -18
  825. package/dist/doctor-C8zSecbl.js +0 -6
  826. package/dist/doctor-DmE-4kn4.js +0 -2
  827. package/dist/doctor-config-flow-CiEbrb8s.js +0 -1741
  828. package/dist/doctor-core-checks-B3G8nJ2e.js +0 -573
  829. package/dist/doctor-core-checks-BeflOFTE.js +0 -2
  830. package/dist/doctor-health-Ali-Hxdp.js +0 -65
  831. package/dist/doctor-health-contributions-CXfgIUQd.js +0 -696
  832. package/dist/doctor-lint-B5IHZCxG.js +0 -94
  833. package/dist/doctor-state-integrity-BjeDtfbq.js +0 -1231
  834. package/dist/doctor-update-CG2msB2K.js +0 -58
  835. package/dist/dynamic-tools-D5gHaas6.js +0 -486
  836. package/dist/embedded-backend-BLW2WQJF.js +0 -579
  837. package/dist/embedded-gateway-stub.runtime-DbUedhpy.js +0 -12
  838. package/dist/exec-approvals-CwwQA-_B.js +0 -149
  839. package/dist/file-fetch-tool-CekPjemC.js +0 -124
  840. package/dist/file-write-tool-C7-UYxXN.js +0 -127
  841. package/dist/format-BrgWhpMP.js +0 -1145
  842. package/dist/format-C-lnTES_.js +0 -250
  843. package/dist/gateway-cli-BIl9ooav.js +0 -435
  844. package/dist/gateway-method-runtime-B3nJGqAy.js +0 -21
  845. package/dist/get-reply-CCGEqENF.js +0 -4689
  846. package/dist/get-reply-from-config.runtime-1bVL6Eaa.js +0 -2
  847. package/dist/graph-users-CCkJYdwo.js +0 -1419
  848. package/dist/group-access-BrcrVhTm.js +0 -112
  849. package/dist/handle-action.guild-admin-8EfNNvKz.js +0 -288
  850. package/dist/harness-BNsomB7U.js +0 -61
  851. package/dist/health-CJOAk46r.js +0 -4
  852. package/dist/health-state-CETJtly-.js +0 -106
  853. package/dist/heartbeat-runner-BjAnHwan.js +0 -5
  854. package/dist/heartbeat-runner.runtime-BhQDpIvL.js +0 -4
  855. package/dist/hooks-CAleL-fH.js +0 -534
  856. package/dist/inbound-direct-dm-runtime-aWeBKeRE.js +0 -2
  857. package/dist/inbound-reply-dispatch-DvWaNCgR.js +0 -148
  858. package/dist/init-D_kHY2_L.js +0 -59
  859. package/dist/inline-buttons-CBfC5L_C.js +0 -40
  860. package/dist/internal-events-DR7M-R-k.js +0 -90
  861. package/dist/isolated-agent-BSwvfJdq.js +0 -1118
  862. package/dist/isolated-agent-B_H2wb6F.js +0 -2
  863. package/dist/lifecycle-BsPQk14E.js +0 -571
  864. package/dist/list.probe-DVPoP_gs.js +0 -449
  865. package/dist/list.status-command-YLSxt2nU.js +0 -789
  866. package/dist/llm-slug-generator-DMXCuj_8.js +0 -78
  867. package/dist/local-dispatch.runtime-ByJpKbzY.js +0 -9
  868. package/dist/manager.runtime-Cbd4Wkzv.js +0 -2714
  869. package/dist/markdown-to-line-UROW4ICU.js +0 -811
  870. package/dist/mcp-http-Bs04-o36.js +0 -2
  871. package/dist/mcp-http-DusJ-yus.js +0 -555
  872. package/dist/media-understanding-provider-DJ2PVD5L.js +0 -339
  873. package/dist/message-actions-BOhsMU7S.js +0 -145
  874. package/dist/message-handler-BUvaTnYL.js +0 -384
  875. package/dist/message-handler-DsiaQGjj.js +0 -1715
  876. package/dist/message-handler.preflight-COR7HHaa.js +0 -1125
  877. package/dist/message-handler.process-Cnlh9kQt.js +0 -1484
  878. package/dist/model-CrGV78vh.js +0 -74
  879. package/dist/model-selection-BkMRVKvT.js +0 -272
  880. package/dist/models-CAsfL9Yc.js +0 -104
  881. package/dist/models-DAHwZzdm.js +0 -2
  882. package/dist/models-cli-NVAexFpF.js +0 -256
  883. package/dist/monitor-BHLuAWAQ.js +0 -2
  884. package/dist/monitor-BbTVo-eV.js +0 -715
  885. package/dist/monitor-CLLyEX0R.js +0 -2788
  886. package/dist/monitor-CTR3lVMb.js +0 -834
  887. package/dist/monitor-Cl2p6Juz.js +0 -60
  888. package/dist/monitor-D5rBDT5w.js +0 -4377
  889. package/dist/monitor-DyRkvAJd.js +0 -1370
  890. package/dist/monitor-IiG3eV5_.js +0 -1657
  891. package/dist/monitor-auth-D_0zoeLn.js +0 -179
  892. package/dist/monitor-polling.runtime-BXzw5egF.js +0 -883
  893. package/dist/monitor-webhook.runtime-C3arPPzi.js +0 -387
  894. package/dist/monitor.account-DrVGHE8V.js +0 -5233
  895. package/dist/monitor.runtime-DPEbukZB.js +0 -2
  896. package/dist/monitor.webhook-jkAnTCQb.js +0 -180
  897. package/dist/node-cli-sessions-DcVj-6eN.js +0 -1228
  898. package/dist/openai-http-CmoI0e7t.js +0 -824
  899. package/dist/openresponses-http-Bi3LSGUc.js +0 -1173
  900. package/dist/operations-9LkwgILD.js +0 -805
  901. package/dist/outbound-adapter-xUTnrNGD.js +0 -543
  902. package/dist/outbound-session-route-CBXkht6a.js +0 -45
  903. package/dist/outbound.runtime-CAgimRZ1.js +0 -2
  904. package/dist/pi-embedded-BKpKsszm.js +0 -4
  905. package/dist/pi-embedded-DmeQCwCt.js +0 -3796
  906. package/dist/pi-embedded.runtime-C283Wor9.js +0 -4
  907. package/dist/pi-tools-B0nJW7W4.js +0 -2413
  908. package/dist/plan-BILA3XMN.js +0 -81
  909. package/dist/plan-DHXchBJq.js +0 -112
  910. package/dist/plugin-CHLmrL9G.js +0 -12396
  911. package/dist/plugin-app-cache-key-C-_klURZ.js +0 -46
  912. package/dist/plugin-enabled-DzYMnPpm.js +0 -233
  913. package/dist/plugin-registration-DLrh8AB5.js +0 -88
  914. package/dist/plugin-service-xm4tv2oM.js +0 -1229
  915. package/dist/policy-BUSsfT7A.js +0 -138
  916. package/dist/policy-BwwL6sP2.js +0 -680
  917. package/dist/prepare.runtime-Dcrb22a5.js +0 -732
  918. package/dist/preview-warnings-Cx__1X43.js +0 -392
  919. package/dist/probe-CevnbYpq.js +0 -682
  920. package/dist/probe-CoEDhBiC.js +0 -2204
  921. package/dist/probe-ConXyeqE.js +0 -2
  922. package/dist/probe-D-jU5onR.js +0 -47
  923. package/dist/program-BBwmibpa.js +0 -131
  924. package/dist/provider--7lUimtp.js +0 -152
  925. package/dist/provider-CCGQtVNI.js +0 -8735
  926. package/dist/provider-DVMSF8i8.js +0 -32
  927. package/dist/provider-R_TaXN59.js +0 -32
  928. package/dist/provider-dispatcher-CYkb3lfL.js +0 -22
  929. package/dist/provider-session.runtime-DzG2BUE9.js +0 -9
  930. package/dist/provider.runtime-D1-pMnoj.js +0 -2
  931. package/dist/public-surface-loader-BZisefzq.js +0 -114
  932. package/dist/pw-ai-Cbau3n7J.js +0 -3029
  933. package/dist/pw-role-snapshot-HeQTrxIk.js +0 -333
  934. package/dist/reaction-level-uJ8tiLpH.js +0 -19
  935. package/dist/reaction-runtime-api-BKUvK5Wn.js +0 -116
  936. package/dist/realtime-transcription-provider-Daix0e58.js +0 -205
  937. package/dist/register-Dj9j6LEv.js +0 -2178
  938. package/dist/register.agent-OiMUcpgI.js +0 -156
  939. package/dist/register.crestodian-CbqhJMEx.js +0 -24
  940. package/dist/register.maintenance-CQILEqsM.js +0 -83
  941. package/dist/register.runtime-BwfUZoFY.js +0 -54
  942. package/dist/register.status-health-sessions-DF6wxmsG.js +0 -282
  943. package/dist/register.subclis-BR2kCzHF.js +0 -31
  944. package/dist/register.subclis-Wd-wKmYg.js +0 -3
  945. package/dist/register.subclis-core-DS7RVqtY.js +0 -273
  946. package/dist/repair-sequencing-DvQQmyrq.js +0 -640
  947. package/dist/reply-delivery-ohbM16VN.js +0 -196
  948. package/dist/reply-runtime-qGOCyyux.js +0 -11
  949. package/dist/reply.runtime-1bVL6Eaa.js +0 -2
  950. package/dist/request-CC3c4Svm.js +0 -54
  951. package/dist/resolve-allowlist-vAhCe75e.js +0 -220
  952. package/dist/result-fallback-classifier-CZtnXmbx.js +0 -79
  953. package/dist/route-resolution-CXaxgYtw.js +0 -274
  954. package/dist/route-uo5aoUdQ.js +0 -469
  955. package/dist/routes-BqtrHP28.js +0 -2
  956. package/dist/routes-pIjFm3n0.js +0 -3602
  957. package/dist/run-DYwW1kIR.js +0 -1162
  958. package/dist/run-attempt-B2GDG3uT.js +0 -7704
  959. package/dist/run-command-CbUIDjYf.js +0 -2
  960. package/dist/run-command-DHOIYQm_.js +0 -23
  961. package/dist/run-embedded.runtime-g47oIqaL.js +0 -4
  962. package/dist/run-execution-cli.runtime-zQ48ZAc5.js +0 -4
  963. package/dist/run-subagent-registry.runtime-CXj8K_pJ.js +0 -2
  964. package/dist/runtime-CjTLh1Zl.js +0 -6179
  965. package/dist/runtime-NVf_F_HM.js +0 -1287
  966. package/dist/runtime-Z5_yALHT.js +0 -438
  967. package/dist/runtime-api-BExObylL.js +0 -17
  968. package/dist/runtime-api-BfCI6iAu.js +0 -3
  969. package/dist/runtime-api-BkzOHOsq.js +0 -13
  970. package/dist/runtime-api-BtVSnSI4.js +0 -4
  971. package/dist/runtime-api-DLHn_SE-.js +0 -24
  972. package/dist/runtime-api-_nsdMn3H.js +0 -13
  973. package/dist/runtime-api-qMRycIAN.js +0 -21
  974. package/dist/runtime-api.actions-UmkTxLGC.js +0 -3
  975. package/dist/runtime-api.monitor-JDAShUxC.js +0 -6
  976. package/dist/runtime-api.send-B65J_Lod.js +0 -4
  977. package/dist/runtime-api.threads-B7tsKPA_.js +0 -2
  978. package/dist/runtime-channel-Bs6XTsp4.js +0 -150
  979. package/dist/runtime-channel-C3WZVBBg.js +0 -2
  980. package/dist/runtime-embedded-pi.runtime-P8AdyyIu.js +0 -2
  981. package/dist/sanitize-outbound-Bt4-FGfp.js +0 -127
  982. package/dist/sdk-setup-tools-CfyJODAu.js +0 -8
  983. package/dist/secrets-DjmhS0YO.js +0 -113
  984. package/dist/security-audit-CKVBQPWN.js +0 -118
  985. package/dist/security-audit-D9IeXoG3.js +0 -122
  986. package/dist/security-audit.runtime-CYMQTOM9.js +0 -2
  987. package/dist/selection--wvE7VOv.js +0 -16157
  988. package/dist/selection-y-7QPgGA.js +0 -3
  989. package/dist/send-BlmkYrI0.js +0 -1631
  990. package/dist/send-CbkEX0QM.js +0 -143
  991. package/dist/send-Cmn4RsqA.js +0 -192
  992. package/dist/send-Dug9BZ9D.js +0 -2
  993. package/dist/send.components-CyaKuD2L.js +0 -500
  994. package/dist/send.components-PcOc-Ovz.js +0 -2
  995. package/dist/send.runtime-xY6hEtyv.js +0 -2
  996. package/dist/server-BnGgr3PE.js +0 -73
  997. package/dist/server-DSUxFJfU.js +0 -24
  998. package/dist/server-context-CLKwYCyu.js +0 -955
  999. package/dist/server-context-CYVPTQQC.js +0 -2
  1000. package/dist/server-cron-B1jBiRyb.js +0 -2989
  1001. package/dist/server-cron-X77jGOEU.js +0 -2
  1002. package/dist/server-maintenance-Y0NvZrH-.js +0 -167
  1003. package/dist/server-methods-BBnXSrf2.js +0 -16494
  1004. package/dist/server-node-events-BUsL79RS.js +0 -596
  1005. package/dist/server-plugin-bootstrap-ALp-FJwj.js +0 -70
  1006. package/dist/server-plugins-ufO_8NhB.js +0 -432
  1007. package/dist/server-reload-handlers-CPiyHZtT.js +0 -714
  1008. package/dist/server-restart-sentinel-CQk6eeWM.js +0 -747
  1009. package/dist/server-restart-sentinel-D3cRaMdv.js +0 -2
  1010. package/dist/server-runtime-services-Bu0xO9C9.js +0 -2
  1011. package/dist/server-runtime-services-DXP2sVWQ.js +0 -267
  1012. package/dist/server-startup-early-5UM54scV.js +0 -87
  1013. package/dist/server-startup-plugins-CQ_pYS5Y.js +0 -113
  1014. package/dist/server-startup-post-attach-Ja8NHfJQ.js +0 -716
  1015. package/dist/server-ws-runtime-DNH4m_Ix.js +0 -349
  1016. package/dist/server.impl-BXCtVnO2.js +0 -2586
  1017. package/dist/service-wi5zUseG.js +0 -1446
  1018. package/dist/session-binding-BUfCOB1r.js +0 -219
  1019. package/dist/session-binding-DBdZdGMb.js +0 -2
  1020. package/dist/session-kill-http-PtCc8zMl.js +0 -121
  1021. package/dist/session-reset-service-BOBmro8l.js +0 -625
  1022. package/dist/session-route-CJUmMLQC.js +0 -93
  1023. package/dist/session-status.runtime-C10K54fr.js +0 -2
  1024. package/dist/session-subagent-reactivation.runtime-DfIyTUKb.js +0 -2
  1025. package/dist/session-tab-registry-DQbVw6TC.js +0 -521
  1026. package/dist/sessions-history-http-BX2MupcW.js +0 -430
  1027. package/dist/sessions.runtime-C2inYyN4.js +0 -2
  1028. package/dist/setup-api-LkhGnkD8.js +0 -29
  1029. package/dist/setup-core-CinEapxM.js +0 -174
  1030. package/dist/setup-surface-BCtf5vsv.js +0 -221
  1031. package/dist/setup-surface-BlIPVefp.js +0 -320
  1032. package/dist/setup-surface-CfGI8GXG.js +0 -288
  1033. package/dist/setup-surface-Cpi2A6hH.js +0 -405
  1034. package/dist/shared-D57heBsq.js +0 -121
  1035. package/dist/shared-client-BNqlZyQZ.js +0 -2
  1036. package/dist/shared-client-DkXSWGuf.js +0 -629
  1037. package/dist/side-question-CJpQXQwO.js +0 -683
  1038. package/dist/skill-tool-dispatch.runtime-DFIYzLB7.js +0 -143
  1039. package/dist/slash-state-PVFVXsf5.js +0 -2166
  1040. package/dist/speech-provider-BYMES40R.js +0 -184
  1041. package/dist/src-Cig0nIaB.js +0 -4256
  1042. package/dist/startup-context-BhCfCVUP.js +0 -313
  1043. package/dist/status-BUGiySd0.js +0 -3
  1044. package/dist/status-CCUVxq2T.js +0 -4
  1045. package/dist/status-all-DVmRki9n.js +0 -573
  1046. package/dist/status-json-C9yB-I_P.js +0 -14
  1047. package/dist/status-json-command-DLiHHY4-.js +0 -84
  1048. package/dist/status-runtime-shared-CVVr1-B8.js +0 -283
  1049. package/dist/status-subagents.runtime-Dnd_-sFp.js +0 -18
  1050. package/dist/status-text-Bv7B6Qvi.js +0 -296
  1051. package/dist/status.command-CgQ_YxAV.js +0 -2
  1052. package/dist/status.command-DljDx7Pt.js +0 -420
  1053. package/dist/status.command.text-runtime-HPfXUUVK.js +0 -15
  1054. package/dist/status.scan-XGVKT6BH.js +0 -68
  1055. package/dist/status.scan-overview-BdO_Dwpk.js +0 -444
  1056. package/dist/status.scan.fast-json-BbfAYFaX.js +0 -2
  1057. package/dist/status.scan.fast-json-CixCI_VT.js +0 -127
  1058. package/dist/status.scan.runtime-c77nmHB8.js +0 -479
  1059. package/dist/status.update-CgJc9Ame.js +0 -2
  1060. package/dist/status.update-DxUx2UCj.js +0 -86
  1061. package/dist/sticker-cache-zbRCf5UY.js +0 -206
  1062. package/dist/sticker-vision.runtime-D8hb_hbK.js +0 -17
  1063. package/dist/subagent-announce-D-tCpxB7.js +0 -354
  1064. package/dist/subagent-announce-delivery-CV9sHBb8.js +0 -958
  1065. package/dist/subagent-control-B71yROQ1.js +0 -508
  1066. package/dist/subagent-hooks-5z9r_kyU.js +0 -230
  1067. package/dist/subagent-hooks-B9N4nO9J.js +0 -2
  1068. package/dist/subagent-hooks-Bqm8GC4e.js +0 -116
  1069. package/dist/subagent-hooks-CH64M3D2.js +0 -2
  1070. package/dist/subagent-hooks-YX204bTO.js +0 -2
  1071. package/dist/subagent-hooks-api-22u-zraT.js +0 -23
  1072. package/dist/subagent-hooks-api-CZbBhZq3.js +0 -23
  1073. package/dist/subagent-hooks-api-Ji-FhB1I.js +0 -22
  1074. package/dist/subagent-hooks-yIneGe_q.js +0 -146
  1075. package/dist/subagent-orphan-recovery-BR2b7ZZK.js +0 -352
  1076. package/dist/subagent-registry-7llbjThI.js +0 -2351
  1077. package/dist/subagent-registry-IXRntXRj.js +0 -3
  1078. package/dist/subagent-session-cleanup-Ckvz5u4B.js +0 -525
  1079. package/dist/subagent-spawn-28HeMeKx.js +0 -1164
  1080. package/dist/target-id-CGBWkCke.js +0 -107
  1081. package/dist/targets-B8kgW-Y8.js +0 -19
  1082. package/dist/targets-BhYsYz4Q.js +0 -44
  1083. package/dist/targets-Dl-MgHWz.js +0 -19
  1084. package/dist/testing-CwJ9EDFR.js +0 -267
  1085. package/dist/text-report-97aYC9pB.js +0 -695
  1086. package/dist/thread-bindings-B6t8Q4ba.js +0 -8
  1087. package/dist/thread-bindings-B9f-_sFy.js +0 -571
  1088. package/dist/thread-bindings-CJDUpwXD.js +0 -228
  1089. package/dist/thread-bindings-DxvjdbzW.js +0 -232
  1090. package/dist/thread-bindings.discord-api-CnRP-DSi.js +0 -187
  1091. package/dist/thread-bindings.manager-2B6_nSpQ.js +0 -536
  1092. package/dist/thread-bindings.manager-C_n--VnJ.js +0 -2
  1093. package/dist/thread-lifecycle-C2hLLuqe.js +0 -1614
  1094. package/dist/token-Bo7-r-aE.js +0 -134
  1095. package/dist/tool-BLIlzoql.js +0 -139
  1096. package/dist/tool-actions.runtime-CXZ0UNkZ.js +0 -534
  1097. package/dist/tool-resolution-BqtQFCPq.js +0 -149
  1098. package/dist/tools-effective-inventory-DABx239z.js +0 -204
  1099. package/dist/tools-invoke-http-8pjepRT1.js +0 -67
  1100. package/dist/tools-invoke-shared-l5WK0ntS.js +0 -200
  1101. package/dist/tts-BIYGM92g.js +0 -66
  1102. package/dist/tui-DCykl3IU.js +0 -4709
  1103. package/dist/tui-DzUa_vFQ.js +0 -2
  1104. package/dist/tui-backend-BJUtldXg.js +0 -256
  1105. package/dist/tui-cli-C-Q6SJc7.js +0 -37
  1106. package/dist/update-check-BKUpUW-v.js +0 -372
  1107. package/dist/update-cli-DA6H6wa0.js +0 -3664
  1108. package/dist/update-runner-C680U-SL.js +0 -2379
  1109. package/dist/update-startup-D26cmPn-.js +0 -2
  1110. package/dist/update-startup-XLbXHCT1.js +0 -339
  1111. package/dist/vision-tools-DJ4y7cV-.js +0 -1409
  1112. package/dist/web-search-DpV8PBBY.js +0 -62
  1113. package/dist/web-search-provider.runtime-Bmvff7rR.js +0 -2
  1114. package/dist/web-search-provider.runtime-CY9JJJoF.js +0 -328
  1115. package/dist/xai-oauth-gj-8ubLa.js +0 -479
  1116. package/dist/xai-user-agent-D4JRRc1W.js +0 -32
  1117. /package/dist/{acp-runtime-backend-DL9bHzqW.js → acp-runtime-backend-DFDX5U10.js} +0 -0
  1118. /package/dist/{channel-actions-CMf4W2nb.js → channel-actions-DMH2vVzJ.js} +0 -0
  1119. /package/dist/{command-status-runtime-CFttYerC.js → command-status-runtime-Du_onNYh.js} +0 -0
  1120. /package/dist/{delegate-D6LGFAf5.js → delegate-CDb4qcfr.js} +0 -0
  1121. /package/dist/{dispatch-acp-aDmm-ClP.js → dispatch-acp-0Se8OniI.js} +0 -0
  1122. /package/dist/{heartbeat-runner-CA3FnKVt.js → heartbeat-runner-BdsqQ3pi.js} +0 -0
  1123. /package/dist/{library-Bwpqe3Xn.js → library-CsfrQOyp.js} +0 -0
  1124. /package/dist/{run-executor.runtime-BDRmO1Qf.js → run-executor.runtime-OlsZwyZw.js} +0 -0
  1125. /package/dist/{shared-DMRXpVQc.js → shared-DxV6gup5.js} +0 -0
@@ -0,0 +1,1484 @@
1
+ import { i as formatErrorMessage } from "./errors-D_oyTIw2.js";
2
+ import { y as truncateUtf16Safe } from "./utils-CNnMhEDp.js";
3
+ import { n as normalizeAccountId } from "./account-id-B32J-iNN.js";
4
+ import { p as resolveThreadSessionKeys } from "./session-key-Bte0mmcq.js";
5
+ import { a as shouldLogVerbose, r as logVerbose, t as danger } from "./globals-DhGeOA1P.js";
6
+ import { u as resolveStorePath } from "./paths-8MFrTNIB.js";
7
+ import { F as resolveSessionStoreEntry } from "./store-load-B817r-3Z.js";
8
+ import { a as readSessionUpdatedAt } from "./store-C4uyNaPD.js";
9
+ import { d as resolveAndPersistSessionFile, r as readLatestAssistantTextFromSessionTranscript } from "./transcript-CalMl_Y7.js";
10
+ import { u as stripReasoningTagsFromText } from "./assistant-visible-text-BoF6Ixue.js";
11
+ import { r as stripInlineDirectiveTagsForDelivery } from "./directive-tags-CClLEtM7.js";
12
+ import { a as getReplyPayloadTtsSupplement, n as buildTtsSupplementMediaPayload } from "./reply-payload-CiT5mlcY.js";
13
+ import { m as resolveSendableOutboundReplyParts } from "./reply-payload-DMPQsrQC.js";
14
+ import { t as resolveAccountEntry } from "./account-lookup-CQEoGO1F.js";
15
+ import { s as formatReasoningMessage } from "./pi-embedded-utils-B5v2j1CN.js";
16
+ import { A as resolveChannelStreamingSuppressDefaultToolProgressMessages, S as resolveChannelStreamingBlockEnabled, T as resolveChannelStreamingPreviewChunk, a as createChannelProgressDraftGate, c as formatChannelProgressDraftText, f as mergeChannelProgressDraftLine, i as buildChannelProgressDraftLineForEntry, j as resolveTranscriptBackedChannelFinalText, k as resolveChannelStreamingPreviewToolProgress, p as normalizeChannelProgressDraftLineIdentity, r as buildChannelProgressDraftLine, u as isChannelProgressDraftWorkToolName, y as resolveChannelProgressDraftMaxLines } from "./channel-streaming-BBW2i40H.js";
17
+ import { t as EmbeddedBlockChunker } from "./pi-embedded-block-chunker-BQzqF871.js";
18
+ import { t as buildAgentSessionKey } from "./resolve-route-C0-Q-Gjg.js";
19
+ import { l as resolvePinnedMainDmOwnerFromAllowlist } from "./dm-policy-shared-Bj-e8bT2.js";
20
+ import { r as getAgentScopedMediaLocalRoots } from "./local-roots-CcT8yBYy.js";
21
+ import { i as resolveHumanDelayConfig, t as resolveAckReaction } from "./identity-ZuObO2Tn.js";
22
+ import { c as resolveTextChunkLimit, s as resolveChunkMode } from "./chunk-DeZRGIEM.js";
23
+ import { a as deliverWithFinalizableLivePreviewAdapter, r as defineFinalizableLivePreviewAdapter } from "./live-CF0ee90S.js";
24
+ import "./error-runtime--zM-GsR-.js";
25
+ import "./runtime-env-BSECk1Nm.js";
26
+ import "./routing-AC-P99jg.js";
27
+ import { a as resolveEnvelopeFormatOptions, r as formatInboundEnvelope } from "./envelope-DUI2KFD9.js";
28
+ import { i as shouldAckReaction } from "./ack-reactions-BceP3SaE.js";
29
+ import { t as recordInboundSession } from "./session-DDNzwYpl.js";
30
+ import { g as toInboundMediaFacts, h as toHistoryMediaEntries, p as recordChannelBotPairLoopAndCheckSuppression, s as buildChannelInboundEventContext } from "./kernel-DJoytLM8.js";
31
+ import { n as resolveChannelSourceReplyDeliveryMode, t as createChannelReplyPipeline } from "./reply-pipeline-CbGLcDzV.js";
32
+ import { n as hasFinalChannelTurnDispatch } from "./dispatch-result-BM3RYtx4.js";
33
+ import { t as evaluateSupplementalContextVisibility } from "./context-visibility-C9pX_aod.js";
34
+ import { t as createChannelHistoryWindow } from "./history-window-BQUXX_Lf.js";
35
+ import { t as resolveMarkdownTableMode } from "./markdown-tables-BEjHxS3n.js";
36
+ import { t as convertMarkdownTables } from "./tables-BROr40GK.js";
37
+ import { n as isDangerousNameMatchingEnabled } from "./dangerous-name-matching-jjAiM0PK.js";
38
+ import "./reply-history-jazYo7cq.js";
39
+ import { t as resolveChannelContextVisibilityMode } from "./context-visibility-Si-TIKp_.js";
40
+ import "./reply-chunking-C6CVu1PV.js";
41
+ import { f as runPreparedInboundReplyTurn } from "./inbound-reply-dispatch-3Kvtrdcn.js";
42
+ import "./media-runtime-CPXTkSQr.js";
43
+ import "./conversation-runtime-YK1oLoen.js";
44
+ import "./text-chunking-ObhJDe8L.js";
45
+ import "./agent-runtime-DKr0TX79.js";
46
+ import "./security-runtime-Q5KQBgu1.js";
47
+ import "./markdown-table-runtime-CGhR5c0i.js";
48
+ import { r as logTypingFailure, t as logAckFailure } from "./logging-Dr3f0mtP.js";
49
+ import { a as DEFAULT_TIMING, c as createStatusReactionController } from "./channel-feedback-66g2TOgS.js";
50
+ import "./channel-inbound-FG-Mc5xc.js";
51
+ import { r as createFinalizableDraftLifecycle } from "./channel-lifecycle-DDnbT5P-.js";
52
+ import "./channel-message-YAmKOwAT.js";
53
+ import { t as loadSessionStore } from "./session-store-runtime-BZIAo9w7.js";
54
+ import "./text-utility-runtime-DMDtY7pX.js";
55
+ import { f as resolveDiscordMaxLinesPerMessage } from "./accounts-BgsM9h2-.js";
56
+ import { n as resolveDiscordChannelId } from "./target-parsing-D1FhMbX6.js";
57
+ import { $ as createChannelMessage, Ht as MessageFlags, It as ChannelType, it as editChannelMessage, nt as deleteChannelMessage } from "./discord-DLn5dEWC.js";
58
+ import { N as createDiscordRestClient, P as createDiscordRuntimeAccountContext, _ as resolveDiscordMessageFlags, d as resolveDiscordTargetChannelId } from "./send.shared-DkEjcqxQ.js";
59
+ import { t as chunkDiscordTextWithMode } from "./chunk-CulNAv84.js";
60
+ import { i as resolveTimestampMs } from "./format-DZW075F7.js";
61
+ import { a as normalizeDiscordSlug, r as normalizeDiscordAllowList } from "./allow-list-BcPKAZym.js";
62
+ import { d as editMessageDiscord, i as removeReactionDiscord, n as reactMessageDiscord } from "./send-BZbyJL0A.js";
63
+ import "./targets-BoRwMAy3.js";
64
+ import { t as beginDiscordInboundEventDeliveryCorrelation } from "./inbound-event-delivery-DxDWYs2V.js";
65
+ import { t as resolveDiscordConversationIdentity } from "./conversation-identity-Dv4rxYLA.js";
66
+ import { t as DISCORD_TEXT_CHUNK_LIMIT } from "./outbound-adapter-Cmcx_Msg.js";
67
+ import { t as resolveDiscordPreviewStreamMode } from "./preview-streaming-CfbvBF8d.js";
68
+ import { n as DISCORD_ATTACHMENT_TOTAL_TIMEOUT_MS, t as DISCORD_ATTACHMENT_IDLE_TIMEOUT_MS } from "./timeouts-l_PsHQvX.js";
69
+ import { a as resolveForwardedMediaList, o as resolveMediaList, r as resolveDiscordMessageText, s as resolveReferencedReplyMediaList } from "./message-utils-BG2BCBdr.js";
70
+ import { c as resolveDiscordThreadStarter, r as resolveDiscordAutoThreadReplyPlan } from "./threading-CfCR-cPo.js";
71
+ import { t as sendTyping } from "./typing-DdARgVOy.js";
72
+ import { n as buildDiscordInboundAccessContext, r as createDiscordSupplementalContextAccessChecker } from "./inbound-context-BKozGR57.js";
73
+ import { i as resolveReplyContext, n as buildDirectLabel, r as buildGuildLabel, t as deliverDiscordReply } from "./reply-delivery-Dx31Fawb.js";
74
+ import path from "node:path";
75
+ //#region extensions/discord/src/monitor/ack-reactions.ts
76
+ function createDiscordAckReactionContext(params) {
77
+ return {
78
+ rest: params.rest,
79
+ ...createDiscordRuntimeAccountContext({
80
+ cfg: params.cfg,
81
+ accountId: params.accountId
82
+ })
83
+ };
84
+ }
85
+ function createDiscordAckReactionAdapter(params) {
86
+ return {
87
+ setReaction: async (emoji) => {
88
+ await reactMessageDiscord(params.channelId, params.messageId, emoji, params.reactionContext);
89
+ },
90
+ removeReaction: async (emoji) => {
91
+ await removeReactionDiscord(params.channelId, params.messageId, emoji, params.reactionContext);
92
+ }
93
+ };
94
+ }
95
+ function queueInitialDiscordAckReaction(params) {
96
+ if (params.enabled) {
97
+ params.statusReactions.setQueued();
98
+ return;
99
+ }
100
+ if (!params.shouldSendAckReaction || !params.ackReaction) return;
101
+ params.reactionAdapter.setReaction(params.ackReaction).catch((err) => {
102
+ logAckFailure({
103
+ log: logVerbose,
104
+ channel: "discord",
105
+ target: params.target,
106
+ error: err
107
+ });
108
+ });
109
+ }
110
+ //#endregion
111
+ //#region extensions/discord/src/monitor/message-handler.context.ts
112
+ function normalizeDiscordDmOwnerEntry(entry) {
113
+ const candidate = normalizeDiscordAllowList([entry], [
114
+ "discord:",
115
+ "user:",
116
+ "pk:"
117
+ ])?.ids.values().next().value;
118
+ return typeof candidate === "string" && /^\d+$/.test(candidate) ? candidate : void 0;
119
+ }
120
+ function isContextAborted(abortSignal) {
121
+ return Boolean(abortSignal?.aborted);
122
+ }
123
+ async function buildDiscordMessageProcessContext(params) {
124
+ const { ctx, text, mediaList } = params;
125
+ const { cfg, discordConfig, accountId, runtime, mediaMaxBytes, discordRestFetch, abortSignal, guildHistories, historyLimit, replyToMode, message, author, sender, canonicalMessageId, data, client, channelInfo, channelName, messageChannelId, isGuildMessage, isDirectMessage, baseText, preflightAudioTranscript, threadChannel, threadParentId, threadParentName, threadParentType, threadName, displayChannelSlug, guildInfo, guildSlug, memberRoleIds, channelConfig, baseSessionKey, boundSessionKey, route, commandAuthorized } = ctx;
126
+ const fromLabel = isDirectMessage ? buildDirectLabel(author) : buildGuildLabel({
127
+ guild: data.guild ?? void 0,
128
+ channelName: channelName ?? messageChannelId,
129
+ channelId: messageChannelId
130
+ });
131
+ const senderLabel = sender.label;
132
+ const isForumParent = threadParentType === ChannelType.GuildForum || threadParentType === ChannelType.GuildMedia;
133
+ const forumParentSlug = isForumParent && threadParentName ? normalizeDiscordSlug(threadParentName) : "";
134
+ const threadChannelId = threadChannel?.id;
135
+ const threadParentInheritanceEnabled = discordConfig?.thread?.inheritParent ?? false;
136
+ const forumContextLine = Boolean(threadChannelId && isForumParent && forumParentSlug) && message.id === threadChannelId ? `[Forum parent: #${forumParentSlug}]` : null;
137
+ const groupChannel = isGuildMessage && displayChannelSlug ? `#${displayChannelSlug}` : void 0;
138
+ const groupSubject = isDirectMessage ? void 0 : groupChannel;
139
+ const senderName = sender.isPluralKit ? sender.name ?? author.username : data.member?.nickname ?? author.globalName ?? author.username;
140
+ const senderUsername = sender.isPluralKit ? sender.tag ?? sender.name ?? author.username : author.username;
141
+ const { groupSystemPrompt, ownerAllowFrom, untrustedContext } = buildDiscordInboundAccessContext({
142
+ channelConfig,
143
+ guildInfo,
144
+ sender: {
145
+ id: sender.id,
146
+ name: sender.name,
147
+ tag: sender.tag
148
+ },
149
+ allowNameMatching: isDangerousNameMatchingEnabled(discordConfig),
150
+ isGuild: isGuildMessage,
151
+ channelTopic: channelInfo?.topic
152
+ });
153
+ const pinnedMainDmOwner = isDirectMessage ? resolvePinnedMainDmOwnerFromAllowlist({
154
+ dmScope: cfg.session?.dmScope,
155
+ allowFrom: channelConfig?.users ?? guildInfo?.users,
156
+ normalizeEntry: normalizeDiscordDmOwnerEntry
157
+ }) : null;
158
+ const contextVisibilityMode = resolveChannelContextVisibilityMode({
159
+ cfg,
160
+ channel: "discord",
161
+ accountId
162
+ });
163
+ const isSupplementalContextSenderAllowed = createDiscordSupplementalContextAccessChecker({
164
+ channelConfig,
165
+ guildInfo,
166
+ allowNameMatching: isDangerousNameMatchingEnabled(discordConfig),
167
+ isGuild: isGuildMessage
168
+ });
169
+ const storePath = resolveStorePath(cfg.session?.store, { agentId: route.agentId });
170
+ const envelopeOptions = resolveEnvelopeFormatOptions(cfg);
171
+ const previousTimestamp = readSessionUpdatedAt({
172
+ storePath,
173
+ sessionKey: route.sessionKey
174
+ });
175
+ const channelHistory = createChannelHistoryWindow({ historyMap: guildHistories });
176
+ const isRoomEvent = ctx.inboundEventKind === "room_event";
177
+ let combinedBody = formatInboundEnvelope({
178
+ channel: "Discord",
179
+ from: fromLabel,
180
+ timestamp: resolveTimestampMs(message.timestamp),
181
+ body: text,
182
+ chatType: isDirectMessage ? "direct" : "channel",
183
+ senderLabel,
184
+ previousTimestamp,
185
+ envelope: envelopeOptions
186
+ });
187
+ const shouldIncludeChannelHistory = !isDirectMessage && (isRoomEvent || !(isGuildMessage && channelConfig?.autoThread && !threadChannel));
188
+ if (shouldIncludeChannelHistory) combinedBody = channelHistory.buildPendingContext({
189
+ historyKey: messageChannelId,
190
+ limit: historyLimit,
191
+ currentMessage: combinedBody,
192
+ formatEntry: (entry) => formatInboundEnvelope({
193
+ channel: "Discord",
194
+ from: fromLabel,
195
+ timestamp: entry.timestamp,
196
+ body: `${entry.body} [id:${entry.messageId ?? "unknown"} channel:${messageChannelId}]`,
197
+ chatType: "channel",
198
+ senderLabel: entry.sender,
199
+ envelope: envelopeOptions
200
+ })
201
+ });
202
+ const replyContext = resolveReplyContext(message, resolveDiscordMessageText);
203
+ const replyVisibility = replyContext ? evaluateSupplementalContextVisibility({
204
+ mode: contextVisibilityMode,
205
+ kind: "quote",
206
+ senderAllowed: isSupplementalContextSenderAllowed({
207
+ id: replyContext.senderId,
208
+ name: replyContext.senderName,
209
+ tag: replyContext.senderTag,
210
+ memberRoleIds: replyContext.memberRoleIds
211
+ })
212
+ }) : null;
213
+ const filteredReplyContext = replyContext && replyVisibility?.include ? replyContext : null;
214
+ if (replyContext && !filteredReplyContext && isGuildMessage) logVerbose(`discord: drop reply context (mode=${contextVisibilityMode})`);
215
+ const mediaListForContext = [...mediaList];
216
+ if (filteredReplyContext) {
217
+ const referencedReplyMediaList = await resolveReferencedReplyMediaList(message, mediaMaxBytes, {
218
+ fetchImpl: discordRestFetch,
219
+ ssrfPolicy: cfg.browser?.ssrfPolicy,
220
+ readIdleTimeoutMs: DISCORD_ATTACHMENT_IDLE_TIMEOUT_MS,
221
+ totalTimeoutMs: DISCORD_ATTACHMENT_TOTAL_TIMEOUT_MS,
222
+ abortSignal
223
+ });
224
+ if (!isContextAborted(abortSignal)) mediaListForContext.push(...referencedReplyMediaList);
225
+ }
226
+ if (forumContextLine) combinedBody = `${combinedBody}\n${forumContextLine}`;
227
+ let threadStarterBody;
228
+ let threadLabel;
229
+ let parentSessionKey;
230
+ let modelParentSessionKey;
231
+ if (threadChannel) {
232
+ if (channelConfig?.includeThreadStarter !== false) {
233
+ const starter = await resolveDiscordThreadStarter({
234
+ channel: threadChannel,
235
+ client,
236
+ parentId: threadParentId,
237
+ parentType: threadParentType,
238
+ resolveTimestampMs
239
+ });
240
+ if (starter?.text) if (evaluateSupplementalContextVisibility({
241
+ mode: contextVisibilityMode,
242
+ kind: "thread",
243
+ senderAllowed: isSupplementalContextSenderAllowed({
244
+ id: starter.authorId,
245
+ name: starter.authorName ?? starter.author,
246
+ tag: starter.authorTag,
247
+ memberRoleIds: starter.memberRoleIds
248
+ })
249
+ }).include) threadStarterBody = starter.text;
250
+ else logVerbose(`discord: drop thread starter context (mode=${contextVisibilityMode})`);
251
+ }
252
+ const parentName = threadParentName ?? "parent";
253
+ threadLabel = threadName ? `Discord thread #${normalizeDiscordSlug(parentName)} › ${threadName}` : `Discord thread #${normalizeDiscordSlug(parentName)}`;
254
+ if (threadParentId) {
255
+ parentSessionKey = buildAgentSessionKey({
256
+ agentId: route.agentId,
257
+ channel: route.channel,
258
+ peer: {
259
+ kind: "channel",
260
+ id: threadParentId
261
+ }
262
+ });
263
+ modelParentSessionKey = parentSessionKey;
264
+ }
265
+ if (!threadParentInheritanceEnabled) parentSessionKey = void 0;
266
+ }
267
+ const preflightAudioIndex = preflightAudioTranscript === void 0 ? -1 : mediaListForContext.findIndex((media) => media.contentType?.startsWith("audio/"));
268
+ const threadKeys = resolveThreadSessionKeys({
269
+ baseSessionKey,
270
+ threadId: threadChannel ? messageChannelId : void 0,
271
+ parentSessionKey,
272
+ useSuffix: false
273
+ });
274
+ const replyPlan = await resolveDiscordAutoThreadReplyPlan({
275
+ client,
276
+ message,
277
+ messageChannelId,
278
+ isGuildMessage,
279
+ channelConfig: isRoomEvent ? null : channelConfig,
280
+ threadChannel,
281
+ channelType: channelInfo?.type,
282
+ channelName: channelInfo?.name,
283
+ channelDescription: channelInfo?.topic,
284
+ baseText: baseText ?? "",
285
+ combinedBody,
286
+ replyToMode,
287
+ agentId: route.agentId,
288
+ channel: route.channel,
289
+ cfg,
290
+ threadParentInheritanceEnabled
291
+ });
292
+ const deliverTarget = replyPlan.deliverTarget;
293
+ const replyTarget = replyPlan.replyTarget;
294
+ const replyReference = replyPlan.replyReference;
295
+ const autoThreadContext = replyPlan.autoThreadContext;
296
+ const effectiveFrom = isDirectMessage ? `discord:${author.id}` : autoThreadContext?.From ?? `discord:channel:${messageChannelId}`;
297
+ const dmConversationTarget = isDirectMessage ? resolveDiscordConversationIdentity({
298
+ isDirectMessage,
299
+ userId: author.id
300
+ }) : void 0;
301
+ const effectiveTo = autoThreadContext?.To ?? dmConversationTarget ?? replyTarget;
302
+ if (!effectiveTo) {
303
+ runtime.error?.(danger("discord: missing reply target"));
304
+ return null;
305
+ }
306
+ const lastRouteTo = dmConversationTarget ?? effectiveTo;
307
+ const inboundHistory = shouldIncludeChannelHistory ? channelHistory.buildInboundHistory({
308
+ historyKey: messageChannelId,
309
+ limit: historyLimit
310
+ }) : void 0;
311
+ const originatingTo = autoThreadContext?.OriginatingTo ?? dmConversationTarget ?? replyTarget;
312
+ const effectiveSessionKey = boundSessionKey ?? autoThreadContext?.SessionKey ?? threadKeys.sessionKey;
313
+ const effectivePreviousTimestamp = effectiveSessionKey === route.sessionKey ? previousTimestamp : readSessionUpdatedAt({
314
+ storePath,
315
+ sessionKey: effectiveSessionKey
316
+ });
317
+ const ctxPayload = buildChannelInboundEventContext({
318
+ channel: "discord",
319
+ provider: "discord",
320
+ surface: "discord",
321
+ accountId: route.accountId,
322
+ messageId: canonicalMessageId ?? message.id,
323
+ messageIdFull: canonicalMessageId && canonicalMessageId !== message.id ? message.id : void 0,
324
+ timestamp: resolveTimestampMs(message.timestamp),
325
+ from: effectiveFrom,
326
+ sender: {
327
+ id: sender.id,
328
+ name: senderName,
329
+ username: senderUsername,
330
+ tag: sender.tag,
331
+ roles: memberRoleIds,
332
+ displayLabel: senderLabel
333
+ },
334
+ conversation: {
335
+ kind: isDirectMessage ? "direct" : "channel",
336
+ id: messageChannelId,
337
+ label: fromLabel,
338
+ spaceId: isGuildMessage ? (guildInfo?.id ?? guildSlug) || void 0 : void 0,
339
+ threadId: threadChannel?.id ?? autoThreadContext?.createdThreadId ?? void 0,
340
+ routePeer: {
341
+ kind: isDirectMessage ? "direct" : "channel",
342
+ id: isDirectMessage ? author.id : messageChannelId
343
+ }
344
+ },
345
+ route: {
346
+ agentId: route.agentId,
347
+ accountId: route.accountId,
348
+ routeSessionKey: route.sessionKey,
349
+ dispatchSessionKey: effectiveSessionKey,
350
+ parentSessionKey: autoThreadContext?.ParentSessionKey ?? threadKeys.parentSessionKey,
351
+ modelParentSessionKey: autoThreadContext?.ModelParentSessionKey ?? modelParentSessionKey ?? void 0
352
+ },
353
+ reply: {
354
+ to: effectiveTo,
355
+ originatingTo
356
+ },
357
+ message: {
358
+ inboundEventKind: ctx.inboundEventKind,
359
+ body: combinedBody,
360
+ rawBody: preflightAudioTranscript ?? baseText,
361
+ bodyForAgent: preflightAudioTranscript ?? baseText ?? text,
362
+ commandBody: preflightAudioTranscript ?? baseText,
363
+ envelopeFrom: fromLabel,
364
+ inboundHistory
365
+ },
366
+ access: {
367
+ mentions: {
368
+ canDetectMention: ctx.canDetectMention,
369
+ wasMentioned: ctx.effectiveWasMentioned,
370
+ hasAnyMention: ctx.hasAnyMention,
371
+ requireMention: ctx.shouldRequireMention,
372
+ effectiveWasMentioned: ctx.effectiveWasMentioned
373
+ },
374
+ commands: {
375
+ authorized: commandAuthorized,
376
+ allowTextCommands: ctx.allowTextCommands,
377
+ useAccessGroups: false,
378
+ authorizers: []
379
+ }
380
+ },
381
+ commandTurn: {
382
+ kind: "text-slash",
383
+ source: "text",
384
+ authorized: commandAuthorized,
385
+ body: preflightAudioTranscript ?? baseText
386
+ },
387
+ media: toInboundMediaFacts(mediaListForContext, { transcribed: (_media, index) => index === preflightAudioIndex }),
388
+ supplemental: {
389
+ quote: filteredReplyContext ? {
390
+ id: filteredReplyContext.id,
391
+ body: filteredReplyContext.body,
392
+ sender: filteredReplyContext.sender
393
+ } : void 0,
394
+ thread: {
395
+ starterBody: !effectivePreviousTimestamp ? threadStarterBody : void 0,
396
+ label: threadLabel
397
+ },
398
+ groupSystemPrompt: isGuildMessage ? groupSystemPrompt : void 0
399
+ },
400
+ extra: {
401
+ ...preflightAudioTranscript !== void 0 ? { Transcript: preflightAudioTranscript } : {},
402
+ GroupSubject: groupSubject,
403
+ GroupChannel: groupChannel,
404
+ UntrustedStructuredContext: untrustedContext,
405
+ OwnerAllowFrom: ownerAllowFrom
406
+ }
407
+ });
408
+ const persistedSessionKey = ctxPayload.SessionKey ?? route.sessionKey;
409
+ if (isRoomEvent && shouldIncludeChannelHistory) await channelHistory.recordWithMedia({
410
+ historyKey: messageChannelId,
411
+ limit: historyLimit,
412
+ entry: {
413
+ sender: senderName,
414
+ body: text,
415
+ timestamp: resolveTimestampMs(message.timestamp),
416
+ messageId: message.id
417
+ },
418
+ media: toHistoryMediaEntries(mediaList, { messageId: message.id }),
419
+ messageId: message.id
420
+ });
421
+ if (shouldLogVerbose()) {
422
+ const preview = truncateUtf16Safe(combinedBody, 200).replace(/\n/g, "\\n");
423
+ logVerbose(`discord inbound: channel=${messageChannelId} deliver=${deliverTarget} from=${ctxPayload.From} preview="${preview}"`);
424
+ }
425
+ return {
426
+ ctxPayload,
427
+ persistedSessionKey,
428
+ turn: {
429
+ storePath,
430
+ record: {
431
+ updateLastRoute: {
432
+ sessionKey: persistedSessionKey,
433
+ channel: "discord",
434
+ to: lastRouteTo,
435
+ accountId: route.accountId,
436
+ mainDmOwnerPin: isDirectMessage && persistedSessionKey === route.mainSessionKey && pinnedMainDmOwner ? {
437
+ ownerRecipient: pinnedMainDmOwner,
438
+ senderRecipient: author.id,
439
+ onSkip: ({ ownerRecipient, senderRecipient }) => {
440
+ logVerbose(`discord: skip main-session last route for ${senderRecipient} (pinned owner ${ownerRecipient})`);
441
+ }
442
+ } : void 0
443
+ },
444
+ onRecordError: (err) => {
445
+ logVerbose(`discord: failed updating session meta: ${String(err)}`);
446
+ }
447
+ }
448
+ },
449
+ replyPlan,
450
+ deliverTarget,
451
+ replyTarget,
452
+ replyReference
453
+ };
454
+ }
455
+ //#endregion
456
+ //#region extensions/discord/src/draft-chunking.ts
457
+ const DEFAULT_DISCORD_DRAFT_STREAM_MIN = 200;
458
+ const DEFAULT_DISCORD_DRAFT_STREAM_MAX = 800;
459
+ function resolveDiscordDraftStreamingChunking(cfg, accountId) {
460
+ const textLimit = resolveTextChunkLimit(cfg, "discord", accountId, { fallbackLimit: DISCORD_TEXT_CHUNK_LIMIT });
461
+ const normalizedAccountId = normalizeAccountId(accountId);
462
+ const draftCfg = resolveChannelStreamingPreviewChunk(resolveAccountEntry(cfg?.channels?.discord?.accounts, normalizedAccountId)) ?? resolveChannelStreamingPreviewChunk(cfg?.channels?.discord);
463
+ const maxRequested = Math.max(1, Math.floor(draftCfg?.maxChars ?? DEFAULT_DISCORD_DRAFT_STREAM_MAX));
464
+ const maxChars = Math.max(1, Math.min(maxRequested, textLimit));
465
+ const minRequested = Math.max(1, Math.floor(draftCfg?.minChars ?? DEFAULT_DISCORD_DRAFT_STREAM_MIN));
466
+ return {
467
+ minChars: Math.min(minRequested, maxChars),
468
+ maxChars,
469
+ breakPreference: draftCfg?.breakPreference === "newline" || draftCfg?.breakPreference === "sentence" ? draftCfg.breakPreference : "paragraph"
470
+ };
471
+ }
472
+ //#endregion
473
+ //#region extensions/discord/src/draft-stream.ts
474
+ /** Discord messages cap at 2000 characters. */
475
+ const DISCORD_STREAM_MAX_CHARS = 2e3;
476
+ const DEFAULT_THROTTLE_MS = 1200;
477
+ const DISCORD_PREVIEW_ALLOWED_MENTIONS = { parse: [] };
478
+ function createDiscordDraftStream(params) {
479
+ const maxChars = Math.min(params.maxChars ?? DISCORD_STREAM_MAX_CHARS, DISCORD_STREAM_MAX_CHARS);
480
+ const throttleMs = Math.max(250, params.throttleMs ?? DEFAULT_THROTTLE_MS);
481
+ const minInitialChars = params.minInitialChars;
482
+ const channelId = params.channelId;
483
+ const rest = params.rest;
484
+ const flags = resolveDiscordMessageFlags({ suppressEmbeds: params.suppressEmbeds });
485
+ const resolveReplyToMessageId = () => typeof params.replyToMessageId === "function" ? params.replyToMessageId() : params.replyToMessageId;
486
+ const streamState = {
487
+ stopped: false,
488
+ final: false
489
+ };
490
+ let streamMessageId;
491
+ let lastSentText = "";
492
+ const sendOrEditStreamMessage = async (text) => {
493
+ if (streamState.stopped && !streamState.final) return false;
494
+ const trimmed = text.trimEnd();
495
+ if (!trimmed) return false;
496
+ if (trimmed.length > maxChars) {
497
+ streamState.stopped = true;
498
+ params.warn?.(`discord stream preview stopped (text length ${trimmed.length} > ${maxChars})`);
499
+ return false;
500
+ }
501
+ if (trimmed === lastSentText) return true;
502
+ if (streamMessageId === void 0 && minInitialChars != null && !streamState.final) {
503
+ if (trimmed.length < minInitialChars) return false;
504
+ }
505
+ lastSentText = trimmed;
506
+ try {
507
+ if (streamMessageId !== void 0) {
508
+ await editChannelMessage(rest, channelId, streamMessageId, { body: {
509
+ content: trimmed,
510
+ allowed_mentions: DISCORD_PREVIEW_ALLOWED_MENTIONS,
511
+ ...flags ? { flags } : {}
512
+ } });
513
+ return true;
514
+ }
515
+ const replyToMessageId = resolveReplyToMessageId()?.trim();
516
+ const messageReference = replyToMessageId ? {
517
+ message_id: replyToMessageId,
518
+ fail_if_not_exists: false
519
+ } : void 0;
520
+ const sentMessageId = (await createChannelMessage(rest, channelId, { body: {
521
+ content: trimmed,
522
+ allowed_mentions: DISCORD_PREVIEW_ALLOWED_MENTIONS,
523
+ ...flags ? { flags } : {},
524
+ ...messageReference ? { message_reference: messageReference } : {}
525
+ } }))?.id;
526
+ if (typeof sentMessageId !== "string" || !sentMessageId) {
527
+ streamState.stopped = true;
528
+ params.warn?.("discord stream preview stopped (missing message id from send)");
529
+ return false;
530
+ }
531
+ streamMessageId = sentMessageId;
532
+ return true;
533
+ } catch (err) {
534
+ streamState.stopped = true;
535
+ params.warn?.(`discord stream preview failed: ${formatErrorMessage(err)}`);
536
+ return false;
537
+ }
538
+ };
539
+ const readMessageId = () => streamMessageId;
540
+ const clearMessageId = () => {
541
+ streamMessageId = void 0;
542
+ };
543
+ const isValidStreamMessageId = (value) => typeof value === "string";
544
+ const deleteStreamMessage = async (messageId) => {
545
+ await deleteChannelMessage(rest, channelId, messageId);
546
+ };
547
+ const { loop, update, stop, clear, discardPending, seal } = createFinalizableDraftLifecycle({
548
+ throttleMs,
549
+ state: streamState,
550
+ sendOrEditStreamMessage,
551
+ readMessageId,
552
+ clearMessageId,
553
+ isValidMessageId: isValidStreamMessageId,
554
+ deleteMessage: deleteStreamMessage,
555
+ warn: params.warn,
556
+ warnPrefix: "discord stream preview cleanup failed"
557
+ });
558
+ const forceNewMessage = () => {
559
+ streamMessageId = void 0;
560
+ lastSentText = "";
561
+ loop.resetPending();
562
+ };
563
+ params.log?.(`discord stream preview ready (maxChars=${maxChars}, throttleMs=${throttleMs})`);
564
+ return {
565
+ update,
566
+ flush: loop.flush,
567
+ messageId: () => streamMessageId,
568
+ clear,
569
+ discardPending,
570
+ seal,
571
+ stop,
572
+ forceNewMessage
573
+ };
574
+ }
575
+ //#endregion
576
+ //#region extensions/discord/src/monitor/message-handler.draft-preview.ts
577
+ function createDiscordDraftPreviewController(params) {
578
+ const discordStreamMode = resolveDiscordPreviewStreamMode(params.discordConfig);
579
+ const draftMaxChars = Math.min(params.textLimit, 2e3);
580
+ const accountBlockStreamingEnabled = resolveChannelStreamingBlockEnabled(params.discordConfig) ?? params.cfg.agents?.defaults?.blockStreamingDefault === "on";
581
+ const canStreamProgressDraftForToolOnlySource = params.sourceRepliesAreToolOnly && discordStreamMode === "progress";
582
+ const draftStream = (!params.sourceRepliesAreToolOnly || canStreamProgressDraftForToolOnlySource) && discordStreamMode !== "off" && !accountBlockStreamingEnabled ? createDiscordDraftStream({
583
+ rest: params.deliveryRest,
584
+ channelId: params.deliverChannelId,
585
+ maxChars: draftMaxChars,
586
+ replyToMessageId: () => params.replyReference.peek(),
587
+ minInitialChars: discordStreamMode === "progress" ? 0 : 30,
588
+ suppressEmbeds: params.discordConfig?.suppressEmbeds ?? true,
589
+ throttleMs: 1200,
590
+ log: params.log,
591
+ warn: params.log
592
+ }) : void 0;
593
+ const draftChunking = draftStream && discordStreamMode === "block" ? resolveDiscordDraftStreamingChunking(params.cfg, params.accountId) : void 0;
594
+ const shouldSplitPreviewMessages = discordStreamMode === "block";
595
+ const draftChunker = draftChunking ? new EmbeddedBlockChunker(draftChunking) : void 0;
596
+ let lastPartialText = "";
597
+ let draftText = "";
598
+ let hasStreamedMessage = false;
599
+ let finalizedViaPreviewMessage = false;
600
+ let finalReplyStarted = false;
601
+ let finalReplyDelivered = false;
602
+ const previewToolProgressEnabled = Boolean(draftStream) && resolveChannelStreamingPreviewToolProgress(params.discordConfig);
603
+ const suppressDefaultToolProgressMessages = Boolean(draftStream) && resolveChannelStreamingSuppressDefaultToolProgressMessages(params.discordConfig, {
604
+ draftStreamActive: true,
605
+ previewToolProgressEnabled
606
+ });
607
+ let previewToolProgressSuppressed = false;
608
+ let previewToolProgressLines = [];
609
+ let reasoningProgressRawText = "";
610
+ let lastReasoningProgressLine;
611
+ const progressSeed = `${params.accountId}:${params.deliverChannelId}`;
612
+ const renderProgressDraft = async (options) => {
613
+ if (!draftStream || discordStreamMode !== "progress") return;
614
+ const previewText = formatChannelProgressDraftText({
615
+ entry: params.discordConfig,
616
+ lines: previewToolProgressLines,
617
+ seed: progressSeed
618
+ });
619
+ if (!previewText || previewText === lastPartialText) return;
620
+ lastPartialText = previewText;
621
+ draftText = previewText;
622
+ hasStreamedMessage = true;
623
+ draftChunker?.reset();
624
+ draftStream.update(previewText);
625
+ if (options?.flush) await draftStream.flush();
626
+ };
627
+ const progressDraftGate = createChannelProgressDraftGate({ onStart: () => renderProgressDraft({ flush: true }) });
628
+ const resetProgressState = () => {
629
+ lastPartialText = "";
630
+ draftText = "";
631
+ draftChunker?.reset();
632
+ previewToolProgressSuppressed = false;
633
+ previewToolProgressLines = [];
634
+ reasoningProgressRawText = "";
635
+ lastReasoningProgressLine = void 0;
636
+ };
637
+ const forceNewMessageIfNeeded = () => {
638
+ if (shouldSplitPreviewMessages && hasStreamedMessage) {
639
+ params.log("discord: calling forceNewMessage() for draft stream");
640
+ draftStream?.forceNewMessage();
641
+ }
642
+ resetProgressState();
643
+ };
644
+ return {
645
+ draftStream,
646
+ previewToolProgressEnabled,
647
+ suppressDefaultToolProgressMessages,
648
+ get isProgressMode() {
649
+ return discordStreamMode === "progress";
650
+ },
651
+ get hasProgressDraftStarted() {
652
+ return progressDraftGate.hasStarted;
653
+ },
654
+ get finalizedViaPreviewMessage() {
655
+ return finalizedViaPreviewMessage;
656
+ },
657
+ markFinalReplyStarted() {
658
+ finalReplyStarted = true;
659
+ },
660
+ markFinalReplyDelivered() {
661
+ finalReplyDelivered = true;
662
+ },
663
+ markPreviewFinalized() {
664
+ finalizedViaPreviewMessage = true;
665
+ },
666
+ disableBlockStreamingForDraft: draftStream ? true : void 0,
667
+ async startProgressDraft() {
668
+ if (!draftStream || discordStreamMode !== "progress") return;
669
+ await progressDraftGate.startNow();
670
+ },
671
+ async pushToolProgress(line, options) {
672
+ if (!draftStream) return;
673
+ if (finalReplyStarted || finalReplyDelivered) return;
674
+ if (options?.toolName !== void 0 && !isChannelProgressDraftWorkToolName(options.toolName)) return;
675
+ if (isEmptyDiscordProgressLine(line)) return;
676
+ const normalized = normalizeChannelProgressDraftLineIdentity(line);
677
+ if (!normalized) return;
678
+ const progressLine = typeof line === "object" && line !== void 0 ? line : normalized;
679
+ if (discordStreamMode !== "progress") {
680
+ if (!previewToolProgressEnabled || previewToolProgressSuppressed) return;
681
+ const nextLines = mergeChannelProgressDraftLine(previewToolProgressLines, progressLine, { maxLines: resolveChannelProgressDraftMaxLines(params.discordConfig) });
682
+ if (nextLines === previewToolProgressLines) return;
683
+ previewToolProgressLines = nextLines;
684
+ const previewText = formatChannelProgressDraftText({
685
+ entry: params.discordConfig,
686
+ lines: previewToolProgressLines,
687
+ seed: progressSeed
688
+ });
689
+ lastPartialText = previewText;
690
+ draftText = previewText;
691
+ hasStreamedMessage = true;
692
+ draftChunker?.reset();
693
+ draftStream.update(previewText);
694
+ return;
695
+ }
696
+ if (previewToolProgressEnabled && !previewToolProgressSuppressed && normalized) previewToolProgressLines = mergeChannelProgressDraftLine(previewToolProgressLines, progressLine, { maxLines: resolveChannelProgressDraftMaxLines(params.discordConfig) });
697
+ const alreadyStarted = progressDraftGate.hasStarted;
698
+ if (shouldStartDiscordProgressDraftNow(line)) await progressDraftGate.startNow();
699
+ else await progressDraftGate.noteWork();
700
+ if (alreadyStarted && progressDraftGate.hasStarted) await renderProgressDraft();
701
+ },
702
+ async pushReasoningProgress(text) {
703
+ if (!draftStream || discordStreamMode !== "progress" || !text) return;
704
+ if (finalReplyDelivered) return;
705
+ reasoningProgressRawText = mergeReasoningProgressText(reasoningProgressRawText, text);
706
+ const normalized = normalizeReasoningProgressLine(reasoningProgressRawText);
707
+ if (!normalized) return;
708
+ if (previewToolProgressEnabled && !previewToolProgressSuppressed) {
709
+ const priorIndex = lastReasoningProgressLine === void 0 ? -1 : previewToolProgressLines.lastIndexOf(lastReasoningProgressLine);
710
+ if (priorIndex >= 0) {
711
+ previewToolProgressLines = [...previewToolProgressLines];
712
+ previewToolProgressLines[priorIndex] = normalized;
713
+ } else previewToolProgressLines = [...previewToolProgressLines, normalized].slice(-resolveChannelProgressDraftMaxLines(params.discordConfig));
714
+ lastReasoningProgressLine = normalized;
715
+ }
716
+ const alreadyStarted = progressDraftGate.hasStarted;
717
+ await progressDraftGate.noteWork();
718
+ if (alreadyStarted && progressDraftGate.hasStarted) await renderProgressDraft();
719
+ },
720
+ resolvePreviewFinalText(text) {
721
+ if (typeof text !== "string") return;
722
+ const formatted = convertMarkdownTables(stripInlineDirectiveTagsForDelivery(text).text, params.tableMode);
723
+ const chunks = chunkDiscordTextWithMode(formatted, {
724
+ maxChars: draftMaxChars,
725
+ maxLines: params.maxLinesPerMessage,
726
+ chunkMode: params.chunkMode
727
+ });
728
+ if (!chunks.length && formatted) chunks.push(formatted);
729
+ if (chunks.length !== 1) return;
730
+ const trimmed = chunks[0].trim();
731
+ if (!trimmed) return;
732
+ const currentPreviewText = discordStreamMode === "block" ? draftText : lastPartialText;
733
+ if (currentPreviewText && currentPreviewText.startsWith(trimmed) && trimmed.length < currentPreviewText.length) return;
734
+ return trimmed;
735
+ },
736
+ updateFromPartial(text) {
737
+ if (!draftStream || !text) return;
738
+ const cleaned = stripInlineDirectiveTagsForDelivery(stripReasoningTagsFromText(text, {
739
+ mode: "strict",
740
+ trim: "both"
741
+ })).text;
742
+ if (!cleaned || cleaned.startsWith("Reasoning:\n")) return;
743
+ if (cleaned === lastPartialText) return;
744
+ if (discordStreamMode === "progress") return;
745
+ previewToolProgressSuppressed = true;
746
+ previewToolProgressLines = [];
747
+ hasStreamedMessage = true;
748
+ if (discordStreamMode === "partial") {
749
+ if (lastPartialText && lastPartialText.startsWith(cleaned) && cleaned.length < lastPartialText.length) return;
750
+ lastPartialText = cleaned;
751
+ draftStream.update(cleaned);
752
+ return;
753
+ }
754
+ let delta = cleaned;
755
+ if (cleaned.startsWith(lastPartialText)) delta = cleaned.slice(lastPartialText.length);
756
+ else {
757
+ draftChunker?.reset();
758
+ draftText = "";
759
+ }
760
+ lastPartialText = cleaned;
761
+ if (!delta) return;
762
+ if (!draftChunker) {
763
+ draftText = cleaned;
764
+ draftStream.update(draftText);
765
+ return;
766
+ }
767
+ draftChunker.append(delta);
768
+ draftChunker.drain({
769
+ force: false,
770
+ emit: (chunk) => {
771
+ draftText += chunk;
772
+ draftStream.update(draftText);
773
+ }
774
+ });
775
+ },
776
+ handleAssistantMessageBoundary() {
777
+ if (discordStreamMode === "progress") return;
778
+ forceNewMessageIfNeeded();
779
+ },
780
+ async flush() {
781
+ if (!draftStream) return;
782
+ if (draftChunker?.hasBuffered()) {
783
+ draftChunker.drain({
784
+ force: true,
785
+ emit: (chunk) => {
786
+ draftText += chunk;
787
+ }
788
+ });
789
+ draftChunker.reset();
790
+ if (draftText) draftStream.update(draftText);
791
+ }
792
+ await draftStream.flush();
793
+ },
794
+ async cleanup() {
795
+ try {
796
+ progressDraftGate.cancel();
797
+ if (!finalReplyDelivered) await draftStream?.discardPending();
798
+ if (!finalReplyDelivered && !finalizedViaPreviewMessage && draftStream?.messageId()) await draftStream.clear();
799
+ } catch (err) {
800
+ params.log(`discord: draft cleanup failed: ${String(err)}`);
801
+ }
802
+ }
803
+ };
804
+ }
805
+ function normalizeReasoningProgressLine(text) {
806
+ return text.replace(/^\s*(?:>\s*)?(?:Reasoning:|Thinking\.{0,3})\s*/i, "").replace(/\s+/g, " ").trim();
807
+ }
808
+ function mergeReasoningProgressText(current, incoming) {
809
+ if (!current) return incoming;
810
+ const normalizedCurrent = normalizeReasoningProgressLine(current);
811
+ const normalizedIncoming = normalizeReasoningProgressLine(incoming);
812
+ if (!normalizedIncoming || normalizedIncoming === normalizedCurrent) return current;
813
+ if (isReasoningSnapshotText(incoming) || normalizedIncoming.startsWith(normalizedCurrent)) return incoming;
814
+ return `${current}${incoming}`;
815
+ }
816
+ function isReasoningSnapshotText(text) {
817
+ return /^\s*(?:>\s*)?(?:Reasoning:|Thinking\.{0,3})\s*/i.test(text);
818
+ }
819
+ function isEmptyDiscordProgressLine(line) {
820
+ if (!line || typeof line === "string") return false;
821
+ return line.toolName === "apply_patch" && !line.detail && !line.status;
822
+ }
823
+ function shouldStartDiscordProgressDraftNow(line) {
824
+ return typeof line === "object" && line?.kind === "patch" && Boolean(line.detail);
825
+ }
826
+ //#endregion
827
+ //#region extensions/discord/src/monitor/message-handler.process.ts
828
+ function sleep(ms) {
829
+ return new Promise((resolve) => {
830
+ setTimeout(resolve, ms);
831
+ });
832
+ }
833
+ const DISCORD_TYPING_MAX_DURATION_MS = 20 * 6e4;
834
+ let replyRuntimePromise;
835
+ async function loadReplyRuntime() {
836
+ replyRuntimePromise ??= import("./plugin-sdk/reply-runtime.js");
837
+ return await replyRuntimePromise;
838
+ }
839
+ function isProcessAborted(abortSignal) {
840
+ return Boolean(abortSignal?.aborted);
841
+ }
842
+ function formatDiscordReplyDeliveryFailure(params) {
843
+ const context = [`target=${params.target}`, params.sessionKey ? `session=${params.sessionKey}` : void 0].filter(Boolean).join(" ");
844
+ return `discord ${params.kind} reply failed (${context}): ${String(params.err)}`;
845
+ }
846
+ function readToolStringArg(args, key) {
847
+ const value = args[key];
848
+ return typeof value === "string" && value.trim() ? value.trim() : void 0;
849
+ }
850
+ function readToolBooleanArg(args, key) {
851
+ return args[key] === true;
852
+ }
853
+ async function processDiscordMessage(ctx, observer) {
854
+ const dispatchStartedAt = Date.now();
855
+ const { cfg, discordConfig, accountId, token, runtime, guildHistories, historyLimit, mediaMaxBytes, textLimit, replyToMode, ackReactionScope, message, messageChannelId, isGuildMessage, isDirectMessage, isGroupDm, messageText, shouldRequireMention, canDetectMention, effectiveWasMentioned, shouldBypassMention, channelConfig, threadBindings, route, discordRestFetch, abortSignal, botLoopProtection } = ctx;
856
+ if (isProcessAborted(abortSignal)) return;
857
+ if (botLoopProtection) {
858
+ const botLoopResult = recordChannelBotPairLoopAndCheckSuppression(botLoopProtection);
859
+ if (botLoopResult.suppressed) {
860
+ logVerbose(`discord: bot-to-bot loop detected before dispatch setup, suppressing for ${Math.max(0, Math.ceil((botLoopResult.cooldownUntilMs - Date.now()) / 1e3))}s`);
861
+ return;
862
+ }
863
+ }
864
+ const mediaResolveOptions = {
865
+ fetchImpl: discordRestFetch,
866
+ ssrfPolicy: cfg.browser?.ssrfPolicy,
867
+ readIdleTimeoutMs: DISCORD_ATTACHMENT_IDLE_TIMEOUT_MS,
868
+ totalTimeoutMs: DISCORD_ATTACHMENT_TOTAL_TIMEOUT_MS,
869
+ abortSignal
870
+ };
871
+ const mediaList = await resolveMediaList(message, mediaMaxBytes, mediaResolveOptions);
872
+ if (isProcessAborted(abortSignal)) return;
873
+ const forwardedMediaList = await resolveForwardedMediaList(message, mediaMaxBytes, mediaResolveOptions);
874
+ if (isProcessAborted(abortSignal)) return;
875
+ mediaList.push(...forwardedMediaList);
876
+ const text = messageText;
877
+ if (!text) {
878
+ logVerbose("discord: drop message " + message.id + " (empty content)");
879
+ return;
880
+ }
881
+ const boundThreadId = ctx.threadBinding?.conversation?.conversationId?.trim();
882
+ if (boundThreadId && typeof threadBindings.touchThread === "function") threadBindings.touchThread({ threadId: boundThreadId });
883
+ const { createReplyDispatcherWithTyping, dispatchInboundMessage, settleReplyDispatcher } = await loadReplyRuntime();
884
+ const sourceReplyDeliveryMode = resolveChannelSourceReplyDeliveryMode({
885
+ cfg,
886
+ ctx: {
887
+ ChatType: isDirectMessage ? "direct" : isGroupDm ? "group" : isGuildMessage ? "channel" : void 0,
888
+ InboundEventKind: ctx.inboundEventKind
889
+ }
890
+ });
891
+ const sourceRepliesAreToolOnly = sourceReplyDeliveryMode === "message_tool_only";
892
+ const ackReaction = resolveAckReaction(cfg, route.agentId, {
893
+ channel: "discord",
894
+ accountId
895
+ });
896
+ const removeAckAfterReply = cfg.messages?.removeAckAfterReply ?? false;
897
+ const mediaLocalRoots = getAgentScopedMediaLocalRoots(cfg, route.agentId);
898
+ const isRoomEvent = ctx.inboundEventKind === "room_event";
899
+ const shouldAckReaction$1 = () => Boolean(!isRoomEvent && ackReaction && shouldAckReaction({
900
+ scope: ackReactionScope,
901
+ isDirect: isDirectMessage,
902
+ isGroup: isGuildMessage || isGroupDm,
903
+ isMentionableGroup: isGuildMessage,
904
+ requireMention: shouldRequireMention,
905
+ canDetectMention,
906
+ effectiveWasMentioned,
907
+ shouldBypassMention
908
+ }));
909
+ const shouldSendAckReaction = shouldAckReaction$1();
910
+ const statusReactionsExplicitlyEnabled = cfg.messages?.statusReactions?.enabled === true;
911
+ const statusReactionsEnabled = !isRoomEvent && shouldSendAckReaction && cfg.messages?.statusReactions?.enabled !== false && (!sourceRepliesAreToolOnly || statusReactionsExplicitlyEnabled);
912
+ const feedbackRest = createDiscordRestClient({
913
+ cfg,
914
+ token,
915
+ accountId
916
+ }).rest;
917
+ const deliveryRest = createDiscordRestClient({
918
+ cfg,
919
+ token,
920
+ accountId
921
+ }).rest;
922
+ const ackReactionContext = createDiscordAckReactionContext({
923
+ rest: feedbackRest,
924
+ cfg,
925
+ accountId
926
+ });
927
+ const discordAdapter = createDiscordAckReactionAdapter({
928
+ channelId: messageChannelId,
929
+ messageId: message.id,
930
+ reactionContext: ackReactionContext
931
+ });
932
+ let statusReactionTarget = `${messageChannelId}/${message.id}`;
933
+ let statusReactionsActive = statusReactionsEnabled;
934
+ let statusReactions = createStatusReactionController({
935
+ enabled: statusReactionsEnabled,
936
+ adapter: discordAdapter,
937
+ initialEmoji: ackReaction,
938
+ emojis: cfg.messages?.statusReactions?.emojis,
939
+ timing: cfg.messages?.statusReactions?.timing,
940
+ onError: (err) => {
941
+ logAckFailure({
942
+ log: logVerbose,
943
+ channel: "discord",
944
+ target: statusReactionTarget,
945
+ error: err
946
+ });
947
+ }
948
+ });
949
+ const resolveTrackedReactionChannelId = async (args) => {
950
+ const target = readToolStringArg(args, "channelId") ?? readToolStringArg(args, "channel_id") ?? readToolStringArg(args, "to");
951
+ if (!target) return messageChannelId;
952
+ try {
953
+ return resolveDiscordChannelId(target);
954
+ } catch {
955
+ return (await resolveDiscordTargetChannelId(target, {
956
+ cfg,
957
+ token,
958
+ accountId
959
+ })).channelId;
960
+ }
961
+ };
962
+ const maybeBindStatusReactionsToToolReaction = async (payload) => {
963
+ if (sourceRepliesAreToolOnly || cfg.messages?.statusReactions?.enabled === false || payload.phase !== "start" || payload.name !== "message" || !payload.args) return;
964
+ const args = payload.args;
965
+ if (readToolStringArg(args, "action")?.toLowerCase() !== "react") return;
966
+ if (!(readToolBooleanArg(args, "trackToolCalls") || readToolBooleanArg(args, "track_tool_calls"))) return;
967
+ const emoji = readToolStringArg(args, "emoji");
968
+ const remove = readToolBooleanArg(args, "remove");
969
+ if (!emoji || remove) return;
970
+ const trackedMessageId = readToolStringArg(args, "messageId") ?? readToolStringArg(args, "message_id") ?? message.id;
971
+ let trackedChannelId;
972
+ try {
973
+ trackedChannelId = await resolveTrackedReactionChannelId(args);
974
+ } catch (err) {
975
+ logAckFailure({
976
+ log: logVerbose,
977
+ channel: "discord",
978
+ target: `${readToolStringArg(args, "to") ?? readToolStringArg(args, "channelId") ?? messageChannelId}/${trackedMessageId}`,
979
+ error: err
980
+ });
981
+ return;
982
+ }
983
+ statusReactionTarget = `${trackedChannelId}/${trackedMessageId}`;
984
+ if (statusReactionsActive) statusReactions.clear();
985
+ statusReactions = createStatusReactionController({
986
+ enabled: true,
987
+ adapter: createDiscordAckReactionAdapter({
988
+ channelId: trackedChannelId,
989
+ messageId: trackedMessageId,
990
+ reactionContext: ackReactionContext
991
+ }),
992
+ initialEmoji: emoji,
993
+ emojis: cfg.messages?.statusReactions?.emojis,
994
+ timing: cfg.messages?.statusReactions?.timing,
995
+ onError: (err) => {
996
+ logAckFailure({
997
+ log: logVerbose,
998
+ channel: "discord",
999
+ target: statusReactionTarget,
1000
+ error: err
1001
+ });
1002
+ }
1003
+ });
1004
+ statusReactionsActive = true;
1005
+ statusReactions.setQueued();
1006
+ };
1007
+ queueInitialDiscordAckReaction({
1008
+ enabled: statusReactionsEnabled,
1009
+ shouldSendAckReaction,
1010
+ ackReaction,
1011
+ statusReactions,
1012
+ reactionAdapter: discordAdapter,
1013
+ target: `${messageChannelId}/${message.id}`
1014
+ });
1015
+ const processContext = await buildDiscordMessageProcessContext({
1016
+ ctx,
1017
+ text,
1018
+ mediaList
1019
+ });
1020
+ if (!processContext) return;
1021
+ const { ctxPayload, persistedSessionKey, turn, replyPlan, deliverTarget, replyTarget, replyReference } = processContext;
1022
+ observer?.onReplyPlanResolved?.({
1023
+ createdThreadId: replyPlan.createdThreadId,
1024
+ sessionKey: persistedSessionKey
1025
+ });
1026
+ const typingChannelId = deliverTarget.startsWith("channel:") ? deliverTarget.slice(8) : messageChannelId;
1027
+ const { onModelSelected, ...replyPipeline } = createChannelReplyPipeline({
1028
+ cfg,
1029
+ agentId: route.agentId,
1030
+ channel: "discord",
1031
+ accountId: route.accountId,
1032
+ typing: {
1033
+ start: () => sendTyping({
1034
+ rest: feedbackRest,
1035
+ channelId: typingChannelId
1036
+ }),
1037
+ onStartError: (err) => {
1038
+ logTypingFailure({
1039
+ log: logVerbose,
1040
+ channel: "discord",
1041
+ target: typingChannelId,
1042
+ error: err
1043
+ });
1044
+ },
1045
+ maxDurationMs: DISCORD_TYPING_MAX_DURATION_MS
1046
+ }
1047
+ });
1048
+ const tableMode = resolveMarkdownTableMode({
1049
+ cfg,
1050
+ channel: "discord",
1051
+ accountId
1052
+ });
1053
+ const maxLinesPerMessage = resolveDiscordMaxLinesPerMessage({
1054
+ cfg,
1055
+ discordConfig,
1056
+ accountId
1057
+ });
1058
+ const chunkMode = resolveChunkMode(cfg, "discord", accountId);
1059
+ const clearGroupHistory = () => {
1060
+ if (isDirectMessage) return;
1061
+ createChannelHistoryWindow({ historyMap: guildHistories }).clear({
1062
+ historyKey: messageChannelId,
1063
+ limit: historyLimit
1064
+ });
1065
+ };
1066
+ const beginDeliveryCorrelation = () => isRoomEvent ? beginDiscordInboundEventDeliveryCorrelation(ctxPayload.SessionKey, {
1067
+ outboundTo: messageChannelId,
1068
+ outboundAccountId: route.accountId,
1069
+ markInboundEventDelivered: clearGroupHistory
1070
+ }, { inboundEventKind: ctxPayload.InboundEventKind }) : () => {};
1071
+ const endDiscordInboundEventDeliveryCorrelation = beginDeliveryCorrelation();
1072
+ const resolveCurrentTurnTranscriptFinalText = async () => {
1073
+ const sessionKey = ctxPayload.SessionKey;
1074
+ if (!sessionKey) return;
1075
+ try {
1076
+ const storePath = resolveStorePath(cfg.session?.store, { agentId: route.agentId });
1077
+ const store = loadSessionStore(storePath, { clone: false });
1078
+ const sessionEntry = resolveSessionStoreEntry({
1079
+ store,
1080
+ sessionKey
1081
+ }).existing;
1082
+ if (!sessionEntry?.sessionId) return;
1083
+ const { sessionFile } = await resolveAndPersistSessionFile({
1084
+ sessionId: sessionEntry.sessionId,
1085
+ sessionKey,
1086
+ sessionStore: store,
1087
+ storePath,
1088
+ sessionEntry,
1089
+ agentId: route.agentId,
1090
+ sessionsDir: path.dirname(storePath)
1091
+ });
1092
+ const latest = await readLatestAssistantTextFromSessionTranscript(sessionFile);
1093
+ if (!latest?.timestamp || latest.timestamp < dispatchStartedAt) return;
1094
+ return latest.text;
1095
+ } catch (err) {
1096
+ logVerbose(`discord transcript final candidate lookup failed: ${String(err)}`);
1097
+ return;
1098
+ }
1099
+ };
1100
+ const deliverChannelId = deliverTarget.startsWith("channel:") ? deliverTarget.slice(8) : messageChannelId;
1101
+ const draftPreview = createDiscordDraftPreviewController({
1102
+ cfg,
1103
+ discordConfig,
1104
+ accountId,
1105
+ sourceRepliesAreToolOnly,
1106
+ textLimit,
1107
+ deliveryRest,
1108
+ deliverChannelId,
1109
+ replyReference,
1110
+ tableMode,
1111
+ maxLinesPerMessage,
1112
+ chunkMode,
1113
+ log: logVerbose
1114
+ });
1115
+ const finalPreviewFlags = discordConfig?.suppressEmbeds ?? true ? MessageFlags.SuppressEmbeds : void 0;
1116
+ let finalReplyStartNotified = false;
1117
+ const notifyFinalReplyStart = () => {
1118
+ if (finalReplyStartNotified) return;
1119
+ finalReplyStartNotified = true;
1120
+ draftPreview.markFinalReplyStarted();
1121
+ observer?.onFinalReplyStart?.();
1122
+ };
1123
+ const { dispatcher, replyOptions, markDispatchIdle, markRunComplete } = createReplyDispatcherWithTyping({
1124
+ ...replyPipeline,
1125
+ humanDelay: resolveHumanDelayConfig(cfg, route.agentId),
1126
+ deliver: async (payload, info) => {
1127
+ if (isProcessAborted(abortSignal)) return;
1128
+ const isFinal = info.kind === "final";
1129
+ if (payload.isReasoning) return;
1130
+ if (isFinal) draftPreview.markFinalReplyStarted();
1131
+ const finalText = isFinal && typeof payload.text === "string" ? await resolveTranscriptBackedChannelFinalText({
1132
+ finalText: payload.text,
1133
+ resolveCandidateText: resolveCurrentTurnTranscriptFinalText
1134
+ }) : payload.text;
1135
+ const effectivePayload = finalText !== payload.text ? {
1136
+ ...payload,
1137
+ text: finalText
1138
+ } : payload;
1139
+ const draftStream = draftPreview.draftStream;
1140
+ if (draftStream && draftPreview.isProgressMode && info.kind === "block") {
1141
+ if (!resolveSendableOutboundReplyParts(effectivePayload).hasMedia && !payload.isError) return;
1142
+ }
1143
+ if (draftStream && isFinal && (!draftPreview.isProgressMode || draftPreview.hasProgressDraftStarted) && !payload.isError) {
1144
+ const hasMedia = resolveSendableOutboundReplyParts(effectivePayload).hasMedia;
1145
+ const ttsSupplement = getReplyPayloadTtsSupplement(effectivePayload);
1146
+ const previewSourceText = finalText ?? ttsSupplement?.spokenText;
1147
+ const previewFinalText = draftPreview.resolvePreviewFinalText(previewSourceText);
1148
+ const previewReplyToId = replyReference.peek();
1149
+ const hasExplicitReplyDirective = Boolean(effectivePayload.replyToTag || effectivePayload.replyToCurrent) || typeof previewSourceText === "string" && /\[\[\s*reply_to(?:_current|\s*:)/i.test(previewSourceText);
1150
+ if ((await deliverWithFinalizableLivePreviewAdapter({
1151
+ kind: info.kind,
1152
+ payload: effectivePayload,
1153
+ adapter: defineFinalizableLivePreviewAdapter({
1154
+ draft: {
1155
+ flush: () => draftPreview.flush(),
1156
+ clear: () => draftStream.clear(),
1157
+ discardPending: () => draftStream.discardPending(),
1158
+ seal: () => draftStream.seal(),
1159
+ id: draftStream.messageId
1160
+ },
1161
+ buildFinalEdit: () => {
1162
+ if (draftPreview.finalizedViaPreviewMessage || hasMedia && !ttsSupplement || typeof previewFinalText !== "string" || hasExplicitReplyDirective || payload.isError) return;
1163
+ return {
1164
+ content: previewFinalText,
1165
+ ...finalPreviewFlags ? { flags: finalPreviewFlags } : {}
1166
+ };
1167
+ },
1168
+ editFinal: async (previewMessageId, edit) => {
1169
+ if (isProcessAborted(abortSignal)) throw new Error("process aborted");
1170
+ notifyFinalReplyStart();
1171
+ await editMessageDiscord(deliverChannelId, previewMessageId, edit, {
1172
+ cfg,
1173
+ accountId,
1174
+ rest: deliveryRest
1175
+ });
1176
+ },
1177
+ onPreviewFinalized: () => {
1178
+ draftPreview.markFinalReplyDelivered();
1179
+ draftPreview.markPreviewFinalized();
1180
+ replyReference.markSent();
1181
+ observer?.onFinalReplyDelivered?.();
1182
+ },
1183
+ buildSupplementalPayload: () => ttsSupplement ? buildTtsSupplementMediaPayload(effectivePayload) : void 0,
1184
+ deliverSupplemental: async (supplementalPayload) => {
1185
+ if (isProcessAborted(abortSignal)) return false;
1186
+ const supplementalReplyToId = previewReplyToId ?? replyReference.peek() ?? (replyToMode === "all" ? typeof message.id === "string" && message.id ? message.id : ctxPayload.MessageSid : void 0);
1187
+ await deliverDiscordReply({
1188
+ cfg,
1189
+ replies: [supplementalPayload],
1190
+ target: deliverTarget,
1191
+ token,
1192
+ accountId,
1193
+ rest: deliveryRest,
1194
+ runtime,
1195
+ replyToId: supplementalReplyToId,
1196
+ replyToMode,
1197
+ textLimit,
1198
+ maxLinesPerMessage,
1199
+ tableMode,
1200
+ chunkMode,
1201
+ sessionKey: ctxPayload.SessionKey,
1202
+ threadBindings,
1203
+ mediaLocalRoots,
1204
+ kind: info.kind
1205
+ });
1206
+ return true;
1207
+ },
1208
+ logPreviewEditFailure: (err) => {
1209
+ logVerbose(`discord: preview final edit failed; falling back to standard send (${String(err)})`);
1210
+ }
1211
+ }),
1212
+ deliverNormally: async () => {
1213
+ if (isProcessAborted(abortSignal)) return false;
1214
+ const fallbackPayload = ttsSupplement && ttsSupplement.visibleTextAlreadyDelivered !== true && !effectivePayload.text?.trim() ? {
1215
+ ...effectivePayload,
1216
+ text: ttsSupplement.spokenText
1217
+ } : effectivePayload;
1218
+ const replyToId = replyReference.use();
1219
+ notifyFinalReplyStart();
1220
+ await deliverDiscordReply({
1221
+ cfg,
1222
+ replies: [fallbackPayload],
1223
+ target: deliverTarget,
1224
+ token,
1225
+ accountId,
1226
+ rest: deliveryRest,
1227
+ runtime,
1228
+ replyToId,
1229
+ replyToMode,
1230
+ textLimit,
1231
+ maxLinesPerMessage,
1232
+ tableMode,
1233
+ chunkMode,
1234
+ sessionKey: ctxPayload.SessionKey,
1235
+ threadBindings,
1236
+ mediaLocalRoots,
1237
+ kind: info.kind
1238
+ });
1239
+ return true;
1240
+ },
1241
+ onNormalDelivered: () => {
1242
+ draftPreview.markFinalReplyDelivered();
1243
+ replyReference.markSent();
1244
+ observer?.onFinalReplyDelivered?.();
1245
+ }
1246
+ })).kind !== "normal-skipped") return;
1247
+ }
1248
+ if (isProcessAborted(abortSignal)) return;
1249
+ const replyToId = replyReference.use();
1250
+ if (isFinal) notifyFinalReplyStart();
1251
+ await deliverDiscordReply({
1252
+ cfg,
1253
+ replies: [effectivePayload],
1254
+ target: deliverTarget,
1255
+ token,
1256
+ accountId,
1257
+ rest: deliveryRest,
1258
+ runtime,
1259
+ replyToId,
1260
+ replyToMode,
1261
+ textLimit,
1262
+ maxLinesPerMessage,
1263
+ tableMode,
1264
+ chunkMode,
1265
+ sessionKey: ctxPayload.SessionKey,
1266
+ threadBindings,
1267
+ mediaLocalRoots,
1268
+ kind: info.kind
1269
+ });
1270
+ replyReference.markSent();
1271
+ if (isFinal && payload.isError !== true) {
1272
+ draftPreview.markFinalReplyDelivered();
1273
+ observer?.onFinalReplyDelivered?.();
1274
+ }
1275
+ },
1276
+ onError: (err, info) => {
1277
+ runtime.error?.(danger(formatDiscordReplyDeliveryFailure({
1278
+ kind: info.kind,
1279
+ err,
1280
+ target: deliverTarget,
1281
+ sessionKey: ctxPayload.SessionKey
1282
+ })));
1283
+ },
1284
+ onReplyStart: async () => {
1285
+ if (isProcessAborted(abortSignal)) return;
1286
+ await replyPipeline.typingCallbacks?.onReplyStart();
1287
+ await statusReactions.setThinking();
1288
+ }
1289
+ });
1290
+ const resolvedBlockStreamingEnabled = resolveChannelStreamingBlockEnabled(discordConfig);
1291
+ let dispatchResult = null;
1292
+ let dispatchError = false;
1293
+ let dispatchAborted = false;
1294
+ let dispatchSettledBeforeStart = false;
1295
+ const settleDispatchBeforeStart = async () => {
1296
+ dispatchSettledBeforeStart = true;
1297
+ await settleReplyDispatcher({
1298
+ dispatcher,
1299
+ onSettled: () => {
1300
+ markRunComplete();
1301
+ markDispatchIdle();
1302
+ }
1303
+ });
1304
+ };
1305
+ try {
1306
+ if (isProcessAborted(abortSignal)) {
1307
+ dispatchAborted = true;
1308
+ await settleDispatchBeforeStart();
1309
+ return;
1310
+ }
1311
+ const preparedResult = await runPreparedInboundReplyTurn({
1312
+ channel: "discord",
1313
+ accountId: route.accountId,
1314
+ routeSessionKey: persistedSessionKey,
1315
+ storePath: turn.storePath,
1316
+ ctxPayload,
1317
+ recordInboundSession,
1318
+ record: turn.record,
1319
+ history: isRoomEvent ? void 0 : {
1320
+ isGroup: isGuildMessage,
1321
+ historyKey: messageChannelId,
1322
+ historyMap: guildHistories,
1323
+ limit: historyLimit
1324
+ },
1325
+ onPreDispatchFailure: settleDispatchBeforeStart,
1326
+ runDispatch: async () => await dispatchInboundMessage({
1327
+ ctx: ctxPayload,
1328
+ cfg,
1329
+ dispatcher,
1330
+ replyOptions: {
1331
+ ...replyOptions,
1332
+ abortSignal,
1333
+ skillFilter: channelConfig?.skills,
1334
+ sourceReplyDeliveryMode,
1335
+ queuedDeliveryCorrelations: isRoomEvent ? [{ begin: beginDeliveryCorrelation }] : void 0,
1336
+ suppressTyping: isRoomEvent ? true : void 0,
1337
+ allowProgressCallbacksWhenSourceDeliverySuppressed: sourceRepliesAreToolOnly && draftPreview.draftStream && draftPreview.isProgressMode ? true : void 0,
1338
+ disableBlockStreaming: sourceRepliesAreToolOnly ? true : draftPreview.disableBlockStreamingForDraft ?? (typeof resolvedBlockStreamingEnabled === "boolean" ? !resolvedBlockStreamingEnabled : void 0),
1339
+ onPartialReply: draftPreview.draftStream && !draftPreview.isProgressMode ? (payload) => draftPreview.updateFromPartial(payload.text) : void 0,
1340
+ onAssistantMessageStart: draftPreview.draftStream ? () => draftPreview.handleAssistantMessageBoundary() : void 0,
1341
+ onReasoningEnd: draftPreview.draftStream ? () => draftPreview.handleAssistantMessageBoundary() : void 0,
1342
+ onModelSelected,
1343
+ suppressDefaultToolProgressMessages: draftPreview.suppressDefaultToolProgressMessages ? true : void 0,
1344
+ onReasoningStream: async (payload) => {
1345
+ await statusReactions.setThinking();
1346
+ const formattedText = payload?.text ? formatReasoningMessage(payload.text) : void 0;
1347
+ await draftPreview.pushReasoningProgress(formattedText);
1348
+ },
1349
+ onToolStart: async (payload) => {
1350
+ if (isProcessAborted(abortSignal)) return;
1351
+ await maybeBindStatusReactionsToToolReaction(payload);
1352
+ await statusReactions.setTool(payload.name);
1353
+ await draftPreview.pushToolProgress(buildChannelProgressDraftLineForEntry(discordConfig, {
1354
+ event: "tool",
1355
+ name: payload.name,
1356
+ phase: payload.phase,
1357
+ args: payload.args
1358
+ }, payload.detailMode ? { detailMode: payload.detailMode } : void 0), { toolName: payload.name });
1359
+ },
1360
+ onItemEvent: async (payload) => {
1361
+ await draftPreview.pushToolProgress(buildChannelProgressDraftLineForEntry(discordConfig, {
1362
+ event: "item",
1363
+ itemId: payload.itemId,
1364
+ itemKind: payload.kind,
1365
+ title: payload.title,
1366
+ name: payload.name,
1367
+ phase: payload.phase,
1368
+ status: payload.status,
1369
+ summary: payload.summary,
1370
+ progressText: payload.progressText,
1371
+ meta: payload.meta
1372
+ }));
1373
+ },
1374
+ onPlanUpdate: async (payload) => {
1375
+ if (payload.phase !== "update") return;
1376
+ await draftPreview.pushToolProgress(buildChannelProgressDraftLine({
1377
+ event: "plan",
1378
+ phase: payload.phase,
1379
+ title: payload.title,
1380
+ explanation: payload.explanation,
1381
+ steps: payload.steps
1382
+ }));
1383
+ },
1384
+ onApprovalEvent: async (payload) => {
1385
+ if (payload.phase !== "requested") return;
1386
+ await draftPreview.pushToolProgress(buildChannelProgressDraftLine({
1387
+ event: "approval",
1388
+ phase: payload.phase,
1389
+ title: payload.title,
1390
+ command: payload.command,
1391
+ reason: payload.reason,
1392
+ message: payload.message
1393
+ }));
1394
+ },
1395
+ onCommandOutput: async (payload) => {
1396
+ if (payload.phase !== "end") return;
1397
+ await draftPreview.pushToolProgress(buildChannelProgressDraftLine({
1398
+ event: "command-output",
1399
+ phase: payload.phase,
1400
+ title: payload.title,
1401
+ name: payload.name,
1402
+ status: payload.status,
1403
+ exitCode: payload.exitCode
1404
+ }));
1405
+ },
1406
+ onPatchSummary: async (payload) => {
1407
+ if (payload.phase !== "end") return;
1408
+ await draftPreview.pushToolProgress(buildChannelProgressDraftLine({
1409
+ event: "patch",
1410
+ phase: payload.phase,
1411
+ title: payload.title,
1412
+ name: payload.name,
1413
+ added: payload.added,
1414
+ modified: payload.modified,
1415
+ deleted: payload.deleted,
1416
+ summary: payload.summary
1417
+ }));
1418
+ },
1419
+ onCompactionStart: async () => {
1420
+ if (isProcessAborted(abortSignal)) return;
1421
+ await statusReactions.setCompacting();
1422
+ },
1423
+ onCompactionEnd: async () => {
1424
+ if (isProcessAborted(abortSignal)) return;
1425
+ statusReactions.cancelPending();
1426
+ await statusReactions.setThinking();
1427
+ }
1428
+ }
1429
+ })
1430
+ });
1431
+ if (!preparedResult.dispatched) return;
1432
+ dispatchResult = preparedResult.dispatchResult;
1433
+ if (isProcessAborted(abortSignal)) {
1434
+ dispatchAborted = true;
1435
+ return;
1436
+ }
1437
+ } catch (err) {
1438
+ if (isProcessAborted(abortSignal)) {
1439
+ dispatchAborted = true;
1440
+ return;
1441
+ }
1442
+ dispatchError = true;
1443
+ throw err;
1444
+ } finally {
1445
+ endDiscordInboundEventDeliveryCorrelation();
1446
+ try {
1447
+ await draftPreview.cleanup();
1448
+ } finally {
1449
+ if (!dispatchSettledBeforeStart) {
1450
+ markRunComplete();
1451
+ markDispatchIdle();
1452
+ }
1453
+ }
1454
+ const finalDeliveryFailed = (dispatchResult?.failedCounts?.final ?? 0) > 0;
1455
+ if (statusReactionsActive) if (dispatchAborted) if (removeAckAfterReply) statusReactions.clear();
1456
+ else statusReactions.restoreInitial();
1457
+ else {
1458
+ if (dispatchError || finalDeliveryFailed) await statusReactions.setError();
1459
+ else await statusReactions.setDone();
1460
+ if (removeAckAfterReply) (async () => {
1461
+ await sleep(dispatchError || finalDeliveryFailed ? DEFAULT_TIMING.errorHoldMs : DEFAULT_TIMING.doneHoldMs);
1462
+ await statusReactions.clear();
1463
+ })();
1464
+ else statusReactions.restoreInitial();
1465
+ }
1466
+ else if (shouldSendAckReaction && ackReaction && removeAckAfterReply) removeReactionDiscord(messageChannelId, message.id, ackReaction, ackReactionContext).catch((err) => {
1467
+ logAckFailure({
1468
+ log: logVerbose,
1469
+ channel: "discord",
1470
+ target: `${messageChannelId}/${message.id}`,
1471
+ error: err
1472
+ });
1473
+ });
1474
+ }
1475
+ if (dispatchAborted) return;
1476
+ const finalDispatchResult = dispatchResult;
1477
+ if (!finalDispatchResult || !hasFinalChannelTurnDispatch(finalDispatchResult)) return;
1478
+ if (shouldLogVerbose()) {
1479
+ const finalCount = finalDispatchResult.counts.final;
1480
+ logVerbose(`discord: delivered ${finalCount} reply${finalCount === 1 ? "" : "ies"} to ${replyTarget}`);
1481
+ }
1482
+ }
1483
+ //#endregion
1484
+ export { processDiscordMessage };