@qwen-code/qwen-code 0.23.5-preview.0 → 0.24.0

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 (480) hide show
  1. package/bundled/qc-helper/docs/features/_meta.ts +1 -0
  2. package/bundled/qc-helper/docs/features/goals.md +4 -2
  3. package/bundled/qc-helper/docs/features/omni-fixed-policies-preset.json +242 -0
  4. package/bundled/qc-helper/docs/features/omni-media-policies.md +443 -0
  5. package/bundled/qc-helper/docs/overview.md +1 -1
  6. package/bundled/qc-helper/docs/quickstart.md +2 -3
  7. package/chunks/MaxSizedBox-I5COUCHZ.js +148 -0
  8. package/chunks/{StandaloneSessionPicker-V635V72I.js → StandaloneSessionPicker-KUGOBVEW.js} +114 -90
  9. package/chunks/acp-subagent-executor-PRPMLKVJ.js +164 -0
  10. package/chunks/{acpAgent-3DPWZTNC.js → acpAgent-EHXZXVUB.js} +269 -194
  11. package/chunks/{agent-KIHGINKN.js → agent-FWPNJI6N.js} +59 -49
  12. package/chunks/agent-headless-M5Z7WIDL.js +104 -0
  13. package/chunks/{anthropicContentGenerator-4FGOM5LK.js → anthropicContentGenerator-FLTEUSIQ.js} +30 -27
  14. package/chunks/{artifact-tool-MUTNH4NI.js → artifact-tool-3MWM6SN2.js} +11 -7
  15. package/chunks/{askUserQuestion-AKIRLVB5.js → askUserQuestion-YFFBB4K3.js} +6 -4
  16. package/chunks/bridge-EWCKRGWY.js +156 -0
  17. package/chunks/{build-5KWQBWEQ.js → build-5OQN7CDU.js} +1 -1
  18. package/chunks/caption-audio-UXXLI3JZ.js +443 -0
  19. package/chunks/caption-image-B7O4TUFP.js +247 -0
  20. package/chunks/{channel-management-service-RRILWSXX.js → channel-management-service-GRJG5R46.js} +1 -1
  21. package/chunks/channel-settings-store-NXZNLT5L.js +158 -0
  22. package/chunks/{channel-worker-group-3DUJFZJR.js → channel-worker-group-SCSKCSBJ.js} +4 -4
  23. package/chunks/{channel-worker-manager-E5UW2VLA.js → channel-worker-manager-AHCZCKON.js} +4 -4
  24. package/chunks/{channel-worker-supervisor-VN33GSEC.js → channel-worker-supervisor-BGUAVITB.js} +3 -3
  25. package/chunks/{chunk-3LLEB5CU.js → chunk-24ZB2JNI.js} +2 -2
  26. package/chunks/{chunk-5NUKK2DT.js → chunk-25FMWESU.js} +47 -8
  27. package/chunks/{chunk-3WWPEFMX.js → chunk-2FQM443D.js} +82 -4
  28. package/chunks/{chunk-VEXUA6DX.js → chunk-2FRZ4ZP2.js} +13 -11
  29. package/chunks/{chunk-WBSJ6VPZ.js → chunk-2GNZTJRK.js} +3 -3
  30. package/chunks/{chunk-YP2K3WOS.js → chunk-2VWXODMY.js} +7 -4
  31. package/chunks/{chunk-L2A5VBDL.js → chunk-2ZCLSPE4.js} +9 -9
  32. package/chunks/{chunk-KEM7MWS7.js → chunk-366JNNY7.js} +6 -4
  33. package/chunks/{chunk-TKF4JINY.js → chunk-3FEGERVL.js} +1 -1
  34. package/chunks/{chunk-TDKUXSJO.js → chunk-3MW6PPA5.js} +1 -1
  35. package/chunks/{chunk-4LIPOIXS.js → chunk-3NHJLWOD.js} +1 -1
  36. package/chunks/{chunk-3UGMLA4V.js → chunk-3V7RNGLC.js} +10 -10
  37. package/chunks/{chunk-XICCGDWF.js → chunk-3WIPATJX.js} +2 -2
  38. package/chunks/chunk-43QUA4MC.js +135 -0
  39. package/chunks/{chunk-Q2SAQTEJ.js → chunk-4B7U3KQP.js} +1 -1
  40. package/chunks/{chunk-SFL6U7U7.js → chunk-4JFRCIMW.js} +2 -2
  41. package/chunks/{chunk-TPY6HW55.js → chunk-4OZY6LN2.js} +12 -6
  42. package/chunks/{chunk-IVFTLUZD.js → chunk-4SZ2636R.js} +3 -3
  43. package/chunks/{chunk-7CLLH5TI.js → chunk-4YS7RMCB.js} +6 -4
  44. package/chunks/{chunk-NQ272MQG.js → chunk-5XK2YELE.js} +7 -5
  45. package/chunks/{chunk-HX4WXX3H.js → chunk-65YADOPT.js} +89 -74
  46. package/chunks/chunk-6C3D7BKK.js +153 -0
  47. package/chunks/{chunk-DC4ZNGH4.js → chunk-6DB6UHY3.js} +3 -3
  48. package/chunks/{chunk-WZWTY7SG.js → chunk-6IW6SX75.js} +6 -6
  49. package/chunks/{chunk-HYHSMTRA.js → chunk-6XRR4RYH.js} +4 -4
  50. package/chunks/{chunk-AXPOOQAW.js → chunk-736AZVPL.js} +2 -2
  51. package/chunks/{chunk-UQGRJTDK.js → chunk-7JWD2EML.js} +3 -3
  52. package/chunks/{chunk-BUQN5LTI.js → chunk-7PQ65Z5F.js} +2 -2
  53. package/chunks/{chunk-43Y26NPF.js → chunk-A5EWSUYT.js} +3 -3
  54. package/chunks/{chunk-VQDWCQOE.js → chunk-ANKISCKU.js} +1 -0
  55. package/chunks/{chunk-NXUZFW3G.js → chunk-AUFTA63J.js} +1 -1
  56. package/chunks/{chunk-4QPVZA5J.js → chunk-AVVSSP4R.js} +3 -3
  57. package/chunks/{chunk-36SDZ2Q4.js → chunk-B3HGO6BB.js} +7 -5
  58. package/chunks/{chunk-6USYH3EU.js → chunk-B3XJFEEH.js} +5 -3
  59. package/chunks/{chunk-GSKX53AN.js → chunk-BA6AXQDA.js} +1 -1
  60. package/chunks/{chunk-FBY32737.js → chunk-BHHR5MEI.js} +4 -4
  61. package/chunks/{chunk-FX6PZBOV.js → chunk-BJ2TJY7V.js} +4 -4
  62. package/chunks/chunk-BKVPLSEI.js +133 -0
  63. package/chunks/chunk-BQMSZSG6.js +21 -0
  64. package/chunks/{chunk-BW2SMO6L.js → chunk-BXAU2UKM.js} +1 -1
  65. package/chunks/{chunk-3LMDSCLU.js → chunk-C4FISGDN.js} +2 -2
  66. package/chunks/{chunk-XFFRI3WM.js → chunk-CA63HYHU.js} +4 -2
  67. package/chunks/{chunk-IXO2OCIP.js → chunk-CKNBSVBC.js} +12 -8
  68. package/chunks/{chunk-347O2YZJ.js → chunk-CNG7ILRW.js} +39 -61
  69. package/chunks/chunk-CQULG2GJ.js +1330 -0
  70. package/chunks/{chunk-VVI7MK3V.js → chunk-CTGMXP4A.js} +9 -7
  71. package/chunks/{chunk-QT6Z2IBF.js → chunk-CYFQLCCG.js} +2 -2
  72. package/chunks/chunk-DBDJRURL.js +42 -0
  73. package/chunks/{chunk-X7AYIXC7.js → chunk-DJLCK66M.js} +5 -3
  74. package/chunks/chunk-DJYHML3Y.js +121 -0
  75. package/chunks/{chunk-MO4XID7S.js → chunk-DNDECZXY.js} +3 -3
  76. package/chunks/{chunk-D7JMO2GP.js → chunk-DNHL4S5B.js} +1 -1
  77. package/chunks/{chunk-WL36KHUQ.js → chunk-DTSG4EHA.js} +11 -9
  78. package/chunks/{chunk-M23GFJ5B.js → chunk-EHMLJKF5.js} +1 -1
  79. package/chunks/{chunk-TIGXX4PA.js → chunk-EKBQJ627.js} +2 -2
  80. package/chunks/{chunk-RSWBT7AZ.js → chunk-ERIBG3BX.js} +35 -551
  81. package/chunks/{chunk-PPJSG2PU.js → chunk-EVZT24AF.js} +6 -142
  82. package/chunks/{chunk-E2VSBAFA.js → chunk-FL2EJUOY.js} +5 -5
  83. package/chunks/{chunk-2C5TR6HN.js → chunk-FSNLTHNG.js} +1 -1
  84. package/chunks/chunk-FTKXJMQV.js +255 -0
  85. package/chunks/{chunk-TRZ22SG5.js → chunk-FXPP7VLM.js} +6 -4
  86. package/chunks/{chunk-CDDP4ONL.js → chunk-G3PBYAGM.js} +60 -134
  87. package/chunks/{chunk-AEWCOE64.js → chunk-GACWUBXV.js} +2 -2
  88. package/chunks/{chunk-OWUAZXXN.js → chunk-GHG4PQY2.js} +3 -3
  89. package/chunks/{chunk-VU3XMZ5I.js → chunk-GHZJQCSZ.js} +3 -3
  90. package/chunks/{chunk-FIJODK52.js → chunk-GJHAV2F7.js} +3 -3
  91. package/chunks/{chunk-36NRLIR6.js → chunk-GQZA7EYC.js} +11 -11
  92. package/chunks/{chunk-4JFLRHNE.js → chunk-GVHYY2RS.js} +1 -1
  93. package/chunks/{chunk-H6L4NEAT.js → chunk-GVMXFXQG.js} +1 -1
  94. package/chunks/{chunk-G45B3INR.js → chunk-GVTAFLWB.js} +2 -2
  95. package/chunks/{chunk-GJKP6XOB.js → chunk-GW5SJ3II.js} +16 -19
  96. package/chunks/{chunk-AQP3H22J.js → chunk-GY7FOHQP.js} +1 -1
  97. package/chunks/chunk-GZ5MEGA3.js +44 -0
  98. package/chunks/{chunk-FCPJXKDG.js → chunk-HA6DKD44.js} +9 -9
  99. package/chunks/{chunk-FEDFZBGR.js → chunk-HR4OWLKI.js} +3 -3
  100. package/chunks/{chunk-CXY6BICQ.js → chunk-HWKWZSZY.js} +162 -109
  101. package/chunks/{chunk-K4XMAIRX.js → chunk-I3NKMMHS.js} +12 -12
  102. package/chunks/{chunk-QMENOK5T.js → chunk-IH4TNUVS.js} +9 -7
  103. package/chunks/{chunk-FASYATAZ.js → chunk-IHUOMYBO.js} +1 -1
  104. package/chunks/{chunk-IZ2U57NY.js → chunk-IITTKFWM.js} +4 -2
  105. package/chunks/{chunk-M22WLKLI.js → chunk-IQGEZOGN.js} +7 -7
  106. package/chunks/chunk-IVPSLX4P.js +578 -0
  107. package/chunks/{chunk-BTICBRPL.js → chunk-IWMYX5LB.js} +3 -3
  108. package/chunks/{chunk-V4JJAVHQ.js → chunk-JCIDHFSB.js} +2 -2
  109. package/chunks/{chunk-PF7GAP6K.js → chunk-JENFAGVX.js} +65 -54
  110. package/chunks/{chunk-LO2UWNO5.js → chunk-JFEWKEKG.js} +3 -3
  111. package/chunks/{chunk-BHG3H6OZ.js → chunk-JJVDKHQU.js} +1 -1
  112. package/chunks/chunk-JYGESWZM.js +149 -0
  113. package/chunks/{chunk-KVC7HZWK.js → chunk-JYTJ5FCM.js} +1 -1
  114. package/chunks/{chunk-KVQ3QL4K.js → chunk-KCL6OMCX.js} +3 -3
  115. package/chunks/{chunk-3HTUE6ZR.js → chunk-KCRV4F3G.js} +4 -4
  116. package/chunks/{chunk-3WILPKTJ.js → chunk-KKPIFWTZ.js} +11 -6
  117. package/chunks/{chunk-CXONOVBN.js → chunk-KS6F6LZQ.js} +8 -6
  118. package/chunks/chunk-KSEKRQJO.js +253 -0
  119. package/chunks/{chunk-P42KMMU6.js → chunk-KWTLCPYY.js} +19 -6
  120. package/chunks/{chunk-U4AASWUQ.js → chunk-L4GF4IK2.js} +3 -3
  121. package/chunks/{chunk-5FK4MSHB.js → chunk-LADOQIYQ.js} +6 -4
  122. package/chunks/{chunk-DJXSOEFB.js → chunk-LAE6RY3L.js} +1 -1
  123. package/chunks/{chunk-CQPM66MG.js → chunk-LG475XAV.js} +4 -4
  124. package/chunks/{chunk-3BZI5GDP.js → chunk-M5YIHMXP.js} +6 -4
  125. package/chunks/{chunk-6WXVEDT2.js → chunk-MC2RYJMU.js} +5 -3
  126. package/chunks/chunk-MNU36NGH.js +233 -0
  127. package/chunks/{chunk-M4U2LTD2.js → chunk-MS4SXNJ6.js} +1 -1
  128. package/chunks/{chunk-ZFHKUQZ4.js → chunk-NEVUE35Z.js} +5 -5
  129. package/chunks/{chunk-DRAX5YAI.js → chunk-NFC4WTY2.js} +6 -4
  130. package/chunks/{chunk-SOLRBF7L.js → chunk-NSKNTJHU.js} +10 -10
  131. package/chunks/{chunk-B5TJK7B3.js → chunk-NZRX5WYI.js} +1 -1
  132. package/chunks/{chunk-YM6KUQ2S.js → chunk-O4A2B6V2.js} +3 -3
  133. package/chunks/{chunk-DX6JTDMR.js → chunk-OB57Y2WH.js} +1 -1
  134. package/chunks/{chunk-INN5ORKX.js → chunk-OLFTIODD.js} +1 -1
  135. package/chunks/chunk-PF3RVYRK.js +108 -0
  136. package/chunks/{chunk-WSJI6ODG.js → chunk-PGMF3LSO.js} +29 -27
  137. package/chunks/{chunk-OALXNGUA.js → chunk-PJ3GAHED.js} +10 -10
  138. package/chunks/{chunk-XWJFDJZK.js → chunk-PJSZXERN.js} +1 -1
  139. package/chunks/{chunk-GSAOVDTH.js → chunk-POMFSBEC.js} +4 -4
  140. package/chunks/{chunk-EWNKP4V4.js → chunk-PPVM7YLS.js} +1 -1
  141. package/chunks/{chunk-WK6DEH3Q.js → chunk-PQQV3OBW.js} +6 -4
  142. package/chunks/{chunk-BHVF3R6B.js → chunk-PZT2654P.js} +4 -4
  143. package/chunks/{chunk-ZSTCM3MX.js → chunk-Q5N5NEVT.js} +1 -1
  144. package/chunks/{chunk-KFFCDLKV.js → chunk-QE36VXWP.js} +1 -1
  145. package/chunks/{chunk-V545KI73.js → chunk-QPTE6BKL.js} +1 -1
  146. package/chunks/{chunk-5VQR2DD7.js → chunk-QQPRTJOM.js} +5 -3
  147. package/chunks/{chunk-QIPLWW6Q.js → chunk-QU7T5PKF.js} +1 -1
  148. package/chunks/{chunk-Y2KJC55Y.js → chunk-QYT7J3UM.js} +4 -4
  149. package/chunks/{chunk-SFHX5G2S.js → chunk-R34ALEH5.js} +14 -14
  150. package/chunks/{chunk-TXTCM3TC.js → chunk-R4DAJXOV.js} +18 -14
  151. package/chunks/{chunk-2GP6BQ2J.js → chunk-RA6PKQVM.js} +2 -2
  152. package/chunks/{chunk-HXUI5D4H.js → chunk-RDN5ITXF.js} +1 -1
  153. package/chunks/{chunk-G6UUOCUT.js → chunk-RMI3DKMV.js} +1 -1
  154. package/chunks/chunk-RSFNJ6UU.js +1252 -0
  155. package/chunks/{chunk-EDIDYZBT.js → chunk-RVT5L74D.js} +1 -1
  156. package/chunks/{chunk-GI7SLDOI.js → chunk-RXP5FVC4.js} +6 -6
  157. package/chunks/chunk-S34QJ6IR.js +290 -0
  158. package/chunks/chunk-S5BHLTHK.js +190 -0
  159. package/chunks/{chunk-2XRE4KE4.js → chunk-S7BE3FMA.js} +1 -1
  160. package/chunks/{chunk-7O5PYQ3M.js → chunk-SBP43AO6.js} +1 -1
  161. package/chunks/chunk-SLHYLVRW.js +1377 -0
  162. package/chunks/{chunk-HNFKYKHH.js → chunk-SMAAYU3F.js} +16 -16
  163. package/chunks/{chunk-KAYC5FBN.js → chunk-SNPYTKXI.js} +825 -234
  164. package/chunks/{chunk-IKBEIDOH.js → chunk-SOZJODVX.js} +13 -13
  165. package/chunks/{chunk-Y4NNIGYO.js → chunk-SSFOFDNL.js} +1 -1
  166. package/chunks/{chunk-WNQIJTOP.js → chunk-SSGVTJ2W.js} +243 -17
  167. package/chunks/{chunk-NFXXBWSE.js → chunk-SU64336V.js} +2 -2
  168. package/chunks/chunk-TFDCK56Y.js +154 -0
  169. package/chunks/{chunk-JRHKM3YQ.js → chunk-TS4JJ7NN.js} +2 -2
  170. package/chunks/{chunk-C4HBZQNH.js → chunk-U3MTHCJF.js} +1 -1
  171. package/chunks/{chunk-AUX2FL5T.js → chunk-UBQVV7MX.js} +625 -6
  172. package/chunks/{chunk-B6RMK4ED.js → chunk-UHBYCY7U.js} +9 -7
  173. package/chunks/{chunk-Y53DG2HA.js → chunk-UIWUFHRJ.js} +1 -1
  174. package/chunks/chunk-UQRDQCWF.js +102 -0
  175. package/chunks/{chunk-NKTMUPHJ.js → chunk-UVMU7DDP.js} +5 -3
  176. package/chunks/chunk-UXEI7POA.js +273 -0
  177. package/chunks/chunk-V2XJJTAB.js +228 -0
  178. package/chunks/chunk-VDNCKE2O.js +24 -0
  179. package/chunks/{chunk-YQQ2U7AS.js → chunk-VISF4MEY.js} +1 -1
  180. package/chunks/{chunk-RRI764F7.js → chunk-VPFKSRAB.js} +13 -11
  181. package/chunks/chunk-VPGRGNNH.js +578 -0
  182. package/chunks/{chunk-SYMXYRM5.js → chunk-W7JWIIRC.js} +1 -1
  183. package/chunks/{chunk-AZCTY64Z.js → chunk-WEUQIY3Q.js} +1 -1
  184. package/chunks/{chunk-SSWTA7CH.js → chunk-WIKUMTAB.js} +12 -12
  185. package/chunks/chunk-WL2CTQGT.js +1625 -0
  186. package/chunks/chunk-WL2V7PTE.js +78 -0
  187. package/chunks/{chunk-Q54O3EIA.js → chunk-WSZ6VS24.js} +45 -30
  188. package/chunks/{chunk-UZSB57EV.js → chunk-WX4W3FCV.js} +5 -5
  189. package/chunks/{chunk-OSG23MR3.js → chunk-X3T5IOX6.js} +2 -2
  190. package/chunks/{chunk-EIBECN2J.js → chunk-XGHVF5DC.js} +5 -5
  191. package/chunks/{chunk-D3KVGQUV.js → chunk-XJ52OCCN.js} +4 -4
  192. package/chunks/{chunk-YZXSDPOQ.js → chunk-XMAIUTED.js} +84 -40
  193. package/chunks/{chunk-QGEISOJ2.js → chunk-XQBZZVJA.js} +3 -3
  194. package/chunks/{chunk-OZEV3R3S.js → chunk-XYAB5R6E.js} +3 -3
  195. package/chunks/chunk-XZA32HII.js +19 -0
  196. package/chunks/{chunk-4FLUQWJ4.js → chunk-Y3Q5OK4D.js} +1 -1
  197. package/chunks/chunk-YDERQ7ZV.js +248 -0
  198. package/chunks/{chunk-AKRSSKUT.js → chunk-YFHX6MOF.js} +10 -10
  199. package/chunks/{chunk-ZMYKNKET.js → chunk-YPJZDZMP.js} +3 -3
  200. package/chunks/{chunk-3XBUCOWS.js → chunk-YSD6IY6F.js} +2 -2
  201. package/chunks/{chunk-CH2YDT6X.js → chunk-YVYK3JYU.js} +5 -3
  202. package/chunks/{chunk-YL3UJML3.js → chunk-YWDVNBGE.js} +4 -4
  203. package/chunks/{chunk-C3T6HPNM.js → chunk-ZGADNVME.js} +5 -5
  204. package/chunks/{chunk-M3JGHRMQ.js → chunk-ZJ7KIWG5.js} +1 -1
  205. package/chunks/{chunk-QHSOINX6.js → chunk-ZJBYZN5D.js} +2 -2
  206. package/chunks/{chunk-SYROIHU7.js → chunk-ZRQGTRHA.js} +4 -2
  207. package/chunks/{chunk-NCPFOLM2.js → chunk-ZTBP4SFC.js} +78 -18
  208. package/chunks/{chunk-ZAFYHRVY.js → chunk-ZYDMQCQP.js} +4 -274
  209. package/chunks/clip-audio-SH4L7AEY.js +255 -0
  210. package/chunks/clip-image-BQRPECIS.js +239 -0
  211. package/chunks/clip-video-JIRMV5IH.js +277 -0
  212. package/chunks/{codex-subagent-executor-AEAIQZDC.js → codex-subagent-executor-Y5ILNWG6.js} +92 -68
  213. package/chunks/config-3X4AXU45.js +21 -0
  214. package/chunks/config-T5RO4NJV.js +17 -0
  215. package/chunks/config-utils-3YNEDKT4.js +151 -0
  216. package/chunks/contextCommand-7JVXVYN4.js +144 -0
  217. package/chunks/convert-image-D52K2FFB.js +231 -0
  218. package/chunks/{core-runtime-ZI4RTOJQ.js → core-runtime-6IZNPJUN.js} +92 -67
  219. package/chunks/{create-sub-session-BBWFQARJ.js → create-sub-session-5XHUO2PW.js} +90 -66
  220. package/chunks/{create-sub-session-MSGNIM37.js → create-sub-session-6EDEANCD.js} +7 -5
  221. package/chunks/{cron-create-U2JJ5CCF.js → cron-create-GS7ORRO6.js} +8 -5
  222. package/chunks/{cron-delete-7DM4LJWD.js → cron-delete-3GGDNNXD.js} +8 -5
  223. package/chunks/{cron-list-VCUSZK2Y.js → cron-list-EX27DW4H.js} +8 -5
  224. package/chunks/{daemon-git-worktree-guard-KECEMV6A.js → daemon-git-worktree-guard-BULXRIDA.js} +90 -66
  225. package/chunks/daemon-status-provider-VSVXVY4O.js +155 -0
  226. package/chunks/daemon-trust-policy-WVSDS2WT.js +150 -0
  227. package/chunks/{daemon-trust-policy-monitor-546N5ZVL.js → daemon-trust-policy-monitor-HXQ2GLTX.js} +95 -71
  228. package/chunks/deferred-core-runtime-EXI7LXLE.js +153 -0
  229. package/chunks/{display-image-QTHALY6N.js → display-image-FTWDRBOP.js} +10 -7
  230. package/chunks/{dist-BNW423XT.js → dist-CXDHIHN4.js} +5 -0
  231. package/chunks/downsample-audio-LPDWX6GF.js +217 -0
  232. package/chunks/downsample-image-A5JEYIV5.js +249 -0
  233. package/chunks/downscale-video-4W5BX5KO.js +249 -0
  234. package/chunks/{earlyInputCapture-BXP7V2P3.js → earlyInputCapture-UJ3KFVZQ.js} +3 -2
  235. package/chunks/{edit-CMSQB7NP.js → edit-JJ34NKRC.js} +68 -56
  236. package/chunks/{en-56QLKXS2.js → en-FCK6MBTI.js} +16 -0
  237. package/chunks/{enter-worktree-DA6A4XC5.js → enter-worktree-QK7DR5EF.js} +12 -9
  238. package/chunks/{enterPlanMode-UDPMNESD.js → enterPlanMode-H6FBPVLB.js} +62 -51
  239. package/chunks/environment-7DMLANWW.js +167 -0
  240. package/chunks/errors-OH3DYEDL.js +151 -0
  241. package/chunks/{exec-RPKEY6HP.js → exec-7CFNHYCV.js} +31 -9
  242. package/chunks/{exit-worktree-4H6Z2VQI.js → exit-worktree-62COYIHF.js} +14 -10
  243. package/chunks/exitPlanMode-5YR5VWXS.js +102 -0
  244. package/chunks/extract-audio-GSSZQV6G.js +229 -0
  245. package/chunks/extract-keyframes-Q6DRMQAJ.js +621 -0
  246. package/chunks/{fast-path-F2CYDDZ4.js → fast-path-4DS2GR5O.js} +5 -5
  247. package/chunks/ffmpeg-N4LIIVNR.js +21 -0
  248. package/chunks/{glob-Z2JMJKKN.js → glob-GFID3F3R.js} +63 -51
  249. package/chunks/{goal-tools-HXVVLGCV.js → goal-tools-2OB5WPNH.js} +59 -49
  250. package/chunks/{grep-H2I33VAO.js → grep-JB5DGQ3B.js} +13 -9
  251. package/chunks/handleAutoUpdate-5OQL4YBU.js +147 -0
  252. package/chunks/i18n-TV5G7SXO.js +164 -0
  253. package/chunks/{image-gen-HIAZCB5T.js → image-gen-LX3C4V3R.js} +16 -11
  254. package/chunks/initializer-R2EI4UJ6.js +151 -0
  255. package/chunks/installationInfo-HYOWC3BN.js +145 -0
  256. package/chunks/{keychain-token-storage-NQ5XWIPX.js → keychain-token-storage-ZZNRE6D4.js} +3 -2
  257. package/chunks/list-ORJQQUNR.js +154 -0
  258. package/chunks/{list-agents-EWDCEPIW.js → list-agents-HS6HH4DJ.js} +10 -7
  259. package/chunks/{llm-LSUBOJAR.js → llm-YKBQVN7S.js} +159 -134
  260. package/chunks/{llm-content-generator-MLIONRXE.js → llm-content-generator-QJBXJRKT.js} +11 -9
  261. package/chunks/loadedSettingsAdapter-4FQH6Y3D.js +148 -0
  262. package/chunks/{loggingContentGenerator-TUPEXFMM.js → loggingContentGenerator-DEOANG3F.js} +74 -63
  263. package/chunks/{loop-wakeup-ZBVRI6VH.js → loop-wakeup-4B7OY3TV.js} +9 -6
  264. package/chunks/{ls-6ZB3BEIR.js → ls-EZ5PSWU2.js} +8 -5
  265. package/chunks/{lsp-M54FQARP.js → lsp-DYFFHKB3.js} +6 -3
  266. package/chunks/{managed-npm-update-WEA5XMFZ.js → managed-npm-update-36U25ZEZ.js} +91 -67
  267. package/chunks/mcp-ZI7LXLAQ.js +148 -0
  268. package/chunks/memory-side-query-DRV7FXK4.js +221 -0
  269. package/chunks/model-call-collection-RX7C24YP.js +171 -0
  270. package/chunks/model-configuration-3JIO6IRV.js +161 -0
  271. package/chunks/modelConfigUtils-2BJQI2S4.js +140 -0
  272. package/chunks/{monitor-CI7YE7MT.js → monitor-LXQRI2IF.js} +63 -51
  273. package/chunks/nonInteractiveCli-HRXVUV2H.js +235 -0
  274. package/chunks/nonInteractiveToolExecutor-QPAIKNPL.js +101 -0
  275. package/chunks/{notebook-edit-3WCVRNGL.js → notebook-edit-5CM3VYNK.js} +63 -52
  276. package/chunks/ocr-image-Q4HYJ3U7.js +252 -0
  277. package/chunks/omni-A5XLPNSH.js +147 -0
  278. package/chunks/{openaiContentGenerator-OGILGUZE.js → openaiContentGenerator-O5G3QCHX.js} +36 -31
  279. package/chunks/{openaiResponsesContentGenerator-NXOXUPFM.js → openaiResponsesContentGenerator-W2V7AYVE.js} +12 -10
  280. package/chunks/pidfile-MI5FGYF5.js +151 -0
  281. package/chunks/{processUtils-O4II3RYH.js → processUtils-EWKUPVJH.js} +2 -2
  282. package/chunks/prompt-terminal-ledger-5HEXZMWT.js +143 -0
  283. package/chunks/{qwenContentGenerator-I4LRYADV.js → qwenContentGenerator-HHNDIW2Q.js} +70 -60
  284. package/chunks/{qwenOAuth2-3J66TOT5.js → qwenOAuth2-GD3UIYUP.js} +9 -8
  285. package/chunks/reactive-degrade-KWCJUHXH.js +375 -0
  286. package/chunks/read-file-ZQKBXJSH.js +37 -0
  287. package/chunks/{read-mcp-resource-LPSWXVOD.js → read-mcp-resource-INJIV3UC.js} +8 -4
  288. package/chunks/recall-media-memory-tool-PEE2BWRY.js +198 -0
  289. package/chunks/{record-artifact-L3CFJOMA.js → record-artifact-KKW3AIMJ.js} +6 -4
  290. package/chunks/record-source-2VSQINX6.js +24 -0
  291. package/chunks/{report-findings-LY5HQY4K.js → report-findings-OZSLWYAS.js} +7 -5
  292. package/chunks/{request-shutdown-53SNYGVR.js → request-shutdown-3RUGTWRR.js} +12 -9
  293. package/chunks/resumeHistoryUtils-5V3KISJ6.js +156 -0
  294. package/chunks/ripGrep-F5MM4HGA.js +43 -0
  295. package/chunks/{run-qwen-serve-ZVEKGS7Y.js → run-qwen-serve-3K3D5MSR.js} +70 -70
  296. package/chunks/{runtime-SJCRYNPA.js → runtime-FAWN3GQH.js} +98 -74
  297. package/chunks/sandbox-BPRE7KYF.js +170 -0
  298. package/chunks/sandboxConfig-V3OHETXW.js +138 -0
  299. package/chunks/scheduled-tasks-LB2PINB3.js +167 -0
  300. package/chunks/scheduler-NHAWKARI.js +160 -0
  301. package/chunks/{sdk-exporters-http-DR4G663K.js → sdk-exporters-http-SWXTEEVT.js} +3 -2
  302. package/chunks/{sdk-impl-SJR26MQF.js → sdk-impl-FK4JY6LX.js} +5 -4
  303. package/chunks/{send-message-DN76MXDX.js → send-message-TLF36UW2.js} +16 -13
  304. package/chunks/serve-UQL5X5K7.js +156 -0
  305. package/chunks/{server-UHMKPCAZ.js → server-3HUUEDUC.js} +286 -261
  306. package/chunks/{session-ZLUK7E4P.js → session-XODWSTJ3.js} +151 -127
  307. package/chunks/session-attachments-root-BENUIMZM.js +141 -0
  308. package/chunks/{session-pr-refresh-3OMTQWCZ.js → session-pr-refresh-CSRULMTI.js} +95 -71
  309. package/chunks/{settings-P4DHIIUP.js → settings-42FFX5TK.js} +94 -70
  310. package/chunks/{shell-IMFUVQQ5.js → shell-NLNU2TPF.js} +59 -49
  311. package/chunks/{skill-NB5RJGZW.js → skill-KIRNNJMK.js} +22 -17
  312. package/chunks/skill-settings-MPHPE43F.js +164 -0
  313. package/chunks/spawnChannel-TXNLXP2R.js +152 -0
  314. package/chunks/standalone-update-XAC364AM.js +156 -0
  315. package/chunks/{start-opentui-ui-JKAIWGF7.js → start-opentui-ui-3OLDXRMX.js} +223 -189
  316. package/chunks/{startInteractiveUI-YRPOT6GH.js → startInteractiveUI-UB2HRTV7.js} +339 -295
  317. package/chunks/storage-VZECDJNX.js +17 -0
  318. package/chunks/{syntheticOutput-EX5L5GYI.js → syntheticOutput-SSXJ2NEY.js} +5 -3
  319. package/chunks/task-create-EEMYF6LY.js +30 -0
  320. package/chunks/{task-list-ZLJSMRFA.js → task-list-GA5GOR74.js} +9 -6
  321. package/chunks/{task-stop-MD7P6QGK.js → task-stop-3MXTDL7H.js} +6 -3
  322. package/chunks/{task-update-3LSYQDRW.js → task-update-JSBHKL4L.js} +16 -13
  323. package/chunks/{team-create-2XTBYRJF.js → team-create-VES6TOBA.js} +62 -51
  324. package/chunks/{team-delete-RIDINW6I.js → team-delete-V2CROTI6.js} +9 -6
  325. package/chunks/{team-plan-approval-CFNWW7ZQ.js → team-plan-approval-ZMCHBBUM.js} +61 -50
  326. package/chunks/terminal-image-renderer-73NDY7OJ.js +156 -0
  327. package/chunks/theme-manager-YG3L7BV6.js +140 -0
  328. package/chunks/{todoWrite-XSTG2VT5.js → todoWrite-CMBHPR66.js} +8 -5
  329. package/chunks/tool-result-media-V3LNDB5Q.js +45 -0
  330. package/chunks/{tool-search-ZHTJU2MV.js → tool-search-7XR7RHMB.js} +43 -21
  331. package/chunks/total-session-admission-QUZYGACG.js +151 -0
  332. package/chunks/transcribe-audio-AJQZPNEV.js +30 -0
  333. package/chunks/trustedFolders-QRII2BL7.js +160 -0
  334. package/chunks/understand-video-segments-5TMRDQUB.js +438 -0
  335. package/chunks/{update-relaunch-LI7GRP36.js → update-relaunch-735DXN5P.js} +5 -5
  336. package/chunks/updateCheck-FXXOM4YS.js +156 -0
  337. package/chunks/upload-cache-5YULQVZZ.js +17 -0
  338. package/chunks/upload-config-CKDIXTPK.js +25 -0
  339. package/chunks/useAutoAcceptIndicator-KXXTKOGD.js +158 -0
  340. package/chunks/{validateNonInterActiveAuth-YFPCYYNL.js → validateNonInterActiveAuth-DXCBDHIX.js} +143 -119
  341. package/chunks/{version-4MTL4JVU.js → version-76T4NBMQ.js} +1 -1
  342. package/chunks/{web-fetch-O6RG6ISB.js → web-fetch-UIDZX5RN.js} +27 -20
  343. package/chunks/{web-search-JHAXVEMD.js → web-search-VETWDOUJ.js} +14 -11
  344. package/chunks/{web-shell-static-FFWCUUZS.js → web-shell-static-XSCCMXKQ.js} +3 -3
  345. package/chunks/{workflow-O7L6VDYU.js → workflow-MHYBJHPP.js} +63 -52
  346. package/chunks/workspace-providers-status-WFBT3LS5.js +154 -0
  347. package/chunks/{workspace-registration-store-7G4E7YPY.js → workspace-registration-store-M3WKKBJQ.js} +1 -1
  348. package/chunks/workspace-registry-FIUB7MGD.js +160 -0
  349. package/chunks/workspace-runtime-coordinator-5Z7M36W7.js +163 -0
  350. package/chunks/workspace-service-TP4VRTZF.js +165 -0
  351. package/chunks/workspace-skills-status-CILWVQHU.js +151 -0
  352. package/chunks/{workspace-trust-reconciler-XEBW5FUL.js → workspace-trust-reconciler-2OPSTQNS.js} +98 -74
  353. package/chunks/write-file-N7NBKIYD.js +107 -0
  354. package/chunks/{zh-TW-S3YTQ4DS.js → zh-TW-SRB5QSER.js} +16 -0
  355. package/chunks/{zh-F76MZTL3.js → zh-UBQIFP4A.js} +16 -0
  356. package/chunks/{zoom-image-RDPRTP4B.js → zoom-image-3GHVMYEW.js} +18 -13
  357. package/cli.js +14 -14
  358. package/export-transcript-document.js +3 -3
  359. package/locales/en.js +18 -0
  360. package/locales/zh-TW.js +17 -0
  361. package/locales/zh.js +17 -0
  362. package/package.json +3 -3
  363. package/web-shell/assets/{abnfDiagram-VCTEODGH-RxykUDmi.js → abnfDiagram-VCTEODGH-vfbwxn7H.js} +1 -1
  364. package/web-shell/assets/{arc-CZpgGCJC.js → arc-BT0KMrP5.js} +1 -1
  365. package/web-shell/assets/{architectureDiagram-5GKGNRK7-BHSMzNDT.js → architectureDiagram-5GKGNRK7-B3TlGgP4.js} +1 -1
  366. package/web-shell/assets/{blockDiagram-NRAW4CY4-Bn4mF9SZ.js → blockDiagram-NRAW4CY4-DnwF5xi-.js} +1 -1
  367. package/web-shell/assets/{c4Diagram-UCG6FXSJ-CBM-Bj6t.js → c4Diagram-UCG6FXSJ-8qvMMfFg.js} +1 -1
  368. package/web-shell/assets/channel-CTm0xByY.js +1 -0
  369. package/web-shell/assets/{chunk-2Q5K7J3B-D5Fin58O.js → chunk-2Q5K7J3B-CHM51UX6.js} +1 -1
  370. package/web-shell/assets/{chunk-5VM5RSS4-CY05weF7.js → chunk-5VM5RSS4-BNXaOtyN.js} +1 -1
  371. package/web-shell/assets/{chunk-F27PBJKO-3neZnj5Y.js → chunk-F27PBJKO-DT-vcF3X.js} +1 -1
  372. package/web-shell/assets/{chunk-G27WJ6UU-Cd7EU4BE.js → chunk-G27WJ6UU-BXz8438J.js} +1 -1
  373. package/web-shell/assets/{chunk-JWPE2WC7-DwK1mqFw.js → chunk-JWPE2WC7-CP2ozL3M.js} +1 -1
  374. package/web-shell/assets/{chunk-LCL6LL3I-Sl7vY22C.js → chunk-LCL6LL3I-DTAWXvja.js} +1 -1
  375. package/web-shell/assets/{chunk-POPQ4Y6H-BXNzpbVg.js → chunk-POPQ4Y6H-DZENJpGx.js} +1 -1
  376. package/web-shell/assets/{chunk-SVP7TREG-DjjButcp.js → chunk-SVP7TREG-Dl8djRwv.js} +1 -1
  377. package/web-shell/assets/{chunk-XXDRQBXY-DNOiCjOJ.js → chunk-XXDRQBXY-B3lJllMA.js} +1 -1
  378. package/web-shell/assets/classDiagram-DTDB5LWJ-DhMuMK_E.js +1 -0
  379. package/web-shell/assets/classDiagram-v2-JRS7N3AN-DhMuMK_E.js +1 -0
  380. package/web-shell/assets/{cose-bilkent-JH36ORCC-BUnker7a.js → cose-bilkent-JH36ORCC-DeosJDcB.js} +1 -1
  381. package/web-shell/assets/{cynefin-OW5HDTMX-DcUgdWE5.js → cynefin-OW5HDTMX-BvqcLoHm.js} +1 -1
  382. package/web-shell/assets/{cynefinDiagram-5FMLGOSQ-CvDKsZsL.js → cynefinDiagram-5FMLGOSQ-BYS0pmSs.js} +1 -1
  383. package/web-shell/assets/{dagre-3AP2YEHR-jpCmUbr1.js → dagre-3AP2YEHR-IDScuL-R.js} +1 -1
  384. package/web-shell/assets/{diagram-S7CK7UJ4-DBe_bKE5.js → diagram-S7CK7UJ4-EYNlkkKJ.js} +1 -1
  385. package/web-shell/assets/{diagram-UQ7AKVKN-oXvPpDgs.js → diagram-UQ7AKVKN-D3x9g8Ep.js} +1 -1
  386. package/web-shell/assets/{diagram-VSXAHHWV-BD7-_SGh.js → diagram-VSXAHHWV-C35O1dtR.js} +1 -1
  387. package/web-shell/assets/{diagram-VX7I27RA-DOJL0wub.js → diagram-VX7I27RA-XvMv2aCN.js} +1 -1
  388. package/web-shell/assets/{diagram-Z3DM3KII-DRIiodDD.js → diagram-Z3DM3KII-CeryNvru.js} +1 -1
  389. package/web-shell/assets/{ebnfDiagram-PWID7BFC-Db31Ulmb.js → ebnfDiagram-PWID7BFC-DAmepjvB.js} +1 -1
  390. package/web-shell/assets/{erDiagram-SSCWMZ5O-CVHhwI2_.js → erDiagram-SSCWMZ5O-BkGfBZt_.js} +1 -1
  391. package/web-shell/assets/{flowDiagram-A5DVABFB-DWOFy1FK.js → flowDiagram-A5DVABFB-CzUCgun9.js} +1 -1
  392. package/web-shell/assets/{ganttDiagram-EL5Y4UJY-C0sxQtPd.js → ganttDiagram-EL5Y4UJY-BIFST90r.js} +1 -1
  393. package/web-shell/assets/{gitGraphDiagram-WWUBYQGX-CNituBYC.js → gitGraphDiagram-WWUBYQGX-jVvRSGcu.js} +1 -1
  394. package/web-shell/assets/{index-B15NlwB8.js → index-M1TfOjx2.js} +457 -457
  395. package/web-shell/assets/{index-gm9tLk7h.js → index-krCDFzE6.js} +1 -1
  396. package/web-shell/assets/{infoDiagram-RXCK75RN-CxhJYtIR.js → infoDiagram-RXCK75RN-DsU7vA4Q.js} +1 -1
  397. package/web-shell/assets/{ishikawaDiagram-5VMMS53U-By2mchUy.js → ishikawaDiagram-5VMMS53U-K9mTNAbN.js} +1 -1
  398. package/web-shell/assets/{journeyDiagram-EYS64GPL-CVH-OweI.js → journeyDiagram-EYS64GPL-BKuHLGxv.js} +1 -1
  399. package/web-shell/assets/{kanban-definition-3QL26DDD-Cc9dQXLy.js → kanban-definition-3QL26DDD-CXG9frQ_.js} +1 -1
  400. package/web-shell/assets/{layout-C_60ysHw.js → layout-6G_l7UoH.js} +1 -1
  401. package/web-shell/assets/{linear-BvAVfqwu.js → linear-DYpvB2mh.js} +1 -1
  402. package/web-shell/assets/{mermaid.core-C3CoBKAc.js → mermaid.core-Sj3dJttQ.js} +6 -6
  403. package/web-shell/assets/{mindmap-definition-FBJOCRG2-Cuu8Q8LM.js → mindmap-definition-FBJOCRG2-DNJ1e6qd.js} +1 -1
  404. package/web-shell/assets/{pegDiagram-XKGWAZYB-DmAeyDO2.js → pegDiagram-XKGWAZYB-D-KPklHv.js} +1 -1
  405. package/web-shell/assets/{pieDiagram-E7YTZNPT-B7vbB_xv.js → pieDiagram-E7YTZNPT-BQPm03g2.js} +1 -1
  406. package/web-shell/assets/{quadrantDiagram-AXDQQJYC-BqOBkRR7.js → quadrantDiagram-AXDQQJYC-BubBXSqD.js} +1 -1
  407. package/web-shell/assets/{railroadDiagram-O6MQD6OU-sI06lZIu.js → railroadDiagram-O6MQD6OU-DatD6KIT.js} +1 -1
  408. package/web-shell/assets/{requirementDiagram-EFPCY7ZU-Bg13d10S.js → requirementDiagram-EFPCY7ZU-DiQ6jsZY.js} +1 -1
  409. package/web-shell/assets/{sankeyDiagram-P5KCCOFB-WFOzZHrR.js → sankeyDiagram-P5KCCOFB-C07fyxbH.js} +1 -1
  410. package/web-shell/assets/{sequenceDiagram-WJ2MYXX4-CCdRbA4E.js → sequenceDiagram-WJ2MYXX4-DWXtsWzI.js} +1 -1
  411. package/web-shell/assets/{sizeCapture-X5ZJPWSS-BH5F3bGg.js → sizeCapture-X5ZJPWSS-B0cQ1v0l.js} +1 -1
  412. package/web-shell/assets/{stateDiagram-HBIQ2CUA-NwS2X3QB.js → stateDiagram-HBIQ2CUA-zHgWc00n.js} +1 -1
  413. package/web-shell/assets/stateDiagram-v2-4QOOHH4V-C-3ZC2nf.js +1 -0
  414. package/web-shell/assets/{swimlanes-XN3QIQJK-Bm38pM28.js → swimlanes-XN3QIQJK-Dnrrhu0H.js} +1 -1
  415. package/web-shell/assets/swimlanesDiagram-VK2B7HYN-Ded1L5cw.js +8 -0
  416. package/web-shell/assets/{timeline-definition-24CTP7MA-Do-agLSo.js → timeline-definition-24CTP7MA-8BV7W2Xq.js} +1 -1
  417. package/web-shell/assets/{vennDiagram-4TSXK5OY-aggLfZzl.js → vennDiagram-4TSXK5OY-tmBBtlnj.js} +1 -1
  418. package/web-shell/assets/{wardleyDiagram-VM6X3IG4-D5JR3mXX.js → wardleyDiagram-VM6X3IG4-Cq96T3gb.js} +1 -1
  419. package/web-shell/assets/{xychartDiagram-S5SC5T6Z-DhtLDuXs.js → xychartDiagram-S5SC5T6Z-Dpzx_ZGQ.js} +1 -1
  420. package/web-shell/index.html +1 -1
  421. package/chunks/MaxSizedBox-FCF6M53W.js +0 -124
  422. package/chunks/acp-subagent-executor-TND6W2O5.js +0 -140
  423. package/chunks/agent-headless-EJ4QOUSM.js +0 -94
  424. package/chunks/bridge-MUX5YJZT.js +0 -132
  425. package/chunks/channel-settings-store-7CBIRZER.js +0 -134
  426. package/chunks/config-utils-KX2YS725.js +0 -127
  427. package/chunks/contextCommand-RV6Y5LNJ.js +0 -120
  428. package/chunks/daemon-status-provider-NULJNAEV.js +0 -131
  429. package/chunks/daemon-trust-policy-S4KWGPV3.js +0 -126
  430. package/chunks/deferred-core-runtime-T23ZT443.js +0 -128
  431. package/chunks/environment-TSQJUTPV.js +0 -143
  432. package/chunks/errors-RIVYJS6T.js +0 -127
  433. package/chunks/exitPlanMode-BYBBFN2T.js +0 -92
  434. package/chunks/handleAutoUpdate-FZP45KOR.js +0 -123
  435. package/chunks/i18n-OTB62AKW.js +0 -140
  436. package/chunks/initializer-4JXZEC4B.js +0 -127
  437. package/chunks/installationInfo-2IJV5QKC.js +0 -121
  438. package/chunks/list-KQSQ4A5G.js +0 -130
  439. package/chunks/loadedSettingsAdapter-TZTTNRHI.js +0 -124
  440. package/chunks/mcp-TFDTUPIA.js +0 -124
  441. package/chunks/model-configuration-ZCAKKIOF.js +0 -137
  442. package/chunks/modelConfigUtils-J3ZPW7ZK.js +0 -116
  443. package/chunks/nonInteractiveCli-GPT3TVOK.js +0 -211
  444. package/chunks/pidfile-GBTBIGHF.js +0 -127
  445. package/chunks/prompt-terminal-ledger-ILIXZI3E.js +0 -119
  446. package/chunks/read-file-G4XKW2CS.js +0 -31
  447. package/chunks/record-source-2GSY5JD5.js +0 -22
  448. package/chunks/resumeHistoryUtils-YPJU4XFE.js +0 -132
  449. package/chunks/ripGrep-AAKMALLM.js +0 -39
  450. package/chunks/sandbox-UIXL423Z.js +0 -146
  451. package/chunks/sandboxConfig-CY343YNJ.js +0 -114
  452. package/chunks/scheduled-tasks-5UGBEVNZ.js +0 -143
  453. package/chunks/scheduler-GCZYLZ2P.js +0 -136
  454. package/chunks/serve-2XXQLVK2.js +0 -132
  455. package/chunks/session-attachments-root-DHQM5IEZ.js +0 -117
  456. package/chunks/skill-settings-IXG5CTQO.js +0 -140
  457. package/chunks/spawnChannel-Q3YALTCJ.js +0 -128
  458. package/chunks/standalone-update-H5OJ7MM7.js +0 -132
  459. package/chunks/task-create-75HVPEAH.js +0 -28
  460. package/chunks/terminal-image-renderer-UDPJPGPQ.js +0 -132
  461. package/chunks/theme-manager-SK57EKMO.js +0 -116
  462. package/chunks/total-session-admission-UUZBDQCG.js +0 -127
  463. package/chunks/trustedFolders-4LDBLNTS.js +0 -136
  464. package/chunks/updateCheck-PKSSORPO.js +0 -132
  465. package/chunks/useAutoAcceptIndicator-I32UEQPI.js +0 -134
  466. package/chunks/workspace-providers-status-WRX6CJM4.js +0 -130
  467. package/chunks/workspace-registry-SXIMGT4D.js +0 -136
  468. package/chunks/workspace-runtime-coordinator-7DOEHXYT.js +0 -139
  469. package/chunks/workspace-service-HDXOZMYC.js +0 -141
  470. package/chunks/workspace-skills-status-VN4L37CA.js +0 -127
  471. package/chunks/write-file-LKX4ETIO.js +0 -97
  472. package/web-shell/assets/channel-DFYs_LlK.js +0 -1
  473. package/web-shell/assets/classDiagram-DTDB5LWJ-DnGrKXoM.js +0 -1
  474. package/web-shell/assets/classDiagram-v2-JRS7N3AN-DnGrKXoM.js +0 -1
  475. package/web-shell/assets/stateDiagram-v2-4QOOHH4V-1aU2JZXO.js +0 -1
  476. package/web-shell/assets/swimlanesDiagram-VK2B7HYN-Dp-u6kQG.js +0 -8
  477. package/chunks/{chunk-XAJZFGD2.js → chunk-PXXYQOZO.js} +8 -8
  478. package/chunks/{chunk-WVURIAEE.js → chunk-SVWWF5TZ.js} +3 -3
  479. package/chunks/{dist-G5UMXIGF.js → dist-I6D6XOWV.js} +1 -1
  480. package/chunks/{dist-UXVNLQHG.js → dist-VIKOMAGG.js} +3 -3
