@qwen-code/qwen-code 0.21.1 → 0.21.2-nightly.20260801.bc382c3ff
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundled/qc-helper/docs/configuration/settings.md +9 -7
- package/bundled/qc-helper/docs/features/channels/_meta.ts +1 -0
- package/bundled/qc-helper/docs/features/channels/github.md +49 -10
- package/bundled/qc-helper/docs/features/channels/gitlab.md +177 -0
- package/bundled/qc-helper/docs/features/code-review.md +20 -0
- package/bundled/qc-helper/docs/features/commands.md +1 -0
- package/bundled/qc-helper/docs/features/hooks.md +135 -18
- package/bundled/qc-helper/docs/features/memory.md +27 -0
- package/bundled/qc-helper/docs/features/skills.md +14 -0
- package/bundled/qc-helper/docs/features/sub-agents.md +55 -8
- package/bundled/qc-helper/docs/features/tool-use-summaries.md +7 -7
- package/bundled/qc-helper/docs/qwen-serve.md +28 -6
- package/bundled/qc-helper/docs/reference/keyboard-shortcuts.md +2 -2
- package/bundled/review/SKILL.md +1 -1
- package/chunks/{MaxSizedBox-VI3ROJJA.js → MaxSizedBox-CDHTDITS.js} +45 -40
- package/chunks/{StandaloneSessionPicker-LYXKD2EV.js → StandaloneSessionPicker-L63HUAHP.js} +65 -60
- package/chunks/{acp-startup-profiler-DFVPFQ6C.js → acp-startup-profiler-3RICG2YW.js} +2 -2
- package/chunks/{acpAgent-WN5SRDQO.js → acpAgent-6WVVT2P3.js} +962 -599
- package/chunks/{agent-K6ECSM64.js → agent-KDM4CBOU.js} +40 -35
- package/chunks/agent-headless-AS7K2K57.js +79 -0
- package/chunks/{anthropicContentGenerator-V2QOGVYD.js → anthropicContentGenerator-WCBYB6JG.js} +337 -27
- package/chunks/{artifact-tool-6K6U7XYJ.js → artifact-tool-ANV4CFCR.js} +2 -2
- package/chunks/{askUserQuestion-GD2IJJ7I.js → askUserQuestion-MALEB47H.js} +2 -2
- package/chunks/{bridge-3KJEWDNE.js → bridge-JNEW6FES.js} +46 -41
- package/chunks/{build-S6DO7LMM.js → build-GDBLPA24.js} +1 -1
- package/chunks/{ca-6W3SK7OQ.js → ca-4OJN75WT.js} +46 -5
- package/chunks/{channel-management-service-XR7GZSWF.js → channel-management-service-QOO7TD3T.js} +21 -6
- package/chunks/{channel-settings-store-HW4FXXUA.js → channel-settings-store-4CSMTR4L.js} +47 -42
- package/chunks/{channel-worker-group-XDPTDWTX.js → channel-worker-group-ERSUOPIR.js} +8 -8
- package/chunks/{channel-worker-manager-YYEHVRRE.js → channel-worker-manager-X247YDQ7.js} +8 -8
- package/chunks/{channel-worker-supervisor-74HTWA2G.js → channel-worker-supervisor-ORJIEEPP.js} +4 -4
- package/chunks/{chunk-VWOOBLTY.js → chunk-25QQVOCG.js} +5 -5
- package/chunks/{chunk-CAPPWD3X.js → chunk-2A6MHYIA.js} +3 -3
- package/chunks/{chunk-2XSLTRFZ.js → chunk-2CTKGIFR.js} +2 -2
- package/chunks/{chunk-DZLYR4U3.js → chunk-2DNKEBXY.js} +1 -1
- package/chunks/{chunk-UWMLWVCA.js → chunk-2IIJTXYF.js} +26 -10
- package/chunks/{chunk-JYBU6YUE.js → chunk-2M5N3DHY.js} +1 -1
- package/chunks/{chunk-AQIDMUGU.js → chunk-2PNQQ4UR.js} +2 -2
- package/chunks/{chunk-OKF7JF3R.js → chunk-2UISUFHQ.js} +3 -3
- package/chunks/{chunk-2LQTH543.js → chunk-33FNCQSY.js} +2 -2
- package/chunks/{chunk-M7OONWYU.js → chunk-3LGZEYOF.js} +4 -2
- package/chunks/{chunk-ZURDMIDR.js → chunk-3MHPWQ2M.js} +242 -76
- package/chunks/{chunk-UHUSJ6X7.js → chunk-3RXUYQJI.js} +25 -6
- package/chunks/{chunk-E5Z2AVNV.js → chunk-3SH53ANB.js} +0 -11
- package/chunks/{chunk-BNWB5CYE.js → chunk-3WXMXT7C.js} +22 -11
- package/chunks/{chunk-A2D5BAVP.js → chunk-42IKVPST.js} +1 -1
- package/chunks/{chunk-2DN4J57Y.js → chunk-432XCUHF.js} +1 -1
- package/chunks/{chunk-EVKE2FZL.js → chunk-433VD3HX.js} +4 -4
- package/chunks/{chunk-Q43KPN7X.js → chunk-434YCHSV.js} +6 -6
- package/chunks/{chunk-5TBMQLGG.js → chunk-4LKVQFHM.js} +2 -2
- package/chunks/{chunk-YDLJGZHL.js → chunk-4NFY2S7N.js} +0 -33
- package/chunks/{chunk-6PE7N3A4.js → chunk-5UJ6A3CH.js} +145 -10
- package/chunks/{chunk-GNR2RNMP.js → chunk-5UZITEHA.js} +3 -3
- package/chunks/chunk-6FMJLI5M.js +1591 -0
- package/chunks/{chunk-RPLGZJV2.js → chunk-6O5DVH27.js} +1 -1
- package/chunks/{chunk-2RFKHEXL.js → chunk-6PLDPT2C.js} +1 -1
- package/chunks/{chunk-7AEJDLRA.js → chunk-7IYLHTTM.js} +3 -3
- package/chunks/{chunk-65PQENQP.js → chunk-7K2WTPQO.js} +5 -5
- package/chunks/{chunk-P4WOAOJW.js → chunk-7MY2AR5A.js} +72 -26
- package/chunks/{chunk-GXIJHV66.js → chunk-A2A34TSB.js} +3 -3
- package/chunks/{chunk-XWWKIXVD.js → chunk-A5YZ3FA2.js} +2 -1
- package/chunks/{chunk-64LQLPL7.js → chunk-A6SX5TAH.js} +3 -3
- package/chunks/{chunk-SZ3KHTDR.js → chunk-AKA24BGO.js} +1 -1
- package/chunks/chunk-AQ37AY7B.js +93 -0
- package/chunks/{chunk-2N7CODY5.js → chunk-AQEWCKX4.js} +2 -2
- package/chunks/{chunk-KCO4FLFJ.js → chunk-AYB4HSBI.js} +3 -3
- package/chunks/{chunk-WZRWHXFE.js → chunk-BFHXDAR7.js} +1 -1
- package/chunks/{chunk-L55JWS76.js → chunk-BGXZBI5B.js} +1 -1
- package/chunks/{chunk-5MKRTI4T.js → chunk-BKUN5QHP.js} +7 -7
- package/chunks/{chunk-Y4IHBGBP.js → chunk-BV4QX43X.js} +1 -1
- package/chunks/{chunk-PB3MBFKG.js → chunk-C4L2MEIT.js} +4 -4
- package/chunks/{chunk-TCIFAA7K.js → chunk-CHCLO3M7.js} +14 -14
- package/chunks/{chunk-CVHIL5IG.js → chunk-CWEIMFFW.js} +13 -6
- package/chunks/{chunk-2FAK6PNM.js → chunk-DUIJ2IXG.js} +5 -13
- package/chunks/{chunk-T2QMKU3R.js → chunk-DVGTU5TC.js} +19 -7
- package/chunks/{chunk-LGAOC3ZS.js → chunk-DYA25Y7U.js} +1 -1
- package/chunks/{chunk-SGFT55XI.js → chunk-E4WHKETF.js} +32 -4
- package/chunks/{chunk-WBL3FJEU.js → chunk-FC4KQFCS.js} +1 -1
- package/chunks/{chunk-MHAIJPTD.js → chunk-FJHA23GM.js} +12 -12
- package/chunks/{chunk-S7W2GKIO.js → chunk-G7XXKQYS.js} +2 -0
- package/chunks/{chunk-MR5EAQ5M.js → chunk-GALUTA2C.js} +1 -1
- package/chunks/{chunk-7I5GTCT4.js → chunk-GB3AB7TR.js} +4008 -3648
- package/chunks/{chunk-QIZKCVM3.js → chunk-GHJM2C2T.js} +6 -8
- package/chunks/chunk-GOFAQQZA.js +132 -0
- package/chunks/{chunk-BCZFQXWK.js → chunk-GTM6IHBB.js} +2 -2
- package/chunks/{chunk-5ZF5XXTS.js → chunk-GVISB2OH.js} +2 -2
- package/chunks/{chunk-FNMZK765.js → chunk-H36SETQS.js} +1 -1
- package/chunks/{chunk-UBEPNVDI.js → chunk-H4346YW5.js} +28 -16
- package/chunks/{chunk-CQL64ESB.js → chunk-H4DSRWAS.js} +24 -13
- package/chunks/{chunk-YGF33UXG.js → chunk-H6MC6VQX.js} +222 -173
- package/chunks/{chunk-GZXCZHCT.js → chunk-I3G5JWBV.js} +1 -1
- package/chunks/{chunk-Y6AXW2OG.js → chunk-I5GNT6ZS.js} +7 -1
- package/chunks/{chunk-GEBV2JGB.js → chunk-I6FAHB4N.js} +1 -1
- package/chunks/{chunk-UPUG4GXM.js → chunk-I7JDGNG6.js} +3 -3
- package/chunks/{chunk-JHNRZMHI.js → chunk-II6WPWHY.js} +9 -9
- package/chunks/{chunk-B4AJNNOL.js → chunk-J26HHFI5.js} +1 -1
- package/chunks/{chunk-S3TWXGKA.js → chunk-JE7KQ2UP.js} +4 -2
- package/chunks/{chunk-ZHBO7WVX.js → chunk-JELIWHXD.js} +1 -1
- package/chunks/{chunk-3EFXSQCM.js → chunk-JRIDA5HF.js} +7 -7
- package/chunks/{chunk-TFRMVU6R.js → chunk-K4CGQN4Q.js} +1 -1
- package/chunks/{chunk-WUZ7H6DP.js → chunk-K5Q62CGR.js} +1 -1
- package/chunks/{chunk-JCW2R7WC.js → chunk-K623ENWT.js} +3 -79
- package/chunks/{chunk-T2NCM2ET.js → chunk-K6KS3LTN.js} +2 -749
- package/chunks/{chunk-TDL6LB4K.js → chunk-KG22G46Y.js} +22 -10
- package/chunks/{chunk-GATT5TKW.js → chunk-KKN2IE7Q.js} +1 -1
- package/chunks/{chunk-JMONIXMJ.js → chunk-KVUBYJDM.js} +2 -2
- package/chunks/{chunk-TBBV36Y4.js → chunk-KXSYDCP2.js} +4 -4
- package/chunks/{chunk-EIF3FXTB.js → chunk-LAPK3GLC.js} +121 -18
- package/chunks/chunk-LBOVL47Y.js +29 -0
- package/chunks/{chunk-U3E3UQAA.js → chunk-LBWNSLJK.js} +4 -4
- package/chunks/{chunk-S4WJVPZW.js → chunk-LL4U3BSH.js} +15 -7
- package/chunks/{chunk-657BH7VM.js → chunk-LRJWFR6L.js} +4 -4
- package/chunks/{chunk-PT722TDT.js → chunk-M2F5PLOW.js} +770 -125
- package/chunks/{chunk-3L2SPEBH.js → chunk-M744OFVE.js} +1 -1
- package/chunks/{chunk-VYOXCEPJ.js → chunk-MBKPUM5Y.js} +1 -1
- package/chunks/chunk-MISUEWB4.js +8749 -0
- package/chunks/{chunk-PONHVBRT.js → chunk-MOHAWIAW.js} +2 -2
- package/chunks/{chunk-HMRM2A3U.js → chunk-MSIVKDRC.js} +4 -4
- package/chunks/{record-artifact-XAMSFSW4.js → chunk-MYT7N6QH.js} +22 -7
- package/chunks/{chunk-X5WNMMIA.js → chunk-NGWYUZZO.js} +11510 -15137
- package/chunks/{chunk-PQNHRFJC.js → chunk-NYX53SV4.js} +0 -2
- package/chunks/{chunk-6RPMI2AB.js → chunk-NZB4NDJL.js} +10 -10
- package/chunks/{chunk-BGTQCTQW.js → chunk-O2ZYHG33.js} +6 -5
- package/chunks/chunk-O6GEWCJA.js +21 -0
- package/chunks/{chunk-JX27F6QS.js → chunk-OBAIHYFT.js} +1 -1
- package/chunks/{chunk-BPZKP57P.js → chunk-OCRM53TT.js} +3 -3
- package/chunks/{chunk-V7RNNPGC.js → chunk-P5Y23G2L.js} +18 -1
- package/chunks/{chunk-FTD6DP4T.js → chunk-PDDYAXL2.js} +5 -1
- package/chunks/{chunk-JSD33JG6.js → chunk-PGEGUNH5.js} +67 -10
- package/chunks/{chunk-A4COXFB3.js → chunk-PGP7Y3RQ.js} +5 -5
- package/chunks/{chunk-T3O2B4XO.js → chunk-PHODQP2V.js} +6 -6
- package/chunks/{chunk-BMFALVGQ.js → chunk-PXA5AWHY.js} +1 -1
- package/chunks/chunk-QL4TN4HS.js +59 -0
- package/chunks/{chunk-W4MIWP6M.js → chunk-QMBEW7EW.js} +2 -2
- package/chunks/{chunk-U4VTUMMK.js → chunk-QONSRAEV.js} +1 -1
- package/chunks/{chunk-LW3RFMG7.js → chunk-QYPT3QUD.js} +3 -3
- package/chunks/{chunk-TV64SXKD.js → chunk-RGJ4JWSU.js} +131 -48
- package/chunks/{chunk-75MIQ3LV.js → chunk-RPYYTL7E.js} +61 -13
- package/chunks/{chunk-52ZSWYEG.js → chunk-SK2UKB45.js} +1 -1
- package/chunks/{chunk-PLDQBIO6.js → chunk-SWEBEXPI.js} +1 -1
- package/chunks/chunk-T3CHYWJZ.js +758 -0
- package/chunks/{chunk-VCPIZRYH.js → chunk-TFFMATHX.js} +9 -7
- package/chunks/{chunk-J7OACQDE.js → chunk-TNVKFQXQ.js} +458 -97
- package/chunks/{chunk-A3NDJ5SB.js → chunk-TYERNYH4.js} +2 -2
- package/chunks/{chunk-GKX7E4CO.js → chunk-U25CMJYY.js} +1 -1
- package/chunks/{chunk-7XATOOE7.js → chunk-UH7Z7Y45.js} +1 -1
- package/chunks/{chunk-XFZYFU3I.js → chunk-UHQ3L6GC.js} +1 -1
- package/chunks/{chunk-GZ3RCT54.js → chunk-UHTJC7O3.js} +1 -1
- package/chunks/{chunk-XZC5VLBZ.js → chunk-UKZEXS6K.js} +6 -0
- package/chunks/{chunk-LO4ROVP4.js → chunk-UOFFZNXV.js} +111 -13
- package/chunks/{chunk-5YKDXHUY.js → chunk-URN76TKR.js} +2 -2
- package/chunks/{chunk-T4TXDL7G.js → chunk-UWLG4UCE.js} +132 -35
- package/chunks/{chunk-KAMYKP7E.js → chunk-UWSXFI6E.js} +1 -1
- package/chunks/{chunk-7BAU433D.js → chunk-VS3GXRNZ.js} +1198 -240
- package/chunks/{chunk-EJGJIBRS.js → chunk-VWF42XC6.js} +3 -3
- package/chunks/{chunk-RCUQIPTN.js → chunk-W7XZ3KP5.js} +1 -1
- package/chunks/{chunk-OCESJA77.js → chunk-WISQLM4Q.js} +1197 -1154
- package/chunks/{chunk-NOKIVHOL.js → chunk-WK4TJUEA.js} +1 -1
- package/chunks/{chunk-JFMA7Y5M.js → chunk-WP4HGHFG.js} +5 -5
- package/chunks/{chunk-4G2BISNC.js → chunk-XC2VAFVZ.js} +1 -1
- package/chunks/{chunk-2LKVPASC.js → chunk-XC656O42.js} +3 -3
- package/chunks/{chunk-5KTQXHPY.js → chunk-XCLLRKY5.js} +3 -3
- package/chunks/{chunk-HV26XH34.js → chunk-XFDPIC4P.js} +3 -3
- package/chunks/{chunk-JTV5K7NH.js → chunk-XSA5EKTJ.js} +1 -1
- package/chunks/{chunk-75GFAX4R.js → chunk-YAVY33G4.js} +1 -1
- package/chunks/{chunk-WBSMNTSV.js → chunk-YXEVDA66.js} +2 -2
- package/chunks/{chunk-7DXQIJID.js → chunk-ZRFJ75D7.js} +3 -3
- package/chunks/{chunk-XBYYDKAZ.js → chunk-ZTN6OA5J.js} +8 -7
- package/chunks/{computer-use-ZTIDHMMA.js → computer-use-Z4NCIIJN.js} +40 -35
- package/chunks/{config-utils-NYSXDMEQ.js → config-utils-64LM6OEQ.js} +4 -4
- package/chunks/{contextCommand-2PIEU37Z.js → contextCommand-HVM7XFCB.js} +43 -38
- package/chunks/{core-runtime-3XEYLQFK.js → core-runtime-NL3ZBHBU.js} +40 -35
- package/chunks/{create-sub-session-SBYUMSSS.js → create-sub-session-AM32K2HD.js} +2 -2
- package/chunks/{create-sub-session-R76FVXCI.js → create-sub-session-XHSCDYFU.js} +43 -38
- package/chunks/{cron-create-2QK6TCEC.js → cron-create-HPXYE6C5.js} +4 -4
- package/chunks/{cron-delete-FDCDFYMG.js → cron-delete-FPVNTKPK.js} +4 -4
- package/chunks/{cron-list-XN3WVBTP.js → cron-list-ZEI6PAAV.js} +4 -4
- package/chunks/{daemon-Q2AB5Z23.js → daemon-PCNCI5YU.js} +72 -3
- package/chunks/daemon-status-provider-XD23SNAM.js +94 -0
- package/chunks/{daemon-trust-policy-ILUDTLHD.js → daemon-trust-policy-NOHK7IW5.js} +46 -41
- package/chunks/{daemon-trust-policy-monitor-HS3PKKRO.js → daemon-trust-policy-monitor-ZBTSR333.js} +46 -41
- package/chunks/{de-SY6O76BF.js → de-A6TI4LBB.js} +46 -5
- package/chunks/{deferred-core-runtime-X4QV662U.js → deferred-core-runtime-JJBHKM2C.js} +40 -35
- package/chunks/{dist-HVRQ2CFL.js → dist-4LAMY2SK.js} +1180 -5
- package/chunks/{dist-DOLYHMXE.js → dist-4T4NCJFL.js} +2 -2
- package/chunks/dist-7KOL6OMD.js +13467 -0
- package/chunks/{dist-SSU66DM4.js → dist-BH76AT7N.js} +1 -1
- package/chunks/{dist-BSTVRPMT.js → dist-BXA3JXVQ.js} +541 -19
- package/chunks/{dist-SV7Q3AWJ.js → dist-OEEFI6UU.js} +12 -9
- package/chunks/{dist-YGBBMK3Z.js → dist-SMLVOWKV.js} +5 -4
- package/chunks/{dist-IXQEQWRG.js → dist-V2RK6S6Q.js} +1 -1
- package/chunks/{earlyInputCapture-XKLZT7ZD.js → earlyInputCapture-KLAZDAIP.js} +41 -36
- package/chunks/{edit-HHGIOTQ2.js → edit-YQZWCISX.js} +40 -35
- package/chunks/{en-NBK3JKCE.js → en-RESOFG55.js} +46 -5
- package/chunks/{enter-worktree-ZN7PUQ46.js → enter-worktree-WLVWI3FP.js} +40 -35
- package/chunks/{enterPlanMode-EIFIDSIV.js → enterPlanMode-6RYXFQUD.js} +40 -35
- package/chunks/{environment-XXQ75D2Q.js → environment-DXJTXSVT.js} +43 -38
- package/chunks/{errors-4GMVU7CK.js → errors-XGAGG2S2.js} +43 -38
- package/chunks/{exit-worktree-GXMI4ATY.js → exit-worktree-C4276VPP.js} +40 -35
- package/chunks/{exitPlanMode-34UVY7M6.js → exitPlanMode-MM5HIRUF.js} +40 -35
- package/chunks/{fast-path-VPIVA7L6.js → fast-path-PIXYOHCH.js} +6 -2
- package/chunks/{fr-4KG5V7UT.js → fr-QF7RI5ZE.js} +46 -5
- package/chunks/{gemini-4BWIK4WD.js → gemini-43RLVUNP.js} +158 -96
- package/chunks/{geminiContentGenerator-3XVV5MSS.js → geminiContentGenerator-PNQ4TSID.js} +6 -6
- package/chunks/{glob-TZ2ABCJG.js → glob-ZMBQKAU5.js} +40 -35
- package/chunks/goal-tools-Y767F7LZ.js +335 -0
- package/chunks/{grep-BEF463NA.js → grep-HSV37W2Q.js} +40 -35
- package/chunks/handleAutoUpdate-QDHZPBAY.js +85 -0
- package/chunks/{i18n-FMM5FDXR.js → i18n-ME22A6RN.js} +42 -37
- package/chunks/{image-gen-HHVLF7HS.js → image-gen-IFC7ZWSB.js} +9 -9
- package/chunks/{initializer-625TIAIO.js → initializer-J7H2CHVB.js} +47 -42
- package/chunks/{installationInfo-6AM4I2Y3.js → installationInfo-R7FXPQN5.js} +41 -36
- package/chunks/{ja-F3GSQXMF.js → ja-URQESVGW.js} +46 -5
- package/chunks/{keychain-token-storage-72IYCAZV.js → keychain-token-storage-7BT4TQ2A.js} +2 -2
- package/chunks/{kittyProtocolDetector-MBRTDRBK.js → kittyProtocolDetector-BFLAKYXH.js} +1 -1
- package/chunks/list-OYDIBA4N.js +93 -0
- package/chunks/{list-agents-R6KDXQR3.js → list-agents-GATIBBQQ.js} +2 -2
- package/chunks/{loadedSettingsAdapter-SPUTNKAV.js → loadedSettingsAdapter-OK6GK2GE.js} +46 -41
- package/chunks/{loggingContentGenerator-LKOF7XI7.js → loggingContentGenerator-U4ZEG4GL.js} +53 -38
- package/chunks/{loop-wakeup-3IQKCYAH.js → loop-wakeup-3DZMQQQQ.js} +13 -6
- package/chunks/{ls-DKZ37A7N.js → ls-7F4GHXIH.js} +4 -4
- package/chunks/{lsp-QNWN7KN3.js → lsp-6FEHVBWI.js} +2 -2
- package/chunks/{managed-npm-update-ACQGGIN5.js → managed-npm-update-PGKAJLLO.js} +43 -38
- package/chunks/mcp-S4DXJD2G.js +87 -0
- package/chunks/{monitor-DF52UVHI.js → monitor-E5ZFMT74.js} +40 -35
- package/chunks/nonInteractiveCli-HNOHKEPE.js +149 -0
- package/chunks/{notebook-edit-FCWS4XVN.js → notebook-edit-6QDN6VZJ.js} +40 -35
- package/chunks/{openaiContentGenerator-7LDK3DCJ.js → openaiContentGenerator-3NLB2C5O.js} +19 -19
- package/chunks/{pidfile-6ERW3DF4.js → pidfile-ZMOIUGG6.js} +41 -36
- package/chunks/{processUtils-COKZAMUP.js → processUtils-E4QGQVWW.js} +2 -2
- package/chunks/{pt-EQ33KWEN.js → pt-EEEQXRUI.js} +46 -5
- package/chunks/{qwenContentGenerator-TKWUMR7N.js → qwenContentGenerator-2LFRWJTM.js} +46 -41
- package/chunks/{qwenOAuth2-7HMU47SF.js → qwenOAuth2-N32BUQDC.js} +8 -8
- package/chunks/{read-file-X6DRC574.js → read-file-GLDCWZBG.js} +11 -11
- package/chunks/{read-mcp-resource-GFTWYXMK.js → read-mcp-resource-AFS3UKZO.js} +2 -2
- package/chunks/record-artifact-ECZSCEG5.js +21 -0
- package/chunks/{resumeHistoryUtils-PFPM2GWM.js → resumeHistoryUtils-F5BE5QDW.js} +48 -43
- package/chunks/ripGrep-T23Y4AGY.js +77 -0
- package/chunks/{ru-7OZAUKGG.js → ru-WGZDYQAB.js} +46 -5
- package/chunks/{run-qwen-serve-TSTCO4XE.js → run-qwen-serve-TI2HGLLU.js} +290 -75
- package/chunks/{runtime-DAUPSUKI.js → runtime-WCWM3DO7.js} +53 -46
- package/chunks/{scheduler-KMADMT26.js → scheduler-2QZO5AV5.js} +40 -35
- package/chunks/{sdk-exporters-http-WO556XNU.js → sdk-exporters-http-IKNWQJNV.js} +3 -3
- package/chunks/{sdk-impl-LPAVACSF.js → sdk-impl-7CUUMQDB.js} +3 -3
- package/chunks/{send-message-SAWK4DZX.js → send-message-X7G2JSII.js} +6 -11
- package/chunks/{serve-NNRWS6F4.js → serve-DZOMYUFU.js} +46 -41
- package/chunks/{server-WEH7DVCH.js → server-N4AJRKIQ.js} +2269 -1016
- package/chunks/{session-WXC56V2I.js → session-GS6AKMN7.js} +151 -86
- package/chunks/{settings-DJDXFDZ3.js → settings-CUN3SELH.js} +50 -45
- package/chunks/{shell-JN5VRQXD.js → shell-NGBFVXC5.js} +40 -35
- package/chunks/{skill-SGXPKJCS.js → skill-SC2BSO75.js} +30 -16
- package/chunks/{skill-settings-VJ5PDMZI.js → skill-settings-XVPCPW5K.js} +45 -40
- package/chunks/{spawnChannel-ETMJW7YX.js → spawnChannel-RILO4YY3.js} +42 -37
- package/chunks/{standalone-update-MK3Z7KBI.js → standalone-update-TMLT6LVJ.js} +43 -38
- package/chunks/{startInteractiveUI-ZCGIXPGT.js → startInteractiveUI-J45WOEOU.js} +883 -1112
- package/chunks/{syntheticOutput-355CB6CJ.js → syntheticOutput-FHRY3BPQ.js} +3 -3
- package/chunks/{task-create-INGWNUG4.js → task-create-LAQXBIHC.js} +11 -10
- package/chunks/{task-list-5XNNGTF4.js → task-list-V6K5DRDH.js} +6 -6
- package/chunks/{task-stop-4ROAOBXH.js → task-stop-LQXE52L6.js} +2 -2
- package/chunks/{task-update-CRK5VWWZ.js → task-update-NXRCXSPB.js} +11 -10
- package/chunks/{team-create-QQGAJG7P.js → team-create-W3EVWCTA.js} +40 -35
- package/chunks/{team-delete-S2RCXA4P.js → team-delete-Z4KGO7RC.js} +6 -6
- package/chunks/{team-plan-approval-RT7Q5R6O.js → team-plan-approval-URYVKJF4.js} +40 -35
- package/chunks/theme-manager-CUAMS2NI.js +81 -0
- package/chunks/{todoWrite-7WM3VDMY.js → todoWrite-OFIZDI7P.js} +32 -4
- package/chunks/{tool-search-Z3Z4AYKP.js → tool-search-DCICFL32.js} +15 -14
- package/chunks/total-session-admission-3ZTAXVUK.js +89 -0
- package/chunks/{trustedFolders-X2JEIO57.js → trustedFolders-EVCN36O5.js} +42 -37
- package/chunks/{update-relaunch-VWNPYDIP.js → update-relaunch-XLW46RHQ.js} +5 -5
- package/chunks/{updateCheck-KAQH67DV.js → updateCheck-ZHVXDAIH.js} +44 -39
- package/chunks/{useAutoAcceptIndicator-JH6BCF7S.js → useAutoAcceptIndicator-ZGD6BJSP.js} +50 -45
- package/chunks/{validateNonInterActiveAuth-GIUJ2UFS.js → validateNonInterActiveAuth-R3BAQFDY.js} +88 -83
- package/chunks/{version-BGLYIJUY.js → version-PMWREGCG.js} +1 -1
- package/chunks/{web-fetch-OTDU4VQF.js → web-fetch-PGN27SGF.js} +14 -14
- package/chunks/{web-search-FP6SIHPR.js → web-search-KW4UNMRE.js} +8 -8
- package/chunks/{workflow-YCIVBYSB.js → workflow-SN3TJBTJ.js} +363 -310
- package/chunks/workspace-providers-status-O3HUZGGR.js +90 -0
- package/chunks/{workspace-registration-store-OTMS3H4C.js → workspace-registration-store-M3FJ74RS.js} +2 -2
- package/chunks/{workspace-registry-O63R6IZ4.js → workspace-registry-U7ISW23N.js} +47 -42
- package/chunks/{workspace-service-M6LLHKJ5.js → workspace-service-VH6IWADT.js} +53 -48
- package/chunks/{workspace-skills-status-C2V7BAIS.js → workspace-skills-status-XANARSZS.js} +48 -43
- package/chunks/{workspace-trust-reconciler-IBUPOUJN.js → workspace-trust-reconciler-35EFR4GC.js} +53 -48
- package/chunks/write-file-NCRSGUDT.js +79 -0
- package/chunks/{zh-H3YDK5QW.js → zh-OHX23Q44.js} +43 -5
- package/chunks/{zh-TW-JYCP7XUA.js → zh-TW-4G7YKDAQ.js} +43 -5
- package/chunks/zoom-image-X7CIADYC.js +224 -0
- package/cli.js +55 -48
- package/locales/ca.js +60 -4
- package/locales/de.js +62 -4
- package/locales/en.js +59 -4
- package/locales/fr.js +64 -4
- package/locales/ja.js +61 -4
- package/locales/pt.js +60 -4
- package/locales/ru.js +63 -4
- package/locales/zh-TW.js +52 -4
- package/locales/zh.js +52 -4
- package/package.json +3 -3
- package/web-shell/assets/{arc-75-Wdeo3.js → arc-CaMTqKio.js} +1 -1
- package/web-shell/assets/{architectureDiagram-3BPJPVTR-FKeXQbyP.js → architectureDiagram-3BPJPVTR-Bjxztij2.js} +1 -1
- package/web-shell/assets/{blockDiagram-GPEHLZMM-CY0vc-A3.js → blockDiagram-GPEHLZMM-BYJzeHi9.js} +1 -1
- package/web-shell/assets/{c4Diagram-AAUBKEIU-CNP-A-8u.js → c4Diagram-AAUBKEIU-fYAa-Eil.js} +1 -1
- package/web-shell/assets/channel-LEZei0-5.js +1 -0
- package/web-shell/assets/{chunk-2J33WTMH-GybS4Gii.js → chunk-2J33WTMH-B1OTlTml.js} +1 -1
- package/web-shell/assets/{chunk-4BX2VUAB-02H91V8v.js → chunk-4BX2VUAB-DNj4uy6k.js} +1 -1
- package/web-shell/assets/{chunk-55IACEB6-D3M-2VT6.js → chunk-55IACEB6-DAqNmg3c.js} +1 -1
- package/web-shell/assets/{chunk-727SXJPM-CCu29u4H.js → chunk-727SXJPM-BwB4ddxE.js} +1 -1
- package/web-shell/assets/{chunk-AQP2D5EJ-CaFKWgrn.js → chunk-AQP2D5EJ-DmHR_UZs.js} +1 -1
- package/web-shell/assets/{chunk-FMBD7UC4-ZZpPqIwQ.js → chunk-FMBD7UC4-BlfOXumo.js} +1 -1
- package/web-shell/assets/{chunk-ND2GUHAM-D22DqGs8.js → chunk-ND2GUHAM-BKogiSy7.js} +1 -1
- package/web-shell/assets/{chunk-QZHKN3VN-Bu85S0fw.js → chunk-QZHKN3VN-DEclVrOF.js} +1 -1
- package/web-shell/assets/classDiagram-4FO5ZUOK-BiaRhfvf.js +1 -0
- package/web-shell/assets/classDiagram-v2-Q7XG4LA2-BiaRhfvf.js +1 -0
- package/web-shell/assets/{cose-bilkent-S5V4N54A-f1CK1Gwe.js → cose-bilkent-S5V4N54A-CwtS21WT.js} +1 -1
- package/web-shell/assets/{dagre-BM42HDAG-D0Ow8F_n.js → dagre-BM42HDAG-BAAIlB4p.js} +1 -1
- package/web-shell/assets/{diagram-2AECGRRQ-BPrmTWp8.js → diagram-2AECGRRQ-ChljtF_V.js} +1 -1
- package/web-shell/assets/{diagram-5GNKFQAL-HccuFAzy.js → diagram-5GNKFQAL-BIXVd31-.js} +1 -1
- package/web-shell/assets/{diagram-KO2AKTUF-BrS76mbA.js → diagram-KO2AKTUF-BEiBaS15.js} +1 -1
- package/web-shell/assets/{diagram-LMA3HP47-V7T9lU-5.js → diagram-LMA3HP47-C-g4tWKM.js} +1 -1
- package/web-shell/assets/{diagram-OG6HWLK6-DKidyJMR.js → diagram-OG6HWLK6-CNCCbNQG.js} +1 -1
- package/web-shell/assets/{erDiagram-TEJ5UH35-DBadZIkp.js → erDiagram-TEJ5UH35-v8ysnsdI.js} +1 -1
- package/web-shell/assets/{flowDiagram-I6XJVG4X-BymfqdNJ.js → flowDiagram-I6XJVG4X-LKVlLjwA.js} +1 -1
- package/web-shell/assets/{ganttDiagram-6RSMTGT7-DOw340jf.js → ganttDiagram-6RSMTGT7-DA5MrKYG.js} +1 -1
- package/web-shell/assets/{gitGraphDiagram-PVQCEYII-_8EiD8sl.js → gitGraphDiagram-PVQCEYII-Cyg5fe6d.js} +1 -1
- package/web-shell/assets/index-BgOcEaVt.js +1756 -0
- package/web-shell/assets/index-C2GE3DAF.js +74 -0
- package/web-shell/assets/{index-CKIadvET.js → index-CKdUkVVS.js} +1 -1
- package/web-shell/assets/index-DA5Lvscv.css +5 -0
- package/web-shell/assets/{infoDiagram-5YYISTIA-D61KYQBu.js → infoDiagram-5YYISTIA-SLsfu3Qd.js} +1 -1
- package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-CsiXSpNx.js → ishikawaDiagram-YF4QCWOH-CmHOmTNx.js} +1 -1
- package/web-shell/assets/{journeyDiagram-JHISSGLW-Sdfionyh.js → journeyDiagram-JHISSGLW-C3gM_HFQ.js} +1 -1
- package/web-shell/assets/{kanban-definition-UN3LZRKU-C3WI3Cnl.js → kanban-definition-UN3LZRKU-BbHD7duM.js} +1 -1
- package/web-shell/assets/{linear-Dpigcc62.js → linear-CSBvm435.js} +1 -1
- package/web-shell/assets/{mermaid.core-Ct97pqgW.js → mermaid.core-CPMw15lU.js} +5 -5
- package/web-shell/assets/{mindmap-definition-RKZ34NQL-BzeaN0rB.js → mindmap-definition-RKZ34NQL-C_tNqXQW.js} +1 -1
- package/web-shell/assets/{pieDiagram-4H26LBE5-CvjgcbVD.js → pieDiagram-4H26LBE5-DH_N-8yY.js} +1 -1
- package/web-shell/assets/{quadrantDiagram-W4KKPZXB-BUzgTNdH.js → quadrantDiagram-W4KKPZXB-CRbS8UkN.js} +1 -1
- package/web-shell/assets/{requirementDiagram-4Y6WPE33-B7zKlgUQ.js → requirementDiagram-4Y6WPE33-DJgdZPZn.js} +1 -1
- package/web-shell/assets/{sankeyDiagram-5OEKKPKP-Bb9CQgrT.js → sankeyDiagram-5OEKKPKP-vhL1y5zx.js} +1 -1
- package/web-shell/assets/{sequenceDiagram-3UESZ5HK-DJ6V7itG.js → sequenceDiagram-3UESZ5HK-UQthhFwd.js} +1 -1
- package/web-shell/assets/{stateDiagram-AJRCARHV-IImflERY.js → stateDiagram-AJRCARHV-CAywEm20.js} +1 -1
- package/web-shell/assets/stateDiagram-v2-BHNVJYJU-lfJQHw-7.js +1 -0
- package/web-shell/assets/{timeline-definition-PNZ67QCA-6Q_uWHKh.js → timeline-definition-PNZ67QCA-CLO8b3FD.js} +1 -1
- package/web-shell/assets/{vennDiagram-CIIHVFJN-TmyKyjwv.js → vennDiagram-CIIHVFJN-BNAAh0Mu.js} +1 -1
- package/web-shell/assets/{wardley-L42UT6IY-CRh9uiPv.js → wardley-L42UT6IY-CUY7bLpN.js} +1 -1
- package/web-shell/assets/{wardleyDiagram-YWT4CUSO-59TKAW8w.js → wardleyDiagram-YWT4CUSO-CSg_ORdW.js} +1 -1
- package/web-shell/assets/{xychartDiagram-2RQKCTM6-GCSUIK2L.js → xychartDiagram-2RQKCTM6-BjffV208.js} +1 -1
- package/web-shell/index.html +2 -2
- package/chunks/agent-headless-NO4Y2HOE.js +0 -74
- package/chunks/chunk-6QIGFD5W.js +0 -82
- package/chunks/chunk-HGT6JR3U.js +0 -177
- package/chunks/daemon-status-provider-3XJI6CAL.js +0 -89
- package/chunks/handleAutoUpdate-L6ERF36Y.js +0 -80
- package/chunks/list-L2GA674Y.js +0 -88
- package/chunks/mcp-SZLHKFJW.js +0 -82
- package/chunks/nonInteractiveCli-5T7KYKLK.js +0 -144
- package/chunks/ripGrep-OWV2IVJC.js +0 -72
- package/chunks/theme-manager-EEWIQJ7J.js +0 -76
- package/chunks/total-session-admission-44JKRWQD.js +0 -84
- package/chunks/workspace-providers-status-S35YAIUS.js +0 -85
- package/chunks/write-file-3BZC3EAE.js +0 -72
- package/chunks/zoom-image-TZ6S2O57.js +0 -351
- package/web-shell/assets/channel-DPYMT76A.js +0 -1
- package/web-shell/assets/classDiagram-4FO5ZUOK--JstsIgL.js +0 -1
- package/web-shell/assets/classDiagram-v2-Q7XG4LA2--JstsIgL.js +0 -1
- package/web-shell/assets/index-D1eXNRHe.js +0 -1389
- package/web-shell/assets/index-DVLD4CQq.css +0 -5
- package/web-shell/assets/stateDiagram-v2-BHNVJYJU-CYI_YoNR.js +0 -1
|
@@ -17,7 +17,7 @@ import {
|
|
|
17
17
|
} from "./chunk-OCPBI7J5.js";
|
|
18
18
|
import {
|
|
19
19
|
defaultSpawnChannelFactory
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-UWSXFI6E.js";
|
|
21
21
|
import {
|
|
22
22
|
BridgeChannelClosedError,
|
|
23
23
|
BridgeTimeoutError,
|
|
@@ -26,21 +26,24 @@ import {
|
|
|
26
26
|
STATUS_SCHEMA_VERSION,
|
|
27
27
|
createIdleWorkspaceExtensionsStatus,
|
|
28
28
|
createIdleWorkspaceHooksStatus
|
|
29
|
-
} from "./chunk-
|
|
29
|
+
} from "./chunk-PDDYAXL2.js";
|
|
30
30
|
import {
|
|
31
31
|
CHANNEL_STARTUP_PROFILE_META_KEY,
|
|
32
32
|
CHANNEL_STARTUP_PROFILE_VERSION,
|
|
33
33
|
DAEMON_CHANNEL_DELIVERY_META_KEY,
|
|
34
34
|
LOAD_REPLAY_BULK_MODE,
|
|
35
|
+
LOAD_REPLAY_HIDE_INHERITED_META_KEY,
|
|
35
36
|
LOAD_REPLAY_META_KEY,
|
|
36
37
|
LOAD_REPLAY_MODE_META_KEY,
|
|
37
38
|
LOAD_REPLAY_PAGE_SIZE_META_KEY,
|
|
38
39
|
LOAD_REPLAY_VERSION,
|
|
39
40
|
MID_TURN_QUEUE_DRAIN_METHOD,
|
|
40
41
|
PROMPT_CANCEL_METHOD,
|
|
42
|
+
REQUESTED_SESSION_ID_META_KEY,
|
|
41
43
|
TODO_STOP_GUARD_CONTINUATION_CLAIM_METHOD,
|
|
42
|
-
TODO_STOP_GUARD_QUEUE_RELEASE_METHOD
|
|
43
|
-
|
|
44
|
+
TODO_STOP_GUARD_QUEUE_RELEASE_METHOD,
|
|
45
|
+
WORKTREE_MCP_DEFER_META_KEY
|
|
46
|
+
} from "./chunk-UKZEXS6K.js";
|
|
44
47
|
import {
|
|
45
48
|
BranchWhilePromptActiveError,
|
|
46
49
|
CancelSentinelCollisionError,
|
|
@@ -61,11 +64,11 @@ import {
|
|
|
61
64
|
SessionShellDisabledError,
|
|
62
65
|
WorkspaceMismatchError,
|
|
63
66
|
isNotCurrentlyGeneratingCancelError
|
|
64
|
-
} from "./chunk-
|
|
67
|
+
} from "./chunk-J26HHFI5.js";
|
|
65
68
|
import {
|
|
66
69
|
canonicalizeWorkspace,
|
|
67
70
|
translateAndCheckAbsoluteWorkspacePath
|
|
68
|
-
} from "./chunk-
|
|
71
|
+
} from "./chunk-6PLDPT2C.js";
|
|
69
72
|
import {
|
|
70
73
|
CHANNEL_DELIVERY_ERROR_CODES,
|
|
71
74
|
MAX_SUB_SESSION_NAME_CHARS,
|
|
@@ -87,16 +90,16 @@ import {
|
|
|
87
90
|
metadataBudgetBytes,
|
|
88
91
|
normalizeSnapshotPayload,
|
|
89
92
|
stableSessionArtifactId
|
|
90
|
-
} from "./chunk-
|
|
93
|
+
} from "./chunk-NGWYUZZO.js";
|
|
91
94
|
import {
|
|
92
95
|
DAEMON_TRACEPARENT_META_KEY,
|
|
93
96
|
DAEMON_TRACESTATE_META_KEY
|
|
94
|
-
} from "./chunk-
|
|
97
|
+
} from "./chunk-RPYYTL7E.js";
|
|
95
98
|
import {
|
|
96
99
|
INVOCATION_CONTEXT_META_KEY,
|
|
97
100
|
PRIVATE_ACP_CAPABILITY_ENV,
|
|
98
101
|
PRIVATE_PARENT_CAPABILITY_META_KEY
|
|
99
|
-
} from "./chunk-
|
|
102
|
+
} from "./chunk-M2F5PLOW.js";
|
|
100
103
|
import {
|
|
101
104
|
init_esbuild_shims
|
|
102
105
|
} from "./chunk-5O2XNYP6.js";
|
|
@@ -740,6 +743,7 @@ __name(mergeTranscriptUpdateMeta, "mergeTranscriptUpdateMeta");
|
|
|
740
743
|
|
|
741
744
|
// packages/acp-bridge/src/session-source.ts
|
|
742
745
|
init_esbuild_shims();
|
|
746
|
+
var SESSION_SOURCE_META_KEY = "qwen.session.source";
|
|
743
747
|
var SESSION_SOURCE_TYPE_PATTERN = /^[a-z][a-z0-9_-]{0,63}$/;
|
|
744
748
|
var MAX_SESSION_SOURCE_ID_LENGTH = 256;
|
|
745
749
|
function parseSessionSource(sourceType, sourceId) {
|
|
@@ -5424,6 +5428,15 @@ function isRecord3(value) {
|
|
|
5424
5428
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
5425
5429
|
}
|
|
5426
5430
|
__name(isRecord3, "isRecord");
|
|
5431
|
+
function sessionSourceRequestMeta(sourceType, sourceId) {
|
|
5432
|
+
return sourceType ? {
|
|
5433
|
+
[SESSION_SOURCE_META_KEY]: {
|
|
5434
|
+
sourceType,
|
|
5435
|
+
...sourceId !== void 0 ? { sourceId } : {}
|
|
5436
|
+
}
|
|
5437
|
+
} : {};
|
|
5438
|
+
}
|
|
5439
|
+
__name(sessionSourceRequestMeta, "sessionSourceRequestMeta");
|
|
5427
5440
|
function isDefinitiveAcpRequestError(error) {
|
|
5428
5441
|
if (error instanceof RequestError) return true;
|
|
5429
5442
|
if (!isRecord3(error)) return false;
|
|
@@ -5893,7 +5906,7 @@ var SESSION_TRANSCRIPT_TIMEOUT_MS = 6e4;
|
|
|
5893
5906
|
var SHELL_COMMAND_TIMEOUT_MS = 12e4;
|
|
5894
5907
|
var MAX_SHELL_OUTPUT_FOR_HISTORY = 1e4;
|
|
5895
5908
|
var MAX_MID_TURN_QUEUE_DEPTH = 20;
|
|
5896
|
-
var DEFAULT_MAX_SESSIONS =
|
|
5909
|
+
var DEFAULT_MAX_SESSIONS = 32;
|
|
5897
5910
|
var DEFAULT_MAX_PENDING_PROMPTS_PER_SESSION = 5;
|
|
5898
5911
|
var MAX_EVENT_RING_SIZE = 1e6;
|
|
5899
5912
|
var DEFAULT_PERMISSION_TIMEOUT_MS = 5 * 60 * 1e3;
|
|
@@ -6644,7 +6657,7 @@ function createAcpSessionBridge(opts) {
|
|
|
6644
6657
|
}
|
|
6645
6658
|
}
|
|
6646
6659
|
__name(ensureChannel, "ensureChannel");
|
|
6647
|
-
async function doSpawn(modelServiceId, effectiveScope, approvalMode, requestedClientId, onSessionRegistered, parentSessionId, sourceType, sourceId, worktree, branch) {
|
|
6660
|
+
async function doSpawn(modelServiceId, effectiveScope, approvalMode, requestedClientId, onSessionRegistered, parentSessionId, sourceType, sourceId, worktree, branch, requestedSessionId) {
|
|
6648
6661
|
const channelPath = channelInfo && !channelInfo.isDying ? "reused" : inFlightChannelSpawn ? "joined" : "spawned_on_request";
|
|
6649
6662
|
const ci = await telemetry.withSpan(
|
|
6650
6663
|
"channel.wait",
|
|
@@ -6670,12 +6683,27 @@ function createAcpSessionBridge(opts) {
|
|
|
6670
6683
|
"qwen-code.daemon.acp_channel.id": ci.id
|
|
6671
6684
|
},
|
|
6672
6685
|
async () => {
|
|
6686
|
+
const request = telemetry.injectPromptContext({
|
|
6687
|
+
cwd: boundWorkspace,
|
|
6688
|
+
mcpServers: [],
|
|
6689
|
+
...requestedSessionId || sourceType ? {
|
|
6690
|
+
_meta: {
|
|
6691
|
+
...sessionSourceRequestMeta(sourceType, sourceId),
|
|
6692
|
+
...requestedSessionId ? {
|
|
6693
|
+
[REQUESTED_SESSION_ID_META_KEY]: requestedSessionId
|
|
6694
|
+
} : {}
|
|
6695
|
+
}
|
|
6696
|
+
} : {}
|
|
6697
|
+
});
|
|
6673
6698
|
const response = await withTimeout(
|
|
6674
6699
|
ci.connection.newSession(
|
|
6675
|
-
|
|
6676
|
-
|
|
6677
|
-
|
|
6678
|
-
|
|
6700
|
+
worktree ? {
|
|
6701
|
+
...request,
|
|
6702
|
+
_meta: {
|
|
6703
|
+
...isRecord3(request._meta) ? request._meta : {},
|
|
6704
|
+
[WORKTREE_MCP_DEFER_META_KEY]: true
|
|
6705
|
+
}
|
|
6706
|
+
} : request
|
|
6679
6707
|
),
|
|
6680
6708
|
initTimeoutMs,
|
|
6681
6709
|
"newSession"
|
|
@@ -7449,6 +7477,7 @@ function createAcpSessionBridge(opts) {
|
|
|
7449
7477
|
const entry = {
|
|
7450
7478
|
sessionId,
|
|
7451
7479
|
workspaceCwd,
|
|
7480
|
+
effectiveCwd: workspaceCwd,
|
|
7452
7481
|
createdAt: (/* @__PURE__ */ new Date()).toISOString(),
|
|
7453
7482
|
...options.parentSessionId ? { parentSessionId: options.parentSessionId } : {},
|
|
7454
7483
|
...options.sourceType ? { sourceType: options.sourceType } : {},
|
|
@@ -7465,6 +7494,7 @@ function createAcpSessionBridge(opts) {
|
|
|
7465
7494
|
}),
|
|
7466
7495
|
recordingDegraded: false,
|
|
7467
7496
|
closing: false,
|
|
7497
|
+
cwdChangeQueue: Promise.resolve(),
|
|
7468
7498
|
promptQueue: Promise.resolve(),
|
|
7469
7499
|
pendingPromptCount: 0,
|
|
7470
7500
|
pendingPromptList: [],
|
|
@@ -7782,6 +7812,7 @@ function createAcpSessionBridge(opts) {
|
|
|
7782
7812
|
);
|
|
7783
7813
|
}
|
|
7784
7814
|
const historyReplay = action === "load" ? req.historyReplay ?? "stream" : "stream";
|
|
7815
|
+
const hideInheritedHistory = action === "load" && req.hideInheritedHistory === true;
|
|
7785
7816
|
const existing = byId.get(req.sessionId);
|
|
7786
7817
|
if (existing) {
|
|
7787
7818
|
if (existing.closing) {
|
|
@@ -7819,7 +7850,7 @@ function createAcpSessionBridge(opts) {
|
|
|
7819
7850
|
}
|
|
7820
7851
|
const inFlight = inFlightRestores.get(req.sessionId);
|
|
7821
7852
|
if (inFlight) {
|
|
7822
|
-
if (action !== inFlight.action || historyReplay !== inFlight.historyReplay) {
|
|
7853
|
+
if (action !== inFlight.action || historyReplay !== inFlight.historyReplay || hideInheritedHistory !== inFlight.hideInheritedHistory) {
|
|
7823
7854
|
throw new RestoreInProgressError(
|
|
7824
7855
|
req.sessionId,
|
|
7825
7856
|
inFlight.action,
|
|
@@ -7901,11 +7932,20 @@ function createAcpSessionBridge(opts) {
|
|
|
7901
7932
|
// intentionally has no `mcpServers` field for the
|
|
7902
7933
|
// same reason.
|
|
7903
7934
|
mcpServers: [],
|
|
7904
|
-
...historyReplay === "response" ? {
|
|
7935
|
+
...historyReplay === "response" || hideInheritedHistory || req.sourceType ? {
|
|
7905
7936
|
_meta: {
|
|
7906
|
-
|
|
7907
|
-
|
|
7908
|
-
|
|
7937
|
+
...sessionSourceRequestMeta(
|
|
7938
|
+
req.sourceType,
|
|
7939
|
+
req.sourceId
|
|
7940
|
+
),
|
|
7941
|
+
...historyReplay === "response" ? {
|
|
7942
|
+
[LOAD_REPLAY_MODE_META_KEY]: LOAD_REPLAY_BULK_MODE,
|
|
7943
|
+
...req.historyPageSize !== void 0 ? {
|
|
7944
|
+
[LOAD_REPLAY_PAGE_SIZE_META_KEY]: req.historyPageSize
|
|
7945
|
+
} : {}
|
|
7946
|
+
} : {},
|
|
7947
|
+
...hideInheritedHistory ? {
|
|
7948
|
+
[LOAD_REPLAY_HIDE_INHERITED_META_KEY]: true
|
|
7909
7949
|
} : {}
|
|
7910
7950
|
}
|
|
7911
7951
|
} : {}
|
|
@@ -7921,7 +7961,13 @@ function createAcpSessionBridge(opts) {
|
|
|
7921
7961
|
ci.connection.unstable_resumeSession({
|
|
7922
7962
|
sessionId: req.sessionId,
|
|
7923
7963
|
cwd: workspaceKey,
|
|
7924
|
-
mcpServers: []
|
|
7964
|
+
mcpServers: [],
|
|
7965
|
+
...req.sourceType ? {
|
|
7966
|
+
_meta: sessionSourceRequestMeta(
|
|
7967
|
+
req.sourceType,
|
|
7968
|
+
req.sourceId
|
|
7969
|
+
)
|
|
7970
|
+
} : {}
|
|
7925
7971
|
}),
|
|
7926
7972
|
initTimeoutMs,
|
|
7927
7973
|
"resumeSession"
|
|
@@ -8099,6 +8145,7 @@ function createAcpSessionBridge(opts) {
|
|
|
8099
8145
|
inFlightRestores.set(req.sessionId, {
|
|
8100
8146
|
action,
|
|
8101
8147
|
historyReplay,
|
|
8148
|
+
hideInheritedHistory,
|
|
8102
8149
|
promise,
|
|
8103
8150
|
coalesceState
|
|
8104
8151
|
});
|
|
@@ -8411,7 +8458,8 @@ function createAcpSessionBridge(opts) {
|
|
|
8411
8458
|
source.sourceType,
|
|
8412
8459
|
source.sourceId,
|
|
8413
8460
|
req.worktree,
|
|
8414
|
-
req.branch
|
|
8461
|
+
req.branch,
|
|
8462
|
+
req.sessionId
|
|
8415
8463
|
);
|
|
8416
8464
|
const tracker = effectiveScope === "single" ? workspaceKey : `${workspaceKey}#${randomUUID2()}`;
|
|
8417
8465
|
inFlightSpawns.set(tracker, promise);
|
|
@@ -8977,12 +9025,18 @@ function createAcpSessionBridge(opts) {
|
|
|
8977
9025
|
if (shuttingDown) throw new Error("AcpSessionBridge is shutting down");
|
|
8978
9026
|
const entry = byId.get(sessionId);
|
|
8979
9027
|
if (!entry) throw new SessionNotFoundError(sessionId);
|
|
9028
|
+
const source = parseSessionSource(req.sourceType, req.sourceId);
|
|
9029
|
+
if ("error" in source) {
|
|
9030
|
+
throw new InvalidSessionMetadataError("sourceType", source.error);
|
|
9031
|
+
}
|
|
9032
|
+
const isSideTask = source.sourceType === "side_task";
|
|
8980
9033
|
let originatorClientId;
|
|
8981
9034
|
if (context?.clientId !== void 0) {
|
|
8982
9035
|
originatorClientId = resolveTrustedClientId(entry, context.clientId);
|
|
8983
9036
|
}
|
|
8984
|
-
const
|
|
8985
|
-
|
|
9037
|
+
const concurrentSideTask = isSideTask && entry.promptActive;
|
|
9038
|
+
const branchResult = (concurrentSideTask ? Promise.resolve() : entry.promptQueue).then(async () => {
|
|
9039
|
+
if (entry.promptActive && !isSideTask) {
|
|
8986
9040
|
throw new BranchWhilePromptActiveError(sessionId);
|
|
8987
9041
|
}
|
|
8988
9042
|
if (byId.size + inFlightSpawns.size + inFlightRestores.size >= maxSessions) {
|
|
@@ -9002,13 +9056,16 @@ function createAcpSessionBridge(opts) {
|
|
|
9002
9056
|
try {
|
|
9003
9057
|
const ci = await ensureChannel();
|
|
9004
9058
|
const result = await withTimeout(
|
|
9005
|
-
ci.connection.extMethod(
|
|
9006
|
-
|
|
9007
|
-
|
|
9008
|
-
|
|
9009
|
-
|
|
9059
|
+
ci.connection.extMethod(
|
|
9060
|
+
isSideTask ? SERVE_CONTROL_EXT_METHODS.sessionSideTask : SERVE_CONTROL_EXT_METHODS.sessionBranch,
|
|
9061
|
+
{
|
|
9062
|
+
sessionId,
|
|
9063
|
+
cwd: boundWorkspace,
|
|
9064
|
+
name: req.name
|
|
9065
|
+
}
|
|
9066
|
+
),
|
|
9010
9067
|
initTimeoutMs,
|
|
9011
|
-
"branchSession"
|
|
9068
|
+
isSideTask ? "createSideTaskSession" : "branchSession"
|
|
9012
9069
|
);
|
|
9013
9070
|
if (!result || typeof result.newSessionId !== "string") {
|
|
9014
9071
|
throw new Error(
|
|
@@ -9019,12 +9076,18 @@ function createAcpSessionBridge(opts) {
|
|
|
9019
9076
|
const branchDisplayName = typeof rawBranchName === "string" ? rawBranchName : result.newSessionId.slice(0, 8);
|
|
9020
9077
|
let restored;
|
|
9021
9078
|
try {
|
|
9079
|
+
const hideInheritedHistory = req.replayInheritedHistory === false;
|
|
9022
9080
|
restored = await restoreSession(
|
|
9023
9081
|
"load",
|
|
9024
9082
|
{
|
|
9025
9083
|
sessionId: result.newSessionId,
|
|
9026
9084
|
workspaceCwd: boundWorkspace,
|
|
9027
|
-
clientId: context?.clientId
|
|
9085
|
+
clientId: context?.clientId,
|
|
9086
|
+
...hideInheritedHistory ? {
|
|
9087
|
+
historyReplay: "response",
|
|
9088
|
+
hideInheritedHistory: true
|
|
9089
|
+
} : {},
|
|
9090
|
+
...source
|
|
9028
9091
|
},
|
|
9029
9092
|
{
|
|
9030
9093
|
skipFreshSessionAdmission: true
|
|
@@ -9049,35 +9112,80 @@ function createAcpSessionBridge(opts) {
|
|
|
9049
9112
|
}
|
|
9050
9113
|
const newEntry = byId.get(result.newSessionId);
|
|
9051
9114
|
if (newEntry) newEntry.displayName = branchDisplayName;
|
|
9052
|
-
|
|
9053
|
-
|
|
9054
|
-
|
|
9055
|
-
|
|
9056
|
-
|
|
9057
|
-
|
|
9058
|
-
|
|
9059
|
-
|
|
9060
|
-
|
|
9061
|
-
|
|
9062
|
-
|
|
9115
|
+
let sourcePersisted;
|
|
9116
|
+
if (newEntry?.sourceType) {
|
|
9117
|
+
try {
|
|
9118
|
+
const sourceResult = await withTimeout(
|
|
9119
|
+
newEntry.connection.extMethod(
|
|
9120
|
+
SERVE_CONTROL_EXT_METHODS.sessionSource,
|
|
9121
|
+
{
|
|
9122
|
+
sessionId: newEntry.sessionId,
|
|
9123
|
+
sourceType: newEntry.sourceType,
|
|
9124
|
+
...newEntry.sourceId !== void 0 ? { sourceId: newEntry.sourceId } : {}
|
|
9125
|
+
}
|
|
9126
|
+
),
|
|
9127
|
+
initTimeoutMs,
|
|
9128
|
+
"sessionSource"
|
|
9129
|
+
);
|
|
9130
|
+
sourcePersisted = sourceResult?.persisted === true;
|
|
9131
|
+
} catch (error) {
|
|
9132
|
+
sourcePersisted = false;
|
|
9133
|
+
writeStderrLine(
|
|
9134
|
+
`qwen serve: source metadata for branched session ${result.newSessionId} was not persisted: ${error instanceof Error ? error.message : String(error)}`
|
|
9135
|
+
);
|
|
9136
|
+
}
|
|
9137
|
+
}
|
|
9138
|
+
if (!isSideTask) {
|
|
9139
|
+
const eventData = {
|
|
9140
|
+
sourceSessionId: sessionId,
|
|
9141
|
+
newSessionId: result.newSessionId,
|
|
9142
|
+
displayName: branchDisplayName
|
|
9143
|
+
};
|
|
9144
|
+
const branchEnvelope = {
|
|
9145
|
+
type: "session_branched",
|
|
9146
|
+
data: eventData,
|
|
9147
|
+
...originatorClientId ? { originatorClientId } : {}
|
|
9148
|
+
};
|
|
9149
|
+
newEntry?.events.publish(branchEnvelope);
|
|
9150
|
+
}
|
|
9063
9151
|
return {
|
|
9064
9152
|
...restored,
|
|
9065
9153
|
displayName: branchDisplayName,
|
|
9066
9154
|
forkedFrom: {
|
|
9067
9155
|
sessionId,
|
|
9068
9156
|
displayName: entry.displayName ?? sessionId.slice(0, 8)
|
|
9069
|
-
}
|
|
9157
|
+
},
|
|
9158
|
+
...sourcePersisted !== void 0 ? { sourcePersisted } : {}
|
|
9070
9159
|
};
|
|
9071
9160
|
} finally {
|
|
9072
9161
|
releaseAdmissionOnce();
|
|
9073
9162
|
}
|
|
9074
9163
|
});
|
|
9075
|
-
|
|
9076
|
-
|
|
9077
|
-
|
|
9078
|
-
|
|
9164
|
+
if (!concurrentSideTask) {
|
|
9165
|
+
entry.promptQueue = branchResult.then(
|
|
9166
|
+
() => void 0,
|
|
9167
|
+
() => void 0
|
|
9168
|
+
);
|
|
9169
|
+
}
|
|
9079
9170
|
return branchResult;
|
|
9080
9171
|
},
|
|
9172
|
+
async createSideTaskSession(sessionId, req, context) {
|
|
9173
|
+
const result = await this.branchSession(
|
|
9174
|
+
sessionId,
|
|
9175
|
+
{
|
|
9176
|
+
name: req.name,
|
|
9177
|
+
sourceType: "side_task",
|
|
9178
|
+
sourceId: sessionId,
|
|
9179
|
+
replayInheritedHistory: false
|
|
9180
|
+
},
|
|
9181
|
+
context
|
|
9182
|
+
);
|
|
9183
|
+
const { forkedFrom: _forkedFrom, ...sideTask } = result;
|
|
9184
|
+
return {
|
|
9185
|
+
...sideTask,
|
|
9186
|
+
parentSessionId: sessionId
|
|
9187
|
+
};
|
|
9188
|
+
},
|
|
9081
9189
|
async changeSessionCwd(sessionId, req, context) {
|
|
9082
9190
|
if (shuttingDown) throw new Error("AcpSessionBridge is shutting down");
|
|
9083
9191
|
const entry = byId.get(sessionId);
|
|
@@ -9105,6 +9213,7 @@ function createAcpSessionBridge(opts) {
|
|
|
9105
9213
|
`changeSessionCwd: unexpected response shape from agent: ${JSON.stringify(raw)}`
|
|
9106
9214
|
);
|
|
9107
9215
|
}
|
|
9216
|
+
entry.effectiveCwd = extResult.newCwd;
|
|
9108
9217
|
if (extResult.previousCwd !== extResult.newCwd) {
|
|
9109
9218
|
entry.events.publish({
|
|
9110
9219
|
type: "session_cwd_changed",
|
|
@@ -9122,6 +9231,10 @@ function createAcpSessionBridge(opts) {
|
|
|
9122
9231
|
() => void 0,
|
|
9123
9232
|
() => void 0
|
|
9124
9233
|
);
|
|
9234
|
+
entry.cwdChangeQueue = cdPromise.then(
|
|
9235
|
+
() => void 0,
|
|
9236
|
+
() => void 0
|
|
9237
|
+
);
|
|
9125
9238
|
const result = await withTimeout(
|
|
9126
9239
|
cdPromise,
|
|
9127
9240
|
Math.max(initTimeoutMs, 3e4),
|
|
@@ -9623,44 +9736,79 @@ function createAcpSessionBridge(opts) {
|
|
|
9623
9736
|
},
|
|
9624
9737
|
async refreshExtensionsForAllSessions(data) {
|
|
9625
9738
|
const sessions = Array.from(byId.values());
|
|
9739
|
+
const bootstrapRefreshConnections = /* @__PURE__ */ new Set();
|
|
9740
|
+
const refreshSession = /* @__PURE__ */ __name(async (entry, refreshBootstrap) => {
|
|
9741
|
+
let inFlight = inFlightExtensionRefreshes.get(entry.sessionId);
|
|
9742
|
+
if (!inFlight || inFlight.connection !== entry.connection || refreshBootstrap && !inFlight.refreshBootstrap) {
|
|
9743
|
+
const promise = (async () => {
|
|
9744
|
+
await entry.connection.extMethod(
|
|
9745
|
+
SERVE_CONTROL_EXT_METHODS.workspaceExtensionsRefresh,
|
|
9746
|
+
{
|
|
9747
|
+
sessionId: entry.sessionId,
|
|
9748
|
+
...refreshBootstrap ? {} : { refreshBootstrap: false }
|
|
9749
|
+
}
|
|
9750
|
+
);
|
|
9751
|
+
})();
|
|
9752
|
+
inFlight = {
|
|
9753
|
+
connection: entry.connection,
|
|
9754
|
+
promise,
|
|
9755
|
+
refreshBootstrap
|
|
9756
|
+
};
|
|
9757
|
+
inFlightExtensionRefreshes.set(entry.sessionId, inFlight);
|
|
9758
|
+
const clear = /* @__PURE__ */ __name(() => {
|
|
9759
|
+
if (inFlightExtensionRefreshes.get(entry.sessionId) === inFlight) {
|
|
9760
|
+
inFlightExtensionRefreshes.delete(entry.sessionId);
|
|
9761
|
+
}
|
|
9762
|
+
}, "clear");
|
|
9763
|
+
void promise.then(clear, clear);
|
|
9764
|
+
}
|
|
9765
|
+
await Promise.race([
|
|
9766
|
+
withTimeout(
|
|
9767
|
+
inFlight.promise,
|
|
9768
|
+
3e4,
|
|
9769
|
+
SERVE_CONTROL_EXT_METHODS.workspaceExtensionsRefresh
|
|
9770
|
+
),
|
|
9771
|
+
getTransportClosedReject(entry)
|
|
9772
|
+
]);
|
|
9773
|
+
}, "refreshSession");
|
|
9626
9774
|
const results = await Promise.all(
|
|
9627
9775
|
sessions.map(async (entry) => {
|
|
9628
9776
|
const info = channelInfoForEntry(entry);
|
|
9629
9777
|
if (!info || info.isDying) {
|
|
9630
|
-
return {
|
|
9778
|
+
return {
|
|
9779
|
+
refreshed: 0,
|
|
9780
|
+
failed: 0,
|
|
9781
|
+
entry,
|
|
9782
|
+
refreshBootstrap: false
|
|
9783
|
+
};
|
|
9631
9784
|
}
|
|
9785
|
+
const refreshBootstrap = !bootstrapRefreshConnections.has(
|
|
9786
|
+
entry.connection
|
|
9787
|
+
);
|
|
9788
|
+
bootstrapRefreshConnections.add(entry.connection);
|
|
9632
9789
|
try {
|
|
9633
|
-
|
|
9634
|
-
|
|
9635
|
-
const promise = (async () => {
|
|
9636
|
-
await entry.connection.extMethod(
|
|
9637
|
-
SERVE_CONTROL_EXT_METHODS.workspaceExtensionsRefresh,
|
|
9638
|
-
{ sessionId: entry.sessionId }
|
|
9639
|
-
);
|
|
9640
|
-
})();
|
|
9641
|
-
inFlight = { connection: entry.connection, promise };
|
|
9642
|
-
inFlightExtensionRefreshes.set(entry.sessionId, inFlight);
|
|
9643
|
-
const clear = /* @__PURE__ */ __name(() => {
|
|
9644
|
-
if (inFlightExtensionRefreshes.get(entry.sessionId) === inFlight) {
|
|
9645
|
-
inFlightExtensionRefreshes.delete(entry.sessionId);
|
|
9646
|
-
}
|
|
9647
|
-
}, "clear");
|
|
9648
|
-
void promise.then(clear, clear);
|
|
9649
|
-
}
|
|
9650
|
-
await Promise.race([
|
|
9651
|
-
withTimeout(
|
|
9652
|
-
inFlight.promise,
|
|
9653
|
-
3e4,
|
|
9654
|
-
SERVE_CONTROL_EXT_METHODS.workspaceExtensionsRefresh
|
|
9655
|
-
),
|
|
9656
|
-
getTransportClosedReject(entry)
|
|
9657
|
-
]);
|
|
9658
|
-
return { refreshed: 1, failed: 0 };
|
|
9790
|
+
await refreshSession(entry, refreshBootstrap);
|
|
9791
|
+
return { refreshed: 1, failed: 0, entry, refreshBootstrap };
|
|
9659
9792
|
} catch (err) {
|
|
9660
9793
|
writeServeDebugLine(
|
|
9661
9794
|
`refreshExtensions: session ${entry.sessionId} failed: ${err instanceof Error ? err.message : String(err)}`
|
|
9662
9795
|
);
|
|
9663
|
-
return { refreshed: 0, failed: 1 };
|
|
9796
|
+
return { refreshed: 0, failed: 1, entry, refreshBootstrap };
|
|
9797
|
+
}
|
|
9798
|
+
})
|
|
9799
|
+
);
|
|
9800
|
+
await Promise.all(
|
|
9801
|
+
results.filter((result) => result.failed > 0 && result.refreshBootstrap).map(async (failedBootstrap) => {
|
|
9802
|
+
const retry = results.find(
|
|
9803
|
+
(result) => result.refreshed > 0 && result.entry.connection === failedBootstrap.entry.connection
|
|
9804
|
+
);
|
|
9805
|
+
if (!retry) return;
|
|
9806
|
+
try {
|
|
9807
|
+
await refreshSession(retry.entry, true);
|
|
9808
|
+
} catch (err) {
|
|
9809
|
+
writeServeDebugLine(
|
|
9810
|
+
`refreshExtensions: bootstrap retry via session ${retry.entry.sessionId} failed: ${err instanceof Error ? err.message : String(err)}`
|
|
9811
|
+
);
|
|
9664
9812
|
}
|
|
9665
9813
|
})
|
|
9666
9814
|
);
|
|
@@ -10097,7 +10245,24 @@ function createAcpSessionBridge(opts) {
|
|
|
10097
10245
|
if (signal?.aborted) {
|
|
10098
10246
|
return { exitCode: null, output: "", aborted: true };
|
|
10099
10247
|
}
|
|
10100
|
-
|
|
10248
|
+
let abortResolve;
|
|
10249
|
+
const onAbort = /* @__PURE__ */ __name(() => abortResolve?.(), "onAbort");
|
|
10250
|
+
try {
|
|
10251
|
+
await Promise.race([
|
|
10252
|
+
entry.cwdChangeQueue,
|
|
10253
|
+
new Promise((resolve2) => {
|
|
10254
|
+
abortResolve = resolve2;
|
|
10255
|
+
if (signal?.aborted) return resolve2();
|
|
10256
|
+
signal?.addEventListener("abort", onAbort, { once: true });
|
|
10257
|
+
})
|
|
10258
|
+
]);
|
|
10259
|
+
} finally {
|
|
10260
|
+
signal?.removeEventListener("abort", onAbort);
|
|
10261
|
+
}
|
|
10262
|
+
if (signal?.aborted) {
|
|
10263
|
+
return { exitCode: null, output: "", aborted: true };
|
|
10264
|
+
}
|
|
10265
|
+
const cwd = entry.effectiveCwd;
|
|
10101
10266
|
entry.events.publish({
|
|
10102
10267
|
type: "user_shell_command",
|
|
10103
10268
|
data: { sessionId, command, cwd },
|
|
@@ -10840,6 +11005,7 @@ var createHttpAcpBridge = createAcpSessionBridge;
|
|
|
10840
11005
|
export {
|
|
10841
11006
|
SessionArtifactValidationError,
|
|
10842
11007
|
SessionArtifactAuthorizationError,
|
|
11008
|
+
SESSION_SOURCE_META_KEY,
|
|
10843
11009
|
parseSessionSource,
|
|
10844
11010
|
extractErrorMessage,
|
|
10845
11011
|
extractErrorCode,
|
|
@@ -447,12 +447,15 @@ function escapePath(filePath) {
|
|
|
447
447
|
return result;
|
|
448
448
|
}
|
|
449
449
|
__name(escapePath, "escapePath");
|
|
450
|
+
function unescapeShellSpecials(value) {
|
|
451
|
+
return value.replace(UNESCAPE_REGEX, "$1");
|
|
452
|
+
}
|
|
453
|
+
__name(unescapeShellSpecials, "unescapeShellSpecials");
|
|
450
454
|
function unescapePath(filePath) {
|
|
451
455
|
if (os.platform() === "win32") {
|
|
452
456
|
return filePath;
|
|
453
457
|
}
|
|
454
|
-
|
|
455
|
-
return unescaped;
|
|
458
|
+
return unescapeShellSpecials(filePath);
|
|
456
459
|
}
|
|
457
460
|
__name(unescapePath, "unescapePath");
|
|
458
461
|
function getProjectHash(projectRoot) {
|
|
@@ -612,8 +615,20 @@ var Storage = class _Storage {
|
|
|
612
615
|
* This is used to isolate runtime output paths between concurrent sessions.
|
|
613
616
|
*/
|
|
614
617
|
static runWithRuntimeBaseDir(dir, cwd, fn) {
|
|
618
|
+
if (_Storage.runtimeBaseDirContext.getStore()?.pinned) {
|
|
619
|
+
return fn();
|
|
620
|
+
}
|
|
615
621
|
const resolved = _Storage.resolveRuntimeBaseDir(dir, cwd);
|
|
616
|
-
return _Storage.runtimeBaseDirContext.run(
|
|
622
|
+
return _Storage.runtimeBaseDirContext.run(
|
|
623
|
+
{ dir: resolved, pinned: false },
|
|
624
|
+
fn
|
|
625
|
+
);
|
|
626
|
+
}
|
|
627
|
+
static runWithResolvedRuntimeBaseDir(dir, fn) {
|
|
628
|
+
return _Storage.runtimeBaseDirContext.run(
|
|
629
|
+
{ dir: path2.resolve(dir), pinned: true },
|
|
630
|
+
fn
|
|
631
|
+
);
|
|
617
632
|
}
|
|
618
633
|
static hasRuntimeBaseDirContext() {
|
|
619
634
|
return _Storage.runtimeBaseDirContext.getStore() !== void 0;
|
|
@@ -622,17 +637,20 @@ var Storage = class _Storage {
|
|
|
622
637
|
* Returns the base directory for all runtime output (temp files, debug logs,
|
|
623
638
|
* session data, todos, insights, etc.).
|
|
624
639
|
*
|
|
625
|
-
* Priority: QWEN_RUNTIME_DIR env var > setRuntimeBaseDir() value > getGlobalQwenDir()
|
|
640
|
+
* Priority: pinned runtime context > QWEN_RUNTIME_DIR env var > configurable context > setRuntimeBaseDir() value > getGlobalQwenDir()
|
|
626
641
|
* @returns Absolute path to the runtime output base directory
|
|
627
642
|
*/
|
|
628
643
|
static getRuntimeBaseDir() {
|
|
644
|
+
const contextualDir = _Storage.runtimeBaseDirContext.getStore();
|
|
645
|
+
if (contextualDir?.pinned) {
|
|
646
|
+
return contextualDir.dir ?? _Storage.getGlobalQwenDir();
|
|
647
|
+
}
|
|
629
648
|
const envDir = process.env["QWEN_RUNTIME_DIR"];
|
|
630
649
|
if (envDir) {
|
|
631
650
|
return _Storage.resolveRuntimeBaseDir(envDir) ?? _Storage.getGlobalQwenDir();
|
|
632
651
|
}
|
|
633
|
-
const contextualDir = _Storage.runtimeBaseDirContext.getStore();
|
|
634
652
|
if (contextualDir !== void 0) {
|
|
635
|
-
return contextualDir ?? _Storage.getGlobalQwenDir();
|
|
653
|
+
return contextualDir.dir ?? _Storage.getGlobalQwenDir();
|
|
636
654
|
}
|
|
637
655
|
if (_Storage.runtimeBaseDir) {
|
|
638
656
|
return _Storage.runtimeBaseDir;
|
|
@@ -1112,6 +1130,7 @@ export {
|
|
|
1112
1130
|
makeRelative,
|
|
1113
1131
|
formatDisplayPath,
|
|
1114
1132
|
escapePath,
|
|
1133
|
+
unescapeShellSpecials,
|
|
1115
1134
|
unescapePath,
|
|
1116
1135
|
getProjectHash,
|
|
1117
1136
|
sanitizeCwd,
|
|
@@ -9,16 +9,6 @@ import {
|
|
|
9
9
|
|
|
10
10
|
// packages/cli/src/ui/utils/formatters.ts
|
|
11
11
|
init_esbuild_shims();
|
|
12
|
-
var formatMemoryUsage = /* @__PURE__ */ __name((bytes) => {
|
|
13
|
-
const gb = bytes / (1024 * 1024 * 1024);
|
|
14
|
-
if (bytes < 1024 * 1024) {
|
|
15
|
-
return `${(bytes / 1024).toFixed(1)} KB`;
|
|
16
|
-
}
|
|
17
|
-
if (bytes < 1024 * 1024 * 1024) {
|
|
18
|
-
return `${(bytes / (1024 * 1024)).toFixed(1)} MB`;
|
|
19
|
-
}
|
|
20
|
-
return `${gb.toFixed(2)} GB`;
|
|
21
|
-
}, "formatMemoryUsage");
|
|
22
12
|
var formatRelativeTime = /* @__PURE__ */ __name((timestamp) => {
|
|
23
13
|
const now = Date.now();
|
|
24
14
|
const diffMs = now - timestamp;
|
|
@@ -94,7 +84,6 @@ var formatDuration = /* @__PURE__ */ __name((milliseconds, options) => {
|
|
|
94
84
|
}, "formatDuration");
|
|
95
85
|
|
|
96
86
|
export {
|
|
97
|
-
formatMemoryUsage,
|
|
98
87
|
formatRelativeTime,
|
|
99
88
|
formatTokenCount,
|
|
100
89
|
formatDuration
|