@poe-platform/safe-bash 0.1.802 → 0.1.804

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 (748) hide show
  1. package/README.md +60 -33
  2. package/dist/image-ast/ast.d.ts +1 -0
  3. package/dist/image-ast/browser/ast.d.ts +1 -0
  4. package/dist/image-ast/browser/codecs/jpeg.d.ts +2 -2
  5. package/dist/image-ast/codecs/jpeg.d.ts +2 -2
  6. package/dist/image-ast/index.browser.js +692 -8355
  7. package/dist/image-ast/index.js +692 -8355
  8. package/dist/mp4-ast/codecs.d.ts +7 -2
  9. package/dist/safe-bash/chunks/{chunk-CHYGPFVM.js → chunk-22SX3F2R.js} +1 -1
  10. package/dist/safe-bash/chunks/{chunk-FBUCWVTE.js → chunk-2IVBJTBD.js} +1 -1
  11. package/dist/safe-bash/chunks/chunk-2POETUMB.js +190 -0
  12. package/dist/safe-bash/chunks/{chunk-XVOSKJE2.js → chunk-47D7WBJK.js} +1 -1
  13. package/dist/safe-bash/chunks/{chunk-VKNVHEX3.js → chunk-4ESI236Y.js} +1 -1
  14. package/dist/safe-bash/chunks/{chunk-74GHTNJA.js → chunk-4KTMKD5W.js} +1 -1
  15. package/dist/safe-bash/chunks/{chunk-55YJASTN.js → chunk-4T53AERN.js} +1 -1
  16. package/dist/safe-bash/chunks/{chunk-DQP3VHSB.js → chunk-5XIFJVOO.js} +1 -1
  17. package/dist/safe-bash/chunks/{chunk-NZQXYWA3.js → chunk-62BOHHJT.js} +1 -2
  18. package/dist/safe-bash/chunks/{chunk-HZAMGT5I.js → chunk-67WIFM3N.js} +17 -6
  19. package/dist/safe-bash/chunks/{chunk-4D4N7IU2.js → chunk-6LNFRPW5.js} +2 -2
  20. package/dist/safe-bash/chunks/{chunk-6O77NL2S.js → chunk-6SMICPI3.js} +1 -1
  21. package/dist/safe-bash/chunks/{chunk-4BSJLKNM.js → chunk-7O76UFQD.js} +1 -1
  22. package/dist/safe-bash/chunks/{chunk-44ALJ4QG.js → chunk-AW5KIT6V.js} +3549 -84
  23. package/dist/safe-bash/chunks/{chunk-RSTHLAF3.js → chunk-B2Z73HTZ.js} +52 -28
  24. package/dist/safe-bash/chunks/chunk-B3ZMOJVM.js +319 -0
  25. package/dist/safe-bash/chunks/{chunk-7ZBU7KYV.js → chunk-CFAWS3O4.js} +1 -1
  26. package/dist/safe-bash/chunks/{chunk-I5HZ4FGE.js → chunk-CL2FCTTO.js} +1 -1
  27. package/dist/safe-bash/chunks/{chunk-KDNSPLII.js → chunk-CTXNARJH.js} +2 -1
  28. package/dist/safe-bash/chunks/{chunk-TFIBK2GI.js → chunk-D5Q7NFWI.js} +1 -1
  29. package/dist/safe-bash/chunks/{chunk-OQRVVGR6.js → chunk-DSOOVZ6Q.js} +1 -1
  30. package/dist/safe-bash/chunks/{chunk-VTH3MLDU.js → chunk-DUTAG6ZD.js} +1 -1
  31. package/dist/safe-bash/chunks/{chunk-XAQMU6OY.js → chunk-EE5YGFIZ.js} +1 -1
  32. package/dist/safe-bash/chunks/{chunk-FZE4HW6G.js → chunk-EJOYT2ME.js} +1 -1
  33. package/dist/safe-bash/chunks/chunk-FAAIR6EJ.js +887 -0
  34. package/dist/safe-bash/chunks/{chunk-OV6IHKO6.js → chunk-FOB2FZR4.js} +2 -2
  35. package/dist/safe-bash/chunks/chunk-G6V4RRSQ.js +14 -0
  36. package/dist/safe-bash/chunks/{chunk-UTBUUFDM.js → chunk-GGQAGQXQ.js} +1 -1
  37. package/dist/safe-bash/chunks/{chunk-K6VCD7IY.js → chunk-HIIYIJ5G.js} +2 -4
  38. package/dist/safe-bash/chunks/chunk-IOHH2GTI.js +56 -0
  39. package/dist/safe-bash/chunks/{chunk-CTVWDACF.js → chunk-IQW34XQT.js} +1 -1
  40. package/dist/safe-bash/chunks/{chunk-HZ7BWKQ3.js → chunk-IS572AAT.js} +1 -1
  41. package/dist/safe-bash/chunks/{chunk-AUSNDQTJ.js → chunk-JPSUHHOA.js} +1 -1
  42. package/dist/safe-bash/chunks/{chunk-ZVD5IS4V.js → chunk-KBZ4UB2O.js} +2 -2
  43. package/dist/safe-bash/chunks/{chunk-AM5ESLPH.js → chunk-KU5CVWKA.js} +1 -1
  44. package/dist/safe-bash/chunks/{chunk-NQCM3TYR.js → chunk-LPOVNKNB.js} +225 -176
  45. package/dist/safe-bash/chunks/{chunk-46Z5E5EV.js → chunk-MBOC3LZ4.js} +1 -1
  46. package/dist/safe-bash/chunks/{chunk-6PAVEFT3.js → chunk-N4BQFD3P.js} +1 -1
  47. package/dist/safe-bash/chunks/{chunk-CS4MNM6I.js → chunk-NGKCVNWS.js} +1 -1
  48. package/dist/safe-bash/chunks/{chunk-7R5BDCG7.js → chunk-OHML2BEU.js} +1 -1
  49. package/dist/safe-bash/chunks/{chunk-C5OWC2TL.js → chunk-OQ3AGYCZ.js} +1 -1
  50. package/dist/safe-bash/chunks/{chunk-B7TAL7S5.js → chunk-PTAEWLSE.js} +0 -2
  51. package/dist/safe-bash/chunks/{chunk-LVOBFF4D.js → chunk-Q4FNLOTI.js} +1 -1
  52. package/dist/safe-bash/chunks/chunk-Q5XO3NAS.js +1036 -0
  53. package/dist/safe-bash/chunks/{chunk-GEG3BWGE.js → chunk-RHFRJIWQ.js} +1 -1
  54. package/dist/safe-bash/chunks/chunk-RUR6J33T.js +11 -0
  55. package/dist/safe-bash/chunks/{chunk-WDLGKIHD.js → chunk-S4RFUUXO.js} +841 -26
  56. package/dist/safe-bash/chunks/{chunk-RRR7AQ24.js → chunk-SD2ISU5L.js} +1 -1
  57. package/dist/safe-bash/chunks/{chunk-3NDIFSNM.js → chunk-SUJ3NTMH.js} +3 -3
  58. package/dist/safe-bash/chunks/{chunk-R3NAKOED.js → chunk-SZRUU5HS.js} +2 -2
  59. package/dist/safe-bash/chunks/{chunk-PH63PLPZ.js → chunk-TC3F4UFF.js} +1 -1
  60. package/dist/safe-bash/chunks/{chunk-3R3AANOR.js → chunk-TCKYOLUE.js} +1 -1
  61. package/dist/safe-bash/chunks/{chunk-D3ANYGMC.js → chunk-UV4X32QU.js} +1 -1
  62. package/dist/safe-bash/chunks/{chunk-E7OYNDGL.js → chunk-V7QT2RWC.js} +1 -1
  63. package/dist/safe-bash/chunks/{chunk-SHEMU2Z7.js → chunk-W2IYOVHK.js} +839 -1211
  64. package/dist/safe-bash/chunks/{chunk-3HQU4OJO.js → chunk-XNGVOSGI.js} +1 -1
  65. package/dist/safe-bash/chunks/{chunk-J42RIHHJ.js → chunk-XQWCQSRN.js} +1 -1
  66. package/dist/safe-bash/chunks/{chunk-BJA5XNP6.js → chunk-Y7FW6GLT.js} +6 -6
  67. package/dist/safe-bash/chunks/{chunk-QGUV42T5.js → chunk-YL3GBUG4.js} +1 -1
  68. package/dist/safe-bash/chunks/chunk-YOXUCJER.js +389 -0
  69. package/dist/safe-bash/chunks/{chunk-HBCN24ZA.js → chunk-Z2AAYYJN.js} +2 -2
  70. package/dist/safe-bash/chunks/chunk-ZKYKJCZZ.js +30 -0
  71. package/dist/safe-bash/chunks/core-IE3AFIDX.js +85806 -0
  72. package/dist/safe-bash/chunks/{ffmpeg-WTC3TEFI.js → ffmpeg-YANDK6HU.js} +2 -2
  73. package/dist/safe-bash/chunks/{gh-6WU6PXL4.js → gh-4MBJ2S5V.js} +2 -2
  74. package/dist/safe-bash/chunks/{git-EFZIGJW4.js → git-2QONJNRQ.js} +2 -2
  75. package/dist/safe-bash/chunks/{imagemagick-EIEYGWPF.js → imagemagick-JLEHGYSN.js} +2 -2
  76. package/dist/safe-bash/chunks/{mmdc-ROQJT5HQ.js → mmdc-6LD7A6ND.js} +2 -2
  77. package/dist/safe-bash/chunks/{pdfimages-DW7LWXFI.js → pdfimages-RSHL7LOP.js} +2 -2
  78. package/dist/safe-bash/chunks/{pdfinfo-TIP6XLUQ.js → pdfinfo-L3SGWPNG.js} +2 -2
  79. package/dist/safe-bash/chunks/{pdftk-DMG22ITZ.js → pdftk-LFBJNU5A.js} +2 -2
  80. package/dist/safe-bash/chunks/{pdftoppm-WNDYR72T.js → pdftoppm-NXXFUIHG.js} +2 -2
  81. package/dist/safe-bash/chunks/{pdftotext-5IPZ4NI7.js → pdftotext-4IHNWT6F.js} +2 -2
  82. package/dist/safe-bash/chunks/{qpdf-TTX2DIUA.js → qpdf-ZEIREV63.js} +2 -2
  83. package/dist/safe-bash/chunks/read-builtin-A4QKAT45.js +9 -0
  84. package/dist/safe-bash/chunks/{sips-XYS46JPJ.js → sips-D5YBG2V3.js} +2 -2
  85. package/dist/safe-bash/chunks/{soffice-TU73E5KL.js → soffice-RAJU3JUT.js} +2 -2
  86. package/dist/safe-bash/chunks/source-files-3XWRRHFA.js +7 -0
  87. package/dist/safe-bash/chunks/{wkhtmltopdf-FSZ2CHGE.js → wkhtmltopdf-7UE4FORZ.js} +2 -2
  88. package/dist/safe-bash/command-chunks/{chunk-7KWZXKY6.js → chunk-26RTBV2I.js} +1 -0
  89. package/dist/safe-bash/command-chunks/{chunk-AQJ2ROJO.js → chunk-2WYNMZR2.js} +10 -8
  90. package/dist/safe-bash/command-chunks/{chunk-BDSMROQZ.js → chunk-36GFRF2N.js} +2 -1
  91. package/dist/safe-bash/command-chunks/{chunk-GC5TJZOF.js → chunk-3VIA2IA7.js} +114 -31
  92. package/dist/safe-bash/command-chunks/{chunk-NKFYQSES.js → chunk-4CTI3ZTX.js} +1 -0
  93. package/dist/safe-bash/command-chunks/{chunk-WH627NJL.js → chunk-4MYP2FX4.js} +2 -1
  94. package/dist/safe-bash/command-chunks/chunk-4R5ADJM5.js +178 -0
  95. package/dist/safe-bash/command-chunks/{chunk-P2N33UMN.js → chunk-5MIKM54M.js} +4 -4
  96. package/dist/safe-bash/command-chunks/{chunk-DB453IE6.js → chunk-6FZQUOSJ.js} +1 -1
  97. package/dist/safe-bash/command-chunks/{chunk-WPYIOKE3.js → chunk-6GKYHPJG.js} +2 -2
  98. package/dist/safe-bash/command-chunks/{chunk-7K6JYKPJ.js → chunk-6M2ELGEN.js} +17 -15
  99. package/dist/safe-bash/command-chunks/{chunk-PXEIT2O4.js → chunk-6UR7V3ET.js} +8 -1
  100. package/dist/safe-bash/command-chunks/{chunk-6KJ3LPI2.js → chunk-6XBS5B46.js} +26 -3
  101. package/dist/safe-bash/command-chunks/{chunk-5PWJG2UK.js → chunk-6YXLZX7L.js} +2 -2
  102. package/dist/safe-bash/command-chunks/{chunk-EK6YNAXT.js → chunk-753YOR54.js} +31 -5
  103. package/dist/safe-bash/command-chunks/{chunk-RMWQAAO5.js → chunk-7IR4NRNE.js} +2 -2
  104. package/dist/safe-bash/command-chunks/{chunk-FZTK4MFI.js → chunk-7NM73SVK.js} +8 -8
  105. package/dist/safe-bash/command-chunks/{chunk-NXEQ3ESQ.js → chunk-7QD5YY4F.js} +6 -11
  106. package/dist/safe-bash/command-chunks/{chunk-EMPU65ZK.js → chunk-A5LBSJGH.js} +1 -0
  107. package/dist/safe-bash/command-chunks/chunk-A7MU7762.js +200 -0
  108. package/dist/safe-bash/command-chunks/{chunk-ORYGZYKW.js → chunk-ARZMP2L2.js} +3 -3
  109. package/dist/safe-bash/command-chunks/{chunk-OQKC5ZU2.js → chunk-BAKFZ477.js} +62 -20
  110. package/dist/safe-bash/command-chunks/{chunk-QRRYN2KO.js → chunk-BC7BK6R6.js} +0 -2424
  111. package/dist/safe-bash/command-chunks/{chunk-F4TEEZTL.js → chunk-BOEOJS2Q.js} +1 -1
  112. package/dist/safe-bash/command-chunks/{chunk-XS72HTMA.js → chunk-BWGGLYEB.js} +5 -22
  113. package/dist/safe-bash/command-chunks/{chunk-PMBFZXTK.js → chunk-C5ZZKP7V.js} +1 -1
  114. package/dist/safe-bash/command-chunks/{chunk-LHIOAFWW.js → chunk-C7SEB6WU.js} +1 -1
  115. package/dist/safe-bash/command-chunks/{chunk-XPT2UGBF.js → chunk-CHJKFRT7.js} +1 -1
  116. package/dist/safe-bash/command-chunks/{chunk-TIOCQVUQ.js → chunk-CON26Q2O.js} +1 -1
  117. package/dist/safe-bash/command-chunks/{chunk-E55UKBIE.js → chunk-DBAT3IK2.js} +1 -1
  118. package/dist/safe-bash/command-chunks/{chunk-Z45N42QC.js → chunk-DPAYAVMS.js} +15 -1
  119. package/dist/safe-bash/command-chunks/chunk-DS3NXVUM.js +368 -0
  120. package/dist/safe-bash/command-chunks/{chunk-5ZMZ573Q.js → chunk-DSJ3VRL3.js} +16 -4
  121. package/dist/safe-bash/command-chunks/{chunk-K2GDEMEU.js → chunk-EFRCFWVR.js} +4 -4
  122. package/dist/safe-bash/command-chunks/{chunk-DZCY63VJ.js → chunk-EV6HIJ5H.js} +6 -5
  123. package/dist/safe-bash/command-chunks/{chunk-JDYXY44P.js → chunk-FJURV46Y.js} +3 -3
  124. package/dist/safe-bash/command-chunks/{chunk-TZZ4WUKH.js → chunk-FZAWGKSE.js} +6 -4
  125. package/dist/safe-bash/command-chunks/{chunk-YHFXOX6U.js → chunk-GOCFQ6XV.js} +4 -4
  126. package/dist/safe-bash/command-chunks/{chunk-YOFC45RK.js → chunk-HH5O7DJI.js} +1 -1
  127. package/dist/safe-bash/command-chunks/{chunk-3HHCU5YU.js → chunk-HK7F5SDC.js} +13 -0
  128. package/dist/safe-bash/command-chunks/{chunk-JNZ3CVAE.js → chunk-HQBXIZC7.js} +8 -3
  129. package/dist/safe-bash/command-chunks/{chunk-2JRBIDAD.js → chunk-I63DBZXZ.js} +2 -2
  130. package/dist/safe-bash/command-chunks/{chunk-WNE7FPVR.js → chunk-I64TLTIW.js} +24 -16
  131. package/dist/safe-bash/command-chunks/{chunk-QKFSRZGQ.js → chunk-ICANWOXH.js} +7 -31
  132. package/dist/safe-bash/command-chunks/{chunk-SQRQW3CT.js → chunk-IJ6LGLXM.js} +1 -1
  133. package/dist/safe-bash/command-chunks/{chunk-5E4WAO4O.js → chunk-JD5QNRNO.js} +3 -3
  134. package/dist/safe-bash/command-chunks/{chunk-KJIMDLBB.js → chunk-JNANXVJV.js} +1 -1
  135. package/dist/safe-bash/command-chunks/{chunk-TGSNCQSR.js → chunk-JT4RYCA6.js} +1771 -1663
  136. package/dist/safe-bash/command-chunks/{chunk-II77KPZN.js → chunk-JWW6FYBN.js} +2 -2
  137. package/dist/safe-bash/command-chunks/{chunk-ZYXH3B66.js → chunk-LCJWKTCJ.js} +250 -203
  138. package/dist/safe-bash/command-chunks/{chunk-I237SNW5.js → chunk-LFJJQQND.js} +1 -1
  139. package/dist/safe-bash/command-chunks/chunk-LU4HBPP2.js +97 -0
  140. package/dist/safe-bash/command-chunks/{chunk-XJXU3VVH.js → chunk-LWOE65OE.js} +20 -5
  141. package/dist/safe-bash/command-chunks/{chunk-GMIHJYDG.js → chunk-M32HFSX7.js} +22 -6
  142. package/dist/safe-bash/command-chunks/{chunk-YG4EPFWC.js → chunk-M3NINRDU.js} +2880 -172
  143. package/dist/safe-bash/command-chunks/chunk-MQREDAL6.js +164 -0
  144. package/dist/safe-bash/command-chunks/{chunk-LWS62ISU.js → chunk-N6DIASO2.js} +1 -1
  145. package/dist/safe-bash/command-chunks/chunk-NGL7YK7O.js +188 -0
  146. package/dist/safe-bash/command-chunks/{chunk-PEF7K3UQ.js → chunk-NJYHWKIL.js} +40 -10
  147. package/dist/safe-bash/command-chunks/{chunk-VXSLJH7G.js → chunk-OJQRSCBP.js} +27 -7
  148. package/dist/safe-bash/command-chunks/{chunk-OQU6UT6X.js → chunk-OV3XREFN.js} +11 -0
  149. package/dist/safe-bash/command-chunks/{chunk-MIXBO6U7.js → chunk-PTZLF456.js} +2 -2
  150. package/dist/safe-bash/command-chunks/{chunk-ALDC4XP4.js → chunk-QILLRNES.js} +34 -10
  151. package/dist/safe-bash/command-chunks/{chunk-L22T3H7L.js → chunk-QR25JLKO.js} +1 -1
  152. package/dist/safe-bash/command-chunks/{chunk-7U7EXOXX.js → chunk-R7C4MGZ5.js} +17 -223
  153. package/dist/safe-bash/command-chunks/{chunk-LCF3OB7P.js → chunk-RBME3JEH.js} +1 -1
  154. package/dist/safe-bash/command-chunks/{chunk-2KG2QLJE.js → chunk-RFWGYT7G.js} +3 -0
  155. package/dist/safe-bash/command-chunks/{chunk-5TBUOBDE.js → chunk-RZMVRT26.js} +27 -13
  156. package/dist/safe-bash/command-chunks/chunk-TFR6B3WB.js +44 -0
  157. package/dist/safe-bash/command-chunks/chunk-TOH3OF3O.js +179 -0
  158. package/dist/safe-bash/command-chunks/{chunk-VGG2DL5Q.js → chunk-TRR4MYWF.js} +4 -0
  159. package/dist/safe-bash/command-chunks/chunk-TT4DAFBT.js +13621 -0
  160. package/dist/safe-bash/command-chunks/{chunk-LWSBAWLT.js → chunk-TXI64OAG.js} +1 -1
  161. package/dist/safe-bash/command-chunks/chunk-TZRI7BJZ.js +496 -0
  162. package/dist/safe-bash/command-chunks/{chunk-QOKBZFFD.js → chunk-U3MMODA5.js} +2 -7
  163. package/dist/safe-bash/command-chunks/{chunk-ZYHTWNAE.js → chunk-UAW423ZL.js} +11 -11
  164. package/dist/safe-bash/command-chunks/{chunk-C5YYCQHW.js → chunk-UXEEUGOV.js} +222 -12
  165. package/dist/safe-bash/command-chunks/{chunk-GY3BWK7K.js → chunk-VOZPMJRX.js} +87 -80
  166. package/dist/safe-bash/command-chunks/{chunk-MQFIPHIQ.js → chunk-WPANOB4A.js} +38 -35
  167. package/dist/safe-bash/command-chunks/{chunk-Y2WBSJG6.js → chunk-X4QZQI5Q.js} +65 -64
  168. package/dist/safe-bash/command-chunks/{chunk-FPVUD6TH.js → chunk-XGI57GCN.js} +10 -8
  169. package/dist/safe-bash/command-chunks/{chunk-5UBXNSFZ.js → chunk-XUCU7QQT.js} +1281 -1278
  170. package/dist/safe-bash/command-chunks/chunk-Y22VXJBD.js +296 -0
  171. package/dist/safe-bash/command-chunks/{chunk-WVHONVZ4.js → chunk-YMFUUPDX.js} +5 -3
  172. package/dist/safe-bash/command-chunks/{chunk-IR2BY7EL.js → chunk-YYGIBXFZ.js} +2 -2
  173. package/dist/safe-bash/command-chunks/{chunk-MSFXC3OC.js → chunk-Z4FO6OHE.js} +2 -2
  174. package/dist/safe-bash/command-chunks/{chunk-6GWJUQAV.js → chunk-Z5ZZVDUD.js} +181 -133
  175. package/dist/safe-bash/command-chunks/{chunk-W5DNF4JH.js → chunk-ZHN3QDCI.js} +1 -1
  176. package/dist/safe-bash/commands/alias/index.d.ts +2 -0
  177. package/dist/safe-bash/commands/alias/index.js +2 -0
  178. package/dist/safe-bash/commands/apply-patch/index.browser.js +2 -3
  179. package/dist/safe-bash/commands/apply-patch/index.d.ts +0 -1
  180. package/dist/safe-bash/commands/apply-patch/index.js +0 -1
  181. package/dist/safe-bash/commands/archive/index.browser.js +2 -3
  182. package/dist/safe-bash/commands/archive/index.d.ts +0 -1
  183. package/dist/safe-bash/commands/archive/index.js +0 -1
  184. package/dist/safe-bash/commands/bytes/compression/index.js +54 -51
  185. package/dist/safe-bash/commands/bytes/index.js +2 -1
  186. package/dist/safe-bash/commands/chmod/index.browser.js +14 -0
  187. package/dist/safe-bash/commands/chmod/index.d.ts +2 -0
  188. package/dist/safe-bash/commands/chmod/index.js +2 -0
  189. package/dist/safe-bash/commands/column/index.browser.js +2 -3
  190. package/dist/safe-bash/commands/column/index.d.ts +0 -1
  191. package/dist/safe-bash/commands/column/index.js +0 -1
  192. package/dist/safe-bash/commands/copy-source.js +1 -0
  193. package/dist/safe-bash/commands/csplit/index.browser.js +2 -2
  194. package/dist/safe-bash/commands/csvkit/index.browser.js +72 -0
  195. package/dist/safe-bash/commands/csvkit/index.d.ts +0 -5
  196. package/dist/safe-bash/commands/csvkit/index.js +0 -50
  197. package/dist/safe-bash/commands/docx/index.browser.js +5 -7
  198. package/dist/safe-bash/commands/du/index.browser.js +2 -3
  199. package/dist/safe-bash/commands/du/index.d.ts +0 -1
  200. package/dist/safe-bash/commands/du/index.js +0 -1
  201. package/dist/safe-bash/commands/expr/index.browser.js +2 -3
  202. package/dist/safe-bash/commands/expr/index.d.ts +0 -1
  203. package/dist/safe-bash/commands/expr/index.js +0 -1
  204. package/dist/safe-bash/commands/factor/index.browser.js +2 -2
  205. package/dist/safe-bash/commands/file/index.browser.js +2 -3
  206. package/dist/safe-bash/commands/file/index.d.ts +0 -1
  207. package/dist/safe-bash/commands/file/index.js +0 -1
  208. package/dist/safe-bash/commands/filesystem.js +1 -1
  209. package/dist/safe-bash/commands/getopt/index.browser.js +2 -2
  210. package/dist/safe-bash/commands/grep-aliases/index.browser.js +3 -3
  211. package/dist/safe-bash/commands/hexdump/index.browser.js +2 -2
  212. package/dist/safe-bash/commands/html-to-markdown/index.browser.js +2 -3
  213. package/dist/safe-bash/commands/html-to-markdown/index.d.ts +0 -1
  214. package/dist/safe-bash/commands/html-to-markdown/index.js +0 -1
  215. package/dist/safe-bash/commands/htmlq/index.d.ts +1 -5
  216. package/dist/safe-bash/commands/htmlq/index.js +1 -143
  217. package/dist/safe-bash/commands/iconv/index.browser.js +2 -2
  218. package/dist/safe-bash/commands/line-endings/index.browser.js +2 -2
  219. package/dist/safe-bash/commands/llm/index.browser.js +2 -2
  220. package/dist/safe-bash/commands/llm/providers/index.browser.js +1 -1
  221. package/dist/safe-bash/commands/mdq/index.browser.js +3 -3
  222. package/dist/safe-bash/commands/media/index.browser.js +4 -16314
  223. package/dist/safe-bash/commands/media/index.d.ts +1 -5
  224. package/dist/safe-bash/commands/media/index.js +1 -3
  225. package/dist/safe-bash/commands/media/plugin.d.ts +1 -18
  226. package/dist/safe-bash/commands/media/plugin.js +1 -90
  227. package/dist/safe-bash/commands/media/remote.d.ts +1 -63
  228. package/dist/safe-bash/commands/media/remote.js +1 -405
  229. package/dist/safe-bash/commands/media/settings.d.ts +1 -4
  230. package/dist/safe-bash/commands/media/settings.js +1 -26
  231. package/dist/safe-bash/commands/metadata/chmod.d.ts +1 -7
  232. package/dist/safe-bash/commands/metadata/chmod.js +1 -204
  233. package/dist/safe-bash/commands/metadata/index.browser.js +3 -8
  234. package/dist/safe-bash/commands/metadata/index.d.ts +0 -1
  235. package/dist/safe-bash/commands/metadata/index.js +2 -2
  236. package/dist/safe-bash/commands/metadata/internal.d.ts +1 -30
  237. package/dist/safe-bash/commands/metadata/internal.js +1 -76
  238. package/dist/safe-bash/commands/metadata/mktemp.d.ts +1 -3
  239. package/dist/safe-bash/commands/metadata/mktemp.js +1 -202
  240. package/dist/safe-bash/commands/metadata/stat.d.ts +1 -7
  241. package/dist/safe-bash/commands/metadata/stat.js +1 -530
  242. package/dist/safe-bash/commands/mktemp/index.browser.js +13 -0
  243. package/dist/safe-bash/commands/mktemp/index.d.ts +2 -0
  244. package/dist/safe-bash/commands/mktemp/index.js +2 -0
  245. package/dist/safe-bash/commands/network/curl.js +1 -3
  246. package/dist/safe-bash/commands/network/index.browser.js +3 -4
  247. package/dist/safe-bash/commands/network/public.d.ts +0 -1
  248. package/dist/safe-bash/commands/network/public.js +0 -1
  249. package/dist/safe-bash/commands/network/transport.js +2 -1
  250. package/dist/safe-bash/commands/network/wget.js +1 -3
  251. package/dist/safe-bash/commands/node/browser.d.ts +0 -1
  252. package/dist/safe-bash/commands/node/browser.js +0 -1
  253. package/dist/safe-bash/commands/node/default-runtime.d.ts +3 -0
  254. package/dist/safe-bash/commands/node/default-runtime.js +15 -0
  255. package/dist/safe-bash/commands/node/index.browser.js +7 -8
  256. package/dist/safe-bash/commands/node/index.js +3 -3
  257. package/dist/safe-bash/commands/node/path.js +1 -1
  258. package/dist/safe-bash/commands/node/preload.d.ts +1 -1
  259. package/dist/safe-bash/commands/node/preload.js +4 -1
  260. package/dist/safe-bash/commands/node/quickjs.d.ts +2 -0
  261. package/dist/safe-bash/commands/node/quickjs.js +2 -0
  262. package/dist/safe-bash/commands/node/safejs.js +26 -12
  263. package/dist/safe-bash/commands/op/index.browser.js +2 -3
  264. package/dist/safe-bash/commands/op/index.d.ts +0 -11
  265. package/dist/safe-bash/commands/op/index.js +0 -84
  266. package/dist/safe-bash/commands/pandoc/index.browser.js +44 -0
  267. package/dist/safe-bash/commands/pandoc/index.d.ts +0 -1
  268. package/dist/safe-bash/commands/pandoc/index.js +0 -1
  269. package/dist/safe-bash/commands/portable-random.d.ts +1 -1
  270. package/dist/safe-bash/commands/portable-random.js +1 -12
  271. package/dist/safe-bash/commands/pr/index.browser.js +2 -2
  272. package/dist/safe-bash/commands/python/docker-runner.js +4 -3
  273. package/dist/safe-bash/commands/python/docker.d.ts +1 -0
  274. package/dist/safe-bash/commands/python/docker.js +5 -2
  275. package/dist/safe-bash/commands/python/index.browser.js +17 -13
  276. package/dist/safe-bash/commands/python/index.d.ts +2 -1
  277. package/dist/safe-bash/commands/python/index.js +10 -8
  278. package/dist/safe-bash/commands/python/llm-capability.js +65 -2
  279. package/dist/safe-bash/commands/python/llm-dependencies.d.ts +27 -0
  280. package/dist/safe-bash/commands/python/llm-dependencies.js +66 -0
  281. package/dist/safe-bash/commands/python/llm-module.js +6 -4
  282. package/dist/safe-bash/commands/python/llm-reference-module.d.ts +3 -0
  283. package/dist/safe-bash/commands/python/llm-reference-module.js +690 -0
  284. package/dist/safe-bash/commands/python/worker.browser.js +2 -3
  285. package/dist/safe-bash/commands/python/worker.d.ts +0 -1
  286. package/dist/safe-bash/commands/python/worker.js +0 -1
  287. package/dist/safe-bash/commands/regex-execution/ere/transport/wire-engine.d.ts +1 -1
  288. package/dist/safe-bash/commands/regex-execution/ere/transport/wire-engine.js +3 -3
  289. package/dist/safe-bash/commands/regex-execution/public.browser.js +7 -7
  290. package/dist/safe-bash/commands/safejs/options.js +5 -1
  291. package/dist/safe-bash/commands/safejs/runtime.d.ts +1 -0
  292. package/dist/safe-bash/commands/safejs/runtime.js +1 -1
  293. package/dist/safe-bash/commands/split/index.browser.js +2 -3
  294. package/dist/safe-bash/commands/split/index.d.ts +0 -1
  295. package/dist/safe-bash/commands/split/index.js +0 -1
  296. package/dist/safe-bash/commands/ssconvert/index.browser.js +98 -0
  297. package/dist/safe-bash/commands/stat/index.browser.js +13 -0
  298. package/dist/safe-bash/commands/stat/index.d.ts +2 -0
  299. package/dist/safe-bash/commands/stat/index.js +2 -0
  300. package/dist/safe-bash/commands/stream-format/index.browser.js +3 -4
  301. package/dist/safe-bash/commands/stream-format/index.d.ts +0 -1
  302. package/dist/safe-bash/commands/stream-format/index.js +0 -1
  303. package/dist/safe-bash/commands/stream-inspection/index.browser.js +3 -4
  304. package/dist/safe-bash/commands/stream-inspection/index.d.ts +0 -1
  305. package/dist/safe-bash/commands/stream-inspection/index.js +0 -1
  306. package/dist/safe-bash/commands/streams.js +2 -1
  307. package/dist/safe-bash/commands/table-text/index.browser.js +3 -4
  308. package/dist/safe-bash/commands/table-text/index.d.ts +0 -1
  309. package/dist/safe-bash/commands/table-text/index.js +0 -1
  310. package/dist/safe-bash/commands/text.js +74 -34
  311. package/dist/safe-bash/commands/time-env/index.browser.js +3 -4
  312. package/dist/safe-bash/commands/time-env/index.d.ts +0 -1
  313. package/dist/safe-bash/commands/time-env/index.js +0 -1
  314. package/dist/safe-bash/commands/tree/index.browser.js +2 -3
  315. package/dist/safe-bash/commands/tree/index.d.ts +0 -1
  316. package/dist/safe-bash/commands/tree/index.js +0 -1
  317. package/dist/safe-bash/commands/tsort/index.browser.js +2 -2
  318. package/dist/safe-bash/commands/unalias/index.d.ts +2 -0
  319. package/dist/safe-bash/commands/unalias/index.js +2 -0
  320. package/dist/safe-bash/commands/xml/index.browser.js +2 -2
  321. package/dist/safe-bash/commands/yq/index.browser.js +2 -2
  322. package/dist/safe-bash/core.browser.js +2 -2
  323. package/dist/safe-bash/core.d.ts +7 -1
  324. package/dist/safe-bash/core.js +7 -1
  325. package/dist/safe-bash/execution-runtime.js +2 -1
  326. package/dist/safe-bash/fs/s3/http/index.d.ts +2 -2
  327. package/dist/safe-bash/fs/s3/http/index.js +1 -1
  328. package/dist/safe-bash/full-core.browser.js +254 -916
  329. package/dist/safe-bash/internal/op/types.d.ts +1 -0
  330. package/dist/safe-bash/jobs.browser.js +5 -5
  331. package/dist/safe-bash/lazy-optional.d.ts +3 -3
  332. package/dist/safe-bash/lazy-optional.js +1 -1
  333. package/dist/safe-bash/opt-in/commands/cmp/index.js +7 -6
  334. package/dist/safe-bash/opt-in/commands/dd/index.js +1 -1
  335. package/dist/safe-bash/opt-in/commands/dd/io.js +51 -5
  336. package/dist/safe-bash/opt-in/commands/truncate/index.js +2 -2
  337. package/dist/safe-bash/opt-in/commands/yq/native-work.js +3 -0
  338. package/dist/safe-bash/opt-in/optional/commands/shuf/input.js +2 -1
  339. package/dist/safe-bash/opt-in/optional/commands/shuf/shuf.js +4 -2
  340. package/dist/safe-bash/opt-in/optional.d.ts +1 -1
  341. package/dist/safe-bash/opt-in/optional.js +1 -1
  342. package/dist/safe-bash/opt-in/shell/extensions/read/index.js +2 -344
  343. package/dist/safe-bash/optional-host.browser.js +19 -14
  344. package/dist/safe-bash/optional-host.d.ts +1 -0
  345. package/dist/safe-bash/optional-host.js +1 -0
  346. package/dist/safe-bash/playwright/controller.js +41 -3
  347. package/dist/safe-bash/playwright/native-storage-targets.js +4 -2
  348. package/dist/safe-bash/plugins/base.d.ts +1 -1
  349. package/dist/safe-bash/plugins/base.js +3 -3
  350. package/dist/safe-bash/plugins/composition.d.ts +5 -2
  351. package/dist/safe-bash/plugins/composition.js +10 -7
  352. package/dist/safe-bash/plugins/index.browser.js +44 -41
  353. package/dist/safe-bash/plugins/index.js +3 -2
  354. package/dist/safe-bash/plugins/portable-commands.d.ts +3 -0
  355. package/dist/safe-bash/plugins/portable-commands.js +31 -0
  356. package/dist/safe-bash/registry-entry.browser.js +41 -42
  357. package/dist/safe-bash/search.browser.js +32 -33
  358. package/dist/safe-bash/shell/arithmetic.js +19 -6
  359. package/dist/safe-bash/shell/arrays/state.js +1 -1
  360. package/dist/safe-bash/shell/arrays/syntax.js +4 -3
  361. package/dist/safe-bash/shell/index.d.ts +0 -1
  362. package/dist/safe-bash/shell/index.js +0 -1
  363. package/dist/safe-bash/shell/parser.d.ts +2 -2
  364. package/dist/safe-bash/shell/parser.js +268 -64
  365. package/dist/safe-bash/shell/read-builtin.d.ts +3 -0
  366. package/dist/safe-bash/shell/read-builtin.js +344 -0
  367. package/dist/safe-bash/shell/runtime.d.ts +24 -4
  368. package/dist/safe-bash/shell/runtime.js +392 -414
  369. package/dist/safe-bash/shell/session-state.js +25 -0
  370. package/dist/safe-bash/shell/shell.js +76 -154
  371. package/dist/safe-bash/shell/tilde-expansion.d.ts +1 -1
  372. package/dist/safe-bash/shell/tilde-expansion.js +2 -2
  373. package/dist/safe-bash/shell/types.d.ts +7 -0
  374. package/dist/safe-bash/shell/value-state.js +1 -1
  375. package/dist/safe-bash/shell/worker-limits.js +1 -0
  376. package/dist/safe-bash/shell-entry.browser.js +32 -33
  377. package/dist/safe-bash/trap.browser.js +4 -4
  378. package/dist/safe-bash/worker/host.js +1 -1
  379. package/dist/safe-bash/yq-browser/index.js +1 -1
  380. package/dist/safe-bash-calendar-engine/time-env/calendar.d.ts +1 -1
  381. package/dist/safe-bash-calendar-engine/time-env/calendar.js +1 -1
  382. package/dist/safe-bash-calendar-engine/time-env/format.js +1 -1
  383. package/dist/safe-bash-command-alias/index.d.ts +13 -0
  384. package/dist/safe-bash-command-alias/index.js +88 -0
  385. package/dist/safe-bash-command-apply-patch/apply.js +3 -3
  386. package/dist/safe-bash-command-apply-patch/index.js +3 -3
  387. package/dist/safe-bash-command-apply-patch/matcher.js +1 -1
  388. package/dist/safe-bash-command-apply-patch/parser.js +1 -1
  389. package/dist/safe-bash-command-awk/awk-pipes.js +2 -2
  390. package/dist/safe-bash-command-awk/awk-reader.js +1 -1
  391. package/dist/safe-bash-command-awk/awk-runtime.js +3 -3
  392. package/dist/safe-bash-command-awk/awk.js +5 -5
  393. package/dist/safe-bash-command-awk/index.js +5 -5
  394. package/dist/safe-bash-command-bc/index.js +218 -65
  395. package/dist/safe-bash-command-bzip2/index.js +4 -3
  396. package/dist/safe-bash-command-chmod/LICENSE +21 -0
  397. package/dist/safe-bash-command-chmod/command.d.ts +7 -0
  398. package/dist/safe-bash-command-chmod/command.js +11 -0
  399. package/dist/safe-bash-command-chmod/index.d.ts +6 -0
  400. package/dist/safe-bash-command-chmod/index.js +27 -0
  401. package/dist/safe-bash-command-cmp/index.js +7 -6
  402. package/dist/safe-bash-command-column/column.js +3 -3
  403. package/dist/safe-bash-command-column/index.js +3 -3
  404. package/dist/safe-bash-command-column/layout.js +2 -2
  405. package/dist/safe-bash-command-csvkit/index.d.ts +1 -0
  406. package/dist/safe-bash-command-csvkit/index.js +1505 -7
  407. package/dist/safe-bash-command-csvkit/sync-support.js +2 -7
  408. package/dist/safe-bash-command-curl/curl.js +1 -1
  409. package/dist/safe-bash-command-curl/index.js +1 -1
  410. package/dist/safe-bash-command-date/date.js +1 -1
  411. package/dist/safe-bash-command-date/index.js +1 -1
  412. package/dist/safe-bash-command-dd/index.js +1 -1
  413. package/dist/safe-bash-command-dd/io.js +51 -5
  414. package/dist/safe-bash-command-diff/diff.js +1 -1
  415. package/dist/safe-bash-command-diff/index.js +1 -1
  416. package/dist/safe-bash-command-diff3/index.js +10 -13
  417. package/dist/safe-bash-command-exiftool/index.js +283 -55
  418. package/dist/safe-bash-command-exiftool/registry.d.ts +4 -2
  419. package/dist/safe-bash-command-factor/command.js +2 -2
  420. package/dist/safe-bash-command-factor/index.js +2 -2
  421. package/dist/safe-bash-command-fd/arguments.d.ts +2 -0
  422. package/dist/safe-bash-command-fd/index.js +42 -12
  423. package/dist/safe-bash-command-ffmpeg/index.js +356 -66
  424. package/dist/safe-bash-command-find/find-format.d.ts +3 -0
  425. package/dist/safe-bash-command-find/find-format.js +1 -1
  426. package/dist/safe-bash-command-find/find.js +2 -2
  427. package/dist/safe-bash-command-find/index.js +2 -2
  428. package/dist/safe-bash-command-fmt/index.js +10 -6
  429. package/dist/safe-bash-command-fold/engine.d.ts +1 -1
  430. package/dist/safe-bash-command-fold/family.js +2 -2
  431. package/dist/safe-bash-command-fold/index.js +1 -1
  432. package/dist/safe-bash-command-gzip/index.js +45 -42
  433. package/dist/safe-bash-command-hexdump/command.js +2 -2
  434. package/dist/safe-bash-command-hexdump/index.js +2 -2
  435. package/dist/safe-bash-command-html-to-markdown/entities.js +1 -1
  436. package/dist/safe-bash-command-html-to-markdown/index.js +4 -4
  437. package/dist/safe-bash-command-html-to-markdown/input.js +3 -3
  438. package/dist/safe-bash-command-html-to-markdown/parser.js +2 -2
  439. package/dist/safe-bash-command-html-to-markdown/render.js +3 -3
  440. package/dist/safe-bash-command-htmlq/contracts.d.ts +5 -2
  441. package/dist/safe-bash-command-htmlq/index.d.ts +2 -1
  442. package/dist/safe-bash-command-htmlq/index.js +175 -49
  443. package/dist/safe-bash-command-htmlq/sync.d.ts +1 -0
  444. package/dist/safe-bash-command-imagemagick/index.js +59 -7
  445. package/dist/safe-bash-command-install/arguments.d.ts +27 -0
  446. package/dist/safe-bash-command-install/arguments.js +224 -0
  447. package/dist/safe-bash-command-install/index.d.ts +7 -0
  448. package/dist/safe-bash-command-install/index.js +942 -0
  449. package/dist/safe-bash-command-install/mode.d.ts +6 -0
  450. package/dist/safe-bash-command-install/mode.js +71 -0
  451. package/dist/safe-bash-command-install/options.d.ts +40 -0
  452. package/dist/safe-bash-command-install/options.js +27 -0
  453. package/dist/safe-bash-command-jq/index.js +1 -1
  454. package/dist/safe-bash-command-jq/jq.js +1 -1
  455. package/dist/safe-bash-command-less/index.js +42 -57
  456. package/dist/safe-bash-command-llm/command.js +1 -1
  457. package/dist/safe-bash-command-llm/elevenlabs.js +2 -2
  458. package/dist/safe-bash-command-llm/index.js +4 -4
  459. package/dist/safe-bash-command-llm/openai.js +2 -2
  460. package/dist/safe-bash-command-llm/providers/elevenlabs.js +2 -2
  461. package/dist/safe-bash-command-llm/providers/index.js +3 -3
  462. package/dist/safe-bash-command-llm/providers/openai.js +2 -2
  463. package/dist/safe-bash-command-llm/providers/shared.js +1 -1
  464. package/dist/{safe-bash-mcp → safe-bash-command-mcp}/index.browser.d.ts +463 -46
  465. package/dist/safe-bash-command-mcp/index.browser.js +19308 -0
  466. package/dist/{safe-bash-mcp → safe-bash-command-mcp}/index.d.ts +15 -6
  467. package/dist/{safe-bash-mcp → safe-bash-command-mcp}/index.js +2835 -2783
  468. package/dist/safe-bash-command-media/LICENSE +21 -0
  469. package/dist/safe-bash-command-media/index.d.ts +6 -0
  470. package/dist/safe-bash-command-media/index.js +30 -0
  471. package/dist/safe-bash-command-media/plugin.d.ts +18 -0
  472. package/dist/safe-bash-command-media/plugin.js +11 -0
  473. package/dist/safe-bash-command-media/remote.d.ts +63 -0
  474. package/dist/safe-bash-command-media/remote.js +11 -0
  475. package/dist/safe-bash-command-media/settings.d.ts +4 -0
  476. package/dist/safe-bash-command-media/settings.js +41 -0
  477. package/dist/safe-bash-command-mktemp/LICENSE +21 -0
  478. package/dist/safe-bash-command-mktemp/command.d.ts +3 -0
  479. package/dist/safe-bash-command-mktemp/command.js +9 -0
  480. package/dist/safe-bash-command-mktemp/index.d.ts +6 -0
  481. package/dist/safe-bash-command-mktemp/index.js +25 -0
  482. package/dist/safe-bash-command-mmdc/arguments.d.ts +1 -0
  483. package/dist/safe-bash-command-mmdc/command.d.ts +2 -0
  484. package/dist/safe-bash-command-mmdc/contracts.d.ts +8 -1
  485. package/dist/safe-bash-command-mmdc/index.js +359 -7
  486. package/dist/safe-bash-command-nl/index.js +1 -1
  487. package/dist/safe-bash-command-nl/nl.js +1 -1
  488. package/dist/safe-bash-command-node/LICENSE +21 -0
  489. package/dist/safe-bash-command-node/index.d.ts +17 -0
  490. package/dist/safe-bash-command-node/index.js +328 -0
  491. package/dist/safe-bash-command-numfmt/index.js +1 -0
  492. package/dist/safe-bash-command-od/index.js +16 -8
  493. package/dist/safe-bash-command-op/index.js +62 -36
  494. package/dist/safe-bash-command-op/types.d.ts +1 -0
  495. package/dist/safe-bash-command-pandoc/command.js +3 -3
  496. package/dist/safe-bash-command-pandoc/index.d.ts +1 -0
  497. package/dist/safe-bash-command-pandoc/index.js +5 -3
  498. package/dist/safe-bash-command-pandoc/sync.d.ts +1 -0
  499. package/dist/safe-bash-command-patch/index.js +4 -4
  500. package/dist/safe-bash-command-patch/patch.js +4 -4
  501. package/dist/safe-bash-command-pdfimages/index.js +1 -1
  502. package/dist/safe-bash-command-pdfinfo/index.js +30 -5
  503. package/dist/safe-bash-command-pdftk/index.js +21 -23
  504. package/dist/safe-bash-command-pdftoppm/index.js +17 -4
  505. package/dist/safe-bash-command-pdftotext/index.js +11 -14
  506. package/dist/safe-bash-command-qpdf/index.d.ts +1 -0
  507. package/dist/safe-bash-command-qpdf/index.js +9 -6
  508. package/dist/safe-bash-command-rg/index.js +1 -1
  509. package/dist/safe-bash-command-rg/rg-command.js +1 -1
  510. package/dist/safe-bash-command-sed/index.js +1 -1
  511. package/dist/safe-bash-command-sed/sed.js +1 -1
  512. package/dist/safe-bash-command-shuf/input.d.ts +2 -2
  513. package/dist/safe-bash-command-shuf/input.js +2 -1
  514. package/dist/safe-bash-command-shuf/shuf.js +4 -2
  515. package/dist/safe-bash-command-sips/index.js +15 -7
  516. package/dist/safe-bash-command-soffice/index.js +97 -12
  517. package/dist/safe-bash-command-sponge/index.js +13 -3
  518. package/dist/safe-bash-command-sqlite3/engine.d.ts +1 -0
  519. package/dist/safe-bash-command-sqlite3/index.js +510 -70
  520. package/dist/safe-bash-command-ssconvert/formats/xlsx.js +2 -2
  521. package/dist/safe-bash-command-ssconvert/index.js +44 -22
  522. package/dist/safe-bash-command-stat/LICENSE +21 -0
  523. package/dist/safe-bash-command-stat/command.d.ts +7 -0
  524. package/dist/safe-bash-command-stat/command.js +9 -0
  525. package/dist/safe-bash-command-stat/index.d.ts +6 -0
  526. package/dist/safe-bash-command-stat/index.js +25 -0
  527. package/dist/safe-bash-command-tar/create.d.ts +1 -0
  528. package/dist/safe-bash-command-tar/create.js +2 -2
  529. package/dist/safe-bash-command-tar/extract.js +2 -2
  530. package/dist/safe-bash-command-tar/index.js +4 -4
  531. package/dist/safe-bash-command-tar/modes.js +4 -4
  532. package/dist/safe-bash-command-tar/options.js +1 -1
  533. package/dist/safe-bash-command-truncate/index.js +2 -2
  534. package/dist/safe-bash-command-tsort/command.js +2 -2
  535. package/dist/safe-bash-command-tsort/index.js +2 -2
  536. package/dist/safe-bash-command-unalias/index.d.ts +12 -0
  537. package/dist/safe-bash-command-unalias/index.js +67 -0
  538. package/dist/safe-bash-command-unrtf/index.js +37 -5
  539. package/dist/safe-bash-command-xan/argv.d.ts +1 -1
  540. package/dist/safe-bash-command-xan/argv.js +2 -2
  541. package/dist/safe-bash-command-xan/budget.d.ts +0 -1
  542. package/dist/safe-bash-command-xan/budget.js +1 -1
  543. package/dist/safe-bash-command-xan/commands.js +6 -6
  544. package/dist/safe-bash-command-xan/csv.js +2 -2
  545. package/dist/safe-bash-command-xan/index.js +8 -9
  546. package/dist/safe-bash-command-xan/io.js +4 -4
  547. package/dist/safe-bash-command-xan/options.js +1 -1
  548. package/dist/safe-bash-command-xan/selector.js +2 -2
  549. package/dist/safe-bash-command-xmllint/index.js +45 -23
  550. package/dist/safe-bash-command-xxd/index.js +47 -12
  551. package/dist/safe-bash-command-xz/command.d.ts +1 -1
  552. package/dist/safe-bash-command-xz/index.js +3 -2
  553. package/dist/safe-bash-command-yq/accounting.js +1 -1
  554. package/dist/safe-bash-command-yq/index.js +4 -2
  555. package/dist/safe-bash-command-yq/native-work.js +3 -0
  556. package/dist/safe-bash-command-yq/parser.js +2 -2
  557. package/dist/safe-bash-command-yq/query.js +8 -5
  558. package/dist/safe-bash-command-yq/toml.js +2 -2
  559. package/dist/safe-bash-command-zip/index.js +3 -3
  560. package/dist/safe-bash-compression-engine/bounded-codec.js +3 -3
  561. package/dist/safe-bash-compression-engine/codec-loader.js +2 -2
  562. package/dist/safe-bash-compression-engine/files.js +6 -6
  563. package/dist/safe-bash-compression-engine/index.js +5 -5
  564. package/dist/safe-bash-compression-engine/operand.js +6 -6
  565. package/dist/safe-bash-compression-engine/options.js +1 -1
  566. package/dist/safe-bash-compression-engine/stream.js +5 -5
  567. package/dist/safe-bash-compression-engine/zstd-decode.js +4 -4
  568. package/dist/safe-bash-contracts/command.js +3 -3
  569. package/dist/safe-bash-contracts/default-executor.js +2 -2
  570. package/dist/safe-bash-contracts/diagnostics.js +3 -3
  571. package/dist/safe-bash-contracts/escaping.js +6 -6
  572. package/dist/safe-bash-contracts/filesystem-descriptor.js +3 -3
  573. package/dist/safe-bash-contracts/filesystem-output.js +5 -5
  574. package/dist/safe-bash-contracts/http.d.ts +7 -0
  575. package/dist/safe-bash-contracts/index.js +8 -8
  576. package/dist/safe-bash-contracts/io.d.ts +2 -0
  577. package/dist/safe-bash-contracts/io.js +2 -2
  578. package/dist/safe-bash-contracts/output.js +3 -3
  579. package/dist/safe-bash-contracts/runtime-control.d.ts +2 -2
  580. package/dist/safe-bash-contracts/runtime-control.js +4 -2
  581. package/dist/safe-bash-contracts/signals.d.ts +2 -0
  582. package/dist/safe-bash-contracts/signals.js +3 -1
  583. package/dist/safe-bash-contracts/yield.js +1 -1
  584. package/dist/safe-bash-csv-engine/index.d.ts +2 -1
  585. package/dist/safe-bash-csv-engine/index.js +21 -15
  586. package/dist/safe-bash-io-engine/commands/search/requirements.js +2 -2
  587. package/dist/safe-bash-io-engine/commands/text-programs/shared.js +6 -6
  588. package/dist/safe-bash-io-engine/internal.js +1 -1
  589. package/dist/safe-bash-io-engine/shell/pattern.js +38 -18
  590. package/dist/safe-bash-line-ending-engine/convert.js +9 -204
  591. package/dist/safe-bash-line-ending-engine/encoding.js +9 -42
  592. package/dist/safe-bash-line-ending-engine/index.js +48 -0
  593. package/dist/safe-bash-line-ending-engine/info.js +9 -90
  594. package/dist/safe-bash-line-ending-engine/internal.js +15 -160
  595. package/dist/safe-bash-line-ending-engine/io.js +12 -289
  596. package/dist/safe-bash-line-ending-engine/stage.js +10 -160
  597. package/dist/safe-bash-markdown-engine/index.js +3 -3
  598. package/dist/safe-bash-metadata-engine/LICENSE +21 -0
  599. package/dist/safe-bash-metadata-engine/index.d.ts +30 -0
  600. package/dist/safe-bash-metadata-engine/index.js +82 -0
  601. package/dist/safe-bash-metadata-engine/random.d.ts +1 -0
  602. package/dist/safe-bash-metadata-engine/random.js +21 -0
  603. package/dist/safe-bash-network-engine/args.d.ts +6 -0
  604. package/dist/safe-bash-network-engine/args.js +4 -2
  605. package/dist/safe-bash-network-engine/body.js +1 -1
  606. package/dist/safe-bash-network-engine/fetch-transport.js +3 -1
  607. package/dist/safe-bash-network-engine/index.js +3 -1
  608. package/dist/safe-bash-network-engine/input.js +2 -2
  609. package/dist/safe-bash-network-engine/platform-portable.js +3 -1
  610. package/dist/safe-bash-query-engine/dates.d.ts +1 -1
  611. package/dist/safe-bash-query-engine/dates.js +1 -1
  612. package/dist/safe-bash-query-engine/index.js +6 -6
  613. package/dist/safe-bash-query-engine/interpreter.js +4 -4
  614. package/dist/safe-bash-query-engine/parser.js +1 -1
  615. package/dist/safe-bash-query-engine/query-core.js +6 -6
  616. package/dist/safe-bash-regex-engine/execution/bounded-provider.js +10 -0
  617. package/dist/safe-bash-regex-engine/index.js +1 -1
  618. package/dist/safe-bash-regex-engine/text/regex.d.ts +1 -1
  619. package/dist/safe-bash-regex-engine/text/regex.js +1 -1
  620. package/dist/safe-bash-search-engine/ergonomic-regex.d.ts +1 -0
  621. package/dist/safe-bash-search-engine/ergonomic-regex.js +2 -2
  622. package/dist/safe-bash-search-engine/glob.js +2 -2
  623. package/dist/safe-bash-search-engine/grep.js +17 -10
  624. package/dist/safe-bash-search-engine/matcher.d.ts +2 -2
  625. package/dist/safe-bash-search-engine/matcher.js +13 -9
  626. package/dist/safe-bash-search-engine/options.d.ts +2 -0
  627. package/dist/safe-bash-search-engine/options.js +1 -1
  628. package/dist/safe-bash-search-engine/output.js +1 -1
  629. package/dist/safe-bash-search-engine/shared.js +2 -2
  630. package/dist/safe-bash-search-engine/walk.js +15 -3
  631. package/dist/safe-bash-text-stream-engine/stream-format/shared.d.ts +1 -1
  632. package/dist/safe-bash-text-stream-engine/stream-format/shared.js +2 -1
  633. package/dist/safe-bash-xml-engine/document.js +3 -3
  634. package/dist/safe-bash-xml-engine/evaluate.js +2 -2
  635. package/dist/safe-bash-xml-engine/index.js +4 -4
  636. package/dist/safe-bash-xml-engine/io.js +7 -2
  637. package/dist/safe-bash-xml-engine/limits.d.ts +0 -2
  638. package/dist/safe-bash-xml-engine/limits.js +1 -1
  639. package/dist/safe-bash-xml-engine/query.js +3 -3
  640. package/dist/safe-bash-zip-engine/index.js +3 -3
  641. package/dist/safe-bash-zip-engine/zip/repair.js +3 -3
  642. package/dist/safe-bash-zip-engine/zip/safety.js +1 -1
  643. package/dist/safe-bash-zip-engine/zip/sfx.js +3 -3
  644. package/dist/safe-bash-zip-engine/zip/volumes.js +1 -1
  645. package/dist/safe-bash-zip-engine/zip-format.js +3 -3
  646. package/dist/safe-playwright-cloudflare/browser-snapshot-json.js +2 -2
  647. package/dist/safe-playwright-cloudflare/browser-snapshot-references.js +1 -1
  648. package/dist/safe-playwright-cloudflare/browser-socket-closure.js +18 -3
  649. package/dist/safe-playwright-cloudflare/shell-browser-resource.js +1 -1
  650. package/dist/xlsx-ast/xlsx.js +6 -5
  651. package/package.json +112 -98
  652. package/dist/media-cli/bytes.d.ts +0 -8
  653. package/dist/media-cli/bytes.js +0 -40
  654. package/dist/media-cli/concat.d.ts +0 -30
  655. package/dist/media-cli/concat.js +0 -197
  656. package/dist/media-cli/content.js +0 -66
  657. package/dist/media-cli/dependency-grammars.d.ts +0 -12
  658. package/dist/media-cli/dependency-grammars.js +0 -557
  659. package/dist/media-cli/discover.js +0 -286
  660. package/dist/media-cli/engine.js +0 -190
  661. package/dist/media-cli/filename-expression.js +0 -147
  662. package/dist/media-cli/filesystem.js +0 -35
  663. package/dist/media-cli/frontend-contract.js +0 -8
  664. package/dist/media-cli/frontend-issues.d.ts +0 -6
  665. package/dist/media-cli/frontend-issues.js +0 -9
  666. package/dist/media-cli/imagemagick-operand.d.ts +0 -42
  667. package/dist/media-cli/imagemagick-operand.js +0 -229
  668. package/dist/media-cli/imagemagick-references.d.ts +0 -7
  669. package/dist/media-cli/imagemagick-references.js +0 -42
  670. package/dist/media-cli/imagemagick.generated.js +0 -3254
  671. package/dist/media-cli/imagemagick.js +0 -615
  672. package/dist/media-cli/index.js +0 -12
  673. package/dist/media-cli/mvg.d.ts +0 -10
  674. package/dist/media-cli/mvg.js +0 -102
  675. package/dist/media-cli/network.js +0 -78
  676. package/dist/media-cli/options.generated.js +0 -3312
  677. package/dist/media-cli/preset.d.ts +0 -11
  678. package/dist/media-cli/preset.js +0 -57
  679. package/dist/media-cli/resolution-path.d.ts +0 -23
  680. package/dist/media-cli/resolution-path.js +0 -217
  681. package/dist/media-cli/resolver.js +0 -494
  682. package/dist/media-cli/resources.d.ts +0 -16
  683. package/dist/media-cli/resources.js +0 -187
  684. package/dist/media-cli/shim.js +0 -52
  685. package/dist/media-cli/tee.d.ts +0 -6
  686. package/dist/media-cli/tee.js +0 -38
  687. package/dist/office-package/zip-sync.js +0 -111
  688. package/dist/remote-execution/binary.js +0 -178
  689. package/dist/remote-execution/callback-result.js +0 -26
  690. package/dist/remote-execution/canonical-capabilities.d.ts +0 -5
  691. package/dist/remote-execution/canonical-capabilities.js +0 -45
  692. package/dist/remote-execution/canonical-metadata.d.ts +0 -4
  693. package/dist/remote-execution/canonical-metadata.js +0 -32
  694. package/dist/remote-execution/client.js +0 -824
  695. package/dist/remote-execution/deployment.js +0 -131
  696. package/dist/remote-execution/descriptors.js +0 -267
  697. package/dist/remote-execution/effects.js +0 -357
  698. package/dist/remote-execution/endpoint.js +0 -224
  699. package/dist/remote-execution/files.js +0 -291
  700. package/dist/remote-execution/hosting-operation.js +0 -26
  701. package/dist/remote-execution/hosting-request.d.ts +0 -4
  702. package/dist/remote-execution/hosting-request.js +0 -12
  703. package/dist/remote-execution/hosting-stream.d.ts +0 -8
  704. package/dist/remote-execution/hosting-stream.js +0 -64
  705. package/dist/remote-execution/index.js +0 -18
  706. package/dist/remote-execution/invocation-admission.d.ts +0 -3
  707. package/dist/remote-execution/invocation-admission.js +0 -17
  708. package/dist/remote-execution/job-binding.js +0 -1269
  709. package/dist/remote-execution/materializations.js +0 -284
  710. package/dist/remote-execution/modal-driver.js +0 -90
  711. package/dist/remote-execution/native-result.d.ts +0 -3
  712. package/dist/remote-execution/native-result.js +0 -16
  713. package/dist/remote-execution/output-freshness.d.ts +0 -4
  714. package/dist/remote-execution/output-freshness.js +0 -19
  715. package/dist/remote-execution/output-retrieval.js +0 -474
  716. package/dist/remote-execution/process-http.js +0 -607
  717. package/dist/remote-execution/process.js +0 -577
  718. package/dist/remote-execution/protocol.js +0 -208
  719. package/dist/remote-execution/relay.js +0 -91
  720. package/dist/remote-execution/rest-driver.js +0 -93
  721. package/dist/remote-execution/upload-descriptor.js +0 -201
  722. package/dist/remote-execution/upload-protocol.js +0 -62
  723. package/dist/remote-execution/uploads.js +0 -324
  724. package/dist/remote-execution/wire-json.d.ts +0 -4
  725. package/dist/remote-execution/wire-json.js +0 -44
  726. package/dist/remote-execution/wire-validation.js +0 -131
  727. package/dist/remote-execution/wire.generated.js +0 -4224
  728. package/dist/safe-bash/chunks/chunk-GETUOD5D.js +0 -161
  729. package/dist/safe-bash/chunks/chunk-IWDICZVK.js +0 -20
  730. package/dist/safe-bash/chunks/chunk-MHMMRCYC.js +0 -3464
  731. package/dist/safe-bash/chunks/chunk-UE5KZDEK.js +0 -77
  732. package/dist/safe-bash/chunks/chunk-VSAJ4OTM.js +0 -962
  733. package/dist/safe-bash/chunks/csvkit-TACDU7FC.js +0 -1618
  734. package/dist/safe-bash/chunks/implementation-MLFHUQ5M.js +0 -133
  735. package/dist/safe-bash/commands/csvkit/sync.js +0 -1639
  736. package/dist/safe-bash/commands/node/unconfigured.d.ts +0 -3
  737. package/dist/safe-bash/commands/node/unconfigured.js +0 -10
  738. package/dist/safe-bash/commands/pandoc/implementation.d.ts +0 -8
  739. package/dist/safe-bash/commands/pandoc/implementation.js +0 -94
  740. package/dist/safe-bash-mcp/index.browser.js +0 -9157
  741. package/dist/safe-bash/command-chunks/{chunk-ZRRBXU3M.js → chunk-GIN5GUDP.js} +4 -4
  742. package/dist/safe-bash/command-chunks/{chunk-LAOM65EE.js → chunk-IEO4XVN6.js} +3 -3
  743. package/dist/safe-bash/command-chunks/{chunk-364TMWBT.js → chunk-MWREVL44.js} +6 -6
  744. package/dist/safe-bash/command-chunks/{chunk-464RVBGB.js → chunk-Q5TDKFHK.js} +3 -3
  745. package/dist/safe-bash/command-chunks/{chunk-AJR3AQYA.js → chunk-UKX3LZHR.js} +0 -0
  746. package/dist/safe-bash/command-chunks/{chunk-XIIBTGC5.js → chunk-XPXEQKRW.js} +9 -9
  747. package/dist/safe-bash/command-chunks/{chunk-FDBUV4HJ.js → chunk-Y4HGTG3E.js} +3 -3
  748. /package/dist/{safe-bash/commands/csvkit → safe-bash-command-csvkit}/sync.d.ts +0 -0
