@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
@@ -0,0 +1,578 @@
1
+ // Force strict mode and setup for ESM
2
+ "use strict";
3
+ import {
4
+ BaseMediaPolicyTool,
5
+ BaseMediaPolicyToolInvocation,
6
+ MEDIA_POLICY_IO_SCHEMA_PROPERTIES,
7
+ assertMediaPolicyIo,
8
+ createPolicyToolTimeoutBudget,
9
+ mediaPolicyToolError,
10
+ mediaPolicyToolFailure,
11
+ mediaPolicyToolSuccess,
12
+ policyOutputFileName,
13
+ resolvePolicyToolSettings,
14
+ resolvePolicyToolTimeoutMs
15
+ } from "./chunk-UXEI7POA.js";
16
+ import {
17
+ recognizeMediaFile
18
+ } from "./chunk-S5BHLTHK.js";
19
+ import {
20
+ runFfmpeg
21
+ } from "./chunk-KSEKRQJO.js";
22
+ import {
23
+ ToolNames
24
+ } from "./chunk-ERIBG3BX.js";
25
+ import {
26
+ init_esbuild_shims
27
+ } from "./chunk-5O2XNYP6.js";
28
+ import {
29
+ __name
30
+ } from "./chunk-J2S4EL5Y.js";
31
+
32
+ // packages/core/src/omni/policy/tools/transcribe-audio.ts
33
+ init_esbuild_shims();
34
+ import fs from "node:fs/promises";
35
+ import path from "node:path";
36
+
37
+ // packages/core/src/omni/policy/tools/usage-log.ts
38
+ init_esbuild_shims();
39
+ import { appendFileSync } from "node:fs";
40
+ function appendOmniUsageLog(model, usage, tool) {
41
+ const usageLogPath = process.env["OMNI_USAGE_LOG"];
42
+ if (!usageLogPath || !usage) return;
43
+ const cachedInputTokens = usage.prompt_tokens_details?.cached_tokens ?? usage.cached_tokens ?? null;
44
+ try {
45
+ appendFileSync(
46
+ usageLogPath,
47
+ JSON.stringify({
48
+ model,
49
+ ...tool !== void 0 ? { tool } : {},
50
+ inputTokens: usage.prompt_tokens ?? null,
51
+ outputTokens: usage.completion_tokens ?? null,
52
+ totalTokens: usage.total_tokens ?? null,
53
+ cachedInputTokens,
54
+ ts: Date.now()
55
+ }) + "\n"
56
+ );
57
+ } catch {
58
+ }
59
+ }
60
+ __name(appendOmniUsageLog, "appendOmniUsageLog");
61
+
62
+ // packages/core/src/omni/policy/tools/transcribe-audio.ts
63
+ var OMNI_TRANSCRIBE_AUDIO_TOOL_NAME = ToolNames.OMNI_TRANSCRIBE_AUDIO;
64
+ var TRANSCRIBE_AUDIO_DEFAULTS = {
65
+ model: "qwen3.5-omni-plus",
66
+ baseUrl: "https://dashscope.aliyuncs.com/compatible-mode/v1",
67
+ apiKeyEnv: "DASHSCOPE_API_KEY",
68
+ maxInputBytes: 10 * 1024 * 1024,
69
+ chunkSeconds: 180
70
+ };
71
+ var CHUNK_CONCURRENCY = 3;
72
+ var MAX_SEGMENT_COUNT = 512;
73
+ var CHUNK_AUDIO_ARGS = [
74
+ "-vn",
75
+ "-c:a",
76
+ "aac",
77
+ "-b:a",
78
+ "32k",
79
+ "-ar",
80
+ "16000",
81
+ "-ac",
82
+ "1"
83
+ ];
84
+ var INPUT_AUDIO_FORMATS = {
85
+ "audio/wav": "wav",
86
+ "audio/mpeg": "mp3",
87
+ "audio/aac": "aac",
88
+ "audio/flac": "flac",
89
+ "audio/ogg": "ogg",
90
+ "audio/mp4": "m4a"
91
+ };
92
+ var TUNABLE_SCHEMA_PROPERTIES = {
93
+ language: {
94
+ type: "string",
95
+ description: 'Optional language hint for the transcription (e.g. "zh", "en").'
96
+ },
97
+ model: {
98
+ type: "string",
99
+ description: "ASR model id. Default 'qwen3.5-omni-plus'."
100
+ },
101
+ baseUrl: {
102
+ type: "string",
103
+ description: "OpenAI-compatible endpoint base URL the transcription request is sent to. Defaults to the DashScope compatible-mode endpoint."
104
+ },
105
+ apiKeyEnv: {
106
+ type: "string",
107
+ description: "Environment variable holding the API key for the endpoint. Default 'DASHSCOPE_API_KEY'."
108
+ },
109
+ maxInputBytes: {
110
+ type: "number",
111
+ description: "Maximum input audio size in bytes. Default 10485760 (10MiB).",
112
+ minimum: 1
113
+ },
114
+ chunkSeconds: {
115
+ type: "number",
116
+ description: "Audio longer than this is split into segments of this length and each segment is transcribed separately (per-segment time ranges are prefixed to the text). Default 180.",
117
+ minimum: 30,
118
+ maximum: 1800
119
+ }
120
+ };
121
+ var DESCRIPTOR = {
122
+ kind: "media_policy",
123
+ version: "1",
124
+ inputMediaTypes: ["audio"],
125
+ outputs: [
126
+ {
127
+ // Transcript protocol (policy design §6.2): a non-media file
128
+ // artifact — strict UTF-8 text/plain with
129
+ // `metadata.omniRole: 'transcript'` — delivered as a text Part.
130
+ kind: "file",
131
+ role: "transcript",
132
+ mimeTypes: ["text/plain"],
133
+ required: true,
134
+ // Uniform lossy declaration (mapping doc §6.1): tone, timbre and
135
+ // non-speech information are lost, and recognition may err.
136
+ lossy: true
137
+ },
138
+ { kind: "text", role: "disclosure", required: true }
139
+ ],
140
+ settingsSchema: {
141
+ type: "object",
142
+ properties: TUNABLE_SCHEMA_PROPERTIES,
143
+ additionalProperties: false
144
+ },
145
+ // Endpoint + credential selection must stay operator-controlled: a
146
+ // gated caller choosing both `apiKeyEnv` and `baseUrl` could point any
147
+ // environment secret (e.g. OPENAI_API_KEY) at an attacker-controlled
148
+ // host. They remain configurable via policyTools settings and
149
+ // modelAccess default/lockedArguments (operator surfaces), and stay in
150
+ // the params schema because fixed-policy `arguments` and settings
151
+ // defaults are merged into tool args under
152
+ // `additionalProperties: false`.
153
+ operatorOnlyParams: ["baseUrl", "apiKeyEnv"]
154
+ };
155
+ var readString = /* @__PURE__ */ __name((settings, key) => {
156
+ const value = settings[key];
157
+ return typeof value === "string" && value.length > 0 ? value : void 0;
158
+ }, "readString");
159
+ var readNumber = /* @__PURE__ */ __name((settings, key) => {
160
+ const value = settings[key];
161
+ return typeof value === "number" && Number.isFinite(value) && value > 0 ? value : void 0;
162
+ }, "readNumber");
163
+ function parseSseCompletion(body) {
164
+ let transcript = "";
165
+ let usage;
166
+ for (const rawLine of body.split(/\r?\n/)) {
167
+ const line = rawLine.trim();
168
+ if (!line.startsWith("data:")) continue;
169
+ const payload = line.slice("data:".length).trim();
170
+ if (payload === "[DONE]") break;
171
+ let chunk;
172
+ try {
173
+ chunk = JSON.parse(payload);
174
+ } catch {
175
+ continue;
176
+ }
177
+ const content = chunk.choices?.[0]?.delta?.content;
178
+ if (typeof content === "string") transcript += content;
179
+ if (chunk.usage) usage = chunk.usage;
180
+ }
181
+ return { text: transcript, usage };
182
+ }
183
+ __name(parseSseCompletion, "parseSseCompletion");
184
+ function parseSseTranscript(body) {
185
+ return parseSseCompletion(body).text;
186
+ }
187
+ __name(parseSseTranscript, "parseSseTranscript");
188
+ var REPETITION_MIN_REPS = 8;
189
+ var REPETITION_MIN_SPAN = 24;
190
+ var REPETITION_MAX_UNIT = 64;
191
+ function collapseRepetitionDegeneration(text) {
192
+ let best;
193
+ for (let unitLen = 1; unitLen <= REPETITION_MAX_UNIT; unitLen++) {
194
+ if (unitLen * REPETITION_MIN_REPS > text.length) break;
195
+ const unit = text.slice(text.length - unitLen);
196
+ if (unit.trim().length === 0) continue;
197
+ let reps = 1;
198
+ while ((reps + 1) * unitLen <= text.length && text.startsWith(unit, text.length - (reps + 1) * unitLen)) {
199
+ reps++;
200
+ }
201
+ if (reps >= REPETITION_MIN_REPS && reps * unitLen >= REPETITION_MIN_SPAN && (best === void 0 || reps * unitLen > best.reps * best.unitLen)) {
202
+ best = { unitLen, reps };
203
+ }
204
+ }
205
+ if (best === void 0) {
206
+ return { text, degenerated: false };
207
+ }
208
+ return {
209
+ text: text.slice(0, text.length - best.unitLen * (best.reps - 1)).trimEnd(),
210
+ degenerated: true
211
+ };
212
+ }
213
+ __name(collapseRepetitionDegeneration, "collapseRepetitionDegeneration");
214
+ function formatClock(totalSeconds, withHours) {
215
+ const s = Math.round(totalSeconds);
216
+ const h = Math.floor(s / 3600);
217
+ const m = Math.floor(s % 3600 / 60);
218
+ const mm = String(m).padStart(2, "0");
219
+ const ss = String(s % 60).padStart(2, "0");
220
+ return withHours ? `${h}:${mm}:${ss}` : `${mm}:${ss}`;
221
+ }
222
+ __name(formatClock, "formatClock");
223
+ var TranscribeAudioInvocation = class extends BaseMediaPolicyToolInvocation {
224
+ constructor(params, settingsDefaults, timeoutMs) {
225
+ super(params);
226
+ this.settingsDefaults = settingsDefaults;
227
+ this.timeoutMs = timeoutMs;
228
+ }
229
+ static {
230
+ __name(this, "TranscribeAudioInvocation");
231
+ }
232
+ getDescription() {
233
+ return `Transcribe ${path.basename(this.params.inputPath)} to text`;
234
+ }
235
+ async execute(signal) {
236
+ const settings = this.settingsDefaults;
237
+ const model = this.params.model ?? readString(settings, "model") ?? TRANSCRIBE_AUDIO_DEFAULTS.model;
238
+ const baseUrl = this.params.baseUrl ?? readString(settings, "baseUrl") ?? TRANSCRIBE_AUDIO_DEFAULTS.baseUrl;
239
+ const apiKeyEnv = this.params.apiKeyEnv ?? readString(settings, "apiKeyEnv") ?? TRANSCRIBE_AUDIO_DEFAULTS.apiKeyEnv;
240
+ const maxInputBytes = this.params.maxInputBytes ?? readNumber(settings, "maxInputBytes") ?? TRANSCRIBE_AUDIO_DEFAULTS.maxInputBytes;
241
+ const chunkSeconds = this.params.chunkSeconds ?? readNumber(settings, "chunkSeconds") ?? TRANSCRIBE_AUDIO_DEFAULTS.chunkSeconds;
242
+ const language = this.params.language ?? readString(settings, "language");
243
+ const prompt = "\u8BF7\u9010\u5B57\u8F6C\u5199\u8FD9\u6BB5\u97F3\u9891\u7684\u5185\u5BB9\uFF0C\u53EA\u8F93\u51FA\u8F6C\u5199\u6587\u672C\uFF0C\u4E0D\u8981\u6DFB\u52A0\u4EFB\u4F55\u89E3\u91CA\u3002" + (language ? `\u97F3\u9891\u8BED\u8A00\uFF1A${language}\u3002` : "");
244
+ try {
245
+ const { inputSizeBytes } = await assertMediaPolicyIo(this.params);
246
+ if (inputSizeBytes > maxInputBytes) {
247
+ return mediaPolicyToolError(
248
+ `input audio is ${inputSizeBytes} bytes, over the ${maxInputBytes}-byte transcription limit`
249
+ );
250
+ }
251
+ const apiKey = process.env[apiKeyEnv];
252
+ if (!apiKey) {
253
+ return mediaPolicyToolError(
254
+ `environment variable ${apiKeyEnv} is not set; transcription is unavailable`
255
+ );
256
+ }
257
+ const recognized = await recognizeMediaFile(this.params.inputPath, {
258
+ expectedModality: "audio",
259
+ signal
260
+ });
261
+ const format = INPUT_AUDIO_FORMATS[recognized.detectedMimeType];
262
+ if (!format) {
263
+ return mediaPolicyToolError(
264
+ `audio container ${recognized.detectedMimeType} is not supported by ${OMNI_TRANSCRIBE_AUDIO_TOOL_NAME}`
265
+ );
266
+ }
267
+ const durationSeconds = recognized.metadata.durationMs !== void 0 && recognized.metadata.durationMs > 0 ? recognized.metadata.durationMs / 1e3 : void 0;
268
+ const backend = { model, baseUrl, apiKey, prompt };
269
+ const segmentCount = durationSeconds !== void 0 ? Math.ceil(durationSeconds / chunkSeconds) : 1;
270
+ if (segmentCount > MAX_SEGMENT_COUNT) {
271
+ return mediaPolicyToolError(
272
+ `container claims ${Math.round(durationSeconds ?? 0)}s of audio (${segmentCount} segments of ${chunkSeconds}s, over the ${MAX_SEGMENT_COUNT}-segment ceiling) \u2014 implausible for a ${inputSizeBytes}-byte input`
273
+ );
274
+ }
275
+ let transcript;
276
+ let degeneratedSegments = 0;
277
+ let failedSegments = 0;
278
+ if (durationSeconds !== void 0 && segmentCount > 1) {
279
+ const chunked = await this.transcribeChunked({
280
+ backend,
281
+ durationSeconds,
282
+ segmentCount,
283
+ signal
284
+ });
285
+ if (!Array.isArray(chunked)) {
286
+ return chunked;
287
+ }
288
+ const withHours = Math.round(durationSeconds) >= 3600;
289
+ const lines = [];
290
+ const segmentLength = durationSeconds / segmentCount;
291
+ for (const [index, outcome] of chunked.entries()) {
292
+ const range = `[${formatClock(index * segmentLength, withHours)}-${formatClock(Math.min((index + 1) * segmentLength, durationSeconds), withHours)}]`;
293
+ if (outcome.text !== void 0) {
294
+ lines.push(`${range} ${outcome.text}`);
295
+ if (outcome.degenerated) degeneratedSegments++;
296
+ } else {
297
+ lines.push(`${range} \uFF08\u8BE5\u6BB5\u8F6C\u5199\u5931\u8D25\uFF1A${outcome.failure}\uFF09`);
298
+ failedSegments++;
299
+ }
300
+ }
301
+ transcript = lines.join("\n");
302
+ } else {
303
+ const bytes = await fs.readFile(this.params.inputPath);
304
+ const dataUri = `data:${recognized.detectedMimeType};base64,${bytes.toString("base64")}`;
305
+ const response = await this.requestTranscription({
306
+ ...backend,
307
+ dataUri,
308
+ format,
309
+ timeoutMs: this.timeoutMs,
310
+ signal
311
+ });
312
+ if (!response.ok) {
313
+ return mediaPolicyToolError(
314
+ `transcription request failed: ${response.error}`
315
+ );
316
+ }
317
+ const collapsed = collapseRepetitionDegeneration(response.text);
318
+ transcript = collapsed.text;
319
+ if (collapsed.degenerated) degeneratedSegments = 1;
320
+ if (!transcript) {
321
+ return mediaPolicyToolError("transcription returned empty text");
322
+ }
323
+ }
324
+ const outputPath = path.join(
325
+ this.params.outputDir,
326
+ policyOutputFileName({
327
+ inputPath: this.params.inputPath,
328
+ operation: "transcript",
329
+ extension: ".txt"
330
+ })
331
+ );
332
+ const encoded = Buffer.from(transcript, "utf-8");
333
+ await fs.writeFile(outputPath, encoded);
334
+ const durationPart = durationSeconds !== void 0 ? `${Math.round(durationSeconds)}s ` : "";
335
+ const segmentPart = segmentCount > 1 ? `\u5206 ${segmentCount} \u6BB5\u8F6C\u5199\u6587\u672C` : "\u8F6C\u5199\u6587\u672C";
336
+ const failurePart = failedSegments > 0 ? `\uFF08${failedSegments} \u6BB5\u5931\u8D25\uFF09` : "";
337
+ const degenerationPart = degeneratedSegments > 0 ? `\uFF0C${segmentCount > 1 ? `${degeneratedSegments} \u6BB5` : ""}\u68C0\u6D4B\u5230\u91CD\u590D\u9000\u5316\u5DF2\u622A\u65AD` : "";
338
+ const disclosure = `\u539F ${durationPart}\u97F3\u9891 \u2192 ${segmentPart} ${[...transcript].length} \u5B57${failurePart}${degenerationPart}\uFF0C\u8BED\u6C14/\u97F3\u8272/\u975E\u8BED\u97F3\u4FE1\u606F\u4E22\u5931\uFF0C\u8BC6\u522B\u53EF\u80FD\u6709\u8BEF`;
339
+ return mediaPolicyToolSuccess({
340
+ outputDir: this.params.outputDir,
341
+ outputFileName: policyOutputFileName({
342
+ inputPath: this.params.inputPath,
343
+ operation: "transcript",
344
+ extension: ".txt"
345
+ }),
346
+ artifactKind: "file",
347
+ title: "Audio transcript",
348
+ mimeType: "text/plain",
349
+ sizeBytes: encoded.length,
350
+ disclosure,
351
+ role: "transcript"
352
+ });
353
+ } catch (error) {
354
+ if (error instanceof Error && error.name === "TimeoutError" && !signal.aborted) {
355
+ return mediaPolicyToolError(
356
+ `transcription timed out after ${this.timeoutMs}ms`
357
+ );
358
+ }
359
+ return mediaPolicyToolFailure(error);
360
+ }
361
+ }
362
+ /**
363
+ * Chunked transcription: cut the audio into `segmentCount` equal
364
+ * segments (16kHz mono AAC — small payloads, speech-sufficient) and
365
+ * transcribe them with bounded concurrency. Individual segment
366
+ * failures become inline markers instead of failing the whole run; the
367
+ * run only errors when EVERY segment failed. All cuts and requests
368
+ * share one wall-clock budget.
369
+ */
370
+ async transcribeChunked(options) {
371
+ const { backend, durationSeconds, segmentCount, signal } = options;
372
+ const segmentLength = durationSeconds / segmentCount;
373
+ const remainingTimeoutMs = createPolicyToolTimeoutBudget(this.timeoutMs);
374
+ const outcomes = new Array(segmentCount);
375
+ let nextIndex = 0;
376
+ const worker = /* @__PURE__ */ __name(async () => {
377
+ while (!signal.aborted) {
378
+ const index = nextIndex++;
379
+ if (index >= segmentCount) return;
380
+ if (remainingTimeoutMs() <= 1) {
381
+ outcomes[index] = { failure: "\u65F6\u95F4\u9884\u7B97\u8017\u5C3D", degenerated: false };
382
+ continue;
383
+ }
384
+ outcomes[index] = await this.transcribeChunk({
385
+ backend,
386
+ index,
387
+ startSeconds: index * segmentLength,
388
+ lengthSeconds: segmentLength,
389
+ remainingTimeoutMs,
390
+ signal
391
+ });
392
+ }
393
+ }, "worker");
394
+ await Promise.all(
395
+ Array.from({ length: Math.min(CHUNK_CONCURRENCY, segmentCount) }, worker)
396
+ );
397
+ if (signal.aborted) {
398
+ return mediaPolicyToolError("transcription aborted");
399
+ }
400
+ if (outcomes.every((o) => o.text === void 0)) {
401
+ const lastFailure = outcomes[outcomes.length - 1]?.failure ?? "unknown";
402
+ return mediaPolicyToolError(
403
+ `transcription failed for all ${segmentCount} segments (last: ${lastFailure})`
404
+ );
405
+ }
406
+ return outcomes;
407
+ }
408
+ /** Cut one segment with ffmpeg, transcribe it, collapse repetition
409
+ * degeneration, and clean the temporary cut up. Never throws for
410
+ * per-segment problems — they come back as `failure`. */
411
+ async transcribeChunk(options) {
412
+ const {
413
+ backend,
414
+ index,
415
+ startSeconds,
416
+ lengthSeconds,
417
+ remainingTimeoutMs,
418
+ signal
419
+ } = options;
420
+ const chunkPath = path.join(
421
+ this.params.outputDir,
422
+ `chunk_${String(index + 1).padStart(4, "0")}.m4a`
423
+ );
424
+ try {
425
+ const cut = await runFfmpeg(
426
+ [
427
+ "-y",
428
+ "-ss",
429
+ startSeconds.toFixed(3),
430
+ "-t",
431
+ lengthSeconds.toFixed(3),
432
+ "-i",
433
+ this.params.inputPath,
434
+ ...CHUNK_AUDIO_ARGS,
435
+ chunkPath
436
+ ],
437
+ { signal, timeoutMs: remainingTimeoutMs() }
438
+ );
439
+ if (signal.aborted) {
440
+ return { failure: "aborted", degenerated: false };
441
+ }
442
+ if (cut.code !== 0) {
443
+ return {
444
+ failure: `\u5207\u7247\u5931\u8D25\uFF08ffmpeg exit ${cut.code}\uFF09`,
445
+ degenerated: false
446
+ };
447
+ }
448
+ const bytes = await fs.readFile(chunkPath);
449
+ const dataUri = `data:audio/mp4;base64,${bytes.toString("base64")}`;
450
+ const response = await this.requestTranscription({
451
+ ...backend,
452
+ dataUri,
453
+ format: "m4a",
454
+ timeoutMs: remainingTimeoutMs(),
455
+ signal
456
+ });
457
+ if (!response.ok) {
458
+ return { failure: response.error, degenerated: false };
459
+ }
460
+ const collapsed = collapseRepetitionDegeneration(response.text);
461
+ if (!collapsed.text) {
462
+ return { failure: "\u8FD4\u56DE\u7A7A\u6587\u672C", degenerated: false };
463
+ }
464
+ return { text: collapsed.text, degenerated: collapsed.degenerated };
465
+ } catch (error) {
466
+ if (signal.aborted) {
467
+ return { failure: "aborted", degenerated: false };
468
+ }
469
+ if (error instanceof Error && error.name === "TimeoutError") {
470
+ return { failure: "\u8BF7\u6C42\u8D85\u65F6", degenerated: false };
471
+ }
472
+ return {
473
+ failure: error instanceof Error ? error.message : String(error),
474
+ degenerated: false
475
+ };
476
+ } finally {
477
+ await fs.rm(chunkPath, { force: true }).catch(() => {
478
+ });
479
+ }
480
+ }
481
+ /** One streaming chat.completions ASR request. DashScope
482
+ * compatible-mode omni models only support streaming — stream:true and
483
+ * SSE assembly of delta.content (mapping doc §6.1). Non-2xx statuses
484
+ * come back as `HTTP <status>` only: raw upstream bodies must not
485
+ * reach model-visible content. */
486
+ async requestTranscription(options) {
487
+ const requestSignal = AbortSignal.any([
488
+ options.signal,
489
+ AbortSignal.timeout(options.timeoutMs)
490
+ ]);
491
+ const response = await fetch(
492
+ `${options.baseUrl.replace(/\/+$/, "")}/chat/completions`,
493
+ {
494
+ method: "POST",
495
+ headers: {
496
+ Authorization: `Bearer ${options.apiKey}`,
497
+ "Content-Type": "application/json"
498
+ },
499
+ body: JSON.stringify({
500
+ model: options.model,
501
+ modalities: ["text"],
502
+ stream: true,
503
+ stream_options: { include_usage: true },
504
+ messages: [
505
+ {
506
+ role: "user",
507
+ content: [
508
+ {
509
+ type: "input_audio",
510
+ input_audio: {
511
+ data: options.dataUri,
512
+ format: options.format
513
+ }
514
+ },
515
+ { type: "text", text: options.prompt }
516
+ ]
517
+ }
518
+ ]
519
+ }),
520
+ signal: requestSignal
521
+ }
522
+ );
523
+ if (!response.ok) {
524
+ return { ok: false, error: `HTTP ${response.status}` };
525
+ }
526
+ const { text, usage } = parseSseCompletion(await response.text());
527
+ appendOmniUsageLog(options.model, usage, "omni_transcribe_audio");
528
+ return { ok: true, text: text.trim() };
529
+ }
530
+ };
531
+ var OmniTranscribeAudioTool = class extends BaseMediaPolicyTool {
532
+ static {
533
+ __name(this, "OmniTranscribeAudioTool");
534
+ }
535
+ constructor(config = {}) {
536
+ super(
537
+ OMNI_TRANSCRIBE_AUDIO_TOOL_NAME,
538
+ "TranscribeAudio",
539
+ "Transcribes an audio file to text via the qwen3.5-omni ASR backend (long audio is split into time-labeled segments), discarding tone, timbre and non-speech information, with a disclosure of the loss.",
540
+ "other" /* Other */,
541
+ {
542
+ type: "object",
543
+ properties: {
544
+ ...MEDIA_POLICY_IO_SCHEMA_PROPERTIES,
545
+ ...TUNABLE_SCHEMA_PROPERTIES
546
+ },
547
+ required: ["outputDir"],
548
+ additionalProperties: false
549
+ },
550
+ config
551
+ );
552
+ }
553
+ get mediaPolicyDescriptor() {
554
+ return DESCRIPTOR;
555
+ }
556
+ createInvocation(params) {
557
+ return new TranscribeAudioInvocation(
558
+ params,
559
+ resolvePolicyToolSettings(this.configView, this.name),
560
+ resolvePolicyToolTimeoutMs(this.configView, this.name)
561
+ );
562
+ }
563
+ };
564
+
565
+ export {
566
+ appendOmniUsageLog,
567
+ OMNI_TRANSCRIBE_AUDIO_TOOL_NAME,
568
+ TRANSCRIBE_AUDIO_DEFAULTS,
569
+ parseSseCompletion,
570
+ parseSseTranscript,
571
+ collapseRepetitionDegeneration,
572
+ OmniTranscribeAudioTool
573
+ };
574
+ /**
575
+ * @license
576
+ * Copyright 2025 Google LLC
577
+ * SPDX-License-Identifier: Apache-2.0
578
+ */
@@ -3,16 +3,16 @@
3
3
  import {
4
4
  execCommand,
5
5
  isCommandAvailable
6
- } from "./chunk-V545KI73.js";
6
+ } from "./chunk-QPTE6BKL.js";
7
7
  import {
8
8
  resolveBundleDir
9
9
  } from "./chunk-ACHCT36C.js";
10
10
  import {
11
11
  fileExists
12
- } from "./chunk-5NUKK2DT.js";
12
+ } from "./chunk-25FMWESU.js";
13
13
  import {
14
14
  createDebugLogger
15
- } from "./chunk-ZAFYHRVY.js";
15
+ } from "./chunk-ZYDMQCQP.js";
16
16
  import {
17
17
  init_esbuild_shims
18
18
  } from "./chunk-5O2XNYP6.js";
@@ -2,13 +2,13 @@
2
2
  "use strict";
3
3
  import {
4
4
  useKeypress
5
- } from "./chunk-M22WLKLI.js";
5
+ } from "./chunk-IQGEZOGN.js";
6
6
  import {
7
7
  require_react
8
8
  } from "./chunk-5QWWOFGG.js";
9
9
  import {
10
10
  t
11
- } from "./chunk-GSAOVDTH.js";
11
+ } from "./chunk-POMFSBEC.js";
12
12
  import {
13
13
  APPROVAL_MODES
14
14
  } from "./chunk-JX6XHPTX.js";