@bitseek/claw 1.3.9 → 1.3.10-beta.2

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 (390) hide show
  1. package/dist/{accounts-UZBaDk40.js → accounts-CAdzApsy.js} +7 -7
  2. package/dist/{accounts-C9SoQRlD.js → accounts-CuCtdH3C.js} +1 -1
  3. package/dist/{accounts-MEuVJDoB.js → accounts-Cz3RQNdH.js} +1 -1
  4. package/dist/{acp-cli-BW0Dvkhh.js → acp-cli-BKsxHhdT.js} +2 -2
  5. package/dist/{acp-cli-Bt83My-G.js → acp-cli-Cpn_hxPA.js} +8 -8
  6. package/dist/{agent-scope-YUWhK3d-.js → agent-scope-BSkZamWK.js} +1 -1
  7. package/dist/{agents-DyoF_f3J.js → agents-CTTYn76G.js} +15 -15
  8. package/dist/{agents.config-DlsoquZH.js → agents.config-Dzz_a9Mp.js} +1 -1
  9. package/dist/{agents.config-D-pjQl0a.js → agents.config-P4PAeT4_.js} +2 -2
  10. package/dist/{api-key-rotation-D7ptHGeX.js → api-key-rotation-KLYtCoCN.js} +1 -1
  11. package/dist/{audio-preflight-Be5qvEQA.js → audio-preflight-B1d3Otlb.js} +36 -36
  12. package/dist/{audio-preflight-CRllHcyv.js → audio-preflight-COA5tnZv.js} +3 -3
  13. package/dist/{audio-preflight-BxZJpmRQ.js → audio-preflight-CoLgRr1u.js} +3 -3
  14. package/dist/{audio-preflight-UJQ0M6Hl.js → audio-preflight-q7ZFguqv.js} +3 -3
  15. package/dist/{audio-transcription-runner-Dnkt3gmf.js → audio-transcription-runner-BEtb5Jme.js} +22 -22
  16. package/dist/{audio-transcription-runner-_HLf10kW.js → audio-transcription-runner-BLpgvFWB.js} +1 -1
  17. package/dist/{audio-transcription-runner-DVI-SHAn.js → audio-transcription-runner-CrM5-5xi.js} +1 -1
  18. package/dist/{audio-transcription-runner-WwCG9VCF.js → audio-transcription-runner-s4TXhBuF.js} +1 -1
  19. package/dist/{audit-Ct605ugr.js → audit-D013ewlH.js} +3 -3
  20. package/dist/{audit-D-QnHZqm.js → audit-DG0miQ3A.js} +29 -29
  21. package/dist/{auth-DeS7F6Hd.js → auth-CVxYkRFJ.js} +1 -1
  22. package/dist/{auth-choice-BnlfU4y1.js → auth-choice-BRVQOSOG.js} +2 -2
  23. package/dist/{auth-choice-BtNLcXFy.js → auth-choice-CV8rLyb8.js} +12 -12
  24. package/dist/{auth-choice-jr1JhZAd.js → auth-choice-Cmq6GQD8.js} +14 -14
  25. package/dist/{auth-choice.apply-helpers-Cjj-3bz6.js → auth-choice.apply-helpers-CDB_05Fx.js} +1 -1
  26. package/dist/{auth-profiles-Dgxwr8Sa.js → auth-profiles-DNfjfFON.js} +16 -16
  27. package/dist/{auth-token-BYBDbosA.js → auth-token-CBowgXcm.js} +1 -1
  28. package/dist/{banner-Dl-V7Ptt.js → banner-CzgAzM1q.js} +2 -2
  29. package/dist/{bindings-BDScuSfd.js → bindings-B8U0BrYk.js} +1 -1
  30. package/dist/{bonjour-discovery-Cr9ghR-L.js → bonjour-discovery-CvAov_o2.js} +1 -1
  31. package/dist/{browser-cli-DGLAbUwi.js → browser-cli-CBBjI2Mu.js} +12 -12
  32. package/dist/{browser-cli-D2wMcHia.js → browser-cli-VBhMcj3d.js} +3 -3
  33. package/dist/build-info.json +3 -3
  34. package/dist/bundled/boot-md/handler.js +5 -5
  35. package/dist/bundled/session-memory/handler.js +5 -5
  36. package/dist/{call-BdLuBL48.js → call-DU_f0KMj.js} +1 -1
  37. package/dist/{call-Dx2aHVrt.js → call-Da49LtVk.js} +10 -10
  38. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  39. package/dist/{channel-account-context-D__SZrX3.js → channel-account-context-8QkfoueX.js} +5 -5
  40. package/dist/{channel-options-BYE1VHBo.js → channel-options-CiMiQ1Q5.js} +3 -3
  41. package/dist/{channel-options-DbFmOvel.js → channel-options-CwgtYRMM.js} +1 -1
  42. package/dist/{channel-selection-ZJlD8RW_.js → channel-selection-BuY5iEbg.js} +1 -1
  43. package/dist/{channel-web-COoUoCJ1.js → channel-web-DNpAAGVd.js} +18 -18
  44. package/dist/{channel-web-DI8CzqrG.js → channel-web-DekWEF-x.js} +2 -2
  45. package/dist/{channels-cli-a630SQK6.js → channels-cli-DxMc7DH5.js} +95 -95
  46. package/dist/{channels-cli-CnwFvDuq.js → channels-cli-d0TsshWJ.js} +13 -13
  47. package/dist/{channels-status-issues-Ccr7cxgt.js → channels-status-issues-C3zPqi31.js} +1 -1
  48. package/dist/{chrome-F8yPeLCk.js → chrome-BosxOvwr.js} +4 -4
  49. package/dist/{clawbot-cli-CFFhJyHO.js → clawbot-cli-Cq5MLCVY.js} +5 -5
  50. package/dist/cli/daemon-cli.js +1 -1
  51. package/dist/{cli-Dyjp2Eb9.js → cli-BN9QyJ2t.js} +76 -76
  52. package/dist/{cli-CSvBbD4L.js → cli-H2qqzBh-.js} +8 -8
  53. package/dist/{client-DVME2dNA.js → client-CbO7FTeL.js} +3 -2
  54. package/dist/{client-CluJsNRo.js → client-zj7haqMb.js} +1 -0
  55. package/dist/{command-registry-CiiKLf7K.js → command-registry-CZeXdavX.js} +13 -13
  56. package/dist/{commands-NkZDaV9a.js → commands-pIMTT07J.js} +1 -1
  57. package/dist/{commands-registry-BEOnewEO.js → commands-registry-DsvOsTTF.js} +3 -3
  58. package/dist/{completion-cli-A-7_BOG8.js → completion-cli-CtFPrLVk.js} +13 -13
  59. package/dist/{completion-cli-Cf-BVW55.js → completion-cli-CtlUQOU1.js} +1 -1
  60. package/dist/{config-cli-B8b1tCQT.js → config-cli-7YppRhHT.js} +1 -1
  61. package/dist/{config-cli-DKp1_Q2a.js → config-cli-CFOqOvdY.js} +7 -7
  62. package/dist/{config-guard-B9fTWjXL.js → config-guard-_F29cfDV.js} +3 -3
  63. package/dist/{config-validation-CA4J--dN.js → config-validation-DJiuTGa9.js} +3 -3
  64. package/dist/{configure-BFAj-ANy.js → configure-CyZK-h8l.js} +6 -6
  65. package/dist/{configure-C0LdxD84.js → configure-u6SJdWUT.js} +17 -17
  66. package/dist/control-ui/assets/{index-ixU5putu.js → index-BX-BH831.js} +408 -362
  67. package/dist/control-ui/assets/index-BX-BH831.js.map +1 -0
  68. package/dist/control-ui/assets/{index-EvU5ZebS.css → index-CG7TGGhP.css} +1 -1
  69. package/dist/control-ui/index.html +2 -2
  70. package/dist/{control-ui-assets-hAbiBedq.js → control-ui-assets-CWYG-y7n.js} +1 -1
  71. package/dist/{cron-cli-GqIWWgiC.js → cron-cli-9N0CgRKB.js} +12 -12
  72. package/dist/{cron-cli-CDE1OFDG.js → cron-cli-CF5BP-n7.js} +3 -3
  73. package/dist/{daemon-cli-D73VJA_5.js → daemon-cli-0g2nkiie.js} +2 -2
  74. package/dist/{daemon-cli-CEmNv817.js → daemon-cli-BMq2D7sp.js} +15 -15
  75. package/dist/daemon-cli.js +1 -0
  76. package/dist/{daemon-install-BmfoXdXy.js → daemon-install-C570xWh0.js} +4 -4
  77. package/dist/{daemon-install-helpers-BsUgG6nU.js → daemon-install-helpers-BHTLKVCH.js} +11 -11
  78. package/dist/{dashboard-DTlNIb75.js → dashboard-ChRtpalJ.js} +2 -2
  79. package/dist/{dashboard-DvN1mA5u.js → dashboard-EG5nMcy-.js} +1 -1
  80. package/dist/{deliver-CeItj33i.js → deliver-BCX2HRzP.js} +7 -7
  81. package/dist/{deliver-UlKfF5ki.js → deliver-CjCvs92K.js} +1 -1
  82. package/dist/{deliver-BR94HzGu.js → deliver-DvxmGKU7.js} +1 -1
  83. package/dist/{deliver-Ed6oj5Hr.js → deliver-nnwtUHe4.js} +1 -1
  84. package/dist/{devices-cli-BE_t6kEW.js → devices-cli-BRo35VQ8.js} +8 -8
  85. package/dist/{devices-cli-DolMfE77.js → devices-cli-DhkpGf9W.js} +2 -2
  86. package/dist/{diagnostic-BS_rmYNQ.js → diagnostic-CgNDbdut.js} +1 -1
  87. package/dist/{diagnostics-DCUyr8cM.js → diagnostics-DFZTmuFB.js} +5 -5
  88. package/dist/{directory-cli-CRSmIysH.js → directory-cli-BKfV5rcs.js} +8 -8
  89. package/dist/{dns-cli-CSAjz7bt.js → dns-cli--O5ugFD3.js} +5 -5
  90. package/dist/{dock-CslXtXH_.js → dock-Cki7hMDN.js} +4 -4
  91. package/dist/{docs-cli-BRb3xAC4.js → docs-cli-o8TMQTn6.js} +4 -4
  92. package/dist/{doctor-completion-DDa8Rj_C.js → doctor-completion-D1YQPRLZ.js} +1 -1
  93. package/dist/{doctor-completion-CqdGtWOU.js → doctor-completion-DdOKH1q8.js} +2 -2
  94. package/dist/{doctor-config-flow-BEveSr6U.js → doctor-config-flow-C2SyrY1V.js} +15 -15
  95. package/dist/{enable-rsx0VIgO.js → enable-mI_Pnmyk.js} +1 -1
  96. package/dist/entry.js +2 -2
  97. package/dist/{exec-approvals-allowlist-Dgb12MXc.js → exec-approvals-allowlist-Bdtmhwgj.js} +1 -1
  98. package/dist/{exec-approvals-cli-qbLlzazr.js → exec-approvals-cli-Cfh3OhWq.js} +4 -4
  99. package/dist/{exec-approvals-cli-xVv5uofa.js → exec-approvals-cli-U6R3GXsh.js} +16 -16
  100. package/dist/{exec-safe-bin-runtime-policy-BfybDm-q.js → exec-safe-bin-runtime-policy-DfgvmbZG.js} +2 -2
  101. package/dist/extensionAPI.js +5 -5
  102. package/dist/{fetch-BZWXCGP2.js → fetch-Dp9uG2qN.js} +3 -3
  103. package/dist/{fetch-guard-BplMfPrm.js → fetch-guard-ClzGpvFK.js} +1 -1
  104. package/dist/{fs-safe-nXGqHBF8.js → fs-safe-BtSQvuQn.js} +24 -24
  105. package/dist/{gateway-cli-CKOUY2y1.js → gateway-cli-D6K1V3Bk.js} +175 -167
  106. package/dist/{gateway-cli-D7OOfzP7.js → gateway-cli-RrWvU33e.js} +33 -25
  107. package/dist/{gateway-rpc-CEueWk1E.js → gateway-rpc-ByQgck-k.js} +1 -1
  108. package/dist/{gateway-rpc-yBoALaWH.js → gateway-rpc-DiWvH8Pq.js} +1 -1
  109. package/dist/{health-D7FO50c6.js → health-BEGEjMAH.js} +3 -3
  110. package/dist/{health-Dyd4RpCM.js → health-CgHjmUFQ.js} +14 -14
  111. package/dist/{hooks-cli-C0ESoNa0.js → hooks-cli-BqCZdnvb.js} +84 -84
  112. package/dist/{hooks-cli-DufRHJ0v.js → hooks-cli-Cigd_Wfj.js} +9 -9
  113. package/dist/{hooks-status-DC5Ls265.js → hooks-status-DLAFiQoD.js} +1 -1
  114. package/dist/{image-XqGcCt9q.js → image-5kjT0Ifv.js} +1 -1
  115. package/dist/{image-BKHeF2sO.js → image-Cboo5_y3.js} +1 -1
  116. package/dist/{image-DcfdUryQ.js → image-Cj831azd.js} +1 -1
  117. package/dist/{image-HyFl8MrD.js → image-CrLgaJde.js} +5 -5
  118. package/dist/{image-ops-_2-6WZ4r.js → image-ops-Cv4BHtyC.js} +10 -10
  119. package/dist/index.js +13 -13
  120. package/dist/{inspect-DRNo1VIP.js → inspect-BB0gFSLo.js} +4 -4
  121. package/dist/{install-safe-path-DBJEsbCp.js → install-safe-path-CSglDbi-.js} +25 -25
  122. package/dist/{installs-B2Z4DyUY.js → installs-D6ND4ZY7.js} +9 -9
  123. package/dist/{ipv4-BMbKD3zl.js → ipv4-Dw9v4ItT.js} +1 -1
  124. package/dist/{ir-DaZ8ITYK.js → ir-Bov3hbIf.js} +6 -6
  125. package/dist/{issue-format-BK98Hpx-.js → issue-format-Bnj64obT.js} +1 -1
  126. package/dist/{json-files-DrZ4qfxw.js → json-files-1hhV5hS6.js} +8 -8
  127. package/dist/{lifecycle-core-BrIHPmUB.js → lifecycle-core-_8xJF_9z.js} +5 -5
  128. package/dist/llm-slug-generator.js +5 -5
  129. package/dist/{login--V3ibRWJ.js → login-D-Js3AvX.js} +3 -3
  130. package/dist/{login-qr-TavUzvgE.js → login-qr-DzUhzJq4.js} +6 -6
  131. package/dist/{logs-cli-p5kAh0qi.js → logs-cli-Clchi69N.js} +3 -3
  132. package/dist/{logs-cli-Dv8TRwyI.js → logs-cli-DVtjPLN7.js} +9 -9
  133. package/dist/{manager-B74jUC6O.js → manager-ZjJ9M2x6.js} +14 -14
  134. package/dist/{manifest-registry-D1Y5hoq2.js → manifest-registry-InPIGvqe.js} +1 -1
  135. package/dist/{markdown-tables-BDe192Ai.js → markdown-tables-DoeNp6Yw.js} +1 -1
  136. package/dist/{memory-cli-BMul3CV1.js → memory-cli-C0hNuh-t.js} +12 -12
  137. package/dist/{model-BUgU1YvD.js → model-Cun06SAF.js} +2 -2
  138. package/dist/{model-catalog-D4hoiCav.js → model-catalog-BoIN1v0Q.js} +3 -3
  139. package/dist/{model-picker-C52jOYls.js → model-picker-HEDcBXIB.js} +4 -4
  140. package/dist/{models-Cdge-yuv.js → models-Xv17f3vZ.js} +18 -18
  141. package/dist/{models-cli-B3Xw4zlc.js → models-cli-BXyi6SWU.js} +81 -81
  142. package/dist/{models-cli-BfSKbP6r.js → models-cli-DUzbk_7x.js} +9 -9
  143. package/dist/{models-config-BUq1pLs3.js → models-config-BjTFyv9Z.js} +6 -6
  144. package/dist/{net-B1yWST2Q.js → net-Dsab06Rf.js} +2 -2
  145. package/dist/{node-cli-BabqC8Zy.js → node-cli-B15fr-qS.js} +33 -33
  146. package/dist/{node-cli-Do62XUPs.js → node-cli-Bw3p8-Sf.js} +1 -1
  147. package/dist/{node-command-policy-CcKer6vK.js → node-command-policy-B6a4rlIk.js} +1 -1
  148. package/dist/{node-command-policy-Dk_UuHKt.js → node-command-policy-CtLbfZ7S.js} +1 -1
  149. package/dist/{node-service-BNRDY7GU.js → node-service-Dc_k2bXh.js} +1 -1
  150. package/dist/{nodes-cli-pFODdHtG.js → nodes-cli-Cd4bT0G_.js} +3 -3
  151. package/dist/{nodes-cli-Dpzu3xiW.js → nodes-cli-DxNXbAjA.js} +16 -16
  152. package/dist/{nodes-screen-9RT6NG41.js → nodes-screen-BfHQppAv.js} +7 -7
  153. package/dist/{npm-pack-install-dRUKCY1x.js → npm-pack-install-BAwUbntz.js} +18 -18
  154. package/dist/{npm-resolution-CIbDK6N6.js → npm-resolution-B-kbVjrb.js} +1 -1
  155. package/dist/{npm-resolution-CEMLdRCK.js → npm-resolution-BAviHHRA.js} +5 -5
  156. package/dist/{onboard-D7KozrLf.js → onboard-Cu0G7EAR.js} +3 -3
  157. package/dist/{onboard-CMEmzKLW.js → onboard-RamoqBQh.js} +6 -6
  158. package/dist/{onboard-channels-BfnzcJrR.js → onboard-channels-DHx-uZCo.js} +2 -2
  159. package/dist/{onboard-channels-Bw9YbUzP.js → onboard-channels-xMJXbWfp.js} +20 -20
  160. package/dist/{onboard-custom-CtmSA7Ih.js → onboard-custom-Bdm0AEOf.js} +3 -3
  161. package/dist/{onboard-custom.shared-DGA1AopE.js → onboard-custom.shared-BJ1NdBPQ.js} +2 -2
  162. package/dist/{onboard-helpers-DLQ_XMs1.js → onboard-helpers-BS_bPZKe.js} +11 -11
  163. package/dist/{onboard-helpers-Oi4C_OMX.js → onboard-helpers-DEzzN6tA.js} +1 -1
  164. package/dist/{onboard-hooks-kJZEQTda.js → onboard-hooks-BKIWvalG.js} +4 -4
  165. package/dist/{onboard-remote-XXaOoJYC.js → onboard-remote-C_jBXm-z.js} +1 -1
  166. package/dist/{onboard-remote-C1-vrrIn.js → onboard-remote-St2_FGbe.js} +3 -3
  167. package/dist/{onboard-skills-C8Mue7Px.js → onboard-skills-D7ZRTLs3.js} +1 -1
  168. package/dist/{onboard-skills-BxC5udud.js → onboard-skills-m9oH0mp4.js} +4 -4
  169. package/dist/{onboarding-BLcdYzEJ.js → onboarding-I5wAbpKA.js} +13 -13
  170. package/dist/{onboarding-C1mU33hA.js → onboarding-VPTSOvzr.js} +7 -7
  171. package/dist/{onboarding.finalize-2exVy-pf.js → onboarding.finalize-DfoOvZxa.js} +13 -13
  172. package/dist/{onboarding.finalize-BP0DKBAn.js → onboarding.finalize-Dvd8Uqat.js} +89 -89
  173. package/dist/{onboarding.gateway-config-CsSayEFl.js → onboarding.gateway-config-BZkfmBr7.js} +18 -18
  174. package/dist/{onboarding.gateway-config-DImrb8_4.js → onboarding.gateway-config-DYozawla.js} +4 -4
  175. package/dist/{openai-model-default-DYxdi5ZX.js → openai-model-default-Dbn33YX3.js} +2 -2
  176. package/dist/{outbound-DhEQ9Uxy.js → outbound-SGcz-hQs.js} +4 -4
  177. package/dist/{outbound-attachment-Dhx3-Gcn.js → outbound-attachment-BLl9Vid0.js} +2 -2
  178. package/dist/{pairing-cli-CvCRXsUM.js → pairing-cli-6-9woWGC.js} +9 -9
  179. package/dist/{pairing-labels-BUGAt7vg.js → pairing-labels-RbKVJQq5.js} +1 -1
  180. package/dist/{pairing-store-B27cuhBQ.js → pairing-store-BBxShFYa.js} +3 -3
  181. package/dist/{path-alias-guards-BQRm9WIp.js → path-alias-guards-DCVgvjo3.js} +3 -3
  182. package/dist/{path-safety-DDHmx5YW.js → path-safety-DmE3pKqe.js} +1 -1
  183. package/dist/{paths-B0fezTQW.js → paths-ufuDrRZO.js} +9 -9
  184. package/dist/{pi-embedded-Dr2npoTx.js → pi-embedded-CLpkFzke.js} +58 -17
  185. package/dist/{pi-embedded-DzJti3AT.js → pi-embedded-JvXxFqT7.js} +58 -17
  186. package/dist/{pi-embedded-helpers-J2caGJww.js → pi-embedded-helpers-CKEoEHoe.js} +13 -1
  187. package/dist/{pi-embedded-helpers-DeshJQRZ.js → pi-embedded-helpers-CYvB-mUe.js} +13 -1
  188. package/dist/{pi-embedded-helpers-BvHlsuFU.js → pi-embedded-helpers-DQudcPte.js} +13 -1
  189. package/dist/{pi-embedded-helpers-C6qtvkzL.js → pi-embedded-helpers-YXFiUfat.js} +19 -7
  190. package/dist/{pi-model-discovery-P149vq2k.js → pi-model-discovery-BnW942uP.js} +1 -1
  191. package/dist/{pi-tools.policy-DwPGGCBG.js → pi-tools.policy-ClPMGEq4.js} +5 -5
  192. package/dist/{plugin-auto-enable-C4EhTu_y.js → plugin-auto-enable-MtcFdE6T.js} +3 -3
  193. package/dist/{plugin-registry-htTOE5ts.js → plugin-registry-BlrQgW0D.js} +3 -3
  194. package/dist/{plugin-registry-C6E8urZI.js → plugin-registry-gZUfqcq8.js} +1 -1
  195. package/dist/plugin-sdk/{accounts-CK8a9UID.js → accounts-B0MGFQ0N.js} +1 -1
  196. package/dist/plugin-sdk/{accounts-lwmUYGUE.js → accounts-C6gCLKxD.js} +3 -3
  197. package/dist/plugin-sdk/{accounts-CS3X-w75.js → accounts-CtdUkArQ.js} +1 -1
  198. package/dist/plugin-sdk/{active-listener-BWmkk9uJ.js → active-listener-B4jWKHgp.js} +1 -1
  199. package/dist/plugin-sdk/{agent-scope-hbikmG29.js → agent-scope-C86F9PtR.js} +3 -3
  200. package/dist/plugin-sdk/agents/pi-embedded-helpers/errors.d.ts +6 -0
  201. package/dist/plugin-sdk/agents/pi-embedded-helpers.d.ts +1 -1
  202. package/dist/plugin-sdk/agents/pi-embedded-subscribe.handlers.messages.d.ts +8 -0
  203. package/dist/plugin-sdk/{api-key-rotation-CRkGVkaE.js → api-key-rotation-Ckeuk7ma.js} +2 -2
  204. package/dist/plugin-sdk/{audio-preflight-CnShZx3d.js → audio-preflight-bn_-lI6T.js} +33 -33
  205. package/dist/plugin-sdk/{audio-transcription-runner-02Kf0QEw.js → audio-transcription-runner-B7Y82C4Z.js} +10 -10
  206. package/dist/plugin-sdk/{bindings-nNuMY2YM.js → bindings-ChmACL7A.js} +2 -2
  207. package/dist/plugin-sdk/{channel-activity-Bqbt4eXH.js → channel-activity-BmpQZg2e.js} +3 -3
  208. package/dist/plugin-sdk/{channel-web-g5RnVnVc.js → channel-web-DWi8zvvE.js} +23 -23
  209. package/dist/plugin-sdk/{chrome-2cewsnu1.js → chrome-DuBOBfOM.js} +7 -7
  210. package/dist/plugin-sdk/{chunk-BYCmTLPZ.js → chunk-C0X4iaGn.js} +1 -1
  211. package/dist/plugin-sdk/{command-format-BlehDg53.js → command-format-CElfSn4A.js} +1 -1
  212. package/dist/plugin-sdk/{commands-registry-BOYYhfZ3.js → commands-registry-B1R1u0Ef.js} +5 -5
  213. package/dist/plugin-sdk/{config-QlwvRinO.js → config-BIceFM4q.js} +10 -10
  214. package/dist/plugin-sdk/{deliver-TLuU1nrG.js → deliver-B8tQybg3.js} +11 -11
  215. package/dist/plugin-sdk/{diagnostic-Qi8YtEBS.js → diagnostic-BbwhaVH5.js} +2 -2
  216. package/dist/plugin-sdk/{dock-kzzjqc23.js → dock-ofKZIPvX.js} +6 -6
  217. package/dist/plugin-sdk/{errors-DVIIAWgf.js → errors-D1n_xg5Q.js} +1 -1
  218. package/dist/plugin-sdk/{fetch-guard-DBpNRDsE.js → fetch-guard-JfIUTAXW.js} +2 -2
  219. package/dist/plugin-sdk/{fs-safe-m9IoJqSI.js → fs-safe-C32W4lb9.js} +3 -3
  220. package/dist/plugin-sdk/gateway/protocol/schema/logs-chat.d.ts +1 -0
  221. package/dist/plugin-sdk/gateway/protocol/schema/protocol-schemas.d.ts +1 -0
  222. package/dist/plugin-sdk/{image-DthA-2Bt.js → image-C6HhIJq-.js} +6 -6
  223. package/dist/plugin-sdk/{image-ops-DZf5e0hi.js → image-ops-DgyVTXxr.js} +1 -1
  224. package/dist/plugin-sdk/index.js +64 -64
  225. package/dist/plugin-sdk/{ir-DqRMrArF.js → ir-CUJX2XmF.js} +6 -6
  226. package/dist/plugin-sdk/{local-roots-D45XofHa.js → local-roots-PQBdjF5V.js} +4 -4
  227. package/dist/plugin-sdk/{logger-DfvFauG1.js → logger-BnDVA5Pn.js} +1 -1
  228. package/dist/plugin-sdk/{login-jCR1wiz5.js → login-fF45LyM7.js} +6 -6
  229. package/dist/plugin-sdk/{login-qr-yj8Ns7nC.js → login-qr-IMrHS0CU.js} +9 -9
  230. package/dist/plugin-sdk/{manager-Cm_A6m9L.js → manager-B0SAEWzU.js} +10 -10
  231. package/dist/plugin-sdk/{markdown-tables-CBEW0AEz.js → markdown-tables-BTRy5g54.js} +1 -1
  232. package/dist/plugin-sdk/{message-channel-CettmQxR.js → message-channel-BBGSgNfZ.js} +1 -1
  233. package/dist/plugin-sdk/{outbound-Bciu0j21.js → outbound-CsQhMb1t.js} +7 -7
  234. package/dist/plugin-sdk/{outbound-attachment-JlTOABiQ.js → outbound-attachment-PV4MNgO7.js} +2 -2
  235. package/dist/plugin-sdk/{path-alias-guards-DJzjOH6k.js → path-alias-guards-CtvHdXkF.js} +1 -1
  236. package/dist/plugin-sdk/{pi-embedded-helpers-5SLsxaPD.js → pi-embedded-helpers-BHnEYKw0.js} +30 -18
  237. package/dist/plugin-sdk/{pi-model-discovery-D69omnZ4.js → pi-model-discovery-CeMr9qlX.js} +1 -1
  238. package/dist/plugin-sdk/{plugins-PXEjTi0a.js → plugins-DoosFTlv.js} +6 -6
  239. package/dist/plugin-sdk/{proxy-BJHqiC33.js → proxy-BC7TfAei.js} +1 -1
  240. package/dist/plugin-sdk/{proxy-fetch-nIK8JZcG.js → proxy-fetch-D7xNZwMz.js} +1 -1
  241. package/dist/plugin-sdk/{pw-ai-BYRY2b8b.js → pw-ai-COCVSS3S.js} +13 -13
  242. package/dist/plugin-sdk/{qmd-manager-BDZK_TQ2.js → qmd-manager-Dy2i7Yk2.js} +8 -8
  243. package/dist/plugin-sdk/{query-expansion-BbG3wPsu.js → query-expansion-Ce600EN-.js} +2 -2
  244. package/dist/plugin-sdk/{redact-CJpp3pJZ.js → redact-DR57Khnb.js} +1 -1
  245. package/dist/plugin-sdk/{registry-DZtlIW2B.js → registry-CoOCMLwt.js} +2 -2
  246. package/dist/plugin-sdk/{replies-EKccD3Vq.js → replies-DrAmBEev.js} +3 -3
  247. package/dist/plugin-sdk/{reply-Bn7G66m2.js → reply-UD3RANYz.js} +139 -98
  248. package/dist/plugin-sdk/{reply-prefix-DSjz9ex2.js → reply-prefix-S61xcDq5.js} +1 -1
  249. package/dist/plugin-sdk/{resolve-outbound-target-BWnhQoZm.js → resolve-outbound-target-CHbuy5MW.js} +2 -2
  250. package/dist/plugin-sdk/{resolve-route-f4hKLSdv.js → resolve-route-D17tpQod.js} +4 -4
  251. package/dist/plugin-sdk/{retry-WkwmuOq5.js → retry-BCP_IcXF.js} +1 -1
  252. package/dist/plugin-sdk/{send-By6LXMdT.js → send-4oPoqu-k.js} +8 -8
  253. package/dist/plugin-sdk/{send-D6q7DSEd.js → send-B-OjHj4t.js} +7 -7
  254. package/dist/plugin-sdk/{send-wah5ag3x.js → send-BnUKf8wg.js} +10 -10
  255. package/dist/plugin-sdk/{send-CLmu_bs1.js → send-DXz49rIh.js} +6 -6
  256. package/dist/plugin-sdk/{send-DVH_jqoJ.js → send-DfA6vCVP.js} +15 -15
  257. package/dist/plugin-sdk/{session-BfaJDj55.js → session-B_TxDBeW.js} +5 -5
  258. package/dist/plugin-sdk/{session-meta-CtcszwHp.js → session-meta-Cs9Hy3rA.js} +1 -1
  259. package/dist/plugin-sdk/{sessions-CCrnhL0f.js → sessions-D0O4NXJE.js} +6 -6
  260. package/dist/plugin-sdk/{skill-commands-BbZ5VC2j.js → skill-commands-Cq3lRmFA.js} +5 -5
  261. package/dist/plugin-sdk/{skills-DhjFSX9k.js → skills-CKk6dkB7.js} +8 -8
  262. package/dist/plugin-sdk/{ssrf-yJVFBwP_.js → ssrf-DWKS2l1Z.js} +1 -1
  263. package/dist/plugin-sdk/{store-B49PVNHw.js → store-D-KJbO1K.js} +2 -2
  264. package/dist/plugin-sdk/{subsystem-BSS_Lti_.js → subsystem-BOTkxxI1.js} +2 -2
  265. package/dist/plugin-sdk/{tables-B2ndgibI.js → tables-iAM0v6UL.js} +1 -1
  266. package/dist/plugin-sdk/{target-errors-3PJA_VbO.js → target-errors-Di5oh5b0.js} +2 -2
  267. package/dist/plugin-sdk/{tokens-CYf5ZhLm.js → tokens-DUELMaP-.js} +1 -1
  268. package/dist/plugin-sdk/{tool-images-DzNHghBZ.js → tool-images-4TDsVJHN.js} +2 -2
  269. package/dist/plugin-sdk/{tool-loop-detection-paUegJmP.js → tool-loop-detection-BooG-g5v.js} +2 -2
  270. package/dist/plugin-sdk/{utils-DaD2HGTy.js → utils-B7zMI7Td.js} +1 -1
  271. package/dist/plugin-sdk/web-UMF3rhRY.js +72 -0
  272. package/dist/plugin-sdk/{whatsapp-actions-fOVsMKWU.js → whatsapp-actions-CntfyIDF.js} +25 -25
  273. package/dist/{plugins-DPspmGax.js → plugins-B9LVNfXo.js} +2 -2
  274. package/dist/{plugins-cli-Bh8rE7t6.js → plugins-cli-BT_YdHlo.js} +9 -9
  275. package/dist/{plugins-cli-NTdICagm.js → plugins-cli-Dowiu6KT.js} +86 -86
  276. package/dist/{ports-Do_Plo8C.js → ports-BKC_uvax.js} +2 -2
  277. package/dist/{ports-BNwHSlzK.js → ports-TfIbPY8z.js} +1 -1
  278. package/dist/{program-BzrloeUd.js → program-BA-5175y.js} +84 -84
  279. package/dist/{program-context-Dj2_qoie.js → program-context-DFXBN0ZY.js} +31 -31
  280. package/dist/{prompt-select-styled-CRUyZ8Zn.js → prompt-select-styled-BcZ8H5DI.js} +39 -39
  281. package/dist/{prompt-select-styled-CRpJTxEn.js → prompt-select-styled-D6W6ZbLn.js} +6 -6
  282. package/dist/{provider-auth-helpers-CTHHzB9d.js → provider-auth-helpers-BEYTbEO-.js} +1 -1
  283. package/dist/{provider-auth-helpers-CGlrXlEv.js → provider-auth-helpers-Bu2aZSnq.js} +5 -5
  284. package/dist/{proxy-env-B9lqcBfU.js → proxy-env-DQluNeAy.js} +1 -1
  285. package/dist/{push-apns-CfIOYv6I.js → push-apns-8_4x3QDX.js} +5 -5
  286. package/dist/{push-apns-D6P4wyMo.js → push-apns-Cr1-03ZS.js} +1 -1
  287. package/dist/{pw-ai-B4CY-RXZ.js → pw-ai-CgRxvnyo.js} +15 -15
  288. package/dist/{qmd-manager-CoaYK3NS.js → qmd-manager-ZEPpjdm5.js} +20 -20
  289. package/dist/{qr-cli-tns16Dij.js → qr-cli-UOH4AqoB.js} +1 -1
  290. package/dist/{query-expansion-BOhTMSRT.js → query-expansion-DmsmrMjB.js} +12 -12
  291. package/dist/{redact-snapshot-Cx6qYiIY.js → redact-snapshot-BGusjTY9.js} +1 -1
  292. package/dist/{register.agent-CbbtPCTG.js → register.agent-CHE7Qalv.js} +97 -97
  293. package/dist/{register.agent-tUHan7i6.js → register.agent-FsyQ2Nm4.js} +13 -13
  294. package/dist/register.configure-CXDvAw-s.js +175 -0
  295. package/dist/{register.configure-H6uG1A19.js → register.configure-DS8ihv8X.js} +16 -16
  296. package/dist/{register.init-B2cwbe39.js → register.init-DY3iSz8Y.js} +16 -16
  297. package/dist/{register.maintenance-B4zbpuqh.js → register.maintenance-Dnr1w5A1.js} +15 -15
  298. package/dist/{register.maintenance-C4vUOdVb.js → register.maintenance-yrpKG5iB.js} +99 -99
  299. package/dist/{register.message-BNLwGPS-.js → register.message-DH4rUSVi.js} +77 -77
  300. package/dist/{register.message-BmweIh8D.js → register.message-p-nIqAYY.js} +9 -9
  301. package/dist/{register.onboard-B_CVsLWL.js → register.onboard-CC50fpnA.js} +5 -5
  302. package/dist/{register.onboard-DElUgwoa.js → register.onboard-maBvm3Rf.js} +18 -18
  303. package/dist/{register.setup-BF5BjQQE.js → register.setup-CwMkpOf-.js} +5 -5
  304. package/dist/{register.setup-DWIO5nY-.js → register.setup-igARJvnk.js} +21 -21
  305. package/dist/{register.start-BKHJP2Is.js → register.start-K1LpFGp0.js} +4 -4
  306. package/dist/{register.start-csWISzdo.js → register.start-nNZtIOVx.js} +17 -17
  307. package/dist/{register.status-health-sessions-CGnHeuq9.js → register.status-health-sessions-C3RoepIh.js} +12 -12
  308. package/dist/{register.status-health-sessions-DVQycJyO.js → register.status-health-sessions-TaLuKSkg.js} +91 -91
  309. package/dist/{register.subclis-CXCp9MIN.js → register.subclis-DscBnK86.js} +31 -31
  310. package/dist/{replies-9B0e_W0H.js → replies-Cnwwqegi.js} +1 -1
  311. package/dist/{reply-Cmqwu6vZ.js → reply-Cm66z0-z.js} +61 -21
  312. package/dist/{reply-prefix-CqTNlEbX.js → reply-prefix-BwXX5Jk8.js} +1 -1
  313. package/dist/{resolve-route-rhGDrrKc.js → resolve-route-BAFZr0AD.js} +2 -2
  314. package/dist/{rpc-Ca9dlA9v.js → rpc-CeTMYkun.js} +1 -1
  315. package/dist/{rpc-CI7SPdeS.js → rpc-rTqBtgDp.js} +1 -1
  316. package/dist/{run-main-LIh93d7b.js → run-main-w6C2SiYG.js} +95 -95
  317. package/dist/{runtime-vnX4kz3-.js → runtime-uZw9qW6d.js} +2 -2
  318. package/dist/{sandbox-ClasEjRW.js → sandbox-GZ80o0rN.js} +18 -18
  319. package/dist/{sandbox-cli-BxLxr8Ov.js → sandbox-cli-BdzWh2X7.js} +26 -26
  320. package/dist/{secrets-cli-DEGkMLrT.js → secrets-cli-DroWvA-9.js} +10 -10
  321. package/dist/{secrets-cli-DVRKrzox.js → secrets-cli-i2YWj3kH.js} +3 -3
  322. package/dist/{security-cli-D4O7OC12.js → security-cli-B-t3jhRM.js} +4 -4
  323. package/dist/{security-cli-608Hrkk0.js → security-cli-VJf80mpc.js} +43 -43
  324. package/dist/{send-BUqXYyi5.js → send-B3N6ed5I.js} +11 -11
  325. package/dist/{send-BLyXZjPe.js → send-CUhKEB1L.js} +8 -8
  326. package/dist/{send-DLfPZ3_F.js → send-D52tAxa7.js} +6 -6
  327. package/dist/{send-CwHSY0pB.js → send-DyQvZx-9.js} +6 -6
  328. package/dist/{send-BLv3U-2N.js → send-ofq5TYCm.js} +5 -5
  329. package/dist/{server-context-3YhieMNo.js → server-context-BIKTw3k8.js} +12 -12
  330. package/dist/{server-lifecycle-DE7bHlKs.js → server-lifecycle-N5bU8mjm.js} +2 -2
  331. package/dist/{server-middleware-hZnQvs4T.js → server-middleware-Q0-cjKBA.js} +1 -1
  332. package/dist/{server-node-events-DhzgyreJ.js → server-node-events-DIZCYbQS.js} +9 -9
  333. package/dist/{server-node-events-SLHkUEcI.js → server-node-events-DgNEG1Jq.js} +77 -77
  334. package/dist/{server-BAuP980-.js → server-si15CkOB.js} +19 -19
  335. package/dist/{service-DdLDWk4F.js → service-Bdwg8-MP.js} +15 -15
  336. package/dist/{session-D8FUKdiW.js → session-Cjlyc-CV.js} +1 -1
  337. package/dist/{session-meta-Cyjw6vgH.js → session-meta-Dofh28uR.js} +1 -1
  338. package/dist/{session-utils-BSsFceEN.js → session-utils-dcEiC-U5.js} +6 -6
  339. package/dist/{sessions-DugDYFTs.js → sessions-BUvaIZVg.js} +15 -15
  340. package/dist/{sessions-D0PiwO3b.js → sessions-DupNmVK4.js} +4 -4
  341. package/dist/{shared-fKlvovu7.js → shared-CDevUk3t.js} +1 -1
  342. package/dist/{shared-D96SvIQZ.js → shared-haEHGkpf.js} +3 -3
  343. package/dist/{skill-commands-KfP9rDJM.js → skill-commands-Do5yZvPn.js} +5 -5
  344. package/dist/{skill-scanner-D7WuF5Sb.js → skill-scanner-DiC9yuOY.js} +6 -6
  345. package/dist/{skills-CDZAo2Sd.js → skills-cQZqFYZM.js} +3 -3
  346. package/dist/{skills-cli-DaSd8Xc2.js → skills-cli-BXNcPNTR.js} +5 -5
  347. package/dist/{skills-install-Ba_1ws_H.js → skills-install-BASrKfvX.js} +6 -6
  348. package/dist/{skills-status-CV1r9Fs_.js → skills-status-DLQ7pr9r.js} +1 -1
  349. package/dist/{status-06d3zhTb.js → status-DeOsbp6k.js} +5 -5
  350. package/dist/{status-B8I9eCIt.js → status-EvQ73B8e.js} +26 -26
  351. package/dist/{status.update-CbAiJIbB.js → status.update-DUDM6iUC.js} +2 -2
  352. package/dist/{store-GKlw8Qa-.js → store-D1eSPAL7.js} +5 -5
  353. package/dist/{subagent-registry-CU894Q5r.js → subagent-registry-DxueEkqw.js} +203 -163
  354. package/dist/{system-cli-CFkPJfOG.js → system-cli-BXGiTYVZ.js} +9 -9
  355. package/dist/{system-cli-C0Ed85zv.js → system-cli-im47tHnN.js} +3 -3
  356. package/dist/{system-run-command-Pd55ipfO.js → system-run-command-BkdvGhnZ.js} +1 -1
  357. package/dist/{systemd-DVgFh5bF.js → systemd-CTamqs8u.js} +9 -9
  358. package/dist/{systemd-hints-BC7wmmDb.js → systemd-hints-D4VSR4gB.js} +6 -6
  359. package/dist/{systemd-linger-C0GrW0si.js → systemd-linger-BbxFU05t.js} +1 -1
  360. package/dist/{tables-B6wgQqYN.js → tables-CTFvIcTQ.js} +1 -1
  361. package/dist/{tailnet-D67wyPIH.js → tailnet-CQxQNgt6.js} +1 -1
  362. package/dist/{target-errors-AeE93vdq.js → target-errors-8-urss_s.js} +4 -4
  363. package/dist/{tool-images-rmLnTSxP.js → tool-images-hL7SizLq.js} +1 -1
  364. package/dist/{tui-B7dzJD1I.js → tui-DExFltkR.js} +6 -6
  365. package/dist/{tui-BRtGtxGi.js → tui-DhEGvFT0.js} +3 -3
  366. package/dist/{tui-cli-CjdbITUY.js → tui-cli-Bjx0DKT6.js} +4 -4
  367. package/dist/{tui-cli-q5z-00Hw.js → tui-cli-oM2kNbdj.js} +33 -33
  368. package/dist/{update-BPBo5wB4.js → update-Bifl3Vpi.js} +3 -3
  369. package/dist/{update-cli-Bq0E6UWE.js → update-cli-By-XQR0X.js} +107 -107
  370. package/dist/{update-cli-CL5aaHct.js → update-cli-CGZx-QNj.js} +15 -15
  371. package/dist/{update-runner-CDmAZF8g.js → update-runner-D3Dqz9wz.js} +16 -16
  372. package/dist/{update-runner-jAwo79K3.js → update-runner-meF3Yj68.js} +1 -1
  373. package/dist/{web-_WxgxGh7.js → web-C8qeseGa.js} +5 -5
  374. package/dist/{web-CadeCgho.js → web-CUoANEo6.js} +5 -5
  375. package/dist/{web-CGIjjBC-.js → web-pvjSSXiL.js} +9 -9
  376. package/dist/web-yRXxasJ5.js +127 -0
  377. package/dist/{webhooks-cli-Dov_rqUg.js → webhooks-cli-BsZ0IIku.js} +6 -6
  378. package/dist/{whatsapp-actions-COrqjCys.js → whatsapp-actions-DZxeDPhI.js} +19 -19
  379. package/dist/{with-timeout-DUosdGNq.js → with-timeout-CojHmZpl.js} +3 -3
  380. package/dist/{workspace-CoIrgiMR.js → workspace-BxNxoapu.js} +1 -1
  381. package/dist/{workspace-D3Bd1Wd-.js → workspace-CZCYGcgM.js} +23 -23
  382. package/dist/{workspace-dirs-x94RXrLL.js → workspace-dirs-CksYiwHf.js} +1 -1
  383. package/dist/{wsl-KDz114y6.js → wsl-CiVud8tt.js} +2 -2
  384. package/docs/install/installer.md +1 -0
  385. package/docs/plans/2026-03-27-bitseek-topup-modal-design.md +52 -0
  386. package/package.json +1 -1
  387. package/dist/control-ui/assets/index-ixU5putu.js.map +0 -1
  388. package/dist/plugin-sdk/web-BapRq5np.js +0 -72
  389. package/dist/register.configure-CurF_EBC.js +0 -175
  390. package/dist/web-B8lEM5aa.js +0 -127
