@bitseek/claw 1.3.10-beta.1 → 1.3.10

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 (188) hide show
  1. package/dist/{acp-cli-BW0Dvkhh.js → acp-cli-BKsxHhdT.js} +2 -2
  2. package/dist/{acp-cli-Bt83My-G.js → acp-cli-KBNX_uXy.js} +2 -2
  3. package/dist/{agents-CfwaUUzc.js → agents-CSco3QCV.js} +5 -5
  4. package/dist/{agents.config-DHX7f-II.js → agents.config-Dzz_a9Mp.js} +1 -1
  5. package/dist/{agents.config-YFwIb3TI.js → agents.config-LYVTdqX3.js} +1 -1
  6. package/dist/{audio-preflight-Be5qvEQA.js → audio-preflight-0cqr2ck2.js} +3 -3
  7. package/dist/{audio-preflight-CRllHcyv.js → audio-preflight-COA5tnZv.js} +3 -3
  8. package/dist/{audio-preflight-BxZJpmRQ.js → audio-preflight-CoLgRr1u.js} +3 -3
  9. package/dist/{audio-preflight-UJQ0M6Hl.js → audio-preflight-q7ZFguqv.js} +3 -3
  10. package/dist/{audio-transcription-runner-Dnkt3gmf.js → audio-transcription-runner--RGWC8nR.js} +1 -1
  11. package/dist/{audio-transcription-runner-_HLf10kW.js → audio-transcription-runner-BLpgvFWB.js} +1 -1
  12. package/dist/{audio-transcription-runner-DVI-SHAn.js → audio-transcription-runner-CrM5-5xi.js} +1 -1
  13. package/dist/{audio-transcription-runner-WwCG9VCF.js → audio-transcription-runner-s4TXhBuF.js} +1 -1
  14. package/dist/{audit-Ct605ugr.js → audit-D013ewlH.js} +3 -3
  15. package/dist/{audit-D-QnHZqm.js → audit-l_hNB_7d.js} +3 -3
  16. package/dist/{auth-choice-CYJe-sOy.js → auth-choice-BRVQOSOG.js} +2 -2
  17. package/dist/{auth-choice-C2N-LUBR.js → auth-choice-DzsegmXk.js} +2 -2
  18. package/dist/{banner-C4GZFnfu.js → banner-CZb1jHEj.js} +1 -1
  19. package/dist/{browser-cli-DGLAbUwi.js → browser-cli-DtLO_KqJ.js} +3 -3
  20. package/dist/{browser-cli-D2wMcHia.js → browser-cli-VBhMcj3d.js} +3 -3
  21. package/dist/build-info.json +3 -3
  22. package/dist/bundled/boot-md/handler.js +5 -5
  23. package/dist/bundled/session-memory/handler.js +5 -5
  24. package/dist/{call-Dx2aHVrt.js → call-BxxjyXST.js} +1 -1
  25. package/dist/{call-BdLuBL48.js → call-DU_f0KMj.js} +1 -1
  26. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  27. package/dist/{channel-options-MWKuSMlJ.js → channel-options-BpjOUwv4.js} +1 -1
  28. package/dist/{channel-options-Df9B8tD2.js → channel-options-CwgtYRMM.js} +1 -1
  29. package/dist/{channel-web-CmZ5LJFz.js → channel-web-Cv_ZFOZJ.js} +2 -2
  30. package/dist/{channel-web-CZj36UOq.js → channel-web-DekWEF-x.js} +2 -2
  31. package/dist/{channels-cli-CrpfRxVo.js → channels-cli-C8u7RwGw.js} +13 -13
  32. package/dist/{channels-cli-DV6Cp2_m.js → channels-cli-d0TsshWJ.js} +13 -13
  33. package/dist/cli/daemon-cli.js +1 -1
  34. package/dist/{cli-IXAHPzCM.js → cli-Bte8NFEF.js} +8 -8
  35. package/dist/{cli-Fm20on0Y.js → cli-H2qqzBh-.js} +8 -8
  36. package/dist/{client-DVME2dNA.js → client-Ct3INy6Q.js} +1 -0
  37. package/dist/{client-CluJsNRo.js → client-zj7haqMb.js} +1 -0
  38. package/dist/{command-registry-C3Gr6QIZ.js → command-registry-C7RGVIsP.js} +11 -11
  39. package/dist/{completion-cli-DcmfM_XB.js → completion-cli-CtlUQOU1.js} +1 -1
  40. package/dist/{completion-cli-D96BgcqD.js → completion-cli-D9Bs9sNg.js} +2 -2
  41. package/dist/{config-cli-DXlVuWUo.js → config-cli-7YppRhHT.js} +1 -1
  42. package/dist/{config-cli-CR5YWpNX.js → config-cli-BgT87I31.js} +1 -1
  43. package/dist/{configure-CwQnyhnv.js → configure-CyZK-h8l.js} +6 -6
  44. package/dist/{configure-BXys8MUC.js → configure-DIknS6D2.js} +6 -6
  45. package/dist/control-ui/assets/{index-ixU5putu.js → index-BX-BH831.js} +408 -362
  46. package/dist/control-ui/assets/index-BX-BH831.js.map +1 -0
  47. package/dist/control-ui/assets/{index-EvU5ZebS.css → index-CG7TGGhP.css} +1 -1
  48. package/dist/control-ui/index.html +2 -2
  49. package/dist/{cron-cli-CDE1OFDG.js → cron-cli-CF5BP-n7.js} +3 -3
  50. package/dist/{cron-cli-GqIWWgiC.js → cron-cli-DXGeT8Mw.js} +3 -3
  51. package/dist/{daemon-cli-D73VJA_5.js → daemon-cli-0g2nkiie.js} +2 -2
  52. package/dist/{daemon-cli-CEmNv817.js → daemon-cli-CYtFdzXW.js} +2 -2
  53. package/dist/daemon-cli.js +1 -0
  54. package/dist/{dashboard-DTlNIb75.js → dashboard-BzxWDKE9.js} +1 -1
  55. package/dist/{dashboard-DvN1mA5u.js → dashboard-EG5nMcy-.js} +1 -1
  56. package/dist/{deliver-UlKfF5ki.js → deliver-CjCvs92K.js} +1 -1
  57. package/dist/{deliver-CeItj33i.js → deliver-DkGKUNSW.js} +1 -1
  58. package/dist/{deliver-BR94HzGu.js → deliver-DvxmGKU7.js} +1 -1
  59. package/dist/{deliver-Ed6oj5Hr.js → deliver-nnwtUHe4.js} +1 -1
  60. package/dist/{devices-cli-BE_t6kEW.js → devices-cli-BMNzYzfw.js} +2 -2
  61. package/dist/{devices-cli-DolMfE77.js → devices-cli-DhkpGf9W.js} +2 -2
  62. package/dist/{doctor-completion-DiVJuSS4.js → doctor-completion-59O1eGAD.js} +1 -1
  63. package/dist/{doctor-completion-nOnIa5ym.js → doctor-completion-D1YQPRLZ.js} +1 -1
  64. package/dist/entry.js +2 -2
  65. package/dist/{exec-approvals-cli-qbLlzazr.js → exec-approvals-cli-Cfh3OhWq.js} +4 -4
  66. package/dist/{exec-approvals-cli-xVv5uofa.js → exec-approvals-cli-CoxiMlt5.js} +4 -4
  67. package/dist/extensionAPI.js +5 -5
  68. package/dist/{gateway-cli-jZ-EpLEa.js → gateway-cli-DneVvyuB.js} +33 -25
  69. package/dist/{gateway-cli-C1IqQHY2.js → gateway-cli-RrWvU33e.js} +33 -25
  70. package/dist/{gateway-rpc-CEueWk1E.js → gateway-rpc-DSDDTb9T.js} +1 -1
  71. package/dist/{gateway-rpc-yBoALaWH.js → gateway-rpc-DiWvH8Pq.js} +1 -1
  72. package/dist/{health-DeofgoIV.js → health-BEGEjMAH.js} +3 -3
  73. package/dist/{health-DOGcHcgN.js → health-BPybWGw9.js} +3 -3
  74. package/dist/{hooks-cli-Dh_3-NNe.js → hooks-cli-Cigd_Wfj.js} +9 -9
  75. package/dist/{hooks-cli-BfA8a5jt.js → hooks-cli-f7lcBr1x.js} +9 -9
  76. package/dist/{image-XqGcCt9q.js → image-5kjT0Ifv.js} +1 -1
  77. package/dist/{image-HyFl8MrD.js → image-BsWoO0mu.js} +1 -1
  78. package/dist/{image-BKHeF2sO.js → image-Cboo5_y3.js} +1 -1
  79. package/dist/{image-DcfdUryQ.js → image-Cj831azd.js} +1 -1
  80. package/dist/index.js +13 -13
  81. package/dist/llm-slug-generator.js +5 -5
  82. package/dist/{logs-cli-p5kAh0qi.js → logs-cli-Clchi69N.js} +3 -3
  83. package/dist/{logs-cli-Dv8TRwyI.js → logs-cli-Dsmur7V7.js} +3 -3
  84. package/dist/{models-x91yp20X.js → models-DpcOB3vj.js} +3 -3
  85. package/dist/{models-cli-DsaQe3L8.js → models-cli-Bi4rH3wA.js} +10 -10
  86. package/dist/{models-cli-Of0Dt4T3.js → models-cli-DUzbk_7x.js} +9 -9
  87. package/dist/{node-cli-Do62XUPs.js → node-cli-Bw3p8-Sf.js} +1 -1
  88. package/dist/{node-cli-BabqC8Zy.js → node-cli-CP6SmQRY.js} +1 -1
  89. package/dist/{node-command-policy-CcKer6vK.js → node-command-policy-B6a4rlIk.js} +1 -1
  90. package/dist/{node-command-policy-Dk_UuHKt.js → node-command-policy-DDNdYXwK.js} +1 -1
  91. package/dist/{nodes-cli-Dpzu3xiW.js → nodes-cli-Bl9i1yqi.js} +3 -3
  92. package/dist/{nodes-cli-pFODdHtG.js → nodes-cli-Cd4bT0G_.js} +3 -3
  93. package/dist/{npm-resolution-tKQdyyrr.js → npm-resolution-B-kbVjrb.js} +1 -1
  94. package/dist/{npm-resolution-Dh42ChiK.js → npm-resolution-Dlw89aWh.js} +1 -1
  95. package/dist/{onboard-vOB2yRup.js → onboard-B45AuSWn.js} +3 -3
  96. package/dist/{onboard-pwWKjijO.js → onboard-Cu0G7EAR.js} +3 -3
  97. package/dist/{onboard-channels-BVZJDmqk.js → onboard-channels-DHx-uZCo.js} +2 -2
  98. package/dist/{onboard-channels-zkzv3Yvo.js → onboard-channels-Dmrl0eA6.js} +2 -2
  99. package/dist/{onboard-helpers-DLQ_XMs1.js → onboard-helpers-D37MuS-y.js} +1 -1
  100. package/dist/{onboard-helpers-Oi4C_OMX.js → onboard-helpers-DEzzN6tA.js} +1 -1
  101. package/dist/{onboard-remote-C1-vrrIn.js → onboard-remote-C03eTxXO.js} +1 -1
  102. package/dist/{onboard-remote-XXaOoJYC.js → onboard-remote-C_jBXm-z.js} +1 -1
  103. package/dist/{onboard-skills-C8Mue7Px.js → onboard-skills-D7ZRTLs3.js} +1 -1
  104. package/dist/{onboard-skills-BxC5udud.js → onboard-skills-VGug58zB.js} +1 -1
  105. package/dist/{onboarding-W2AiGqjG.js → onboarding-VPTSOvzr.js} +7 -7
  106. package/dist/{onboarding-Dqr7aZ7Y.js → onboarding-ZExAuMgK.js} +7 -7
  107. package/dist/{onboarding.finalize-QfwQJFMM.js → onboarding.finalize-DfoOvZxa.js} +13 -13
  108. package/dist/{onboarding.finalize-DIWji8d4.js → onboarding.finalize-DyZzlCN9.js} +14 -14
  109. package/dist/{onboarding.gateway-config-CsSayEFl.js → onboarding.gateway-config-33VygMXh.js} +4 -4
  110. package/dist/{onboarding.gateway-config-DImrb8_4.js → onboarding.gateway-config-DYozawla.js} +4 -4
  111. package/dist/{pi-embedded-D_5_WIVV.js → pi-embedded-CLpkFzke.js} +21 -13
  112. package/dist/{pi-embedded-DO73FSrv.js → pi-embedded-JvXxFqT7.js} +21 -13
  113. package/dist/{pi-embedded-helpers-J2caGJww.js → pi-embedded-helpers-CKEoEHoe.js} +13 -1
  114. package/dist/{pi-embedded-helpers-DeshJQRZ.js → pi-embedded-helpers-CYvB-mUe.js} +13 -1
  115. package/dist/{pi-embedded-helpers-C6qtvkzL.js → pi-embedded-helpers-CrqtHYYD.js} +13 -1
  116. package/dist/{pi-embedded-helpers-BvHlsuFU.js → pi-embedded-helpers-DQudcPte.js} +13 -1
  117. package/dist/{plugin-registry-fStNzAh6.js → plugin-registry-D8mx10Uh.js} +1 -1
  118. package/dist/{plugin-registry-BTbNdUJI.js → plugin-registry-gZUfqcq8.js} +1 -1
  119. package/dist/plugin-sdk/agents/pi-embedded-helpers/errors.d.ts +6 -0
  120. package/dist/plugin-sdk/agents/pi-embedded-helpers.d.ts +1 -1
  121. package/dist/plugin-sdk/{audio-preflight-CnShZx3d.js → audio-preflight-DbFTsm9v.js} +3 -3
  122. package/dist/plugin-sdk/{audio-transcription-runner-02Kf0QEw.js → audio-transcription-runner-BP6ArtIg.js} +1 -1
  123. package/dist/plugin-sdk/{channel-web-kSEIZEuw.js → channel-web-DugGqCi6.js} +2 -2
  124. package/dist/plugin-sdk/{deliver-TLuU1nrG.js → deliver-DjyqqLGN.js} +1 -1
  125. package/dist/plugin-sdk/gateway/protocol/schema/logs-chat.d.ts +1 -0
  126. package/dist/plugin-sdk/gateway/protocol/schema/protocol-schemas.d.ts +1 -0
  127. package/dist/plugin-sdk/{image-DthA-2Bt.js → image-B73NNIZF.js} +1 -1
  128. package/dist/plugin-sdk/index.js +6 -6
  129. package/dist/plugin-sdk/{pi-embedded-helpers-5SLsxaPD.js → pi-embedded-helpers-Cb9NLnv7.js} +13 -1
  130. package/dist/plugin-sdk/{reply-B_uFeTht.js → reply-BetOKhtK.js} +21 -13
  131. package/dist/plugin-sdk/{web-CY6oM5WK.js → web-C_bWyLWF.js} +6 -6
  132. package/dist/{plugins-cli-Co-nvd9J.js → plugins-cli-BT_YdHlo.js} +9 -9
  133. package/dist/{plugins-cli-CJH6AKMz.js → plugins-cli-CL2MrWZt.js} +9 -9
  134. package/dist/{program-CNpQbt0K.js → program-DIvdihfF.js} +14 -14
  135. package/dist/{program-context-CGNIVn8U.js → program-context-DFXBN0ZY.js} +31 -31
  136. package/dist/{prompt-select-styled-CnF7G9nh.js → prompt-select-styled-D6W6ZbLn.js} +6 -6
  137. package/dist/{prompt-select-styled-CIRPu5Ka.js → prompt-select-styled-Do1qynXW.js} +6 -6
  138. package/dist/{provider-auth-helpers-DjIygYv_.js → provider-auth-helpers-59RRb092.js} +1 -1
  139. package/dist/{provider-auth-helpers-CNUvu0a0.js → provider-auth-helpers-BEYTbEO-.js} +1 -1
  140. package/dist/{push-apns-D80k7T9j.js → push-apns-BK4xHeAC.js} +1 -1
  141. package/dist/{push-apns-BgQum9Gy.js → push-apns-Cr1-03ZS.js} +1 -1
  142. package/dist/{register.agent-Bhyoci3o.js → register.agent-FsyQ2Nm4.js} +13 -13
  143. package/dist/{register.agent-kfyfQI8T.js → register.agent-K6fKhk-d.js} +14 -14
  144. package/dist/{register.configure-B7NHNcfM.js → register.configure-CCQ90-H1.js} +16 -16
  145. package/dist/{register.configure-B5HCAfdz.js → register.configure-DS8ihv8X.js} +16 -16
  146. package/dist/{register.maintenance-BD1oDxC-.js → register.maintenance-DT2aoHXy.js} +16 -16
  147. package/dist/{register.maintenance-C1PaIvLI.js → register.maintenance-Dnr1w5A1.js} +15 -15
  148. package/dist/{register.message-CveEoRPg.js → register.message-BLhsi48W.js} +9 -9
  149. package/dist/{register.message-D-1QnCw_.js → register.message-p-nIqAYY.js} +9 -9
  150. package/dist/{register.onboard-DxdKBYPa.js → register.onboard-CC50fpnA.js} +5 -5
  151. package/dist/{register.onboard-DTH8w4yg.js → register.onboard-pMGHuLqk.js} +5 -5
  152. package/dist/{register.setup-B0xOuiw1.js → register.setup-CP__vdzh.js} +5 -5
  153. package/dist/{register.setup-B_QzzqYV.js → register.setup-CwMkpOf-.js} +5 -5
  154. package/dist/{register.start-csWISzdo.js → register.start-CZMSVRfr.js} +4 -4
  155. package/dist/{register.start-BKHJP2Is.js → register.start-K1LpFGp0.js} +4 -4
  156. package/dist/{register.status-health-sessions-DdoDk6tI.js → register.status-health-sessions-C3RoepIh.js} +12 -12
  157. package/dist/{register.status-health-sessions-QfEbhT67.js → register.status-health-sessions-Dr1-y3qs.js} +12 -12
  158. package/dist/{register.subclis-C6ixj03Z.js → register.subclis-B9f3-nRB.js} +21 -21
  159. package/dist/{reply-DkwQo3LK.js → reply-Cm66z0-z.js} +24 -17
  160. package/dist/{rpc-Ca9dlA9v.js → rpc-CclOFzPV.js} +1 -1
  161. package/dist/{rpc-CI7SPdeS.js → rpc-rTqBtgDp.js} +1 -1
  162. package/dist/{run-main-CiyxqGgu.js → run-main-B6QZLb6Z.js} +21 -21
  163. package/dist/{secrets-cli-DEGkMLrT.js → secrets-cli-CfmktxZw.js} +3 -3
  164. package/dist/{secrets-cli-DVRKrzox.js → secrets-cli-i2YWj3kH.js} +3 -3
  165. package/dist/{security-cli-608Hrkk0.js → security-cli-50tLKbQX.js} +4 -4
  166. package/dist/{security-cli-D4O7OC12.js → security-cli-B-t3jhRM.js} +4 -4
  167. package/dist/{server-node-events-CXwSn_of.js → server-node-events-DIZCYbQS.js} +9 -9
  168. package/dist/{server-node-events-DC1BMCVn.js → server-node-events-p6pocXHJ.js} +9 -9
  169. package/dist/{status-CBRTQ939.js → status-Bk0e2K3D.js} +5 -5
  170. package/dist/{status-BB7xEcRf.js → status-DeOsbp6k.js} +5 -5
  171. package/dist/{subagent-registry-BcuTxEMl.js → subagent-registry-ChrhyhQ5.js} +24 -17
  172. package/dist/{system-cli-CFkPJfOG.js → system-cli-BNHXiAuw.js} +3 -3
  173. package/dist/{system-cli-C0Ed85zv.js → system-cli-im47tHnN.js} +3 -3
  174. package/dist/{tui-B7dzJD1I.js → tui-BqRCX-bp.js} +3 -3
  175. package/dist/{tui-BRtGtxGi.js → tui-DhEGvFT0.js} +3 -3
  176. package/dist/{tui-cli-CjdbITUY.js → tui-cli-Bjx0DKT6.js} +4 -4
  177. package/dist/{tui-cli-q5z-00Hw.js → tui-cli-Bo7syV8j.js} +4 -4
  178. package/dist/{update-cli-BBJFl04y.js → update-cli-CGZx-QNj.js} +15 -15
  179. package/dist/{update-cli-B4lljwO3.js → update-cli-Cwwll1Xd.js} +16 -16
  180. package/dist/{update-runner-D60XSU4r.js → update-runner-meF3Yj68.js} +1 -1
  181. package/dist/{update-runner-DyCzzM9h.js → update-runner-sLKFIJY-.js} +1 -1
  182. package/dist/{web-BxoxUANA.js → web-C8qeseGa.js} +5 -5
  183. package/dist/{web-DLuhYIW3.js → web-CUoANEo6.js} +5 -5
  184. package/dist/{web-T0rbkNL4.js → web-Dyvr-ZYW.js} +9 -9
  185. package/dist/{web-DXuCeyJX.js → web-pvjSSXiL.js} +9 -9
  186. package/docs/plans/2026-03-27-bitseek-topup-modal-design.md +52 -0
  187. package/package.json +1 -1
  188. package/dist/control-ui/assets/index-ixU5putu.js.map +0 -1
