wednesdayai 0.5.1-dev.40 → 0.5.1-dev.41

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 (352) hide show
  1. package/dist/{agent-scope-BudmZlc1.js → agent-scope-CXfIHPTl.js} +3 -3
  2. package/dist/{agent-scope-BJFJ0deZ.js → agent-scope-DUbhjnHb.js} +18 -18
  3. package/dist/{agent-turn-execute-CIlMMXNu.js → agent-turn-execute-8DU-jztX.js} +168 -168
  4. package/dist/{agent-turn-runner-C5FiRTJg.js → agent-turn-runner-BJqs23F_.js} +6 -6
  5. package/dist/{agent-turn-runner-SxjOzPCD.js → agent-turn-runner-DHc4lH66.js} +6 -6
  6. package/dist/{api-key-rotation-BWj1Itf-.js → api-key-rotation-B8RAiYZ_.js} +2 -2
  7. package/dist/{api-key-rotation-DzXkIU1m.js → api-key-rotation-PK29aYV9.js} +2 -2
  8. package/dist/{audio-preflight-CKxOmHZL.js → audio-preflight-Cio-wP6C.js} +22 -22
  9. package/dist/{audio-preflight-E-nHdi7I.js → audio-preflight-DaYu-alJ.js} +27 -27
  10. package/dist/{audio-transcription-runner-Cc-hAbE1.js → audio-transcription-runner-DW04B1B-.js} +26 -26
  11. package/dist/{audio-transcription-runner-DrIyj8a5.js → audio-transcription-runner-D_-_mf4m.js} +25 -25
  12. package/dist/build-info.json +3 -3
  13. package/dist/bundled/boot-md/handler.js +58 -58
  14. package/dist/bundled/bootstrap-extra-files/handler.js +5 -5
  15. package/dist/bundled/command-logger/handler.js +2 -2
  16. package/dist/bundled/session-journal/handler.js +58 -58
  17. package/dist/bundled/session-memory/handler.js +58 -58
  18. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  19. package/dist/{chat-content-CL44f6Ub.js → chat-content-DIjp-kW-.js} +36 -36
  20. package/dist/{chat-content-BgW4rG28.js → chat-content-tQ21BnhN.js} +24 -24
  21. package/dist/{plugin-sdk/chrome-DML7V0HT.js → chrome-C9TkYQeh.js} +26 -26
  22. package/dist/{chrome-DNTX4D1k.js → chrome-DxiDoVpi.js} +13 -13
  23. package/dist/{chunk-BEuk6eCG.js → chunk-50mU2Avf.js} +3 -3
  24. package/dist/{chunk-BHQuzJtJ.js → chunk-DCCRrNDr.js} +3 -3
  25. package/dist/{command-queue-CyJUnsMn.js → command-queue-De2GI8TP.js} +1 -1
  26. package/dist/{command-queue-D_saM8MV.js → command-queue-yDJ733aN.js} +1 -1
  27. package/dist/{command-registry-xYf1aBOy.js → command-registry-Ip0F63vx.js} +4 -4
  28. package/dist/{commands-registry-CNVoO37I.js → commands-registry-C3LKhQLY.js} +2 -2
  29. package/dist/{commands-registry-C-BDBl_b.js → commands-registry-CzTzqbi9.js} +2 -2
  30. package/dist/{completion-cli-od6mAB_x.js → completion-cli-BFHL_SSq.js} +2 -2
  31. package/dist/{completion-cli-BIuMSnSA.js → completion-cli-EqOcxJpx.js} +1 -1
  32. package/dist/{config-CPcuaNsB.js → config-D5tWLhng.js} +26 -26
  33. package/dist/config.js +3 -3
  34. package/dist/{credentials-DnIj4HtR.js → credentials-BAWD9O8L.js} +1 -1
  35. package/dist/{credentials-2Kd9Ahu7.js → credentials-DdZjLLBj.js} +1 -1
  36. package/dist/{deliver-Ap_fWjsf.js → deliver-Cqo4_R0v.js} +14 -14
  37. package/dist/{deliver-DUUEMT-w.js → deliver-DeMElZFE.js} +29 -29
  38. package/dist/{diagnostic-YRGuisNG.js → diagnostic-BqFtliY1.js} +3 -3
  39. package/dist/{diagnostic--vAGyKdB.js → diagnostic-Nq6B3DZr.js} +3 -3
  40. package/dist/{doctor-completion-xR-LI2Kc.js → doctor-completion-CNBGQIUD.js} +1 -1
  41. package/dist/{doctor-completion-B3oIZ4R2.js → doctor-completion-W6Xmw25w.js} +1 -1
  42. package/dist/entry.js +2 -2
  43. package/dist/{plugin-sdk/errors-BH3DYZVB.js → errors-BWpk4nzX.js} +1 -1
  44. package/dist/{errors-DnOtx_vg.js → errors-D8k7j4A4.js} +1 -1
  45. package/dist/{fetch-ChtdmCYU.js → fetch-CHncmQms.js} +8 -8
  46. package/dist/{plugin-sdk/fetch-BxGJD3sH.js → fetch-CLvElPgY.js} +1 -1
  47. package/dist/{plugin-sdk/fetch-BqFNIJpI.js → fetch-DG4n5iR6.js} +1 -1
  48. package/dist/{fetch-BJ9kDOw8.js → fetch-TzOudNO4.js} +7 -7
  49. package/dist/{fetch-guard-CRERUrFK.js → fetch-guard-BZlxmZcA.js} +2 -2
  50. package/dist/{fetch-guard-BnKTeFyb.js → fetch-guard-kz-XQlCx.js} +2 -2
  51. package/dist/{frontmatter-CqznVm7P.js → frontmatter-BDLxOane.js} +5 -5
  52. package/dist/{fs-safe-C3qJHn62.js → fs-safe-BH37Yhl8.js} +25 -25
  53. package/dist/{fs-safe-D96d8swI.js → fs-safe-BjrptUz1.js} +26 -26
  54. package/dist/{gateway-cli-B0WWrjnY.js → gateway-cli-D17zAbrY.js} +20 -10
  55. package/dist/{gateway-cli-BRUhDHZW.js → gateway-cli-DktZhN9y.js} +20 -10
  56. package/dist/{image-ops-BiBI-uAf.js → image-ops-BWgZn39_.js} +1 -1
  57. package/dist/{image-ops-BTgGxcIG.js → image-ops-C54shfkj.js} +11 -11
  58. package/dist/index.js +1 -1
  59. package/dist/{ir-IKFrcD2H.js → ir-Btci3Wse.js} +8 -8
  60. package/dist/{ir-Drj2D5Gr.js → ir-SWdqg35s.js} +5 -5
  61. package/dist/{json-files-DNv3G6Vg.js → json-files-C3L53Qrl.js} +7 -7
  62. package/dist/{legacy-names-Bx5L8LWT.js → legacy-names-BKv-k5-D.js} +1 -1
  63. package/dist/llm-slug-generator.js +58 -58
  64. package/dist/{manager-Cb_Lde6Q.js → manager-BPk0HUHz.js} +14 -14
  65. package/dist/{manager-C9H5Oflk.js → manager-Nw8a10KA.js} +18 -18
  66. package/dist/{markdown-tables-Crj_Y0Qx.js → markdown-tables-BJqhUgli.js} +2 -2
  67. package/dist/{markdown-tables-BvoP0b-H.js → markdown-tables-By4yQcHS.js} +2 -2
  68. package/dist/{model-selection-2-pBJbaC.js → model-selection-JA-6f5ss.js} +84 -84
  69. package/dist/{models-config-7yfOGOZY.js → models-config-Cbzv_acs.js} +2 -2
  70. package/dist/{models-config-DkEpc_7A.js → models-config-TH00YNHC.js} +7 -7
  71. package/dist/{nudge-BR_K1LnT.js → nudge-DVGzMWUi.js} +16 -16
  72. package/dist/{nudge-CcGwhSSL.js → nudge-Da1ePscI.js} +35 -35
  73. package/dist/{onboard-CRHyyv-F.js → onboard-D2AmYbm8.js} +1 -1
  74. package/dist/{onboard-CYQVIEKp.js → onboard-PJee12bv.js} +1 -1
  75. package/dist/{onboarding-CDHMZKiy.js → onboarding-C1f94rh1.js} +1 -1
  76. package/dist/{onboarding-vLVDuEr7.js → onboarding-DXRhSAcO.js} +1 -1
  77. package/dist/{onboarding.finalize-D3hX9K5R.js → onboarding.finalize-C0RUJoiz.js} +4 -4
  78. package/dist/{onboarding.finalize-BDJnDt6t.js → onboarding.finalize-Calv0MIe.js} +3 -3
  79. package/dist/{outbound-attachment-CxvBVgcJ.js → outbound-attachment-CZwlqfbE.js} +2 -2
  80. package/dist/{outbound-attachment-DFIzmC4e.js → outbound-attachment-DAUmCye_.js} +2 -2
  81. package/dist/{outbound-message-hooks-C9zh-qk0.js → outbound-message-hooks-Bqu2fu_R.js} +4 -4
  82. package/dist/{outbound-message-hooks-DfRORyCc.js → outbound-message-hooks-CIrC0qAA.js} +5 -5
  83. package/dist/{pairing-files-ByediFgs.js → pairing-files-B1ukutA_.js} +1 -1
  84. package/dist/{path-alias-guards-B9AcbQl6.js → path-alias-guards-CGcezGX3.js} +3 -3
  85. package/dist/{path-alias-guards-BXXI1YTn.js → path-alias-guards-CgO2FpVx.js} +1 -1
  86. package/dist/{pi-embedded-Dp5uUcq6.js → pi-embedded-W4tWwQw6.js} +254 -254
  87. package/dist/{pi-embedded-utils-Dc-LEWCI.js → pi-embedded-utils-B6eeyw2H.js} +3 -3
  88. package/dist/{pi-embedded-utils-CQ3KPjMe.js → pi-embedded-utils-DF7kfQx2.js} +3 -3
  89. package/dist/{pi-model-discovery-C4WE3mR2.js → pi-model-discovery-VTZCKDCd.js} +1 -1
  90. package/dist/{pi-model-discovery-B44lshxv.js → pi-model-discovery-ym24jTFO.js} +7 -7
  91. package/dist/plugin-sdk/{agent-scope-Cy5bPtkD.js → agent-scope-BnbrZIzh.js} +1 -1
  92. package/dist/plugin-sdk/{agent-turn-execute-Cr_GYkDb.js → agent-turn-execute-Bj1_MqWi.js} +79 -79
  93. package/dist/plugin-sdk/agent-turn-execute-D0szeKs8.js +61 -0
  94. package/dist/plugin-sdk/{agent-turn-runner-D3tAlzpP.js → agent-turn-runner-fV3h6ELM.js} +6 -6
  95. package/dist/plugin-sdk/{agent-turn-runner-CBR6kAt-.js → agent-turn-runner-zbex5xar.js} +6 -6
  96. package/dist/plugin-sdk/{api-key-rotation-Dmd_whf1.js → api-key-rotation-DbJkvwYN.js} +1 -1
  97. package/dist/plugin-sdk/{api-key-rotation-BKcVxTy8.js → api-key-rotation-Dpyf5O6z.js} +2 -2
  98. package/dist/plugin-sdk/{audio-preflight-2XKqIXAx.js → audio-preflight-DhIYyWh0.js} +14 -14
  99. package/dist/plugin-sdk/{audio-preflight-BVKGoA22.js → audio-preflight-DlNHpUpW.js} +23 -23
  100. package/dist/plugin-sdk/{audio-transcription-runner-Cvfignlt.js → audio-transcription-runner-BNWmQAJ3.js} +10 -10
  101. package/dist/plugin-sdk/{audio-transcription-runner-2ziIuais.js → audio-transcription-runner-DbjdWQRu.js} +8 -8
  102. package/dist/plugin-sdk/{auth-profiles-BxDhfCHT.js → auth-profiles-DPd1Ol-P.js} +1 -1
  103. package/dist/plugin-sdk/{chat-content-DWJ_WMLQ.js → chat-content-CEMoDe5q.js} +9 -9
  104. package/dist/{chrome-D1006Mu2.js → plugin-sdk/chrome-CobI3ImG.js} +8 -8
  105. package/dist/plugin-sdk/{chrome-Djvom4Ij.js → chrome-DwoV5WFU.js} +6 -6
  106. package/dist/plugin-sdk/{chunk-SR4Ydfza.js → chunk-C3M1IW7W.js} +2 -2
  107. package/dist/plugin-sdk/{chunk-Bh4ffo9K.js → chunk-CBTJQenE.js} +3 -3
  108. package/dist/plugin-sdk/{command-queue-DUO9-NRr.js → command-queue-DUuIiwvi.js} +2 -2
  109. package/dist/plugin-sdk/{command-queue-DxcAKezg.js → command-queue-hSL_BIod.js} +1 -1
  110. package/dist/plugin-sdk/{commands-registry-DnePgYTq.js → commands-registry-DPCcTIwi.js} +2 -2
  111. package/dist/plugin-sdk/{commands-registry-CCiWhIrU.js → commands-registry-vhM5U22x.js} +2 -2
  112. package/dist/plugin-sdk/{credentials-DJMyq23O.js → credentials-BgX_xjTe.js} +1 -1
  113. package/dist/plugin-sdk/{credentials-BFdx8hCQ.js → credentials-oF38Hm9r.js} +1 -1
  114. package/dist/plugin-sdk/{deliver-Cf-VdZA7.js → deliver-CkQB8s_s.js} +14 -14
  115. package/dist/plugin-sdk/deliver-DTstMBfw.js +34 -0
  116. package/dist/plugin-sdk/{deliver-D3LWZpv1.js → deliver-lkeqXp0v.js} +11 -11
  117. package/dist/plugin-sdk/{diagnostic-BXgGsRnq.js → diagnostic-TucKQ5Fk.js} +2 -2
  118. package/dist/plugin-sdk/{diagnostic-BpXW-Rhw.js → diagnostic-nUTVaBEe.js} +3 -3
  119. package/dist/plugin-sdk/{diagnostic-session-state-Y-_mHHE2.js → diagnostic-session-state-C74O1QW2.js} +1 -1
  120. package/dist/{errors-DnS9ngr1.js → plugin-sdk/errors-BcCM5PTR.js} +1 -1
  121. package/dist/{fetch-CrTLz8wd.js → plugin-sdk/fetch-BEOHdT2e.js} +1 -1
  122. package/dist/{fetch-DJPbv7La.js → plugin-sdk/fetch-BNHoA66Z.js} +1 -1
  123. package/dist/plugin-sdk/{fetch-CpY6mDmQ.js → fetch-D7rvWjfk.js} +2 -2
  124. package/dist/plugin-sdk/{fetch-B9WuvLLv.js → fetch-DV_cKD5m.js} +7 -7
  125. package/dist/plugin-sdk/{fetch-guard-BEue3kvx.js → fetch-guard-CQIsGUgZ.js} +1 -1
  126. package/dist/plugin-sdk/{fetch-guard-CJhIVznN.js → fetch-guard-Dpd7hJ0h.js} +2 -2
  127. package/dist/plugin-sdk/{fs-safe-BQ8e0fFk.js → fs-safe-CnAPtYPG.js} +3 -3
  128. package/dist/plugin-sdk/{image-ops-CqatVl0e.js → image-ops-1WkFRYfC.js} +1 -1
  129. package/dist/plugin-sdk/{inbound-context-CKtZsNVT.js → inbound-context-BdGImnhD.js} +1 -1
  130. package/dist/plugin-sdk/{ir-C1cLQG0N.js → ir-BnNIPrDz.js} +5 -5
  131. package/dist/plugin-sdk/{ir-Ep5lw12h.js → ir-D-nyt7yZ.js} +2 -2
  132. package/dist/plugin-sdk/{manager-DyYd10T2.js → manager-3Bw8zhA3.js} +4 -4
  133. package/dist/plugin-sdk/manager-BexdJt3o.js +14 -0
  134. package/dist/plugin-sdk/{manager-xGWNrW5i.js → manager-uIw894nB.js} +7 -7
  135. package/dist/plugin-sdk/{markdown-tables-DnMUQn1V.js → markdown-tables-D6Jl1s9s.js} +2 -2
  136. package/dist/plugin-sdk/{markdown-tables-B4G-uOPz.js → markdown-tables-DczIA0hC.js} +2 -2
  137. package/dist/plugin-sdk/{model-auth-pNsZhRxq.js → model-auth-Beiv1ujI.js} +7 -7
  138. package/dist/plugin-sdk/{models-config-DsHaLeW3.js → models-config-DPG3UP6h.js} +1 -1
  139. package/dist/plugin-sdk/{models-config-d-LFEKVs.js → models-config-DrzOHxl5.js} +2 -2
  140. package/dist/plugin-sdk/{monitor-CbKokdL4.js → monitor-BQWiYAwC.js} +77 -77
  141. package/dist/plugin-sdk/{nudge-z8ozyWd6.js → nudge-Cp00v46W.js} +11 -11
  142. package/dist/plugin-sdk/{nudge-BvirROp6.js → nudge-czM3OOTT.js} +8 -8
  143. package/dist/plugin-sdk/{openai-compatible-video-BxPbkLMy.js → openai-compatible-video-Dy57wpNv.js} +7 -7
  144. package/dist/plugin-sdk/{outbound-attachment-DkIWM5yK.js → outbound-attachment-BoSR20RK.js} +2 -2
  145. package/dist/plugin-sdk/{outbound-attachment-BrHUWeqB.js → outbound-attachment-JHREBMfy.js} +1 -1
  146. package/dist/plugin-sdk/{outbound-message-hooks-DsAvrOUy.js → outbound-message-hooks-eUNVCJ0m.js} +4 -4
  147. package/dist/plugin-sdk/{path-alias-guards-CF0cvXKB.js → path-alias-guards-D1I2TIj4.js} +1 -1
  148. package/dist/plugin-sdk/{pi-embedded-helpers-Ctve63Vr.js → pi-embedded-helpers-BRSkUtFR.js} +15 -15
  149. package/dist/plugin-sdk/{pi-embedded-utils-cecBA96E.js → pi-embedded-utils-DcsHTJ1m.js} +3 -3
  150. package/dist/plugin-sdk/{pi-embedded-utils-6FFFlkbd.js → pi-embedded-utils-JXHsJfhx.js} +1 -1
  151. package/dist/plugin-sdk/{pi-model-discovery-BnsoI-E6.js → pi-model-discovery-CKGA60jT.js} +2 -2
  152. package/dist/plugin-sdk/{pi-model-discovery-CMOEq078.js → pi-model-discovery-HVno_0HD.js} +1 -1
  153. package/dist/plugin-sdk/provider-dispatcher-Cq6Acy3h.js +61 -0
  154. package/dist/plugin-sdk/provider-media-understanding.js +20 -20
  155. package/dist/plugin-sdk/{proxy-env-jBCtIiJH.js → proxy-env-D9QKz5Mq.js} +1 -1
  156. package/dist/plugin-sdk/{pw-ai-Bl2Z9GYg.js → pw-ai-B1OqkFDb.js} +10 -10
  157. package/dist/plugin-sdk/{pw-ai-IAdR6aX7.js → pw-ai-B_6I8TGZ.js} +4 -4
  158. package/dist/plugin-sdk/{qmd-manager-DERrmogO.js → qmd-manager-CIgxgs0D.js} +2 -2
  159. package/dist/plugin-sdk/{qmd-manager-DY9c1S_2.js → qmd-manager-Ip6QnhA7.js} +8 -8
  160. package/dist/plugin-sdk/{qmd-scope-C3rw3Qjd.js → qmd-scope-DMNjwnEQ.js} +1 -1
  161. package/dist/plugin-sdk/{query-expansion-CWCvbGoy.js → query-expansion-CECAX0Pe.js} +1 -1
  162. package/dist/plugin-sdk/{query-expansion-BhXha2GI.js → query-expansion-DV-ECmRb.js} +2 -2
  163. package/dist/plugin-sdk/{recorder-xWMrt--U.js → recorder-C6OpZN3o.js} +1 -1
  164. package/dist/plugin-sdk/{recorder-DccHbgBz.js → recorder-XQ8ZjG7j.js} +2 -2
  165. package/dist/plugin-sdk/{redact-CXDVzhSq.js → redact-C3T6IWmQ.js} +1 -1
  166. package/dist/plugin-sdk/{registry-B-9fRLtl.js → registry-D9-EsIYH.js} +1 -1
  167. package/dist/plugin-sdk/{replies-BNtRlug2.js → replies-BhuMuYfa.js} +11 -11
  168. package/dist/plugin-sdk/{replies-CbnkLeUl.js → replies-ClN-Aak4.js} +4 -4
  169. package/dist/{replies-DAavcLc9.js → plugin-sdk/replies-HCqRS_IF.js} +5 -5
  170. package/dist/plugin-sdk/{reply-directives-CXKYiQC1.js → reply-directives-Bn4oBJnk.js} +2 -2
  171. package/dist/plugin-sdk/{reply-directives-CKNwlk_8.js → reply-directives-C69Fd8zO.js} +1 -1
  172. package/dist/plugin-sdk/{reply-prefix-DCeyas-6.js → reply-prefix-BQ-rDIAU.js} +1 -1
  173. package/dist/{reply-prefix-C08CPcgE.js → plugin-sdk/reply-prefix-CCyygbH2.js} +1 -1
  174. package/dist/plugin-sdk/{resolve-route-CsiTWvoi.js → resolve-route-Djrs4IWv.js} +3 -3
  175. package/dist/plugin-sdk/{resolve-route-t2HJkuDx.js → resolve-route-N9oe4tGM.js} +2 -2
  176. package/dist/plugin-sdk/{runs-B0mmuxPP.js → runs-0OTO0OVX.js} +12 -12
  177. package/dist/plugin-sdk/{runs-CSaP-UMd.js → runs-DK85oFoq.js} +7 -7
  178. package/dist/plugin-sdk/{runs-ByM3uA8B.js → runs-DN-UxJ44.js} +8 -8
  179. package/dist/plugin-sdk/{send-D0UAWWai.js → send-AstP-BDn.js} +8 -8
  180. package/dist/plugin-sdk/{send-BToCKtul.js → send-C8OYq5CD.js} +10 -10
  181. package/dist/plugin-sdk/send-CMAU8Lg8.js +23 -0
  182. package/dist/plugin-sdk/{send-CbbM7dcD.js → send-CVYVctJr.js} +6 -6
  183. package/dist/plugin-sdk/{send-hdgQBd4P.js → send-CciBIiE2.js} +4 -4
  184. package/dist/plugin-sdk/{send-rQhDBwIJ.js → send-CilPGWoe.js} +8 -8
  185. package/dist/plugin-sdk/{send-CTefF3Iw.js → send-CyKQnkbd.js} +6 -6
  186. package/dist/plugin-sdk/{send-Dgf6n9kX.js → send-D3hVSNy0.js} +6 -6
  187. package/dist/plugin-sdk/{send-qUR5w2lM.js → send-D5C72eu6.js} +7 -7
  188. package/dist/plugin-sdk/{send-CY2iq9C4.js → send-DFpY65tA.js} +10 -10
  189. package/dist/plugin-sdk/{send-BwuMsQ_p.js → send-DnJb7LiP.js} +8 -8
  190. package/dist/plugin-sdk/{send-BQYyBicH.js → send-dNeIyZEN.js} +5 -5
  191. package/dist/plugin-sdk/{session-context-E8Vv0lBU.js → session-context-4IeKkzGJ.js} +2 -2
  192. package/dist/plugin-sdk/{session-meta-_XFpsAgw.js → session-meta-BlMS0pts.js} +2 -2
  193. package/dist/plugin-sdk/{session-meta-B_alDqcD.js → session-meta-pKpwf1nQ.js} +1 -1
  194. package/dist/plugin-sdk/{sessions-DGyoDRbg.js → sessions-BUjbH5K1.js} +1 -1
  195. package/dist/plugin-sdk/{sessions-CkJfRajZ.js → sessions-BfBjVuaP.js} +4 -4
  196. package/dist/plugin-sdk/{skill-commands-D5O0FXiW.js → skill-commands-Bk_STwKa.js} +4 -4
  197. package/dist/plugin-sdk/{skill-commands-DJ9gv-vK.js → skill-commands-J-ZcPvqF.js} +3 -3
  198. package/dist/plugin-sdk/{skills-ByCpoIW7.js → skills-BArFQgKX.js} +6 -6
  199. package/dist/plugin-sdk/{skills-mfK8NK3f.js → skills-W6RHTFue.js} +1 -1
  200. package/dist/plugin-sdk/{ssrf-aLKAjCHj.js → ssrf-B2UnPTf3.js} +1 -1
  201. package/dist/plugin-sdk/{store-KaVQ5gHj.js → store-D8eITlWs.js} +2 -2
  202. package/dist/plugin-sdk/{subagent-registry-DyI22dHA.js → subagent-registry-Bek3q0nu.js} +44 -44
  203. package/dist/plugin-sdk/{subsystem-DGPv0F8I.js → subsystem-Btq0amiz.js} +4 -4
  204. package/dist/plugin-sdk/{tables-CONj5xDV.js → tables-Bj_zeTwr.js} +1 -1
  205. package/dist/plugin-sdk/{tables-Dt2IrV1k.js → tables-ohryoECJ.js} +1 -1
  206. package/dist/plugin-sdk/testing.js +44 -44
  207. package/dist/plugin-sdk/{tokens-DUGBy1gM.js → tokens-mfZMXas7.js} +1 -1
  208. package/dist/plugin-sdk/{tool-loop-detection-Cl4-Vsd_.js → tool-loop-detection-CnFqoQKh.js} +1 -1
  209. package/dist/plugin-sdk/{user-run-recording-C05KbS-o.js → user-run-recording-CAAdiBWD.js} +2 -2
  210. package/dist/plugin-sdk/{user-run-recording--8aaZMPs.js → user-run-recording-DQBPNzif.js} +2 -2
  211. package/dist/plugin-sdk/{ws-C7BGsi5P.js → ws-DN6RmfyQ.js} +1 -1
  212. package/dist/plugin-sdk/{ws-BzjQAveZ.js → ws-zaFiZiYP.js} +1 -1
  213. package/dist/{program-CcLb8Psv.js → program-DYZ4XAFZ.js} +2 -2
  214. package/dist/{program-context-X8qIC1Px.js → program-context-BM_flY1J.js} +6 -6
  215. package/dist/{prompt-select-styled-NrfLylYh.js → prompt-select-styled-BFW0tf77.js} +1 -1
  216. package/dist/{prompt-select-styled-DUTH4ST5.js → prompt-select-styled-Eb9ltCzM.js} +1 -1
  217. package/dist/{proxy-env-Bw8nAERJ.js → proxy-env-DKs0W5v1.js} +1 -1
  218. package/dist/{proxy-env-DdoaBr4H.js → proxy-env-DtzLr6mZ.js} +1 -1
  219. package/dist/{pw-ai-C6ZFN6As.js → pw-ai-CEk9Jaqd.js} +13 -13
  220. package/dist/{pw-ai-CV5A9Kt_.js → pw-ai-KPNOiYzf.js} +14 -14
  221. package/dist/{qmd-manager-Bw5dnMTy.js → qmd-manager-BFUaPUn-.js} +12 -12
  222. package/dist/{qmd-manager-BZSlXT1A.js → qmd-manager-BmiJlIMN.js} +23 -23
  223. package/dist/{qmd-scope-BOfwIKTy.js → qmd-scope-CUCeRWxr.js} +1 -1
  224. package/dist/{qmd-scope-0dG63o_w.js → qmd-scope-DLLTbQwp.js} +1 -1
  225. package/dist/{query-expansion-gzgHhq68.js → query-expansion-CbOJZTFH.js} +13 -13
  226. package/dist/{query-expansion-BDAO12Ha.js → query-expansion-DLN1Vjgr.js} +11 -11
  227. package/dist/{recorder-ciGDu2oO.js → recorder-CndF3Klo.js} +2 -2
  228. package/dist/{recorder-Bp_onP2d.js → recorder-jnBdoV4s.js} +2 -2
  229. package/dist/{redact-Cp-v7ZNA.js → redact-B6sHOW29.js} +1 -1
  230. package/dist/{redact-D--orJnz.js → redact-C8xjZT-F.js} +1 -1
  231. package/dist/{register.maintenance-CFd160fT.js → register.maintenance-CNiAi_Bg.js} +5 -5
  232. package/dist/{register.maintenance-Dc0j0tvi.js → register.maintenance-Dq3k6jFc.js} +4 -4
  233. package/dist/{register.onboard-u0pMgMv4.js → register.onboard-DGBJtyFX.js} +2 -2
  234. package/dist/{register.onboard-C-lkIY7d.js → register.onboard-DqGIfQsO.js} +2 -2
  235. package/dist/{register.setup-BAiTfEey.js → register.setup-BdAQ_7gM.js} +2 -2
  236. package/dist/{register.setup-D6hviI6L.js → register.setup-Ckb9Hpks.js} +2 -2
  237. package/dist/{register.subclis-3YVvoBSB.js → register.subclis-Cn5DS2Th.js} +3 -3
  238. package/dist/{plugin-sdk/replies-CyyZdjYH.js → replies-CoEfccKv.js} +5 -5
  239. package/dist/{replies-EZyamg1p.js → replies-lKn2Mrkb.js} +5 -5
  240. package/dist/{reply-directives-B_wfvntf.js → reply-directives-BclP76MA.js} +2 -2
  241. package/dist/{reply-directives-DMPiBIx3.js → reply-directives-Djre3xI1.js} +2 -2
  242. package/dist/{reply-prefix-DLf0nmds.js → reply-prefix-BTUna5vE.js} +1 -1
  243. package/dist/{plugin-sdk/reply-prefix-DL3DiQEo.js → reply-prefix-DiyN1oc7.js} +1 -1
  244. package/dist/{resolve-route-GBqD8iPk.js → resolve-route-BmA3wi9D.js} +4 -4
  245. package/dist/{resolve-route-BP1OpZqn.js → resolve-route-ClI5pltd.js} +3 -3
  246. package/dist/{run-main-BBLzm5df.js → run-main-BYnz7Ou5.js} +3 -3
  247. package/dist/{runs-EvR8ugp4.js → runs-DffCseDM.js} +9 -9
  248. package/dist/{runs-Bf_VVVBE.js → runs-efmPtrdw.js} +8 -8
  249. package/dist/{send-C0kXNcyD.js → send-B3c56zXa.js} +8 -8
  250. package/dist/{send-B5XVAKWg.js → send-BZrEBJKt.js} +7 -7
  251. package/dist/{send-CNMPyQyQ.js → send-CLnmNoGF.js} +7 -7
  252. package/dist/{send-BVfxa93K.js → send-ChgWfhHL.js} +8 -8
  253. package/dist/{send-12uxFQQR.js → send-Co-6tb50.js} +8 -8
  254. package/dist/{send-oHqfck_E.js → send-DkHxW8Pg.js} +6 -6
  255. package/dist/{send-BCEsHNBh.js → send-NLqVlKnJ.js} +6 -6
  256. package/dist/{send-BOm8dqOB.js → send-TVImOmCV.js} +13 -13
  257. package/dist/{session-meta-BCY_pfg7.js → session-meta-CE9Oi0tA.js} +1 -1
  258. package/dist/{session-meta-C_fW_AWG.js → session-meta-DDeeNkQv.js} +1 -1
  259. package/dist/{sessions-IqyeyMXp.js → sessions-BgTvNzNv.js} +4 -4
  260. package/dist/{sessions-DODCZ4JK.js → sessions-DkSPJ2k9.js} +5 -5
  261. package/dist/{skill-commands-DYJDIogS.js → skill-commands-BOG-33Ja.js} +5 -5
  262. package/dist/{skill-commands-5VtV6o_q.js → skill-commands-K9_D6a_V.js} +7 -7
  263. package/dist/{skills-jb4bSwT6.js → skills-Ci9t7Gax.js} +4 -4
  264. package/dist/{skills-B3DYwqF5.js → skills-CrNvxe8D.js} +21 -21
  265. package/dist/{store-CsI6l-8d.js → store-B6wZFu_5.js} +7 -7
  266. package/dist/{store-DnvoAjAE.js → store-DJPbhmBq.js} +7 -7
  267. package/dist/{subsystem-BTMrlJ-R.js → subsystem-B9soUuXQ.js} +7 -7
  268. package/dist/{subsystem-DoQFckDJ.js → subsystem-cFv2jJm-.js} +71 -71
  269. package/dist/{tables-CuZTAY1e.js → tables-BaYGY_Hk.js} +1 -1
  270. package/dist/{tables-BTIafSNy.js → tables-CYp9eWuv.js} +1 -1
  271. package/dist/{tokens-C8E7C2l5.js → tokens-DwuYAzrE.js} +1 -1
  272. package/dist/{tokens-qfLiLlNv.js → tokens-KbWGDYPC.js} +1 -1
  273. package/dist/{tool-loop-detection-CiexABx1.js → tool-loop-detection-B2G2F3vq.js} +1 -1
  274. package/dist/{tool-loop-detection-4AIUOil2.js → tool-loop-detection-BwJFCGqI.js} +2 -2
  275. package/dist/{update-cli-D4CRTu-Y.js → update-cli-BFg_CRum.js} +5 -5
  276. package/dist/{update-cli-q45uqAKK.js → update-cli-BfwXa0Uk.js} +4 -4
  277. package/dist/{user-run-recording-D-7cPbdf.js → user-run-recording-B_-S5l8q.js} +2 -2
  278. package/dist/{user-run-recording-4Dhev2ED.js → user-run-recording-DIqKTo0U.js} +2 -2
  279. package/dist/{workspace-DOy2M7yN.js → workspace-D5PKyvm-.js} +26 -26
  280. package/dist/{ws-D51UDdBH.js → ws-CSU92Z2r.js} +1 -1
  281. package/dist/{ws-D916JacH.js → ws-CmKUpGwq.js} +1 -1
  282. package/extensions/acpx/package.json +1 -1
  283. package/extensions/anthropic/package.json +1 -1
  284. package/extensions/bifrost/package.json +1 -1
  285. package/extensions/bluebubbles/package.json +1 -1
  286. package/extensions/copilot-proxy/package.json +1 -1
  287. package/extensions/deepgram/package.json +1 -1
  288. package/extensions/deepinfra/package.json +1 -1
  289. package/extensions/diagnostics-otel/package.json +1 -1
  290. package/extensions/diffs/package.json +1 -1
  291. package/extensions/discord/package.json +1 -1
  292. package/extensions/dream-cycle/package.json +1 -1
  293. package/extensions/elevenlabs/package.json +1 -1
  294. package/extensions/feishu/package.json +1 -1
  295. package/extensions/gemini-search/package.json +1 -1
  296. package/extensions/google/package.json +1 -1
  297. package/extensions/google-gemini-cli-auth/package.json +1 -1
  298. package/extensions/googlechat/package.json +1 -1
  299. package/extensions/grok-search/package.json +1 -1
  300. package/extensions/groq/package.json +1 -1
  301. package/extensions/imessage/package.json +1 -1
  302. package/extensions/irc/package.json +1 -1
  303. package/extensions/kimi-search/package.json +1 -1
  304. package/extensions/kokoro/package.json +1 -1
  305. package/extensions/learning-core/package.json +1 -1
  306. package/extensions/line/package.json +1 -1
  307. package/extensions/llm-task/package.json +1 -1
  308. package/extensions/lobster/package.json +1 -1
  309. package/extensions/matrix/CHANGELOG.md +1 -1
  310. package/extensions/matrix/package.json +1 -1
  311. package/extensions/mattermost/package.json +1 -1
  312. package/extensions/memory-core/package.json +1 -1
  313. package/extensions/memory-lancedb/package.json +1 -1
  314. package/extensions/minimax/package.json +1 -1
  315. package/extensions/minimax-portal-auth/package.json +1 -1
  316. package/extensions/mistral/package.json +1 -1
  317. package/extensions/moonshot/package.json +1 -1
  318. package/extensions/msteams/CHANGELOG.md +1 -1
  319. package/extensions/msteams/package.json +1 -1
  320. package/extensions/nextcloud-talk/package.json +1 -1
  321. package/extensions/nostr/CHANGELOG.md +1 -1
  322. package/extensions/nostr/package.json +1 -1
  323. package/extensions/open-prose/package.json +1 -1
  324. package/extensions/openai/package.json +1 -1
  325. package/extensions/openai-realtime/package.json +1 -1
  326. package/extensions/openrouter/package.json +1 -1
  327. package/extensions/perplexity-search/package.json +1 -1
  328. package/extensions/searxng-search/package.json +1 -1
  329. package/extensions/signal/package.json +1 -1
  330. package/extensions/slack/package.json +1 -1
  331. package/extensions/synology-chat/package.json +1 -1
  332. package/extensions/telegram/package.json +1 -1
  333. package/extensions/tlon/package.json +1 -1
  334. package/extensions/twitch/CHANGELOG.md +1 -1
  335. package/extensions/twitch/package.json +1 -1
  336. package/extensions/ui-surfaces/package.json +1 -1
  337. package/extensions/voice-call/CHANGELOG.md +1 -1
  338. package/extensions/voice-call/package.json +1 -1
  339. package/extensions/whatsapp/package.json +1 -1
  340. package/extensions/zai/package.json +1 -1
  341. package/extensions/zalo/CHANGELOG.md +1 -1
  342. package/extensions/zalo/package.json +1 -1
  343. package/extensions/zalouser/CHANGELOG.md +1 -1
  344. package/extensions/zalouser/package.json +1 -1
  345. package/package.json +1 -1
  346. package/dist/github-copilot-token-DrVydgnY.js +0 -106
  347. package/dist/paths-BIDPYPVC.js +0 -233
  348. package/dist/plugin-sdk/agent-turn-execute-Co_96UFp.js +0 -61
  349. package/dist/plugin-sdk/deliver-5MyFMK8o.js +0 -34
  350. package/dist/plugin-sdk/manager-B9WMktLu.js +0 -14
  351. package/dist/plugin-sdk/provider-dispatcher-uLJ5yzx1.js +0 -61
  352. package/dist/plugin-sdk/send-vp7qbuoy.js +0 -23