@@ -24,16 +24,16 @@ import { t as buildChannelAccountBindings } from "./bindings-O-6Zk868.js";
24
24
  import { a as createSlackWebClient, c as validateSlackBlocksArray, d as resolveSlackChannelId, i as normalizeSlackOutboundText, l as buildSlackBlocksFallbackText, o as resolveSlackWebClientOptions, s as parseSlackBlocksInput, t as sendMessageSlack, u as parseSlackTarget } from "./send-CqFbFIiM.js";
25
25
  import { $ as fetchChannelPermissionsDiscord, A as unpinMessageDiscord, B as listScheduledEventsDiscord, C as editMessageDiscord, Ct as resolveTimestampMs, D as pinMessageDiscord, Dt as normalizeChannelSlug, E as listThreadsDiscord, Et as buildChannelKeyCandidates, F as fetchMemberInfoDiscord, G as uploadStickerDiscord, H as timeoutMemberDiscord, I as fetchRoleInfoDiscord, J as editChannelDiscord, K as createChannelDiscord, L as fetchVoiceStatusDiscord, M as banMemberDiscord, N as createScheduledEventDiscord, O as readMessagesDiscord, Ot as resolveChannelEntryMatchWithFallback, P as fetchChannelInfoDiscord, Q as stripUndefinedFields, R as kickMemberDiscord, S as deleteMessageDiscord, St as resolveDiscordSystemLocation, T as listPinsDiscord, Tt as applyChannelMatchMeta, U as listGuildEmojisDiscord, V as removeRoleDiscord, W as uploadEmojiDiscord, X as removeChannelPermissionDiscord, Y as moveChannelDiscord, Z as setChannelPermissionDiscord, _ as sendPollDiscord, _t as resolveDiscordShouldRequireMention, a as removeReactionDiscord, at as resolveDiscordChannelId, b as sendWebhookMessageDiscord, bt as formatDiscordReactionEmoji, c as formatDiscordComponentEventText, ct as isDiscordGroupAllowedByPolicy, d as parseDiscordModalCustomId, dt as resolveDiscordAllowListMatch, et as hasAnyGuildPermissionDiscord, f as parseDiscordModalCustomIdForCarbon, ft as resolveDiscordChannelConfigWithFallback, g as sendMessageDiscord, gt as resolveDiscordOwnerAllowFrom, h as resolveDiscordModalEntry, ht as resolveDiscordOwnerAccess, i as removeOwnReactionsDiscord, it as parseDiscordTarget, j as addRoleDiscord, k as searchMessagesDiscord, l as parseDiscordComponentCustomId, lt as normalizeDiscordAllowList, m as resolveDiscordComponentEntry, mt as resolveDiscordMemberAccessState, n as fetchReactionsDiscord, nt as createDiscordClient, o as sendDiscordComponentMessage, ot as listDiscordDirectoryGroupsLive, p as readDiscordComponentSpec, pt as resolveDiscordGuildEntry, q as deleteChannelDiscord, r as reactMessageDiscord, rt as createDiscordRestClient, s as createDiscordFormModal, st as listDiscordDirectoryPeersLive, tt as chunkDiscordTextWithMode, u as parseDiscordComponentCustomIdForCarbon, ut as normalizeDiscordSlug, v as sendStickerDiscord, vt as resolveGroupDmAllow, w as fetchMessageDiscord, wt as fetchDiscord, x as createThreadDiscord, xt as formatDiscordUserTag, y as sendVoiceMessageDiscord, yt as shouldEmitDiscordReactionNotification, z as listGuildChannelsDiscord } from "./send-Cv6lP0Si.js";
