openclaw-multi-auto 1.3.0 → 1.3.2

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 (198) hide show
  1. package/dist/{accounts-L9ByEpnP.js → accounts-C9HcPI9h.js} +2 -2
  2. package/dist/{accounts-BOzyfwW4.js → accounts-C_lW3Ag9.js} +2 -2
  3. package/dist/{accounts-yfBeCZtS.js → accounts-Tgelvk0C.js} +17 -17
  4. package/dist/{active-listener-D1yqT1cw.js → active-listener-BEdprTkn.js} +2 -2
  5. package/dist/{api-key-rotation-DtsNS2Nb.js → api-key-rotation-BJpKWXy0.js} +2 -2
  6. package/dist/{audio-preflight-DoPfNXDz.js → audio-preflight-BMvgEQ5j.js} +32 -32
  7. package/dist/{audio-transcription-runner-CzjuH3uL.js → audio-transcription-runner-gLFfz8fr.js} +12 -12
  8. package/dist/{audit-membership-runtime-DWyHWAHM.js → audit-membership-runtime-Dntemq07.js} +4 -4
  9. package/dist/build-info.json +3 -3
  10. package/dist/bundled/boot-md/handler.js +51 -51
  11. package/dist/bundled/bootstrap-extra-files/handler.js +6 -6
  12. package/dist/bundled/command-logger/handler.js +2 -2
  13. package/dist/bundled/session-memory/handler.js +51 -51
  14. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  15. package/dist/{channel-activity-xHOMiarp.js → channel-activity-BDnjYF7B.js} +3 -3
  16. package/dist/{chrome-DlhJHqj8.js → chrome-DxxEKrY7.js} +26 -26
  17. package/dist/{commands-registry-V1zZ5pPC.js → commands-registry-D5qXbFJn.js} +4 -4
  18. package/dist/{deliver-CApVJA_l.js → deliver-DbdywYJE.js} +21 -21
  19. package/dist/deliver-runtime-BFs7iAZF.js +36 -0
  20. package/dist/deps-send-discord.runtime-DZUccI6Z.js +26 -0
  21. package/dist/deps-send-imessage.runtime-CF3OpoqY.js +25 -0
  22. package/dist/deps-send-signal.runtime-Cw4-ozeO.js +24 -0
  23. package/dist/deps-send-slack.runtime-BDsDhS1P.js +22 -0
  24. package/dist/deps-send-telegram.runtime-D_4xVasO.js +27 -0
  25. package/dist/deps-send-whatsapp.runtime-DK8jqd14.js +60 -0
  26. package/dist/{diagnostic-Bn4PZjMZ.js → diagnostic-Co6Kghr-.js} +2 -2
  27. package/dist/{errors-CCLeFWAg.js → errors-xt401nuk.js} +1 -1
  28. package/dist/{fetch-BlJWzEP6.js → fetch-DuraYswo.js} +5 -5
  29. package/dist/{fetch-guard-ChYBwfiy.js → fetch-guard-DWr0d00H.js} +2 -2
  30. package/dist/{frontmatter-CvaMP376.js → frontmatter-BkTfEZ93.js} +3 -3
  31. package/dist/{fs-safe-0jAo_Whb.js → fs-safe-CTYUrIgQ.js} +4 -4
  32. package/dist/{github-copilot-token-D13V9YBz.js → github-copilot-token-BDioPmd6.js} +7 -7
  33. package/dist/{image-B3Mz7N5I.js → image-eT7Y-nP5.js} +6 -6
  34. package/dist/{image-ops-CehkHxmW.js → image-ops-BuUnEOE0.js} +2 -2
  35. package/dist/image-runtime-BcAK3n8a.js +29 -0
  36. package/dist/{ir-DAP-B-Xw.js → ir-B83looB-.js} +8 -8
  37. package/dist/{legacy-names-TyzbVqa_.js → legacy-names-DOC03BkU.js} +1 -1
  38. package/dist/llm-slug-generator.js +51 -51
  39. package/dist/{logger-DMZQQtxK.js → logger-BfjWMCSD.js} +7 -7
  40. package/dist/{login-DiCctRo1.js → login-CrIwcrVI.js} +5 -5
  41. package/dist/{login-qr-MUbXgjtd.js → login-qr-BpPDZdl_.js} +10 -10
  42. package/dist/{manager-BW_NSIMl.js → manager-1bvuGrNR.js} +13 -13
  43. package/dist/manager-runtime-FO1Sx3W8.js +18 -0
  44. package/dist/{model-selection-idoqPmw0.js → model-selection-Dna0Gz1k.js} +43 -43
  45. package/dist/{outbound-C2kanETZ.js → outbound-ChDjtuD6.js} +6 -6
  46. package/dist/{outbound-attachment-DBrYWX8h.js → outbound-attachment-DqHlD21U.js} +2 -2
  47. package/dist/{path-alias-guards-DqXRZmsL.js → path-alias-guards-BzvdLvTI.js} +1 -1
  48. package/dist/{paths-CCxysrzL.js → paths-Bkr-BCxW.js} +4 -4
  49. package/dist/{paths-C6TxBCvO.js → paths-Cvc9EM8Y.js} +5 -5
  50. package/dist/{pi-embedded-bcjMe3wj.js → pi-embedded-BQQa91aA.js} +167 -167
  51. package/dist/{pi-embedded-helpers-D5yyGEvA.js → pi-embedded-helpers-CLXm10bV.js} +52 -52
  52. package/dist/{pi-model-discovery-BGgOlX8N.js → pi-model-discovery-Dymwdjt0.js} +7 -7
  53. package/dist/pi-model-discovery-runtime-BeY4EUPp.js +11 -0
  54. package/dist/{pi-tools.before-tool-call.runtime-BuLxSyx9.js → pi-tools.before-tool-call.runtime-Cwab_5W1.js} +9 -9
  55. package/dist/plugin-sdk/{accounts-C3m65--E.js → accounts-BJAXxY46.js} +2 -2
  56. package/dist/plugin-sdk/{accounts-CNCCkdEF.js → accounts-C1j7HSL0.js} +3 -3
  57. package/dist/plugin-sdk/{accounts-BslAlVYS.js → accounts-DyFCXtHv.js} +2 -2
  58. package/dist/plugin-sdk/{active-listener-CkPnMUkB.js → active-listener-CftX5jLD.js} +2 -2
  59. package/dist/plugin-sdk/{api-key-rotation-BXnNsojA.js → api-key-rotation-8nyyt1kx.js} +2 -2
  60. package/dist/plugin-sdk/{audio-preflight-CtO4fFvp.js → audio-preflight-C_aSAPR1.js} +26 -26
  61. package/dist/plugin-sdk/{audio-transcription-runner-DnxvOS1-.js → audio-transcription-runner-CB53F7_7.js} +11 -11
  62. package/dist/plugin-sdk/{audit-membership-runtime-BpfoSk8M.js → audit-membership-runtime-BXndI4LG.js} +2 -2
  63. package/dist/plugin-sdk/{channel-activity-WJYxcJ3S.js → channel-activity-C5y8AgAV.js} +3 -3
  64. package/dist/plugin-sdk/{channel-web-dO5k3ubM.js → channel-web-DBTRO03V.js} +18 -18
  65. package/dist/plugin-sdk/{chrome-CjNTuJML.js → chrome-f00sZkDX.js} +6 -6
  66. package/dist/plugin-sdk/{commands-registry-CdYjoI0i.js → commands-registry-BJ_NxG2F.js} +4 -4
  67. package/dist/plugin-sdk/{common-oYc5vPFl.js → common-Cf27Jwxu.js} +2 -2
  68. package/dist/plugin-sdk/{config-B1z-UxQ3.js → config-CHQrpx-Q.js} +7 -7
  69. package/dist/plugin-sdk/{deliver-D5_6T567.js → deliver-DNEuetST.js} +10 -10
  70. package/dist/plugin-sdk/deliver-runtime-BFdqklJM.js +32 -0
  71. package/dist/plugin-sdk/deps-send-discord.runtime-DuqpYwU0.js +23 -0
  72. package/dist/plugin-sdk/deps-send-imessage.runtime-CZ2rS8Lb.js +22 -0
  73. package/dist/plugin-sdk/deps-send-signal.runtime-BdqiWhIh.js +21 -0
  74. package/dist/plugin-sdk/deps-send-slack.runtime-04s36qiC.js +19 -0
  75. package/dist/plugin-sdk/deps-send-telegram.runtime-LE5tkPvr.js +24 -0
  76. package/dist/plugin-sdk/deps-send-whatsapp.runtime-Bz57lobC.js +57 -0
  77. package/dist/plugin-sdk/{diagnostic-Bxxu0ig-.js → diagnostic-LYUUmjJ5.js} +2 -2
  78. package/dist/plugin-sdk/{errors-B3cHyZZA.js → errors-CtMWwS2Z.js} +1 -1
  79. package/dist/plugin-sdk/{fetch-guard-Dcgod0tg.js → fetch-guard-CxYB5Kg6.js} +2 -2
  80. package/dist/plugin-sdk/{fs-safe-BaKqI3G4.js → fs-safe-DtfhxbrI.js} +3 -3
  81. package/dist/plugin-sdk/{image-B2mQW9Rb.js → image-BwjYjRHx.js} +6 -6
  82. package/dist/plugin-sdk/{image-ops-Cbzr4U9l.js → image-ops-BnZKcbd6.js} +2 -2
  83. package/dist/plugin-sdk/image-runtime-B8twoubs.js +25 -0
  84. package/dist/plugin-sdk/{ir-ZEmrTr4J.js → ir-Z4hX67TJ.js} +7 -7
  85. package/dist/plugin-sdk/{local-roots-CIPRxA-4.js → local-roots-KhjQw04O.js} +4 -4
  86. package/dist/plugin-sdk/{logger-CvPFVOgT.js → logger-DHIIvMxj.js} +2 -2
  87. package/dist/plugin-sdk/{login-CCTew9bt.js → login-C31642Ld.js} +4 -4
  88. package/dist/plugin-sdk/{login-qr-BI3Vi_wJ.js → login-qr--y2SG_Ue.js} +5 -5
  89. package/dist/plugin-sdk/{manager-BEoYPn7R.js → manager-2UZBMCc7.js} +8 -8
  90. package/dist/plugin-sdk/manager-runtime-CMeLwose.js +15 -0
  91. package/dist/plugin-sdk/{outbound-ByOw1K6W.js → outbound-Ba0QUI5h.js} +5 -5
  92. package/dist/plugin-sdk/{outbound-attachment-BzVhxRRw.js → outbound-attachment-B1Laso-8.js} +2 -2
  93. package/dist/plugin-sdk/{path-alias-guards-sWayacde.js → path-alias-guards-C7Vm5DZ1.js} +1 -1
  94. package/dist/plugin-sdk/{paths-Dpg3qxcl.js → paths-DopV9PQG.js} +1 -1
  95. package/dist/plugin-sdk/{pi-embedded-helpers-DIxXkGJf.js → pi-embedded-helpers-DnA_OCzP.js} +16 -16
  96. package/dist/plugin-sdk/{pi-model-discovery-DM_2uFtj.js → pi-model-discovery-DdPqXk8f.js} +1 -1
  97. package/dist/plugin-sdk/pi-model-discovery-runtime-D8CJhtJY.js +8 -0
  98. package/dist/plugin-sdk/{pi-tools.before-tool-call.runtime-w1dqL_ty.js → pi-tools.before-tool-call.runtime-DxFHiLUE.js} +4 -4
  99. package/dist/plugin-sdk/{plugins-C4USiH29.js → plugins-CbCt4osF.js} +4 -4
  100. package/dist/plugin-sdk/{proxy-env-ET-rp8eg.js → proxy-env-C63mMdas.js} +1 -1
  101. package/dist/{proxy-fetch-CCjEYbFm.js → plugin-sdk/proxy-fetch-Ch95c_Y2.js} +1 -1
  102. package/dist/plugin-sdk/{pw-ai-CyOt3RDA.js → pw-ai-DpJk62D4.js} +9 -9
  103. package/dist/plugin-sdk/{qmd-manager-BySdoVR7.js → qmd-manager-Ca-iSfEE.js} +7 -7
  104. package/dist/plugin-sdk/{query-expansion-C6uS-7lj.js → query-expansion-B_Xe41Ab.js} +4 -4
  105. package/dist/plugin-sdk/{redact-Bvxt1T_Q.js → redact-hp9TOulW.js} +1 -1
  106. package/dist/plugin-sdk/{reply-CTCSeQqW.js → reply-CovBlFea.js} +73 -73
  107. package/dist/plugin-sdk/{resolve-outbound-target-Bw8YNANu.js → resolve-outbound-target-BbrHgyUk.js} +2 -2
  108. package/dist/plugin-sdk/{run-with-concurrency-C_KCHwvf.js → run-with-concurrency-BR1DXa8T.js} +1 -1
  109. package/dist/plugin-sdk/runtime-whatsapp-login.runtime-SkO91TZH.js +10 -0
  110. package/dist/plugin-sdk/runtime-whatsapp-outbound.runtime-B0VWK5hm.js +19 -0
  111. package/dist/plugin-sdk/{send-C0w6xP2x.js → send-BTztm3D2.js} +6 -6
  112. package/dist/plugin-sdk/{send-qPyNGSe4.js → send-BXpXBwM_.js} +13 -13
  113. package/dist/plugin-sdk/{send-BZ6nYFZr.js → send-BvAtLLPl.js} +5 -5
  114. package/dist/plugin-sdk/{send-CFf-1V89.js → send-CWJUuG0i.js} +8 -8
  115. package/dist/plugin-sdk/{send-CY-Qfwia.js → send-EcglC4cG.js} +7 -7
  116. package/dist/plugin-sdk/{session-COrvpvUQ.js → session-k256LJZT.js} +3 -3
  117. package/dist/plugin-sdk/{skill-commands-DZqhtmiv.js → skill-commands-DoRqLzxm.js} +4 -4
  118. package/dist/plugin-sdk/{skills-Cw_vXEJb.js → skills-QudILG6e.js} +6 -6
  119. package/dist/plugin-sdk/slash-commands.runtime-DS6vCNSL.js +13 -0
  120. package/dist/plugin-sdk/slash-dispatch.runtime-BXrxb2wd.js +52 -0
  121. package/dist/plugin-sdk/slash-skill-commands.runtime-Bd6qQ2oT.js +16 -0
  122. package/dist/plugin-sdk/{store-CMHj6IIw.js → store-BbDQw3g6.js} +2 -2
  123. package/dist/plugin-sdk/subagent-registry-runtime-1uwQbuXj.js +52 -0
  124. package/dist/plugin-sdk/{tables-CSqrHsKL.js → tables-BhvloMKN.js} +1 -1
  125. package/dist/plugin-sdk/{thinking-DOnsR_A8.js → thinking-URzkT-3p.js} +7 -7
  126. package/dist/plugin-sdk/{tokens-BDr0Z9o3.js → tokens-B1PW5Ayy.js} +1 -1
  127. package/dist/plugin-sdk/{tool-images-eEfOVkzf.js → tool-images-xpqbP6RR.js} +2 -2
  128. package/dist/plugin-sdk/web-B74yhL2N.js +56 -0
  129. package/dist/plugin-sdk/{whatsapp-actions-xcleMoMv.js → whatsapp-actions-RcZ6vp61.js} +17 -17
  130. package/dist/plugin-sdk/whatsapp.js +50 -50
  131. package/dist/{plugins-CWkRQYDj.js → plugins-4Rj4OjLY.js} +11 -11
  132. package/dist/{proxy-env-Cq5gdrbj.js → proxy-env-DlmzDx8x.js} +1 -1
  133. package/dist/{plugin-sdk/proxy-fetch-uDXGKG3Z.js → proxy-fetch-B2pEfjbR.js} +1 -1
  134. package/dist/{pw-ai-CDQDCfUa.js → pw-ai-DNMjFMqH.js} +14 -14
  135. package/dist/{qmd-manager-BsYsO9Ii.js → qmd-manager-BtIKUaO9.js} +10 -10
  136. package/dist/{query-expansion-DtLc3wjL.js → query-expansion-CX-1fS52.js} +6 -6
  137. package/dist/{redact-ClbcYG1J.js → redact-COik8ET1.js} +1 -1
  138. package/dist/{run-with-concurrency-D_ZpbgEG.js → run-with-concurrency-BgYfgkXT.js} +4 -4
  139. package/dist/runtime-whatsapp-login.runtime-DUb55byQ.js +13 -0
  140. package/dist/runtime-whatsapp-outbound.runtime-Bii_xSfI.js +22 -0
  141. package/dist/{send-Dx2RkUOZ.js → send-6lz6rNVP.js} +6 -6
  142. package/dist/{send-vmONuVgL.js → send-BHTiZcH3.js} +26 -26
  143. package/dist/{send-Bj776ESJ.js → send-L7gRiwyd.js} +7 -7
  144. package/dist/{send-DcxmcFi_.js → send-PE6cwoTe.js} +8 -8
  145. package/dist/{send-BQERFNyo.js → send-dfu6_rgf.js} +5 -5
  146. package/dist/{session-A4QhBRvH.js → session-D8ImowSs.js} +8 -8
  147. package/dist/{skill-commands-CMzBZKG2.js → skill-commands-DNqJ-kwn.js} +9 -9
  148. package/dist/{skills-CE_iqvM5.js → skills-7ODkHQYp.js} +22 -22
  149. package/dist/slash-commands.runtime-CVw6566g.js +16 -0
  150. package/dist/slash-dispatch.runtime-B9Ygtzi4.js +56 -0
  151. package/dist/slash-skill-commands.runtime-DxZ4z5h6.js +20 -0
  152. package/dist/{store--eR1R_UX.js → store-D89wDcz9.js} +2 -2
  153. package/dist/subagent-registry-runtime-DL1Wv7nA.js +56 -0
  154. package/dist/{subsystem-Di1z8l0Z.js → subsystem-B45WV3qB.js} +14 -14
  155. package/dist/{tables-d739Y1xW.js → tables-mE4cJBN2.js} +1 -1
  156. package/dist/{target-errors-CBI2Ga0y.js → target-errors-mnlwhAjP.js} +2 -2
  157. package/dist/{thinking-DXYisHiZ.js → thinking-BeGmb5k6.js} +7 -7
  158. package/dist/{tokens-DxnY9ui_.js → tokens-q32vI39c.js} +1 -1
  159. package/dist/{tool-images-2cBx1W8h.js → tool-images-RZdHiZcG.js} +2 -2
  160. package/dist/{web-NWKn8ABz.js → web-Btj-e8kN.js} +55 -55
  161. package/dist/{whatsapp-actions-iEArE_Ez.js → whatsapp-actions-BHbJJyqw.js} +21 -21
  162. package/dist/{workspace-CUVC6GX1.js → workspace-U-DyR64O.js} +20 -20
  163. package/package.json +2 -2
  164. package/scripts/npm_publish.sh +65 -38
  165. package/dist/deliver-runtime-D1z-h5eg.js +0 -36
  166. package/dist/deps-send-discord.runtime-DnbhTFX9.js +0 -26
  167. package/dist/deps-send-imessage.runtime-BOiQ6mDx.js +0 -25
  168. package/dist/deps-send-signal.runtime-CTcl388M.js +0 -24
  169. package/dist/deps-send-slack.runtime-CCqBz4Kg.js +0 -22
  170. package/dist/deps-send-telegram.runtime-DGSKTCpH.js +0 -27
  171. package/dist/deps-send-whatsapp.runtime-Dz_4fi2D.js +0 -60
  172. package/dist/image-runtime-DWjhow2W.js +0 -29
  173. package/dist/manager-runtime-BN6VevdC.js +0 -18
  174. package/dist/pi-model-discovery-runtime-Bwmi4Ev8.js +0 -11
  175. package/dist/plugin-sdk/deliver-runtime-C5dgvvga.js +0 -32
  176. package/dist/plugin-sdk/deps-send-discord.runtime-Dg4N7PHJ.js +0 -23
  177. package/dist/plugin-sdk/deps-send-imessage.runtime-0OEwzMQm.js +0 -22
  178. package/dist/plugin-sdk/deps-send-signal.runtime-BM1jRt3G.js +0 -21
  179. package/dist/plugin-sdk/deps-send-slack.runtime-1E3BYRdF.js +0 -19
  180. package/dist/plugin-sdk/deps-send-telegram.runtime-DNCxIflA.js +0 -24
  181. package/dist/plugin-sdk/deps-send-whatsapp.runtime-OLwr-9c8.js +0 -57
  182. package/dist/plugin-sdk/image-runtime-BFm45j49.js +0 -25
  183. package/dist/plugin-sdk/manager-runtime-DxclHQ4U.js +0 -15
  184. package/dist/plugin-sdk/pi-model-discovery-runtime-BuzvkvNR.js +0 -8
  185. package/dist/plugin-sdk/runtime-whatsapp-login.runtime-BxgRDkhc.js +0 -10
  186. package/dist/plugin-sdk/runtime-whatsapp-outbound.runtime-elOqrkfg.js +0 -19
  187. package/dist/plugin-sdk/slash-commands.runtime-D67JLweo.js +0 -13
  188. package/dist/plugin-sdk/slash-dispatch.runtime-DvcpvCJ0.js +0 -52
  189. package/dist/plugin-sdk/slash-skill-commands.runtime-BM1x3azR.js +0 -16
  190. package/dist/plugin-sdk/subagent-registry-runtime-1lbDyRzz.js +0 -52
  191. package/dist/plugin-sdk/web-BLyT64pW.js +0 -56
  192. package/dist/runtime-whatsapp-login.runtime-IeylZEl4.js +0 -13
  193. package/dist/runtime-whatsapp-outbound.runtime-ClBRuLsq.js +0 -22
  194. package/dist/slash-commands.runtime-Cpn2tYW4.js +0 -16
  195. package/dist/slash-dispatch.runtime-CWbpp23S.js +0 -56
  196. package/dist/slash-skill-commands.runtime-DKMvvdDW.js +0 -20
  197. package/dist/subagent-registry-runtime-DEVpAaAP.js +0 -56
  198. package/vendor/libsignal-node/yarn.lock +0 -893
