wednesdayai 0.5.1-dev.44 → 0.5.1-dev.48

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 (305) hide show
  1. package/dist/{agent-scope-DULvzWts.js → agent-scope-XhXeu6xb.js} +18 -18
  2. package/dist/{agent-scope-CcfVK6UD.js → agent-scope-ZEYA-60U.js} +1 -1
  3. package/dist/{agent-turn-execute-D748vb-X.js → agent-turn-execute-C1y3kP_5.js} +81 -81
  4. package/dist/{agent-turn-execute-BKklRf4d.js → agent-turn-execute-C5ZDAVVQ.js} +168 -168
  5. package/dist/{agent-turn-runner-C7-mljbB.js → agent-turn-runner-D37xtlm6.js} +3 -3
  6. package/dist/{agent-turn-runner-Bwwm8Ptv.js → agent-turn-runner-DB93UP1b.js} +6 -6
  7. package/dist/{agent-turn-runner-DAC1vCsq.js → agent-turn-runner-IwG5iqHK.js} +6 -6
  8. package/dist/{api-key-rotation-7TopVjgj.js → api-key-rotation-BlMQXNFs.js} +2 -2
  9. package/dist/{api-key-rotation-DKsa-hU0.js → api-key-rotation-BwBPY9De.js} +1 -1
  10. package/dist/{api-key-rotation-BIY1IIqH.js → api-key-rotation-Cp30sEHb.js} +2 -2
  11. package/dist/{audio-preflight-DpH4ergs.js → audio-preflight-ARaM1d7_.js} +22 -22
  12. package/dist/{audio-preflight-D29ZWbr9.js → audio-preflight-B4mXS_qz.js} +24 -24
  13. package/dist/{audio-preflight-C2VkX_iV.js → audio-preflight-Ckc8iNFE.js} +14 -14
  14. package/dist/{audio-transcription-runner-BVFt-QWW.js → audio-transcription-runner-B65tBuzm.js} +8 -8
  15. package/dist/{audio-transcription-runner-B7oqNjtj.js → audio-transcription-runner-BsZZfTYv.js} +25 -25
  16. package/dist/{audio-transcription-runner-3NLGLd-v.js → audio-transcription-runner-_IywwZdc.js} +11 -11
  17. package/dist/{auth-BJQIeDr2.js → auth-BSkwykDB.js} +1 -1
  18. package/dist/build-info.json +3 -3
  19. package/dist/bundled/boot-md/handler.js +40 -40
  20. package/dist/bundled/session-journal/handler.js +40 -40
  21. package/dist/bundled/session-memory/handler.js +40 -40
  22. package/dist/{call-vUArkeDj.js → call-BfsHUEL9.js} +6 -6
  23. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  24. package/dist/{chat-content-B8sw5RV2.js → chat-content-C8SBxzVB.js} +24 -24
  25. package/dist/{chat-content-BoGoXWb0.js → chat-content-CssgdJTS.js} +15 -15
  26. package/dist/{chat-content-_y_6NRek.js → chat-content-DAFI7DwH.js} +9 -9
  27. package/dist/{chrome-BN8wz1Ia.js → chrome-BGcyqaN9.js} +6 -6
  28. package/dist/{chrome-EA2x-v7M.js → chrome-D1_Km2Py.js} +15 -15
  29. package/dist/{plugin-sdk/chrome-DL2eNcB9.js → chrome-DSOGaSkI.js} +8 -8
  30. package/dist/{chunk-Co2BBq6m.js → chunk-Bl3bFkc1.js} +3 -3
  31. package/dist/{chunk-D0gjlEAC.js → chunk-D8Ei1sgE.js} +3 -3
  32. package/dist/{chunk-CS6BGepz.js → chunk-Mk3BzTo4.js} +1 -1
  33. package/dist/{command-queue-BsREX8I6.js → command-queue-CYHqLAaZ.js} +1 -1
  34. package/dist/{command-queue-DPL0uYBf.js → command-queue-cMQsA9-X.js} +1 -1
  35. package/dist/{commands-registry-CnvFRavS.js → commands-registry-BiL5Vu_j.js} +1 -1
  36. package/dist/{commands-registry-Bpbkdz9y.js → commands-registry-CeEIPUd4.js} +2 -2
  37. package/dist/{commands-registry-BOqP8POi.js → commands-registry-md12jvN2.js} +2 -2
  38. package/dist/{config-D7E345XX.js → config-C8St6mAq.js} +26 -26
  39. package/dist/config.js +3 -3
  40. package/dist/{credentials-CNT2aFON.js → credentials-BbfhXEsJ.js} +1 -1
  41. package/dist/{credentials-ChM0kvEr.js → credentials-Du4NIj4y.js} +1 -1
  42. package/dist/{credentials-C5_Kcyy4.js → credentials-rHg5DomK.js} +1 -1
  43. package/dist/daemon-cli.js +12 -12
  44. package/dist/{deliver-DwhRsvIU.js → deliver-C2FYVz2h.js} +11 -11
  45. package/dist/{deliver-Dko24cC6.js → deliver-D8bfwcET.js} +14 -14
  46. package/dist/{deliver-DZqeAImU.js → deliver-aIctLOEP.js} +14 -14
  47. package/dist/{diagnostic-BNSZzhBp.js → diagnostic-CHel1NLR.js} +3 -3
  48. package/dist/{diagnostic-D4aQ4rt0.js → diagnostic-O1TZk8ZJ.js} +3 -3
  49. package/dist/{errors-DnOtx_vg.js → errors-0RH1PUyI.js} +1 -1
  50. package/dist/{errors-CN5_QuWi.js → errors-D8k7j4A4.js} +1 -1
  51. package/dist/{fetch-D7UiV_9w.js → fetch-B5m0TTRD.js} +7 -7
  52. package/dist/{fetch-Bd3gVJGS.js → fetch-B6JVlGQz.js} +7 -7
  53. package/dist/{fetch-BaRM29vD.js → fetch-BHAXnEtr.js} +1 -1
  54. package/dist/{fetch-DN73GB88.js → fetch-BjRFaOH-.js} +1 -1
  55. package/dist/{fetch-ABzu5_d4.js → fetch-CSjV0WJZ.js} +1 -1
  56. package/dist/{fetch-DL6b-Ers.js → fetch-DxfQJ1J0.js} +2 -2
  57. package/dist/{fetch-guard-CRXpWx9K.js → fetch-guard-BultwSpi.js} +2 -2
  58. package/dist/{fetch-guard-CWcg0pAh.js → fetch-guard-C8cHPMKd.js} +1 -1
  59. package/dist/{fetch-guard-DbhtcUTr.js → fetch-guard-pMUIU0GM.js} +2 -2
  60. package/dist/{fs-safe-Dud5ltCr.js → fs-safe-Bcqf6cqh.js} +3 -3
  61. package/dist/{fs-safe-blSJPepq.js → fs-safe-qCaN71tM.js} +25 -25
  62. package/dist/{group-c3Qh65PA.js → group-D1ystD_T.js} +7 -7
  63. package/dist/{image-ops-Df6VUynz.js → image-ops-BsxkG0xi.js} +11 -11
  64. package/dist/{image-ops-BYGvGwxN.js → image-ops-WTO9fxZR.js} +1 -1
  65. package/dist/{ir-BsScbUxk.js → ir-Bk7X_LKF.js} +2 -2
  66. package/dist/{ir-4wPQhvNz.js → ir-DURlc744.js} +8 -8
  67. package/dist/{ir-DU47VU35.js → ir-Xj0lako6.js} +5 -5
  68. package/dist/{json-files-DNv3G6Vg.js → json-files-C3L53Qrl.js} +7 -7
  69. package/dist/llm-slug-generator.js +40 -40
  70. package/dist/{manager-DoZ5_BeO.js → manager-BgcW7tpv.js} +14 -14
  71. package/dist/{manager-B_j6KDo2.js → manager-DBM4-TfE.js} +7 -7
  72. package/dist/{manager-CVHOsYvw.js → manager-LsGIUhxa.js} +4 -4
  73. package/dist/{markdown-tables-CRv466QZ.js → markdown-tables-BD3LxqeL.js} +2 -2
  74. package/dist/{markdown-tables-Dc909okk.js → markdown-tables-BxOFKkhW.js} +2 -2
  75. package/dist/{markdown-tables-BGgtMbbO.js → markdown-tables-DzCbga76.js} +1 -1
  76. package/dist/{model-selection-D8yGm_Ti.js → model-selection-C2tyJWrx.js} +1 -1
  77. package/dist/{models-config-BeE1WLnh.js → models-config-BwzDnc-Q.js} +7 -7
  78. package/dist/{models-config-BuKVDvIh.js → models-config-C6XX7gtS.js} +1 -1
  79. package/dist/{models-config-dpGU0cJa.js → models-config-m8SCbEAc.js} +2 -2
  80. package/dist/{net-0_F4C9BZ.js → net-Dy6CRuy7.js} +1 -1
  81. package/dist/{nudge-DZadiso_.js → nudge-BmokWas4.js} +7 -7
  82. package/dist/{nudge-BqkP8YTx.js → nudge-CnaEXWAF.js} +16 -16
  83. package/dist/{nudge-bi3nIppc.js → nudge-DtecrQw2.js} +10 -10
  84. package/dist/{outbound-attachment-C5ekhZcx.js → outbound-attachment-BS7qjOL4.js} +2 -2
  85. package/dist/{outbound-attachment-BnUYvMev.js → outbound-attachment-DsxhMGOu.js} +2 -2
  86. package/dist/{outbound-attachment-9QVYM11r.js → outbound-attachment-IZjJVZqu.js} +1 -1
  87. package/dist/{outbound-message-hooks-CbDkJuWL.js → outbound-message-hooks-Bme6KjMG.js} +2 -2
  88. package/dist/{outbound-message-hooks-DkLpJOdR.js → outbound-message-hooks-Cmbc19Oi.js} +4 -4
  89. package/dist/{outbound-message-hooks-D0h7Pa-R.js → outbound-message-hooks-G0rUejkg.js} +4 -4
  90. package/dist/{path-alias-guards-B9AcbQl6.js → path-alias-guards-CGcezGX3.js} +3 -3
  91. package/dist/{path-alias-guards-DDpV2Sxj.js → path-alias-guards-DC13Y2Rm.js} +1 -1
  92. package/dist/{pi-embedded-CvGEKHow.js → pi-embedded-BJ49IY-x.js} +64 -64
  93. package/dist/{pi-embedded-utils-tIZRG85-.js → pi-embedded-utils-B-YXzLOX.js} +3 -3
  94. package/dist/{pi-embedded-utils-BXjWA82e.js → pi-embedded-utils-CYtnFZHj.js} +3 -3
  95. package/dist/{pi-embedded-utils-BEQIdrgX.js → pi-embedded-utils-DsC7KqbM.js} +1 -1
  96. package/dist/{pi-model-discovery-B8gN8a3d.js → pi-model-discovery-5nUBc878.js} +1 -1
  97. package/dist/{pi-model-discovery-BxM5uNK4.js → pi-model-discovery-CIRCjjeW.js} +1 -1
  98. package/dist/{pi-model-discovery-FspRgCaT.js → pi-model-discovery-CLxFRX8Q.js} +1 -1
  99. package/dist/plugin-sdk/agent-turn-execute-rxqy1IJ0.js +61 -0
  100. package/dist/plugin-sdk/{agent-turn-runner-BgYryOLd.js → agent-turn-runner-D6v10W4M.js} +6 -6
  101. package/dist/plugin-sdk/{api-key-rotation-BKFqVhLv.js → api-key-rotation-BFEqLexA.js} +1 -1
  102. package/dist/plugin-sdk/{audio-preflight-CYWCkE99.js → audio-preflight-C0ub7Fjl.js} +14 -14
  103. package/dist/plugin-sdk/{audio-transcription-runner-CdFuLf8N.js → audio-transcription-runner-CjGXglxV.js} +8 -8
  104. package/dist/plugin-sdk/{auth-profiles-9_o8AApc.js → auth-profiles-B-4RVXfZ.js} +1 -1
  105. package/dist/plugin-sdk/{chat-content-CwXjjIMY.js → chat-content-BNX7Pzy0.js} +9 -9
  106. package/dist/{chrome-C-EhmyOo.js → plugin-sdk/chrome-Cg0gQBOQ.js} +8 -8
  107. package/dist/plugin-sdk/{chunk-D5OO0PA5.js → chunk-BnICCl2r.js} +2 -2
  108. package/dist/plugin-sdk/{command-queue-CjaBVFfL.js → command-queue-CDOrtY8K.js} +2 -2
  109. package/dist/plugin-sdk/{commands-registry-DeutyKFc.js → commands-registry-DCE_R4y0.js} +2 -2
  110. package/dist/plugin-sdk/{credentials-B7CJlMpK.js → credentials-CuwcSHGC.js} +1 -1
  111. package/dist/plugin-sdk/{deliver-DIpYSIPc.js → deliver-Ch9aZhwU.js} +11 -11
  112. package/dist/plugin-sdk/deliver-D9msQObz.js +34 -0
  113. package/dist/plugin-sdk/{diagnostic-CHfH2DLZ.js → diagnostic-DoL_a5Ag.js} +2 -2
  114. package/dist/plugin-sdk/{diagnostic-session-state-BB7PPwvz.js → diagnostic-session-state-xa_X3i6x.js} +1 -1
  115. package/dist/plugin-sdk/{fetch-BY5NV-xE.js → fetch-DwumgIiv.js} +1 -1
  116. package/dist/plugin-sdk/{fetch-BeWeSiGq.js → fetch-bCLlcizq.js} +2 -2
  117. package/dist/plugin-sdk/{fetch-guard-DzrMY5xA.js → fetch-guard-B89VGo5J.js} +1 -1
  118. package/dist/plugin-sdk/{inbound-context-W8c7TVhP.js → inbound-context-BpGAzUP-.js} +1 -1
  119. package/dist/plugin-sdk/{ir-BBs2mkTs.js → ir-DUBVCsOu.js} +2 -2
  120. package/dist/plugin-sdk/manager-D53hBP42.js +14 -0
  121. package/dist/plugin-sdk/{manager-Cf6lxna-.js → manager-D5SJyg1z.js} +4 -4
  122. package/dist/plugin-sdk/{markdown-tables-B3bAe979.js → markdown-tables-B9z3RUEA.js} +2 -2
  123. package/dist/plugin-sdk/{models-config-CwkY2p9D.js → models-config-DmXIbizG.js} +1 -1
  124. package/dist/plugin-sdk/{monitor-BklUJEzI.js → monitor-CP1gk3Bm.js} +77 -77
  125. package/dist/plugin-sdk/{nudge-DoDBSfD0.js → nudge-CHKavKrI.js} +11 -11
  126. package/dist/plugin-sdk/{outbound-attachment-CdtUPMuk.js → outbound-attachment-DBKtqTUS.js} +1 -1
  127. package/dist/plugin-sdk/{pi-embedded-utils-xqolwHfy.js → pi-embedded-utils-BhhGeJmU.js} +1 -1
  128. package/dist/plugin-sdk/{pi-model-discovery-DoXQCzDO.js → pi-model-discovery-DAdG8kKZ.js} +2 -2
  129. package/dist/plugin-sdk/provider-dispatcher-CfTRbczQ.js +61 -0
  130. package/dist/plugin-sdk/{proxy-env-B4sQKFcV.js → proxy-env-4W8_E7-5.js} +1 -1
  131. package/dist/plugin-sdk/{pw-ai-DDEuLQxa.js → pw-ai-BxiGh4_M.js} +4 -4
  132. package/dist/plugin-sdk/{qmd-manager-DJ56bAZL.js → qmd-manager-C0ftlkJ0.js} +2 -2
  133. package/dist/plugin-sdk/{query-expansion-BuDv-utU.js → query-expansion-_or1gqjm.js} +1 -1
  134. package/dist/plugin-sdk/{recorder-uiRf0m6K.js → recorder-_7KHCw0F.js} +1 -1
  135. package/dist/plugin-sdk/{registry-CjtACjoW.js → registry-B2fZdv3f.js} +1 -1
  136. package/dist/plugin-sdk/{replies-BhlAIoj0.js → replies-3qoFL0Ik.js} +4 -4
  137. package/dist/plugin-sdk/{replies-oEhTgdcr.js → replies-Bm97_zq-.js} +11 -11
  138. package/dist/plugin-sdk/{reply-directives-BuoXx89o.js → reply-directives-BxvUWxD5.js} +1 -1
  139. package/dist/plugin-sdk/{reply-prefix-DPnEN5dY.js → reply-prefix-BL_8TUpo.js} +1 -1
  140. package/dist/plugin-sdk/{resolve-route-3cSvtBX8.js → resolve-route-B2cnsn76.js} +2 -2
  141. package/dist/plugin-sdk/{runs-tFyEFKrC.js → runs-1U4vJkOV.js} +7 -7
  142. package/dist/plugin-sdk/{runs-CNgqvBS5.js → runs-D7V4bk1U.js} +12 -12
  143. package/dist/plugin-sdk/{send-BKTR2FyD.js → send--lqcW4uz.js} +4 -4
  144. package/dist/plugin-sdk/send-B9QAaMSh.js +23 -0
  145. package/dist/plugin-sdk/{send-BiE4BNeo.js → send-BCuBSBMx.js} +8 -8
  146. package/dist/plugin-sdk/{send-_6hIsJuy.js → send-BTTeLdxm.js} +6 -6
  147. package/dist/plugin-sdk/{send-NPfoV448.js → send-BdBXInWs.js} +10 -10
  148. package/dist/plugin-sdk/{send-Ci5wXhUs.js → send-C2H4l79q.js} +5 -5
  149. package/dist/plugin-sdk/{send-BNPTKRCl.js → send-Da_Bzzfq.js} +6 -6
  150. package/dist/plugin-sdk/{send-BCPBumfz.js → send-EvSbTa2T.js} +10 -10
  151. package/dist/plugin-sdk/{session-context-BaQ-vf9x.js → session-context-CLpe5Ba3.js} +2 -2
  152. package/dist/plugin-sdk/{session-meta-CEtPeCAW.js → session-meta-CDgl3Kkm.js} +2 -2
  153. package/dist/plugin-sdk/{sessions-Cq3mSm_S.js → sessions-DK6oCQOK.js} +1 -1
  154. package/dist/plugin-sdk/{skill-commands-CcTESJIj.js → skill-commands-DiGdKkfQ.js} +3 -3
  155. package/dist/plugin-sdk/{skills-CIGf4PR8.js → skills-Coq6gsYM.js} +1 -1
  156. package/dist/plugin-sdk/{subagent-registry-BH39-wLb.js → subagent-registry-6vhRKS_0.js} +44 -44
  157. package/dist/plugin-sdk/{tables-DTWhxpIg.js → tables-BwH0lnK4.js} +1 -1
  158. package/dist/plugin-sdk/testing.js +44 -44
  159. package/dist/plugin-sdk/{user-run-recording-CiolYtdZ.js → user-run-recording-x05eYKmS.js} +2 -2
  160. package/dist/plugin-sdk/{ws-JuHkwIMV.js → ws-Y4yq5bFP.js} +1 -1
  161. package/dist/{ports-Clmws_Hh.js → ports-C3fQHCab.js} +3 -3
  162. package/dist/{progress-CPxNhc04.js → progress-CGdAe0WN.js} +4 -4
  163. package/dist/{proxy-env-dRqrG-ln.js → proxy-env-B01lar7S.js} +1 -1
  164. package/dist/{proxy-env-Cj0Bgsg8.js → proxy-env-CpBOG1SR.js} +1 -1
  165. package/dist/{proxy-env-CcZo5Rvj.js → proxy-env-KBZp3sxK.js} +1 -1
  166. package/dist/{pw-ai-D5CyYslZ.js → pw-ai-C_QmGlLz.js} +4 -4
  167. package/dist/{pw-ai-Dem1TRO_.js → pw-ai-DXRkqyiz.js} +13 -13
  168. package/dist/{pw-ai-txZGlq1F.js → pw-ai-fMejPoQC.js} +11 -11
  169. package/dist/{qmd-manager-BxEMIDAD.js → qmd-manager-CzsGwBi2.js} +8 -8
  170. package/dist/{qmd-manager-CfwCcQAr.js → qmd-manager-DeSEoaIW.js} +23 -23
  171. package/dist/{qmd-manager-Bsr0upeE.js → qmd-manager-JcDm4TaV.js} +2 -2
  172. package/dist/{qmd-scope-BdurOZ05.js → qmd-scope-DPmZMzMU.js} +1 -1
  173. package/dist/{qmd-scope-Bo_hGwTh.js → qmd-scope-Da_43AK-.js} +1 -1
  174. package/dist/{query-expansion-DI7jGqRX.js → query-expansion-BBqbrwrA.js} +2 -2
  175. package/dist/{query-expansion-CvnC7tCW.js → query-expansion-DMqvaBet.js} +11 -11
  176. package/dist/{query-expansion-CY-11Ng4.js → query-expansion-DSK6kOZ1.js} +1 -1
  177. package/dist/{recorder-Bgh3e0Bb.js → recorder-Bm6iLbpO.js} +2 -2
  178. package/dist/{recorder-DarAZV54.js → recorder-C9HG73v5.js} +2 -2
  179. package/dist/{recorder-B4t2pNxf.js → recorder-DiZXBqX_.js} +1 -1
  180. package/dist/{redact-D--orJnz.js → redact-C8xjZT-F.js} +1 -1
  181. package/dist/{redact-CUgFzobf.js → redact-CoYHSFJI.js} +1 -1
  182. package/dist/{replies-4Irpbrrq.js → replies-5d6WEMkn.js} +4 -4
  183. package/dist/{replies-Dc6GVOqb.js → replies-Bqqi0vbE.js} +5 -5
  184. package/dist/{replies-CLt6uO_Y.js → replies-DGG3QzgX.js} +5 -5
  185. package/dist/{reply-directives-BZ9K9aOt.js → reply-directives-BpRcHRoT.js} +2 -2
  186. package/dist/{reply-directives-CeWgDasK.js → reply-directives-CKYXOssf.js} +1 -1
  187. package/dist/{reply-directives-MabnZ9XP.js → reply-directives-CiYi8fBw.js} +2 -2
  188. package/dist/{reply-prefix-CkxIPVPM.js → reply-prefix-98PG1Ki7.js} +1 -1
  189. package/dist/{reply-prefix-W4rq5-Rh.js → reply-prefix-BEcGW2XG.js} +1 -1
  190. package/dist/{resolve-route-D8QTP0Ba.js → resolve-route-DNyOPck0.js} +1 -1
  191. package/dist/{resolve-route-D4KpKWjY.js → resolve-route-D__NSsIF.js} +3 -3
  192. package/dist/{resolve-route-D2gpKzx7.js → resolve-route-kCeK1PnG.js} +3 -3
  193. package/dist/{runs-B1ZuRBez.js → runs-C0iRQc_F.js} +8 -8
  194. package/dist/{runs-IXbWQiaF.js → runs-DbFWkqrM.js} +5 -5
  195. package/dist/{runs-BA7oqhbL.js → runs-Z4pls7FK.js} +8 -8
  196. package/dist/{send-B19GFd-Z.js → send--M5kRasW.js} +6 -6
  197. package/dist/{send-CUSwRN-T.js → send-B-mkV3_w.js} +13 -13
  198. package/dist/{send-Iyeo_Hcl.js → send-BHcO0Aru.js} +6 -6
  199. package/dist/{send-CpTYjiqO.js → send-BsfmKipN.js} +6 -6
  200. package/dist/{send-CKsA3C8Q.js → send-DbtWZ2No.js} +8 -8
  201. package/dist/{send-DzCL2yP6.js → send-Dd4wRWhq.js} +7 -7
  202. package/dist/{send-HztE1dsh.js → send-HRB_J7pa.js} +4 -4
  203. package/dist/{send-tqPugX47.js → send-TRtDN-Da.js} +6 -6
  204. package/dist/{send-c9iMxTda.js → send-bV48rJeA.js} +8 -8
  205. package/dist/{send-Bw-KLTGk.js → send-nW_0TzgZ.js} +7 -7
  206. package/dist/{send-DHpP56-Y.js → send-nXTQsLrv.js} +8 -8
  207. package/dist/{send-CgNLbhmB.js → send-wcJqiYt_.js} +5 -5
  208. package/dist/{session-meta--JsYAyya.js → session-meta-D9pWrAgN.js} +1 -1
  209. package/dist/{session-meta-4unJpfHa.js → session-meta-Dek_4XcX.js} +1 -1
  210. package/dist/{session-meta-1ufiCO9g.js → session-meta-DlRRpvJp.js} +1 -1
  211. package/dist/{sessions-Cs4D1U17.js → sessions-Bl0b35sU.js} +4 -4
  212. package/dist/{sessions-DZTUsPsP.js → sessions-CzUTvoXK.js} +1 -1
  213. package/dist/{sessions-CzSCMD0M.js → sessions-DgF-TKoR.js} +4 -4
  214. package/dist/{skill-commands-B_Tcfb-O.js → skill-commands-BQcYbtPM.js} +5 -5
  215. package/dist/{skill-commands-CaTXs4fT.js → skill-commands-Bc0uYZN4.js} +2 -2
  216. package/dist/{skill-commands-CF3aUDWn.js → skill-commands-DctQTJw4.js} +4 -4
  217. package/dist/{skills-BDZw1iZ3.js → skills-BXe5JEVp.js} +6 -6
  218. package/dist/{skills-BnRaKZVE.js → skills-DSEJ9TJa.js} +4 -4
  219. package/dist/{skills-CVDxAodZ.js → skills-DsmuWAV9.js} +1 -1
  220. package/dist/{store-Cj8CEQfL.js → store-D337G2RQ.js} +3 -3
  221. package/dist/{store-BFVWJvSJ.js → store-TSGh1Q6I.js} +8 -8
  222. package/dist/{subsystem-BTMrlJ-R.js → subsystem-B9soUuXQ.js} +7 -7
  223. package/dist/{subsystem-BntNuBAj.js → subsystem-DY5Ww-lX.js} +4 -4
  224. package/dist/{tables-DkRD4akB.js → tables-B8mkmRMC.js} +1 -1
  225. package/dist/{tables-Dy6doVa0.js → tables-CR0_AJTg.js} +1 -1
  226. package/dist/{tables-BX-76dIl.js → tables-DHLC9Fdd.js} +1 -1
  227. package/dist/{tokens-qfLiLlNv.js → tokens-1cA46jIW.js} +1 -1
  228. package/dist/{tokens-Bsyd1rxM.js → tokens-KbWGDYPC.js} +1 -1
  229. package/dist/{tool-loop-detection-CiexABx1.js → tool-loop-detection-B2G2F3vq.js} +1 -1
  230. package/dist/{tool-loop-detection-CurLYMEW.js → tool-loop-detection-CAaJBVkR.js} +1 -1
  231. package/dist/{user-run-recording-BTjOSPH8.js → user-run-recording-DZAbAydi.js} +2 -2
  232. package/dist/{user-run-recording-D8MTR5yF.js → user-run-recording-_gs8p2DT.js} +1 -1
  233. package/dist/{user-run-recording-B6PqDezg.js → user-run-recording-adYvWzsA.js} +2 -2
  234. package/dist/{ws-BdQ780jI.js → ws-CHokDDk3.js} +1 -1
  235. package/dist/{ws-DD3MWZdU.js → ws-DySeXwmc.js} +1 -1
  236. package/extensions/acpx/package.json +1 -1
  237. package/extensions/anthropic/package.json +1 -1
  238. package/extensions/bifrost/package.json +1 -1
  239. package/extensions/bluebubbles/package.json +1 -1
  240. package/extensions/copilot-proxy/package.json +1 -1
  241. package/extensions/deepgram/package.json +1 -1
  242. package/extensions/deepinfra/package.json +1 -1
  243. package/extensions/diagnostics-otel/package.json +1 -1
  244. package/extensions/diffs/package.json +1 -1
  245. package/extensions/discord/package.json +1 -1
  246. package/extensions/dream-cycle/package.json +1 -1
  247. package/extensions/elevenlabs/package.json +1 -1
  248. package/extensions/feishu/package.json +1 -1
  249. package/extensions/gemini-search/package.json +1 -1
  250. package/extensions/google/package.json +1 -1
  251. package/extensions/google-gemini-cli-auth/package.json +1 -1
  252. package/extensions/googlechat/package.json +1 -1
  253. package/extensions/grok-search/package.json +1 -1
  254. package/extensions/groq/package.json +1 -1
  255. package/extensions/identity-oidc/package.json +1 -1
  256. package/extensions/imessage/package.json +1 -1
  257. package/extensions/irc/package.json +1 -1
  258. package/extensions/kimi-search/package.json +1 -1
  259. package/extensions/kokoro/package.json +1 -1
  260. package/extensions/learning-core/package.json +1 -1
  261. package/extensions/line/package.json +1 -1
  262. package/extensions/llm-task/package.json +1 -1
  263. package/extensions/lobster/package.json +1 -1
  264. package/extensions/matrix/CHANGELOG.md +1 -1
  265. package/extensions/matrix/package.json +1 -1
  266. package/extensions/mattermost/package.json +1 -1
  267. package/extensions/memory-core/package.json +1 -1
  268. package/extensions/memory-lancedb/package.json +1 -1
  269. package/extensions/minimax/package.json +1 -1
  270. package/extensions/minimax-portal-auth/package.json +1 -1
  271. package/extensions/mistral/package.json +1 -1
  272. package/extensions/moonshot/package.json +1 -1
  273. package/extensions/msteams/CHANGELOG.md +1 -1
  274. package/extensions/msteams/package.json +1 -1
  275. package/extensions/nextcloud-talk/package.json +1 -1
  276. package/extensions/nostr/CHANGELOG.md +1 -1
  277. package/extensions/nostr/package.json +1 -1
  278. package/extensions/open-prose/package.json +1 -1
  279. package/extensions/openai/package.json +1 -1
  280. package/extensions/openai-realtime/package.json +1 -1
  281. package/extensions/openrouter/package.json +1 -1
  282. package/extensions/perplexity-search/package.json +1 -1
  283. package/extensions/searxng-search/package.json +1 -1
  284. package/extensions/signal/package.json +1 -1
  285. package/extensions/slack/package.json +1 -1
  286. package/extensions/synology-chat/package.json +1 -1
  287. package/extensions/telegram/package.json +1 -1
  288. package/extensions/tlon/package.json +1 -1
  289. package/extensions/twitch/CHANGELOG.md +1 -1
  290. package/extensions/twitch/package.json +1 -1
  291. package/extensions/ui-surfaces/package.json +1 -1
  292. package/extensions/voice-call/CHANGELOG.md +1 -1
  293. package/extensions/voice-call/package.json +1 -1
  294. package/extensions/whatsapp/package.json +1 -1
  295. package/extensions/zai/package.json +1 -1
  296. package/extensions/zalo/CHANGELOG.md +1 -1
  297. package/extensions/zalo/package.json +1 -1
  298. package/extensions/zalouser/CHANGELOG.md +1 -1
  299. package/extensions/zalouser/package.json +1 -1
  300. package/package.json +2 -2
  301. package/dist/plugin-sdk/agent-turn-execute-CNLde0aj.js +0 -61
  302. package/dist/plugin-sdk/deliver-B8wKBFHD.js +0 -34
  303. package/dist/plugin-sdk/manager-B8tH1WcK.js +0 -14
  304. package/dist/plugin-sdk/provider-dispatcher-rB-g7cTm.js +0 -61
  305. package/dist/plugin-sdk/send-DFnkY5LR.js +0 -23
