@openclaw/matrix 2026.10.5-beta.3 → 2026.10.10-beta.1

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 (313) hide show
  1. package/dist/.setup/{approval-handler.runtime-rxLn8CbP.mjs → approval-handler.runtime-CsqMdj7h.mjs} +9 -9
  2. package/dist/.setup/{approval-reactions-DhB6gNPU.mjs → approval-reactions-D2pEUrFS.mjs} +1 -1
  3. package/dist/.setup/{channel-BcwGspPw.mjs → channel-Dw4_imdd.mjs} +132 -111
  4. package/dist/.setup/{channel.runtime-CUc6rbu1.mjs → channel.runtime-2EEtIlyu.mjs} +6 -6
  5. package/dist/.setup/{channel.setup-CwuYD_CT.mjs → channel.setup-Be8TYKMA.mjs} +8 -3
  6. package/dist/.setup/{cli-mbL9jCro.mjs → cli-CEmWh7wh.mjs} +99 -37
  7. package/dist/.setup/{cli-metadata-6MOGuyHq.mjs → cli-metadata-CBLGwJT6.mjs} +1 -1
  8. package/dist/.setup/{client-BlTvpEWC.mjs → client-BKiiI29H.mjs} +3 -3
  9. package/dist/.setup/{client-vPPbaxNp.mjs → client-C4Gibhzl.mjs} +94 -120
  10. package/dist/.setup/{client-bootstrap-D05xy1HB.mjs → client-bootstrap-kOIDV4z_.mjs} +3 -3
  11. package/dist/.setup/{create-client-CroC4BVc.mjs → create-client-BS8UYx6N.mjs} +23 -15
  12. package/dist/.setup/{credentials-Bf9PQ7xs.mjs → credentials-CPnJZaZB.mjs} +3 -5
  13. package/dist/.setup/{credentials-read-CqRiEAQa.mjs → credentials-read-D2ULV55A.mjs} +12 -4
  14. package/dist/.setup/{crypto-runtime-CpJ0b7vY.mjs → crypto-runtime-D8yY7kjD.mjs} +168 -290
  15. package/dist/.setup/crypto-state-store-D4wrCvFs.mjs +185 -0
  16. package/dist/.setup/crypto-store-ownership-Z_Y5WRKr.mjs +174 -0
  17. package/dist/.setup/crypto-unsafe-state-doctor-C8szCYmf.mjs +54 -0
  18. package/dist/.setup/{directory-live-B1WbfSHo.mjs → directory-live-BpSz-FQB.mjs} +1 -1
  19. package/dist/.setup/{draft-stream-Bdrh7dRt.mjs → draft-stream-DYf0th1n.mjs} +1 -1
  20. package/dist/.setup/{exec-approvals-BgNWWJg1.mjs → exec-approvals-DaM-5OA5.mjs} +33 -43
  21. package/dist/.setup/{file-sync-store-BdKx_gMi.mjs → file-sync-store-CUH8EAJq.mjs} +3 -3
  22. package/dist/.setup/idb-persistence-BHTYPRe_.mjs +233 -0
  23. package/dist/.setup/idb-persistence-lock-Bh3ZLIsE.mjs +14 -0
  24. package/dist/.setup/{messages-B1CZqU8u.mjs → messages-_XHVg3do.mjs} +3 -18
  25. package/dist/.setup/{monitor-Dk_fQL1k.mjs → monitor-DRUSJ_Ev.mjs} +31 -39
  26. package/dist/.setup/{onboarding-CrSexor_.mjs → onboarding-CK9Ksgio.mjs} +3 -3
  27. package/dist/.setup/{outbound-LR3SqPIq.mjs → outbound-D5Z_4FBg.mjs} +28 -36
  28. package/dist/.setup/{profile-update-C7bjaGR6.mjs → profile-update--Pf3jCXD.mjs} +2 -2
  29. package/dist/.setup/{reaction-events-CTSvOlXO.mjs → reaction-events-BG9spedG.mjs} +6 -6
  30. package/dist/.setup/{resolve-targets-BVVbbvP6.mjs → resolve-targets-BJ5sIKeM.mjs} +1 -1
  31. package/dist/.setup/{retired-state-DW5pLH05.mjs → retired-state-DOCruzWd.mjs} +10 -10
  32. package/dist/.setup/{room-info-9Uqlpt1V.mjs → room-info-BE7bbX_c.mjs} +3 -3
  33. package/dist/.setup/runtime-setter-api-i2MOXoT3.mjs +2 -0
  34. package/dist/.setup/{sdk-Cfc6m7fY.mjs → sdk-ByU8So5S.mjs} +242 -139
  35. package/dist/.setup/secret-contract-DxyzKSzf.mjs +90 -0
  36. package/dist/.setup/secret-contract-api-Dukgvike.mjs +2 -0
  37. package/dist/.setup/{send-LCOuTVc1.mjs → send-BprM-Wmx.mjs} +19 -42
  38. package/dist/.setup/{setup-bootstrap-CV-hHBXu.mjs → setup-bootstrap-DmznRqYe.mjs} +2 -6
  39. package/dist/.setup/{setup-core-CKnNTfgD.mjs → setup-core-DcCk1_Tv.mjs} +4 -7
  40. package/dist/.setup/setup-plugin-api-BU6UGksW.mjs +2 -0
  41. package/dist/.setup/{startup-verification-CgfUb4yJ.mjs → startup-verification-UU8DUvi4.mjs} +5 -13
  42. package/dist/.setup/state-layout-walk-BQMgMykU.mjs +27 -0
  43. package/dist/.setup/{storage-DkC6bHgA.mjs → storage-l8V0XsGM.mjs} +7 -166
  44. package/dist/.setup/{subagent-hooks-D8jyeQsO.mjs → subagent-hooks-CSY4iwa_.mjs} +7 -6
  45. package/dist/.setup/{sync-cache-state-D4G-fi3t.mjs → sync-cache-state-Cnm4TCEI.mjs} +1 -1
  46. package/dist/.setup/thread-bindings-rrwQAS6R.mjs +620 -0
  47. package/dist/.setup/{thread-bindings-shared-CbsFNbAY.mjs → thread-bindings-shared-CPjUA0Ib.mjs} +26 -5
  48. package/dist/.setup/{tool-actions-DAp6_XSJ.mjs → tool-actions-DBrk6Yei.mjs} +9 -11
  49. package/dist/.setup/{verification-B3VswneT.mjs → verification--qUbmRd-.mjs} +2 -2
  50. package/dist/api.js +6 -6
  51. package/dist/auth-presence.js +16 -2
  52. package/dist/channel-plugin-api.js +1 -2
  53. package/dist/cli-metadata.js +1 -2
  54. package/dist/contract-api.js +2 -2
  55. package/dist/doctor-contract-api.js +20 -27
  56. package/dist/index.js +38 -12
  57. package/dist/plugin-entry.handlers.runtime.js +32 -5
  58. package/dist/runtime-api.js +3 -3
  59. package/dist/runtime-setter-api.js +1 -2
  60. package/dist/secret-contract-api.js +1 -2
  61. package/dist/session-binding-contract-api.js +1 -1
  62. package/dist/setup-entry.js +3 -3
  63. package/dist/setup-plugin-api.js +1 -2
  64. package/dist/subagent-hooks-api.js +1 -1
  65. package/dist/thread-binding-api.js +1 -2
  66. package/dist/thread-bindings-runtime.js +1 -2
  67. package/node_modules/@openclaw/fs-safe/CHANGELOG.md +148 -0
  68. package/node_modules/@openclaw/fs-safe/README.md +20 -4
  69. package/node_modules/@openclaw/fs-safe/dist/advanced.d.ts +2 -1
  70. package/node_modules/@openclaw/fs-safe/dist/advanced.js +1 -0
  71. package/node_modules/@openclaw/fs-safe/dist/archive-merge.js +28 -3
  72. package/node_modules/@openclaw/fs-safe/dist/archive-parser.wasm +0 -0
  73. package/node_modules/@openclaw/fs-safe/dist/archive-read.js +11 -5
  74. package/node_modules/@openclaw/fs-safe/dist/archive-zip-loader.js +4 -2
  75. package/node_modules/@openclaw/fs-safe/dist/archive.js +2 -2
  76. package/node_modules/@openclaw/fs-safe/dist/atomic-io.js +2 -2
  77. package/node_modules/@openclaw/fs-safe/dist/bounded-read.d.ts +1 -0
  78. package/node_modules/@openclaw/fs-safe/dist/bounded-read.js +9 -2
  79. package/node_modules/@openclaw/fs-safe/dist/clone-metadata.d.ts +2 -0
  80. package/node_modules/@openclaw/fs-safe/dist/clone-metadata.js +2 -1
  81. package/node_modules/@openclaw/fs-safe/dist/config.d.ts +6 -0
  82. package/node_modules/@openclaw/fs-safe/dist/config.js +5 -0
  83. package/node_modules/@openclaw/fs-safe/dist/copy-file-input.d.ts +3 -1
  84. package/node_modules/@openclaw/fs-safe/dist/copy-file-input.js +8 -7
  85. package/node_modules/@openclaw/fs-safe/dist/copy-link.d.ts +26 -0
  86. package/node_modules/@openclaw/fs-safe/dist/copy-link.js +170 -0
  87. package/node_modules/@openclaw/fs-safe/dist/copy-metadata.d.ts +9 -0
  88. package/node_modules/@openclaw/fs-safe/dist/copy-metadata.js +39 -0
  89. package/node_modules/@openclaw/fs-safe/dist/copy-path-admission.js +11 -2
  90. package/node_modules/@openclaw/fs-safe/dist/copy-root-file-sync.d.ts +2 -4
  91. package/node_modules/@openclaw/fs-safe/dist/copy-root-file-sync.js +4 -2
  92. package/node_modules/@openclaw/fs-safe/dist/copy-tree-portable.js +3 -6
  93. package/node_modules/@openclaw/fs-safe/dist/copy.js +3 -3
  94. package/node_modules/@openclaw/fs-safe/dist/create.js +1 -1
  95. package/node_modules/@openclaw/fs-safe/dist/creation-boundary.js +7 -4
  96. package/node_modules/@openclaw/fs-safe/dist/darwin-acl.d.ts +12 -0
  97. package/node_modules/@openclaw/fs-safe/dist/darwin-acl.js +29 -0
  98. package/node_modules/@openclaw/fs-safe/dist/directory-durability.d.ts +7 -4
  99. package/node_modules/@openclaw/fs-safe/dist/directory-guard.js +20 -5
  100. package/node_modules/@openclaw/fs-safe/dist/directory-mode-node.d.ts +3 -0
  101. package/node_modules/@openclaw/fs-safe/dist/directory-mode-node.js +27 -2
  102. package/node_modules/@openclaw/fs-safe/dist/directory-receipt.d.ts +7 -7
  103. package/node_modules/@openclaw/fs-safe/dist/directory-receipt.js +9 -4
  104. package/node_modules/@openclaw/fs-safe/dist/durability.d.ts +2 -1
  105. package/node_modules/@openclaw/fs-safe/dist/entry-publication.js +2 -2
  106. package/node_modules/@openclaw/fs-safe/dist/exact-identity.d.ts +17 -0
  107. package/node_modules/@openclaw/fs-safe/dist/exact-identity.js +29 -0
  108. package/node_modules/@openclaw/fs-safe/dist/file-handle-transfer.js +4 -2
  109. package/node_modules/@openclaw/fs-safe/dist/file-hash.d.ts +1 -1
  110. package/node_modules/@openclaw/fs-safe/dist/file-hash.js +11 -9
  111. package/node_modules/@openclaw/fs-safe/dist/file-identity.d.ts +7 -1
  112. package/node_modules/@openclaw/fs-safe/dist/file-identity.js +27 -5
  113. package/node_modules/@openclaw/fs-safe/dist/file-lock-sync-admission.js +1 -2
  114. package/node_modules/@openclaw/fs-safe/dist/file-lock-sync.js +8 -1
  115. package/node_modules/@openclaw/fs-safe/dist/file-lock.d.ts +1 -0
  116. package/node_modules/@openclaw/fs-safe/dist/file-lock.js +1 -0
  117. package/node_modules/@openclaw/fs-safe/dist/file-write-lease.d.ts +9 -0
  118. package/node_modules/@openclaw/fs-safe/dist/file-write-lease.js +42 -0
  119. package/node_modules/@openclaw/fs-safe/dist/guarded-mkdir.d.ts +1 -0
  120. package/node_modules/@openclaw/fs-safe/dist/guarded-mkdir.js +22 -15
  121. package/node_modules/@openclaw/fs-safe/dist/guest-native-python.js +3 -0
  122. package/node_modules/@openclaw/fs-safe/dist/hardlink-fallback.d.ts +1 -0
  123. package/node_modules/@openclaw/fs-safe/dist/hardlink-fallback.js +5 -0
  124. package/node_modules/@openclaw/fs-safe/dist/index.d.ts +1 -0
  125. package/node_modules/@openclaw/fs-safe/dist/index.js +1 -0
  126. package/node_modules/@openclaw/fs-safe/dist/json-durable-queue-ownership.js +16 -3
  127. package/node_modules/@openclaw/fs-safe/dist/local-file-descriptor.js +24 -13
  128. package/node_modules/@openclaw/fs-safe/dist/native-binding.d.ts +85 -18
  129. package/node_modules/@openclaw/fs-safe/dist/native-config.d.ts +5 -0
  130. package/node_modules/@openclaw/fs-safe/dist/native-config.js +11 -0
  131. package/node_modules/@openclaw/fs-safe/dist/native-directory-observation.js +6 -4
  132. package/node_modules/@openclaw/fs-safe/dist/native-fallback-warning.d.ts +2 -1
  133. package/node_modules/@openclaw/fs-safe/dist/native-fallback-warning.js +26 -2
  134. package/node_modules/@openclaw/fs-safe/dist/native-guidance.d.ts +3 -0
  135. package/node_modules/@openclaw/fs-safe/dist/native-guidance.js +21 -0
  136. package/node_modules/@openclaw/fs-safe/dist/native-move-fallback.d.ts +1 -1
  137. package/node_modules/@openclaw/fs-safe/dist/native-move-fallback.js +2 -0
  138. package/node_modules/@openclaw/fs-safe/dist/native-operations.js +8 -6
  139. package/node_modules/@openclaw/fs-safe/dist/native-parent-admission.d.ts +44 -4
  140. package/node_modules/@openclaw/fs-safe/dist/native-parent-admission.js +85 -15
  141. package/node_modules/@openclaw/fs-safe/dist/native-pinned-write-windows.d.ts +3 -3
  142. package/node_modules/@openclaw/fs-safe/dist/native-pinned-write-windows.js +33 -6
  143. package/node_modules/@openclaw/fs-safe/dist/native-pinned-write.d.ts +4 -1
  144. package/node_modules/@openclaw/fs-safe/dist/native-pinned-write.js +22 -3
  145. package/node_modules/@openclaw/fs-safe/dist/native-policy-directory-observation.js +4 -3
  146. package/node_modules/@openclaw/fs-safe/dist/native-policy-parent.d.ts +1 -1
  147. package/node_modules/@openclaw/fs-safe/dist/native-policy-parent.js +3 -0
  148. package/node_modules/@openclaw/fs-safe/dist/native-staged-file-metadata.d.ts +3 -0
  149. package/node_modules/@openclaw/fs-safe/dist/native-staged-file-metadata.js +16 -0
  150. package/node_modules/@openclaw/fs-safe/dist/native-staged-file.d.ts +1 -1
  151. package/node_modules/@openclaw/fs-safe/dist/native-staged-file.js +15 -5
  152. package/node_modules/@openclaw/fs-safe/dist/native-stat-identity.d.ts +3 -0
  153. package/node_modules/@openclaw/fs-safe/dist/native-stat-identity.js +7 -0
  154. package/node_modules/@openclaw/fs-safe/dist/native-status.d.ts +17 -0
  155. package/node_modules/@openclaw/fs-safe/dist/native-status.js +30 -0
  156. package/node_modules/@openclaw/fs-safe/dist/native.d.ts +31 -4
  157. package/node_modules/@openclaw/fs-safe/dist/native.js +107 -9
  158. package/node_modules/@openclaw/fs-safe/dist/opened-realpath.js +9 -1
  159. package/node_modules/@openclaw/fs-safe/dist/overwrite-file-handle.js +4 -1
  160. package/node_modules/@openclaw/fs-safe/dist/owner-dacl-batch.js +1 -1
  161. package/node_modules/@openclaw/fs-safe/dist/owner-dacl.js +1 -1
  162. package/node_modules/@openclaw/fs-safe/dist/permission-exec.js +9 -1
  163. package/node_modules/@openclaw/fs-safe/dist/permissions-public.d.ts +1 -0
  164. package/node_modules/@openclaw/fs-safe/dist/permissions-public.js +1 -0
  165. package/node_modules/@openclaw/fs-safe/dist/permissions-windows.js +83 -47
  166. package/node_modules/@openclaw/fs-safe/dist/pinned-open.d.ts +2 -0
  167. package/node_modules/@openclaw/fs-safe/dist/pinned-open.js +8 -3
  168. package/node_modules/@openclaw/fs-safe/dist/pinned-write-input.js +13 -0
  169. package/node_modules/@openclaw/fs-safe/dist/pinned-write-staged.js +10 -8
  170. package/node_modules/@openclaw/fs-safe/dist/pinned-write-types.d.ts +2 -1
  171. package/node_modules/@openclaw/fs-safe/dist/pinned-write.js +7 -5
  172. package/node_modules/@openclaw/fs-safe/dist/pipe.d.ts +9 -0
  173. package/node_modules/@openclaw/fs-safe/dist/pipe.js +26 -0
  174. package/node_modules/@openclaw/fs-safe/dist/private-directory.js +1 -1
  175. package/node_modules/@openclaw/fs-safe/dist/private-producer-handoff.js +2 -5
  176. package/node_modules/@openclaw/fs-safe/dist/private-temp-workspace.d.ts +3 -2
  177. package/node_modules/@openclaw/fs-safe/dist/private-temp-workspace.js +38 -10
  178. package/node_modules/@openclaw/fs-safe/dist/publish-copy-stage.js +92 -10
  179. package/node_modules/@openclaw/fs-safe/dist/publish-file-failure.d.ts +3 -0
  180. package/node_modules/@openclaw/fs-safe/dist/publish-file-failure.js +3 -0
  181. package/node_modules/@openclaw/fs-safe/dist/publish-file.d.ts +5 -3
  182. package/node_modules/@openclaw/fs-safe/dist/publish-file.js +26 -20
  183. package/node_modules/@openclaw/fs-safe/dist/read-opened-file.d.ts +2 -0
  184. package/node_modules/@openclaw/fs-safe/dist/read-opened-file.js +3 -4
  185. package/node_modules/@openclaw/fs-safe/dist/realpath.js +32 -0
  186. package/node_modules/@openclaw/fs-safe/dist/regular-file.d.ts +4 -0
  187. package/node_modules/@openclaw/fs-safe/dist/regular-file.js +11 -15
  188. package/node_modules/@openclaw/fs-safe/dist/replace-file-descriptor.js +3 -2
  189. package/node_modules/@openclaw/fs-safe/dist/root-copy.d.ts +18 -0
  190. package/node_modules/@openclaw/fs-safe/dist/root-copy.js +128 -0
  191. package/node_modules/@openclaw/fs-safe/dist/root-create-native.d.ts +8 -13
  192. package/node_modules/@openclaw/fs-safe/dist/root-create-native.js +252 -27
  193. package/node_modules/@openclaw/fs-safe/dist/root-directory-creation.js +5 -1
  194. package/node_modules/@openclaw/fs-safe/dist/root-directory-list-types.d.ts +11 -8
  195. package/node_modules/@openclaw/fs-safe/dist/root-directory-list.js +35 -13
  196. package/node_modules/@openclaw/fs-safe/dist/root-file-open-batch-sync.d.ts +8 -0
  197. package/node_modules/@openclaw/fs-safe/dist/root-file-open-batch-sync.js +108 -0
  198. package/node_modules/@openclaw/fs-safe/dist/root-file.d.ts +7 -0
  199. package/node_modules/@openclaw/fs-safe/dist/root-file.js +15 -0
  200. package/node_modules/@openclaw/fs-safe/dist/root-impl.d.ts +2 -0
  201. package/node_modules/@openclaw/fs-safe/dist/root-impl.js +154 -175
  202. package/node_modules/@openclaw/fs-safe/dist/root-mkdir-native.d.ts +2 -0
  203. package/node_modules/@openclaw/fs-safe/dist/root-mkdir-native.js +239 -0
  204. package/node_modules/@openclaw/fs-safe/dist/root-move-noreplace.js +37 -15
  205. package/node_modules/@openclaw/fs-safe/dist/root-native-creation-path.d.ts +32 -0
  206. package/node_modules/@openclaw/fs-safe/dist/root-native-creation-path.js +56 -0
  207. package/node_modules/@openclaw/fs-safe/dist/root-options.d.ts +2 -0
  208. package/node_modules/@openclaw/fs-safe/dist/root-public-types.d.ts +1 -0
  209. package/node_modules/@openclaw/fs-safe/dist/root-remove-native.js +95 -16
  210. package/node_modules/@openclaw/fs-safe/dist/root-remove.js +6 -4
  211. package/node_modules/@openclaw/fs-safe/dist/root-walk.js +23 -19
  212. package/node_modules/@openclaw/fs-safe/dist/root-write-admission.js +8 -6
  213. package/node_modules/@openclaw/fs-safe/dist/root-write-publication.js +5 -1
  214. package/node_modules/@openclaw/fs-safe/dist/secure-file-windows.js +3 -1
  215. package/node_modules/@openclaw/fs-safe/dist/secure-file.d.ts +2 -0
  216. package/node_modules/@openclaw/fs-safe/dist/secure-file.js +10 -4
  217. package/node_modules/@openclaw/fs-safe/dist/sibling-staged-file.js +1 -1
  218. package/node_modules/@openclaw/fs-safe/dist/sidecar-lock-reclaim.js +2 -2
  219. package/node_modules/@openclaw/fs-safe/dist/sidecar-lock-retained.js +1 -1
  220. package/node_modules/@openclaw/fs-safe/dist/sidecar-lock-target.js +8 -1
  221. package/node_modules/@openclaw/fs-safe/dist/staged-directory.d.ts +13 -0
  222. package/node_modules/@openclaw/fs-safe/dist/staged-directory.js +29 -0
  223. package/node_modules/@openclaw/fs-safe/dist/temp-workspace-child-admission.js +5 -3
  224. package/node_modules/@openclaw/fs-safe/dist/temp-workspace-descriptor.d.ts +8 -0
  225. package/node_modules/@openclaw/fs-safe/dist/temp-workspace-descriptor.js +13 -2
  226. package/node_modules/@openclaw/fs-safe/dist/temp-workspace-owner.js +71 -3
  227. package/node_modules/@openclaw/fs-safe/dist/temp-workspace-ownership.d.ts +2 -1
  228. package/node_modules/@openclaw/fs-safe/dist/temp-workspace-ownership.js +22 -0
  229. package/node_modules/@openclaw/fs-safe/dist/temp-workspace-types.d.ts +3 -0
  230. package/node_modules/@openclaw/fs-safe/dist/test-hooks.d.ts +1 -0
  231. package/node_modules/@openclaw/fs-safe/dist/test-hooks.js +1 -0
  232. package/node_modules/@openclaw/fs-safe/dist/trash.js +2 -2
  233. package/node_modules/@openclaw/fs-safe/dist/types.d.ts +4 -0
  234. package/node_modules/@openclaw/fs-safe/dist/watch-native.js +2 -2
  235. package/node_modules/@openclaw/fs-safe/dist/windows-appcontainer.d.ts +5 -0
  236. package/node_modules/@openclaw/fs-safe/dist/windows-appcontainer.js +39 -0
  237. package/node_modules/@openclaw/fs-safe/dist/windows-owner.d.ts +1 -0
  238. package/node_modules/@openclaw/fs-safe/dist/windows-owner.js +25 -36
  239. package/node_modules/@openclaw/fs-safe/dist/windows-security-command.js +24 -5
  240. package/node_modules/@openclaw/fs-safe/dist/windows-security-facts.d.ts +2 -1
  241. package/node_modules/@openclaw/fs-safe/dist/windows-security-facts.js +4 -0
  242. package/node_modules/@openclaw/fs-safe/dist/windows-security-helper.d.ts +2 -0
  243. package/node_modules/@openclaw/fs-safe/dist/windows-security-helper.exe +0 -0
  244. package/node_modules/@openclaw/fs-safe/dist/windows-security-helper.js +7 -0
  245. package/node_modules/@openclaw/fs-safe/dist/windows-test-hooks.d.ts +16 -0
  246. package/node_modules/@openclaw/fs-safe/dist/windows-test-hooks.js +51 -0
  247. package/node_modules/@openclaw/fs-safe/dist/write-file-handle.d.ts +1 -0
  248. package/node_modules/@openclaw/fs-safe/dist/write-file-handle.js +12 -10
  249. package/node_modules/@openclaw/fs-safe/docs/advanced.md +2 -1
  250. package/node_modules/@openclaw/fs-safe/docs/archive.md +16 -0
  251. package/node_modules/@openclaw/fs-safe/docs/config.md +71 -1
  252. package/node_modules/@openclaw/fs-safe/docs/contributing.md +45 -5
  253. package/node_modules/@openclaw/fs-safe/docs/copy.md +45 -5
  254. package/node_modules/@openclaw/fs-safe/docs/durability.md +34 -7
  255. package/node_modules/@openclaw/fs-safe/docs/errors.md +8 -0
  256. package/node_modules/@openclaw/fs-safe/docs/guest.md +2 -0
  257. package/node_modules/@openclaw/fs-safe/docs/install.md +47 -27
  258. package/node_modules/@openclaw/fs-safe/docs/migrating-to-0.5.md +6 -6
  259. package/node_modules/@openclaw/fs-safe/docs/migrating-to-0.6.md +1 -1
  260. package/node_modules/@openclaw/fs-safe/docs/native-helper.md +79 -6
  261. package/node_modules/@openclaw/fs-safe/docs/native.md +279 -8
  262. package/node_modules/@openclaw/fs-safe/docs/permissions.md +64 -15
  263. package/node_modules/@openclaw/fs-safe/docs/pipe.md +81 -0
  264. package/node_modules/@openclaw/fs-safe/docs/platform-capabilities.md +63 -0
  265. package/node_modules/@openclaw/fs-safe/docs/public-api.md +10 -0
  266. package/node_modules/@openclaw/fs-safe/docs/queue-link-free-design.md +237 -0
  267. package/node_modules/@openclaw/fs-safe/docs/quickstart.md +23 -3
  268. package/node_modules/@openclaw/fs-safe/docs/reading.md +56 -2
  269. package/node_modules/@openclaw/fs-safe/docs/regular-file.md +2 -0
  270. package/node_modules/@openclaw/fs-safe/docs/secret-file.md +5 -5
  271. package/node_modules/@openclaw/fs-safe/docs/secure-file.md +1 -1
  272. package/node_modules/@openclaw/fs-safe/docs/security-model.md +35 -0
  273. package/node_modules/@openclaw/fs-safe/docs/sidecar-lock.md +31 -13
  274. package/node_modules/@openclaw/fs-safe/docs/staged-file.md +18 -0
  275. package/node_modules/@openclaw/fs-safe/docs/store.md +15 -0
  276. package/node_modules/@openclaw/fs-safe/docs/temp.md +39 -0
  277. package/node_modules/@openclaw/fs-safe/docs/testing.md +13 -0
  278. package/node_modules/@openclaw/fs-safe/docs/types.md +51 -81
  279. package/node_modules/@openclaw/fs-safe/docs/walk.md +4 -1
  280. package/node_modules/@openclaw/fs-safe/docs/watch.md +3 -2
  281. package/node_modules/@openclaw/fs-safe/docs/writing.md +121 -14
  282. package/node_modules/@openclaw/fs-safe/package.json +21 -12
  283. package/node_modules/@openclaw/fs-safe-darwin-arm64/fs-safe-native.node +0 -0
  284. package/node_modules/@openclaw/fs-safe-darwin-arm64/package.json +1 -1
  285. package/node_modules/@openclaw/fs-safe-darwin-x64/fs-safe-native.node +0 -0
  286. package/node_modules/@openclaw/fs-safe-darwin-x64/package.json +1 -1
  287. package/node_modules/@openclaw/fs-safe-freebsd-arm64/fs-safe-native.node +0 -0
  288. package/node_modules/@openclaw/fs-safe-freebsd-arm64/package.json +29 -0
  289. package/node_modules/@openclaw/fs-safe-freebsd-x64/fs-safe-native.node +0 -0
  290. package/node_modules/@openclaw/fs-safe-freebsd-x64/package.json +29 -0
  291. package/node_modules/@openclaw/fs-safe-linux-arm64-gnu/fs-safe-native.node +0 -0
  292. package/node_modules/@openclaw/fs-safe-linux-arm64-gnu/package.json +1 -1
  293. package/node_modules/@openclaw/fs-safe-linux-arm64-musl/fs-safe-native.node +0 -0
  294. package/node_modules/@openclaw/fs-safe-linux-arm64-musl/package.json +1 -1
  295. package/node_modules/@openclaw/fs-safe-linux-x64-gnu/fs-safe-native.node +0 -0
  296. package/node_modules/@openclaw/fs-safe-linux-x64-gnu/package.json +1 -1
  297. package/node_modules/@openclaw/fs-safe-linux-x64-musl/fs-safe-native.node +0 -0
  298. package/node_modules/@openclaw/fs-safe-linux-x64-musl/package.json +1 -1
  299. package/node_modules/@openclaw/fs-safe-win32-arm64-msvc/fs-safe-native.node +0 -0
  300. package/node_modules/@openclaw/fs-safe-win32-arm64-msvc/package.json +29 -0
  301. package/node_modules/@openclaw/fs-safe-win32-x64-msvc/fs-safe-native.node +0 -0
  302. package/node_modules/@openclaw/fs-safe-win32-x64-msvc/package.json +1 -1
  303. package/node_modules/typebox/build/value/clean/from_object.mjs +1 -1
  304. package/node_modules/typebox/package.json +1 -1
  305. package/openclaw.plugin.json +3 -0
  306. package/package.json +7 -6
  307. package/dist/.setup/runtime-setter-api-DtxDAM-x.mjs +0 -3
  308. package/dist/.setup/secret-contract-DSBRvhdZ.mjs +0 -95
  309. package/dist/.setup/secret-contract-api-DzEJ-X7n.mjs +0 -3
  310. package/dist/.setup/setup-plugin-api-BDAYk1a5.mjs +0 -3
  311. package/dist/.setup/thread-bindings-CT4P-OSZ.mjs +0 -365
  312. package/node_modules/@openclaw/fs-safe/dist/windows-security-bridge.cs +0 -336
  313. package/node_modules/@openclaw/fs-safe/dist/windows-security-bridge.ps1 +0 -90