26
26
  import { n as generateSecureUuid, t as generateSecureToken } from "./secure-random-CY3Mg7Dp.js";
27
- import { A as initializeGlobalHookRunner, C as shouldSuppressReasoningPayload, D as normalizeChannelTargetInput, E as buildTargetResolverSignature, O as normalizeTargetForProvider, S as shouldSuppressMessagingToolReplies, T as resolveReplyToMode, _ as applyReplyTagsToPayload, a as normalizeOutboundPayloadsForJson, b as filterMessagingToolMediaDuplicates, c as parseReplyDirectives, d as toInternalMessagePreprocessedContext, f as toInternalMessageReceivedContext, g as fireAndForgetHook, h as toPluginMessageReceivedEvent, i as normalizeOutboundPayloads, k as getGlobalHookRunner, l as splitMediaFromOutput, m as toPluginMessageContext, o as normalizeReplyPayloadsForDelivery, p as toInternalMessageTranscribedContext, r as formatOutboundPayloadLog, s as throwIfAborted, t as deliverOutboundPayloads, u as deriveInboundMessageHookContext, v as applyReplyThreading, w as createReplyToModeFilterForChannel, x as isRenderablePayload, y as filterMessagingToolDuplicates } from "./deliver-Ed6oj5Hr.js";
27
+ import { A as initializeGlobalHookRunner, C as shouldSuppressReasoningPayload, D as normalizeChannelTargetInput, E as buildTargetResolverSignature, O as normalizeTargetForProvider, S as shouldSuppressMessagingToolReplies, T as resolveReplyToMode, _ as applyReplyTagsToPayload, a as normalizeOutboundPayloadsForJson, b as filterMessagingToolMediaDuplicates, c as parseReplyDirectives, d as toInternalMessagePreprocessedContext, f as toInternalMessageReceivedContext, g as fireAndForgetHook, h as toPluginMessageReceivedEvent, i as normalizeOutboundPayloads, k as getGlobalHookRunner, l as splitMediaFromOutput, m as toPluginMessageContext, o as normalizeReplyPayloadsForDelivery, p as toInternalMessageTranscribedContext, r as formatOutboundPayloadLog, s as throwIfAborted, t as deliverOutboundPayloads, u as deriveInboundMessageHookContext, v as applyReplyThreading, w as createReplyToModeFilterForChannel, x as isRenderablePayload, y as filterMessagingToolDuplicates } from "./deliver-nnwtUHe4.js";
28
28
  import { a as logMessageProcessed, c as logWebhookError, d as startDiagnosticHeartbeat, f as stopDiagnosticHeartbeat, i as logLaneEnqueue, l as logWebhookProcessed, m as isDiagnosticsEnabled, o as logMessageQueued, p as emitDiagnosticEvent, r as logLaneDequeue, s as logSessionStateChange, t as diag, u as logWebhookReceived } from "./diagnostic-C_D18W4d.js";
