@termix-it/cryptoclaw 1.0.6 → 1.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (330) hide show
  1. package/README.md +119 -116
  2. package/dist/{accounts-Bod7973i.js → accounts-CucAhPu5.js} +7 -7
  3. package/dist/{accounts-BSIXwC37.js → accounts-DarjcXFz.js} +1 -1
  4. package/dist/{accounts-D3YOECeq.js → accounts-DjUjM_0M.js} +1 -1
  5. package/dist/{acp-cli-CGC73qiP.js → acp-cli-BKEdLWJH.js} +8 -8
  6. package/dist/{agent-scope-BGsA4zEf.js → agent-scope-C5bklqr1.js} +17 -17
  7. package/dist/{agents-SpePW-me.js → agents-C26D9541.js} +14 -14
  8. package/dist/{agents.config-g0LyahNR.js → agents.config-BSkzwDQZ.js} +2 -2
  9. package/dist/{api-key-rotation-BoN0bfDN.js → api-key-rotation-DUAhkuoF.js} +1 -1
  10. package/dist/{audio-preflight-CN6L8zsG.js → audio-preflight-DFpELnh5.js} +34 -34
  11. package/dist/{audio-transcription-runner-D6NSiBUN.js → audio-transcription-runner-C1T1UDgG.js} +23 -23
  12. package/dist/{audit-C3kgCKKq.js → audit-BJ5b9jj6.js} +29 -29
  13. package/dist/{auth-BQOIUcK5.js → auth-CgV_wGar.js} +1 -1
  14. package/dist/{auth-choice-ClGYfSky.js → auth-choice-DG-39eTP.js} +13 -13
  15. package/dist/{auth-choice-pU5ch2o1.js → auth-choice-tnRPpsDE.js} +11 -11
  16. package/dist/{auth-choice.apply-helpers-BF8uDNAl.js → auth-choice.apply-helpers-DAj6Co-H.js} +1 -1
  17. package/dist/{auth-profiles-yB_p54Kf.js → auth-profiles-CtYlKXxI.js} +16 -16
  18. package/dist/{auth-token-C_wfhGFh.js → auth-token-Ijqjdh1h.js} +1 -1
  19. package/dist/{banner-C01HhkYN.js → banner-CY1oW10M.js} +2 -2
  20. package/dist/{bonjour-discovery-DRbbMuPV.js → bonjour-discovery-ttcR8uJV.js} +1 -1
  21. package/dist/{browser-cli-t5Ko46IP.js → browser-cli-DosaTN2z.js} +12 -12
  22. package/dist/build-info.json +3 -3
  23. package/dist/{call-CeJbHmC5.js → call-BHrnZxI1.js} +10 -10
  24. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  25. package/dist/{channel-account-context-CZg6xYM_.js → channel-account-context-BjsJwBrl.js} +5 -5
  26. package/dist/{channel-activity-CtUzm0zi.js → channel-activity-CudRDPXk.js} +1 -1
  27. package/dist/{channel-options-DKP2et7c.js → channel-options-DRQo8X5b.js} +3 -3
  28. package/dist/{channel-selection-BGFLNPuZ.js → channel-selection-D2KncGab.js} +1 -1
  29. package/dist/{channel-web-CjBStv9j.js → channel-web-BxqW0jAU.js} +17 -17
  30. package/dist/{channels-cli-B7QQDJC8.js → channels-cli-BgpYg0HG.js} +93 -93
  31. package/dist/{channels-status-issues-UpBSKB6j.js → channels-status-issues-JgPH8x7b.js} +1 -1
  32. package/dist/{chrome-NrlBIdcn.js → chrome-m5f8q2YK.js} +4 -4
  33. package/dist/{clawbot-cli-fmA08wJd.js → clawbot-cli-CrkYNKVe.js} +11 -11
  34. package/dist/cli/daemon-cli.js +1 -1
  35. package/dist/{cli-DO7xcifm.js → cli-2paqSkPz.js} +73 -73
  36. package/dist/{client-Kkj2aHgb.js → client-BqLxmdBY.js} +2 -2
  37. package/dist/{command-registry-Ckb_NblW.js → command-registry-C3IdEOLg.js} +11 -11
  38. package/dist/{command-secret-targets-CVAt80vu.js → command-secret-targets-_FGz0zdz.js} +4 -4
  39. package/dist/{commands-BYuioJO3.js → commands-CP-eujrx.js} +1 -1
  40. package/dist/{commands-registry-DCOqmmUF.js → commands-registry-BxWE_gts.js} +3 -3
  41. package/dist/{completion-cli-3DXayCwj.js → completion-cli-D_Hp6T_X.js} +13 -13
  42. package/dist/{config-cli-DDe7yEGq.js → config-cli-DLVXpjXN.js} +7 -7
  43. package/dist/{config-guard-DpzGAFpd.js → config-guard-D9yUiM86.js} +3 -3
  44. package/dist/{config-validation-BS6k_44h.js → config-validation-C-plaBVT.js} +3 -3
  45. package/dist/{configure-M4LELgRU.js → configure-idrmyczj.js} +17 -17
  46. package/dist/{control-ui-assets-CYQNSPY0.js → control-ui-assets-1CYoFkJQ.js} +1 -1
  47. package/dist/{cron-cli-C0tDGxo5.js → cron-cli-CxAxkYel.js} +11 -11
  48. package/dist/{daemon-cli-D7rQUQZq.js → daemon-cli-Bntp6emS.js} +15 -15
  49. package/dist/{daemon-install-C_ygPena.js → daemon-install-LNixC8Pb.js} +4 -4
  50. package/dist/{daemon-install-helpers-so86sfkZ.js → daemon-install-helpers-CyjpUUrm.js} +11 -11
  51. package/dist/{deliver-Bh8OdZ9H.js → deliver-HkPDAwY2.js} +7 -7
  52. package/dist/deliver-runtime-B5yIMxQR.js +61 -0
  53. package/dist/deps-send-discord.runtime-sLYAyx_-.js +36 -0
  54. package/dist/deps-send-imessage.runtime-2cWGJS5r.js +35 -0
  55. package/dist/deps-send-signal.runtime-kNxDQhbE.js +34 -0
  56. package/dist/deps-send-slack.runtime-D3QFxyKO.js +32 -0
  57. package/dist/{deps-send-telegram.runtime-DhLKcoGf.js → deps-send-telegram.runtime-DUo2GPb7.js} +16 -16
  58. package/dist/deps-send-whatsapp.runtime-CHgCReeR.js +119 -0
  59. package/dist/{devices-cli-DKERiq8E.js → devices-cli-DDu3iEJN.js} +8 -8
  60. package/dist/{diagnostic-Dp-KkeSq.js → diagnostic-3zN7XEY1.js} +1 -1
  61. package/dist/{diagnostics-Cuvdgf7E.js → diagnostics-Dys24A-s.js} +5 -5
  62. package/dist/{directory-cli-DFN_WTag.js → directory-cli-BgL_9wd5.js} +7 -7
  63. package/dist/{dns-cli-DO8cd5zZ.js → dns-cli-B0zPrZBi.js} +5 -5
  64. package/dist/{dock-DjC0vgOm.js → dock-BaM5oTqE.js} +4 -4
  65. package/dist/{docs-cli-GcB4tM-4.js → docs-cli-4R8XltvA.js} +4 -4
  66. package/dist/{doctor-completion-3P8WMHdK.js → doctor-completion-5TLzN3Se.js} +2 -2
  67. package/dist/{doctor-config-flow-WQpcISHd.js → doctor-config-flow-DWHPUDqY.js} +15 -15
  68. package/dist/{enable-Di6fjV84.js → enable-BP58hyxE.js} +1 -1
  69. package/dist/entry.js +2 -2
  70. package/dist/{exec-approvals-allowlist-CSsG6lrG.js → exec-approvals-allowlist-CGQJSJfD.js} +1 -1
  71. package/dist/{exec-approvals-cli-BuZEm_3t.js → exec-approvals-cli-DmOSbNpe.js} +16 -16
  72. package/dist/{exec-safe-bin-runtime-policy-ukabtnTn.js → exec-safe-bin-runtime-policy-nkIQWrRj.js} +2 -2
  73. package/dist/{fetch-guard-0V5i-cZz.js → fetch-guard-CS_3jTMA.js} +1 -1
  74. package/dist/{fetch-DmaNytop.js → fetch-qkXypRi6.js} +3 -3
  75. package/dist/{fs-safe-DTO6fZ7N.js → fs-safe-CYrszQI6.js} +24 -24
  76. package/dist/{gateway-cli-VJJtBtt2.js → gateway-cli-Ct4tgMMm.js} +153 -153
  77. package/dist/{gateway-rpc-BLIo1-nR.js → gateway-rpc-eEkc-oSq.js} +1 -1
  78. package/dist/{health-Ry4jLJFh.js → health-CWuNlSLA.js} +11 -11
  79. package/dist/{hooks-cli-CpYtmeh1.js → hooks-cli-DdEAtyWm.js} +81 -81
  80. package/dist/{hooks-status-C_u7irQ4.js → hooks-status-NIiTaX__.js} +1 -1
  81. package/dist/{image-5Dop2pwF.js → image-ktIANJRi.js} +5 -5
  82. package/dist/{image-ops-Ba5soKsa.js → image-ops-WJSAG5_7.js} +10 -10
  83. package/dist/image-runtime-C0VvqoAb.js +55 -0
  84. package/dist/{inspect-Bnp4NJm0.js → inspect-DWaajebj.js} +4 -4
  85. package/dist/{install-safe-path-DgGlNCpx.js → install-safe-path-BmAf3bF5.js} +25 -25
  86. package/dist/{installs-Bjh1q5wQ.js → installs-DMDJeMmr.js} +9 -9
  87. package/dist/{ipv4-BsIL6DPy.js → ipv4-DIovCoyM.js} +1 -1
  88. package/dist/{ir-SEi7gUP9.js → ir-xdB7409t.js} +8 -8
  89. package/dist/{issue-format-DEHEwGJB.js → issue-format-DaXc0Ssz.js} +1 -1
  90. package/dist/{json-files-rR19q30D.js → json-files-CuJjdF_0.js} +8 -8
  91. package/dist/{lifecycle-core-t2Q34Tiu.js → lifecycle-core-BinqEyma.js} +5 -5
  92. package/dist/{login-DKh_sv9q.js → login-62iNga_2.js} +3 -3
  93. package/dist/{login-qr-9Wvtlmqz.js → login-qr-DMWPhIpQ.js} +6 -6
  94. package/dist/{logs-cli-BQTvPOds.js → logs-cli-BN9aRZlE.js} +9 -9
  95. package/dist/{manager-DKcbmdLj.js → manager-DstlJwRR.js} +14 -14
  96. package/dist/{manager-runtime-CdY_4s56.js → manager-runtime-DktggQQ7.js} +9 -9
  97. package/dist/{manifest-registry-CzoQ4XAn.js → manifest-registry-DjbHJw7g.js} +1 -1
  98. package/dist/{memory-cli-CEZedlbs.js → memory-cli-B4tlY2Jz.js} +12 -12
  99. package/dist/{model-B2Sraf73.js → model-BLdajRK2.js} +2 -2
  100. package/dist/{model-catalog-B9Kd_iNy.js → model-catalog-DorZGOmy.js} +3 -3
  101. package/dist/{model-picker-DyLoTKdE.js → model-picker-Cn-yEB3e.js} +4 -4
  102. package/dist/{models-CZbq8HGI.js → models-B_vCWO9r.js} +17 -17
  103. package/dist/{models-cli-8aPPSLLl.js → models-cli-BBMBrNuk.js} +78 -78
  104. package/dist/{models-config-C7yYEUbY.js → models-config-VlzOga1W.js} +6 -6
  105. package/dist/{net-CfwQaj6f.js → net-DFijUFfS.js} +2 -2
  106. package/dist/{node-cli-BRIl5jr7.js → node-cli-BfSkX-wS.js} +33 -33
  107. package/dist/{node-command-policy-yJ_VpCHq.js → node-command-policy-BMgJ81FO.js} +1 -1
  108. package/dist/{node-service-9R10zILv.js → node-service-BeDB4avc.js} +1 -1
  109. package/dist/{nodes-cli-CARJm2ko.js → nodes-cli-D0etQIcH.js} +16 -16
  110. package/dist/{nodes-screen-DF7EBTLu.js → nodes-screen-DWVpmvMz.js} +7 -7
  111. package/dist/{npm-pack-install-DdqL1Mh1.js → npm-pack-install-BUyXXcPz.js} +18 -18
  112. package/dist/{npm-resolution-BaKXXkK7.js → npm-resolution-DSDaOY0G.js} +4 -4
  113. package/dist/{onboard-C7cwcgUt.js → onboard-BEv6XhMg.js} +6 -6
  114. package/dist/{onboard-channels-VhiLL846.js → onboard-channels-DAQmVNUf.js} +21 -21
  115. package/dist/{onboard-custom-2gc6FKvI.js → onboard-custom-BIY24QCh.js} +4 -4
  116. package/dist/{onboard-helpers-Mort99IL.js → onboard-helpers-CPO08jBg.js} +10 -10
  117. package/dist/{onboard-hooks-DPho1fkd.js → onboard-hooks-CK-gx645.js} +4 -4
  118. package/dist/{onboard-remote-BfScc2nM.js → onboard-remote-SQzkLmdW.js} +4 -4
  119. package/dist/{onboard-skills-CkZeXqxE.js → onboard-skills-B2UtgSDa.js} +4 -4
  120. package/dist/{onboarding-DyjqYKzZ.js → onboarding-CWdu0f2f.js} +14 -14
  121. package/dist/{onboarding.finalize-Rn8lrC90.js → onboarding.finalize-BD5_L4rw.js} +87 -87
  122. package/dist/{onboarding.gateway-config-D83188RW.js → onboarding.gateway-config-CBJgsZvM.js} +18 -18
  123. package/dist/{onboarding.secret-input-CG_ZOH5i.js → onboarding.secret-input-B_lhRVqi.js} +1 -1
  124. package/dist/{openai-model-default-D1kdZKT2.js → openai-model-default-OdIXYQox.js} +2 -2
  125. package/dist/{openclaw-root-BU3lu8pM.js → openclaw-root-BFfBQ6FD.js} +8 -8
  126. package/dist/{outbound-attachment-MWhTrPYa.js → outbound-attachment-BewsAqvJ.js} +2 -2
  127. package/dist/{outbound-BrhmfCk2.js → outbound-m-MM0HUr.js} +3 -3
  128. package/dist/{pairing-cli-BLxX0PoT.js → pairing-cli-CjrZxYPI.js} +8 -8
  129. package/dist/{pairing-labels-C1jblVNc.js → pairing-labels-BU1EH5qm.js} +1 -1
  130. package/dist/{pairing-store-B_UHGVGM.js → pairing-store-CrEzWjmd.js} +3 -3
  131. package/dist/{path-alias-guards-DhIwq92y.js → path-alias-guards-DbNvNQar.js} +3 -3
  132. package/dist/{path-safety-BjIM4N4t.js → path-safety-ClQO4BB6.js} +1 -1
  133. package/dist/{paths-CGf7Nrz-.js → paths-BaZIBy3U.js} +9 -9
  134. package/dist/{pi-embedded-helpers-D9bQLeoK.js → pi-embedded-helpers-CJZP0u_Y.js} +6 -6
  135. package/dist/{pi-model-discovery-BmqY0Fxk.js → pi-model-discovery-IzndsQh-.js} +1 -1
  136. package/dist/{pi-model-discovery-runtime-Ce9Tz7Qj.js → pi-model-discovery-runtime-Bc-2_ZlP.js} +5 -5
  137. package/dist/{pi-tools.before-tool-call.runtime-B3faxm6v.js → pi-tools.before-tool-call.runtime-D4tLWmkM.js} +5 -5
  138. package/dist/{pi-tools.policy-B1sTh_x1.js → pi-tools.policy-B72vqcZC.js} +5 -5
  139. package/dist/{plugin-auto-enable-DFhRs_Ha.js → plugin-auto-enable-BJfAN-kO.js} +3 -3
  140. package/dist/{plugin-registry-34ghMzQO.js → plugin-registry-Coex6Pjp.js} +3 -3
  141. package/dist/plugin-sdk/{accounts-UnMpt5N3.js → accounts-8MUKWeGv.js} +2 -2
  142. package/dist/plugin-sdk/{accounts-B9LsoWRN.js → accounts-C1nsQfAq.js} +3 -3
  143. package/dist/plugin-sdk/{accounts-raZ4ECkq.js → accounts-CPoohfrp.js} +2 -2
  144. package/dist/plugin-sdk/{active-listener-Eb16HTkk.js → active-listener-Degi0it3.js} +2 -2
  145. package/dist/plugin-sdk/{api-key-rotation-CVee9nRS.js → api-key-rotation-CbsZTTUf.js} +2 -2
  146. package/dist/plugin-sdk/{audio-preflight-B82VQczF.js → audio-preflight-De3ToOLv.js} +26 -26
  147. package/dist/plugin-sdk/{audio-transcription-runner-qZ6rKQHs.js → audio-transcription-runner-B99FfbzJ.js} +11 -11
  148. package/dist/plugin-sdk/{audit-membership-runtime-Re50ULXH.js → audit-membership-runtime-DS34hPU6.js} +2 -2
  149. package/dist/plugin-sdk/{channel-activity-DhjaEnHr.js → channel-activity-DdXRr2be.js} +3 -3
  150. package/dist/plugin-sdk/{channel-web-Cd9ofl4F.js → channel-web-DyO5wH-M.js} +18 -18
  151. package/dist/plugin-sdk/{chrome-DkRruWw9.js → chrome-D9S09VjY.js} +6 -6
  152. package/dist/plugin-sdk/{commands-registry-DCIdoQuk.js → commands-registry-7sKgV6b6.js} +4 -4
  153. package/dist/plugin-sdk/{config-Dq7-4cgI.js → config-hSLjGMqo.js} +7 -7
  154. package/dist/plugin-sdk/{deliver-BFO3PdBy.js → deliver-CmBonhhr.js} +10 -10
  155. package/dist/plugin-sdk/deliver-runtime-DzqXq4YW.js +32 -0
  156. package/dist/plugin-sdk/deps-send-discord.runtime-BWZWUTzd.js +23 -0
  157. package/dist/plugin-sdk/deps-send-imessage.runtime-BbcpP4Hy.js +22 -0
  158. package/dist/plugin-sdk/deps-send-signal.runtime-DnuZ-6OX.js +21 -0
  159. package/dist/plugin-sdk/deps-send-slack.runtime-C-K73-e_.js +19 -0
  160. package/dist/plugin-sdk/deps-send-telegram.runtime-B47VZANU.js +24 -0
  161. package/dist/plugin-sdk/deps-send-whatsapp.runtime-CbVoeht-.js +57 -0
  162. package/dist/plugin-sdk/{diagnostic-DiXA_NOk.js → diagnostic-XZ76ECg1.js} +2 -2
  163. package/dist/plugin-sdk/{errors-x0EvNKYN.js → errors-C-TFeu_U.js} +1 -1
  164. package/dist/plugin-sdk/{fetch-guard-DHh-3Pq7.js → fetch-guard-BNChovQk.js} +2 -2
  165. package/dist/plugin-sdk/{fs-safe-Obb1u_C-.js → fs-safe-B8jm0acc.js} +3 -3
  166. package/dist/plugin-sdk/{image-C2hwEt8m.js → image-BzikjBti.js} +6 -6
  167. package/dist/plugin-sdk/{image-ops-C7Kt1ryv.js → image-ops-DBR1x_FT.js} +2 -2
  168. package/dist/plugin-sdk/image-runtime-BfyyxB88.js +25 -0
  169. package/dist/plugin-sdk/index.js +50 -50
  170. package/dist/plugin-sdk/{ir-DEyFvrC3.js → ir-CvW_AaoY.js} +7 -7
  171. package/dist/plugin-sdk/{local-roots-BS6aNMOU.js → local-roots-CW4yjHjO.js} +4 -4
  172. package/dist/plugin-sdk/{logger-COmHOvdm.js → logger-z1vqlUc1.js} +2 -2
  173. package/dist/plugin-sdk/{login-C0QJfY7H.js → login-BzaOlpPR.js} +4 -4
  174. package/dist/plugin-sdk/{login-qr-0qmwdPb0.js → login-qr-C0z_KRnC.js} +5 -5
  175. package/dist/plugin-sdk/{manager-8RgL4Sdy.js → manager-DTf6k6ib.js} +8 -8
  176. package/dist/plugin-sdk/manager-runtime-PlVcxBdF.js +15 -0
  177. package/dist/plugin-sdk/{outbound-r2idzBjf.js → outbound-DmES81b6.js} +5 -5
  178. package/dist/plugin-sdk/{outbound-attachment-D2rmCK5Q.js → outbound-attachment-BYR_GvCl.js} +2 -2
  179. package/dist/plugin-sdk/{path-alias-guards-DlbgzmZl.js → path-alias-guards-CMpHLrQn.js} +1 -1
  180. package/dist/plugin-sdk/{paths-B2ytnsaB.js → paths-NcyWgkDa.js} +1 -1
  181. package/dist/plugin-sdk/{pi-embedded-helpers-xCyAR479.js → pi-embedded-helpers-6BaZvTwA.js} +16 -16
  182. package/dist/plugin-sdk/{pi-model-discovery-C31bQ9NT.js → pi-model-discovery-DYyEobhW.js} +1 -1
  183. package/dist/plugin-sdk/pi-model-discovery-runtime-CF3YRFcs.js +8 -0
  184. package/dist/plugin-sdk/{pi-tools.before-tool-call.runtime-BPpgalFg.js → pi-tools.before-tool-call.runtime-ocH9ttx6.js} +4 -4
  185. package/dist/plugin-sdk/{plugins-CRPN1AUk.js → plugins-B_UiQZHB.js} +4 -4
  186. package/dist/plugin-sdk/{proxy-fetch-BZAtM2fT.js → proxy-fetch-DxlXp4Yi.js} +1 -1
  187. package/dist/plugin-sdk/{pw-ai-kU3tw4ws.js → pw-ai-B-yFpAtd.js} +9 -9
  188. package/dist/plugin-sdk/{qmd-manager-5TI5OD4_.js → qmd-manager-uz9PCVkw.js} +7 -7
  189. package/dist/plugin-sdk/{query-expansion-miz9J0WR.js → query-expansion-D8bZEHLi.js} +4 -4
  190. package/dist/plugin-sdk/{redact-DZTeCKgA.js → redact-DIGZ7dEc.js} +1 -1
  191. package/dist/plugin-sdk/{reply-2zncCurP.js → reply-DHKovUx3.js} +73 -73
  192. package/dist/plugin-sdk/{resolve-outbound-target-BZynpUy7.js → resolve-outbound-target-DAomg7DR.js} +2 -2
  193. package/dist/plugin-sdk/{run-with-concurrency-BdEQVn3N.js → run-with-concurrency-qFOkp49n.js} +1 -1
  194. package/dist/plugin-sdk/runtime-whatsapp-login.runtime-D6QQrKEg.js +10 -0
  195. package/dist/plugin-sdk/runtime-whatsapp-outbound.runtime-C9sD41-7.js +19 -0
  196. package/dist/plugin-sdk/{send-DXAc8sNQ.js → send-AAxixxac.js} +6 -6
  197. package/dist/plugin-sdk/{send-srOsTG5v.js → send-BikqI3_Q.js} +5 -5
  198. package/dist/plugin-sdk/{send-DDxJMLW5.js → send-D7LHac9D.js} +7 -7
  199. package/dist/plugin-sdk/{send-BraCxR1K.js → send-DHx11WPi.js} +13 -13
  200. package/dist/plugin-sdk/{send-DGJD5miT.js → send-iL8NdxQL.js} +8 -8
  201. package/dist/plugin-sdk/{session-DPtviLOH.js → session-B8SERluE.js} +3 -3
  202. package/dist/plugin-sdk/{skill-commands-9Q1xjzBv.js → skill-commands-BBiGcASQ.js} +4 -4
  203. package/dist/plugin-sdk/{skills-DibmdNLb.js → skills-uVCpkzHJ.js} +6 -6
  204. package/dist/plugin-sdk/slack.js +2 -2
  205. package/dist/plugin-sdk/slash-commands.runtime-UF19zDim.js +13 -0
  206. package/dist/plugin-sdk/slash-dispatch.runtime-CSdhHD27.js +52 -0
  207. package/dist/plugin-sdk/slash-skill-commands.runtime-B9xCsuLJ.js +16 -0
  208. package/dist/plugin-sdk/{ssrf-C6DhX4-H.js → ssrf-BvmhOmnD.js} +1 -1
  209. package/dist/plugin-sdk/{store-ZIdTTfE4.js → store-CDD0KdbU.js} +2 -2
  210. package/dist/plugin-sdk/subagent-registry-runtime-C4cuhBu-.js +52 -0
  211. package/dist/plugin-sdk/{tables-BssKNJPW.js → tables-DnzlEbCE.js} +1 -1
  212. package/dist/plugin-sdk/{target-errors-CXWbQSBp.js → target-errors-BInUjyyh.js} +2 -2
  213. package/dist/plugin-sdk/{thinking-DMfnE3HJ.js → thinking-CLc4CsZU.js} +7 -7
  214. package/dist/plugin-sdk/{tokens-XT-8y62w.js → tokens-DuRErjk3.js} +1 -1
  215. package/dist/plugin-sdk/{tool-images-DbDPeOjK.js → tool-images-h8wHgEL8.js} +2 -2
  216. package/dist/plugin-sdk/web-Btk9r9Ct.js +56 -0
  217. package/dist/plugin-sdk/{whatsapp-actions-DKfas9MG.js → whatsapp-actions-BBLa4ciE.js} +17 -17
  218. package/dist/{plugins-DO_6iMZV.js → plugins-B4AetCpQ.js} +2 -2
  219. package/dist/{plugins-cli-CrVhFNFQ.js → plugins-cli-BC1OrfRZ.js} +83 -83
  220. package/dist/{ports-D7wHAklC.js → ports-BUQm2J6L.js} +1 -1
  221. package/dist/{ports-jknVhOJa.js → ports-BpZiRmiG.js} +2 -2
  222. package/dist/{program-DJShjgis.js → program-DP3cy7oT.js} +81 -81
  223. package/dist/{prompt-select-styled-BEQND6Pn.js → prompt-select-styled-doOKqwJk.js} +40 -40
  224. package/dist/{provider-auth-helpers-CHEChUx_.js → provider-auth-helpers-DcmZK4IP.js} +5 -5
  225. package/dist/{proxy-env-C61VbSzS.js → proxy-env-BEfRNPmW.js} +1 -1
  226. package/dist/{push-apns-BPEC7SVy.js → push-apns-Duv_LH_E.js} +5 -5
  227. package/dist/{pw-ai-BWsikzYD.js → pw-ai-Ds5f7Rvv.js} +18 -18
  228. package/dist/{qmd-manager-DefwbEao.js → qmd-manager-4HixPUdU.js} +20 -20
  229. package/dist/{qr-cli-CoXD6uPd.js → qr-cli-D4MiTFeD.js} +2 -2
  230. package/dist/{query-expansion-BlsKiJrV.js → query-expansion-DfWHFCTw.js} +12 -12
  231. package/dist/{redact-snapshot-M27Gs1s9.js → redact-snapshot-BE1hcZlN.js} +1 -1
  232. package/dist/{register.agent-t529UsnC.js → register.agent-DFd8-wLc.js} +94 -94
  233. package/dist/register.configure-Cu6y9WMa.js +165 -0
  234. package/dist/{register.maintenance-FmxcJgcW.js → register.maintenance-CouoMEPC.js} +95 -95
  235. package/dist/{register.message-BCoDh2cF.js → register.message-g4CdwiKD.js} +74 -74
  236. package/dist/{register.onboard-DZar0J8o.js → register.onboard-DlKw4xXK.js} +18 -18
  237. package/dist/{register.setup-D14CyWuc.js → register.setup-kxCLJtkA.js} +21 -21
  238. package/dist/{register.status-health-sessions-B6crPNF9.js → register.status-health-sessions-BakEjuIX.js} +88 -88
  239. package/dist/{register.subclis-BAATApi1.js → register.subclis-E3VXJcR8.js} +31 -31
  240. package/dist/{rpc-CA7yGckN.js → rpc-C9k7pLBW.js} +1 -1
  241. package/dist/{run-main-B19t_gLX.js → run-main-k4NWKRqz.js} +92 -92
  242. package/dist/{runtime-D_htBj_7.js → runtime-CagDsJFx.js} +3 -3
  243. package/dist/{runtime-config-collectors-mLMSoY2n.js → runtime-config-collectors-D0I8Qs4G.js} +1 -1
  244. package/dist/{runtime-whatsapp-login.runtime-BtBGjvx6.js → runtime-whatsapp-login.runtime-BvfhsLJm.js} +7 -7
  245. package/dist/{runtime-whatsapp-outbound.runtime-D1d2rg_z.js → runtime-whatsapp-outbound.runtime-QL3Riu-B.js} +15 -15
  246. package/dist/{sandbox-C-8JxFW5.js → sandbox-CgTcwizP.js} +18 -18
  247. package/dist/{sandbox-cli-xIBSXLbp.js → sandbox-cli-56gCyo4f.js} +25 -25
  248. package/dist/{secrets-cli-DwpF8ldn.js → secrets-cli-BjzX5BIS.js} +11 -11
  249. package/dist/{security-cli-BjfOTh6K.js → security-cli-C8_7pezc.js} +42 -42
  250. package/dist/{send-NBLtGiEh.js → send-B1C9OCt2.js} +8 -8
  251. package/dist/{send-Cp2_MKSV.js → send-BCdpg1w2.js} +5 -5
  252. package/dist/{send-BzRMouwD.js → send-BhJJuiPi.js} +4 -4
  253. package/dist/{send-DrEo-BBc.js → send-CkFo9xha.js} +6 -6
  254. package/dist/{send-D2Kyg_GY.js → send-DDvvsvcJ.js} +11 -11
  255. package/dist/{server-Cz0R7Scf.js → server-EsF-rWXM.js} +20 -20
  256. package/dist/{server-context-vco06zxO.js → server-context-DAejIBKi.js} +12 -12
  257. package/dist/{server-lifecycle-BnUgXA5X.js → server-lifecycle-C0IxrwRk.js} +2 -2
  258. package/dist/{server-middleware-D5lrCTcL.js → server-middleware-B8_ZaIoM.js} +1 -1
  259. package/dist/{server-node-events-BTTa3-DI.js → server-node-events-1jnvsPrM.js} +74 -74
  260. package/dist/{service-B6Pm7AZA.js → service-T5lT7h-M.js} +15 -15
  261. package/dist/{session-CDSphrCx.js → session-XvQQBDSC.js} +1 -1
  262. package/dist/{session-utils-LerBXiBL.js → session-utils-CDs6jjz-.js} +6 -6
  263. package/dist/{sessions-UwbRBc7C.js → sessions-D4pBAOV-.js} +15 -15
  264. package/dist/{sessions-C7q1EhRK.js → sessions-JCqDw8Bf.js} +4 -4
  265. package/dist/{shared-BVq1q5D-.js → shared-BrmHcYtZ.js} +1 -1
  266. package/dist/{shared-sIizRbI9.js → shared-DaWK788E.js} +3 -3
  267. package/dist/{skill-commands-CeEZlRJj.js → skill-commands-DDRb6be1.js} +5 -5
  268. package/dist/{skill-scanner-DGx7tLvP.js → skill-scanner-BdA-XFky.js} +6 -6
  269. package/dist/{skills-B16i2mme.js → skills-Dde3dh7M.js} +3 -3
  270. package/dist/{skills-cli-COBPySVc.js → skills-cli-hPtKeBYo.js} +5 -5
  271. package/dist/{skills-install-CEgXF7D3.js → skills-install-BG5c8jOQ.js} +6 -6
  272. package/dist/{skills-status-BGvLXtop.js → skills-status-Cl0jR0kA.js} +1 -1
  273. package/dist/{slash-commands.runtime-BLl455Ha.js → slash-commands.runtime-WyW5W0r3.js} +11 -11
  274. package/dist/slash-dispatch.runtime-e_hnJMYz.js +114 -0
  275. package/dist/{slash-skill-commands.runtime-NP-EeAgb.js → slash-skill-commands.runtime-DCZQC-hJ.js} +15 -15
  276. package/dist/{status-4fmTPmZ8.js → status-KrF4yDJE.js} +27 -27
  277. package/dist/{status.update-BincwEhI.js → status.update-ovXdI8fy.js} +2 -2
  278. package/dist/{store-C4eyKOP_.js → store-OqcrqyHY.js} +5 -5
  279. package/dist/{subagent-registry-B29QoX6u.js → subagent-registry-CqQCPU35.js} +149 -149
  280. package/dist/subagent-registry-runtime-DZ2NcDAS.js +114 -0
  281. package/dist/{system-cli-DeCdNdxg.js → system-cli-C6XjjyMr.js} +9 -9
  282. package/dist/{system-run-command-DVel5yZQ.js → system-run-command-B1auaqvg.js} +1 -1
  283. package/dist/{systemd-BPu08aN2.js → systemd-CvSjUuUT.js} +9 -9
  284. package/dist/{systemd-hints-PEGoMeNi.js → systemd-hints-DPrvbOr-.js} +6 -6
  285. package/dist/{systemd-linger-ckxguBpS.js → systemd-linger-DWtUqeeE.js} +1 -1
  286. package/dist/{tables-CM4RCywz.js → tables-BSWzRw5b.js} +1 -1
  287. package/dist/{tailnet-D8ZmZFEq.js → tailnet-Bdvg29Ll.js} +1 -1
  288. package/dist/{target-errors-Dq-K3j_S.js → target-errors-D0aWoxbs.js} +4 -4
  289. package/dist/{tool-images-C96-GuZE.js → tool-images-J7V8AfTu.js} +1 -1
  290. package/dist/{tui-Cby-FNU6.js → tui-DlcwmY1x.js} +6 -6
  291. package/dist/{tui-cli-BpgQL5Pu.js → tui-cli-zm_Sa4E5.js} +32 -32
  292. package/dist/{update-DNmbn7VE.js → update-Gbhw9u0F.js} +3 -3
  293. package/dist/{update-cli-kVzXT8I-.js → update-cli-Co-CAt0w.js} +104 -104
  294. package/dist/{update-runner-C-d9Tjog.js → update-runner-kKiJKth8.js} +16 -16
  295. package/dist/web-Bx-fQR1C.js +118 -0
  296. package/dist/{webhooks-cli-BeC7vAYz.js → webhooks-cli-B-O0TVtX.js} +6 -6
  297. package/dist/{whatsapp-actions-oSO9PcWD.js → whatsapp-actions-DaNP01Yk.js} +17 -17
  298. package/dist/{with-timeout-YDfOtKvh.js → with-timeout-xp4bBUMy.js} +3 -3
  299. package/dist/{workspace-CZkOfauh.js → workspace-BXI1yRZ5.js} +1 -1
  300. package/dist/{workspace-dirs-BSD3q0pa.js → workspace-dirs-BY9k_sye.js} +1 -1
  301. package/dist/{wsl-CsGe5QCP.js → wsl-CvQfS6aU.js} +2 -2
  302. package/package.json +2 -2
  303. package/dist/deliver-runtime-DkDQPjmE.js +0 -61
  304. package/dist/deps-send-discord.runtime-DhhOEbEN.js +0 -36
  305. package/dist/deps-send-imessage.runtime-CeatZSyv.js +0 -35
  306. package/dist/deps-send-signal.runtime-xlqQXnR0.js +0 -34
  307. package/dist/deps-send-slack.runtime-m3yDRYug.js +0 -32
  308. package/dist/deps-send-whatsapp.runtime-DZR3Tix2.js +0 -119
  309. package/dist/image-runtime-vjBJe2FQ.js +0 -55
  310. package/dist/plugin-sdk/deliver-runtime-BWZ4MjCx.js +0 -32
  311. package/dist/plugin-sdk/deps-send-discord.runtime-DOOrRWmj.js +0 -23
  312. package/dist/plugin-sdk/deps-send-imessage.runtime-B5w4Zb7g.js +0 -22
  313. package/dist/plugin-sdk/deps-send-signal.runtime-NUsgzgnc.js +0 -21
  314. package/dist/plugin-sdk/deps-send-slack.runtime-30nkLxsY.js +0 -19
  315. package/dist/plugin-sdk/deps-send-telegram.runtime-D2BsaDBJ.js +0 -24
  316. package/dist/plugin-sdk/deps-send-whatsapp.runtime-DMtrDoHb.js +0 -57
  317. package/dist/plugin-sdk/image-runtime-Vtwamfai.js +0 -25
  318. package/dist/plugin-sdk/manager-runtime-B7jfPrQb.js +0 -15
  319. package/dist/plugin-sdk/pi-model-discovery-runtime-C5Suk1AS.js +0 -8
  320. package/dist/plugin-sdk/runtime-whatsapp-login.runtime-BhSqT2c_.js +0 -10
  321. package/dist/plugin-sdk/runtime-whatsapp-outbound.runtime-DrZrtcgL.js +0 -19
  322. package/dist/plugin-sdk/slash-commands.runtime-z1q_nPnV.js +0 -13
  323. package/dist/plugin-sdk/slash-dispatch.runtime-CR4I_6w5.js +0 -52
  324. package/dist/plugin-sdk/slash-skill-commands.runtime-BzB0BO-7.js +0 -16
  325. package/dist/plugin-sdk/subagent-registry-runtime-UnNrLL2P.js +0 -52
  326. package/dist/plugin-sdk/web-D7S-5qkT.js +0 -56
  327. package/dist/register.configure-Dn11C-E_.js +0 -165
  328. package/dist/slash-dispatch.runtime-BtsEX-_Q.js +0 -114
  329. package/dist/subagent-registry-runtime-ChT29jt0.js +0 -114
  330. package/dist/web-CrLnsppN.js +0 -118
