@qwen-code/qwen-code 0.21.6 → 0.21.7-nightly.20260808.4ec0371e6
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/configuration/settings.md +50 -31
- package/bundled/qc-helper/docs/features/channels/dingtalk.md +41 -3
- package/bundled/qc-helper/docs/features/channels/feishu.md +13 -2
- package/bundled/qc-helper/docs/features/channels/github.md +13 -11
- package/bundled/qc-helper/docs/features/channels/gitlab.md +13 -11
- package/bundled/qc-helper/docs/features/channels/overview.md +49 -31
- package/bundled/qc-helper/docs/features/channels/plugins.md +2 -2
- package/bundled/qc-helper/docs/features/channels/qqbot.md +4 -2
- package/bundled/qc-helper/docs/features/channels/telegram.md +4 -2
- package/bundled/qc-helper/docs/features/channels/wecom.md +1 -1
- package/bundled/qc-helper/docs/features/code-review.md +31 -0
- package/bundled/qc-helper/docs/features/hooks.md +2 -0
- package/bundled/qc-helper/docs/qwen-serve.md +4 -1
- package/bundled/review/SKILL.md +52 -16
- package/chunks/{MaxSizedBox-2HFKP4LI.js → MaxSizedBox-COZBVNCI.js} +42 -41
- package/chunks/{StandaloneSessionPicker-RBV72M5N.js → StandaloneSessionPicker-3OF2FS6S.js} +59 -57
- package/chunks/{acpAgent-WO6JFCVQ.js → acpAgent-3JCJ6KWG.js} +236 -185
- package/chunks/{agent-AHGLYNZ4.js → agent-DBSC47CD.js} +39 -38
- package/chunks/{agent-headless-NTXKKGRO.js → agent-headless-ZJHZ7I3S.js} +39 -38
- package/chunks/{anthropicContentGenerator-3CAHEZBM.js → anthropicContentGenerator-SSFE2753.js} +15 -15
- package/chunks/{artifact-tool-RROCCJDA.js → artifact-tool-N652YE4L.js} +2 -2
- package/chunks/{askUserQuestion-2EPPBPUZ.js → askUserQuestion-ONW74PKJ.js} +2 -2
- package/chunks/{bridge-RPAU64CA.js → bridge-NFBYT4ZI.js} +43 -42
- package/chunks/{channel-management-service-IGEUOVRT.js → channel-management-service-LXSJXQGM.js} +19 -10
- package/chunks/{channel-settings-store-ON64MF7G.js → channel-settings-store-LABKDKSI.js} +46 -45
- package/chunks/{channel-worker-group-JWQK224X.js → channel-worker-group-MTW2AGT3.js} +4 -4
- package/chunks/{channel-worker-manager-77E3OXRQ.js → channel-worker-manager-UU6PTQSI.js} +4 -4
- package/chunks/{channel-worker-supervisor-62YWUGP2.js → channel-worker-supervisor-5SRD24FG.js} +3 -3
- package/chunks/{chunk-XC656O42.js → chunk-22NBYCPD.js} +3 -3
- package/chunks/{chunk-K2B3X3E7.js → chunk-26ISE5EG.js} +4 -4
- package/chunks/{chunk-Z7JILXGX.js → chunk-2UUMVNYT.js} +3 -3
- package/chunks/{chunk-ACZRB7AD.js → chunk-3ARO4N5G.js} +3 -3
- package/chunks/{chunk-CJ5WLD5Y.js → chunk-3HS6Y4UA.js} +96 -22
- package/chunks/{chunk-MBEMTXQT.js → chunk-3K7FH2KQ.js} +1 -32
- package/chunks/{chunk-QYPT3QUD.js → chunk-3ULCB3NE.js} +3 -3
- package/chunks/{chunk-IMOQO6YL.js → chunk-4Q6N3SNL.js} +1 -1
- package/chunks/{chunk-3UOLYNTF.js → chunk-4QJJHIZ5.js} +23 -14
- package/chunks/{chunk-VGFPFM4U.js → chunk-5PGKKSO6.js} +42 -16
- package/chunks/{chunk-NGJOAKJY.js → chunk-5YT3Y33M.js} +3 -3
- package/chunks/{chunk-T4JSA7KU.js → chunk-64YLXLMY.js} +3 -3
- package/chunks/{chunk-5L6CQ4ZU.js → chunk-6M26GBKX.js} +2 -2
- package/chunks/{chunk-ZPPP6VCL.js → chunk-6ZRFAKXK.js} +1 -1
- package/chunks/{chunk-OP2OHZ7K.js → chunk-764F335K.js} +18 -9
- package/chunks/{chunk-PPUOYL77.js → chunk-77WOUGCA.js} +53 -22
- package/chunks/{chunk-33FNCQSY.js → chunk-7MH4J33A.js} +2 -2
- package/chunks/{chunk-S7CV4KO6.js → chunk-AB4A73VL.js} +2 -2
- package/chunks/{chunk-O7V7N4G7.js → chunk-ACHMWGC5.js} +198 -35
- package/chunks/{chunk-NKSF7HYF.js → chunk-AG3P2RES.js} +1 -1
- package/chunks/{chunk-6PEXNQTX.js → chunk-ALFTV7GA.js} +26 -2
- package/chunks/{chunk-JELIWHXD.js → chunk-AOHJKPKL.js} +1 -1
- package/chunks/{chunk-XA4TMLFN.js → chunk-APMRLB2H.js} +580 -394
- package/chunks/{chunk-75QMRMO7.js → chunk-APNNM3JC.js} +3 -3
- package/chunks/{chunk-GLNBDYUX.js → chunk-AXMWHKXA.js} +6 -2
- package/chunks/{chunk-VNQCPBC2.js → chunk-B23P3YWE.js} +3 -3
- package/chunks/{chunk-H36SETQS.js → chunk-B2GJNDTV.js} +1 -1
- package/chunks/{chunk-Q5RM32DR.js → chunk-BCMJPTXV.js} +1 -1
- package/chunks/{chunk-A4VTILZT.js → chunk-BFSQBXHV.js} +714 -398
- package/chunks/{chunk-QMBEW7EW.js → chunk-BGG4MBYD.js} +2 -2
- package/chunks/{chunk-SLSWFHDF.js → chunk-BJKFFPX2.js} +4 -4
- package/chunks/{chunk-N2GJU6KI.js → chunk-BN3OROB3.js} +12 -12
- package/chunks/chunk-CE5UCTKO.js +3508 -0
- package/chunks/{chunk-2UISUFHQ.js → chunk-CJXIIILK.js} +3 -3
- package/chunks/{chunk-WK4TJUEA.js → chunk-CKASRHZI.js} +1 -1
- package/chunks/chunk-CPG6P4GG.js +82 -0
- package/chunks/{chunk-KKN2IE7Q.js → chunk-CTJLZLB5.js} +1 -1
- package/chunks/{chunk-DIEFUBV6.js → chunk-DIWZNWZT.js} +205 -35
- package/chunks/{chunk-CA4UIDFU.js → chunk-DPH3MUAP.js} +1 -1
- package/chunks/{chunk-4LKVQFHM.js → chunk-DREZZAZM.js} +2 -2
- package/chunks/{chunk-2DNKEBXY.js → chunk-EI3HZX6C.js} +1 -1
- package/chunks/{chunk-U25CMJYY.js → chunk-EKPKKXY2.js} +1 -1
- package/chunks/{chunk-432XCUHF.js → chunk-EQL65XGA.js} +1 -1
- package/chunks/{chunk-TYERNYH4.js → chunk-EUNWC2VS.js} +2 -2
- package/chunks/{chunk-4JH77A2U.js → chunk-EZ53KMUN.js} +1 -1
- package/chunks/{chunk-HY25ULVN.js → chunk-F3LPXDJP.js} +157 -56
- package/chunks/{chunk-D3UEZIQH.js → chunk-FJ6YHWHZ.js} +2 -2
- package/chunks/{chunk-UH7Z7Y45.js → chunk-FOGU3LJX.js} +1 -1
- package/chunks/{chunk-E4WHKETF.js → chunk-FVKHVJZQ.js} +2 -49
- package/chunks/{chunk-YZQTA3ID.js → chunk-GDXET5XU.js} +31 -3396
- package/chunks/{chunk-A5YZ3FA2.js → chunk-GM463R2B.js} +1 -1
- package/chunks/{chunk-MOHAWIAW.js → chunk-GNPNYXJB.js} +2 -2
- package/chunks/{chunk-SUKEUUAA.js → chunk-GUFY6D3E.js} +1 -1
- package/chunks/{chunk-FZFP7RZI.js → chunk-H2352CX2.js} +3 -3
- package/chunks/{chunk-GWRHVJY2.js → chunk-HKCYGZZ4.js} +22 -22
- package/chunks/{chunk-3PRJYMXC.js → chunk-HUWENAHO.js} +1 -1
- package/chunks/{chunk-G5NNWEYE.js → chunk-HY2INPTA.js} +4 -4
- package/chunks/{chunk-WVAESIM6.js → chunk-IA7TGCN2.js} +4 -4
- package/chunks/{chunk-HU5TUALO.js → chunk-IIJEYBNH.js} +3 -3
- package/chunks/{chunk-XM2O73NC.js → chunk-IMK3SJ43.js} +5703 -4343
- package/chunks/{chunk-4S4OEQ6U.js → chunk-J6SZID63.js} +2 -2
- package/chunks/{chunk-OWSW7EYP.js → chunk-JACAHYEN.js} +7 -7
- package/chunks/{chunk-R5RBXLNC.js → chunk-JRIJOZXO.js} +5 -5
- package/chunks/{chunk-SQOMTWQT.js → chunk-JSJTZ6GO.js} +4 -4
- package/chunks/{chunk-VWOVHOTT.js → chunk-KJZ26VBX.js} +1 -1
- package/chunks/{chunk-BFHXDAR7.js → chunk-KKBPOU75.js} +1 -1
- package/chunks/{chunk-TGGEZINK.js → chunk-KKRGVSHC.js} +7 -7
- package/chunks/{chunk-RK2EE3T7.js → chunk-KPMB4JEZ.js} +4 -4
- package/chunks/{chunk-MKVZE4ZJ.js → chunk-KTJFU7RT.js} +3 -2
- package/chunks/{chunk-MGSSJT27.js → chunk-L4N6TIP7.js} +5 -3
- package/chunks/{chunk-U4AF3QLU.js → chunk-L4OW63GW.js} +8 -8
- package/chunks/{chunk-C4CBJQKY.js → chunk-LDUGDB5H.js} +1 -1
- package/chunks/{chunk-W5DXUTXD.js → chunk-LDY4J4G6.js} +8 -8
- package/chunks/{chunk-GK2H5GRC.js → chunk-LMEIS6WW.js} +16 -6
- package/chunks/{chunk-6O5DVH27.js → chunk-M6HMMKVG.js} +1 -1
- package/chunks/{chunk-TOGZTG4X.js → chunk-MIA37QO3.js} +2 -2
- package/chunks/{chunk-536SWZTA.js → chunk-MV7VUCIG.js} +4 -4
- package/chunks/{chunk-T5U6IM4C.js → chunk-MVUQRLOH.js} +3 -3
- package/chunks/{chunk-GLWP3FDB.js → chunk-MZSJ43WV.js} +31 -2
- package/chunks/{chunk-UGTWD35F.js → chunk-NLREQJFK.js} +1 -1
- package/chunks/{chunk-RFUHDCNF.js → chunk-O7VQ3F22.js} +1 -1
- package/chunks/{chunk-3RXUYQJI.js → chunk-OIVKILPI.js} +49 -0
- package/chunks/{chunk-LBWNSLJK.js → chunk-ONSZH6VM.js} +2 -2
- package/chunks/{chunk-4WTAQEHV.js → chunk-OQTXYMKW.js} +3 -3
- package/chunks/{chunk-DYA25Y7U.js → chunk-OWMAZHIX.js} +1 -1
- package/chunks/{chunk-LAAFLUQV.js → chunk-P74TZRXD.js} +2 -2
- package/chunks/{chunk-BOGOR4HB.js → chunk-P7HUJDBZ.js} +7 -7
- package/chunks/chunk-PJRW65JO.js +107 -0
- package/chunks/{chunk-D7D7RXIJ.js → chunk-PYQADEFD.js} +6 -1
- package/chunks/{chunk-WO2B5E5B.js → chunk-Q3JQ7OSU.js} +1 -1
- package/chunks/{chunk-3LZKY4V4.js → chunk-QKJT5K4Q.js} +5 -5
- package/chunks/{chunk-OXX3FG2N.js → chunk-R2KZWK5Z.js} +3 -3
- package/chunks/{chunk-QZKYZCN3.js → chunk-REHWPCG2.js} +3 -3
- package/chunks/{chunk-2POQWYM6.js → chunk-RFA6VDCR.js} +3 -3
- package/chunks/{chunk-DIT4V3XH.js → chunk-RGTB44BO.js} +1 -1
- package/chunks/{chunk-SQC6K5HI.js → chunk-RPWVIXDB.js} +19 -2
- package/chunks/{chunk-ODPXHGLL.js → chunk-RZMGG3HP.js} +2 -2
- package/chunks/{chunk-2AGOQ7QO.js → chunk-S6HYI3MF.js} +118 -6
- package/chunks/chunk-SAH4BD2J.js +92 -0
- package/chunks/{chunk-JE44IPH6.js → chunk-SDUDZNF4.js} +2 -2
- package/chunks/{chunk-YAVY33G4.js → chunk-SEZ556DZ.js} +1 -1
- package/chunks/chunk-SOORFWKY.js +155 -0
- package/chunks/{chunk-KHUA3NQV.js → chunk-TAOSTUHI.js} +2 -2
- package/chunks/{chunk-VSALQLT7.js → chunk-TSYIQDG7.js} +1 -1
- package/chunks/{chunk-ULPQQSDN.js → chunk-TX3KSSDN.js} +3 -3
- package/chunks/{chunk-KVUBYJDM.js → chunk-TZEZYNYD.js} +1 -1
- package/chunks/{chunk-24ER7UV4.js → chunk-UFALT4LK.js} +1 -1
- package/chunks/{chunk-GESMMPAK.js → chunk-UKAYEQDU.js} +91 -63
- package/chunks/{chunk-XC2VAFVZ.js → chunk-UVX4Y6IN.js} +1 -1
- package/chunks/chunk-VDS2WYM5.js +244 -0
- package/chunks/{chunk-DVBEGGLG.js → chunk-VLFX3L3X.js} +10 -9
- package/chunks/{chunk-WNU7TZTO.js → chunk-VT3VNFVW.js} +3 -3
- package/chunks/{chunk-6WBWIPBF.js → chunk-WAUGQKUU.js} +4 -64
- package/chunks/{chunk-URN76TKR.js → chunk-WCG5O7IP.js} +2 -2
- package/chunks/{chunk-PX5DNLSA.js → chunk-XCG76UE6.js} +18 -10
- package/chunks/{chunk-TSERKWCX.js → chunk-XCWO3SMQ.js} +3 -3
- package/chunks/{chunk-5MJGUQU5.js → chunk-XIDHBXUI.js} +3 -3
- package/chunks/{chunk-3LGZEYOF.js → chunk-YHEEE624.js} +2 -2
- package/chunks/{chunk-SKNE3KQC.js → chunk-Z5ZAWED3.js} +19 -10
- package/chunks/{chunk-YMBOEAF4.js → chunk-Z6W3XDLN.js} +1 -1
- package/chunks/{chunk-EXCEQD22.js → chunk-ZKUJ4AO7.js} +4 -4
- package/chunks/{chunk-RHTTKJTP.js → chunk-ZQGHESAS.js} +1 -1
- package/chunks/{chunk-WUC6ZFXO.js → chunk-ZWBUH5UP.js} +1 -1
- package/chunks/{computer-use-5HXJ2P4X.js → computer-use-QLJ27OCZ.js} +39 -38
- package/chunks/{config-utils-VXD4SPVR.js → config-utils-KIEXWA4F.js} +4 -4
- package/chunks/{contextCommand-7BEHRX2H.js → contextCommand-JDTOJRBO.js} +41 -40
- package/chunks/{core-runtime-U4VJ5TIV.js → core-runtime-MZIAVYQC.js} +43 -42
- package/chunks/{create-sub-session-6EWLAZD5.js → create-sub-session-QIDZUOPU.js} +2 -2
- package/chunks/{create-sub-session-QZNQY332.js → create-sub-session-YBBCNSHE.js} +39 -38
- package/chunks/{cron-create-CCRIULJE.js → cron-create-VONA5JYY.js} +4 -4
- package/chunks/{cron-delete-FCFW6BGP.js → cron-delete-5JXSP2MI.js} +4 -4
- package/chunks/{cron-list-QDBVCHRF.js → cron-list-KE4F2CIR.js} +4 -4
- package/chunks/{daemon-YI5RY62O.js → daemon-SCTQMM7Z.js} +50 -2
- package/chunks/{daemon-status-provider-UJUGTDTL.js → daemon-status-provider-BZ7RD4ZJ.js} +47 -46
- package/chunks/{daemon-trust-policy-ZHDD5VYQ.js → daemon-trust-policy-2E4C3M7S.js} +45 -44
- package/chunks/{daemon-trust-policy-monitor-5SHYBDGA.js → daemon-trust-policy-monitor-UYLFH6RW.js} +45 -44
- package/chunks/{deferred-core-runtime-QWAEBTR5.js → deferred-core-runtime-6XZYMJZB.js} +39 -38
- package/chunks/{display-image-GUJA352B.js → display-image-NQRSIBXM.js} +4 -4
- package/chunks/{dist-SFQ34F4M.js → dist-26RK5XZO.js} +1 -1
- package/chunks/{dist-DPPHJAVL.js → dist-BATY7GI4.js} +187 -6
- package/chunks/{dist-A7H2KKUC.js → dist-HIACTZEK.js} +332 -113
- package/chunks/{dist-3BMEUGTG.js → dist-IRL7WA5Z.js} +1 -1
- package/chunks/{dist-HVBMEYWK.js → dist-KVISB2O2.js} +1 -1
- package/chunks/{dist-KS4O2NKE.js → dist-MBF3I5MX.js} +14 -8
- package/chunks/{dist-7JGAAQSC.js → dist-RCH3I7SS.js} +2 -2
- package/chunks/{dist-C5U4LJKW.js → dist-TUSWNE2I.js} +5 -4
- package/chunks/{earlyInputCapture-5BMSGKOI.js → earlyInputCapture-LATQCGDC.js} +40 -39
- package/chunks/{edit-IVQQVYYK.js → edit-72DP57CD.js} +39 -38
- package/chunks/{enter-worktree-P3DF2N6O.js → enter-worktree-B4FY2ZPP.js} +39 -38
- package/chunks/{enterPlanMode-KKTDVLAD.js → enterPlanMode-TQBWGCPL.js} +39 -38
- package/chunks/{environment-W5TRDM3G.js → environment-MOGZGZDS.js} +42 -41
- package/chunks/{errors-GJJB36IG.js → errors-PGON5GH7.js} +41 -40
- package/chunks/{exit-worktree-LV5RLOCU.js → exit-worktree-EYUD4YP2.js} +39 -38
- package/chunks/{exitPlanMode-TUGOB2LL.js → exitPlanMode-4Q7BSQXR.js} +39 -38
- package/chunks/{fast-path-2FU23PAQ.js → fast-path-WI7D5MER.js} +23 -3
- package/chunks/{fast-path-settings-WQJU2LAT.js → fast-path-settings-YBRL24DB.js} +2 -2
- package/chunks/{gemini-KDULDQPP.js → gemini-ZXURGM6Y.js} +87 -82
- package/chunks/{geminiContentGenerator-LOCFHNVA.js → geminiContentGenerator-EOODO75Y.js} +6 -6
- package/chunks/{glob-Z4NQFKWS.js → glob-QNRIUOS6.js} +39 -38
- package/chunks/{goal-tools-3AZKX5WQ.js → goal-tools-QSYW65HV.js} +3 -3
- package/chunks/{grep-Z67Z7EN6.js → grep-56MTW67B.js} +39 -38
- package/chunks/{handleAutoUpdate-DFUZE6I6.js → handleAutoUpdate-XGFIPVT4.js} +43 -42
- package/chunks/{i18n-R4FMZ7N2.js → i18n-RZB35L4B.js} +40 -39
- package/chunks/{image-gen-4CQJPQP5.js → image-gen-OE2EEKN3.js} +9 -9
- package/chunks/{initializer-DK672ZVE.js → initializer-YPVMTMKD.js} +46 -45
- package/chunks/{installationInfo-PO4Z3ES7.js → installationInfo-ZTMTMYNW.js} +40 -39
- package/chunks/{keychain-token-storage-7BT4TQ2A.js → keychain-token-storage-TVAMTNP7.js} +2 -2
- package/chunks/{list-QXQF6C53.js → list-NIW3WID5.js} +48 -47
- package/chunks/{list-agents-GC4BRET7.js → list-agents-Z4WABFDZ.js} +2 -2
- package/chunks/{loadedSettingsAdapter-4D7GUGW6.js → loadedSettingsAdapter-VSLILTOZ.js} +45 -44
- package/chunks/{loggingContentGenerator-2P3MNACM.js → loggingContentGenerator-KFZYVAGV.js} +17 -17
- package/chunks/{loop-wakeup-SQQSBMEY.js → loop-wakeup-UZ5RL5Y2.js} +5 -5
- package/chunks/{ls-63CC3NNX.js → ls-TVHDGIES.js} +4 -4
- package/chunks/{lsp-P6NVJVNT.js → lsp-CVN6OQPI.js} +2 -2
- package/chunks/{managed-npm-update-LWVJQTWO.js → managed-npm-update-WHTA2K5V.js} +40 -39
- package/chunks/{mcp-GHETAR6V.js → mcp-7KGK3CS3.js} +45 -44
- package/chunks/{monitor-4T7W4M6Q.js → monitor-FDWEJQWP.js} +39 -38
- package/chunks/nonInteractiveCli-2MVJ6TCS.js +155 -0
- package/chunks/{notebook-edit-OC2V7U5D.js → notebook-edit-ZUVK2XWE.js} +47 -38
- package/chunks/{openaiContentGenerator-RAJUFWQY.js → openaiContentGenerator-TNLWOPH5.js} +28 -21
- package/chunks/{pidfile-HVPYVRLS.js → pidfile-BB6SKPH2.js} +40 -39
- package/chunks/{process-registry-2CHQBXH5.js → process-registry-PMJOA5CO.js} +15 -0
- package/chunks/{processUtils-VIQ4JHVX.js → processUtils-WKHJOPDH.js} +2 -2
- package/chunks/{qwenContentGenerator-2QLCUFNZ.js → qwenContentGenerator-FZS2DYF7.js} +48 -46
- package/chunks/{qwenOAuth2-J2X3EN43.js → qwenOAuth2-UYMYRXBB.js} +9 -9
- package/chunks/{read-file-ZNAN2B26.js → read-file-FMTE6LPA.js} +10 -10
- package/chunks/{read-mcp-resource-RTSSEER5.js → read-mcp-resource-PZ4ZF6YL.js} +2 -2
- package/chunks/{record-artifact-E6AWQU2Z.js → record-artifact-P4HFMS7X.js} +3 -3
- package/chunks/{resumeHistoryUtils-RCY7AL5Y.js → resumeHistoryUtils-Z34RCZFF.js} +45 -43
- package/chunks/{ripGrep-C3KMLZM5.js → ripGrep-DUIYUZGM.js} +39 -38
- package/chunks/{run-qwen-serve-3JN75CIQ.js → run-qwen-serve-KOHHR3F4.js} +145 -62
- package/chunks/{runtime-VUA4WQYD.js → runtime-K4NTZSAU.js} +50 -49
- package/chunks/{scheduler-Z4IBXCOY.js → scheduler-6G6AMURS.js} +39 -38
- package/chunks/{sdk-exporters-http-IL2346MJ.js → sdk-exporters-http-KHAB5JSD.js} +2 -2
- package/chunks/{sdk-impl-SYKGVWOZ.js → sdk-impl-KD7FSTC3.js} +2 -2
- package/chunks/{send-message-TL6FIMMN.js → send-message-CAMSLG2L.js} +6 -5
- package/chunks/{serve-67T3P7XI.js → serve-NMG2TM5K.js} +46 -45
- package/chunks/{server-46ZO2CLV.js → server-FS7KDELS.js} +679 -360
- package/chunks/{session-B4IFAFC4.js → session-XZADUVKJ.js} +82 -81
- package/chunks/{settings-AI2BTBOZ.js → settings-G75R6FOA.js} +44 -43
- package/chunks/{shell-BKII3B6E.js → shell-3D3PMQHE.js} +39 -38
- package/chunks/{skill-6CFOWVGA.js → skill-TSEYMVQ2.js} +14 -14
- package/chunks/{skill-settings-6BFQWMW4.js → skill-settings-HJC2CPBJ.js} +44 -43
- package/chunks/{spawnChannel-FJXW35U7.js → spawnChannel-YWCN74G5.js} +41 -40
- package/chunks/{standalone-update-WVINHRNS.js → standalone-update-HLYOLX6V.js} +41 -40
- package/chunks/{startInteractiveUI-YE57CJ57.js → startInteractiveUI-ROUIQ5KU.js} +486 -187
- package/chunks/{syntheticOutput-BN7E626U.js → syntheticOutput-PEBJQYJV.js} +3 -3
- package/chunks/{task-create-Q727MXHJ.js → task-create-5NWCQSJF.js} +10 -9
- package/chunks/{task-list-G6KPQ5JT.js → task-list-53265TRZ.js} +5 -5
- package/chunks/{task-stop-TNXRNAL2.js → task-stop-FPCOIRYX.js} +2 -2
- package/chunks/{task-update-YB7PXO4R.js → task-update-5HN577LS.js} +10 -9
- package/chunks/{team-create-GNC7NFY6.js → team-create-OTP5SSB2.js} +39 -38
- package/chunks/{team-delete-GDO7H2T4.js → team-delete-MMQB4OSC.js} +5 -5
- package/chunks/{team-plan-approval-ECALJLIO.js → team-plan-approval-TQX5TMXU.js} +39 -38
- package/chunks/{terminal-image-renderer-II74TFVW.js → terminal-image-renderer-KF3GKNWW.js} +45 -39
- package/chunks/{theme-manager-2MGEDD22.js → theme-manager-XVWAAGAM.js} +40 -39
- package/chunks/{todoWrite-MHWHO5UO.js → todoWrite-JGV6VLOX.js} +4 -4
- package/chunks/{tool-search-S6LRRACA.js → tool-search-7N4D4O56.js} +14 -13
- package/chunks/{total-session-admission-7WVAWQPU.js → total-session-admission-ZQ4VKIRW.js} +43 -42
- package/chunks/{trustedFolders-NFS4KHO4.js → trustedFolders-4XYFPWVV.js} +40 -39
- package/chunks/{update-relaunch-Q5HLZ6UW.js → update-relaunch-L4GSBLUU.js} +5 -5
- package/chunks/{updateCheck-UOVZSTP7.js → updateCheck-PCUTVRFE.js} +42 -41
- package/chunks/{useAutoAcceptIndicator-PC6MOJCO.js → useAutoAcceptIndicator-WMXY7MND.js} +47 -46
- package/chunks/{validateNonInterActiveAuth-YMQP3ZM7.js → validateNonInterActiveAuth-5S3U2D56.js} +78 -77
- package/chunks/{version-T4AQFZJH.js → version-P57IQU2T.js} +1 -1
- package/chunks/{web-fetch-JQCJHEEX.js → web-fetch-5ZLLLCDD.js} +13 -13
- package/chunks/{web-search-QGZ2KY4G.js → web-search-NELKANTW.js} +10 -10
- package/chunks/web-shell-static-O73YPVVC.js +33 -0
- package/chunks/{workflow-YIT27YWZ.js → workflow-RXKBF3LO.js} +42 -40
- package/chunks/{workspace-providers-status-FIDZQ2PL.js → workspace-providers-status-HAEMNAWC.js} +48 -47
- package/chunks/{workspace-registration-store-RCSPE4DU.js → workspace-registration-store-U3U3YM6V.js} +1 -1
- package/chunks/{workspace-registry-5PEUCY6E.js → workspace-registry-ZFP33GVB.js} +43 -42
- package/chunks/{workspace-service-LANDVPL7.js → workspace-service-QMISJBMA.js} +50 -49
- package/chunks/{workspace-skills-status-2IQVJNIN.js → workspace-skills-status-K7EOUGXL.js} +46 -45
- package/chunks/{workspace-trust-reconciler-CZPZZCZC.js → workspace-trust-reconciler-BFPKULDZ.js} +50 -49
- package/chunks/{write-file-G5VNGCOG.js → write-file-2F76RRFE.js} +39 -38
- package/chunks/{zoom-image-6RBLD7X6.js → zoom-image-DPR22XWY.js} +10 -10
- package/cli.js +12 -12
- package/package.json +3 -3
- package/web-shell/assets/{arc-B-Vtkp1W.js → arc-CunFPPcQ.js} +1 -1
- package/web-shell/assets/{architectureDiagram-3BPJPVTR-qmTXIj64.js → architectureDiagram-3BPJPVTR-D3SqCgeM.js} +1 -1
- package/web-shell/assets/{blockDiagram-GPEHLZMM-ZlnXEtdP.js → blockDiagram-GPEHLZMM-CPRx90S_.js} +1 -1
- package/web-shell/assets/{c4Diagram-AAUBKEIU-Wyoirf6Z.js → c4Diagram-AAUBKEIU-CahP9Ue4.js} +1 -1
- package/web-shell/assets/channel-zbv7GWAw.js +1 -0
- package/web-shell/assets/{chunk-2J33WTMH-WQwbq9d8.js → chunk-2J33WTMH-DckIWZ12.js} +1 -1
- package/web-shell/assets/{chunk-4BX2VUAB-DQKnAXC4.js → chunk-4BX2VUAB-D2Kfctyn.js} +1 -1
- package/web-shell/assets/{chunk-55IACEB6-DIdgXNcO.js → chunk-55IACEB6-DkI11FTX.js} +1 -1
- package/web-shell/assets/{chunk-727SXJPM-CUwGOLEd.js → chunk-727SXJPM-rR-TSCIi.js} +1 -1
- package/web-shell/assets/{chunk-AQP2D5EJ-CCBGZFZ4.js → chunk-AQP2D5EJ-DFGKcGRO.js} +1 -1
- package/web-shell/assets/{chunk-FMBD7UC4-DMGXProk.js → chunk-FMBD7UC4-CjWqcTPE.js} +1 -1
- package/web-shell/assets/{chunk-ND2GUHAM-yejcFqsh.js → chunk-ND2GUHAM-RXe-87UV.js} +1 -1
- package/web-shell/assets/{chunk-QZHKN3VN-DxCyqTf7.js → chunk-QZHKN3VN-Dz0c_Yrn.js} +1 -1
- package/web-shell/assets/classDiagram-4FO5ZUOK-DSjLkJJZ.js +1 -0
- package/web-shell/assets/classDiagram-v2-Q7XG4LA2-DSjLkJJZ.js +1 -0
- package/web-shell/assets/{cose-bilkent-S5V4N54A-DOrF3cg_.js → cose-bilkent-S5V4N54A-ZHF0-jvV.js} +1 -1
- package/web-shell/assets/{dagre-BM42HDAG-Be6CdYQ_.js → dagre-BM42HDAG-7Umz_ygJ.js} +1 -1
- package/web-shell/assets/{diagram-2AECGRRQ-B_Rjsft2.js → diagram-2AECGRRQ-DomN8nxq.js} +1 -1
- package/web-shell/assets/{diagram-5GNKFQAL-BvQbKSm1.js → diagram-5GNKFQAL-eebvj2OL.js} +1 -1
- package/web-shell/assets/{diagram-KO2AKTUF-BsdmMdpS.js → diagram-KO2AKTUF-IR1mmn9d.js} +1 -1
- package/web-shell/assets/{diagram-LMA3HP47-CrQlBaNr.js → diagram-LMA3HP47-CKysx5KF.js} +1 -1
- package/web-shell/assets/{diagram-OG6HWLK6-aB1MD_DL.js → diagram-OG6HWLK6-cBy5puHn.js} +1 -1
- package/web-shell/assets/{erDiagram-TEJ5UH35-F-eUUn9n.js → erDiagram-TEJ5UH35-B5RJagPG.js} +1 -1
- package/web-shell/assets/{flowDiagram-I6XJVG4X-DY_d8lUK.js → flowDiagram-I6XJVG4X-CfHgDmPg.js} +1 -1
- package/web-shell/assets/{ganttDiagram-6RSMTGT7-Dqu7KBPg.js → ganttDiagram-6RSMTGT7-DUfFF5nb.js} +1 -1
- package/web-shell/assets/{gitGraphDiagram-PVQCEYII-2IkU_VEj.js → gitGraphDiagram-PVQCEYII-M9dt57k5.js} +1 -1
- package/web-shell/assets/{index-QQlUCJGg.css → index-B8e-CkuC.css} +2 -2
- package/web-shell/assets/{index-BuSbqggh.js → index-CKjO4myk.js} +1 -1
- package/web-shell/assets/index-Dc-fTO0V.js +1768 -0
- package/web-shell/assets/{infoDiagram-5YYISTIA-C4orwzPw.js → infoDiagram-5YYISTIA-CTKMmIro.js} +1 -1
- package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-fXUEfef_.js → ishikawaDiagram-YF4QCWOH-DJIJDP4s.js} +1 -1
- package/web-shell/assets/{journeyDiagram-JHISSGLW-Bs0I1_J5.js → journeyDiagram-JHISSGLW-DgRnvn6S.js} +1 -1
- package/web-shell/assets/{kanban-definition-UN3LZRKU-BPRj1dw_.js → kanban-definition-UN3LZRKU-VUwO8yrg.js} +1 -1
- package/web-shell/assets/{linear-DFS6ZDpW.js → linear-BCvgV5I_.js} +1 -1
- package/web-shell/assets/{mermaid.core-CZxjWMaO.js → mermaid.core-mv_kVV6q.js} +5 -5
- package/web-shell/assets/{mindmap-definition-RKZ34NQL-Dsr3PmNs.js → mindmap-definition-RKZ34NQL-sfnjMlOd.js} +1 -1
- package/web-shell/assets/{pieDiagram-4H26LBE5-D5Ngpz5Y.js → pieDiagram-4H26LBE5-BlhICse4.js} +1 -1
- package/web-shell/assets/{quadrantDiagram-W4KKPZXB-WJK9I25z.js → quadrantDiagram-W4KKPZXB-BgTQzwen.js} +1 -1
- package/web-shell/assets/{requirementDiagram-4Y6WPE33-CmrYcwOH.js → requirementDiagram-4Y6WPE33-CZ-FTrrN.js} +1 -1
- package/web-shell/assets/{sankeyDiagram-5OEKKPKP-7SjCc4Mv.js → sankeyDiagram-5OEKKPKP-G5Wp_jn3.js} +1 -1
- package/web-shell/assets/{sequenceDiagram-3UESZ5HK-Dl9E0IRM.js → sequenceDiagram-3UESZ5HK-C8MKZ3i1.js} +1 -1
- package/web-shell/assets/{stateDiagram-AJRCARHV-CRRio7yV.js → stateDiagram-AJRCARHV-Bo0ZDm7y.js} +1 -1
- package/web-shell/assets/stateDiagram-v2-BHNVJYJU-31TSCPcH.js +1 -0
- package/web-shell/assets/{timeline-definition-PNZ67QCA-DVyXjjfq.js → timeline-definition-PNZ67QCA-M3L9E01f.js} +1 -1
- package/web-shell/assets/{vennDiagram-CIIHVFJN-Nb2Lckzq.js → vennDiagram-CIIHVFJN-DD4eHCrm.js} +1 -1
- package/web-shell/assets/{wardley-L42UT6IY-DuL_otIP.js → wardley-L42UT6IY-DNEL_3g4.js} +1 -1
- package/web-shell/assets/{wardleyDiagram-YWT4CUSO-DVI9Q4Aa.js → wardleyDiagram-YWT4CUSO-q484OoqI.js} +1 -1
- package/web-shell/assets/{xychartDiagram-2RQKCTM6-BNjAm7KD.js → xychartDiagram-2RQKCTM6-4mcNt1Yg.js} +1 -1
- package/web-shell/index.html +2 -2
- package/chunks/chunk-EMYZIABH.js +0 -81
- package/chunks/nonInteractiveCli-P4UKCJFM.js +0 -154
- package/web-shell/assets/channel-DXaHnfjS.js +0 -1
- package/web-shell/assets/classDiagram-4FO5ZUOK-BigU82A0.js +0 -1
- package/web-shell/assets/classDiagram-v2-Q7XG4LA2-BigU82A0.js +0 -1
- package/web-shell/assets/index-DrfC2e9s.js +0 -1768
- package/web-shell/assets/stateDiagram-v2-BHNVJYJU-1atT7XaU.js +0 -1
|
@@ -3,45 +3,57 @@
|
|
|
3
3
|
import {
|
|
4
4
|
DashScopeOpenAICompatibleProvider,
|
|
5
5
|
DefaultOpenAICompatibleProvider
|
|
6
|
-
} from "./chunk-
|
|
7
|
-
import {
|
|
8
|
-
RequestTokenizer
|
|
9
|
-
} from "./chunk-H36SETQS.js";
|
|
10
|
-
import {
|
|
11
|
-
DEFAULT_STREAM_IDLE_TIMEOUT_MS,
|
|
12
|
-
MAX_STREAM_IDLE_TIMEOUT_MS,
|
|
13
|
-
QWEN_STREAM_IDLE_TIMEOUT_MS_ENV
|
|
14
|
-
} from "./chunk-GLNBDYUX.js";
|
|
15
|
-
import {
|
|
16
|
-
createChildAbortController
|
|
17
|
-
} from "./chunk-DJ2GSRLV.js";
|
|
6
|
+
} from "./chunk-IIJEYBNH.js";
|
|
18
7
|
import {
|
|
19
8
|
OpenAIContentConverter,
|
|
20
9
|
TaggedThinkingParser,
|
|
21
10
|
openaiRequestCaptureContext
|
|
22
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-DREZZAZM.js";
|
|
12
|
+
import {
|
|
13
|
+
applyOfficialOpenAIPromptCaching,
|
|
14
|
+
isOfficialOpenAIEndpoint
|
|
15
|
+
} from "./chunk-SAH4BD2J.js";
|
|
16
|
+
import {
|
|
17
|
+
getCurrentAgentId
|
|
18
|
+
} from "./chunk-CPG6P4GG.js";
|
|
23
19
|
import {
|
|
24
20
|
InvalidStreamError
|
|
25
21
|
} from "./chunk-2J3OJGTL.js";
|
|
22
|
+
import {
|
|
23
|
+
isInForkExecution
|
|
24
|
+
} from "./chunk-IA7TGCN2.js";
|
|
26
25
|
import {
|
|
27
26
|
getRateLimitErrorDetails
|
|
28
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-M6HMMKVG.js";
|
|
28
|
+
import {
|
|
29
|
+
RequestTokenizer
|
|
30
|
+
} from "./chunk-B2GJNDTV.js";
|
|
29
31
|
import {
|
|
30
32
|
safeJsonParse
|
|
31
|
-
} from "./chunk-
|
|
33
|
+
} from "./chunk-CKASRHZI.js";
|
|
34
|
+
import {
|
|
35
|
+
DEFAULT_STREAM_IDLE_TIMEOUT_MS,
|
|
36
|
+
DEFAULT_STREAM_MAX_LIFETIME_MS,
|
|
37
|
+
MAX_STREAM_GUARD_TIMEOUT_MS,
|
|
38
|
+
QWEN_STREAM_IDLE_TIMEOUT_MS_ENV,
|
|
39
|
+
QWEN_STREAM_MAX_LIFETIME_MS_ENV
|
|
40
|
+
} from "./chunk-AXMWHKXA.js";
|
|
32
41
|
import {
|
|
33
42
|
getToolCallPreparations,
|
|
34
43
|
runtimeDiagnostics
|
|
35
44
|
} from "./chunk-GLCZKT5V.js";
|
|
45
|
+
import {
|
|
46
|
+
createChildAbortController
|
|
47
|
+
} from "./chunk-DJ2GSRLV.js";
|
|
36
48
|
import {
|
|
37
49
|
reportOpenAiChunk,
|
|
38
50
|
reportOpenAiRequest,
|
|
39
51
|
reportOpenAiResponse
|
|
40
|
-
} from "./chunk-
|
|
52
|
+
} from "./chunk-WCG5O7IP.js";
|
|
41
53
|
import {
|
|
42
54
|
ProtocolTagSanitizedEvent,
|
|
43
55
|
logProtocolTagSanitized
|
|
44
|
-
} from "./chunk-
|
|
56
|
+
} from "./chunk-XCG76UE6.js";
|
|
45
57
|
import {
|
|
46
58
|
isQwenFamilyWireModel,
|
|
47
59
|
isTieredEffortWireModel
|
|
@@ -51,14 +63,14 @@ import {
|
|
|
51
63
|
} from "./chunk-ZBVS26BY.js";
|
|
52
64
|
import {
|
|
53
65
|
redactProxyError
|
|
54
|
-
} from "./chunk-
|
|
66
|
+
} from "./chunk-KKBPOU75.js";
|
|
55
67
|
import {
|
|
56
68
|
createDebugLogger,
|
|
57
69
|
getErrorMessage,
|
|
58
70
|
getErrorStatus,
|
|
59
71
|
getErrorType,
|
|
60
72
|
isAbortError
|
|
61
|
-
} from "./chunk-
|
|
73
|
+
} from "./chunk-OIVKILPI.js";
|
|
62
74
|
import {
|
|
63
75
|
GenerateContentResponse
|
|
64
76
|
} from "./chunk-22C7BQ6D.js";
|
|
@@ -940,6 +952,21 @@ var StreamInactivityTimeoutError = class extends Error {
|
|
|
940
952
|
}
|
|
941
953
|
code = "ETIMEDOUT";
|
|
942
954
|
};
|
|
955
|
+
var StreamLifetimeExceededError = class extends Error {
|
|
956
|
+
constructor(maxLifetimeMs, chunksReceived, streamLifetimeMs) {
|
|
957
|
+
super(
|
|
958
|
+
`Stream exceeded its ${maxLifetimeMs}ms upstream-wait cap after ${chunksReceived} chunks without completing (wall clock: ${streamLifetimeMs}ms). Set ${QWEN_STREAM_MAX_LIFETIME_MS_ENV} to increase this cap (or 0 to disable it).`
|
|
959
|
+
);
|
|
960
|
+
this.maxLifetimeMs = maxLifetimeMs;
|
|
961
|
+
this.chunksReceived = chunksReceived;
|
|
962
|
+
this.streamLifetimeMs = streamLifetimeMs;
|
|
963
|
+
this.name = "StreamLifetimeExceededError";
|
|
964
|
+
}
|
|
965
|
+
static {
|
|
966
|
+
__name(this, "StreamLifetimeExceededError");
|
|
967
|
+
}
|
|
968
|
+
code = "ETIMEDOUT";
|
|
969
|
+
};
|
|
943
970
|
var NON_SSE_BODY_PREFIX_LIMIT = 512;
|
|
944
971
|
function isSSECompatibleContentType(contentType) {
|
|
945
972
|
if (!contentType) return true;
|
|
@@ -985,57 +1012,108 @@ function clampProviderOutputBudgetKeys(samplingParams, requestMaxTokens) {
|
|
|
985
1012
|
return samplingParams;
|
|
986
1013
|
}
|
|
987
1014
|
__name(clampProviderOutputBudgetKeys, "clampProviderOutputBudgetKeys");
|
|
988
|
-
function
|
|
989
|
-
const fromConfig = config.streamIdleTimeoutMs;
|
|
1015
|
+
function resolveStreamGuardMs(fromConfig, configLabel, envName, defaultMs) {
|
|
990
1016
|
if (typeof fromConfig === "number") {
|
|
991
|
-
if (Number.isInteger(fromConfig) && fromConfig <=
|
|
1017
|
+
if (Number.isInteger(fromConfig) && fromConfig <= MAX_STREAM_GUARD_TIMEOUT_MS) {
|
|
992
1018
|
return fromConfig;
|
|
993
1019
|
}
|
|
994
1020
|
console.warn(
|
|
995
|
-
`[qwen-code] Ignoring out-of-range
|
|
1021
|
+
`[qwen-code] Ignoring out-of-range ${configLabel}=${fromConfig} (expected an integer in (-\u221E, ${MAX_STREAM_GUARD_TIMEOUT_MS}]); falling back to ${envName}/default.`
|
|
996
1022
|
);
|
|
997
1023
|
}
|
|
998
|
-
const raw = process.env[
|
|
1024
|
+
const raw = process.env[envName];
|
|
999
1025
|
const trimmed = raw?.trim();
|
|
1000
1026
|
if (trimmed) {
|
|
1001
1027
|
if (/^\d+$/.test(trimmed)) {
|
|
1002
1028
|
const parsed = Number(trimmed);
|
|
1003
|
-
if (parsed <=
|
|
1029
|
+
if (parsed <= MAX_STREAM_GUARD_TIMEOUT_MS) {
|
|
1004
1030
|
return parsed;
|
|
1005
1031
|
}
|
|
1006
1032
|
}
|
|
1007
1033
|
console.warn(
|
|
1008
|
-
`[qwen-code] Ignoring invalid ${
|
|
1034
|
+
`[qwen-code] Ignoring invalid ${envName}="${raw}" (expected an integer of milliseconds in [0, ${MAX_STREAM_GUARD_TIMEOUT_MS}]); using default ${defaultMs}ms.`
|
|
1009
1035
|
);
|
|
1010
1036
|
}
|
|
1011
|
-
return
|
|
1037
|
+
return defaultMs;
|
|
1038
|
+
}
|
|
1039
|
+
__name(resolveStreamGuardMs, "resolveStreamGuardMs");
|
|
1040
|
+
function resolveStreamIdleTimeoutMs(config) {
|
|
1041
|
+
return resolveStreamGuardMs(
|
|
1042
|
+
config.streamIdleTimeoutMs,
|
|
1043
|
+
"streamIdleTimeoutMs",
|
|
1044
|
+
QWEN_STREAM_IDLE_TIMEOUT_MS_ENV,
|
|
1045
|
+
DEFAULT_STREAM_IDLE_TIMEOUT_MS
|
|
1046
|
+
);
|
|
1012
1047
|
}
|
|
1013
1048
|
__name(resolveStreamIdleTimeoutMs, "resolveStreamIdleTimeoutMs");
|
|
1014
|
-
|
|
1049
|
+
function resolveStreamMaxLifetimeMs(config) {
|
|
1050
|
+
return resolveStreamGuardMs(
|
|
1051
|
+
config.streamMaxLifetimeMs,
|
|
1052
|
+
"streamMaxLifetimeMs",
|
|
1053
|
+
QWEN_STREAM_MAX_LIFETIME_MS_ENV,
|
|
1054
|
+
DEFAULT_STREAM_MAX_LIFETIME_MS
|
|
1055
|
+
);
|
|
1056
|
+
}
|
|
1057
|
+
__name(resolveStreamMaxLifetimeMs, "resolveStreamMaxLifetimeMs");
|
|
1058
|
+
async function* withStreamGuards(source, idleMs, maxLifetimeMs, abortRequest, parentSignal) {
|
|
1059
|
+
if (idleMs <= 0 && maxLifetimeMs <= 0) {
|
|
1060
|
+
yield* source;
|
|
1061
|
+
return;
|
|
1062
|
+
}
|
|
1015
1063
|
const it = source[Symbol.asyncIterator]();
|
|
1016
|
-
const streamStartedAt =
|
|
1064
|
+
const streamStartedAt = performance.now();
|
|
1065
|
+
let upstreamMs = 0;
|
|
1017
1066
|
let chunksReceived = 0;
|
|
1018
1067
|
try {
|
|
1019
1068
|
while (true) {
|
|
1069
|
+
const remainingMs = maxLifetimeMs > 0 ? maxLifetimeMs - upstreamMs : Number.POSITIVE_INFINITY;
|
|
1070
|
+
if (remainingMs <= 0) {
|
|
1071
|
+
if (parentSignal?.aborted) {
|
|
1072
|
+
const abortErr = new Error("Aborted");
|
|
1073
|
+
abortErr.name = "AbortError";
|
|
1074
|
+
throw abortErr;
|
|
1075
|
+
}
|
|
1076
|
+
abortRequest();
|
|
1077
|
+
throw new StreamLifetimeExceededError(
|
|
1078
|
+
maxLifetimeMs,
|
|
1079
|
+
chunksReceived,
|
|
1080
|
+
performance.now() - streamStartedAt
|
|
1081
|
+
);
|
|
1082
|
+
}
|
|
1020
1083
|
const nextPromise = it.next();
|
|
1084
|
+
const awaitedAt = performance.now();
|
|
1021
1085
|
let timer;
|
|
1022
1086
|
const timeout = new Promise((_resolve, reject) => {
|
|
1023
|
-
|
|
1024
|
-
|
|
1025
|
-
|
|
1026
|
-
|
|
1027
|
-
|
|
1028
|
-
|
|
1029
|
-
|
|
1030
|
-
|
|
1031
|
-
|
|
1032
|
-
|
|
1033
|
-
|
|
1034
|
-
|
|
1035
|
-
|
|
1036
|
-
|
|
1037
|
-
|
|
1038
|
-
|
|
1087
|
+
const idleIn = idleMs > 0 ? idleMs : Number.POSITIVE_INFINITY;
|
|
1088
|
+
const wait = Math.min(idleIn, remainingMs);
|
|
1089
|
+
timer = setTimeout(
|
|
1090
|
+
() => {
|
|
1091
|
+
if (parentSignal?.aborted) {
|
|
1092
|
+
const abortErr = new Error("Aborted");
|
|
1093
|
+
abortErr.name = "AbortError";
|
|
1094
|
+
reject(abortErr);
|
|
1095
|
+
} else if (remainingMs <= idleIn) {
|
|
1096
|
+
abortRequest();
|
|
1097
|
+
reject(
|
|
1098
|
+
new StreamLifetimeExceededError(
|
|
1099
|
+
maxLifetimeMs,
|
|
1100
|
+
chunksReceived,
|
|
1101
|
+
performance.now() - streamStartedAt
|
|
1102
|
+
)
|
|
1103
|
+
);
|
|
1104
|
+
} else {
|
|
1105
|
+
abortRequest();
|
|
1106
|
+
reject(
|
|
1107
|
+
new StreamInactivityTimeoutError(
|
|
1108
|
+
idleMs,
|
|
1109
|
+
chunksReceived,
|
|
1110
|
+
performance.now() - streamStartedAt
|
|
1111
|
+
)
|
|
1112
|
+
);
|
|
1113
|
+
}
|
|
1114
|
+
},
|
|
1115
|
+
Math.max(wait, 0)
|
|
1116
|
+
);
|
|
1039
1117
|
timer.unref?.();
|
|
1040
1118
|
});
|
|
1041
1119
|
let result;
|
|
@@ -1049,6 +1127,7 @@ async function* withStreamInactivityTimeout(source, idleMs, abortRequest, parent
|
|
|
1049
1127
|
if (timer !== void 0) clearTimeout(timer);
|
|
1050
1128
|
}
|
|
1051
1129
|
if (result.done) return;
|
|
1130
|
+
upstreamMs += performance.now() - awaitedAt;
|
|
1052
1131
|
chunksReceived += 1;
|
|
1053
1132
|
yield result.value;
|
|
1054
1133
|
}
|
|
@@ -1060,7 +1139,7 @@ async function* withStreamInactivityTimeout(source, idleMs, abortRequest, parent
|
|
|
1060
1139
|
}
|
|
1061
1140
|
}
|
|
1062
1141
|
}
|
|
1063
|
-
__name(
|
|
1142
|
+
__name(withStreamGuards, "withStreamGuards");
|
|
1064
1143
|
var ContentGenerationPipeline = class {
|
|
1065
1144
|
constructor(config) {
|
|
1066
1145
|
this.config = config;
|
|
@@ -1069,6 +1148,9 @@ var ContentGenerationPipeline = class {
|
|
|
1069
1148
|
this.streamIdleTimeoutMs = resolveStreamIdleTimeoutMs(
|
|
1070
1149
|
this.contentGeneratorConfig
|
|
1071
1150
|
);
|
|
1151
|
+
this.streamMaxLifetimeMs = resolveStreamMaxLifetimeMs(
|
|
1152
|
+
this.contentGeneratorConfig
|
|
1153
|
+
);
|
|
1072
1154
|
}
|
|
1073
1155
|
static {
|
|
1074
1156
|
__name(this, "ContentGenerationPipeline");
|
|
@@ -1079,6 +1161,7 @@ var ContentGenerationPipeline = class {
|
|
|
1079
1161
|
// Resolved once (config field > env > default) so the env read + any
|
|
1080
1162
|
// invalid-value warning happen per pipeline, not per streaming request.
|
|
1081
1163
|
streamIdleTimeoutMs;
|
|
1164
|
+
streamMaxLifetimeMs;
|
|
1082
1165
|
async execute(request, userPromptId) {
|
|
1083
1166
|
return this.executeWithErrorHandling(
|
|
1084
1167
|
request,
|
|
@@ -1156,9 +1239,11 @@ var ContentGenerationPipeline = class {
|
|
|
1156
1239
|
throw e;
|
|
1157
1240
|
}
|
|
1158
1241
|
const idleMs = this.streamIdleTimeoutMs;
|
|
1159
|
-
const
|
|
1242
|
+
const maxLifetimeMs = this.streamMaxLifetimeMs;
|
|
1243
|
+
const guarded = idleMs > 0 || maxLifetimeMs > 0 ? withStreamGuards(
|
|
1160
1244
|
stream,
|
|
1161
1245
|
idleMs,
|
|
1246
|
+
maxLifetimeMs,
|
|
1162
1247
|
() => perRequestAc.abort(),
|
|
1163
1248
|
parentSignal
|
|
1164
1249
|
) : stream;
|
|
@@ -1305,6 +1390,22 @@ var ContentGenerationPipeline = class {
|
|
|
1305
1390
|
if (error instanceof StreamContentError) {
|
|
1306
1391
|
throw redactProxyError(error);
|
|
1307
1392
|
}
|
|
1393
|
+
if (error instanceof StreamInactivityTimeoutError || error instanceof StreamLifetimeExceededError) {
|
|
1394
|
+
const isLifetime = error instanceof StreamLifetimeExceededError;
|
|
1395
|
+
debugLogger3.warn(
|
|
1396
|
+
isLifetime ? "OpenAI stream lifetime cap exceeded" : "OpenAI stream inactivity timeout",
|
|
1397
|
+
{
|
|
1398
|
+
chunksReceived: error.chunksReceived,
|
|
1399
|
+
// Wall clock, labelled apart from the cap so the two numbers in
|
|
1400
|
+
// the log reconcile the same way the error message does.
|
|
1401
|
+
wallClockMs: error.streamLifetimeMs,
|
|
1402
|
+
...isLifetime ? {
|
|
1403
|
+
maxLifetimeMs: error.maxLifetimeMs
|
|
1404
|
+
} : { idleMs: error.idleMs }
|
|
1405
|
+
}
|
|
1406
|
+
);
|
|
1407
|
+
throw redactProxyError(error);
|
|
1408
|
+
}
|
|
1308
1409
|
if (context.pendingThinkingTagCandidate?.closingTagName && request.config?.abortSignal?.aborted !== true) {
|
|
1309
1410
|
context.pendingThinkingTagCandidate = void 0;
|
|
1310
1411
|
context.pendingUntrustedResponseParts = void 0;
|
|
@@ -1313,14 +1414,6 @@ var ContentGenerationPipeline = class {
|
|
|
1313
1414
|
"PROTOCOL_TAG_LEAK"
|
|
1314
1415
|
);
|
|
1315
1416
|
}
|
|
1316
|
-
if (error instanceof StreamInactivityTimeoutError) {
|
|
1317
|
-
debugLogger3.warn("OpenAI stream inactivity timeout", {
|
|
1318
|
-
idleMs: error.idleMs,
|
|
1319
|
-
chunksReceived: error.chunksReceived,
|
|
1320
|
-
streamLifetimeMs: error.streamLifetimeMs
|
|
1321
|
-
});
|
|
1322
|
-
throw redactProxyError(error);
|
|
1323
|
-
}
|
|
1324
1417
|
await this.handleError(error, context, request);
|
|
1325
1418
|
}
|
|
1326
1419
|
}
|
|
@@ -1396,10 +1489,18 @@ var ContentGenerationPipeline = class {
|
|
|
1396
1489
|
baseRequest["tool_choice"] = "none";
|
|
1397
1490
|
}
|
|
1398
1491
|
}
|
|
1399
|
-
|
|
1492
|
+
let providerRequest = this.config.provider.buildRequest(
|
|
1400
1493
|
baseRequest,
|
|
1401
1494
|
userPromptId
|
|
1402
1495
|
);
|
|
1496
|
+
if (this.contentGeneratorConfig.enableCacheControl !== false && isOfficialOpenAIEndpoint(this.contentGeneratorConfig)) {
|
|
1497
|
+
providerRequest = applyOfficialOpenAIPromptCaching(
|
|
1498
|
+
providerRequest,
|
|
1499
|
+
this.config.cliConfig.getSessionId?.(),
|
|
1500
|
+
request.promptCacheSharing === true,
|
|
1501
|
+
isInForkExecution() ? void 0 : getCurrentAgentId() ?? void 0
|
|
1502
|
+
);
|
|
1503
|
+
}
|
|
1403
1504
|
const model = (context.model ?? "").toLowerCase();
|
|
1404
1505
|
const isDashScope = DashScopeOpenAICompatibleProvider.isDashScopeProvider(
|
|
1405
1506
|
this.contentGeneratorConfig
|
|
@@ -15,7 +15,7 @@ import {
|
|
|
15
15
|
HOME_ENV_BOOTSTRAP_KEYS,
|
|
16
16
|
PROJECT_ENV_HARDCODED_EXCLUSIONS,
|
|
17
17
|
publishPendingCompileCache
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-ALFTV7GA.js";
|
|
19
19
|
import {
|
|
20
20
|
require_strip_json_comments
|
|
21
21
|
} from "./chunk-ALGGS7UH.js";
|
|
@@ -87,7 +87,7 @@ function readHomeEnvIntoFastPath(file) {
|
|
|
87
87
|
if (!fs.existsSync(file)) return;
|
|
88
88
|
try {
|
|
89
89
|
const parsed = dotenv.parse(fs.readFileSync(file, "utf8"));
|
|
90
|
-
for (const key of
|
|
90
|
+
for (const key of HOME_ENV_BOOTSTRAP_KEYS) {
|
|
91
91
|
if (parsed[key] && !Object.hasOwn(process.env, key)) {
|
|
92
92
|
process.env[key] = parsed[key];
|
|
93
93
|
}
|
|
@@ -3,9 +3,10 @@
|
|
|
3
3
|
import {
|
|
4
4
|
QWEN_DIR,
|
|
5
5
|
Storage,
|
|
6
|
+
realpathNearestExisting,
|
|
6
7
|
resolvePath,
|
|
7
8
|
sanitizeCwd
|
|
8
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-OIVKILPI.js";
|
|
9
10
|
import {
|
|
10
11
|
init_esbuild_shims
|
|
11
12
|
} from "./chunk-5O2XNYP6.js";
|
|
@@ -186,54 +187,6 @@ function isManagedMemoryPath(filePath, projectRoot, baseDir = projectRoot) {
|
|
|
186
187
|
});
|
|
187
188
|
}
|
|
188
189
|
__name(isManagedMemoryPath, "isManagedMemoryPath");
|
|
189
|
-
function resolveLeafSymlink(inputPath) {
|
|
190
|
-
const maxHops = 40;
|
|
191
|
-
let current = path.resolve(inputPath);
|
|
192
|
-
for (let i = 0; i < maxHops; i++) {
|
|
193
|
-
let stat;
|
|
194
|
-
try {
|
|
195
|
-
stat = fs.lstatSync(current);
|
|
196
|
-
} catch {
|
|
197
|
-
return current;
|
|
198
|
-
}
|
|
199
|
-
if (!stat.isSymbolicLink()) {
|
|
200
|
-
return current;
|
|
201
|
-
}
|
|
202
|
-
const target = fs.readlinkSync(current);
|
|
203
|
-
if (path.isAbsolute(target)) {
|
|
204
|
-
current = target;
|
|
205
|
-
} else {
|
|
206
|
-
let parent;
|
|
207
|
-
try {
|
|
208
|
-
parent = fs.realpathSync(path.dirname(current));
|
|
209
|
-
} catch {
|
|
210
|
-
parent = path.dirname(current);
|
|
211
|
-
}
|
|
212
|
-
current = path.resolve(parent, target);
|
|
213
|
-
}
|
|
214
|
-
}
|
|
215
|
-
return current;
|
|
216
|
-
}
|
|
217
|
-
__name(resolveLeafSymlink, "resolveLeafSymlink");
|
|
218
|
-
function realpathNearestExisting(inputPath) {
|
|
219
|
-
const resolved = resolveLeafSymlink(inputPath);
|
|
220
|
-
const missingSegments = [];
|
|
221
|
-
let current = resolved;
|
|
222
|
-
while (!fs.existsSync(current)) {
|
|
223
|
-
const parent = path.dirname(current);
|
|
224
|
-
if (parent === current) {
|
|
225
|
-
return resolved;
|
|
226
|
-
}
|
|
227
|
-
missingSegments.unshift(path.basename(current));
|
|
228
|
-
current = parent;
|
|
229
|
-
}
|
|
230
|
-
try {
|
|
231
|
-
return path.join(fs.realpathSync(current), ...missingSegments);
|
|
232
|
-
} catch {
|
|
233
|
-
return resolved;
|
|
234
|
-
}
|
|
235
|
-
}
|
|
236
|
-
__name(realpathNearestExisting, "realpathNearestExisting");
|
|
237
190
|
function isAnyAutoMemPath(absolutePath, projectRoot) {
|
|
238
191
|
return isAutoMemPath(absolutePath, projectRoot) || isUserAutoMemPath(absolutePath);
|
|
239
192
|
}
|