29
29
  import { r as getDiagnosticSessionState } from "./diagnostic-session-state-DBPrVBk3.js";
30
30
  import { n as resolveSignalAccount, t as listEnabledSignalAccounts } from "./accounts-DyuYc06u.js";
31
31
  import { $ as readChannelAllowFromStore, A as describeReplyTarget, B as resolveTelegramStreamMode, C as buildSenderLabel, D as buildTelegramParentPeer, E as buildTelegramGroupPeerId, F as resolveTelegramDirectPeerId, G as resolveSenderAllowMatch$1, H as isSenderAllowed$1, I as resolveTelegramForumThreadId, J as mergeDmAllowFromSources, K as firstDefined$1, L as resolveTelegramGroupAllowFromContext, M as extractTelegramLocation, N as hasBotMention, O as buildTelegramThreadParams, P as normalizeForwardedContext, Q as addChannelAllowFromStoreEntry, R as resolveTelegramMediaPlaceholder, S as buildGroupLabel, T as buildTelegramGroupFrom, U as normalizeAllowFrom$2, V as resolveTelegramThreadSpec, W as normalizeDmAllowFromWithStore$1, X as formatLocationText, Y as resolveGroupAllowFromSources, Z as toLocationContext, _ as resolveTelegramFetch, a as reactMessageTelegram, at as listPairingChannels, b as loadCronStore, c as sendStickerTelegram, ct as resolveTelegramTargetChatType, d as wasSentByBot, et as removeChannelAllowFromStoreEntry, f as isRecoverableTelegramNetworkError, g as wrapFileReferencesInHtml, h as renderTelegramHtmlText, i as editMessageTelegram, it as getPairingAdapter, j as expandTextLinks, k as buildTypingThreadParams, m as markdownToTelegramHtml, n as createForumTopicTelegram, nt as readJsonFileWithFallback, o as sendMessageTelegram, ot as isVoiceCompatibleAudio, p as markdownToTelegramChunks, q as isSenderIdAllowed, r as deleteMessageTelegram, rt as writeJsonFileAtomically, s as sendPollTelegram, st as parseTelegramTarget, t as buildInlineKeyboard, tt as upsertChannelPairingRequest, u as resolveTelegramVoiceSend, v as splitTelegramCaption, w as buildSenderName, x as resolveCronStorePath, y as withTelegramApiErrorLogging, z as resolveTelegramReplyId } from "./send-BmmFVPIu.js";
32
32
  import { c as detectMime, d as imageMimeFromFormat, f as isAudioFileName, g as MAX_IMAGE_BYTES, i as getImageMetadata, l as extensionForMime, m as kindFromMime, p as isGifMedia, s as resizeToJpeg, v as mediaKindFromMime } from "./image-ops-HE_T1HTk.js";
33
- import { _ as resolveAttachmentKind, a as resolveAutoImageModel, b as modelSupportsVision, c as applyTemplate, d as normalizeMediaUnderstandingChatType, f as resolveMediaUnderstandingScope, h as registerUnhandledRejectionHandler, i as normalizeMediaAttachments, l as resolveConcurrency, m as buildRandomTempFilePath, n as buildProviderRegistry, o as resolveMediaAttachmentLocalRoots, p as CLI_OUTPUT_MAX_BUFFER, r as createMediaAttachmentCache, s as runCapability, t as runAudioTranscription, u as resolveTimeoutMs$2, v as findModelInCatalog, x as resolveAliasedOpenAiCompatibleModelId, y as loadModelCatalog } from "./audio-transcription-runner-WwCG9VCF.js";
33
+ import { _ as resolveAttachmentKind, a as resolveAutoImageModel, b as modelSupportsVision, c as applyTemplate, d as normalizeMediaUnderstandingChatType, f as resolveMediaUnderstandingScope, h as registerUnhandledRejectionHandler, i as normalizeMediaAttachments, l as resolveConcurrency, m as buildRandomTempFilePath, n as buildProviderRegistry, o as resolveMediaAttachmentLocalRoots, p as CLI_OUTPUT_MAX_BUFFER, r as createMediaAttachmentCache, s as runCapability, t as runAudioTranscription, u as resolveTimeoutMs$2, v as findModelInCatalog, x as resolveAliasedOpenAiCompatibleModelId, y as loadModelCatalog } from "./audio-transcription-runner-s4TXhBuF.js";
34
34
  import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-D1nlOTjb.js";
35
35
  import { a as isMarkdownCapableMessageChannel, c as resolveGatewayMessageChannel, d as GATEWAY_CLIENT_MODES, f as GATEWAY_CLIENT_NAMES, i as isInternalMessageChannel, l as resolveMessageChannel, n as isDeliverableMessageChannel, o as listDeliverableMessageChannels, r as isGatewayMessageChannel, s as normalizeMessageChannel, t as INTERNAL_MESSAGE_CHANNEL, u as GATEWAY_CLIENT_IDS } from "./message-channel-BFpK0lDc.js";
36
- import { $ as mergeAlsoAllowPolicy, A as isRawApiErrorPayload, B as registerBrowserRoutes, C as isCloudCodeAssistFormatError, D as isFailoverErrorMessage, E as isFailoverAssistantError, F as sanitizeUserFacingText, G as resolveBrowserControlAuth, H as resolveProfile, I as ensureSandboxWorkspaceForSession, J as resolveSandboxConfigForAgent, K as resolveGatewayCredentialsFromConfig, L as resolveSandboxContext, M as isTransientHttpError, N as parseImageDimensionError, O as isLikelyContextOverflowError, P as parseImageSizeError, Q as expandPolicyWithPluginGroups, R as resolveSandboxRuntimeStatus, S as isBillingAssistantError, T as isContextOverflowError, U as getBridgeAuthForPort, V as resolveBrowserConfig, W as ensureBrowserControlAuth, X as buildPluginToolGroups, Y as applyOwnerOnlyToolPolicy, Z as collectExplicitAllowlist, _ as formatBillingErrorMessage, a as isMessagingToolDuplicateNormalized, at as matchesAnyGlobPattern, b as isAuthAssistantError, c as extractToolCallsFromAssistant, ct as resolveBootstrapMaxChars, d as downgradeOpenAIFunctionCallReasoningPairs, et as stripPluginOnlyAllowlist, f as downgradeOpenAIReasoningBlocks, g as formatAssistantErrorText, h as classifyFailoverReason, it as compileGlobPatterns, j as isTimeoutErrorMessage, k as isRateLimitAssistantError, l as extractToolResultId, lt as resolveBootstrapTotalMaxChars, m as BILLING_ERROR_USER_MESSAGE, n as validateGeminiTurns, nt as normalizeToolName, o as normalizeTextForComparison, ot as buildBootstrapContextFiles, p as isGoogleModelApi, q as trimToUndefined$1, r as pickFallbackThinkingLevel, rt as resolveToolProfilePolicy, s as sanitizeSessionMessagesImages, st as ensureSessionHeader, t as validateAnthropicTurns, tt as expandToolGroups, u as sanitizeToolCallIdsForCloudCodeAssist, ut as sanitizeGoogleTurnOrdering, v as formatRawAssistantErrorForUi, w as isCompactionFailureError, x as isAuthPermanentErrorMessage, y as getApiErrorPayloadFingerprint, z as createBrowserRouteContext } from "./pi-embedded-helpers-DeshJQRZ.js";
36
+ import { $ as expandPolicyWithPluginGroups, A as isRawApiErrorPayload, B as createBrowserRouteContext, C as isCloudCodeAssistFormatError, D as isFailoverErrorMessage, E as isFailoverAssistantError, F as resolveChatUiHintForError, G as ensureBrowserControlAuth, H as resolveBrowserConfig, I as sanitizeUserFacingText, J as trimToUndefined$1, K as resolveBrowserControlAuth, L as ensureSandboxWorkspaceForSession, M as isTransientHttpError, N as parseImageDimensionError, O as isLikelyContextOverflowError, P as parseImageSizeError, Q as collectExplicitAllowlist, R as resolveSandboxContext, S as isBillingAssistantError, T as isContextOverflowError, U as resolveProfile, V as registerBrowserRoutes, W as getBridgeAuthForPort, X as applyOwnerOnlyToolPolicy, Y as resolveSandboxConfigForAgent, Z as buildPluginToolGroups, _ as formatBillingErrorMessage, a as isMessagingToolDuplicateNormalized, at as compileGlobPatterns, b as isAuthAssistantError, c as extractToolCallsFromAssistant, ct as ensureSessionHeader, d as downgradeOpenAIFunctionCallReasoningPairs, dt as sanitizeGoogleTurnOrdering, et as mergeAlsoAllowPolicy, f as downgradeOpenAIReasoningBlocks, g as formatAssistantErrorText, h as classifyFailoverReason, it as resolveToolProfilePolicy, j as isTimeoutErrorMessage, k as isRateLimitAssistantError, l as extractToolResultId, lt as resolveBootstrapMaxChars, m as BILLING_ERROR_USER_MESSAGE, n as validateGeminiTurns, nt as expandToolGroups, o as normalizeTextForComparison, ot as matchesAnyGlobPattern, p as isGoogleModelApi, q as resolveGatewayCredentialsFromConfig, r as pickFallbackThinkingLevel, rt as normalizeToolName, s as sanitizeSessionMessagesImages, st as buildBootstrapContextFiles, t as validateAnthropicTurns, tt as stripPluginOnlyAllowlist, u as sanitizeToolCallIdsForCloudCodeAssist, ut as resolveBootstrapTotalMaxChars, v as formatRawAssistantErrorForUi, w as isCompactionFailureError, x as isAuthPermanentErrorMessage, y as getApiErrorPayloadFingerprint, z as resolveSandboxRuntimeStatus } from "./pi-embedded-helpers-CYvB-mUe.js";
37
37
  import { A as rawDataToString, B as isSecureWebSocketUrl, C as ensureChromeExtensionRelayServer, N as DEFAULT_UPLOAD_DIR, P as resolveExistingPathsWithinRoot, U as DEFAULT_AI_SNAPSHOT_MAX_CHARS, s as resolveLsofCommandSync, z as isLoopbackHost } from "./chrome-Rj4dB_5x.js";
38
38
  import { c as assertSandboxPath, d as resolveSandboxedMediaSource, f as applySkillEnvOverrides, i as resolveSkillsPromptForRun, l as resolveSandboxInputPath, n as buildWorkspaceSkillSnapshot, p as applySkillEnvOverridesFromSnapshot, r as loadWorkspaceSkillEntries, s as assertMediaNotDataUrl } from "./skills-B8SYlKe5.js";
39
39
  import { t as PATH_ALIAS_POLICIES } from "./path-alias-guards-Daixum0F.js";