@@ -2,22 +2,24 @@
2
2
  "use strict";
3
3
  import {
4
4
  JsonFormatter
5
- } from "./chunk-347O2YZJ.js";
5
+ } from "./chunk-CNG7ILRW.js";
6
6
  import {
7
7
  parseAndFormatApiError
8
- } from "./chunk-KAYC5FBN.js";
8
+ } from "./chunk-SNPYTKXI.js";
9
9
  import {
10
10
  stripAnsiAndControl
11
- } from "./chunk-6USYH3EU.js";
11
+ } from "./chunk-B3XJFEEH.js";
12
+ import {
13
+ createDebugLogger
14
+ } from "./chunk-ZYDMQCQP.js";
12
15
  import {
13
16
  FatalBudgetExceededError,
14
17
  FatalCancellationError,
15
- FatalTurnLimitedError,
16
- createDebugLogger
17
- } from "./chunk-ZAFYHRVY.js";
18
+ FatalTurnLimitedError
19
+ } from "./chunk-S34QJ6IR.js";
18
20
  import {
19
21
  runExitCleanup
20
- } from "./chunk-H6L4NEAT.js";
22
+ } from "./chunk-GVMXFXQG.js";
21
23
  import {
22
24
  writeStderrLine
23
25
  } from "./chunk-7FA2II6K.js";
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  expandHomeDir
5
- } from "./chunk-ZAFYHRVY.js";
5
+ } from "./chunk-ZYDMQCQP.js";
6
6
  import {
7
7
  init_esbuild_shims
8
8
  } from "./chunk-5O2XNYP6.js";