@@ -1,70 +1,70 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
- import { $ as isBundledChannelEnabledByChannelConfig, $i as getApiKeyForModel, $n as resolveChannelGroupRequireMention, $r as listWritableExplicitTrustedSafeBinDirs, $t as recordSessionMetaFromInbound, Aa as readProcessElapsedSeconds, Ai as isCliProvider, An as normalizeChannelId$1, Ar as channelTargetSchema, At as registerPluginCommand, Bi as resolveThinkingDefault, Bn as resolveSlackBotToken, Br as replaceBufferedPluginTaskPasses, Bt as createConversationReadQuery, C as resolveIMessageRemoteAttachmentRoots, Ca as listProfilesForProvider, Ci as resolveSlackNativeStreaming, Cn as resolveGroupSessionKey, Cr as resolveSessionLockMaxHoldFromTimeout, Ct as createPluginRegistry, Da as resolveOpenClawAgentDir, Di as buildConfiguredAllowlistKeys, Dn as normalizeSignalMessagingTarget, Dt as executePluginCommand, Ea as resolveAuthStorePathForDisplay, Ei as buildAllowedModelSet, En as listChannelDocks, Et as clearPluginCommands, Fi as resolveConfiguredModelRef, Fn as normalizeStringEntries, Fr as actionHasTarget, Ft as replaceSpeechProviders, G as isPathWithinRoot, Ga as DEFAULT_MODEL, Gn as hasAnyWhatsAppAuth, Gr as setConfigOverride, Gt as closeReplacedConfiguredSessionStorageRuntime, H as AVATAR_MAX_BYTES, Ha as resolveSecretInputRef, Hn as resolveSignalAccount, Ia as coerceSecretRef, Ii as resolveDefaultModelForAgent, In as normalizeStringEntriesLower, Ir as actionRequiresTarget, It as normalizeProviderId$1, Ja as getShellPathFromLoginShell, Ji as createOllamaStreamFn, Jn as createDiscordActionGate, Jr as parseConfigPath, K as isSupportedLocalAvatarExtension, Ka as DEFAULT_PROVIDER, Ki as retryAsync, Kn as resolveWhatsAppAccount, Kr as unsetConfigOverride, Kt as commitPreparedConfiguredSessionStorageRuntimeActivation, La as hasConfiguredSecretInput, Li as resolveModelRefFromString, Ln as resolveSlackAccount, Lt as createInternalHookEvent, Mi as normalizeModelRef$2, Mn as resolveAllowlistMatchByCandidates, Mr as optionalStringEnum, Mt as getRegisteredSpeechProviders, Na as normalizeSecretInput, Ni as normalizeProviderId, Nn as normalizeAtHashSlug, Nr as stringEnum, Nt as getSpeechProvider, O as resolveExecPolicyPreset, Oa as withFileLock$1, Oi as buildModelAliasIndex, On as getChannelPlugin, Ot as listPluginCommands, Pi as parseModelRef, Pn as normalizeHyphenSlug, Pr as applyTargetToParams, Pt as isBuiltinTtsProvider, Q as applyTestPluginDefaults, Qa as resolveOwnerDisplaySetting, Qi as buildUsageWithNoCost, Qn as resolveChannelGroupPolicy, Qr as isTrustedSafeBinPath, Qt as readSessionUpdatedAt, Ri as resolveReasoningDefault, Rn as resolveSlackReplyToMode, Rr as discardBufferedPluginTaskPasses, Rt as triggerInternalHook, S as resolveIMessageAttachmentRoots, Sa as dedupeProfileIds, Si as resolveDiscordPreviewStreamMode, Sn as deriveSessionMetaPatch, Sr as acquireSessionWriteLock, St as clearRegisteredPluginApis, T as parseNonNegativeByteSize, Ta as ensureAuthProfileStore, Ti as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH, Tn as getChannelDock, Tr as readTaskWorkStates, Tt as buildPluginHealthReport, U as isAvatarDataUrl, Ua as splitTrailingAuthProfile, Un as isWhatsAppGroupJid, Ur as getConfigOverrides, Ut as requireSessionStorageRuntime, Vn as listEnabledSignalAccounts, Vr as RecoveryAdmissionError, Vt as getConversationReadQuery, W as isAvatarHttpUrl, Wa as DEFAULT_CONTEXT_TOKENS, Wn as normalizeWhatsAppTarget, Wr as resetConfigOverrides, Wt as closeConfiguredSessionStorageRuntime, X as loadPluginManifestRegistry, Xa as isTruthyEnvValue, Xi as buildAssistantMessageWithZeroUsage, Xn as resolveDiscordAccount, Xr as unsetConfigValueAtPath, Xt as loadSessionStoreFromDisk, Y as validateJsonSchemaValue, Ya as resolveShellEnvFallbackTimeoutMs, Yi as buildAssistantMessage, Yn as listEnabledDiscordAccounts, Yr as setConfigValueAtPath, Yt as loadSessionStore, Z as BUNDLED_ENABLED_BY_DEFAULT, Za as parseBooleanValue$1, Zi as buildStreamErrorAssistantMessage, Zn as normalizeDiscordToken, Zr as getTrustedSafeBinDirs, Zt as prepareConfiguredSessionStorageRuntimeActivation, _a as parseDotPath, _i as normalizeSafeBinProfileFixtures, _n as resolveSessionFilePath, _r as resolveMessageChannel, _t as getActivePluginRegistryKey, ai as splitCommandChain, an as DEFAULT_RESET_TRIGGERS, ar as deliveryContextKey, at as safeStatSync, b as isInboundPathAllowed, ba as formatCliCommand, bi as isSafeExecutableValue, br as GATEWAY_CLIENT_NAMES, bt as setActivePluginRegistry, c as loadConfig, ca as isProfileInCooldown, ci as resolveAllowlistCandidatePath, cn as setSessionRuntimeModel, cr as normalizeSessionDeliveryFields, ct as CHAT_CHANNEL_ORDER, d as readConfigFileSnapshotForWrite, da as resolveProfilesUnavailableReason, di as isDispatchWrapperExecutable, dr as isGatewayMessageChannel, dt as normalizeAnyChannelId, ea as getCustomProviderApiKey, ei as normalizeTrustedSafeBinDirs, en as refreshConfiguredSessionBindingEntry, er as resolveChannelGroupToolsPolicy, et as normalizePluginsConfig, fa as resolveApiKeyForProfile, fi as isShellWrapperExecutable, fr as isInternalMessageChannel, ft as normalizeChannelId$2, ga as isRecord$1, gi as SAFE_BIN_PROFILES, gr as resolveGatewayMessageChannel, gt as getActivePluginRegistry, ha as isNonEmptyString, hi as splitShellArgs, hn as SESSION_RUN_STORE_FILE_NAME, hr as normalizeMessageChannel, ht as getActiveGatewayPluginRegistry, ia as resolveModelAuthMode, ii as isWindowsPlatform, ir as deliveryContextFromSession, it as isPathInside, ja as resolveAuthProfileDisplayLabel, ji as modelKey, jn as formatAllowlistMatchMeta, jr as channelTargetsSchema, jt as BUILTIN_TTS_PROVIDER_IDS, ka as isPidAlive, ki as findNormalizedProviderValue, kn as listChannelPlugins, kt as matchPluginCommand, la as markAuthProfileFailure, li as resolveCommandResolutionFromArgv, ln as parseDurationMs, lr as INTERNAL_MESSAGE_CHANNEL, lt as getChatChannelMeta, m as writeConfigFile, ma as describeUnknownError$1, mi as unwrapKnownShellMultiplexerInvocation, mn as SAFE_SESSION_ID_RE, mr as listDeliverableMessageChannels, mt as resolveChannelConfigId, ni as analyzeShellCommand, nn as updateSessionStore, nt as resolveMemorySlotDecision, oa as resolveAuthProfileOrder, oi as DEFAULT_SAFE_BINS, on as mergeSessionEntry, or as mergeDeliveryContext, ot as readManifestNamespace, pa as resolveSecretRefValues, pi as unwrapKnownDispatchWrapperInvocation, pr as isMarkdownCapableMessageChannel, pt as normalizeChatChannelId, q as buildChannelAccountBindings, qa as VERSION, qi as OLLAMA_NATIVE_BASE_URL, qn as resolveIMessageAccount, qr as getConfigValueAtPath, qt as getConfiguredSessionStorageRuntime, ra as resolveEnvApiKey, ri as buildEnforcedShellCommand, rn as updateSessionStoreEntry, rr as resolveAccountEntry, rt as discoverOpenClawPlugins, sa as getSoonestCooldownExpiry, si as matchAllowlist, sn as resolveFreshSessionTotalTokens, sr as normalizeDeliveryContext, ta as requireApiKey, ti as validateSafeBinArgv, tn as updateLastRoute, tt as resolveEffectiveEnableState, u as readConfigFileSnapshot, ua as markAuthProfileUsed, ui as extractShellWrapperInlineCommand, un as parseSessionIndexRecordKey, ur as isDeliverableMessageChannel, ut as listChatChannels, v as validateConfigObjectWithPlugins, va as secretRefKey, vi as resolveSafeBinProfiles, vn as resolveSessionFilePathOptions, vr as GATEWAY_CLIENT_IDS, w as normalizeScpRemoteHost, wa as markAuthProfileGood, wi as resolveSlackStreamingMode, wn as resolveParentSessionGroupId, wr as CtxProjectionCorruptionError, wt as normalizePluginHttpPath, xa as resolveCliName, xi as mapStreamingModeToSlackLegacyDraftStreamMode, xn as resolveStorePath, xr as normalizeAccountId$1, xt as addRegisteredPluginApi, ya as runTasksWithConcurrency, yi as applyMergePatch, yn as resolveSessionTranscriptPath, yr as GATEWAY_CLIENT_MODES, yt as requireActivePluginRegistry, za as normalizeResolvedSecretInputString, zi as resolveSubagentSpawnModelSelection, zn as resolveSlackAppToken, zr as listBufferedPluginTaskPasses, zt as StorageReadAccessError } from "./config-CPcuaNsB.js";
2
+ import { $ as isBundledChannelEnabledByChannelConfig, $i as getApiKeyForModel, $n as resolveChannelGroupRequireMention, $r as listWritableExplicitTrustedSafeBinDirs, $t as recordSessionMetaFromInbound, Aa as readProcessElapsedSeconds, Ai as isCliProvider, An as normalizeChannelId$1, Ar as channelTargetSchema, At as registerPluginCommand, Bi as resolveThinkingDefault, Bn as resolveSlackBotToken, Br as replaceBufferedPluginTaskPasses, Bt as createConversationReadQuery, C as resolveIMessageRemoteAttachmentRoots, Ca as listProfilesForProvider, Ci as resolveSlackNativeStreaming, Cn as resolveGroupSessionKey, Cr as resolveSessionLockMaxHoldFromTimeout, Ct as createPluginRegistry, Da as resolveOpenClawAgentDir, Di as buildConfiguredAllowlistKeys, Dn as normalizeSignalMessagingTarget, Dt as executePluginCommand, Ea as resolveAuthStorePathForDisplay, Ei as buildAllowedModelSet, En as listChannelDocks, Et as clearPluginCommands, Fi as resolveConfiguredModelRef, Fn as normalizeStringEntries, Fr as actionHasTarget, Ft as replaceSpeechProviders, G as isPathWithinRoot, Ga as DEFAULT_MODEL, Gn as hasAnyWhatsAppAuth, Gr as setConfigOverride, Gt as closeReplacedConfiguredSessionStorageRuntime, H as AVATAR_MAX_BYTES, Ha as resolveSecretInputRef, Hn as resolveSignalAccount, Ia as coerceSecretRef, Ii as resolveDefaultModelForAgent, In as normalizeStringEntriesLower, Ir as actionRequiresTarget, It as normalizeProviderId$1, Ja as getShellPathFromLoginShell, Ji as createOllamaStreamFn, Jn as createDiscordActionGate, Jr as parseConfigPath, K as isSupportedLocalAvatarExtension, Ka as DEFAULT_PROVIDER, Ki as retryAsync, Kn as resolveWhatsAppAccount, Kr as unsetConfigOverride, Kt as commitPreparedConfiguredSessionStorageRuntimeActivation, La as hasConfiguredSecretInput, Li as resolveModelRefFromString, Ln as resolveSlackAccount, Lt as createInternalHookEvent, Mi as normalizeModelRef$2, Mn as resolveAllowlistMatchByCandidates, Mr as optionalStringEnum, Mt as getRegisteredSpeechProviders, Na as normalizeSecretInput, Ni as normalizeProviderId, Nn as normalizeAtHashSlug, Nr as stringEnum, Nt as getSpeechProvider, O as resolveExecPolicyPreset, Oa as withFileLock$1, Oi as buildModelAliasIndex, On as getChannelPlugin, Ot as listPluginCommands, Pi as parseModelRef, Pn as normalizeHyphenSlug, Pr as applyTargetToParams, Pt as isBuiltinTtsProvider, Q as applyTestPluginDefaults, Qa as resolveOwnerDisplaySetting, Qi as buildUsageWithNoCost, Qn as resolveChannelGroupPolicy, Qr as isTrustedSafeBinPath, Qt as readSessionUpdatedAt, Ri as resolveReasoningDefault, Rn as resolveSlackReplyToMode, Rr as discardBufferedPluginTaskPasses, Rt as triggerInternalHook, S as resolveIMessageAttachmentRoots, Sa as dedupeProfileIds, Si as resolveDiscordPreviewStreamMode, Sn as deriveSessionMetaPatch, Sr as acquireSessionWriteLock, St as clearRegisteredPluginApis, T as parseNonNegativeByteSize, Ta as ensureAuthProfileStore, Ti as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH, Tn as getChannelDock, Tr as readTaskWorkStates, Tt as buildPluginHealthReport, U as isAvatarDataUrl, Ua as splitTrailingAuthProfile, Un as isWhatsAppGroupJid, Ur as getConfigOverrides, Ut as requireSessionStorageRuntime, Vn as listEnabledSignalAccounts, Vr as RecoveryAdmissionError, Vt as getConversationReadQuery, W as isAvatarHttpUrl, Wa as DEFAULT_CONTEXT_TOKENS, Wn as normalizeWhatsAppTarget, Wr as resetConfigOverrides, Wt as closeConfiguredSessionStorageRuntime, X as loadPluginManifestRegistry, Xa as isTruthyEnvValue, Xi as buildAssistantMessageWithZeroUsage, Xn as resolveDiscordAccount, Xr as unsetConfigValueAtPath, Xt as loadSessionStoreFromDisk, Y as validateJsonSchemaValue, Ya as resolveShellEnvFallbackTimeoutMs, Yi as buildAssistantMessage, Yn as listEnabledDiscordAccounts, Yr as setConfigValueAtPath, Yt as loadSessionStore, Z as BUNDLED_ENABLED_BY_DEFAULT, Za as parseBooleanValue$1, Zi as buildStreamErrorAssistantMessage, Zn as normalizeDiscordToken, Zr as getTrustedSafeBinDirs, Zt as prepareConfiguredSessionStorageRuntimeActivation, _a as parseDotPath, _i as normalizeSafeBinProfileFixtures, _n as resolveSessionFilePath, _r as resolveMessageChannel, _t as getActivePluginRegistryKey, ai as splitCommandChain, an as DEFAULT_RESET_TRIGGERS, ar as deliveryContextKey, at as safeStatSync, b as isInboundPathAllowed, ba as formatCliCommand, bi as isSafeExecutableValue, br as GATEWAY_CLIENT_NAMES, bt as setActivePluginRegistry, c as loadConfig, ca as isProfileInCooldown, ci as resolveAllowlistCandidatePath, cn as setSessionRuntimeModel, cr as normalizeSessionDeliveryFields, ct as CHAT_CHANNEL_ORDER, d as readConfigFileSnapshotForWrite, da as resolveProfilesUnavailableReason, di as isDispatchWrapperExecutable, dr as isGatewayMessageChannel, dt as normalizeAnyChannelId, ea as getCustomProviderApiKey, ei as normalizeTrustedSafeBinDirs, en as refreshConfiguredSessionBindingEntry, er as resolveChannelGroupToolsPolicy, et as normalizePluginsConfig, fa as resolveApiKeyForProfile, fi as isShellWrapperExecutable, fr as isInternalMessageChannel, ft as normalizeChannelId$2, ga as isRecord$1, gi as SAFE_BIN_PROFILES, gr as resolveGatewayMessageChannel, gt as getActivePluginRegistry, ha as isNonEmptyString, hi as splitShellArgs, hn as SESSION_RUN_STORE_FILE_NAME, hr as normalizeMessageChannel, ht as getActiveGatewayPluginRegistry, ia as resolveModelAuthMode, ii as isWindowsPlatform, ir as deliveryContextFromSession, it as isPathInside, ja as resolveAuthProfileDisplayLabel, ji as modelKey, jn as formatAllowlistMatchMeta, jr as channelTargetsSchema, jt as BUILTIN_TTS_PROVIDER_IDS, ka as isPidAlive, ki as findNormalizedProviderValue, kn as listChannelPlugins, kt as matchPluginCommand, la as markAuthProfileFailure, li as resolveCommandResolutionFromArgv, ln as parseDurationMs, lr as INTERNAL_MESSAGE_CHANNEL, lt as getChatChannelMeta, m as writeConfigFile, ma as describeUnknownError$1, mi as unwrapKnownShellMultiplexerInvocation, mn as SAFE_SESSION_ID_RE, mr as listDeliverableMessageChannels, mt as resolveChannelConfigId, ni as analyzeShellCommand, nn as updateSessionStore, nt as resolveMemorySlotDecision, oa as resolveAuthProfileOrder, oi as DEFAULT_SAFE_BINS, on as mergeSessionEntry, or as mergeDeliveryContext, ot as readManifestNamespace, pa as resolveSecretRefValues, pi as unwrapKnownDispatchWrapperInvocation, pr as isMarkdownCapableMessageChannel, pt as normalizeChatChannelId, q as buildChannelAccountBindings, qa as VERSION, qi as OLLAMA_NATIVE_BASE_URL, qn as resolveIMessageAccount, qr as getConfigValueAtPath, qt as getConfiguredSessionStorageRuntime, ra as resolveEnvApiKey, ri as buildEnforcedShellCommand, rn as updateSessionStoreEntry, rr as resolveAccountEntry, rt as discoverOpenClawPlugins, sa as getSoonestCooldownExpiry, si as matchAllowlist, sn as resolveFreshSessionTotalTokens, sr as normalizeDeliveryContext, ta as requireApiKey, ti as validateSafeBinArgv, tn as updateLastRoute, tt as resolveEffectiveEnableState, u as readConfigFileSnapshot, ua as markAuthProfileUsed, ui as extractShellWrapperInlineCommand, un as parseSessionIndexRecordKey, ur as isDeliverableMessageChannel, ut as listChatChannels, v as validateConfigObjectWithPlugins, va as secretRefKey, vi as resolveSafeBinProfiles, vn as resolveSessionFilePathOptions, vr as GATEWAY_CLIENT_IDS, w as normalizeScpRemoteHost, wa as markAuthProfileGood, wi as resolveSlackStreamingMode, wn as resolveParentSessionGroupId, wr as CtxProjectionCorruptionError, wt as normalizePluginHttpPath, xa as resolveCliName, xi as mapStreamingModeToSlackLegacyDraftStreamMode, xn as resolveStorePath, xr as normalizeAccountId$1, xt as addRegisteredPluginApi, ya as runTasksWithConcurrency, yi as applyMergePatch, yn as resolveSessionTranscriptPath, yr as GATEWAY_CLIENT_MODES, yt as requireActivePluginRegistry, za as normalizeResolvedSecretInputString, zi as resolveSubagentSpawnModelSelection, zn as resolveSlackAppToken, zr as listBufferedPluginTaskPasses, zt as StorageReadAccessError } from "./config-D5tWLhng.js";
3
3
  import { _ as resolveStateDir, b as resolveRequiredHomeDir, h as resolveOAuthDir, l as resolveGatewayLockDir, o as resolveConfigPath, u as resolveGatewayPort, v as expandHomePrefix } from "./paths-C7aURmuZ.js";