@@ -3,111 +3,111 @@ import { g as resolveStateDir, r as STATE_DIR, u as resolveGatewayPort, y as res
3
3
  import { d as defaultRuntime, t as createSubsystemLogger, u as createNonExitingRuntime } from "./subsystem-Cfn2Pryx.js";
4
4
  import { t as parseBooleanValue$1 } from "./boolean-DtWR5bt3.js";
5
5
  import { r as isTruthyEnvValue } from "./entry.js";
6
- import { Ar as resolveReasoningDefault, At as AVATAR_MAX_BYTES, Dn as applyMergePatch, Dr as resolveDefaultModelForAgent, Er as resolveConfiguredModelRef, Fi as DEFAULT_CONTEXT_TOKENS, Fn as resolveSlackNativeStreaming, Ft as isSupportedLocalAvatarExtension, G as writeConfigFile, Gn as resolveOwnerDisplaySetting, Gt as getConfigValueAtPath, Hn as resolveAgentMaxConcurrent, Ht as resetConfigOverrides, Ii as DEFAULT_MODEL, In as resolveSlackStreamingMode, J as TELEGRAM_COMMAND_NAME_PATTERN, Jn as listProfilesForProvider, Jt as unsetConfigValueAtPath, K as validateConfigObjectWithPlugins, Kt as parseConfigPath, Li as DEFAULT_PROVIDER, Mr as resolveSubagentSpawnModelSelection, Mt as isAvatarHttpUrl, Nn as mapStreamingModeToSlackLegacyDraftStreamMode, Nr as resolveThinkingDefault, Pi as splitTrailingAuthProfile, Pn as resolveDiscordPreviewStreamMode, Pt as isPathWithinRoot, Q as isInboundPathAllowed, Ri as resolveAuthProfileDisplayLabel, Sr as normalizeProviderId, U as resolveConfigSnapshotHash, Ut as setConfigOverride, V as readConfigFileSnapshot, Vn as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH, Vt as getConfigOverrides, Wt as unsetConfigOverride, X as resolveTelegramCustomCommands, Xr as resolveRetryConfig, Y as normalizeTelegramCommandName, Yn as markAuthProfileGood, Zr as retryAsync, _i as resolveModelAuthMode, a as getSoonestCooldownExpiry, ai as OLLAMA_NATIVE_BASE_URL, bi as resolveShellEnvFallbackTimeoutMs, br as normalizeModelRef$2, c as markAuthProfileUsed, ci as buildAssistantMessageWithZeroUsage, cr as withFileLock, d as resolveApiKeyForProfile, di as getApiKeyForModel, er as ensureAuthProfileStore, et as resolveIMessageAttachmentRoots, f as evaluateStoredCredentialEligibility, fi as getCustomProviderApiKey, fr as buildAllowedModelSet, gi as resolveEnvApiKey, hr as findNormalizedProviderValue, i as clearExpiredCooldowns, ji as normalizeSecretInput, jt as isAvatarDataUrl, kr as resolveModelRefFromString, li as buildStreamErrorAssistantMessage, mi as resolveApiKeyForProvider, mr as buildModelAliasIndex, nn as buildEnforcedShellCommand, nt as normalizeScpRemoteHost, o as isProfileInCooldown, oi as createOllamaStreamFn, or as resolveAuthStorePathForDisplay, p as resolveTokenExpiryState, pi as requireApiKey, pr as buildConfiguredAllowlistKeys, pt as parseDurationMs, qn as dedupeProfileIds, qt as setConfigValueAtPath, r as resolveAuthProfileOrder, rt as parseNonNegativeByteSize, s as markAuthProfileFailure, si as buildAssistantMessage, sr as resolveOpenClawAgentDir, tt as resolveIMessageRemoteAttachmentRoots, u as resolveProfilesUnavailableReason, ui as buildUsageWithNoCost, vr as isCliProvider, yi as getShellPathFromLoginShell, yr as modelKey, z as loadConfig, zt as validateJsonSchemaValue } from "./auth-profiles-yB_p54Kf.js";
6
+ import { Ar as resolveReasoningDefault, At as AVATAR_MAX_BYTES, Dn as applyMergePatch, Dr as resolveDefaultModelForAgent, Er as resolveConfiguredModelRef, Fi as DEFAULT_CONTEXT_TOKENS, Fn as resolveSlackNativeStreaming, Ft as isSupportedLocalAvatarExtension, G as writeConfigFile, Gn as resolveOwnerDisplaySetting, Gt as getConfigValueAtPath, Hn as resolveAgentMaxConcurrent, Ht as resetConfigOverrides, Ii as DEFAULT_MODEL, In as resolveSlackStreamingMode, J as TELEGRAM_COMMAND_NAME_PATTERN, Jn as listProfilesForProvider, Jt as unsetConfigValueAtPath, K as validateConfigObjectWithPlugins, Kt as parseConfigPath, Li as DEFAULT_PROVIDER, Mr as resolveSubagentSpawnModelSelection, Mt as isAvatarHttpUrl, Nn as mapStreamingModeToSlackLegacyDraftStreamMode, Nr as resolveThinkingDefault, Pi as splitTrailingAuthProfile, Pn as resolveDiscordPreviewStreamMode, Pt as isPathWithinRoot, Q as isInboundPathAllowed, Ri as resolveAuthProfileDisplayLabel, Sr as normalizeProviderId, U as resolveConfigSnapshotHash, Ut as setConfigOverride, V as readConfigFileSnapshot, Vn as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH, Vt as getConfigOverrides, Wt as unsetConfigOverride, X as resolveTelegramCustomCommands, Xr as resolveRetryConfig, Y as normalizeTelegramCommandName, Yn as markAuthProfileGood, Zr as retryAsync, _i as resolveModelAuthMode, a as getSoonestCooldownExpiry, ai as OLLAMA_NATIVE_BASE_URL, bi as resolveShellEnvFallbackTimeoutMs, br as normalizeModelRef$2, c as markAuthProfileUsed, ci as buildAssistantMessageWithZeroUsage, cr as withFileLock, d as resolveApiKeyForProfile, di as getApiKeyForModel, er as ensureAuthProfileStore, et as resolveIMessageAttachmentRoots, f as evaluateStoredCredentialEligibility, fi as getCustomProviderApiKey, fr as buildAllowedModelSet, gi as resolveEnvApiKey, hr as findNormalizedProviderValue, i as clearExpiredCooldowns, ji as normalizeSecretInput, jt as isAvatarDataUrl, kr as resolveModelRefFromString, li as buildStreamErrorAssistantMessage, mi as resolveApiKeyForProvider, mr as buildModelAliasIndex, nn as buildEnforcedShellCommand, nt as normalizeScpRemoteHost, o as isProfileInCooldown, oi as createOllamaStreamFn, or as resolveAuthStorePathForDisplay, p as resolveTokenExpiryState, pi as requireApiKey, pr as buildConfiguredAllowlistKeys, pt as parseDurationMs, qn as dedupeProfileIds, qt as setConfigValueAtPath, r as resolveAuthProfileOrder, rt as parseNonNegativeByteSize, s as markAuthProfileFailure, si as buildAssistantMessage, sr as resolveOpenClawAgentDir, tt as resolveIMessageRemoteAttachmentRoots, u as resolveProfilesUnavailableReason, ui as buildUsageWithNoCost, vr as isCliProvider, yi as getShellPathFromLoginShell, yr as modelKey, z as loadConfig, zt as validateJsonSchemaValue } from "./auth-profiles-CtYlKXxI.js";
7
7
  import { t as formatCliCommand } from "./command-format-CLEQe4bk.js";
8
- import { D as filterBootstrapFilesForSession, E as ensureAgentWorkspace, M as resolveAgentModelFallbackValues, N as resolveAgentModelPrimaryValue, P as toAgentModelListLike, _ as DEFAULT_AGENT_WORKSPACE_DIR, a as resolveAgentDir, b as DEFAULT_IDENTITY_FILENAME, d as resolveDefaultAgentId, f as resolveEffectiveModelFallbacks, h as resolveSessionAgentIds, i as resolveAgentConfig, k as loadWorkspaceBootstrapFiles, l as resolveAgentSkillsFilter, m as resolveSessionAgentId, p as resolveRunModelFallbacksOverride, r as listAgentIds, t as hasConfiguredModelFallbacks, u as resolveAgentWorkspaceDir, v as DEFAULT_BOOTSTRAP_FILENAME } from "./agent-scope-BGsA4zEf.js";
8
+ import { D as filterBootstrapFilesForSession, E as ensureAgentWorkspace, M as resolveAgentModelFallbackValues, N as resolveAgentModelPrimaryValue, P as toAgentModelListLike, _ as DEFAULT_AGENT_WORKSPACE_DIR, a as resolveAgentDir, b as DEFAULT_IDENTITY_FILENAME, d as resolveDefaultAgentId, f as resolveEffectiveModelFallbacks, h as resolveSessionAgentIds, i as resolveAgentConfig, k as loadWorkspaceBootstrapFiles, l as resolveAgentSkillsFilter, m as resolveSessionAgentId, p as resolveRunModelFallbacksOverride, r as listAgentIds, t as hasConfiguredModelFallbacks, u as resolveAgentWorkspaceDir, v as DEFAULT_BOOTSTRAP_FILENAME } from "./agent-scope-C5bklqr1.js";
9
9
  import { D as resolveThreadParentSessionKey, E as parseAgentSessionKey, S as isAcpSessionKey, T as isSubagentSessionKey, _ as normalizeAccountId$2, b as deriveSessionChatType, c as normalizeAgentId, d as resolveThreadSessionKeys, f as sanitizeAgentId, g as DEFAULT_ACCOUNT_ID, i as buildAgentPeerSessionKey, l as normalizeMainKey, n as DEFAULT_MAIN_KEY, o as classifySessionKeyShape, p as scopedHeartbeatWakeOptions, r as buildAgentMainSessionKey, s as isValidAgentId, t as DEFAULT_AGENT_ID, u as resolveAgentIdFromSessionKey, v as normalizeOptionalAccountId, w as isCronSessionKey, x as getSubagentDepth, y as isBlockedObjectKey } from "./session-key-k6urs9r-.js";
10
10
  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-cwpAMi-t.js";
11
- import { a as openBoundaryFileSync, h as normalizeWindowsPathForComparison, i as openBoundaryFile, t as resolveOpenClawPackageRoot } from "./openclaw-root-BU3lu8pM.js";
11
+ import { a as openBoundaryFileSync, h as normalizeWindowsPathForComparison, i as openBoundaryFile, t as resolveOpenClawPackageRoot } from "./openclaw-root-BFfBQ6FD.js";
12
12
  import { i as logWarn, n as logError, r as logInfo, t as logDebug } from "./logger-DB-PHqB2.js";
13
13
  import { n as runExec, r as spawnWithFallback, t as runCommandWithTimeout } from "./exec-B45rafWZ.js";
14
14
  import { E as triggerInternalHook, M as normalizeResolvedSecretInputString, S as matchPluginCommand, _ as normalizePluginHttpPath, b as getPluginCommandSpecs, c as normalizeChannelId$1, d as getActivePluginRegistryKey, g as createPluginRegistry, k as coerceSecretRef, 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-BrR1Dq5T.js";
15
15
  import { a as saveJsonFile, i as loadJsonFile } from "./github-copilot-token-Byc_YVYE.js";
16
16
  import { n as isDangerousHostEnvVarName } from "./host-env-security-lcjXF83D.js";
17
17
  import { t as VERSION } from "./version-DdJhsIqk.js";
18
- import { a as safeStatSync, d as normalizePluginsConfig, f as resolveEffectiveEnableState, i as isPathInside, l as applyTestPluginDefaults, n as loadPluginManifestRegistry, p as resolveMemorySlotDecision, r as discoverOpenClawPlugins } from "./manifest-registry-CzoQ4XAn.js";
19
- 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-DjC0vgOm.js";
18
+ import { a as safeStatSync, d as normalizePluginsConfig, f as resolveEffectiveEnableState, i as isPathInside, l as applyTestPluginDefaults, n as loadPluginManifestRegistry, p as resolveMemorySlotDecision, r as discoverOpenClawPlugins } from "./manifest-registry-DjbHJw7g.js";
19
+ 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-BaM5oTqE.js";
20
20
  import { t as runTasksWithConcurrency } from "./run-with-concurrency-kzSMVKJz.js";
21
21
  import { n as recordCommandPoll, r as resetCommandPollCount } from "./command-poll-backoff-BAST85mP.js";
22
- import { i as buildModelAliasLines, n as resolveModel } from "./model-B2Sraf73.js";
23
- import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-BmqY0Fxk.js";
24
- import { a as logMessageQueued, c as logWebhookError, d as startDiagnosticHeartbeat, f as stopDiagnosticHeartbeat, h as getDiagnosticSessionState, i as logMessageProcessed, l as logWebhookProcessed, m as isDiagnosticsEnabled, n as logLaneDequeue, o as logSessionStateChange, p as emitDiagnosticEvent, r as logLaneEnqueue, t as diag, u as logWebhookReceived } from "./diagnostic-Dp-KkeSq.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-B16i2mme.js";
26
- import { t as PATH_ALIAS_POLICIES } from "./path-alias-guards-DhIwq92y.js";
22
+ import { i as buildModelAliasLines, n as resolveModel } from "./model-BLdajRK2.js";
23
+ import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-IzndsQh-.js";
24
+ import { a as logMessageQueued, c as logWebhookError, d as startDiagnosticHeartbeat, f as stopDiagnosticHeartbeat, h as getDiagnosticSessionState, i as logMessageProcessed, l as logWebhookProcessed, m as isDiagnosticsEnabled, n as logLaneDequeue, o as logSessionStateChange, p as emitDiagnosticEvent, r as logLaneEnqueue, t as diag, u as logWebhookReceived } from "./diagnostic-3zN7XEY1.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-Dde3dh7M.js";
26
+ import { t as PATH_ALIAS_POLICIES } from "./path-alias-guards-DbNvNQar.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-CXgeX9no.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, at as resolveConversationLabel, b as deliveryContextKey, c as recordSessionMetaFromInbound, d as updateSessionStore, et as resolveExplicitAgentSessionKey, f as updateSessionStoreEntry, lt as resolveGroupSessionKey, 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-UwbRBc7C.js";
29
- import { A as normalizeDiscordToken, C as isWhatsAppGroupJid, D as listEnabledDiscordAccounts, S as resolveSlackBotToken, T as createDiscordActionGate, a as createTelegramActionGate, b as resolveSlackReplyToMode, h as listBindings, j as normalizeChatType, k as resolveDiscordAccount, l as resolveTelegramAccount, m as buildChannelAccountBindings, n as listChannelPlugins, o as listEnabledTelegramAccounts, r as normalizeChannelId$2, s as listTelegramAccountIds, t as getChannelPlugin, u as resolveTelegramToken, w as normalizeWhatsAppTarget, x as resolveSlackAppToken, y as resolveSlackAccount } from "./plugins-DO_6iMZV.js";
30
- import { _ as webAuthExists, c as logWebSelfId, i as resolveWhatsAppAccount, l as logoutWeb, p as readWebSelfId, s as getWebAuthAgeMs, y as resolveAccountEntry } from "./accounts-Bod7973i.js";
31
- import { r as resolveIMessageAccount } from "./accounts-BSIXwC37.js";
32
- import { i as resolveSignalAccount, t as listEnabledSignalAccounts } from "./accounts-D3YOECeq.js";
33
- import { a as resolveSlackWebClientOptions, c as buildSlackBlocksFallbackText, i as createSlackWebClient, l as parseSlackTarget, n as markdownToSlackMrkdwnChunks, o as parseSlackBlocksInput, r as normalizeSlackOutboundText, s as validateSlackBlocksArray, t as sendMessageSlack, u as resolveSlackChannelId } from "./send-BzRMouwD.js";
34
- import { $ as stripUndefinedFields, A as unpinMessageDiscord, At as resolveChannelEntryMatchWithFallback, B as listScheduledEventsDiscord, C as editMessageDiscord, Ct as resolveDiscordSystemLocation, D as pinMessageDiscord, Dt as applyChannelMatchMeta, E as listThreadsDiscord, Et as fetchDiscord, 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 buildChannelKeyCandidates, P as fetchChannelInfoDiscord, Q as sendDiscordText, R as kickMemberDiscord, S as deleteMessageDiscord, St as formatDiscordUserTag, T as listPinsDiscord, Tt as DiscordApiError, U as listGuildEmojisDiscord, V as removeRoleDiscord, W as uploadEmojiDiscord, X as removeChannelPermissionDiscord, Y as moveChannelDiscord, Z as setChannelPermissionDiscord, _ as sendStickerDiscord, _t as resolveDiscordOwnerAllowFrom, a as sendDiscordComponentMessage, at as parseDiscordTarget, b as formatMention, bt as shouldEmitDiscordReactionNotification, c as parseDiscordComponentCustomId, ct as listDiscordDirectoryPeersLive, d as parseDiscordModalCustomIdForCarbon, dt as normalizeDiscordSlug, et as fetchChannelPermissionsDiscord, f as readDiscordComponentSpec, ft as resolveDiscordAllowListMatch, g as sendPollDiscord, gt as resolveDiscordOwnerAccess, h as sendMessageDiscord, ht as resolveDiscordMemberAccessState, i as removeReactionDiscord, it as createDiscordRestClient, j as addRoleDiscord, k as searchMessagesDiscord, kt as normalizeChannelSlug, l as parseDiscordComponentCustomIdForCarbon, lt as isDiscordGroupAllowedByPolicy, m as resolveDiscordModalEntry, mt as resolveDiscordGuildEntry, n as reactMessageDiscord, nt as chunkDiscordTextWithMode, o as createDiscordFormModal, ot as resolveDiscordChannelId, p as resolveDiscordComponentEntry, pt as resolveDiscordChannelConfigWithFallback, q as deleteChannelDiscord, r as removeOwnReactionsDiscord, rt as createDiscordClient, s as formatDiscordComponentEventText, st as listDiscordDirectoryGroupsLive, t as fetchReactionsDiscord, tt as hasAnyGuildPermissionDiscord, u as parseDiscordModalCustomId, ut as normalizeDiscordAllowList, v as sendVoiceMessageDiscord, vt as resolveDiscordShouldRequireMention, w as fetchMessageDiscord, wt as resolveTimestampMs, x as createThreadDiscord, xt as formatDiscordReactionEmoji, y as sendWebhookMessageDiscord, yt as resolveGroupDmAllow, z as listGuildChannelsDiscord } from "./send-D2Kyg_GY.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, at as resolveConversationLabel, b as deliveryContextKey, c as recordSessionMetaFromInbound, d as updateSessionStore, et as resolveExplicitAgentSessionKey, f as updateSessionStoreEntry, lt as resolveGroupSessionKey, 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-D4pBAOV-.js";
29
+ import { A as normalizeDiscordToken, C as isWhatsAppGroupJid, D as listEnabledDiscordAccounts, S as resolveSlackBotToken, T as createDiscordActionGate, a as createTelegramActionGate, b as resolveSlackReplyToMode, h as listBindings, j as normalizeChatType, k as resolveDiscordAccount, l as resolveTelegramAccount, m as buildChannelAccountBindings, n as listChannelPlugins, o as listEnabledTelegramAccounts, r as normalizeChannelId$2, s as listTelegramAccountIds, t as getChannelPlugin, u as resolveTelegramToken, w as normalizeWhatsAppTarget, x as resolveSlackAppToken, y as resolveSlackAccount } from "./plugins-B4AetCpQ.js";
30
+ import { _ as webAuthExists, c as logWebSelfId, i as resolveWhatsAppAccount, l as logoutWeb, p as readWebSelfId, s as getWebAuthAgeMs, y as resolveAccountEntry } from "./accounts-CucAhPu5.js";
31
+ import { r as resolveIMessageAccount } from "./accounts-DarjcXFz.js";
32
+ import { i as resolveSignalAccount, t as listEnabledSignalAccounts } from "./accounts-DjUjM_0M.js";
33
+ import { a as resolveSlackWebClientOptions, c as buildSlackBlocksFallbackText, i as createSlackWebClient, l as parseSlackTarget, n as markdownToSlackMrkdwnChunks, o as parseSlackBlocksInput, r as normalizeSlackOutboundText, s as validateSlackBlocksArray, t as sendMessageSlack, u as resolveSlackChannelId } from "./send-BhJJuiPi.js";
34
+ import { $ as stripUndefinedFields, A as unpinMessageDiscord, At as resolveChannelEntryMatchWithFallback, B as listScheduledEventsDiscord, C as editMessageDiscord, Ct as resolveDiscordSystemLocation, D as pinMessageDiscord, Dt as applyChannelMatchMeta, E as listThreadsDiscord, Et as fetchDiscord, 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 buildChannelKeyCandidates, P as fetchChannelInfoDiscord, Q as sendDiscordText, R as kickMemberDiscord, S as deleteMessageDiscord, St as formatDiscordUserTag, T as listPinsDiscord, Tt as DiscordApiError, U as listGuildEmojisDiscord, V as removeRoleDiscord, W as uploadEmojiDiscord, X as removeChannelPermissionDiscord, Y as moveChannelDiscord, Z as setChannelPermissionDiscord, _ as sendStickerDiscord, _t as resolveDiscordOwnerAllowFrom, a as sendDiscordComponentMessage, at as parseDiscordTarget, b as formatMention, bt as shouldEmitDiscordReactionNotification, c as parseDiscordComponentCustomId, ct as listDiscordDirectoryPeersLive, d as parseDiscordModalCustomIdForCarbon, dt as normalizeDiscordSlug, et as fetchChannelPermissionsDiscord, f as readDiscordComponentSpec, ft as resolveDiscordAllowListMatch, g as sendPollDiscord, gt as resolveDiscordOwnerAccess, h as sendMessageDiscord, ht as resolveDiscordMemberAccessState, i as removeReactionDiscord, it as createDiscordRestClient, j as addRoleDiscord, k as searchMessagesDiscord, kt as normalizeChannelSlug, l as parseDiscordComponentCustomIdForCarbon, lt as isDiscordGroupAllowedByPolicy, m as resolveDiscordModalEntry, mt as resolveDiscordGuildEntry, n as reactMessageDiscord, nt as chunkDiscordTextWithMode, o as createDiscordFormModal, ot as resolveDiscordChannelId, p as resolveDiscordComponentEntry, pt as resolveDiscordChannelConfigWithFallback, q as deleteChannelDiscord, r as removeOwnReactionsDiscord, rt as createDiscordClient, s as formatDiscordComponentEventText, st as listDiscordDirectoryGroupsLive, t as fetchReactionsDiscord, tt as hasAnyGuildPermissionDiscord, u as parseDiscordModalCustomId, ut as normalizeDiscordAllowList, v as sendVoiceMessageDiscord, vt as resolveDiscordShouldRequireMention, w as fetchMessageDiscord, wt as resolveTimestampMs, x as createThreadDiscord, xt as formatDiscordReactionEmoji, y as sendWebhookMessageDiscord, yt as resolveGroupDmAllow, z as listGuildChannelsDiscord } from "./send-DDvvsvcJ.js";
35
35
  import { c as resolveStorePath, i as resolveSessionTranscriptPath, n as resolveSessionFilePath, r as resolveSessionFilePathOptions, t as resolveDefaultSessionStorePath } from "./paths-DvFmz0MB.js";
36
36
  import { i as normalizeInputProvenance, n as applyInputProvenanceToUserMessage, r as hasInterSessionUserProvenance } from "./input-provenance-C8z9KgIz.js";
37
- import { r as writeJsonAtomic } from "./json-files-rR19q30D.js";
37
+ import { r as writeJsonAtomic } from "./json-files-CuJjdF_0.js";
38
38
  import { n as onSessionTranscriptUpdate, t as emitSessionTranscriptUpdate } from "./transcript-events-DgzPL8Hc.js";
39
- import { Ft as SESSION_LABEL_MAX_LENGTH, t as GatewayClient } from "./client-Kkj2aHgb.js";
40
- import { a as randomIdempotencyKey, f as resolveLeastPrivilegeOperatorScopesForMethod, n as callGateway, r as callGatewayLeastPrivilege, t as buildGatewayConnectionDetails } from "./call-CeJbHmC5.js";
41
- import { r as isLoopbackHost } from "./net-CfwQaj6f.js";
39
+ import { Ft as SESSION_LABEL_MAX_LENGTH, t as GatewayClient } from "./client-BqLxmdBY.js";
40
+ import { a as randomIdempotencyKey, f as resolveLeastPrivilegeOperatorScopesForMethod, n as callGateway, r as callGatewayLeastPrivilege, t as buildGatewayConnectionDetails } from "./call-BHrnZxI1.js";
41
+ import { r as isLoopbackHost } from "./net-DFijUFfS.js";
42
42
  import { r as trimToUndefined, t as resolveGatewayCredentialsFromConfig } from "./credentials-B1L0upy1.js";
43
43
  import { a as stripSilentToken, i as isSilentReplyText, n as SILENT_REPLY_TOKEN, r as isSilentReplyPrefixText, t as HEARTBEAT_TOKEN } from "./tokens-BaNa8Czl.js";
44
- import { a as getMachineDisplayName, i as startBrowserControlServiceFromConfig, n as createBrowserRouteDispatcher, r as createBrowserControlContext, t as withTimeout$4 } from "./with-timeout-YDfOtKvh.js";
44
+ import { a as getMachineDisplayName, i as startBrowserControlServiceFromConfig, n as createBrowserRouteDispatcher, r as createBrowserControlContext, t as withTimeout$4 } from "./with-timeout-xp4bBUMy.js";
45
45
  import { n as generateSecureUuid, t as generateSecureToken } from "./secure-random-_dzDDlFo.js";
46
- 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-Bh8OdZ9H.js";
46
+ 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-HkPDAwY2.js";
47
47
  import { i as resolveTelegramTargetChatType, r as parseTelegramTarget } from "./targets-Bz6Ajr4f.js";
48
- 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-Ba5soKsa.js";
49
- import { A as describeReplyTarget, B as resolveTelegramStreamMode, C as buildSenderLabel, D as buildTelegramParentPeer, E as buildTelegramGroupPeerId, F as resolveTelegramDirectPeerId, G as resolveSenderAllowMatch$1, H as isSenderAllowed$1, I as resolveTelegramForumThreadId, J as isVoiceCompatibleAudio, K as formatLocationText, L as resolveTelegramGroupAllowFromContext, M as extractTelegramLocation, N as hasBotMention, O as buildTelegramThreadParams, P as normalizeForwardedContext, R as resolveTelegramMediaPlaceholder, S as buildGroupLabel, T as buildTelegramGroupFrom, U as normalizeAllowFrom$2, V as resolveTelegramThreadSpec, W as normalizeDmAllowFromWithStore$1, _ as splitTelegramCaption, a as reactMessageTelegram, b as resolveCronStorePath, c as sendStickerTelegram, d as isRecoverableTelegramNetworkError, f as markdownToTelegramChunks, g as resolveTelegramFetch, h as wrapFileReferencesInHtml, i as editMessageTelegram, j as expandTextLinks, k as buildTypingThreadParams, l as resolveTelegramVoiceSend, m as renderTelegramHtmlText, n as createForumTopicTelegram, o as sendMessageTelegram, p as markdownToTelegramHtml, q as toLocationContext, r as deleteMessageTelegram, s as sendPollTelegram, t as buildInlineKeyboard, u as wasSentByBot, v as withTelegramApiErrorLogging, w as buildSenderName, y as loadCronStore, z as resolveTelegramReplyId } from "./send-NBLtGiEh.js";
50
- import { A as isTransientHttpError, B as resolveBootstrapTotalMaxChars, C as isCompactionFailureError, D as isLikelyContextOverflowError, E as isFailoverErrorMessage, F as isTimeoutErrorMessage, I as buildBootstrapContextFiles, L as ensureSessionHeader, M as parseImageSizeError, N as sanitizeUserFacingText, O as isRateLimitAssistantError, P as isAuthPermanentErrorMessage, R as resolveBootstrapMaxChars, S as isCloudCodeAssistFormatError, T as isFailoverAssistantError, 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 parseImageDimensionError, k as isRawApiErrorPayload, 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 isContextOverflowError, x as isBillingAssistantError, y as getApiErrorPayloadFingerprint, z as resolveBootstrapPromptTruncationWarningMode } from "./pi-embedded-helpers-D9bQLeoK.js";
51
- 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-C-8JxFW5.js";
52
- import { j as DEFAULT_AI_SNAPSHOT_MAX_CHARS } from "./chrome-NrlBIdcn.js";
53
- import { c as resolveBrowserControlAuth, i as resolveBrowserConfig } from "./server-context-vco06zxO.js";
54
- import { i as resolveExistingPathsWithinRoot, r as DEFAULT_UPLOAD_DIR } from "./paths-CGf7Nrz-.js";
48
+ 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-WJSAG5_7.js";
49
+ import { A as describeReplyTarget, B as resolveTelegramStreamMode, C as buildSenderLabel, D as buildTelegramParentPeer, E as buildTelegramGroupPeerId, F as resolveTelegramDirectPeerId, G as resolveSenderAllowMatch$1, H as isSenderAllowed$1, I as resolveTelegramForumThreadId, J as isVoiceCompatibleAudio, K as formatLocationText, L as resolveTelegramGroupAllowFromContext, M as extractTelegramLocation, N as hasBotMention, O as buildTelegramThreadParams, P as normalizeForwardedContext, R as resolveTelegramMediaPlaceholder, S as buildGroupLabel, T as buildTelegramGroupFrom, U as normalizeAllowFrom$2, V as resolveTelegramThreadSpec, W as normalizeDmAllowFromWithStore$1, _ as splitTelegramCaption, a as reactMessageTelegram, b as resolveCronStorePath, c as sendStickerTelegram, d as isRecoverableTelegramNetworkError, f as markdownToTelegramChunks, g as resolveTelegramFetch, h as wrapFileReferencesInHtml, i as editMessageTelegram, j as expandTextLinks, k as buildTypingThreadParams, l as resolveTelegramVoiceSend, m as renderTelegramHtmlText, n as createForumTopicTelegram, o as sendMessageTelegram, p as markdownToTelegramHtml, q as toLocationContext, r as deleteMessageTelegram, s as sendPollTelegram, t as buildInlineKeyboard, u as wasSentByBot, v as withTelegramApiErrorLogging, w as buildSenderName, y as loadCronStore, z as resolveTelegramReplyId } from "./send-B1C9OCt2.js";
50
+ import { A as isTransientHttpError, B as resolveBootstrapTotalMaxChars, C as isCompactionFailureError, D as isLikelyContextOverflowError, E as isFailoverErrorMessage, F as isTimeoutErrorMessage, I as buildBootstrapContextFiles, L as ensureSessionHeader, M as parseImageSizeError, N as sanitizeUserFacingText, O as isRateLimitAssistantError, P as isAuthPermanentErrorMessage, R as resolveBootstrapMaxChars, S as isCloudCodeAssistFormatError, T as isFailoverAssistantError, 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 parseImageDimensionError, k as isRawApiErrorPayload, 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 isContextOverflowError, x as isBillingAssistantError, y as getApiErrorPayloadFingerprint, z as resolveBootstrapPromptTruncationWarningMode } from "./pi-embedded-helpers-CJZP0u_Y.js";
51
+ 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-CgTcwizP.js";
52
+ import { j as DEFAULT_AI_SNAPSHOT_MAX_CHARS } from "./chrome-m5f8q2YK.js";
53
+ import { c as resolveBrowserControlAuth, i as resolveBrowserConfig } from "./server-context-DAejIBKi.js";
54
+ import { i as resolveExistingPathsWithinRoot, r as DEFAULT_UPLOAD_DIR } from "./paths-BaZIBy3U.js";
55
55
  import { a as testRegexWithBoundedInput, i as compileSafeRegex, n as redactSensitiveText } from "./redact-DwuqxSL3.js";
56
56
  import { i as formatUncaughtError, r as formatErrorMessage, s as readErrorName } from "./errors-CIvF1JsC.js";
57
- import { i as openFileWithinRoot, l as writeFileWithinRoot, n as copyFileWithinRoot, o as readFileWithinRoot, r as createRootScopedReadFile, t as SafeOpenError } from "./fs-safe-DTO6fZ7N.js";
58
- import { a as isBlockedHostnameOrIp, c as normalizeHostname, n as SsrFBlockedError } from "./proxy-env-C61VbSzS.js";
59
- import { i as saveMediaBuffer, r as getMediaDir, t as MEDIA_MAX_BYTES } from "./store-C4eyKOP_.js";
60
- import { i as resolveLsofCommandSync } from "./ports-jknVhOJa.js";
61
- import { a as canonicalizeBase64, i as resolveImageSanitizationLimits, n as sanitizeImageBlocks, o as estimateBase64DecodedBytes, r as sanitizeToolResultImages } from "./tool-images-C96-GuZE.js";
57
+ import { i as openFileWithinRoot, l as writeFileWithinRoot, n as copyFileWithinRoot, o as readFileWithinRoot, r as createRootScopedReadFile, t as SafeOpenError } from "./fs-safe-CYrszQI6.js";
58
+ import { a as isBlockedHostnameOrIp, c as normalizeHostname, n as SsrFBlockedError } from "./proxy-env-BEfRNPmW.js";
59
+ import { i as saveMediaBuffer, r as getMediaDir, t as MEDIA_MAX_BYTES } from "./store-OqcrqyHY.js";
60
+ import { i as resolveLsofCommandSync } from "./ports-BpZiRmiG.js";
61
+ import { a as canonicalizeBase64, i as resolveImageSanitizationLimits, n as sanitizeImageBlocks, o as estimateBase64DecodedBytes, r as sanitizeToolResultImages } from "./tool-images-J7V8AfTu.js";
62
62
  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-CrcT589P.js";
63
- import { t as ensureOpenClawModelsJson } from "./models-config-C7yYEUbY.js";
64
- import { n as evaluateShellAllowlist, r as resolveAllowAlwaysPatterns } from "./exec-approvals-allowlist-CSsG6lrG.js";
65
- import { n as resolveExecSafeBinRuntimePolicy, r as resolveMergedSafeBinProfileFixtures } from "./exec-safe-bin-runtime-policy-ukabtnTn.js";
66
- import { n as loadModelCatalog, r as modelSupportsVision, t as findModelInCatalog } from "./model-catalog-B9Kd_iNy.js";
67
- import { a as getDefaultMediaLocalRoots, i as getAgentScopedMediaLocalRoots, n as fetchRemoteMedia, r as readResponseWithLimit, t as MediaFetchError } from "./fetch-DmaNytop.js";
68
- 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-D6NSiBUN.js";
63
+ import { t as ensureOpenClawModelsJson } from "./models-config-VlzOga1W.js";
64
+ import { n as evaluateShellAllowlist, r as resolveAllowAlwaysPatterns } from "./exec-approvals-allowlist-CGQJSJfD.js";
65
+ import { n as resolveExecSafeBinRuntimePolicy, r as resolveMergedSafeBinProfileFixtures } from "./exec-safe-bin-runtime-policy-nkIQWrRj.js";
66
+ import { n as loadModelCatalog, r as modelSupportsVision, t as findModelInCatalog } from "./model-catalog-DorZGOmy.js";
67
+ import { a as getDefaultMediaLocalRoots, i as getAgentScopedMediaLocalRoots, n as fetchRemoteMedia, r as readResponseWithLimit, t as MediaFetchError } from "./fetch-qkXypRi6.js";
68
+ 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-C1T1UDgG.js";
69
69
  import { n as fetchWithTimeout, t as bindAbortRelay } from "./fetch-timeout-Mawkd1Br.js";
70
- import { n as withStrictGuardedFetchMode, r as withTrustedEnvProxyGuardedFetchMode, t as fetchWithSsrFGuard } from "./fetch-guard-0V5i-cZz.js";
71
- import { _ as stripReasoningTagsFromText, a as resolveProviderVisionModelFromConfig, b as extractTextFromChatContent, c as extractThinkingFromTaggedStream, d as inferToolMetaFromArgs, f as isAssistantMessage, g as stripThinkingTagsFromText, h as stripMinimaxToolCallXml, i as decodeDataUrl, l as extractThinkingFromTaggedText, m as stripDowngradedToolCallText, n as coerceImageAssistantText, o as extractAssistantText$1, p as promoteThinkingTagsToBlocks, r as coerceImageModelConfig, s as extractAssistantThinking, u as formatReasoningMessage, v as findCodeRegions, x as minimaxUnderstandImage, y as isInsideCode } from "./image-5Dop2pwF.js";
70
+ import { n as withStrictGuardedFetchMode, r as withTrustedEnvProxyGuardedFetchMode, t as fetchWithSsrFGuard } from "./fetch-guard-CS_3jTMA.js";
71
+ import { _ as stripReasoningTagsFromText, a as resolveProviderVisionModelFromConfig, b as extractTextFromChatContent, c as extractThinkingFromTaggedStream, d as inferToolMetaFromArgs, f as isAssistantMessage, g as stripThinkingTagsFromText, h as stripMinimaxToolCallXml, i as decodeDataUrl, l as extractThinkingFromTaggedText, m as stripDowngradedToolCallText, n as coerceImageAssistantText, o as extractAssistantText$1, p as promoteThinkingTagsToBlocks, r as coerceImageModelConfig, s as extractAssistantThinking, u as formatReasoningMessage, v as findCodeRegions, x as minimaxUnderstandImage, y as isInsideCode } from "./image-ktIANJRi.js";
72
72
  import { n as formatToolSummary, r as resolveToolDisplay } from "./tool-display-DJA6wQza.js";
73
73
  import { t as makeProxyFetch } from "./proxy-fetch-BSCpx7Yz.js";
74
- import { _ as isSafeFenceBreak, a as loadWebMedia, c as chunkByNewline, d as chunkMarkdownTextWithMode, f as chunkText, g as findFenceSpanAt, h as resolveTextChunkLimit, i as getDefaultLocalRoots, m as resolveChunkMode, o as loadWebMediaRaw, p as chunkTextWithMode, s as resolveMarkdownTableMode, u as chunkMarkdownText, v as parseFenceSpans } from "./ir-SEi7gUP9.js";
75
- 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-Dq-K3j_S.js";
76
- import { a as resolveNativeSkillsEnabled, i as resolveNativeCommandsEnabled, n as isNativeCommandsExplicitlyDisabled, r as isRestartEnabled, t as isCommandFlagEnabled } from "./commands-BYuioJO3.js";
77
- import { a as listChatCommandsForConfig, c as maybeResolveTextAlias, d as resolveCommandArgChoices, f as resolveCommandArgMenu, i as listChatCommands, l as normalizeCommandBody, m as shouldHandleTextCommands, n as findCommandByNativeName, o as listNativeCommandSpecs, p as serializeCommandArgs, r as isCommandEnabled, s as listNativeCommandSpecsForConfig, t as buildCommandTextFromArgs, u as parseCommandArgs } from "./commands-registry-DCOqmmUF.js";
74
+ import { _ as isSafeFenceBreak, a as loadWebMedia, c as chunkByNewline, d as chunkMarkdownTextWithMode, f as chunkText, g as findFenceSpanAt, h as resolveTextChunkLimit, i as getDefaultLocalRoots, m as resolveChunkMode, o as loadWebMediaRaw, p as chunkTextWithMode, s as resolveMarkdownTableMode, u as chunkMarkdownText, v as parseFenceSpans } from "./ir-xdB7409t.js";
75
+ 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-D0aWoxbs.js";
76
+ import { a as resolveNativeSkillsEnabled, i as resolveNativeCommandsEnabled, n as isNativeCommandsExplicitlyDisabled, r as isRestartEnabled, t as isCommandFlagEnabled } from "./commands-CP-eujrx.js";
77
+ import { a as listChatCommandsForConfig, c as maybeResolveTextAlias, d as resolveCommandArgChoices, f as resolveCommandArgMenu, i as listChatCommands, l as normalizeCommandBody, m as shouldHandleTextCommands, n as findCommandByNativeName, o as listNativeCommandSpecs, p as serializeCommandArgs, r as isCommandEnabled, s as listNativeCommandSpecsForConfig, t as buildCommandTextFromArgs, u as parseCommandArgs } from "./commands-registry-BxWE_gts.js";
78
78
  import { n as wrapFetchWithAbortSignal, t as resolveFetch } from "./fetch-Cep8cXb2.js";
79
79
  import { n as formatTimeAgo } from "./format-relative-Czf5fUjn.js";
80
- 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-B_UHGVGM.js";
80
+ 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-CrEzWjmd.js";
81
81
  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-BXpO0clf.js";
82
- 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-DF7EBTLu.js";
82
+ 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-DWVpmvMz.js";
83
83
  import { t as killProcessTree$1 } from "./kill-tree-0NV2m8EI.js";
84
- import { t as formatExecCommand } from "./system-run-command-DVel5yZQ.js";
84
+ import { t as formatExecCommand } from "./system-run-command-B1auaqvg.js";
85
85
  import { i as parsePairingList, n as resolveNodeIdFromNodeList, r as parseNodeList, t as resolveNodeFromNodeList } from "./node-resolve-DO_ibeH6.js";
86
86
  import { i as formatDurationSeconds, r as formatDurationPrecise, t as formatDurationCompact$1 } from "./format-duration-CZ0b60YO.js";
87
- import { a as loadCombinedSessionStoreForGateway, d as resolveContextTokensForModel, f as computeBackoff, p as sleepWithAbort, u as lookupContextTokens } from "./session-utils-LerBXiBL.js";
87
+ import { a as loadCombinedSessionStoreForGateway, d as resolveContextTokensForModel, f as computeBackoff, p as sleepWithAbort, u as lookupContextTokens } from "./session-utils-CDs6jjz-.js";
88
88
  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-TIBv8Nm4.js";
89
89
  import { i as resolveModelCostConfig, n as formatTokenCount$2, r as formatUsd, t as estimateUsageCost } from "./usage-format-eNPY7j3q.js";
90
- import { a as getRemoteSkillEligibility, b as getSkillsSnapshotVersion, i as resolveSkillCommandInvocation, n as listSkillCommandsForAgents, r as listSkillCommandsForWorkspace, t as listReservedChatSlashCommandNames, y as ensureSkillsWatcher } from "./skill-commands-CeEZlRJj.js";
91
- import { n as recordChannelActivity, r as createDiscordRetryRunner, t as getChannelActivity } from "./channel-activity-CtUzm0zi.js";
90
+ import { a as getRemoteSkillEligibility, b as getSkillsSnapshotVersion, i as resolveSkillCommandInvocation, n as listSkillCommandsForAgents, r as listSkillCommandsForWorkspace, t as listReservedChatSlashCommandNames, y as ensureSkillsWatcher } from "./skill-commands-DDRb6be1.js";
91
+ import { n as recordChannelActivity, r as createDiscordRetryRunner, t as getChannelActivity } from "./channel-activity-CudRDPXk.js";
92
92
  import { t as buildOutboundMediaLoadOptions } from "./load-options-PN66jbnR.js";
93
93
  import { n as normalizePollInput } from "./polls-C67dmFc-.js";
94
- import { t as convertMarkdownTables } from "./tables-CM4RCywz.js";
94
+ import { t as convertMarkdownTables } from "./tables-BSWzRw5b.js";
95
95
  import { f as resolveGatewaySystemdServiceName, l as resolveGatewayLaunchAgentLabel } from "./constants-C8Mfdyag.js";
96
96
  import { i as parseAbsoluteTimeMs, r as resolveDefaultCronStaggerMs, t as normalizeCronStaggerMs } from "./stagger-C4U8O7GM.js";
97
- import { n as resolveMessageChannelSelection, t as listConfiguredMessageChannels } from "./channel-selection-BGFLNPuZ.js";
98
- import { t as applyPluginAutoEnable } from "./plugin-auto-enable-DFhRs_Ha.js";
99
- import { a as signalCheck, i as resolveSignalRpcContext, n as sendReadReceiptSignal, o as signalRpcRequest, r as sendTypingSignal, s as streamSignalEvents, t as sendMessageSignal } from "./send-Cp2_MKSV.js";
100
- import { a as isAllowedIMessageSender, i as formatIMessageChatTarget, n as createIMessageRpcClient, o as normalizeIMessageHandle, r as DEFAULT_IMESSAGE_PROBE_TIMEOUT_MS, s as parseIMessageTarget, t as sendMessageIMessage } from "./send-DrEo-BBc.js";
97
+ import { n as resolveMessageChannelSelection, t as listConfiguredMessageChannels } from "./channel-selection-D2KncGab.js";
98
+ import { t as applyPluginAutoEnable } from "./plugin-auto-enable-BJfAN-kO.js";
99
+ import { a as signalCheck, i as resolveSignalRpcContext, n as sendReadReceiptSignal, o as signalRpcRequest, r as sendTypingSignal, s as streamSignalEvents, t as sendMessageSignal } from "./send-BCdpg1w2.js";
100
+ import { a as isAllowedIMessageSender, i as formatIMessageChatTarget, n as createIMessageRpcClient, o as normalizeIMessageHandle, r as DEFAULT_IMESSAGE_PROBE_TIMEOUT_MS, s as parseIMessageTarget, t as sendMessageIMessage } from "./send-CkFo9xha.js";
101
101
  import { n as isSenderIdAllowed, r as mergeDmAllowFromSources, t as firstDefined$1 } from "./allow-from-DzfdGdp7.js";
102
102
  import { t as parseTimeoutMs } from "./parse-timeout-DUdeaMqF.js";
103
103
  import { i as redactIdentifier, t as getActiveWebListener } from "./active-listener-ChoRoJgR.js";
104
- 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-B1sTh_x1.js";
104
+ 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-B72vqcZC.js";
105
105
  import { n as isDangerousNameMatchingEnabled } from "./dangerous-name-matching-CXdnb6je.js";
106
- import { s as resolveCommandSecretRefsViaGateway, t as getAgentRuntimeCommandSecretTargetIds } from "./command-secret-targets-CVAt80vu.js";
107
- import { r as detectBinary } from "./onboard-helpers-Mort99IL.js";
108
- import { t as resolvePairingIdLabel } from "./pairing-labels-C1jblVNc.js";
109
- import { i as resolveMemoryBackendConfig, n as registerMemoryCli, r as getMemorySearchManager } from "./memory-cli-CEZedlbs.js";
110
- import { r as resolveMemorySearchConfig } from "./manager-DKcbmdLj.js";
106
+ import { s as resolveCommandSecretRefsViaGateway, t as getAgentRuntimeCommandSecretTargetIds } from "./command-secret-targets-_FGz0zdz.js";
107
+ import { r as detectBinary } from "./onboard-helpers-CPO08jBg.js";
108
+ import { t as resolvePairingIdLabel } from "./pairing-labels-BU1EH5qm.js";
109
+ import { i as resolveMemoryBackendConfig, n as registerMemoryCli, r as getMemorySearchManager } from "./memory-cli-B4tlY2Jz.js";
110
+ import { r as resolveMemorySearchConfig } from "./manager-DstlJwRR.js";
111
111
  import { i as resolveContextWindowInfo, n as CONTEXT_WINDOW_WARN_BELOW_TOKENS, r as evaluateContextWindowGuard, t as CONTEXT_WINDOW_HARD_MIN_TOKENS } from "./context-window-guard-EeoVR--t.js";
112
112
  import { createRequire } from "node:module";
113
113
  import { execFileSync, spawn, spawnSync } from "node:child_process";
@@ -117,7 +117,7 @@ import path, { isAbsolute } from "node:path";
117
117
  import fs, { existsSync, mkdirSync, mkdtempSync, promises, readFileSync, renameSync, rmSync, statSync, unlinkSync, writeFileSync } from "node:fs";
118
118
  import JSON5 from "json5";
119
119
  import { inspect } from "node:util";
120
- import fsPromises from "node:fs/promises";
120
+ import fs$1 from "node:fs/promises";
121
121
  import { complete, completeSimple, createAssistantMessageEventStream, streamSimple } from "@mariozechner/pi-ai";
122
122
  import crypto, { createHash, createHmac, randomBytes, randomUUID } from "node:crypto";
123
123
  import { CURRENT_SESSION_VERSION, DefaultResourceLoader, SessionManager, SettingsManager, codingTools, createAgentSession, createEditTool, createReadTool, createWriteTool, estimateTokens, generateSummary, readTool } from "@mariozechner/pi-coding-agent";
@@ -5150,7 +5150,7 @@ async function resolveAgentSessionDirs(stateDir) {
5150
5150
  const agentsDir = path.join(stateDir, "agents");
5151
5151
  let entries = [];
5152
5152
  try {
5153
- entries = await fsPromises.readdir(agentsDir, { withFileTypes: true });
5153
+ entries = await fs$1.readdir(agentsDir, { withFileTypes: true });
5154
5154
  } catch (err) {
5155
5155
  if (err.code === "ENOENT") return [];
5156
5156
  throw err;
@@ -8266,7 +8266,7 @@ async function runWithConcurrency(tasks, limit) {
8266
8266
  //#region src/media-understanding/echo-transcript.ts
8267
8267
  let deliverRuntimePromise$2 = null;
8268
8268
  function loadDeliverRuntime$2() {
8269
- deliverRuntimePromise$2 ??= import("./deliver-runtime-DkDQPjmE.js");
8269
+ deliverRuntimePromise$2 ??= import("./deliver-runtime-B5yIMxQR.js");
8270
8270
  return deliverRuntimePromise$2;
8271
8271
  }
8272
8272
  const DEFAULT_ECHO_TRANSCRIPT_FORMAT = "📝 \"{transcript}\"";
@@ -13102,7 +13102,7 @@ async function resolveSandboxWorkdir(params) {
13102
13102
  cwd: process.cwd(),
13103
13103
  root: params.sandbox.workspaceDir
13104
13104
  });
13105
- if (!(await fsPromises.stat(resolved.resolved)).isDirectory()) throw new Error("workdir is not a directory");
13105
+ if (!(await fs$1.stat(resolved.resolved)).isDirectory()) throw new Error("workdir is not a directory");
13106
13106
  const relative = resolved.relative ? resolved.relative.split(path.sep).join(path.posix.sep) : "";
13107
13107
  const containerWorkdir = relative ? path.posix.join(params.sandbox.containerWorkdir, relative) : params.sandbox.containerWorkdir;
13108
13108
  return {
@@ -14346,13 +14346,13 @@ async function validateScriptFileForShellBleed(params) {
14346
14346
  cwd: params.workdir,
14347
14347
  root: params.workdir
14348
14348
  });
14349
- stat = await fsPromises.stat(absPath);
14349
+ stat = await fs$1.stat(absPath);
14350
14350
  } catch {
14351
14351
  return;
14352
14352
  }
14353
14353
  if (!stat.isFile()) return;
14354
14354
  if (stat.size > 512 * 1024) return;
14355
- const content = await fsPromises.readFile(absPath, "utf-8");
14355
+ const content = await fs$1.readFile(absPath, "utf-8");
14356
14356
  const first = /\$[A-Z_][A-Z0-9_]{1,}/g.exec(content);
14357
14357
  if (first) {
14358
14358
  const idx = first.index;
@@ -23734,7 +23734,7 @@ function normalizeReplyPayload(payload, opts = {}) {
23734
23734
  */
23735
23735
  let deliverRuntimePromise$1 = null;
23736
23736
  function loadDeliverRuntime$1() {
23737
- deliverRuntimePromise$1 ??= import("./deliver-runtime-DkDQPjmE.js");
23737
+ deliverRuntimePromise$1 ??= import("./deliver-runtime-B5yIMxQR.js");
23738
23738
  return deliverRuntimePromise$1;
23739
23739
  }
23740
23740
  /**
@@ -23858,7 +23858,7 @@ async function emitResetCommandHooks(params) {
23858
23858
  try {
23859
23859
  const messages = [];
23860
23860
  if (sessionFile) {
23861
- const content = await fsPromises.readFile(sessionFile, "utf-8");
23861
+ const content = await fs$1.readFile(sessionFile, "utf-8");
23862
23862
  for (const line of content.split("\n")) {
23863
23863
  if (!line.trim()) continue;
23864
23864
  try {
@@ -24687,7 +24687,7 @@ async function createModelSelectionState(params) {
24687
24687
  }
24688
24688
  }
24689
24689
  if (sessionEntry && sessionStore && sessionKey && sessionEntry.authProfileOverride) {
24690
- const { ensureAuthProfileStore } = await import("./auth-profiles-yB_p54Kf.js").then((n) => n.t);
24690
+ const { ensureAuthProfileStore } = await import("./auth-profiles-CtYlKXxI.js").then((n) => n.t);
24691
24691
  const profile = ensureAuthProfileStore(void 0, { allowKeychainPrompt: false }).profiles[sessionEntry.authProfileOverride];
24692
24692
  const providerKey = normalizeProviderId(provider);
24693
24693
  if (!profile || normalizeProviderId(profile.provider) !== providerKey) await clearSessionAuthProfileOverride({
@@ -28283,7 +28283,7 @@ async function readJsonlFromPath(jsonlPath) {
28283
28283
  if (shouldLogVerbose()) logVerbose(`Blocked canvas jsonlPath outside allowed roots: ${resolved}`);
28284
28284
  throw new Error("jsonlPath outside allowed roots");
28285
28285
  }
28286
- const canonical = await fsPromises.realpath(resolved).catch(() => resolved);
28286
+ const canonical = await fs$1.realpath(resolved).catch(() => resolved);
28287
28287
  if (!isInboundPathAllowed({
28288
28288
  filePath: canonical,
28289
28289
  roots
@@ -28291,7 +28291,7 @@ async function readJsonlFromPath(jsonlPath) {
28291
28291
  if (shouldLogVerbose()) logVerbose(`Blocked canvas jsonlPath outside allowed roots: ${canonical}`);
28292
28292
  throw new Error("jsonlPath outside allowed roots");
28293
28293
  }
28294
- return await fsPromises.readFile(canonical, "utf8");
28294
+ return await fs$1.readFile(canonical, "utf8");
28295
28295
  }
28296
28296
  const CanvasToolSchema = Type.Object({
28297
28297
  action: stringEnum(CANVAS_ACTIONS),
@@ -29106,27 +29106,27 @@ function resolveRestartSentinelPath(env = process.env) {
29106
29106
  }
29107
29107
  async function writeRestartSentinel(payload, env = process.env) {
29108
29108
  const filePath = resolveRestartSentinelPath(env);
29109
- await fsPromises.mkdir(path.dirname(filePath), { recursive: true });
29109
+ await fs$1.mkdir(path.dirname(filePath), { recursive: true });
29110
29110
  const data = {
29111
29111
  version: 1,
29112
29112
  payload
29113
29113
  };
29114
- await fsPromises.writeFile(filePath, `${JSON.stringify(data, null, 2)}\n`, "utf-8");
29114
+ await fs$1.writeFile(filePath, `${JSON.stringify(data, null, 2)}\n`, "utf-8");
29115
29115
  return filePath;
29116
29116
  }
29117
29117
  async function readRestartSentinel(env = process.env) {
29118
29118
  const filePath = resolveRestartSentinelPath(env);
29119
29119
  try {
29120
- const raw = await fsPromises.readFile(filePath, "utf-8");
29120
+ const raw = await fs$1.readFile(filePath, "utf-8");
29121
29121
  let parsed;
29122
29122
  try {
29123
29123
  parsed = JSON.parse(raw);
29124
29124
  } catch {
29125
- await fsPromises.unlink(filePath).catch(() => {});
29125
+ await fs$1.unlink(filePath).catch(() => {});
29126
29126
  return null;
29127
29127
  }
29128
29128
  if (!parsed || parsed.version !== 1 || !parsed.payload) {
29129
- await fsPromises.unlink(filePath).catch(() => {});
29129
+ await fs$1.unlink(filePath).catch(() => {});
29130
29130
  return null;
29131
29131
  }
29132
29132
  return parsed;
@@ -29138,7 +29138,7 @@ async function consumeRestartSentinel(env = process.env) {
29138
29138
  const filePath = resolveRestartSentinelPath(env);
29139
29139
  const parsed = await readRestartSentinel(env);
29140
29140
  if (!parsed) return null;
29141
- await fsPromises.unlink(filePath).catch(() => {});
29141
+ await fs$1.unlink(filePath).catch(() => {});
29142
29142
  return parsed;
29143
29143
  }
29144
29144
  function formatRestartSentinelMessage(payload) {
@@ -39834,18 +39834,18 @@ function appendImagePathsToPrompt(prompt, paths) {
39834
39834
  return `${trimmed}${trimmed ? "\n\n" : ""}${paths.join("\n")}`;
39835
39835
  }
39836
39836
  async function writeCliImages(images) {
39837
- const tempDir = await fsPromises.mkdtemp(path.join(os.tmpdir(), "openclaw-cli-images-"));
39837
+ const tempDir = await fs$1.mkdtemp(path.join(os.tmpdir(), "openclaw-cli-images-"));
39838
39838
  const paths = [];
39839
39839
  for (let i = 0; i < images.length; i += 1) {
39840
39840
  const image = images[i];
39841
39841
  const ext = resolveImageExtension(image.mimeType);
39842
39842
  const filePath = path.join(tempDir, `image-${i + 1}.${ext}`);
39843
39843
  const buffer = Buffer.from(image.data, "base64");
39844
- await fsPromises.writeFile(filePath, buffer, { mode: 384 });
39844
+ await fs$1.writeFile(filePath, buffer, { mode: 384 });
39845
39845
  paths.push(filePath);
39846
39846
  }
39847
39847
  const cleanup = async () => {
39848
- await fsPromises.rm(tempDir, {
39848
+ await fs$1.rm(tempDir, {
39849
39849
  recursive: true,
39850
39850
  force: true
39851
39851
  });
@@ -43804,7 +43804,7 @@ const warnedContexts = /* @__PURE__ */ new Map();
43804
43804
  const log$9 = createSubsystemLogger("session-maintenance-warning");
43805
43805
  let deliverRuntimePromise = null;
43806
43806
  function loadDeliverRuntime() {
43807
- deliverRuntimePromise ??= import("./deliver-runtime-DkDQPjmE.js");
43807
+ deliverRuntimePromise ??= import("./deliver-runtime-B5yIMxQR.js");
43808
43808
  return deliverRuntimePromise;
43809
43809
  }
43810
43810
  function shouldSendWarning() {
@@ -44385,7 +44385,7 @@ async function stageSandboxMedia(params) {
44385
44385
  const remoteMediaCacheDir = ctx.MediaRemoteHost ? path.join(CONFIG_DIR, "media", "remote-cache", sessionKey) : null;
44386
44386
  const effectiveWorkspaceDir = sandbox?.workspaceDir ?? remoteMediaCacheDir;
44387
44387
  if (!effectiveWorkspaceDir) return;
44388
- await fsPromises.mkdir(effectiveWorkspaceDir, { recursive: true });
44388
+ await fs$1.mkdir(effectiveWorkspaceDir, { recursive: true });
44389
44389
  const remoteAttachmentRoots = resolveIMessageRemoteAttachmentRoots({
44390
44390
  cfg,
44391
44391
  accountId: ctx.AccountId
@@ -44444,8 +44444,8 @@ async function stageLocalFileIntoRoot(params) {
44444
44444
  }
44445
44445
  async function stageRemoteFileIntoRoot(params) {
44446
44446
  const tmpRoot = resolvePreferredOpenClawTmpDir();
44447
- await fsPromises.mkdir(tmpRoot, { recursive: true });
44448
- const tmpDir = await fsPromises.mkdtemp(path.join(tmpRoot, "stage-sandbox-media-"));
44447
+ await fs$1.mkdir(tmpRoot, { recursive: true });
44448
+ const tmpDir = await fs$1.mkdtemp(path.join(tmpRoot, "stage-sandbox-media-"));
44449
44449
  const tmpPath = path.join(tmpDir, "download");
44450
44450
  try {
44451
44451
  await scpFile(params.remoteHost, params.remotePath, tmpPath);
@@ -44456,7 +44456,7 @@ async function stageRemoteFileIntoRoot(params) {
44456
44456
  maxBytes: params.maxBytes
44457
44457
  });
44458
44458
  } finally {
44459
- await fsPromises.rm(tmpDir, {
44459
+ await fs$1.rm(tmpDir, {
44460
44460
  recursive: true,
44461
44461
  force: true
44462
44462
  }).catch(() => {});
@@ -48744,7 +48744,7 @@ const VISION_PROVIDERS = [
48744
48744
  ];
48745
48745
  let imageRuntimePromise = null;
48746
48746
  function loadImageRuntime() {
48747
- imageRuntimePromise ??= import("./image-runtime-vjBJe2FQ.js");
48747
+ imageRuntimePromise ??= import("./image-runtime-C0VvqoAb.js");
48748
48748
  return imageRuntimePromise;
48749
48749
  }
48750
48750
  /**
@@ -48810,7 +48810,7 @@ async function describeStickerImage(params) {
48810
48810
  const { provider, model } = resolved;
48811
48811
  logVerbose(`telegram: describing sticker with ${provider}/${model}`);
48812
48812
  try {
48813
- const buffer = await fsPromises.readFile(imagePath);
48813
+ const buffer = await fs$1.readFile(imagePath);
48814
48814
  const { describeImageWithModel } = await loadImageRuntime();
48815
48815
  return (await describeImageWithModel({
48816
48816
  buffer,
@@ -50572,7 +50572,7 @@ async function resolveDiscordPreflightAudioMentionContext(params) {
50572
50572
  const needsPreflightTranscription = !params.isDirectMessage && params.shouldRequireMention && hasAudioAttachment && !hasTypedText && params.mentionRegexes.length > 0;
50573
50573
  let transcript;
50574
50574
  if (needsPreflightTranscription) try {
50575
- const { transcribeFirstAudio } = await import("./audio-preflight-CN6L8zsG.js");
50575
+ const { transcribeFirstAudio } = await import("./audio-preflight-DFpELnh5.js");
50576
50576
  const audioUrls = audioAttachments.map((att) => att.url).filter((url) => typeof url === "string" && url.length > 0);
50577
50577
  if (audioUrls.length > 0) transcript = await transcribeFirstAudio({
50578
50578
  ctx: {
@@ -55394,27 +55394,27 @@ let slackSenderRuntimePromise = null;
55394
55394
  let signalSenderRuntimePromise = null;
55395
55395
  let imessageSenderRuntimePromise = null;
55396
55396
  function loadWhatsAppSenderRuntime() {
55397
- whatsappSenderRuntimePromise ??= import("./deps-send-whatsapp.runtime-DZR3Tix2.js");
55397
+ whatsappSenderRuntimePromise ??= import("./deps-send-whatsapp.runtime-CHgCReeR.js");
55398
55398
  return whatsappSenderRuntimePromise;
55399
55399
  }
55400
55400
  function loadTelegramSenderRuntime() {
55401
- telegramSenderRuntimePromise ??= import("./deps-send-telegram.runtime-DhLKcoGf.js");
55401
+ telegramSenderRuntimePromise ??= import("./deps-send-telegram.runtime-DUo2GPb7.js");
55402
55402
  return telegramSenderRuntimePromise;
55403
55403
  }
55404
55404
  function loadDiscordSenderRuntime() {
55405
- discordSenderRuntimePromise ??= import("./deps-send-discord.runtime-DhhOEbEN.js");
55405
+ discordSenderRuntimePromise ??= import("./deps-send-discord.runtime-sLYAyx_-.js");
55406
55406
  return discordSenderRuntimePromise;
55407
55407
  }
55408
55408
  function loadSlackSenderRuntime() {
55409
- slackSenderRuntimePromise ??= import("./deps-send-slack.runtime-m3yDRYug.js");
55409
+ slackSenderRuntimePromise ??= import("./deps-send-slack.runtime-D3QFxyKO.js");
55410
55410
  return slackSenderRuntimePromise;
55411
55411
  }
55412
55412
  function loadSignalSenderRuntime() {
55413
- signalSenderRuntimePromise ??= import("./deps-send-signal.runtime-xlqQXnR0.js");
55413
+ signalSenderRuntimePromise ??= import("./deps-send-signal.runtime-kNxDQhbE.js");
55414
55414
  return signalSenderRuntimePromise;
55415
55415
  }
55416
55416
  function loadIMessageSenderRuntime() {
55417
- imessageSenderRuntimePromise ??= import("./deps-send-imessage.runtime-CeatZSyv.js");
55417
+ imessageSenderRuntimePromise ??= import("./deps-send-imessage.runtime-2cWGJS5r.js");
55418
55418
  return imessageSenderRuntimePromise;
55419
55419
  }
55420
55420
  function createDefaultDeps() {
@@ -56587,10 +56587,10 @@ function estimateDurationSeconds(pcm) {
56587
56587
  return pcm.length / (bytesPerSample * SAMPLE_RATE);
56588
56588
  }
56589
56589
  async function writeWavFile(pcm) {
56590
- const tempDir = await fsPromises.mkdtemp(path.join(resolvePreferredOpenClawTmpDir(), "discord-voice-"));
56590
+ const tempDir = await fs$1.mkdtemp(path.join(resolvePreferredOpenClawTmpDir(), "discord-voice-"));
56591
56591
  const filePath = path.join(tempDir, `segment-${randomUUID()}.wav`);
56592
56592
  const wav = buildWavBuffer(pcm);
56593
- await fsPromises.writeFile(filePath, wav);
56593
+ await fs$1.writeFile(filePath, wav);
56594
56594
  scheduleTempCleanup(tempDir);
56595
56595
  return {
56596
56596
  path: filePath,
@@ -56599,7 +56599,7 @@ async function writeWavFile(pcm) {
56599
56599
  }
56600
56600
  function scheduleTempCleanup(tempDir, delayMs = 1800 * 1e3) {
56601
56601
  setTimeout(() => {
56602
- fsPromises.rm(tempDir, {
56602
+ fs$1.rm(tempDir, {
56603
56603
  recursive: true,
56604
56604
  force: true
56605
56605
  }).catch((err) => {
@@ -61165,7 +61165,7 @@ function normalizeAllowList$1(list) {
61165
61165
  async function detectRemoteHostFromCliPath(cliPath) {
61166
61166
  try {
61167
61167
  const expanded = cliPath.startsWith("~") ? cliPath.replace(/^~/, process.env.HOME ?? "") : cliPath;
61168
- const content = await fsPromises.readFile(expanded, "utf8");
61168
+ const content = await fs$1.readFile(expanded, "utf8");
61169
61169
  const userHostMatch = content.match(/\bssh\b[^\n]*?\s+([a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+)/);
61170
61170
  if (userHostMatch) return userHostMatch[1];
61171
61171
  return content.match(/\bssh\b[^\n]*?\s+([a-zA-Z][a-zA-Z0-9._-]*)\s+\S*\bimsg\b/)?.[1];
@@ -68134,15 +68134,15 @@ let slashCommandsRuntimePromise = null;
68134
68134
  let slashDispatchRuntimePromise = null;
68135
68135
  let slashSkillCommandsRuntimePromise = null;
68136
68136
  function loadSlashCommandsRuntime() {
68137
- slashCommandsRuntimePromise ??= import("./slash-commands.runtime-BLl455Ha.js");
68137
+ slashCommandsRuntimePromise ??= import("./slash-commands.runtime-WyW5W0r3.js");
68138
68138
  return slashCommandsRuntimePromise;
68139
68139
  }
68140
68140
  function loadSlashDispatchRuntime() {
68141
- slashDispatchRuntimePromise ??= import("./slash-dispatch.runtime-BtsEX-_Q.js");
68141
+ slashDispatchRuntimePromise ??= import("./slash-dispatch.runtime-e_hnJMYz.js");
68142
68142
  return slashDispatchRuntimePromise;
68143
68143
  }
68144
68144
  function loadSlashSkillCommandsRuntime() {
68145
- slashSkillCommandsRuntimePromise ??= import("./slash-skill-commands.runtime-NP-EeAgb.js");
68145
+ slashSkillCommandsRuntimePromise ??= import("./slash-skill-commands.runtime-DCZQC-hJ.js");
68146
68146
  return slashSkillCommandsRuntimePromise;
68147
68147
  }
68148
68148
  const slackExternalArgMenuStore = createSlackExternalArgMenuStore();
@@ -71507,7 +71507,7 @@ const buildTelegramMessageContext = async ({ primaryCtx, allMedia, replyMedia =
71507
71507
  const disableAudioPreflight = firstDefined$1(topicConfig?.disableAudioPreflight, groupConfig?.disableAudioPreflight) === true;
71508
71508
  let preflightTranscript;
71509
71509
  if (isGroup && requireMention && hasAudio && !hasUserText && mentionRegexes.length > 0 && !disableAudioPreflight) try {
71510
- const { transcribeFirstAudio } = await import("./audio-preflight-CN6L8zsG.js");
71510
+ const { transcribeFirstAudio } = await import("./audio-preflight-DFpELnh5.js");
71511
71511
  preflightTranscript = await transcribeFirstAudio({
71512
71512
  ctx: {
71513
71513
  MediaPaths: allMedia.length > 0 ? allMedia.map((m) => m.path) : void 0,
@@ -72978,7 +72978,7 @@ function resolveCommandHashPath(accountId, botIdentity) {
72978
72978
  }
72979
72979
  async function readCachedCommandHash(accountId, botIdentity) {
72980
72980
  try {
72981
- return (await fsPromises.readFile(resolveCommandHashPath(accountId, botIdentity), "utf-8")).trim();
72981
+ return (await fs$1.readFile(resolveCommandHashPath(accountId, botIdentity), "utf-8")).trim();
72982
72982
  } catch {
72983
72983
  return null;
72984
72984
  }
@@ -72986,8 +72986,8 @@ async function readCachedCommandHash(accountId, botIdentity) {
72986
72986
  async function writeCachedCommandHash(accountId, botIdentity, hash) {
72987
72987
  const filePath = resolveCommandHashPath(accountId, botIdentity);
72988
72988
  try {
72989
- await fsPromises.mkdir(path.dirname(filePath), { recursive: true });
72990
- await fsPromises.writeFile(filePath, hash, "utf-8");
72989
+ await fs$1.mkdir(path.dirname(filePath), { recursive: true });
72990
+ await fs$1.writeFile(filePath, hash, "utf-8");
72991
72991
  } catch {}
72992
72992
  }
72993
72993
  function syncTelegramMenuCommands(params) {
@@ -73831,7 +73831,7 @@ function safeParseState(raw) {
73831
73831
  async function readTelegramUpdateOffset(params) {
73832
73832
  const filePath = resolveTelegramUpdateOffsetPath(params.accountId, params.env);
73833
73833
  try {
73834
- const parsed = safeParseState(await fsPromises.readFile(filePath, "utf-8"));
73834
+ const parsed = safeParseState(await fs$1.readFile(filePath, "utf-8"));
73835
73835
  const expectedBotId = extractBotIdFromToken(params.botToken);
73836
73836
  if (expectedBotId && parsed?.botId && parsed.botId !== expectedBotId) return null;
73837
73837
  if (expectedBotId && parsed?.botId === null) return null;
@@ -73855,7 +73855,7 @@ async function writeTelegramUpdateOffset(params) {
73855
73855
  async function deleteTelegramUpdateOffset(params) {
73856
73856
  const filePath = resolveTelegramUpdateOffsetPath(params.accountId, params.env);
73857
73857
  try {
73858
- await fsPromises.unlink(filePath);
73858
+ await fs$1.unlink(filePath);
73859
73859
  } catch (err) {
73860
73860
  if (err.code === "ENOENT") return;
73861
73861
  throw err;
@@ -74329,7 +74329,7 @@ function createWhatsAppLoginTool() {
74329
74329
  force: Type.Optional(Type.Boolean())
74330
74330
  }),
74331
74331
  execute: async (_toolCallId, args) => {
74332
- const { startWebLoginWithQr, waitForWebLogin } = await import("./login-qr-9Wvtlmqz.js");
74332
+ const { startWebLoginWithQr, waitForWebLogin } = await import("./login-qr-DMWPhIpQ.js");
74333
74333
  if ((args?.action ?? "start") === "wait") {
74334
74334
  const result = await waitForWebLogin({ timeoutMs: typeof args.timeoutMs === "number" ? args.timeoutMs : void 0 });
74335
74335
  return {
@@ -74404,23 +74404,23 @@ let webOutboundPromise = null;
74404
74404
  let webLoginPromise = null;
74405
74405
  let whatsappActionsPromise = null;
74406
74406
  function loadWebOutbound() {
74407
- webOutboundPromise ??= import("./runtime-whatsapp-outbound.runtime-D1d2rg_z.js");
74407
+ webOutboundPromise ??= import("./runtime-whatsapp-outbound.runtime-QL3Riu-B.js");
74408
74408
  return webOutboundPromise;
74409
74409
  }
74410
74410
  function loadWebLogin() {
74411
- webLoginPromise ??= import("./runtime-whatsapp-login.runtime-BtBGjvx6.js");
74411
+ webLoginPromise ??= import("./runtime-whatsapp-login.runtime-BvfhsLJm.js");
74412
74412
  return webLoginPromise;
74413
74413
  }
74414
74414
  function loadWebLoginQr() {
74415
- webLoginQrPromise ??= import("./login-qr-9Wvtlmqz.js");
74415
+ webLoginQrPromise ??= import("./login-qr-DMWPhIpQ.js");
74416
74416
  return webLoginQrPromise;
74417
74417
  }
74418
74418
  function loadWebChannel() {
74419
- webChannelPromise ??= import("./web-CrLnsppN.js");
74419
+ webChannelPromise ??= import("./web-Bx-fQR1C.js");
74420
74420
  return webChannelPromise;
74421
74421
  }
74422
74422
  function loadWhatsAppActions() {
74423
- whatsappActionsPromise ??= import("./whatsapp-actions-oSO9PcWD.js");
74423
+ whatsappActionsPromise ??= import("./whatsapp-actions-DaNP01Yk.js");
74424
74424
  return whatsappActionsPromise;
74425
74425
  }
74426
74426
  function createRuntimeWhatsApp() {
@@ -75558,7 +75558,7 @@ function resolvePluginTools(params) {
75558
75558
  //#endregion
75559
75559
  //#region src/agents/apply-patch-update.ts
75560
75560
  async function defaultReadFile(filePath) {
75561
- return fsPromises.readFile(filePath, "utf8");
75561
+ return fs$1.readFile(filePath, "utf8");
75562
75562
  }
75563
75563
  async function applyUpdateHunk(filePath, chunks, options) {
75564
75564
  const originalLines = (await (options?.readFile ?? defaultReadFile)(filePath).catch((err) => {
@@ -75879,7 +75879,7 @@ function resolvePatchFileOps(options) {
75879
75879
  const workspaceOnly = options.workspaceOnly !== false;
75880
75880
  return {
75881
75881
  readFile: async (filePath) => {
75882
- if (!workspaceOnly) return await fsPromises.readFile(filePath, "utf8");
75882
+ if (!workspaceOnly) return await fs$1.readFile(filePath, "utf8");
75883
75883
  const opened = await openBoundaryFile({
75884
75884
  absolutePath: filePath,
75885
75885
  rootPath: options.cwd,
@@ -75894,7 +75894,7 @@ function resolvePatchFileOps(options) {
75894
75894
  },
75895
75895
  writeFile: async (filePath, content) => {
75896
75896
  if (!workspaceOnly) {
75897
- await fsPromises.writeFile(filePath, content, "utf8");
75897
+ await fs$1.writeFile(filePath, content, "utf8");
75898
75898
  return;
75899
75899
  }
75900
75900
  const relative = toRelativeSandboxPath(options.cwd, filePath);
@@ -75905,8 +75905,8 @@ function resolvePatchFileOps(options) {
75905
75905
  encoding: "utf8"
75906
75906
  });
75907
75907
  },
75908
- remove: (filePath) => fsPromises.rm(filePath),
75909
- mkdirp: (dir) => fsPromises.mkdir(dir, { recursive: true }).then(() => {})
75908
+ remove: (filePath) => fs$1.rm(filePath),
75909
+ mkdirp: (dir) => fs$1.mkdir(dir, { recursive: true }).then(() => {})
75910
75910
  };
75911
75911
  }
75912
75912
  async function ensureDir(filePath, ops) {
@@ -76168,7 +76168,7 @@ const LOOP_WARNING_BUCKET_SIZE = 10;
76168
76168
  const MAX_LOOP_WARNING_KEYS = 256;
76169
76169
  let beforeToolCallRuntimePromise = null;
76170
76170
  function loadBeforeToolCallRuntime() {
76171
- beforeToolCallRuntimePromise ??= import("./pi-tools.before-tool-call.runtime-B3faxm6v.js");
76171
+ beforeToolCallRuntimePromise ??= import("./pi-tools.before-tool-call.runtime-D4tLWmkM.js");
76172
76172
  return beforeToolCallRuntimePromise;
76173
76173
  }
76174
76174
  function buildAdjustedParamsKey(params) {
@@ -76406,7 +76406,7 @@ function wrapHostEditToolWithPostWriteRecovery(base, root) {
76406
76406
  if (!pathParam || !newText) throw err;
76407
76407
  try {
76408
76408
  const absolutePath = resolveHostEditPath(root, pathParam);
76409
- const content = await fsPromises.readFile(absolutePath, "utf-8");
76409
+ const content = await fs$1.readFile(absolutePath, "utf-8");
76410
76410
  const hasNew = content.includes(newText);
76411
76411
  const stillHasOld = oldText !== void 0 && oldText.length > 0 && content.includes(oldText);
76412
76412
  if (hasNew && !stillHasOld) return {
@@ -76888,14 +76888,14 @@ function createSandboxEditOperations(params) {
76888
76888
  }
76889
76889
  async function writeHostFile(absolutePath, content) {
76890
76890
  const resolved = path.resolve(absolutePath);
76891
- await fsPromises.mkdir(path.dirname(resolved), { recursive: true });
76892
- await fsPromises.writeFile(resolved, content, "utf-8");
76891
+ await fs$1.mkdir(path.dirname(resolved), { recursive: true });
76892
+ await fs$1.writeFile(resolved, content, "utf-8");
76893
76893
  }
76894
76894
  function createHostWriteOperations(root, options) {
76895
76895
  if (!(options?.workspaceOnly ?? false)) return {
76896
76896
  mkdir: async (dir) => {
76897
76897
  const resolved = path.resolve(dir);
76898
- await fsPromises.mkdir(resolved, { recursive: true });
76898
+ await fs$1.mkdir(resolved, { recursive: true });
76899
76899
  },
76900
76900
  writeFile: writeHostFile
76901
76901
  };
@@ -76908,7 +76908,7 @@ function createHostWriteOperations(root, options) {
76908
76908
  cwd: root,
76909
76909
  root
76910
76910
  });
76911
- await fsPromises.mkdir(resolved, { recursive: true });
76911
+ await fs$1.mkdir(resolved, { recursive: true });
76912
76912
  },
76913
76913
  writeFile: async (absolutePath, content) => {
76914
76914
  await writeFileWithinRoot({
@@ -76924,12 +76924,12 @@ function createHostEditOperations(root, options) {
76924
76924
  if (!(options?.workspaceOnly ?? false)) return {
76925
76925
  readFile: async (absolutePath) => {
76926
76926
  const resolved = path.resolve(absolutePath);
76927
- return await fsPromises.readFile(resolved);
76927
+ return await fs$1.readFile(resolved);
76928
76928
  },
76929
76929
  writeFile: writeHostFile,
76930
76930
  access: async (absolutePath) => {
76931
76931
  const resolved = path.resolve(absolutePath);
76932
- await fsPromises.access(resolved);
76932
+ await fs$1.access(resolved);
76933
76933
  }
76934
76934
  };
76935
76935
  return {
@@ -77767,7 +77767,7 @@ async function repairSessionFileIfNeeded(params) {
77767
77767
  };
77768
77768
  let content;
77769
77769
  try {
77770
- content = await fsPromises.readFile(sessionFile, "utf-8");
77770
+ content = await fs$1.readFile(sessionFile, "utf-8");
77771
77771
  } catch (err) {
77772
77772
  if (err?.code === "ENOENT") return {
77773
77773
  repaired: false,
@@ -77815,15 +77815,15 @@ async function repairSessionFileIfNeeded(params) {
77815
77815
  const backupPath = `${sessionFile}.bak-${process.pid}-${Date.now()}`;
77816
77816
  const tmpPath = `${sessionFile}.repair-${process.pid}-${Date.now()}.tmp`;
77817
77817
  try {
77818
- const stat = await fsPromises.stat(sessionFile).catch(() => null);
77819
- await fsPromises.writeFile(backupPath, content, "utf-8");
77820
- if (stat) await fsPromises.chmod(backupPath, stat.mode);
77821
- await fsPromises.writeFile(tmpPath, cleaned, "utf-8");
77822
- if (stat) await fsPromises.chmod(tmpPath, stat.mode);
77823
- await fsPromises.rename(tmpPath, sessionFile);
77818
+ const stat = await fs$1.stat(sessionFile).catch(() => null);
77819
+ await fs$1.writeFile(backupPath, content, "utf-8");
77820
+ if (stat) await fs$1.chmod(backupPath, stat.mode);
77821
+ await fs$1.writeFile(tmpPath, cleaned, "utf-8");
77822
+ if (stat) await fs$1.chmod(tmpPath, stat.mode);
77823
+ await fs$1.rename(tmpPath, sessionFile);
77824
77824
  } catch (err) {
77825
77825
  try {
77826
- await fsPromises.unlink(tmpPath);
77826
+ await fs$1.unlink(tmpPath);
77827
77827
  } catch (cleanupErr) {
77828
77828
  params.warn?.(`session file repair cleanup failed: ${cleanupErr instanceof Error ? cleanupErr.message : "unknown error"} (${path.basename(tmpPath)})`);
77829
77829
  }
@@ -79595,7 +79595,7 @@ async function prewarmSessionFile(sessionFile) {
79595
79595
  if (!isSessionManagerCacheEnabled()) return;
79596
79596
  if (isSessionManagerCached(sessionFile)) return;
79597
79597
  try {
79598
- const handle = await fsPromises.open(sessionFile, "r");
79598
+ const handle = await fs$1.open(sessionFile, "r");
79599
79599
  try {
79600
79600
  const buffer = Buffer$1.alloc(4096);
79601
79601
  await handle.read(buffer, 0, buffer.length, 0);
@@ -79962,7 +79962,7 @@ async function compactEmbeddedPiSessionDirect(params) {
79962
79962
  } catch (err) {
79963
79963
  return fail(describeUnknownError(err));
79964
79964
  }
79965
- await fsPromises.mkdir(resolvedWorkspace, { recursive: true });
79965
+ await fs$1.mkdir(resolvedWorkspace, { recursive: true });
79966
79966
  const sandboxSessionKey = params.sessionKey?.trim() || params.sessionId;
79967
79967
  const sandbox = await resolveSandboxContext({
79968
79968
  config: params.config,
@@ -79970,7 +79970,7 @@ async function compactEmbeddedPiSessionDirect(params) {
79970
79970
  workspaceDir: resolvedWorkspace
79971
79971
  });
79972
79972
  const effectiveWorkspace = sandbox?.enabled ? sandbox.workspaceAccess === "rw" ? resolvedWorkspace : sandbox.workspaceDir : resolvedWorkspace;
79973
- await fsPromises.mkdir(effectiveWorkspace, { recursive: true });
79973
+ await fs$1.mkdir(effectiveWorkspace, { recursive: true });
79974
79974
  await ensureSessionHeader({
79975
79975
  sessionFile: params.sessionFile,
79976
79976
  sessionId: params.sessionId,
@@ -80855,12 +80855,12 @@ function getQueuedFileWriter(writers, filePath) {
80855
80855
  const existing = writers.get(filePath);
80856
80856
  if (existing) return existing;
80857
80857
  const dir = path.dirname(filePath);
80858
- const ready = fsPromises.mkdir(dir, { recursive: true }).catch(() => void 0);
80858
+ const ready = fs$1.mkdir(dir, { recursive: true }).catch(() => void 0);
80859
80859
  let queue = Promise.resolve();
80860
80860
  const writer = {
80861
80861
  filePath,
80862
80862
  write: (line) => {
80863
- queue = queue.then(() => ready).then(() => fsPromises.appendFile(filePath, line, "utf8")).catch(() => void 0);
80863
+ queue = queue.then(() => ready).then(() => fs$1.appendFile(filePath, line, "utf8")).catch(() => void 0);
80864
80864
  }
80865
80865
  };
80866
80866
  writers.set(filePath, writer);
@@ -83778,7 +83778,7 @@ async function prepareSessionManagerForRun(params) {
83778
83778
  return;
83779
83779
  }
83780
83780
  if (params.hadSessionFile && header && !hasAssistant) {
83781
- await fsPromises.writeFile(params.sessionFile, "", "utf-8");
83781
+ await fs$1.writeFile(params.sessionFile, "", "utf-8");
83782
83782
  sm.fileEntries = [header];
83783
83783
  sm.byId?.clear?.();
83784
83784
  sm.labelsById?.clear?.();
@@ -84496,7 +84496,7 @@ async function runEmbeddedAttempt(params) {
84496
84496
  const prevCwd = process.cwd();
84497
84497
  const runAbortController = new AbortController();
84498
84498
  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"}`);
84499
- await fsPromises.mkdir(resolvedWorkspace, { recursive: true });
84499
+ await fs$1.mkdir(resolvedWorkspace, { recursive: true });
84500
84500
  const sandboxSessionKey = params.sessionKey?.trim() || params.sessionId;
84501
84501
  const sandbox = await resolveSandboxContext({
84502
84502
  config: params.config,
@@ -84504,7 +84504,7 @@ async function runEmbeddedAttempt(params) {
84504
84504
  workspaceDir: resolvedWorkspace
84505
84505
  });
84506
84506
  const effectiveWorkspace = sandbox?.enabled ? sandbox.workspaceAccess === "rw" ? resolvedWorkspace : sandbox.workspaceDir : resolvedWorkspace;
84507
- await fsPromises.mkdir(effectiveWorkspace, { recursive: true });
84507
+ await fs$1.mkdir(effectiveWorkspace, { recursive: true });
84508
84508
  let restoreSkillEnv;
84509
84509
  process.chdir(effectiveWorkspace);
84510
84510
  try {
@@ -84774,7 +84774,7 @@ async function runEmbeddedAttempt(params) {
84774
84774
  sessionFile: params.sessionFile,
84775
84775
  warn: (message) => log$3.warn(message)
84776
84776
  });
84777
- const hadSessionFile = await fsPromises.stat(params.sessionFile).then(() => true).catch(() => false);
84777
+ const hadSessionFile = await fs$1.stat(params.sessionFile).then(() => true).catch(() => false);
84778
84778
  const transcriptPolicy = resolveTranscriptPolicy({
84779
84779
  modelApi: params.model?.api,
84780
84780
  provider: params.provider,
@@ -85903,7 +85903,7 @@ async function runEmbeddedPiAgent(params) {
85903
85903
  const copilotAuthRetry = authRetryPending;
85904
85904
  authRetryPending = false;
85905
85905
  attemptedThinking.add(thinkLevel);
85906
- await fsPromises.mkdir(resolvedWorkspace, { recursive: true });
85906
+ await fs$1.mkdir(resolvedWorkspace, { recursive: true });
85907
85907
  const prompt = provider === "anthropic" ? scrubAnthropicRefusalMagic(params.prompt) : params.prompt;
85908
85908
  const attempt = await runEmbeddedAttempt({
85909
85909
  sessionId: params.sessionId,
@@ -86709,7 +86709,7 @@ const DEFAULT_SUBAGENT_ANNOUNCE_TIMEOUT_MS = 6e4;
86709
86709
  const MAX_TIMER_SAFE_TIMEOUT_MS = 2147e6;
86710
86710
  let subagentRegistryRuntimePromise = null;
86711
86711
  function loadSubagentRegistryRuntime() {
86712
- subagentRegistryRuntimePromise ??= import("./subagent-registry-runtime-ChT29jt0.js");
86712
+ subagentRegistryRuntimePromise ??= import("./subagent-registry-runtime-DZ2NcDAS.js");
86713
86713
  return subagentRegistryRuntimePromise;
86714
86714
  }
86715
86715
  const DIRECT_ANNOUNCE_TRANSIENT_RETRY_DELAYS_MS = FAST_TEST_MODE ? [