@bitseek/claw 1.2.0 → 1.2.1

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 (251) hide show
  1. package/dist/{accounts-B3zSNWIv.js → accounts-2NNZ6Hbp.js} +1 -1
  2. package/dist/{accounts-BQHz8_1_.js → accounts-Cv5CUnT4.js} +7 -7
  3. package/dist/{accounts-DTfEeXyO.js → accounts-NHpMJ0aq.js} +1 -1
  4. package/dist/{acp-cli-DYu2k7v9.js → acp-cli-B0u6no4K.js} +8 -8
  5. package/dist/{agent-scope-CJelRKYY.js → agent-scope-CY2-lUIY.js} +1 -1
  6. package/dist/{agents-B1UgGs6R.js → agents-Cweyfj22.js} +15 -15
  7. package/dist/{agents.config-CmUkQxtt.js → agents.config-DA3Y8w1t.js} +2 -2
  8. package/dist/{api-key-rotation-xfk-b2Sv.js → api-key-rotation-Cf7QM5M_.js} +1 -1
  9. package/dist/{audio-preflight-CHD1xVrt.js → audio-preflight-DdrORTn9.js} +4 -4
  10. package/dist/{audio-preflight-59K4nxSA.js → audio-preflight-SRgix4XS.js} +36 -36
  11. package/dist/{audio-transcription-runner-DwWOJBSn.js → audio-transcription-runner-CGsd7139.js} +1 -1
  12. package/dist/{audio-transcription-runner-DGyS5H3K.js → audio-transcription-runner-DkibzFT2.js} +22 -22
  13. package/dist/{audit-DJfP7KjJ.js → audit-TSVXvoTa.js} +29 -29
  14. package/dist/{auth-B3HDYw4G.js → auth-anvTU0Sb.js} +1 -1
  15. package/dist/{auth-choice-Ko0_UPIV.js → auth-choice-Bhzlukg0.js} +12 -12
  16. package/dist/{auth-choice-f6C6bI9v.js → auth-choice-CR6bBvDU.js} +14 -14
  17. package/dist/{auth-choice.apply-helpers-DR-eUj_5.js → auth-choice.apply-helpers-Du585kvU.js} +1 -1
  18. package/dist/{auth-profiles-D_x1_5v_.js → auth-profiles-CyG9VwU_.js} +16 -16
  19. package/dist/{auth-token-BqjY9MGq.js → auth-token-BIEjzQiE.js} +1 -1
  20. package/dist/{banner-DB1rGYKC.js → banner-D-ha13Xs.js} +2 -2
  21. package/dist/{bindings-Hx6KNJeg.js → bindings-DGvp9FdD.js} +1 -1
  22. package/dist/{bonjour-discovery-t-SAPCsb.js → bonjour-discovery-B68dCYTY.js} +1 -1
  23. package/dist/{browser-cli-CTlLlDFe.js → browser-cli-DREC4EVl.js} +12 -12
  24. package/dist/build-info.json +3 -3
  25. package/dist/{call-CzoM7hPS.js → call-CmAGfSJE.js} +10 -10
  26. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  27. package/dist/{channel-account-context-CiCkIxCu.js → channel-account-context-DNFdIaSr.js} +7 -6
  28. package/dist/{channel-account-context-D0zX-Gup.js → channel-account-context-etfgJrr_.js} +2 -1
  29. package/dist/{channel-options-DLPoMi6B.js → channel-options-6JzQN9nt.js} +3 -3
  30. package/dist/{channel-selection-D8KYuWir.js → channel-selection-DGtYwfd7.js} +1 -1
  31. package/dist/{channel-web-BMZ_oZSK.js → channel-web-oQImOucb.js} +18 -18
  32. package/dist/{channels-cli-sNDA9BU2.js → channels-cli-CzLX8jUv.js} +95 -95
  33. package/dist/{channels-status-issues-5n9kobSz.js → channels-status-issues-BMNB2aMG.js} +1 -1
  34. package/dist/{chrome-DuDCGdf-.js → chrome-DeZyLFsG.js} +4 -4
  35. package/dist/{chrome-CuMCXCQN.js → chrome-xatreDUO.js} +8 -8
  36. package/dist/{clawbot-cli-SIY_fH-I.js → clawbot-cli-H1Uj0ifV.js} +5 -5
  37. package/dist/cli/daemon-cli.js +1 -1
  38. package/dist/{cli-Cjv-J_yg.js → cli-C2xvYknT.js} +76 -76
  39. package/dist/{client-BvL3EdiZ.js → client-vUKV2o6h.js} +2 -2
  40. package/dist/{command-registry-KfIoXPZE.js → command-registry-QcrBU_9X.js} +13 -13
  41. package/dist/{commands-C67IbXs7.js → commands-d8L0zY8O.js} +1 -1
  42. package/dist/{commands-registry-D0_D5hFV.js → commands-registry-C78O6aNi.js} +3 -3
  43. package/dist/{completion-cli-iCWrVHvc.js → completion-cli-BkWPjJyP.js} +13 -13
  44. package/dist/{completion-cli-SYxZGwWD.js → completion-cli-VWIJWtLM.js} +1 -1
  45. package/dist/{config-cli-5lP-lwj0.js → config-cli-B4WnAVfw.js} +7 -7
  46. package/dist/{config-guard-t_xLf16g.js → config-guard-RZw5NkPK.js} +3 -3
  47. package/dist/{config-validation-DkA3FBg8.js → config-validation-tb90Bzho.js} +3 -3
  48. package/dist/{configure-hI0hAw1W.js → configure-DuwIk56q.js} +17 -17
  49. package/dist/control-ui/assets/{index-DPyUb7lL.css → index-B5WC_0Be.css} +1 -1
  50. package/dist/control-ui/assets/{index-BlqD_sH7.js → index-DmJK8e2M.js} +2 -2
  51. package/dist/control-ui/assets/index-DmJK8e2M.js.map +1 -0
  52. package/dist/control-ui/index.html +2 -2
  53. package/dist/{control-ui-assets-M84PR-kz.js → control-ui-assets-Czpjuiah.js} +1 -1
  54. package/dist/{cron-cli-Bg88aQ8Y.js → cron-cli-D5MnhB5f.js} +12 -12
  55. package/dist/{daemon-cli-CFnqQB6M.js → daemon-cli-oCVkh3bg.js} +15 -15
  56. package/dist/{daemon-install-helpers-C1iBqd73.js → daemon-install-helpers-D5tste0V.js} +11 -11
  57. package/dist/{daemon-install-CdoMSH6S.js → daemon-install-vQ6KespE.js} +4 -4
  58. package/dist/{dashboard-CYa-ISxZ.js → dashboard-BstU6qkZ.js} +2 -2
  59. package/dist/{deliver-DTgCZWjU.js → deliver-H0xCFj4j.js} +7 -7
  60. package/dist/{deliver-Dyh8ZsLI.js → deliver-Z7543EnP.js} +1 -1
  61. package/dist/{devices-cli-9aOy3d7K.js → devices-cli-D6b6S-Iy.js} +8 -8
  62. package/dist/{diagnostic-Bvatw1Xn.js → diagnostic-DjxUqpmL.js} +1 -1
  63. package/dist/{diagnostics-DooDWHeF.js → diagnostics-vLzdmcgg.js} +5 -5
  64. package/dist/{directory-cli-Rk2cBm0A.js → directory-cli-D3o7BGMd.js} +8 -8
  65. package/dist/{dns-cli-BXhJBWtC.js → dns-cli-B5kqVfFd.js} +5 -5
  66. package/dist/{dock-DT8sACcR.js → dock-CoclJnwp.js} +4 -4
  67. package/dist/{docs-cli-D606Eb-M.js → docs-cli-CyjlhZAj.js} +4 -4
  68. package/dist/{doctor-completion-C7FCLVKC.js → doctor-completion-DGNL86eP.js} +1 -1
  69. package/dist/{doctor-completion-DNAwhmlY.js → doctor-completion-SBDS3edN.js} +2 -2
  70. package/dist/{doctor-config-flow-ePZ7ejQj.js → doctor-config-flow-DclZbGUP.js} +15 -15
  71. package/dist/{enable-CnvIWic7.js → enable-CKAw_GCd.js} +1 -1
  72. package/dist/entry.js +2 -2
  73. package/dist/{exec-approvals-allowlist-B4DS6FIn.js → exec-approvals-allowlist-CFjPSbxI.js} +1 -1
  74. package/dist/{exec-approvals-cli-Czp8csm7.js → exec-approvals-cli-U46MdeMi.js} +16 -16
  75. package/dist/{exec-safe-bin-runtime-policy-BP6ImlkB.js → exec-safe-bin-runtime-policy-CpMj95vJ.js} +2 -2
  76. package/dist/extensionAPI.js +6 -6
  77. package/dist/{fetch-DC-NMnAU.js → fetch-DOjg912W.js} +3 -3
  78. package/dist/{fetch-guard-B62rgaSw.js → fetch-guard-Csbz9pui.js} +1 -1
  79. package/dist/{fs-safe-CJDtl_QU.js → fs-safe-BqJ9egpm.js} +24 -24
  80. package/dist/{gateway-cli-BKhQZ6rL.js → gateway-cli-ADJ8WFzB.js} +267 -93
  81. package/dist/{gateway-cli-Cb1IDsaH.js → gateway-cli-D5wMqxbT.js} +423 -249
  82. package/dist/{gateway-rpc-BgV_ZJ92.js → gateway-rpc-DFqEAyI_.js} +1 -1
  83. package/dist/{health-DugDjq1f.js → health-Dzwp2cfK.js} +14 -14
  84. package/dist/{hooks-cli-VjmNvsLG.js → hooks-cli-DKAhHxZp.js} +84 -84
  85. package/dist/{hooks-status-DE20AAEu.js → hooks-status-6tcOdcYp.js} +1 -1
  86. package/dist/{image-BfqphdQM.js → image-BjuH1GKB.js} +5 -5
  87. package/dist/{image-DihIv8Eo.js → image-DQV2jl6F.js} +1 -1
  88. package/dist/{image-ops-BGTBZMuE.js → image-ops-B2L37gT8.js} +10 -10
  89. package/dist/index.js +1 -1
  90. package/dist/{inspect-DeP74OJO.js → inspect-DJUXn0vX.js} +4 -4
  91. package/dist/{install-safe-path-CWo3RPkH.js → install-safe-path-DVQh7rEs.js} +25 -25
  92. package/dist/{installs-BYqcA-ke.js → installs-jXfyPi74.js} +9 -9
  93. package/dist/{ipv4-BB1Ro6so.js → ipv4-DQS0lTwQ.js} +1 -1
  94. package/dist/{ir-DziC-P4Z.js → ir-CEwBpxhC.js} +6 -6
  95. package/dist/{issue-format-CqVkT3gT.js → issue-format-NBMJ5xAP.js} +1 -1
  96. package/dist/{json-files-CuJjdF_0.js → json-files-rR19q30D.js} +8 -8
  97. package/dist/{lifecycle-core-DAWYYqJl.js → lifecycle-core-oTVOKNSW.js} +5 -5
  98. package/dist/{login-CYfV0FRr.js → login-I5RlwiJn.js} +3 -3
  99. package/dist/{login-qr-DUSyrCPW.js → login-qr-CRjZn3ix.js} +6 -6
  100. package/dist/{logs-cli--IqfO6Fs.js → logs-cli-D2-73CiV.js} +9 -9
  101. package/dist/{manager-7hZXEYTj.js → manager-DWpiNvlg.js} +14 -14
  102. package/dist/{manifest-registry-Kbw8YPsZ.js → manifest-registry-CBF8Vfz8.js} +1 -1
  103. package/dist/{markdown-tables-BYHgyUjA.js → markdown-tables-DQlQMRGZ.js} +1 -1
  104. package/dist/{memory-cli-CuT-iG2F.js → memory-cli-BUrf60e_.js} +12 -12
  105. package/dist/{model-DmBmzJI6.js → model-DMZUvZJo.js} +2 -2
  106. package/dist/{model-catalog-D1X8r3WJ.js → model-catalog-DFi9HgWu.js} +3 -3
  107. package/dist/{model-picker-CrYHvOZH.js → model-picker-DFyoaAce.js} +4 -4
  108. package/dist/{models-BwUaRaeh.js → models-B-VHfTz-.js} +18 -18
  109. package/dist/{models-cli-DPvtAoJ-.js → models-cli-DQBbzn_p.js} +81 -81
  110. package/dist/{models-config-CmrBGsQs.js → models-config-AePb9RAo.js} +6 -6
  111. package/dist/{net-BXeYv7Iu.js → net-C75G4fup.js} +2 -2
  112. package/dist/{node-cli-Co4McDQy.js → node-cli-UnJ5obvj.js} +33 -33
  113. package/dist/{node-command-policy-D7hSN9B8.js → node-command-policy-DMwxqhrG.js} +1 -1
  114. package/dist/{node-service-CzRylWgI.js → node-service-83OYUi14.js} +1 -1
  115. package/dist/{nodes-cli-wABD1dZs.js → nodes-cli-U66EhW5E.js} +16 -16
  116. package/dist/{nodes-screen-DcxCMjOs.js → nodes-screen-BHwVUMr8.js} +7 -7
  117. package/dist/{npm-pack-install-BGN-e1vW.js → npm-pack-install-1gsZywqI.js} +18 -18
  118. package/dist/{npm-resolution-Dp9ywE7U.js → npm-resolution-ZwcMp-e1.js} +5 -5
  119. package/dist/{onboard-tlfs9gUN.js → onboard-1RaJpuJ4.js} +1 -1
  120. package/dist/{onboard-DfDL2v89.js → onboard-Ce_QcPvd.js} +6 -6
  121. package/dist/{onboard-channels-CjyJiI4i.js → onboard-channels-BLL6tVVk.js} +20 -20
  122. package/dist/{onboard-custom-WfZ3J4O7.js → onboard-custom-CltkNK3c.js} +3 -3
  123. package/dist/{onboard-custom.shared-D52ggtQF.js → onboard-custom.shared-CXzE62ZH.js} +2 -2
  124. package/dist/{onboard-helpers-CczYNQDJ.js → onboard-helpers-D8lLbK3A.js} +11 -11
  125. package/dist/{onboard-hooks-o0B0p8tR.js → onboard-hooks-DBif0Jq8.js} +4 -4
  126. package/dist/{onboard-remote-DTz_Z9Xl.js → onboard-remote-DpEjARZa.js} +3 -3
  127. package/dist/{onboard-skills-D70PenD-.js → onboard-skills-CL0tHf_N.js} +4 -4
  128. package/dist/{onboarding-H5cLNUFG.js → onboarding-Rub9MXWB.js} +1 -1
  129. package/dist/{onboarding-DNV-TKzA.js → onboarding-WDRpEgra.js} +13 -13
  130. package/dist/{onboarding.finalize-C6UdLnH3.js → onboarding.finalize-CWYrjSVx.js} +89 -89
  131. package/dist/{onboarding.finalize-DfZFzt37.js → onboarding.finalize-MTyP_Dr4.js} +3 -3
  132. package/dist/{onboarding.gateway-config-CnQR4xLI.js → onboarding.gateway-config-Ce8ndMkF.js} +18 -18
  133. package/dist/{openai-model-default-DqKKq57j.js → openai-model-default-XM-ZB1MD.js} +2 -2
  134. package/dist/{outbound-Dv-MM4iv.js → outbound-CHyBoNxD.js} +4 -4
  135. package/dist/{outbound-attachment-CXINK8df.js → outbound-attachment-DM-h2uQ1.js} +2 -2
  136. package/dist/{pairing-cli-BUHAN0R5.js → pairing-cli-DUMMuvWC.js} +9 -9
  137. package/dist/{pairing-labels-CFSUHOmk.js → pairing-labels-x4akYNb7.js} +1 -1
  138. package/dist/{pairing-store-BfzlN-z9.js → pairing-store-rFuiIoGM.js} +3 -3
  139. package/dist/{path-alias-guards-Cg9ZP1NN.js → path-alias-guards-laKq24fx.js} +3 -3
  140. package/dist/{path-safety-tZSbJG67.js → path-safety-BxYB92SS.js} +1 -1
  141. package/dist/{paths-BjoSX1aC.js → paths-B_L2Zoe-.js} +9 -9
  142. package/dist/{pi-embedded-xCcmCTnf.js → pi-embedded-CZAvX74y.js} +22 -22
  143. package/dist/{pi-embedded-helpers-C3sJPGXn.js → pi-embedded-helpers-BB2whkUz.js} +6 -6
  144. package/dist/{pi-embedded-helpers-Bmj18lhA.js → pi-embedded-helpers-DK1ft2pf.js} +3 -3
  145. package/dist/{pi-model-discovery-BZ2RCD_u.js → pi-model-discovery-RrejIg26.js} +1 -1
  146. package/dist/{pi-tools.policy-BH0D2kX0.js → pi-tools.policy-DRW8ya1z.js} +5 -5
  147. package/dist/{plugin-auto-enable-DER6qA6X.js → plugin-auto-enable-S_lBQAKI.js} +3 -3
  148. package/dist/{plugin-registry-CmucB2C0.js → plugin-registry-C2g1aLrK.js} +3 -3
  149. package/dist/{plugins-vsjS_m58.js → plugins-C4cYqW07.js} +2 -2
  150. package/dist/{plugins-cli-DJFtia9f.js → plugins-cli-Cdug93Mi.js} +86 -86
  151. package/dist/{ports-sCOQUaAP.js → ports-DRaxdQmm.js} +2 -2
  152. package/dist/{ports-zWusnrvP.js → ports-tfS1haOJ.js} +1 -1
  153. package/dist/{program-BkK1YIQS.js → program-L4hhvW67.js} +84 -84
  154. package/dist/{program-context-CFNQpYpG.js → program-context-BEPxCThZ.js} +7 -7
  155. package/dist/{prompt-select-styled-DlC5a1xd.js → prompt-select-styled-CYmsrkR3.js} +39 -39
  156. package/dist/{prompt-select-styled-DGdjezC8.js → prompt-select-styled-DTqU-r5T.js} +3 -3
  157. package/dist/{provider-auth-helpers-CJ2_W1oy.js → provider-auth-helpers-CNkIHUuF.js} +5 -5
  158. package/dist/{proxy-env-BQIJPH4j.js → proxy-env-BoopXu2J.js} +1 -1
  159. package/dist/{push-apns-BKjyYFyk.js → push-apns-DRX0c6-y.js} +5 -5
  160. package/dist/{pw-ai-pqeoAqm_.js → pw-ai-CMUrm_kS.js} +1 -1
  161. package/dist/{pw-ai-ITbRRqVN.js → pw-ai-DyGZ1pXu.js} +15 -15
  162. package/dist/{qmd-manager-BNohLpRA.js → qmd-manager-Bo22w5wm.js} +20 -20
  163. package/dist/{qr-cli-D-LqDNlm.js → qr-cli-EHSe4TmR.js} +1 -1
  164. package/dist/{query-expansion-BrM3X6-L.js → query-expansion-Ba9OpCm9.js} +12 -12
  165. package/dist/{redact-snapshot-D3QFNQl8.js → redact-snapshot-kY3aFpcF.js} +1 -1
  166. package/dist/{register.agent-C3K3DXul.js → register.agent-CaCz2lnX.js} +97 -97
  167. package/dist/register.configure-BHL2CNOY.js +174 -0
  168. package/dist/{register.init-ClMzXUKm.js → register.init-D4hlhvsq.js} +15 -15
  169. package/dist/{register.maintenance-Bb8amfJh.js → register.maintenance-DsxNo00b.js} +6 -6
  170. package/dist/{register.maintenance-zsZrRIaB.js → register.maintenance-MJR5bDWC.js} +99 -99
  171. package/dist/{register.message-CfRd6EM2.js → register.message-ChJGE4xV.js} +77 -77
  172. package/dist/{register.onboard-qFRFDsPK.js → register.onboard-4aB9FmjK.js} +2 -2
  173. package/dist/{register.onboard-BFM29BaY.js → register.onboard-CRCrMN8O.js} +18 -18
  174. package/dist/{register.setup-D0E9z_QW.js → register.setup-CCPeU8WO.js} +2 -2
  175. package/dist/{register.setup-Caqvvqmm.js → register.setup-DqRNRiXi.js} +21 -21
  176. package/dist/{register.start-CrwDVujg.js → register.start-D3IRihbV.js} +17 -17
  177. package/dist/{register.status-health-sessions-CWb4-Kgs.js → register.status-health-sessions-EhCB2a7v.js} +3 -3
  178. package/dist/{register.status-health-sessions-BBEF4th9.js → register.status-health-sessions-zD3z2YuT.js} +91 -91
  179. package/dist/{register.subclis-rB1Roe3w.js → register.subclis-D12iC4nF.js} +31 -31
  180. package/dist/{replies-Ckd7Lwt0.js → replies-BDnb0prE.js} +1 -1
  181. package/dist/{reply-prefix-DpXMFuAa.js → reply-prefix-H_GSyyzN.js} +1 -1
  182. package/dist/{resolve-route-Cnto8LMw.js → resolve-route-ByAwAiq5.js} +2 -2
  183. package/dist/{rpc-9G93KhBv.js → rpc-Bzb0JMJ_.js} +1 -1
  184. package/dist/{run-main-C02l3ZhV.js → run-main-C_fGUv-Y.js} +95 -95
  185. package/dist/{runtime-BI0xjrHi.js → runtime-Cx-7xFzl.js} +2 -2
  186. package/dist/{sandbox-CLIUxOtc.js → sandbox-BLqUWbp2.js} +18 -18
  187. package/dist/{sandbox-cli-MjHZjW2w.js → sandbox-cli-CEriRvUh.js} +26 -26
  188. package/dist/{secrets-cli-BFU9jh2A.js → secrets-cli-DG-NG8PH.js} +10 -10
  189. package/dist/{security-cli-DIfmEZrw.js → security-cli-C_Bc1U-7.js} +43 -43
  190. package/dist/{send-e1X1pfda.js → send-BCLu4NEE.js} +6 -6
  191. package/dist/{send-BpXRh0BM.js → send-BTswySBz.js} +11 -11
  192. package/dist/{send-CQJKPGw4.js → send-CZ2O-5pP.js} +6 -6
  193. package/dist/{send-sj8Hu26l.js → send-D0X-8aPh.js} +8 -8
  194. package/dist/{send-Cpaj_bKB.js → send-ZyB64ntO.js} +5 -5
  195. package/dist/{server-DbB5aXZq.js → server-CzDsmd9g.js} +19 -19
  196. package/dist/{server-context-DnPsW_Mg.js → server-context-DRq_OT33.js} +12 -12
  197. package/dist/{server-lifecycle-B2y6Fg7R.js → server-lifecycle-CcYnyYPQ.js} +2 -2
  198. package/dist/{server-middleware-CKSnhiM2.js → server-middleware-DHxnFjIL.js} +1 -1
  199. package/dist/{server-node-events-BwnXBzS2.js → server-node-events-B5xSV7Kq.js} +77 -77
  200. package/dist/{service-Wk285d-R.js → service-CZORJG4z.js} +15 -15
  201. package/dist/{session-meta-DF1WT4cr.js → session-meta-Cew1QAYN.js} +1 -1
  202. package/dist/{session-DNbfXbBi.js → session-nilNSQEL.js} +1 -1
  203. package/dist/{session-utils-BncMg1bn.js → session-utils-DxaIoRMp.js} +6 -6
  204. package/dist/{sessions-B2mnwD21.js → sessions-BXz4gdq6.js} +15 -15
  205. package/dist/{sessions-C2Xfck_9.js → sessions-DhD3eJDE.js} +4 -4
  206. package/dist/{shared-CJN2BLdi.js → shared-BZscafy-.js} +1 -1
  207. package/dist/{shared-BAdi_Ot7.js → shared-DvHQekWm.js} +3 -3
  208. package/dist/{skill-commands-CYucDd3C.js → skill-commands-Cpr3Poo2.js} +5 -5
  209. package/dist/{skill-scanner-BXOiOvI1.js → skill-scanner-0-AybMIe.js} +6 -6
  210. package/dist/{skills-BCgFAMj3.js → skills-D4S-gyVf.js} +3 -3
  211. package/dist/{skills-cli-CwbRKLum.js → skills-cli-B0jFsoo4.js} +5 -5
  212. package/dist/{skills-install-BQyeS7wB.js → skills-install-C6-Zzqoi.js} +6 -6
  213. package/dist/{skills-status-DG-bH5mO.js → skills-status-DQzBD0Y7.js} +1 -1
  214. package/dist/{status-B4v5QI5X.js → status-BfWqYNJf.js} +2 -2
  215. package/dist/{status-XGYDzhkW.js → status-Dw7ag8qn.js} +26 -26
  216. package/dist/{status.update-n2QPQr8w.js → status.update-B6whKviL.js} +2 -2
  217. package/dist/{status.update-DIamQqHr.js → status.update-C8qgou8r.js} +1 -1
  218. package/dist/{store-U8cs0QvT.js → store-TdzSHRPN.js} +5 -5
  219. package/dist/{subagent-registry-WD5F6cBf.js → subagent-registry-D6OfBLNb.js} +156 -156
  220. package/dist/{system-cli-C_5YHHhF.js → system-cli-BoamUpxz.js} +9 -9
  221. package/dist/{system-run-command-GKGzGztn.js → system-run-command-XHAlbx5q.js} +1 -1
  222. package/dist/{systemd-Dbwmb4TX.js → systemd-C4JtDaKk.js} +9 -9
  223. package/dist/{systemd-hints-VM2JkQxw.js → systemd-hints-ZHrBbXDd.js} +6 -6
  224. package/dist/{systemd-linger-DoeP9Z3f.js → systemd-linger-CD4viBmg.js} +1 -1
  225. package/dist/{tables-DVXe5x1J.js → tables-BOsRa7CS.js} +1 -1
  226. package/dist/{tailnet-C1XBcWue.js → tailnet-CfP3A6g2.js} +1 -1
  227. package/dist/{target-errors-C5LA-JI-.js → target-errors-DPJ9HFp9.js} +4 -4
  228. package/dist/{tool-images-CnpAosfi.js → tool-images-CmgHk8xk.js} +1 -1
  229. package/dist/{tui-kOoc7WBf.js → tui-GWJMI53u.js} +6 -6
  230. package/dist/{tui-cli-DeTfdnEG.js → tui-cli-CMrxH2Q_.js} +33 -33
  231. package/dist/{update-DFr19tQ1.js → update-CDWJ50iD.js} +3 -3
  232. package/dist/{update-cli-CUSnVFt4.js → update-cli-Dw_JHcRy.js} +22 -14
  233. package/dist/{update-cli-BlswPThb.js → update-cli-r3eyhSgp.js} +122 -114
  234. package/dist/{update-runner-CX6jOI_r.js → update-runner-CHxTFtW8.js} +34 -22
  235. package/dist/{update-runner-BA9B0S60.js → update-runner-CJua_LZ3.js} +19 -7
  236. package/dist/web-B4yuhy9a.js +125 -0
  237. package/dist/{web-CvYmNThc.js → web-De45Xhd1.js} +6 -6
  238. package/dist/{webhooks-cli-DLgCJq4n.js → webhooks-cli-B09BdLSk.js} +6 -6
  239. package/dist/{whatsapp-actions-B81EJMQI.js → whatsapp-actions-DUoWY7mE.js} +19 -19
  240. package/dist/{with-timeout-l0X_rwcb.js → with-timeout-B9qgOUui.js} +3 -3
  241. package/dist/{workspace-DWBFoy1G.js → workspace-A5CNJccm.js} +1 -1
  242. package/dist/{workspace-BHfqkuYN.js → workspace-DzeL98px.js} +23 -23
  243. package/dist/{workspace-dirs-BOgNOBjy.js → workspace-dirs-Bevk6X_8.js} +1 -1
  244. package/dist/{wsl-BDRu1-pk.js → wsl-DksyFTBT.js} +2 -2
  245. package/docs/install/index.md +12 -12
  246. package/docs/install/updating.md +32 -33
  247. package/docs/plans/2026-03-11-bitseek-update-package-design.md +25 -0
  248. package/package.json +1 -1
  249. package/dist/control-ui/assets/index-BlqD_sH7.js.map +0 -1
  250. package/dist/register.configure-aJItV_ZP.js +0 -174
  251. package/dist/web-DNL22pwf.js +0 -125
