wednesdayai 0.6.1-dev.7 → 0.6.1-dev.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (388) hide show
  1. package/dist/{agent-scope-BtUvImH3.js → agent-scope-CCWcV-mm.js} +1 -1
  2. package/dist/{agent-scope-Baake9Zw.js → agent-scope-CmMflllE.js} +18 -18
  3. package/dist/{agent-scope-mW_bIVxB.js → agent-scope-Km9kFpGZ.js} +2 -2
  4. package/dist/{agent-turn-execute-FvKDpI0k.js → agent-turn-execute-C5BrtQw7.js} +167 -167
  5. package/dist/{agent-turn-execute-DCEdgfn4.js → agent-turn-execute-PcF36_4h.js} +81 -81
  6. package/dist/{agent-turn-runner-DORCoPIV.js → agent-turn-runner-BOwPjmul.js} +6 -6
  7. package/dist/{agent-turn-runner-N0SoqZOW.js → agent-turn-runner-DgRUf3t9.js} +6 -6
  8. package/dist/{agent-turn-runner-CbKGcl3C.js → agent-turn-runner-DsDYOkS0.js} +6 -6
  9. package/dist/{api-key-rotation-BYKEqCjs.js → api-key-rotation-B1g36Ktj.js} +2 -2
  10. package/dist/{api-key-rotation-Kb5UlnWS.js → api-key-rotation-DMxY8dgp.js} +2 -2
  11. package/dist/{api-key-rotation-C-vN-cou.js → api-key-rotation-SXWmHJ82.js} +2 -2
  12. package/dist/{audio-preflight-DOQ4t3Lt.js → audio-preflight-B3evE7-u.js} +22 -22
  13. package/dist/{audio-preflight-DXhf9Jw5.js → audio-preflight-CmPLA0Gs.js} +25 -25
  14. package/dist/{audio-preflight-NAEHXArO.js → audio-preflight-K7IUKCcp.js} +24 -24
  15. package/dist/{audio-transcription-runner-DLjBrgIp.js → audio-transcription-runner-4DK2O-7Z.js} +11 -11
  16. package/dist/{audio-transcription-runner-C2MeTPEc.js → audio-transcription-runner-DzJ9M4zn.js} +25 -25
  17. package/dist/{audio-transcription-runner-BPWmR980.js → audio-transcription-runner-LWApHLBl.js} +12 -12
  18. package/dist/{auth-Bxe2cFXo.js → auth-D2zwtjEE.js} +1 -1
  19. package/dist/build-info.json +3 -3
  20. package/dist/bundled/boot-md/handler.js +55 -55
  21. package/dist/bundled/bootstrap-extra-files/handler.js +4 -4
  22. package/dist/bundled/command-logger/handler.js +1 -1
  23. package/dist/bundled/session-journal/handler.js +55 -55
  24. package/dist/bundled/session-memory/handler.js +55 -55
  25. package/dist/{call-QP6Xkgk6.js → call-BjvHhPTp.js} +6 -6
  26. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  27. package/dist/{chat-content-1PkEbyji.js → chat-content-C9lS70TS.js} +15 -15
  28. package/dist/{chat-content-BpQAsNXf.js → chat-content-CHw0gp7N.js} +17 -17
  29. package/dist/{chat-content-CUEBE5sP.js → chat-content-OjzGhCu9.js} +24 -24
  30. package/dist/{chrome-DZUpRqr5.js → chrome-D26iRuov.js} +6 -6
  31. package/dist/{plugin-sdk/chrome-CuqV33Tq.js → chrome-DwJAYQrd.js} +23 -23
  32. package/dist/{chrome-CrQJ7sJy.js → chrome-n-0LtZ5p.js} +6 -6
  33. package/dist/{chunk-BOyW8CWf.js → chunk-BO29WISL.js} +3 -3
  34. package/dist/{chunk-DxrJ3Gup.js → chunk-BY0qWMC0.js} +3 -3
  35. package/dist/{chunk-DYUW1MQP.js → chunk-C7MQgQ4g.js} +3 -3
  36. package/dist/{command-queue-CXz9DVsG.js → command-queue-B7ny6IpS.js} +1 -1
  37. package/dist/{command-queue-D1UQrdty.js → command-queue-CRSJ0P07.js} +1 -1
  38. package/dist/{command-queue-C-FGbDJz.js → command-queue-n-3dr-XL.js} +1 -1
  39. package/dist/{commands-registry-D9HZmIAd.js → commands-registry-CcEHn1XI.js} +2 -2
  40. package/dist/{commands-registry-CMmeEgz2.js → commands-registry-Dv-b9PiZ.js} +2 -2
  41. package/dist/{commands-registry-Bew0o0-N.js → commands-registry-Dx4q8Stu.js} +2 -2
  42. package/dist/{config-Bsj2p2wE.js → config-i54suDg0.js} +26 -26
  43. package/dist/config.js +3 -3
  44. package/dist/{credentials-AMTaKIti.js → credentials-BNtHxB_l.js} +1 -1
  45. package/dist/{credentials-CxCFIe6D.js → credentials-DQ7lFgET.js} +1 -1
  46. package/dist/{credentials-CQxVmyVQ.js → credentials-Fr_P7kXi.js} +1 -1
  47. package/dist/daemon-cli.js +12 -12
  48. package/dist/{deliver-DhTGNP5K.js → deliver-BRmy8mNE.js} +14 -14
  49. package/dist/{deliver-DyypynBz.js → deliver-BqbB01OT.js} +14 -14
  50. package/dist/{deliver-CIRdl5yq.js → deliver-CRQ5Q9MI.js} +15 -15
  51. package/dist/{diagnostic-C2R8JTrg.js → diagnostic-CtDjU2cL.js} +3 -3
  52. package/dist/{diagnostic-ZN_usXW9.js → diagnostic-DnoZn-KN.js} +3 -3
  53. package/dist/{diagnostic-Dd6LtH4a.js → diagnostic-VK1bXt80.js} +3 -3
  54. package/dist/{errors-D-W6b40A.js → errors-0RH1PUyI.js} +1 -1
  55. package/dist/{errors-CnHQSI9_.js → errors-DbYMrbC6.js} +1 -1
  56. package/dist/{plugin-sdk/errors-CLQ_1plf.js → errors-PebfxiNw.js} +1 -1
  57. package/dist/{fetch-BfxA2OXM.js → fetch-B_5TQsLI.js} +1 -1
  58. package/dist/{fetch-C9itXZkj.js → fetch-CucaLVum.js} +1 -1
  59. package/dist/{fetch-DAVlU8on.js → fetch-CvQ4rHkA.js} +7 -7
  60. package/dist/{fetch-CouuWqcW.js → fetch-DMx7kUDq.js} +1 -1
  61. package/dist/{fetch-CB56RYbf.js → fetch-IBrV5cpo.js} +7 -7
  62. package/dist/{fetch-guard-CijCZ_b-.js → fetch-guard-1wmQV-Tr.js} +2 -2
  63. package/dist/{fetch-guard-DKsHmX2W.js → fetch-guard-Bwaekd5B.js} +2 -2
  64. package/dist/{fetch-guard-DYg-drum.js → fetch-guard-Cpegp1jz.js} +2 -2
  65. package/dist/{fetch-BT2I7cbc.js → fetch-wRt70JUw.js} +7 -7
  66. package/dist/{frontmatter-C2il6iYY.js → frontmatter-7crf_wMo.js} +3 -3
  67. package/dist/{fs-safe-CE8lX7WJ.js → fs-safe-Bb8-IeGg.js} +3 -3
  68. package/dist/{fs-safe-BxszbGp8.js → fs-safe-g7C2VmjR.js} +25 -25
  69. package/dist/{fs-safe-BdoohhEQ.js → fs-safe-zTwRJV2P.js} +3 -3
  70. package/dist/{group-B8al5pPW.js → group-CJxrdnQi.js} +7 -7
  71. package/dist/{image-ops-BidmoZQ2.js → image-ops-BnBkL2cb.js} +1 -1
  72. package/dist/{plugin-sdk/image-ops-BBVBwRM0.js → image-ops-D9RolAaO.js} +12 -12
  73. package/dist/{image-ops-u0MGFcmO.js → image-ops-DONWlnn2.js} +1 -1
  74. package/dist/{ir-DXeLOldW.js → ir-BMz0_JTj.js} +8 -8
  75. package/dist/{ir-Bf5kMPAy.js → ir-qxGmbhX1.js} +5 -5
  76. package/dist/{ir-Dl3iTDmU.js → ir-rI6qQBSg.js} +5 -5
  77. package/dist/{json-files-GB7e9l0R.js → json-files-B1gYf6W9.js} +7 -7
  78. package/dist/{legacy-names-CRCLZarD.js → legacy-names-Bx5L8LWT.js} +1 -1
  79. package/dist/llm-slug-generator.js +55 -55
  80. package/dist/{manager-YDyRTQUV.js → manager-BuEOjzym.js} +14 -14
  81. package/dist/{manager-DXW24oV1.js → manager-DiZNgASh.js} +7 -7
  82. package/dist/{manager-Dszac2Ws.js → manager-IIVZBivo.js} +7 -7
  83. package/dist/{markdown-tables-DdEOvPAH.js → markdown-tables-BtpvPNub.js} +2 -2
  84. package/dist/{markdown-tables-tr_7Fmw-.js → markdown-tables-D8MSIea0.js} +2 -2
  85. package/dist/{markdown-tables-DIw8tw96.js → markdown-tables-Dv-Fn4ps.js} +2 -2
  86. package/dist/{model-selection-ZyZ8C9Sz.js → model-selection-CVZg4wf8.js} +9 -9
  87. package/dist/{models-config-BhUXT1hF.js → models-config-3lhn9o5Q.js} +7 -7
  88. package/dist/{models-config-DIom_9je.js → models-config-BIR5Jl6Y.js} +2 -2
  89. package/dist/{models-config-CQAh0oG4.js → models-config-D8yjYakk.js} +2 -2
  90. package/dist/{net-CgCDDLO-.js → net-Ih2dkbnA.js} +1 -1
  91. package/dist/{nudge-BCCAsfyx.js → nudge-AEmyX8R6.js} +7 -7
  92. package/dist/{nudge-C0QSQl-l.js → nudge-Df4BNfRM.js} +9 -9
  93. package/dist/{nudge-CbzF1JFW.js → nudge-OjthVWgf.js} +16 -16
  94. package/dist/{outbound-attachment-83kY4_pp.js → outbound-attachment-BaRQnyDU.js} +2 -2
  95. package/dist/{outbound-attachment-xWf54r8i.js → outbound-attachment-CmkxUxFF.js} +2 -2
  96. package/dist/{outbound-attachment-BfJ7wb_J.js → outbound-attachment-DJGxSTr2.js} +2 -2
  97. package/dist/{outbound-message-hooks-IolzEbMD.js → outbound-message-hooks-CWaDtoFU.js} +4 -4
  98. package/dist/{outbound-message-hooks-D02COH42.js → outbound-message-hooks-D6fdkHcA.js} +5 -5
  99. package/dist/{outbound-message-hooks-BQNruXlp.js → outbound-message-hooks-DuS8ZzCg.js} +4 -4
  100. package/dist/{path-alias-guards-DMuDQY7-.js → path-alias-guards-BR5wRjxa.js} +1 -1
  101. package/dist/{path-alias-guards-CpIKU1Cq.js → path-alias-guards-CGgM-kfP.js} +3 -3
  102. package/dist/{path-alias-guards-BO9B8Ujj.js → path-alias-guards-CIxtmZUH.js} +1 -1
  103. package/dist/{pi-embedded-AaZc-fd0.js → pi-embedded-f8k37-ji.js} +80 -80
  104. package/dist/{plugin-sdk/pi-embedded-utils-Bs8GJcVC.js → pi-embedded-utils-CFD8XCEm.js} +3 -3
  105. package/dist/{pi-embedded-utils-CwgRLftX.js → pi-embedded-utils-D6bb0L0C.js} +3 -3
  106. package/dist/{pi-embedded-utils-CxTJd3C4.js → pi-embedded-utils-avtPd7wj.js} +3 -3
  107. package/dist/{pi-model-discovery-mp9nTslh.js → pi-model-discovery-B0qOEKz1.js} +1 -1
  108. package/dist/{pi-model-discovery-CpPL43Dt.js → pi-model-discovery-CdFFtQGN.js} +1 -1
  109. package/dist/{pi-model-discovery-DwUyqoo1.js → pi-model-discovery-DtlKqZOH.js} +1 -1
  110. package/dist/plugin-sdk/{agent-scope-B8qbKhhI.js → agent-scope-Be-jpj9v.js} +1 -1
  111. package/dist/plugin-sdk/agent-turn-execute-Be8Qh2Bw.js +61 -0
  112. package/dist/plugin-sdk/{agent-turn-execute-yXQn2zCY.js → agent-turn-execute-D86ZmA4-.js} +65 -65
  113. package/dist/plugin-sdk/{agent-turn-runner-B-poPtP_.js → agent-turn-runner-C05hxUR0.js} +7 -7
  114. package/dist/plugin-sdk/{agent-turn-runner-CFEsvBCd.js → agent-turn-runner-CxEH_oDh.js} +3 -3
  115. package/dist/plugin-sdk/{api-key-rotation-Do8uKcvN.js → api-key-rotation-BSOYQ4qc.js} +2 -2
  116. package/dist/plugin-sdk/{api-key-rotation-jl39nKbi.js → api-key-rotation-ChAeDYxy.js} +1 -1
  117. package/dist/plugin-sdk/{audio-preflight-BFDNHENv.js → audio-preflight-CV1BDhSi.js} +15 -15
  118. package/dist/plugin-sdk/{audio-preflight-CvBQezNa.js → audio-preflight-CV8hn0ML.js} +22 -22
  119. package/dist/plugin-sdk/{audio-transcription-runner-DqBfb4fD.js → audio-transcription-runner-B5P3Ikr5.js} +7 -7
  120. package/dist/plugin-sdk/{audio-transcription-runner-Bx34SZcC.js → audio-transcription-runner-BskrbhXT.js} +11 -11
  121. package/dist/plugin-sdk/{auth-profiles-B9f3QHek.js → auth-profiles-Bjh8-BxW.js} +3 -3
  122. package/dist/plugin-sdk/{chat-content-CpC6DI0a.js → chat-content-Dv48ezjN.js} +15 -15
  123. package/dist/{chrome-BQRvL5_6.js → plugin-sdk/chrome-Ccd0oIRL.js} +8 -8
  124. package/dist/plugin-sdk/{chrome-BuRzWRZC.js → chrome-Djee-ZQ4.js} +6 -6
  125. package/dist/plugin-sdk/{chunk-B6pu3-QT.js → chunk-Ds0DViTU.js} +1 -1
  126. package/dist/plugin-sdk/{chunk-B5DJ9OSy.js → chunk-OLisVrnA.js} +4 -4
  127. package/dist/plugin-sdk/{command-queue-DNzxLFLp.js → command-queue-DKwo5KR5.js} +2 -2
  128. package/dist/plugin-sdk/{commands-registry-DQlTlZwD.js → commands-registry-B1nDgloc.js} +1 -1
  129. package/dist/plugin-sdk/{commands-registry-BLvUWjLN.js → commands-registry-CbFYKesr.js} +3 -3
  130. package/dist/plugin-sdk/{credentials-qipHomyX.js → credentials-A4Z3kXiD.js} +1 -1
  131. package/dist/plugin-sdk/{credentials-y9Sghbm7.js → credentials-BphVNHsl.js} +1 -1
  132. package/dist/plugin-sdk/{deliver-Qit0vLPJ.js → deliver-DHCz4Dtv.js} +11 -11
  133. package/dist/plugin-sdk/deliver-UCpJHA8E.js +34 -0
  134. package/dist/plugin-sdk/{deliver-Ce7dREwO.js → deliver-cnS8GuO-.js} +14 -14
  135. package/dist/plugin-sdk/{diagnostic-D3BaH5T-.js → diagnostic-CfzW0_dx.js} +5 -5
  136. package/dist/plugin-sdk/{diagnostic-session-state-Ca-WhNi6.js → diagnostic-session-state-B0P3KV3G.js} +1 -1
  137. package/dist/{errors-CN5_QuWi.js → plugin-sdk/errors-BrdJv9v4.js} +1 -1
  138. package/dist/plugin-sdk/{fetch-CuWyAHvW.js → fetch-9sAWAc_2.js} +2 -2
  139. package/dist/plugin-sdk/{fetch-DZ--lOzI.js → fetch-DeK1fKwA.js} +7 -7
  140. package/dist/plugin-sdk/{fetch-BwuajxFn.js → fetch-DgyyeBob.js} +1 -1
  141. package/dist/plugin-sdk/fetch-DznZfJ5x.js +67 -0
  142. package/dist/plugin-sdk/{fetch-guard-BX6jBxKE.js → fetch-guard-D1A1wf4z.js} +1 -1
  143. package/dist/plugin-sdk/{fetch-guard-Ce-ucfQG.js → fetch-guard-DHFG0AUk.js} +2 -2
  144. package/dist/plugin-sdk/{fs-safe-CMnlphkT.js → fs-safe-BKrwJmFe.js} +3 -3
  145. package/dist/{image-ops-D_DwGLwy.js → plugin-sdk/image-ops-CUdIP6Hb.js} +2 -2
  146. package/dist/plugin-sdk/{inbound-context-BoAwxQia.js → inbound-context-JGyGh_6z.js} +1 -1
  147. package/dist/plugin-sdk/{ir-D-C6OU_g.js → ir-CShw6HQ4.js} +2 -2
  148. package/dist/plugin-sdk/{ir-DnqOk2R4.js → ir-CiCv2-fU.js} +5 -5
  149. package/dist/plugin-sdk/{manager-DULQ8IMM.js → manager-C0hS53l8.js} +7 -7
  150. package/dist/plugin-sdk/manager-CCHSaXUr.js +14 -0
  151. package/dist/plugin-sdk/{manager-BUK83x9w.js → manager-b7rkl95-.js} +4 -4
  152. package/dist/plugin-sdk/{markdown-tables-esO0kIio.js → markdown-tables-BMmTOUny.js} +3 -3
  153. package/dist/plugin-sdk/{markdown-tables-xkafNP0w.js → markdown-tables-fifmBw3T.js} +1 -1
  154. package/dist/plugin-sdk/{model-auth-Dm_kGvag.js → model-auth-CNca-eBd.js} +1 -1
  155. package/dist/plugin-sdk/{models-config-BP6ahg1c.js → models-config-3uPMrOQa.js} +2 -2
  156. package/dist/plugin-sdk/{models-config-d973WFny.js → models-config-B6w8XG1d.js} +1 -1
  157. package/dist/plugin-sdk/{monitor-Bi5mp8ZL.js → monitor-BFvMt0jv.js} +86 -86
  158. package/dist/plugin-sdk/{nudge-D9yHrAg6.js → nudge-CwP_UxdK.js} +9 -9
  159. package/dist/plugin-sdk/{nudge-C31EKVuV.js → nudge-DHoaL0VV.js} +10 -10
  160. package/dist/plugin-sdk/{openai-compatible-video-CmBqUEsR.js → openai-compatible-video-Dpm_3S9N.js} +5 -5
  161. package/dist/plugin-sdk/{outbound-attachment-BIKJ2xZq.js → outbound-attachment-BmJGXjpk.js} +2 -2
  162. package/dist/plugin-sdk/{outbound-attachment-PUi9Lfwh.js → outbound-attachment-CSNvxAi5.js} +1 -1
  163. package/dist/plugin-sdk/{outbound-message-hooks-YVH4V7MO.js → outbound-message-hooks-BX0MYkzu.js} +2 -2
  164. package/dist/plugin-sdk/{path-alias-guards-Dy5NeCrQ.js → path-alias-guards-C02bovRa.js} +1 -1
  165. package/dist/plugin-sdk/{pi-embedded-helpers-z5kapszH.js → pi-embedded-helpers-C7sEml4L.js} +9 -9
  166. package/dist/plugin-sdk/{pi-embedded-utils-BXj-Gcqv.js → pi-embedded-utils-DPvEgOcW.js} +1 -1
  167. package/dist/{pi-embedded-utils-Bj7yEtOX.js → plugin-sdk/pi-embedded-utils-gdDvWLUF.js} +3 -3
  168. package/dist/plugin-sdk/{pi-model-discovery-DawOoDa-.js → pi-model-discovery-3ImxVoN0.js} +1 -1
  169. package/dist/plugin-sdk/{pi-model-discovery-GsWHJJdG.js → pi-model-discovery-Bf07_wdY.js} +2 -2
  170. package/dist/plugin-sdk/provider-dispatcher-HvZOc6pQ.js +61 -0
  171. package/dist/plugin-sdk/provider-media-understanding.js +12 -12
  172. package/dist/plugin-sdk/{proxy-env-BSt9Mpcu.js → proxy-env-CfbHPZsA.js} +1 -1
  173. package/dist/plugin-sdk/{pw-ai-C25z96Gn.js → pw-ai-Beqk71S6.js} +4 -4
  174. package/dist/plugin-sdk/{pw-ai-BsG21ZK4.js → pw-ai-DXxR9klb.js} +10 -10
  175. package/dist/plugin-sdk/{qmd-manager-B5fNIvSH.js → qmd-manager-C5StGWpa.js} +2 -2
  176. package/dist/plugin-sdk/{qmd-manager-CjRF-Or3.js → qmd-manager-D4W-fPSL.js} +8 -8
  177. package/dist/plugin-sdk/{qmd-scope-PjThGixm.js → qmd-scope-DaJOhdHL.js} +1 -1
  178. package/dist/plugin-sdk/{query-expansion-YCr61JiI.js → query-expansion-CapDjXqr.js} +2 -2
  179. package/dist/plugin-sdk/{query-expansion-aeabmOoB.js → query-expansion-DTz7qRPP.js} +1 -1
  180. package/dist/plugin-sdk/{recorder-D11UEswC.js → recorder-DhKye4nA.js} +2 -2
  181. package/dist/plugin-sdk/{recorder-4g6Ys7WM.js → recorder-Vqz423Ad.js} +1 -1
  182. package/dist/{redact-D6Fnz9xQ.js → plugin-sdk/redact-DOs6fXcc.js} +1 -1
  183. package/dist/plugin-sdk/{registry-Blc7Ur1p.js → registry-ChehZpUt.js} +7 -7
  184. package/dist/plugin-sdk/{replies-BGF9ZYhP.js → replies-B3lla7iL.js} +4 -4
  185. package/dist/plugin-sdk/replies-n45TjLUD.js +25 -0
  186. package/dist/plugin-sdk/{replies-Ds6Gs9O1.js → replies-neHBbNGC.js} +5 -5
  187. package/dist/plugin-sdk/{reply-directives-CQkgAJUi.js → reply-directives-DA9871hC.js} +2 -2
  188. package/dist/plugin-sdk/{reply-directives-1f84jGQR.js → reply-directives-DJLXXoHQ.js} +1 -1
  189. package/dist/plugin-sdk/{reply-prefix-DXcqNnob.js → reply-prefix-BAlYiGmw.js} +2 -2
  190. package/dist/plugin-sdk/{resolve-route-CEsUM5vo.js → resolve-route-Dl4Ce3AZ.js} +1 -1
  191. package/dist/plugin-sdk/{resolve-route-uv0U8tYS.js → resolve-route-Dwcy4JTh.js} +4 -4
  192. package/dist/plugin-sdk/runs-Bt2gm5Xp.js +27 -0
  193. package/dist/plugin-sdk/{runs-BcONJGaf.js → runs-Ck82_Wm4.js} +9 -9
  194. package/dist/plugin-sdk/{runs-S66fmAnC.js → runs-CqxFUuhe.js} +5 -5
  195. package/dist/plugin-sdk/{send-OGWsKnuO.js → send-1C-UfqZI.js} +6 -6
  196. package/dist/plugin-sdk/{send-BWmu8FzD.js → send-8EsC7X_g.js} +6 -6
  197. package/dist/plugin-sdk/{send-i0O-CKxf.js → send-BYSZ2uje.js} +5 -5
  198. package/dist/plugin-sdk/send-CH2Mx-nc.js +21 -0
  199. package/dist/plugin-sdk/{send-q6CWajeW.js → send-CH99jRUS.js} +6 -6
  200. package/dist/plugin-sdk/{send-DEhSsv9Q.js → send-CY8x9hwE.js} +17 -17
  201. package/dist/plugin-sdk/send-CwmftnXc.js +23 -0
  202. package/dist/plugin-sdk/{send-BdHHzRJj.js → send-D0OAjXXT.js} +8 -8
  203. package/dist/plugin-sdk/send-D9CQkoPN.js +22 -0
  204. package/dist/plugin-sdk/{send-C-KL7_yP.js → send-DZ7mYxPL.js} +4 -4
  205. package/dist/plugin-sdk/{send-DROrgiQz.js → send-DhWniZ-V.js} +7 -7
  206. package/dist/plugin-sdk/{send-B0P5TLxU.js → send-ilRdM1HR.js} +8 -8
  207. package/dist/plugin-sdk/{session-context-CoIaRMhC.js → session-context-thuPOPkM.js} +4 -4
  208. package/dist/plugin-sdk/{session-meta-8qAu69tz.js → session-meta-BwYRhW4t.js} +1 -1
  209. package/dist/plugin-sdk/{session-meta-BUQosPKS.js → session-meta-ByvJn7Kl.js} +2 -2
  210. package/dist/plugin-sdk/{sessions-D9E4cWJg.js → sessions-CgDj1ZTy.js} +1 -1
  211. package/dist/plugin-sdk/{sessions-tKTWoGEX.js → sessions-DtBcB_m8.js} +4 -4
  212. package/dist/plugin-sdk/{skill-commands-P3hLZCNa.js → skill-commands-Be5cYRNH.js} +2 -2
  213. package/dist/plugin-sdk/{skill-commands-ID_uyMtr.js → skill-commands-CsHUFvTh.js} +5 -5
  214. package/dist/plugin-sdk/{skills-OofoxuSf.js → skills-BOWPxpRV.js} +1 -1
  215. package/dist/plugin-sdk/{skills-DzwqSw_l.js → skills-CvksRREn.js} +6 -6
  216. package/dist/plugin-sdk/{ssrf--z6niPq1.js → ssrf-CE6JboaJ.js} +1 -1
  217. package/dist/plugin-sdk/{store-8qnSslho.js → store-DgWeR64N.js} +2 -2
  218. package/dist/plugin-sdk/subagent-registry-cUon6JW5.js +61 -0
  219. package/dist/plugin-sdk/{subsystem-DN6NBvi2.js → subsystem-D5N_K3VU.js} +4 -4
  220. package/dist/plugin-sdk/{tables-DLhtAl8Z.js → tables-BJrnW7Ji.js} +1 -1
  221. package/dist/plugin-sdk/{tables-BSg1_7xM.js → tables-ChcsUP-T.js} +1 -1
  222. package/dist/plugin-sdk/testing.js +53 -53
  223. package/dist/plugin-sdk/{tokens-DapRK87O.js → tokens-mqKTCfsk.js} +1 -1
  224. package/dist/{tool-loop-detection-nxXR6ZGf.js → plugin-sdk/tool-loop-detection-BemFvI2m.js} +1 -1
  225. package/dist/plugin-sdk/{user-run-recording-owC8f6ch.js → user-run-recording-ByPrMDAH.js} +3 -3
  226. package/dist/plugin-sdk/{user-run-recording-CA6k4GdI.js → user-run-recording-DOCUtYpE.js} +1 -1
  227. package/dist/plugin-sdk/{ws-PvXfVPuc.js → ws-BBwNh59J.js} +1 -1
  228. package/dist/plugin-sdk/{ws-OLAqwyxu.js → ws-DA5Ex9cq.js} +1 -1
  229. package/dist/{ports-BL2i8h5u.js → ports-Cm3dMy9r.js} +3 -3
  230. package/dist/{progress--ozQz5Eg.js → progress-B8VpRELC.js} +4 -4
  231. package/dist/{proxy-env-DdpqzP-l.js → proxy-env-B7QBeq1s.js} +1 -1
  232. package/dist/{proxy-env-D7bHQg8b.js → proxy-env-BHjp8Syz.js} +1 -1
  233. package/dist/{proxy-env-CJeQ_evL.js → proxy-env-CaYp3Tmy.js} +1 -1
  234. package/dist/{pw-ai-BkhhNN3w.js → pw-ai-B5inhxoy.js} +13 -13
  235. package/dist/{pw-ai-B2SByX7w.js → pw-ai-B8ja4Dql.js} +12 -12
  236. package/dist/{pw-ai-DEiZs8aM.js → pw-ai-BvZ8Bogr.js} +11 -11
  237. package/dist/{qmd-manager-Dp4uo_za.js → qmd-manager-CGW_u9NW.js} +10 -10
  238. package/dist/{qmd-manager-Cgmyvv9V.js → qmd-manager-Dbmi1ZgW.js} +8 -8
  239. package/dist/{qmd-manager-DKw1Rbr0.js → qmd-manager-ZTV3aWYR.js} +23 -23
  240. package/dist/{qmd-scope-CkSqCF4T.js → qmd-scope-8Jq9_xab.js} +1 -1
  241. package/dist/{qmd-scope-36e3ZqA5.js → qmd-scope-CYZoWcur.js} +1 -1
  242. package/dist/{qmd-scope-clNK4f03.js → qmd-scope-DjzSVgvF.js} +1 -1
  243. package/dist/{query-expansion-Bo6Nq4_Q.js → query-expansion-CEaQOg6W.js} +11 -11
  244. package/dist/{query-expansion-Dugjb4l7.js → query-expansion-CXDsQCKO.js} +2 -2
  245. package/dist/{query-expansion-DjdgqBNX.js → query-expansion-CYZYszMN.js} +2 -2
  246. package/dist/{recorder-N1dK-Cvg.js → recorder-BSty19u1.js} +2 -2
  247. package/dist/{recorder-CkRgWa0U.js → recorder-RGNqBtlw.js} +2 -2
  248. package/dist/{recorder-kj3bHJ67.js → recorder-jhTAww3T.js} +2 -2
  249. package/dist/{plugin-sdk/redact-DftAY2KL.js → redact-CoYHSFJI.js} +1 -1
  250. package/dist/{redact-BkE4uRXu.js → redact-Cp-v7ZNA.js} +1 -1
  251. package/dist/{redact-CUgFzobf.js → redact-Iu0CqZm1.js} +1 -1
  252. package/dist/{replies-Do4lDlRa.js → replies-CInXOOPX.js} +5 -5
  253. package/dist/{replies-j8824QFZ.js → replies-CurRxuDE.js} +5 -5
  254. package/dist/{replies-CuYbIr-y.js → replies-D9pr6ACc.js} +5 -5
  255. package/dist/{reply-directives-B3zz5cW7.js → reply-directives-BCjSa0AB.js} +2 -2
  256. package/dist/{reply-directives-C170Yb4-.js → reply-directives-DD05s-wb.js} +2 -2
  257. package/dist/{reply-directives-RLa2vaZi.js → reply-directives-ZtVs-j3A.js} +2 -2
  258. package/dist/{reply-prefix-BNVgeu7r.js → reply-prefix-B1C43_pb.js} +1 -1
  259. package/dist/{reply-prefix-DRy_GYH6.js → reply-prefix-Bc9Xxgh0.js} +1 -1
  260. package/dist/{reply-prefix-iNDFY95J.js → reply-prefix-CEDQ-mg9.js} +1 -1
  261. package/dist/{resolve-route-Dr7paibh.js → resolve-route-By5i3M-1.js} +3 -3
  262. package/dist/{resolve-route-Dw8kJVCQ.js → resolve-route-DYxy9AQV.js} +4 -4
  263. package/dist/{resolve-route-Cb-uluB3.js → resolve-route-DtRFnaEz.js} +3 -3
  264. package/dist/{runs-CTVu5e1l.js → runs-C5hqPjUn.js} +8 -8
  265. package/dist/{runs-C1VChB2N.js → runs-DTEVO_j3.js} +8 -8
  266. package/dist/{runs-Bz53XfRR.js → runs-WvxDbwXT.js} +8 -8
  267. package/dist/{send-C7Jir5X_.js → send-B8fG3QOF.js} +8 -8
  268. package/dist/{send-CrmrT9y3.js → send-BOjkedpl.js} +8 -8
  269. package/dist/{send-BUKHaBbX.js → send-BQtUtg0b.js} +8 -8
  270. package/dist/{send-C3NzAXnk.js → send-C76HubTD.js} +13 -13
  271. package/dist/{send-DN3d2hA9.js → send-CA5WfuIz.js} +6 -6
  272. package/dist/{send-CylIcBwW.js → send-CGdN-VPo.js} +7 -7
  273. package/dist/{send-BhF5ENhk.js → send-ChpeGx3e.js} +7 -7
  274. package/dist/{send-7QxBGDb6.js → send-DVAxl2sg.js} +8 -8
  275. package/dist/{send-CBKd1Tje.js → send-DWQN6n7O.js} +6 -6
  276. package/dist/{send-D6hE7Mbp.js → send-DjeU0NLm.js} +8 -8
  277. package/dist/{send-BrqnAR-x.js → send-LeMti0BS.js} +7 -7
  278. package/dist/{send-vkpb-Xkl.js → send-eXn1pSE6.js} +6 -6
  279. package/dist/{session-meta-CMeplFTy.js → session-meta-Btfsf4fe.js} +1 -1
  280. package/dist/{session-meta-DfqjhZ-q.js → session-meta-CbZBnut5.js} +1 -1
  281. package/dist/{session-meta-Cn_caqpV.js → session-meta-CodKE1pi.js} +1 -1
  282. package/dist/{sessions-DUqqSw4H.js → sessions-BrQFhhqN.js} +4 -4
  283. package/dist/{sessions-O7vI51ov.js → sessions-CFd8Ydiq.js} +4 -4
  284. package/dist/{sessions-Bg_OshuE.js → sessions-Cdx3HjRT.js} +4 -4
  285. package/dist/{skill-commands-14jegpcz.js → skill-commands-CNf71PIK.js} +4 -4
  286. package/dist/{skill-commands-CI1R5rmK.js → skill-commands-Clk1OxDK.js} +5 -5
  287. package/dist/{skill-commands-vLTDfdbS.js → skill-commands-VUGivt1_.js} +4 -4
  288. package/dist/{skills-DMHiOYO8.js → skills--Ui7bzMr.js} +4 -4
  289. package/dist/{skills-50IjplnQ.js → skills-D6DRAp_h.js} +6 -6
  290. package/dist/{skills-B-qk6VX5.js → skills-DrMz2n4d.js} +6 -6
  291. package/dist/{store-B5IVvyyw.js → store-BUy1ZbHu.js} +2 -2
  292. package/dist/{store-CyiSEypa.js → store-BkMCVm0M.js} +7 -7
  293. package/dist/{store-BBWgOw4t.js → store-DRaaTy6K.js} +2 -2
  294. package/dist/{subsystem-BCxHEOcF.js → subsystem-C30tnacl.js} +7 -7
  295. package/dist/{subsystem-BntNuBAj.js → subsystem-DY5Ww-lX.js} +4 -4
  296. package/dist/{subsystem-BOg9wqSC.js → subsystem-DoQFckDJ.js} +4 -4
  297. package/dist/{tables-BJM05Vww.js → tables-CV9YznLE.js} +1 -1
  298. package/dist/{tables-g6ObbHei.js → tables-CXnnw-yu.js} +1 -1
  299. package/dist/{tables-DlB8ZdGF.js → tables-DanZpP0m.js} +1 -1
  300. package/dist/{tokens-C-eSUgYi.js → tokens-BSTxLFq9.js} +1 -1
  301. package/dist/{tokens-Q7TMdIpT.js → tokens-C8E7C2l5.js} +1 -1
  302. package/dist/{tokens-BkeT4Aj7.js → tokens-DQ-CYBoK.js} +1 -1
  303. package/dist/{plugin-sdk/tool-loop-detection-c4qrG169.js → tool-loop-detection-4AIUOil2.js} +1 -1
  304. package/dist/{tool-loop-detection-CBkH6hsK.js → tool-loop-detection-B2ogHpfl.js} +1 -1
  305. package/dist/{tool-loop-detection-CurLYMEW.js → tool-loop-detection-CAaJBVkR.js} +1 -1
  306. package/dist/{user-run-recording-BpHCYVUd.js → user-run-recording-BbEaV78i.js} +2 -2
  307. package/dist/{user-run-recording-UT7JPaKB.js → user-run-recording-CG3WboP4.js} +2 -2
  308. package/dist/{user-run-recording-CV8Lr06M.js → user-run-recording-DYSEO3CI.js} +2 -2
  309. package/dist/{workspace-DldCsJtc.js → workspace-tcQXjttl.js} +1 -1
  310. package/dist/{ws-JG4Z9bZK.js → ws-CDG99mFW.js} +1 -1
  311. package/dist/{ws-Bmal4jqa.js → ws-DWkHsThw.js} +1 -1
  312. package/extensions/a2a/package.json +1 -1
  313. package/extensions/acpx/package.json +1 -1
  314. package/extensions/anthropic/package.json +1 -1
  315. package/extensions/bifrost/package.json +1 -1
  316. package/extensions/bluebubbles/package.json +1 -1
  317. package/extensions/copilot-proxy/package.json +1 -1
  318. package/extensions/deepgram/package.json +1 -1
  319. package/extensions/deepinfra/package.json +1 -1
  320. package/extensions/diagnostics-otel/package.json +1 -1
  321. package/extensions/diffs/package.json +1 -1
  322. package/extensions/discord/package.json +1 -1
  323. package/extensions/dream-cycle/package.json +1 -1
  324. package/extensions/elevenlabs/package.json +1 -1
  325. package/extensions/feishu/package.json +1 -1
  326. package/extensions/gemini-search/package.json +1 -1
  327. package/extensions/google/package.json +1 -1
  328. package/extensions/google-gemini-cli-auth/package.json +1 -1
  329. package/extensions/googlechat/package.json +1 -1
  330. package/extensions/grok-search/package.json +1 -1
  331. package/extensions/groq/package.json +1 -1
  332. package/extensions/identity-oidc/package.json +1 -1
  333. package/extensions/imessage/package.json +1 -1
  334. package/extensions/irc/package.json +1 -1
  335. package/extensions/kimi-search/package.json +1 -1
  336. package/extensions/kokoro/package.json +1 -1
  337. package/extensions/learning-core/package.json +1 -1
  338. package/extensions/line/package.json +1 -1
  339. package/extensions/llm-task/package.json +1 -1
  340. package/extensions/lobster/package.json +1 -1
  341. package/extensions/matrix/CHANGELOG.md +1 -1
  342. package/extensions/matrix/package.json +1 -1
  343. package/extensions/mattermost/package.json +1 -1
  344. package/extensions/memory-core/package.json +1 -1
  345. package/extensions/memory-lancedb/package.json +1 -1
  346. package/extensions/minimax/package.json +1 -1
  347. package/extensions/minimax-portal-auth/package.json +1 -1
  348. package/extensions/mistral/package.json +1 -1
  349. package/extensions/moonshot/package.json +1 -1
  350. package/extensions/msteams/CHANGELOG.md +1 -1
  351. package/extensions/msteams/package.json +1 -1
  352. package/extensions/nextcloud-talk/package.json +1 -1
  353. package/extensions/nostr/CHANGELOG.md +1 -1
  354. package/extensions/nostr/package.json +1 -1
  355. package/extensions/open-prose/package.json +1 -1
  356. package/extensions/openai/package.json +1 -1
  357. package/extensions/openai-realtime/package.json +1 -1
  358. package/extensions/openrouter/package.json +1 -1
  359. package/extensions/perplexity-search/package.json +1 -1
  360. package/extensions/searxng-search/package.json +1 -1
  361. package/extensions/signal/package.json +1 -1
  362. package/extensions/slack/package.json +1 -1
  363. package/extensions/synology-chat/package.json +1 -1
  364. package/extensions/telegram/package.json +1 -1
  365. package/extensions/tlon/package.json +1 -1
  366. package/extensions/twitch/CHANGELOG.md +1 -1
  367. package/extensions/twitch/package.json +1 -1
  368. package/extensions/ui-surfaces/package.json +1 -1
  369. package/extensions/voice-call/CHANGELOG.md +1 -1
  370. package/extensions/voice-call/package.json +1 -1
  371. package/extensions/whatsapp/package.json +1 -1
  372. package/extensions/zai/package.json +1 -1
  373. package/extensions/zalo/CHANGELOG.md +1 -1
  374. package/extensions/zalo/package.json +1 -1
  375. package/extensions/zalouser/CHANGELOG.md +1 -1
  376. package/extensions/zalouser/package.json +1 -1
  377. package/package.json +1 -1
  378. package/dist/plugin-sdk/agent-turn-execute-BtUQWiQP.js +0 -61
  379. package/dist/plugin-sdk/deliver-CD4ei5Br.js +0 -34
  380. package/dist/plugin-sdk/fetch-C5VHDsI9.js +0 -67
  381. package/dist/plugin-sdk/manager-QkzJVwqn.js +0 -14
  382. package/dist/plugin-sdk/provider-dispatcher-DCgZNlgL.js +0 -61
  383. package/dist/plugin-sdk/replies-BbTr5z6G.js +0 -25
  384. package/dist/plugin-sdk/runs-CtRu02zx.js +0 -27
  385. package/dist/plugin-sdk/send-D8GPq4yJ.js +0 -23
  386. package/dist/plugin-sdk/send-DI5IHS6G.js +0 -21
  387. package/dist/plugin-sdk/send-DYYxf2PO.js +0 -22
  388. package/dist/plugin-sdk/subagent-registry-B-w_tcYs.js +0 -61