@@ -1,70 +1,70 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
- import { $ as BUNDLED_ENABLED_BY_DEFAULT, $a as parseBooleanValue$1, $i as buildStreamErrorAssistantMessage, $n as normalizeDiscordToken, $r as getTrustedSafeBinDirs, $t as prepareConfiguredSessionStorageRuntimeActivation, Aa as withFileLock$1, Ai as buildModelAliasIndex, An as getChannelPlugin, At as listPluginCommands, Bi as resolveReasoningDefault, Bn as resolveSlackReplyToMode, Br as discardBufferedPluginTaskPasses, Bt as triggerInternalHook, C as resolveIMessageRemoteAttachmentRoots, Ca as resolveCliName, Ci as mapStreamingModeToSlackLegacyDraftStreamMode, Cn as resolveStorePath, Cr as normalizeAccountId$1, Ct as addRegisteredPluginApi, Da as ensureAuthProfileStore, Di as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH, Dn as getChannelDock, Dr as readTaskWorkStates, Dt as buildPluginHealthReport, Ea as markAuthProfileGood, Ei as resolveSlackStreamingMode, En as resolveParentSessionGroupId, Er as CtxProjectionCorruptionError, Et as normalizePluginHttpPath, Fa as normalizeSecretInput, Fi as normalizeProviderId, Fn as normalizeAtHashSlug, Fr as stringEnum, Ft as getSpeechProvider, G as isPathWithinRoot, Ga as splitTrailingAuthProfile, Gn as isWhatsAppGroupJid, Gr as getConfigOverrides, Gt as requireSessionStorageRuntime, H as AVATAR_MAX_BYTES, Hi as resolveThinkingDefault, Hn as resolveSlackBotToken, Hr as replaceBufferedPluginTaskPasses, Ht as createConversationReadQuery, Ii as parseModelRef, In as normalizeHyphenSlug, Ir as applyTargetToParams, It as isBuiltinTtsProvider, Ja as DEFAULT_PROVIDER, Ji as retryAsync, Jn as resolveWhatsAppAccount, Jr as unsetConfigOverride, Jt as commitPreparedConfiguredSessionStorageRuntimeActivation, K as isSupportedLocalAvatarExtension, Ka as DEFAULT_CONTEXT_TOKENS, Kn as normalizeWhatsAppTarget, Kr as resetConfigOverrides, Kt as closeConfiguredSessionStorageRuntime, Li as resolveConfiguredModelRef, Ln as normalizeStringEntries, Lr as actionHasTarget, Lt as replaceSpeechProviders, Ma as readProcessElapsedSeconds, Mi as isCliProvider, Mn as normalizeChannelId$1, Mr as channelTargetSchema, Mt as registerPluginCommand, Na as resolveAuthProfileDisplayLabel, Ni as modelKey, Nn as formatAllowlistMatchMeta, Nr as channelTargetsSchema, Nt as BUILTIN_TTS_PROVIDER_IDS, O as resolveExecPolicyPreset, Oa as resolveAuthStorePathForDisplay, Oi as buildAllowedModelSet, On as listChannelDocks, Ot as clearPluginCommands, Pi as normalizeModelRef$2, Pn as resolveAllowlistMatchByCandidates, Pr as optionalStringEnum, Pt as getRegisteredSpeechProviders, Q as docsSiteUrl, Qa as isTruthyEnvValue, Qi as buildAssistantMessageWithZeroUsage, Qn as resolveDiscordAccount, Qr as unsetConfigValueAtPath, Qt as loadSessionStoreFromDisk, Ra as coerceSecretRef, Ri as resolveDefaultModelForAgent, Rn as normalizeStringEntriesLower, Rr as actionRequiresTarget, Rt as normalizeProviderId$1, S as resolveIMessageAttachmentRoots, Sa as formatCliCommand, Si as isSafeExecutableValue, Sr as GATEWAY_CLIENT_NAMES, St as setActivePluginRegistry, T as parseNonNegativeByteSize, Ta as listProfilesForProvider, Ti as resolveSlackNativeStreaming, Tn as resolveGroupSessionKey, Tr as resolveSessionLockMaxHoldFromTimeout, Tt as createPluginRegistry, U as isAvatarDataUrl, Un as listEnabledSignalAccounts, Ur as RecoveryAdmissionError, Ut as getConversationReadQuery, Va as normalizeResolvedSecretInputString, Vi as resolveSubagentSpawnModelSelection, Vn as resolveSlackAppToken, Vr as listBufferedPluginTaskPasses, Vt as StorageReadAccessError, W as isAvatarHttpUrl, Wa as resolveSecretInputRef, Wn as resolveSignalAccount, X as loadPluginManifestRegistry, Xa as getShellPathFromLoginShell, Xi as createOllamaStreamFn, Xn as createDiscordActionGate, Xr as parseConfigPath, Y as validateJsonSchemaValue, Ya as VERSION, Yi as OLLAMA_NATIVE_BASE_URL, Yn as resolveIMessageAccount, Yr as getConfigValueAtPath, Yt as getConfiguredSessionStorageRuntime, Z as DOCS_SITE_URL, Za as resolveShellEnvFallbackTimeoutMs, Zi as buildAssistantMessage, Zn as listEnabledDiscordAccounts, Zr as setConfigValueAtPath, Zt as loadSessionStore, _a as isNonEmptyString, _i as splitShellArgs, _n as SESSION_RUN_STORE_FILE_NAME, _r as normalizeMessageChannel, _t as getActiveGatewayPluginRegistry, a as createConfigIO, aa as resolveEnvApiKey, ai as buildEnforcedShellCommand, an as updateSessionStoreEntry, ar as resolveAccountEntry, at as discoverOpenClawPlugins, b as isInboundPathAllowed, ba as secretRefKey, bi as resolveSafeBinProfiles, bn as resolveSessionFilePathOptions, br as GATEWAY_CLIENT_IDS, c as loadConfig, ca as resolveAuthProfileOrder, ci as DEFAULT_SAFE_BINS, cn as mergeSessionEntry, cr as mergeDeliveryContext, ct as readManifestNamespace, d as readConfigFileSnapshotForWrite, da as markAuthProfileFailure, di as resolveCommandResolutionFromArgv, dn as parseDurationMs, dr as INTERNAL_MESSAGE_CHANNEL, dt as getChatChannelMeta, ea as buildUsageWithNoCost, ei as isTrustedSafeBinPath, en as readSessionUpdatedAt, eo as resolveOwnerDisplaySetting, er as resolveChannelGroupPolicy, et as applyTestPluginDefaults, fa as markAuthProfileUsed, fi as extractShellWrapperInlineCommand, fn as parseSessionIndexRecordKey, fr as isDeliverableMessageChannel, ft as listChatChannels, ga as describeUnknownError$1, gi as unwrapKnownShellMultiplexerInvocation, gn as SAFE_SESSION_ID_RE, gr as listDeliverableMessageChannels, gt as resolveChannelConfigId, ha as resolveSecretRefValues, hi as unwrapKnownDispatchWrapperInvocation, hr as isMarkdownCapableMessageChannel, ht as normalizeChatChannelId, ii as analyzeShellCommand, in as updateSessionStore, it as resolveMemorySlotDecision, ja as isPidAlive, ji as findNormalizedProviderValue, jn as listChannelPlugins, jt as matchPluginCommand, ka as resolveOpenClawAgentDir, ki as buildConfiguredAllowlistKeys, kn as normalizeSignalMessagingTarget, kt as executePluginCommand, la as getSoonestCooldownExpiry, li as matchAllowlist, ln as resolveFreshSessionTotalTokens, lr as normalizeDeliveryContext, m as writeConfigFile, ma as resolveApiKeyForProfile, mi as isShellWrapperExecutable, mr as isInternalMessageChannel, mt as normalizeChannelId$2, n as advanceRuntimeConfigSnapshot, na as getCustomProviderApiKey, ni as normalizeTrustedSafeBinDirs, nn as refreshConfiguredSessionBindingEntry, nr as resolveChannelGroupToolsPolicy, nt as normalizePluginsConfig, o as getRuntimeConfigSnapshot, oa as resolveModelAuthMode, oi as isWindowsPlatform, or as deliveryContextFromSession, ot as isPathInside, pa as resolveProfilesUnavailableReason, pi as isDispatchWrapperExecutable, pr as isGatewayMessageChannel, pt as normalizeAnyChannelId, q as buildChannelAccountBindings, qa as DEFAULT_MODEL, qn as hasAnyWhatsAppAuth, qr as setConfigOverride, qt as closeReplacedConfiguredSessionStorageRuntime, ra as requireApiKey, ri as validateSafeBinArgv, rn as updateLastRoute, rt as resolveEffectiveEnableState, si as splitCommandChain, sn as DEFAULT_RESET_TRIGGERS, sr as deliveryContextKey, st as safeStatSync, ta as getApiKeyForModel, ti as listWritableExplicitTrustedSafeBinDirs, tn as recordSessionMetaFromInbound, tr as resolveChannelGroupRequireMention, tt as isBundledChannelEnabledByChannelConfig, u as readConfigFileSnapshot, ua as isProfileInCooldown, ui as resolveAllowlistCandidatePath, un as setSessionRuntimeModel, ur as normalizeSessionDeliveryFields, ut as CHAT_CHANNEL_ORDER, v as validateConfigObjectWithPlugins, va as isRecord$1, vi as SAFE_BIN_PROFILES, vr as resolveGatewayMessageChannel, vt as getActivePluginRegistry, w as normalizeScpRemoteHost, wa as dedupeProfileIds, wi as resolveDiscordPreviewStreamMode, wn as deriveSessionMetaPatch, wr as acquireSessionWriteLock, wt as clearRegisteredPluginApis, xa as runTasksWithConcurrency, xi as applyMergePatch, xn as resolveSessionTranscriptPath, xr as GATEWAY_CLIENT_MODES, xt as requireActivePluginRegistry, ya as parseDotPath, yi as normalizeSafeBinProfileFixtures, yn as resolveSessionFilePath, yr as resolveMessageChannel, yt as getActivePluginRegistryKey, za as hasConfiguredSecretInput, zi as resolveModelRefFromString, zn as resolveSlackAccount, zt as createInternalHookEvent } from "./config-D7E345XX.js";
2
+ import { $ as BUNDLED_ENABLED_BY_DEFAULT, $a as parseBooleanValue$1, $i as buildStreamErrorAssistantMessage, $n as normalizeDiscordToken, $r as getTrustedSafeBinDirs, $t as prepareConfiguredSessionStorageRuntimeActivation, Aa as withFileLock$1, Ai as buildModelAliasIndex, An as getChannelPlugin, At as listPluginCommands, Bi as resolveReasoningDefault, Bn as resolveSlackReplyToMode, Br as discardBufferedPluginTaskPasses, Bt as triggerInternalHook, C as resolveIMessageRemoteAttachmentRoots, Ca as resolveCliName, Ci as mapStreamingModeToSlackLegacyDraftStreamMode, Cn as resolveStorePath, Cr as normalizeAccountId$1, Ct as addRegisteredPluginApi, Da as ensureAuthProfileStore, Di as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH, Dn as getChannelDock, Dr as readTaskWorkStates, Dt as buildPluginHealthReport, Ea as markAuthProfileGood, Ei as resolveSlackStreamingMode, En as resolveParentSessionGroupId, Er as CtxProjectionCorruptionError, Et as normalizePluginHttpPath, Fa as normalizeSecretInput, Fi as normalizeProviderId, Fn as normalizeAtHashSlug, Fr as stringEnum, Ft as getSpeechProvider, G as isPathWithinRoot, Ga as splitTrailingAuthProfile, Gn as isWhatsAppGroupJid, Gr as getConfigOverrides, Gt as requireSessionStorageRuntime, H as AVATAR_MAX_BYTES, Hi as resolveThinkingDefault, Hn as resolveSlackBotToken, Hr as replaceBufferedPluginTaskPasses, Ht as createConversationReadQuery, Ii as parseModelRef, In as normalizeHyphenSlug, Ir as applyTargetToParams, It as isBuiltinTtsProvider, Ja as DEFAULT_PROVIDER, Ji as retryAsync, Jn as resolveWhatsAppAccount, Jr as unsetConfigOverride, Jt as commitPreparedConfiguredSessionStorageRuntimeActivation, K as isSupportedLocalAvatarExtension, Ka as DEFAULT_CONTEXT_TOKENS, Kn as normalizeWhatsAppTarget, Kr as resetConfigOverrides, Kt as closeConfiguredSessionStorageRuntime, Li as resolveConfiguredModelRef, Ln as normalizeStringEntries, Lr as actionHasTarget, Lt as replaceSpeechProviders, Ma as readProcessElapsedSeconds, Mi as isCliProvider, Mn as normalizeChannelId$1, Mr as channelTargetSchema, Mt as registerPluginCommand, Na as resolveAuthProfileDisplayLabel, Ni as modelKey, Nn as formatAllowlistMatchMeta, Nr as channelTargetsSchema, Nt as BUILTIN_TTS_PROVIDER_IDS, O as resolveExecPolicyPreset, Oa as resolveAuthStorePathForDisplay, Oi as buildAllowedModelSet, On as listChannelDocks, Ot as clearPluginCommands, Pi as normalizeModelRef$2, Pn as resolveAllowlistMatchByCandidates, Pr as optionalStringEnum, Pt as getRegisteredSpeechProviders, Q as docsSiteUrl, Qa as isTruthyEnvValue, Qi as buildAssistantMessageWithZeroUsage, Qn as resolveDiscordAccount, Qr as unsetConfigValueAtPath, Qt as loadSessionStoreFromDisk, Ra as coerceSecretRef, Ri as resolveDefaultModelForAgent, Rn as normalizeStringEntriesLower, Rr as actionRequiresTarget, Rt as normalizeProviderId$1, S as resolveIMessageAttachmentRoots, Sa as formatCliCommand, Si as isSafeExecutableValue, Sr as GATEWAY_CLIENT_NAMES, St as setActivePluginRegistry, T as parseNonNegativeByteSize, Ta as listProfilesForProvider, Ti as resolveSlackNativeStreaming, Tn as resolveGroupSessionKey, Tr as resolveSessionLockMaxHoldFromTimeout, Tt as createPluginRegistry, U as isAvatarDataUrl, Un as listEnabledSignalAccounts, Ur as RecoveryAdmissionError, Ut as getConversationReadQuery, Va as normalizeResolvedSecretInputString, Vi as resolveSubagentSpawnModelSelection, Vn as resolveSlackAppToken, Vr as listBufferedPluginTaskPasses, Vt as StorageReadAccessError, W as isAvatarHttpUrl, Wa as resolveSecretInputRef, Wn as resolveSignalAccount, X as loadPluginManifestRegistry, Xa as getShellPathFromLoginShell, Xi as createOllamaStreamFn, Xn as createDiscordActionGate, Xr as parseConfigPath, Y as validateJsonSchemaValue, Ya as VERSION, Yi as OLLAMA_NATIVE_BASE_URL, Yn as resolveIMessageAccount, Yr as getConfigValueAtPath, Yt as getConfiguredSessionStorageRuntime, Z as DOCS_SITE_URL, Za as resolveShellEnvFallbackTimeoutMs, Zi as buildAssistantMessage, Zn as listEnabledDiscordAccounts, Zr as setConfigValueAtPath, Zt as loadSessionStore, _a as isNonEmptyString, _i as splitShellArgs, _n as SESSION_RUN_STORE_FILE_NAME, _r as normalizeMessageChannel, _t as getActiveGatewayPluginRegistry, a as createConfigIO, aa as resolveEnvApiKey, ai as buildEnforcedShellCommand, an as updateSessionStoreEntry, ar as resolveAccountEntry, at as discoverOpenClawPlugins, b as isInboundPathAllowed, ba as secretRefKey, bi as resolveSafeBinProfiles, bn as resolveSessionFilePathOptions, br as GATEWAY_CLIENT_IDS, c as loadConfig, ca as resolveAuthProfileOrder, ci as DEFAULT_SAFE_BINS, cn as mergeSessionEntry, cr as mergeDeliveryContext, ct as readManifestNamespace, d as readConfigFileSnapshotForWrite, da as markAuthProfileFailure, di as resolveCommandResolutionFromArgv, dn as parseDurationMs, dr as INTERNAL_MESSAGE_CHANNEL, dt as getChatChannelMeta, ea as buildUsageWithNoCost, ei as isTrustedSafeBinPath, en as readSessionUpdatedAt, eo as resolveOwnerDisplaySetting, er as resolveChannelGroupPolicy, et as applyTestPluginDefaults, fa as markAuthProfileUsed, fi as extractShellWrapperInlineCommand, fn as parseSessionIndexRecordKey, fr as isDeliverableMessageChannel, ft as listChatChannels, ga as describeUnknownError$1, gi as unwrapKnownShellMultiplexerInvocation, gn as SAFE_SESSION_ID_RE, gr as listDeliverableMessageChannels, gt as resolveChannelConfigId, ha as resolveSecretRefValues, hi as unwrapKnownDispatchWrapperInvocation, hr as isMarkdownCapableMessageChannel, ht as normalizeChatChannelId, ii as analyzeShellCommand, in as updateSessionStore, it as resolveMemorySlotDecision, ja as isPidAlive, ji as findNormalizedProviderValue, jn as listChannelPlugins, jt as matchPluginCommand, ka as resolveOpenClawAgentDir, ki as buildConfiguredAllowlistKeys, kn as normalizeSignalMessagingTarget, kt as executePluginCommand, la as getSoonestCooldownExpiry, li as matchAllowlist, ln as resolveFreshSessionTotalTokens, lr as normalizeDeliveryContext, m as writeConfigFile, ma as resolveApiKeyForProfile, mi as isShellWrapperExecutable, mr as isInternalMessageChannel, mt as normalizeChannelId$2, n as advanceRuntimeConfigSnapshot, na as getCustomProviderApiKey, ni as normalizeTrustedSafeBinDirs, nn as refreshConfiguredSessionBindingEntry, nr as resolveChannelGroupToolsPolicy, nt as normalizePluginsConfig, o as getRuntimeConfigSnapshot, oa as resolveModelAuthMode, oi as isWindowsPlatform, or as deliveryContextFromSession, ot as isPathInside, pa as resolveProfilesUnavailableReason, pi as isDispatchWrapperExecutable, pr as isGatewayMessageChannel, pt as normalizeAnyChannelId, q as buildChannelAccountBindings, qa as DEFAULT_MODEL, qn as hasAnyWhatsAppAuth, qr as setConfigOverride, qt as closeReplacedConfiguredSessionStorageRuntime, ra as requireApiKey, ri as validateSafeBinArgv, rn as updateLastRoute, rt as resolveEffectiveEnableState, si as splitCommandChain, sn as DEFAULT_RESET_TRIGGERS, sr as deliveryContextKey, st as safeStatSync, ta as getApiKeyForModel, ti as listWritableExplicitTrustedSafeBinDirs, tn as recordSessionMetaFromInbound, tr as resolveChannelGroupRequireMention, tt as isBundledChannelEnabledByChannelConfig, u as readConfigFileSnapshot, ua as isProfileInCooldown, ui as resolveAllowlistCandidatePath, un as setSessionRuntimeModel, ur as normalizeSessionDeliveryFields, ut as CHAT_CHANNEL_ORDER, v as validateConfigObjectWithPlugins, va as isRecord$1, vi as SAFE_BIN_PROFILES, vr as resolveGatewayMessageChannel, vt as getActivePluginRegistry, w as normalizeScpRemoteHost, wa as dedupeProfileIds, wi as resolveDiscordPreviewStreamMode, wn as deriveSessionMetaPatch, wr as acquireSessionWriteLock, wt as clearRegisteredPluginApis, xa as runTasksWithConcurrency, xi as applyMergePatch, xn as resolveSessionTranscriptPath, xr as GATEWAY_CLIENT_MODES, xt as requireActivePluginRegistry, ya as parseDotPath, yi as normalizeSafeBinProfileFixtures, yn as resolveSessionFilePath, yr as resolveMessageChannel, yt as getActivePluginRegistryKey, za as hasConfiguredSecretInput, zi as resolveModelRefFromString, zn as resolveSlackAccount, zt as createInternalHookEvent } from "./config-C8St6mAq.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 resolveCanonicalIdentity, 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 resolveAgentIdFromSessionKey, S as filterBootstrapFilesForSession, U as classifySessionKeyShape, V as buildAgentMainSessionKey, X as normalizeMainKey, Y as normalizeAgentId, Z as normalizeToken, _ as DEFAULT_IDENTITY_FILENAME, _t as resolveThreadParentSessionKey, at as DEFAULT_ACCOUNT_ID, c as resolveDefaultAgentId, d as resolveSessionAgentId, dt as getSubagentDepth, et as resolveConfiguredCanonicalIdentity, f as resolveSessionAgentIds, ft as isAcpSessionKey, g as DEFAULT_HEARTBEAT_FILENAME, gt as parseAgentSessionKey, h as DEFAULT_BOOTSTRAP_FILENAME, ht as isSubagentSessionKey, i as resolveAgentDir, it as toAgentStoreSessionKey, j as logInfo, k as logDebug, l as resolveEffectiveModelFallbacks, m as DEFAULT_AGENT_WORKSPACE_DIR, n as listAgentIds, nt as sanitizeAgentId, o as resolveAgentSkillsFilter, ot as normalizeAccountId$2, pt as isCronSessionKey, q as isKnownAgentMainSessionKey, r as resolveAgentConfig, rt as sessionKeyAgentMatches, s as resolveAgentWorkspaceDir, st as normalizeOptionalAccountId, t as hasConfiguredModelFallbacks, tt as resolveThreadSessionKeys, u as resolveRunModelFallbacksOverride, ut as WAKE_GATE_SESSION_KEY_SEGMENT, vt as stripAgentSessionKeyPrefix, w as resolveOpenClawPackageRoot, x as ensureAgentWorkspace, z as DEVICE_SENDER_PREFIX } from "./agent-scope-DULvzWts.js";
6
+ import { $ as resolveCanonicalIdentity, 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 resolveAgentIdFromSessionKey, S as filterBootstrapFilesForSession, U as classifySessionKeyShape, V as buildAgentMainSessionKey, X as normalizeMainKey, Y as normalizeAgentId, Z as normalizeToken, _ as DEFAULT_IDENTITY_FILENAME, _t as resolveThreadParentSessionKey, at as DEFAULT_ACCOUNT_ID, c as resolveDefaultAgentId, d as resolveSessionAgentId, dt as getSubagentDepth, et as resolveConfiguredCanonicalIdentity, f as resolveSessionAgentIds, ft as isAcpSessionKey, g as DEFAULT_HEARTBEAT_FILENAME, gt as parseAgentSessionKey, h as DEFAULT_BOOTSTRAP_FILENAME, ht as isSubagentSessionKey, i as resolveAgentDir, it as toAgentStoreSessionKey, j as logInfo, k as logDebug, l as resolveEffectiveModelFallbacks, m as DEFAULT_AGENT_WORKSPACE_DIR, n as listAgentIds, nt as sanitizeAgentId, o as resolveAgentSkillsFilter, ot as normalizeAccountId$2, pt as isCronSessionKey, q as isKnownAgentMainSessionKey, r as resolveAgentConfig, rt as sessionKeyAgentMatches, s as resolveAgentWorkspaceDir, st as normalizeOptionalAccountId, t as hasConfiguredModelFallbacks, tt as resolveThreadSessionKeys, u as resolveRunModelFallbacksOverride, ut as WAKE_GATE_SESSION_KEY_SEGMENT, vt as stripAgentSessionKeyPrefix, w as resolveOpenClawPackageRoot, x as ensureAgentWorkspace, z as DEVICE_SENDER_PREFIX } from "./agent-scope-XhXeu6xb.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-DzCL2yP6.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-CUSwRN-T.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-DAC1vCsq.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-Cs4D1U17.js";
13
- import { A as issueDeviceBootstrapToken, C as randomIdempotencyKey, D as gatewayErrorShapeOf, E as gatewayErrorReason, M as setActiveCoordinationDepth, O as validateSecretsResolveResult, S as callGatewayLeastPrivilege, T as GatewayClient, _ as resolveSessionReference, a as buildAgentToAgentMessageContext, b as buildGatewayConnectionDetails, c as isReplySkip, d as createSessionVisibilityGuard, f as resolveEffectiveSessionToolsVisibility, g as resolveMainSessionAlias, h as resolveInternalSessionKey, i as buildAgentToAgentAnnounceContext, j as clearActiveCoordinationDepth, k as SESSION_LABEL_MAX_LENGTH, l as resolvePingPongTurns, m as resolveDisplaySessionKey, n as requestAuthorizedNudge, o as buildAgentToAgentReplyContext, p as resolveSandboxedSessionToolContext, r as AuthorizationError, s as isAnnounceSkip, u as createAgentToAgentPolicy, v as resolveVisibleSessionReference, w as resolveLeastPrivilegeOperatorScopesForMethod, x as callGateway, y as shouldResolveSessionIdInput } from "./nudge-BqkP8YTx.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-Dd4wRWhq.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-B-mkV3_w.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-IwG5iqHK.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-Bl0b35sU.js";
13
+ import { A as issueDeviceBootstrapToken, C as randomIdempotencyKey, D as gatewayErrorShapeOf, E as gatewayErrorReason, M as setActiveCoordinationDepth, O as validateSecretsResolveResult, S as callGatewayLeastPrivilege, T as GatewayClient, _ as resolveSessionReference, a as buildAgentToAgentMessageContext, b as buildGatewayConnectionDetails, c as isReplySkip, d as createSessionVisibilityGuard, f as resolveEffectiveSessionToolsVisibility, g as resolveMainSessionAlias, h as resolveInternalSessionKey, i as buildAgentToAgentAnnounceContext, j as clearActiveCoordinationDepth, k as SESSION_LABEL_MAX_LENGTH, l as resolvePingPongTurns, m as resolveDisplaySessionKey, n as requestAuthorizedNudge, o as buildAgentToAgentReplyContext, p as resolveSandboxedSessionToolContext, r as AuthorizationError, s as isAnnounceSkip, u as createAgentToAgentPolicy, v as resolveVisibleSessionReference, w as resolveLeastPrivilegeOperatorScopesForMethod, x as callGateway, y as shouldResolveSessionIdInput } from "./nudge-CnaEXWAF.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-DarAZV54.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-B8sw5RV2.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-C-EhmyOo.js";
20
- import { r as isLoopbackHost } from "./ws-DD3MWZdU.js";
21
- import { r as trimToUndefined, t as resolveGatewayCredentialsFromConfig } from "./credentials-C5_Kcyy4.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-BnRaKZVE.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-blSJPepq.js";
27
- import { a as isBlockedHostnameOrIp, l as normalizeHostname, n as SsrFBlockedError } from "./proxy-env-Cj0Bgsg8.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-BYGvGwxN.js";
29
- import { i as saveMediaBuffer, r as getMediaDir, t as MEDIA_MAX_BYTES } from "./store-Cj8CEQfL.js";
17
+ import { a as getGatewayInstanceId, n as deriveSessionRunId, o as resolveSessionRunStore, r as inferSessionRunKind, t as createSessionRunRecorder } from "./recorder-C9HG73v5.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-C8SBxzVB.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-D1_Km2Py.js";
20
+ import { r as isLoopbackHost } from "./ws-DySeXwmc.js";
21
+ import { r as trimToUndefined, t as resolveGatewayCredentialsFromConfig } from "./credentials-rHg5DomK.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-DSEJ9TJa.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-qCaN71tM.js";
27
+ import { a as isBlockedHostnameOrIp, l as normalizeHostname, n as SsrFBlockedError } from "./proxy-env-CpBOG1SR.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-BsxkG0xi.js";
29
+ import { i as saveMediaBuffer, r as getMediaDir, t as MEDIA_MAX_BYTES } from "./store-TSGh1Q6I.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-W4rq5-Rh.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-D4aQ4rt0.js";
35
+ import { a as resolveAgentIdentity, i as resolveAckReaction, o as resolveEffectiveMessagesConfig, r as resolveResponsePrefixTemplate, s as resolveHumanDelayConfig, t as createReplyPrefixOptions } from "./reply-prefix-98PG1Ki7.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-O1TZk8ZJ.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-DPL0uYBf.js";
40
- import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-B8gN8a3d.js";
41
- import { t as ensureOpenClawModelsJson } from "./models-config-BeE1WLnh.js";
42
- import { i as resolveLiveIdentityLinks, n as resolveAgentRoute, t as buildAgentSessionKey } from "./resolve-route-D2gpKzx7.js";
43
- import { C as coerceImageModelConfig, D as loadModelCatalog, E as findModelInCatalog, O as modelSupportsVision, S as coerceImageAssistantText, T as resolveProviderVisionModelFromConfig, _ as stripCarriedTranscriptFromBody, a as resolveMediaAttachmentLocalRoots, c as applyTemplate, d as normalizeMediaUnderstandingChatType, f as resolveMediaUnderstandingScope, i as normalizeMediaAttachments, l as resolveConcurrency, n as buildProviderRegistry, o as runCapability, p as CLI_OUTPUT_MAX_BUFFER, r as createMediaAttachmentCache, s as minimaxUnderstandImage, t as runAudioTranscription, u as resolveTimeoutMs$2, v as buildRandomTempFilePath, w as decodeDataUrl, x as resolveAttachmentKind, y as registerUnhandledRejectionHandler } from "./audio-transcription-runner-B7oqNjtj.js";
44
- import { a as formatReasoningMessage, d as stripThinkingTagsFromText, f as formatToolSummary, l as stripDowngradedToolCallText, m as stripReasoningTagsFromText, n as extractAssistantThinking, o as inferToolMetaFromArgs, p as resolveToolDisplay, s as isAssistantMessage, t as extractAssistantText$1, u as stripMinimaxToolCallXml } from "./pi-embedded-utils-BXjWA82e.js";
45
- import { a as getDefaultMediaLocalRoots, i as getAgentScopedMediaLocalRoots, n as fetchRemoteMedia, r as readResponseWithLimit } from "./fetch-Bd3gVJGS.js";
46
- import { a as bindAbortRelay, n as withStrictGuardedFetchMode, o as fetchWithTimeout, r as withTrustedEnvProxyGuardedFetchMode, t as fetchWithSsrFGuard } from "./fetch-guard-CRXpWx9K.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-cMQsA9-X.js";
40
+ import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-5nUBc878.js";
41
+ import { t as ensureOpenClawModelsJson } from "./models-config-BwzDnc-Q.js";
42
+ import { i as resolveLiveIdentityLinks, n as resolveAgentRoute, t as buildAgentSessionKey } from "./resolve-route-kCeK1PnG.js";
43
+ import { C as coerceImageModelConfig, D as loadModelCatalog, E as findModelInCatalog, O as modelSupportsVision, S as coerceImageAssistantText, T as resolveProviderVisionModelFromConfig, _ as stripCarriedTranscriptFromBody, a as resolveMediaAttachmentLocalRoots, c as applyTemplate, d as normalizeMediaUnderstandingChatType, f as resolveMediaUnderstandingScope, i as normalizeMediaAttachments, l as resolveConcurrency, n as buildProviderRegistry, o as runCapability, p as CLI_OUTPUT_MAX_BUFFER, r as createMediaAttachmentCache, s as minimaxUnderstandImage, t as runAudioTranscription, u as resolveTimeoutMs$2, v as buildRandomTempFilePath, w as decodeDataUrl, x as resolveAttachmentKind, y as registerUnhandledRejectionHandler } from "./audio-transcription-runner-BsZZfTYv.js";
44
+ import { a as formatReasoningMessage, d as stripThinkingTagsFromText, f as formatToolSummary, l as stripDowngradedToolCallText, m as stripReasoningTagsFromText, n as extractAssistantThinking, o as inferToolMetaFromArgs, p as resolveToolDisplay, s as isAssistantMessage, t as extractAssistantText$1, u as stripMinimaxToolCallXml } from "./pi-embedded-utils-B-YXzLOX.js";
45
+ import { a as getDefaultMediaLocalRoots, i as getAgentScopedMediaLocalRoots, n as fetchRemoteMedia, r as readResponseWithLimit } from "./fetch-B6JVlGQz.js";
46
+ import { a as bindAbortRelay, n as withStrictGuardedFetchMode, o as fetchWithTimeout, r as withTrustedEnvProxyGuardedFetchMode, t as fetchWithSsrFGuard } from "./fetch-guard-BultwSpi.js";
47
47
  import { n as isSafeFenceBreak, r as parseFenceSpans, t as findFenceSpanAt } from "./fences-Dsu9RZ4d.js";
