openclaw-multi-auto 1.3.1 → 1.3.3

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 (205) 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-DpxQCpsA.js → audio-preflight-BMvgEQ5j.js} +32 -32
  7. package/dist/{audio-transcription-runner-28fcRNNi.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-DwizpzOC.js → chrome-DxxEKrY7.js} +18 -18
  17. package/dist/{commands-registry-V1zZ5pPC.js → commands-registry-D5qXbFJn.js} +4 -4
  18. package/dist/{deliver-D4o6VIur.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-Bbn53mzj.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-BaGj07T0.js → pi-embedded-BQQa91aA.js} +158 -158
  51. package/dist/{pi-embedded-helpers-wy0DZvx1.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-DyFCXtHv.js → accounts-BslAlVYS.js} +2 -2
  56. package/dist/plugin-sdk/{accounts-BJAXxY46.js → accounts-C3m65--E.js} +2 -2
  57. package/dist/plugin-sdk/{accounts-C1j7HSL0.js → accounts-CNCCkdEF.js} +3 -3
  58. package/dist/plugin-sdk/{active-listener-CftX5jLD.js → active-listener-CkPnMUkB.js} +2 -2
  59. package/dist/plugin-sdk/{api-key-rotation-8nyyt1kx.js → api-key-rotation-BXnNsojA.js} +2 -2
  60. package/dist/plugin-sdk/{audio-preflight-C_aSAPR1.js → audio-preflight-CtO4fFvp.js} +26 -26
  61. package/dist/plugin-sdk/{audio-transcription-runner-CB53F7_7.js → audio-transcription-runner-DnxvOS1-.js} +11 -11
  62. package/dist/plugin-sdk/{audit-membership-runtime-BXndI4LG.js → audit-membership-runtime-BpfoSk8M.js} +2 -2
  63. package/dist/plugin-sdk/{channel-activity-C5y8AgAV.js → channel-activity-WJYxcJ3S.js} +3 -3
  64. package/dist/plugin-sdk/{channel-web-DBTRO03V.js → channel-web-dO5k3ubM.js} +18 -18
  65. package/dist/plugin-sdk/{chrome-f00sZkDX.js → chrome-CjNTuJML.js} +6 -6
  66. package/dist/plugin-sdk/{commands-registry-BJ_NxG2F.js → commands-registry-CdYjoI0i.js} +4 -4
  67. package/dist/plugin-sdk/{common-Cf27Jwxu.js → common-oYc5vPFl.js} +2 -2
  68. package/dist/plugin-sdk/{config-CHQrpx-Q.js → config-B1z-UxQ3.js} +7 -7
  69. package/dist/plugin-sdk/{deliver-DNEuetST.js → deliver-D5_6T567.js} +10 -10
  70. package/dist/plugin-sdk/deliver-runtime-C5dgvvga.js +32 -0
  71. package/dist/plugin-sdk/deps-send-discord.runtime-Dg4N7PHJ.js +23 -0
  72. package/dist/plugin-sdk/deps-send-imessage.runtime-0OEwzMQm.js +22 -0
  73. package/dist/plugin-sdk/deps-send-signal.runtime-BM1jRt3G.js +21 -0
  74. package/dist/plugin-sdk/deps-send-slack.runtime-1E3BYRdF.js +19 -0
  75. package/dist/plugin-sdk/deps-send-telegram.runtime-DNCxIflA.js +24 -0
  76. package/dist/plugin-sdk/deps-send-whatsapp.runtime-OLwr-9c8.js +57 -0
  77. package/dist/plugin-sdk/{diagnostic-LYUUmjJ5.js → diagnostic-Bxxu0ig-.js} +2 -2
  78. package/dist/plugin-sdk/discord.js +6 -6
  79. package/dist/plugin-sdk/{errors-CtMWwS2Z.js → errors-B3cHyZZA.js} +1 -1
  80. package/dist/plugin-sdk/{fetch-guard-CxYB5Kg6.js → fetch-guard-Dcgod0tg.js} +2 -2
  81. package/dist/plugin-sdk/{fs-safe-DtfhxbrI.js → fs-safe-BaKqI3G4.js} +3 -3
  82. package/dist/plugin-sdk/{image-BwjYjRHx.js → image-B2mQW9Rb.js} +6 -6
  83. package/dist/plugin-sdk/{image-ops-BnZKcbd6.js → image-ops-Cbzr4U9l.js} +2 -2
  84. package/dist/plugin-sdk/image-runtime-BFm45j49.js +25 -0
  85. package/dist/plugin-sdk/{ir-Z4hX67TJ.js → ir-ZEmrTr4J.js} +7 -7
  86. package/dist/plugin-sdk/{local-roots-KhjQw04O.js → local-roots-CIPRxA-4.js} +4 -4
  87. package/dist/plugin-sdk/{logger-DHIIvMxj.js → logger-CvPFVOgT.js} +2 -2
  88. package/dist/plugin-sdk/{login-C31642Ld.js → login-CCTew9bt.js} +4 -4
  89. package/dist/plugin-sdk/{login-qr--y2SG_Ue.js → login-qr-BI3Vi_wJ.js} +5 -5
  90. package/dist/plugin-sdk/{manager-2UZBMCc7.js → manager-BEoYPn7R.js} +8 -8
  91. package/dist/plugin-sdk/manager-runtime-DxclHQ4U.js +15 -0
  92. package/dist/plugin-sdk/mattermost.js +3 -3
  93. package/dist/plugin-sdk/{outbound-Ba0QUI5h.js → outbound-ByOw1K6W.js} +5 -5
  94. package/dist/plugin-sdk/{outbound-attachment-B1Laso-8.js → outbound-attachment-BzVhxRRw.js} +2 -2
  95. package/dist/plugin-sdk/{path-alias-guards-C7Vm5DZ1.js → path-alias-guards-sWayacde.js} +1 -1
  96. package/dist/plugin-sdk/{paths-DopV9PQG.js → paths-Dpg3qxcl.js} +1 -1
  97. package/dist/plugin-sdk/{pi-embedded-helpers-DnA_OCzP.js → pi-embedded-helpers-DIxXkGJf.js} +16 -16
  98. package/dist/plugin-sdk/{pi-model-discovery-DdPqXk8f.js → pi-model-discovery-DM_2uFtj.js} +1 -1
  99. package/dist/plugin-sdk/pi-model-discovery-runtime-BuzvkvNR.js +8 -0
  100. package/dist/plugin-sdk/{pi-tools.before-tool-call.runtime-DxFHiLUE.js → pi-tools.before-tool-call.runtime-w1dqL_ty.js} +4 -4
  101. package/dist/plugin-sdk/{plugins-CbCt4osF.js → plugins-C4USiH29.js} +4 -4
  102. package/dist/plugin-sdk/{proxy-env-C63mMdas.js → proxy-env-ET-rp8eg.js} +1 -1
  103. package/dist/{proxy-fetch-CCjEYbFm.js → plugin-sdk/proxy-fetch-uDXGKG3Z.js} +1 -1
  104. package/dist/plugin-sdk/{pw-ai-DpJk62D4.js → pw-ai-CyOt3RDA.js} +9 -9
  105. package/dist/plugin-sdk/{qmd-manager-Ca-iSfEE.js → qmd-manager-BySdoVR7.js} +7 -7
  106. package/dist/plugin-sdk/{query-expansion-B_Xe41Ab.js → query-expansion-C6uS-7lj.js} +4 -4
  107. package/dist/plugin-sdk/{redact-hp9TOulW.js → redact-Bvxt1T_Q.js} +1 -1
  108. package/dist/plugin-sdk/{reply-CovBlFea.js → reply-CTCSeQqW.js} +73 -73
  109. package/dist/plugin-sdk/{resolve-outbound-target-BbrHgyUk.js → resolve-outbound-target-Bw8YNANu.js} +2 -2
  110. package/dist/plugin-sdk/{run-with-concurrency-BR1DXa8T.js → run-with-concurrency-C_KCHwvf.js} +1 -1
  111. package/dist/plugin-sdk/runtime-whatsapp-login.runtime-BxgRDkhc.js +10 -0
  112. package/dist/plugin-sdk/runtime-whatsapp-outbound.runtime-elOqrkfg.js +19 -0
  113. package/dist/plugin-sdk/{send-BvAtLLPl.js → send-BZ6nYFZr.js} +5 -5
  114. package/dist/plugin-sdk/{send-BTztm3D2.js → send-C0w6xP2x.js} +6 -6
  115. package/dist/plugin-sdk/{send-CWJUuG0i.js → send-CFf-1V89.js} +8 -8
  116. package/dist/plugin-sdk/{send-EcglC4cG.js → send-CY-Qfwia.js} +7 -7
  117. package/dist/plugin-sdk/{send-BXpXBwM_.js → send-qPyNGSe4.js} +13 -13
  118. package/dist/plugin-sdk/{session-k256LJZT.js → session-COrvpvUQ.js} +3 -3
  119. package/dist/plugin-sdk/{skill-commands-DoRqLzxm.js → skill-commands-DZqhtmiv.js} +4 -4
  120. package/dist/plugin-sdk/{skills-QudILG6e.js → skills-Cw_vXEJb.js} +6 -6
  121. package/dist/plugin-sdk/slash-commands.runtime-D67JLweo.js +13 -0
  122. package/dist/plugin-sdk/slash-dispatch.runtime-DvcpvCJ0.js +52 -0
  123. package/dist/plugin-sdk/slash-skill-commands.runtime-BM1x3azR.js +16 -0
  124. package/dist/plugin-sdk/{store-BbDQw3g6.js → store-CMHj6IIw.js} +2 -2
  125. package/dist/plugin-sdk/subagent-registry-runtime-1lbDyRzz.js +52 -0
  126. package/dist/plugin-sdk/{tables-BhvloMKN.js → tables-CSqrHsKL.js} +1 -1
  127. package/dist/plugin-sdk/{thinking-URzkT-3p.js → thinking-DOnsR_A8.js} +7 -7
  128. package/dist/plugin-sdk/{tokens-B1PW5Ayy.js → tokens-BDr0Z9o3.js} +1 -1
  129. package/dist/plugin-sdk/{tool-images-xpqbP6RR.js → tool-images-eEfOVkzf.js} +2 -2
  130. package/dist/plugin-sdk/web-BLyT64pW.js +56 -0
  131. package/dist/plugin-sdk/{whatsapp-actions-RcZ6vp61.js → whatsapp-actions-xcleMoMv.js} +17 -17
  132. package/dist/plugin-sdk/whatsapp.js +50 -50
  133. package/dist/{plugins-CWkRQYDj.js → plugins-4Rj4OjLY.js} +11 -11
  134. package/dist/{proxy-env-Cq5gdrbj.js → proxy-env-DlmzDx8x.js} +1 -1
  135. package/dist/{plugin-sdk/proxy-fetch-Ch95c_Y2.js → proxy-fetch-B2pEfjbR.js} +1 -1
  136. package/dist/{pw-ai-Cl1Lc7RC.js → pw-ai-DNMjFMqH.js} +14 -14
  137. package/dist/{qmd-manager-BsYsO9Ii.js → qmd-manager-BtIKUaO9.js} +10 -10
  138. package/dist/{query-expansion-DtLc3wjL.js → query-expansion-CX-1fS52.js} +6 -6
  139. package/dist/{redact-ClbcYG1J.js → redact-COik8ET1.js} +1 -1
  140. package/dist/{run-with-concurrency-D_ZpbgEG.js → run-with-concurrency-BgYfgkXT.js} +4 -4
  141. package/dist/runtime-whatsapp-login.runtime-DUb55byQ.js +13 -0
  142. package/dist/runtime-whatsapp-outbound.runtime-Bii_xSfI.js +22 -0
  143. package/dist/{send-Dx2RkUOZ.js → send-6lz6rNVP.js} +6 -6
  144. package/dist/{send-vmONuVgL.js → send-BHTiZcH3.js} +26 -26
  145. package/dist/{send-Bj776ESJ.js → send-L7gRiwyd.js} +7 -7
  146. package/dist/{send-DcxmcFi_.js → send-PE6cwoTe.js} +8 -8
  147. package/dist/{send-BQERFNyo.js → send-dfu6_rgf.js} +5 -5
  148. package/dist/{session-A4QhBRvH.js → session-D8ImowSs.js} +8 -8
  149. package/dist/{skill-commands-CMzBZKG2.js → skill-commands-DNqJ-kwn.js} +9 -9
  150. package/dist/{skills-CE_iqvM5.js → skills-7ODkHQYp.js} +22 -22
  151. package/dist/slash-commands.runtime-CVw6566g.js +16 -0
  152. package/dist/slash-dispatch.runtime-B9Ygtzi4.js +56 -0
  153. package/dist/slash-skill-commands.runtime-DxZ4z5h6.js +20 -0
  154. package/dist/{store--eR1R_UX.js → store-D89wDcz9.js} +2 -2
  155. package/dist/subagent-registry-runtime-DL1Wv7nA.js +56 -0
  156. package/dist/{subsystem-Di1z8l0Z.js → subsystem-B45WV3qB.js} +14 -14
  157. package/dist/{tables-d739Y1xW.js → tables-mE4cJBN2.js} +1 -1
  158. package/dist/{target-errors-CBI2Ga0y.js → target-errors-mnlwhAjP.js} +2 -2
  159. package/dist/{thinking-DXYisHiZ.js → thinking-BeGmb5k6.js} +7 -7
  160. package/dist/{tokens-DxnY9ui_.js → tokens-q32vI39c.js} +1 -1
  161. package/dist/{tool-images-2cBx1W8h.js → tool-images-RZdHiZcG.js} +2 -2
  162. package/dist/{web-CzWRVmFt.js → web-Btj-e8kN.js} +55 -55
  163. package/dist/{whatsapp-actions-iEArE_Ez.js → whatsapp-actions-BHbJJyqw.js} +21 -21
  164. package/dist/{workspace-CUVC6GX1.js → workspace-U-DyR64O.js} +20 -20
  165. package/extensions/googlechat/node_modules/.bin/openclaw +2 -2
  166. package/extensions/memory-core/node_modules/.bin/openclaw +2 -2
  167. package/package.json +5 -7
  168. package/scripts/npm_publish.sh +32 -16
  169. package/vendor/libsignal-node/node_modules/.bin/acorn +21 -0
  170. package/vendor/libsignal-node/node_modules/.bin/eslint +21 -0
  171. package/vendor/libsignal-node/node_modules/.bin/pbjs +21 -0
  172. package/vendor/libsignal-node/node_modules/.bin/pbts +21 -0
  173. package/dist/deliver-runtime-P-G3bPjW.js +0 -36
  174. package/dist/deps-send-discord.runtime-DnbhTFX9.js +0 -26
  175. package/dist/deps-send-imessage.runtime-BOiQ6mDx.js +0 -25
  176. package/dist/deps-send-signal.runtime-CTcl388M.js +0 -24
  177. package/dist/deps-send-slack.runtime-CCqBz4Kg.js +0 -22
  178. package/dist/deps-send-telegram.runtime-DGSKTCpH.js +0 -27
  179. package/dist/deps-send-whatsapp.runtime-CJkTHkah.js +0 -60
  180. package/dist/image-runtime-CVv2ra9J.js +0 -29
  181. package/dist/manager-runtime-BN6VevdC.js +0 -18
  182. package/dist/pi-model-discovery-runtime-Bwmi4Ev8.js +0 -11
  183. package/dist/plugin-sdk/deliver-runtime-BFdqklJM.js +0 -32
  184. package/dist/plugin-sdk/deps-send-discord.runtime-DuqpYwU0.js +0 -23
  185. package/dist/plugin-sdk/deps-send-imessage.runtime-CZ2rS8Lb.js +0 -22
  186. package/dist/plugin-sdk/deps-send-signal.runtime-BdqiWhIh.js +0 -21
  187. package/dist/plugin-sdk/deps-send-slack.runtime-04s36qiC.js +0 -19
  188. package/dist/plugin-sdk/deps-send-telegram.runtime-LE5tkPvr.js +0 -24
  189. package/dist/plugin-sdk/deps-send-whatsapp.runtime-Bz57lobC.js +0 -57
  190. package/dist/plugin-sdk/image-runtime-B8twoubs.js +0 -25
  191. package/dist/plugin-sdk/manager-runtime-CMeLwose.js +0 -15
  192. package/dist/plugin-sdk/pi-model-discovery-runtime-D8CJhtJY.js +0 -8
  193. package/dist/plugin-sdk/runtime-whatsapp-login.runtime-SkO91TZH.js +0 -10
  194. package/dist/plugin-sdk/runtime-whatsapp-outbound.runtime-B0VWK5hm.js +0 -19
  195. package/dist/plugin-sdk/slash-commands.runtime-DS6vCNSL.js +0 -13
  196. package/dist/plugin-sdk/slash-dispatch.runtime-BXrxb2wd.js +0 -52
  197. package/dist/plugin-sdk/slash-skill-commands.runtime-Bd6qQ2oT.js +0 -16
  198. package/dist/plugin-sdk/subagent-registry-runtime-1uwQbuXj.js +0 -52
  199. package/dist/plugin-sdk/web-B74yhL2N.js +0 -56
  200. package/dist/runtime-whatsapp-login.runtime-IeylZEl4.js +0 -13
  201. package/dist/runtime-whatsapp-outbound.runtime-ClBRuLsq.js +0 -22
  202. package/dist/slash-commands.runtime-Cpn2tYW4.js +0 -16
  203. package/dist/slash-dispatch.runtime-DoBAQBU5.js +0 -56
  204. package/dist/slash-skill-commands.runtime-DKMvvdDW.js +0 -20
  205. package/dist/subagent-registry-runtime-ppWS3tVu.js +0 -56
