@multiplytech/openclaw 2026.2.15-pairing-code.4 → 2026.2.15-pairing-code.5

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 (182) hide show
  1. package/dist/{accounts-CyxQBpl8.js → accounts-Bu2DSNpQ.js} +1 -1
  2. package/dist/{accounts-BvmssTEF.js → accounts-DyinIlq4.js} +1 -1
  3. package/dist/{active-listener-BruG-udz.js → active-listener-BIBYF9eG.js} +1 -1
  4. package/dist/{agent-D0LfsEPF.js → agent-CHHEtTV9.js} +2 -2
  5. package/dist/{agent-BxxBd9wX.js → agent-Zea8l0V4.js} +2 -2
  6. package/dist/{agent-scope-DUn-XVYs.js → agent-scope-BIw4Bz2L.js} +3 -3
  7. package/dist/{agents-jAnRMd-A.js → agents-C3RVyjuy.js} +2 -2
  8. package/dist/{audio-preflight-CbR1q2CT.js → audio-preflight-BHSwqB70.js} +17 -17
  9. package/dist/{auth-choice-B6AdPtCu.js → auth-choice-BL4n2N2D.js} +1 -1
  10. package/dist/{auth-choice-GrNENivg.js → auth-choice-Uz72AGbr.js} +1 -1
  11. package/dist/{banner-D3tgjbUi.js → banner-SSVP1FWh.js} +1 -1
  12. package/dist/build-info.json +3 -3
  13. package/dist/bundled/boot-md/handler.js +38 -38
  14. package/dist/bundled/bootstrap-extra-files/handler.js +4 -4
  15. package/dist/bundled/command-logger/handler.js +1 -1
  16. package/dist/bundled/session-memory/handler.js +32 -32
  17. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  18. package/dist/{channel-activity--HqvQlN3.js → channel-activity-C4rZNocg.js} +1 -1
  19. package/dist/{channel-options-CgdgqIte.js → channel-options-BZj8yDQM.js} +1 -1
  20. package/dist/{channel-options-C0ayB7mx.js → channel-options-CW6tO8o9.js} +1 -1
  21. package/dist/{channel-web-BTTW7H_d.js → channel-web-URuEiSie.js} +2 -2
  22. package/dist/{channels-cli-p5hPpQzH.js → channels-cli-BxhcVdVg.js} +4 -4
  23. package/dist/{channels-cli-BcDsE2LA.js → channels-cli-DNfdNX1p.js} +4 -4
  24. package/dist/{chrome-BtogRifc.js → chrome-DlM4kwMc.js} +18 -18
  25. package/dist/{cli-Oxxb4axp.js → cli-BXBLYStc.js} +1 -1
  26. package/dist/{cli-Cwzdze-z.js → cli-BbNg2Udd.js} +1 -1
  27. package/dist/{command-registry-C8q1jb3h.js → command-registry-BliDXGVX.js} +9 -9
  28. package/dist/{common-BJE3S8zA.js → common-BB2PeD4P.js} +2 -2
  29. package/dist/{completion-cli-CIcsx6ic.js → completion-cli-BCKnCxmp.js} +1 -1
  30. package/dist/{completion-cli-DQd6XSG4.js → completion-cli-Cu-1Snpp.js} +2 -2
  31. package/dist/{config-CYlbDcBt.js → config-BA8Xs1ek.js} +34 -34
  32. package/dist/{config-cli-BmW3yfH6.js → config-cli-CVnBnw5y.js} +1 -1
  33. package/dist/{config-cli-CZLDgS2E.js → config-cli-D5ZKAfqw.js} +1 -1
  34. package/dist/{configure-CRaYQ6hS.js → configure-Dg3rt98q.js} +3 -3
  35. package/dist/{configure-B0_p6Z1n.js → configure-DgvISeIJ.js} +3 -3
  36. package/dist/{deliver-BwXnLuWH.js → deliver-CV4a0MBa.js} +16 -16
  37. package/dist/{deps-i6fBS1Dw.js → deps-6dSUgps7.js} +1 -1
  38. package/dist/{doctor-AUivq-af.js → doctor-BUO6pA-b.js} +4 -4
  39. package/dist/{doctor-Cs7rfmA-.js → doctor-CFwtoIem.js} +4 -4
  40. package/dist/{doctor-completion-CtBAIy0Z.js → doctor-completion-Bnz5cgZw.js} +1 -1
  41. package/dist/{doctor-completion-C2PR6GJF.js → doctor-completion-DNqw5VHX.js} +1 -1
  42. package/dist/entry.js +1 -1
  43. package/dist/{exec-C_bNT00b.js → exec-C9rZpEqA.js} +17 -17
  44. package/dist/extensionAPI.js +1 -1
  45. package/dist/{fetch-mr22CaT4.js → fetch-Dyb5pqye.js} +2 -2
  46. package/dist/{frontmatter-BetN20QN.js → frontmatter-Bk_vZq47.js} +2 -2
  47. package/dist/{gateway-cli-M8r3XcpJ.js → gateway-cli-BDf6AIk0.js} +9 -9
  48. package/dist/{gateway-cli-BgGnL3cE.js → gateway-cli-n2Z2-dmf.js} +9 -9
  49. package/dist/{github-copilot-token-U5JrmjNt.js → github-copilot-token-BXEGgIt5.js} +7 -7
  50. package/dist/{health-BqoIIu1u.js → health-5OQ86AsB.js} +2 -2
  51. package/dist/{health-shfUNbPM.js → health-BLNgO5Lg.js} +2 -2
  52. package/dist/{heartbeat-visibility-BEMg5PJB.js → heartbeat-visibility-kOc5LBl6.js} +1 -1
  53. package/dist/{heartbeat-visibility-B_kubgRp.js → heartbeat-visibility-pSnRANG0.js} +1 -1
  54. package/dist/{hooks-cli-99NPDBK1.js → hooks-cli-8vqegwLk.js} +2 -2
  55. package/dist/{hooks-cli-ec5DFn5g.js → hooks-cli-BQvnwV0N.js} +2 -2
  56. package/dist/{image-DN3RgnPr.js → image-DVTZYmDL.js} +4 -4
  57. package/dist/{image-ops-CKPJXWk4.js → image-ops-7EDUjzca.js} +9 -9
  58. package/dist/index.js +9 -9
  59. package/dist/{ir-C-hSqOPD.js → ir-eyTjTBlP.js} +6 -6
  60. package/dist/llm-slug-generator.js +32 -32
  61. package/dist/{login-BFkQgAbM.js → login-BQj4vJAc.js} +1 -1
  62. package/dist/{login-CwQj2jUX.js → login-Bub9YVmf.js} +1 -1
  63. package/dist/{login-CmhHGO4I.js → login-CKe4hvQG.js} +1 -1
  64. package/dist/{login-Dydm4XDa.js → login-DfLZ1ase.js} +3 -3
  65. package/dist/{login-qr-CF5T7Eew.js → login-qr-5lWL8Guw.js} +1 -1
  66. package/dist/{login-qr-BrIxb_5N.js → login-qr-C9eD5pGf.js} +8 -8
  67. package/dist/{login-qr-CEOlIdRe.js → login-qr-Cq7e7xsV.js} +1 -1
  68. package/dist/{login-qr-B_NTKK4T.js → login-qr-MG7FhnKs.js} +1 -1
  69. package/dist/{manager-Ec86Dapd.js → manager-ihPMEKim.js} +10 -10
  70. package/dist/{model-auth-COYibYBO.js → model-auth-BBAJ-iuC.js} +8 -8
  71. package/dist/{models-D688pDKn.js → models-D9P-iylf.js} +2 -2
  72. package/dist/{models-cli-CcHjNOe3.js → models-cli-BhTQK54t.js} +3 -3
  73. package/dist/{models-cli-GWtfGvki.js → models-cli-DCKEfmuF.js} +2 -2
  74. package/dist/{onboard-BmB1TAqN.js → onboard-DGIC3v2L.js} +2 -2
  75. package/dist/{onboard-channels-BATBIQiN.js → onboard-channels-BxI6pALE.js} +1 -1
  76. package/dist/{onboard-channels-BeXdUwL0.js → onboard-channels-yzWQkeRm.js} +1 -1
  77. package/dist/{onboard-C5_njUCe.js → onboard-ovaqc36s.js} +2 -2
  78. package/dist/{onboarding-txZtcVMA.js → onboarding-C6_GQJ3F.js} +3 -3
  79. package/dist/{onboarding-Cjbb0fRA.js → onboarding-ClCcjvNg.js} +3 -3
  80. package/dist/{onboarding.finalize-BI8zTyGF.js → onboarding.finalize-BhPaoWku.js} +6 -6
  81. package/dist/{onboarding.finalize-CSj3Rf0J.js → onboarding.finalize-CXti-VnH.js} +5 -5
  82. package/dist/{outbound-C8YnTFjo.js → outbound-N8cZjkHg.js} +5 -5
  83. package/dist/{outbound-attachment-C8Qf4dh8.js → outbound-attachment-BAu7a9Bk.js} +2 -2
  84. package/dist/{outbound-send-deps-BCi2C-Sb.js → outbound-send-deps-CrIPn6Gv.js} +1 -1
  85. package/dist/{paths-Bbik2tb_.js → paths-CMYSfM3T.js} +2 -2
  86. package/dist/{paths-CkkDESQ2.js → paths-CyR9Pa1R.js} +5 -5
  87. package/dist/{pi-auth-json-MhfZXNOP.js → pi-auth-json-BX0whbu8.js} +6 -6
  88. package/dist/{pi-embedded-wVlKSjNK.js → pi-embedded-B16QA3OJ.js} +120 -120
  89. package/dist/{pi-embedded-8ou24X6D.js → pi-embedded-BhSNemDy.js} +4 -4
  90. package/dist/{pi-embedded-helpers-DmwtjJVo.js → pi-embedded-helpers-DHT11gwA.js} +48 -48
  91. package/dist/{plugin-registry-N4ZFQdQ9.js → plugin-registry-7l0uWKmB.js} +1 -1
  92. package/dist/{plugin-registry-D_bG1PT_.js → plugin-registry-BMw_9a49.js} +1 -1
  93. package/dist/plugin-sdk/{active-listener-CkyAenz6.js → active-listener-CFLZdKRQ.js} +2 -2
  94. package/dist/plugin-sdk/{agent-scope-DWZdK6Cr.js → agent-scope-ip6rBrUD.js} +1 -1
  95. package/dist/plugin-sdk/{audio-preflight-BzSvof9i.js → audio-preflight-C0NlyreL.js} +12 -12
  96. package/dist/plugin-sdk/{channel-web-BXr_pHKk.js → channel-web-B715iUQW.js} +11 -11
  97. package/dist/plugin-sdk/{chrome-BLYh1Ek9.js → chrome-OZ5Ge8PR.js} +1 -1
  98. package/dist/plugin-sdk/{common-STTVkT-Z.js → common-pKa0kElY.js} +2 -2
  99. package/dist/plugin-sdk/{config-iUJxJaTT.js → config-DelXkt58.js} +8 -8
  100. package/dist/plugin-sdk/{deliver-Bkdn7hYJ.js → deliver-ebYNQy_5.js} +6 -6
  101. package/dist/plugin-sdk/{exec-9HIVkGqi.js → exec-C5lqk9X4.js} +2 -2
  102. package/dist/plugin-sdk/{fetch-DjHoyhHv.js → fetch-Cw_7QfME.js} +2 -2
  103. package/dist/plugin-sdk/{image-DolmBtru.js → image-2KL1DOmN.js} +4 -4
  104. package/dist/plugin-sdk/{image-ops-DvO68zWD.js → image-ops-zm4O3fkk.js} +4 -4
  105. package/dist/plugin-sdk/index.js +23 -23
  106. package/dist/plugin-sdk/{ir-D6TOa8wy.js → ir-BEwiHV7R.js} +4 -4
  107. package/dist/plugin-sdk/{login-CGRU_9Nh.js → login-BPMBJ2ja.js} +3 -3
  108. package/dist/plugin-sdk/{login-qr-D6D-dPg-.js → login-qr-gTXEo28v.js} +5 -5
  109. package/dist/plugin-sdk/{manager-DSG4npLd.js → manager-Cqyl7HDP.js} +5 -5
  110. package/dist/plugin-sdk/{model-selection-BfTuBvS4.js → model-selection-DHMRsTNB.js} +2 -2
  111. package/dist/plugin-sdk/{outbound-BuWEi6UJ.js → outbound-DT2nH6dY.js} +4 -4
  112. package/dist/plugin-sdk/{paths-6C0IeDIg.js → paths-wRVSwmkX.js} +1 -1
  113. package/dist/plugin-sdk/{pi-auth-json-CdSpUvvH.js → pi-auth-json-XTF0mVQ6.js} +3 -3
  114. package/dist/plugin-sdk/{pi-embedded-helpers-rNIrRqeN.js → pi-embedded-helpers-C3_rwWkJ.js} +13 -13
  115. package/dist/plugin-sdk/{pw-ai-DHGDCfpy.js → pw-ai-BYr2wRwE.js} +2 -2
  116. package/dist/plugin-sdk/{qmd-manager-D0FXZkrS.js → qmd-manager-CY7j7J3V.js} +4 -4
  117. package/dist/plugin-sdk/{reply-BvOTUN2t.js → reply-BCjRFrxS.js} +35 -35
  118. package/dist/plugin-sdk/{runner-CaaUwzMJ.js → runner-DxPwS4ed.js} +7 -7
  119. package/dist/plugin-sdk/{session-Cjs4HuZk.js → session-CMKy7hKx.js} +3 -3
  120. package/dist/plugin-sdk/{sqlite-QNHsO4bW.js → sqlite-CKrK6KKr.js} +2 -2
  121. package/dist/plugin-sdk/{tool-images-BuctNDly.js → tool-images-C4GaQjrF.js} +2 -2
  122. package/dist/plugin-sdk/web-Dez1c43V.js +30 -0
  123. package/dist/plugin-sdk/{whatsapp-actions-3adtwpVJ.js → whatsapp-actions-C5T64qvX.js} +11 -11
  124. package/dist/{plugins-cli-D2KHK9jR.js → plugins-cli-BsfnFYsL.js} +2 -2
  125. package/dist/{plugins-cli-CFOLjXM-.js → plugins-cli-CNB8Yt37.js} +2 -2
  126. package/dist/{program-B9I5xkOF.js → program-CAd9g5sW.js} +7 -7
  127. package/dist/{program-context-C3C2WLNP.js → program-context-_ii-SbA0.js} +17 -17
  128. package/dist/{provider-auth-helpers-DYPDXQQP.js → provider-auth-helpers-CCnbp35r.js} +1 -1
  129. package/dist/{provider-auth-helpers-DIPDa8Lw.js → provider-auth-helpers-D_lWKYII.js} +1 -1
  130. package/dist/{pw-ai-BCyIw4W4.js → pw-ai-xh9cPTDX.js} +3 -3
  131. package/dist/{qmd-manager-CgC5sB-T.js → qmd-manager-DtmZgEoS.js} +6 -6
  132. package/dist/{register.agent-BedOGhk-.js → register.agent-BSdFQsCq.js} +7 -7
  133. package/dist/{register.agent-JL4_r2Jb.js → register.agent-dQKDHNyK.js} +6 -6
  134. package/dist/{register.configure-U45T1EJ-.js → register.configure-BN9zCFxE.js} +6 -6
  135. package/dist/{register.configure-D_-8trFJ.js → register.configure-Bk2X8wFI.js} +6 -6
  136. package/dist/{register.maintenance-TMdlbc45.js → register.maintenance-COHaTp3w.js} +8 -8
  137. package/dist/{register.maintenance-BNhGCK92.js → register.maintenance-d-1O5gtF.js} +7 -7
  138. package/dist/{register.message-BdQletmJ.js → register.message-CfNc9leD.js} +3 -3
  139. package/dist/{register.message-DKw_hGiP.js → register.message-DUrPTA8L.js} +3 -3
  140. package/dist/{register.onboard-DVHlSfZa.js → register.onboard-DtyoTIKL.js} +4 -4
  141. package/dist/{register.onboard-D5LHgdqV.js → register.onboard-aCV1lrPF.js} +4 -4
  142. package/dist/{register.setup-CAVftQvz.js → register.setup-Bb73DdhE.js} +4 -4
  143. package/dist/{register.setup-Dfhxwzgk.js → register.setup-BgyHWmCs.js} +4 -4
  144. package/dist/{register.status-health-sessions-YCJQ83my.js → register.status-health-sessions-DLABBIKC.js} +3 -3
  145. package/dist/{register.status-health-sessions-ixyM5rDz.js → register.status-health-sessions-OOi_L5uN.js} +3 -3
  146. package/dist/{register.subclis-D-kjKwwz.js → register.subclis-CDZvm5LU.js} +9 -9
  147. package/dist/{reply-d6yV4wB_.js → reply-D9JN_rwA.js} +4 -4
  148. package/dist/{retry-D1bxhFWp.js → retry-B0RhK9tX.js} +1 -1
  149. package/dist/{run-main-D5duEqg3.js → run-main-BnvBDAQk.js} +14 -14
  150. package/dist/{runner-DGYLHL8R.js → runner-nMdrG8eK.js} +7 -7
  151. package/dist/{send-z4yxEOnF.js → send-BMQRcdbF.js} +4 -4
  152. package/dist/{send-CKSrJ7se.js → send-BRIcpOAj.js} +5 -5
  153. package/dist/{send-Df7eglyR.js → send-CNibEQip.js} +6 -6
  154. package/dist/{send-DjP-Miy_.js → send-CWOrEtrR.js} +7 -7
  155. package/dist/{send-DULTJ0oK.js → send-DzhCsWw9.js} +7 -7
  156. package/dist/{server-node-events-BE6fD68d.js → server-node-events-5_nsFo-O.js} +3 -3
  157. package/dist/{server-node-events-C51Bayv9.js → server-node-events-BHXuG6Pd.js} +3 -3
  158. package/dist/{session-B5I8E41_.js → session-CP0yShzI.js} +1 -1
  159. package/dist/{session-2uX9t1PO.js → session-C__ZeV6y.js} +7 -7
  160. package/dist/{session-Bu5MF744.js → session-sO1d78EF.js} +1 -1
  161. package/dist/{session-ZppYapGg.js → session-zCwG7NHS.js} +1 -1
  162. package/dist/{sqlite-CBMbuGLX.js → sqlite-Bfoh6OgV.js} +4 -4
  163. package/dist/{status-8g-vfjfP.js → status-CQB4pZ8j.js} +2 -2
  164. package/dist/{status-NfZ6FkuQ.js → status-Cuj1dGBb.js} +2 -2
  165. package/dist/{status-BRNeaZhV.js → status-Dnim-lZW.js} +1 -1
  166. package/dist/{status-D0P0XQqw.js → status-TVzePU0v.js} +1 -1
  167. package/dist/{store-m4I2z_5t.js → store-B6Y3aOaY.js} +2 -2
  168. package/dist/{subagent-registry-DJBVFvb4.js → subagent-registry-2rHQ_z7c.js} +4 -4
  169. package/dist/{tables-7DihLyDw.js → tables-BhgdJIJu.js} +1 -1
  170. package/dist/{tool-images-hzyBQ0Og.js → tool-images-DRiKq4of.js} +2 -2
  171. package/dist/{update-cli-BZ2fDrwx.js → update-cli-C5qlFKHT.js} +8 -8
  172. package/dist/{update-cli-BOXR9slg.js → update-cli-DKb91txa.js} +7 -7
  173. package/dist/{update-runner-BZFeJzUi.js → update-runner-BOA-zXJF.js} +1 -1
  174. package/dist/{update-runner-B55O98W8.js → update-runner-D6ZdwFLX.js} +1 -1
  175. package/dist/{web-DoaI-RpC.js → web-B-3vMKvG.js} +3 -3
  176. package/dist/{web-C5vqAHQC.js → web-BCAfeY97.js} +36 -36
  177. package/dist/{web-CtSLAgT_.js → web-CRrtqTfC.js} +3 -3
  178. package/dist/{web-By5urMji.js → web-CmgBQX8I.js} +4 -4
  179. package/dist/{whatsapp-actions-C4JR_6XT.js → whatsapp-actions-x16Ismcy.js} +14 -14
  180. package/dist/{workspace-CgGZnIx_.js → workspace-LSLFINSz.js} +5 -5
  181. package/package.json +1 -1
  182. package/dist/plugin-sdk/web-CUrXnjRV.js +0 -30