@@ -50,7 +50,7 @@ import { i as resolveSessionTranscriptPath, n as resolveSessionFilePath, o as re
50
50
  import { n as onSessionTranscriptUpdate, t as emitSessionTranscriptUpdate } from "./transcript-events-ByYgonIF.js";
51
51
  import { a as canonicalizeBase64, i as resolveImageSanitizationLimits, n as sanitizeImageBlocks, o as estimateBase64DecodedBytes, r as sanitizeToolResultImages } from "./tool-images-BJ8nEaNP.js";
52
52
  import { a as normalizeReasoningLevel, c as normalizeVerboseLevel, i as normalizeElevatedLevel, l as resolveResponseUsageMode, n as formatXHighModelHint, o as normalizeThinkLevel, s as normalizeUsageDisplay, t as formatThinkingLevels, u as supportsXHighThinking } from "./thinking-BcOnJa2q.js";
53
- import { C as extractTextFromChatContent, S as isInsideCode, T as ensureOpenClawModelsJson, _ as stripThinkingTagsFromText, a as decodeDataUrl, b as stripReasoningTagsFromText, c as extractAssistantThinking, d as formatReasoningMessage, f as inferToolMetaFromArgs, g as stripMinimaxToolCallXml, h as stripDowngradedToolCallText, i as coerceImageModelConfig, l as extractThinkingFromTaggedStream, m as promoteThinkingTagsToBlocks, o as resolveProviderVisionModelFromConfig, p as isAssistantMessage, r as coerceImageAssistantText, s as extractAssistantText$1, u as extractThinkingFromTaggedText, v as formatToolSummary, w as minimaxUnderstandImage, x as findCodeRegions, y as resolveToolDisplay } from "./image-DcfdUryQ.js";
53
+ import { C as extractTextFromChatContent, S as isInsideCode, T as ensureOpenClawModelsJson, _ as stripThinkingTagsFromText, a as decodeDataUrl, b as stripReasoningTagsFromText, c as extractAssistantThinking, d as formatReasoningMessage, f as inferToolMetaFromArgs, g as stripMinimaxToolCallXml, h as stripDowngradedToolCallText, i as coerceImageModelConfig, l as extractThinkingFromTaggedStream, m as promoteThinkingTagsToBlocks, o as resolveProviderVisionModelFromConfig, p as isAssistantMessage, r as coerceImageAssistantText, s as extractAssistantText$1, u as extractThinkingFromTaggedText, v as formatToolSummary, w as minimaxUnderstandImage, x as findCodeRegions, y as resolveToolDisplay } from "./image-Cj831azd.js";
54
54
  import { a as getDefaultMediaLocalRoots, i as getAgentScopedMediaLocalRoots, n as fetchRemoteMedia, r as readResponseWithLimit, t as MediaFetchError } from "./fetch-D7xM1Q4J.js";
55
55
  import { n as fetchWithTimeout, t as bindAbortRelay } from "./fetch-timeout-CYFFedEH.js";
56
56
  import { n as withStrictGuardedFetchMode, r as withTrustedEnvProxyGuardedFetchMode, t as fetchWithSsrFGuard } from "./fetch-guard-D-NNwY-r.js";
@@ -7816,6 +7816,7 @@ const ChatEventSchema = Type.Object({
7816
7816
  ]),
7817
7817
  message: Type.Optional(Type.Unknown()),
7818
7818
  errorMessage: Type.Optional(Type.String()),
7819
+ uiHint: Type.Optional(Type.String()),
7819
7820
  usage: Type.Optional(Type.Unknown()),
7820
7821
  stopReason: Type.Optional(Type.String())
7821
7822
  }, { additionalProperties: false });