@@ -1,67 +1,67 @@
1
- import { _ as toAgentModelListLike, a as resolveAgentDir, c as resolveAgentWorkspaceDir, d as resolveRunModelFallbacksOverride, f as resolveSessionAgentId, g as resolveAgentModelPrimaryValue, h as resolveAgentModelFallbackValues, i as resolveAgentConfig, l as resolveDefaultAgentId, n as hasConfiguredModelFallbacks, p as resolveSessionAgentIds, r as listAgentIds, s as resolveAgentSkillsFilter, t as runTasksWithConcurrency, u as resolveEffectiveModelFallbacks } from "./run-with-concurrency-D_ZpbgEG.js";
2
- import { a as resolveGatewayPort, c as resolveStateDir, d as resolveRequiredHomeDir, l as expandHomePrefix, n as STATE_DIR, r as resolveConfigPath } from "./paths-C6TxBCvO.js";
3
- import { C as normalizeLogLevel, E as consumeRootOptionToken, T as FLAG_TERMINATOR, _ as isRich, a as clearActiveProgressLine, c as danger, f as setVerbose, g as colorize, h as warn, i as defaultRuntime, o as registerActiveProgressLine, p as shouldLogVerbose, r as createNonExitingRuntime, s as unregisterActiveProgressLine, t as createSubsystemLogger, u as logVerbose, v as theme, w as resolvePreferredOpenClawTmpDir, y as getChildLogger } from "./subsystem-Di1z8l0Z.js";
4
- import { $ as parseAgentSessionKey, A as normalizeWindowsPathForComparison, B as resolveAgentIdFromSessionKey, G as normalizeAccountId$2, H as sanitizeAgentId, I as classifySessionKeyShape, J as deriveSessionChatType, K as normalizeOptionalAccountId, L as isValidAgentId, M as DEFAULT_MAIN_KEY, N as buildAgentMainSessionKey, P as buildAgentPeerSessionKey, Q as isSubagentSessionKey, R as normalizeAgentId, U as scopedHeartbeatWakeOptions, V as resolveThreadSessionKeys, W as DEFAULT_ACCOUNT_ID, X as isAcpSessionKey, Y as getSubagentDepth, Z as isCronSessionKey, _ as runExec, a as DEFAULT_IDENTITY_FILENAME, b as openBoundaryFile, et as resolveThreadParentSessionKey, f as loadWorkspaceBootstrapFiles, g as runCommandWithTimeout, j as DEFAULT_AGENT_ID, l as ensureAgentWorkspace, m as resolveOpenClawPackageRoot, n as DEFAULT_AGENT_WORKSPACE_DIR, q as isBlockedObjectKey, r as DEFAULT_BOOTSTRAP_FILENAME, u as filterBootstrapFilesForSession, v as spawnWithFallback, x as openBoundaryFileSync, z as normalizeMainKey } from "./workspace-CUVC6GX1.js";
5
- import { C as sleep$1, D as isPlainObject, E as truncateUtf16Safe, S as shortenHomePath, a as CONFIG_DIR, d as formatTerminalLink, f as isRecord$1, h as normalizeE164, i as logWarn, l as ensureDir$3, n as logError, r as logInfo, s as clampInt, t as logDebug, u as escapeRegExp, w as sliceUtf16Safe, x as shortenHomeInString, y as resolveUserPath } from "./logger-DMZQQtxK.js";
6
- import { $ as resolveConfigSnapshotHash, $n as dedupeProfileIds, $t as createPluginRegistry, A as getCustomProviderApiKey, An as unwrapKnownDispatchWrapperInvocation, At as isPathWithinRoot, B as markAuthProfileFailure, Bn as resolveSlackNativeStreaming, Bt as resolveMemorySlotDecision, C as OLLAMA_NATIVE_BASE_URL, Cn as DEFAULT_SAFE_BINS, D as buildStreamErrorAssistantMessage, Dn as extractShellWrapperInlineCommand, Dt as AVATAR_MAX_BYTES, E as buildAssistantMessageWithZeroUsage, En as resolveCommandResolutionFromArgv, Fn as resolveSafeBinProfiles, Ft as isPathInside, G as describeUnknownError$1, Gn as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH, Gt as normalizeAnyChannelId, H as resolveProfilesUnavailableReason, Ht as CHAT_CHANNEL_ORDER, I as resolveAuthProfileOrder, In as applyMergePatch, It as safeStatSync, J as parseDotPath, Jn as getShellPathFromLoginShell, Jt as getActivePluginRegistry, K as isNonEmptyString, Kn as resolveAgentMaxConcurrent, Kt as normalizeChannelId$1, L as clearExpiredCooldowns, Ln as isSafeExecutableValue, Lt as applyTestPluginDefaults, M as resolveApiKeyForProvider, Mn as splitShellArgs, Mt as validateJsonSchemaValue, N as resolveEnvApiKey, Nn as SAFE_BIN_PROFILES, Nt as loadPluginManifestRegistry, O as buildUsageWithNoCost, On as isDispatchWrapperExecutable, Ot as isAvatarDataUrl, P as resolveModelAuthMode, Pn as normalizeSafeBinProfileFixtures, Pt as discoverOpenClawPlugins, Qn as resolveOwnerDisplaySetting, Qt as setActivePluginRegistry, R as getSoonestCooldownExpiry, Rn as mapStreamingModeToSlackLegacyDraftStreamMode, Rt as normalizePluginsConfig, S as retryAsync, Sn as splitCommandChain, T as buildAssistantMessage, Tn as resolveAllowlistCandidatePath, U as resolveApiKeyForProfile, Ut as getChatChannelMeta, V as markAuthProfileUsed, Vn as resolveSlackStreamingMode, W as resolveSecretRefValues, Wt as listChatChannels, X as loadConfig, Xn as isDangerousHostEnvVarName, Yn as resolveShellEnvFallbackTimeoutMs, Yt as getActivePluginRegistryKey, Z as readConfigFileSnapshot, Zn as isTruthyEnvValue, Zt as requireActivePluginRegistry, _n as normalizeTrustedSafeBinDirs, _r as resolveSecretInputRef, a as isCliProvider, an as matchPluginCommand, ar as withFileLock, bn as buildEnforcedShellCommand, br as DEFAULT_MODEL, c as normalizeProviderId, cn as setConfigOverride, ct as resolveIMessageAttachmentRoots, d as resolveDefaultModelForAgent, dn as parseConfigPath, dr as resolveAuthProfileDisplayLabel, dt as parseNonNegativeByteSize, en as normalizePluginHttpPath, er as listProfilesForProvider, et as writeConfigFile, f as resolveModelRefFromString, fn as setConfigValueAtPath, ft as secretRefKey, gn as listWritableExplicitTrustedSafeBinDirs, gr as normalizeResolvedSecretInputString, h as resolveThinkingDefault, hn as isTrustedSafeBinPath, hr as hasConfiguredSecretInput, i as findNormalizedProviderValue, in as listPluginCommands, ir as resolveOpenClawAgentDir, it as resolveTelegramCustomCommands, j as requireApiKey, jn as unwrapKnownShellMultiplexerInvocation, jt as isSupportedLocalAvatarExtension, k as getApiKeyForModel, kn as isShellWrapperExecutable, kt as isAvatarHttpUrl, ln as unsetConfigOverride, lr as formatCliCommand, lt as resolveIMessageRemoteAttachmentRoots, m as resolveSubagentSpawnModelSelection, mn as getTrustedSafeBinDirs, mr as coerceSecretRef, mt as parseDurationMs, n as buildConfiguredAllowlistKeys, nn as executePluginCommand, nr as ensureAuthProfileStore, nt as TELEGRAM_COMMAND_NAME_PATTERN, o as modelKey, on as getConfigOverrides, ot as isInboundPathAllowed, p as resolveReasoningDefault, pn as unsetConfigValueAtPath, pr as normalizeSecretInput, q as isRecord$2, qn as VERSION, qt as normalizeChatChannelId, r as buildModelAliasIndex, rn as getPluginCommandSpecs, rr as resolveAuthStorePathForDisplay, rt as normalizeTelegramCommandName, s as normalizeModelRef$2, sn as resetConfigOverrides, t as buildAllowedModelSet, tn as clearPluginCommands, tr as markAuthProfileGood, tt as validateConfigObjectWithPlugins, u as resolveConfiguredModelRef, un as getConfigValueAtPath, ur as resolveCliName, ut as normalizeScpRemoteHost, vn as validateSafeBinArgv, vr as splitTrailingAuthProfile, w as createOllamaStreamFn, wn as matchAllowlist, x as resolveRetryConfig, xn as isWindowsPlatform, xr as DEFAULT_PROVIDER, yn as analyzeShellCommand, yr as DEFAULT_CONTEXT_TOKENS, z as isProfileInCooldown, zn as resolveDiscordPreviewStreamMode, zt as resolveEffectiveEnableState } from "./model-selection-idoqPmw0.js";
7
- import { a as saveJsonFile, i as loadJsonFile } from "./github-copilot-token-D13V9YBz.js";
8
- import { c as parseBooleanValue$1, n as MANIFEST_KEY, r as createInternalHookEvent, s as triggerInternalHook } from "./legacy-names-TyzbVqa_.js";
9
- import { _ as normalizeAtHashSlug, a as normalizeReasoningLevel, b as normalizeStringEntriesLower, c as normalizeVerboseLevel, d as getChannelDock, f as listChannelDocks, g as resolveChannelGroupToolsPolicy, h as resolveChannelGroupRequireMention, i as normalizeElevatedLevel, l as resolveResponseUsageMode, m as resolveChannelGroupPolicy, n as formatXHighModelHint, o as normalizeThinkLevel, p as normalizeSignalMessagingTarget, s as normalizeUsageDisplay, t as formatThinkingLevels, u as supportsXHighThinking, v as normalizeHyphenSlug, y as normalizeStringEntries } from "./thinking-DXYisHiZ.js";
10
- import { a as stripSilentToken, i as isSilentReplyText, n as SILENT_REPLY_TOKEN, r as isSilentReplyPrefixText, t as HEARTBEAT_TOKEN } from "./tokens-DxnY9ui_.js";
11
- import { _ as normalizeChatType, a as normalizeWhatsAppTarget, b as resolveDiscordAccount, c as listTelegramAccountIds, d as buildChannelAccountBindings, f as listBindings, g as resolveSlackBotToken, h as resolveSlackAppToken, i as isWhatsAppGroupJid, l as resolveTelegramAccount, m as resolveSlackReplyToMode, n as listChannelPlugins, o as createTelegramActionGate, p as resolveSlackAccount, r as normalizeChannelId$2, s as listEnabledTelegramAccounts, t as getChannelPlugin, u as resolveTelegramToken, v as createDiscordActionGate, x as normalizeDiscordToken, y as listEnabledDiscordAccounts } from "./plugins-CWkRQYDj.js";
12
- import { a as logWebSelfId, h as resolveAccountEntry, i as getWebAuthAgeMs, m as webAuthExists, n as resolveWhatsAppAccount, o as logoutWeb, t as hasAnyWhatsAppAuth, u as readWebSelfId } from "./accounts-yfBeCZtS.js";
13
- import { a as resolveSlackWebClientOptions, c as buildSlackBlocksFallbackText, i as createSlackWebClient, l as parseSlackTarget, n as markdownToSlackMrkdwnChunks, o as parseSlackBlocksInput, r as normalizeSlackOutboundText, s as validateSlackBlocksArray, t as sendMessageSlack, u as resolveSlackChannelId } from "./send-Dx2RkUOZ.js";
14
- import { $ as stripUndefinedFields, A as unpinMessageDiscord, At as resolveChannelEntryMatchWithFallback, B as listScheduledEventsDiscord, C as editMessageDiscord, Ct as resolveDiscordSystemLocation, D as pinMessageDiscord, Dt as applyChannelMatchMeta, E as listThreadsDiscord, Et as fetchDiscord, F as fetchMemberInfoDiscord, G as uploadStickerDiscord, H as timeoutMemberDiscord, I as fetchRoleInfoDiscord, J as editChannelDiscord, K as createChannelDiscord, L as fetchVoiceStatusDiscord, M as banMemberDiscord, N as createScheduledEventDiscord, O as readMessagesDiscord, Ot as buildChannelKeyCandidates, P as fetchChannelInfoDiscord, Q as sendDiscordText, R as kickMemberDiscord, S as deleteMessageDiscord, St as formatDiscordUserTag, T as listPinsDiscord, Tt as DiscordApiError, U as listGuildEmojisDiscord, V as removeRoleDiscord, W as uploadEmojiDiscord, X as removeChannelPermissionDiscord, Y as moveChannelDiscord, Z as setChannelPermissionDiscord, _ as sendStickerDiscord, _t as resolveDiscordOwnerAllowFrom, a as sendDiscordComponentMessage, at as parseDiscordTarget, b as formatMention, bt as shouldEmitDiscordReactionNotification, c as parseDiscordComponentCustomId, ct as listDiscordDirectoryPeersLive, d as parseDiscordModalCustomIdForCarbon, dt as normalizeDiscordSlug, et as fetchChannelPermissionsDiscord, f as readDiscordComponentSpec, ft as resolveDiscordAllowListMatch, g as sendPollDiscord, gt as resolveDiscordOwnerAccess, h as sendMessageDiscord, ht as resolveDiscordMemberAccessState, i as removeReactionDiscord, it as createDiscordRestClient, j as addRoleDiscord, k as searchMessagesDiscord, kt as normalizeChannelSlug, l as parseDiscordComponentCustomIdForCarbon, lt as isDiscordGroupAllowedByPolicy, m as resolveDiscordModalEntry, mt as resolveDiscordGuildEntry, n as reactMessageDiscord, nt as chunkDiscordTextWithMode, o as createDiscordFormModal, ot as resolveDiscordChannelId, p as resolveDiscordComponentEntry, pt as resolveDiscordChannelConfigWithFallback, q as deleteChannelDiscord, r as removeOwnReactionsDiscord, rt as createDiscordClient, s as formatDiscordComponentEventText, st as listDiscordDirectoryGroupsLive, t as fetchReactionsDiscord, tt as hasAnyGuildPermissionDiscord, u as parseDiscordModalCustomId, ut as normalizeDiscordAllowList, v as sendVoiceMessageDiscord, vt as resolveDiscordShouldRequireMention, w as fetchMessageDiscord, wt as resolveTimestampMs, x as createThreadDiscord, xt as formatDiscordReactionEmoji, y as sendWebhookMessageDiscord, yt as resolveGroupDmAllow, z as listGuildChannelsDiscord } from "./send-DcxmcFi_.js";
1
+ import { _ as toAgentModelListLike, a as resolveAgentDir, c as resolveAgentWorkspaceDir, d as resolveRunModelFallbacksOverride, f as resolveSessionAgentId, g as resolveAgentModelPrimaryValue, h as resolveAgentModelFallbackValues, i as resolveAgentConfig, l as resolveDefaultAgentId, n as hasConfiguredModelFallbacks, p as resolveSessionAgentIds, r as listAgentIds, s as resolveAgentSkillsFilter, t as runTasksWithConcurrency, u as resolveEffectiveModelFallbacks } from "./run-with-concurrency-BgYfgkXT.js";
2
+ import { a as resolveGatewayPort, c as resolveStateDir, d as resolveRequiredHomeDir, l as expandHomePrefix, n as STATE_DIR, r as resolveConfigPath } from "./paths-Cvc9EM8Y.js";
3
+ import { C as normalizeLogLevel, E as consumeRootOptionToken, T as FLAG_TERMINATOR, _ as isRich, a as clearActiveProgressLine, c as danger, f as setVerbose, g as colorize, h as warn, i as defaultRuntime, o as registerActiveProgressLine, p as shouldLogVerbose, r as createNonExitingRuntime, s as unregisterActiveProgressLine, t as createSubsystemLogger, u as logVerbose, v as theme, w as resolvePreferredOpenClawTmpDir, y as getChildLogger } from "./subsystem-B45WV3qB.js";
4
+ import { $ as parseAgentSessionKey, A as normalizeWindowsPathForComparison, B as resolveAgentIdFromSessionKey, G as normalizeAccountId$2, H as sanitizeAgentId, I as classifySessionKeyShape, J as deriveSessionChatType, K as normalizeOptionalAccountId, L as isValidAgentId, M as DEFAULT_MAIN_KEY, N as buildAgentMainSessionKey, P as buildAgentPeerSessionKey, Q as isSubagentSessionKey, R as normalizeAgentId, U as scopedHeartbeatWakeOptions, V as resolveThreadSessionKeys, W as DEFAULT_ACCOUNT_ID, X as isAcpSessionKey, Y as getSubagentDepth, Z as isCronSessionKey, _ as runExec, a as DEFAULT_IDENTITY_FILENAME, b as openBoundaryFile, et as resolveThreadParentSessionKey, f as loadWorkspaceBootstrapFiles, g as runCommandWithTimeout, j as DEFAULT_AGENT_ID, l as ensureAgentWorkspace, m as resolveOpenClawPackageRoot, n as DEFAULT_AGENT_WORKSPACE_DIR, q as isBlockedObjectKey, r as DEFAULT_BOOTSTRAP_FILENAME, u as filterBootstrapFilesForSession, v as spawnWithFallback, x as openBoundaryFileSync, z as normalizeMainKey } from "./workspace-U-DyR64O.js";
5
+ import { C as sleep$1, D as isPlainObject, E as truncateUtf16Safe, S as shortenHomePath, a as CONFIG_DIR, d as formatTerminalLink, f as isRecord$1, h as normalizeE164, i as logWarn, l as ensureDir$3, n as logError, r as logInfo, s as clampInt, t as logDebug, u as escapeRegExp, w as sliceUtf16Safe, x as shortenHomeInString, y as resolveUserPath } from "./logger-BfjWMCSD.js";
6
+ import { $ as resolveConfigSnapshotHash, $n as dedupeProfileIds, $t as createPluginRegistry, A as getCustomProviderApiKey, An as unwrapKnownDispatchWrapperInvocation, At as isPathWithinRoot, B as markAuthProfileFailure, Bn as resolveSlackNativeStreaming, Bt as resolveMemorySlotDecision, C as OLLAMA_NATIVE_BASE_URL, Cn as DEFAULT_SAFE_BINS, D as buildStreamErrorAssistantMessage, Dn as extractShellWrapperInlineCommand, Dt as AVATAR_MAX_BYTES, E as buildAssistantMessageWithZeroUsage, En as resolveCommandResolutionFromArgv, Fn as resolveSafeBinProfiles, Ft as isPathInside, G as describeUnknownError$1, Gn as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH, Gt as normalizeAnyChannelId, H as resolveProfilesUnavailableReason, Ht as CHAT_CHANNEL_ORDER, I as resolveAuthProfileOrder, In as applyMergePatch, It as safeStatSync, J as parseDotPath, Jn as getShellPathFromLoginShell, Jt as getActivePluginRegistry, K as isNonEmptyString, Kn as resolveAgentMaxConcurrent, Kt as normalizeChannelId$1, L as clearExpiredCooldowns, Ln as isSafeExecutableValue, Lt as applyTestPluginDefaults, M as resolveApiKeyForProvider, Mn as splitShellArgs, Mt as validateJsonSchemaValue, N as resolveEnvApiKey, Nn as SAFE_BIN_PROFILES, Nt as loadPluginManifestRegistry, O as buildUsageWithNoCost, On as isDispatchWrapperExecutable, Ot as isAvatarDataUrl, P as resolveModelAuthMode, Pn as normalizeSafeBinProfileFixtures, Pt as discoverOpenClawPlugins, Qn as resolveOwnerDisplaySetting, Qt as setActivePluginRegistry, R as getSoonestCooldownExpiry, Rn as mapStreamingModeToSlackLegacyDraftStreamMode, Rt as normalizePluginsConfig, S as retryAsync, Sn as splitCommandChain, T as buildAssistantMessage, Tn as resolveAllowlistCandidatePath, U as resolveApiKeyForProfile, Ut as getChatChannelMeta, V as markAuthProfileUsed, Vn as resolveSlackStreamingMode, W as resolveSecretRefValues, Wt as listChatChannels, X as loadConfig, Xn as isDangerousHostEnvVarName, Yn as resolveShellEnvFallbackTimeoutMs, Yt as getActivePluginRegistryKey, Z as readConfigFileSnapshot, Zn as isTruthyEnvValue, Zt as requireActivePluginRegistry, _n as normalizeTrustedSafeBinDirs, _r as resolveSecretInputRef, a as isCliProvider, an as matchPluginCommand, ar as withFileLock, bn as buildEnforcedShellCommand, br as DEFAULT_MODEL, c as normalizeProviderId, cn as setConfigOverride, ct as resolveIMessageAttachmentRoots, d as resolveDefaultModelForAgent, dn as parseConfigPath, dr as resolveAuthProfileDisplayLabel, dt as parseNonNegativeByteSize, en as normalizePluginHttpPath, er as listProfilesForProvider, et as writeConfigFile, f as resolveModelRefFromString, fn as setConfigValueAtPath, ft as secretRefKey, gn as listWritableExplicitTrustedSafeBinDirs, gr as normalizeResolvedSecretInputString, h as resolveThinkingDefault, hn as isTrustedSafeBinPath, hr as hasConfiguredSecretInput, i as findNormalizedProviderValue, in as listPluginCommands, ir as resolveOpenClawAgentDir, it as resolveTelegramCustomCommands, j as requireApiKey, jn as unwrapKnownShellMultiplexerInvocation, jt as isSupportedLocalAvatarExtension, k as getApiKeyForModel, kn as isShellWrapperExecutable, kt as isAvatarHttpUrl, ln as unsetConfigOverride, lr as formatCliCommand, lt as resolveIMessageRemoteAttachmentRoots, m as resolveSubagentSpawnModelSelection, mn as getTrustedSafeBinDirs, mr as coerceSecretRef, mt as parseDurationMs, n as buildConfiguredAllowlistKeys, nn as executePluginCommand, nr as ensureAuthProfileStore, nt as TELEGRAM_COMMAND_NAME_PATTERN, o as modelKey, on as getConfigOverrides, ot as isInboundPathAllowed, p as resolveReasoningDefault, pn as unsetConfigValueAtPath, pr as normalizeSecretInput, q as isRecord$2, qn as VERSION, qt as normalizeChatChannelId, r as buildModelAliasIndex, rn as getPluginCommandSpecs, rr as resolveAuthStorePathForDisplay, rt as normalizeTelegramCommandName, s as normalizeModelRef$2, sn as resetConfigOverrides, t as buildAllowedModelSet, tn as clearPluginCommands, tr as markAuthProfileGood, tt as validateConfigObjectWithPlugins, u as resolveConfiguredModelRef, un as getConfigValueAtPath, ur as resolveCliName, ut as normalizeScpRemoteHost, vn as validateSafeBinArgv, vr as splitTrailingAuthProfile, w as createOllamaStreamFn, wn as matchAllowlist, x as resolveRetryConfig, xn as isWindowsPlatform, xr as DEFAULT_PROVIDER, yn as analyzeShellCommand, yr as DEFAULT_CONTEXT_TOKENS, z as isProfileInCooldown, zn as resolveDiscordPreviewStreamMode, zt as resolveEffectiveEnableState } from "./model-selection-Dna0Gz1k.js";
7
+ import { a as saveJsonFile, i as loadJsonFile } from "./github-copilot-token-BDioPmd6.js";
8
+ import { c as parseBooleanValue$1, n as MANIFEST_KEY, r as createInternalHookEvent, s as triggerInternalHook } from "./legacy-names-DOC03BkU.js";
9
+ import { _ as normalizeAtHashSlug, a as normalizeReasoningLevel, b as normalizeStringEntriesLower, c as normalizeVerboseLevel, d as getChannelDock, f as listChannelDocks, g as resolveChannelGroupToolsPolicy, h as resolveChannelGroupRequireMention, i as normalizeElevatedLevel, l as resolveResponseUsageMode, m as resolveChannelGroupPolicy, n as formatXHighModelHint, o as normalizeThinkLevel, p as normalizeSignalMessagingTarget, s as normalizeUsageDisplay, t as formatThinkingLevels, u as supportsXHighThinking, v as normalizeHyphenSlug, y as normalizeStringEntries } from "./thinking-BeGmb5k6.js";
10
+ import { a as stripSilentToken, i as isSilentReplyText, n as SILENT_REPLY_TOKEN, r as isSilentReplyPrefixText, t as HEARTBEAT_TOKEN } from "./tokens-q32vI39c.js";
11
+ import { _ as normalizeChatType, a as normalizeWhatsAppTarget, b as resolveDiscordAccount, c as listTelegramAccountIds, d as buildChannelAccountBindings, f as listBindings, g as resolveSlackBotToken, h as resolveSlackAppToken, i as isWhatsAppGroupJid, l as resolveTelegramAccount, m as resolveSlackReplyToMode, n as listChannelPlugins, o as createTelegramActionGate, p as resolveSlackAccount, r as normalizeChannelId$2, s as listEnabledTelegramAccounts, t as getChannelPlugin, u as resolveTelegramToken, v as createDiscordActionGate, x as normalizeDiscordToken, y as listEnabledDiscordAccounts } from "./plugins-4Rj4OjLY.js";
12
+ import { a as logWebSelfId, h as resolveAccountEntry, i as getWebAuthAgeMs, m as webAuthExists, n as resolveWhatsAppAccount, o as logoutWeb, t as hasAnyWhatsAppAuth, u as readWebSelfId } from "./accounts-Tgelvk0C.js";
13
+ import { a as resolveSlackWebClientOptions, c as buildSlackBlocksFallbackText, i as createSlackWebClient, l as parseSlackTarget, n as markdownToSlackMrkdwnChunks, o as parseSlackBlocksInput, r as normalizeSlackOutboundText, s as validateSlackBlocksArray, t as sendMessageSlack, u as resolveSlackChannelId } from "./send-6lz6rNVP.js";
14
+ import { $ as stripUndefinedFields, A as unpinMessageDiscord, At as resolveChannelEntryMatchWithFallback, B as listScheduledEventsDiscord, C as editMessageDiscord, Ct as resolveDiscordSystemLocation, D as pinMessageDiscord, Dt as applyChannelMatchMeta, E as listThreadsDiscord, Et as fetchDiscord, F as fetchMemberInfoDiscord, G as uploadStickerDiscord, H as timeoutMemberDiscord, I as fetchRoleInfoDiscord, J as editChannelDiscord, K as createChannelDiscord, L as fetchVoiceStatusDiscord, M as banMemberDiscord, N as createScheduledEventDiscord, O as readMessagesDiscord, Ot as buildChannelKeyCandidates, P as fetchChannelInfoDiscord, Q as sendDiscordText, R as kickMemberDiscord, S as deleteMessageDiscord, St as formatDiscordUserTag, T as listPinsDiscord, Tt as DiscordApiError, U as listGuildEmojisDiscord, V as removeRoleDiscord, W as uploadEmojiDiscord, X as removeChannelPermissionDiscord, Y as moveChannelDiscord, Z as setChannelPermissionDiscord, _ as sendStickerDiscord, _t as resolveDiscordOwnerAllowFrom, a as sendDiscordComponentMessage, at as parseDiscordTarget, b as formatMention, bt as shouldEmitDiscordReactionNotification, c as parseDiscordComponentCustomId, ct as listDiscordDirectoryPeersLive, d as parseDiscordModalCustomIdForCarbon, dt as normalizeDiscordSlug, et as fetchChannelPermissionsDiscord, f as readDiscordComponentSpec, ft as resolveDiscordAllowListMatch, g as sendPollDiscord, gt as resolveDiscordOwnerAccess, h as sendMessageDiscord, ht as resolveDiscordMemberAccessState, i as removeReactionDiscord, it as createDiscordRestClient, j as addRoleDiscord, k as searchMessagesDiscord, kt as normalizeChannelSlug, l as parseDiscordComponentCustomIdForCarbon, lt as isDiscordGroupAllowedByPolicy, m as resolveDiscordModalEntry, mt as resolveDiscordGuildEntry, n as reactMessageDiscord, nt as chunkDiscordTextWithMode, o as createDiscordFormModal, ot as resolveDiscordChannelId, p as resolveDiscordComponentEntry, pt as resolveDiscordChannelConfigWithFallback, q as deleteChannelDiscord, r as removeOwnReactionsDiscord, rt as createDiscordClient, s as formatDiscordComponentEventText, st as listDiscordDirectoryGroupsLive, t as fetchReactionsDiscord, tt as hasAnyGuildPermissionDiscord, u as parseDiscordModalCustomId, ut as normalizeDiscordAllowList, v as sendVoiceMessageDiscord, vt as resolveDiscordShouldRequireMention, w as fetchMessageDiscord, wt as resolveTimestampMs, x as createThreadDiscord, xt as formatDiscordReactionEmoji, y as sendWebhookMessageDiscord, yt as resolveGroupDmAllow, z as listGuildChannelsDiscord } from "./send-PE6cwoTe.js";
15
15
  import { n as generateSecureUuid, t as generateSecureToken } from "./secure-random-CXrBi7Jq.js";