@@ -1,14 +1,14 @@
1
- import { F as CONFIG_DIR, l as createSubsystemLogger } from "./exec-C_bNT00b.js";
1
+ import { F as CONFIG_DIR, l as createSubsystemLogger } from "./exec-C9rZpEqA.js";
2
2
  import { i as isErrno } from "./errors-8mFQsaX1.js";
3
3
  import fs from "node:fs/promises";
4
4
  import os from "node:os";
5
5
  import path from "node:path";
6
- import fsSync from "node:fs";
6
+ import fs$1 from "node:fs";
7
7
  import { execFileSync, spawn } from "node:child_process";
8
8
  import { randomBytes } from "node:crypto";
9
9
  import net from "node:net";
10
10
  import { createServer } from "node:http";
11
- import WebSocket, { WebSocketServer } from "ws";
11
+ import WebSocket$1, { WebSocketServer } from "ws";
12
12
  import { Buffer as Buffer$1 } from "node:buffer";
13
13
 
14
14
  //#region src/browser/constants.ts
@@ -172,7 +172,7 @@ async function ensureChromeExtensionRelayServer(opts) {
172
172
  let nextExtensionId = 1;
173
173
  const sendToExtension = async (payload) => {
174
174
  const ws = extensionWs;
175
- if (!ws || ws.readyState !== WebSocket.OPEN) throw new Error("Chrome extension not connected");
175
+ if (!ws || ws.readyState !== WebSocket$1.OPEN) throw new Error("Chrome extension not connected");
176
176
  ws.send(JSON.stringify(payload));
177
177
  return await new Promise((resolve, reject) => {
178
178
  const timer = setTimeout(() => {
@@ -189,12 +189,12 @@ async function ensureChromeExtensionRelayServer(opts) {
189
189
  const broadcastToCdpClients = (evt) => {
190
190
  const msg = JSON.stringify(evt);
191
191
  for (const ws of cdpClients) {
192
- if (ws.readyState !== WebSocket.OPEN) continue;
192
+ if (ws.readyState !== WebSocket$1.OPEN) continue;
193
193
  ws.send(msg);
194
194
  }
195
195
  };
196
196
  const sendResponseToCdp = (ws, res) => {
197
- if (ws.readyState !== WebSocket.OPEN) return;
197
+ if (ws.readyState !== WebSocket$1.OPEN) return;
198
198
  ws.send(JSON.stringify(res));
199
199
  };
200
200
  const ensureTargetEventsForClient = (ws, mode) => {
@@ -414,7 +414,7 @@ async function ensureChromeExtensionRelayServer(opts) {
414
414
  wssExtension.on("connection", (ws) => {
415
415
  extensionWs = ws;
416
416
  const ping = setInterval(() => {
417
- if (ws.readyState !== WebSocket.OPEN) return;
417
+ if (ws.readyState !== WebSocket$1.OPEN) return;
418
418
  ws.send(JSON.stringify({ method: "ping" }));
419
419
  }, 5e3);
420
420
  ws.on("message", (data) => {
@@ -726,7 +726,7 @@ async function fetchOk(url, timeoutMs = 1500, init) {
726
726
  }
727
727
  async function withCdpSocket(wsUrl, fn, opts) {
728
728
  const headers = getHeadersWithAuth(wsUrl, opts?.headers ?? {});
729
- const ws = new WebSocket(wsUrl, {
729
+ const ws = new WebSocket$1(wsUrl, {
730
730
  handshakeTimeout: typeof opts?.handshakeTimeoutMs === "number" && Number.isFinite(opts.handshakeTimeoutMs) ? Math.max(1, Math.floor(opts.handshakeTimeoutMs)) : 5e3,
731
731
  ...Object.keys(headers).length ? { headers } : {}
732
732
  });
@@ -951,7 +951,7 @@ const CHROMIUM_EXE_NAMES = new Set([
951
951
  ]);
952
952
  function exists$1(filePath) {
953
953
  try {
954
- return fsSync.existsSync(filePath);
954
+ return fs$1.existsSync(filePath);
955
955
  } catch {
956
956
  return false;
957
957
  }
@@ -1094,7 +1094,7 @@ function findDesktopFilePath(desktopId) {
1094
1094
  }
1095
1095
  function readDesktopExecLine(desktopPath) {
1096
1096
  try {
1097
- const lines = fsSync.readFileSync(desktopPath, "utf8").split(/\r?\n/);
1097
+ const lines = fs$1.readFileSync(desktopPath, "utf8").split(/\r?\n/);
1098
1098
  for (const line of lines) if (line.startsWith("Exec=")) return line.slice(5).trim();
1099
1099
  } catch {}
1100
1100
  return null;
@@ -1381,8 +1381,8 @@ function decoratedMarkerPath(userDataDir) {
1381
1381
  }
1382
1382
  function safeReadJson(filePath) {
1383
1383
  try {
1384
- if (!fsSync.existsSync(filePath)) return null;
1385
- const raw = fsSync.readFileSync(filePath, "utf-8");
1384
+ if (!fs$1.existsSync(filePath)) return null;
1385
+ const raw = fs$1.readFileSync(filePath, "utf-8");
1386
1386
  const parsed = JSON.parse(raw);
1387
1387
  if (typeof parsed !== "object" || parsed === null || Array.isArray(parsed)) return null;
1388
1388
  return parsed;
@@ -1391,8 +1391,8 @@ function safeReadJson(filePath) {
1391
1391
  }
1392
1392
  }
1393
1393
  function safeWriteJson(filePath, data) {
1394
- fsSync.mkdirSync(path.dirname(filePath), { recursive: true });
1395
- fsSync.writeFileSync(filePath, JSON.stringify(data, null, 2));
1394
+ fs$1.mkdirSync(path.dirname(filePath), { recursive: true });
1395
+ fs$1.writeFileSync(filePath, JSON.stringify(data, null, 2));
1396
1396
  }
1397
1397
  function setDeep(obj, keys, value) {
1398
1398
  let node = obj;
@@ -1519,7 +1519,7 @@ function decorateOpenClawProfile(userDataDir, opts) {
1519
1519
  }
1520
1520
  safeWriteJson(preferencesPath, prefs);
1521
1521
  try {
1522
- fsSync.writeFileSync(decoratedMarkerPath(userDataDir), `${Date.now()}\n`, "utf-8");
1522
+ fs$1.writeFileSync(decoratedMarkerPath(userDataDir), `${Date.now()}\n`, "utf-8");
1523
1523
  } catch {}
1524
1524
  }
1525
1525
  function ensureProfileCleanExit(userDataDir) {
@@ -1535,7 +1535,7 @@ function ensureProfileCleanExit(userDataDir) {
1535
1535
  const log = createSubsystemLogger("browser").child("chrome");
1536
1536
  function exists(filePath) {
1537
1537
  try {
1538
- return fsSync.existsSync(filePath);
1538
+ return fs$1.existsSync(filePath);
1539
1539
  } catch {
1540
1540
  return false;
1541
1541
  }
@@ -1581,7 +1581,7 @@ async function getChromeWebSocketUrl(cdpUrl, timeoutMs = 500) {
1581
1581
  async function canOpenWebSocket(wsUrl, timeoutMs = 800) {
1582
1582
  return await new Promise((resolve) => {
1583
1583
  const headers = getHeadersWithAuth(wsUrl);
1584
- const ws = new WebSocket(wsUrl, {
1584
+ const ws = new WebSocket$1(wsUrl, {
1585
1585
  handshakeTimeout: timeoutMs,
1586
1586
  ...Object.keys(headers).length ? { headers } : {}
1587
1587
  });
@@ -1615,7 +1615,7 @@ async function launchOpenClawChrome(resolved, profile) {
1615
1615
  const exe = resolveBrowserExecutable(resolved);
1616
1616
  if (!exe) throw new Error("No supported browser found (Chrome/Brave/Edge/Chromium on macOS, Linux, or Windows).");
1617
1617
  const userDataDir = resolveOpenClawUserDataDir(profile.name);
1618
- fsSync.mkdirSync(userDataDir, { recursive: true });
1618
+ fs$1.mkdirSync(userDataDir, { recursive: true });
1619
1619
  const needsDecorate = !isProfileDecorated(userDataDir, profile.name, (profile.color ?? DEFAULT_OPENCLAW_BROWSER_COLOR).toUpperCase());
1620
1620
  const spawnOnce = () => {
1621
1621
  const args = [
@@ -12,7 +12,7 @@ import { i as loadConfig } from "./config-B4-Vvu6M.js";
12
12
  import "./client-gZv0X5tz.js";
13
13
  import "./call-CeM4F1rK.js";
14
14
  import "./message-channel-CZpVDeRr.js";
15
- import { h as loadOpenClawPlugins } from "./subagent-registry-DJBVFvb4.js";
15
+ import { h as loadOpenClawPlugins } from "./subagent-registry-2rHQ_z7c.js";
16
16
  import "./sessions-D-LiJehh.js";
17
17
  import "./deliver-a9TlmfSI.js";
18
18
  import "./plugins-bX81iDy5.js";
@@ -1,7 +1,7 @@
1
1
  import "./paths-B4BZAPZh.js";
2
2
  import "./utils-CFnnyoTP.js";
3
3
  import "./pi-embedded-helpers-DwIwt1C1.js";
4
- import { kt as loadOpenClawPlugins } from "./reply-d6yV4wB_.js";
4
+ import { kt as loadOpenClawPlugins } from "./reply-D9JN_rwA.js";
5
5
  import { t as createSubsystemLogger } from "./subsystem-azPHgTb4.js";
6
6
  import "./exec-V7mqHC8U.js";
7
7
  import { c as resolveDefaultAgentId, s as resolveAgentWorkspaceDir } from "./agent-scope-aaTVOkax.js";
@@ -1,6 +1,6 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
2
  import { in as getPrimaryCommand, sn as hasHelpOrVersion } from "./entry.js";
3
- import { a as reparseProgramFromActionArgs, r as registerSubCliCommands } from "./register.subclis-D-kjKwwz.js";
3
+ import { a as reparseProgramFromActionArgs, r as registerSubCliCommands } from "./register.subclis-CDZvm5LU.js";
4
4
 
5
5
  //#region src/cli/program/command-registry.ts
6
6
  var command_registry_exports = /* @__PURE__ */ __exportAll({
@@ -20,7 +20,7 @@ const coreEntries = [
20
20
  description: "Setup helpers"
21
21
  }],
22
22
  register: async ({ program }) => {
23
- (await import("./register.setup-CAVftQvz.js")).registerSetupCommand(program);
23
+ (await import("./register.setup-Bb73DdhE.js")).registerSetupCommand(program);
24
24
  }
25
25
  },
26
26
  {
@@ -29,7 +29,7 @@ const coreEntries = [
29
29
  description: "Onboarding helpers"
30
30
  }],
31
31
  register: async ({ program }) => {
32
- (await import("./register.onboard-D5LHgdqV.js")).registerOnboardCommand(program);
32
+ (await import("./register.onboard-aCV1lrPF.js")).registerOnboardCommand(program);
33
33
  }
34
34
  },
35
35
  {
@@ -38,7 +38,7 @@ const coreEntries = [
38
38
  description: "Configure wizard"
39
39
  }],
40
40
  register: async ({ program }) => {
41
- (await import("./register.configure-D_-8trFJ.js")).registerConfigureCommand(program);
41
+ (await import("./register.configure-Bk2X8wFI.js")).registerConfigureCommand(program);
42
42
  }
43
43
  },
44
44
  {
@@ -47,7 +47,7 @@ const coreEntries = [
47
47
  description: "Config helpers"
48
48
  }],
49
49
  register: async ({ program }) => {
50
- (await import("./config-cli-BmW3yfH6.js")).registerConfigCli(program);
50
+ (await import("./config-cli-CVnBnw5y.js")).registerConfigCli(program);
51
51
  }
52
52
  },
53
53
  {
@@ -70,7 +70,7 @@ const coreEntries = [
70
70
  }
71
71
  ],
72
72
  register: async ({ program }) => {
73
- (await import("./register.maintenance-TMdlbc45.js")).registerMaintenanceCommands(program);
73
+ (await import("./register.maintenance-COHaTp3w.js")).registerMaintenanceCommands(program);
74
74
  }
75
75
  },
76
76
  {
@@ -79,7 +79,7 @@ const coreEntries = [
79
79
  description: "Send, read, and manage messages"
80
80
  }],
81
81
  register: async ({ program, ctx }) => {
82
- (await import("./register.message-DKw_hGiP.js")).registerMessageCommands(program, ctx);
82
+ (await import("./register.message-DUrPTA8L.js")).registerMessageCommands(program, ctx);
83
83
  }
84
84
  },
85
85
  {
@@ -100,7 +100,7 @@ const coreEntries = [
100
100
  description: "Manage isolated agents"
101
101
  }],
102
102
  register: async ({ program, ctx }) => {
103
- (await import("./register.agent-BedOGhk-.js")).registerAgentCommands(program, { agentChannelOptions: ctx.agentChannelOptions });
103
+ (await import("./register.agent-BSdFQsCq.js")).registerAgentCommands(program, { agentChannelOptions: ctx.agentChannelOptions });
104
104
  }
105
105
  },
106
106
  {
@@ -119,7 +119,7 @@ const coreEntries = [
119
119
  }
120
120
  ],
121
121
  register: async ({ program }) => {
122
- (await import("./register.status-health-sessions-YCJQ83my.js")).registerStatusHealthSessionsCommands(program);
122
+ (await import("./register.status-health-sessions-DLABBIKC.js")).registerStatusHealthSessionsCommands(program);
123
123
  }
124
124
  },
125
125
  {
@@ -1,5 +1,5 @@
1
- import { w as detectMime } from "./image-ops-CKPJXWk4.js";
2
- import { r as sanitizeToolResultImages } from "./tool-images-hzyBQ0Og.js";
1
+ import { w as detectMime } from "./image-ops-7EDUjzca.js";
2
+ import { r as sanitizeToolResultImages } from "./tool-images-DRiKq4of.js";
3
3
  import fs from "node:fs/promises";
4
4
 
5
5
  //#region src/agents/tools/common.ts
@@ -2,7 +2,7 @@ import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
2
  import { g as resolveStateDir } from "./paths-B4BZAPZh.js";
3
3
  import { g as pathExists } from "./utils-CFnnyoTP.js";
4
4
  import { i as routeLogsToStderr } from "./subsystem-azPHgTb4.js";
5
- import { i as registerCoreCliByName, o as getSubCliEntries, r as getCoreCliCommandNames, s as registerSubCliByName, t as getProgramContext } from "./program-context-C3C2WLNP.js";
5
+ import { i as registerCoreCliByName, o as getSubCliEntries, r as getCoreCliCommandNames, s as registerSubCliByName, t as getProgramContext } from "./program-context-_ii-SbA0.js";
6
6
  import os from "node:os";
7
7
  import path from "node:path";
8
8
  import fs from "node:fs/promises";
@@ -1,7 +1,7 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
2
  import { Jt as resolveStateDir, l as routeLogsToStderr, nt as pathExists } from "./entry.js";
3
- import { n as registerSubCliByName, t as getSubCliEntries } from "./register.subclis-D-kjKwwz.js";
4
- import { n as getCoreCliCommandNames, r as registerCoreCliByName } from "./command-registry-C8q1jb3h.js";
3
+ import { n as registerSubCliByName, t as getSubCliEntries } from "./register.subclis-CDZvm5LU.js";
4
+ import { n as getCoreCliCommandNames, r as registerCoreCliByName } from "./command-registry-BliDXGVX.js";
5
5
  import { t as getProgramContext } from "./program-context-D2pNx-CZ.js";
6
6
  import os from "node:os";
7
7
  import path from "node:path";
@@ -1,15 +1,15 @@
1
- import { a as resolveOAuthDir, n as resolveConfigPath, r as resolveDefaultConfigCandidates, s as resolveStateDir, u as resolveRequiredHomeDir } from "./paths-CkkDESQ2.js";
2
- import { C as normalizeAccountId, _ as DEFAULT_AGENT_ID, g as DEFAULT_ACCOUNT_ID, w as normalizeAgentId } from "./workspace-CgGZnIx_.js";
3
- import { G as jidToE164, H as isPlainObject$2, J as resolveConfigDir, U as isRecord, X as resolveUserPath, at as info, d as defaultRuntime, h as CHANNEL_IDS, lt as success, mt as getChildLogger, x as normalizeChatChannelId } from "./exec-C_bNT00b.js";
4
- import { c as resolveDefaultAgentId, s as resolveAgentWorkspaceDir } from "./agent-scope-DUn-XVYs.js";
5
- import { D as parseModelRef, G as loadShellEnvFallback, J as shouldEnableShellEnvFallback, K as resolveShellEnvFallbackTimeoutMs, q as shouldDeferShellEnvFallback, z as DEFAULT_CONTEXT_TOKENS } from "./model-auth-COYibYBO.js";
1
+ import { a as resolveOAuthDir, n as resolveConfigPath, r as resolveDefaultConfigCandidates, s as resolveStateDir, u as resolveRequiredHomeDir } from "./paths-CyR9Pa1R.js";
2
+ import { C as normalizeAccountId, _ as DEFAULT_AGENT_ID, g as DEFAULT_ACCOUNT_ID, w as normalizeAgentId } from "./workspace-LSLFINSz.js";
3
+ import { G as jidToE164, H as isPlainObject$2, J as resolveConfigDir, U as isRecord, X as resolveUserPath, at as info, d as defaultRuntime, h as CHANNEL_IDS, lt as success, mt as getChildLogger, x as normalizeChatChannelId } from "./exec-C9rZpEqA.js";
4
+ import { c as resolveDefaultAgentId, s as resolveAgentWorkspaceDir } from "./agent-scope-BIw4Bz2L.js";
5
+ import { D as parseModelRef, G as loadShellEnvFallback, J as shouldEnableShellEnvFallback, K as resolveShellEnvFallbackTimeoutMs, q as shouldDeferShellEnvFallback, z as DEFAULT_CONTEXT_TOKENS } from "./model-auth-BBAJ-iuC.js";
6
6
  import { t as formatCliCommand } from "./command-format-BmTFj7S4.js";
7
7
  import { n as MANIFEST_KEY } from "./legacy-names-BTlhTk_5.js";
8
8
  import { createRequire } from "node:module";
9
9
  import fs from "node:fs/promises";
10
10
  import os from "node:os";
11
11
  import path from "node:path";
12
- import fsSync from "node:fs";
12
+ import fs$1 from "node:fs";
13
13
  import JSON5 from "json5";
14
14
  import { isDeepStrictEqual } from "node:util";
15
15
  import { fileURLToPath } from "node:url";
@@ -31,10 +31,10 @@ function resolveWebCredsBackupPath(authDir) {
31
31
  }
32
32
  function readCredsJsonRaw(filePath) {
33
33
  try {
34
- if (!fsSync.existsSync(filePath)) return null;
35
- const stats = fsSync.statSync(filePath);
34
+ if (!fs$1.existsSync(filePath)) return null;
35
+ const stats = fs$1.statSync(filePath);
36
36
  if (!stats.isFile() || stats.size <= 1) return null;
37
- return fsSync.readFileSync(filePath, "utf-8");
37
+ return fs$1.readFileSync(filePath, "utf-8");
38
38
  } catch {
39
39
  return null;
40
40
  }
@@ -52,9 +52,9 @@ function maybeRestoreCredsFromBackup(authDir) {
52
52
  const backupRaw = readCredsJsonRaw(backupPath);
53
53
  if (!backupRaw) return;
54
54
  JSON.parse(backupRaw);
55
- fsSync.copyFileSync(backupPath, credsPath);
55
+ fs$1.copyFileSync(backupPath, credsPath);
56
56
  try {
57
- fsSync.chmodSync(credsPath, 384);
57
+ fs$1.chmodSync(credsPath, 384);
58
58
  } catch {}
59
59
  logger.warn({ credsPath }, "restored corrupted WhatsApp creds.json from backup");
60
60
  } catch {}
@@ -110,11 +110,11 @@ async function logoutWeb(params) {
110
110
  function readWebSelfId(authDir = resolveDefaultWebAuthDir()) {
111
111
  try {
112
112
  const credsPath = resolveWebCredsPath(resolveUserPath(authDir));
113
- if (!fsSync.existsSync(credsPath)) return {
113
+ if (!fs$1.existsSync(credsPath)) return {
114
114
  e164: null,
115
115
  jid: null
116
116
  };
117
- const raw = fsSync.readFileSync(credsPath, "utf-8");
117
+ const raw = fs$1.readFileSync(credsPath, "utf-8");
118
118
  const jid = JSON.parse(raw)?.me?.id ?? null;
119
119
  return {
120
120
  e164: jid ? jidToE164(jid, { authDir }) : null,
@@ -133,7 +133,7 @@ function readWebSelfId(authDir = resolveDefaultWebAuthDir()) {
133
133
  */
134
134
  function getWebAuthAgeMs(authDir = resolveDefaultWebAuthDir()) {
135
135
  try {
136
- const stats = fsSync.statSync(resolveWebCredsPath(resolveUserPath(authDir)));
136
+ const stats = fs$1.statSync(resolveWebCredsPath(resolveUserPath(authDir)));
137
137
  return Date.now() - stats.mtimeMs;
138
138
  } catch {
139
139
  return null;
@@ -181,7 +181,7 @@ function resolveLegacyAuthDir() {
181
181
  }
182
182
  function legacyAuthExists(authDir) {
183
183
  try {
184
- return fsSync.existsSync(path.join(authDir, "creds.json"));
184
+ return fs$1.existsSync(path.join(authDir, "creds.json"));
185
185
  } catch {
186
186
  return false;
187
187
  }
@@ -244,7 +244,7 @@ function loadDotEnv(opts) {
244
244
  const quiet = opts?.quiet ?? true;
245
245
  dotenv.config({ quiet });
246
246
  const globalEnvPath = path.join(resolveConfigDir(process.env), ".env");
247
- if (!fsSync.existsSync(globalEnvPath)) return;
247
+ if (!fs$1.existsSync(globalEnvPath)) return;
248
248
  dotenv.config({
249
249
  quiet,
250
250
  path: globalEnvPath,
@@ -379,7 +379,7 @@ function resolveAgentMaxConcurrent(cfg) {
379
379
  //#endregion
380
380
  //#region src/config/talk.ts
381
381
  function readTalkApiKeyFromProfile(deps = {}) {
382
- const fsImpl = deps.fs ?? fsSync;
382
+ const fsImpl = deps.fs ?? fs$1;
383
383
  const osImpl = deps.os ?? os;
384
384
  const pathImpl = deps.path ?? path;
385
385
  const home = osImpl.homedir();
@@ -1076,7 +1076,7 @@ var IncludeProcessor = class IncludeProcessor {
1076
1076
  }
1077
1077
  };
1078
1078
  const defaultResolver = {
1079
- readFile: (p) => fsSync.readFileSync(p, "utf-8"),
1079
+ readFile: (p) => fs$1.readFileSync(p, "utf-8"),
1080
1080
  parseJson: (raw) => JSON5.parse(raw)
1081
1081
  };
1082
1082
  /**
@@ -2308,13 +2308,13 @@ function resolveBundledPluginsDir() {
2308
2308
  try {
2309
2309
  const execDir = path.dirname(process.execPath);
2310
2310
  const sibling = path.join(execDir, "extensions");
2311
- if (fsSync.existsSync(sibling)) return sibling;
2311
+ if (fs$1.existsSync(sibling)) return sibling;
2312
2312
  } catch {}
2313
2313
  try {
2314
2314
  let cursor = path.dirname(fileURLToPath(import.meta.url));
2315
2315
  for (let i = 0; i < 6; i += 1) {
2316
2316
  const candidate = path.join(cursor, "extensions");
2317
- if (fsSync.existsSync(candidate)) return candidate;
2317
+ if (fs$1.existsSync(candidate)) return candidate;
2318
2318
  const parent = path.dirname(cursor);
2319
2319
  if (parent === cursor) break;
2320
2320
  cursor = parent;
@@ -2333,20 +2333,20 @@ function normalizeStringList(value) {
2333
2333
  function resolvePluginManifestPath(rootDir) {
2334
2334
  for (const filename of PLUGIN_MANIFEST_FILENAMES) {
2335
2335
  const candidate = path.join(rootDir, filename);
2336
- if (fsSync.existsSync(candidate)) return candidate;
2336
+ if (fs$1.existsSync(candidate)) return candidate;
2337
2337
  }
2338
2338
  return path.join(rootDir, PLUGIN_MANIFEST_FILENAME);
2339
2339
  }
2340
2340
  function loadPluginManifest(rootDir) {
2341
2341
  const manifestPath = resolvePluginManifestPath(rootDir);
2342
- if (!fsSync.existsSync(manifestPath)) return {
2342
+ if (!fs$1.existsSync(manifestPath)) return {
2343
2343
  ok: false,
2344
2344
  error: `plugin manifest not found: ${manifestPath}`,
2345
2345
  manifestPath
2346
2346
  };
2347
2347
  let raw;
2348
2348
  try {
2349
- raw = JSON.parse(fsSync.readFileSync(manifestPath, "utf-8"));
2349
+ raw = JSON.parse(fs$1.readFileSync(manifestPath, "utf-8"));
2350
2350
  } catch (err) {
2351
2351
  return {
2352
2352
  ok: false,
@@ -2419,9 +2419,9 @@ function isExtensionFile(filePath) {
2419
2419
  }
2420
2420
  function readPackageManifest(dir) {
2421
2421
  const manifestPath = path.join(dir, "package.json");
2422
- if (!fsSync.existsSync(manifestPath)) return null;
2422
+ if (!fs$1.existsSync(manifestPath)) return null;
2423
2423
  try {
2424
- const raw = fsSync.readFileSync(manifestPath, "utf-8");
2424
+ const raw = fs$1.readFileSync(manifestPath, "utf-8");
2425
2425
  return JSON.parse(raw);
2426
2426
  } catch {
2427
2427
  return null;
@@ -2459,10 +2459,10 @@ function addCandidate(params) {
2459
2459
  });
2460
2460
  }
2461
2461
  function discoverInDirectory(params) {
2462
- if (!fsSync.existsSync(params.dir)) return;
2462
+ if (!fs$1.existsSync(params.dir)) return;
2463
2463
  let entries = [];
2464
2464
  try {
2465
- entries = fsSync.readdirSync(params.dir, { withFileTypes: true });
2465
+ entries = fs$1.readdirSync(params.dir, { withFileTypes: true });
2466
2466
  } catch (err) {
2467
2467
  params.diagnostics.push({
2468
2468
  level: "warn",
@@ -2514,7 +2514,7 @@ function discoverInDirectory(params) {
2514
2514
  "index.js",
2515
2515
  "index.mjs",
2516
2516
  "index.cjs"
2517
- ].map((candidate) => path.join(fullPath, candidate)).find((candidate) => fsSync.existsSync(candidate));
2517
+ ].map((candidate) => path.join(fullPath, candidate)).find((candidate) => fs$1.existsSync(candidate));
2518
2518
  if (indexFile && isExtensionFile(indexFile)) addCandidate({
2519
2519
  candidates: params.candidates,
2520
2520
  seen: params.seen,
@@ -2530,7 +2530,7 @@ function discoverInDirectory(params) {
2530
2530
  }
2531
2531
  function discoverFromPath(params) {
2532
2532
  const resolved = resolveUserPath(params.rawPath);
2533
- if (!fsSync.existsSync(resolved)) {
2533
+ if (!fs$1.existsSync(resolved)) {
2534
2534
  params.diagnostics.push({
2535
2535
  level: "error",
2536
2536
  message: `plugin path not found: ${resolved}`,
@@ -2538,7 +2538,7 @@ function discoverFromPath(params) {
2538
2538
  });
2539
2539
  return;
2540
2540
  }
2541
- const stat = fsSync.statSync(resolved);
2541
+ const stat = fs$1.statSync(resolved);
2542
2542
  if (stat.isFile()) {
2543
2543
  if (!isExtensionFile(resolved)) {
2544
2544
  params.diagnostics.push({
@@ -2588,7 +2588,7 @@ function discoverFromPath(params) {
2588
2588
  "index.js",
2589
2589
  "index.mjs",
2590
2590
  "index.cjs"
2591
- ].map((candidate) => path.join(resolved, candidate)).find((candidate) => fsSync.existsSync(candidate));
2591
+ ].map((candidate) => path.join(resolved, candidate)).find((candidate) => fs$1.existsSync(candidate));
2592
2592
  if (indexFile && isExtensionFile(indexFile)) {
2593
2593
  addCandidate({
2594
2594
  candidates: params.candidates,
@@ -2678,7 +2678,7 @@ function safeRealpathSync(rootDir, cache) {
2678
2678
  const cached = cache.get(rootDir);
2679
2679
  if (cached) return cached;
2680
2680
  try {
2681
- const resolved = fsSync.realpathSync(rootDir);
2681
+ const resolved = fs$1.realpathSync(rootDir);
2682
2682
  cache.set(rootDir, resolved);
2683
2683
  return resolved;
2684
2684
  } catch {
@@ -2706,7 +2706,7 @@ function buildCacheKey(params) {
2706
2706
  }
2707
2707
  function safeStatMtimeMs(filePath) {
2708
2708
  try {
2709
- return fsSync.statSync(filePath).mtimeMs;
2709
+ return fs$1.statSync(filePath).mtimeMs;
2710
2710
  } catch {
2711
2711
  return null;
2712
2712
  }
@@ -6059,7 +6059,7 @@ function resolveConfigPathForDeps(deps) {
6059
6059
  }
6060
6060
  function normalizeDeps(overrides = {}) {
6061
6061
  return {
6062
- fs: overrides.fs ?? fsSync,
6062
+ fs: overrides.fs ?? fs$1,
6063
6063
  json5: overrides.json5 ?? JSON5,
6064
6064
  env: overrides.env ?? process.env,
6065
6065
  homedir: overrides.homedir ?? (() => resolveRequiredHomeDir(overrides.env ?? process.env, os.homedir)),
@@ -201,7 +201,7 @@ async function runConfigUnset(opts) {
201
201
  }
202
202
  function registerConfigCli(program) {
203
203
  const cmd = program.command("config").description("Config helpers (get/set/unset). Run without subcommand for the wizard.").addHelpText("after", () => `\n${theme.muted("Docs:")} ${formatDocsLink("/cli/config", "docs.openclaw.ai/cli/config")}\n`).option("--section <section>", "Configure wizard sections (repeatable). Use with no subcommand.", (value, previous) => [...previous, value], []).action(async (opts) => {
204
- const { configureCommandFromSectionsArg } = await import("./configure-CRaYQ6hS.js").then((n) => n.t);
204
+ const { configureCommandFromSectionsArg } = await import("./configure-Dg3rt98q.js").then((n) => n.t);
205
205
  await configureCommandFromSectionsArg(opts.section, defaultRuntime);
206
206
  });
207
207
  cmd.command("get").description("Get a config value by dot path").argument("<path>", "Config path (dot or bracket notation)").option("--json", "Output JSON", false).action(async (path, opts) => {
@@ -205,7 +205,7 @@ async function runConfigUnset(opts) {
205
205
  }
206
206
  function registerConfigCli(program) {
207
207
  const cmd = program.command("config").description("Config helpers (get/set/unset). Run without subcommand for the wizard.").addHelpText("after", () => `\n${theme.muted("Docs:")} ${formatDocsLink("/cli/config", "docs.openclaw.ai/cli/config")}\n`).option("--section <section>", "Configure wizard sections (repeatable). Use with no subcommand.", (value, previous) => [...previous, value], []).action(async (opts) => {
208
- const { configureCommandFromSectionsArg } = await import("./configure-B0_p6Z1n.js").then((n) => n.t);
208
+ const { configureCommandFromSectionsArg } = await import("./configure-DgvISeIJ.js").then((n) => n.t);
209
209
  await configureCommandFromSectionsArg(opts.section, defaultRuntime);
210
210
  });
211
211
  cmd.command("get").description("Get a config value by dot path").argument("<path>", "Config path (dot or bracket notation)").option("--json", "Output JSON", false).action(async (path, opts) => {
@@ -11,14 +11,14 @@ import { n as stylePromptMessage, r as stylePromptTitle, t as stylePromptHint }
11
11
  import { t as note$1 } from "./note-Ct8WrG6i.js";
12
12
  import { t as WizardCancelledError } from "./prompts-CVszWQps.js";
13
13
  import { t as createClackPrompter } from "./clack-prompter-CLpC8gca.js";
14
- import { r as setupChannels, t as noteChannelStatus } from "./onboard-channels-BeXdUwL0.js";
14
+ import { r as setupChannels, t as noteChannelStatus } from "./onboard-channels-yzWQkeRm.js";
15
15
  import { a as gatewayInstallErrorHint, i as buildGatewayInstallPlan, n as GATEWAY_DAEMON_RUNTIME_OPTIONS, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime-EMOzgA87.js";
16
16
  import { t as resolveGatewayService } from "./service-w3KJVv_J.js";
17
- import { r as healthCommand } from "./health-shfUNbPM.js";
17
+ import { r as healthCommand } from "./health-BLNgO5Lg.js";
18
18
  import { t as ensureControlUiAssetsBuilt } from "./control-ui-assets-DTeWMjr_.js";
19
19
  import { n as logConfigUpdated } from "./logging-DlBaGy5C.js";
20
20
  import { n as promptAuthChoiceGrouped } from "./auth-choice-prompt-BAg1EsYm.js";
21
- import { i as applyAuthChoice, n as resolvePreferredProviderForAuthChoice } from "./auth-choice-GrNENivg.js";
21
+ import { i as applyAuthChoice, n as resolvePreferredProviderForAuthChoice } from "./auth-choice-Uz72AGbr.js";
22
22
  import { t as ensureSystemdUserLingerInteractive } from "./systemd-linger-D81JLquf.js";
23
23
  import { a as promptDefaultModel, n as applyModelFallbacksFromSelection, o as promptModelAllowlist, r as applyPrimaryModel, t as applyModelAllowlist } from "./model-picker-z-KV0yCm.js";
24
24
  import { a as promptCustomApiConfig } from "./onboard-custom-UVH5Bu2c.js";
@@ -13,14 +13,14 @@ import { n as stylePromptMessage, r as stylePromptTitle, t as stylePromptHint }
13
13
  import { t as note$1 } from "./note-DHzyZ-eO.js";
14
14
  import { t as WizardCancelledError } from "./prompts-CYK8TmAN.js";
15
15
  import { t as createClackPrompter } from "./clack-prompter-BVIKoybI.js";
16
- import { r as setupChannels, t as noteChannelStatus } from "./onboard-channels-BATBIQiN.js";
16
+ import { r as setupChannels, t as noteChannelStatus } from "./onboard-channels-BxI6pALE.js";
17
17
  import { a as gatewayInstallErrorHint, i as buildGatewayInstallPlan, n as GATEWAY_DAEMON_RUNTIME_OPTIONS, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime-B5iGPA1t.js";
18
18
  import { t as resolveGatewayService } from "./service-DZTikQY3.js";
19
- import { r as healthCommand } from "./health-BqoIIu1u.js";
19
+ import { r as healthCommand } from "./health-5OQ86AsB.js";
20
20
  import { t as ensureControlUiAssetsBuilt } from "./control-ui-assets-BvFVs4xo.js";
21
21
  import { n as logConfigUpdated } from "./logging-Bht-XWBM.js";
22
22
  import { n as promptAuthChoiceGrouped } from "./auth-choice-prompt-CRtXxfkf.js";
23
- import { i as applyAuthChoice, n as resolvePreferredProviderForAuthChoice } from "./auth-choice-B6AdPtCu.js";
23
+ import { i as applyAuthChoice, n as resolvePreferredProviderForAuthChoice } from "./auth-choice-BL4n2N2D.js";
24
24
  import { t as ensureSystemdUserLingerInteractive } from "./systemd-linger-Bzc93pL-.js";
25
25
  import { a as promptDefaultModel, n as applyModelFallbacksFromSelection, o as promptModelAllowlist, r as applyPrimaryModel, t as applyModelAllowlist } from "./model-picker-CYNMrcGw.js";
26
26
  import { a as promptCustomApiConfig } from "./onboard-custom-CMGLzLp4.js";
@@ -1,13 +1,13 @@
1
1
  import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
2
- import { s as resolveStateDir } from "./paths-CkkDESQ2.js";
3
- import { C as normalizeAccountId$1 } from "./workspace-CgGZnIx_.js";
4
- import { B as escapeRegExp, S as getActivePluginRegistry, l as createSubsystemLogger } from "./exec-C_bNT00b.js";
5
- import { F as getChannelPlugin, L as normalizeChannelId } from "./image-ops-CKPJXWk4.js";
6
- import { Ct as getChannelDock, J as appendAssistantMessageToSessionTranscript, Y as resolveMirroredTranscriptText, m as isMessagingToolDuplicate } from "./pi-embedded-helpers-DmwtjJVo.js";
7
- import { c as resolveMarkdownTableMode, f as chunkMarkdownTextWithMode, g as resolveTextChunkLimit, h as resolveChunkMode, s as getAgentScopedMediaLocalRoots, u as chunkByParagraph, y as parseFenceSpans } from "./ir-C-hSqOPD.js";
8
- import { l as markdownToSignalTextChunks, t as sendMessageSignal } from "./send-CKSrJ7se.js";
2
+ import { s as resolveStateDir } from "./paths-CyR9Pa1R.js";
3
+ import { C as normalizeAccountId$1 } from "./workspace-LSLFINSz.js";
4
+ import { B as escapeRegExp, S as getActivePluginRegistry, l as createSubsystemLogger } from "./exec-C9rZpEqA.js";
5
+ import { F as getChannelPlugin, L as normalizeChannelId } from "./image-ops-7EDUjzca.js";
6
+ import { Ct as getChannelDock, J as appendAssistantMessageToSessionTranscript, Y as resolveMirroredTranscriptText, m as isMessagingToolDuplicate } from "./pi-embedded-helpers-DHT11gwA.js";
7
+ import { c as resolveMarkdownTableMode, f as chunkMarkdownTextWithMode, g as resolveTextChunkLimit, h as resolveChunkMode, s as getAgentScopedMediaLocalRoots, u as chunkByParagraph, y as parseFenceSpans } from "./ir-eyTjTBlP.js";
8
+ import { l as markdownToSignalTextChunks, t as sendMessageSignal } from "./send-BRIcpOAj.js";
9
9
  import path from "node:path";
10
- import fsSync from "node:fs";
10
+ import fs from "node:fs";
11
11
  import crypto from "node:crypto";
12
12
 
13
13
  //#region src/auto-reply/tokens.ts
@@ -596,11 +596,11 @@ function resolveFailedDir(stateDir) {
596
596
  /** Ensure the queue directory (and failed/ subdirectory) exist. */
597
597
  async function ensureQueueDir(stateDir) {
598
598
  const queueDir = resolveQueueDir(stateDir);
599
- await fsSync.promises.mkdir(queueDir, {
599
+ await fs.promises.mkdir(queueDir, {
600
600
  recursive: true,
601
601
  mode: 448
602
602
  });
603
- await fsSync.promises.mkdir(resolveFailedDir(stateDir), {
603
+ await fs.promises.mkdir(resolveFailedDir(stateDir), {
604
604
  recursive: true,
605
605
  mode: 448
606
606
  });
@@ -628,18 +628,18 @@ async function enqueueDelivery(params, stateDir) {
628
628
  const filePath = path.join(queueDir, `${id}.json`);
629
629
  const tmp = `${filePath}.${process.pid}.tmp`;
630
630
  const json = JSON.stringify(entry, null, 2);
631
- await fsSync.promises.writeFile(tmp, json, {
631
+ await fs.promises.writeFile(tmp, json, {
632
632
  encoding: "utf-8",
633
633
  mode: 384
634
634
  });
635
- await fsSync.promises.rename(tmp, filePath);
635
+ await fs.promises.rename(tmp, filePath);
636
636
  return id;
637
637
  }
638
638
  /** Remove a successfully delivered entry from the queue. */
639
639
  async function ackDelivery(id, stateDir) {
640
640
  const filePath = path.join(resolveQueueDir(stateDir), `${id}.json`);
641
641
  try {
642
- await fsSync.promises.unlink(filePath);
642
+ await fs.promises.unlink(filePath);
643
643
  } catch (err) {
644
644
  if ((err && typeof err === "object" && "code" in err ? String(err.code) : null) !== "ENOENT") throw err;
645
645
  }
@@ -647,16 +647,16 @@ async function ackDelivery(id, stateDir) {
647
647
  /** Update a queue entry after a failed delivery attempt. */
648
648
  async function failDelivery(id, error, stateDir) {
649
649
  const filePath = path.join(resolveQueueDir(stateDir), `${id}.json`);
650
- const raw = await fsSync.promises.readFile(filePath, "utf-8");
650
+ const raw = await fs.promises.readFile(filePath, "utf-8");
651
651
  const entry = JSON.parse(raw);
652
652
  entry.retryCount += 1;
653
653
  entry.lastError = error;
654
654
  const tmp = `${filePath}.${process.pid}.tmp`;
655
- await fsSync.promises.writeFile(tmp, JSON.stringify(entry, null, 2), {
655
+ await fs.promises.writeFile(tmp, JSON.stringify(entry, null, 2), {
656
656
  encoding: "utf-8",
657
657
  mode: 384
658
658
  });
659
- await fsSync.promises.rename(tmp, filePath);
659
+ await fs.promises.rename(tmp, filePath);
660
660
  }
661
661
 
662
662
  //#endregion
@@ -2,7 +2,7 @@
2
2
  function createDefaultDeps() {
3
3
  return {
4
4
  sendMessageWhatsApp: async (...args) => {
5
- const { sendMessageWhatsApp } = await import("./web-By5urMji.js");
5
+ const { sendMessageWhatsApp } = await import("./web-CmgBQX8I.js");
6
6
  return await sendMessageWhatsApp(...args);
7
7
  },
8
8
  sendMessageTelegram: async (...args) => {