@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.
- package/bundled/qc-helper/docs/features/_meta.ts +1 -0
- package/bundled/qc-helper/docs/features/goals.md +4 -2
- package/bundled/qc-helper/docs/features/omni-fixed-policies-preset.json +242 -0
- package/bundled/qc-helper/docs/features/omni-media-policies.md +443 -0
- package/bundled/qc-helper/docs/overview.md +1 -1
- package/bundled/qc-helper/docs/quickstart.md +2 -3
- package/chunks/MaxSizedBox-I5COUCHZ.js +148 -0
- package/chunks/{StandaloneSessionPicker-V635V72I.js → StandaloneSessionPicker-KUGOBVEW.js} +114 -90
- package/chunks/acp-subagent-executor-PRPMLKVJ.js +164 -0
- package/chunks/{acpAgent-3DPWZTNC.js → acpAgent-EHXZXVUB.js} +269 -194
- package/chunks/{agent-KIHGINKN.js → agent-FWPNJI6N.js} +59 -49
- package/chunks/agent-headless-M5Z7WIDL.js +104 -0
- package/chunks/{anthropicContentGenerator-4FGOM5LK.js → anthropicContentGenerator-FLTEUSIQ.js} +30 -27
- package/chunks/{artifact-tool-MUTNH4NI.js → artifact-tool-3MWM6SN2.js} +11 -7
- package/chunks/{askUserQuestion-AKIRLVB5.js → askUserQuestion-YFFBB4K3.js} +6 -4
- package/chunks/bridge-EWCKRGWY.js +156 -0
- package/chunks/{build-5KWQBWEQ.js → build-5OQN7CDU.js} +1 -1
- package/chunks/caption-audio-UXXLI3JZ.js +443 -0
- package/chunks/caption-image-B7O4TUFP.js +247 -0
- package/chunks/{channel-management-service-RRILWSXX.js → channel-management-service-GRJG5R46.js} +1 -1
- package/chunks/channel-settings-store-NXZNLT5L.js +158 -0
- package/chunks/{channel-worker-group-3DUJFZJR.js → channel-worker-group-SCSKCSBJ.js} +4 -4
- package/chunks/{channel-worker-manager-E5UW2VLA.js → channel-worker-manager-AHCZCKON.js} +4 -4
- package/chunks/{channel-worker-supervisor-VN33GSEC.js → channel-worker-supervisor-BGUAVITB.js} +3 -3
- package/chunks/{chunk-3LLEB5CU.js → chunk-24ZB2JNI.js} +2 -2
- package/chunks/{chunk-5NUKK2DT.js → chunk-25FMWESU.js} +47 -8
- package/chunks/{chunk-3WWPEFMX.js → chunk-2FQM443D.js} +82 -4
- package/chunks/{chunk-VEXUA6DX.js → chunk-2FRZ4ZP2.js} +13 -11
- package/chunks/{chunk-WBSJ6VPZ.js → chunk-2GNZTJRK.js} +3 -3
- package/chunks/{chunk-YP2K3WOS.js → chunk-2VWXODMY.js} +7 -4
- package/chunks/{chunk-L2A5VBDL.js → chunk-2ZCLSPE4.js} +9 -9
- package/chunks/{chunk-KEM7MWS7.js → chunk-366JNNY7.js} +6 -4
- package/chunks/{chunk-TKF4JINY.js → chunk-3FEGERVL.js} +1 -1
- package/chunks/{chunk-TDKUXSJO.js → chunk-3MW6PPA5.js} +1 -1
- package/chunks/{chunk-4LIPOIXS.js → chunk-3NHJLWOD.js} +1 -1
- package/chunks/{chunk-3UGMLA4V.js → chunk-3V7RNGLC.js} +10 -10
- package/chunks/{chunk-XICCGDWF.js → chunk-3WIPATJX.js} +2 -2
- package/chunks/chunk-43QUA4MC.js +135 -0
- package/chunks/{chunk-Q2SAQTEJ.js → chunk-4B7U3KQP.js} +1 -1
- package/chunks/{chunk-SFL6U7U7.js → chunk-4JFRCIMW.js} +2 -2
- package/chunks/{chunk-TPY6HW55.js → chunk-4OZY6LN2.js} +12 -6
- package/chunks/{chunk-IVFTLUZD.js → chunk-4SZ2636R.js} +3 -3
- package/chunks/{chunk-7CLLH5TI.js → chunk-4YS7RMCB.js} +6 -4
- package/chunks/{chunk-NQ272MQG.js → chunk-5XK2YELE.js} +7 -5
- package/chunks/{chunk-HX4WXX3H.js → chunk-65YADOPT.js} +89 -74
- package/chunks/chunk-6C3D7BKK.js +153 -0
- package/chunks/{chunk-DC4ZNGH4.js → chunk-6DB6UHY3.js} +3 -3
- package/chunks/{chunk-WZWTY7SG.js → chunk-6IW6SX75.js} +6 -6
- package/chunks/{chunk-HYHSMTRA.js → chunk-6XRR4RYH.js} +4 -4
- package/chunks/{chunk-AXPOOQAW.js → chunk-736AZVPL.js} +2 -2
- package/chunks/{chunk-UQGRJTDK.js → chunk-7JWD2EML.js} +3 -3
- package/chunks/{chunk-BUQN5LTI.js → chunk-7PQ65Z5F.js} +2 -2
- package/chunks/{chunk-43Y26NPF.js → chunk-A5EWSUYT.js} +3 -3
- package/chunks/{chunk-VQDWCQOE.js → chunk-ANKISCKU.js} +1 -0
- package/chunks/{chunk-NXUZFW3G.js → chunk-AUFTA63J.js} +1 -1
- package/chunks/{chunk-4QPVZA5J.js → chunk-AVVSSP4R.js} +3 -3
- package/chunks/{chunk-36SDZ2Q4.js → chunk-B3HGO6BB.js} +7 -5
- package/chunks/{chunk-6USYH3EU.js → chunk-B3XJFEEH.js} +5 -3
- package/chunks/{chunk-GSKX53AN.js → chunk-BA6AXQDA.js} +1 -1
- package/chunks/{chunk-FBY32737.js → chunk-BHHR5MEI.js} +4 -4
- package/chunks/{chunk-FX6PZBOV.js → chunk-BJ2TJY7V.js} +4 -4
- package/chunks/chunk-BKVPLSEI.js +133 -0
- package/chunks/chunk-BQMSZSG6.js +21 -0
- package/chunks/{chunk-BW2SMO6L.js → chunk-BXAU2UKM.js} +1 -1
- package/chunks/{chunk-3LMDSCLU.js → chunk-C4FISGDN.js} +2 -2
- package/chunks/{chunk-XFFRI3WM.js → chunk-CA63HYHU.js} +4 -2
- package/chunks/{chunk-IXO2OCIP.js → chunk-CKNBSVBC.js} +12 -8
- package/chunks/{chunk-347O2YZJ.js → chunk-CNG7ILRW.js} +39 -61
- package/chunks/chunk-CQULG2GJ.js +1330 -0
- package/chunks/{chunk-VVI7MK3V.js → chunk-CTGMXP4A.js} +9 -7
- package/chunks/{chunk-QT6Z2IBF.js → chunk-CYFQLCCG.js} +2 -2
- package/chunks/chunk-DBDJRURL.js +42 -0
- package/chunks/{chunk-X7AYIXC7.js → chunk-DJLCK66M.js} +5 -3
- package/chunks/chunk-DJYHML3Y.js +121 -0
- package/chunks/{chunk-MO4XID7S.js → chunk-DNDECZXY.js} +3 -3
- package/chunks/{chunk-D7JMO2GP.js → chunk-DNHL4S5B.js} +1 -1
- package/chunks/{chunk-WL36KHUQ.js → chunk-DTSG4EHA.js} +11 -9
- package/chunks/{chunk-M23GFJ5B.js → chunk-EHMLJKF5.js} +1 -1
- package/chunks/{chunk-TIGXX4PA.js → chunk-EKBQJ627.js} +2 -2
- package/chunks/{chunk-RSWBT7AZ.js → chunk-ERIBG3BX.js} +35 -551
- package/chunks/{chunk-PPJSG2PU.js → chunk-EVZT24AF.js} +6 -142
- package/chunks/{chunk-E2VSBAFA.js → chunk-FL2EJUOY.js} +5 -5
- package/chunks/{chunk-2C5TR6HN.js → chunk-FSNLTHNG.js} +1 -1
- package/chunks/chunk-FTKXJMQV.js +255 -0
- package/chunks/{chunk-TRZ22SG5.js → chunk-FXPP7VLM.js} +6 -4
- package/chunks/{chunk-CDDP4ONL.js → chunk-G3PBYAGM.js} +60 -134
- package/chunks/{chunk-AEWCOE64.js → chunk-GACWUBXV.js} +2 -2
- package/chunks/{chunk-OWUAZXXN.js → chunk-GHG4PQY2.js} +3 -3
- package/chunks/{chunk-VU3XMZ5I.js → chunk-GHZJQCSZ.js} +3 -3
- package/chunks/{chunk-FIJODK52.js → chunk-GJHAV2F7.js} +3 -3
- package/chunks/{chunk-36NRLIR6.js → chunk-GQZA7EYC.js} +11 -11
- package/chunks/{chunk-4JFLRHNE.js → chunk-GVHYY2RS.js} +1 -1
- package/chunks/{chunk-H6L4NEAT.js → chunk-GVMXFXQG.js} +1 -1
- package/chunks/{chunk-G45B3INR.js → chunk-GVTAFLWB.js} +2 -2
- package/chunks/{chunk-GJKP6XOB.js → chunk-GW5SJ3II.js} +16 -19
- package/chunks/{chunk-AQP3H22J.js → chunk-GY7FOHQP.js} +1 -1
- package/chunks/chunk-GZ5MEGA3.js +44 -0
- package/chunks/{chunk-FCPJXKDG.js → chunk-HA6DKD44.js} +9 -9
- package/chunks/{chunk-FEDFZBGR.js → chunk-HR4OWLKI.js} +3 -3
- package/chunks/{chunk-CXY6BICQ.js → chunk-HWKWZSZY.js} +162 -109
- package/chunks/{chunk-K4XMAIRX.js → chunk-I3NKMMHS.js} +12 -12
- package/chunks/{chunk-QMENOK5T.js → chunk-IH4TNUVS.js} +9 -7
- package/chunks/{chunk-FASYATAZ.js → chunk-IHUOMYBO.js} +1 -1
- package/chunks/{chunk-IZ2U57NY.js → chunk-IITTKFWM.js} +4 -2
- package/chunks/{chunk-M22WLKLI.js → chunk-IQGEZOGN.js} +7 -7
- package/chunks/chunk-IVPSLX4P.js +578 -0
- package/chunks/{chunk-BTICBRPL.js → chunk-IWMYX5LB.js} +3 -3
- package/chunks/{chunk-V4JJAVHQ.js → chunk-JCIDHFSB.js} +2 -2
- package/chunks/{chunk-PF7GAP6K.js → chunk-JENFAGVX.js} +65 -54
- package/chunks/{chunk-LO2UWNO5.js → chunk-JFEWKEKG.js} +3 -3
- package/chunks/{chunk-BHG3H6OZ.js → chunk-JJVDKHQU.js} +1 -1
- package/chunks/chunk-JYGESWZM.js +149 -0
- package/chunks/{chunk-KVC7HZWK.js → chunk-JYTJ5FCM.js} +1 -1
- package/chunks/{chunk-KVQ3QL4K.js → chunk-KCL6OMCX.js} +3 -3
- package/chunks/{chunk-3HTUE6ZR.js → chunk-KCRV4F3G.js} +4 -4
- package/chunks/{chunk-3WILPKTJ.js → chunk-KKPIFWTZ.js} +11 -6
- package/chunks/{chunk-CXONOVBN.js → chunk-KS6F6LZQ.js} +8 -6
- package/chunks/chunk-KSEKRQJO.js +253 -0
- package/chunks/{chunk-P42KMMU6.js → chunk-KWTLCPYY.js} +19 -6
- package/chunks/{chunk-U4AASWUQ.js → chunk-L4GF4IK2.js} +3 -3
- package/chunks/{chunk-5FK4MSHB.js → chunk-LADOQIYQ.js} +6 -4
- package/chunks/{chunk-DJXSOEFB.js → chunk-LAE6RY3L.js} +1 -1
- package/chunks/{chunk-CQPM66MG.js → chunk-LG475XAV.js} +4 -4
- package/chunks/{chunk-3BZI5GDP.js → chunk-M5YIHMXP.js} +6 -4
- package/chunks/{chunk-6WXVEDT2.js → chunk-MC2RYJMU.js} +5 -3
- package/chunks/chunk-MNU36NGH.js +233 -0
- package/chunks/{chunk-M4U2LTD2.js → chunk-MS4SXNJ6.js} +1 -1
- package/chunks/{chunk-ZFHKUQZ4.js → chunk-NEVUE35Z.js} +5 -5
- package/chunks/{chunk-DRAX5YAI.js → chunk-NFC4WTY2.js} +6 -4
- package/chunks/{chunk-SOLRBF7L.js → chunk-NSKNTJHU.js} +10 -10
- package/chunks/{chunk-B5TJK7B3.js → chunk-NZRX5WYI.js} +1 -1
- package/chunks/{chunk-YM6KUQ2S.js → chunk-O4A2B6V2.js} +3 -3
- package/chunks/{chunk-DX6JTDMR.js → chunk-OB57Y2WH.js} +1 -1
- package/chunks/{chunk-INN5ORKX.js → chunk-OLFTIODD.js} +1 -1
- package/chunks/chunk-PF3RVYRK.js +108 -0
- package/chunks/{chunk-WSJI6ODG.js → chunk-PGMF3LSO.js} +29 -27
- package/chunks/{chunk-OALXNGUA.js → chunk-PJ3GAHED.js} +10 -10
- package/chunks/{chunk-XWJFDJZK.js → chunk-PJSZXERN.js} +1 -1
- package/chunks/{chunk-GSAOVDTH.js → chunk-POMFSBEC.js} +4 -4
- package/chunks/{chunk-EWNKP4V4.js → chunk-PPVM7YLS.js} +1 -1
- package/chunks/{chunk-WK6DEH3Q.js → chunk-PQQV3OBW.js} +6 -4
- package/chunks/{chunk-BHVF3R6B.js → chunk-PZT2654P.js} +4 -4
- package/chunks/{chunk-ZSTCM3MX.js → chunk-Q5N5NEVT.js} +1 -1
- package/chunks/{chunk-KFFCDLKV.js → chunk-QE36VXWP.js} +1 -1
- package/chunks/{chunk-V545KI73.js → chunk-QPTE6BKL.js} +1 -1
- package/chunks/{chunk-5VQR2DD7.js → chunk-QQPRTJOM.js} +5 -3
- package/chunks/{chunk-QIPLWW6Q.js → chunk-QU7T5PKF.js} +1 -1
- package/chunks/{chunk-Y2KJC55Y.js → chunk-QYT7J3UM.js} +4 -4
- package/chunks/{chunk-SFHX5G2S.js → chunk-R34ALEH5.js} +14 -14
- package/chunks/{chunk-TXTCM3TC.js → chunk-R4DAJXOV.js} +18 -14
- package/chunks/{chunk-2GP6BQ2J.js → chunk-RA6PKQVM.js} +2 -2
- package/chunks/{chunk-HXUI5D4H.js → chunk-RDN5ITXF.js} +1 -1
- package/chunks/{chunk-G6UUOCUT.js → chunk-RMI3DKMV.js} +1 -1
- package/chunks/chunk-RSFNJ6UU.js +1252 -0
- package/chunks/{chunk-EDIDYZBT.js → chunk-RVT5L74D.js} +1 -1
- package/chunks/{chunk-GI7SLDOI.js → chunk-RXP5FVC4.js} +6 -6
- package/chunks/chunk-S34QJ6IR.js +290 -0
- package/chunks/chunk-S5BHLTHK.js +190 -0
- package/chunks/{chunk-2XRE4KE4.js → chunk-S7BE3FMA.js} +1 -1
- package/chunks/{chunk-7O5PYQ3M.js → chunk-SBP43AO6.js} +1 -1
- package/chunks/chunk-SLHYLVRW.js +1377 -0
- package/chunks/{chunk-HNFKYKHH.js → chunk-SMAAYU3F.js} +16 -16
- package/chunks/{chunk-KAYC5FBN.js → chunk-SNPYTKXI.js} +825 -234
- package/chunks/{chunk-IKBEIDOH.js → chunk-SOZJODVX.js} +13 -13
- package/chunks/{chunk-Y4NNIGYO.js → chunk-SSFOFDNL.js} +1 -1
- package/chunks/{chunk-WNQIJTOP.js → chunk-SSGVTJ2W.js} +243 -17
- package/chunks/{chunk-NFXXBWSE.js → chunk-SU64336V.js} +2 -2
- package/chunks/chunk-TFDCK56Y.js +154 -0
- package/chunks/{chunk-JRHKM3YQ.js → chunk-TS4JJ7NN.js} +2 -2
- package/chunks/{chunk-C4HBZQNH.js → chunk-U3MTHCJF.js} +1 -1
- package/chunks/{chunk-AUX2FL5T.js → chunk-UBQVV7MX.js} +625 -6
- package/chunks/{chunk-B6RMK4ED.js → chunk-UHBYCY7U.js} +9 -7
- package/chunks/{chunk-Y53DG2HA.js → chunk-UIWUFHRJ.js} +1 -1
- package/chunks/chunk-UQRDQCWF.js +102 -0
- package/chunks/{chunk-NKTMUPHJ.js → chunk-UVMU7DDP.js} +5 -3
- package/chunks/chunk-UXEI7POA.js +273 -0
- package/chunks/chunk-V2XJJTAB.js +228 -0
- package/chunks/chunk-VDNCKE2O.js +24 -0
- package/chunks/{chunk-YQQ2U7AS.js → chunk-VISF4MEY.js} +1 -1
- package/chunks/{chunk-RRI764F7.js → chunk-VPFKSRAB.js} +13 -11
- package/chunks/chunk-VPGRGNNH.js +578 -0
- package/chunks/{chunk-SYMXYRM5.js → chunk-W7JWIIRC.js} +1 -1
- package/chunks/{chunk-AZCTY64Z.js → chunk-WEUQIY3Q.js} +1 -1
- package/chunks/{chunk-SSWTA7CH.js → chunk-WIKUMTAB.js} +12 -12
- package/chunks/chunk-WL2CTQGT.js +1625 -0
- package/chunks/chunk-WL2V7PTE.js +78 -0
- package/chunks/{chunk-Q54O3EIA.js → chunk-WSZ6VS24.js} +45 -30
- package/chunks/{chunk-UZSB57EV.js → chunk-WX4W3FCV.js} +5 -5
- package/chunks/{chunk-OSG23MR3.js → chunk-X3T5IOX6.js} +2 -2
- package/chunks/{chunk-EIBECN2J.js → chunk-XGHVF5DC.js} +5 -5
- package/chunks/{chunk-D3KVGQUV.js → chunk-XJ52OCCN.js} +4 -4
- package/chunks/{chunk-YZXSDPOQ.js → chunk-XMAIUTED.js} +84 -40
- package/chunks/{chunk-QGEISOJ2.js → chunk-XQBZZVJA.js} +3 -3
- package/chunks/{chunk-OZEV3R3S.js → chunk-XYAB5R6E.js} +3 -3
- package/chunks/chunk-XZA32HII.js +19 -0
- package/chunks/{chunk-4FLUQWJ4.js → chunk-Y3Q5OK4D.js} +1 -1
- package/chunks/chunk-YDERQ7ZV.js +248 -0
- package/chunks/{chunk-AKRSSKUT.js → chunk-YFHX6MOF.js} +10 -10
- package/chunks/{chunk-ZMYKNKET.js → chunk-YPJZDZMP.js} +3 -3
- package/chunks/{chunk-3XBUCOWS.js → chunk-YSD6IY6F.js} +2 -2
- package/chunks/{chunk-CH2YDT6X.js → chunk-YVYK3JYU.js} +5 -3
- package/chunks/{chunk-YL3UJML3.js → chunk-YWDVNBGE.js} +4 -4
- package/chunks/{chunk-C3T6HPNM.js → chunk-ZGADNVME.js} +5 -5
- package/chunks/{chunk-M3JGHRMQ.js → chunk-ZJ7KIWG5.js} +1 -1
- package/chunks/{chunk-QHSOINX6.js → chunk-ZJBYZN5D.js} +2 -2
- package/chunks/{chunk-SYROIHU7.js → chunk-ZRQGTRHA.js} +4 -2
- package/chunks/{chunk-NCPFOLM2.js → chunk-ZTBP4SFC.js} +78 -18
- package/chunks/{chunk-ZAFYHRVY.js → chunk-ZYDMQCQP.js} +4 -274
- package/chunks/clip-audio-SH4L7AEY.js +255 -0
- package/chunks/clip-image-BQRPECIS.js +239 -0
- package/chunks/clip-video-JIRMV5IH.js +277 -0
- package/chunks/{codex-subagent-executor-AEAIQZDC.js → codex-subagent-executor-Y5ILNWG6.js} +92 -68
- package/chunks/config-3X4AXU45.js +21 -0
- package/chunks/config-T5RO4NJV.js +17 -0
- package/chunks/config-utils-3YNEDKT4.js +151 -0
- package/chunks/contextCommand-7JVXVYN4.js +144 -0
- package/chunks/convert-image-D52K2FFB.js +231 -0
- package/chunks/{core-runtime-ZI4RTOJQ.js → core-runtime-6IZNPJUN.js} +92 -67
- package/chunks/{create-sub-session-BBWFQARJ.js → create-sub-session-5XHUO2PW.js} +90 -66
- package/chunks/{create-sub-session-MSGNIM37.js → create-sub-session-6EDEANCD.js} +7 -5
- package/chunks/{cron-create-U2JJ5CCF.js → cron-create-GS7ORRO6.js} +8 -5
- package/chunks/{cron-delete-7DM4LJWD.js → cron-delete-3GGDNNXD.js} +8 -5
- package/chunks/{cron-list-VCUSZK2Y.js → cron-list-EX27DW4H.js} +8 -5
- package/chunks/{daemon-git-worktree-guard-KECEMV6A.js → daemon-git-worktree-guard-BULXRIDA.js} +90 -66
- package/chunks/daemon-status-provider-VSVXVY4O.js +155 -0
- package/chunks/daemon-trust-policy-WVSDS2WT.js +150 -0
- package/chunks/{daemon-trust-policy-monitor-546N5ZVL.js → daemon-trust-policy-monitor-HXQ2GLTX.js} +95 -71
- package/chunks/deferred-core-runtime-EXI7LXLE.js +153 -0
- package/chunks/{display-image-QTHALY6N.js → display-image-FTWDRBOP.js} +10 -7
- package/chunks/{dist-BNW423XT.js → dist-CXDHIHN4.js} +5 -0
- package/chunks/downsample-audio-LPDWX6GF.js +217 -0
- package/chunks/downsample-image-A5JEYIV5.js +249 -0
- package/chunks/downscale-video-4W5BX5KO.js +249 -0
- package/chunks/{earlyInputCapture-BXP7V2P3.js → earlyInputCapture-UJ3KFVZQ.js} +3 -2
- package/chunks/{edit-CMSQB7NP.js → edit-JJ34NKRC.js} +68 -56
- package/chunks/{en-56QLKXS2.js → en-FCK6MBTI.js} +16 -0
- package/chunks/{enter-worktree-DA6A4XC5.js → enter-worktree-QK7DR5EF.js} +12 -9
- package/chunks/{enterPlanMode-UDPMNESD.js → enterPlanMode-H6FBPVLB.js} +62 -51
- package/chunks/environment-7DMLANWW.js +167 -0
- package/chunks/errors-OH3DYEDL.js +151 -0
- package/chunks/{exec-RPKEY6HP.js → exec-7CFNHYCV.js} +31 -9
- package/chunks/{exit-worktree-4H6Z2VQI.js → exit-worktree-62COYIHF.js} +14 -10
- package/chunks/exitPlanMode-5YR5VWXS.js +102 -0
- package/chunks/extract-audio-GSSZQV6G.js +229 -0
- package/chunks/extract-keyframes-Q6DRMQAJ.js +621 -0
- package/chunks/{fast-path-F2CYDDZ4.js → fast-path-4DS2GR5O.js} +5 -5
- package/chunks/ffmpeg-N4LIIVNR.js +21 -0
- package/chunks/{glob-Z2JMJKKN.js → glob-GFID3F3R.js} +63 -51
- package/chunks/{goal-tools-HXVVLGCV.js → goal-tools-2OB5WPNH.js} +59 -49
- package/chunks/{grep-H2I33VAO.js → grep-JB5DGQ3B.js} +13 -9
- package/chunks/handleAutoUpdate-5OQL4YBU.js +147 -0
- package/chunks/i18n-TV5G7SXO.js +164 -0
- package/chunks/{image-gen-HIAZCB5T.js → image-gen-LX3C4V3R.js} +16 -11
- package/chunks/initializer-R2EI4UJ6.js +151 -0
- package/chunks/installationInfo-HYOWC3BN.js +145 -0
- package/chunks/{keychain-token-storage-NQ5XWIPX.js → keychain-token-storage-ZZNRE6D4.js} +3 -2
- package/chunks/list-ORJQQUNR.js +154 -0
- package/chunks/{list-agents-EWDCEPIW.js → list-agents-HS6HH4DJ.js} +10 -7
- package/chunks/{llm-LSUBOJAR.js → llm-YKBQVN7S.js} +159 -134
- package/chunks/{llm-content-generator-MLIONRXE.js → llm-content-generator-QJBXJRKT.js} +11 -9
- package/chunks/loadedSettingsAdapter-4FQH6Y3D.js +148 -0
- package/chunks/{loggingContentGenerator-TUPEXFMM.js → loggingContentGenerator-DEOANG3F.js} +74 -63
- package/chunks/{loop-wakeup-ZBVRI6VH.js → loop-wakeup-4B7OY3TV.js} +9 -6
- package/chunks/{ls-6ZB3BEIR.js → ls-EZ5PSWU2.js} +8 -5
- package/chunks/{lsp-M54FQARP.js → lsp-DYFFHKB3.js} +6 -3
- package/chunks/{managed-npm-update-WEA5XMFZ.js → managed-npm-update-36U25ZEZ.js} +91 -67
- package/chunks/mcp-ZI7LXLAQ.js +148 -0
- package/chunks/memory-side-query-DRV7FXK4.js +221 -0
- package/chunks/model-call-collection-RX7C24YP.js +171 -0
- package/chunks/model-configuration-3JIO6IRV.js +161 -0
- package/chunks/modelConfigUtils-2BJQI2S4.js +140 -0
- package/chunks/{monitor-CI7YE7MT.js → monitor-LXQRI2IF.js} +63 -51
- package/chunks/nonInteractiveCli-HRXVUV2H.js +235 -0
- package/chunks/nonInteractiveToolExecutor-QPAIKNPL.js +101 -0
- package/chunks/{notebook-edit-3WCVRNGL.js → notebook-edit-5CM3VYNK.js} +63 -52
- package/chunks/ocr-image-Q4HYJ3U7.js +252 -0
- package/chunks/omni-A5XLPNSH.js +147 -0
- package/chunks/{openaiContentGenerator-OGILGUZE.js → openaiContentGenerator-O5G3QCHX.js} +36 -31
- package/chunks/{openaiResponsesContentGenerator-NXOXUPFM.js → openaiResponsesContentGenerator-W2V7AYVE.js} +12 -10
- package/chunks/pidfile-MI5FGYF5.js +151 -0
- package/chunks/{processUtils-O4II3RYH.js → processUtils-EWKUPVJH.js} +2 -2
- package/chunks/prompt-terminal-ledger-5HEXZMWT.js +143 -0
- package/chunks/{qwenContentGenerator-I4LRYADV.js → qwenContentGenerator-HHNDIW2Q.js} +70 -60
- package/chunks/{qwenOAuth2-3J66TOT5.js → qwenOAuth2-GD3UIYUP.js} +9 -8
- package/chunks/reactive-degrade-KWCJUHXH.js +375 -0
- package/chunks/read-file-ZQKBXJSH.js +37 -0
- package/chunks/{read-mcp-resource-LPSWXVOD.js → read-mcp-resource-INJIV3UC.js} +8 -4
- package/chunks/recall-media-memory-tool-PEE2BWRY.js +198 -0
- package/chunks/{record-artifact-L3CFJOMA.js → record-artifact-KKW3AIMJ.js} +6 -4
- package/chunks/record-source-2VSQINX6.js +24 -0
- package/chunks/{report-findings-LY5HQY4K.js → report-findings-OZSLWYAS.js} +7 -5
- package/chunks/{request-shutdown-53SNYGVR.js → request-shutdown-3RUGTWRR.js} +12 -9
- package/chunks/resumeHistoryUtils-5V3KISJ6.js +156 -0
- package/chunks/ripGrep-F5MM4HGA.js +43 -0
- package/chunks/{run-qwen-serve-ZVEKGS7Y.js → run-qwen-serve-3K3D5MSR.js} +70 -70
- package/chunks/{runtime-SJCRYNPA.js → runtime-FAWN3GQH.js} +98 -74
- package/chunks/sandbox-BPRE7KYF.js +170 -0
- package/chunks/sandboxConfig-V3OHETXW.js +138 -0
- package/chunks/scheduled-tasks-LB2PINB3.js +167 -0
- package/chunks/scheduler-NHAWKARI.js +160 -0
- package/chunks/{sdk-exporters-http-DR4G663K.js → sdk-exporters-http-SWXTEEVT.js} +3 -2
- package/chunks/{sdk-impl-SJR26MQF.js → sdk-impl-FK4JY6LX.js} +5 -4
- package/chunks/{send-message-DN76MXDX.js → send-message-TLF36UW2.js} +16 -13
- package/chunks/serve-UQL5X5K7.js +156 -0
- package/chunks/{server-UHMKPCAZ.js → server-3HUUEDUC.js} +286 -261
- package/chunks/{session-ZLUK7E4P.js → session-XODWSTJ3.js} +151 -127
- package/chunks/session-attachments-root-BENUIMZM.js +141 -0
- package/chunks/{session-pr-refresh-3OMTQWCZ.js → session-pr-refresh-CSRULMTI.js} +95 -71
- package/chunks/{settings-P4DHIIUP.js → settings-42FFX5TK.js} +94 -70
- package/chunks/{shell-IMFUVQQ5.js → shell-NLNU2TPF.js} +59 -49
- package/chunks/{skill-NB5RJGZW.js → skill-KIRNNJMK.js} +22 -17
- package/chunks/skill-settings-MPHPE43F.js +164 -0
- package/chunks/spawnChannel-TXNLXP2R.js +152 -0
- package/chunks/standalone-update-XAC364AM.js +156 -0
- package/chunks/{start-opentui-ui-JKAIWGF7.js → start-opentui-ui-3OLDXRMX.js} +223 -189
- package/chunks/{startInteractiveUI-YRPOT6GH.js → startInteractiveUI-UB2HRTV7.js} +339 -295
- package/chunks/storage-VZECDJNX.js +17 -0
- package/chunks/{syntheticOutput-EX5L5GYI.js → syntheticOutput-SSXJ2NEY.js} +5 -3
- package/chunks/task-create-EEMYF6LY.js +30 -0
- package/chunks/{task-list-ZLJSMRFA.js → task-list-GA5GOR74.js} +9 -6
- package/chunks/{task-stop-MD7P6QGK.js → task-stop-3MXTDL7H.js} +6 -3
- package/chunks/{task-update-3LSYQDRW.js → task-update-JSBHKL4L.js} +16 -13
- package/chunks/{team-create-2XTBYRJF.js → team-create-VES6TOBA.js} +62 -51
- package/chunks/{team-delete-RIDINW6I.js → team-delete-V2CROTI6.js} +9 -6
- package/chunks/{team-plan-approval-CFNWW7ZQ.js → team-plan-approval-ZMCHBBUM.js} +61 -50
- package/chunks/terminal-image-renderer-73NDY7OJ.js +156 -0
- package/chunks/theme-manager-YG3L7BV6.js +140 -0
- package/chunks/{todoWrite-XSTG2VT5.js → todoWrite-CMBHPR66.js} +8 -5
- package/chunks/tool-result-media-V3LNDB5Q.js +45 -0
- package/chunks/{tool-search-ZHTJU2MV.js → tool-search-7XR7RHMB.js} +43 -21
- package/chunks/total-session-admission-QUZYGACG.js +151 -0
- package/chunks/transcribe-audio-AJQZPNEV.js +30 -0
- package/chunks/trustedFolders-QRII2BL7.js +160 -0
- package/chunks/understand-video-segments-5TMRDQUB.js +438 -0
- package/chunks/{update-relaunch-LI7GRP36.js → update-relaunch-735DXN5P.js} +5 -5
- package/chunks/updateCheck-FXXOM4YS.js +156 -0
- package/chunks/upload-cache-5YULQVZZ.js +17 -0
- package/chunks/upload-config-CKDIXTPK.js +25 -0
- package/chunks/useAutoAcceptIndicator-KXXTKOGD.js +158 -0
- package/chunks/{validateNonInterActiveAuth-YFPCYYNL.js → validateNonInterActiveAuth-DXCBDHIX.js} +143 -119
- package/chunks/{version-4MTL4JVU.js → version-76T4NBMQ.js} +1 -1
- package/chunks/{web-fetch-O6RG6ISB.js → web-fetch-UIDZX5RN.js} +27 -20
- package/chunks/{web-search-JHAXVEMD.js → web-search-VETWDOUJ.js} +14 -11
- package/chunks/{web-shell-static-FFWCUUZS.js → web-shell-static-XSCCMXKQ.js} +3 -3
- package/chunks/{workflow-O7L6VDYU.js → workflow-MHYBJHPP.js} +63 -52
- package/chunks/workspace-providers-status-WFBT3LS5.js +154 -0
- package/chunks/{workspace-registration-store-7G4E7YPY.js → workspace-registration-store-M3WKKBJQ.js} +1 -1
- package/chunks/workspace-registry-FIUB7MGD.js +160 -0
- package/chunks/workspace-runtime-coordinator-5Z7M36W7.js +163 -0
- package/chunks/workspace-service-TP4VRTZF.js +165 -0
- package/chunks/workspace-skills-status-CILWVQHU.js +151 -0
- package/chunks/{workspace-trust-reconciler-XEBW5FUL.js → workspace-trust-reconciler-2OPSTQNS.js} +98 -74
- package/chunks/write-file-N7NBKIYD.js +107 -0
- package/chunks/{zh-TW-S3YTQ4DS.js → zh-TW-SRB5QSER.js} +16 -0
- package/chunks/{zh-F76MZTL3.js → zh-UBQIFP4A.js} +16 -0
- package/chunks/{zoom-image-RDPRTP4B.js → zoom-image-3GHVMYEW.js} +18 -13
- package/cli.js +14 -14
- package/export-transcript-document.js +3 -3
- package/locales/en.js +18 -0
- package/locales/zh-TW.js +17 -0
- package/locales/zh.js +17 -0
- package/package.json +3 -3
- package/web-shell/assets/{abnfDiagram-VCTEODGH-RxykUDmi.js → abnfDiagram-VCTEODGH-vfbwxn7H.js} +1 -1
- package/web-shell/assets/{arc-CZpgGCJC.js → arc-BT0KMrP5.js} +1 -1
- package/web-shell/assets/{architectureDiagram-5GKGNRK7-BHSMzNDT.js → architectureDiagram-5GKGNRK7-B3TlGgP4.js} +1 -1
- package/web-shell/assets/{blockDiagram-NRAW4CY4-Bn4mF9SZ.js → blockDiagram-NRAW4CY4-DnwF5xi-.js} +1 -1
- package/web-shell/assets/{c4Diagram-UCG6FXSJ-CBM-Bj6t.js → c4Diagram-UCG6FXSJ-8qvMMfFg.js} +1 -1
- package/web-shell/assets/channel-CTm0xByY.js +1 -0
- package/web-shell/assets/{chunk-2Q5K7J3B-D5Fin58O.js → chunk-2Q5K7J3B-CHM51UX6.js} +1 -1
- package/web-shell/assets/{chunk-5VM5RSS4-CY05weF7.js → chunk-5VM5RSS4-BNXaOtyN.js} +1 -1
- package/web-shell/assets/{chunk-F27PBJKO-3neZnj5Y.js → chunk-F27PBJKO-DT-vcF3X.js} +1 -1
- package/web-shell/assets/{chunk-G27WJ6UU-Cd7EU4BE.js → chunk-G27WJ6UU-BXz8438J.js} +1 -1
- package/web-shell/assets/{chunk-JWPE2WC7-DwK1mqFw.js → chunk-JWPE2WC7-CP2ozL3M.js} +1 -1
- package/web-shell/assets/{chunk-LCL6LL3I-Sl7vY22C.js → chunk-LCL6LL3I-DTAWXvja.js} +1 -1
- package/web-shell/assets/{chunk-POPQ4Y6H-BXNzpbVg.js → chunk-POPQ4Y6H-DZENJpGx.js} +1 -1
- package/web-shell/assets/{chunk-SVP7TREG-DjjButcp.js → chunk-SVP7TREG-Dl8djRwv.js} +1 -1
- package/web-shell/assets/{chunk-XXDRQBXY-DNOiCjOJ.js → chunk-XXDRQBXY-B3lJllMA.js} +1 -1
- package/web-shell/assets/classDiagram-DTDB5LWJ-DhMuMK_E.js +1 -0
- package/web-shell/assets/classDiagram-v2-JRS7N3AN-DhMuMK_E.js +1 -0
- package/web-shell/assets/{cose-bilkent-JH36ORCC-BUnker7a.js → cose-bilkent-JH36ORCC-DeosJDcB.js} +1 -1
- package/web-shell/assets/{cynefin-OW5HDTMX-DcUgdWE5.js → cynefin-OW5HDTMX-BvqcLoHm.js} +1 -1
- package/web-shell/assets/{cynefinDiagram-5FMLGOSQ-CvDKsZsL.js → cynefinDiagram-5FMLGOSQ-BYS0pmSs.js} +1 -1
- package/web-shell/assets/{dagre-3AP2YEHR-jpCmUbr1.js → dagre-3AP2YEHR-IDScuL-R.js} +1 -1
- package/web-shell/assets/{diagram-S7CK7UJ4-DBe_bKE5.js → diagram-S7CK7UJ4-EYNlkkKJ.js} +1 -1
- package/web-shell/assets/{diagram-UQ7AKVKN-oXvPpDgs.js → diagram-UQ7AKVKN-D3x9g8Ep.js} +1 -1
- package/web-shell/assets/{diagram-VSXAHHWV-BD7-_SGh.js → diagram-VSXAHHWV-C35O1dtR.js} +1 -1
- package/web-shell/assets/{diagram-VX7I27RA-DOJL0wub.js → diagram-VX7I27RA-XvMv2aCN.js} +1 -1
- package/web-shell/assets/{diagram-Z3DM3KII-DRIiodDD.js → diagram-Z3DM3KII-CeryNvru.js} +1 -1
- package/web-shell/assets/{ebnfDiagram-PWID7BFC-Db31Ulmb.js → ebnfDiagram-PWID7BFC-DAmepjvB.js} +1 -1
- package/web-shell/assets/{erDiagram-SSCWMZ5O-CVHhwI2_.js → erDiagram-SSCWMZ5O-BkGfBZt_.js} +1 -1
- package/web-shell/assets/{flowDiagram-A5DVABFB-DWOFy1FK.js → flowDiagram-A5DVABFB-CzUCgun9.js} +1 -1
- package/web-shell/assets/{ganttDiagram-EL5Y4UJY-C0sxQtPd.js → ganttDiagram-EL5Y4UJY-BIFST90r.js} +1 -1
- package/web-shell/assets/{gitGraphDiagram-WWUBYQGX-CNituBYC.js → gitGraphDiagram-WWUBYQGX-jVvRSGcu.js} +1 -1
- package/web-shell/assets/{index-B15NlwB8.js → index-M1TfOjx2.js} +457 -457
- package/web-shell/assets/{index-gm9tLk7h.js → index-krCDFzE6.js} +1 -1
- package/web-shell/assets/{infoDiagram-RXCK75RN-CxhJYtIR.js → infoDiagram-RXCK75RN-DsU7vA4Q.js} +1 -1
- package/web-shell/assets/{ishikawaDiagram-5VMMS53U-By2mchUy.js → ishikawaDiagram-5VMMS53U-K9mTNAbN.js} +1 -1
- package/web-shell/assets/{journeyDiagram-EYS64GPL-CVH-OweI.js → journeyDiagram-EYS64GPL-BKuHLGxv.js} +1 -1
- package/web-shell/assets/{kanban-definition-3QL26DDD-Cc9dQXLy.js → kanban-definition-3QL26DDD-CXG9frQ_.js} +1 -1
- package/web-shell/assets/{layout-C_60ysHw.js → layout-6G_l7UoH.js} +1 -1
- package/web-shell/assets/{linear-BvAVfqwu.js → linear-DYpvB2mh.js} +1 -1
- package/web-shell/assets/{mermaid.core-C3CoBKAc.js → mermaid.core-Sj3dJttQ.js} +6 -6
- package/web-shell/assets/{mindmap-definition-FBJOCRG2-Cuu8Q8LM.js → mindmap-definition-FBJOCRG2-DNJ1e6qd.js} +1 -1
- package/web-shell/assets/{pegDiagram-XKGWAZYB-DmAeyDO2.js → pegDiagram-XKGWAZYB-D-KPklHv.js} +1 -1
- package/web-shell/assets/{pieDiagram-E7YTZNPT-B7vbB_xv.js → pieDiagram-E7YTZNPT-BQPm03g2.js} +1 -1
- package/web-shell/assets/{quadrantDiagram-AXDQQJYC-BqOBkRR7.js → quadrantDiagram-AXDQQJYC-BubBXSqD.js} +1 -1
- package/web-shell/assets/{railroadDiagram-O6MQD6OU-sI06lZIu.js → railroadDiagram-O6MQD6OU-DatD6KIT.js} +1 -1
- package/web-shell/assets/{requirementDiagram-EFPCY7ZU-Bg13d10S.js → requirementDiagram-EFPCY7ZU-DiQ6jsZY.js} +1 -1
- package/web-shell/assets/{sankeyDiagram-P5KCCOFB-WFOzZHrR.js → sankeyDiagram-P5KCCOFB-C07fyxbH.js} +1 -1
- package/web-shell/assets/{sequenceDiagram-WJ2MYXX4-CCdRbA4E.js → sequenceDiagram-WJ2MYXX4-DWXtsWzI.js} +1 -1
- package/web-shell/assets/{sizeCapture-X5ZJPWSS-BH5F3bGg.js → sizeCapture-X5ZJPWSS-B0cQ1v0l.js} +1 -1
- package/web-shell/assets/{stateDiagram-HBIQ2CUA-NwS2X3QB.js → stateDiagram-HBIQ2CUA-zHgWc00n.js} +1 -1
- package/web-shell/assets/stateDiagram-v2-4QOOHH4V-C-3ZC2nf.js +1 -0
- package/web-shell/assets/{swimlanes-XN3QIQJK-Bm38pM28.js → swimlanes-XN3QIQJK-Dnrrhu0H.js} +1 -1
- package/web-shell/assets/swimlanesDiagram-VK2B7HYN-Ded1L5cw.js +8 -0
- package/web-shell/assets/{timeline-definition-24CTP7MA-Do-agLSo.js → timeline-definition-24CTP7MA-8BV7W2Xq.js} +1 -1
- package/web-shell/assets/{vennDiagram-4TSXK5OY-aggLfZzl.js → vennDiagram-4TSXK5OY-tmBBtlnj.js} +1 -1
- package/web-shell/assets/{wardleyDiagram-VM6X3IG4-D5JR3mXX.js → wardleyDiagram-VM6X3IG4-Cq96T3gb.js} +1 -1
- package/web-shell/assets/{xychartDiagram-S5SC5T6Z-DhtLDuXs.js → xychartDiagram-S5SC5T6Z-Dpzx_ZGQ.js} +1 -1
- package/web-shell/index.html +1 -1
- package/chunks/MaxSizedBox-FCF6M53W.js +0 -124
- package/chunks/acp-subagent-executor-TND6W2O5.js +0 -140
- package/chunks/agent-headless-EJ4QOUSM.js +0 -94
- package/chunks/bridge-MUX5YJZT.js +0 -132
- package/chunks/channel-settings-store-7CBIRZER.js +0 -134
- package/chunks/config-utils-KX2YS725.js +0 -127
- package/chunks/contextCommand-RV6Y5LNJ.js +0 -120
- package/chunks/daemon-status-provider-NULJNAEV.js +0 -131
- package/chunks/daemon-trust-policy-S4KWGPV3.js +0 -126
- package/chunks/deferred-core-runtime-T23ZT443.js +0 -128
- package/chunks/environment-TSQJUTPV.js +0 -143
- package/chunks/errors-RIVYJS6T.js +0 -127
- package/chunks/exitPlanMode-BYBBFN2T.js +0 -92
- package/chunks/handleAutoUpdate-FZP45KOR.js +0 -123
- package/chunks/i18n-OTB62AKW.js +0 -140
- package/chunks/initializer-4JXZEC4B.js +0 -127
- package/chunks/installationInfo-2IJV5QKC.js +0 -121
- package/chunks/list-KQSQ4A5G.js +0 -130
- package/chunks/loadedSettingsAdapter-TZTTNRHI.js +0 -124
- package/chunks/mcp-TFDTUPIA.js +0 -124
- package/chunks/model-configuration-ZCAKKIOF.js +0 -137
- package/chunks/modelConfigUtils-J3ZPW7ZK.js +0 -116
- package/chunks/nonInteractiveCli-GPT3TVOK.js +0 -211
- package/chunks/pidfile-GBTBIGHF.js +0 -127
- package/chunks/prompt-terminal-ledger-ILIXZI3E.js +0 -119
- package/chunks/read-file-G4XKW2CS.js +0 -31
- package/chunks/record-source-2GSY5JD5.js +0 -22
- package/chunks/resumeHistoryUtils-YPJU4XFE.js +0 -132
- package/chunks/ripGrep-AAKMALLM.js +0 -39
- package/chunks/sandbox-UIXL423Z.js +0 -146
- package/chunks/sandboxConfig-CY343YNJ.js +0 -114
- package/chunks/scheduled-tasks-5UGBEVNZ.js +0 -143
- package/chunks/scheduler-GCZYLZ2P.js +0 -136
- package/chunks/serve-2XXQLVK2.js +0 -132
- package/chunks/session-attachments-root-DHQM5IEZ.js +0 -117
- package/chunks/skill-settings-IXG5CTQO.js +0 -140
- package/chunks/spawnChannel-Q3YALTCJ.js +0 -128
- package/chunks/standalone-update-H5OJ7MM7.js +0 -132
- package/chunks/task-create-75HVPEAH.js +0 -28
- package/chunks/terminal-image-renderer-UDPJPGPQ.js +0 -132
- package/chunks/theme-manager-SK57EKMO.js +0 -116
- package/chunks/total-session-admission-UUZBDQCG.js +0 -127
- package/chunks/trustedFolders-4LDBLNTS.js +0 -136
- package/chunks/updateCheck-PKSSORPO.js +0 -132
- package/chunks/useAutoAcceptIndicator-I32UEQPI.js +0 -134
- package/chunks/workspace-providers-status-WRX6CJM4.js +0 -130
- package/chunks/workspace-registry-SXIMGT4D.js +0 -136
- package/chunks/workspace-runtime-coordinator-7DOEHXYT.js +0 -139
- package/chunks/workspace-service-HDXOZMYC.js +0 -141
- package/chunks/workspace-skills-status-VN4L37CA.js +0 -127
- package/chunks/write-file-LKX4ETIO.js +0 -97
- package/web-shell/assets/channel-DFYs_LlK.js +0 -1
- package/web-shell/assets/classDiagram-DTDB5LWJ-DnGrKXoM.js +0 -1
- package/web-shell/assets/classDiagram-v2-JRS7N3AN-DnGrKXoM.js +0 -1
- package/web-shell/assets/stateDiagram-v2-4QOOHH4V-1aU2JZXO.js +0 -1
- package/web-shell/assets/swimlanesDiagram-VK2B7HYN-Dp-u6kQG.js +0 -8
- package/chunks/{chunk-XAJZFGD2.js → chunk-PXXYQOZO.js} +8 -8
- package/chunks/{chunk-WVURIAEE.js → chunk-SVWWF5TZ.js} +3 -3
- package/chunks/{dist-G5UMXIGF.js → dist-I6D6XOWV.js} +1 -1
- 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-
|
|
5
|
+
} from "./chunk-CNG7ILRW.js";
|
|
6
6
|
import {
|
|
7
7
|
parseAndFormatApiError
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-SNPYTKXI.js";
|
|
9
9
|
import {
|
|
10
10
|
stripAnsiAndControl
|
|
11
|
-
} from "./chunk-
|
|
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
|
-
|
|
17
|
-
} from "./chunk-ZAFYHRVY.js";
|
|
18
|
+
FatalTurnLimitedError
|
|
19
|
+
} from "./chunk-S34QJ6IR.js";
|
|
18
20
|
import {
|
|
19
21
|
runExitCleanup
|
|
20
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-GVMXFXQG.js";
|
|
21
23
|
import {
|
|
22
24
|
writeStderrLine
|
|
23
25
|
} from "./chunk-7FA2II6K.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-
|
|
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-
|
|
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
|
+
*/
|