16
- import { C as createReplyToModeFilterForChannel, D as normalizeTargetForProvider, E as normalizeChannelTargetInput, O as getGlobalHookRunner, S as shouldSuppressReasoningPayload, T as buildTargetResolverSignature, _ as applyReplyThreading, a as normalizeReplyPayloadsForDelivery, b as isRenderablePayload, c as splitMediaFromOutput, d as toInternalMessageReceivedContext, f as toInternalMessageTranscribedContext, g as applyReplyTagsToPayload, h as fireAndForgetHook, i as normalizeOutboundPayloadsForJson, k as initializeGlobalHookRunner, l as deriveInboundMessageHookContext, m as toPluginMessageReceivedEvent, n as formatOutboundPayloadLog, o as throwIfAborted, p as toPluginMessageContext, r as normalizeOutboundPayloads, s as parseReplyDirectives, t as deliverOutboundPayloads, u as toInternalMessagePreprocessedContext, v as filterMessagingToolDuplicates, w as resolveReplyToMode, x as shouldSuppressMessagingToolReplies, y as filterMessagingToolMediaDuplicates } from "./deliver-CApVJA_l.js";
17
- import { a as logMessageQueued, c as logWebhookError, d as startDiagnosticHeartbeat, f as stopDiagnosticHeartbeat, h as isDiagnosticsEnabled, i as logMessageProcessed, l as logWebhookProcessed, m as emitDiagnosticEvent, n as logLaneDequeue, o as logSessionStateChange, p as getDiagnosticSessionState, r as logLaneEnqueue, t as diag, u as logWebhookReceived } from "./diagnostic-Bn4PZjMZ.js";
18
- import { n as resolveSignalAccount, t as listEnabledSignalAccounts } from "./accounts-L9ByEpnP.js";
16
+ import { C as createReplyToModeFilterForChannel, D as normalizeTargetForProvider, E as normalizeChannelTargetInput, O as getGlobalHookRunner, S as shouldSuppressReasoningPayload, T as buildTargetResolverSignature, _ as applyReplyThreading, a as normalizeReplyPayloadsForDelivery, b as isRenderablePayload, c as splitMediaFromOutput, d as toInternalMessageReceivedContext, f as toInternalMessageTranscribedContext, g as applyReplyTagsToPayload, h as fireAndForgetHook, i as normalizeOutboundPayloadsForJson, k as initializeGlobalHookRunner, l as deriveInboundMessageHookContext, m as toPluginMessageReceivedEvent, n as formatOutboundPayloadLog, o as throwIfAborted, p as toPluginMessageContext, r as normalizeOutboundPayloads, s as parseReplyDirectives, t as deliverOutboundPayloads, u as toInternalMessagePreprocessedContext, v as filterMessagingToolDuplicates, w as resolveReplyToMode, x as shouldSuppressMessagingToolReplies, y as filterMessagingToolMediaDuplicates } from "./deliver-DbdywYJE.js";
17
+ import { a as logMessageQueued, c as logWebhookError, d as startDiagnosticHeartbeat, f as stopDiagnosticHeartbeat, h as isDiagnosticsEnabled, i as logMessageProcessed, l as logWebhookProcessed, m as emitDiagnosticEvent, n as logLaneDequeue, o as logSessionStateChange, p as getDiagnosticSessionState, r as logLaneEnqueue, t as diag, u as logWebhookReceived } from "./diagnostic-Co6Kghr-.js";
18
+ import { n as resolveSignalAccount, t as listEnabledSignalAccounts } from "./accounts-C9HcPI9h.js";
19
19
  import { i as resolveTelegramTargetChatType, r as parseTelegramTarget } from "./targets-BiE9e9-P.js";
