@qwen-code/qwen-code 0.21.1 → 0.21.2
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 +1 -0
- package/bundled/qc-helper/docs/features/channels/_meta.ts +1 -0
- package/bundled/qc-helper/docs/features/channels/github.md +42 -10
- package/bundled/qc-helper/docs/features/channels/gitlab.md +171 -0
- package/bundled/qc-helper/docs/features/code-review.md +20 -0
- package/bundled/qc-helper/docs/features/hooks.md +20 -0
- package/bundled/qc-helper/docs/features/sub-agents.md +22 -8
- package/bundled/qc-helper/docs/qwen-serve.md +7 -5
- package/bundled/review/SKILL.md +1 -1
- package/chunks/{MaxSizedBox-VI3ROJJA.js → MaxSizedBox-TQBQ247P.js} +42 -38
- package/chunks/{StandaloneSessionPicker-LYXKD2EV.js → StandaloneSessionPicker-2HPTKCLX.js} +58 -54
- package/chunks/{acp-startup-profiler-DFVPFQ6C.js → acp-startup-profiler-2C4A5ZTJ.js} +2 -2
- package/chunks/{acpAgent-WN5SRDQO.js → acpAgent-PS6EDGH3.js} +431 -168
- package/chunks/{agent-K6ECSM64.js → agent-VDOUB35F.js} +38 -34
- package/chunks/{agent-headless-NO4Y2HOE.js → agent-headless-EO53EFS2.js} +38 -34
- package/chunks/{anthropicContentGenerator-V2QOGVYD.js → anthropicContentGenerator-OFHSZJBF.js} +6 -6
- package/chunks/{artifact-tool-6K6U7XYJ.js → artifact-tool-RDN2W7ND.js} +2 -2
- package/chunks/{askUserQuestion-GD2IJJ7I.js → askUserQuestion-OZERWH5R.js} +2 -2
- package/chunks/{bridge-3KJEWDNE.js → bridge-W7AZSRZQ.js} +42 -38
- package/chunks/{build-S6DO7LMM.js → build-GDBLPA24.js} +1 -1
- package/chunks/{channel-management-service-XR7GZSWF.js → channel-management-service-5S7YCWX5.js} +20 -5
- package/chunks/{channel-settings-store-HW4FXXUA.js → channel-settings-store-JFVRSNER.js} +44 -40
- package/chunks/{channel-worker-group-XDPTDWTX.js → channel-worker-group-OVWGYMZS.js} +5 -5
- package/chunks/{channel-worker-manager-YYEHVRRE.js → channel-worker-manager-H55GKOQA.js} +5 -5
- package/chunks/{channel-worker-supervisor-74HTWA2G.js → channel-worker-supervisor-CABBXYHK.js} +3 -3
- package/chunks/{chunk-UWMLWVCA.js → chunk-2IIJTXYF.js} +26 -10
- package/chunks/{chunk-VYOXCEPJ.js → chunk-2KKCCLPT.js} +1 -1
- package/chunks/{chunk-T4TXDL7G.js → chunk-2LEOZTBT.js} +36 -24
- package/chunks/{chunk-XWWKIXVD.js → chunk-3APUUXRF.js} +1 -1
- package/chunks/{chunk-TCIFAA7K.js → chunk-3F2WDAV6.js} +2 -2
- package/chunks/{chunk-SGFT55XI.js → chunk-3I6DUGQD.js} +1 -1
- package/chunks/{chunk-ZURDMIDR.js → chunk-44F4LBWZ.js} +228 -71
- package/chunks/{chunk-GKX7E4CO.js → chunk-45IOTAUS.js} +1 -1
- package/chunks/{chunk-6QIGFD5W.js → chunk-4KP2F2TE.js} +1 -1
- package/chunks/{chunk-X5WNMMIA.js → chunk-54YCNSK5.js} +4241 -1636
- package/chunks/{chunk-P4WOAOJW.js → chunk-56Z7QEAQ.js} +67 -21
- package/chunks/{chunk-UPUG4GXM.js → chunk-5NNHICSA.js} +3 -3
- package/chunks/{chunk-LGAOC3ZS.js → chunk-675H6PLP.js} +1 -1
- package/chunks/{chunk-5KTQXHPY.js → chunk-6CQWRWUC.js} +3 -3
- package/chunks/chunk-6FMJLI5M.js +1591 -0
- package/chunks/{chunk-GZ3RCT54.js → chunk-6MPDY6ZG.js} +1 -1
- package/chunks/{chunk-RCUQIPTN.js → chunk-6PQPKTXP.js} +1 -1
- package/chunks/{chunk-KCO4FLFJ.js → chunk-6TAASXWL.js} +3 -3
- package/chunks/{chunk-JHNRZMHI.js → chunk-77V3VIKL.js} +9 -9
- package/chunks/{chunk-CAPPWD3X.js → chunk-7KAXXBER.js} +3 -3
- package/chunks/{chunk-A4COXFB3.js → chunk-7SJN2IWT.js} +5 -5
- package/chunks/{chunk-Y4IHBGBP.js → chunk-7ULQIS27.js} +1 -1
- package/chunks/{chunk-5MKRTI4T.js → chunk-A7Y5H4TX.js} +4 -4
- package/chunks/{chunk-CVHIL5IG.js → chunk-AOHY3QJ3.js} +13 -6
- package/chunks/chunk-AQ37AY7B.js +93 -0
- package/chunks/{chunk-OCESJA77.js → chunk-AUOULH6Q.js} +45 -45
- package/chunks/{chunk-UBEPNVDI.js → chunk-BBIQAX4V.js} +3 -3
- package/chunks/{chunk-JSD33JG6.js → chunk-CBBP4BMC.js} +23 -9
- package/chunks/{chunk-ZHBO7WVX.js → chunk-CNTR4GR6.js} +1 -1
- package/chunks/{chunk-PB3MBFKG.js → chunk-CO2U743O.js} +4 -4
- package/chunks/{chunk-XZC5VLBZ.js → chunk-CPZAH673.js} +4 -0
- package/chunks/{chunk-T3O2B4XO.js → chunk-CU47KXB5.js} +3 -3
- package/chunks/{chunk-2LKVPASC.js → chunk-D4HTUMGX.js} +3 -3
- package/chunks/{chunk-BNWB5CYE.js → chunk-D6MDRSZ6.js} +7 -7
- package/chunks/{chunk-7BAU433D.js → chunk-DEEABGH2.js} +867 -91
- package/chunks/{chunk-52ZSWYEG.js → chunk-DQ2O5QOJ.js} +1 -1
- package/chunks/{chunk-WBSMNTSV.js → chunk-DSFHVTWD.js} +2 -2
- package/chunks/{chunk-PT722TDT.js → chunk-DUNI4EBW.js} +701 -86
- package/chunks/{chunk-UHUSJ6X7.js → chunk-E2BHWIDT.js} +19 -4
- package/chunks/{chunk-T2QMKU3R.js → chunk-E2FN6SM7.js} +17 -5
- package/chunks/{chunk-W4MIWP6M.js → chunk-E6CJ2SMM.js} +2 -2
- package/chunks/{chunk-5ZF5XXTS.js → chunk-EQNUDTL6.js} +2 -2
- package/chunks/{chunk-2N7CODY5.js → chunk-EU5TBFJI.js} +2 -2
- package/chunks/{chunk-TFRMVU6R.js → chunk-FANRZEAJ.js} +1 -1
- package/chunks/{chunk-WBL3FJEU.js → chunk-FC4KQFCS.js} +1 -1
- package/chunks/{chunk-GNR2RNMP.js → chunk-FCYYAB4S.js} +2 -2
- package/chunks/{chunk-FNMZK765.js → chunk-FJ5WUMUQ.js} +1 -1
- package/chunks/{chunk-J7OACQDE.js → chunk-FNDXMN7I.js} +71 -49
- package/chunks/{chunk-U3E3UQAA.js → chunk-FS674JW4.js} +3 -3
- package/chunks/{chunk-S7W2GKIO.js → chunk-G7XXKQYS.js} +2 -0
- package/chunks/{chunk-VWOOBLTY.js → chunk-GJ2GBPBD.js} +2 -2
- package/chunks/{chunk-TBBV36Y4.js → chunk-GL4JOZXU.js} +4 -4
- package/chunks/{chunk-FTD6DP4T.js → chunk-GURGAJTX.js} +2 -1
- package/chunks/{chunk-65PQENQP.js → chunk-H6I4PGRV.js} +5 -5
- package/chunks/{chunk-7XATOOE7.js → chunk-HC45LTEN.js} +1 -1
- package/chunks/{chunk-VCPIZRYH.js → chunk-HIVKI6O6.js} +7 -7
- package/chunks/{chunk-HMRM2A3U.js → chunk-HX6RLYUO.js} +3 -3
- package/chunks/{chunk-GZXCZHCT.js → chunk-I3G5JWBV.js} +1 -1
- package/chunks/{chunk-2XSLTRFZ.js → chunk-I5BT7ADR.js} +2 -2
- package/chunks/{chunk-GATT5TKW.js → chunk-IGTHU3T4.js} +1 -1
- package/chunks/{chunk-4G2BISNC.js → chunk-IIUGIWWY.js} +1 -1
- package/chunks/{chunk-7I5GTCT4.js → chunk-JCJ7LKNA.js} +5104 -4817
- package/chunks/{chunk-657BH7VM.js → chunk-JE2CEOBO.js} +2 -2
- package/chunks/{chunk-S3TWXGKA.js → chunk-JE7KQ2UP.js} +4 -2
- package/chunks/{chunk-BPZKP57P.js → chunk-JJPKFJBT.js} +3 -3
- package/chunks/{chunk-6PE7N3A4.js → chunk-JLZ3RBQG.js} +7 -5
- package/chunks/{chunk-2LQTH543.js → chunk-JXVC2PL3.js} +2 -2
- package/chunks/{chunk-JCW2R7WC.js → chunk-K623ENWT.js} +3 -79
- package/chunks/{chunk-T2NCM2ET.js → chunk-K6KS3LTN.js} +2 -749
- package/chunks/{chunk-6RPMI2AB.js → chunk-KR32NIAN.js} +6 -6
- package/chunks/{chunk-XBYYDKAZ.js → chunk-KWHKHSIS.js} +8 -7
- package/chunks/{chunk-EVKE2FZL.js → chunk-KXDONCPU.js} +4 -4
- package/chunks/{chunk-5TBMQLGG.js → chunk-L2E5GFAG.js} +2 -2
- package/chunks/{chunk-MHAIJPTD.js → chunk-L32VV3ZJ.js} +12 -12
- package/chunks/{chunk-OKF7JF3R.js → chunk-LHKCY7DY.js} +3 -3
- package/chunks/{chunk-LW3RFMG7.js → chunk-LOY7RWQG.js} +3 -3
- package/chunks/{chunk-AQIDMUGU.js → chunk-LYI2PZDK.js} +1 -1
- package/chunks/{chunk-YGF33UXG.js → chunk-MB32MS4U.js} +12 -3
- package/chunks/{chunk-Y6AXW2OG.js → chunk-MM7TH7ZM.js} +1 -1
- package/chunks/{chunk-2DN4J57Y.js → chunk-N4ACHWNH.js} +1 -1
- package/chunks/{chunk-M7OONWYU.js → chunk-NBD76HUW.js} +4 -2
- package/chunks/{chunk-A2D5BAVP.js → chunk-NHFEMWAZ.js} +1 -1
- package/chunks/{chunk-3EFXSQCM.js → chunk-NTDH4IML.js} +7 -7
- package/chunks/chunk-O6GEWCJA.js +21 -0
- package/chunks/{chunk-7DXQIJID.js → chunk-OFZKFPYG.js} +3 -3
- package/chunks/{chunk-JTV5K7NH.js → chunk-P5VC5USY.js} +1 -1
- package/chunks/{chunk-Q43KPN7X.js → chunk-P755N4CS.js} +3 -3
- package/chunks/{chunk-XFZYFU3I.js → chunk-PCK4B6LR.js} +1 -1
- package/chunks/{chunk-EJGJIBRS.js → chunk-PJOHNFIY.js} +3 -3
- package/chunks/{chunk-WUZ7H6DP.js → chunk-PVNQRENX.js} +1 -1
- package/chunks/{chunk-LO4ROVP4.js → chunk-PZEXDV3H.js} +106 -8
- package/chunks/{chunk-WZRWHXFE.js → chunk-Q3T5KA2V.js} +1 -1
- package/chunks/{chunk-QIZKCVM3.js → chunk-Q5WZTTWE.js} +4 -4
- package/chunks/{chunk-BGTQCTQW.js → chunk-QARJNL2V.js} +3 -3
- package/chunks/{chunk-GXIJHV66.js → chunk-QCXGC7QB.js} +3 -3
- package/chunks/{chunk-DZLYR4U3.js → chunk-QDK4F2N5.js} +1 -1
- package/chunks/{chunk-NOKIVHOL.js → chunk-QTHQ6Z5X.js} +1 -1
- package/chunks/{chunk-A3NDJ5SB.js → chunk-R2XWGR75.js} +2 -2
- package/chunks/{chunk-JX27F6QS.js → chunk-RDJOB6S3.js} +1 -1
- package/chunks/{chunk-TV64SXKD.js → chunk-RG64CDT2.js} +4 -4
- package/chunks/{chunk-JFMA7Y5M.js → chunk-RSVPYAGK.js} +5 -5
- package/chunks/{chunk-64LQLPL7.js → chunk-SHN4KHDK.js} +3 -3
- package/chunks/chunk-T3CHYWJZ.js +758 -0
- package/chunks/{chunk-PONHVBRT.js → chunk-TEGJSJDF.js} +2 -2
- package/chunks/{chunk-75GFAX4R.js → chunk-THVU3RNH.js} +1 -1
- package/chunks/{record-artifact-XAMSFSW4.js → chunk-TIRRPCFS.js} +22 -7
- package/chunks/{chunk-HV26XH34.js → chunk-TTJZAIFP.js} +3 -3
- package/chunks/{chunk-JMONIXMJ.js → chunk-TZTAV5RH.js} +1 -1
- package/chunks/{chunk-7AEJDLRA.js → chunk-UV6KF7T3.js} +2 -2
- package/chunks/{chunk-PLDQBIO6.js → chunk-V25K5ID7.js} +1 -1
- package/chunks/{chunk-S4WJVPZW.js → chunk-V4XNUDPE.js} +3 -3
- package/chunks/{chunk-2FAK6PNM.js → chunk-VEMNQMHA.js} +2 -2
- package/chunks/{chunk-CQL64ESB.js → chunk-VMX5RZQH.js} +12 -10
- package/chunks/{chunk-EIF3FXTB.js → chunk-W3UKBMSI.js} +63 -18
- package/chunks/{chunk-TDL6LB4K.js → chunk-WWCMSZII.js} +21 -9
- package/chunks/{chunk-5YKDXHUY.js → chunk-XP4L6KS3.js} +2 -2
- package/chunks/{chunk-RPLGZJV2.js → chunk-XQK4XXTN.js} +1 -1
- package/chunks/{chunk-KAMYKP7E.js → chunk-XUGZYLDH.js} +1 -1
- package/chunks/{chunk-MR5EAQ5M.js → chunk-YANIWTRZ.js} +1 -1
- package/chunks/{chunk-3L2SPEBH.js → chunk-YGE3IXJP.js} +1 -1
- package/chunks/{chunk-BCZFQXWK.js → chunk-YUFIEIWC.js} +1 -1
- package/chunks/{chunk-75MIQ3LV.js → chunk-Z3S5EMOW.js} +4 -4
- package/chunks/{chunk-BMFALVGQ.js → chunk-ZMOJ7ISP.js} +1 -1
- package/chunks/{chunk-GEBV2JGB.js → chunk-ZPZ7ZJEE.js} +1 -1
- package/chunks/{computer-use-ZTIDHMMA.js → computer-use-5QWCFNKD.js} +38 -34
- package/chunks/{config-utils-NYSXDMEQ.js → config-utils-WADIDWGG.js} +4 -4
- package/chunks/{contextCommand-2PIEU37Z.js → contextCommand-4Z7T7TUM.js} +40 -36
- package/chunks/{core-runtime-3XEYLQFK.js → core-runtime-6N4EFC2Q.js} +38 -34
- package/chunks/{create-sub-session-SBYUMSSS.js → create-sub-session-62YZWVAY.js} +2 -2
- package/chunks/{create-sub-session-R76FVXCI.js → create-sub-session-AEREHZBQ.js} +38 -34
- package/chunks/{cron-create-2QK6TCEC.js → cron-create-6E7GIQTG.js} +4 -4
- package/chunks/{cron-delete-FDCDFYMG.js → cron-delete-JD26XY3W.js} +4 -4
- package/chunks/{cron-list-XN3WVBTP.js → cron-list-CUWFB44G.js} +4 -4
- package/chunks/{daemon-Q2AB5Z23.js → daemon-PCNCI5YU.js} +72 -3
- package/chunks/{daemon-status-provider-3XJI6CAL.js → daemon-status-provider-DDF7C5M7.js} +46 -42
- package/chunks/{daemon-trust-policy-ILUDTLHD.js → daemon-trust-policy-Q4KSOJTR.js} +43 -39
- package/chunks/{daemon-trust-policy-monitor-HS3PKKRO.js → daemon-trust-policy-monitor-V6FTE3IY.js} +43 -39
- package/chunks/{deferred-core-runtime-X4QV662U.js → deferred-core-runtime-GHJ5GQHK.js} +38 -34
- package/chunks/{dist-BSTVRPMT.js → dist-26BIMQT6.js} +276 -16
- package/chunks/{dist-SV7Q3AWJ.js → dist-2PERFI23.js} +12 -9
- package/chunks/{dist-DOLYHMXE.js → dist-OAOC5OV4.js} +2 -2
- package/chunks/{dist-YGBBMK3Z.js → dist-PVEAFLHY.js} +5 -4
- package/chunks/{dist-HVRQ2CFL.js → dist-SL2LUMML.js} +1180 -5
- package/chunks/dist-ULIG4M5H.js +13415 -0
- package/chunks/{dist-IXQEQWRG.js → dist-WGMNT3JQ.js} +1 -1
- package/chunks/{dist-SSU66DM4.js → dist-ZHXOBXDN.js} +1 -1
- package/chunks/{earlyInputCapture-XKLZT7ZD.js → earlyInputCapture-TQXLLISD.js} +39 -35
- package/chunks/{edit-HHGIOTQ2.js → edit-FJEUV6KZ.js} +38 -34
- package/chunks/{enter-worktree-ZN7PUQ46.js → enter-worktree-7GE3TZ4P.js} +38 -34
- package/chunks/{enterPlanMode-EIFIDSIV.js → enterPlanMode-KR5TMPCJ.js} +38 -34
- package/chunks/{environment-XXQ75D2Q.js → environment-SWL3CMB3.js} +40 -36
- package/chunks/{errors-4GMVU7CK.js → errors-XQE7BGZV.js} +40 -36
- package/chunks/{exit-worktree-GXMI4ATY.js → exit-worktree-CHKTYNCV.js} +38 -34
- package/chunks/{exitPlanMode-34UVY7M6.js → exitPlanMode-QYAG6LWX.js} +38 -34
- package/chunks/{fast-path-VPIVA7L6.js → fast-path-Z2K7W6DC.js} +2 -2
- package/chunks/{gemini-4BWIK4WD.js → gemini-YU4XKEDG.js} +91 -87
- package/chunks/{geminiContentGenerator-3XVV5MSS.js → geminiContentGenerator-ZZX6NBO4.js} +6 -6
- package/chunks/{glob-TZ2ABCJG.js → glob-VYF5CXSX.js} +38 -34
- package/chunks/goal-tools-HGO6VXPB.js +335 -0
- package/chunks/{grep-BEF463NA.js → grep-5DP5ZUTW.js} +38 -34
- package/chunks/{handleAutoUpdate-L6ERF36Y.js → handleAutoUpdate-UVBJ56DL.js} +42 -38
- package/chunks/{i18n-FMM5FDXR.js → i18n-UQNYHEUD.js} +39 -35
- package/chunks/{image-gen-HHVLF7HS.js → image-gen-WHPIZNWF.js} +9 -9
- package/chunks/{initializer-625TIAIO.js → initializer-GMIICF4W.js} +44 -40
- package/chunks/{installationInfo-6AM4I2Y3.js → installationInfo-4MGG4WVI.js} +39 -35
- package/chunks/{keychain-token-storage-72IYCAZV.js → keychain-token-storage-IKO4G53C.js} +2 -2
- package/chunks/list-CPN2W334.js +92 -0
- package/chunks/{list-agents-R6KDXQR3.js → list-agents-PXJ7ZUFB.js} +2 -2
- package/chunks/{loadedSettingsAdapter-SPUTNKAV.js → loadedSettingsAdapter-ZQAV5NDO.js} +43 -39
- package/chunks/{loggingContentGenerator-LKOF7XI7.js → loggingContentGenerator-5E7W4IEP.js} +18 -18
- package/chunks/{loop-wakeup-3IQKCYAH.js → loop-wakeup-Y26NQZ5I.js} +13 -6
- package/chunks/{ls-DKZ37A7N.js → ls-ONQTTMQR.js} +4 -4
- package/chunks/{lsp-QNWN7KN3.js → lsp-YGHHRGMD.js} +2 -2
- package/chunks/{managed-npm-update-ACQGGIN5.js → managed-npm-update-MKKAXYXA.js} +39 -35
- package/chunks/{mcp-SZLHKFJW.js → mcp-V5NTJF6X.js} +43 -39
- package/chunks/{monitor-DF52UVHI.js → monitor-CO3ASY6E.js} +38 -34
- package/chunks/nonInteractiveCli-ZJYEOO7U.js +148 -0
- package/chunks/{notebook-edit-FCWS4XVN.js → notebook-edit-Z7AEE6FM.js} +38 -34
- package/chunks/{openaiContentGenerator-7LDK3DCJ.js → openaiContentGenerator-CA3MQOP3.js} +19 -19
- package/chunks/{pidfile-6ERW3DF4.js → pidfile-NL7MKDRU.js} +39 -35
- package/chunks/{processUtils-COKZAMUP.js → processUtils-PB5K2DYH.js} +2 -2
- package/chunks/{qwenContentGenerator-TKWUMR7N.js → qwenContentGenerator-JYFNDCOS.js} +44 -40
- package/chunks/{qwenOAuth2-7HMU47SF.js → qwenOAuth2-W2ALKQDD.js} +8 -8
- package/chunks/{read-file-X6DRC574.js → read-file-IEOR5H5W.js} +11 -11
- package/chunks/{read-mcp-resource-GFTWYXMK.js → read-mcp-resource-U2IJN5HM.js} +2 -2
- package/chunks/record-artifact-MGPJ7EG4.js +21 -0
- package/chunks/{resumeHistoryUtils-PFPM2GWM.js → resumeHistoryUtils-BNBTP5AS.js} +44 -40
- package/chunks/{ripGrep-OWV2IVJC.js → ripGrep-UMQODKEB.js} +38 -34
- package/chunks/{run-qwen-serve-TSTCO4XE.js → run-qwen-serve-RN2R6QQW.js} +116 -65
- package/chunks/{runtime-DAUPSUKI.js → runtime-QFJ2MJF5.js} +48 -44
- package/chunks/{scheduler-KMADMT26.js → scheduler-AMYUFOZI.js} +38 -34
- package/chunks/{sdk-exporters-http-WO556XNU.js → sdk-exporters-http-4BQANSJ6.js} +3 -3
- package/chunks/{sdk-impl-LPAVACSF.js → sdk-impl-Z4VXWVFX.js} +3 -3
- package/chunks/{send-message-SAWK4DZX.js → send-message-PMP4ATVM.js} +6 -11
- package/chunks/{serve-NNRWS6F4.js → serve-EIIYJVX3.js} +43 -39
- package/chunks/{server-WEH7DVCH.js → server-EP2LLAPD.js} +1768 -712
- package/chunks/{session-WXC56V2I.js → session-GMPZBLOW.js} +83 -79
- package/chunks/{settings-DJDXFDZ3.js → settings-LN7RNKBS.js} +47 -43
- package/chunks/{shell-JN5VRQXD.js → shell-EM2OWU5X.js} +38 -34
- package/chunks/{skill-SGXPKJCS.js → skill-T5VPSK73.js} +17 -16
- package/chunks/{skill-settings-VJ5PDMZI.js → skill-settings-GMR3GMNY.js} +42 -38
- package/chunks/{spawnChannel-ETMJW7YX.js → spawnChannel-YPCU62DI.js} +40 -36
- package/chunks/{standalone-update-MK3Z7KBI.js → standalone-update-JAKIM2NF.js} +40 -36
- package/chunks/{startInteractiveUI-ZCGIXPGT.js → startInteractiveUI-YETQWGYF.js} +774 -779
- package/chunks/{syntheticOutput-355CB6CJ.js → syntheticOutput-D7E6ZFKR.js} +3 -3
- package/chunks/{task-create-INGWNUG4.js → task-create-NFCYD43L.js} +10 -9
- package/chunks/{task-list-5XNNGTF4.js → task-list-TAVMGEVD.js} +5 -5
- package/chunks/{task-stop-4ROAOBXH.js → task-stop-ZDF2UJRM.js} +2 -2
- package/chunks/{task-update-CRK5VWWZ.js → task-update-6L7LHGEX.js} +10 -9
- package/chunks/{team-create-QQGAJG7P.js → team-create-LFJ6HGNY.js} +38 -34
- package/chunks/{team-delete-S2RCXA4P.js → team-delete-DPGGRQBU.js} +5 -5
- package/chunks/{team-plan-approval-RT7Q5R6O.js → team-plan-approval-C2KLSDGO.js} +38 -34
- package/chunks/{theme-manager-EEWIQJ7J.js → theme-manager-JQ3ZGBP5.js} +39 -35
- package/chunks/{todoWrite-7WM3VDMY.js → todoWrite-2UO5G6G6.js} +32 -4
- package/chunks/{tool-search-Z3Z4AYKP.js → tool-search-FAZBFRJZ.js} +15 -14
- package/chunks/{total-session-admission-44JKRWQD.js → total-session-admission-5CALIVYO.js} +42 -38
- package/chunks/{trustedFolders-X2JEIO57.js → trustedFolders-KOPSP44S.js} +39 -35
- package/chunks/{update-relaunch-VWNPYDIP.js → update-relaunch-6QL2TICS.js} +5 -5
- package/chunks/{updateCheck-KAQH67DV.js → updateCheck-4Q6RIKFW.js} +41 -37
- package/chunks/{useAutoAcceptIndicator-JH6BCF7S.js → useAutoAcceptIndicator-Q5BMKZV3.js} +47 -43
- package/chunks/{validateNonInterActiveAuth-GIUJ2UFS.js → validateNonInterActiveAuth-GKOC5F6Z.js} +79 -75
- package/chunks/{version-BGLYIJUY.js → version-VSATY2LD.js} +1 -1
- package/chunks/{web-fetch-OTDU4VQF.js → web-fetch-JCLKL6NL.js} +14 -14
- package/chunks/{web-search-FP6SIHPR.js → web-search-DSQTFUBX.js} +8 -8
- package/chunks/{workflow-YCIVBYSB.js → workflow-M6QAVKVJ.js} +41 -37
- package/chunks/workspace-providers-status-YKLTLMJA.js +89 -0
- package/chunks/{workspace-registration-store-OTMS3H4C.js → workspace-registration-store-5DMGKU64.js} +1 -1
- package/chunks/{workspace-registry-O63R6IZ4.js → workspace-registry-PTYUSYXX.js} +42 -38
- package/chunks/{workspace-service-M6LLHKJ5.js → workspace-service-25ML3T47.js} +48 -44
- package/chunks/{workspace-skills-status-C2V7BAIS.js → workspace-skills-status-YKZWOYRX.js} +44 -40
- package/chunks/{workspace-trust-reconciler-IBUPOUJN.js → workspace-trust-reconciler-5FI2S3OS.js} +47 -43
- package/chunks/write-file-AY7VLP5X.js +78 -0
- package/chunks/zoom-image-S4LJZMD5.js +224 -0
- package/cli.js +50 -16
- package/package.json +3 -3
- package/web-shell/assets/{arc-75-Wdeo3.js → arc-xjArKHU2.js} +1 -1
- package/web-shell/assets/{architectureDiagram-3BPJPVTR-FKeXQbyP.js → architectureDiagram-3BPJPVTR-BgrQDNYG.js} +1 -1
- package/web-shell/assets/{blockDiagram-GPEHLZMM-CY0vc-A3.js → blockDiagram-GPEHLZMM-CXxWC-1_.js} +1 -1
- package/web-shell/assets/{c4Diagram-AAUBKEIU-CNP-A-8u.js → c4Diagram-AAUBKEIU-Dx1tLm3v.js} +1 -1
- package/web-shell/assets/channel-B1cyk94G.js +1 -0
- package/web-shell/assets/{chunk-2J33WTMH-GybS4Gii.js → chunk-2J33WTMH-CBxjogVR.js} +1 -1
- package/web-shell/assets/{chunk-4BX2VUAB-02H91V8v.js → chunk-4BX2VUAB-izb-rY5W.js} +1 -1
- package/web-shell/assets/{chunk-55IACEB6-D3M-2VT6.js → chunk-55IACEB6-NzLyvSb8.js} +1 -1
- package/web-shell/assets/{chunk-727SXJPM-CCu29u4H.js → chunk-727SXJPM-DVyKb0dl.js} +1 -1
- package/web-shell/assets/{chunk-AQP2D5EJ-CaFKWgrn.js → chunk-AQP2D5EJ-BtqL7NzB.js} +1 -1
- package/web-shell/assets/{chunk-FMBD7UC4-ZZpPqIwQ.js → chunk-FMBD7UC4-iNpdKIO0.js} +1 -1
- package/web-shell/assets/{chunk-ND2GUHAM-D22DqGs8.js → chunk-ND2GUHAM-DI7cbFmX.js} +1 -1
- package/web-shell/assets/{chunk-QZHKN3VN-Bu85S0fw.js → chunk-QZHKN3VN-3Y_-xFYs.js} +1 -1
- package/web-shell/assets/classDiagram-4FO5ZUOK-BpBYZoRE.js +1 -0
- package/web-shell/assets/classDiagram-v2-Q7XG4LA2-BpBYZoRE.js +1 -0
- package/web-shell/assets/{cose-bilkent-S5V4N54A-f1CK1Gwe.js → cose-bilkent-S5V4N54A--raRatZn.js} +1 -1
- package/web-shell/assets/{dagre-BM42HDAG-D0Ow8F_n.js → dagre-BM42HDAG-B8SU70mO.js} +1 -1
- package/web-shell/assets/{diagram-2AECGRRQ-BPrmTWp8.js → diagram-2AECGRRQ-ewgoakXo.js} +1 -1
- package/web-shell/assets/{diagram-5GNKFQAL-HccuFAzy.js → diagram-5GNKFQAL-Bm_JLTnS.js} +1 -1
- package/web-shell/assets/{diagram-KO2AKTUF-BrS76mbA.js → diagram-KO2AKTUF-DEIUjUy9.js} +1 -1
- package/web-shell/assets/{diagram-LMA3HP47-V7T9lU-5.js → diagram-LMA3HP47-C2Wmrpj-.js} +1 -1
- package/web-shell/assets/{diagram-OG6HWLK6-DKidyJMR.js → diagram-OG6HWLK6-CtYe6bFx.js} +1 -1
- package/web-shell/assets/{erDiagram-TEJ5UH35-DBadZIkp.js → erDiagram-TEJ5UH35-DfpHcWLV.js} +1 -1
- package/web-shell/assets/{flowDiagram-I6XJVG4X-BymfqdNJ.js → flowDiagram-I6XJVG4X-CAiUhio5.js} +1 -1
- package/web-shell/assets/{ganttDiagram-6RSMTGT7-DOw340jf.js → ganttDiagram-6RSMTGT7-CYc7ezr4.js} +1 -1
- package/web-shell/assets/{gitGraphDiagram-PVQCEYII-_8EiD8sl.js → gitGraphDiagram-PVQCEYII-70lbkcRS.js} +1 -1
- package/web-shell/assets/index-C1k3PDuU.css +5 -0
- package/web-shell/assets/index-C2GE3DAF.js +74 -0
- package/web-shell/assets/index-DZLIXILO.js +1750 -0
- package/web-shell/assets/{index-CKIadvET.js → index-Ww86nT9f.js} +1 -1
- package/web-shell/assets/{infoDiagram-5YYISTIA-D61KYQBu.js → infoDiagram-5YYISTIA-C7e8DWPa.js} +1 -1
- package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-CsiXSpNx.js → ishikawaDiagram-YF4QCWOH-BYLr2op-.js} +1 -1
- package/web-shell/assets/{journeyDiagram-JHISSGLW-Sdfionyh.js → journeyDiagram-JHISSGLW-hEibAHKX.js} +1 -1
- package/web-shell/assets/{kanban-definition-UN3LZRKU-C3WI3Cnl.js → kanban-definition-UN3LZRKU-F2rt8Uhp.js} +1 -1
- package/web-shell/assets/{linear-Dpigcc62.js → linear-DPhyNezd.js} +1 -1
- package/web-shell/assets/{mermaid.core-Ct97pqgW.js → mermaid.core-ZUtnug0n.js} +5 -5
- package/web-shell/assets/{mindmap-definition-RKZ34NQL-BzeaN0rB.js → mindmap-definition-RKZ34NQL-DDWcMoi8.js} +1 -1
- package/web-shell/assets/{pieDiagram-4H26LBE5-CvjgcbVD.js → pieDiagram-4H26LBE5-CTRKzw1_.js} +1 -1
- package/web-shell/assets/{quadrantDiagram-W4KKPZXB-BUzgTNdH.js → quadrantDiagram-W4KKPZXB-CAEwYG_z.js} +1 -1
- package/web-shell/assets/{requirementDiagram-4Y6WPE33-B7zKlgUQ.js → requirementDiagram-4Y6WPE33-CRjnH9D9.js} +1 -1
- package/web-shell/assets/{sankeyDiagram-5OEKKPKP-Bb9CQgrT.js → sankeyDiagram-5OEKKPKP-LPQT_sOd.js} +1 -1
- package/web-shell/assets/{sequenceDiagram-3UESZ5HK-DJ6V7itG.js → sequenceDiagram-3UESZ5HK-Ht2Iqvb0.js} +1 -1
- package/web-shell/assets/{stateDiagram-AJRCARHV-IImflERY.js → stateDiagram-AJRCARHV-CIUdqOXu.js} +1 -1
- package/web-shell/assets/stateDiagram-v2-BHNVJYJU-BmqqQZ6w.js +1 -0
- package/web-shell/assets/{timeline-definition-PNZ67QCA-6Q_uWHKh.js → timeline-definition-PNZ67QCA-BcilneZF.js} +1 -1
- package/web-shell/assets/{vennDiagram-CIIHVFJN-TmyKyjwv.js → vennDiagram-CIIHVFJN-BljwiiH1.js} +1 -1
- package/web-shell/assets/{wardley-L42UT6IY-CRh9uiPv.js → wardley-L42UT6IY-DeKjkYjq.js} +1 -1
- package/web-shell/assets/{wardleyDiagram-YWT4CUSO-59TKAW8w.js → wardleyDiagram-YWT4CUSO-L3U1H7KG.js} +1 -1
- package/web-shell/assets/{xychartDiagram-2RQKCTM6-GCSUIK2L.js → xychartDiagram-2RQKCTM6-IJnWsgMT.js} +1 -1
- package/web-shell/index.html +2 -2
- package/chunks/list-L2GA674Y.js +0 -88
- package/chunks/nonInteractiveCli-5T7KYKLK.js +0 -144
- 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-XUGZYLDH.js";
|
|
21
21
|
import {
|
|
22
22
|
BridgeChannelClosedError,
|
|
23
23
|
BridgeTimeoutError,
|
|
@@ -26,12 +26,13 @@ import {
|
|
|
26
26
|
STATUS_SCHEMA_VERSION,
|
|
27
27
|
createIdleWorkspaceExtensionsStatus,
|
|
28
28
|
createIdleWorkspaceHooksStatus
|
|
29
|
-
} from "./chunk-
|
|
29
|
+
} from "./chunk-GURGAJTX.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,
|
|
@@ -39,8 +40,9 @@ import {
|
|
|
39
40
|
MID_TURN_QUEUE_DRAIN_METHOD,
|
|
40
41
|
PROMPT_CANCEL_METHOD,
|
|
41
42
|
TODO_STOP_GUARD_CONTINUATION_CLAIM_METHOD,
|
|
42
|
-
TODO_STOP_GUARD_QUEUE_RELEASE_METHOD
|
|
43
|
-
|
|
43
|
+
TODO_STOP_GUARD_QUEUE_RELEASE_METHOD,
|
|
44
|
+
WORKTREE_MCP_DEFER_META_KEY
|
|
45
|
+
} from "./chunk-CPZAH673.js";
|
|
44
46
|
import {
|
|
45
47
|
BranchWhilePromptActiveError,
|
|
46
48
|
CancelSentinelCollisionError,
|
|
@@ -87,16 +89,16 @@ import {
|
|
|
87
89
|
metadataBudgetBytes,
|
|
88
90
|
normalizeSnapshotPayload,
|
|
89
91
|
stableSessionArtifactId
|
|
90
|
-
} from "./chunk-
|
|
92
|
+
} from "./chunk-54YCNSK5.js";
|
|
91
93
|
import {
|
|
92
94
|
DAEMON_TRACEPARENT_META_KEY,
|
|
93
95
|
DAEMON_TRACESTATE_META_KEY
|
|
94
|
-
} from "./chunk-
|
|
96
|
+
} from "./chunk-Z3S5EMOW.js";
|
|
95
97
|
import {
|
|
96
98
|
INVOCATION_CONTEXT_META_KEY,
|
|
97
99
|
PRIVATE_ACP_CAPABILITY_ENV,
|
|
98
100
|
PRIVATE_PARENT_CAPABILITY_META_KEY
|
|
99
|
-
} from "./chunk-
|
|
101
|
+
} from "./chunk-DUNI4EBW.js";
|
|
100
102
|
import {
|
|
101
103
|
init_esbuild_shims
|
|
102
104
|
} from "./chunk-5O2XNYP6.js";
|
|
@@ -740,6 +742,7 @@ __name(mergeTranscriptUpdateMeta, "mergeTranscriptUpdateMeta");
|
|
|
740
742
|
|
|
741
743
|
// packages/acp-bridge/src/session-source.ts
|
|
742
744
|
init_esbuild_shims();
|
|
745
|
+
var SESSION_SOURCE_META_KEY = "qwen.session.source";
|
|
743
746
|
var SESSION_SOURCE_TYPE_PATTERN = /^[a-z][a-z0-9_-]{0,63}$/;
|
|
744
747
|
var MAX_SESSION_SOURCE_ID_LENGTH = 256;
|
|
745
748
|
function parseSessionSource(sourceType, sourceId) {
|
|
@@ -5424,6 +5427,15 @@ function isRecord3(value) {
|
|
|
5424
5427
|
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
5425
5428
|
}
|
|
5426
5429
|
__name(isRecord3, "isRecord");
|
|
5430
|
+
function sessionSourceRequestMeta(sourceType, sourceId) {
|
|
5431
|
+
return sourceType ? {
|
|
5432
|
+
[SESSION_SOURCE_META_KEY]: {
|
|
5433
|
+
sourceType,
|
|
5434
|
+
...sourceId !== void 0 ? { sourceId } : {}
|
|
5435
|
+
}
|
|
5436
|
+
} : {};
|
|
5437
|
+
}
|
|
5438
|
+
__name(sessionSourceRequestMeta, "sessionSourceRequestMeta");
|
|
5427
5439
|
function isDefinitiveAcpRequestError(error) {
|
|
5428
5440
|
if (error instanceof RequestError) return true;
|
|
5429
5441
|
if (!isRecord3(error)) return false;
|
|
@@ -6670,12 +6682,20 @@ function createAcpSessionBridge(opts) {
|
|
|
6670
6682
|
"qwen-code.daemon.acp_channel.id": ci.id
|
|
6671
6683
|
},
|
|
6672
6684
|
async () => {
|
|
6685
|
+
const request = telemetry.injectPromptContext({
|
|
6686
|
+
cwd: boundWorkspace,
|
|
6687
|
+
mcpServers: [],
|
|
6688
|
+
...sourceType ? { _meta: sessionSourceRequestMeta(sourceType, sourceId) } : {}
|
|
6689
|
+
});
|
|
6673
6690
|
const response = await withTimeout(
|
|
6674
6691
|
ci.connection.newSession(
|
|
6675
|
-
|
|
6676
|
-
|
|
6677
|
-
|
|
6678
|
-
|
|
6692
|
+
worktree ? {
|
|
6693
|
+
...request,
|
|
6694
|
+
_meta: {
|
|
6695
|
+
...isRecord3(request._meta) ? request._meta : {},
|
|
6696
|
+
[WORKTREE_MCP_DEFER_META_KEY]: true
|
|
6697
|
+
}
|
|
6698
|
+
} : request
|
|
6679
6699
|
),
|
|
6680
6700
|
initTimeoutMs,
|
|
6681
6701
|
"newSession"
|
|
@@ -7449,6 +7469,7 @@ function createAcpSessionBridge(opts) {
|
|
|
7449
7469
|
const entry = {
|
|
7450
7470
|
sessionId,
|
|
7451
7471
|
workspaceCwd,
|
|
7472
|
+
effectiveCwd: workspaceCwd,
|
|
7452
7473
|
createdAt: (/* @__PURE__ */ new Date()).toISOString(),
|
|
7453
7474
|
...options.parentSessionId ? { parentSessionId: options.parentSessionId } : {},
|
|
7454
7475
|
...options.sourceType ? { sourceType: options.sourceType } : {},
|
|
@@ -7465,6 +7486,7 @@ function createAcpSessionBridge(opts) {
|
|
|
7465
7486
|
}),
|
|
7466
7487
|
recordingDegraded: false,
|
|
7467
7488
|
closing: false,
|
|
7489
|
+
cwdChangeQueue: Promise.resolve(),
|
|
7468
7490
|
promptQueue: Promise.resolve(),
|
|
7469
7491
|
pendingPromptCount: 0,
|
|
7470
7492
|
pendingPromptList: [],
|
|
@@ -7782,6 +7804,7 @@ function createAcpSessionBridge(opts) {
|
|
|
7782
7804
|
);
|
|
7783
7805
|
}
|
|
7784
7806
|
const historyReplay = action === "load" ? req.historyReplay ?? "stream" : "stream";
|
|
7807
|
+
const hideInheritedHistory = action === "load" && req.hideInheritedHistory === true;
|
|
7785
7808
|
const existing = byId.get(req.sessionId);
|
|
7786
7809
|
if (existing) {
|
|
7787
7810
|
if (existing.closing) {
|
|
@@ -7819,7 +7842,7 @@ function createAcpSessionBridge(opts) {
|
|
|
7819
7842
|
}
|
|
7820
7843
|
const inFlight = inFlightRestores.get(req.sessionId);
|
|
7821
7844
|
if (inFlight) {
|
|
7822
|
-
if (action !== inFlight.action || historyReplay !== inFlight.historyReplay) {
|
|
7845
|
+
if (action !== inFlight.action || historyReplay !== inFlight.historyReplay || hideInheritedHistory !== inFlight.hideInheritedHistory) {
|
|
7823
7846
|
throw new RestoreInProgressError(
|
|
7824
7847
|
req.sessionId,
|
|
7825
7848
|
inFlight.action,
|
|
@@ -7901,11 +7924,20 @@ function createAcpSessionBridge(opts) {
|
|
|
7901
7924
|
// intentionally has no `mcpServers` field for the
|
|
7902
7925
|
// same reason.
|
|
7903
7926
|
mcpServers: [],
|
|
7904
|
-
...historyReplay === "response" ? {
|
|
7927
|
+
...historyReplay === "response" || hideInheritedHistory || req.sourceType ? {
|
|
7905
7928
|
_meta: {
|
|
7906
|
-
|
|
7907
|
-
|
|
7908
|
-
|
|
7929
|
+
...sessionSourceRequestMeta(
|
|
7930
|
+
req.sourceType,
|
|
7931
|
+
req.sourceId
|
|
7932
|
+
),
|
|
7933
|
+
...historyReplay === "response" ? {
|
|
7934
|
+
[LOAD_REPLAY_MODE_META_KEY]: LOAD_REPLAY_BULK_MODE,
|
|
7935
|
+
...req.historyPageSize !== void 0 ? {
|
|
7936
|
+
[LOAD_REPLAY_PAGE_SIZE_META_KEY]: req.historyPageSize
|
|
7937
|
+
} : {}
|
|
7938
|
+
} : {},
|
|
7939
|
+
...hideInheritedHistory ? {
|
|
7940
|
+
[LOAD_REPLAY_HIDE_INHERITED_META_KEY]: true
|
|
7909
7941
|
} : {}
|
|
7910
7942
|
}
|
|
7911
7943
|
} : {}
|
|
@@ -7921,7 +7953,13 @@ function createAcpSessionBridge(opts) {
|
|
|
7921
7953
|
ci.connection.unstable_resumeSession({
|
|
7922
7954
|
sessionId: req.sessionId,
|
|
7923
7955
|
cwd: workspaceKey,
|
|
7924
|
-
mcpServers: []
|
|
7956
|
+
mcpServers: [],
|
|
7957
|
+
...req.sourceType ? {
|
|
7958
|
+
_meta: sessionSourceRequestMeta(
|
|
7959
|
+
req.sourceType,
|
|
7960
|
+
req.sourceId
|
|
7961
|
+
)
|
|
7962
|
+
} : {}
|
|
7925
7963
|
}),
|
|
7926
7964
|
initTimeoutMs,
|
|
7927
7965
|
"resumeSession"
|
|
@@ -8099,6 +8137,7 @@ function createAcpSessionBridge(opts) {
|
|
|
8099
8137
|
inFlightRestores.set(req.sessionId, {
|
|
8100
8138
|
action,
|
|
8101
8139
|
historyReplay,
|
|
8140
|
+
hideInheritedHistory,
|
|
8102
8141
|
promise,
|
|
8103
8142
|
coalesceState
|
|
8104
8143
|
});
|
|
@@ -8977,12 +9016,18 @@ function createAcpSessionBridge(opts) {
|
|
|
8977
9016
|
if (shuttingDown) throw new Error("AcpSessionBridge is shutting down");
|
|
8978
9017
|
const entry = byId.get(sessionId);
|
|
8979
9018
|
if (!entry) throw new SessionNotFoundError(sessionId);
|
|
9019
|
+
const source = parseSessionSource(req.sourceType, req.sourceId);
|
|
9020
|
+
if ("error" in source) {
|
|
9021
|
+
throw new InvalidSessionMetadataError("sourceType", source.error);
|
|
9022
|
+
}
|
|
9023
|
+
const isSideTask = source.sourceType === "side_task";
|
|
8980
9024
|
let originatorClientId;
|
|
8981
9025
|
if (context?.clientId !== void 0) {
|
|
8982
9026
|
originatorClientId = resolveTrustedClientId(entry, context.clientId);
|
|
8983
9027
|
}
|
|
8984
|
-
const
|
|
8985
|
-
|
|
9028
|
+
const concurrentSideTask = isSideTask && entry.promptActive;
|
|
9029
|
+
const branchResult = (concurrentSideTask ? Promise.resolve() : entry.promptQueue).then(async () => {
|
|
9030
|
+
if (entry.promptActive && !isSideTask) {
|
|
8986
9031
|
throw new BranchWhilePromptActiveError(sessionId);
|
|
8987
9032
|
}
|
|
8988
9033
|
if (byId.size + inFlightSpawns.size + inFlightRestores.size >= maxSessions) {
|
|
@@ -9002,13 +9047,16 @@ function createAcpSessionBridge(opts) {
|
|
|
9002
9047
|
try {
|
|
9003
9048
|
const ci = await ensureChannel();
|
|
9004
9049
|
const result = await withTimeout(
|
|
9005
|
-
ci.connection.extMethod(
|
|
9006
|
-
|
|
9007
|
-
|
|
9008
|
-
|
|
9009
|
-
|
|
9050
|
+
ci.connection.extMethod(
|
|
9051
|
+
isSideTask ? SERVE_CONTROL_EXT_METHODS.sessionSideTask : SERVE_CONTROL_EXT_METHODS.sessionBranch,
|
|
9052
|
+
{
|
|
9053
|
+
sessionId,
|
|
9054
|
+
cwd: boundWorkspace,
|
|
9055
|
+
name: req.name
|
|
9056
|
+
}
|
|
9057
|
+
),
|
|
9010
9058
|
initTimeoutMs,
|
|
9011
|
-
"branchSession"
|
|
9059
|
+
isSideTask ? "createSideTaskSession" : "branchSession"
|
|
9012
9060
|
);
|
|
9013
9061
|
if (!result || typeof result.newSessionId !== "string") {
|
|
9014
9062
|
throw new Error(
|
|
@@ -9019,12 +9067,18 @@ function createAcpSessionBridge(opts) {
|
|
|
9019
9067
|
const branchDisplayName = typeof rawBranchName === "string" ? rawBranchName : result.newSessionId.slice(0, 8);
|
|
9020
9068
|
let restored;
|
|
9021
9069
|
try {
|
|
9070
|
+
const hideInheritedHistory = req.replayInheritedHistory === false;
|
|
9022
9071
|
restored = await restoreSession(
|
|
9023
9072
|
"load",
|
|
9024
9073
|
{
|
|
9025
9074
|
sessionId: result.newSessionId,
|
|
9026
9075
|
workspaceCwd: boundWorkspace,
|
|
9027
|
-
clientId: context?.clientId
|
|
9076
|
+
clientId: context?.clientId,
|
|
9077
|
+
...hideInheritedHistory ? {
|
|
9078
|
+
historyReplay: "response",
|
|
9079
|
+
hideInheritedHistory: true
|
|
9080
|
+
} : {},
|
|
9081
|
+
...source
|
|
9028
9082
|
},
|
|
9029
9083
|
{
|
|
9030
9084
|
skipFreshSessionAdmission: true
|
|
@@ -9049,35 +9103,80 @@ function createAcpSessionBridge(opts) {
|
|
|
9049
9103
|
}
|
|
9050
9104
|
const newEntry = byId.get(result.newSessionId);
|
|
9051
9105
|
if (newEntry) newEntry.displayName = branchDisplayName;
|
|
9052
|
-
|
|
9053
|
-
|
|
9054
|
-
|
|
9055
|
-
|
|
9056
|
-
|
|
9057
|
-
|
|
9058
|
-
|
|
9059
|
-
|
|
9060
|
-
|
|
9061
|
-
|
|
9062
|
-
|
|
9106
|
+
let sourcePersisted;
|
|
9107
|
+
if (newEntry?.sourceType) {
|
|
9108
|
+
try {
|
|
9109
|
+
const sourceResult = await withTimeout(
|
|
9110
|
+
newEntry.connection.extMethod(
|
|
9111
|
+
SERVE_CONTROL_EXT_METHODS.sessionSource,
|
|
9112
|
+
{
|
|
9113
|
+
sessionId: newEntry.sessionId,
|
|
9114
|
+
sourceType: newEntry.sourceType,
|
|
9115
|
+
...newEntry.sourceId !== void 0 ? { sourceId: newEntry.sourceId } : {}
|
|
9116
|
+
}
|
|
9117
|
+
),
|
|
9118
|
+
initTimeoutMs,
|
|
9119
|
+
"sessionSource"
|
|
9120
|
+
);
|
|
9121
|
+
sourcePersisted = sourceResult?.persisted === true;
|
|
9122
|
+
} catch (error) {
|
|
9123
|
+
sourcePersisted = false;
|
|
9124
|
+
writeStderrLine(
|
|
9125
|
+
`qwen serve: source metadata for branched session ${result.newSessionId} was not persisted: ${error instanceof Error ? error.message : String(error)}`
|
|
9126
|
+
);
|
|
9127
|
+
}
|
|
9128
|
+
}
|
|
9129
|
+
if (!isSideTask) {
|
|
9130
|
+
const eventData = {
|
|
9131
|
+
sourceSessionId: sessionId,
|
|
9132
|
+
newSessionId: result.newSessionId,
|
|
9133
|
+
displayName: branchDisplayName
|
|
9134
|
+
};
|
|
9135
|
+
const branchEnvelope = {
|
|
9136
|
+
type: "session_branched",
|
|
9137
|
+
data: eventData,
|
|
9138
|
+
...originatorClientId ? { originatorClientId } : {}
|
|
9139
|
+
};
|
|
9140
|
+
newEntry?.events.publish(branchEnvelope);
|
|
9141
|
+
}
|
|
9063
9142
|
return {
|
|
9064
9143
|
...restored,
|
|
9065
9144
|
displayName: branchDisplayName,
|
|
9066
9145
|
forkedFrom: {
|
|
9067
9146
|
sessionId,
|
|
9068
9147
|
displayName: entry.displayName ?? sessionId.slice(0, 8)
|
|
9069
|
-
}
|
|
9148
|
+
},
|
|
9149
|
+
...sourcePersisted !== void 0 ? { sourcePersisted } : {}
|
|
9070
9150
|
};
|
|
9071
9151
|
} finally {
|
|
9072
9152
|
releaseAdmissionOnce();
|
|
9073
9153
|
}
|
|
9074
9154
|
});
|
|
9075
|
-
|
|
9076
|
-
|
|
9077
|
-
|
|
9078
|
-
|
|
9155
|
+
if (!concurrentSideTask) {
|
|
9156
|
+
entry.promptQueue = branchResult.then(
|
|
9157
|
+
() => void 0,
|
|
9158
|
+
() => void 0
|
|
9159
|
+
);
|
|
9160
|
+
}
|
|
9079
9161
|
return branchResult;
|
|
9080
9162
|
},
|
|
9163
|
+
async createSideTaskSession(sessionId, req, context) {
|
|
9164
|
+
const result = await this.branchSession(
|
|
9165
|
+
sessionId,
|
|
9166
|
+
{
|
|
9167
|
+
name: req.name,
|
|
9168
|
+
sourceType: "side_task",
|
|
9169
|
+
sourceId: sessionId,
|
|
9170
|
+
replayInheritedHistory: false
|
|
9171
|
+
},
|
|
9172
|
+
context
|
|
9173
|
+
);
|
|
9174
|
+
const { forkedFrom: _forkedFrom, ...sideTask } = result;
|
|
9175
|
+
return {
|
|
9176
|
+
...sideTask,
|
|
9177
|
+
parentSessionId: sessionId
|
|
9178
|
+
};
|
|
9179
|
+
},
|
|
9081
9180
|
async changeSessionCwd(sessionId, req, context) {
|
|
9082
9181
|
if (shuttingDown) throw new Error("AcpSessionBridge is shutting down");
|
|
9083
9182
|
const entry = byId.get(sessionId);
|
|
@@ -9105,6 +9204,7 @@ function createAcpSessionBridge(opts) {
|
|
|
9105
9204
|
`changeSessionCwd: unexpected response shape from agent: ${JSON.stringify(raw)}`
|
|
9106
9205
|
);
|
|
9107
9206
|
}
|
|
9207
|
+
entry.effectiveCwd = extResult.newCwd;
|
|
9108
9208
|
if (extResult.previousCwd !== extResult.newCwd) {
|
|
9109
9209
|
entry.events.publish({
|
|
9110
9210
|
type: "session_cwd_changed",
|
|
@@ -9122,6 +9222,10 @@ function createAcpSessionBridge(opts) {
|
|
|
9122
9222
|
() => void 0,
|
|
9123
9223
|
() => void 0
|
|
9124
9224
|
);
|
|
9225
|
+
entry.cwdChangeQueue = cdPromise.then(
|
|
9226
|
+
() => void 0,
|
|
9227
|
+
() => void 0
|
|
9228
|
+
);
|
|
9125
9229
|
const result = await withTimeout(
|
|
9126
9230
|
cdPromise,
|
|
9127
9231
|
Math.max(initTimeoutMs, 3e4),
|
|
@@ -9623,44 +9727,79 @@ function createAcpSessionBridge(opts) {
|
|
|
9623
9727
|
},
|
|
9624
9728
|
async refreshExtensionsForAllSessions(data) {
|
|
9625
9729
|
const sessions = Array.from(byId.values());
|
|
9730
|
+
const bootstrapRefreshConnections = /* @__PURE__ */ new Set();
|
|
9731
|
+
const refreshSession = /* @__PURE__ */ __name(async (entry, refreshBootstrap) => {
|
|
9732
|
+
let inFlight = inFlightExtensionRefreshes.get(entry.sessionId);
|
|
9733
|
+
if (!inFlight || inFlight.connection !== entry.connection || refreshBootstrap && !inFlight.refreshBootstrap) {
|
|
9734
|
+
const promise = (async () => {
|
|
9735
|
+
await entry.connection.extMethod(
|
|
9736
|
+
SERVE_CONTROL_EXT_METHODS.workspaceExtensionsRefresh,
|
|
9737
|
+
{
|
|
9738
|
+
sessionId: entry.sessionId,
|
|
9739
|
+
...refreshBootstrap ? {} : { refreshBootstrap: false }
|
|
9740
|
+
}
|
|
9741
|
+
);
|
|
9742
|
+
})();
|
|
9743
|
+
inFlight = {
|
|
9744
|
+
connection: entry.connection,
|
|
9745
|
+
promise,
|
|
9746
|
+
refreshBootstrap
|
|
9747
|
+
};
|
|
9748
|
+
inFlightExtensionRefreshes.set(entry.sessionId, inFlight);
|
|
9749
|
+
const clear = /* @__PURE__ */ __name(() => {
|
|
9750
|
+
if (inFlightExtensionRefreshes.get(entry.sessionId) === inFlight) {
|
|
9751
|
+
inFlightExtensionRefreshes.delete(entry.sessionId);
|
|
9752
|
+
}
|
|
9753
|
+
}, "clear");
|
|
9754
|
+
void promise.then(clear, clear);
|
|
9755
|
+
}
|
|
9756
|
+
await Promise.race([
|
|
9757
|
+
withTimeout(
|
|
9758
|
+
inFlight.promise,
|
|
9759
|
+
3e4,
|
|
9760
|
+
SERVE_CONTROL_EXT_METHODS.workspaceExtensionsRefresh
|
|
9761
|
+
),
|
|
9762
|
+
getTransportClosedReject(entry)
|
|
9763
|
+
]);
|
|
9764
|
+
}, "refreshSession");
|
|
9626
9765
|
const results = await Promise.all(
|
|
9627
9766
|
sessions.map(async (entry) => {
|
|
9628
9767
|
const info = channelInfoForEntry(entry);
|
|
9629
9768
|
if (!info || info.isDying) {
|
|
9630
|
-
return {
|
|
9769
|
+
return {
|
|
9770
|
+
refreshed: 0,
|
|
9771
|
+
failed: 0,
|
|
9772
|
+
entry,
|
|
9773
|
+
refreshBootstrap: false
|
|
9774
|
+
};
|
|
9631
9775
|
}
|
|
9776
|
+
const refreshBootstrap = !bootstrapRefreshConnections.has(
|
|
9777
|
+
entry.connection
|
|
9778
|
+
);
|
|
9779
|
+
bootstrapRefreshConnections.add(entry.connection);
|
|
9632
9780
|
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 };
|
|
9781
|
+
await refreshSession(entry, refreshBootstrap);
|
|
9782
|
+
return { refreshed: 1, failed: 0, entry, refreshBootstrap };
|
|
9659
9783
|
} catch (err) {
|
|
9660
9784
|
writeServeDebugLine(
|
|
9661
9785
|
`refreshExtensions: session ${entry.sessionId} failed: ${err instanceof Error ? err.message : String(err)}`
|
|
9662
9786
|
);
|
|
9663
|
-
return { refreshed: 0, failed: 1 };
|
|
9787
|
+
return { refreshed: 0, failed: 1, entry, refreshBootstrap };
|
|
9788
|
+
}
|
|
9789
|
+
})
|
|
9790
|
+
);
|
|
9791
|
+
await Promise.all(
|
|
9792
|
+
results.filter((result) => result.failed > 0 && result.refreshBootstrap).map(async (failedBootstrap) => {
|
|
9793
|
+
const retry = results.find(
|
|
9794
|
+
(result) => result.refreshed > 0 && result.entry.connection === failedBootstrap.entry.connection
|
|
9795
|
+
);
|
|
9796
|
+
if (!retry) return;
|
|
9797
|
+
try {
|
|
9798
|
+
await refreshSession(retry.entry, true);
|
|
9799
|
+
} catch (err) {
|
|
9800
|
+
writeServeDebugLine(
|
|
9801
|
+
`refreshExtensions: bootstrap retry via session ${retry.entry.sessionId} failed: ${err instanceof Error ? err.message : String(err)}`
|
|
9802
|
+
);
|
|
9664
9803
|
}
|
|
9665
9804
|
})
|
|
9666
9805
|
);
|
|
@@ -10097,7 +10236,24 @@ function createAcpSessionBridge(opts) {
|
|
|
10097
10236
|
if (signal?.aborted) {
|
|
10098
10237
|
return { exitCode: null, output: "", aborted: true };
|
|
10099
10238
|
}
|
|
10100
|
-
|
|
10239
|
+
let abortResolve;
|
|
10240
|
+
const onAbort = /* @__PURE__ */ __name(() => abortResolve?.(), "onAbort");
|
|
10241
|
+
try {
|
|
10242
|
+
await Promise.race([
|
|
10243
|
+
entry.cwdChangeQueue,
|
|
10244
|
+
new Promise((resolve2) => {
|
|
10245
|
+
abortResolve = resolve2;
|
|
10246
|
+
if (signal?.aborted) return resolve2();
|
|
10247
|
+
signal?.addEventListener("abort", onAbort, { once: true });
|
|
10248
|
+
})
|
|
10249
|
+
]);
|
|
10250
|
+
} finally {
|
|
10251
|
+
signal?.removeEventListener("abort", onAbort);
|
|
10252
|
+
}
|
|
10253
|
+
if (signal?.aborted) {
|
|
10254
|
+
return { exitCode: null, output: "", aborted: true };
|
|
10255
|
+
}
|
|
10256
|
+
const cwd = entry.effectiveCwd;
|
|
10101
10257
|
entry.events.publish({
|
|
10102
10258
|
type: "user_shell_command",
|
|
10103
10259
|
data: { sessionId, command, cwd },
|
|
@@ -10840,6 +10996,7 @@ var createHttpAcpBridge = createAcpSessionBridge;
|
|
|
10840
10996
|
export {
|
|
10841
10997
|
SessionArtifactValidationError,
|
|
10842
10998
|
SessionArtifactAuthorizationError,
|
|
10999
|
+
SESSION_SOURCE_META_KEY,
|
|
10843
11000
|
parseSessionSource,
|
|
10844
11001
|
extractErrorMessage,
|
|
10845
11002
|
extractErrorCode,
|