@@ -1,70 +1,70 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
2
  import { _ as resolveStateDir, b as resolveRequiredHomeDir, h as resolveOAuthDir, l as resolveGatewayLockDir, o as resolveConfigPath, u as resolveGatewayPort, v as expandHomePrefix } from "./paths-BZCDWJ55.js";
3
- import { A as danger, B as getChildLogger, C as resolveUserPath, D as sleep$3, E as shortenHomePath, F as shouldLogVerbose, G as normalizeLogLevel, I as warn, J as INCLUDE_KEY, L as colorize, M as logVerbose, O as sliceUtf16Safe, P as setVerbose, R as isRich, T as shortenHomeInString, U as appendFileLog, Z as isBlockedObjectKey, _ as escapeRegExp, a as createNonExitingRuntime, b as normalizeE164, c as registerActiveProgressLine, et as openBoundaryFile, ft as isDangerousHostEnvVarName, k as truncateUtf16Safe, l as unregisterActiveProgressLine, m as clampInt, mt as resolvePreferredOpenClawTmpDir, o as defaultRuntime, p as CONFIG_DIR, s as clearActiveProgressLine, t as createSubsystemLogger, tt as openBoundaryFileSync, ut as normalizeWindowsPathForComparison, v as formatTerminalLink, w as safeParseJson, y as isRecord$1, z as theme } from "./subsystem-BCxHEOcF.js";
3
+ import { A as danger, B as getChildLogger, C as resolveUserPath, D as sleep$3, E as shortenHomePath, F as shouldLogVerbose, G as normalizeLogLevel, I as warn, J as INCLUDE_KEY, L as colorize, M as logVerbose, O as sliceUtf16Safe, P as setVerbose, R as isRich, T as shortenHomeInString, U as appendFileLog, Z as isBlockedObjectKey, _ as escapeRegExp, a as createNonExitingRuntime, b as normalizeE164, c as registerActiveProgressLine, et as openBoundaryFile, ft as isDangerousHostEnvVarName, k as truncateUtf16Safe, l as unregisterActiveProgressLine, m as clampInt, mt as resolvePreferredOpenClawTmpDir, o as defaultRuntime, p as CONFIG_DIR, s as clearActiveProgressLine, t as createSubsystemLogger, tt as openBoundaryFileSync, ut as normalizeWindowsPathForComparison, v as formatTerminalLink, w as safeParseJson, y as isRecord$1, z as theme } from "./subsystem-C30tnacl.js";
4
4
  import { n as resolveProcessScopedMap, t as isPlainObject } from "./plain-object-CjGF4kza.js";
