@qwen-code/qwen-code 0.24.5-preview.0 → 0.24.5

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 (353) hide show
  1. package/bundled/browser-use/SKILL.md +11 -10
  2. package/bundled/browser-use/runtime/index.js +70 -31
  3. package/bundled/browser-use/runtime/native-host.js +1 -0
  4. package/bundled/browser-use/runtime/scripts/native-host-setup.js +1 -0
  5. package/bundled/computer-use/SKILL.md +182 -224
  6. package/bundled/qc-helper/docs/configuration/model-providers.md +13 -2
  7. package/bundled/qc-helper/docs/conversations-recovery.md +10 -0
  8. package/bundled/qc-helper/docs/features/browser-use.md +22 -12
  9. package/bundled/qc-helper/docs/features/channels/dingtalk.md +2 -2
  10. package/bundled/qc-helper/docs/features/channels/dws.md +7 -7
  11. package/bundled/qc-helper/docs/features/channels/feishu.md +1 -1
  12. package/bundled/qc-helper/docs/features/channels/github.md +13 -9
  13. package/bundled/qc-helper/docs/features/channels/gitlab.md +12 -5
  14. package/bundled/qc-helper/docs/features/channels/overview.md +121 -46
  15. package/bundled/qc-helper/docs/features/channels/plugins.md +12 -12
  16. package/bundled/qc-helper/docs/features/channels/qqbot.md +5 -5
  17. package/bundled/qc-helper/docs/features/channels/telegram.md +5 -5
  18. package/bundled/qc-helper/docs/features/channels/wecom.md +5 -4
  19. package/bundled/qc-helper/docs/features/channels/weixin.md +3 -3
  20. package/bundled/qc-helper/docs/features/code-review.md +4 -0
  21. package/bundled/qc-helper/docs/features/computer-use.md +1 -1
  22. package/bundled/qc-helper/docs/quickstart.md +14 -14
  23. package/bundled/qc-helper/docs/qwen-serve.md +10 -4
  24. package/bundled/review/SKILL.md +44 -9
  25. package/bundled/review/references/persistence.md +3 -4
  26. package/chunks/{MaxSizedBox-3RXPTLCS.js → MaxSizedBox-4MLWQHF3.js} +33 -31
  27. package/chunks/{StandaloneSessionPicker-74775YBZ.js → StandaloneSessionPicker-PDNU6KJJ.js} +50 -48
  28. package/chunks/{acp-subagent-executor-OQXOMTFK.js → acp-subagent-executor-JB2J6N73.js} +35 -33
  29. package/chunks/{acpAgent-MD56LD7L.js → acpAgent-CAPZFZCW.js} +123 -97
  30. package/chunks/{agent-75EZNG2Q.js → agent-MTWGIPWC.js} +18 -16
  31. package/chunks/{agent-headless-TQ6MWUDT.js → agent-headless-Z27XJSXK.js} +18 -16
  32. package/chunks/{anthropicContentGenerator-DCDXTX3R.js → anthropicContentGenerator-VAFZRJWG.js} +3 -3
  33. package/chunks/{askUserQuestion-2NU6CXK2.js → askUserQuestion-V4OFZD5D.js} +1 -1
  34. package/chunks/{bridge-KGJYQUWD.js → bridge-BUCSJHCE.js} +35 -33
  35. package/chunks/{channel-management-service-YN4A3BJ6.js → channel-management-service-Q2B7WUPL.js} +27 -10
  36. package/chunks/{channel-settings-store-773UOD6B.js → channel-settings-store-U25CVEL6.js} +42 -40
  37. package/chunks/{channel-worker-group-AKPVHRUO.js → channel-worker-group-QNX4OIMZ.js} +5 -5
  38. package/chunks/{channel-worker-manager-TDAQSKWX.js → channel-worker-manager-IJCPV4WY.js} +24 -5
  39. package/chunks/{channel-worker-supervisor-PUMSN4J2.js → channel-worker-supervisor-ENJ2AE2N.js} +4 -4
  40. package/chunks/{chunk-OU4ZCLGJ.js → chunk-242INZ6Y.js} +1 -1
  41. package/chunks/{chunk-JOFZBTVL.js → chunk-245NB3M4.js} +1 -1
  42. package/chunks/{chunk-LISITUEH.js → chunk-26KGIWIW.js} +1 -1
  43. package/chunks/{chunk-WPHZEGFC.js → chunk-2RQEWY2P.js} +1 -1
  44. package/chunks/{chunk-DCTJ3GVF.js → chunk-2SCE6YR2.js} +3 -3
  45. package/chunks/{chunk-STKUN7BR.js → chunk-2XNGG7R3.js} +1 -1
  46. package/chunks/{chunk-OQE7AA2W.js → chunk-36ZMEEBW.js} +16 -12
  47. package/chunks/{chunk-Y53WH7VD.js → chunk-44K6Q5AW.js} +3 -3
  48. package/chunks/{chunk-N4VKU36J.js → chunk-465XOJLQ.js} +1 -1
  49. package/chunks/{chunk-HD4IXPPC.js → chunk-4A4XNQEZ.js} +3 -3
  50. package/chunks/{chunk-RXB6Y33E.js → chunk-4VULJ3LV.js} +1 -1
  51. package/chunks/{chunk-EBRC4GX2.js → chunk-4XXUGJJS.js} +1 -1
  52. package/chunks/{chunk-MVC4XLNM.js → chunk-53IRNMPU.js} +118 -5
  53. package/chunks/{chunk-VGLXXHTF.js → chunk-5BLOZPTW.js} +1 -1
  54. package/chunks/{chunk-3SK2A75W.js → chunk-5OJQLD3P.js} +3 -3
  55. package/chunks/{chunk-WVNCMGAO.js → chunk-6FURC4LI.js} +1 -1
  56. package/chunks/{chunk-WVTM33Q3.js → chunk-6KXQIDK2.js} +4 -4
  57. package/chunks/{chunk-ZKDUQHU4.js → chunk-7MNHZUTA.js} +35 -18
  58. package/chunks/{chunk-JEIPBSGX.js → chunk-7P5WZQXF.js} +7 -7
  59. package/chunks/{chunk-GGUOO2XC.js → chunk-7RCAMBLN.js} +1 -1
  60. package/chunks/{chunk-FBLGI2SO.js → chunk-AAOMFXVZ.js} +7 -7
  61. package/chunks/{chunk-JM76TMGV.js → chunk-ACLD6C3R.js} +8798 -7901
  62. package/chunks/{chunk-4FCWKBOC.js → chunk-ALTMZEBU.js} +6 -6
  63. package/chunks/{chunk-ZHQSWNO6.js → chunk-AN62TPO6.js} +1 -1
  64. package/chunks/{chunk-U5DPG7JW.js → chunk-AYTI24XN.js} +1 -1
  65. package/chunks/{chunk-B53FO7JN.js → chunk-AZN2GSLM.js} +2 -2
  66. package/chunks/{chunk-6KQQPPFF.js → chunk-B3J4BSPL.js} +1 -1
  67. package/chunks/{chunk-SLSH5TFD.js → chunk-BMCDSO77.js} +4 -4
  68. package/chunks/{chunk-DBYUN4U3.js → chunk-BUDUHXX3.js} +1 -1
  69. package/chunks/{chunk-TS4Y2MHO.js → chunk-CGREZDGO.js} +1 -1
  70. package/chunks/chunk-CLNDQINM.js +523 -0
  71. package/chunks/{chunk-LNUQA3OE.js → chunk-CVRZNFXO.js} +1 -1
  72. package/chunks/{chunk-3DBI3LLL.js → chunk-CWLTXYKP.js} +4 -4
  73. package/chunks/{chunk-B3XMX4SN.js → chunk-DACCX4JI.js} +4 -4
  74. package/chunks/{chunk-YWZOEHBT.js → chunk-DE2WI7RU.js} +192 -62
  75. package/chunks/{chunk-3TQVPDCN.js → chunk-DU53RB7A.js} +2 -2
  76. package/chunks/{chunk-2KZURPTB.js → chunk-DZCTQ2MF.js} +6 -1
  77. package/chunks/{chunk-35SABQFH.js → chunk-DZUNDX4M.js} +1 -1
  78. package/chunks/{chunk-4INF7OYV.js → chunk-ELY2U74S.js} +2 -2
  79. package/chunks/chunk-EMGHODF7.js +56 -0
  80. package/chunks/{chunk-5FZKG4JB.js → chunk-EMOTEATH.js} +1 -1
  81. package/chunks/{chunk-LW7WW3Z5.js → chunk-ERGQUKZ2.js} +1 -1
  82. package/chunks/{chunk-TNWJJEDT.js → chunk-ES6EQNGR.js} +6 -6
  83. package/chunks/{chunk-E3TLOFX7.js → chunk-EUHSEMO4.js} +62 -7
  84. package/chunks/{chunk-N25B6FZN.js → chunk-EYCDA5MN.js} +2 -0
  85. package/chunks/{chunk-GPTEZLRR.js → chunk-F4ERRMCO.js} +25 -23
  86. package/chunks/{chunk-SXFZ5P7F.js → chunk-FE7D3WKV.js} +1 -1
  87. package/chunks/{chunk-XEXNBTYX.js → chunk-FH45BQGZ.js} +3 -3
  88. package/chunks/{chunk-CAORZAZD.js → chunk-FLBUHGL4.js} +10 -10
  89. package/chunks/{chunk-X2R47SFR.js → chunk-FLVPNMCS.js} +1 -1
  90. package/chunks/{chunk-5SZSV2CK.js → chunk-FVIJFKEQ.js} +3 -3
  91. package/chunks/{chunk-KFLDZ3HB.js → chunk-G6XRNTXF.js} +1 -1
  92. package/chunks/{chunk-2JHQ2J3Y.js → chunk-G72UHXC3.js} +5 -5
  93. package/chunks/{chunk-4A255ZI6.js → chunk-GAHZJLQG.js} +2 -2
  94. package/chunks/{chunk-7IVZOKKW.js → chunk-GKJGKTWJ.js} +3 -3
  95. package/chunks/{chunk-KY4HZXLV.js → chunk-GLPNIOEV.js} +33 -2
  96. package/chunks/{chunk-6PRSQUPJ.js → chunk-GQZZGEMS.js} +1 -1
  97. package/chunks/{chunk-G2AE7GYZ.js → chunk-GRUASRWC.js} +1 -1
  98. package/chunks/{chunk-HH7R6RLK.js → chunk-GTQ35GRO.js} +1 -1
  99. package/chunks/{chunk-LWRJLRZS.js → chunk-GYLDOFLU.js} +3 -3
  100. package/chunks/{chunk-MZRJ2JJS.js → chunk-HDSI3RDN.js} +136 -9
  101. package/chunks/{chunk-RO5K7QUL.js → chunk-HHMJ5ONX.js} +45 -31
  102. package/chunks/{chunk-E4HNTYHK.js → chunk-HVVQYSBA.js} +32 -9
  103. package/chunks/{chunk-H2GVLBFU.js → chunk-I36GIR6K.js} +64 -2
  104. package/chunks/{chunk-VTFLRL55.js → chunk-IBRV4T3I.js} +2 -2
  105. package/chunks/{chunk-4VSTV4C2.js → chunk-IH22ZGZI.js} +53 -2
  106. package/chunks/{chunk-AOW7WIWE.js → chunk-IQH7Q5OP.js} +4 -4
  107. package/chunks/{chunk-OB444SG3.js → chunk-IYKGSUTA.js} +1 -1
  108. package/chunks/{chunk-HS5OZTQF.js → chunk-J2FLXQJM.js} +1 -1
  109. package/chunks/{chunk-BBCH7PBA.js → chunk-KACKEW2M.js} +2 -2
  110. package/chunks/{chunk-JE3J5HFM.js → chunk-KAOHUUM7.js} +62 -251
  111. package/chunks/{chunk-JCMDVGPR.js → chunk-KGLPVCX7.js} +2 -2
  112. package/chunks/{chunk-QKXZOHHQ.js → chunk-LDURD6EP.js} +15 -62
  113. package/chunks/{chunk-O4IH5UEC.js → chunk-LLIYDIGU.js} +20 -20
  114. package/chunks/{chunk-3XHMOJCP.js → chunk-MBC3PULP.js} +1 -1
  115. package/chunks/{chunk-SRZA7OU4.js → chunk-MMCGLNPP.js} +6 -6
  116. package/chunks/{chunk-3NG2ZQAJ.js → chunk-NZC74TT2.js} +1 -1
  117. package/chunks/{chunk-47C3HPMW.js → chunk-O5YL6KSX.js} +47 -18
  118. package/chunks/{chunk-EIHZ4FFM.js → chunk-O6PPYFQN.js} +3 -3
  119. package/chunks/{chunk-XCU752HT.js → chunk-OICDXWXP.js} +13 -19
  120. package/chunks/{chunk-VJCKLKZX.js → chunk-OOU7XOZF.js} +3 -3
  121. package/chunks/{chunk-OM5NSL25.js → chunk-P4P7CH7H.js} +38 -38
  122. package/chunks/{chunk-CIS4SY3R.js → chunk-PPBZHGEQ.js} +3 -3
  123. package/chunks/{chunk-PB7JBAHF.js → chunk-PVBIEIVZ.js} +0 -1
  124. package/chunks/{chunk-GG3MO6NO.js → chunk-PWGMHXIV.js} +2 -2
  125. package/chunks/{chunk-6N2PJAZG.js → chunk-PX2ZOOGQ.js} +1 -1
  126. package/chunks/{chunk-NNN2PKPV.js → chunk-PYYPSK6Q.js} +36 -495
  127. package/chunks/{chunk-TKOQGFRE.js → chunk-PZOWKCPJ.js} +1 -1
  128. package/chunks/{chunk-PJ546DX4.js → chunk-Q36IJ74U.js} +17 -11
  129. package/chunks/chunk-Q4FJVWI4.js +78 -0
  130. package/chunks/{chunk-PA4HU5IQ.js → chunk-QATPE3SN.js} +13 -7
  131. package/chunks/{chunk-MBUUQJPV.js → chunk-QGKAYDES.js} +5 -5
  132. package/chunks/{chunk-TFBQ5CKI.js → chunk-QNEBHC2E.js} +1 -1
  133. package/chunks/{chunk-6NA357SF.js → chunk-QTNSMJKU.js} +1 -1
  134. package/chunks/{chunk-TDLEDOJN.js → chunk-QU7VULWX.js} +5 -4
  135. package/chunks/{chunk-LOTGIM6V.js → chunk-R3IFSY55.js} +20 -20
  136. package/chunks/{chunk-ZX6EZ7EH.js → chunk-RBE3WRSN.js} +3 -3
  137. package/chunks/{chunk-YSZ2XZTG.js → chunk-RBKZ6SK4.js} +5 -5
  138. package/chunks/{chunk-FLRFAPDA.js → chunk-RCL6OXZC.js} +5 -5
  139. package/chunks/{chunk-H4W6TJFJ.js → chunk-RONRTFAQ.js} +1 -1
  140. package/chunks/{chunk-ZEGLZ3MN.js → chunk-SCYKHWRM.js} +5 -5
  141. package/chunks/{chunk-STUJ7IMZ.js → chunk-SI7XKACY.js} +56 -56
  142. package/chunks/{chunk-RL2HSTEB.js → chunk-SYZPPX3O.js} +1492 -1140
  143. package/chunks/{chunk-VUYJRNG5.js → chunk-T7TJPVTY.js} +3 -3
  144. package/chunks/{chunk-4V5YKOBI.js → chunk-TF7UC7F6.js} +3 -3
  145. package/chunks/{chunk-NXZD3VNX.js → chunk-TL7DSR47.js} +1 -1
  146. package/chunks/{chunk-BVFBDXI2.js → chunk-TPFV5YZK.js} +1 -1
  147. package/chunks/{chunk-YIHOHHJL.js → chunk-TZHXHWEW.js} +1 -1
  148. package/chunks/{chunk-3X5BDEXS.js → chunk-U6RMVE5X.js} +8 -8
  149. package/chunks/{chunk-HRVFPNGT.js → chunk-VFNKO4FK.js} +4 -4
  150. package/chunks/{chunk-VPALWDQL.js → chunk-VUIH3BQL.js} +31 -12
  151. package/chunks/{chunk-WVNML4HH.js → chunk-VW33WARJ.js} +1 -1
  152. package/chunks/{chunk-MICQVBPI.js → chunk-WCLHOKAZ.js} +1 -1
  153. package/chunks/{chunk-KMQ2ZH3Q.js → chunk-WVWCRZ6M.js} +2 -2
  154. package/chunks/{chunk-5NFAKADR.js → chunk-WZCVB2ER.js} +1 -36
  155. package/chunks/{chunk-JNQEW7B2.js → chunk-X3A72KX5.js} +6 -6
  156. package/chunks/{chunk-3JSIWFNA.js → chunk-XHHUGXYW.js} +527 -135
  157. package/chunks/{chunk-VIA4STCR.js → chunk-YCCBLTSL.js} +3 -3
  158. package/chunks/{chunk-Q5IEY2TN.js → chunk-Z3I5B4DH.js} +1 -1
  159. package/chunks/{chunk-O346IB64.js → chunk-ZAJNI63I.js} +1 -1
  160. package/chunks/{chunk-QR4U27UW.js → chunk-ZJFCDRVP.js} +4 -4
  161. package/chunks/{codex-subagent-executor-437LQYGM.js → codex-subagent-executor-IKWULWIZ.js} +35 -33
  162. package/chunks/{config-utils-CVLI36KM.js → config-utils-3IOTAFBG.js} +38 -34
  163. package/chunks/{contextCommand-2KSW7H5F.js → contextCommand-ZKG2JFCR.js} +33 -31
  164. package/chunks/{core-runtime-4IB27E7J.js → core-runtime-5CAK5DSM.js} +32 -30
  165. package/chunks/{create-sub-session-A73TQDAN.js → create-sub-session-DG4CVOQC.js} +33 -31
  166. package/chunks/{daemon-Y6AOK7LF.js → daemon-D4OAVQKB.js} +1 -1
  167. package/chunks/{daemon-git-worktree-guard-BTKVV3DZ.js → daemon-git-worktree-guard-S3SFT3H7.js} +32 -30
  168. package/chunks/{daemon-status-provider-ETDIOWMS.js → daemon-status-provider-GG64ZJR3.js} +40 -38
  169. package/chunks/{daemon-trust-policy-U5SPHJLP.js → daemon-trust-policy-XNWYLQ32.js} +38 -36
  170. package/chunks/{daemon-trust-policy-monitor-QKRCO5WI.js → daemon-trust-policy-monitor-DR5CRWMM.js} +38 -36
  171. package/chunks/{deferred-core-runtime-FRELZPIE.js → deferred-core-runtime-V4Q674KN.js} +32 -30
  172. package/chunks/{dist-54LGNLWW.js → dist-3M75XY4G.js} +1 -1
  173. package/chunks/{dist-YZBMQPNS.js → dist-6U5NQYA7.js} +5 -5
  174. package/chunks/{dist-FVMLRUVM.js → dist-AS2RPYOB.js} +1 -1
  175. package/chunks/{dist-HANHY2MK.js → dist-GFT4GU72.js} +2 -2
  176. package/chunks/{dist-Y5GP7SWL.js → dist-J7JK3GPY.js} +10 -9
  177. package/chunks/{dist-O723VE2K.js → dist-JTPRKF5H.js} +30 -27
  178. package/chunks/{dist-MGZKUISU.js → dist-MOO5VOC5.js} +7 -20
  179. package/chunks/{dist-IZ66D5A3.js → dist-NJ2L5QKL.js} +1 -1
  180. package/chunks/{dist-EI2XAB4W.js → dist-YC6LDCKH.js} +22 -28
  181. package/chunks/{edit-TQ3CABYP.js → edit-FPIWTN3L.js} +20 -18
  182. package/chunks/{enter-worktree-J46XVFRS.js → enter-worktree-55OWD4LT.js} +4 -3
  183. package/chunks/{enterPlanMode-JHOWELZO.js → enterPlanMode-GDZVXYB2.js} +18 -16
  184. package/chunks/{environment-LUM7XX27.js → environment-Q2BVTUQO.js} +36 -32
  185. package/chunks/{errors-SH32ID5I.js → errors-MZTLVUEM.js} +34 -32
  186. package/chunks/{execution-sandbox-settings-HIYVUBII.js → execution-sandbox-settings-3WJ67GX3.js} +3 -1
  187. package/chunks/{execution-tool-IIEL25CL.js → execution-tool-DZ4XSEFZ.js} +21 -19
  188. package/chunks/{execution-worker-NKKEZ4XF.js → execution-worker-L3TM3F5D.js} +24 -22
  189. package/chunks/{exit-worktree-BC4SDZCC.js → exit-worktree-MI6N4OUP.js} +4 -3
  190. package/chunks/{exitPlanMode-PUICCCQ5.js → exitPlanMode-VIGOD2KP.js} +18 -16
  191. package/chunks/{fast-path-QH3QTZZA.js → fast-path-JCKEFUUL.js} +4 -4
  192. package/chunks/{fast-path-settings-TQAYWLXR.js → fast-path-settings-VIYSH3SD.js} +2 -2
  193. package/chunks/{glob-OEB4WH3Z.js → glob-UOKQZHKL.js} +18 -16
  194. package/chunks/{goal-tools-KWGKFUSK.js → goal-tools-G4RIX4ER.js} +18 -16
  195. package/chunks/{handleAutoUpdate-KEA7JSUD.js → handleAutoUpdate-UZZEGL3N.js} +34 -32
  196. package/chunks/{i18n-AC3MUXKZ.js → i18n-IL33FVND.js} +32 -30
  197. package/chunks/{initializer-WBD32BEX.js → initializer-BCXBRM6Y.js} +38 -36
  198. package/chunks/{installationInfo-JRGFTKWY.js → installationInfo-V7OKUOJV.js} +32 -30
  199. package/chunks/{list-S7KW7NBX.js → list-LQHG6SXA.js} +41 -39
  200. package/chunks/{llm-E32WLISX.js → llm-JWCANCDC.js} +85 -74
  201. package/chunks/{llm-content-generator-OMKJHC5P.js → llm-content-generator-OXMMHUVK.js} +3 -3
  202. package/chunks/{loadedSettingsAdapter-5OSU3J46.js → loadedSettingsAdapter-EKXSRWMY.js} +38 -36
  203. package/chunks/{local-execution-environment-IQHCTUJ5.js → local-execution-environment-XIQLRMLF.js} +24 -22
  204. package/chunks/{loggingContentGenerator-JIYG3LJS.js → loggingContentGenerator-6KHNZDTZ.js} +20 -18
  205. package/chunks/{managed-npm-update-RKAT7AMQ.js → managed-npm-update-MBUH5TIX.js} +32 -30
  206. package/chunks/managed-runtime-attestation-worker-G23AEEMF.js +367 -0
  207. package/chunks/{mcp-SV72BZKG.js → mcp-AYVCEEN7.js} +38 -36
  208. package/chunks/{model-call-collection-PKDMVCZN.js → model-call-collection-OKUGOY4B.js} +1 -1
  209. package/chunks/{model-configuration-A52XMQW7.js → model-configuration-Q3MNGG3B.js} +38 -36
  210. package/chunks/{modelConfigUtils-7O4P3SLE.js → modelConfigUtils-WC5XDR34.js} +33 -31
  211. package/chunks/{monitor-ZXRV2DJB.js → monitor-7JUZXYZN.js} +18 -16
  212. package/chunks/{nonInteractiveCli-UPSGIYRC.js → nonInteractiveCli-B3GCZ6NJ.js} +74 -73
  213. package/chunks/{nonInteractiveToolExecutor-TDKVR43J.js → nonInteractiveToolExecutor-IUHO7PXG.js} +19 -17
  214. package/chunks/{notebook-edit-FBVHAHYM.js → notebook-edit-IYDACZDW.js} +19 -17
  215. package/chunks/{omni-3NREMV2Q.js → omni-DLBHISHC.js} +10 -7
  216. package/chunks/{openaiContentGenerator-EWPBZFIT.js → openaiContentGenerator-W5GN6H6Z.js} +12 -10
  217. package/chunks/{openaiResponsesContentGenerator-3CI3PINB.js → openaiResponsesContentGenerator-BXXRYJQQ.js} +5 -5
  218. package/chunks/{pidfile-BBUANGZX.js → pidfile-QIBF53CW.js} +32 -30
  219. package/chunks/{processUtils-6OHQLG7W.js → processUtils-2LU22KCR.js} +2 -2
  220. package/chunks/{prompt-terminal-ledger-ZBFYXJ4L.js → prompt-terminal-ledger-LXFVLR6C.js} +33 -31
  221. package/chunks/{qwenContentGenerator-62F5IKXJ.js → qwenContentGenerator-LYMLXBWI.js} +21 -19
  222. package/chunks/{reactive-degrade-URJMXJ7N.js → reactive-degrade-HPYBJHYA.js} +6 -6
  223. package/chunks/{read-file-IM4Q5TKI.js → read-file-SXS2MKDY.js} +6 -3
  224. package/chunks/{record-artifact-K4XSMW4X.js → record-artifact-XP3X7RE5.js} +3 -2
  225. package/chunks/{record-source-XZCI3IGU.js → record-source-2VBLKVIE.js} +2 -2
  226. package/chunks/{report-findings-MCGXBQFX.js → report-findings-D2QUYUOG.js} +4 -3
  227. package/chunks/{request-shutdown-TT62PREA.js → request-shutdown-R5SA5GE3.js} +1 -1
  228. package/chunks/{resumeHistoryUtils-O3NQMDVR.js → resumeHistoryUtils-UPGZGP5V.js} +35 -33
  229. package/chunks/{ripGrep-BG2FEVIV.js → ripGrep-X33VVIN5.js} +8 -5
  230. package/chunks/{run-qwen-serve-GMLWJITM.js → run-qwen-serve-CUB2NZ6P.js} +278 -79
  231. package/chunks/{runtime-SSGPOXRZ.js → runtime-2DAVBADX.js} +43 -41
  232. package/chunks/{sandboxConfig-ALYLLNWY.js → sandboxConfig-ESBH3F27.js} +34 -32
  233. package/chunks/{scheduled-tasks-QJTC5XQ7.js → scheduled-tasks-TGWYXZWW.js} +38 -36
  234. package/chunks/{scheduler-PEXTY7IG.js → scheduler-XGLZCXPN.js} +34 -32
  235. package/chunks/{send-message-3UM7XRTB.js → send-message-FBU6WDID.js} +1 -1
  236. package/chunks/{serve-OVAUTKXK.js → serve-7RX4AIID.js} +38 -36
  237. package/chunks/{server-3MMYOOJW.js → server-MJETIFJS.js} +1789 -375
  238. package/chunks/{session-PZBIKBQJ.js → session-7AVYU3TC.js} +75 -74
  239. package/chunks/{session-attachments-root-ESP5CNBV.js → session-attachments-root-RONFQ3D3.js} +32 -30
  240. package/chunks/{session-pr-refresh-B3N7PKUP.js → session-pr-refresh-ZPT6TAD4.js} +37 -35
  241. package/chunks/{settings-KSQ2DGPY.js → settings-FPMUAVWD.js} +37 -35
  242. package/chunks/{shell-3V26EVNC.js → shell-THD5EYOK.js} +18 -16
  243. package/chunks/{skill-XP7F3LBV.js → skill-2D6KXDC5.js} +52 -13
  244. package/chunks/{skill-settings-PDESL7S3.js → skill-settings-XW7X244B.js} +38 -36
  245. package/chunks/{spawnChannel-NVO7CCBW.js → spawnChannel-DBSAAUUT.js} +34 -32
  246. package/chunks/{standalone-update-FDWS2EGF.js → standalone-update-TFAWA676.js} +33 -31
  247. package/chunks/{start-opentui-ui-WIFFY5UD.js → start-opentui-ui-VYMAXPBH.js} +87 -86
  248. package/chunks/{startInteractiveUI-YBLIRIHD.js → startInteractiveUI-Z54XKH35.js} +1037 -966
  249. package/chunks/{task-create-PEI7AJLE.js → task-create-PVF66J3R.js} +2 -2
  250. package/chunks/{task-update-MQZRWBGK.js → task-update-RSIITTOK.js} +2 -2
  251. package/chunks/{team-create-Z5JUEMB7.js → team-create-TPCELNBJ.js} +18 -16
  252. package/chunks/{team-plan-approval-ZLLHMEQN.js → team-plan-approval-RUURGHQL.js} +18 -16
  253. package/chunks/{terminal-image-renderer-QFO2JTTT.js → terminal-image-renderer-SLJVUD4Z.js} +32 -30
  254. package/chunks/{theme-manager-N7ILUTRY.js → theme-manager-VBOIN2KT.js} +32 -30
  255. package/chunks/{tool-call-PLSQ34VE.js → tool-call-DUHP6UXC.js} +2 -2
  256. package/chunks/{tool-result-media-OAHUKGRK.js → tool-result-media-WU6QAREN.js} +10 -7
  257. package/chunks/{tool-search-534QKE2X.js → tool-search-ET4NH2LK.js} +7 -4
  258. package/chunks/{total-session-admission-EZJQKTPF.js → total-session-admission-UWMJWTWP.js} +35 -33
  259. package/chunks/{trustedFolders-4ZEV6RXD.js → trustedFolders-3WNZBUH7.js} +33 -31
  260. package/chunks/{update-relaunch-GB3SGRDP.js → update-relaunch-SHS3BD6V.js} +5 -5
  261. package/chunks/{updateCheck-DVAGAEQ4.js → updateCheck-MDF2FCRN.js} +32 -30
  262. package/chunks/{upload-config-DMZVTDH7.js → upload-config-LVVUIKA2.js} +4 -4
  263. package/chunks/{useAutoAcceptIndicator-PTQBS42B.js → useAutoAcceptIndicator-26OOM7OM.js} +41 -39
  264. package/chunks/{validateNonInterActiveAuth-DU3WXVSU.js → validateNonInterActiveAuth-TBCZCQIN.js} +72 -71
  265. package/chunks/{version-PNMZGKCV.js → version-MICV7I4Y.js} +1 -1
  266. package/chunks/{web-fetch-LMCOAHW6.js → web-fetch-3O2DFRE5.js} +13 -9
  267. package/chunks/{web-search-N7RR74LA.js → web-search-5FS3NB3D.js} +4 -4
  268. package/chunks/{web-shell-static-GI6FVIMI.js → web-shell-static-E3O6NW7Y.js} +4 -3
  269. package/chunks/{workflow-ZZPHI7FK.js → workflow-FRJO5ZUI.js} +19 -17
  270. package/chunks/{workspace-providers-status-TU73CNRF.js → workspace-providers-status-I5MO7Z2T.js} +43 -41
  271. package/chunks/{workspace-registration-store-743FRSOU.js → workspace-registration-store-CBHKV34L.js} +1 -1
  272. package/chunks/{workspace-registry-S7QTXFWM.js → workspace-registry-2UKNZO5M.js} +35 -33
  273. package/chunks/{workspace-runtime-coordinator-GWNDUIGO.js → workspace-runtime-coordinator-TKCI5WJW.js} +36 -34
  274. package/chunks/{workspace-service-CERZFJ3B.js → workspace-service-M3ZKR6WL.js} +40 -38
  275. package/chunks/{workspace-skills-status-5M3EIAUY.js → workspace-skills-status-OC3EYL7U.js} +41 -39
  276. package/chunks/{workspace-trust-reconciler-Q3LUKMQB.js → workspace-trust-reconciler-YQZSUOH4.js} +41 -39
  277. package/chunks/{write-file-CT54LXQL.js → write-file-BATJLBJX.js} +21 -19
  278. package/chunks/{zoom-image-EU3PGSZM.js → zoom-image-5I7DDLQE.js} +10 -6
  279. package/cli-entry.js +13 -0
  280. package/cli.js +24 -12
  281. package/execution-worker.js +1 -1
  282. package/export-transcript-document.css +1 -1
  283. package/export-transcript-document.js +104 -104
  284. package/package.json +3 -3
  285. package/web-shell/assets/{abnfDiagram-VCTEODGH-DDYEvG-M.js → abnfDiagram-VCTEODGH-DQHroFS1.js} +1 -1
  286. package/web-shell/assets/{arc-DQncKWFX.js → arc-BrOc_HVh.js} +1 -1
  287. package/web-shell/assets/{architectureDiagram-5GKGNRK7-C0-8u9zj.js → architectureDiagram-5GKGNRK7-DXce8IH6.js} +1 -1
  288. package/web-shell/assets/{blockDiagram-NRAW4CY4-Cpt59Ge5.js → blockDiagram-NRAW4CY4-96A3Q3-l.js} +1 -1
  289. package/web-shell/assets/{c4Diagram-UCG6FXSJ-BvESWh83.js → c4Diagram-UCG6FXSJ-CQBg2PSg.js} +1 -1
  290. package/web-shell/assets/channel-CBP6pwSs.js +1 -0
  291. package/web-shell/assets/{chunk-2Q5K7J3B-wKulGIU6.js → chunk-2Q5K7J3B-i_jhVz-t.js} +1 -1
  292. package/web-shell/assets/{chunk-5VM5RSS4-BX6kRoq7.js → chunk-5VM5RSS4-Cx3gMrWT.js} +1 -1
  293. package/web-shell/assets/{chunk-F27PBJKO-wA4IqTt-.js → chunk-F27PBJKO-B9WwW7C0.js} +1 -1
  294. package/web-shell/assets/{chunk-G27WJ6UU-B7hzevlb.js → chunk-G27WJ6UU-B8t0FNPI.js} +1 -1
  295. package/web-shell/assets/{chunk-JWPE2WC7-BdBg9pJg.js → chunk-JWPE2WC7-Dg0__6CF.js} +1 -1
  296. package/web-shell/assets/{chunk-LCL6LL3I-DghmF6LJ.js → chunk-LCL6LL3I-DUwE5g3m.js} +1 -1
  297. package/web-shell/assets/{chunk-POPQ4Y6H-BbReTOod.js → chunk-POPQ4Y6H-BirYW5iS.js} +1 -1
  298. package/web-shell/assets/{chunk-SVP7TREG-C1t0_19D.js → chunk-SVP7TREG-_ONJKtFF.js} +1 -1
  299. package/web-shell/assets/{chunk-XXDRQBXY-DQBby5mI.js → chunk-XXDRQBXY-DGi0chgj.js} +1 -1
  300. package/web-shell/assets/classDiagram-DTDB5LWJ-_4_fFrN3.js +1 -0
  301. package/web-shell/assets/classDiagram-v2-JRS7N3AN-_4_fFrN3.js +1 -0
  302. package/web-shell/assets/{cose-bilkent-JH36ORCC-CNrSyg7B.js → cose-bilkent-JH36ORCC-BSSFxREn.js} +1 -1
  303. package/web-shell/assets/{cynefin-OW5HDTMX-DoxgDRN-.js → cynefin-OW5HDTMX-h-oYVCez.js} +1 -1
  304. package/web-shell/assets/{cynefinDiagram-5FMLGOSQ-BmUwbS8Q.js → cynefinDiagram-5FMLGOSQ-CXj6T7Pm.js} +1 -1
  305. package/web-shell/assets/{dagre-3AP2YEHR-BJrOVIjc.js → dagre-3AP2YEHR-Ch9GIhJm.js} +1 -1
  306. package/web-shell/assets/{diagram-S7CK7UJ4-TDX4KU9V.js → diagram-S7CK7UJ4-Cq3W541T.js} +1 -1
  307. package/web-shell/assets/{diagram-UQ7AKVKN-D3VUQkGl.js → diagram-UQ7AKVKN-Bm1R5-sN.js} +1 -1
  308. package/web-shell/assets/{diagram-VSXAHHWV-CqCpgViy.js → diagram-VSXAHHWV-BW2qG6Vh.js} +1 -1
  309. package/web-shell/assets/{diagram-VX7I27RA-CthqfwCs.js → diagram-VX7I27RA-DN96PhRe.js} +1 -1
  310. package/web-shell/assets/{diagram-Z3DM3KII-BRY3Ahvu.js → diagram-Z3DM3KII-A8MnwaJr.js} +1 -1
  311. package/web-shell/assets/{ebnfDiagram-PWID7BFC-tJvTnIwp.js → ebnfDiagram-PWID7BFC-CZTpUypI.js} +1 -1
  312. package/web-shell/assets/{erDiagram-SSCWMZ5O-DT4b7w5B.js → erDiagram-SSCWMZ5O-CbxCRFru.js} +1 -1
  313. package/web-shell/assets/{flowDiagram-A5DVABFB-C5oirWSf.js → flowDiagram-A5DVABFB-Bt1PM2Dy.js} +1 -1
  314. package/web-shell/assets/{ganttDiagram-EL5Y4UJY-ZD3kNlO4.js → ganttDiagram-EL5Y4UJY-CTgim3LX.js} +1 -1
  315. package/web-shell/assets/{gitGraphDiagram-WWUBYQGX-Bp1sg_wH.js → gitGraphDiagram-WWUBYQGX-h4jX7S4l.js} +1 -1
  316. package/web-shell/assets/{index-DSIzVof7.js → index-BDxWHGNm.js} +1 -1
  317. package/web-shell/assets/index-Bd3iA5Er.js +2407 -0
  318. package/web-shell/assets/index-DuwfO01z.css +36 -0
  319. package/web-shell/assets/{infoDiagram-RXCK75RN-Btumz_CZ.js → infoDiagram-RXCK75RN-DsIsFmZ4.js} +1 -1
  320. package/web-shell/assets/{ishikawaDiagram-5VMMS53U-Dx8_uvso.js → ishikawaDiagram-5VMMS53U-BgF2V3rC.js} +1 -1
  321. package/web-shell/assets/{journeyDiagram-EYS64GPL-DS5spUhj.js → journeyDiagram-EYS64GPL-CJ2ibWhB.js} +1 -1
  322. package/web-shell/assets/{kanban-definition-3QL26DDD-DttC9d4D.js → kanban-definition-3QL26DDD-oqNfpjND.js} +1 -1
  323. package/web-shell/assets/{layout-BDOJQJbX.js → layout-DKF2f-UC.js} +1 -1
  324. package/web-shell/assets/{linear-BsUVMxld.js → linear-CadmYA8J.js} +1 -1
  325. package/web-shell/assets/{mermaid.core-De4-EW4Z.js → mermaid.core-BSD13L-h.js} +6 -6
  326. package/web-shell/assets/{mindmap-definition-FBJOCRG2-BsYY98Wv.js → mindmap-definition-FBJOCRG2-Cg3jlHzV.js} +1 -1
  327. package/web-shell/assets/{pegDiagram-XKGWAZYB-DXnnQrVY.js → pegDiagram-XKGWAZYB-BGzqlBWk.js} +1 -1
  328. package/web-shell/assets/{pieDiagram-E7YTZNPT-DGLAGUYR.js → pieDiagram-E7YTZNPT-BVDdPYnC.js} +1 -1
  329. package/web-shell/assets/{quadrantDiagram-AXDQQJYC-Y8DcMTa5.js → quadrantDiagram-AXDQQJYC-D7maRW6r.js} +1 -1
  330. package/web-shell/assets/{railroadDiagram-O6MQD6OU-ZgauslUZ.js → railroadDiagram-O6MQD6OU-C7J0Nnqc.js} +1 -1
  331. package/web-shell/assets/{requirementDiagram-EFPCY7ZU-Kxtu4twe.js → requirementDiagram-EFPCY7ZU-CDEpUB7S.js} +1 -1
  332. package/web-shell/assets/{sankeyDiagram-P5KCCOFB-BKsLF9EA.js → sankeyDiagram-P5KCCOFB-DoA0BWeR.js} +1 -1
  333. package/web-shell/assets/{sequenceDiagram-WJ2MYXX4-D8sCv1NK.js → sequenceDiagram-WJ2MYXX4-DlqRjDLl.js} +1 -1
  334. package/web-shell/assets/{sizeCapture-X5ZJPWSS-BX8sokZX.js → sizeCapture-X5ZJPWSS-3l2EJ1DB.js} +1 -1
  335. package/web-shell/assets/{stateDiagram-HBIQ2CUA-DFMl58kv.js → stateDiagram-HBIQ2CUA-Bdq0N6Lr.js} +1 -1
  336. package/web-shell/assets/stateDiagram-v2-4QOOHH4V-DtdYpKZp.js +1 -0
  337. package/web-shell/assets/{swimlanes-XN3QIQJK-BnMwURLN.js → swimlanes-XN3QIQJK-B4ArxdLV.js} +1 -1
  338. package/web-shell/assets/swimlanesDiagram-VK2B7HYN-B_iL0Dc4.js +8 -0
  339. package/web-shell/assets/{timeline-definition-24CTP7MA-C8y77DDz.js → timeline-definition-24CTP7MA-B_Ug6D_k.js} +1 -1
  340. package/web-shell/assets/{vennDiagram-4TSXK5OY-DOWQgX9u.js → vennDiagram-4TSXK5OY-BR9tvaDT.js} +1 -1
  341. package/web-shell/assets/{wardleyDiagram-VM6X3IG4-BM0AVIzE.js → wardleyDiagram-VM6X3IG4-BdGIt6qE.js} +1 -1
  342. package/web-shell/assets/{xychartDiagram-S5SC5T6Z-B18-YghG.js → xychartDiagram-S5SC5T6Z-NxS8XkXN.js} +1 -1
  343. package/web-shell/index.html +2 -2
  344. package/web-shell/sw.js +1 -1
  345. package/bundled/computer-use/references/macos.md +0 -208
  346. package/bundled/computer-use/references/windows-linux.md +0 -247
  347. package/web-shell/assets/channel-B88Zt8_x.js +0 -1
  348. package/web-shell/assets/classDiagram-DTDB5LWJ-Dp-7ruHm.js +0 -1
  349. package/web-shell/assets/classDiagram-v2-JRS7N3AN-Dp-7ruHm.js +0 -1
  350. package/web-shell/assets/index-CpxLhWqx.js +0 -2337
  351. package/web-shell/assets/index-mr0Sw0G-.css +0 -36
  352. package/web-shell/assets/stateDiagram-v2-4QOOHH4V-B3HSbbo2.js +0 -1
  353. package/web-shell/assets/swimlanesDiagram-VK2B7HYN-FnO0SUMi.js +0 -8