@@ -1,18 +1,18 @@
1
1
  import { a as resolveMatrixAccountConfig } from "./account-config-CRsKoMqJ.mjs";
2
- import { c as shouldHandleMatrixApprovalRequest, r as isMatrixAnyApprovalClientEnabled } from "./exec-approvals-BgNWWJg1.mjs";
2
+ import { r as isMatrixAnyApprovalClientEnabled, s as shouldHandleMatrixApprovalRequest } from "./exec-approvals-DaM-5OA5.mjs";
3
3
  import { s as resolveMatrixTargetIdentity } from "./target-ids-HhcaKX1n.mjs";
4
4
  import { a as repairMatrixDirectRooms } from "./direct-management-B3wYhx_M.mjs";
5
- import { a as sendSingleTextMessageMatrix, n as reactMatrixMessage, r as sendMessageMatrix } from "./send-LCOuTVc1.mjs";
6
- import { a as unregisterMatrixApprovalReactionTarget, n as listMatrixApprovalReactionBindings, r as registerMatrixApprovalReactionTarget, t as buildMatrixApprovalReactionHint } from "./approval-reactions-DhB6gNPU.mjs";
7
- import { n as editMatrixMessage, t as deleteMatrixMessage } from "./messages-B1CZqU8u.mjs";
5
+ import { a as sendSingleTextMessageMatrix, n as reactMatrixMessage, r as sendMessageMatrix } from "./send-BprM-Wmx.mjs";
6
+ import { a as unregisterMatrixApprovalReactionTarget, n as listMatrixApprovalReactionBindings, r as registerMatrixApprovalReactionTarget, t as buildMatrixApprovalReactionHint } from "./approval-reactions-D2pEUrFS.mjs";
7
+ import { n as editMatrixMessage, t as deleteMatrixMessage } from "./messages-_XHVg3do.mjs";
8
8
  import { listMessageReceiptPlatformIds, resolveMessageReceiptPrimaryId } from "openclaw/plugin-sdk/channel-outbound";