@@ -1,5 +1,5 @@
1
1
  export { buildBootstrapContextFiles, DEFAULT_BOOTSTRAP_MAX_CHARS, DEFAULT_BOOTSTRAP_TOTAL_MAX_CHARS, ensureSessionHeader, resolveBootstrapMaxChars, resolveBootstrapTotalMaxChars, stripThoughtSignatures, } from "./pi-embedded-helpers/bootstrap.js";
2
- export { BILLING_ERROR_USER_MESSAGE, formatBillingErrorMessage, classifyFailoverReason, formatRawAssistantErrorForUi, formatAssistantErrorText, getApiErrorPayloadFingerprint, isAuthAssistantError, isAuthErrorMessage, isAuthPermanentErrorMessage, isModelNotFoundErrorMessage, isBillingAssistantError, parseApiErrorInfo, sanitizeUserFacingText, isBillingErrorMessage, isCloudflareOrHtmlErrorPage, isCloudCodeAssistFormatError, isCompactionFailureError, isContextOverflowError, isLikelyContextOverflowError, isFailoverAssistantError, isFailoverErrorMessage, isImageDimensionErrorMessage, isImageSizeError, isOverloadedErrorMessage, isRawApiErrorPayload, isRateLimitAssistantError, isRateLimitErrorMessage, isTransientHttpError, isTimeoutErrorMessage, parseImageDimensionError, parseImageSizeError, } from "./pi-embedded-helpers/errors.js";
2
+ export { BILLING_ERROR_USER_MESSAGE, CHAT_UI_HINT_BITSEEK_TOPUP_REQUIRED, formatBillingErrorMessage, classifyFailoverReason, formatRawAssistantErrorForUi, formatAssistantErrorText, getApiErrorPayloadFingerprint, isAuthAssistantError, isAuthErrorMessage, isAuthPermanentErrorMessage, isModelNotFoundErrorMessage, isBillingAssistantError, parseApiErrorInfo, resolveChatUiHintForError, sanitizeUserFacingText, isBillingErrorMessage, isCloudflareOrHtmlErrorPage, isCloudCodeAssistFormatError, isCompactionFailureError, isContextOverflowError, isLikelyContextOverflowError, isFailoverAssistantError, isFailoverErrorMessage, isImageDimensionErrorMessage, isImageSizeError, isOverloadedErrorMessage, isRawApiErrorPayload, isRateLimitAssistantError, isRateLimitErrorMessage, isTransientHttpError, isTimeoutErrorMessage, parseImageDimensionError, parseImageSizeError, } from "./pi-embedded-helpers/errors.js";
3
3
  export { isGoogleModelApi, sanitizeGoogleTurnOrdering } from "./pi-embedded-helpers/google.js";
