@guadskill/openclaw-proxy 2026.2.9 → 2026.2.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (210) hide show
  1. package/dist/{accounts-x7cMEV1E.js → accounts-Dx4aJi3x.js} +7 -7
  2. package/dist/{acp-cli-0GGdXLLK.js → acp-cli-B0GEswoT.js} +4 -4
  3. package/dist/{acp-cli-D1H6dacV.js → acp-cli-OHiTwyKP.js} +4 -4
  4. package/dist/{agent-2SW8ZCfI.js → agent-CVUy1Thi.js} +10 -10
  5. package/dist/{agent-DU-T91C5.js → agent-D-ZY5Ay1.js} +10 -10
  6. package/dist/{agent-scope-DiPc4_Q2.js → agent-scope-Bxl1Ieu_.js} +1 -1
  7. package/dist/{agent-scope-BUn6DjX7.js → agent-scope-C7vPz4km.js} +1 -1
  8. package/dist/{agent-scope-CjgJmjE6.js → agent-scope-DUR7NPNo.js} +1 -1
  9. package/dist/{agent-scope--25ynMc2.js → agent-scope-QnsNO5IK.js} +11 -11
  10. package/dist/{archive-D0z3LZDK.js → archive-1r-XD_by.js} +9 -9
  11. package/dist/{audit-CqsOSGgc.js → audit-DJRS7Nza.js} +8 -8
  12. package/dist/{audit-CLbFGfQc.js → audit-Dnyfbisl.js} +16 -16
  13. package/dist/{auth-health-6CQOjiY2.js → auth-health-CE7uy9mo.js} +1 -1
  14. package/dist/{auth-health-BA7lqVxs.js → auth-health-ov3toXHm.js} +1 -1
  15. package/dist/{auth-profiles-Dg1lg7TZ.js → auth-profiles-kZZY0kCW.js} +1 -1
  16. package/dist/build-info.json +2 -2
  17. package/dist/bundled/boot-md/handler.js +9 -9
  18. package/dist/bundled/session-memory/handler.js +9 -9
  19. package/dist/{call-DfFtEDcF.js → call-BUcaYa5a.js} +8 -8
  20. package/dist/{call-BRBaanei.js → call-D_Z9T8iV.js} +1 -1
  21. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  22. package/dist/{channel-options-DxeLpgAW.js → channel-options-P2xeFf1J.js} +5 -5
  23. package/dist/{channel-options-lyL-8lwT.js → channel-options-oOUobhHQ.js} +3 -3
  24. package/dist/{channel-selection-KB-Du2K8.js → channel-selection-CmhD8GeJ.js} +1 -1
  25. package/dist/{channel-selection-Cm-kszg3.js → channel-selection-Dc2O9U87.js} +1 -1
  26. package/dist/{channels-cli-CwCvT3wp.js → channels-cli-BYZOMEVn.js} +25 -25
  27. package/dist/{channels-cli-D8NQgCvh.js → channels-cli-C-TQm_--.js} +36 -36
  28. package/dist/{channels-status-issues-CtDHK5Hb.js → channels-status-issues-CZVE---T.js} +1 -1
  29. package/dist/{channels-status-issues-D4zjQ5gR.js → channels-status-issues-CftEAWF4.js} +1 -1
  30. package/dist/{chrome-CBxye_ED.js → chrome-FITXsKSB.js} +7 -7
  31. package/dist/{chrome-y0SuEptk.js → chrome-No6wyyAY.js} +2 -2
  32. package/dist/cli/daemon-cli.js +1 -1
  33. package/dist/{cli-BhOaKx0R.js → cli-98b8BoLE.js} +25 -25
  34. package/dist/{cli-BdLB0dU9.js → cli-9Gs7jI45.js} +21 -21
  35. package/dist/{command-options-BsaSCNbW.js → command-options-DFbsypaU.js} +3 -3
  36. package/dist/{commands-D1Vz_pbj.js → commands-DoVIOYAz.js} +3 -3
  37. package/dist/{completion-cli-B8UeXoAi.js → completion-cli-DBmFb2Zz.js} +27 -27
  38. package/dist/{completion-cli-DSp3IYfG.js → completion-cli-DrFgqXz-.js} +13 -13
  39. package/dist/{config-BiUz0L4n.js → config-C_ZMbYir.js} +2 -2
  40. package/dist/{config-DBR-pg8M.js → config-DFgdMueL.js} +2 -2
  41. package/dist/{config-Cq5jWpQW.js → config-NtjUezp5.js} +2 -2
  42. package/dist/{config-guard-BIEzm1Di.js → config-guard-B_Hef8AW.js} +34 -34
  43. package/dist/{config-JotyqXJB.js → config-yg3MNzIZ.js} +2 -2
  44. package/dist/{configure-Cec4HsdK.js → configure-BShkc6Iy.js} +8 -8
  45. package/dist/{configure-CupQ7QSD.js → configure-CnH4eas2.js} +10 -10
  46. package/dist/{control-service-CH6Bbr0T.js → control-service-CzkpRVn7.js} +4 -4
  47. package/dist/{control-service-YHi9oKDx.js → control-service-_2M8iCv6.js} +1 -1
  48. package/dist/{cron-cli-DQ37nGTc.js → cron-cli-Bkwkuduu.js} +7 -7
  49. package/dist/{cron-cli-BPtSqQjc.js → cron-cli-sBpc08kN.js} +6 -6
  50. package/dist/{daemon-cli-BwvNtNCH.js → daemon-cli-BQFZUZXG.js} +7 -7
  51. package/dist/{daemon-cli-ByQDMi6B.js → daemon-cli-D7bFcRv4.js} +11 -11
  52. package/dist/{daemon-runtime-Dg88Ac7J.js → daemon-runtime-DLtjWz00.js} +10 -10
  53. package/dist/{daemon-runtime-LePuvITk.js → daemon-runtime-q4XITAGg.js} +1 -1
  54. package/dist/{deliver-BpcYe8zG.js → deliver-BFZRT50l.js} +7 -7
  55. package/dist/{deliver-Dpg3LSwN.js → deliver-BRCyIScz.js} +5 -5
  56. package/dist/{deliver-D4rMk52D.js → deliver-BssKD-vg.js} +3 -3
  57. package/dist/{deliver-C9Vwdw7k.js → deliver-D_PB5CG5.js} +2 -2
  58. package/dist/{deps-DWlD7Lyt.js → deps-BBw98Cve.js} +2 -2
  59. package/dist/{deps-qtgH7RGM.js → deps-Dlhl7sML.js} +2 -2
  60. package/dist/{devices-cli-CcGB1MVD.js → devices-cli-3aLFbDvW.js} +4 -4
  61. package/dist/{devices-cli-p9SUggMY.js → devices-cli-Dn5X9lnL.js} +4 -4
  62. package/dist/{directory-cli-CixpfARf.js → directory-cli-Cc06wNL1.js} +5 -5
  63. package/dist/{directory-cli-CgKDzRjU.js → directory-cli-Dj48rao9.js} +6 -6
  64. package/dist/{dispatcher-DsTwmVoy.js → dispatcher-DLLOC08H.js} +1 -1
  65. package/dist/{dns-cli-y3RAyaeD.js → dns-cli-CugZCOE9.js} +3 -3
  66. package/dist/{dns-cli--ew6Hcon.js → dns-cli-kXKz4kmo.js} +3 -3
  67. package/dist/{docs-cli-BPPPY68C.js → docs-cli-BUeU34DD.js} +1 -1
  68. package/dist/{docs-cli-B8ZWuZdG.js → docs-cli-DPM7sbYQ.js} +1 -1
  69. package/dist/{doctor-CqYHOc7o.js → doctor-Bb0C7PCD.js} +18 -18
  70. package/dist/{doctor--sUBhPRM.js → doctor-C5EhTQAn.js} +33 -33
  71. package/dist/entry.js +1 -1
  72. package/dist/{exec-approvals-cli-AoKQ4upV.js → exec-approvals-cli-DTdAAPIs.js} +11 -11
  73. package/dist/{exec-approvals-cli-C2XQFrdV.js → exec-approvals-cli-DyvEEBBB.js} +6 -6
  74. package/dist/extensionAPI.js +20 -20
  75. package/dist/{gateway-cli-FFlyXx90.js → gateway-cli-BQvs5yMg.js} +116 -116
  76. package/dist/{gateway-cli-x9uFfaiq.js → gateway-cli-ClF2zEog.js} +43 -43
  77. package/dist/{gateway-rpc-CpSS8vbu.js → gateway-rpc-CUNihWum.js} +1 -1
  78. package/dist/{gateway-rpc-BUee5Dv6.js → gateway-rpc-ftABAYn5.js} +1 -1
  79. package/dist/{github-copilot-auth-C9U7LmQC.js → github-copilot-auth-DbUZnSyk.js} +5 -5
  80. package/dist/{github-copilot-auth-DhRqdPvp.js → github-copilot-auth-TxtjXx5m.js} +5 -5
  81. package/dist/{gmail-setup-utils-DwjED-x8.js → gmail-setup-utils-CBKE602c.js} +1 -1
  82. package/dist/{gmail-setup-utils-BElJpBPG.js → gmail-setup-utils-DFeZNixL.js} +1 -1
  83. package/dist/{health-format-BB0NTRxV.js → health-format-BOaLA7v1.js} +10 -10
  84. package/dist/{health-format-xY8AE8iJ.js → health-format-i1geK3KG.js} +8 -8
  85. package/dist/{hooks-cli-LD-Df2Bi.js → hooks-cli-BoczEJfK.js} +23 -23
  86. package/dist/{hooks-cli-D0QnfArE.js → hooks-cli-DoLBB8PN.js} +49 -49
  87. package/dist/{hooks-status-DzV884al.js → hooks-status-Dbj4IlQS.js} +1 -1
  88. package/dist/{hooks-status-B-1h3DT9.js → hooks-status-Dr9j7oSo.js} +1 -1
  89. package/dist/{image-zzNMmsKZ.js → image-CE9CeS1j.js} +3 -3
  90. package/dist/{image-D1s2KO45.js → image-CY3Qb62D.js} +8 -8
  91. package/dist/{image-A6XShsr8.js → image-Crv76CGv.js} +3 -3
  92. package/dist/{image-C19aQZmj.js → image-DaoVwbBU.js} +3 -3
  93. package/dist/index.js +44 -44
  94. package/dist/{installs-lwst-G4F.js → installs-CJqCIvn4.js} +18 -18
  95. package/dist/llm-slug-generator.js +9 -9
  96. package/dist/{loader-t5G-bNh2.js → loader-BNGc0TMW.js} +115 -115
  97. package/dist/{login-qr-dW3zLPde.js → login-qr-BJHBXw2B.js} +1 -1
  98. package/dist/{login-qr-fi3WTytg.js → login-qr-BoEpQD7W.js} +2 -2
  99. package/dist/{login-qr-zHjaf-a-.js → login-qr-CojPlIrx.js} +1 -1
  100. package/dist/{login-qr-zBlKORpc.js → login-qr-O0Sg-Lht.js} +1 -1
  101. package/dist/{logs-cli-CNG1ybOs.js → logs-cli-BkQZaLP1.js} +5 -5
  102. package/dist/{logs-cli-BrwNjHyP.js → logs-cli-DbqvSWfV.js} +5 -5
  103. package/dist/{manager-BG8ogneZ.js → manager-BLQprOme.js} +3 -3
  104. package/dist/{manager-D1OOirj8.js → manager-DBEZGESO.js} +2 -2
  105. package/dist/{manager-CdFcVnZR.js → manager-DLK8bAAA.js} +15 -15
  106. package/dist/{manager-Bctrvc9j.js → manager-DQXILjKz.js} +2 -2
  107. package/dist/{model-auth-DisTMlNO.js → model-auth-B3m7mkvr.js} +1 -1
  108. package/dist/{model-selection-GZFHUD7x.js → model-selection-9N1nn0U_.js} +1 -1
  109. package/dist/{model-selection-Dcc6YSVW.js → model-selection-BqJ7D4pt.js} +1 -1
  110. package/dist/{models-cli-B2zLu81b.js → models-cli-DKJ429Km.js} +23 -23
  111. package/dist/{models-cli-DAT-ArET.js → models-cli-tBSLfpEB.js} +30 -30
  112. package/dist/{node-cli-ClBB_NxA.js → node-cli-az-8UhFP.js} +20 -20
  113. package/dist/{node-cli-etrHRm1x.js → node-cli-xTfEqY2t.js} +7 -7
  114. package/dist/{node-service-BDoNNRp-.js → node-service-CkPOvRv0.js} +1 -1
  115. package/dist/{nodes-cli-BaBGaJqV.js → nodes-cli-DfTrE8mE.js} +8 -8
  116. package/dist/{nodes-cli-CGt1ECiI.js → nodes-cli-U9s_odmo.js} +5 -5
  117. package/dist/{nodes-screen-DGlNPbk4.js → nodes-screen-DufGlxX3.js} +2 -2
  118. package/dist/{onboard-channels-CCcLnNq7.js → onboard-channels-B12vl_Fz.js} +5 -5
  119. package/dist/{onboard-channels-BTsEmF84.js → onboard-channels-Bi5gN7Cg.js} +4 -4
  120. package/dist/{onboard-skills-DTqkozry.js → onboard-skills-Cli5aapW.js} +9 -9
  121. package/dist/{onboard-skills-COOhVMtI.js → onboard-skills-bQdrzd5W.js} +8 -8
  122. package/dist/{onboarding-B_hfq1-Z.js → onboarding-o9D1SpDa.js} +20 -20
  123. package/dist/{openclaw-root-93W6UrUK.js → openclaw-root-BTW4x2Wd.js} +1 -1
  124. package/dist/{openclaw-root-9ILYSmJ9.js → openclaw-root-zKi4apQH.js} +3 -3
  125. package/dist/{pairing-cli-IMM6zTxT.js → pairing-cli-ByfGNmaZ.js} +7 -7
  126. package/dist/{pairing-cli-A-97MaNg.js → pairing-cli-C_IQMrN0.js} +6 -6
  127. package/dist/{pairing-labels-Bb4yiJHg.js → pairing-labels-B6MQ_Hha.js} +1 -1
  128. package/dist/{pairing-labels-DP5H8gf6.js → pairing-labels-B6ViJi8r.js} +1 -1
  129. package/dist/{pairing-store-DnhpK1SH.js → pairing-store-Cc67v-m7.js} +1 -1
  130. package/dist/{pairing-store-DiCaUGXP.js → pairing-store-DKhgYwjg.js} +1 -1
  131. package/dist/{paths-fJtAVDc0.js → paths-BifbScbU.js} +1 -1
  132. package/dist/{pi-embedded-DQydpubI.js → pi-embedded-DPQwlpO6.js} +15 -15
  133. package/dist/{pi-embedded-helpers-BJ-cu3iK.js → pi-embedded-helpers-CcE0hKxw.js} +8 -8
  134. package/dist/{pi-embedded-helpers-4Lpm0TfW.js → pi-embedded-helpers-DwhRDCwp.js} +2 -2
  135. package/dist/{pi-embedded-helpers-B8LSSkHe.js → pi-embedded-helpers-Z2gqd4I2.js} +3 -3
  136. package/dist/{pi-embedded-helpers-DadKWPQE.js → pi-embedded-helpers-n7o6YJmY.js} +6 -6
  137. package/dist/{pi-tools.policy-DLLm-j7M.js → pi-tools.policy-CiKYFXrw.js} +3 -3
  138. package/dist/{plugin-auto-enable-B78nMu3L.js → plugin-auto-enable-CTA5rOU5.js} +1 -1
  139. package/dist/{plugin-auto-enable-Arz-7wiT.js → plugin-auto-enable-CrzdP1Nz.js} +2 -2
  140. package/dist/{plugins-CRUvG4uT.js → plugins-CO1rgH0r.js} +1 -1
  141. package/dist/{plugins-cli-CjpTlFhI.js → plugins-cli-BKilQedx.js} +22 -22
  142. package/dist/{plugins-cli-DrQ1Deuw.js → plugins-cli-CkZgCEVA.js} +30 -30
  143. package/dist/{plugins-U0QQZWlW.js → plugins-ia9SOGpI.js} +1 -1
  144. package/dist/{ports-BcNVanDX.js → ports-DbnuiZZO.js} +1 -1
  145. package/dist/{program-CDSRl7eR.js → program-3AvELN6H.js} +58 -58
  146. package/dist/{pw-ai-Bpd-iaBB.js → pw-ai-BOyUF0Kj.js} +4 -4
  147. package/dist/{pw-ai-C3QEyFGj.js → pw-ai-kZMIzSdQ.js} +1 -1
  148. package/dist/{qmd-manager-DZhFcVTt.js → qmd-manager-BM5DP4s8.js} +1 -1
  149. package/dist/{qmd-manager-CjTG-nW_.js → qmd-manager-BRXyEw0a.js} +19 -19
  150. package/dist/{qmd-manager-qe1SLQy3.js → qmd-manager-CWFe938c.js} +1 -1
  151. package/dist/{qmd-manager-D4W1VfWC.js → qmd-manager-h50GTfkl.js} +2 -2
  152. package/dist/{register.subclis-COUZSGkI.js → register.subclis-gkkP8-Yx.js} +28 -28
  153. package/dist/{reply-CcYZSt6t.js → reply-CH7VZ1jT.js} +28 -28
  154. package/dist/{routes-CnhRELg3.js → routes-BUDqG0bE.js} +17 -17
  155. package/dist/{routes-Sj0W9JUC.js → routes-dtswuSI-.js} +1 -1
  156. package/dist/{rpc-wf5KzhJ_.js → rpc-BeN1YXM7.js} +1 -1
  157. package/dist/{rpc-BlzExEft.js → rpc-CUy4VHNF.js} +1 -1
  158. package/dist/{run-main-CadL0LaU.js → run-main-DM5TUpMe.js} +60 -60
  159. package/dist/{sandbox-CXXC0AOA.js → sandbox-D889a-F8.js} +21 -21
  160. package/dist/{sandbox-cli-B-c6pLqW.js → sandbox-cli-BNvoe8W3.js} +10 -10
  161. package/dist/{sandbox-cli-CEQpi4Wb.js → sandbox-cli-DACJb2g8.js} +7 -7
  162. package/dist/{sandbox-BR9JVXBT.js → sandbox-nFkFFEb7.js} +5 -5
  163. package/dist/{security-cli-MV9q0KXT.js → security-cli-DvqT9LWk.js} +11 -11
  164. package/dist/{security-cli-CxnkY7T2.js → security-cli-m_PAeVLY.js} +21 -21
  165. package/dist/{server-context-B0LbMz_e.js → server-context-qxpb5Ln6.js} +4 -4
  166. package/dist/{server-node-events-ClBp_ky8.js → server-node-events-Cb6KgBy9.js} +23 -23
  167. package/dist/{server-node-events-DZQVhZjc.js → server-node-events-Cz7z8PCq.js} +27 -27
  168. package/dist/{service-DQwKxszE.js → service-CJ_9zG2c.js} +15 -15
  169. package/dist/{service-audit-D6Jk8jFU.js → service-audit-CURwIRFh.js} +13 -13
  170. package/dist/{service-audit-JR0RZ8xC.js → service-audit-DtmRGU4O.js} +1 -1
  171. package/dist/{shared-C_dY3J1K.js → shared-BFnl2Cjh.js} +1 -1
  172. package/dist/{shared-DN6M8u_S.js → shared-CXK7Zt_F.js} +1 -1
  173. package/dist/{skill-scanner-C_fQzVDu.js → skill-scanner-BT7PBklM.js} +5 -5
  174. package/dist/{skills-C1QRKLvh.js → skills-Cgy3X3tK.js} +1 -1
  175. package/dist/{skills-cli-DDTkkerI.js → skills-cli-B2zxU_2n.js} +5 -5
  176. package/dist/{skills-cli-DbqgzF80.js → skills-cli-Bg8bkl9E.js} +5 -5
  177. package/dist/{skills-status-GulhEBnV.js → skills-status-8m5p33dD.js} +1 -1
  178. package/dist/{skills-status-C_QDsl6j.js → skills-status-BA2DOmHk.js} +1 -1
  179. package/dist/{skills-CwXLq-nk.js → skills-w-kwwPb2.js} +1 -1
  180. package/dist/{sqlite-DODNHWJb.js → sqlite-DmufeXxk.js} +8 -8
  181. package/dist/{status-Y2KMsWuk.js → status-BX5HXftW.js} +3 -3
  182. package/dist/{status-CErwIaup.js → status-Bcl2H-Cb.js} +31 -31
  183. package/dist/{status-CtFS7XRr.js → status-CTMeUEYd.js} +3 -3
  184. package/dist/{system-cli-C0JWELUD.js → system-cli-BzCBKn-l.js} +5 -5
  185. package/dist/{system-cli-BVweBOhJ.js → system-cli-C886Ufmu.js} +5 -5
  186. package/dist/{systemd-aL_mEluy.js → systemd-D8TmVYdf.js} +5 -5
  187. package/dist/{systemd-linger-CEPF4JN6.js → systemd-linger-C57Dz7hA.js} +1 -1
  188. package/dist/{tui-B9ggfGhy.js → tui-B8ryM4-q.js} +5 -5
  189. package/dist/{tui-C_gTxPke.js → tui-DMtfTPeq.js} +5 -5
  190. package/dist/{tui-cli-Zj_x6Bvj.js → tui-cli-BBTZ6Uea.js} +14 -14
  191. package/dist/{tui-cli-CYc8ZHxI.js → tui-cli-CainEme8.js} +11 -11
  192. package/dist/{tui-formatters-C1oQXn1l.js → tui-formatters-6nR_zzUg.js} +3 -3
  193. package/dist/{tui-formatters-CCOWLfCX.js → tui-formatters-Cmrdmcx8.js} +3 -3
  194. package/dist/{update-C-9KsS1m.js → update-DkJ6rvG7.js} +3 -3
  195. package/dist/{update-cli-ClAzvLLE.js → update-cli-B44pCOmM.js} +34 -34
  196. package/dist/{update-cli-Cyh2BgJf.js → update-cli-CeCOtfHd.js} +53 -53
  197. package/dist/{update-runner-BT3WGHmf.js → update-runner-BZsT7ZyA.js} +6 -6
  198. package/dist/{update-runner-Br_pa9Xw.js → update-runner-CkoLrD4r.js} +25 -25
  199. package/dist/{webhooks-cli-Ch9h1RT2.js → webhooks-cli-BH_Y2RXv.js} +5 -5
  200. package/dist/{webhooks-cli-DBWL77uP.js → webhooks-cli-DZaS4YoE.js} +5 -5
  201. package/dist/{wsl-CtSDIi51.js → wsl-C-eVEqs4.js} +3 -3
  202. package/package.json +1 -1
  203. package/dist/control-ui/apple-touch-icon.png +0 -0
  204. package/dist/control-ui/assets/index-BeKTXH1m.js +0 -7601
  205. package/dist/control-ui/assets/index-BeKTXH1m.js.map +0 -1
  206. package/dist/control-ui/assets/index-DWhx-9JL.css +0 -1
  207. package/dist/control-ui/favicon-32.png +0 -0
  208. package/dist/control-ui/favicon.ico +0 -0
  209. package/dist/control-ui/favicon.svg +0 -22
  210. package/dist/control-ui/index.html +0 -17