5
- import { $ as DOCS_SITE_URL, $i as resolveModelAuthMode, $n as resolveIMessageAccount, $r as isWindowsPlatform, $t as closeReplacedConfiguredSessionStorageRuntime, A as resolveExecPolicyPreset, Ai as resolveConfiguredModelRef, An as resolveParentSessionGroupId, At as clearPluginCommands, Ba as DEFAULT_MODEL, Bn as normalizeHyphenSlug, Br as actionRequiresTarget, Bt as normalizeProviderId$1, Ca as withFileLock$1, Ci as buildModelAliasIndex, Cr as resolveMessageChannel, Ct as requireActivePluginRegistry, D as parseNonNegativeByteSize, Di as normalizeModelRef$2, Dn as setSessionRuntimeModel, Dr as normalizeAccountId$1, Dt as createPluginRegistry, E as normalizeScpRemoteHost, Ea as resolveAuthProfileDisplayLabel, Ei as modelKey, En as resolveFreshSessionTotalTokens, Er as GATEWAY_CLIENT_NAMES, Et as clearRegisteredPluginApis, Fi as resolveThinkingDefault, Fn as listChannelPlugins, Fr as channelTargetsSchema, Ft as BUILTIN_TTS_PROVIDER_IDS, G as isAvatarDataUrl, Ga as isTruthyEnvValue, Gi as buildAssistantMessageWithZeroUsage, Gn as resolveSlackAppToken, Gr as RecoveryAdmissionError, Gt as getConversationReadQuery, Ha as VERSION, Hi as OLLAMA_NATIVE_BASE_URL, Hn as normalizeStringEntriesLower, Hr as discardBufferedPluginTaskPasses, Ht as triggerInternalHook, In as normalizeChannelId$1, Ir as optionalStringEnum, It as getRegisteredSpeechProviders, J as isSupportedLocalAvatarExtension, Ja as advanceRuntimeConfigSnapshot, Ji as getApiKeyForModel, Jn as resolveSignalAccount, Jr as listWritableExplicitTrustedSafeBinDirs, Jt as recordSessionMetaFromInbound, K as isAvatarHttpUrl, Ka as parseBooleanValue$1, Ki as buildStreamErrorAssistantMessage, Kn as resolveSlackBotToken, Kr as getTrustedSafeBinDirs, La as resolveSecretInputRef, Ln as formatAllowlistMatchMeta, Lr as stringEnum, Lt as getSpeechProvider, Ma as hasConfiguredSecretInput, Mi as resolveModelRefFromString, Mn as listChannelDocks, Mt as listPluginCommands, Ni as resolveReasoningDefault, Nn as normalizeSignalMessagingTarget, Nt as matchPluginCommand, Oa as normalizeSecretInput, Oi as normalizeProviderId, On as deriveSessionMetaPatch, Or as CtxProjectionCorruptionError, Ot as normalizePluginHttpPath, Pa as normalizeResolvedSecretInputString, Pi as resolveSubagentSpawnModelSelection, Pn as getChannelPlugin, Pr as channelTargetSchema, Pt as registerPluginCommand, Q as loadPluginManifestRegistry, Qi as resolveEnvApiKey, Qn as resolveWhatsAppAccount, Qr as buildEnforcedShellCommand, Qt as closeConfiguredSessionStorageRuntime, Ra as splitTrailingAuthProfile, Rn as resolveAllowlistMatchByCandidates, Rr as applyTargetToParams, Rt as isBuiltinTtsProvider, S as isInboundPathAllowed, Sa as resolveOpenClawAgentDir, Si as buildConfiguredAllowlistKeys, Sn as resolveSessionLockMaxHoldFromTimeout, Sr as resolveGatewayMessageChannel, T as resolveIMessageRemoteAttachmentRoots, Ta as readProcessElapsedSeconds, Ti as isCliProvider, Tn as mergeSessionEntry, Tr as GATEWAY_CLIENT_MODES, Tt as addRegisteredPluginApi, Ua as getShellPathFromLoginShell, Ui as createOllamaStreamFn, Un as resolveSlackAccount, Ur as listBufferedPluginTaskPasses, Ut as StorageReadAccessError, Va as DEFAULT_PROVIDER, Vi as retryAsync, Vn as normalizeStringEntries, Vt as createInternalHookEvent, W as AVATAR_MAX_BYTES, Wa as resolveShellEnvFallbackTimeoutMs, Wi as buildAssistantMessage, Wn as resolveSlackReplyToMode, Wr as replaceBufferedPluginTaskPasses, Wt as createConversationReadQuery, Xi as requireApiKey, Xn as normalizeWhatsAppTarget, Xr as validateSafeBinArgv, Xt as updateSessionStore, Y as buildChannelAccountBindings, Yi as getCustomProviderApiKey, Yn as isWhatsAppGroupJid, Yr as normalizeTrustedSafeBinDirs, Yt as updateLastRoute, Z as validateJsonSchemaValue, Za as getRuntimeConfigSnapshot, Zn as hasAnyWhatsAppAuth, Zr as analyzeShellCommand, Zt as updateSessionStoreEntry, _a as dedupeProfileIds, _i as resolveSlackNativeStreaming, _n as resolveSessionFilePathOptions, _r as isGatewayMessageChannel, _t as normalizeChatChannelId, a as writeConfigFile, aa as markAuthProfileUsed, ai as extractShellWrapperInlineCommand, an as readSessionUpdatedAt, ar as resolveChannelGroupRequireMention, at as resolveEffectiveEnableState, b as validateConfigObjectWithPlugins, ba as ensureAuthProfileStore, bi as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH, bn as resolveStorePath, br as listDeliverableMessageChannels, bt as getActivePluginRegistry, c as getConfigOverrides, ca as resolveSecretRefValues, ci as unwrapKnownDispatchWrapperInvocation, ct as isPathInside, d as unsetConfigOverride, da as isRecord$2, di as SAFE_BIN_PROFILES, dr as deliveryContextKey, ei as splitCommandChain, en as commitPreparedConfiguredSessionStorageRuntimeActivation, eo as applyMergePatch, er as createDiscordActionGate, et as docsSiteUrl, f as getConfigValueAtPath, fa as parseDotPath, fi as normalizeSafeBinProfileFixtures, fr as mergeDeliveryContext, ft as CHAT_CHANNEL_ORDER, ga as resolveCliName, gi as resolveDiscordPreviewStreamMode, gn as resolveSessionFilePath, gr as isDeliverableMessageChannel, gt as normalizeChannelId$2, h as unsetConfigValueAtPath, ha as formatCliCommand, hi as mapStreamingModeToSlackLegacyDraftStreamMode, hr as INTERNAL_MESSAGE_CHANNEL, ht as normalizeAnyChannelId, i as readConfigFileSnapshotForWrite, ia as markAuthProfileFailure, ii as resolveCommandResolutionFromArgv, in as loadSessionStoreFromDisk, ir as resolveChannelGroupPolicy, it as normalizePluginsConfig, ja as coerceSecretRef, ji as resolveDefaultModelForAgent, jn as getChannelDock, jt as executePluginCommand, ki as parseModelRef, kn as resolveGroupSessionKey, kr as readTaskWorkStates, kt as buildPluginHealthReport, l as resetConfigOverrides, la as describeUnknownError$1, li as unwrapKnownShellMultiplexerInvocation, ln as parseSessionIndexRecordKey, lr as resolveAccountEntry, lt as safeStatSync, m as setConfigValueAtPath, ma as runTasksWithConcurrency, mi as isSafeExecutableValue, mn as SESSION_RUN_STORE_FILE_NAME, mr as normalizeSessionDeliveryFields, mt as listChatChannels, n as loadConfig, na as getSoonestCooldownExpiry, ni as matchAllowlist, nn as refreshConfiguredSessionBindingEntry, nr as resolveDiscordAccount, nt as applyTestPluginDefaults, o as createConfigIO, oa as resolveProfilesUnavailableReason, oi as isDispatchWrapperExecutable, on as parseDurationMs, or as resolveChannelGroupToolsPolicy, ot as resolveMemorySlotDecision, p as parseConfigPath, pa as secretRefKey, pi as resolveSafeBinProfiles, pn as SAFE_SESSION_ID_RE, pr as normalizeDeliveryContext, pt as getChatChannelMeta, q as isPathWithinRoot, qa as resolveOwnerDisplaySetting, qi as buildUsageWithNoCost, qn as listEnabledSignalAccounts, qr as isTrustedSafeBinPath, qt as requireSessionStorageRuntime, r as readConfigFileSnapshot, ra as isProfileInCooldown, ri as resolveAllowlistCandidatePath, rn as loadSessionStore, rr as normalizeDiscordToken, rt as isBundledChannelEnabledByChannelConfig, sa as resolveApiKeyForProfile, si as isShellWrapperExecutable, sn as getConfiguredSessionStorageRuntime, st as discoverOpenClawPlugins, ta as resolveAuthProfileOrder, ti as DEFAULT_SAFE_BINS, tn as prepareConfiguredSessionStorageRuntimeActivation, tr as listEnabledDiscordAccounts, tt as BUNDLED_ENABLED_BY_DEFAULT, u as setConfigOverride, ua as isNonEmptyString, ui as splitShellArgs, ur as deliveryContextFromSession, ut as readManifestNamespace, va as listProfilesForProvider, vi as resolveSlackStreamingMode, vn as resolveSessionTranscriptPath, vr as isInternalMessageChannel, vt as resolveChannelConfigId, w as resolveIMessageAttachmentRoots, wa as isPidAlive, wi as findNormalizedProviderValue, wn as DEFAULT_RESET_TRIGGERS, wr as GATEWAY_CLIENT_IDS, wt as setActivePluginRegistry, xa as resolveAuthStorePathForDisplay, xi as buildAllowedModelSet, xn as acquireSessionWriteLock, xr as normalizeMessageChannel, xt as getActivePluginRegistryKey, ya as markAuthProfileGood, yr as isMarkdownCapableMessageChannel, yt as getActiveGatewayPluginRegistry, za as DEFAULT_CONTEXT_TOKENS, zn as normalizeAtHashSlug, zr as actionHasTarget, zt as replaceSpeechProviders } from "./config-Bsj2p2wE.js";
6
- import { $ as normalizeAgentId, A as runCommandWithTimeout, B as toAgentModelListLike, D as loadWorkspaceBootstrapFiles, E as filterBootstrapFilesForSession, F as logInfo, G as buildAgentMainSessionKey, I as logWarn, M as spawnWithFallback, N as logDebug, O as resolveOpenClawPackageRoot, P as logError, Q as isValidAgentId, R as resolveAgentModelFallbackValues, St as stripAgentSessionKeyPrefix, T as ensureAgentWorkspace, U as DEVICE_SENDER_PREFIX, V as DEFAULT_AGENT_ID, Z as isKnownAgentMainSessionKey, _t as isCronSessionKey, at as resolveThreadSessionKeys, b as DEFAULT_HEARTBEAT_FILENAME, bt as parseAgentSessionKey, c as resolveAgentDir, ct as toAgentStoreSessionKey, d as resolveAgentWorkspaceDir, dt as normalizeOptionalAccountId, et as normalizeMainKey, f as resolveDefaultAgentId, g as resolveSessionAgentIds, gt as isAcpSessionKey, h as resolveSessionAgentId, ht as getSubagentDepth, i as isInternalAgentSessionKey, it as resolveConfiguredCanonicalIdentity, j as runExec, lt as DEFAULT_ACCOUNT_ID, m as resolveRunModelFallbacksOverride, mt as WAKE_GATE_SESSION_KEY_SEGMENT, n as hasConfiguredModelFallbacks, nt as resolveAgentIdFromSessionKey, o as listAgentIds, ot as sanitizeAgentId, p as resolveEffectiveModelFallbacks, q as classifySessionKeyShape, r as isAgentUserFacing, rt as resolveCanonicalIdentity, s as resolveAgentConfig, st as sessionKeyAgentMatches, t as acceptsInheritedIdentity, tt as normalizeToken, u as resolveAgentSkillsFilter, ut as normalizeAccountId$2, v as DEFAULT_AGENT_WORKSPACE_DIR, x as DEFAULT_IDENTITY_FILENAME, xt as resolveThreadParentSessionKey, y as DEFAULT_BOOTSTRAP_FILENAME, yt as isSubagentSessionKey, z as resolveAgentModelPrimaryValue } from "./agent-scope-Baake9Zw.js";
5
+ import { $ as DOCS_SITE_URL, $i as resolveModelAuthMode, $n as resolveIMessageAccount, $r as isWindowsPlatform, $t as closeReplacedConfiguredSessionStorageRuntime, A as resolveExecPolicyPreset, Ai as resolveConfiguredModelRef, An as resolveParentSessionGroupId, At as clearPluginCommands, Ba as DEFAULT_MODEL, Bn as normalizeHyphenSlug, Br as actionRequiresTarget, Bt as normalizeProviderId$1, Ca as withFileLock$1, Ci as buildModelAliasIndex, Cr as resolveMessageChannel, Ct as requireActivePluginRegistry, D as parseNonNegativeByteSize, Di as normalizeModelRef$2, Dn as setSessionRuntimeModel, Dr as normalizeAccountId$1, Dt as createPluginRegistry, E as normalizeScpRemoteHost, Ea as resolveAuthProfileDisplayLabel, Ei as modelKey, En as resolveFreshSessionTotalTokens, Er as GATEWAY_CLIENT_NAMES, Et as clearRegisteredPluginApis, Fi as resolveThinkingDefault, Fn as listChannelPlugins, Fr as channelTargetsSchema, Ft as BUILTIN_TTS_PROVIDER_IDS, G as isAvatarDataUrl, Ga as isTruthyEnvValue, Gi as buildAssistantMessageWithZeroUsage, Gn as resolveSlackAppToken, Gr as RecoveryAdmissionError, Gt as getConversationReadQuery, Ha as VERSION, Hi as OLLAMA_NATIVE_BASE_URL, Hn as normalizeStringEntriesLower, Hr as discardBufferedPluginTaskPasses, Ht as triggerInternalHook, In as normalizeChannelId$1, Ir as optionalStringEnum, It as getRegisteredSpeechProviders, J as isSupportedLocalAvatarExtension, Ja as advanceRuntimeConfigSnapshot, Ji as getApiKeyForModel, Jn as resolveSignalAccount, Jr as listWritableExplicitTrustedSafeBinDirs, Jt as recordSessionMetaFromInbound, K as isAvatarHttpUrl, Ka as parseBooleanValue$1, Ki as buildStreamErrorAssistantMessage, Kn as resolveSlackBotToken, Kr as getTrustedSafeBinDirs, La as resolveSecretInputRef, Ln as formatAllowlistMatchMeta, Lr as stringEnum, Lt as getSpeechProvider, Ma as hasConfiguredSecretInput, Mi as resolveModelRefFromString, Mn as listChannelDocks, Mt as listPluginCommands, Ni as resolveReasoningDefault, Nn as normalizeSignalMessagingTarget, Nt as matchPluginCommand, Oa as normalizeSecretInput, Oi as normalizeProviderId, On as deriveSessionMetaPatch, Or as CtxProjectionCorruptionError, Ot as normalizePluginHttpPath, Pa as normalizeResolvedSecretInputString, Pi as resolveSubagentSpawnModelSelection, Pn as getChannelPlugin, Pr as channelTargetSchema, Pt as registerPluginCommand, Q as loadPluginManifestRegistry, Qi as resolveEnvApiKey, Qn as resolveWhatsAppAccount, Qr as buildEnforcedShellCommand, Qt as closeConfiguredSessionStorageRuntime, Ra as splitTrailingAuthProfile, Rn as resolveAllowlistMatchByCandidates, Rr as applyTargetToParams, Rt as isBuiltinTtsProvider, S as isInboundPathAllowed, Sa as resolveOpenClawAgentDir, Si as buildConfiguredAllowlistKeys, Sn as resolveSessionLockMaxHoldFromTimeout, Sr as resolveGatewayMessageChannel, T as resolveIMessageRemoteAttachmentRoots, Ta as readProcessElapsedSeconds, Ti as isCliProvider, Tn as mergeSessionEntry, Tr as GATEWAY_CLIENT_MODES, Tt as addRegisteredPluginApi, Ua as getShellPathFromLoginShell, Ui as createOllamaStreamFn, Un as resolveSlackAccount, Ur as listBufferedPluginTaskPasses, Ut as StorageReadAccessError, Va as DEFAULT_PROVIDER, Vi as retryAsync, Vn as normalizeStringEntries, Vt as createInternalHookEvent, W as AVATAR_MAX_BYTES, Wa as resolveShellEnvFallbackTimeoutMs, Wi as buildAssistantMessage, Wn as resolveSlackReplyToMode, Wr as replaceBufferedPluginTaskPasses, Wt as createConversationReadQuery, Xi as requireApiKey, Xn as normalizeWhatsAppTarget, Xr as validateSafeBinArgv, Xt as updateSessionStore, Y as buildChannelAccountBindings, Yi as getCustomProviderApiKey, Yn as isWhatsAppGroupJid, Yr as normalizeTrustedSafeBinDirs, Yt as updateLastRoute, Z as validateJsonSchemaValue, Za as getRuntimeConfigSnapshot, Zn as hasAnyWhatsAppAuth, Zr as analyzeShellCommand, Zt as updateSessionStoreEntry, _a as dedupeProfileIds, _i as resolveSlackNativeStreaming, _n as resolveSessionFilePathOptions, _r as isGatewayMessageChannel, _t as normalizeChatChannelId, a as writeConfigFile, aa as markAuthProfileUsed, ai as extractShellWrapperInlineCommand, an as readSessionUpdatedAt, ar as resolveChannelGroupRequireMention, at as resolveEffectiveEnableState, b as validateConfigObjectWithPlugins, ba as ensureAuthProfileStore, bi as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH, bn as resolveStorePath, br as listDeliverableMessageChannels, bt as getActivePluginRegistry, c as getConfigOverrides, ca as resolveSecretRefValues, ci as unwrapKnownDispatchWrapperInvocation, ct as isPathInside, d as unsetConfigOverride, da as isRecord$2, di as SAFE_BIN_PROFILES, dr as deliveryContextKey, ei as splitCommandChain, en as commitPreparedConfiguredSessionStorageRuntimeActivation, eo as applyMergePatch, er as createDiscordActionGate, et as docsSiteUrl, f as getConfigValueAtPath, fa as parseDotPath, fi as normalizeSafeBinProfileFixtures, fr as mergeDeliveryContext, ft as CHAT_CHANNEL_ORDER, ga as resolveCliName, gi as resolveDiscordPreviewStreamMode, gn as resolveSessionFilePath, gr as isDeliverableMessageChannel, gt as normalizeChannelId$2, h as unsetConfigValueAtPath, ha as formatCliCommand, hi as mapStreamingModeToSlackLegacyDraftStreamMode, hr as INTERNAL_MESSAGE_CHANNEL, ht as normalizeAnyChannelId, i as readConfigFileSnapshotForWrite, ia as markAuthProfileFailure, ii as resolveCommandResolutionFromArgv, in as loadSessionStoreFromDisk, ir as resolveChannelGroupPolicy, it as normalizePluginsConfig, ja as coerceSecretRef, ji as resolveDefaultModelForAgent, jn as getChannelDock, jt as executePluginCommand, ki as parseModelRef, kn as resolveGroupSessionKey, kr as readTaskWorkStates, kt as buildPluginHealthReport, l as resetConfigOverrides, la as describeUnknownError$1, li as unwrapKnownShellMultiplexerInvocation, ln as parseSessionIndexRecordKey, lr as resolveAccountEntry, lt as safeStatSync, m as setConfigValueAtPath, ma as runTasksWithConcurrency, mi as isSafeExecutableValue, mn as SESSION_RUN_STORE_FILE_NAME, mr as normalizeSessionDeliveryFields, mt as listChatChannels, n as loadConfig, na as getSoonestCooldownExpiry, ni as matchAllowlist, nn as refreshConfiguredSessionBindingEntry, nr as resolveDiscordAccount, nt as applyTestPluginDefaults, o as createConfigIO, oa as resolveProfilesUnavailableReason, oi as isDispatchWrapperExecutable, on as parseDurationMs, or as resolveChannelGroupToolsPolicy, ot as resolveMemorySlotDecision, p as parseConfigPath, pa as secretRefKey, pi as resolveSafeBinProfiles, pn as SAFE_SESSION_ID_RE, pr as normalizeDeliveryContext, pt as getChatChannelMeta, q as isPathWithinRoot, qa as resolveOwnerDisplaySetting, qi as buildUsageWithNoCost, qn as listEnabledSignalAccounts, qr as isTrustedSafeBinPath, qt as requireSessionStorageRuntime, r as readConfigFileSnapshot, ra as isProfileInCooldown, ri as resolveAllowlistCandidatePath, rn as loadSessionStore, rr as normalizeDiscordToken, rt as isBundledChannelEnabledByChannelConfig, sa as resolveApiKeyForProfile, si as isShellWrapperExecutable, sn as getConfiguredSessionStorageRuntime, st as discoverOpenClawPlugins, ta as resolveAuthProfileOrder, ti as DEFAULT_SAFE_BINS, tn as prepareConfiguredSessionStorageRuntimeActivation, tr as listEnabledDiscordAccounts, tt as BUNDLED_ENABLED_BY_DEFAULT, u as setConfigOverride, ua as isNonEmptyString, ui as splitShellArgs, ur as deliveryContextFromSession, ut as readManifestNamespace, va as listProfilesForProvider, vi as resolveSlackStreamingMode, vn as resolveSessionTranscriptPath, vr as isInternalMessageChannel, vt as resolveChannelConfigId, w as resolveIMessageAttachmentRoots, wa as isPidAlive, wi as findNormalizedProviderValue, wn as DEFAULT_RESET_TRIGGERS, wr as GATEWAY_CLIENT_IDS, wt as setActivePluginRegistry, xa as resolveAuthStorePathForDisplay, xi as buildAllowedModelSet, xn as acquireSessionWriteLock, xr as normalizeMessageChannel, xt as getActivePluginRegistryKey, ya as markAuthProfileGood, yr as isMarkdownCapableMessageChannel, yt as getActiveGatewayPluginRegistry, za as DEFAULT_CONTEXT_TOKENS, zn as normalizeAtHashSlug, zr as actionHasTarget, zt as replaceSpeechProviders } from "./config-i54suDg0.js";
6
+ import { $ as normalizeAgentId, A as runCommandWithTimeout, B as toAgentModelListLike, D as loadWorkspaceBootstrapFiles, E as filterBootstrapFilesForSession, F as logInfo, G as buildAgentMainSessionKey, I as logWarn, M as spawnWithFallback, N as logDebug, O as resolveOpenClawPackageRoot, P as logError, Q as isValidAgentId, R as resolveAgentModelFallbackValues, St as stripAgentSessionKeyPrefix, T as ensureAgentWorkspace, U as DEVICE_SENDER_PREFIX, V as DEFAULT_AGENT_ID, Z as isKnownAgentMainSessionKey, _t as isCronSessionKey, at as resolveThreadSessionKeys, b as DEFAULT_HEARTBEAT_FILENAME, bt as parseAgentSessionKey, c as resolveAgentDir, ct as toAgentStoreSessionKey, d as resolveAgentWorkspaceDir, dt as normalizeOptionalAccountId, et as normalizeMainKey, f as resolveDefaultAgentId, g as resolveSessionAgentIds, gt as isAcpSessionKey, h as resolveSessionAgentId, ht as getSubagentDepth, i as isInternalAgentSessionKey, it as resolveConfiguredCanonicalIdentity, j as runExec, lt as DEFAULT_ACCOUNT_ID, m as resolveRunModelFallbacksOverride, mt as WAKE_GATE_SESSION_KEY_SEGMENT, n as hasConfiguredModelFallbacks, nt as resolveAgentIdFromSessionKey, o as listAgentIds, ot as sanitizeAgentId, p as resolveEffectiveModelFallbacks, q as classifySessionKeyShape, r as isAgentUserFacing, rt as resolveCanonicalIdentity, s as resolveAgentConfig, st as sessionKeyAgentMatches, t as acceptsInheritedIdentity, tt as normalizeToken, u as resolveAgentSkillsFilter, ut as normalizeAccountId$2, v as DEFAULT_AGENT_WORKSPACE_DIR, x as DEFAULT_IDENTITY_FILENAME, xt as resolveThreadParentSessionKey, y as DEFAULT_BOOTSTRAP_FILENAME, yt as isSubagentSessionKey, z as resolveAgentModelPrimaryValue } from "./agent-scope-CmMflllE.js";
7
7
  import { a as saveJsonFile, i as loadJsonFile, r as resolveCopilotApiToken } from "./github-copilot-token-KU60WOFB.js";
