@openclaw/matrix 2026.9.8 → 2026.10.1-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (278) hide show
  1. package/dist/.setup/{account-selection-B7axQ80R.mjs → account-selection-BDeeqwwR.mjs} +1 -1
  2. package/dist/.setup/{accounts-WkgrIxMt.mjs → accounts-C_r0UlEm.mjs} +2 -2
  3. package/dist/.setup/{approval-handler.runtime-C-pw3NvY.mjs → approval-handler.runtime-QkHLH2az.mjs} +14 -19
  4. package/dist/.setup/{approval-reactions-BrS5ECU0.mjs → approval-reactions-DhB6gNPU.mjs} +11 -25
  5. package/dist/.setup/{channel-DXenXmj0.mjs → channel-CeRXEAEP.mjs} +17 -46
  6. package/dist/.setup/{channel.runtime-BXUawOno.mjs → channel.runtime-DBQA2y1F.mjs} +6 -6
  7. package/dist/.setup/{channel.setup-DWfLaXqT.mjs → channel.setup-DC2t7_PK.mjs} +12 -26
  8. package/dist/.setup/{cli-IhZO2OEj.mjs → cli-Be8tdNw8.mjs} +24 -45
  9. package/dist/.setup/{cli-metadata-nowEgdY0.mjs → cli-metadata-CtcjBFhc.mjs} +1 -1
  10. package/dist/.setup/{client-BXATebyo.mjs → client-DY3HExqI.mjs} +3 -3
  11. package/dist/.setup/{client-bootstrap-BiHX55is.mjs → client-bootstrap-CZvJjr29.mjs} +1 -1
  12. package/dist/.setup/{client-Ccv77kwh.mjs → client-kmih04ng.mjs} +21 -40
  13. package/dist/.setup/{client-support-Bn9Bk0-H.mjs → client-support-D7BlioUb.mjs} +14 -23
  14. package/dist/.setup/{config-update-5m1Un5gJ.mjs → config-update-CZndPxNd.mjs} +29 -72
  15. package/dist/.setup/{create-client-DRZ580E3.mjs → create-client-CbJVyFDy.mjs} +5 -5
  16. package/dist/.setup/{credentials-C9qDO5-2.mjs → credentials-C2dvc_kB.mjs} +1 -1
  17. package/dist/.setup/{credentials-read-KD4o5biZ.mjs → credentials-read-CqRiEAQa.mjs} +1 -1
  18. package/dist/.setup/{crypto-runtime-DPjIDF8H.mjs → crypto-runtime-B2AjWo-i.mjs} +223 -79
  19. package/dist/.setup/{deps-CLQ4EOq7.mjs → deps-CFNl7tQo.mjs} +14 -39
  20. package/dist/.setup/{device-health-U-yoVjPw.mjs → device-health-Be60VF1w.mjs} +1 -1
  21. package/dist/.setup/{direct-management-Cn2t8n1V.mjs → direct-management-DJtQhLKH.mjs} +4 -8
  22. package/dist/.setup/{directory-live-_sw-Q7KO.mjs → directory-live-DW5UykLL.mjs} +3 -3
  23. package/dist/.setup/{doctor-contract-De6geW0h.mjs → doctor-contract-CsTNmbMa.mjs} +10 -133
  24. package/dist/.setup/{draft-stream-CdVMstpR.mjs → draft-stream-B87DfA6a.mjs} +4 -8
  25. package/dist/.setup/{encryption-guidance-B6797jNA.mjs → encryption-guidance-BEjKbiMR.mjs} +1 -1
  26. package/dist/.setup/{exec-approvals-fsiMQ1ce.mjs → exec-approvals-BLDAMyHs.mjs} +6 -19
  27. package/dist/.setup/{file-sync-store-B-9bMb_O.mjs → file-sync-store-Clc9iEdn.mjs} +3 -3
  28. package/dist/.setup/{http-client-C1XvVD3K.mjs → http-client-DfJY5Ck0.mjs} +8 -29
  29. package/dist/.setup/{inbound-dedupe-BGrMrTTu.mjs → inbound-dedupe-C-EBGY0B.mjs} +1 -1
  30. package/dist/.setup/{joined-room-encryption-TZoOKXgh.mjs → joined-room-encryption-BAD70N5n.mjs} +1 -1
  31. package/dist/.setup/logger-CXQnpXCt.mjs +44 -0
  32. package/dist/.setup/{logging-mhnFQGzB.mjs → logging-BKV8TYQq.mjs} +7 -32
  33. package/dist/.setup/{messages-Buz27pi5.mjs → messages-uCbwLRKS.mjs} +5 -8
  34. package/dist/.setup/{monitor-BBg5qgov.mjs → monitor-skIntQVG.mjs} +109 -180
  35. package/dist/.setup/{onboarding-hJaieQj5.mjs → onboarding-Cm_tOJxs.mjs} +12 -19
  36. package/dist/.setup/{outbound-C9vBijaH.mjs → outbound-CqQou3ny.mjs} +16 -22
  37. package/dist/.setup/{profile-B3DD2jYa.mjs → profile-DS0xdJAi.mjs} +11 -31
  38. package/dist/.setup/{profile-update-CmxIAd4c.mjs → profile-update-C1n8SRqH.mjs} +3 -3
  39. package/dist/.setup/{reaction-events-mnzc_JvP.mjs → reaction-events-Cqq46xsG.mjs} +5 -5
  40. package/dist/.setup/{resolve-targets-BFq3q4c9.mjs → resolve-targets-DFeU1Ww6.mjs} +2 -2
  41. package/dist/.setup/retired-state-BXUQ2I-C.mjs +91 -0
  42. package/dist/.setup/{room-info-BbTGRJcR.mjs → room-info-BPMbwe8I.mjs} +33 -50
  43. package/dist/.setup/{sdk-DmRVM0VA.mjs → sdk-CgQGkCsS.mjs} +226 -182
  44. package/dist/.setup/{send-GOF64QRc.mjs → send-B1Y2L4wj.mjs} +19 -68
  45. package/dist/.setup/{setup-bootstrap-AzalcuCW.mjs → setup-bootstrap-UNIGyKnk.mjs} +2 -2
  46. package/dist/.setup/{setup-core-BeifoeL4.mjs → setup-core-6DppLENo.mjs} +5 -5
  47. package/dist/.setup/{setup-plugin-api-Bsbdw41x.mjs → setup-plugin-api-BRs9bcp4.mjs} +1 -1
  48. package/dist/.setup/startup-verification-D00eUt74.mjs +122 -0
  49. package/dist/.setup/storage-D7agewjH.mjs +464 -0
  50. package/dist/.setup/{sync-cache-state-C6sEmvJK.mjs → sync-cache-state-C2z64uyk.mjs} +10 -24
  51. package/dist/.setup/{thread-bindings-jXu_9cHE.mjs → thread-bindings-DveHVZqN.mjs} +13 -71
  52. package/dist/.setup/{tool-actions-Ce7Okg6m.mjs → tool-actions-BqlK2ilM.mjs} +51 -73
  53. package/dist/.setup/{verification-C45rOZkM.mjs → verification-kMlFYUn0.mjs} +10 -27
  54. package/dist/api.js +5 -5
  55. package/dist/channel-plugin-api.js +1 -1
  56. package/dist/cli-metadata.js +1 -1
  57. package/dist/contract-api.js +2 -2
  58. package/dist/doctor-contract-api.js +48 -201
  59. package/dist/helper-api.js +1 -1
  60. package/dist/index.js +1 -1
  61. package/dist/plugin-entry.handlers.runtime.js +1 -1
  62. package/dist/runtime-api.js +3 -3
  63. package/dist/session-binding-contract-api.js +1 -1
  64. package/dist/setup-entry.js +1 -1
  65. package/dist/setup-plugin-api.js +1 -1
  66. package/node_modules/@openclaw/fs-safe/CHANGELOG.md +95 -0
  67. package/node_modules/@openclaw/fs-safe/README.md +70 -379
  68. package/node_modules/@openclaw/fs-safe/dist/absolute-path.js +35 -51
  69. package/node_modules/@openclaw/fs-safe/dist/advanced.d.ts +2 -0
  70. package/node_modules/@openclaw/fs-safe/dist/advanced.js +1 -0
  71. package/node_modules/@openclaw/fs-safe/dist/archive-input.js +2 -0
  72. package/node_modules/@openclaw/fs-safe/dist/archive-parser.wasm +0 -0
  73. package/node_modules/@openclaw/fs-safe/dist/archive-staging.d.ts +1 -1
  74. package/node_modules/@openclaw/fs-safe/dist/archive-staging.js +9 -10
  75. package/node_modules/@openclaw/fs-safe/dist/archive.js +2 -5
  76. package/node_modules/@openclaw/fs-safe/dist/atomic-io.d.ts +51 -0
  77. package/node_modules/@openclaw/fs-safe/dist/atomic-io.js +242 -0
  78. package/node_modules/@openclaw/fs-safe/dist/config.d.ts +1 -1
  79. package/node_modules/@openclaw/fs-safe/dist/config.js +1 -1
  80. package/node_modules/@openclaw/fs-safe/dist/copy-file-input.d.ts +1 -1
  81. package/node_modules/@openclaw/fs-safe/dist/copy-file-input.js +2 -2
  82. package/node_modules/@openclaw/fs-safe/dist/copy-tree-portable.js +2 -0
  83. package/node_modules/@openclaw/fs-safe/dist/create.js +12 -5
  84. package/node_modules/@openclaw/fs-safe/dist/directory-guard.d.ts +11 -0
  85. package/node_modules/@openclaw/fs-safe/dist/directory-guard.js +4 -7
  86. package/node_modules/@openclaw/fs-safe/dist/entry-publication-types.d.ts +55 -0
  87. package/node_modules/@openclaw/fs-safe/dist/entry-publication-types.js +1 -0
  88. package/node_modules/@openclaw/fs-safe/dist/entry-publication.d.ts +8 -0
  89. package/node_modules/@openclaw/fs-safe/dist/entry-publication.js +262 -0
  90. package/node_modules/@openclaw/fs-safe/dist/exclusive-create.d.ts +3 -0
  91. package/node_modules/@openclaw/fs-safe/dist/exclusive-create.js +22 -0
  92. package/node_modules/@openclaw/fs-safe/dist/file-cleanup.d.ts +1 -6
  93. package/node_modules/@openclaw/fs-safe/dist/file-cleanup.js +3 -6
  94. package/node_modules/@openclaw/fs-safe/dist/file-identity.js +3 -6
  95. package/node_modules/@openclaw/fs-safe/dist/file-lock-sync-root-io.js +2 -2
  96. package/node_modules/@openclaw/fs-safe/dist/file-lock-sync-root-mutation.js +9 -0
  97. package/node_modules/@openclaw/fs-safe/dist/file-lock-sync-root.js +4 -6
  98. package/node_modules/@openclaw/fs-safe/dist/file-lock-sync-stale-admission.js +1 -1
  99. package/node_modules/@openclaw/fs-safe/dist/file-lock-sync.js +8 -0
  100. package/node_modules/@openclaw/fs-safe/dist/file-store-boundary.js +2 -0
  101. package/node_modules/@openclaw/fs-safe/dist/file-store-sync-write.js +20 -18
  102. package/node_modules/@openclaw/fs-safe/dist/file-store.js +4 -10
  103. package/node_modules/@openclaw/fs-safe/dist/fs.d.ts +2 -10
  104. package/node_modules/@openclaw/fs-safe/dist/fs.js +2 -10
  105. package/node_modules/@openclaw/fs-safe/dist/guarded-mkdir.d.ts +3 -4
  106. package/node_modules/@openclaw/fs-safe/dist/guarded-mkdir.js +6 -18
  107. package/node_modules/@openclaw/fs-safe/dist/guest-dispatch-python.js +1 -1
  108. package/node_modules/@openclaw/fs-safe/dist/guest-native-python.js +0 -2
  109. package/node_modules/@openclaw/fs-safe/dist/guest.js +3 -9
  110. package/node_modules/@openclaw/fs-safe/dist/index.d.ts +1 -1
  111. package/node_modules/@openclaw/fs-safe/dist/index.js +1 -1
  112. package/node_modules/@openclaw/fs-safe/dist/json-durable-queue-directory.js +1 -5
  113. package/node_modules/@openclaw/fs-safe/dist/json.js +19 -37
  114. package/node_modules/@openclaw/fs-safe/dist/move-path.js +2 -0
  115. package/node_modules/@openclaw/fs-safe/dist/mutation-authority.d.ts +1 -0
  116. package/node_modules/@openclaw/fs-safe/dist/mutation-authority.js +9 -1
  117. package/node_modules/@openclaw/fs-safe/dist/native-binding.d.ts +47 -2
  118. package/node_modules/@openclaw/fs-safe/dist/native-config.d.ts +1 -9
  119. package/node_modules/@openclaw/fs-safe/dist/native-config.js +6 -40
  120. package/node_modules/@openclaw/fs-safe/dist/native-parent-admission.d.ts +2 -0
  121. package/node_modules/@openclaw/fs-safe/dist/native-parent-admission.js +5 -2
  122. package/node_modules/@openclaw/fs-safe/dist/native-pinned-write.js +11 -316
  123. package/node_modules/@openclaw/fs-safe/dist/native-policy-parent-windows.d.ts +7 -7
  124. package/node_modules/@openclaw/fs-safe/dist/native-policy-parent-windows.js +28 -175
  125. package/node_modules/@openclaw/fs-safe/dist/native-policy-parent.d.ts +15 -0
  126. package/node_modules/@openclaw/fs-safe/dist/native-policy-parent.js +418 -0
  127. package/node_modules/@openclaw/fs-safe/dist/native-rename-outcome.js +9 -4
  128. package/node_modules/@openclaw/fs-safe/dist/native-staged-file.js +17 -13
  129. package/node_modules/@openclaw/fs-safe/dist/native-staged-symlink.js +6 -24
  130. package/node_modules/@openclaw/fs-safe/dist/native.js +5 -1
  131. package/node_modules/@openclaw/fs-safe/dist/path-case.js +10 -9
  132. package/node_modules/@openclaw/fs-safe/dist/path-scope-lexical.js +4 -1
  133. package/node_modules/@openclaw/fs-safe/dist/path-segment-route.d.ts +1 -0
  134. package/node_modules/@openclaw/fs-safe/dist/path-segment-route.js +3 -0
  135. package/node_modules/@openclaw/fs-safe/dist/path.js +4 -1
  136. package/node_modules/@openclaw/fs-safe/dist/permissions-windows.d.ts +0 -1
  137. package/node_modules/@openclaw/fs-safe/dist/pinned-mutation-admission.js +1 -3
  138. package/node_modules/@openclaw/fs-safe/dist/pinned-write-staged.js +2 -0
  139. package/node_modules/@openclaw/fs-safe/dist/pinned-write.js +9 -10
  140. package/node_modules/@openclaw/fs-safe/dist/private-producer-handoff.js +3 -6
  141. package/node_modules/@openclaw/fs-safe/dist/publish-copy-stage.js +2 -2
  142. package/node_modules/@openclaw/fs-safe/dist/publish-file.js +4 -3
  143. package/node_modules/@openclaw/fs-safe/dist/replace-file-buffer.d.ts +3 -4
  144. package/node_modules/@openclaw/fs-safe/dist/replace-file-buffer.js +18 -32
  145. package/node_modules/@openclaw/fs-safe/dist/replace-file-copy-fallback.d.ts +5 -17
  146. package/node_modules/@openclaw/fs-safe/dist/replace-file-copy-fallback.js +92 -230
  147. package/node_modules/@openclaw/fs-safe/dist/replace-file-copy-source.d.ts +4 -15
  148. package/node_modules/@openclaw/fs-safe/dist/replace-file-copy-source.js +22 -63
  149. package/node_modules/@openclaw/fs-safe/dist/replace-file-descriptor.d.ts +9 -34
  150. package/node_modules/@openclaw/fs-safe/dist/replace-file-descriptor.js +78 -83
  151. package/node_modules/@openclaw/fs-safe/dist/replace-file-destination.d.ts +18 -20
  152. package/node_modules/@openclaw/fs-safe/dist/replace-file-destination.js +64 -98
  153. package/node_modules/@openclaw/fs-safe/dist/replace-file-temp-owner.d.ts +16 -33
  154. package/node_modules/@openclaw/fs-safe/dist/replace-file-temp-owner.js +61 -200
  155. package/node_modules/@openclaw/fs-safe/dist/replace-file-types.d.ts +1 -6
  156. package/node_modules/@openclaw/fs-safe/dist/replace-file.js +76 -216
  157. package/node_modules/@openclaw/fs-safe/dist/root-boundary.js +14 -24
  158. package/node_modules/@openclaw/fs-safe/dist/root-context.d.ts +1 -4
  159. package/node_modules/@openclaw/fs-safe/dist/root-context.js +4 -19
  160. package/node_modules/@openclaw/fs-safe/dist/root-create-native.d.ts +52 -0
  161. package/node_modules/@openclaw/fs-safe/dist/root-create-native.js +350 -0
  162. package/node_modules/@openclaw/fs-safe/dist/root-directory-list-types.d.ts +35 -0
  163. package/node_modules/@openclaw/fs-safe/dist/root-directory-list-types.js +1 -0
  164. package/node_modules/@openclaw/fs-safe/dist/root-directory-list.d.ts +2 -27
  165. package/node_modules/@openclaw/fs-safe/dist/root-directory-list.js +31 -28
  166. package/node_modules/@openclaw/fs-safe/dist/root-directory.js +1 -4
  167. package/node_modules/@openclaw/fs-safe/dist/root-errors.js +34 -0
  168. package/node_modules/@openclaw/fs-safe/dist/root-file.js +9 -21
  169. package/node_modules/@openclaw/fs-safe/dist/root-impl.js +105 -37
  170. package/node_modules/@openclaw/fs-safe/dist/root-move-noreplace.d.ts +7 -2
  171. package/node_modules/@openclaw/fs-safe/dist/root-move-noreplace.js +67 -38
  172. package/node_modules/@openclaw/fs-safe/dist/root-observed-path.d.ts +1 -1
  173. package/node_modules/@openclaw/fs-safe/dist/root-observed-path.js +0 -2
  174. package/node_modules/@openclaw/fs-safe/dist/root-options.d.ts +2 -3
  175. package/node_modules/@openclaw/fs-safe/dist/root-path-existing.js +3 -1
  176. package/node_modules/@openclaw/fs-safe/dist/root-path-stat.js +68 -85
  177. package/node_modules/@openclaw/fs-safe/dist/root-path.js +6 -1
  178. package/node_modules/@openclaw/fs-safe/dist/root-paths-lexical.d.ts +4 -0
  179. package/node_modules/@openclaw/fs-safe/dist/root-paths-lexical.js +1 -1
  180. package/node_modules/@openclaw/fs-safe/dist/root-paths.js +4 -9
  181. package/node_modules/@openclaw/fs-safe/dist/root-remove-native.d.ts +4 -0
  182. package/node_modules/@openclaw/fs-safe/dist/root-remove-native.js +311 -0
  183. package/node_modules/@openclaw/fs-safe/dist/root-remove.d.ts +11 -0
  184. package/node_modules/@openclaw/fs-safe/dist/root-remove.js +3 -1
  185. package/node_modules/@openclaw/fs-safe/dist/root-walk.d.ts +2 -2
  186. package/node_modules/@openclaw/fs-safe/dist/root-walk.js +1 -3
  187. package/node_modules/@openclaw/fs-safe/dist/root-write-admission.d.ts +3 -3
  188. package/node_modules/@openclaw/fs-safe/dist/root-write-admission.js +8 -10
  189. package/node_modules/@openclaw/fs-safe/dist/safe-path-segment.d.ts +0 -1
  190. package/node_modules/@openclaw/fs-safe/dist/safe-path-segment.js +0 -4
  191. package/node_modules/@openclaw/fs-safe/dist/secret-file.js +12 -9
  192. package/node_modules/@openclaw/fs-safe/dist/secure-temp-dir.d.ts +0 -2
  193. package/node_modules/@openclaw/fs-safe/dist/sibling-staged-file.js +2 -0
  194. package/node_modules/@openclaw/fs-safe/dist/sibling-temp.js +7 -4
  195. package/node_modules/@openclaw/fs-safe/dist/sidecar-lock-acquire.js +13 -6
  196. package/node_modules/@openclaw/fs-safe/dist/sidecar-lock-reclaim.d.ts +0 -3
  197. package/node_modules/@openclaw/fs-safe/dist/sidecar-lock-reclaim.js +5 -23
  198. package/node_modules/@openclaw/fs-safe/dist/staged-file-settlement.d.ts +2 -1
  199. package/node_modules/@openclaw/fs-safe/dist/staged-file-settlement.js +11 -6
  200. package/node_modules/@openclaw/fs-safe/dist/temp-cleanup.js +1 -8
  201. package/node_modules/@openclaw/fs-safe/dist/temp-workspace-child-admission.d.ts +1 -1
  202. package/node_modules/@openclaw/fs-safe/dist/temp-workspace-child-admission.js +2 -9
  203. package/node_modules/@openclaw/fs-safe/dist/text-atomic.d.ts +1 -6
  204. package/node_modules/@openclaw/fs-safe/dist/trash.js +6 -2
  205. package/node_modules/@openclaw/fs-safe/dist/walk.js +100 -46
  206. package/node_modules/@openclaw/fs-safe/dist/watch-hints.d.ts +7 -0
  207. package/node_modules/@openclaw/fs-safe/dist/watch-hints.js +235 -19
  208. package/node_modules/@openclaw/fs-safe/dist/watch-native.d.ts +21 -2
  209. package/node_modules/@openclaw/fs-safe/dist/watch-native.js +21 -3
  210. package/node_modules/@openclaw/fs-safe/dist/watch-rescan.d.ts +6 -0
  211. package/node_modules/@openclaw/fs-safe/dist/watch-rescan.js +111 -0
  212. package/node_modules/@openclaw/fs-safe/dist/watch-scan.d.ts +13 -0
  213. package/node_modules/@openclaw/fs-safe/dist/watch-scan.js +27 -4
  214. package/node_modules/@openclaw/fs-safe/dist/watch-stream.js +2 -0
  215. package/node_modules/@openclaw/fs-safe/dist/watch.js +131 -40
  216. package/node_modules/@openclaw/fs-safe/dist/windows-path-alias.d.ts +8 -0
  217. package/node_modules/@openclaw/fs-safe/dist/windows-path-alias.js +24 -6
  218. package/node_modules/@openclaw/fs-safe/dist/windows-path-syntax.d.ts +13 -0
  219. package/node_modules/@openclaw/fs-safe/dist/windows-path-syntax.js +51 -0
  220. package/node_modules/@openclaw/fs-safe/docs/advanced.md +4 -0
  221. package/node_modules/@openclaw/fs-safe/docs/atomic.md +4 -1
  222. package/node_modules/@openclaw/fs-safe/docs/config.md +6 -14
  223. package/node_modules/@openclaw/fs-safe/docs/contributing.md +4 -14
  224. package/node_modules/@openclaw/fs-safe/docs/durability.md +6 -29
  225. package/node_modules/@openclaw/fs-safe/docs/entry-publication.md +146 -0
  226. package/node_modules/@openclaw/fs-safe/docs/errors.md +16 -0
  227. package/node_modules/@openclaw/fs-safe/docs/file-store.md +28 -5
  228. package/node_modules/@openclaw/fs-safe/docs/index.md +2 -31
  229. package/node_modules/@openclaw/fs-safe/docs/install.md +10 -31
  230. package/node_modules/@openclaw/fs-safe/docs/json.md +1 -1
  231. package/node_modules/@openclaw/fs-safe/docs/local-roots.md +0 -1
  232. package/node_modules/@openclaw/fs-safe/docs/migrating-to-0.5.md +12 -12
  233. package/node_modules/@openclaw/fs-safe/docs/native-helper.md +35 -96
  234. package/node_modules/@openclaw/fs-safe/docs/native.md +22 -20
  235. package/node_modules/@openclaw/fs-safe/docs/path.md +1 -1
  236. package/node_modules/@openclaw/fs-safe/docs/permissions.md +1 -2
  237. package/node_modules/@openclaw/fs-safe/docs/public-api.md +1 -2
  238. package/node_modules/@openclaw/fs-safe/docs/reading.md +1 -2
  239. package/node_modules/@openclaw/fs-safe/docs/root.md +26 -184
  240. package/node_modules/@openclaw/fs-safe/docs/secret-file.md +1 -1
  241. package/node_modules/@openclaw/fs-safe/docs/security-model.md +115 -3
  242. package/node_modules/@openclaw/fs-safe/docs/store.md +2 -2
  243. package/node_modules/@openclaw/fs-safe/docs/temp.md +29 -65
  244. package/node_modules/@openclaw/fs-safe/docs/testing.md +90 -58
  245. package/node_modules/@openclaw/fs-safe/docs/types.md +3 -16
  246. package/node_modules/@openclaw/fs-safe/docs/walk.md +33 -5
  247. package/node_modules/@openclaw/fs-safe/docs/watch.md +96 -14
  248. package/node_modules/@openclaw/fs-safe/docs/writing.md +172 -16
  249. package/node_modules/@openclaw/fs-safe/package.json +10 -10
  250. package/node_modules/@openclaw/fs-safe-darwin-arm64/fs-safe-native.node +0 -0
  251. package/node_modules/@openclaw/fs-safe-darwin-arm64/package.json +1 -1
  252. package/node_modules/@openclaw/fs-safe-darwin-x64/fs-safe-native.node +0 -0
  253. package/node_modules/@openclaw/fs-safe-darwin-x64/package.json +1 -1
  254. package/node_modules/@openclaw/fs-safe-linux-arm64-gnu/fs-safe-native.node +0 -0
  255. package/node_modules/@openclaw/fs-safe-linux-arm64-gnu/package.json +1 -1
  256. package/node_modules/@openclaw/fs-safe-linux-arm64-musl/fs-safe-native.node +0 -0
  257. package/node_modules/@openclaw/fs-safe-linux-arm64-musl/package.json +1 -1
  258. package/node_modules/@openclaw/fs-safe-linux-x64-gnu/fs-safe-native.node +0 -0
  259. package/node_modules/@openclaw/fs-safe-linux-x64-gnu/package.json +1 -1
  260. package/node_modules/@openclaw/fs-safe-linux-x64-musl/fs-safe-native.node +0 -0
  261. package/node_modules/@openclaw/fs-safe-linux-x64-musl/package.json +1 -1
  262. package/node_modules/@openclaw/fs-safe-win32-x64-msvc/fs-safe-native.node +0 -0
  263. package/node_modules/@openclaw/fs-safe-win32-x64-msvc/package.json +1 -1
  264. package/openclaw.plugin.json +0 -9
  265. package/package.json +5 -5
  266. package/dist/.setup/crypto-snapshot-doctor.runtime-44FrCPR7.mjs +0 -91
  267. package/dist/.setup/doctor-DMvEBx6o.mjs +0 -49
  268. package/dist/.setup/idb-persistence-DBvfre1X.mjs +0 -227
  269. package/dist/.setup/idb-persistence-lock-D_mDu4Cf.mjs +0 -27
  270. package/dist/.setup/logger-CVv56jzH.mjs +0 -74
  271. package/dist/.setup/startup-verification-Aiy_xVdI.mjs +0 -204
  272. package/dist/.setup/storage-BXS2cB2i.mjs +0 -288
  273. package/dist/.setup/storage-metadata-BDRZ7vpX.mjs +0 -371
  274. package/node_modules/@openclaw/fs-safe/dist/watch-alias.d.ts +0 -6
  275. package/node_modules/@openclaw/fs-safe/dist/watch-alias.js +0 -88
  276. package/node_modules/@openclaw/fs-safe/docs/mutation-policy-proof.md +0 -69
  277. package/node_modules/@openclaw/fs-safe/docs/private-file-store.md +0 -68
  278. package/node_modules/@openclaw/fs-safe/docs/test-hooks.md +0 -110