@@ -1,59 +1,59 @@
1
1
  import { A as getChildLogger, C as setVerbose, D as colorize, E as warn, F as CONFIG_PATH, L as STATE_DIR, O as isRich, P as normalizeLogLevel, Q as CHAT_CHANNEL_ORDER, T as success, X as resolveStateDir, a as parseBooleanValue$1, at as normalizeChannelId, ct as requireActivePluginRegistry, it as normalizeAnyChannelId, k as theme, lt as setActivePluginRegistry, n as isTruthyEnvValue, o as createSubsystemLogger, p as defaultRuntime, pt as resolveRequiredHomeDir, v as danger, w as shouldLogVerbose, x as logVerbose, y as info } from "./entry.js";
2
- import { C as buildAllowedModelSet, Ct as DEFAULT_CONTEXT_TOKENS, D as isCliProvider, Et as resolveAuthProfileDisplayLabel, I as resolveModelRefFromString, L as resolveThinkingDefault, N as resolveConfiguredModelRef, O as modelKey, P as resolveDefaultModelForAgent, S as resolveOpenClawAgentDir, T as buildModelAliasIndex, Tt as DEFAULT_PROVIDER, U as normalizeGoogleModelId, _ as ensureAuthProfileStore, _t as resolveShellEnvFallbackTimeoutMs, a as markAuthProfileUsed, at as getApiKeyForModel, ct as resolveApiKeyForProvider, dt as resolveModelAuthMode, ht as getShellPathFromLoginShell, i as markAuthProfileFailure, k as normalizeProviderId, m as markAuthProfileGood, n as resolveAuthProfileOrder, ot as getCustomProviderApiKey, p as listProfilesForProvider, pt as normalizeSecretInput, r as isProfileInCooldown, s as resolveApiKeyForProfile, st as requireApiKey, ut as resolveEnvApiKey, w as buildConfiguredAllowlistKeys, wt as DEFAULT_MODEL, x as resolveAuthStorePathForDisplay } from "./auth-profiles-Dg1lg7TZ.js";
2
+ import { C as buildAllowedModelSet, Ct as DEFAULT_CONTEXT_TOKENS, D as isCliProvider, Et as resolveAuthProfileDisplayLabel, I as resolveModelRefFromString, L as resolveThinkingDefault, N as resolveConfiguredModelRef, O as modelKey, P as resolveDefaultModelForAgent, S as resolveOpenClawAgentDir, T as buildModelAliasIndex, Tt as DEFAULT_PROVIDER, U as normalizeGoogleModelId, _ as ensureAuthProfileStore, _t as resolveShellEnvFallbackTimeoutMs, a as markAuthProfileUsed, at as getApiKeyForModel, ct as resolveApiKeyForProvider, dt as resolveModelAuthMode, ht as getShellPathFromLoginShell, i as markAuthProfileFailure, k as normalizeProviderId, m as markAuthProfileGood, n as resolveAuthProfileOrder, ot as getCustomProviderApiKey, p as listProfilesForProvider, pt as normalizeSecretInput, r as isProfileInCooldown, s as resolveApiKeyForProfile, st as requireApiKey, ut as resolveEnvApiKey, w as buildConfiguredAllowlistKeys, wt as DEFAULT_MODEL, x as resolveAuthStorePathForDisplay } from "./auth-profiles-kZZY0kCW.js";
3
3
  import { t as formatCliCommand } from "./command-format-ayFsmwwz.js";