8
8
  import { n as resolveConversationLabel, r as normalizeChatType } from "./conversation-label-BkRfLUVO.js";
9
- 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-BrqnAR-x.js";
10
- import { $ as setChannelPermissionDiscord, A as readMessagesDiscord, At as buildChannelKeyCandidates, B as kickMemberDiscord, C as createThreadDiscord, Ct as shouldEmitDiscordReactionNotification, D as listPinsDiscord, Dt as resolveTimestampMs, E as fetchMessageDiscord, Et as resolveDiscordSystemLocation, F as createScheduledEventDiscord, G as listGuildEmojisDiscord, H as listScheduledEventsDiscord, I as fetchChannelInfoDiscord, J as createChannelDiscord, K as uploadEmojiDiscord, L as fetchMemberInfoDiscord, M as unpinMessageDiscord, Mt as resolveChannelEntryMatchWithFallback, N as addRoleDiscord, O as listThreadsDiscord, Ot as fetchDiscord, P as banMemberDiscord, Q as removeChannelPermissionDiscord, R as fetchRoleInfoDiscord, S as recordChannelActivity, St as resolveGroupDmAllow, T as editMessageDiscord, Tt as formatDiscordUserTag, U as removeRoleDiscord, V as listGuildChannelsDiscord, W as timeoutMemberDiscord, X as editChannelDiscord, Y as deleteChannelDiscord, Z as moveChannelDiscord, _ as sendPollDiscord, _t as resolveDiscordGuildEntry, a as removeReactionDiscord, at as createDiscordClient, b as sendWebhookMessageDiscord, bt as resolveDiscordOwnerAllowFrom, c as formatDiscordComponentEventText, ct as parseDiscordTarget, d as parseDiscordModalCustomId, dt as listDiscordDirectoryPeersLive, et as stripUndefinedFields, f as parseDiscordModalCustomIdForCarbon, ft as isDiscordGroupAllowedByPolicy, g as sendMessageDiscord, gt as resolveDiscordChannelConfigWithFallback, h as resolveDiscordModalEntry, ht as resolveDiscordAllowListMatch, i as removeOwnReactionsDiscord, it as normalizePollInput, j as searchMessagesDiscord, jt as normalizeChannelSlug, k as pinMessageDiscord, kt as applyChannelMatchMeta, l as parseDiscordComponentCustomId, lt as resolveDiscordChannelId, m as resolveDiscordComponentEntry, mt as normalizeDiscordSlug, n as fetchReactionsDiscord, nt as hasAnyGuildPermissionDiscord, o as sendDiscordComponentMessage, ot as createDiscordRestClient, p as readDiscordComponentSpec, pt as normalizeDiscordAllowList, q as uploadStickerDiscord, r as reactMessageDiscord, rt as chunkDiscordTextWithMode, s as createDiscordFormModal, st as createDiscordRetryRunner, tt as fetchChannelPermissionsDiscord, u as parseDiscordComponentCustomIdForCarbon, ut as listDiscordDirectoryGroupsLive, v as sendStickerDiscord, vt as resolveDiscordMemberAccessState, w as deleteMessageDiscord, wt as formatDiscordReactionEmoji, x as getChannelActivity, xt as resolveDiscordShouldRequireMention, y as sendVoiceMessageDiscord, yt as resolveDiscordOwnerAccess, z as fetchVoiceStatusDiscord } from "./send-C3NzAXnk.js";
11
- import { c as enqueueAgentTurn, d as peekDelayedAgentTurn, f as setDelayedReleaseHold, i as AGENT_TURN_TOPIC, l as isClaimableAgentTurnWorkId, m as WORKSPACE_LANE_DENIED_REASON, p as KeyedAsyncQueue, r as tryGetAgentTurnRuntime, s as clearDelayedReleaseHold, u as mergeDelayedAgentTurn } from "./agent-turn-runner-N0SoqZOW.js";
12
- import { $ as stripMessageCarriers, A as resolveChannelResetConfig, At as getGlobalHookRunner, B as openDbSessionManager, Bt as resolveProviderPromptCacheKey, C as normalizeHttpWebhookUrl, Ct as sanitizeToolUseResultPairing, E as parseAbsoluteTimeMs, Et as sanitizeToolCallIdsForCloudCodeAssist, F as resolveAgentMainSessionKey, Ft as createCurrentUserPromptEnvelope, G as sha256, H as drainPendingPrimaryWrites, Ht as formatMessageStamp, I as resolveExplicitAgentSessionKey, It as mergePromptContributions, J as renderInboundUserContext, K as buildInboundMetaSystemPrompt, L as resolveMainSessionKey, Lt as toJsonValue$1, M as resolveSessionResetType, Mt as initializeGlobalHookRunner, N as resolveThreadFlag, Nt as hasHookForPlugin, O as resolveSessionKey, Ot as hasInterSessionUserProvenance, P as canonicalizeMainSessionAlias, Pt as promptBuildResultToContribution, Q as messageTime, R as isPrimarySessionTranscriptFileName, Rt as buildPluginRuntimeIdentity, S as inferLegacyName, St as sanitizeToolCallInputs, T as resolveDefaultCronStaggerMs, Tt as canonicalToolCallIdBase, U as extractLegacyTranscriptEntryFields, Ut as formatZonedTimestamp, V as runSerializedBySession, Vt as resolveProviderRuntimeIdentity, W as sanitizeJsonb, Wt as resolveTimezone, X as getMessageIngress, Y as attachMessageIngress, Z as isRepresentableEpochMs, _ as derivePromptTokens, _t as getToolResultText$1, a as resolveMirroredTranscriptText, at as capToolResultContent, b as makeZeroUsageSnapshot, bt as openRawToolResultStash, c as createSessionStorageRuntimeFromConfig, ct as PREEMPTIVE_TOOL_RESULT_COMPACTION_PLACEHOLDER, d as buildEqualityProjection, dt as truncateToolResultToChars, et as resolveSenderLabel, ft as CHARS_PER_TOKEN_ESTIMATE$2, g as sanitizeAppendEntry, gt as estimateMessageCharsCached, h as CREATE_CTX_STORAGE_OWNER_SQL, ht as estimateContextChars$1, i as appendAssistantMessageToSessionTranscript, it as HIDDEN_HEARTBEAT_CUSTOM_TYPE, j as resolveSessionResetPolicy, jt as getGlobalPluginRegistry, k as evaluateSessionFreshness, kt as normalizeInputProvenance, l as resolveSessionStorageConfig, lt as TOOL_RESULT_TEXT_WEIGHT, m as deriveLegacyActorIdentity, mt as createMessageCharEstimateCache, n as parseSessionThreadInfo, nt as eventOrder, o as parseInlineDirectives$1, ot as HARD_MAX_TOOL_RESULT_CHARS, pt as TOOL_RESULT_CHARS_PER_TOKEN_ESTIMATE, q as collectInboundUserContext, r as resolveAndPersistSessionFile, rt as pickLeaf, s as attachPgPoolErrorListeners, st as sessionLikelyHasOversizedToolResults, t as extractDeliveryInfo, tt as DB_SESSION_HYDRATION_LIMIT, u as validateCtxStorage, ut as truncateTextHeadTail, v as deriveSessionTotalTokens, vt as isToolResultMessage, w as normalizeCronStaggerMs, wt as stripToolResultDetails, x as normalizeUsage, xt as repairToolUseResultPairing, y as hasNonzeroUsage, yt as guardSessionManager, z as isSessionArchiveArtifactName, zt as buildPluginTurnIdentity } from "./sessions-O7vI51ov.js";
13
- import { A as issueDeviceBootstrapToken, C as randomIdempotencyKey, D as gatewayErrorShapeOf, E as gatewayErrorReason, M as setActiveCoordinationDepth, O as validateSecretsResolveResult, S as callGatewayLeastPrivilege, T as GatewayClient, _ as resolveSessionReference, a as buildAgentToAgentMessageContext, b as buildGatewayConnectionDetails, c as isReplySkip, d as createSessionVisibilityGuard, f as resolveEffectiveSessionToolsVisibility, g as resolveMainSessionAlias, h as resolveInternalSessionKey, i as buildAgentToAgentAnnounceContext, j as clearActiveCoordinationDepth, k as SESSION_LABEL_MAX_LENGTH, l as resolvePingPongTurns, m as resolveDisplaySessionKey, n as requestAuthorizedNudge, o as buildAgentToAgentReplyContext, p as resolveSandboxedSessionToolContext, r as AuthorizationError, s as isAnnounceSkip, u as createAgentToAgentPolicy, v as resolveVisibleSessionReference, w as resolveLeastPrivilegeOperatorScopesForMethod, x as callGateway, y as shouldResolveSessionIdInput } from "./nudge-CbzF1JFW.js";
9
+ 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-LeMti0BS.js";
10
+ import { $ as setChannelPermissionDiscord, A as readMessagesDiscord, At as buildChannelKeyCandidates, B as kickMemberDiscord, C as createThreadDiscord, Ct as shouldEmitDiscordReactionNotification, D as listPinsDiscord, Dt as resolveTimestampMs, E as fetchMessageDiscord, Et as resolveDiscordSystemLocation, F as createScheduledEventDiscord, G as listGuildEmojisDiscord, H as listScheduledEventsDiscord, I as fetchChannelInfoDiscord, J as createChannelDiscord, K as uploadEmojiDiscord, L as fetchMemberInfoDiscord, M as unpinMessageDiscord, Mt as resolveChannelEntryMatchWithFallback, N as addRoleDiscord, O as listThreadsDiscord, Ot as fetchDiscord, P as banMemberDiscord, Q as removeChannelPermissionDiscord, R as fetchRoleInfoDiscord, S as recordChannelActivity, St as resolveGroupDmAllow, T as editMessageDiscord, Tt as formatDiscordUserTag, U as removeRoleDiscord, V as listGuildChannelsDiscord, W as timeoutMemberDiscord, X as editChannelDiscord, Y as deleteChannelDiscord, Z as moveChannelDiscord, _ as sendPollDiscord, _t as resolveDiscordGuildEntry, a as removeReactionDiscord, at as createDiscordClient, b as sendWebhookMessageDiscord, bt as resolveDiscordOwnerAllowFrom, c as formatDiscordComponentEventText, ct as parseDiscordTarget, d as parseDiscordModalCustomId, dt as listDiscordDirectoryPeersLive, et as stripUndefinedFields, f as parseDiscordModalCustomIdForCarbon, ft as isDiscordGroupAllowedByPolicy, g as sendMessageDiscord, gt as resolveDiscordChannelConfigWithFallback, h as resolveDiscordModalEntry, ht as resolveDiscordAllowListMatch, i as removeOwnReactionsDiscord, it as normalizePollInput, j as searchMessagesDiscord, jt as normalizeChannelSlug, k as pinMessageDiscord, kt as applyChannelMatchMeta, l as parseDiscordComponentCustomId, lt as resolveDiscordChannelId, m as resolveDiscordComponentEntry, mt as normalizeDiscordSlug, n as fetchReactionsDiscord, nt as hasAnyGuildPermissionDiscord, o as sendDiscordComponentMessage, ot as createDiscordRestClient, p as readDiscordComponentSpec, pt as normalizeDiscordAllowList, q as uploadStickerDiscord, r as reactMessageDiscord, rt as chunkDiscordTextWithMode, s as createDiscordFormModal, st as createDiscordRetryRunner, tt as fetchChannelPermissionsDiscord, u as parseDiscordComponentCustomIdForCarbon, ut as listDiscordDirectoryGroupsLive, v as sendStickerDiscord, vt as resolveDiscordMemberAccessState, w as deleteMessageDiscord, wt as formatDiscordReactionEmoji, x as getChannelActivity, xt as resolveDiscordShouldRequireMention, y as sendVoiceMessageDiscord, yt as resolveDiscordOwnerAccess, z as fetchVoiceStatusDiscord } from "./send-C76HubTD.js";
11
+ import { c as enqueueAgentTurn, d as peekDelayedAgentTurn, f as setDelayedReleaseHold, i as AGENT_TURN_TOPIC, l as isClaimableAgentTurnWorkId, m as WORKSPACE_LANE_DENIED_REASON, p as KeyedAsyncQueue, r as tryGetAgentTurnRuntime, s as clearDelayedReleaseHold, u as mergeDelayedAgentTurn } from "./agent-turn-runner-DgRUf3t9.js";
12
+ import { $ as stripMessageCarriers, A as resolveChannelResetConfig, At as getGlobalHookRunner, B as openDbSessionManager, Bt as resolveProviderPromptCacheKey, C as normalizeHttpWebhookUrl, Ct as sanitizeToolUseResultPairing, E as parseAbsoluteTimeMs, Et as sanitizeToolCallIdsForCloudCodeAssist, F as resolveAgentMainSessionKey, Ft as createCurrentUserPromptEnvelope, G as sha256, H as drainPendingPrimaryWrites, Ht as formatMessageStamp, I as resolveExplicitAgentSessionKey, It as mergePromptContributions, J as renderInboundUserContext, K as buildInboundMetaSystemPrompt, L as resolveMainSessionKey, Lt as toJsonValue$1, M as resolveSessionResetType, Mt as initializeGlobalHookRunner, N as resolveThreadFlag, Nt as hasHookForPlugin, O as resolveSessionKey, Ot as hasInterSessionUserProvenance, P as canonicalizeMainSessionAlias, Pt as promptBuildResultToContribution, Q as messageTime, R as isPrimarySessionTranscriptFileName, Rt as buildPluginRuntimeIdentity, S as inferLegacyName, St as sanitizeToolCallInputs, T as resolveDefaultCronStaggerMs, Tt as canonicalToolCallIdBase, U as extractLegacyTranscriptEntryFields, Ut as formatZonedTimestamp, V as runSerializedBySession, Vt as resolveProviderRuntimeIdentity, W as sanitizeJsonb, Wt as resolveTimezone, X as getMessageIngress, Y as attachMessageIngress, Z as isRepresentableEpochMs, _ as derivePromptTokens, _t as getToolResultText$1, a as resolveMirroredTranscriptText, at as capToolResultContent, b as makeZeroUsageSnapshot, bt as openRawToolResultStash, c as createSessionStorageRuntimeFromConfig, ct as PREEMPTIVE_TOOL_RESULT_COMPACTION_PLACEHOLDER, d as buildEqualityProjection, dt as truncateToolResultToChars, et as resolveSenderLabel, ft as CHARS_PER_TOKEN_ESTIMATE$2, g as sanitizeAppendEntry, gt as estimateMessageCharsCached, h as CREATE_CTX_STORAGE_OWNER_SQL, ht as estimateContextChars$1, i as appendAssistantMessageToSessionTranscript, it as HIDDEN_HEARTBEAT_CUSTOM_TYPE, j as resolveSessionResetPolicy, jt as getGlobalPluginRegistry, k as evaluateSessionFreshness, kt as normalizeInputProvenance, l as resolveSessionStorageConfig, lt as TOOL_RESULT_TEXT_WEIGHT, m as deriveLegacyActorIdentity, mt as createMessageCharEstimateCache, n as parseSessionThreadInfo, nt as eventOrder, o as parseInlineDirectives$1, ot as HARD_MAX_TOOL_RESULT_CHARS, pt as TOOL_RESULT_CHARS_PER_TOKEN_ESTIMATE, q as collectInboundUserContext, r as resolveAndPersistSessionFile, rt as pickLeaf, s as attachPgPoolErrorListeners, st as sessionLikelyHasOversizedToolResults, t as extractDeliveryInfo, tt as DB_SESSION_HYDRATION_LIMIT, u as validateCtxStorage, ut as truncateTextHeadTail, v as deriveSessionTotalTokens, vt as isToolResultMessage, w as normalizeCronStaggerMs, wt as stripToolResultDetails, x as normalizeUsage, xt as repairToolUseResultPairing, y as hasNonzeroUsage, yt as guardSessionManager, z as isSessionArchiveArtifactName, zt as buildPluginTurnIdentity } from "./sessions-CFd8Ydiq.js";
13
+ import { A as issueDeviceBootstrapToken, C as randomIdempotencyKey, D as gatewayErrorShapeOf, E as gatewayErrorReason, M as setActiveCoordinationDepth, O as validateSecretsResolveResult, S as callGatewayLeastPrivilege, T as GatewayClient, _ as resolveSessionReference, a as buildAgentToAgentMessageContext, b as buildGatewayConnectionDetails, c as isReplySkip, d as createSessionVisibilityGuard, f as resolveEffectiveSessionToolsVisibility, g as resolveMainSessionAlias, h as resolveInternalSessionKey, i as buildAgentToAgentAnnounceContext, j as clearActiveCoordinationDepth, k as SESSION_LABEL_MAX_LENGTH, l as resolvePingPongTurns, m as resolveDisplaySessionKey, n as requestAuthorizedNudge, o as buildAgentToAgentReplyContext, p as resolveSandboxedSessionToolContext, r as AuthorizationError, s as isAnnounceSkip, u as createAgentToAgentPolicy, v as resolveVisibleSessionReference, w as resolveLeastPrivilegeOperatorScopesForMethod, x as callGateway, y as shouldResolveSessionIdInput } from "./nudge-OjthVWgf.js";
14
14
  import { t as redactIdentifier } from "./redact-identifier-bNChjxxW.js";
15
15
  import { t as CommandLane } from "./lanes-DWpYhh13.js";
16
16
  import { n as isDiagnosticsEnabled, t as emitDiagnosticEvent } from "./diagnostic-events-DGRcTqIH.js";
17
- import { a as getGatewayInstanceId, n as deriveSessionRunId, o as resolveSessionRunStore, r as inferSessionRunKind, t as createSessionRunRecorder } from "./recorder-N1dK-Cvg.js";
18
- import { a as stripSilentToken, i as isSilentReplyText, n as SILENT_REPLY_TOKEN, r as isSilentReplyPrefixText, t as HEARTBEAT_TOKEN } from "./tokens-C-eSUgYi.js";
17
+ import { a as getGatewayInstanceId, n as deriveSessionRunId, o as resolveSessionRunStore, r as inferSessionRunKind, t as createSessionRunRecorder } from "./recorder-BSty19u1.js";
18
+ import { a as stripSilentToken, i as isSilentReplyText, n as SILENT_REPLY_TOKEN, r as isSilentReplyPrefixText, t as HEARTBEAT_TOKEN } from "./tokens-BSTxLFq9.js";
19
19
  import { n as onSessionTranscriptUpdate } from "./transcript-events-C-Yjj9jM.js";