20
- import { A as mediaKindFromMime, C as imageMimeFromFormat, E as kindFromMime, O as MAX_IMAGE_BYTES, T as isGifMedia, _ as GATEWAY_CLIENT_IDS, b as detectMime, c as INTERNAL_MESSAGE_CHANNEL, d as isInternalMessageChannel, f as isMarkdownCapableMessageChannel, g as resolveMessageChannel, h as resolveGatewayMessageChannel, i as getImageMetadata, l as isDeliverableMessageChannel, m as normalizeMessageChannel, p as listDeliverableMessageChannels, s as resizeToJpeg, u as isGatewayMessageChannel, v as GATEWAY_CLIENT_MODES, w as isAudioFileName, x as extensionForMime, y as GATEWAY_CLIENT_NAMES } from "./image-ops-CehkHxmW.js";
21
- import { $ as removeChannelAllowFromStoreEntry, A as expandTextLinks, B as resolveTelegramThreadSpec, C as buildSenderName, D as buildTelegramThreadParams, E as buildTelegramParentPeer, F as resolveTelegramForumThreadId, G as firstDefined$1, H as normalizeAllowFrom$2, I as resolveTelegramGroupAllowFromContext, J as resolveGroupAllowFromSources, K as isSenderIdAllowed, L as resolveTelegramMediaPlaceholder, M as hasBotMention, N as normalizeForwardedContext, O as buildTypingThreadParams, P as resolveTelegramDirectPeerId, Q as readChannelAllowFromStore, R as resolveTelegramReplyId, S as buildSenderLabel, T as buildTelegramGroupPeerId, U as normalizeDmAllowFromWithStore$1, V as isSenderAllowed$1, W as resolveSenderAllowMatch$1, X as toLocationContext, Y as formatLocationText, Z as addChannelAllowFromStoreEntry, _ as splitTelegramCaption, a as reactMessageTelegram, at as isVoiceCompatibleAudio, b as resolveCronStorePath, c as sendStickerTelegram, d as isRecoverableTelegramNetworkError, et as upsertChannelPairingRequest, f as markdownToTelegramChunks, g as resolveTelegramFetch, h as wrapFileReferencesInHtml, i as editMessageTelegram, it as listPairingChannels, j as extractTelegramLocation, k as describeReplyTarget, l as resolveTelegramVoiceSend, m as renderTelegramHtmlText, n as createForumTopicTelegram, nt as writeJsonFileAtomically, o as sendMessageTelegram, p as markdownToTelegramHtml, q as mergeDmAllowFromSources, r as deleteMessageTelegram, rt as getPairingAdapter, s as sendPollTelegram, t as buildInlineKeyboard, tt as readJsonFileWithFallback, u as wasSentByBot, v as withTelegramApiErrorLogging, w as buildTelegramGroupFrom, x as buildGroupLabel, y as loadCronStore, z as resolveTelegramStreamMode } from "./send-vmONuVgL.js";
22
- import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-BGgOlX8N.js";
23
- import { $ as deliveryContextKey, $t as matchesAnyGlobPattern, A as isTransientHttpError, At as resolveGroupSessionKey, B as parseSessionThreadInfo, Bt as resolveGatewayCredentialsFromConfig, C as isCompactionFailureError, Ct as setSessionRuntimeModel, D as isLikelyContextOverflowError, Dt as resolveMainSessionKey, E as isFailoverErrorMessage, Et as resolveExplicitAgentSessionKey, F as isTimeoutErrorMessage, Ft as resolveBrowserConfig, G as readSessionUpdatedAt, Gt as collectExplicitAllowlist, Ht as resolveSandboxConfigForAgent, I as ensureSandboxWorkspaceForSession, It as resolveProfile, J as updateSessionStore, Jt as stripPluginOnlyAllowlist, K as recordSessionMetaFromInbound, Kt as expandPolicyWithPluginGroups, L as resolveSandboxContext, Lt as getBridgeAuthForPort, M as parseImageSizeError, Mt as resolveSessionLockMaxHoldFromTimeout, N as sanitizeUserFacingText, Nt as createBrowserRouteContext, O as isRateLimitAssistantError, Ot as deriveSessionMetaPatch, P as isAuthPermanentErrorMessage, Pt as registerBrowserRoutes, Q as deliveryContextFromSession, Qt as compileGlobPatterns, R as resolveSandboxRuntimeStatus, Rt as ensureBrowserControlAuth, S as isCloudCodeAssistFormatError, St as resolveFreshSessionTotalTokens, T as isFailoverAssistantError, U as resolveAndPersistSessionFile, Ut as applyOwnerOnlyToolPolicy, V as appendAssistantMessageToSessionTranscript, Vt as trimToUndefined$1, W as loadSessionStore, Wt as buildPluginToolGroups, X as isCacheEnabled, Xt as normalizeToolName, Y as updateSessionStoreEntry, Yt as expandToolGroups, Z as resolveCacheTtlMs$1, Zt as resolveToolProfilePolicy, _ as formatBillingErrorMessage, _t as resolveSessionResetPolicy, a as isMessagingToolDuplicateNormalized, an as sanitizeGoogleTurnOrdering, at as capArrayByJsonBytes, b as isAuthAssistantError, bt as DEFAULT_RESET_TRIGGERS, c as extractToolCallsFromAssistant, ct as parseInlineDirectives$1, d as downgradeOpenAIFunctionCallReasoningPairs, dt as hasInterSessionUserProvenance, en as buildBootstrapContextFiles, et as mergeDeliveryContext, f as downgradeOpenAIReasoningBlocks, ft as normalizeInputProvenance, g as formatAssistantErrorText, gt as resolveChannelResetConfig, h as classifyFailoverReason, ht as evaluateSessionFreshness, in as resolveBootstrapTotalMaxChars, it as archiveSessionTranscripts, j as parseImageDimensionError, jt as acquireSessionWriteLock, k as isRawApiErrorPayload, kt as resolveConversationLabel, l as extractToolResultId, lt as INPUT_PROVENANCE_KIND_VALUES, m as BILLING_ERROR_USER_MESSAGE, mt as resolveSessionKey, n as validateGeminiTurns, nn as resolveBootstrapMaxChars, nt as normalizeSessionDeliveryFields, o as normalizeTextForComparison, ot as countToolResults, p as isGoogleModelApi, pt as jsonUtf8Bytes, q as updateLastRoute, qt as mergeAlsoAllowPolicy, r as pickFallbackThinkingLevel, rn as resolveBootstrapPromptTruncationWarningMode, rt as normalizeAccountId$3, s as sanitizeSessionMessagesImages, st as extractToolCallNames, t as validateAnthropicTurns, tn as ensureSessionHeader, tt as normalizeDeliveryContext, u as sanitizeToolCallIdsForCloudCodeAssist, ut as applyInputProvenanceToUserMessage, v as formatRawAssistantErrorForUi, vt as resolveSessionResetType, w as isContextOverflowError, wt as canonicalizeMainSessionAlias, x as isBillingAssistantError, xt as mergeSessionEntry, y as getApiErrorPayloadFingerprint, yt as resolveThreadFlag, z as extractDeliveryInfo, zt as resolveBrowserControlAuth } from "./pi-embedded-helpers-D5yyGEvA.js";
24
- import { A as rawDataToString, B as isSecureWebSocketUrl, C as ensureChromeExtensionRelayServer, N as DEFAULT_UPLOAD_DIR, P as resolveExistingPathsWithinRoot, U as DEFAULT_AI_SNAPSHOT_MAX_CHARS, s as resolveLsofCommandSync, z as isLoopbackHost } from "./chrome-DlhJHqj8.js";
25
- import { c as assertSandboxPath, d as resolveSandboxedMediaSource, f as applySkillEnvOverrides, i as resolveSkillsPromptForRun, l as resolveSandboxInputPath, n as buildWorkspaceSkillSnapshot, p as applySkillEnvOverridesFromSnapshot, r as loadWorkspaceSkillEntries, s as assertMediaNotDataUrl } from "./skills-CE_iqvM5.js";
26
- import { t as PATH_ALIAS_POLICIES } from "./path-alias-guards-DqXRZmsL.js";
27
- import { i as testRegexWithBoundedInput, r as compileSafeRegex, t as redactSensitiveText } from "./redact-ClbcYG1J.js";
28
- import { i as formatUncaughtError, o as readErrorName, r as formatErrorMessage } from "./errors-CCLeFWAg.js";
29
- import { a as readFileWithinRoot, c as writeFileWithinRoot, i as openFileWithinRoot, n as copyFileWithinRoot, r as createRootScopedReadFile, t as SafeOpenError } from "./fs-safe-0jAo_Whb.js";
30
- import { a as isBlockedHostnameOrIp, c as normalizeHostname, n as SsrFBlockedError } from "./proxy-env-Cq5gdrbj.js";
31
- import { i as saveMediaBuffer, r as getMediaDir, t as MEDIA_MAX_BYTES } from "./store--eR1R_UX.js";
20
+ import { A as mediaKindFromMime, C as imageMimeFromFormat, E as kindFromMime, O as MAX_IMAGE_BYTES, T as isGifMedia, _ as GATEWAY_CLIENT_IDS, b as detectMime, c as INTERNAL_MESSAGE_CHANNEL, d as isInternalMessageChannel, f as isMarkdownCapableMessageChannel, g as resolveMessageChannel, h as resolveGatewayMessageChannel, i as getImageMetadata, l as isDeliverableMessageChannel, m as normalizeMessageChannel, p as listDeliverableMessageChannels, s as resizeToJpeg, u as isGatewayMessageChannel, v as GATEWAY_CLIENT_MODES, w as isAudioFileName, x as extensionForMime, y as GATEWAY_CLIENT_NAMES } from "./image-ops-BuUnEOE0.js";
21
+ import { $ as removeChannelAllowFromStoreEntry, A as expandTextLinks, B as resolveTelegramThreadSpec, C as buildSenderName, D as buildTelegramThreadParams, E as buildTelegramParentPeer, F as resolveTelegramForumThreadId, G as firstDefined$1, H as normalizeAllowFrom$2, I as resolveTelegramGroupAllowFromContext, J as resolveGroupAllowFromSources, K as isSenderIdAllowed, L as resolveTelegramMediaPlaceholder, M as hasBotMention, N as normalizeForwardedContext, O as buildTypingThreadParams, P as resolveTelegramDirectPeerId, Q as readChannelAllowFromStore, R as resolveTelegramReplyId, S as buildSenderLabel, T as buildTelegramGroupPeerId, U as normalizeDmAllowFromWithStore$1, V as isSenderAllowed$1, W as resolveSenderAllowMatch$1, X as toLocationContext, Y as formatLocationText, Z as addChannelAllowFromStoreEntry, _ as splitTelegramCaption, a as reactMessageTelegram, at as isVoiceCompatibleAudio, b as resolveCronStorePath, c as sendStickerTelegram, d as isRecoverableTelegramNetworkError, et as upsertChannelPairingRequest, f as markdownToTelegramChunks, g as resolveTelegramFetch, h as wrapFileReferencesInHtml, i as editMessageTelegram, it as listPairingChannels, j as extractTelegramLocation, k as describeReplyTarget, l as resolveTelegramVoiceSend, m as renderTelegramHtmlText, n as createForumTopicTelegram, nt as writeJsonFileAtomically, o as sendMessageTelegram, p as markdownToTelegramHtml, q as mergeDmAllowFromSources, r as deleteMessageTelegram, rt as getPairingAdapter, s as sendPollTelegram, t as buildInlineKeyboard, tt as readJsonFileWithFallback, u as wasSentByBot, v as withTelegramApiErrorLogging, w as buildTelegramGroupFrom, x as buildGroupLabel, y as loadCronStore, z as resolveTelegramStreamMode } from "./send-BHTiZcH3.js";
22
+ import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-Dymwdjt0.js";
23
+ import { $ as deliveryContextKey, $t as matchesAnyGlobPattern, A as isTransientHttpError, At as resolveGroupSessionKey, B as parseSessionThreadInfo, Bt as resolveGatewayCredentialsFromConfig, C as isCompactionFailureError, Ct as setSessionRuntimeModel, D as isLikelyContextOverflowError, Dt as resolveMainSessionKey, E as isFailoverErrorMessage, Et as resolveExplicitAgentSessionKey, F as isTimeoutErrorMessage, Ft as resolveBrowserConfig, G as readSessionUpdatedAt, Gt as collectExplicitAllowlist, Ht as resolveSandboxConfigForAgent, I as ensureSandboxWorkspaceForSession, It as resolveProfile, J as updateSessionStore, Jt as stripPluginOnlyAllowlist, K as recordSessionMetaFromInbound, Kt as expandPolicyWithPluginGroups, L as resolveSandboxContext, Lt as getBridgeAuthForPort, M as parseImageSizeError, Mt as resolveSessionLockMaxHoldFromTimeout, N as sanitizeUserFacingText, Nt as createBrowserRouteContext, O as isRateLimitAssistantError, Ot as deriveSessionMetaPatch, P as isAuthPermanentErrorMessage, Pt as registerBrowserRoutes, Q as deliveryContextFromSession, Qt as compileGlobPatterns, R as resolveSandboxRuntimeStatus, Rt as ensureBrowserControlAuth, S as isCloudCodeAssistFormatError, St as resolveFreshSessionTotalTokens, T as isFailoverAssistantError, U as resolveAndPersistSessionFile, Ut as applyOwnerOnlyToolPolicy, V as appendAssistantMessageToSessionTranscript, Vt as trimToUndefined$1, W as loadSessionStore, Wt as buildPluginToolGroups, X as isCacheEnabled, Xt as normalizeToolName, Y as updateSessionStoreEntry, Yt as expandToolGroups, Z as resolveCacheTtlMs$1, Zt as resolveToolProfilePolicy, _ as formatBillingErrorMessage, _t as resolveSessionResetPolicy, a as isMessagingToolDuplicateNormalized, an as sanitizeGoogleTurnOrdering, at as capArrayByJsonBytes, b as isAuthAssistantError, bt as DEFAULT_RESET_TRIGGERS, c as extractToolCallsFromAssistant, ct as parseInlineDirectives$1, d as downgradeOpenAIFunctionCallReasoningPairs, dt as hasInterSessionUserProvenance, en as buildBootstrapContextFiles, et as mergeDeliveryContext, f as downgradeOpenAIReasoningBlocks, ft as normalizeInputProvenance, g as formatAssistantErrorText, gt as resolveChannelResetConfig, h as classifyFailoverReason, ht as evaluateSessionFreshness, in as resolveBootstrapTotalMaxChars, it as archiveSessionTranscripts, j as parseImageDimensionError, jt as acquireSessionWriteLock, k as isRawApiErrorPayload, kt as resolveConversationLabel, l as extractToolResultId, lt as INPUT_PROVENANCE_KIND_VALUES, m as BILLING_ERROR_USER_MESSAGE, mt as resolveSessionKey, n as validateGeminiTurns, nn as resolveBootstrapMaxChars, nt as normalizeSessionDeliveryFields, o as normalizeTextForComparison, ot as countToolResults, p as isGoogleModelApi, pt as jsonUtf8Bytes, q as updateLastRoute, qt as mergeAlsoAllowPolicy, r as pickFallbackThinkingLevel, rn as resolveBootstrapPromptTruncationWarningMode, rt as normalizeAccountId$3, s as sanitizeSessionMessagesImages, st as extractToolCallNames, t as validateAnthropicTurns, tn as ensureSessionHeader, tt as normalizeDeliveryContext, u as sanitizeToolCallIdsForCloudCodeAssist, ut as applyInputProvenanceToUserMessage, v as formatRawAssistantErrorForUi, vt as resolveSessionResetType, w as isContextOverflowError, wt as canonicalizeMainSessionAlias, x as isBillingAssistantError, xt as mergeSessionEntry, y as getApiErrorPayloadFingerprint, yt as resolveThreadFlag, z as extractDeliveryInfo, zt as resolveBrowserControlAuth } from "./pi-embedded-helpers-CLXm10bV.js";
24
+ import { A as rawDataToString, B as isSecureWebSocketUrl, C as ensureChromeExtensionRelayServer, N as DEFAULT_UPLOAD_DIR, P as resolveExistingPathsWithinRoot, U as DEFAULT_AI_SNAPSHOT_MAX_CHARS, s as resolveLsofCommandSync, z as isLoopbackHost } from "./chrome-DxxEKrY7.js";
25
+ import { c as assertSandboxPath, d as resolveSandboxedMediaSource, f as applySkillEnvOverrides, i as resolveSkillsPromptForRun, l as resolveSandboxInputPath, n as buildWorkspaceSkillSnapshot, p as applySkillEnvOverridesFromSnapshot, r as loadWorkspaceSkillEntries, s as assertMediaNotDataUrl } from "./skills-7ODkHQYp.js";
26
+ import { t as PATH_ALIAS_POLICIES } from "./path-alias-guards-BzvdLvTI.js";
27
+ import { i as testRegexWithBoundedInput, r as compileSafeRegex, t as redactSensitiveText } from "./redact-COik8ET1.js";
28
+ import { i as formatUncaughtError, o as readErrorName, r as formatErrorMessage } from "./errors-xt401nuk.js";
29
+ import { a as readFileWithinRoot, c as writeFileWithinRoot, i as openFileWithinRoot, n as copyFileWithinRoot, r as createRootScopedReadFile, t as SafeOpenError } from "./fs-safe-CTYUrIgQ.js";
30
+ import { a as isBlockedHostnameOrIp, c as normalizeHostname, n as SsrFBlockedError } from "./proxy-env-DlmzDx8x.js";
31
+ import { i as saveMediaBuffer, r as getMediaDir, t as MEDIA_MAX_BYTES } from "./store-D89wDcz9.js";
32
32
  import { n as readJsonFile, r as writeJsonAtomic, t as createAsyncLock } from "./json-files-D7-rxoSr.js";