4
4
  import { _ as isSubagentSessionKey, a as buildAgentPeerSessionKey, c as normalizeAccountId$3, d as resolveAgentIdFromSessionKey, f as resolveThreadSessionKeys, g as isAcpSessionKey, i as buildAgentMainSessionKey, l as normalizeAgentId, n as DEFAULT_AGENT_ID, o as buildGroupHistoryKey, p as sanitizeAgentId, r as DEFAULT_MAIN_KEY, s as classifySessionKeyShape, t as DEFAULT_ACCOUNT_ID$1, u as normalizeMainKey, v as parseAgentSessionKey, y as resolveThreadParentSessionKey } from "./session-key-BRdRr5Ah.js";
5
5
  import { C as sliceUtf16Safe, S as sleep, T as truncateUtf16Safe, _ as resolveJidToE164, b as shortenHomeInString, c as escapeRegExp, d as isRecord, f as isSelfChatMode, m as normalizeE164, n as clamp, p as jidToE164, r as clampInt, t as CONFIG_DIR, u as isPlainObject, v as resolveUserPath, w as toWhatsappJid, x as shortenHomePath } from "./utils-Bx1WKTCk.js";
6
6
  import { a as logDebug, c as logWarn, i as spawnWithFallback, n as runExec, o as logError, r as formatSpawnError, s as logInfo, t as runCommandWithTimeout } from "./exec-B8JKbXKW.js";
7
- import { t as resolveOpenClawPackageRoot } from "./openclaw-root-9ILYSmJ9.js";
8
- import { C as loadWorkspaceBootstrapFiles, S as filterBootstrapFilesForSession, c as resolveDefaultAgentId, f as DEFAULT_AGENT_WORKSPACE_DIR, i as resolveAgentModelFallbacksOverride, l as resolveSessionAgentId, n as resolveAgentConfig, o as resolveAgentSkillsFilter, p as DEFAULT_BOOTSTRAP_FILENAME, r as resolveAgentDir, s as resolveAgentWorkspaceDir, t as listAgentIds, u as resolveSessionAgentIds, x as ensureAgentWorkspace } from "./agent-scope--25ynMc2.js";
7
+ import { t as resolveOpenClawPackageRoot } from "./openclaw-root-zKi4apQH.js";
8
+ import { C as loadWorkspaceBootstrapFiles, S as filterBootstrapFilesForSession, c as resolveDefaultAgentId, f as DEFAULT_AGENT_WORKSPACE_DIR, i as resolveAgentModelFallbacksOverride, l as resolveSessionAgentId, n as resolveAgentConfig, o as resolveAgentSkillsFilter, p as DEFAULT_BOOTSTRAP_FILENAME, r as resolveAgentDir, s as resolveAgentWorkspaceDir, t as listAgentIds, u as resolveSessionAgentIds, x as ensureAgentWorkspace } from "./agent-scope-QnsNO5IK.js";
9
9
  import { a as saveJsonFile, i as loadJsonFile } from "./github-copilot-token-SLWintYd.js";
10
10
  import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-DzEIEgHL.js";
11
- import { C as setConfigValueAtPath, S as parseConfigPath, _ as getConfigOverrides, b as unsetConfigOverride, c as writeConfigFile, d as TELEGRAM_COMMAND_NAME_PATTERN, f as normalizeTelegramCommandName, g as validateJsonSchemaValue, h as parseDurationMs, i as loadConfig, j as VERSION, k as resolveAgentMaxConcurrent, l as validateConfigObjectWithPlugins, m as isSafeExecutableValue, o as readConfigFileSnapshot, p as resolveTelegramCustomCommands, s as resolveConfigSnapshotHash, v as resetConfigOverrides, w as unsetConfigValueAtPath, x as getConfigValueAtPath, y as setConfigOverride } from "./config-DBR-pg8M.js";
11
+ import { C as setConfigValueAtPath, S as parseConfigPath, _ as getConfigOverrides, b as unsetConfigOverride, c as writeConfigFile, d as TELEGRAM_COMMAND_NAME_PATTERN, f as normalizeTelegramCommandName, g as validateJsonSchemaValue, h as parseDurationMs, i as loadConfig, j as VERSION, k as resolveAgentMaxConcurrent, l as validateConfigObjectWithPlugins, m as isSafeExecutableValue, o as readConfigFileSnapshot, p as resolveTelegramCustomCommands, s as resolveConfigSnapshotHash, v as resetConfigOverrides, w as unsetConfigValueAtPath, x as getConfigValueAtPath, y as setConfigOverride } from "./config-DFgdMueL.js";
12
12
  import { c as normalizePluginsConfig, l as resolveEnableState, n as discoverOpenClawPlugins, t as loadPluginManifestRegistry, u as resolveMemorySlotDecision } from "./manifest-registry-C_FL6H2P.js";
13
- import { a as resolveBrowserConfig } from "./server-context-B0LbMz_e.js";
13
+ import { a as resolveBrowserConfig } from "./server-context-qxpb5Ln6.js";
14
14
  import { t as pickPrimaryTailnetIPv4 } from "./tailnet-CL5GtL7t.js";
15
15
  import { o as pickPrimaryLanIPv4 } from "./ws-CtFyzK73.js";
16
- import { C as DEFAULT_AI_SNAPSHOT_MAX_CHARS } from "./chrome-y0SuEptk.js";
16
+ import { C as DEFAULT_AI_SNAPSHOT_MAX_CHARS } from "./chrome-No6wyyAY.js";
17
17
  import { n as formatErrorMessage, r as formatUncaughtError, t as extractErrorCode } from "./errors-x4NYs-1P.js";
18
- import { n as createBrowserControlContext, r as startBrowserControlServiceFromConfig } from "./control-service-CH6Bbr0T.js";
18
+ import { n as createBrowserControlContext, r as startBrowserControlServiceFromConfig } from "./control-service-CzkpRVn7.js";
19
19
  import { kt as SESSION_LABEL_MAX_LENGTH, t as GatewayClient } from "./client-BCOZgvlo.js";
