@qwen-code/qwen-code 0.19.10 → 0.19.11-nightly.20260717.f8e6e8931
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 +7 -6
- package/bundled/qc-helper/docs/features/approval-mode.md +2 -2
- package/bundled/qc-helper/docs/features/channels/dingtalk.md +30 -0
- package/bundled/qc-helper/docs/features/channels/overview.md +53 -17
- package/bundled/qc-helper/docs/features/channels/wecom.md +8 -7
- package/bundled/qc-helper/docs/features/sandbox.md +2 -0
- package/bundled/qc-helper/docs/qwen-serve-deploy-local.md +42 -7
- package/bundled/qc-helper/docs/qwen-serve.md +53 -46
- package/bundled/review/SKILL.md +163 -403
- package/chunks/{MaxSizedBox-67ODZ4SZ.js → MaxSizedBox-JGTP7YJQ.js} +13 -13
- package/chunks/{StandaloneSessionPicker-SIPBQT5Z.js → StandaloneSessionPicker-2XQDOYZ5.js} +27 -27
- package/chunks/{acpAgent-VPZJXLFX.js → acpAgent-RXRJA7GD.js} +1135 -373
- package/chunks/{agent-Z7NWL6XL.js → agent-UQP53UWQ.js} +10 -10
- package/chunks/{agent-headless-73HZ6ROQ.js → agent-headless-I52OXDCK.js} +10 -10
- package/chunks/{anthropicContentGenerator-56U3YCP2.js → anthropicContentGenerator-HBRXJSP4.js} +76 -14
- package/chunks/{artifact-tool-BWZZJ42H.js → artifact-tool-MIZLXBLF.js} +1 -1
- package/chunks/{askUserQuestion-WU3S5A5T.js → askUserQuestion-XMJVPNWM.js} +1 -1
- package/chunks/{bridge-XFKW6S7Q.js → bridge-3DVRNBSF.js} +14 -16
- package/chunks/{ca-C2JTT2N5.js → ca-CODEN7TD.js} +5 -0
- package/chunks/channel-worker-group-SOUWTFHC.js +21 -0
- package/chunks/{channel-worker-manager-5RWKSGEU.js → channel-worker-manager-LOVSV3WW.js} +34 -10
- package/chunks/{channel-worker-supervisor-PCDAZN4D.js → channel-worker-supervisor-XW6MHJBQ.js} +6 -4
- package/chunks/{chunk-BBNVFRGD.js → chunk-3DWIFU7L.js} +1 -1
- package/chunks/{chunk-ZQTZXVHP.js → chunk-3KSHYS4T.js} +4 -18
- package/chunks/{chunk-ZKMGAFYV.js → chunk-3LS57JZI.js} +1 -1
- package/chunks/{chunk-B5I2IIWY.js → chunk-46Y6SSQ7.js} +5 -5
- package/chunks/{chunk-GDQQRV43.js → chunk-4BJVSIS3.js} +2 -2
- package/chunks/{chunk-L37RC7MQ.js → chunk-4HTHLSIH.js} +1 -1
- package/chunks/{chunk-DPFBNG72.js → chunk-4UBEB74N.js} +1 -1
- package/chunks/{chunk-AAR5SGMD.js → chunk-4YR7FSAM.js} +7 -5
- package/chunks/{chunk-OATTJGPJ.js → chunk-5CNYZ7TN.js} +7 -7
- package/chunks/{chunk-JSJFKYWT.js → chunk-5VWYKIMW.js} +1 -1
- package/chunks/{chunk-6GETGQWP.js → chunk-5WWYHNAH.js} +39 -10
- package/chunks/{chunk-65N2J6V2.js → chunk-6ANLV27M.js} +2 -2
- package/chunks/{chunk-L62SEJWY.js → chunk-6RV42SFP.js} +4 -4
- package/chunks/{chunk-XXJKGHZV.js → chunk-6VMOP2Z7.js} +4 -4
- package/chunks/{chunk-URU5UEK6.js → chunk-6WGZDD67.js} +135 -68
- package/chunks/{chunk-7NAWTFVY.js → chunk-6WPJRYLZ.js} +2 -2
- package/chunks/chunk-6WVLHULT.js +59 -0
- package/chunks/{chunk-N6FXRR6P.js → chunk-7ZFXHKKZ.js} +1 -1
- package/chunks/{chunk-E67NFMF4.js → chunk-A2HWMJVO.js} +35 -1
- package/chunks/{chunk-4FMG7EDJ.js → chunk-AEKHQ3E5.js} +77 -11
- package/chunks/{chunk-WIASPMLX.js → chunk-AH3YAJU6.js} +22 -33
- package/chunks/{chunk-6GKMJPOC.js → chunk-AHAH5H6D.js} +3 -3
- package/chunks/{chunk-3XJFUTNM.js → chunk-AVAU67KP.js} +57 -10
- package/chunks/{chunk-LNUXFLLJ.js → chunk-BDHYJ2MM.js} +53 -5
- package/chunks/{chunk-P6LART6G.js → chunk-BTSE2DUP.js} +957 -122
- package/chunks/{chunk-7MJAZMXK.js → chunk-BZ5D7OVV.js} +28 -77
- package/chunks/{chunk-WDWJ4OQJ.js → chunk-CC2UASQ4.js} +3 -3
- package/chunks/{chunk-WLXYAKV7.js → chunk-D7KYA6EY.js} +3 -3
- package/chunks/{chunk-5LROA5W4.js → chunk-DD45XVOQ.js} +3 -3
- package/chunks/{chunk-H3FQOPPS.js → chunk-DOPUYNXO.js} +2 -2
- package/chunks/{chunk-SPUYQB4T.js → chunk-DPXB3XRN.js} +1 -1
- package/chunks/{chunk-XLIRF7IK.js → chunk-E7ECGLZW.js} +1 -1
- package/chunks/{chunk-RDRVMDWV.js → chunk-EMJJBXS7.js} +10 -10
- package/chunks/{chunk-TXY2C3D2.js → chunk-F333XEAU.js} +1 -1
- package/chunks/chunk-FEOZBUMT.js +77 -0
- package/chunks/{chunk-YYPXHMWO.js → chunk-FEYHXPZG.js} +4 -4
- package/chunks/{chunk-ZRKBI3DP.js → chunk-FNX3LGAK.js} +1 -1
- package/chunks/chunk-FXK3QMRD.js +140 -0
- package/chunks/{chunk-422XAKCK.js → chunk-G5ZKRK2E.js} +2 -2
- package/chunks/{chunk-DK33QJ3V.js → chunk-GCRFH57X.js} +732 -13
- package/chunks/{chunk-EQY6POVO.js → chunk-GLEJW7T2.js} +1 -1
- package/chunks/{chunk-FXMC7SL2.js → chunk-I6NOSIVF.js} +1 -1
- package/chunks/{chunk-VBRRNQB7.js → chunk-IHJRUIWN.js} +109 -22
- package/chunks/{chunk-F7NXQH4Y.js → chunk-IIXEI2VE.js} +1 -1
- package/chunks/{chunk-2UUAIFQO.js → chunk-JGUT3LWZ.js} +5 -0
- package/chunks/{chunk-5EBKKSBX.js → chunk-JY74T7PW.js} +1 -1
- package/chunks/chunk-KSZKSE23.js +226 -0
- package/chunks/{chunk-MO7O5722.js → chunk-KW46DBFM.js} +35 -2
- package/chunks/{chunk-TISZXPAX.js → chunk-L263ROM6.js} +1 -1
- package/chunks/chunk-LXXMOYPL.js +22 -0
- package/chunks/{chunk-YX4LLZ3D.js → chunk-NABT4VOY.js} +109 -35
- package/chunks/{chunk-W34A5MJH.js → chunk-NROLDLP4.js} +1 -1
- package/chunks/{chunk-V7EQTZYR.js → chunk-O3WCEZEN.js} +191 -44
- package/chunks/{chunk-K4PZ5F5T.js → chunk-OWT2CAEQ.js} +1 -1
- package/chunks/{chunk-4YWLED2A.js → chunk-PNCWEDF6.js} +7 -4
- package/chunks/{chunk-WDW64OW3.js → chunk-PSDTLRAV.js} +5 -5
- package/chunks/{chunk-7R4DPSRA.js → chunk-R3VWUU2E.js} +1 -1
- package/chunks/{chunk-K7CRWKOE.js → chunk-R6AO7HBQ.js} +4617 -4012
- package/chunks/{chunk-6OATMEYN.js → chunk-RTV5TUYB.js} +12 -4
- package/chunks/{chunk-6W6DI34P.js → chunk-SE6GSFAO.js} +159 -2
- package/chunks/{chunk-WTSXKLG5.js → chunk-SUARMD4Q.js} +1 -1
- package/chunks/chunk-T4TZQJ7W.js +48 -0
- package/chunks/{chunk-LTNI523B.js → chunk-T7CZYIAU.js} +28 -5
- package/chunks/{chunk-3MX7D6QN.js → chunk-TIOE2OPE.js} +32 -4
- package/chunks/{chunk-TTUO4DNG.js → chunk-UF6ZTWU5.js} +75 -710
- package/chunks/{chunk-Q5GLXH5Q.js → chunk-UJG4VV2O.js} +5 -5
- package/chunks/{chunk-CJFNEBYB.js → chunk-VFEZWI6F.js} +1 -1
- package/chunks/{chunk-UFOKA4PR.js → chunk-VHCSIMTF.js} +114 -4
- package/chunks/{chunk-TQBODCFD.js → chunk-VRR65QYW.js} +250 -2
- package/chunks/{chunk-CUUXANEQ.js → chunk-W6J7RSCK.js} +6 -1
- package/chunks/{chunk-YHN5SUIJ.js → chunk-W7H223ZZ.js} +1 -1
- package/chunks/{chunk-WX6SD4IQ.js → chunk-WTNZ6DXB.js} +1 -1
- package/chunks/{chunk-GGJII3FM.js → chunk-WZJELXEU.js} +92 -3
- package/chunks/{chunk-OFEVHGVU.js → chunk-X5HZX4EP.js} +9 -11
- package/chunks/{chunk-KSO42X3Z.js → chunk-X6YQWCIJ.js} +21 -2
- package/chunks/{chunk-7L4XBYVW.js → chunk-XK42MWWO.js} +9 -2
- package/chunks/{chunk-X362TMXZ.js → chunk-XQDPCQ3A.js} +7 -5
- package/chunks/{chunk-YU56QGXX.js → chunk-Y3TNSHKF.js} +1 -1
- package/chunks/{chunk-HHEFI4RP.js → chunk-YOJGIRTD.js} +714 -109
- package/chunks/{chunk-CEW4HDPK.js → chunk-ZK4AMPKI.js} +2459 -350
- package/chunks/{chunk-SXU3KKNI.js → chunk-ZQIYGQCG.js} +251 -54
- package/chunks/{computer-use-IYTX45WA.js → computer-use-LTW3VB6L.js} +10 -10
- package/chunks/{config-utils-CFT33LTP.js → config-utils-IQQT3GCI.js} +3 -3
- package/chunks/{contextCommand-272V77WU.js → contextCommand-GLMC6CTP.js} +12 -12
- package/chunks/{create-sub-session-WNX2OQVX.js → create-sub-session-EAB2U5XW.js} +1 -1
- package/chunks/{create-sub-session-CBJMQLYP.js → create-sub-session-YMWQAWSN.js} +10 -10
- package/chunks/{cron-create-36TIFKRT.js → cron-create-GMVKSXZT.js} +1 -1
- package/chunks/{cron-delete-OQD3WULU.js → cron-delete-VDZKUAVK.js} +1 -1
- package/chunks/{cron-list-4533T2FH.js → cron-list-UG7C7RAR.js} +1 -1
- package/chunks/{daemon-RNGFPMAB.js → daemon-PRB64RP5.js} +303 -71
- package/chunks/{daemon-status-provider-L4STG5VO.js → daemon-status-provider-5OMM5JHF.js} +19 -20
- package/chunks/{de-2VCDRDGU.js → de-NOXPCSYN.js} +5 -0
- package/chunks/{dist-ERCPDVA6.js → dist-4WCQEZIN.js} +4 -51
- package/chunks/{dist-MOEC47TR.js → dist-DOPL5LSQ.js} +1 -1
- package/chunks/{dist-JZE7F6YR.js → dist-GXJVCOS7.js} +1 -1
- package/chunks/{dist-PHEPJLXD.js → dist-PX2ERZ6I.js} +2 -2
- package/chunks/{dist-HNN7DR2L.js → dist-V2YVLYOW.js} +58 -30
- package/chunks/{dist-3V3ZV6ML.js → dist-VYWUKURL.js} +1 -1
- package/chunks/{earlyInputCapture-EN4BRREQ.js → earlyInputCapture-A3WSRN4T.js} +10 -10
- package/chunks/{edit-OMAF2QDR.js → edit-7PG4AH27.js} +10 -10
- package/chunks/{en-NJCA3TAA.js → en-JFVULHTB.js} +6 -0
- package/chunks/{enter-worktree-BBZX52HG.js → enter-worktree-QUSB44RE.js} +10 -10
- package/chunks/{enterPlanMode-5NNFMBUY.js → enterPlanMode-NVSIEL7X.js} +10 -10
- package/chunks/{environment-7TEWMJYN.js → environment-AHHXHQTI.js} +12 -12
- package/chunks/{errors-I4VKVX3F.js → errors-NSWSRXC7.js} +12 -12
- package/chunks/{exit-worktree-FUWRJI33.js → exit-worktree-FXYEYHPL.js} +10 -10
- package/chunks/{exitPlanMode-IHCJ5EEI.js → exitPlanMode-JI5GK3F6.js} +10 -10
- package/chunks/{fast-path-ZA57TOH4.js → fast-path-X7EVDLKZ.js} +2 -2
- package/chunks/{fr-5F3E7WKD.js → fr-HVFNU42H.js} +5 -0
- package/chunks/{gemini-UOAKVXBG.js → gemini-YRLHY5KS.js} +162 -206
- package/chunks/{geminiContentGenerator-G6UCE6MW.js → geminiContentGenerator-SPLFPV5E.js} +1 -1
- package/chunks/{glob-4GJQ2UFF.js → glob-WASUBCSA.js} +10 -10
- package/chunks/{grep-5QSYXF2E.js → grep-DUVG3NGA.js} +10 -10
- package/chunks/{handleAutoUpdate-ULHNWL6R.js → handleAutoUpdate-NGE5AQ2N.js} +14 -14
- package/chunks/{i18n-CYDUTF6F.js → i18n-QNVR36NB.js} +11 -11
- package/chunks/{initializer-NRFKUGIO.js → initializer-ZY7ORPMH.js} +15 -15
- package/chunks/{installationInfo-WELKRHHE.js → installationInfo-4R75MFTB.js} +11 -11
- package/chunks/{ja-66J6B53L.js → ja-PY5AF544.js} +5 -0
- package/chunks/{list-JVDXEG2E.js → list-36JCMZRS.js} +18 -18
- package/chunks/{loadedSettingsAdapter-WAM4VUTG.js → loadedSettingsAdapter-PQIOJUSJ.js} +15 -15
- package/chunks/{loop-wakeup-MVUKDVCP.js → loop-wakeup-QXWZSCYM.js} +2 -2
- package/chunks/{ls-RXNIAQDE.js → ls-2OUTG3IZ.js} +1 -1
- package/chunks/{lsp-HB5LM5IL.js → lsp-4VMNXZW6.js} +1 -1
- package/chunks/{mcp-YHOZN3ZM.js → mcp-QXY6XA6H.js} +15 -15
- package/chunks/{monitor-R7XZPJHQ.js → monitor-AVEKRSY3.js} +12 -11
- package/chunks/{nonInteractiveCli-NSOB6D74.js → nonInteractiveCli-YWIBKX4M.js} +50 -50
- package/chunks/{notebook-edit-6RNKE2L2.js → notebook-edit-4SBTJX72.js} +10 -10
- package/chunks/{openaiContentGenerator-XNS5S64I.js → openaiContentGenerator-4EBAO7LR.js} +8 -8
- package/chunks/{pidfile-XE4RRR2P.js → pidfile-JMIUPXSU.js} +10 -10
- package/chunks/processUtils-EOINMEIH.js +29 -0
- package/chunks/{pt-TFZO5Y6T.js → pt-A3PRQXMU.js} +5 -0
- package/chunks/{qwenContentGenerator-APDPJ3VN.js → qwenContentGenerator-M7UBL3JS.js} +12 -12
- package/chunks/{read-file-XSUWXSR7.js → read-file-DXSEFHCV.js} +5 -5
- package/chunks/{read-mcp-resource-6LRTZKXI.js → read-mcp-resource-JUFHCKSC.js} +1 -1
- package/chunks/{record-artifact-PMDTY4OS.js → record-artifact-DWSMBXYY.js} +1 -1
- package/chunks/{ripGrep-APB3CDMU.js → ripGrep-VTRVFMDJ.js} +10 -10
- package/chunks/{ru-4L4LFHIT.js → ru-IBCWUTOC.js} +5 -0
- package/chunks/{run-qwen-serve-NWTGPERT.js → run-qwen-serve-P7WQDZAS.js} +59 -38
- package/chunks/{runtime-EIO3NQKR.js → runtime-UHYO6JGN.js} +19 -19
- package/chunks/{scheduler-JJDZBDRN.js → scheduler-WTK7ZLV5.js} +10 -10
- package/chunks/{send-message-SR4WSXP2.js → send-message-JZ752NWD.js} +2 -2
- package/chunks/{serve-WTIPB3EI.js → serve-AG2AOG56.js} +15 -15
- package/chunks/{server-NJPHQHLH.js → server-G5MM2BRI.js} +1157 -225
- package/chunks/{session-O4AO7FTS.js → session-NUAGEMVS.js} +51 -51
- package/chunks/{settings-HQNDK7TG.js → settings-VQA5PR2M.js} +14 -14
- package/chunks/{shell-UIXM6PWG.js → shell-X33RWGLP.js} +12 -10
- package/chunks/{skill-3XMB4ULV.js → skill-PHSU2OPP.js} +5 -5
- package/chunks/{spawnChannel-3R632QRM.js → spawnChannel-D6TZN4W7.js} +12 -13
- package/chunks/{src-USZKPUOC.js → src-6OJFUPTL.js} +95 -34
- package/chunks/{standalone-update-L5XW3D7K.js → standalone-update-ZARRW44Y.js} +12 -12
- package/chunks/{startInteractiveUI-CPZOL2WB.js → startInteractiveUI-C6IZRTF3.js} +176 -158
- package/chunks/{syntheticOutput-YKFNUQZD.js → syntheticOutput-LELY6HAI.js} +2 -2
- package/chunks/{task-create-NUFOHU53.js → task-create-QY3BIMNM.js} +3 -3
- package/chunks/{task-list-Z2IKQY3S.js → task-list-D2U47WBJ.js} +1 -1
- package/chunks/{task-stop-KQFIVQTJ.js → task-stop-N6E5IYLH.js} +1 -1
- package/chunks/{task-update-HKADXSTD.js → task-update-HJCQILLB.js} +3 -3
- package/chunks/{team-create-XXPRF3IQ.js → team-create-H434NQP2.js} +10 -10
- package/chunks/{team-delete-SDNTGZLG.js → team-delete-RCWYDRF4.js} +1 -1
- package/chunks/{team-plan-approval-EOTTKHDW.js → team-plan-approval-IIOHXZU6.js} +10 -10
- package/chunks/{theme-manager-P6UITO2L.js → theme-manager-IEOPHMX6.js} +10 -10
- package/chunks/{todoWrite-YNXB27GB.js → todoWrite-FKCGATPJ.js} +1 -1
- package/chunks/{tool-search-DDNGK2LR.js → tool-search-WIIEDALL.js} +6 -6
- package/chunks/{total-session-admission-PL5N7DNY.js → total-session-admission-WU3DORRW.js} +15 -17
- package/chunks/{trustedFolders-C5LMF3UR.js → trustedFolders-JVUTUAJ3.js} +11 -11
- package/chunks/update-relaunch-X5EQKCH5.js +87 -0
- package/chunks/{updateCheck-QTVVISH7.js → updateCheck-TGO2X735.js} +14 -12
- package/chunks/{validateNonInterActiveAuth-RY4RKBQG.js → validateNonInterActiveAuth-2MEUL2ME.js} +46 -46
- package/chunks/{version-U45RYOSD.js → version-KBGQKZWV.js} +1 -1
- package/chunks/{web-fetch-ZSPR3PRR.js → web-fetch-CFCWTCAP.js} +2 -3
- package/chunks/{workflow-TCIAQYOA.js → workflow-PAOSF4CG.js} +11 -11
- package/chunks/{workspace-providers-status-I3G2HYLY.js → workspace-providers-status-AYHJYSVO.js} +18 -18
- package/chunks/{workspace-registration-store-IH5GLZ6Y.js → workspace-registration-store-GZMR53QL.js} +1 -1
- package/chunks/{workspace-registry-QEKBELIX.js → workspace-registry-C2IXZWPF.js} +15 -17
- package/chunks/{workspace-service-ORKHGLP3.js → workspace-service-KDDAW33F.js} +20 -21
- package/chunks/{workspace-skills-status-D7QCNDYY.js → workspace-skills-status-WWEZBZXY.js} +16 -16
- package/chunks/{write-file-JGRQR5VM.js → write-file-ACN3TAIX.js} +10 -10
- package/chunks/{zh-FSAH32JB.js → zh-PAUNIMHQ.js} +6 -0
- package/chunks/{zh-TW-D2YIE2LO.js → zh-TW-GNEUIUFF.js} +6 -0
- package/cli-entry.js +92 -8
- package/cli.js +11 -11
- package/locales/ca.js +10 -0
- package/locales/de.js +10 -0
- package/locales/en.js +11 -0
- package/locales/fr.js +10 -0
- package/locales/ja.js +10 -0
- package/locales/pt.js +10 -0
- package/locales/ru.js +10 -0
- package/locales/zh-TW.js +11 -0
- package/locales/zh.js +11 -0
- package/package.json +3 -3
- package/web-shell/assets/{arc-CUeDlxvE.js → arc-Blc5_CnD.js} +1 -1
- package/web-shell/assets/{architectureDiagram-3BPJPVTR-PiUszkQA.js → architectureDiagram-3BPJPVTR-Dyv1BvGP.js} +1 -1
- package/web-shell/assets/{blockDiagram-GPEHLZMM-s2wYSO7e.js → blockDiagram-GPEHLZMM-CVAb8DyB.js} +1 -1
- package/web-shell/assets/{c4Diagram-AAUBKEIU-DyLxZoz9.js → c4Diagram-AAUBKEIU-ClHPb_6S.js} +1 -1
- package/web-shell/assets/channel-DkPTtnGS.js +1 -0
- package/web-shell/assets/{chunk-2J33WTMH-Dsdai7Tk.js → chunk-2J33WTMH-Dad9g3ZA.js} +1 -1
- package/web-shell/assets/{chunk-4BX2VUAB-DEosOjV7.js → chunk-4BX2VUAB-IJJSSdDs.js} +1 -1
- package/web-shell/assets/{chunk-55IACEB6-sNsRLTXf.js → chunk-55IACEB6-DRcc-Hl9.js} +1 -1
- package/web-shell/assets/{chunk-727SXJPM-DkRNZzmh.js → chunk-727SXJPM-DOCFB-6a.js} +1 -1
- package/web-shell/assets/{chunk-AQP2D5EJ-BrsRNpzd.js → chunk-AQP2D5EJ-CRZnSjHp.js} +1 -1
- package/web-shell/assets/{chunk-FMBD7UC4-CI039lpl.js → chunk-FMBD7UC4-BwUI4Yes.js} +1 -1
- package/web-shell/assets/{chunk-ND2GUHAM-M-pkeIfu.js → chunk-ND2GUHAM-DLy8doxd.js} +1 -1
- package/web-shell/assets/{chunk-QZHKN3VN-C4ckGNbH.js → chunk-QZHKN3VN-Bhz7iysj.js} +1 -1
- package/web-shell/assets/classDiagram-4FO5ZUOK-DBdPU8ix.js +1 -0
- package/web-shell/assets/classDiagram-v2-Q7XG4LA2-DBdPU8ix.js +1 -0
- package/web-shell/assets/{cose-bilkent-S5V4N54A-BciKUAFq.js → cose-bilkent-S5V4N54A-jT1e8KzN.js} +1 -1
- package/web-shell/assets/{dagre-BM42HDAG-C1nTSgU6.js → dagre-BM42HDAG-C1veApQk.js} +1 -1
- package/web-shell/assets/{diagram-2AECGRRQ-BDPNWr1m.js → diagram-2AECGRRQ-C_NOwKeT.js} +1 -1
- package/web-shell/assets/{diagram-5GNKFQAL-CNFhTszL.js → diagram-5GNKFQAL-Bigfuz1r.js} +1 -1
- package/web-shell/assets/{diagram-KO2AKTUF-CjPa4p5a.js → diagram-KO2AKTUF-CpXltPpU.js} +1 -1
- package/web-shell/assets/{diagram-LMA3HP47-ZzPykSyG.js → diagram-LMA3HP47-DYawbYbH.js} +1 -1
- package/web-shell/assets/{diagram-OG6HWLK6-0UVtZ9A4.js → diagram-OG6HWLK6-D2t-ttd1.js} +1 -1
- package/web-shell/assets/{erDiagram-TEJ5UH35-CajDZCat.js → erDiagram-TEJ5UH35-Buc53PB5.js} +1 -1
- package/web-shell/assets/{flowDiagram-I6XJVG4X-BRuFBIvL.js → flowDiagram-I6XJVG4X-DwdFsCN7.js} +1 -1
- package/web-shell/assets/{ganttDiagram-6RSMTGT7-BevGmJqG.js → ganttDiagram-6RSMTGT7-XhiEKGoP.js} +1 -1
- package/web-shell/assets/{gitGraphDiagram-PVQCEYII-DvPMpBMb.js → gitGraphDiagram-PVQCEYII-D6We014a.js} +1 -1
- package/web-shell/assets/index-BctAmeF3.js +1143 -0
- package/web-shell/assets/{index-DzHwQkQq.js → index-CAWqS-bZ.js} +1 -1
- package/web-shell/assets/index-DLyhlZZO.css +5 -0
- package/web-shell/assets/{infoDiagram-5YYISTIA-Oixn7tA9.js → infoDiagram-5YYISTIA-C_iugRHQ.js} +1 -1
- package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-BgKpeg-j.js → ishikawaDiagram-YF4QCWOH-CAn9Kaix.js} +1 -1
- package/web-shell/assets/{journeyDiagram-JHISSGLW-74mwxIaA.js → journeyDiagram-JHISSGLW-BjDYOkEB.js} +1 -1
- package/web-shell/assets/{kanban-definition-UN3LZRKU-D4D6cEqA.js → kanban-definition-UN3LZRKU-Br_oI3Ob.js} +1 -1
- package/web-shell/assets/{linear-atZRE_L2.js → linear-BqnWHE9E.js} +1 -1
- package/web-shell/assets/{mermaid.core-KKudX-JC.js → mermaid.core-CT-sofSb.js} +5 -5
- package/web-shell/assets/{mindmap-definition-RKZ34NQL-CMCej9yG.js → mindmap-definition-RKZ34NQL-BbvrZR4B.js} +1 -1
- package/web-shell/assets/{pieDiagram-4H26LBE5-nhx40X7q.js → pieDiagram-4H26LBE5-gAwi3h_Q.js} +1 -1
- package/web-shell/assets/{quadrantDiagram-W4KKPZXB-CUmVcN3M.js → quadrantDiagram-W4KKPZXB-CONvBIuO.js} +1 -1
- package/web-shell/assets/{requirementDiagram-4Y6WPE33-C_vyEwyy.js → requirementDiagram-4Y6WPE33-lpkrcy1e.js} +1 -1
- package/web-shell/assets/{sankeyDiagram-5OEKKPKP-DU6G4VWR.js → sankeyDiagram-5OEKKPKP-Bk6FJHqb.js} +1 -1
- package/web-shell/assets/{sequenceDiagram-3UESZ5HK-DdeRR_KJ.js → sequenceDiagram-3UESZ5HK-B9b9bBzt.js} +1 -1
- package/web-shell/assets/{stateDiagram-AJRCARHV-C6iCI8ps.js → stateDiagram-AJRCARHV-JqBGC-S3.js} +1 -1
- package/web-shell/assets/stateDiagram-v2-BHNVJYJU-B_w4fDnm.js +1 -0
- package/web-shell/assets/{timeline-definition-PNZ67QCA-B_Ea8Cb7.js → timeline-definition-PNZ67QCA-CCCceXDP.js} +1 -1
- package/web-shell/assets/{vennDiagram-CIIHVFJN-BPUVZEJA.js → vennDiagram-CIIHVFJN-EHRnmZ09.js} +1 -1
- package/web-shell/assets/{wardley-L42UT6IY-BWEj0lKY.js → wardley-L42UT6IY-CYIcHx3_.js} +1 -1
- package/web-shell/assets/{wardleyDiagram-YWT4CUSO-BvDsdIQw.js → wardleyDiagram-YWT4CUSO-B81AuYRl.js} +1 -1
- package/web-shell/assets/{xychartDiagram-2RQKCTM6-crz0QhF_.js → xychartDiagram-2RQKCTM6-DOQ6E3z7.js} +1 -1
- package/web-shell/index.html +2 -2
- package/chunks/channel-worker-group-K7QKH6IG.js +0 -13
- package/chunks/chunk-B7NUUEXC.js +0 -311
- package/chunks/chunk-CARU2RR2.js +0 -24
- package/chunks/chunk-GYTKQYDB.js +0 -23
- package/chunks/chunk-LQU7EVFA.js +0 -30
- package/chunks/chunk-OCPBI7J5.js +0 -18
- package/chunks/chunk-OJAMDVF5.js +0 -66
- package/chunks/chunk-TEGEBB2I.js +0 -122
- package/web-shell/assets/channel-DkuJJ0qd.js +0 -1
- package/web-shell/assets/classDiagram-4FO5ZUOK-CwqHc0TB.js +0 -1
- package/web-shell/assets/classDiagram-v2-Q7XG4LA2-CwqHc0TB.js +0 -1
- package/web-shell/assets/index-Cnvv4VcI.css +0 -5
- package/web-shell/assets/index-D1Uyklxa.js +0 -1088
- package/web-shell/assets/stateDiagram-v2-BHNVJYJU-C0_6nR6C.js +0 -1
|
@@ -22,7 +22,7 @@ import {
|
|
|
22
22
|
} from "./chunk-SPJQO2CE.js";
|
|
23
23
|
import {
|
|
24
24
|
ToolNames
|
|
25
|
-
} from "./chunk-
|
|
25
|
+
} from "./chunk-JGUT3LWZ.js";
|
|
26
26
|
import {
|
|
27
27
|
Storage,
|
|
28
28
|
createDebugLogger,
|
|
@@ -331,6 +331,11 @@ var CronScheduler = class {
|
|
|
331
331
|
fileWatcher = null;
|
|
332
332
|
lockProbeTimer = null;
|
|
333
333
|
debounceTimer = null;
|
|
334
|
+
// Test-only auto-fire timers (QWEN_CODE_TEST_CRON_FAST). Each timer
|
|
335
|
+
// fires its job via forceFireJob after a short delay so integration
|
|
336
|
+
// tests don't wait for the wall-clock minute boundary. Cleared on
|
|
337
|
+
// stop()/destroy() so a session teardown never leaks a pending fire.
|
|
338
|
+
testFireTimers = /* @__PURE__ */ new Map();
|
|
334
339
|
// Catch-up work detected before start() installed onFire — flushed
|
|
335
340
|
// through onFire as soon as it exists.
|
|
336
341
|
pendingFires = [];
|
|
@@ -366,6 +371,18 @@ var CronScheduler = class {
|
|
|
366
371
|
jitterMs
|
|
367
372
|
};
|
|
368
373
|
this.jobs.set(id, job);
|
|
374
|
+
if (process.env["QWEN_CODE_TEST_CRON_FAST"] === "1" && !job.durable) {
|
|
375
|
+
const delayMs = Number(process.env["QWEN_CODE_TEST_CRON_DELAY_MS"]) || 5e3;
|
|
376
|
+
const timer = setTimeout(() => {
|
|
377
|
+
this.testFireTimers.delete(id);
|
|
378
|
+
this.forceFireJob(id);
|
|
379
|
+
}, delayMs);
|
|
380
|
+
timer.unref();
|
|
381
|
+
this.testFireTimers.set(id, timer);
|
|
382
|
+
debugLogger.debug(
|
|
383
|
+
`Test seam: auto-fire scheduled for job ${id} in ${delayMs}ms`
|
|
384
|
+
);
|
|
385
|
+
}
|
|
369
386
|
return job;
|
|
370
387
|
}
|
|
371
388
|
/**
|
|
@@ -887,6 +904,21 @@ var CronScheduler = class {
|
|
|
887
904
|
setSkipDurableFire(predicate) {
|
|
888
905
|
this.skipDurableFire = predicate;
|
|
889
906
|
}
|
|
907
|
+
/**
|
|
908
|
+
* Immediately fires a job by ID, bypassing the cron schedule check.
|
|
909
|
+
* Sets lastFiredAt to prevent the normal tick from re-firing the same
|
|
910
|
+
* minute slot. Returns true if the job existed and was fired, false
|
|
911
|
+
* otherwise. Primarily a test seam (see QWEN_CODE_TEST_CRON_FAST in
|
|
912
|
+
* create()); also useful for manual debug triggers.
|
|
913
|
+
*/
|
|
914
|
+
forceFireJob(id) {
|
|
915
|
+
const job = this.jobs.get(id);
|
|
916
|
+
if (!job || !this.onFire) return false;
|
|
917
|
+
job.lastFiredAt = Date.now();
|
|
918
|
+
debugLogger.debug(`forceFireJob: firing ${id} (${job.cronExpr})`);
|
|
919
|
+
this.onFire(job);
|
|
920
|
+
return true;
|
|
921
|
+
}
|
|
890
922
|
/**
|
|
891
923
|
* Starts the scheduler tick. Calls `onFire` when a job is due.
|
|
892
924
|
* Only fires when called — does not auto-fire missed intervals.
|
|
@@ -926,6 +958,8 @@ var CronScheduler = class {
|
|
|
926
958
|
clearTimeout(this.debounceTimer);
|
|
927
959
|
this.debounceTimer = null;
|
|
928
960
|
}
|
|
961
|
+
for (const timer of this.testFireTimers.values()) clearTimeout(timer);
|
|
962
|
+
this.testFireTimers.clear();
|
|
929
963
|
if (this.wakeups.size > 0) {
|
|
930
964
|
debugLogger.debug(`stop() discarding ${this.wakeups.size} wakeup(s)`);
|
|
931
965
|
this.wakeups.clear();
|
|
@@ -3,7 +3,10 @@
|
|
|
3
3
|
import {
|
|
4
4
|
formatHistoryGapNotice,
|
|
5
5
|
indexGapsByChild
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-DPXB3XRN.js";
|
|
7
|
+
import {
|
|
8
|
+
sanitizeTerminalText
|
|
9
|
+
} from "./chunk-SUARMD4Q.js";
|
|
7
10
|
import {
|
|
8
11
|
require_undici
|
|
9
12
|
} from "./chunk-L573Z2QZ.js";
|
|
@@ -12,13 +15,15 @@ import {
|
|
|
12
15
|
} from "./chunk-YUZI3WAC.js";
|
|
13
16
|
import {
|
|
14
17
|
getActiveGoal
|
|
15
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-R6AO7HBQ.js";
|
|
16
19
|
import {
|
|
17
|
-
apiActivityTracker
|
|
18
|
-
|
|
20
|
+
apiActivityTracker,
|
|
21
|
+
formatVisionBridgeNoticeDisplay,
|
|
22
|
+
isVisionBridgeNoticeDisplay
|
|
23
|
+
} from "./chunk-BTSE2DUP.js";
|
|
19
24
|
import {
|
|
20
25
|
ToolNames
|
|
21
|
-
} from "./chunk-
|
|
26
|
+
} from "./chunk-JGUT3LWZ.js";
|
|
22
27
|
import {
|
|
23
28
|
createDebugLogger
|
|
24
29
|
} from "./chunk-7NFB7LBQ.js";
|
|
@@ -826,6 +831,7 @@ var ToolCallEmitter = class _ToolCallEmitter extends BaseEmitter {
|
|
|
826
831
|
__name(this, "ToolCallEmitter");
|
|
827
832
|
}
|
|
828
833
|
planEmitter;
|
|
834
|
+
preparedCallIds = /* @__PURE__ */ new Set();
|
|
829
835
|
constructor(ctx) {
|
|
830
836
|
super(ctx);
|
|
831
837
|
this.planEmitter = new PlanEmitter(ctx);
|
|
@@ -840,6 +846,9 @@ var ToolCallEmitter = class _ToolCallEmitter extends BaseEmitter {
|
|
|
840
846
|
if (this.isTodoWriteTool(params.toolName)) {
|
|
841
847
|
return false;
|
|
842
848
|
}
|
|
849
|
+
if (params.phase === "preparing" && this.preparedCallIds.has(params.callId)) {
|
|
850
|
+
return false;
|
|
851
|
+
}
|
|
843
852
|
const { title, locations, kind } = this.resolveToolMetadata(
|
|
844
853
|
params.toolName,
|
|
845
854
|
params.args
|
|
@@ -848,8 +857,8 @@ var ToolCallEmitter = class _ToolCallEmitter extends BaseEmitter {
|
|
|
848
857
|
params.toolName,
|
|
849
858
|
params.subagentMeta
|
|
850
859
|
);
|
|
851
|
-
|
|
852
|
-
|
|
860
|
+
const updatesPreparedCall = params.phase !== "preparing" && this.preparedCallIds.delete(params.callId);
|
|
861
|
+
const update = {
|
|
853
862
|
toolCallId: params.callId,
|
|
854
863
|
status: params.status || "pending",
|
|
855
864
|
title,
|
|
@@ -859,6 +868,7 @@ var ToolCallEmitter = class _ToolCallEmitter extends BaseEmitter {
|
|
|
859
868
|
rawInput: params.args ?? {},
|
|
860
869
|
_meta: {
|
|
861
870
|
toolName: params.toolName,
|
|
871
|
+
...params.phase ? { phase: params.phase } : {},
|
|
862
872
|
...params.subagentMeta,
|
|
863
873
|
provenance: provenance.provenance,
|
|
864
874
|
...provenance.serverId ? { serverId: provenance.serverId } : {},
|
|
@@ -866,9 +876,40 @@ var ToolCallEmitter = class _ToolCallEmitter extends BaseEmitter {
|
|
|
866
876
|
timestamp: BaseEmitter.toEpochMs(params.timestamp)
|
|
867
877
|
}
|
|
868
878
|
}
|
|
869
|
-
}
|
|
879
|
+
};
|
|
880
|
+
await this.sendUpdate(
|
|
881
|
+
updatesPreparedCall ? { sessionUpdate: "tool_call_update", ...update } : { sessionUpdate: "tool_call", ...update }
|
|
882
|
+
);
|
|
883
|
+
if (params.phase === "preparing") {
|
|
884
|
+
this.preparedCallIds.add(params.callId);
|
|
885
|
+
}
|
|
870
886
|
return true;
|
|
871
887
|
}
|
|
888
|
+
/**
|
|
889
|
+
* Emits a terminal frame when a prepared tool call is discarded before
|
|
890
|
+
* execution. TodoWrite remains represented exclusively by plan updates.
|
|
891
|
+
*
|
|
892
|
+
* @param callId - ID of the prepared tool call
|
|
893
|
+
* @param toolName - Name of the prepared tool
|
|
894
|
+
*/
|
|
895
|
+
async emitPreparationDiscarded(callId, toolName) {
|
|
896
|
+
if (this.isTodoWriteTool(toolName)) return;
|
|
897
|
+
this.preparedCallIds.delete(callId);
|
|
898
|
+
const provenance = _ToolCallEmitter.resolveToolProvenance(toolName);
|
|
899
|
+
await this.sendUpdate({
|
|
900
|
+
sessionUpdate: "tool_call_update",
|
|
901
|
+
toolCallId: callId,
|
|
902
|
+
status: "failed",
|
|
903
|
+
content: [],
|
|
904
|
+
_meta: {
|
|
905
|
+
toolName,
|
|
906
|
+
phase: "preparing",
|
|
907
|
+
preparationDiscarded: true,
|
|
908
|
+
provenance: provenance.provenance,
|
|
909
|
+
...provenance.serverId ? { serverId: provenance.serverId } : {}
|
|
910
|
+
}
|
|
911
|
+
});
|
|
912
|
+
}
|
|
872
913
|
/**
|
|
873
914
|
* Emits a tool call result event.
|
|
874
915
|
* Handles TodoWriteTool specially by routing to plan updates.
|
|
@@ -888,6 +929,7 @@ var ToolCallEmitter = class _ToolCallEmitter extends BaseEmitter {
|
|
|
888
929
|
}
|
|
889
930
|
return;
|
|
890
931
|
}
|
|
932
|
+
this.preparedCallIds.delete(params.callId);
|
|
891
933
|
let contentArray = [];
|
|
892
934
|
const diffContent = this.extractDiffContent(params.resultDisplay);
|
|
893
935
|
if (diffContent) {
|
|
@@ -902,6 +944,17 @@ var ToolCallEmitter = class _ToolCallEmitter extends BaseEmitter {
|
|
|
902
944
|
} else {
|
|
903
945
|
contentArray = this.transformPartsToToolCallContent(params.message);
|
|
904
946
|
}
|
|
947
|
+
if (isVisionBridgeNoticeDisplay(params.resultDisplay)) {
|
|
948
|
+
contentArray.unshift({
|
|
949
|
+
type: "content",
|
|
950
|
+
content: {
|
|
951
|
+
type: "text",
|
|
952
|
+
text: sanitizeTerminalText(
|
|
953
|
+
formatVisionBridgeNoticeDisplay(params.resultDisplay)
|
|
954
|
+
)
|
|
955
|
+
}
|
|
956
|
+
});
|
|
957
|
+
}
|
|
905
958
|
const provenance = _ToolCallEmitter.resolveToolProvenance(
|
|
906
959
|
params.toolName,
|
|
907
960
|
params.subagentMeta
|
|
@@ -937,6 +990,7 @@ var ToolCallEmitter = class _ToolCallEmitter extends BaseEmitter {
|
|
|
937
990
|
* @param subagentMeta - Optional subagent metadata
|
|
938
991
|
*/
|
|
939
992
|
async emitError(callId, toolName, error, subagentMeta) {
|
|
993
|
+
this.preparedCallIds.delete(callId);
|
|
940
994
|
const provenance = _ToolCallEmitter.resolveToolProvenance(
|
|
941
995
|
toolName,
|
|
942
996
|
subagentMeta
|
|
@@ -1384,7 +1438,7 @@ var HistoryReplayer = class {
|
|
|
1384
1438
|
await this.toolCallEmitter.emitResult({
|
|
1385
1439
|
toolName,
|
|
1386
1440
|
callId,
|
|
1387
|
-
success: !result?.error,
|
|
1441
|
+
success: result?.status === void 0 ? !result?.error : result.status === "success" && !result.error,
|
|
1388
1442
|
message: record.message.parts,
|
|
1389
1443
|
resultDisplay: result?.resultDisplay,
|
|
1390
1444
|
artifacts: result?.artifacts,
|
|
@@ -1681,7 +1735,7 @@ async function extractMetadata(conversation, config) {
|
|
|
1681
1735
|
const gitBranch = firstRecord?.gitBranch;
|
|
1682
1736
|
let gitRepo;
|
|
1683
1737
|
if (cwd) {
|
|
1684
|
-
const { getGitRepoName } = await import("./src-
|
|
1738
|
+
const { getGitRepoName } = await import("./src-6OJFUPTL.js");
|
|
1685
1739
|
gitRepo = getGitRepoName(cwd);
|
|
1686
1740
|
}
|
|
1687
1741
|
let model;
|
|
@@ -1996,7 +2050,19 @@ function buildToolCallMessageFromResult(record, config) {
|
|
|
1996
2050
|
const rawInput = normalizeRawInput(
|
|
1997
2051
|
functionCallArgs ?? toolCallResult?.args
|
|
1998
2052
|
);
|
|
1999
|
-
const
|
|
2053
|
+
const resultContent = extractDiffContent(toolCallResult?.resultDisplay) ?? transformPartsToToolCallContent(record.message?.parts ?? []);
|
|
2054
|
+
const content = isVisionBridgeNoticeDisplay(toolCallResult?.resultDisplay) ? [
|
|
2055
|
+
{
|
|
2056
|
+
type: "content",
|
|
2057
|
+
content: {
|
|
2058
|
+
type: "text",
|
|
2059
|
+
text: sanitizeTerminalText(
|
|
2060
|
+
formatVisionBridgeNoticeDisplay(toolCallResult.resultDisplay)
|
|
2061
|
+
)
|
|
2062
|
+
}
|
|
2063
|
+
},
|
|
2064
|
+
...resultContent
|
|
2065
|
+
] : resultContent;
|
|
2000
2066
|
return {
|
|
2001
2067
|
uuid: record.uuid,
|
|
2002
2068
|
parentUuid: record.parentUuid,
|
|
@@ -4,22 +4,22 @@ import {
|
|
|
4
4
|
handleAtCommand,
|
|
5
5
|
resolveAtCommandQuery,
|
|
6
6
|
sanitizeDisplayText
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-XQDPCQ3A.js";
|
|
8
8
|
import {
|
|
9
9
|
isAtCommand,
|
|
10
10
|
isBtwCommand,
|
|
11
11
|
isSlashCommand,
|
|
12
12
|
normalizePartList,
|
|
13
13
|
recordGoalStatusItem
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-NABT4VOY.js";
|
|
15
15
|
import {
|
|
16
16
|
fitPendingSlice,
|
|
17
17
|
useSessionStats
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-6VMOP2Z7.js";
|
|
19
19
|
import {
|
|
20
20
|
SHELL_COMMAND_NAME,
|
|
21
21
|
isCollapsibleTool
|
|
22
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-GCRFH57X.js";
|
|
23
23
|
import {
|
|
24
24
|
require_react
|
|
25
25
|
} from "./chunk-HTHUX2T5.js";
|
|
@@ -31,10 +31,10 @@ import {
|
|
|
31
31
|
} from "./chunk-E5Z2AVNV.js";
|
|
32
32
|
import {
|
|
33
33
|
isInlineModelOverrideAllowed
|
|
34
|
-
} from "./chunk-
|
|
34
|
+
} from "./chunk-WZJELXEU.js";
|
|
35
35
|
import {
|
|
36
36
|
t
|
|
37
|
-
} from "./chunk-
|
|
37
|
+
} from "./chunk-EMJJBXS7.js";
|
|
38
38
|
import {
|
|
39
39
|
AutonomousLoopTickResolver,
|
|
40
40
|
CoreToolScheduler,
|
|
@@ -48,37 +48,39 @@ import {
|
|
|
48
48
|
generateToolUseSummary,
|
|
49
49
|
getActiveGoal,
|
|
50
50
|
getToolResponseDisplayText,
|
|
51
|
-
hasImageParts,
|
|
52
51
|
isBinary,
|
|
53
52
|
markDuplicateProviderToolCallResponseSent,
|
|
54
53
|
parseAndFormatApiError,
|
|
55
54
|
promptIdContext,
|
|
56
55
|
refreshMemoryAfterManagedWrite,
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
shouldRunVisionBridge,
|
|
60
|
-
splitImageParts
|
|
61
|
-
} from "./chunk-K7CRWKOE.js";
|
|
56
|
+
setActiveGoal
|
|
57
|
+
} from "./chunk-R6AO7HBQ.js";
|
|
62
58
|
import {
|
|
63
59
|
ApiCancelEvent,
|
|
64
60
|
ConversationFinishedEvent,
|
|
65
61
|
UserPromptEvent,
|
|
66
62
|
UserRetryEvent,
|
|
63
|
+
formatVisionBridgeNotice,
|
|
64
|
+
hasImageParts,
|
|
67
65
|
logApiCancel,
|
|
68
66
|
logConversationFinishedEvent,
|
|
69
67
|
logUserPrompt,
|
|
70
|
-
logUserRetry
|
|
71
|
-
|
|
68
|
+
logUserRetry,
|
|
69
|
+
runVisionBridge,
|
|
70
|
+
shouldRunVisionBridge,
|
|
71
|
+
splitImageParts
|
|
72
|
+
} from "./chunk-BTSE2DUP.js";
|
|
72
73
|
import {
|
|
73
74
|
isAnyAutoMemPath
|
|
74
75
|
} from "./chunk-FBU7WRZI.js";
|
|
75
76
|
import {
|
|
76
|
-
ToolNames
|
|
77
|
-
|
|
77
|
+
ToolNames,
|
|
78
|
+
isShellProgressData
|
|
79
|
+
} from "./chunk-JGUT3LWZ.js";
|
|
78
80
|
import {
|
|
79
81
|
getUnsupportedImageFormatWarning,
|
|
80
82
|
isSupportedImageMimeType
|
|
81
|
-
} from "./chunk-
|
|
83
|
+
} from "./chunk-FEOZBUMT.js";
|
|
82
84
|
import {
|
|
83
85
|
FinishReason
|
|
84
86
|
} from "./chunk-4LD5APFL.js";
|
|
@@ -550,6 +552,9 @@ function useReactToolScheduler(onComplete, config, getPreferredEditor, onEditorC
|
|
|
550
552
|
const [toolCallsForDisplay, setToolCallsForDisplay] = (0, import_react4.useState)([]);
|
|
551
553
|
const outputUpdateHandler = (0, import_react4.useCallback)(
|
|
552
554
|
(toolCallId, outputChunk) => {
|
|
555
|
+
if (isShellProgressData(outputChunk)) {
|
|
556
|
+
return;
|
|
557
|
+
}
|
|
553
558
|
const compactOutput = compactToolResultDisplayForHistory(outputChunk);
|
|
554
559
|
setToolCallsForDisplay(
|
|
555
560
|
(prevCalls) => prevCalls.map((tc) => {
|
|
@@ -802,22 +807,6 @@ function clearModelOverride(modelOverrideRef, inlineActiveRef) {
|
|
|
802
807
|
__name(clearModelOverride, "clearModelOverride");
|
|
803
808
|
var MID_TURN_AT_COMMAND_RESOLVE_TIMEOUT_MS = 1e4;
|
|
804
809
|
var MID_TURN_AT_COMMAND_RESOLVE_TIMEOUT_MESSAGE = "Mid-turn @ command resolution timed out";
|
|
805
|
-
function formatVisionBridgeNotice(result) {
|
|
806
|
-
const modelName = result.modelId ?? "vision model";
|
|
807
|
-
const target = result.modelEndpoint ? `${modelName} (${result.modelEndpoint})` : modelName;
|
|
808
|
-
const egressNote = result.egressOccurred ? ` Your image and prompt/context were sent to ${target}.` : "";
|
|
809
|
-
if (result.status === "failed") {
|
|
810
|
-
const reason = result.egressOccurred ? "the vision model request failed" : "the vision bridge could not run";
|
|
811
|
-
return `Vision bridge (${modelName}) failed: ${reason}.${egressNote} The image was not interpreted.`;
|
|
812
|
-
}
|
|
813
|
-
if (result.status === "skipped") {
|
|
814
|
-
return `Vision bridge cancelled.${egressNote}`;
|
|
815
|
-
}
|
|
816
|
-
const omitted = result.omittedCount > 0 ? ` (${result.omittedCount} image(s) omitted)` : "";
|
|
817
|
-
const header = `Converted ${result.convertedCount} image(s)${omitted} to text via ${target}. Your image and prompt/context were sent to that model.`;
|
|
818
|
-
return header;
|
|
819
|
-
}
|
|
820
|
-
__name(formatVisionBridgeNotice, "formatVisionBridgeNotice");
|
|
821
810
|
function extractLastAssistantText(history) {
|
|
822
811
|
for (let i = history.length - 1; i >= 0; i--) {
|
|
823
812
|
const item = history[i];
|
|
@@ -8,16 +8,16 @@ import {
|
|
|
8
8
|
initializeI18n,
|
|
9
9
|
resolveLanguageSetting,
|
|
10
10
|
t
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-EMJJBXS7.js";
|
|
12
12
|
import {
|
|
13
13
|
IdeClient
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-R6AO7HBQ.js";
|
|
15
15
|
import {
|
|
16
16
|
AuthEvent,
|
|
17
17
|
IdeConnectionEvent,
|
|
18
18
|
logAuth,
|
|
19
19
|
logIdeConnection
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-BTSE2DUP.js";
|
|
21
21
|
import {
|
|
22
22
|
getErrorMessage
|
|
23
23
|
} from "./chunk-7NFB7LBQ.js";
|
|
@@ -2,17 +2,23 @@
|
|
|
2
2
|
"use strict";
|
|
3
3
|
import {
|
|
4
4
|
appEvents
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-ZK4AMPKI.js";
|
|
6
|
+
import {
|
|
7
|
+
CUSTOM_SANDBOX_IMAGE_ENV_VAR,
|
|
8
|
+
HOST_UPDATE_RELAUNCH_ENV_VAR,
|
|
9
|
+
SKIP_UPDATE_CHECK_ENV_VAR,
|
|
10
|
+
requestUpdateOnExit
|
|
11
|
+
} from "./chunk-6WVLHULT.js";
|
|
6
12
|
import {
|
|
7
13
|
require_undici
|
|
8
14
|
} from "./chunk-L573Z2QZ.js";
|
|
9
15
|
import {
|
|
10
16
|
IdeClient,
|
|
11
17
|
getAllProviderBaseUrls
|
|
12
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-R6AO7HBQ.js";
|
|
13
19
|
import {
|
|
14
20
|
initializeTelemetry
|
|
15
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-BTSE2DUP.js";
|
|
16
22
|
import {
|
|
17
23
|
detectRuntime,
|
|
18
24
|
getOrCreateSharedDispatcher,
|
|
@@ -218,18 +224,20 @@ __name(startEarlyStartupPrefetches, "startEarlyStartupPrefetches");
|
|
|
218
224
|
function startPostRenderPrefetches(config, settings, options = {}) {
|
|
219
225
|
if (postRenderStarted.has(config)) return;
|
|
220
226
|
postRenderStarted.add(config);
|
|
221
|
-
if (settings.merged.general?.enableAutoUpdate !== false) {
|
|
227
|
+
if (settings.merged.general?.enableAutoUpdate !== false && process.env[SKIP_UPDATE_CHECK_ENV_VAR] !== "true" && !process.env[CUSTOM_SANDBOX_IMAGE_ENV_VAR]) {
|
|
222
228
|
runDeferredTask("update_check", async () => {
|
|
223
229
|
const [
|
|
224
230
|
{ checkForUpdatesDetailed },
|
|
225
231
|
{ handleAutoUpdate },
|
|
232
|
+
{ getInstallationInfo },
|
|
226
233
|
{ updateEventEmitter },
|
|
227
234
|
{ t }
|
|
228
235
|
] = await Promise.all([
|
|
229
|
-
import("./updateCheck-
|
|
230
|
-
import("./handleAutoUpdate-
|
|
236
|
+
import("./updateCheck-TGO2X735.js"),
|
|
237
|
+
import("./handleAutoUpdate-NGE5AQ2N.js"),
|
|
238
|
+
import("./installationInfo-4R75MFTB.js"),
|
|
231
239
|
import("./updateEventEmitter-5MKC7BLQ.js"),
|
|
232
|
-
import("./i18n-
|
|
240
|
+
import("./i18n-QNVR36NB.js")
|
|
233
241
|
]);
|
|
234
242
|
const updateFailedMessage = t(
|
|
235
243
|
"Failed to check for updates. Please check your network or registry configuration."
|
|
@@ -237,7 +245,46 @@ function startPostRenderPrefetches(config, settings, options = {}) {
|
|
|
237
245
|
try {
|
|
238
246
|
const result = await checkForUpdatesDetailed();
|
|
239
247
|
if (result.status === "update") {
|
|
240
|
-
|
|
248
|
+
const projectRoot = config.getProjectRoot();
|
|
249
|
+
const hostUpdateRelaunch = process.env[HOST_UPDATE_RELAUNCH_ENV_VAR];
|
|
250
|
+
if (hostUpdateRelaunch === "true") {
|
|
251
|
+
updateEventEmitter.emit("update-info", {
|
|
252
|
+
message: `${result.info.message}
|
|
253
|
+
${t(
|
|
254
|
+
"Run /update to install the update on the host."
|
|
255
|
+
)}`
|
|
256
|
+
});
|
|
257
|
+
return;
|
|
258
|
+
}
|
|
259
|
+
if (hostUpdateRelaunch === "false") {
|
|
260
|
+
updateEventEmitter.emit("update-info", {
|
|
261
|
+
message: `${result.info.message}
|
|
262
|
+
${t(
|
|
263
|
+
"Update Qwen Code on the host, then restart the sandbox."
|
|
264
|
+
)}`
|
|
265
|
+
});
|
|
266
|
+
return;
|
|
267
|
+
}
|
|
268
|
+
const installationInfo = getInstallationInfo(projectRoot, true);
|
|
269
|
+
if (installationInfo.updateCommand || installationInfo.isStandalone && installationInfo.standaloneDir) {
|
|
270
|
+
if (requestUpdateOnExit()) {
|
|
271
|
+
updateEventEmitter.emit("update-info", {
|
|
272
|
+
message: `${result.info.message}
|
|
273
|
+
${t(
|
|
274
|
+
"The update will be installed after you exit this session."
|
|
275
|
+
)}`
|
|
276
|
+
});
|
|
277
|
+
} else {
|
|
278
|
+
updateEventEmitter.emit("update-info", {
|
|
279
|
+
message: `${result.info.message}
|
|
280
|
+
${t(
|
|
281
|
+
"Run /update to install the update."
|
|
282
|
+
)}`
|
|
283
|
+
});
|
|
284
|
+
}
|
|
285
|
+
} else {
|
|
286
|
+
void handleAutoUpdate(result.info, settings, projectRoot);
|
|
287
|
+
}
|
|
241
288
|
} else if (result.status === "error") {
|
|
242
289
|
updateEventEmitter.emit("update-failed", {
|
|
243
290
|
message: updateFailedMessage
|
|
@@ -257,7 +304,7 @@ function startPostRenderPrefetches(config, settings, options = {}) {
|
|
|
257
304
|
state: "connecting"
|
|
258
305
|
});
|
|
259
306
|
try {
|
|
260
|
-
const { connectIdeForStartup } = await import("./initializer-
|
|
307
|
+
const { connectIdeForStartup } = await import("./initializer-ZY7ORPMH.js");
|
|
261
308
|
await withTimeout(
|
|
262
309
|
connectIdeForStartup(config),
|
|
263
310
|
"ide_connect",
|
|
@@ -283,7 +330,7 @@ function startPostRenderPrefetches(config, settings, options = {}) {
|
|
|
283
330
|
}
|
|
284
331
|
if (config.isInteractive()) {
|
|
285
332
|
runDeferredTask("background_housekeeping", async () => {
|
|
286
|
-
const { startBackgroundHousekeeping } = await import("./scheduler-
|
|
333
|
+
const { startBackgroundHousekeeping } = await import("./scheduler-WTK7ZLV5.js");
|
|
287
334
|
startBackgroundHousekeeping(config, settings);
|
|
288
335
|
});
|
|
289
336
|
}
|
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
} from "./chunk-QHTIBUWB.js";
|
|
9
9
|
import {
|
|
10
10
|
t
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-EMJJBXS7.js";
|
|
12
12
|
import {
|
|
13
13
|
require_clean,
|
|
14
14
|
require_constants,
|
|
@@ -27,7 +27,7 @@ import {
|
|
|
27
27
|
ansi_regex_exports,
|
|
28
28
|
init_ansi_regex,
|
|
29
29
|
stripAnsi
|
|
30
|
-
} from "./chunk-
|
|
30
|
+
} from "./chunk-T4TZQJ7W.js";
|
|
31
31
|
import {
|
|
32
32
|
require_graceful_fs
|
|
33
33
|
} from "./chunk-E2UVIFI2.js";
|
|
@@ -8117,6 +8117,35 @@ __name(updateNotifier, "updateNotifier");
|
|
|
8117
8117
|
var import_semver2 = __toESM(require_semver2(), 1);
|
|
8118
8118
|
var debugLogger = createDebugLogger("UPDATE_CHECK");
|
|
8119
8119
|
var FETCH_TIMEOUT_MS = 2e3;
|
|
8120
|
+
var UpdateCheckTimeoutError = class extends Error {
|
|
8121
|
+
static {
|
|
8122
|
+
__name(this, "UpdateCheckTimeoutError");
|
|
8123
|
+
}
|
|
8124
|
+
distTag;
|
|
8125
|
+
constructor(timeoutMs, distTag) {
|
|
8126
|
+
const suffix = distTag ? ` for ${distTag}` : "";
|
|
8127
|
+
super(`update-notifier fetchInfo timed out after ${timeoutMs}ms${suffix}`);
|
|
8128
|
+
this.name = "UpdateCheckTimeoutError";
|
|
8129
|
+
this.distTag = distTag;
|
|
8130
|
+
}
|
|
8131
|
+
};
|
|
8132
|
+
async function fetchInfoWithTimeout(notifier, timeoutMs, distTag) {
|
|
8133
|
+
let timer;
|
|
8134
|
+
try {
|
|
8135
|
+
return await Promise.race([
|
|
8136
|
+
Promise.resolve(notifier.fetchInfo()),
|
|
8137
|
+
new Promise((_, reject) => {
|
|
8138
|
+
timer = setTimeout(
|
|
8139
|
+
() => reject(new UpdateCheckTimeoutError(timeoutMs, distTag)),
|
|
8140
|
+
timeoutMs
|
|
8141
|
+
);
|
|
8142
|
+
})
|
|
8143
|
+
]);
|
|
8144
|
+
} finally {
|
|
8145
|
+
if (timer !== void 0) clearTimeout(timer);
|
|
8146
|
+
}
|
|
8147
|
+
}
|
|
8148
|
+
__name(fetchInfoWithTimeout, "fetchInfoWithTimeout");
|
|
8120
8149
|
function getBestAvailableUpdate(nightly, stable) {
|
|
8121
8150
|
if (!nightly) return stable || null;
|
|
8122
8151
|
if (!stable) return nightly || null;
|
|
@@ -8152,9 +8181,20 @@ async function checkForUpdatesDetailed() {
|
|
|
8152
8181
|
}), "createNotifier");
|
|
8153
8182
|
if (isNightly) {
|
|
8154
8183
|
const [nightlyUpdateInfo, latestUpdateInfo] = await Promise.all([
|
|
8155
|
-
|
|
8156
|
-
|
|
8184
|
+
fetchInfoWithTimeout(
|
|
8185
|
+
createNotifier("nightly"),
|
|
8186
|
+
FETCH_TIMEOUT_MS,
|
|
8187
|
+
"nightly"
|
|
8188
|
+
),
|
|
8189
|
+
fetchInfoWithTimeout(
|
|
8190
|
+
createNotifier("latest"),
|
|
8191
|
+
FETCH_TIMEOUT_MS,
|
|
8192
|
+
"latest"
|
|
8193
|
+
)
|
|
8157
8194
|
]);
|
|
8195
|
+
debugLogger.debug(
|
|
8196
|
+
`fetchInfo returned nightly=${JSON.stringify(nightlyUpdateInfo)} latest=${JSON.stringify(latestUpdateInfo)} for current=${version}`
|
|
8197
|
+
);
|
|
8158
8198
|
const bestUpdate = getBestAvailableUpdate(
|
|
8159
8199
|
nightlyUpdateInfo,
|
|
8160
8200
|
latestUpdateInfo
|
|
@@ -8172,7 +8212,14 @@ async function checkForUpdatesDetailed() {
|
|
|
8172
8212
|
};
|
|
8173
8213
|
}
|
|
8174
8214
|
} else {
|
|
8175
|
-
const updateInfo = await
|
|
8215
|
+
const updateInfo = await fetchInfoWithTimeout(
|
|
8216
|
+
createNotifier("latest"),
|
|
8217
|
+
FETCH_TIMEOUT_MS,
|
|
8218
|
+
"latest"
|
|
8219
|
+
);
|
|
8220
|
+
debugLogger.debug(
|
|
8221
|
+
`fetchInfo returned ${JSON.stringify(updateInfo)} for current=${version}`
|
|
8222
|
+
);
|
|
8176
8223
|
if (updateInfo && import_semver2.default.gt(updateInfo.latest, version)) {
|
|
8177
8224
|
return {
|
|
8178
8225
|
status: "update",
|
|
@@ -8202,6 +8249,7 @@ __name(checkForUpdates, "checkForUpdates");
|
|
|
8202
8249
|
|
|
8203
8250
|
export {
|
|
8204
8251
|
FETCH_TIMEOUT_MS,
|
|
8252
|
+
UpdateCheckTimeoutError,
|
|
8205
8253
|
checkForUpdatesDetailed,
|
|
8206
8254
|
checkForUpdates
|
|
8207
8255
|
};
|