@@ -4,122 +4,122 @@ import { g as resolveStateDir, r as STATE_DIR, u as resolveGatewayPort, y as res
4
4
  import { d as defaultRuntime, t as createSubsystemLogger, u as createNonExitingRuntime } from "./subsystem-DjdBljTA.js";
5
5
  import { t as parseBooleanValue$1 } from "./boolean-DtWR5bt3.js";
6
6
  import { r as isTruthyEnvValue } from "./entry.js";
7
- import { $n as resolveAuthStorePathForDisplay, $r as buildAssistantMessageWithZeroUsage, Ai as DEFAULT_MODEL, Bn as listProfilesForProvider, Bt as unsetConfigValueAtPath, Cr as resolveReasoningDefault, Ct as isAvatarDataUrl, Dn as resolveSlackNativeStreaming, Dt as isSupportedLocalAvatarExtension, En as resolveDiscordPreviewStreamMode, Er as resolveThinkingDefault, Et as isPathWithinRoot, Ft as setConfigOverride, G as isInboundPathAllowed, H as normalizeTelegramCommandName, I as resolveConfigSnapshotHash, It as unsetConfigOverride, J as resolveIMessageRemoteAttachmentRoots, Jt as buildEnforcedShellCommand, Kn as ensureAuthProfileStore, Ln as resolveOwnerDisplaySetting, Lt as getConfigValueAtPath, M as loadConfig, Mi as resolveAuthProfileDisplayLabel, Nn as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH, Nt as getConfigOverrides, Oi as splitTrailingAuthProfile, On as resolveSlackStreamingMode, P as readConfigFileSnapshot, Pn as resolveAgentMaxConcurrent, Pt as resetConfigOverrides, Qr as buildAssistantMessage, R as writeConfigFile, Rt as parseConfigPath, Si as normalizeSecretInput, Sr as resolveModelRefFromString, St as AVATAR_MAX_BYTES, Tn as mapStreamingModeToSlackLegacyDraftStreamMode, Tr as resolveSubagentSpawnModelSelection, U as resolveTelegramCustomCommands, V as TELEGRAM_COMMAND_NAME_PATTERN, Vn as markAuthProfileGood, X as parseNonNegativeByteSize, Xr as OLLAMA_NATIVE_BASE_URL, Y as normalizeScpRemoteHost, Zr as createOllamaStreamFn, a as markAuthProfileFailure, ai as resolveApiKeyForProvider, ar as buildAllowedModelSet, at as parseDurationMs, br as resolveDefaultModelForAgent, c as resolveProfilesUnavailableReason, ci as resolveModelAuthMode, cr as findNormalizedProviderValue, di as resolveShellEnvFallbackTimeoutMs, dr as isCliProvider, ei as buildStreamErrorAssistantMessage, er as resolveOpenClawAgentDir, fr as modelKey, hr as normalizeProviderId, i as isProfileInCooldown, ii as requireApiKey, ji as DEFAULT_PROVIDER, jt as validateJsonSchemaValue, ki as DEFAULT_CONTEXT_TOKENS, l as resolveApiKeyForProfile, n as resolveAuthProfileOrder, ni as getApiKeyForModel, o as markAuthProfileUsed, or as buildConfiguredAllowlistKeys, pr as normalizeModelRef$2, q as resolveIMessageAttachmentRoots, r as getSoonestCooldownExpiry, ri as getCustomProviderApiKey, si as resolveEnvApiKey, sr as buildModelAliasIndex, ti as buildUsageWithNoCost, tr as withFileLock, ui as getShellPathFromLoginShell, wt as isAvatarHttpUrl, yn as applyMergePatch, yr as resolveConfiguredModelRef, z as validateConfigObjectWithPlugins, zn as dedupeProfileIds, zt as setConfigValueAtPath } from "./auth-profiles-D_x1_5v_.js";
7
+ import { $n as resolveAuthStorePathForDisplay, $r as buildAssistantMessageWithZeroUsage, Ai as DEFAULT_MODEL, Bn as listProfilesForProvider, Bt as unsetConfigValueAtPath, Cr as resolveReasoningDefault, Ct as isAvatarDataUrl, Dn as resolveSlackNativeStreaming, Dt as isSupportedLocalAvatarExtension, En as resolveDiscordPreviewStreamMode, Er as resolveThinkingDefault, Et as isPathWithinRoot, Ft as setConfigOverride, G as isInboundPathAllowed, H as normalizeTelegramCommandName, I as resolveConfigSnapshotHash, It as unsetConfigOverride, J as resolveIMessageRemoteAttachmentRoots, Jt as buildEnforcedShellCommand, Kn as ensureAuthProfileStore, Ln as resolveOwnerDisplaySetting, Lt as getConfigValueAtPath, M as loadConfig, Mi as resolveAuthProfileDisplayLabel, Nn as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH, Nt as getConfigOverrides, Oi as splitTrailingAuthProfile, On as resolveSlackStreamingMode, P as readConfigFileSnapshot, Pn as resolveAgentMaxConcurrent, Pt as resetConfigOverrides, Qr as buildAssistantMessage, R as writeConfigFile, Rt as parseConfigPath, Si as normalizeSecretInput, Sr as resolveModelRefFromString, St as AVATAR_MAX_BYTES, Tn as mapStreamingModeToSlackLegacyDraftStreamMode, Tr as resolveSubagentSpawnModelSelection, U as resolveTelegramCustomCommands, V as TELEGRAM_COMMAND_NAME_PATTERN, Vn as markAuthProfileGood, X as parseNonNegativeByteSize, Xr as OLLAMA_NATIVE_BASE_URL, Y as normalizeScpRemoteHost, Zr as createOllamaStreamFn, a as markAuthProfileFailure, ai as resolveApiKeyForProvider, ar as buildAllowedModelSet, at as parseDurationMs, br as resolveDefaultModelForAgent, c as resolveProfilesUnavailableReason, ci as resolveModelAuthMode, cr as findNormalizedProviderValue, di as resolveShellEnvFallbackTimeoutMs, dr as isCliProvider, ei as buildStreamErrorAssistantMessage, er as resolveOpenClawAgentDir, fr as modelKey, hr as normalizeProviderId, i as isProfileInCooldown, ii as requireApiKey, ji as DEFAULT_PROVIDER, jt as validateJsonSchemaValue, ki as DEFAULT_CONTEXT_TOKENS, l as resolveApiKeyForProfile, n as resolveAuthProfileOrder, ni as getApiKeyForModel, o as markAuthProfileUsed, or as buildConfiguredAllowlistKeys, pr as normalizeModelRef$2, q as resolveIMessageAttachmentRoots, r as getSoonestCooldownExpiry, ri as getCustomProviderApiKey, si as resolveEnvApiKey, sr as buildModelAliasIndex, ti as buildUsageWithNoCost, tr as withFileLock, ui as getShellPathFromLoginShell, wt as isAvatarHttpUrl, yn as applyMergePatch, yr as resolveConfiguredModelRef, z as validateConfigObjectWithPlugins, zn as dedupeProfileIds, zt as setConfigValueAtPath } from "./auth-profiles-CyG9VwU_.js";
8
8
  import { t as formatCliCommand } from "./command-format-CVXyxgq3.js";
9
- import { _ as resolveAgentModelPrimaryValue, a as resolveAgentDir, d as resolveDefaultAgentId, f as resolveEffectiveModelFallbacks, g as resolveAgentModelFallbackValues, h as resolveSessionAgentIds, i as resolveAgentConfig, l as resolveAgentSkillsFilter, m as resolveSessionAgentId, p as resolveRunModelFallbacksOverride, r as listAgentIds, t as hasConfiguredModelFallbacks, u as resolveAgentWorkspaceDir, v as toAgentModelListLike } from "./agent-scope-CJelRKYY.js";
9
+ import { _ as resolveAgentModelPrimaryValue, a as resolveAgentDir, d as resolveDefaultAgentId, f as resolveEffectiveModelFallbacks, g as resolveAgentModelFallbackValues, h as resolveSessionAgentIds, i as resolveAgentConfig, l as resolveAgentSkillsFilter, m as resolveSessionAgentId, p as resolveRunModelFallbacksOverride, r as listAgentIds, t as hasConfiguredModelFallbacks, u as resolveAgentWorkspaceDir, v as toAgentModelListLike } from "./agent-scope-CY2-lUIY.js";
10
10
  import { C as isCronSessionKey, E as resolveThreadParentSessionKey, T as parseAgentSessionKey, _ as normalizeOptionalAccountId, b as getSubagentDepth, c as normalizeAgentId, d as resolveThreadSessionKeys, f as sanitizeAgentId, g as normalizeAccountId$2, h as DEFAULT_ACCOUNT_ID, l as normalizeMainKey, o as classifySessionKeyShape, r as buildAgentMainSessionKey, s as isValidAgentId, t as DEFAULT_AGENT_ID, u as resolveAgentIdFromSessionKey, v as isBlockedObjectKey, w as isSubagentSessionKey, x as isAcpSessionKey, y as deriveSessionChatType } from "./session-key-BLprDJYq.js";
11
11
  import { C as sliceUtf16Safe, E as isPlainObject, S as sleep$1, T as truncateUtf16Safe, b as shortenHomeInString, c as escapeRegExp, p as normalizeE164, r as clampInt, t as CONFIG_DIR, u as isRecord$1, v as resolveUserPath, x as shortenHomePath } from "./utils-DIzy5B5o.js";
12
- import { C as openBoundaryFileSync, N as normalizeWindowsPathForComparison, S as openBoundaryFile, a as DEFAULT_IDENTITY_FILENAME, d as ensureAgentWorkspace, f as filterBootstrapFilesForSession, g as resolveWorkspaceAttachmentsRoot, m as loadWorkspaceBootstrapFiles, n as DEFAULT_AGENT_WORKSPACE_DIR, r as DEFAULT_BOOTSTRAP_FILENAME, y as resolveOpenClawPackageRoot } from "./workspace-BHfqkuYN.js";
12
+ import { C as openBoundaryFileSync, N as normalizeWindowsPathForComparison, S as openBoundaryFile, a as DEFAULT_IDENTITY_FILENAME, d as ensureAgentWorkspace, f as filterBootstrapFilesForSession, g as resolveWorkspaceAttachmentsRoot, m as loadWorkspaceBootstrapFiles, n as DEFAULT_AGENT_WORKSPACE_DIR, r as DEFAULT_BOOTSTRAP_FILENAME, y as resolveOpenClawPackageRoot } from "./workspace-DzeL98px.js";
13
13
  import { i as logWarn, n as logError, r as logInfo, t as logDebug } from "./logger-BJMfryJd.js";
14
14
  import { n as runExec, r as spawnWithFallback, t as runCommandWithTimeout } from "./exec-CEAvKSx9.js";
15
15
  import { a as saveJsonFile, i as loadJsonFile } from "./github-copilot-token-CulJ9J5l.js";
16
16
  import { n as isDangerousHostEnvVarName } from "./host-env-security-CJMD0__Z.js";
17
17
  import { t as VERSION } from "./version-CGDNfh5C.js";
18
18
  import { E as triggerInternalHook, S as matchPluginCommand, _ as normalizePluginHttpPath, b as getPluginCommandSpecs, c as normalizeChannelId$1, d as getActivePluginRegistryKey, g as createPluginRegistry, m as setActivePluginRegistry, n as CHAT_CHANNEL_ORDER, p as requireActivePluginRegistry, s as normalizeAnyChannelId, u as getActivePluginRegistry, v as clearPluginCommands, w as createInternalHookEvent, x as listPluginCommands, y as executePluginCommand } from "./registry-7fg1BnMw.js";
19
- 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-Kbw8YPsZ.js";
20
- import { a as resolveChannelGroupRequireMention, c as normalizeHyphenSlug, i as resolveChannelGroupPolicy, l as normalizeStringEntries, n as listChannelDocks, r as normalizeSignalMessagingTarget, s as normalizeAtHashSlug, t as getChannelDock, u as normalizeStringEntriesLower } from "./dock-DT8sACcR.js";
19
+ 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-CBF8Vfz8.js";
20
+ import { a as resolveChannelGroupRequireMention, c as normalizeHyphenSlug, i as resolveChannelGroupPolicy, l as normalizeStringEntries, n as listChannelDocks, r as normalizeSignalMessagingTarget, s as normalizeAtHashSlug, t as getChannelDock, u as normalizeStringEntriesLower } from "./dock-CoclJnwp.js";
21
21
  import { t as runTasksWithConcurrency } from "./run-with-concurrency-kzSMVKJz.js";
22
22
  import { n as recordCommandPoll, r as resetCommandPollCount } from "./command-poll-backoff-KDiSpWTU.js";
23
- import { i as buildModelAliasLines, n as resolveModel } from "./model-DmBmzJI6.js";
24
- import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-BZ2RCD_u.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-BCgFAMj3.js";
26
- import { t as PATH_ALIAS_POLICIES } from "./path-alias-guards-Cg9ZP1NN.js";
23
+ import { i as buildModelAliasLines, n as resolveModel } from "./model-DMZUvZJo.js";
24
+ import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-RrejIg26.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-D4S-gyVf.js";
26
+ import { t as PATH_ALIAS_POLICIES } from "./path-alias-guards-laKq24fx.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-0J6eKf3g.js";
28
- import { C as normalizeSessionDeliveryFields, D as capArrayByJsonBytes, E as archiveSessionTranscripts, F as parseInlineDirectives$1, G as resolveSessionResetPolicy, H as resolveSessionKey, J as DEFAULT_RESET_TRIGGERS, K as resolveSessionResetType, R as jsonUtf8Bytes, S as normalizeDeliveryContext, U as evaluateSessionFreshness, V as resolveSessionLockMaxHoldFromTimeout, W as resolveChannelResetConfig, X as resolveFreshSessionTotalTokens, Y as mergeSessionEntry, Z as setSessionRuntimeModel, _ as isCacheEnabled, a as resolveAndPersistSessionFile, b as deliveryContextKey, c as recordSessionMetaFromInbound, ct as resolveGroupSessionKey, d as updateSessionStore, et as resolveExplicitAgentSessionKey, f as updateSessionStoreEntry, n as parseSessionThreadInfo, o as loadSessionStore, q as resolveThreadFlag, r as appendAssistantMessageToSessionTranscript, rt as deriveSessionMetaPatch, s as readSessionUpdatedAt, t as extractDeliveryInfo, tt as resolveMainSessionKey, u as updateLastRoute, v as resolveCacheTtlMs$1, w as normalizeAccountId$3, x as mergeDeliveryContext, y as deliveryContextFromSession, z as acquireSessionWriteLock } from "./sessions-B2mnwD21.js";
28
+ import { C as normalizeSessionDeliveryFields, D as capArrayByJsonBytes, E as archiveSessionTranscripts, F as parseInlineDirectives$1, G as resolveSessionResetPolicy, H as resolveSessionKey, J as DEFAULT_RESET_TRIGGERS, K as resolveSessionResetType, R as jsonUtf8Bytes, S as normalizeDeliveryContext, U as evaluateSessionFreshness, V as resolveSessionLockMaxHoldFromTimeout, W as resolveChannelResetConfig, X as resolveFreshSessionTotalTokens, Y as mergeSessionEntry, Z as setSessionRuntimeModel, _ as isCacheEnabled, a as resolveAndPersistSessionFile, b as deliveryContextKey, c as recordSessionMetaFromInbound, ct as resolveGroupSessionKey, d as updateSessionStore, et as resolveExplicitAgentSessionKey, f as updateSessionStoreEntry, n as parseSessionThreadInfo, o as loadSessionStore, q as resolveThreadFlag, r as appendAssistantMessageToSessionTranscript, rt as deriveSessionMetaPatch, s as readSessionUpdatedAt, t as extractDeliveryInfo, tt as resolveMainSessionKey, u as updateLastRoute, v as resolveCacheTtlMs$1, w as normalizeAccountId$3, x as mergeDeliveryContext, y as deliveryContextFromSession, z as acquireSessionWriteLock } from "./sessions-BXz4gdq6.js";
29
29
  import { t as normalizeChatType } from "./chat-type-B5__aQIT.js";
30
30
  import { n as resolveConversationLabel } from "./conversation-label-DarEmZ42.js";
31
31
  import { t as resolveAccountEntry } from "./account-lookup-DndUerpe.js";
32
- import { C as resolveDiscordAccount, _ as isWhatsAppGroupJid, a as createTelegramActionGate, g as resolveSlackBotToken, h as resolveSlackAppToken, l as resolveTelegramAccount, m as resolveSlackReplyToMode, n as listChannelPlugins, o as listEnabledTelegramAccounts, p as resolveSlackAccount, r as normalizeChannelId$2, s as listTelegramAccountIds, t as getChannelPlugin, u as resolveTelegramToken, v as normalizeWhatsAppTarget, w as normalizeDiscordToken, x as listEnabledDiscordAccounts, y as createDiscordActionGate } from "./plugins-vsjS_m58.js";
33
- import { _ as webAuthExists, c as logWebSelfId, i as resolveWhatsAppAccount, l as logoutWeb, p as readWebSelfId, s as getWebAuthAgeMs } from "./accounts-BQHz8_1_.js";
34
- import { r as resolveIMessageAccount } from "./accounts-B3zSNWIv.js";
35
- import { i as resolveSignalAccount, t as listEnabledSignalAccounts } from "./accounts-DTfEeXyO.js";
36
- import { t as buildChannelAccountBindings } from "./bindings-Hx6KNJeg.js";
37
- import { a as createSlackWebClient, c as validateSlackBlocksArray, d as resolveSlackChannelId, i as normalizeSlackOutboundText, l as buildSlackBlocksFallbackText, o as resolveSlackWebClientOptions, s as parseSlackBlocksInput, t as sendMessageSlack, u as parseSlackTarget } from "./send-Cpaj_bKB.js";
38
- import { $ as fetchChannelPermissionsDiscord, A as unpinMessageDiscord, B as listScheduledEventsDiscord, C as editMessageDiscord, Ct as resolveTimestampMs, D as pinMessageDiscord, Dt as normalizeChannelSlug, E as listThreadsDiscord, Et as buildChannelKeyCandidates, F as fetchMemberInfoDiscord, G as uploadStickerDiscord, H as timeoutMemberDiscord, I as fetchRoleInfoDiscord, J as editChannelDiscord, K as createChannelDiscord, L as fetchVoiceStatusDiscord, M as banMemberDiscord, N as createScheduledEventDiscord, O as readMessagesDiscord, Ot as resolveChannelEntryMatchWithFallback, P as fetchChannelInfoDiscord, Q as stripUndefinedFields, R as kickMemberDiscord, S as deleteMessageDiscord, St as resolveDiscordSystemLocation, T as listPinsDiscord, Tt as applyChannelMatchMeta, U as listGuildEmojisDiscord, V as removeRoleDiscord, W as uploadEmojiDiscord, X as removeChannelPermissionDiscord, Y as moveChannelDiscord, Z as setChannelPermissionDiscord, _ as sendPollDiscord, _t as resolveDiscordShouldRequireMention, a as removeReactionDiscord, at as resolveDiscordChannelId, b as sendWebhookMessageDiscord, bt as formatDiscordReactionEmoji, c as formatDiscordComponentEventText, ct as isDiscordGroupAllowedByPolicy, d as parseDiscordModalCustomId, dt as resolveDiscordAllowListMatch, et as hasAnyGuildPermissionDiscord, f as parseDiscordModalCustomIdForCarbon, ft as resolveDiscordChannelConfigWithFallback, g as sendMessageDiscord, gt as resolveDiscordOwnerAllowFrom, h as resolveDiscordModalEntry, ht as resolveDiscordOwnerAccess, i as removeOwnReactionsDiscord, it as parseDiscordTarget, j as addRoleDiscord, k as searchMessagesDiscord, l as parseDiscordComponentCustomId, lt as normalizeDiscordAllowList, m as resolveDiscordComponentEntry, mt as resolveDiscordMemberAccessState, n as fetchReactionsDiscord, nt as createDiscordClient, o as sendDiscordComponentMessage, ot as listDiscordDirectoryGroupsLive, p as readDiscordComponentSpec, pt as resolveDiscordGuildEntry, q as deleteChannelDiscord, r as reactMessageDiscord, rt as createDiscordRestClient, s as createDiscordFormModal, st as listDiscordDirectoryPeersLive, tt as chunkDiscordTextWithMode, u as parseDiscordComponentCustomIdForCarbon, ut as normalizeDiscordSlug, v as sendStickerDiscord, vt as resolveGroupDmAllow, w as fetchMessageDiscord, wt as fetchDiscord, x as createThreadDiscord, xt as formatDiscordUserTag, y as sendVoiceMessageDiscord, yt as shouldEmitDiscordReactionNotification, z as listGuildChannelsDiscord } from "./send-BpXRh0BM.js";
32
+ import { C as resolveDiscordAccount, _ as isWhatsAppGroupJid, a as createTelegramActionGate, g as resolveSlackBotToken, h as resolveSlackAppToken, l as resolveTelegramAccount, m as resolveSlackReplyToMode, n as listChannelPlugins, o as listEnabledTelegramAccounts, p as resolveSlackAccount, r as normalizeChannelId$2, s as listTelegramAccountIds, t as getChannelPlugin, u as resolveTelegramToken, v as normalizeWhatsAppTarget, w as normalizeDiscordToken, x as listEnabledDiscordAccounts, y as createDiscordActionGate } from "./plugins-C4cYqW07.js";
33
+ import { _ as webAuthExists, c as logWebSelfId, i as resolveWhatsAppAccount, l as logoutWeb, p as readWebSelfId, s as getWebAuthAgeMs } from "./accounts-Cv5CUnT4.js";
34
+ import { r as resolveIMessageAccount } from "./accounts-2NNZ6Hbp.js";
35
+ import { i as resolveSignalAccount, t as listEnabledSignalAccounts } from "./accounts-NHpMJ0aq.js";
36
+ import { t as buildChannelAccountBindings } from "./bindings-DGvp9FdD.js";
37
+ import { a as createSlackWebClient, c as validateSlackBlocksArray, d as resolveSlackChannelId, i as normalizeSlackOutboundText, l as buildSlackBlocksFallbackText, o as resolveSlackWebClientOptions, s as parseSlackBlocksInput, t as sendMessageSlack, u as parseSlackTarget } from "./send-ZyB64ntO.js";
38
+ import { $ as fetchChannelPermissionsDiscord, A as unpinMessageDiscord, B as listScheduledEventsDiscord, C as editMessageDiscord, Ct as resolveTimestampMs, D as pinMessageDiscord, Dt as normalizeChannelSlug, E as listThreadsDiscord, Et as buildChannelKeyCandidates, F as fetchMemberInfoDiscord, G as uploadStickerDiscord, H as timeoutMemberDiscord, I as fetchRoleInfoDiscord, J as editChannelDiscord, K as createChannelDiscord, L as fetchVoiceStatusDiscord, M as banMemberDiscord, N as createScheduledEventDiscord, O as readMessagesDiscord, Ot as resolveChannelEntryMatchWithFallback, P as fetchChannelInfoDiscord, Q as stripUndefinedFields, R as kickMemberDiscord, S as deleteMessageDiscord, St as resolveDiscordSystemLocation, T as listPinsDiscord, Tt as applyChannelMatchMeta, U as listGuildEmojisDiscord, V as removeRoleDiscord, W as uploadEmojiDiscord, X as removeChannelPermissionDiscord, Y as moveChannelDiscord, Z as setChannelPermissionDiscord, _ as sendPollDiscord, _t as resolveDiscordShouldRequireMention, a as removeReactionDiscord, at as resolveDiscordChannelId, b as sendWebhookMessageDiscord, bt as formatDiscordReactionEmoji, c as formatDiscordComponentEventText, ct as isDiscordGroupAllowedByPolicy, d as parseDiscordModalCustomId, dt as resolveDiscordAllowListMatch, et as hasAnyGuildPermissionDiscord, f as parseDiscordModalCustomIdForCarbon, ft as resolveDiscordChannelConfigWithFallback, g as sendMessageDiscord, gt as resolveDiscordOwnerAllowFrom, h as resolveDiscordModalEntry, ht as resolveDiscordOwnerAccess, i as removeOwnReactionsDiscord, it as parseDiscordTarget, j as addRoleDiscord, k as searchMessagesDiscord, l as parseDiscordComponentCustomId, lt as normalizeDiscordAllowList, m as resolveDiscordComponentEntry, mt as resolveDiscordMemberAccessState, n as fetchReactionsDiscord, nt as createDiscordClient, o as sendDiscordComponentMessage, ot as listDiscordDirectoryGroupsLive, p as readDiscordComponentSpec, pt as resolveDiscordGuildEntry, q as deleteChannelDiscord, r as reactMessageDiscord, rt as createDiscordRestClient, s as createDiscordFormModal, st as listDiscordDirectoryPeersLive, tt as chunkDiscordTextWithMode, u as parseDiscordComponentCustomIdForCarbon, ut as normalizeDiscordSlug, v as sendStickerDiscord, vt as resolveGroupDmAllow, w as fetchMessageDiscord, wt as fetchDiscord, x as createThreadDiscord, xt as formatDiscordUserTag, y as sendVoiceMessageDiscord, yt as shouldEmitDiscordReactionNotification, z as listGuildChannelsDiscord } from "./send-BTswySBz.js";
39
39
  import { c as resolveStorePath, i as resolveSessionTranscriptPath, n as resolveSessionFilePath, r as resolveSessionFilePathOptions, t as resolveDefaultSessionStorePath } from "./paths-CTtLmER4.js";
40
40
  import { i as normalizeInputProvenance, n as applyInputProvenanceToUserMessage, r as hasInterSessionUserProvenance } from "./input-provenance-C8z9KgIz.js";
41
- import { r as writeJsonAtomic } from "./json-files-CuJjdF_0.js";
41
+ import { r as writeJsonAtomic } from "./json-files-rR19q30D.js";
42
42
  import { n as onSessionTranscriptUpdate, t as emitSessionTranscriptUpdate } from "./transcript-events-DgzPL8Hc.js";
43
- import { Ft as SESSION_LABEL_MAX_LENGTH, t as GatewayClient } from "./client-BvL3EdiZ.js";
44
- import { a as randomIdempotencyKey, d as resolveLeastPrivilegeOperatorScopesForMethod, n as callGateway, r as callGatewayLeastPrivilege, t as buildGatewayConnectionDetails } from "./call-CzoM7hPS.js";
45
- import { r as isLoopbackHost } from "./net-BXeYv7Iu.js";
43
+ import { Ft as SESSION_LABEL_MAX_LENGTH, t as GatewayClient } from "./client-vUKV2o6h.js";
44
+ import { a as randomIdempotencyKey, d as resolveLeastPrivilegeOperatorScopesForMethod, n as callGateway, r as callGatewayLeastPrivilege, t as buildGatewayConnectionDetails } from "./call-CmAGfSJE.js";
45
+ import { r as isLoopbackHost } from "./net-C75G4fup.js";
46
46
  import { r as trimToUndefined, t as resolveGatewayCredentialsFromConfig } from "./credentials-BtL4tqu0.js";
47
47
  import { a as stripSilentToken, i as isSilentReplyText, n as SILENT_REPLY_TOKEN, r as isSilentReplyPrefixText, t as HEARTBEAT_TOKEN } from "./tokens-DyLBF_df.js";
48
- import { a as getMachineDisplayName, i as startBrowserControlServiceFromConfig, n as createBrowserRouteDispatcher, r as createBrowserControlContext, t as withTimeout$4 } from "./with-timeout-l0X_rwcb.js";
48
+ import { a as getMachineDisplayName, i as startBrowserControlServiceFromConfig, n as createBrowserRouteDispatcher, r as createBrowserControlContext, t as withTimeout$4 } from "./with-timeout-B9qgOUui.js";
49
49
  import { n as generateSecureUuid, t as generateSecureToken } from "./secure-random-_dzDDlFo.js";
50
- import { A as initializeGlobalHookRunner, C as toInternalMessagePreprocessedContext, D as toPluginMessageReceivedEvent, E as toPluginMessageContext, O as fireAndForgetHook, S as deriveInboundMessageHookContext, T as toInternalMessageTranscribedContext, _ as createReplyToModeFilterForChannel, a as normalizeOutboundPayloadsForJson, b as normalizeChannelTargetInput, c as parseReplyDirectives, d as applyReplyThreading, f as filterMessagingToolDuplicates, g as shouldSuppressReasoningPayload, h as shouldSuppressMessagingToolReplies, i as normalizeOutboundPayloads, k as getGlobalHookRunner, l as splitMediaFromOutput, m as isRenderablePayload, o as normalizeReplyPayloadsForDelivery, p as filterMessagingToolMediaDuplicates, r as formatOutboundPayloadLog, s as throwIfAborted, t as deliverOutboundPayloads, u as applyReplyTagsToPayload, v as resolveReplyToMode, w as toInternalMessageReceivedContext, x as normalizeTargetForProvider, y as buildTargetResolverSignature } from "./deliver-DTgCZWjU.js";
51
- import { a as logMessageProcessed, c as logWebhookError, d as startDiagnosticHeartbeat, f as stopDiagnosticHeartbeat, i as logLaneEnqueue, l as logWebhookProcessed, m as isDiagnosticsEnabled, o as logMessageQueued, p as emitDiagnosticEvent, r as logLaneDequeue, s as logSessionStateChange, t as diag, u as logWebhookReceived } from "./diagnostic-Bvatw1Xn.js";
50
+ import { A as initializeGlobalHookRunner, C as toInternalMessagePreprocessedContext, D as toPluginMessageReceivedEvent, E as toPluginMessageContext, O as fireAndForgetHook, S as deriveInboundMessageHookContext, T as toInternalMessageTranscribedContext, _ as createReplyToModeFilterForChannel, a as normalizeOutboundPayloadsForJson, b as normalizeChannelTargetInput, c as parseReplyDirectives, d as applyReplyThreading, f as filterMessagingToolDuplicates, g as shouldSuppressReasoningPayload, h as shouldSuppressMessagingToolReplies, i as normalizeOutboundPayloads, k as getGlobalHookRunner, l as splitMediaFromOutput, m as isRenderablePayload, o as normalizeReplyPayloadsForDelivery, p as filterMessagingToolMediaDuplicates, r as formatOutboundPayloadLog, s as throwIfAborted, t as deliverOutboundPayloads, u as applyReplyTagsToPayload, v as resolveReplyToMode, w as toInternalMessageReceivedContext, x as normalizeTargetForProvider, y as buildTargetResolverSignature } from "./deliver-H0xCFj4j.js";
51
+ import { a as logMessageProcessed, c as logWebhookError, d as startDiagnosticHeartbeat, f as stopDiagnosticHeartbeat, i as logLaneEnqueue, l as logWebhookProcessed, m as isDiagnosticsEnabled, o as logMessageQueued, p as emitDiagnosticEvent, r as logLaneDequeue, s as logSessionStateChange, t as diag, u as logWebhookReceived } from "./diagnostic-DjxUqpmL.js";
52
52
  import { n as getDiagnosticSessionState } from "./diagnostic-session-state-Dx-rJXBO.js";
53
- import { A as buildTypingThreadParams, B as resolveTelegramReplyId, C as buildGroupLabel, D as buildTelegramGroupPeerId, E as buildTelegramGroupFrom, F as normalizeForwardedContext, G as normalizeDmAllowFromWithStore$1, H as resolveTelegramThreadSpec, I as resolveTelegramDirectPeerId, J as toLocationContext, K as resolveSenderAllowMatch$1, L as resolveTelegramForumThreadId, M as expandTextLinks, N as extractTelegramLocation, O as buildTelegramParentPeer, P as hasBotMention, R as resolveTelegramGroupAllowFromContext, T as buildSenderName, U as isSenderAllowed$1, V as resolveTelegramStreamMode, W as normalizeAllowFrom$2, X as parseTelegramTarget, Y as isVoiceCompatibleAudio, Z as resolveTelegramTargetChatType, _ as resolveTelegramFetch, a as reactMessageTelegram, b as loadCronStore, c as sendStickerTelegram, d as wasSentByBot, f as isRecoverableTelegramNetworkError, g as wrapFileReferencesInHtml, h as renderTelegramHtmlText, i as editMessageTelegram, j as describeReplyTarget, k as buildTelegramThreadParams, m as markdownToTelegramHtml, n as createForumTopicTelegram, o as sendMessageTelegram, p as markdownToTelegramChunks, q as formatLocationText, r as deleteMessageTelegram, s as sendPollTelegram, t as buildInlineKeyboard, u as resolveTelegramVoiceSend, v as splitTelegramCaption, w as buildSenderLabel, x as resolveCronStorePath, y as withTelegramApiErrorLogging, z as resolveTelegramMediaPlaceholder } from "./send-sj8Hu26l.js";
54
- import { c as detectMime, d as imageMimeFromFormat, f as isAudioFileName, g as MAX_IMAGE_BYTES, i as getImageMetadata, l as extensionForMime, m as kindFromMime, p as isGifMedia, s as resizeToJpeg, v as mediaKindFromMime } from "./image-ops-BGTBZMuE.js";
55
- import { A as isRawApiErrorPayload, B as sanitizeGoogleTurnOrdering, C as isCloudCodeAssistFormatError, D as isFailoverErrorMessage, E as isFailoverAssistantError, F as sanitizeUserFacingText, I as buildBootstrapContextFiles, L as ensureSessionHeader, M as isTransientHttpError, N as parseImageDimensionError, O as isLikelyContextOverflowError, P as parseImageSizeError, R as resolveBootstrapMaxChars, S as isBillingAssistantError, T as isContextOverflowError, _ as formatBillingErrorMessage, a as isMessagingToolDuplicateNormalized, b as isAuthAssistantError, c as extractToolCallsFromAssistant, d as downgradeOpenAIFunctionCallReasoningPairs, f as downgradeOpenAIReasoningBlocks, g as formatAssistantErrorText, h as classifyFailoverReason, j as isTimeoutErrorMessage, k as isRateLimitAssistantError, l as extractToolResultId, m as BILLING_ERROR_USER_MESSAGE, n as validateGeminiTurns, o as normalizeTextForComparison, p as isGoogleModelApi, r as pickFallbackThinkingLevel, s as sanitizeSessionMessagesImages, t as validateAnthropicTurns, u as sanitizeToolCallIdsForCloudCodeAssist, v as formatRawAssistantErrorForUi, w as isCompactionFailureError, x as isAuthPermanentErrorMessage, y as getApiErrorPayloadFingerprint, z as resolveBootstrapTotalMaxChars } from "./pi-embedded-helpers-C3sJPGXn.js";
56
- import { C as resolveToolProfilePolicy, S as normalizeToolName, T as matchesAnyGlobPattern, _ as collectExplicitAllowlist, a as ensureSandboxWorkspaceForSession, b as stripPluginOnlyAllowlist, c as resolveSandboxRuntimeStatus, d as getBridgeAuthForPort, f as resolveSandboxConfigForAgent, g as buildPluginToolGroups, h as applyOwnerOnlyToolPolicy, o as resolveSandboxContext, v as expandPolicyWithPluginGroups, w as compileGlobPatterns, y as mergeAlsoAllowPolicy } from "./sandbox-CLIUxOtc.js";
57
- import { j as DEFAULT_AI_SNAPSHOT_MAX_CHARS } from "./chrome-DuDCGdf-.js";
58
- import { c as resolveBrowserControlAuth, i as resolveBrowserConfig } from "./server-context-DnPsW_Mg.js";
59
- import { i as resolveExistingPathsWithinRoot, r as DEFAULT_UPLOAD_DIR } from "./paths-BjoSX1aC.js";
53
+ import { A as buildTypingThreadParams, B as resolveTelegramReplyId, C as buildGroupLabel, D as buildTelegramGroupPeerId, E as buildTelegramGroupFrom, F as normalizeForwardedContext, G as normalizeDmAllowFromWithStore$1, H as resolveTelegramThreadSpec, I as resolveTelegramDirectPeerId, J as toLocationContext, K as resolveSenderAllowMatch$1, L as resolveTelegramForumThreadId, M as expandTextLinks, N as extractTelegramLocation, O as buildTelegramParentPeer, P as hasBotMention, R as resolveTelegramGroupAllowFromContext, T as buildSenderName, U as isSenderAllowed$1, V as resolveTelegramStreamMode, W as normalizeAllowFrom$2, X as parseTelegramTarget, Y as isVoiceCompatibleAudio, Z as resolveTelegramTargetChatType, _ as resolveTelegramFetch, a as reactMessageTelegram, b as loadCronStore, c as sendStickerTelegram, d as wasSentByBot, f as isRecoverableTelegramNetworkError, g as wrapFileReferencesInHtml, h as renderTelegramHtmlText, i as editMessageTelegram, j as describeReplyTarget, k as buildTelegramThreadParams, m as markdownToTelegramHtml, n as createForumTopicTelegram, o as sendMessageTelegram, p as markdownToTelegramChunks, q as formatLocationText, r as deleteMessageTelegram, s as sendPollTelegram, t as buildInlineKeyboard, u as resolveTelegramVoiceSend, v as splitTelegramCaption, w as buildSenderLabel, x as resolveCronStorePath, y as withTelegramApiErrorLogging, z as resolveTelegramMediaPlaceholder } from "./send-D0X-8aPh.js";
54
+ import { c as detectMime, d as imageMimeFromFormat, f as isAudioFileName, g as MAX_IMAGE_BYTES, i as getImageMetadata, l as extensionForMime, m as kindFromMime, p as isGifMedia, s as resizeToJpeg, v as mediaKindFromMime } from "./image-ops-B2L37gT8.js";
55
+ import { A as isRawApiErrorPayload, B as sanitizeGoogleTurnOrdering, C as isCloudCodeAssistFormatError, D as isFailoverErrorMessage, E as isFailoverAssistantError, F as sanitizeUserFacingText, I as buildBootstrapContextFiles, L as ensureSessionHeader, M as isTransientHttpError, N as parseImageDimensionError, O as isLikelyContextOverflowError, P as parseImageSizeError, R as resolveBootstrapMaxChars, S as isBillingAssistantError, T as isContextOverflowError, _ as formatBillingErrorMessage, a as isMessagingToolDuplicateNormalized, b as isAuthAssistantError, c as extractToolCallsFromAssistant, d as downgradeOpenAIFunctionCallReasoningPairs, f as downgradeOpenAIReasoningBlocks, g as formatAssistantErrorText, h as classifyFailoverReason, j as isTimeoutErrorMessage, k as isRateLimitAssistantError, l as extractToolResultId, m as BILLING_ERROR_USER_MESSAGE, n as validateGeminiTurns, o as normalizeTextForComparison, p as isGoogleModelApi, r as pickFallbackThinkingLevel, s as sanitizeSessionMessagesImages, t as validateAnthropicTurns, u as sanitizeToolCallIdsForCloudCodeAssist, v as formatRawAssistantErrorForUi, w as isCompactionFailureError, x as isAuthPermanentErrorMessage, y as getApiErrorPayloadFingerprint, z as resolveBootstrapTotalMaxChars } from "./pi-embedded-helpers-BB2whkUz.js";
56
+ import { C as resolveToolProfilePolicy, S as normalizeToolName, T as matchesAnyGlobPattern, _ as collectExplicitAllowlist, a as ensureSandboxWorkspaceForSession, b as stripPluginOnlyAllowlist, c as resolveSandboxRuntimeStatus, d as getBridgeAuthForPort, f as resolveSandboxConfigForAgent, g as buildPluginToolGroups, h as applyOwnerOnlyToolPolicy, o as resolveSandboxContext, v as expandPolicyWithPluginGroups, w as compileGlobPatterns, y as mergeAlsoAllowPolicy } from "./sandbox-BLqUWbp2.js";
57
+ import { j as DEFAULT_AI_SNAPSHOT_MAX_CHARS } from "./chrome-DeZyLFsG.js";
58
+ import { c as resolveBrowserControlAuth, i as resolveBrowserConfig } from "./server-context-DRq_OT33.js";
59
+ import { i as resolveExistingPathsWithinRoot, r as DEFAULT_UPLOAD_DIR } from "./paths-B_L2Zoe-.js";
60
60
  import { a as testRegexWithBoundedInput, i as compileSafeRegex, n as redactSensitiveText } from "./redact-Ck5U_y4i.js";
61
61
  import { i as formatUncaughtError, r as formatErrorMessage, s as readErrorName } from "./errors-BJz45-qI.js";
62
- import { i as openFileWithinRoot, l as writeFileWithinRoot, n as copyFileWithinRoot, o as readFileWithinRoot, r as createRootScopedReadFile, t as SafeOpenError } from "./fs-safe-CJDtl_QU.js";
63
- import { a as isBlockedHostnameOrIp, c as normalizeHostname, n as SsrFBlockedError } from "./proxy-env-BQIJPH4j.js";
64
- import { i as saveMediaBuffer, r as getMediaDir, t as MEDIA_MAX_BYTES } from "./store-U8cs0QvT.js";
65
- import { i as resolveLsofCommandSync } from "./ports-sCOQUaAP.js";
66
- import { a as canonicalizeBase64, i as resolveImageSanitizationLimits, n as sanitizeImageBlocks, o as estimateBase64DecodedBytes, r as sanitizeToolResultImages } from "./tool-images-CnpAosfi.js";
62
+ import { i as openFileWithinRoot, l as writeFileWithinRoot, n as copyFileWithinRoot, o as readFileWithinRoot, r as createRootScopedReadFile, t as SafeOpenError } from "./fs-safe-BqJ9egpm.js";
63
+ import { a as isBlockedHostnameOrIp, c as normalizeHostname, n as SsrFBlockedError } from "./proxy-env-BoopXu2J.js";
64
+ import { i as saveMediaBuffer, r as getMediaDir, t as MEDIA_MAX_BYTES } from "./store-TdzSHRPN.js";
65
+ import { i as resolveLsofCommandSync } from "./ports-DRaxdQmm.js";
66
+ import { a as canonicalizeBase64, i as resolveImageSanitizationLimits, n as sanitizeImageBlocks, o as estimateBase64DecodedBytes, r as sanitizeToolResultImages } from "./tool-images-CmgHk8xk.js";
67
67
  import { a as normalizeElevatedLevel, c as normalizeUsageDisplay, d as supportsXHighThinking, l as normalizeVerboseLevel, n as formatXHighModelHint, o as normalizeReasoningLevel, s as normalizeThinkLevel, t as formatThinkingLevels, u as resolveResponseUsageMode } from "./thinking-pYqswKJZ.js";
68
- import { t as ensureOpenClawModelsJson } from "./models-config-CmrBGsQs.js";
69
- import { n as evaluateShellAllowlist, r as resolveAllowAlwaysPatterns } from "./exec-approvals-allowlist-B4DS6FIn.js";
70
- import { n as resolveExecSafeBinRuntimePolicy, r as resolveMergedSafeBinProfileFixtures } from "./exec-safe-bin-runtime-policy-BP6ImlkB.js";
71
- import { n as loadModelCatalog, r as modelSupportsVision, t as findModelInCatalog } from "./model-catalog-D1X8r3WJ.js";
72
- import { a as getDefaultMediaLocalRoots, i as getAgentScopedMediaLocalRoots, n as fetchRemoteMedia, r as readResponseWithLimit, t as MediaFetchError } from "./fetch-DC-NMnAU.js";
73
- import { a as resolveAutoImageModel, c as applyTemplate, d as normalizeMediaUnderstandingChatType, f as resolveMediaUnderstandingScope, g as registerUnhandledRejectionHandler, i as normalizeMediaAttachments, l as resolveConcurrency, m as buildRandomTempFilePath, n as buildProviderRegistry, o as resolveMediaAttachmentLocalRoots, p as CLI_OUTPUT_MAX_BUFFER, r as createMediaAttachmentCache, s as runCapability, t as runAudioTranscription, u as resolveTimeoutMs$1, v as resolveAttachmentKind } from "./audio-transcription-runner-DGyS5H3K.js";
68
+ import { t as ensureOpenClawModelsJson } from "./models-config-AePb9RAo.js";
69
+ import { n as evaluateShellAllowlist, r as resolveAllowAlwaysPatterns } from "./exec-approvals-allowlist-CFjPSbxI.js";
70
+ import { n as resolveExecSafeBinRuntimePolicy, r as resolveMergedSafeBinProfileFixtures } from "./exec-safe-bin-runtime-policy-CpMj95vJ.js";
71
+ import { n as loadModelCatalog, r as modelSupportsVision, t as findModelInCatalog } from "./model-catalog-DFi9HgWu.js";
72
+ import { a as getDefaultMediaLocalRoots, i as getAgentScopedMediaLocalRoots, n as fetchRemoteMedia, r as readResponseWithLimit, t as MediaFetchError } from "./fetch-DOjg912W.js";
73
+ import { a as resolveAutoImageModel, c as applyTemplate, d as normalizeMediaUnderstandingChatType, f as resolveMediaUnderstandingScope, g as registerUnhandledRejectionHandler, i as normalizeMediaAttachments, l as resolveConcurrency, m as buildRandomTempFilePath, n as buildProviderRegistry, o as resolveMediaAttachmentLocalRoots, p as CLI_OUTPUT_MAX_BUFFER, r as createMediaAttachmentCache, s as runCapability, t as runAudioTranscription, u as resolveTimeoutMs$1, v as resolveAttachmentKind } from "./audio-transcription-runner-DkibzFT2.js";
74
74
  import { n as fetchWithTimeout, t as bindAbortRelay } from "./fetch-timeout-CZWuvzq4.js";
75
- import { n as withStrictGuardedFetchMode, r as withTrustedEnvProxyGuardedFetchMode, t as fetchWithSsrFGuard } from "./fetch-guard-B62rgaSw.js";
76
- import { S as minimaxUnderstandImage, _ as stripThinkingTagsFromText, a as decodeDataUrl, b as isInsideCode, c as extractAssistantThinking, d as formatReasoningMessage, f as inferToolMetaFromArgs, g as stripMinimaxToolCallXml, h as stripDowngradedToolCallText, i as coerceImageModelConfig, l as extractThinkingFromTaggedStream, m as promoteThinkingTagsToBlocks, o as resolveProviderVisionModelFromConfig, p as isAssistantMessage, r as coerceImageAssistantText, s as extractAssistantText$1, u as extractThinkingFromTaggedText, v as stripReasoningTagsFromText, x as extractTextFromChatContent, y as findCodeRegions } from "./image-BfqphdQM.js";
75
+ import { n as withStrictGuardedFetchMode, r as withTrustedEnvProxyGuardedFetchMode, t as fetchWithSsrFGuard } from "./fetch-guard-Csbz9pui.js";
76
+ import { S as minimaxUnderstandImage, _ as stripThinkingTagsFromText, a as decodeDataUrl, b as isInsideCode, c as extractAssistantThinking, d as formatReasoningMessage, f as inferToolMetaFromArgs, g as stripMinimaxToolCallXml, h as stripDowngradedToolCallText, i as coerceImageModelConfig, l as extractThinkingFromTaggedStream, m as promoteThinkingTagsToBlocks, o as resolveProviderVisionModelFromConfig, p as isAssistantMessage, r as coerceImageAssistantText, s as extractAssistantText$1, u as extractThinkingFromTaggedText, v as stripReasoningTagsFromText, x as extractTextFromChatContent, y as findCodeRegions } from "./image-BjuH1GKB.js";
77
77
  import { n as formatToolSummary, r as resolveToolDisplay } from "./tool-display-0M664wep.js";
78
78
  import { t as makeProxyFetch } from "./proxy-fetch-DEHZt1Tx.js";
79
- import { a as resolveAgentIdentity, i as resolveAckReaction, o as resolveEffectiveMessagesConfig, r as resolveResponsePrefixTemplate, s as resolveHumanDelayConfig, t as createReplyPrefixOptions } from "./reply-prefix-DpXMFuAa.js";
79
+ import { a as resolveAgentIdentity, i as resolveAckReaction, o as resolveEffectiveMessagesConfig, r as resolveResponsePrefixTemplate, s as resolveHumanDelayConfig, t as createReplyPrefixOptions } from "./reply-prefix-H_GSyyzN.js";
80
80
  import { a as chunkText, c as resolveChunkMode, d as isSafeFenceBreak, f as parseFenceSpans, i as chunkMarkdownTextWithMode, l as resolveTextChunkLimit, o as chunkTextWithMode, r as chunkMarkdownText, t as chunkByNewline, u as findFenceSpanAt } from "./chunk-kLPohhLl.js";
81
- import { n as resolveMarkdownTableMode } from "./markdown-tables-BYHgyUjA.js";
82
- import { a as loadWebMedia, i as getDefaultLocalRoots, o as loadWebMediaRaw } from "./ir-DziC-P4Z.js";
83
- import { a as ToolInputError, c as imageResultFromFile, d as readNumberParam, f as readReactionParams, h as readStringParam, l as jsonResult, m as readStringOrNumberParam, n as missingTargetError, o as createActionGate, p as readStringArrayParam, r as unknownTargetError, s as imageResult, t as ambiguousTargetError, u as parseAvailableTags } from "./target-errors-C5LA-JI-.js";
84
- import { a as resolveNativeSkillsEnabled, i as resolveNativeCommandsEnabled, n as isNativeCommandsExplicitlyDisabled, r as isRestartEnabled, t as isCommandFlagEnabled } from "./commands-C67IbXs7.js";
85
- import { a as listChatCommands, c as listNativeCommandSpecsForConfig, d as parseCommandArgs, f as resolveCommandArgChoices, h as shouldHandleTextCommands, i as isCommandEnabled, l as maybeResolveTextAlias, m as serializeCommandArgs, o as listChatCommandsForConfig, p as resolveCommandArgMenu, r as findCommandByNativeName, s as listNativeCommandSpecs, t as buildCommandTextFromArgs, u as normalizeCommandBody } from "./commands-registry-D0_D5hFV.js";
81
+ import { n as resolveMarkdownTableMode } from "./markdown-tables-DQlQMRGZ.js";
82
+ import { a as loadWebMedia, i as getDefaultLocalRoots, o as loadWebMediaRaw } from "./ir-CEwBpxhC.js";
83
+ import { a as ToolInputError, c as imageResultFromFile, d as readNumberParam, f as readReactionParams, h as readStringParam, l as jsonResult, m as readStringOrNumberParam, n as missingTargetError, o as createActionGate, p as readStringArrayParam, r as unknownTargetError, s as imageResult, t as ambiguousTargetError, u as parseAvailableTags } from "./target-errors-DPJ9HFp9.js";
84
+ import { a as resolveNativeSkillsEnabled, i as resolveNativeCommandsEnabled, n as isNativeCommandsExplicitlyDisabled, r as isRestartEnabled, t as isCommandFlagEnabled } from "./commands-d8L0zY8O.js";
85
+ import { a as listChatCommands, c as listNativeCommandSpecsForConfig, d as parseCommandArgs, f as resolveCommandArgChoices, h as shouldHandleTextCommands, i as isCommandEnabled, l as maybeResolveTextAlias, m as serializeCommandArgs, o as listChatCommandsForConfig, p as resolveCommandArgMenu, r as findCommandByNativeName, s as listNativeCommandSpecs, t as buildCommandTextFromArgs, u as normalizeCommandBody } from "./commands-registry-C78O6aNi.js";
86
86
  import { r as normalizeInboundTextNewlines, t as finalizeInboundContext } from "./inbound-context-sjEbnCyN.js";
87
87
  import { n as wrapFetchWithAbortSignal, t as resolveFetch } from "./fetch-BM2hI5N6.js";
88
88
  import { n as retryAsync } from "./retry-DwXRBpwv.js";
89
89
  import { n as formatTimeAgo } from "./format-relative-DlCMhQXD.js";
90
- import { c as readJsonFileWithFallback, d as listPairingChannels, i as readChannelAllowFromStore, l as writeJsonFileAtomically, o as removeChannelAllowFromStoreEntry, s as upsertChannelPairingRequest, t as addChannelAllowFromStoreEntry } from "./pairing-store-BfzlN-z9.js";
90
+ import { c as readJsonFileWithFallback, d as listPairingChannels, i as readChannelAllowFromStore, l as writeJsonFileAtomically, o as removeChannelAllowFromStoreEntry, s as upsertChannelPairingRequest, t as addChannelAllowFromStoreEntry } from "./pairing-store-rFuiIoGM.js";
91
91
  import { d as resolveExecApprovals, f as resolveExecApprovalsFromFile, i as maxAsk, l as recordAllowlistUse, n as addAllowlistEntry, o as minSecurity, u as requiresExecApproval } from "./exec-approvals-HRn5F9dF.js";
92
- import { C as mergePathPrepend, S as findPathKey, a as canvasSnapshotTempPath, b as buildNodeShellCommand, c as parseCameraClipPayload, d as writeCameraClipPayloadToFile, f as writeCameraPayloadToFile, i as parseEnvPairs, l as parseCameraSnapPayload, n as screenRecordTempPath, o as parseCanvasSnapshotPayload, p as parsePreparedSystemRunPayload, r as writeScreenRecordToFile, s as cameraTempPath, t as parseScreenRecordPayload, u as writeBase64ToFile, w as normalizePathPrepend, x as applyPathPrepend } from "./nodes-screen-DcxCMjOs.js";
92
+ import { C as mergePathPrepend, S as findPathKey, a as canvasSnapshotTempPath, b as buildNodeShellCommand, c as parseCameraClipPayload, d as writeCameraClipPayloadToFile, f as writeCameraPayloadToFile, i as parseEnvPairs, l as parseCameraSnapPayload, n as screenRecordTempPath, o as parseCanvasSnapshotPayload, p as parsePreparedSystemRunPayload, r as writeScreenRecordToFile, s as cameraTempPath, t as parseScreenRecordPayload, u as writeBase64ToFile, w as normalizePathPrepend, x as applyPathPrepend } from "./nodes-screen-BHwVUMr8.js";
93
93
  import { t as killProcessTree$1 } from "./kill-tree-BI7OGmGb.js";
94
- import { t as formatExecCommand } from "./system-run-command-GKGzGztn.js";
94
+ import { t as formatExecCommand } from "./system-run-command-XHAlbx5q.js";
95
95
  import { i as parsePairingList, n as resolveNodeIdFromNodeList, r as parseNodeList, t as resolveNodeFromNodeList } from "./node-resolve-DCXbzdeZ.js";
96
96
  import { i as formatDurationSeconds, r as formatDurationPrecise, t as formatDurationCompact$1 } from "./format-duration-B8vujEIl.js";
97
- import { a as loadCombinedSessionStoreForGateway, d as resolveContextTokensForModel, u as lookupContextTokens } from "./session-utils-BncMg1bn.js";
97
+ import { a as loadCombinedSessionStoreForGateway, d as resolveContextTokensForModel, u as lookupContextTokens } from "./session-utils-DxaIoRMp.js";
98
98
  import { c as hasNonzeroUsage, l as makeZeroUsageSnapshot, n as loadCostUsageSummary, o as derivePromptTokens, r as loadSessionCostSummary, s as deriveSessionTotalTokens, u as normalizeUsage } from "./session-cost-usage-BCEcVVJ6.js";
99
99
  import { i as resolveModelCostConfig, n as formatTokenCount$2, r as formatUsd, t as estimateUsageCost } from "./usage-format-JlIz56oG.js";
100
- import { b as ensureSkillsWatcher, i as resolveSkillCommandInvocation, n as listSkillCommandsForAgents, o as getRemoteSkillEligibility, r as listSkillCommandsForWorkspace, t as listReservedChatSlashCommandNames, x as getSkillsSnapshotVersion } from "./skill-commands-CYucDd3C.js";
100
+ import { b as ensureSkillsWatcher, i as resolveSkillCommandInvocation, n as listSkillCommandsForAgents, o as getRemoteSkillEligibility, r as listSkillCommandsForWorkspace, t as listReservedChatSlashCommandNames, x as getSkillsSnapshotVersion } from "./skill-commands-Cpr3Poo2.js";
101
101
  import { n as recordChannelActivity, r as createDiscordRetryRunner, t as getChannelActivity } from "./channel-activity-C-cvytUe.js";
102
102
  import { t as buildOutboundMediaLoadOptions } from "./load-options-CDYtue-3.js";
103
103
  import { n as normalizePollInput } from "./polls-CWOwBT3z.js";
104
- import { t as convertMarkdownTables } from "./tables-DVXe5x1J.js";
104
+ import { t as convertMarkdownTables } from "./tables-BOsRa7CS.js";
105
105
  import { f as resolveGatewaySystemdServiceName, l as resolveGatewayLaunchAgentLabel } from "./constants-BLYfoMmL.js";
106
106
  import { i as parseAbsoluteTimeMs, r as resolveDefaultCronStaggerMs, t as normalizeCronStaggerMs } from "./stagger-Cek4Eizw.js";
107
- import { n as resolveMessageChannelSelection, t as listConfiguredMessageChannels } from "./channel-selection-D8KYuWir.js";
108
- import { t as applyPluginAutoEnable } from "./plugin-auto-enable-DER6qA6X.js";
109
- import { a as resolveSignalRpcContext, c as streamSignalEvents, n as sendReadReceiptSignal, o as signalCheck, r as sendTypingSignal, s as signalRpcRequest, t as sendMessageSignal } from "./send-CQJKPGw4.js";
110
- import { a as formatIMessageChatTarget, c as parseIMessageTarget, i as DEFAULT_IMESSAGE_PROBE_TIMEOUT_MS, o as isAllowedIMessageSender, r as createIMessageRpcClient, s as normalizeIMessageHandle, t as sendMessageIMessage } from "./send-e1X1pfda.js";
111
- import { n as resolveAgentRoute, t as buildAgentSessionKey } from "./resolve-route-Cnto8LMw.js";
107
+ import { n as resolveMessageChannelSelection, t as listConfiguredMessageChannels } from "./channel-selection-DGtYwfd7.js";
108
+ import { t as applyPluginAutoEnable } from "./plugin-auto-enable-S_lBQAKI.js";
109
+ import { a as resolveSignalRpcContext, c as streamSignalEvents, n as sendReadReceiptSignal, o as signalCheck, r as sendTypingSignal, s as signalRpcRequest, t as sendMessageSignal } from "./send-CZ2O-5pP.js";
110
+ import { a as formatIMessageChatTarget, c as parseIMessageTarget, i as DEFAULT_IMESSAGE_PROBE_TIMEOUT_MS, o as isAllowedIMessageSender, r as createIMessageRpcClient, s as normalizeIMessageHandle, t as sendMessageIMessage } from "./send-BCLu4NEE.js";
111
+ import { n as resolveAgentRoute, t as buildAgentSessionKey } from "./resolve-route-ByAwAiq5.js";
112
112
  import { n as isSenderIdAllowed, r as mergeDmAllowFromSources, t as firstDefined$1 } from "./allow-from-CrohZBvI.js";
113
113
  import { t as parseTimeoutMs } from "./parse-timeout-BLJlOyi9.js";
114
114
  import { i as redactIdentifier, t as getActiveWebListener } from "./active-listener-DNm8Tp5o.js";
115
- import { a as resolveSubagentToolPolicy, c as readStoreAllowFromForDmPolicy, d as resolveDmGroupAccessWithLists, f as resolvePinnedMainDmOwnerFromAllowlist, i as resolveGroupToolPolicy, m as resolveControlCommandGate, n as isToolAllowedByPolicies, p as resolveCommandAuthorizedFromAuthorizers, r as resolveEffectiveToolPolicy, s as DM_GROUP_ACCESS_REASON, t as filterToolsByPolicy } from "./pi-tools.policy-BH0D2kX0.js";
115
+ import { a as resolveSubagentToolPolicy, c as readStoreAllowFromForDmPolicy, d as resolveDmGroupAccessWithLists, f as resolvePinnedMainDmOwnerFromAllowlist, i as resolveGroupToolPolicy, m as resolveControlCommandGate, n as isToolAllowedByPolicies, p as resolveCommandAuthorizedFromAuthorizers, r as resolveEffectiveToolPolicy, s as DM_GROUP_ACCESS_REASON, t as filterToolsByPolicy } from "./pi-tools.policy-DRW8ya1z.js";
116
116
  import { n as isDangerousNameMatchingEnabled } from "./dangerous-name-matching-CffcsSiI.js";
117
- import { a as createReplyReferencePlanner, i as resolveSlackThreadTs, n as deliverReplies$3, t as createSlackReplyDeliveryPlan } from "./replies-Ckd7Lwt0.js";
118
- import { r as detectBinary } from "./onboard-helpers-CczYNQDJ.js";
119
- import { t as resolvePairingIdLabel } from "./pairing-labels-CFSUHOmk.js";
120
- import { t as recordInboundSessionMetaSafe } from "./session-meta-DF1WT4cr.js";
121
- import { i as resolveMemoryBackendConfig, n as registerMemoryCli, r as getMemorySearchManager } from "./memory-cli-CuT-iG2F.js";
122
- import { r as resolveMemorySearchConfig } from "./manager-7hZXEYTj.js";
117
+ import { a as createReplyReferencePlanner, i as resolveSlackThreadTs, n as deliverReplies$3, t as createSlackReplyDeliveryPlan } from "./replies-BDnb0prE.js";
118
+ import { r as detectBinary } from "./onboard-helpers-D8lLbK3A.js";
119
+ import { t as resolvePairingIdLabel } from "./pairing-labels-x4akYNb7.js";
120
+ import { t as recordInboundSessionMetaSafe } from "./session-meta-Cew1QAYN.js";
121
+ import { i as resolveMemoryBackendConfig, n as registerMemoryCli, r as getMemorySearchManager } from "./memory-cli-BUrf60e_.js";
122
+ import { r as resolveMemorySearchConfig } from "./manager-DWpiNvlg.js";
123
123
  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-Bs0PeDpo.js";
124
124
  import { createRequire } from "node:module";
125
125
  import { execFileSync, spawn, spawnSync } from "node:child_process";
@@ -129,7 +129,7 @@ import os, { homedir } from "node:os";
129
129
  import fs, { existsSync, mkdirSync, mkdtempSync, promises, readFileSync, renameSync, rmSync, statSync, unlinkSync, writeFileSync } from "node:fs";
130
130
  import JSON5 from "json5";
131
131
  import { inspect } from "node:util";
132
- import fs$1 from "node:fs/promises";
132
+ import fsPromises from "node:fs/promises";
133
133
  import { complete, completeSimple, createAssistantMessageEventStream, streamSimple } from "@mariozechner/pi-ai";
134
134
  import crypto, { createHash, createHmac, randomBytes, randomUUID } from "node:crypto";
135
135
  import { CURRENT_SESSION_VERSION, DefaultResourceLoader, SessionManager, SettingsManager, codingTools, createAgentSession, createEditTool, createReadTool, createWriteTool, estimateTokens, generateSummary, readTool } from "@mariozechner/pi-coding-agent";
@@ -5074,7 +5074,7 @@ async function resolveAgentSessionDirs(stateDir) {
5074
5074
  const agentsDir = path.join(stateDir, "agents");
5075
5075
  let entries = [];
5076
5076
  try {
5077
- entries = await fs$1.readdir(agentsDir, { withFileTypes: true });
5077
+ entries = await fsPromises.readdir(agentsDir, { withFileTypes: true });
5078
5078
  } catch (err) {
5079
5079
  if (err.code === "ENOENT") return [];
5080
5080
  throw err;
@@ -8141,7 +8141,7 @@ async function sendTranscriptEcho(params) {
8141
8141
  }
8142
8142
  const text = formatEchoTranscript(transcript, params.format ?? DEFAULT_ECHO_TRANSCRIPT_FORMAT);
8143
8143
  try {
8144
- const { deliverOutboundPayloads } = await import("./deliver-DTgCZWjU.js").then((n) => n.n);
8144
+ const { deliverOutboundPayloads } = await import("./deliver-H0xCFj4j.js").then((n) => n.n);
8145
8145
  await deliverOutboundPayloads({
8146
8146
  cfg,
8147
8147
  channel: normalizedChannel,
@@ -12943,7 +12943,7 @@ async function resolveSandboxWorkdir(params) {
12943
12943
  cwd: process.cwd(),
12944
12944
  root: params.sandbox.workspaceDir
12945
12945
  });
12946
- if (!(await fs$1.stat(resolved.resolved)).isDirectory()) throw new Error("workdir is not a directory");
12946
+ if (!(await fsPromises.stat(resolved.resolved)).isDirectory()) throw new Error("workdir is not a directory");
12947
12947
  const relative = resolved.relative ? resolved.relative.split(path.sep).join(path.posix.sep) : "";
12948
12948
  const containerWorkdir = relative ? path.posix.join(params.sandbox.containerWorkdir, relative) : params.sandbox.containerWorkdir;
12949
12949
  return {
@@ -14187,13 +14187,13 @@ async function validateScriptFileForShellBleed(params) {
14187
14187
  cwd: params.workdir,
14188
14188
  root: params.workdir
14189
14189
  });
14190
- stat = await fs$1.stat(absPath);
14190
+ stat = await fsPromises.stat(absPath);
14191
14191
  } catch {
14192
14192
  return;
14193
14193
  }
14194
14194
  if (!stat.isFile()) return;
14195
14195
  if (stat.size > 512 * 1024) return;
14196
- const content = await fs$1.readFile(absPath, "utf-8");
14196
+ const content = await fsPromises.readFile(absPath, "utf-8");
14197
14197
  const first = /\$[A-Z_][A-Z0-9_]{1,}/g.exec(content);
14198
14198
  if (first) {
14199
14199
  const idx = first.index;
@@ -23282,7 +23282,7 @@ async function routeReply(params) {
23282
23282
  const resolvedReplyToId = replyToId ?? (channelId === "slack" && threadId != null && threadId !== "" ? String(threadId) : void 0);
23283
23283
  const resolvedThreadId = channelId === "slack" ? null : threadId ?? null;
23284
23284
  try {
23285
- const { deliverOutboundPayloads } = await import("./deliver-DTgCZWjU.js").then((n) => n.n);
23285
+ const { deliverOutboundPayloads } = await import("./deliver-H0xCFj4j.js").then((n) => n.n);
23286
23286
  const outboundSession = buildOutboundSessionContext({
23287
23287
  cfg,
23288
23288
  agentId: resolvedAgentId,
@@ -23362,7 +23362,7 @@ async function emitResetCommandHooks(params) {
23362
23362
  try {
23363
23363
  const messages = [];
23364
23364
  if (sessionFile) {
23365
- const content = await fs$1.readFile(sessionFile, "utf-8");
23365
+ const content = await fsPromises.readFile(sessionFile, "utf-8");
23366
23366
  for (const line of content.split("\n")) {
23367
23367
  if (!line.trim()) continue;
23368
23368
  try {
@@ -24148,7 +24148,7 @@ async function createModelSelectionState(params) {
24148
24148
  }
24149
24149
  }
24150
24150
  if (sessionEntry && sessionStore && sessionKey && sessionEntry.authProfileOverride) {
24151
- const { ensureAuthProfileStore } = await import("./auth-profiles-D_x1_5v_.js").then((n) => n.t);
24151
+ const { ensureAuthProfileStore } = await import("./auth-profiles-CyG9VwU_.js").then((n) => n.t);
24152
24152
  const profile = ensureAuthProfileStore(void 0, { allowKeychainPrompt: false }).profiles[sessionEntry.authProfileOverride];
24153
24153
  const providerKey = normalizeProviderId(provider);
24154
24154
  if (!profile || normalizeProviderId(profile.provider) !== providerKey) await clearSessionAuthProfileOverride({
@@ -27744,7 +27744,7 @@ async function readJsonlFromPath(jsonlPath) {
27744
27744
  if (shouldLogVerbose()) logVerbose(`Blocked canvas jsonlPath outside allowed roots: ${resolved}`);
27745
27745
  throw new Error("jsonlPath outside allowed roots");
27746
27746
  }
27747
- const canonical = await fs$1.realpath(resolved).catch(() => resolved);
27747
+ const canonical = await fsPromises.realpath(resolved).catch(() => resolved);
27748
27748
  if (!isInboundPathAllowed({
27749
27749
  filePath: canonical,
27750
27750
  roots
@@ -27752,7 +27752,7 @@ async function readJsonlFromPath(jsonlPath) {
27752
27752
  if (shouldLogVerbose()) logVerbose(`Blocked canvas jsonlPath outside allowed roots: ${canonical}`);
27753
27753
  throw new Error("jsonlPath outside allowed roots");
27754
27754
  }
27755
- return await fs$1.readFile(canonical, "utf8");
27755
+ return await fsPromises.readFile(canonical, "utf8");
27756
27756
  }
27757
27757
  const CanvasToolSchema = Type.Object({
27758
27758
  action: stringEnum(CANVAS_ACTIONS),
@@ -28567,27 +28567,27 @@ function resolveRestartSentinelPath(env = process.env) {
28567
28567
  }
28568
28568
  async function writeRestartSentinel(payload, env = process.env) {
28569
28569
  const filePath = resolveRestartSentinelPath(env);
28570
- await fs$1.mkdir(path.dirname(filePath), { recursive: true });
28570
+ await fsPromises.mkdir(path.dirname(filePath), { recursive: true });
28571
28571
  const data = {
28572
28572
  version: 1,
28573
28573
  payload
28574
28574
  };
28575
- await fs$1.writeFile(filePath, `${JSON.stringify(data, null, 2)}\n`, "utf-8");
28575
+ await fsPromises.writeFile(filePath, `${JSON.stringify(data, null, 2)}\n`, "utf-8");
28576
28576
  return filePath;
28577
28577
  }
28578
28578
  async function readRestartSentinel(env = process.env) {
28579
28579
  const filePath = resolveRestartSentinelPath(env);
28580
28580
  try {
28581
- const raw = await fs$1.readFile(filePath, "utf-8");
28581
+ const raw = await fsPromises.readFile(filePath, "utf-8");
28582
28582
  let parsed;
28583
28583
  try {
28584
28584
  parsed = JSON.parse(raw);
28585
28585
  } catch {
28586
- await fs$1.unlink(filePath).catch(() => {});
28586
+ await fsPromises.unlink(filePath).catch(() => {});
28587
28587
  return null;
28588
28588
  }
28589
28589
  if (!parsed || parsed.version !== 1 || !parsed.payload) {
28590
- await fs$1.unlink(filePath).catch(() => {});
28590
+ await fsPromises.unlink(filePath).catch(() => {});
28591
28591
  return null;
28592
28592
  }
28593
28593
  return parsed;
@@ -28599,7 +28599,7 @@ async function consumeRestartSentinel(env = process.env) {
28599
28599
  const filePath = resolveRestartSentinelPath(env);
28600
28600
  const parsed = await readRestartSentinel(env);
28601
28601
  if (!parsed) return null;
28602
- await fs$1.unlink(filePath).catch(() => {});
28602
+ await fsPromises.unlink(filePath).catch(() => {});
28603
28603
  return parsed;
28604
28604
  }
28605
28605
  function formatRestartSentinelMessage(payload) {
@@ -38790,18 +38790,18 @@ function appendImagePathsToPrompt(prompt, paths) {
38790
38790
  return `${trimmed}${trimmed ? "\n\n" : ""}${paths.join("\n")}`;
38791
38791
  }
38792
38792
  async function writeCliImages(images) {
38793
- const tempDir = await fs$1.mkdtemp(path.join(os.tmpdir(), "openclaw-cli-images-"));
38793
+ const tempDir = await fsPromises.mkdtemp(path.join(os.tmpdir(), "openclaw-cli-images-"));
38794
38794
  const paths = [];
38795
38795
  for (let i = 0; i < images.length; i += 1) {
38796
38796
  const image = images[i];
38797
38797
  const ext = resolveImageExtension(image.mimeType);
38798
38798
  const filePath = path.join(tempDir, `image-${i + 1}.${ext}`);
38799
38799
  const buffer = Buffer.from(image.data, "base64");
38800
- await fs$1.writeFile(filePath, buffer, { mode: 384 });
38800
+ await fsPromises.writeFile(filePath, buffer, { mode: 384 });
38801
38801
  paths.push(filePath);
38802
38802
  }
38803
38803
  const cleanup = async () => {
38804
- await fs$1.rm(tempDir, {
38804
+ await fsPromises.rm(tempDir, {
38805
38805
  recursive: true,
38806
38806
  force: true
38807
38807
  });
@@ -42704,7 +42704,7 @@ async function deliverSessionMaintenanceWarning(params) {
42704
42704
  return;
42705
42705
  }
42706
42706
  try {
42707
- const { deliverOutboundPayloads } = await import("./deliver-DTgCZWjU.js").then((n) => n.n);
42707
+ const { deliverOutboundPayloads } = await import("./deliver-H0xCFj4j.js").then((n) => n.n);
42708
42708
  const outboundSession = buildOutboundSessionContext({
42709
42709
  cfg: params.cfg,
42710
42710
  sessionKey: params.sessionKey
@@ -43211,7 +43211,7 @@ async function stageSandboxMedia(params) {
43211
43211
  const remoteMediaCacheDir = ctx.MediaRemoteHost ? path.join(CONFIG_DIR, "media", "remote-cache", sessionKey) : null;
43212
43212
  const effectiveWorkspaceDir = sandbox?.workspaceDir ?? remoteMediaCacheDir;
43213
43213
  if (!effectiveWorkspaceDir) return;
43214
- await fs$1.mkdir(effectiveWorkspaceDir, { recursive: true });
43214
+ await fsPromises.mkdir(effectiveWorkspaceDir, { recursive: true });
43215
43215
  const remoteAttachmentRoots = resolveIMessageRemoteAttachmentRoots({
43216
43216
  cfg,
43217
43217
  accountId: ctx.AccountId
@@ -43270,8 +43270,8 @@ async function stageLocalFileIntoRoot(params) {
43270
43270
  }
43271
43271
  async function stageRemoteFileIntoRoot(params) {
43272
43272
  const tmpRoot = resolvePreferredOpenClawTmpDir();
43273
- await fs$1.mkdir(tmpRoot, { recursive: true });
43274
- const tmpDir = await fs$1.mkdtemp(path.join(tmpRoot, "stage-sandbox-media-"));
43273
+ await fsPromises.mkdir(tmpRoot, { recursive: true });
43274
+ const tmpDir = await fsPromises.mkdtemp(path.join(tmpRoot, "stage-sandbox-media-"));
43275
43275
  const tmpPath = path.join(tmpDir, "download");
43276
43276
  try {
43277
43277
  await scpFile(params.remoteHost, params.remotePath, tmpPath);
@@ -43282,7 +43282,7 @@ async function stageRemoteFileIntoRoot(params) {
43282
43282
  maxBytes: params.maxBytes
43283
43283
  });
43284
43284
  } finally {
43285
- await fs$1.rm(tmpDir, {
43285
+ await fsPromises.rm(tmpDir, {
43286
43286
  recursive: true,
43287
43287
  force: true
43288
43288
  }).catch(() => {});
@@ -47628,8 +47628,8 @@ async function describeStickerImage(params) {
47628
47628
  const { provider, model } = resolved;
47629
47629
  logVerbose(`telegram: describing sticker with ${provider}/${model}`);
47630
47630
  try {
47631
- const buffer = await fs$1.readFile(imagePath);
47632
- const { describeImageWithModel } = await import("./image-BfqphdQM.js").then((n) => n.n);
47631
+ const buffer = await fsPromises.readFile(imagePath);
47632
+ const { describeImageWithModel } = await import("./image-BjuH1GKB.js").then((n) => n.n);
47633
47633
  return (await describeImageWithModel({
47634
47634
  buffer,
47635
47635
  fileName: "sticker.webp",
@@ -49218,7 +49218,7 @@ async function resolveDiscordPreflightAudioMentionContext(params) {
49218
49218
  const needsPreflightTranscription = !params.isDirectMessage && params.shouldRequireMention && hasAudioAttachment && !hasTypedText && params.mentionRegexes.length > 0;
49219
49219
  let transcript;
49220
49220
  if (needsPreflightTranscription) try {
49221
- const { transcribeFirstAudio } = await import("./audio-preflight-59K4nxSA.js");
49221
+ const { transcribeFirstAudio } = await import("./audio-preflight-SRgix4XS.js");
49222
49222
  const audioUrls = audioAttachments.map((att) => att.url).filter((url) => typeof url === "string" && url.length > 0);
49223
49223
  if (audioUrls.length > 0) transcript = await transcribeFirstAudio({
49224
49224
  ctx: {
@@ -53794,27 +53794,27 @@ function createOutboundSendDepsFromCliSource(deps) {
53794
53794
  function createDefaultDeps() {
53795
53795
  return {
53796
53796
  sendMessageWhatsApp: async (...args) => {
53797
- const { sendMessageWhatsApp } = await import("./web-DNL22pwf.js");
53797
+ const { sendMessageWhatsApp } = await import("./web-B4yuhy9a.js");
53798
53798
  return await sendMessageWhatsApp(...args);
53799
53799
  },
53800
53800
  sendMessageTelegram: async (...args) => {
53801
- const { sendMessageTelegram } = await import("./send-sj8Hu26l.js").then((n) => n.l);
53801
+ const { sendMessageTelegram } = await import("./send-D0X-8aPh.js").then((n) => n.l);
53802
53802
  return await sendMessageTelegram(...args);
53803
53803
  },
53804
53804
  sendMessageDiscord: async (...args) => {
53805
- const { sendMessageDiscord } = await import("./send-BpXRh0BM.js").then((n) => n.t);
53805
+ const { sendMessageDiscord } = await import("./send-BTswySBz.js").then((n) => n.t);
53806
53806
  return await sendMessageDiscord(...args);
53807
53807
  },
53808
53808
  sendMessageSlack: async (...args) => {
53809
- const { sendMessageSlack } = await import("./send-Cpaj_bKB.js").then((n) => n.n);
53809
+ const { sendMessageSlack } = await import("./send-ZyB64ntO.js").then((n) => n.n);
53810
53810
  return await sendMessageSlack(...args);
53811
53811
  },
53812
53812
  sendMessageSignal: async (...args) => {
53813
- const { sendMessageSignal } = await import("./send-CQJKPGw4.js").then((n) => n.i);
53813
+ const { sendMessageSignal } = await import("./send-CZ2O-5pP.js").then((n) => n.i);
53814
53814
  return await sendMessageSignal(...args);
53815
53815
  },
53816
53816
  sendMessageIMessage: async (...args) => {
53817
- const { sendMessageIMessage } = await import("./send-e1X1pfda.js").then((n) => n.n);
53817
+ const { sendMessageIMessage } = await import("./send-BCLu4NEE.js").then((n) => n.n);
53818
53818
  return await sendMessageIMessage(...args);
53819
53819
  }
53820
53820
  };
@@ -54955,10 +54955,10 @@ function estimateDurationSeconds(pcm) {
54955
54955
  return pcm.length / (bytesPerSample * SAMPLE_RATE);
54956
54956
  }
54957
54957
  async function writeWavFile(pcm) {
54958
- const tempDir = await fs$1.mkdtemp(path.join(resolvePreferredOpenClawTmpDir(), "discord-voice-"));
54958
+ const tempDir = await fsPromises.mkdtemp(path.join(resolvePreferredOpenClawTmpDir(), "discord-voice-"));
54959
54959
  const filePath = path.join(tempDir, `segment-${randomUUID()}.wav`);
54960
54960
  const wav = buildWavBuffer(pcm);
54961
- await fs$1.writeFile(filePath, wav);
54961
+ await fsPromises.writeFile(filePath, wav);
54962
54962
  scheduleTempCleanup(tempDir);
54963
54963
  return {
54964
54964
  path: filePath,
@@ -54967,7 +54967,7 @@ async function writeWavFile(pcm) {
54967
54967
  }
54968
54968
  function scheduleTempCleanup(tempDir, delayMs = 1800 * 1e3) {
54969
54969
  setTimeout(() => {
54970
- fs$1.rm(tempDir, {
54970
+ fsPromises.rm(tempDir, {
54971
54971
  recursive: true,
54972
54972
  force: true
54973
54973
  }).catch((err) => {
@@ -59264,7 +59264,7 @@ function normalizeAllowList$1(list) {
59264
59264
  async function detectRemoteHostFromCliPath(cliPath) {
59265
59265
  try {
59266
59266
  const expanded = cliPath.startsWith("~") ? cliPath.replace(/^~/, process.env.HOME ?? "") : cliPath;
59267
- const content = await fs$1.readFile(expanded, "utf8");
59267
+ const content = await fsPromises.readFile(expanded, "utf8");
59268
59268
  const userHostMatch = content.match(/\bssh\b[^\n]*?\s+([a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+)/);
59269
59269
  if (userHostMatch) return userHostMatch[1];
59270
59270
  return content.match(/\bssh\b[^\n]*?\s+([a-zA-Z][a-zA-Z0-9._-]*)\s+\S*\bimsg\b/)?.[1];
@@ -65886,7 +65886,7 @@ function readSlackExternalArgMenuToken(raw) {
65886
65886
  }
65887
65887
  let commandsRegistry;
65888
65888
  async function getCommandsRegistry() {
65889
- if (!commandsRegistry) commandsRegistry = await import("./commands-registry-D0_D5hFV.js").then((n) => n.n);
65889
+ if (!commandsRegistry) commandsRegistry = await import("./commands-registry-C78O6aNi.js").then((n) => n.n);
65890
65890
  return commandsRegistry;
65891
65891
  }
65892
65892
  function encodeSlackCommandArgValue(parts) {
@@ -66216,14 +66216,14 @@ async function registerSlackMonitorSlashCommands(params) {
66216
66216
  const channelName = channelInfo?.name;
66217
66217
  const roomLabel = channelName ? `#${channelName}` : `#${command.channel_id}`;
66218
66218
  const [{ resolveAgentRoute }, { finalizeInboundContext }, { dispatchReplyWithDispatcher }] = await Promise.all([
66219
- import("./resolve-route-Cnto8LMw.js").then((n) => n.r),
66219
+ import("./resolve-route-ByAwAiq5.js").then((n) => n.r),
66220
66220
  import("./inbound-context-sjEbnCyN.js").then((n) => n.n),
66221
66221
  Promise.resolve().then(() => provider_dispatcher_exports)
66222
66222
  ]);
66223
66223
  const [{ resolveConversationLabel }, { createReplyPrefixOptions }, { recordInboundSessionMetaSafe }] = await Promise.all([
66224
66224
  import("./conversation-label-DarEmZ42.js").then((n) => n.t),
66225
- import("./reply-prefix-DpXMFuAa.js").then((n) => n.n),
66226
- import("./session-meta-DF1WT4cr.js").then((n) => n.n)
66225
+ import("./reply-prefix-H_GSyyzN.js").then((n) => n.n),
66226
+ import("./session-meta-Cew1QAYN.js").then((n) => n.n)
66227
66227
  ]);
66228
66228
  const route = resolveAgentRoute({
66229
66229
  cfg,
@@ -66288,9 +66288,9 @@ async function registerSlackMonitorSlashCommands(params) {
66288
66288
  });
66289
66289
  const deliverSlashPayloads = async (replies) => {
66290
66290
  const [{ deliverSlackSlashReplies }, { resolveChunkMode }, { resolveMarkdownTableMode }] = await Promise.all([
66291
- import("./replies-Ckd7Lwt0.js").then((n) => n.r),
66291
+ import("./replies-BDnb0prE.js").then((n) => n.r),
66292
66292
  import("./chunk-kLPohhLl.js").then((n) => n.s),
66293
- import("./markdown-tables-BYHgyUjA.js").then((n) => n.t)
66293
+ import("./markdown-tables-DQlQMRGZ.js").then((n) => n.t)
66294
66294
  ]);
66295
66295
  await deliverSlackSlashReplies({
66296
66296
  replies,
@@ -66343,7 +66343,7 @@ async function registerSlackMonitorSlashCommands(params) {
66343
66343
  let nativeCommands = [];
66344
66344
  if (nativeEnabled) {
66345
66345
  reg = await getCommandsRegistry();
66346
- const skillCommands = nativeSkillsEnabled ? (await import("./skill-commands-CYucDd3C.js").then((n) => n.a)).listSkillCommandsForAgents({ cfg }) : [];
66346
+ const skillCommands = nativeSkillsEnabled ? (await import("./skill-commands-Cpr3Poo2.js").then((n) => n.a)).listSkillCommandsForAgents({ cfg }) : [];
66347
66347
  nativeCommands = reg.listNativeCommandSpecsForConfig(cfg, {
66348
66348
  skillCommands,
66349
66349
  provider: "slack"
@@ -69252,7 +69252,7 @@ const buildTelegramMessageContext = async ({ primaryCtx, allMedia, replyMedia =
69252
69252
  const disableAudioPreflight = firstDefined$1(topicConfig?.disableAudioPreflight, groupConfig?.disableAudioPreflight) === true;
69253
69253
  let preflightTranscript;
69254
69254
  if (isGroup && requireMention && hasAudio && !hasUserText && mentionRegexes.length > 0 && !disableAudioPreflight) try {
69255
- const { transcribeFirstAudio } = await import("./audio-preflight-59K4nxSA.js");
69255
+ const { transcribeFirstAudio } = await import("./audio-preflight-SRgix4XS.js");
69256
69256
  preflightTranscript = await transcribeFirstAudio({
69257
69257
  ctx: {
69258
69258
  MediaPaths: allMedia.length > 0 ? allMedia.map((m) => m.path) : void 0,
@@ -70614,7 +70614,7 @@ function resolveCommandHashPath(accountId, botIdentity) {
70614
70614
  }
70615
70615
  async function readCachedCommandHash(accountId, botIdentity) {
70616
70616
  try {
70617
- return (await fs$1.readFile(resolveCommandHashPath(accountId, botIdentity), "utf-8")).trim();
70617
+ return (await fsPromises.readFile(resolveCommandHashPath(accountId, botIdentity), "utf-8")).trim();
70618
70618
  } catch {
70619
70619
  return null;
70620
70620
  }
@@ -70622,8 +70622,8 @@ async function readCachedCommandHash(accountId, botIdentity) {
70622
70622
  async function writeCachedCommandHash(accountId, botIdentity, hash) {
70623
70623
  const filePath = resolveCommandHashPath(accountId, botIdentity);
70624
70624
  try {
70625
- await fs$1.mkdir(path.dirname(filePath), { recursive: true });
70626
- await fs$1.writeFile(filePath, hash, "utf-8");
70625
+ await fsPromises.mkdir(path.dirname(filePath), { recursive: true });
70626
+ await fsPromises.writeFile(filePath, hash, "utf-8");
70627
70627
  } catch {}
70628
70628
  }
70629
70629
  function syncTelegramMenuCommands(params) {
@@ -71461,7 +71461,7 @@ function safeParseState(raw) {
71461
71461
  async function readTelegramUpdateOffset(params) {
71462
71462
  const filePath = resolveTelegramUpdateOffsetPath(params.accountId, params.env);
71463
71463
  try {
71464
- const parsed = safeParseState(await fs$1.readFile(filePath, "utf-8"));
71464
+ const parsed = safeParseState(await fsPromises.readFile(filePath, "utf-8"));
71465
71465
  const expectedBotId = extractBotIdFromToken(params.botToken);
71466
71466
  if (expectedBotId && parsed?.botId && parsed.botId !== expectedBotId) return null;
71467
71467
  if (expectedBotId && parsed?.botId === null) return null;
@@ -71485,7 +71485,7 @@ async function writeTelegramUpdateOffset(params) {
71485
71485
  async function deleteTelegramUpdateOffset(params) {
71486
71486
  const filePath = resolveTelegramUpdateOffsetPath(params.accountId, params.env);
71487
71487
  try {
71488
- await fs$1.unlink(filePath);
71488
+ await fsPromises.unlink(filePath);
71489
71489
  } catch (err) {
71490
71490
  if (err.code === "ENOENT") return;
71491
71491
  throw err;
@@ -71959,7 +71959,7 @@ function createWhatsAppLoginTool() {
71959
71959
  force: Type.Optional(Type.Boolean())
71960
71960
  }),
71961
71961
  execute: async (_toolCallId, args) => {
71962
- const { startWebLoginWithQr, waitForWebLogin } = await import("./login-qr-DUSyrCPW.js");
71962
+ const { startWebLoginWithQr, waitForWebLogin } = await import("./login-qr-CRjZn3ix.js");
71963
71963
  if ((args?.action ?? "start") === "wait") {
71964
71964
  const result = await waitForWebLogin({ timeoutMs: typeof args.timeoutMs === "number" ? args.timeoutMs : void 0 });
71965
71965
  return {
@@ -72034,23 +72034,23 @@ let webLoginQrPromise = null;
72034
72034
  let webChannelPromise = null;
72035
72035
  let whatsappActionsPromise = null;
72036
72036
  function loadWebOutbound() {
72037
- webOutboundPromise ??= import("./outbound-Dv-MM4iv.js").then((n) => n.t);
72037
+ webOutboundPromise ??= import("./outbound-CHyBoNxD.js").then((n) => n.t);
72038
72038
  return webOutboundPromise;
72039
72039
  }
72040
72040
  function loadWebLogin() {
72041
- webLoginPromise ??= import("./login-CYfV0FRr.js").then((n) => n.n);
72041
+ webLoginPromise ??= import("./login-I5RlwiJn.js").then((n) => n.n);
72042
72042
  return webLoginPromise;
72043
72043
  }
72044
72044
  function loadWebLoginQr() {
72045
- webLoginQrPromise ??= import("./login-qr-DUSyrCPW.js");
72045
+ webLoginQrPromise ??= import("./login-qr-CRjZn3ix.js");
72046
72046
  return webLoginQrPromise;
72047
72047
  }
72048
72048
  function loadWebChannel() {
72049
- webChannelPromise ??= import("./web-DNL22pwf.js");
72049
+ webChannelPromise ??= import("./web-B4yuhy9a.js");
72050
72050
  return webChannelPromise;
72051
72051
  }
72052
72052
  function loadWhatsAppActions() {
72053
- whatsappActionsPromise ??= import("./whatsapp-actions-B81EJMQI.js");
72053
+ whatsappActionsPromise ??= import("./whatsapp-actions-DUoWY7mE.js");
72054
72054
  return whatsappActionsPromise;
72055
72055
  }
72056
72056
  function createRuntimeWhatsApp() {
@@ -73093,7 +73093,7 @@ function resolvePluginTools(params) {
73093
73093
  //#endregion
73094
73094
  //#region src/agents/apply-patch-update.ts
73095
73095
  async function defaultReadFile(filePath) {
73096
- return fs$1.readFile(filePath, "utf8");
73096
+ return fsPromises.readFile(filePath, "utf8");
73097
73097
  }
73098
73098
  async function applyUpdateHunk(filePath, chunks, options) {
73099
73099
  const originalLines = (await (options?.readFile ?? defaultReadFile)(filePath).catch((err) => {
@@ -73414,7 +73414,7 @@ function resolvePatchFileOps(options) {
73414
73414
  const workspaceOnly = options.workspaceOnly !== false;
73415
73415
  return {
73416
73416
  readFile: async (filePath) => {
73417
- if (!workspaceOnly) return await fs$1.readFile(filePath, "utf8");
73417
+ if (!workspaceOnly) return await fsPromises.readFile(filePath, "utf8");
73418
73418
  const opened = await openBoundaryFile({
73419
73419
  absolutePath: filePath,
73420
73420
  rootPath: options.cwd,
@@ -73429,7 +73429,7 @@ function resolvePatchFileOps(options) {
73429
73429
  },
73430
73430
  writeFile: async (filePath, content) => {
73431
73431
  if (!workspaceOnly) {
73432
- await fs$1.writeFile(filePath, content, "utf8");
73432
+ await fsPromises.writeFile(filePath, content, "utf8");
73433
73433
  return;
73434
73434
  }
73435
73435
  const relative = toRelativeSandboxPath(options.cwd, filePath);
@@ -73440,8 +73440,8 @@ function resolvePatchFileOps(options) {
73440
73440
  encoding: "utf8"
73441
73441
  });
73442
73442
  },
73443
- remove: (filePath) => fs$1.rm(filePath),
73444
- mkdirp: (dir) => fs$1.mkdir(dir, { recursive: true }).then(() => {})
73443
+ remove: (filePath) => fsPromises.rm(filePath),
73444
+ mkdirp: (dir) => fsPromises.mkdir(dir, { recursive: true }).then(() => {})
73445
73445
  };
73446
73446
  }
73447
73447
  async function ensureDir(filePath, ops) {
@@ -73741,7 +73741,7 @@ async function runBeforeToolCallHook(args) {
73741
73741
  const params = args.params;
73742
73742
  if (args.ctx?.sessionKey) {
73743
73743
  const { getDiagnosticSessionState } = await import("./diagnostic-session-state-Bwj7TezN.js");
73744
- const { logToolLoopAction } = await import("./diagnostic-Bvatw1Xn.js").then((n) => n.n);
73744
+ const { logToolLoopAction } = await import("./diagnostic-DjxUqpmL.js").then((n) => n.n);
73745
73745
  const { detectToolCallLoop, recordToolCall } = await import("./tool-loop-detection-DLEs1CTw.js");
73746
73746
  const sessionState = getDiagnosticSessionState({
73747
73747
  sessionKey: args.ctx.sessionKey,
@@ -74312,7 +74312,7 @@ function wrapHostEditToolWithPostWriteRecovery(base, root) {
74312
74312
  if (!pathParam || !newText) throw err;
74313
74313
  try {
74314
74314
  const absolutePath = resolveHostEditPath(root, pathParam);
74315
- const content = await fs$1.readFile(absolutePath, "utf-8");
74315
+ const content = await fsPromises.readFile(absolutePath, "utf-8");
74316
74316
  const hasNew = content.includes(newText);
74317
74317
  const stillHasOld = oldText !== void 0 && oldText.length > 0 && content.includes(oldText);
74318
74318
  if (hasNew && !stillHasOld) return {
@@ -74415,14 +74415,14 @@ function createSandboxEditOperations(params) {
74415
74415
  }
74416
74416
  async function writeHostFile(absolutePath, content) {
74417
74417
  const resolved = path.resolve(absolutePath);
74418
- await fs$1.mkdir(path.dirname(resolved), { recursive: true });
74419
- await fs$1.writeFile(resolved, content, "utf-8");
74418
+ await fsPromises.mkdir(path.dirname(resolved), { recursive: true });
74419
+ await fsPromises.writeFile(resolved, content, "utf-8");
74420
74420
  }
74421
74421
  function createHostWriteOperations(root, options) {
74422
74422
  if (!(options?.workspaceOnly ?? false)) return {
74423
74423
  mkdir: async (dir) => {
74424
74424
  const resolved = path.resolve(dir);
74425
- await fs$1.mkdir(resolved, { recursive: true });
74425
+ await fsPromises.mkdir(resolved, { recursive: true });
74426
74426
  },
74427
74427
  writeFile: writeHostFile
74428
74428
  };
@@ -74435,7 +74435,7 @@ function createHostWriteOperations(root, options) {
74435
74435
  cwd: root,
74436
74436
  root
74437
74437
  });
74438
- await fs$1.mkdir(resolved, { recursive: true });
74438
+ await fsPromises.mkdir(resolved, { recursive: true });
74439
74439
  },
74440
74440
  writeFile: async (absolutePath, content) => {
74441
74441
  await writeFileWithinRoot({
@@ -74451,12 +74451,12 @@ function createHostEditOperations(root, options) {
74451
74451
  if (!(options?.workspaceOnly ?? false)) return {
74452
74452
  readFile: async (absolutePath) => {
74453
74453
  const resolved = path.resolve(absolutePath);
74454
- return await fs$1.readFile(resolved);
74454
+ return await fsPromises.readFile(resolved);
74455
74455
  },
74456
74456
  writeFile: writeHostFile,
74457
74457
  access: async (absolutePath) => {
74458
74458
  const resolved = path.resolve(absolutePath);
74459
- await fs$1.access(resolved);
74459
+ await fsPromises.access(resolved);
74460
74460
  }
74461
74461
  };
74462
74462
  return {
@@ -75294,7 +75294,7 @@ async function repairSessionFileIfNeeded(params) {
75294
75294
  };
75295
75295
  let content;
75296
75296
  try {
75297
- content = await fs$1.readFile(sessionFile, "utf-8");
75297
+ content = await fsPromises.readFile(sessionFile, "utf-8");
75298
75298
  } catch (err) {
75299
75299
  if (err?.code === "ENOENT") return {
75300
75300
  repaired: false,
@@ -75342,15 +75342,15 @@ async function repairSessionFileIfNeeded(params) {
75342
75342
  const backupPath = `${sessionFile}.bak-${process.pid}-${Date.now()}`;
75343
75343
  const tmpPath = `${sessionFile}.repair-${process.pid}-${Date.now()}.tmp`;
75344
75344
  try {
75345
- const stat = await fs$1.stat(sessionFile).catch(() => null);
75346
- await fs$1.writeFile(backupPath, content, "utf-8");
75347
- if (stat) await fs$1.chmod(backupPath, stat.mode);
75348
- await fs$1.writeFile(tmpPath, cleaned, "utf-8");
75349
- if (stat) await fs$1.chmod(tmpPath, stat.mode);
75350
- await fs$1.rename(tmpPath, sessionFile);
75345
+ const stat = await fsPromises.stat(sessionFile).catch(() => null);
75346
+ await fsPromises.writeFile(backupPath, content, "utf-8");
75347
+ if (stat) await fsPromises.chmod(backupPath, stat.mode);
75348
+ await fsPromises.writeFile(tmpPath, cleaned, "utf-8");
75349
+ if (stat) await fsPromises.chmod(tmpPath, stat.mode);
75350
+ await fsPromises.rename(tmpPath, sessionFile);
75351
75351
  } catch (err) {
75352
75352
  try {
75353
- await fs$1.unlink(tmpPath);
75353
+ await fsPromises.unlink(tmpPath);
75354
75354
  } catch (cleanupErr) {
75355
75355
  params.warn?.(`session file repair cleanup failed: ${cleanupErr instanceof Error ? cleanupErr.message : "unknown error"} (${path.basename(tmpPath)})`);
75356
75356
  }
@@ -76951,7 +76951,7 @@ async function prewarmSessionFile(sessionFile) {
76951
76951
  if (!isSessionManagerCacheEnabled()) return;
76952
76952
  if (isSessionManagerCached(sessionFile)) return;
76953
76953
  try {
76954
- const handle = await fs$1.open(sessionFile, "r");
76954
+ const handle = await fsPromises.open(sessionFile, "r");
76955
76955
  try {
76956
76956
  const buffer = Buffer$1.alloc(4096);
76957
76957
  await handle.read(buffer, 0, buffer.length, 0);
@@ -77307,7 +77307,7 @@ async function compactEmbeddedPiSessionDirect(params) {
77307
77307
  } catch (err) {
77308
77308
  return fail(describeUnknownError(err));
77309
77309
  }
77310
- await fs$1.mkdir(resolvedWorkspace, { recursive: true });
77310
+ await fsPromises.mkdir(resolvedWorkspace, { recursive: true });
77311
77311
  const sandboxSessionKey = params.sessionKey?.trim() || params.sessionId;
77312
77312
  const sandbox = await resolveSandboxContext({
77313
77313
  config: params.config,
@@ -77315,7 +77315,7 @@ async function compactEmbeddedPiSessionDirect(params) {
77315
77315
  workspaceDir: resolvedWorkspace
77316
77316
  });
77317
77317
  const effectiveWorkspace = sandbox?.enabled ? sandbox.workspaceAccess === "rw" ? resolvedWorkspace : sandbox.workspaceDir : resolvedWorkspace;
77318
- await fs$1.mkdir(effectiveWorkspace, { recursive: true });
77318
+ await fsPromises.mkdir(effectiveWorkspace, { recursive: true });
77319
77319
  await ensureSessionHeader({
77320
77320
  sessionFile: params.sessionFile,
77321
77321
  sessionId: params.sessionId,
@@ -78197,12 +78197,12 @@ function getQueuedFileWriter(writers, filePath) {
78197
78197
  const existing = writers.get(filePath);
78198
78198
  if (existing) return existing;
78199
78199
  const dir = path.dirname(filePath);
78200
- const ready = fs$1.mkdir(dir, { recursive: true }).catch(() => void 0);
78200
+ const ready = fsPromises.mkdir(dir, { recursive: true }).catch(() => void 0);
78201
78201
  let queue = Promise.resolve();
78202
78202
  const writer = {
78203
78203
  filePath,
78204
78204
  write: (line) => {
78205
- queue = queue.then(() => ready).then(() => fs$1.appendFile(filePath, line, "utf8")).catch(() => void 0);
78205
+ queue = queue.then(() => ready).then(() => fsPromises.appendFile(filePath, line, "utf8")).catch(() => void 0);
78206
78206
  }
78207
78207
  };
78208
78208
  writers.set(filePath, writer);
@@ -81120,7 +81120,7 @@ async function prepareSessionManagerForRun(params) {
81120
81120
  return;
81121
81121
  }
81122
81122
  if (params.hadSessionFile && header && !hasAssistant) {
81123
- await fs$1.writeFile(params.sessionFile, "", "utf-8");
81123
+ await fsPromises.writeFile(params.sessionFile, "", "utf-8");
81124
81124
  sm.fileEntries = [header];
81125
81125
  sm.byId?.clear?.();
81126
81126
  sm.labelsById?.clear?.();
@@ -81854,7 +81854,7 @@ async function runEmbeddedAttempt(params) {
81854
81854
  const prevCwd = process.cwd();
81855
81855
  const runAbortController = new AbortController();
81856
81856
  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"}`);
81857
- await fs$1.mkdir(resolvedWorkspace, { recursive: true });
81857
+ await fsPromises.mkdir(resolvedWorkspace, { recursive: true });
81858
81858
  const sandboxSessionKey = params.sessionKey?.trim() || params.sessionId;
81859
81859
  const sandbox = await resolveSandboxContext({
81860
81860
  config: params.config,
@@ -81862,7 +81862,7 @@ async function runEmbeddedAttempt(params) {
81862
81862
  workspaceDir: resolvedWorkspace
81863
81863
  });
81864
81864
  const effectiveWorkspace = sandbox?.enabled ? sandbox.workspaceAccess === "rw" ? resolvedWorkspace : sandbox.workspaceDir : resolvedWorkspace;
81865
- await fs$1.mkdir(effectiveWorkspace, { recursive: true });
81865
+ await fsPromises.mkdir(effectiveWorkspace, { recursive: true });
81866
81866
  let restoreSkillEnv;
81867
81867
  process.chdir(effectiveWorkspace);
81868
81868
  try {
@@ -82106,7 +82106,7 @@ async function runEmbeddedAttempt(params) {
82106
82106
  sessionFile: params.sessionFile,
82107
82107
  warn: (message) => log$3.warn(message)
82108
82108
  });
82109
- const hadSessionFile = await fs$1.stat(params.sessionFile).then(() => true).catch(() => false);
82109
+ const hadSessionFile = await fsPromises.stat(params.sessionFile).then(() => true).catch(() => false);
82110
82110
  const transcriptPolicy = resolveTranscriptPolicy({
82111
82111
  modelApi: params.model?.api,
82112
82112
  provider: params.provider,
@@ -83248,7 +83248,7 @@ async function runEmbeddedPiAgent(params) {
83248
83248
  const copilotAuthRetry = authRetryPending;
83249
83249
  authRetryPending = false;
83250
83250
  attemptedThinking.add(thinkLevel);
83251
- await fs$1.mkdir(resolvedWorkspace, { recursive: true });
83251
+ await fsPromises.mkdir(resolvedWorkspace, { recursive: true });
83252
83252
  const prompt = provider === "anthropic" ? scrubAnthropicRefusalMagic(params.prompt) : params.prompt;
83253
83253
  const attempt = await runEmbeddedAttempt({
83254
83254
  sessionId: params.sessionId,