20
- import { i as randomIdempotencyKey, n as callGateway } from "./call-DfFtEDcF.js";
20
+ import { i as randomIdempotencyKey, n as callGateway } from "./call-BUcaYa5a.js";
21
21
  import { a as isInternalMessageChannel, c as listDeliverableMessageChannels, d as resolveMessageChannel, h as GATEWAY_CLIENT_NAMES, 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-BlgPSDAh.js";
22
22
  import { t as formatDocsLink } from "./links-CSYf2PwL.js";
23
- import { _ as normalizeChatType, a as normalizeWhatsAppTarget, b as normalizeDiscordToken, c as resolveTelegramAccount, d as listBindings, g as resolveSlackBotToken, h as resolveSlackAppToken, i as isWhatsAppGroupJid, l as resolveTelegramToken, n as listChannelPlugins, o as listEnabledTelegramAccounts, p as resolveSlackAccount, r as normalizeChannelId$1, s as listTelegramAccountIds, t as getChannelPlugin, v as listEnabledDiscordAccounts, y as resolveDiscordAccount } from "./plugins-CRUvG4uT.js";
24
- import { a as logoutWeb, d as webAuthExists, i as logWebSelfId, n as resolveWhatsAppAccount, r as getWebAuthAgeMs, s as readWebSelfId } from "./accounts-x7cMEV1E.js";
23
+ import { _ as normalizeChatType, a as normalizeWhatsAppTarget, b as normalizeDiscordToken, c as resolveTelegramAccount, d as listBindings, g as resolveSlackBotToken, h as resolveSlackAppToken, i as isWhatsAppGroupJid, l as resolveTelegramToken, n as listChannelPlugins, o as listEnabledTelegramAccounts, p as resolveSlackAccount, r as normalizeChannelId$1, s as listTelegramAccountIds, t as getChannelPlugin, v as listEnabledDiscordAccounts, y as resolveDiscordAccount } from "./plugins-CO1rgH0r.js";
24
+ import { a as logoutWeb, d as webAuthExists, i as logWebSelfId, n as resolveWhatsAppAccount, r as getWebAuthAgeMs, s as readWebSelfId } from "./accounts-Dx4aJi3x.js";
25
25
  import { n as withProgress, r as withProgressTotals } from "./progress-Da1ehW-x.js";
26
26
  import { r as stylePromptTitle } from "./prompt-style-Dc0C5HC9.js";
27
- import { i as resolveMemorySearchConfig, n as resolveRetryConfig, r as retryAsync } from "./manager-CdFcVnZR.js";
27
+ import { i as resolveMemorySearchConfig, n as resolveRetryConfig, r as retryAsync } from "./manager-DLK8bAAA.js";
28
28
  import { a as resolveSessionTranscriptsDirForAgent, n as resolveSessionFilePath, o as resolveStorePath, r as resolveSessionTranscriptPath } from "./paths-C27OFaz1.js";
29
29
  import { t as emitSessionTranscriptUpdate } from "./transcript-events-CZ8CG4ht.js";
30
- import { c as listMemoryFiles, l as normalizeExtraMemoryPaths } from "./sqlite-DODNHWJb.js";
31
- import { C as mediaKindFromMime, _ as imageMimeFromFormat, b as kindFromMime, g as getFileExtension, h as extensionForMime, i as SsrFBlockedError, m as detectMime, n as getMediaDir, p as resizeToJpeg, r as saveMediaBuffer, u as getImageMetadata, v as isAudioFileName, x as MAX_IMAGE_BYTES, y as isGifMedia } from "./routes-CnhRELg3.js";
32
- import { A as buildBootstrapContextFiles, B as normalizeThinkLevel, C as isLikelyContextOverflowError, D as parseImageDimensionError, E as isTimeoutErrorMessage, F as formatXHighModelHint, G as sanitizeImageBlocks, H as normalizeVerboseLevel, K as sanitizeToolResultImages, M as resolveBootstrapMaxChars, N as sanitizeGoogleTurnOrdering, O as parseImageSizeError, P as formatThinkingLevels, R as normalizeElevatedLevel, S as isFailoverErrorMessage, T as isRawApiErrorPayload, U as resolveResponseUsageMode, V as normalizeUsageDisplay, W as supportsXHighThinking, _ as isBillingAssistantError, a as isMessagingToolDuplicateNormalized, b as isContextOverflowError, c as downgradeOpenAIReasoningBlocks, d as BILLING_ERROR_USER_MESSAGE, f as classifyFailoverReason, g as isAuthAssistantError, h as getApiErrorPayloadFingerprint, j as ensureSessionHeader, k as sanitizeUserFacingText, l as isAntigravityClaude, m as formatRawAssistantErrorForUi, n as validateGeminiTurns, o as normalizeTextForComparison, p as formatAssistantErrorText, r as pickFallbackThinkingLevel, s as sanitizeSessionMessagesImages, t as validateAnthropicTurns, u as isGoogleModelApi, v as isCloudCodeAssistFormatError, w as isRateLimitAssistantError, x as isFailoverAssistantError, y as isCompactionFailureError, z as normalizeReasoningLevel } from "./pi-embedded-helpers-DadKWPQE.js";
33
- import { A as chunkMarkdownIR, B as chunkMarkdownText, C as throwIfAborted, D as HEARTBEAT_TOKEN, E as parseInlineDirectives$1, F as MediaFetchError, G as resolveTextChunkLimit, H as chunkText, I as fetchRemoteMedia, J as parseFenceSpans, K as findFenceSpanAt, L as fetchWithSsrFGuard, M as markdownToIRWithMeta, N as loadWebMedia, O as SILENT_REPLY_TOKEN, P as loadWebMediaRaw, R as resolveMarkdownTableMode, S as normalizeTargetForProvider, T as splitMediaFromOutput, U as chunkTextWithMode, V as chunkMarkdownTextWithMode, W as resolveChunkMode, _ as signalCheck, b as buildTargetResolverSignature, c as applyReplyThreading, d as shouldSuppressMessagingToolReplies, f as createReplyToModeFilterForChannel, g as sendTypingSignal, h as sendReadReceiptSignal, j as markdownToIR, k as isSilentReplyText, l as filterMessagingToolDuplicates, m as sendMessageSignal, o as normalizeReplyPayloadsForDelivery, p as resolveReplyToMode, q as isSafeFenceBreak, s as applyReplyTagsToPayload, t as deliverOutboundPayloads, u as isRenderablePayload, v as signalRpcRequest, w as parseReplyDirectives, x as normalizeChannelTargetInput, y as streamSignalEvents, z as chunkByNewline } from "./deliver-BpcYe8zG.js";
34
- import { $ as stripPluginOnlyAllowlist, A as resolveSessionResetType, B as resolveConversationLabel, C as normalizeDeliveryContext, D as evaluateSessionFreshness, E as resolveSessionKey$1, H as resolveGroupSessionKey, I as resolveMainSessionKey, J as collectExplicitAllowlist, K as applyOwnerOnlyToolPolicy, M as DEFAULT_RESET_TRIGGERS, N as canonicalizeMainSessionAlias, O as resolveChannelResetConfig, Q as resolveToolProfilePolicy, R as deriveSessionMetaPatch, S as mergeDeliveryContext, U as resolveSandboxConfigForAgent, V as buildGroupDisplayName, Y as expandPolicyWithPluginGroups, Z as normalizeToolName, _ as updateSessionStoreEntry, a as ensureSandboxWorkspaceForSession, at as resolveChannelGroupPolicy, b as deliveryContextFromSession, c as resolveSandboxRuntimeStatus, ct as listEnabledSignalAccounts, d as loadSessionStore, f as readSessionUpdatedAt, g as updateSessionStore, h as updateLastRoute, it as listChannelDocks, j as resolveThreadFlag, k as resolveSessionResetPolicy, l as appendAssistantMessageToSessionTranscript, lt as resolveSignalAccount, o as resolveSandboxContext, ot as resolveChannelGroupRequireMention, p as recordSessionMetaFromInbound, q as buildPluginToolGroups, rt as getChannelDock, ut as resolveIMessageAccount, v as isCacheEnabled, w as normalizeSessionDeliveryFields, x as deliveryContextKey, y as resolveCacheTtlMs$1 } from "./sandbox-CXXC0AOA.js";
35
- import { _ as parseCommandArgs, b as serializeCommandArgs, d as findCommandByNativeName, f as listChatCommands, g as normalizeCommandBody, h as listNativeCommandSpecsForConfig, i as extractTextFromMessage, m as listNativeCommandSpecs, p as listChatCommandsForConfig, u as buildCommandTextFromArgs, v as resolveCommandArgChoices, x as shouldHandleTextCommands, y as resolveCommandArgMenu } from "./tui-formatters-CCOWLfCX.js";
36
- import { i as getMachineDisplayName, r as createBrowserRouteDispatcher, t as isWSL } from "./wsl-CtSDIi51.js";
37
- import { a as resolveSkillsPromptForRun, i as loadWorkspaceSkillEntries, l as applySkillEnvOverrides, n as buildWorkspaceSkillCommandSpecs, r as buildWorkspaceSkillSnapshot, s as resolvePluginSkillDirs, u as applySkillEnvOverridesFromSnapshot } from "./skills-CwXLq-nk.js";
38
- import { _ as stripThinkingTagsFromText, a as decodeDataUrl, c as extractAssistantText$1, d as extractThinkingFromTaggedText, f as formatReasoningMessage, g as stripMinimaxToolCallXml, h as stripDowngradedToolCallText, i as coerceImageModelConfig, l as extractAssistantThinking, m as promoteThinkingTagsToBlocks, o as resolveProviderVisionModelFromConfig, p as inferToolMetaFromArgs, r as coerceImageAssistantText, s as minimaxUnderstandImage, t as describeImageWithModel, u as extractThinkingFromTaggedStream, v as ensureOpenClawModelsJson } from "./image-D1s2KO45.js";
30
+ import { c as listMemoryFiles, l as normalizeExtraMemoryPaths } from "./sqlite-DmufeXxk.js";
31
+ import { C as mediaKindFromMime, _ as imageMimeFromFormat, b as kindFromMime, g as getFileExtension, h as extensionForMime, i as SsrFBlockedError, m as detectMime, n as getMediaDir, p as resizeToJpeg, r as saveMediaBuffer, u as getImageMetadata, v as isAudioFileName, x as MAX_IMAGE_BYTES, y as isGifMedia } from "./routes-BUDqG0bE.js";
32
+ import { A as buildBootstrapContextFiles, B as normalizeThinkLevel, C as isLikelyContextOverflowError, D as parseImageDimensionError, E as isTimeoutErrorMessage, F as formatXHighModelHint, G as sanitizeImageBlocks, H as normalizeVerboseLevel, K as sanitizeToolResultImages, M as resolveBootstrapMaxChars, N as sanitizeGoogleTurnOrdering, O as parseImageSizeError, P as formatThinkingLevels, R as normalizeElevatedLevel, S as isFailoverErrorMessage, T as isRawApiErrorPayload, U as resolveResponseUsageMode, V as normalizeUsageDisplay, W as supportsXHighThinking, _ as isBillingAssistantError, a as isMessagingToolDuplicateNormalized, b as isContextOverflowError, c as downgradeOpenAIReasoningBlocks, d as BILLING_ERROR_USER_MESSAGE, f as classifyFailoverReason, g as isAuthAssistantError, h as getApiErrorPayloadFingerprint, j as ensureSessionHeader, k as sanitizeUserFacingText, l as isAntigravityClaude, m as formatRawAssistantErrorForUi, n as validateGeminiTurns, o as normalizeTextForComparison, p as formatAssistantErrorText, r as pickFallbackThinkingLevel, s as sanitizeSessionMessagesImages, t as validateAnthropicTurns, u as isGoogleModelApi, v as isCloudCodeAssistFormatError, w as isRateLimitAssistantError, x as isFailoverAssistantError, y as isCompactionFailureError, z as normalizeReasoningLevel } from "./pi-embedded-helpers-n7o6YJmY.js";
33
+ import { A as chunkMarkdownIR, B as chunkMarkdownText, C as throwIfAborted, D as HEARTBEAT_TOKEN, E as parseInlineDirectives$1, F as MediaFetchError, G as resolveTextChunkLimit, H as chunkText, I as fetchRemoteMedia, J as parseFenceSpans, K as findFenceSpanAt, L as fetchWithSsrFGuard, M as markdownToIRWithMeta, N as loadWebMedia, O as SILENT_REPLY_TOKEN, P as loadWebMediaRaw, R as resolveMarkdownTableMode, S as normalizeTargetForProvider, T as splitMediaFromOutput, U as chunkTextWithMode, V as chunkMarkdownTextWithMode, W as resolveChunkMode, _ as signalCheck, b as buildTargetResolverSignature, c as applyReplyThreading, d as shouldSuppressMessagingToolReplies, f as createReplyToModeFilterForChannel, g as sendTypingSignal, h as sendReadReceiptSignal, j as markdownToIR, k as isSilentReplyText, l as filterMessagingToolDuplicates, m as sendMessageSignal, o as normalizeReplyPayloadsForDelivery, p as resolveReplyToMode, q as isSafeFenceBreak, s as applyReplyTagsToPayload, t as deliverOutboundPayloads, u as isRenderablePayload, v as signalRpcRequest, w as parseReplyDirectives, x as normalizeChannelTargetInput, y as streamSignalEvents, z as chunkByNewline } from "./deliver-BFZRT50l.js";
34
+ import { $ as stripPluginOnlyAllowlist, A as resolveSessionResetType, B as resolveConversationLabel, C as normalizeDeliveryContext, D as evaluateSessionFreshness, E as resolveSessionKey$1, H as resolveGroupSessionKey, I as resolveMainSessionKey, J as collectExplicitAllowlist, K as applyOwnerOnlyToolPolicy, M as DEFAULT_RESET_TRIGGERS, N as canonicalizeMainSessionAlias, O as resolveChannelResetConfig, Q as resolveToolProfilePolicy, R as deriveSessionMetaPatch, S as mergeDeliveryContext, U as resolveSandboxConfigForAgent, V as buildGroupDisplayName, Y as expandPolicyWithPluginGroups, Z as normalizeToolName, _ as updateSessionStoreEntry, a as ensureSandboxWorkspaceForSession, at as resolveChannelGroupPolicy, b as deliveryContextFromSession, c as resolveSandboxRuntimeStatus, ct as listEnabledSignalAccounts, d as loadSessionStore, f as readSessionUpdatedAt, g as updateSessionStore, h as updateLastRoute, it as listChannelDocks, j as resolveThreadFlag, k as resolveSessionResetPolicy, l as appendAssistantMessageToSessionTranscript, lt as resolveSignalAccount, o as resolveSandboxContext, ot as resolveChannelGroupRequireMention, p as recordSessionMetaFromInbound, q as buildPluginToolGroups, rt as getChannelDock, ut as resolveIMessageAccount, v as isCacheEnabled, w as normalizeSessionDeliveryFields, x as deliveryContextKey, y as resolveCacheTtlMs$1 } from "./sandbox-D889a-F8.js";
35
+ import { _ as parseCommandArgs, b as serializeCommandArgs, d as findCommandByNativeName, f as listChatCommands, g as normalizeCommandBody, h as listNativeCommandSpecsForConfig, i as extractTextFromMessage, m as listNativeCommandSpecs, p as listChatCommandsForConfig, u as buildCommandTextFromArgs, v as resolveCommandArgChoices, x as shouldHandleTextCommands, y as resolveCommandArgMenu } from "./tui-formatters-Cmrdmcx8.js";
36
+ import { i as getMachineDisplayName, r as createBrowserRouteDispatcher, t as isWSL } from "./wsl-C-eVEqs4.js";
37
+ import { a as resolveSkillsPromptForRun, i as loadWorkspaceSkillEntries, l as applySkillEnvOverrides, n as buildWorkspaceSkillCommandSpecs, r as buildWorkspaceSkillSnapshot, s as resolvePluginSkillDirs, u as applySkillEnvOverridesFromSnapshot } from "./skills-w-kwwPb2.js";
38
+ import { _ as stripThinkingTagsFromText, a as decodeDataUrl, c as extractAssistantText$1, d as extractThinkingFromTaggedText, f as formatReasoningMessage, g as stripMinimaxToolCallXml, h as stripDowngradedToolCallText, i as coerceImageModelConfig, l as extractAssistantThinking, m as promoteThinkingTagsToBlocks, o as resolveProviderVisionModelFromConfig, p as inferToolMetaFromArgs, r as coerceImageAssistantText, s as minimaxUnderstandImage, t as describeImageWithModel, u as extractThinkingFromTaggedStream, v as ensureOpenClawModelsJson } from "./image-CY3Qb62D.js";
39
39
  import { a as evaluateShellAllowlist, d as requiresExecApproval, f as resolveExecApprovals, h as resolveSafeBins, o as maxAsk, p as resolveExecApprovalsFromFile, s as minSecurity, t as addAllowlistEntry, u as recordAllowlistUse } from "./exec-approvals-BrCstKZw.js";
40
- import { a as canvasSnapshotTempPath, c as parseCameraClipPayload, d as buildNodeShellCommand, i as parseEnvPairs, l as parseCameraSnapPayload, n as screenRecordTempPath, o as parseCanvasSnapshotPayload, r as writeScreenRecordToFile, s as cameraTempPath, t as parseScreenRecordPayload, u as writeBase64ToFile } from "./nodes-screen-DGlNPbk4.js";
40
+ import { a as canvasSnapshotTempPath, c as parseCameraClipPayload, d as buildNodeShellCommand, i as parseEnvPairs, l as parseCameraSnapPayload, n as screenRecordTempPath, o as parseCanvasSnapshotPayload, r as writeScreenRecordToFile, s as cameraTempPath, t as parseScreenRecordPayload, u as writeBase64ToFile } from "./nodes-screen-DufGlxX3.js";
41
41
  import { i as formatDurationSeconds, r as formatDurationPrecise, t as formatDurationCompact } from "./format-duration-DCXJx2ba.js";
42
42
  import { n as redactSensitiveText } from "./redact-BHmk44DI.js";
43
43
  import { n as resolveToolDisplay } from "./tool-display-Ds0HgmMB.js";
44
44
  import { t as parseAbsoluteTimeMs } from "./parse-Cjiudy6x.js";
45
45
  import { d as resolveGatewaySystemdServiceName, l as resolveGatewayLaunchAgentLabel } from "./constants-DuoCkWRh.js";
46
- import { n as resolveMessageChannelSelection, t as listConfiguredMessageChannels } from "./channel-selection-Cm-kszg3.js";
46
+ import { n as resolveMessageChannelSelection, t as listConfiguredMessageChannels } from "./channel-selection-Dc2O9U87.js";
47
47
  import { n as wrapFetchWithAbortSignal, t as resolveFetch } from "./fetch-BCaCYTnJ.js";
48
48
  import { t as parseTimeoutMs } from "./parse-timeout-DMW-z4Iz.js";
49
49
  import { c as derivePromptTokens, d as normalizeUsage, l as deriveSessionTotalTokens, n as loadCostUsageSummary, o as extractToolCallNames, r as loadSessionCostSummary, s as hasToolCall, u as hasNonzeroUsage } from "./session-cost-usage-LOtSLoh7.js";
50
50
  import { n as formatTimeAgo } from "./format-relative-CZOlQ2pA.js";
51
51
  import { i as resolveModelCostConfig, n as formatTokenCount$2, r as formatUsd$1, t as estimateUsageCost } from "./usage-format-C4JfTbSp.js";
52
- import { a as isToolAllowedByPolicies, c as resolveSubagentToolPolicy, i as filterToolsByPolicy, n as resolveNativeCommandsEnabled, o as resolveEffectiveToolPolicy, r as resolveNativeSkillsEnabled, s as resolveGroupToolPolicy, t as isNativeCommandsExplicitlyDisabled } from "./commands-D1Vz_pbj.js";
53
- import { a as removeChannelAllowFromStoreEntry, c as listPairingChannels, i as readChannelAllowFromStore, o as upsertChannelPairingRequest, t as addChannelAllowFromStoreEntry } from "./pairing-store-DiCaUGXP.js";
54
- import { a as formatError$1, i as createWaSocket, n as startWebLoginWithQr, o as getStatusCode$1, r as waitForWebLogin, s as waitForWaConnection } from "./login-qr-fi3WTytg.js";
52
+ import { a as isToolAllowedByPolicies, c as resolveSubagentToolPolicy, i as filterToolsByPolicy, n as resolveNativeCommandsEnabled, o as resolveEffectiveToolPolicy, r as resolveNativeSkillsEnabled, s as resolveGroupToolPolicy, t as isNativeCommandsExplicitlyDisabled } from "./commands-DoVIOYAz.js";
53
+ import { a as removeChannelAllowFromStoreEntry, c as listPairingChannels, i as readChannelAllowFromStore, o as upsertChannelPairingRequest, t as addChannelAllowFromStoreEntry } from "./pairing-store-DKhgYwjg.js";
54
+ import { a as formatError$1, i as createWaSocket, n as startWebLoginWithQr, o as getStatusCode$1, r as waitForWebLogin, s as waitForWaConnection } from "./login-qr-BoEpQD7W.js";
55
55
  import { r as withManager } from "./cli-utils-DKF-leO3.js";
56
- import { t as resolvePairingIdLabel } from "./pairing-labels-DP5H8gf6.js";
56
+ import { t as resolvePairingIdLabel } from "./pairing-labels-B6ViJi8r.js";
57
57
  import { createRequire } from "node:module";
58
58
  import { execSync, spawn, spawnSync } from "node:child_process";
59
59
  import path from "node:path";
@@ -61,7 +61,7 @@ import process$1 from "node:process";
61
61
  import os, { homedir, tmpdir } from "node:os";
62
62
  import fs, { constants, existsSync, mkdirSync, mkdtempSync, readFileSync, renameSync, rmSync, statSync, unlinkSync, writeFileSync } from "node:fs";
63
63
  import { inspect } from "node:util";
64
- import fs$1 from "node:fs/promises";
64
+ import fsPromises from "node:fs/promises";
65
65
  import { fileURLToPath } from "node:url";
66
66
  import { complete, completeSimple, streamSimple } from "@mariozechner/pi-ai";
67
67
  import crypto, { randomUUID } from "node:crypto";
@@ -1398,7 +1398,7 @@ async function getMemorySearchManager(params) {
1398
1398
  const cached = QMD_MANAGER_CACHE.get(cacheKey);
1399
1399
  if (cached) return { manager: cached };
1400
1400
  try {
1401
- const { QmdMemoryManager } = await import("./qmd-manager-CjTG-nW_.js");
1401
+ const { QmdMemoryManager } = await import("./qmd-manager-BRXyEw0a.js");
1402
1402
  const primary = await QmdMemoryManager.create({
1403
1403
  cfg: params.cfg,
1404
1404
  agentId: params.agentId,
@@ -1408,7 +1408,7 @@ async function getMemorySearchManager(params) {
1408
1408
  const wrapper = new FallbackMemoryManager({
1409
1409
  primary,
1410
1410
  fallbackFactory: async () => {
1411
- const { MemoryIndexManager } = await import("./manager-CdFcVnZR.js").then((n) => n.t);
1411
+ const { MemoryIndexManager } = await import("./manager-DLK8bAAA.js").then((n) => n.t);
1412
1412
  return await MemoryIndexManager.get(params);
1413
1413
  }
1414
1414
  }, () => QMD_MANAGER_CACHE.delete(cacheKey));
@@ -1421,7 +1421,7 @@ async function getMemorySearchManager(params) {
1421
1421
  }
1422
1422
  }
1423
1423
  try {
1424
- const { MemoryIndexManager } = await import("./manager-CdFcVnZR.js").then((n) => n.t);
1424
+ const { MemoryIndexManager } = await import("./manager-DLK8bAAA.js").then((n) => n.t);
1425
1425
  return { manager: await MemoryIndexManager.get(params) };
1426
1426
  } catch (err) {
1427
1427
  return {
@@ -1662,7 +1662,7 @@ async function imageResult(params) {
1662
1662
  }, params.label);
1663
1663
  }
1664
1664
  async function imageResultFromFile(params) {
1665
- const buf = await fs$1.readFile(params.path);
1665
+ const buf = await fsPromises.readFile(params.path);
1666
1666
  const mimeType = await detectMime({ buffer: buf.slice(0, 256) }) ?? "image/png";
1667
1667
  return await imageResult({
1668
1668
  label: params.label,
@@ -4977,7 +4977,7 @@ function resolvePluginTools(params) {
4977
4977
  //#endregion
4978
4978
  //#region src/agents/apply-patch-update.ts
4979
4979
  async function applyUpdateHunk(filePath, chunks) {
4980
- const originalLines = (await fs$1.readFile(filePath, "utf8").catch((err) => {
4980
+ const originalLines = (await fsPromises.readFile(filePath, "utf8").catch((err) => {
4981
4981
  throw new Error(`Failed to read file to update ${filePath}: ${err}`);
4982
4982
  })).split("\n");
4983
4983
  if (originalLines.length > 0 && originalLines[originalLines.length - 1] === "") originalLines.pop();
@@ -5147,7 +5147,7 @@ async function assertNoSymlink(relative, root) {
5147
5147
  for (const part of parts) {
5148
5148
  current = path.join(current, part);
5149
5149
  try {
5150
- if ((await fs$1.lstat(current)).isSymbolicLink()) throw new Error(`Symlink not allowed in sandbox path: ${current}`);
5150
+ if ((await fsPromises.lstat(current)).isSymbolicLink()) throw new Error(`Symlink not allowed in sandbox path: ${current}`);
5151
5151
  } catch (err) {
5152
5152
  if (err.code === "ENOENT") return;
5153
5153
  throw err;
@@ -5226,13 +5226,13 @@ async function applyPatch(input, options) {
5226
5226
  if (hunk.kind === "add") {
5227
5227
  const target = await resolvePatchPath(hunk.path, options);
5228
5228
  await ensureDir(target.resolved);
5229
- await fs$1.writeFile(target.resolved, hunk.contents, "utf8");
5229
+ await fsPromises.writeFile(target.resolved, hunk.contents, "utf8");
5230
5230
  recordSummary(summary, seen, "added", target.display);
5231
5231
  continue;
5232
5232
  }
5233
5233
  if (hunk.kind === "delete") {
5234
5234
  const target = await resolvePatchPath(hunk.path, options);
5235
- await fs$1.rm(target.resolved);
5235
+ await fsPromises.rm(target.resolved);
5236
5236
  recordSummary(summary, seen, "deleted", target.display);
5237
5237
  continue;
5238
5238
  }
@@ -5241,11 +5241,11 @@ async function applyPatch(input, options) {
5241
5241
  if (hunk.movePath) {
5242
5242
  const moveTarget = await resolvePatchPath(hunk.movePath, options);
5243
5243
  await ensureDir(moveTarget.resolved);
5244
- await fs$1.writeFile(moveTarget.resolved, applied, "utf8");
5245
- await fs$1.rm(target.resolved);
5244
+ await fsPromises.writeFile(moveTarget.resolved, applied, "utf8");
5245
+ await fsPromises.rm(target.resolved);
5246
5246
  recordSummary(summary, seen, "modified", moveTarget.display);
5247
5247
  } else {
5248
- await fs$1.writeFile(target.resolved, applied, "utf8");
5248
+ await fsPromises.writeFile(target.resolved, applied, "utf8");
5249
5249
  recordSummary(summary, seen, "modified", target.display);
5250
5250
  }
5251
5251
  }
@@ -5269,7 +5269,7 @@ function formatSummary(summary) {
5269
5269
  async function ensureDir(filePath) {
5270
5270
  const parent = path.dirname(filePath);
5271
5271
  if (!parent || parent === ".") return;
5272
- await fs$1.mkdir(parent, { recursive: true });
5272
+ await fsPromises.mkdir(parent, { recursive: true });
5273
5273
  }
5274
5274
  async function resolvePatchPath(filePath, options) {
5275
5275
  if (options.sandboxRoot) {
@@ -6018,7 +6018,7 @@ async function resolveSandboxWorkdir(params) {
6018
6018
  cwd: process.cwd(),
6019
6019
  root: params.sandbox.workspaceDir
6020
6020
  });
6021
- if (!(await fs$1.stat(resolved.resolved)).isDirectory()) throw new Error("workdir is not a directory");
6021
+ if (!(await fsPromises.stat(resolved.resolved)).isDirectory()) throw new Error("workdir is not a directory");
6022
6022
  const relative = resolved.relative ? resolved.relative.split(path.sep).join(path.posix.sep) : "";
6023
6023
  const containerWorkdir = relative ? path.posix.join(params.sandbox.containerWorkdir, relative) : params.sandbox.containerWorkdir;
6024
6024
  return {
@@ -9218,7 +9218,7 @@ function createCanvasTool() {
9218
9218
  });
9219
9219
  }
9220
9220
  case "a2ui_push": {
9221
- const jsonl = typeof params.jsonl === "string" && params.jsonl.trim() ? params.jsonl : typeof params.jsonlPath === "string" && params.jsonlPath.trim() ? await fs$1.readFile(params.jsonlPath.trim(), "utf8") : "";
9221
+ const jsonl = typeof params.jsonl === "string" && params.jsonl.trim() ? params.jsonl : typeof params.jsonlPath === "string" && params.jsonlPath.trim() ? await fsPromises.readFile(params.jsonlPath.trim(), "utf8") : "";
9222
9222
  if (!jsonl.trim()) throw new Error("jsonl or jsonlPath required");
9223
9223
  await invoke("canvas.a2ui.pushJSONL", { jsonl });
9224
9224
  return jsonResult({ ok: true });
@@ -9854,27 +9854,27 @@ function resolveRestartSentinelPath(env = process.env) {
9854
9854
  }
9855
9855
  async function writeRestartSentinel(payload, env = process.env) {
9856
9856
  const filePath = resolveRestartSentinelPath(env);
9857
- await fs$1.mkdir(path.dirname(filePath), { recursive: true });
9857
+ await fsPromises.mkdir(path.dirname(filePath), { recursive: true });
9858
9858
  const data = {
9859
9859
  version: 1,
9860
9860
  payload
9861
9861
  };
9862
- await fs$1.writeFile(filePath, `${JSON.stringify(data, null, 2)}\n`, "utf-8");
9862
+ await fsPromises.writeFile(filePath, `${JSON.stringify(data, null, 2)}\n`, "utf-8");
9863
9863
  return filePath;
9864
9864
  }
9865
9865
  async function readRestartSentinel(env = process.env) {
9866
9866
  const filePath = resolveRestartSentinelPath(env);
9867
9867
  try {
9868
- const raw = await fs$1.readFile(filePath, "utf-8");
9868
+ const raw = await fsPromises.readFile(filePath, "utf-8");
9869
9869
  let parsed;
9870
9870
  try {
9871
9871
  parsed = JSON.parse(raw);
9872
9872
  } catch {
9873
- await fs$1.unlink(filePath).catch(() => {});
9873
+ await fsPromises.unlink(filePath).catch(() => {});
9874
9874
  return null;
9875
9875
  }
9876
9876
  if (!parsed || parsed.version !== 1 || !parsed.payload) {
9877
- await fs$1.unlink(filePath).catch(() => {});
9877
+ await fsPromises.unlink(filePath).catch(() => {});
9878
9878
  return null;
9879
9879
  }
9880
9880
  return parsed;
@@ -9886,7 +9886,7 @@ async function consumeRestartSentinel(env = process.env) {
9886
9886
  const filePath = resolveRestartSentinelPath(env);
9887
9887
  const parsed = await readRestartSentinel(env);
9888
9888
  if (!parsed) return null;
9889
- await fs$1.unlink(filePath).catch(() => {});
9889
+ await fsPromises.unlink(filePath).catch(() => {});
9890
9890
  return parsed;
9891
9891
  }
9892
9892
  function formatRestartSentinelMessage(payload) {
@@ -10673,7 +10673,7 @@ async function resolveSandboxedImagePath(params) {
10673
10673
  const candidateRel = path.join("media", "inbound", name);
10674
10674
  const candidateAbs = path.join(params.sandboxRoot, candidateRel);
10675
10675
  try {
10676
- await fs$1.stat(candidateAbs);
10676
+ await fsPromises.stat(candidateAbs);
10677
10677
  } catch {
10678
10678
  throw err;
10679
10679
  }
@@ -16674,7 +16674,7 @@ async function routeReply(params) {
16674
16674
  const resolvedReplyToId = replyToId ?? (channelId === "slack" && threadId != null && threadId !== "" ? String(threadId) : void 0);
16675
16675
  const resolvedThreadId = channelId === "slack" ? null : threadId ?? null;
16676
16676
  try {
16677
- const { deliverOutboundPayloads } = await import("./deliver-BpcYe8zG.js").then((n) => n.n);
16677
+ const { deliverOutboundPayloads } = await import("./deliver-BFZRT50l.js").then((n) => n.n);
16678
16678
  return {
16679
16679
  ok: true,
16680
16680
  messageId: (await deliverOutboundPayloads({
@@ -23846,7 +23846,7 @@ async function repairSessionFileIfNeeded(params) {
23846
23846
  };
23847
23847
  let content;
23848
23848
  try {
23849
- content = await fs$1.readFile(sessionFile, "utf-8");
23849
+ content = await fsPromises.readFile(sessionFile, "utf-8");
23850
23850
  } catch (err) {
23851
23851
  if (err?.code === "ENOENT") return {
23852
23852
  repaired: false,
@@ -23894,15 +23894,15 @@ async function repairSessionFileIfNeeded(params) {
23894
23894
  const backupPath = `${sessionFile}.bak-${process.pid}-${Date.now()}`;
23895
23895
  const tmpPath = `${sessionFile}.repair-${process.pid}-${Date.now()}.tmp`;
23896
23896
  try {
23897
- const stat = await fs$1.stat(sessionFile).catch(() => null);
23898
- await fs$1.writeFile(backupPath, content, "utf-8");
23899
- if (stat) await fs$1.chmod(backupPath, stat.mode);
23900
- await fs$1.writeFile(tmpPath, cleaned, "utf-8");
23901
- if (stat) await fs$1.chmod(tmpPath, stat.mode);
23902
- await fs$1.rename(tmpPath, sessionFile);
23897
+ const stat = await fsPromises.stat(sessionFile).catch(() => null);
23898
+ await fsPromises.writeFile(backupPath, content, "utf-8");
23899
+ if (stat) await fsPromises.chmod(backupPath, stat.mode);
23900
+ await fsPromises.writeFile(tmpPath, cleaned, "utf-8");
23901
+ if (stat) await fsPromises.chmod(tmpPath, stat.mode);
23902
+ await fsPromises.rename(tmpPath, sessionFile);
23903
23903
  } catch (err) {
23904
23904
  try {
23905
- await fs$1.unlink(tmpPath);
23905
+ await fsPromises.unlink(tmpPath);
23906
23906
  } catch (cleanupErr) {
23907
23907
  params.warn?.(`session file repair cleanup failed: ${cleanupErr instanceof Error ? cleanupErr.message : "unknown error"} (${path.basename(tmpPath)})`);
23908
23908
  }
@@ -24528,7 +24528,7 @@ function registerCleanupHandlers() {
24528
24528
  }
24529
24529
  async function readLockPayload(lockPath) {
24530
24530
  try {
24531
- const raw = await fs$1.readFile(lockPath, "utf8");
24531
+ const raw = await fsPromises.readFile(lockPath, "utf8");
24532
24532
  const parsed = JSON.parse(raw);
24533
24533
  if (typeof parsed.pid !== "number") return null;
24534
24534
  if (typeof parsed.createdAt !== "string") return null;
@@ -24546,10 +24546,10 @@ async function acquireSessionWriteLock(params) {
24546
24546
  const staleMs = params.staleMs ?? 1800 * 1e3;
24547
24547
  const sessionFile = path.resolve(params.sessionFile);
24548
24548
  const sessionDir = path.dirname(sessionFile);
24549
- await fs$1.mkdir(sessionDir, { recursive: true });
24549
+ await fsPromises.mkdir(sessionDir, { recursive: true });
24550
24550
  let normalizedDir = sessionDir;
24551
24551
  try {
24552
- normalizedDir = await fs$1.realpath(sessionDir);
24552
+ normalizedDir = await fsPromises.realpath(sessionDir);
24553
24553
  } catch {}
24554
24554
  const normalizedSessionFile = path.join(normalizedDir, path.basename(sessionFile));
24555
24555
  const lockPath = `${normalizedSessionFile}.lock`;
@@ -24563,7 +24563,7 @@ async function acquireSessionWriteLock(params) {
24563
24563
  if (current.count > 0) return;
24564
24564
  HELD_LOCKS.delete(normalizedSessionFile);
24565
24565
  await current.handle.close();
24566
- await fs$1.rm(current.lockPath, { force: true });
24566
+ await fsPromises.rm(current.lockPath, { force: true });
24567
24567
  } };
24568
24568
  }
24569
24569
  const startedAt = Date.now();
@@ -24571,7 +24571,7 @@ async function acquireSessionWriteLock(params) {
24571
24571
  while (Date.now() - startedAt < timeoutMs) {
24572
24572
  attempt += 1;
24573
24573
  try {
24574
- const handle = await fs$1.open(lockPath, "wx");
24574
+ const handle = await fsPromises.open(lockPath, "wx");
24575
24575
  await handle.writeFile(JSON.stringify({
24576
24576
  pid: process.pid,
24577
24577
  createdAt: (/* @__PURE__ */ new Date()).toISOString()
@@ -24588,7 +24588,7 @@ async function acquireSessionWriteLock(params) {
24588
24588
  if (current.count > 0) return;
24589
24589
  HELD_LOCKS.delete(normalizedSessionFile);
24590
24590
  await current.handle.close();
24591
- await fs$1.rm(current.lockPath, { force: true });
24591
+ await fsPromises.rm(current.lockPath, { force: true });
24592
24592
  } };
24593
24593
  } catch (err) {
24594
24594
  if (err.code !== "EEXIST") throw err;
@@ -24597,7 +24597,7 @@ async function acquireSessionWriteLock(params) {
24597
24597
  const stale = !Number.isFinite(createdAt) || Date.now() - createdAt > staleMs;
24598
24598
  const alive = payload?.pid ? isAlive(payload.pid) : false;
24599
24599
  if (stale || !alive) {
24600
- await fs$1.rm(lockPath, { force: true });
24600
+ await fsPromises.rm(lockPath, { force: true });
24601
24601
  continue;
24602
24602
  }
24603
24603
  const delay = Math.min(1e3, 50 * attempt);
@@ -25419,7 +25419,7 @@ async function prewarmSessionFile(sessionFile) {
25419
25419
  if (!isSessionManagerCacheEnabled()) return;
25420
25420
  if (isSessionManagerCached(sessionFile)) return;
25421
25421
  try {
25422
- const handle = await fs$1.open(sessionFile, "r");
25422
+ const handle = await fsPromises.open(sessionFile, "r");
25423
25423
  try {
25424
25424
  const buffer = Buffer$1.alloc(4096);
25425
25425
  await handle.read(buffer, 0, buffer.length, 0);
@@ -26014,7 +26014,7 @@ async function compactEmbeddedPiSessionDirect(params) {
26014
26014
  reason: describeUnknownError(err)
26015
26015
  };
26016
26016
  }
26017
- await fs$1.mkdir(resolvedWorkspace, { recursive: true });
26017
+ await fsPromises.mkdir(resolvedWorkspace, { recursive: true });
26018
26018
  const sandboxSessionKey = params.sessionKey?.trim() || params.sessionId;
26019
26019
  const sandbox = await resolveSandboxContext({
26020
26020
  config: params.config,
@@ -26022,7 +26022,7 @@ async function compactEmbeddedPiSessionDirect(params) {
26022
26022
  workspaceDir: resolvedWorkspace
26023
26023
  });
26024
26024
  const effectiveWorkspace = sandbox?.enabled ? sandbox.workspaceAccess === "rw" ? resolvedWorkspace : sandbox.workspaceDir : resolvedWorkspace;
26025
- await fs$1.mkdir(effectiveWorkspace, { recursive: true });
26025
+ await fsPromises.mkdir(effectiveWorkspace, { recursive: true });
26026
26026
  await ensureSessionHeader({
26027
26027
  sessionFile: params.sessionFile,
26028
26028
  sessionId: params.sessionId,
@@ -26469,12 +26469,12 @@ function getWriter$1(filePath) {
26469
26469
  const existing = writers$1.get(filePath);
26470
26470
  if (existing) return existing;
26471
26471
  const dir = path.dirname(filePath);
26472
- const ready = fs$1.mkdir(dir, { recursive: true }).catch(() => void 0);
26472
+ const ready = fsPromises.mkdir(dir, { recursive: true }).catch(() => void 0);
26473
26473
  let queue = Promise.resolve();
26474
26474
  const writer = {
26475
26475
  filePath,
26476
26476
  write: (line) => {
26477
- queue = queue.then(() => ready).then(() => fs$1.appendFile(filePath, line, "utf8")).catch(() => void 0);
26477
+ queue = queue.then(() => ready).then(() => fsPromises.appendFile(filePath, line, "utf8")).catch(() => void 0);
26478
26478
  }
26479
26479
  };
26480
26480
  writers$1.set(filePath, writer);
@@ -26616,12 +26616,12 @@ function getWriter(filePath) {
26616
26616
  const existing = writers.get(filePath);
26617
26617
  if (existing) return existing;
26618
26618
  const dir = path.dirname(filePath);
26619
- const ready = fs$1.mkdir(dir, { recursive: true }).catch(() => void 0);
26619
+ const ready = fsPromises.mkdir(dir, { recursive: true }).catch(() => void 0);
26620
26620
  let queue = Promise.resolve();
26621
26621
  const writer = {
26622
26622
  filePath,
26623
26623
  write: (line) => {
26624
- queue = queue.then(() => ready).then(() => fs$1.appendFile(filePath, line, "utf8")).catch(() => void 0);
26624
+ queue = queue.then(() => ready).then(() => fsPromises.appendFile(filePath, line, "utf8")).catch(() => void 0);
26625
26625
  }
26626
26626
  };
26627
26627
  writers.set(filePath, writer);
@@ -28598,7 +28598,7 @@ async function prepareSessionManagerForRun(params) {
28598
28598
  return;
28599
28599
  }
28600
28600
  if (params.hadSessionFile && header && !hasAssistant) {
28601
- await fs$1.writeFile(params.sessionFile, "", "utf-8");
28601
+ await fsPromises.writeFile(params.sessionFile, "", "utf-8");
28602
28602
  sm.fileEntries = [header];
28603
28603
  sm.byId?.clear?.();
28604
28604
  sm.labelsById?.clear?.();
@@ -28726,7 +28726,7 @@ async function loadImageFromRef(ref, workspaceDir, options) {
28726
28726
  return null;
28727
28727
  }
28728
28728
  if (ref.type === "path") try {
28729
- await fs$1.stat(targetPath);
28729
+ await fsPromises.stat(targetPath);
28730
28730
  } catch {
28731
28731
  log$6.debug(`Native image: file not found: ${targetPath}`);
28732
28732
  return null;
@@ -28896,7 +28896,7 @@ async function runEmbeddedAttempt(params) {
28896
28896
  const prevCwd = process.cwd();
28897
28897
  const runAbortController = new AbortController();
28898
28898
  log$6.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"}`);
28899
- await fs$1.mkdir(resolvedWorkspace, { recursive: true });
28899
+ await fsPromises.mkdir(resolvedWorkspace, { recursive: true });
28900
28900
  const sandboxSessionKey = params.sessionKey?.trim() || params.sessionId;
28901
28901
  const sandbox = await resolveSandboxContext({
28902
28902
  config: params.config,
@@ -28904,7 +28904,7 @@ async function runEmbeddedAttempt(params) {
28904
28904
  workspaceDir: resolvedWorkspace
28905
28905
  });
28906
28906
  const effectiveWorkspace = sandbox?.enabled ? sandbox.workspaceAccess === "rw" ? resolvedWorkspace : sandbox.workspaceDir : resolvedWorkspace;
28907
- await fs$1.mkdir(effectiveWorkspace, { recursive: true });
28907
+ await fsPromises.mkdir(effectiveWorkspace, { recursive: true });
28908
28908
  let restoreSkillEnv;
28909
28909
  process.chdir(effectiveWorkspace);
28910
28910
  try {
@@ -29123,7 +29123,7 @@ async function runEmbeddedAttempt(params) {
29123
29123
  sessionFile: params.sessionFile,
29124
29124
  warn: (message) => log$6.warn(message)
29125
29125
  });
29126
- const hadSessionFile = await fs$1.stat(params.sessionFile).then(() => true).catch(() => false);
29126
+ const hadSessionFile = await fsPromises.stat(params.sessionFile).then(() => true).catch(() => false);
29127
29127
  const transcriptPolicy = resolveTranscriptPolicy({
29128
29128
  modelApi: params.model?.api,
29129
29129
  provider: params.provider,
@@ -29773,7 +29773,7 @@ async function runEmbeddedPiAgent(params) {
29773
29773
  try {
29774
29774
  while (true) {
29775
29775
  attemptedThinking.add(thinkLevel);
29776
- await fs$1.mkdir(resolvedWorkspace, { recursive: true });
29776
+ await fsPromises.mkdir(resolvedWorkspace, { recursive: true });
29777
29777
  const prompt = provider === "anthropic" ? scrubAnthropicRefusalMagic(params.prompt) : params.prompt;
29778
29778
  const attempt = await runEmbeddedAttempt({
29779
29779
  sessionId: params.sessionId,
@@ -32228,7 +32228,7 @@ var MediaAttachmentCache = class {
32228
32228
  const size = await this.ensureLocalStat(entry);
32229
32229
  if (entry.resolvedPath) {
32230
32230
  if (size !== void 0 && size > params.maxBytes) throw new MediaUnderstandingSkipError("maxBytes", `Attachment ${params.attachmentIndex + 1} exceeds maxBytes ${params.maxBytes}`);
32231
- const buffer = await fs$1.readFile(entry.resolvedPath);
32231
+ const buffer = await fsPromises.readFile(entry.resolvedPath);
32232
32232
  entry.buffer = buffer;
32233
32233
  entry.bufferMime = entry.bufferMime ?? entry.attachment.mime ?? await detectMime({
32234
32234
  buffer,
@@ -32296,10 +32296,10 @@ var MediaAttachmentCache = class {
32296
32296
  });
32297
32297
  const extension = path.extname(bufferResult.fileName || "") || "";
32298
32298
  const tmpPath = path.join(os.tmpdir(), `openclaw-media-${crypto.randomUUID()}${extension}`);
32299
- await fs$1.writeFile(tmpPath, bufferResult.buffer);
32299
+ await fsPromises.writeFile(tmpPath, bufferResult.buffer);
32300
32300
  entry.tempPath = tmpPath;
32301
32301
  entry.tempCleanup = async () => {
32302
- await fs$1.unlink(tmpPath).catch(() => {});
32302
+ await fsPromises.unlink(tmpPath).catch(() => {});
32303
32303
  };
32304
32304
  return {
32305
32305
  path: tmpPath,
@@ -32337,7 +32337,7 @@ var MediaAttachmentCache = class {
32337
32337
  if (!entry.resolvedPath) return;
32338
32338
  if (entry.statSize !== void 0) return entry.statSize;
32339
32339
  try {
32340
- const stat = await fs$1.stat(entry.resolvedPath);
32340
+ const stat = await fsPromises.stat(entry.resolvedPath);
32341
32341
  if (!stat.isFile()) {
32342
32342
  entry.resolvedPath = void 0;
32343
32343
  return;
@@ -32482,9 +32482,9 @@ function candidateBinaryNames(name) {
32482
32482
  }
32483
32483
  async function isExecutable(filePath) {
32484
32484
  try {
32485
- if (!(await fs$1.stat(filePath)).isFile()) return false;
32485
+ if (!(await fsPromises.stat(filePath)).isFile()) return false;
32486
32486
  if (process.platform === "win32") return true;
32487
- await fs$1.access(filePath, constants.X_OK);
32487
+ await fsPromises.access(filePath, constants.X_OK);
32488
32488
  return true;
32489
32489
  } catch {
32490
32490
  return false;
@@ -32521,7 +32521,7 @@ async function hasBinary(name) {
32521
32521
  async function fileExists(filePath) {
32522
32522
  if (!filePath) return false;
32523
32523
  try {
32524
- await fs$1.stat(filePath);
32524
+ await fsPromises.stat(filePath);
32525
32525
  return true;
32526
32526
  } catch {
32527
32527
  return false;
@@ -32836,7 +32836,7 @@ async function resolveCliOutput(params) {
32836
32836
  const commandId = commandBase(params.command);
32837
32837
  const fileOutput = commandId === "whisper-cli" ? resolveWhisperCppOutputPath(params.args) : commandId === "whisper" ? resolveWhisperOutputPath(params.args, params.mediaPath) : null;
32838
32838
  if (fileOutput && await fileExists(fileOutput)) try {
32839
- const content = await fs$1.readFile(fileOutput, "utf8");
32839
+ const content = await fsPromises.readFile(fileOutput, "utf8");
32840
32840
  if (content.trim()) return content.trim();
32841
32841
  } catch {}
32842
32842
  if (commandId === "gemini") {
@@ -33100,7 +33100,7 @@ async function runCliEntry(params) {
33100
33100
  maxBytes,
33101
33101
  timeoutMs
33102
33102
  });
33103
- const outputDir = await fs$1.mkdtemp(path.join(os.tmpdir(), "openclaw-media-cli-"));
33103
+ const outputDir = await fsPromises.mkdtemp(path.join(os.tmpdir(), "openclaw-media-cli-"));
33104
33104
  const mediaPath = pathResult.path;
33105
33105
  const outputBase = path.join(outputDir, path.parse(mediaPath).name);
33106
33106
  const templCtx = {
@@ -33134,7 +33134,7 @@ async function runCliEntry(params) {
33134
33134
  model: command
33135
33135
  };
33136
33136
  } finally {
33137
- await fs$1.rm(outputDir, {
33137
+ await fsPromises.rm(outputDir, {
33138
33138
  recursive: true,
33139
33139
  force: true
33140
33140
  }).catch(() => {});
@@ -34542,7 +34542,7 @@ async function createModelSelectionState(params) {
34542
34542
  }
34543
34543
  }
34544
34544
  if (sessionEntry && sessionStore && sessionKey && sessionEntry.authProfileOverride) {
34545
- const { ensureAuthProfileStore } = await import("./auth-profiles-Dg1lg7TZ.js").then((n) => n.t);
34545
+ const { ensureAuthProfileStore } = await import("./auth-profiles-kZZY0kCW.js").then((n) => n.t);
34546
34546
  const profile = ensureAuthProfileStore(void 0, { allowKeychainPrompt: false }).profiles[sessionEntry.authProfileOverride];
34547
34547
  const providerKey = normalizeProviderId(provider);
34548
34548
  if (!profile || normalizeProviderId(profile.provider) !== providerKey) await clearSessionAuthProfileOverride({
@@ -35624,7 +35624,7 @@ function resolvePaths(baseDir) {
35624
35624
  }
35625
35625
  async function readJSON(filePath) {
35626
35626
  try {
35627
- const raw = await fs$1.readFile(filePath, "utf8");
35627
+ const raw = await fsPromises.readFile(filePath, "utf8");
35628
35628
  return JSON.parse(raw);
35629
35629
  } catch {
35630
35630
  return null;
@@ -35632,15 +35632,15 @@ async function readJSON(filePath) {
35632
35632
  }
35633
35633
  async function writeJSONAtomic(filePath, value) {
35634
35634
  const dir = path.dirname(filePath);
35635
- await fs$1.mkdir(dir, { recursive: true });
35635
+ await fsPromises.mkdir(dir, { recursive: true });
35636
35636
  const tmp = `${filePath}.${randomUUID()}.tmp`;
35637
- await fs$1.writeFile(tmp, JSON.stringify(value, null, 2), "utf8");
35637
+ await fsPromises.writeFile(tmp, JSON.stringify(value, null, 2), "utf8");
35638
35638
  try {
35639
- await fs$1.chmod(tmp, 384);
35639
+ await fsPromises.chmod(tmp, 384);
35640
35640
  } catch {}
35641
- await fs$1.rename(tmp, filePath);
35641
+ await fsPromises.rename(tmp, filePath);
35642
35642
  try {
35643
- await fs$1.chmod(filePath, 384);
35643
+ await fsPromises.chmod(filePath, 384);
35644
35644
  } catch {}
35645
35645
  }
35646
35646
  function pruneExpiredPending(pendingById, nowMs) {
@@ -41029,18 +41029,18 @@ function appendImagePathsToPrompt(prompt, paths) {
41029
41029
  return `${trimmed}${trimmed ? "\n\n" : ""}${paths.join("\n")}`;
41030
41030
  }
41031
41031
  async function writeCliImages(images) {
41032
- const tempDir = await fs$1.mkdtemp(path.join(os.tmpdir(), "openclaw-cli-images-"));
41032
+ const tempDir = await fsPromises.mkdtemp(path.join(os.tmpdir(), "openclaw-cli-images-"));
41033
41033
  const paths = [];
41034
41034
  for (let i = 0; i < images.length; i += 1) {
41035
41035
  const image = images[i];
41036
41036
  const ext = resolveImageExtension(image.mimeType);
41037
41037
  const filePath = path.join(tempDir, `image-${i + 1}.${ext}`);
41038
41038
  const buffer = Buffer.from(image.data, "base64");
41039
- await fs$1.writeFile(filePath, buffer, { mode: 384 });
41039
+ await fsPromises.writeFile(filePath, buffer, { mode: 384 });
41040
41040
  paths.push(filePath);
41041
41041
  }
41042
41042
  const cleanup = async () => {
41043
- await fs$1.rm(tempDir, {
41043
+ await fsPromises.rm(tempDir, {
41044
41044
  recursive: true,
41045
41045
  force: true
41046
41046
  });
@@ -43589,7 +43589,7 @@ async function stageSandboxMedia(params) {
43589
43589
  };
43590
43590
  try {
43591
43591
  const destDir = sandbox ? path.join(effectiveWorkspaceDir, "media", "inbound") : effectiveWorkspaceDir;
43592
- await fs$1.mkdir(destDir, { recursive: true });
43592
+ await fsPromises.mkdir(destDir, { recursive: true });
43593
43593
  const usedNames = /* @__PURE__ */ new Set();
43594
43594
  const staged = /* @__PURE__ */ new Map();
43595
43595
  for (const raw of rawPaths) {
@@ -43621,7 +43621,7 @@ async function stageSandboxMedia(params) {
43621
43621
  usedNames.add(fileName);
43622
43622
  const dest = path.join(destDir, fileName);
43623
43623
  if (ctx.MediaRemoteHost) await scpFile(ctx.MediaRemoteHost, source, dest);
43624
- else await fs$1.copyFile(source, dest);
43624
+ else await fsPromises.copyFile(source, dest);
43625
43625
  const stagedPath = sandbox ? path.posix.join("media", "inbound", fileName) : dest;
43626
43626
  staged.set(source, stagedPath);
43627
43627
  }
@@ -48255,8 +48255,8 @@ async function describeStickerImage(params) {
48255
48255
  const { provider, model } = resolved;
48256
48256
  logVerbose(`telegram: describing sticker with ${provider}/${model}`);
48257
48257
  try {
48258
- const buffer = await fs$1.readFile(imagePath);
48259
- const { describeImageWithModel } = await import("./image-D1s2KO45.js").then((n) => n.n);
48258
+ const buffer = await fsPromises.readFile(imagePath);
48259
+ const { describeImageWithModel } = await import("./image-CY3Qb62D.js").then((n) => n.n);
48260
48260
  return (await describeImageWithModel({
48261
48261
  buffer,
48262
48262
  fileName: "sticker.webp",
@@ -48613,7 +48613,7 @@ function createWhatsAppLoginTool() {
48613
48613
  force: Type.Optional(Type.Boolean())
48614
48614
  }),
48615
48615
  execute: async (_toolCallId, args) => {
48616
- const { startWebLoginWithQr, waitForWebLogin } = await import("./login-qr-fi3WTytg.js").then((n) => n.t);
48616
+ const { startWebLoginWithQr, waitForWebLogin } = await import("./login-qr-BoEpQD7W.js").then((n) => n.t);
48617
48617
  if ((args?.action ?? "start") === "wait") {
48618
48618
  const result = await waitForWebLogin({ timeoutMs: typeof args.timeoutMs === "number" ? args.timeoutMs : void 0 });
48619
48619
  return {
@@ -51041,7 +51041,7 @@ function formatExtraPaths(workspaceDir, extraPaths) {
51041
51041
  }
51042
51042
  async function checkReadableFile(pathname) {
51043
51043
  try {
51044
- await fs$1.access(pathname, fs.constants.R_OK);
51044
+ await fsPromises.access(pathname, fs.constants.R_OK);
51045
51045
  return { exists: true };
51046
51046
  } catch (err) {
51047
51047
  const code = err.code;
@@ -51058,7 +51058,7 @@ async function scanSessionFiles(agentId) {
51058
51058
  try {
51059
51059
  return {
51060
51060
  source: "sessions",
51061
- totalFiles: (await fs$1.readdir(sessionsDir, { withFileTypes: true })).filter((entry) => entry.isFile() && entry.name.endsWith(".jsonl")).length,
51061
+ totalFiles: (await fsPromises.readdir(sessionsDir, { withFileTypes: true })).filter((entry) => entry.isFile() && entry.name.endsWith(".jsonl")).length,
51062
51062
  issues
51063
51063
  };
51064
51064
  } catch (err) {
@@ -51090,7 +51090,7 @@ async function scanMemoryFiles(workspaceDir, extraPaths = []) {
51090
51090
  if (alt.issue) issues.push(alt.issue);
51091
51091
  const resolvedExtraPaths = normalizeExtraMemoryPaths(workspaceDir, extraPaths);
51092
51092
  for (const extraPath of resolvedExtraPaths) try {
51093
- if ((await fs$1.lstat(extraPath)).isSymbolicLink()) continue;
51093
+ if ((await fsPromises.lstat(extraPath)).isSymbolicLink()) continue;
51094
51094
  const extraCheck = await checkReadableFile(extraPath);
51095
51095
  if (extraCheck.issue) issues.push(extraCheck.issue);
51096
51096
  } catch (err) {
@@ -51100,7 +51100,7 @@ async function scanMemoryFiles(workspaceDir, extraPaths = []) {
51100
51100
  }
51101
51101
  let dirReadable = null;
51102
51102
  try {
51103
- await fs$1.access(memoryDir, fs.constants.R_OK);
51103
+ await fsPromises.access(memoryDir, fs.constants.R_OK);
51104
51104
  dirReadable = true;
51105
51105
  } catch (err) {
51106
51106
  const code = err.code;
@@ -55352,7 +55352,7 @@ async function ensureWorkspaceAndSessions(workspaceDir, runtime, options) {
55352
55352
  });
55353
55353
  runtime.log(`Workspace OK: ${shortenHomePath(ws.dir)}`);
55354
55354
  const sessionsDir = resolveSessionTranscriptsDirForAgent(options?.agentId);
55355
- await fs$1.mkdir(sessionsDir, { recursive: true });
55355
+ await fsPromises.mkdir(sessionsDir, { recursive: true });
55356
55356
  runtime.log(`Sessions OK: ${shortenHomePath(sessionsDir)}`);
55357
55357
  }
55358
55358
  function resolveNodeManagerOptions() {
@@ -55374,7 +55374,7 @@ function resolveNodeManagerOptions() {
55374
55374
  async function moveToTrash(pathname, runtime) {
55375
55375
  if (!pathname) return;
55376
55376
  try {
55377
- await fs$1.access(pathname);
55377
+ await fsPromises.access(pathname);
55378
55378
  } catch {
55379
55379
  return;
55380
55380
  }
@@ -55397,7 +55397,7 @@ async function detectBinary(name) {
55397
55397
  if (!isSafeExecutableValue(name)) return false;
55398
55398
  const resolved = name.startsWith("~") ? resolveUserPath(name) : name;
55399
55399
  if (path.isAbsolute(resolved) || resolved.startsWith(".") || resolved.includes("/") || resolved.includes("\\")) try {
55400
- await fs$1.access(resolved);
55400
+ await fsPromises.access(resolved);
55401
55401
  return true;
55402
55402
  } catch {
55403
55403
  return false;
@@ -55714,7 +55714,7 @@ function normalizeAllowList$1(list) {
55714
55714
  async function detectRemoteHostFromCliPath(cliPath) {
55715
55715
  try {
55716
55716
  const expanded = cliPath.startsWith("~") ? cliPath.replace(/^~/, process.env.HOME ?? "") : cliPath;
55717
- const content = await fs$1.readFile(expanded, "utf8");
55717
+ const content = await fsPromises.readFile(expanded, "utf8");
55718
55718
  const userHostMatch = content.match(/\bssh\b[^\n]*?\s+([a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+)/);
55719
55719
  if (userHostMatch) return userHostMatch[1];
55720
55720
  return content.match(/\bssh\b[^\n]*?\s+([a-zA-Z][a-zA-Z0-9._-]*)\s+\S*\bimsg\b/)?.[1];
@@ -64389,7 +64389,7 @@ function safeParseState(raw) {
64389
64389
  async function readTelegramUpdateOffset(params) {
64390
64390
  const filePath = resolveTelegramUpdateOffsetPath(params.accountId, params.env);
64391
64391
  try {
64392
- return safeParseState(await fs$1.readFile(filePath, "utf-8"))?.lastUpdateId ?? null;
64392
+ return safeParseState(await fsPromises.readFile(filePath, "utf-8"))?.lastUpdateId ?? null;
64393
64393
  } catch (err) {
64394
64394
  if (err.code === "ENOENT") return null;
64395
64395
  return null;
@@ -64398,7 +64398,7 @@ async function readTelegramUpdateOffset(params) {
64398
64398
  async function writeTelegramUpdateOffset(params) {
64399
64399
  const filePath = resolveTelegramUpdateOffsetPath(params.accountId, params.env);
64400
64400
  const dir = path.dirname(filePath);
64401
- await fs$1.mkdir(dir, {
64401
+ await fsPromises.mkdir(dir, {
64402
64402
  recursive: true,
64403
64403
  mode: 448
64404
64404
  });
@@ -64407,9 +64407,9 @@ async function writeTelegramUpdateOffset(params) {
64407
64407
  version: STORE_VERSION,
64408
64408
  lastUpdateId: params.updateId
64409
64409
  };
64410
- await fs$1.writeFile(tmp, `${JSON.stringify(payload, null, 2)}\n`, { encoding: "utf-8" });
64411
- await fs$1.chmod(tmp, 384);
64412
- await fs$1.rename(tmp, filePath);
64410
+ await fsPromises.writeFile(tmp, `${JSON.stringify(payload, null, 2)}\n`, { encoding: "utf-8" });
64411
+ await fsPromises.chmod(tmp, 384);
64412
+ await fsPromises.rename(tmp, filePath);
64413
64413
  }
64414
64414
 
64415
64415
  //#endregion