@@ -72,7 +72,7 @@ function normalizeChannelAccounts(params) {
72
72
  };
73
73
  }
74
74
  /** Applies the same channel-specific doctor migration at root and account scope. */
75
- function normalizeChannelConfigEntries$1(params) {
75
+ function normalizeChannelConfigEntries(params) {
76
76
  const changes = params.changes ?? [];
77
77
  const channels = params.cfg.channels;
78
78
  const entry = asNullableRecord$1(channels?.[params.channelId]);
@@ -126,6 +126,12 @@ function createLegacyWebhookListenerDoctorContract(params) {
126
126
  };
127
127
  const prefix = `channels.${params.channelKey}`;
128
128
  return {
129
+ historicalWebhookListener: {
130
+ channelId: params.channelKey,
131
+ port: params.defaultPort,
132
+ preserveAuthoredActivation: params.preserveAuthoredActivation,
133
+ ...params.defaultHost === void 0 ? {} : { host: params.defaultHost }
134
+ },
129
135
  legacyConfigRules: [{
130
136
  path: ["channels", params.channelKey],
131
137
  message: `${prefix} webhook listeners moved to Gateway routes. Run "openclaw doctor --fix" to preserve explicitly configured listener settings as legacyWebhook.`,
@@ -138,7 +144,7 @@ function createLegacyWebhookListenerDoctorContract(params) {
138
144
  const root = asNullableRecord$1(asNullableRecord$1(cfg.channels)?.[params.channelKey]);
139
145
  const inherited = root && source(root);
140
146
  const canonicalRoot = asNullableRecord$1(root?.legacyWebhook);
141
- return normalizeChannelConfigEntries$1({
147
+ return normalizeChannelConfigEntries({
142
148
  cfg,
143
149
  channelId: params.channelKey,
144
150
  normalizeEntry: ({ entry, accountId, pathPrefix, changes }) => {
@@ -202,130 +208,7 @@ const streamingAliasMigration = (0, runtime_doctor_migrations_exports.defineChan
202
208
  },
203
209
  accountStreamingReplacesRoot: true
204
210
  });
205
- const roomAllowMigration = (0, runtime_doctor_migrations_exports.defineKeyMoveMigration)({
206
- scope: ["*"],
207
- from: ["allow"],
208
- to: ["enabled"],
209
- sourceOwn: false,
210
- match: (value) => typeof value === "boolean",
211
- targetIsSet: (value) => typeof value === "boolean",
212
- movedMessage: ({ sourcePath, targetPath, mappedValue }) => `Moved ${sourcePath} → ${targetPath} (${String(mappedValue)}).`,
213
- existingMessage: ({ sourcePath, targetPath, targetValue }) => `Moved ${sourcePath} → ${targetPath} (${String(targetValue)}).`
214
- });
215
- function hasLegacyTrustedDmPolicy(value) {
216
- const root = isRecord(value) ? value : null;
217
- if (!root) return false;
218
- return (isRecord(root.dm) ? root.dm : null)?.policy === "trusted";
219
- }
220
- function migrateLegacyTrustedDmPolicy(params) {
221
- const dm = isRecord(params.entry.dm) ? params.entry.dm : null;
222
- if (!dm || dm.policy !== "trusted") return {
223
- entry: params.entry,
224
- changed: false
225
- };
226
- const allowFromRaw = dm.allowFrom;
227
- const allowFromEntries = Array.isArray(allowFromRaw) ? allowFromRaw.filter((entry) => typeof entry === "string" && entry.trim().length > 0).length : 0;
228
- const nextPolicy = allowFromEntries > 0 ? "allowlist" : "pairing";
229
- const nextDm = {
230
- ...dm,
231
- policy: nextPolicy
232
- };
233
- params.changes.push(`Migrated ${params.pathPrefix}.dm.policy "trusted" → "${nextPolicy}" (legacy alias removed; ${allowFromEntries > 0 ? `preserved ${allowFromEntries} ${params.pathPrefix}.dm.allowFrom ${allowFromEntries === 1 ? "entry" : "entries"}` : "no allowFrom entries present, defaulting to pairing for safety"}).`);
234
- return {
235
- entry: {
236
- ...params.entry,
237
- dm: nextDm
238
- },
239
- changed: true
240
- };
241
- }
242
- const legacyConfigRules = [
243
- ...streamingAliasMigration.legacyConfigRules,
244
- {
245
- path: ["channels", "matrix"],
246
- message: "channels.matrix.allowPrivateNetwork is legacy; use channels.matrix.network.dangerouslyAllowPrivateNetwork instead. Run \"openclaw doctor --fix\".",
247
- match: (value) => (0, runtime_doctor_migrations_exports.hasLegacyFlatAllowPrivateNetworkAlias)(isRecord(value) ? value : {})
248
- },
249
- {
250
- path: [
251
- "channels",
252
- "matrix",
253
- "accounts"
254
- ],
255
- message: "channels.matrix.accounts.<id>.allowPrivateNetwork is legacy; use channels.matrix.accounts.<id>.network.dangerouslyAllowPrivateNetwork instead. Run \"openclaw doctor --fix\".",
256
- match: (value) => (0, runtime_doctor_migrations_exports.hasLegacyAccountStreamingAliases)(value, (account) => (0, runtime_doctor_migrations_exports.hasLegacyFlatAllowPrivateNetworkAlias)(isRecord(account) ? account : {}))
257
- },
258
- {
259
- path: [
260
- "channels",
261
- "matrix",
262
- "groups"
263
- ],
264
- message: "channels.matrix.groups.<room>.allow is legacy; use channels.matrix.groups.<room>.enabled instead. Run \"openclaw doctor --fix\".",
265
- match: roomAllowMigration.hasLegacy
266
- },
267
- {
268
- path: [
269
- "channels",
270
- "matrix",
271
- "rooms"
272
- ],
273
- message: "channels.matrix.rooms.<room>.allow is legacy; use channels.matrix.rooms.<room>.enabled instead. Run \"openclaw doctor --fix\".",
274
- match: roomAllowMigration.hasLegacy
275
- },
276
- {
277
- path: [
278
- "channels",
279
- "matrix",
280
- "accounts"
281
- ],
282
- message: "channels.matrix.accounts.<id>.{groups,rooms}.<room>.allow is legacy; use channels.matrix.accounts.<id>.{groups,rooms}.<room>.enabled instead. Run \"openclaw doctor --fix\".",
283
- match: (value) => (0, runtime_doctor_migrations_exports.hasLegacyAccountStreamingAliases)(value, (account) => {
284
- if (!isRecord(account)) return false;
285
- return roomAllowMigration.hasLegacy(account.groups) || roomAllowMigration.hasLegacy(account.rooms);
286
- })
287
- },
288
- {
289
- path: ["channels", "matrix"],
290
- message: "channels.matrix.dm.policy \"trusted\" is legacy; use \"allowlist\" (with allowFrom entries) or \"pairing\" instead. Run \"openclaw doctor --fix\".",
291
- match: hasLegacyTrustedDmPolicy
292
- },
293
- {
294
- path: [
295
- "channels",
296
- "matrix",
297
- "accounts"
298
- ],
299
- message: "channels.matrix.accounts.<id>.dm.policy \"trusted\" is legacy; use \"allowlist\" (with allowFrom entries) or \"pairing\" instead. Run \"openclaw doctor --fix\".",
300
- match: (value) => (0, runtime_doctor_migrations_exports.hasLegacyAccountStreamingAliases)(value, hasLegacyTrustedDmPolicy)
301
- }
302
- ];
303
- function normalizeMatrixEntry(params) {
304
- const network = (0, runtime_doctor_migrations_exports.migrateLegacyFlatAllowPrivateNetworkAlias)(params);
305
- const dmPolicy = migrateLegacyTrustedDmPolicy({
306
- ...params,
307
- entry: network.entry
308
- });
309
- let entry = dmPolicy.entry;
310
- let changed = network.changed || dmPolicy.changed;
311
- for (const section of ["groups", "rooms"]) {
312
- const roomMap = isRecord(entry[section]) ? entry[section] : null;
313
- if (!roomMap) continue;
314
- const normalized = roomAllowMigration.normalize({
315
- entry: roomMap,
316
- pathPrefix: `${params.pathPrefix}.${section}`,
317
- changes: params.changes
318
- });
319
- if (normalized.changed) {
320
- entry = Object.assign({}, entry, { [section]: normalized.entry });
321
- changed = true;
322
- }
323
- }
324
- return {
325
- entry,
326
- changed
327
- };
328
- }
211
+ const legacyConfigRules = streamingAliasMigration.legacyConfigRules;
329
212
  function normalizeCompatibilityConfig({ cfg }) {
330
213
  const changes = [];
331
214
  const withoutJunkStreamMode = (0, runtime_doctor_migrations_exports.stripRetiredChannelKeys)({
@@ -335,16 +218,10 @@ function normalizeCompatibilityConfig({ cfg }) {
335
218
  scope: "root-and-accounts",
336
219
  onRemove: ({ key, pathPrefix }) => changes.push(`Removed ${pathPrefix}.${key} (never read by the Matrix runtime).`)
337
220
  }).config;
338
- const aliases = streamingAliasMigration.normalizeChannelConfig({
221
+ return streamingAliasMigration.normalizeChannelConfig({
339
222
  cfg: withoutJunkStreamMode,
340
223
  changes
341
224
  });
342
- return (0, runtime_doctor_migrations_exports.normalizeChannelConfigEntries)({
343
- cfg: aliases.config,
344
- channelId: "matrix",
345
- changes,
346
- normalizeEntry: normalizeMatrixEntry
347
- });
348
225
  }
349
226
  //#endregion
350
227
  export { __exportAll as i, normalizeCompatibilityConfig as n, runtime_doctor_migrations_exports as r, legacyConfigRules as t };
@@ -1,5 +1,5 @@
1
- import { _ as MsgType } from "./direct-management-Cn2t8n1V.mjs";
2
- import { a as sendSingleTextMessageMatrix, m as prepareMatrixSingleText, t as editMessageMatrix } from "./send-GOF64QRc.mjs";
1
+ import { _ as MsgType } from "./direct-management-DJtQhLKH.mjs";
2
+ import { a as sendSingleTextMessageMatrix, f as prepareMatrixSingleText, t as editMessageMatrix } from "./send-B1Y2L4wj.mjs";
3
3
  import { createFinalizableDraftLifecycle } from "openclaw/plugin-sdk/channel-outbound";
4
4
  //#region extensions/matrix/src/matrix/draft-stream.ts
5
5
  const DEFAULT_THROTTLE_MS = 1e3;
@@ -69,7 +69,7 @@ function createMatrixDraftStream(params) {
69
69
  return false;
70
70
  }
71
71
  };
72
- const { loop, update, stop: stopDraft, discardPending, seal, clear, retire, cleanupPending } = createFinalizableDraftLifecycle({
72
+ const { loop, update, stop: stopDraft, discardPending, seal, clear, retire, cleanupPending, resetMessage } = createFinalizableDraftLifecycle({
73
73
  throttleMs: DEFAULT_THROTTLE_MS,
74
74
  state: streamState,
75
75
  sendOrEditStreamMessage: sendOrEdit,
@@ -110,14 +110,10 @@ function createMatrixDraftStream(params) {
110
110
  return currentEventId;
111
111
  };
112
112
  const resetCurrentMessage = () => {
113
- currentEventId = void 0;
114
- lastSentText = "";
115
- lastSentContent = "";
113
+ resetMessage();
116
114
  sendFailed = false;
117
115
  finalizeInPlaceBlocked = false;
118
116
  liveFinalized = false;
119
- loop.resetPending();
120
- loop.resetThrottleWindow();
121
117
  };
122
118
  const reset = () => {
123
119
  replyToId = params.preserveReplyId ? params.replyToId : void 0;
@@ -1,4 +1,4 @@
1
- import { s as resolveMatrixDefaultOrOnlyAccountId } from "./account-selection-B7axQ80R.mjs";
1
+ import { s as resolveMatrixDefaultOrOnlyAccountId } from "./account-selection-BDeeqwwR.mjs";
2
2
  import { t as resolveMatrixConfigFieldPath } from "./config-paths-CnREYb1Y.mjs";
3
3
  import { normalizeOptionalAccountId } from "openclaw/plugin-sdk/account-id";
4
4
  //#region extensions/matrix/src/matrix/encryption-guidance.ts
@@ -1,6 +1,6 @@
1
1
  import { a as resolveMatrixAccountConfig } from "./account-config-CRsKoMqJ.mjs";
2
- import { i as resolveMatrixAccount, r as resolveDefaultMatrixAccountId } from "./accounts-WkgrIxMt.mjs";
3
- import { i as normalizeMatrixUserId } from "./channel.setup-DWfLaXqT.mjs";
2
+ import { i as resolveMatrixAccount, r as resolveDefaultMatrixAccountId } from "./accounts-C_r0UlEm.mjs";
3
+ import { i as normalizeMatrixUserId } from "./channel.setup-DC2t7_PK.mjs";
4
4
  import { doesApprovalRequestSelectChannelAccount } from "openclaw/plugin-sdk/approval-native-runtime";
5
5
  import { createChannelApprovalAuth, resolveApprovalApprovers } from "openclaw/plugin-sdk/approval-auth-runtime";
6
6
  import { createChannelExecApprovalProfile, getExecApprovalReplyMetadata, isChannelExecApprovalClientEnabledFromConfig, isChannelExecApprovalTargetRecipient, matchesApprovalRequestFilters } from "openclaw/plugin-sdk/approval-client-runtime";
@@ -41,20 +41,13 @@ function isMatrixExecApprovalAccountEligible(params) {
41
41
  const account = resolveMatrixAccount(params);
42
42
  if (!account.enabled || !account.configured) return false;
43
43
  const config = resolveMatrixExecApprovalConfig(params);
44
- const filters = config?.enabled ? {
45
- agentFilter: config.agentFilter,
46
- sessionFilter: config.sessionFilter
47
- } : {
48
- agentFilter: void 0,
49
- sessionFilter: void 0
50
- };
51
44
  return isChannelExecApprovalClientEnabledFromConfig({
52
45
  enabled: config?.enabled,
53
46
  approverCount: getMatrixApprovalApprovers(params).length
54
47
  }) && matchesApprovalRequestFilters({
55
48
  request: params.request.request,
56
- agentFilter: filters.agentFilter,
57
- sessionFilter: filters.sessionFilter
49
+ agentFilter: config?.agentFilter,
50
+ sessionFilter: config?.sessionFilter
58
51
  });
59
52
  }
60
53
  function matchesMatrixRequestAccount(params) {
@@ -127,17 +120,11 @@ function isMatrixAnyApprovalClientEnabled(params) {
127
120
  }
128
121
  function shouldHandleMatrixApprovalRequest(params) {
129
122
  if (params.approvalKind !== "exec" && params.approvalKind !== "plugin" && params.approvalKind !== "system-agent") return false;
130
- if (!matchesMatrixRequestAccount({
131
- ...params,
132
- approvalKind: params.approvalKind
133
- })) return false;
123
+ if (!matchesMatrixRequestAccount(params)) return false;
134
124
  const config = resolveMatrixExecApprovalConfig(params);
135
125
  if (!isChannelExecApprovalClientEnabledFromConfig({
136
126
  enabled: config?.enabled,
137
- approverCount: getMatrixApprovalApprovers({
138
- ...params,
139
- approvalKind: params.approvalKind
140
- }).length
127
+ approverCount: getMatrixApprovalApprovers(params).length
141
128
  })) return false;
142
129
  return matchesApprovalRequestFilters({
143
130
  request: params.request.request,
@@ -1,7 +1,7 @@
1
1
  import { t as getMatrixRuntime } from "./runtime-1kn1P6io.mjs";
2
- import { t as claimCurrentTokenStorageState } from "./storage-BXS2cB2i.mjs";
3
- import { c as writeMatrixSyncCacheStateToStore, i as openMatrixSyncCacheStoreOptions, n as deleteMatrixSyncCacheStateFromStore, o as readPersistedStoreFromStore } from "./sync-cache-state-C6sEmvJK.mjs";
4
- import { n as LogService } from "./logger-CVv56jzH.mjs";
2
+ import { t as claimCurrentTokenStorageState } from "./storage-D7agewjH.mjs";
3
+ import { a as readPersistedStoreFromStore, r as openMatrixSyncCacheStoreOptions, s as writeMatrixSyncCacheStateToStore, t as deleteMatrixSyncCacheStateFromStore } from "./sync-cache-state-C2z64uyk.mjs";
4
+ import { t as LogService } from "./logger-CXQnpXCt.mjs";
5
5
  import { MemoryStore, SyncAccumulator } from "matrix-js-sdk/lib/matrix.js";
6
6
  import { createAsyncLock } from "openclaw/plugin-sdk/async-lock-runtime";
7
7
  //#region extensions/matrix/src/matrix/client/file-sync-store.ts
@@ -152,23 +152,11 @@ async function fetchWithMatrixGuardedRedirects(params) {
152
152
  finalUrl: currentUrl.toString()
153
153
  };
154
154
  const location = response.headers.get("location");
155
- if (!location) {
156
- cleanup();
157
- await closeDispatcher(dispatcher);
158
- throw new Error(`Matrix redirect missing location header (${currentUrl.toString()})`);
159
- }
155
+ if (!location) throw new Error(`Matrix redirect missing location header (${currentUrl.toString()})`);
160
156
  const nextUrl = new URL(location, currentUrl);
161
- if (nextUrl.protocol !== currentUrl.protocol) {
162
- cleanup();
163
- await closeDispatcher(dispatcher);
164
- throw new Error(`Blocked cross-protocol redirect (${currentUrl.protocol} -> ${nextUrl.protocol})`);
165
- }
157
+ if (nextUrl.protocol !== currentUrl.protocol) throw new Error(`Blocked cross-protocol redirect (${currentUrl.protocol} -> ${nextUrl.protocol})`);
166
158
  const nextUrlString = nextUrl.toString();
167
- if (visited.has(nextUrlString)) {
168
- cleanup();
169
- await closeDispatcher(dispatcher);
170
- throw new Error("Redirect loop detected");
171
- }
159
+ if (visited.has(nextUrlString)) throw new Error("Redirect loop detected");
172
160
  visited.add(nextUrlString);
173
161
  if (nextUrl.origin !== currentUrl.origin) {
174
162
  headers = new Headers(headers);
@@ -316,24 +304,15 @@ async function performMatrixRequest(params) {
316
304
  //#region extensions/matrix/src/matrix/sdk/http-client.ts
317
305
  var MatrixAuthedHttpClient = class {
318
306
  constructor(params) {
319
- this.homeserver = params.homeserver;
320
- this.accessToken = params.accessToken;
321
- this.ssrfPolicy = params.ssrfPolicy;
322
- this.dispatcherPolicy = params.dispatcherPolicy;
323
- this.captureRequestAuthority = params.captureRequestAuthority;
324
- this.captureSendCurrentness = params.captureSendCurrentness;
325
- this.signal = params.signal;
307
+ this.params = { ...params };
326
308
  }
327
309
  async request(params) {
310
+ const { captureRequestAuthority, captureSendCurrentness, ...auth } = this.params;
328
311
  const result = await performMatrixRequest({
329
312
  ...params,
330
- homeserver: this.homeserver,
331
- accessToken: this.accessToken,
332
- ssrfPolicy: this.ssrfPolicy,
333
- dispatcherPolicy: this.dispatcherPolicy,
334
- assertCurrent: this.captureRequestAuthority?.(),
335
- assertSendCurrent: this.captureSendCurrentness?.(),
336
- signal: this.signal
313
+ ...auth,
314
+ assertCurrent: captureRequestAuthority?.call(this),
315
+ assertSendCurrent: captureSendCurrentness?.call(this)
337
316
  });
338
317
  if (!result.response.ok) throw buildHttpError(result.response.status, result.text);
339
318
  return result;
@@ -1,4 +1,4 @@
1
- import { n as LogService } from "./logger-CVv56jzH.mjs";
1
+ import { t as LogService } from "./logger-CXQnpXCt.mjs";
2
2
  import { createChannelReplayGuard, resolvePersistentDedupePluginStateNamespace } from "openclaw/plugin-sdk/persistent-dedupe";
3
3
  //#region extensions/matrix/src/matrix/monitor/inbound-dedupe.ts
4
4
  const MATRIX_INBOUND_DEDUPE_PLUGIN_ID = "matrix";
@@ -1,4 +1,4 @@
1
- import { n as LogService } from "./logger-CVv56jzH.mjs";
1
+ import { t as LogService } from "./logger-CXQnpXCt.mjs";
2
2
  import { EventType, MatrixError, MatrixEvent } from "matrix-js-sdk/lib/matrix.js";
3
3
  import { ConnectionError, HTTPError, Method } from "matrix-js-sdk/lib/http-api/index.js";
4
4
  import { RustCrypto } from "matrix-js-sdk/lib/rust-crypto/rust-crypto.js";
@@ -0,0 +1,44 @@
1
+ import { t as getMatrixRuntime } from "./runtime-1kn1P6io.mjs";
2
+ import { format } from "node:util";
3
+ import { redactSensitiveText } from "openclaw/plugin-sdk/security-runtime";
4
+ //#region extensions/matrix/src/matrix/sdk/logger.ts
5
+ function noop() {}
6
+ let forceConsoleLogging = false;
7
+ let serviceQuiet = false;
8
+ function setMatrixConsoleLogging(enabled) {
9
+ forceConsoleLogging = enabled;
10
+ }
11
+ function setMatrixLogServiceQuiet(quiet) {
12
+ serviceQuiet = quiet;
13
+ }
14
+ function resolveRuntimeLogger(module) {
15
+ if (forceConsoleLogging) return null;
16
+ try {
17
+ return getMatrixRuntime().logging.getChildLogger({ module: `matrix:${module}` });
18
+ } catch {
19
+ return null;
20
+ }
21
+ }
22
+ function formatMessage(module, messageOrObject) {
23
+ if (messageOrObject.length === 0) return `[${module}]`;
24
+ return redactSensitiveText(`[${module}] ${format(...messageOrObject)}`);
25
+ }
26
+ function emitMatrixLog(level, module, messageOrObject) {
27
+ const runtimeLogger = resolveRuntimeLogger(module);
28
+ const message = formatMessage(module, messageOrObject);
29
+ if (runtimeLogger) {
30
+ if (level === "debug") runtimeLogger.debug?.(message);
31
+ else runtimeLogger[level](message);
32
+ } else console[level](message);
33
+ }
34
+ function emitServiceLog(level, module, ...messageOrObject) {
35
+ if (serviceQuiet) return;
36
+ emitMatrixLog(level, module, messageOrObject);
37
+ }
38
+ const LogService = {
39
+ debug: emitServiceLog.bind(null, "debug"),
40
+ info: emitServiceLog.bind(null, "info"),
41
+ warn: emitServiceLog.bind(null, "warn")
42
+ };
43
+ //#endregion
44
+ export { setMatrixLogServiceQuiet as a, setMatrixConsoleLogging as i, emitMatrixLog as n, noop as r, LogService as t };
@@ -1,16 +1,14 @@
1
- import { i as __exportAll } from "./doctor-contract-De6geW0h.mjs";
2
- import { i as setMatrixConsoleLogging, n as LogService, t as ConsoleLogger } from "./logger-CVv56jzH.mjs";
1
+ import { i as __exportAll } from "./doctor-contract-CsTNmbMa.mjs";
2
+ import { a as setMatrixLogServiceQuiet, n as emitMatrixLog } from "./logger-CXQnpXCt.mjs";
3
3
  import { logger } from "matrix-js-sdk/lib/logger.js";
4
4
  //#region extensions/matrix/src/matrix/client/logging.ts
5
5
  var logging_exports = /* @__PURE__ */ __exportAll({
6
6
  createMatrixJsSdkClientLogger: () => createMatrixJsSdkClientLogger,
7
7
  ensureMatrixSdkLoggingConfigured: () => ensureMatrixSdkLoggingConfigured,
8
- setMatrixSdkConsoleLogging: () => setMatrixSdkConsoleLogging,
9
8
  setMatrixSdkLogMode: () => setMatrixSdkLogMode
10
9
  });
11
10
  let matrixSdkLoggingConfigured = false;
12
11
  let matrixSdkLogMode = "default";
13
- const matrixSdkBaseLogger = new ConsoleLogger();
14
12
  let matrixJsSdkRootLoggerSnapshot = null;
15
13
  function shouldSuppressMatrixHttpNotFound(module, messageOrObject) {
16
14
  if (!module.includes("MatrixHttpClient")) return false;
@@ -28,32 +26,9 @@ function setMatrixSdkLogMode(mode) {
28
26
  if (!matrixSdkLoggingConfigured) return;
29
27
  applyMatrixSdkLogger();
30
28
  }
31
- function setMatrixSdkConsoleLogging(enabled) {
32
- setMatrixConsoleLogging(enabled);
33
- }
34
29
  function applyMatrixSdkLogger() {
35
- if (matrixSdkLogMode === "quiet") {
36
- setMatrixJsSdkRootLoggerLevel("silent");
37
- LogService.setLogger({
38
- trace: () => {},
39
- debug: () => {},
40
- info: () => {},
41
- warn: () => {},
42
- error: () => {}
43
- });
44
- return;
45
- }
46
- setMatrixJsSdkRootLoggerLevel("debug");
47
- LogService.setLogger({
48
- trace: (module, ...messageOrObject) => matrixSdkBaseLogger.trace(module, ...messageOrObject),
49
- debug: (module, ...messageOrObject) => matrixSdkBaseLogger.debug(module, ...messageOrObject),
50
- info: (module, ...messageOrObject) => matrixSdkBaseLogger.info(module, ...messageOrObject),
51
- warn: (module, ...messageOrObject) => matrixSdkBaseLogger.warn(module, ...messageOrObject),
52
- error: (module, ...messageOrObject) => {
53
- if (shouldSuppressMatrixHttpNotFound(module, messageOrObject)) return;
54
- matrixSdkBaseLogger.error(module, ...messageOrObject);
55
- }
56
- });
30
+ setMatrixJsSdkRootLoggerLevel(matrixSdkLogMode === "quiet" ? "silent" : "debug");
31
+ setMatrixLogServiceQuiet(matrixSdkLogMode === "quiet");
57
32
  }
58
33
  function setMatrixJsSdkRootLoggerLevel(level) {
59
34
  const logger$1 = logger;
@@ -75,10 +50,10 @@ function setMatrixJsSdkRootLoggerLevel(level) {
75
50
  function createMatrixJsSdkClientLogger(prefix = "matrix") {
76
51
  const log = (method, ...messageOrObject) => {
77
52
  if (matrixSdkLogMode === "quiet") return;
78
- matrixSdkBaseLogger[method](prefix, ...messageOrObject);
53
+ emitMatrixLog(method, prefix, messageOrObject);
79
54
  };
80
55
  return {
81
- trace: (...messageOrObject) => log("trace", ...messageOrObject),
56
+ trace: (...messageOrObject) => log("debug", ...messageOrObject),
82
57
  debug: (...messageOrObject) => log("debug", ...messageOrObject),
83
58
  info: (...messageOrObject) => log("info", ...messageOrObject),
84
59
  warn: (...messageOrObject) => log("warn", ...messageOrObject),
@@ -93,4 +68,4 @@ function createMatrixJsSdkClientLogger(prefix = "matrix") {
93
68
  };
94
69
  }
95
70
  //#endregion
96
- export { setMatrixSdkLogMode as i, logging_exports as n, setMatrixSdkConsoleLogging as r, createMatrixJsSdkClientLogger as t };
71
+ export { logging_exports as n, setMatrixSdkLogMode as r, createMatrixJsSdkClientLogger as t };
@@ -1,6 +1,6 @@
1
1
  import { a as MATRIX_REACTION_EVENT_TYPE } from "./send-currentness-C2rMVVIQ.mjs";
2
- import { C as resolvePollReferenceEventId, S as parsePollStartContent, _ as formatPollAsText, b as isPollStartType, f as resolveMatrixMessageAttachment, g as buildPollResultsSummary, p as resolveMatrixReplacementContent, r as sendMessageMatrix, t as editMessageMatrix, v as formatPollResultsAsText, y as isPollEventType } from "./send-GOF64QRc.mjs";
3
- import { r as withResolvedRoomAction } from "./client-BXATebyo.mjs";
2
+ import { _ as isPollEventType, b as resolvePollReferenceEventId, d as resolveMatrixReplacementContent, g as formatPollResultsAsText, m as buildPollResultsSummary, r as sendMessageMatrix, t as editMessageMatrix, u as resolveMatrixMessageAttachment, v as isPollStartType, y as parsePollStart } from "./send-B1Y2L4wj.mjs";
3
+ import { r as withResolvedRoomAction } from "./client-DY3HExqI.mjs";
4
4
  import { n as isMatrixNotFoundError } from "./errors-DKVS3_DO.mjs";
5
5
  import { asNullableObjectRecord, normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
6
6
  //#region extensions/matrix/src/matrix/poll-summary.ts
@@ -31,22 +31,19 @@ async function fetchMatrixPollSnapshot(client, roomId, event) {
31
31
  const rootEvent = isPollStartType(event.type) ? event : await client.getEvent(roomId, pollEventId);
32
32
  if (!isPollStartType(rootEvent.type)) return null;
33
33
  const pollStartContent = rootEvent.content;
34
- const pollSummary = parsePollStartContent(pollStartContent);
34
+ const pollSummary = parsePollStart(pollStartContent);
35
35
  if (!pollSummary) return null;
36
36
  const relationEvents = await readAllPollRelations(client, roomId, pollEventId);
37
37
  const pollResults = buildPollResultsSummary({
38
- pollEventId,
39
- roomId,
40
38
  sender: rootEvent.sender,
41
- senderName: rootEvent.sender,
42
- content: pollStartContent,
39
+ poll: pollSummary,
43
40
  relationEvents
44
41
  });
45
42
  return {
46
43
  pollEventId,
47
44
  triggerEvent: event,
48
45
  rootEvent,
49
- text: pollResults ? formatPollResultsAsText(pollResults) : formatPollAsText(pollSummary)
46
+ text: formatPollResultsAsText(pollResults)
50
47
  };
51
48
  }
52
49
  async function fetchMatrixPollMessageSummary(client, roomId, event) {