@openclaw/signal 2026.9.5 → 2026.9.7

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 (1205) hide show
  1. package/assets/icon.png +0 -0
  2. package/dist/.setup/{accounts-BV6tDOTc.mjs → accounts-DMtj2E-4.mjs} +6 -35
  3. package/dist/.setup/api-DEB0Obj8.mjs +16 -0
  4. package/dist/.setup/{api-Cu01dJRP.mjs → api-DmCb6e7E.mjs} +10 -10
  5. package/dist/.setup/{approval-auth-BBI9BTRm.mjs → approval-auth-CszS7gwf.mjs} +7 -13
  6. package/dist/.setup/{approval-handler.runtime-Clf_1IZj.mjs → approval-handler.runtime-D9ofZcZW.mjs} +10 -29
  7. package/dist/.setup/{approval-reactions-B25QoVJc.mjs → approval-reactions-BKkjIAoi.mjs} +25 -36
  8. package/dist/.setup/{channel-gMpZmqLx.mjs → channel-DrUxv5cf.mjs} +567 -136
  9. package/dist/.setup/{client-BseAt7F7.mjs → client-AXcDteBZ.mjs} +63 -152
  10. package/dist/.setup/client-adapter-c_O1ouxZ.mjs +30 -0
  11. package/dist/.setup/{config-schema-aQwwMGUj.mjs → config-schema-DvxZ18SD.mjs} +3 -13
  12. package/dist/.setup/{doctor-contract-api-Rbq_sRTI.mjs → doctor-contract-api-Db9V9gsY.mjs} +212 -91
  13. package/dist/.setup/{identity-YXPmgFMu.mjs → identity-B3JyPqGO.mjs} +2 -6
  14. package/dist/.setup/{install-signal-cli-bXeTrTyL.mjs → install-signal-cli-ChvjzM6X.mjs} +27 -61
  15. package/dist/.setup/legacy-transport-QIpaMNST.mjs +18 -0
  16. package/dist/.setup/{monitor-DAMQw1pZ.mjs → monitor-BfwQr78f.mjs} +102 -130
  17. package/dist/.setup/{probe-IKCS9D-z.mjs → probe-BYLzra6D.mjs} +9 -9
  18. package/dist/.setup/{reaction-runtime-api-BnQGHcrB.mjs → reaction-runtime-api-DDi5x2wC.mjs} +3 -17
  19. package/dist/.setup/{question-reactions-DSNAD0cd.mjs → reaction-targets-CEdyjtrC.mjs} +11 -8
  20. package/dist/.setup/{rpc-context-CwwADZ1b.mjs → rpc-context-D26RxFIm.mjs} +1 -1
  21. package/dist/.setup/runtime-8sxUF217.mjs +8 -0
  22. package/dist/.setup/{send-CcetN4rk.mjs → send-DEjrbpIC.mjs} +25 -55
  23. package/dist/.setup/{channel.runtime-Dqc18A1e.mjs → setup-surface-Drt-4t3R.mjs} +4 -6
  24. package/dist/.setup/transport-detection-BVUDE42e.mjs +25 -0
  25. package/dist/.setup/{transport-policy-5VSnj5ma.mjs → transport-policy-B6C_LogW.mjs} +19 -1
  26. package/dist/.setup/transport-probes.runtime-DwXEHnXr.mjs +2 -0
  27. package/dist/api.js +10 -10
  28. package/dist/channel-config-api.js +1 -1
  29. package/dist/channel-plugin-api.js +1 -1
  30. package/dist/contract-api.js +2 -2
  31. package/dist/doctor-contract-api.js +1 -1
  32. package/dist/reaction-runtime-api.js +1 -1
  33. package/dist/runtime-api.js +2 -19
  34. package/dist/setup-entry.js +1 -1
  35. package/node_modules/@openclaw/fs-safe/CHANGELOG.md +1289 -0
  36. package/node_modules/@openclaw/fs-safe/LICENSE +22 -0
  37. package/node_modules/@openclaw/fs-safe/README.md +672 -0
  38. package/node_modules/@openclaw/fs-safe/SECURITY.md +45 -0
  39. package/node_modules/@openclaw/fs-safe/dist/absolute-path.d.ts +32 -0
  40. package/node_modules/@openclaw/fs-safe/dist/absolute-path.js +323 -0
  41. package/node_modules/@openclaw/fs-safe/dist/advanced.d.ts +41 -0
  42. package/node_modules/@openclaw/fs-safe/dist/advanced.js +40 -0
  43. package/node_modules/@openclaw/fs-safe/dist/archive-crc32.d.ts +1 -0
  44. package/node_modules/@openclaw/fs-safe/dist/archive-crc32.js +19 -0
  45. package/node_modules/@openclaw/fs-safe/dist/archive-deadline.d.ts +11 -0
  46. package/node_modules/@openclaw/fs-safe/dist/archive-deadline.js +101 -0
  47. package/node_modules/@openclaw/fs-safe/dist/archive-durability.d.ts +23 -0
  48. package/node_modules/@openclaw/fs-safe/dist/archive-durability.js +180 -0
  49. package/node_modules/@openclaw/fs-safe/dist/archive-entry.d.ts +13 -0
  50. package/node_modules/@openclaw/fs-safe/dist/archive-entry.js +85 -0
  51. package/node_modules/@openclaw/fs-safe/dist/archive-errors.d.ts +12 -0
  52. package/node_modules/@openclaw/fs-safe/dist/archive-errors.js +23 -0
  53. package/node_modules/@openclaw/fs-safe/dist/archive-gzip-tail.d.ts +20 -0
  54. package/node_modules/@openclaw/fs-safe/dist/archive-gzip-tail.js +99 -0
  55. package/node_modules/@openclaw/fs-safe/dist/archive-input.d.ts +18 -0
  56. package/node_modules/@openclaw/fs-safe/dist/archive-input.js +98 -0
  57. package/node_modules/@openclaw/fs-safe/dist/archive-kind.d.ts +7 -0
  58. package/node_modules/@openclaw/fs-safe/dist/archive-kind.js +71 -0
  59. package/node_modules/@openclaw/fs-safe/dist/archive-limits.d.ts +56 -0
  60. package/node_modules/@openclaw/fs-safe/dist/archive-limits.js +131 -0
  61. package/node_modules/@openclaw/fs-safe/dist/archive-merge.d.ts +22 -0
  62. package/node_modules/@openclaw/fs-safe/dist/archive-merge.js +282 -0
  63. package/node_modules/@openclaw/fs-safe/dist/archive-parser-errors.d.ts +1 -0
  64. package/node_modules/@openclaw/fs-safe/dist/archive-parser-errors.js +12 -0
  65. package/node_modules/@openclaw/fs-safe/dist/archive-parser.wasm +0 -0
  66. package/node_modules/@openclaw/fs-safe/dist/archive-plan.d.ts +85 -0
  67. package/node_modules/@openclaw/fs-safe/dist/archive-plan.js +119 -0
  68. package/node_modules/@openclaw/fs-safe/dist/archive-read.d.ts +5 -0
  69. package/node_modules/@openclaw/fs-safe/dist/archive-read.js +234 -0
  70. package/node_modules/@openclaw/fs-safe/dist/archive-staging.d.ts +32 -0
  71. package/node_modules/@openclaw/fs-safe/dist/archive-staging.js +308 -0
  72. package/node_modules/@openclaw/fs-safe/dist/archive-tar-stream.d.ts +27 -0
  73. package/node_modules/@openclaw/fs-safe/dist/archive-tar-stream.js +127 -0
  74. package/node_modules/@openclaw/fs-safe/dist/archive-tar-wasm.d.ts +29 -0
  75. package/node_modules/@openclaw/fs-safe/dist/archive-tar-wasm.js +203 -0
  76. package/node_modules/@openclaw/fs-safe/dist/archive-zip-admission.d.ts +7 -0
  77. package/node_modules/@openclaw/fs-safe/dist/archive-zip-admission.js +96 -0
  78. package/node_modules/@openclaw/fs-safe/dist/archive-zip-count.d.ts +1 -0
  79. package/node_modules/@openclaw/fs-safe/dist/archive-zip-count.js +160 -0
  80. package/node_modules/@openclaw/fs-safe/dist/archive-zip-directory.d.ts +21 -0
  81. package/node_modules/@openclaw/fs-safe/dist/archive-zip-directory.js +267 -0
  82. package/node_modules/@openclaw/fs-safe/dist/archive-zip-entry.d.ts +24 -0
  83. package/node_modules/@openclaw/fs-safe/dist/archive-zip-entry.js +10 -0
  84. package/node_modules/@openclaw/fs-safe/dist/archive-zip-integrity.d.ts +4 -0
  85. package/node_modules/@openclaw/fs-safe/dist/archive-zip-integrity.js +30 -0
  86. package/node_modules/@openclaw/fs-safe/dist/archive-zip-loader.d.ts +12 -0
  87. package/node_modules/@openclaw/fs-safe/dist/archive-zip-loader.js +150 -0
  88. package/node_modules/@openclaw/fs-safe/dist/archive-zip-manifest.d.ts +4 -0
  89. package/node_modules/@openclaw/fs-safe/dist/archive-zip-manifest.js +24 -0
  90. package/node_modules/@openclaw/fs-safe/dist/archive-zip-names.d.ts +17 -0
  91. package/node_modules/@openclaw/fs-safe/dist/archive-zip-names.js +149 -0
  92. package/node_modules/@openclaw/fs-safe/dist/archive-zip-preflight.d.ts +4 -0
  93. package/node_modules/@openclaw/fs-safe/dist/archive-zip-preflight.js +21 -0
  94. package/node_modules/@openclaw/fs-safe/dist/archive.d.ts +20 -0
  95. package/node_modules/@openclaw/fs-safe/dist/archive.js +332 -0
  96. package/node_modules/@openclaw/fs-safe/dist/async-lock.d.ts +1 -0
  97. package/node_modules/@openclaw/fs-safe/dist/async-lock.js +17 -0
  98. package/node_modules/@openclaw/fs-safe/dist/atomic.d.ts +6 -0
  99. package/node_modules/@openclaw/fs-safe/dist/atomic.js +4 -0
  100. package/node_modules/@openclaw/fs-safe/dist/bounded-read-stream.d.ts +2 -0
  101. package/node_modules/@openclaw/fs-safe/dist/bounded-read-stream.js +15 -0
  102. package/node_modules/@openclaw/fs-safe/dist/bounded-read.d.ts +25 -0
  103. package/node_modules/@openclaw/fs-safe/dist/bounded-read.js +143 -0
  104. package/node_modules/@openclaw/fs-safe/dist/byte-budget.d.ts +3 -0
  105. package/node_modules/@openclaw/fs-safe/dist/byte-budget.js +9 -0
  106. package/node_modules/@openclaw/fs-safe/dist/byte-view.d.ts +2 -0
  107. package/node_modules/@openclaw/fs-safe/dist/byte-view.js +13 -0
  108. package/node_modules/@openclaw/fs-safe/dist/clone-metadata.d.ts +19 -0
  109. package/node_modules/@openclaw/fs-safe/dist/clone-metadata.js +36 -0
  110. package/node_modules/@openclaw/fs-safe/dist/config.d.ts +2 -0
  111. package/node_modules/@openclaw/fs-safe/dist/config.js +2 -0
  112. package/node_modules/@openclaw/fs-safe/dist/containment.d.ts +1 -0
  113. package/node_modules/@openclaw/fs-safe/dist/containment.js +1 -0
  114. package/node_modules/@openclaw/fs-safe/dist/copy-file-input.d.ts +21 -0
  115. package/node_modules/@openclaw/fs-safe/dist/copy-file-input.js +71 -0
  116. package/node_modules/@openclaw/fs-safe/dist/copy-policy.d.ts +2 -0
  117. package/node_modules/@openclaw/fs-safe/dist/copy-policy.js +8 -0
  118. package/node_modules/@openclaw/fs-safe/dist/copy-publication.d.ts +18 -0
  119. package/node_modules/@openclaw/fs-safe/dist/copy-publication.js +29 -0
  120. package/node_modules/@openclaw/fs-safe/dist/copy-tree-portable.d.ts +8 -0
  121. package/node_modules/@openclaw/fs-safe/dist/copy-tree-portable.js +245 -0
  122. package/node_modules/@openclaw/fs-safe/dist/copy.d.ts +15 -0
  123. package/node_modules/@openclaw/fs-safe/dist/copy.js +143 -0
  124. package/node_modules/@openclaw/fs-safe/dist/create-owned-file.d.ts +7 -0
  125. package/node_modules/@openclaw/fs-safe/dist/create-owned-file.js +16 -0
  126. package/node_modules/@openclaw/fs-safe/dist/create.d.ts +17 -0
  127. package/node_modules/@openclaw/fs-safe/dist/create.js +388 -0
  128. package/node_modules/@openclaw/fs-safe/dist/creation-boundary.d.ts +60 -0
  129. package/node_modules/@openclaw/fs-safe/dist/creation-boundary.js +371 -0
  130. package/node_modules/@openclaw/fs-safe/dist/deny-mutation-match.d.ts +2 -0
  131. package/node_modules/@openclaw/fs-safe/dist/deny-mutation-match.js +71 -0
  132. package/node_modules/@openclaw/fs-safe/dist/deny-mutations.d.ts +11 -0
  133. package/node_modules/@openclaw/fs-safe/dist/deny-mutations.js +96 -0
  134. package/node_modules/@openclaw/fs-safe/dist/device-path.d.ts +14 -0
  135. package/node_modules/@openclaw/fs-safe/dist/device-path.js +139 -0
  136. package/node_modules/@openclaw/fs-safe/dist/directory-durability.d.ts +43 -0
  137. package/node_modules/@openclaw/fs-safe/dist/directory-durability.js +286 -0
  138. package/node_modules/@openclaw/fs-safe/dist/directory-entry-path.d.ts +2 -0
  139. package/node_modules/@openclaw/fs-safe/dist/directory-entry-path.js +21 -0
  140. package/node_modules/@openclaw/fs-safe/dist/directory-guard.d.ts +54 -0
  141. package/node_modules/@openclaw/fs-safe/dist/directory-guard.js +176 -0
  142. package/node_modules/@openclaw/fs-safe/dist/directory-mode-node.d.ts +39 -0
  143. package/node_modules/@openclaw/fs-safe/dist/directory-mode-node.js +285 -0
  144. package/node_modules/@openclaw/fs-safe/dist/directory-receipt.d.ts +23 -0
  145. package/node_modules/@openclaw/fs-safe/dist/directory-receipt.js +121 -0
  146. package/node_modules/@openclaw/fs-safe/dist/durability.d.ts +4 -0
  147. package/node_modules/@openclaw/fs-safe/dist/durability.js +3 -0
  148. package/node_modules/@openclaw/fs-safe/dist/effective-uid.d.ts +1 -0
  149. package/node_modules/@openclaw/fs-safe/dist/effective-uid.js +22 -0
  150. package/node_modules/@openclaw/fs-safe/dist/error-detail.d.ts +2 -0
  151. package/node_modules/@openclaw/fs-safe/dist/error-detail.js +13 -0
  152. package/node_modules/@openclaw/fs-safe/dist/errors.d.ts +15 -0
  153. package/node_modules/@openclaw/fs-safe/dist/errors.js +27 -0
  154. package/node_modules/@openclaw/fs-safe/dist/file-cleanup.d.ts +19 -0
  155. package/node_modules/@openclaw/fs-safe/dist/file-cleanup.js +81 -0
  156. package/node_modules/@openclaw/fs-safe/dist/file-contents.d.ts +5 -0
  157. package/node_modules/@openclaw/fs-safe/dist/file-contents.js +40 -0
  158. package/node_modules/@openclaw/fs-safe/dist/file-handle-transfer.d.ts +15 -0
  159. package/node_modules/@openclaw/fs-safe/dist/file-handle-transfer.js +190 -0
  160. package/node_modules/@openclaw/fs-safe/dist/file-hash.d.ts +16 -0
  161. package/node_modules/@openclaw/fs-safe/dist/file-hash.js +296 -0
  162. package/node_modules/@openclaw/fs-safe/dist/file-identity.d.ts +7 -0
  163. package/node_modules/@openclaw/fs-safe/dist/file-identity.js +56 -0
  164. package/node_modules/@openclaw/fs-safe/dist/file-lock-sync-acquisition.d.ts +22 -0
  165. package/node_modules/@openclaw/fs-safe/dist/file-lock-sync-acquisition.js +98 -0
  166. package/node_modules/@openclaw/fs-safe/dist/file-lock-sync-admission.d.ts +17 -0
  167. package/node_modules/@openclaw/fs-safe/dist/file-lock-sync-admission.js +58 -0
  168. package/node_modules/@openclaw/fs-safe/dist/file-lock-sync-root-acquire.d.ts +3 -0
  169. package/node_modules/@openclaw/fs-safe/dist/file-lock-sync-root-acquire.js +303 -0
  170. package/node_modules/@openclaw/fs-safe/dist/file-lock-sync-root-arbitration.d.ts +17 -0
  171. package/node_modules/@openclaw/fs-safe/dist/file-lock-sync-root-arbitration.js +66 -0
  172. package/node_modules/@openclaw/fs-safe/dist/file-lock-sync-root-held.d.ts +25 -0
  173. package/node_modules/@openclaw/fs-safe/dist/file-lock-sync-root-held.js +392 -0
  174. package/node_modules/@openclaw/fs-safe/dist/file-lock-sync-root-io.d.ts +40 -0
  175. package/node_modules/@openclaw/fs-safe/dist/file-lock-sync-root-io.js +209 -0
  176. package/node_modules/@openclaw/fs-safe/dist/file-lock-sync-root-mutation.d.ts +16 -0
  177. package/node_modules/@openclaw/fs-safe/dist/file-lock-sync-root-mutation.js +275 -0
  178. package/node_modules/@openclaw/fs-safe/dist/file-lock-sync-root-options.d.ts +11 -0
  179. package/node_modules/@openclaw/fs-safe/dist/file-lock-sync-root-options.js +58 -0
  180. package/node_modules/@openclaw/fs-safe/dist/file-lock-sync-root-registration.d.ts +1 -0
  181. package/node_modules/@openclaw/fs-safe/dist/file-lock-sync-root-registration.js +90 -0
  182. package/node_modules/@openclaw/fs-safe/dist/file-lock-sync-root.d.ts +34 -0
  183. package/node_modules/@openclaw/fs-safe/dist/file-lock-sync-root.js +288 -0
  184. package/node_modules/@openclaw/fs-safe/dist/file-lock-sync-stale-admission.d.ts +19 -0
  185. package/node_modules/@openclaw/fs-safe/dist/file-lock-sync-stale-admission.js +199 -0
  186. package/node_modules/@openclaw/fs-safe/dist/file-lock-sync.d.ts +17 -0
  187. package/node_modules/@openclaw/fs-safe/dist/file-lock-sync.js +341 -0
  188. package/node_modules/@openclaw/fs-safe/dist/file-lock.d.ts +23 -0
  189. package/node_modules/@openclaw/fs-safe/dist/file-lock.js +66 -0
  190. package/node_modules/@openclaw/fs-safe/dist/file-observation.d.ts +8 -0
  191. package/node_modules/@openclaw/fs-safe/dist/file-observation.js +22 -0
  192. package/node_modules/@openclaw/fs-safe/dist/file-store-boundary.d.ts +34 -0
  193. package/node_modules/@openclaw/fs-safe/dist/file-store-boundary.js +174 -0
  194. package/node_modules/@openclaw/fs-safe/dist/file-store-prune.d.ts +11 -0
  195. package/node_modules/@openclaw/fs-safe/dist/file-store-prune.js +110 -0
  196. package/node_modules/@openclaw/fs-safe/dist/file-store-sync-directory.d.ts +15 -0
  197. package/node_modules/@openclaw/fs-safe/dist/file-store-sync-directory.js +319 -0
  198. package/node_modules/@openclaw/fs-safe/dist/file-store-sync-write.d.ts +9 -0
  199. package/node_modules/@openclaw/fs-safe/dist/file-store-sync-write.js +128 -0
  200. package/node_modules/@openclaw/fs-safe/dist/file-store.d.ts +62 -0
  201. package/node_modules/@openclaw/fs-safe/dist/file-store.js +360 -0
  202. package/node_modules/@openclaw/fs-safe/dist/file-sync.d.ts +4 -0
  203. package/node_modules/@openclaw/fs-safe/dist/file-sync.js +19 -0
  204. package/node_modules/@openclaw/fs-safe/dist/filename.d.ts +8 -0
  205. package/node_modules/@openclaw/fs-safe/dist/filename.js +138 -0
  206. package/node_modules/@openclaw/fs-safe/dist/fs.d.ts +12 -0
  207. package/node_modules/@openclaw/fs-safe/dist/fs.js +30 -0
  208. package/node_modules/@openclaw/fs-safe/dist/guarded-mkdir.d.ts +25 -0
  209. package/node_modules/@openclaw/fs-safe/dist/guarded-mkdir.js +281 -0
  210. package/node_modules/@openclaw/fs-safe/dist/guarded-mutation.d.ts +32 -0
  211. package/node_modules/@openclaw/fs-safe/dist/guarded-mutation.js +81 -0
  212. package/node_modules/@openclaw/fs-safe/dist/guest-dispatch-python.d.ts +1 -0
  213. package/node_modules/@openclaw/fs-safe/dist/guest-dispatch-python.js +68 -0
  214. package/node_modules/@openclaw/fs-safe/dist/guest-native-python.d.ts +3 -0
  215. package/node_modules/@openclaw/fs-safe/dist/guest-native-python.js +127 -0
  216. package/node_modules/@openclaw/fs-safe/dist/guest.d.ts +8 -0
  217. package/node_modules/@openclaw/fs-safe/dist/guest.js +433 -0
  218. package/node_modules/@openclaw/fs-safe/dist/home-dir.d.ts +11 -0
  219. package/node_modules/@openclaw/fs-safe/dist/home-dir.js +149 -0
  220. package/node_modules/@openclaw/fs-safe/dist/index.d.ts +9 -0
  221. package/node_modules/@openclaw/fs-safe/dist/index.js +5 -0
  222. package/node_modules/@openclaw/fs-safe/dist/install-path.d.ts +25 -0
  223. package/node_modules/@openclaw/fs-safe/dist/install-path.js +136 -0
  224. package/node_modules/@openclaw/fs-safe/dist/json-document-store.d.ts +32 -0
  225. package/node_modules/@openclaw/fs-safe/dist/json-document-store.js +105 -0
  226. package/node_modules/@openclaw/fs-safe/dist/json-durable-queue-directory.d.ts +14 -0
  227. package/node_modules/@openclaw/fs-safe/dist/json-durable-queue-directory.js +154 -0
  228. package/node_modules/@openclaw/fs-safe/dist/json-durable-queue-ownership.d.ts +19 -0
  229. package/node_modules/@openclaw/fs-safe/dist/json-durable-queue-ownership.js +355 -0
  230. package/node_modules/@openclaw/fs-safe/dist/json-durable-queue-read.d.ts +5 -0
  231. package/node_modules/@openclaw/fs-safe/dist/json-durable-queue-read.js +65 -0
  232. package/node_modules/@openclaw/fs-safe/dist/json-durable-queue.d.ts +44 -0
  233. package/node_modules/@openclaw/fs-safe/dist/json-durable-queue.js +210 -0
  234. package/node_modules/@openclaw/fs-safe/dist/json-store.d.ts +8 -0
  235. package/node_modules/@openclaw/fs-safe/dist/json-store.js +15 -0
  236. package/node_modules/@openclaw/fs-safe/dist/json-stringify.d.ts +1 -0
  237. package/node_modules/@openclaw/fs-safe/dist/json-stringify.js +7 -0
  238. package/node_modules/@openclaw/fs-safe/dist/json.d.ts +49 -0
  239. package/node_modules/@openclaw/fs-safe/dist/json.js +323 -0
  240. package/node_modules/@openclaw/fs-safe/dist/local-file-access.d.ts +8 -0
  241. package/node_modules/@openclaw/fs-safe/dist/local-file-access.js +81 -0
  242. package/node_modules/@openclaw/fs-safe/dist/local-file-descriptor.d.ts +13 -0
  243. package/node_modules/@openclaw/fs-safe/dist/local-file-descriptor.js +84 -0
  244. package/node_modules/@openclaw/fs-safe/dist/local-roots.d.ts +20 -0
  245. package/node_modules/@openclaw/fs-safe/dist/local-roots.js +160 -0
  246. package/node_modules/@openclaw/fs-safe/dist/lock-config.d.ts +9 -0
  247. package/node_modules/@openclaw/fs-safe/dist/lock-config.js +12 -0
  248. package/node_modules/@openclaw/fs-safe/dist/move-path-cleanup.d.ts +30 -0
  249. package/node_modules/@openclaw/fs-safe/dist/move-path-cleanup.js +224 -0
  250. package/node_modules/@openclaw/fs-safe/dist/move-path-stage.d.ts +7 -0
  251. package/node_modules/@openclaw/fs-safe/dist/move-path-stage.js +56 -0
  252. package/node_modules/@openclaw/fs-safe/dist/move-path.d.ts +20 -0
  253. package/node_modules/@openclaw/fs-safe/dist/move-path.js +390 -0
  254. package/node_modules/@openclaw/fs-safe/dist/mutation-authority.d.ts +8 -0
  255. package/node_modules/@openclaw/fs-safe/dist/mutation-authority.js +41 -0
  256. package/node_modules/@openclaw/fs-safe/dist/native-binding.d.ts +199 -0
  257. package/node_modules/@openclaw/fs-safe/dist/native-binding.js +8 -0
  258. package/node_modules/@openclaw/fs-safe/dist/native-config.d.ts +16 -0
  259. package/node_modules/@openclaw/fs-safe/dist/native-config.js +71 -0
  260. package/node_modules/@openclaw/fs-safe/dist/native-directory-observation.d.ts +16 -0
  261. package/node_modules/@openclaw/fs-safe/dist/native-directory-observation.js +37 -0
  262. package/node_modules/@openclaw/fs-safe/dist/native-fallback-warning.d.ts +3 -0
  263. package/node_modules/@openclaw/fs-safe/dist/native-fallback-warning.js +11 -0
  264. package/node_modules/@openclaw/fs-safe/dist/native-operations.d.ts +15 -0
  265. package/node_modules/@openclaw/fs-safe/dist/native-operations.js +111 -0
  266. package/node_modules/@openclaw/fs-safe/dist/native-parent-admission.d.ts +34 -0
  267. package/node_modules/@openclaw/fs-safe/dist/native-parent-admission.js +147 -0
  268. package/node_modules/@openclaw/fs-safe/dist/native-pinned-write-windows.d.ts +6 -0
  269. package/node_modules/@openclaw/fs-safe/dist/native-pinned-write-windows.js +252 -0
  270. package/node_modules/@openclaw/fs-safe/dist/native-pinned-write.d.ts +4 -0
  271. package/node_modules/@openclaw/fs-safe/dist/native-pinned-write.js +478 -0
  272. package/node_modules/@openclaw/fs-safe/dist/native-policy-directory-observation.d.ts +11 -0
  273. package/node_modules/@openclaw/fs-safe/dist/native-policy-directory-observation.js +61 -0
  274. package/node_modules/@openclaw/fs-safe/dist/native-policy-parent-windows.d.ts +13 -0
  275. package/node_modules/@openclaw/fs-safe/dist/native-policy-parent-windows.js +209 -0
  276. package/node_modules/@openclaw/fs-safe/dist/native-rename-outcome.d.ts +3 -0
  277. package/node_modules/@openclaw/fs-safe/dist/native-rename-outcome.js +8 -0
  278. package/node_modules/@openclaw/fs-safe/dist/native-staged-file.d.ts +45 -0
  279. package/node_modules/@openclaw/fs-safe/dist/native-staged-file.js +442 -0
  280. package/node_modules/@openclaw/fs-safe/dist/native-staged-symlink.d.ts +13 -0
  281. package/node_modules/@openclaw/fs-safe/dist/native-staged-symlink.js +303 -0
  282. package/node_modules/@openclaw/fs-safe/dist/native.d.ts +13 -0
  283. package/node_modules/@openclaw/fs-safe/dist/native.js +209 -0
  284. package/node_modules/@openclaw/fs-safe/dist/opened-file-failure.d.ts +7 -0
  285. package/node_modules/@openclaw/fs-safe/dist/opened-file-failure.js +46 -0
  286. package/node_modules/@openclaw/fs-safe/dist/opened-realpath.d.ts +15 -0
  287. package/node_modules/@openclaw/fs-safe/dist/opened-realpath.js +102 -0
  288. package/node_modules/@openclaw/fs-safe/dist/output.d.ts +16 -0
  289. package/node_modules/@openclaw/fs-safe/dist/output.js +139 -0
  290. package/node_modules/@openclaw/fs-safe/dist/overwrite-file-handle.d.ts +7 -0
  291. package/node_modules/@openclaw/fs-safe/dist/overwrite-file-handle.js +46 -0
  292. package/node_modules/@openclaw/fs-safe/dist/owner-dacl-batch-worker.d.ts +1 -0
  293. package/node_modules/@openclaw/fs-safe/dist/owner-dacl-batch-worker.js +54 -0
  294. package/node_modules/@openclaw/fs-safe/dist/owner-dacl-batch.d.ts +5 -0
  295. package/node_modules/@openclaw/fs-safe/dist/owner-dacl-batch.js +64 -0
  296. package/node_modules/@openclaw/fs-safe/dist/owner-dacl.d.ts +32 -0
  297. package/node_modules/@openclaw/fs-safe/dist/owner-dacl.js +39 -0
  298. package/node_modules/@openclaw/fs-safe/dist/path-case.d.ts +6 -0
  299. package/node_modules/@openclaw/fs-safe/dist/path-case.js +136 -0
  300. package/node_modules/@openclaw/fs-safe/dist/path-policy.d.ts +24 -0
  301. package/node_modules/@openclaw/fs-safe/dist/path-policy.js +49 -0
  302. package/node_modules/@openclaw/fs-safe/dist/path-prefix.d.ts +6 -0
  303. package/node_modules/@openclaw/fs-safe/dist/path-prefix.js +104 -0
  304. package/node_modules/@openclaw/fs-safe/dist/path-scope-lexical.d.ts +13 -0
  305. package/node_modules/@openclaw/fs-safe/dist/path-scope-lexical.js +37 -0
  306. package/node_modules/@openclaw/fs-safe/dist/path-segment-route.d.ts +6 -0
  307. package/node_modules/@openclaw/fs-safe/dist/path-segment-route.js +24 -0
  308. package/node_modules/@openclaw/fs-safe/dist/path-suffix-aliases.d.ts +11 -0
  309. package/node_modules/@openclaw/fs-safe/dist/path-suffix-aliases.js +394 -0
  310. package/node_modules/@openclaw/fs-safe/dist/path.d.ts +20 -0
  311. package/node_modules/@openclaw/fs-safe/dist/path.js +185 -0
  312. package/node_modules/@openclaw/fs-safe/dist/permission-exec.d.ts +32 -0
  313. package/node_modules/@openclaw/fs-safe/dist/permission-exec.js +194 -0
  314. package/node_modules/@openclaw/fs-safe/dist/permissions-public.d.ts +5 -0
  315. package/node_modules/@openclaw/fs-safe/dist/permissions-public.js +4 -0
  316. package/node_modules/@openclaw/fs-safe/dist/permissions-windows.d.ts +48 -0
  317. package/node_modules/@openclaw/fs-safe/dist/permissions-windows.js +319 -0
  318. package/node_modules/@openclaw/fs-safe/dist/permissions.d.ts +52 -0
  319. package/node_modules/@openclaw/fs-safe/dist/permissions.js +131 -0
  320. package/node_modules/@openclaw/fs-safe/dist/pinned-mutation-admission.d.ts +23 -0
  321. package/node_modules/@openclaw/fs-safe/dist/pinned-mutation-admission.js +421 -0
  322. package/node_modules/@openclaw/fs-safe/dist/pinned-mutation-observation.d.ts +38 -0
  323. package/node_modules/@openclaw/fs-safe/dist/pinned-mutation-observation.js +205 -0
  324. package/node_modules/@openclaw/fs-safe/dist/pinned-mutation-shared-route.d.ts +18 -0
  325. package/node_modules/@openclaw/fs-safe/dist/pinned-mutation-shared-route.js +70 -0
  326. package/node_modules/@openclaw/fs-safe/dist/pinned-open.d.ts +30 -0
  327. package/node_modules/@openclaw/fs-safe/dist/pinned-open.js +98 -0
  328. package/node_modules/@openclaw/fs-safe/dist/pinned-operation.d.ts +1 -0
  329. package/node_modules/@openclaw/fs-safe/dist/pinned-operation.js +22 -0
  330. package/node_modules/@openclaw/fs-safe/dist/pinned-write-input.d.ts +3 -0
  331. package/node_modules/@openclaw/fs-safe/dist/pinned-write-input.js +35 -0
  332. package/node_modules/@openclaw/fs-safe/dist/pinned-write-mode.d.ts +4 -0
  333. package/node_modules/@openclaw/fs-safe/dist/pinned-write-mode.js +31 -0
  334. package/node_modules/@openclaw/fs-safe/dist/pinned-write-staged.d.ts +5 -0
  335. package/node_modules/@openclaw/fs-safe/dist/pinned-write-staged.js +185 -0
  336. package/node_modules/@openclaw/fs-safe/dist/pinned-write-types.d.ts +68 -0
  337. package/node_modules/@openclaw/fs-safe/dist/pinned-write-types.js +1 -0
  338. package/node_modules/@openclaw/fs-safe/dist/pinned-write.d.ts +12 -0
  339. package/node_modules/@openclaw/fs-safe/dist/pinned-write.js +300 -0
  340. package/node_modules/@openclaw/fs-safe/dist/positional-read.d.ts +8 -0
  341. package/node_modules/@openclaw/fs-safe/dist/positional-read.js +36 -0
  342. package/node_modules/@openclaw/fs-safe/dist/private-directory.d.ts +4 -0
  343. package/node_modules/@openclaw/fs-safe/dist/private-directory.js +30 -0
  344. package/node_modules/@openclaw/fs-safe/dist/private-producer-handoff-sync.d.ts +3 -0
  345. package/node_modules/@openclaw/fs-safe/dist/private-producer-handoff-sync.js +72 -0
  346. package/node_modules/@openclaw/fs-safe/dist/private-producer-handoff.d.ts +53 -0
  347. package/node_modules/@openclaw/fs-safe/dist/private-producer-handoff.js +358 -0
  348. package/node_modules/@openclaw/fs-safe/dist/private-temp-workspace.d.ts +7 -0
  349. package/node_modules/@openclaw/fs-safe/dist/private-temp-workspace.js +341 -0
  350. package/node_modules/@openclaw/fs-safe/dist/publish-copy-stage.d.ts +13 -0
  351. package/node_modules/@openclaw/fs-safe/dist/publish-copy-stage.js +60 -0
  352. package/node_modules/@openclaw/fs-safe/dist/publish-file-failure.d.ts +27 -0
  353. package/node_modules/@openclaw/fs-safe/dist/publish-file-failure.js +22 -0
  354. package/node_modules/@openclaw/fs-safe/dist/publish-file.d.ts +19 -0
  355. package/node_modules/@openclaw/fs-safe/dist/publish-file.js +332 -0
  356. package/node_modules/@openclaw/fs-safe/dist/read-open-flags.d.ts +7 -0
  357. package/node_modules/@openclaw/fs-safe/dist/read-open-flags.js +13 -0
  358. package/node_modules/@openclaw/fs-safe/dist/read-opened-file.d.ts +17 -0
  359. package/node_modules/@openclaw/fs-safe/dist/read-opened-file.js +18 -0
  360. package/node_modules/@openclaw/fs-safe/dist/realpath.d.ts +3 -0
  361. package/node_modules/@openclaw/fs-safe/dist/realpath.js +43 -0
  362. package/node_modules/@openclaw/fs-safe/dist/recursive-mkdir-path.d.ts +2 -0
  363. package/node_modules/@openclaw/fs-safe/dist/recursive-mkdir-path.js +8 -0
  364. package/node_modules/@openclaw/fs-safe/dist/regular-file.d.ts +37 -0
  365. package/node_modules/@openclaw/fs-safe/dist/regular-file.js +317 -0
  366. package/node_modules/@openclaw/fs-safe/dist/replace-directory.d.ts +6 -0
  367. package/node_modules/@openclaw/fs-safe/dist/replace-directory.js +275 -0
  368. package/node_modules/@openclaw/fs-safe/dist/replace-file-buffer.d.ts +4 -0
  369. package/node_modules/@openclaw/fs-safe/dist/replace-file-buffer.js +36 -0
  370. package/node_modules/@openclaw/fs-safe/dist/replace-file-copy-fallback.d.ts +32 -0
  371. package/node_modules/@openclaw/fs-safe/dist/replace-file-copy-fallback.js +369 -0
  372. package/node_modules/@openclaw/fs-safe/dist/replace-file-copy-source.d.ts +20 -0
  373. package/node_modules/@openclaw/fs-safe/dist/replace-file-copy-source.js +101 -0
  374. package/node_modules/@openclaw/fs-safe/dist/replace-file-descriptor.d.ts +46 -0
  375. package/node_modules/@openclaw/fs-safe/dist/replace-file-descriptor.js +168 -0
  376. package/node_modules/@openclaw/fs-safe/dist/replace-file-destination.d.ts +21 -0
  377. package/node_modules/@openclaw/fs-safe/dist/replace-file-destination.js +123 -0
  378. package/node_modules/@openclaw/fs-safe/dist/replace-file-mode.d.ts +2 -0
  379. package/node_modules/@openclaw/fs-safe/dist/replace-file-mode.js +10 -0
  380. package/node_modules/@openclaw/fs-safe/dist/replace-file-mutation.d.ts +26 -0
  381. package/node_modules/@openclaw/fs-safe/dist/replace-file-mutation.js +47 -0
  382. package/node_modules/@openclaw/fs-safe/dist/replace-file-rename-policy.d.ts +5 -0
  383. package/node_modules/@openclaw/fs-safe/dist/replace-file-rename-policy.js +30 -0
  384. package/node_modules/@openclaw/fs-safe/dist/replace-file-temp-owner.d.ts +49 -0
  385. package/node_modules/@openclaw/fs-safe/dist/replace-file-temp-owner.js +368 -0
  386. package/node_modules/@openclaw/fs-safe/dist/replace-file-types.d.ts +55 -0
  387. package/node_modules/@openclaw/fs-safe/dist/replace-file-types.js +1 -0
  388. package/node_modules/@openclaw/fs-safe/dist/replace-file.d.ts +6 -0
  389. package/node_modules/@openclaw/fs-safe/dist/replace-file.js +356 -0
  390. package/node_modules/@openclaw/fs-safe/dist/retained-directory-replacement.d.ts +26 -0
  391. package/node_modules/@openclaw/fs-safe/dist/retained-directory-replacement.js +193 -0
  392. package/node_modules/@openclaw/fs-safe/dist/retained-file-types.d.ts +50 -0
  393. package/node_modules/@openclaw/fs-safe/dist/retained-file-types.js +1 -0
  394. package/node_modules/@openclaw/fs-safe/dist/retained-file.d.ts +3 -0
  395. package/node_modules/@openclaw/fs-safe/dist/retained-file.js +121 -0
  396. package/node_modules/@openclaw/fs-safe/dist/root-boundary.d.ts +29 -0
  397. package/node_modules/@openclaw/fs-safe/dist/root-boundary.js +186 -0
  398. package/node_modules/@openclaw/fs-safe/dist/root-context.d.ts +43 -0
  399. package/node_modules/@openclaw/fs-safe/dist/root-context.js +233 -0
  400. package/node_modules/@openclaw/fs-safe/dist/root-create-input.d.ts +16 -0
  401. package/node_modules/@openclaw/fs-safe/dist/root-create-input.js +93 -0
  402. package/node_modules/@openclaw/fs-safe/dist/root-directory-creation.d.ts +12 -0
  403. package/node_modules/@openclaw/fs-safe/dist/root-directory-creation.js +225 -0
  404. package/node_modules/@openclaw/fs-safe/dist/root-directory-entry.d.ts +9 -0
  405. package/node_modules/@openclaw/fs-safe/dist/root-directory-entry.js +28 -0
  406. package/node_modules/@openclaw/fs-safe/dist/root-directory-list.d.ts +46 -0
  407. package/node_modules/@openclaw/fs-safe/dist/root-directory-list.js +433 -0
  408. package/node_modules/@openclaw/fs-safe/dist/root-directory.d.ts +22 -0
  409. package/node_modules/@openclaw/fs-safe/dist/root-directory.js +141 -0
  410. package/node_modules/@openclaw/fs-safe/dist/root-entries.d.ts +10 -0
  411. package/node_modules/@openclaw/fs-safe/dist/root-entries.js +61 -0
  412. package/node_modules/@openclaw/fs-safe/dist/root-errors.d.ts +16 -0
  413. package/node_modules/@openclaw/fs-safe/dist/root-errors.js +92 -0
  414. package/node_modules/@openclaw/fs-safe/dist/root-file-final-admission.d.ts +20 -0
  415. package/node_modules/@openclaw/fs-safe/dist/root-file-final-admission.js +81 -0
  416. package/node_modules/@openclaw/fs-safe/dist/root-file.d.ts +46 -0
  417. package/node_modules/@openclaw/fs-safe/dist/root-file.js +205 -0
  418. package/node_modules/@openclaw/fs-safe/dist/root-handle-context.d.ts +4 -0
  419. package/node_modules/@openclaw/fs-safe/dist/root-handle-context.js +12 -0
  420. package/node_modules/@openclaw/fs-safe/dist/root-impl.d.ts +117 -0
  421. package/node_modules/@openclaw/fs-safe/dist/root-impl.js +1446 -0
  422. package/node_modules/@openclaw/fs-safe/dist/root-move-noreplace.d.ts +10 -0
  423. package/node_modules/@openclaw/fs-safe/dist/root-move-noreplace.js +205 -0
  424. package/node_modules/@openclaw/fs-safe/dist/root-move-preflight.d.ts +7 -0
  425. package/node_modules/@openclaw/fs-safe/dist/root-move-preflight.js +16 -0
  426. package/node_modules/@openclaw/fs-safe/dist/root-observed-path.d.ts +7 -0
  427. package/node_modules/@openclaw/fs-safe/dist/root-observed-path.js +90 -0
  428. package/node_modules/@openclaw/fs-safe/dist/root-options.d.ts +84 -0
  429. package/node_modules/@openclaw/fs-safe/dist/root-options.js +18 -0
  430. package/node_modules/@openclaw/fs-safe/dist/root-path-errors.d.ts +12 -0
  431. package/node_modules/@openclaw/fs-safe/dist/root-path-errors.js +22 -0
  432. package/node_modules/@openclaw/fs-safe/dist/root-path-existing.d.ts +12 -0
  433. package/node_modules/@openclaw/fs-safe/dist/root-path-existing.js +160 -0
  434. package/node_modules/@openclaw/fs-safe/dist/root-path-observation.d.ts +55 -0
  435. package/node_modules/@openclaw/fs-safe/dist/root-path-observation.js +180 -0
  436. package/node_modules/@openclaw/fs-safe/dist/root-path-stat.d.ts +4 -0
  437. package/node_modules/@openclaw/fs-safe/dist/root-path-stat.js +151 -0
  438. package/node_modules/@openclaw/fs-safe/dist/root-path.d.ts +53 -0
  439. package/node_modules/@openclaw/fs-safe/dist/root-path.js +440 -0
  440. package/node_modules/@openclaw/fs-safe/dist/root-paths-lexical.d.ts +8 -0
  441. package/node_modules/@openclaw/fs-safe/dist/root-paths-lexical.js +22 -0
  442. package/node_modules/@openclaw/fs-safe/dist/root-paths.d.ts +58 -0
  443. package/node_modules/@openclaw/fs-safe/dist/root-paths.js +296 -0
  444. package/node_modules/@openclaw/fs-safe/dist/root-public-types.d.ts +11 -0
  445. package/node_modules/@openclaw/fs-safe/dist/root-public-types.js +1 -0
  446. package/node_modules/@openclaw/fs-safe/dist/root-read-admission.d.ts +25 -0
  447. package/node_modules/@openclaw/fs-safe/dist/root-read-admission.js +86 -0
  448. package/node_modules/@openclaw/fs-safe/dist/root-remove-identity.d.ts +12 -0
  449. package/node_modules/@openclaw/fs-safe/dist/root-remove-identity.js +87 -0
  450. package/node_modules/@openclaw/fs-safe/dist/root-remove-receipt.d.ts +16 -0
  451. package/node_modules/@openclaw/fs-safe/dist/root-remove-receipt.js +37 -0
  452. package/node_modules/@openclaw/fs-safe/dist/root-remove.d.ts +6 -0
  453. package/node_modules/@openclaw/fs-safe/dist/root-remove.js +464 -0
  454. package/node_modules/@openclaw/fs-safe/dist/root-symlink-policy.d.ts +13 -0
  455. package/node_modules/@openclaw/fs-safe/dist/root-symlink-policy.js +34 -0
  456. package/node_modules/@openclaw/fs-safe/dist/root-walk.d.ts +48 -0
  457. package/node_modules/@openclaw/fs-safe/dist/root-walk.js +234 -0
  458. package/node_modules/@openclaw/fs-safe/dist/root-write-admission.d.ts +65 -0
  459. package/node_modules/@openclaw/fs-safe/dist/root-write-admission.js +299 -0
  460. package/node_modules/@openclaw/fs-safe/dist/root-write-compatibility.d.ts +11 -0
  461. package/node_modules/@openclaw/fs-safe/dist/root-write-compatibility.js +23 -0
  462. package/node_modules/@openclaw/fs-safe/dist/root-write-complete-parent.d.ts +43 -0
  463. package/node_modules/@openclaw/fs-safe/dist/root-write-complete-parent.js +180 -0
  464. package/node_modules/@openclaw/fs-safe/dist/root-write-lock-binding.d.ts +14 -0
  465. package/node_modules/@openclaw/fs-safe/dist/root-write-lock-binding.js +162 -0
  466. package/node_modules/@openclaw/fs-safe/dist/root-write-mode.d.ts +7 -0
  467. package/node_modules/@openclaw/fs-safe/dist/root-write-mode.js +72 -0
  468. package/node_modules/@openclaw/fs-safe/dist/root-write-publication.d.ts +23 -0
  469. package/node_modules/@openclaw/fs-safe/dist/root-write-publication.js +85 -0
  470. package/node_modules/@openclaw/fs-safe/dist/root-write-verification.d.ts +11 -0
  471. package/node_modules/@openclaw/fs-safe/dist/root-write-verification.js +95 -0
  472. package/node_modules/@openclaw/fs-safe/dist/root.d.ts +2 -0
  473. package/node_modules/@openclaw/fs-safe/dist/root.js +1 -0
  474. package/node_modules/@openclaw/fs-safe/dist/safe-path-segment.d.ts +12 -0
  475. package/node_modules/@openclaw/fs-safe/dist/safe-path-segment.js +80 -0
  476. package/node_modules/@openclaw/fs-safe/dist/secret-file.d.ts +29 -0
  477. package/node_modules/@openclaw/fs-safe/dist/secret-file.js +333 -0
  478. package/node_modules/@openclaw/fs-safe/dist/secret-read-async.d.ts +3 -0
  479. package/node_modules/@openclaw/fs-safe/dist/secret-read-async.js +58 -0
  480. package/node_modules/@openclaw/fs-safe/dist/secret-read-policy.d.ts +20 -0
  481. package/node_modules/@openclaw/fs-safe/dist/secret-read-policy.js +68 -0
  482. package/node_modules/@openclaw/fs-safe/dist/secret.d.ts +3 -0
  483. package/node_modules/@openclaw/fs-safe/dist/secret.js +3 -0
  484. package/node_modules/@openclaw/fs-safe/dist/secure-file-windows.d.ts +10 -0
  485. package/node_modules/@openclaw/fs-safe/dist/secure-file-windows.js +79 -0
  486. package/node_modules/@openclaw/fs-safe/dist/secure-file.d.ts +31 -0
  487. package/node_modules/@openclaw/fs-safe/dist/secure-file.js +298 -0
  488. package/node_modules/@openclaw/fs-safe/dist/secure-temp-dir.d.ts +29 -0
  489. package/node_modules/@openclaw/fs-safe/dist/secure-temp-dir.js +176 -0
  490. package/node_modules/@openclaw/fs-safe/dist/secure-temp-repair.d.ts +34 -0
  491. package/node_modules/@openclaw/fs-safe/dist/secure-temp-repair.js +110 -0
  492. package/node_modules/@openclaw/fs-safe/dist/sibling-staged-file.d.ts +17 -0
  493. package/node_modules/@openclaw/fs-safe/dist/sibling-staged-file.js +301 -0
  494. package/node_modules/@openclaw/fs-safe/dist/sibling-temp.d.ts +28 -0
  495. package/node_modules/@openclaw/fs-safe/dist/sibling-temp.js +132 -0
  496. package/node_modules/@openclaw/fs-safe/dist/sidecar-lock-acquire.d.ts +4 -0
  497. package/node_modules/@openclaw/fs-safe/dist/sidecar-lock-acquire.js +442 -0
  498. package/node_modules/@openclaw/fs-safe/dist/sidecar-lock-admission-context.d.ts +18 -0
  499. package/node_modules/@openclaw/fs-safe/dist/sidecar-lock-admission-context.js +60 -0
  500. package/node_modules/@openclaw/fs-safe/dist/sidecar-lock-admission-parser.d.ts +41 -0
  501. package/node_modules/@openclaw/fs-safe/dist/sidecar-lock-admission-parser.js +113 -0
  502. package/node_modules/@openclaw/fs-safe/dist/sidecar-lock-admission.d.ts +31 -0
  503. package/node_modules/@openclaw/fs-safe/dist/sidecar-lock-admission.js +1 -0
  504. package/node_modules/@openclaw/fs-safe/dist/sidecar-lock-handle.d.ts +20 -0
  505. package/node_modules/@openclaw/fs-safe/dist/sidecar-lock-handle.js +48 -0
  506. package/node_modules/@openclaw/fs-safe/dist/sidecar-lock-policy.d.ts +14 -0
  507. package/node_modules/@openclaw/fs-safe/dist/sidecar-lock-policy.js +113 -0
  508. package/node_modules/@openclaw/fs-safe/dist/sidecar-lock-reclaim.d.ts +67 -0
  509. package/node_modules/@openclaw/fs-safe/dist/sidecar-lock-reclaim.js +374 -0
  510. package/node_modules/@openclaw/fs-safe/dist/sidecar-lock-registration.d.ts +13 -0
  511. package/node_modules/@openclaw/fs-safe/dist/sidecar-lock-registration.js +47 -0
  512. package/node_modules/@openclaw/fs-safe/dist/sidecar-lock-root.d.ts +2 -0
  513. package/node_modules/@openclaw/fs-safe/dist/sidecar-lock-root.js +79 -0
  514. package/node_modules/@openclaw/fs-safe/dist/sidecar-lock-stale-admission.d.ts +34 -0
  515. package/node_modules/@openclaw/fs-safe/dist/sidecar-lock-stale-admission.js +228 -0
  516. package/node_modules/@openclaw/fs-safe/dist/sidecar-lock-target.d.ts +7 -0
  517. package/node_modules/@openclaw/fs-safe/dist/sidecar-lock-target.js +55 -0
  518. package/node_modules/@openclaw/fs-safe/dist/sidecar-lock-types.d.ts +68 -0
  519. package/node_modules/@openclaw/fs-safe/dist/sidecar-lock-types.js +1 -0
  520. package/node_modules/@openclaw/fs-safe/dist/sidecar-lock.d.ts +13 -0
  521. package/node_modules/@openclaw/fs-safe/dist/sidecar-lock.js +282 -0
  522. package/node_modules/@openclaw/fs-safe/dist/staged-directory.d.ts +27 -0
  523. package/node_modules/@openclaw/fs-safe/dist/staged-directory.js +148 -0
  524. package/node_modules/@openclaw/fs-safe/dist/staged-file-settlement.d.ts +16 -0
  525. package/node_modules/@openclaw/fs-safe/dist/staged-file-settlement.js +57 -0
  526. package/node_modules/@openclaw/fs-safe/dist/staged-file-types.d.ts +55 -0
  527. package/node_modules/@openclaw/fs-safe/dist/staged-file-types.js +1 -0
  528. package/node_modules/@openclaw/fs-safe/dist/staged-symlink-types.d.ts +39 -0
  529. package/node_modules/@openclaw/fs-safe/dist/staged-symlink-types.js +1 -0
  530. package/node_modules/@openclaw/fs-safe/dist/stat-observation.d.ts +10 -0
  531. package/node_modules/@openclaw/fs-safe/dist/stat-observation.js +57 -0
  532. package/node_modules/@openclaw/fs-safe/dist/store.d.ts +3 -0
  533. package/node_modules/@openclaw/fs-safe/dist/store.js +3 -0
  534. package/node_modules/@openclaw/fs-safe/dist/strict-file-identity.d.ts +7 -0
  535. package/node_modules/@openclaw/fs-safe/dist/strict-file-identity.js +88 -0
  536. package/node_modules/@openclaw/fs-safe/dist/string-coerce.d.ts +4 -0
  537. package/node_modules/@openclaw/fs-safe/dist/string-coerce.js +16 -0
  538. package/node_modules/@openclaw/fs-safe/dist/suppressed-error.d.ts +5 -0
  539. package/node_modules/@openclaw/fs-safe/dist/suppressed-error.js +15 -0
  540. package/node_modules/@openclaw/fs-safe/dist/symlink-parents.d.ts +11 -0
  541. package/node_modules/@openclaw/fs-safe/dist/symlink-parents.js +109 -0
  542. package/node_modules/@openclaw/fs-safe/dist/temp-cleanup.d.ts +13 -0
  543. package/node_modules/@openclaw/fs-safe/dist/temp-cleanup.js +88 -0
  544. package/node_modules/@openclaw/fs-safe/dist/temp-target.d.ts +31 -0
  545. package/node_modules/@openclaw/fs-safe/dist/temp-target.js +236 -0
  546. package/node_modules/@openclaw/fs-safe/dist/temp-workspace-admission.d.ts +14 -0
  547. package/node_modules/@openclaw/fs-safe/dist/temp-workspace-admission.js +387 -0
  548. package/node_modules/@openclaw/fs-safe/dist/temp-workspace-child-admission.d.ts +23 -0
  549. package/node_modules/@openclaw/fs-safe/dist/temp-workspace-child-admission.js +150 -0
  550. package/node_modules/@openclaw/fs-safe/dist/temp-workspace-descriptor.d.ts +42 -0
  551. package/node_modules/@openclaw/fs-safe/dist/temp-workspace-descriptor.js +341 -0
  552. package/node_modules/@openclaw/fs-safe/dist/temp-workspace-owner.d.ts +24 -0
  553. package/node_modules/@openclaw/fs-safe/dist/temp-workspace-owner.js +398 -0
  554. package/node_modules/@openclaw/fs-safe/dist/temp-workspace-ownership.d.ts +8 -0
  555. package/node_modules/@openclaw/fs-safe/dist/temp-workspace-ownership.js +52 -0
  556. package/node_modules/@openclaw/fs-safe/dist/temp-workspace-types.d.ts +39 -0
  557. package/node_modules/@openclaw/fs-safe/dist/temp-workspace-types.js +1 -0
  558. package/node_modules/@openclaw/fs-safe/dist/temp.d.ts +3 -0
  559. package/node_modules/@openclaw/fs-safe/dist/temp.js +2 -0
  560. package/node_modules/@openclaw/fs-safe/dist/test-hooks.d.ts +35 -0
  561. package/node_modules/@openclaw/fs-safe/dist/test-hooks.js +13 -0
  562. package/node_modules/@openclaw/fs-safe/dist/text-atomic.d.ts +14 -0
  563. package/node_modules/@openclaw/fs-safe/dist/text-atomic.js +18 -0
  564. package/node_modules/@openclaw/fs-safe/dist/timing.d.ts +8 -0
  565. package/node_modules/@openclaw/fs-safe/dist/timing.js +59 -0
  566. package/node_modules/@openclaw/fs-safe/dist/trash.d.ts +4 -0
  567. package/node_modules/@openclaw/fs-safe/dist/trash.js +245 -0
  568. package/node_modules/@openclaw/fs-safe/dist/types.d.ts +22 -0
  569. package/node_modules/@openclaw/fs-safe/dist/types.js +1 -0
  570. package/node_modules/@openclaw/fs-safe/dist/unicode-path.d.ts +2 -0
  571. package/node_modules/@openclaw/fs-safe/dist/unicode-path.js +16 -0
  572. package/node_modules/@openclaw/fs-safe/dist/walk.d.ts +37 -0
  573. package/node_modules/@openclaw/fs-safe/dist/walk.js +207 -0
  574. package/node_modules/@openclaw/fs-safe/dist/watch-alias.d.ts +6 -0
  575. package/node_modules/@openclaw/fs-safe/dist/watch-alias.js +88 -0
  576. package/node_modules/@openclaw/fs-safe/dist/watch-hints.d.ts +9 -0
  577. package/node_modules/@openclaw/fs-safe/dist/watch-hints.js +93 -0
  578. package/node_modules/@openclaw/fs-safe/dist/watch-native.d.ts +36 -0
  579. package/node_modules/@openclaw/fs-safe/dist/watch-native.js +73 -0
  580. package/node_modules/@openclaw/fs-safe/dist/watch-scan.d.ts +28 -0
  581. package/node_modules/@openclaw/fs-safe/dist/watch-scan.js +300 -0
  582. package/node_modules/@openclaw/fs-safe/dist/watch-stream.d.ts +8 -0
  583. package/node_modules/@openclaw/fs-safe/dist/watch-stream.js +32 -0
  584. package/node_modules/@openclaw/fs-safe/dist/watch-types.d.ts +60 -0
  585. package/node_modules/@openclaw/fs-safe/dist/watch-types.js +1 -0
  586. package/node_modules/@openclaw/fs-safe/dist/watch.d.ts +5 -0
  587. package/node_modules/@openclaw/fs-safe/dist/watch.js +530 -0
  588. package/node_modules/@openclaw/fs-safe/dist/windows-command.d.ts +1 -0
  589. package/node_modules/@openclaw/fs-safe/dist/windows-command.js +34 -0
  590. package/node_modules/@openclaw/fs-safe/dist/windows-owner.d.ts +24 -0
  591. package/node_modules/@openclaw/fs-safe/dist/windows-owner.js +100 -0
  592. package/node_modules/@openclaw/fs-safe/dist/windows-path-alias.d.ts +39 -0
  593. package/node_modules/@openclaw/fs-safe/dist/windows-path-alias.js +122 -0
  594. package/node_modules/@openclaw/fs-safe/dist/windows-path-syntax.d.ts +5 -0
  595. package/node_modules/@openclaw/fs-safe/dist/windows-path-syntax.js +21 -0
  596. package/node_modules/@openclaw/fs-safe/dist/windows-security-bridge.cs +336 -0
  597. package/node_modules/@openclaw/fs-safe/dist/windows-security-bridge.ps1 +90 -0
  598. package/node_modules/@openclaw/fs-safe/dist/windows-security-command.d.ts +33 -0
  599. package/node_modules/@openclaw/fs-safe/dist/windows-security-command.js +414 -0
  600. package/node_modules/@openclaw/fs-safe/dist/windows-security-facts.d.ts +9 -0
  601. package/node_modules/@openclaw/fs-safe/dist/windows-security-facts.js +112 -0
  602. package/node_modules/@openclaw/fs-safe/dist/write-file-handle.d.ts +13 -0
  603. package/node_modules/@openclaw/fs-safe/dist/write-file-handle.js +49 -0
  604. package/node_modules/@openclaw/fs-safe/dist/write-open-flags.d.ts +4 -0
  605. package/node_modules/@openclaw/fs-safe/dist/write-open-flags.js +27 -0
  606. package/node_modules/@openclaw/fs-safe/dist/write-queue.d.ts +1 -0
  607. package/node_modules/@openclaw/fs-safe/dist/write-queue.js +15 -0
  608. package/node_modules/@openclaw/fs-safe/docs/advanced.md +271 -0
  609. package/node_modules/@openclaw/fs-safe/docs/archive.md +859 -0
  610. package/node_modules/@openclaw/fs-safe/docs/assets/readme-banner.jpg +0 -0
  611. package/node_modules/@openclaw/fs-safe/docs/atomic.md +611 -0
  612. package/node_modules/@openclaw/fs-safe/docs/config.md +136 -0
  613. package/node_modules/@openclaw/fs-safe/docs/contributing.md +360 -0
  614. package/node_modules/@openclaw/fs-safe/docs/copy.md +199 -0
  615. package/node_modules/@openclaw/fs-safe/docs/creation.md +132 -0
  616. package/node_modules/@openclaw/fs-safe/docs/directory-identity.md +85 -0
  617. package/node_modules/@openclaw/fs-safe/docs/durability.md +445 -0
  618. package/node_modules/@openclaw/fs-safe/docs/entries.md +109 -0
  619. package/node_modules/@openclaw/fs-safe/docs/errors.md +240 -0
  620. package/node_modules/@openclaw/fs-safe/docs/file-contents.md +68 -0
  621. package/node_modules/@openclaw/fs-safe/docs/file-store.md +369 -0
  622. package/node_modules/@openclaw/fs-safe/docs/filename.md +110 -0
  623. package/node_modules/@openclaw/fs-safe/docs/guest.md +152 -0
  624. package/node_modules/@openclaw/fs-safe/docs/in-place-write.md +81 -0
  625. package/node_modules/@openclaw/fs-safe/docs/index.md +87 -0
  626. package/node_modules/@openclaw/fs-safe/docs/install-path.md +216 -0
  627. package/node_modules/@openclaw/fs-safe/docs/install.md +252 -0
  628. package/node_modules/@openclaw/fs-safe/docs/json-store.md +240 -0
  629. package/node_modules/@openclaw/fs-safe/docs/json.md +225 -0
  630. package/node_modules/@openclaw/fs-safe/docs/local-roots.md +150 -0
  631. package/node_modules/@openclaw/fs-safe/docs/migrating-to-0.5.md +205 -0
  632. package/node_modules/@openclaw/fs-safe/docs/migrating-to-0.6.md +48 -0
  633. package/node_modules/@openclaw/fs-safe/docs/mutation-policy-proof.md +69 -0
  634. package/node_modules/@openclaw/fs-safe/docs/native-helper.md +193 -0
  635. package/node_modules/@openclaw/fs-safe/docs/native.md +351 -0
  636. package/node_modules/@openclaw/fs-safe/docs/output.md +193 -0
  637. package/node_modules/@openclaw/fs-safe/docs/path-case.md +64 -0
  638. package/node_modules/@openclaw/fs-safe/docs/path-prefix.md +74 -0
  639. package/node_modules/@openclaw/fs-safe/docs/path-scope.md +159 -0
  640. package/node_modules/@openclaw/fs-safe/docs/path-suffix-aliases.md +204 -0
  641. package/node_modules/@openclaw/fs-safe/docs/path.md +219 -0
  642. package/node_modules/@openclaw/fs-safe/docs/permissions.md +352 -0
  643. package/node_modules/@openclaw/fs-safe/docs/positional-read.md +63 -0
  644. package/node_modules/@openclaw/fs-safe/docs/private-file-store.md +68 -0
  645. package/node_modules/@openclaw/fs-safe/docs/public-api.md +188 -0
  646. package/node_modules/@openclaw/fs-safe/docs/quickstart.md +154 -0
  647. package/node_modules/@openclaw/fs-safe/docs/reading.md +196 -0
  648. package/node_modules/@openclaw/fs-safe/docs/regular-file.md +193 -0
  649. package/node_modules/@openclaw/fs-safe/docs/retained-file.md +115 -0
  650. package/node_modules/@openclaw/fs-safe/docs/root.md +571 -0
  651. package/node_modules/@openclaw/fs-safe/docs/secret-file.md +318 -0
  652. package/node_modules/@openclaw/fs-safe/docs/secure-file.md +112 -0
  653. package/node_modules/@openclaw/fs-safe/docs/security-model.md +272 -0
  654. package/node_modules/@openclaw/fs-safe/docs/sidecar-lock.md +599 -0
  655. package/node_modules/@openclaw/fs-safe/docs/staged-file.md +192 -0
  656. package/node_modules/@openclaw/fs-safe/docs/staged-symlink.md +124 -0
  657. package/node_modules/@openclaw/fs-safe/docs/store.md +129 -0
  658. package/node_modules/@openclaw/fs-safe/docs/temp.md +780 -0
  659. package/node_modules/@openclaw/fs-safe/docs/test-hooks.md +110 -0
  660. package/node_modules/@openclaw/fs-safe/docs/testing.md +399 -0
  661. package/node_modules/@openclaw/fs-safe/docs/timing.md +123 -0
  662. package/node_modules/@openclaw/fs-safe/docs/types.md +217 -0
  663. package/node_modules/@openclaw/fs-safe/docs/walk.md +283 -0
  664. package/node_modules/@openclaw/fs-safe/docs/watch.md +251 -0
  665. package/node_modules/@openclaw/fs-safe/docs/writing.md +662 -0
  666. package/node_modules/@openclaw/fs-safe/package.json +204 -0
  667. package/node_modules/@openclaw/fs-safe-darwin-arm64/fs-safe-native.node +0 -0
  668. package/node_modules/@openclaw/fs-safe-darwin-arm64/package.json +29 -0
  669. package/node_modules/@openclaw/fs-safe-darwin-x64/fs-safe-native.node +0 -0
  670. package/node_modules/@openclaw/fs-safe-darwin-x64/package.json +29 -0
  671. package/node_modules/@openclaw/fs-safe-linux-arm64-gnu/fs-safe-native.node +0 -0
  672. package/node_modules/@openclaw/fs-safe-linux-arm64-gnu/package.json +32 -0
  673. package/node_modules/@openclaw/fs-safe-linux-arm64-musl/fs-safe-native.node +0 -0
  674. package/node_modules/@openclaw/fs-safe-linux-arm64-musl/package.json +32 -0
  675. package/node_modules/@openclaw/fs-safe-linux-x64-gnu/fs-safe-native.node +0 -0
  676. package/node_modules/@openclaw/fs-safe-linux-x64-gnu/package.json +32 -0
  677. package/node_modules/@openclaw/fs-safe-linux-x64-musl/fs-safe-native.node +0 -0
  678. package/node_modules/@openclaw/fs-safe-linux-x64-musl/package.json +32 -0
  679. package/node_modules/@openclaw/fs-safe-win32-x64-msvc/fs-safe-native.node +0 -0
  680. package/node_modules/@openclaw/fs-safe-win32-x64-msvc/package.json +29 -0
  681. package/node_modules/core-util-is/LICENSE +19 -0
  682. package/node_modules/core-util-is/README.md +3 -0
  683. package/node_modules/core-util-is/lib/util.js +107 -0
  684. package/node_modules/core-util-is/package.json +38 -0
  685. package/node_modules/immediate/LICENSE.txt +20 -0
  686. package/node_modules/immediate/README.md +93 -0
  687. package/node_modules/immediate/dist/immediate.js +75 -0
  688. package/node_modules/immediate/dist/immediate.min.js +1 -0
  689. package/node_modules/immediate/lib/browser.js +69 -0
  690. package/node_modules/immediate/lib/index.js +73 -0
  691. package/node_modules/immediate/package.json +42 -0
  692. package/node_modules/inherits/LICENSE +16 -0
  693. package/node_modules/inherits/README.md +42 -0
  694. package/node_modules/inherits/inherits.js +9 -0
  695. package/node_modules/inherits/inherits_browser.js +27 -0
  696. package/node_modules/inherits/package.json +29 -0
  697. package/node_modules/isarray/.npmignore +1 -0
  698. package/node_modules/isarray/.travis.yml +4 -0
  699. package/node_modules/isarray/Makefile +6 -0
  700. package/node_modules/isarray/README.md +60 -0
  701. package/node_modules/isarray/component.json +19 -0
  702. package/node_modules/isarray/index.js +5 -0
  703. package/node_modules/isarray/package.json +45 -0
  704. package/node_modules/isarray/test.js +20 -0
  705. package/node_modules/jszip/.codeclimate.yml +16 -0
  706. package/node_modules/jszip/.editorconfig +8 -0
  707. package/node_modules/jszip/.eslintrc.js +43 -0
  708. package/node_modules/jszip/.github/FUNDING.yml +1 -0
  709. package/node_modules/jszip/.github/actions/setup/action.yml +23 -0
  710. package/node_modules/jszip/.github/workflows/benchmark.yml +38 -0
  711. package/node_modules/jszip/.github/workflows/main.yml +55 -0
  712. package/node_modules/jszip/CHANGES.md +210 -0
  713. package/node_modules/jszip/LICENSE.markdown +651 -0
  714. package/node_modules/jszip/README.markdown +33 -0
  715. package/node_modules/jszip/dist/jszip.js +11586 -0
  716. package/node_modules/jszip/dist/jszip.min.js +13 -0
  717. package/node_modules/jszip/index.d.ts +344 -0
  718. package/node_modules/jszip/lib/base64.js +106 -0
  719. package/node_modules/jszip/lib/compressedObject.js +74 -0
  720. package/node_modules/jszip/lib/compressions.js +14 -0
  721. package/node_modules/jszip/lib/crc32.js +77 -0
  722. package/node_modules/jszip/lib/defaults.js +11 -0
  723. package/node_modules/jszip/lib/external.js +18 -0
  724. package/node_modules/jszip/lib/flate.js +85 -0
  725. package/node_modules/jszip/lib/generate/ZipFileWorker.js +539 -0
  726. package/node_modules/jszip/lib/generate/index.js +57 -0
  727. package/node_modules/jszip/lib/index.js +55 -0
  728. package/node_modules/jszip/lib/license_header.js +11 -0
  729. package/node_modules/jszip/lib/load.js +88 -0
  730. package/node_modules/jszip/lib/nodejs/NodejsStreamInputAdapter.js +74 -0
  731. package/node_modules/jszip/lib/nodejs/NodejsStreamOutputAdapter.js +42 -0
  732. package/node_modules/jszip/lib/nodejsUtils.js +57 -0
  733. package/node_modules/jszip/lib/object.js +384 -0
  734. package/node_modules/jszip/lib/readable-stream-browser.js +10 -0
  735. package/node_modules/jszip/lib/reader/ArrayReader.js +57 -0
  736. package/node_modules/jszip/lib/reader/DataReader.js +116 -0
  737. package/node_modules/jszip/lib/reader/NodeBufferReader.js +19 -0
  738. package/node_modules/jszip/lib/reader/StringReader.js +38 -0
  739. package/node_modules/jszip/lib/reader/Uint8ArrayReader.js +22 -0
  740. package/node_modules/jszip/lib/reader/readerFor.js +28 -0
  741. package/node_modules/jszip/lib/signature.js +7 -0
  742. package/node_modules/jszip/lib/stream/ConvertWorker.js +26 -0
  743. package/node_modules/jszip/lib/stream/Crc32Probe.js +24 -0
  744. package/node_modules/jszip/lib/stream/DataLengthProbe.js +29 -0
  745. package/node_modules/jszip/lib/stream/DataWorker.js +116 -0
  746. package/node_modules/jszip/lib/stream/GenericWorker.js +263 -0
  747. package/node_modules/jszip/lib/stream/StreamHelper.js +214 -0
  748. package/node_modules/jszip/lib/support.js +38 -0
  749. package/node_modules/jszip/lib/utf8.js +275 -0
  750. package/node_modules/jszip/lib/utils.js +510 -0
  751. package/node_modules/jszip/lib/zipEntries.js +261 -0
  752. package/node_modules/jszip/lib/zipEntry.js +293 -0
  753. package/node_modules/jszip/lib/zipObject.js +133 -0
  754. package/node_modules/jszip/package.json +67 -0
  755. package/node_modules/jszip/sponsors.md +21 -0
  756. package/node_modules/jszip/tsconfig.json +101 -0
  757. package/node_modules/jszip/vendor/FileSaver.js +247 -0
  758. package/node_modules/lie/README.md +62 -0
  759. package/node_modules/lie/dist/lie.js +350 -0
  760. package/node_modules/lie/dist/lie.min.js +1 -0
  761. package/node_modules/lie/dist/lie.polyfill.js +358 -0
  762. package/node_modules/lie/dist/lie.polyfill.min.js +1 -0
  763. package/node_modules/lie/lib/browser.js +273 -0
  764. package/node_modules/lie/lib/index.js +298 -0
  765. package/node_modules/lie/license.md +7 -0
  766. package/node_modules/lie/lie.d.ts +244 -0
  767. package/node_modules/lie/package.json +69 -0
  768. package/node_modules/lie/polyfill.js +4 -0
  769. package/node_modules/pako/CHANGELOG.md +164 -0
  770. package/node_modules/pako/LICENSE +21 -0
  771. package/node_modules/pako/README.md +191 -0
  772. package/node_modules/pako/dist/pako.js +6818 -0
  773. package/node_modules/pako/dist/pako.min.js +1 -0
  774. package/node_modules/pako/dist/pako_deflate.js +3997 -0
  775. package/node_modules/pako/dist/pako_deflate.min.js +1 -0
  776. package/node_modules/pako/dist/pako_inflate.js +3300 -0
  777. package/node_modules/pako/dist/pako_inflate.min.js +1 -0
  778. package/node_modules/pako/index.js +14 -0
  779. package/node_modules/pako/lib/deflate.js +400 -0
  780. package/node_modules/pako/lib/inflate.js +423 -0
  781. package/node_modules/pako/lib/utils/common.js +105 -0
  782. package/node_modules/pako/lib/utils/strings.js +187 -0
  783. package/node_modules/pako/lib/zlib/README +59 -0
  784. package/node_modules/pako/lib/zlib/adler32.js +51 -0
  785. package/node_modules/pako/lib/zlib/constants.js +68 -0
  786. package/node_modules/pako/lib/zlib/crc32.js +59 -0
  787. package/node_modules/pako/lib/zlib/deflate.js +1874 -0
  788. package/node_modules/pako/lib/zlib/gzheader.js +58 -0
  789. package/node_modules/pako/lib/zlib/inffast.js +345 -0
  790. package/node_modules/pako/lib/zlib/inflate.js +1556 -0
  791. package/node_modules/pako/lib/zlib/inftrees.js +343 -0
  792. package/node_modules/pako/lib/zlib/messages.js +32 -0
  793. package/node_modules/pako/lib/zlib/trees.js +1222 -0
  794. package/node_modules/pako/lib/zlib/zstream.js +47 -0
  795. package/node_modules/pako/package.json +44 -0
  796. package/node_modules/process-nextick-args/index.js +45 -0
  797. package/node_modules/process-nextick-args/license.md +19 -0
  798. package/node_modules/process-nextick-args/package.json +25 -0
  799. package/node_modules/process-nextick-args/readme.md +18 -0
  800. package/node_modules/readable-stream/.travis.yml +34 -0
  801. package/node_modules/readable-stream/CONTRIBUTING.md +38 -0
  802. package/node_modules/readable-stream/GOVERNANCE.md +136 -0
  803. package/node_modules/readable-stream/LICENSE +47 -0
  804. package/node_modules/readable-stream/README.md +58 -0
  805. package/node_modules/readable-stream/doc/wg-meetings/2015-01-30.md +60 -0
  806. package/node_modules/readable-stream/duplex-browser.js +1 -0
  807. package/node_modules/readable-stream/duplex.js +1 -0
  808. package/node_modules/readable-stream/lib/_stream_duplex.js +131 -0
  809. package/node_modules/readable-stream/lib/_stream_passthrough.js +47 -0
  810. package/node_modules/readable-stream/lib/_stream_readable.js +1019 -0
  811. package/node_modules/readable-stream/lib/_stream_transform.js +214 -0
  812. package/node_modules/readable-stream/lib/_stream_writable.js +685 -0
  813. package/node_modules/readable-stream/lib/internal/streams/BufferList.js +78 -0
  814. package/node_modules/readable-stream/lib/internal/streams/destroy.js +84 -0
  815. package/node_modules/readable-stream/lib/internal/streams/stream-browser.js +1 -0
  816. package/node_modules/readable-stream/lib/internal/streams/stream.js +1 -0
  817. package/node_modules/readable-stream/package.json +52 -0
  818. package/node_modules/readable-stream/passthrough.js +1 -0
  819. package/node_modules/readable-stream/readable-browser.js +7 -0
  820. package/node_modules/readable-stream/readable.js +19 -0
  821. package/node_modules/readable-stream/transform.js +1 -0
  822. package/node_modules/readable-stream/writable-browser.js +1 -0
  823. package/node_modules/readable-stream/writable.js +8 -0
  824. package/node_modules/safe-buffer/LICENSE +21 -0
  825. package/node_modules/safe-buffer/README.md +584 -0
  826. package/node_modules/safe-buffer/index.d.ts +187 -0
  827. package/node_modules/safe-buffer/index.js +62 -0
  828. package/node_modules/safe-buffer/package.json +37 -0
  829. package/node_modules/setimmediate/LICENSE.txt +20 -0
  830. package/node_modules/setimmediate/package.json +30 -0
  831. package/node_modules/setimmediate/setImmediate.js +186 -0
  832. package/node_modules/string_decoder/.travis.yml +50 -0
  833. package/node_modules/string_decoder/LICENSE +48 -0
  834. package/node_modules/string_decoder/README.md +47 -0
  835. package/node_modules/string_decoder/lib/string_decoder.js +296 -0
  836. package/node_modules/string_decoder/package.json +31 -0
  837. package/node_modules/util-deprecate/History.md +16 -0
  838. package/node_modules/util-deprecate/LICENSE +24 -0
  839. package/node_modules/util-deprecate/README.md +53 -0
  840. package/node_modules/util-deprecate/browser.js +67 -0
  841. package/node_modules/util-deprecate/node.js +6 -0
  842. package/node_modules/util-deprecate/package.json +27 -0
  843. package/node_modules/zod/README.md +2 -2
  844. package/node_modules/zod/compile.cjs +19 -0
  845. package/node_modules/zod/index.cjs +19 -0
  846. package/node_modules/zod/locales/index.cjs +19 -0
  847. package/node_modules/zod/mini/index.cjs +19 -0
  848. package/node_modules/zod/package.json +8 -7
  849. package/node_modules/zod/src/v3/helpers/errorUtil.ts +1 -1
  850. package/node_modules/zod/src/v4/classic/external.ts +2 -0
  851. package/node_modules/zod/src/v4/classic/from-json-schema.ts +248 -25
  852. package/node_modules/zod/src/v4/classic/schemas.ts +243 -168
  853. package/node_modules/zod/src/v4/classic/tests/assignability.test.ts +60 -9
  854. package/node_modules/zod/src/v4/classic/tests/bigint.test.ts +6 -0
  855. package/node_modules/zod/src/v4/classic/tests/continuability.test.ts +2 -2
  856. package/node_modules/zod/src/v4/classic/tests/cyclic-data.test.ts +265 -0
  857. package/node_modules/zod/src/v4/classic/tests/discriminated-unions.test.ts +112 -6
  858. package/node_modules/zod/src/v4/classic/tests/enum.test.ts +9 -0
  859. package/node_modules/zod/src/v4/classic/tests/error.test.ts +130 -1
  860. package/node_modules/zod/src/v4/classic/tests/from-json-schema.test.ts +157 -0
  861. package/node_modules/zod/src/v4/classic/tests/iban.test.ts +81 -0
  862. package/node_modules/zod/src/v4/classic/tests/instance-footprint.test.ts +40 -2
  863. package/node_modules/zod/src/v4/classic/tests/instanceof.test.ts +27 -7
  864. package/node_modules/zod/src/v4/classic/tests/issue-schema.test.ts +88 -56
  865. package/node_modules/zod/src/v4/classic/tests/number.test.ts +39 -0
  866. package/node_modules/zod/src/v4/classic/tests/object.test.ts +56 -0
  867. package/node_modules/zod/src/v4/classic/tests/optin-ladder.test.ts +3 -2
  868. package/node_modules/zod/src/v4/classic/tests/prefault.test.ts +70 -0
  869. package/node_modules/zod/src/v4/classic/tests/properties.test.ts +141 -0
  870. package/node_modules/zod/src/v4/classic/tests/recursive-types.test.ts +46 -1
  871. package/node_modules/zod/src/v4/classic/tests/standard-schema.test.ts +19 -0
  872. package/node_modules/zod/src/v4/classic/tests/string.test.ts +95 -1
  873. package/node_modules/zod/src/v4/classic/tests/template-literal.test.ts +33 -1
  874. package/node_modules/zod/src/v4/classic/tests/to-json-schema.test.ts +234 -38
  875. package/node_modules/zod/src/v4/classic/tests/validate.test.ts +569 -0
  876. package/node_modules/zod/src/v4/core/api.ts +44 -28
  877. package/node_modules/zod/src/v4/core/checks.ts +62 -102
  878. package/node_modules/zod/src/v4/core/compile.ts +218 -93
  879. package/node_modules/zod/src/v4/core/core.ts +1 -3
  880. package/node_modules/zod/src/v4/core/doc.ts +6 -2
  881. package/node_modules/zod/src/v4/core/errors.ts +3 -6
  882. package/node_modules/zod/src/v4/core/json-schema-generator.ts +2 -2
  883. package/node_modules/zod/src/v4/core/json-schema-processors.ts +185 -81
  884. package/node_modules/zod/src/v4/core/memoizer.ts +75 -28
  885. package/node_modules/zod/src/v4/core/parse.ts +37 -16
  886. package/node_modules/zod/src/v4/core/regexes.ts +14 -4
  887. package/node_modules/zod/src/v4/core/schemas.ts +296 -132
  888. package/node_modules/zod/src/v4/core/tests/cached.test.ts +54 -0
  889. package/node_modules/zod/src/v4/core/tests/compile-differential.test.ts +35 -0
  890. package/node_modules/zod/src/v4/core/tests/compile-generative.test.ts +445 -0
  891. package/node_modules/zod/src/v4/core/tests/compile.test.ts +399 -2
  892. package/node_modules/zod/src/v4/core/tests/email-regex.test.ts +140 -0
  893. package/node_modules/zod/src/v4/core/tests/locales/tg.test.ts +85 -0
  894. package/node_modules/zod/src/v4/core/tests/polyfill-collision.test.ts +46 -0
  895. package/node_modules/zod/src/v4/core/tests/url-no-canparse.test.ts +118 -16
  896. package/node_modules/zod/src/v4/core/to-json-schema.ts +9 -7
  897. package/node_modules/zod/src/v4/core/util.ts +218 -147
  898. package/node_modules/zod/src/v4/core/versions.ts +2 -2
  899. package/node_modules/zod/src/v4/locales/ar.ts +2 -0
  900. package/node_modules/zod/src/v4/locales/az.ts +2 -0
  901. package/node_modules/zod/src/v4/locales/be.ts +2 -0
  902. package/node_modules/zod/src/v4/locales/bg.ts +2 -0
  903. package/node_modules/zod/src/v4/locales/bn.ts +2 -0
  904. package/node_modules/zod/src/v4/locales/ca.ts +2 -0
  905. package/node_modules/zod/src/v4/locales/ckb.ts +2 -0
  906. package/node_modules/zod/src/v4/locales/cs.ts +2 -0
  907. package/node_modules/zod/src/v4/locales/da.ts +2 -0
  908. package/node_modules/zod/src/v4/locales/de.ts +2 -0
  909. package/node_modules/zod/src/v4/locales/el.ts +2 -0
  910. package/node_modules/zod/src/v4/locales/en.ts +2 -0
  911. package/node_modules/zod/src/v4/locales/eo.ts +2 -0
  912. package/node_modules/zod/src/v4/locales/es.ts +2 -0
  913. package/node_modules/zod/src/v4/locales/fa.ts +2 -0
  914. package/node_modules/zod/src/v4/locales/fi.ts +2 -0
  915. package/node_modules/zod/src/v4/locales/fr-CA.ts +2 -0
  916. package/node_modules/zod/src/v4/locales/fr.ts +2 -0
  917. package/node_modules/zod/src/v4/locales/gu.ts +2 -0
  918. package/node_modules/zod/src/v4/locales/he.ts +2 -0
  919. package/node_modules/zod/src/v4/locales/hi.ts +2 -0
  920. package/node_modules/zod/src/v4/locales/hr.ts +2 -0
  921. package/node_modules/zod/src/v4/locales/hu.ts +2 -0
  922. package/node_modules/zod/src/v4/locales/hy.ts +2 -0
  923. package/node_modules/zod/src/v4/locales/id.ts +2 -0
  924. package/node_modules/zod/src/v4/locales/index.ts +1 -0
  925. package/node_modules/zod/src/v4/locales/is.ts +2 -0
  926. package/node_modules/zod/src/v4/locales/it.ts +2 -0
  927. package/node_modules/zod/src/v4/locales/ja.ts +2 -0
  928. package/node_modules/zod/src/v4/locales/ka.ts +2 -0
  929. package/node_modules/zod/src/v4/locales/km.ts +2 -0
  930. package/node_modules/zod/src/v4/locales/kn.ts +2 -0
  931. package/node_modules/zod/src/v4/locales/ko.ts +2 -0
  932. package/node_modules/zod/src/v4/locales/lt.ts +2 -0
  933. package/node_modules/zod/src/v4/locales/mk.ts +2 -0
  934. package/node_modules/zod/src/v4/locales/ms.ts +2 -0
  935. package/node_modules/zod/src/v4/locales/ne.ts +2 -0
  936. package/node_modules/zod/src/v4/locales/nl.ts +2 -0
  937. package/node_modules/zod/src/v4/locales/nn.ts +2 -0
  938. package/node_modules/zod/src/v4/locales/no.ts +2 -0
  939. package/node_modules/zod/src/v4/locales/ota.ts +2 -0
  940. package/node_modules/zod/src/v4/locales/pl.ts +2 -0
  941. package/node_modules/zod/src/v4/locales/ps.ts +2 -0
  942. package/node_modules/zod/src/v4/locales/pt-BR.ts +2 -0
  943. package/node_modules/zod/src/v4/locales/pt.ts +2 -0
  944. package/node_modules/zod/src/v4/locales/ro.ts +2 -0
  945. package/node_modules/zod/src/v4/locales/ru.ts +2 -0
  946. package/node_modules/zod/src/v4/locales/sk.ts +2 -0
  947. package/node_modules/zod/src/v4/locales/sl.ts +2 -0
  948. package/node_modules/zod/src/v4/locales/sv.ts +2 -0
  949. package/node_modules/zod/src/v4/locales/ta.ts +2 -0
  950. package/node_modules/zod/src/v4/locales/tg.ts +135 -0
  951. package/node_modules/zod/src/v4/locales/th.ts +2 -0
  952. package/node_modules/zod/src/v4/locales/tk.ts +2 -0
  953. package/node_modules/zod/src/v4/locales/tr.ts +2 -0
  954. package/node_modules/zod/src/v4/locales/uk.ts +2 -0
  955. package/node_modules/zod/src/v4/locales/ur.ts +2 -0
  956. package/node_modules/zod/src/v4/locales/uz.ts +2 -0
  957. package/node_modules/zod/src/v4/locales/vi.ts +2 -0
  958. package/node_modules/zod/src/v4/locales/yo.ts +2 -0
  959. package/node_modules/zod/src/v4/locales/zh-CN.ts +2 -0
  960. package/node_modules/zod/src/v4/locales/zh-TW.ts +2 -0
  961. package/node_modules/zod/src/v4/mini/external.ts +2 -0
  962. package/node_modules/zod/src/v4/mini/schemas.ts +32 -7
  963. package/node_modules/zod/src/v4/mini/tests/checks.test.ts +1 -1
  964. package/node_modules/zod/src/v4/mini/tests/computed.test.ts +11 -17
  965. package/node_modules/zod/src/v4/mini/tests/index.test.ts +86 -0
  966. package/node_modules/zod/src/v4/mini/tests/recursive-types.test.ts +16 -0
  967. package/node_modules/zod/src/v4/mini/tests/string.test.ts +23 -0
  968. package/node_modules/zod/v3/ZodError.cjs +19 -0
  969. package/node_modules/zod/v3/errors.cjs +19 -0
  970. package/node_modules/zod/v3/external.cjs +19 -0
  971. package/node_modules/zod/v3/helpers/enumUtil.cjs +19 -0
  972. package/node_modules/zod/v3/helpers/errorUtil.cjs +20 -1
  973. package/node_modules/zod/v3/helpers/errorUtil.js +1 -1
  974. package/node_modules/zod/v3/helpers/parseUtil.cjs +19 -0
  975. package/node_modules/zod/v3/helpers/partialUtil.cjs +19 -0
  976. package/node_modules/zod/v3/helpers/typeAliases.cjs +19 -0
  977. package/node_modules/zod/v3/helpers/util.cjs +19 -0
  978. package/node_modules/zod/v3/index.cjs +19 -0
  979. package/node_modules/zod/v3/standard-schema.cjs +19 -0
  980. package/node_modules/zod/v3/types.cjs +19 -0
  981. package/node_modules/zod/v4/classic/checks.cjs +19 -0
  982. package/node_modules/zod/v4/classic/coerce.cjs +19 -0
  983. package/node_modules/zod/v4/classic/compat.cjs +19 -0
  984. package/node_modules/zod/v4/classic/deep-partial.cjs +19 -0
  985. package/node_modules/zod/v4/classic/errors.cjs +19 -0
  986. package/node_modules/zod/v4/classic/external.cjs +22 -1
  987. package/node_modules/zod/v4/classic/external.d.cts +1 -1
  988. package/node_modules/zod/v4/classic/external.d.ts +1 -1
  989. package/node_modules/zod/v4/classic/external.js +1 -1
  990. package/node_modules/zod/v4/classic/from-json-schema.cjs +264 -24
  991. package/node_modules/zod/v4/classic/from-json-schema.js +245 -24
  992. package/node_modules/zod/v4/classic/in-out.cjs +19 -0
  993. package/node_modules/zod/v4/classic/index.cjs +19 -0
  994. package/node_modules/zod/v4/classic/iso.cjs +19 -0
  995. package/node_modules/zod/v4/classic/parse.cjs +19 -0
  996. package/node_modules/zod/v4/classic/schemas.cjs +100 -35
  997. package/node_modules/zod/v4/classic/schemas.d.cts +15 -1
  998. package/node_modules/zod/v4/classic/schemas.d.ts +15 -1
  999. package/node_modules/zod/v4/classic/schemas.js +77 -33
  1000. package/node_modules/zod/v4/core/api.cjs +45 -22
  1001. package/node_modules/zod/v4/core/api.d.cts +12 -6
  1002. package/node_modules/zod/v4/core/api.d.ts +12 -6
  1003. package/node_modules/zod/v4/core/api.js +25 -22
  1004. package/node_modules/zod/v4/core/checks.cjs +51 -97
  1005. package/node_modules/zod/v4/core/checks.d.cts +17 -1
  1006. package/node_modules/zod/v4/core/checks.d.ts +17 -1
  1007. package/node_modules/zod/v4/core/checks.js +31 -96
  1008. package/node_modules/zod/v4/core/compile.cjs +173 -78
  1009. package/node_modules/zod/v4/core/compile.d.cts +18 -4
  1010. package/node_modules/zod/v4/core/compile.d.ts +18 -4
  1011. package/node_modules/zod/v4/core/compile.js +154 -79
  1012. package/node_modules/zod/v4/core/core.cjs +20 -1
  1013. package/node_modules/zod/v4/core/core.js +1 -1
  1014. package/node_modules/zod/v4/core/doc.cjs +26 -2
  1015. package/node_modules/zod/v4/core/doc.js +7 -2
  1016. package/node_modules/zod/v4/core/errors.cjs +21 -5
  1017. package/node_modules/zod/v4/core/errors.js +2 -5
  1018. package/node_modules/zod/v4/core/index.cjs +19 -0
  1019. package/node_modules/zod/v4/core/json-schema-generator.cjs +20 -1
  1020. package/node_modules/zod/v4/core/json-schema-generator.js +2 -2
  1021. package/node_modules/zod/v4/core/json-schema-processors.cjs +188 -72
  1022. package/node_modules/zod/v4/core/json-schema-processors.d.cts +16 -0
  1023. package/node_modules/zod/v4/core/json-schema-processors.d.ts +16 -0
  1024. package/node_modules/zod/v4/core/json-schema-processors.js +170 -74
  1025. package/node_modules/zod/v4/core/json-schema.cjs +19 -0
  1026. package/node_modules/zod/v4/core/memoizer.cjs +111 -23
  1027. package/node_modules/zod/v4/core/memoizer.js +69 -23
  1028. package/node_modules/zod/v4/core/parse.cjs +56 -16
  1029. package/node_modules/zod/v4/core/parse.js +37 -16
  1030. package/node_modules/zod/v4/core/regexes.cjs +31 -6
  1031. package/node_modules/zod/v4/core/regexes.d.cts +3 -0
  1032. package/node_modules/zod/v4/core/regexes.d.ts +3 -0
  1033. package/node_modules/zod/v4/core/regexes.js +10 -4
  1034. package/node_modules/zod/v4/core/registries.cjs +19 -0
  1035. package/node_modules/zod/v4/core/schemas.cjs +302 -114
  1036. package/node_modules/zod/v4/core/schemas.d.cts +28 -8
  1037. package/node_modules/zod/v4/core/schemas.d.ts +28 -8
  1038. package/node_modules/zod/v4/core/schemas.js +279 -113
  1039. package/node_modules/zod/v4/core/standard-schema.cjs +19 -0
  1040. package/node_modules/zod/v4/core/to-json-schema.cjs +28 -7
  1041. package/node_modules/zod/v4/core/to-json-schema.d.cts +4 -3
  1042. package/node_modules/zod/v4/core/to-json-schema.d.ts +4 -3
  1043. package/node_modules/zod/v4/core/to-json-schema.js +7 -6
  1044. package/node_modules/zod/v4/core/util.cjs +177 -143
  1045. package/node_modules/zod/v4/core/util.d.cts +25 -4
  1046. package/node_modules/zod/v4/core/util.d.ts +25 -4
  1047. package/node_modules/zod/v4/core/util.js +156 -143
  1048. package/node_modules/zod/v4/core/versions.cjs +21 -2
  1049. package/node_modules/zod/v4/core/versions.d.cts +1 -1
  1050. package/node_modules/zod/v4/core/versions.d.ts +1 -1
  1051. package/node_modules/zod/v4/core/versions.js +2 -2
  1052. package/node_modules/zod/v4/core/visit.cjs +19 -0
  1053. package/node_modules/zod/v4/index.cjs +19 -0
  1054. package/node_modules/zod/v4/locales/ar.cjs +2 -0
  1055. package/node_modules/zod/v4/locales/ar.js +2 -0
  1056. package/node_modules/zod/v4/locales/az.cjs +2 -0
  1057. package/node_modules/zod/v4/locales/az.js +2 -0
  1058. package/node_modules/zod/v4/locales/be.cjs +2 -0
  1059. package/node_modules/zod/v4/locales/be.js +2 -0
  1060. package/node_modules/zod/v4/locales/bg.cjs +2 -0
  1061. package/node_modules/zod/v4/locales/bg.js +2 -0
  1062. package/node_modules/zod/v4/locales/bn.cjs +2 -0
  1063. package/node_modules/zod/v4/locales/bn.js +2 -0
  1064. package/node_modules/zod/v4/locales/ca.cjs +2 -0
  1065. package/node_modules/zod/v4/locales/ca.js +2 -0
  1066. package/node_modules/zod/v4/locales/ckb.cjs +2 -0
  1067. package/node_modules/zod/v4/locales/ckb.js +2 -0
  1068. package/node_modules/zod/v4/locales/cs.cjs +2 -0
  1069. package/node_modules/zod/v4/locales/cs.js +2 -0
  1070. package/node_modules/zod/v4/locales/da.cjs +2 -0
  1071. package/node_modules/zod/v4/locales/da.js +2 -0
  1072. package/node_modules/zod/v4/locales/de.cjs +2 -0
  1073. package/node_modules/zod/v4/locales/de.js +2 -0
  1074. package/node_modules/zod/v4/locales/el.cjs +2 -0
  1075. package/node_modules/zod/v4/locales/el.js +2 -0
  1076. package/node_modules/zod/v4/locales/en.cjs +2 -0
  1077. package/node_modules/zod/v4/locales/en.js +2 -0
  1078. package/node_modules/zod/v4/locales/eo.cjs +2 -0
  1079. package/node_modules/zod/v4/locales/eo.js +2 -0
  1080. package/node_modules/zod/v4/locales/es.cjs +2 -0
  1081. package/node_modules/zod/v4/locales/es.js +2 -0
  1082. package/node_modules/zod/v4/locales/fa.cjs +2 -0
  1083. package/node_modules/zod/v4/locales/fa.js +2 -0
  1084. package/node_modules/zod/v4/locales/fi.cjs +2 -0
  1085. package/node_modules/zod/v4/locales/fi.js +2 -0
  1086. package/node_modules/zod/v4/locales/fr-CA.cjs +2 -0
  1087. package/node_modules/zod/v4/locales/fr-CA.js +2 -0
  1088. package/node_modules/zod/v4/locales/fr.cjs +2 -0
  1089. package/node_modules/zod/v4/locales/fr.js +2 -0
  1090. package/node_modules/zod/v4/locales/gu.cjs +2 -0
  1091. package/node_modules/zod/v4/locales/gu.js +2 -0
  1092. package/node_modules/zod/v4/locales/he.cjs +2 -0
  1093. package/node_modules/zod/v4/locales/he.js +2 -0
  1094. package/node_modules/zod/v4/locales/hi.cjs +2 -0
  1095. package/node_modules/zod/v4/locales/hi.js +2 -0
  1096. package/node_modules/zod/v4/locales/hr.cjs +2 -0
  1097. package/node_modules/zod/v4/locales/hr.js +2 -0
  1098. package/node_modules/zod/v4/locales/hu.cjs +2 -0
  1099. package/node_modules/zod/v4/locales/hu.js +2 -0
  1100. package/node_modules/zod/v4/locales/hy.cjs +2 -0
  1101. package/node_modules/zod/v4/locales/hy.js +2 -0
  1102. package/node_modules/zod/v4/locales/id.cjs +2 -0
  1103. package/node_modules/zod/v4/locales/id.js +2 -0
  1104. package/node_modules/zod/v4/locales/index.cjs +22 -1
  1105. package/node_modules/zod/v4/locales/index.d.cts +1 -0
  1106. package/node_modules/zod/v4/locales/index.d.ts +1 -0
  1107. package/node_modules/zod/v4/locales/index.js +1 -0
  1108. package/node_modules/zod/v4/locales/is.cjs +2 -0
  1109. package/node_modules/zod/v4/locales/is.js +2 -0
  1110. package/node_modules/zod/v4/locales/it.cjs +2 -0
  1111. package/node_modules/zod/v4/locales/it.js +2 -0
  1112. package/node_modules/zod/v4/locales/ja.cjs +2 -0
  1113. package/node_modules/zod/v4/locales/ja.js +2 -0
  1114. package/node_modules/zod/v4/locales/ka.cjs +2 -0
  1115. package/node_modules/zod/v4/locales/ka.js +2 -0
  1116. package/node_modules/zod/v4/locales/km.cjs +2 -0
  1117. package/node_modules/zod/v4/locales/km.js +2 -0
  1118. package/node_modules/zod/v4/locales/kn.cjs +2 -0
  1119. package/node_modules/zod/v4/locales/kn.js +2 -0
  1120. package/node_modules/zod/v4/locales/ko.cjs +2 -0
  1121. package/node_modules/zod/v4/locales/ko.js +2 -0
  1122. package/node_modules/zod/v4/locales/lt.cjs +2 -0
  1123. package/node_modules/zod/v4/locales/lt.js +2 -0
  1124. package/node_modules/zod/v4/locales/mk.cjs +2 -0
  1125. package/node_modules/zod/v4/locales/mk.js +2 -0
  1126. package/node_modules/zod/v4/locales/ms.cjs +2 -0
  1127. package/node_modules/zod/v4/locales/ms.js +2 -0
  1128. package/node_modules/zod/v4/locales/ne.cjs +2 -0
  1129. package/node_modules/zod/v4/locales/ne.js +2 -0
  1130. package/node_modules/zod/v4/locales/nl.cjs +2 -0
  1131. package/node_modules/zod/v4/locales/nl.js +2 -0
  1132. package/node_modules/zod/v4/locales/nn.cjs +2 -0
  1133. package/node_modules/zod/v4/locales/nn.js +2 -0
  1134. package/node_modules/zod/v4/locales/no.cjs +2 -0
  1135. package/node_modules/zod/v4/locales/no.js +2 -0
  1136. package/node_modules/zod/v4/locales/ota.cjs +2 -0
  1137. package/node_modules/zod/v4/locales/ota.js +2 -0
  1138. package/node_modules/zod/v4/locales/pl.cjs +2 -0
  1139. package/node_modules/zod/v4/locales/pl.js +2 -0
  1140. package/node_modules/zod/v4/locales/ps.cjs +2 -0
  1141. package/node_modules/zod/v4/locales/ps.js +2 -0
  1142. package/node_modules/zod/v4/locales/pt-BR.cjs +2 -0
  1143. package/node_modules/zod/v4/locales/pt-BR.js +2 -0
  1144. package/node_modules/zod/v4/locales/pt.cjs +2 -0
  1145. package/node_modules/zod/v4/locales/pt.js +2 -0
  1146. package/node_modules/zod/v4/locales/ro.cjs +2 -0
  1147. package/node_modules/zod/v4/locales/ro.js +2 -0
  1148. package/node_modules/zod/v4/locales/ru.cjs +2 -0
  1149. package/node_modules/zod/v4/locales/ru.js +2 -0
  1150. package/node_modules/zod/v4/locales/sk.cjs +2 -0
  1151. package/node_modules/zod/v4/locales/sk.js +2 -0
  1152. package/node_modules/zod/v4/locales/sl.cjs +2 -0
  1153. package/node_modules/zod/v4/locales/sl.js +2 -0
  1154. package/node_modules/zod/v4/locales/sv.cjs +2 -0
  1155. package/node_modules/zod/v4/locales/sv.js +2 -0
  1156. package/node_modules/zod/v4/locales/ta.cjs +2 -0
  1157. package/node_modules/zod/v4/locales/ta.js +2 -0
  1158. package/node_modules/zod/v4/locales/tg.cjs +144 -0
  1159. package/node_modules/zod/v4/locales/tg.d.cts +5 -0
  1160. package/node_modules/zod/v4/locales/tg.d.ts +4 -0
  1161. package/node_modules/zod/v4/locales/tg.js +117 -0
  1162. package/node_modules/zod/v4/locales/th.cjs +2 -0
  1163. package/node_modules/zod/v4/locales/th.js +2 -0
  1164. package/node_modules/zod/v4/locales/tk.cjs +2 -0
  1165. package/node_modules/zod/v4/locales/tk.js +2 -0
  1166. package/node_modules/zod/v4/locales/tr.cjs +2 -0
  1167. package/node_modules/zod/v4/locales/tr.js +2 -0
  1168. package/node_modules/zod/v4/locales/uk.cjs +2 -0
  1169. package/node_modules/zod/v4/locales/uk.js +2 -0
  1170. package/node_modules/zod/v4/locales/ur.cjs +2 -0
  1171. package/node_modules/zod/v4/locales/ur.js +2 -0
  1172. package/node_modules/zod/v4/locales/uz.cjs +2 -0
  1173. package/node_modules/zod/v4/locales/uz.js +2 -0
  1174. package/node_modules/zod/v4/locales/vi.cjs +2 -0
  1175. package/node_modules/zod/v4/locales/vi.js +2 -0
  1176. package/node_modules/zod/v4/locales/yo.cjs +2 -0
  1177. package/node_modules/zod/v4/locales/yo.js +2 -0
  1178. package/node_modules/zod/v4/locales/zh-CN.cjs +2 -0
  1179. package/node_modules/zod/v4/locales/zh-CN.js +2 -0
  1180. package/node_modules/zod/v4/locales/zh-TW.cjs +2 -0
  1181. package/node_modules/zod/v4/locales/zh-TW.js +2 -0
  1182. package/node_modules/zod/v4/mini/checks.cjs +19 -0
  1183. package/node_modules/zod/v4/mini/coerce.cjs +19 -0
  1184. package/node_modules/zod/v4/mini/deep-partial.cjs +19 -0
  1185. package/node_modules/zod/v4/mini/external.cjs +22 -1
  1186. package/node_modules/zod/v4/mini/external.d.cts +1 -1
  1187. package/node_modules/zod/v4/mini/external.d.ts +1 -1
  1188. package/node_modules/zod/v4/mini/external.js +1 -1
  1189. package/node_modules/zod/v4/mini/in-out.cjs +19 -0
  1190. package/node_modules/zod/v4/mini/index.cjs +19 -0
  1191. package/node_modules/zod/v4/mini/iso.cjs +19 -0
  1192. package/node_modules/zod/v4/mini/parse.cjs +19 -0
  1193. package/node_modules/zod/v4/mini/schemas.cjs +44 -8
  1194. package/node_modules/zod/v4/mini/schemas.d.cts +6 -1
  1195. package/node_modules/zod/v4/mini/schemas.d.ts +6 -1
  1196. package/node_modules/zod/v4/mini/schemas.js +21 -6
  1197. package/node_modules/zod/v4-mini/index.cjs +19 -0
  1198. package/package.json +7 -5
  1199. package/dist/.setup/api-DbdeJVQ8.mjs +0 -17
  1200. package/dist/.setup/client-adapter-dvFa47YL.mjs +0 -63
  1201. package/dist/.setup/rolldown-runtime-8H4AJuhK.mjs +0 -14
  1202. package/dist/.setup/send.runtime-B7C4IP23.mjs +0 -2
  1203. package/dist/.setup/transport-detection-CqyR2vG8.mjs +0 -571
  1204. package/dist/.setup/transport-detection.runtime-CW1lp2d9.mjs +0 -2
  1205. package/dist/.setup/transport-probes.runtime-WprAyBbL.mjs +0 -2
