@qwen-code/qwen-code 0.22.3-nightly.20260831.3a0c4c6108 → 0.23.0
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/README.md +30 -0
- package/bundled/computer-use/SKILL.md +116 -180
- package/bundled/goal-draft/SKILL.md +5 -1
- package/bundled/qc-helper/docs/configuration/model-providers.md +4 -0
- package/bundled/qc-helper/docs/configuration/settings.md +53 -50
- package/bundled/qc-helper/docs/features/_meta.ts +1 -0
- package/bundled/qc-helper/docs/features/channels/dingtalk.md +4 -2
- package/bundled/qc-helper/docs/features/channels/dws.md +6 -2
- package/bundled/qc-helper/docs/features/channels/overview.md +1 -0
- package/bundled/qc-helper/docs/features/commands.md +38 -1
- package/bundled/qc-helper/docs/features/computer-use.md +2 -2
- package/bundled/qc-helper/docs/features/goals.md +9 -3
- package/bundled/qc-helper/docs/features/headless.md +16 -1
- package/bundled/qc-helper/docs/features/hooks.md +2 -1
- package/bundled/qc-helper/docs/features/output-styles.md +38 -0
- package/bundled/qc-helper/docs/qwen-serve.md +15 -0
- package/bundled/review/SKILL.md +5 -5
- package/bundled/review/references/posting.md +2 -2
- package/chunks/{MaxSizedBox-IHRTWGSY.js → MaxSizedBox-B3D7545A.js} +41 -45
- package/chunks/{StandaloneSessionPicker-TLVWVTJ7.js → StandaloneSessionPicker-QUMO4LLQ.js} +64 -67
- package/chunks/{acpAgent-7I5LLPP3.js → acpAgent-2GTFCIEP.js} +771 -248
- package/chunks/{agent-4Z4NTJXD.js → agent-XKF5SZWU.js} +26 -30
- package/chunks/{agent-headless-TVUJXQWU.js → agent-headless-OC2IB55D.js} +26 -30
- package/chunks/{anthropicContentGenerator-VSSPG7XV.js → anthropicContentGenerator-L76MR5OR.js} +14 -14
- package/chunks/{artifact-tool-TEYW6I4A.js → artifact-tool-MYCL2QCS.js} +2 -3
- package/chunks/{askUserQuestion-PYNBWV63.js → askUserQuestion-THQZMG44.js} +2 -2
- package/chunks/{bridge-EVURP4NO.js → bridge-IHSBI2YJ.js} +42 -46
- package/chunks/{build-INBK7IXX.js → build-63BIOYWK.js} +1 -1
- package/chunks/{channel-management-service-IDBNYSFW.js → channel-management-service-4MTCEGJB.js} +4 -4
- package/chunks/{channel-settings-store-MZNXRKVI.js → channel-settings-store-BVKWAI2T.js} +50 -54
- package/chunks/{channel-worker-group-ZLP5SJHT.js → channel-worker-group-47F4ISUZ.js} +6 -6
- package/chunks/{channel-worker-manager-FG5377T2.js → channel-worker-manager-I5Y44GYR.js} +50 -9
- package/chunks/{channel-worker-supervisor-HDVE4ADS.js → channel-worker-supervisor-6VCLUXFE.js} +4 -4
- package/chunks/{chunk-3452WXOK.js → chunk-2M3EWQNG.js} +17 -0
- package/chunks/{chunk-HDMKCJHI.js → chunk-32LU3APX.js} +1 -1
- package/chunks/{chunk-BSJOBW4U.js → chunk-37JFWFCD.js} +1 -1
- package/chunks/{chunk-AN3KFCNH.js → chunk-3JQZVCBI.js} +2 -2
- package/chunks/{chunk-RGEV5AUD.js → chunk-3L724BJ5.js} +11 -8
- package/chunks/{chunk-GCUR24KK.js → chunk-47RYEQW5.js} +2 -2
- package/chunks/{chunk-CM4F4JBB.js → chunk-4BGDFKQE.js} +5 -5
- package/chunks/{chunk-ZBDYI7VM.js → chunk-4F7GQGXB.js} +10961 -4033
- package/chunks/{chunk-JMRE4WJQ.js → chunk-4HVH57J3.js} +81 -17
- package/chunks/{chunk-26SIKQIC.js → chunk-4LIFGNI4.js} +1 -1
- package/chunks/{chunk-U5RTYI7D.js → chunk-4M24B5J5.js} +13 -13
- package/chunks/{chunk-7XICSE62.js → chunk-4PSDSCW3.js} +3 -3
- package/chunks/{chunk-AYYKUUKP.js → chunk-4UANMABT.js} +73 -19
- package/chunks/{chunk-GS7XT345.js → chunk-54C6PIGT.js} +3 -3
- package/chunks/{chunk-UKB2TZAO.js → chunk-5EIOJGCR.js} +4 -4
- package/chunks/{chunk-64REQJJ2.js → chunk-5H5S4UY5.js} +3 -3
- package/chunks/chunk-5IENVM7Z.js +35 -0
- package/chunks/{chunk-JOWQD4LO.js → chunk-5Q5RC2WE.js} +1 -1
- package/chunks/{chunk-3NQCZMUB.js → chunk-5RTTI4GE.js} +73 -73
- package/chunks/{chunk-J4Y3QJHF.js → chunk-64QH2UC6.js} +11 -1
- package/chunks/{chunk-I75VKFCJ.js → chunk-65HWLGA7.js} +1 -1
- package/chunks/{chunk-W7KWB6AH.js → chunk-6A2D4QSO.js} +8 -5
- package/chunks/{chunk-OTTNXUT5.js → chunk-7IKXTGZT.js} +1 -1
- package/chunks/{chunk-LYSZVCCD.js → chunk-7JMGTOH7.js} +427 -129
- package/chunks/{chunk-YOFULAHO.js → chunk-7RB56BRJ.js} +3 -3
- package/chunks/{chunk-6VHIWUJP.js → chunk-ADYN7P2Y.js} +2 -2
- package/chunks/{chunk-7DDTI7Q3.js → chunk-AHYTURFB.js} +1 -1
- package/chunks/{chunk-TNMOFNT4.js → chunk-ALUYNJPM.js} +1395 -2079
- package/chunks/{chunk-H2A2GJGL.js → chunk-AZJLY2XZ.js} +5 -5
- package/chunks/{chunk-BE5FGT5Z.js → chunk-BA4WJC4L.js} +1 -1
- package/chunks/{chunk-H5GPPDGY.js → chunk-BFY33IB4.js} +16 -8
- package/chunks/{chunk-RY7DL5IF.js → chunk-BJXCYUGM.js} +1 -1
- package/chunks/{chunk-ND7TQQPE.js → chunk-C2VWOXHS.js} +6 -6
- package/chunks/{chunk-T4RMUTTT.js → chunk-C4TIXFDZ.js} +2 -2
- package/chunks/{chunk-B2RIIK3K.js → chunk-CVX63TFJ.js} +3 -1
- package/chunks/{chunk-SMJYTKTB.js → chunk-DQCKVAF5.js} +1 -1
- package/chunks/{chunk-RLSPPTWH.js → chunk-DSX7KQPM.js} +438 -181
- package/chunks/{chunk-PNIGAVY6.js → chunk-DTVQSSNM.js} +2 -2
- package/chunks/{chunk-67AY5D3M.js → chunk-DYTW3QVG.js} +23 -8
- package/chunks/{chunk-3CZGSTZX.js → chunk-EBDGRBZX.js} +22 -14
- package/chunks/{chunk-DJBQCO2E.js → chunk-EFTPIZIC.js} +412 -3
- package/chunks/{chunk-QE7DTCLX.js → chunk-EIY7SUPZ.js} +1 -1
- package/chunks/{chunk-6OO7QEWV.js → chunk-EVFDRBUM.js} +97 -77
- package/chunks/{chunk-QTMPM6RC.js → chunk-EWRW2WQC.js} +3 -3
- package/chunks/{chunk-IIFL7QDN.js → chunk-F33GFWPR.js} +34 -11
- package/chunks/{chunk-YPISTYEI.js → chunk-F47DITLZ.js} +11 -1
- package/chunks/{chunk-OE5AQVNB.js → chunk-F7NF2IOE.js} +6 -6
- package/chunks/{chunk-RT4QNQ5P.js → chunk-FD5SJOWT.js} +8 -5
- package/chunks/{chunk-ACZ4YRYK.js → chunk-FRICLXCZ.js} +3 -3
- package/chunks/{chunk-IBMUI5EV.js → chunk-FUO5V5KI.js} +11 -4
- package/chunks/{chunk-T3TL6S3B.js → chunk-G5PBOQWI.js} +8 -5
- package/chunks/{chunk-D7D3HSYQ.js → chunk-G7HBEEX7.js} +12 -7
- package/chunks/{chunk-FXUSWLBF.js → chunk-GH2S4GD5.js} +133 -8
- package/chunks/{chunk-XPDKSOVW.js → chunk-GXUTFQXK.js} +42 -44
- package/chunks/{chunk-OSTQZIOY.js → chunk-H43PSPYS.js} +2 -2
- package/chunks/{chunk-UVYKCRJZ.js → chunk-HJBHMANB.js} +11 -13
- package/chunks/{chunk-WLEYH7CD.js → chunk-HRPFBHW7.js} +4 -0
- package/chunks/{chunk-DBTMP3P4.js → chunk-I2TMJPCV.js} +1 -1
- package/chunks/{chunk-EU2B4P3D.js → chunk-I4NRYS6A.js} +4 -4
- package/chunks/{chunk-JPKTAQS3.js → chunk-I5N4EAS6.js} +1 -1
- package/chunks/{chunk-W4BDHLRT.js → chunk-IG4W5SJR.js} +2 -2
- package/chunks/{chunk-BXNKREX7.js → chunk-IPATA3T2.js} +2 -2
- package/chunks/{chunk-NKLP3DCK.js → chunk-IQAFKVXS.js} +1 -1
- package/chunks/{chunk-AYHQZBJ4.js → chunk-IRKQ4YYX.js} +3 -3
- package/chunks/{chunk-J3NNHTV6.js → chunk-J5TTWBZK.js} +6 -0
- package/chunks/{chunk-AVNATYLY.js → chunk-JJKNYRFY.js} +1 -1
- package/chunks/{chunk-ERHAMGAA.js → chunk-JR42V4UY.js} +1 -1
- package/chunks/{chunk-NT7LXVV5.js → chunk-JUARRUMA.js} +362 -1084
- package/chunks/{chunk-OKMDOATP.js → chunk-KEVYJSI4.js} +11 -11
- package/chunks/{chunk-AF3QB6OL.js → chunk-KGV55H53.js} +1 -1
- package/chunks/{chunk-SDCHI64N.js → chunk-KM3XVTMO.js} +10 -4
- package/chunks/{chunk-ERRJA23L.js → chunk-KMU3ZHH4.js} +1 -1
- package/chunks/chunk-KOGW3YWJ.js +2054 -0
- package/chunks/{chunk-6NWPR2EB.js → chunk-L26ONV2Y.js} +5 -5
- package/chunks/chunk-L34XSHIZ.js +28 -0
- package/chunks/{chunk-UXEW7TQS.js → chunk-LB3WQQJK.js} +1 -1
- package/chunks/{chunk-YNG7XAJU.js → chunk-LEPCWS5A.js} +1 -1
- package/chunks/{chunk-XLENZQXH.js → chunk-LHBNR6EU.js} +2 -2
- package/chunks/{chunk-AKNQMSL2.js → chunk-LOBDDFYK.js} +4 -28
- package/chunks/{chunk-L6CUJZDG.js → chunk-LU77UT4D.js} +2 -2
- package/chunks/{chunk-3EGEBDTW.js → chunk-M4KFODIP.js} +1 -1
- package/chunks/{chunk-JLSZT354.js → chunk-M4LBBSVP.js} +2 -0
- package/chunks/{chunk-YOMKOM7E.js → chunk-MP6YZ4RK.js} +6580 -5992
- package/chunks/chunk-N2TNM3QB.js +9 -0
- package/chunks/{chunk-GDXSXL3H.js → chunk-NFIDVZND.js} +1 -1
- package/chunks/{chunk-NT5XIL5H.js → chunk-NQ4L2CMD.js} +51 -6
- package/chunks/{chunk-OQYXJK2V.js → chunk-NRL5CUZT.js} +1 -1
- package/chunks/{chunk-FIWZOMBF.js → chunk-NSUKQ4DN.js} +6 -0
- package/chunks/chunk-NUHOLAQ6.js +59 -0
- package/chunks/{chunk-BBYTY46C.js → chunk-NVVJTUSL.js} +266 -105
- package/chunks/{chunk-CAZADEU7.js → chunk-NXKOVOM5.js} +9 -9
- package/chunks/{chunk-5Q372OFJ.js → chunk-O4KNCAX4.js} +57 -10
- package/chunks/{chunk-GOXKNSDZ.js → chunk-O5CD7T4T.js} +40 -9
- package/chunks/{chunk-XIQ5HQ2F.js → chunk-OBTWL6ZW.js} +1 -1
- package/chunks/{chunk-5MK45KZ3.js → chunk-OHOO527W.js} +1 -1
- package/chunks/{chunk-CETB5XY4.js → chunk-ORFIYTI2.js} +1 -1
- package/chunks/{chunk-7E7UCJHS.js → chunk-OSHQMOBS.js} +18 -17
- package/chunks/{chunk-YDQ4OCDK.js → chunk-OSSTATJF.js} +89 -1
- package/chunks/chunk-P6UIF2OW.js +400 -0
- package/chunks/{chunk-V4HN35IF.js → chunk-PCRBLMIN.js} +16 -2
- package/chunks/{chunk-L2OKAIUK.js → chunk-QI27MKNQ.js} +23 -15
- package/chunks/{chunk-FHPYRXRH.js → chunk-QJGYU5PG.js} +1 -1
- package/chunks/{chunk-IVUWTA2D.js → chunk-QJVZLILI.js} +1 -1
- package/chunks/{chunk-TBJ3SNS3.js → chunk-QKDNS6FU.js} +1 -1
- package/chunks/{chunk-YKADANK6.js → chunk-QQD2GART.js} +10 -3
- package/chunks/{chunk-ED7DD7MV.js → chunk-RAFQIHN2.js} +1 -1
- package/chunks/{chunk-TV7BJ7TX.js → chunk-RJUVTJEZ.js} +1 -1
- package/chunks/{chunk-RVCGAHC7.js → chunk-RM4WT2XB.js} +4 -4
- package/chunks/{chunk-6YXNJXQW.js → chunk-RN3YGDCA.js} +3 -3
- package/chunks/{chunk-SMRDCANI.js → chunk-S6H3ELPG.js} +1 -1
- package/chunks/{chunk-MBZ5ORJB.js → chunk-SI7WDR3U.js} +281 -2
- package/chunks/{chunk-5FGWVPCM.js → chunk-SRF4KTAG.js} +4 -4
- package/chunks/{chunk-LFAR7CPW.js → chunk-STCVJXQB.js} +23 -23
- package/chunks/{chunk-JDIO45X7.js → chunk-SULZPKTA.js} +1 -1
- package/chunks/{chunk-KUDI54QQ.js → chunk-SX2QIMJV.js} +5 -5
- package/chunks/{chunk-VYSZUQGU.js → chunk-TJYRTS4S.js} +2 -2
- package/chunks/{chunk-JOTYTYYW.js → chunk-TMKTOTMQ.js} +3 -3
- package/chunks/{chunk-FPMQT2YY.js → chunk-TQHPVKO6.js} +4 -4
- package/chunks/{chunk-GN422P4J.js → chunk-TSZSGQ3N.js} +1 -1
- package/chunks/{chunk-IXEZHTDR.js → chunk-U4DJ5XB3.js} +292 -38
- package/chunks/{chunk-MZ5A5PQW.js → chunk-UAKRDON5.js} +4 -4
- package/chunks/{chunk-NGKLMNWN.js → chunk-UM2FFKXN.js} +2 -2
- package/chunks/{chunk-5ICKESC3.js → chunk-UPFRILIL.js} +2 -2
- package/chunks/{chunk-RAEEQEC5.js → chunk-UUASLXHW.js} +54 -5
- package/chunks/chunk-V5U2NZNJ.js +29 -0
- package/chunks/{chunk-P5Y23G2L.js → chunk-V7RNNPGC.js} +1 -18
- package/chunks/{chunk-ZYPJ7HVZ.js → chunk-VBWD6C27.js} +1 -1
- package/chunks/{chunk-MJBHSZEJ.js → chunk-VNAYZAFX.js} +3 -3
- package/chunks/chunk-VPSIC437.js +780 -0
- package/chunks/{chunk-AAX236AR.js → chunk-VWTSRH6C.js} +52 -11
- package/chunks/{chunk-PDXYZBBQ.js → chunk-VYIUNFEA.js} +2 -2
- package/chunks/{chunk-BY24DZ4J.js → chunk-WP4AX3XD.js} +5 -7
- package/chunks/{chunk-X7C7KFWA.js → chunk-XLXAZLDR.js} +1 -1
- package/chunks/{chunk-ZQ3FKEWA.js → chunk-YPWZTR7F.js} +3 -3
- package/chunks/{chunk-IXHV5MIC.js → chunk-ZDFQGHZH.js} +1 -1
- package/chunks/chunk-ZJ2LM2SI.js +198 -0
- package/chunks/{chunk-PWR2NQBS.js → chunk-ZKFTS3OV.js} +3 -3
- package/chunks/{chunk-HMJ2P3SV.js → chunk-ZL4HFSL6.js} +91 -29
- package/chunks/{chunk-ID33ZRWH.js → chunk-ZTPGUFQV.js} +28 -6
- package/chunks/chunk-bdqvmfwv-ZTSOWAFE.js +17446 -0
- package/chunks/{config-utils-NNUPVGEC.js → config-utils-LVSYDLHZ.js} +42 -46
- package/chunks/{contextCommand-S3TPCDM5.js → contextCommand-TZD7UAJK.js} +40 -44
- package/chunks/{core-runtime-NASPCSQX.js → core-runtime-B4UKKIAQ.js} +42 -46
- package/chunks/{create-sub-session-36TNCHCP.js → create-sub-session-LUPWEUHR.js} +2 -2
- package/chunks/{create-sub-session-DS4BJLYZ.js → create-sub-session-NJ24B4US.js} +41 -44
- package/chunks/{cron-create-QXHTYUTO.js → cron-create-CRSPET3H.js} +1 -1
- package/chunks/{cron-delete-WV2BM42M.js → cron-delete-DB77SZTU.js} +1 -1
- package/chunks/{cron-list-7KVNBLZ7.js → cron-list-U2JNYWV6.js} +1 -1
- package/chunks/{daemon-UCVUHPJD.js → daemon-RKDGBFLK.js} +385 -19
- package/chunks/{daemon-git-worktree-guard-ATXVQPS3.js → daemon-git-worktree-guard-O2HPOBAB.js} +40 -44
- package/chunks/{daemon-status-provider-UI3GBTMO.js → daemon-status-provider-GRRVCJFW.js} +47 -51
- package/chunks/{daemon-trust-policy-SUCBJ2CA.js → daemon-trust-policy-YJL442BK.js} +46 -50
- package/chunks/{daemon-trust-policy-monitor-3LM5RQNS.js → daemon-trust-policy-monitor-JL7F4Y4Q.js} +46 -50
- package/chunks/{deferred-core-runtime-SCOJLVYG.js → deferred-core-runtime-S32AYVZI.js} +39 -43
- package/chunks/{devtools-JCG4K2NZ.js → devtools-VDRJYPZF.js} +1 -1
- package/chunks/{discovery-X2NV535U.js → discovery-TUM3ZQ6U.js} +2 -2
- package/chunks/{display-image-Z4VBQDEJ.js → display-image-73C7XNRK.js} +3 -3
- package/chunks/{dist-7WDZYMWV.js → dist-62OZ7QXB.js} +2 -2
- package/chunks/{dist-FLJLHASF.js → dist-EDHQIBYD.js} +7 -7
- package/chunks/{dist-S3BKCTWF.js → dist-GT64AAUR.js} +1 -1
- package/chunks/{dist-GPSRNVVP.js → dist-JVXT4VUJ.js} +2 -2
- package/chunks/{dist-LY66XNUL.js → dist-L6URO6CK.js} +3 -3
- package/chunks/{dist-5423MG3D.js → dist-LXFYIJNG.js} +734 -128
- package/chunks/{dist-SDKHGH5O.js → dist-PDGNRVPY.js} +4 -4
- package/chunks/{dist-WAUO5OMN.js → dist-QAF5DO3Y.js} +363 -73
- package/chunks/{dist-WIVVPE7M.js → dist-ZCJLKQSP.js} +1 -1
- package/chunks/{earlyInputCapture-INWJ2STR.js → earlyInputCapture-BBPCIVZG.js} +38 -42
- package/chunks/{edit-B7ZRRGAE.js → edit-SUGXY63Y.js} +26 -30
- package/chunks/{en-E4AYTX6H.js → en-2RATMNX7.js} +2 -0
- package/chunks/{enter-worktree-SPZHEETQ.js → enter-worktree-B6USKSIK.js} +5 -5
- package/chunks/{enterPlanMode-S554IKJ2.js → enterPlanMode-MDX4RVVL.js} +26 -30
- package/chunks/{environment-25ADH4Y6.js → environment-VN6RXDVN.js} +41 -45
- package/chunks/{errors-G2I6LFTW.js → errors-UEY36PIT.js} +40 -44
- package/chunks/{exit-worktree-AWUXAMAM.js → exit-worktree-DLQ73SJH.js} +8 -6
- package/chunks/{exitPlanMode-ZFH4OYPM.js → exitPlanMode-EPHIEDAA.js} +26 -30
- package/chunks/{fast-path-WZHVZ2ER.js → fast-path-Y73R42LV.js} +3 -3
- package/chunks/{fast-path-settings-NILM6QZL.js → fast-path-settings-MFUR3IWK.js} +3 -3
- package/chunks/{glob-UOVDMBUP.js → glob-DMGH7EZN.js} +27 -31
- package/chunks/goal-tools-3RF3PXCL.js +99 -0
- package/chunks/{grep-LHYJ5V2N.js → grep-AJVLCVXC.js} +2 -2
- package/chunks/{handleAutoUpdate-4MZ45DZY.js → handleAutoUpdate-HVWQT2AU.js} +42 -46
- package/chunks/{i18n-KWUEI4DS.js → i18n-5OR7NTRZ.js} +39 -43
- package/chunks/{image-gen-YZDVO5YS.js → image-gen-VOIDOHOB.js} +1 -1
- package/chunks/{initializer-2NBROGMG.js → initializer-JE5RQSOE.js} +46 -50
- package/chunks/{installationInfo-YKUSY3ZB.js → installationInfo-KO3CCSCK.js} +38 -42
- package/chunks/{list-W2WV3COM.js → list-3IORSFIY.js} +49 -53
- package/chunks/{list-agents-PMVMHNY7.js → list-agents-SBMONIUK.js} +3 -3
- package/chunks/{llm-NPPHLIJI.js → llm-K26SUDVK.js} +155 -99
- package/chunks/{llm-content-generator-YK3WN6XW.js → llm-content-generator-TT6EAUD4.js} +5 -6
- package/chunks/{loadedSettingsAdapter-2P7DFWUR.js → loadedSettingsAdapter-KLLFZF3M.js} +46 -50
- package/chunks/{loggingContentGenerator-QYYYGU6V.js → loggingContentGenerator-EYQBA4M4.js} +43 -47
- package/chunks/{loop-wakeup-EBM4F5MZ.js → loop-wakeup-QA6SHCZT.js} +2 -2
- package/chunks/{ls-F6TRX3DD.js → ls-HEJNCEYO.js} +1 -1
- package/chunks/{lsp-QYTOS2FI.js → lsp-WOQKNZP6.js} +1 -1
- package/chunks/{managed-npm-update-UMC4NBWW.js → managed-npm-update-HIJTODQT.js} +38 -42
- package/chunks/{mcp-OFI6XDP2.js → mcp-A2UEHETW.js} +46 -50
- package/chunks/{monitor-QX3BM3JY.js → monitor-DKNZQAB2.js} +28 -32
- package/chunks/{node-QKLNSZMX.js → node-UETAYMMO.js} +3 -3
- package/chunks/{nonInteractiveCli-NVRMD5MN.js → nonInteractiveCli-YA47F2F4.js} +86 -89
- package/chunks/{notebook-edit-AAILDPSV.js → notebook-edit-MGHTRL2D.js} +26 -30
- package/chunks/{openaiContentGenerator-53PB3CMN.js → openaiContentGenerator-ZJIEQ3ZJ.js} +15 -17
- package/chunks/{pidfile-5ACKG2LI.js → pidfile-ETHAZNMY.js} +38 -42
- package/chunks/{processUtils-2BCDO3DZ.js → processUtils-UY3SAJJZ.js} +2 -2
- package/chunks/{prompt-terminal-ledger-3RKW73A2.js → prompt-terminal-ledger-GZ747VYE.js} +39 -43
- package/chunks/{qwenContentGenerator-N4LLWDPH.js → qwenContentGenerator-VI4KATRY.js} +39 -43
- package/chunks/{read-file-DPAKXHYE.js → read-file-P7F4P7LV.js} +6 -8
- package/chunks/{read-mcp-resource-R4NO75DW.js → read-mcp-resource-GLAGB6R7.js} +1 -1
- package/chunks/{record-artifact-2EAYLAL5.js → record-artifact-SWVR7NSU.js} +3 -3
- package/chunks/renderer-selection-M4UN63VJ.js +99 -0
- package/chunks/{report-findings-Y4MSHDS3.js → report-findings-AL5YW3KI.js} +4 -4
- package/chunks/{request-shutdown-DWRMGTMB.js → request-shutdown-5YK4IZ54.js} +5 -5
- package/chunks/{resumeHistoryUtils-3JQORXAK.js → resumeHistoryUtils-DPZKFW24.js} +44 -48
- package/chunks/{ripGrep-AHF5QCI7.js → ripGrep-C7LJKUPZ.js} +9 -11
- package/chunks/{run-qwen-serve-3LKV7KDC.js → run-qwen-serve-OGTEEUR2.js} +132 -81
- package/chunks/{runtime-66F4W3IA.js → runtime-LNBLEMZS.js} +51 -55
- package/chunks/{scheduled-tasks-2NVKS5Q2.js → scheduled-tasks-FLDYZQOF.js} +44 -48
- package/chunks/{scheduler-JNV7T3ZO.js → scheduler-73YXGUGW.js} +40 -44
- package/chunks/{sdk-exporters-grpc-G5IT4XS4.js → sdk-exporters-grpc-MXTVSE3C.js} +2 -2
- package/chunks/{sdk-exporters-http-MFIWD23D.js → sdk-exporters-http-3JO5TJNU.js} +3 -3
- package/chunks/{sdk-impl-2RXJ4Q6X.js → sdk-impl-HZAUUTHJ.js} +5 -5
- package/chunks/{send-message-WPZRCJOB.js → send-message-JC7NJTY6.js} +7 -7
- package/chunks/{serve-GP2UNRP7.js → serve-3UR2H4CV.js} +46 -50
- package/chunks/{server-7W6C3SOW.js → server-AOYZVVOM.js} +1736 -502
- package/chunks/{session-PZLBAQGG.js → session-UAWFNFGI.js} +90 -93
- package/chunks/session-attachments-root-ZCGXQQTR.js +104 -0
- package/chunks/{session-pr-refresh-OIVL3U3Z.js → session-pr-refresh-CT2INROL.js} +131 -65
- package/chunks/{settings-ZOHIQWYK.js → settings-BHRGDASJ.js} +45 -49
- package/chunks/{shell-FWZT6IUR.js → shell-YHOGC7TO.js} +26 -30
- package/chunks/{skill-RTQC2YGA.js → skill-ZGBKNCHQ.js} +71 -49
- package/chunks/{skill-settings-AKMIXFSJ.js → skill-settings-AKSP665O.js} +45 -49
- package/chunks/{spawnChannel-ZP23JL6O.js → spawnChannel-N25MBB6F.js} +40 -44
- package/chunks/{standalone-update-P2Q5H4ZU.js → standalone-update-XGPWJDRN.js} +40 -44
- package/chunks/start-opentui-ui-FZ4USOU7.js +55342 -0
- package/chunks/{startInteractiveUI-NSA6QPQZ.js → startInteractiveUI-E2WQJUOA.js} +2920 -4542
- package/chunks/{syntheticOutput-5URSQLIS.js → syntheticOutput-HJNZSEHN.js} +2 -2
- package/chunks/{task-create-3EXVDG3G.js → task-create-6RSD54S5.js} +7 -7
- package/chunks/{task-list-PIBYNSE7.js → task-list-IQSACPOM.js} +31 -7
- package/chunks/{task-stop-IV3BYWJC.js → task-stop-HE2LRQNW.js} +1 -1
- package/chunks/{task-update-H5BPDS5Y.js → task-update-XAJ2NYOA.js} +7 -7
- package/chunks/{team-create-53T42W37.js → team-create-SOKMYSQU.js} +28 -32
- package/chunks/{team-delete-X3WPELS6.js → team-delete-NGNNKGMG.js} +1 -1
- package/chunks/{team-plan-approval-D45ZC5OE.js → team-plan-approval-U7ZWXYAY.js} +26 -30
- package/chunks/{terminal-image-renderer-FCRUWT6C.js → terminal-image-renderer-KKM4OBLO.js} +40 -44
- package/chunks/{theme-manager-MHNPEDP7.js → theme-manager-GQHF3A7T.js} +38 -42
- package/chunks/{todoWrite-A5IOZZ3P.js → todoWrite-5UTVUXHA.js} +36 -6
- package/chunks/{tool-search-6RPBGGUX.js → tool-search-IAI2RVWT.js} +10 -12
- package/chunks/{total-session-admission-MGV56XDK.js → total-session-admission-G4CGCSTG.js} +43 -47
- package/chunks/{trustedFolders-QJYEFMTU.js → trustedFolders-D2I3FDPB.js} +39 -43
- package/chunks/{update-relaunch-ZDMQX63C.js → update-relaunch-5RWKZAL3.js} +5 -5
- package/chunks/{updateCheck-4QZWCGP6.js → updateCheck-ZXOQDFEI.js} +42 -46
- package/chunks/{useAutoAcceptIndicator-DLIQN256.js → useAutoAcceptIndicator-6EK4QGAH.js} +49 -53
- package/chunks/{validateNonInterActiveAuth-HGTG7AEK.js → validateNonInterActiveAuth-QPFEKATS.js} +82 -86
- package/chunks/{version-CPAZMC4B.js → version-JKNG7YDH.js} +1 -1
- package/chunks/{web-fetch-N4K5M3M4.js → web-fetch-X3AHIIHW.js} +8 -11
- package/chunks/{web-search-4VZKM5SF.js → web-search-K2FMOGS5.js} +6 -7
- package/chunks/{web-shell-static-PW7OEDQO.js → web-shell-static-POZHGGXE.js} +4 -4
- package/chunks/{workflow-2ALQKTHG.js → workflow-TOLPAK5G.js} +38 -38
- package/chunks/{workspace-providers-status-5JM4CB6R.js → workspace-providers-status-PCJK3RC7.js} +50 -54
- package/chunks/{workspace-registration-store-RNMFVCH7.js → workspace-registration-store-KQWVVW4Y.js} +1 -1
- package/chunks/{workspace-registry-6EULAPZC.js → workspace-registry-YNIOB6HJ.js} +43 -47
- package/chunks/{workspace-runtime-coordinator-IRI2DRCJ.js → workspace-runtime-coordinator-WG2RNEN7.js} +43 -47
- package/chunks/{workspace-service-SETHN4WE.js → workspace-service-G4ZNBOFH.js} +51 -55
- package/chunks/{workspace-skills-status-4D4EUEQU.js → workspace-skills-status-FMTPPMWC.js} +47 -51
- package/chunks/{workspace-trust-reconciler-4LR3CDL4.js → workspace-trust-reconciler-IBDFQBQS.js} +53 -57
- package/chunks/wrapper-JH3IFHT2.js +35 -0
- package/chunks/{write-file-45GWPSOI.js → write-file-YTLFY2S5.js} +28 -32
- package/chunks/{zh-2BQ7P6OD.js → zh-25DF7OGK.js} +2 -0
- package/chunks/{zh-TW-UFXRZTXX.js → zh-TW-5EDMZVGK.js} +2 -0
- package/chunks/{zoom-image-K6IQUKRC.js → zoom-image-IFXSN74N.js} +6 -8
- package/cli.js +17 -13
- package/locales/en.js +3 -0
- package/locales/zh-TW.js +3 -0
- package/locales/zh.js +3 -0
- package/package.json +3 -3
- package/web-shell/assets/{abnfDiagram-VCTEODGH-C80OZcPP.js → abnfDiagram-VCTEODGH-Cxf7xE_Z.js} +1 -1
- package/web-shell/assets/{arc-AUqStYgf.js → arc-ESi1eNkE.js} +1 -1
- package/web-shell/assets/{architectureDiagram-5GKGNRK7-CQYOdYla.js → architectureDiagram-5GKGNRK7-D9l7-bDo.js} +1 -1
- package/web-shell/assets/{blockDiagram-NRAW4CY4-lYKlFysy.js → blockDiagram-NRAW4CY4-Bc8DEasw.js} +1 -1
- package/web-shell/assets/{c4Diagram-UCG6FXSJ-BoS23iIp.js → c4Diagram-UCG6FXSJ-Dimb2Hmh.js} +1 -1
- package/web-shell/assets/channel-B7ohGDil.js +1 -0
- package/web-shell/assets/{chunk-2Q5K7J3B-DLLooL1E.js → chunk-2Q5K7J3B-jVDmOpAQ.js} +1 -1
- package/web-shell/assets/{chunk-5VM5RSS4-kPfJxScY.js → chunk-5VM5RSS4-DbG_SwdB.js} +1 -1
- package/web-shell/assets/{chunk-F27PBJKO-CVGFBqkD.js → chunk-F27PBJKO-QEc4cY1v.js} +1 -1
- package/web-shell/assets/{chunk-G27WJ6UU-CnM_kOVV.js → chunk-G27WJ6UU-iJ36lQ3X.js} +1 -1
- package/web-shell/assets/{chunk-JWPE2WC7-Cj-ajOkT.js → chunk-JWPE2WC7-DuArnVtF.js} +1 -1
- package/web-shell/assets/{chunk-LCL6LL3I-8L5c-wFo.js → chunk-LCL6LL3I-DxOf1zwL.js} +1 -1
- package/web-shell/assets/{chunk-POPQ4Y6H-DsXTxpvL.js → chunk-POPQ4Y6H-lVLu9Ild.js} +1 -1
- package/web-shell/assets/{chunk-SVP7TREG-DU5GE1_z.js → chunk-SVP7TREG-C6XYlIer.js} +1 -1
- package/web-shell/assets/{chunk-XXDRQBXY-D2IIWZKt.js → chunk-XXDRQBXY-CiG2j2Ji.js} +1 -1
- package/web-shell/assets/classDiagram-DTDB5LWJ-DdFpqpfD.js +1 -0
- package/web-shell/assets/classDiagram-v2-JRS7N3AN-DdFpqpfD.js +1 -0
- package/web-shell/assets/{cose-bilkent-JH36ORCC-CF_txUJr.js → cose-bilkent-JH36ORCC-DGVHMMVm.js} +1 -1
- package/web-shell/assets/{cynefin-OW5HDTMX-DEZ-My-Z.js → cynefin-OW5HDTMX-D6cgpCnH.js} +1 -1
- package/web-shell/assets/{cynefinDiagram-5FMLGOSQ-BV7EKUS6.js → cynefinDiagram-5FMLGOSQ-BKv4Z-UX.js} +1 -1
- package/web-shell/assets/{dagre-3AP2YEHR-JGIX0G4H.js → dagre-3AP2YEHR-B4ABMIG-.js} +1 -1
- package/web-shell/assets/{diagram-S7CK7UJ4-DdUY7q6A.js → diagram-S7CK7UJ4-DgCkp_Lm.js} +1 -1
- package/web-shell/assets/{diagram-UQ7AKVKN-fhzRZ19v.js → diagram-UQ7AKVKN-FG0FNokz.js} +1 -1
- package/web-shell/assets/{diagram-VSXAHHWV-BOgOex6q.js → diagram-VSXAHHWV-JgkP9qg-.js} +1 -1
- package/web-shell/assets/{diagram-VX7I27RA-C0NknIz6.js → diagram-VX7I27RA-ADh2x83l.js} +1 -1
- package/web-shell/assets/{diagram-Z3DM3KII-C__3mUBX.js → diagram-Z3DM3KII-yXqoYF1J.js} +1 -1
- package/web-shell/assets/{ebnfDiagram-PWID7BFC-BvPhqycH.js → ebnfDiagram-PWID7BFC-Duk83Ek_.js} +1 -1
- package/web-shell/assets/{erDiagram-SSCWMZ5O-BqzoNoL9.js → erDiagram-SSCWMZ5O-DMdvxySG.js} +1 -1
- package/web-shell/assets/{flowDiagram-A5DVABFB-CJKOre47.js → flowDiagram-A5DVABFB-DHjVgSji.js} +1 -1
- package/web-shell/assets/{ganttDiagram-EL5Y4UJY-C5xZjrp0.js → ganttDiagram-EL5Y4UJY-DMM9DkCE.js} +1 -1
- package/web-shell/assets/{gitGraphDiagram-WWUBYQGX-C0EjwuPK.js → gitGraphDiagram-WWUBYQGX-t_ug9vO8.js} +1 -1
- package/web-shell/assets/index-BGZRqbRo.css +36 -0
- package/web-shell/assets/index-DRri_6_x.js +2067 -0
- package/web-shell/assets/{index-C5M93syE.js → index-zqvnpGHv.js} +1 -1
- package/web-shell/assets/{infoDiagram-RXCK75RN-BUwzsYOs.js → infoDiagram-RXCK75RN-eT1fANNm.js} +1 -1
- package/web-shell/assets/{ishikawaDiagram-5VMMS53U-EDJ_DH3V.js → ishikawaDiagram-5VMMS53U-k3evzZNn.js} +1 -1
- package/web-shell/assets/{journeyDiagram-EYS64GPL-BnfcOsS0.js → journeyDiagram-EYS64GPL-CGim3EAi.js} +1 -1
- package/web-shell/assets/{kanban-definition-3QL26DDD-D_ofTVGu.js → kanban-definition-3QL26DDD-WHfJo-22.js} +1 -1
- package/web-shell/assets/{layout-CBuQFdfZ.js → layout-DkqIaFlJ.js} +1 -1
- package/web-shell/assets/{linear-DRIHtmGv.js → linear-Bdkd3mCz.js} +1 -1
- package/web-shell/assets/{mermaid.core-CmR5wZH6.js → mermaid.core-CGw0LkT_.js} +6 -6
- package/web-shell/assets/{mindmap-definition-FBJOCRG2-BV374olC.js → mindmap-definition-FBJOCRG2-C9V4rBvo.js} +1 -1
- package/web-shell/assets/{pegDiagram-XKGWAZYB-Bpy1SplK.js → pegDiagram-XKGWAZYB-CwoI2T5G.js} +1 -1
- package/web-shell/assets/{pieDiagram-E7YTZNPT-CeZx4hR2.js → pieDiagram-E7YTZNPT-DaTmBmPG.js} +1 -1
- package/web-shell/assets/{quadrantDiagram-AXDQQJYC-COYKs14h.js → quadrantDiagram-AXDQQJYC-plh6MyGI.js} +1 -1
- package/web-shell/assets/{railroadDiagram-O6MQD6OU-5g2pOeTs.js → railroadDiagram-O6MQD6OU-D_b-S0iK.js} +1 -1
- package/web-shell/assets/{requirementDiagram-EFPCY7ZU-Yn8uPGtF.js → requirementDiagram-EFPCY7ZU-zUzTN7VE.js} +1 -1
- package/web-shell/assets/{sankeyDiagram-P5KCCOFB-CTayAGq6.js → sankeyDiagram-P5KCCOFB-m6AhoD0l.js} +1 -1
- package/web-shell/assets/{sequenceDiagram-WJ2MYXX4-BFWDKzUU.js → sequenceDiagram-WJ2MYXX4-Cwhzsine.js} +1 -1
- package/web-shell/assets/{sizeCapture-X5ZJPWSS-CtErUbj4.js → sizeCapture-X5ZJPWSS-CcZuKIae.js} +1 -1
- package/web-shell/assets/{stateDiagram-HBIQ2CUA-Co3HFzOd.js → stateDiagram-HBIQ2CUA-CFoiJwD_.js} +1 -1
- package/web-shell/assets/stateDiagram-v2-4QOOHH4V--H8HdEmk.js +1 -0
- package/web-shell/assets/{swimlanes-XN3QIQJK-CDZuxzOj.js → swimlanes-XN3QIQJK-CgS9hcaV.js} +1 -1
- package/web-shell/assets/swimlanesDiagram-VK2B7HYN-ShE9OIgf.js +8 -0
- package/web-shell/assets/{timeline-definition-24CTP7MA-UcNHj8At.js → timeline-definition-24CTP7MA-Dzzc05t9.js} +1 -1
- package/web-shell/assets/{vennDiagram-4TSXK5OY-JKR9pVFG.js → vennDiagram-4TSXK5OY-DemK0f7Y.js} +1 -1
- package/web-shell/assets/{wardleyDiagram-VM6X3IG4-C4SU-yIW.js → wardleyDiagram-VM6X3IG4-CquLxtMr.js} +1 -1
- package/web-shell/assets/{xychartDiagram-S5SC5T6Z-D_yoWGZ4.js → xychartDiagram-S5SC5T6Z-BTBKTM5g.js} +1 -1
- package/web-shell/index.html +2 -2
- package/chunks/chunk-4P7PPAHN.js +0 -3097
- package/chunks/chunk-7J6OTNGO.js +0 -424
- package/chunks/chunk-LMMHS3RS.js +0 -135
- package/chunks/chunk-MZYWNU66.js +0 -149
- package/chunks/chunk-T4EFG2P5.js +0 -113
- package/chunks/chunk-XZA32HII.js +0 -19
- package/chunks/goal-tools-7TNK5ZHC.js +0 -411
- package/web-shell/assets/channel-B0ovOJeK.js +0 -1
- package/web-shell/assets/classDiagram-DTDB5LWJ-DMll2-6_.js +0 -1
- package/web-shell/assets/classDiagram-v2-JRS7N3AN-DMll2-6_.js +0 -1
- package/web-shell/assets/index-B_IPzA0h.js +0 -2020
- package/web-shell/assets/index-D1OKGQlM.css +0 -36
- package/web-shell/assets/stateDiagram-v2-4QOOHH4V-C3gdRjPm.js +0 -1
- package/web-shell/assets/swimlanesDiagram-VK2B7HYN-C34TGCPZ.js +0 -8
- /package/chunks/{chunk-FOGQO4FG.js → chunk-JA5CBKRP.js} +0 -0
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
// Force strict mode and setup for ESM
|
|
2
2
|
"use strict";
|
|
3
3
|
import {
|
|
4
|
-
|
|
5
|
-
} from "./chunk-
|
|
4
|
+
classifyApiError
|
|
5
|
+
} from "./chunk-V7RNNPGC.js";
|
|
6
6
|
import {
|
|
7
|
-
classifyApiError,
|
|
8
7
|
fireSessionDeleteHook
|
|
9
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-L34XSHIZ.js";
|
|
9
|
+
import {
|
|
10
|
+
normalizePartList
|
|
11
|
+
} from "./chunk-5IENVM7Z.js";
|
|
10
12
|
import {
|
|
11
13
|
EXTENSION_CONTEXT_BUDGET,
|
|
12
14
|
buildExtensionMentionContext,
|
|
@@ -14,13 +16,9 @@ import {
|
|
|
14
16
|
extractAtPathCommands,
|
|
15
17
|
matchExtensionByRef,
|
|
16
18
|
matchMcpServerByRef,
|
|
17
|
-
normalizePartList,
|
|
18
19
|
parseExtensionRef,
|
|
19
20
|
parseMcpServerRef
|
|
20
|
-
} from "./chunk-
|
|
21
|
-
import {
|
|
22
|
-
getCommandSubcommandNames
|
|
23
|
-
} from "./chunk-QE7DTCLX.js";
|
|
21
|
+
} from "./chunk-LOBDDFYK.js";
|
|
24
22
|
import {
|
|
25
23
|
getAvailableCommands,
|
|
26
24
|
getSlashCommandFirstToken,
|
|
@@ -29,7 +27,10 @@ import {
|
|
|
29
27
|
isSlashCommand,
|
|
30
28
|
recordDaemonSessionModel,
|
|
31
29
|
restoreSessionModelThenAuthenticate
|
|
32
|
-
} from "./chunk-
|
|
30
|
+
} from "./chunk-NVVJTUSL.js";
|
|
31
|
+
import {
|
|
32
|
+
recomputeMcpGating
|
|
33
|
+
} from "./chunk-UUASLXHW.js";
|
|
33
34
|
import {
|
|
34
35
|
SessionIdConflictError,
|
|
35
36
|
appEvents,
|
|
@@ -37,35 +38,40 @@ import {
|
|
|
37
38
|
buildEnabledSkillNamesProvider,
|
|
38
39
|
cleanupReviewWorktreeLeases,
|
|
39
40
|
loadCliConfig,
|
|
40
|
-
normalizeDisabledToolList
|
|
41
|
-
|
|
41
|
+
normalizeDisabledToolList,
|
|
42
|
+
parseApprovalModeValue
|
|
43
|
+
} from "./chunk-MP6YZ4RK.js";
|
|
44
|
+
import {
|
|
45
|
+
getCommandSubcommandNames
|
|
46
|
+
} from "./chunk-EIY7SUPZ.js";
|
|
42
47
|
import {
|
|
43
48
|
getEffectiveSupportedModes
|
|
44
|
-
} from "./chunk-
|
|
49
|
+
} from "./chunk-5RTTI4GE.js";
|
|
50
|
+
import "./chunk-3SH53ANB.js";
|
|
45
51
|
import "./chunk-NYX53SV4.js";
|
|
46
|
-
import "./chunk-
|
|
52
|
+
import "./chunk-M4LBBSVP.js";
|
|
47
53
|
import {
|
|
48
54
|
collectContextData,
|
|
49
55
|
formatContextUsageText
|
|
50
|
-
} from "./chunk-
|
|
56
|
+
} from "./chunk-SX2QIMJV.js";
|
|
51
57
|
import "./chunk-4WGODMVR.js";
|
|
52
58
|
import {
|
|
53
59
|
startNonInteractiveOpenAILogHousekeeping
|
|
54
|
-
} from "./chunk-
|
|
60
|
+
} from "./chunk-GXUTFQXK.js";
|
|
55
61
|
import "./chunk-KW7NOTN6.js";
|
|
56
|
-
import "./chunk-
|
|
57
|
-
import "./chunk-
|
|
62
|
+
import "./chunk-JHN7UIDW.js";
|
|
63
|
+
import "./chunk-5EIOJGCR.js";
|
|
64
|
+
import "./chunk-37JFWFCD.js";
|
|
58
65
|
import {
|
|
59
66
|
isGoalStatusKind
|
|
60
67
|
} from "./chunk-EKTCKZV5.js";
|
|
61
|
-
import "./chunk-
|
|
68
|
+
import "./chunk-UM2FFKXN.js";
|
|
62
69
|
import "./chunk-YAF2MQZ6.js";
|
|
63
|
-
import "./chunk-JHN7UIDW.js";
|
|
64
70
|
import {
|
|
65
71
|
computeCpuPercent
|
|
66
72
|
} from "./chunk-LBOVL47Y.js";
|
|
67
73
|
import "./chunk-24FVUD5P.js";
|
|
68
|
-
import "./chunk-
|
|
74
|
+
import "./chunk-EWRW2WQC.js";
|
|
69
75
|
import "./chunk-6H67XLET.js";
|
|
70
76
|
import {
|
|
71
77
|
beginAcpBootstrapConfigProfiling,
|
|
@@ -73,8 +79,7 @@ import {
|
|
|
73
79
|
endAcpBootstrapConfigProfiling,
|
|
74
80
|
markAcpStartup
|
|
75
81
|
} from "./chunk-JZWOCUZ3.js";
|
|
76
|
-
import "./chunk-
|
|
77
|
-
import "./chunk-MJBHSZEJ.js";
|
|
82
|
+
import "./chunk-VNAYZAFX.js";
|
|
78
83
|
import {
|
|
79
84
|
GENERATION_MAX_PROMPT_BYTES,
|
|
80
85
|
GENERATION_TIMEOUT_MS,
|
|
@@ -95,7 +100,7 @@ import {
|
|
|
95
100
|
shouldSuppressRememberErrorDetails,
|
|
96
101
|
workspaceMemoryFailureCode,
|
|
97
102
|
workspaceMemoryFailureDiagnostics
|
|
98
|
-
} from "./chunk-
|
|
103
|
+
} from "./chunk-WP4AX3XD.js";
|
|
99
104
|
import {
|
|
100
105
|
BaseEmitter,
|
|
101
106
|
HistoryReplayer,
|
|
@@ -106,10 +111,10 @@ import {
|
|
|
106
111
|
hasFullSessionContext,
|
|
107
112
|
observeAcpToolResultProjection,
|
|
108
113
|
observeAcpToolResultWire
|
|
109
|
-
} from "./chunk-
|
|
114
|
+
} from "./chunk-QI27MKNQ.js";
|
|
110
115
|
import "./chunk-XEAAO654.js";
|
|
116
|
+
import "./chunk-NRL5CUZT.js";
|
|
111
117
|
import "./chunk-47ECGEJC.js";
|
|
112
|
-
import "./chunk-OQYXJK2V.js";
|
|
113
118
|
import "./chunk-2MIN6GRR.js";
|
|
114
119
|
import "./chunk-QHTIBUWB.js";
|
|
115
120
|
import "./chunk-TXASDT2M.js";
|
|
@@ -138,7 +143,7 @@ import {
|
|
|
138
143
|
normalizeChannelDeliveryText,
|
|
139
144
|
scheduledTaskRunSessionName,
|
|
140
145
|
scheduledTaskRunSourceId
|
|
141
|
-
} from "./chunk-
|
|
146
|
+
} from "./chunk-DTVQSSNM.js";
|
|
142
147
|
import {
|
|
143
148
|
normalizeSessionIdForLookup,
|
|
144
149
|
parseCallerSuppliedSessionId
|
|
@@ -149,33 +154,43 @@ import {
|
|
|
149
154
|
buildPermissionSettings,
|
|
150
155
|
normalizePermissionRules,
|
|
151
156
|
readPermissionRuleSet
|
|
152
|
-
} from "./chunk-
|
|
157
|
+
} from "./chunk-I5N4EAS6.js";
|
|
153
158
|
import {
|
|
154
159
|
MAX_AUDIO_BYTES,
|
|
155
160
|
sanitizeVoiceErrorMessage,
|
|
156
161
|
transcribeVoiceAudio
|
|
157
|
-
} from "./chunk-
|
|
162
|
+
} from "./chunk-LEPCWS5A.js";
|
|
158
163
|
import {
|
|
159
164
|
readVoiceModel
|
|
160
|
-
} from "./chunk-
|
|
165
|
+
} from "./chunk-BA4WJC4L.js";
|
|
161
166
|
import "./chunk-QAK5475D.js";
|
|
162
|
-
import "./chunk-
|
|
163
|
-
import "./chunk-
|
|
167
|
+
import "./chunk-RN3YGDCA.js";
|
|
168
|
+
import "./chunk-3JQZVCBI.js";
|
|
164
169
|
import "./chunk-JS73NNWF.js";
|
|
165
170
|
import {
|
|
166
171
|
SCHEDULED_TASK_RUN_SOURCE_TYPE
|
|
167
|
-
} from "./chunk-
|
|
172
|
+
} from "./chunk-DSX7KQPM.js";
|
|
168
173
|
import "./chunk-7U5G6JXI.js";
|
|
169
174
|
import "./chunk-WCCLLK7X.js";
|
|
170
175
|
import "./chunk-OCPBI7J5.js";
|
|
171
176
|
import {
|
|
177
|
+
ndJsonStream
|
|
178
|
+
} from "./chunk-4HVH57J3.js";
|
|
179
|
+
import {
|
|
180
|
+
PERSIST_REASONING_SELECTION_META_KEY,
|
|
172
181
|
REASONING_EFFORT_DEFAULT,
|
|
173
182
|
REASONING_EFFORT_NAMES,
|
|
174
183
|
REASONING_EFFORT_NONE,
|
|
184
|
+
REASONING_SELECTION_PERSISTED_META_KEY,
|
|
185
|
+
applyReasoningSelection,
|
|
175
186
|
buildModelReasoningConfigOption,
|
|
176
187
|
buildModelReasoningConfigPreview,
|
|
177
|
-
|
|
178
|
-
|
|
188
|
+
clearReasoningRequestOverrides,
|
|
189
|
+
getModelConfiguration,
|
|
190
|
+
isReasoningSelectionSupported,
|
|
191
|
+
parseReasoningSelection,
|
|
192
|
+
resolvePersistedReasoningConfigState
|
|
193
|
+
} from "./chunk-ZJ2LM2SI.js";
|
|
179
194
|
import {
|
|
180
195
|
ACP_ROUTE_ID_PREFIX,
|
|
181
196
|
buildAcpModelOptions,
|
|
@@ -184,36 +199,34 @@ import {
|
|
|
184
199
|
parseAcpModelOption,
|
|
185
200
|
resolveAcpModelOption,
|
|
186
201
|
sanitizeProviderBaseUrl
|
|
187
|
-
} from "./chunk-
|
|
202
|
+
} from "./chunk-6A2D4QSO.js";
|
|
188
203
|
import {
|
|
189
204
|
mapSkillConfigToStatus
|
|
190
205
|
} from "./chunk-BHTYRHJF.js";
|
|
206
|
+
import {
|
|
207
|
+
ACP_PREFLIGHT_KINDS,
|
|
208
|
+
IDLE_HOOK_EVENTS,
|
|
209
|
+
SERVE_CONTROL_EXT_METHODS,
|
|
210
|
+
SERVE_STATUS_EXT_METHODS,
|
|
211
|
+
STATUS_SCHEMA_VERSION,
|
|
212
|
+
mapDomainErrorToErrorKind
|
|
213
|
+
} from "./chunk-64QH2UC6.js";
|
|
191
214
|
import {
|
|
192
215
|
resolveSkillSettings
|
|
193
216
|
} from "./chunk-HWVUSYSN.js";
|
|
194
217
|
import "./chunk-DMEUXLSS.js";
|
|
195
|
-
import "./chunk-
|
|
196
|
-
import "./chunk-
|
|
218
|
+
import "./chunk-F7NF2IOE.js";
|
|
219
|
+
import "./chunk-AZJLY2XZ.js";
|
|
197
220
|
import "./chunk-57OAHC2Y.js";
|
|
198
|
-
import "./chunk-
|
|
199
|
-
import "./chunk-
|
|
200
|
-
import "./chunk-
|
|
221
|
+
import "./chunk-PCRBLMIN.js";
|
|
222
|
+
import "./chunk-NXKOVOM5.js";
|
|
223
|
+
import "./chunk-TSZSGQ3N.js";
|
|
201
224
|
import "./chunk-V6WHFGST.js";
|
|
202
225
|
import {
|
|
203
226
|
createLoadedSettingsAdapter
|
|
204
|
-
} from "./chunk-
|
|
205
|
-
import
|
|
206
|
-
|
|
207
|
-
} from "./chunk-JMRE4WJQ.js";
|
|
208
|
-
import {
|
|
209
|
-
ACP_PREFLIGHT_KINDS,
|
|
210
|
-
IDLE_HOOK_EVENTS,
|
|
211
|
-
SERVE_CONTROL_EXT_METHODS,
|
|
212
|
-
SERVE_STATUS_EXT_METHODS,
|
|
213
|
-
STATUS_SCHEMA_VERSION,
|
|
214
|
-
mapDomainErrorToErrorKind
|
|
215
|
-
} from "./chunk-J4Y3QJHF.js";
|
|
216
|
-
import "./chunk-SMRDCANI.js";
|
|
227
|
+
} from "./chunk-32LU3APX.js";
|
|
228
|
+
import "./chunk-S6H3ELPG.js";
|
|
229
|
+
import "./chunk-7XL4WRXM.js";
|
|
217
230
|
import {
|
|
218
231
|
ACTIVE_WORK_CLOSE_IF_UNHELD_PARAM,
|
|
219
232
|
ACTIVE_WORK_HEARTBEAT_META_KEY,
|
|
@@ -255,12 +268,12 @@ import {
|
|
|
255
268
|
import {
|
|
256
269
|
NOT_CURRENTLY_GENERATING_CANCEL_MESSAGE,
|
|
257
270
|
isNotCurrentlyGeneratingCancelError
|
|
258
|
-
} from "./chunk-
|
|
271
|
+
} from "./chunk-F47DITLZ.js";
|
|
259
272
|
import "./chunk-6PLDPT2C.js";
|
|
260
273
|
import "./chunk-FYJ7W2PI.js";
|
|
261
274
|
import "./chunk-STUJ7IMZ.js";
|
|
262
275
|
import "./chunk-GYTKQYDB.js";
|
|
263
|
-
import "./chunk-
|
|
276
|
+
import "./chunk-M4KFODIP.js";
|
|
264
277
|
import "./chunk-ALMR3E6Q.js";
|
|
265
278
|
import "./chunk-RKFGE7JH.js";
|
|
266
279
|
import "./chunk-UDG5EZJI.js";
|
|
@@ -274,32 +287,35 @@ import {
|
|
|
274
287
|
isValidExternalToolGuardDenialReason
|
|
275
288
|
} from "./chunk-3VUENPWF.js";
|
|
276
289
|
import "./chunk-M5GB774H.js";
|
|
277
|
-
import "./chunk-ZVP4PWBU.js";
|
|
278
290
|
import {
|
|
279
291
|
ACP_EVENT_LOOP_STALL_RESTART_MS,
|
|
280
292
|
CHANNEL_PROMPT_META_KEY
|
|
281
|
-
} from "./chunk-
|
|
293
|
+
} from "./chunk-U4DJ5XB3.js";
|
|
282
294
|
import {
|
|
283
295
|
AgentSideConnection,
|
|
284
296
|
PROTOCOL_VERSION,
|
|
285
297
|
RequestError
|
|
286
298
|
} from "./chunk-IW6RQPQB.js";
|
|
299
|
+
import "./chunk-ZVP4PWBU.js";
|
|
287
300
|
import {
|
|
288
301
|
assembleMcpServers,
|
|
289
302
|
loadMcpApprovals
|
|
290
|
-
} from "./chunk-
|
|
303
|
+
} from "./chunk-C2VWOXHS.js";
|
|
291
304
|
import {
|
|
305
|
+
deleteNestedPropertySafe,
|
|
292
306
|
getOutputLanguageFilePath,
|
|
293
307
|
getPersistScopeForModelSelection,
|
|
294
308
|
getUserSettingsPath,
|
|
309
|
+
getWritableScopes,
|
|
295
310
|
loadSettings,
|
|
296
311
|
resolveOutputLanguageOrPreserveAuto,
|
|
312
|
+
settingExistsInScope,
|
|
297
313
|
updateOutputLanguageFile,
|
|
298
314
|
writeOutputLanguageAndRegisterPath
|
|
299
|
-
} from "./chunk-
|
|
300
|
-
import "./chunk-
|
|
315
|
+
} from "./chunk-VWTSRH6C.js";
|
|
316
|
+
import "./chunk-NQ4L2CMD.js";
|
|
301
317
|
import "./chunk-RKUWKYED.js";
|
|
302
|
-
import "./chunk-
|
|
318
|
+
import "./chunk-O5CD7T4T.js";
|
|
303
319
|
import {
|
|
304
320
|
getSystemDefaultsPath,
|
|
305
321
|
getSystemSettingsPath
|
|
@@ -307,7 +323,7 @@ import {
|
|
|
307
323
|
import {
|
|
308
324
|
getCurrentLanguage,
|
|
309
325
|
setLanguageAsync
|
|
310
|
-
} from "./chunk-
|
|
326
|
+
} from "./chunk-I4NRYS6A.js";
|
|
311
327
|
import {
|
|
312
328
|
SUPPORTED_LANGUAGES
|
|
313
329
|
} from "./chunk-5EJZE3FP.js";
|
|
@@ -315,19 +331,19 @@ import {
|
|
|
315
331
|
findEnvFiles,
|
|
316
332
|
preResolveHomeEnvOverrides,
|
|
317
333
|
reloadEnvironment
|
|
318
|
-
} from "./chunk-
|
|
334
|
+
} from "./chunk-C4TIXFDZ.js";
|
|
319
335
|
import {
|
|
320
336
|
ENV_ACP_REPEATED_TOOL_FAILURE_GUARD,
|
|
321
337
|
QWEN_CODE_SERVE_ENV
|
|
322
|
-
} from "./chunk-
|
|
323
|
-
import "./chunk-
|
|
324
|
-
import "./chunk-
|
|
338
|
+
} from "./chunk-2M3EWQNG.js";
|
|
339
|
+
import "./chunk-2EAZ43JQ.js";
|
|
340
|
+
import "./chunk-NF5J2WFA.js";
|
|
341
|
+
import "./chunk-VBWD6C27.js";
|
|
325
342
|
import "./chunk-W3N5XAZ6.js";
|
|
326
343
|
import {
|
|
327
|
-
isFolderTrustEnabled,
|
|
328
344
|
isWorkspaceTrusted,
|
|
329
345
|
loadTrustedFolders
|
|
330
|
-
} from "./chunk-
|
|
346
|
+
} from "./chunk-65HWLGA7.js";
|
|
331
347
|
import "./chunk-NPQ5ZKRP.js";
|
|
332
348
|
import "./chunk-MR3PXB6E.js";
|
|
333
349
|
import {
|
|
@@ -357,42 +373,44 @@ import {
|
|
|
357
373
|
resolveBaseUrl,
|
|
358
374
|
runManagedRememberByAgent,
|
|
359
375
|
subagentGenerator
|
|
360
|
-
} from "./chunk-
|
|
376
|
+
} from "./chunk-JUARRUMA.js";
|
|
361
377
|
import {
|
|
362
378
|
MAX_RETAINED_SNAPSHOTS,
|
|
363
379
|
deleteWorkflowSnapshot,
|
|
364
380
|
listSavedWorkflows,
|
|
365
381
|
listWorkflowSnapshots,
|
|
366
382
|
toSnapshot
|
|
367
|
-
} from "./chunk-
|
|
383
|
+
} from "./chunk-I2TMJPCV.js";
|
|
368
384
|
import "./chunk-XFSFZCM5.js";
|
|
369
|
-
import "./chunk-2EAZ43JQ.js";
|
|
370
|
-
import "./chunk-NF5J2WFA.js";
|
|
371
385
|
import {
|
|
372
386
|
CreateSubSessionTool
|
|
373
|
-
} from "./chunk-
|
|
387
|
+
} from "./chunk-JR42V4UY.js";
|
|
374
388
|
import "./chunk-LJZSMWOH.js";
|
|
375
|
-
import "./chunk-6NWPR2EB.js";
|
|
376
|
-
import "./chunk-GCUR24KK.js";
|
|
377
|
-
import "./chunk-W4BDHLRT.js";
|
|
378
389
|
import {
|
|
379
390
|
restoreWorktreeContext
|
|
380
|
-
} from "./chunk-
|
|
381
|
-
import "./chunk-
|
|
382
|
-
import "./chunk-
|
|
391
|
+
} from "./chunk-RAFQIHN2.js";
|
|
392
|
+
import "./chunk-L26ONV2Y.js";
|
|
393
|
+
import "./chunk-47RYEQW5.js";
|
|
394
|
+
import "./chunk-IG4W5SJR.js";
|
|
395
|
+
import "./chunk-ZPJWUGCS.js";
|
|
396
|
+
import "./chunk-4UANMABT.js";
|
|
397
|
+
import "./chunk-ZKFTS3OV.js";
|
|
383
398
|
import "./chunk-ENYUKMFK.js";
|
|
384
399
|
import "./chunk-UKYXYWI2.js";
|
|
385
|
-
import "./chunk-ZPJWUGCS.js";
|
|
386
400
|
import {
|
|
387
401
|
clearCachedCredentialFile,
|
|
388
402
|
qwenOAuth2Events
|
|
389
403
|
} from "./chunk-3AKCBZVW.js";
|
|
390
|
-
import "./chunk-
|
|
404
|
+
import "./chunk-SULZPKTA.js";
|
|
405
|
+
import "./chunk-VNOVK4I7.js";
|
|
391
406
|
import {
|
|
392
407
|
APPROVAL_MODE_INFO,
|
|
393
408
|
BranchPointInvalidError,
|
|
394
409
|
ExtensionManager,
|
|
395
410
|
GLOBAL_DUPLICATE_THRESHOLD,
|
|
411
|
+
GoalConflictError,
|
|
412
|
+
GoalInvalidTransitionError,
|
|
413
|
+
GoalPersistenceUnavailableError,
|
|
396
414
|
InvalidMcpConfigError,
|
|
397
415
|
InvalidSessionTranscriptCursorError,
|
|
398
416
|
MAX_TRANSCRIPT_MESSAGES,
|
|
@@ -438,6 +456,7 @@ import {
|
|
|
438
456
|
decoratePlanModeShellConfirmation,
|
|
439
457
|
dedupeToolCallsById,
|
|
440
458
|
didWriteProjectContextFile,
|
|
459
|
+
emptyGoalSnapshot,
|
|
441
460
|
encodeSessionTranscriptCursor,
|
|
442
461
|
evaluateAutoMode,
|
|
443
462
|
evaluatePermissionFlow,
|
|
@@ -465,6 +484,7 @@ import {
|
|
|
465
484
|
getStopHookContinuationReason,
|
|
466
485
|
getToolCallRepeatKey,
|
|
467
486
|
getWorkflowTaskMutationKey,
|
|
487
|
+
goalTurnContext,
|
|
468
488
|
ideContextStore,
|
|
469
489
|
injectPermissionRulesIfMissing,
|
|
470
490
|
isApproveOutcome,
|
|
@@ -482,6 +502,9 @@ import {
|
|
|
482
502
|
normalizeDerivedBranchTitle,
|
|
483
503
|
normalizeTurnResultError,
|
|
484
504
|
observeToolResultBoundary,
|
|
505
|
+
parseGoalControlRequest,
|
|
506
|
+
parseGoalSnapshotV2,
|
|
507
|
+
parseGoalStateCause,
|
|
485
508
|
persistPermissionOutcome,
|
|
486
509
|
recordAllow,
|
|
487
510
|
recordFallbackApprove,
|
|
@@ -504,7 +527,7 @@ import {
|
|
|
504
527
|
updateSetting,
|
|
505
528
|
validatePlanModeShellApproval,
|
|
506
529
|
validatePlanModeShellContext
|
|
507
|
-
} from "./chunk-
|
|
530
|
+
} from "./chunk-4F7GQGXB.js";
|
|
508
531
|
import "./chunk-GOFAQQZA.js";
|
|
509
532
|
import "./chunk-5M6IDOMF.js";
|
|
510
533
|
import "./chunk-6HUXPLB5.js";
|
|
@@ -512,9 +535,10 @@ import "./chunk-TWPJO254.js";
|
|
|
512
535
|
import {
|
|
513
536
|
external_exports
|
|
514
537
|
} from "./chunk-CQ35AJ4Z.js";
|
|
515
|
-
import "./chunk-
|
|
538
|
+
import "./chunk-NSUKQ4DN.js";
|
|
539
|
+
import "./chunk-DQCKVAF5.js";
|
|
516
540
|
import "./chunk-AI35S34R.js";
|
|
517
|
-
import "./chunk-
|
|
541
|
+
import "./chunk-KM3XVTMO.js";
|
|
518
542
|
import {
|
|
519
543
|
parsePositiveIntegerEnv
|
|
520
544
|
} from "./chunk-6PVPNMXU.js";
|
|
@@ -524,11 +548,13 @@ import {
|
|
|
524
548
|
import {
|
|
525
549
|
SESSION_ARTIFACT_PERSISTENCE_VERSION,
|
|
526
550
|
normalizeEventPayload,
|
|
527
|
-
normalizeSnapshotPayload
|
|
528
|
-
|
|
551
|
+
normalizeSnapshotPayload,
|
|
552
|
+
wrapUserPromptSubmitContext
|
|
553
|
+
} from "./chunk-EFTPIZIC.js";
|
|
529
554
|
import "./chunk-IRH27ZC2.js";
|
|
530
555
|
import "./chunk-QHWCP53L.js";
|
|
531
556
|
import "./chunk-UJ4DUYIH.js";
|
|
557
|
+
import "./chunk-QJNDUTOL.js";
|
|
532
558
|
import {
|
|
533
559
|
promptIdContext,
|
|
534
560
|
todoWorkChainContext
|
|
@@ -538,9 +564,9 @@ import {
|
|
|
538
564
|
getOutputStyleTurnReminder,
|
|
539
565
|
getPlanModeSystemReminder,
|
|
540
566
|
resolveMainSessionOutputStyle
|
|
541
|
-
} from "./chunk-
|
|
542
|
-
import "./chunk-
|
|
543
|
-
import "./chunk-
|
|
567
|
+
} from "./chunk-OSSTATJF.js";
|
|
568
|
+
import "./chunk-ZHO2CW6D.js";
|
|
569
|
+
import "./chunk-CVX63TFJ.js";
|
|
544
570
|
import "./chunk-373DQUVA.js";
|
|
545
571
|
import {
|
|
546
572
|
AgentOutputMessageCapture,
|
|
@@ -549,64 +575,47 @@ import {
|
|
|
549
575
|
addToolCallResultAttributes,
|
|
550
576
|
registerAcpEventLoopLagGauge,
|
|
551
577
|
startEventLoopLagMonitor
|
|
552
|
-
} from "./chunk-
|
|
578
|
+
} from "./chunk-H43PSPYS.js";
|
|
553
579
|
import {
|
|
554
580
|
HookEventName,
|
|
555
581
|
createHookOutput
|
|
556
582
|
} from "./chunk-U6D2PPMN.js";
|
|
557
|
-
import "./chunk-
|
|
558
|
-
import "./chunk-
|
|
559
|
-
import "./chunk-ZHO2CW6D.js";
|
|
560
|
-
import "./chunk-AF3QB6OL.js";
|
|
583
|
+
import "./chunk-VYIUNFEA.js";
|
|
584
|
+
import "./chunk-KGV55H53.js";
|
|
561
585
|
import "./chunk-7TBU7PU2.js";
|
|
562
586
|
import "./chunk-E4JNFXNI.js";
|
|
563
|
-
import {
|
|
564
|
-
GoalConflictError,
|
|
565
|
-
GoalInvalidTransitionError,
|
|
566
|
-
GoalPersistenceUnavailableError,
|
|
567
|
-
emptyGoalSnapshot,
|
|
568
|
-
goalTurnContext,
|
|
569
|
-
parseGoalControlRequest,
|
|
570
|
-
parseGoalSnapshotV2,
|
|
571
|
-
parseGoalStateCause
|
|
572
|
-
} from "./chunk-4P7PPAHN.js";
|
|
573
|
-
import {
|
|
574
|
-
wrapUserPromptSubmitContext
|
|
575
|
-
} from "./chunk-7J6OTNGO.js";
|
|
576
587
|
import {
|
|
577
588
|
escapeJsonTagCharacters
|
|
578
589
|
} from "./chunk-CHEIIBT3.js";
|
|
579
|
-
import "./chunk-
|
|
590
|
+
import "./chunk-TJYRTS4S.js";
|
|
580
591
|
import {
|
|
581
592
|
APPROVAL_MODES
|
|
582
593
|
} from "./chunk-JX6XHPTX.js";
|
|
583
594
|
import "./chunk-MLXTMF7H.js";
|
|
584
|
-
import "./chunk-NAVJD2PQ.js";
|
|
585
|
-
import "./chunk-KFN2IZYR.js";
|
|
586
|
-
import "./chunk-GB4UKWY5.js";
|
|
587
|
-
import "./chunk-QHMLYMMS.js";
|
|
588
|
-
import {
|
|
589
|
-
addDaemonRequestAttribute,
|
|
590
|
-
extractDaemonTraceContext,
|
|
591
|
-
withDaemonSpan
|
|
592
|
-
} from "./chunk-UXEW7TQS.js";
|
|
593
|
-
import "./chunk-VNOVK4I7.js";
|
|
594
595
|
import "./chunk-PQEISIKS.js";
|
|
595
|
-
import "./chunk-
|
|
596
|
+
import "./chunk-FD5SJOWT.js";
|
|
596
597
|
import {
|
|
597
598
|
runWithRuntimeContentGenerator
|
|
598
|
-
} from "./chunk-
|
|
599
|
+
} from "./chunk-4LIFGNI4.js";
|
|
599
600
|
import "./chunk-S6LOFUVP.js";
|
|
601
|
+
import "./chunk-NAVJD2PQ.js";
|
|
602
|
+
import "./chunk-KFN2IZYR.js";
|
|
603
|
+
import "./chunk-GB4UKWY5.js";
|
|
604
|
+
import "./chunk-QHMLYMMS.js";
|
|
600
605
|
import {
|
|
601
606
|
getToolCallPreparations
|
|
602
607
|
} from "./chunk-CFKIH3D3.js";
|
|
603
608
|
import {
|
|
604
|
-
REASONING_EFFORT_TIERS
|
|
605
|
-
applyReasoningEffort
|
|
609
|
+
REASONING_EFFORT_TIERS
|
|
606
610
|
} from "./chunk-2LD5U7Q3.js";
|
|
607
611
|
import "./chunk-DJ2GSRLV.js";
|
|
608
612
|
import "./chunk-S2T7H5MI.js";
|
|
609
613
|
import "./chunk-LKODFJRD.js";
|
|
614
|
+
import {
|
|
615
|
+
addDaemonRequestAttribute,
|
|
616
|
+
extractDaemonTraceContext,
|
|
617
|
+
withDaemonSpan
|
|
618
|
+
} from "./chunk-LB3WQQJK.js";
|
|
610
619
|
import {
|
|
611
620
|
ConversationFinishedEvent,
|
|
612
621
|
DiscoveredMCPTool,
|
|
@@ -632,25 +641,23 @@ import {
|
|
|
632
641
|
logUserPrompt,
|
|
633
642
|
normalizeParts,
|
|
634
643
|
parseInvocationContext,
|
|
644
|
+
runSideQuery,
|
|
635
645
|
runVisionBridge,
|
|
636
646
|
runWithInvocationContext,
|
|
637
647
|
shouldRunVisionBridge,
|
|
638
648
|
splitImageParts,
|
|
639
649
|
uiTelemetryService
|
|
640
|
-
} from "./chunk-
|
|
650
|
+
} from "./chunk-GH2S4GD5.js";
|
|
641
651
|
import "./chunk-XBVNNDPK.js";
|
|
642
652
|
import "./chunk-VGC4I5JJ.js";
|
|
643
653
|
import {
|
|
644
654
|
getAllMemoryFilenames,
|
|
645
655
|
getSpecificMimeType
|
|
646
|
-
} from "./chunk-
|
|
656
|
+
} from "./chunk-DYTW3QVG.js";
|
|
647
657
|
import {
|
|
648
658
|
getAutoMemoryRoot,
|
|
649
659
|
getUserAutoMemoryRoot
|
|
650
660
|
} from "./chunk-HT5S5TRQ.js";
|
|
651
|
-
import {
|
|
652
|
-
runSideQuery
|
|
653
|
-
} from "./chunk-LMMHS3RS.js";
|
|
654
661
|
import "./chunk-WZAD4ZNJ.js";
|
|
655
662
|
import {
|
|
656
663
|
DEFAULT_TOKEN_LIMIT,
|
|
@@ -660,8 +667,7 @@ import "./chunk-EIJT2PQ6.js";
|
|
|
660
667
|
import {
|
|
661
668
|
hasVertexProjectConfigured,
|
|
662
669
|
preloadContentGenerator
|
|
663
|
-
} from "./chunk-
|
|
664
|
-
import "./chunk-XZA32HII.js";
|
|
670
|
+
} from "./chunk-BFY33IB4.js";
|
|
665
671
|
import "./chunk-KHP66DFN.js";
|
|
666
672
|
import {
|
|
667
673
|
AuthType
|
|
@@ -677,16 +683,16 @@ import {
|
|
|
677
683
|
startToolExecutionSpan,
|
|
678
684
|
startToolSpan,
|
|
679
685
|
withInteractionSpan
|
|
680
|
-
} from "./chunk-
|
|
686
|
+
} from "./chunk-QKDNS6FU.js";
|
|
681
687
|
import "./chunk-74TONY4F.js";
|
|
682
|
-
import "./chunk-
|
|
688
|
+
import "./chunk-ZDFQGHZH.js";
|
|
683
689
|
import {
|
|
684
690
|
FORK_SUBAGENT_TYPE,
|
|
685
691
|
getStartupContextLength,
|
|
686
692
|
isSystemReminderContent,
|
|
687
693
|
wrapSystemReminder
|
|
688
|
-
} from "./chunk-
|
|
689
|
-
import "./chunk-
|
|
694
|
+
} from "./chunk-G7HBEEX7.js";
|
|
695
|
+
import "./chunk-QQD2GART.js";
|
|
690
696
|
import "./chunk-AQ37AY7B.js";
|
|
691
697
|
import "./chunk-ODZF64DM.js";
|
|
692
698
|
import {
|
|
@@ -696,7 +702,7 @@ import {
|
|
|
696
702
|
ToolNames,
|
|
697
703
|
canonicalToolName,
|
|
698
704
|
isShellProgressData
|
|
699
|
-
} from "./chunk-
|
|
705
|
+
} from "./chunk-7JMGTOH7.js";
|
|
700
706
|
import {
|
|
701
707
|
Storage,
|
|
702
708
|
createDebugLogger,
|
|
@@ -705,11 +711,11 @@ import {
|
|
|
705
711
|
isSubpath,
|
|
706
712
|
sessionIdContext
|
|
707
713
|
} from "./chunk-EAHOJF6V.js";
|
|
708
|
-
import "./chunk-
|
|
709
|
-
import "./chunk-
|
|
714
|
+
import "./chunk-QJGYU5PG.js";
|
|
715
|
+
import "./chunk-HRPFBHW7.js";
|
|
710
716
|
import {
|
|
711
717
|
runExitCleanup
|
|
712
|
-
} from "./chunk-
|
|
718
|
+
} from "./chunk-RJUVTJEZ.js";
|
|
713
719
|
import {
|
|
714
720
|
writeStderrLine,
|
|
715
721
|
writeStderrLineSafe
|
|
@@ -4049,6 +4055,10 @@ var Session = class {
|
|
|
4049
4055
|
this.slashCommandPolicy = this.requiresManagedConversationBinding ? STANDALONE_SLASH_COMMAND_POLICY : void 0;
|
|
4050
4056
|
this.runtimeBaseDir = config.storage.getRuntimeBaseDir();
|
|
4051
4057
|
const todoStopGuardEnabled = this.settings.merged.experimental?.todoStopGuard === true && !this.config.getBareMode() && !this.config.isSafeMode();
|
|
4058
|
+
const sessionWorkflowEnabledFromSettings = this.settings.merged.experimental?.sessionWorkflow === true;
|
|
4059
|
+
this.config.setSessionWorkflowEnabledProvider?.(
|
|
4060
|
+
() => sessionWorkflowEnabledFromSettings
|
|
4061
|
+
);
|
|
4052
4062
|
this.todoStopGuard = new DaemonTodoStopGuard(todoStopGuardEnabled);
|
|
4053
4063
|
const configuredGuardMode = process.env[ENV_ACP_REPEATED_TOOL_FAILURE_GUARD];
|
|
4054
4064
|
const parsedGuardMode = parseRepeatedToolFailureGuardMode(configuredGuardMode);
|
|
@@ -4217,6 +4227,8 @@ var Session = class {
|
|
|
4217
4227
|
#shellStatusChangeCallback;
|
|
4218
4228
|
workflowApprovalAbortController = new AbortController();
|
|
4219
4229
|
activeTodoPlanRevision;
|
|
4230
|
+
activeTodoPlanStructure;
|
|
4231
|
+
todoPlanRevisionGeneration = 0;
|
|
4220
4232
|
// Modular components
|
|
4221
4233
|
historyReplayer;
|
|
4222
4234
|
toolCallEmitter;
|
|
@@ -4262,6 +4274,7 @@ var Session = class {
|
|
|
4262
4274
|
restoredAskUserQuestionSkipPersistence = false;
|
|
4263
4275
|
// Implement SessionContext interface
|
|
4264
4276
|
sessionId;
|
|
4277
|
+
sessionReasoningSelection;
|
|
4265
4278
|
#bindGoalRuntime() {
|
|
4266
4279
|
try {
|
|
4267
4280
|
const runtime = this.config.getGoalRuntime();
|
|
@@ -4781,7 +4794,10 @@ var Session = class {
|
|
|
4781
4794
|
this.#clearTodoStopGuardTrustAndDrainAutomaticQueues();
|
|
4782
4795
|
}
|
|
4783
4796
|
clearActiveTodoPlanRevision() {
|
|
4797
|
+
this.todoPlanRevisionGeneration++;
|
|
4784
4798
|
this.activeTodoPlanRevision = void 0;
|
|
4799
|
+
this.activeTodoPlanStructure = void 0;
|
|
4800
|
+
this.config.clearSessionWorkflowPlanRevision?.();
|
|
4785
4801
|
}
|
|
4786
4802
|
hardSuspendTodoStopGuard() {
|
|
4787
4803
|
this.#clearTodoStopGuardQueuedPromptWait();
|
|
@@ -5683,6 +5699,7 @@ var Session = class {
|
|
|
5683
5699
|
dispose() {
|
|
5684
5700
|
this.disposed = true;
|
|
5685
5701
|
this.closing = true;
|
|
5702
|
+
this.clearActiveTodoPlanRevision();
|
|
5686
5703
|
this.pendingPrompt?.abort(SESSION_DISPOSE_ABORT_REASON);
|
|
5687
5704
|
this.pendingPrompt = null;
|
|
5688
5705
|
this.resolveCloseGate?.();
|
|
@@ -5733,6 +5750,7 @@ var Session = class {
|
|
|
5733
5750
|
this.#workflowStatusChangeCallback = void 0;
|
|
5734
5751
|
}
|
|
5735
5752
|
this.config.getChatRecordingService()?.setTitleRecordedCallback(void 0);
|
|
5753
|
+
this.config.getSessionService().setSessionPrBoundCallback(void 0);
|
|
5736
5754
|
this.unsubscribeChatRecordingFailure?.();
|
|
5737
5755
|
this.unsubscribeChatRecordingFailure = void 0;
|
|
5738
5756
|
this.config.setSubSessionSpawner(void 0);
|
|
@@ -5789,7 +5807,7 @@ var Session = class {
|
|
|
5789
5807
|
...options
|
|
5790
5808
|
});
|
|
5791
5809
|
} finally {
|
|
5792
|
-
this.
|
|
5810
|
+
this.clearActiveTodoPlanRevision();
|
|
5793
5811
|
}
|
|
5794
5812
|
}
|
|
5795
5813
|
rewindToTurn(targetTurnIndex, opts) {
|
|
@@ -5819,7 +5837,7 @@ var Session = class {
|
|
|
5819
5837
|
}
|
|
5820
5838
|
chat.truncateHistory(apiTruncateIndex);
|
|
5821
5839
|
chat.stripThoughtsFromHistory();
|
|
5822
|
-
this.
|
|
5840
|
+
this.clearActiveTodoPlanRevision();
|
|
5823
5841
|
const preserveQueuedPromptPriority = this.todoStopGuardQueuedPromptPriority;
|
|
5824
5842
|
const shouldDrainAutomaticQueues = (this.todoStopGuard.blocksUnrelatedAutomaticTurns || this.todoStopGuard.hasCommittedContinuation) && !preserveQueuedPromptPriority;
|
|
5825
5843
|
this.todoStopGuard.blockUntilOrdinaryPromptStarts();
|
|
@@ -5864,7 +5882,7 @@ var Session = class {
|
|
|
5864
5882
|
);
|
|
5865
5883
|
}
|
|
5866
5884
|
this.config.getLlmClient().getChat().setHistory(structuredClone(history));
|
|
5867
|
-
this.
|
|
5885
|
+
this.clearActiveTodoPlanRevision();
|
|
5868
5886
|
this.#clearTodoStopGuardTrustAndDrainAutomaticQueues();
|
|
5869
5887
|
}
|
|
5870
5888
|
#computeApiTruncationIndexForUserTurn(apiHistory, targetTurnIndex) {
|
|
@@ -7984,21 +8002,80 @@ ${this.pendingRecoveredAgentsNotice}
|
|
|
7984
8002
|
sessionId: this.sessionId,
|
|
7985
8003
|
update: projectedUpdate
|
|
7986
8004
|
};
|
|
7987
|
-
|
|
7988
|
-
|
|
8005
|
+
const canUpdateTodoPlanRevision = update.sessionUpdate === "plan" && this.config.getApprovalMode() === "plan" /* PLAN */;
|
|
8006
|
+
const todoPlanRevision = canUpdateTodoPlanRevision ? this.#readTodoPlanRevision(update) : void 0;
|
|
8007
|
+
const preservesPendingRevision = todoPlanRevision !== void 0 && todoPlanRevision.structure === this.activeTodoPlanStructure;
|
|
8008
|
+
const previousActiveTodoPlanRevision = this.activeTodoPlanRevision;
|
|
8009
|
+
const previousActiveTodoPlanStructure = this.activeTodoPlanStructure;
|
|
8010
|
+
const previousWorkflowRevision = this.config.getSessionWorkflowPlanRevision?.();
|
|
8011
|
+
if (canUpdateTodoPlanRevision && !preservesPendingRevision) {
|
|
8012
|
+
this.clearActiveTodoPlanRevision();
|
|
8013
|
+
}
|
|
8014
|
+
try {
|
|
8015
|
+
await this.client.sessionUpdate(params);
|
|
8016
|
+
} catch (error) {
|
|
8017
|
+
if (canUpdateTodoPlanRevision && !preservesPendingRevision && this.config.getApprovalMode() === "plan" /* PLAN */) {
|
|
8018
|
+
this.activeTodoPlanRevision = previousActiveTodoPlanRevision;
|
|
8019
|
+
this.activeTodoPlanStructure = previousActiveTodoPlanStructure;
|
|
8020
|
+
this.config.setSessionWorkflowPlanRevision?.(previousWorkflowRevision);
|
|
8021
|
+
}
|
|
8022
|
+
throw error;
|
|
7989
8023
|
}
|
|
7990
|
-
|
|
7991
|
-
|
|
7992
|
-
|
|
8024
|
+
if (canUpdateTodoPlanRevision && this.config.getApprovalMode() === "plan" /* PLAN */ && todoPlanRevision?.allPending) {
|
|
8025
|
+
if (this.activeTodoPlanRevision?.planId !== todoPlanRevision.planId || this.activeTodoPlanRevision?.sourceCallId !== todoPlanRevision.sourceCallId) {
|
|
8026
|
+
this.todoPlanRevisionGeneration++;
|
|
8027
|
+
}
|
|
8028
|
+
this.activeTodoPlanRevision = {
|
|
8029
|
+
planId: todoPlanRevision.planId,
|
|
8030
|
+
sourceCallId: todoPlanRevision.sourceCallId
|
|
8031
|
+
};
|
|
8032
|
+
this.activeTodoPlanStructure = todoPlanRevision.structure;
|
|
8033
|
+
this.config.setSessionWorkflowPlanRevision?.({
|
|
8034
|
+
planId: todoPlanRevision.planId,
|
|
8035
|
+
sourceCallId: todoPlanRevision.sourceCallId,
|
|
8036
|
+
todoIds: todoPlanRevision.todoIds
|
|
8037
|
+
});
|
|
7993
8038
|
}
|
|
7994
8039
|
}
|
|
7995
|
-
#
|
|
8040
|
+
#readTodoPlanRevision(update) {
|
|
7996
8041
|
const meta = isRecord2(update["_meta"]) ? update["_meta"] : void 0;
|
|
7997
8042
|
const plan = isRecord2(meta?.["qwenTodoPlan"]) ? meta["qwenTodoPlan"] : void 0;
|
|
7998
8043
|
const transcript = isRecord2(meta?.["qwenTranscript"]) ? meta["qwenTranscript"] : void 0;
|
|
7999
8044
|
const planId = plan?.["id"];
|
|
8000
8045
|
const sourceCallId = transcript?.["planToolCallId"];
|
|
8001
|
-
|
|
8046
|
+
const workflowPlan = meta?.["qwenSessionWorkflow"] === true;
|
|
8047
|
+
const hasValidIdentity = typeof planId === "string" && planId.trim() !== "" && typeof sourceCallId === "string" && sourceCallId.trim() !== "" && update.entries.length > 0;
|
|
8048
|
+
const workflowEnabled = this.config.isSessionWorkflowEnabled?.() === true;
|
|
8049
|
+
if (!workflowEnabled || !workflowPlan || !hasValidIdentity)
|
|
8050
|
+
return void 0;
|
|
8051
|
+
const todos = update.entries.flatMap((entry) => {
|
|
8052
|
+
const entryRecord = entry;
|
|
8053
|
+
const entryMeta = isRecord2(entryRecord["_meta"]) ? entryRecord["_meta"] : void 0;
|
|
8054
|
+
const todo = isRecord2(entryMeta?.["qwenTodo"]) ? entryMeta["qwenTodo"] : void 0;
|
|
8055
|
+
const todoId = todo?.["id"];
|
|
8056
|
+
const blockedBy = todo?.["blockedBy"];
|
|
8057
|
+
if (typeof todoId !== "string" || todoId.trim() === "" || blockedBy !== void 0 && (!Array.isArray(blockedBy) || !blockedBy.every((dependency) => typeof dependency === "string"))) {
|
|
8058
|
+
return [];
|
|
8059
|
+
}
|
|
8060
|
+
return [
|
|
8061
|
+
{
|
|
8062
|
+
id: todoId,
|
|
8063
|
+
content: entry.content,
|
|
8064
|
+
priority: entry.priority,
|
|
8065
|
+
blockedBy: blockedBy ?? []
|
|
8066
|
+
}
|
|
8067
|
+
];
|
|
8068
|
+
});
|
|
8069
|
+
const todoIds = todos.map((todo) => todo.id);
|
|
8070
|
+
if (todos.length !== update.entries.length || new Set(todoIds).size !== todoIds.length)
|
|
8071
|
+
return void 0;
|
|
8072
|
+
return {
|
|
8073
|
+
planId,
|
|
8074
|
+
sourceCallId,
|
|
8075
|
+
todoIds,
|
|
8076
|
+
structure: JSON.stringify([planId, todos]),
|
|
8077
|
+
allPending: update.entries.every((entry) => entry.status === "pending")
|
|
8078
|
+
};
|
|
8002
8079
|
}
|
|
8003
8080
|
#scheduleChannelDelivery(params) {
|
|
8004
8081
|
const timer = setTimeout(() => {
|
|
@@ -8583,7 +8660,10 @@ ${this.pendingRecoveredAgentsNotice}
|
|
|
8583
8660
|
const isTimeout = error instanceof MidTurnDrainTimeoutError;
|
|
8584
8661
|
if (isTimeout) {
|
|
8585
8662
|
this.midTurnDrainTimeoutStrikes += 1;
|
|
8586
|
-
if (drainPromise)
|
|
8663
|
+
if (drainPromise) {
|
|
8664
|
+
void this.#recoverLateDrain(drainPromise).catch(() => {
|
|
8665
|
+
});
|
|
8666
|
+
}
|
|
8587
8667
|
}
|
|
8588
8668
|
const isPermanentError = errorCode === -32601 || /method not found/i.test(errorMessage) || isTimeout && this.midTurnDrainTimeoutStrikes >= MID_TURN_QUEUE_DRAIN_MAX_TIMEOUT_STRIKES;
|
|
8589
8669
|
if (isPermanentError) {
|
|
@@ -9422,6 +9502,14 @@ ${this.pendingRecoveredAgentsNotice}
|
|
|
9422
9502
|
}).catch(() => {
|
|
9423
9503
|
});
|
|
9424
9504
|
});
|
|
9505
|
+
this.config.getSessionService().setSessionPrBoundCallback((sessionId, pr) => {
|
|
9506
|
+
void this.client.extNotification("qwen/notify/session/pr-binding", {
|
|
9507
|
+
v: 1,
|
|
9508
|
+
sessionId,
|
|
9509
|
+
pr: { number: pr.number, url: pr.url }
|
|
9510
|
+
}).catch(() => {
|
|
9511
|
+
});
|
|
9512
|
+
});
|
|
9425
9513
|
if (typeof this.config.onChatRecordingFailure === "function") {
|
|
9426
9514
|
this.unsubscribeChatRecordingFailure = this.config.onChatRecordingFailure(
|
|
9427
9515
|
(event) => this.client.extNotification(
|
|
@@ -10043,10 +10131,10 @@ ${this.pendingRecoveredAgentsNotice}
|
|
|
10043
10131
|
}
|
|
10044
10132
|
const previousApprovalMode = this.config.getApprovalMode();
|
|
10045
10133
|
this.config.setApprovalMode(approvalMode);
|
|
10134
|
+
if (previousApprovalMode !== approvalMode && (previousApprovalMode === "plan" /* PLAN */ || approvalMode === "plan" /* PLAN */)) {
|
|
10135
|
+
this.clearActiveTodoPlanRevision();
|
|
10136
|
+
}
|
|
10046
10137
|
if (approvalMode === "plan" /* PLAN */) {
|
|
10047
|
-
if (previousApprovalMode !== "plan" /* PLAN */) {
|
|
10048
|
-
this.activeTodoPlanRevision = void 0;
|
|
10049
|
-
}
|
|
10050
10138
|
this.clearTodoStopGuardTrust();
|
|
10051
10139
|
}
|
|
10052
10140
|
void this.client.extNotification("qwen/notify/session/mode-update", {
|
|
@@ -10099,6 +10187,10 @@ ${this.pendingRecoveredAgentsNotice}
|
|
|
10099
10187
|
const effectiveAuthType = after?.authType ?? selectedAuthType;
|
|
10100
10188
|
const effectiveModelId = after?.model ?? parsed.modelId;
|
|
10101
10189
|
const isRuntime = resolvedRoute?.isRuntime ?? rawModelId.startsWith(RUNTIME_SNAPSHOT_PREFIX);
|
|
10190
|
+
const persistDefault = !this.requiresManagedConversationBinding && (options.persistDefault ?? true);
|
|
10191
|
+
this.reconcileReasoningSelection(effectiveModelId, {
|
|
10192
|
+
persist: persistDefault
|
|
10193
|
+
});
|
|
10102
10194
|
void recordDaemonSessionModel(this.config, {
|
|
10103
10195
|
modelId: isRuntime ? resolvedRoute?.modelId ?? parsed.modelId : effectiveModelId,
|
|
10104
10196
|
authType: effectiveAuthType,
|
|
@@ -10119,7 +10211,6 @@ ${this.pendingRecoveredAgentsNotice}
|
|
|
10119
10211
|
}).catch((error) => {
|
|
10120
10212
|
debugLogger6.debug("model-update extNotification failed", error);
|
|
10121
10213
|
});
|
|
10122
|
-
const persistDefault = !this.requiresManagedConversationBinding && (options.persistDefault ?? true);
|
|
10123
10214
|
if (persistDefault) {
|
|
10124
10215
|
const persistScope = getPersistScopeForModelSelection(this.settings);
|
|
10125
10216
|
this.settings.setValue(
|
|
@@ -10150,6 +10241,115 @@ ${this.pendingRecoveredAgentsNotice}
|
|
|
10150
10241
|
}
|
|
10151
10242
|
};
|
|
10152
10243
|
}
|
|
10244
|
+
getDefaultReasoningConfig() {
|
|
10245
|
+
const authType = this.config.getAuthType?.();
|
|
10246
|
+
const model = authType && !this.config.getActiveRuntimeModelSnapshot?.() ? this.config.getResolvedModelConfig?.(
|
|
10247
|
+
authType,
|
|
10248
|
+
this.config.getModel(),
|
|
10249
|
+
this.config.getCurrentModelRegistryBaseUrl?.() ?? void 0
|
|
10250
|
+
) : void 0;
|
|
10251
|
+
if (model) return model.generationConfig.reasoning;
|
|
10252
|
+
return this.settings.merged.model?.generationConfig?.reasoning;
|
|
10253
|
+
}
|
|
10254
|
+
reloadReasoningSelection() {
|
|
10255
|
+
this.settings.reloadScopeFromDisk("User" /* User */);
|
|
10256
|
+
this.settings.reloadScopeFromDisk("Workspace" /* Workspace */);
|
|
10257
|
+
this.reconcileReasoningSelection(this.config.getModel(), {
|
|
10258
|
+
persist: !this.requiresManagedConversationBinding
|
|
10259
|
+
});
|
|
10260
|
+
}
|
|
10261
|
+
setSessionReasoningSelection(selection) {
|
|
10262
|
+
this.sessionReasoningSelection = selection;
|
|
10263
|
+
}
|
|
10264
|
+
getSessionReasoningSelection() {
|
|
10265
|
+
return this.sessionReasoningSelection;
|
|
10266
|
+
}
|
|
10267
|
+
persistReasoningSelection(selection) {
|
|
10268
|
+
if (this.requiresManagedConversationBinding) {
|
|
10269
|
+
throw RequestError.invalidParams(
|
|
10270
|
+
void 0,
|
|
10271
|
+
"Reasoning selection cannot be persisted for this session"
|
|
10272
|
+
);
|
|
10273
|
+
}
|
|
10274
|
+
const key = "model.reasoningEffort";
|
|
10275
|
+
const persistScope = getPersistScopeForModelSelection(this.settings);
|
|
10276
|
+
const clears = getWritableScopes(this.settings).filter(
|
|
10277
|
+
(scope) => (selection === REASONING_EFFORT_DEFAULT || scope !== persistScope) && settingExistsInScope(key, this.settings.forScope(scope).settings)
|
|
10278
|
+
).map((scope) => ({ scope, value: void 0 }));
|
|
10279
|
+
const writes = selection === REASONING_EFFORT_DEFAULT ? clears : [{ scope: persistScope, value: selection }, ...clears];
|
|
10280
|
+
const committed = [];
|
|
10281
|
+
for (const write of writes) {
|
|
10282
|
+
const previous = this.settings.forScope(write.scope).settings.model?.reasoningEffort;
|
|
10283
|
+
try {
|
|
10284
|
+
this.writeReasoningSelection(write.scope, write.value);
|
|
10285
|
+
} catch (error) {
|
|
10286
|
+
this.settings.reloadScopeFromDisk(write.scope);
|
|
10287
|
+
for (const previousWrite of committed.reverse()) {
|
|
10288
|
+
try {
|
|
10289
|
+
this.writeReasoningSelection(
|
|
10290
|
+
previousWrite.scope,
|
|
10291
|
+
previousWrite.value
|
|
10292
|
+
);
|
|
10293
|
+
} catch (rollbackError) {
|
|
10294
|
+
this.settings.reloadScopeFromDisk(previousWrite.scope);
|
|
10295
|
+
debugLogger6.warn(
|
|
10296
|
+
`Failed to roll back reasoning preference: ${rollbackError instanceof Error ? rollbackError.message : String(rollbackError)}`
|
|
10297
|
+
);
|
|
10298
|
+
}
|
|
10299
|
+
}
|
|
10300
|
+
throw error;
|
|
10301
|
+
}
|
|
10302
|
+
committed.push({ scope: write.scope, value: previous });
|
|
10303
|
+
}
|
|
10304
|
+
}
|
|
10305
|
+
reconcileReasoningSelection(modelId, options) {
|
|
10306
|
+
const rawSelection = this.settings.merged.model?.reasoningEffort;
|
|
10307
|
+
let hasSessionSelection = this.sessionReasoningSelection !== void 0;
|
|
10308
|
+
if (!hasSessionSelection && rawSelection === void 0) return;
|
|
10309
|
+
let selection = hasSessionSelection ? this.sessionReasoningSelection : parseReasoningSelection(rawSelection);
|
|
10310
|
+
const generation = this.config.getContentGeneratorConfig?.();
|
|
10311
|
+
const thinkingMandatory = generation?.thinkingMandatory === true;
|
|
10312
|
+
let supported = selection !== void 0 && selection !== REASONING_EFFORT_DEFAULT && isReasoningSelectionSupported(modelId, selection, thinkingMandatory);
|
|
10313
|
+
const appliesSessionDefault = hasSessionSelection && selection === REASONING_EFFORT_DEFAULT;
|
|
10314
|
+
if (hasSessionSelection && !supported && !appliesSessionDefault) {
|
|
10315
|
+
this.sessionReasoningSelection = void 0;
|
|
10316
|
+
hasSessionSelection = false;
|
|
10317
|
+
selection = parseReasoningSelection(rawSelection);
|
|
10318
|
+
supported = selection !== void 0 && selection !== REASONING_EFFORT_DEFAULT && isReasoningSelectionSupported(modelId, selection, thinkingMandatory);
|
|
10319
|
+
}
|
|
10320
|
+
if (!hasSessionSelection && rawSelection !== void 0 && !supported && options.persist) {
|
|
10321
|
+
try {
|
|
10322
|
+
this.persistReasoningSelection(REASONING_EFFORT_DEFAULT);
|
|
10323
|
+
} catch (error) {
|
|
10324
|
+
debugLogger6.warn(
|
|
10325
|
+
`Failed to clear incompatible reasoning preference: ${error instanceof Error ? error.message : String(error)}`
|
|
10326
|
+
);
|
|
10327
|
+
}
|
|
10328
|
+
}
|
|
10329
|
+
const modelReasoning = getModelConfiguration(modelId)?.reasoning;
|
|
10330
|
+
if (supported && generation && modelReasoning && !modelReasoning.toggleOnly) {
|
|
10331
|
+
clearReasoningRequestOverrides(generation);
|
|
10332
|
+
}
|
|
10333
|
+
const effectiveSelection = (supported || appliesSessionDefault) && selection !== void 0 ? selection : REASONING_EFFORT_DEFAULT;
|
|
10334
|
+
applyReasoningSelection(
|
|
10335
|
+
this.config,
|
|
10336
|
+
effectiveSelection,
|
|
10337
|
+
this.getDefaultReasoningConfig()
|
|
10338
|
+
);
|
|
10339
|
+
}
|
|
10340
|
+
writeReasoningSelection(scope, value) {
|
|
10341
|
+
const key = "model.reasoningEffort";
|
|
10342
|
+
this.settings.setValue(scope, key, value, void 0, {
|
|
10343
|
+
throwOnWriteFailure: true
|
|
10344
|
+
});
|
|
10345
|
+
if (value !== void 0) return;
|
|
10346
|
+
const file = this.settings.forScope(scope);
|
|
10347
|
+
for (const settings of [file.settings, file.originalSettings]) {
|
|
10348
|
+
if (settings)
|
|
10349
|
+
deleteNestedPropertySafe(settings, key);
|
|
10350
|
+
}
|
|
10351
|
+
this.settings.recomputeMerged();
|
|
10352
|
+
}
|
|
10153
10353
|
/**
|
|
10154
10354
|
* Sends a current_mode_update notification to the client.
|
|
10155
10355
|
* Called after the agent switches modes (e.g., from exit_plan_mode tool).
|
|
@@ -10810,6 +11010,8 @@ ${this.pendingRecoveredAgentsNotice}
|
|
|
10810
11010
|
let nestedPermissionCancelled = false;
|
|
10811
11011
|
let agentToolAbortController;
|
|
10812
11012
|
let removeAgentToolAbortPropagation;
|
|
11013
|
+
let todoPlanApprovalGeneration;
|
|
11014
|
+
let todoPlanApprovalRevision;
|
|
10813
11015
|
let subAgentCleanupFunctions = [];
|
|
10814
11016
|
const cleanupAgentToolResources = /* @__PURE__ */ __name(() => {
|
|
10815
11017
|
subAgentCleanupFunctions.forEach((cleanup) => cleanup());
|
|
@@ -11261,8 +11463,10 @@ ${this.pendingRecoveredAgentsNotice}
|
|
|
11261
11463
|
}
|
|
11262
11464
|
);
|
|
11263
11465
|
case "fallback":
|
|
11264
|
-
wasAutoModeManualFallback = isDenialFallbackReason(outcome.reason) || outcome.reason === "classifier_unavailable";
|
|
11265
|
-
|
|
11466
|
+
wasAutoModeManualFallback = isDenialFallbackReason(outcome.reason) || outcome.reason === "classifier_unavailable" || outcome.reason === "external_write";
|
|
11467
|
+
if (outcome.reason === "classifier_unavailable" || outcome.reason === "external_write") {
|
|
11468
|
+
autoModeFallbackMessage = outcome.message;
|
|
11469
|
+
}
|
|
11266
11470
|
if (wasAutoModeManualFallback) {
|
|
11267
11471
|
debugLogger6.warn(
|
|
11268
11472
|
`Auto mode fallback to manual approval (${outcome.reason}): ` + formatDenialStateLog(denialState)
|
|
@@ -11277,6 +11481,34 @@ ${this.pendingRecoveredAgentsNotice}
|
|
|
11277
11481
|
}
|
|
11278
11482
|
let didRequestPermission = false;
|
|
11279
11483
|
let confirmationDetails;
|
|
11484
|
+
const cancelStaleTodoPlanApproval = /* @__PURE__ */ __name(async () => {
|
|
11485
|
+
const configRevision = this.config.getSessionWorkflowPlanRevision?.();
|
|
11486
|
+
if (todoPlanApprovalGeneration === void 0 || !todoPlanApprovalRevision || todoPlanApprovalGeneration === this.todoPlanRevisionGeneration && this.activeTodoPlanRevision?.planId === todoPlanApprovalRevision.planId && this.activeTodoPlanRevision?.sourceCallId === todoPlanApprovalRevision.sourceCallId && configRevision?.planId === todoPlanApprovalRevision.planId && configRevision?.sourceCallId === todoPlanApprovalRevision.sourceCallId) {
|
|
11487
|
+
return void 0;
|
|
11488
|
+
}
|
|
11489
|
+
try {
|
|
11490
|
+
await confirmationDetails?.onConfirm(
|
|
11491
|
+
"cancel" /* Cancel */
|
|
11492
|
+
);
|
|
11493
|
+
} catch (error) {
|
|
11494
|
+
debugLogger6.warn(
|
|
11495
|
+
`Failed to cancel stale plan approval: ${this.#formatError(error)}`
|
|
11496
|
+
);
|
|
11497
|
+
}
|
|
11498
|
+
onStopAfterPermissionCancel?.();
|
|
11499
|
+
return earlyErrorResponse(
|
|
11500
|
+
new Error(
|
|
11501
|
+
"Plan approval is stale because its Session Workflow revision changed. No action was taken."
|
|
11502
|
+
),
|
|
11503
|
+
toolName,
|
|
11504
|
+
{
|
|
11505
|
+
status: "cancelled",
|
|
11506
|
+
errorType: void 0,
|
|
11507
|
+
executionStatus: "not_started",
|
|
11508
|
+
stopAfterPermissionCancel: true
|
|
11509
|
+
}
|
|
11510
|
+
);
|
|
11511
|
+
}, "cancelStaleTodoPlanApproval");
|
|
11280
11512
|
const recordAutoModeFallbackResolution = /* @__PURE__ */ __name((outcome) => {
|
|
11281
11513
|
if (approvalMode === "auto" /* AUTO */ && wasAutoModeManualFallback && isApproveOutcome(outcome)) {
|
|
11282
11514
|
const before = this.config.getAutoModeDenialState();
|
|
@@ -11509,6 +11741,12 @@ ${this.pendingRecoveredAgentsNotice}
|
|
|
11509
11741
|
const offeredPermissionOptions = permissionOptions.map(
|
|
11510
11742
|
(option) => ({ ...option })
|
|
11511
11743
|
);
|
|
11744
|
+
const workflowPlanRevision = isExitPlanModeTool ? this.config.getSessionWorkflowPlanRevision?.() : void 0;
|
|
11745
|
+
const qwenTodoApproval = isExitPlanModeTool && this.activeTodoPlanRevision && workflowPlanRevision?.planId === this.activeTodoPlanRevision.planId && workflowPlanRevision.sourceCallId === this.activeTodoPlanRevision.sourceCallId ? this.activeTodoPlanRevision : void 0;
|
|
11746
|
+
if (qwenTodoApproval) {
|
|
11747
|
+
todoPlanApprovalGeneration = this.todoPlanRevisionGeneration;
|
|
11748
|
+
todoPlanApprovalRevision = qwenTodoApproval;
|
|
11749
|
+
}
|
|
11512
11750
|
const params = {
|
|
11513
11751
|
sessionId: this.sessionId,
|
|
11514
11752
|
options: permissionOptions,
|
|
@@ -11527,9 +11765,7 @@ ${this.pendingRecoveredAgentsNotice}
|
|
|
11527
11765
|
_meta: {
|
|
11528
11766
|
toolName,
|
|
11529
11767
|
...interactionMetaFields(confirmationDetails),
|
|
11530
|
-
...
|
|
11531
|
-
qwenTodoApproval: this.activeTodoPlanRevision
|
|
11532
|
-
} : {}
|
|
11768
|
+
...qwenTodoApproval ? { qwenTodoApproval } : {}
|
|
11533
11769
|
}
|
|
11534
11770
|
}
|
|
11535
11771
|
};
|
|
@@ -11560,6 +11796,8 @@ ${this.pendingRecoveredAgentsNotice}
|
|
|
11560
11796
|
if (permissionRequestCancellation) {
|
|
11561
11797
|
return permissionRequestCancellation;
|
|
11562
11798
|
}
|
|
11799
|
+
const staleTodoPlanApproval2 = await cancelStaleTodoPlanApproval();
|
|
11800
|
+
if (staleTodoPlanApproval2) return staleTodoPlanApproval2;
|
|
11563
11801
|
outcome = resolvePermissionOutcome(
|
|
11564
11802
|
output,
|
|
11565
11803
|
offeredPermissionOptions
|
|
@@ -11816,6 +12054,8 @@ ${this.pendingRecoveredAgentsNotice}
|
|
|
11816
12054
|
if (executionBoundaryCancellation) {
|
|
11817
12055
|
return executionBoundaryCancellation;
|
|
11818
12056
|
}
|
|
12057
|
+
const staleTodoPlanApproval = await cancelStaleTodoPlanApproval();
|
|
12058
|
+
if (staleTodoPlanApproval) return staleTodoPlanApproval;
|
|
11819
12059
|
const continuedAgentId = toolName === ToolNames.SEND_MESSAGE && typeof args["task_id"] === "string" && args["task_id"].length > 0 ? args["task_id"] : void 0;
|
|
11820
12060
|
const provisionalRelatedAgent = continuedAgentId !== void 0 && !this.relatedAgentIds.has(continuedAgentId);
|
|
11821
12061
|
if (provisionalRelatedAgent) {
|
|
@@ -11977,7 +12217,7 @@ ${this.pendingRecoveredAgentsNotice}
|
|
|
11977
12217
|
if ((isEnterPlanModeTool || isExitPlanModeTool) && !toolResult.error && this.config.getApprovalMode() !== approvalMode) {
|
|
11978
12218
|
await this.sendCurrentModeUpdateNotification();
|
|
11979
12219
|
if (this.config.getApprovalMode() === "plan" /* PLAN */) {
|
|
11980
|
-
this.
|
|
12220
|
+
this.clearActiveTodoPlanRevision();
|
|
11981
12221
|
this.#clearTodoStopGuardTrustAndDrainAutomaticQueues();
|
|
11982
12222
|
}
|
|
11983
12223
|
}
|
|
@@ -12326,12 +12566,18 @@ ${this.pendingRecoveredAgentsNotice}
|
|
|
12326
12566
|
this.refreshContextFilesOnWrite = result.type === "submit_prompt" && Boolean(result.refreshContextFilesOnWrite);
|
|
12327
12567
|
const recorder = shouldRecordResult ? this.config.getChatRecordingService() : void 0;
|
|
12328
12568
|
switch (result.type) {
|
|
12329
|
-
case "submit_prompt":
|
|
12569
|
+
case "submit_prompt": {
|
|
12570
|
+
const expandedPrompt = normalizePartList(result.content);
|
|
12571
|
+
const attachmentBlocks = result.resolvedCommand?.kind === "built-in" /* BUILT_IN */ ? [] : originalPrompt.filter((block) => block.type !== "text");
|
|
12572
|
+
const attachmentParts = attachmentBlocks.length === 0 ? [] : await this.#resolvePrompt(attachmentBlocks, abortSignal, {
|
|
12573
|
+
deferBridgeConversions: true
|
|
12574
|
+
});
|
|
12330
12575
|
return this.#applyBridgeConversionsIfNeeded(
|
|
12331
|
-
|
|
12576
|
+
[...attachmentParts, ...expandedPrompt],
|
|
12332
12577
|
abortSignal,
|
|
12333
12578
|
onFullTurnModel
|
|
12334
12579
|
);
|
|
12580
|
+
}
|
|
12335
12581
|
case "message": {
|
|
12336
12582
|
if (result.messageType === "error") {
|
|
12337
12583
|
throw new Error(result.content || "Slash command failed.");
|
|
@@ -15067,6 +15313,23 @@ function readCoreSettingValues(source) {
|
|
|
15067
15313
|
return values;
|
|
15068
15314
|
}
|
|
15069
15315
|
__name(readCoreSettingValues, "readCoreSettingValues");
|
|
15316
|
+
function foldReloadApprovalMode(raw) {
|
|
15317
|
+
if (!raw) {
|
|
15318
|
+
return "auto" /* AUTO */;
|
|
15319
|
+
}
|
|
15320
|
+
if (typeof raw === "string") {
|
|
15321
|
+
try {
|
|
15322
|
+
return parseApprovalModeValue(raw);
|
|
15323
|
+
} catch {
|
|
15324
|
+
}
|
|
15325
|
+
}
|
|
15326
|
+
return void 0;
|
|
15327
|
+
}
|
|
15328
|
+
__name(foldReloadApprovalMode, "foldReloadApprovalMode");
|
|
15329
|
+
function isRestrictedApprovalModeConfig(config) {
|
|
15330
|
+
return config.isSafeMode?.() === true || config.getBareMode?.() === true;
|
|
15331
|
+
}
|
|
15332
|
+
__name(isRestrictedApprovalModeConfig, "isRestrictedApprovalModeConfig");
|
|
15070
15333
|
function normalizeCoreSettingValue(key, value) {
|
|
15071
15334
|
const definition = QWEN_CORE_SETTING_DEFINITIONS[key];
|
|
15072
15335
|
switch (definition.type) {
|
|
@@ -16256,6 +16519,26 @@ var QwenAgent = class _QwenAgent {
|
|
|
16256
16519
|
transcriptReplayConfigCache = /* @__PURE__ */ new Map();
|
|
16257
16520
|
pendingConfigCleanup = /* @__PURE__ */ new Map();
|
|
16258
16521
|
initializingConfigs = /* @__PURE__ */ new Set();
|
|
16522
|
+
sessionWorkflowEnabledOverride;
|
|
16523
|
+
/**
|
|
16524
|
+
* The last file-derived approval mode each live session actually
|
|
16525
|
+
* converged on, seeded with the session's boot-derived mode at
|
|
16526
|
+
* publication. `workspaceReload` compares the reloaded disk value against
|
|
16527
|
+
* this — not against each session's live mode — because approval mode has
|
|
16528
|
+
* runtime-only writers (`ExitPlanModeTool` approved plan exits, ACP
|
|
16529
|
+
* `session/set_mode`, the `sessionApprovalMode` ext) that never persist,
|
|
16530
|
+
* so a live session legitimately diverges from the file mid-workflow and
|
|
16531
|
+
* an unchanged file must not clobber those transitions. The record lives
|
|
16532
|
+
* on the daemon so it survives a `this.settings` cache swap, and per
|
|
16533
|
+
* session because one daemon-wide baseline cannot represent a partially
|
|
16534
|
+
* applied convergence: while a session skipped mid-flip still waits for
|
|
16535
|
+
* its value, the file can round-trip back to the old baseline and strand
|
|
16536
|
+
* the already-flipped sessions on the intermediate mode. An entry advances
|
|
16537
|
+
* only when that session successfully converges, so skipped sessions and
|
|
16538
|
+
* failed applies retry on the next reload, and an unparseable file value
|
|
16539
|
+
* (undefined fold) is never recorded.
|
|
16540
|
+
*/
|
|
16541
|
+
sessionApprovalModeConverged = /* @__PURE__ */ new Map();
|
|
16259
16542
|
managedShuttingDown = false;
|
|
16260
16543
|
clientCapabilities;
|
|
16261
16544
|
/** Set once the daemon negotiates active-work reporting; one per channel. */
|
|
@@ -16648,6 +16931,10 @@ var QwenAgent = class _QwenAgent {
|
|
|
16648
16931
|
config.setAllowedMcpServers(gating.allowed);
|
|
16649
16932
|
config.setPendingMcpServers(gating.pending);
|
|
16650
16933
|
await config.reinitializeMcpServers(mcpServers);
|
|
16934
|
+
const llmClient = config.getLlmClient?.();
|
|
16935
|
+
if (llmClient?.isInitialized?.()) {
|
|
16936
|
+
await llmClient.setTools?.();
|
|
16937
|
+
}
|
|
16651
16938
|
} catch (error) {
|
|
16652
16939
|
syncErrors.push(error);
|
|
16653
16940
|
}
|
|
@@ -16770,6 +17057,7 @@ var QwenAgent = class _QwenAgent {
|
|
|
16770
17057
|
cleanupErrors.push(error);
|
|
16771
17058
|
}
|
|
16772
17059
|
this.sessions.delete(sessionId);
|
|
17060
|
+
this.sessionApprovalModeConverged.delete(sessionId);
|
|
16773
17061
|
try {
|
|
16774
17062
|
this.pruneDrainedWorkflowRegistries();
|
|
16775
17063
|
const registry = session.getConfig().getWorkflowRunRegistry?.();
|
|
@@ -17121,7 +17409,7 @@ var QwenAgent = class _QwenAgent {
|
|
|
17121
17409
|
}
|
|
17122
17410
|
this.clientCapabilities = args.clientCapabilities;
|
|
17123
17411
|
const authMethods = buildAuthMethods();
|
|
17124
|
-
const version = "0.
|
|
17412
|
+
const version = "0.23.0";
|
|
17125
17413
|
const response = {
|
|
17126
17414
|
protocolVersion: PROTOCOL_VERSION,
|
|
17127
17415
|
agentInfo: {
|
|
@@ -17214,7 +17502,11 @@ var QwenAgent = class _QwenAgent {
|
|
|
17214
17502
|
}
|
|
17215
17503
|
await clearCachedCredentialFile();
|
|
17216
17504
|
try {
|
|
17217
|
-
await this.
|
|
17505
|
+
await this.refreshAuthWithPersistedReasoning(
|
|
17506
|
+
this.config,
|
|
17507
|
+
this.settings,
|
|
17508
|
+
method
|
|
17509
|
+
);
|
|
17218
17510
|
this.settings.setValue(
|
|
17219
17511
|
"User" /* User */,
|
|
17220
17512
|
"security.auth.selectedType",
|
|
@@ -17341,7 +17633,7 @@ var QwenAgent = class _QwenAgent {
|
|
|
17341
17633
|
if (!provisionalStandalone) {
|
|
17342
17634
|
await profiler.time(
|
|
17343
17635
|
"auth",
|
|
17344
|
-
() => this.ensureAuthenticated(config)
|
|
17636
|
+
() => this.ensureAuthenticated(config, settings)
|
|
17345
17637
|
);
|
|
17346
17638
|
initializationDeadline?.signal.throwIfAborted();
|
|
17347
17639
|
profiler.timeSync(
|
|
@@ -17578,7 +17870,10 @@ var QwenAgent = class _QwenAgent {
|
|
|
17578
17870
|
() => restoreSessionModelThenAuthenticate(
|
|
17579
17871
|
config,
|
|
17580
17872
|
projection,
|
|
17581
|
-
() => profiler.time(
|
|
17873
|
+
() => profiler.time(
|
|
17874
|
+
"auth",
|
|
17875
|
+
() => this.ensureAuthenticated(config, settings)
|
|
17876
|
+
)
|
|
17582
17877
|
)
|
|
17583
17878
|
);
|
|
17584
17879
|
profiler.timeSync(
|
|
@@ -17599,7 +17894,7 @@ var QwenAgent = class _QwenAgent {
|
|
|
17599
17894
|
projection,
|
|
17600
17895
|
() => profiler.time(
|
|
17601
17896
|
"auth",
|
|
17602
|
-
() => this.ensureAuthenticated(config)
|
|
17897
|
+
() => this.ensureAuthenticated(config, settings)
|
|
17603
17898
|
)
|
|
17604
17899
|
)
|
|
17605
17900
|
), "beforeDeferredWorkspaceActivation")
|
|
@@ -17886,7 +18181,10 @@ var QwenAgent = class _QwenAgent {
|
|
|
17886
18181
|
() => restoreSessionModelThenAuthenticate(
|
|
17887
18182
|
config,
|
|
17888
18183
|
projection,
|
|
17889
|
-
() => profiler.time(
|
|
18184
|
+
() => profiler.time(
|
|
18185
|
+
"auth",
|
|
18186
|
+
() => this.ensureAuthenticated(config, settings)
|
|
18187
|
+
)
|
|
17890
18188
|
)
|
|
17891
18189
|
);
|
|
17892
18190
|
profiler.timeSync(
|
|
@@ -17907,7 +18205,7 @@ var QwenAgent = class _QwenAgent {
|
|
|
17907
18205
|
projection,
|
|
17908
18206
|
() => profiler.time(
|
|
17909
18207
|
"auth",
|
|
17910
|
-
() => this.ensureAuthenticated(config)
|
|
18208
|
+
() => this.ensureAuthenticated(config, settings)
|
|
17911
18209
|
)
|
|
17912
18210
|
)
|
|
17913
18211
|
), "beforeDeferredWorkspaceActivation")
|
|
@@ -18073,62 +18371,81 @@ var QwenAgent = class _QwenAgent {
|
|
|
18073
18371
|
break;
|
|
18074
18372
|
}
|
|
18075
18373
|
case "reasoning_effort": {
|
|
18076
|
-
const
|
|
18077
|
-
const
|
|
18078
|
-
const
|
|
18079
|
-
|
|
18080
|
-
);
|
|
18081
|
-
|
|
18082
|
-
|
|
18083
|
-
|
|
18084
|
-
|
|
18085
|
-
|
|
18086
|
-
|
|
18087
|
-
|
|
18088
|
-
|
|
18089
|
-
|
|
18090
|
-
|
|
18091
|
-
|
|
18092
|
-
|
|
18093
|
-
}
|
|
18094
|
-
if (!modelReasoning.toggleOnly) {
|
|
18095
|
-
for (const source of ["extra_body", "samplingParams"]) {
|
|
18096
|
-
const layer = generation[source];
|
|
18097
|
-
if (!layer) continue;
|
|
18098
|
-
const next = { ...layer };
|
|
18099
|
-
delete next["enable_thinking"];
|
|
18100
|
-
delete next["reasoning_effort"];
|
|
18101
|
-
delete next["thinking_budget"];
|
|
18102
|
-
generation[source] = next;
|
|
18103
|
-
}
|
|
18104
|
-
}
|
|
18105
|
-
if (selected === REASONING_EFFORT_NONE) {
|
|
18106
|
-
generation.reasoning = false;
|
|
18107
|
-
} else if (selected === REASONING_EFFORT_DEFAULT) {
|
|
18108
|
-
generation.reasoning = void 0;
|
|
18109
|
-
} else {
|
|
18110
|
-
const current = generation.reasoning;
|
|
18111
|
-
generation.reasoning = {
|
|
18112
|
-
...current || {},
|
|
18113
|
-
effort: selected
|
|
18114
|
-
};
|
|
18115
|
-
}
|
|
18116
|
-
break;
|
|
18117
|
-
}
|
|
18118
|
-
const effort = value === REASONING_EFFORT_DEFAULT ? void 0 : REASONING_EFFORT_TIERS.find((tier) => tier === value);
|
|
18119
|
-
if (value !== REASONING_EFFORT_DEFAULT && effort === void 0) {
|
|
18374
|
+
const config = session.getConfig();
|
|
18375
|
+
const generation = config.getContentGeneratorConfig();
|
|
18376
|
+
const option = this.buildConfigOptions(config).find(
|
|
18377
|
+
(candidate) => candidate.id === "reasoning_effort"
|
|
18378
|
+
);
|
|
18379
|
+
const modelReasoning = this.getModelReasoningConfiguration(config);
|
|
18380
|
+
const selected = parseReasoningSelection(value);
|
|
18381
|
+
const choices = option?.options.flatMap(
|
|
18382
|
+
(choice) => "value" in choice ? [choice.value] : choice.options.map((nested) => nested.value)
|
|
18383
|
+
) ?? [];
|
|
18384
|
+
if (!option || !selected || selected !== REASONING_EFFORT_DEFAULT && !choices.includes(selected)) {
|
|
18385
|
+
const allowedChoices = modelReasoning ? choices : [
|
|
18386
|
+
REASONING_EFFORT_DEFAULT,
|
|
18387
|
+
...choices.filter(
|
|
18388
|
+
(choice) => choice !== REASONING_EFFORT_DEFAULT
|
|
18389
|
+
)
|
|
18390
|
+
];
|
|
18120
18391
|
throw RequestError.invalidParams(
|
|
18121
18392
|
void 0,
|
|
18122
|
-
`Unknown reasoning effort: ${value}. Choose one of: ${
|
|
18393
|
+
option ? `Unknown reasoning effort: ${String(value)}. Choose one of: ${allowedChoices.join(", ")}` : "Reasoning is not supported by the current model"
|
|
18123
18394
|
);
|
|
18124
18395
|
}
|
|
18125
|
-
|
|
18396
|
+
const persist = params._meta?.[PERSIST_REASONING_SELECTION_META_KEY] === true;
|
|
18397
|
+
const tierSelected = selected !== REASONING_EFFORT_NONE && selected !== REASONING_EFFORT_DEFAULT;
|
|
18398
|
+
if (!modelReasoning && tierSelected && generation.reasoning === false) {
|
|
18126
18399
|
throw RequestError.invalidParams(
|
|
18127
18400
|
void 0,
|
|
18128
18401
|
"Reasoning effort cannot be applied while thinking is disabled"
|
|
18129
18402
|
);
|
|
18130
18403
|
}
|
|
18131
|
-
|
|
18404
|
+
const defaultReasoning = session.getDefaultReasoningConfig();
|
|
18405
|
+
const previous = {
|
|
18406
|
+
reasoning: generation.reasoning,
|
|
18407
|
+
extra_body: generation.extra_body,
|
|
18408
|
+
samplingParams: generation.samplingParams
|
|
18409
|
+
};
|
|
18410
|
+
const rebuildable = config.getModelsConfig?.()?.getGenerationConfig?.();
|
|
18411
|
+
const previousRebuildableReasoning = rebuildable?.reasoning;
|
|
18412
|
+
try {
|
|
18413
|
+
if (modelReasoning && !modelReasoning.toggleOnly) {
|
|
18414
|
+
clearReasoningRequestOverrides(generation);
|
|
18415
|
+
}
|
|
18416
|
+
applyReasoningSelection(config, selected, defaultReasoning);
|
|
18417
|
+
if (!modelReasoning && selected !== REASONING_EFFORT_NONE) {
|
|
18418
|
+
config.setReasoningEffort?.(
|
|
18419
|
+
selected === REASONING_EFFORT_DEFAULT ? defaultReasoning ? defaultReasoning.effort : void 0 : selected
|
|
18420
|
+
);
|
|
18421
|
+
}
|
|
18422
|
+
const configOptions = this.buildConfigOptions(config);
|
|
18423
|
+
const confirmedValue = configOptions.find(
|
|
18424
|
+
(candidate) => candidate.id === "reasoning_effort"
|
|
18425
|
+
)?.currentValue;
|
|
18426
|
+
const confirmed = selected === REASONING_EFFORT_DEFAULT ? confirmedValue !== void 0 : confirmedValue === selected;
|
|
18427
|
+
if (!confirmed) {
|
|
18428
|
+
throw RequestError.invalidParams(
|
|
18429
|
+
void 0,
|
|
18430
|
+
modelReasoning ? `Reasoning selection was not applied: ${selected}` : "Reasoning effort cannot be applied while thinking is disabled"
|
|
18431
|
+
);
|
|
18432
|
+
}
|
|
18433
|
+
if (persist) {
|
|
18434
|
+
session.persistReasoningSelection(selected);
|
|
18435
|
+
}
|
|
18436
|
+
session.setSessionReasoningSelection(
|
|
18437
|
+
persist ? void 0 : selected
|
|
18438
|
+
);
|
|
18439
|
+
return {
|
|
18440
|
+
configOptions,
|
|
18441
|
+
...persist ? { _meta: { [REASONING_SELECTION_PERSISTED_META_KEY]: true } } : {}
|
|
18442
|
+
};
|
|
18443
|
+
} catch (error) {
|
|
18444
|
+
Object.assign(generation, previous);
|
|
18445
|
+
if (rebuildable)
|
|
18446
|
+
rebuildable.reasoning = previousRebuildableReasoning;
|
|
18447
|
+
throw error;
|
|
18448
|
+
}
|
|
18132
18449
|
}
|
|
18133
18450
|
default:
|
|
18134
18451
|
throw RequestError.invalidParams(
|
|
@@ -18512,7 +18829,12 @@ var QwenAgent = class _QwenAgent {
|
|
|
18512
18829
|
hasOAuthTokens = credentials !== null;
|
|
18513
18830
|
} catch {
|
|
18514
18831
|
}
|
|
18515
|
-
const
|
|
18832
|
+
const poolRow = poolByName[name];
|
|
18833
|
+
const rawStatus = poolRow ? poolRow.entrySummary.some(
|
|
18834
|
+
(entry) => entry.status === "connected" /* CONNECTED */
|
|
18835
|
+
) ? "connected" /* CONNECTED */ : poolRow.entrySummary.some(
|
|
18836
|
+
(entry) => entry.status === "connecting" /* CONNECTING */
|
|
18837
|
+
) ? "connecting" /* CONNECTING */ : "disconnected" /* DISCONNECTED */ : this.getMcpServerStatus(config, name);
|
|
18516
18838
|
const requiresAuth = rawStatus !== "connected" /* CONNECTED */ && (mcpServerRequiresOAuth.get(name) === true || server.oauth?.enabled === true && !hasOAuthTokens);
|
|
18517
18839
|
const refusedByBudget = refusedSet.has(name);
|
|
18518
18840
|
const effectivelyRefused = refusedByBudget && !disabled;
|
|
@@ -18602,7 +18924,6 @@ var QwenAgent = class _QwenAgent {
|
|
|
18602
18924
|
out.config = serverConfig;
|
|
18603
18925
|
}
|
|
18604
18926
|
}
|
|
18605
|
-
const poolRow = poolByName[name];
|
|
18606
18927
|
if (poolRow) {
|
|
18607
18928
|
out.entryCount = poolRow.entryCount;
|
|
18608
18929
|
out.entrySummary = poolRow.entrySummary.map((e) => ({
|
|
@@ -19055,13 +19376,18 @@ var QwenAgent = class _QwenAgent {
|
|
|
19055
19376
|
providers.set(authType, provider);
|
|
19056
19377
|
}
|
|
19057
19378
|
const isCurrent = currentAuth === model.authType && currentAcpModelId === modelId;
|
|
19058
|
-
const configOptions = model.isRuntimeModel || modelId.startsWith(ACP_ROUTE_ID_PREFIX) ? void 0 : buildModelReasoningConfigPreview(
|
|
19059
|
-
|
|
19060
|
-
|
|
19379
|
+
const configOptions = model.isRuntimeModel || modelId.startsWith(ACP_ROUTE_ID_PREFIX) ? void 0 : buildModelReasoningConfigPreview(
|
|
19380
|
+
model.id,
|
|
19381
|
+
resolvePersistedReasoningConfigState(
|
|
19061
19382
|
model.id,
|
|
19062
|
-
|
|
19063
|
-
|
|
19064
|
-
|
|
19383
|
+
this.settings.merged.model?.reasoningEffort,
|
|
19384
|
+
config.getResolvedModelConfig?.(
|
|
19385
|
+
model.authType,
|
|
19386
|
+
model.id,
|
|
19387
|
+
model.registryBaseUrl ?? model.baseUrl
|
|
19388
|
+
)?.generationConfig.thinkingMandatory === true
|
|
19389
|
+
)
|
|
19390
|
+
);
|
|
19065
19391
|
const providerModel = {
|
|
19066
19392
|
modelId,
|
|
19067
19393
|
baseModelId: parseAcpBaseModelId(effectiveModelId),
|
|
@@ -20020,7 +20346,11 @@ var QwenAgent = class _QwenAgent {
|
|
|
20020
20346
|
settings: adapter,
|
|
20021
20347
|
reloadModelProviders: /* @__PURE__ */ __name((modelProviders) => this.config.reloadModelProvidersConfig(modelProviders), "reloadModelProviders"),
|
|
20022
20348
|
syncAuthState: /* @__PURE__ */ __name((authType, modelId, baseUrl) => this.config.getModelsConfig().syncAfterAuthRefresh(authType, modelId, baseUrl), "syncAuthState"),
|
|
20023
|
-
refreshAuth: /* @__PURE__ */ __name((authType) => this.
|
|
20349
|
+
refreshAuth: /* @__PURE__ */ __name((authType) => this.refreshAuthWithPersistedReasoning(
|
|
20350
|
+
this.config,
|
|
20351
|
+
this.settings,
|
|
20352
|
+
authType
|
|
20353
|
+
), "refreshAuth")
|
|
20024
20354
|
});
|
|
20025
20355
|
const effectiveModelId = adapter.getValue("model.name") ?? plan.modelSelection?.modelId;
|
|
20026
20356
|
const effectiveBaseUrl = adapter.getValue("model.baseUrl") ?? plan.modelSelection?.baseUrl;
|
|
@@ -21740,7 +22070,19 @@ var QwenAgent = class _QwenAgent {
|
|
|
21740
22070
|
const previousCwd = config.getTargetDir();
|
|
21741
22071
|
let trustValidated = false;
|
|
21742
22072
|
const validateTrust = /* @__PURE__ */ __name(() => {
|
|
21743
|
-
if (managedTrustAllowed ||
|
|
22073
|
+
if (managedTrustAllowed || // Folder-trust enablement is bound to the workspace this session
|
|
22074
|
+
// was admitted under: `config.getFolderTrust()` is
|
|
22075
|
+
// `security.folderTrust.enabled` from that workspace, set once at
|
|
22076
|
+
// construction and never moved by `relocateWorkingDirectory`.
|
|
22077
|
+
// Deliberately NOT the process-wide `this.settings` cache (holds
|
|
22078
|
+
// another workspace's value in a multi-workspace daemon — the bug
|
|
22079
|
+
// this fixes), and deliberately NOT a live re-read keyed on the
|
|
22080
|
+
// current cwd: a cd moves `targetDir` into a subdirectory that
|
|
22081
|
+
// carries no `.qwen/settings.json`, so a cwd-keyed read resolves
|
|
22082
|
+
// disabled after the first cd and disarms the gate for the rest of
|
|
22083
|
+
// the session. `security.folderTrust.enabled` is `requiresRestart`,
|
|
22084
|
+
// so binding it at admission matches its declared semantics.
|
|
22085
|
+
!config.getFolderTrust()) {
|
|
21744
22086
|
trustValidated = true;
|
|
21745
22087
|
return;
|
|
21746
22088
|
}
|
|
@@ -21901,9 +22243,25 @@ var QwenAgent = class _QwenAgent {
|
|
|
21901
22243
|
session.clearActiveTodoPlanRevision();
|
|
21902
22244
|
}
|
|
21903
22245
|
session.clearTodoStopGuardTrust();
|
|
22246
|
+
} else if (previous === "plan") {
|
|
22247
|
+
session.clearActiveTodoPlanRevision();
|
|
21904
22248
|
}
|
|
21905
22249
|
return { previous, current };
|
|
21906
22250
|
}
|
|
22251
|
+
case SERVE_CONTROL_EXT_METHODS.workspaceSessionWorkflow: {
|
|
22252
|
+
const enabled = params["enabled"];
|
|
22253
|
+
if (typeof enabled !== "boolean") {
|
|
22254
|
+
throw RequestError.invalidParams(
|
|
22255
|
+
void 0,
|
|
22256
|
+
"Invalid or missing Session Workflow setting"
|
|
22257
|
+
);
|
|
22258
|
+
}
|
|
22259
|
+
if (this.sessionWorkflowEnabledOverride === enabled) {
|
|
22260
|
+
return { enabled, sessionsUpdated: 0 };
|
|
22261
|
+
}
|
|
22262
|
+
const sessionsUpdated = this.applySessionWorkflowOverrideToLiveSessions(enabled);
|
|
22263
|
+
return { enabled, sessionsUpdated };
|
|
22264
|
+
}
|
|
21907
22265
|
case SERVE_CONTROL_EXT_METHODS.sessionLanguage: {
|
|
21908
22266
|
const sessionId = params["sessionId"];
|
|
21909
22267
|
const language = params["language"];
|
|
@@ -22009,6 +22367,51 @@ var QwenAgent = class _QwenAgent {
|
|
|
22009
22367
|
}
|
|
22010
22368
|
return { language: resolvedLanguage, outputLanguage, refreshed };
|
|
22011
22369
|
}
|
|
22370
|
+
case SERVE_CONTROL_EXT_METHODS.userLanguage: {
|
|
22371
|
+
const language = params["language"];
|
|
22372
|
+
const syncOutputLanguage = params["syncOutputLanguage"] === true;
|
|
22373
|
+
const allowedLanguages = [
|
|
22374
|
+
...SUPPORTED_LANGUAGES.map((l) => l.code),
|
|
22375
|
+
"auto"
|
|
22376
|
+
];
|
|
22377
|
+
if (typeof language !== "string" || !allowedLanguages.includes(language)) {
|
|
22378
|
+
throw RequestError.invalidParams(
|
|
22379
|
+
void 0,
|
|
22380
|
+
`Invalid language; must be one of: ${allowedLanguages.join(", ")}`
|
|
22381
|
+
);
|
|
22382
|
+
}
|
|
22383
|
+
try {
|
|
22384
|
+
await setLanguageAsync(language);
|
|
22385
|
+
} catch (err) {
|
|
22386
|
+
debugLogger9.warn("setLanguageAsync failed:", err);
|
|
22387
|
+
throw new RequestError(
|
|
22388
|
+
-32603,
|
|
22389
|
+
`Failed to switch UI language: ${err instanceof Error ? err.message : String(err)}`
|
|
22390
|
+
);
|
|
22391
|
+
}
|
|
22392
|
+
const resolvedLanguage = getCurrentLanguage();
|
|
22393
|
+
this.settings.reloadScopeFromDisk("User" /* User */);
|
|
22394
|
+
let sessions = 0;
|
|
22395
|
+
let failed = 0;
|
|
22396
|
+
if (syncOutputLanguage) {
|
|
22397
|
+
const allSessions = [...this.sessions.values()];
|
|
22398
|
+
const results = await Promise.allSettled(
|
|
22399
|
+
allSessions.map(async (s) => {
|
|
22400
|
+
const cfg = s.getConfig();
|
|
22401
|
+
await cfg.refreshHierarchicalMemory();
|
|
22402
|
+
await cfg.getLlmClient()?.refreshSystemInstruction();
|
|
22403
|
+
})
|
|
22404
|
+
);
|
|
22405
|
+
sessions = results.length;
|
|
22406
|
+
failed = results.filter((r) => r.status === "rejected").length;
|
|
22407
|
+
if (failed > 0) {
|
|
22408
|
+
debugLogger9.warn(
|
|
22409
|
+
`User language refresh failed for ${failed}/${results.length} session(s)`
|
|
22410
|
+
);
|
|
22411
|
+
}
|
|
22412
|
+
}
|
|
22413
|
+
return { language: resolvedLanguage, sessions, failed };
|
|
22414
|
+
}
|
|
22012
22415
|
case SERVE_CONTROL_EXT_METHODS.sessionRecap: {
|
|
22013
22416
|
const sessionId = params["sessionId"];
|
|
22014
22417
|
if (typeof sessionId !== "string" || sessionId.length === 0) {
|
|
@@ -23511,6 +23914,19 @@ ${outputText}
|
|
|
23511
23914
|
if (providersChanged) {
|
|
23512
23915
|
this.modelProviderReloadRevision += 1;
|
|
23513
23916
|
}
|
|
23917
|
+
const readSessionWorkflow = /* @__PURE__ */ __name((merged) => merged.experimental?.sessionWorkflow === true, "readSessionWorkflow");
|
|
23918
|
+
const reloadedSessionWorkflow = readSessionWorkflow(newMerged);
|
|
23919
|
+
this.applySessionWorkflowOverrideToLiveSessions(
|
|
23920
|
+
reloadedSessionWorkflow
|
|
23921
|
+
);
|
|
23922
|
+
const reloadedApprovalMode = foldReloadApprovalMode(
|
|
23923
|
+
newMerged.tools?.approvalMode
|
|
23924
|
+
);
|
|
23925
|
+
if (reloadedApprovalMode === void 0) {
|
|
23926
|
+
debugLogger9.warn(
|
|
23927
|
+
"reload: tools.approvalMode holds a value boot would reject; live sessions keep their current modes until the file is corrected"
|
|
23928
|
+
);
|
|
23929
|
+
}
|
|
23514
23930
|
const sessions = [...this.sessions.entries()];
|
|
23515
23931
|
const refreshed = [];
|
|
23516
23932
|
const skipped = [];
|
|
@@ -23538,6 +23954,7 @@ ${outputText}
|
|
|
23538
23954
|
if (changed.has("model") && newModelName && newModelName !== config.getModel() && authType) {
|
|
23539
23955
|
try {
|
|
23540
23956
|
await config.switchModel(authType, newModelName);
|
|
23957
|
+
session.reloadReasoningSelection();
|
|
23541
23958
|
} catch (err) {
|
|
23542
23959
|
debugLogger9.warn(
|
|
23543
23960
|
`reload: switchModel failed for session ${id}: ${err}`
|
|
@@ -23545,44 +23962,65 @@ ${outputText}
|
|
|
23545
23962
|
}
|
|
23546
23963
|
} else if ((providersChanged || envChanged) && authType) {
|
|
23547
23964
|
try {
|
|
23548
|
-
await
|
|
23965
|
+
await this.refreshAuthWithPersistedReasoning(
|
|
23966
|
+
config,
|
|
23967
|
+
this.settings,
|
|
23968
|
+
authType,
|
|
23969
|
+
void 0,
|
|
23970
|
+
session.getSessionReasoningSelection()
|
|
23971
|
+
);
|
|
23972
|
+
session.reloadReasoningSelection();
|
|
23549
23973
|
} catch (err) {
|
|
23550
23974
|
debugLogger9.warn(
|
|
23551
23975
|
`reload: refreshAuth failed for session ${id}: ${err}`
|
|
23552
23976
|
);
|
|
23553
23977
|
}
|
|
23978
|
+
} else if (changed.has("model")) {
|
|
23979
|
+
session.reloadReasoningSelection();
|
|
23554
23980
|
}
|
|
23555
23981
|
if (changed.has("tools")) {
|
|
23556
23982
|
const disabled = normalizeDisabledToolList(
|
|
23557
23983
|
newMerged.tools?.disabled
|
|
23558
23984
|
);
|
|
23559
23985
|
config.setDisabledTools(new Set(disabled));
|
|
23560
|
-
|
|
23561
|
-
|
|
23562
|
-
|
|
23563
|
-
|
|
23564
|
-
|
|
23565
|
-
|
|
23566
|
-
|
|
23567
|
-
|
|
23568
|
-
|
|
23569
|
-
|
|
23570
|
-
|
|
23571
|
-
|
|
23986
|
+
}
|
|
23987
|
+
const workflowsWereEnabled = config.isWorkflowsEnabled();
|
|
23988
|
+
config.setWorkflowsEnabled(
|
|
23989
|
+
newMerged.tools?.workflowsEnabled === true
|
|
23990
|
+
);
|
|
23991
|
+
if (config.isWorkflowsEnabled() !== workflowsWereEnabled) {
|
|
23992
|
+
try {
|
|
23993
|
+
await session.sendAvailableCommandsUpdate();
|
|
23994
|
+
} catch (err) {
|
|
23995
|
+
debugLogger9.warn(
|
|
23996
|
+
`reload: sendAvailableCommandsUpdate failed for session ${id}: ${err}`
|
|
23997
|
+
);
|
|
23572
23998
|
}
|
|
23573
|
-
|
|
23574
|
-
|
|
23999
|
+
}
|
|
24000
|
+
const reloadedSessionMode = isRestrictedApprovalModeConfig(config) ? "default" /* DEFAULT */ : reloadedApprovalMode;
|
|
24001
|
+
const previousMode = config.getApprovalMode();
|
|
24002
|
+
const convergedMode = this.sessionApprovalModeConverged.get(id);
|
|
24003
|
+
if (reloadedSessionMode !== void 0 && reloadedSessionMode !== convergedMode) {
|
|
24004
|
+
if (reloadedSessionMode !== previousMode) {
|
|
23575
24005
|
try {
|
|
23576
|
-
config.setApprovalMode(
|
|
23577
|
-
if (
|
|
24006
|
+
config.setApprovalMode(reloadedSessionMode);
|
|
24007
|
+
if (reloadedSessionMode === "plan") {
|
|
23578
24008
|
session.clearActiveTodoPlanRevision();
|
|
23579
24009
|
session.clearTodoStopGuardTrust();
|
|
24010
|
+
} else if (previousMode === "plan") {
|
|
24011
|
+
session.clearActiveTodoPlanRevision();
|
|
23580
24012
|
}
|
|
24013
|
+
this.sessionApprovalModeConverged.set(
|
|
24014
|
+
id,
|
|
24015
|
+
reloadedSessionMode
|
|
24016
|
+
);
|
|
23581
24017
|
} catch (err) {
|
|
23582
24018
|
debugLogger9.warn(
|
|
23583
24019
|
`reload: setApprovalMode failed for session ${id}: ${err}`
|
|
23584
24020
|
);
|
|
23585
24021
|
}
|
|
24022
|
+
} else {
|
|
24023
|
+
this.sessionApprovalModeConverged.set(id, reloadedSessionMode);
|
|
23586
24024
|
}
|
|
23587
24025
|
}
|
|
23588
24026
|
try {
|
|
@@ -24051,7 +24489,30 @@ ${outputText}
|
|
|
24051
24489
|
);
|
|
24052
24490
|
}
|
|
24053
24491
|
}
|
|
24054
|
-
async
|
|
24492
|
+
async refreshAuthWithPersistedReasoning(config, settings, authType, isInitialAuth, sessionSelection) {
|
|
24493
|
+
await config.refreshAuth(authType, isInitialAuth);
|
|
24494
|
+
const selection = sessionSelection ?? parseReasoningSelection(settings.merged.model?.reasoningEffort);
|
|
24495
|
+
if (!selection || selection === REASONING_EFFORT_DEFAULT) {
|
|
24496
|
+
return;
|
|
24497
|
+
}
|
|
24498
|
+
const generation = config.getContentGeneratorConfig?.();
|
|
24499
|
+
const modelId = generation?.model ?? config.getModel();
|
|
24500
|
+
if (!isReasoningSelectionSupported(
|
|
24501
|
+
modelId,
|
|
24502
|
+
selection,
|
|
24503
|
+
generation?.thinkingMandatory === true
|
|
24504
|
+
)) {
|
|
24505
|
+
return;
|
|
24506
|
+
}
|
|
24507
|
+
const modelReasoning = this.getModelReasoningConfiguration(config);
|
|
24508
|
+
if (generation && modelReasoning && !modelReasoning.toggleOnly) {
|
|
24509
|
+
clearReasoningRequestOverrides(generation);
|
|
24510
|
+
}
|
|
24511
|
+
if (selection === REASONING_EFFORT_NONE) {
|
|
24512
|
+
applyReasoningSelection(config, REASONING_EFFORT_NONE);
|
|
24513
|
+
}
|
|
24514
|
+
}
|
|
24515
|
+
async ensureAuthenticated(config, settings) {
|
|
24055
24516
|
const selectedType = config.getModelsConfig().getCurrentAuthType();
|
|
24056
24517
|
if (!selectedType) {
|
|
24057
24518
|
throw RequestError.authRequired(
|
|
@@ -24060,7 +24521,12 @@ ${outputText}
|
|
|
24060
24521
|
);
|
|
24061
24522
|
}
|
|
24062
24523
|
try {
|
|
24063
|
-
await
|
|
24524
|
+
await this.refreshAuthWithPersistedReasoning(
|
|
24525
|
+
config,
|
|
24526
|
+
settings,
|
|
24527
|
+
selectedType,
|
|
24528
|
+
true
|
|
24529
|
+
);
|
|
24064
24530
|
} catch (e) {
|
|
24065
24531
|
debugLogger9.error(`Authentication failed: ${e}`);
|
|
24066
24532
|
throw RequestError.authRequired(
|
|
@@ -24071,6 +24537,37 @@ ${outputText}
|
|
|
24071
24537
|
);
|
|
24072
24538
|
}
|
|
24073
24539
|
}
|
|
24540
|
+
/**
|
|
24541
|
+
* Pins the workflow gate of every live Session whose effective gate
|
|
24542
|
+
* actually changes to `enabled`, dropping the bound plan revision on those
|
|
24543
|
+
* sessions, then records `enabled` as the daemon-held override. The no-op
|
|
24544
|
+
* decision is per-session because neither caller's own state can answer it:
|
|
24545
|
+
* on a first UI write the override is still `undefined` although sessions
|
|
24546
|
+
* already derive the pushed value from settings (a shadowed workspace
|
|
24547
|
+
* write), and a reload diff can fire against a stale settings view that the
|
|
24548
|
+
* UI write path never updated. Each session's live value is read BEFORE the
|
|
24549
|
+
* field reassignment below so a pinned provider cannot report the new value
|
|
24550
|
+
* as its "before" state. The provider reads the field rather than capturing
|
|
24551
|
+
* a value so a later re-derivation (a settings-file reload) reaches
|
|
24552
|
+
* sessions that were pinned earlier. Returns the number of sessions whose
|
|
24553
|
+
* gate changed.
|
|
24554
|
+
*/
|
|
24555
|
+
applySessionWorkflowOverrideToLiveSessions(enabled) {
|
|
24556
|
+
let sessionsUpdated = 0;
|
|
24557
|
+
for (const session of this.sessions.values()) {
|
|
24558
|
+
const config = session.getConfig();
|
|
24559
|
+
if (config.isSessionWorkflowEnabled?.() === enabled) {
|
|
24560
|
+
continue;
|
|
24561
|
+
}
|
|
24562
|
+
config.setSessionWorkflowEnabledProvider?.(
|
|
24563
|
+
() => this.sessionWorkflowEnabledOverride === true
|
|
24564
|
+
);
|
|
24565
|
+
session.clearActiveTodoPlanRevision();
|
|
24566
|
+
sessionsUpdated++;
|
|
24567
|
+
}
|
|
24568
|
+
this.sessionWorkflowEnabledOverride = enabled;
|
|
24569
|
+
return sessionsUpdated;
|
|
24570
|
+
}
|
|
24074
24571
|
setupFileSystem(config) {
|
|
24075
24572
|
if (!this.clientCapabilities?.fs) return;
|
|
24076
24573
|
const acpFileSystemService = new AcpFileSystemService(
|
|
@@ -24225,7 +24722,7 @@ ${outputText}
|
|
|
24225
24722
|
if (options.beforeDeferredWorkspaceActivation) {
|
|
24226
24723
|
await options.beforeDeferredWorkspaceActivation();
|
|
24227
24724
|
} else {
|
|
24228
|
-
await this.ensureAuthenticated(config);
|
|
24725
|
+
await this.ensureAuthenticated(config, settings);
|
|
24229
24726
|
}
|
|
24230
24727
|
this.assertManagedSessionAdmission();
|
|
24231
24728
|
await config.activateProvisionalWorkspace();
|
|
@@ -24286,7 +24783,7 @@ ${outputText}
|
|
|
24286
24783
|
settings.merged.providerProtocol
|
|
24287
24784
|
);
|
|
24288
24785
|
if (forceAuthenticationRefresh || providerSettingsChanged || envReload.updatedKeys.length > 0 || envReload.removedKeys.length > 0) {
|
|
24289
|
-
await this.ensureAuthenticated(config);
|
|
24786
|
+
await this.ensureAuthenticated(config, settings);
|
|
24290
24787
|
}
|
|
24291
24788
|
}
|
|
24292
24789
|
if (providerReloadRevision === this.modelProviderReloadRevision) break;
|
|
@@ -24297,7 +24794,16 @@ ${outputText}
|
|
|
24297
24794
|
if (options.deferWorkspaceActivation !== true) {
|
|
24298
24795
|
config.hydrateSessionRestoreFileHistory?.();
|
|
24299
24796
|
}
|
|
24797
|
+
if (this.sessionWorkflowEnabledOverride !== void 0) {
|
|
24798
|
+
config.setSessionWorkflowEnabledProvider?.(
|
|
24799
|
+
() => this.sessionWorkflowEnabledOverride === true
|
|
24800
|
+
);
|
|
24801
|
+
}
|
|
24300
24802
|
this.sessions.set(sessionId, session);
|
|
24803
|
+
this.sessionApprovalModeConverged.set(
|
|
24804
|
+
sessionId,
|
|
24805
|
+
config.getApprovalMode()
|
|
24806
|
+
);
|
|
24301
24807
|
published = true;
|
|
24302
24808
|
this.activeWorkReporter?.notifyChanged();
|
|
24303
24809
|
this.initializingConfigs.delete(config);
|
|
@@ -24429,7 +24935,16 @@ ${outputText}
|
|
|
24429
24935
|
currentValue: currentModelId,
|
|
24430
24936
|
options: configModelOptions
|
|
24431
24937
|
};
|
|
24432
|
-
|
|
24938
|
+
if (activeRuntimeSnapshot || currentModelId.startsWith(ACP_ROUTE_ID_PREFIX) || !isReasoningSelectionSupported(
|
|
24939
|
+
rawCurrentModelId,
|
|
24940
|
+
REASONING_EFFORT_DEFAULT
|
|
24941
|
+
)) {
|
|
24942
|
+
return [modeConfigOption, modelConfigOption];
|
|
24943
|
+
}
|
|
24944
|
+
const generation = config.getContentGeneratorConfig?.();
|
|
24945
|
+
if (!generation) {
|
|
24946
|
+
return [modeConfigOption, modelConfigOption];
|
|
24947
|
+
}
|
|
24433
24948
|
const modelReasoning = this.getModelReasoningConfiguration(
|
|
24434
24949
|
config,
|
|
24435
24950
|
currentModelId
|
|
@@ -24448,6 +24963,7 @@ ${outputText}
|
|
|
24448
24963
|
(effort) => effort === normalizedOverrideEffort
|
|
24449
24964
|
) ?? modelReasoning.defaultEffort : currentModelEffort : currentModelEffort;
|
|
24450
24965
|
const reasoningEnabled = generation.reasoning !== false && (!reasoningOverride || !overrideDisablesReasoning);
|
|
24966
|
+
const canDisableReasoning = generation.thinkingMandatory !== true;
|
|
24451
24967
|
const reasoningEffortConfigOption = (modelReasoning ? buildModelReasoningConfigOption(rawCurrentModelId, {
|
|
24452
24968
|
enabled: reasoningEnabled,
|
|
24453
24969
|
effort: effectiveModelEffort,
|
|
@@ -24458,8 +24974,15 @@ ${outputText}
|
|
|
24458
24974
|
description: "How hard reasoning-capable models should think",
|
|
24459
24975
|
category: "thought_level",
|
|
24460
24976
|
type: "select",
|
|
24461
|
-
currentValue: currentModelEffort ?? REASONING_EFFORT_DEFAULT,
|
|
24977
|
+
currentValue: generation.reasoning === false && canDisableReasoning ? REASONING_EFFORT_NONE : currentModelEffort ?? REASONING_EFFORT_DEFAULT,
|
|
24462
24978
|
options: [
|
|
24979
|
+
...canDisableReasoning ? [
|
|
24980
|
+
{
|
|
24981
|
+
value: REASONING_EFFORT_NONE,
|
|
24982
|
+
name: "Thinking off",
|
|
24983
|
+
description: "Disable thinking for this session"
|
|
24984
|
+
}
|
|
24985
|
+
] : [],
|
|
24463
24986
|
{
|
|
24464
24987
|
value: REASONING_EFFORT_DEFAULT,
|
|
24465
24988
|
name: "Default",
|