@qwen-code/qwen-code 0.19.6 → 0.19.7
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/model-providers.md +5 -1
- package/bundled/qc-helper/docs/configuration/settings.md +33 -1
- package/bundled/qc-helper/docs/features/channels/_meta.ts +1 -0
- package/bundled/qc-helper/docs/features/channels/overview.md +37 -31
- package/bundled/qc-helper/docs/features/channels/wecom.md +111 -0
- package/bundled/qc-helper/docs/features/code-review.md +16 -6
- package/bundled/qc-helper/docs/features/commands.md +1 -1
- package/bundled/qc-helper/docs/features/hooks.md +6 -0
- package/bundled/qc-helper/docs/features/skills.md +5 -3
- package/bundled/qc-helper/docs/integration-github-action.md +1 -1
- package/bundled/review/DESIGN.md +50 -18
- package/bundled/review/SKILL.md +102 -12
- package/chunks/{MaxSizedBox-SK7CUWZQ.js → MaxSizedBox-XY5LIO5O.js} +31 -29
- package/chunks/{StandaloneSessionPicker-G44HGSAP.js → StandaloneSessionPicker-APISIRJZ.js} +44 -41
- package/chunks/{acpAgent-PKCTYWJV.js → acpAgent-MMOSC2YA.js} +769 -366
- package/chunks/{agent-IYMHUXWB.js → agent-TKIBLLQT.js} +24 -24
- package/chunks/{agent-headless-L2DAW6I5.js → agent-headless-VLX4C7KX.js} +24 -24
- package/chunks/{anthropicContentGenerator-H5ZOEENQ.js → anthropicContentGenerator-AKYPSZIV.js} +7 -7
- package/chunks/{artifact-tool-SLYPWG3C.js → artifact-tool-D233YJFH.js} +27 -8
- package/chunks/{askUserQuestion-OKPTECON.js → askUserQuestion-MKL5ZTMC.js} +2 -2
- package/chunks/{bridge-DF3IJQ5V.js → bridge-BCU73DZO.js} +34 -32
- package/chunks/{channel-worker-supervisor-JUYQ5Z4R.js → channel-worker-supervisor-CRCVYQIE.js} +1 -1
- package/chunks/{chunk-AVQDCKNF.js → chunk-22MNNNXE.js} +4 -0
- package/chunks/{chunk-OAYOHSGP.js → chunk-24XYI5EI.js} +4 -4
- package/chunks/{chunk-6BEOH4KK.js → chunk-2NPS2UDH.js} +767 -122
- package/chunks/chunk-332PWN27.js +19 -0
- package/chunks/{chunk-CLQPBI4H.js → chunk-3B26UVCX.js} +132 -26
- package/chunks/{chunk-G7OQ3RFJ.js → chunk-42XGFRJS.js} +3 -3
- package/chunks/{chunk-SL2P3JUA.js → chunk-43W4YSO6.js} +1 -12
- package/chunks/{chunk-JA5KWZTJ.js → chunk-44NROQYV.js} +5 -3
- package/chunks/{chunk-MOUXUCXQ.js → chunk-4KJ2BPIT.js} +1 -1
- package/chunks/chunk-4O344UEE.js +167 -0
- package/chunks/{chunk-ZO5EA3XJ.js → chunk-4UCTWSTP.js} +1 -1
- package/chunks/{chunk-SOT7OMGL.js → chunk-4ZJIPVPB.js} +2 -2
- package/chunks/{chunk-FPHA7WIZ.js → chunk-65CFHNSE.js} +3 -3
- package/chunks/{chunk-FDY3XOTM.js → chunk-6BN7NZ5Z.js} +4 -4
- package/chunks/{chunk-DBF3HTLT.js → chunk-7JGISHHZ.js} +4 -4
- package/chunks/{chunk-T42ACHFI.js → chunk-7LTB54MK.js} +1 -1
- package/chunks/chunk-A2X3KLC3.js +3807 -0
- package/chunks/{chunk-HCFSKO6K.js → chunk-ADZG46HR.js} +1 -1
- package/chunks/{chunk-MX7CTJHR.js → chunk-AFOLR6YL.js} +9 -9
- package/chunks/{chunk-EWALXUAD.js → chunk-AGHU5VRK.js} +8 -0
- package/chunks/{chunk-GLPV75ES.js → chunk-AHNJGLFV.js} +2 -2
- package/chunks/{chunk-QOKV6AO4.js → chunk-AIY5UTFI.js} +184 -147
- package/chunks/{chunk-57NRQM3P.js → chunk-AJBEAUIS.js} +2 -2
- package/chunks/chunk-ALZ75L2X.js +949 -0
- package/chunks/{chunk-T22H4V4R.js → chunk-B34OV7K2.js} +1 -1
- package/chunks/{chunk-GQBRGBLS.js → chunk-B4U2M63D.js} +9 -9
- package/chunks/{chunk-UTL7KABL.js → chunk-BWVQN2HV.js} +7 -7
- package/chunks/{chunk-YPCPZSZB.js → chunk-CCGOFQV3.js} +56 -4
- package/chunks/{chunk-BOAWGUY6.js → chunk-CISB3IQF.js} +121 -49
- package/chunks/{chunk-SRNPMG7J.js → chunk-CNSF3WO5.js} +16 -10
- package/chunks/{chunk-LWGLBVWA.js → chunk-CSOTA7KX.js} +1 -1
- package/chunks/{chunk-YSU33ACT.js → chunk-DGHJTO2K.js} +5 -13
- package/chunks/{chunk-NIOPRZNN.js → chunk-E7KNELIZ.js} +1 -1
- package/chunks/{chunk-SEZC2725.js → chunk-ER3BKOLB.js} +13 -0
- package/chunks/{chunk-3VJ7MT3N.js → chunk-EXPMGZZV.js} +14 -3
- package/chunks/{chunk-RZORUN6X.js → chunk-FEJ2FZ3U.js} +1 -1
- package/chunks/{chunk-OIFSBXSP.js → chunk-FRFFNYUY.js} +3 -3
- package/chunks/{chunk-MHQKYQDS.js → chunk-FTFXDZYI.js} +158 -3
- package/chunks/{chunk-DMSNJDWG.js → chunk-FV7425LN.js} +38 -3
- package/chunks/{chunk-ALX6BUYW.js → chunk-G7ZG7CA6.js} +186 -27
- package/chunks/chunk-GD236YPV.js +28 -0
- package/chunks/{chunk-XH7H6YG4.js → chunk-GL5TV7B5.js} +4 -107
- package/chunks/{chunk-JN2VJ33O.js → chunk-GMOWQOQQ.js} +966 -121
- package/chunks/{chunk-D5KISTLW.js → chunk-H6EMK6QK.js} +1 -1
- package/chunks/{chunk-MBWLP5OT.js → chunk-HJ3GX3Y3.js} +162 -40
- package/chunks/{chunk-KYTQOCDE.js → chunk-HW4N45EE.js} +17 -46
- package/chunks/{chunk-DXXNMPJH.js → chunk-I4A4K72C.js} +460 -93
- package/chunks/{chunk-VXGPYF7U.js → chunk-IFEWJXFS.js} +1 -1
- package/chunks/chunk-II73RK2S.js +158 -0
- package/chunks/{chunk-TENOUWY2.js → chunk-IJRL2S3D.js} +3 -3
- package/chunks/{chunk-C2QKQZEQ.js → chunk-IUE7YWC3.js} +3 -3
- package/chunks/{chunk-3UC7ZC43.js → chunk-JD33UY7E.js} +7 -7
- package/chunks/{chunk-7Z6UEJA4.js → chunk-JF7DFPQ5.js} +5 -2
- package/chunks/{chunk-IUSKVKH5.js → chunk-LEIJKM7Q.js} +1 -1
- package/chunks/chunk-LGFAYIKX.js +115 -0
- package/chunks/{chunk-N2IJLN2L.js → chunk-ME3YSROJ.js} +13 -5
- package/chunks/{chunk-V6NH3CUC.js → chunk-MIG5SQNL.js} +3 -3
- package/chunks/{chunk-MJKEQSZI.js → chunk-MJI36HER.js} +1 -1
- package/chunks/{chunk-YHTNWGRR.js → chunk-MZ7BABX3.js} +1 -1
- package/chunks/{chunk-B236XPGF.js → chunk-NQKLOAVJ.js} +29 -2
- package/chunks/{chunk-3X76L4UF.js → chunk-NZEGNV4V.js} +5 -5
- package/chunks/{chunk-O2RJARYU.js → chunk-OWVIH4HY.js} +1409 -4088
- package/chunks/{chunk-YTWX5TT2.js → chunk-P7I3D7FM.js} +1 -1
- package/chunks/{chunk-HTWHAN44.js → chunk-PC4ZXHU2.js} +1 -1
- package/chunks/chunk-PRDFOIZF.js +2477 -0
- package/chunks/{chunk-UNXGEDX2.js → chunk-PUQLHSQ2.js} +133 -25
- package/chunks/{chunk-5WQF27GW.js → chunk-Q6OEPOOC.js} +1 -1
- package/chunks/{chunk-6QVRLKTZ.js → chunk-QAKFYMJI.js} +7 -7
- package/chunks/{chunk-NPQWQYU6.js → chunk-QYNNN7BK.js} +1 -1
- package/chunks/{chunk-2INJBYLJ.js → chunk-QZF5U5KA.js} +6 -6
- package/chunks/{chunk-N4YJQTRL.js → chunk-RFIL6REB.js} +71 -2
- package/chunks/{chunk-FZ5NVRVK.js → chunk-RYFZCUJO.js} +3 -3
- package/chunks/{chunk-KSPVDFE4.js → chunk-SAIILPQ3.js} +0 -3
- package/chunks/chunk-SD4N3QJ2.js +262 -0
- package/chunks/{chunk-CEYA7K7C.js → chunk-STAZRKOT.js} +62 -12
- package/chunks/{chunk-BZHLWC6T.js → chunk-SUAKHHK7.js} +2 -2
- package/chunks/{chunk-ZI4MGBB5.js → chunk-TBAZMRW3.js} +1 -1
- package/chunks/{chunk-J6ABRKAB.js → chunk-TDGF35EN.js} +2 -2
- package/chunks/{chunk-TOAUDIS7.js → chunk-TLWA7TPR.js} +6 -2
- package/chunks/{chunk-LXFCHX4X.js → chunk-U4FRHCLA.js} +312 -25
- package/chunks/chunk-UIDXQNMV.js +13 -0
- package/chunks/{chunk-LM3YCCZJ.js → chunk-VEB3NYSO.js} +1 -1
- package/chunks/chunk-VQWAZSXN.js +8223 -0
- package/chunks/{chunk-5ES5YPED.js → chunk-VZ7HY3YU.js} +1 -1
- package/chunks/{chunk-QOMAHFYI.js → chunk-W7EEOR7D.js} +3 -3
- package/chunks/{chunk-NVFJSIAX.js → chunk-WMPVYQ4P.js} +1 -1
- package/chunks/{chunk-V5VTULL5.js → chunk-X265R5C6.js} +3 -3
- package/chunks/{chunk-LKWAVAB5.js → chunk-X2XNQQJI.js} +2 -2
- package/chunks/{chunk-MJKMIQMK.js → chunk-X3YGAX7V.js} +1 -1
- package/chunks/{chunk-OBVBTAX5.js → chunk-XISQIIT7.js} +2 -2
- package/chunks/{chunk-NUK2PFSU.js → chunk-XPJH4PKR.js} +1 -1
- package/chunks/{chunk-A34EPIUV.js → chunk-XSAFNANZ.js} +18 -15
- package/chunks/{chunk-WXUDZHOJ.js → chunk-YDSYD7UI.js} +10 -2
- package/chunks/{chunk-AGZF43UV.js → chunk-YEGT55NW.js} +7153 -4406
- package/chunks/{computer-use-5S3NVXRA.js → computer-use-X4KUU3NM.js} +24 -24
- package/chunks/{contextCommand-DPBALZFK.js → contextCommand-LAYJZF7H.js} +28 -27
- package/chunks/{cron-create-7JYUDTUY.js → cron-create-JSXEIPVS.js} +4 -4
- package/chunks/{cron-delete-YPULQQAK.js → cron-delete-OIFVEPGU.js} +4 -4
- package/chunks/{cron-list-HJIW5MHP.js → cron-list-D4ZX4IOE.js} +11 -7
- package/chunks/{daemon-7XYW4BC3.js → daemon-F3I2RXP6.js} +208 -63
- package/chunks/daemon-status-provider-XSAFKVDS.js +74 -0
- package/chunks/dist-573HNSVO.js +3217 -0
- package/chunks/{dist-ABQ7VWRR.js → dist-FQ5WRJPL.js} +2 -2
- package/chunks/{dist-JPSVN367.js → dist-IMFFBMAT.js} +6 -3792
- package/chunks/{dist-BV56HW3W.js → dist-OT7G2WNM.js} +250 -1
- package/chunks/{dist-AW5ZYMUI.js → dist-PKFTNUHO.js} +10 -11
- package/chunks/{dist-AAO65DPC.js → dist-YTRKAVUB.js} +1 -1
- package/chunks/{earlyInputCapture-GGPV4IFT.js → earlyInputCapture-AERYYGXE.js} +25 -25
- package/chunks/{edit-HJ7ISN4C.js → edit-WZTZDGCI.js} +25 -25
- package/chunks/{en-XR3S5VWY.js → en-GA2RMXY5.js} +6 -1
- package/chunks/{enter-worktree-2BQT675D.js → enter-worktree-DEPXBJEL.js} +24 -24
- package/chunks/{enterPlanMode-SJXHJ3WD.js → enterPlanMode-JFGXZHHJ.js} +24 -24
- package/chunks/{errors-EVGER4AZ.js → errors-GMZL4QV7.js} +26 -26
- package/chunks/{exit-worktree-RPDDOSPM.js → exit-worktree-Y7XBK3VV.js} +24 -24
- package/chunks/{exitPlanMode-BQEROAJ7.js → exitPlanMode-WQQER65F.js} +24 -24
- package/chunks/{fast-path-FX2ICJ2O.js → fast-path-W2U6XDNO.js} +5 -2
- package/chunks/{fr-MBMNQSQ6.js → fr-GWNQG4XH.js} +4 -0
- package/chunks/{gemini-EHUXCOUI.js → gemini-T4WX6SRW.js} +444 -256
- package/chunks/{geminiContentGenerator-YDUUKAM2.js → geminiContentGenerator-MKQACXEJ.js} +4 -4
- package/chunks/{glob-3VIGV2DL.js → glob-4KKSHZDF.js} +52 -28
- package/chunks/{grep-4D3S4NUC.js → grep-GHRYXSLZ.js} +24 -24
- package/chunks/handleAutoUpdate-HN7ZOSXY.js +65 -0
- package/chunks/{initializer-QZTZSSLW.js → initializer-SRN3IM42.js} +31 -29
- package/chunks/{ja-HFV5QCHR.js → ja-2HOTA47X.js} +4 -0
- package/chunks/{keychain-token-storage-GPAKRDKQ.js → keychain-token-storage-UJV5XP4Z.js} +2 -2
- package/chunks/{list-WQ24EAMK.js → list-INTVXUPA.js} +30 -30
- package/chunks/{loadedSettingsAdapter-XV74KOSR.js → loadedSettingsAdapter-QVHHQPGM.js} +28 -28
- package/chunks/{loop-wakeup-34YK7T7O.js → loop-wakeup-OHWEMFP5.js} +5 -5
- package/chunks/{ls-MPD5OJUX.js → ls-L654WOAT.js} +4 -4
- package/chunks/{lsp-72PWTDW7.js → lsp-M35KE54Y.js} +2 -2
- package/chunks/{mcp-CO3MKM7N.js → mcp-7V4T46RG.js} +28 -28
- package/chunks/{monitor-GB56T65A.js → monitor-464OY2UE.js} +32 -27
- package/chunks/nonInteractiveCli-LJEEODU2.js +116 -0
- package/chunks/{notebook-edit-VMXAAE3R.js → notebook-edit-BLJYCNDO.js} +25 -25
- package/chunks/{openaiContentGenerator-GM77FLII.js → openaiContentGenerator-PFF6HYB2.js} +12 -12
- package/chunks/{pidfile-HFXSHR64.js → pidfile-LIBUENIV.js} +25 -25
- package/chunks/{qwenContentGenerator-QSCXQIKJ.js → qwenContentGenerator-SUUHZ6CR.js} +26 -26
- package/chunks/{qwenOAuth2-LWLA6MQG.js → qwenOAuth2-ZV7YLMND.js} +5 -5
- package/chunks/{read-file-SVH6CGQY.js → read-file-L7TBQVX7.js} +8 -8
- package/chunks/{read-mcp-resource-OWOBJY72.js → read-mcp-resource-CNQHBSJM.js} +2 -2
- package/chunks/{record-artifact-URK3YUDJ.js → record-artifact-PP3LKHTS.js} +2 -2
- package/chunks/{ripGrep-JD5O2FLX.js → ripGrep-CKKX3GRB.js} +24 -24
- package/chunks/{run-qwen-serve-FADLRJUN.js → run-qwen-serve-5OKADVLE.js} +785 -35
- package/chunks/{scheduler-Q65SB7DJ.js → scheduler-ZRW3AIDU.js} +24 -24
- package/chunks/{send-message-L7OLQEKH.js → send-message-OA6MV4EU.js} +3 -3
- package/chunks/{serve-6ZXAMQ4M.js → serve-36WS32W6.js} +29 -29
- package/chunks/{server-WKDQA6XR.js → server-M372UENX.js} +2504 -439
- package/chunks/{session-STWOX7RA.js → session-F5KSNP2N.js} +66 -61
- package/chunks/{settings-LC4CCWQQ.js → settings-WFLNS3WT.js} +27 -27
- package/chunks/{shell-FEG3RLPW.js → shell-DEDSWN56.js} +24 -24
- package/chunks/{skill-XTXAMDAP.js → skill-A2TL2NPC.js} +24 -12
- package/chunks/{spawnChannel-B6JJPBPV.js → spawnChannel-RQHUWTCL.js} +27 -27
- package/chunks/{src-HITDGVRM.js → src-XKZMNHXS.js} +91 -36
- package/chunks/{startInteractiveUI-IT423PW4.js → startInteractiveUI-REKSTOHU.js} +6213 -14273
- package/chunks/{syntheticOutput-J3MLCQAR.js → syntheticOutput-F7LSDCAR.js} +3 -3
- package/chunks/{task-create-ELEBZ7H2.js → task-create-RPFZNB4B.js} +7 -7
- package/chunks/{task-list-IEUZLF3Y.js → task-list-TGGJX7EA.js} +5 -5
- package/chunks/{task-stop-QEZW3UDY.js → task-stop-W7NGTMYQ.js} +2 -2
- package/chunks/{task-update-DW36J5P5.js → task-update-5WUG5MVQ.js} +7 -7
- package/chunks/{team-create-DAG6SNHZ.js → team-create-TBQVWAG7.js} +24 -24
- package/chunks/{team-delete-SVITIMBO.js → team-delete-UHQQ2QQX.js} +5 -5
- package/chunks/{team-plan-approval-DRDY5OPC.js → team-plan-approval-FZPGUSHJ.js} +24 -24
- package/chunks/{theme-manager-N67EZC6B.js → theme-manager-DQZVNSOC.js} +25 -25
- package/chunks/{todoWrite-SFFQHZYY.js → todoWrite-C4ZAMSR3.js} +4 -4
- package/chunks/{tool-search-CMDJ5HGM.js → tool-search-FDQ3SLNJ.js} +11 -28
- package/chunks/{trustedFolders-JD4QX6UJ.js → trustedFolders-Z475EIHL.js} +25 -25
- package/chunks/updateCheck-E2ZX7RL7.js +65 -0
- package/chunks/{validateNonInterActiveAuth-ADDCGZ6A.js → validateNonInterActiveAuth-O4ECBHQL.js} +61 -56
- package/chunks/{version-VAONYVE5.js → version-CEDD6ZZR.js} +2 -1
- package/chunks/{web-fetch-SXAXJHIO.js → web-fetch-UYGMOHW4.js} +5 -5
- package/chunks/{workflow-DG2BR42M.js → workflow-CQQ4J4I6.js} +25 -25
- package/chunks/{workspace-providers-status-XGW5OZTD.js → workspace-providers-status-MVYXMYDG.js} +30 -30
- package/chunks/{workspace-service-GX3GGZLU.js → workspace-service-OMBR6ZLG.js} +35 -35
- package/chunks/{workspace-skills-status-LFK5WV2V.js → workspace-skills-status-IMMQ7CAY.js} +29 -29
- package/chunks/{write-file-UR7FXWOU.js → write-file-VWGY7AJP.js} +25 -25
- package/chunks/{zh-FSVJTXA4.js → zh-7XVVRTDH.js} +6 -1
- package/chunks/{zh-TW-66MG4LWL.js → zh-TW-DPH554OG.js} +6 -1
- package/cli.js +19 -11
- package/locales/en.js +9 -2
- package/locales/fr.js +6 -0
- package/locales/ja.js +6 -0
- package/locales/zh-TW.js +9 -2
- package/locales/zh.js +9 -2
- package/node_modules/@qwen-code/audio-capture/package.json +1 -1
- package/node_modules/@qwen-code/audio-capture/prebuilds/darwin-arm64/@qwen-code+audio-capture.node +0 -0
- package/node_modules/@qwen-code/audio-capture/prebuilds/darwin-x64/@qwen-code+audio-capture.node +0 -0
- package/node_modules/@qwen-code/audio-capture/prebuilds/win32-x64/@qwen-code+audio-capture.node +0 -0
- package/package.json +3 -3
- package/web-shell/assets/{arc-CUpe0ibu.js → arc-C7hjaa7g.js} +1 -1
- package/web-shell/assets/{architectureDiagram-3BPJPVTR-JvyrY_mK.js → architectureDiagram-3BPJPVTR-pm9KtMZY.js} +1 -1
- package/web-shell/assets/{blockDiagram-GPEHLZMM-CK3Y_vom.js → blockDiagram-GPEHLZMM-CApElKsU.js} +1 -1
- package/web-shell/assets/{c4Diagram-AAUBKEIU-DprSnyrf.js → c4Diagram-AAUBKEIU-BeDe0-9N.js} +1 -1
- package/web-shell/assets/channel-BNf1dW-j.js +1 -0
- package/web-shell/assets/{chunk-2J33WTMH-DJtRJPmu.js → chunk-2J33WTMH-DJEkmLdl.js} +1 -1
- package/web-shell/assets/{chunk-4BX2VUAB-ON6Q2-BG.js → chunk-4BX2VUAB-DXX8gdpe.js} +1 -1
- package/web-shell/assets/{chunk-55IACEB6-c60ou5HZ.js → chunk-55IACEB6-DORmk1kQ.js} +1 -1
- package/web-shell/assets/{chunk-727SXJPM-BamtPKxx.js → chunk-727SXJPM-DWmO4mCZ.js} +1 -1
- package/web-shell/assets/{chunk-AQP2D5EJ-CsVgpu-T.js → chunk-AQP2D5EJ-C7LRaYw2.js} +1 -1
- package/web-shell/assets/{chunk-FMBD7UC4-vZrpjAx4.js → chunk-FMBD7UC4-CCdXgyC5.js} +1 -1
- package/web-shell/assets/{chunk-ND2GUHAM-qxyNOd5t.js → chunk-ND2GUHAM-SyL_xvWc.js} +1 -1
- package/web-shell/assets/{chunk-QZHKN3VN-BvTJSM_S.js → chunk-QZHKN3VN-BzOuCKxa.js} +1 -1
- package/web-shell/assets/classDiagram-4FO5ZUOK-uOIGlzgi.js +1 -0
- package/web-shell/assets/classDiagram-v2-Q7XG4LA2-uOIGlzgi.js +1 -0
- package/web-shell/assets/{cose-bilkent-S5V4N54A-1tXB4pju.js → cose-bilkent-S5V4N54A-BMPWyDKc.js} +1 -1
- package/web-shell/assets/{dagre-BM42HDAG-DglBzme8.js → dagre-BM42HDAG-B_GnPWik.js} +1 -1
- package/web-shell/assets/{diagram-2AECGRRQ-DEJpqsWz.js → diagram-2AECGRRQ-fJqMc3S_.js} +1 -1
- package/web-shell/assets/{diagram-5GNKFQAL-CsQ1NrMG.js → diagram-5GNKFQAL-ximV3O9D.js} +1 -1
- package/web-shell/assets/{diagram-KO2AKTUF-Z-3codAi.js → diagram-KO2AKTUF-2vVyjzqw.js} +1 -1
- package/web-shell/assets/{diagram-LMA3HP47-mBuPTA2i.js → diagram-LMA3HP47-Dckcx1sT.js} +1 -1
- package/web-shell/assets/{diagram-OG6HWLK6-tcA3K3s9.js → diagram-OG6HWLK6-BAVv47ga.js} +1 -1
- package/web-shell/assets/{erDiagram-TEJ5UH35-D9bXFRyZ.js → erDiagram-TEJ5UH35-Bn3nf5J0.js} +1 -1
- package/web-shell/assets/{flowDiagram-I6XJVG4X-Ck0Py04s.js → flowDiagram-I6XJVG4X-BIbGF9JT.js} +1 -1
- package/web-shell/assets/{ganttDiagram-6RSMTGT7-rOevCekE.js → ganttDiagram-6RSMTGT7-CDbhb3AH.js} +1 -1
- package/web-shell/assets/{gitGraphDiagram-PVQCEYII-CoPQaLj0.js → gitGraphDiagram-PVQCEYII-CbKG1a_w.js} +1 -1
- package/web-shell/assets/index-CnE2ur2L.js +779 -0
- package/web-shell/assets/index-hSKXrlSE.css +5 -0
- package/web-shell/assets/{infoDiagram-5YYISTIA-a77CUKoI.js → infoDiagram-5YYISTIA-DUFxTy8m.js} +1 -1
- package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-DlLgUAO-.js → ishikawaDiagram-YF4QCWOH-D69hrBG8.js} +1 -1
- package/web-shell/assets/{journeyDiagram-JHISSGLW-BXR5kVAZ.js → journeyDiagram-JHISSGLW-DsvEw51Y.js} +1 -1
- package/web-shell/assets/{kanban-definition-UN3LZRKU-h5CoHZg7.js → kanban-definition-UN3LZRKU-lFFjZEYd.js} +1 -1
- package/web-shell/assets/{linear-BkaREbyD.js → linear-Bo5bWzvo.js} +1 -1
- package/web-shell/assets/{mermaid.core-Bkagz0ng.js → mermaid.core-C_HKMJx5.js} +5 -5
- package/web-shell/assets/{mindmap-definition-RKZ34NQL-D7EMKR_5.js → mindmap-definition-RKZ34NQL-DlV-NUTs.js} +1 -1
- package/web-shell/assets/{pieDiagram-4H26LBE5-DAmPOjsL.js → pieDiagram-4H26LBE5-B2e6FH2a.js} +1 -1
- package/web-shell/assets/{quadrantDiagram-W4KKPZXB-e4WFQkQu.js → quadrantDiagram-W4KKPZXB-D75kSk-b.js} +1 -1
- package/web-shell/assets/{requirementDiagram-4Y6WPE33-v1zo7OiV.js → requirementDiagram-4Y6WPE33-CQ6xakhM.js} +1 -1
- package/web-shell/assets/{sankeyDiagram-5OEKKPKP-Bstm4aW_.js → sankeyDiagram-5OEKKPKP-J_XTKrcY.js} +1 -1
- package/web-shell/assets/{sequenceDiagram-3UESZ5HK-DzcZy6xN.js → sequenceDiagram-3UESZ5HK-D7jTcBtf.js} +1 -1
- package/web-shell/assets/{stateDiagram-AJRCARHV-BEJH6YbH.js → stateDiagram-AJRCARHV-CrlM_OT3.js} +1 -1
- package/web-shell/assets/stateDiagram-v2-BHNVJYJU-Bs4TK_84.js +1 -0
- package/web-shell/assets/{timeline-definition-PNZ67QCA-TI1wH-Pm.js → timeline-definition-PNZ67QCA-5oZi76Ef.js} +1 -1
- package/web-shell/assets/{vennDiagram-CIIHVFJN-YaH8VDMS.js → vennDiagram-CIIHVFJN-DO5YptPK.js} +1 -1
- package/web-shell/assets/{wardley-L42UT6IY-B80co7OP.js → wardley-L42UT6IY-4t1eJDvM.js} +1 -1
- package/web-shell/assets/{wardleyDiagram-YWT4CUSO-4fHNDEMl.js → wardleyDiagram-YWT4CUSO-DKZc661S.js} +1 -1
- package/web-shell/assets/{xychartDiagram-2RQKCTM6-DT3q4Z3J.js → xychartDiagram-2RQKCTM6-su9hp08G.js} +1 -1
- package/web-shell/index.html +2 -2
- package/chunks/chunk-L7QPM2YD.js +0 -481
- package/chunks/daemon-status-provider-2EWTHT7Y.js +0 -73
- package/chunks/nonInteractiveCli-HNZRIM5I.js +0 -111
- package/web-shell/assets/channel-BAxQ2-aZ.js +0 -1
- package/web-shell/assets/classDiagram-4FO5ZUOK-Cvd_xhZI.js +0 -1
- package/web-shell/assets/classDiagram-v2-Q7XG4LA2-Cvd_xhZI.js +0 -1
- package/web-shell/assets/index-Cr7MYW6T.css +0 -5
- package/web-shell/assets/index-DCHPAUp3.js +0 -730
- package/web-shell/assets/stateDiagram-v2-BHNVJYJU-BopifCBI.js +0 -1
|
@@ -0,0 +1,262 @@
|
|
|
1
|
+
// Force strict mode and setup for ESM
|
|
2
|
+
"use strict";
|
|
3
|
+
import {
|
|
4
|
+
appEvents
|
|
5
|
+
} from "./chunk-I4A4K72C.js";
|
|
6
|
+
import {
|
|
7
|
+
require_undici
|
|
8
|
+
} from "./chunk-54YZOP7P.js";
|
|
9
|
+
import {
|
|
10
|
+
getAllProviderBaseUrls
|
|
11
|
+
} from "./chunk-YEGT55NW.js";
|
|
12
|
+
import {
|
|
13
|
+
initializeTelemetry
|
|
14
|
+
} from "./chunk-GMOWQOQQ.js";
|
|
15
|
+
import {
|
|
16
|
+
detectRuntime,
|
|
17
|
+
getOrCreateSharedDispatcher,
|
|
18
|
+
redactProxyCredentials
|
|
19
|
+
} from "./chunk-H6EMK6QK.js";
|
|
20
|
+
import {
|
|
21
|
+
createDebugLogger
|
|
22
|
+
} from "./chunk-22MNNNXE.js";
|
|
23
|
+
import {
|
|
24
|
+
recordStartupEvent
|
|
25
|
+
} from "./chunk-ITOGNELQ.js";
|
|
26
|
+
import {
|
|
27
|
+
init_esbuild_shims
|
|
28
|
+
} from "./chunk-A4BMJM77.js";
|
|
29
|
+
import {
|
|
30
|
+
__name,
|
|
31
|
+
__toESM
|
|
32
|
+
} from "./chunk-J2S4EL5Y.js";
|
|
33
|
+
|
|
34
|
+
// packages/cli/src/startup/startup-prefetch.ts
|
|
35
|
+
init_esbuild_shims();
|
|
36
|
+
|
|
37
|
+
// packages/cli/src/utils/apiPreconnect.ts
|
|
38
|
+
init_esbuild_shims();
|
|
39
|
+
var import_undici = __toESM(require_undici(), 1);
|
|
40
|
+
var debugLogger = createDebugLogger("PRECONNECT");
|
|
41
|
+
var preconnectFired = false;
|
|
42
|
+
var DEFAULT_BASE_URLS = {
|
|
43
|
+
openai: "https://api.openai.com",
|
|
44
|
+
"qwen-oauth": "https://coding.dashscope.aliyuncs.com",
|
|
45
|
+
anthropic: "https://api.anthropic.com",
|
|
46
|
+
dashscope: "https://dashscope.aliyuncs.com"
|
|
47
|
+
};
|
|
48
|
+
var ALL_DEFAULT_URLS = [
|
|
49
|
+
...Object.values(DEFAULT_BASE_URLS),
|
|
50
|
+
...getAllProviderBaseUrls()
|
|
51
|
+
];
|
|
52
|
+
function shouldSkipPreconnect() {
|
|
53
|
+
if (process.env["NODE_EXTRA_CA_CERTS"]) {
|
|
54
|
+
debugLogger.debug("Skipping preconnect: custom CA certificate configured");
|
|
55
|
+
return true;
|
|
56
|
+
}
|
|
57
|
+
return false;
|
|
58
|
+
}
|
|
59
|
+
__name(shouldSkipPreconnect, "shouldSkipPreconnect");
|
|
60
|
+
function isInSandboxMode() {
|
|
61
|
+
return process.env["SANDBOX"] !== void 0;
|
|
62
|
+
}
|
|
63
|
+
__name(isInSandboxMode, "isInSandboxMode");
|
|
64
|
+
function isDefaultBaseUrl(baseUrl) {
|
|
65
|
+
const normalizedInput = baseUrl.toLowerCase().replace(/^https?:\/\//, "").replace(/\/+$/, "");
|
|
66
|
+
return ALL_DEFAULT_URLS.some((defaultUrl) => {
|
|
67
|
+
const normalizedDefault = defaultUrl.toLowerCase().replace(/^https?:\/\//, "").replace(/\/+$/, "");
|
|
68
|
+
return normalizedInput === normalizedDefault || normalizedInput.startsWith(normalizedDefault + "/");
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
__name(isDefaultBaseUrl, "isDefaultBaseUrl");
|
|
72
|
+
function getPreconnectTargetUrl(authType, resolvedBaseUrl) {
|
|
73
|
+
if (resolvedBaseUrl && /^https?:\/\//i.test(resolvedBaseUrl)) {
|
|
74
|
+
if (isDefaultBaseUrl(resolvedBaseUrl)) {
|
|
75
|
+
return resolvedBaseUrl;
|
|
76
|
+
}
|
|
77
|
+
debugLogger.debug(
|
|
78
|
+
"Skipping preconnect: resolved baseUrl is not a default URL"
|
|
79
|
+
);
|
|
80
|
+
return void 0;
|
|
81
|
+
}
|
|
82
|
+
if (authType && DEFAULT_BASE_URLS[authType]) {
|
|
83
|
+
return DEFAULT_BASE_URLS[authType];
|
|
84
|
+
}
|
|
85
|
+
return void 0;
|
|
86
|
+
}
|
|
87
|
+
__name(getPreconnectTargetUrl, "getPreconnectTargetUrl");
|
|
88
|
+
function preconnectApi(authType, options = {}) {
|
|
89
|
+
if (preconnectFired) {
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
if (process.env["QWEN_CODE_DISABLE_PRECONNECT"] === "1") {
|
|
93
|
+
debugLogger.debug("Preconnect disabled by environment variable");
|
|
94
|
+
preconnectFired = true;
|
|
95
|
+
return;
|
|
96
|
+
}
|
|
97
|
+
if (isInSandboxMode()) {
|
|
98
|
+
debugLogger.debug("Skipping preconnect: sandbox mode detected");
|
|
99
|
+
preconnectFired = true;
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
102
|
+
if (shouldSkipPreconnect()) {
|
|
103
|
+
preconnectFired = true;
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
106
|
+
if (detectRuntime() !== "node") {
|
|
107
|
+
debugLogger.debug("Skipping preconnect: unsupported runtime");
|
|
108
|
+
preconnectFired = true;
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
111
|
+
if (!options.proxy) {
|
|
112
|
+
debugLogger.debug("Skipping preconnect dispatcher: no proxy configured");
|
|
113
|
+
return;
|
|
114
|
+
}
|
|
115
|
+
const proxy = options.proxy;
|
|
116
|
+
const targetUrl = getPreconnectTargetUrl(authType, options.resolvedBaseUrl);
|
|
117
|
+
if (!targetUrl) {
|
|
118
|
+
debugLogger.debug("No target URL for preconnect");
|
|
119
|
+
return;
|
|
120
|
+
}
|
|
121
|
+
preconnectFired = true;
|
|
122
|
+
debugLogger.debug(`Preconnecting to: ${targetUrl}`);
|
|
123
|
+
try {
|
|
124
|
+
const dispatcher = getOrCreateSharedDispatcher(proxy);
|
|
125
|
+
(0, import_undici.fetch)(targetUrl, {
|
|
126
|
+
method: "HEAD",
|
|
127
|
+
signal: AbortSignal.timeout(5e3),
|
|
128
|
+
headers: {
|
|
129
|
+
"User-Agent": "QwenCode-Preconnect/1.0"
|
|
130
|
+
},
|
|
131
|
+
dispatcher
|
|
132
|
+
}).then(() => {
|
|
133
|
+
debugLogger.debug("Preconnect completed");
|
|
134
|
+
}).catch((error) => {
|
|
135
|
+
const redactedError = redactProxyCredentials(String(error));
|
|
136
|
+
debugLogger.debug(`Preconnect failed (ignored): ${redactedError}`);
|
|
137
|
+
});
|
|
138
|
+
} catch (error) {
|
|
139
|
+
const redactedError = redactProxyCredentials(String(error));
|
|
140
|
+
debugLogger.debug(`Preconnect failed (ignored): ${redactedError}`);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
__name(preconnectApi, "preconnectApi");
|
|
144
|
+
|
|
145
|
+
// packages/cli/src/startup/startup-prefetch.ts
|
|
146
|
+
var debugLogger2 = createDebugLogger("STARTUP_PREFETCH");
|
|
147
|
+
var DEFERRED_IDE_CONNECT_TIMEOUT_MS = 1e4;
|
|
148
|
+
var earlyStarted = /* @__PURE__ */ new WeakSet();
|
|
149
|
+
var postRenderStarted = /* @__PURE__ */ new WeakSet();
|
|
150
|
+
function withTimeout(promise, name, timeoutMs) {
|
|
151
|
+
let timeoutId;
|
|
152
|
+
let timedOut = false;
|
|
153
|
+
const timeout = new Promise((_, reject) => {
|
|
154
|
+
timeoutId = setTimeout(() => {
|
|
155
|
+
timedOut = true;
|
|
156
|
+
reject(new Error(`${name} timed out after ${timeoutMs}ms`));
|
|
157
|
+
}, timeoutMs);
|
|
158
|
+
timeoutId.unref?.();
|
|
159
|
+
});
|
|
160
|
+
promise.catch((err) => {
|
|
161
|
+
if (timedOut) {
|
|
162
|
+
debugLogger2.debug(`${name} underlying error after timeout:`, err);
|
|
163
|
+
}
|
|
164
|
+
});
|
|
165
|
+
return Promise.race([promise, timeout]).finally(() => {
|
|
166
|
+
if (timeoutId) {
|
|
167
|
+
clearTimeout(timeoutId);
|
|
168
|
+
}
|
|
169
|
+
});
|
|
170
|
+
}
|
|
171
|
+
__name(withTimeout, "withTimeout");
|
|
172
|
+
function runDeferredTask(name, task) {
|
|
173
|
+
recordStartupEvent("startup_prefetch_started", { name });
|
|
174
|
+
void Promise.resolve().then(task).then(() => {
|
|
175
|
+
recordStartupEvent("startup_prefetch_completed", { name });
|
|
176
|
+
}).catch((err) => {
|
|
177
|
+
recordStartupEvent("startup_prefetch_failed", { name });
|
|
178
|
+
debugLogger2.warn(`${name} failed:`, err);
|
|
179
|
+
});
|
|
180
|
+
}
|
|
181
|
+
__name(runDeferredTask, "runDeferredTask");
|
|
182
|
+
function startEarlyStartupPrefetches(config) {
|
|
183
|
+
if (earlyStarted.has(config)) return;
|
|
184
|
+
earlyStarted.add(config);
|
|
185
|
+
try {
|
|
186
|
+
const modelsConfig = config.getModelsConfig();
|
|
187
|
+
const authType = modelsConfig.getCurrentAuthType();
|
|
188
|
+
const resolvedBaseUrl = modelsConfig.getGenerationConfig().baseUrl;
|
|
189
|
+
const proxy = config.getProxy();
|
|
190
|
+
preconnectApi(authType, { resolvedBaseUrl, proxy });
|
|
191
|
+
} catch (error) {
|
|
192
|
+
debugLogger2.debug(
|
|
193
|
+
`Preconnect skipped due to error getting authType: ${error}`
|
|
194
|
+
);
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
__name(startEarlyStartupPrefetches, "startEarlyStartupPrefetches");
|
|
198
|
+
function startPostRenderPrefetches(config, settings, options = {}) {
|
|
199
|
+
if (postRenderStarted.has(config)) return;
|
|
200
|
+
postRenderStarted.add(config);
|
|
201
|
+
if (settings.merged.general?.enableAutoUpdate !== false) {
|
|
202
|
+
runDeferredTask("update_check", async () => {
|
|
203
|
+
const [{ checkForUpdates }, { handleAutoUpdate }] = await Promise.all([
|
|
204
|
+
import("./updateCheck-E2ZX7RL7.js"),
|
|
205
|
+
import("./handleAutoUpdate-HN7ZOSXY.js")
|
|
206
|
+
]);
|
|
207
|
+
const info = await checkForUpdates();
|
|
208
|
+
handleAutoUpdate(info, settings, config.getProjectRoot());
|
|
209
|
+
});
|
|
210
|
+
}
|
|
211
|
+
if (options.connectIde && config.getIdeMode()) {
|
|
212
|
+
runDeferredTask("ide_connect", async () => {
|
|
213
|
+
appEvents.emit("startup-ide-connection-status-changed" /* StartupIdeConnectionStatusChanged */, {
|
|
214
|
+
state: "connecting"
|
|
215
|
+
});
|
|
216
|
+
try {
|
|
217
|
+
const { connectIdeForStartup } = await import("./initializer-SRN3IM42.js");
|
|
218
|
+
await withTimeout(
|
|
219
|
+
connectIdeForStartup(config),
|
|
220
|
+
"ide_connect",
|
|
221
|
+
DEFERRED_IDE_CONNECT_TIMEOUT_MS
|
|
222
|
+
);
|
|
223
|
+
appEvents.emit("startup-ide-connection-status-changed" /* StartupIdeConnectionStatusChanged */, {
|
|
224
|
+
state: "connected"
|
|
225
|
+
});
|
|
226
|
+
} catch (err) {
|
|
227
|
+
appEvents.emit("startup-ide-connection-status-changed" /* StartupIdeConnectionStatusChanged */, {
|
|
228
|
+
state: "failed",
|
|
229
|
+
message: err instanceof Error ? err.message : String(err)
|
|
230
|
+
});
|
|
231
|
+
throw err;
|
|
232
|
+
}
|
|
233
|
+
});
|
|
234
|
+
}
|
|
235
|
+
if (options.initializeTelemetry) {
|
|
236
|
+
runDeferredTask("telemetry_init", () => {
|
|
237
|
+
initializeTelemetry(config);
|
|
238
|
+
});
|
|
239
|
+
}
|
|
240
|
+
if (config.isInteractive()) {
|
|
241
|
+
runDeferredTask("background_housekeeping", async () => {
|
|
242
|
+
const { startBackgroundHousekeeping } = await import("./scheduler-ZRW3AIDU.js");
|
|
243
|
+
startBackgroundHousekeeping(config, settings);
|
|
244
|
+
});
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
__name(startPostRenderPrefetches, "startPostRenderPrefetches");
|
|
248
|
+
|
|
249
|
+
export {
|
|
250
|
+
startEarlyStartupPrefetches,
|
|
251
|
+
startPostRenderPrefetches
|
|
252
|
+
};
|
|
253
|
+
/**
|
|
254
|
+
* @license
|
|
255
|
+
* Copyright 2026 Qwen Team
|
|
256
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
257
|
+
*/
|
|
258
|
+
/**
|
|
259
|
+
* @license
|
|
260
|
+
* Copyright 2026 Qwen Code
|
|
261
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
262
|
+
*/
|
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
getLanguageNameFromLocale,
|
|
7
7
|
getLanguageSettingsOptions,
|
|
8
8
|
t
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-QAKFYMJI.js";
|
|
10
10
|
import {
|
|
11
11
|
DEFAULT_DARK_THEME_NAME,
|
|
12
12
|
DEFAULT_LIGHT_THEME_NAME
|
|
@@ -29,36 +29,37 @@ import {
|
|
|
29
29
|
import {
|
|
30
30
|
isWorkspaceTrusted,
|
|
31
31
|
updateSettingsFilePreservingFormat
|
|
32
|
-
} from "./chunk-
|
|
32
|
+
} from "./chunk-MIG5SQNL.js";
|
|
33
33
|
import {
|
|
34
34
|
require_strip_json_comments
|
|
35
35
|
} from "./chunk-QYUE6W3T.js";
|
|
36
36
|
import {
|
|
37
37
|
DEFAULT_MAX_SUBAGENT_DEPTH,
|
|
38
|
+
DEFAULT_MAX_TOOL_CALLS_PER_TURN,
|
|
38
39
|
DEFAULT_STOP_HOOK_BLOCK_CAP,
|
|
39
40
|
DEFAULT_TOOL_OUTPUT_BATCH_BUDGET,
|
|
40
41
|
DEFAULT_TOOL_RESULTS_TOTAL_CHARS_THRESHOLD,
|
|
41
42
|
DEFAULT_TRUNCATE_TOOL_OUTPUT_LINES,
|
|
42
43
|
DEFAULT_TRUNCATE_TOOL_OUTPUT_THRESHOLD,
|
|
43
44
|
stripRuntimeSnapshotPrefix
|
|
44
|
-
} from "./chunk-
|
|
45
|
+
} from "./chunk-YEGT55NW.js";
|
|
45
46
|
import {
|
|
46
47
|
require_main
|
|
47
48
|
} from "./chunk-SKAZWEV5.js";
|
|
48
49
|
import {
|
|
49
50
|
DEFAULT_QWEN_CUSTOM_IGNORE_FILE_NAMES
|
|
50
|
-
} from "./chunk-
|
|
51
|
+
} from "./chunk-TLWA7TPR.js";
|
|
51
52
|
import {
|
|
52
53
|
DEFAULT_SENSITIVE_SPAN_ATTRIBUTE_MAX_LENGTH,
|
|
53
54
|
SENSITIVE_SPAN_ATTRIBUTE_MAX_LENGTH_LIMIT
|
|
54
|
-
} from "./chunk-
|
|
55
|
+
} from "./chunk-GMOWQOQQ.js";
|
|
55
56
|
import {
|
|
56
57
|
FatalConfigError,
|
|
57
58
|
QWEN_DIR,
|
|
58
59
|
Storage,
|
|
59
60
|
createDebugLogger,
|
|
60
61
|
getErrorMessage
|
|
61
|
-
} from "./chunk-
|
|
62
|
+
} from "./chunk-22MNNNXE.js";
|
|
62
63
|
import {
|
|
63
64
|
init_esbuild_shims
|
|
64
65
|
} from "./chunk-A4BMJM77.js";
|
|
@@ -1092,6 +1093,15 @@ var SETTINGS_SCHEMA = {
|
|
|
1092
1093
|
description: "Image-capable model used as the vision bridge: when a text-only main model receives an image, it is transcribed by this model first. Set with /model --vision. Leave empty to auto-pick a same-provider vision model.",
|
|
1093
1094
|
showInDialog: true
|
|
1094
1095
|
},
|
|
1096
|
+
modelFallbacks: {
|
|
1097
|
+
type: "string",
|
|
1098
|
+
label: "Model Fallbacks",
|
|
1099
|
+
category: "Model",
|
|
1100
|
+
requiresRestart: true,
|
|
1101
|
+
default: "",
|
|
1102
|
+
description: 'Ordered list of fallback model IDs (comma-separated, max 3) to try when the primary model hits capacity errors (429/503/529). Example: "qwen-plus,qwen-turbo". Set via CLI with --fallback-model.',
|
|
1103
|
+
showInDialog: true
|
|
1104
|
+
},
|
|
1095
1105
|
voiceModel: {
|
|
1096
1106
|
type: "string",
|
|
1097
1107
|
label: "Voice Model",
|
|
@@ -1222,7 +1232,16 @@ var SETTINGS_SCHEMA = {
|
|
|
1222
1232
|
category: "Model",
|
|
1223
1233
|
requiresRestart: false,
|
|
1224
1234
|
default: true,
|
|
1225
|
-
description: "Skip the opt-in streaming loop-detection heuristics (content/thought repetition, read-file and action stagnation, global-duplicate and alternating tool-call patterns). Defaults to true to avoid false-positive interruptions; set to false to re-enable them as an unattended-run guardrail. A minimal always-on guard (consecutive identical tool calls plus a per-turn tool-call cap) still runs regardless of this setting.",
|
|
1235
|
+
description: "Skip the opt-in streaming loop-detection heuristics (content/thought repetition, read-file and action stagnation, global-duplicate and alternating tool-call patterns). Defaults to true to avoid false-positive interruptions; set to false to re-enable them as an unattended-run guardrail. A minimal always-on guard (consecutive identical tool calls plus a per-turn tool-call cap, see model.maxToolCallsPerTurn) still runs regardless of this setting.",
|
|
1236
|
+
showInDialog: false
|
|
1237
|
+
},
|
|
1238
|
+
maxToolCallsPerTurn: {
|
|
1239
|
+
type: "number",
|
|
1240
|
+
label: "Max Tool Calls Per Turn",
|
|
1241
|
+
category: "Model",
|
|
1242
|
+
requiresRestart: false,
|
|
1243
|
+
default: DEFAULT_MAX_TOOL_CALLS_PER_TURN,
|
|
1244
|
+
description: "Hard cap on tool calls within a single turn (one model turn plus its tool-result continuations; blocking Stop-hook continuations such as /goal iterations start a fresh budget). An always-on circuit breaker against runaway turns, independent of model.skipLoopDetection. Set to 0 or a negative value to disable the cap.",
|
|
1226
1245
|
showInDialog: false
|
|
1227
1246
|
},
|
|
1228
1247
|
skipStartupContext: {
|
|
@@ -1886,8 +1905,8 @@ var SETTINGS_SCHEMA = {
|
|
|
1886
1905
|
label: "Pager",
|
|
1887
1906
|
category: "Tools",
|
|
1888
1907
|
requiresRestart: false,
|
|
1889
|
-
default:
|
|
1890
|
-
description: "The pager command to use for shell output. Defaults to `cat
|
|
1908
|
+
default: void 0,
|
|
1909
|
+
description: "The pager command to use for shell output. Defaults to `cat` on non-Windows platforms and unset on Windows. Set to an empty string to disable pager environment variables.",
|
|
1891
1910
|
showInDialog: false
|
|
1892
1911
|
},
|
|
1893
1912
|
showColor: {
|
|
@@ -1941,6 +1960,16 @@ var SETTINGS_SCHEMA = {
|
|
|
1941
1960
|
showInDialog: false,
|
|
1942
1961
|
mergeStrategy: "union" /* UNION */
|
|
1943
1962
|
},
|
|
1963
|
+
visible: {
|
|
1964
|
+
type: "array",
|
|
1965
|
+
label: "Visible Deferred Tools",
|
|
1966
|
+
category: "Tools",
|
|
1967
|
+
requiresRestart: true,
|
|
1968
|
+
default: void 0,
|
|
1969
|
+
description: "Deferred tool names made visible at startup without requiring tool_search. Listed tools appear alongside core tools in the initial session.",
|
|
1970
|
+
showInDialog: false,
|
|
1971
|
+
mergeStrategy: "union" /* UNION */
|
|
1972
|
+
},
|
|
1944
1973
|
approvalMode: {
|
|
1945
1974
|
type: "enum",
|
|
1946
1975
|
label: "Tool Approval Mode",
|
|
@@ -2343,6 +2372,20 @@ var SETTINGS_SCHEMA = {
|
|
|
2343
2372
|
description: "Settings for multi-agent collaboration features (Arena, Team, Swarm).",
|
|
2344
2373
|
showInDialog: false,
|
|
2345
2374
|
properties: {
|
|
2375
|
+
maxParallelAgents: {
|
|
2376
|
+
type: "number",
|
|
2377
|
+
label: "Max Parallel Agents",
|
|
2378
|
+
category: "Advanced",
|
|
2379
|
+
requiresRestart: true,
|
|
2380
|
+
default: void 0,
|
|
2381
|
+
minimum: 1,
|
|
2382
|
+
description: "Global maximum number of background sub-agents that can run concurrently. Additional background agents wait in a queue until a slot is available. Per-model limits are not supported yet.",
|
|
2383
|
+
showInDialog: false,
|
|
2384
|
+
jsonSchemaOverride: {
|
|
2385
|
+
type: "integer",
|
|
2386
|
+
minimum: 1
|
|
2387
|
+
}
|
|
2388
|
+
},
|
|
2346
2389
|
displayMode: {
|
|
2347
2390
|
type: "enum",
|
|
2348
2391
|
label: "Display Mode",
|
|
@@ -4148,7 +4191,9 @@ function loadEnvironment(settings, startDir = process.cwd()) {
|
|
|
4148
4191
|
if (!isQwenScopedEnvFile && excludedVars.includes(key)) {
|
|
4149
4192
|
continue;
|
|
4150
4193
|
}
|
|
4151
|
-
|
|
4194
|
+
const existingValue = process.env[key];
|
|
4195
|
+
const isEffectivelyUnset = !Object.hasOwn(process.env, key) || existingValue === "";
|
|
4196
|
+
if (isEffectivelyUnset) {
|
|
4152
4197
|
process.env[key] = parsedEnv[key];
|
|
4153
4198
|
dotEnvSourcedKeys.add(key);
|
|
4154
4199
|
}
|
|
@@ -4165,7 +4210,9 @@ function loadEnvironment(settings, startDir = process.cwd()) {
|
|
|
4165
4210
|
if (PROJECT_ENV_HARDCODED_EXCLUSIONS.includes(key)) {
|
|
4166
4211
|
continue;
|
|
4167
4212
|
}
|
|
4168
|
-
|
|
4213
|
+
const existingValue = process.env[key];
|
|
4214
|
+
const isEffectivelyUnset = !Object.hasOwn(process.env, key) || existingValue === "";
|
|
4215
|
+
if (isEffectivelyUnset && typeof value === "string") {
|
|
4169
4216
|
process.env[key] = value;
|
|
4170
4217
|
settingsEnvSourcedKeys.add(key);
|
|
4171
4218
|
}
|
|
@@ -4214,7 +4261,8 @@ function reloadEnvironment(settings, workspaceCwd) {
|
|
|
4214
4261
|
if (RELOAD_EXCLUDED_KEYS.has(key)) continue;
|
|
4215
4262
|
if (PROJECT_ENV_HARDCODED_EXCLUSIONS.includes(key)) continue;
|
|
4216
4263
|
if (typeof value !== "string") continue;
|
|
4217
|
-
|
|
4264
|
+
const dotEnvValue = newDotEnvKeys.get(key);
|
|
4265
|
+
if (dotEnvValue !== void 0 && dotEnvValue !== "") continue;
|
|
4218
4266
|
if (dotEnvReadFailed && lastReloadSnapshot.has(key)) continue;
|
|
4219
4267
|
newSettingsEnvKeys.set(key, value);
|
|
4220
4268
|
}
|
|
@@ -4239,6 +4287,7 @@ function reloadEnvironment(settings, workspaceCwd) {
|
|
|
4239
4287
|
}
|
|
4240
4288
|
}
|
|
4241
4289
|
for (const [key, value] of newDotEnvKeys) {
|
|
4290
|
+
if (value === "" && newSettingsEnvKeys.has(key)) continue;
|
|
4242
4291
|
if (process.env[key] !== value) {
|
|
4243
4292
|
updatedKeys.push(key);
|
|
4244
4293
|
}
|
|
@@ -4966,6 +5015,7 @@ export {
|
|
|
4966
5015
|
resetHomeEnvBootstrapForTesting,
|
|
4967
5016
|
resetEnvironmentTrackingForTesting,
|
|
4968
5017
|
getHomeEnvFallbackVars,
|
|
5018
|
+
findEnvFiles,
|
|
4969
5019
|
setUpCloudShellEnvironment,
|
|
4970
5020
|
loadEnvironment,
|
|
4971
5021
|
reloadEnvironment,
|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
"use strict";
|
|
3
3
|
import {
|
|
4
4
|
atomicWriteFileSync
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-7LTB54MK.js";
|
|
6
6
|
import {
|
|
7
7
|
Storage,
|
|
8
8
|
createDebugLogger
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-22MNNNXE.js";
|
|
10
10
|
import {
|
|
11
11
|
init_esbuild_shims
|
|
12
12
|
} from "./chunk-A4BMJM77.js";
|
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
"use strict";
|
|
3
3
|
import {
|
|
4
4
|
isTeamAutoMemPath
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-4KJ2BPIT.js";
|
|
6
6
|
import {
|
|
7
7
|
createDebugLogger
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-22MNNNXE.js";
|
|
9
9
|
import {
|
|
10
10
|
init_esbuild_shims
|
|
11
11
|
} from "./chunk-A4BMJM77.js";
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
import {
|
|
4
4
|
createDebugLogger,
|
|
5
5
|
isNodeError
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-22MNNNXE.js";
|
|
7
7
|
import {
|
|
8
8
|
init_esbuild_shims
|
|
9
9
|
} from "./chunk-A4BMJM77.js";
|
|
@@ -858,12 +858,16 @@ var QwenIgnoreParser = class {
|
|
|
858
858
|
if (filePath.startsWith("\\") || filePath === "/" || filePath.includes("\0")) {
|
|
859
859
|
return null;
|
|
860
860
|
}
|
|
861
|
+
const isDir = filePath.endsWith("/");
|
|
861
862
|
const resolved = path2.resolve(this.projectRoot, filePath);
|
|
862
863
|
const relativePath = path2.relative(this.projectRoot, resolved);
|
|
863
864
|
if (relativePath === "" || !isPathWithinRoot(resolved, this.projectRoot)) {
|
|
864
865
|
return null;
|
|
865
866
|
}
|
|
866
|
-
|
|
867
|
+
let normalizedPath = relativePath.replace(/\\/g, "/");
|
|
868
|
+
if (isDir && !normalizedPath.endsWith("/")) {
|
|
869
|
+
normalizedPath += "/";
|
|
870
|
+
}
|
|
867
871
|
if (normalizedPath.startsWith("/") || normalizedPath === "") {
|
|
868
872
|
return null;
|
|
869
873
|
}
|