@@ -0,0 +1,193 @@
1
+ # External outputs
2
+
3
+ `@openclaw/fs-safe/output` covers the case where another library insists on
4
+ writing to an absolute path you give it. Browser downloads, renderers, media
5
+ tools, and native libraries often have this shape:
6
+
7
+ ```ts
8
+ import { writeExternalFileWithinRoot } from "@openclaw/fs-safe/output";
9
+
10
+ await writeExternalFileWithinRoot({
11
+ rootDir: "/srv/workspace/downloads",
12
+ path: "reports/today.pdf",
13
+ write: async (filePath) => {
14
+ await download.saveAs(filePath);
15
+ },
16
+ });
17
+ ```
18
+
19
+ The external writer receives a staged path instead of the final destination.
20
+ The default private-workspace mode finalizes through `Root.copyIn()`. An
21
+ opt-in sibling mode stages in the destination directory and atomically renames
22
+ the completed file over the target.
23
+
24
+ ## Signature
25
+
26
+ ```ts
27
+ function writeExternalFileWithinRoot<T = void>(
28
+ options: ExternalFileWriteOptions<T>,
29
+ ): Promise<ExternalFileWriteResult<T>>;
30
+
31
+ type ExternalFileWriteOptions<T = void> = {
32
+ rootDir: string;
33
+ path: string; // relative or absolute, but must stay under rootDir
34
+ write: (filePath: string) => Promise<T>;
35
+ maxBytes?: number;
36
+ mode?: number;
37
+ staging?: "workspace" | "sibling"; // default: "workspace"
38
+ producerIsolation?: "private-directory"; // opt-in for sibling staging
39
+ fallbackFileName?: string; // safe staged-name fallback
40
+ };
41
+
42
+ type ExternalFileWriteResult<T = void> = {
43
+ path: string; // final absolute path under the canonical root
44
+ result: T; // value returned by write()
45
+ };
46
+ ```
47
+
48
+ The requested `path` must name a file. Missing destination parents are created
49
+ by the helper because the operation is "produce this output file under the
50
+ root"; callers should choose the filename before calling this API.
51
+
52
+ The helper reads each option once before its first asynchronous operation.
53
+ Changing the options object after invocation does not change the selected
54
+ writer, staging mode, isolation, filename fallback, byte limit, or final mode
55
+ for that write. Workspace writers retain the original options object as their
56
+ callback receiver; sibling writers retain the internal staging receiver.
57
+
58
+ `maxBytes` must be a non-negative safe integer or positive `Infinity`; zero is an active cap and `Infinity` disables it. Invalid values reject before the producer or filesystem staging runs.
59
+
60
+ Use `maxBytes` when the external producer can create arbitrarily large files,
61
+ and `mode` when the finalized file needs a specific POSIX mode. Both staging
62
+ modes enforce them after the producer returns and before committing the target.
63
+ Requested basenames containing C0/C1 controls or Windows-invalid characters go
64
+ through the package's filename sanitizer; `fallbackFileName` supplies the name
65
+ when nothing remains. This removes traversal, device-name, and invalid-character
66
+ hazards but does not trim Windows-normalized trailing dots or spaces; reject or
67
+ rewrite those when cross-platform filename uniqueness matters.
68
+ `staging: "workspace"` passes the sanitized basename to the producer.
69
+ `staging: "sibling"` embeds that basename in its randomized temporary name.
70
+ When the complete temporary component would exceed 255 bytes as written or under NFC or NFD,
71
+ only the embedded tail is shortened, preserving its extension when possible;
72
+ short callback paths remain unchanged. The final target and returned `path` use
73
+ the destination basename, sanitized
74
+ when needed as described above. Guarded temporary files used only inside
75
+ fs-safe have independent names so their length does not grow with the
76
+ destination basename.
77
+
78
+ On Windows, `rootDir` and every target parent reject NTFS alternate-stream and
79
+ directory-index namespace spellings such as `file:stream` and
80
+ `dir::$INDEX_ALLOCATION`. A colon in only the requested basename still follows
81
+ the documented portable filename sanitization above instead of being treated
82
+ as a raw stream path. Ordinary colon-bearing POSIX roots and parents remain
83
+ valid.
84
+
85
+ ## Choosing a staging mode
86
+
87
+ `staging: "workspace"` is the default. The producer writes in private temp
88
+ storage, then fs-safe copies through the guarded root boundary. Choose it when
89
+ the temp and destination filesystems may differ, or when an externally produced
90
+ partial file must never appear in the destination directory. The final target
91
+ still appears only after guarded finalization. Its internal `tempFile()` does
92
+ not expose `cleanupSafety` through this API and uses compatible cleanup, with
93
+ the final check-to-pathname-recursive-removal gap documented in
94
+ [`tempFile`](temp.md#tempfile).
95
+
96
+ By default, `staging: "sibling"` gives the producer a randomized temp path in
97
+ the target directory. Choose it only when that directory itself is the approved writable
98
+ boundary and same-filesystem atomic replacement is required. After the callback
99
+ returns, fs-safe pins and validates the staged regular file, rejects hardlinks
100
+ and size-limit violations, applies `mode`, fsyncs it, and atomically renames it
101
+ over the target. Existing files and symlink entries are replaced without
102
+ following their contents or referents. The parent identity is guarded across
103
+ the operation and the parent directory is synchronized best-effort after
104
+ rename. If an error leaves the sibling temp in place and immediate cleanup
105
+ fails, its verified identity remains registered for a best-effort process-exit
106
+ cleanup retry.
107
+
108
+ Sibling staging shares the [callback sibling owner](temp.md#sibling-temp-writes):
109
+ it checks exact pre-open, descriptor, and current-path identities, retains the
110
+ descriptor through publication, and never chmods or reads a replacement by path.
111
+ Without producer isolation, cleanup preserves unverified paths, including partial
112
+ output when the callback throws before admission. Native-off and Windows
113
+ operation remain supported with the platform limits and non-atomic
114
+ rename/unlink identity checks described there.
115
+ When `mode` is omitted, output-sibling staging preserves the producer's mode.
116
+
117
+ Add `producerIsolation: "private-directory"` to sibling staging when the
118
+ producer can leave partial output before throwing. It receives an initially
119
+ absent file path inside a private child workspace under the target parent, on
120
+ the target filesystem. Directory cleanup ownership is captured before the
121
+ callback. A callback exception triggers owned workspace cleanup, including
122
+ partial output, subject to directory identity checks and I/O failures.
123
+ After success, an available native helper uses guarded no-replace `Root.move`.
124
+ With native mode off, the helper opens and identity-fences the completed regular
125
+ file, creates the randomized sibling through an atomic no-clobber hard link,
126
+ verifies its temporary two-link state, then removes the private name. Windows
127
+ first transfers the pin to an independently verified sibling descriptor so the
128
+ source name can disappear before workspace cleanup, including on runtimes with
129
+ legacy deletion behavior. If that unlink clears the producer's read-only
130
+ attribute, the retained descriptor restores it and the helper verifies mode and
131
+ identity before continuing. This keeps the handoff zero-copy while preserving the
132
+ ordinary retained-descriptor, mode,
133
+ file-sync, and final-rename lifecycle. Escaping symlinks still fail with
134
+ `path-alias`; filesystems without hard-link support fail with
135
+ `helper-unavailable`.
136
+
137
+ Exact bigint parent and workspace identities are rechecked before moving
138
+ output to the sibling path to reject observed replacements. Cleanup uses the
139
+ compatible [`withTempFile` ownership contract](temp.md#withtempfile); this
140
+ output option does not expose `cleanupSafety: "require-bounded"`. A moved or
141
+ replaced parent or workspace can leave artifacts, and a workspace substituted
142
+ in the final check-to-pathname-recursive-removal gap can redirect traversal.
143
+ The option does not promise cleanup through a retained directory after a
144
+ rename. The existing Windows and JavaScript pathname-guard limitations remain,
145
+ with no additional permissions or durability guarantee. Native-off publication
146
+ is supported only where hard links are available. See the
147
+ [producer-isolation contract](temp.md#sibling-temp-writes)
148
+ for cleanup and pathname-race details. The option affects only `staging: "sibling"`;
149
+ with `staging: "workspace"`, it is redundant and harmless because the producer
150
+ already uses a private workspace. Omitting it leaves both staging defaults
151
+ unchanged.
152
+
153
+ ## Why not pass the final path to the library?
154
+
155
+ If a target parent can be swapped after validation, handing an external library
156
+ the final path can make the library write outside the intended root before
157
+ fs-safe has a chance to finalize or reject the operation. Workspace staging
158
+ keeps the trust-boundary write inside fs-safe's root-aware copy/atomic-write
159
+ path. Sibling staging intentionally shifts the writable boundary to the
160
+ destination directory, while keeping pathname validation, staged-file identity
161
+ checks, and the final rename under fs-safe's control.
162
+
163
+ ## Browser download example
164
+
165
+ ```ts
166
+ const outputPath = requestedOutputPath || sanitizeBrowserSuggestedName(suggestedFilename);
167
+
168
+ await writeExternalFileWithinRoot({
169
+ rootDir: downloadsRoot,
170
+ path: outputPath,
171
+ maxBytes: 512 * 1024 * 1024,
172
+ write: async (filePath) => {
173
+ await download.saveAs(filePath);
174
+ },
175
+ });
176
+ ```
177
+
178
+ The chosen path may be absolute if it is already inside `downloadsRoot`, or
179
+ relative to `downloadsRoot`. Traversal, symlink parent escapes, hardlinked final
180
+ targets, over-large staged files, and missing temp files surface as
181
+ `FsSafeError`s.
182
+
183
+ This helper is not the right fit when the final filename depends on inspecting
184
+ the produced bytes. In that case, write to a private temp workspace, sniff or
185
+ validate the file, choose the final name, then copy or write into the root with
186
+ the normal root APIs.
187
+
188
+ ## See also
189
+
190
+ - [Root writes](writing.md) — `write`, `copyIn`, `move`, and `mkdir`.
191
+ - [Temp workspaces](temp.md) — private scratch directories for longer workflows.
192
+ - [`pathScope()`](path-scope.md) — validation-only helper when you must pass an
193
+ absolute path directly to another library.
@@ -0,0 +1,64 @@
1
+ # Path case probing
2
+
3
+ `probePathCaseInsensitiveSync()` observes whether a path's lookup location
4
+ folds ASCII case. It returns `true`, `false`, or `undefined` when the observation
5
+ cannot establish an answer. It does not infer a filesystem property from the
6
+ operating system or cache its result.
7
+
8
+ ```ts
9
+ import { probePathCaseInsensitiveSync } from "@openclaw/fs-safe/advanced";
10
+
11
+ const insensitive = probePathCaseInsensitiveSync("/srv/data/future.json", {
12
+ allowTemporaryProbe: false,
13
+ });
14
+ if (insensitive === undefined) {
15
+ // The application decides how to handle an unavailable observation.
16
+ }
17
+ ```
18
+
19
+ ## Lookup location
20
+
21
+ The input is resolved with Node's `path.resolve()`. Existing targets, including
22
+ directories and final symlinks, are first compared by basename in their parent.
23
+ The probe does not follow a final symlink to decide the target's case behavior.
24
+ Parent aliases are followed. For a missing path, it walks to the nearest existing
25
+ directory whose metadata can be read, without creating the missing directories.
26
+ An unreadable directory listing returns `undefined`.
27
+
28
+ The probe checks existing directory entries before considering a temporary
29
+ file. Separately listed case variants count as distinct entries even when they
30
+ are hardlinks to the same inode. Identity comparisons retain bigint precision;
31
+ unknown Windows identities do not count as matches. The original entry is
32
+ rechecked after looking up its case variant, so its disappearance or replacement
33
+ invalidates the observation. A detected directory replacement also returns
34
+ `undefined`.
35
+
36
+ ## Temporary probes and cleanup
37
+
38
+ `allowTemporaryProbe` defaults to `true`. When existing entries give no answer,
39
+ the helper exclusively creates one empty `.fs-safe-case-probe-*` file in the
40
+ selected directory at mode `0o600`. It uses the existing temporary-file owner
41
+ to retain the descriptor and exact cleanup identity. Successful ordinary
42
+ completion removes the probe and closes the descriptor.
43
+
44
+ Set `allowTemporaryProbe: false` for strictly read-only observation. In that
45
+ mode an empty directory, or one with no useful ASCII-case names, returns
46
+ `undefined` without creating a temporary file. Temporary probing can change
47
+ directory timestamps and trigger filesystem watchers even when cleanup succeeds.
48
+
49
+ Operational failures, unverified identities, changed entries, and cleanup
50
+ failures return `undefined`. A substituted or hardlinked temporary entry is
51
+ preserved. When cleanup fails operationally, the existing owner retains its
52
+ identity-bound process-exit retry. A creation whose identity cannot be obtained
53
+ may leave an empty file; the helper never guesses cleanup ownership. Therefore
54
+ `undefined` does not promise that no temporary artifact remains.
55
+
56
+ ## Limits
57
+
58
+ This is a local ASCII-case observation, not a Unicode-normalization test,
59
+ filesystem-wide guarantee, lock, or authorization receipt. Directory enumeration
60
+ and metadata lookups are separate operations. Concurrent changes can invalidate
61
+ or immediately stale a result, and the final identity check and unlink are not
62
+ an atomic conditional deletion. Use temporary probing only where creating a
63
+ temporary file is permitted. The caller retains any admission, serialization,
64
+ fallback, or later mutation policy.
@@ -0,0 +1,74 @@
1
+ # Resolving an existing path prefix
2
+
3
+ `resolvePathPrefixSync()` follows filesystem path components until the first
4
+ missing entry. It returns a canonical existing prefix and the unprocessed
5
+ suffix separately, including dangling symlink targets.
6
+
7
+ ```ts
8
+ import { resolvePathPrefixSync, type ResolvedPathPrefix } from "@openclaw/fs-safe/advanced";
9
+
10
+ const observed: ResolvedPathPrefix = resolvePathPrefixSync("/srv/data/future/file.json");
11
+ // When /srv/data exists but future does not:
12
+ // observed.existingPath is the canonical spelling of /srv/data.
13
+ // observed.unresolvedSegments is ["future", "file.json"].
14
+ ```
15
+
16
+ The result has three readonly fields:
17
+
18
+ | Field | Meaning |
19
+ | --- | --- |
20
+ | `absolutePath` | Input anchored to the current directory or Windows drive, with raw path components retained and Windows separators converted to backslashes. |
21
+ | `existingPath` | Existing prefix canonicalized by fs-safe's native-realpath owner. This may be a file when the entire path exists. |
22
+ | `unresolvedSegments` | Components from the first missing entry onward, after expanding any earlier symlinks. Empty when the entire path exists. |
23
+
24
+ ## Physical traversal and missing paths
25
+
26
+ The helper resolves `link/..` from the link's physical target. It does not use
27
+ `path.resolve()` on the full input or a symlink target, because lexical
28
+ normalization would erase that traversal. Relative inputs use the current
29
+ directory; Windows drive-relative inputs use Node's current directory for that
30
+ drive. A root-relative Windows symlink target retains its containing link's
31
+ drive or share root. Windows junctions and full UNC share roots are supported.
32
+
33
+ At the first `ENOENT`, traversal stops. A suffix such as
34
+ `missing/../live.sqlite` remains `["missing", "..", "live.sqlite"]`, even if
35
+ `live.sqlite` exists beside the missing component. Dot components, repeated
36
+ separators, and a trailing separator in the unresolved suffix are retained.
37
+ Normalizing that suffix would invent an alias to a file the filesystem cannot
38
+ reach through the missing directory. The caller owns any application-specific
39
+ comparison or prospective-path policy.
40
+
41
+ ## Failures and limits
42
+
43
+ Only `ENOENT` from component inspection produces a missing suffix. Permission,
44
+ I/O, non-directory traversal, symlink-reading, and final canonicalization
45
+ failures propagate. A vanished symlink that was already observed is an error,
46
+ not an unprocessed missing component. NUL bytes reject with `invalid-path`.
47
+
48
+ Resolution rejects with `ELOOP` after 64 symlink expansions or a repeated
49
+ resolution state. The state retains exact bigint device/inode identity and
50
+ the remaining suffix, so revisiting a link with a shorter suffix is permitted.
51
+ Traversing through a non-directory, including `file/..`, `file/.`, or `file/`,
52
+ rejects with `ENOTDIR`.
53
+
54
+ Dot and parent components require the directory's search permission before
55
+ they are collapsed. Native realpath alone does not establish this permission
56
+ on every platform. Empty components from repeated or trailing separators do
57
+ not introduce a `.` lookup.
58
+
59
+ Raw component queues of at most 32 entries retain the legacy small-array
60
+ consumption path. After both the initial parse and every symlink expansion, a
61
+ longer queue uses forward cursor bookkeeping instead of moving the unprocessed
62
+ suffix for every component. The fixed small-queue bound limits repeated front
63
+ removal while retaining legacy shift-based consumption for shallow paths. This
64
+ asymptotic bound is not a platform performance result; performance acceptance
65
+ requires separate benchmark evidence. Callers should still apply their own
66
+ input-size limits: the helper is synchronous, retains the raw suffix, and
67
+ performs filesystem work for each non-empty existing component.
68
+
69
+ This is a read-only path observation. It neither pins files nor creates a root
70
+ boundary, authorizes access, or guarantees a consistent snapshot during
71
+ concurrent changes. Results can become stale immediately. Use a guarded Root
72
+ operation for subsequent access to untrusted paths; keep any database ownership,
73
+ cache invalidation, and mutation policy with the caller. Native configuration
74
+ and Bun realpath limitations follow the existing [runtime contract](install.md#bun-runtime).
@@ -0,0 +1,159 @@
1
+ # pathScope()
2
+
3
+ `pathScope()` prepares absolute paths and returns plain `{ ok, path }` results. `resolve()` and `resolveAll()` check lexical containment without touching the filesystem; `existing()`, `files()`, and `writable()` add the filesystem checks described below. Use it to prepare paths before handing them to another library, whose file-opening and mutation behavior still applies.
4
+
5
+ ```ts
6
+ import { pathScope } from "@openclaw/fs-safe/advanced";
7
+
8
+ const uploads = pathScope("/srv/uploads", { label: "uploads directory" });
9
+
10
+ const photo = uploads.resolve("user/photo.jpg");
11
+ if (!photo.ok) throw new Error(photo.error);
12
+
13
+ await sharp(photo.path).resize(800).toFile(/* … */);
14
+ ```
15
+
16
+ ## When to reach for it
17
+
18
+ `root()` is the right answer when you want method-style I/O (`fs.write`, `fs.readText`). `pathScope()` is the right answer when:
19
+
20
+ - You're handing absolute paths to **other libraries** that take absolute path strings (Sharp, FFmpeg, `tar`, native modules) and just want the boundary check up front.
21
+ - You want to validate user-supplied paths in bulk and return a typed `Result` rather than catching exceptions.
22
+ - You want the scope's `label` to appear in the error message: `"Invalid path: must stay within uploads directory"`.
23
+
24
+ ## Signature
25
+
26
+ ```ts
27
+ import type { FsSafeError } from "@openclaw/fs-safe/errors";
28
+
29
+ function pathScope(rootDir: string, options: PathScopeOptions): PathScope;
30
+
31
+ type PathScopeOptions = {
32
+ label: string; // appears in error messages
33
+ };
34
+
35
+ type PathScopeResolveOptions = {
36
+ defaultName?: string; // used when the requested path is empty
37
+ };
38
+
39
+ type PathResult = { ok: true; path: string } | { ok: false; error: string };
40
+ type PathsResult = { ok: true; paths: string[] } | { ok: false; error: string };
41
+ // Illustrative result alias, not a named package export.
42
+ type DirectoryResult =
43
+ | { ok: true; path: string }
44
+ | { ok: false; error: string; diagnostic?: FsSafeError };
45
+
46
+ type PathScope = {
47
+ rootDir: string;
48
+ label: string;
49
+ resolve(requestedPath: string, options?: PathScopeResolveOptions): PathResult;
50
+ resolveAll(requestedPaths: string[]): PathsResult;
51
+ existing(requestedPaths: string[]): Promise<PathsResult>;
52
+ files(requestedPaths: string[]): Promise<PathsResult>;
53
+ writable(requestedPath: string, options?: PathScopeResolveOptions): Promise<PathResult>;
54
+ ensureDir(requestedPath: string, options?: PathScopeResolveOptions & { mode?: number }): Promise<DirectoryResult>;
55
+ };
56
+ ```
57
+
58
+ ## Methods
59
+
60
+ ### `resolve(rel, options?)`
61
+
62
+ Synchronous, lexical only — no filesystem touch. Resolves the relative path against `rootDir` and verifies the result stays inside the scope. Use when you only need the path string:
63
+
64
+ ```ts
65
+ const r = uploads.resolve("user/photo.jpg");
66
+ if (!r.ok) return reply(400, r.error);
67
+ console.log(r.path); // /srv/uploads/user/photo.jpg
68
+ ```
69
+
70
+ If the requested path is empty, `defaultName` (when set) is used.
71
+
72
+ ### `resolveAll(rels)`
73
+
74
+ Synchronous bulk resolve. Returns `{ ok: true, paths }` if every input is in scope, or `{ ok: false, error }` on the first failure.
75
+
76
+ ### `existing(rels)`
77
+
78
+ Async. Like `resolveAll`, but additionally allows trusted absolute paths whose `realpath` is inside the scope. Useful when callers pass either a relative path or an absolute path you've already validated.
79
+
80
+ ### `files(rels)`
81
+
82
+ Async. Strict variant: every input must already exist as a regular file inside the scope, with `nlink === 1`. Symlinked entries are rejected.
83
+
84
+ ### `writable(rel, options?)`
85
+
86
+ Async. Resolves a writable target: requires the parent directory to already
87
+ exist canonically inside the scope, refuses targets whose existing inode is a
88
+ symlink or hardlinked, and returns the absolute path to use for the write. Use
89
+ `ensureDir()` first when the parent needs to be created.
90
+
91
+ ```ts
92
+ const t = await uploads.writable("reports/2026/05/report.pdf");
93
+ if (!t.ok) return reply(400, t.error);
94
+ await fs.writeFile(t.path, body);
95
+ ```
96
+
97
+ ### `ensureDir(rel, options?)`
98
+
99
+ Async. `mkdir -p` inside the scope. Walks each segment, refuses any symlink in the path, creates missing directories. Optional `mode` sets the directory mode.
100
+
101
+ Failures remain nonthrowing results with `error: string`. Policy rejections
102
+ (including traversal, NUL input, symlinks and non-directory segments) omit
103
+ `diagnostic`. Operational failures from `lstat`, `realpath` or `mkdir` include
104
+ an `FsSafeError` with `code: "helper-failed"`, `category: "operational"`, and
105
+ the exact original error in `cause`, including its native `code`, `errno` and
106
+ `syscall` when available. Only `ensureDir()` adds this diagnostic; other scope
107
+ methods retain their existing result shapes.
108
+
109
+ `error` equals `diagnostic.message` for operational failures, for example
110
+ `"Could not prepare uploads directory: ENAMETOOLONG during lstat"`. Display
111
+ text bounds and escapes the label and native code/syscall, without copying
112
+ the requested path or native error message. Treat the raw cause as sensitive
113
+ local diagnostic data, not as text to return to an untrusted caller. A failure
114
+ can leave already-created parent directories; it does not roll them back or
115
+ retry through an unchecked filesystem path.
116
+
117
+ ```ts
118
+ const dir = await uploads.ensureDir("inbox", { mode: 0o755 });
119
+ if (!dir.ok) {
120
+ // Pass the cause only to an appropriately restricted local diagnostic sink.
121
+ if (dir.diagnostic) recordLocalFailure(dir.diagnostic.cause);
122
+ return reply(dir.diagnostic ? 500 : 400, dir.error);
123
+ }
124
+ ```
125
+
126
+ ## Result type vs throwing
127
+
128
+ `pathScope` returns `{ ok: true, path }` / `{ ok: false, error }` instead of throwing. This makes it pleasant to use at validation boundaries:
129
+
130
+ ```ts
131
+ function handle(req: Req, res: Res) {
132
+ const r = uploads.resolve(req.body.path);
133
+ if (!r.ok) return res.status(400).json({ error: r.error });
134
+ return doWork(r.path);
135
+ }
136
+ ```
137
+
138
+ For exception-flavored APIs, use `root()` instead — it throws `FsSafeError` with a typed `code`.
139
+
140
+ ## Combine with `root()`
141
+
142
+ A common pattern at the edge of an HTTP handler: validate the input with `pathScope`, do the I/O with `root()`:
143
+
144
+ ```ts
145
+ const uploads = pathScope("/srv/uploads", { label: "uploads" });
146
+ const fs = await root("/srv/uploads", { hardlinks: "reject" });
147
+
148
+ const r = uploads.resolve(req.body.path);
149
+ if (!r.ok) return reply(400, r.error);
150
+ const rel = path.relative(fs.rootReal, r.path);
151
+
152
+ const text = await fs.readText(rel);
153
+ ```
154
+
155
+ ## See also
156
+
157
+ - [`root()`](root.md) — method-style boundary that throws on failure.
158
+ - [Path helpers](path.md) — `isPathInside`, `safeRealpathSync`, `isWithinDir` for ad-hoc checks.
159
+ - [Errors](errors.md) — error semantics (note: `pathScope` returns errors, doesn't throw).