9
9
  import { normalizeStringifiedOptionalString, normalizeUniqueStringEntries } from "openclaw/plugin-sdk/string-coerce-runtime";
10
10
  import { buildChannelApprovalNativeTargetKey } from "openclaw/plugin-sdk/approval-native-runtime";
11
11
  import { normalizeAccountId } from "openclaw/plugin-sdk/routing";
12
- import { createChannelApprovalNativeRuntimeAdapter } from "openclaw/plugin-sdk/approval-handler-runtime";
12
+ import { retryAsync } from "openclaw/plugin-sdk/retry-runtime";
13
+ import { createChannelApprovalNativeRuntimeAdapterAsync } from "openclaw/plugin-sdk/approval-handler-runtime";
13
14
  import { buildExecApprovalPendingReplyPayload, buildPluginApprovalPendingReplyPayload } from "openclaw/plugin-sdk/approval-reply-runtime";
14
15
  import { buildApprovalPendingReplyPayload, buildPluginApprovalResolvedReplyPayload, formatChannelApprovalResolvedLabel } from "openclaw/plugin-sdk/approval-runtime";
15
- import { retryAsync } from "openclaw/plugin-sdk/retry-runtime";
16
16
  //#region extensions/matrix/src/approval-handler.runtime.ts
17
17
  const MATRIX_APPROVAL_METADATA_KEY = "com.openclaw.approval";