@@ -0,0 +1,102 @@
1
+ // Force strict mode and setup for ESM
2
+ "use strict";
3
+ import {
4
+ DashScopeOpenAICompatibleProvider
5
+ } from "./chunk-2VWXODMY.js";
6
+ import {
7
+ init_esbuild_shims
8
+ } from "./chunk-5O2XNYP6.js";
9
+ import {
10
+ __name
11
+ } from "./chunk-J2S4EL5Y.js";
12
+
13
+ // packages/core/src/omni/upload-config.ts
14
+ init_esbuild_shims();
15
+ var QWEN_OAUTH_PLACEHOLDER_API_KEY = "QWEN_OAUTH_DYNAMIC_TOKEN";
16
+ var ENV_VAR_NAME_PATTERN = /^[A-Za-z_][A-Za-z0-9_]*$/;
17
+ var OmniUploadConfigError = class extends Error {
18
+ static {
19
+ __name(this, "OmniUploadConfigError");
20
+ }
21
+ constructor(message) {
22
+ super(message);
23
+ this.name = "OmniUploadConfigError";
24
+ }
25
+ };
26
+ function normalizeDedicatedOmniUploadConfig(raw, env = process.env) {
27
+ const configured = raw.baseUrl !== void 0 || raw.apiKeyEnv !== void 0 || raw.model !== void 0;
28
+ if (!configured) return void 0;
29
+ const baseUrl = raw.baseUrl?.trim();
30
+ const apiKeyEnv = raw.apiKeyEnv?.trim();
31
+ const model = raw.model?.trim();
32
+ if (!baseUrl || !apiKeyEnv || !model) {
33
+ throw new OmniUploadConfigError(
34
+ "omni.delivery.upload.baseUrl, apiKeyEnv, and model must all be set when a dedicated upload channel is configured."
35
+ );
36
+ }
37
+ if (!ENV_VAR_NAME_PATTERN.test(apiKeyEnv)) {
38
+ throw new OmniUploadConfigError(
39
+ "omni.delivery.upload.apiKeyEnv must be a valid environment variable name."
40
+ );
41
+ }
42
+ if (!DashScopeOpenAICompatibleProvider.isDashScopeProvider({
43
+ authType: "openai" /* USE_OPENAI */,
44
+ baseUrl
45
+ })) {
46
+ throw new OmniUploadConfigError(
47
+ "omni.delivery.upload.baseUrl must be a DashScope-compatible endpoint."
48
+ );
49
+ }
50
+ const apiKey = env[apiKeyEnv]?.trim();
51
+ if (!apiKey) {
52
+ throw new OmniUploadConfigError(
53
+ `omni.delivery.upload.apiKeyEnv names ${apiKeyEnv}, but that environment variable is not set or is empty.`
54
+ );
55
+ }
56
+ return { baseUrl, apiKey, model };
57
+ }
58
+ __name(normalizeDedicatedOmniUploadConfig, "normalizeDedicatedOmniUploadConfig");
59
+ function resolveLegacyOmniUploadConfig(contentGeneratorConfig, model) {
60
+ if (!contentGeneratorConfig || contentGeneratorConfig.authType === "qwen-oauth" /* QWEN_OAUTH */ || !contentGeneratorConfig.apiKey || contentGeneratorConfig.apiKey === QWEN_OAUTH_PLACEHOLDER_API_KEY || !contentGeneratorConfig.baseUrl || !model || !DashScopeOpenAICompatibleProvider.isDashScopeProvider(
61
+ contentGeneratorConfig
62
+ )) {
63
+ return void 0;
64
+ }
65
+ return {
66
+ baseUrl: contentGeneratorConfig.baseUrl,
67
+ apiKey: contentGeneratorConfig.apiKey,
68
+ model
69
+ };
70
+ }
71
+ __name(resolveLegacyOmniUploadConfig, "resolveLegacyOmniUploadConfig");
72
+ function getEffectiveOmniUploadConfig(config) {
73
+ const dedicated = config.getOmniUploadConfig?.();
74
+ if (dedicated) return dedicated;
75
+ return resolveLegacyOmniUploadConfig(
76
+ config.getContentGeneratorConfig?.(),
77
+ config.getModel?.()
78
+ );
79
+ }
80
+ __name(getEffectiveOmniUploadConfig, "getEffectiveOmniUploadConfig");
81
+ function requireEffectiveOmniUploadConfig(config) {
82
+ const upload = getEffectiveOmniUploadConfig(config);
83
+ if (!upload) {
84
+ throw new OmniUploadConfigError(
85
+ "Omni upload is not configured. Set all of omni.delivery.upload.baseUrl, apiKeyEnv, and model, or use a static DashScope inference configuration."
86
+ );
87
+ }
88
+ return upload;
89
+ }
90
+ __name(requireEffectiveOmniUploadConfig, "requireEffectiveOmniUploadConfig");
91
+
92
+ export {
93
+ OmniUploadConfigError,
94
+ normalizeDedicatedOmniUploadConfig,
95
+ getEffectiveOmniUploadConfig,
96
+ requireEffectiveOmniUploadConfig
97
+ };
98
+ /**
99
+ * @license
100
+ * Copyright 2026 Qwen Team
101
+ * SPDX-License-Identifier: Apache-2.0
102
+ */
@@ -13,15 +13,17 @@ import {
13
13
  } from "./chunk-6OTF7TTE.js";