4
- import { B as appendFileLog, C as shortenHomePath, D as danger, E as truncateUtf16Safe, F as isRich, G as INCLUDE_KEY, H as normalizeLogLevel, I as theme, J as isBlockedObjectKey, L as getChildLogger, M as shouldLogVerbose, N as warn, P as colorize, Q as openBoundaryFileSync, S as shortenHomeInString, T as sliceUtf16Safe, Z as openBoundaryFile, _ as normalizeE164, a as createNonExitingRuntime, b as resolveUserPath, c as registerActiveProgressLine, d as clampInt, g as isRecord$2, h as formatTerminalLink, j as setVerbose, k as logVerbose, l as unregisterActiveProgressLine, lt as isDangerousHostEnvVarName, m as escapeRegExp, mt as resolvePreferredOpenClawTmpDir, o as defaultRuntime, s as clearActiveProgressLine, st as normalizeWindowsPathForComparison, t as createSubsystemLogger, u as CONFIG_DIR, w as sleep$3, x as safeParseJson } from "./subsystem-BTMrlJ-R.js";
4
+ import { B as appendFileLog, C as shortenHomePath, D as danger, E as truncateUtf16Safe, F as isRich, G as INCLUDE_KEY, H as normalizeLogLevel, I as theme, J as isBlockedObjectKey, L as getChildLogger, M as shouldLogVerbose, N as warn, P as colorize, Q as openBoundaryFileSync, S as shortenHomeInString, T as sliceUtf16Safe, Z as openBoundaryFile, _ as normalizeE164, a as createNonExitingRuntime, b as resolveUserPath, c as registerActiveProgressLine, d as clampInt, g as isRecord$2, h as formatTerminalLink, j as setVerbose, k as logVerbose, l as unregisterActiveProgressLine, lt as isDangerousHostEnvVarName, m as escapeRegExp, mt as resolvePreferredOpenClawTmpDir, o as defaultRuntime, s as clearActiveProgressLine, st as normalizeWindowsPathForComparison, t as createSubsystemLogger, u as CONFIG_DIR, w as sleep$3, x as safeParseJson } from "./subsystem-B9soUuXQ.js";
5
5
  import { n as resolveProcessScopedMap, t as isPlainObject } from "./plain-object-Doc_YkH1.js";