48
- 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-D0gjlEAC.js";
49
- import { n as resolveMarkdownTableMode } from "./markdown-tables-CRv466QZ.js";
50
- import { a as loadWebMedia, i as getDefaultLocalRoots, o as loadWebMediaRaw } from "./ir-DU47VU35.js";
51
- 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-BOqP8POi.js";
52
- import { i as AGENT_LANE_SUBAGENT, r as AGENT_LANE_NESTED, t as startUserSessionRun } from "./user-run-recording-BTjOSPH8.js";
53
- 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-BA7oqhbL.js";
54
- 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-D0h7Pa-R.js";
55
- 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-DZqeAImU.js";
48
+ 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-D8Ei1sgE.js";
49
+ import { n as resolveMarkdownTableMode } from "./markdown-tables-BD3LxqeL.js";
50
+ import { a as loadWebMedia, i as getDefaultLocalRoots, o as loadWebMediaRaw } from "./ir-DURlc744.js";
51
+ 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-md12jvN2.js";
52
+ import { i as AGENT_LANE_SUBAGENT, r as AGENT_LANE_NESTED, t as startUserSessionRun } from "./user-run-recording-DZAbAydi.js";
53
+ 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-Z4pls7FK.js";
54
+ 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-G0rUejkg.js";
55
+ 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-aIctLOEP.js";
56
56
  import { r as normalizeInboundTextNewlines, t as finalizeInboundContext } from "./inbound-context-CZ6JAe_K.js";