14
14
  import {
15
15
  isWorkspaceTrusted
16
- } from "./chunk-NQ272MQG.js";
16
+ } from "./chunk-5XK2YELE.js";
17
17
  import {
18
18
  require_main
19
19
  } from "./chunk-65I7S4Z3.js";
20
20
  import {
21
21
  QWEN_DIR,
22
- Storage,
22
+ Storage
23
+ } from "./chunk-ZYDMQCQP.js";
24
+ import {
23
25
  getErrorMessage
24
- } from "./chunk-ZAFYHRVY.js";
26
+ } from "./chunk-S34QJ6IR.js";
25
27
  import {
26
28
  init_esbuild_shims
27
29
  } from "./chunk-5O2XNYP6.js";
@@ -0,0 +1,273 @@
1
+ // Force strict mode and setup for ESM
2
+ "use strict";
3
+ import {
4
+ projectMediaPolicyToolDeclaration
5
+ } from "./chunk-MNU36NGH.js";
6
+ import {
7
+ isPlainRecord
8
+ } from "./chunk-BQMSZSG6.js";
9
+ import {
10
+ BaseDeclarativeTool,
11
+ BaseToolInvocation
12
+ } from "./chunk-VPGRGNNH.js";
13
+ import {
14
+ SchemaValidator
15
+ } from "./chunk-ERIBG3BX.js";
16
+ import {
17
+ getErrorMessage
18
+ } from "./chunk-S34QJ6IR.js";
19
+ import {
20
+ init_esbuild_shims
21
+ } from "./chunk-5O2XNYP6.js";
22
+ import {
23
+ __name
24
+ } from "./chunk-J2S4EL5Y.js";
25
+
26
+ // packages/core/src/omni/policy/tools/media-policy-tool.ts
27
+ init_esbuild_shims();
28
+ import fs from "node:fs/promises";
29
+ import path from "node:path";
30
+ var DEFAULT_POLICY_TOOL_TIMEOUT_MS = 6e5;
31
+ var MEDIA_POLICY_IO_SCHEMA_PROPERTIES = {
32
+ inputPath: {
33
+ type: "string",
34
+ description: "Absolute path of the source media file \u2014 including the path shown in a \u3010\u5A92\u4F53\u8DEF\u5F84\u3011 annotation for a local file you read. Provide exactly one of inputPath or resourceId."
35
+ },
36
+ resourceId: {
37
+ type: "string",
38
+ description: "Opaque session media handle (the media-<n>-<hex> form from a \u3010\u5A92\u4F53\u8D44\u6E90\u3011 annotation or a recall result) naming the source media. When the annotation instead shows an absolute path, pass that path as inputPath. Provide exactly one of inputPath or resourceId."
39
+ },
40
+ outputDir: {
41
+ type: "string",
42
+ description: "Absolute path of an existing directory the output file is written into; it is not created automatically."
43
+ }
44
+ };
45
+ function resolvePolicyToolTimeoutMs(config, toolName) {
46
+ const entry = config.getOmniPolicyToolsSettings?.()?.[toolName];
47
+ const runtime = isPlainRecord(entry) && isPlainRecord(entry["runtime"]) ? entry["runtime"] : void 0;
48
+ const timeoutMs = runtime?.["timeoutMs"];
49
+ return typeof timeoutMs === "number" && Number.isFinite(timeoutMs) && timeoutMs > 0 ? timeoutMs : DEFAULT_POLICY_TOOL_TIMEOUT_MS;
50
+ }
51
+ __name(resolvePolicyToolTimeoutMs, "resolvePolicyToolTimeoutMs");
52
+ function resolvePolicyToolSettings(config, toolName) {
53
+ const entry = config.getOmniPolicyToolsSettings?.()?.[toolName];
54
+ const settings = isPlainRecord(entry) ? entry["settings"] : void 0;
55
+ return isPlainRecord(settings) ? settings : {};
56
+ }
57
+ __name(resolvePolicyToolSettings, "resolvePolicyToolSettings");
58
+ function createPolicyToolTimeoutBudget(totalMs) {
59
+ let deadline;
60
+ return () => {
61
+ const now = Date.now();
62
+ deadline ??= now + totalMs;
63
+ return Math.max(1, deadline - now);
64
+ };
65
+ }
66
+ __name(createPolicyToolTimeoutBudget, "createPolicyToolTimeoutBudget");
67
+ function sharpTimeoutSeconds(timeoutMs) {
68
+ return Math.max(1, Math.ceil(timeoutMs / 1e3));
69
+ }
70
+ __name(sharpTimeoutSeconds, "sharpTimeoutSeconds");
71
+ var BaseMediaPolicyToolInvocation = class extends BaseToolInvocation {
72
+ static {
73
+ __name(this, "BaseMediaPolicyToolInvocation");
74
+ }
75
+ getDefaultPermission() {
76
+ return Promise.resolve("ask");
77
+ }
78
+ };
79
+ var BaseMediaPolicyTool = class extends BaseDeclarativeTool {
80
+ constructor(name, displayName, description, kind, parameterSchema, configView = {}) {
81
+ super(name, displayName, description, kind, parameterSchema);
82
+ this.configView = configView;
83
+ }
84
+ static {
85
+ __name(this, "BaseMediaPolicyTool");
86
+ }
87
+ /** Memoized projection result, keyed on the settings-object identity it
88
+ * was computed from ({@link schema}). */
89
+ projectedSchema;
90
+ /**
91
+ * Model-visible declaration (decision D6): the single projection point
92
+ * every declaration surface reads — the native schema minus
93
+ * `modelAccess.lockedArguments` keys, narrowed to
94
+ * `modelAccess.parameterSchema` when configured, with the optional
95
+ * description override applied. Validation deliberately does NOT use
96
+ * this projection (see {@link validateToolParams}).
97
+ *
98
+ * The projection is pure over (native schema, settings object), and the
99
+ * config stores one normalized settings object per initialize() — so the
100
+ * result is memoized on that object's identity, and a re-initialize
101
+ * (which swaps the object) recomputes naturally.
102
+ */
103
+ get schema() {
104
+ const settings = this.configView.getOmniPolicyToolsSettings?.();
105
+ if (!this.projectedSchema || this.projectedSchema.settings !== settings) {
106
+ this.projectedSchema = {
107
+ settings,
108
+ declaration: projectMediaPolicyToolDeclaration(this.configView, {
109
+ name: this.name,
110
+ description: this.description,
111
+ parametersJsonSchema: this.parameterSchema,
112
+ operatorOnlyParams: this.mediaPolicyDescriptor.operatorOnlyParams
113
+ })
114
+ };
115
+ }
116
+ return this.projectedSchema.declaration;
117
+ }
118
+ /**
119
+ * Validate against the tool's NATIVE parameter schema, never the
120
+ * model-visible `schema` getter: Stage B's modelAccess projection makes
121
+ * `schema` a narrowed view (lockedArguments removed), while validation
122
+ * must keep accepting the harness-injected arguments the projection
123
+ * hides (policy design §9.4).
124
+ */
125
+ validateToolParams(params) {
126
+ const errors = SchemaValidator.validate(this.parameterSchema, params);
127
+ if (errors) {
128
+ return errors;
129
+ }
130
+ return this.validateToolParamValues(params);
131
+ }
132
+ /** Every media-policy tool shares the io params; tools with extra
133
+ * value-level rules override this and layer them on top. */
134
+ validateToolParamValues(params) {
135
+ return validateMediaPolicyIoParams(params);
136
+ }
137
+ /**
138
+ * The other half of the Write/Edit permission posture these tools adopt:
139
+ * without this override, the AUTO-mode classifier sees the empty-string
140
+ * sentinel (`Arguments: {}`) and its path-based block rules can never
141
+ * fire on a model-origin call. Project exactly the fields those rules
142
+ * key on — the two filesystem paths carry no secrets.
143
+ */
144
+ toAutoClassifierInput(params) {
145
+ return { inputPath: params.inputPath, outputDir: params.outputDir };
146
+ }
147
+ };
148
+ var MAX_OUTPUT_STEM_LENGTH = 48;
149
+ function policyOutputStem(inputPath) {
150
+ const raw = path.basename(inputPath, path.extname(inputPath));
151
+ return raw.replace(/[^A-Za-z0-9._+-]+/g, "-").replace(/^-+|-+$/g, "").slice(0, MAX_OUTPUT_STEM_LENGTH) || "media";
152
+ }
153
+ __name(policyOutputStem, "policyOutputStem");
154
+ function policyOutputFileName(params) {
155
+ const stem = policyOutputStem(params.inputPath);
156
+ const variant = params.variant ? `-${params.variant}` : "";
157
+ return `${stem}-${params.operation}${variant}${params.extension}`;
158
+ }
159
+ __name(policyOutputFileName, "policyOutputFileName");
160
+ function validateMediaPolicyIoParams(params) {
161
+ if (params.inputPath === void 0) {
162
+ return "provide exactly one of inputPath (absolute path) or resourceId (opaque session media handle)";
163
+ }
164
+ if (!path.isAbsolute(params.inputPath)) {
165
+ return `inputPath must be an absolute path (got ${JSON.stringify(params.inputPath)})`;
166
+ }
167
+ if (!path.isAbsolute(params.outputDir)) {
168
+ return `outputDir must be an absolute path (got ${JSON.stringify(params.outputDir)})`;
169
+ }
170
+ return null;
171
+ }
172
+ __name(validateMediaPolicyIoParams, "validateMediaPolicyIoParams");
173
+ async function assertMediaPolicyIo(params) {
174
+ let inputStat;
175
+ try {
176
+ inputStat = await fs.lstat(params.inputPath);
177
+ } catch {
178
+ throw new Error(`input file not found: ${path.basename(params.inputPath)}`);
179
+ }
180
+ if (!inputStat.isFile()) {
181
+ throw new Error(
182
+ `input is not a regular file: ${path.basename(params.inputPath)}`
183
+ );
184
+ }
185
+ let outStat;
186
+ try {
187
+ outStat = await fs.lstat(params.outputDir);
188
+ } catch {
189
+ throw new Error(`output directory not found: ${params.outputDir}`);
190
+ }
191
+ if (!outStat.isDirectory()) {
192
+ throw new Error(`output path is not a real directory: ${params.outputDir}`);
193
+ }
194
+ return { inputSizeBytes: inputStat.size };
195
+ }
196
+ __name(assertMediaPolicyIo, "assertMediaPolicyIo");
197
+ function formatBytesShort(bytes) {
198
+ const trim = /* @__PURE__ */ __name((n) => (Math.round(n * 10) / 10).toString().replace(/\.0$/, ""), "trim");
199
+ if (bytes >= 1024 ** 3) return `${trim(bytes / 1024 ** 3)}GB`;
200
+ if (bytes >= 1024 ** 2) return `${trim(bytes / 1024 ** 2)}MB`;
201
+ if (bytes >= 1024) return `${trim(bytes / 1024)}KB`;
202
+ return `${bytes}B`;
203
+ }
204
+ __name(formatBytesShort, "formatBytesShort");
205
+ function describeChannels(channels) {
206
+ if (channels === void 0) return "";
207
+ if (channels === 1) return " \u5355\u58F0\u9053";
208
+ if (channels === 2) return " \u7ACB\u4F53\u58F0";
209
+ return ` ${channels}\u58F0\u9053`;
210
+ }
211
+ __name(describeChannels, "describeChannels");
212
+ function mediaPolicyToolError(message) {
213
+ return {
214
+ llmContent: `Error: ${message}`,
215
+ returnDisplay: message,
216
+ error: { message, type: "execution_failed" /* EXECUTION_FAILED */ }
217
+ };
218
+ }
219
+ __name(mediaPolicyToolError, "mediaPolicyToolError");
220
+ function mediaPolicyToolFailure(error) {
221
+ return mediaPolicyToolError(getErrorMessage(error));
222
+ }
223
+ __name(mediaPolicyToolFailure, "mediaPolicyToolFailure");
224
+ function ffmpegFailureMessage(run, action, inputPath) {
225
+ return `ffmpeg failed (exit ${run.code}) ${action} ${path.basename(inputPath)}: ${run.stderr.slice(-500)}`;
226
+ }
227
+ __name(ffmpegFailureMessage, "ffmpegFailureMessage");
228
+ function mediaPolicyToolSuccess(args) {
229
+ const outputPath = path.join(args.outputDir, args.outputFileName);
230
+ const artifact = {
231
+ kind: args.artifactKind,
232
+ storage: "workspace",
233
+ title: args.title,
234
+ // Relative to the invocation's staging directory — the orchestrator
235
+ // resolves and re-validates containment before promotion.
236
+ workspacePath: args.outputFileName,
237
+ mimeType: args.mimeType,
238
+ sizeBytes: args.sizeBytes,
239
+ metadata: args.role === void 0 ? { omniDisclosure: args.disclosure } : { omniDisclosure: args.disclosure, omniRole: args.role }
240
+ };
241
+ return {
242
+ llmContent: `${args.title}: ${args.disclosure}
243
+ Output file: ${outputPath}
244
+ Use read_file with this absolute path to inspect the result.`,
245
+ returnDisplay: args.disclosure,
246
+ artifacts: [artifact]
247
+ };
248
+ }
249
+ __name(mediaPolicyToolSuccess, "mediaPolicyToolSuccess");
250
+
251
+ export {
252
+ MEDIA_POLICY_IO_SCHEMA_PROPERTIES,
253
+ resolvePolicyToolTimeoutMs,
254
+ resolvePolicyToolSettings,
255
+ createPolicyToolTimeoutBudget,
256
+ sharpTimeoutSeconds,
257
+ BaseMediaPolicyToolInvocation,
258
+ BaseMediaPolicyTool,
259
+ policyOutputStem,
260
+ policyOutputFileName,
261
+ assertMediaPolicyIo,
262
+ formatBytesShort,
263
+ describeChannels,
264
+ mediaPolicyToolError,
265
+ mediaPolicyToolFailure,
266
+ ffmpegFailureMessage,
267
+ mediaPolicyToolSuccess
268
+ };
269
+ /**
270
+ * @license
271
+ * Copyright 2025 Google LLC
272
+ * SPDX-License-Identifier: Apache-2.0
273
+ */
@@ -0,0 +1,228 @@
1
+ // Force strict mode and setup for ESM
2
+ "use strict";
3
+ import {
4
+ combineAbortSignals
5
+ } from "./chunk-DJ2GSRLV.js";
6
+ import {
7
+ init_esbuild_shims
8
+ } from "./chunk-5O2XNYP6.js";
9
+ import {
10
+ __name
11
+ } from "./chunk-J2S4EL5Y.js";
12
+
13
+ // packages/core/src/omni/upload.ts
14
+ init_esbuild_shims();
15
+ import { createHash, randomUUID } from "node:crypto";
16
+ import { openAsBlob } from "node:fs";
17
+ import path from "node:path";
18
+ var OSS_URL_PREFIX = "oss://";
19
+ var DEFAULT_ORIGIN = "https://dashscope.aliyuncs.com";
20
+ var GET_POLICY_TIMEOUT_MS = 3e4;
21
+ var UPLOAD_TIMEOUT_MS = 15 * 6e4;
22
+ var CREDENTIAL_TTL_MS = 24e4;
23
+ var credentialCache = /* @__PURE__ */ new Map();
24
+ function resetCredentialCacheForTests() {
25
+ credentialCache.clear();
26
+ }
27
+ __name(resetCredentialCacheForTests, "resetCredentialCacheForTests");
28
+ function sanitizeFileName(name) {
29
+ const cleaned = name.replace(/[^\w.-]+/g, "_").replace(/^\.+/, "");
30
+ return cleaned.length > 0 ? cleaned.slice(-100) : "file";
31
+ }
32
+ __name(sanitizeFileName, "sanitizeFileName");
33
+ function uploadsOriginFromBaseUrl(baseUrl) {
34
+ if (!baseUrl) return DEFAULT_ORIGIN;
35
+ try {
36
+ return new URL(baseUrl).origin;
37
+ } catch {
38
+ return DEFAULT_ORIGIN;
39
+ }
40
+ }
41
+ __name(uploadsOriginFromBaseUrl, "uploadsOriginFromBaseUrl");
42
+ async function summarizeHttpFailure(res) {
43
+ const body = await res.text().catch(() => "");
44
+ try {
45
+ const parsed = JSON.parse(body);
46
+ const code = parsed.code ?? parsed.error?.code;
47
+ const message = parsed.message ?? parsed.error?.message;
48
+ const detail = [code, message].filter((v) => typeof v === "string" && v.length > 0).join(": ").slice(0, 160);
49
+ if (detail) return `HTTP ${res.status} (${detail})`;
50
+ } catch {
51
+ }
52
+ return `HTTP ${res.status}`;
53
+ }
54
+ __name(summarizeHttpFailure, "summarizeHttpFailure");
55
+ function rethrowIfAborted(err, signal) {
56
+ if (signal?.aborted) throw err;
57
+ }
58
+ __name(rethrowIfAborted, "rethrowIfAborted");
59
+ function abortReason(signal) {
60
+ return signal.reason ?? new DOMException("This operation was aborted", "AbortError");
61
+ }
62
+ __name(abortReason, "abortReason");
63
+ function raceWithSignal(shared, signal) {
64
+ if (!signal) return shared;
65
+ if (signal.aborted) return Promise.reject(abortReason(signal));
66
+ return new Promise((resolve, reject) => {
67
+ const onAbort = /* @__PURE__ */ __name(() => reject(abortReason(signal)), "onAbort");
68
+ signal.addEventListener("abort", onAbort, { once: true });
69
+ shared.then(
70
+ (value) => {
71
+ signal.removeEventListener("abort", onAbort);
72
+ resolve(value);
73
+ },
74
+ (err) => {
75
+ signal.removeEventListener("abort", onAbort);
76
+ reject(err);
77
+ }
78
+ );
79
+ });
80
+ }
81
+ __name(raceWithSignal, "raceWithSignal");
82
+ var DashScopeUploader = class {
83
+ static {
84
+ __name(this, "DashScopeUploader");
85
+ }
86
+ apiKey;
87
+ origin;
88
+ fetchFn;
89
+ constructor(options) {
90
+ this.apiKey = options.apiKey;
91
+ this.origin = uploadsOriginFromBaseUrl(options.baseUrl);
92
+ this.fetchFn = options.fetchFn ?? fetch;
93
+ }
94
+ /** Fetch a short-lived upload policy bound to `model`, reusing a cached
95
+ * credential within its validity window. */
96
+ async getPolicy(model, signal) {
97
+ const keyDigest = createHash("sha256").update(this.apiKey).digest("hex").slice(0, 16);
98
+ const cacheKey = `${this.origin}|${model}|${keyDigest}`;
99
+ const cached = credentialCache.get(cacheKey);
100
+ if (cached && Date.now() - cached.fetchedAt < CREDENTIAL_TTL_MS) {
101
+ return raceWithSignal(cached.policy, signal);
102
+ }
103
+ const entry = {
104
+ fetchedAt: Date.now(),
105
+ policy: this.fetchPolicy(model)
106
+ };
107
+ credentialCache.set(cacheKey, entry);
108
+ entry.policy.catch(() => {
109
+ if (credentialCache.get(cacheKey) === entry) {
110
+ credentialCache.delete(cacheKey);
111
+ }
112
+ });
113
+ return raceWithSignal(entry.policy, signal);
114
+ }
115
+ /** Uncached policy fetch. Runs solely under the internal timeout; caller
116
+ * signals are handled per-caller in getPolicy so one caller's abort never
117
+ * contaminates the shared cached promise. */
118
+ async fetchPolicy(model) {
119
+ const url = new URL("/api/v1/uploads", this.origin);
120
+ url.searchParams.set("action", "getPolicy");
121
+ url.searchParams.set("model", model);
122
+ const combined = combineAbortSignals([], {
123
+ timeoutMs: GET_POLICY_TIMEOUT_MS
124
+ });
125
+ let failureSummary;
126
+ let payload;
127
+ try {
128
+ const res = await this.fetchFn(url, {
129
+ method: "GET",
130
+ headers: { Authorization: `Bearer ${this.apiKey}` },
131
+ signal: combined.signal
132
+ });
133
+ if (res.ok) {
134
+ try {
135
+ payload = await res.json();
136
+ } catch (err) {
137
+ if (combined.signal.aborted) throw err;
138
+ payload = void 0;
139
+ }
140
+ } else {
141
+ failureSummary = await summarizeHttpFailure(res);
142
+ }
143
+ } catch (err) {
144
+ throw new Error(
145
+ `DashScope upload getPolicy request failed: ${err instanceof Error ? err.message : String(err)}`
146
+ );
147
+ } finally {
148
+ combined.cleanup();
149
+ }
150
+ if (failureSummary) {
151
+ throw new Error(`DashScope upload getPolicy failed: ${failureSummary}`);
152
+ }
153
+ const data = payload?.data;
154
+ if (!data?.policy || !data.signature || !data.upload_dir || !data.upload_host || !data.oss_access_key_id || !data.x_oss_object_acl || !data.x_oss_forbid_overwrite) {
155
+ throw new Error(
156
+ "DashScope upload getPolicy returned an incomplete policy payload."
157
+ );
158
+ }
159
+ return data;
160
+ }
161
+ /**
162
+ * Upload a local file under a fresh policy for `model`. Returns the
163
+ * `oss://` URL DashScope resolves at inference time.
164
+ */
165
+ async uploadFile(params) {
166
+ const { filePath, model, mimeType, signal } = params;
167
+ const policy = await this.getPolicy(model, signal);
168
+ const key = `${policy.upload_dir}/${randomUUID().slice(0, 8)}-${sanitizeFileName(
169
+ path.basename(filePath)
170
+ )}`;
171
+ const form = new FormData();
172
+ form.append("OSSAccessKeyId", policy.oss_access_key_id);
173
+ form.append("Signature", policy.signature);
174
+ form.append("policy", policy.policy);
175
+ form.append("x-oss-object-acl", policy.x_oss_object_acl);
176
+ form.append("x-oss-forbid-overwrite", policy.x_oss_forbid_overwrite);
177
+ form.append("key", key);
178
+ form.append("success_action_status", "200");
179
+ let blob;
180
+ try {
181
+ blob = await openAsBlob(filePath, { type: mimeType });
182
+ } catch (err) {
183
+ throw new Error(
184
+ `Failed to open file for upload: ${path.basename(filePath)}: ${err instanceof Error ? err.message : String(err)}`
185
+ );
186
+ }
187
+ form.append("file", blob, path.basename(filePath));
188
+ const combined = combineAbortSignals([signal], {
189
+ timeoutMs: UPLOAD_TIMEOUT_MS
190
+ });
191
+ let failureSummary;
192
+ try {
193
+ const res = await this.fetchFn(policy.upload_host, {
194
+ method: "POST",
195
+ body: form,
196
+ signal: combined.signal
197
+ });
198
+ if (res.ok) {
199
+ await res.body?.cancel().catch(() => {
200
+ });
201
+ } else {
202
+ failureSummary = await summarizeHttpFailure(res);
203
+ }
204
+ } catch (err) {
205
+ rethrowIfAborted(err, signal);
206
+ throw new Error(
207
+ `DashScope media upload failed: ${err instanceof Error ? err.message : String(err)}`
208
+ );
209
+ } finally {
210
+ combined.cleanup();
211
+ }
212
+ if (failureSummary) {
213
+ throw new Error(`DashScope media upload failed: ${failureSummary}`);
214
+ }
215
+ return `${OSS_URL_PREFIX}${key}`;
216
+ }
217
+ };
218
+
219
+ export {
220
+ OSS_URL_PREFIX,
221
+ resetCredentialCacheForTests,
222
+ DashScopeUploader
223
+ };
224
+ /**
225
+ * @license
226
+ * Copyright 2025 Google LLC
227
+ * SPDX-License-Identifier: Apache-2.0
228
+ */
@@ -0,0 +1,24 @@
1
+ // Force strict mode and setup for ESM
2
+ "use strict";
3
+ import {
4
+ init_esbuild_shims
5
+ } from "./chunk-5O2XNYP6.js";
6
+ import {
7
+ __name
8
+ } from "./chunk-J2S4EL5Y.js";
9
+
10
+ // packages/core/src/omni/policy/tools/sharp-module.ts
11
+ init_esbuild_shims();
12
+ async function loadSharp() {
13
+ return (await import("sharp")).default;
14
+ }
15
+ __name(loadSharp, "loadSharp");
16
+
17
+ export {
18
+ loadSharp
19
+ };
20
+ /**
21
+ * @license
22
+ * Copyright 2025 Google LLC
23
+ * SPDX-License-Identifier: Apache-2.0
24
+ */