6
- import { $ as resolveConfiguredCanonicalIdentity, A as logError, C as loadWorkspaceBootstrapFiles, D as runExec, E as runCommandWithTimeout, F as resolveAgentModelPrimaryValue, I as toAgentModelListLike, J as isValidAgentId, L as DEFAULT_AGENT_ID, M as logWarn, O as spawnWithFallback, P as resolveAgentModelFallbackValues, Q as resolveCanonicalIdentity, S as filterBootstrapFilesForSession, U as classifySessionKeyShape, V as buildAgentMainSessionKey, X as normalizeMainKey, Y as normalizeAgentId, Z as resolveAgentIdFromSessionKey, _ as DEFAULT_IDENTITY_FILENAME, _t as stripAgentSessionKeyPrefix, at as normalizeAccountId$2, c as resolveDefaultAgentId, d as resolveSessionAgentId, dt as isAcpSessionKey, et as resolveThreadSessionKeys, f as resolveSessionAgentIds, ft as isCronSessionKey, g as DEFAULT_HEARTBEAT_FILENAME, gt as resolveThreadParentSessionKey, h as DEFAULT_BOOTSTRAP_FILENAME, ht as parseAgentSessionKey, i as resolveAgentDir, it as DEFAULT_ACCOUNT_ID, j as logInfo, k as logDebug, l as resolveEffectiveModelFallbacks, lt as WAKE_GATE_SESSION_KEY_SEGMENT, m as DEFAULT_AGENT_WORKSPACE_DIR, mt as isSubagentSessionKey, n as listAgentIds, nt as sessionKeyAgentMatches, o as resolveAgentSkillsFilter, ot as normalizeOptionalAccountId, q as isKnownAgentMainSessionKey, r as resolveAgentConfig, rt as toAgentStoreSessionKey, s as resolveAgentWorkspaceDir, t as hasConfiguredModelFallbacks, tt as sanitizeAgentId, u as resolveRunModelFallbacksOverride, ut as getSubagentDepth, w as resolveOpenClawPackageRoot, x as ensureAgentWorkspace, z as DEVICE_SENDER_PREFIX } from "./agent-scope-BJFJ0deZ.js";
6
+ import { $ as resolveConfiguredCanonicalIdentity, A as logError, C as loadWorkspaceBootstrapFiles, D as runExec, E as runCommandWithTimeout, F as resolveAgentModelPrimaryValue, I as toAgentModelListLike, J as isValidAgentId, L as DEFAULT_AGENT_ID, M as logWarn, O as spawnWithFallback, P as resolveAgentModelFallbackValues, Q as resolveCanonicalIdentity, S as filterBootstrapFilesForSession, U as classifySessionKeyShape, V as buildAgentMainSessionKey, X as normalizeMainKey, Y as normalizeAgentId, Z as resolveAgentIdFromSessionKey, _ as DEFAULT_IDENTITY_FILENAME, _t as stripAgentSessionKeyPrefix, at as normalizeAccountId$2, c as resolveDefaultAgentId, d as resolveSessionAgentId, dt as isAcpSessionKey, et as resolveThreadSessionKeys, f as resolveSessionAgentIds, ft as isCronSessionKey, g as DEFAULT_HEARTBEAT_FILENAME, gt as resolveThreadParentSessionKey, h as DEFAULT_BOOTSTRAP_FILENAME, ht as parseAgentSessionKey, i as resolveAgentDir, it as DEFAULT_ACCOUNT_ID, j as logInfo, k as logDebug, l as resolveEffectiveModelFallbacks, lt as WAKE_GATE_SESSION_KEY_SEGMENT, m as DEFAULT_AGENT_WORKSPACE_DIR, mt as isSubagentSessionKey, n as listAgentIds, nt as sessionKeyAgentMatches, o as resolveAgentSkillsFilter, ot as normalizeOptionalAccountId, q as isKnownAgentMainSessionKey, r as resolveAgentConfig, rt as toAgentStoreSessionKey, s as resolveAgentWorkspaceDir, t as hasConfiguredModelFallbacks, tt as sanitizeAgentId, u as resolveRunModelFallbacksOverride, ut as getSubagentDepth, w as resolveOpenClawPackageRoot, x as ensureAgentWorkspace, z as DEVICE_SENDER_PREFIX } from "./agent-scope-DUbhjnHb.js";
7
7
  import { a as saveJsonFile, i as loadJsonFile, r as resolveCopilotApiToken } from "./github-copilot-token-Dk0djIhM.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-CNMPyQyQ.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-BOm8dqOB.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-SxjOzPCD.js";