57
- import { n as wrapFetchWithAbortSignal, t as resolveFetch } from "./fetch-BaRM29vD.js";
58
- import { c as getSkillsSnapshotVersion, i as resolveSkillCommandInvocation, n as listSkillCommandsForAgents, o as getRemoteSkillEligibility, r as listSkillCommandsForWorkspace, s as ensureSkillsWatcher, t as listReservedChatSlashCommandNames } from "./skill-commands-B_Tcfb-O.js";
59
- import { t as convertMarkdownTables } from "./tables-Dy6doVa0.js";
60
- import { n as splitMediaFromOutput, t as parseReplyDirectives } from "./reply-directives-MabnZ9XP.js";
61
- import { a as resolveSignalRpcContext, c as streamSignalEvents, n as sendReadReceiptSignal, o as signalCheck, r as sendTypingSignal, s as signalRpcRequest, t as sendMessageSignal } from "./send-DHpP56-Y.js";
62
- import { a as formatIMessageChatTarget, c as parseIMessageTarget, i as DEFAULT_IMESSAGE_PROBE_TIMEOUT_MS, o as isAllowedIMessageSender, r as createIMessageRpcClient, s as normalizeIMessageHandle, t as sendMessageIMessage } from "./send-Iyeo_Hcl.js";
63
- import { t as recordInboundSessionMetaSafe } from "./session-meta--JsYAyya.js";
64
- import { a as createReplyReferencePlanner, i as resolveSlackThreadTs, n as deliverReplies$2, t as createSlackReplyDeliveryPlan } from "./replies-Dc6GVOqb.js";
65
- import { n as resolveMemorySearchConfig } from "./manager-DoZ5_BeO.js";
66
- import { m as normalizeExtraMemoryPaths, p as listMemoryFiles } from "./query-expansion-CvnC7tCW.js";
67
- import { t as isQmdScopeAllowed } from "./qmd-scope-Bo_hGwTh.js";
57
+ import { n as wrapFetchWithAbortSignal, t as resolveFetch } from "./fetch-BjRFaOH-.js";
58
+ import { c as getSkillsSnapshotVersion, i as resolveSkillCommandInvocation, n as listSkillCommandsForAgents, o as getRemoteSkillEligibility, r as listSkillCommandsForWorkspace, s as ensureSkillsWatcher, t as listReservedChatSlashCommandNames } from "./skill-commands-BQcYbtPM.js";
59
+ import { t as convertMarkdownTables } from "./tables-CR0_AJTg.js";
60
+ import { n as splitMediaFromOutput, t as parseReplyDirectives } from "./reply-directives-CiYi8fBw.js";
61
+ import { a as resolveSignalRpcContext, c as streamSignalEvents, n as sendReadReceiptSignal, o as signalCheck, r as sendTypingSignal, s as signalRpcRequest, t as sendMessageSignal } from "./send-nXTQsLrv.js";
62
+ import { a as formatIMessageChatTarget, c as parseIMessageTarget, i as DEFAULT_IMESSAGE_PROBE_TIMEOUT_MS, o as isAllowedIMessageSender, r as createIMessageRpcClient, s as normalizeIMessageHandle, t as sendMessageIMessage } from "./send-BHcO0Aru.js";
63
+ import { t as recordInboundSessionMetaSafe } from "./session-meta-D9pWrAgN.js";
64
+ import { a as createReplyReferencePlanner, i as resolveSlackThreadTs, n as deliverReplies$2, t as createSlackReplyDeliveryPlan } from "./replies-Bqqi0vbE.js";
65
+ import { n as resolveMemorySearchConfig } from "./manager-BgcW7tpv.js";
66
+ import { m as normalizeExtraMemoryPaths, p as listMemoryFiles } from "./query-expansion-DMqvaBet.js";
67
+ import { t as isQmdScopeAllowed } from "./qmd-scope-Da_43AK-.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,
@@ -7049,7 +7049,7 @@ async function imageResult(params) {
7049
7049
  }, params.label, params.imageSanitization);