20
20
  import { n as generateSecureUuid, t as generateSecureToken } from "./secure-random-faWesvBQ.js";
21
- import { _ as recordSystemPromptHashComparison, b as recordCommandPoll, d as logRunCompleted, f as logRunStarted, g as logToolExecutionStarted, h as logToolExecutionCompleted, l as logModelCallError, m as logToolExecutionBlocked, o as logMessageProcessed, p as logSessionStateChange, s as logMessageQueued, v as refreshRunProgress, x as resetCommandPollCount, y as boundDiagnosticContent } from "./diagnostic-Dd6LtH4a.js";
21
+ import { _ as recordSystemPromptHashComparison, b as recordCommandPoll, d as logRunCompleted, f as logRunStarted, g as logToolExecutionStarted, h as logToolExecutionCompleted, l as logModelCallError, m as logToolExecutionBlocked, o as logMessageProcessed, p as logSessionStateChange, s as logMessageQueued, v as refreshRunProgress, x as resetCommandPollCount, y as boundDiagnosticContent } from "./diagnostic-VK1bXt80.js";
22
22
  import { o as redactChannelCorrelation, r as getDiagnosticSessionState } from "./diagnostic-session-state-DuIsmy5s.js";
23
- import { i as testRegexWithBoundedInput, r as compileSafeRegex, t as redactSensitiveText } from "./redact-D6Fnz9xQ.js";
24
- import { a as getCommandLaneSnapshots, c as isQueuedCommandCancellation, i as enqueueCommandInLane, n as clearCommandLane, o as getQueueSize, s as isGatewayDraining, t as CommandLaneAbortedError } from "./command-queue-CXz9DVsG.js";
25
- import { _ as mediaKindFromMime, c as detectMime, d as imageMimeFromFormat, f as isAudioFileName, h as MAX_IMAGE_BYTES, i as getImageMetadata, l as extensionForMime, m as normalizeMimeType$1, p as kindFromMime, s as resizeToJpeg, u as getFileExtension } from "./image-ops-D_DwGLwy.js";
26
- import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-DwUyqoo1.js";
27
- import { A as resolveReplyToMode, C as applyReplyThreading, D as shouldSuppressMessagingToolReplies, E as isRenderablePayload, F as resolveTeamRoster, M as normalizeChannelTargetInput, N as normalizeTargetForProvider, O as shouldSuppressReasoningPayload, P as resolveLedTeam, S as applyReplyTagsToPayload, T as filterMessagingToolMediaDuplicates, _ as computeBackoff, a as normalizeOutboundPayloadsForJson, b as transcriptEntriesToMessages, c as loadCombinedSessionStoreForGateway, d as throwIfAborted, f as loadChannelOutboundAdapter, g as resolveContextTokensForModel, h as lookupContextTokens, i as normalizeOutboundPayloads, j as buildTargetResolverSignature, k as createReplyToModeFilterForChannel, l as capArrayByJsonBytes, m as extractToolCallNames, o as normalizeReplyPayloadsForDelivery, p as countToolResults, r as formatOutboundPayloadLog, s as stampReplyActivity, t as deliverOutboundPayloads, u as jsonUtf8Bytes, v as sleepWithAbort, w as filterMessagingToolDuplicates, x as stripLeadingInboundMetadata, y as readFullTranscriptEntriesFromBackend } from "./deliver-DhTGNP5K.js";
28
- import { $ as expandPolicyWithPluginGroups, A as isLikelyContextOverflowError, B as resolveSandboxContext, C as isAuthAssistantError, D as isContextOverflowError, E as isCompactionFailureError, F as parseImageSizeError, G as resolveProfile, H as createBrowserRouteContext, I as sanitizeUserFacingText, J as resolveBrowserControlAuth, K as getBridgeAuthForPort, L as isAuthPermanentErrorMessage, M as isRawApiErrorPayload, N as isTransientHttpError, O as isFailoverAssistantError, P as parseImageDimensionError, Q as collectExplicitAllowlist, R as isTimeoutErrorMessage, S as getApiErrorPayloadFingerprint, T as isCloudCodeAssistFormatError, U as registerBrowserRoutes, V as resolveSandboxRuntimeStatus, W as resolveBrowserConfig, X as applyOwnerOnlyToolPolicy, Y as resolveSandboxConfigForAgent, Z as buildPluginToolGroups, _ as BILLING_ERROR_USER_MESSAGE, at as listCoreToolIds, b as formatBillingErrorMessage, c as sanitizeSessionMessagesImages, ct as buildBootstrapContextFiles, d as resolveImageSanitizationLimits, dt as sanitizeGoogleTurnOrdering, et as mergeAlsoAllowPolicy, f as canonicalizeBase64, g as isGoogleModelApi, h as downgradeOpenAIReasoningBlocks, i as pickFallbackThinkingLevel, it as resolveToolProfilePolicy, j as isRateLimitAssistantError, k as isFailoverErrorMessage, l as sanitizeImageBlocks, lt as resolveBootstrapMaxChars, m as downgradeOpenAIFunctionCallReasoningPairs, n as validateAnthropicTurns, nt as expandToolGroups, o as isMessagingToolDuplicateNormalized, ot as compileGlobPatterns, p as estimateBase64DecodedBytes, q as ensureBrowserControlAuth, r as validateGeminiTurns, rt as normalizeToolName, s as normalizeTextForComparison, st as matchesAnyGlobPattern, t as extractTextFromChatContent, tt as stripPluginOnlyAllowlist, u as sanitizeToolResultImages, ut as resolveBootstrapTotalMaxChars, v as classifyFailoverReason, w as isBillingAssistantError, x as formatRawAssistantErrorForUi, y as formatAssistantErrorText, z as ensureSandboxWorkspaceForSession } from "./chat-content-CUEBE5sP.js";
29
- import { B as DEFAULT_AI_SNAPSHOT_MAX_CHARS, C as ensureChromeExtensionRelayServer, M as DEFAULT_UPLOAD_DIR, N as resolveExistingPathsWithinRoot, s as resolveLsofCommandSync } from "./chrome-BQRvL5_6.js";
30
- import { r as isLoopbackHost } from "./ws-JG4Z9bZK.js";
31
- import { r as trimToUndefined, t as resolveGatewayCredentialsFromConfig } from "./credentials-CxCFIe6D.js";
32
- import { a as skillsSnapshotSourceDiffers, c as assertMediaNotDataUrl, f as resolveSandboxedMediaSource, i as resolveSkillsPromptForRun, l as assertSandboxPath, m as applySkillEnvOverridesFromSnapshot, n as buildWorkspaceSkillSnapshot, p as applySkillEnvOverrides, r as loadWorkspaceSkillEntries, u as resolveSandboxInputPath } from "./skills-DMHiOYO8.js";
33
- import { t as PATH_ALIAS_POLICIES } from "./path-alias-guards-CpIKU1Cq.js";
34
- import { i as hasErrnoCode, o as readErrorName, r as formatErrorMessage } from "./errors-CnHQSI9_.js";
35
- import { a as readFileWithinRoot, c as writeFileWithinRoot, i as openFileWithinRoot, n as copyFileWithinRoot, r as createRootScopedReadFile, t as SafeOpenError } from "./fs-safe-BxszbGp8.js";
36
- import { a as isBlockedHostnameOrIp, l as normalizeHostname, n as SsrFBlockedError } from "./proxy-env-DdpqzP-l.js";
37
- import { i as saveMediaBuffer, r as getMediaDir, t as MEDIA_MAX_BYTES } from "./store-CyiSEypa.js";
23
+ import { i as testRegexWithBoundedInput, r as compileSafeRegex, t as redactSensitiveText } from "./redact-Iu0CqZm1.js";
24
+ import { a as getCommandLaneSnapshots, c as isQueuedCommandCancellation, i as enqueueCommandInLane, n as clearCommandLane, o as getQueueSize, s as isGatewayDraining, t as CommandLaneAbortedError } from "./command-queue-B7ny6IpS.js";
25
+ import { _ as mediaKindFromMime, c as detectMime, d as imageMimeFromFormat, f as isAudioFileName, h as MAX_IMAGE_BYTES, i as getImageMetadata, l as extensionForMime, m as normalizeMimeType$1, p as kindFromMime, s as resizeToJpeg, u as getFileExtension } from "./image-ops-D9RolAaO.js";
26
+ import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-DtlKqZOH.js";
27
+ import { A as resolveReplyToMode, C as applyReplyThreading, D as shouldSuppressMessagingToolReplies, E as isRenderablePayload, F as resolveTeamRoster, M as normalizeChannelTargetInput, N as normalizeTargetForProvider, O as shouldSuppressReasoningPayload, P as resolveLedTeam, S as applyReplyTagsToPayload, T as filterMessagingToolMediaDuplicates, _ as computeBackoff, a as normalizeOutboundPayloadsForJson, b as transcriptEntriesToMessages, c as loadCombinedSessionStoreForGateway, d as throwIfAborted, f as loadChannelOutboundAdapter, g as resolveContextTokensForModel, h as lookupContextTokens, i as normalizeOutboundPayloads, j as buildTargetResolverSignature, k as createReplyToModeFilterForChannel, l as capArrayByJsonBytes, m as extractToolCallNames, o as normalizeReplyPayloadsForDelivery, p as countToolResults, r as formatOutboundPayloadLog, s as stampReplyActivity, t as deliverOutboundPayloads, u as jsonUtf8Bytes, v as sleepWithAbort, w as filterMessagingToolDuplicates, x as stripLeadingInboundMetadata, y as readFullTranscriptEntriesFromBackend } from "./deliver-BRmy8mNE.js";
28
+ import { $ as expandPolicyWithPluginGroups, A as isLikelyContextOverflowError, B as resolveSandboxContext, C as isAuthAssistantError, D as isContextOverflowError, E as isCompactionFailureError, F as parseImageSizeError, G as resolveProfile, H as createBrowserRouteContext, I as sanitizeUserFacingText, J as resolveBrowserControlAuth, K as getBridgeAuthForPort, L as isAuthPermanentErrorMessage, M as isRawApiErrorPayload, N as isTransientHttpError, O as isFailoverAssistantError, P as parseImageDimensionError, Q as collectExplicitAllowlist, R as isTimeoutErrorMessage, S as getApiErrorPayloadFingerprint, T as isCloudCodeAssistFormatError, U as registerBrowserRoutes, V as resolveSandboxRuntimeStatus, W as resolveBrowserConfig, X as applyOwnerOnlyToolPolicy, Y as resolveSandboxConfigForAgent, Z as buildPluginToolGroups, _ as BILLING_ERROR_USER_MESSAGE, at as listCoreToolIds, b as formatBillingErrorMessage, c as sanitizeSessionMessagesImages, ct as buildBootstrapContextFiles, d as resolveImageSanitizationLimits, dt as sanitizeGoogleTurnOrdering, et as mergeAlsoAllowPolicy, f as canonicalizeBase64, g as isGoogleModelApi, h as downgradeOpenAIReasoningBlocks, i as pickFallbackThinkingLevel, it as resolveToolProfilePolicy, j as isRateLimitAssistantError, k as isFailoverErrorMessage, l as sanitizeImageBlocks, lt as resolveBootstrapMaxChars, m as downgradeOpenAIFunctionCallReasoningPairs, n as validateAnthropicTurns, nt as expandToolGroups, o as isMessagingToolDuplicateNormalized, ot as compileGlobPatterns, p as estimateBase64DecodedBytes, q as ensureBrowserControlAuth, r as validateGeminiTurns, rt as normalizeToolName, s as normalizeTextForComparison, st as matchesAnyGlobPattern, t as extractTextFromChatContent, tt as stripPluginOnlyAllowlist, u as sanitizeToolResultImages, ut as resolveBootstrapTotalMaxChars, v as classifyFailoverReason, w as isBillingAssistantError, x as formatRawAssistantErrorForUi, y as formatAssistantErrorText, z as ensureSandboxWorkspaceForSession } from "./chat-content-OjzGhCu9.js";
29
+ import { B as DEFAULT_AI_SNAPSHOT_MAX_CHARS, C as ensureChromeExtensionRelayServer, M as DEFAULT_UPLOAD_DIR, N as resolveExistingPathsWithinRoot, s as resolveLsofCommandSync } from "./chrome-DwJAYQrd.js";
30
+ import { r as isLoopbackHost } from "./ws-CDG99mFW.js";
31
+ import { r as trimToUndefined, t as resolveGatewayCredentialsFromConfig } from "./credentials-DQ7lFgET.js";
32
+ import { a as skillsSnapshotSourceDiffers, c as assertMediaNotDataUrl, f as resolveSandboxedMediaSource, i as resolveSkillsPromptForRun, l as assertSandboxPath, m as applySkillEnvOverridesFromSnapshot, n as buildWorkspaceSkillSnapshot, p as applySkillEnvOverrides, r as loadWorkspaceSkillEntries, u as resolveSandboxInputPath } from "./skills--Ui7bzMr.js";
33
+ import { t as PATH_ALIAS_POLICIES } from "./path-alias-guards-CGgM-kfP.js";
34
+ import { i as hasErrnoCode, o as readErrorName, r as formatErrorMessage } from "./errors-DbYMrbC6.js";
35
+ import { a as readFileWithinRoot, c as writeFileWithinRoot, i as openFileWithinRoot, n as copyFileWithinRoot, r as createRootScopedReadFile, t as SafeOpenError } from "./fs-safe-g7C2VmjR.js";
36
+ import { a as isBlockedHostnameOrIp, l as normalizeHostname, n as SsrFBlockedError } from "./proxy-env-B7QBeq1s.js";
37
+ import { i as saveMediaBuffer, r as getMediaDir, t as MEDIA_MAX_BYTES } from "./store-BkMCVm0M.js";
38
38
  import { t as resolveNetworkSsrFPolicy } from "./ssrf-config-Csgn7s_1.js";
39
- import { r as writeJsonAtomic } from "./json-files-GB7e9l0R.js";
39
+ import { r as writeJsonAtomic } from "./json-files-B1gYf6W9.js";
40
40
  import { a as normalizeReasoningLevel, c as normalizeVerboseLevel, i as normalizeElevatedLevel, l as resolveResponseUsageMode, n as formatXHighModelHint, o as normalizeThinkLevel, s as normalizeUsageDisplay, t as formatThinkingLevels, u as supportsXHighThinking } from "./thinking-DCaYRMt5.js";
41
- import { t as ensureOpenClawModelsJson } from "./models-config-BhUXT1hF.js";
42
- import { i as resolveLiveIdentityLinks, n as resolveAgentRoute, t as buildAgentSessionKey } from "./resolve-route-Cb-uluB3.js";
43
- import { C as coerceImageModelConfig, D as loadModelCatalog, E as findModelInCatalog, O as modelSupportsVision, S as coerceImageAssistantText, T as resolveProviderVisionModelFromConfig, _ as stripCarriedTranscriptFromBody, a as resolveMediaAttachmentLocalRoots, c as applyTemplate, d as normalizeMediaUnderstandingChatType, f as resolveMediaUnderstandingScope, i as normalizeMediaAttachments, l as resolveConcurrency, n as buildProviderRegistry, o as runCapability, p as CLI_OUTPUT_MAX_BUFFER, r as createMediaAttachmentCache, s as minimaxUnderstandImage, t as runAudioTranscription, u as resolveTimeoutMs$2, v as buildRandomTempFilePath, w as decodeDataUrl, x as resolveAttachmentKind, y as registerUnhandledRejectionHandler } from "./audio-transcription-runner-C2MeTPEc.js";
44
- import { a as formatReasoningMessage, d as stripThinkingTagsFromText, f as formatToolSummary, l as stripDowngradedToolCallText, m as stripReasoningTagsFromText, n as extractAssistantThinking, o as inferToolMetaFromArgs, p as resolveToolDisplay, s as isAssistantMessage, t as extractAssistantText$1, u as stripMinimaxToolCallXml } from "./pi-embedded-utils-CxTJd3C4.js";
45
- import { a as getDefaultMediaLocalRoots, i as getAgentScopedMediaLocalRoots, n as fetchRemoteMedia, r as readResponseWithLimit } from "./fetch-DAVlU8on.js";
46
- import { a as bindAbortRelay, n as withStrictGuardedFetchMode, o as fetchWithTimeout, r as withTrustedEnvProxyGuardedFetchMode, t as fetchWithSsrFGuard } from "./fetch-guard-CijCZ_b-.js";
47
- import { a as resolveAgentIdentity, i as resolveAckReaction, o as resolveEffectiveMessagesConfig, r as resolveResponsePrefixTemplate, s as resolveHumanDelayConfig, t as createReplyPrefixOptions } from "./reply-prefix-BNVgeu7r.js";
41
+ import { t as ensureOpenClawModelsJson } from "./models-config-3lhn9o5Q.js";
42
+ import { i as resolveLiveIdentityLinks, n as resolveAgentRoute, t as buildAgentSessionKey } from "./resolve-route-DtRFnaEz.js";
43
+ import { C as coerceImageModelConfig, D as loadModelCatalog, E as findModelInCatalog, O as modelSupportsVision, S as coerceImageAssistantText, T as resolveProviderVisionModelFromConfig, _ as stripCarriedTranscriptFromBody, a as resolveMediaAttachmentLocalRoots, c as applyTemplate, d as normalizeMediaUnderstandingChatType, f as resolveMediaUnderstandingScope, i as normalizeMediaAttachments, l as resolveConcurrency, n as buildProviderRegistry, o as runCapability, p as CLI_OUTPUT_MAX_BUFFER, r as createMediaAttachmentCache, s as minimaxUnderstandImage, t as runAudioTranscription, u as resolveTimeoutMs$2, v as buildRandomTempFilePath, w as decodeDataUrl, x as resolveAttachmentKind, y as registerUnhandledRejectionHandler } from "./audio-transcription-runner-DzJ9M4zn.js";
44
+ import { a as formatReasoningMessage, d as stripThinkingTagsFromText, f as formatToolSummary, l as stripDowngradedToolCallText, m as stripReasoningTagsFromText, n as extractAssistantThinking, o as inferToolMetaFromArgs, p as resolveToolDisplay, s as isAssistantMessage, t as extractAssistantText$1, u as stripMinimaxToolCallXml } from "./pi-embedded-utils-CFD8XCEm.js";
45
+ import { a as getDefaultMediaLocalRoots, i as getAgentScopedMediaLocalRoots, n as fetchRemoteMedia, r as readResponseWithLimit } from "./fetch-CvQ4rHkA.js";
46
+ import { a as bindAbortRelay, n as withStrictGuardedFetchMode, o as fetchWithTimeout, r as withTrustedEnvProxyGuardedFetchMode, t as fetchWithSsrFGuard } from "./fetch-guard-1wmQV-Tr.js";
47
+ import { a as resolveAgentIdentity, i as resolveAckReaction, o as resolveEffectiveMessagesConfig, r as resolveResponsePrefixTemplate, s as resolveHumanDelayConfig, t as createReplyPrefixOptions } from "./reply-prefix-Bc9Xxgh0.js";
48
48
  import { n as isSafeFenceBreak, r as parseFenceSpans, t as findFenceSpanAt } from "./fences-RrqZTgHp.js";