12
- import { $ as buildEqualityProjection, A as eventOrder, At as resolveSessionKey, B as TOOL_RESULT_CHARS_PER_TOKEN_ESTIMATE, Bt as isPrimarySessionTranscriptFileName, C as hasHookForPlugin, Ct as parseAbsoluteTimeMs, D as resolveProviderPromptCacheKey, Dt as makeZeroUsageSnapshot, E as buildPluginTurnIdentity, Et as hasNonzeroUsage, F as PREEMPTIVE_TOOL_RESULT_COMPACTION_PLACEHOLDER, Ft as resolveThreadFlag, G as isToolResultMessage, H as estimateContextChars$1, Ht as formatMessageStamp, I as TOOL_RESULT_TEXT_WEIGHT, It as canonicalizeMainSessionAlias, J as createSessionStorageRuntimeFromConfig, K as parseInlineDirectives$1, L as truncateTextHeadTail, Lt as resolveAgentMainSessionKey, M as capToolResultContent, Mt as resolveChannelResetConfig, N as HARD_MAX_TOOL_RESULT_CHARS, Nt as resolveSessionResetPolicy, O as resolveProviderRuntimeIdentity, Ot as normalizeUsage, P as sessionLikelyHasOversizedToolResults, Pt as resolveSessionResetType, R as truncateToolResultToChars, Rt as resolveExplicitAgentSessionKey, S as initializeGlobalHookRunner, St as resolveDefaultCronStaggerMs, T as buildPluginRuntimeIdentity, Tt as deriveSessionTotalTokens, U as estimateMessageCharsCached, Ut as formatZonedTimestamp, V as createMessageCharEstimateCache, Vt as isSessionArchiveArtifactName, W as getToolResultText$1, Wt as resolveTimezone, X as validateCtxStorage, Y as resolveSessionStorageConfig, _t as CREATE_CTX_STORAGE_OWNER_SQL, a as resolveMirroredTranscriptText, at as createCurrentUserPromptEnvelope, b as getGlobalHookRunner, bt as normalizeHttpWebhookUrl, c as drainPendingPrimaryWrites, ct as buildInboundMetaSystemPrompt, d as repairToolUseResultPairing, dt as attachMessageIngress, et as deriveLegacyActorIdentity, f as sanitizeToolCallInputs, ft as getMessageIngress, g as sanitizeToolCallIdsForCloudCodeAssist, gt as resolveSenderLabel, h as canonicalToolCallIdBase, ht as stripMessageCarriers, i as appendAssistantMessageToSessionTranscript, it as sha256, j as pickLeaf, jt as evaluateSessionFreshness, k as DB_SESSION_HYDRATION_LIMIT, l as guardSessionManager, lt as collectInboundUserContext, m as stripToolResultDetails, mt as messageTime, n as parseSessionThreadInfo, nt as extractLegacyTranscriptEntryFields, o as openDbSessionManager, ot as mergePromptContributions, p as sanitizeToolUseResultPairing, pt as isRepresentableEpochMs, q as attachPgPoolErrorListeners, r as resolveAndPersistSessionFile, rt as sanitizeJsonb, s as runSerializedBySession, st as toJsonValue$1, t as extractDeliveryInfo, tt as sanitizeAppendEntry, u as openRawToolResultStash, ut as renderInboundUserContext, v as hasInterSessionUserProvenance, vt as HIDDEN_HEARTBEAT_CUSTOM_TYPE, w as promptBuildResultToContribution, wt as derivePromptTokens, x as getGlobalPluginRegistry, xt as normalizeCronStaggerMs, y as normalizeInputProvenance, yt as inferLegacyName, z as CHARS_PER_TOKEN_ESTIMATE$2, zt as resolveMainSessionKey } from "./sessions-IqyeyMXp.js";
13
- import { A as DOCS_SITE_URL, C as randomIdempotencyKey, D as gatewayErrorShapeOf, E as gatewayErrorReason, M as clearActiveCoordinationDepth, N 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 docsSiteUrl, 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-BR_K1LnT.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-CLnmNoGF.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-TVImOmCV.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-DHc4lH66.js";
12
+ import { $ as buildEqualityProjection, A as eventOrder, At as resolveSessionKey, B as TOOL_RESULT_CHARS_PER_TOKEN_ESTIMATE, Bt as isPrimarySessionTranscriptFileName, C as hasHookForPlugin, Ct as parseAbsoluteTimeMs, D as resolveProviderPromptCacheKey, Dt as makeZeroUsageSnapshot, E as buildPluginTurnIdentity, Et as hasNonzeroUsage, F as PREEMPTIVE_TOOL_RESULT_COMPACTION_PLACEHOLDER, Ft as resolveThreadFlag, G as isToolResultMessage, H as estimateContextChars$1, Ht as formatMessageStamp, I as TOOL_RESULT_TEXT_WEIGHT, It as canonicalizeMainSessionAlias, J as createSessionStorageRuntimeFromConfig, K as parseInlineDirectives$1, L as truncateTextHeadTail, Lt as resolveAgentMainSessionKey, M as capToolResultContent, Mt as resolveChannelResetConfig, N as HARD_MAX_TOOL_RESULT_CHARS, Nt as resolveSessionResetPolicy, O as resolveProviderRuntimeIdentity, Ot as normalizeUsage, P as sessionLikelyHasOversizedToolResults, Pt as resolveSessionResetType, R as truncateToolResultToChars, Rt as resolveExplicitAgentSessionKey, S as initializeGlobalHookRunner, St as resolveDefaultCronStaggerMs, T as buildPluginRuntimeIdentity, Tt as deriveSessionTotalTokens, U as estimateMessageCharsCached, Ut as formatZonedTimestamp, V as createMessageCharEstimateCache, Vt as isSessionArchiveArtifactName, W as getToolResultText$1, Wt as resolveTimezone, X as validateCtxStorage, Y as resolveSessionStorageConfig, _t as CREATE_CTX_STORAGE_OWNER_SQL, a as resolveMirroredTranscriptText, at as createCurrentUserPromptEnvelope, b as getGlobalHookRunner, bt as normalizeHttpWebhookUrl, c as drainPendingPrimaryWrites, ct as buildInboundMetaSystemPrompt, d as repairToolUseResultPairing, dt as attachMessageIngress, et as deriveLegacyActorIdentity, f as sanitizeToolCallInputs, ft as getMessageIngress, g as sanitizeToolCallIdsForCloudCodeAssist, gt as resolveSenderLabel, h as canonicalToolCallIdBase, ht as stripMessageCarriers, i as appendAssistantMessageToSessionTranscript, it as sha256, j as pickLeaf, jt as evaluateSessionFreshness, k as DB_SESSION_HYDRATION_LIMIT, l as guardSessionManager, lt as collectInboundUserContext, m as stripToolResultDetails, mt as messageTime, n as parseSessionThreadInfo, nt as extractLegacyTranscriptEntryFields, o as openDbSessionManager, ot as mergePromptContributions, p as sanitizeToolUseResultPairing, pt as isRepresentableEpochMs, q as attachPgPoolErrorListeners, r as resolveAndPersistSessionFile, rt as sanitizeJsonb, s as runSerializedBySession, st as toJsonValue$1, t as extractDeliveryInfo, tt as sanitizeAppendEntry, u as openRawToolResultStash, ut as renderInboundUserContext, v as hasInterSessionUserProvenance, vt as HIDDEN_HEARTBEAT_CUSTOM_TYPE, w as promptBuildResultToContribution, wt as derivePromptTokens, x as getGlobalPluginRegistry, xt as normalizeCronStaggerMs, y as normalizeInputProvenance, yt as inferLegacyName, z as CHARS_PER_TOKEN_ESTIMATE$2, zt as resolveMainSessionKey } from "./sessions-BgTvNzNv.js";
13
+ import { A as DOCS_SITE_URL, C as randomIdempotencyKey, D as gatewayErrorShapeOf, E as gatewayErrorReason, M as clearActiveCoordinationDepth, N 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 docsSiteUrl, 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-DVGzMWUi.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-Bp_onP2d.js";
18
- 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-BgW4rG28.js";
19
- import { B as DEFAULT_AI_SNAPSHOT_MAX_CHARS, C as ensureChromeExtensionRelayServer, M as DEFAULT_UPLOAD_DIR, N as resolveExistingPathsWithinRoot, s as resolveLsofCommandSync } from "./chrome-DNTX4D1k.js";
20
- import { r as isLoopbackHost } from "./ws-D51UDdBH.js";
21
- import { r as trimToUndefined, t as resolveGatewayCredentialsFromConfig } from "./credentials-2Kd9Ahu7.js";
22
- 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-jb4bSwT6.js";
23
- import { t as PATH_ALIAS_POLICIES } from "./path-alias-guards-B9AcbQl6.js";
24
- import { i as testRegexWithBoundedInput, r as compileSafeRegex, t as redactSensitiveText } from "./redact-D--orJnz.js";
25
- import { i as hasErrnoCode, o as readErrorName, r as formatErrorMessage } from "./errors-DnOtx_vg.js";
26
- import { a as readFileWithinRoot, c as writeFileWithinRoot, i as openFileWithinRoot, n as copyFileWithinRoot, r as createRootScopedReadFile, t as SafeOpenError } from "./fs-safe-C3qJHn62.js";
27
- import { a as isBlockedHostnameOrIp, l as normalizeHostname, n as SsrFBlockedError } from "./proxy-env-Bw8nAERJ.js";
28
- 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-BTgGxcIG.js";
29
- import { i as saveMediaBuffer, r as getMediaDir, t as MEDIA_MAX_BYTES } from "./store-CsI6l-8d.js";
17
+ import { a as getGatewayInstanceId, n as deriveSessionRunId, o as resolveSessionRunStore, r as inferSessionRunKind, t as createSessionRunRecorder } from "./recorder-jnBdoV4s.js";
18
+ 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-tQ21BnhN.js";
19
+ import { B as DEFAULT_AI_SNAPSHOT_MAX_CHARS, C as ensureChromeExtensionRelayServer, M as DEFAULT_UPLOAD_DIR, N as resolveExistingPathsWithinRoot, s as resolveLsofCommandSync } from "./chrome-DxiDoVpi.js";
20
+ import { r as isLoopbackHost } from "./ws-CSU92Z2r.js";
21
+ import { r as trimToUndefined, t as resolveGatewayCredentialsFromConfig } from "./credentials-DdZjLLBj.js";
22
+ 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-Ci9t7Gax.js";
23
+ import { t as PATH_ALIAS_POLICIES } from "./path-alias-guards-CGcezGX3.js";
24
+ import { i as testRegexWithBoundedInput, r as compileSafeRegex, t as redactSensitiveText } from "./redact-C8xjZT-F.js";
25
+ import { i as hasErrnoCode, o as readErrorName, r as formatErrorMessage } from "./errors-D8k7j4A4.js";
26
+ import { a as readFileWithinRoot, c as writeFileWithinRoot, i as openFileWithinRoot, n as copyFileWithinRoot, r as createRootScopedReadFile, t as SafeOpenError } from "./fs-safe-BH37Yhl8.js";
27
+ import { a as isBlockedHostnameOrIp, l as normalizeHostname, n as SsrFBlockedError } from "./proxy-env-DKs0W5v1.js";
28
+ 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-C54shfkj.js";
29
+ import { i as saveMediaBuffer, r as getMediaDir, t as MEDIA_MAX_BYTES } from "./store-B6wZFu_5.js";
30
30
  import { t as resolveNetworkSsrFPolicy } from "./ssrf-config-D91c_y3Q.js";
31
31
  import { n as generateSecureUuid, t as generateSecureToken } from "./secure-random-CYWiC9Ek.js";
32
- import { r as writeJsonAtomic } from "./json-files-DNv3G6Vg.js";
32
+ import { r as writeJsonAtomic } from "./json-files-C3L53Qrl.js";
33
33
  import { n as onSessionTranscriptUpdate } from "./transcript-events-DjrvdtGQ.js";
34
34
  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-BOHpxvdU.js";
35
- import { a as resolveAgentIdentity, i as resolveAckReaction, o as resolveEffectiveMessagesConfig, r as resolveResponsePrefixTemplate, s as resolveHumanDelayConfig, t as createReplyPrefixOptions } from "./reply-prefix-C08CPcgE.js";
36
- import { a as stripSilentToken, i as isSilentReplyText, n as SILENT_REPLY_TOKEN, r as isSilentReplyPrefixText, t as HEARTBEAT_TOKEN } from "./tokens-qfLiLlNv.js";
37
- 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--vAGyKdB.js";
35
+ import { a as resolveAgentIdentity, i as resolveAckReaction, o as resolveEffectiveMessagesConfig, r as resolveResponsePrefixTemplate, s as resolveHumanDelayConfig, t as createReplyPrefixOptions } from "./reply-prefix-DiyN1oc7.js";
36
+ import { a as stripSilentToken, i as isSilentReplyText, n as SILENT_REPLY_TOKEN, r as isSilentReplyPrefixText, t as HEARTBEAT_TOKEN } from "./tokens-KbWGDYPC.js";
37
+ 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-Nq6B3DZr.js";
38
38
  import { o as redactChannelCorrelation, r as getDiagnosticSessionState } from "./diagnostic-session-state-B2VnYC0m.js";
39
- 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-D_saM8MV.js";
40
- import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-C4WE3mR2.js";
41
- import { t as ensureOpenClawModelsJson } from "./models-config-DkEpc_7A.js";
42
- 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-DrIyj8a5.js";
43
- 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-CQ3KPjMe.js";
44
- import { a as getDefaultMediaLocalRoots, i as getAgentScopedMediaLocalRoots, n as fetchRemoteMedia, r as readResponseWithLimit } from "./fetch-BJ9kDOw8.js";
45
- import { a as bindAbortRelay, n as withStrictGuardedFetchMode, o as fetchWithTimeout, r as withTrustedEnvProxyGuardedFetchMode, t as fetchWithSsrFGuard } from "./fetch-guard-CRERUrFK.js";
39
+ 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-yDJ733aN.js";
40
+ import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-VTZCKDCd.js";
41
+ import { t as ensureOpenClawModelsJson } from "./models-config-TH00YNHC.js";
42
+ 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-D_-_mf4m.js";
43
+ 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-DF7kfQx2.js";
44
+ import { a as getDefaultMediaLocalRoots, i as getAgentScopedMediaLocalRoots, n as fetchRemoteMedia, r as readResponseWithLimit } from "./fetch-TzOudNO4.js";
45
+ import { a as bindAbortRelay, n as withStrictGuardedFetchMode, o as fetchWithTimeout, r as withTrustedEnvProxyGuardedFetchMode, t as fetchWithSsrFGuard } from "./fetch-guard-BZlxmZcA.js";
46
46
  import { n as isSafeFenceBreak, r as parseFenceSpans, t as findFenceSpanAt } from "./fences-CBLPPBpH.js";
47
- 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-BEuk6eCG.js";
48
- import { n as resolveMarkdownTableMode } from "./markdown-tables-Crj_Y0Qx.js";
49
- import { a as loadWebMedia, i as getDefaultLocalRoots, o as loadWebMediaRaw } from "./ir-IKFrcD2H.js";
50
- 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-C-BDBl_b.js";
51
- import { i as AGENT_LANE_SUBAGENT, r as AGENT_LANE_NESTED, t as startUserSessionRun } from "./user-run-recording-D-7cPbdf.js";
52
- import { _ as endModelCall, a as isEmbeddedPiRunActive, b as onAgentEvent, d as handleMessageEnd, f as handleMessageStart, g as createInlineCodeState, h as buildCodeSpanIndex, i as endInFlightEmbeddedAttempt, l as setActiveEmbeddedRun, m as emitEmbeddedAgentEvent, 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-Bf_VVVBE.js";
53
- 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-C9zh-qk0.js";
54
- import { A as resolveReplyToMode, C as applyReplyThreading, D as shouldSuppressMessagingToolReplies, E as isRenderablePayload, M as normalizeChannelTargetInput, N as normalizeTargetForProvider, O as shouldSuppressReasoningPayload, S as applyReplyTagsToPayload, T as filterMessagingToolMediaDuplicates, _ as resolveContextTokensForModel, a as normalizeOutboundPayloadsForJson, b as readFullTranscriptEntriesFromBackend, c as loadCombinedSessionStoreForGateway, d as throwIfAborted, f as loadChannelOutboundAdapter, g as lookupContextTokens, h as stripLeadingInboundMetadata, 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 computeBackoff, w as filterMessagingToolDuplicates, x as transcriptEntriesToMessages, y as sleepWithAbort } from "./deliver-Ap_fWjsf.js";
47
+ 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-50mU2Avf.js";
48
+ import { n as resolveMarkdownTableMode } from "./markdown-tables-BJqhUgli.js";
49
+ import { a as loadWebMedia, i as getDefaultLocalRoots, o as loadWebMediaRaw } from "./ir-Btci3Wse.js";
50
+ 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-CzTzqbi9.js";
51
+ import { i as AGENT_LANE_SUBAGENT, r as AGENT_LANE_NESTED, t as startUserSessionRun } from "./user-run-recording-B_-S5l8q.js";
52
+ import { _ as endModelCall, a as isEmbeddedPiRunActive, b as onAgentEvent, d as handleMessageEnd, f as handleMessageStart, g as createInlineCodeState, h as buildCodeSpanIndex, i as endInFlightEmbeddedAttempt, l as setActiveEmbeddedRun, m as emitEmbeddedAgentEvent, 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-efmPtrdw.js";
53
+ 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-Bqu2fu_R.js";
54
+ import { A as resolveReplyToMode, C as applyReplyThreading, D as shouldSuppressMessagingToolReplies, E as isRenderablePayload, M as normalizeChannelTargetInput, N as normalizeTargetForProvider, O as shouldSuppressReasoningPayload, S as applyReplyTagsToPayload, T as filterMessagingToolMediaDuplicates, _ as resolveContextTokensForModel, a as normalizeOutboundPayloadsForJson, b as readFullTranscriptEntriesFromBackend, c as loadCombinedSessionStoreForGateway, d as throwIfAborted, f as loadChannelOutboundAdapter, g as lookupContextTokens, h as stripLeadingInboundMetadata, 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 computeBackoff, w as filterMessagingToolDuplicates, x as transcriptEntriesToMessages, y as sleepWithAbort } from "./deliver-Cqo4_R0v.js";
55
55
  import { r as normalizeInboundTextNewlines, t as finalizeInboundContext } from "./inbound-context-CLzG994V.js";
56
- import { n as wrapFetchWithAbortSignal, t as resolveFetch } from "./fetch-DJPbv7La.js";
57
- 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-DYJDIogS.js";
58
- import { t as convertMarkdownTables } from "./tables-BTIafSNy.js";
59
- import { n as splitMediaFromOutput, t as parseReplyDirectives } from "./reply-directives-B_wfvntf.js";
60
- import { a as resolveSignalRpcContext, c as streamSignalEvents, n as sendReadReceiptSignal, o as signalCheck, r as sendTypingSignal, s as signalRpcRequest, t as sendMessageSignal } from "./send-C0kXNcyD.js";
61
- 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-oHqfck_E.js";
62
- import { n as resolveAgentRoute, t as buildAgentSessionKey } from "./resolve-route-BP1OpZqn.js";
63
- import { t as recordInboundSessionMetaSafe } from "./session-meta-BCY_pfg7.js";
64
- import { a as createReplyReferencePlanner, i as resolveSlackThreadTs, n as deliverReplies$2, t as createSlackReplyDeliveryPlan } from "./replies-DAavcLc9.js";
65
- import { n as resolveMemorySearchConfig } from "./manager-Cb_Lde6Q.js";
66
- import { m as normalizeExtraMemoryPaths, p as listMemoryFiles } from "./query-expansion-BDAO12Ha.js";
67
- import { t as isQmdScopeAllowed } from "./qmd-scope-BOfwIKTy.js";
56
+ import { n as wrapFetchWithAbortSignal, t as resolveFetch } from "./fetch-DG4n5iR6.js";
57
+ 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-BOG-33Ja.js";
58
+ import { t as convertMarkdownTables } from "./tables-CYp9eWuv.js";
59
+ import { n as splitMediaFromOutput, t as parseReplyDirectives } from "./reply-directives-BclP76MA.js";
60
+ import { a as resolveSignalRpcContext, c as streamSignalEvents, n as sendReadReceiptSignal, o as signalCheck, r as sendTypingSignal, s as signalRpcRequest, t as sendMessageSignal } from "./send-B3c56zXa.js";
61
+ 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-DkHxW8Pg.js";
62
+ import { n as resolveAgentRoute, t as buildAgentSessionKey } from "./resolve-route-ClI5pltd.js";
63
+ import { t as recordInboundSessionMetaSafe } from "./session-meta-CE9Oi0tA.js";
64
+ import { a as createReplyReferencePlanner, i as resolveSlackThreadTs, n as deliverReplies$2, t as createSlackReplyDeliveryPlan } from "./replies-CoEfccKv.js";
65
+ import { n as resolveMemorySearchConfig } from "./manager-BPk0HUHz.js";
66
+ import { m as normalizeExtraMemoryPaths, p as listMemoryFiles } from "./query-expansion-DLN1Vjgr.js";
67
+ import { t as isQmdScopeAllowed } from "./qmd-scope-CUCeRWxr.js";
68
68
  import { createRequire } from "node:module";
69
69
  import crypto$1, { createHash, createHmac, randomBytes, randomUUID } from "node:crypto";
70
70
  import fs, { existsSync, mkdirSync, mkdtempSync, promises, readFileSync, realpathSync, renameSync, rmSync, statSync, unlinkSync, writeFileSync } from "node:fs";
@@ -73,8 +73,8 @@ import * as path$1 from "node:path";
73
73
  import path, { basename, isAbsolute, join } from "node:path";
74
74
  import { inspect, isDeepStrictEqual, promisify } from "node:util";
75
75
  import JSON5 from "json5";
76
- import * as fs$2 from "node:fs/promises";
77
- import fs$1, { open } from "node:fs/promises";
76
+ import * as fs$1 from "node:fs/promises";
77
+ import fsp, { open } from "node:fs/promises";
78
78
  import { execFile, execFileSync, spawn, spawnSync } from "node:child_process";
79
79
  import { fileURLToPath } from "node:url";
80
80
  import { complete, completeSimple, createAssistantMessageEventStream, streamSimple } from "@mariozechner/pi-ai";
@@ -1144,7 +1144,7 @@ function resolveWorkspaceLane(params) {
1144
1144
  }
1145
1145
  async function pathExists(targetPath) {
1146
1146
  try {
1147
- await fs$1.access(targetPath);
1147
+ await fsp.access(targetPath);
1148
1148
  return true;
1149
1149
  } catch {
1150
1150
  return false;
@@ -1152,7 +1152,7 @@ async function pathExists(targetPath) {
1152
1152
  }
1153
1153
  async function getExistingPathState(targetPath) {
1154
1154
  try {
1155
- const stats = await fs$1.lstat(targetPath);
1155
+ const stats = await fsp.lstat(targetPath);
1156
1156
  if (stats.isSymbolicLink()) return "other";
1157
1157
  return stats.isDirectory() ? "directory" : "other";
1158
1158
  } catch {
@@ -1161,7 +1161,7 @@ async function getExistingPathState(targetPath) {
1161
1161
  }
1162
1162
  async function pathLexicallyExists(targetPath) {
1163
1163
  try {
1164
- await fs$1.lstat(targetPath);
1164
+ await fsp.lstat(targetPath);
1165
1165
  return true;
1166
1166
  } catch {
1167
1167
  return false;
@@ -1228,7 +1228,7 @@ async function resolveWorkspaceLaneForTurn(params) {
1228
1228
  const config = resolveWorkspaceLaneConfig(params.cfg, resolution.agentId);
1229
1229
  if ((config?.create ?? "on-first-message") !== "on-first-message") return resolution;
1230
1230
  const existed = pathState === "directory";
1231
- if (!existed) await fs$1.mkdir(resolution.effectiveWorkspaceDir, { recursive: true });
1231
+ if (!existed) await fsp.mkdir(resolution.effectiveWorkspaceDir, { recursive: true });
1232
1232
  for (const file of config?.copiedOnCreate ?? DEFAULT_COPIED_ON_CREATE_FILES) {
1233
1233
  const decision = await copyIfMissing({
1234
1234
  sourceRoot: resolution.personaWorkspaceDir,
@@ -6865,7 +6865,7 @@ async function imageResult(params) {
6865
6865
  }, params.label, params.imageSanitization);
6866
6866
  }
6867
6867
  async function imageResultFromFile(params) {
6868
- const buf = await fs$1.readFile(params.path);
6868
+ const buf = await fsp.readFile(params.path);
6869
6869
  const mimeType = await detectMime({ buffer: buf.slice(0, 256) }) ?? "image/png";
6870
6870
  return await imageResult({
6871
6871
  label: params.label,
@@ -7776,7 +7776,7 @@ async function resolveAgentSessionDirs(stateDir) {
7776
7776
  const agentsDir = path.join(stateDir, "agents");
7777
7777
  let entries = [];
7778
7778
  try {
7779
- entries = await fs$1.readdir(agentsDir, { withFileTypes: true });
7779
+ entries = await fsp.readdir(agentsDir, { withFileTypes: true });
7780
7780
  } catch (err) {
7781
7781
  if (err.code === "ENOENT") return [];
7782
7782
  throw err;
@@ -9965,7 +9965,7 @@ async function routeReply(params) {
9965
9965
  const resolvedReplyToId = replyToId ?? (channelId === "slack" && threadId != null && threadId !== "" ? String(threadId) : void 0);
9966
9966
  const resolvedThreadId = channelId === "slack" ? null : threadId ?? null;
9967
9967
  try {
9968
- const { deliverOutboundPayloads } = await import("./deliver-Ap_fWjsf.js").then((n) => n.n);
9968
+ const { deliverOutboundPayloads } = await import("./deliver-Cqo4_R0v.js").then((n) => n.n);
9969
9969
  const outboundSession = buildOutboundSessionContext({
9970
9970
  cfg,
9971
9971
  agentId: resolvedAgentId,
@@ -14763,7 +14763,7 @@ async function sendTranscriptEcho(params) {
14763
14763
  }
14764
14764
  const text = formatEchoTranscript(transcript, params.format ?? DEFAULT_ECHO_TRANSCRIPT_FORMAT);
14765
14765
  try {
14766
- const { deliverOutboundPayloads } = await import("./deliver-Ap_fWjsf.js").then((n) => n.n);
14766
+ const { deliverOutboundPayloads } = await import("./deliver-Cqo4_R0v.js").then((n) => n.n);
14767
14767
  await deliverOutboundPayloads({
14768
14768
  cfg,
14769
14769
  channel: normalizedChannel,
@@ -20368,7 +20368,7 @@ async function resolveSandboxWorkdir(params) {
20368
20368
  cwd: process.cwd(),
20369
20369
  root: params.sandbox.workspaceDir
20370
20370
  });
20371
- if (!(await fs$1.stat(resolved.resolved)).isDirectory()) throw new Error("workdir is not a directory");
20371
+ if (!(await fsp.stat(resolved.resolved)).isDirectory()) throw new Error("workdir is not a directory");
20372
20372
  const relative = resolved.relative ? resolved.relative.split(path.sep).join(path.posix.sep) : "";
20373
20373
  const containerWorkdir = relative ? path.posix.join(params.sandbox.containerWorkdir, relative) : params.sandbox.containerWorkdir;
20374
20374
  return {
@@ -21758,13 +21758,13 @@ async function validateScriptFileForShellBleed(params) {
21758
21758
  cwd: params.workdir,
21759
21759
  root: params.workdir
21760
21760
  });
21761
- stat = await fs$1.stat(absPath);
21761
+ stat = await fsp.stat(absPath);
21762
21762
  } catch {
21763
21763
  return;
21764
21764
  }
21765
21765
  if (!stat.isFile()) return;
21766
21766
  if (stat.size > 512 * 1024) return;
21767
- const content = await fs$1.readFile(absPath, "utf-8");
21767
+ const content = await fsp.readFile(absPath, "utf-8");
21768
21768
  const first = /\$[A-Z_][A-Z0-9_]{1,}/g.exec(content);
21769
21769
  if (first) {
21770
21770
  const idx = first.index;
@@ -34509,7 +34509,7 @@ async function createModelSelectionState(params) {
34509
34509
  }
34510
34510
  }
34511
34511
  if (sessionEntry && sessionStore && sessionKey && sessionEntry.authProfileOverride) {
34512
- const { ensureAuthProfileStore } = await import("./config-CPcuaNsB.js").then((n) => n.aa);
34512
+ const { ensureAuthProfileStore } = await import("./config-D5tWLhng.js").then((n) => n.aa);
34513
34513
  const profile = ensureAuthProfileStore(void 0, { allowKeychainPrompt: false }).profiles[sessionEntry.authProfileOverride];
34514
34514
  const providerKey = normalizeProviderId(provider);
34515
34515
  if (!profile || normalizeProviderId(profile.provider) !== providerKey) await clearSessionAuthProfileOverride({
@@ -38192,7 +38192,7 @@ async function writeUrlToFile(filePath, url, opts) {
38192
38192
  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}`);
38193
38193
  const body = res.body;
38194
38194
  if (!body) throw new Error(`failed to download ${url}: empty response body`);
38195
- const fileHandle = await fs$2.open(filePath, "w");
38195
+ const fileHandle = await fs$1.open(filePath, "w");
38196
38196
  let thrown;
38197
38197
  try {
38198
38198
  const reader = body.getReader();
@@ -38210,7 +38210,7 @@ async function writeUrlToFile(filePath, url, opts) {
38210
38210
  await fileHandle.close();
38211
38211
  }
38212
38212
  if (thrown) {
38213
- await fs$2.unlink(filePath).catch(() => {});
38213
+ await fs$1.unlink(filePath).catch(() => {});
38214
38214
  throw thrown;
38215
38215
  }
38216
38216
  } finally {
@@ -38223,7 +38223,7 @@ async function writeUrlToFile(filePath, url, opts) {
38223
38223
  }
38224
38224
  async function writeBase64ToFile(filePath, base64) {
38225
38225
  const buf = Buffer.from(base64, "base64");
38226
- await fs$2.writeFile(filePath, buf);
38226
+ await fs$1.writeFile(filePath, buf);
38227
38227
  return {
38228
38228
  path: filePath,
38229
38229
  bytes: buf.length
@@ -38308,7 +38308,7 @@ async function readJsonlFromPath(jsonlPath) {
38308
38308
  if (shouldLogVerbose()) logVerbose(`Blocked canvas jsonlPath outside allowed roots: ${resolved}`);
38309
38309
  throw new Error("jsonlPath outside allowed roots");
38310
38310
  }
38311
- const canonical = await fs$1.realpath(resolved).catch(() => resolved);
38311
+ const canonical = await fsp.realpath(resolved).catch(() => resolved);
38312
38312
  if (!isInboundPathAllowed({
38313
38313
  filePath: canonical,
38314
38314
  roots
@@ -38316,7 +38316,7 @@ async function readJsonlFromPath(jsonlPath) {
38316
38316
  if (shouldLogVerbose()) logVerbose(`Blocked canvas jsonlPath outside allowed roots: ${canonical}`);
38317
38317
  throw new Error("jsonlPath outside allowed roots");
38318
38318
  }
38319
- return await fs$1.readFile(canonical, "utf8");
38319
+ return await fsp.readFile(canonical, "utf8");
38320
38320
  }
38321
38321
  const CanvasToolSchema = Type.Object({
38322
38322
  action: stringEnum(CANVAS_ACTIONS),
@@ -39167,12 +39167,12 @@ function resolveRestartSentinelPath(env = process.env) {
39167
39167
  }
39168
39168
  async function writeRestartSentinel(payload, env = process.env) {
39169
39169
  const filePath = resolveRestartSentinelPath(env);
39170
- await fs$1.mkdir(path.dirname(filePath), { recursive: true });
39170
+ await fsp.mkdir(path.dirname(filePath), { recursive: true });
39171
39171
  const data = {
39172
39172
  version: 1,
39173
39173
  payload
39174
39174
  };
39175
- await fs$1.writeFile(filePath, `${JSON.stringify(data, null, 2)}\n`, "utf-8");
39175
+ await fsp.writeFile(filePath, `${JSON.stringify(data, null, 2)}\n`, "utf-8");
39176
39176
  return filePath;
39177
39177
  }
39178
39178
 
@@ -50498,18 +50498,18 @@ function appendImagePathsToPrompt(prompt, paths) {
50498
50498
  return `${trimmed}${trimmed ? "\n\n" : ""}${paths.join("\n")}`;
50499
50499
  }
50500
50500
  async function writeCliImages(images) {
50501
- const tempDir = await fs$1.mkdtemp(path.join(os.tmpdir(), "openclaw-cli-images-"));
50501
+ const tempDir = await fsp.mkdtemp(path.join(os.tmpdir(), "openclaw-cli-images-"));
50502
50502
  const paths = [];
50503
50503
  for (let i = 0; i < images.length; i += 1) {
50504
50504
  const image = images[i];
50505
50505
  const ext = resolveImageExtension(image.mimeType);
50506
50506
  const filePath = path.join(tempDir, `image-${i + 1}.${ext}`);
50507
50507
  const buffer = Buffer.from(image.data, "base64");
50508
- await fs$1.writeFile(filePath, buffer, { mode: 384 });
50508
+ await fsp.writeFile(filePath, buffer, { mode: 384 });
50509
50509
  paths.push(filePath);
50510
50510
  }
50511
50511
  const cleanup = async () => {
50512
- await fs$1.rm(tempDir, {
50512
+ await fsp.rm(tempDir, {
50513
50513
  recursive: true,
50514
50514
  force: true
50515
50515
  });
@@ -54026,7 +54026,7 @@ async function deliverSessionMaintenanceWarning(params) {
54026
54026
  return;
54027
54027
  }
54028
54028
  try {
54029
- const { deliverOutboundPayloads } = await import("./deliver-Ap_fWjsf.js").then((n) => n.n);
54029
+ const { deliverOutboundPayloads } = await import("./deliver-Cqo4_R0v.js").then((n) => n.n);
54030
54030
  const outboundSession = buildOutboundSessionContext({
54031
54031
  cfg: params.cfg,
54032
54032
  sessionKey: params.sessionKey
@@ -54975,7 +54975,7 @@ async function stageSandboxMedia(params) {
54975
54975
  const remoteMediaCacheDir = ctx.MediaRemoteHost ? path.join(workspaceDir, ".openclaw", "media", "remote-cache", sessionKey) : null;
54976
54976
  const effectiveWorkspaceDir = sandbox?.workspaceDir ?? remoteMediaCacheDir;
54977
54977
  if (!effectiveWorkspaceDir) return;
54978
- await fs$1.mkdir(effectiveWorkspaceDir, { recursive: true });
54978
+ await fsp.mkdir(effectiveWorkspaceDir, { recursive: true });
54979
54979
  const remoteAttachmentRoots = resolveIMessageRemoteAttachmentRoots({
54980
54980
  cfg,
54981
54981
  accountId: ctx.AccountId
@@ -55034,8 +55034,8 @@ async function stageLocalFileIntoRoot(params) {
55034
55034
  }
55035
55035
  async function stageRemoteFileIntoRoot(params) {
55036
55036
  const tmpRoot = resolvePreferredOpenClawTmpDir();
55037
- await fs$1.mkdir(tmpRoot, { recursive: true });
55038
- const tmpDir = await fs$1.mkdtemp(path.join(tmpRoot, "stage-sandbox-media-"));
55037
+ await fsp.mkdir(tmpRoot, { recursive: true });
55038
+ const tmpDir = await fsp.mkdtemp(path.join(tmpRoot, "stage-sandbox-media-"));
55039
55039
  const tmpPath = path.join(tmpDir, "download");
55040
55040
  try {
55041
55041
  await scpFile(params.remoteHost, params.remotePath, tmpPath);
@@ -55046,7 +55046,7 @@ async function stageRemoteFileIntoRoot(params) {
55046
55046
  maxBytes: params.maxBytes
55047
55047
  });
55048
55048
  } finally {
55049
- await fs$1.rm(tmpDir, {
55049
+ await fsp.rm(tmpDir, {
55050
55050
  recursive: true,
55051
55051
  force: true
55052
55052
  }).catch(() => {});
@@ -60950,7 +60950,7 @@ async function resolveDiscordPreflightAudioMentionContext(params) {
60950
60950
  let transcript;
60951
60951
  let carry;
60952
60952
  if (needsPreflightTranscription) try {
60953
- const { transcribeFirstAudio } = await import("./audio-preflight-CKxOmHZL.js");
60953
+ const { transcribeFirstAudio } = await import("./audio-preflight-Cio-wP6C.js");
60954
60954
  const uploadable = audioAttachments.filter((att) => typeof att.url === "string" && att.url.length > 0);
60955
60955
  if (uploadable.length > 0) {
60956
60956
  const preflight = await transcribeFirstAudio({
@@ -68220,19 +68220,19 @@ function createDefaultDeps() {
68220
68220
  };
68221
68221
  }),
68222
68222
  sendMessageDiscord: async (...args) => {
68223
- const { sendMessageDiscord } = await import("./send-BOm8dqOB.js").then((n) => n.t);
68223
+ const { sendMessageDiscord } = await import("./send-TVImOmCV.js").then((n) => n.t);
68224
68224
  return await sendMessageDiscord(...args);
68225
68225
  },
68226
68226
  sendMessageSlack: async (...args) => {
68227
- const { sendMessageSlack } = await import("./send-CNMPyQyQ.js").then((n) => n.n);
68227
+ const { sendMessageSlack } = await import("./send-CLnmNoGF.js").then((n) => n.n);
68228
68228
  return await sendMessageSlack(...args);
68229
68229
  },
68230
68230
  sendMessageSignal: async (...args) => {
68231
- const { sendMessageSignal } = await import("./send-C0kXNcyD.js").then((n) => n.i);
68231
+ const { sendMessageSignal } = await import("./send-B3c56zXa.js").then((n) => n.i);
68232
68232
  return await sendMessageSignal(...args);
68233
68233
  },
68234
68234
  sendMessageIMessage: async (...args) => {
68235
- const { sendMessageIMessage } = await import("./send-oHqfck_E.js").then((n) => n.n);
68235
+ const { sendMessageIMessage } = await import("./send-DkHxW8Pg.js").then((n) => n.n);
68236
68236
  return await sendMessageIMessage(...args);
68237
68237
  }
68238
68238
  };
@@ -69478,10 +69478,10 @@ function estimateDurationSeconds(pcm) {
69478
69478
  return pcm.length / (bytesPerSample * SAMPLE_RATE);
69479
69479
  }
69480
69480
  async function writeWavFile(pcm) {
69481
- const tempDir = await fs$1.mkdtemp(path.join(resolvePreferredOpenClawTmpDir(), "discord-voice-"));
69481
+ const tempDir = await fsp.mkdtemp(path.join(resolvePreferredOpenClawTmpDir(), "discord-voice-"));
69482
69482
  const filePath = path.join(tempDir, `segment-${randomUUID()}.wav`);
69483
69483
  const wav = buildWavBuffer(pcm);
69484
- await fs$1.writeFile(filePath, wav);
69484
+ await fsp.writeFile(filePath, wav);
69485
69485
  scheduleTempCleanup(tempDir);
69486
69486
  return {
69487
69487
  path: filePath,
@@ -69490,7 +69490,7 @@ async function writeWavFile(pcm) {
69490
69490
  }
69491
69491
  function scheduleTempCleanup(tempDir, delayMs = 1800 * 1e3) {
69492
69492
  setTimeout(() => {
69493
- fs$1.rm(tempDir, {
69493
+ fsp.rm(tempDir, {
69494
69494
  recursive: true,
69495
69495
  force: true
69496
69496
  }).catch((err) => {
@@ -73275,7 +73275,7 @@ async function detectBinary(name) {
73275
73275
  if (!isSafeExecutableValue(name)) return false;
73276
73276
  const resolved = name.startsWith("~") ? resolveUserPath(name) : name;
73277
73277
  if (path.isAbsolute(resolved) || resolved.startsWith(".") || resolved.includes("/") || resolved.includes("\\")) try {
73278
- await fs$1.access(resolved);
73278
+ await fsp.access(resolved);
73279
73279
  return true;
73280
73280
  } catch {
73281
73281
  return false;
@@ -73939,7 +73939,7 @@ function normalizeAllowList$1(list) {
73939
73939
  async function detectRemoteHostFromCliPath(cliPath) {
73940
73940
  try {
73941
73941
  const expanded = cliPath.startsWith("~") ? cliPath.replace(/^~/, process.env.HOME ?? "") : cliPath;
73942
- const content = await fs$1.readFile(expanded, "utf8");
73942
+ const content = await fsp.readFile(expanded, "utf8");
73943
73943
  const userHostMatch = content.match(/\bssh\b[^\n]*?\s+([a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+)/);
73944
73944
  if (userHostMatch) return userHostMatch[1];
73945
73945
  return content.match(/\bssh\b[^\n]*?\s+([a-zA-Z][a-zA-Z0-9._-]*)\s+\S*\bimsg\b/)?.[1];
@@ -80711,7 +80711,7 @@ function readSlackExternalArgMenuToken(raw) {
80711
80711
  }
80712
80712
  let commandsRegistry;
80713
80713
  async function getCommandsRegistry() {
80714
- if (!commandsRegistry) commandsRegistry = await import("./commands-registry-C-BDBl_b.js").then((n) => n.n);
80714
+ if (!commandsRegistry) commandsRegistry = await import("./commands-registry-CzTzqbi9.js").then((n) => n.n);
80715
80715
  return commandsRegistry;
80716
80716
  }
80717
80717
  function encodeSlackCommandArgValue(parts) {
@@ -81041,14 +81041,14 @@ async function registerSlackMonitorSlashCommands(params) {
81041
81041
  const channelName = channelInfo?.name;
81042
81042
  const roomLabel = channelName ? `#${channelName}` : `#${command.channel_id}`;
81043
81043
  const [{ resolveAgentRoute }, { finalizeInboundContext }, { dispatchReplyWithDispatcher }] = await Promise.all([
81044
- import("./resolve-route-BP1OpZqn.js").then((n) => n.r),
81044
+ import("./resolve-route-ClI5pltd.js").then((n) => n.r),
81045
81045
  import("./inbound-context-CLzG994V.js").then((n) => n.n),
81046
81046
  Promise.resolve().then(() => provider_dispatcher_exports)
81047
81047
  ]);
81048
81048
  const [{ resolveConversationLabel }, { createReplyPrefixOptions }, { recordInboundSessionMetaSafe }] = await Promise.all([
81049
81049
  import("./conversation-label-BkRfLUVO.js").then((n) => n.t),
81050
- import("./reply-prefix-C08CPcgE.js").then((n) => n.n),
81051
- import("./session-meta-BCY_pfg7.js").then((n) => n.n)
81050
+ import("./reply-prefix-DiyN1oc7.js").then((n) => n.n),
81051
+ import("./session-meta-CE9Oi0tA.js").then((n) => n.n)
81052
81052
  ]);
81053
81053
  const route = resolveAgentRoute({
81054
81054
  cfg,
@@ -81113,9 +81113,9 @@ async function registerSlackMonitorSlashCommands(params) {
81113
81113
  });
81114
81114
  const deliverSlashPayloads = async (replies) => {
81115
81115
  const [{ deliverSlackSlashReplies }, { resolveChunkMode, resolveChunkNewlinePacking }, { resolveMarkdownTableMode }] = await Promise.all([
81116
- import("./replies-DAavcLc9.js").then((n) => n.r),
81117
- import("./chunk-BEuk6eCG.js").then((n) => n.s),
81118
- import("./markdown-tables-Crj_Y0Qx.js").then((n) => n.t)
81116
+ import("./replies-CoEfccKv.js").then((n) => n.r),
81117
+ import("./chunk-50mU2Avf.js").then((n) => n.s),
81118
+ import("./markdown-tables-BJqhUgli.js").then((n) => n.t)
81119
81119
  ]);
81120
81120
  await deliverSlackSlashReplies({
81121
81121
  replies,
@@ -81169,7 +81169,7 @@ async function registerSlackMonitorSlashCommands(params) {
81169
81169
  let nativeCommands = [];
81170
81170
  if (nativeEnabled) {
81171
81171
  reg = await getCommandsRegistry();
81172
- const skillCommands = nativeSkillsEnabled ? (await import("./skill-commands-DYJDIogS.js").then((n) => n.a)).listSkillCommandsForAgents({ cfg }) : [];
81172
+ const skillCommands = nativeSkillsEnabled ? (await import("./skill-commands-BOG-33Ja.js").then((n) => n.a)).listSkillCommandsForAgents({ cfg }) : [];
81173
81173
  nativeCommands = reg.listNativeCommandSpecsForConfig(cfg, {
81174
81174
  skillCommands,
81175
81175
  provider: "slack"
@@ -82113,7 +82113,7 @@ async function getMemorySearchManager(params) {
82113
82113
  if (cached) return { manager: cached };
82114
82114
  }
82115
82115
  try {
82116
- const { QmdMemoryManager } = await import("./qmd-manager-BZSlXT1A.js");
82116
+ const { QmdMemoryManager } = await import("./qmd-manager-BmiJlIMN.js");
82117
82117
  const primary = await QmdMemoryManager.create({
82118
82118
  cfg: params.cfg,
82119
82119
  agentId: params.agentId,
@@ -82125,7 +82125,7 @@ async function getMemorySearchManager(params) {
82125
82125
  const wrapper = new FallbackMemoryManager({
82126
82126
  primary,
82127
82127
  fallbackFactory: async () => {
82128
- const { MemoryIndexManager } = await import("./manager-Cb_Lde6Q.js").then((n) => n.t);
82128
+ const { MemoryIndexManager } = await import("./manager-BPk0HUHz.js").then((n) => n.t);
82129
82129
  return await MemoryIndexManager.get(params);
82130
82130
  }
82131
82131
  }, () => {
@@ -82140,7 +82140,7 @@ async function getMemorySearchManager(params) {
82140
82140
  }
82141
82141
  }
82142
82142
  try {
82143
- const { MemoryIndexManager } = await import("./manager-Cb_Lde6Q.js").then((n) => n.t);
82143
+ const { MemoryIndexManager } = await import("./manager-BPk0HUHz.js").then((n) => n.t);
82144
82144
  return { manager: await MemoryIndexManager.get(params) };
82145
82145
  } catch (err) {
82146
82146
  return {
@@ -82490,7 +82490,7 @@ const LEGACY_ARCHIVE_DEFAULT_RETENTION_MS = 720 * 60 * 60 * 1e3;
82490
82490
  const log$32 = createSubsystemLogger("config/sessions/legacy-import/archive");
82491
82491
  /** SHA-256 over the file's bytes; null when the file is gone (ENOENT). Other errors propagate. */
82492
82492
  async function sourceIdentity(filePath) {
82493
- const handle = await fs$1.open(filePath, "r").catch((error) => {
82493
+ const handle = await fsp.open(filePath, "r").catch((error) => {
82494
82494
  if (error.code === "ENOENT") return null;
82495
82495
  throw error;
82496
82496
  });
@@ -82543,9 +82543,9 @@ function fallbackArchiveDest(source, archiveRoot) {
82543
82543
  async function copyVerifiedTo(sourcePath, dest, expected) {
82544
82544
  const tmp = `${dest}.tmp-${randomUUID()}`;
82545
82545
  try {
82546
- const handle = await fs$1.open(tmp, "wx", 384);
82546
+ const handle = await fsp.open(tmp, "wx", 384);
82547
82547
  try {
82548
- const sourceHandle = await fs$1.open(sourcePath, "r");
82548
+ const sourceHandle = await fsp.open(sourcePath, "r");
82549
82549
  try {
82550
82550
  const chunk = Buffer.allocUnsafe(256 * 1024);
82551
82551
  let size = 0;
@@ -82562,18 +82562,18 @@ async function copyVerifiedTo(sourcePath, dest, expected) {
82562
82562
  } finally {
82563
82563
  await handle.close();
82564
82564
  }
82565
- await fs$1.chmod(tmp, 384);
82565
+ await fsp.chmod(tmp, 384);
82566
82566
  const copied = await identityOf(tmp);
82567
82567
  if (!copied || copied.fingerprint !== expected.fingerprint) throw new Error(`legacy archive cross-device copy diverged from the imported bytes: ${dest}`);
82568
82568
  try {
82569
- await fs$1.link(tmp, dest);
82569
+ await fsp.link(tmp, dest);
82570
82570
  } catch (error) {
82571
82571
  if (error.code !== "EEXIST") throw error;
82572
82572
  const existing = await identityOf(dest);
82573
82573
  if (!existing || existing.fingerprint !== expected.fingerprint) throw new Error(`legacy archive destination exists with different content: ${dest}`, { cause: error });
82574
82574
  }
82575
82575
  } finally {
82576
- await fs$1.rm(tmp, { force: true });
82576
+ await fsp.rm(tmp, { force: true });
82577
82577
  }
82578
82578
  }
82579
82579
  /**
@@ -82589,7 +82589,7 @@ async function planLegacyArchiveDest(source, archiveRoot, expected) {
82589
82589
  const resolvedRoot = path.resolve(archiveRoot);
82590
82590
  const { dir, dest } = archivePathsFor(source, resolvedRoot);
82591
82591
  try {
82592
- await fs$1.mkdir(dir, {
82592
+ await fsp.mkdir(dir, {
82593
82593
  recursive: true,
82594
82594
  mode: 448
82595
82595
  });
@@ -82629,7 +82629,7 @@ async function archiveLegacySource(source, archiveRoot, expected) {
82629
82629
  */
82630
82630
  async function archiveLegacySourceTo(source, dest, archiveRoot, expected) {
82631
82631
  const resolvedRoot = path.resolve(archiveRoot);
82632
- await fs$1.mkdir(path.dirname(dest), {
82632
+ await fsp.mkdir(path.dirname(dest), {
82633
82633
  recursive: true,
82634
82634
  mode: 448
82635
82635
  });
@@ -82639,14 +82639,14 @@ async function archiveLegacySourceTo(source, dest, archiveRoot, expected) {
82639
82639
  const expectedIdentity = expected ?? sourceIdentityValue;
82640
82640
  if (sourceIdentityValue.fingerprint !== expectedIdentity.fingerprint) throw new Error(`legacy source changed after import; failing closed: ${source.path}`);
82641
82641
  const destInodeVerified = async (destPath) => {
82642
- const [sourceStat, destStat] = await Promise.all([fs$1.stat(source.path), fs$1.stat(destPath).catch(() => void 0)]);
82642
+ const [sourceStat, destStat] = await Promise.all([fsp.stat(source.path), fsp.stat(destPath).catch(() => void 0)]);
82643
82643
  return destStat !== void 0 && destStat.dev === sourceStat.dev && destStat.ino === sourceStat.ino;
82644
82644
  };
82645
82645
  const moveInto = async (destPath) => {
82646
82646
  let moved = false;
82647
82647
  let independentArchive = false;
82648
82648
  try {
82649
- await fs$1.link(source.path, destPath);
82649
+ await fsp.link(source.path, destPath);
82650
82650
  moved = true;
82651
82651
  } catch (error) {
82652
82652
  const code = error.code;
@@ -82654,7 +82654,7 @@ async function archiveLegacySourceTo(source, dest, archiveRoot, expected) {
82654
82654
  const existing = await identityOf(destPath);
82655
82655
  if (existing && existing.fingerprint === expectedIdentity.fingerprint) {
82656
82656
  moved = true;
82657
- const [sourceStat, destStat] = await Promise.all([fs$1.stat(source.path), fs$1.stat(destPath)]);
82657
+ const [sourceStat, destStat] = await Promise.all([fsp.stat(source.path), fsp.stat(destPath)]);
82658
82658
  independentArchive = sourceStat.dev !== destStat.dev || sourceStat.ino !== destStat.ino;
82659
82659
  } else return {
82660
82660
  moved: false,
@@ -82675,13 +82675,13 @@ async function archiveLegacySourceTo(source, dest, archiveRoot, expected) {
82675
82675
  };
82676
82676
  const outcome = await moveInto(dest);
82677
82677
  if (outcome.divergent) throw new Error(`legacy archive destination exists with different content: ${dest}`);
82678
- await fs$1.chmod(dest, 384);
82678
+ await fsp.chmod(dest, 384);
82679
82679
  if (!await destInodeVerified(dest)) {
82680
82680
  const archived = await identityOf(dest);
82681
82681
  if (!archived || archived.fingerprint !== expectedIdentity.fingerprint) throw new Error(`legacy archive verification failed: ${dest}`);
82682
82682
  }
82683
82683
  if (outcome.moved) if (outcome.independentArchive) await unlinkSourceIfUnchanged(source.path, expectedIdentity);
82684
- else await fs$1.unlink(source.path);
82684
+ else await fsp.unlink(source.path);
82685
82685
  return dest;
82686
82686
  }
82687
82687
  /**
@@ -82695,12 +82695,12 @@ async function unlinkSourceIfUnchanged(sourcePath, expected) {
82695
82695
  const current = await sourceIdentity(sourcePath);
82696
82696
  if (!current) return;
82697
82697
  if (current.fingerprint !== expected.fingerprint) throw new Error(`legacy source changed before removal; failing closed: ${sourcePath}`);
82698
- await fs$1.unlink(sourcePath);
82698
+ await fsp.unlink(sourcePath);
82699
82699
  }
82700
82700
  async function chmodDirs(dir, stopAt) {
82701
82701
  let current = dir;
82702
82702
  while (current.startsWith(stopAt) && current !== stopAt) {
82703
- await fs$1.chmod(current, 448).catch(() => void 0);
82703
+ await fsp.chmod(current, 448).catch(() => void 0);
82704
82704
  const parent = path.dirname(current);
82705
82705
  if (parent === current) return;
82706
82706
  current = parent;
@@ -82729,11 +82729,11 @@ async function purgeExpiredLegacyArchives(runtime, opts) {
82729
82729
  log$32.warn("skipping legacy archive outside the archive root", { sourcePath: receipt.sourcePath });
82730
82730
  continue;
82731
82731
  }
82732
- if (!await fs$1.stat(archivePath).then(() => true).catch((error) => {
82732
+ if (!await fsp.stat(archivePath).then(() => true).catch((error) => {
82733
82733
  if (error.code === "ENOENT") return false;
82734
82734
  throw error;
82735
82735
  })) continue;
82736
- await fs$1.rm(archivePath, { force: true });
82736
+ await fsp.rm(archivePath, { force: true });
82737
82737
  purged += 1;
82738
82738
  await pruneEmptyArchiveDirs(path.dirname(archivePath), archiveRoot);
82739
82739
  }
@@ -82744,12 +82744,12 @@ async function pruneEmptyArchiveDirs(dir, stopAt) {
82744
82744
  while (current.startsWith(stopAt + path.sep)) {
82745
82745
  let entries;
82746
82746
  try {
82747
- entries = await fs$1.readdir(current);
82747
+ entries = await fsp.readdir(current);
82748
82748
  } catch {
82749
82749
  return;
82750
82750
  }
82751
82751
  if (entries.length > 0) return;
82752
- await fs$1.rmdir(current).catch(() => void 0);
82752
+ await fsp.rmdir(current).catch(() => void 0);
82753
82753
  current = path.dirname(current);
82754
82754
  }
82755
82755
  }
@@ -83325,7 +83325,7 @@ async function admitDurableKeyMappings(registry, listKeys, opts) {
83325
83325
  await opts?.clearMappingSourcePath?.(mapping.agentId, mapping.sessionId).catch(() => void 0);
83326
83326
  continue;
83327
83327
  }
83328
- const stats = await fs$1.stat(mapping.sourcePath).catch(() => void 0);
83328
+ const stats = await fsp.stat(mapping.sourcePath).catch(() => void 0);
83329
83329
  if (!stats?.isFile()) continue;
83330
83330
  registry.admit({
83331
83331
  path: mapping.sourcePath,
@@ -83525,7 +83525,7 @@ function createLegacySourceRegistry() {
83525
83525
  if (!isSettledReceipt(receipt, source.sizeBytes)) trackPendingPath(key, source);
83526
83526
  return;
83527
83527
  }
83528
- const stats = await fs$1.stat(key).catch(() => void 0);
83528
+ const stats = await fsp.stat(key).catch(() => void 0);
83529
83529
  if (!stats?.isFile() && receipt.status !== "imported") return;
83530
83530
  admit({
83531
83531
  path: key,
@@ -84018,7 +84018,7 @@ async function claimExclusivePartial(destPath) {
84018
84018
  for (let attempt = 0; attempt < 3; attempt += 1) {
84019
84019
  const candidate = `${destPath}.${process.pid}.${randomBytes(8).toString("hex")}.partial`;
84020
84020
  try {
84021
- await (await fs$1.open(candidate, "wx", 384)).close();
84021
+ await (await fsp.open(candidate, "wx", 384)).close();
84022
84022
  return candidate;
84023
84023
  } catch (err) {
84024
84024
  if (err.code !== "EEXIST") throw err;
@@ -84037,7 +84037,7 @@ async function backupSqliteSessionDatabase(params) {
84037
84037
  const dbPath = path.resolve(params.dbPath);
84038
84038
  const destPath = path.resolve(params.destPath);
84039
84039
  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");
84040
- await fs$1.mkdir(path.dirname(destPath), {
84040
+ await fsp.mkdir(path.dirname(destPath), {
84041
84041
  recursive: true,
84042
84042
  mode: 448
84043
84043
  });
@@ -84049,14 +84049,14 @@ async function backupSqliteSessionDatabase(params) {
84049
84049
  gated: sqliteBackupTestHooks.holdWorkerAtGate === true,
84050
84050
  writableSource: false
84051
84051
  });
84052
- await fs$1.rename(partialPath, destPath);
84052
+ await fsp.rename(partialPath, destPath);
84053
84053
  } catch (err) {
84054
- await fs$1.rm(partialPath, { force: true }).catch(() => {});
84054
+ await fsp.rm(partialPath, { force: true }).catch(() => {});
84055
84055
  throw err;
84056
84056
  }
84057
84057
  return {
84058
84058
  path: destPath,
84059
- bytes: (await fs$1.stat(destPath)).size
84059
+ bytes: (await fsp.stat(destPath)).size
84060
84060
  };
84061
84061
  }
84062
84062
 
@@ -84078,7 +84078,7 @@ const INCARNATION_SELECT_SQL = "SELECT id FROM ctx_legacy_import_incarnation LIM
84078
84078
  async function readDbIncarnationId(dbPath) {
84079
84079
  let db;
84080
84080
  try {
84081
- await fs$1.stat(dbPath);
84081
+ await fsp.stat(dbPath);
84082
84082
  db = new DatabaseSync(dbPath);
84083
84083
  const row = db.prepare(INCARNATION_SELECT_SQL).get();
84084
84084
  return typeof row?.id === "string" ? row.id : void 0;
@@ -84130,7 +84130,7 @@ async function takePreImportLegacySnapshot(params) {
84130
84130
  const marked = await readSnapshotMarker(backupsDir, canonicalDbPath);
84131
84131
  if (marked) return marked;
84132
84132
  if ((await params.listReceipts()).length > 0) return;
84133
- await fs$1.mkdir(backupsDir, {
84133
+ await fsp.mkdir(backupsDir, {
84134
84134
  recursive: true,
84135
84135
  mode: 448
84136
84136
  });
@@ -84141,7 +84141,7 @@ async function takePreImportLegacySnapshot(params) {
84141
84141
  dbPath,
84142
84142
  destPath
84143
84143
  });
84144
- if (dbId !== void 0) await fs$1.writeFile(path.join(backupsDir, snapshotMarkerFile(canonicalDbPath)), `${JSON.stringify({
84144
+ if (dbId !== void 0) await fsp.writeFile(path.join(backupsDir, snapshotMarkerFile(canonicalDbPath)), `${JSON.stringify({
84145
84145
  path: backup.path,
84146
84146
  createdAt: (/* @__PURE__ */ new Date()).toISOString(),
84147
84147
  canonicalDbPath,
@@ -84159,17 +84159,17 @@ async function takePreImportLegacySnapshot(params) {
84159
84159
  */
84160
84160
  async function cleanupPartialLegacyBackups(stateDir) {
84161
84161
  const backupsDir = path.join(stateDir, "backups");
84162
- const names = await fs$1.readdir(backupsDir).catch(() => []);
84162
+ const names = await fsp.readdir(backupsDir).catch(() => []);
84163
84163
  for (const name of names) {
84164
84164
  if (!name.endsWith(".partial")) continue;
84165
- await fs$1.rm(path.join(backupsDir, name), { force: true }).catch(() => void 0);
84165
+ await fsp.rm(path.join(backupsDir, name), { force: true }).catch(() => void 0);
84166
84166
  }
84167
84167
  }
84168
84168
  async function readSnapshotMarker(backupsDir, canonicalDbPath) {
84169
84169
  const currentIncarnationId = await readDbIncarnationId(canonicalDbPath);
84170
84170
  const keyed = await readMarkerFile(path.join(backupsDir, snapshotMarkerFile(canonicalDbPath)), canonicalDbPath, currentIncarnationId);
84171
84171
  if (keyed !== void 0) return keyed;
84172
- const names = await fs$1.readdir(backupsDir).catch(() => []);
84172
+ const names = await fsp.readdir(backupsDir).catch(() => []);
84173
84173
  for (const name of names) {
84174
84174
  if (!name.startsWith(SNAPSHOT_MARKER_PREFIX) || !name.endsWith(".json")) continue;
84175
84175
  const found = await readMarkerFile(path.join(backupsDir, name), canonicalDbPath, currentIncarnationId);
@@ -84178,7 +84178,7 @@ async function readSnapshotMarker(backupsDir, canonicalDbPath) {
84178
84178
  return readMarkerFile(path.join(backupsDir, SNAPSHOT_MARKER_FILE), canonicalDbPath, currentIncarnationId);
84179
84179
  }
84180
84180
  async function readMarkerFile(markerFile, canonicalDbPath, currentIncarnationId) {
84181
- const raw = await fs$1.readFile(markerFile, "utf8").catch(() => void 0);
84181
+ const raw = await fsp.readFile(markerFile, "utf8").catch(() => void 0);
84182
84182
  if (!raw) return;
84183
84183
  try {
84184
84184
  const parsed = JSON.parse(raw);
@@ -84190,7 +84190,7 @@ async function readMarkerFile(markerFile, canonicalDbPath, currentIncarnationId)
84190
84190
  if (currentIncarnationId !== void 0 && currentIncarnationId === markerId) return markerPath;
84191
84191
  return;
84192
84192
  }
84193
- const [markerStat, dbStat] = await Promise.all([fs$1.stat(markerDbPath).catch(() => void 0), fs$1.stat(canonicalDbPath).catch(() => void 0)]);
84193
+ const [markerStat, dbStat] = await Promise.all([fsp.stat(markerDbPath).catch(() => void 0), fsp.stat(canonicalDbPath).catch(() => void 0)]);
84194
84194
  if (markerStat !== void 0 && dbStat !== void 0 ? markerStat.dev === dbStat.dev && markerStat.ino === dbStat.ino : markerDbPath === canonicalDbPath) return markerPath;
84195
84195
  }
84196
84196
  } catch {}
@@ -84456,7 +84456,7 @@ const log$24 = createSubsystemLogger("config/sessions/legacy-import/index-import
84456
84456
  async function readLegacyIndexStore(storePath) {
84457
84457
  let raw;
84458
84458
  try {
84459
- raw = await fs$1.readFile(storePath, "utf8");
84459
+ raw = await fsp.readFile(storePath, "utf8");
84460
84460
  } catch (error) {
84461
84461
  throw new Error(`legacy index source unreadable: ${storePath}`, { cause: error });
84462
84462
  }
@@ -84695,7 +84695,7 @@ async function importLegacyIndex(runtime, source, opts = {}) {
84695
84695
  actorExplicit: entry.actor !== void 0
84696
84696
  }), opts.signal);
84697
84697
  if (transcriptPath && opts.discoveredTranscripts && path.resolve(transcriptPath) !== path.resolve(source.path)) try {
84698
- const stats = await fs$1.stat(transcriptPath);
84698
+ const stats = await fsp.stat(transcriptPath);
84699
84699
  if (stats.isFile()) opts.discoveredTranscripts.push({
84700
84700
  path: transcriptPath,
84701
84701
  kind: "transcript",
@@ -84811,7 +84811,7 @@ async function loadSessionKeyOverrides(stateDir) {
84811
84811
  const filePath = path.join(stateDir, "recovery", SESSION_KEY_OVERRIDES_FILENAME);
84812
84812
  let raw;
84813
84813
  try {
84814
- raw = await fs$1.readFile(filePath, "utf8");
84814
+ raw = await fsp.readFile(filePath, "utf8");
84815
84815
  } catch (error) {
84816
84816
  if (error.code !== "ENOENT") log$22.warn("session key overrides unreadable; ignoring", { error });
84817
84817
  return /* @__PURE__ */ new Map();
@@ -86348,7 +86348,7 @@ async function resolveGatewayOwnerStatus(pid, payload, platform, port) {
86348
86348
  }
86349
86349
  async function readLockPayload(lockPath) {
86350
86350
  try {
86351
- const raw = await fs$1.readFile(lockPath, "utf8");
86351
+ const raw = await fsp.readFile(lockPath, "utf8");
86352
86352
  const parsed = JSON.parse(raw);
86353
86353
  if (typeof parsed.pid !== "number") return null;
86354
86354
  if (typeof parsed.createdAt !== "string") return null;
@@ -86733,7 +86733,7 @@ async function withMemoryManagerForAgent(params) {
86733
86733
  }
86734
86734
  async function checkReadableFile(pathname) {
86735
86735
  try {
86736
- await fs$1.access(pathname, fs.constants.R_OK);
86736
+ await fsp.access(pathname, fs.constants.R_OK);
86737
86737
  return { exists: true };
86738
86738
  } catch (err) {
86739
86739
  const code = err.code;
@@ -86768,7 +86768,7 @@ async function scanMemoryFiles(workspaceDir, extraPaths = []) {
86768
86768
  if (alt.issue) issues.push(alt.issue);
86769
86769
  const resolvedExtraPaths = normalizeExtraMemoryPaths(workspaceDir, extraPaths);
86770
86770
  for (const extraPath of resolvedExtraPaths) try {
86771
- if ((await fs$1.lstat(extraPath)).isSymbolicLink()) continue;
86771
+ if ((await fsp.lstat(extraPath)).isSymbolicLink()) continue;
86772
86772
  const extraCheck = await checkReadableFile(extraPath);
86773
86773
  if (extraCheck.issue) issues.push(extraCheck.issue);
86774
86774
  } catch (err) {
@@ -86778,7 +86778,7 @@ async function scanMemoryFiles(workspaceDir, extraPaths = []) {
86778
86778
  }
86779
86779
  let dirReadable = null;
86780
86780
  try {
86781
- await fs$1.access(memoryDir, fs.constants.R_OK);
86781
+ await fsp.access(memoryDir, fs.constants.R_OK);
86782
86782
  dirReadable = true;
86783
86783
  } catch (err) {
86784
86784
  const code = err.code;
@@ -86826,7 +86826,7 @@ async function summarizeQmdIndexArtifact(manager) {
86826
86826
  if (!dbPath) return null;
86827
86827
  let stat;
86828
86828
  try {
86829
- stat = await fs$1.stat(dbPath);
86829
+ stat = await fsp.stat(dbPath);
86830
86830
  } catch (err) {
86831
86831
  const code = err.code;
86832
86832
  if (code === "ENOENT") throw new Error(`QMD index file not found: ${shortenHomePath(dbPath)}`, { cause: err });
@@ -87305,7 +87305,7 @@ function createPluginRuntime(options = {}) {
87305
87305
  workStates: readTaskWorkStates
87306
87306
  },
87307
87307
  resolveLearningWorkspaceDir: (agentId) => resolveLearningWorkspaceDir(loadConfig(), agentId),
87308
- sessions: { startUserRun: async (params) => (await import("./user-run-recording-D-7cPbdf.js").then((n) => n.n)).startUserSessionRun(params) }
87308
+ sessions: { startUserRun: async (params) => (await import("./user-run-recording-B_-S5l8q.js").then((n) => n.n)).startUserSessionRun(params) }
87309
87309
  };
87310
87310
  Object.defineProperty(runtime, "analysis", {
87311
87311
  enumerable: true,
@@ -88222,7 +88222,7 @@ function resolvePluginWebSearchProviders(params) {
88222
88222
  //#endregion
88223
88223
  //#region src/agents/apply-patch-update.ts
88224
88224
  async function defaultReadFile(filePath) {
88225
- return fs$1.readFile(filePath, "utf8");
88225
+ return fsp.readFile(filePath, "utf8");
88226
88226
  }
88227
88227
  async function applyUpdateHunk(filePath, chunks, options) {
88228
88228
  const originalLines = (await (options?.readFile ?? defaultReadFile)(filePath).catch((err) => {
@@ -88543,7 +88543,7 @@ function resolvePatchFileOps(options) {
88543
88543
  const workspaceOnly = options.workspaceOnly !== false;
88544
88544
  return {
88545
88545
  readFile: async (filePath) => {
88546
- if (!workspaceOnly) return await fs$1.readFile(filePath, "utf8");
88546
+ if (!workspaceOnly) return await fsp.readFile(filePath, "utf8");
88547
88547
  const opened = await openBoundaryFile({
88548
88548
  absolutePath: filePath,
88549
88549
  rootPath: options.cwd,
@@ -88558,7 +88558,7 @@ function resolvePatchFileOps(options) {
88558
88558
  },
88559
88559
  writeFile: async (filePath, content) => {
88560
88560
  if (!workspaceOnly) {
88561
- await fs$1.writeFile(filePath, content, "utf8");
88561
+ await fsp.writeFile(filePath, content, "utf8");
88562
88562
  return;
88563
88563
  }
88564
88564
  const relative = toRelativeSandboxPath(options.cwd, filePath);
@@ -88569,8 +88569,8 @@ function resolvePatchFileOps(options) {
88569
88569
  encoding: "utf8"
88570
88570
  });
88571
88571
  },
88572
- remove: (filePath) => fs$1.rm(filePath),
88573
- mkdirp: (dir) => fs$1.mkdir(dir, { recursive: true }).then(() => {})
88572
+ remove: (filePath) => fsp.rm(filePath),
88573
+ mkdirp: (dir) => fsp.mkdir(dir, { recursive: true }).then(() => {})
88574
88574
  };
88575
88575
  }
88576
88576
  async function ensureDir(filePath, ops) {
@@ -88849,7 +88849,7 @@ async function recordLoopOutcome(args) {
88849
88849
  if (!args.ctx?.sessionKey) return;
88850
88850
  try {
88851
88851
  const { getDiagnosticSessionState } = await import("./diagnostic-session-state-B2VnYC0m.js").then((n) => n.n);
88852
- const { recordToolCallOutcome } = await import("./tool-loop-detection-CiexABx1.js");
88852
+ const { recordToolCallOutcome } = await import("./tool-loop-detection-B2G2F3vq.js");
88853
88853
  recordToolCallOutcome(getDiagnosticSessionState({
88854
88854
  sessionKey: args.ctx.sessionKey,
88855
88855
  sessionId: args.ctx?.agentId
@@ -88876,8 +88876,8 @@ async function runBeforeToolCallHook(args) {
88876
88876
  const params = args.params;
88877
88877
  if (args.ctx?.sessionKey) {
88878
88878
  const { getDiagnosticSessionState } = await import("./diagnostic-session-state-B2VnYC0m.js").then((n) => n.n);
88879
- const { logToolLoopAction } = await import("./diagnostic--vAGyKdB.js").then((n) => n.n);
88880
- const { detectToolCallLoop, recordToolCall } = await import("./tool-loop-detection-CiexABx1.js");
88879
+ const { logToolLoopAction } = await import("./diagnostic-Nq6B3DZr.js").then((n) => n.n);
88880
+ const { detectToolCallLoop, recordToolCall } = await import("./tool-loop-detection-B2G2F3vq.js");
88881
88881
  const sessionState = getDiagnosticSessionState({
88882
88882
  sessionKey: args.ctx.sessionKey,
88883
88883
  sessionId: args.ctx?.agentId
@@ -89095,7 +89095,7 @@ function wrapHostEditToolWithPostWriteRecovery(base, root) {
89095
89095
  if (!pathParam || !newText) throw err;
89096
89096
  try {
89097
89097
  const absolutePath = resolveHostEditPath(root, pathParam);
89098
- const content = await fs$1.readFile(absolutePath, "utf-8");
89098
+ const content = await fsp.readFile(absolutePath, "utf-8");
89099
89099
  const hasNew = content.includes(newText);
89100
89100
  const stillHasOld = oldText !== void 0 && oldText.length > 0 && content.includes(oldText);
89101
89101
  if (hasNew && !stillHasOld) return {
@@ -89566,14 +89566,14 @@ function createSandboxEditOperations(params) {
89566
89566
  }
89567
89567
  async function writeHostFile(absolutePath, content) {
89568
89568
  const resolved = path.resolve(absolutePath);
89569
- await fs$1.mkdir(path.dirname(resolved), { recursive: true });
89570
- await fs$1.writeFile(resolved, content, "utf-8");
89569
+ await fsp.mkdir(path.dirname(resolved), { recursive: true });
89570
+ await fsp.writeFile(resolved, content, "utf-8");
89571
89571
  }
89572
89572
  function createHostWriteOperations(root, options) {
89573
89573
  if (!(options?.workspaceOnly ?? false)) return {
89574
89574
  mkdir: async (dir) => {
89575
89575
  const resolved = path.resolve(dir);
89576
- await fs$1.mkdir(resolved, { recursive: true });
89576
+ await fsp.mkdir(resolved, { recursive: true });
89577
89577
  },
89578
89578
  writeFile: writeHostFile
89579
89579
  };
@@ -89586,7 +89586,7 @@ function createHostWriteOperations(root, options) {
89586
89586
  cwd: root,
89587
89587
  root
89588
89588
  });
89589
- await fs$1.mkdir(resolved, { recursive: true });
89589
+ await fsp.mkdir(resolved, { recursive: true });
89590
89590
  },
89591
89591
  writeFile: async (absolutePath, content) => {
89592
89592
  await writeFileWithinRoot({
@@ -89602,12 +89602,12 @@ function createHostEditOperations(root, options) {
89602
89602
  if (!(options?.workspaceOnly ?? false)) return {
89603
89603
  readFile: async (absolutePath) => {
89604
89604
  const resolved = path.resolve(absolutePath);
89605
- return await fs$1.readFile(resolved);
89605
+ return await fsp.readFile(resolved);
89606
89606
  },
89607
89607
  writeFile: writeHostFile,
89608
89608
  access: async (absolutePath) => {
89609
89609
  const resolved = path.resolve(absolutePath);
89610
- await fs$1.access(resolved);
89610
+ await fsp.access(resolved);
89611
89611
  }
89612
89612
  };
89613
89613
  return {
@@ -92423,7 +92423,7 @@ async function compactEmbeddedPiSessionDirect(params) {
92423
92423
  } catch (err) {
92424
92424
  return fail(describeUnknownError(err));
92425
92425
  }
92426
- await fs$1.mkdir(resolvedWorkspace, { recursive: true });
92426
+ await fsp.mkdir(resolvedWorkspace, { recursive: true });
92427
92427
  const sandboxSessionKey = params.sessionKey?.trim() || params.sessionId;
92428
92428
  const sandbox = await resolveSandboxContext({
92429
92429
  config: params.config,
@@ -92432,7 +92432,7 @@ async function compactEmbeddedPiSessionDirect(params) {
92432
92432
  workspaceLane: params.workspaceLane
92433
92433
  });
92434
92434
  const effectiveWorkspace = sandbox?.enabled ? sandbox.workspaceAccess === "rw" ? resolvedWorkspace : sandbox.workspaceDir : resolvedWorkspace;
92435
- await fs$1.mkdir(effectiveWorkspace, { recursive: true });
92435
+ await fsp.mkdir(effectiveWorkspace, { recursive: true });
92436
92436
  let restoreSkillEnv;
92437
92437
  const releaseWorkspaceCwd = acquireWorkspaceCwd(effectiveWorkspace);
92438
92438
  try {
@@ -98868,7 +98868,7 @@ async function runEmbeddedAttempt(params) {
98868
98868
  let embeddedAttemptBegun = false;
98869
98869
  const runAbortController = new AbortController();
98870
98870
  log$50.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"}`);
98871
- await fs$1.mkdir(resolvedWorkspace, { recursive: true });
98871
+ await fsp.mkdir(resolvedWorkspace, { recursive: true });
98872
98872
  const sandboxSessionKey = params.sessionKey?.trim() || params.sessionId;
98873
98873
  const toolSessionKey = params.toolSessionKey?.trim() || sandboxSessionKey;
98874
98874
  const sandbox = params.skipSandbox ? null : await resolveSandboxContext({
@@ -98878,7 +98878,7 @@ async function runEmbeddedAttempt(params) {
98878
98878
  workspaceLane: params.workspaceLane
98879
98879
  });
98880
98880
  const effectiveWorkspace = sandbox?.enabled ? sandbox.workspaceAccess === "rw" ? resolvedWorkspace : sandbox.workspaceDir : resolvedWorkspace;
98881
- await fs$1.mkdir(effectiveWorkspace, { recursive: true });
98881
+ await fsp.mkdir(effectiveWorkspace, { recursive: true });
98882
98882
  let restoreSkillEnv;
98883
98883
  const releaseWorkspaceCwd = params.skipCwdChange ? void 0 : acquireWorkspaceCwd(effectiveWorkspace);
98884
98884
  const rawToolResultStash = openRawToolResultStash(params.sessionId);
@@ -100769,7 +100769,7 @@ async function runEmbeddedPiAgent(params) {
100769
100769
  const copilotAuthRetry = authRetryPending;
100770
100770
  authRetryPending = false;
100771
100771
  attemptedThinking.add(thinkLevel);
100772
- await fs$1.mkdir(resolvedWorkspace, { recursive: true });
100772
+ await fsp.mkdir(resolvedWorkspace, { recursive: true });
100773
100773
  const prompt = provider === "anthropic" ? scrubAnthropicRefusalMagic(params.prompt) : params.prompt;
100774
100774
  const attempt = await runEmbeddedAttempt({
100775
100775
  sessionId: params.sessionId,
@@ -101653,7 +101653,7 @@ async function runModelGate(spec, ctx) {
101653
101653
  const isolatedSessionId = randomNonce;
101654
101654
  const isolatedRunId = randomNonce;
101655
101655
  const tmpBaseDir = resolvePreferredOpenClawTmpDir();
101656
- tmpDir = await fs$1.mkdtemp(path.join(tmpBaseDir, "wake-gate-"));
101656
+ tmpDir = await fsp.mkdtemp(path.join(tmpBaseDir, "wake-gate-"));
101657
101657
  const workspaceDir = tmpDir;
101658
101658
  const prompt = spec.prompt ?? DEFAULT_MODEL_PROMPT;
101659
101659
  const timeoutMs = spec.timeoutMs ?? DEFAULT_MODEL_TIMEOUT_MS;
@@ -101711,7 +101711,7 @@ async function runModelGate(spec, ctx) {
101711
101711
  log$1.warn("model gate error", { error: err instanceof Error ? err.message : String(err) });
101712
101712
  return { wake: false };
101713
101713
  } finally {
101714
- if (tmpDir) await fs$1.rm(tmpDir, {
101714
+ if (tmpDir) await fsp.rm(tmpDir, {
101715
101715
  recursive: true,
101716
101716
  force: true
101717
101717
  }).catch(() => void 0);
@@ -101941,7 +101941,7 @@ async function resolveHeartbeatPreflight(params) {
101941
101941
  const workspaceDir = resolveAgentWorkspaceDir(params.cfg, params.agentId);
101942
101942
  const heartbeatFilePath = path.join(workspaceDir, DEFAULT_HEARTBEAT_FILENAME);
101943
101943
  try {
101944
- if (isHeartbeatContentEffectivelyEmpty(await fs$1.readFile(heartbeatFilePath, "utf-8"))) return {
101944
+ if (isHeartbeatContentEffectivelyEmpty(await fsp.readFile(heartbeatFilePath, "utf-8"))) return {
101945
101945
  ...basePreflight,
101946
101946
  skipReason: "empty-heartbeat-file"
101947
101947
  };