@@ -1,5 +1,13 @@
1
1
  // Force strict mode and setup for ESM
2
2
  "use strict";
3
+ import {
4
+ IMAGE_MAX_SOURCE_BYTES,
5
+ ImageViewError,
6
+ extensionForMimeType,
7
+ looksLikeText,
8
+ renderImageOverview,
9
+ sniffFileKind
10
+ } from "./chunk-CLNDQINM.js";
3
11
  import {
4
12
  detectEncodingFromBuffer
5
13
  } from "./chunk-GMTJ3YQW.js";
@@ -461,227 +469,6 @@ async function renderPDFPagesToImages(filePath, options) {
461
469
  }
462
470
  __name(renderPDFPagesToImages, "renderPDFPagesToImages");
463
471
 
464
- // packages/core/src/utils/binary-content.ts
465
- init_esbuild_shims();
466
- import { mkdir, writeFile } from "node:fs/promises";
467
- import * as path from "node:path";
468
- var BINARY_APPLICATION_TYPES = /* @__PURE__ */ new Set([
469
- "application/pdf",
470
- "application/zip",
471
- "application/gzip",
472
- "application/x-gzip",
473
- "application/octet-stream",
474
- "application/msword",
475
- "application/vnd.ms-excel",
476
- "application/vnd.ms-powerpoint",
477
- "application/x-tar",
478
- "application/x-7z-compressed",
479
- "application/x-rar-compressed",
480
- "application/vnd.rar",
481
- "application/wasm",
482
- "application/java-archive"
483
- ]);
484
- function isBinaryContentType(contentType) {
485
- if (!contentType) return false;
486
- const mt = (contentType.split(";")[0] ?? "").trim().toLowerCase();
487
- if (mt.startsWith("text/")) return false;
488
- if (mt.endsWith("+json") || mt.endsWith("+xml")) return false;
489
- if (mt.startsWith("image/") || mt.startsWith("audio/") || mt.startsWith("video/") || mt.startsWith("font/")) {
490
- return true;
491
- }
492
- if (BINARY_APPLICATION_TYPES.has(mt)) return true;
493
- if (mt.startsWith("application/vnd.openxmlformats")) return true;
494
- if (mt.startsWith("application/vnd.oasis.opendocument")) return true;
495
- return false;
496
- }
497
- __name(isBinaryContentType, "isBinaryContentType");
498
- var MIME_EXTENSIONS = /* @__PURE__ */ new Map([
499
- ["application/pdf", "pdf"],
500
- ["application/zip", "zip"],
501
- [
502
- "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
503
- "docx"
504
- ],
505
- ["application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", "xlsx"],
506
- [
507
- "application/vnd.openxmlformats-officedocument.presentationml.presentation",
508
- "pptx"
509
- ],
510
- ["application/msword", "doc"],
511
- ["application/vnd.ms-excel", "xls"],
512
- ["application/vnd.ms-powerpoint", "ppt"],
513
- ["application/gzip", "gz"],
514
- ["application/x-gzip", "gz"],
515
- ["application/x-tar", "tar"],
516
- ["application/x-7z-compressed", "7z"],
517
- ["application/x-rar-compressed", "rar"],
518
- ["application/vnd.rar", "rar"],
519
- ["application/wasm", "wasm"],
520
- ["application/java-archive", "jar"],
521
- ["audio/mpeg", "mp3"],
522
- ["audio/wav", "wav"],
523
- ["audio/ogg", "ogg"],
524
- ["video/mp4", "mp4"],
525
- ["video/webm", "webm"],
526
- ["image/png", "png"],
527
- ["image/jpeg", "jpg"],
528
- ["image/gif", "gif"],
529
- ["image/webp", "webp"],
530
- ["image/svg+xml", "svg"]
531
- ]);
532
- function extensionForMimeType(mimeType) {
533
- if (!mimeType) return "bin";
534
- const mt = (mimeType.split(";")[0] ?? "").trim().toLowerCase();
535
- return MIME_EXTENSIONS.get(mt) ?? "bin";
536
- }
537
- __name(extensionForMimeType, "extensionForMimeType");
538
- var KNOWN_EXTENSIONS = /* @__PURE__ */ new Set([...MIME_EXTENSIONS.values(), "jpeg", "bin"]);
539
- function extensionFromFilename(name) {
540
- if (!name) return void 0;
541
- const ext = name.split(".").pop()?.trim().toLowerCase();
542
- return ext && ext !== name && KNOWN_EXTENSIONS.has(ext) ? ext : void 0;
543
- }
544
- __name(extensionFromFilename, "extensionFromFilename");
545
- function filenameFromContentDisposition(contentDisposition) {
546
- const star = /filename\*\s*=\s*[^']*'[^']*'([^;]+)/i.exec(contentDisposition);
547
- if (star?.[1]) {
548
- try {
549
- return decodeURIComponent(star[1].trim());
550
- } catch {
551
- return star[1].trim();
552
- }
553
- }
554
- const plain = /filename\s*=\s*"?([^";]+)"?/i.exec(contentDisposition);
555
- return plain?.[1]?.trim();
556
- }
557
- __name(filenameFromContentDisposition, "filenameFromContentDisposition");
558
- function sniffFileKind(bytes, contentType, contentDisposition, url) {
559
- const dispositionExt = extensionFromFilename(
560
- filenameFromContentDisposition(contentDisposition)
561
- );
562
- let urlExt;
563
- try {
564
- urlExt = extensionFromFilename(new URL(url).pathname.split("/").pop());
565
- } catch {
566
- urlExt = void 0;
567
- }
568
- if (bytes.length >= 5 && bytes.subarray(0, 5).toString("latin1") === "%PDF-") {
569
- return {
570
- extension: "pdf",
571
- mimeType: "application/pdf",
572
- magicMatched: true,
573
- extensionSource: "magic"
574
- };
575
- }
576
- if (bytes.length >= 4 && bytes[0] === 80 && bytes[1] === 75 && bytes[2] === 3 && bytes[3] === 4) {
577
- const zipHint = dispositionExt ?? urlExt ?? extensionForMimeType(contentType);
578
- const refined = zipHint && ["docx", "xlsx", "pptx", "jar"].includes(zipHint) ? zipHint : "zip";
579
- return {
580
- extension: refined,
581
- mimeType: contentType || "application/zip",
582
- magicMatched: true,
583
- extensionSource: "magic"
584
- };
585
- }
586
- if (bytes.length >= 2 && bytes[0] === 31 && bytes[1] === 139) {
587
- return {
588
- extension: "gz",
589
- mimeType: "application/gzip",
590
- magicMatched: true,
591
- extensionSource: "magic"
592
- };
593
- }
594
- if (bytes.length >= 7 && bytes.subarray(0, 4).toString("latin1") === "Rar!" && bytes[4] === 26 && bytes[5] === 7) {
595
- return {
596
- extension: "rar",
597
- mimeType: "application/vnd.rar",
598
- magicMatched: true,
599
- extensionSource: "magic"
600
- };
601
- }
602
- if (bytes.length >= 8 && bytes[0] === 137 && bytes.subarray(1, 4).toString("latin1") === "PNG") {
603
- return {
604
- extension: "png",
605
- mimeType: "image/png",
606
- magicMatched: true,
607
- extensionSource: "magic"
608
- };
609
- }
610
- if (bytes.length >= 3 && bytes[0] === 255 && bytes[1] === 216 && bytes[2] === 255) {
611
- return {
612
- extension: "jpg",
613
- mimeType: "image/jpeg",
614
- magicMatched: true,
615
- extensionSource: "magic"
616
- };
617
- }
618
- if (bytes.length >= 4 && bytes.subarray(0, 4).toString("latin1") === "GIF8") {
619
- return {
620
- extension: "gif",
621
- mimeType: "image/gif",
622
- magicMatched: true,
623
- extensionSource: "magic"
624
- };
625
- }
626
- if (bytes.length >= 12 && bytes.subarray(0, 4).toString("latin1") === "RIFF" && bytes.subarray(8, 12).toString("latin1") === "WEBP") {
627
- return {
628
- extension: "webp",
629
- mimeType: "image/webp",
630
- magicMatched: true,
631
- extensionSource: "magic"
632
- };
633
- }
634
- const nameExt = dispositionExt ?? urlExt;
635
- if (nameExt) {
636
- return {
637
- extension: nameExt,
638
- mimeType: contentType,
639
- magicMatched: false,
640
- extensionSource: "name"
641
- };
642
- }
643
- const mimeExt = extensionForMimeType(contentType);
644
- return {
645
- extension: mimeExt,
646
- mimeType: contentType,
647
- magicMatched: false,
648
- extensionSource: mimeExt !== "bin" ? "mime" : "fallback"
649
- };
650
- }
651
- __name(sniffFileKind, "sniffFileKind");
652
- function looksLikeText(bytes) {
653
- const window = bytes.subarray(0, 8192);
654
- if (window.includes(0)) return false;
655
- const decoded = new TextDecoder("utf-8").decode(window);
656
- let bad = 0;
657
- for (let i = 0; i < decoded.length; i++) {
658
- if (decoded[i] === "\uFFFD" && ++bad > 2) return false;
659
- }
660
- return true;
661
- }
662
- __name(looksLikeText, "looksLikeText");
663
- async function persistBinaryContent(bytes, ext, dir, persistId) {
664
- const filepath = path.join(dir, `${persistId}.${ext}`);
665
- try {
666
- await mkdir(dir, { recursive: true, mode: 448 });
667
- await writeFile(filepath, bytes, { mode: 384 });
668
- } catch (error) {
669
- return { error: error instanceof Error ? error.message : String(error) };
670
- }
671
- return { filepath, size: bytes.length, ext };
672
- }
673
- __name(persistBinaryContent, "persistBinaryContent");
674
- function formatByteSize(sizeInBytes) {
675
- const kb = sizeInBytes / 1024;
676
- if (kb < 1) return `${sizeInBytes} bytes`;
677
- const fmt = /* @__PURE__ */ __name((n) => n.toFixed(1).replace(/\.0$/, ""), "fmt");
678
- if (kb < 1024) return `${fmt(kb)}KB`;
679
- const mb = kb / 1024;
680
- if (mb < 1024) return `${fmt(mb)}MB`;
681
- return `${fmt(mb / 1024)}GB`;
682
- }
683
- __name(formatByteSize, "formatByteSize");
684
-
685
472
  // packages/core/src/utils/notebook.ts