33
- import { t as resolveIMessageAccount } from "./accounts-BOzyfwW4.js";
34
- import { i as resolveSessionTranscriptPath, n as resolveSessionFilePath, o as resolveSessionTranscriptsDirForAgent, r as resolveSessionFilePathOptions, s as resolveStorePath, t as resolveDefaultSessionStorePath } from "./paths-CCxysrzL.js";
33
+ import { t as resolveIMessageAccount } from "./accounts-C_lW3Ag9.js";
34
+ import { i as resolveSessionTranscriptPath, n as resolveSessionFilePath, o as resolveSessionTranscriptsDirForAgent, r as resolveSessionFilePathOptions, s as resolveStorePath, t as resolveDefaultSessionStorePath } from "./paths-Bkr-BCxW.js";
35
35
  import { n as onSessionTranscriptUpdate, t as emitSessionTranscriptUpdate } from "./transcript-events-uYL2gEou.js";
36
- import { a as canonicalizeBase64, i as resolveImageSanitizationLimits, n as sanitizeImageBlocks, o as estimateBase64DecodedBytes, r as sanitizeToolResultImages } from "./tool-images-2cBx1W8h.js";
37
- import { C as minimaxUnderstandImage, S as extractTextFromChatContent, _ as formatToolSummary, a as resolveProviderVisionModelFromConfig, b as findCodeRegions, c as extractThinkingFromTaggedStream, d as inferToolMetaFromArgs, f as isAssistantMessage, g as stripThinkingTagsFromText, h as stripMinimaxToolCallXml, i as decodeDataUrl, l as extractThinkingFromTaggedText, m as stripDowngradedToolCallText, n as coerceImageAssistantText, o as extractAssistantText$1, p as promoteThinkingTagsToBlocks, r as coerceImageModelConfig, s as extractAssistantThinking, u as formatReasoningMessage, v as resolveToolDisplay, w as ensureOpenClawModelsJson, x as isInsideCode, y as stripReasoningTagsFromText } from "./image-B3Mz7N5I.js";
38
- import { _ as resolveAttachmentKind, a as resolveAutoImageModel, b as modelSupportsVision, c as applyTemplate, d as normalizeMediaUnderstandingChatType, f as resolveMediaUnderstandingScope, h as registerUnhandledRejectionHandler, i as normalizeMediaAttachments, l as resolveConcurrency, m as buildRandomTempFilePath, n as buildProviderRegistry, o as resolveMediaAttachmentLocalRoots, p as CLI_OUTPUT_MAX_BUFFER, r as createMediaAttachmentCache, s as runCapability, t as runAudioTranscription, u as resolveTimeoutMs$2, v as findModelInCatalog, y as loadModelCatalog } from "./audio-transcription-runner-CzjuH3uL.js";
39
- import { a as getDefaultMediaLocalRoots, i as getAgentScopedMediaLocalRoots, n as fetchRemoteMedia, r as readResponseWithLimit, t as MediaFetchError } from "./fetch-BlJWzEP6.js";
36
+ import { a as canonicalizeBase64, i as resolveImageSanitizationLimits, n as sanitizeImageBlocks, o as estimateBase64DecodedBytes, r as sanitizeToolResultImages } from "./tool-images-RZdHiZcG.js";
37
+ import { C as minimaxUnderstandImage, S as extractTextFromChatContent, _ as formatToolSummary, a as resolveProviderVisionModelFromConfig, b as findCodeRegions, c as extractThinkingFromTaggedStream, d as inferToolMetaFromArgs, f as isAssistantMessage, g as stripThinkingTagsFromText, h as stripMinimaxToolCallXml, i as decodeDataUrl, l as extractThinkingFromTaggedText, m as stripDowngradedToolCallText, n as coerceImageAssistantText, o as extractAssistantText$1, p as promoteThinkingTagsToBlocks, r as coerceImageModelConfig, s as extractAssistantThinking, u as formatReasoningMessage, v as resolveToolDisplay, w as ensureOpenClawModelsJson, x as isInsideCode, y as stripReasoningTagsFromText } from "./image-eT7Y-nP5.js";
38
+ import { _ as resolveAttachmentKind, a as resolveAutoImageModel, b as modelSupportsVision, c as applyTemplate, d as normalizeMediaUnderstandingChatType, f as resolveMediaUnderstandingScope, h as registerUnhandledRejectionHandler, i as normalizeMediaAttachments, l as resolveConcurrency, m as buildRandomTempFilePath, n as buildProviderRegistry, o as resolveMediaAttachmentLocalRoots, p as CLI_OUTPUT_MAX_BUFFER, r as createMediaAttachmentCache, s as runCapability, t as runAudioTranscription, u as resolveTimeoutMs$2, v as findModelInCatalog, y as loadModelCatalog } from "./audio-transcription-runner-gLFfz8fr.js";
39
+ import { a as getDefaultMediaLocalRoots, i as getAgentScopedMediaLocalRoots, n as fetchRemoteMedia, r as readResponseWithLimit, t as MediaFetchError } from "./fetch-DuraYswo.js";
40
40
  import { n as fetchWithTimeout, t as bindAbortRelay } from "./fetch-timeout-Wgx3OXYj.js";
41
- import { n as withStrictGuardedFetchMode, r as withTrustedEnvProxyGuardedFetchMode, t as fetchWithSsrFGuard } from "./fetch-guard-ChYBwfiy.js";
42
- import { t as makeProxyFetch } from "./proxy-fetch-CCjEYbFm.js";
43
- import { _ as isSafeFenceBreak, a as loadWebMedia, c as chunkByNewline, d as chunkMarkdownTextWithMode, f as chunkText, g as findFenceSpanAt, h as resolveTextChunkLimit, i as getDefaultLocalRoots, m as resolveChunkMode, o as loadWebMediaRaw, p as chunkTextWithMode, s as resolveMarkdownTableMode, u as chunkMarkdownText, v as parseFenceSpans } from "./ir-DAP-B-Xw.js";
44
- import { a as ToolInputError, c as imageResultFromFile, d as readNumberParam, f as readReactionParams, h as readStringParam, l as jsonResult, m as readStringOrNumberParam, n as missingTargetError, o as createActionGate, p as readStringArrayParam, r as unknownTargetError, s as imageResult, t as ambiguousTargetError, u as parseAvailableTags } from "./target-errors-CBI2Ga0y.js";
45
- import { _ as isRestartEnabled, a as listChatCommandsForConfig, c as maybeResolveTextAlias, d as resolveCommandArgChoices, f as resolveCommandArgMenu, g as isNativeCommandsExplicitlyDisabled, h as isCommandFlagEnabled, i as listChatCommands, l as normalizeCommandBody, m as shouldHandleTextCommands, n as findCommandByNativeName, o as listNativeCommandSpecs, p as serializeCommandArgs, r as isCommandEnabled, s as listNativeCommandSpecsForConfig, t as buildCommandTextFromArgs, u as parseCommandArgs, v as resolveNativeCommandsEnabled, y as resolveNativeSkillsEnabled } from "./commands-registry-V1zZ5pPC.js";
46
- import { a as getRemoteSkillEligibility, c as pruneExpiredPending, i as resolveSkillCommandInvocation, l as resolvePairingPaths, n as listSkillCommandsForAgents, o as ensureSkillsWatcher, r as listSkillCommandsForWorkspace, s as getSkillsSnapshotVersion, t as listReservedChatSlashCommandNames } from "./skill-commands-CMzBZKG2.js";
41
+ import { n as withStrictGuardedFetchMode, r as withTrustedEnvProxyGuardedFetchMode, t as fetchWithSsrFGuard } from "./fetch-guard-DWr0d00H.js";
42
+ import { t as makeProxyFetch } from "./proxy-fetch-B2pEfjbR.js";
43
+ import { _ as isSafeFenceBreak, a as loadWebMedia, c as chunkByNewline, d as chunkMarkdownTextWithMode, f as chunkText, g as findFenceSpanAt, h as resolveTextChunkLimit, i as getDefaultLocalRoots, m as resolveChunkMode, o as loadWebMediaRaw, p as chunkTextWithMode, s as resolveMarkdownTableMode, u as chunkMarkdownText, v as parseFenceSpans } from "./ir-B83looB-.js";
44
+ import { a as ToolInputError, c as imageResultFromFile, d as readNumberParam, f as readReactionParams, h as readStringParam, l as jsonResult, m as readStringOrNumberParam, n as missingTargetError, o as createActionGate, p as readStringArrayParam, r as unknownTargetError, s as imageResult, t as ambiguousTargetError, u as parseAvailableTags } from "./target-errors-mnlwhAjP.js";
45
+ import { _ as isRestartEnabled, a as listChatCommandsForConfig, c as maybeResolveTextAlias, d as resolveCommandArgChoices, f as resolveCommandArgMenu, g as isNativeCommandsExplicitlyDisabled, h as isCommandFlagEnabled, i as listChatCommands, l as normalizeCommandBody, m as shouldHandleTextCommands, n as findCommandByNativeName, o as listNativeCommandSpecs, p as serializeCommandArgs, r as isCommandEnabled, s as listNativeCommandSpecsForConfig, t as buildCommandTextFromArgs, u as parseCommandArgs, v as resolveNativeCommandsEnabled, y as resolveNativeSkillsEnabled } from "./commands-registry-D5qXbFJn.js";
46
+ import { a as getRemoteSkillEligibility, c as pruneExpiredPending, i as resolveSkillCommandInvocation, l as resolvePairingPaths, n as listSkillCommandsForAgents, o as ensureSkillsWatcher, r as listSkillCommandsForWorkspace, s as getSkillsSnapshotVersion, t as listReservedChatSlashCommandNames } from "./skill-commands-DNqJ-kwn.js";
47
47
  import { n as wrapFetchWithAbortSignal, t as resolveFetch } from "./fetch-BfuG8uZ8.js";
48
48
  import { n as recordCommandPoll, r as resetCommandPollCount } from "./command-poll-backoff-CmCpeg5n.js";
49
- import { n as recordChannelActivity, r as createDiscordRetryRunner, t as getChannelActivity } from "./channel-activity-xHOMiarp.js";
49
+ import { n as recordChannelActivity, r as createDiscordRetryRunner, t as getChannelActivity } from "./channel-activity-BDnjYF7B.js";
50
50
  import { t as buildOutboundMediaLoadOptions } from "./load-options-BFUunM8u.js";
51
51
  import { n as normalizePollInput } from "./polls-CYTwXmA1.js";
52
- import { t as convertMarkdownTables } from "./tables-d739Y1xW.js";
53
- import { a as signalCheck, i as resolveSignalRpcContext, n as sendReadReceiptSignal, o as signalRpcRequest, r as sendTypingSignal, s as streamSignalEvents, t as sendMessageSignal } from "./send-BQERFNyo.js";
54
- import { a as isAllowedIMessageSender, i as formatIMessageChatTarget, n as createIMessageRpcClient, o as normalizeIMessageHandle, r as DEFAULT_IMESSAGE_PROBE_TIMEOUT_MS, s as parseIMessageTarget, t as sendMessageIMessage } from "./send-Bj776ESJ.js";
55
- import { i as redactIdentifier, t as getActiveWebListener } from "./active-listener-D1yqT1cw.js";
56
- import { n as resolveMemorySearchConfig } from "./manager-BW_NSIMl.js";
57
- import { f as listMemoryFiles, p as normalizeExtraMemoryPaths } from "./query-expansion-DtLc3wjL.js";
52
+ import { t as convertMarkdownTables } from "./tables-mE4cJBN2.js";
53
+ import { a as signalCheck, i as resolveSignalRpcContext, n as sendReadReceiptSignal, o as signalRpcRequest, r as sendTypingSignal, s as streamSignalEvents, t as sendMessageSignal } from "./send-dfu6_rgf.js";
54
+ import { a as isAllowedIMessageSender, i as formatIMessageChatTarget, n as createIMessageRpcClient, o as normalizeIMessageHandle, r as DEFAULT_IMESSAGE_PROBE_TIMEOUT_MS, s as parseIMessageTarget, t as sendMessageIMessage } from "./send-L7gRiwyd.js";
55
+ import { i as redactIdentifier, t as getActiveWebListener } from "./active-listener-BEdprTkn.js";
56
+ import { n as resolveMemorySearchConfig } from "./manager-1bvuGrNR.js";
57
+ import { f as listMemoryFiles, p as normalizeExtraMemoryPaths } from "./query-expansion-CX-1fS52.js";
58
58
  import { createRequire } from "node:module";
59
- import * as fs$1 from "node:fs/promises";
59
+ import * as fs$2 from "node:fs/promises";
60
60
  import fs from "node:fs/promises";
61
61
  import os, { homedir } from "node:os";
62
62
  import * as path$1 from "node:path";
63
63
  import path, { isAbsolute } from "node:path";
64
- import syncFs, { existsSync, mkdirSync, mkdtempSync, promises, readFileSync, renameSync, rmSync, statSync, unlinkSync, writeFileSync } from "node:fs";
64
+ import fs$1, { existsSync, mkdirSync, mkdtempSync, promises, readFileSync, renameSync, rmSync, statSync, unlinkSync, writeFileSync } from "node:fs";
65
65
  import JSON5 from "json5";
66
66
  import { inspect, isDeepStrictEqual, promisify } from "node:util";
67
67
  import { execFile, execFileSync, spawn, spawnSync } from "node:child_process";