@@ -1,187 +0,0 @@
1
- import { byteText, textBytes, token } from "./bytes.js";
2
- import { classify } from "./resolution-path.js";
3
- import { filterInputMetadata, filterOutputMetadata, filterResourceAliases, filterResourceDefaults } from './options.generated.js';
4
- export function resource(index, value, role, access, stage, literal = role === 'preset', syntax = role === 'option-file' ? 'avio' : 'stdio') {
5
- if (!(value instanceof Uint8Array))
6
- throw new TypeError('Resource classification requires original bytes');
7
- // Classify the same owned bytes that discovery returns. Producer metadata
8
- // must not disguise a native URL as a filesystem dependency.
9
- value = new Uint8Array(value);
10
- const name = byteText(value);
11
- // AVIO opens '-' in the file namespace; only specific callers rewrite it.
12
- literal ||= syntax === 'avio' && name === '-';
13
- const classification = classify(value);
14
- const kind = literal ? 'path' : classification === "descriptor" ? "descriptor"
15
- : classification === "url" ? "url"
16
- : classification === 'file-protocol' ? 'file-protocol'
17
- : name.includes("%") || name.includes("*") ? "pattern" : "path";
18
- return { index, value, role, access, stage, kind, base: "cwd",
19
- ...(literal ? { literal: true } : {}) };
20
- }
21
- // Positional fields and aliases come from the individual registered filter tables.
22
- const filterFiles = {
23
- movie: ["filename"], amovie: ["filename"],
24
- lut1d: ["file"], lut3d: ["file"], haldclut: [], drawtext: ["fontfile", "text", "textfile"],
25
- sendcmd: [], asendcmd: [], convolution: [], afir: [],
26
- };
27
- const filterKeys = {
28
- movie: ["filename"], amovie: ["filename"],
29
- lut1d: ["file"], lut3d: ["file"], drawtext: ["fontfile", "textfile", "font"],
30
- sendcmd: ["filename", "f"], asendcmd: ["filename", "f"],
31
- };
32
- /** Apply a selected AVOption value directly. Loaded buffers are not graph syntax. */
33
- export function filterValueResource(filter, field, value) {
34
- const output = Object.hasOwn(filterOutputMetadata, filter) ? filterOutputMetadata[filter] : undefined;
35
- const input = Object.hasOwn(filterInputMetadata, filter) ? filterInputMetadata[filter] : undefined;
36
- if (field.startsWith('/'))
37
- return { value, literal: byteText(value) === '-', filterReader: { filter, name: field.slice(1) } };
38
- // Child DNN options select backend-specific readers: TensorFlow uses AVIO,
39
- // other libraries own filename reads and can load companion model files.
40
- // Keep this obligation unresolved rather than guessing a transfer namespace.
41
- if (input?.lookups?.includes(field))
42
- return { value, literal: false, kind: 'resource-lookup' };
43
- if (output?.keys.includes(field)) {
44
- if (output.generated && value.length === 0)
45
- return;
46
- return { value, access: 'write', literal: output.literal && (!output.stdout || byteText(value) !== '-'),
47
- ...(output.generated ? { kind: 'resource-lookup' } : {}) };
48
- }
49
- if (input && Object.hasOwn(input.keys, field))
50
- return { value, literal: input.keys[field] || byteText(value) === '-' };
51
- if (Object.hasOwn(filterKeys, filter) && filterKeys[filter].includes(field))
52
- return { value, ...(filter === 'drawtext' && field === 'font' ? { kind: 'resource-lookup' } : {}), literal: field !== 'font' && (byteText(value) === '-' || field !== 'filename' || !['movie', 'amovie', 'subtitles'].includes(filter)) };
53
- }
54
- export function filterResources(value) {
55
- // Native filter graph and AVOption parsers read C strings, even when the
56
- // observed script/option-file buffer contains additional bytes after NUL.
57
- const end = value.indexOf(0);
58
- const graph = byteText(end < 0 ? value : value.subarray(0, end));
59
- const found = [];
60
- // fftools/ffmpeg_filter.c graph_opts_apply loads slash values for every
61
- // filter before graphparser.c segment_init initializes any resource reader.
62
- // Keep those evaluation phases separate, retaining order within each phase.
63
- const loaded = [];
64
- let i = 0;
65
- const labels = () => {
66
- while (graph[i] === "[") {
67
- // graphparser.c parse_link_name uses av_get_token, including its own
68
- // quoting layer. A protected ']' is label data, not the closing delimiter.
69
- const label = token(graph, i + 1, "]");
70
- if (!label.value || graph[label.end] !== "]")
71
- return false;
72
- i = label.end + 1;
73
- while (" \t\r\n".includes(graph[i] ?? '\0'))
74
- i++;
75
- }
76
- return true;
77
- };
78
- while (" \t\r\n".includes(graph[i] ?? '\0'))
79
- i++;
80
- // parse_sws_flags consumes the raw first semicolon before graph tokens.
81
- // Quotes and backslashes do not protect a delimiter in this prefix.
82
- if (graph.startsWith('sws_flags=', i)) {
83
- const separator = graph.indexOf(';', i);
84
- if (separator < 0)
85
- return { resources: [], complete: false };
86
- i = separator + 1;
87
- while (" \t\r\n".includes(graph[i] ?? '\0'))
88
- i++;
89
- }
90
- // graphparser.c rejects descriptions containing no filters. The C-string
91
- // boundary above can also make a nonempty observed buffer an empty graph.
92
- // Keep this advisory: discovery neither initializes filters nor raises the
93
- // native execution error before the reader reaches this stage.
94
- if (i === graph.length)
95
- return { resources: [], complete: false };
96
- while (i < graph.length) {
97
- if (!labels())
98
- return { resources: [...loaded, ...found], complete: false };
99
- const name = token(graph, i, "=,;[");
100
- i = name.end;
101
- const filter = name.value.split("@")[0];
102
- // graphparser.c separates the instance suffix before filter lookup. An
103
- // empty name cannot create a filter, even when it has an instance name.
104
- // Keep preceding predictions; later initialization readers are unreachable.
105
- if (!filter)
106
- return { resources: [...loaded, ...found], complete: false };
107
- const output = Object.hasOwn(filterOutputMetadata, filter) ? filterOutputMetadata[filter] : undefined;
108
- const input = Object.hasOwn(filterInputMetadata, filter) ? filterInputMetadata[filter] : undefined;
109
- const assigned = new Set();
110
- if (graph[i] === "=") {
111
- const args = token(graph, i + 1, "[],;");
112
- i = args.end;
113
- let j = 0;
114
- let position = 0;
115
- let shorthand = true;
116
- let complete = true;
117
- const assignments = [];
118
- const last = new Map();
119
- const aliases = Object.hasOwn(filterResourceAliases, filter)
120
- ? filterResourceAliases[filter] : undefined;
121
- while (j < args.value.length) {
122
- const key = token(args.value, j, "=:");
123
- let field = shorthand ? (output?.positional ?? input?.positional ?? (Object.hasOwn(filterFiles, filter) ? filterFiles[filter] : undefined))?.[position++] : undefined;
124
- let val = key;
125
- if (args.value[key.end] === "=") {
126
- // ff_filter_opt_parse disables all later positional keys here.
127
- shorthand = false;
128
- field = key.value;
129
- val = token(args.value, key.end + 1, ":");
130
- }
131
- else if (!shorthand) {
132
- complete = false;
133
- break;
134
- }
135
- const file = field && filterValueResource(filter, field, textBytes(val.value));
136
- if (field) {
137
- const name = field.startsWith('/') ? field.slice(1) : field;
138
- const canonical = aliases && Object.hasOwn(aliases, name) ? aliases[name] : name;
139
- assigned.add(canonical);
140
- last.set(canonical, assignments.length);
141
- assignments.push({ field: canonical, file: file || undefined });
142
- }
143
- j = val.end + 1;
144
- }
145
- // MULTIKEY retains every setter in order, but initialization reads only
146
- // the final filename. Every slash setter still loads its own value file.
147
- for (let index = 0; index < assignments.length; index++) {
148
- const { field, file } = assignments[index];
149
- if (!file)
150
- continue;
151
- const replaced = last.get(field) !== index;
152
- if (file.filterReader)
153
- loaded.push(replaced
154
- ? { ...file, filterReader: { ...file.filterReader, discardValue: true } } : file);
155
- else if (!replaced)
156
- found.push(file);
157
- }
158
- if (!complete)
159
- return { resources: [...loaded, ...found], complete: false };
160
- }
161
- const defaults = Object.hasOwn(filterResourceDefaults, filter)
162
- ? filterResourceDefaults[filter] : undefined;
163
- for (const [field, value] of Object.entries(defaults ?? {})) {
164
- // Explicit empty and slash-loaded values replace the default too. The
165
- // selected resource remains a runtime prediction, never a preflight read.
166
- if (assigned.has(field))
167
- continue;
168
- const file = filterValueResource(filter, field, textBytes(value));
169
- if (file)
170
- found.push(file);
171
- }
172
- // graphparser.c filter_parse consumes output labels, then chain_parse
173
- // requires a comma, semicolon or end. Input labels for another filter
174
- // cannot make a missing separator valid. Retain only the advisory prefix.
175
- if (!labels())
176
- return { resources: [...loaded, ...found], complete: false };
177
- while (" \t\r\n".includes(graph[i] ?? '\0'))
178
- i++;
179
- if (i < graph.length && graph[i] !== ',' && graph[i] !== ';')
180
- return { resources: [...loaded, ...found], complete: false };
181
- if (i < graph.length)
182
- i++;
183
- while (" \t\r\n".includes(graph[i] ?? '\0'))
184
- i++;
185
- }
186
- return { resources: [...loaded, ...found], complete: true };
187
- }
@@ -1,52 +0,0 @@
1
- import { discover } from "./discover.js";
2
- import { grammarRevision, nativeReference } from "./options.generated.js";
3
- export function createFFmpegShims(binding) {
4
- if (binding.build !== nativeReference.id)
5
- throw new Error("Native build does not match the pinned reference");
6
- if (binding.grammarRevision !== grammarRevision)
7
- throw new Error("Native grammar revision drift");
8
- if (binding.lateAccess !== "complete" || binding.effects !== "live")
9
- throw new Error("Native binding requires complete late access and live effects");
10
- if (binding.argv !== "bytes")
11
- throw new Error("Native binding must preserve argv bytes");
12
- // Keep the admitted execution method, including its receiver, rather than
13
- // consulting caller-owned configuration again on each invocation.
14
- const run = binding.run.bind(binding);
15
- return Object.fromEntries(["ffmpeg", "ffprobe"].map(tool => [tool,
16
- async (args, context) => {
17
- if (!Array.isArray(args))
18
- throw new TypeError('Native argv must be an array of byte arguments');
19
- const argumentCount = args.length;
20
- const argv = Array.from({ length: argumentCount }, (_, index) => {
21
- if (!Object.hasOwn(args, index))
22
- throw new TypeError('Native argv slot is missing');
23
- const arg = args[index];
24
- if (!(arg instanceof Uint8Array))
25
- throw new TypeError('Native argv arguments must be bytes');
26
- return new Uint8Array(arg);
27
- });
28
- if (args.length !== argumentCount)
29
- throw new TypeError('Native argv changed during capture');
30
- if (argv.some(arg => arg.includes(0)))
31
- throw new Error("NUL is not representable in native argv");
32
- let discovery;
33
- try {
34
- discovery = discover(tool, argv);
35
- }
36
- catch {
37
- // Prediction is optional. Only the admitted native binding can decide
38
- // whether the command is valid and which resources it actually opens.
39
- discovery = {
40
- tool, grammarRevision, argv: argv.map(arg => new Uint8Array(arg)),
41
- globals: [], groups: [], dependencies: [],
42
- deferred: [{ index: -1, reason: 'native-access' }],
43
- };
44
- }
45
- const result = await run({ tool, executable: nativeReference.executables[tool], argv, discovery, context });
46
- const exitCode = result?.exitCode;
47
- if (!Number.isInteger(exitCode) || exitCode < 0 || exitCode > 255)
48
- throw new TypeError('Invalid native exit status');
49
- return { exitCode };
50
- }
51
- ]));
52
- }
@@ -1,6 +0,0 @@
1
- /** Advisory slave parsing. Malformed option lists remain native-owned; they do
2
- * not authorize reads or prevent later slaves from reaching native execution. */
3
- export declare function teeResources(value: Uint8Array): {
4
- target: Uint8Array;
5
- options: ReadonlyMap<string, Uint8Array>;
6
- }[];
@@ -1,38 +0,0 @@
1
- // FFmpeg 9.0.1 libavformat/tee.c and tee_common.c; retained notices in NOTICE.
2
- import { byteText, textBytes, token } from './bytes.js';
3
- /** Advisory slave parsing. Malformed option lists remain native-owned; they do
4
- * not authorize reads or prevent later slaves from reaching native execution. */
5
- export function teeResources(value) {
6
- const expression = byteText(value);
7
- const resources = [];
8
- let cursor = 0;
9
- while (cursor < expression.length) {
10
- const slave = token(expression, cursor, '|');
11
- cursor = slave.end + 1;
12
- const options = new Map();
13
- let filename = 0;
14
- if (slave.value.startsWith('[')) {
15
- filename = 1;
16
- if (slave.value[filename] !== ']') {
17
- while (filename < slave.value.length) {
18
- const key = token(slave.value, filename, '=');
19
- if (!key.value || slave.value[key.end] !== '=')
20
- break;
21
- const argument = token(slave.value, key.end + 1, ':]');
22
- options.set(key.value, textBytes(argument.value));
23
- filename = argument.end;
24
- if (slave.value[filename] === ']')
25
- break;
26
- if (slave.value[filename] !== ':')
27
- break;
28
- filename++;
29
- }
30
- }
31
- if (slave.value[filename] !== ']')
32
- continue;
33
- filename++;
34
- }
35
- resources.push({ target: textBytes(slave.value.slice(filename)), options });
36
- }
37
- return resources;
38
- }
@@ -1,111 +0,0 @@
1
- import { inflateRaw } from "pako";
2
- // Synchronous stored/raw-DEFLATE ZIP access for office document fast paths.
3
- function crc32Bytes(data) {
4
- let c = 0xffffffff;
5
- for (let i = 0; i < data.length; i++) {
6
- c ^= data[i];
7
- for (let k = 0; k < 8; k++) {
8
- c = c & 1 ? 0xedb88320 ^ (c >>> 1) : c >>> 1;
9
- }
10
- }
11
- return (c ^ 0xffffffff) >>> 0;
12
- }
13
- export function createStoredZipArchive(entries) {
14
- const localParts = [];
15
- const centralParts = [];
16
- let offset = 0;
17
- let count = 0;
18
- for (const [name, content] of Object.entries(entries)) {
19
- const nameBytes = new TextEncoder().encode(name);
20
- const crc = crc32Bytes(content);
21
- const localHeader = new Uint8Array(30 + nameBytes.length);
22
- const lv = new DataView(localHeader.buffer);
23
- lv.setUint32(0, 0x04034b50, true);
24
- lv.setUint16(4, 20, true);
25
- lv.setUint16(6, 0, true);
26
- lv.setUint16(8, 0, true); // stored
27
- lv.setUint32(14, crc, true);
28
- lv.setUint32(18, content.length, true);
29
- lv.setUint32(22, content.length, true);
30
- lv.setUint16(26, nameBytes.length, true);
31
- localHeader.set(nameBytes, 30);
32
- const centralHeader = new Uint8Array(46 + nameBytes.length);
33
- const cv = new DataView(centralHeader.buffer);
34
- cv.setUint32(0, 0x02014b50, true);
35
- cv.setUint16(4, 20, true);
36
- cv.setUint16(6, 20, true);
37
- cv.setUint16(10, 0, true);
38
- cv.setUint32(16, crc, true);
39
- cv.setUint32(20, content.length, true);
40
- cv.setUint32(24, content.length, true);
41
- cv.setUint16(28, nameBytes.length, true);
42
- cv.setUint32(42, offset, true);
43
- centralHeader.set(nameBytes, 46);
44
- localParts.push(localHeader, content);
45
- centralParts.push(centralHeader);
46
- offset += localHeader.length + content.length;
47
- count++;
48
- }
49
- const centralSize = centralParts.reduce((s, p) => s + p.length, 0);
50
- const eocd = new Uint8Array(22);
51
- const ev = new DataView(eocd.buffer);
52
- ev.setUint32(0, 0x06054b50, true);
53
- ev.setUint16(8, count, true);
54
- ev.setUint16(10, count, true);
55
- ev.setUint32(12, centralSize, true);
56
- ev.setUint32(16, offset, true);
57
- const total = offset + centralSize + 22;
58
- const out = new Uint8Array(total);
59
- let pos = 0;
60
- for (const p of [...localParts, ...centralParts, eocd]) {
61
- out.set(p, pos);
62
- pos += p.length;
63
- }
64
- return out;
65
- }
66
- export function readZipArchiveEntries(zipBytes) {
67
- const map = new Map();
68
- const view = new DataView(zipBytes.buffer, zipBytes.byteOffset, zipBytes.byteLength);
69
- let eocdPos = -1;
70
- for (let i = zipBytes.length - 22; i >= Math.max(0, zipBytes.length - 65557); i--) {
71
- if (view.getUint32(i, true) === 0x06054b50) {
72
- eocdPos = i;
73
- break;
74
- }
75
- }
76
- if (eocdPos < 0)
77
- throw new Error("Invalid ZIP: missing end of central directory");
78
- const count = view.getUint16(eocdPos + 10, true);
79
- let cdPos = view.getUint32(eocdPos + 16, true);
80
- for (let i = 0; i < count; i++) {
81
- if (cdPos + 46 > zipBytes.length || view.getUint32(cdPos, true) !== 0x02014b50) {
82
- throw new Error("Invalid ZIP: truncated central directory");
83
- }
84
- const method = view.getUint16(cdPos + 10, true);
85
- const compSize = view.getUint32(cdPos + 20, true);
86
- const nameLen = view.getUint16(cdPos + 28, true);
87
- const extraLen = view.getUint16(cdPos + 30, true);
88
- const commentLen = view.getUint16(cdPos + 32, true);
89
- const localOffset = view.getUint32(cdPos + 42, true);
90
- if (cdPos + 46 + nameLen + extraLen + commentLen > zipBytes.length ||
91
- localOffset + 30 > zipBytes.length || view.getUint32(localOffset, true) !== 0x04034b50) {
92
- throw new Error("Invalid ZIP: truncated or invalid entry header");
93
- }
94
- const name = new TextDecoder().decode(zipBytes.subarray(cdPos + 46, cdPos + 46 + nameLen));
95
- const localNameLen = view.getUint16(localOffset + 26, true);
96
- const localExtraLen = view.getUint16(localOffset + 28, true);
97
- const dataStart = localOffset + 30 + localNameLen + localExtraLen;
98
- if (dataStart + compSize > zipBytes.length) {
99
- throw new Error("Invalid ZIP: truncated entry data");
100
- }
101
- const rawData = zipBytes.subarray(dataStart, dataStart + compSize);
102
- if (method === 0) {
103
- map.set(name, new Uint8Array(rawData));
104
- }
105
- else if (method === 8) {
106
- map.set(name, inflateRaw(rawData));
107
- }
108
- cdPos += 46 + nameLen + extraLen + commentLen;
109
- }
110
- return map;
111
- }
@@ -1,178 +0,0 @@
1
- /** Portable codec for the normative REX1 schema. No Node globals or media text. */
2
- import { parseWireJson } from './wire-json.js';
3
- export const binaryContentType = 'application/vnd.poe.remote-execution.v1+octet-stream';
4
- function bounds(options) {
5
- for (const n of [options.maxFrameBytes, options.maxControlBytes])
6
- if (!Number.isSafeInteger(n) || n < 1 || n > 1048576)
7
- throw new TypeError('Invalid frame bound');
8
- if (options.maxChannels !== undefined && (!Number.isSafeInteger(options.maxChannels) || options.maxChannels < options.channels.length))
9
- throw new TypeError('Invalid channel capacity');
10
- if (options.endedChannels?.some(id => !options.channels.includes(id)))
11
- throw new TypeError('Invalid ended channel');
12
- if (options.maxTotalBytes !== undefined && (!Number.isSafeInteger(options.maxTotalBytes) || options.maxTotalBytes < 0))
13
- throw new TypeError('Invalid lane bound');
14
- if (options.maxControlBytes > options.maxFrameBytes || options.channels.some(n => !Number.isInteger(n) || n < 1 || n > 4294967295))
15
- throw new TypeError('Invalid channel bound');
16
- }
17
- function uint64(n) { if (typeof n !== 'bigint' || n < 0n || n > 18446744073709551615n)
18
- throw new TypeError('Invalid uint64'); }
19
- function header(bytes, options) {
20
- const view = new DataView(bytes.buffer, bytes.byteOffset, 40);
21
- if (view.getUint32(0) !== 0x52455831 || view.getUint8(4) !== 1 || view.getUint16(6) !== 0)
22
- throw new TypeError('Invalid frame magic/version/reserved bits');
23
- const kind = { 1: 'data', 2: 'end', 3: 'control' }[view.getUint8(5)];
24
- const channelId = view.getUint32(8);
25
- const length = view.getUint32(12);
26
- const sequence = view.getBigUint64(16);
27
- const offset = view.getBigUint64(24);
28
- const correlationId = view.getBigUint64(32);
29
- if (!kind || sequence === 0n)
30
- throw new TypeError('Invalid frame kind/sequence');
31
- if (length > options.maxFrameBytes || (kind === 'control' && length > options.maxControlBytes))
32
- throw new TypeError('Invalid frame length');
33
- if (kind === 'control' ? channelId !== 0 || offset !== 0n : !options.channels.includes(channelId))
34
- throw new TypeError('Invalid frame channel/offset');
35
- if (kind === 'end' && length !== 0)
36
- throw new TypeError('END must have zero length');
37
- if (offset + BigInt(length) > 18446744073709551615n)
38
- throw new TypeError('Channel offset overflow');
39
- return { kind, channelId, length, sequence, offset, correlationId };
40
- }
41
- function control(frame, options) {
42
- if (frame.kind !== 'control')
43
- return;
44
- if (!options.validateControl)
45
- throw new TypeError('CONTROL schema is not negotiated');
46
- const record = parseWireJson(new TextDecoder('utf-8', { fatal: true }).decode(frame.payload));
47
- options.validateControl(record);
48
- return record;
49
- }
50
- export function encodeFrame(frame, options) {
51
- frame = { kind: frame.kind, channelId: frame.channelId, sequence: frame.sequence, offset: frame.offset, correlationId: frame.correlationId, payload: frame.payload };
52
- bounds(options);
53
- for (const n of [frame.sequence, frame.offset, frame.correlationId])
54
- uint64(n);
55
- if (!Number.isInteger(frame.channelId) || frame.channelId < 0 || frame.channelId > 4294967295 || !(frame.payload instanceof Uint8Array))
56
- throw new TypeError('Invalid frame');
57
- // Validate size before making a retained copy.
58
- const length = Object.getOwnPropertyDescriptor(Object.getPrototypeOf(Uint8Array.prototype), 'byteLength').get.call(frame.payload);
59
- if (length > options.maxFrameBytes)
60
- throw new TypeError('Invalid frame length');
61
- // A fixed header admits kind, channel, control size and counters before
62
- // allocating the payload-bearing frame.
63
- const raw = new Uint8Array(40);
64
- const view = new DataView(raw.buffer);
65
- view.setUint32(0, 0x52455831);
66
- view.setUint8(4, 1);
67
- view.setUint8(5, { data: 1, end: 2, control: 3 }[frame.kind]);
68
- view.setUint32(8, frame.channelId);
69
- view.setUint32(12, length);
70
- view.setBigUint64(16, frame.sequence);
71
- view.setBigUint64(24, frame.offset);
72
- view.setBigUint64(32, frame.correlationId);
73
- header(raw, options);
74
- control(frame, options);
75
- const wire = new Uint8Array(40 + length);
76
- wire.set(raw);
77
- wire.set(frame.payload, 40);
78
- return wire;
79
- }
80
- /** One header and one admitted payload in memory. The producer is advanced only
81
- * after yielding the owned frame. Interrupted frames never yield or acknowledge.
82
- * Offset/sequence state advances only when the consumer resumes after delivery. */
83
- export async function* decodeFrames(source, options, signal) {
84
- signal?.throwIfAborted();
85
- // Retain every negotiated capability before yielding to transport or delivery.
86
- // Caller mutation cannot widen budgets, replace validation or waive END.
87
- options = { ...options };
88
- bounds(options);
89
- options = { ...options, channels: [...options.channels],
90
- endedChannels: options.endedChannels ? [...options.endedChannels] : undefined,
91
- offsets: options.offsets ? new Map(options.offsets) : undefined };
92
- const channels = [...options.channels];
93
- const admittedOptions = { ...options, channels };
94
- let chunk = new Uint8Array();
95
- let position = 0;
96
- let chunkLength = 0;
97
- let sequence = options.firstSequence ?? 1n;
98
- const typedArray = Object.getPrototypeOf(Uint8Array.prototype);
99
- const byteLength = Object.getOwnPropertyDescriptor(typedArray, 'byteLength').get;
100
- const buffer = Object.getOwnPropertyDescriptor(typedArray, 'buffer').get;
101
- const byteOffset = Object.getOwnPropertyDescriptor(typedArray, 'byteOffset').get;
102
- uint64(sequence);
103
- let totalBytes = 0;
104
- const offsets = new Map(options.channels.map(id => [id, options.offsets?.get(id) ?? 0n]));
105
- const ended = new Set(options.endedChannels);
106
- const reader = source.getReader();
107
- const abort = () => { void reader.cancel(signal?.reason).catch(() => { }); };
108
- signal?.addEventListener('abort', abort, { once: true });
109
- async function fill(target) {
110
- let filled = 0;
111
- while (filled < target.length) {
112
- signal?.throwIfAborted();
113
- if (position === chunkLength) {
114
- const next = await reader.read();
115
- signal?.throwIfAborted();
116
- if (next.done) {
117
- if (filled)
118
- throw new TypeError('Interrupted binary frame');
119
- return false;
120
- }
121
- if (!(next.value instanceof Uint8Array))
122
- throw new TypeError('Binary transport bytes required');
123
- chunk = next.value;
124
- chunkLength = byteLength.call(chunk);
125
- position = 0;
126
- if (!chunkLength)
127
- continue;
128
- }
129
- const count = Math.min(chunkLength - position, target.length - filled);
130
- target.set(new Uint8Array(buffer.call(chunk), byteOffset.call(chunk) + position, count), filled);
131
- filled += count;
132
- position += count;
133
- }
134
- return true;
135
- }
136
- try {
137
- for (;;) {
138
- const raw = new Uint8Array(40);
139
- if (!await fill(raw))
140
- break;
141
- const parsed = header(raw, admittedOptions);
142
- totalBytes += 40 + parsed.length;
143
- if (totalBytes > (options.maxTotalBytes ?? Infinity))
144
- throw new TypeError('Lane byte length exceeds admission');
145
- if (parsed.sequence !== sequence)
146
- throw new TypeError('Noncontiguous frame sequence');
147
- if (parsed.kind !== 'control' && (ended.has(parsed.channelId) || parsed.offset !== offsets.get(parsed.channelId)))
148
- throw new TypeError('Invalid channel END/offset');
149
- const payload = new Uint8Array(parsed.length);
150
- if (!await fill(payload))
151
- throw new TypeError('Interrupted binary frame');
152
- const { length: ignoredLength, ...fields } = parsed;
153
- const frame = { ...fields, payload };
154
- const record = control(frame, options);
155
- if (record?.type === 'ChannelOpen' && record.direction === options.channelOpenDirection) {
156
- const id = record.channelId;
157
- if (!Number.isInteger(id) || id < 4 || id > 4294967295 || channels.includes(id) || channels.length >= (options.maxChannels ?? options.channels.length))
158
- throw new TypeError('Invalid dynamic channel admission');
159
- channels.push(id);
160
- offsets.set(id, 0n);
161
- }
162
- signal?.throwIfAborted();
163
- yield frame;
164
- sequence++;
165
- if (parsed.kind !== 'control')
166
- offsets.set(parsed.channelId, parsed.offset + BigInt(parsed.length));
167
- if (parsed.kind === 'end')
168
- ended.add(parsed.channelId);
169
- }
170
- if (options.requireEnd && channels.some(id => !ended.has(id)))
171
- throw new TypeError('Transport EOF without END');
172
- }
173
- finally {
174
- signal?.removeEventListener('abort', abort);
175
- await reader.cancel().catch(() => { });
176
- reader.releaseLock();
177
- }
178
- }
@@ -1,26 +0,0 @@
1
- import { validateWire } from './wire-validation.js';
2
- /** Shape validation alone cannot authorize a receipt for another operation.
3
- * Transfer/END settlement is checked by the channel owner independently. */
4
- export function validateCallbackResult(operation, result) {
5
- validateWire('FileOperation', operation);
6
- validateWire('CallbackResult', result);
7
- if (result.state === 'applied' && result.error !== undefined || result.state !== 'applied' && (!result.error || !result.error.code))
8
- throw new TypeError('Callback state contradicts its failure receipt');
9
- if (result.state === 'unknown' && (result.error?.phase !== 'unknown' || !result.error.recovery))
10
- throw new TypeError('Unknown callback result requires recovery information');
11
- const fields = {
12
- open: ['handleId', 'identityId'], stat: ['stat', 'identityId'], lstat: ['stat', 'identityId'],
13
- read: ['acknowledgedBytes'], write: ['acknowledgedBytes'], seek: ['position'],
14
- readlink: ['target'], readdir: ['entries'],
15
- };
16
- const allowed = fields[operation.op] ?? [];
17
- const common = ['type', 'callbackId', 'operationId', 'state', 'error'];
18
- if (Object.keys(result).some(key => !common.includes(key) && !allowed.includes(key)))
19
- throw new TypeError('Callback result contradicts its operation');
20
- if (result.state === 'applied' && allowed.length && !Object.hasOwn(result, allowed[0]))
21
- throw new TypeError('Callback result is missing its operation receipt');
22
- if ((operation.op === 'read' || operation.op === 'write') && result.acknowledgedBytes !== undefined && BigInt(result.acknowledgedBytes) > BigInt(operation.length))
23
- throw new TypeError('Callback progress exceeds its operation');
24
- if (operation.op === 'readdir' && result.entries !== undefined && result.entries.length > operation.maxEntries)
25
- throw new TypeError('Callback listing exceeds its operation');
26
- }
@@ -1,5 +0,0 @@
1
- import type { FileSystemCapabilities } from "@poe-platform/safe-fs/core";
2
- /** Structural contract fields may be non-enumerable prototype accessors. Capture
3
- * each guarantee once at access time, preserving absent versus explicit false.
4
- * Own enumerable extensions retain the existing boolean capability profile. */
5
- export declare function admitCanonicalCapabilities(input: unknown, syscall: 'capabilities' | 'rmdir', path: string, maxBytes?: number): FileSystemCapabilities;
@@ -1,45 +0,0 @@
1
- import { FsError } from "@poe-platform/safe-fs/contracts/errors";
2
- /** Structural contract fields may be non-enumerable prototype accessors. Capture
3
- * each guarantee once at access time, preserving absent versus explicit false.
4
- * Own enumerable extensions retain the existing boolean capability profile. */
5
- export function admitCanonicalCapabilities(input, syscall, path, maxBytes) {
6
- if (maxBytes !== undefined && (!Number.isSafeInteger(maxBytes) || maxBytes < 1))
7
- throw new TypeError('Invalid capability metadata bound');
8
- if (!input || typeof input !== 'object' || Array.isArray(input))
9
- throw new FsError('EIO', { syscall, path });
10
- const fields = new Set([
11
- 'readOnly', 'read', 'stat', 'readdir', 'realpath', 'access', 'write', 'append',
12
- 'exclusiveCreate', 'explicitDirectories', 'implicitDirectories', 'mkdir',
13
- 'recursiveMkdir', 'remove', 'removeDirectory', 'recursiveRemove', 'rename',
14
- 'copy', 'exclusiveCopy', 'readlink', 'truncate', 'streamingAppend',
15
- 'randomAccessWrite', 'symlinks', 'hardlinks', 'permissions', 'timestamps',
16
- 'atomicRename', 'atomicFileStaging', 'atomicFileMutation',
17
- 'atomicDirectoryMetadata', 'atomicRenameNoReplace', 'snapshotRmdir',
18
- 'streamingRead', 'retainedRead', 'retainedResize', 'atomicResize',
19
- 'streamingWrite', 'descriptorWriteStream', ...Object.keys(input),
20
- ]);
21
- const observed = {};
22
- let remaining = maxBytes === undefined ? Infinity : maxBytes - 2;
23
- let members = 0;
24
- if (remaining < 0)
25
- throw new FsError('EFBIG', { syscall, path });
26
- for (const field of fields) {
27
- if (!(field in input))
28
- continue;
29
- const value = Reflect.get(input, field);
30
- if (value !== undefined && typeof value !== 'boolean')
31
- throw new FsError('EIO', { syscall, path });
32
- if (value !== undefined) {
33
- // Admit the UTF-16 lower bound before encoding potentially large extension
34
- // names. Count JSON escaping, UTF-8 octets, punctuation and boolean values;
35
- // undefined guarantees have no member in the wire observation.
36
- if (field.length > remaining)
37
- throw new FsError('EFBIG', { syscall, path });
38
- remaining -= new TextEncoder().encode(JSON.stringify(field)).length + 1 + (value ? 4 : 5) + (members++ ? 1 : 0);
39
- if (remaining < 0)
40
- throw new FsError('EFBIG', { syscall, path });
41
- }
42
- Object.defineProperty(observed, field, { value, enumerable: true, writable: true, configurable: true });
43
- }
44
- return observed;
45
- }
@@ -1,4 +0,0 @@
1
- import type { FileStat } from "@poe-platform/safe-fs/core";
2
- /** Admit one live legacy stat observation. Numeric metadata cannot gain exact
3
- * bigint precision through coercion, and backend identity never crosses the wire. */
4
- export declare function admitCanonicalMetadata(input: FileStat, syscall: 'stat' | 'lstat'): FileStat;