@qwen-code/qwen-code 0.21.0 → 0.21.1
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 +2 -0
- package/bundled/qc-helper/docs/configuration/settings.md +38 -28
- package/bundled/qc-helper/docs/features/channels/_meta.ts +1 -0
- package/bundled/qc-helper/docs/features/channels/github.md +107 -0
- package/bundled/qc-helper/docs/features/channels/overview.md +61 -6
- package/bundled/qc-helper/docs/features/code-review.md +1 -1
- package/bundled/qc-helper/docs/features/hooks.md +52 -15
- package/bundled/qc-helper/docs/features/mcp.md +9 -1
- package/bundled/qc-helper/docs/features/scheduled-tasks.md +3 -1
- package/bundled/qc-helper/docs/features/sub-agents.md +20 -0
- package/bundled/qc-helper/docs/qwen-serve.md +4 -2
- package/bundled/qc-helper/docs/reference/keyboard-shortcuts.md +2 -2
- package/bundled/qc-helper/docs/support/troubleshooting.md +2 -1
- package/bundled/review/DESIGN.md +19 -0
- package/bundled/review/SKILL.md +120 -61
- package/chunks/MaxSizedBox-VI3ROJJA.js +84 -0
- package/chunks/{StandaloneSessionPicker-BIRMPLRD.js → StandaloneSessionPicker-LYXKD2EV.js} +67 -68
- package/chunks/{acp-startup-profiler-RV3IV562.js → acp-startup-profiler-DFVPFQ6C.js} +2 -2
- package/chunks/{acpAgent-6J2U72PQ.js → acpAgent-WN5SRDQO.js} +1373 -553
- package/chunks/agent-K6ECSM64.js +80 -0
- package/chunks/agent-headless-NO4Y2HOE.js +74 -0
- package/chunks/{anthropicContentGenerator-75BKLTSP.js → anthropicContentGenerator-V2QOGVYD.js} +79 -27
- package/chunks/{artifact-tool-Y5T7GG7F.js → artifact-tool-6K6U7XYJ.js} +4 -4
- package/chunks/{askUserQuestion-2H6747FR.js → askUserQuestion-GD2IJJ7I.js} +4 -4
- package/chunks/bridge-3KJEWDNE.js +90 -0
- package/chunks/{build-RV63TIRH.js → build-S6DO7LMM.js} +1 -1
- package/chunks/{ca-25EDXPFZ.js → ca-6W3SK7OQ.js} +6 -1
- package/chunks/channel-management-service-XR7GZSWF.js +403 -0
- package/chunks/channel-settings-store-HW4FXXUA.js +87 -0
- package/chunks/{channel-worker-group-2ZD7TVAT.js → channel-worker-group-XDPTDWTX.js} +11 -6
- package/chunks/{channel-worker-manager-4OA4BCGB.js → channel-worker-manager-YYEHVRRE.js} +11 -6
- package/chunks/{channel-worker-supervisor-V7KCFJTS.js → channel-worker-supervisor-74HTWA2G.js} +7 -5
- package/chunks/{chunk-M5JM7OSF.js → chunk-2DN4J57Y.js} +2 -3
- package/chunks/{chunk-ETSW4KLJ.js → chunk-2FAK6PNM.js} +2 -2
- package/chunks/{chunk-BPJSQIJX.js → chunk-2J3OJGTL.js} +0 -2
- package/chunks/{chunk-EPDRMGT4.js → chunk-2LKVPASC.js} +4 -28
- package/chunks/{chunk-PWTZEM3C.js → chunk-2LQTH543.js} +3 -37
- package/chunks/{chunk-LH2BYDQ5.js → chunk-2N7CODY5.js} +18 -12
- package/chunks/{chunk-4WIZGAH3.js → chunk-2XSLTRFZ.js} +6 -58
- package/chunks/{chunk-FSITMZJH.js → chunk-3EFXSQCM.js} +18 -9
- package/chunks/{chunk-HIJQF5B5.js → chunk-3L2SPEBH.js} +1 -1
- package/chunks/{chunk-BIQWWWJN.js → chunk-4G2BISNC.js} +1 -1
- package/chunks/{chunk-PWVFN2LF.js → chunk-52ZSWYEG.js} +1 -1
- package/chunks/{chunk-ZJHVAS7M.js → chunk-5KTQXHPY.js} +4 -5
- package/chunks/{chunk-PC6JANNU.js → chunk-5MKRTI4T.js} +4 -4
- package/chunks/{chunk-DHHOYAPR.js → chunk-5TBMQLGG.js} +7 -7
- package/chunks/{chunk-A4UCTEB5.js → chunk-5WV5S2GT.js} +0 -1
- package/chunks/chunk-5YKDXHUY.js +463 -0
- package/chunks/chunk-5ZF5XXTS.js +363 -0
- package/chunks/{chunk-K4XWPEWB.js → chunk-64LQLPL7.js} +4 -33
- package/chunks/{chunk-YPE6A4GC.js → chunk-657BH7VM.js} +2 -2
- package/chunks/{chunk-R5AFZNQW.js → chunk-65PQENQP.js} +14 -7
- package/chunks/{chunk-RIBKPMRP.js → chunk-6PE7N3A4.js} +18 -7
- package/chunks/{chunk-JZA3JUDJ.js → chunk-6QIGFD5W.js} +1 -1
- package/chunks/{chunk-JVPM2ULZ.js → chunk-6RPMI2AB.js} +6 -6
- package/chunks/{chunk-OHNBB4XR.js → chunk-75GFAX4R.js} +1 -1
- package/chunks/{chunk-NIBLUX3Y.js → chunk-75MIQ3LV.js} +148 -21
- package/chunks/{chunk-U7M2DMGW.js → chunk-7AEJDLRA.js} +130 -5
- package/chunks/{chunk-TPRQ7RZH.js → chunk-7BAU433D.js} +2293 -945
- package/chunks/{chunk-M4FMGVY4.js → chunk-7DXQIJID.js} +3 -3
- package/chunks/{chunk-RWTEFFPU.js → chunk-7I5GTCT4.js} +620 -383
- package/chunks/{chunk-A5L3JMUA.js → chunk-7XATOOE7.js} +18 -4
- package/chunks/{chunk-Y34KJKDC.js → chunk-A2D5BAVP.js} +1 -1
- package/chunks/{chunk-5I2IWRSH.js → chunk-A3NDJ5SB.js} +2 -2
- package/chunks/{chunk-OFDOK3VM.js → chunk-A4COXFB3.js} +8 -13
- package/chunks/{chunk-JLU636DO.js → chunk-ALMR3E6Q.js} +1 -0
- package/chunks/{chunk-Q4M4MDQ4.js → chunk-AQIDMUGU.js} +1 -1
- package/chunks/{chunk-PJIZUQVC.js → chunk-AZQ3DT76.js} +2 -2
- package/chunks/{chunk-UH3WSE5L.js → chunk-B4AJNNOL.js} +1 -6
- package/chunks/{chunk-BJX6ZSUK.js → chunk-BCZFQXWK.js} +2 -2
- package/chunks/{chunk-MB4MZHMJ.js → chunk-BGTQCTQW.js} +211 -522
- package/chunks/{chunk-MZAXJAUM.js → chunk-BMFALVGQ.js} +1 -1
- package/chunks/{chunk-PSOO6YXD.js → chunk-BNWB5CYE.js} +9 -7
- package/chunks/{chunk-BKHWX6I2.js → chunk-BPZKP57P.js} +11 -3
- package/chunks/{chunk-H4SBPHSA.js → chunk-CAPPWD3X.js} +3 -3
- package/chunks/{chunk-LQIW3YFY.js → chunk-CQL64ESB.js} +7 -7
- package/chunks/{chunk-TOFQCPDC.js → chunk-CVHIL5IG.js} +4 -5
- package/chunks/{chunk-XVNQMZ2I.js → chunk-DGEIYUC3.js} +0 -1
- package/chunks/{chunk-BPZALHVR.js → chunk-DI35ZN7T.js} +1 -1
- package/chunks/chunk-DZLYR4U3.js +1252 -0
- package/chunks/{chunk-TEHGS6UP.js → chunk-EIF3FXTB.js} +117 -24
- package/chunks/{chunk-2SCDWPXI.js → chunk-EJGJIBRS.js} +5 -5
- package/chunks/{chunk-7MVVZO4N.js → chunk-EVKE2FZL.js} +4 -4
- package/chunks/{chunk-OKY7HXPG.js → chunk-FNMZK765.js} +2 -2
- package/chunks/{chunk-VIA5XA4U.js → chunk-FTD6DP4T.js} +3 -1
- package/chunks/chunk-FYJ7W2PI.js +194 -0
- package/chunks/{chunk-L5UHQJTJ.js → chunk-GATT5TKW.js} +1 -1
- package/chunks/{chunk-X5XDDSSH.js → chunk-GEBV2JGB.js} +28 -5
- package/chunks/{chunk-VAK25FTU.js → chunk-GKX7E4CO.js} +1 -1
- package/chunks/{chunk-LS77BEZP.js → chunk-GLCZKT5V.js} +1 -5
- package/chunks/{chunk-5NBDS5S6.js → chunk-GNR2RNMP.js} +162 -7
- package/chunks/{chunk-YH6G52F2.js → chunk-GXIJHV66.js} +4 -4
- package/chunks/chunk-GZ3RCT54.js +76 -0
- package/chunks/{chunk-2X55UKQE.js → chunk-HMRM2A3U.js} +3 -3
- package/chunks/chunk-HV26XH34.js +319 -0
- package/chunks/{chunk-LB6DUZ26.js → chunk-J7OACQDE.js} +229 -172
- package/chunks/{chunk-K36B6G2O.js → chunk-JFMA7Y5M.js} +5 -5
- package/chunks/{chunk-55DJUCI2.js → chunk-JHNRZMHI.js} +53 -43
- package/chunks/{chunk-63P4EL5V.js → chunk-JMONIXMJ.js} +1 -1
- package/chunks/{chunk-L26JL52R.js → chunk-JSD33JG6.js} +47 -64
- package/chunks/{chunk-YBL3QUDD.js → chunk-JTV5K7NH.js} +1 -1
- package/chunks/{chunk-RZIX2G32.js → chunk-JX27F6QS.js} +1 -1
- package/chunks/chunk-JYBU6YUE.js +378 -0
- package/chunks/{chunk-7JURR4JT.js → chunk-KAMYKP7E.js} +167 -81
- package/chunks/{chunk-KMQ33DO4.js → chunk-KCO4FLFJ.js} +4 -4
- package/chunks/{chunk-2W3OOD4W.js → chunk-L55JWS76.js} +6 -3
- package/chunks/{chunk-RHLZR4E5.js → chunk-LGAOC3ZS.js} +1 -1
- package/chunks/{chunk-EBJQ6AXW.js → chunk-LO4ROVP4.js} +262 -16
- package/chunks/{chunk-NH6KE4JX.js → chunk-LW3RFMG7.js} +3 -3
- package/chunks/{chunk-J56UI34H.js → chunk-M7OONWYU.js} +2 -2
- package/chunks/{chunk-2NH6DYI4.js → chunk-MHAIJPTD.js} +12 -12
- package/chunks/{chunk-FODK6UMO.js → chunk-MPHPFVKK.js} +0 -2
- package/chunks/{chunk-VRYUBFMC.js → chunk-MR5EAQ5M.js} +1 -1
- package/chunks/{chunk-JESCGQM3.js → chunk-NAVJD2PQ.js} +8 -7
- package/chunks/{chunk-H5FFA6TH.js → chunk-NOKIVHOL.js} +16 -3
- package/chunks/{chunk-6OUGMXDC.js → chunk-NWNEANAT.js} +7 -7
- package/chunks/{chunk-SQCQ4KO2.js → chunk-OCESJA77.js} +393 -330
- package/chunks/chunk-OCPBI7J5.js +18 -0
- package/chunks/{chunk-E5TUC6CA.js → chunk-OKF7JF3R.js} +3 -3
- package/chunks/{chunk-TGILQ3YH.js → chunk-P4WOAOJW.js} +141 -64
- package/chunks/{chunk-ZFDTEDCF.js → chunk-PB3MBFKG.js} +6 -6
- package/chunks/{chunk-3RN6GBKS.js → chunk-PLDQBIO6.js} +1 -1
- package/chunks/{chunk-FNQ6T3CV.js → chunk-PONHVBRT.js} +10 -7
- package/chunks/{chunk-CIKQ7KKO.js → chunk-PT722TDT.js} +271 -376
- package/chunks/chunk-Q43KPN7X.js +2196 -0
- package/chunks/{chunk-VDDGDZMA.js → chunk-QHWCP53L.js} +14 -7
- package/chunks/{chunk-MVSUYZDT.js → chunk-QIZKCVM3.js} +4 -4
- package/chunks/{chunk-QAF7NMK7.js → chunk-RCUQIPTN.js} +1 -1
- package/chunks/{chunk-6FGBXPWM.js → chunk-RPLGZJV2.js} +38 -44
- package/chunks/{chunk-GSN55ZRI.js → chunk-S4WJVPZW.js} +19 -7
- package/chunks/{chunk-6AM5D4ME.js → chunk-S6LOFUVP.js} +0 -12
- package/chunks/{chunk-BULDBTYC.js → chunk-S7W2GKIO.js} +1 -28
- package/chunks/{chunk-MUP3T3AD.js → chunk-SGFT55XI.js} +1 -35
- package/chunks/{chunk-VYPFXUCB.js → chunk-SZ3KHTDR.js} +1 -1
- package/chunks/chunk-T26EAKDL.js +13 -0
- package/chunks/{chunk-UDX5OBWR.js → chunk-T2QMKU3R.js} +80 -2
- package/chunks/{chunk-IKYJHJNF.js → chunk-T3O2B4XO.js} +3 -3
- package/chunks/{chunk-RF3EXIHJ.js → chunk-T4TXDL7G.js} +32 -21
- package/chunks/{chunk-J24WCGIN.js → chunk-TBBV36Y4.js} +4 -4
- package/chunks/{chunk-LKEJ26GS.js → chunk-TCIFAA7K.js} +16 -11
- package/chunks/{chunk-JXJFVC6E.js → chunk-TDL6LB4K.js} +46 -11
- package/chunks/{chunk-7ZCNENPP.js → chunk-TFRMVU6R.js} +1 -1
- package/chunks/{chunk-VULLI6WQ.js → chunk-TV64SXKD.js} +6 -6
- package/chunks/{chunk-FQK6JAFG.js → chunk-U3E3UQAA.js} +4 -4
- package/chunks/{chunk-LK7CHLVP.js → chunk-U4VTUMMK.js} +0 -60
- package/chunks/{chunk-ACY3A37B.js → chunk-UBEPNVDI.js} +23 -18
- package/chunks/{chunk-NL7LTRLR.js → chunk-UHUSJ6X7.js} +29 -68
- package/chunks/{chunk-ZOIFNCKL.js → chunk-UPUG4GXM.js} +3 -23
- package/chunks/{chunk-6GMVPFB2.js → chunk-UWMLWVCA.js} +19 -6
- package/chunks/{chunk-IKCX4CCL.js → chunk-VCPIZRYH.js} +118 -95
- package/chunks/{chunk-ZNAUOR2I.js → chunk-VWOOBLTY.js} +2 -2
- package/chunks/{chunk-YX324OPW.js → chunk-VYOXCEPJ.js} +1 -1
- package/chunks/{chunk-USTWD7QV.js → chunk-W4MIWP6M.js} +26 -16
- package/chunks/{chunk-HTR4WV6U.js → chunk-W4RQUHY3.js} +31 -1
- package/chunks/{chunk-DLWL3Z7A.js → chunk-WBSMNTSV.js} +3 -3
- package/chunks/{chunk-IO3IX5Q4.js → chunk-WUZ7H6DP.js} +1 -1
- package/chunks/{chunk-2JZBVYTU.js → chunk-WZRWHXFE.js} +1 -8
- package/chunks/{chunk-PHOF65IG.js → chunk-X5WNMMIA.js} +23553 -34321
- package/chunks/chunk-XBYYDKAZ.js +80 -0
- package/chunks/{chunk-COH43MRJ.js → chunk-XCGIMOLN.js} +27 -1
- package/chunks/{chunk-WCXCRJYB.js → chunk-XFZYFU3I.js} +1 -1
- package/chunks/{chunk-3QMGYBFN.js → chunk-XWWKIXVD.js} +1 -80
- package/chunks/{chunk-3SJ43L4W.js → chunk-XZC5VLBZ.js} +2 -0
- package/chunks/{chunk-UUUTRMI2.js → chunk-Y4IHBGBP.js} +1 -1
- package/chunks/{chunk-PR75REBZ.js → chunk-Y6AXW2OG.js} +12 -82
- package/chunks/{chunk-IPUUTYMV.js → chunk-YDLJGZHL.js} +1 -1
- package/chunks/{chunk-IJTOWOD7.js → chunk-YGF33UXG.js} +82 -8
- package/chunks/chunk-Z4X5MTRT.js +133 -0
- package/chunks/{chunk-UW5EOVUN.js → chunk-ZBVS26BY.js} +4 -4
- package/chunks/{chunk-ZD6UTE4A.js → chunk-ZHBO7WVX.js} +1 -1
- package/chunks/{chunk-HTO4JFDZ.js → chunk-ZPJWUGCS.js} +0 -1
- package/chunks/{chunk-KIM5GUMA.js → chunk-ZURDMIDR.js} +368 -156
- package/chunks/{computer-use-SOQ4E3VX.js → computer-use-ZTIDHMMA.js} +49 -50
- package/chunks/{config-utils-7V7GGIW6.js → config-utils-NYSXDMEQ.js} +4 -3
- package/chunks/contextCommand-2PIEU37Z.js +79 -0
- package/chunks/core-runtime-3XEYLQFK.js +133 -0
- package/chunks/{create-sub-session-QRJLW5BV.js → create-sub-session-R76FVXCI.js} +46 -47
- package/chunks/{create-sub-session-IWW2IZ2T.js → create-sub-session-SBYUMSSS.js} +3 -3
- package/chunks/{cron-create-YIID5XAW.js → cron-create-2QK6TCEC.js} +6 -6
- package/chunks/{cron-delete-ZVHYCEP2.js → cron-delete-FDCDFYMG.js} +5 -5
- package/chunks/{cron-list-XEGS463Q.js → cron-list-XN3WVBTP.js} +6 -6
- package/chunks/{daemon-YO6433NF.js → daemon-Q2AB5Z23.js} +356 -15
- package/chunks/daemon-status-provider-3XJI6CAL.js +89 -0
- package/chunks/daemon-trust-policy-ILUDTLHD.js +84 -0
- package/chunks/daemon-trust-policy-monitor-HS3PKKRO.js +171 -0
- package/chunks/{de-HGRCYDEJ.js → de-SY6O76BF.js} +6 -1
- package/chunks/deferred-core-runtime-X4QV662U.js +88 -0
- package/chunks/dist-BSTVRPMT.js +4227 -0
- package/chunks/{dist-46NQKLTW.js → dist-DOLYHMXE.js} +2 -2
- package/chunks/{dist-AIKFMUKK.js → dist-HVRQ2CFL.js} +271 -11
- package/chunks/{dist-WEAHOXDM.js → dist-IXQEQWRG.js} +2 -1
- package/chunks/{dist-BBLXMS3N.js → dist-SSU66DM4.js} +3 -3
- package/chunks/{dist-F6IBUDR4.js → dist-SV7Q3AWJ.js} +1 -1
- package/chunks/{dist-YFNEUWSE.js → dist-YGBBMK3Z.js} +1 -1
- package/chunks/earlyInputCapture-XKLZT7ZD.js +81 -0
- package/chunks/{edit-OBDSQURM.js → edit-HHGIOTQ2.js} +47 -48
- package/chunks/{en-MTWBNGDO.js → en-NBK3JKCE.js} +9 -1
- package/chunks/{enter-worktree-U6MRPQ2P.js → enter-worktree-ZN7PUQ46.js} +47 -48
- package/chunks/{enterPlanMode-BC5QUZZ2.js → enterPlanMode-EIFIDSIV.js} +47 -48
- package/chunks/{environment-W5UFC2CH.js → environment-XXQ75D2Q.js} +48 -49
- package/chunks/errors-4GMVU7CK.js +87 -0
- package/chunks/esm-K5FARBNI.js +5548 -0
- package/chunks/{exit-worktree-DGNYMECB.js → exit-worktree-GXMI4ATY.js} +47 -48
- package/chunks/exitPlanMode-34UVY7M6.js +72 -0
- package/chunks/{fast-path-JJZFJANL.js → fast-path-VPIVA7L6.js} +16 -6
- package/chunks/{fr-45RLL55O.js → fr-4KG5V7UT.js} +6 -1
- package/chunks/{gemini-QS36EBZV.js → gemini-4BWIK4WD.js} +102 -99
- package/chunks/{geminiContentGenerator-AG4KB6CV.js → geminiContentGenerator-3XVV5MSS.js} +40 -11
- package/chunks/{getMachineId-bsd-V7W3GODC.js → getMachineId-bsd-FG7IUY6U.js} +1 -1
- package/chunks/{getMachineId-darwin-TDO75DQP.js → getMachineId-darwin-GLCJI2RA.js} +1 -1
- package/chunks/{getMachineId-linux-TF43WQT2.js → getMachineId-linux-O6OPPAKO.js} +1 -1
- package/chunks/{getMachineId-unsupported-ZGUO3TXT.js → getMachineId-unsupported-S6CKYVGC.js} +1 -1
- package/chunks/{getMachineId-win-ECFYZZFQ.js → getMachineId-win-X5SRNEH7.js} +1 -1
- package/chunks/{glob-V7R3PSK3.js → glob-TZ2ABCJG.js} +47 -48
- package/chunks/{grep-QYPSK7OP.js → grep-BEF463NA.js} +49 -49
- package/chunks/handleAutoUpdate-L6ERF36Y.js +80 -0
- package/chunks/i18n-FMM5FDXR.js +96 -0
- package/chunks/{image-gen-Z3VPGKRC.js → image-gen-HHVLF7HS.js} +12 -12
- package/chunks/initializer-625TIAIO.js +85 -0
- package/chunks/installationInfo-6AM4I2Y3.js +79 -0
- package/chunks/{ja-B7DF7DFG.js → ja-F3GSQXMF.js} +6 -1
- package/chunks/{keychain-token-storage-MDTG3WRM.js → keychain-token-storage-72IYCAZV.js} +3 -3
- package/chunks/lib-RUF3WZA6.js +9 -0
- package/chunks/list-L2GA674Y.js +88 -0
- package/chunks/{list-agents-5KJJHR6I.js → list-agents-R6KDXQR3.js} +3 -3
- package/chunks/loadedSettingsAdapter-SPUTNKAV.js +82 -0
- package/chunks/{loggingContentGenerator-HS3S5H3Q.js → loggingContentGenerator-LKOF7XI7.js} +78 -113
- package/chunks/{loop-wakeup-FXKNNYSY.js → loop-wakeup-3IQKCYAH.js} +7 -7
- package/chunks/{ls-NTK6VOQJ.js → ls-DKZ37A7N.js} +5 -5
- package/chunks/{lsp-2JI24STP.js → lsp-QNWN7KN3.js} +3 -3
- package/chunks/{managed-npm-update-JYEMMXA3.js → managed-npm-update-ACQGGIN5.js} +47 -48
- package/chunks/mcp-SZLHKFJW.js +82 -0
- package/chunks/{monitor-R3ODH5U6.js → monitor-DF52UVHI.js} +47 -48
- package/chunks/nonInteractiveCli-5T7KYKLK.js +144 -0
- package/chunks/{notebook-edit-BNOK452R.js → notebook-edit-FCWS4XVN.js} +47 -48
- package/chunks/{openaiContentGenerator-WMCU3O2H.js → openaiContentGenerator-7LDK3DCJ.js} +26 -27
- package/chunks/pidfile-6ERW3DF4.js +85 -0
- package/chunks/process-registry-2CHQBXH5.js +157 -0
- package/chunks/{processUtils-RT7UNCC2.js → processUtils-COKZAMUP.js} +2 -2
- package/chunks/{pt-22Q3FP73.js → pt-EQ33KWEN.js} +6 -1
- package/chunks/{qwenContentGenerator-HHCRK4SX.js → qwenContentGenerator-TKWUMR7N.js} +52 -53
- package/chunks/{qwenOAuth2-OWLB5AKH.js → qwenOAuth2-7HMU47SF.js} +10 -10
- package/chunks/read-file-X6DRC574.js +29 -0
- package/chunks/{read-mcp-resource-4DKQWGHD.js → read-mcp-resource-GFTWYXMK.js} +4 -4
- package/chunks/{record-artifact-RQKFYO5B.js → record-artifact-XAMSFSW4.js} +3 -3
- package/chunks/resumeHistoryUtils-PFPM2GWM.js +90 -0
- package/chunks/ripGrep-OWV2IVJC.js +72 -0
- package/chunks/{ru-FZCNZHDC.js → ru-7OZAUKGG.js} +6 -1
- package/chunks/{run-qwen-serve-FU6HEM4J.js → run-qwen-serve-TSTCO4XE.js} +953 -249
- package/chunks/{runtime-XXRRTNP6.js → runtime-DAUPSUKI.js} +56 -56
- package/chunks/{scheduler-G2ZS2Z7E.js → scheduler-KMADMT26.js} +46 -47
- package/chunks/{sdk-exporters-grpc-AK3LGHNO.js → sdk-exporters-grpc-54L4LS5L.js} +4 -4
- package/chunks/{sdk-exporters-http-FYBSUCPD.js → sdk-exporters-http-WO556XNU.js} +7 -7
- package/chunks/{sdk-impl-GMVPB7NB.js → sdk-impl-LPAVACSF.js} +14 -14
- package/chunks/{send-message-Q6OOR6BR.js → send-message-SAWK4DZX.js} +6 -6
- package/chunks/serve-NNRWS6F4.js +88 -0
- package/chunks/{server-4UMH7OIZ.js → server-WEH7DVCH.js} +3691 -823
- package/chunks/{session-K3O3Q2SV.js → session-WXC56V2I.js} +98 -95
- package/chunks/{settings-CR2EWTBA.js → settings-DJDXFDZ3.js} +55 -56
- package/chunks/shell-JN5VRQXD.js +82 -0
- package/chunks/{skill-I3SDA4MB.js → skill-SGXPKJCS.js} +20 -21
- package/chunks/skill-settings-VJ5PDMZI.js +90 -0
- package/chunks/spawnChannel-ETMJW7YX.js +81 -0
- package/chunks/standalone-update-MK3Z7KBI.js +91 -0
- package/chunks/{startInteractiveUI-SLZGHRPH.js → startInteractiveUI-ZCGIXPGT.js} +724 -383
- package/chunks/{syntheticOutput-I3757IWH.js → syntheticOutput-355CB6CJ.js} +4 -4
- package/chunks/{task-create-N7WQSGYA.js → task-create-INGWNUG4.js} +10 -10
- package/chunks/{task-list-FOPULZEP.js → task-list-5XNNGTF4.js} +7 -7
- package/chunks/{task-stop-H6RHXFVQ.js → task-stop-4ROAOBXH.js} +3 -3
- package/chunks/{task-update-M57TFZJT.js → task-update-CRK5VWWZ.js} +10 -10
- package/chunks/{team-create-YJALH5D2.js → team-create-QQGAJG7P.js} +49 -50
- package/chunks/{team-delete-QE2UXJL7.js → team-delete-S2RCXA4P.js} +7 -7
- package/chunks/{team-plan-approval-34QFYKGN.js → team-plan-approval-RT7Q5R6O.js} +47 -48
- package/chunks/theme-manager-EEWIQJ7J.js +76 -0
- package/chunks/{todoWrite-VQ7FKOHL.js → todoWrite-7WM3VDMY.js} +7 -7
- package/chunks/{tool-search-NF7GB6LE.js → tool-search-Z3Z4AYKP.js} +19 -21
- package/chunks/total-session-admission-44JKRWQD.js +84 -0
- package/chunks/trustedFolders-X2JEIO57.js +94 -0
- package/chunks/{update-relaunch-WBUZJC5O.js → update-relaunch-VWNPYDIP.js} +5 -5
- package/chunks/updateCheck-KAQH67DV.js +91 -0
- package/chunks/useAutoAcceptIndicator-JH6BCF7S.js +92 -0
- package/chunks/{validateNonInterActiveAuth-3R223G3R.js → validateNonInterActiveAuth-GIUJ2UFS.js} +93 -90
- package/chunks/{version-HS7YSFHV.js → version-BGLYIJUY.js} +1 -1
- package/chunks/{web-fetch-NKCSG7ZE.js → web-fetch-OTDU4VQF.js} +19 -21
- package/chunks/{web-search-S62WAP4S.js → web-search-FP6SIHPR.js} +13 -13
- package/chunks/{workflow-QAGU5RU4.js → workflow-YCIVBYSB.js} +48 -49
- package/chunks/workspace-providers-status-S35YAIUS.js +85 -0
- package/chunks/{workspace-registration-store-24JMHDGF.js → workspace-registration-store-OTMS3H4C.js} +1 -1
- package/chunks/workspace-registry-O63R6IZ4.js +92 -0
- package/chunks/workspace-service-M6LLHKJ5.js +99 -0
- package/chunks/workspace-skills-status-C2V7BAIS.js +85 -0
- package/chunks/workspace-trust-reconciler-IBUPOUJN.js +345 -0
- package/chunks/write-file-3BZC3EAE.js +72 -0
- package/chunks/xterm-headless-NTYVIBT3.js +3475 -0
- package/chunks/{zh-LUIGBD55.js → zh-H3YDK5QW.js} +9 -1
- package/chunks/{zh-TW-F5KG2IYD.js → zh-TW-JYCP7XUA.js} +9 -1
- package/chunks/zoom-image-TZ6S2O57.js +351 -0
- package/cli.js +13 -13
- package/locales/ca.js +7 -2
- package/locales/de.js +7 -2
- package/locales/en.js +10 -2
- package/locales/fr.js +7 -2
- package/locales/ja.js +7 -2
- package/locales/pt.js +7 -2
- package/locales/ru.js +7 -2
- package/locales/zh-TW.js +10 -2
- package/locales/zh.js +10 -2
- package/package.json +5 -4
- package/web-shell/assets/{arc-DcbWnB9T.js → arc-75-Wdeo3.js} +1 -1
- package/web-shell/assets/{architectureDiagram-3BPJPVTR-kMMF5sud.js → architectureDiagram-3BPJPVTR-FKeXQbyP.js} +1 -1
- package/web-shell/assets/{blockDiagram-GPEHLZMM-Htl9vTJS.js → blockDiagram-GPEHLZMM-CY0vc-A3.js} +1 -1
- package/web-shell/assets/{c4Diagram-AAUBKEIU-BnZnm0mQ.js → c4Diagram-AAUBKEIU-CNP-A-8u.js} +1 -1
- package/web-shell/assets/channel-DPYMT76A.js +1 -0
- package/web-shell/assets/{chunk-2J33WTMH-DziB7kDG.js → chunk-2J33WTMH-GybS4Gii.js} +1 -1
- package/web-shell/assets/{chunk-4BX2VUAB-CmkD8daw.js → chunk-4BX2VUAB-02H91V8v.js} +1 -1
- package/web-shell/assets/{chunk-55IACEB6-CHAd9A_U.js → chunk-55IACEB6-D3M-2VT6.js} +1 -1
- package/web-shell/assets/{chunk-727SXJPM-Dqaam3fE.js → chunk-727SXJPM-CCu29u4H.js} +1 -1
- package/web-shell/assets/{chunk-AQP2D5EJ-D_-saBYM.js → chunk-AQP2D5EJ-CaFKWgrn.js} +1 -1
- package/web-shell/assets/{chunk-FMBD7UC4-B9r_veWD.js → chunk-FMBD7UC4-ZZpPqIwQ.js} +1 -1
- package/web-shell/assets/{chunk-ND2GUHAM-B3EaCSpL.js → chunk-ND2GUHAM-D22DqGs8.js} +1 -1
- package/web-shell/assets/{chunk-QZHKN3VN-CYq8x9mn.js → chunk-QZHKN3VN-Bu85S0fw.js} +1 -1
- package/web-shell/assets/classDiagram-4FO5ZUOK--JstsIgL.js +1 -0
- package/web-shell/assets/classDiagram-v2-Q7XG4LA2--JstsIgL.js +1 -0
- package/web-shell/assets/{cose-bilkent-S5V4N54A-D0ng4uiB.js → cose-bilkent-S5V4N54A-f1CK1Gwe.js} +1 -1
- package/web-shell/assets/{dagre-BM42HDAG-DCZollQv.js → dagre-BM42HDAG-D0Ow8F_n.js} +1 -1
- package/web-shell/assets/{diagram-2AECGRRQ-Dfk2pWS0.js → diagram-2AECGRRQ-BPrmTWp8.js} +1 -1
- package/web-shell/assets/{diagram-5GNKFQAL-kX38ltWR.js → diagram-5GNKFQAL-HccuFAzy.js} +1 -1
- package/web-shell/assets/{diagram-KO2AKTUF-CJz2vsXh.js → diagram-KO2AKTUF-BrS76mbA.js} +1 -1
- package/web-shell/assets/{diagram-LMA3HP47-BvMLZm_7.js → diagram-LMA3HP47-V7T9lU-5.js} +1 -1
- package/web-shell/assets/{diagram-OG6HWLK6-l7kfStkO.js → diagram-OG6HWLK6-DKidyJMR.js} +1 -1
- package/web-shell/assets/{erDiagram-TEJ5UH35-BSVa8GGT.js → erDiagram-TEJ5UH35-DBadZIkp.js} +1 -1
- package/web-shell/assets/{flowDiagram-I6XJVG4X-CoawKIXH.js → flowDiagram-I6XJVG4X-BymfqdNJ.js} +1 -1
- package/web-shell/assets/{ganttDiagram-6RSMTGT7-DFUDH0zF.js → ganttDiagram-6RSMTGT7-DOw340jf.js} +1 -1
- package/web-shell/assets/{gitGraphDiagram-PVQCEYII-Y2pvpT4e.js → gitGraphDiagram-PVQCEYII-_8EiD8sl.js} +1 -1
- package/web-shell/assets/{index-D0GX0zZf.js → index-CKIadvET.js} +1 -1
- package/web-shell/assets/index-D1eXNRHe.js +1389 -0
- package/web-shell/assets/index-DVLD4CQq.css +5 -0
- package/web-shell/assets/{infoDiagram-5YYISTIA-CU8_zLiX.js → infoDiagram-5YYISTIA-D61KYQBu.js} +1 -1
- package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-AVQiV0DU.js → ishikawaDiagram-YF4QCWOH-CsiXSpNx.js} +1 -1
- package/web-shell/assets/{journeyDiagram-JHISSGLW-DQ0VSKa3.js → journeyDiagram-JHISSGLW-Sdfionyh.js} +1 -1
- package/web-shell/assets/{kanban-definition-UN3LZRKU-BqnWqsE_.js → kanban-definition-UN3LZRKU-C3WI3Cnl.js} +1 -1
- package/web-shell/assets/{linear-BkoihsaA.js → linear-Dpigcc62.js} +1 -1
- package/web-shell/assets/{mermaid.core-5RJs-31j.js → mermaid.core-Ct97pqgW.js} +5 -5
- package/web-shell/assets/{mindmap-definition-RKZ34NQL-D33Bxnpd.js → mindmap-definition-RKZ34NQL-BzeaN0rB.js} +1 -1
- package/web-shell/assets/{pieDiagram-4H26LBE5-BuEAw3BH.js → pieDiagram-4H26LBE5-CvjgcbVD.js} +1 -1
- package/web-shell/assets/{quadrantDiagram-W4KKPZXB-Kox_usEq.js → quadrantDiagram-W4KKPZXB-BUzgTNdH.js} +1 -1
- package/web-shell/assets/{requirementDiagram-4Y6WPE33-CNjeUif0.js → requirementDiagram-4Y6WPE33-B7zKlgUQ.js} +1 -1
- package/web-shell/assets/{sankeyDiagram-5OEKKPKP-BCd2OL_U.js → sankeyDiagram-5OEKKPKP-Bb9CQgrT.js} +1 -1
- package/web-shell/assets/{sequenceDiagram-3UESZ5HK-CF2ZTsz0.js → sequenceDiagram-3UESZ5HK-DJ6V7itG.js} +1 -1
- package/web-shell/assets/{stateDiagram-AJRCARHV-qenSzHtm.js → stateDiagram-AJRCARHV-IImflERY.js} +1 -1
- package/web-shell/assets/stateDiagram-v2-BHNVJYJU-CYI_YoNR.js +1 -0
- package/web-shell/assets/{timeline-definition-PNZ67QCA-B5DyWdgs.js → timeline-definition-PNZ67QCA-6Q_uWHKh.js} +1 -1
- package/web-shell/assets/{vennDiagram-CIIHVFJN-DqP4I_o_.js → vennDiagram-CIIHVFJN-TmyKyjwv.js} +1 -1
- package/web-shell/assets/{wardley-L42UT6IY-CJe2e4mg.js → wardley-L42UT6IY-CRh9uiPv.js} +1 -1
- package/web-shell/assets/{wardleyDiagram-YWT4CUSO-BMDSw-Rr.js → wardleyDiagram-YWT4CUSO-59TKAW8w.js} +1 -1
- package/web-shell/assets/{xychartDiagram-2RQKCTM6-BTVZYkxD.js → xychartDiagram-2RQKCTM6-GCSUIK2L.js} +1 -1
- package/web-shell/index.html +2 -2
- package/chunks/MaxSizedBox-5DPPWPGT.js +0 -85
- package/chunks/agent-6ODUANDO.js +0 -81
- package/chunks/agent-headless-7BYQTMHW.js +0 -75
- package/chunks/bridge-ZUB64FAE.js +0 -90
- package/chunks/chunk-LEH5C7FV.js +0 -232
- package/chunks/chunk-SZRN75WQ.js +0 -29
- package/chunks/chunk-UGYMA4EI.js +0 -219
- package/chunks/chunk-Z2BC6UJ5.js +0 -8575
- package/chunks/contextCommand-JLHYA34Z.js +0 -80
- package/chunks/daemon-status-provider-2233Q37D.js +0 -89
- package/chunks/earlyInputCapture-A7NDU3PF.js +0 -82
- package/chunks/errors-M7CLORXH.js +0 -88
- package/chunks/exitPlanMode-GXTBWQAR.js +0 -403
- package/chunks/handleAutoUpdate-6DBEZYPV.js +0 -81
- package/chunks/i18n-VUJJZIMU.js +0 -97
- package/chunks/initializer-UWAK5U5O.js +0 -86
- package/chunks/installationInfo-6O2YAA52.js +0 -80
- package/chunks/list-GB4ESM3T.js +0 -89
- package/chunks/loadedSettingsAdapter-OT6JVQ7U.js +0 -83
- package/chunks/mcp-6DBDJPFU.js +0 -83
- package/chunks/nonInteractiveCli-MOYCYBBU.js +0 -141
- package/chunks/pidfile-TFRZZZIO.js +0 -86
- package/chunks/read-file-APMO3PSX.js +0 -31
- package/chunks/resumeHistoryUtils-6KRYEAWZ.js +0 -91
- package/chunks/ripGrep-BEJDEDXW.js +0 -73
- package/chunks/serve-7BSTXJ4T.js +0 -89
- package/chunks/shell-HH3PF3A2.js +0 -83
- package/chunks/spawnChannel-RWNDBXGA.js +0 -82
- package/chunks/src-GE4TTTML.js +0 -3147
- package/chunks/standalone-update-Q6WFRZZQ.js +0 -92
- package/chunks/theme-manager-SWRILQHI.js +0 -77
- package/chunks/total-session-admission-DLHHHLD3.js +0 -84
- package/chunks/trustedFolders-KHXHY6PY.js +0 -93
- package/chunks/updateCheck-RKL6M5XN.js +0 -92
- package/chunks/useAutoAcceptIndicator-CFQ5BUJL.js +0 -93
- package/chunks/workspace-providers-status-QSVZUETE.js +0 -86
- package/chunks/workspace-registry-UT4RBNBM.js +0 -88
- package/chunks/workspace-service-JFWRUS4V.js +0 -98
- package/chunks/workspace-skills-status-ZBBKJOI2.js +0 -85
- package/chunks/write-file-VHIXW5M7.js +0 -73
- package/web-shell/assets/channel-Cq7YKtfC.js +0 -1
- package/web-shell/assets/classDiagram-4FO5ZUOK-CQ9aC1Tg.js +0 -1
- package/web-shell/assets/classDiagram-v2-Q7XG4LA2-CQ9aC1Tg.js +0 -1
- package/web-shell/assets/index-D9haPt0X.css +0 -5
- package/web-shell/assets/index-ckX9Pq5k.js +0 -1230
- package/web-shell/assets/stateDiagram-v2-BHNVJYJU-B7W4zlCr.js +0 -1
- package/chunks/{chunk-TARRHLLG.js → chunk-QUGAUQGJ.js} +25 -25
- package/chunks/{chunk-U7ZFW55U.js → chunk-VOQXFAY5.js} +977 -977
- /package/chunks/{chunk-LXXMOYPL.js → chunk-VXZBKKQR.js} +0 -0
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
// Force strict mode and setup for ESM
|
|
2
|
+
"use strict";
|
|
3
|
+
import {
|
|
4
|
+
init_esbuild_shims
|
|
5
|
+
} from "./chunk-5O2XNYP6.js";
|
|
6
|
+
|
|
7
|
+
// packages/acp-bridge/src/mcpTimeouts.ts
|
|
8
|
+
init_esbuild_shims();
|
|
9
|
+
var MCP_RESTART_SERVER_DEADLINE_MS = 3e5;
|
|
10
|
+
|
|
11
|
+
export {
|
|
12
|
+
MCP_RESTART_SERVER_DEADLINE_MS
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* @license
|
|
16
|
+
* Copyright 2025 Qwen Team
|
|
17
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
18
|
+
*/
|
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
"use strict";
|
|
3
3
|
import {
|
|
4
4
|
isPrivateHost
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-LW3RFMG7.js";
|
|
6
6
|
import {
|
|
7
7
|
loadUndici
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-WZRWHXFE.js";
|
|
9
9
|
import {
|
|
10
10
|
getErrorMessage
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-UHUSJ6X7.js";
|
|
12
12
|
import {
|
|
13
13
|
init_esbuild_shims
|
|
14
14
|
} from "./chunk-5O2XNYP6.js";
|
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
"use strict";
|
|
3
3
|
import {
|
|
4
4
|
buildPermissionSettings
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-MR5EAQ5M.js";
|
|
6
6
|
import {
|
|
7
7
|
resolveVoiceStreamConfig,
|
|
8
8
|
resolveVoiceTranscriptionConfig,
|
|
9
9
|
transcribeVoiceAudio
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-CAPPWD3X.js";
|
|
11
11
|
import {
|
|
12
12
|
getVoiceSettingsScope,
|
|
13
13
|
isSelectableVoiceModel,
|
|
@@ -16,7 +16,7 @@ import {
|
|
|
16
16
|
readVoiceMode,
|
|
17
17
|
readVoiceModel,
|
|
18
18
|
resolveVoiceTransport
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-JTV5K7NH.js";
|
|
20
20
|
import {
|
|
21
21
|
WorkspacePermissionRulesSessionRequiredError,
|
|
22
22
|
WorkspaceSettingsPartialPersistError,
|
|
@@ -24,15 +24,8 @@ import {
|
|
|
24
24
|
WorkspaceSkillNotToggleableError
|
|
25
25
|
} from "./chunk-OA4JVLSA.js";
|
|
26
26
|
import {
|
|
27
|
-
MCP_RESTART_SERVER_DEADLINE_MS
|
|
28
|
-
|
|
29
|
-
McpServerRestartFailedError,
|
|
30
|
-
SessionNotFoundError,
|
|
31
|
-
WorkspaceInitConflictError,
|
|
32
|
-
WorkspaceInitPathEscapeError,
|
|
33
|
-
WorkspaceInitRaceError,
|
|
34
|
-
WorkspaceInitSymlinkError
|
|
35
|
-
} from "./chunk-UH3WSE5L.js";
|
|
27
|
+
MCP_RESTART_SERVER_DEADLINE_MS
|
|
28
|
+
} from "./chunk-OCPBI7J5.js";
|
|
36
29
|
import {
|
|
37
30
|
BridgeChannelClosedError,
|
|
38
31
|
SERVE_CONTROL_EXT_METHODS,
|
|
@@ -46,14 +39,26 @@ import {
|
|
|
46
39
|
createIdleWorkspaceProvidersStatus,
|
|
47
40
|
createIdleWorkspaceSkillsStatus,
|
|
48
41
|
mapDomainErrorToErrorKind
|
|
49
|
-
} from "./chunk-
|
|
42
|
+
} from "./chunk-FTD6DP4T.js";
|
|
43
|
+
import {
|
|
44
|
+
resolveSkillSettings
|
|
45
|
+
} from "./chunk-Z4X5MTRT.js";
|
|
46
|
+
import {
|
|
47
|
+
McpServerNotFoundError,
|
|
48
|
+
McpServerRestartFailedError,
|
|
49
|
+
SessionNotFoundError,
|
|
50
|
+
WorkspaceInitConflictError,
|
|
51
|
+
WorkspaceInitPathEscapeError,
|
|
52
|
+
WorkspaceInitRaceError,
|
|
53
|
+
WorkspaceInitSymlinkError
|
|
54
|
+
} from "./chunk-B4AJNNOL.js";
|
|
50
55
|
import {
|
|
51
56
|
getPersistScopeForModelSelection,
|
|
52
57
|
loadSettings
|
|
53
|
-
} from "./chunk-
|
|
58
|
+
} from "./chunk-EIF3FXTB.js";
|
|
54
59
|
import {
|
|
55
60
|
getWorkspaceTrustStatus
|
|
56
|
-
} from "./chunk-
|
|
61
|
+
} from "./chunk-Q43KPN7X.js";
|
|
57
62
|
import {
|
|
58
63
|
writeStderrLine,
|
|
59
64
|
writeStderrLineSafe
|
|
@@ -62,11 +67,11 @@ import {
|
|
|
62
67
|
ModelsConfig,
|
|
63
68
|
SkillManager,
|
|
64
69
|
require_yauzl
|
|
65
|
-
} from "./chunk-
|
|
70
|
+
} from "./chunk-X5WNMMIA.js";
|
|
66
71
|
import {
|
|
67
72
|
Storage,
|
|
68
73
|
createDebugLogger
|
|
69
|
-
} from "./chunk-
|
|
74
|
+
} from "./chunk-UHUSJ6X7.js";
|
|
70
75
|
import {
|
|
71
76
|
init_esbuild_shims
|
|
72
77
|
} from "./chunk-5O2XNYP6.js";
|
|
@@ -885,7 +890,7 @@ function skillBaseDir(workspace, scope) {
|
|
|
885
890
|
return scope === "workspace" ? path.join(workspace, ".qwen", "skills") : path.join(Storage.getGlobalQwenDir(), "skills");
|
|
886
891
|
}
|
|
887
892
|
__name(skillBaseDir, "skillBaseDir");
|
|
888
|
-
async function removeInstallArtifacts(baseDir, skillName) {
|
|
893
|
+
async function removeInstallArtifacts(baseDir, skillName, assertGenerationOpen) {
|
|
889
894
|
const workDir = path.dirname(baseDir);
|
|
890
895
|
const workPrefix = `.${path.basename(baseDir)}-${skillName}`;
|
|
891
896
|
const locations = [
|
|
@@ -903,17 +908,18 @@ async function removeInstallArtifacts(baseDir, skillName) {
|
|
|
903
908
|
await Promise.all(
|
|
904
909
|
entries.filter(
|
|
905
910
|
(entry) => prefixes.some((prefix) => entry.name.startsWith(prefix))
|
|
906
|
-
).map(
|
|
907
|
-
(
|
|
911
|
+
).map(async (entry) => {
|
|
912
|
+
assertGenerationOpen?.();
|
|
913
|
+
await fs.rm(path.join(directory, entry.name), {
|
|
908
914
|
recursive: true,
|
|
909
915
|
force: true
|
|
910
|
-
})
|
|
911
|
-
)
|
|
916
|
+
});
|
|
917
|
+
})
|
|
912
918
|
);
|
|
913
919
|
}
|
|
914
920
|
}
|
|
915
921
|
__name(removeInstallArtifacts, "removeInstallArtifacts");
|
|
916
|
-
async function ensureDirectoryWithoutSymlinks(directory) {
|
|
922
|
+
async function ensureDirectoryWithoutSymlinks(directory, assertGenerationOpen) {
|
|
917
923
|
const missing = [];
|
|
918
924
|
let current = directory;
|
|
919
925
|
while (true) {
|
|
@@ -931,15 +937,21 @@ async function ensureDirectoryWithoutSymlinks(directory) {
|
|
|
931
937
|
current = parent;
|
|
932
938
|
}
|
|
933
939
|
}
|
|
934
|
-
for (const entry of missing.reverse())
|
|
940
|
+
for (const entry of missing.reverse()) {
|
|
941
|
+
assertGenerationOpen?.();
|
|
942
|
+
await fs.mkdir(entry);
|
|
943
|
+
}
|
|
935
944
|
}
|
|
936
945
|
__name(ensureDirectoryWithoutSymlinks, "ensureDirectoryWithoutSymlinks");
|
|
937
|
-
async function installWorkspaceSkill(workspace, request, githubToken) {
|
|
946
|
+
async function installWorkspaceSkill(workspace, request, githubToken, assertGenerationOpen) {
|
|
947
|
+
assertGenerationOpen?.();
|
|
938
948
|
const skillName = validateWorkspaceSkillName(request.name);
|
|
939
949
|
const files = await filesFromSource(request.source, githubToken);
|
|
940
950
|
const baseDir = skillBaseDir(workspace, request.scope);
|
|
941
|
-
|
|
942
|
-
await
|
|
951
|
+
assertGenerationOpen?.();
|
|
952
|
+
await ensureDirectoryWithoutSymlinks(baseDir, assertGenerationOpen);
|
|
953
|
+
assertGenerationOpen?.();
|
|
954
|
+
await removeInstallArtifacts(baseDir, skillName, assertGenerationOpen);
|
|
943
955
|
const destination = path.join(baseDir, skillName);
|
|
944
956
|
const existing = await fs.lstat(destination).catch(() => void 0);
|
|
945
957
|
if (existing?.isSymbolicLink() || existing && !existing.isDirectory()) {
|
|
@@ -947,15 +959,19 @@ async function installWorkspaceSkill(workspace, request, githubToken) {
|
|
|
947
959
|
}
|
|
948
960
|
const workDir = path.dirname(baseDir);
|
|
949
961
|
const workPrefix = `.${path.basename(baseDir)}-${skillName}`;
|
|
962
|
+
assertGenerationOpen?.();
|
|
950
963
|
const staging = await fs.mkdtemp(
|
|
951
964
|
path.join(workDir, `${workPrefix}.installing-`)
|
|
952
965
|
);
|
|
953
966
|
const backup = path.join(workDir, `${workPrefix}.backup-${Date.now()}`);
|
|
954
967
|
let movedExisting = false;
|
|
968
|
+
let committedStaging = false;
|
|
955
969
|
try {
|
|
956
970
|
for (const file of files) {
|
|
957
971
|
const target = path.join(staging, ...file.relativePath.split("/"));
|
|
972
|
+
assertGenerationOpen?.();
|
|
958
973
|
await fs.mkdir(path.dirname(target), { recursive: true });
|
|
974
|
+
assertGenerationOpen?.();
|
|
959
975
|
await fs.writeFile(target, file.content);
|
|
960
976
|
}
|
|
961
977
|
const skillFile = path.join(staging, "SKILL.md");
|
|
@@ -979,12 +995,19 @@ async function installWorkspaceSkill(workspace, request, githubToken) {
|
|
|
979
995
|
);
|
|
980
996
|
}
|
|
981
997
|
if (existing) {
|
|
998
|
+
assertGenerationOpen?.();
|
|
982
999
|
await fs.rename(destination, backup);
|
|
983
1000
|
movedExisting = true;
|
|
984
1001
|
}
|
|
1002
|
+
assertGenerationOpen?.();
|
|
985
1003
|
await fs.rename(staging, destination);
|
|
1004
|
+
committedStaging = true;
|
|
1005
|
+
assertGenerationOpen?.();
|
|
986
1006
|
} catch (error) {
|
|
987
|
-
await fs.rm(
|
|
1007
|
+
await fs.rm(committedStaging ? destination : staging, {
|
|
1008
|
+
recursive: true,
|
|
1009
|
+
force: true
|
|
1010
|
+
}).catch(() => void 0);
|
|
988
1011
|
if (movedExisting) {
|
|
989
1012
|
await fs.rename(backup, destination).catch(() => void 0);
|
|
990
1013
|
}
|
|
@@ -1000,7 +1023,8 @@ async function installWorkspaceSkill(workspace, request, githubToken) {
|
|
|
1000
1023
|
};
|
|
1001
1024
|
}
|
|
1002
1025
|
__name(installWorkspaceSkill, "installWorkspaceSkill");
|
|
1003
|
-
async function deleteWorkspaceSkill(workspace, scope, skillNameInput, installedPath) {
|
|
1026
|
+
async function deleteWorkspaceSkill(workspace, scope, skillNameInput, installedPath, assertGenerationOpen) {
|
|
1027
|
+
assertGenerationOpen?.();
|
|
1004
1028
|
const skillName = validateWorkspaceSkillName(skillNameInput);
|
|
1005
1029
|
const skillDir = path.resolve(path.dirname(installedPath));
|
|
1006
1030
|
const skillFile = path.resolve(installedPath);
|
|
@@ -1036,6 +1060,7 @@ async function deleteWorkspaceSkill(workspace, scope, skillNameInput, installedP
|
|
|
1036
1060
|
"Skill name does not match its installed directory"
|
|
1037
1061
|
);
|
|
1038
1062
|
}
|
|
1063
|
+
assertGenerationOpen?.();
|
|
1039
1064
|
await fs.rm(skillDir, { recursive: true, force: true });
|
|
1040
1065
|
return { skillName, scope, deleted: true };
|
|
1041
1066
|
}
|
|
@@ -1098,6 +1123,8 @@ __name(withTimeout, "withTimeout");
|
|
|
1098
1123
|
function createDaemonWorkspaceService(deps) {
|
|
1099
1124
|
const {
|
|
1100
1125
|
boundWorkspace,
|
|
1126
|
+
isWorkspaceTrusted,
|
|
1127
|
+
assertGenerationOpen,
|
|
1101
1128
|
contextFilename,
|
|
1102
1129
|
statusProvider,
|
|
1103
1130
|
workspaceProvidersStatusProvider,
|
|
@@ -1116,6 +1143,15 @@ function createDaemonWorkspaceService(deps) {
|
|
|
1116
1143
|
refreshExtensionsForAllSessions: refreshExtensionsForAllSessionsOnBridge,
|
|
1117
1144
|
publishWorkspaceEvent
|
|
1118
1145
|
} = deps;
|
|
1146
|
+
const loadBoundSettings = /* @__PURE__ */ __name((skipLoadEnvironment = false) => {
|
|
1147
|
+
const workspaceTrusted = isWorkspaceTrusted();
|
|
1148
|
+
return loadSettings(boundWorkspace, {
|
|
1149
|
+
skipLoadEnvironment: skipLoadEnvironment || !workspaceTrusted,
|
|
1150
|
+
skipWorkspaceSettings: !workspaceTrusted,
|
|
1151
|
+
workspaceTrusted
|
|
1152
|
+
});
|
|
1153
|
+
}, "loadBoundSettings");
|
|
1154
|
+
const assertActiveGeneration = /* @__PURE__ */ __name(() => assertGenerationOpen?.(), "assertActiveGeneration");
|
|
1119
1155
|
let lastWorkspaceSkillsStatus;
|
|
1120
1156
|
let inFlightAcpPreheat;
|
|
1121
1157
|
const getWorkspaceSkillsStatus = /* @__PURE__ */ __name(async () => {
|
|
@@ -1188,6 +1224,7 @@ function createDaemonWorkspaceService(deps) {
|
|
|
1188
1224
|
);
|
|
1189
1225
|
},
|
|
1190
1226
|
async preheatAcpChild(_ctx, opts) {
|
|
1227
|
+
assertActiveGeneration();
|
|
1191
1228
|
const startedAt = performance.now();
|
|
1192
1229
|
const channelLive = /* @__PURE__ */ __name(() => isChannelLive?.() ?? false, "channelLive");
|
|
1193
1230
|
const finish = /* @__PURE__ */ __name((result) => ({
|
|
@@ -1346,24 +1383,22 @@ function createDaemonWorkspaceService(deps) {
|
|
|
1346
1383
|
},
|
|
1347
1384
|
async getWorkspaceTrustStatus(_ctx) {
|
|
1348
1385
|
return getWorkspaceTrustStatus(
|
|
1349
|
-
|
|
1386
|
+
loadBoundSettings(true).merged,
|
|
1350
1387
|
boundWorkspace
|
|
1351
1388
|
);
|
|
1352
1389
|
},
|
|
1353
1390
|
async getWorkspacePermissionsStatus(_ctx) {
|
|
1354
|
-
return buildPermissionSettings(
|
|
1391
|
+
return buildPermissionSettings(loadBoundSettings());
|
|
1355
1392
|
},
|
|
1356
1393
|
async getWorkspaceVoiceStatus(_ctx) {
|
|
1357
1394
|
return buildWorkspaceVoiceStatus(
|
|
1358
1395
|
boundWorkspace,
|
|
1359
|
-
|
|
1360
|
-
boundWorkspace,
|
|
1361
|
-
voiceEnv ? { skipLoadEnvironment: true } : true
|
|
1362
|
-
)
|
|
1396
|
+
loadBoundSettings(Boolean(voiceEnv))
|
|
1363
1397
|
);
|
|
1364
1398
|
},
|
|
1365
1399
|
// -- Mutations --
|
|
1366
1400
|
async requestWorkspaceTrustChange(ctx, request) {
|
|
1401
|
+
assertActiveGeneration();
|
|
1367
1402
|
publishWorkspaceEvent({
|
|
1368
1403
|
type: "trust_change_requested",
|
|
1369
1404
|
data: {
|
|
@@ -1380,6 +1415,7 @@ function createDaemonWorkspaceService(deps) {
|
|
|
1380
1415
|
};
|
|
1381
1416
|
},
|
|
1382
1417
|
async setWorkspacePermissionRules(ctx, request) {
|
|
1418
|
+
assertActiveGeneration();
|
|
1383
1419
|
const key = `permissions.${request.ruleType}`;
|
|
1384
1420
|
try {
|
|
1385
1421
|
const result = await invokeWorkspaceCommand(
|
|
@@ -1391,6 +1427,7 @@ function createDaemonWorkspaceService(deps) {
|
|
|
1391
1427
|
rules: request.rules
|
|
1392
1428
|
}
|
|
1393
1429
|
);
|
|
1430
|
+
assertActiveGeneration();
|
|
1394
1431
|
publishWorkspaceEvent({
|
|
1395
1432
|
type: "settings_changed",
|
|
1396
1433
|
data: { key, value: request.rules, scope: request.scope },
|
|
@@ -1405,6 +1442,7 @@ function createDaemonWorkspaceService(deps) {
|
|
|
1405
1442
|
}
|
|
1406
1443
|
},
|
|
1407
1444
|
async setWorkspaceVoiceSettings(ctx, request) {
|
|
1445
|
+
assertActiveGeneration();
|
|
1408
1446
|
if (!persistSettings && !persistSetting) {
|
|
1409
1447
|
throw new WorkspaceVoiceError(
|
|
1410
1448
|
501,
|
|
@@ -1412,14 +1450,10 @@ function createDaemonWorkspaceService(deps) {
|
|
|
1412
1450
|
"Workspace voice settings persistence is not available"
|
|
1413
1451
|
);
|
|
1414
1452
|
}
|
|
1415
|
-
const settings =
|
|
1416
|
-
boundWorkspace,
|
|
1417
|
-
voiceEnv ? { skipLoadEnvironment: true } : true
|
|
1418
|
-
);
|
|
1453
|
+
const settings = loadBoundSettings(Boolean(voiceEnv));
|
|
1419
1454
|
validateWorkspaceVoiceState(settings, request, { env: voiceEnv });
|
|
1420
|
-
const workspaceTrusted = getWorkspaceTrustStatus(settings.merged, boundWorkspace).effective.state === "trusted";
|
|
1421
1455
|
const writes = buildWorkspaceVoiceSettingsWrites(settings, request, {
|
|
1422
|
-
workspaceTrusted,
|
|
1456
|
+
workspaceTrusted: isWorkspaceTrusted(),
|
|
1423
1457
|
...voiceSettingsScope ? { scopeOverride: voiceSettingsScope } : {}
|
|
1424
1458
|
});
|
|
1425
1459
|
const publishWrite = /* @__PURE__ */ __name((write) => {
|
|
@@ -1435,15 +1469,17 @@ function createDaemonWorkspaceService(deps) {
|
|
|
1435
1469
|
}, "publishWrite");
|
|
1436
1470
|
if (persistSettings) {
|
|
1437
1471
|
try {
|
|
1438
|
-
await persistSettings(boundWorkspace, writes);
|
|
1472
|
+
await persistSettings(boundWorkspace, writes, assertGenerationOpen);
|
|
1439
1473
|
} catch (err) {
|
|
1440
1474
|
if (err instanceof WorkspaceSettingsPartialPersistError) {
|
|
1475
|
+
assertActiveGeneration();
|
|
1441
1476
|
for (const write of err.committedWrites) {
|
|
1442
1477
|
publishWrite(write);
|
|
1443
1478
|
}
|
|
1444
1479
|
}
|
|
1445
1480
|
throw err;
|
|
1446
1481
|
}
|
|
1482
|
+
assertActiveGeneration();
|
|
1447
1483
|
for (const write of writes) {
|
|
1448
1484
|
publishWrite(write);
|
|
1449
1485
|
}
|
|
@@ -1455,9 +1491,11 @@ function createDaemonWorkspaceService(deps) {
|
|
|
1455
1491
|
boundWorkspace,
|
|
1456
1492
|
write.scope,
|
|
1457
1493
|
write.key,
|
|
1458
|
-
write.value
|
|
1494
|
+
write.value,
|
|
1495
|
+
assertGenerationOpen
|
|
1459
1496
|
);
|
|
1460
1497
|
} catch (err) {
|
|
1498
|
+
assertActiveGeneration();
|
|
1461
1499
|
writeStderrLine(
|
|
1462
1500
|
`qwen serve: workspace voice partial persist error (workspace=${boundWorkspace}, committed=${committed.length}/${writes.length}, failedKey=${write.key}, failedScope=${voiceSettingsScopeToWire(write.scope)}): ${err instanceof Error ? err.message : String(err)}`
|
|
1463
1501
|
);
|
|
@@ -1470,22 +1508,28 @@ function createDaemonWorkspaceService(deps) {
|
|
|
1470
1508
|
err
|
|
1471
1509
|
);
|
|
1472
1510
|
}
|
|
1511
|
+
assertActiveGeneration();
|
|
1473
1512
|
committed.push(write);
|
|
1474
1513
|
}
|
|
1514
|
+
assertActiveGeneration();
|
|
1475
1515
|
for (const write of committed) {
|
|
1476
1516
|
publishWrite(write);
|
|
1477
1517
|
}
|
|
1478
1518
|
}
|
|
1479
1519
|
return buildWorkspaceVoiceStatus(
|
|
1480
1520
|
boundWorkspace,
|
|
1481
|
-
|
|
1482
|
-
boundWorkspace,
|
|
1483
|
-
voiceEnv ? { skipLoadEnvironment: true } : true
|
|
1484
|
-
)
|
|
1521
|
+
loadBoundSettings(Boolean(voiceEnv))
|
|
1485
1522
|
);
|
|
1486
1523
|
},
|
|
1487
1524
|
async setWorkspaceToolEnabled(ctx, toolName, enabled) {
|
|
1488
|
-
|
|
1525
|
+
assertActiveGeneration();
|
|
1526
|
+
await persistDisabledTools(
|
|
1527
|
+
boundWorkspace,
|
|
1528
|
+
toolName,
|
|
1529
|
+
enabled,
|
|
1530
|
+
assertGenerationOpen
|
|
1531
|
+
);
|
|
1532
|
+
assertActiveGeneration();
|
|
1489
1533
|
publishWorkspaceEvent({
|
|
1490
1534
|
type: "tool_toggled",
|
|
1491
1535
|
data: { toolName, enabled },
|
|
@@ -1494,6 +1538,7 @@ function createDaemonWorkspaceService(deps) {
|
|
|
1494
1538
|
return { toolName, enabled };
|
|
1495
1539
|
},
|
|
1496
1540
|
async setWorkspaceSkillEnabled(ctx, requestedSkillName, enabled) {
|
|
1541
|
+
assertActiveGeneration();
|
|
1497
1542
|
const normalizedName = requestedSkillName.trim().toLowerCase();
|
|
1498
1543
|
const status = await getWorkspaceSkillsStatus();
|
|
1499
1544
|
const skill = status.skills.find(
|
|
@@ -1506,11 +1551,11 @@ function createDaemonWorkspaceService(deps) {
|
|
|
1506
1551
|
"not_user_invocable"
|
|
1507
1552
|
);
|
|
1508
1553
|
}
|
|
1509
|
-
const
|
|
1510
|
-
const
|
|
1511
|
-
|
|
1554
|
+
const needsLegacyInactiveCheck = skill.level === "extension" && skill.status === "disabled" && skill.disabledReason === void 0;
|
|
1555
|
+
const disabledBySettings = needsLegacyInactiveCheck && resolveSkillSettings(loadBoundSettings(true)).disabledNames.has(
|
|
1556
|
+
normalizedName
|
|
1512
1557
|
);
|
|
1513
|
-
if (skill.level === "extension" && skill.status === "disabled" && !
|
|
1558
|
+
if (skill.level === "extension" && skill.status === "disabled" && (skill.disabledReason === "inactive_extension" || skill.disabledReason === void 0 && !disabledBySettings)) {
|
|
1514
1559
|
throw new WorkspaceSkillNotToggleableError(
|
|
1515
1560
|
skill.name,
|
|
1516
1561
|
"inactive_extension"
|
|
@@ -1519,8 +1564,10 @@ function createDaemonWorkspaceService(deps) {
|
|
|
1519
1564
|
const persisted = await persistDisabledSkills(
|
|
1520
1565
|
boundWorkspace,
|
|
1521
1566
|
skill.name,
|
|
1522
|
-
enabled
|
|
1567
|
+
enabled,
|
|
1568
|
+
assertGenerationOpen
|
|
1523
1569
|
);
|
|
1570
|
+
assertActiveGeneration();
|
|
1524
1571
|
const channelLive = isChannelLive?.() ?? false;
|
|
1525
1572
|
let activation = channelLive ? "applied" : "deferred";
|
|
1526
1573
|
let sessionsRefreshed = 0;
|
|
@@ -1534,6 +1581,7 @@ function createDaemonWorkspaceService(deps) {
|
|
|
1534
1581
|
SERVE_CONTROL_EXT_METHODS.workspaceSkillsRefresh,
|
|
1535
1582
|
{ cwd: boundWorkspace }
|
|
1536
1583
|
);
|
|
1584
|
+
assertActiveGeneration();
|
|
1537
1585
|
sessionsRefreshed = refreshed.sessionsRefreshed;
|
|
1538
1586
|
sessionsFailed = refreshed.sessionsFailed;
|
|
1539
1587
|
if (sessionsFailed > 0) activation = "partial";
|
|
@@ -1549,15 +1597,24 @@ function createDaemonWorkspaceService(deps) {
|
|
|
1549
1597
|
}
|
|
1550
1598
|
}
|
|
1551
1599
|
}
|
|
1552
|
-
|
|
1553
|
-
|
|
1554
|
-
|
|
1600
|
+
assertActiveGeneration();
|
|
1601
|
+
const settingsChanges = persisted.settingsChanges ?? [
|
|
1602
|
+
{
|
|
1555
1603
|
key: "skills.disabled",
|
|
1556
|
-
value: persisted.disabled.length > 0 ? persisted.disabled : void 0
|
|
1557
|
-
|
|
1558
|
-
|
|
1559
|
-
|
|
1560
|
-
|
|
1604
|
+
value: persisted.disabled.length > 0 ? persisted.disabled : void 0
|
|
1605
|
+
}
|
|
1606
|
+
];
|
|
1607
|
+
for (const change of settingsChanges) {
|
|
1608
|
+
publishWorkspaceEvent({
|
|
1609
|
+
type: "settings_changed",
|
|
1610
|
+
data: {
|
|
1611
|
+
key: change.key,
|
|
1612
|
+
value: change.value,
|
|
1613
|
+
scope: "workspace"
|
|
1614
|
+
},
|
|
1615
|
+
originatorClientId: ctx.originatorClientId
|
|
1616
|
+
});
|
|
1617
|
+
}
|
|
1561
1618
|
}
|
|
1562
1619
|
return {
|
|
1563
1620
|
skillName: skill.name,
|
|
@@ -1569,15 +1626,20 @@ function createDaemonWorkspaceService(deps) {
|
|
|
1569
1626
|
};
|
|
1570
1627
|
},
|
|
1571
1628
|
async installWorkspaceSkill(_ctx, request) {
|
|
1629
|
+
assertActiveGeneration();
|
|
1572
1630
|
const result = await installWorkspaceSkill(
|
|
1573
1631
|
boundWorkspace,
|
|
1574
1632
|
request,
|
|
1575
|
-
skillInstallEnv?.["GH_TOKEN"] ?? skillInstallEnv?.["GITHUB_TOKEN"]
|
|
1633
|
+
skillInstallEnv?.["GH_TOKEN"] ?? skillInstallEnv?.["GITHUB_TOKEN"],
|
|
1634
|
+
assertGenerationOpen
|
|
1576
1635
|
);
|
|
1636
|
+
assertActiveGeneration();
|
|
1577
1637
|
await refreshWorkspaceSkillsAfterMutation();
|
|
1638
|
+
assertActiveGeneration();
|
|
1578
1639
|
return result;
|
|
1579
1640
|
},
|
|
1580
1641
|
async deleteWorkspaceSkill(_ctx, requestedSkillName, scope) {
|
|
1642
|
+
assertActiveGeneration();
|
|
1581
1643
|
const normalizedName = requestedSkillName.trim().toLowerCase();
|
|
1582
1644
|
const status = await getWorkspaceSkillsStatus();
|
|
1583
1645
|
const skill = status.skills.find(
|
|
@@ -1596,12 +1658,16 @@ function createDaemonWorkspaceService(deps) {
|
|
|
1596
1658
|
boundWorkspace,
|
|
1597
1659
|
scope,
|
|
1598
1660
|
skill.name,
|
|
1599
|
-
skill.installedPath
|
|
1661
|
+
skill.installedPath,
|
|
1662
|
+
assertGenerationOpen
|
|
1600
1663
|
);
|
|
1664
|
+
assertActiveGeneration();
|
|
1601
1665
|
await refreshWorkspaceSkillsAfterMutation();
|
|
1666
|
+
assertActiveGeneration();
|
|
1602
1667
|
return result;
|
|
1603
1668
|
},
|
|
1604
1669
|
async initWorkspace(ctx, opts) {
|
|
1670
|
+
assertActiveGeneration();
|
|
1605
1671
|
const filename = contextFilename;
|
|
1606
1672
|
const target = path2.resolve(boundWorkspace, filename);
|
|
1607
1673
|
const withinWorkspace = target === boundWorkspace || target.startsWith(boundWorkspace + path2.sep);
|
|
@@ -1661,6 +1727,7 @@ function createDaemonWorkspaceService(deps) {
|
|
|
1661
1727
|
if (action === "created") {
|
|
1662
1728
|
let fh;
|
|
1663
1729
|
try {
|
|
1730
|
+
assertActiveGeneration();
|
|
1664
1731
|
fh = await fs2.open(target, "wx");
|
|
1665
1732
|
} catch (err) {
|
|
1666
1733
|
const code = err?.code;
|
|
@@ -1675,6 +1742,7 @@ function createDaemonWorkspaceService(deps) {
|
|
|
1675
1742
|
}
|
|
1676
1743
|
try {
|
|
1677
1744
|
await verifyParentPostOpen(target, wsCanonical, fh);
|
|
1745
|
+
assertActiveGeneration();
|
|
1678
1746
|
await fh.writeFile("", "utf8");
|
|
1679
1747
|
} finally {
|
|
1680
1748
|
await fh.close();
|
|
@@ -1682,6 +1750,7 @@ function createDaemonWorkspaceService(deps) {
|
|
|
1682
1750
|
} else if (action === "overwrote") {
|
|
1683
1751
|
let overwriteFh;
|
|
1684
1752
|
try {
|
|
1753
|
+
assertActiveGeneration();
|
|
1685
1754
|
overwriteFh = await fs2.open(
|
|
1686
1755
|
target,
|
|
1687
1756
|
fsConstants.O_WRONLY | (fsConstants.O_NOFOLLOW ?? 0)
|
|
@@ -1706,11 +1775,13 @@ function createDaemonWorkspaceService(deps) {
|
|
|
1706
1775
|
}
|
|
1707
1776
|
try {
|
|
1708
1777
|
await verifyParentPostOpen(target, wsCanonical, overwriteFh);
|
|
1778
|
+
assertActiveGeneration();
|
|
1709
1779
|
await overwriteFh.truncate(0);
|
|
1710
1780
|
} finally {
|
|
1711
1781
|
await overwriteFh.close();
|
|
1712
1782
|
}
|
|
1713
1783
|
}
|
|
1784
|
+
assertActiveGeneration();
|
|
1714
1785
|
publishWorkspaceEvent({
|
|
1715
1786
|
type: "workspace_initialized",
|
|
1716
1787
|
data: { path: target, action },
|
|
@@ -1719,6 +1790,7 @@ function createDaemonWorkspaceService(deps) {
|
|
|
1719
1790
|
return { path: target, action };
|
|
1720
1791
|
},
|
|
1721
1792
|
async restartMcpServer(ctx, serverName, opts) {
|
|
1793
|
+
assertActiveGeneration();
|
|
1722
1794
|
const params = { serverName };
|
|
1723
1795
|
if (opts?.entryIndex !== void 0) {
|
|
1724
1796
|
params["entryIndex"] = opts.entryIndex;
|
|
@@ -1748,6 +1820,7 @@ function createDaemonWorkspaceService(deps) {
|
|
|
1748
1820
|
}
|
|
1749
1821
|
throw err;
|
|
1750
1822
|
}
|
|
1823
|
+
assertActiveGeneration();
|
|
1751
1824
|
if ("entries" in result) {
|
|
1752
1825
|
const entries = Array.isArray(result.entries) ? result.entries : [];
|
|
1753
1826
|
if (!Array.isArray(result.entries)) {
|
|
@@ -1807,15 +1880,17 @@ function createDaemonWorkspaceService(deps) {
|
|
|
1807
1880
|
return result;
|
|
1808
1881
|
},
|
|
1809
1882
|
async reload(ctx) {
|
|
1883
|
+
assertActiveGeneration();
|
|
1810
1884
|
if (deps.reloadDaemonEnv) {
|
|
1811
1885
|
try {
|
|
1812
|
-
await deps.reloadDaemonEnv(boundWorkspace);
|
|
1886
|
+
await deps.reloadDaemonEnv(boundWorkspace, assertGenerationOpen);
|
|
1813
1887
|
} catch (err) {
|
|
1814
1888
|
writeStderrLine(
|
|
1815
1889
|
`qwen serve: daemon reload failed: ${err instanceof Error ? err.message : String(err)}`
|
|
1816
1890
|
);
|
|
1817
1891
|
}
|
|
1818
1892
|
}
|
|
1893
|
+
assertActiveGeneration();
|
|
1819
1894
|
let childReloaded = false;
|
|
1820
1895
|
let env = {
|
|
1821
1896
|
updatedKeys: [],
|
|
@@ -1844,6 +1919,7 @@ function createDaemonWorkspaceService(deps) {
|
|
|
1844
1919
|
writeStderrLine(`qwen serve: reload failed: ${childError}`);
|
|
1845
1920
|
}
|
|
1846
1921
|
}
|
|
1922
|
+
assertActiveGeneration();
|
|
1847
1923
|
publishWorkspaceEvent({
|
|
1848
1924
|
type: "settings_reloaded",
|
|
1849
1925
|
data: {
|
|
@@ -1869,6 +1945,7 @@ function createDaemonWorkspaceService(deps) {
|
|
|
1869
1945
|
lastWorkspaceSkillsStatus = void 0;
|
|
1870
1946
|
},
|
|
1871
1947
|
async refreshExtensionsForAllSessions() {
|
|
1948
|
+
assertActiveGeneration();
|
|
1872
1949
|
try {
|
|
1873
1950
|
if (!refreshExtensionsForAllSessionsOnBridge) {
|
|
1874
1951
|
throw new Error("refreshExtensionsForAllSessions is not wired");
|
|
@@ -2,20 +2,20 @@
|
|
|
2
2
|
"use strict";
|
|
3
3
|
import {
|
|
4
4
|
performStandaloneUpdate
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-7DXQIJID.js";
|
|
6
6
|
import {
|
|
7
7
|
updateEventEmitter
|
|
8
8
|
} from "./chunk-YAF2MQZ6.js";
|
|
9
|
+
import {
|
|
10
|
+
t
|
|
11
|
+
} from "./chunk-TCIFAA7K.js";
|
|
9
12
|
import {
|
|
10
13
|
getInstallationInfo,
|
|
11
14
|
resolveUpdateCommand
|
|
12
|
-
} from "./chunk-
|
|
13
|
-
import {
|
|
14
|
-
t
|
|
15
|
-
} from "./chunk-LKEJ26GS.js";
|
|
15
|
+
} from "./chunk-VWOOBLTY.js";
|
|
16
16
|
import {
|
|
17
17
|
createDebugLogger
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-UHUSJ6X7.js";
|
|
19
19
|
import {
|
|
20
20
|
init_esbuild_shims
|
|
21
21
|
} from "./chunk-5O2XNYP6.js";
|