@qwen-code/qwen-code 0.19.7 → 0.19.8-nightly.20260711.0ef3a76bd
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/SKILL.md +1 -0
- package/bundled/qc-helper/docs/configuration/auth.md +40 -55
- package/bundled/qc-helper/docs/configuration/model-providers.md +224 -218
- package/bundled/qc-helper/docs/configuration/settings.md +60 -51
- package/bundled/qc-helper/docs/features/_meta.ts +1 -0
- package/bundled/qc-helper/docs/features/channels/dingtalk.md +12 -2
- package/bundled/qc-helper/docs/features/channels/overview.md +86 -12
- package/bundled/qc-helper/docs/features/channels/plugins.md +1 -0
- package/bundled/qc-helper/docs/features/channels/wecom.md +6 -0
- package/bundled/qc-helper/docs/features/code-review.md +29 -5
- package/bundled/qc-helper/docs/features/commands.md +39 -38
- package/bundled/qc-helper/docs/features/computer-use.md +77 -0
- package/bundled/qc-helper/docs/features/hooks.md +36 -34
- package/bundled/qc-helper/docs/features/memory.md +1 -1
- package/bundled/qc-helper/docs/features/tool-use-summaries.md +19 -23
- package/bundled/qc-helper/docs/integration-vscode.md +2 -2
- package/bundled/qc-helper/docs/qwen-serve.md +40 -16
- package/bundled/qc-helper/docs/reference/keyboard-shortcuts.md +1 -1
- package/bundled/review/DESIGN.md +93 -22
- package/bundled/review/SKILL.md +300 -87
- package/chunks/MaxSizedBox-4CX4IQWE.js +70 -0
- package/chunks/{StandaloneSessionPicker-APISIRJZ.js → StandaloneSessionPicker-TYUSSNJ6.js} +79 -77
- package/chunks/{acpAgent-MMOSC2YA.js → acpAgent-5HJEXOPR.js} +978 -205
- package/chunks/agent-PZF5IUUB.js +68 -0
- package/chunks/agent-headless-L4N7V2SG.js +62 -0
- package/chunks/{anthropicContentGenerator-AKYPSZIV.js → anthropicContentGenerator-L73TO3DB.js} +214 -31
- package/chunks/{artifact-tool-D233YJFH.js → artifact-tool-U7IRTLIV.js} +5 -5
- package/chunks/{askUserQuestion-MKL5ZTMC.js → askUserQuestion-2DLUUZZG.js} +6 -6
- package/chunks/bridge-OJL6LD42.js +78 -0
- package/chunks/{ca-HCMB2I54.js → ca-WTQOU43B.js} +91 -6
- package/chunks/{channel-worker-supervisor-CRCVYQIE.js → channel-worker-supervisor-LF66HCVT.js} +137 -13
- package/chunks/{chunk-QQDPRDVW.js → chunk-2HRYPZT5.js} +1 -1
- package/chunks/{chunk-JD33UY7E.js → chunk-2K56LTWA.js} +18 -12
- package/chunks/{chunk-XISQIIT7.js → chunk-2LV4JUNO.js} +4 -4
- package/chunks/chunk-2UU6DW5P.js +296 -0
- package/chunks/{chunk-2PSWA5ID.js → chunk-2X56YUSZ.js} +1 -1
- package/chunks/chunk-2ZQOQZIS.js +71 -0
- package/chunks/{chunk-Q6OEPOOC.js → chunk-3AMVHPEQ.js} +2 -2
- package/chunks/{chunk-4RQIB5UZ.js → chunk-3BTRNWWD.js} +1 -35
- package/chunks/{chunk-SD4N3QJ2.js → chunk-3QZ6GY6A.js} +66 -22
- package/chunks/{chunk-DNV4FSN5.js → chunk-3SJSQXNS.js} +24 -7
- package/chunks/{chunk-VQWAZSXN.js → chunk-3XATDZNP.js} +64 -42
- package/chunks/{chunk-LEIJKM7Q.js → chunk-3ZAIGBCP.js} +2 -2
- package/chunks/{chunk-2NPS2UDH.js → chunk-43JB7OF4.js} +905 -139
- package/chunks/chunk-43XJTCHT.js +444 -0
- package/chunks/{chunk-CNSF3WO5.js → chunk-47HXCVGG.js} +6 -6
- package/chunks/{chunk-VEB3NYSO.js → chunk-4GORAUCN.js} +8 -3
- package/chunks/{chunk-55ZMG67I.js → chunk-4LD5APFL.js} +4 -4
- package/chunks/{chunk-TLWA7TPR.js → chunk-4QLQE5WJ.js} +2 -2
- package/chunks/{chunk-UIDXQNMV.js → chunk-4WGODMVR.js} +1 -1
- package/chunks/{chunk-E6US47KI.js → chunk-4WKAA4KS.js} +1 -1
- package/chunks/{chunk-H6EMK6QK.js → chunk-4ZVWQHEQ.js} +11913 -5207
- package/chunks/{chunk-HW4N45EE.js → chunk-524RQP4Q.js} +29 -8
- package/chunks/{chunk-3GONHQOA.js → chunk-57OAHC2Y.js} +1 -1
- package/chunks/{chunk-B4U2M63D.js → chunk-5DOUQHL3.js} +2104 -14
- package/chunks/{chunk-JZSY4WP3.js → chunk-5DTTYNB7.js} +1 -1
- package/chunks/{chunk-A4BMJM77.js → chunk-5O2XNYP6.js} +1 -0
- package/chunks/{chunk-P7I3D7FM.js → chunk-5OIXALQ5.js} +2 -2
- package/chunks/chunk-5SFOMFG4.js +61 -0
- package/chunks/{chunk-QYNNN7BK.js → chunk-5XUCZNSY.js} +2 -2
- package/chunks/{chunk-FRFFNYUY.js → chunk-65F3I3PM.js} +5 -5
- package/chunks/{chunk-GO6LNQXT.js → chunk-6AM5D4ME.js} +1 -1
- package/chunks/{chunk-BWVQN2HV.js → chunk-6CR73ZIK.js} +7 -7
- package/chunks/{chunk-BJBWRCSK.js → chunk-6H67XLET.js} +1 -1
- package/chunks/{chunk-G7ZG7CA6.js → chunk-6RLROE6G.js} +9 -8
- package/chunks/{chunk-TBAZMRW3.js → chunk-6WH2WCSW.js} +2 -2
- package/chunks/{chunk-ZERZSAZL.js → chunk-75DOP5OR.js} +2 -2
- package/chunks/{chunk-FTFXDZYI.js → chunk-7KZNLIAI.js} +47 -31
- package/chunks/{chunk-HJ3GX3Y3.js → chunk-7PW5CTVR.js} +32 -18
- package/chunks/{chunk-NQKLOAVJ.js → chunk-7R3CZA3Q.js} +2 -2
- package/chunks/{chunk-SAIILPQ3.js → chunk-7X7TEQNX.js} +5 -3
- package/chunks/{chunk-IRJWHZWU.js → chunk-A4UCTEB5.js} +2 -2
- package/chunks/{chunk-XSAFNANZ.js → chunk-AHUEU3BP.js} +14 -14
- package/chunks/{chunk-X3YGAX7V.js → chunk-B5ORX3FG.js} +4 -2
- package/chunks/{chunk-ZN5T4BHI.js → chunk-BPZALHVR.js} +2 -2
- package/chunks/{chunk-IJRL2S3D.js → chunk-BZIFY5TF.js} +6 -6
- package/chunks/{chunk-AJBEAUIS.js → chunk-BZP7HZTK.js} +7 -6
- package/chunks/{chunk-OFEVLU4C.js → chunk-CARU2RR2.js} +1 -1
- package/chunks/{chunk-MIG5SQNL.js → chunk-CBKR4Q5K.js} +8 -8
- package/chunks/chunk-CC2ITGCF.js +176 -0
- package/chunks/{chunk-FV7425LN.js → chunk-CEA3E3JB.js} +18 -5
- package/chunks/{chunk-GD236YPV.js → chunk-CNOF2IZT.js} +3 -3
- package/chunks/chunk-COH43MRJ.js +34 -0
- package/chunks/{chunk-E5A7LHNN.js → chunk-CPBF7KYF.js} +1 -1
- package/chunks/{chunk-UWCTAVOD.js → chunk-CR3C7WXL.js} +1 -1
- package/chunks/{chunk-5P5XGNYH.js → chunk-CU3L64TP.js} +1 -1
- package/chunks/{chunk-IWKSG2AR.js → chunk-CXAOG665.js} +1 -1
- package/chunks/{chunk-MZ7BABX3.js → chunk-DC5Z3DU6.js} +2 -2
- package/chunks/{chunk-64WXLC72.js → chunk-DJ2GSRLV.js} +1 -1
- package/chunks/{chunk-4ZJIPVPB.js → chunk-DMN532MJ.js} +11 -11
- package/chunks/{chunk-QN5NZ3UQ.js → chunk-DMTGGOSA.js} +2 -2
- package/chunks/{chunk-KHDZHZMH.js → chunk-E5Z2AVNV.js} +1 -1
- package/chunks/chunk-F4PFZ7WP.js +239 -0
- package/chunks/{chunk-ME3YSROJ.js → chunk-FBSBT7JS.js} +25 -13
- package/chunks/{chunk-5IFG2VC4.js → chunk-FCMNKVXT.js} +1 -1
- package/chunks/{chunk-YDSYD7UI.js → chunk-FD3DA3B4.js} +3 -3
- package/chunks/{chunk-GL5TV7B5.js → chunk-GL22M2DU.js} +23 -7
- package/chunks/{chunk-AFOLR6YL.js → chunk-GQ4ZEYMI.js} +102 -16
- package/chunks/chunk-GRC5HGPI.js +13 -0
- package/chunks/{chunk-WMPVYQ4P.js → chunk-GWHYEOV2.js} +2 -2
- package/chunks/chunk-GZRTYZ2R.js +292 -0
- package/chunks/{chunk-A2X3KLC3.js → chunk-GZXCZHCT.js} +3 -3
- package/chunks/{chunk-K5PGHDBN.js → chunk-H6XPXXMH.js} +1 -1
- package/chunks/{chunk-24XYI5EI.js → chunk-HACY3IUM.js} +6 -6
- package/chunks/{chunk-DGHJTO2K.js → chunk-HIHQ3TWC.js} +38 -9
- package/chunks/{chunk-KYMBIKIW.js → chunk-HTHUX2T5.js} +1 -1
- package/chunks/{chunk-LQ7TMOCE.js → chunk-HTO4JFDZ.js} +1 -1
- package/chunks/{chunk-B34OV7K2.js → chunk-IAVB3HM3.js} +15 -2
- package/chunks/{chunk-4UCTWSTP.js → chunk-IDJEZU7C.js} +2 -2
- package/chunks/chunk-IEBIKN6A.js +38 -0
- package/chunks/{chunk-PRDFOIZF.js → chunk-IJEO2QSK.js} +73 -30
- package/chunks/{chunk-MJI36HER.js → chunk-IT6LIIVK.js} +2 -2
- package/chunks/{chunk-FEJ2FZ3U.js → chunk-J3JA76CF.js} +2 -2
- package/chunks/{chunk-4CGOWHKM.js → chunk-J4MOFEOK.js} +2 -2
- package/chunks/{chunk-22MNNNXE.js → chunk-J4TSQ5EQ.js} +3 -2
- package/chunks/{chunk-22IFUCVR.js → chunk-JESCGQM3.js} +1 -1
- package/chunks/{chunk-CCGOFQV3.js → chunk-JSG7ZSBC.js} +8 -7
- package/chunks/{chunk-X265R5C6.js → chunk-K434OPES.js} +5 -5
- package/chunks/{chunk-RFIL6REB.js → chunk-KHUQZZJ6.js} +185 -45
- package/chunks/{chunk-X2XNQQJI.js → chunk-KKNMOEZH.js} +4 -4
- package/chunks/{chunk-6BN7NZ5Z.js → chunk-KL23O5Z5.js} +7 -9
- package/chunks/{chunk-MRO43B25.js → chunk-KW7NOTN6.js} +1 -1
- package/chunks/{chunk-6IAWPIQ6.js → chunk-L36P3NBD.js} +3 -3
- package/chunks/{chunk-54YZOP7P.js → chunk-L573Z2QZ.js} +11894 -5190
- package/chunks/{chunk-STAZRKOT.js → chunk-L6GPKRH7.js} +132 -464
- package/chunks/{chunk-QAKFYMJI.js → chunk-LD5OWZ5E.js} +155 -19
- package/chunks/{chunk-E7KNELIZ.js → chunk-LK7KUE55.js} +2 -2
- package/chunks/{chunk-W7EEOR7D.js → chunk-LUODI7WD.js} +5 -5
- package/chunks/{chunk-CSOTA7KX.js → chunk-LXNEJD34.js} +2 -2
- package/chunks/{chunk-HLKG6CZN.js → chunk-M5GB774H.js} +1 -1
- package/chunks/{chunk-3B26UVCX.js → chunk-MC23XKFE.js} +39 -10
- package/chunks/{chunk-XPJH4PKR.js → chunk-MPEMTBUZ.js} +2 -2
- package/chunks/{chunk-GMOWQOQQ.js → chunk-MUCWGT7O.js} +248 -55
- package/chunks/{chunk-PC4ZXHU2.js → chunk-MXL5UP4X.js} +3 -3
- package/chunks/{chunk-PUQLHSQ2.js → chunk-N2FGNKOE.js} +10 -12
- package/chunks/{chunk-332PWN27.js → chunk-NHDKSOEY.js} +1 -1
- package/chunks/{chunk-65CFHNSE.js → chunk-NKHV3OHY.js} +62 -62
- package/chunks/{chunk-P7M4GA57.js → chunk-OCPBI7J5.js} +1 -1
- package/chunks/{chunk-42XGFRJS.js → chunk-ORBGV7NJ.js} +5 -5
- package/chunks/{chunk-ALZ75L2X.js → chunk-OZJLTZKP.js} +415 -379
- package/chunks/chunk-P3X7RYUQ.js +468 -0
- package/chunks/{chunk-AGHU5VRK.js → chunk-PZL23GTM.js} +1 -1
- package/chunks/{chunk-FXGLL2HL.js → chunk-Q7YDKOGY.js} +1 -1
- package/chunks/{chunk-LGFAYIKX.js → chunk-QHTIBUWB.js} +1 -1
- package/chunks/{chunk-AIY5UTFI.js → chunk-QK2JET6S.js} +934 -2881
- package/chunks/{chunk-P3MYAZBY.js → chunk-QMGX2KO2.js} +1 -1
- package/chunks/{chunk-QZF5U5KA.js → chunk-QNTUV3PP.js} +11 -11
- package/chunks/chunk-QRUIS3DN.js +47 -0
- package/chunks/{chunk-ITOGNELQ.js → chunk-QSWDGAIC.js} +2 -2
- package/chunks/{chunk-7JGISHHZ.js → chunk-QUJIDGIW.js} +15 -157
- package/chunks/{chunk-GHOTR7HL.js → chunk-QUPXZXLV.js} +1 -1
- package/chunks/{chunk-TDGF35EN.js → chunk-QYMQSECS.js} +3 -3
- package/chunks/{chunk-QYUE6W3T.js → chunk-RDJSGHZE.js} +1 -1
- package/chunks/{chunk-TLRYABYP.js → chunk-RKUWKYED.js} +1 -1
- package/chunks/{chunk-ADZG46HR.js → chunk-RRNR5U2U.js} +2 -2
- package/chunks/{chunk-4O344UEE.js → chunk-RW7CXRUM.js} +39 -19
- package/chunks/{chunk-RNBYOUGV.js → chunk-RXFQM6FQ.js} +1 -1
- package/chunks/{chunk-QXPI7FEC.js → chunk-S3TWXGKA.js} +4 -4
- package/chunks/{chunk-44NROQYV.js → chunk-SJHDYNHF.js} +4 -4
- package/chunks/{chunk-MLZQVCF3.js → chunk-SZRN75WQ.js} +1 -1
- package/chunks/{chunk-7RYW5LQV.js → chunk-T2NCM2ET.js} +2 -2
- package/chunks/{chunk-Z2Z3GUXZ.js → chunk-TB6UDU4T.js} +1 -1
- package/chunks/{chunk-SUAKHHK7.js → chunk-TDEXZKMT.js} +3 -3
- package/chunks/{chunk-EXPMGZZV.js → chunk-TEGEBB2I.js} +1 -1
- package/chunks/{chunk-JF7DFPQ5.js → chunk-TJCEUA3S.js} +15 -3
- package/chunks/{chunk-MX2YXRER.js → chunk-TJTKSVIV.js} +1 -1
- package/chunks/{chunk-H6BD2ELD.js → chunk-TYAMGABM.js} +2 -2
- package/chunks/{chunk-CISB3IQF.js → chunk-U3VSCGEJ.js} +100 -15
- package/chunks/{chunk-VRDMOSQS.js → chunk-UDXSXLER.js} +2 -2
- package/chunks/{chunk-AHNJGLFV.js → chunk-UOZWKTQG.js} +3 -3
- package/chunks/{chunk-CJCKDMWO.js → chunk-URK542T4.js} +1 -1
- package/chunks/{chunk-YEGT55NW.js → chunk-UUVCHN62.js} +5697 -2983
- package/chunks/{chunk-AHNXYU4O.js → chunk-V6WHFGST.js} +1 -1
- package/chunks/{chunk-U4FRHCLA.js → chunk-VAUPLGDZ.js} +2370 -364
- package/chunks/{chunk-ZTQ26VBE.js → chunk-VDDGDZMA.js} +1 -1
- package/chunks/{chunk-OMX7CUOE.js → chunk-VGC4I5JJ.js} +1 -1
- package/chunks/{chunk-IUE7YWC3.js → chunk-VIUKEWUL.js} +8 -8
- package/chunks/{chunk-43W4YSO6.js → chunk-VJNBRRZG.js} +2 -2
- package/chunks/{chunk-I4A4K72C.js → chunk-VL7GBUQA.js} +1309 -703
- package/chunks/{chunk-VZ7HY3YU.js → chunk-W2UIXQDL.js} +3 -3
- package/chunks/{chunk-ER3BKOLB.js → chunk-W7FJ3N32.js} +1 -1
- package/chunks/{chunk-3HX5LZ6R.js → chunk-WBL3FJEU.js} +2 -2
- package/chunks/{chunk-RYFZCUJO.js → chunk-WCUK2QXK.js} +17 -9
- package/chunks/{chunk-OWVIH4HY.js → chunk-WFHJDT4S.js} +421 -114
- package/chunks/{chunk-BMFMJINR.js → chunk-WL4L7EZH.js} +1 -1
- package/chunks/{chunk-NZEGNV4V.js → chunk-WPHYXKFL.js} +8 -51
- package/chunks/chunk-X4NKFGFJ.js +81 -0
- package/chunks/{chunk-3RW4AZJV.js → chunk-XFSFZCM5.js} +1 -1
- package/chunks/{chunk-2MPVVENX.js → chunk-XU457J4V.js} +2 -2
- package/chunks/{chunk-SIUQ3YYX.js → chunk-XVNQMZ2I.js} +1 -1
- package/chunks/{chunk-SYCJMSIJ.js → chunk-XWRJCPHC.js} +1 -1
- package/chunks/chunk-YAF2MQZ6.js +19 -0
- package/chunks/chunk-YF4RZPJP.js +168 -0
- package/chunks/{chunk-4KJ2BPIT.js → chunk-YLV3XXFB.js} +4 -40
- package/chunks/{chunk-BR4QREVK.js → chunk-YQ3U5MUC.js} +1 -1
- package/chunks/{chunk-Y6Z2O3WR.js → chunk-YUZI3WAC.js} +1 -1
- package/chunks/{chunk-II73RK2S.js → chunk-YVEDCAUE.js} +1 -1
- package/chunks/{chunk-SKAZWEV5.js → chunk-ZJE7NSL3.js} +1 -1
- package/chunks/{chunk-7LTB54MK.js → chunk-ZLXQN2QS.js} +2 -2
- package/chunks/cli-entry-path-4VJ3Y6T2.js +10 -0
- package/chunks/{computer-use-X4KUU3NM.js → computer-use-2ZTYDNN4.js} +50 -50
- package/chunks/config-utils-ZITWCFBY.js +23 -0
- package/chunks/contextCommand-6L4XCZZT.js +68 -0
- package/chunks/create-sub-session-INX7TXJI.js +207 -0
- package/chunks/create-sub-session-VZIOFS6N.js +375 -0
- package/chunks/{cron-create-JSXEIPVS.js → cron-create-AMBKGZX6.js} +9 -9
- package/chunks/{cron-delete-OIFVEPGU.js → cron-delete-LRU4OJYG.js} +7 -7
- package/chunks/{cron-list-D4ZX4IOE.js → cron-list-WVP2JXER.js} +14 -10
- package/chunks/{daemon-F3I2RXP6.js → daemon-QEDXW7ER.js} +554 -4
- package/chunks/daemon-status-provider-7XJZ3HPS.js +76 -0
- package/chunks/{de-PLLFDERI.js → de-XHBEYUMG.js} +91 -6
- package/chunks/{devtools-FM6GJPYG.js → devtools-4QFYJT6U.js} +3 -3
- package/chunks/{dist-573HNSVO.js → dist-EFXT7A3G.js} +12 -11
- package/chunks/{dist-PKFTNUHO.js → dist-KCRX7TGL.js} +529 -79
- package/chunks/{dist-OT7G2WNM.js → dist-MFEAEUV4.js} +1011 -197
- package/chunks/{dist-63IS3ZMI.js → dist-PZV5RKM6.js} +4 -4
- package/chunks/{dist-FQ5WRJPL.js → dist-QY3THJM5.js} +5 -5
- package/chunks/{dist-IMFFBMAT.js → dist-UJOR6KEQ.js} +32 -15
- package/chunks/{dist-YTRKAVUB.js → dist-ZWZB4CCN.js} +10 -10
- package/chunks/earlyInputCapture-TTWXFIWO.js +69 -0
- package/chunks/{edit-WZTZDGCI.js → edit-6UWFRZKY.js} +51 -51
- package/chunks/{en-GA2RMXY5.js → en-TKHUFIK7.js} +100 -6
- package/chunks/{enter-worktree-DEPXBJEL.js → enter-worktree-LS7SGAII.js} +50 -50
- package/chunks/{enterPlanMode-JFGXZHHJ.js → enterPlanMode-TSZYLEEP.js} +66 -51
- package/chunks/environment-XCVLHOXG.js +88 -0
- package/chunks/errors-KIANLUTC.js +75 -0
- package/chunks/{exit-worktree-Y7XBK3VV.js → exit-worktree-2QV6UJSW.js} +50 -50
- package/chunks/{exitPlanMode-WQQER65F.js → exitPlanMode-GVZG3F6S.js} +51 -51
- package/chunks/{fast-path-W2U6XDNO.js → fast-path-GNFZAMQK.js} +16 -7
- package/chunks/{fast-path-settings-RCRXH2JG.js → fast-path-settings-5QZE64HR.js} +6 -5
- package/chunks/{fileFromPath-IBEHA3CO.js → fileFromPath-UDALK7FM.js} +3 -3
- package/chunks/{fr-GWNQG4XH.js → fr-TBF6JZNE.js} +91 -6
- package/chunks/{gemini-T4WX6SRW.js → gemini-N3H6OLHR.js} +501 -197
- package/chunks/{geminiContentGenerator-MKQACXEJ.js → geminiContentGenerator-4C257R2N.js} +9 -9
- package/chunks/{getMachineId-bsd-4CASPIU4.js → getMachineId-bsd-EXV7SWPA.js} +3 -3
- package/chunks/{getMachineId-darwin-HPQPEMZR.js → getMachineId-darwin-IUOMFXU3.js} +3 -3
- package/chunks/{getMachineId-linux-AUARKYHL.js → getMachineId-linux-K7XJYFHL.js} +2 -2
- package/chunks/{getMachineId-unsupported-S32ZDA2T.js → getMachineId-unsupported-EA5FDRJ6.js} +2 -2
- package/chunks/{getMachineId-win-4EFLHYIJ.js → getMachineId-win-KBA6RAI5.js} +3 -3
- package/chunks/{glob-4KKSHZDF.js → glob-QTUI5I3Y.js} +95 -74
- package/chunks/{grep-GHRYXSLZ.js → grep-Z5MGLRCG.js} +50 -50
- package/chunks/handleAutoUpdate-FFF3CZGP.js +69 -0
- package/chunks/i18n-QQAJT7A2.js +84 -0
- package/chunks/initializer-LGQGC7ZT.js +71 -0
- package/chunks/installationInfo-4FEZGXIN.js +65 -0
- package/chunks/{ja-2HOTA47X.js → ja-CDXUA2H3.js} +92 -7
- package/chunks/{keychain-token-storage-UJV5XP4Z.js → keychain-token-storage-VKUBNCP4.js} +4 -4
- package/chunks/{kittyProtocolDetector-OJRCJLIU.js → kittyProtocolDetector-HCNNKJTI.js} +2 -2
- package/chunks/list-KIVFF3BB.js +74 -0
- package/chunks/loadedSettingsAdapter-EOD3RVZS.js +68 -0
- package/chunks/{loop-wakeup-OHWEMFP5.js → loop-wakeup-WX7BLWWP.js} +10 -10
- package/chunks/{lowlight-FYAAUU5J.js → lowlight-J2OZNPCA.js} +1 -1
- package/chunks/{ls-L654WOAT.js → ls-ZB2BDP6T.js} +6 -6
- package/chunks/{lsp-M35KE54Y.js → lsp-V5DN4YUJ.js} +6 -8
- package/chunks/mcp-D2P46DB4.js +68 -0
- package/chunks/{monitor-464OY2UE.js → monitor-4ZWVOL6J.js} +50 -50
- package/chunks/{multipart-parser-AJ4WASWR.js → multipart-parser-AWZKXSQN.js} +3 -3
- package/chunks/nonInteractiveCli-NAHUR2X6.js +124 -0
- package/chunks/{notebook-edit-BLJYCNDO.js → notebook-edit-RCQ2D2IE.js} +51 -51
- package/chunks/openaiContentGenerator-U655T5QC.js +56 -0
- package/chunks/pidfile-O3OO2TCP.js +73 -0
- package/chunks/{pt-2THT3YHA.js → pt-6IR2VRQY.js} +91 -6
- package/chunks/{qwenContentGenerator-SUUHZ6CR.js → qwenContentGenerator-ABGWCRS6.js} +52 -52
- package/chunks/{qwenOAuth2-ZV7YLMND.js → qwenOAuth2-PJQ27GSO.js} +9 -9
- package/chunks/read-file-X7M4GUPY.js +30 -0
- package/chunks/{read-mcp-resource-CNQHBSJM.js → read-mcp-resource-SM5DA4RG.js} +5 -5
- package/chunks/{read-package-up-ER5OJUGP.js → read-package-up-TCM6I7S2.js} +2 -2
- package/chunks/{record-artifact-PP3LKHTS.js → record-artifact-4XKZX3UW.js} +7 -7
- package/chunks/ripGrep-KMPJJK5J.js +60 -0
- package/chunks/{ru-Z67YJHBG.js → ru-DBTHQA3F.js} +91 -6
- package/chunks/{run-qwen-serve-5OKADVLE.js → run-qwen-serve-O6CMPURG.js} +958 -184
- package/chunks/runtime-THE2YO27.js +94 -0
- package/chunks/{scheduler-ZRW3AIDU.js → scheduler-XXEA6EFC.js} +51 -51
- package/chunks/{send-message-OA6MV4EU.js → send-message-F36YD6KQ.js} +7 -7
- package/chunks/serve-W6F44JQQ.js +74 -0
- package/chunks/{server-M372UENX.js → server-SAEKMY52.js} +4340 -829
- package/chunks/{session-F5KSNP2N.js → session-4GGYGOWY.js} +162 -117
- package/chunks/settings-PYEU5HVD.js +118 -0
- package/chunks/shell-JGQECKTH.js +68 -0
- package/chunks/{skill-A2TL2NPC.js → skill-XPP3C2DS.js} +24 -24
- package/chunks/spawnChannel-62QKQBQN.js +70 -0
- package/chunks/{src-XKZMNHXS.js → src-2656Q6SN.js} +126 -52
- package/chunks/{src-7XL4G4DC.js → src-VLI3TKEY.js} +4 -4
- package/chunks/standalone-update-X7AZVG5R.js +79 -0
- package/chunks/{startInteractiveUI-REKSTOHU.js → startInteractiveUI-DXR4K6T5.js} +2277 -1834
- package/chunks/stdioHelpers-UMY72QRP.js +14 -0
- package/chunks/{syntheticOutput-F7LSDCAR.js → syntheticOutput-34H7LGA7.js} +5 -5
- package/chunks/task-create-FRGOEIKY.js +22 -0
- package/chunks/{task-list-TGGJX7EA.js → task-list-OW766BXZ.js} +10 -10
- package/chunks/{task-stop-W7NGTMYQ.js → task-stop-SIR5SNBN.js} +4 -4
- package/chunks/{task-update-5WUG5MVQ.js → task-update-YRA532MT.js} +12 -12
- package/chunks/{team-create-TBQVWAG7.js → team-create-3EHCUCKA.js} +50 -50
- package/chunks/{team-delete-UHQQ2QQX.js → team-delete-6OSECUZC.js} +10 -10
- package/chunks/{team-plan-approval-FZPGUSHJ.js → team-plan-approval-KZ7NZIMX.js} +50 -50
- package/chunks/theme-manager-J7ANV4JR.js +64 -0
- package/chunks/{todoWrite-C4ZAMSR3.js → todoWrite-YDMFEV4G.js} +6 -6
- package/chunks/{tool-search-FDQ3SLNJ.js → tool-search-2XLGWG4H.js} +24 -24
- package/chunks/total-session-admission-EQIHUOL6.js +72 -0
- package/chunks/trustedFolders-BEX5334Z.js +79 -0
- package/chunks/{types-QX5C3CHJ.js → types-JNKGKUJT.js} +2 -2
- package/chunks/updateCheck-NKPJGJCR.js +69 -0
- package/chunks/updateEventEmitter-5MKC7BLQ.js +10 -0
- package/chunks/validateNonInterActiveAuth-6DGGGE4A.js +190 -0
- package/chunks/{version-CEDD6ZZR.js → version-FRVWU5ZU.js} +3 -3
- package/chunks/{web-fetch-UYGMOHW4.js → web-fetch-PAAEQKBW.js} +8 -8
- package/chunks/{workflow-CQQ4J4I6.js → workflow-LWFMECLD.js} +51 -51
- package/chunks/workspace-providers-status-NE7QWEYS.js +71 -0
- package/chunks/workspace-registry-RCWAP57G.js +76 -0
- package/chunks/workspace-service-4QUMVGBX.js +80 -0
- package/chunks/workspace-skills-status-L34BYRSY.js +70 -0
- package/chunks/{write-file-VWGY7AJP.js → write-file-WXO4M5FN.js} +51 -51
- package/chunks/{yargs-B64EYTCF.js → yargs-6H2AUULL.js} +2 -2
- package/chunks/{zh-7XVVRTDH.js → zh-LJP47LX7.js} +101 -7
- package/chunks/{zh-TW-DPH554OG.js → zh-TW-5ISMO3VJ.js} +101 -7
- package/cli.js +18 -17
- package/locales/ca.js +117 -7
- package/locales/de.js +116 -7
- package/locales/en.js +133 -7
- package/locales/fr.js +117 -7
- package/locales/ja.js +119 -7
- package/locales/pt.js +116 -7
- package/locales/ru.js +116 -7
- package/locales/zh-TW.js +130 -7
- package/locales/zh.js +130 -7
- package/package.json +3 -6
- package/web-shell/assets/{arc-C7hjaa7g.js → arc-BRDEF7h6.js} +1 -1
- package/web-shell/assets/{architectureDiagram-3BPJPVTR-pm9KtMZY.js → architectureDiagram-3BPJPVTR-Cxnk4Ygq.js} +1 -1
- package/web-shell/assets/{blockDiagram-GPEHLZMM-CApElKsU.js → blockDiagram-GPEHLZMM-BZrtayqw.js} +1 -1
- package/web-shell/assets/{c4Diagram-AAUBKEIU-BeDe0-9N.js → c4Diagram-AAUBKEIU-Djmbi1yB.js} +1 -1
- package/web-shell/assets/channel-C9zfQCn-.js +1 -0
- package/web-shell/assets/{chunk-2J33WTMH-DJEkmLdl.js → chunk-2J33WTMH-Cdokj-0U.js} +1 -1
- package/web-shell/assets/{chunk-4BX2VUAB-DXX8gdpe.js → chunk-4BX2VUAB-BI9Hx57o.js} +1 -1
- package/web-shell/assets/{chunk-55IACEB6-DORmk1kQ.js → chunk-55IACEB6-Cb17cEzj.js} +1 -1
- package/web-shell/assets/{chunk-727SXJPM-DWmO4mCZ.js → chunk-727SXJPM-DY1Fc0h_.js} +1 -1
- package/web-shell/assets/{chunk-AQP2D5EJ-C7LRaYw2.js → chunk-AQP2D5EJ-B10G71Hd.js} +1 -1
- package/web-shell/assets/{chunk-FMBD7UC4-CCdXgyC5.js → chunk-FMBD7UC4-BP6OoB6Z.js} +1 -1
- package/web-shell/assets/{chunk-ND2GUHAM-SyL_xvWc.js → chunk-ND2GUHAM-CWIIwUFC.js} +1 -1
- package/web-shell/assets/{chunk-QZHKN3VN-BzOuCKxa.js → chunk-QZHKN3VN-DMrqCfGO.js} +1 -1
- package/web-shell/assets/classDiagram-4FO5ZUOK-BVNaf5JM.js +1 -0
- package/web-shell/assets/classDiagram-v2-Q7XG4LA2-BVNaf5JM.js +1 -0
- package/web-shell/assets/{cose-bilkent-S5V4N54A-BMPWyDKc.js → cose-bilkent-S5V4N54A-CF-mpkgI.js} +1 -1
- package/web-shell/assets/{dagre-BM42HDAG-B_GnPWik.js → dagre-BM42HDAG-DfsRFsg7.js} +1 -1
- package/web-shell/assets/{diagram-2AECGRRQ-fJqMc3S_.js → diagram-2AECGRRQ-DBNwf6Dy.js} +1 -1
- package/web-shell/assets/{diagram-5GNKFQAL-ximV3O9D.js → diagram-5GNKFQAL-CD1TqV1j.js} +1 -1
- package/web-shell/assets/{diagram-KO2AKTUF-2vVyjzqw.js → diagram-KO2AKTUF-DkWlaLI2.js} +1 -1
- package/web-shell/assets/{diagram-LMA3HP47-Dckcx1sT.js → diagram-LMA3HP47-ClrAcxwF.js} +1 -1
- package/web-shell/assets/{diagram-OG6HWLK6-BAVv47ga.js → diagram-OG6HWLK6-Dr6dnPLw.js} +1 -1
- package/web-shell/assets/{erDiagram-TEJ5UH35-Bn3nf5J0.js → erDiagram-TEJ5UH35-Dm_vj18R.js} +1 -1
- package/web-shell/assets/{flowDiagram-I6XJVG4X-BIbGF9JT.js → flowDiagram-I6XJVG4X-lp3cMdZu.js} +1 -1
- package/web-shell/assets/{ganttDiagram-6RSMTGT7-CDbhb3AH.js → ganttDiagram-6RSMTGT7-AtdCWZya.js} +3 -3
- package/web-shell/assets/{gitGraphDiagram-PVQCEYII-CbKG1a_w.js → gitGraphDiagram-PVQCEYII-BARTJafF.js} +1 -1
- package/web-shell/assets/index-BkNgyfu7.js +3 -0
- package/web-shell/assets/index-CihmnZZR.js +784 -0
- package/web-shell/assets/index-zfdXhnwH.css +5 -0
- package/web-shell/assets/{infoDiagram-5YYISTIA-DUFxTy8m.js → infoDiagram-5YYISTIA-CxbJ54_f.js} +1 -1
- package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-D69hrBG8.js → ishikawaDiagram-YF4QCWOH-hFoO0HQA.js} +1 -1
- package/web-shell/assets/{journeyDiagram-JHISSGLW-DsvEw51Y.js → journeyDiagram-JHISSGLW-Bo6cKnLe.js} +1 -1
- package/web-shell/assets/{kanban-definition-UN3LZRKU-lFFjZEYd.js → kanban-definition-UN3LZRKU-DIFrH-XL.js} +1 -1
- package/web-shell/assets/{linear-Bo5bWzvo.js → linear-Bjv_GjDd.js} +1 -1
- package/web-shell/assets/{mermaid.core-C_HKMJx5.js → mermaid.core-C_OiqQEP.js} +5 -5
- package/web-shell/assets/{mindmap-definition-RKZ34NQL-DlV-NUTs.js → mindmap-definition-RKZ34NQL-B79Gk8aB.js} +1 -1
- package/web-shell/assets/{pieDiagram-4H26LBE5-B2e6FH2a.js → pieDiagram-4H26LBE5-B_P0gIHr.js} +1 -1
- package/web-shell/assets/{quadrantDiagram-W4KKPZXB-D75kSk-b.js → quadrantDiagram-W4KKPZXB-BC7F0ohb.js} +1 -1
- package/web-shell/assets/{requirementDiagram-4Y6WPE33-CQ6xakhM.js → requirementDiagram-4Y6WPE33-BrA5_NSW.js} +1 -1
- package/web-shell/assets/{sankeyDiagram-5OEKKPKP-J_XTKrcY.js → sankeyDiagram-5OEKKPKP-Q2iqrNI_.js} +1 -1
- package/web-shell/assets/{sequenceDiagram-3UESZ5HK-D7jTcBtf.js → sequenceDiagram-3UESZ5HK-6vdIWz4H.js} +1 -1
- package/web-shell/assets/{stateDiagram-AJRCARHV-CrlM_OT3.js → stateDiagram-AJRCARHV-DMzXNKcB.js} +1 -1
- package/web-shell/assets/stateDiagram-v2-BHNVJYJU-BWFH0OCO.js +1 -0
- package/web-shell/assets/{timeline-definition-PNZ67QCA-5oZi76Ef.js → timeline-definition-PNZ67QCA-BykEawmS.js} +1 -1
- package/web-shell/assets/{vennDiagram-CIIHVFJN-DO5YptPK.js → vennDiagram-CIIHVFJN-B24KD2X1.js} +1 -1
- package/web-shell/assets/{wardley-L42UT6IY-4t1eJDvM.js → wardley-L42UT6IY-C761G_tA.js} +1 -1
- package/web-shell/assets/{wardleyDiagram-YWT4CUSO-DKZc661S.js → wardleyDiagram-YWT4CUSO-CfwGJYqw.js} +1 -1
- package/web-shell/assets/{xychartDiagram-2RQKCTM6-su9hp08G.js → xychartDiagram-2RQKCTM6-BDu5AZ2D.js} +1 -1
- package/web-shell/index.html +16 -4
- package/chunks/MaxSizedBox-XY5LIO5O.js +0 -71
- package/chunks/agent-TKIBLLQT.js +0 -68
- package/chunks/agent-headless-VLX4C7KX.js +0 -62
- package/chunks/bridge-BCU73DZO.js +0 -77
- package/chunks/chunk-6SHO7WFF.js +0 -79
- package/chunks/chunk-IFEWJXFS.js +0 -37
- package/chunks/chunk-S6RLAIUR.js +0 -23
- package/chunks/contextCommand-LAYJZF7H.js +0 -68
- package/chunks/daemon-status-provider-XSAFKVDS.js +0 -74
- package/chunks/earlyInputCapture-AERYYGXE.js +0 -69
- package/chunks/errors-GMZL4QV7.js +0 -75
- package/chunks/handleAutoUpdate-HN7ZOSXY.js +0 -65
- package/chunks/initializer-SRN3IM42.js +0 -69
- package/chunks/list-INTVXUPA.js +0 -71
- package/chunks/loadedSettingsAdapter-QVHHQPGM.js +0 -66
- package/chunks/mcp-7V4T46RG.js +0 -66
- package/chunks/nonInteractiveCli-LJEEODU2.js +0 -116
- package/chunks/openaiContentGenerator-PFF6HYB2.js +0 -56
- package/chunks/pidfile-LIBUENIV.js +0 -73
- package/chunks/read-file-L7TBQVX7.js +0 -30
- package/chunks/ripGrep-CKKX3GRB.js +0 -60
- package/chunks/serve-36WS32W6.js +0 -71
- package/chunks/settings-WFLNS3WT.js +0 -114
- package/chunks/shell-DEDSWN56.js +0 -68
- package/chunks/spawnChannel-RQHUWTCL.js +0 -70
- package/chunks/task-create-RPFZNB4B.js +0 -22
- package/chunks/theme-manager-DQZVNSOC.js +0 -64
- package/chunks/trustedFolders-Z475EIHL.js +0 -79
- package/chunks/updateCheck-E2ZX7RL7.js +0 -65
- package/chunks/validateNonInterActiveAuth-O4ECBHQL.js +0 -181
- package/chunks/workspace-providers-status-MVYXMYDG.js +0 -68
- package/chunks/workspace-service-OMBR6ZLG.js +0 -78
- package/chunks/workspace-skills-status-IMMQ7CAY.js +0 -68
- package/node_modules/@qwen-code/audio-capture/dist/index.d.ts +0 -35
- package/node_modules/@qwen-code/audio-capture/dist/index.js +0 -48
- package/node_modules/@qwen-code/audio-capture/dist/index.js.map +0 -1
- package/node_modules/@qwen-code/audio-capture/dist/platform.d.ts +0 -7
- package/node_modules/@qwen-code/audio-capture/dist/platform.js +0 -18
- package/node_modules/@qwen-code/audio-capture/dist/platform.js.map +0 -1
- package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/LICENSE +0 -21
- package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/README.md +0 -58
- package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/SECURITY.md +0 -5
- package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/bin.js +0 -84
- package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/build-test.js +0 -19
- package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/index.js +0 -6
- package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/node-gyp-build.js +0 -207
- package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/optional.js +0 -7
- package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/package.json +0 -43
- package/node_modules/@qwen-code/audio-capture/package.json +0 -30
- 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/linux-arm64/@qwen-code+audio-capture.node +0 -0
- package/node_modules/@qwen-code/audio-capture/prebuilds/linux-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/web-shell/assets/channel-BNf1dW-j.js +0 -1
- package/web-shell/assets/classDiagram-4FO5ZUOK-uOIGlzgi.js +0 -1
- package/web-shell/assets/classDiagram-v2-Q7XG4LA2-uOIGlzgi.js +0 -1
- package/web-shell/assets/index-CnE2ur2L.js +0 -779
- package/web-shell/assets/index-hSKXrlSE.css +0 -5
- package/web-shell/assets/stateDiagram-v2-BHNVJYJU-Bs4TK_84.js +0 -1
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
// Force strict mode and setup for ESM
|
|
2
2
|
"use strict";
|
|
3
|
+
import {
|
|
4
|
+
DEFAULT_DARK_THEME_NAME,
|
|
5
|
+
DEFAULT_LIGHT_THEME_NAME
|
|
6
|
+
} from "./chunk-RKUWKYED.js";
|
|
3
7
|
import {
|
|
4
8
|
SUPPORTED_LANGUAGES,
|
|
5
9
|
detectSystemLanguage,
|
|
6
10
|
getLanguageNameFromLocale,
|
|
7
11
|
getLanguageSettingsOptions,
|
|
8
12
|
t
|
|
9
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-LD5OWZ5E.js";
|
|
10
14
|
import {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
15
|
+
getHomeEnvFallbackVars,
|
|
16
|
+
loadEnvironment,
|
|
17
|
+
preResolveHomeEnvOverrides
|
|
18
|
+
} from "./chunk-P3X7RYUQ.js";
|
|
14
19
|
import {
|
|
15
20
|
CONSOLIDATED_DISABLE_KEYS,
|
|
16
|
-
DEFAULT_EXCLUDED_ENV_VARS,
|
|
17
|
-
ENV_CORRUPTED_PATH,
|
|
18
|
-
ENV_WAS_RECOVERED,
|
|
19
|
-
HOME_ENV_BOOTSTRAP_KEYS,
|
|
20
|
-
PROJECT_ENV_HARDCODED_EXCLUSIONS,
|
|
21
21
|
V1_INDICATOR_KEYS,
|
|
22
22
|
V1_TO_V2_MIGRATION_MAP,
|
|
23
23
|
V1_TO_V2_PRESERVE_DISABLE_MAP,
|
|
@@ -25,14 +25,18 @@ import {
|
|
|
25
25
|
getSystemDefaultsPath,
|
|
26
26
|
getSystemSettingsPath,
|
|
27
27
|
resolveEnvVarsInObject
|
|
28
|
-
} from "./chunk-
|
|
28
|
+
} from "./chunk-3BTRNWWD.js";
|
|
29
|
+
import {
|
|
30
|
+
ENV_CORRUPTED_PATH,
|
|
31
|
+
ENV_WAS_RECOVERED
|
|
32
|
+
} from "./chunk-QRUIS3DN.js";
|
|
29
33
|
import {
|
|
30
34
|
isWorkspaceTrusted,
|
|
31
35
|
updateSettingsFilePreservingFormat
|
|
32
|
-
} from "./chunk-
|
|
36
|
+
} from "./chunk-CBKR4Q5K.js";
|
|
33
37
|
import {
|
|
34
38
|
require_strip_json_comments
|
|
35
|
-
} from "./chunk-
|
|
39
|
+
} from "./chunk-RDJSGHZE.js";
|
|
36
40
|
import {
|
|
37
41
|
DEFAULT_MAX_SUBAGENT_DEPTH,
|
|
38
42
|
DEFAULT_MAX_TOOL_CALLS_PER_TURN,
|
|
@@ -42,27 +46,23 @@ import {
|
|
|
42
46
|
DEFAULT_TRUNCATE_TOOL_OUTPUT_LINES,
|
|
43
47
|
DEFAULT_TRUNCATE_TOOL_OUTPUT_THRESHOLD,
|
|
44
48
|
stripRuntimeSnapshotPrefix
|
|
45
|
-
} from "./chunk-
|
|
46
|
-
import {
|
|
47
|
-
require_main
|
|
48
|
-
} from "./chunk-SKAZWEV5.js";
|
|
49
|
+
} from "./chunk-UUVCHN62.js";
|
|
49
50
|
import {
|
|
50
51
|
DEFAULT_QWEN_CUSTOM_IGNORE_FILE_NAMES
|
|
51
|
-
} from "./chunk-
|
|
52
|
+
} from "./chunk-4QLQE5WJ.js";
|
|
52
53
|
import {
|
|
53
54
|
DEFAULT_SENSITIVE_SPAN_ATTRIBUTE_MAX_LENGTH,
|
|
54
55
|
SENSITIVE_SPAN_ATTRIBUTE_MAX_LENGTH_LIMIT
|
|
55
|
-
} from "./chunk-
|
|
56
|
+
} from "./chunk-MUCWGT7O.js";
|
|
56
57
|
import {
|
|
57
58
|
FatalConfigError,
|
|
58
|
-
QWEN_DIR,
|
|
59
59
|
Storage,
|
|
60
60
|
createDebugLogger,
|
|
61
61
|
getErrorMessage
|
|
62
|
-
} from "./chunk-
|
|
62
|
+
} from "./chunk-J4TSQ5EQ.js";
|
|
63
63
|
import {
|
|
64
64
|
init_esbuild_shims
|
|
65
|
-
} from "./chunk-
|
|
65
|
+
} from "./chunk-5O2XNYP6.js";
|
|
66
66
|
import {
|
|
67
67
|
__name,
|
|
68
68
|
__toESM
|
|
@@ -70,10 +70,10 @@ import {
|
|
|
70
70
|
|
|
71
71
|
// packages/cli/src/config/settings.ts
|
|
72
72
|
init_esbuild_shims();
|
|
73
|
-
import * as
|
|
74
|
-
import * as
|
|
75
|
-
import { homedir
|
|
76
|
-
import
|
|
73
|
+
import * as fs3 from "node:fs";
|
|
74
|
+
import * as path2 from "node:path";
|
|
75
|
+
import { homedir } from "node:os";
|
|
76
|
+
import process from "node:process";
|
|
77
77
|
var import_strip_json_comments = __toESM(require_strip_json_comments(), 1);
|
|
78
78
|
|
|
79
79
|
// packages/cli/src/config/modelProvidersScope.ts
|
|
@@ -841,25 +841,30 @@ var SETTINGS_SCHEMA = {
|
|
|
841
841
|
category: "UI",
|
|
842
842
|
requiresRestart: false,
|
|
843
843
|
default: false,
|
|
844
|
-
|
|
845
|
-
|
|
844
|
+
// Retired from the TUI (compact tool output is now always-on there, and
|
|
845
|
+
// Ctrl+O opens the transcript instead of toggling this). Kept as a
|
|
846
|
+
// hidden, schema-only setting so the web shell's independent compact
|
|
847
|
+
// toggle can still persist via the daemon settings routes (mirrors
|
|
848
|
+
// `voiceModel`). Not shown in the TUI settings dialog.
|
|
849
|
+
description: "Compact view (web shell only; not used by the TUI).",
|
|
850
|
+
showInDialog: false
|
|
846
851
|
},
|
|
847
|
-
|
|
852
|
+
useTerminalBuffer: {
|
|
848
853
|
type: "boolean",
|
|
849
|
-
label: "
|
|
854
|
+
label: "Virtualized History (reduces flicker on long sessions)",
|
|
850
855
|
category: "UI",
|
|
851
|
-
requiresRestart:
|
|
856
|
+
requiresRestart: false,
|
|
852
857
|
default: false,
|
|
853
|
-
description: "
|
|
858
|
+
description: "Render conversation history in an in-app scrollable viewport instead of the terminal scrollback buffer. Recommended if you see flicker, scroll-storm, or interface freeze on long sessions, after Ctrl+O, after Ctrl+E / Ctrl+F (expand), after window resize, or when alt-tabbing back. Scroll with Shift+\u2191/\u2193 (line), PgUp/PgDn (page), Ctrl+Home/End (top/bottom), or the mouse wheel. Also enables mouse interactions: click an option in a menu/dialog to select it, hover to highlight it, and click in the prompt to position the cursor. Does NOT use the host terminal scrollback while enabled; for native text selection, hold Shift (or Option on macOS) while dragging.",
|
|
854
859
|
showInDialog: true
|
|
855
860
|
},
|
|
856
|
-
|
|
861
|
+
showScrollbar: {
|
|
857
862
|
type: "boolean",
|
|
858
|
-
label: "
|
|
863
|
+
label: "Show Scrollbar (Virtualized History)",
|
|
859
864
|
category: "UI",
|
|
860
865
|
requiresRestart: false,
|
|
861
|
-
default:
|
|
862
|
-
description: "
|
|
866
|
+
default: true,
|
|
867
|
+
description: "Show the auto-hiding scrollbar in the in-app scrollable viewport (Virtualized History). The bar appears while scrolling and fades out when idle. Disable to hide it entirely.",
|
|
863
868
|
showInDialog: true
|
|
864
869
|
},
|
|
865
870
|
shellOutputMaxLines: {
|
|
@@ -1093,6 +1098,19 @@ var SETTINGS_SCHEMA = {
|
|
|
1093
1098
|
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.",
|
|
1094
1099
|
showInDialog: true
|
|
1095
1100
|
},
|
|
1101
|
+
visionBridgeTimeoutMs: {
|
|
1102
|
+
type: "integer",
|
|
1103
|
+
label: "Vision Bridge Timeout (ms)",
|
|
1104
|
+
category: "Model",
|
|
1105
|
+
// Read once in the Config constructor with no setter, so a mid-session
|
|
1106
|
+
// change only takes effect on restart.
|
|
1107
|
+
requiresRestart: true,
|
|
1108
|
+
default: void 0,
|
|
1109
|
+
minimum: 1,
|
|
1110
|
+
maximum: 2147483647,
|
|
1111
|
+
description: "Per-attempt timeout in milliseconds for the vision bridge image transcription call (a positive integer up to 2147483647). Unset uses the built-in 30s. Raise for slow or proxied vision endpoints.",
|
|
1112
|
+
showInDialog: false
|
|
1113
|
+
},
|
|
1096
1114
|
modelFallbacks: {
|
|
1097
1115
|
type: "string",
|
|
1098
1116
|
label: "Model Fallbacks",
|
|
@@ -1310,6 +1328,16 @@ var SETTINGS_SCHEMA = {
|
|
|
1310
1328
|
parentKey: "generationConfig",
|
|
1311
1329
|
showInDialog: false
|
|
1312
1330
|
},
|
|
1331
|
+
forceGlobalCacheScope: {
|
|
1332
|
+
type: "boolean",
|
|
1333
|
+
label: "Force Global Cache Scope",
|
|
1334
|
+
category: "Generation Configuration",
|
|
1335
|
+
requiresRestart: false,
|
|
1336
|
+
default: false,
|
|
1337
|
+
description: "Force scope:'global' on Anthropic cache_control entries even when the base URL is not an Anthropic-native origin (e.g. proxy providers like Routify, OpenRouter). Requires the proxy to forward cache_control fields and the prompt-caching-scope-2026-01-05 beta.",
|
|
1338
|
+
parentKey: "generationConfig",
|
|
1339
|
+
showInDialog: false
|
|
1340
|
+
},
|
|
1313
1341
|
splitToolMedia: {
|
|
1314
1342
|
type: "boolean",
|
|
1315
1343
|
label: "Split Tool Result Media",
|
|
@@ -1533,7 +1561,7 @@ var SETTINGS_SCHEMA = {
|
|
|
1533
1561
|
category: "Context",
|
|
1534
1562
|
requiresRestart: false,
|
|
1535
1563
|
default: void 0,
|
|
1536
|
-
description: "
|
|
1564
|
+
description: "Target fraction of the context window at which auto-compaction triggers (greater than 0, up to 1). Acts as a ceiling on the trigger: on large windows this is the effective trigger (~85%); on smaller windows compaction may fire earlier to leave room to summarize. Default is 0.85 (85%).",
|
|
1537
1565
|
showInDialog: false,
|
|
1538
1566
|
jsonSchemaOverride: {
|
|
1539
1567
|
type: "number",
|
|
@@ -1588,6 +1616,16 @@ var SETTINGS_SCHEMA = {
|
|
|
1588
1616
|
description: "Ask for confirmation before auto-generated skills are added to the skill library. When off, auto-skills are saved immediately.",
|
|
1589
1617
|
showInDialog: false
|
|
1590
1618
|
},
|
|
1619
|
+
agentTimeoutMinutes: {
|
|
1620
|
+
type: "number",
|
|
1621
|
+
label: "Memory Agent Timeout (minutes)",
|
|
1622
|
+
category: "Memory",
|
|
1623
|
+
requiresRestart: true,
|
|
1624
|
+
default: void 0,
|
|
1625
|
+
minimum: 0,
|
|
1626
|
+
description: "Max runtime in minutes for background memory agents (extraction, dream, remember, skill review). Unset uses each agent's built-in default (2\u20135 minutes); 0 disables the time limit. Useful for slow local models that need longer than the defaults.",
|
|
1627
|
+
showInDialog: false
|
|
1628
|
+
},
|
|
1591
1629
|
enableTeamMemory: {
|
|
1592
1630
|
type: "boolean",
|
|
1593
1631
|
label: "Enable Team Memory",
|
|
@@ -2716,7 +2754,7 @@ var SETTINGS_SCHEMA = {
|
|
|
2716
2754
|
category: "Experimental",
|
|
2717
2755
|
requiresRestart: false,
|
|
2718
2756
|
default: true,
|
|
2719
|
-
description: "Generate a short LLM-based label after each tool batch completes.
|
|
2757
|
+
description: "Generate a short LLM-based label after each tool batch completes. For a completed tool group the label replaces the generic `Tool \xD7 N` header; when the group is force-expanded it appears as a dim `\u25CF <label>` line below the tool group. Requires a fast model to be configured; runs in parallel with the next API call so latency is hidden. Currently affects interactive CLI rendering only \u2014 SDK / non-interactive emission of the `tool_use_summary` message is not yet wired (the message factory is exported for a follow-up PR). Can be overridden with QWEN_CODE_EMIT_TOOL_USE_SUMMARIES=0 or =1.",
|
|
2720
2758
|
showInDialog: true
|
|
2721
2759
|
}
|
|
2722
2760
|
}
|
|
@@ -3047,8 +3085,8 @@ function getDefaultValue(key) {
|
|
|
3047
3085
|
return getFlattenedSchema()[key]?.default;
|
|
3048
3086
|
}
|
|
3049
3087
|
__name(getDefaultValue, "getDefaultValue");
|
|
3050
|
-
function getNestedValue(obj,
|
|
3051
|
-
const [first, ...rest] =
|
|
3088
|
+
function getNestedValue(obj, path3) {
|
|
3089
|
+
const [first, ...rest] = path3;
|
|
3052
3090
|
if (!first || !(first in obj)) {
|
|
3053
3091
|
return void 0;
|
|
3054
3092
|
}
|
|
@@ -3062,8 +3100,8 @@ function getNestedValue(obj, path4) {
|
|
|
3062
3100
|
return void 0;
|
|
3063
3101
|
}
|
|
3064
3102
|
__name(getNestedValue, "getNestedValue");
|
|
3065
|
-
function getNestedProperty(obj,
|
|
3066
|
-
return getNestedValue(obj,
|
|
3103
|
+
function getNestedProperty(obj, path3) {
|
|
3104
|
+
return getNestedValue(obj, path3.split("."));
|
|
3067
3105
|
}
|
|
3068
3106
|
__name(getNestedProperty, "getNestedProperty");
|
|
3069
3107
|
function getEffectiveValue(key, settings, mergedSettings) {
|
|
@@ -3071,12 +3109,12 @@ function getEffectiveValue(key, settings, mergedSettings) {
|
|
|
3071
3109
|
if (!definition) {
|
|
3072
3110
|
return void 0;
|
|
3073
3111
|
}
|
|
3074
|
-
const
|
|
3075
|
-
let value = getNestedValue(settings,
|
|
3112
|
+
const path3 = key.split(".");
|
|
3113
|
+
let value = getNestedValue(settings, path3);
|
|
3076
3114
|
if (value !== void 0) {
|
|
3077
3115
|
return value;
|
|
3078
3116
|
}
|
|
3079
|
-
value = getNestedValue(mergedSettings,
|
|
3117
|
+
value = getNestedValue(mergedSettings, path3);
|
|
3080
3118
|
if (value !== void 0) {
|
|
3081
3119
|
return value;
|
|
3082
3120
|
}
|
|
@@ -3130,6 +3168,15 @@ function validateSettingValue(def, value) {
|
|
|
3130
3168
|
if (def.maximum !== void 0 && value > def.maximum)
|
|
3131
3169
|
return `Value must be <= ${def.maximum}`;
|
|
3132
3170
|
break;
|
|
3171
|
+
case "integer":
|
|
3172
|
+
if (typeof value !== "number" || !Number.isFinite(value))
|
|
3173
|
+
return "Value must be a finite integer";
|
|
3174
|
+
if (!Number.isInteger(value)) return "Value must be an integer";
|
|
3175
|
+
if (def.minimum !== void 0 && value < def.minimum)
|
|
3176
|
+
return `Value must be >= ${def.minimum}`;
|
|
3177
|
+
if (def.maximum !== void 0 && value > def.maximum)
|
|
3178
|
+
return `Value must be <= ${def.maximum}`;
|
|
3179
|
+
break;
|
|
3133
3180
|
case "string":
|
|
3134
3181
|
if (typeof value !== "string") return "Value must be a string";
|
|
3135
3182
|
if (value.length > MAX_SETTING_STRING_VALUE_LENGTH)
|
|
@@ -3162,8 +3209,8 @@ function getDialogSettingKeys() {
|
|
|
3162
3209
|
}
|
|
3163
3210
|
__name(getDialogSettingKeys, "getDialogSettingKeys");
|
|
3164
3211
|
function settingExistsInScope(key, scopeSettings) {
|
|
3165
|
-
const
|
|
3166
|
-
const value = getNestedValue(scopeSettings,
|
|
3212
|
+
const path3 = key.split(".");
|
|
3213
|
+
const value = getNestedValue(scopeSettings, path3);
|
|
3167
3214
|
return value !== void 0;
|
|
3168
3215
|
}
|
|
3169
3216
|
__name(settingExistsInScope, "settingExistsInScope");
|
|
@@ -3176,8 +3223,8 @@ function pathHasUnsafeSegment(keys) {
|
|
|
3176
3223
|
return false;
|
|
3177
3224
|
}
|
|
3178
3225
|
__name(pathHasUnsafeSegment, "pathHasUnsafeSegment");
|
|
3179
|
-
function setNestedPropertyForce(obj,
|
|
3180
|
-
const keys =
|
|
3226
|
+
function setNestedPropertyForce(obj, path3, value) {
|
|
3227
|
+
const keys = path3.split(".");
|
|
3181
3228
|
if (pathHasUnsafeSegment(keys)) return;
|
|
3182
3229
|
const lastKey = keys.pop();
|
|
3183
3230
|
if (!lastKey) return;
|
|
@@ -3191,8 +3238,8 @@ function setNestedPropertyForce(obj, path4, value) {
|
|
|
3191
3238
|
current[lastKey] = value;
|
|
3192
3239
|
}
|
|
3193
3240
|
__name(setNestedPropertyForce, "setNestedPropertyForce");
|
|
3194
|
-
function setNestedPropertySafe(obj,
|
|
3195
|
-
const keys =
|
|
3241
|
+
function setNestedPropertySafe(obj, path3, value) {
|
|
3242
|
+
const keys = path3.split(".");
|
|
3196
3243
|
if (pathHasUnsafeSegment(keys)) return;
|
|
3197
3244
|
const lastKey = keys.pop();
|
|
3198
3245
|
if (!lastKey) return;
|
|
@@ -3211,8 +3258,8 @@ function setNestedPropertySafe(obj, path4, value) {
|
|
|
3211
3258
|
current[lastKey] = value;
|
|
3212
3259
|
}
|
|
3213
3260
|
__name(setNestedPropertySafe, "setNestedPropertySafe");
|
|
3214
|
-
function deleteNestedPropertySafe(obj,
|
|
3215
|
-
const keys =
|
|
3261
|
+
function deleteNestedPropertySafe(obj, path3) {
|
|
3262
|
+
const keys = path3.split(".");
|
|
3216
3263
|
const lastKey = keys.pop();
|
|
3217
3264
|
if (!lastKey) return;
|
|
3218
3265
|
let current = obj;
|
|
@@ -3244,10 +3291,10 @@ function getRestartRequiredFromModified(modifiedSettings) {
|
|
|
3244
3291
|
__name(getRestartRequiredFromModified, "getRestartRequiredFromModified");
|
|
3245
3292
|
function saveModifiedSettings(modifiedSettings, pendingSettings, loadedSettings, scope) {
|
|
3246
3293
|
modifiedSettings.forEach((settingKey) => {
|
|
3247
|
-
const
|
|
3294
|
+
const path3 = settingKey.split(".");
|
|
3248
3295
|
const value = getNestedValue(
|
|
3249
3296
|
pendingSettings,
|
|
3250
|
-
|
|
3297
|
+
path3
|
|
3251
3298
|
);
|
|
3252
3299
|
const existsInOriginalFile = settingExistsInScope(
|
|
3253
3300
|
settingKey,
|
|
@@ -3349,12 +3396,12 @@ function isPlainObject(item) {
|
|
|
3349
3396
|
return !!item && typeof item === "object" && !Array.isArray(item);
|
|
3350
3397
|
}
|
|
3351
3398
|
__name(isPlainObject, "isPlainObject");
|
|
3352
|
-
function mergeRecursively(target, source, getMergeStrategyForPath2,
|
|
3399
|
+
function mergeRecursively(target, source, getMergeStrategyForPath2, path3 = []) {
|
|
3353
3400
|
for (const key of Object.keys(source)) {
|
|
3354
3401
|
if (key === "__proto__" || key === "constructor" || key === "prototype") {
|
|
3355
3402
|
continue;
|
|
3356
3403
|
}
|
|
3357
|
-
const newPath = [...
|
|
3404
|
+
const newPath = [...path3, key];
|
|
3358
3405
|
const srcValue = source[key];
|
|
3359
3406
|
const objValue = target[key];
|
|
3360
3407
|
const mergeStrategy = getMergeStrategyForPath2(newPath);
|
|
@@ -3950,382 +3997,12 @@ function needsMigration(settings) {
|
|
|
3950
3997
|
}
|
|
3951
3998
|
__name(needsMigration, "needsMigration");
|
|
3952
3999
|
|
|
3953
|
-
// packages/cli/src/config/environment.ts
|
|
3954
|
-
init_esbuild_shims();
|
|
3955
|
-
var dotenv = __toESM(require_main(), 1);
|
|
3956
|
-
import * as fs3 from "node:fs";
|
|
3957
|
-
import * as path2 from "node:path";
|
|
3958
|
-
import * as os from "node:os";
|
|
3959
|
-
var SETTINGS_DIRECTORY_NAME = QWEN_DIR;
|
|
3960
|
-
var RELOAD_EXCLUDED_KEYS = /* @__PURE__ */ new Set([
|
|
3961
|
-
...PROJECT_ENV_HARDCODED_EXCLUSIONS,
|
|
3962
|
-
"QWEN_SERVER_TOKEN",
|
|
3963
|
-
"QWEN_CLI_ENTRY",
|
|
3964
|
-
"NODE_OPTIONS",
|
|
3965
|
-
"NODE_PATH",
|
|
3966
|
-
"NODE_TLS_REJECT_UNAUTHORIZED",
|
|
3967
|
-
"LD_PRELOAD",
|
|
3968
|
-
"LD_AUDIT",
|
|
3969
|
-
"LD_LIBRARY_PATH",
|
|
3970
|
-
"DYLD_INSERT_LIBRARIES",
|
|
3971
|
-
"DYLD_LIBRARY_PATH",
|
|
3972
|
-
"BASH_ENV",
|
|
3973
|
-
"ENV",
|
|
3974
|
-
"PATH",
|
|
3975
|
-
"HOME",
|
|
3976
|
-
"TMPDIR",
|
|
3977
|
-
"TMP",
|
|
3978
|
-
"TEMP"
|
|
3979
|
-
]);
|
|
3980
|
-
var dotEnvSourcedKeys = /* @__PURE__ */ new Set();
|
|
3981
|
-
var settingsEnvSourcedKeys = /* @__PURE__ */ new Set();
|
|
3982
|
-
var lastReloadSnapshot = /* @__PURE__ */ new Map();
|
|
3983
|
-
var lastReloadSnapshotSeeded = false;
|
|
3984
|
-
function getUserLevelEnvPaths() {
|
|
3985
|
-
const homeDir = os.homedir();
|
|
3986
|
-
const globalQwenDir = Storage.getGlobalQwenDir();
|
|
3987
|
-
const paths = /* @__PURE__ */ new Set([
|
|
3988
|
-
path2.normalize(path2.join(homeDir, ".env")),
|
|
3989
|
-
path2.normalize(path2.join(globalQwenDir, ".env"))
|
|
3990
|
-
]);
|
|
3991
|
-
const legacyQwenEnv = path2.normalize(path2.join(homeDir, QWEN_DIR, ".env"));
|
|
3992
|
-
paths.add(legacyQwenEnv);
|
|
3993
|
-
return paths;
|
|
3994
|
-
}
|
|
3995
|
-
__name(getUserLevelEnvPaths, "getUserLevelEnvPaths");
|
|
3996
|
-
var homeEnvBootstrapped = false;
|
|
3997
|
-
function preResolveHomeEnvOverrides() {
|
|
3998
|
-
if (homeEnvBootstrapped) {
|
|
3999
|
-
return;
|
|
4000
|
-
}
|
|
4001
|
-
homeEnvBootstrapped = true;
|
|
4002
|
-
if (HOME_ENV_BOOTSTRAP_KEYS.every((key) => process.env[key])) {
|
|
4003
|
-
return;
|
|
4004
|
-
}
|
|
4005
|
-
const initialQwenHome = process.env["QWEN_HOME"];
|
|
4006
|
-
const initialQwenDir = Storage.getGlobalQwenDir();
|
|
4007
|
-
const candidates = [path2.join(initialQwenDir, ".env")];
|
|
4008
|
-
if (!initialQwenHome) {
|
|
4009
|
-
candidates.push(path2.join(path2.dirname(initialQwenDir), ".env"));
|
|
4010
|
-
}
|
|
4011
|
-
for (const candidate of candidates) {
|
|
4012
|
-
readHomeEnvInto(candidate);
|
|
4013
|
-
}
|
|
4014
|
-
const discoveredQwenHome = process.env["QWEN_HOME"];
|
|
4015
|
-
if (discoveredQwenHome && discoveredQwenHome !== initialQwenHome) {
|
|
4016
|
-
const discoveredDir = Storage.getGlobalQwenDir();
|
|
4017
|
-
if (discoveredDir !== initialQwenDir) {
|
|
4018
|
-
readHomeEnvInto(path2.join(discoveredDir, ".env"));
|
|
4019
|
-
}
|
|
4020
|
-
}
|
|
4021
|
-
}
|
|
4022
|
-
__name(preResolveHomeEnvOverrides, "preResolveHomeEnvOverrides");
|
|
4023
|
-
function readHomeEnvInto(file) {
|
|
4024
|
-
if (!fs3.existsSync(file)) {
|
|
4025
|
-
return;
|
|
4026
|
-
}
|
|
4027
|
-
try {
|
|
4028
|
-
const parsed = dotenv.parse(fs3.readFileSync(file, "utf-8"));
|
|
4029
|
-
for (const key of PROJECT_ENV_HARDCODED_EXCLUSIONS) {
|
|
4030
|
-
if (parsed[key] && !Object.hasOwn(process.env, key)) {
|
|
4031
|
-
process.env[key] = parsed[key];
|
|
4032
|
-
}
|
|
4033
|
-
}
|
|
4034
|
-
} catch (_e) {
|
|
4035
|
-
}
|
|
4036
|
-
}
|
|
4037
|
-
__name(readHomeEnvInto, "readHomeEnvInto");
|
|
4038
|
-
function resetHomeEnvBootstrapForTesting() {
|
|
4039
|
-
homeEnvBootstrapped = false;
|
|
4040
|
-
}
|
|
4041
|
-
__name(resetHomeEnvBootstrapForTesting, "resetHomeEnvBootstrapForTesting");
|
|
4042
|
-
function resetEnvironmentTrackingForTesting() {
|
|
4043
|
-
dotEnvSourcedKeys.clear();
|
|
4044
|
-
settingsEnvSourcedKeys.clear();
|
|
4045
|
-
lastReloadSnapshot.clear();
|
|
4046
|
-
lastReloadSnapshotSeeded = false;
|
|
4047
|
-
}
|
|
4048
|
-
__name(resetEnvironmentTrackingForTesting, "resetEnvironmentTrackingForTesting");
|
|
4049
|
-
function getHomeEnvFallbackVars(onReadError) {
|
|
4050
|
-
const globalQwenDir = Storage.getGlobalQwenDir();
|
|
4051
|
-
const candidates = [path2.join(globalQwenDir, ".env")];
|
|
4052
|
-
if (!process.env["QWEN_HOME"]) {
|
|
4053
|
-
candidates.push(path2.join(path2.dirname(globalQwenDir), ".env"));
|
|
4054
|
-
}
|
|
4055
|
-
const result = {};
|
|
4056
|
-
for (const candidate of candidates) {
|
|
4057
|
-
if (!fs3.existsSync(candidate)) {
|
|
4058
|
-
continue;
|
|
4059
|
-
}
|
|
4060
|
-
try {
|
|
4061
|
-
const parsed = dotenv.parse(fs3.readFileSync(candidate, "utf-8"));
|
|
4062
|
-
for (const key in parsed) {
|
|
4063
|
-
if (Object.hasOwn(parsed, key) && !Object.hasOwn(process.env, key)) {
|
|
4064
|
-
result[key] ??= parsed[key];
|
|
4065
|
-
}
|
|
4066
|
-
}
|
|
4067
|
-
} catch (e) {
|
|
4068
|
-
onReadError?.(
|
|
4069
|
-
`Failed to read home .env candidate ${candidate}: ${getErrorMessage(e)}`
|
|
4070
|
-
);
|
|
4071
|
-
}
|
|
4072
|
-
}
|
|
4073
|
-
return result;
|
|
4074
|
-
}
|
|
4075
|
-
__name(getHomeEnvFallbackVars, "getHomeEnvFallbackVars");
|
|
4076
|
-
function findEnvFiles(settings, startDir, userLevelPaths = getUserLevelEnvPaths()) {
|
|
4077
|
-
const homeDir = os.homedir();
|
|
4078
|
-
let realStartDir = path2.resolve(startDir);
|
|
4079
|
-
try {
|
|
4080
|
-
realStartDir = fs3.realpathSync(realStartDir);
|
|
4081
|
-
} catch {
|
|
4082
|
-
}
|
|
4083
|
-
const isTrusted = isWorkspaceTrusted(
|
|
4084
|
-
settings,
|
|
4085
|
-
void 0,
|
|
4086
|
-
realStartDir
|
|
4087
|
-
).isTrusted;
|
|
4088
|
-
const globalQwenDir = Storage.getGlobalQwenDir();
|
|
4089
|
-
const legacyQwenDir = path2.normalize(path2.join(homeDir, QWEN_DIR));
|
|
4090
|
-
const hasCustomConfigDir = path2.normalize(globalQwenDir) !== legacyQwenDir;
|
|
4091
|
-
const found = [];
|
|
4092
|
-
const seen = /* @__PURE__ */ new Set();
|
|
4093
|
-
const canUseEnvFile = /* @__PURE__ */ __name((filePath) => isTrusted !== false || userLevelPaths.has(path2.normalize(filePath)), "canUseEnvFile");
|
|
4094
|
-
const pushCandidate = /* @__PURE__ */ __name((filePath) => {
|
|
4095
|
-
const normalized = path2.normalize(filePath);
|
|
4096
|
-
if (!seen.has(normalized) && fs3.existsSync(filePath) && canUseEnvFile(filePath)) {
|
|
4097
|
-
seen.add(normalized);
|
|
4098
|
-
found.push(filePath);
|
|
4099
|
-
return true;
|
|
4100
|
-
}
|
|
4101
|
-
return false;
|
|
4102
|
-
}, "pushCandidate");
|
|
4103
|
-
const pushHomeCandidates = /* @__PURE__ */ __name(() => {
|
|
4104
|
-
const candidates = [path2.join(globalQwenDir, ".env")];
|
|
4105
|
-
if (hasCustomConfigDir) {
|
|
4106
|
-
candidates.push(path2.join(legacyQwenDir, ".env"));
|
|
4107
|
-
}
|
|
4108
|
-
candidates.push(path2.join(homeDir, ".env"));
|
|
4109
|
-
for (const candidate of candidates) {
|
|
4110
|
-
pushCandidate(candidate);
|
|
4111
|
-
}
|
|
4112
|
-
}, "pushHomeCandidates");
|
|
4113
|
-
let currentDir = realStartDir;
|
|
4114
|
-
let visitedHomeDir = false;
|
|
4115
|
-
while (true) {
|
|
4116
|
-
if (currentDir === homeDir) {
|
|
4117
|
-
visitedHomeDir = true;
|
|
4118
|
-
pushHomeCandidates();
|
|
4119
|
-
return found;
|
|
4120
|
-
} else {
|
|
4121
|
-
const geminiEnvPath = path2.join(currentDir, QWEN_DIR, ".env");
|
|
4122
|
-
if (pushCandidate(geminiEnvPath)) {
|
|
4123
|
-
pushHomeCandidates();
|
|
4124
|
-
return found;
|
|
4125
|
-
}
|
|
4126
|
-
const envPath = path2.join(currentDir, ".env");
|
|
4127
|
-
if (pushCandidate(envPath)) {
|
|
4128
|
-
pushHomeCandidates();
|
|
4129
|
-
return found;
|
|
4130
|
-
}
|
|
4131
|
-
}
|
|
4132
|
-
const parentDir = path2.dirname(currentDir);
|
|
4133
|
-
if (parentDir === currentDir || !parentDir) {
|
|
4134
|
-
if (!visitedHomeDir) {
|
|
4135
|
-
pushHomeCandidates();
|
|
4136
|
-
}
|
|
4137
|
-
return found;
|
|
4138
|
-
}
|
|
4139
|
-
currentDir = parentDir;
|
|
4140
|
-
}
|
|
4141
|
-
}
|
|
4142
|
-
__name(findEnvFiles, "findEnvFiles");
|
|
4143
|
-
function setUpCloudShellEnvironment(envFilePath) {
|
|
4144
|
-
if (envFilePath && fs3.existsSync(envFilePath)) {
|
|
4145
|
-
const envFileContent = fs3.readFileSync(envFilePath);
|
|
4146
|
-
const parsedEnv = dotenv.parse(envFileContent);
|
|
4147
|
-
if (parsedEnv["GOOGLE_CLOUD_PROJECT"]) {
|
|
4148
|
-
process.env["GOOGLE_CLOUD_PROJECT"] = parsedEnv["GOOGLE_CLOUD_PROJECT"];
|
|
4149
|
-
} else {
|
|
4150
|
-
process.env["GOOGLE_CLOUD_PROJECT"] = "cloudshell-gca";
|
|
4151
|
-
}
|
|
4152
|
-
} else {
|
|
4153
|
-
process.env["GOOGLE_CLOUD_PROJECT"] = "cloudshell-gca";
|
|
4154
|
-
}
|
|
4155
|
-
}
|
|
4156
|
-
__name(setUpCloudShellEnvironment, "setUpCloudShellEnvironment");
|
|
4157
|
-
function setUpCloudShellEnvironmentFromFiles(envFilePaths) {
|
|
4158
|
-
for (const envFilePath of envFilePaths) {
|
|
4159
|
-
if (!fs3.existsSync(envFilePath)) {
|
|
4160
|
-
continue;
|
|
4161
|
-
}
|
|
4162
|
-
const envFileContent = fs3.readFileSync(envFilePath);
|
|
4163
|
-
const parsedEnv = dotenv.parse(envFileContent);
|
|
4164
|
-
if (parsedEnv["GOOGLE_CLOUD_PROJECT"]) {
|
|
4165
|
-
process.env["GOOGLE_CLOUD_PROJECT"] = parsedEnv["GOOGLE_CLOUD_PROJECT"];
|
|
4166
|
-
return;
|
|
4167
|
-
}
|
|
4168
|
-
}
|
|
4169
|
-
process.env["GOOGLE_CLOUD_PROJECT"] = "cloudshell-gca";
|
|
4170
|
-
}
|
|
4171
|
-
__name(setUpCloudShellEnvironmentFromFiles, "setUpCloudShellEnvironmentFromFiles");
|
|
4172
|
-
function loadEnvironment(settings, startDir = process.cwd()) {
|
|
4173
|
-
const userLevelPaths = getUserLevelEnvPaths();
|
|
4174
|
-
const envFilePaths = findEnvFiles(settings, startDir, userLevelPaths);
|
|
4175
|
-
if (process.env["CLOUD_SHELL"] === "true") {
|
|
4176
|
-
setUpCloudShellEnvironmentFromFiles(envFilePaths);
|
|
4177
|
-
}
|
|
4178
|
-
for (const envFilePath of envFilePaths) {
|
|
4179
|
-
try {
|
|
4180
|
-
const envFileContent = fs3.readFileSync(envFilePath, "utf-8");
|
|
4181
|
-
const parsedEnv = dotenv.parse(envFileContent);
|
|
4182
|
-
const excludedVars = settings?.advanced?.excludedEnvVars || DEFAULT_EXCLUDED_ENV_VARS;
|
|
4183
|
-
const normalizedEnvFilePath = path2.normalize(envFilePath);
|
|
4184
|
-
const isHomeScopedEnvFile = userLevelPaths.has(normalizedEnvFilePath);
|
|
4185
|
-
const isQwenScopedEnvFile = isHomeScopedEnvFile || path2.basename(path2.dirname(normalizedEnvFilePath)) === QWEN_DIR;
|
|
4186
|
-
for (const key in parsedEnv) {
|
|
4187
|
-
if (Object.hasOwn(parsedEnv, key)) {
|
|
4188
|
-
if (!isHomeScopedEnvFile && PROJECT_ENV_HARDCODED_EXCLUSIONS.includes(key)) {
|
|
4189
|
-
continue;
|
|
4190
|
-
}
|
|
4191
|
-
if (!isQwenScopedEnvFile && excludedVars.includes(key)) {
|
|
4192
|
-
continue;
|
|
4193
|
-
}
|
|
4194
|
-
const existingValue = process.env[key];
|
|
4195
|
-
const isEffectivelyUnset = !Object.hasOwn(process.env, key) || existingValue === "";
|
|
4196
|
-
if (isEffectivelyUnset) {
|
|
4197
|
-
process.env[key] = parsedEnv[key];
|
|
4198
|
-
dotEnvSourcedKeys.add(key);
|
|
4199
|
-
}
|
|
4200
|
-
if (!lastReloadSnapshotSeeded && !lastReloadSnapshot.has(key)) {
|
|
4201
|
-
lastReloadSnapshot.set(key, parsedEnv[key]);
|
|
4202
|
-
}
|
|
4203
|
-
}
|
|
4204
|
-
}
|
|
4205
|
-
} catch (_e) {
|
|
4206
|
-
}
|
|
4207
|
-
}
|
|
4208
|
-
if (settings.env) {
|
|
4209
|
-
for (const [key, value] of Object.entries(settings.env)) {
|
|
4210
|
-
if (PROJECT_ENV_HARDCODED_EXCLUSIONS.includes(key)) {
|
|
4211
|
-
continue;
|
|
4212
|
-
}
|
|
4213
|
-
const existingValue = process.env[key];
|
|
4214
|
-
const isEffectivelyUnset = !Object.hasOwn(process.env, key) || existingValue === "";
|
|
4215
|
-
if (isEffectivelyUnset && typeof value === "string") {
|
|
4216
|
-
process.env[key] = value;
|
|
4217
|
-
settingsEnvSourcedKeys.add(key);
|
|
4218
|
-
}
|
|
4219
|
-
if (!lastReloadSnapshotSeeded && typeof value === "string" && !lastReloadSnapshot.has(key)) {
|
|
4220
|
-
lastReloadSnapshot.set(key, value);
|
|
4221
|
-
}
|
|
4222
|
-
}
|
|
4223
|
-
}
|
|
4224
|
-
lastReloadSnapshotSeeded = true;
|
|
4225
|
-
}
|
|
4226
|
-
__name(loadEnvironment, "loadEnvironment");
|
|
4227
|
-
function reloadEnvironment(settings, workspaceCwd) {
|
|
4228
|
-
const userLevelPaths = getUserLevelEnvPaths();
|
|
4229
|
-
const envFilePaths = findEnvFiles(settings, workspaceCwd, userLevelPaths);
|
|
4230
|
-
if (process.env["CLOUD_SHELL"] === "true") {
|
|
4231
|
-
setUpCloudShellEnvironmentFromFiles(envFilePaths);
|
|
4232
|
-
}
|
|
4233
|
-
let dotEnvReadFailed = false;
|
|
4234
|
-
const newDotEnvKeys = /* @__PURE__ */ new Map();
|
|
4235
|
-
const newSettingsEnvKeys = /* @__PURE__ */ new Map();
|
|
4236
|
-
for (const envFilePath of envFilePaths) {
|
|
4237
|
-
try {
|
|
4238
|
-
const envFileContent = fs3.readFileSync(envFilePath, "utf-8");
|
|
4239
|
-
const parsedEnv = dotenv.parse(envFileContent);
|
|
4240
|
-
const excludedVars = settings?.advanced?.excludedEnvVars || DEFAULT_EXCLUDED_ENV_VARS;
|
|
4241
|
-
const normalizedEnvFilePath = path2.normalize(envFilePath);
|
|
4242
|
-
const isHomeScopedEnvFile = userLevelPaths.has(normalizedEnvFilePath);
|
|
4243
|
-
const isQwenScopedEnvFile = isHomeScopedEnvFile || path2.basename(path2.dirname(normalizedEnvFilePath)) === QWEN_DIR;
|
|
4244
|
-
for (const key in parsedEnv) {
|
|
4245
|
-
if (!Object.hasOwn(parsedEnv, key)) continue;
|
|
4246
|
-
if (RELOAD_EXCLUDED_KEYS.has(key)) continue;
|
|
4247
|
-
if (!isHomeScopedEnvFile && PROJECT_ENV_HARDCODED_EXCLUSIONS.includes(key)) {
|
|
4248
|
-
continue;
|
|
4249
|
-
}
|
|
4250
|
-
if (!isQwenScopedEnvFile && excludedVars.includes(key)) continue;
|
|
4251
|
-
if (!newDotEnvKeys.has(key)) {
|
|
4252
|
-
newDotEnvKeys.set(key, parsedEnv[key]);
|
|
4253
|
-
}
|
|
4254
|
-
}
|
|
4255
|
-
} catch {
|
|
4256
|
-
dotEnvReadFailed = true;
|
|
4257
|
-
}
|
|
4258
|
-
}
|
|
4259
|
-
if (settings.env) {
|
|
4260
|
-
for (const [key, value] of Object.entries(settings.env)) {
|
|
4261
|
-
if (RELOAD_EXCLUDED_KEYS.has(key)) continue;
|
|
4262
|
-
if (PROJECT_ENV_HARDCODED_EXCLUSIONS.includes(key)) continue;
|
|
4263
|
-
if (typeof value !== "string") continue;
|
|
4264
|
-
const dotEnvValue = newDotEnvKeys.get(key);
|
|
4265
|
-
if (dotEnvValue !== void 0 && dotEnvValue !== "") continue;
|
|
4266
|
-
if (dotEnvReadFailed && lastReloadSnapshot.has(key)) continue;
|
|
4267
|
-
newSettingsEnvKeys.set(key, value);
|
|
4268
|
-
}
|
|
4269
|
-
}
|
|
4270
|
-
const allNewKeys = /* @__PURE__ */ new Set([
|
|
4271
|
-
...newDotEnvKeys.keys(),
|
|
4272
|
-
...newSettingsEnvKeys.keys()
|
|
4273
|
-
]);
|
|
4274
|
-
const updatedKeys = [];
|
|
4275
|
-
const removedKeys = [];
|
|
4276
|
-
if (!dotEnvReadFailed) {
|
|
4277
|
-
const previouslyKnown = /* @__PURE__ */ new Set([
|
|
4278
|
-
...lastReloadSnapshot.keys(),
|
|
4279
|
-
...dotEnvSourcedKeys,
|
|
4280
|
-
...settingsEnvSourcedKeys
|
|
4281
|
-
]);
|
|
4282
|
-
for (const key of previouslyKnown) {
|
|
4283
|
-
if (!allNewKeys.has(key) && !RELOAD_EXCLUDED_KEYS.has(key)) {
|
|
4284
|
-
delete process.env[key];
|
|
4285
|
-
removedKeys.push(key);
|
|
4286
|
-
}
|
|
4287
|
-
}
|
|
4288
|
-
}
|
|
4289
|
-
for (const [key, value] of newDotEnvKeys) {
|
|
4290
|
-
if (value === "" && newSettingsEnvKeys.has(key)) continue;
|
|
4291
|
-
if (process.env[key] !== value) {
|
|
4292
|
-
updatedKeys.push(key);
|
|
4293
|
-
}
|
|
4294
|
-
process.env[key] = value;
|
|
4295
|
-
}
|
|
4296
|
-
for (const [key, value] of newSettingsEnvKeys) {
|
|
4297
|
-
if (process.env[key] !== value) {
|
|
4298
|
-
updatedKeys.push(key);
|
|
4299
|
-
}
|
|
4300
|
-
process.env[key] = value;
|
|
4301
|
-
}
|
|
4302
|
-
if (!dotEnvReadFailed) {
|
|
4303
|
-
dotEnvSourcedKeys.clear();
|
|
4304
|
-
for (const key of newDotEnvKeys.keys()) {
|
|
4305
|
-
dotEnvSourcedKeys.add(key);
|
|
4306
|
-
}
|
|
4307
|
-
lastReloadSnapshot.clear();
|
|
4308
|
-
for (const [key, value] of newDotEnvKeys) {
|
|
4309
|
-
lastReloadSnapshot.set(key, value);
|
|
4310
|
-
}
|
|
4311
|
-
for (const [key, value] of newSettingsEnvKeys) {
|
|
4312
|
-
lastReloadSnapshot.set(key, value);
|
|
4313
|
-
}
|
|
4314
|
-
}
|
|
4315
|
-
settingsEnvSourcedKeys.clear();
|
|
4316
|
-
for (const key of newSettingsEnvKeys.keys()) {
|
|
4317
|
-
settingsEnvSourcedKeys.add(key);
|
|
4318
|
-
}
|
|
4319
|
-
return { updatedKeys, removedKeys };
|
|
4320
|
-
}
|
|
4321
|
-
__name(reloadEnvironment, "reloadEnvironment");
|
|
4322
|
-
|
|
4323
4000
|
// packages/cli/src/config/settings.ts
|
|
4324
4001
|
var debugLogger2 = createDebugLogger("SETTINGS");
|
|
4325
|
-
function getMergeStrategyForPath(
|
|
4002
|
+
function getMergeStrategyForPath(path3) {
|
|
4326
4003
|
let current = void 0;
|
|
4327
4004
|
let currentSchema = getSettingsSchema();
|
|
4328
|
-
for (const key of
|
|
4005
|
+
for (const key of path3) {
|
|
4329
4006
|
if (!currentSchema || !currentSchema[key]) {
|
|
4330
4007
|
return void 0;
|
|
4331
4008
|
}
|
|
@@ -4340,7 +4017,7 @@ function getUserSettingsPath() {
|
|
|
4340
4017
|
}
|
|
4341
4018
|
__name(getUserSettingsPath, "getUserSettingsPath");
|
|
4342
4019
|
function getUserSettingsDir() {
|
|
4343
|
-
return
|
|
4020
|
+
return path2.dirname(getUserSettingsPath());
|
|
4344
4021
|
}
|
|
4345
4022
|
__name(getUserSettingsDir, "getUserSettingsDir");
|
|
4346
4023
|
var SETTINGS_VERSION = 4;
|
|
@@ -4602,14 +4279,14 @@ var LoadedSettings = class {
|
|
|
4602
4279
|
reloadScopeFromDisk(scope) {
|
|
4603
4280
|
const file = this.forScope(scope);
|
|
4604
4281
|
try {
|
|
4605
|
-
if (!
|
|
4282
|
+
if (!fs3.existsSync(file.path)) {
|
|
4606
4283
|
file.settings = {};
|
|
4607
4284
|
file.originalSettings = {};
|
|
4608
4285
|
file.rawJson = void 0;
|
|
4609
4286
|
this._merged = this.computeMergedSettings();
|
|
4610
4287
|
return;
|
|
4611
4288
|
}
|
|
4612
|
-
const content =
|
|
4289
|
+
const content = fs3.readFileSync(file.path, "utf-8");
|
|
4613
4290
|
const parsed = JSON.parse((0, import_strip_json_comments.default)(content));
|
|
4614
4291
|
if (parsed && typeof parsed === "object" && !Array.isArray(parsed)) {
|
|
4615
4292
|
const resolved = resolveEnvVarsInObject(
|
|
@@ -4666,33 +4343,33 @@ function createMinimalSettings() {
|
|
|
4666
4343
|
}
|
|
4667
4344
|
__name(createMinimalSettings, "createMinimalSettings");
|
|
4668
4345
|
function detectQwenHomeRedirectWithoutMigration(activeUserSettingsPath) {
|
|
4669
|
-
if (!
|
|
4346
|
+
if (!process.env["QWEN_HOME"]) {
|
|
4670
4347
|
return null;
|
|
4671
4348
|
}
|
|
4672
4349
|
const activeQwenDir = Storage.getGlobalQwenDir();
|
|
4673
|
-
const savedQwenHome =
|
|
4674
|
-
delete
|
|
4350
|
+
const savedQwenHome = process.env["QWEN_HOME"];
|
|
4351
|
+
delete process.env["QWEN_HOME"];
|
|
4675
4352
|
let legacyQwenDir;
|
|
4676
4353
|
try {
|
|
4677
4354
|
legacyQwenDir = Storage.getGlobalQwenDir();
|
|
4678
4355
|
} finally {
|
|
4679
|
-
|
|
4356
|
+
process.env["QWEN_HOME"] = savedQwenHome;
|
|
4680
4357
|
}
|
|
4681
|
-
if (
|
|
4358
|
+
if (path2.resolve(activeQwenDir) === path2.resolve(legacyQwenDir)) {
|
|
4682
4359
|
return null;
|
|
4683
4360
|
}
|
|
4684
|
-
if (
|
|
4361
|
+
if (fs3.existsSync(activeUserSettingsPath)) {
|
|
4685
4362
|
return null;
|
|
4686
4363
|
}
|
|
4687
|
-
const legacyUserSettings =
|
|
4688
|
-
if (!
|
|
4364
|
+
const legacyUserSettings = path2.join(legacyQwenDir, "settings.json");
|
|
4365
|
+
if (!fs3.existsSync(legacyUserSettings)) {
|
|
4689
4366
|
return null;
|
|
4690
4367
|
}
|
|
4691
4368
|
return `QWEN_HOME points to "${activeQwenDir}" but no settings.json was found there. Existing config remains at "${legacyQwenDir}" \u2014 OAuth tokens, settings, memory, extensions, and skills are not auto-migrated. Copy them manually if you want them to apply at the new location.`;
|
|
4692
4369
|
}
|
|
4693
4370
|
__name(detectQwenHomeRedirectWithoutMigration, "detectQwenHomeRedirectWithoutMigration");
|
|
4694
4371
|
var CORRUPTED_SUFFIX = ".corrupted";
|
|
4695
|
-
function loadSettings(workspaceDir =
|
|
4372
|
+
function loadSettings(workspaceDir = process.cwd(), consumeCorruptionEnvVars = true) {
|
|
4696
4373
|
const opts = typeof consumeCorruptionEnvVars === "object" ? consumeCorruptionEnvVars : { consumeCorruptionEnvVars };
|
|
4697
4374
|
preResolveHomeEnvOverrides();
|
|
4698
4375
|
const userSettingsPath = getUserSettingsPath();
|
|
@@ -4705,21 +4382,21 @@ function loadSettings(workspaceDir = process2.cwd(), consumeCorruptionEnvVars =
|
|
|
4705
4382
|
const systemSettingsPath = getSystemSettingsPath();
|
|
4706
4383
|
const systemDefaultsPath = getSystemDefaultsPath();
|
|
4707
4384
|
const migratedInMemorScopes = /* @__PURE__ */ new Set();
|
|
4708
|
-
const resolvedWorkspaceDir =
|
|
4709
|
-
const resolvedHomeDir =
|
|
4385
|
+
const resolvedWorkspaceDir = path2.resolve(workspaceDir);
|
|
4386
|
+
const resolvedHomeDir = path2.resolve(homedir());
|
|
4710
4387
|
let realWorkspaceDir = resolvedWorkspaceDir;
|
|
4711
4388
|
try {
|
|
4712
|
-
realWorkspaceDir =
|
|
4389
|
+
realWorkspaceDir = fs3.realpathSync(resolvedWorkspaceDir);
|
|
4713
4390
|
} catch (_e) {
|
|
4714
4391
|
}
|
|
4715
|
-
const realHomeDir =
|
|
4392
|
+
const realHomeDir = fs3.realpathSync(resolvedHomeDir);
|
|
4716
4393
|
const workspaceSettingsPath = new Storage(
|
|
4717
4394
|
workspaceDir
|
|
4718
4395
|
).getWorkspaceSettingsPath();
|
|
4719
4396
|
const loadAndMigrate = /* @__PURE__ */ __name((filePath, scope) => {
|
|
4720
4397
|
try {
|
|
4721
|
-
if (
|
|
4722
|
-
const content =
|
|
4398
|
+
if (fs3.existsSync(filePath)) {
|
|
4399
|
+
const content = fs3.readFileSync(filePath, "utf-8");
|
|
4723
4400
|
let rawSettings;
|
|
4724
4401
|
const corruptedPath = `${filePath}${CORRUPTED_SUFFIX}`;
|
|
4725
4402
|
let corruptedSaved = false;
|
|
@@ -4731,7 +4408,7 @@ function loadSettings(workspaceDir = process2.cwd(), consumeCorruptionEnvVars =
|
|
|
4731
4408
|
`Settings file ${filePath} has invalid JSON (${getErrorMessage(parseError)}). Resetting to empty settings.`
|
|
4732
4409
|
);
|
|
4733
4410
|
try {
|
|
4734
|
-
|
|
4411
|
+
fs3.copyFileSync(filePath, corruptedPath);
|
|
4735
4412
|
corruptedSaved = true;
|
|
4736
4413
|
} catch (copyError) {
|
|
4737
4414
|
debugLogger2.warn(
|
|
@@ -4743,7 +4420,7 @@ function loadSettings(workspaceDir = process2.cwd(), consumeCorruptionEnvVars =
|
|
|
4743
4420
|
debugLogger2.warn(warningMsg);
|
|
4744
4421
|
if (corruptedSaved) {
|
|
4745
4422
|
try {
|
|
4746
|
-
|
|
4423
|
+
fs3.writeFileSync(filePath, "{}", "utf-8");
|
|
4747
4424
|
} catch {
|
|
4748
4425
|
}
|
|
4749
4426
|
}
|
|
@@ -4755,12 +4432,12 @@ function loadSettings(workspaceDir = process2.cwd(), consumeCorruptionEnvVars =
|
|
|
4755
4432
|
};
|
|
4756
4433
|
}
|
|
4757
4434
|
}
|
|
4758
|
-
const envCorruptedPath =
|
|
4435
|
+
const envCorruptedPath = process.env[ENV_CORRUPTED_PATH];
|
|
4759
4436
|
if ((opts.consumeCorruptionEnvVars ?? true) && envCorruptedPath && envCorruptedPath === corruptedPath && scope === "User" /* User */) {
|
|
4760
4437
|
corruptedSaved = true;
|
|
4761
|
-
recoveredFromEnvVar =
|
|
4762
|
-
delete
|
|
4763
|
-
delete
|
|
4438
|
+
recoveredFromEnvVar = process.env[ENV_WAS_RECOVERED] === "1";
|
|
4439
|
+
delete process.env[ENV_CORRUPTED_PATH];
|
|
4440
|
+
delete process.env[ENV_WAS_RECOVERED];
|
|
4764
4441
|
}
|
|
4765
4442
|
if (typeof rawSettings !== "object" || rawSettings === null || Array.isArray(rawSettings)) {
|
|
4766
4443
|
settingsErrors.push({
|
|
@@ -4955,9 +4632,9 @@ function createSettingsUpdate(key, value) {
|
|
|
4955
4632
|
__name(createSettingsUpdate, "createSettingsUpdate");
|
|
4956
4633
|
function saveSettings(settingsFile, updates = settingsFile.originalSettings, replacePath = [], opts = {}) {
|
|
4957
4634
|
try {
|
|
4958
|
-
const dirPath =
|
|
4959
|
-
if (!
|
|
4960
|
-
|
|
4635
|
+
const dirPath = path2.dirname(settingsFile.path);
|
|
4636
|
+
if (!fs3.existsSync(dirPath)) {
|
|
4637
|
+
fs3.mkdirSync(dirPath, { recursive: true });
|
|
4961
4638
|
}
|
|
4962
4639
|
const written = updateSettingsFilePreservingFormat(
|
|
4963
4640
|
settingsFile.path,
|
|
@@ -5010,15 +4687,6 @@ export {
|
|
|
5010
4687
|
backupSettingsFile,
|
|
5011
4688
|
restoreSettingsFromBackup,
|
|
5012
4689
|
cleanupSettingsBackup,
|
|
5013
|
-
SETTINGS_DIRECTORY_NAME,
|
|
5014
|
-
preResolveHomeEnvOverrides,
|
|
5015
|
-
resetHomeEnvBootstrapForTesting,
|
|
5016
|
-
resetEnvironmentTrackingForTesting,
|
|
5017
|
-
getHomeEnvFallbackVars,
|
|
5018
|
-
findEnvFiles,
|
|
5019
|
-
setUpCloudShellEnvironment,
|
|
5020
|
-
loadEnvironment,
|
|
5021
|
-
reloadEnvironment,
|
|
5022
4690
|
getUserSettingsPath,
|
|
5023
4691
|
getUserSettingsDir,
|
|
5024
4692
|
SETTINGS_VERSION,
|