@@ -72,7 +72,7 @@ import { CURRENT_SESSION_VERSION, DefaultResourceLoader, SessionManager, Setting
72
72
  import { EdgeTTS } from "node-edge-tts";
73
73
  import { createServer } from "node:http";
74
74
  import { ProxyAgent, fetch as fetch$1 } from "undici";
75
- import WebSocket$1, { WebSocket } from "ws";
75
+ import WebSocket, { WebSocket as WebSocket$1 } from "ws";
76
76
  import { Buffer as Buffer$1 } from "node:buffer";
77
77
  import { createJiti } from "jiti";
78
78
  import AjvPkg from "ajv";
@@ -3285,7 +3285,7 @@ async function resolveOpenClawDocsPath(params) {
3285
3285
  const workspaceDir = params.workspaceDir?.trim();
3286
3286
  if (workspaceDir) {
3287
3287
  const workspaceDocs = path.join(workspaceDir, "docs");
3288
- if (syncFs.existsSync(workspaceDocs)) return workspaceDocs;
3288
+ if (fs$1.existsSync(workspaceDocs)) return workspaceDocs;
3289
3289
  }
3290
3290
  const packageRoot = await resolveOpenClawPackageRoot({
3291
3291
  cwd: params.cwd,
@@ -3294,7 +3294,7 @@ async function resolveOpenClawDocsPath(params) {
3294
3294
  });
3295
3295
  if (!packageRoot) return null;
3296
3296
  const packageDocs = path.join(packageRoot, "docs");
3297
- return syncFs.existsSync(packageDocs) ? packageDocs : null;
3297
+ return fs$1.existsSync(packageDocs) ? packageDocs : null;
3298
3298
  }
3299
3299
 
3300
3300
  //#endregion
@@ -6411,7 +6411,7 @@ function resolveDefaultIdentityPath() {
6411
6411
  return path.join(resolveStateDir(), "identity", "device.json");
6412
6412
  }
6413
6413
  function ensureDir$2(filePath) {
6414
- syncFs.mkdirSync(path.dirname(filePath), { recursive: true });
6414
+ fs$1.mkdirSync(path.dirname(filePath), { recursive: true });
6415
6415
  }
6416
6416
  const ED25519_SPKI_PREFIX = Buffer.from("302a300506032b6570032100", "hex");
6417
6417
  function base64UrlEncode(buf) {
@@ -6447,8 +6447,8 @@ function generateIdentity() {
6447
6447
  }
6448
6448
  function loadOrCreateDeviceIdentity(filePath = resolveDefaultIdentityPath()) {
6449
6449
  try {
6450
- if (syncFs.existsSync(filePath)) {
6451
- const raw = syncFs.readFileSync(filePath, "utf8");
6450
+ if (fs$1.existsSync(filePath)) {
6451
+ const raw = fs$1.readFileSync(filePath, "utf8");
6452
6452
  const parsed = JSON.parse(raw);
6453
6453
  if (parsed?.version === 1 && typeof parsed.deviceId === "string" && typeof parsed.publicKeyPem === "string" && typeof parsed.privateKeyPem === "string") {
6454
6454
  const derivedId = fingerprintPublicKey(parsed.publicKeyPem);
@@ -6457,9 +6457,9 @@ function loadOrCreateDeviceIdentity(filePath = resolveDefaultIdentityPath()) {
6457
6457
  ...parsed,
6458
6458
  deviceId: derivedId
6459
6459
  };
6460
- syncFs.writeFileSync(filePath, `${JSON.stringify(updated, null, 2)}\n`, { mode: 384 });
6460
+ fs$1.writeFileSync(filePath, `${JSON.stringify(updated, null, 2)}\n`, { mode: 384 });
6461
6461
  try {
6462
- syncFs.chmodSync(filePath, 384);
6462
+ fs$1.chmodSync(filePath, 384);
6463
6463
  } catch {}
6464
6464
  return {
6465
6465
  deviceId: derivedId,
@@ -6484,9 +6484,9 @@ function loadOrCreateDeviceIdentity(filePath = resolveDefaultIdentityPath()) {
6484
6484
  privateKeyPem: identity.privateKeyPem,
6485
6485
  createdAtMs: Date.now()
6486
6486
  };
6487
- syncFs.writeFileSync(filePath, `${JSON.stringify(stored, null, 2)}\n`, { mode: 384 });
6487
+ fs$1.writeFileSync(filePath, `${JSON.stringify(stored, null, 2)}\n`, { mode: 384 });
6488
6488
  try {
6489
- syncFs.chmodSync(filePath, 384);
6489
+ fs$1.chmodSync(filePath, 384);
6490
6490
  } catch {}
6491
6491
  return identity;
6492
6492
  }
@@ -6678,8 +6678,8 @@ function resolveDeviceAuthPath(env = process.env) {
6678
6678
  }
6679
6679
  function readStore(filePath) {
6680
6680
  try {
6681
- if (!syncFs.existsSync(filePath)) return null;
6682
- const raw = syncFs.readFileSync(filePath, "utf8");
6681
+ if (!fs$1.existsSync(filePath)) return null;
6682
+ const raw = fs$1.readFileSync(filePath, "utf8");
6683
6683
  const parsed = JSON.parse(raw);
6684
6684
  if (parsed?.version !== 1 || typeof parsed.deviceId !== "string") return null;
6685
6685
  if (!parsed.tokens || typeof parsed.tokens !== "object") return null;
@@ -6689,10 +6689,10 @@ function readStore(filePath) {
6689
6689
  }
6690
6690
  }
6691
6691
  function writeStore(filePath, store) {
6692
- syncFs.mkdirSync(path.dirname(filePath), { recursive: true });
6693
- syncFs.writeFileSync(filePath, `${JSON.stringify(store, null, 2)}\n`, { mode: 384 });
6692
+ fs$1.mkdirSync(path.dirname(filePath), { recursive: true });
6693
+ fs$1.writeFileSync(filePath, `${JSON.stringify(store, null, 2)}\n`, { mode: 384 });
6694
6694
  try {
6695
- syncFs.chmodSync(filePath, 384);
6695
+ fs$1.chmodSync(filePath, 384);
6696
6696
  } catch {}
6697
6697
  }
6698
6698
  function loadDeviceAuthToken(params) {
@@ -8213,7 +8213,7 @@ var GatewayClient = class {
8213
8213
  if (fingerprint !== expected) return /* @__PURE__ */ new Error("gateway tls fingerprint mismatch");
8214
8214
  });
8215
8215
  }
8216
- this.ws = new WebSocket(url, wsOptions);
8216
+ this.ws = new WebSocket$1(url, wsOptions);
8217
8217
  this.ws.on("open", () => {
8218
8218
  if (url.startsWith("wss://") && this.opts.tlsFingerprint) {
8219
8219
  const tlsError = this.validateTlsFingerprint();
@@ -8409,7 +8409,7 @@ var GatewayClient = class {
8409
8409
  const connectChallengeTimeoutMs = typeof rawConnectDelayMs === "number" && Number.isFinite(rawConnectDelayMs) ? Math.max(250, Math.min(1e4, rawConnectDelayMs)) : 2e3;
8410
8410
  if (this.connectTimer) clearTimeout(this.connectTimer);
8411
8411
  this.connectTimer = setTimeout(() => {
8412
- if (this.connectSent || this.ws?.readyState !== WebSocket.OPEN) return;
8412
+ if (this.connectSent || this.ws?.readyState !== WebSocket$1.OPEN) return;
8413
8413
  this.opts.onConnectError?.(/* @__PURE__ */ new Error("gateway connect challenge timeout"));
8414
8414
  this.ws?.close(1008, "connect challenge timeout");
8415
8415
  }, connectChallengeTimeoutMs);
@@ -8451,7 +8451,7 @@ var GatewayClient = class {
8451
8451
  return null;
8452
8452
  }
8453
8453
  async request(method, params, opts) {
8454
- if (!this.ws || this.ws.readyState !== WebSocket.OPEN) throw new Error("gateway not connected");
8454
+ if (!this.ws || this.ws.readyState !== WebSocket$1.OPEN) throw new Error("gateway not connected");
8455
8455
  const id = randomUUID();
8456
8456
  const frame = {
8457
8457
  type: "req",
@@ -9873,7 +9873,7 @@ function normalizeReplyPayload(payload, opts = {}) {
9873
9873
  */
9874
9874
  let deliverRuntimePromise$2 = null;
9875
9875
  function loadDeliverRuntime$2() {
9876
- deliverRuntimePromise$2 ??= import("./deliver-runtime-D1z-h5eg.js");
9876
+ deliverRuntimePromise$2 ??= import("./deliver-runtime-BFs7iAZF.js");
9877
9877
  return deliverRuntimePromise$2;
9878
9878
  }
9879
9879
  /**
@@ -10561,7 +10561,7 @@ function normalizeSessionKey(value) {
10561
10561
  }
10562
10562
  function readSessionStore(storePath) {
10563
10563
  try {
10564
- const raw = syncFs.readFileSync(storePath, "utf-8");
10564
+ const raw = fs$1.readFileSync(storePath, "utf-8");
10565
10565
  const parsed = JSON5.parse(raw);
10566
10566
  if (parsed && typeof parsed === "object" && !Array.isArray(parsed)) return parsed;
10567
10567
  } catch {}
@@ -11161,7 +11161,7 @@ const DEFAULT_SUBAGENT_ANNOUNCE_TIMEOUT_MS = 6e4;
11161
11161
  const MAX_TIMER_SAFE_TIMEOUT_MS = 2147e6;
11162
11162
  let subagentRegistryRuntimePromise = null;
11163
11163
  function loadSubagentRegistryRuntime() {
11164
- subagentRegistryRuntimePromise ??= import("./subagent-registry-runtime-DEVpAaAP.js");
11164
+ subagentRegistryRuntimePromise ??= import("./subagent-registry-runtime-DL1Wv7nA.js");
11165
11165
  return subagentRegistryRuntimePromise;
11166
11166
  }
11167
11167
  const DIRECT_ANNOUNCE_TRANSIENT_RETRY_DELAYS_MS = FAST_TEST_MODE ? [
@@ -14515,7 +14515,7 @@ async function runWithConcurrency(tasks, limit) {
14515
14515
  //#region src/media-understanding/echo-transcript.ts
14516
14516
  let deliverRuntimePromise$1 = null;
14517
14517
  function loadDeliverRuntime$1() {
14518
- deliverRuntimePromise$1 ??= import("./deliver-runtime-D1z-h5eg.js");
14518
+ deliverRuntimePromise$1 ??= import("./deliver-runtime-BFs7iAZF.js");
14519
14519
  return deliverRuntimePromise$1;
14520
14520
  }
14521
14521
  const DEFAULT_ECHO_TRANSCRIPT_FORMAT = "📝 \"{transcript}\"";
@@ -18164,7 +18164,7 @@ function mergeLegacyAgent(current, legacy) {
18164
18164
  }
18165
18165
  function ensureDir$1(filePath) {
18166
18166
  const dir = path.dirname(filePath);
18167
- syncFs.mkdirSync(dir, { recursive: true });
18167
+ fs$1.mkdirSync(dir, { recursive: true });
18168
18168
  }
18169
18169
  function coerceAllowlistEntries(allowlist) {
18170
18170
  if (!Array.isArray(allowlist) || allowlist.length === 0) return Array.isArray(allowlist) ? allowlist : void 0;
@@ -18234,11 +18234,11 @@ function generateToken() {
18234
18234
  function loadExecApprovals() {
18235
18235
  const filePath = resolveExecApprovalsPath();
18236
18236
  try {
18237
- if (!syncFs.existsSync(filePath)) return normalizeExecApprovals({
18237
+ if (!fs$1.existsSync(filePath)) return normalizeExecApprovals({
18238
18238
  version: 1,
18239
18239
  agents: {}
18240
18240
  });
18241
- const raw = syncFs.readFileSync(filePath, "utf8");
18241
+ const raw = fs$1.readFileSync(filePath, "utf8");
18242
18242
  const parsed = JSON.parse(raw);
18243
18243
  if (parsed?.version !== 1) return normalizeExecApprovals({
18244
18244
  version: 1,
@@ -18255,9 +18255,9 @@ function loadExecApprovals() {
18255
18255
  function saveExecApprovals(file) {
18256
18256
  const filePath = resolveExecApprovalsPath();
18257
18257
  ensureDir$1(filePath);
18258
- syncFs.writeFileSync(filePath, `${JSON.stringify(file, null, 2)}\n`, { mode: 384 });
18258
+ fs$1.writeFileSync(filePath, `${JSON.stringify(file, null, 2)}\n`, { mode: 384 });
18259
18259
  try {
18260
- syncFs.chmodSync(filePath, 384);
18260
+ fs$1.chmodSync(filePath, 384);
18261
18261
  } catch {}
18262
18262
  }
18263
18263
  function ensureExecApprovals() {
@@ -18754,18 +18754,18 @@ function drainSystemEventEntries(sessionKey) {
18754
18754
  function resolvePowerShellPath() {
18755
18755
  const programFiles = process.env.ProgramFiles || process.env.PROGRAMFILES || "C:\\Program Files";
18756
18756
  const pwsh7 = path.join(programFiles, "PowerShell", "7", "pwsh.exe");
18757
- if (syncFs.existsSync(pwsh7)) return pwsh7;
18757
+ if (fs$1.existsSync(pwsh7)) return pwsh7;
18758
18758
  const programW6432 = process.env.ProgramW6432;
18759
18759
  if (programW6432 && programW6432 !== programFiles) {
18760
18760
  const pwsh7Alt = path.join(programW6432, "PowerShell", "7", "pwsh.exe");
18761
- if (syncFs.existsSync(pwsh7Alt)) return pwsh7Alt;
18761
+ if (fs$1.existsSync(pwsh7Alt)) return pwsh7Alt;
18762
18762
  }
18763
18763
  const pwshInPath = resolveShellFromPath("pwsh");
18764
18764
  if (pwshInPath) return pwshInPath;
18765
18765
  const systemRoot = process.env.SystemRoot || process.env.WINDIR;
18766
18766
  if (systemRoot) {
18767
18767
  const candidate = path.join(systemRoot, "System32", "WindowsPowerShell", "v1.0", "powershell.exe");
18768
- if (syncFs.existsSync(candidate)) return candidate;
18768
+ if (fs$1.existsSync(candidate)) return candidate;
18769
18769
  }
18770
18770
  return "powershell.exe";
18771
18771
  }
@@ -18803,7 +18803,7 @@ function resolveShellFromPath(name) {
18803
18803
  for (const entry of entries) {
18804
18804
  const candidate = path.join(entry, name);
18805
18805
  try {
18806
- syncFs.accessSync(candidate, syncFs.constants.X_OK);
18806
+ fs$1.accessSync(candidate, fs$1.constants.X_OK);
18807
18807
  return candidate;
18808
18808
  } catch {}
18809
18809
  }
@@ -22278,7 +22278,7 @@ function ensureContextWindowCacheLoaded() {
22278
22278
  await ensureOpenClawModelsJson(cfg);
22279
22279
  } catch {}
22280
22280
  try {
22281
- const { discoverAuthStorage, discoverModels } = await import("./pi-model-discovery-BGgOlX8N.js").then((n) => n.r);
22281
+ const { discoverAuthStorage, discoverModels } = await import("./pi-model-discovery-Dymwdjt0.js").then((n) => n.r);
22282
22282
  const agentDir = resolveOpenClawAgentDir();
22283
22283
  const modelRegistry = discoverModels(discoverAuthStorage(agentDir), agentDir);
22284
22284
  applyDiscoveredContextWindows({
@@ -22434,7 +22434,7 @@ function walkUpFrom(startDir, opts, resolveAtDir) {
22434
22434
  function hasGitMarker(repoRoot) {
22435
22435
  const gitPath = path.join(repoRoot, ".git");
22436
22436
  try {
22437
- const stat = syncFs.statSync(gitPath);
22437
+ const stat = fs$1.statSync(gitPath);
22438
22438
  return stat.isDirectory() || stat.isFile();
22439
22439
  } catch {
22440
22440
  return false;
@@ -22446,10 +22446,10 @@ function findGitRoot(startDir, opts = {}) {
22446
22446
  function resolveGitDirFromMarker(repoRoot) {
22447
22447
  const gitPath = path.join(repoRoot, ".git");
22448
22448
  try {
22449
- const stat = syncFs.statSync(gitPath);
22449
+ const stat = fs$1.statSync(gitPath);
22450
22450
  if (stat.isDirectory()) return gitPath;
22451
22451
  if (!stat.isFile()) return null;
22452
- const match = syncFs.readFileSync(gitPath, "utf-8").match(/gitdir:\s*(.+)/i);
22452
+ const match = fs$1.readFileSync(gitPath, "utf-8").match(/gitdir:\s*(.+)/i);
22453
22453
  if (!match?.[1]) return null;
22454
22454
  return path.resolve(repoRoot, match[1].trim());
22455
22455
  } catch {
@@ -22516,7 +22516,7 @@ const resolveCommitHash = (options = {}) => {
22516
22516
  cachedCommit = null;
22517
22517
  return cachedCommit;
22518
22518
  }
22519
- const head = syncFs.readFileSync(headPath, "utf-8").trim();
22519
+ const head = fs$1.readFileSync(headPath, "utf-8").trim();
22520
22520
  if (!head) {
22521
22521
  cachedCommit = null;
22522
22522
  return cachedCommit;
@@ -22524,7 +22524,7 @@ const resolveCommitHash = (options = {}) => {
22524
22524
  if (head.startsWith("ref:")) {
22525
22525
  const ref = head.replace(/^ref:\s*/i, "").trim();
22526
22526
  const refPath = path.resolve(path.dirname(headPath), ref);
22527
- cachedCommit = formatCommit(syncFs.readFileSync(refPath, "utf-8").trim());
22527
+ cachedCommit = formatCommit(fs$1.readFileSync(refPath, "utf-8").trim());
22528
22528
  return cachedCommit;
22529
22529
  }
22530
22530
  cachedCommit = formatCommit(head);
@@ -22784,17 +22784,17 @@ const readUsageFromSessionLog = (sessionId, sessionEntry, agentId, sessionKey, s
22784
22784
  } catch {
22785
22785
  return;
22786
22786
  }
22787
- if (!syncFs.existsSync(logPath)) return;
22787
+ if (!fs$1.existsSync(logPath)) return;
22788
22788
  try {
22789
22789
  const TAIL_BYTES = 8192;
22790
- const stat = syncFs.statSync(logPath);
22790
+ const stat = fs$1.statSync(logPath);
22791
22791
  const offset = Math.max(0, stat.size - TAIL_BYTES);
22792
22792
  const buf = Buffer.alloc(Math.min(TAIL_BYTES, stat.size));
22793
- const fd = syncFs.openSync(logPath, "r");
22793
+ const fd = fs$1.openSync(logPath, "r");
22794
22794
  try {
22795
- syncFs.readSync(fd, buf, 0, buf.length, offset);
22795
+ fs$1.readSync(fd, buf, 0, buf.length, offset);
22796
22796
  } finally {
22797
- syncFs.closeSync(fd);
22797
+ fs$1.closeSync(fd);
22798
22798
  }
22799
22799
  const tail = buf.toString("utf-8");
22800
22800
  const lines = (offset > 0 ? tail.slice(tail.indexOf("\n") + 1) : tail).split(/\n+/);
@@ -24302,7 +24302,7 @@ function resolveRepoRoot(params) {
24302
24302
  const configured = params.config?.agents?.defaults?.repoRoot?.trim();
24303
24303
  if (configured) try {
24304
24304
  const resolved = path.resolve(configured);
24305
- if (syncFs.statSync(resolved).isDirectory()) return resolved;
24305
+ if (fs$1.statSync(resolved).isDirectory()) return resolved;
24306
24306
  } catch {}
24307
24307
  const candidates = [params.workspaceDir, params.cwd].map((value) => value?.trim()).filter(Boolean);
24308
24308
  const seen = /* @__PURE__ */ new Set();
@@ -25088,7 +25088,7 @@ async function buildContextReply(params) {
25088
25088
  //#region src/auto-reply/reply/commands-export-session.ts
25089
25089
  const EXPORT_HTML_DIR = path.join(path.dirname(fileURLToPath(import.meta.url)), "export-html");
25090
25090
  function loadTemplate(fileName) {
25091
- return syncFs.readFileSync(path.join(EXPORT_HTML_DIR, fileName), "utf-8");
25091
+ return fs$1.readFileSync(path.join(EXPORT_HTML_DIR, fileName), "utf-8");
25092
25092
  }
25093
25093
  function generateHtml(sessionData) {
25094
25094
  const template = loadTemplate("template.html");
@@ -25162,7 +25162,7 @@ async function buildExportSessionReply(params) {
25162
25162
  } catch (err) {
25163
25163
  return { text: `❌ Failed to resolve session file: ${err instanceof Error ? err.message : String(err)}` };
25164
25164
  }
25165
- if (!syncFs.existsSync(sessionFile)) return { text: `❌ Session file not found: ${sessionFile}` };
25165
+ if (!fs$1.existsSync(sessionFile)) return { text: `❌ Session file not found: ${sessionFile}` };
25166
25166
  const sessionManager = SessionManager.open(sessionFile);
25167
25167
  const entries = sessionManager.getEntries();
25168
25168
  const header = sessionManager.getHeader();
@@ -25183,8 +25183,8 @@ async function buildExportSessionReply(params) {
25183
25183
  const defaultFileName = `openclaw-session-${entry.sessionId.slice(0, 8)}-${timestamp}.html`;
25184
25184
  const outputPath = args.outputPath ? path.resolve(args.outputPath.startsWith("~") ? args.outputPath.replace("~", process.env.HOME ?? "") : args.outputPath) : path.join(params.workspaceDir, defaultFileName);
25185
25185
  const outputDir = path.dirname(outputPath);
25186
- if (!syncFs.existsSync(outputDir)) syncFs.mkdirSync(outputDir, { recursive: true });
25187
- syncFs.writeFileSync(outputPath, html, "utf-8");
25186
+ if (!fs$1.existsSync(outputDir)) fs$1.mkdirSync(outputDir, { recursive: true });
25187
+ fs$1.writeFileSync(outputPath, html, "utf-8");
25188
25188
  const relativePath = path.relative(params.workspaceDir, outputPath);
25189
25189
  return { text: [
25190
25190
  "✅ Session exported!",
@@ -25331,8 +25331,8 @@ function resolveZaiApiKey() {
25331
25331
  }
25332
25332
  try {
25333
25333
  const authPath = path.join(resolveRequiredHomeDir(process.env, os.homedir), ".pi", "agent", "auth.json");
25334
- if (!syncFs.existsSync(authPath)) return;
25335
- const data = JSON.parse(syncFs.readFileSync(authPath, "utf-8"));
25334
+ if (!fs$1.existsSync(authPath)) return;
25335
+ const data = JSON.parse(fs$1.readFileSync(authPath, "utf-8"));
25336
25336
  return data["z-ai"]?.access || data.zai?.access;
25337
25337
  } catch {
25338
25338
  return;
@@ -27151,7 +27151,7 @@ function shouldPersistAnyBindingState() {
27151
27151
  }
27152
27152
  function shouldPersistBindingMutations() {
27153
27153
  if (shouldPersistAnyBindingState()) return true;
27154
- return syncFs.existsSync(resolveThreadBindingsPath());
27154
+ return fs$1.existsSync(resolveThreadBindingsPath());
27155
27155
  }
27156
27156
  function saveBindingsToDisk(params = {}) {
27157
27157
  if (!params.force && !shouldPersistAnyBindingState()) return;
@@ -28553,7 +28553,7 @@ const applyCostTotal = (totals, costTotal) => {
28553
28553
  totals.totalCost += costTotal;
28554
28554
  };
28555
28555
  async function* readJsonlRecords(filePath) {
28556
- const fileStream = syncFs.createReadStream(filePath, { encoding: "utf-8" });
28556
+ const fileStream = fs$1.createReadStream(filePath, { encoding: "utf-8" });
28557
28557
  const rl = readline.createInterface({
28558
28558
  input: fileStream,
28559
28559
  crlfDelay: Infinity
@@ -28625,10 +28625,10 @@ async function loadCostUsageSummary(params) {
28625
28625
  const dailyMap = /* @__PURE__ */ new Map();
28626
28626
  const totals = emptyTotals();
28627
28627
  const sessionsDir = resolveSessionTranscriptsDirForAgent(params?.agentId);
28628
- const entries = await syncFs.promises.readdir(sessionsDir, { withFileTypes: true }).catch(() => []);
28628
+ const entries = await fs$1.promises.readdir(sessionsDir, { withFileTypes: true }).catch(() => []);
28629
28629
  const files = (await Promise.all(entries.filter((entry) => entry.isFile() && entry.name.endsWith(".jsonl")).map(async (entry) => {
28630
28630
  const filePath = path.join(sessionsDir, entry.name);
28631
- const stats = await syncFs.promises.stat(filePath).catch(() => null);
28631
+ const stats = await fs$1.promises.stat(filePath).catch(() => null);
28632
28632
  if (!stats) return null;
28633
28633
  if (stats.mtimeMs < sinceTime) return null;
28634
28634
  return filePath;
@@ -28661,7 +28661,7 @@ async function loadCostUsageSummary(params) {
28661
28661
  }
28662
28662
  async function loadSessionCostSummary(params) {
28663
28663
  const sessionFile = params.sessionFile ?? (params.sessionId ? resolveSessionFilePath(params.sessionId, params.sessionEntry, { agentId: params.agentId }) : void 0);
28664
- if (!sessionFile || !syncFs.existsSync(sessionFile)) return null;
28664
+ if (!sessionFile || !fs$1.existsSync(sessionFile)) return null;
28665
28665
  const totals = emptyTotals();
28666
28666
  let firstActivity;
28667
28667
  let lastActivity;
@@ -31184,7 +31184,7 @@ async function createModelSelectionState(params) {
31184
31184
  }
31185
31185
  }
31186
31186
  if (sessionEntry && sessionStore && sessionKey && sessionEntry.authProfileOverride) {
31187
- const { ensureAuthProfileStore } = await import("./model-selection-idoqPmw0.js").then((n) => n.F);
31187
+ const { ensureAuthProfileStore } = await import("./model-selection-Dna0Gz1k.js").then((n) => n.F);
31188
31188
  const profile = ensureAuthProfileStore(void 0, { allowKeychainPrompt: false }).profiles[sessionEntry.authProfileOverride];
31189
31189
  const providerKey = normalizeProviderId(provider);
31190
31190
  if (!profile || normalizeProviderId(profile.provider) !== providerKey) await clearSessionAuthProfileOverride({
@@ -34845,7 +34845,7 @@ function asBoolean(value) {
34845
34845
  }
34846
34846
  function resolveTempPathParts(opts) {
34847
34847
  const tmpDir = opts.tmpDir ?? resolvePreferredOpenClawTmpDir();
34848
- if (!opts.tmpDir) syncFs.mkdirSync(tmpDir, {
34848
+ if (!opts.tmpDir) fs$1.mkdirSync(tmpDir, {
34849
34849
  recursive: true,
34850
34850
  mode: 448
34851
34851
  });
@@ -34931,7 +34931,7 @@ async function writeUrlToFile(filePath, url, opts) {
34931
34931
  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}`);
34932
34932
  const body = res.body;
34933
34933
  if (!body) throw new Error(`failed to download ${url}: empty response body`);
34934
- const fileHandle = await fs$1.open(filePath, "w");
34934
+ const fileHandle = await fs$2.open(filePath, "w");
34935
34935
  let thrown;
34936
34936
  try {
34937
34937
  const reader = body.getReader();
@@ -34949,7 +34949,7 @@ async function writeUrlToFile(filePath, url, opts) {
34949
34949
  await fileHandle.close();
34950
34950
  }
34951
34951
  if (thrown) {
34952
- await fs$1.unlink(filePath).catch(() => {});
34952
+ await fs$2.unlink(filePath).catch(() => {});
34953
34953
  throw thrown;
34954
34954
  }
34955
34955
  } finally {
@@ -34962,7 +34962,7 @@ async function writeUrlToFile(filePath, url, opts) {
34962
34962
  }
34963
34963
  async function writeBase64ToFile(filePath, base64) {
34964
34964
  const buf = Buffer.from(base64, "base64");
34965
- await fs$1.writeFile(filePath, buf);
34965
+ await fs$2.writeFile(filePath, buf);
34966
34966
  return {
34967
34967
  path: filePath,
34968
34968
  bytes: buf.length
@@ -38006,9 +38006,9 @@ function loadExternalCatalogEntries(options) {
38006
38006
  const entries = [];
38007
38007
  for (const rawPath of paths) {
38008
38008
  const resolved = resolveUserPath(rawPath);
38009
- if (!syncFs.existsSync(resolved)) continue;
38009
+ if (!fs$1.existsSync(resolved)) continue;
38010
38010
  try {
38011
- const payload = JSON.parse(syncFs.readFileSync(resolved, "utf-8"));
38011
+ const payload = JSON.parse(fs$1.readFileSync(resolved, "utf-8"));
38012
38012
  entries.push(...parseCatalogEntries(payload));
38013
38013
  } catch {}
38014
38014
  }
@@ -42125,7 +42125,7 @@ function listExistingAgentIdsFromDisk() {
42125
42125
  const root = resolveStateDir();
42126
42126
  const agentsDir = path.join(root, "agents");
42127
42127
  try {
42128
- return syncFs.readdirSync(agentsDir, { withFileTypes: true }).filter((entry) => entry.isDirectory()).map((entry) => normalizeAgentId(entry.name)).filter(Boolean);
42128
+ return fs$1.readdirSync(agentsDir, { withFileTypes: true }).filter((entry) => entry.isDirectory()).map((entry) => normalizeAgentId(entry.name)).filter(Boolean);
42129
42129
  } catch {
42130
42130
  return [];
42131
42131
  }
@@ -48246,7 +48246,7 @@ async function runAgentTurnWithFallback(params) {
48246
48246
  if (corruptedSessionId) {
48247
48247
  const transcriptPath = resolveSessionTranscriptPath(corruptedSessionId);
48248
48248
  try {
48249
- syncFs.unlinkSync(transcriptPath);
48249
+ fs$1.unlinkSync(transcriptPath);
48250
48250
  } catch {}
48251
48251
  }
48252
48252
  delete params.activeSessionStore[sessionKey];
@@ -49066,7 +49066,7 @@ async function readSessionLogSnapshot(params) {
49066
49066
  if (!logPath) return {};
49067
49067
  const snapshot = {};
49068
49068
  if (params.includeByteSize) try {
49069
- const stat = await syncFs.promises.stat(logPath);
49069
+ const stat = await fs$1.promises.stat(logPath);
49070
49070
  const size = Math.floor(stat.size);
49071
49071
  snapshot.byteSize = Number.isFinite(size) && size >= 0 ? size : void 0;
49072
49072
  } catch {
@@ -49080,7 +49080,7 @@ async function readSessionLogSnapshot(params) {
49080
49080
  return snapshot;
49081
49081
  }
49082
49082
  async function readLastNonzeroUsageFromSessionLog(logPath) {
49083
- const handle = await syncFs.promises.open(logPath, "r");
49083
+ const handle = await fs$1.promises.open(logPath, "r");
49084
49084
  try {
49085
49085
  let position = (await handle.stat()).size;
49086
49086
  let leadingPartial = "";
@@ -49777,9 +49777,9 @@ async function readPostCompactionContext(workspaceDir, cfg, nowMs) {
49777
49777
  if (!opened.ok) return null;
49778
49778
  const sections = extractSections((() => {
49779
49779
  try {
49780
- return syncFs.readFileSync(opened.fd, "utf-8");
49780
+ return fs$1.readFileSync(opened.fd, "utf-8");
49781
49781
  } finally {
49782
- syncFs.closeSync(opened.fd);
49782
+ fs$1.closeSync(opened.fd);
49783
49783
  }
49784
49784
  })(), ["Session Startup", "Red Lines"]);
49785
49785
  if (sections.length === 0) return null;
@@ -50001,7 +50001,7 @@ async function runReplyAgent(params) {
50001
50001
  if (resolved) transcriptCandidates.add(resolved);
50002
50002
  transcriptCandidates.add(resolveSessionTranscriptPath(prevSessionId, agentId));
50003
50003
  for (const candidate of transcriptCandidates) try {
50004
- syncFs.unlinkSync(candidate);
50004
+ fs$1.unlinkSync(candidate);
50005
50005
  } catch {}
50006
50006
  }
50007
50007
  return true;
@@ -50947,7 +50947,7 @@ const warnedContexts = /* @__PURE__ */ new Map();
50947
50947
  const log$10 = createSubsystemLogger("session-maintenance-warning");
50948
50948
  let deliverRuntimePromise = null;
50949
50949
  function loadDeliverRuntime() {
50950
- deliverRuntimePromise ??= import("./deliver-runtime-D1z-h5eg.js");
50950
+ deliverRuntimePromise ??= import("./deliver-runtime-BFs7iAZF.js");
50951
50951
  return deliverRuntimePromise;
50952
50952
  }
50953
50953
  function shouldSendWarning() {
@@ -51114,7 +51114,7 @@ function forkSessionFromParent(params) {
51114
51114
  agentId: params.agentId,
51115
51115
  sessionsDir: params.sessionsDir
51116
51116
  });
51117
- if (!parentSessionFile || !syncFs.existsSync(parentSessionFile)) return null;
51117
+ if (!parentSessionFile || !fs$1.existsSync(parentSessionFile)) return null;
51118
51118
  try {
51119
51119
  const manager = SessionManager.open(parentSessionFile);
51120
51120
  const leafId = manager.getLeafId();
@@ -51138,7 +51138,7 @@ function forkSessionFromParent(params) {
51138
51138
  cwd: manager.getCwd(),
51139
51139
  parentSession: parentSessionFile
51140
51140
  };
51141
- syncFs.writeFileSync(sessionFile, `${JSON.stringify(header)}\n`, "utf-8");
51141
+ fs$1.writeFileSync(sessionFile, `${JSON.stringify(header)}\n`, "utf-8");
51142
51142
  return {
51143
51143
  sessionId,
51144
51144
  sessionFile
@@ -55924,7 +55924,7 @@ const VISION_PROVIDERS = [
55924
55924
  ];
55925
55925
  let imageRuntimePromise = null;
55926
55926
  function loadImageRuntime() {
55927
- imageRuntimePromise ??= import("./image-runtime-DWjhow2W.js");
55927
+ imageRuntimePromise ??= import("./image-runtime-BcAK3n8a.js");
55928
55928
  return imageRuntimePromise;
55929
55929
  }
55930
55930
  /**
@@ -57917,7 +57917,7 @@ async function resolveDiscordPreflightAudioMentionContext(params) {
57917
57917
  const needsPreflightTranscription = !params.isDirectMessage && params.shouldRequireMention && hasAudioAttachment && !hasTypedText && params.mentionRegexes.length > 0;
57918
57918
  let transcript;
57919
57919
  if (needsPreflightTranscription) try {
57920
- const { transcribeFirstAudio } = await import("./audio-preflight-DoPfNXDz.js");
57920
+ const { transcribeFirstAudio } = await import("./audio-preflight-BMvgEQ5j.js");
57921
57921
  const audioUrls = audioAttachments.map((att) => att.url).filter((url) => typeof url === "string" && url.length > 0);
57922
57922
  if (audioUrls.length > 0) transcript = await transcribeFirstAudio({
57923
57923
  ctx: {
@@ -59477,7 +59477,7 @@ function identityHasValues(identity) {
59477
59477
  }
59478
59478
  function loadIdentityFromFile(identityPath) {
59479
59479
  try {
59480
- const parsed = parseIdentityMarkdown(syncFs.readFileSync(identityPath, "utf-8"));
59480
+ const parsed = parseIdentityMarkdown(fs$1.readFileSync(identityPath, "utf-8"));
59481
59481
  if (!identityHasValues(parsed)) return null;
59482
59482
  return parsed;
59483
59483
  } catch {
@@ -59501,7 +59501,7 @@ function resolveAvatarSource(cfg, agentId) {
59501
59501
  }
59502
59502
  function resolveExistingPath(value) {
59503
59503
  try {
59504
- return syncFs.realpathSync(value);
59504
+ return fs$1.realpathSync(value);
59505
59505
  } catch {
59506
59506
  return path.resolve(value);
59507
59507
  }
@@ -59519,7 +59519,7 @@ function resolveLocalAvatarPath(params) {
59519
59519
  reason: "unsupported_extension"
59520
59520
  };
59521
59521
  try {
59522
- const stat = syncFs.statSync(realPath);
59522
+ const stat = fs$1.statSync(realPath);
59523
59523
  if (!stat.isFile()) return {
59524
59524
  ok: false,
59525
59525
  reason: "missing"
@@ -65177,27 +65177,27 @@ let slackSenderRuntimePromise = null;
65177
65177
  let signalSenderRuntimePromise = null;
65178
65178
  let imessageSenderRuntimePromise = null;
65179
65179
  function loadWhatsAppSenderRuntime() {
65180
- whatsappSenderRuntimePromise ??= import("./deps-send-whatsapp.runtime-Dz_4fi2D.js");
65180
+ whatsappSenderRuntimePromise ??= import("./deps-send-whatsapp.runtime-DK8jqd14.js");
65181
65181
  return whatsappSenderRuntimePromise;
65182
65182
  }
65183
65183
  function loadTelegramSenderRuntime() {
65184
- telegramSenderRuntimePromise ??= import("./deps-send-telegram.runtime-DGSKTCpH.js");
65184
+ telegramSenderRuntimePromise ??= import("./deps-send-telegram.runtime-D_4xVasO.js");
65185
65185
  return telegramSenderRuntimePromise;
65186
65186
  }
65187
65187
  function loadDiscordSenderRuntime() {
65188
- discordSenderRuntimePromise ??= import("./deps-send-discord.runtime-DnbhTFX9.js");
65188
+ discordSenderRuntimePromise ??= import("./deps-send-discord.runtime-DZUccI6Z.js");
65189
65189
  return discordSenderRuntimePromise;
65190
65190
  }
65191
65191
  function loadSlackSenderRuntime() {
65192
- slackSenderRuntimePromise ??= import("./deps-send-slack.runtime-CCqBz4Kg.js");
65192
+ slackSenderRuntimePromise ??= import("./deps-send-slack.runtime-BDsDhS1P.js");
65193
65193
  return slackSenderRuntimePromise;
65194
65194
  }
65195
65195
  function loadSignalSenderRuntime() {
65196
- signalSenderRuntimePromise ??= import("./deps-send-signal.runtime-CTcl388M.js");
65196
+ signalSenderRuntimePromise ??= import("./deps-send-signal.runtime-Cw4-ozeO.js");
65197
65197
  return signalSenderRuntimePromise;
65198
65198
  }
65199
65199
  function loadIMessageSenderRuntime() {
65200
- imessageSenderRuntimePromise ??= import("./deps-send-imessage.runtime-BOiQ6mDx.js");
65200
+ imessageSenderRuntimePromise ??= import("./deps-send-imessage.runtime-CF3OpoqY.js");
65201
65201
  return imessageSenderRuntimePromise;
65202
65202
  }
65203
65203
  function createDefaultDeps() {
@@ -68887,7 +68887,7 @@ function createDiscordGatewayPlugin(params) {
68887
68887
  return super.registerClient(client);
68888
68888
  }
68889
68889
  createWebSocket(url) {
68890
- return new WebSocket$1(url, { agent: wsAgent });
68890
+ return new WebSocket(url, { agent: wsAgent });
68891
68891
  }
68892
68892
  }
68893
68893
  return new ProxyGatewayPlugin();
@@ -71304,7 +71304,7 @@ async function monitorIMessageProvider(opts = {}) {
71304
71304
  function readFileIfExists(filePath) {
71305
71305
  if (!filePath) return;
71306
71306
  try {
71307
- return syncFs.readFileSync(filePath, "utf-8").trim();
71307
+ return fs$1.readFileSync(filePath, "utf-8").trim();
71308
71308
  } catch {
71309
71309
  return;
71310
71310
  }
@@ -71934,7 +71934,7 @@ async function downloadLineMedia(messageId, channelAccessToken, maxBytes = 10 *
71934
71934
  prefix: "line-media",
71935
71935
  extension: getExtensionForContentType(contentType)
71936
71936
  });
71937
- await syncFs.promises.writeFile(filePath, buffer);
71937
+ await fs$1.promises.writeFile(filePath, buffer);
71938
71938
  logVerbose(`line: downloaded media ${messageId} to ${filePath} (${buffer.length} bytes)`);
71939
71939
  return {
71940
71940
  path: filePath,
@@ -77938,15 +77938,15 @@ let slashCommandsRuntimePromise = null;
77938
77938
  let slashDispatchRuntimePromise = null;
77939
77939
  let slashSkillCommandsRuntimePromise = null;
77940
77940
  function loadSlashCommandsRuntime() {
77941
- slashCommandsRuntimePromise ??= import("./slash-commands.runtime-Cpn2tYW4.js");
77941
+ slashCommandsRuntimePromise ??= import("./slash-commands.runtime-CVw6566g.js");
77942
77942
  return slashCommandsRuntimePromise;
77943
77943
  }
77944
77944
  function loadSlashDispatchRuntime() {
77945
- slashDispatchRuntimePromise ??= import("./slash-dispatch.runtime-CWbpp23S.js");
77945
+ slashDispatchRuntimePromise ??= import("./slash-dispatch.runtime-B9Ygtzi4.js");
77946
77946
  return slashDispatchRuntimePromise;
77947
77947
  }
77948
77948
  function loadSlashSkillCommandsRuntime() {
77949
- slashSkillCommandsRuntimePromise ??= import("./slash-skill-commands.runtime-DKMvvdDW.js");
77949
+ slashSkillCommandsRuntimePromise ??= import("./slash-skill-commands.runtime-DxZ4z5h6.js");
77950
77950
  return slashSkillCommandsRuntimePromise;
77951
77951
  }
77952
77952
  const slackExternalArgMenuStore = createSlackExternalArgMenuStore();
@@ -78936,7 +78936,7 @@ function collectTelegramUnmentionedGroupIds(groups) {
78936
78936
  }
78937
78937
  let auditMembershipRuntimePromise = null;
78938
78938
  function loadAuditMembershipRuntime() {
78939
- auditMembershipRuntimePromise ??= import("./audit-membership-runtime-DWyHWAHM.js");
78939
+ auditMembershipRuntimePromise ??= import("./audit-membership-runtime-Dntemq07.js");
78940
78940
  return auditMembershipRuntimePromise;
78941
78941
  }
78942
78942
  async function auditTelegramGroupMembership(params) {
@@ -81311,7 +81311,7 @@ const buildTelegramMessageContext = async ({ primaryCtx, allMedia, replyMedia =
81311
81311
  const disableAudioPreflight = firstDefined$1(topicConfig?.disableAudioPreflight, groupConfig?.disableAudioPreflight) === true;
81312
81312
  let preflightTranscript;
81313
81313
  if (isGroup && requireMention && hasAudio && !hasUserText && mentionRegexes.length > 0 && !disableAudioPreflight) try {
81314
- const { transcribeFirstAudio } = await import("./audio-preflight-DoPfNXDz.js");
81314
+ const { transcribeFirstAudio } = await import("./audio-preflight-BMvgEQ5j.js");
81315
81315
  preflightTranscript = await transcribeFirstAudio({
81316
81316
  ctx: {
81317
81317
  MediaPaths: allMedia.length > 0 ? allMedia.map((m) => m.path) : void 0,
@@ -84124,7 +84124,7 @@ function createWhatsAppLoginTool() {
84124
84124
  force: Type.Optional(Type.Boolean())
84125
84125
  }),
84126
84126
  execute: async (_toolCallId, args) => {
84127
- const { startWebLoginWithQr, waitForWebLogin } = await import("./login-qr-MUbXgjtd.js");
84127
+ const { startWebLoginWithQr, waitForWebLogin } = await import("./login-qr-BpPDZdl_.js");
84128
84128
  if ((args?.action ?? "start") === "wait") {
84129
84129
  const result = await waitForWebLogin({ timeoutMs: typeof args.timeoutMs === "number" ? args.timeoutMs : void 0 });
84130
84130
  return {
@@ -84199,23 +84199,23 @@ let webOutboundPromise = null;
84199
84199
  let webLoginPromise = null;
84200
84200
  let whatsappActionsPromise = null;
84201
84201
  function loadWebOutbound() {
84202
- webOutboundPromise ??= import("./runtime-whatsapp-outbound.runtime-ClBRuLsq.js");
84202
+ webOutboundPromise ??= import("./runtime-whatsapp-outbound.runtime-Bii_xSfI.js");
84203
84203
  return webOutboundPromise;
84204
84204
  }
84205
84205
  function loadWebLogin() {
84206
- webLoginPromise ??= import("./runtime-whatsapp-login.runtime-IeylZEl4.js");
84206
+ webLoginPromise ??= import("./runtime-whatsapp-login.runtime-DUb55byQ.js");
84207
84207
  return webLoginPromise;
84208
84208
  }
84209
84209
  function loadWebLoginQr() {
84210
- webLoginQrPromise ??= import("./login-qr-MUbXgjtd.js");
84210
+ webLoginQrPromise ??= import("./login-qr-BpPDZdl_.js");
84211
84211
  return webLoginQrPromise;
84212
84212
  }
84213
84213
  function loadWebChannel() {
84214
- webChannelPromise ??= import("./web-NWKn8ABz.js");
84214
+ webChannelPromise ??= import("./web-Btj-e8kN.js");
84215
84215
  return webChannelPromise;
84216
84216
  }
84217
84217
  function loadWhatsAppActions() {
84218
- whatsappActionsPromise ??= import("./whatsapp-actions-iEArE_Ez.js");
84218
+ whatsappActionsPromise ??= import("./whatsapp-actions-BHbJJyqw.js");
84219
84219
  return whatsappActionsPromise;
84220
84220
  }
84221
84221
  function createRuntimeWhatsApp() {
@@ -84656,7 +84656,7 @@ const log$6 = createSubsystemLogger("memory");
84656
84656
  const QMD_MANAGER_CACHE = /* @__PURE__ */ new Map();
84657
84657
  let managerRuntimePromise = null;
84658
84658
  function loadManagerRuntime() {
84659
- managerRuntimePromise ??= import("./manager-runtime-BN6VevdC.js");
84659
+ managerRuntimePromise ??= import("./manager-runtime-FO1Sx3W8.js");
84660
84660
  return managerRuntimePromise;
84661
84661
  }
84662
84662
  async function getMemorySearchManager(params) {
@@ -84670,7 +84670,7 @@ async function getMemorySearchManager(params) {
84670
84670
  if (cached) return { manager: cached };
84671
84671
  }
84672
84672
  try {
84673
- const { QmdMemoryManager } = await import("./qmd-manager-BsYsO9Ii.js");
84673
+ const { QmdMemoryManager } = await import("./qmd-manager-BtIKUaO9.js");
84674
84674
  const primary = await QmdMemoryManager.create({
84675
84675
  cfg: params.cfg,
84676
84676
  agentId: params.agentId,
@@ -85244,7 +85244,7 @@ async function withMemoryManagerForAgent(params) {
85244
85244
  }
85245
85245
  async function checkReadableFile(pathname) {
85246
85246
  try {
85247
- await fs.access(pathname, syncFs.constants.R_OK);
85247
+ await fs.access(pathname, fs$1.constants.R_OK);
85248
85248
  return { exists: true };
85249
85249
  } catch (err) {
85250
85250
  const code = err.code;
@@ -85303,7 +85303,7 @@ async function scanMemoryFiles(workspaceDir, extraPaths = []) {
85303
85303
  }
85304
85304
  let dirReadable = null;
85305
85305
  try {
85306
- await fs.access(memoryDir, syncFs.constants.R_OK);
85306
+ await fs.access(memoryDir, fs$1.constants.R_OK);
85307
85307
  dirReadable = true;
85308
85308
  } catch (err) {
85309
85309
  const code = err.code;
@@ -85752,7 +85752,7 @@ const resolvePluginSdkAliasFile = (params) => {
85752
85752
  const srcCandidate = path.join(cursor, "src", "plugin-sdk", params.srcFile);
85753
85753
  const distCandidate = path.join(cursor, "dist", "plugin-sdk", params.distFile);
85754
85754
  const orderedCandidates = isDistRuntime ? [distCandidate, srcCandidate] : isTest ? [distCandidate, srcCandidate] : [distCandidate];
85755
- for (const candidate of orderedCandidates) if (syncFs.existsSync(candidate)) return candidate;
85755
+ for (const candidate of orderedCandidates) if (fs$1.existsSync(candidate)) return candidate;
85756
85756
  const parent = path.dirname(cursor);
85757
85757
  if (parent === cursor) break;
85758
85758
  cursor = parent;
@@ -86358,7 +86358,7 @@ function loadOpenClawPlugins(options = {}) {
86358
86358
  continue;
86359
86359
  }
86360
86360
  const safeSource = opened.path;
86361
- syncFs.closeSync(opened.fd);
86361
+ fs$1.closeSync(opened.fd);
86362
86362
  let mod = null;
86363
86363
  try {
86364
86364
  mod = getJiti()(safeSource);
@@ -86476,7 +86476,7 @@ function loadOpenClawPlugins(options = {}) {
86476
86476
  }
86477
86477
  function safeRealpathOrResolve(value) {
86478
86478
  try {
86479
- return syncFs.realpathSync(value);
86479
+ return fs$1.realpathSync(value);
86480
86480
  } catch {
86481
86481
  return path.resolve(value);
86482
86482
  }
@@ -86915,9 +86915,9 @@ function resolvePatchFileOps(options) {
86915
86915
  });
86916
86916
  assertBoundaryRead(opened, filePath);
86917
86917
  try {
86918
- return syncFs.readFileSync(opened.fd, "utf8");
86918
+ return fs$1.readFileSync(opened.fd, "utf8");
86919
86919
  } finally {
86920
- syncFs.closeSync(opened.fd);
86920
+ fs$1.closeSync(opened.fd);
86921
86921
  }
86922
86922
  },
86923
86923
  writeFile: async (filePath, content) => {
@@ -87196,7 +87196,7 @@ const LOOP_WARNING_BUCKET_SIZE = 10;
87196
87196
  const MAX_LOOP_WARNING_KEYS = 256;
87197
87197
  let beforeToolCallRuntimePromise = null;
87198
87198
  function loadBeforeToolCallRuntime() {
87199
- beforeToolCallRuntimePromise ??= import("./pi-tools.before-tool-call.runtime-BuLxSyx9.js");
87199
+ beforeToolCallRuntimePromise ??= import("./pi-tools.before-tool-call.runtime-Cwab_5W1.js");
87200
87200
  return beforeToolCallRuntimePromise;
87201
87201
  }
87202
87202
  function buildAdjustedParamsKey(params) {
@@ -89878,9 +89878,9 @@ async function readWorkspaceContextForSummary() {
89878
89878
  if (!opened.ok) return "";
89879
89879
  const sections = extractSections((() => {
89880
89880
  try {
89881
- return syncFs.readFileSync(opened.fd, "utf-8");
89881
+ return fs$1.readFileSync(opened.fd, "utf-8");
89882
89882
  } finally {
89883
- syncFs.closeSync(opened.fd);
89883
+ fs$1.closeSync(opened.fd);
89884
89884
  }
89885
89885
  })(), ["Session Startup", "Red Lines"]);
89886
89886
  if (sections.length === 0) return "";
@@ -91249,7 +91249,7 @@ async function compactEmbeddedPiSessionDirect(params) {
91249
91249
  if (!apiKeyInfo.apiKey) {
91250
91250
  if (apiKeyInfo.mode !== "aws-sdk") throw new Error(`No API key resolved for provider "${model.provider}" (auth mode: ${apiKeyInfo.mode}).`);
91251
91251
  } else if (model.provider === "github-copilot") {
91252
- const { resolveCopilotApiToken } = await import("./github-copilot-token-D13V9YBz.js").then((n) => n.n);
91252
+ const { resolveCopilotApiToken } = await import("./github-copilot-token-BDioPmd6.js").then((n) => n.n);
91253
91253
  const copilotToken = await resolveCopilotApiToken({ githubToken: apiKeyInfo.apiKey });
91254
91254
  authStorage.setRuntimeApiKey(model.provider, copilotToken.token);
91255
91255
  } else authStorage.setRuntimeApiKey(model.provider, apiKeyInfo.apiKey);
@@ -92474,7 +92474,7 @@ var OpenAIWebSocketManager = class extends EventEmitter {
92474
92474
  * Throws if the connection is not open.
92475
92475
  */
92476
92476
  send(event) {
92477
- if (!this.ws || this.ws.readyState !== WebSocket$1.OPEN) throw new Error(`OpenAIWebSocketManager: cannot send — connection is not open (readyState=${this.ws?.readyState ?? "no socket"})`);
92477
+ if (!this.ws || this.ws.readyState !== WebSocket.OPEN) throw new Error(`OpenAIWebSocketManager: cannot send — connection is not open (readyState=${this.ws?.readyState ?? "no socket"})`);
92478
92478
  this.ws.send(JSON.stringify(event));
92479
92479
  }
92480
92480
  /**
@@ -92491,7 +92491,7 @@ var OpenAIWebSocketManager = class extends EventEmitter {
92491
92491
  * Returns true if the WebSocket is currently open and ready to send.
92492
92492
  */
92493
92493
  isConnected() {
92494
- return this.ws !== null && this.ws.readyState === WebSocket$1.OPEN;
92494
+ return this.ws !== null && this.ws.readyState === WebSocket.OPEN;
92495
92495
  }
92496
92496
  /**
92497
92497
  * Permanently closes the WebSocket connection and disables auto-reconnect.
@@ -92501,7 +92501,7 @@ var OpenAIWebSocketManager = class extends EventEmitter {
92501
92501
  this._cancelRetryTimer();
92502
92502
  if (this.ws) {
92503
92503
  this.ws.removeAllListeners();
92504
- if (this.ws.readyState === WebSocket$1.OPEN || this.ws.readyState === WebSocket$1.CONNECTING) this.ws.close(1e3, "Client closed");
92504
+ if (this.ws.readyState === WebSocket.OPEN || this.ws.readyState === WebSocket.CONNECTING) this.ws.close(1e3, "Client closed");
92505
92505
  this.ws = null;
92506
92506
  }
92507
92507
  }
@@ -92511,7 +92511,7 @@ var OpenAIWebSocketManager = class extends EventEmitter {
92511
92511
  reject(/* @__PURE__ */ new Error("OpenAIWebSocketManager: apiKey is required before connecting."));
92512
92512
  return;
92513
92513
  }
92514
- const socket = new WebSocket$1(this.wsUrl, { headers: {
92514
+ const socket = new WebSocket(this.wsUrl, { headers: {
92515
92515
  Authorization: `Bearer ${this.apiKey}`,
92516
92516
  "OpenAI-Beta": "responses-websocket=v1"
92517
92517
  } });
@@ -93477,11 +93477,11 @@ function appendRawStream(payload) {
93477
93477
  if (!rawStreamReady) {
93478
93478
  rawStreamReady = true;
93479
93479
  try {
93480
- syncFs.mkdirSync(path.dirname(RAW_STREAM_PATH), { recursive: true });
93480
+ fs$1.mkdirSync(path.dirname(RAW_STREAM_PATH), { recursive: true });
93481
93481
  } catch {}
93482
93482
  }
93483
93483
  try {
93484
- syncFs.promises.appendFile(RAW_STREAM_PATH, `${JSON.stringify(payload)}\n`);
93484
+ fs$1.promises.appendFile(RAW_STREAM_PATH, `${JSON.stringify(payload)}\n`);
93485
93485
  } catch {}
93486
93486
  }
93487
93487
 
@@ -96986,7 +96986,7 @@ async function runEmbeddedPiAgent(params) {
96986
96986
  await copilotTokenState.refreshInFlight;
96987
96987
  return;
96988
96988
  }
96989
- const { resolveCopilotApiToken } = await import("./github-copilot-token-D13V9YBz.js").then((n) => n.n);
96989
+ const { resolveCopilotApiToken } = await import("./github-copilot-token-BDioPmd6.js").then((n) => n.n);
96990
96990
  copilotTokenState.refreshInFlight = (async () => {
96991
96991
  const githubToken = copilotTokenState.githubToken.trim();
96992
96992
  if (!githubToken) throw new Error("Copilot refresh requires a GitHub token.");
@@ -97078,7 +97078,7 @@ async function runEmbeddedPiAgent(params) {
97078
97078
  return;
97079
97079
  }
97080
97080
  if (model.provider === "github-copilot") {
97081
- const { resolveCopilotApiToken } = await import("./github-copilot-token-D13V9YBz.js").then((n) => n.n);
97081
+ const { resolveCopilotApiToken } = await import("./github-copilot-token-BDioPmd6.js").then((n) => n.n);
97082
97082
  const copilotToken = await resolveCopilotApiToken({ githubToken: apiKeyInfo.apiKey });
97083
97083
  authStorage.setRuntimeApiKey(model.provider, copilotToken.token);
97084
97084
  if (copilotTokenState) {