7050
7050
  }
7051
7051
  async function imageResultFromFile(params) {
7052
- const buf = await fs$1.readFile(params.path);
7052
+ const buf = await fsp.readFile(params.path);
7053
7053
  const mimeType = await detectMime({ buffer: buf.slice(0, 256) }) ?? "image/png";
7054
7054
  return await imageResult({
7055
7055
  label: params.label,
@@ -7960,7 +7960,7 @@ async function resolveAgentSessionDirs(stateDir) {
7960
7960
  const agentsDir = path.join(stateDir, "agents");
7961
7961
  let entries = [];
7962
7962
  try {
7963
- entries = await fs$1.readdir(agentsDir, { withFileTypes: true });
7963
+ entries = await fsp.readdir(agentsDir, { withFileTypes: true });
7964
7964
  } catch (err) {
7965
7965
  if (err.code === "ENOENT") return [];
7966
7966
  throw err;
@@ -10149,7 +10149,7 @@ async function routeReply(params) {
10149
10149
  const resolvedReplyToId = replyToId ?? (channelId === "slack" && threadId != null && threadId !== "" ? String(threadId) : void 0);
10150
10150
  const resolvedThreadId = channelId === "slack" ? null : threadId ?? null;
10151
10151
  try {
10152
- const { deliverOutboundPayloads } = await import("./deliver-DZqeAImU.js").then((n) => n.n);
10152
+ const { deliverOutboundPayloads } = await import("./deliver-aIctLOEP.js").then((n) => n.n);
10153
10153
  const outboundSession = buildOutboundSessionContext({
10154
10154
  cfg,
10155
10155
  agentId: resolvedAgentId,
@@ -14947,7 +14947,7 @@ async function sendTranscriptEcho(params) {
14947
14947
  }
14948
14948
  const text = formatEchoTranscript(transcript, params.format ?? DEFAULT_ECHO_TRANSCRIPT_FORMAT);
14949
14949
  try {
14950
- const { deliverOutboundPayloads } = await import("./deliver-DZqeAImU.js").then((n) => n.n);
14950
+ const { deliverOutboundPayloads } = await import("./deliver-aIctLOEP.js").then((n) => n.n);
14951
14951
  await deliverOutboundPayloads({
14952
14952
  cfg,
14953
14953
  channel: normalizedChannel,
@@ -20552,7 +20552,7 @@ async function resolveSandboxWorkdir(params) {
20552
20552
  cwd: process.cwd(),
20553
20553
  root: params.sandbox.workspaceDir
20554
20554
  });
20555
- if (!(await fs$1.stat(resolved.resolved)).isDirectory()) throw new Error("workdir is not a directory");
20555
+ if (!(await fsp.stat(resolved.resolved)).isDirectory()) throw new Error("workdir is not a directory");
20556
20556
  const relative = resolved.relative ? resolved.relative.split(path.sep).join(path.posix.sep) : "";
20557
20557
  const containerWorkdir = relative ? path.posix.join(params.sandbox.containerWorkdir, relative) : params.sandbox.containerWorkdir;
20558
20558
  return {
@@ -21942,13 +21942,13 @@ async function validateScriptFileForShellBleed(params) {
21942
21942
  cwd: params.workdir,
21943
21943
  root: params.workdir
21944
21944
  });
21945
- stat = await fs$1.stat(absPath);
21945
+ stat = await fsp.stat(absPath);
21946
21946
  } catch {
21947
21947
  return;
21948
21948
  }
21949
21949
  if (!stat.isFile()) return;
21950
21950
  if (stat.size > 512 * 1024) return;
21951
- const content = await fs$1.readFile(absPath, "utf-8");
21951
+ const content = await fsp.readFile(absPath, "utf-8");
21952
21952
  const first = /\$[A-Z_][A-Z0-9_]{1,}/g.exec(content);
21953
21953
  if (first) {
21954
21954
  const idx = first.index;
@@ -34751,7 +34751,7 @@ async function createModelSelectionState(params) {
34751
34751
  }
34752
34752
  }
34753
34753
  if (sessionEntry && sessionStore && sessionKey && sessionEntry.authProfileOverride) {
34754
- const { ensureAuthProfileStore } = await import("./config-D7E345XX.js").then((n) => n.sa);
34754
+ const { ensureAuthProfileStore } = await import("./config-C8St6mAq.js").then((n) => n.sa);
34755
34755
  const profile = ensureAuthProfileStore(void 0, { allowKeychainPrompt: false }).profiles[sessionEntry.authProfileOverride];
34756
34756
  const providerKey = normalizeProviderId(provider);
34757
34757
  if (!profile || normalizeProviderId(profile.provider) !== providerKey) await clearSessionAuthProfileOverride({
@@ -38434,7 +38434,7 @@ async function writeUrlToFile(filePath, url, opts) {
38434
38434
  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}`);
38435
38435
  const body = res.body;
38436
38436
  if (!body) throw new Error(`failed to download ${url}: empty response body`);
38437
- const fileHandle = await fs$2.open(filePath, "w");
38437
+ const fileHandle = await fs$1.open(filePath, "w");
38438
38438
  let thrown;
38439
38439
  try {
38440
38440
  const reader = body.getReader();
@@ -38452,7 +38452,7 @@ async function writeUrlToFile(filePath, url, opts) {
38452
38452
  await fileHandle.close();
38453
38453
  }
38454
38454
  if (thrown) {
38455
- await fs$2.unlink(filePath).catch(() => {});
38455
+ await fs$1.unlink(filePath).catch(() => {});
38456
38456
  throw thrown;
38457
38457
  }
38458
38458
  } finally {
@@ -38465,7 +38465,7 @@ async function writeUrlToFile(filePath, url, opts) {
38465
38465
  }
38466
38466
  async function writeBase64ToFile(filePath, base64) {
38467
38467
  const buf = Buffer.from(base64, "base64");
38468
- await fs$2.writeFile(filePath, buf);
38468
+ await fs$1.writeFile(filePath, buf);
38469
38469
  return {
38470
38470
  path: filePath,
38471
38471
  bytes: buf.length
@@ -38550,7 +38550,7 @@ async function readJsonlFromPath(jsonlPath) {
38550
38550
  if (shouldLogVerbose()) logVerbose(`Blocked canvas jsonlPath outside allowed roots: ${resolved}`);
38551
38551
  throw new Error("jsonlPath outside allowed roots");
38552
38552
  }
38553
- const canonical = await fs$1.realpath(resolved).catch(() => resolved);
38553
+ const canonical = await fsp.realpath(resolved).catch(() => resolved);
38554
38554
  if (!isInboundPathAllowed({
38555
38555
  filePath: canonical,
38556
38556
  roots
@@ -38558,7 +38558,7 @@ async function readJsonlFromPath(jsonlPath) {
38558
38558
  if (shouldLogVerbose()) logVerbose(`Blocked canvas jsonlPath outside allowed roots: ${canonical}`);
38559
38559
  throw new Error("jsonlPath outside allowed roots");
38560
38560
  }
38561
- return await fs$1.readFile(canonical, "utf8");
38561
+ return await fsp.readFile(canonical, "utf8");
38562
38562
  }
38563
38563
  const CanvasToolSchema = Type.Object({
38564
38564
  action: stringEnum(CANVAS_ACTIONS),
@@ -39409,12 +39409,12 @@ function resolveRestartSentinelPath(env = process.env) {
39409
39409
  }
39410
39410
  async function writeRestartSentinel(payload, env = process.env) {
39411
39411
  const filePath = resolveRestartSentinelPath(env);
39412
- await fs$1.mkdir(path.dirname(filePath), { recursive: true });
39412
+ await fsp.mkdir(path.dirname(filePath), { recursive: true });
39413
39413
  const data = {
39414
39414
  version: 1,
39415
39415
  payload
39416
39416
  };
39417
- await fs$1.writeFile(filePath, `${JSON.stringify(data, null, 2)}\n`, "utf-8");
39417
+ await fsp.writeFile(filePath, `${JSON.stringify(data, null, 2)}\n`, "utf-8");
39418
39418
  return filePath;
39419
39419
  }
39420
39420
 
@@ -50740,18 +50740,18 @@ function appendImagePathsToPrompt(prompt, paths) {
50740
50740
  return `${trimmed}${trimmed ? "\n\n" : ""}${paths.join("\n")}`;
50741
50741
  }
50742
50742
  async function writeCliImages(images) {
50743
- const tempDir = await fs$1.mkdtemp(path.join(os.tmpdir(), "openclaw-cli-images-"));
50743
+ const tempDir = await fsp.mkdtemp(path.join(os.tmpdir(), "openclaw-cli-images-"));
50744
50744
  const paths = [];
50745
50745
  for (let i = 0; i < images.length; i += 1) {
50746
50746
  const image = images[i];
50747
50747
  const ext = resolveImageExtension(image.mimeType);
50748
50748
  const filePath = path.join(tempDir, `image-${i + 1}.${ext}`);
50749
50749
  const buffer = Buffer.from(image.data, "base64");
50750
- await fs$1.writeFile(filePath, buffer, { mode: 384 });
50750
+ await fsp.writeFile(filePath, buffer, { mode: 384 });
50751
50751
  paths.push(filePath);
50752
50752
  }
50753
50753
  const cleanup = async () => {
50754
- await fs$1.rm(tempDir, {
50754
+ await fsp.rm(tempDir, {
50755
50755
  recursive: true,
50756
50756
  force: true
50757
50757
  });
@@ -54268,7 +54268,7 @@ async function deliverSessionMaintenanceWarning(params) {
54268
54268
  return;
54269
54269
  }
54270
54270
  try {
54271
- const { deliverOutboundPayloads } = await import("./deliver-DZqeAImU.js").then((n) => n.n);
54271
+ const { deliverOutboundPayloads } = await import("./deliver-aIctLOEP.js").then((n) => n.n);
54272
54272
  const outboundSession = buildOutboundSessionContext({
54273
54273
  cfg: params.cfg,
54274
54274
  sessionKey: params.sessionKey
@@ -55217,7 +55217,7 @@ async function stageSandboxMedia(params) {
55217
55217
  const remoteMediaCacheDir = ctx.MediaRemoteHost ? path.join(workspaceDir, ".openclaw", "media", "remote-cache", sessionKey) : null;
55218
55218
  const effectiveWorkspaceDir = sandbox?.workspaceDir ?? remoteMediaCacheDir;
55219
55219
  if (!effectiveWorkspaceDir) return;
55220
- await fs$1.mkdir(effectiveWorkspaceDir, { recursive: true });
55220
+ await fsp.mkdir(effectiveWorkspaceDir, { recursive: true });
55221
55221
  const remoteAttachmentRoots = resolveIMessageRemoteAttachmentRoots({
55222
55222
  cfg,
55223
55223
  accountId: ctx.AccountId
@@ -55276,8 +55276,8 @@ async function stageLocalFileIntoRoot(params) {
55276
55276
  }
55277
55277
  async function stageRemoteFileIntoRoot(params) {
55278
55278
  const tmpRoot = resolvePreferredOpenClawTmpDir();
55279
- await fs$1.mkdir(tmpRoot, { recursive: true });
55280
- const tmpDir = await fs$1.mkdtemp(path.join(tmpRoot, "stage-sandbox-media-"));
55279
+ await fsp.mkdir(tmpRoot, { recursive: true });
55280
+ const tmpDir = await fsp.mkdtemp(path.join(tmpRoot, "stage-sandbox-media-"));
55281
55281
  const tmpPath = path.join(tmpDir, "download");
55282
55282
  try {
55283
55283
  await scpFile(params.remoteHost, params.remotePath, tmpPath);
@@ -55288,7 +55288,7 @@ async function stageRemoteFileIntoRoot(params) {
55288
55288
  maxBytes: params.maxBytes
55289
55289
  });
55290
55290
  } finally {
55291
- await fs$1.rm(tmpDir, {
55291
+ await fsp.rm(tmpDir, {
55292
55292
  recursive: true,
55293
55293
  force: true
55294
55294
  }).catch(() => {});
@@ -61192,7 +61192,7 @@ async function resolveDiscordPreflightAudioMentionContext(params) {
61192
61192
  let transcript;
61193
61193
  let carry;
61194
61194
  if (needsPreflightTranscription) try {
61195
- const { transcribeFirstAudio } = await import("./audio-preflight-DpH4ergs.js");
61195
+ const { transcribeFirstAudio } = await import("./audio-preflight-ARaM1d7_.js");
61196
61196
  const uploadable = audioAttachments.filter((att) => typeof att.url === "string" && att.url.length > 0);
61197
61197
  if (uploadable.length > 0) {
61198
61198
  const preflight = await transcribeFirstAudio({
@@ -68462,19 +68462,19 @@ function createDefaultDeps() {
68462
68462
  };
68463
68463
  }),
68464
68464
  sendMessageDiscord: async (...args) => {
68465
- const { sendMessageDiscord } = await import("./send-CUSwRN-T.js").then((n) => n.t);
68465
+ const { sendMessageDiscord } = await import("./send-B-mkV3_w.js").then((n) => n.t);
68466
68466
  return await sendMessageDiscord(...args);
68467
68467
  },
68468
68468
  sendMessageSlack: async (...args) => {
68469
- const { sendMessageSlack } = await import("./send-DzCL2yP6.js").then((n) => n.n);
68469
+ const { sendMessageSlack } = await import("./send-Dd4wRWhq.js").then((n) => n.n);
68470
68470
  return await sendMessageSlack(...args);
68471
68471
  },
68472
68472
  sendMessageSignal: async (...args) => {
68473
- const { sendMessageSignal } = await import("./send-DHpP56-Y.js").then((n) => n.i);
68473
+ const { sendMessageSignal } = await import("./send-nXTQsLrv.js").then((n) => n.i);
68474
68474
  return await sendMessageSignal(...args);
68475
68475
  },
68476
68476
  sendMessageIMessage: async (...args) => {
68477
- const { sendMessageIMessage } = await import("./send-Iyeo_Hcl.js").then((n) => n.n);
68477
+ const { sendMessageIMessage } = await import("./send-BHcO0Aru.js").then((n) => n.n);
68478
68478
  return await sendMessageIMessage(...args);
68479
68479
  }
68480
68480
  };
@@ -69720,10 +69720,10 @@ function estimateDurationSeconds(pcm) {
69720
69720
  return pcm.length / (bytesPerSample * SAMPLE_RATE);
69721
69721
  }
69722
69722
  async function writeWavFile(pcm) {
69723
- const tempDir = await fs$1.mkdtemp(path.join(resolvePreferredOpenClawTmpDir(), "discord-voice-"));
69723
+ const tempDir = await fsp.mkdtemp(path.join(resolvePreferredOpenClawTmpDir(), "discord-voice-"));
69724
69724
  const filePath = path.join(tempDir, `segment-${randomUUID()}.wav`);
69725
69725
  const wav = buildWavBuffer(pcm);
69726
- await fs$1.writeFile(filePath, wav);
69726
+ await fsp.writeFile(filePath, wav);
69727
69727
  scheduleTempCleanup(tempDir);
69728
69728
  return {
69729
69729
  path: filePath,
@@ -69732,7 +69732,7 @@ async function writeWavFile(pcm) {
69732
69732
  }
69733
69733
  function scheduleTempCleanup(tempDir, delayMs = 1800 * 1e3) {
69734
69734
  setTimeout(() => {
69735
- fs$1.rm(tempDir, {
69735
+ fsp.rm(tempDir, {
69736
69736
  recursive: true,
69737
69737
  force: true
69738
69738
  }).catch((err) => {
@@ -73517,7 +73517,7 @@ async function detectBinary(name) {
73517
73517
  if (!isSafeExecutableValue(name)) return false;
73518
73518
  const resolved = name.startsWith("~") ? resolveUserPath(name) : name;
73519
73519
  if (path.isAbsolute(resolved) || resolved.startsWith(".") || resolved.includes("/") || resolved.includes("\\")) try {
73520
- await fs$1.access(resolved);
73520
+ await fsp.access(resolved);
73521
73521
  return true;
73522
73522
  } catch {
73523
73523
  return false;
@@ -74181,7 +74181,7 @@ function normalizeAllowList$1(list) {
74181
74181
  async function detectRemoteHostFromCliPath(cliPath) {
74182
74182
  try {
74183
74183
  const expanded = cliPath.startsWith("~") ? cliPath.replace(/^~/, process.env.HOME ?? "") : cliPath;
74184
- const content = await fs$1.readFile(expanded, "utf8");
74184
+ const content = await fsp.readFile(expanded, "utf8");
74185
74185
  const userHostMatch = content.match(/\bssh\b[^\n]*?\s+([a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+)/);
74186
74186
  if (userHostMatch) return userHostMatch[1];
74187
74187
  return content.match(/\bssh\b[^\n]*?\s+([a-zA-Z][a-zA-Z0-9._-]*)\s+\S*\bimsg\b/)?.[1];
@@ -80953,7 +80953,7 @@ function readSlackExternalArgMenuToken(raw) {
80953
80953
  }
80954
80954
  let commandsRegistry;
80955
80955
  async function getCommandsRegistry() {
80956
- if (!commandsRegistry) commandsRegistry = await import("./commands-registry-BOqP8POi.js").then((n) => n.n);
80956
+ if (!commandsRegistry) commandsRegistry = await import("./commands-registry-md12jvN2.js").then((n) => n.n);
80957
80957
  return commandsRegistry;
80958
80958
  }
80959
80959
  function encodeSlackCommandArgValue(parts) {
@@ -81283,14 +81283,14 @@ async function registerSlackMonitorSlashCommands(params) {
81283
81283
  const channelName = channelInfo?.name;
81284
81284
  const roomLabel = channelName ? `#${channelName}` : `#${command.channel_id}`;
81285
81285
  const [{ resolveAgentRoute }, { finalizeInboundContext }, { dispatchReplyWithDispatcher }] = await Promise.all([
81286
- import("./resolve-route-D2gpKzx7.js").then((n) => n.r),
81286
+ import("./resolve-route-kCeK1PnG.js").then((n) => n.r),
81287
81287
  import("./inbound-context-CZ6JAe_K.js").then((n) => n.n),
81288
81288
  Promise.resolve().then(() => provider_dispatcher_exports)
81289
81289
  ]);
81290
81290
  const [{ resolveConversationLabel }, { createReplyPrefixOptions }, { recordInboundSessionMetaSafe }] = await Promise.all([
81291
81291
  import("./conversation-label-BkRfLUVO.js").then((n) => n.t),
81292
- import("./reply-prefix-W4rq5-Rh.js").then((n) => n.n),
81293
- import("./session-meta--JsYAyya.js").then((n) => n.n)
81292
+ import("./reply-prefix-98PG1Ki7.js").then((n) => n.n),
81293
+ import("./session-meta-D9pWrAgN.js").then((n) => n.n)
81294
81294
  ]);
81295
81295
  const route = resolveAgentRoute({
81296
81296
  cfg,
@@ -81355,9 +81355,9 @@ async function registerSlackMonitorSlashCommands(params) {
81355
81355
  });
81356
81356
  const deliverSlashPayloads = async (replies) => {
81357
81357
  const [{ deliverSlackSlashReplies }, { resolveChunkMode, resolveChunkNewlinePacking }, { resolveMarkdownTableMode }] = await Promise.all([
81358
- import("./replies-Dc6GVOqb.js").then((n) => n.r),
81359
- import("./chunk-D0gjlEAC.js").then((n) => n.s),
81360
- import("./markdown-tables-CRv466QZ.js").then((n) => n.t)
81358
+ import("./replies-Bqqi0vbE.js").then((n) => n.r),
81359
+ import("./chunk-D8Ei1sgE.js").then((n) => n.s),
81360
+ import("./markdown-tables-BD3LxqeL.js").then((n) => n.t)
81361
81361
  ]);
81362
81362
  await deliverSlackSlashReplies({
81363
81363
  replies,
@@ -81411,7 +81411,7 @@ async function registerSlackMonitorSlashCommands(params) {
81411
81411
  let nativeCommands = [];
81412
81412
  if (nativeEnabled) {
81413
81413
  reg = await getCommandsRegistry();
81414
- const skillCommands = nativeSkillsEnabled ? (await import("./skill-commands-B_Tcfb-O.js").then((n) => n.a)).listSkillCommandsForAgents({ cfg }) : [];
81414
+ const skillCommands = nativeSkillsEnabled ? (await import("./skill-commands-BQcYbtPM.js").then((n) => n.a)).listSkillCommandsForAgents({ cfg }) : [];
81415
81415
  nativeCommands = reg.listNativeCommandSpecsForConfig(cfg, {
81416
81416
  skillCommands,
81417
81417
  provider: "slack"
@@ -82355,7 +82355,7 @@ async function getMemorySearchManager(params) {
82355
82355
  if (cached) return { manager: cached };
82356
82356
  }
82357
82357
  try {
82358
- const { QmdMemoryManager } = await import("./qmd-manager-CfwCcQAr.js");
82358
+ const { QmdMemoryManager } = await import("./qmd-manager-DeSEoaIW.js");
82359
82359
  const primary = await QmdMemoryManager.create({
82360
82360
  cfg: params.cfg,
82361
82361
  agentId: params.agentId,
@@ -82367,7 +82367,7 @@ async function getMemorySearchManager(params) {
82367
82367
  const wrapper = new FallbackMemoryManager({
82368
82368
  primary,
82369
82369
  fallbackFactory: async () => {
82370
- const { MemoryIndexManager } = await import("./manager-DoZ5_BeO.js").then((n) => n.t);
82370
+ const { MemoryIndexManager } = await import("./manager-BgcW7tpv.js").then((n) => n.t);
82371
82371
  return await MemoryIndexManager.get(params);
82372
82372
  }
82373
82373
  }, () => {
@@ -82382,7 +82382,7 @@ async function getMemorySearchManager(params) {
82382
82382
  }
82383
82383
  }
82384
82384
  try {
82385
- const { MemoryIndexManager } = await import("./manager-DoZ5_BeO.js").then((n) => n.t);
82385
+ const { MemoryIndexManager } = await import("./manager-BgcW7tpv.js").then((n) => n.t);
82386
82386
  return { manager: await MemoryIndexManager.get(params) };
82387
82387
  } catch (err) {
82388
82388
  return {
@@ -82732,7 +82732,7 @@ const LEGACY_ARCHIVE_DEFAULT_RETENTION_MS = 720 * 60 * 60 * 1e3;
82732
82732
  const log$32 = createSubsystemLogger("config/sessions/legacy-import/archive");
82733
82733
  /** SHA-256 over the file's bytes; null when the file is gone (ENOENT). Other errors propagate. */
82734
82734
  async function sourceIdentity(filePath) {
82735
- const handle = await fs$1.open(filePath, "r").catch((error) => {
82735
+ const handle = await fsp.open(filePath, "r").catch((error) => {
82736
82736
  if (error.code === "ENOENT") return null;
82737
82737
  throw error;
82738
82738
  });
@@ -82785,9 +82785,9 @@ function fallbackArchiveDest(source, archiveRoot) {
82785
82785
  async function copyVerifiedTo(sourcePath, dest, expected) {
82786
82786
  const tmp = `${dest}.tmp-${randomUUID()}`;
82787
82787
  try {
82788
- const handle = await fs$1.open(tmp, "wx", 384);
82788
+ const handle = await fsp.open(tmp, "wx", 384);
82789
82789
  try {
82790
- const sourceHandle = await fs$1.open(sourcePath, "r");
82790
+ const sourceHandle = await fsp.open(sourcePath, "r");
82791
82791
  try {
82792
82792
  const chunk = Buffer.allocUnsafe(256 * 1024);
82793
82793
  let size = 0;
@@ -82804,18 +82804,18 @@ async function copyVerifiedTo(sourcePath, dest, expected) {
82804
82804
  } finally {
82805
82805
  await handle.close();
82806
82806
  }
82807
- await fs$1.chmod(tmp, 384);
82807
+ await fsp.chmod(tmp, 384);
82808
82808
  const copied = await identityOf(tmp);
82809
82809
  if (!copied || copied.fingerprint !== expected.fingerprint) throw new Error(`legacy archive cross-device copy diverged from the imported bytes: ${dest}`);
82810
82810
  try {
82811
- await fs$1.link(tmp, dest);
82811
+ await fsp.link(tmp, dest);
82812
82812
  } catch (error) {
82813
82813
  if (error.code !== "EEXIST") throw error;
82814
82814
  const existing = await identityOf(dest);
82815
82815
  if (!existing || existing.fingerprint !== expected.fingerprint) throw new Error(`legacy archive destination exists with different content: ${dest}`, { cause: error });
82816
82816
  }
82817
82817
  } finally {
82818
- await fs$1.rm(tmp, { force: true });
82818
+ await fsp.rm(tmp, { force: true });
82819
82819
  }
82820
82820
  }
82821
82821
  /**
@@ -82831,7 +82831,7 @@ async function planLegacyArchiveDest(source, archiveRoot, expected) {
82831
82831
  const resolvedRoot = path.resolve(archiveRoot);
82832
82832
  const { dir, dest } = archivePathsFor(source, resolvedRoot);
82833
82833
  try {
82834
- await fs$1.mkdir(dir, {
82834
+ await fsp.mkdir(dir, {
82835
82835
  recursive: true,
82836
82836
  mode: 448
82837
82837
  });
@@ -82871,7 +82871,7 @@ async function archiveLegacySource(source, archiveRoot, expected) {
82871
82871
  */
82872
82872
  async function archiveLegacySourceTo(source, dest, archiveRoot, expected) {
82873
82873
  const resolvedRoot = path.resolve(archiveRoot);
82874
- await fs$1.mkdir(path.dirname(dest), {
82874
+ await fsp.mkdir(path.dirname(dest), {
82875
82875
  recursive: true,
82876
82876
  mode: 448
82877
82877
  });
@@ -82881,14 +82881,14 @@ async function archiveLegacySourceTo(source, dest, archiveRoot, expected) {
82881
82881
  const expectedIdentity = expected ?? sourceIdentityValue;
82882
82882
  if (sourceIdentityValue.fingerprint !== expectedIdentity.fingerprint) throw new Error(`legacy source changed after import; failing closed: ${source.path}`);
82883
82883
  const destInodeVerified = async (destPath) => {
82884
- const [sourceStat, destStat] = await Promise.all([fs$1.stat(source.path), fs$1.stat(destPath).catch(() => void 0)]);
82884
+ const [sourceStat, destStat] = await Promise.all([fsp.stat(source.path), fsp.stat(destPath).catch(() => void 0)]);
82885
82885
  return destStat !== void 0 && destStat.dev === sourceStat.dev && destStat.ino === sourceStat.ino;
82886
82886
  };
82887
82887
  const moveInto = async (destPath) => {
82888
82888
  let moved = false;
82889
82889
  let independentArchive = false;
82890
82890
  try {
82891
- await fs$1.link(source.path, destPath);
82891
+ await fsp.link(source.path, destPath);
82892
82892
  moved = true;
82893
82893
  } catch (error) {
82894
82894
  const code = error.code;
@@ -82896,7 +82896,7 @@ async function archiveLegacySourceTo(source, dest, archiveRoot, expected) {
82896
82896
  const existing = await identityOf(destPath);
82897
82897
  if (existing && existing.fingerprint === expectedIdentity.fingerprint) {
82898
82898
  moved = true;
82899
- const [sourceStat, destStat] = await Promise.all([fs$1.stat(source.path), fs$1.stat(destPath)]);
82899
+ const [sourceStat, destStat] = await Promise.all([fsp.stat(source.path), fsp.stat(destPath)]);
82900
82900
  independentArchive = sourceStat.dev !== destStat.dev || sourceStat.ino !== destStat.ino;
82901
82901
  } else return {
82902
82902
  moved: false,
@@ -82917,13 +82917,13 @@ async function archiveLegacySourceTo(source, dest, archiveRoot, expected) {
82917
82917
  };
82918
82918
  const outcome = await moveInto(dest);
82919
82919
  if (outcome.divergent) throw new Error(`legacy archive destination exists with different content: ${dest}`);
82920
- await fs$1.chmod(dest, 384);
82920
+ await fsp.chmod(dest, 384);
82921
82921
  if (!await destInodeVerified(dest)) {
82922
82922
  const archived = await identityOf(dest);
82923
82923
  if (!archived || archived.fingerprint !== expectedIdentity.fingerprint) throw new Error(`legacy archive verification failed: ${dest}`);
82924
82924
  }
82925
82925
  if (outcome.moved) if (outcome.independentArchive) await unlinkSourceIfUnchanged(source.path, expectedIdentity);
82926
- else await fs$1.unlink(source.path);
82926
+ else await fsp.unlink(source.path);
82927
82927
  return dest;
82928
82928
  }
82929
82929
  /**
@@ -82937,12 +82937,12 @@ async function unlinkSourceIfUnchanged(sourcePath, expected) {
82937
82937
  const current = await sourceIdentity(sourcePath);
82938
82938
  if (!current) return;
82939
82939
  if (current.fingerprint !== expected.fingerprint) throw new Error(`legacy source changed before removal; failing closed: ${sourcePath}`);
82940
- await fs$1.unlink(sourcePath);
82940
+ await fsp.unlink(sourcePath);
82941
82941
  }
82942
82942
  async function chmodDirs(dir, stopAt) {
82943
82943
  let current = dir;
82944
82944
  while (current.startsWith(stopAt) && current !== stopAt) {
82945
- await fs$1.chmod(current, 448).catch(() => void 0);
82945
+ await fsp.chmod(current, 448).catch(() => void 0);
82946
82946
  const parent = path.dirname(current);
82947
82947
  if (parent === current) return;
82948
82948
  current = parent;
@@ -82971,11 +82971,11 @@ async function purgeExpiredLegacyArchives(runtime, opts) {
82971
82971
  log$32.warn("skipping legacy archive outside the archive root", { sourcePath: receipt.sourcePath });
82972
82972
  continue;
82973
82973
  }
82974
- if (!await fs$1.stat(archivePath).then(() => true).catch((error) => {
82974
+ if (!await fsp.stat(archivePath).then(() => true).catch((error) => {
82975
82975
  if (error.code === "ENOENT") return false;
82976
82976
  throw error;
82977
82977
  })) continue;
82978
- await fs$1.rm(archivePath, { force: true });
82978
+ await fsp.rm(archivePath, { force: true });
82979
82979
  purged += 1;
82980
82980
  await pruneEmptyArchiveDirs(path.dirname(archivePath), archiveRoot);
82981
82981
  }
@@ -82986,12 +82986,12 @@ async function pruneEmptyArchiveDirs(dir, stopAt) {
82986
82986
  while (current.startsWith(stopAt + path.sep)) {
82987
82987
  let entries;
82988
82988
  try {
82989
- entries = await fs$1.readdir(current);
82989
+ entries = await fsp.readdir(current);
82990
82990
  } catch {
82991
82991
  return;
82992
82992
  }
82993
82993
  if (entries.length > 0) return;
82994
- await fs$1.rmdir(current).catch(() => void 0);
82994
+ await fsp.rmdir(current).catch(() => void 0);
82995
82995
  current = path.dirname(current);
82996
82996
  }
82997
82997
  }
@@ -83567,7 +83567,7 @@ async function admitDurableKeyMappings(registry, listKeys, opts) {
83567
83567
  await opts?.clearMappingSourcePath?.(mapping.agentId, mapping.sessionId).catch(() => void 0);
83568
83568
  continue;
83569
83569
  }
83570
- const stats = await fs$1.stat(mapping.sourcePath).catch(() => void 0);
83570
+ const stats = await fsp.stat(mapping.sourcePath).catch(() => void 0);
83571
83571
  if (!stats?.isFile()) continue;
83572
83572
  registry.admit({
83573
83573
  path: mapping.sourcePath,
@@ -83767,7 +83767,7 @@ function createLegacySourceRegistry() {
83767
83767
  if (!isSettledReceipt(receipt, source.sizeBytes)) trackPendingPath(key, source);
83768
83768
  return;
83769
83769
  }
83770
- const stats = await fs$1.stat(key).catch(() => void 0);
83770
+ const stats = await fsp.stat(key).catch(() => void 0);
83771
83771
  if (!stats?.isFile() && receipt.status !== "imported") return;
83772
83772
  admit({
83773
83773
  path: key,
@@ -84260,7 +84260,7 @@ async function claimExclusivePartial(destPath) {
84260
84260
  for (let attempt = 0; attempt < 3; attempt += 1) {
84261
84261
  const candidate = `${destPath}.${process.pid}.${randomBytes(8).toString("hex")}.partial`;
84262
84262
  try {
84263
- await (await fs$1.open(candidate, "wx", 384)).close();
84263
+ await (await fsp.open(candidate, "wx", 384)).close();
84264
84264
  return candidate;
84265
84265
  } catch (err) {
84266
84266
  if (err.code !== "EEXIST") throw err;
@@ -84279,7 +84279,7 @@ async function backupSqliteSessionDatabase(params) {
84279
84279
  const dbPath = path.resolve(params.dbPath);
84280
84280
  const destPath = path.resolve(params.destPath);
84281
84281
  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");
84282
- await fs$1.mkdir(path.dirname(destPath), {
84282
+ await fsp.mkdir(path.dirname(destPath), {
84283
84283
  recursive: true,
84284
84284
  mode: 448
84285
84285
  });
@@ -84291,14 +84291,14 @@ async function backupSqliteSessionDatabase(params) {
84291
84291
  gated: sqliteBackupTestHooks.holdWorkerAtGate === true,
84292
84292
  writableSource: false
84293
84293
  });
84294
- await fs$1.rename(partialPath, destPath);
84294
+ await fsp.rename(partialPath, destPath);
84295
84295
  } catch (err) {
84296
- await fs$1.rm(partialPath, { force: true }).catch(() => {});
84296
+ await fsp.rm(partialPath, { force: true }).catch(() => {});
84297
84297
  throw err;
84298
84298
  }
84299
84299
  return {
84300
84300
  path: destPath,
84301
- bytes: (await fs$1.stat(destPath)).size
84301
+ bytes: (await fsp.stat(destPath)).size
84302
84302
  };
84303
84303
  }
84304
84304
 
@@ -84320,7 +84320,7 @@ const INCARNATION_SELECT_SQL = "SELECT id FROM ctx_legacy_import_incarnation LIM
84320
84320
  async function readDbIncarnationId(dbPath) {
84321
84321
  let db;
84322
84322
  try {
84323
- await fs$1.stat(dbPath);
84323
+ await fsp.stat(dbPath);
84324
84324
  db = new DatabaseSync(dbPath);
84325
84325
  const row = db.prepare(INCARNATION_SELECT_SQL).get();
84326
84326
  return typeof row?.id === "string" ? row.id : void 0;
@@ -84372,7 +84372,7 @@ async function takePreImportLegacySnapshot(params) {
84372
84372
  const marked = await readSnapshotMarker(backupsDir, canonicalDbPath);
84373
84373
  if (marked) return marked;
84374
84374
  if ((await params.listReceipts()).length > 0) return;
84375
- await fs$1.mkdir(backupsDir, {
84375
+ await fsp.mkdir(backupsDir, {
84376
84376
  recursive: true,
84377
84377
  mode: 448
84378
84378
  });
@@ -84383,7 +84383,7 @@ async function takePreImportLegacySnapshot(params) {
84383
84383
  dbPath,
84384
84384
  destPath
84385
84385
  });
84386
- if (dbId !== void 0) await fs$1.writeFile(path.join(backupsDir, snapshotMarkerFile(canonicalDbPath)), `${JSON.stringify({
84386
+ if (dbId !== void 0) await fsp.writeFile(path.join(backupsDir, snapshotMarkerFile(canonicalDbPath)), `${JSON.stringify({
84387
84387
  path: backup.path,
84388
84388
  createdAt: (/* @__PURE__ */ new Date()).toISOString(),
84389
84389
  canonicalDbPath,
@@ -84401,17 +84401,17 @@ async function takePreImportLegacySnapshot(params) {
84401
84401
  */
84402
84402
  async function cleanupPartialLegacyBackups(stateDir) {
84403
84403
  const backupsDir = path.join(stateDir, "backups");
84404
- const names = await fs$1.readdir(backupsDir).catch(() => []);
84404
+ const names = await fsp.readdir(backupsDir).catch(() => []);
84405
84405
  for (const name of names) {
84406
84406
  if (!name.endsWith(".partial")) continue;
84407
- await fs$1.rm(path.join(backupsDir, name), { force: true }).catch(() => void 0);
84407
+ await fsp.rm(path.join(backupsDir, name), { force: true }).catch(() => void 0);
84408
84408
  }
84409
84409
  }
84410
84410
  async function readSnapshotMarker(backupsDir, canonicalDbPath) {
84411
84411
  const currentIncarnationId = await readDbIncarnationId(canonicalDbPath);
84412
84412
  const keyed = await readMarkerFile(path.join(backupsDir, snapshotMarkerFile(canonicalDbPath)), canonicalDbPath, currentIncarnationId);
84413
84413
  if (keyed !== void 0) return keyed;
84414
- const names = await fs$1.readdir(backupsDir).catch(() => []);
84414
+ const names = await fsp.readdir(backupsDir).catch(() => []);
84415
84415
  for (const name of names) {
84416
84416
  if (!name.startsWith(SNAPSHOT_MARKER_PREFIX) || !name.endsWith(".json")) continue;
84417
84417
  const found = await readMarkerFile(path.join(backupsDir, name), canonicalDbPath, currentIncarnationId);
@@ -84420,7 +84420,7 @@ async function readSnapshotMarker(backupsDir, canonicalDbPath) {
84420
84420
  return readMarkerFile(path.join(backupsDir, SNAPSHOT_MARKER_FILE), canonicalDbPath, currentIncarnationId);
84421
84421
  }
84422
84422
  async function readMarkerFile(markerFile, canonicalDbPath, currentIncarnationId) {
84423
- const raw = await fs$1.readFile(markerFile, "utf8").catch(() => void 0);
84423
+ const raw = await fsp.readFile(markerFile, "utf8").catch(() => void 0);
84424
84424
  if (!raw) return;
84425
84425
  try {
84426
84426
  const parsed = JSON.parse(raw);
@@ -84432,7 +84432,7 @@ async function readMarkerFile(markerFile, canonicalDbPath, currentIncarnationId)
84432
84432
  if (currentIncarnationId !== void 0 && currentIncarnationId === markerId) return markerPath;
84433
84433
  return;
84434
84434
  }
84435
- const [markerStat, dbStat] = await Promise.all([fs$1.stat(markerDbPath).catch(() => void 0), fs$1.stat(canonicalDbPath).catch(() => void 0)]);
84435
+ const [markerStat, dbStat] = await Promise.all([fsp.stat(markerDbPath).catch(() => void 0), fsp.stat(canonicalDbPath).catch(() => void 0)]);
84436
84436
  if (markerStat !== void 0 && dbStat !== void 0 ? markerStat.dev === dbStat.dev && markerStat.ino === dbStat.ino : markerDbPath === canonicalDbPath) return markerPath;
84437
84437
  }
84438
84438
  } catch {}
@@ -84698,7 +84698,7 @@ const log$24 = createSubsystemLogger("config/sessions/legacy-import/index-import
84698
84698
  async function readLegacyIndexStore(storePath) {
84699
84699
  let raw;
84700
84700
  try {
84701
- raw = await fs$1.readFile(storePath, "utf8");
84701
+ raw = await fsp.readFile(storePath, "utf8");
84702
84702
  } catch (error) {
84703
84703
  throw new Error(`legacy index source unreadable: ${storePath}`, { cause: error });
84704
84704
  }
@@ -84937,7 +84937,7 @@ async function importLegacyIndex(runtime, source, opts = {}) {
84937
84937
  actorExplicit: entry.actor !== void 0
84938
84938
  }), opts.signal);
84939
84939
  if (transcriptPath && opts.discoveredTranscripts && path.resolve(transcriptPath) !== path.resolve(source.path)) try {
84940
- const stats = await fs$1.stat(transcriptPath);
84940
+ const stats = await fsp.stat(transcriptPath);
84941
84941
  if (stats.isFile()) opts.discoveredTranscripts.push({
84942
84942
  path: transcriptPath,
84943
84943
  kind: "transcript",
@@ -85053,7 +85053,7 @@ async function loadSessionKeyOverrides(stateDir) {
85053
85053
  const filePath = path.join(stateDir, "recovery", SESSION_KEY_OVERRIDES_FILENAME);
85054
85054
  let raw;
85055
85055
  try {
85056
- raw = await fs$1.readFile(filePath, "utf8");
85056
+ raw = await fsp.readFile(filePath, "utf8");
85057
85057
  } catch (error) {
85058
85058
  if (error.code !== "ENOENT") log$22.warn("session key overrides unreadable; ignoring", { error });
85059
85059
  return /* @__PURE__ */ new Map();
@@ -86590,7 +86590,7 @@ async function resolveGatewayOwnerStatus(pid, payload, platform, port) {
86590
86590
  }
86591
86591
  async function readLockPayload(lockPath) {
86592
86592
  try {
86593
- const raw = await fs$1.readFile(lockPath, "utf8");
86593
+ const raw = await fsp.readFile(lockPath, "utf8");
86594
86594
  const parsed = JSON.parse(raw);
86595
86595
  if (typeof parsed.pid !== "number") return null;
86596
86596
  if (typeof parsed.createdAt !== "string") return null;
@@ -86975,7 +86975,7 @@ async function withMemoryManagerForAgent(params) {
86975
86975
  }
86976
86976
  async function checkReadableFile(pathname) {
86977
86977
  try {
86978
- await fs$1.access(pathname, fs.constants.R_OK);
86978
+ await fsp.access(pathname, fs.constants.R_OK);
86979
86979
  return { exists: true };
86980
86980
  } catch (err) {
86981
86981
  const code = err.code;
@@ -87010,7 +87010,7 @@ async function scanMemoryFiles(workspaceDir, extraPaths = []) {
87010
87010
  if (alt.issue) issues.push(alt.issue);
87011
87011
  const resolvedExtraPaths = normalizeExtraMemoryPaths(workspaceDir, extraPaths);
87012
87012
  for (const extraPath of resolvedExtraPaths) try {
87013
- if ((await fs$1.lstat(extraPath)).isSymbolicLink()) continue;
87013
+ if ((await fsp.lstat(extraPath)).isSymbolicLink()) continue;
87014
87014
  const extraCheck = await checkReadableFile(extraPath);
87015
87015
  if (extraCheck.issue) issues.push(extraCheck.issue);
87016
87016
  } catch (err) {
@@ -87020,7 +87020,7 @@ async function scanMemoryFiles(workspaceDir, extraPaths = []) {
87020
87020
  }
87021
87021
  let dirReadable = null;
87022
87022
  try {
87023
- await fs$1.access(memoryDir, fs.constants.R_OK);
87023
+ await fsp.access(memoryDir, fs.constants.R_OK);
87024
87024
  dirReadable = true;
87025
87025
  } catch (err) {
87026
87026
  const code = err.code;
@@ -87068,7 +87068,7 @@ async function summarizeQmdIndexArtifact(manager) {
87068
87068
  if (!dbPath) return null;
87069
87069
  let stat;
87070
87070
  try {
87071
- stat = await fs$1.stat(dbPath);
87071
+ stat = await fsp.stat(dbPath);
87072
87072
  } catch (err) {
87073
87073
  const code = err.code;
87074
87074
  if (code === "ENOENT") throw new Error(`QMD index file not found: ${shortenHomePath(dbPath)}`, { cause: err });
@@ -87585,7 +87585,7 @@ function createPluginRuntime(options = {}) {
87585
87585
  workStates: readTaskWorkStates
87586
87586
  },
87587
87587
  resolveLearningWorkspaceDir: (agentId) => resolveLearningWorkspaceDir(loadConfig(), agentId),
87588
- sessions: { startUserRun: async (params) => (await import("./user-run-recording-BTjOSPH8.js").then((n) => n.n)).startUserSessionRun(params) }
87588
+ sessions: { startUserRun: async (params) => (await import("./user-run-recording-DZAbAydi.js").then((n) => n.n)).startUserSessionRun(params) }
87589
87589
  };
87590
87590
  Object.defineProperty(runtime, "analysis", {
87591
87591
  enumerable: true,
@@ -88502,7 +88502,7 @@ function resolvePluginWebSearchProviders(params) {
88502
88502
  //#endregion
88503
88503
  //#region src/agents/apply-patch-update.ts
88504
88504
  async function defaultReadFile(filePath) {
88505
- return fs$1.readFile(filePath, "utf8");
88505
+ return fsp.readFile(filePath, "utf8");
88506
88506
  }
88507
88507
  async function applyUpdateHunk(filePath, chunks, options) {
88508
88508
  const originalLines = (await (options?.readFile ?? defaultReadFile)(filePath).catch((err) => {
@@ -88823,7 +88823,7 @@ function resolvePatchFileOps(options) {
88823
88823
  const workspaceOnly = options.workspaceOnly !== false;
88824
88824
  return {
88825
88825
  readFile: async (filePath) => {
88826
- if (!workspaceOnly) return await fs$1.readFile(filePath, "utf8");
88826
+ if (!workspaceOnly) return await fsp.readFile(filePath, "utf8");
88827
88827
  const opened = await openBoundaryFile({
88828
88828
  absolutePath: filePath,
88829
88829
  rootPath: options.cwd,
@@ -88838,7 +88838,7 @@ function resolvePatchFileOps(options) {
88838
88838
  },
88839
88839
  writeFile: async (filePath, content) => {
88840
88840
  if (!workspaceOnly) {
88841
- await fs$1.writeFile(filePath, content, "utf8");
88841
+ await fsp.writeFile(filePath, content, "utf8");
88842
88842
  return;
88843
88843
  }
88844
88844
  const relative = toRelativeSandboxPath(options.cwd, filePath);
@@ -88849,8 +88849,8 @@ function resolvePatchFileOps(options) {
88849
88849
  encoding: "utf8"
88850
88850
  });
88851
88851
  },
88852
- remove: (filePath) => fs$1.rm(filePath),
88853
- mkdirp: (dir) => fs$1.mkdir(dir, { recursive: true }).then(() => {})
88852
+ remove: (filePath) => fsp.rm(filePath),
88853
+ mkdirp: (dir) => fsp.mkdir(dir, { recursive: true }).then(() => {})
88854
88854
  };
88855
88855
  }
88856
88856
  async function ensureDir(filePath, ops) {
@@ -89129,7 +89129,7 @@ async function recordLoopOutcome(args) {
89129
89129
  if (!args.ctx?.sessionKey) return;
89130
89130
  try {
89131
89131
  const { getDiagnosticSessionState } = await import("./diagnostic-session-state-B2VnYC0m.js").then((n) => n.n);
89132
- const { recordToolCallOutcome } = await import("./tool-loop-detection-CiexABx1.js");
89132
+ const { recordToolCallOutcome } = await import("./tool-loop-detection-B2G2F3vq.js");
89133
89133
  recordToolCallOutcome(getDiagnosticSessionState({
89134
89134
  sessionKey: args.ctx.sessionKey,
89135
89135
  sessionId: args.ctx?.agentId
@@ -89156,8 +89156,8 @@ async function runBeforeToolCallHook(args) {
89156
89156
  const params = args.params;
89157
89157
  if (args.ctx?.sessionKey) {
89158
89158
  const { getDiagnosticSessionState } = await import("./diagnostic-session-state-B2VnYC0m.js").then((n) => n.n);
89159
- const { logToolLoopAction } = await import("./diagnostic-D4aQ4rt0.js").then((n) => n.n);
89160
- const { detectToolCallLoop, recordToolCall } = await import("./tool-loop-detection-CiexABx1.js");
89159
+ const { logToolLoopAction } = await import("./diagnostic-O1TZk8ZJ.js").then((n) => n.n);
89160
+ const { detectToolCallLoop, recordToolCall } = await import("./tool-loop-detection-B2G2F3vq.js");
89161
89161
  const sessionState = getDiagnosticSessionState({
89162
89162
  sessionKey: args.ctx.sessionKey,
89163
89163
  sessionId: args.ctx?.agentId
@@ -89375,7 +89375,7 @@ function wrapHostEditToolWithPostWriteRecovery(base, root) {
89375
89375
  if (!pathParam || !newText) throw err;
89376
89376
  try {
89377
89377
  const absolutePath = resolveHostEditPath(root, pathParam);
89378
- const content = await fs$1.readFile(absolutePath, "utf-8");
89378
+ const content = await fsp.readFile(absolutePath, "utf-8");
89379
89379
  const hasNew = content.includes(newText);
89380
89380
  const stillHasOld = oldText !== void 0 && oldText.length > 0 && content.includes(oldText);
89381
89381
  if (hasNew && !stillHasOld) return {
@@ -89846,14 +89846,14 @@ function createSandboxEditOperations(params) {
89846
89846
  }
89847
89847
  async function writeHostFile(absolutePath, content) {
89848
89848
  const resolved = path.resolve(absolutePath);
89849
- await fs$1.mkdir(path.dirname(resolved), { recursive: true });
89850
- await fs$1.writeFile(resolved, content, "utf-8");
89849
+ await fsp.mkdir(path.dirname(resolved), { recursive: true });
89850
+ await fsp.writeFile(resolved, content, "utf-8");
89851
89851
  }
89852
89852
  function createHostWriteOperations(root, options) {
89853
89853
  if (!(options?.workspaceOnly ?? false)) return {
89854
89854
  mkdir: async (dir) => {
89855
89855
  const resolved = path.resolve(dir);
89856
- await fs$1.mkdir(resolved, { recursive: true });
89856
+ await fsp.mkdir(resolved, { recursive: true });
89857
89857
  },
89858
89858
  writeFile: writeHostFile
89859
89859
  };
@@ -89866,7 +89866,7 @@ function createHostWriteOperations(root, options) {
89866
89866
  cwd: root,
89867
89867
  root
89868
89868
  });
89869
- await fs$1.mkdir(resolved, { recursive: true });
89869
+ await fsp.mkdir(resolved, { recursive: true });
89870
89870
  },
89871
89871
  writeFile: async (absolutePath, content) => {
89872
89872
  await writeFileWithinRoot({
@@ -89882,12 +89882,12 @@ function createHostEditOperations(root, options) {
89882
89882
  if (!(options?.workspaceOnly ?? false)) return {
89883
89883
  readFile: async (absolutePath) => {
89884
89884
  const resolved = path.resolve(absolutePath);
89885
- return await fs$1.readFile(resolved);
89885
+ return await fsp.readFile(resolved);
89886
89886
  },
89887
89887
  writeFile: writeHostFile,
89888
89888
  access: async (absolutePath) => {
89889
89889
  const resolved = path.resolve(absolutePath);
89890
- await fs$1.access(resolved);
89890
+ await fsp.access(resolved);
89891
89891
  }
89892
89892
  };
89893
89893
  return {
@@ -92703,7 +92703,7 @@ async function compactEmbeddedPiSessionDirect(params) {
92703
92703
  } catch (err) {
92704
92704
  return fail(describeUnknownError(err));
92705
92705
  }
92706
- await fs$1.mkdir(resolvedWorkspace, { recursive: true });
92706
+ await fsp.mkdir(resolvedWorkspace, { recursive: true });
92707
92707
  const sandboxSessionKey = params.sessionKey?.trim() || params.sessionId;
92708
92708
  const sandbox = await resolveSandboxContext({
92709
92709
  config: params.config,
@@ -92712,7 +92712,7 @@ async function compactEmbeddedPiSessionDirect(params) {
92712
92712
  workspaceLane: params.workspaceLane
92713
92713
  });
92714
92714
  const effectiveWorkspace = sandbox?.enabled ? sandbox.workspaceAccess === "rw" ? resolvedWorkspace : sandbox.workspaceDir : resolvedWorkspace;
92715
- await fs$1.mkdir(effectiveWorkspace, { recursive: true });
92715
+ await fsp.mkdir(effectiveWorkspace, { recursive: true });
92716
92716
  let restoreSkillEnv;
92717
92717
  const releaseWorkspaceCwd = acquireWorkspaceCwd(effectiveWorkspace);
92718
92718
  try {
@@ -99148,7 +99148,7 @@ async function runEmbeddedAttempt(params) {
99148
99148
  let embeddedAttemptBegun = false;
99149
99149
  const runAbortController = new AbortController();
99150
99150
  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"}`);
99151
- await fs$1.mkdir(resolvedWorkspace, { recursive: true });
99151
+ await fsp.mkdir(resolvedWorkspace, { recursive: true });
99152
99152
  const sandboxSessionKey = params.sessionKey?.trim() || params.sessionId;
99153
99153
  const toolSessionKey = params.toolSessionKey?.trim() || sandboxSessionKey;
99154
99154
  const sandbox = params.skipSandbox ? null : await resolveSandboxContext({
@@ -99158,7 +99158,7 @@ async function runEmbeddedAttempt(params) {
99158
99158
  workspaceLane: params.workspaceLane
99159
99159
  });
99160
99160
  const effectiveWorkspace = sandbox?.enabled ? sandbox.workspaceAccess === "rw" ? resolvedWorkspace : sandbox.workspaceDir : resolvedWorkspace;
99161
- await fs$1.mkdir(effectiveWorkspace, { recursive: true });
99161
+ await fsp.mkdir(effectiveWorkspace, { recursive: true });
99162
99162
  let restoreSkillEnv;
99163
99163
  const releaseWorkspaceCwd = params.skipCwdChange ? void 0 : acquireWorkspaceCwd(effectiveWorkspace);
99164
99164
  const rawToolResultStash = openRawToolResultStash(params.sessionId);
@@ -101049,7 +101049,7 @@ async function runEmbeddedPiAgent(params) {
101049
101049
  const copilotAuthRetry = authRetryPending;
101050
101050
  authRetryPending = false;
101051
101051
  attemptedThinking.add(thinkLevel);
101052
- await fs$1.mkdir(resolvedWorkspace, { recursive: true });
101052
+ await fsp.mkdir(resolvedWorkspace, { recursive: true });
101053
101053
  const prompt = provider === "anthropic" ? scrubAnthropicRefusalMagic(params.prompt) : params.prompt;
101054
101054
  const attempt = await runEmbeddedAttempt({
101055
101055
  sessionId: params.sessionId,
@@ -101933,7 +101933,7 @@ async function runModelGate(spec, ctx) {
101933
101933
  const isolatedSessionId = randomNonce;
101934
101934
  const isolatedRunId = randomNonce;
101935
101935
  const tmpBaseDir = resolvePreferredOpenClawTmpDir();
101936
- tmpDir = await fs$1.mkdtemp(path.join(tmpBaseDir, "wake-gate-"));
101936
+ tmpDir = await fsp.mkdtemp(path.join(tmpBaseDir, "wake-gate-"));
101937
101937
  const workspaceDir = tmpDir;
101938
101938
  const prompt = spec.prompt ?? DEFAULT_MODEL_PROMPT;
101939
101939
  const timeoutMs = spec.timeoutMs ?? DEFAULT_MODEL_TIMEOUT_MS;
@@ -101991,7 +101991,7 @@ async function runModelGate(spec, ctx) {
101991
101991
  log$1.warn("model gate error", { error: err instanceof Error ? err.message : String(err) });
101992
101992
  return { wake: false };
101993
101993
  } finally {
101994
- if (tmpDir) await fs$1.rm(tmpDir, {
101994
+ if (tmpDir) await fsp.rm(tmpDir, {
101995
101995
  recursive: true,
101996
101996
  force: true
101997
101997
  }).catch(() => void 0);
@@ -102221,7 +102221,7 @@ async function resolveHeartbeatPreflight(params) {
102221
102221
  const workspaceDir = resolveAgentWorkspaceDir(params.cfg, params.agentId);
102222
102222
  const heartbeatFilePath = path.join(workspaceDir, DEFAULT_HEARTBEAT_FILENAME);
102223
102223
  try {
102224
- if (isHeartbeatContentEffectivelyEmpty(await fs$1.readFile(heartbeatFilePath, "utf-8"))) return {
102224
+ if (isHeartbeatContentEffectivelyEmpty(await fsp.readFile(heartbeatFilePath, "utf-8"))) return {
102225
102225
  ...basePreflight,
102226
102226
  skipReason: "empty-heartbeat-file"
102227
102227
  };