4
4
  export { downgradeOpenAIFunctionCallReasoningPairs, downgradeOpenAIReasoningBlocks, } from "./pi-embedded-helpers/openai.js";
5
5
  export { isEmptyAssistantMessageContent, sanitizeSessionMessagesImages, } from "./pi-embedded-helpers/images.js";
@@ -25,13 +25,13 @@ import "./ssrf-yJVFBwP_.js";
25
25
  import "./fetch-guard-DBpNRDsE.js";
26
26
  import "./local-roots-D45XofHa.js";
27
27
  import "./tool-images-DzNHghBZ.js";
28
- import { i as normalizeMediaAttachments, o as resolveMediaAttachmentLocalRoots, p as isAudioAttachment, t as runAudioTranscription } from "./audio-transcription-runner-02Kf0QEw.js";
28
+ import { i as normalizeMediaAttachments, o as resolveMediaAttachmentLocalRoots, p as isAudioAttachment, t as runAudioTranscription } from "./audio-transcription-runner-BP6ArtIg.js";
29
29
  import "./skills-DhjFSX9k.js";
30
30
  import "./chrome-2cewsnu1.js";
31
31
  import "./store-B49PVNHw.js";
32
- import "./pi-embedded-helpers-5SLsxaPD.js";
32
+ import "./pi-embedded-helpers-Cb9NLnv7.js";
33
33
  import "./thinking-DGaZRXAR.js";
34
- import "./image-DthA-2Bt.js";
34
+ import "./image-B73NNIZF.js";
35
35
  import "./pi-model-discovery-D69omnZ4.js";
36
36
  import "./api-key-rotation-CRkGVkaE.js";
37
37
  import "./proxy-fetch-nIK8JZcG.js";
@@ -6,7 +6,7 @@ import { n as fetchWithTimeout } from "./fetch-timeout-C-qHqfzG.js";
6
6
  import { c as detectMime, f as isAudioFileName, m as kindFromMime, u as getFileExtension } from "./image-ops-DZf5e0hi.js";
7
7
  import { t as fetchWithSsrFGuard } from "./fetch-guard-DBpNRDsE.js";
8
8
  import { i as fetchRemoteMedia, n as getDefaultMediaLocalRoots, r as MediaFetchError } from "./local-roots-D45XofHa.js";
9
- import { t as describeImageWithModel, w as ensureOpenClawModelsJson } from "./image-DthA-2Bt.js";
9
+ import { t as describeImageWithModel, w as ensureOpenClawModelsJson } from "./image-B73NNIZF.js";
10
10
  import { n as executeWithApiKeyRotation, r as parseGeminiAuth, t as collectProviderApiKeysForExecution } from "./api-key-rotation-CRkGVkaE.js";
11
11
  import { n as resolveProxyFetchFromEnv } from "./proxy-fetch-nIK8JZcG.js";
12
12
  import { constants } from "node:fs";
@@ -1,6 +1,6 @@
1
1
  import { a as buildGroupHistoryKey, c as normalizeAgentId, n as DEFAULT_MAIN_KEY, p as DEFAULT_ACCOUNT_ID, r as buildAgentMainSessionKey } from "./session-key-CVIXEtLx.js";
2
2
  import { i as resolveWhatsAppAccount, p as readWebSelfId, s as getWebAuthAgeMs } from "./accounts-lwmUYGUE.js";
3
- import { At as resolveDefaultGroupPolicy, C as formatDurationPrecise, Ct as resolveDmGroupAccessWithLists, J as DEFAULT_GROUP_HISTORY_LIMIT, Nt as warnMissingProviderGroupPolicyFallbackOnce, St as resolveDmGroupAccessWithCommandGate, Tt as resolvePinnedMainDmOwnerFromAllowlist, U as shouldAckReactionForWhatsApp, W as resolveMentionGating, Y as buildHistoryContextFromEntries, _t as buildPairingReply, ct as formatInboundEnvelope, d as dispatchReplyWithBufferedBlockDispatcher, g as shouldComputeCommandAuthorized, h as hasControlCommand, i as resolveInboundSessionEnvelopeContext, it as createDedupeCache, jt as resolveOpenProviderRuntimeGroupPolicy, l as computeBackoff, m as resolveInboundDebounceMs, n as normalizeGroupActivation, nt as buildMentionRegexes, p as createInboundDebouncer, r as parseActivationCommand, rt as normalizeMentionText, t as getReplyFromConfig, tt as recordPendingHistoryEntryIfEnabled, u as sleepWithAbort, w as enqueueSystemEvent, yt as readStoreAllowFromForDmPolicy } from "./reply-B_uFeTht.js";
3
+ import { At as resolveDefaultGroupPolicy, C as formatDurationPrecise, Ct as resolveDmGroupAccessWithLists, J as DEFAULT_GROUP_HISTORY_LIMIT, Nt as warnMissingProviderGroupPolicyFallbackOnce, St as resolveDmGroupAccessWithCommandGate, Tt as resolvePinnedMainDmOwnerFromAllowlist, U as shouldAckReactionForWhatsApp, W as resolveMentionGating, Y as buildHistoryContextFromEntries, _t as buildPairingReply, ct as formatInboundEnvelope, d as dispatchReplyWithBufferedBlockDispatcher, g as shouldComputeCommandAuthorized, h as hasControlCommand, i as resolveInboundSessionEnvelopeContext, it as createDedupeCache, jt as resolveOpenProviderRuntimeGroupPolicy, l as computeBackoff, m as resolveInboundDebounceMs, n as normalizeGroupActivation, nt as buildMentionRegexes, p as createInboundDebouncer, r as parseActivationCommand, rt as normalizeMentionText, t as getReplyFromConfig, tt as recordPendingHistoryEntryIfEnabled, u as sleepWithAbort, w as enqueueSystemEvent, yt as readStoreAllowFromForDmPolicy } from "./reply-BetOKhtK.js";
4
4
  import { n as loadConfig } from "./config-QlwvRinO.js";
5
5
  import { i as defaultRuntime, p as shouldLogVerbose, t as createSubsystemLogger, u as logVerbose, y as getChildLogger } from "./subsystem-BSS_Lti_.js";
6
6
  import { d as normalizeE164, l as isSelfChatMode, m as resolveJidToE164, n as clamp, u as jidToE164, x as toWhatsappJid, y as sleep } from "./utils-DaD2HGTy.js";
@@ -16,7 +16,7 @@ import { c as resolveChunkMode, i as chunkMarkdownTextWithMode, l as resolveText
16
16
  import { n as resolveMarkdownTableMode } from "./markdown-tables-CBEW0AEz.js";
17
17
  import { t as convertMarkdownTables } from "./tables-B2ndgibI.js";
18
18
  import { X as formatLocationText, Z as toLocationContext, at as upsertChannelPairingRequest, rt as readChannelAllowFromStoreSync } from "./send-DVH_jqoJ.js";
19
- import { f as registerUnhandledRejectionHandler } from "./audio-transcription-runner-02Kf0QEw.js";
19
+ import { f as registerUnhandledRejectionHandler } from "./audio-transcription-runner-BP6ArtIg.js";
20
20
  import { l as resolveIdentityNamePrefix, n as createReplyPrefixOptions, u as resolveMessagePrefix } from "./reply-prefix-DSjz9ex2.js";
21
21
  import { a as saveMediaBuffer } from "./store-B49PVNHw.js";
22
22
  import { t as finalizeInboundContext } from "./inbound-context-DZb6zIHq.js";
@@ -10,7 +10,7 @@ import { t as getAgentScopedMediaLocalRoots } from "./local-roots-D45XofHa.js";
10
10
  import { c as resolveChunkMode, i as chunkMarkdownTextWithMode, l as resolveTextChunkLimit, n as chunkByParagraph, p as parseFenceSpans } from "./chunk-BYCmTLPZ.js";
11
11
  import { n as resolveMarkdownTableMode } from "./markdown-tables-CBEW0AEz.js";
12
12
  import { i as isSilentReplyText, n as SILENT_REPLY_TOKEN } from "./tokens-CYf5ZhLm.js";
13
- import { i as isMessagingToolDuplicate } from "./pi-embedded-helpers-5SLsxaPD.js";
13
+ import { i as isMessagingToolDuplicate } from "./pi-embedded-helpers-Cb9NLnv7.js";
14
14
  import { n as generateSecureUuid } from "./secure-random-C5PtFEje.js";
15
15
  import { l as markdownToSignalTextChunks, t as sendMessageSignal } from "./send-CLmu_bs1.js";
16
16
  import fs from "node:fs";
@@ -40,6 +40,7 @@ export declare const ChatEventSchema: import("@sinclair/typebox").TObject<{
40
40
  state: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"delta">, import("@sinclair/typebox").TLiteral<"final">, import("@sinclair/typebox").TLiteral<"aborted">, import("@sinclair/typebox").TLiteral<"error">]>;
41
41
  message: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnknown>;
42
42
  errorMessage: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
43
+ uiHint: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
43
44
  usage: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnknown>;
44
45
  stopReason: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
45
46
  }>;