@@ -1,7 +1,7 @@
1
- import { r as resolveConfigPath } from "./paths-C6TxBCvO.js";
1
+ import { r as resolveConfigPath } from "./paths-Cvc9EM8Y.js";
2
2
  import os from "node:os";
3
3
  import path from "node:path";
4
- import syncFs from "node:fs";
4
+ import fs from "node:fs";
5
5
  import chalk, { Chalk } from "chalk";
6
6
  import { Logger } from "tslog";
7
7
  import JSON5 from "json5";
@@ -54,15 +54,15 @@ function getCommandPathInternal(argv, depth, opts) {
54
54
  //#endregion
55
55
  //#region src/infra/tmp-openclaw-dir.ts
56
56
  const POSIX_OPENCLAW_TMP_DIR = process.env.OPENCLAW_TMP_DIR ?? "/tmp/openclaw";
57
- const TMP_DIR_ACCESS_MODE = syncFs.constants.W_OK | syncFs.constants.X_OK;
57
+ const TMP_DIR_ACCESS_MODE = fs.constants.W_OK | fs.constants.X_OK;
58
58
  function isNodeErrorWithCode(err, code) {
59
59
  return typeof err === "object" && err !== null && "code" in err && err.code === code;
60
60
  }
61
61
  function resolvePreferredOpenClawTmpDir(options = {}) {
62
- const accessSync = options.accessSync ?? syncFs.accessSync;
63
- const chmodSync = options.chmodSync ?? syncFs.chmodSync;
64
- const lstatSync = options.lstatSync ?? syncFs.lstatSync;
65
- const mkdirSync = options.mkdirSync ?? syncFs.mkdirSync;
62
+ const accessSync = options.accessSync ?? fs.accessSync;
63
+ const chmodSync = options.chmodSync ?? fs.chmodSync;
64
+ const lstatSync = options.lstatSync ?? fs.lstatSync;
65
+ const mkdirSync = options.mkdirSync ?? fs.mkdirSync;
66
66
  const warn = options.warn ?? ((message) => console.warn(message));
67
67
  const getuid = options.getuid ?? (() => {
68
68
  try {
@@ -155,8 +155,8 @@ function resolvePreferredOpenClawTmpDir(options = {}) {
155
155
  function readLoggingConfig() {
156
156
  const configPath = resolveConfigPath();
157
157
  try {
158
- if (!syncFs.existsSync(configPath)) return;
159
- const raw = syncFs.readFileSync(configPath, "utf-8");
158
+ if (!fs.existsSync(configPath)) return;
159
+ const raw = fs.readFileSync(configPath, "utf-8");
160
160
  const logging = JSON5.parse(raw)?.logging;
161
161
  if (!logging || typeof logging !== "object" || Array.isArray(logging)) return;
162
162
  return logging;
@@ -344,7 +344,7 @@ function buildLogger(settings) {
344
344
  for (const transport of externalTransports) attachExternalTransport(logger, transport);
345
345
  return logger;
346
346
  }
347
- syncFs.mkdirSync(path.dirname(settings.file), { recursive: true });
347
+ fs.mkdirSync(path.dirname(settings.file), { recursive: true });
348
348
  if (isRollingPath(settings.file)) pruneOldRollingLogs(path.dirname(settings.file));
349
349
  let currentFileBytes = getCurrentLogFileBytes(settings.file);
350
350
  let warnedAboutSizeCap = false;
@@ -383,14 +383,14 @@ function resolveMaxLogFileBytes(raw) {
383
383
  }
384
384
  function getCurrentLogFileBytes(file) {
385
385
  try {
386
- return syncFs.statSync(file).size;
386
+ return fs.statSync(file).size;
387
387
  } catch {
388
388
  return 0;
389
389
  }
390
390
  }
391
391
  function appendLogLine(file, line) {
392
392
  try {
393
- syncFs.appendFileSync(file, line, { encoding: "utf8" });
393
+ fs.appendFileSync(file, line, { encoding: "utf8" });
394
394
  return true;
395
395
  } catch {
396
396
  return false;
@@ -442,14 +442,14 @@ function isRollingPath(file) {
442
442
  }
443
443
  function pruneOldRollingLogs(dir) {
444
444
  try {
445
- const entries = syncFs.readdirSync(dir, { withFileTypes: true });
445
+ const entries = fs.readdirSync(dir, { withFileTypes: true });
446
446
  const cutoff = Date.now() - MAX_LOG_AGE_MS;
447
447
  for (const entry of entries) {
448
448
  if (!entry.isFile()) continue;
449
449
  if (!entry.name.startsWith(`${LOG_PREFIX}-`) || !entry.name.endsWith(LOG_SUFFIX)) continue;
450
450
  const fullPath = path.join(dir, entry.name);
451
451
  try {
452
- if (syncFs.statSync(fullPath).mtimeMs < cutoff) syncFs.rmSync(fullPath, { force: true });
452
+ if (fs.statSync(fullPath).mtimeMs < cutoff) fs.rmSync(fullPath, { force: true });
453
453
  } catch {}
454
454
  }
455
455
  } catch {}
@@ -1,4 +1,4 @@
1
- import { r as markdownToIRWithMeta } from "./ir-DAP-B-Xw.js";
1
+ import { r as markdownToIRWithMeta } from "./ir-B83looB-.js";
2
2
  import { t as renderMarkdownWithMarkers } from "./render-DW7AcFdD.js";
3
3
 
4
4
  //#region src/markdown/tables.ts
@@ -1,5 +1,5 @@
1
- import { b as detectMime } from "./image-ops-CehkHxmW.js";
2
- import { r as sanitizeToolResultImages } from "./tool-images-2cBx1W8h.js";
1
+ import { b as detectMime } from "./image-ops-BuUnEOE0.js";
2
+ import { r as sanitizeToolResultImages } from "./tool-images-RZdHiZcG.js";
3
3
  import fs from "node:fs/promises";
4
4
 
5
5
  //#region src/agents/tools/common.ts
@@ -1,10 +1,10 @@
1
- import { G as normalizeAccountId } from "./workspace-CUVC6GX1.js";
2
- import { h as normalizeE164, u as escapeRegExp } from "./logger-DMZQQtxK.js";
3
- import { Ht as CHAT_CHANNEL_ORDER, Ut as getChatChannelMeta, Zt as requireActivePluginRegistry } from "./model-selection-idoqPmw0.js";
4
- import { a as normalizeWhatsAppTarget, b as resolveDiscordAccount, l as resolveTelegramAccount, m as resolveSlackReplyToMode, p as resolveSlackAccount } from "./plugins-CWkRQYDj.js";
5
- import { h as resolveAccountEntry, n as resolveWhatsAppAccount } from "./accounts-yfBeCZtS.js";
6
- import { n as resolveSignalAccount } from "./accounts-L9ByEpnP.js";
7
- import { t as resolveIMessageAccount } from "./accounts-BOzyfwW4.js";
1
+ import { G as normalizeAccountId } from "./workspace-U-DyR64O.js";
2
+ import { h as normalizeE164, u as escapeRegExp } from "./logger-BfjWMCSD.js";
3
+ import { Ht as CHAT_CHANNEL_ORDER, Ut as getChatChannelMeta, Zt as requireActivePluginRegistry } from "./model-selection-Dna0Gz1k.js";
4
+ import { a as normalizeWhatsAppTarget, b as resolveDiscordAccount, l as resolveTelegramAccount, m as resolveSlackReplyToMode, p as resolveSlackAccount } from "./plugins-4Rj4OjLY.js";
5
+ import { h as resolveAccountEntry, n as resolveWhatsAppAccount } from "./accounts-Tgelvk0C.js";
6
+ import { n as resolveSignalAccount } from "./accounts-C9HcPI9h.js";
7
+ import { t as resolveIMessageAccount } from "./accounts-C_lW3Ag9.js";
8
8
 
9
9
  //#region src/config/types.tools.ts
10
10
  const TOOLS_BY_SENDER_KEY_TYPES = [
@@ -1,4 +1,4 @@
1
- import { u as escapeRegExp } from "./logger-DMZQQtxK.js";
1
+ import { u as escapeRegExp } from "./logger-BfjWMCSD.js";
2
2
 
3
3
  //#region src/auto-reply/tokens.ts
4
4
  const HEARTBEAT_TOKEN = "HEARTBEAT_OK";
@@ -1,5 +1,5 @@
1
- import { t as createSubsystemLogger } from "./subsystem-Di1z8l0Z.js";
2
- import { i as getImageMetadata, n as buildImageResizeSideGrid, s as resizeToJpeg, t as IMAGE_REDUCE_QUALITY_STEPS } from "./image-ops-CehkHxmW.js";
1
+ import { t as createSubsystemLogger } from "./subsystem-B45WV3qB.js";
2
+ import { i as getImageMetadata, n as buildImageResizeSideGrid, s as resizeToJpeg, t as IMAGE_REDUCE_QUALITY_STEPS } from "./image-ops-BuUnEOE0.js";
3
3
 
4
4
  //#region src/media/base64.ts
5
5
  function estimateBase64DecodedBytes(base64) {
@@ -1,61 +1,61 @@
1
- import "./run-with-concurrency-D_ZpbgEG.js";
2
- import "./paths-C6TxBCvO.js";
3
- import { i as defaultRuntime, p as shouldLogVerbose, t as createSubsystemLogger, u as logVerbose, y as getChildLogger } from "./subsystem-Di1z8l0Z.js";
4
- import { F as buildGroupHistoryKey, M as DEFAULT_MAIN_KEY, N as buildAgentMainSessionKey, R as normalizeAgentId } from "./workspace-CUVC6GX1.js";
5
- import { C as sleep, T as toWhatsappJid, h as normalizeE164, m as jidToE164, o as clamp, p as isSelfChatMode, v as resolveJidToE164 } from "./logger-DMZQQtxK.js";
6
- import { X as loadConfig, lr as formatCliCommand } from "./model-selection-idoqPmw0.js";
7
- import "./github-copilot-token-D13V9YBz.js";
8
- import "./legacy-names-TyzbVqa_.js";
9
- import { h as resolveChannelGroupRequireMention, m as resolveChannelGroupPolicy } from "./thinking-DXYisHiZ.js";
10
- import "./tokens-DxnY9ui_.js";
11
- import { A as normalizeGroupActivation, B as normalizeMentionText, C as createInboundDebouncer, D as getReplyFromConfig, E as createDedupeCache, F as enqueueSystemEvent, I as finalizeInboundContext, K as resolveIdentityNamePrefix, L as hasControlCommand, M as computeBackoff, N as sleepWithAbort, O as buildAgentSessionKey, P as formatDurationPrecise, R as shouldComputeCommandAuthorized, T as formatInboundEnvelope, _ as resolveDmGroupAccessWithCommandGate, b as shouldAckReactionForWhatsApp, c as buildPairingReply, d as buildHistoryContextFromEntries, f as recordPendingHistoryEntryIfEnabled, g as readStoreAllowFromForDmPolicy, h as warnMissingProviderGroupPolicyFallbackOnce, i as resolveInboundSessionEnvelopeContext, j as parseActivationCommand, k as resolveAgentRoute, l as resolveMentionGating, m as resolveOpenProviderRuntimeGroupPolicy, p as resolveDefaultGroupPolicy, q as resolveMessagePrefix, s as createReplyPrefixOptions, u as DEFAULT_GROUP_HISTORY_LIMIT, v as resolveDmGroupAccessWithLists, w as resolveInboundDebounceMs, x as dispatchReplyWithBufferedBlockDispatcher, y as resolvePinnedMainDmOwnerFromAllowlist, z as buildMentionRegexes } from "./pi-embedded-BaGj07T0.js";
12
- import "./plugins-CWkRQYDj.js";
13
- import { a as logWebSelfId, c as pickWebChannel, i as getWebAuthAgeMs, m as webAuthExists, n as resolveWhatsAppAccount, r as WA_WEB_AUTH_DIR, u as readWebSelfId } from "./accounts-yfBeCZtS.js";
14
- import "./send-Dx2RkUOZ.js";
15
- import "./send-DcxmcFi_.js";
16
- import "./deliver-D4o6VIur.js";
17
- import "./diagnostic-Bn4PZjMZ.js";
18
- import "./accounts-L9ByEpnP.js";
19
- import "./image-ops-CehkHxmW.js";
20
- import { X as toLocationContext, Y as formatLocationText, et as upsertChannelPairingRequest } from "./send-vmONuVgL.js";
21
- import "./pi-model-discovery-BGgOlX8N.js";
22
- import { At as resolveGroupSessionKey, K as recordSessionMetaFromInbound, W as loadSessionStore, q as updateLastRoute } from "./pi-embedded-helpers-wy0DZvx1.js";
23
- import "./chrome-DwizpzOC.js";
24
- import "./frontmatter-CvaMP376.js";
25
- import "./skills-CE_iqvM5.js";
26
- import "./path-alias-guards-DqXRZmsL.js";
27
- import "./redact-ClbcYG1J.js";
28
- import "./errors-CCLeFWAg.js";
29
- import "./fs-safe-0jAo_Whb.js";
30
- import "./proxy-env-Cq5gdrbj.js";
31
- import { i as saveMediaBuffer } from "./store--eR1R_UX.js";
32
- import "./accounts-BOzyfwW4.js";
33
- import { s as resolveStorePath } from "./paths-CCxysrzL.js";
34
- import "./tool-images-2cBx1W8h.js";
35
- import "./image-Bbn53mzj.js";
36
- import { h as registerUnhandledRejectionHandler } from "./audio-transcription-runner-28fcRNNi.js";
37
- import { i as getAgentScopedMediaLocalRoots } from "./fetch-BlJWzEP6.js";
38
- import "./fetch-guard-ChYBwfiy.js";
39
- import "./api-key-rotation-DtsNS2Nb.js";
40
- import "./proxy-fetch-CCjEYbFm.js";
41
- import { a as loadWebMedia, d as chunkMarkdownTextWithMode, h as resolveTextChunkLimit, m as resolveChunkMode, s as resolveMarkdownTableMode } from "./ir-DAP-B-Xw.js";
1
+ import "./run-with-concurrency-BgYfgkXT.js";
2
+ import "./paths-Cvc9EM8Y.js";
3
+ import { i as defaultRuntime, p as shouldLogVerbose, t as createSubsystemLogger, u as logVerbose, y as getChildLogger } from "./subsystem-B45WV3qB.js";
4
+ import { F as buildGroupHistoryKey, M as DEFAULT_MAIN_KEY, N as buildAgentMainSessionKey, R as normalizeAgentId } from "./workspace-U-DyR64O.js";
5
+ import { C as sleep, T as toWhatsappJid, h as normalizeE164, m as jidToE164, o as clamp, p as isSelfChatMode, v as resolveJidToE164 } from "./logger-BfjWMCSD.js";
6
+ import { X as loadConfig, lr as formatCliCommand } from "./model-selection-Dna0Gz1k.js";
7
+ import "./github-copilot-token-BDioPmd6.js";
8
+ import "./legacy-names-DOC03BkU.js";
9
+ import { h as resolveChannelGroupRequireMention, m as resolveChannelGroupPolicy } from "./thinking-BeGmb5k6.js";
10
+ import "./tokens-q32vI39c.js";
11
+ import { A as normalizeGroupActivation, B as normalizeMentionText, C as createInboundDebouncer, D as getReplyFromConfig, E as createDedupeCache, F as enqueueSystemEvent, I as finalizeInboundContext, K as resolveIdentityNamePrefix, L as hasControlCommand, M as computeBackoff, N as sleepWithAbort, O as buildAgentSessionKey, P as formatDurationPrecise, R as shouldComputeCommandAuthorized, T as formatInboundEnvelope, _ as resolveDmGroupAccessWithCommandGate, b as shouldAckReactionForWhatsApp, c as buildPairingReply, d as buildHistoryContextFromEntries, f as recordPendingHistoryEntryIfEnabled, g as readStoreAllowFromForDmPolicy, h as warnMissingProviderGroupPolicyFallbackOnce, i as resolveInboundSessionEnvelopeContext, j as parseActivationCommand, k as resolveAgentRoute, l as resolveMentionGating, m as resolveOpenProviderRuntimeGroupPolicy, p as resolveDefaultGroupPolicy, q as resolveMessagePrefix, s as createReplyPrefixOptions, u as DEFAULT_GROUP_HISTORY_LIMIT, v as resolveDmGroupAccessWithLists, w as resolveInboundDebounceMs, x as dispatchReplyWithBufferedBlockDispatcher, y as resolvePinnedMainDmOwnerFromAllowlist, z as buildMentionRegexes } from "./pi-embedded-BQQa91aA.js";
12
+ import "./plugins-4Rj4OjLY.js";
13
+ import { a as logWebSelfId, c as pickWebChannel, i as getWebAuthAgeMs, m as webAuthExists, n as resolveWhatsAppAccount, r as WA_WEB_AUTH_DIR, u as readWebSelfId } from "./accounts-Tgelvk0C.js";
14
+ import "./send-6lz6rNVP.js";
15
+ import "./send-PE6cwoTe.js";
16
+ import "./deliver-DbdywYJE.js";
17
+ import "./diagnostic-Co6Kghr-.js";
18
+ import "./accounts-C9HcPI9h.js";
19
+ import "./image-ops-BuUnEOE0.js";
20
+ import { X as toLocationContext, Y as formatLocationText, et as upsertChannelPairingRequest } from "./send-BHTiZcH3.js";
21
+ import "./pi-model-discovery-Dymwdjt0.js";
22
+ import { At as resolveGroupSessionKey, K as recordSessionMetaFromInbound, W as loadSessionStore, q as updateLastRoute } from "./pi-embedded-helpers-CLXm10bV.js";
23
+ import "./chrome-DxxEKrY7.js";
24
+ import "./frontmatter-BkTfEZ93.js";
25
+ import "./skills-7ODkHQYp.js";
26
+ import "./path-alias-guards-BzvdLvTI.js";
27
+ import "./redact-COik8ET1.js";
28
+ import "./errors-xt401nuk.js";
29
+ import "./fs-safe-CTYUrIgQ.js";
30
+ import "./proxy-env-DlmzDx8x.js";
31
+ import { i as saveMediaBuffer } from "./store-D89wDcz9.js";
32
+ import "./accounts-C_lW3Ag9.js";
33
+ import { s as resolveStorePath } from "./paths-Bkr-BCxW.js";
34
+ import "./tool-images-RZdHiZcG.js";
35
+ import "./image-eT7Y-nP5.js";
36
+ import { h as registerUnhandledRejectionHandler } from "./audio-transcription-runner-gLFfz8fr.js";
37
+ import { i as getAgentScopedMediaLocalRoots } from "./fetch-DuraYswo.js";
38
+ import "./fetch-guard-DWr0d00H.js";
39
+ import "./api-key-rotation-BJpKWXy0.js";
40
+ import "./proxy-fetch-B2pEfjbR.js";
41
+ import { a as loadWebMedia, d as chunkMarkdownTextWithMode, h as resolveTextChunkLimit, m as resolveChunkMode, s as resolveMarkdownTableMode } from "./ir-B83looB-.js";
42
42
  import "./render-DW7AcFdD.js";
43
- import "./target-errors-CBI2Ga0y.js";
44
- import "./commands-registry-V1zZ5pPC.js";
45
- import "./skill-commands-CMzBZKG2.js";
43
+ import "./target-errors-mnlwhAjP.js";
44
+ import "./commands-registry-D5qXbFJn.js";
45
+ import "./skill-commands-DNqJ-kwn.js";
46
46
  import "./fetch-BfuG8uZ8.js";
47
- import { n as recordChannelActivity } from "./channel-activity-xHOMiarp.js";
48
- import { t as convertMarkdownTables } from "./tables-d739Y1xW.js";
49
- import "./send-BQERFNyo.js";
50
- import "./outbound-attachment-DBrYWX8h.js";
51
- import "./send-Bj776ESJ.js";
52
- import { r as setActiveWebListener } from "./active-listener-D1yqT1cw.js";
47
+ import { n as recordChannelActivity } from "./channel-activity-BDnjYF7B.js";
48
+ import { t as convertMarkdownTables } from "./tables-mE4cJBN2.js";
49
+ import "./send-dfu6_rgf.js";
50
+ import "./outbound-attachment-DqHlD21U.js";
51
+ import "./send-L7gRiwyd.js";
52
+ import { r as setActiveWebListener } from "./active-listener-BEdprTkn.js";
53
53
  import "./proxy-CecQTx_Z.js";
54
- import "./manager-BW_NSIMl.js";
55
- import "./query-expansion-DtLc3wjL.js";
56
- import { i as markdownToWhatsApp, r as sendReactionWhatsApp, t as sendMessageWhatsApp } from "./outbound-C2kanETZ.js";
57
- import { i as waitForWaConnection, n as formatError, r as getStatusCode, t as createWaSocket } from "./session-A4QhBRvH.js";
58
- import { t as loginWeb } from "./login-DiCctRo1.js";
54
+ import "./manager-1bvuGrNR.js";
55
+ import "./query-expansion-CX-1fS52.js";
56
+ import { i as markdownToWhatsApp, r as sendReactionWhatsApp, t as sendMessageWhatsApp } from "./outbound-ChDjtuD6.js";
57
+ import { i as waitForWaConnection, n as formatError, r as getStatusCode, t as createWaSocket } from "./session-D8ImowSs.js";
58
+ import { t as loginWeb } from "./login-CrIwcrVI.js";
59
59
  import { randomUUID } from "node:crypto";
60
60
  import { DisconnectReason, downloadMediaMessage, extractMessageContent, getContentType, isJidGroup, normalizeMessageContent } from "@whiskeysockets/baileys";
61
61
 
@@ -1,25 +1,25 @@
1
- import "./run-with-concurrency-D_ZpbgEG.js";
2
- import "./paths-C6TxBCvO.js";
3
- import "./subsystem-Di1z8l0Z.js";
4
- import "./workspace-CUVC6GX1.js";
5
- import "./logger-DMZQQtxK.js";
6
- import "./model-selection-idoqPmw0.js";
7
- import "./github-copilot-token-D13V9YBz.js";
8
- import "./legacy-names-TyzbVqa_.js";
9
- import { a as normalizeWhatsAppTarget, i as isWhatsAppGroupJid } from "./plugins-CWkRQYDj.js";
10
- import { n as resolveWhatsAppAccount } from "./accounts-yfBeCZtS.js";
11
- import "./image-ops-CehkHxmW.js";
12
- import "./path-alias-guards-DqXRZmsL.js";
13
- import "./fs-safe-0jAo_Whb.js";
14
- import "./proxy-env-Cq5gdrbj.js";
15
- import "./tool-images-2cBx1W8h.js";
16
- import "./fetch-BlJWzEP6.js";
17
- import "./fetch-guard-ChYBwfiy.js";
18
- import "./ir-DAP-B-Xw.js";
1
+ import "./run-with-concurrency-BgYfgkXT.js";
2
+ import "./paths-Cvc9EM8Y.js";
3
+ import "./subsystem-B45WV3qB.js";
4
+ import "./workspace-U-DyR64O.js";
5
+ import "./logger-BfjWMCSD.js";
6
+ import "./model-selection-Dna0Gz1k.js";
7
+ import "./github-copilot-token-BDioPmd6.js";
8
+ import "./legacy-names-DOC03BkU.js";
9
+ import { a as normalizeWhatsAppTarget, i as isWhatsAppGroupJid } from "./plugins-4Rj4OjLY.js";
10
+ import { n as resolveWhatsAppAccount } from "./accounts-Tgelvk0C.js";
11
+ import "./image-ops-BuUnEOE0.js";
12
+ import "./path-alias-guards-BzvdLvTI.js";
13
+ import "./fs-safe-CTYUrIgQ.js";
14
+ import "./proxy-env-DlmzDx8x.js";
15
+ import "./tool-images-RZdHiZcG.js";
16
+ import "./fetch-DuraYswo.js";
17
+ import "./fetch-guard-DWr0d00H.js";
18
+ import "./ir-B83looB-.js";
19
19
  import "./render-DW7AcFdD.js";
20
- import { f as readReactionParams, h as readStringParam, i as ToolAuthorizationError, l as jsonResult, n as missingTargetError, o as createActionGate } from "./target-errors-CBI2Ga0y.js";
21
- import "./tables-d739Y1xW.js";
22
- import { r as sendReactionWhatsApp } from "./outbound-C2kanETZ.js";
20
+ import { f as readReactionParams, h as readStringParam, i as ToolAuthorizationError, l as jsonResult, n as missingTargetError, o as createActionGate } from "./target-errors-mnlwhAjP.js";
21
+ import "./tables-mE4cJBN2.js";
22
+ import { r as sendReactionWhatsApp } from "./outbound-ChDjtuD6.js";
23
23
 
24
24
  //#region src/whatsapp/resolve-outbound-target.ts
25
25
  function resolveWhatsAppOutboundTarget(params) {
@@ -1,10 +1,10 @@
1
- import { d as resolveRequiredHomeDir } from "./paths-C6TxBCvO.js";
2
- import { c as danger, p as shouldLogVerbose } from "./subsystem-Di1z8l0Z.js";
3
- import { g as pathExists$1, n as logError, t as logDebug, y as resolveUserPath } from "./logger-DMZQQtxK.js";
1
+ import { d as resolveRequiredHomeDir } from "./paths-Cvc9EM8Y.js";
2
+ import { c as danger, p as shouldLogVerbose } from "./subsystem-B45WV3qB.js";
3
+ import { g as pathExists$1, n as logError, t as logDebug, y as resolveUserPath } from "./logger-BfjWMCSD.js";
4
4
  import fs from "node:fs/promises";
5
5
  import os from "node:os";
6
6
  import path from "node:path";
7
- import syncFs from "node:fs";
7
+ import fs$1 from "node:fs";
8
8
  import { promisify } from "node:util";
9
9
  import { execFile, spawn } from "node:child_process";
10
10
  import process$1 from "node:process";
@@ -560,7 +560,7 @@ function resolveBoundaryPathLexicalSync(params) {
560
560
  rootCanonicalPath: params.rootCanonicalPath,
561
561
  resolveParams: params.params,
562
562
  absolutePath: params.absolutePath,
563
- read: (cursor) => syncFs.lstatSync(cursor)
563
+ read: (cursor) => fs$1.lstatSync(cursor)
564
564
  });
565
565
  if (isPromiseLike(maybeStat)) throw new Error("Unexpected async lexical stat");
566
566
  const stat = maybeStat;
@@ -706,15 +706,15 @@ function resolvePathViaExistingAncestorSync(targetPath) {
706
706
  const normalized = path.resolve(targetPath);
707
707
  let cursor = normalized;
708
708
  const missingSuffix = [];
709
- while (!isFilesystemRoot(cursor) && !syncFs.existsSync(cursor)) {
709
+ while (!isFilesystemRoot(cursor) && !fs$1.existsSync(cursor)) {
710
710
  missingSuffix.unshift(path.basename(cursor));
711
711
  const parent = path.dirname(cursor);
712
712
  if (parent === cursor) break;
713
713
  cursor = parent;
714
714
  }
715
- if (!syncFs.existsSync(cursor)) return normalized;
715
+ if (!fs$1.existsSync(cursor)) return normalized;
716
716
  try {
717
- const resolvedAncestor = path.resolve(syncFs.realpathSync(cursor));
717
+ const resolvedAncestor = path.resolve(fs$1.realpathSync(cursor));
718
718
  if (missingSuffix.length === 0) return resolvedAncestor;
719
719
  return path.resolve(resolvedAncestor, ...missingSuffix);
720
720
  } catch {
@@ -739,7 +739,7 @@ function getPathKindSync(absolutePath, preserveFinalSymlink) {
739
739
  try {
740
740
  return {
741
741
  exists: true,
742
- kind: toResolvedKind(preserveFinalSymlink ? syncFs.lstatSync(absolutePath) : syncFs.statSync(absolutePath))
742
+ kind: toResolvedKind(preserveFinalSymlink ? fs$1.lstatSync(absolutePath) : fs$1.statSync(absolutePath))
743
743
  };
744
744
  } catch (error) {
745
745
  if (isNotFoundPathError(error)) return {
@@ -799,10 +799,10 @@ async function resolveSymlinkHopPath(symlinkPath) {
799
799
  }
800
800
  function resolveSymlinkHopPathSync(symlinkPath) {
801
801
  try {
802
- return path.resolve(syncFs.realpathSync(symlinkPath));
802
+ return path.resolve(fs$1.realpathSync(symlinkPath));
803
803
  } catch (error) {
804
804
  if (!isNotFoundPathError(error)) throw error;
805
- const linkTarget = syncFs.readlinkSync(symlinkPath);
805
+ const linkTarget = fs$1.readlinkSync(symlinkPath);
806
806
  return resolvePathViaExistingAncestorSync(path.resolve(path.dirname(symlinkPath), linkTarget));
807
807
  }
808
808
  }
@@ -828,7 +828,7 @@ function sameFileIdentity(left, right) {
828
828
  return sameFileIdentity$1(left, right);
829
829
  }
830
830
  function openVerifiedFileSync(params) {
831
- const ioFs = params.ioFs ?? syncFs;
831
+ const ioFs = params.ioFs ?? fs$1;
832
832
  const allowedType = params.allowedType ?? "file";
833
833
  const openReadFlags = ioFs.constants.O_RDONLY | (typeof ioFs.constants.O_NOFOLLOW === "number" ? ioFs.constants.O_NOFOLLOW : 0);
834
834
  let fd = null;
@@ -905,7 +905,7 @@ function canUseBoundaryFileOpen(ioFs) {
905
905
  return typeof ioFs.openSync === "function" && typeof ioFs.closeSync === "function" && typeof ioFs.fstatSync === "function" && typeof ioFs.lstatSync === "function" && typeof ioFs.realpathSync === "function" && typeof ioFs.readFileSync === "function" && typeof ioFs.constants === "object" && ioFs.constants !== null;
906
906
  }
907
907
  function openBoundaryFileSync(params) {
908
- const ioFs = params.ioFs ?? syncFs;
908
+ const ioFs = params.ioFs ?? fs$1;
909
909
  const resolved = resolveBoundaryFilePathGeneric({
910
910
  absolutePath: params.absolutePath,
911
911
  resolve: (absolutePath) => resolveBoundaryPathSync({
@@ -956,7 +956,7 @@ function finalizeBoundaryFileOpen(params) {
956
956
  });
957
957
  }
958
958
  async function openBoundaryFile(params) {
959
- const ioFs = params.ioFs ?? syncFs;
959
+ const ioFs = params.ioFs ?? fs$1;
960
960
  const maybeResolved = resolveBoundaryFilePathGeneric({
961
961
  absolutePath: params.absolutePath,
962
962
  resolve: (absolutePath) => resolveBoundaryPath({
@@ -1105,7 +1105,7 @@ function resolveNpmArgvForWindows(argv) {
1105
1105
  if (!cliName) return null;
1106
1106
  const nodeDir = path.dirname(process$1.execPath);
1107
1107
  const cliPath = path.join(nodeDir, "node_modules", "npm", "bin", cliName);
1108
- if (!syncFs.existsSync(cliPath)) return null;
1108
+ if (!fs$1.existsSync(cliPath)) return null;
1109
1109
  return [
1110
1110
  process$1.execPath,
1111
1111
  cliPath,
@@ -1307,7 +1307,7 @@ async function readPackageName(dir) {
1307
1307
  }
1308
1308
  function readPackageNameSync(dir) {
1309
1309
  try {
1310
- const raw = syncFs.readFileSync(path.join(dir, "package.json"), "utf-8");
1310
+ const raw = fs$1.readFileSync(path.join(dir, "package.json"), "utf-8");
1311
1311
  const parsed = JSON.parse(raw);
1312
1312
  return typeof parsed.name === "string" ? parsed.name : null;
1313
1313
  } catch {
@@ -1341,7 +1341,7 @@ function candidateDirsFromArgv1(argv1) {
1341
1341
  const normalized = path.resolve(argv1);
1342
1342
  const candidates = [path.dirname(normalized)];
1343
1343
  try {
1344
- const resolved = syncFs.realpathSync(normalized);
1344
+ const resolved = fs$1.realpathSync(normalized);
1345
1345
  if (resolved !== normalized) candidates.push(path.dirname(resolved));
1346
1346
  } catch {}
1347
1347
  const parts = normalized.split(path.sep);
@@ -1453,14 +1453,14 @@ async function readWorkspaceFileWithGuards(params) {
1453
1453
  const identity = workspaceFileIdentity(opened.stat, opened.path);
1454
1454
  const cached = workspaceFileCache.get(params.filePath);
1455
1455
  if (cached && cached.identity === identity) {
1456
- syncFs.closeSync(opened.fd);
1456
+ fs$1.closeSync(opened.fd);
1457
1457
  return {
1458
1458
  ok: true,
1459
1459
  content: cached.content
1460
1460
  };
1461
1461
  }
1462
1462
  try {
1463
- const content = syncFs.readFileSync(opened.fd, "utf-8");
1463
+ const content = fs$1.readFileSync(opened.fd, "utf-8");
1464
1464
  workspaceFileCache.set(params.filePath, {
1465
1465
  content,
1466
1466
  identity
@@ -1477,7 +1477,7 @@ async function readWorkspaceFileWithGuards(params) {
1477
1477
  error
1478
1478
  };
1479
1479
  } finally {
1480
- syncFs.closeSync(opened.fd);
1480
+ fs$1.closeSync(opened.fd);
1481
1481
  }
1482
1482
  }
1483
1483
  function stripFrontMatter(content) {
@@ -10,9 +10,9 @@ case `uname` in
10
10
  esac
11
11
 
12
12
  if [ -z "$NODE_PATH" ]; then
13
- export NODE_PATH="/Users/zhoujinyu/openclaws/repo/node_modules/.pnpm/openclaw@2026.3.8_@napi-rs+canvas@0.1.96_@types+express@5.0.6_hono@4.11.10_node-llama-cpp@3.16.2_typescript@5.9.3_/node_modules/openclaw/node_modules:/Users/zhoujinyu/openclaws/repo/node_modules/.pnpm/openclaw@2026.3.8_@napi-rs+canvas@0.1.96_@types+express@5.0.6_hono@4.11.10_node-llama-cpp@3.16.2_typescript@5.9.3_/node_modules:/Users/zhoujinyu/openclaws/repo/node_modules/.pnpm/node_modules"
13
+ export NODE_PATH="/Users/zhoujinyu/openclaws/repo/node_modules/.pnpm/openclaw@2026.3.8_@modelcontextprotocol+sdk@1.26.0_@cfworker+json-schema@4.1.1_zod@4.3._ab3bf890b5dcbe1d93dcb3f9d9fb24bc/node_modules/openclaw/node_modules:/Users/zhoujinyu/openclaws/repo/node_modules/.pnpm/openclaw@2026.3.8_@modelcontextprotocol+sdk@1.26.0_@cfworker+json-schema@4.1.1_zod@4.3._ab3bf890b5dcbe1d93dcb3f9d9fb24bc/node_modules:/Users/zhoujinyu/openclaws/repo/node_modules/.pnpm/node_modules"
14
14
  else
15
- export NODE_PATH="/Users/zhoujinyu/openclaws/repo/node_modules/.pnpm/openclaw@2026.3.8_@napi-rs+canvas@0.1.96_@types+express@5.0.6_hono@4.11.10_node-llama-cpp@3.16.2_typescript@5.9.3_/node_modules/openclaw/node_modules:/Users/zhoujinyu/openclaws/repo/node_modules/.pnpm/openclaw@2026.3.8_@napi-rs+canvas@0.1.96_@types+express@5.0.6_hono@4.11.10_node-llama-cpp@3.16.2_typescript@5.9.3_/node_modules:/Users/zhoujinyu/openclaws/repo/node_modules/.pnpm/node_modules:$NODE_PATH"
15
+ export NODE_PATH="/Users/zhoujinyu/openclaws/repo/node_modules/.pnpm/openclaw@2026.3.8_@modelcontextprotocol+sdk@1.26.0_@cfworker+json-schema@4.1.1_zod@4.3._ab3bf890b5dcbe1d93dcb3f9d9fb24bc/node_modules/openclaw/node_modules:/Users/zhoujinyu/openclaws/repo/node_modules/.pnpm/openclaw@2026.3.8_@modelcontextprotocol+sdk@1.26.0_@cfworker+json-schema@4.1.1_zod@4.3._ab3bf890b5dcbe1d93dcb3f9d9fb24bc/node_modules:/Users/zhoujinyu/openclaws/repo/node_modules/.pnpm/node_modules:$NODE_PATH"
16
16
  fi
17
17
  if [ -x "$basedir/node" ]; then
18
18
  exec "$basedir/node" "$basedir/../openclaw/openclaw.mjs" "$@"
@@ -10,9 +10,9 @@ case `uname` in
10
10
  esac
11
11
 
12
12
  if [ -z "$NODE_PATH" ]; then
13
- export NODE_PATH="/Users/zhoujinyu/openclaws/repo/node_modules/.pnpm/openclaw@2026.3.8_@napi-rs+canvas@0.1.96_@types+express@5.0.6_hono@4.11.10_node-llama-cpp@3.16.2_typescript@5.9.3_/node_modules/openclaw/node_modules:/Users/zhoujinyu/openclaws/repo/node_modules/.pnpm/openclaw@2026.3.8_@napi-rs+canvas@0.1.96_@types+express@5.0.6_hono@4.11.10_node-llama-cpp@3.16.2_typescript@5.9.3_/node_modules:/Users/zhoujinyu/openclaws/repo/node_modules/.pnpm/node_modules"
13
+ export NODE_PATH="/Users/zhoujinyu/openclaws/repo/node_modules/.pnpm/openclaw@2026.3.8_@modelcontextprotocol+sdk@1.26.0_@cfworker+json-schema@4.1.1_zod@4.3._ab3bf890b5dcbe1d93dcb3f9d9fb24bc/node_modules/openclaw/node_modules:/Users/zhoujinyu/openclaws/repo/node_modules/.pnpm/openclaw@2026.3.8_@modelcontextprotocol+sdk@1.26.0_@cfworker+json-schema@4.1.1_zod@4.3._ab3bf890b5dcbe1d93dcb3f9d9fb24bc/node_modules:/Users/zhoujinyu/openclaws/repo/node_modules/.pnpm/node_modules"
14
14
  else
15
- export NODE_PATH="/Users/zhoujinyu/openclaws/repo/node_modules/.pnpm/openclaw@2026.3.8_@napi-rs+canvas@0.1.96_@types+express@5.0.6_hono@4.11.10_node-llama-cpp@3.16.2_typescript@5.9.3_/node_modules/openclaw/node_modules:/Users/zhoujinyu/openclaws/repo/node_modules/.pnpm/openclaw@2026.3.8_@napi-rs+canvas@0.1.96_@types+express@5.0.6_hono@4.11.10_node-llama-cpp@3.16.2_typescript@5.9.3_/node_modules:/Users/zhoujinyu/openclaws/repo/node_modules/.pnpm/node_modules:$NODE_PATH"
15
+ export NODE_PATH="/Users/zhoujinyu/openclaws/repo/node_modules/.pnpm/openclaw@2026.3.8_@modelcontextprotocol+sdk@1.26.0_@cfworker+json-schema@4.1.1_zod@4.3._ab3bf890b5dcbe1d93dcb3f9d9fb24bc/node_modules/openclaw/node_modules:/Users/zhoujinyu/openclaws/repo/node_modules/.pnpm/openclaw@2026.3.8_@modelcontextprotocol+sdk@1.26.0_@cfworker+json-schema@4.1.1_zod@4.3._ab3bf890b5dcbe1d93dcb3f9d9fb24bc/node_modules:/Users/zhoujinyu/openclaws/repo/node_modules/.pnpm/node_modules:$NODE_PATH"
16
16
  fi
17
17
  if [ -x "$basedir/node" ]; then
18
18
  exec "$basedir/node" "$basedir/../openclaw/openclaw.mjs" "$@"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "openclaw-multi-auto",
3
- "version": "1.3.1",
3
+ "version": "1.3.3",
4
4
  "description": "Multi-channel AI gateway with extensible messaging integrations",
5
5
  "keywords": [],
6
6
  "homepage": "https://github.com/openclaw/openclaw#readme",
@@ -353,7 +353,7 @@
353
353
  "@slack/web-api": "^7.14.1",
354
354
  "@snazzah/davey": "^0.1.9",
355
355
  "@whiskeysockets/baileys": "7.0.0-rc.9",
356
- "@whiskeysockets/libsignal-node": "file:vendor/libsignal-node",
356
+ "@whiskeysockets/libsignal-node": "file:./vendor/libsignal-node",
357
357
  "ajv": "^8.18.0",
358
358
  "chalk": "^5.6.2",
359
359
  "chokidar": "^5.0.0",
@@ -371,7 +371,7 @@
371
371
  "jiti": "^2.6.1",
372
372
  "json5": "^2.2.3",
373
373
  "jszip": "^3.10.1",
374
- "libsignal": "file:vendor/libsignal-node",
374
+ "libsignal": "file:./vendor/libsignal-node",
375
375
  "linkedom": "^0.18.12",
376
376
  "long": "^5.3.2",
377
377
  "markdown-it": "^14.1.1",
@@ -433,9 +433,7 @@
433
433
  "node-domexception": "npm:@nolyfill/domexception@^1.0.28",
434
434
  "@sinclair/typebox": "0.34.48",
435
435
  "tar": "7.5.9",
436
- "tough-cookie": "4.1.3",
437
- "libsignal": "file:vendor/libsignal-node",
438
- "@whiskeysockets/libsignal-node": "file:vendor/libsignal-node"
436
+ "tough-cookie": "4.1.3"
439
437
  },
440
438
  "onlyBuiltDependencies": [
441
439
  "libsignal",
@@ -452,4 +450,4 @@
452
450
  "sharp"
453
451
  ]
454
452
  }
455
- }
453
+ }
@@ -1,6 +1,6 @@
1
1
  #!/usr/bin/env bash
2
2
  # =================================================================
3
- # OpenClaw 开发者发布工具 (publish-npm.sh) - V6 健壮修复版
3
+ # OpenClaw 开发者发布工具 (publish-npm.sh) - V8 Workspace 增强版
4
4
  # =================================================================
5
5
 
6
6
  set -e
@@ -33,7 +33,7 @@ cd "$DEP_PATH"
33
33
  # 物理删除所有 Git 标识
34
34
  rm -rf .git .github .gitignore .gitattributes 2>/dev/null || true
35
35
 
36
- # 【关键修复】抹除 package.json 中的远程元数据 (增加安全校验)
36
+ # 【核心修复】抹除远程元数据,并确保其 package.json 干净
37
37
  if [ -f "package.json" ]; then
38
38
  node -e "
39
39
  const fs = require('fs');
@@ -46,13 +46,11 @@ if [ -f "package.json" ]; then
46
46
  delete p.scripts.preinstall;
47
47
  delete p.scripts.postinstall;
48
48
  }
49
- // 强制抹除所有可能触发网络请求的声明
50
49
  fs.writeFileSync('package.json', JSON.stringify(p, null, 2));
51
50
  "
52
- # 清理 vendor 下可能存在的 lock 文件,防止其内部记录 Git 地址
53
51
  rm -f package-lock.json yarn.lock pnpm-lock.yaml 2>/dev/null || true
54
52
 
55
- # 重新安装生产依赖以确保产物完整,但不触发任何 Git 脚本
53
+ # M4 环境适配:在本地 vendor 预编译生产依赖
56
54
  npm install --production --ignore-scripts --registry=https://registry.npmmirror.com > /dev/null 2>&1
57
55
  fi
58
56
 
@@ -66,21 +64,38 @@ rm -rf node_modules 2>/dev/null || true
66
64
  cd "$ROOT_DIR"
67
65
  echo -e "${GREEN}[OK]${NC}"
68
66
 
67
+ # 【关键改动】步骤 2 之前:将 workspace 依赖转换为 file 依赖,以便物理打包
68
+ node -e "
69
+ const fs = require('fs');
70
+ const p = JSON.parse(fs.readFileSync('package.json'));
71
+ // 强制将依赖从 workspace:* 转换为物理路径
72
+ if (p.dependencies) {
73
+ Object.keys(p.dependencies).forEach(dep => {
74
+ if (p.dependencies[dep].startsWith('workspace:')) {
75
+ p.dependencies[dep] = 'file:./vendor/libsignal-node';
76
+ }
77
+ });
78
+ // 同时确保 @whiskeysockets 的命名正确指向
79
+ p.dependencies['@whiskeysockets/libsignal-node'] = 'file:./vendor/libsignal-node';
80
+ }
81
+ // 彻底清除 pnpm overrides,防止其在安装时尝试联网寻找
82
+ if (p.pnpm && p.pnpm.overrides) {
83
+ delete p.pnpm.overrides['@whiskeysockets/libsignal-node'];
84
+ delete p.pnpm.overrides['libsignal'];
85
+ }
86
+ fs.writeFileSync('package.json', JSON.stringify(p, null, 2));
87
+ "
88
+
69
89
  # 2. 准备主项目环境
70
90
  echo -ne "${YELLOW}🌐 重置主项目依赖树... ${NC}"
71
91
 
72
- # 清理环境干扰
73
- git config --global url."https://github.com/".insteadOf "git@github.com:"
74
- export GIT_CONFIG_COUNT=1
75
- export GIT_CONFIG_KEY_0="url.https://github.com/.insteadOf"
76
- export GIT_CONFIG_VALUE_0="git@github.com:"
77
-
78
- trap 'git config --global --unset url."https://github.com/".insteadOf "git@github.com:"; unset GIT_CONFIG_COUNT GIT_CONFIG_KEY_0 GIT_CONFIG_VALUE_0; rm -rf "$TEST_DIR" "$PACK_NAME" .npmignore .pnpm_error.log .load_error.log .test_install_error.log 2>/dev/null' EXIT
92
+ # 移除之前可能引起冲突的 git config 注入
93
+ trap 'rm -rf "$TEST_DIR" "$PACK_NAME" .npmignore .pnpm_error.log .load_error.log .test_install_error.log 2>/dev/null' EXIT
79
94
 
80
95
  # 彻底清理锁文件和缓存
81
96
  rm -rf dist node_modules pnpm-lock.yaml .cache 2>/dev/null || true
82
97
 
83
- # 执行安装
98
+ # 执行安装 (使用 --no-frozen-lockfile 允许 pnpm 更新 file 路径引用)
84
99
  if ! pnpm install --no-frozen-lockfile --prefer-offline --registry=https://registry.npmmirror.com > .pnpm_error.log 2>&1; then
85
100
  echo -e "${RED}[失败]${NC}"
86
101
  grep -E "ERROR|fatal|Permission denied|exit code" .pnpm_error.log | tail -n 5 || cat .pnpm_error.log
@@ -95,6 +110,7 @@ echo -e "${GREEN}[OK]${NC}"
95
110
 
96
111
  # 4. 打包并验证
97
112
  echo -ne "${YELLOW}🔍 正在生成物理压缩包... ${NC}"
113
+ # 这里的 npm pack 会因为 package.json 中已经是 file: 路径,而自动将 vendor 目录打入
98
114
  printf "node_modules/\n.git/\n" > .npmignore
99
115
  PACK_NAME=$(npm pack 2>/dev/null)
100
116
  rm .npmignore
@@ -113,11 +129,10 @@ cd "$TEST_DIR"
113
129
  tar -xzf "$PACK_NAME" > /dev/null 2>&1
114
130
  cd package
115
131
 
116
- # [重要] 模拟用户端,完全不配置任何 Git 隧道
132
+ # [重要] 完全模拟用户端,使用 npm 且不带 workspace 概念
117
133
  if ! npm install --production --no-package-lock --registry=https://registry.npmmirror.com > .test_install_error.log 2>&1; then
118
134
  echo -e "${RED}[安装失败]${NC}"
119
- echo -e "${YELLOW}--- 错误追踪 (为何还在连 Git?) ---${NC}"
120
- # 如果此时报错,查看是否是由于 vendor 内部依赖的其他包在连 Git
135
+ echo -e "${YELLOW}--- 错误追踪 ---${NC}"
121
136
  cat .test_install_error.log
122
137
  exit 1
123
138
  fi
@@ -134,6 +149,7 @@ echo -e "${GREEN}[通过]${NC}"
134
149
  # 6. 正式发布
135
150
  CUR_VERSION=$(node -e "console.log(require('$ROOT_DIR/package.json').version)")
136
151
  echo -e "${BLUE}🚀 正在发布 v${CUR_VERSION} 到 npm...${NC}"
152
+ # 发布生成的 .tgz 包,确保线上内容与刚才模拟安装的完全一致
137
153
  npm publish "$PACK_NAME" --registry=https://registry.npmjs.org --access public
138
154
 
139
155
  # 7. 镜像同步