686
473
  init_esbuild_shims();
687
474
  import fs from "node:fs";
@@ -949,245 +736,11 @@ ${cellTexts.join("\n\n")}`,
949
736
  }
950
737
  __name(readNotebookWithMetadata, "readNotebookWithMetadata");
951
738
 
952
- // packages/core/src/utils/image-view.ts
953
- init_esbuild_shims();
954
- import fs2 from "node:fs/promises";
955
- var IMAGE_VIEW_MAX_EDGE = 1568;
956
- var IMAGE_VIEW_MAX_PATCHES = 1568;
957
- var IMAGE_PATCH_SIZE = 28;
958
- var IMAGE_MAX_UPSCALE = 8;
959
- var IMAGE_JPEG_QUALITY = 92;
960
- var IMAGE_MAX_SOURCE_BYTES = 100 * 1024 * 1024;
961
- var IMAGE_MAX_OUTPUT_BYTES = 9 * 1024 * 1024;
962
- var SUPPORTED_IMAGE_FORMATS = /* @__PURE__ */ new Set(["jpeg", "png", "webp"]);
963
- var ImageViewError = class extends Error {
964
- constructor(code, message) {
965
- super(message);
966
- this.code = code;
967
- }
968
- static {
969
- __name(this, "ImageViewError");
970
- }
971
- };
972
- function orientedSize(metadata) {
973
- const autoOrient = metadata.autoOrient;
974
- if (autoOrient) {
975
- return { width: autoOrient.width, height: autoOrient.height };
976
- }
977
- const width = metadata.width ?? 0;
978
- const height = metadata.height ?? 0;
979
- const orientation = metadata.orientation ?? 0;
980
- return orientation >= 5 && orientation <= 8 ? { width: height, height: width } : { width, height };
981
- }
982
- __name(orientedSize, "orientedSize");
983
- function fitsVisualBudget({ width, height }) {
984
- return width <= IMAGE_VIEW_MAX_EDGE && height <= IMAGE_VIEW_MAX_EDGE && Math.ceil(width / IMAGE_PATCH_SIZE) * Math.ceil(height / IMAGE_PATCH_SIZE) <= IMAGE_VIEW_MAX_PATCHES;
985
- }
986
- __name(fitsVisualBudget, "fitsVisualBudget");
987
- function boundedSize(width, height, maxUpscale) {
988
- const widthIsLongEdge = width >= height;
989
- const maxLongEdge = Math.min(
990
- IMAGE_VIEW_MAX_EDGE,
991
- Math.max(width, height) * maxUpscale
992
- );
993
- let low = 1;
994
- let high = maxLongEdge;
995
- let best = { width: 1, height: 1 };
996
- while (low <= high) {
997
- const longEdge = Math.floor((low + high) / 2);
998
- const candidate = widthIsLongEdge ? {
999
- width: longEdge,
1000
- height: Math.max(1, Math.round(height / width * longEdge))
1001
- } : {
1002
- width: Math.max(1, Math.round(width / height * longEdge)),
1003
- height: longEdge
1004
- };
1005
- if (fitsVisualBudget(candidate)) {
1006
- best = candidate;
1007
- low = longEdge + 1;
1008
- } else {
1009
- high = longEdge - 1;
1010
- }
1011
- }
1012
- return best;
1013
- }
1014
- __name(boundedSize, "boundedSize");
1015
- async function prepareImage(filePath, signal) {
1016
- signal.throwIfAborted();
1017
- let sharp;
1018
- try {
1019
- sharp = (await import("sharp")).default;
1020
- } catch {
1021
- throw new ImageViewError(
1022
- "renderer_unavailable",
1023
- 'Image rendering is unavailable because the "sharp" image module could not be loaded.'
1024
- );
1025
- }
1026
- let stats;
1027
- try {
1028
- stats = await fs2.stat(filePath);
1029
- } catch (error) {
1030
- if (error.code === "ENOENT") {
1031
- throw new ImageViewError(
1032
- "file_not_found",
1033
- `Image file not found: ${filePath}`
1034
- );
1035
- }
1036
- throw error;
1037
- }
1038
- if (stats.isDirectory()) {
1039
- throw new ImageViewError(
1040
- "target_is_directory",
1041
- `Image path is a directory: ${filePath}`
1042
- );
1043
- }
1044
- if (!stats.isFile()) {
1045
- throw new ImageViewError(
1046
- "target_not_regular_file",
1047
- `Image path is not a regular file: ${filePath}`
1048
- );
1049
- }
1050
- if (stats.size > IMAGE_MAX_SOURCE_BYTES) {
1051
- throw new ImageViewError(
1052
- "source_too_large",
1053
- `Image file exceeds the 100 MB source limit: ${filePath}`
1054
- );
1055
- }
1056
- const bytes = await fs2.readFile(filePath, { signal });
1057
- if (bytes.length > IMAGE_MAX_SOURCE_BYTES) {
1058
- throw new ImageViewError(
1059
- "source_too_large",
1060
- `Image file exceeds the 100 MB source limit: ${filePath}`
1061
- );
1062
- }
1063
- let metadata;
1064
- try {
1065
- metadata = await sharp(bytes, {
1066
- failOn: "error",
1067
- limitInputPixels: true
1068
- }).metadata();
1069
- } catch {
1070
- signal.throwIfAborted();
1071
- throw new ImageViewError(
1072
- "decode_failed",
1073
- `Failed to decode image (file may be corrupt or not a static PNG, JPEG, or WebP): ${filePath}`
1074
- );
1075
- }
1076
- signal.throwIfAborted();
1077
- if (!SUPPORTED_IMAGE_FORMATS.has(metadata.format)) {
1078
- throw new ImageViewError(
1079
- "unsupported_image",
1080
- `Unsupported image. Expected a static PNG, JPEG, or WebP file: ${filePath}`
1081
- );
1082
- }
1083
- if ((metadata.pages ?? 1) > 1) {
1084
- throw new ImageViewError(
1085
- "animated_image",
1086
- `Only static images are supported: ${filePath}`
1087
- );
1088
- }
1089
- return { bytes, metadata, sharp };
1090
- }
1091
- __name(prepareImage, "prepareImage");
1092
- async function renderImageView(filePath, prepared, selection, outputSize, signal) {
1093
- const { bytes, metadata, sharp } = prepared;
1094
- const sourceSize = orientedSize(metadata);
1095
- let output;
1096
- try {
1097
- output = await sharp(bytes, {
1098
- failOn: "error",
1099
- limitInputPixels: true
1100
- }).rotate().extract(selection).resize(outputSize.width, outputSize.height, {
1101
- fit: "fill",
1102
- kernel: sharp.kernel.lanczos3
1103
- }).flatten({ background: "#ffffff" }).jpeg({
1104
- quality: IMAGE_JPEG_QUALITY,
1105
- chromaSubsampling: "4:4:4"
1106
- }).toBuffer();
1107
- } catch {
1108
- signal.throwIfAborted();
1109
- throw new ImageViewError(
1110
- "decode_failed",
1111
- `Failed to render image overview: ${filePath}`
1112
- );
1113
- }
1114
- signal.throwIfAborted();
1115
- if (output.length > IMAGE_MAX_OUTPUT_BYTES) {
1116
- throw new ImageViewError(
1117
- "output_too_large",
1118
- `Rendered image exceeds the 9 MB output limit: ${filePath}`
1119
- );
1120
- }
1121
- return {
1122
- bytes: output,
1123
- mimeType: "image/jpeg",
1124
- sourceWidth: sourceSize.width,
1125
- sourceHeight: sourceSize.height,
1126
- selectedWidth: selection.width,
1127
- selectedHeight: selection.height,
1128
- outputWidth: outputSize.width,
1129
- outputHeight: outputSize.height
1130
- };
1131
- }
1132
- __name(renderImageView, "renderImageView");
1133
- async function renderImageOverview(filePath, signal) {
1134
- const prepared = await prepareImage(filePath, signal);
1135
- const { width: sourceWidth, height: sourceHeight } = orientedSize(
1136
- prepared.metadata
1137
- );
1138
- const outputSize = boundedSize(sourceWidth, sourceHeight, 1);
1139
- return renderImageView(
1140
- filePath,
1141
- prepared,
1142
- { left: 0, top: 0, width: sourceWidth, height: sourceHeight },
1143
- outputSize,
1144
- signal
1145
- );
1146
- }
1147
- __name(renderImageOverview, "renderImageOverview");
1148
- async function renderNormalizedImageCrop(filePath, region, signal) {
1149
- const prepared = await prepareImage(filePath, signal);
1150
- const { width: sourceWidth, height: sourceHeight } = orientedSize(
1151
- prepared.metadata
1152
- );
1153
- const left = Math.min(
1154
- sourceWidth - 1,
1155
- Math.max(0, Math.floor(region.x1 / 1e3 * sourceWidth))
1156
- );
1157
- const top = Math.min(
1158
- sourceHeight - 1,
1159
- Math.max(0, Math.floor(region.y1 / 1e3 * sourceHeight))
1160
- );
1161
- const right = Math.min(
1162
- sourceWidth,
1163
- Math.max(left + 1, Math.ceil(region.x2 / 1e3 * sourceWidth))
1164
- );
1165
- const bottom = Math.min(
1166
- sourceHeight,
1167
- Math.max(top + 1, Math.ceil(region.y2 / 1e3 * sourceHeight))
1168
- );
1169
- const selectedWidth = right - left;
1170
- const selectedHeight = bottom - top;
1171
- const outputSize = boundedSize(
1172
- selectedWidth,
1173
- selectedHeight,
1174
- IMAGE_MAX_UPSCALE
1175
- );
1176
- return renderImageView(
1177
- filePath,
1178
- prepared,
1179
- { left, top, width: selectedWidth, height: selectedHeight },
1180
- outputSize,
1181
- signal
1182
- );
1183
- }
1184
- __name(renderNormalizedImageCrop, "renderNormalizedImageCrop");
1185
-
1186
739
  // packages/core/src/utils/fileUtils.ts
1187
740
  init_esbuild_shims();
1188
- import fs3 from "node:fs";
741
+ import fs2 from "node:fs";
1189
742
  import fsPromises from "node:fs/promises";
1190
- import path3 from "node:path";
743
+ import path2 from "node:path";
1191
744
 
1192
745
  // packages/core/node_modules/mime/dist/src/index_lite.js
1193
746
  init_esbuild_shims();
@@ -1611,12 +1164,12 @@ var Mime = class {
1611
1164
  }
1612
1165
  return this;
1613
1166
  }
1614
- getType(path4) {
1615
- if (typeof path4 !== "string")
1167
+ getType(path3) {
1168
+ if (typeof path3 !== "string")
1616
1169
  return null;
1617
- const last = path4.replace(/^.*[/\\]/s, "").toLowerCase();
1170
+ const last = path3.replace(/^.*[/\\]/s, "").toLowerCase();
1618
1171
  const ext = last.replace(/^.*\./s, "").toLowerCase();
1619
- const hasPath = last.length < path4.length;
1172
+ const hasPath = last.length < path3.length;
1620
1173
  const hasDot = ext.length < last.length - 1;
1621
1174
  if (!hasDot && hasPath)
1622
1175
  return null;
@@ -1686,7 +1239,7 @@ __name(loadIconvLite, "loadIconvLite");
1686
1239
 
1687
1240
  // packages/core/src/utils/ignorePatterns.ts
1688
1241
  init_esbuild_shims();
1689
- import path2 from "node:path";
1242
+ import path from "node:path";
1690
1243
  var COMMON_IGNORE_PATTERNS = [
1691
1244
  "**/node_modules/**",
1692
1245
  "**/.git/**",
@@ -1825,7 +1378,7 @@ function extractExtensionsFromPatterns(patterns) {
1825
1378
  return inner.split(",").map((ext) => `.${ext.trim()}`).filter((ext) => ext !== ".");
1826
1379
  }
1827
1380
  if (extPart.startsWith(".") && !extPart.includes("/") && !extPart.includes("{") && !extPart.includes("}")) {
1828
- const extracted = path2.extname(`dummy${extPart}`);
1381
+ const extracted = path.extname(`dummy${extPart}`);
1829
1382
  const result = extracted || extPart;
1830
1383
  return result && result !== "." && !result.substring(1).includes(".") ? [result] : [];
1831
1384
  }
@@ -2535,7 +2088,7 @@ function bomEncodingToName(bomEncoding) {
2535
2088
  }
2536
2089
  __name(bomEncodingToName, "bomEncodingToName");
2537
2090
  async function readFileWithEncodingInfo(filePath, signal) {
2538
- const full = await fs3.promises.readFile(
2091
+ const full = await fs2.promises.readFile(
2539
2092
  filePath,
2540
2093
  signal === void 0 ? void 0 : { signal }
2541
2094
  );
@@ -2554,7 +2107,7 @@ async function countFileLines(filePath) {
2554
2107
  __name(countFileLines, "countFileLines");
2555
2108
  async function readFileWithLineAndLimit(params) {
2556
2109
  const { path: filePath, limit, line, maxOutputBytes, signal } = params;
2557
- const stats = params.stats ?? await fs3.promises.stat(filePath);
2110
+ const stats = params.stats ?? await fs2.promises.stat(filePath);
2558
2111
  if (line !== void 0 && line > 0 || Number.isFinite(limit) || maxOutputBytes !== void 0) {
2559
2112
  return readTextRange({
2560
2113
  path: filePath,
@@ -2592,7 +2145,7 @@ __name(readFileWithLineAndLimit, "readFileWithLineAndLimit");
2592
2145
  async function detectFileEncoding(source) {
2593
2146
  let opened = null;
2594
2147
  try {
2595
- const fh = typeof source === "string" ? opened = await fs3.promises.open(source, "r") : source;
2148
+ const fh = typeof source === "string" ? opened = await fs2.promises.open(source, "r") : source;
2596
2149
  const stats = await fh.stat();
2597
2150
  if (stats.size === 0) return "utf-8";
2598
2151
  const sampleSize = Math.min(8192, stats.size);
@@ -2626,16 +2179,16 @@ function getSpecificMimeType(filePath) {
2626
2179
  }
2627
2180
  __name(getSpecificMimeType, "getSpecificMimeType");
2628
2181
  function isWithinRoot(pathToCheck, rootDirectory) {
2629
- const normalizedPathToCheck = path3.resolve(pathToCheck);
2630
- const normalizedRootDirectory = path3.resolve(rootDirectory);
2631
- const rootWithSeparator = normalizedRootDirectory === path3.sep || normalizedRootDirectory.endsWith(path3.sep) ? normalizedRootDirectory : normalizedRootDirectory + path3.sep;
2182
+ const normalizedPathToCheck = path2.resolve(pathToCheck);
2183
+ const normalizedRootDirectory = path2.resolve(rootDirectory);
2184
+ const rootWithSeparator = normalizedRootDirectory === path2.sep || normalizedRootDirectory.endsWith(path2.sep) ? normalizedRootDirectory : normalizedRootDirectory + path2.sep;
2632
2185
  return normalizedPathToCheck === normalizedRootDirectory || normalizedPathToCheck.startsWith(rootWithSeparator);
2633
2186
  }
2634
2187
  __name(isWithinRoot, "isWithinRoot");
2635
2188
  async function isBinaryFile(filePath) {
2636
2189
  let fh = null;
2637
2190
  try {
2638
- fh = await fs3.promises.open(filePath, "r");
2191
+ fh = await fs2.promises.open(filePath, "r");
2639
2192
  const stats = await fh.stat();
2640
2193
  const fileSize = stats.size;
2641
2194
  if (fileSize === 0) return false;
@@ -2847,9 +2400,9 @@ async function classifyImageContent(filePath, mimeType) {
2847
2400
  if (!SNIFFABLE_IMAGE_MIME_TYPES.has(mimeType)) return "image";
2848
2401
  let handle;
2849
2402
  try {
2850
- handle = await fs3.promises.open(
2403
+ handle = await fs2.promises.open(
2851
2404
  filePath,
2852
- (fs3.constants?.O_RDONLY ?? 0) | (fs3.constants?.O_NONBLOCK ?? 0)
2405
+ (fs2.constants?.O_RDONLY ?? 0) | (fs2.constants?.O_NONBLOCK ?? 0)
2853
2406
  );
2854
2407
  if ((await handle.stat()).size > IMAGE_MAX_SOURCE_BYTES) return "image";
2855
2408
  const sample = Buffer.alloc(IMAGE_SNIFF_BYTES);
@@ -2881,7 +2434,7 @@ async function classifyImageContent(filePath, mimeType) {
2881
2434
  }
2882
2435
  __name(classifyImageContent, "classifyImageContent");
2883
2436
  async function detectFileType(filePath) {
2884
- const ext = path3.extname(filePath).toLowerCase();
2437
+ const ext = path2.extname(filePath).toLowerCase();
2885
2438
  if ([".ts", ".mts", ".cts", ".tsx"].includes(ext)) {
2886
2439
  return "text";
2887
2440
  }
@@ -2921,7 +2474,7 @@ async function detectFileType(filePath) {
2921
2474
  );
2922
2475
  return "text";
2923
2476
  }
2924
- if (KNOWN_TEXT_BASENAMES.has(path3.basename(filePath))) {
2477
+ if (KNOWN_TEXT_BASENAMES.has(path2.basename(filePath))) {
2925
2478
  debugLogger.debug(
2926
2479
  `detectFileType: ${filePath} \u2192 text (basename-override, mime ${lookedUpMimeType ?? "null"})`
2927
2480
  );
@@ -2966,12 +2519,12 @@ async function processSingleFileContent(filePath, config, optionsOrOffset, legac
2966
2519
  displayPath = filePath
2967
2520
  } = options;
2968
2521
  const rootDirectory = config.getTargetDir();
2969
- const relativePathForDisplay = (path3.isAbsolute(displayPath) ? path3.relative(rootDirectory, displayPath) : displayPath).replace(/\\/g, "/");
2522
+ const relativePathForDisplay = (path2.isAbsolute(displayPath) ? path2.relative(rootDirectory, displayPath) : displayPath).replace(/\\/g, "/");
2970
2523
  try {
2971
2524
  signal?.throwIfAborted();
2972
2525
  let stats;
2973
2526
  try {
2974
- stats = options.textFileStats ?? await fs3.promises.stat(filePath);
2527
+ stats = options.textFileStats ?? await fs2.promises.stat(filePath);
2975
2528
  } catch (error) {
2976
2529
  if (isNodeError(error) && error.code === "ENOENT") {
2977
2530
  return {
@@ -2993,13 +2546,13 @@ async function processSingleFileContent(filePath, config, optionsOrOffset, legac
2993
2546
  }
2994
2547
  if (!stats.isFile()) {
2995
2548
  return {
2996
- llmContent: `Cannot read file: ${path3.basename(filePath)} is not a regular file (e.g. device, socket, or pipe).`,
2549
+ llmContent: `Cannot read file: ${path2.basename(filePath)} is not a regular file (e.g. device, socket, or pipe).`,
2997
2550
  returnDisplay: "Not a regular file.",
2998
2551
  error: `Not a regular file: ${displayPath}`,
2999
2552
  errorType: "read_content_failure" /* READ_CONTENT_FAILURE */
3000
2553
  };
3001
2554
  }
3002
- const mediaMimeType = index_lite_default.getType(filePath) ?? MIME_LITE_MISSING_MEDIA_TYPES.get(path3.extname(filePath).toLowerCase()) ?? "application/octet-stream";
2555
+ const mediaMimeType = index_lite_default.getType(filePath) ?? MIME_LITE_MISSING_MEDIA_TYPES.get(path2.extname(filePath).toLowerCase()) ?? "application/octet-stream";
3003
2556
  const bridgePreservesImage = preserveUnsupportedImage && mediaMimeType.startsWith("image/") && SNIFFABLE_IMAGE_MIME_TYPES.has(mediaMimeType);
3004
2557
  const fileType = options.textFileHandle ? "text" : options.fileType ?? (bridgePreservesImage ? "image" : await detectFileType(filePath));
3005
2558
  if (fileType === "pdf" && config.getShellExecutionSandbox?.()) {
@@ -3012,7 +2565,7 @@ async function processSingleFileContent(filePath, config, optionsOrOffset, legac
3012
2565
  };
3013
2566
  }
3014
2567
  const shouldRenderImageOverview = fileType === "image" && CANONICAL_IMAGE_MIME_TYPES.has(mediaMimeType);
3015
- const displayName = path3.basename(displayPath);
2568
+ const displayName = path2.basename(displayPath);
3016
2569
  const modalities = config.getContentGeneratorConfig?.()?.modalities ?? {};
3017
2570
  const willRenderPdfImages = fileType === "pdf" && !!modalities.image && largePdfBehavior !== "reference";
3018
2571
  const renderForBridge = fileType === "pdf" && !modalities.image && !modalities.pdf && (preserveUnsupportedImage || preparePdfForVisionBridge);
@@ -3334,7 +2887,7 @@ async function processSingleFileContent(filePath, config, optionsOrOffset, legac
3334
2887
  returnDisplay: `Omitted unsupported image format: ${relativePathForDisplay} (${mediaMimeType})`
3335
2888
  };
3336
2889
  }
3337
- const contentBuffer = await fs3.promises.readFile(filePath);
2890
+ const contentBuffer = await fs2.promises.readFile(filePath);
3338
2891
  if (mediaMimeType === "image/gif") {
3339
2892
  const sharpModule = await import("sharp").catch(() => void 0);
3340
2893
  if (sharpModule) {
@@ -3387,7 +2940,7 @@ async function processSingleFileContent(filePath, config, optionsOrOffset, legac
3387
2940
  signal
3388
2941
  });
3389
2942
  }
3390
- const contentBuffer = await fs3.promises.readFile(filePath);
2943
+ const contentBuffer = await fs2.promises.readFile(filePath);
3391
2944
  const base64Data = contentBuffer.toString("base64");
3392
2945
  const base64SizeInMB = base64Data.length / (1024 * 1024);
3393
2946
  if (base64SizeInMB > 9.9) {
@@ -3411,7 +2964,7 @@ async function processSingleFileContent(filePath, config, optionsOrOffset, legac
3411
2964
  }
3412
2965
  case "pdf": {
3413
2966
  if (!pageRange && modalities.pdf) {
3414
- const contentBuffer = await fs3.promises.readFile(filePath);
2967
+ const contentBuffer = await fs2.promises.readFile(filePath);
3415
2968
  const base64Data = contentBuffer.toString("base64");
3416
2969
  const base64SizeInMB = base64Data.length / (1024 * 1024);
3417
2970
  if (base64SizeInMB > 9.9) {
@@ -3677,7 +3230,7 @@ function normalizeRangeReadByteLimit(maxOutputBytes) {
3677
3230
  __name(normalizeRangeReadByteLimit, "normalizeRangeReadByteLimit");
3678
3231
  async function fileExists(filePath) {
3679
3232
  try {
3680
- await fsPromises.access(filePath, fs3.constants.F_OK);
3233
+ await fsPromises.access(filePath, fs2.constants.F_OK);
3681
3234
  return true;
3682
3235
  } catch (_) {
3683
3236
  return false;
@@ -3703,11 +3256,6 @@ export {
3703
3256
  extractPDFText,
3704
3257
  VISION_BRIDGE_MAX_IMAGES,
3705
3258
  VISION_BRIDGE_MAX_IMAGE_BASE64_BYTES,
3706
- isBinaryContentType,
3707
- sniffFileKind,
3708
- looksLikeText,
3709
- persistBinaryContent,
3710
- formatByteSize,
3711
3259
  normalizeSource,
3712
3260
  parseNotebook,
3713
3261
  inferNotebookJsonFormat,
@@ -3726,8 +3274,6 @@ export {
3726
3274
  TextScanBudgetExceededError,
3727
3275
  readTextRangeFromHandle,
3728
3276
  readTextCursorWindowFromHandle,
3729
- ImageViewError,
3730
- renderNormalizedImageCrop,
3731
3277
  isSupportedImageMimeType,
3732
3278
  getUnsupportedImageFormatWarning,
3733
3279
  decodeBufferWithEncodingInfoAsync,
@@ -3754,11 +3300,6 @@ export {
3754
3300
  * Copyright 2025 Qwen Team
3755
3301
  * SPDX-License-Identifier: Apache-2.0
3756
3302
  */
3757
- /**
3758
- * @license
3759
- * Copyright 2026 Qwen
3760
- * SPDX-License-Identifier: Apache-2.0
3761
- */
3762
3303
  /**
3763
3304
  * @license
3764
3305
  * Copyright 2026 Qwen Team