@@ -1361,6 +1361,7 @@ export declare const ProtocolSchemas: {
1361
1361
  state: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"delta">, import("@sinclair/typebox").TLiteral<"final">, import("@sinclair/typebox").TLiteral<"aborted">, import("@sinclair/typebox").TLiteral<"error">]>;
1362
1362
  message: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnknown>;
1363
1363
  errorMessage: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
1364
+ uiHint: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
1364
1365
  usage: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnknown>;
1365
1366
  stopReason: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
1366
1367
  }>;
@@ -3,7 +3,7 @@ import { $t as applyConfigEnvVars, Dn as getApiKeyForModel, _n as normalizeProvi
3
3
  import { _ as shortenHomeInString, c as isRecord } from "./utils-DaD2HGTy.js";
4
4
  import { G as resolveAgentModelPrimaryValue, W as resolveAgentModelFallbackValues } from "./agent-scope-hbikmG29.js";
5
5
  import { n as redactToolDetail } from "./redact-CJpp3pJZ.js";
6
- import { F as sanitizeUserFacingText } from "./pi-embedded-helpers-5SLsxaPD.js";
6
+ import { I as sanitizeUserFacingText } from "./pi-embedded-helpers-Cb9NLnv7.js";
7
7
  import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-D69omnZ4.js";
8
8
  import path from "node:path";
9
9
  import fs from "node:fs/promises";
@@ -1,6 +1,6 @@
1
1
  import { d as resolveThreadSessionKeys, m as normalizeAccountId, p as DEFAULT_ACCOUNT_ID } from "./session-key-CVIXEtLx.js";
2
2
  import { a as resolveWhatsAppAuthDir, i as resolveWhatsAppAccount, n as listWhatsAppAccountIds, r as resolveDefaultWhatsAppAccountId, v as createAccountListHelpers } from "./accounts-lwmUYGUE.js";
3
- import { $ as evictOldHistoryKeys, $t as autoBindSpawnedDiscordSubagent, A as resolveDiscordUserAllowlist, At as resolveDefaultGroupPolicy, B as createTypingCallbacks, Bt as readJsonBodyWithLimit, Ct as resolveDmGroupAccessWithLists, D as resolveSlackUserAllowlist, Dt as GROUP_POLICY_BLOCKED_LABEL, E as parseTelegramThreadId, Et as resolveControlCommandGate, F as stringEnum, Ft as DEFAULT_WEBHOOK_BODY_TIMEOUT_MS, G as resolveMentionGatingWithBypass, Gt as isDangerousNameMatchingEnabled, H as shouldAckReaction, Ht as requestBodyErrorToText, I as recordInboundSession, It as DEFAULT_WEBHOOK_MAX_BODY_BYTES, J as DEFAULT_GROUP_HISTORY_LIMIT, Jt as registerAcpRuntimeBackend, K as mergeAllowlist, Kt as registerPluginHttpRoute, L as logAckFailure, Lt as RequestBodyLimitError, M as collectDiscordAuditChannelIds, Mt as resolveRuntimeGroupPolicy, N as formatDocsLink, Nt as warnMissingProviderGroupPolicyFallbackOnce, O as resolveSlackChannelAllowlist, Ot as resetMissingProviderGroupPolicyFallbackWarningsForTesting, P as optionalStringEnum, Pt as pruneMapToMaxSize, Q as clearHistoryEntriesIfEnabled, Qt as AcpRuntimeError, R as logInboundDrop, Rt as installRequestBodyLimitGuard, S as attachFooterText, St as resolveDmGroupAccessWithCommandGate, T as parseTelegramReplyToMessageId, U as shouldAckReactionForWhatsApp, Ut as KeyedAsyncQueue, V as removeAckReactionAfterReply, Vt as readRequestBodyWithLimit, W as resolveMentionGating, Wt as enqueueKeyedTask, X as buildPendingHistoryContextFromMap, Xt as unregisterAcpRuntimeBackend, Yt as requireAcpRuntimeBackend, Z as clearHistoryEntries, Zt as ACP_ERROR_CODES, a as listLineAccountIds, an as BLUEBUBBLES_ACTIONS, at as approveDevicePairing, b as stripMarkdown, bt as resolveDmAllowState, c as resolveLineAccount, cn as CHANNEL_MESSAGE_ACTION_NAMES, dt as formatZonedTimestamp, en as listThreadBindingsBySessionKey, et as recordPendingHistoryEntry, ft as resolveTimezone, gt as issuePairingChallenge, ht as extractToolSend, in as resolveAllowlistMatchSimple, it as createDedupeCache, j as resolveDiscordChannelAllowlist, jt as resolveOpenProviderRuntimeGroupPolicy, k as detectBinary, kt as resolveAllowlistProviderRuntimeGroupPolicy, lt as formatInboundFromLabel, mt as buildMediaPayload, nn as formatAllowlistMatchMeta, o as normalizeAccountId$1, on as BLUEBUBBLES_ACTION_NAMES, ot as listDevicePairing, pt as readBooleanParam, q as summarizeMapping, qt as getAcpRuntimeBackend, rn as resolveAllowlistMatchByCandidates, s as resolveDefaultLineAccountId, sn as BLUEBUBBLES_GROUP_ACTIONS, st as rejectDevicePairing, tn as unbindThreadBindingsBySessionKey, tt as recordPendingHistoryEntryIfEnabled, ut as formatUtcTimestamp, v as hasMarkdownToConvert, vt as DM_GROUP_ACCESS_REASON, wt as resolveEffectiveAllowFromLists, x as createReceiptCard, xt as resolveDmGroupAccessDecision, y as processLineMessage, yt as readStoreAllowFromForDmPolicy, z as logTypingFailure, zt as isRequestBodyLimitError } from "./reply-B_uFeTht.js";
3
+ import { $ as evictOldHistoryKeys, $t as autoBindSpawnedDiscordSubagent, A as resolveDiscordUserAllowlist, At as resolveDefaultGroupPolicy, B as createTypingCallbacks, Bt as readJsonBodyWithLimit, Ct as resolveDmGroupAccessWithLists, D as resolveSlackUserAllowlist, Dt as GROUP_POLICY_BLOCKED_LABEL, E as parseTelegramThreadId, Et as resolveControlCommandGate, F as stringEnum, Ft as DEFAULT_WEBHOOK_BODY_TIMEOUT_MS, G as resolveMentionGatingWithBypass, Gt as isDangerousNameMatchingEnabled, H as shouldAckReaction, Ht as requestBodyErrorToText, I as recordInboundSession, It as DEFAULT_WEBHOOK_MAX_BODY_BYTES, J as DEFAULT_GROUP_HISTORY_LIMIT, Jt as registerAcpRuntimeBackend, K as mergeAllowlist, Kt as registerPluginHttpRoute, L as logAckFailure, Lt as RequestBodyLimitError, M as collectDiscordAuditChannelIds, Mt as resolveRuntimeGroupPolicy, N as formatDocsLink, Nt as warnMissingProviderGroupPolicyFallbackOnce, O as resolveSlackChannelAllowlist, Ot as resetMissingProviderGroupPolicyFallbackWarningsForTesting, P as optionalStringEnum, Pt as pruneMapToMaxSize, Q as clearHistoryEntriesIfEnabled, Qt as AcpRuntimeError, R as logInboundDrop, Rt as installRequestBodyLimitGuard, S as attachFooterText, St as resolveDmGroupAccessWithCommandGate, T as parseTelegramReplyToMessageId, U as shouldAckReactionForWhatsApp, Ut as KeyedAsyncQueue, V as removeAckReactionAfterReply, Vt as readRequestBodyWithLimit, W as resolveMentionGating, Wt as enqueueKeyedTask, X as buildPendingHistoryContextFromMap, Xt as unregisterAcpRuntimeBackend, Yt as requireAcpRuntimeBackend, Z as clearHistoryEntries, Zt as ACP_ERROR_CODES, a as listLineAccountIds, an as BLUEBUBBLES_ACTIONS, at as approveDevicePairing, b as stripMarkdown, bt as resolveDmAllowState, c as resolveLineAccount, cn as CHANNEL_MESSAGE_ACTION_NAMES, dt as formatZonedTimestamp, en as listThreadBindingsBySessionKey, et as recordPendingHistoryEntry, ft as resolveTimezone, gt as issuePairingChallenge, ht as extractToolSend, in as resolveAllowlistMatchSimple, it as createDedupeCache, j as resolveDiscordChannelAllowlist, jt as resolveOpenProviderRuntimeGroupPolicy, k as detectBinary, kt as resolveAllowlistProviderRuntimeGroupPolicy, lt as formatInboundFromLabel, mt as buildMediaPayload, nn as formatAllowlistMatchMeta, o as normalizeAccountId$1, on as BLUEBUBBLES_ACTION_NAMES, ot as listDevicePairing, pt as readBooleanParam, q as summarizeMapping, qt as getAcpRuntimeBackend, rn as resolveAllowlistMatchByCandidates, s as resolveDefaultLineAccountId, sn as BLUEBUBBLES_GROUP_ACTIONS, st as rejectDevicePairing, tn as unbindThreadBindingsBySessionKey, tt as recordPendingHistoryEntryIfEnabled, ut as formatUtcTimestamp, v as hasMarkdownToConvert, vt as DM_GROUP_ACCESS_REASON, wt as resolveEffectiveAllowFromLists, x as createReceiptCard, xt as resolveDmGroupAccessDecision, y as processLineMessage, yt as readStoreAllowFromForDmPolicy, z as logTypingFailure, zt as isRequestBodyLimitError } from "./reply-BetOKhtK.js";
4
4
  import "./paths-DGY0zK8V.js";
5
5
  import "./github-copilot-token-BzzlOR4B.js";
6
6
  import { A as GroupPolicySchema, D as BlockStreamingCoalesceSchema, E as ToolPolicySchema, F as TtsConfigSchema, I as TtsModeSchema, Jn as acquireFileLock, L as TtsProviderSchema, M as MarkdownTableModeSchema, N as ReplyRuntimeConfigSchemaShape, O as DmConfigSchema, P as TtsAutoSchema, R as normalizeAllowFrom, Yn as withFileLock, c as WhatsAppConfigSchema, d as IMessageConfigSchema, f as MSTeamsConfigSchema, h as TelegramConfigSchema, j as MarkdownConfigSchema, k as DmPolicySchema, l as DiscordConfigSchema, m as SlackConfigSchema, p as SignalConfigSchema, u as GoogleChatConfigSchema, z as requireOpenAllowFrom } from "./config-QlwvRinO.js";
@@ -40,21 +40,21 @@ import { $ as isWSLEnv, J as parseTelegramTarget, Q as isWSL2Sync, X as formatLo
40
40
  import "./tool-images-DzNHghBZ.js";
41
41
  import { d as readNumberParam, f as readReactionParams, h as readStringParam, l as jsonResult, n as missingTargetError, o as createActionGate } from "./target-errors-3PJA_VbO.js";
42
42
  import { c as parseSlackBlocksInput } from "./send-By6LXMdT.js";
43
- import { S as withTempDownloadPath, x as buildRandomTempFilePath } from "./audio-transcription-runner-02Kf0QEw.js";
43
+ import { S as withTempDownloadPath, x as buildRandomTempFilePath } from "./audio-transcription-runner-BP6ArtIg.js";
44
44
  import { a as resolveWindowsSpawnProgramCandidate, i as resolveWindowsSpawnProgram, n as materializeWindowsSpawnProgram, r as resolveWindowsExecutablePath, t as applyWindowsSpawnProgramPolicy } from "./windows-spawn-CH7H4rha.js";
45
45
  import { a as resolveAckReaction, n as createReplyPrefixOptions, t as createReplyPrefixContext } from "./reply-prefix-DSjz9ex2.js";
46
46
  import { i as isSilentReplyText, n as SILENT_REPLY_TOKEN } from "./tokens-CYf5ZhLm.js";
47
47
  import "./skill-commands-BbZ5VC2j.js";
48
48
  import "./skills-DhjFSX9k.js";
49
49
  import { J as rawDataToString } from "./chrome-2cewsnu1.js";
50
- import { j as resolveChannelMediaMaxBytes } from "./deliver-TLuU1nrG.js";
50
+ import { j as resolveChannelMediaMaxBytes } from "./deliver-DjyqqLGN.js";
51
51
  import { h as onDiagnosticEvent, m as isDiagnosticsEnabled, p as emitDiagnosticEvent } from "./diagnostic-Qi8YtEBS.js";
52
52
  import { r as extractOriginalFilename } from "./store-B49PVNHw.js";
53
- import "./pi-embedded-helpers-5SLsxaPD.js";
53
+ import "./pi-embedded-helpers-Cb9NLnv7.js";
54
54
  import { t as resolveWhatsAppOutboundTarget } from "./resolve-outbound-target-BWnhQoZm.js";
55
- import { r as resolveWhatsAppHeartbeatRecipients } from "./channel-web-kSEIZEuw.js";
55
+ import { r as resolveWhatsAppHeartbeatRecipients } from "./channel-web-DugGqCi6.js";
56
56
  import "./thinking-DGaZRXAR.js";
57
- import "./image-DthA-2Bt.js";
57
+ import "./image-B73NNIZF.js";
58
58
  import "./pi-model-discovery-D69omnZ4.js";
59
59
  import "./api-key-rotation-CRkGVkaE.js";
60
60
  import "./proxy-fetch-nIK8JZcG.js";
@@ -6076,8 +6076,20 @@ function formatBillingErrorMessage(provider, model) {
6076
6076
  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.";
6077
6077
  }
6078
6078
  const BILLING_ERROR_USER_MESSAGE = formatBillingErrorMessage();
6079
+ const CHAT_UI_HINT_BITSEEK_TOPUP_REQUIRED = "bitseek_topup_required";
6079
6080
  const RATE_LIMIT_ERROR_USER_MESSAGE = "⚠️ API rate limit reached. Please try again later.";
6080
6081
  const OVERLOADED_ERROR_USER_MESSAGE = "The AI service is temporarily overloaded. Please try again in a moment.";
6082
+ const BITSEEK_TOPUP_TRIGGER_TEXT = "credits not enough";
6083
+ function isBitSeekAutoModel(provider, model) {
6084
+ return provider?.trim().toLowerCase() === "bitseek" && model?.trim().toLowerCase() === "auto";
6085
+ }
6086
+ function resolveChatUiHintForError(params) {
6087
+ const rawError = params.rawError?.trim();
6088
+ if (!rawError) return;
6089
+ if (!isBitSeekAutoModel(params.provider, params.model)) return;
6090
+ if (!rawError.toLowerCase().includes(BITSEEK_TOPUP_TRIGGER_TEXT)) return;
6091
+ return CHAT_UI_HINT_BITSEEK_TOPUP_REQUIRED;
6092
+ }
6081
6093
  function formatRateLimitOrOverloadedErrorCopy(raw) {
6082
6094
  if (isRateLimitErrorMessage(raw)) return RATE_LIMIT_ERROR_USER_MESSAGE;
6083
6095
  if (isOverloadedErrorMessage(raw)) return OVERLOADED_ERROR_USER_MESSAGE;
@@ -7136,4 +7148,4 @@ function validateAnthropicTurns(messages) {
7136
7148
  }
7137
7149
 
7138
7150
  //#endregion
7139
- export { expandToolGroups 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, buildPluginToolGroups as J, resolveSandboxConfigForAgent as K, resolveSandboxContext as L, isTransientHttpError as M, parseImageDimensionError as N, isLikelyContextOverflowError as O, parseImageSizeError as P, stripPluginOnlyAllowlist as Q, resolveSandboxRuntimeStatus as R, isBillingAssistantError as S, isContextOverflowError as T, getBridgeAuthForPort as U, resolveBrowserConfig as V, ensureBrowserControlAuth as W, expandPolicyWithPluginGroups as X, collectExplicitAllowlist as Y, mergeAlsoAllowPolicy as Z, formatBillingErrorMessage as _, isMessagingToolDuplicateNormalized as a, ensureSessionHeader as at, isAuthAssistantError as b, extractToolCallsFromAssistant as c, sanitizeGoogleTurnOrdering as ct, downgradeOpenAIFunctionCallReasoningPairs as d, normalizeToolName as et, downgradeOpenAIReasoningBlocks as f, formatAssistantErrorText as g, classifyFailoverReason as h, isMessagingToolDuplicate as i, buildBootstrapContextFiles as it, isTimeoutErrorMessage as j, isRateLimitAssistantError as k, extractToolResultId as l, resolveGatewayCredentialsFromConfig as lt, BILLING_ERROR_USER_MESSAGE as m, validateGeminiTurns as n, compileGlobPatterns as nt, normalizeTextForComparison as o, resolveBootstrapMaxChars as ot, isGoogleModelApi as p, applyOwnerOnlyToolPolicy as q, pickFallbackThinkingLevel as r, matchesAnyGlobPattern as rt, sanitizeSessionMessagesImages as s, resolveBootstrapTotalMaxChars as st, validateAnthropicTurns as t, resolveToolProfilePolicy as tt, sanitizeToolCallIdsForCloudCodeAssist as u, trimToUndefined as ut, formatRawAssistantErrorForUi as v, isCompactionFailureError as w, isAuthPermanentErrorMessage as x, getApiErrorPayloadFingerprint as y, createBrowserRouteContext as z };
7151
+ export { stripPluginOnlyAllowlist 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, applyOwnerOnlyToolPolicy as J, resolveBrowserControlAuth as K, ensureSandboxWorkspaceForSession as L, isTransientHttpError as M, parseImageDimensionError as N, isLikelyContextOverflowError as O, parseImageSizeError as P, mergeAlsoAllowPolicy as Q, resolveSandboxContext as R, isBillingAssistantError as S, isContextOverflowError as T, resolveProfile as U, registerBrowserRoutes as V, getBridgeAuthForPort as W, collectExplicitAllowlist as X, buildPluginToolGroups as Y, expandPolicyWithPluginGroups as Z, formatBillingErrorMessage as _, isMessagingToolDuplicateNormalized as a, buildBootstrapContextFiles as at, isAuthAssistantError as b, extractToolCallsFromAssistant as c, resolveBootstrapTotalMaxChars as ct, downgradeOpenAIFunctionCallReasoningPairs as d, trimToUndefined as dt, expandToolGroups as et, downgradeOpenAIReasoningBlocks as f, formatAssistantErrorText as g, classifyFailoverReason as h, isMessagingToolDuplicate as i, matchesAnyGlobPattern as it, isTimeoutErrorMessage as j, isRateLimitAssistantError as k, extractToolResultId as l, sanitizeGoogleTurnOrdering as lt, BILLING_ERROR_USER_MESSAGE as m, validateGeminiTurns as n, resolveToolProfilePolicy as nt, normalizeTextForComparison as o, ensureSessionHeader as ot, isGoogleModelApi as p, resolveSandboxConfigForAgent as q, pickFallbackThinkingLevel as r, compileGlobPatterns as rt, sanitizeSessionMessagesImages as s, resolveBootstrapMaxChars as st, validateAnthropicTurns as t, normalizeToolName as tt, sanitizeToolCallIdsForCloudCodeAssist as u, resolveGatewayCredentialsFromConfig as ut, formatRawAssistantErrorForUi as v, isCompactionFailureError as w, isAuthPermanentErrorMessage as x, getApiErrorPayloadFingerprint as y, resolveSandboxRuntimeStatus as z };
@@ -48,19 +48,19 @@ import { A as describeReplyTarget, B as resolveTelegramStreamMode, C as buildSen
48
48
  import { a as canonicalizeBase64, i as resolveImageSanitizationLimits, n as sanitizeImageBlocks, o as estimateBase64DecodedBytes, r as sanitizeToolResultImages } from "./tool-images-DzNHghBZ.js";
49
49
  import { a as ToolInputError, c as imageResultFromFile, d as readNumberParam, f as readReactionParams, h as readStringParam, l as jsonResult, m as readStringOrNumberParam, n as missingTargetError, o as createActionGate, p as readStringArrayParam, r as unknownTargetError, s as imageResult, t as ambiguousTargetError, u as parseAvailableTags } from "./target-errors-3PJA_VbO.js";
50
50
  import { a as buildSlackBlocksFallbackText, c as parseSlackBlocksInput, i as normalizeSlackOutboundText, l as validateSlackBlocksArray, o as createSlackWebClient, s as resolveSlackWebClientOptions, t as sendMessageSlack } from "./send-By6LXMdT.js";
51
- import { _ as normalizeMediaUnderstandingChatType, a as resolveAutoImageModel, b as applyTemplate, c as findModelInCatalog, d as resolveAliasedOpenAiCompatibleModelId, f as registerUnhandledRejectionHandler, g as resolveTimeoutMs$2, h as resolveConcurrency, i as normalizeMediaAttachments, l as loadModelCatalog, m as resolveAttachmentKind, n as buildProviderRegistry, o as resolveMediaAttachmentLocalRoots, r as createMediaAttachmentCache, s as runCapability, t as runAudioTranscription, u as modelSupportsVision, v as resolveMediaUnderstandingScope, x as buildRandomTempFilePath, y as CLI_OUTPUT_MAX_BUFFER } from "./audio-transcription-runner-02Kf0QEw.js";
51
+ import { _ as normalizeMediaUnderstandingChatType, a as resolveAutoImageModel, b as applyTemplate, c as findModelInCatalog, d as resolveAliasedOpenAiCompatibleModelId, f as registerUnhandledRejectionHandler, g as resolveTimeoutMs$2, h as resolveConcurrency, i as normalizeMediaAttachments, l as loadModelCatalog, m as resolveAttachmentKind, n as buildProviderRegistry, o as resolveMediaAttachmentLocalRoots, r as createMediaAttachmentCache, s as runCapability, t as runAudioTranscription, u as modelSupportsVision, v as resolveMediaUnderstandingScope, x as buildRandomTempFilePath, y as CLI_OUTPUT_MAX_BUFFER } from "./audio-transcription-runner-BP6ArtIg.js";
52
52
  import { a as resolveAckReaction, c as resolveHumanDelayConfig, i as resolveResponsePrefixTemplate, n as createReplyPrefixOptions, o as resolveAgentIdentity, s as resolveEffectiveMessagesConfig } from "./reply-prefix-DSjz9ex2.js";
53
53
  import { a as stripSilentToken, i as isSilentReplyText, n as SILENT_REPLY_TOKEN, r as isSilentReplyPrefixText, t as HEARTBEAT_TOKEN } from "./tokens-CYf5ZhLm.js";
54
54
  import { c as getSkillsSnapshotVersion, d as pruneExpiredPending, f as resolvePairingPaths, i as resolveSkillCommandInvocation, l as generatePairingToken, n as listSkillCommandsForAgents, o as getRemoteSkillEligibility, r as listSkillCommandsForWorkspace, s as ensureSkillsWatcher, t as listReservedChatSlashCommandNames, u as rejectPendingPairingRequest } from "./skill-commands-BbZ5VC2j.js";
55
55
  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-DhjFSX9k.js";
56
56
  import { B as DEFAULT_AI_SNAPSHOT_MAX_CHARS, C as ensureChromeExtensionRelayServer, J as rawDataToString, K as isLoopbackHost, M as DEFAULT_UPLOAD_DIR, N as resolveExistingPathsWithinRoot, q as isSecureWebSocketUrl, s as resolveLsofCommandSync } from "./chrome-2cewsnu1.js";
57
- 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-TLuU1nrG.js";
57
+ 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-DjyqqLGN.js";
58
58
  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-Qi8YtEBS.js";
59
59
  import { a as saveMediaBuffer, i as getMediaDir, t as MEDIA_MAX_BYTES } from "./store-B49PVNHw.js";
60
- import { $ as expandToolGroups, 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 buildPluginToolGroups, K as resolveSandboxConfigForAgent, L as resolveSandboxContext, M as isTransientHttpError, N as parseImageDimensionError, O as isLikelyContextOverflowError, P as parseImageSizeError, Q as stripPluginOnlyAllowlist, R as resolveSandboxRuntimeStatus, S as isBillingAssistantError, T as isContextOverflowError, U as getBridgeAuthForPort, V as resolveBrowserConfig, W as ensureBrowserControlAuth, X as expandPolicyWithPluginGroups, Y as collectExplicitAllowlist, Z as mergeAlsoAllowPolicy, _ as formatBillingErrorMessage, a as isMessagingToolDuplicateNormalized, at as ensureSessionHeader, b as isAuthAssistantError, c as extractToolCallsFromAssistant, ct as sanitizeGoogleTurnOrdering, d as downgradeOpenAIFunctionCallReasoningPairs, et as normalizeToolName, f as downgradeOpenAIReasoningBlocks, g as formatAssistantErrorText, h as classifyFailoverReason, it as buildBootstrapContextFiles, j as isTimeoutErrorMessage, k as isRateLimitAssistantError, l as extractToolResultId, lt as resolveGatewayCredentialsFromConfig, m as BILLING_ERROR_USER_MESSAGE, n as validateGeminiTurns, nt as compileGlobPatterns, o as normalizeTextForComparison, ot as resolveBootstrapMaxChars, p as isGoogleModelApi, q as applyOwnerOnlyToolPolicy, r as pickFallbackThinkingLevel, rt as matchesAnyGlobPattern, s as sanitizeSessionMessagesImages, st as resolveBootstrapTotalMaxChars, t as validateAnthropicTurns, tt as resolveToolProfilePolicy, u as sanitizeToolCallIdsForCloudCodeAssist, ut as trimToUndefined$1, v as formatRawAssistantErrorForUi, w as isCompactionFailureError, x as isAuthPermanentErrorMessage, y as getApiErrorPayloadFingerprint, z as createBrowserRouteContext } from "./pi-embedded-helpers-5SLsxaPD.js";
60
+ import { $ as stripPluginOnlyAllowlist, 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 applyOwnerOnlyToolPolicy, K as resolveBrowserControlAuth, L as ensureSandboxWorkspaceForSession, M as isTransientHttpError, N as parseImageDimensionError, O as isLikelyContextOverflowError, P as parseImageSizeError, Q as mergeAlsoAllowPolicy, R as resolveSandboxContext, S as isBillingAssistantError, T as isContextOverflowError, U as resolveProfile, V as registerBrowserRoutes, W as getBridgeAuthForPort, X as collectExplicitAllowlist, Y as buildPluginToolGroups, Z as expandPolicyWithPluginGroups, _ as formatBillingErrorMessage, a as isMessagingToolDuplicateNormalized, at as buildBootstrapContextFiles, b as isAuthAssistantError, c as extractToolCallsFromAssistant, ct as resolveBootstrapTotalMaxChars, d as downgradeOpenAIFunctionCallReasoningPairs, dt as trimToUndefined$1, et as expandToolGroups, f as downgradeOpenAIReasoningBlocks, g as formatAssistantErrorText, h as classifyFailoverReason, it as matchesAnyGlobPattern, j as isTimeoutErrorMessage, k as isRateLimitAssistantError, l as extractToolResultId, lt as sanitizeGoogleTurnOrdering, m as BILLING_ERROR_USER_MESSAGE, n as validateGeminiTurns, nt as resolveToolProfilePolicy, o as normalizeTextForComparison, ot as ensureSessionHeader, p as isGoogleModelApi, q as resolveSandboxConfigForAgent, r as pickFallbackThinkingLevel, rt as compileGlobPatterns, s as sanitizeSessionMessagesImages, st as resolveBootstrapMaxChars, t as validateAnthropicTurns, tt as normalizeToolName, u as sanitizeToolCallIdsForCloudCodeAssist, ut as resolveGatewayCredentialsFromConfig, v as formatRawAssistantErrorForUi, w as isCompactionFailureError, x as isAuthPermanentErrorMessage, y as getApiErrorPayloadFingerprint, z as resolveSandboxRuntimeStatus } from "./pi-embedded-helpers-Cb9NLnv7.js";
61
61
  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-DGaZRXAR.js";
62
62
  import { r as normalizeInboundTextNewlines, t as finalizeInboundContext } from "./inbound-context-DZb6zIHq.js";
63
- import { C as extractTextFromChatContent, S as isInsideCode, T as minimaxUnderstandImage, _ 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 ensureOpenClawModelsJson, x as findCodeRegions, y as resolveToolDisplay } from "./image-DthA-2Bt.js";
63
+ import { C as extractTextFromChatContent, S as isInsideCode, T as minimaxUnderstandImage, _ 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 ensureOpenClawModelsJson, x as findCodeRegions, y as resolveToolDisplay } from "./image-B73NNIZF.js";
64
64
  import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-D69omnZ4.js";
65
65
  import { n as generateSecureUuid, t as generateSecureToken } from "./secure-random-C5PtFEje.js";
66
66
  import { t as makeProxyFetch } from "./proxy-fetch-nIK8JZcG.js";
@@ -5651,6 +5651,7 @@ const ChatEventSchema = Type.Object({
5651
5651
  ]),
5652
5652
  message: Type.Optional(Type.Unknown()),
5653
5653
  errorMessage: Type.Optional(Type.String()),
5654
+ uiHint: Type.Optional(Type.String()),
5654
5655
  usage: Type.Optional(Type.Unknown()),
5655
5656
  stopReason: Type.Optional(Type.String())
5656
5657
  }, { additionalProperties: false });
@@ -7852,7 +7853,7 @@ async function sendTranscriptEcho(params) {
7852
7853
  }
7853
7854
  const text = formatEchoTranscript(transcript, params.format ?? DEFAULT_ECHO_TRANSCRIPT_FORMAT);
7854
7855
  try {
7855
- const { deliverOutboundPayloads } = await import("./deliver-TLuU1nrG.js").then((n) => n.n);
7856
+ const { deliverOutboundPayloads } = await import("./deliver-DjyqqLGN.js").then((n) => n.n);
7856
7857
  await deliverOutboundPayloads({
7857
7858
  cfg,
7858
7859
  channel: normalizedChannel,
@@ -22391,7 +22392,7 @@ async function routeReply(params) {
22391
22392
  const resolvedReplyToId = replyToId ?? (channelId === "slack" && threadId != null && threadId !== "" ? String(threadId) : void 0);
22392
22393
  const resolvedThreadId = channelId === "slack" ? null : threadId ?? null;
22393
22394
  try {
22394
- const { deliverOutboundPayloads } = await import("./deliver-TLuU1nrG.js").then((n) => n.n);
22395
+ const { deliverOutboundPayloads } = await import("./deliver-DjyqqLGN.js").then((n) => n.n);
22395
22396
  const outboundSession = buildOutboundSessionContext({
22396
22397
  cfg,
22397
22398
  agentId: resolvedAgentId,
@@ -32282,7 +32283,7 @@ async function describeStickerImage(params) {
32282
32283
  logVerbose(`telegram: describing sticker with ${provider}/${model}`);
32283
32284
  try {
32284
32285
  const buffer = await fs$1.readFile(imagePath);
32285
- const { describeImageWithModel } = await import("./image-DthA-2Bt.js").then((n) => n.n);
32286
+ const { describeImageWithModel } = await import("./image-B73NNIZF.js").then((n) => n.n);
32286
32287
  return (await describeImageWithModel({
32287
32288
  buffer,
32288
32289
  fileName: "sticker.webp",
@@ -33549,7 +33550,7 @@ async function resolveDiscordPreflightAudioMentionContext(params) {
33549
33550
  const needsPreflightTranscription = !params.isDirectMessage && params.shouldRequireMention && hasAudioAttachment && !hasTypedText && params.mentionRegexes.length > 0;
33550
33551
  let transcript;
33551
33552
  if (needsPreflightTranscription) try {
33552
- const { transcribeFirstAudio } = await import("./audio-preflight-CnShZx3d.js");
33553
+ const { transcribeFirstAudio } = await import("./audio-preflight-DbFTsm9v.js");
33553
33554
  const audioUrls = audioAttachments.map((att) => att.url).filter((url) => typeof url === "string" && url.length > 0);
33554
33555
  if (audioUrls.length > 0) transcript = await transcribeFirstAudio({
33555
33556
  ctx: {
@@ -41201,7 +41202,7 @@ function createOutboundSendDepsFromCliSource(deps) {
41201
41202
  function createDefaultDeps() {
41202
41203
  return {
41203
41204
  sendMessageWhatsApp: async (...args) => {
41204
- const { sendMessageWhatsApp } = await import("./web-CY6oM5WK.js");
41205
+ const { sendMessageWhatsApp } = await import("./web-C_bWyLWF.js");
41205
41206
  return await sendMessageWhatsApp(...args);
41206
41207
  },
41207
41208
  sendMessageTelegram: async (...args) => {
@@ -58451,7 +58452,7 @@ const buildTelegramMessageContext = async ({ primaryCtx, allMedia, replyMedia =
58451
58452
  const disableAudioPreflight = firstDefined$1(topicConfig?.disableAudioPreflight, groupConfig?.disableAudioPreflight) === true;
58452
58453
  let preflightTranscript;
58453
58454
  if (isGroup && requireMention && hasAudio && !hasUserText && mentionRegexes.length > 0 && !disableAudioPreflight) try {
58454
- const { transcribeFirstAudio } = await import("./audio-preflight-CnShZx3d.js");
58455
+ const { transcribeFirstAudio } = await import("./audio-preflight-DbFTsm9v.js");
58455
58456
  preflightTranscript = await transcribeFirstAudio({
58456
58457
  ctx: {
58457
58458
  MediaPaths: allMedia.length > 0 ? allMedia.map((m) => m.path) : void 0,
@@ -61236,7 +61237,7 @@ function loadWebLoginQr() {
61236
61237
  return webLoginQrPromise;
61237
61238
  }
61238
61239
  function loadWebChannel() {
61239
- webChannelPromise ??= import("./web-CY6oM5WK.js");
61240
+ webChannelPromise ??= import("./web-C_bWyLWF.js");
61240
61241
  return webChannelPromise;
61241
61242
  }
61242
61243
  function loadWhatsAppActions() {
@@ -80136,6 +80137,11 @@ function handleAgentEnd(ctx) {
80136
80137
  const lastAssistant = ctx.state.lastAssistant;
80137
80138
  const isError = isAssistantMessage(lastAssistant) && lastAssistant.stopReason === "error";
80138
80139
  if (isError && lastAssistant) {
80140
+ const uiHint = resolveChatUiHintForError({
80141
+ provider: lastAssistant.provider,
80142
+ model: lastAssistant.model,
80143
+ rawError: lastAssistant.errorMessage
80144
+ });
80139
80145
  const errorText = (formatAssistantErrorText(lastAssistant, {
80140
80146
  cfg: ctx.params.config,
80141
80147
  sessionKey: ctx.params.sessionKey,
@@ -80149,6 +80155,7 @@ function handleAgentEnd(ctx) {
80149
80155
  data: {
80150
80156
  phase: "error",
80151
80157
  error: errorText,
80158
+ ...uiHint ? { uiHint } : {},
80152
80159
  endedAt: Date.now()
80153
80160
  }
80154
80161
  });
@@ -80156,7 +80163,8 @@ function handleAgentEnd(ctx) {
80156
80163
  stream: "lifecycle",
80157
80164
  data: {
80158
80165
  phase: "error",
80159
- error: errorText
80166
+ error: errorText,
80167
+ ...uiHint ? { uiHint } : {}
80160
80168
  }
80161
80169
  });
80162
80170
  } else {
@@ -91542,7 +91550,7 @@ async function deliverSessionMaintenanceWarning(params) {
91542
91550
  return;
91543
91551
  }
91544
91552
  try {
91545
- const { deliverOutboundPayloads } = await import("./deliver-TLuU1nrG.js").then((n) => n.n);
91553
+ const { deliverOutboundPayloads } = await import("./deliver-DjyqqLGN.js").then((n) => n.n);
91546
91554
  const outboundSession = buildOutboundSessionContext({
91547
91555
  cfg: params.cfg,
91548
91556
  sessionKey: params.sessionKey
@@ -1,5 +1,5 @@
1
1
  import { _ as webAuthExists, c as logWebSelfId, d as pickWebChannel, o as WA_WEB_AUTH_DIR } from "./accounts-lwmUYGUE.js";
2
- import "./reply-B_uFeTht.js";
2
+ import "./reply-BetOKhtK.js";
3
3
  import "./paths-DGY0zK8V.js";
4
4
  import "./github-copilot-token-BzzlOR4B.js";
5
5
  import "./config-QlwvRinO.js";
@@ -39,19 +39,19 @@ import "./send-DVH_jqoJ.js";
39
39
  import "./tool-images-DzNHghBZ.js";
40
40
  import "./target-errors-3PJA_VbO.js";
41
41
  import "./send-By6LXMdT.js";
42
- import "./audio-transcription-runner-02Kf0QEw.js";
42
+ import "./audio-transcription-runner-BP6ArtIg.js";
43
43
  import "./reply-prefix-DSjz9ex2.js";
44
44
  import "./tokens-CYf5ZhLm.js";
45
45
  import "./skill-commands-BbZ5VC2j.js";
46
46
  import "./skills-DhjFSX9k.js";
47
47
  import "./chrome-2cewsnu1.js";
48
- import "./deliver-TLuU1nrG.js";
48
+ import "./deliver-DjyqqLGN.js";
49
49
  import "./diagnostic-Qi8YtEBS.js";
50
50
  import "./store-B49PVNHw.js";
51
- import "./pi-embedded-helpers-5SLsxaPD.js";
52
- import { n as monitorWebInbox, t as monitorWebChannel } from "./channel-web-kSEIZEuw.js";
51
+ import "./pi-embedded-helpers-Cb9NLnv7.js";
52
+ import { n as monitorWebInbox, t as monitorWebChannel } from "./channel-web-DugGqCi6.js";
53
53
  import "./thinking-DGaZRXAR.js";
54
- import "./image-DthA-2Bt.js";
54
+ import "./image-B73NNIZF.js";
55
55
  import "./pi-model-discovery-D69omnZ4.js";
56
56
  import "./api-key-rotation-CRkGVkaE.js";
57
57
  import "./proxy-fetch-nIK8JZcG.js";
@@ -2,7 +2,7 @@ import { g as resolveStateDir } from "./paths-Drdbent8.js";
2
2
  import { p as theme } from "./globals-voGoTlHc.js";
3
3
  import { S as shortenHomePath, g as resolveConfigDir, x as shortenHomeInString, y as resolveUserPath } from "./utils-BKvMUpT6.js";
4
4
  import "./thinking-44rmAw5o.js";
5
- import "./reply-DkwQo3LK.js";
5
+ import "./reply-Cm66z0-z.js";
6
6
  import "./agent-scope-Bn65aC59.js";
7
7
  import { d as defaultRuntime } from "./subsystem-6SmBCR59.js";
8
8
  import { _ as resolveWorkspaceExtensionsDir } from "./workspace-lzz92TZO.js";
@@ -19,11 +19,11 @@ import { c as resolveBundledPluginsDir, h as defaultSlotIdForKey, m as applyExcl
19
19
  import "./dock-Bn2QE-9m.js";
20
20
  import "./message-channel-Dm3yaUvY.js";
21
21
  import "./send-Dxxk5u2M.js";
22
- import "./audio-transcription-runner-DVI-SHAn.js";
23
- import "./image-BKHeF2sO.js";
22
+ import "./audio-transcription-runner-CrM5-5xi.js";
23
+ import "./image-Cboo5_y3.js";
24
24
  import "./models-config-Cgw8LKC4.js";
25
25
  import "./pi-model-discovery-DT73YccP.js";
26
- import "./pi-embedded-helpers-BvHlsuFU.js";
26
+ import "./pi-embedded-helpers-DQudcPte.js";
27
27
  import "./sandbox-Chb3LtnP.js";
28
28
  import "./tool-catalog-zFhF8IWN.js";
29
29
  import "./chrome-BWx4KvKw.js";
@@ -63,11 +63,11 @@ import "./local-roots-ReGJM5-I.js";
63
63
  import "./model-catalog-o_5Qvrbx.js";
64
64
  import "./proxy-fetch-DMkkPEUM.js";
65
65
  import "./tokens-BmOFisP4.js";
66
- import "./deliver-UlKfF5ki.js";
66
+ import "./deliver-CjCvs92K.js";
67
67
  import "./commands-YnZ_Eu2G.js";
68
68
  import "./commands-registry-CzIUIRNv.js";
69
- import "./client-CluJsNRo.js";
70
- import "./call-BdLuBL48.js";
69
+ import "./client-zj7haqMb.js";
70
+ import "./call-DU_f0KMj.js";
71
71
  import "./pairing-token-D0ttfvQD.js";
72
72
  import "./fetch-D6Gs0ykq.js";
73
73
  import "./retry-CVTv2PZ0.js";
@@ -103,7 +103,7 @@ import "./replies-S1e_y-Ag.js";
103
103
  import "./skill-commands-6UiGV02g.js";
104
104
  import "./workspace-dirs-DHTCt_iG.js";
105
105
  import "./session-cost-usage-DVsKSBUG.js";
106
- import "./onboard-helpers-Oi4C_OMX.js";
106
+ import "./onboard-helpers-DEzzN6tA.js";
107
107
  import "./prompt-style-BCDsARgg.js";
108
108
  import "./pairing-labels-Bf79TO1N.js";
109
109
  import "./session-meta-B2wZLwyB.js";
@@ -124,7 +124,7 @@ import "./npm-pack-install-CeLUyfHv.js";
124
124
  import "./skill-scanner-fVKi33ir.js";
125
125
  import { a as installPluginFromPath, i as installPluginFromNpmSpec, n as recordPluginInstall, o as resolvePluginInstallDir, r as PLUGIN_INSTALL_ERROR_CODE } from "./installs-CAqAwIjp.js";
126
126
  import { t as renderTable } from "./table-Dzqv7War.js";
127
- import { i as buildPluginStatusReport, n as resolvePinnedNpmInstallRecordForCli, r as looksLikeLocalInstallSpec } from "./npm-resolution-tKQdyyrr.js";
127
+ import { i as buildPluginStatusReport, n as resolvePinnedNpmInstallRecordForCli, r as looksLikeLocalInstallSpec } from "./npm-resolution-B-kbVjrb.js";
128
128
  import { n as updateNpmInstalledPlugins, r as findBundledPluginSource } from "./update-WMZ0Xniu.js";
129
129
  import fs from "node:fs";
130
130
  import os from "node:os";
@@ -30,22 +30,22 @@ import "./accounts-MEuVJDoB.js";
30
30
  import "./bindings-BDScuSfd.js";
31
31
  import "./send-BLv3U-2N.js";
32
32
  import "./send-BUqXYyi5.js";
33
- import "./subagent-registry-BcuTxEMl.js";
33
+ import "./subagent-registry-ChrhyhQ5.js";
34
34
  import "./paths-oIurw4YQ.js";
35
35
  import "./chat-envelope-AUuZAcrC.js";
36
- import "./client-DVME2dNA.js";
37
- import "./call-Dx2aHVrt.js";
36
+ import "./client-Ct3INy6Q.js";
37
+ import "./call-BxxjyXST.js";
38
38
  import "./pairing-token-fCKTYUJ-.js";
39
39
  import "./net-B1yWST2Q.js";
40
40
  import "./tailnet-D67wyPIH.js";
41
41
  import "./tokens-COy2Fxku.js";
42
42
  import "./with-timeout-DUosdGNq.js";
43
- import "./deliver-CeItj33i.js";
43
+ import "./deliver-DkGKUNSW.js";
44
44
  import "./diagnostic-BS_rmYNQ.js";
45
45
  import "./diagnostic-session-state-B5Z0I32_.js";
46
46
  import "./send-BLyXZjPe.js";
47
47
  import "./image-ops-_2-6WZ4r.js";
48
- import "./pi-embedded-helpers-C6qtvkzL.js";
48
+ import "./pi-embedded-helpers-CrqtHYYD.js";
49
49
  import "./sandbox-ClasEjRW.js";
50
50
  import "./tool-catalog-CDe8aNjS.js";
51
51
  import "./chrome-F8yPeLCk.js";
@@ -68,9 +68,9 @@ import "./exec-approvals-allowlist-Dgb12MXc.js";
68
68
  import "./exec-safe-bin-runtime-policy-BfybDm-q.js";
69
69
  import "./model-catalog-D4hoiCav.js";
70
70
  import "./fetch-BZWXCGP2.js";
71
- import "./audio-transcription-runner-Dnkt3gmf.js";
71
+ import "./audio-transcription-runner--RGWC8nR.js";
72
72
  import "./fetch-guard-BplMfPrm.js";
73
- import "./image-HyFl8MrD.js";
73
+ import "./image-BsWoO0mu.js";
74
74
  import "./tool-display-sVaWRESD.js";
75
75
  import "./api-key-rotation-D7ptHGeX.js";
76
76
  import "./proxy-fetch-ReVzadXq.js";
@@ -106,7 +106,7 @@ import "./resolve-route-rhGDrrKc.js";
106
106
  import "./pi-tools.policy-DwPGGCBG.js";
107
107
  import "./proxy-BmxJF3Z2.js";
108
108
  import "./replies-9B0e_W0H.js";
109
- import "./onboard-helpers-DLQ_XMs1.js";
109
+ import "./onboard-helpers-D37MuS-y.js";
110
110
  import "./prompt-style-lCXEOxSK.js";
111
111
  import "./pairing-labels-BUGAt7vg.js";
112
112
  import "./session-meta-Cyjw6vgH.js";
@@ -125,7 +125,7 @@ import "./npm-pack-install-dRUKCY1x.js";
125
125
  import "./skill-scanner-D7WuF5Sb.js";
126
126
  import { a as installPluginFromPath, i as installPluginFromNpmSpec, n as recordPluginInstall, o as resolvePluginInstallDir, r as PLUGIN_INSTALL_ERROR_CODE } from "./installs-B2Z4DyUY.js";
127
127
  import { t as renderTable } from "./table-DHipKm5c.js";
128
- import { i as buildPluginStatusReport, n as resolvePinnedNpmInstallRecordForCli, r as looksLikeLocalInstallSpec } from "./npm-resolution-Dh42ChiK.js";
128
+ import { i as buildPluginStatusReport, n as resolvePinnedNpmInstallRecordForCli, r as looksLikeLocalInstallSpec } from "./npm-resolution-Dlw89aWh.js";
129
129
  import { n as updateNpmInstalledPlugins, r as findBundledPluginSource } from "./update-BPBo5wB4.js";
130
130
  import path from "node:path";
131
131
  import os from "node:os";
@@ -32,22 +32,22 @@ import "./accounts-MEuVJDoB.js";
32
32
  import "./bindings-BDScuSfd.js";
33
33
  import "./send-BLv3U-2N.js";
34
34
  import "./send-BUqXYyi5.js";
35
- import "./subagent-registry-BcuTxEMl.js";
35
+ import "./subagent-registry-ChrhyhQ5.js";
36
36
  import "./paths-oIurw4YQ.js";
37
37
  import "./chat-envelope-AUuZAcrC.js";
38
- import "./client-DVME2dNA.js";
39
- import "./call-Dx2aHVrt.js";
38
+ import "./client-Ct3INy6Q.js";
39
+ import "./call-BxxjyXST.js";
40
40
  import "./pairing-token-fCKTYUJ-.js";
41
41
  import "./net-B1yWST2Q.js";
42
42
  import "./tailnet-D67wyPIH.js";
43
43
  import "./tokens-COy2Fxku.js";
44
44
  import "./with-timeout-DUosdGNq.js";
45
- import "./deliver-CeItj33i.js";
45
+ import "./deliver-DkGKUNSW.js";
46
46
  import "./diagnostic-BS_rmYNQ.js";
47
47
  import "./diagnostic-session-state-B5Z0I32_.js";
48
48
  import "./send-BLyXZjPe.js";
49
49
  import "./image-ops-_2-6WZ4r.js";
50
- import "./pi-embedded-helpers-C6qtvkzL.js";
50
+ import "./pi-embedded-helpers-CrqtHYYD.js";
51
51
  import "./sandbox-ClasEjRW.js";
52
52
  import "./tool-catalog-CDe8aNjS.js";
53
53
  import "./chrome-F8yPeLCk.js";
@@ -70,9 +70,9 @@ import "./exec-approvals-allowlist-Dgb12MXc.js";
70
70
  import "./exec-safe-bin-runtime-policy-BfybDm-q.js";
71
71
  import "./model-catalog-D4hoiCav.js";
72
72
  import "./fetch-BZWXCGP2.js";
73
- import "./audio-transcription-runner-Dnkt3gmf.js";
73
+ import "./audio-transcription-runner--RGWC8nR.js";
74
74
  import "./fetch-guard-BplMfPrm.js";
75
- import "./image-HyFl8MrD.js";
75
+ import "./image-BsWoO0mu.js";
76
76
  import "./tool-display-sVaWRESD.js";
77
77
  import "./api-key-rotation-D7ptHGeX.js";
78
78
  import "./proxy-fetch-ReVzadXq.js";
@@ -108,7 +108,7 @@ import "./resolve-route-rhGDrrKc.js";
108
108
  import "./pi-tools.policy-DwPGGCBG.js";
109
109
  import "./proxy-BmxJF3Z2.js";
110
110
  import "./replies-9B0e_W0H.js";
111
- import "./onboard-helpers-DLQ_XMs1.js";
111
+ import "./onboard-helpers-D37MuS-y.js";
112
112
  import "./prompt-style-lCXEOxSK.js";
113
113
  import "./pairing-labels-BUGAt7vg.js";
114
114
  import "./session-meta-Cyjw6vgH.js";
@@ -121,13 +121,13 @@ import "./help-format-BGSdS7w4.js";
121
121
  import "./progress-ctu3wJgA.js";
122
122
  import "./constants-By6nxsIT.js";
123
123
  import "./context-window-guard-aKoSfdAy.js";
124
- import "./plugin-registry-fStNzAh6.js";
125
- import { n as resolveCliChannelOptions } from "./channel-options-MWKuSMlJ.js";
126
- import { t as getSubCliCommandsWithSubcommands } from "./register.subclis-C6ixj03Z.js";
127
- import { a as registerProgramCommands, r as getCoreCliCommandsWithSubcommands } from "./command-registry-C3Gr6QIZ.js";
124
+ import "./plugin-registry-D8mx10Uh.js";
125
+ import { n as resolveCliChannelOptions } from "./channel-options-BpjOUwv4.js";
126
+ import { t as getSubCliCommandsWithSubcommands } from "./register.subclis-B9f3-nRB.js";
127
+ import { a as registerProgramCommands, r as getCoreCliCommandsWithSubcommands } from "./command-registry-C7RGVIsP.js";
128
128
  import { r as setProgramContext } from "./program-context-BqyLhTGk.js";
129
129
  import { t as forceFreePort } from "./ports-BNwHSlzK.js";
130
- import { n as formatCliBannerLine, r as hasEmittedCliBanner, t as emitCliBanner } from "./banner-C4GZFnfu.js";
130
+ import { n as formatCliBannerLine, r as hasEmittedCliBanner, t as emitCliBanner } from "./banner-CZb1jHEj.js";
131
131
  import { Command, InvalidArgumentError } from "commander";
132
132
 
133
133
  //#region src/cli/program/context.ts
@@ -261,7 +261,7 @@ function loadConfigGuardModule() {
261
261
  return configGuardModulePromise;
262
262
  }
263
263
  function loadPluginRegistryModule() {
264
- pluginRegistryModulePromise ??= import("./plugin-registry-fStNzAh6.js").then((n) => n.n);
264
+ pluginRegistryModulePromise ??= import("./plugin-registry-D8mx10Uh.js").then((n) => n.n);
265
265
  return pluginRegistryModulePromise;
266
266
  }
267
267
  function getRootCommand(command) {