18
18
  const MATRIX_APPROVAL_DELIVERY_ATTEMPTS = 3;
@@ -192,14 +192,14 @@ function buildMarkdownCodeBlock(text) {
192
192
  fence
193
193
  ].join("\n");
194
194
  }
195
- const matrixApprovalNativeRuntime = createChannelApprovalNativeRuntimeAdapter({
195
+ const matrixApprovalNativeRuntime = createChannelApprovalNativeRuntimeAdapterAsync({
196
196
  eventKinds: [
197
197
  "exec",
198
198
  "plugin",
199
199
  "system-agent"
200
200
  ],
201
201
  availability: {
202
- isConfigured: ({ cfg, accountId, context }) => {
202
+ isConfigured: async ({ cfg, accountId, context }) => {
203
203
  const resolved = resolveHandlerContext({
204
204
  cfg,
205
205
  accountId,
@@ -211,7 +211,7 @@ const matrixApprovalNativeRuntime = createChannelApprovalNativeRuntimeAdapter({
211
211
  accountId: resolved.accountId
212
212
  });
213
213
  },
214
- shouldHandle: ({ cfg, accountId, approvalKind, request, context }) => {
214
+ shouldHandle: async ({ cfg, accountId, approvalKind, request, context }) => {
215
215
  const resolved = resolveHandlerContext({
216
216
  cfg,
217
217
  accountId,
@@ -42,7 +42,7 @@ function readPersistedTarget(target) {
42
42
  };
43
43
  }
44
44
  function openPersistentMatrixApprovalReactionStore() {
45
- return getOptionalMatrixRuntime()?.state.openKeyedStore({
45
+ return getOptionalMatrixRuntime()?.state.openKeyedStoreV2({
46
46
  namespace: PERSISTENT_NAMESPACE,
47
47
  maxEntries: PERSISTENT_MAX_ENTRIES,
48
48
  defaultTtlMs: DEFAULT_REACTION_TARGET_TTL_MS
@@ -1,12 +1,12 @@
1
1
  import { i as __exportAll, n as normalizeCompatibilityConfig, t as legacyConfigRules } from "./doctor-contract-CsTNmbMa.mjs";
2
2
  import { i as requiresExplicitMatrixDefaultAccount, n as findMatrixAccountEntry, r as hasImplicitMatrixAccountConfig } from "./account-selection-Bs_jCAaG.mjs";
3
3
  import { a as resolveMatrixAccountConfig } from "./account-config-CRsKoMqJ.mjs";
4
- import { _ as resolveMatrixAccount, g as resolveDefaultMatrixAccountId, m as listMatrixAccountIds, v as resolveMatrixAccountAsync } from "./setup-core-CKnNTfgD.mjs";
5
- import { i as normalizeMatrixUserId, t as matrixPluginBase } from "./channel.setup-CwuYD_CT.mjs";
6
- import { a as isMatrixExecApprovalAuthorizedSender, c as shouldHandleMatrixApprovalRequest, d as matrixApprovalAuth, f as normalizeMatrixApproverId, i as isMatrixApprovalClientEnabled, l as shouldSuppressLocalMatrixExecApprovalPrompt, n as getMatrixExecApprovalApprovers, o as isMatrixExecApprovalClientEnabled, r as isMatrixAnyApprovalClientEnabled, s as resolveMatrixExecApprovalTarget, t as getMatrixApprovalApprovers, u as getMatrixApprovalAuthApprovers } from "./exec-approvals-BgNWWJg1.mjs";
4
+ import { _ as resolveMatrixAccount, g as resolveDefaultMatrixAccountId, m as listMatrixAccountIds, v as resolveMatrixAccountAsync } from "./setup-core-DcCk1_Tv.mjs";
5
+ import { i as normalizeMatrixUserId, t as matrixPluginBase } from "./channel.setup-Be8TYKMA.mjs";
6
+ import { a as isMatrixExecApprovalAuthorizedSender, c as shouldSuppressLocalMatrixExecApprovalPrompt, d as normalizeMatrixApproverId, i as isMatrixApprovalClientEnabled, l as getMatrixApprovalAuthApprovers, n as getMatrixExecApprovalApprovers, o as resolveMatrixExecApprovalTarget, r as isMatrixAnyApprovalClientEnabled, s as shouldHandleMatrixApprovalRequest, t as getMatrixApprovalApprovers, u as matrixApprovalAuth } from "./exec-approvals-DaM-5OA5.mjs";
7
7
  import { a as normalizeMatrixResolvableTarget, i as normalizeMatrixMessagingTarget, n as isMatrixQualifiedUserId, o as resolveMatrixDirectUserId, r as isMatrixRoomId, s as resolveMatrixTargetIdentity } from "./target-ids-HhcaKX1n.mjs";
8
- import { d as setMatrixThreadBindingMaxAgeBySessionKey, l as setMatrixThreadBindingIdleTimeoutBySessionKey } from "./thread-bindings-shared-CbsFNbAY.mjs";
9
- import { n as collectRuntimeConfigAssignments, r as secretTargetRegistryEntries } from "./secret-contract-DSBRvhdZ.mjs";
8
+ import { f as setMatrixThreadBindingMaxAgeBySessionKey, l as setMatrixThreadBindingIdleTimeoutBySessionKey, p as setMatrixThreadBindingMaxAgeBySessionKeyAsync, u as setMatrixThreadBindingIdleTimeoutBySessionKeyAsync } from "./thread-bindings-shared-CPjUA0Ib.mjs";
9
+ import { n as collectRuntimeConfigAssignments, r as secretTargetRegistryEntries } from "./secret-contract-DxyzKSzf.mjs";
10
10
  import { n as resolveMatrixInboundConversation, t as defaultTopLevelPlacement } from "./thread-binding-api-BvuaKpd0.mjs";
11
11
  import { createLazyRuntimeModule, createLazyRuntimeNamedExport } from "openclaw/plugin-sdk/lazy-runtime";
12
12
  import { DEFAULT_ACCOUNT_ID, normalizeAccountId } from "openclaw/plugin-sdk/account-id";
@@ -25,15 +25,15 @@ import { chunkTextForOutbound, sanitizeAssistantVisibleText } from "openclaw/plu
25
25
  import { createActionGate } from "openclaw/plugin-sdk/channel-actions";
26
26
  import { extractToolSend } from "openclaw/plugin-sdk/tool-send";
27
27
  import { Type } from "typebox";
28
- import { createApproverRestrictedNativeApprovalCapability, createChannelApprovalCapability, splitChannelApprovalCapability } from "openclaw/plugin-sdk/approval-delivery-runtime";
29
- import { createLazyChannelApprovalNativeRuntimeAdapter } from "openclaw/plugin-sdk/approval-handler-adapter-runtime";
30
- import { createChannelNativeOriginTargetResolver, resolveApprovalRequestSessionConversation } from "openclaw/plugin-sdk/approval-native-runtime";
28
+ import { createApproverRestrictedNativeApprovalCapabilityAsync, createChannelApprovalCapability, splitChannelApprovalCapability } from "openclaw/plugin-sdk/approval-delivery-runtime";
29
+ import { createLazyChannelApprovalNativeRuntimeAdapterAsync } from "openclaw/plugin-sdk/approval-handler-adapter-runtime";
30
+ import { createChannelNativeOriginTargetResolverAsync, resolveApprovalRequestSessionConversation } from "openclaw/plugin-sdk/approval-native-runtime";
31
31
  import { buildAgentSessionKey, deriveLastRoutePolicy, parseThreadSessionSuffix, resolveAgentIdFromSessionKey, resolveAgentRoute, resolveThreadSessionKeys } from "openclaw/plugin-sdk/routing";
32
32
  import { buildChannelKeyCandidates } from "openclaw/plugin-sdk/channel-targets";
33
33
  import { resolveConfiguredAcpBindingRecord } from "openclaw/plugin-sdk/acp-binding-resolve-runtime";
34
- import { inspectConversationBinding } from "openclaw/plugin-sdk/conversation-binding-inspection-runtime";
34
+ import { inspectConversationBindingAsync } from "openclaw/plugin-sdk/conversation-binding-inspection-runtime";
35
35
  import { inspectRuntimeConversationBindingRoute } from "openclaw/plugin-sdk/conversation-binding-runtime";
36
- import { deliveryContextFromSession, getSessionEntry, resolveStorePath, sessionDeliveryOrigin } from "openclaw/plugin-sdk/session-store-runtime";
36
+ import { deliveryContextFromSession, getSessionEntryAsync, resolveStorePath, sessionDeliveryOrigin } from "openclaw/plugin-sdk/session-store-runtime";
37
37
  //#region extensions/matrix/src/actions.ts
38
38
  const MATRIX_PLUGIN_HANDLED_ACTIONS = /* @__PURE__ */ new Set([
39
39
  "send",
@@ -91,6 +91,30 @@ function resolveMatrixActionAccount(params) {
91
91
  });
92
92
  return account.enabled && account.configured ? account : null;
93
93
  }
94
+ function describeMatrixMessageTool(account, senderIsOwner) {
95
+ if (!account?.enabled || !account.configured) return {
96
+ actions: [],
97
+ capabilities: []
98
+ };
99
+ const actions = createMatrixExposedActions({
100
+ gate: createActionGate(account.config.actions),
101
+ encryptionEnabled: account.config.encryption === true,
102
+ senderIsOwner
103
+ });
104
+ const listedActions = Array.from(actions);
105
+ const schema = [];
106
+ if (actions.has("set-profile")) schema.push(buildMatrixProfileToolSchema());
107
+ if (actions.has("react")) schema.push({
108
+ actions: ["react", "reactions"],
109
+ properties: { emoji: Type.Optional(Type.String({ description: `Unicode emoji or custom emote shortcode.${actions.has("emoji-list") ? " Discover room and personal custom emotes with action:\"emoji-list\"." : ""}` })) }
110
+ });
111
+ return {
112
+ actions: listedActions,
113
+ capabilities: ["presentation"],
114
+ schema: schema.length > 1 ? schema : schema[0] ?? null,
115
+ mediaSourceParams: listedActions.includes("set-profile") ? { "set-profile": MATRIX_PROFILE_MEDIA_SOURCE_PARAMS } : null
116
+ };
117
+ }
94
118
  const matrixMessageActions = {
95
119
  providerOwnedReadGates: true,
96
120
  readAuthorityActions: [
@@ -101,33 +125,19 @@ const matrixMessageActions = {
101
125
  "member-info",
102
126
  "channel-info"
103
127
  ],
128
+ /** @deprecated Use describeMessageToolAsync. Final compatibility day: 2026-12-31. */
104
129
  describeMessageTool: ({ cfg, accountId, senderIsOwner }) => {
105
- const account = resolveMatrixActionAccount({
130
+ return describeMatrixMessageTool(resolveMatrixActionAccount({
106
131
  cfg,
107
132
  accountId
108
- });
109
- if (!account) return {
110
- actions: [],
111
- capabilities: []
112
- };
113
- const actions = createMatrixExposedActions({
114
- gate: createActionGate(account.config.actions),
115
- encryptionEnabled: account.config.encryption === true,
116
- senderIsOwner
117
- });
118
- const listedActions = Array.from(actions);
119
- const schema = [];
120
- if (actions.has("set-profile")) schema.push(buildMatrixProfileToolSchema());
121
- if (actions.has("react")) schema.push({
122
- actions: ["react", "reactions"],
123
- properties: { emoji: Type.Optional(Type.String({ description: `Unicode emoji or custom emote shortcode.${actions.has("emoji-list") ? " Discover room and personal custom emotes with action:\"emoji-list\"." : ""}` })) }
124
- });
125
- return {
126
- actions: listedActions,
127
- capabilities: ["presentation"],
128
- schema: schema.length > 1 ? schema : schema[0] ?? null,
129
- mediaSourceParams: listedActions.includes("set-profile") ? { "set-profile": MATRIX_PROFILE_MEDIA_SOURCE_PARAMS } : null
130
- };
133
+ }), senderIsOwner);
134
+ },
135
+ describeMessageToolAsync: async ({ cfg, accountId, senderIsOwner }) => {
136
+ const resolvedCfg = cfg;
137
+ return describeMatrixMessageTool(!accountId && requiresExplicitMatrixDefaultAccount(resolvedCfg) ? null : await resolveMatrixAccountAsync({
138
+ cfg: resolvedCfg,
139
+ accountId: accountId ?? resolveDefaultMatrixAccountId(resolvedCfg)
140
+ }), senderIsOwner);
131
141
  },
132
142
  supportsAction: ({ action }) => MATRIX_PLUGIN_HANDLED_ACTIONS.has(action),
133
143
  extractToolSend: ({ args }) => {
@@ -144,7 +154,7 @@ const matrixMessageActions = {
144
154
  return account.enabled && account.configured && createActionGate(account.config.actions)("messages") ? payload : null;
145
155
  },
146
156
  handleAction: async (ctx) => {
147
- const { handleMatrixAction } = await import("./tool-actions-DAp6_XSJ.mjs");
157
+ const { handleMatrixAction } = await import("./tool-actions-DBrk6Yei.mjs");
148
158
  return await handleMatrixAction(ctx);
149
159
  }
150
160
  };
@@ -207,17 +217,8 @@ function hasAnyMatrixApprovalApprovers(params) {
207
217
  function resolveSuppressionAccountId(params) {
208
218
  return params.target.accountId?.trim() || params.request.request.turnSourceAccountId?.trim() || void 0;
209
219
  }
210
- const resolveMatrixOriginTarget = createChannelNativeOriginTargetResolver({
220
+ const resolveMatrixOriginTargetBase = createChannelNativeOriginTargetResolverAsync({
211
221
  channel: "matrix",
212
- shouldHandleRequest: ({ cfg, accountId, approvalKind, request }) => {
213
- if (approvalKind !== "exec" && approvalKind !== "plugin" && approvalKind !== "system-agent") return false;
214
- return shouldHandleMatrixApprovalRequest({
215
- cfg,
216
- accountId,
217
- approvalKind,
218
- request
219
- });
220
- },
221
222
  resolveTurnSourceTarget: resolveTurnSourceMatrixOriginTarget,
222
223
  resolveSessionTarget: resolveSessionMatrixOriginTarget,
223
224
  normalizeTargetForMatch: normalizeMatrixOriginTarget,
@@ -233,14 +234,22 @@ const resolveMatrixOriginTarget = createChannelNativeOriginTargetResolver({
233
234
  });
234
235
  }
235
236
  });
236
- function resolveMatrixApproverDmTargets(params) {
237
- if (!shouldHandleMatrixApprovalRequest(params)) return [];
237
+ async function resolveMatrixOriginTarget(params) {
238
+ const approvalKind = params.approvalKind;
239
+ if (!approvalKind) return null;
240
+ return await shouldHandleMatrixApprovalRequest({
241
+ ...params,
242
+ approvalKind
243
+ }) ? resolveMatrixOriginTargetBase(params) : null;
244
+ }
245
+ async function resolveMatrixApproverDmTargets(params) {
246
+ if (!await shouldHandleMatrixApprovalRequest(params)) return [];
238
247
  return getMatrixApprovalApprovers(params).map((approver) => {
239
248
  const normalized = normalizeMatrixUserId(approver);
240
249
  return normalized ? { to: `user:${normalized}` } : null;
241
250
  }).filter((target) => target !== null);
242
251
  }
243
- const matrixNativeApprovalCapability = createApproverRestrictedNativeApprovalCapability({
252
+ const matrixNativeApprovalCapability = createApproverRestrictedNativeApprovalCapabilityAsync({
244
253
  channel: "matrix",
245
254
  channelLabel: "Matrix",
246
255
  describeExecApprovalSetup: ({ accountId }) => {
@@ -259,14 +268,17 @@ const matrixNativeApprovalCapability = createApproverRestrictedNativeApprovalCap
259
268
  senderId,
260
269
  approvalKind: "plugin"
261
270
  }),
262
- isNativeDeliveryEnabled: isMatrixExecApprovalClientEnabled,
271
+ isNativeDeliveryEnabled: ({ approvalKind, ...params }) => isMatrixApprovalClientEnabled({
272
+ ...params,
273
+ approvalKind: approvalKind ?? "exec"
274
+ }),
263
275
  resolveNativeDeliveryMode: resolveMatrixExecApprovalTarget,
264
276
  requireMatchingTurnSourceChannel: true,
265
277
  resolveSuppressionAccountId,
266
278
  resolveOriginTarget: resolveMatrixOriginTarget,
267
279
  resolveApproverDmTargets: resolveMatrixApproverDmTargets,
268
280
  notifyOriginWhenDmOnly: true,
269
- nativeRuntime: createLazyChannelApprovalNativeRuntimeAdapter({
281
+ nativeRuntimeAsync: createLazyChannelApprovalNativeRuntimeAdapterAsync({
270
282
  capabilityBoundary: true,
271
283
  eventKinds: [
272
284
  "exec",
@@ -275,15 +287,15 @@ const matrixNativeApprovalCapability = createApproverRestrictedNativeApprovalCap
275
287
  ],
276
288
  isConfigured: isMatrixAnyApprovalClientEnabled,
277
289
  shouldHandle: shouldHandleMatrixApprovalRequest,
278
- load: async () => (await import("./approval-handler.runtime-rxLn8CbP.mjs")).matrixApprovalNativeRuntime
290
+ load: async () => (await import("./approval-handler.runtime-CsqMdj7h.mjs")).matrixApprovalNativeRuntime
279
291
  })
280
292
  });
281
293
  const splitMatrixApprovalCapability = splitChannelApprovalCapability(matrixNativeApprovalCapability);
282
- const matrixBaseNativeApprovalAdapter = splitMatrixApprovalCapability.native;
294
+ const matrixBaseNativeApprovalAdapter = splitMatrixApprovalCapability.nativeAsync;
283
295
  const matrixBaseDeliveryAdapter = splitMatrixApprovalCapability.delivery;
284
296
  const matrixDeliveryAdapter = matrixBaseDeliveryAdapter && {
285
297
  ...matrixBaseDeliveryAdapter,
286
- shouldSuppressForwardingFallback: (params) => {
298
+ shouldSuppressForwardingFallbackAsync: async (params) => {
287
299
  const accountId = resolveSuppressionAccountId(params);
288
300
  if (!hasMatrixApprovalApprovers({
289
301
  cfg: params.cfg,
@@ -293,40 +305,19 @@ const matrixDeliveryAdapter = matrixBaseDeliveryAdapter && {
293
305
  if (params.approvalKind === "plugin") {
294
306
  const targetChannel = normalizeLowercaseStringOrEmpty(params.target.channel);
295
307
  const turnSourceChannel = normalizeLowercaseStringOrEmpty(params.request.request.turnSourceChannel);
296
- return targetChannel === "matrix" && turnSourceChannel === "matrix" && shouldHandleMatrixApprovalRequest({
308
+ return targetChannel === "matrix" && turnSourceChannel === "matrix" && await shouldHandleMatrixApprovalRequest({
297
309
  cfg: params.cfg,
298
310
  accountId,
299
311
  approvalKind: "plugin",
300
312
  request: params.request
301
313
  });
302
314
  }
303
- return matrixBaseDeliveryAdapter.shouldSuppressForwardingFallback?.(params) ?? false;
315
+ return matrixBaseDeliveryAdapter.shouldSuppressForwardingFallbackAsync?.(params) ?? false;
304
316
  }
305
317
  };
306
- const matrixNativeAdapter = matrixBaseNativeApprovalAdapter && {
307
- describeDeliveryCapabilities: (params) => {
308
- const capabilities = matrixBaseNativeApprovalAdapter.describeDeliveryCapabilities(params);
309
- const hasApprovers = hasMatrixApprovalApprovers({
310
- cfg: params.cfg,
311
- accountId: params.accountId,
312
- approvalKind: params.approvalKind
313
- });
314
- const clientEnabled = isMatrixApprovalClientEnabled({
315
- cfg: params.cfg,
316
- accountId: params.accountId,
317
- approvalKind: params.approvalKind
318
- });
319
- return {
320
- ...capabilities,
321
- enabled: hasApprovers && clientEnabled
322
- };
323
- },
324
- resolveOriginTarget: matrixBaseNativeApprovalAdapter.resolveOriginTarget,
325
- resolveApproverDmTargets: matrixBaseNativeApprovalAdapter.resolveApproverDmTargets
326
- };
327
318
  const matrixApprovalCapability = createChannelApprovalCapability({
328
- authorizeActorAction: (params) => {
329
- if (params.approvalKind !== "plugin") return matrixNativeApprovalCapability.authorizeActorAction?.(params) ?? { authorized: true };
319
+ authorizeActorActionAsync: async (params) => {
320
+ if (params.approvalKind !== "plugin") return await matrixNativeApprovalCapability.authorizeActorActionAsync?.(params) ?? { authorized: true };
330
321
  if (!hasMatrixPluginApprovers({
331
322
  cfg: params.cfg,
332
323
  accountId: params.accountId
@@ -343,11 +334,11 @@ const matrixApprovalCapability = createChannelApprovalCapability({
343
334
  }));
344
335
  return matrixNativeApprovalCapability.getActionAvailabilityState?.(params) ?? { kind: "disabled" };
345
336
  },
346
- getExecInitiatingSurfaceState: (params) => matrixNativeApprovalCapability.getExecInitiatingSurfaceState?.(params) ?? { kind: "disabled" },
337
+ getExecInitiatingSurfaceStateAsync: async (params) => await matrixNativeApprovalCapability.getExecInitiatingSurfaceStateAsync?.(params) ?? { kind: "disabled" },
347
338
  describeExecApprovalSetup: matrixNativeApprovalCapability.describeExecApprovalSetup,
348
339
  delivery: matrixDeliveryAdapter,
349
- nativeRuntime: matrixNativeApprovalCapability.nativeRuntime,
350
- native: matrixNativeAdapter,
340
+ nativeRuntimeAsync: matrixNativeApprovalCapability.nativeRuntimeAsync,
341
+ nativeAsync: matrixBaseNativeApprovalAdapter,
351
342
  render: matrixNativeApprovalCapability.render
352
343
  });
353
344
  //#endregion
@@ -447,7 +438,7 @@ function resolveMatrixGroupScope(params) {
447
438
  path: resolveMatrixRoomScopePath({
448
439
  tree,
449
440
  roomId,
450
- aliases: groupChannel ? [groupChannel] : []
441
+ aliases: roomId && groupChannel.toLowerCase() === roomId.toLowerCase() ? [groupChannel] : []
451
442
  })
452
443
  };
453
444
  }
@@ -486,7 +477,18 @@ function resolveMatrixDmSessionKey(params) {
486
477
  }
487
478
  });
488
479
  }
489
- function resolveMatrixInboundRoute(params) {
480
+ function resolveMatrixBindingRef(params) {
481
+ return {
482
+ channel: "matrix",
483
+ accountId: params.accountId,
484
+ conversationId: params.threadId ?? params.roomId,
485
+ parentConversationId: params.threadId ? params.roomId : void 0
486
+ };
487
+ }
488
+ async function resolveMatrixInboundRouteAsync(params) {
489
+ return projectMatrixInboundRoute(params, await inspectConversationBindingAsync(resolveMatrixBindingRef(params)));
490
+ }
491
+ function projectMatrixInboundRoute(params, inspection) {
490
492
  const baseRoute = params.resolveAgentRoute({
491
493
  cfg: params.cfg,
492
494
  channel: "matrix",
@@ -502,13 +504,6 @@ function resolveMatrixInboundRoute(params) {
502
504
  });
503
505
  const bindingConversationId = params.threadId ?? params.roomId;
504
506
  const bindingParentConversationId = params.threadId ? params.roomId : void 0;
505
- const bindingRef = {
506
- channel: "matrix",
507
- accountId: params.accountId,
508
- conversationId: bindingConversationId,
509
- parentConversationId: bindingParentConversationId
510
- };
511
- const inspection = inspectConversationBinding(bindingRef);
512
507
  const runtimeRoute = inspectRuntimeConversationBindingRoute({
513
508
  route: baseRoute,
514
509
  inspection
@@ -580,7 +575,7 @@ function resolveMatrixInboundRoute(params) {
580
575
  }
581
576
  //#endregion
582
577
  //#region extensions/matrix/src/matrix/conversation-route-owner.ts
583
- function resolveMatrixConversationRouteOwner(params) {
578
+ function prepareMatrixConversationRouteOwner(params) {
584
579
  const { cfg, conversation } = params;
585
580
  const accountId = normalizeAccountId(params.accountId);
586
581
  const accountConfig = findMatrixAccountEntry(cfg, accountId);
@@ -588,7 +583,7 @@ function resolveMatrixConversationRouteOwner(params) {
588
583
  const roomId = conversation.nativeChannelId?.trim() || (conversation.kind === "direct" ? "" : conversation.peerId.trim());
589
584
  if (!roomId) return null;
590
585
  const isDirectMessage = conversation.kind === "direct";
591
- const result = resolveMatrixInboundRoute({
586
+ const route = {
592
587
  cfg,
593
588
  accountId,
594
589
  roomId,
@@ -596,18 +591,34 @@ function resolveMatrixConversationRouteOwner(params) {
596
591
  isDirectMessage,
597
592
  threadId: conversation.threadId,
598
593
  resolveAgentRoute
599
- });
600
- if (!result.bindingOwnerAvailable) return { kind: "unavailable" };
601
- if (result.pluginId) return {
602
- kind: "plugin",
603
- pluginId: result.pluginId,
604
- fallbackAgentId: result.route.agentId
605
594
  };
606
595
  return {
607
- kind: "agent",
608
- agentId: result.route.agentId
596
+ conversation: resolveMatrixBindingRef(route),
597
+ resolve(inspection) {
598
+ const result = projectMatrixInboundRoute(route, inspection);
599
+ if (!result.bindingOwnerAvailable) return { kind: "unavailable" };
600
+ if (result.pluginId) return {
601
+ kind: "plugin",
602
+ pluginId: result.pluginId,
603
+ fallbackAgentId: result.route.agentId
604
+ };
605
+ return {
606
+ kind: "agent",
607
+ agentId: result.route.agentId
608
+ };
609
+ }
609
610
  };
610
611
  }
612
+ async function prepareMatrixConversationRouteOwnersAsync(inputs, inspectBindings) {
613
+ const prepared = inputs.map(prepareMatrixConversationRouteOwner);
614
+ const inspect = await inspectBindings(prepared.flatMap((item) => item ? [item.conversation] : []));
615
+ let index = 0;
616
+ return prepared.map((item) => {
617
+ if (!item) return () => null;
618
+ const position = index++;
619
+ return () => item.resolve(inspect()[position]);
620
+ });
621
+ }
611
622
  //#endregion
612
623
  //#region extensions/matrix/src/presentation-capabilities.ts
613
624
  const matrixPresentationCapabilities = {
@@ -623,7 +634,7 @@ const matrixPresentationCapabilities = {
623
634
  };
624
635
  //#endregion
625
636
  //#region extensions/matrix/src/resolver.ts
626
- const loadMatrixResolver = createLazyRuntimeNamedExport(() => import("./resolve-targets-BVVbbvP6.mjs").then((n) => n.n), "resolveMatrixTargets");
637
+ const loadMatrixResolver = createLazyRuntimeNamedExport(() => import("./resolve-targets-BJ5sIKeM.mjs").then((n) => n.n), "resolveMatrixTargets");
627
638
  const matrixResolverAdapter = { resolveTargets: async (params) => (await loadMatrixResolver())(params) };
628
639
  //#endregion
629
640
  //#region extensions/matrix/src/matrix/session-store-metadata.ts
@@ -666,12 +677,12 @@ function resolveMatrixDmSessionScope(params) {
666
677
  accountId: params.accountId
667
678
  }).dm?.sessionScope ?? "per-user";
668
679
  }
669
- function resolveMatrixCurrentDmRoomId(params) {
680
+ async function resolveMatrixCurrentDmRoomId(params) {
670
681
  const sessionKey = parseThreadSessionSuffix(params.currentSessionKey).baseSessionKey ?? params.currentSessionKey?.trim();
671
682
  if (!sessionKey) return;
672
683
  try {
673
684
  const storePath = resolveStorePath(params.cfg.session?.store, { agentId: params.agentId });
674
- const currentSession = resolveMatrixStoredSessionMeta(getSessionEntry({
685
+ const currentSession = resolveMatrixStoredSessionMeta(await getSessionEntryAsync({
675
686
  storePath,
676
687
  sessionKey
677
688
  }));
@@ -683,7 +694,7 @@ function resolveMatrixCurrentDmRoomId(params) {
683
694
  return;
684
695
  }
685
696
  }
686
- function resolveMatrixOutboundSessionRoute(params) {
697
+ async function resolveMatrixOutboundSessionRoute(params) {
687
698
  const target = resolveMatrixTargetIdentity(params.resolvedTarget?.to ?? params.target) ?? resolveMatrixTargetIdentity(params.target);
688
699
  if (!target) return null;
689
700
  const effectiveAccountId = resolveEffectiveMatrixAccountId(params);
@@ -691,7 +702,7 @@ function resolveMatrixOutboundSessionRoute(params) {
691
702
  cfg: params.cfg,
692
703
  accountId: effectiveAccountId
693
704
  });
694
- const roomScopedDmId = target.kind === "user" && dmSessionScope === "per-room" ? resolveMatrixCurrentDmRoomId({
705
+ const roomScopedDmId = target.kind === "user" && dmSessionScope === "per-room" ? await resolveMatrixCurrentDmRoomId({
695
706
  cfg: params.cfg,
696
707
  agentId: params.agentId,
697
708
  accountId: effectiveAccountId,
@@ -735,8 +746,8 @@ function resolveMatrixOutboundSessionRoute(params) {
735
746
  }
736
747
  //#endregion
737
748
  //#region extensions/matrix/src/channel.ts
738
- const loadMatrixChannelRuntime = createLazyRuntimeNamedExport(() => import("./channel.runtime-CUc6rbu1.mjs"), "matrixChannelRuntime");
739
- const loadMatrixMonitorModule = createLazyRuntimeModule(() => import("./monitor-Dk_fQL1k.mjs").catch((error) => {
749
+ const loadMatrixChannelRuntime = createLazyRuntimeNamedExport(() => import("./channel.runtime-2EEtIlyu.mjs"), "matrixChannelRuntime");
750
+ const loadMatrixMonitorModule = createLazyRuntimeModule(() => import("./monitor-DRUSJ_Ev.mjs").catch((error) => {
740
751
  loadMatrixMonitorModule.clear();
741
752
  throw error;
742
753
  }));
@@ -908,7 +919,7 @@ const matrixChannelOutbound = {
908
919
  reconcileUnknownSend: true
909
920
  } },
910
921
  presentationCapabilities: matrixPresentationCapabilities,
911
- shouldSuppressLocalPayloadPrompt: shouldSuppressLocalMatrixExecApprovalPrompt,
922
+ shouldSuppressLocalPayloadPromptAsync: shouldSuppressLocalMatrixExecApprovalPrompt,
912
923
  ...createRuntimeOutboundDelegates({
913
924
  getRuntime: loadMatrixChannelRuntime,
914
925
  renderPresentation: {
@@ -966,7 +977,17 @@ const matrixPlugin = createChatChannelPlugin({
966
977
  targetSessionKey,
967
978
  accountId: accountId ?? "",
968
979
  maxAgeMs
969
- }).map(projectMatrixConversationBinding)
980
+ }).map(projectMatrixConversationBinding),
981
+ setIdleTimeoutBySessionKeyAsync: async ({ targetSessionKey, accountId, idleTimeoutMs }) => (await setMatrixThreadBindingIdleTimeoutBySessionKeyAsync({
982
+ targetSessionKey,
983
+ accountId: accountId ?? "",
984
+ idleTimeoutMs
985
+ })).map(projectMatrixConversationBinding),
986
+ setMaxAgeBySessionKeyAsync: async ({ targetSessionKey, accountId, maxAgeMs }) => (await setMatrixThreadBindingMaxAgeBySessionKeyAsync({
987
+ targetSessionKey,
988
+ accountId: accountId ?? "",
989
+ maxAgeMs
990
+ })).map(projectMatrixConversationBinding)
970
991
  },
971
992
  messaging: {
972
993
  defaultMarkdownTableMode: "block",
@@ -980,7 +1001,7 @@ const matrixPlugin = createChatChannelPlugin({
980
1001
  resolveInboundConversation: resolveMatrixInboundConversation,
981
1002
  resolveDeliveryTarget: resolveMatrixDeliveryTarget,
982
1003
  resolveOutboundSessionRoute: resolveMatrixOutboundSessionRoute,
983
- resolveConversationRouteOwner: resolveMatrixConversationRouteOwner,
1004
+ prepareConversationRouteOwnersAsync: prepareMatrixConversationRouteOwnersAsync,
984
1005
  targetResolver: {
985
1006
  looksLikeId: (raw) => {
986
1007
  const trimmed = raw.trim();
@@ -1138,4 +1159,4 @@ const matrixPlugin = createChatChannelPlugin({
1138
1159
  outbound: matrixChannelOutbound
1139
1160
  });
1140
1161
  //#endregion
1141
- export { resolveMatrixThreadRouting as a, resolveMatrixInboundRoute as i, resolveMatrixStoredSessionMeta as n, resolveMatrixRoomConfig as o, matrixPresentationCapabilities as r, approval_reaction_auth_exports as s, matrixPlugin as t };
1162
+ export { resolveMatrixThreadRouting as a, resolveMatrixInboundRouteAsync as i, resolveMatrixStoredSessionMeta as n, resolveMatrixRoomConfig as o, matrixPresentationCapabilities as r, approval_reaction_auth_exports as s, matrixPlugin as t };
@@ -1,14 +1,14 @@
1
- import { S as reconcileMatrixUnknownSend, o as sendTypingMatrix, r as sendMessageMatrix, x as cleanupMatrixDeliveryPlans } from "./send-LCOuTVc1.mjs";
2
- import { u as resolveMatrixAuth } from "./client-vPPbaxNp.mjs";
3
- import { n as listMatrixDirectoryGroupsLive, r as listMatrixDirectoryPeersLive } from "./directory-live-B1WbfSHo.mjs";
4
- import { t as matrixOutbound } from "./outbound-LR3SqPIq.mjs";
5
- import { t as resolveMatrixTargets } from "./resolve-targets-BVVbbvP6.mjs";
1
+ import { S as reconcileMatrixUnknownSend, o as sendTypingMatrix, r as sendMessageMatrix, x as cleanupMatrixDeliveryPlans } from "./send-BprM-Wmx.mjs";
2
+ import { u as resolveMatrixAuth } from "./client-C4Gibhzl.mjs";
3
+ import { n as listMatrixDirectoryGroupsLive, r as listMatrixDirectoryPeersLive } from "./directory-live-BpSz-FQB.mjs";
4
+ import { t as matrixOutbound } from "./outbound-D5Z_4FBg.mjs";
5
+ import { t as resolveMatrixTargets } from "./resolve-targets-BJ5sIKeM.mjs";
6
6
  import { createLazyRuntimeModule } from "openclaw/plugin-sdk/lazy-runtime";
7
7
  import { formatErrorMessage } from "openclaw/plugin-sdk/error-runtime";
8
8
  import { normalizeOptionalString } from "openclaw/plugin-sdk/string-coerce-runtime";
9
9
  import { runChannelProbe } from "openclaw/plugin-sdk/text-utility-runtime";
10
10
  //#region extensions/matrix/src/matrix/probe.ts
11
- const loadMatrixProbeRuntimeDeps = createLazyRuntimeModule(() => import("./client-vPPbaxNp.mjs").then((n) => n.t));
11
+ const loadMatrixProbeRuntimeDeps = createLazyRuntimeModule(() => import("./client-C4Gibhzl.mjs").then((n) => n.t));
12
12
  async function probeMatrix(params) {
13
13
  return await runChannelProbe(void 0, async () => {
14
14
  const result = {
@@ -1,5 +1,5 @@
1
1
  import { a as resolveMatrixAccountConfig } from "./account-config-CRsKoMqJ.mjs";
2
- import { _ as resolveMatrixAccount, g as resolveDefaultMatrixAccountId, i as matrixSetupContract, m as listMatrixAccountIds, t as createMatrixSetupWizardProxy, v as resolveMatrixAccountAsync } from "./setup-core-CKnNTfgD.mjs";
2
+ import { _ as resolveMatrixAccount, g as resolveDefaultMatrixAccountId, i as matrixSetupContract, m as listMatrixAccountIds, t as createMatrixSetupWizardProxy, v as resolveMatrixAccountAsync } from "./setup-core-DcCk1_Tv.mjs";
3
3
  import { adaptScopedAccountAccessor, createScopedChannelConfigAdapter } from "openclaw/plugin-sdk/channel-config-helpers";
4
4
  import { createChannelConfigUiHints } from "openclaw/plugin-sdk/channel-core";
5
5
  import { normalizeLowercaseStringOrEmpty } from "openclaw/plugin-sdk/string-coerce-runtime";
@@ -70,6 +70,7 @@ const matrixConfigAdapter = {
70
70
  ...createScopedChannelConfigAdapter({
71
71
  sectionKey: "matrix",
72
72
  listAccountIds: listMatrixAccountIds,
73
+ /** @deprecated Use resolveAccountAsync. Final compatibility day: 2026-12-31. */
73
74
  resolveAccount: adaptScopedAccountAccessor(resolveMatrixAccount),
74
75
  resolveAccessorAccount: resolveMatrixAccountConfig,
75
76
  defaultAccountId: resolveDefaultMatrixAccountId,
@@ -314,7 +315,7 @@ const matrixPluginBase = {
314
315
  order: 70,
315
316
  quickstartAllowFrom: true
316
317
  },
317
- setupWizard: createMatrixSetupWizardProxy(async () => ({ matrixSetupWizard: (await import("./onboarding-CrSexor_.mjs").then((n) => n.n)).matrixOnboardingAdapter })),
318
+ setupWizard: createMatrixSetupWizardProxy(async () => ({ matrixSetupWizard: (await import("./onboarding-CK9Ksgio.mjs").then((n) => n.n)).matrixOnboardingAdapter })),
318
319
  setupContract: matrixSetupContract,
319
320
  capabilities: {
320
321
  chatTypes: [
@@ -346,7 +347,11 @@ const matrixSetupPlugin = {
346
347
  ...matrixPluginBase,
347
348
  config: {
348
349
  ...matrixPluginBase.config,
349
- hasConfiguredState: ({ cfg }) => resolveMatrixAccount({ cfg }).configured,
350
+ /** @deprecated Use hasConfiguredStateAsync. Final compatibility day: 2026-12-31. */
351
+ hasConfiguredState: ({ cfg, env }) => resolveMatrixAccount({
352
+ cfg,
353
+ env
354
+ }).configured,
350
355
  hasConfiguredStateAsync: async ({ cfg, env }) => (await resolveMatrixAccountAsync({
351
356
  cfg,
352
357
  env