@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
@@ -4,122 +4,122 @@ import { g as resolveStateDir, r as STATE_DIR, u as resolveGatewayPort, y as res
4
4
  import { d as defaultRuntime, t as createSubsystemLogger, u as createNonExitingRuntime } from "./subsystem-BkPzfTiu.js";
5
5
  import { t as parseBooleanValue$1 } from "./boolean-DtWR5bt3.js";
6
6
  import { r as isTruthyEnvValue } from "./entry.js";
7
- import { $n as resolveAuthStorePathForDisplay, $r as buildAssistantMessageWithZeroUsage, Ai as DEFAULT_MODEL, Bn as listProfilesForProvider, Bt as unsetConfigValueAtPath, Cr as resolveReasoningDefault, Ct as isAvatarDataUrl, Dn as resolveSlackNativeStreaming, Dt as isSupportedLocalAvatarExtension, En as resolveDiscordPreviewStreamMode, Er as resolveThinkingDefault, Et as isPathWithinRoot, Ft as setConfigOverride, G as isInboundPathAllowed, H as normalizeTelegramCommandName, I as resolveConfigSnapshotHash, It as unsetConfigOverride, J as resolveIMessageRemoteAttachmentRoots, Jt as buildEnforcedShellCommand, Kn as ensureAuthProfileStore, Ln as resolveOwnerDisplaySetting, Lt as getConfigValueAtPath, M as loadConfig, Mi as resolveAuthProfileDisplayLabel, Nn as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH, Nt as getConfigOverrides, Oi as splitTrailingAuthProfile, On as resolveSlackStreamingMode, P as readConfigFileSnapshot, Pn as resolveAgentMaxConcurrent, Pt as resetConfigOverrides, Qr as buildAssistantMessage, R as writeConfigFile, Rt as parseConfigPath, Si as normalizeSecretInput, Sr as resolveModelRefFromString, St as AVATAR_MAX_BYTES, Tn as mapStreamingModeToSlackLegacyDraftStreamMode, Tr as resolveSubagentSpawnModelSelection, U as resolveTelegramCustomCommands, V as TELEGRAM_COMMAND_NAME_PATTERN, Vn as markAuthProfileGood, X as parseNonNegativeByteSize, Xr as OLLAMA_NATIVE_BASE_URL, Y as normalizeScpRemoteHost, Zr as createOllamaStreamFn, a as markAuthProfileFailure, ai as resolveApiKeyForProvider, ar as buildAllowedModelSet, at as parseDurationMs, br as resolveDefaultModelForAgent, c as resolveProfilesUnavailableReason, ci as resolveModelAuthMode, cr as findNormalizedProviderValue, di as resolveShellEnvFallbackTimeoutMs, dr as isCliProvider, ei as buildStreamErrorAssistantMessage, er as resolveOpenClawAgentDir, fr as modelKey, hr as normalizeProviderId, i as isProfileInCooldown, ii as requireApiKey, ji as DEFAULT_PROVIDER, jt as validateJsonSchemaValue, ki as DEFAULT_CONTEXT_TOKENS, l as resolveApiKeyForProfile, n as resolveAuthProfileOrder, ni as getApiKeyForModel, o as markAuthProfileUsed, or as buildConfiguredAllowlistKeys, pr as normalizeModelRef$2, q as resolveIMessageAttachmentRoots, r as getSoonestCooldownExpiry, ri as getCustomProviderApiKey, si as resolveEnvApiKey, sr as buildModelAliasIndex, ti as buildUsageWithNoCost, tr as withFileLock, ui as getShellPathFromLoginShell, wt as isAvatarHttpUrl, yn as applyMergePatch, yr as resolveConfiguredModelRef, z as validateConfigObjectWithPlugins, zn as dedupeProfileIds, zt as setConfigValueAtPath } from "./auth-profiles-Dgxwr8Sa.js";
7
+ import { $n as resolveAuthStorePathForDisplay, $r as buildAssistantMessageWithZeroUsage, Ai as DEFAULT_MODEL, Bn as listProfilesForProvider, Bt as unsetConfigValueAtPath, Cr as resolveReasoningDefault, Ct as isAvatarDataUrl, Dn as resolveSlackNativeStreaming, Dt as isSupportedLocalAvatarExtension, En as resolveDiscordPreviewStreamMode, Er as resolveThinkingDefault, Et as isPathWithinRoot, Ft as setConfigOverride, G as isInboundPathAllowed, H as normalizeTelegramCommandName, I as resolveConfigSnapshotHash, It as unsetConfigOverride, J as resolveIMessageRemoteAttachmentRoots, Jt as buildEnforcedShellCommand, Kn as ensureAuthProfileStore, Ln as resolveOwnerDisplaySetting, Lt as getConfigValueAtPath, M as loadConfig, Mi as resolveAuthProfileDisplayLabel, Nn as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH, Nt as getConfigOverrides, Oi as splitTrailingAuthProfile, On as resolveSlackStreamingMode, P as readConfigFileSnapshot, Pn as resolveAgentMaxConcurrent, Pt as resetConfigOverrides, Qr as buildAssistantMessage, R as writeConfigFile, Rt as parseConfigPath, Si as normalizeSecretInput, Sr as resolveModelRefFromString, St as AVATAR_MAX_BYTES, Tn as mapStreamingModeToSlackLegacyDraftStreamMode, Tr as resolveSubagentSpawnModelSelection, U as resolveTelegramCustomCommands, V as TELEGRAM_COMMAND_NAME_PATTERN, Vn as markAuthProfileGood, X as parseNonNegativeByteSize, Xr as OLLAMA_NATIVE_BASE_URL, Y as normalizeScpRemoteHost, Zr as createOllamaStreamFn, a as markAuthProfileFailure, ai as resolveApiKeyForProvider, ar as buildAllowedModelSet, at as parseDurationMs, br as resolveDefaultModelForAgent, c as resolveProfilesUnavailableReason, ci as resolveModelAuthMode, cr as findNormalizedProviderValue, di as resolveShellEnvFallbackTimeoutMs, dr as isCliProvider, ei as buildStreamErrorAssistantMessage, er as resolveOpenClawAgentDir, fr as modelKey, hr as normalizeProviderId, i as isProfileInCooldown, ii as requireApiKey, ji as DEFAULT_PROVIDER, jt as validateJsonSchemaValue, ki as DEFAULT_CONTEXT_TOKENS, l as resolveApiKeyForProfile, n as resolveAuthProfileOrder, ni as getApiKeyForModel, o as markAuthProfileUsed, or as buildConfiguredAllowlistKeys, pr as normalizeModelRef$2, q as resolveIMessageAttachmentRoots, r as getSoonestCooldownExpiry, ri as getCustomProviderApiKey, si as resolveEnvApiKey, sr as buildModelAliasIndex, ti as buildUsageWithNoCost, tr as withFileLock, ui as getShellPathFromLoginShell, wt as isAvatarHttpUrl, yn as applyMergePatch, yr as resolveConfiguredModelRef, z as validateConfigObjectWithPlugins, zn as dedupeProfileIds, zt as setConfigValueAtPath } from "./auth-profiles-DNfjfFON.js";
8
8
  import { t as formatCliCommand } from "./command-format-Bu77oTl0.js";
9
- import { _ as resolveAgentModelPrimaryValue, a as resolveAgentDir, d as resolveDefaultAgentId, f as resolveEffectiveModelFallbacks, g as resolveAgentModelFallbackValues, h as resolveSessionAgentIds, i as resolveAgentConfig, l as resolveAgentSkillsFilter, m as resolveSessionAgentId, p as resolveRunModelFallbacksOverride, r as listAgentIds, t as hasConfiguredModelFallbacks, u as resolveAgentWorkspaceDir, v as toAgentModelListLike } from "./agent-scope-YUWhK3d-.js";
9
+ import { _ as resolveAgentModelPrimaryValue, a as resolveAgentDir, d as resolveDefaultAgentId, f as resolveEffectiveModelFallbacks, g as resolveAgentModelFallbackValues, h as resolveSessionAgentIds, i as resolveAgentConfig, l as resolveAgentSkillsFilter, m as resolveSessionAgentId, p as resolveRunModelFallbacksOverride, r as listAgentIds, t as hasConfiguredModelFallbacks, u as resolveAgentWorkspaceDir, v as toAgentModelListLike } from "./agent-scope-BSkZamWK.js";
10
10
  import { C as isCronSessionKey, E as resolveThreadParentSessionKey, T as parseAgentSessionKey, _ as normalizeOptionalAccountId, b as getSubagentDepth, c as normalizeAgentId, d as resolveThreadSessionKeys, f as sanitizeAgentId, g as normalizeAccountId$2, h as DEFAULT_ACCOUNT_ID, l as normalizeMainKey, o as classifySessionKeyShape, r as buildAgentMainSessionKey, s as isValidAgentId, t as DEFAULT_AGENT_ID, u as resolveAgentIdFromSessionKey, v as isBlockedObjectKey, w as isSubagentSessionKey, x as isAcpSessionKey, y as deriveSessionChatType } from "./session-key-BLprDJYq.js";
11
11
  import { C as sliceUtf16Safe, E as isPlainObject, S as sleep$1, T as truncateUtf16Safe, b as shortenHomeInString, c as escapeRegExp, p as normalizeE164, r as clampInt, t as CONFIG_DIR, u as isRecord$1, v as resolveUserPath, x as shortenHomePath } from "./utils-Dwy0Sy1G.js";
12
- import { A as isNotFoundPathError, C as openBoundaryFileSync, N as normalizeWindowsPathForComparison, S as openBoundaryFile, a as DEFAULT_IDENTITY_FILENAME, d as ensureAgentWorkspace, f as filterBootstrapFilesForSession, g as resolveWorkspaceAttachmentsRoot, j as isPathInside, k as hasNodeErrorCode, m as loadWorkspaceBootstrapFiles, n as DEFAULT_AGENT_WORKSPACE_DIR, r as DEFAULT_BOOTSTRAP_FILENAME, y as resolveOpenClawPackageRoot } from "./workspace-D3Bd1Wd-.js";
12
+ import { A as isNotFoundPathError, C as openBoundaryFileSync, N as normalizeWindowsPathForComparison, S as openBoundaryFile, a as DEFAULT_IDENTITY_FILENAME, d as ensureAgentWorkspace, f as filterBootstrapFilesForSession, g as resolveWorkspaceAttachmentsRoot, j as isPathInside, k as hasNodeErrorCode, m as loadWorkspaceBootstrapFiles, n as DEFAULT_AGENT_WORKSPACE_DIR, r as DEFAULT_BOOTSTRAP_FILENAME, y as resolveOpenClawPackageRoot } from "./workspace-CZCYGcgM.js";
13
13
  import { i as logWarn, n as logError, r as logInfo, t as logDebug } from "./logger-JNFFzTLe.js";
14
14
  import { n as runExec, r as spawnWithFallback, t as runCommandWithTimeout } from "./exec-BxfdQ5hH.js";
15
15
  import { a as saveJsonFile, i as loadJsonFile } from "./github-copilot-token-BqbY2oVI.js";
16
16
  import { n as isDangerousHostEnvVarName } from "./host-env-security-CJMD0__Z.js";
17
17
  import { t as VERSION } from "./version-CGDNfh5C.js";
18
18
  import { E as triggerInternalHook, S as matchPluginCommand, _ as normalizePluginHttpPath, b as getPluginCommandSpecs, c as normalizeChannelId$1, d as getActivePluginRegistryKey, g as createPluginRegistry, m as setActivePluginRegistry, n as CHAT_CHANNEL_ORDER, p as requireActivePluginRegistry, s as normalizeAnyChannelId, u as getActivePluginRegistry, v as clearPluginCommands, w as createInternalHookEvent, x as listPluginCommands, y as executePluginCommand } from "./registry-C4Fq5HtN.js";
19
- import { a as safeStatSync, d as normalizePluginsConfig, f as resolveEffectiveEnableState, i as isPathInside$1, l as applyTestPluginDefaults, n as loadPluginManifestRegistry, p as resolveMemorySlotDecision, r as discoverOpenClawPlugins } from "./manifest-registry-D1Y5hoq2.js";
20
- import { a as resolveChannelGroupRequireMention, c as normalizeHyphenSlug, i as resolveChannelGroupPolicy, l as normalizeStringEntries, n as listChannelDocks, r as normalizeSignalMessagingTarget, s as normalizeAtHashSlug, t as getChannelDock, u as normalizeStringEntriesLower } from "./dock-CslXtXH_.js";
19
+ import { a as safeStatSync, d as normalizePluginsConfig, f as resolveEffectiveEnableState, i as isPathInside$1, l as applyTestPluginDefaults, n as loadPluginManifestRegistry, p as resolveMemorySlotDecision, r as discoverOpenClawPlugins } from "./manifest-registry-InPIGvqe.js";
20
+ import { a as resolveChannelGroupRequireMention, c as normalizeHyphenSlug, i as resolveChannelGroupPolicy, l as normalizeStringEntries, n as listChannelDocks, r as normalizeSignalMessagingTarget, s as normalizeAtHashSlug, t as getChannelDock, u as normalizeStringEntriesLower } from "./dock-Cki7hMDN.js";
21
21
  import { t as runTasksWithConcurrency } from "./run-with-concurrency-kzSMVKJz.js";
22
22
  import { n as recordCommandPoll, r as resetCommandPollCount } from "./command-poll-backoff-KDiSpWTU.js";
23
- import { i as buildModelAliasLines, n as resolveModel } from "./model-BUgU1YvD.js";
24
- import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-P149vq2k.js";
25
- import { a as resolveSkillsPromptForRun, d as resolveSandboxInputPath, h as applySkillEnvOverridesFromSnapshot, i as loadWorkspaceSkillEntries, l as assertMediaNotDataUrl, m as applySkillEnvOverrides, p as resolveSandboxedMediaSource, r as buildWorkspaceSkillSnapshot, u as assertSandboxPath } from "./skills-CDZAo2Sd.js";
26
- import { t as PATH_ALIAS_POLICIES } from "./path-alias-guards-BQRm9WIp.js";
23
+ import { i as buildModelAliasLines, n as resolveModel } from "./model-Cun06SAF.js";
24
+ import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-BnW942uP.js";
25
+ import { a as resolveSkillsPromptForRun, d as resolveSandboxInputPath, h as applySkillEnvOverridesFromSnapshot, i as loadWorkspaceSkillEntries, l as assertMediaNotDataUrl, m as applySkillEnvOverrides, p as resolveSandboxedMediaSource, r as buildWorkspaceSkillSnapshot, u as assertSandboxPath } from "./skills-cQZqFYZM.js";
26
+ import { t as PATH_ALIAS_POLICIES } from "./path-alias-guards-DCVgvjo3.js";
27
27
  import { a as isInternalMessageChannel, c as listDeliverableMessageChannels, d as resolveMessageChannel, h as GATEWAY_CLIENT_NAMES, i as isGatewayMessageChannel, l as normalizeMessageChannel, m as GATEWAY_CLIENT_MODES, n as isDeliverableMessageChannel, o as isMarkdownCapableMessageChannel, p as GATEWAY_CLIENT_IDS, t as INTERNAL_MESSAGE_CHANNEL, u as resolveGatewayMessageChannel } from "./message-channel-DuRP9JPi.js";
28
- import { C as normalizeSessionDeliveryFields, D as capArrayByJsonBytes, E as archiveSessionTranscripts, F as parseInlineDirectives$1, G as resolveSessionResetPolicy, H as resolveSessionKey, J as DEFAULT_RESET_TRIGGERS, K as resolveSessionResetType, R as jsonUtf8Bytes, S as normalizeDeliveryContext, U as evaluateSessionFreshness, V as resolveSessionLockMaxHoldFromTimeout, W as resolveChannelResetConfig, X as resolveFreshSessionTotalTokens, Y as mergeSessionEntry, Z as setSessionRuntimeModel, _ as isCacheEnabled, a as resolveAndPersistSessionFile, b as deliveryContextKey, c as recordSessionMetaFromInbound, ct as resolveGroupSessionKey, d as updateSessionStore, et as resolveExplicitAgentSessionKey, f as updateSessionStoreEntry, n as parseSessionThreadInfo, o as loadSessionStore, q as resolveThreadFlag, r as appendAssistantMessageToSessionTranscript, rt as deriveSessionMetaPatch, s as readSessionUpdatedAt, t as extractDeliveryInfo, tt as resolveMainSessionKey, u as updateLastRoute, v as resolveCacheTtlMs$1, w as normalizeAccountId$3, x as mergeDeliveryContext, y as deliveryContextFromSession, z as acquireSessionWriteLock } from "./sessions-DugDYFTs.js";
28
+ import { C as normalizeSessionDeliveryFields, D as capArrayByJsonBytes, E as archiveSessionTranscripts, F as parseInlineDirectives$1, G as resolveSessionResetPolicy, H as resolveSessionKey, J as DEFAULT_RESET_TRIGGERS, K as resolveSessionResetType, R as jsonUtf8Bytes, S as normalizeDeliveryContext, U as evaluateSessionFreshness, V as resolveSessionLockMaxHoldFromTimeout, W as resolveChannelResetConfig, X as resolveFreshSessionTotalTokens, Y as mergeSessionEntry, Z as setSessionRuntimeModel, _ as isCacheEnabled, a as resolveAndPersistSessionFile, b as deliveryContextKey, c as recordSessionMetaFromInbound, ct as resolveGroupSessionKey, d as updateSessionStore, et as resolveExplicitAgentSessionKey, f as updateSessionStoreEntry, n as parseSessionThreadInfo, o as loadSessionStore, q as resolveThreadFlag, r as appendAssistantMessageToSessionTranscript, rt as deriveSessionMetaPatch, s as readSessionUpdatedAt, t as extractDeliveryInfo, tt as resolveMainSessionKey, u as updateLastRoute, v as resolveCacheTtlMs$1, w as normalizeAccountId$3, x as mergeDeliveryContext, y as deliveryContextFromSession, z as acquireSessionWriteLock } from "./sessions-BUvaIZVg.js";
29
29
  import { t as normalizeChatType } from "./chat-type-CfYBRycO.js";
30
30
  import { n as resolveConversationLabel } from "./conversation-label-mOUC6IlY.js";
31
31
  import { t as resolveAccountEntry } from "./account-lookup-9wuXWwa_.js";
32
- import { C as resolveDiscordAccount, _ as isWhatsAppGroupJid, a as createTelegramActionGate, g as resolveSlackBotToken, h as resolveSlackAppToken, l as resolveTelegramAccount, m as resolveSlackReplyToMode, n as listChannelPlugins, o as listEnabledTelegramAccounts, p as resolveSlackAccount, r as normalizeChannelId$2, s as listTelegramAccountIds, t as getChannelPlugin, u as resolveTelegramToken, v as normalizeWhatsAppTarget, w as normalizeDiscordToken, x as listEnabledDiscordAccounts, y as createDiscordActionGate } from "./plugins-DPspmGax.js";
33
- import { _ as webAuthExists, c as logWebSelfId, i as resolveWhatsAppAccount, l as logoutWeb, p as readWebSelfId, s as getWebAuthAgeMs } from "./accounts-UZBaDk40.js";
34
- import { r as resolveIMessageAccount } from "./accounts-C9SoQRlD.js";
35
- import { i as resolveSignalAccount, t as listEnabledSignalAccounts } from "./accounts-MEuVJDoB.js";
36
- import { t as buildChannelAccountBindings } from "./bindings-BDScuSfd.js";
37
- 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-BLv3U-2N.js";
38
- 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-BUqXYyi5.js";
32
+ import { C as resolveDiscordAccount, _ as isWhatsAppGroupJid, a as createTelegramActionGate, g as resolveSlackBotToken, h as resolveSlackAppToken, l as resolveTelegramAccount, m as resolveSlackReplyToMode, n as listChannelPlugins, o as listEnabledTelegramAccounts, p as resolveSlackAccount, r as normalizeChannelId$2, s as listTelegramAccountIds, t as getChannelPlugin, u as resolveTelegramToken, v as normalizeWhatsAppTarget, w as normalizeDiscordToken, x as listEnabledDiscordAccounts, y as createDiscordActionGate } from "./plugins-B9LVNfXo.js";
33
+ import { _ as webAuthExists, c as logWebSelfId, i as resolveWhatsAppAccount, l as logoutWeb, p as readWebSelfId, s as getWebAuthAgeMs } from "./accounts-CAdzApsy.js";
34
+ import { r as resolveIMessageAccount } from "./accounts-CuCtdH3C.js";
35
+ import { i as resolveSignalAccount, t as listEnabledSignalAccounts } from "./accounts-Cz3RQNdH.js";
36
+ import { t as buildChannelAccountBindings } from "./bindings-B8U0BrYk.js";
37
+ 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-ofq5TYCm.js";
38
+ 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-B3N6ed5I.js";
39
39
  import { c as resolveStorePath, i as resolveSessionTranscriptPath, n as resolveSessionFilePath, r as resolveSessionFilePathOptions, t as resolveDefaultSessionStorePath } from "./paths-oIurw4YQ.js";
40
40
  import { i as normalizeInputProvenance, n as applyInputProvenanceToUserMessage, r as hasInterSessionUserProvenance } from "./input-provenance-BDYpbBeC.js";
41
- import { r as writeJsonAtomic } from "./json-files-DrZ4qfxw.js";
41
+ import { r as writeJsonAtomic } from "./json-files-1hhV5hS6.js";
42
42
  import { n as onSessionTranscriptUpdate, t as emitSessionTranscriptUpdate } from "./transcript-events-GAEkuGlu.js";
43
- import { Ft as SESSION_LABEL_MAX_LENGTH, t as GatewayClient } from "./client-DVME2dNA.js";
44
- import { a as randomIdempotencyKey, d as resolveLeastPrivilegeOperatorScopesForMethod, n as callGateway, r as callGatewayLeastPrivilege, t as buildGatewayConnectionDetails } from "./call-Dx2aHVrt.js";
45
- import { r as isLoopbackHost } from "./net-B1yWST2Q.js";
43
+ import { Ft as SESSION_LABEL_MAX_LENGTH, t as GatewayClient } from "./client-CbO7FTeL.js";
44
+ import { a as randomIdempotencyKey, d as resolveLeastPrivilegeOperatorScopesForMethod, n as callGateway, r as callGatewayLeastPrivilege, t as buildGatewayConnectionDetails } from "./call-Da49LtVk.js";
45
+ import { r as isLoopbackHost } from "./net-Dsab06Rf.js";
46
46
  import { r as trimToUndefined, t as resolveGatewayCredentialsFromConfig } from "./credentials-DfK6Oke5.js";
47
47
  import { a as stripSilentToken, i as isSilentReplyText, n as SILENT_REPLY_TOKEN, r as isSilentReplyPrefixText, t as HEARTBEAT_TOKEN } from "./tokens-COy2Fxku.js";
48
- import { a as getMachineDisplayName, i as startBrowserControlServiceFromConfig, n as createBrowserRouteDispatcher, r as createBrowserControlContext, t as withTimeout$4 } from "./with-timeout-DUosdGNq.js";
48
+ import { a as getMachineDisplayName, i as startBrowserControlServiceFromConfig, n as createBrowserRouteDispatcher, r as createBrowserControlContext, t as withTimeout$4 } from "./with-timeout-CojHmZpl.js";
49
49
  import { n as generateSecureUuid, t as generateSecureToken } from "./secure-random-C6AVByhV.js";
50
- import { A as initializeGlobalHookRunner, C as toInternalMessagePreprocessedContext, D as toPluginMessageReceivedEvent, E as toPluginMessageContext, O as fireAndForgetHook, S as deriveInboundMessageHookContext, T as toInternalMessageTranscribedContext, _ as createReplyToModeFilterForChannel, a as normalizeOutboundPayloadsForJson, b as normalizeChannelTargetInput, c as parseReplyDirectives, d as applyReplyThreading, f as filterMessagingToolDuplicates, g as shouldSuppressReasoningPayload, h as shouldSuppressMessagingToolReplies, i as normalizeOutboundPayloads, k as getGlobalHookRunner, l as splitMediaFromOutput, m as isRenderablePayload, o as normalizeReplyPayloadsForDelivery, p as filterMessagingToolMediaDuplicates, r as formatOutboundPayloadLog, s as throwIfAborted, t as deliverOutboundPayloads, u as applyReplyTagsToPayload, v as resolveReplyToMode, w as toInternalMessageReceivedContext, x as normalizeTargetForProvider, y as buildTargetResolverSignature } from "./deliver-CeItj33i.js";
51
- 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-BS_rmYNQ.js";
50
+ import { A as initializeGlobalHookRunner, C as toInternalMessagePreprocessedContext, D as toPluginMessageReceivedEvent, E as toPluginMessageContext, O as fireAndForgetHook, S as deriveInboundMessageHookContext, T as toInternalMessageTranscribedContext, _ as createReplyToModeFilterForChannel, a as normalizeOutboundPayloadsForJson, b as normalizeChannelTargetInput, c as parseReplyDirectives, d as applyReplyThreading, f as filterMessagingToolDuplicates, g as shouldSuppressReasoningPayload, h as shouldSuppressMessagingToolReplies, i as normalizeOutboundPayloads, k as getGlobalHookRunner, l as splitMediaFromOutput, m as isRenderablePayload, o as normalizeReplyPayloadsForDelivery, p as filterMessagingToolMediaDuplicates, r as formatOutboundPayloadLog, s as throwIfAborted, t as deliverOutboundPayloads, u as applyReplyTagsToPayload, v as resolveReplyToMode, w as toInternalMessageReceivedContext, x as normalizeTargetForProvider, y as buildTargetResolverSignature } from "./deliver-BCX2HRzP.js";
51
+ 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-CgNDbdut.js";
52
52
  import { n as getDiagnosticSessionState } from "./diagnostic-session-state-B5Z0I32_.js";
53
- import { A as buildTypingThreadParams, B as resolveTelegramReplyId, C as buildGroupLabel, D as buildTelegramGroupPeerId, E as buildTelegramGroupFrom, F as normalizeForwardedContext, G as normalizeDmAllowFromWithStore$1, H as resolveTelegramThreadSpec, I as resolveTelegramDirectPeerId, J as toLocationContext, K as resolveSenderAllowMatch$1, L as resolveTelegramForumThreadId, M as expandTextLinks, N as extractTelegramLocation, O as buildTelegramParentPeer, P as hasBotMention, R as resolveTelegramGroupAllowFromContext, T as buildSenderName, U as isSenderAllowed$1, V as resolveTelegramStreamMode, W as normalizeAllowFrom$2, X as parseTelegramTarget, Y as isVoiceCompatibleAudio, Z as resolveTelegramTargetChatType, _ as resolveTelegramFetch, a as reactMessageTelegram, b as loadCronStore, c as sendStickerTelegram, d as wasSentByBot, f as isRecoverableTelegramNetworkError, g as wrapFileReferencesInHtml, h as renderTelegramHtmlText, i as editMessageTelegram, j as describeReplyTarget, k as buildTelegramThreadParams, m as markdownToTelegramHtml, n as createForumTopicTelegram, o as sendMessageTelegram, p as markdownToTelegramChunks, q as formatLocationText, r as deleteMessageTelegram, s as sendPollTelegram, t as buildInlineKeyboard, u as resolveTelegramVoiceSend, v as splitTelegramCaption, w as buildSenderLabel, x as resolveCronStorePath, y as withTelegramApiErrorLogging, z as resolveTelegramMediaPlaceholder } from "./send-BLyXZjPe.js";
54
- 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-_2-6WZ4r.js";
55
- import { A as isRawApiErrorPayload, B as sanitizeGoogleTurnOrdering, C as isCloudCodeAssistFormatError, D as isFailoverErrorMessage, E as isFailoverAssistantError, F as sanitizeUserFacingText, I as buildBootstrapContextFiles, L as ensureSessionHeader, M as isTransientHttpError, N as parseImageDimensionError, O as isLikelyContextOverflowError, P as parseImageSizeError, R as resolveBootstrapMaxChars, S as isBillingAssistantError, T as isContextOverflowError, _ as formatBillingErrorMessage, a as isMessagingToolDuplicateNormalized, b as isAuthAssistantError, c as extractToolCallsFromAssistant, d as downgradeOpenAIFunctionCallReasoningPairs, f as downgradeOpenAIReasoningBlocks, g as formatAssistantErrorText, h as classifyFailoverReason, j as isTimeoutErrorMessage, k as isRateLimitAssistantError, l as extractToolResultId, m as BILLING_ERROR_USER_MESSAGE, n as validateGeminiTurns, o as normalizeTextForComparison, p as isGoogleModelApi, r as pickFallbackThinkingLevel, s as sanitizeSessionMessagesImages, t as validateAnthropicTurns, u as sanitizeToolCallIdsForCloudCodeAssist, v as formatRawAssistantErrorForUi, w as isCompactionFailureError, x as isAuthPermanentErrorMessage, y as getApiErrorPayloadFingerprint, z as resolveBootstrapTotalMaxChars } from "./pi-embedded-helpers-C6qtvkzL.js";
56
- import { C as resolveToolProfilePolicy, S as normalizeToolName, T as matchesAnyGlobPattern, _ as collectExplicitAllowlist, a as ensureSandboxWorkspaceForSession, b as stripPluginOnlyAllowlist, c as resolveSandboxRuntimeStatus, d as getBridgeAuthForPort, f as resolveSandboxConfigForAgent, g as buildPluginToolGroups, h as applyOwnerOnlyToolPolicy, o as resolveSandboxContext, v as expandPolicyWithPluginGroups, w as compileGlobPatterns, y as mergeAlsoAllowPolicy } from "./sandbox-ClasEjRW.js";
57
- import { j as DEFAULT_AI_SNAPSHOT_MAX_CHARS } from "./chrome-F8yPeLCk.js";
58
- import { c as resolveBrowserControlAuth, i as resolveBrowserConfig } from "./server-context-3YhieMNo.js";
59
- import { i as resolveExistingPathsWithinRoot, r as DEFAULT_UPLOAD_DIR } from "./paths-B0fezTQW.js";
53
+ import { A as buildTypingThreadParams, B as resolveTelegramReplyId, C as buildGroupLabel, D as buildTelegramGroupPeerId, E as buildTelegramGroupFrom, F as normalizeForwardedContext, G as normalizeDmAllowFromWithStore$1, H as resolveTelegramThreadSpec, I as resolveTelegramDirectPeerId, J as toLocationContext, K as resolveSenderAllowMatch$1, L as resolveTelegramForumThreadId, M as expandTextLinks, N as extractTelegramLocation, O as buildTelegramParentPeer, P as hasBotMention, R as resolveTelegramGroupAllowFromContext, T as buildSenderName, U as isSenderAllowed$1, V as resolveTelegramStreamMode, W as normalizeAllowFrom$2, X as parseTelegramTarget, Y as isVoiceCompatibleAudio, Z as resolveTelegramTargetChatType, _ as resolveTelegramFetch, a as reactMessageTelegram, b as loadCronStore, c as sendStickerTelegram, d as wasSentByBot, f as isRecoverableTelegramNetworkError, g as wrapFileReferencesInHtml, h as renderTelegramHtmlText, i as editMessageTelegram, j as describeReplyTarget, k as buildTelegramThreadParams, m as markdownToTelegramHtml, n as createForumTopicTelegram, o as sendMessageTelegram, p as markdownToTelegramChunks, q as formatLocationText, r as deleteMessageTelegram, s as sendPollTelegram, t as buildInlineKeyboard, u as resolveTelegramVoiceSend, v as splitTelegramCaption, w as buildSenderLabel, x as resolveCronStorePath, y as withTelegramApiErrorLogging, z as resolveTelegramMediaPlaceholder } from "./send-CUhKEB1L.js";
54
+ 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-Cv4BHtyC.js";
55
+ import { A as isRawApiErrorPayload, B as resolveBootstrapTotalMaxChars, C as isCloudCodeAssistFormatError, D as isFailoverErrorMessage, E as isFailoverAssistantError, F as resolveChatUiHintForError, I as sanitizeUserFacingText, L as buildBootstrapContextFiles, M as isTransientHttpError, N as parseImageDimensionError, O as isLikelyContextOverflowError, P as parseImageSizeError, R as ensureSessionHeader, S as isBillingAssistantError, T as isContextOverflowError, V as sanitizeGoogleTurnOrdering, _ as formatBillingErrorMessage, a as isMessagingToolDuplicateNormalized, b as isAuthAssistantError, c as extractToolCallsFromAssistant, d as downgradeOpenAIFunctionCallReasoningPairs, f as downgradeOpenAIReasoningBlocks, g as formatAssistantErrorText, h as classifyFailoverReason, j as isTimeoutErrorMessage, k as isRateLimitAssistantError, l as extractToolResultId, m as BILLING_ERROR_USER_MESSAGE, n as validateGeminiTurns, o as normalizeTextForComparison, p as isGoogleModelApi, r as pickFallbackThinkingLevel, s as sanitizeSessionMessagesImages, t as validateAnthropicTurns, u as sanitizeToolCallIdsForCloudCodeAssist, v as formatRawAssistantErrorForUi, w as isCompactionFailureError, x as isAuthPermanentErrorMessage, y as getApiErrorPayloadFingerprint, z as resolveBootstrapMaxChars } from "./pi-embedded-helpers-YXFiUfat.js";
56
+ import { C as resolveToolProfilePolicy, S as normalizeToolName, T as matchesAnyGlobPattern, _ as collectExplicitAllowlist, a as ensureSandboxWorkspaceForSession, b as stripPluginOnlyAllowlist, c as resolveSandboxRuntimeStatus, d as getBridgeAuthForPort, f as resolveSandboxConfigForAgent, g as buildPluginToolGroups, h as applyOwnerOnlyToolPolicy, o as resolveSandboxContext, v as expandPolicyWithPluginGroups, w as compileGlobPatterns, y as mergeAlsoAllowPolicy } from "./sandbox-GZ80o0rN.js";
57
+ import { j as DEFAULT_AI_SNAPSHOT_MAX_CHARS } from "./chrome-BosxOvwr.js";
58
+ import { c as resolveBrowserControlAuth, i as resolveBrowserConfig } from "./server-context-BIKTw3k8.js";
59
+ import { i as resolveExistingPathsWithinRoot, r as DEFAULT_UPLOAD_DIR } from "./paths-ufuDrRZO.js";
60
60
  import { a as testRegexWithBoundedInput, i as compileSafeRegex, n as redactSensitiveText } from "./redact-CYcs8rK6.js";
61
61
  import { i as formatUncaughtError, r as formatErrorMessage, s as readErrorName } from "./errors-BMwPyScO.js";
62
- import { i as openFileWithinRoot, l as writeFileWithinRoot, n as copyFileWithinRoot, o as readFileWithinRoot, r as createRootScopedReadFile, t as SafeOpenError } from "./fs-safe-nXGqHBF8.js";
63
- import { a as isBlockedHostnameOrIp, c as normalizeHostname, n as SsrFBlockedError } from "./proxy-env-B9lqcBfU.js";
64
- import { i as saveMediaBuffer, r as getMediaDir, t as MEDIA_MAX_BYTES } from "./store-GKlw8Qa-.js";
65
- import { i as resolveLsofCommandSync } from "./ports-Do_Plo8C.js";
66
- import { a as canonicalizeBase64, i as resolveImageSanitizationLimits, n as sanitizeImageBlocks, o as estimateBase64DecodedBytes, r as sanitizeToolResultImages } from "./tool-images-rmLnTSxP.js";
62
+ import { i as openFileWithinRoot, l as writeFileWithinRoot, n as copyFileWithinRoot, o as readFileWithinRoot, r as createRootScopedReadFile, t as SafeOpenError } from "./fs-safe-BtSQvuQn.js";
63
+ import { a as isBlockedHostnameOrIp, c as normalizeHostname, n as SsrFBlockedError } from "./proxy-env-DQluNeAy.js";
64
+ import { i as saveMediaBuffer, r as getMediaDir, t as MEDIA_MAX_BYTES } from "./store-D1eSPAL7.js";
65
+ import { i as resolveLsofCommandSync } from "./ports-BKC_uvax.js";
66
+ import { a as canonicalizeBase64, i as resolveImageSanitizationLimits, n as sanitizeImageBlocks, o as estimateBase64DecodedBytes, r as sanitizeToolResultImages } from "./tool-images-hL7SizLq.js";
67
67
  import { a as normalizeElevatedLevel, c as normalizeUsageDisplay, d as supportsXHighThinking, l as normalizeVerboseLevel, n as formatXHighModelHint, o as normalizeReasoningLevel, s as normalizeThinkLevel, t as formatThinkingLevels, u as resolveResponseUsageMode } from "./thinking-BxCyPtl0.js";
68
- import { t as ensureOpenClawModelsJson } from "./models-config-BUq1pLs3.js";
69
- import { n as evaluateShellAllowlist, r as resolveAllowAlwaysPatterns } from "./exec-approvals-allowlist-Dgb12MXc.js";
70
- import { n as resolveExecSafeBinRuntimePolicy, r as resolveMergedSafeBinProfileFixtures } from "./exec-safe-bin-runtime-policy-BfybDm-q.js";
71
- import { n as loadModelCatalog, r as modelSupportsVision, t as findModelInCatalog } from "./model-catalog-D4hoiCav.js";
72
- import { a as getDefaultMediaLocalRoots, i as getAgentScopedMediaLocalRoots, n as fetchRemoteMedia, r as readResponseWithLimit, t as MediaFetchError } from "./fetch-BZWXCGP2.js";
73
- import { a as resolveAutoImageModel, c as applyTemplate, d as normalizeMediaUnderstandingChatType, f as resolveMediaUnderstandingScope, g 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$1, v as resolveAttachmentKind } from "./audio-transcription-runner-Dnkt3gmf.js";
68
+ import { t as ensureOpenClawModelsJson } from "./models-config-BjTFyv9Z.js";
69
+ import { n as evaluateShellAllowlist, r as resolveAllowAlwaysPatterns } from "./exec-approvals-allowlist-Bdtmhwgj.js";
70
+ import { n as resolveExecSafeBinRuntimePolicy, r as resolveMergedSafeBinProfileFixtures } from "./exec-safe-bin-runtime-policy-DfgvmbZG.js";
71
+ import { n as loadModelCatalog, r as modelSupportsVision, t as findModelInCatalog } from "./model-catalog-BoIN1v0Q.js";
72
+ import { a as getDefaultMediaLocalRoots, i as getAgentScopedMediaLocalRoots, n as fetchRemoteMedia, r as readResponseWithLimit, t as MediaFetchError } from "./fetch-Dp9uG2qN.js";
73
+ import { a as resolveAutoImageModel, c as applyTemplate, d as normalizeMediaUnderstandingChatType, f as resolveMediaUnderstandingScope, g 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$1, v as resolveAttachmentKind } from "./audio-transcription-runner-BEtb5Jme.js";
74
74
  import { n as fetchWithTimeout, t as bindAbortRelay } from "./fetch-timeout-COrrU_w2.js";
75
- import { n as withStrictGuardedFetchMode, r as withTrustedEnvProxyGuardedFetchMode, t as fetchWithSsrFGuard } from "./fetch-guard-BplMfPrm.js";
76
- import { S as minimaxUnderstandImage, _ as stripThinkingTagsFromText, a as decodeDataUrl, b as isInsideCode, 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 stripReasoningTagsFromText, x as extractTextFromChatContent, y as findCodeRegions } from "./image-HyFl8MrD.js";
75
+ import { n as withStrictGuardedFetchMode, r as withTrustedEnvProxyGuardedFetchMode, t as fetchWithSsrFGuard } from "./fetch-guard-ClzGpvFK.js";
76
+ import { S as minimaxUnderstandImage, _ as stripThinkingTagsFromText, a as decodeDataUrl, b as isInsideCode, 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 stripReasoningTagsFromText, x as extractTextFromChatContent, y as findCodeRegions } from "./image-CrLgaJde.js";
77
77
  import { n as formatToolSummary, r as resolveToolDisplay } from "./tool-display-sVaWRESD.js";
78
78
  import { t as makeProxyFetch } from "./proxy-fetch-ReVzadXq.js";
79
- import { a as resolveAgentIdentity, i as resolveAckReaction, o as resolveEffectiveMessagesConfig, r as resolveResponsePrefixTemplate, s as resolveHumanDelayConfig, t as createReplyPrefixOptions } from "./reply-prefix-CqTNlEbX.js";
79
+ import { a as resolveAgentIdentity, i as resolveAckReaction, o as resolveEffectiveMessagesConfig, r as resolveResponsePrefixTemplate, s as resolveHumanDelayConfig, t as createReplyPrefixOptions } from "./reply-prefix-BwXX5Jk8.js";
80
80
  import { a as chunkText, c as resolveChunkMode, d as isSafeFenceBreak, f as parseFenceSpans, i as chunkMarkdownTextWithMode, l as resolveTextChunkLimit, o as chunkTextWithMode, r as chunkMarkdownText, t as chunkByNewline, u as findFenceSpanAt } from "./chunk-BNLlgymK.js";
81
- import { n as resolveMarkdownTableMode } from "./markdown-tables-BDe192Ai.js";
82
- import { a as loadWebMedia, i as getDefaultLocalRoots, o as loadWebMediaRaw } from "./ir-DaZ8ITYK.js";
83
- 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-AeE93vdq.js";
84
- import { a as resolveNativeSkillsEnabled, i as resolveNativeCommandsEnabled, n as isNativeCommandsExplicitlyDisabled, r as isRestartEnabled, t as isCommandFlagEnabled } from "./commands-NkZDaV9a.js";
85
- import { a as listChatCommands, c as listNativeCommandSpecsForConfig, d as parseCommandArgs, f as resolveCommandArgChoices, h as shouldHandleTextCommands, i as isCommandEnabled, l as maybeResolveTextAlias, m as serializeCommandArgs, o as listChatCommandsForConfig, p as resolveCommandArgMenu, r as findCommandByNativeName, s as listNativeCommandSpecs, t as buildCommandTextFromArgs, u as normalizeCommandBody } from "./commands-registry-BEOnewEO.js";
81
+ import { n as resolveMarkdownTableMode } from "./markdown-tables-DoeNp6Yw.js";
82
+ import { a as loadWebMedia, i as getDefaultLocalRoots, o as loadWebMediaRaw } from "./ir-Bov3hbIf.js";
83
+ 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-8-urss_s.js";
84
+ import { a as resolveNativeSkillsEnabled, i as resolveNativeCommandsEnabled, n as isNativeCommandsExplicitlyDisabled, r as isRestartEnabled, t as isCommandFlagEnabled } from "./commands-pIMTT07J.js";
85
+ import { a as listChatCommands, c as listNativeCommandSpecsForConfig, d as parseCommandArgs, f as resolveCommandArgChoices, h as shouldHandleTextCommands, i as isCommandEnabled, l as maybeResolveTextAlias, m as serializeCommandArgs, o as listChatCommandsForConfig, p as resolveCommandArgMenu, r as findCommandByNativeName, s as listNativeCommandSpecs, t as buildCommandTextFromArgs, u as normalizeCommandBody } from "./commands-registry-DsvOsTTF.js";
86
86
  import { r as normalizeInboundTextNewlines, t as finalizeInboundContext } from "./inbound-context-DrgeDGXO.js";
87
87
  import { n as wrapFetchWithAbortSignal, t as resolveFetch } from "./fetch-BAIuE19S.js";
88
88
  import { n as retryAsync } from "./retry-BB6FMQn9.js";
89
89
  import { n as formatTimeAgo } from "./format-relative-DdvuDKIv.js";
90
- import { c as readJsonFileWithFallback, d as listPairingChannels, i as readChannelAllowFromStore, l as writeJsonFileAtomically, o as removeChannelAllowFromStoreEntry, s as upsertChannelPairingRequest, t as addChannelAllowFromStoreEntry } from "./pairing-store-B27cuhBQ.js";
90
+ import { c as readJsonFileWithFallback, d as listPairingChannels, i as readChannelAllowFromStore, l as writeJsonFileAtomically, o as removeChannelAllowFromStoreEntry, s as upsertChannelPairingRequest, t as addChannelAllowFromStoreEntry } from "./pairing-store-BBxShFYa.js";
91
91
  import { d as resolveExecApprovals, f as resolveExecApprovalsFromFile, i as maxAsk, l as recordAllowlistUse, n as addAllowlistEntry, o as minSecurity, u as requiresExecApproval } from "./exec-approvals-DW6bgoDc.js";
92
- import { C as mergePathPrepend, S as findPathKey, a as canvasSnapshotTempPath, b as buildNodeShellCommand, c as parseCameraClipPayload, d as writeCameraClipPayloadToFile, f as writeCameraPayloadToFile, i as parseEnvPairs, l as parseCameraSnapPayload, n as screenRecordTempPath, o as parseCanvasSnapshotPayload, p as parsePreparedSystemRunPayload, r as writeScreenRecordToFile, s as cameraTempPath, t as parseScreenRecordPayload, u as writeBase64ToFile, w as normalizePathPrepend, x as applyPathPrepend } from "./nodes-screen-9RT6NG41.js";
92
+ import { C as mergePathPrepend, S as findPathKey, a as canvasSnapshotTempPath, b as buildNodeShellCommand, c as parseCameraClipPayload, d as writeCameraClipPayloadToFile, f as writeCameraPayloadToFile, i as parseEnvPairs, l as parseCameraSnapPayload, n as screenRecordTempPath, o as parseCanvasSnapshotPayload, p as parsePreparedSystemRunPayload, r as writeScreenRecordToFile, s as cameraTempPath, t as parseScreenRecordPayload, u as writeBase64ToFile, w as normalizePathPrepend, x as applyPathPrepend } from "./nodes-screen-BfHQppAv.js";
93
93
  import { t as killProcessTree$1 } from "./kill-tree-B3qqul4J.js";
94
- import { t as formatExecCommand } from "./system-run-command-Pd55ipfO.js";
94
+ import { t as formatExecCommand } from "./system-run-command-BkdvGhnZ.js";
95
95
  import { i as parsePairingList, n as resolveNodeIdFromNodeList, r as parseNodeList, t as resolveNodeFromNodeList } from "./node-resolve-kOyUD0le.js";
96
96
  import { i as formatDurationSeconds, r as formatDurationPrecise, t as formatDurationCompact$1 } from "./format-duration-BUg_QUd4.js";
97
- import { a as loadCombinedSessionStoreForGateway, d as resolveContextTokensForModel, u as lookupContextTokens } from "./session-utils-BSsFceEN.js";
97
+ import { a as loadCombinedSessionStoreForGateway, d as resolveContextTokensForModel, u as lookupContextTokens } from "./session-utils-dcEiC-U5.js";
98
98
  import { c as hasNonzeroUsage, l as makeZeroUsageSnapshot, n as loadCostUsageSummary, o as derivePromptTokens, r as loadSessionCostSummary, s as deriveSessionTotalTokens, u as normalizeUsage } from "./session-cost-usage-BsxmoBNj.js";
99
99
  import { i as resolveModelCostConfig, n as formatTokenCount$2, r as formatUsd, t as estimateUsageCost } from "./usage-format-BzVVjHV2.js";
100
- import { b as ensureSkillsWatcher, i as resolveSkillCommandInvocation, n as listSkillCommandsForAgents, o as getRemoteSkillEligibility, r as listSkillCommandsForWorkspace, t as listReservedChatSlashCommandNames, x as getSkillsSnapshotVersion } from "./skill-commands-KfP9rDJM.js";
100
+ import { b as ensureSkillsWatcher, i as resolveSkillCommandInvocation, n as listSkillCommandsForAgents, o as getRemoteSkillEligibility, r as listSkillCommandsForWorkspace, t as listReservedChatSlashCommandNames, x as getSkillsSnapshotVersion } from "./skill-commands-Do5yZvPn.js";
101
101
  import { n as recordChannelActivity, r as createDiscordRetryRunner, t as getChannelActivity } from "./channel-activity-SjFx-6OM.js";
102
102
  import { t as buildOutboundMediaLoadOptions } from "./load-options-BRu0610C.js";
103
103
  import { n as normalizePollInput } from "./polls-DXeUmcgz.js";
104
- import { t as convertMarkdownTables } from "./tables-B6wgQqYN.js";
104
+ import { t as convertMarkdownTables } from "./tables-CTFvIcTQ.js";
105
105
  import { f as resolveGatewaySystemdServiceName, l as resolveGatewayLaunchAgentLabel } from "./constants-CVdMnAs9.js";
106
106
  import { i as parseAbsoluteTimeMs, r as resolveDefaultCronStaggerMs, t as normalizeCronStaggerMs } from "./stagger-Bi1uV655.js";
107
- import { n as resolveMessageChannelSelection, t as listConfiguredMessageChannels } from "./channel-selection-ZJlD8RW_.js";
108
- import { t as applyPluginAutoEnable } from "./plugin-auto-enable-C4EhTu_y.js";
109
- import { a as resolveSignalRpcContext, c as streamSignalEvents, n as sendReadReceiptSignal, o as signalCheck, r as sendTypingSignal, s as signalRpcRequest, t as sendMessageSignal } from "./send-DLfPZ3_F.js";
110
- import { a as formatIMessageChatTarget, c as parseIMessageTarget, i as DEFAULT_IMESSAGE_PROBE_TIMEOUT_MS, o as isAllowedIMessageSender, r as createIMessageRpcClient, s as normalizeIMessageHandle, t as sendMessageIMessage } from "./send-CwHSY0pB.js";
111
- import { n as resolveAgentRoute, t as buildAgentSessionKey } from "./resolve-route-rhGDrrKc.js";
107
+ import { n as resolveMessageChannelSelection, t as listConfiguredMessageChannels } from "./channel-selection-BuY5iEbg.js";
108
+ import { t as applyPluginAutoEnable } from "./plugin-auto-enable-MtcFdE6T.js";
109
+ import { a as resolveSignalRpcContext, c as streamSignalEvents, n as sendReadReceiptSignal, o as signalCheck, r as sendTypingSignal, s as signalRpcRequest, t as sendMessageSignal } from "./send-D52tAxa7.js";
110
+ import { a as formatIMessageChatTarget, c as parseIMessageTarget, i as DEFAULT_IMESSAGE_PROBE_TIMEOUT_MS, o as isAllowedIMessageSender, r as createIMessageRpcClient, s as normalizeIMessageHandle, t as sendMessageIMessage } from "./send-DyQvZx-9.js";
111
+ import { n as resolveAgentRoute, t as buildAgentSessionKey } from "./resolve-route-BAFZr0AD.js";
112
112
  import { n as isSenderIdAllowed, r as mergeDmAllowFromSources, t as firstDefined$1 } from "./allow-from-Dw5EiUPa.js";
113
113
  import { t as parseTimeoutMs } from "./parse-timeout-kGl8Fsas.js";
114
114
  import { i as redactIdentifier, t as getActiveWebListener } from "./active-listener-KaPfyrww.js";
115
- import { a as resolveSubagentToolPolicy, c as readStoreAllowFromForDmPolicy, d as resolveDmGroupAccessWithLists, f as resolvePinnedMainDmOwnerFromAllowlist, i as resolveGroupToolPolicy, m as resolveControlCommandGate, n as isToolAllowedByPolicies, p as resolveCommandAuthorizedFromAuthorizers, r as resolveEffectiveToolPolicy, s as DM_GROUP_ACCESS_REASON, t as filterToolsByPolicy } from "./pi-tools.policy-DwPGGCBG.js";
115
+ import { a as resolveSubagentToolPolicy, c as readStoreAllowFromForDmPolicy, d as resolveDmGroupAccessWithLists, f as resolvePinnedMainDmOwnerFromAllowlist, i as resolveGroupToolPolicy, m as resolveControlCommandGate, n as isToolAllowedByPolicies, p as resolveCommandAuthorizedFromAuthorizers, r as resolveEffectiveToolPolicy, s as DM_GROUP_ACCESS_REASON, t as filterToolsByPolicy } from "./pi-tools.policy-ClPMGEq4.js";
116
116
  import { n as isDangerousNameMatchingEnabled } from "./dangerous-name-matching-CAHqhE34.js";
117
- import { a as createReplyReferencePlanner, i as resolveSlackThreadTs, n as deliverReplies$3, t as createSlackReplyDeliveryPlan } from "./replies-9B0e_W0H.js";
118
- import { r as detectBinary } from "./onboard-helpers-DLQ_XMs1.js";
119
- import { t as resolvePairingIdLabel } from "./pairing-labels-BUGAt7vg.js";
120
- import { t as recordInboundSessionMetaSafe } from "./session-meta-Cyjw6vgH.js";
121
- import { i as resolveMemoryBackendConfig, n as registerMemoryCli, r as getMemorySearchManager } from "./memory-cli-BMul3CV1.js";
122
- import { r as resolveMemorySearchConfig } from "./manager-B74jUC6O.js";
117
+ import { a as createReplyReferencePlanner, i as resolveSlackThreadTs, n as deliverReplies$3, t as createSlackReplyDeliveryPlan } from "./replies-Cnwwqegi.js";
118
+ import { r as detectBinary } from "./onboard-helpers-BS_bPZKe.js";
119
+ import { t as resolvePairingIdLabel } from "./pairing-labels-RbKVJQq5.js";
120
+ import { t as recordInboundSessionMetaSafe } from "./session-meta-Dofh28uR.js";
121
+ import { i as resolveMemoryBackendConfig, n as registerMemoryCli, r as getMemorySearchManager } from "./memory-cli-C0hNuh-t.js";
122
+ import { r as resolveMemorySearchConfig } from "./manager-ZjJ9M2x6.js";
123
123
  import { s as BITSEEK_PROVIDER_ID } from "./constants-By6nxsIT.js";
124
124
  import { a as resolveContextWindowInfo, i as resolveContextWindowHardMinTokens, n as CONTEXT_WINDOW_WARN_BELOW_TOKENS, r as evaluateContextWindowGuard } from "./context-window-guard-aKoSfdAy.js";
125
125
  import { createRequire } from "node:module";
@@ -130,7 +130,7 @@ import os, { homedir } from "node:os";
130
130
  import fs, { existsSync, mkdirSync, mkdtempSync, promises, readFileSync, renameSync, rmSync, statSync, unlinkSync, writeFileSync } from "node:fs";
131
131
  import JSON5 from "json5";
132
132
  import { inspect } from "node:util";
133
- import fs$1 from "node:fs/promises";
133
+ import fsPromises from "node:fs/promises";
134
134
  import { complete, completeSimple, createAssistantMessageEventStream, streamSimple } from "@mariozechner/pi-ai";
135
135
  import crypto, { createHash, createHmac, randomBytes, randomUUID } from "node:crypto";
136
136
  import { CURRENT_SESSION_VERSION, DefaultResourceLoader, SessionManager, SettingsManager, codingTools, createAgentSession, createEditTool, createReadTool, createWriteTool, estimateTokens, generateSummary, readTool } from "@mariozechner/pi-coding-agent";
@@ -5075,7 +5075,7 @@ async function resolveAgentSessionDirs(stateDir) {
5075
5075
  const agentsDir = path.join(stateDir, "agents");
5076
5076
  let entries = [];
5077
5077
  try {
5078
- entries = await fs$1.readdir(agentsDir, { withFileTypes: true });
5078
+ entries = await fsPromises.readdir(agentsDir, { withFileTypes: true });
5079
5079
  } catch (err) {
5080
5080
  if (err.code === "ENOENT") return [];
5081
5081
  throw err;
@@ -8142,7 +8142,7 @@ async function sendTranscriptEcho(params) {
8142
8142
  }
8143
8143
  const text = formatEchoTranscript(transcript, params.format ?? DEFAULT_ECHO_TRANSCRIPT_FORMAT);
8144
8144
  try {
8145
- const { deliverOutboundPayloads } = await import("./deliver-CeItj33i.js").then((n) => n.n);
8145
+ const { deliverOutboundPayloads } = await import("./deliver-BCX2HRzP.js").then((n) => n.n);
8146
8146
  await deliverOutboundPayloads({
8147
8147
  cfg,
8148
8148
  channel: normalizedChannel,
@@ -12944,7 +12944,7 @@ async function resolveSandboxWorkdir(params) {
12944
12944
  cwd: process.cwd(),
12945
12945
  root: params.sandbox.workspaceDir
12946
12946
  });
12947
- if (!(await fs$1.stat(resolved.resolved)).isDirectory()) throw new Error("workdir is not a directory");
12947
+ if (!(await fsPromises.stat(resolved.resolved)).isDirectory()) throw new Error("workdir is not a directory");
12948
12948
  const relative = resolved.relative ? resolved.relative.split(path.sep).join(path.posix.sep) : "";
12949
12949
  const containerWorkdir = relative ? path.posix.join(params.sandbox.containerWorkdir, relative) : params.sandbox.containerWorkdir;
12950
12950
  return {
@@ -14188,13 +14188,13 @@ async function validateScriptFileForShellBleed(params) {
14188
14188
  cwd: params.workdir,
14189
14189
  root: params.workdir
14190
14190
  });
14191
- stat = await fs$1.stat(absPath);
14191
+ stat = await fsPromises.stat(absPath);
14192
14192
  } catch {
14193
14193
  return;
14194
14194
  }
14195
14195
  if (!stat.isFile()) return;
14196
14196
  if (stat.size > 512 * 1024) return;
14197
- const content = await fs$1.readFile(absPath, "utf-8");
14197
+ const content = await fsPromises.readFile(absPath, "utf-8");
14198
14198
  const first = /\$[A-Z_][A-Z0-9_]{1,}/g.exec(content);
14199
14199
  if (first) {
14200
14200
  const idx = first.index;
@@ -23283,7 +23283,7 @@ async function routeReply(params) {
23283
23283
  const resolvedReplyToId = replyToId ?? (channelId === "slack" && threadId != null && threadId !== "" ? String(threadId) : void 0);
23284
23284
  const resolvedThreadId = channelId === "slack" ? null : threadId ?? null;
23285
23285
  try {
23286
- const { deliverOutboundPayloads } = await import("./deliver-CeItj33i.js").then((n) => n.n);
23286
+ const { deliverOutboundPayloads } = await import("./deliver-BCX2HRzP.js").then((n) => n.n);
23287
23287
  const outboundSession = buildOutboundSessionContext({
23288
23288
  cfg,
23289
23289
  agentId: resolvedAgentId,
@@ -23363,7 +23363,7 @@ async function emitResetCommandHooks(params) {
23363
23363
  try {
23364
23364
  const messages = [];
23365
23365
  if (sessionFile) {
23366
- const content = await fs$1.readFile(sessionFile, "utf-8");
23366
+ const content = await fsPromises.readFile(sessionFile, "utf-8");
23367
23367
  for (const line of content.split("\n")) {
23368
23368
  if (!line.trim()) continue;
23369
23369
  try {
@@ -24149,7 +24149,7 @@ async function createModelSelectionState(params) {
24149
24149
  }
24150
24150
  }
24151
24151
  if (sessionEntry && sessionStore && sessionKey && sessionEntry.authProfileOverride) {
24152
- const { ensureAuthProfileStore } = await import("./auth-profiles-Dgxwr8Sa.js").then((n) => n.t);
24152
+ const { ensureAuthProfileStore } = await import("./auth-profiles-DNfjfFON.js").then((n) => n.t);
24153
24153
  const profile = ensureAuthProfileStore(void 0, { allowKeychainPrompt: false }).profiles[sessionEntry.authProfileOverride];
24154
24154
  const providerKey = normalizeProviderId(provider);
24155
24155
  if (!profile || normalizeProviderId(profile.provider) !== providerKey) await clearSessionAuthProfileOverride({
@@ -27745,7 +27745,7 @@ async function readJsonlFromPath(jsonlPath) {
27745
27745
  if (shouldLogVerbose()) logVerbose(`Blocked canvas jsonlPath outside allowed roots: ${resolved}`);
27746
27746
  throw new Error("jsonlPath outside allowed roots");
27747
27747
  }
27748
- const canonical = await fs$1.realpath(resolved).catch(() => resolved);
27748
+ const canonical = await fsPromises.realpath(resolved).catch(() => resolved);
27749
27749
  if (!isInboundPathAllowed({
27750
27750
  filePath: canonical,
27751
27751
  roots
@@ -27753,7 +27753,7 @@ async function readJsonlFromPath(jsonlPath) {
27753
27753
  if (shouldLogVerbose()) logVerbose(`Blocked canvas jsonlPath outside allowed roots: ${canonical}`);
27754
27754
  throw new Error("jsonlPath outside allowed roots");
27755
27755
  }
27756
- return await fs$1.readFile(canonical, "utf8");
27756
+ return await fsPromises.readFile(canonical, "utf8");
27757
27757
  }
27758
27758
  const CanvasToolSchema = Type.Object({
27759
27759
  action: stringEnum(CANVAS_ACTIONS),
@@ -28568,27 +28568,27 @@ function resolveRestartSentinelPath(env = process.env) {
28568
28568
  }
28569
28569
  async function writeRestartSentinel(payload, env = process.env) {
28570
28570
  const filePath = resolveRestartSentinelPath(env);
28571
- await fs$1.mkdir(path.dirname(filePath), { recursive: true });
28571
+ await fsPromises.mkdir(path.dirname(filePath), { recursive: true });
28572
28572
  const data = {
28573
28573
  version: 1,
28574
28574
  payload
28575
28575
  };
28576
- await fs$1.writeFile(filePath, `${JSON.stringify(data, null, 2)}\n`, "utf-8");
28576
+ await fsPromises.writeFile(filePath, `${JSON.stringify(data, null, 2)}\n`, "utf-8");
28577
28577
  return filePath;
28578
28578
  }
28579
28579
  async function readRestartSentinel(env = process.env) {
28580
28580
  const filePath = resolveRestartSentinelPath(env);
28581
28581
  try {
28582
- const raw = await fs$1.readFile(filePath, "utf-8");
28582
+ const raw = await fsPromises.readFile(filePath, "utf-8");
28583
28583
  let parsed;
28584
28584
  try {
28585
28585
  parsed = JSON.parse(raw);
28586
28586
  } catch {
28587
- await fs$1.unlink(filePath).catch(() => {});
28587
+ await fsPromises.unlink(filePath).catch(() => {});
28588
28588
  return null;
28589
28589
  }
28590
28590
  if (!parsed || parsed.version !== 1 || !parsed.payload) {
28591
- await fs$1.unlink(filePath).catch(() => {});
28591
+ await fsPromises.unlink(filePath).catch(() => {});
28592
28592
  return null;
28593
28593
  }
28594
28594
  return parsed;
@@ -28600,7 +28600,7 @@ async function consumeRestartSentinel(env = process.env) {
28600
28600
  const filePath = resolveRestartSentinelPath(env);
28601
28601
  const parsed = await readRestartSentinel(env);
28602
28602
  if (!parsed) return null;
28603
- await fs$1.unlink(filePath).catch(() => {});
28603
+ await fsPromises.unlink(filePath).catch(() => {});
28604
28604
  return parsed;
28605
28605
  }
28606
28606
  function formatRestartSentinelMessage(payload) {
@@ -38791,18 +38791,18 @@ function appendImagePathsToPrompt(prompt, paths) {
38791
38791
  return `${trimmed}${trimmed ? "\n\n" : ""}${paths.join("\n")}`;
38792
38792
  }
38793
38793
  async function writeCliImages(images) {
38794
- const tempDir = await fs$1.mkdtemp(path.join(os.tmpdir(), "openclaw-cli-images-"));
38794
+ const tempDir = await fsPromises.mkdtemp(path.join(os.tmpdir(), "openclaw-cli-images-"));
38795
38795
  const paths = [];
38796
38796
  for (let i = 0; i < images.length; i += 1) {
38797
38797
  const image = images[i];
38798
38798
  const ext = resolveImageExtension(image.mimeType);
38799
38799
  const filePath = path.join(tempDir, `image-${i + 1}.${ext}`);
38800
38800
  const buffer = Buffer.from(image.data, "base64");
38801
- await fs$1.writeFile(filePath, buffer, { mode: 384 });
38801
+ await fsPromises.writeFile(filePath, buffer, { mode: 384 });
38802
38802
  paths.push(filePath);
38803
38803
  }
38804
38804
  const cleanup = async () => {
38805
- await fs$1.rm(tempDir, {
38805
+ await fsPromises.rm(tempDir, {
38806
38806
  recursive: true,
38807
38807
  force: true
38808
38808
  });
@@ -42705,7 +42705,7 @@ async function deliverSessionMaintenanceWarning(params) {
42705
42705
  return;
42706
42706
  }
42707
42707
  try {
42708
- const { deliverOutboundPayloads } = await import("./deliver-CeItj33i.js").then((n) => n.n);
42708
+ const { deliverOutboundPayloads } = await import("./deliver-BCX2HRzP.js").then((n) => n.n);
42709
42709
  const outboundSession = buildOutboundSessionContext({
42710
42710
  cfg: params.cfg,
42711
42711
  sessionKey: params.sessionKey
@@ -43212,7 +43212,7 @@ async function stageSandboxMedia(params) {
43212
43212
  const remoteMediaCacheDir = ctx.MediaRemoteHost ? path.join(CONFIG_DIR, "media", "remote-cache", sessionKey) : null;
43213
43213
  const effectiveWorkspaceDir = sandbox?.workspaceDir ?? remoteMediaCacheDir;
43214
43214
  if (!effectiveWorkspaceDir) return;
43215
- await fs$1.mkdir(effectiveWorkspaceDir, { recursive: true });
43215
+ await fsPromises.mkdir(effectiveWorkspaceDir, { recursive: true });
43216
43216
  const remoteAttachmentRoots = resolveIMessageRemoteAttachmentRoots({
43217
43217
  cfg,
43218
43218
  accountId: ctx.AccountId
@@ -43271,8 +43271,8 @@ async function stageLocalFileIntoRoot(params) {
43271
43271
  }
43272
43272
  async function stageRemoteFileIntoRoot(params) {
43273
43273
  const tmpRoot = resolvePreferredOpenClawTmpDir();
43274
- await fs$1.mkdir(tmpRoot, { recursive: true });
43275
- const tmpDir = await fs$1.mkdtemp(path.join(tmpRoot, "stage-sandbox-media-"));
43274
+ await fsPromises.mkdir(tmpRoot, { recursive: true });
43275
+ const tmpDir = await fsPromises.mkdtemp(path.join(tmpRoot, "stage-sandbox-media-"));
43276
43276
  const tmpPath = path.join(tmpDir, "download");
43277
43277
  try {
43278
43278
  await scpFile(params.remoteHost, params.remotePath, tmpPath);
@@ -43283,7 +43283,7 @@ async function stageRemoteFileIntoRoot(params) {
43283
43283
  maxBytes: params.maxBytes
43284
43284
  });
43285
43285
  } finally {
43286
- await fs$1.rm(tmpDir, {
43286
+ await fsPromises.rm(tmpDir, {
43287
43287
  recursive: true,
43288
43288
  force: true
43289
43289
  }).catch(() => {});
@@ -47629,8 +47629,8 @@ async function describeStickerImage(params) {
47629
47629
  const { provider, model } = resolved;
47630
47630
  logVerbose(`telegram: describing sticker with ${provider}/${model}`);
47631
47631
  try {
47632
- const buffer = await fs$1.readFile(imagePath);
47633
- const { describeImageWithModel } = await import("./image-HyFl8MrD.js").then((n) => n.n);
47632
+ const buffer = await fsPromises.readFile(imagePath);
47633
+ const { describeImageWithModel } = await import("./image-CrLgaJde.js").then((n) => n.n);
47634
47634
  return (await describeImageWithModel({
47635
47635
  buffer,
47636
47636
  fileName: "sticker.webp",
@@ -49219,7 +49219,7 @@ async function resolveDiscordPreflightAudioMentionContext(params) {
49219
49219
  const needsPreflightTranscription = !params.isDirectMessage && params.shouldRequireMention && hasAudioAttachment && !hasTypedText && params.mentionRegexes.length > 0;
49220
49220
  let transcript;
49221
49221
  if (needsPreflightTranscription) try {
49222
- const { transcribeFirstAudio } = await import("./audio-preflight-Be5qvEQA.js");
49222
+ const { transcribeFirstAudio } = await import("./audio-preflight-B1d3Otlb.js");
49223
49223
  const audioUrls = audioAttachments.map((att) => att.url).filter((url) => typeof url === "string" && url.length > 0);
49224
49224
  if (audioUrls.length > 0) transcript = await transcribeFirstAudio({
49225
49225
  ctx: {
@@ -53795,27 +53795,27 @@ function createOutboundSendDepsFromCliSource(deps) {
53795
53795
  function createDefaultDeps() {
53796
53796
  return {
53797
53797
  sendMessageWhatsApp: async (...args) => {
53798
- const { sendMessageWhatsApp } = await import("./web-B8lEM5aa.js");
53798
+ const { sendMessageWhatsApp } = await import("./web-yRXxasJ5.js");
53799
53799
  return await sendMessageWhatsApp(...args);
53800
53800
  },
53801
53801
  sendMessageTelegram: async (...args) => {
53802
- const { sendMessageTelegram } = await import("./send-BLyXZjPe.js").then((n) => n.l);
53802
+ const { sendMessageTelegram } = await import("./send-CUhKEB1L.js").then((n) => n.l);
53803
53803
  return await sendMessageTelegram(...args);
53804
53804
  },
53805
53805
  sendMessageDiscord: async (...args) => {
53806
- const { sendMessageDiscord } = await import("./send-BUqXYyi5.js").then((n) => n.t);
53806
+ const { sendMessageDiscord } = await import("./send-B3N6ed5I.js").then((n) => n.t);
53807
53807
  return await sendMessageDiscord(...args);
53808
53808
  },
53809
53809
  sendMessageSlack: async (...args) => {
53810
- const { sendMessageSlack } = await import("./send-BLv3U-2N.js").then((n) => n.n);
53810
+ const { sendMessageSlack } = await import("./send-ofq5TYCm.js").then((n) => n.n);
53811
53811
  return await sendMessageSlack(...args);
53812
53812
  },
53813
53813
  sendMessageSignal: async (...args) => {
53814
- const { sendMessageSignal } = await import("./send-DLfPZ3_F.js").then((n) => n.i);
53814
+ const { sendMessageSignal } = await import("./send-D52tAxa7.js").then((n) => n.i);
53815
53815
  return await sendMessageSignal(...args);
53816
53816
  },
53817
53817
  sendMessageIMessage: async (...args) => {
53818
- const { sendMessageIMessage } = await import("./send-CwHSY0pB.js").then((n) => n.n);
53818
+ const { sendMessageIMessage } = await import("./send-DyQvZx-9.js").then((n) => n.n);
53819
53819
  return await sendMessageIMessage(...args);
53820
53820
  }
53821
53821
  };
@@ -54956,10 +54956,10 @@ function estimateDurationSeconds(pcm) {
54956
54956
  return pcm.length / (bytesPerSample * SAMPLE_RATE);
54957
54957
  }
54958
54958
  async function writeWavFile(pcm) {
54959
- const tempDir = await fs$1.mkdtemp(path.join(resolvePreferredOpenClawTmpDir(), "discord-voice-"));
54959
+ const tempDir = await fsPromises.mkdtemp(path.join(resolvePreferredOpenClawTmpDir(), "discord-voice-"));
54960
54960
  const filePath = path.join(tempDir, `segment-${randomUUID()}.wav`);
54961
54961
  const wav = buildWavBuffer(pcm);
54962
- await fs$1.writeFile(filePath, wav);
54962
+ await fsPromises.writeFile(filePath, wav);
54963
54963
  scheduleTempCleanup(tempDir);
54964
54964
  return {
54965
54965
  path: filePath,
@@ -54968,7 +54968,7 @@ async function writeWavFile(pcm) {
54968
54968
  }
54969
54969
  function scheduleTempCleanup(tempDir, delayMs = 1800 * 1e3) {
54970
54970
  setTimeout(() => {
54971
- fs$1.rm(tempDir, {
54971
+ fsPromises.rm(tempDir, {
54972
54972
  recursive: true,
54973
54973
  force: true
54974
54974
  }).catch((err) => {
@@ -59265,7 +59265,7 @@ function normalizeAllowList$1(list) {
59265
59265
  async function detectRemoteHostFromCliPath(cliPath) {
59266
59266
  try {
59267
59267
  const expanded = cliPath.startsWith("~") ? cliPath.replace(/^~/, process.env.HOME ?? "") : cliPath;
59268
- const content = await fs$1.readFile(expanded, "utf8");
59268
+ const content = await fsPromises.readFile(expanded, "utf8");
59269
59269
  const userHostMatch = content.match(/\bssh\b[^\n]*?\s+([a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+)/);
59270
59270
  if (userHostMatch) return userHostMatch[1];
59271
59271
  return content.match(/\bssh\b[^\n]*?\s+([a-zA-Z][a-zA-Z0-9._-]*)\s+\S*\bimsg\b/)?.[1];
@@ -65887,7 +65887,7 @@ function readSlackExternalArgMenuToken(raw) {
65887
65887
  }
65888
65888
  let commandsRegistry;
65889
65889
  async function getCommandsRegistry() {
65890
- if (!commandsRegistry) commandsRegistry = await import("./commands-registry-BEOnewEO.js").then((n) => n.n);
65890
+ if (!commandsRegistry) commandsRegistry = await import("./commands-registry-DsvOsTTF.js").then((n) => n.n);
65891
65891
  return commandsRegistry;
65892
65892
  }
65893
65893
  function encodeSlackCommandArgValue(parts) {
@@ -66217,14 +66217,14 @@ async function registerSlackMonitorSlashCommands(params) {
66217
66217
  const channelName = channelInfo?.name;
66218
66218
  const roomLabel = channelName ? `#${channelName}` : `#${command.channel_id}`;
66219
66219
  const [{ resolveAgentRoute }, { finalizeInboundContext }, { dispatchReplyWithDispatcher }] = await Promise.all([
66220
- import("./resolve-route-rhGDrrKc.js").then((n) => n.r),
66220
+ import("./resolve-route-BAFZr0AD.js").then((n) => n.r),
66221
66221
  import("./inbound-context-DrgeDGXO.js").then((n) => n.n),
66222
66222
  Promise.resolve().then(() => provider_dispatcher_exports)
66223
66223
  ]);
66224
66224
  const [{ resolveConversationLabel }, { createReplyPrefixOptions }, { recordInboundSessionMetaSafe }] = await Promise.all([
66225
66225
  import("./conversation-label-mOUC6IlY.js").then((n) => n.t),
66226
- import("./reply-prefix-CqTNlEbX.js").then((n) => n.n),
66227
- import("./session-meta-Cyjw6vgH.js").then((n) => n.n)
66226
+ import("./reply-prefix-BwXX5Jk8.js").then((n) => n.n),
66227
+ import("./session-meta-Dofh28uR.js").then((n) => n.n)
66228
66228
  ]);
66229
66229
  const route = resolveAgentRoute({
66230
66230
  cfg,
@@ -66289,9 +66289,9 @@ async function registerSlackMonitorSlashCommands(params) {
66289
66289
  });
66290
66290
  const deliverSlashPayloads = async (replies) => {
66291
66291
  const [{ deliverSlackSlashReplies }, { resolveChunkMode }, { resolveMarkdownTableMode }] = await Promise.all([
66292
- import("./replies-9B0e_W0H.js").then((n) => n.r),
66292
+ import("./replies-Cnwwqegi.js").then((n) => n.r),
66293
66293
  import("./chunk-BNLlgymK.js").then((n) => n.s),
66294
- import("./markdown-tables-BDe192Ai.js").then((n) => n.t)
66294
+ import("./markdown-tables-DoeNp6Yw.js").then((n) => n.t)
66295
66295
  ]);
66296
66296
  await deliverSlackSlashReplies({
66297
66297
  replies,
@@ -66344,7 +66344,7 @@ async function registerSlackMonitorSlashCommands(params) {
66344
66344
  let nativeCommands = [];
66345
66345
  if (nativeEnabled) {
66346
66346
  reg = await getCommandsRegistry();
66347
- const skillCommands = nativeSkillsEnabled ? (await import("./skill-commands-KfP9rDJM.js").then((n) => n.a)).listSkillCommandsForAgents({ cfg }) : [];
66347
+ const skillCommands = nativeSkillsEnabled ? (await import("./skill-commands-Do5yZvPn.js").then((n) => n.a)).listSkillCommandsForAgents({ cfg }) : [];
66348
66348
  nativeCommands = reg.listNativeCommandSpecsForConfig(cfg, {
66349
66349
  skillCommands,
66350
66350
  provider: "slack"
@@ -69253,7 +69253,7 @@ const buildTelegramMessageContext = async ({ primaryCtx, allMedia, replyMedia =
69253
69253
  const disableAudioPreflight = firstDefined$1(topicConfig?.disableAudioPreflight, groupConfig?.disableAudioPreflight) === true;
69254
69254
  let preflightTranscript;
69255
69255
  if (isGroup && requireMention && hasAudio && !hasUserText && mentionRegexes.length > 0 && !disableAudioPreflight) try {
69256
- const { transcribeFirstAudio } = await import("./audio-preflight-Be5qvEQA.js");
69256
+ const { transcribeFirstAudio } = await import("./audio-preflight-B1d3Otlb.js");
69257
69257
  preflightTranscript = await transcribeFirstAudio({
69258
69258
  ctx: {
69259
69259
  MediaPaths: allMedia.length > 0 ? allMedia.map((m) => m.path) : void 0,
@@ -70615,7 +70615,7 @@ function resolveCommandHashPath(accountId, botIdentity) {
70615
70615
  }
70616
70616
  async function readCachedCommandHash(accountId, botIdentity) {
70617
70617
  try {
70618
- return (await fs$1.readFile(resolveCommandHashPath(accountId, botIdentity), "utf-8")).trim();
70618
+ return (await fsPromises.readFile(resolveCommandHashPath(accountId, botIdentity), "utf-8")).trim();
70619
70619
  } catch {
70620
70620
  return null;
70621
70621
  }
@@ -70623,8 +70623,8 @@ async function readCachedCommandHash(accountId, botIdentity) {
70623
70623
  async function writeCachedCommandHash(accountId, botIdentity, hash) {
70624
70624
  const filePath = resolveCommandHashPath(accountId, botIdentity);
70625
70625
  try {
70626
- await fs$1.mkdir(path.dirname(filePath), { recursive: true });
70627
- await fs$1.writeFile(filePath, hash, "utf-8");
70626
+ await fsPromises.mkdir(path.dirname(filePath), { recursive: true });
70627
+ await fsPromises.writeFile(filePath, hash, "utf-8");
70628
70628
  } catch {}
70629
70629
  }
70630
70630
  function syncTelegramMenuCommands(params) {
@@ -71462,7 +71462,7 @@ function safeParseState(raw) {
71462
71462
  async function readTelegramUpdateOffset(params) {
71463
71463
  const filePath = resolveTelegramUpdateOffsetPath(params.accountId, params.env);
71464
71464
  try {
71465
- const parsed = safeParseState(await fs$1.readFile(filePath, "utf-8"));
71465
+ const parsed = safeParseState(await fsPromises.readFile(filePath, "utf-8"));
71466
71466
  const expectedBotId = extractBotIdFromToken(params.botToken);
71467
71467
  if (expectedBotId && parsed?.botId && parsed.botId !== expectedBotId) return null;
71468
71468
  if (expectedBotId && parsed?.botId === null) return null;
@@ -71486,7 +71486,7 @@ async function writeTelegramUpdateOffset(params) {
71486
71486
  async function deleteTelegramUpdateOffset(params) {
71487
71487
  const filePath = resolveTelegramUpdateOffsetPath(params.accountId, params.env);
71488
71488
  try {
71489
- await fs$1.unlink(filePath);
71489
+ await fsPromises.unlink(filePath);
71490
71490
  } catch (err) {
71491
71491
  if (err.code === "ENOENT") return;
71492
71492
  throw err;
@@ -71960,7 +71960,7 @@ function createWhatsAppLoginTool() {
71960
71960
  force: Type.Optional(Type.Boolean())
71961
71961
  }),
71962
71962
  execute: async (_toolCallId, args) => {
71963
- const { startWebLoginWithQr, waitForWebLogin } = await import("./login-qr-TavUzvgE.js");
71963
+ const { startWebLoginWithQr, waitForWebLogin } = await import("./login-qr-DzUhzJq4.js");
71964
71964
  if ((args?.action ?? "start") === "wait") {
71965
71965
  const result = await waitForWebLogin({ timeoutMs: typeof args.timeoutMs === "number" ? args.timeoutMs : void 0 });
71966
71966
  return {
@@ -72035,23 +72035,23 @@ let webLoginQrPromise = null;
72035
72035
  let webChannelPromise = null;
72036
72036
  let whatsappActionsPromise = null;
72037
72037
  function loadWebOutbound() {
72038
- webOutboundPromise ??= import("./outbound-DhEQ9Uxy.js").then((n) => n.t);
72038
+ webOutboundPromise ??= import("./outbound-SGcz-hQs.js").then((n) => n.t);
72039
72039
  return webOutboundPromise;
72040
72040
  }
72041
72041
  function loadWebLogin() {
72042
- webLoginPromise ??= import("./login--V3ibRWJ.js").then((n) => n.n);
72042
+ webLoginPromise ??= import("./login-D-Js3AvX.js").then((n) => n.n);
72043
72043
  return webLoginPromise;
72044
72044
  }
72045
72045
  function loadWebLoginQr() {
72046
- webLoginQrPromise ??= import("./login-qr-TavUzvgE.js");
72046
+ webLoginQrPromise ??= import("./login-qr-DzUhzJq4.js");
72047
72047
  return webLoginQrPromise;
72048
72048
  }
72049
72049
  function loadWebChannel() {
72050
- webChannelPromise ??= import("./web-B8lEM5aa.js");
72050
+ webChannelPromise ??= import("./web-yRXxasJ5.js");
72051
72051
  return webChannelPromise;
72052
72052
  }
72053
72053
  function loadWhatsAppActions() {
72054
- whatsappActionsPromise ??= import("./whatsapp-actions-COrqjCys.js");
72054
+ whatsappActionsPromise ??= import("./whatsapp-actions-DZxeDPhI.js");
72055
72055
  return whatsappActionsPromise;
72056
72056
  }
72057
72057
  function createRuntimeWhatsApp() {
@@ -73094,7 +73094,7 @@ function resolvePluginTools(params) {
73094
73094
  //#endregion
73095
73095
  //#region src/agents/apply-patch-update.ts
73096
73096
  async function defaultReadFile(filePath) {
73097
- return fs$1.readFile(filePath, "utf8");
73097
+ return fsPromises.readFile(filePath, "utf8");
73098
73098
  }
73099
73099
  async function applyUpdateHunk(filePath, chunks, options) {
73100
73100
  const originalLines = (await (options?.readFile ?? defaultReadFile)(filePath).catch((err) => {
@@ -73415,7 +73415,7 @@ function resolvePatchFileOps(options) {
73415
73415
  const workspaceOnly = options.workspaceOnly !== false;
73416
73416
  return {
73417
73417
  readFile: async (filePath) => {
73418
- if (!workspaceOnly) return await fs$1.readFile(filePath, "utf8");
73418
+ if (!workspaceOnly) return await fsPromises.readFile(filePath, "utf8");
73419
73419
  const opened = await openBoundaryFile({
73420
73420
  absolutePath: filePath,
73421
73421
  rootPath: options.cwd,
@@ -73430,7 +73430,7 @@ function resolvePatchFileOps(options) {
73430
73430
  },
73431
73431
  writeFile: async (filePath, content) => {
73432
73432
  if (!workspaceOnly) {
73433
- await fs$1.writeFile(filePath, content, "utf8");
73433
+ await fsPromises.writeFile(filePath, content, "utf8");
73434
73434
  return;
73435
73435
  }
73436
73436
  const relative = toRelativeSandboxPath(options.cwd, filePath);
@@ -73441,8 +73441,8 @@ function resolvePatchFileOps(options) {
73441
73441
  encoding: "utf8"
73442
73442
  });
73443
73443
  },
73444
- remove: (filePath) => fs$1.rm(filePath),
73445
- mkdirp: (dir) => fs$1.mkdir(dir, { recursive: true }).then(() => {})
73444
+ remove: (filePath) => fsPromises.rm(filePath),
73445
+ mkdirp: (dir) => fsPromises.mkdir(dir, { recursive: true }).then(() => {})
73446
73446
  };
73447
73447
  }
73448
73448
  async function ensureDir(filePath, ops) {
@@ -73742,7 +73742,7 @@ async function runBeforeToolCallHook(args) {
73742
73742
  const params = args.params;
73743
73743
  if (args.ctx?.sessionKey) {
73744
73744
  const { getDiagnosticSessionState } = await import("./diagnostic-session-state-CDEk5vOn.js");
73745
- const { logToolLoopAction } = await import("./diagnostic-BS_rmYNQ.js").then((n) => n.n);
73745
+ const { logToolLoopAction } = await import("./diagnostic-CgNDbdut.js").then((n) => n.n);
73746
73746
  const { detectToolCallLoop, recordToolCall } = await import("./tool-loop-detection-CXzainqq.js");
73747
73747
  const sessionState = getDiagnosticSessionState({
73748
73748
  sessionKey: args.ctx.sessionKey,
@@ -74060,7 +74060,7 @@ async function maybeCreateMemoryReadCompatibilityResult(params) {
74060
74060
  const absolutePath = resolveReadPathWithinWorkspace(params.filePath, params.workspaceRoot);
74061
74061
  if (!absolutePath) return null;
74062
74062
  try {
74063
- if ((await fs$1.stat(absolutePath)).isDirectory()) return createMemoryDirectoryReadResult(params.filePath);
74063
+ if ((await fsPromises.stat(absolutePath)).isDirectory()) return createMemoryDirectoryReadResult(params.filePath);
74064
74064
  return null;
74065
74065
  } catch (error) {
74066
74066
  if (isNotFoundPathError(error)) return createMissingMemoryReadResult(params.filePath);
@@ -74390,7 +74390,7 @@ function wrapHostEditToolWithPostWriteRecovery(base, root) {
74390
74390
  if (!pathParam || !newText) throw err;
74391
74391
  try {
74392
74392
  const absolutePath = resolveHostEditPath(root, pathParam);
74393
- const content = await fs$1.readFile(absolutePath, "utf-8");
74393
+ const content = await fsPromises.readFile(absolutePath, "utf-8");
74394
74394
  const hasNew = content.includes(newText);
74395
74395
  const stillHasOld = oldText !== void 0 && oldText.length > 0 && content.includes(oldText);
74396
74396
  if (hasNew && !stillHasOld) return {
@@ -74509,14 +74509,14 @@ function createSandboxEditOperations(params) {
74509
74509
  }
74510
74510
  async function writeHostFile(absolutePath, content) {
74511
74511
  const resolved = path.resolve(absolutePath);
74512
- await fs$1.mkdir(path.dirname(resolved), { recursive: true });
74513
- await fs$1.writeFile(resolved, content, "utf-8");
74512
+ await fsPromises.mkdir(path.dirname(resolved), { recursive: true });
74513
+ await fsPromises.writeFile(resolved, content, "utf-8");
74514
74514
  }
74515
74515
  function createHostWriteOperations(root, options) {
74516
74516
  if (!(options?.workspaceOnly ?? false)) return {
74517
74517
  mkdir: async (dir) => {
74518
74518
  const resolved = path.resolve(dir);
74519
- await fs$1.mkdir(resolved, { recursive: true });
74519
+ await fsPromises.mkdir(resolved, { recursive: true });
74520
74520
  },
74521
74521
  writeFile: writeHostFile
74522
74522
  };
@@ -74529,7 +74529,7 @@ function createHostWriteOperations(root, options) {
74529
74529
  cwd: root,
74530
74530
  root
74531
74531
  });
74532
- await fs$1.mkdir(resolved, { recursive: true });
74532
+ await fsPromises.mkdir(resolved, { recursive: true });
74533
74533
  },
74534
74534
  writeFile: async (absolutePath, content) => {
74535
74535
  await writeFileWithinRoot({
@@ -74545,12 +74545,12 @@ function createHostEditOperations(root, options) {
74545
74545
  if (!(options?.workspaceOnly ?? false)) return {
74546
74546
  readFile: async (absolutePath) => {
74547
74547
  const resolved = path.resolve(absolutePath);
74548
- return await fs$1.readFile(resolved);
74548
+ return await fsPromises.readFile(resolved);
74549
74549
  },
74550
74550
  writeFile: writeHostFile,
74551
74551
  access: async (absolutePath) => {
74552
74552
  const resolved = path.resolve(absolutePath);
74553
- await fs$1.access(resolved);
74553
+ await fsPromises.access(resolved);
74554
74554
  }
74555
74555
  };
74556
74556
  return {
@@ -75389,7 +75389,7 @@ async function repairSessionFileIfNeeded(params) {
75389
75389
  };
75390
75390
  let content;
75391
75391
  try {
75392
- content = await fs$1.readFile(sessionFile, "utf-8");
75392
+ content = await fsPromises.readFile(sessionFile, "utf-8");
75393
75393
  } catch (err) {
75394
75394
  if (err?.code === "ENOENT") return {
75395
75395
  repaired: false,
@@ -75437,15 +75437,15 @@ async function repairSessionFileIfNeeded(params) {
75437
75437
  const backupPath = `${sessionFile}.bak-${process.pid}-${Date.now()}`;
75438
75438
  const tmpPath = `${sessionFile}.repair-${process.pid}-${Date.now()}.tmp`;
75439
75439
  try {
75440
- const stat = await fs$1.stat(sessionFile).catch(() => null);
75441
- await fs$1.writeFile(backupPath, content, "utf-8");
75442
- if (stat) await fs$1.chmod(backupPath, stat.mode);
75443
- await fs$1.writeFile(tmpPath, cleaned, "utf-8");
75444
- if (stat) await fs$1.chmod(tmpPath, stat.mode);
75445
- await fs$1.rename(tmpPath, sessionFile);
75440
+ const stat = await fsPromises.stat(sessionFile).catch(() => null);
75441
+ await fsPromises.writeFile(backupPath, content, "utf-8");
75442
+ if (stat) await fsPromises.chmod(backupPath, stat.mode);
75443
+ await fsPromises.writeFile(tmpPath, cleaned, "utf-8");
75444
+ if (stat) await fsPromises.chmod(tmpPath, stat.mode);
75445
+ await fsPromises.rename(tmpPath, sessionFile);
75446
75446
  } catch (err) {
75447
75447
  try {
75448
- await fs$1.unlink(tmpPath);
75448
+ await fsPromises.unlink(tmpPath);
75449
75449
  } catch (cleanupErr) {
75450
75450
  params.warn?.(`session file repair cleanup failed: ${cleanupErr instanceof Error ? cleanupErr.message : "unknown error"} (${path.basename(tmpPath)})`);
75451
75451
  }
@@ -77046,7 +77046,7 @@ async function prewarmSessionFile(sessionFile) {
77046
77046
  if (!isSessionManagerCacheEnabled()) return;
77047
77047
  if (isSessionManagerCached(sessionFile)) return;
77048
77048
  try {
77049
- const handle = await fs$1.open(sessionFile, "r");
77049
+ const handle = await fsPromises.open(sessionFile, "r");
77050
77050
  try {
77051
77051
  const buffer = Buffer$1.alloc(4096);
77052
77052
  await handle.read(buffer, 0, buffer.length, 0);
@@ -77402,7 +77402,7 @@ async function compactEmbeddedPiSessionDirect(params) {
77402
77402
  } catch (err) {
77403
77403
  return fail(describeUnknownError(err));
77404
77404
  }
77405
- await fs$1.mkdir(resolvedWorkspace, { recursive: true });
77405
+ await fsPromises.mkdir(resolvedWorkspace, { recursive: true });
77406
77406
  const sandboxSessionKey = params.sessionKey?.trim() || params.sessionId;
77407
77407
  const sandbox = await resolveSandboxContext({
77408
77408
  config: params.config,
@@ -77410,7 +77410,7 @@ async function compactEmbeddedPiSessionDirect(params) {
77410
77410
  workspaceDir: resolvedWorkspace
77411
77411
  });
77412
77412
  const effectiveWorkspace = sandbox?.enabled ? sandbox.workspaceAccess === "rw" ? resolvedWorkspace : sandbox.workspaceDir : resolvedWorkspace;
77413
- await fs$1.mkdir(effectiveWorkspace, { recursive: true });
77413
+ await fsPromises.mkdir(effectiveWorkspace, { recursive: true });
77414
77414
  await ensureSessionHeader({
77415
77415
  sessionFile: params.sessionFile,
77416
77416
  sessionId: params.sessionId,
@@ -78320,12 +78320,12 @@ function getQueuedFileWriter(writers, filePath) {
78320
78320
  const existing = writers.get(filePath);
78321
78321
  if (existing) return existing;
78322
78322
  const dir = path.dirname(filePath);
78323
- const ready = fs$1.mkdir(dir, { recursive: true }).catch(() => void 0);
78323
+ const ready = fsPromises.mkdir(dir, { recursive: true }).catch(() => void 0);
78324
78324
  let queue = Promise.resolve();
78325
78325
  const writer = {
78326
78326
  filePath,
78327
78327
  write: (line) => {
78328
- queue = queue.then(() => ready).then(() => fs$1.appendFile(filePath, line, "utf8")).catch(() => void 0);
78328
+ queue = queue.then(() => ready).then(() => fsPromises.appendFile(filePath, line, "utf8")).catch(() => void 0);
78329
78329
  }
78330
78330
  };
78331
78331
  writers.set(filePath, writer);
@@ -79592,6 +79592,11 @@ function handleAgentEnd(ctx) {
79592
79592
  const lastAssistant = ctx.state.lastAssistant;
79593
79593
  const isError = isAssistantMessage(lastAssistant) && lastAssistant.stopReason === "error";
79594
79594
  if (isError && lastAssistant) {
79595
+ const uiHint = resolveChatUiHintForError({
79596
+ provider: lastAssistant.provider,
79597
+ model: lastAssistant.model,
79598
+ rawError: lastAssistant.errorMessage
79599
+ });
79595
79600
  const errorText = (formatAssistantErrorText(lastAssistant, {
79596
79601
  cfg: ctx.params.config,
79597
79602
  sessionKey: ctx.params.sessionKey,
@@ -79605,6 +79610,7 @@ function handleAgentEnd(ctx) {
79605
79610
  data: {
79606
79611
  phase: "error",
79607
79612
  error: errorText,
79613
+ ...uiHint ? { uiHint } : {},
79608
79614
  endedAt: Date.now()
79609
79615
  }
79610
79616
  });
@@ -79612,7 +79618,8 @@ function handleAgentEnd(ctx) {
79612
79618
  stream: "lifecycle",
79613
79619
  data: {
79614
79620
  phase: "error",
79615
- error: errorText
79621
+ error: errorText,
79622
+ ...uiHint ? { uiHint } : {}
79616
79623
  }
79617
79624
  });
79618
79625
  } else {
@@ -79678,6 +79685,34 @@ function resolveSilentReplyFallbackText(params) {
79678
79685
  if (!fallback) return params.text;
79679
79686
  return fallback;
79680
79687
  }
79688
+ function summarizeAssistantMessageDebug(message) {
79689
+ const stopReason = typeof message.stopReason === "string" ? message.stopReason ?? void 0 : void 0;
79690
+ const content = message.content;
79691
+ if (!Array.isArray(content)) return {
79692
+ stopReason,
79693
+ contentTypes: []
79694
+ };
79695
+ const contentTypes = [];
79696
+ const toolCalls = [];
79697
+ for (const block of content) {
79698
+ if (!block || typeof block !== "object") {
79699
+ contentTypes.push(typeof block);
79700
+ continue;
79701
+ }
79702
+ const record = block;
79703
+ const blockType = typeof record.type === "string" ? record.type : "unknown";
79704
+ contentTypes.push(blockType);
79705
+ if (blockType === "toolCall") toolCalls.push({
79706
+ id: typeof record.id === "string" ? record.id : void 0,
79707
+ name: typeof record.name === "string" ? record.name : void 0
79708
+ });
79709
+ }
79710
+ return {
79711
+ stopReason,
79712
+ contentTypes,
79713
+ toolCalls: toolCalls.length > 0 ? toolCalls : void 0
79714
+ };
79715
+ }
79681
79716
  function handleMessageStart(ctx, evt) {
79682
79717
  if (evt.message?.role !== "assistant") return;
79683
79718
  ctx.resetAssistantMessageState(ctx.state.assistantTexts.length);
@@ -79806,13 +79841,18 @@ function handleMessageEnd(ctx, evt) {
79806
79841
  ctx.recordAssistantUsage(assistantMessage.usage);
79807
79842
  promoteThinkingTagsToBlocks(assistantMessage);
79808
79843
  const rawText = extractAssistantText$1(assistantMessage);
79844
+ const rawThinking = extractAssistantThinking(assistantMessage);
79845
+ const debugSummary = summarizeAssistantMessageDebug(assistantMessage);
79809
79846
  appendRawStream({
79810
79847
  ts: Date.now(),
79811
79848
  event: "assistant_message_end",
79812
79849
  runId: ctx.params.runId,
79813
79850
  sessionId: ctx.params.session.id,
79814
79851
  rawText,
79815
- rawThinking: extractAssistantThinking(assistantMessage)
79852
+ rawThinking,
79853
+ stopReason: debugSummary.stopReason,
79854
+ contentTypes: debugSummary.contentTypes,
79855
+ toolCalls: debugSummary.toolCalls
79816
79856
  });
79817
79857
  const text = resolveSilentReplyFallbackText({
79818
79858
  text: ctx.stripBlockTags(rawText, {
@@ -79821,8 +79861,8 @@ function handleMessageEnd(ctx, evt) {
79821
79861
  }),
79822
79862
  messagingToolSentTexts: ctx.state.messagingToolSentTexts
79823
79863
  });
79824
- const rawThinking = ctx.state.includeReasoning || ctx.state.streamReasoning ? extractAssistantThinking(assistantMessage) || extractThinkingFromTaggedText(rawText) : "";
79825
- const formattedReasoning = rawThinking ? formatReasoningMessage(rawThinking) : "";
79864
+ const visibleRawThinking = ctx.state.includeReasoning || ctx.state.streamReasoning ? rawThinking || extractThinkingFromTaggedText(rawText) : "";
79865
+ const formattedReasoning = visibleRawThinking ? formatReasoningMessage(visibleRawThinking) : "";
79826
79866
  const trimmedText = text.trim();
79827
79867
  const parsedText = trimmedText ? parseReplyDirectives(stripTrailingDirective(trimmedText)) : null;
79828
79868
  let cleanedText = parsedText?.text ?? "";
@@ -79903,7 +79943,7 @@ function handleMessageEnd(ctx, evt) {
79903
79943
  }
79904
79944
  }
79905
79945
  if (!shouldEmitReasoningBeforeAnswer) maybeEmitReasoning();
79906
- if (ctx.state.streamReasoning && rawThinking) ctx.emitReasoningStream(rawThinking);
79946
+ if (ctx.state.streamReasoning && visibleRawThinking) ctx.emitReasoningStream(visibleRawThinking);
79907
79947
  if (ctx.state.blockReplyBreak === "text_end" && onBlockReply) emitSplitResultAsBlockReply(ctx.consumeReplyDirectives("", { final: true }));
79908
79948
  ctx.state.deltaBuffer = "";
79909
79949
  ctx.state.blockBuffer = "";
@@ -81243,7 +81283,7 @@ async function prepareSessionManagerForRun(params) {
81243
81283
  return;
81244
81284
  }
81245
81285
  if (params.hadSessionFile && header && !hasAssistant) {
81246
- await fs$1.writeFile(params.sessionFile, "", "utf-8");
81286
+ await fsPromises.writeFile(params.sessionFile, "", "utf-8");
81247
81287
  sm.fileEntries = [header];
81248
81288
  sm.byId?.clear?.();
81249
81289
  sm.labelsById?.clear?.();
@@ -81977,7 +82017,7 @@ async function runEmbeddedAttempt(params) {
81977
82017
  const prevCwd = process.cwd();
81978
82018
  const runAbortController = new AbortController();
81979
82019
  log$3.debug(`embedded run start: runId=${params.runId} sessionId=${params.sessionId} provider=${params.provider} model=${params.modelId} thinking=${params.thinkLevel} messageChannel=${params.messageChannel ?? params.messageProvider ?? "unknown"}`);
81980
- await fs$1.mkdir(resolvedWorkspace, { recursive: true });
82020
+ await fsPromises.mkdir(resolvedWorkspace, { recursive: true });
81981
82021
  const sandboxSessionKey = params.sessionKey?.trim() || params.sessionId;
81982
82022
  const sandbox = await resolveSandboxContext({
81983
82023
  config: params.config,
@@ -81985,7 +82025,7 @@ async function runEmbeddedAttempt(params) {
81985
82025
  workspaceDir: resolvedWorkspace
81986
82026
  });
81987
82027
  const effectiveWorkspace = sandbox?.enabled ? sandbox.workspaceAccess === "rw" ? resolvedWorkspace : sandbox.workspaceDir : resolvedWorkspace;
81988
- await fs$1.mkdir(effectiveWorkspace, { recursive: true });
82028
+ await fsPromises.mkdir(effectiveWorkspace, { recursive: true });
81989
82029
  let restoreSkillEnv;
81990
82030
  process.chdir(effectiveWorkspace);
81991
82031
  try {
@@ -82229,7 +82269,7 @@ async function runEmbeddedAttempt(params) {
82229
82269
  sessionFile: params.sessionFile,
82230
82270
  warn: (message) => log$3.warn(message)
82231
82271
  });
82232
- const hadSessionFile = await fs$1.stat(params.sessionFile).then(() => true).catch(() => false);
82272
+ const hadSessionFile = await fsPromises.stat(params.sessionFile).then(() => true).catch(() => false);
82233
82273
  const transcriptPolicy = resolveTranscriptPolicy({
82234
82274
  modelApi: params.model?.api,
82235
82275
  provider: params.provider,
@@ -83372,7 +83412,7 @@ async function runEmbeddedPiAgent(params) {
83372
83412
  const copilotAuthRetry = authRetryPending;
83373
83413
  authRetryPending = false;
83374
83414
  attemptedThinking.add(thinkLevel);
83375
- await fs$1.mkdir(resolvedWorkspace, { recursive: true });
83415
+ await fsPromises.mkdir(resolvedWorkspace, { recursive: true });
83376
83416
  const prompt = provider === "anthropic" ? scrubAnthropicRefusalMagic(params.prompt) : params.prompt;
83377
83417
  const attempt = await runEmbeddedAttempt({
83378
83418
  sessionId: params.sessionId,
@@ -86034,4 +86074,4 @@ function initSubagentRegistry() {
86034
86074
  }
86035
86075
 
86036
86076
  //#endregion
86037
- export { resolveInboundDebounceMs as $, normalizeSendPolicy as $n, isExternalHookSession as $t, agentCommandFromIngress as A, formatChannelAllowFrom as An, waitForActiveTasks as Ar, formatRestartSentinelMessage as At, parseIdentityMarkdown as B, resolveHeartbeatReasonKind as Bn, onAgentEvent as Br, normalizeOptionalSessionKey as Bt, readJsonBodyWithLimit as C, formatUsageReportLines as Cn, OPENAI_TTS_VOICES as Cr, formatTargetDisplay as Ct, sleepWithAbort as D, formatZonedTimestamp as Dn, markGatewayDraining as Dr, describeFailoverError as Dt, computeBackoff as E, maskApiKey as En, getTotalQueueSize as Er, runWithModelFallback as Et, createDefaultDeps as F, isSystemEventContextChanged as Fn, resolveHeartbeatPrompt as Fr, normalizeHttpWebhookUrl as Ft, recordPendingHistoryEntryIfEnabled as G, DEFAULT_INPUT_IMAGE_MIMES as Gn, buildDeliveryFromLegacyPayload as Gt, resolveMentionGating as H, resolveDiscordUserAllowlist as Hn, normalizePayloadToSystemText as Ht, createOutboundSendDeps$1 as I, peekSystemEventEntries as In, stripHeartbeatToken as Ir, normalizeCronJobCreate as It, warnMissingProviderGroupPolicyFallbackOnce as J, extractFileContentFromSource as Jn, CHANNEL_TARGETS_DESCRIPTION as Jt, resolveDefaultGroupPolicy as K, DEFAULT_INPUT_MAX_REDIRECTS as Kn, hasLegacyDeliveryHints as Kt, resolveAgentAvatar as L, peekSystemEvents as Ln, clearAgentRunContext as Lr, normalizeCronJobPatch as Lt, resolveAgentDeliveryPlan as M, resolveChannelAccountEnabled as Mn, DEFAULT_HEARTBEAT_ACK_MAX_CHARS as Mr, summarizeRestartSentinel as Mt, resolveAgentOutboundTarget as N, resolveCommitHash as Nn, DEFAULT_HEARTBEAT_EVERY as Nr, trimLogTail as Nt, resolveDiscordChannelAllowlist as O, buildChannelSummary as On, resetAllLanes as Or, consumeRestartSentinel as Ot, createOutboundSendDeps as P, enqueueSystemEvent as Pn, isHeartbeatContentEffectivelyEmpty as Pr, writeRestartSentinel as Pt, createInboundDebouncer as Q, resolveAgentTimeoutMs as Qn, getHookType as Qt, identityHasValues as R, requestHeartbeatNow as Rn, emitAgentEvent as Rr, inferLegacyName as Rt, handleSlackHttpRequest as S, loadProviderUsageSummary as Sn, OPENAI_TTS_MODELS as Sr, resolveOutboundChannelPlugin as St, resolveInboundSessionEnvelopeContext as T, resolveUsageProviderId as Tn, getQueueSize as Tr, CHANNEL_MESSAGE_ACTION_NAMES as Tt, DEFAULT_GROUP_HISTORY_LIMIT as U, ACP_SESSION_IDENTITY_RENDERER_VERSION as Un, normalizeRequiredName as Ut, buildPairingReply as V, resolveSlackUserAllowlist as Vn, registerAgentRunContext as Vr, normalizeOptionalText as Vt, buildHistoryContextFromEntries as W, DEFAULT_INPUT_IMAGE_MAX_BYTES as Wn, migrateLegacyCronPayload as Wt, dispatchReplyWithBufferedBlockDispatcher as X, normalizeMimeList as Xn, buildSafeExternalPrompt as Xt, shouldAckReactionForWhatsApp as Y, extractImageContentFromSource as Yn, CHANNEL_TARGET_DESCRIPTION as Yt, provider_dispatcher_exports as Z, resolveInputFileLimits as Zn, detectSuspiciousPatterns as Zt, loadOpenClawPlugins as _, setPreRestartDeferralCheck as _n, resolveTtsPrefsPath as _r, resolveOutboundSessionRoute as _t, runSubagentAnnounceFlow as a, formatRemainingShort as an, buildMentionRegexes as ar, getReplyFromConfig as at, resolveAgentOutboundIdentity as b, normalizeGroupActivation as bn, setTtsProvider as br, resolveOutboundTarget as bt, abortEmbeddedPiRun as c, parseVerboseOverride as cn, resolveAgentSessionDirs as cr, resolveCronStyleNow as ct, applyToolPolicyPipeline as d, deferGatewayRestartUntilIdle as dn, getTtsProvider as dr, runCliAgent as dt, applyBrowserProxyPaths as en, resolveSendPolicy as er, formatInboundEnvelope as et, buildDefaultToolPolicyPipelineSteps as f, emitGatewayRestart as fn, isTtsEnabled as fr, createOpenClawTools as ft, createPluginLoaderLogger as g, setGatewaySigusr1RestartPolicy as gn, resolveTtsConfig as gr, ensureOutboundSessionEntry as gt, resolvePluginTools as h, scheduleGatewaySigusr1Restart as hn, resolveTtsAutoMode as hr, runMessageAction as ht, subagent_registry_exports as i, buildAuthHealthSummary as in, stopSubagentsForRequester as ir, createDedupeCache as it, resolveSessionKeyForRequest as j, resolveChannelAccountConfigured as jn, CommandLane as jr, readRestartSentinel as jt, agentCommand as k, buildChannelAccountSnapshot as kn, setCommandLaneConcurrency as kr, formatDoctorNonInteractiveHint as kt, getActiveEmbeddedRunCount as l, buildOutboundSessionContext as ln, resolveUserTimezone as lr, getCliSessionId as lt, getPluginToolMeta as m, markGatewaySigusr1RestartHandled as mn, resolveTtsApiKey as mr, resolveAnnounceTargetFromKey as mt, initSubagentRegistry as n, resolveSessionAuthProfileOverride as nn, shouldComputeCommandAuthorized as nr, createReplyDispatcher as nt, clearSessionQueues as o, applyModelOverrideToSessionEntry as on, normalizeMentionText as or, BARE_SESSION_RESET_PROMPT as ot, sniffMimeFromBase64 as p, isGatewaySigusr1RestartExternallyAllowed as pn, isTtsProviderConfigured as pr, readLatestAssistantReply as pt, resolveOpenProviderRuntimeGroupPolicy as q, DEFAULT_INPUT_TIMEOUT_MS as qn, stripLegacyDeliveryFields as qt, listDescendantRunsForRequester as r, DEFAULT_OAUTH_WARN_MS as rn, isAbortRequestText as rr, getTotalPendingReplies as rt, runEmbeddedPiAgent as s, applyVerboseOverride as sn, getAcpSessionManager as sr, appendCronStyleCurrentTimeLine as st, countActiveDescendantRuns as t, persistBrowserProxyFiles as tn, hasControlCommand as tr, dispatchInboundMessage as tt, waitForEmbeddedPiRunEnd as u, consumeGatewaySigusr1RestartAuthorization as un, clearBootstrapSnapshot as ur, setCliSessionId as ut, createPluginRuntime as v, triggerOpenClawRestart as vn, resolveTtsProviderOrder as vr, resolveHeartbeatDeliveryTarget as vt, requestBodyErrorToText as w, formatUsageWindowSummary as wn, getActiveTaskCount as wr, resetDirectoryCache as wt, resolveSlackChannelAllowlist as x, parseActivationCommand as xn, textToSpeech as xr, resolveSessionDeliveryTarget as xt, deleteTelegramUpdateOffset as y, unbindThreadBindingsBySessionKey as yn, setTtsEnabled as yr, resolveHeartbeatSenderContext as yt, loadAgentIdentityFromWorkspace as z, setHeartbeatWakeHandler as zn, getAgentRunContext as zr, normalizeOptionalAgentId$1 as zt };
86077
+ export { resolveInboundDebounceMs as $, resolveAgentTimeoutMs as $n, getHookType as $t, agentCommandFromIngress as A, buildChannelAccountSnapshot as An, setCommandLaneConcurrency as Ar, formatDoctorNonInteractiveHint as At, parseIdentityMarkdown as B, setHeartbeatWakeHandler as Bn, getAgentRunContext as Br, normalizeOptionalAgentId$1 as Bt, readJsonBodyWithLimit as C, loadProviderUsageSummary as Cn, OPENAI_TTS_MODELS as Cr, formatTargetDisplay as Ct, sleepWithAbort as D, maskApiKey as Dn, getTotalQueueSize as Dr, describeFailoverError as Dt, computeBackoff as E, resolveUsageProviderId as En, getQueueSize as Er, runWithModelFallback as Et, createDefaultDeps as F, enqueueSystemEvent as Fn, isHeartbeatContentEffectivelyEmpty as Fr, writeRestartSentinel as Ft, recordPendingHistoryEntryIfEnabled as G, DEFAULT_INPUT_IMAGE_MAX_BYTES as Gn, migrateLegacyCronPayload as Gt, resolveMentionGating as H, resolveSlackUserAllowlist as Hn, registerAgentRunContext as Hr, normalizeOptionalText as Ht, createOutboundSendDeps$1 as I, isSystemEventContextChanged as In, resolveHeartbeatPrompt as Ir, normalizeHttpWebhookUrl as It, warnMissingProviderGroupPolicyFallbackOnce as J, DEFAULT_INPUT_TIMEOUT_MS as Jn, stripLegacyDeliveryFields as Jt, resolveDefaultGroupPolicy as K, DEFAULT_INPUT_IMAGE_MIMES as Kn, buildDeliveryFromLegacyPayload as Kt, resolveAgentAvatar as L, peekSystemEventEntries as Ln, stripHeartbeatToken as Lr, normalizeCronJobCreate as Lt, resolveAgentDeliveryPlan as M, resolveChannelAccountConfigured as Mn, CommandLane as Mr, readRestartSentinel as Mt, resolveAgentOutboundTarget as N, resolveChannelAccountEnabled as Nn, DEFAULT_HEARTBEAT_ACK_MAX_CHARS as Nr, summarizeRestartSentinel as Nt, resolveDiscordChannelAllowlist as O, formatZonedTimestamp as On, markGatewayDraining as Or, isFailoverError as Ot, createOutboundSendDeps as P, resolveCommitHash as Pn, DEFAULT_HEARTBEAT_EVERY as Pr, trimLogTail as Pt, createInboundDebouncer as Q, resolveInputFileLimits as Qn, detectSuspiciousPatterns as Qt, identityHasValues as R, peekSystemEvents as Rn, clearAgentRunContext as Rr, normalizeCronJobPatch as Rt, handleSlackHttpRequest as S, parseActivationCommand as Sn, textToSpeech as Sr, resolveOutboundChannelPlugin as St, resolveInboundSessionEnvelopeContext as T, formatUsageWindowSummary as Tn, getActiveTaskCount as Tr, CHANNEL_MESSAGE_ACTION_NAMES as Tt, DEFAULT_GROUP_HISTORY_LIMIT as U, resolveDiscordUserAllowlist as Un, normalizePayloadToSystemText as Ut, buildPairingReply as V, resolveHeartbeatReasonKind as Vn, onAgentEvent as Vr, normalizeOptionalSessionKey as Vt, buildHistoryContextFromEntries as W, ACP_SESSION_IDENTITY_RENDERER_VERSION as Wn, normalizeRequiredName as Wt, dispatchReplyWithBufferedBlockDispatcher as X, extractImageContentFromSource as Xn, CHANNEL_TARGET_DESCRIPTION as Xt, shouldAckReactionForWhatsApp as Y, extractFileContentFromSource as Yn, CHANNEL_TARGETS_DESCRIPTION as Yt, provider_dispatcher_exports as Z, normalizeMimeList as Zn, buildSafeExternalPrompt as Zt, loadOpenClawPlugins as _, setGatewaySigusr1RestartPolicy as _n, resolveTtsConfig as _r, resolveOutboundSessionRoute as _t, runSubagentAnnounceFlow as a, buildAuthHealthSummary as an, stopSubagentsForRequester as ar, getReplyFromConfig as at, resolveAgentOutboundIdentity as b, unbindThreadBindingsBySessionKey as bn, setTtsEnabled as br, resolveOutboundTarget as bt, abortEmbeddedPiRun as c, applyVerboseOverride as cn, getAcpSessionManager as cr, resolveCronStyleNow as ct, applyToolPolicyPipeline as d, consumeGatewaySigusr1RestartAuthorization as dn, clearBootstrapSnapshot as dr, runCliAgent as dt, isExternalHookSession as en, normalizeSendPolicy as er, formatInboundEnvelope as et, buildDefaultToolPolicyPipelineSteps as f, deferGatewayRestartUntilIdle as fn, getTtsProvider as fr, createOpenClawTools as ft, createPluginLoaderLogger as g, scheduleGatewaySigusr1Restart as gn, resolveTtsAutoMode as gr, ensureOutboundSessionEntry as gt, resolvePluginTools as h, markGatewaySigusr1RestartHandled as hn, resolveTtsApiKey as hr, runMessageAction as ht, subagent_registry_exports as i, DEFAULT_OAUTH_WARN_MS as in, isAbortRequestText as ir, createDedupeCache as it, resolveSessionKeyForRequest as j, formatChannelAllowFrom as jn, waitForActiveTasks as jr, formatRestartSentinelMessage as jt, agentCommand as k, buildChannelSummary as kn, resetAllLanes as kr, consumeRestartSentinel as kt, getActiveEmbeddedRunCount as l, parseVerboseOverride as ln, resolveAgentSessionDirs as lr, getCliSessionId as lt, getPluginToolMeta as m, isGatewaySigusr1RestartExternallyAllowed as mn, isTtsProviderConfigured as mr, resolveAnnounceTargetFromKey as mt, initSubagentRegistry as n, persistBrowserProxyFiles as nn, hasControlCommand as nr, createReplyDispatcher as nt, clearSessionQueues as o, formatRemainingShort as on, buildMentionRegexes as or, BARE_SESSION_RESET_PROMPT as ot, sniffMimeFromBase64 as p, emitGatewayRestart as pn, isTtsEnabled as pr, readLatestAssistantReply as pt, resolveOpenProviderRuntimeGroupPolicy as q, DEFAULT_INPUT_MAX_REDIRECTS as qn, hasLegacyDeliveryHints as qt, listDescendantRunsForRequester as r, resolveSessionAuthProfileOverride as rn, shouldComputeCommandAuthorized as rr, getTotalPendingReplies as rt, runEmbeddedPiAgent as s, applyModelOverrideToSessionEntry as sn, normalizeMentionText as sr, appendCronStyleCurrentTimeLine as st, countActiveDescendantRuns as t, applyBrowserProxyPaths as tn, resolveSendPolicy as tr, dispatchInboundMessage as tt, waitForEmbeddedPiRunEnd as u, buildOutboundSessionContext as un, resolveUserTimezone as ur, setCliSessionId as ut, createPluginRuntime as v, setPreRestartDeferralCheck as vn, resolveTtsPrefsPath as vr, resolveHeartbeatDeliveryTarget as vt, requestBodyErrorToText as w, formatUsageReportLines as wn, OPENAI_TTS_VOICES as wr, resetDirectoryCache as wt, resolveSlackChannelAllowlist as x, normalizeGroupActivation as xn, setTtsProvider as xr, resolveSessionDeliveryTarget as xt, deleteTelegramUpdateOffset as y, triggerOpenClawRestart as yn, resolveTtsProviderOrder as yr, resolveHeartbeatSenderContext as yt, loadAgentIdentityFromWorkspace as z, requestHeartbeatNow as zn, emitAgentEvent as zr, inferLegacyName as zt };