49
- import { a as chunkText, c as resolveChunkDelivery, d as resolveTextChunkLimit, i as chunkMarkdownTextWithMode, l as resolveChunkMode, o as chunkTextWithMode, r as chunkMarkdownText, t as chunkByNewline, u as resolveChunkNewlinePacking } from "./chunk-BOyW8CWf.js";
50
- import { n as resolveMarkdownTableMode } from "./markdown-tables-DIw8tw96.js";
51
- import { a as loadWebMedia, i as getDefaultLocalRoots, o as loadWebMediaRaw } from "./ir-DXeLOldW.js";
52
- import { _ as isRestartEnabled, a as listChatCommands, c as maybeResolveTextAlias, d as resolveCommandArgChoices, f as resolveCommandArgMenu, g as isNativeCommandsExplicitlyDisabled, h as isCommandFlagEnabled, i as isCommandEnabled, l as normalizeCommandBody, m as shouldHandleTextCommands, o as listChatCommandsForConfig, p as serializeCommandArgs, r as findCommandByNativeName, s as listNativeCommandSpecsForConfig, t as buildCommandTextFromArgs, u as parseCommandArgs, v as resolveNativeCommandsEnabled, y as resolveNativeSkillsEnabled } from "./commands-registry-D9HZmIAd.js";
53
- import { i as AGENT_LANE_SUBAGENT, r as AGENT_LANE_NESTED, t as startUserSessionRun } from "./user-run-recording-CV8Lr06M.js";
54
- import { _ as createInlineCodeState, a as isEmbeddedPiRunActive, b as onAgentEvent, d as handleMessageEnd, f as handleMessageStart, g as buildCodeSpanIndex, h as emitEmbeddedAgentEvent, i as endInFlightEmbeddedAttempt, l as setActiveEmbeddedRun, m as endModelCall, n as beginInFlightEmbeddedAttempt, o as isEmbeddedPiRunStreaming, p as handleMessageUpdate, r as clearActiveEmbeddedRun, s as queueEmbeddedPiMessage, t as abortEmbeddedPiRun, u as waitForEmbeddedPiRunEnd, v as clearAgentRunContext, x as registerAgentRunContext, y as emitAgentEvent } from "./runs-C1VChB2N.js";
55
- import { a as toInternalMessageReceivedContext, c as toPluginMessageReceivedEvent, d as resolveOutboundSessionId, i as toInternalMessagePreprocessedContext, l as fireAndForgetHook, n as createMessageSentEmitter, o as toInternalMessageTranscribedContext, r as deriveInboundMessageHookContext, s as toPluginMessageContext, t as applyMessageSendingHook, u as buildOutboundSessionContext } from "./outbound-message-hooks-IolzEbMD.js";
49
+ import { a as chunkText, c as resolveChunkDelivery, d as resolveTextChunkLimit, i as chunkMarkdownTextWithMode, l as resolveChunkMode, o as chunkTextWithMode, r as chunkMarkdownText, t as chunkByNewline, u as resolveChunkNewlinePacking } from "./chunk-BO29WISL.js";
50
+ import { n as resolveMarkdownTableMode } from "./markdown-tables-Dv-Fn4ps.js";
51
+ import { a as loadWebMedia, i as getDefaultLocalRoots, o as loadWebMediaRaw } from "./ir-BMz0_JTj.js";
52
+ import { _ as isRestartEnabled, a as listChatCommands, c as maybeResolveTextAlias, d as resolveCommandArgChoices, f as resolveCommandArgMenu, g as isNativeCommandsExplicitlyDisabled, h as isCommandFlagEnabled, i as isCommandEnabled, l as normalizeCommandBody, m as shouldHandleTextCommands, o as listChatCommandsForConfig, p as serializeCommandArgs, r as findCommandByNativeName, s as listNativeCommandSpecsForConfig, t as buildCommandTextFromArgs, u as parseCommandArgs, v as resolveNativeCommandsEnabled, y as resolveNativeSkillsEnabled } from "./commands-registry-CcEHn1XI.js";
53
+ import { i as AGENT_LANE_SUBAGENT, r as AGENT_LANE_NESTED, t as startUserSessionRun } from "./user-run-recording-DYSEO3CI.js";
54
+ import { _ as createInlineCodeState, a as isEmbeddedPiRunActive, b as onAgentEvent, d as handleMessageEnd, f as handleMessageStart, g as buildCodeSpanIndex, h as emitEmbeddedAgentEvent, i as endInFlightEmbeddedAttempt, l as setActiveEmbeddedRun, m as endModelCall, n as beginInFlightEmbeddedAttempt, o as isEmbeddedPiRunStreaming, p as handleMessageUpdate, r as clearActiveEmbeddedRun, s as queueEmbeddedPiMessage, t as abortEmbeddedPiRun, u as waitForEmbeddedPiRunEnd, v as clearAgentRunContext, x as registerAgentRunContext, y as emitAgentEvent } from "./runs-DTEVO_j3.js";
55
+ import { a as toInternalMessageReceivedContext, c as toPluginMessageReceivedEvent, d as resolveOutboundSessionId, i as toInternalMessagePreprocessedContext, l as fireAndForgetHook, n as createMessageSentEmitter, o as toInternalMessageTranscribedContext, r as deriveInboundMessageHookContext, s as toPluginMessageContext, t as applyMessageSendingHook, u as buildOutboundSessionContext } from "./outbound-message-hooks-CWaDtoFU.js";
56
56
  import { r as normalizeInboundTextNewlines, t as finalizeInboundContext } from "./inbound-context-CZ6JAe_K.js";
57
- import { n as wrapFetchWithAbortSignal, t as resolveFetch } from "./fetch-CouuWqcW.js";
58
- import { c as getSkillsSnapshotVersion, i as resolveSkillCommandInvocation, n as listSkillCommandsForAgents, o as getRemoteSkillEligibility, r as listSkillCommandsForWorkspace, s as ensureSkillsWatcher, t as listReservedChatSlashCommandNames } from "./skill-commands-CI1R5rmK.js";
59
- import { t as convertMarkdownTables } from "./tables-g6ObbHei.js";
60
- import { n as splitMediaFromOutput, t as parseReplyDirectives } from "./reply-directives-RLa2vaZi.js";
61
- import { a as resolveSignalRpcContext, c as streamSignalEvents, n as sendReadReceiptSignal, o as signalCheck, r as sendTypingSignal, s as signalRpcRequest, t as sendMessageSignal } from "./send-7QxBGDb6.js";
62
- 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-vkpb-Xkl.js";
63
- import { t as recordInboundSessionMetaSafe } from "./session-meta-DfqjhZ-q.js";
64
- import { a as createReplyReferencePlanner, i as resolveSlackThreadTs, n as deliverReplies$2, t as createSlackReplyDeliveryPlan } from "./replies-j8824QFZ.js";
65
- import { n as resolveMemorySearchConfig } from "./manager-YDyRTQUV.js";
66
- import { m as normalizeExtraMemoryPaths, p as listMemoryFiles } from "./query-expansion-Bo6Nq4_Q.js";
67
- import { t as isQmdScopeAllowed } from "./qmd-scope-36e3ZqA5.js";
57
+ import { n as wrapFetchWithAbortSignal, t as resolveFetch } from "./fetch-DMx7kUDq.js";
58
+ import { c as getSkillsSnapshotVersion, i as resolveSkillCommandInvocation, n as listSkillCommandsForAgents, o as getRemoteSkillEligibility, r as listSkillCommandsForWorkspace, s as ensureSkillsWatcher, t as listReservedChatSlashCommandNames } from "./skill-commands-Clk1OxDK.js";
59
+ import { t as convertMarkdownTables } from "./tables-CXnnw-yu.js";
60
+ import { n as splitMediaFromOutput, t as parseReplyDirectives } from "./reply-directives-ZtVs-j3A.js";
61
+ import { a as resolveSignalRpcContext, c as streamSignalEvents, n as sendReadReceiptSignal, o as signalCheck, r as sendTypingSignal, s as signalRpcRequest, t as sendMessageSignal } from "./send-DVAxl2sg.js";
62
+ 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-eXn1pSE6.js";
63
+ import { t as recordInboundSessionMetaSafe } from "./session-meta-CbZBnut5.js";
64
+ import { a as createReplyReferencePlanner, i as resolveSlackThreadTs, n as deliverReplies$2, t as createSlackReplyDeliveryPlan } from "./replies-CurRxuDE.js";
65
+ import { n as resolveMemorySearchConfig } from "./manager-BuEOjzym.js";
66
+ import { m as normalizeExtraMemoryPaths, p as listMemoryFiles } from "./query-expansion-CEaQOg6W.js";
67
+ import { t as isQmdScopeAllowed } from "./qmd-scope-CYZoWcur.js";
68
68
  import { createRequire } from "node:module";
69
69
  import { inspect, isDeepStrictEqual, promisify } from "node:util";
70
70
  import fs, { existsSync, mkdirSync, mkdtempSync, promises, readFileSync, realpathSync, renameSync, rmSync, statSync, unlinkSync, writeFileSync } from "node:fs";
@@ -72,8 +72,8 @@ import os, { homedir } from "node:os";
72
72
  import * as path$1 from "node:path";
73
73
  import path, { basename, isAbsolute, join } from "node:path";
74
74
  import JSON5 from "json5";
75
- import * as fs$2 from "node:fs/promises";
76
- import fs$1, { open } from "node:fs/promises";
75
+ import * as fs$1 from "node:fs/promises";
76
+ import fsp, { open } from "node:fs/promises";
77
77
  import crypto$1, { createHash, createHmac, randomBytes, randomUUID } from "node:crypto";
78
78
  import { execFile, execFileSync, spawn, spawnSync } from "node:child_process";
79
79
  import { fileURLToPath } from "node:url";
@@ -3531,7 +3531,7 @@ function resolveWorkspaceLane(params) {
3531
3531
  }