@@ -9715,7 +9716,7 @@ async function routeReply(params) {
9715
9716
  const resolvedReplyToId = replyToId ?? (channelId === "slack" && threadId != null && threadId !== "" ? String(threadId) : void 0);
9716
9717
  const resolvedThreadId = channelId === "slack" ? null : threadId ?? null;
9717
9718
  try {
9718
- const { deliverOutboundPayloads } = await import("./deliver-Ed6oj5Hr.js").then((n) => n.n);
9719
+ const { deliverOutboundPayloads } = await import("./deliver-nnwtUHe4.js").then((n) => n.n);
9719
9720
  const outboundSession = buildOutboundSessionContext({
9720
9721
  cfg,
9721
9722
  agentId: resolvedAgentId,
@@ -14273,7 +14274,7 @@ async function sendTranscriptEcho(params) {
14273
14274
  }
14274
14275
  const text = formatEchoTranscript(transcript, params.format ?? DEFAULT_ECHO_TRANSCRIPT_FORMAT);
14275
14276
  try {
14276
- const { deliverOutboundPayloads } = await import("./deliver-Ed6oj5Hr.js").then((n) => n.n);
14277
+ const { deliverOutboundPayloads } = await import("./deliver-nnwtUHe4.js").then((n) => n.n);
14277
14278
  await deliverOutboundPayloads({
14278
14279
  cfg,
14279
14280
  channel: normalizedChannel,
@@ -49773,7 +49774,7 @@ async function deliverSessionMaintenanceWarning(params) {
49773
49774
  return;
49774
49775
  }
49775
49776
  try {
49776
- const { deliverOutboundPayloads } = await import("./deliver-Ed6oj5Hr.js").then((n) => n.n);
49777
+ const { deliverOutboundPayloads } = await import("./deliver-nnwtUHe4.js").then((n) => n.n);
49777
49778
  const outboundSession = buildOutboundSessionContext({
49778
49779
  cfg: params.cfg,
49779
49780
  sessionKey: params.sessionKey
@@ -54715,7 +54716,7 @@ async function describeStickerImage(params) {
54715
54716
  logVerbose(`telegram: describing sticker with ${provider}/${model}`);
54716
54717
  try {
54717
54718
  const buffer = await fs.readFile(imagePath);
54718
- const { describeImageWithModel } = await import("./image-DcfdUryQ.js").then((n) => n.n);
54719
+ const { describeImageWithModel } = await import("./image-Cj831azd.js").then((n) => n.n);
54719
54720
  return (await describeImageWithModel({
54720
54721
  buffer,
54721
54722
  fileName: "sticker.webp",
@@ -56469,7 +56470,7 @@ async function resolveDiscordPreflightAudioMentionContext(params) {
56469
56470
  const needsPreflightTranscription = !params.isDirectMessage && params.shouldRequireMention && hasAudioAttachment && !hasTypedText && params.mentionRegexes.length > 0;
56470
56471
  let transcript;
56471
56472
  if (needsPreflightTranscription) try {
56472
- const { transcribeFirstAudio } = await import("./audio-preflight-CRllHcyv.js");
56473
+ const { transcribeFirstAudio } = await import("./audio-preflight-COA5tnZv.js");
56473
56474
  const audioUrls = audioAttachments.map((att) => att.url).filter((url) => typeof url === "string" && url.length > 0);
56474
56475
  if (audioUrls.length > 0) transcript = await transcribeFirstAudio({
56475
56476
  ctx: {
@@ -61011,7 +61012,7 @@ function createOutboundSendDepsFromCliSource(deps) {
61011
61012
  function createDefaultDeps() {
61012
61013
  return {
61013
61014
  sendMessageWhatsApp: async (...args) => {
61014
- const { sendMessageWhatsApp } = await import("./web-_WxgxGh7.js");
61015
+ const { sendMessageWhatsApp } = await import("./web-C8qeseGa.js");
61015
61016
  return await sendMessageWhatsApp(...args);
61016
61017
  },
61017
61018
  sendMessageTelegram: async (...args) => {
@@ -76490,7 +76491,7 @@ const buildTelegramMessageContext = async ({ primaryCtx, allMedia, replyMedia =
76490
76491
  const disableAudioPreflight = firstDefined$1(topicConfig?.disableAudioPreflight, groupConfig?.disableAudioPreflight) === true;
76491
76492
  let preflightTranscript;
76492
76493
  if (isGroup && requireMention && hasAudio && !hasUserText && mentionRegexes.length > 0 && !disableAudioPreflight) try {
76493
- const { transcribeFirstAudio } = await import("./audio-preflight-CRllHcyv.js");
76494
+ const { transcribeFirstAudio } = await import("./audio-preflight-COA5tnZv.js");
76494
76495
  preflightTranscript = await transcribeFirstAudio({
76495
76496
  ctx: {
76496
76497
  MediaPaths: allMedia.length > 0 ? allMedia.map((m) => m.path) : void 0,
@@ -79275,7 +79276,7 @@ function loadWebLoginQr() {
79275
79276
  return webLoginQrPromise;
79276
79277
  }
79277
79278
  function loadWebChannel() {
79278
- webChannelPromise ??= import("./web-_WxgxGh7.js");
79279
+ webChannelPromise ??= import("./web-C8qeseGa.js");
79279
79280
  return webChannelPromise;
79280
79281
  }
79281
79282
  function loadWhatsAppActions() {
@@ -88127,6 +88128,11 @@ function handleAgentEnd(ctx) {
88127
88128
  const lastAssistant = ctx.state.lastAssistant;
88128
88129
  const isError = isAssistantMessage(lastAssistant) && lastAssistant.stopReason === "error";
88129
88130
  if (isError && lastAssistant) {
88131
+ const uiHint = resolveChatUiHintForError({
88132
+ provider: lastAssistant.provider,
88133
+ model: lastAssistant.model,
88134
+ rawError: lastAssistant.errorMessage
88135
+ });
88130
88136
  const errorText = (formatAssistantErrorText(lastAssistant, {
88131
88137
  cfg: ctx.params.config,
88132
88138
  sessionKey: ctx.params.sessionKey,
@@ -88140,6 +88146,7 @@ function handleAgentEnd(ctx) {
88140
88146
  data: {
88141
88147
  phase: "error",
88142
88148
  error: errorText,
88149
+ ...uiHint ? { uiHint } : {},
88143
88150
  endedAt: Date.now()
88144
88151
  }
88145
88152
  });
@@ -88147,7 +88154,8 @@ function handleAgentEnd(ctx) {
88147
88154
  stream: "lifecycle",
88148
88155
  data: {
88149
88156
  phase: "error",
88150
- error: errorText
88157
+ error: errorText,
88158
+ ...uiHint ? { uiHint } : {}
88151
88159
  }
88152
88160
  });
88153
88161
  } else {
@@ -88213,6 +88221,34 @@ function resolveSilentReplyFallbackText(params) {
88213
88221
  if (!fallback) return params.text;
88214
88222
  return fallback;
88215
88223
  }
88224
+ function summarizeAssistantMessageDebug(message) {
88225
+ const stopReason = typeof message.stopReason === "string" ? message.stopReason ?? void 0 : void 0;
88226
+ const content = message.content;
88227
+ if (!Array.isArray(content)) return {
88228
+ stopReason,
88229
+ contentTypes: []
88230
+ };
88231
+ const contentTypes = [];
88232
+ const toolCalls = [];
88233
+ for (const block of content) {
88234
+ if (!block || typeof block !== "object") {
88235
+ contentTypes.push(typeof block);
88236
+ continue;
88237
+ }
88238
+ const record = block;
88239
+ const blockType = typeof record.type === "string" ? record.type : "unknown";
88240
+ contentTypes.push(blockType);
88241
+ if (blockType === "toolCall") toolCalls.push({
88242
+ id: typeof record.id === "string" ? record.id : void 0,
88243
+ name: typeof record.name === "string" ? record.name : void 0
88244
+ });
88245
+ }
88246
+ return {
88247
+ stopReason,
88248
+ contentTypes,
88249
+ toolCalls: toolCalls.length > 0 ? toolCalls : void 0
88250
+ };
88251
+ }
88216
88252
  function handleMessageStart(ctx, evt) {
88217
88253
  if (evt.message?.role !== "assistant") return;
88218
88254
  ctx.resetAssistantMessageState(ctx.state.assistantTexts.length);
@@ -88341,13 +88377,18 @@ function handleMessageEnd(ctx, evt) {
88341
88377
  ctx.recordAssistantUsage(assistantMessage.usage);
88342
88378
  promoteThinkingTagsToBlocks(assistantMessage);
88343
88379
  const rawText = extractAssistantText$1(assistantMessage);
88380
+ const rawThinking = extractAssistantThinking(assistantMessage);
88381
+ const debugSummary = summarizeAssistantMessageDebug(assistantMessage);
88344
88382
  appendRawStream({
88345
88383
  ts: Date.now(),
88346
88384
  event: "assistant_message_end",
88347
88385
  runId: ctx.params.runId,
88348
88386
  sessionId: ctx.params.session.id,
88349
88387
  rawText,
88350
- rawThinking: extractAssistantThinking(assistantMessage)
88388
+ rawThinking,
88389
+ stopReason: debugSummary.stopReason,
88390
+ contentTypes: debugSummary.contentTypes,
88391
+ toolCalls: debugSummary.toolCalls
88351
88392
  });
88352
88393
  const text = resolveSilentReplyFallbackText({
88353
88394
  text: ctx.stripBlockTags(rawText, {
@@ -88356,8 +88397,8 @@ function handleMessageEnd(ctx, evt) {
88356
88397
  }),
88357
88398
  messagingToolSentTexts: ctx.state.messagingToolSentTexts
88358
88399
  });
88359
- const rawThinking = ctx.state.includeReasoning || ctx.state.streamReasoning ? extractAssistantThinking(assistantMessage) || extractThinkingFromTaggedText(rawText) : "";
88360
- const formattedReasoning = rawThinking ? formatReasoningMessage(rawThinking) : "";
88400
+ const visibleRawThinking = ctx.state.includeReasoning || ctx.state.streamReasoning ? rawThinking || extractThinkingFromTaggedText(rawText) : "";
88401
+ const formattedReasoning = visibleRawThinking ? formatReasoningMessage(visibleRawThinking) : "";
88361
88402
  const trimmedText = text.trim();
88362
88403
  const parsedText = trimmedText ? parseReplyDirectives(stripTrailingDirective(trimmedText)) : null;
88363
88404
  let cleanedText = parsedText?.text ?? "";
@@ -88438,7 +88479,7 @@ function handleMessageEnd(ctx, evt) {
88438
88479
  }
88439
88480
  }
88440
88481
  if (!shouldEmitReasoningBeforeAnswer) maybeEmitReasoning();
88441
- if (ctx.state.streamReasoning && rawThinking) ctx.emitReasoningStream(rawThinking);
88482
+ if (ctx.state.streamReasoning && visibleRawThinking) ctx.emitReasoningStream(visibleRawThinking);
88442
88483
  if (ctx.state.blockReplyBreak === "text_end" && onBlockReply) emitSplitResultAsBlockReply(ctx.consumeReplyDirectives("", { final: true }));
88443
88484
  ctx.state.deltaBuffer = "";
88444
88485
  ctx.state.blockBuffer = "";
@@ -21,16 +21,16 @@ import { t as buildChannelAccountBindings } from "./bindings-DkNVAvqg.js";
21
21
  import { a as createSlackWebClient, c as validateSlackBlocksArray, d as resolveSlackChannelId, i as normalizeSlackOutboundText, l as buildSlackBlocksFallbackText, o as resolveSlackWebClientOptions, s as parseSlackBlocksInput, t as sendMessageSlack, u as parseSlackTarget } from "./send-BLje6ijm.js";
22
22
  import { $ as fetchChannelPermissionsDiscord, A as unpinMessageDiscord, B as listScheduledEventsDiscord, C as editMessageDiscord, Ct as resolveTimestampMs, D as pinMessageDiscord, Dt as normalizeChannelSlug, E as listThreadsDiscord, Et as buildChannelKeyCandidates, F as fetchMemberInfoDiscord, G as uploadStickerDiscord, H as timeoutMemberDiscord, I as fetchRoleInfoDiscord, J as editChannelDiscord, K as createChannelDiscord, L as fetchVoiceStatusDiscord, M as banMemberDiscord, N as createScheduledEventDiscord, O as readMessagesDiscord, Ot as resolveChannelEntryMatchWithFallback, P as fetchChannelInfoDiscord, Q as stripUndefinedFields, R as kickMemberDiscord, S as deleteMessageDiscord, St as resolveDiscordSystemLocation, T as listPinsDiscord, Tt as applyChannelMatchMeta, U as listGuildEmojisDiscord, V as removeRoleDiscord, W as uploadEmojiDiscord, X as removeChannelPermissionDiscord, Y as moveChannelDiscord, Z as setChannelPermissionDiscord, _ as sendPollDiscord, _t as resolveDiscordShouldRequireMention, a as removeReactionDiscord, at as resolveDiscordChannelId, b as sendWebhookMessageDiscord, bt as formatDiscordReactionEmoji, c as formatDiscordComponentEventText, ct as isDiscordGroupAllowedByPolicy, d as parseDiscordModalCustomId, dt as resolveDiscordAllowListMatch, et as hasAnyGuildPermissionDiscord, f as parseDiscordModalCustomIdForCarbon, ft as resolveDiscordChannelConfigWithFallback, g as sendMessageDiscord, gt as resolveDiscordOwnerAllowFrom, h as resolveDiscordModalEntry, ht as resolveDiscordOwnerAccess, i as removeOwnReactionsDiscord, it as parseDiscordTarget, j as addRoleDiscord, k as searchMessagesDiscord, l as parseDiscordComponentCustomId, lt as normalizeDiscordAllowList, m as resolveDiscordComponentEntry, mt as resolveDiscordMemberAccessState, n as fetchReactionsDiscord, nt as createDiscordClient, o as sendDiscordComponentMessage, ot as listDiscordDirectoryGroupsLive, p as readDiscordComponentSpec, pt as resolveDiscordGuildEntry, q as deleteChannelDiscord, r as reactMessageDiscord, rt as createDiscordRestClient, s as createDiscordFormModal, st as listDiscordDirectoryPeersLive, tt as chunkDiscordTextWithMode, u as parseDiscordComponentCustomIdForCarbon, ut as normalizeDiscordSlug, v as sendStickerDiscord, vt as resolveGroupDmAllow, w as fetchMessageDiscord, wt as fetchDiscord, x as createThreadDiscord, xt as formatDiscordUserTag, y as sendVoiceMessageDiscord, yt as shouldEmitDiscordReactionNotification, z as listGuildChannelsDiscord } from "./send-BhQVAABr.js";
23
23
  import { n as generateSecureUuid, t as generateSecureToken } from "./secure-random-CFRVlPvh.js";
24
- import { A as initializeGlobalHookRunner, C as shouldSuppressReasoningPayload, D as normalizeChannelTargetInput, E as buildTargetResolverSignature, O as normalizeTargetForProvider, S as shouldSuppressMessagingToolReplies, T as resolveReplyToMode, _ as applyReplyTagsToPayload, a as normalizeOutboundPayloadsForJson, b as filterMessagingToolMediaDuplicates, c as parseReplyDirectives, d as toInternalMessagePreprocessedContext, f as toInternalMessageReceivedContext, g as fireAndForgetHook, h as toPluginMessageReceivedEvent, i as normalizeOutboundPayloads, k as getGlobalHookRunner, l as splitMediaFromOutput, m as toPluginMessageContext, o as normalizeReplyPayloadsForDelivery, p as toInternalMessageTranscribedContext, r as formatOutboundPayloadLog, s as throwIfAborted, t as deliverOutboundPayloads, u as deriveInboundMessageHookContext, v as applyReplyThreading, w as createReplyToModeFilterForChannel, x as isRenderablePayload, y as filterMessagingToolDuplicates } from "./deliver-BR94HzGu.js";
24
+ import { A as initializeGlobalHookRunner, C as shouldSuppressReasoningPayload, D as normalizeChannelTargetInput, E as buildTargetResolverSignature, O as normalizeTargetForProvider, S as shouldSuppressMessagingToolReplies, T as resolveReplyToMode, _ as applyReplyTagsToPayload, a as normalizeOutboundPayloadsForJson, b as filterMessagingToolMediaDuplicates, c as parseReplyDirectives, d as toInternalMessagePreprocessedContext, f as toInternalMessageReceivedContext, g as fireAndForgetHook, h as toPluginMessageReceivedEvent, i as normalizeOutboundPayloads, k as getGlobalHookRunner, l as splitMediaFromOutput, m as toPluginMessageContext, o as normalizeReplyPayloadsForDelivery, p as toInternalMessageTranscribedContext, r as formatOutboundPayloadLog, s as throwIfAborted, t as deliverOutboundPayloads, u as deriveInboundMessageHookContext, v as applyReplyThreading, w as createReplyToModeFilterForChannel, x as isRenderablePayload, y as filterMessagingToolDuplicates } from "./deliver-DvxmGKU7.js";
25
25
  import { a as logMessageProcessed, c as logWebhookError, d as startDiagnosticHeartbeat, f as stopDiagnosticHeartbeat, i as logLaneEnqueue, l as logWebhookProcessed, m as isDiagnosticsEnabled, o as logMessageQueued, p as emitDiagnosticEvent, r as logLaneDequeue, s as logSessionStateChange, t as diag, u as logWebhookReceived } from "./diagnostic-3CTZSIlz.js";
26
26
  import { r as getDiagnosticSessionState } from "./diagnostic-session-state-iIgQ4O9h.js";
27
27
  import { n as resolveSignalAccount, t as listEnabledSignalAccounts } from "./accounts-ChZmWEdr.js";
28
28
  import { $ as readChannelAllowFromStore, A as describeReplyTarget, B as resolveTelegramStreamMode, C as buildSenderLabel, D as buildTelegramParentPeer, E as buildTelegramGroupPeerId, F as resolveTelegramDirectPeerId, G as resolveSenderAllowMatch$1, H as isSenderAllowed$1, I as resolveTelegramForumThreadId, J as mergeDmAllowFromSources, K as firstDefined$1, L as resolveTelegramGroupAllowFromContext, M as extractTelegramLocation, N as hasBotMention, O as buildTelegramThreadParams, P as normalizeForwardedContext, Q as addChannelAllowFromStoreEntry, R as resolveTelegramMediaPlaceholder, S as buildGroupLabel, T as buildTelegramGroupFrom, U as normalizeAllowFrom$2, V as resolveTelegramThreadSpec, W as normalizeDmAllowFromWithStore$1, X as formatLocationText, Y as resolveGroupAllowFromSources, Z as toLocationContext, _ as resolveTelegramFetch, a as reactMessageTelegram, at as listPairingChannels, b as loadCronStore, c as sendStickerTelegram, ct as resolveTelegramTargetChatType, d as wasSentByBot, et as removeChannelAllowFromStoreEntry, f as isRecoverableTelegramNetworkError, g as wrapFileReferencesInHtml, h as renderTelegramHtmlText, i as editMessageTelegram, it as getPairingAdapter, j as expandTextLinks, k as buildTypingThreadParams, m as markdownToTelegramHtml, n as createForumTopicTelegram, nt as readJsonFileWithFallback, o as sendMessageTelegram, ot as isVoiceCompatibleAudio, p as markdownToTelegramChunks, q as isSenderIdAllowed, r as deleteMessageTelegram, rt as writeJsonFileAtomically, s as sendPollTelegram, st as parseTelegramTarget, t as buildInlineKeyboard, tt as upsertChannelPairingRequest, u as resolveTelegramVoiceSend, v as splitTelegramCaption, w as buildSenderName, x as resolveCronStorePath, y as withTelegramApiErrorLogging, z as resolveTelegramReplyId } from "./send-BKGU5ru4.js";
29
29
  import { c as detectMime, d as imageMimeFromFormat, f as isAudioFileName, g as MAX_IMAGE_BYTES, i as getImageMetadata, l as extensionForMime, m as kindFromMime, p as isGifMedia, s as resizeToJpeg, v as mediaKindFromMime } from "./image-ops-CSEI4iE1.js";
30
- import { _ as resolveAttachmentKind, a as resolveAutoImageModel, b as modelSupportsVision, c as applyTemplate, d as normalizeMediaUnderstandingChatType, f as resolveMediaUnderstandingScope, h as registerUnhandledRejectionHandler, i as normalizeMediaAttachments, l as resolveConcurrency, m as buildRandomTempFilePath, n as buildProviderRegistry, o as resolveMediaAttachmentLocalRoots, p as CLI_OUTPUT_MAX_BUFFER, r as createMediaAttachmentCache, s as runCapability, t as runAudioTranscription, u as resolveTimeoutMs$2, v as findModelInCatalog, x as resolveAliasedOpenAiCompatibleModelId, y as loadModelCatalog } from "./audio-transcription-runner-_HLf10kW.js";
30
+ import { _ as resolveAttachmentKind, a as resolveAutoImageModel, b as modelSupportsVision, c as applyTemplate, d as normalizeMediaUnderstandingChatType, f as resolveMediaUnderstandingScope, h as registerUnhandledRejectionHandler, i as normalizeMediaAttachments, l as resolveConcurrency, m as buildRandomTempFilePath, n as buildProviderRegistry, o as resolveMediaAttachmentLocalRoots, p as CLI_OUTPUT_MAX_BUFFER, r as createMediaAttachmentCache, s as runCapability, t as runAudioTranscription, u as resolveTimeoutMs$2, v as findModelInCatalog, x as resolveAliasedOpenAiCompatibleModelId, y as loadModelCatalog } from "./audio-transcription-runner-BLpgvFWB.js";
31
31
  import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-DdoTtx72.js";
32
32
  import { a as isMarkdownCapableMessageChannel, c as resolveGatewayMessageChannel, d as GATEWAY_CLIENT_MODES, f as GATEWAY_CLIENT_NAMES, i as isInternalMessageChannel, l as resolveMessageChannel, n as isDeliverableMessageChannel, o as listDeliverableMessageChannels, r as isGatewayMessageChannel, s as normalizeMessageChannel, t as INTERNAL_MESSAGE_CHANNEL, u as GATEWAY_CLIENT_IDS } from "./message-channel-CAvovyXo.js";
33
- import { $ as mergeAlsoAllowPolicy, A as isRawApiErrorPayload, B as registerBrowserRoutes, C as isCloudCodeAssistFormatError, D as isFailoverErrorMessage, E as isFailoverAssistantError, F as sanitizeUserFacingText, G as resolveBrowserControlAuth, H as resolveProfile, I as ensureSandboxWorkspaceForSession, J as resolveSandboxConfigForAgent, K as resolveGatewayCredentialsFromConfig, L as resolveSandboxContext, M as isTransientHttpError, N as parseImageDimensionError, O as isLikelyContextOverflowError, P as parseImageSizeError, Q as expandPolicyWithPluginGroups, R as resolveSandboxRuntimeStatus, S as isBillingAssistantError, T as isContextOverflowError, U as getBridgeAuthForPort, V as resolveBrowserConfig, W as ensureBrowserControlAuth, X as buildPluginToolGroups, Y as applyOwnerOnlyToolPolicy, Z as collectExplicitAllowlist, _ as formatBillingErrorMessage, a as isMessagingToolDuplicateNormalized, at as matchesAnyGlobPattern, b as isAuthAssistantError, c as extractToolCallsFromAssistant, ct as resolveBootstrapMaxChars, d as downgradeOpenAIFunctionCallReasoningPairs, et as stripPluginOnlyAllowlist, f as downgradeOpenAIReasoningBlocks, g as formatAssistantErrorText, h as classifyFailoverReason, it as compileGlobPatterns, j as isTimeoutErrorMessage, k as isRateLimitAssistantError, l as extractToolResultId, lt as resolveBootstrapTotalMaxChars, m as BILLING_ERROR_USER_MESSAGE, n as validateGeminiTurns, nt as normalizeToolName, o as normalizeTextForComparison, ot as buildBootstrapContextFiles, p as isGoogleModelApi, q as trimToUndefined$1, r as pickFallbackThinkingLevel, rt as resolveToolProfilePolicy, s as sanitizeSessionMessagesImages, st as ensureSessionHeader, t as validateAnthropicTurns, tt as expandToolGroups, u as sanitizeToolCallIdsForCloudCodeAssist, ut as sanitizeGoogleTurnOrdering, v as formatRawAssistantErrorForUi, w as isCompactionFailureError, x as isAuthPermanentErrorMessage, y as getApiErrorPayloadFingerprint, z as createBrowserRouteContext } from "./pi-embedded-helpers-J2caGJww.js";
33
+ import { $ as expandPolicyWithPluginGroups, A as isRawApiErrorPayload, B as createBrowserRouteContext, C as isCloudCodeAssistFormatError, D as isFailoverErrorMessage, E as isFailoverAssistantError, F as resolveChatUiHintForError, G as ensureBrowserControlAuth, H as resolveBrowserConfig, I as sanitizeUserFacingText, J as trimToUndefined$1, K as resolveBrowserControlAuth, L as ensureSandboxWorkspaceForSession, M as isTransientHttpError, N as parseImageDimensionError, O as isLikelyContextOverflowError, P as parseImageSizeError, Q as collectExplicitAllowlist, R as resolveSandboxContext, S as isBillingAssistantError, T as isContextOverflowError, U as resolveProfile, V as registerBrowserRoutes, W as getBridgeAuthForPort, X as applyOwnerOnlyToolPolicy, Y as resolveSandboxConfigForAgent, Z as buildPluginToolGroups, _ as formatBillingErrorMessage, a as isMessagingToolDuplicateNormalized, at as compileGlobPatterns, b as isAuthAssistantError, c as extractToolCallsFromAssistant, ct as ensureSessionHeader, d as downgradeOpenAIFunctionCallReasoningPairs, dt as sanitizeGoogleTurnOrdering, et as mergeAlsoAllowPolicy, f as downgradeOpenAIReasoningBlocks, g as formatAssistantErrorText, h as classifyFailoverReason, it as resolveToolProfilePolicy, j as isTimeoutErrorMessage, k as isRateLimitAssistantError, l as extractToolResultId, lt as resolveBootstrapMaxChars, m as BILLING_ERROR_USER_MESSAGE, n as validateGeminiTurns, nt as expandToolGroups, o as normalizeTextForComparison, ot as matchesAnyGlobPattern, p as isGoogleModelApi, q as resolveGatewayCredentialsFromConfig, r as pickFallbackThinkingLevel, rt as normalizeToolName, s as sanitizeSessionMessagesImages, st as buildBootstrapContextFiles, t as validateAnthropicTurns, tt as stripPluginOnlyAllowlist, u as sanitizeToolCallIdsForCloudCodeAssist, ut as resolveBootstrapTotalMaxChars, v as formatRawAssistantErrorForUi, w as isCompactionFailureError, x as isAuthPermanentErrorMessage, y as getApiErrorPayloadFingerprint, z as resolveSandboxRuntimeStatus } from "./pi-embedded-helpers-CKEoEHoe.js";
34
34
  import { A as rawDataToString, B as isSecureWebSocketUrl, C as ensureChromeExtensionRelayServer, N as DEFAULT_UPLOAD_DIR, P as resolveExistingPathsWithinRoot, U as DEFAULT_AI_SNAPSHOT_MAX_CHARS, s as resolveLsofCommandSync, z as isLoopbackHost } from "./chrome-DPJGe_wm.js";
35
35
  import { c as assertSandboxPath, d as resolveSandboxedMediaSource, f as applySkillEnvOverrides, i as resolveSkillsPromptForRun, l as resolveSandboxInputPath, n as buildWorkspaceSkillSnapshot, p as applySkillEnvOverridesFromSnapshot, r as loadWorkspaceSkillEntries, s as assertMediaNotDataUrl } from "./skills-Dqjpw7tL.js";
36
36
  import { t as PATH_ALIAS_POLICIES } from "./path-alias-guards-CV563R7u.js";
@@ -47,7 +47,7 @@ import { i as resolveSessionTranscriptPath, n as resolveSessionFilePath, o as re
47
47
  import { n as onSessionTranscriptUpdate, t as emitSessionTranscriptUpdate } from "./transcript-events-Bq_-a4up.js";
48
48
  import { a as canonicalizeBase64, i as resolveImageSanitizationLimits, n as sanitizeImageBlocks, o as estimateBase64DecodedBytes, r as sanitizeToolResultImages } from "./tool-images-CWj711f4.js";
49
49
  import { a as normalizeReasoningLevel, c as normalizeVerboseLevel, i as normalizeElevatedLevel, l as resolveResponseUsageMode, n as formatXHighModelHint, o as normalizeThinkLevel, s as normalizeUsageDisplay, t as formatThinkingLevels, u as supportsXHighThinking } from "./thinking-BU9gpqtT.js";
50
- import { C as extractTextFromChatContent, S as isInsideCode, T as ensureOpenClawModelsJson, _ as stripThinkingTagsFromText, a as decodeDataUrl, b as stripReasoningTagsFromText, c as extractAssistantThinking, d as formatReasoningMessage, f as inferToolMetaFromArgs, g as stripMinimaxToolCallXml, h as stripDowngradedToolCallText, i as coerceImageModelConfig, l as extractThinkingFromTaggedStream, m as promoteThinkingTagsToBlocks, o as resolveProviderVisionModelFromConfig, p as isAssistantMessage, r as coerceImageAssistantText, s as extractAssistantText$1, u as extractThinkingFromTaggedText, v as formatToolSummary, w as minimaxUnderstandImage, x as findCodeRegions, y as resolveToolDisplay } from "./image-XqGcCt9q.js";
50
+ import { C as extractTextFromChatContent, S as isInsideCode, T as ensureOpenClawModelsJson, _ as stripThinkingTagsFromText, a as decodeDataUrl, b as stripReasoningTagsFromText, c as extractAssistantThinking, d as formatReasoningMessage, f as inferToolMetaFromArgs, g as stripMinimaxToolCallXml, h as stripDowngradedToolCallText, i as coerceImageModelConfig, l as extractThinkingFromTaggedStream, m as promoteThinkingTagsToBlocks, o as resolveProviderVisionModelFromConfig, p as isAssistantMessage, r as coerceImageAssistantText, s as extractAssistantText$1, u as extractThinkingFromTaggedText, v as formatToolSummary, w as minimaxUnderstandImage, x as findCodeRegions, y as resolveToolDisplay } from "./image-5kjT0Ifv.js";
51
51
  import { a as getDefaultMediaLocalRoots, i as getAgentScopedMediaLocalRoots, n as fetchRemoteMedia, r as readResponseWithLimit, t as MediaFetchError } from "./fetch-6en6KJc_.js";
52
52
  import { n as fetchWithTimeout, t as bindAbortRelay } from "./fetch-timeout-BVa_Fx_T.js";
53
53
  import { n as withStrictGuardedFetchMode, r as withTrustedEnvProxyGuardedFetchMode, t as fetchWithSsrFGuard } from "./fetch-guard-0TjzpVEX.js";
@@ -7812,6 +7812,7 @@ const ChatEventSchema = Type.Object({
7812
7812
  ]),
7813
7813
  message: Type.Optional(Type.Unknown()),
7814
7814
  errorMessage: Type.Optional(Type.String()),
7815
+ uiHint: Type.Optional(Type.String()),
7815
7816
  usage: Type.Optional(Type.Unknown()),
7816
7817
  stopReason: Type.Optional(Type.String())
7817
7818
  }, { additionalProperties: false });
@@ -9711,7 +9712,7 @@ async function routeReply(params) {
9711
9712
  const resolvedReplyToId = replyToId ?? (channelId === "slack" && threadId != null && threadId !== "" ? String(threadId) : void 0);
9712
9713
  const resolvedThreadId = channelId === "slack" ? null : threadId ?? null;
9713
9714
  try {
9714
- const { deliverOutboundPayloads } = await import("./deliver-BR94HzGu.js").then((n) => n.n);
9715
+ const { deliverOutboundPayloads } = await import("./deliver-DvxmGKU7.js").then((n) => n.n);
9715
9716
  const outboundSession = buildOutboundSessionContext({
9716
9717
  cfg,
9717
9718
  agentId: resolvedAgentId,
@@ -14269,7 +14270,7 @@ async function sendTranscriptEcho(params) {
14269
14270
  }
14270
14271
  const text = formatEchoTranscript(transcript, params.format ?? DEFAULT_ECHO_TRANSCRIPT_FORMAT);
14271
14272
  try {
14272
- const { deliverOutboundPayloads } = await import("./deliver-BR94HzGu.js").then((n) => n.n);
14273
+ const { deliverOutboundPayloads } = await import("./deliver-DvxmGKU7.js").then((n) => n.n);
14273
14274
  await deliverOutboundPayloads({
14274
14275
  cfg,
14275
14276
  channel: normalizedChannel,
@@ -49769,7 +49770,7 @@ async function deliverSessionMaintenanceWarning(params) {
49769
49770
  return;
49770
49771
  }
49771
49772
  try {
49772
- const { deliverOutboundPayloads } = await import("./deliver-BR94HzGu.js").then((n) => n.n);
49773
+ const { deliverOutboundPayloads } = await import("./deliver-DvxmGKU7.js").then((n) => n.n);
49773
49774
  const outboundSession = buildOutboundSessionContext({
49774
49775
  cfg: params.cfg,
49775
49776
  sessionKey: params.sessionKey
@@ -54711,7 +54712,7 @@ async function describeStickerImage(params) {
54711
54712
  logVerbose(`telegram: describing sticker with ${provider}/${model}`);
54712
54713
  try {
54713
54714
  const buffer = await fs.readFile(imagePath);
54714
- const { describeImageWithModel } = await import("./image-XqGcCt9q.js").then((n) => n.n);
54715
+ const { describeImageWithModel } = await import("./image-5kjT0Ifv.js").then((n) => n.n);
54715
54716
  return (await describeImageWithModel({
54716
54717
  buffer,
54717
54718
  fileName: "sticker.webp",
@@ -56465,7 +56466,7 @@ async function resolveDiscordPreflightAudioMentionContext(params) {
56465
56466
  const needsPreflightTranscription = !params.isDirectMessage && params.shouldRequireMention && hasAudioAttachment && !hasTypedText && params.mentionRegexes.length > 0;
56466
56467
  let transcript;
56467
56468
  if (needsPreflightTranscription) try {
56468
- const { transcribeFirstAudio } = await import("./audio-preflight-BxZJpmRQ.js");
56469
+ const { transcribeFirstAudio } = await import("./audio-preflight-CoLgRr1u.js");
56469
56470
  const audioUrls = audioAttachments.map((att) => att.url).filter((url) => typeof url === "string" && url.length > 0);
56470
56471
  if (audioUrls.length > 0) transcript = await transcribeFirstAudio({
56471
56472
  ctx: {
@@ -61007,7 +61008,7 @@ function createOutboundSendDepsFromCliSource(deps) {
61007
61008
  function createDefaultDeps() {
61008
61009
  return {
61009
61010
  sendMessageWhatsApp: async (...args) => {
61010
- const { sendMessageWhatsApp } = await import("./web-CadeCgho.js");
61011
+ const { sendMessageWhatsApp } = await import("./web-CUoANEo6.js");
61011
61012
  return await sendMessageWhatsApp(...args);
61012
61013
  },
61013
61014
  sendMessageTelegram: async (...args) => {
@@ -76480,7 +76481,7 @@ const buildTelegramMessageContext = async ({ primaryCtx, allMedia, replyMedia =
76480
76481
  const disableAudioPreflight = firstDefined$1(topicConfig?.disableAudioPreflight, groupConfig?.disableAudioPreflight) === true;
76481
76482
  let preflightTranscript;
76482
76483
  if (isGroup && requireMention && hasAudio && !hasUserText && mentionRegexes.length > 0 && !disableAudioPreflight) try {
76483
- const { transcribeFirstAudio } = await import("./audio-preflight-BxZJpmRQ.js");
76484
+ const { transcribeFirstAudio } = await import("./audio-preflight-CoLgRr1u.js");
76484
76485
  preflightTranscript = await transcribeFirstAudio({
76485
76486
  ctx: {
76486
76487
  MediaPaths: allMedia.length > 0 ? allMedia.map((m) => m.path) : void 0,
@@ -79265,7 +79266,7 @@ function loadWebLoginQr() {
79265
79266
  return webLoginQrPromise;
79266
79267
  }
79267
79268
  function loadWebChannel() {
79268
- webChannelPromise ??= import("./web-CadeCgho.js");
79269
+ webChannelPromise ??= import("./web-CUoANEo6.js");
79269
79270
  return webChannelPromise;
79270
79271
  }
79271
79272
  function loadWhatsAppActions() {
@@ -88117,6 +88118,11 @@ function handleAgentEnd(ctx) {
88117
88118
  const lastAssistant = ctx.state.lastAssistant;
88118
88119
  const isError = isAssistantMessage(lastAssistant) && lastAssistant.stopReason === "error";
88119
88120
  if (isError && lastAssistant) {
88121
+ const uiHint = resolveChatUiHintForError({
88122
+ provider: lastAssistant.provider,
88123
+ model: lastAssistant.model,
88124
+ rawError: lastAssistant.errorMessage
88125
+ });
88120
88126
  const errorText = (formatAssistantErrorText(lastAssistant, {
88121
88127
  cfg: ctx.params.config,
88122
88128
  sessionKey: ctx.params.sessionKey,
@@ -88130,6 +88136,7 @@ function handleAgentEnd(ctx) {
88130
88136
  data: {
88131
88137
  phase: "error",
88132
88138
  error: errorText,
88139
+ ...uiHint ? { uiHint } : {},
88133
88140
  endedAt: Date.now()
88134
88141
  }
88135
88142
  });
@@ -88137,7 +88144,8 @@ function handleAgentEnd(ctx) {
88137
88144
  stream: "lifecycle",
88138
88145
  data: {
88139
88146
  phase: "error",
88140
- error: errorText
88147
+ error: errorText,
88148
+ ...uiHint ? { uiHint } : {}
88141
88149
  }
88142
88150
  });
88143
88151
  } else {
@@ -88203,6 +88211,34 @@ function resolveSilentReplyFallbackText(params) {
88203
88211
  if (!fallback) return params.text;
88204
88212
  return fallback;
88205
88213
  }
88214
+ function summarizeAssistantMessageDebug(message) {
88215
+ const stopReason = typeof message.stopReason === "string" ? message.stopReason ?? void 0 : void 0;
88216
+ const content = message.content;
88217
+ if (!Array.isArray(content)) return {
88218
+ stopReason,
88219
+ contentTypes: []
88220
+ };
88221
+ const contentTypes = [];
88222
+ const toolCalls = [];
88223
+ for (const block of content) {
88224
+ if (!block || typeof block !== "object") {
88225
+ contentTypes.push(typeof block);
88226
+ continue;
88227
+ }
88228
+ const record = block;
88229
+ const blockType = typeof record.type === "string" ? record.type : "unknown";
88230
+ contentTypes.push(blockType);
88231
+ if (blockType === "toolCall") toolCalls.push({
88232
+ id: typeof record.id === "string" ? record.id : void 0,
88233
+ name: typeof record.name === "string" ? record.name : void 0
88234
+ });
88235
+ }
88236
+ return {
88237
+ stopReason,
88238
+ contentTypes,
88239
+ toolCalls: toolCalls.length > 0 ? toolCalls : void 0
88240
+ };
88241
+ }
88206
88242
  function handleMessageStart(ctx, evt) {
88207
88243
  if (evt.message?.role !== "assistant") return;
88208
88244
  ctx.resetAssistantMessageState(ctx.state.assistantTexts.length);
@@ -88331,13 +88367,18 @@ function handleMessageEnd(ctx, evt) {
88331
88367
  ctx.recordAssistantUsage(assistantMessage.usage);
88332
88368
  promoteThinkingTagsToBlocks(assistantMessage);
88333
88369
  const rawText = extractAssistantText$1(assistantMessage);
88370
+ const rawThinking = extractAssistantThinking(assistantMessage);
88371
+ const debugSummary = summarizeAssistantMessageDebug(assistantMessage);
88334
88372
  appendRawStream({
88335
88373
  ts: Date.now(),
88336
88374
  event: "assistant_message_end",
88337
88375
  runId: ctx.params.runId,
88338
88376
  sessionId: ctx.params.session.id,
88339
88377
  rawText,
88340
- rawThinking: extractAssistantThinking(assistantMessage)
88378
+ rawThinking,
88379
+ stopReason: debugSummary.stopReason,
88380
+ contentTypes: debugSummary.contentTypes,
88381
+ toolCalls: debugSummary.toolCalls
88341
88382
  });
88342
88383
  const text = resolveSilentReplyFallbackText({
88343
88384
  text: ctx.stripBlockTags(rawText, {
@@ -88346,8 +88387,8 @@ function handleMessageEnd(ctx, evt) {
88346
88387
  }),
88347
88388
  messagingToolSentTexts: ctx.state.messagingToolSentTexts
88348
88389
  });
88349
- const rawThinking = ctx.state.includeReasoning || ctx.state.streamReasoning ? extractAssistantThinking(assistantMessage) || extractThinkingFromTaggedText(rawText) : "";
88350
- const formattedReasoning = rawThinking ? formatReasoningMessage(rawThinking) : "";
88390
+ const visibleRawThinking = ctx.state.includeReasoning || ctx.state.streamReasoning ? rawThinking || extractThinkingFromTaggedText(rawText) : "";
88391
+ const formattedReasoning = visibleRawThinking ? formatReasoningMessage(visibleRawThinking) : "";
88351
88392
  const trimmedText = text.trim();
88352
88393
  const parsedText = trimmedText ? parseReplyDirectives(stripTrailingDirective(trimmedText)) : null;
88353
88394
  let cleanedText = parsedText?.text ?? "";
@@ -88428,7 +88469,7 @@ function handleMessageEnd(ctx, evt) {
88428
88469
  }
88429
88470
  }
88430
88471
  if (!shouldEmitReasoningBeforeAnswer) maybeEmitReasoning();
88431
- if (ctx.state.streamReasoning && rawThinking) ctx.emitReasoningStream(rawThinking);
88472
+ if (ctx.state.streamReasoning && visibleRawThinking) ctx.emitReasoningStream(visibleRawThinking);
88432
88473
  if (ctx.state.blockReplyBreak === "text_end" && onBlockReply) emitSplitResultAsBlockReply(ctx.consumeReplyDirectives("", { final: true }));
88433
88474
  ctx.state.deltaBuffer = "";
88434
88475
  ctx.state.blockBuffer = "";
@@ -6084,8 +6084,20 @@ function formatBillingErrorMessage(provider, model) {
6084
6084
  return "⚠️ API provider returned a billing error — your API key has run out of credits or has an insufficient balance. Check your provider's billing dashboard and top up or switch to a different API key.";
6085
6085
  }
6086
6086
  const BILLING_ERROR_USER_MESSAGE = formatBillingErrorMessage();
6087
+ const CHAT_UI_HINT_BITSEEK_TOPUP_REQUIRED = "bitseek_topup_required";
6087
6088
  const RATE_LIMIT_ERROR_USER_MESSAGE = "⚠️ API rate limit reached. Please try again later.";
6088
6089
  const OVERLOADED_ERROR_USER_MESSAGE = "The AI service is temporarily overloaded. Please try again in a moment.";
6090
+ const BITSEEK_TOPUP_TRIGGER_TEXT = "credits not enough";
6091
+ function isBitSeekAutoModel(provider, model) {
6092
+ return provider?.trim().toLowerCase() === "bitseek" && model?.trim().toLowerCase() === "auto";
6093
+ }
6094
+ function resolveChatUiHintForError(params) {
6095
+ const rawError = params.rawError?.trim();
6096
+ if (!rawError) return;
6097
+ if (!isBitSeekAutoModel(params.provider, params.model)) return;
6098
+ if (!rawError.toLowerCase().includes(BITSEEK_TOPUP_TRIGGER_TEXT)) return;
6099
+ return CHAT_UI_HINT_BITSEEK_TOPUP_REQUIRED;
6100
+ }
6089
6101
  function formatRateLimitOrOverloadedErrorCopy(raw) {
6090
6102
  if (isRateLimitErrorMessage(raw)) return RATE_LIMIT_ERROR_USER_MESSAGE;
6091
6103
  if (isOverloadedErrorMessage(raw)) return OVERLOADED_ERROR_USER_MESSAGE;
@@ -7144,4 +7156,4 @@ function validateAnthropicTurns(messages) {
7144
7156
  }
7145
7157
 
7146
7158
  //#endregion
7147
- export { mergeAlsoAllowPolicy as $, isRawApiErrorPayload as A, registerBrowserRoutes as B, isCloudCodeAssistFormatError as C, isFailoverErrorMessage as D, isFailoverAssistantError as E, sanitizeUserFacingText as F, resolveBrowserControlAuth as G, resolveProfile as H, ensureSandboxWorkspaceForSession as I, resolveSandboxConfigForAgent as J, resolveGatewayCredentialsFromConfig as K, resolveSandboxContext as L, isTransientHttpError as M, parseImageDimensionError as N, isLikelyContextOverflowError as O, parseImageSizeError as P, expandPolicyWithPluginGroups as Q, resolveSandboxRuntimeStatus as R, isBillingAssistantError as S, isContextOverflowError as T, getBridgeAuthForPort as U, resolveBrowserConfig as V, ensureBrowserControlAuth as W, buildPluginToolGroups as X, applyOwnerOnlyToolPolicy as Y, collectExplicitAllowlist as Z, formatBillingErrorMessage as _, isMessagingToolDuplicateNormalized as a, matchesAnyGlobPattern as at, isAuthAssistantError as b, extractToolCallsFromAssistant as c, resolveBootstrapMaxChars as ct, downgradeOpenAIFunctionCallReasoningPairs as d, stripPluginOnlyAllowlist as et, downgradeOpenAIReasoningBlocks as f, formatAssistantErrorText as g, classifyFailoverReason as h, isMessagingToolDuplicate as i, compileGlobPatterns as it, isTimeoutErrorMessage as j, isRateLimitAssistantError as k, extractToolResultId as l, resolveBootstrapTotalMaxChars as lt, BILLING_ERROR_USER_MESSAGE as m, validateGeminiTurns as n, normalizeToolName as nt, normalizeTextForComparison as o, buildBootstrapContextFiles as ot, isGoogleModelApi as p, trimToUndefined as q, pickFallbackThinkingLevel as r, resolveToolProfilePolicy as rt, sanitizeSessionMessagesImages as s, ensureSessionHeader as st, validateAnthropicTurns as t, expandToolGroups as tt, sanitizeToolCallIdsForCloudCodeAssist as u, sanitizeGoogleTurnOrdering as ut, formatRawAssistantErrorForUi as v, isCompactionFailureError as w, isAuthPermanentErrorMessage as x, getApiErrorPayloadFingerprint as y, createBrowserRouteContext as z };
7159
+ export { expandPolicyWithPluginGroups as $, isRawApiErrorPayload as A, createBrowserRouteContext as B, isCloudCodeAssistFormatError as C, isFailoverErrorMessage as D, isFailoverAssistantError as E, resolveChatUiHintForError as F, ensureBrowserControlAuth as G, resolveBrowserConfig as H, sanitizeUserFacingText as I, trimToUndefined as J, resolveBrowserControlAuth as K, ensureSandboxWorkspaceForSession as L, isTransientHttpError as M, parseImageDimensionError as N, isLikelyContextOverflowError as O, parseImageSizeError as P, collectExplicitAllowlist as Q, resolveSandboxContext as R, isBillingAssistantError as S, isContextOverflowError as T, resolveProfile as U, registerBrowserRoutes as V, getBridgeAuthForPort as W, applyOwnerOnlyToolPolicy as X, resolveSandboxConfigForAgent as Y, buildPluginToolGroups as Z, formatBillingErrorMessage as _, isMessagingToolDuplicateNormalized as a, compileGlobPatterns as at, isAuthAssistantError as b, extractToolCallsFromAssistant as c, ensureSessionHeader as ct, downgradeOpenAIFunctionCallReasoningPairs as d, sanitizeGoogleTurnOrdering as dt, mergeAlsoAllowPolicy as et, downgradeOpenAIReasoningBlocks as f, formatAssistantErrorText as g, classifyFailoverReason as h, isMessagingToolDuplicate as i, resolveToolProfilePolicy as it, isTimeoutErrorMessage as j, isRateLimitAssistantError as k, extractToolResultId as l, resolveBootstrapMaxChars as lt, BILLING_ERROR_USER_MESSAGE as m, validateGeminiTurns as n, expandToolGroups as nt, normalizeTextForComparison as o, matchesAnyGlobPattern as ot, isGoogleModelApi as p, resolveGatewayCredentialsFromConfig as q, pickFallbackThinkingLevel as r, normalizeToolName as rt, sanitizeSessionMessagesImages as s, buildBootstrapContextFiles as st, validateAnthropicTurns as t, stripPluginOnlyAllowlist as tt, sanitizeToolCallIdsForCloudCodeAssist as u, resolveBootstrapTotalMaxChars as ut, formatRawAssistantErrorForUi as v, isCompactionFailureError as w, isAuthPermanentErrorMessage as x, getApiErrorPayloadFingerprint as y, resolveSandboxRuntimeStatus as z };
@@ -6086,8 +6086,20 @@ function formatBillingErrorMessage(provider, model) {
6086
6086
  return "⚠️ API provider returned a billing error — your API key has run out of credits or has an insufficient balance. Check your provider's billing dashboard and top up or switch to a different API key.";
6087
6087
  }
6088
6088
  const BILLING_ERROR_USER_MESSAGE = formatBillingErrorMessage();
6089
+ const CHAT_UI_HINT_BITSEEK_TOPUP_REQUIRED = "bitseek_topup_required";
6089
6090
  const RATE_LIMIT_ERROR_USER_MESSAGE = "⚠️ API rate limit reached. Please try again later.";
6090
6091
  const OVERLOADED_ERROR_USER_MESSAGE = "The AI service is temporarily overloaded. Please try again in a moment.";
6092
+ const BITSEEK_TOPUP_TRIGGER_TEXT = "credits not enough";
6093
+ function isBitSeekAutoModel(provider, model) {
6094
+ return provider?.trim().toLowerCase() === "bitseek" && model?.trim().toLowerCase() === "auto";
6095
+ }
6096
+ function resolveChatUiHintForError(params) {
6097
+ const rawError = params.rawError?.trim();
6098
+ if (!rawError) return;
6099
+ if (!isBitSeekAutoModel(params.provider, params.model)) return;
6100
+ if (!rawError.toLowerCase().includes(BITSEEK_TOPUP_TRIGGER_TEXT)) return;
6101
+ return CHAT_UI_HINT_BITSEEK_TOPUP_REQUIRED;
6102
+ }
6091
6103
  function formatRateLimitOrOverloadedErrorCopy(raw) {
6092
6104
  if (isRateLimitErrorMessage(raw)) return RATE_LIMIT_ERROR_USER_MESSAGE;
6093
6105
  if (isOverloadedErrorMessage(raw)) return OVERLOADED_ERROR_USER_MESSAGE;
@@ -7146,4 +7158,4 @@ function validateAnthropicTurns(messages) {
7146
7158
  }
7147
7159
 
7148
7160
  //#endregion
7149
- export { mergeAlsoAllowPolicy as $, isRawApiErrorPayload as A, registerBrowserRoutes as B, isCloudCodeAssistFormatError as C, isFailoverErrorMessage as D, isFailoverAssistantError as E, sanitizeUserFacingText as F, resolveBrowserControlAuth as G, resolveProfile as H, ensureSandboxWorkspaceForSession as I, resolveSandboxConfigForAgent as J, resolveGatewayCredentialsFromConfig as K, resolveSandboxContext as L, isTransientHttpError as M, parseImageDimensionError as N, isLikelyContextOverflowError as O, parseImageSizeError as P, expandPolicyWithPluginGroups as Q, resolveSandboxRuntimeStatus as R, isBillingAssistantError as S, isContextOverflowError as T, getBridgeAuthForPort as U, resolveBrowserConfig as V, ensureBrowserControlAuth as W, buildPluginToolGroups as X, applyOwnerOnlyToolPolicy as Y, collectExplicitAllowlist as Z, formatBillingErrorMessage as _, isMessagingToolDuplicateNormalized as a, matchesAnyGlobPattern as at, isAuthAssistantError as b, extractToolCallsFromAssistant as c, resolveBootstrapMaxChars as ct, downgradeOpenAIFunctionCallReasoningPairs as d, stripPluginOnlyAllowlist as et, downgradeOpenAIReasoningBlocks as f, formatAssistantErrorText as g, classifyFailoverReason as h, isMessagingToolDuplicate as i, compileGlobPatterns as it, isTimeoutErrorMessage as j, isRateLimitAssistantError as k, extractToolResultId as l, resolveBootstrapTotalMaxChars as lt, BILLING_ERROR_USER_MESSAGE as m, validateGeminiTurns as n, normalizeToolName as nt, normalizeTextForComparison as o, buildBootstrapContextFiles as ot, isGoogleModelApi as p, trimToUndefined as q, pickFallbackThinkingLevel as r, resolveToolProfilePolicy as rt, sanitizeSessionMessagesImages as s, ensureSessionHeader as st, validateAnthropicTurns as t, expandToolGroups as tt, sanitizeToolCallIdsForCloudCodeAssist as u, sanitizeGoogleTurnOrdering as ut, formatRawAssistantErrorForUi as v, isCompactionFailureError as w, isAuthPermanentErrorMessage as x, getApiErrorPayloadFingerprint as y, createBrowserRouteContext as z };
7161
+ export { expandPolicyWithPluginGroups as $, isRawApiErrorPayload as A, createBrowserRouteContext as B, isCloudCodeAssistFormatError as C, isFailoverErrorMessage as D, isFailoverAssistantError as E, resolveChatUiHintForError as F, ensureBrowserControlAuth as G, resolveBrowserConfig as H, sanitizeUserFacingText as I, trimToUndefined as J, resolveBrowserControlAuth as K, ensureSandboxWorkspaceForSession as L, isTransientHttpError as M, parseImageDimensionError as N, isLikelyContextOverflowError as O, parseImageSizeError as P, collectExplicitAllowlist as Q, resolveSandboxContext as R, isBillingAssistantError as S, isContextOverflowError as T, resolveProfile as U, registerBrowserRoutes as V, getBridgeAuthForPort as W, applyOwnerOnlyToolPolicy as X, resolveSandboxConfigForAgent as Y, buildPluginToolGroups as Z, formatBillingErrorMessage as _, isMessagingToolDuplicateNormalized as a, compileGlobPatterns as at, isAuthAssistantError as b, extractToolCallsFromAssistant as c, ensureSessionHeader as ct, downgradeOpenAIFunctionCallReasoningPairs as d, sanitizeGoogleTurnOrdering as dt, mergeAlsoAllowPolicy as et, downgradeOpenAIReasoningBlocks as f, formatAssistantErrorText as g, classifyFailoverReason as h, isMessagingToolDuplicate as i, resolveToolProfilePolicy as it, isTimeoutErrorMessage as j, isRateLimitAssistantError as k, extractToolResultId as l, resolveBootstrapMaxChars as lt, BILLING_ERROR_USER_MESSAGE as m, validateGeminiTurns as n, expandToolGroups as nt, normalizeTextForComparison as o, matchesAnyGlobPattern as ot, isGoogleModelApi as p, resolveGatewayCredentialsFromConfig as q, pickFallbackThinkingLevel as r, normalizeToolName as rt, sanitizeSessionMessagesImages as s, buildBootstrapContextFiles as st, validateAnthropicTurns as t, stripPluginOnlyAllowlist as tt, sanitizeToolCallIdsForCloudCodeAssist as u, resolveBootstrapTotalMaxChars as ut, formatRawAssistantErrorForUi as v, isCompactionFailureError as w, isAuthPermanentErrorMessage as x, getApiErrorPayloadFingerprint as y, resolveSandboxRuntimeStatus as z };
@@ -187,8 +187,20 @@ function formatBillingErrorMessage(provider, model) {
187
187
  return "⚠️ API provider returned a billing error — your API key has run out of credits or has an insufficient balance. Check your provider's billing dashboard and top up or switch to a different API key.";
188
188
  }
189
189
  const BILLING_ERROR_USER_MESSAGE = formatBillingErrorMessage();
190
+ const CHAT_UI_HINT_BITSEEK_TOPUP_REQUIRED = "bitseek_topup_required";
190
191
  const RATE_LIMIT_ERROR_USER_MESSAGE = "⚠️ API rate limit reached. Please try again later.";
191
192
  const OVERLOADED_ERROR_USER_MESSAGE = "The AI service is temporarily overloaded. Please try again in a moment.";
193
+ const BITSEEK_TOPUP_TRIGGER_TEXT = "credits not enough";
194
+ function isBitSeekAutoModel(provider, model) {
195
+ return provider?.trim().toLowerCase() === "bitseek" && model?.trim().toLowerCase() === "auto";
196
+ }
197
+ function resolveChatUiHintForError(params) {
198
+ const rawError = params.rawError?.trim();
199
+ if (!rawError) return;
200
+ if (!isBitSeekAutoModel(params.provider, params.model)) return;
201
+ if (!rawError.toLowerCase().includes(BITSEEK_TOPUP_TRIGGER_TEXT)) return;
202
+ return CHAT_UI_HINT_BITSEEK_TOPUP_REQUIRED;
203
+ }
192
204
  function formatRateLimitOrOverloadedErrorCopy(raw) {
193
205
  if (isRateLimitErrorMessage(raw)) return RATE_LIMIT_ERROR_USER_MESSAGE;
194
206
  if (isOverloadedErrorMessage(raw)) return OVERLOADED_ERROR_USER_MESSAGE;
@@ -1247,4 +1259,4 @@ function validateAnthropicTurns(messages) {
1247
1259
  }
1248
1260
 
1249
1261
  //#endregion
1250
- export { isRawApiErrorPayload as A, sanitizeGoogleTurnOrdering as B, isCloudCodeAssistFormatError as C, isFailoverErrorMessage as D, isFailoverAssistantError as E, sanitizeUserFacingText as F, buildBootstrapContextFiles as I, ensureSessionHeader as L, isTransientHttpError as M, parseImageDimensionError as N, isLikelyContextOverflowError as O, parseImageSizeError as P, resolveBootstrapMaxChars as R, isBillingAssistantError as S, isContextOverflowError as T, formatBillingErrorMessage as _, isMessagingToolDuplicateNormalized as a, isAuthAssistantError as b, extractToolCallsFromAssistant as c, downgradeOpenAIFunctionCallReasoningPairs as d, downgradeOpenAIReasoningBlocks as f, formatAssistantErrorText as g, classifyFailoverReason as h, isMessagingToolDuplicate as i, isTimeoutErrorMessage as j, isRateLimitAssistantError as k, extractToolResultId as l, BILLING_ERROR_USER_MESSAGE as m, validateGeminiTurns as n, normalizeTextForComparison as o, isGoogleModelApi as p, pickFallbackThinkingLevel as r, sanitizeSessionMessagesImages as s, validateAnthropicTurns as t, sanitizeToolCallIdsForCloudCodeAssist as u, formatRawAssistantErrorForUi as v, isCompactionFailureError as w, isAuthPermanentErrorMessage as x, getApiErrorPayloadFingerprint as y, resolveBootstrapTotalMaxChars as z };
1262
+ export { isRawApiErrorPayload as A, resolveBootstrapTotalMaxChars as B, isCloudCodeAssistFormatError as C, isFailoverErrorMessage as D, isFailoverAssistantError as E, resolveChatUiHintForError as F, sanitizeUserFacingText as I, buildBootstrapContextFiles as L, isTransientHttpError as M, parseImageDimensionError as N, isLikelyContextOverflowError as O, parseImageSizeError as P, ensureSessionHeader as R, isBillingAssistantError as S, isContextOverflowError as T, sanitizeGoogleTurnOrdering as V, formatBillingErrorMessage as _, isMessagingToolDuplicateNormalized as a, isAuthAssistantError as b, extractToolCallsFromAssistant as c, downgradeOpenAIFunctionCallReasoningPairs as d, downgradeOpenAIReasoningBlocks as f, formatAssistantErrorText as g, classifyFailoverReason as h, isMessagingToolDuplicate as i, isTimeoutErrorMessage as j, isRateLimitAssistantError as k, extractToolResultId as l, BILLING_ERROR_USER_MESSAGE as m, validateGeminiTurns as n, normalizeTextForComparison as o, isGoogleModelApi as p, pickFallbackThinkingLevel as r, sanitizeSessionMessagesImages as s, validateAnthropicTurns as t, sanitizeToolCallIdsForCloudCodeAssist as u, formatRawAssistantErrorForUi as v, isCompactionFailureError as w, isAuthPermanentErrorMessage as x, getApiErrorPayloadFingerprint as y, resolveBootstrapMaxChars as z };