3532
3532
  async function pathExists(targetPath) {
3533
3533
  try {
3534
- await fs$1.access(targetPath);
3534
+ await fsp.access(targetPath);
3535
3535
  return true;
3536
3536
  } catch {
3537
3537
  return false;
@@ -3539,7 +3539,7 @@ async function pathExists(targetPath) {
3539
3539
  }
3540
3540
  async function getExistingPathState(targetPath) {
3541
3541
  try {
3542
- const stats = await fs$1.lstat(targetPath);
3542
+ const stats = await fsp.lstat(targetPath);
3543
3543
  if (stats.isSymbolicLink()) return "other";
3544
3544
  return stats.isDirectory() ? "directory" : "other";
3545
3545
  } catch {
@@ -3548,7 +3548,7 @@ async function getExistingPathState(targetPath) {
3548
3548
  }
3549
3549
  async function pathLexicallyExists(targetPath) {
3550
3550
  try {
3551
- await fs$1.lstat(targetPath);
3551
+ await fsp.lstat(targetPath);
3552
3552
  return true;
3553
3553
  } catch {
3554
3554
  return false;
@@ -3615,7 +3615,7 @@ async function resolveWorkspaceLaneForTurn(params) {
3615
3615
  const config = resolveWorkspaceLaneConfig(params.cfg, resolution.agentId);
3616
3616
  if ((config?.create ?? "on-first-message") !== "on-first-message") return resolution;
3617
3617
  const existed = pathState === "directory";
3618
- if (!existed) await fs$1.mkdir(resolution.effectiveWorkspaceDir, { recursive: true });
3618
+ if (!existed) await fsp.mkdir(resolution.effectiveWorkspaceDir, { recursive: true });
3619
3619
  for (const file of config?.copiedOnCreate ?? DEFAULT_COPIED_ON_CREATE_FILES) {
3620
3620
  const decision = await copyIfMissing({
3621
3621
  sourceRoot: resolution.personaWorkspaceDir,
@@ -6481,7 +6481,7 @@ async function imageResult(params) {
6481
6481
  }, params.label, params.imageSanitization);
6482
6482
  }
6483
6483
  async function imageResultFromFile(params) {
6484
- const buf = await fs$1.readFile(params.path);
6484
+ const buf = await fsp.readFile(params.path);
6485
6485
  const mimeType = await detectMime({ buffer: buf.slice(0, 256) }) ?? "image/png";
6486
6486
  return await imageResult({
6487
6487
  label: params.label,
@@ -6993,7 +6993,7 @@ async function resolveAgentSessionDirs(stateDir) {
6993
6993
  const agentsDir = path.join(stateDir, "agents");
6994
6994
  let entries = [];
6995
6995
  try {
6996
- entries = await fs$1.readdir(agentsDir, { withFileTypes: true });
6996
+ entries = await fsp.readdir(agentsDir, { withFileTypes: true });
6997
6997
  } catch (err) {
6998
6998
  if (err.code === "ENOENT") return [];
6999
6999
  throw err;
@@ -10392,7 +10392,7 @@ async function routeReply(params) {
10392
10392
  const resolvedReplyToId = replyToId ?? (channelId === "slack" && threadId != null && threadId !== "" ? String(threadId) : void 0);
10393
10393
  const resolvedThreadId = channelId === "slack" ? null : threadId ?? null;
10394
10394
  try {
10395
- const { deliverOutboundPayloads } = await import("./deliver-DhTGNP5K.js").then((n) => n.n);
10395
+ const { deliverOutboundPayloads } = await import("./deliver-BRmy8mNE.js").then((n) => n.n);
10396
10396
  const outboundSession = buildOutboundSessionContext({
10397
10397
  cfg,
10398
10398
  agentId: resolvedAgentId,
@@ -15206,7 +15206,7 @@ async function sendTranscriptEcho(params) {
15206
15206
  }
15207
15207
  const text = formatEchoTranscript(transcript, params.format ?? DEFAULT_ECHO_TRANSCRIPT_FORMAT);
15208
15208
  try {
15209
- const { deliverOutboundPayloads } = await import("./deliver-DhTGNP5K.js").then((n) => n.n);
15209
+ const { deliverOutboundPayloads } = await import("./deliver-BRmy8mNE.js").then((n) => n.n);
15210
15210
  await deliverOutboundPayloads({
15211
15211
  cfg,
15212
15212
  channel: normalizedChannel,
@@ -20834,7 +20834,7 @@ async function resolveSandboxWorkdir(params) {
20834
20834
  cwd: process.cwd(),
20835
20835
  root: params.sandbox.workspaceDir
20836
20836
  });
20837
- if (!(await fs$1.stat(resolved.resolved)).isDirectory()) throw new Error("workdir is not a directory");
20837
+ if (!(await fsp.stat(resolved.resolved)).isDirectory()) throw new Error("workdir is not a directory");
20838
20838
  const relative = resolved.relative ? resolved.relative.split(path.sep).join(path.posix.sep) : "";
20839
20839
  const containerWorkdir = relative ? path.posix.join(params.sandbox.containerWorkdir, relative) : params.sandbox.containerWorkdir;
20840
20840
  return {
@@ -22224,13 +22224,13 @@ async function validateScriptFileForShellBleed(params) {
22224
22224
  cwd: params.workdir,
22225
22225
  root: params.workdir
22226
22226
  });
22227
- stat = await fs$1.stat(absPath);
22227
+ stat = await fsp.stat(absPath);
22228
22228
  } catch {
22229
22229
  return;
22230
22230
  }
22231
22231
  if (!stat.isFile()) return;
22232
22232
  if (stat.size > 512 * 1024) return;
22233
- const content = await fs$1.readFile(absPath, "utf-8");
22233
+ const content = await fsp.readFile(absPath, "utf-8");
22234
22234
  const first = /\$[A-Z_][A-Z0-9_]{1,}/g.exec(content);
22235
22235
  if (first) {
22236
22236
  const idx = first.index;
@@ -35148,7 +35148,7 @@ async function createModelSelectionState(params) {
35148
35148
  }
35149
35149
  }
35150
35150
  if (sessionEntry && sessionStore && sessionKey && sessionEntry.authProfileOverride) {
35151
- const { ensureAuthProfileStore } = await import("./config-Bsj2p2wE.js").then((n) => n.ea);
35151
+ const { ensureAuthProfileStore } = await import("./config-i54suDg0.js").then((n) => n.ea);
35152
35152
  const profile = ensureAuthProfileStore(void 0, { allowKeychainPrompt: false }).profiles[sessionEntry.authProfileOverride];
35153
35153
  const providerKey = normalizeProviderId(provider);
35154
35154
  if (!profile || normalizeProviderId(profile.provider) !== providerKey) await clearSessionAuthProfileOverride({
@@ -38832,7 +38832,7 @@ async function writeUrlToFile(filePath, url, opts) {
38832
38832
  if (typeof contentLength === "number" && Number.isFinite(contentLength) && contentLength > MAX_CAMERA_URL_DOWNLOAD_BYTES) throw new Error(`writeUrlToFile: content-length ${contentLength} exceeds max ${MAX_CAMERA_URL_DOWNLOAD_BYTES}`);
38833
38833
  const body = res.body;
38834
38834
  if (!body) throw new Error(`failed to download ${url}: empty response body`);
38835
- const fileHandle = await fs$2.open(filePath, "w");
38835
+ const fileHandle = await fs$1.open(filePath, "w");
38836
38836
  let thrown;
38837
38837
  try {
38838
38838
  const reader = body.getReader();
@@ -38850,7 +38850,7 @@ async function writeUrlToFile(filePath, url, opts) {
38850
38850
  await fileHandle.close();
38851
38851
  }
38852
38852
  if (thrown) {
38853
- await fs$2.unlink(filePath).catch(() => {});
38853
+ await fs$1.unlink(filePath).catch(() => {});
38854
38854
  throw thrown;
38855
38855
  }
38856
38856
  } finally {
@@ -38863,7 +38863,7 @@ async function writeUrlToFile(filePath, url, opts) {
38863
38863
  }
38864
38864
  async function writeBase64ToFile(filePath, base64) {
38865
38865
  const buf = Buffer.from(base64, "base64");
38866
- await fs$2.writeFile(filePath, buf);
38866
+ await fs$1.writeFile(filePath, buf);
38867
38867
  return {
38868
38868
  path: filePath,
38869
38869
  bytes: buf.length
@@ -38948,7 +38948,7 @@ async function readJsonlFromPath(jsonlPath) {
38948
38948
  if (shouldLogVerbose()) logVerbose(`Blocked canvas jsonlPath outside allowed roots: ${resolved}`);
38949
38949
  throw new Error("jsonlPath outside allowed roots");
38950
38950
  }
38951
- const canonical = await fs$1.realpath(resolved).catch(() => resolved);
38951
+ const canonical = await fsp.realpath(resolved).catch(() => resolved);
38952
38952
  if (!isInboundPathAllowed({
38953
38953
  filePath: canonical,
38954
38954
  roots
@@ -38956,7 +38956,7 @@ async function readJsonlFromPath(jsonlPath) {
38956
38956
  if (shouldLogVerbose()) logVerbose(`Blocked canvas jsonlPath outside allowed roots: ${canonical}`);
38957
38957
  throw new Error("jsonlPath outside allowed roots");
38958
38958
  }
38959
- return await fs$1.readFile(canonical, "utf8");
38959
+ return await fsp.readFile(canonical, "utf8");
38960
38960
  }
38961
38961
  const CanvasToolSchema = Type.Object({
38962
38962
  action: stringEnum(CANVAS_ACTIONS),
@@ -39807,12 +39807,12 @@ function resolveRestartSentinelPath(env = process.env) {
39807
39807
  }
39808
39808
  async function writeRestartSentinel(payload, env = process.env) {
39809
39809
  const filePath = resolveRestartSentinelPath(env);
39810
- await fs$1.mkdir(path.dirname(filePath), { recursive: true });
39810
+ await fsp.mkdir(path.dirname(filePath), { recursive: true });
39811
39811
  const data = {
39812
39812
  version: 1,
39813
39813
  payload
39814
39814
  };
39815
- await fs$1.writeFile(filePath, `${JSON.stringify(data, null, 2)}\n`, "utf-8");
39815
+ await fsp.writeFile(filePath, `${JSON.stringify(data, null, 2)}\n`, "utf-8");
39816
39816
  return filePath;
39817
39817
  }
39818
39818
 
@@ -51140,18 +51140,18 @@ function appendImagePathsToPrompt(prompt, paths) {
51140
51140
  return `${trimmed}${trimmed ? "\n\n" : ""}${paths.join("\n")}`;
51141
51141
  }
51142
51142
  async function writeCliImages(images) {
51143
- const tempDir = await fs$1.mkdtemp(path.join(os.tmpdir(), "openclaw-cli-images-"));
51143
+ const tempDir = await fsp.mkdtemp(path.join(os.tmpdir(), "openclaw-cli-images-"));
51144
51144
  const paths = [];
51145
51145
  for (let i = 0; i < images.length; i += 1) {
51146
51146
  const image = images[i];
51147
51147
  const ext = resolveImageExtension(image.mimeType);
51148
51148
  const filePath = path.join(tempDir, `image-${i + 1}.${ext}`);
51149
51149
  const buffer = Buffer.from(image.data, "base64");
51150
- await fs$1.writeFile(filePath, buffer, { mode: 384 });
51150
+ await fsp.writeFile(filePath, buffer, { mode: 384 });
51151
51151
  paths.push(filePath);
51152
51152
  }
51153
51153
  const cleanup = async () => {
51154
- await fs$1.rm(tempDir, {
51154
+ await fsp.rm(tempDir, {
51155
51155
  recursive: true,
51156
51156
  force: true
51157
51157
  });
@@ -54657,7 +54657,7 @@ async function deliverSessionMaintenanceWarning(params) {
54657
54657
  return;
54658
54658
  }
54659
54659
  try {
54660
- const { deliverOutboundPayloads } = await import("./deliver-DhTGNP5K.js").then((n) => n.n);
54660
+ const { deliverOutboundPayloads } = await import("./deliver-BRmy8mNE.js").then((n) => n.n);
54661
54661
  const outboundSession = buildOutboundSessionContext({
54662
54662
  cfg: params.cfg,
54663
54663
  sessionKey: params.sessionKey
@@ -55606,7 +55606,7 @@ async function stageSandboxMedia(params) {
55606
55606
  const remoteMediaCacheDir = ctx.MediaRemoteHost ? path.join(workspaceDir, ".openclaw", "media", "remote-cache", sessionKey) : null;
55607
55607
  const effectiveWorkspaceDir = sandbox?.workspaceDir ?? remoteMediaCacheDir;
55608
55608
  if (!effectiveWorkspaceDir) return;
55609
- await fs$1.mkdir(effectiveWorkspaceDir, { recursive: true });
55609
+ await fsp.mkdir(effectiveWorkspaceDir, { recursive: true });
55610
55610
  const remoteAttachmentRoots = resolveIMessageRemoteAttachmentRoots({
55611
55611
  cfg,
55612
55612
  accountId: ctx.AccountId
@@ -55665,8 +55665,8 @@ async function stageLocalFileIntoRoot(params) {
55665
55665
  }
55666
55666
  async function stageRemoteFileIntoRoot(params) {
55667
55667
  const tmpRoot = resolvePreferredOpenClawTmpDir();
55668
- await fs$1.mkdir(tmpRoot, { recursive: true });
55669
- const tmpDir = await fs$1.mkdtemp(path.join(tmpRoot, "stage-sandbox-media-"));
55668
+ await fsp.mkdir(tmpRoot, { recursive: true });
55669
+ const tmpDir = await fsp.mkdtemp(path.join(tmpRoot, "stage-sandbox-media-"));
55670
55670
  const tmpPath = path.join(tmpDir, "download");
55671
55671
  try {
55672
55672
  await scpFile(params.remoteHost, params.remotePath, tmpPath);
@@ -55677,7 +55677,7 @@ async function stageRemoteFileIntoRoot(params) {
55677
55677
  maxBytes: params.maxBytes
55678
55678
  });
55679
55679
  } finally {
55680
- await fs$1.rm(tmpDir, {
55680
+ await fsp.rm(tmpDir, {
55681
55681
  recursive: true,
55682
55682
  force: true
55683
55683
  }).catch(() => {});
@@ -61581,7 +61581,7 @@ async function resolveDiscordPreflightAudioMentionContext(params) {
61581
61581
  let transcript;
61582
61582
  let carry;
61583
61583
  if (needsPreflightTranscription) try {
61584
- const { transcribeFirstAudio } = await import("./audio-preflight-DOQ4t3Lt.js");
61584
+ const { transcribeFirstAudio } = await import("./audio-preflight-B3evE7-u.js");
61585
61585
  const uploadable = audioAttachments.filter((att) => typeof att.url === "string" && att.url.length > 0);
61586
61586
  if (uploadable.length > 0) {
61587
61587
  const preflight = await transcribeFirstAudio({
@@ -68853,19 +68853,19 @@ function createDefaultDeps() {
68853
68853
  };
68854
68854
  }),
68855
68855
  sendMessageDiscord: async (...args) => {
68856
- const { sendMessageDiscord } = await import("./send-C3NzAXnk.js").then((n) => n.t);
68856
+ const { sendMessageDiscord } = await import("./send-C76HubTD.js").then((n) => n.t);
68857
68857
  return await sendMessageDiscord(...args);
68858
68858
  },
68859
68859
  sendMessageSlack: async (...args) => {
68860
- const { sendMessageSlack } = await import("./send-BrqnAR-x.js").then((n) => n.n);
68860
+ const { sendMessageSlack } = await import("./send-LeMti0BS.js").then((n) => n.n);
68861
68861
  return await sendMessageSlack(...args);
68862
68862
  },
68863
68863
  sendMessageSignal: async (...args) => {
68864
- const { sendMessageSignal } = await import("./send-7QxBGDb6.js").then((n) => n.i);
68864
+ const { sendMessageSignal } = await import("./send-DVAxl2sg.js").then((n) => n.i);
68865
68865
  return await sendMessageSignal(...args);
68866
68866
  },
68867
68867
  sendMessageIMessage: async (...args) => {
68868
- const { sendMessageIMessage } = await import("./send-vkpb-Xkl.js").then((n) => n.n);
68868
+ const { sendMessageIMessage } = await import("./send-eXn1pSE6.js").then((n) => n.n);
68869
68869
  return await sendMessageIMessage(...args);
68870
68870
  }
68871
68871
  };
@@ -70111,10 +70111,10 @@ function estimateDurationSeconds(pcm) {
70111
70111
  return pcm.length / (bytesPerSample * SAMPLE_RATE);
70112
70112
  }
70113
70113
  async function writeWavFile(pcm) {
70114
- const tempDir = await fs$1.mkdtemp(path.join(resolvePreferredOpenClawTmpDir(), "discord-voice-"));
70114
+ const tempDir = await fsp.mkdtemp(path.join(resolvePreferredOpenClawTmpDir(), "discord-voice-"));
70115
70115
  const filePath = path.join(tempDir, `segment-${randomUUID()}.wav`);
70116
70116
  const wav = buildWavBuffer(pcm);
70117
- await fs$1.writeFile(filePath, wav);
70117
+ await fsp.writeFile(filePath, wav);
70118
70118
  scheduleTempCleanup(tempDir);
70119
70119
  return {
70120
70120
  path: filePath,
@@ -70123,7 +70123,7 @@ async function writeWavFile(pcm) {
70123
70123
  }
70124
70124
  function scheduleTempCleanup(tempDir, delayMs = 1800 * 1e3) {
70125
70125
  setTimeout(() => {
70126
- fs$1.rm(tempDir, {
70126
+ fsp.rm(tempDir, {
70127
70127
  recursive: true,
70128
70128
  force: true
70129
70129
  }).catch((err) => {
@@ -73908,7 +73908,7 @@ async function detectBinary(name) {
73908
73908
  if (!isSafeExecutableValue(name)) return false;
73909
73909
  const resolved = name.startsWith("~") ? resolveUserPath(name) : name;
73910
73910
  if (path.isAbsolute(resolved) || resolved.startsWith(".") || resolved.includes("/") || resolved.includes("\\")) try {
73911
- await fs$1.access(resolved);
73911
+ await fsp.access(resolved);
73912
73912
  return true;
73913
73913
  } catch {
73914
73914
  return false;
@@ -74572,7 +74572,7 @@ function normalizeAllowList$1(list) {
74572
74572
  async function detectRemoteHostFromCliPath(cliPath) {
74573
74573
  try {
74574
74574
  const expanded = cliPath.startsWith("~") ? cliPath.replace(/^~/, process.env.HOME ?? "") : cliPath;
74575
- const content = await fs$1.readFile(expanded, "utf8");
74575
+ const content = await fsp.readFile(expanded, "utf8");
74576
74576
  const userHostMatch = content.match(/\bssh\b[^\n]*?\s+([a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+)/);
74577
74577
  if (userHostMatch) return userHostMatch[1];
74578
74578
  return content.match(/\bssh\b[^\n]*?\s+([a-zA-Z][a-zA-Z0-9._-]*)\s+\S*\bimsg\b/)?.[1];
@@ -81614,7 +81614,7 @@ function readSlackExternalArgMenuToken(raw) {
81614
81614
  }
81615
81615
  let commandsRegistry;
81616
81616
  async function getCommandsRegistry() {
81617
- if (!commandsRegistry) commandsRegistry = await import("./commands-registry-D9HZmIAd.js").then((n) => n.n);
81617
+ if (!commandsRegistry) commandsRegistry = await import("./commands-registry-CcEHn1XI.js").then((n) => n.n);
81618
81618
  return commandsRegistry;
81619
81619
  }
81620
81620
  function encodeSlackCommandArgValue(parts) {
@@ -81944,14 +81944,14 @@ async function registerSlackMonitorSlashCommands(params) {
81944
81944
  const channelName = channelInfo?.name;
81945
81945
  const roomLabel = channelName ? `#${channelName}` : `#${command.channel_id}`;
81946
81946
  const [{ resolveAgentRoute }, { finalizeInboundContext }, { dispatchReplyWithDispatcher }] = await Promise.all([
81947
- import("./resolve-route-Cb-uluB3.js").then((n) => n.r),
81947
+ import("./resolve-route-DtRFnaEz.js").then((n) => n.r),
81948
81948
  import("./inbound-context-CZ6JAe_K.js").then((n) => n.n),
81949
81949
  Promise.resolve().then(() => provider_dispatcher_exports)
81950
81950
  ]);
81951
81951
  const [{ resolveConversationLabel }, { createReplyPrefixOptions }, { recordInboundSessionMetaSafe }] = await Promise.all([
81952
81952
  import("./conversation-label-BkRfLUVO.js").then((n) => n.t),
81953
- import("./reply-prefix-BNVgeu7r.js").then((n) => n.n),
81954
- import("./session-meta-DfqjhZ-q.js").then((n) => n.n)
81953
+ import("./reply-prefix-Bc9Xxgh0.js").then((n) => n.n),
81954
+ import("./session-meta-CbZBnut5.js").then((n) => n.n)
81955
81955
  ]);
81956
81956
  const route = resolveAgentRoute({
81957
81957
  cfg,
@@ -82016,9 +82016,9 @@ async function registerSlackMonitorSlashCommands(params) {
82016
82016
  });
82017
82017
  const deliverSlashPayloads = async (replies) => {
82018
82018
  const [{ deliverSlackSlashReplies }, { resolveChunkMode, resolveChunkNewlinePacking }, { resolveMarkdownTableMode }] = await Promise.all([
82019
- import("./replies-j8824QFZ.js").then((n) => n.r),
82020
- import("./chunk-BOyW8CWf.js").then((n) => n.s),
82021
- import("./markdown-tables-DIw8tw96.js").then((n) => n.t)
82019
+ import("./replies-CurRxuDE.js").then((n) => n.r),
82020
+ import("./chunk-BO29WISL.js").then((n) => n.s),
82021
+ import("./markdown-tables-Dv-Fn4ps.js").then((n) => n.t)
82022
82022
  ]);
82023
82023
  await deliverSlackSlashReplies({
82024
82024
  replies,
@@ -82072,7 +82072,7 @@ async function registerSlackMonitorSlashCommands(params) {
82072
82072
  let nativeCommands = [];
82073
82073
  if (nativeEnabled) {
82074
82074
  reg = await getCommandsRegistry();
82075
- const skillCommands = nativeSkillsEnabled ? (await import("./skill-commands-CI1R5rmK.js").then((n) => n.a)).listSkillCommandsForAgents({ cfg }) : [];
82075
+ const skillCommands = nativeSkillsEnabled ? (await import("./skill-commands-Clk1OxDK.js").then((n) => n.a)).listSkillCommandsForAgents({ cfg }) : [];
82076
82076
  nativeCommands = reg.listNativeCommandSpecsForConfig(cfg, {
82077
82077
  skillCommands,
82078
82078
  provider: "slack"
@@ -83016,7 +83016,7 @@ async function getMemorySearchManager(params) {
83016
83016
  if (cached) return { manager: cached };
83017
83017
  }
83018
83018
  try {
83019
- const { QmdMemoryManager } = await import("./qmd-manager-DKw1Rbr0.js");
83019
+ const { QmdMemoryManager } = await import("./qmd-manager-ZTV3aWYR.js");
83020
83020
  const primary = await QmdMemoryManager.create({
83021
83021
  cfg: params.cfg,
83022
83022
  agentId: params.agentId,
@@ -83028,7 +83028,7 @@ async function getMemorySearchManager(params) {
83028
83028
  const wrapper = new FallbackMemoryManager({
83029
83029
  primary,
83030
83030
  fallbackFactory: async () => {
83031
- const { MemoryIndexManager } = await import("./manager-YDyRTQUV.js").then((n) => n.t);
83031
+ const { MemoryIndexManager } = await import("./manager-BuEOjzym.js").then((n) => n.t);
83032
83032
  return await MemoryIndexManager.get(params);
83033
83033
  }
83034
83034
  }, () => {
@@ -83043,7 +83043,7 @@ async function getMemorySearchManager(params) {
83043
83043
  }
83044
83044
  }
83045
83045
  try {
83046
- const { MemoryIndexManager } = await import("./manager-YDyRTQUV.js").then((n) => n.t);
83046
+ const { MemoryIndexManager } = await import("./manager-BuEOjzym.js").then((n) => n.t);
83047
83047
  return { manager: await MemoryIndexManager.get(params) };
83048
83048
  } catch (err) {
83049
83049
  return {
@@ -83393,7 +83393,7 @@ const LEGACY_ARCHIVE_DEFAULT_RETENTION_MS = 720 * 60 * 60 * 1e3;
83393
83393
  const log$35 = createSubsystemLogger("config/sessions/legacy-import/archive");
83394
83394
  /** SHA-256 over the file's bytes; null when the file is gone (ENOENT). Other errors propagate. */
83395
83395
  async function sourceIdentity(filePath) {
83396
- const handle = await fs$1.open(filePath, "r").catch((error) => {
83396
+ const handle = await fsp.open(filePath, "r").catch((error) => {
83397
83397
  if (error.code === "ENOENT") return null;
83398
83398
  throw error;
83399
83399
  });
@@ -83446,9 +83446,9 @@ function fallbackArchiveDest(source, archiveRoot) {
83446
83446
  async function copyVerifiedTo(sourcePath, dest, expected) {
83447
83447
  const tmp = `${dest}.tmp-${randomUUID()}`;
83448
83448
  try {
83449
- const handle = await fs$1.open(tmp, "wx", 384);
83449
+ const handle = await fsp.open(tmp, "wx", 384);
83450
83450
  try {
83451
- const sourceHandle = await fs$1.open(sourcePath, "r");
83451
+ const sourceHandle = await fsp.open(sourcePath, "r");
83452
83452
  try {
83453
83453
  const chunk = Buffer.allocUnsafe(256 * 1024);
83454
83454
  let size = 0;
@@ -83465,18 +83465,18 @@ async function copyVerifiedTo(sourcePath, dest, expected) {
83465
83465
  } finally {
83466
83466
  await handle.close();
83467
83467
  }
83468
- await fs$1.chmod(tmp, 384);
83468
+ await fsp.chmod(tmp, 384);
83469
83469
  const copied = await identityOf(tmp);
83470
83470
  if (!copied || copied.fingerprint !== expected.fingerprint) throw new Error(`legacy archive cross-device copy diverged from the imported bytes: ${dest}`);
83471
83471
  try {
83472
- await fs$1.link(tmp, dest);
83472
+ await fsp.link(tmp, dest);
83473
83473
  } catch (error) {
83474
83474
  if (error.code !== "EEXIST") throw error;
83475
83475
  const existing = await identityOf(dest);
83476
83476
  if (!existing || existing.fingerprint !== expected.fingerprint) throw new Error(`legacy archive destination exists with different content: ${dest}`, { cause: error });
83477
83477
  }
83478
83478
  } finally {
83479
- await fs$1.rm(tmp, { force: true });
83479
+ await fsp.rm(tmp, { force: true });
83480
83480
  }
83481
83481
  }
83482
83482
  /**
@@ -83492,7 +83492,7 @@ async function planLegacyArchiveDest(source, archiveRoot, expected) {
83492
83492
  const resolvedRoot = path.resolve(archiveRoot);
83493
83493
  const { dir, dest } = archivePathsFor(source, resolvedRoot);
83494
83494
  try {
83495
- await fs$1.mkdir(dir, {
83495
+ await fsp.mkdir(dir, {
83496
83496
  recursive: true,
83497
83497
  mode: 448
83498
83498
  });
@@ -83532,7 +83532,7 @@ async function archiveLegacySource(source, archiveRoot, expected) {
83532
83532
  */
83533
83533
  async function archiveLegacySourceTo(source, dest, archiveRoot, expected) {
83534
83534
  const resolvedRoot = path.resolve(archiveRoot);
83535
- await fs$1.mkdir(path.dirname(dest), {
83535
+ await fsp.mkdir(path.dirname(dest), {
83536
83536
  recursive: true,
83537
83537
  mode: 448
83538
83538
  });
@@ -83542,14 +83542,14 @@ async function archiveLegacySourceTo(source, dest, archiveRoot, expected) {
83542
83542
  const expectedIdentity = expected ?? sourceIdentityValue;
83543
83543
  if (sourceIdentityValue.fingerprint !== expectedIdentity.fingerprint) throw new Error(`legacy source changed after import; failing closed: ${source.path}`);
83544
83544
  const destInodeVerified = async (destPath) => {
83545
- const [sourceStat, destStat] = await Promise.all([fs$1.stat(source.path), fs$1.stat(destPath).catch(() => void 0)]);
83545
+ const [sourceStat, destStat] = await Promise.all([fsp.stat(source.path), fsp.stat(destPath).catch(() => void 0)]);
83546
83546
  return destStat !== void 0 && destStat.dev === sourceStat.dev && destStat.ino === sourceStat.ino;
83547
83547
  };
83548
83548
  const moveInto = async (destPath) => {
83549
83549
  let moved = false;
83550
83550
  let independentArchive = false;
83551
83551
  try {
83552
- await fs$1.link(source.path, destPath);
83552
+ await fsp.link(source.path, destPath);
83553
83553
  moved = true;
83554
83554
  } catch (error) {
83555
83555
  const code = error.code;
@@ -83557,7 +83557,7 @@ async function archiveLegacySourceTo(source, dest, archiveRoot, expected) {
83557
83557
  const existing = await identityOf(destPath);
83558
83558
  if (existing && existing.fingerprint === expectedIdentity.fingerprint) {
83559
83559
  moved = true;
83560
- const [sourceStat, destStat] = await Promise.all([fs$1.stat(source.path), fs$1.stat(destPath)]);
83560
+ const [sourceStat, destStat] = await Promise.all([fsp.stat(source.path), fsp.stat(destPath)]);
83561
83561
  independentArchive = sourceStat.dev !== destStat.dev || sourceStat.ino !== destStat.ino;
83562
83562
  } else return {
83563
83563
  moved: false,
@@ -83578,13 +83578,13 @@ async function archiveLegacySourceTo(source, dest, archiveRoot, expected) {
83578
83578
  };
83579
83579
  const outcome = await moveInto(dest);
83580
83580
  if (outcome.divergent) throw new Error(`legacy archive destination exists with different content: ${dest}`);
83581
- await fs$1.chmod(dest, 384);
83581
+ await fsp.chmod(dest, 384);
83582
83582
  if (!await destInodeVerified(dest)) {
83583
83583
  const archived = await identityOf(dest);
83584
83584
  if (!archived || archived.fingerprint !== expectedIdentity.fingerprint) throw new Error(`legacy archive verification failed: ${dest}`);
83585
83585
  }
83586
83586
  if (outcome.moved) if (outcome.independentArchive) await unlinkSourceIfUnchanged(source.path, expectedIdentity);
83587
- else await fs$1.unlink(source.path);
83587
+ else await fsp.unlink(source.path);
83588
83588
  return dest;
83589
83589
  }
83590
83590
  /**
@@ -83598,12 +83598,12 @@ async function unlinkSourceIfUnchanged(sourcePath, expected) {
83598
83598
  const current = await sourceIdentity(sourcePath);
83599
83599
  if (!current) return;
83600
83600
  if (current.fingerprint !== expected.fingerprint) throw new Error(`legacy source changed before removal; failing closed: ${sourcePath}`);
83601
- await fs$1.unlink(sourcePath);
83601
+ await fsp.unlink(sourcePath);
83602
83602
  }
83603
83603
  async function chmodDirs(dir, stopAt) {
83604
83604
  let current = dir;
83605
83605
  while (current.startsWith(stopAt) && current !== stopAt) {
83606
- await fs$1.chmod(current, 448).catch(() => void 0);
83606
+ await fsp.chmod(current, 448).catch(() => void 0);
83607
83607
  const parent = path.dirname(current);
83608
83608
  if (parent === current) return;
83609
83609
  current = parent;
@@ -83632,11 +83632,11 @@ async function purgeExpiredLegacyArchives(runtime, opts) {
83632
83632
  log$35.warn("skipping legacy archive outside the archive root", { sourcePath: receipt.sourcePath });
83633
83633
  continue;
83634
83634
  }
83635
- if (!await fs$1.stat(archivePath).then(() => true).catch((error) => {
83635
+ if (!await fsp.stat(archivePath).then(() => true).catch((error) => {
83636
83636
  if (error.code === "ENOENT") return false;
83637
83637
  throw error;
83638
83638
  })) continue;
83639
- await fs$1.rm(archivePath, { force: true });
83639
+ await fsp.rm(archivePath, { force: true });
83640
83640
  purged += 1;
83641
83641
  await pruneEmptyArchiveDirs(path.dirname(archivePath), archiveRoot);
83642
83642
  }
@@ -83647,12 +83647,12 @@ async function pruneEmptyArchiveDirs(dir, stopAt) {
83647
83647
  while (current.startsWith(stopAt + path.sep)) {
83648
83648
  let entries;
83649
83649
  try {
83650
- entries = await fs$1.readdir(current);
83650
+ entries = await fsp.readdir(current);
83651
83651
  } catch {
83652
83652
  return;
83653
83653
  }
83654
83654
  if (entries.length > 0) return;
83655
- await fs$1.rmdir(current).catch(() => void 0);
83655
+ await fsp.rmdir(current).catch(() => void 0);
83656
83656
  current = path.dirname(current);
83657
83657
  }
83658
83658
  }
@@ -84228,7 +84228,7 @@ async function admitDurableKeyMappings(registry, listKeys, opts) {
84228
84228
  await opts?.clearMappingSourcePath?.(mapping.agentId, mapping.sessionId).catch(() => void 0);
84229
84229
  continue;
84230
84230
  }
84231
- const stats = await fs$1.stat(mapping.sourcePath).catch(() => void 0);
84231
+ const stats = await fsp.stat(mapping.sourcePath).catch(() => void 0);
84232
84232
  if (!stats?.isFile()) continue;
84233
84233
  registry.admit({
84234
84234
  path: mapping.sourcePath,
@@ -84428,7 +84428,7 @@ function createLegacySourceRegistry() {
84428
84428
  if (!isSettledReceipt(receipt, source.sizeBytes)) trackPendingPath(key, source);
84429
84429
  return;
84430
84430
  }
84431
- const stats = await fs$1.stat(key).catch(() => void 0);
84431
+ const stats = await fsp.stat(key).catch(() => void 0);
84432
84432
  if (!stats?.isFile() && receipt.status !== "imported") return;
84433
84433
  admit({
84434
84434
  path: key,
@@ -84921,7 +84921,7 @@ async function claimExclusivePartial(destPath) {
84921
84921
  for (let attempt = 0; attempt < 3; attempt += 1) {
84922
84922
  const candidate = `${destPath}.${process.pid}.${randomBytes(8).toString("hex")}.partial`;
84923
84923
  try {
84924
- await (await fs$1.open(candidate, "wx", 384)).close();
84924
+ await (await fsp.open(candidate, "wx", 384)).close();
84925
84925
  return candidate;
84926
84926
  } catch (err) {
84927
84927
  if (err.code !== "EEXIST") throw err;
@@ -84940,7 +84940,7 @@ async function backupSqliteSessionDatabase(params) {
84940
84940
  const dbPath = path.resolve(params.dbPath);
84941
84941
  const destPath = path.resolve(params.destPath);
84942
84942
  for (const guarded of protectedLivePaths(dbPath)) if (sameFile$1(destPath, guarded)) throw new Error("backup destination must not be the live database or its owner lock, holder sidecar, or journal files");
84943
- await fs$1.mkdir(path.dirname(destPath), {
84943
+ await fsp.mkdir(path.dirname(destPath), {
84944
84944
  recursive: true,
84945
84945
  mode: 448
84946
84946
  });
@@ -84952,14 +84952,14 @@ async function backupSqliteSessionDatabase(params) {
84952
84952
  gated: sqliteBackupTestHooks.holdWorkerAtGate === true,
84953
84953
  writableSource: false
84954
84954
  });
84955
- await fs$1.rename(partialPath, destPath);
84955
+ await fsp.rename(partialPath, destPath);
84956
84956
  } catch (err) {
84957
- await fs$1.rm(partialPath, { force: true }).catch(() => {});
84957
+ await fsp.rm(partialPath, { force: true }).catch(() => {});
84958
84958
  throw err;
84959
84959
  }
84960
84960
  return {
84961
84961
  path: destPath,
84962
- bytes: (await fs$1.stat(destPath)).size
84962
+ bytes: (await fsp.stat(destPath)).size
84963
84963
  };
84964
84964
  }
84965
84965
 
@@ -84981,7 +84981,7 @@ const INCARNATION_SELECT_SQL = "SELECT id FROM ctx_legacy_import_incarnation LIM
84981
84981
  async function readDbIncarnationId(dbPath) {
84982
84982
  let db;
84983
84983
  try {
84984
- await fs$1.stat(dbPath);
84984
+ await fsp.stat(dbPath);
84985
84985
  db = new DatabaseSync(dbPath);
84986
84986
  const row = db.prepare(INCARNATION_SELECT_SQL).get();
84987
84987
  return typeof row?.id === "string" ? row.id : void 0;
@@ -85033,7 +85033,7 @@ async function takePreImportLegacySnapshot(params) {
85033
85033
  const marked = await readSnapshotMarker(backupsDir, canonicalDbPath);
85034
85034
  if (marked) return marked;
85035
85035
  if ((await params.listReceipts()).length > 0) return;
85036
- await fs$1.mkdir(backupsDir, {
85036
+ await fsp.mkdir(backupsDir, {
85037
85037
  recursive: true,
85038
85038
  mode: 448
85039
85039
  });
@@ -85044,7 +85044,7 @@ async function takePreImportLegacySnapshot(params) {
85044
85044
  dbPath,
85045
85045
  destPath
85046
85046
  });
85047
- if (dbId !== void 0) await fs$1.writeFile(path.join(backupsDir, snapshotMarkerFile(canonicalDbPath)), `${JSON.stringify({
85047
+ if (dbId !== void 0) await fsp.writeFile(path.join(backupsDir, snapshotMarkerFile(canonicalDbPath)), `${JSON.stringify({
85048
85048
  path: backup.path,
85049
85049
  createdAt: (/* @__PURE__ */ new Date()).toISOString(),
85050
85050
  canonicalDbPath,
@@ -85062,17 +85062,17 @@ async function takePreImportLegacySnapshot(params) {
85062
85062
  */
85063
85063
  async function cleanupPartialLegacyBackups(stateDir) {
85064
85064
  const backupsDir = path.join(stateDir, "backups");
85065
- const names = await fs$1.readdir(backupsDir).catch(() => []);
85065
+ const names = await fsp.readdir(backupsDir).catch(() => []);
85066
85066
  for (const name of names) {
85067
85067
  if (!name.endsWith(".partial")) continue;
85068
- await fs$1.rm(path.join(backupsDir, name), { force: true }).catch(() => void 0);
85068
+ await fsp.rm(path.join(backupsDir, name), { force: true }).catch(() => void 0);
85069
85069
  }
85070
85070
  }
85071
85071
  async function readSnapshotMarker(backupsDir, canonicalDbPath) {
85072
85072
  const currentIncarnationId = await readDbIncarnationId(canonicalDbPath);
85073
85073
  const keyed = await readMarkerFile(path.join(backupsDir, snapshotMarkerFile(canonicalDbPath)), canonicalDbPath, currentIncarnationId);
85074
85074
  if (keyed !== void 0) return keyed;
85075
- const names = await fs$1.readdir(backupsDir).catch(() => []);
85075
+ const names = await fsp.readdir(backupsDir).catch(() => []);
85076
85076
  for (const name of names) {
85077
85077
  if (!name.startsWith(SNAPSHOT_MARKER_PREFIX) || !name.endsWith(".json")) continue;
85078
85078
  const found = await readMarkerFile(path.join(backupsDir, name), canonicalDbPath, currentIncarnationId);
@@ -85081,7 +85081,7 @@ async function readSnapshotMarker(backupsDir, canonicalDbPath) {
85081
85081
  return readMarkerFile(path.join(backupsDir, SNAPSHOT_MARKER_FILE), canonicalDbPath, currentIncarnationId);
85082
85082
  }
85083
85083
  async function readMarkerFile(markerFile, canonicalDbPath, currentIncarnationId) {
85084
- const raw = await fs$1.readFile(markerFile, "utf8").catch(() => void 0);
85084
+ const raw = await fsp.readFile(markerFile, "utf8").catch(() => void 0);
85085
85085
  if (!raw) return;
85086
85086
  try {
85087
85087
  const parsed = JSON.parse(raw);
@@ -85093,7 +85093,7 @@ async function readMarkerFile(markerFile, canonicalDbPath, currentIncarnationId)
85093
85093
  if (currentIncarnationId !== void 0 && currentIncarnationId === markerId) return markerPath;
85094
85094
  return;
85095
85095
  }
85096
- const [markerStat, dbStat] = await Promise.all([fs$1.stat(markerDbPath).catch(() => void 0), fs$1.stat(canonicalDbPath).catch(() => void 0)]);
85096
+ const [markerStat, dbStat] = await Promise.all([fsp.stat(markerDbPath).catch(() => void 0), fsp.stat(canonicalDbPath).catch(() => void 0)]);
85097
85097
  if (markerStat !== void 0 && dbStat !== void 0 ? markerStat.dev === dbStat.dev && markerStat.ino === dbStat.ino : markerDbPath === canonicalDbPath) return markerPath;
85098
85098
  }
85099
85099
  } catch {}
@@ -85359,7 +85359,7 @@ const log$27 = createSubsystemLogger("config/sessions/legacy-import/index-import
85359
85359
  async function readLegacyIndexStore(storePath) {
85360
85360
  let raw;
85361
85361
  try {
85362
- raw = await fs$1.readFile(storePath, "utf8");
85362
+ raw = await fsp.readFile(storePath, "utf8");
85363
85363
  } catch (error) {
85364
85364
  throw new Error(`legacy index source unreadable: ${storePath}`, { cause: error });
85365
85365
  }
@@ -85598,7 +85598,7 @@ async function importLegacyIndex(runtime, source, opts = {}) {
85598
85598
  actorExplicit: entry.actor !== void 0
85599
85599
  }), opts.signal);
85600
85600
  if (transcriptPath && opts.discoveredTranscripts && path.resolve(transcriptPath) !== path.resolve(source.path)) try {
85601
- const stats = await fs$1.stat(transcriptPath);
85601
+ const stats = await fsp.stat(transcriptPath);
85602
85602
  if (stats.isFile()) opts.discoveredTranscripts.push({
85603
85603
  path: transcriptPath,
85604
85604
  kind: "transcript",
@@ -85714,7 +85714,7 @@ async function loadSessionKeyOverrides(stateDir) {
85714
85714
  const filePath = path.join(stateDir, "recovery", SESSION_KEY_OVERRIDES_FILENAME);
85715
85715
  let raw;
85716
85716
  try {
85717
- raw = await fs$1.readFile(filePath, "utf8");
85717
+ raw = await fsp.readFile(filePath, "utf8");
85718
85718
  } catch (error) {
85719
85719
  if (error.code !== "ENOENT") log$25.warn("session key overrides unreadable; ignoring", { error });
85720
85720
  return /* @__PURE__ */ new Map();
@@ -87251,7 +87251,7 @@ async function resolveGatewayOwnerStatus(pid, payload, platform, port) {
87251
87251
  }
87252
87252
  async function readLockPayload(lockPath) {
87253
87253
  try {
87254
- const raw = await fs$1.readFile(lockPath, "utf8");
87254
+ const raw = await fsp.readFile(lockPath, "utf8");
87255
87255
  const parsed = JSON.parse(raw);
87256
87256
  if (typeof parsed.pid !== "number") return null;
87257
87257
  if (typeof parsed.createdAt !== "string") return null;
@@ -87636,7 +87636,7 @@ async function withMemoryManagerForAgent(params) {
87636
87636
  }
87637
87637
  async function checkReadableFile(pathname) {
87638
87638
  try {
87639
- await fs$1.access(pathname, fs.constants.R_OK);
87639
+ await fsp.access(pathname, fs.constants.R_OK);
87640
87640
  return { exists: true };
87641
87641
  } catch (err) {
87642
87642
  const code = err.code;
@@ -87671,7 +87671,7 @@ async function scanMemoryFiles(workspaceDir, extraPaths = []) {
87671
87671
  if (alt.issue) issues.push(alt.issue);
87672
87672
  const resolvedExtraPaths = normalizeExtraMemoryPaths(workspaceDir, extraPaths);
87673
87673
  for (const extraPath of resolvedExtraPaths) try {
87674
- if ((await fs$1.lstat(extraPath)).isSymbolicLink()) continue;
87674
+ if ((await fsp.lstat(extraPath)).isSymbolicLink()) continue;
87675
87675
  const extraCheck = await checkReadableFile(extraPath);
87676
87676
  if (extraCheck.issue) issues.push(extraCheck.issue);
87677
87677
  } catch (err) {
@@ -87681,7 +87681,7 @@ async function scanMemoryFiles(workspaceDir, extraPaths = []) {
87681
87681
  }
87682
87682
  let dirReadable = null;
87683
87683
  try {
87684
- await fs$1.access(memoryDir, fs.constants.R_OK);
87684
+ await fsp.access(memoryDir, fs.constants.R_OK);
87685
87685
  dirReadable = true;
87686
87686
  } catch (err) {
87687
87687
  const code = err.code;
@@ -87729,7 +87729,7 @@ async function summarizeQmdIndexArtifact(manager) {
87729
87729
  if (!dbPath) return null;
87730
87730
  let stat;
87731
87731
  try {
87732
- stat = await fs$1.stat(dbPath);
87732
+ stat = await fsp.stat(dbPath);
87733
87733
  } catch (err) {
87734
87734
  const code = err.code;
87735
87735
  if (code === "ENOENT") throw new Error(`QMD index file not found: ${shortenHomePath(dbPath)}`, { cause: err });
@@ -88246,7 +88246,7 @@ function createPluginRuntime(options = {}) {
88246
88246
  workStates: readTaskWorkStates
88247
88247
  },
88248
88248
  resolveLearningWorkspaceDir: (agentId) => resolveLearningWorkspaceDir(loadConfig(), agentId),
88249
- sessions: { startUserRun: async (params) => (await import("./user-run-recording-CV8Lr06M.js").then((n) => n.n)).startUserSessionRun(params) }
88249
+ sessions: { startUserRun: async (params) => (await import("./user-run-recording-DYSEO3CI.js").then((n) => n.n)).startUserSessionRun(params) }
88250
88250
  };
88251
88251
  Object.defineProperty(runtime, "analysis", {
88252
88252
  enumerable: true,
@@ -89163,7 +89163,7 @@ function resolvePluginWebSearchProviders(params) {
89163
89163
  //#endregion
89164
89164
  //#region src/agents/apply-patch-update.ts
89165
89165
  async function defaultReadFile(filePath) {
89166
- return fs$1.readFile(filePath, "utf8");
89166
+ return fsp.readFile(filePath, "utf8");
89167
89167
  }
89168
89168
  async function applyUpdateHunk(filePath, chunks, options) {
89169
89169
  const originalLines = (await (options?.readFile ?? defaultReadFile)(filePath).catch((err) => {
@@ -89484,7 +89484,7 @@ function resolvePatchFileOps(options) {
89484
89484
  const workspaceOnly = options.workspaceOnly !== false;
89485
89485
  return {
89486
89486
  readFile: async (filePath) => {
89487
- if (!workspaceOnly) return await fs$1.readFile(filePath, "utf8");
89487
+ if (!workspaceOnly) return await fsp.readFile(filePath, "utf8");
89488
89488
  const opened = await openBoundaryFile({
89489
89489
  absolutePath: filePath,
89490
89490
  rootPath: options.cwd,
@@ -89499,7 +89499,7 @@ function resolvePatchFileOps(options) {
89499
89499
  },
89500
89500
  writeFile: async (filePath, content) => {
89501
89501
  if (!workspaceOnly) {
89502
- await fs$1.writeFile(filePath, content, "utf8");
89502
+ await fsp.writeFile(filePath, content, "utf8");
89503
89503
  return;
89504
89504
  }
89505
89505
  const relative = toRelativeSandboxPath(options.cwd, filePath);
@@ -89510,8 +89510,8 @@ function resolvePatchFileOps(options) {
89510
89510
  encoding: "utf8"
89511
89511
  });
89512
89512
  },
89513
- remove: (filePath) => fs$1.rm(filePath),
89514
- mkdirp: (dir) => fs$1.mkdir(dir, { recursive: true }).then(() => {})
89513
+ remove: (filePath) => fsp.rm(filePath),
89514
+ mkdirp: (dir) => fsp.mkdir(dir, { recursive: true }).then(() => {})
89515
89515
  };
89516
89516
  }
89517
89517
  async function ensureDir(filePath, ops) {
@@ -89790,7 +89790,7 @@ async function recordLoopOutcome(args) {
89790
89790
  if (!args.ctx?.sessionKey) return;
89791
89791
  try {
89792
89792
  const { getDiagnosticSessionState } = await import("./diagnostic-session-state-DuIsmy5s.js").then((n) => n.n);
89793
- const { recordToolCallOutcome } = await import("./tool-loop-detection-CBkH6hsK.js");
89793
+ const { recordToolCallOutcome } = await import("./tool-loop-detection-B2ogHpfl.js");
89794
89794
  recordToolCallOutcome(getDiagnosticSessionState({
89795
89795
  sessionKey: args.ctx.sessionKey,
89796
89796
  sessionId: args.ctx?.agentId
@@ -89817,8 +89817,8 @@ async function runBeforeToolCallHook(args) {
89817
89817
  const params = args.params;
89818
89818
  if (args.ctx?.sessionKey) {
89819
89819
  const { getDiagnosticSessionState } = await import("./diagnostic-session-state-DuIsmy5s.js").then((n) => n.n);
89820
- const { logToolLoopAction } = await import("./diagnostic-Dd6LtH4a.js").then((n) => n.n);
89821
- const { detectToolCallLoop, recordToolCall } = await import("./tool-loop-detection-CBkH6hsK.js");
89820
+ const { logToolLoopAction } = await import("./diagnostic-VK1bXt80.js").then((n) => n.n);
89821
+ const { detectToolCallLoop, recordToolCall } = await import("./tool-loop-detection-B2ogHpfl.js");
89822
89822
  const sessionState = getDiagnosticSessionState({
89823
89823
  sessionKey: args.ctx.sessionKey,
89824
89824
  sessionId: args.ctx?.agentId
@@ -90497,14 +90497,14 @@ function createSandboxEditOperations(params) {
90497
90497
  }
90498
90498
  async function writeHostFile(absolutePath, content) {
90499
90499
  const resolved = path.resolve(absolutePath);
90500
- await fs$1.mkdir(path.dirname(resolved), { recursive: true });
90501
- await fs$1.writeFile(resolved, content, "utf-8");
90500
+ await fsp.mkdir(path.dirname(resolved), { recursive: true });
90501
+ await fsp.writeFile(resolved, content, "utf-8");
90502
90502
  }
90503
90503
  function createHostWriteOperations(root, options) {
90504
90504
  if (!(options?.workspaceOnly ?? false)) return {
90505
90505
  mkdir: async (dir) => {
90506
90506
  const resolved = path.resolve(dir);
90507
- await fs$1.mkdir(resolved, { recursive: true });
90507
+ await fsp.mkdir(resolved, { recursive: true });
90508
90508
  },
90509
90509
  writeFile: writeHostFile
90510
90510
  };
@@ -90517,7 +90517,7 @@ function createHostWriteOperations(root, options) {
90517
90517
  cwd: root,
90518
90518
  root
90519
90519
  });
90520
- await fs$1.mkdir(resolved, { recursive: true });
90520
+ await fsp.mkdir(resolved, { recursive: true });
90521
90521
  },
90522
90522
  writeFile: async (absolutePath, content) => {
90523
90523
  await writeFileWithinRoot({
@@ -90533,12 +90533,12 @@ function createHostEditOperations(root, options) {
90533
90533
  if (!(options?.workspaceOnly ?? false)) return {
90534
90534
  readFile: async (absolutePath) => {
90535
90535
  const resolved = path.resolve(absolutePath);
90536
- return await fs$1.readFile(resolved);
90536
+ return await fsp.readFile(resolved);
90537
90537
  },
90538
90538
  writeFile: writeHostFile,
90539
90539
  access: async (absolutePath) => {
90540
90540
  const resolved = path.resolve(absolutePath);
90541
- await fs$1.access(resolved);
90541
+ await fsp.access(resolved);
90542
90542
  }
90543
90543
  };
90544
90544
  return {
@@ -93355,7 +93355,7 @@ async function compactEmbeddedPiSessionDirect(params) {
93355
93355
  } catch (err) {
93356
93356
  return fail(describeUnknownError(err));
93357
93357
  }
93358
- await fs$1.mkdir(resolvedWorkspace, { recursive: true });
93358
+ await fsp.mkdir(resolvedWorkspace, { recursive: true });
93359
93359
  const sandboxSessionKey = params.sessionKey?.trim() || params.sessionId;
93360
93360
  const sandbox = await resolveSandboxContext({
93361
93361
  config: params.config,
@@ -93364,7 +93364,7 @@ async function compactEmbeddedPiSessionDirect(params) {
93364
93364
  workspaceLane: params.workspaceLane
93365
93365
  });
93366
93366
  const effectiveWorkspace = sandbox?.enabled ? sandbox.workspaceAccess === "rw" ? resolvedWorkspace : sandbox.workspaceDir : resolvedWorkspace;
93367
- await fs$1.mkdir(effectiveWorkspace, { recursive: true });
93367
+ await fsp.mkdir(effectiveWorkspace, { recursive: true });
93368
93368
  let restoreSkillEnv;
93369
93369
  const releaseWorkspaceCwd = acquireWorkspaceCwd(effectiveWorkspace);
93370
93370
  try {
@@ -100833,7 +100833,7 @@ async function runEmbeddedAttempt(params) {
100833
100833
  let embeddedAttemptBegun = false;
100834
100834
  const runAbortController = new AbortController();
100835
100835
  log$53.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"}`);
100836
- await fs$1.mkdir(resolvedWorkspace, { recursive: true });
100836
+ await fsp.mkdir(resolvedWorkspace, { recursive: true });
100837
100837
  const sandboxSessionKey = params.sessionKey?.trim() || params.sessionId;
100838
100838
  const toolSessionKey = params.toolSessionKey?.trim() || sandboxSessionKey;
100839
100839
  const sandbox = params.skipSandbox ? null : await resolveSandboxContext({
@@ -100843,7 +100843,7 @@ async function runEmbeddedAttempt(params) {
100843
100843
  workspaceLane: params.workspaceLane
100844
100844
  });
100845
100845
  const effectiveWorkspace = sandbox?.enabled ? sandbox.workspaceAccess === "rw" ? resolvedWorkspace : sandbox.workspaceDir : resolvedWorkspace;
100846
- await fs$1.mkdir(effectiveWorkspace, { recursive: true });
100846
+ await fsp.mkdir(effectiveWorkspace, { recursive: true });
100847
100847
  let restoreSkillEnv;
100848
100848
  const releaseWorkspaceCwd = params.skipCwdChange ? void 0 : acquireWorkspaceCwd(effectiveWorkspace);
100849
100849
  const rawToolResultStash = openRawToolResultStash(params.sessionId);
@@ -101958,7 +101958,7 @@ async function runEmbeddedPiAgent(params) {
101958
101958
  const copilotAuthRetry = authRetryPending;
101959
101959
  authRetryPending = false;
101960
101960
  attemptedThinking.add(thinkLevel);
101961
- await fs$1.mkdir(resolvedWorkspace, { recursive: true });
101961
+ await fsp.mkdir(resolvedWorkspace, { recursive: true });
101962
101962
  const prompt = provider === "anthropic" ? scrubAnthropicRefusalMagic(params.prompt) : params.prompt;
101963
101963
  const attempt = await runEmbeddedAttempt({
101964
101964
  sessionId: params.sessionId,
@@ -102701,7 +102701,7 @@ async function resolveHeartbeatPreflight(params) {
102701
102701
  const workspaceDir = resolveAgentWorkspaceDir(params.cfg, params.agentId);
102702
102702
  const heartbeatFilePath = path.join(workspaceDir, DEFAULT_HEARTBEAT_FILENAME);
102703
102703
  try {
102704
- if (isHeartbeatContentEffectivelyEmpty(await fs$1.readFile(heartbeatFilePath, "utf-8"))) return {
102704
+ if (isHeartbeatContentEffectivelyEmpty(await fsp.readFile(heartbeatFilePath, "utf-8"))) return {
102705
102705
  ...basePreflight,
102706
102706
  skipReason: "empty-heartbeat-file"
102707
102707
  };
@@ -102977,7 +102977,7 @@ async function runModelGate(spec, ctx) {
102977
102977
  const isolatedSessionId = randomNonce;
102978
102978
  const isolatedRunId = randomNonce;
102979
102979
  const tmpBaseDir = resolvePreferredOpenClawTmpDir();
102980
- tmpDir = await fs$1.mkdtemp(path.join(tmpBaseDir, "wake-gate-"));
102980
+ tmpDir = await fsp.mkdtemp(path.join(tmpBaseDir, "wake-gate-"));
102981
102981
  const workspaceDir = tmpDir;
102982
102982
  const prompt = spec.prompt ?? DEFAULT_MODEL_PROMPT;
102983
102983
  const timeoutMs = spec.timeoutMs ?? DEFAULT_MODEL_TIMEOUT_MS;
@@ -103035,7 +103035,7 @@ async function runModelGate(spec, ctx) {
103035
103035
  log$6.warn("model gate error", { error: err instanceof Error ? err.message : String(err) });
103036
103036
  return { wake: false };
103037
103037
  } finally {
103038
- if (tmpDir) await fs$1.rm(tmpDir, {
103038
+ if (tmpDir) await fsp.rm(tmpDir, {
103039
103039
  recursive: true,
103040
103040
  force: true
103041
103041
  }).catch(() => void 0);