@qwen-code/qwen-code 0.21.5 → 0.21.6-preview.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/bundled/qc-helper/docs/configuration/model-providers.md +8 -8
- package/bundled/qc-helper/docs/configuration/settings.md +15 -15
- package/bundled/qc-helper/docs/features/code-review.md +2 -0
- package/bundled/qc-helper/docs/features/headless.md +31 -0
- package/bundled/qc-helper/docs/qwen-serve.md +75 -0
- package/bundled/review/SKILL.md +59 -52
- package/chunks/{MaxSizedBox-2MWU5JYB.js → MaxSizedBox-A3UYJS6B.js} +8 -7
- package/chunks/{StandaloneSessionPicker-B6MI5NTB.js → StandaloneSessionPicker-NGLY26I4.js} +21 -20
- package/chunks/{acpAgent-MRPYN6FH.js → acpAgent-V54T2EEL.js} +215 -63
- package/chunks/{agent-NAOXNW4I.js → agent-2P53VL2L.js} +8 -7
- package/chunks/{agent-headless-L4PPVFKW.js → agent-headless-6X4GCFRD.js} +8 -7
- package/chunks/{bridge-LHXGYNCO.js → bridge-TCFMLKHR.js} +12 -10
- package/chunks/{channel-settings-store-QB54TLYE.js → channel-settings-store-B4HNMNQV.js} +13 -12
- package/chunks/{channel-worker-group-NDG4WOOZ.js → channel-worker-group-SVGPDH2C.js} +3 -2
- package/chunks/{channel-worker-manager-ZCW6UW34.js → channel-worker-manager-72ZK2GTS.js} +3 -2
- package/chunks/{channel-worker-supervisor-ATGFTZRN.js → channel-worker-supervisor-NUEDVHX4.js} +2 -1
- package/chunks/{chunk-UWSXFI6E.js → chunk-2U7GPHA6.js} +6 -2
- package/chunks/{chunk-CIUUYB23.js → chunk-3DTM3RPU.js} +1 -1
- package/chunks/{chunk-7MFQLOHZ.js → chunk-3PRJYMXC.js} +1 -1
- package/chunks/{chunk-K6VEL5KP.js → chunk-3ZRS2XNY.js} +1 -1
- package/chunks/{chunk-GBY3ODW7.js → chunk-4E5PO6R7.js} +3 -3
- package/chunks/{chunk-KH2BIJ4H.js → chunk-4T6QMNX2.js} +89 -6
- package/chunks/{chunk-K64OI7S7.js → chunk-546CDN6D.js} +1 -1
- package/chunks/{chunk-J7I2BZHS.js → chunk-5CDI4UOY.js} +23 -6
- package/chunks/{chunk-7W5KOBYU.js → chunk-6D6V55ZQ.js} +1 -1
- package/chunks/{chunk-WU5NBSLD.js → chunk-6KEN3RIC.js} +3 -3
- package/chunks/{chunk-FEUXV3DC.js → chunk-6KZP75GT.js} +1 -1
- package/chunks/{chunk-B3EBIZUY.js → chunk-72DZPDH4.js} +1 -1
- package/chunks/{chunk-TCOJPG2P.js → chunk-7FUVSN4D.js} +1 -1
- package/chunks/{chunk-EXHQZBVJ.js → chunk-AFZTZLFB.js} +2 -2
- package/chunks/{chunk-AEWOKOJY.js → chunk-AU3XNTMV.js} +1 -1
- package/chunks/{chunk-C6ARWPCG.js → chunk-AVDEBBMI.js} +2 -2
- package/chunks/chunk-BKHCW2BI.js +41 -0
- package/chunks/{chunk-ZLGPHA34.js → chunk-BU4BRCPX.js} +4 -4
- package/chunks/{chunk-3GOCVBYR.js → chunk-C4GRKMUL.js} +4 -4
- package/chunks/{chunk-VOA2UPZM.js → chunk-CDHNGCJI.js} +3 -3
- package/chunks/{chunk-3H5RFLTS.js → chunk-CJBRIJ7W.js} +1 -1
- package/chunks/{chunk-D7QAZ5DF.js → chunk-CXYBX4AL.js} +1 -1
- package/chunks/{chunk-GEP54CHX.js → chunk-DBIEZC7T.js} +3 -3
- package/chunks/{chunk-BWLUCN35.js → chunk-DG563ZCS.js} +2 -2
- package/chunks/{chunk-YLL3SC5S.js → chunk-DOA7MCDY.js} +167 -99
- package/chunks/{chunk-OIGB253L.js → chunk-DOICUTPO.js} +7 -7
- package/chunks/{chunk-VJPF6GF2.js → chunk-EHMN6SEG.js} +2 -2
- package/chunks/{chunk-YO4JI7B4.js → chunk-EKWNNQQD.js} +4 -4
- package/chunks/{chunk-B2RBYP7Z.js → chunk-FDV3CXTD.js} +2 -2
- package/chunks/{chunk-LMNM37OE.js → chunk-HKNSU4WX.js} +1 -1
- package/chunks/{chunk-4LLUH3A7.js → chunk-HU5TUALO.js} +95 -8
- package/chunks/{chunk-G2UXFO2B.js → chunk-IISDPZ5X.js} +1 -1
- package/chunks/{chunk-LYPXNRBX.js → chunk-IKXE3AAC.js} +1 -1
- package/chunks/{chunk-TJ56V3AR.js → chunk-MFBUJMQ3.js} +3 -3
- package/chunks/{chunk-SQTA6PAY.js → chunk-MVLM6PJK.js} +1 -1
- package/chunks/{chunk-4NEBUDWS.js → chunk-N47ZM2KI.js} +9 -9
- package/chunks/{chunk-5HWAJ4BK.js → chunk-NAYPZ72V.js} +1 -1
- package/chunks/{chunk-IZ2CMEYO.js → chunk-NKST54XA.js} +1 -1
- package/chunks/{chunk-IK3RYLAD.js → chunk-NYZAL2W2.js} +3 -3
- package/chunks/{chunk-ZPGMDT4S.js → chunk-O656RSMC.js} +19 -92
- package/chunks/{chunk-XD2PNH3K.js → chunk-P7LKADIT.js} +5 -5
- package/chunks/{chunk-JDNWIXHJ.js → chunk-PQTK2FVO.js} +3 -3
- package/chunks/{chunk-LSYVASZS.js → chunk-QG2ACINA.js} +1 -1
- package/chunks/{chunk-IWYXZAGT.js → chunk-QWUYFMAR.js} +24 -24
- package/chunks/{chunk-YMUZQ3MQ.js → chunk-RTWF7FF7.js} +3 -3
- package/chunks/{chunk-5XNO4AW7.js → chunk-SPUDIAHX.js} +11 -11
- package/chunks/{chunk-7M2RLFNX.js → chunk-SQ3ZJOYL.js} +11 -11
- package/chunks/{chunk-SJMCYCUQ.js → chunk-T4XY5CT4.js} +4 -4
- package/chunks/{chunk-2JBETW4S.js → chunk-TVFC3XF5.js} +5 -5
- package/chunks/{chunk-NLQIEY6W.js → chunk-VDLXPEI5.js} +3 -3
- package/chunks/{chunk-Q2V4AOQL.js → chunk-WAOLM6SQ.js} +1 -1
- package/chunks/{chunk-N3RERU5N.js → chunk-WIPQR44Y.js} +3 -3
- package/chunks/{chunk-PDDYAXL2.js → chunk-WIRAPZ62.js} +7 -0
- package/chunks/chunk-WOJZWRAZ.js +123 -0
- package/chunks/{chunk-SVIEVA3L.js → chunk-WPKIU4PA.js} +28 -3
- package/chunks/{chunk-K2ETEWG6.js → chunk-WVRJKSIG.js} +1 -1
- package/chunks/{chunk-WTM5QONI.js → chunk-WXS647W5.js} +2 -2
- package/chunks/{chunk-4O6HLCOF.js → chunk-X6DV3WKN.js} +1 -1
- package/chunks/{chunk-OGAARVN7.js → chunk-XKTCA6BW.js} +3 -3
- package/chunks/{chunk-FHPKHXHT.js → chunk-XNZBXQCG.js} +4 -0
- package/chunks/{chunk-GP4IMBX5.js → chunk-XOZ2R6XI.js} +529 -259
- package/chunks/{chunk-IWGMDSC3.js → chunk-XSGQKR37.js} +4 -4
- package/chunks/{chunk-ZLJQIGCH.js → chunk-XZCMQUOF.js} +8 -0
- package/chunks/{chunk-P3SLTSNY.js → chunk-Y5HIDFKZ.js} +4 -4
- package/chunks/{chunk-RM3F46UT.js → chunk-YUVTZ4UH.js} +6 -6
- package/chunks/{chunk-3P4GP4S2.js → chunk-Z5S6KH2B.js} +1 -1
- package/chunks/{chunk-4NNR24EP.js → chunk-ZH7G3A4U.js} +3 -3
- package/chunks/{chunk-CAX76R46.js → chunk-ZQL73PPE.js} +1 -1
- package/chunks/{computer-use-XDOGP2KA.js → computer-use-GTOP2CVH.js} +8 -7
- package/chunks/{config-utils-E3ZQTHGM.js → config-utils-LIRO7NSU.js} +2 -2
- package/chunks/{contextCommand-N3LQDCYJ.js → contextCommand-K6T6RRF3.js} +10 -9
- package/chunks/{core-runtime-STAFP45W.js → core-runtime-D2626QQU.js} +8 -7
- package/chunks/{create-sub-session-2B3JENWD.js → create-sub-session-MWUWNBM6.js} +8 -7
- package/chunks/{daemon-status-provider-PPAH3ATF.js → daemon-status-provider-2EHRZZVF.js} +16 -14
- package/chunks/{daemon-trust-policy-X6XL3MB4.js → daemon-trust-policy-B3EPDJDR.js} +13 -12
- package/chunks/{daemon-trust-policy-monitor-M5LBL2HD.js → daemon-trust-policy-monitor-MFM5X26G.js} +13 -12
- package/chunks/{deferred-core-runtime-O54YPTBU.js → deferred-core-runtime-KXN7HLN7.js} +8 -7
- package/chunks/{earlyInputCapture-CBIT2RGT.js → earlyInputCapture-WUNYYFOS.js} +8 -7
- package/chunks/{edit-KW2TOC6A.js → edit-DMFCBP2D.js} +8 -7
- package/chunks/{enter-worktree-YL34NEU5.js → enter-worktree-5SVBCXFC.js} +8 -7
- package/chunks/{enterPlanMode-JFJTDASQ.js → enterPlanMode-QUIZFQ4M.js} +8 -7
- package/chunks/{environment-IATU5GXG.js → environment-U6QP23VJ.js} +10 -9
- package/chunks/{errors-SAVRDE7Q.js → errors-GZWFA6ON.js} +10 -9
- package/chunks/{exit-worktree-5M43QPBB.js → exit-worktree-FUB44KAF.js} +8 -7
- package/chunks/{exitPlanMode-W4EICZ4N.js → exitPlanMode-XSHHYR73.js} +8 -7
- package/chunks/external-tool-guard-provider-5HTGOPGU.js +273 -0
- package/chunks/{fast-path-YQJPIKMP.js → fast-path-JHQJSIMZ.js} +5 -5
- package/chunks/{gemini-FUF5SSPR.js → gemini-O44ETOKT.js} +61 -46
- package/chunks/{geminiContentGenerator-LLLZBOUG.js → geminiContentGenerator-TTM4TZJM.js} +1 -1
- package/chunks/{glob-LJFFMN4D.js → glob-YECOWTRW.js} +8 -7
- package/chunks/{grep-Q64EAM73.js → grep-BZO4LOTA.js} +8 -7
- package/chunks/{handleAutoUpdate-QBMPRTSQ.js → handleAutoUpdate-TOO52D6H.js} +12 -11
- package/chunks/{i18n-LDUW5DMN.js → i18n-ARJYXZQ5.js} +9 -8
- package/chunks/{image-gen-G7RLG3KR.js → image-gen-J6Q2YBEU.js} +1 -1
- package/chunks/{initializer-74A7DMMD.js → initializer-CEZ4RPQV.js} +13 -12
- package/chunks/{installationInfo-OFDYLDFD.js → installationInfo-AEGIIQAT.js} +9 -8
- package/chunks/{list-JA2EWRHJ.js → list-7XLPV5GC.js} +16 -15
- package/chunks/{loadedSettingsAdapter-2GNJOQ3L.js → loadedSettingsAdapter-YK5SBHOT.js} +13 -12
- package/chunks/{loggingContentGenerator-B6B5EGB3.js → loggingContentGenerator-I7QDXS43.js} +4 -3
- package/chunks/{managed-npm-update-4YZHLUER.js → managed-npm-update-YSL7PA7G.js} +9 -8
- package/chunks/{mcp-LLK5YJVH.js → mcp-RKFQZXP6.js} +13 -12
- package/chunks/{monitor-NYJPAWVP.js → monitor-QHHJIKGL.js} +8 -7
- package/chunks/{nonInteractiveCli-HZBBBDJD.js → nonInteractiveCli-XEBIE7MG.js} +41 -39
- package/chunks/{notebook-edit-LLM6UXFX.js → notebook-edit-SG7X2EQA.js} +8 -7
- package/chunks/{openaiContentGenerator-2AEXDN55.js → openaiContentGenerator-63CVR33K.js} +5 -4
- package/chunks/{pidfile-3JUWX7G2.js → pidfile-I3CXJGQD.js} +8 -7
- package/chunks/{processUtils-JLLRVZHT.js → processUtils-LJ3DSANX.js} +2 -2
- package/chunks/{qwenContentGenerator-2FESCF27.js → qwenContentGenerator-JINBVCH6.js} +9 -8
- package/chunks/{qwenOAuth2-2KKPYA5J.js → qwenOAuth2-SY2O3NRR.js} +1 -1
- package/chunks/{read-file-5GVXLY74.js → read-file-PGTXF25I.js} +3 -2
- package/chunks/{record-artifact-L3BAHQFN.js → record-artifact-E6AWQU2Z.js} +1 -1
- package/chunks/{resumeHistoryUtils-Z4OFBXPM.js → resumeHistoryUtils-FB2NFVZ2.js} +11 -10
- package/chunks/{ripGrep-TKOJTIAB.js → ripGrep-IY3KGPM6.js} +8 -7
- package/chunks/{run-qwen-serve-K5W6MM6M.js → run-qwen-serve-UYEMGPKA.js} +72 -36
- package/chunks/{runtime-IADXMRCY.js → runtime-CG3BKRFE.js} +16 -15
- package/chunks/{scheduler-T7AV37LD.js → scheduler-VFUVGDE5.js} +8 -7
- package/chunks/{serve-ROEGMS3I.js → serve-ZCCQ2G2L.js} +14 -12
- package/chunks/{server-NGXMRODI.js → server-WS7LWXPP.js} +161 -54
- package/chunks/{session-RCDLDJA4.js → session-IQLCT32T.js} +42 -40
- package/chunks/{settings-E6H3AURD.js → settings-NX4EUIE6.js} +12 -11
- package/chunks/{shell-RHGGJ6BE.js → shell-THDYM4CS.js} +8 -7
- package/chunks/{skill-GQ7PBS25.js → skill-OXXZBNQB.js} +3 -2
- package/chunks/{skill-settings-E2F7OCBL.js → skill-settings-T3JZ33T2.js} +12 -11
- package/chunks/{spawnChannel-Q2IQBHME.js → spawnChannel-COLJMSA7.js} +11 -9
- package/chunks/{standalone-update-NYYZEHLD.js → standalone-update-ICW7H5IF.js} +10 -9
- package/chunks/{startInteractiveUI-IX6I3Y2Z.js → startInteractiveUI-6BDRXSMF.js} +60 -58
- package/chunks/{team-create-UTRVUEDA.js → team-create-BCSMDK4Z.js} +8 -7
- package/chunks/{team-plan-approval-YZNB4U5U.js → team-plan-approval-B5YRLJFV.js} +8 -7
- package/chunks/{terminal-image-renderer-QRSCS2BE.js → terminal-image-renderer-PW6Z6VFY.js} +8 -7
- package/chunks/{theme-manager-EKZBY34I.js → theme-manager-CMVKD2JH.js} +8 -7
- package/chunks/{tool-search-N2R7LVMC.js → tool-search-SQTUSG6P.js} +3 -2
- package/chunks/{total-session-admission-HBIYARPO.js → total-session-admission-XAXOSE46.js} +12 -10
- package/chunks/{trustedFolders-ZQLYRCSY.js → trustedFolders-Z2UAEG2V.js} +9 -8
- package/chunks/{update-relaunch-PJWXMPCR.js → update-relaunch-JBLI6LJF.js} +5 -5
- package/chunks/{updateCheck-ZXRCGY66.js → updateCheck-FDAVGOFT.js} +11 -10
- package/chunks/{useAutoAcceptIndicator-ZYQW5SGJ.js → useAutoAcceptIndicator-PDZFIYRM.js} +14 -13
- package/chunks/{validateNonInterActiveAuth-M7J7OTRH.js → validateNonInterActiveAuth-Q4763ONQ.js} +38 -36
- package/chunks/{version-2AOHMPK3.js → version-C7MPCGWD.js} +1 -1
- package/chunks/{web-fetch-DS34CJ3R.js → web-fetch-L7RAPOJB.js} +3 -2
- package/chunks/{web-search-ITFPD7V4.js → web-search-IDOYUOWX.js} +4 -3
- package/chunks/{workflow-LZQ4PGNS.js → workflow-HXURUJB5.js} +9 -8
- package/chunks/{workspace-providers-status-ZPTLKOBM.js → workspace-providers-status-JZ3GPWNU.js} +16 -15
- package/chunks/{workspace-registration-store-OTFKSGG7.js → workspace-registration-store-SM2PWB6L.js} +1 -1
- package/chunks/{workspace-registry-YZ3OXPHP.js → workspace-registry-6W4ES7BJ.js} +12 -10
- package/chunks/{workspace-service-OCZXOOSQ.js → workspace-service-V47ZFJRX.js} +17 -16
- package/chunks/{workspace-skills-status-K2ALGUCD.js → workspace-skills-status-6ZQ45XKA.js} +14 -13
- package/chunks/{workspace-trust-reconciler-KMRZISJP.js → workspace-trust-reconciler-6V25LMCN.js} +17 -15
- package/chunks/{write-file-AWBI4GJS.js → write-file-H2QOF25K.js} +8 -7
- package/chunks/{zoom-image-NHKN6F77.js → zoom-image-JTUSS43N.js} +3 -2
- package/cli-entry.js +14 -0
- package/cli.js +16 -12
- package/package.json +3 -3
- package/web-shell/assets/{arc-Dpg66jw7.js → arc-DtI1rZcQ.js} +1 -1
- package/web-shell/assets/{architectureDiagram-3BPJPVTR-BJ4FIBxN.js → architectureDiagram-3BPJPVTR-BPZwSVct.js} +1 -1
- package/web-shell/assets/{blockDiagram-GPEHLZMM-VXmYdtYT.js → blockDiagram-GPEHLZMM-BIQ03j4C.js} +1 -1
- package/web-shell/assets/{c4Diagram-AAUBKEIU-BNLDb8FE.js → c4Diagram-AAUBKEIU-CB0RyFGm.js} +1 -1
- package/web-shell/assets/channel-vfbVFuM1.js +1 -0
- package/web-shell/assets/{chunk-2J33WTMH-DR5yHxr0.js → chunk-2J33WTMH-B3WoS-4H.js} +1 -1
- package/web-shell/assets/{chunk-4BX2VUAB-Czkq8UZU.js → chunk-4BX2VUAB-C98xYZ1X.js} +1 -1
- package/web-shell/assets/{chunk-55IACEB6-DugUgM6s.js → chunk-55IACEB6-CbTIWRwQ.js} +1 -1
- package/web-shell/assets/{chunk-727SXJPM-Dw6quA1K.js → chunk-727SXJPM-DWGnKTPu.js} +1 -1
- package/web-shell/assets/{chunk-AQP2D5EJ-BoVYOTTz.js → chunk-AQP2D5EJ-4__QyCEX.js} +1 -1
- package/web-shell/assets/{chunk-FMBD7UC4--Amcse-j.js → chunk-FMBD7UC4-DFtG1YCW.js} +1 -1
- package/web-shell/assets/{chunk-ND2GUHAM-ajaEYAC8.js → chunk-ND2GUHAM-rvAhW51N.js} +1 -1
- package/web-shell/assets/{chunk-QZHKN3VN-CUNDZ7im.js → chunk-QZHKN3VN-DfiU9pwZ.js} +1 -1
- package/web-shell/assets/classDiagram-4FO5ZUOK-Cvr8atq3.js +1 -0
- package/web-shell/assets/classDiagram-v2-Q7XG4LA2-Cvr8atq3.js +1 -0
- package/web-shell/assets/{cose-bilkent-S5V4N54A-BnfkD-m1.js → cose-bilkent-S5V4N54A-Cc4EIdxu.js} +1 -1
- package/web-shell/assets/{dagre-BM42HDAG-BuUdFk7Z.js → dagre-BM42HDAG-CZNj4dGW.js} +1 -1
- package/web-shell/assets/{diagram-2AECGRRQ-B2ZXxoab.js → diagram-2AECGRRQ-D5tiqQCr.js} +1 -1
- package/web-shell/assets/{diagram-5GNKFQAL-BsgOICzM.js → diagram-5GNKFQAL-pwzw0jVO.js} +1 -1
- package/web-shell/assets/{diagram-KO2AKTUF-DTTjG6U-.js → diagram-KO2AKTUF-4CWiM00x.js} +1 -1
- package/web-shell/assets/{diagram-LMA3HP47-temLf1x7.js → diagram-LMA3HP47-Dd7rc7Qf.js} +1 -1
- package/web-shell/assets/{diagram-OG6HWLK6-CRFjScs2.js → diagram-OG6HWLK6-_vzV52ml.js} +1 -1
- package/web-shell/assets/{erDiagram-TEJ5UH35-D4oaY-rQ.js → erDiagram-TEJ5UH35-CqbE2bx_.js} +1 -1
- package/web-shell/assets/{flowDiagram-I6XJVG4X-BqG8B49b.js → flowDiagram-I6XJVG4X-CaxNr7w4.js} +1 -1
- package/web-shell/assets/{ganttDiagram-6RSMTGT7-DffQBdd5.js → ganttDiagram-6RSMTGT7-AGjrtfUA.js} +1 -1
- package/web-shell/assets/{gitGraphDiagram-PVQCEYII-CMDPfseF.js → gitGraphDiagram-PVQCEYII-ADG2zSkc.js} +1 -1
- package/web-shell/assets/{index-qTQR_smP.js → index-BOryKCqt.js} +1 -1
- package/web-shell/assets/{index-CaucmEO_.css → index-Cb1LjsCv.css} +1 -1
- package/web-shell/assets/{index-2F4RsNzd.js → index-CvJDaIy8.js} +311 -311
- package/web-shell/assets/{infoDiagram-5YYISTIA-Cn3T83MA.js → infoDiagram-5YYISTIA-CE3B_IoZ.js} +1 -1
- package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-ijFs7e25.js → ishikawaDiagram-YF4QCWOH-CN-Frhoi.js} +1 -1
- package/web-shell/assets/{journeyDiagram-JHISSGLW-CINTv8VB.js → journeyDiagram-JHISSGLW-CGgezS93.js} +1 -1
- package/web-shell/assets/{kanban-definition-UN3LZRKU-CMGRZCxx.js → kanban-definition-UN3LZRKU-BqWijky5.js} +1 -1
- package/web-shell/assets/{linear-Co-2_37d.js → linear-D8sfpZf6.js} +1 -1
- package/web-shell/assets/{mermaid.core-DijbyaN5.js → mermaid.core-3PA4QrzM.js} +5 -5
- package/web-shell/assets/{mindmap-definition-RKZ34NQL-k_sDYDPZ.js → mindmap-definition-RKZ34NQL-D9QxwiCY.js} +1 -1
- package/web-shell/assets/{pieDiagram-4H26LBE5-CG-oz8V3.js → pieDiagram-4H26LBE5-Bioaf6uE.js} +1 -1
- package/web-shell/assets/{quadrantDiagram-W4KKPZXB-Baq7HIG2.js → quadrantDiagram-W4KKPZXB-DBb2AS73.js} +1 -1
- package/web-shell/assets/{requirementDiagram-4Y6WPE33-CDM3ZvBt.js → requirementDiagram-4Y6WPE33-DXOvZ3KB.js} +1 -1
- package/web-shell/assets/{sankeyDiagram-5OEKKPKP-C2dJbWKN.js → sankeyDiagram-5OEKKPKP-D9qg09Dm.js} +1 -1
- package/web-shell/assets/{sequenceDiagram-3UESZ5HK-Cf1_h59p.js → sequenceDiagram-3UESZ5HK-DSAUIfpw.js} +1 -1
- package/web-shell/assets/{stateDiagram-AJRCARHV-CI5clUEc.js → stateDiagram-AJRCARHV-BPZkzfQ3.js} +1 -1
- package/web-shell/assets/stateDiagram-v2-BHNVJYJU-DInOqnhZ.js +1 -0
- package/web-shell/assets/{timeline-definition-PNZ67QCA-B2O8cAZX.js → timeline-definition-PNZ67QCA-UDaQp9sP.js} +1 -1
- package/web-shell/assets/{vennDiagram-CIIHVFJN-BLsJ_h9s.js → vennDiagram-CIIHVFJN-2ouhAnHO.js} +1 -1
- package/web-shell/assets/{wardley-L42UT6IY-BlPU4FTA.js → wardley-L42UT6IY-Cq_WEvTK.js} +1 -1
- package/web-shell/assets/{wardleyDiagram-YWT4CUSO-D_U-RdU4.js → wardleyDiagram-YWT4CUSO-Dt24aXOM.js} +1 -1
- package/web-shell/assets/{xychartDiagram-2RQKCTM6-BynXGSTl.js → xychartDiagram-2RQKCTM6-A5Xk2WCH.js} +1 -1
- package/web-shell/index.html +2 -2
- package/bundled/review/DESIGN.md +0 -724
- package/web-shell/assets/channel-Bd9wOnaA.js +0 -1
- package/web-shell/assets/classDiagram-4FO5ZUOK-XhCT8FE3.js +0 -1
- package/web-shell/assets/classDiagram-v2-Q7XG4LA2-XhCT8FE3.js +0 -1
- package/web-shell/assets/stateDiagram-v2-BHNVJYJU-BDc8asKD.js +0 -1
- package/chunks/{channel-management-service-UHX56NBO.js → channel-management-service-5XPPTWUQ.js} +3 -3
- package/chunks/{chunk-LEZFUYPM.js → chunk-7GYP5COR.js} +3 -3
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"use strict";
|
|
3
3
|
import {
|
|
4
4
|
recomputeMcpGating
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-RTWF7FF7.js";
|
|
6
6
|
import {
|
|
7
7
|
classifyApiError,
|
|
8
8
|
fireSessionDeleteHook
|
|
@@ -16,14 +16,14 @@ import {
|
|
|
16
16
|
matchMcpServerByRef,
|
|
17
17
|
parseExtensionRef,
|
|
18
18
|
parseMcpServerRef
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-PQTK2FVO.js";
|
|
20
20
|
import {
|
|
21
21
|
getAvailableCommands,
|
|
22
22
|
handleSlashCommand,
|
|
23
23
|
insertAfterFunctionResponses,
|
|
24
24
|
isSlashCommand,
|
|
25
25
|
normalizePartList
|
|
26
|
-
} from "./chunk-
|
|
26
|
+
} from "./chunk-QWUYFMAR.js";
|
|
27
27
|
import {
|
|
28
28
|
SessionIdConflictError,
|
|
29
29
|
appEvents,
|
|
@@ -31,23 +31,27 @@ import {
|
|
|
31
31
|
cleanupReviewWorktreeLeases,
|
|
32
32
|
loadCliConfig,
|
|
33
33
|
normalizeDisabledToolList
|
|
34
|
-
} from "./chunk-
|
|
34
|
+
} from "./chunk-XOZ2R6XI.js";
|
|
35
35
|
import "./chunk-NYX53SV4.js";
|
|
36
36
|
import {
|
|
37
37
|
collectContextData,
|
|
38
38
|
formatContextUsageText
|
|
39
|
-
} from "./chunk-
|
|
39
|
+
} from "./chunk-ZH7G3A4U.js";
|
|
40
40
|
import {
|
|
41
41
|
getCommandSubcommandNames
|
|
42
|
-
} from "./chunk-
|
|
42
|
+
} from "./chunk-IISDPZ5X.js";
|
|
43
43
|
import {
|
|
44
44
|
getEffectiveSupportedModes
|
|
45
|
-
} from "./chunk-
|
|
45
|
+
} from "./chunk-AVDEBBMI.js";
|
|
46
46
|
import "./chunk-3LGZEYOF.js";
|
|
47
47
|
import "./chunk-4WGODMVR.js";
|
|
48
|
-
import "./chunk-
|
|
48
|
+
import "./chunk-AFZTZLFB.js";
|
|
49
|
+
import "./chunk-YAF2MQZ6.js";
|
|
49
50
|
import "./chunk-KKN2IE7Q.js";
|
|
50
|
-
import
|
|
51
|
+
import {
|
|
52
|
+
computeCpuPercent
|
|
53
|
+
} from "./chunk-LBOVL47Y.js";
|
|
54
|
+
import "./chunk-WPKIU4PA.js";
|
|
51
55
|
import "./chunk-6H67XLET.js";
|
|
52
56
|
import {
|
|
53
57
|
beginAcpBootstrapConfigProfiling,
|
|
@@ -55,9 +59,8 @@ import {
|
|
|
55
59
|
endAcpBootstrapConfigProfiling,
|
|
56
60
|
markAcpStartup
|
|
57
61
|
} from "./chunk-M744OFVE.js";
|
|
58
|
-
import "./chunk-
|
|
59
|
-
import "./chunk-
|
|
60
|
-
import "./chunk-YAF2MQZ6.js";
|
|
62
|
+
import "./chunk-BU4BRCPX.js";
|
|
63
|
+
import "./chunk-EHMN6SEG.js";
|
|
61
64
|
import {
|
|
62
65
|
GENERATION_MAX_PROMPT_BYTES,
|
|
63
66
|
GENERATION_TIMEOUT_MS,
|
|
@@ -78,7 +81,7 @@ import {
|
|
|
78
81
|
shouldSuppressRememberErrorDetails,
|
|
79
82
|
workspaceMemoryFailureCode,
|
|
80
83
|
workspaceMemoryFailureDiagnostics
|
|
81
|
-
} from "./chunk-
|
|
84
|
+
} from "./chunk-XSGQKR37.js";
|
|
82
85
|
import {
|
|
83
86
|
HistoryReplayer,
|
|
84
87
|
MessageEmitter,
|
|
@@ -88,19 +91,16 @@ import {
|
|
|
88
91
|
goalTerminalEventToHistoryItem,
|
|
89
92
|
recordGoalStatusItem,
|
|
90
93
|
restoreGoalFromHistory
|
|
91
|
-
} from "./chunk-
|
|
94
|
+
} from "./chunk-EKWNNQQD.js";
|
|
92
95
|
import "./chunk-DYA25Y7U.js";
|
|
93
96
|
import "./chunk-4NFY2S7N.js";
|
|
94
|
-
import "./chunk-
|
|
97
|
+
import "./chunk-NAYPZ72V.js";
|
|
95
98
|
import "./chunk-2MIN6GRR.js";
|
|
96
99
|
import "./chunk-QHTIBUWB.js";
|
|
97
100
|
import {
|
|
98
101
|
isTerminalGoalStatusKind
|
|
99
102
|
} from "./chunk-EKTCKZV5.js";
|
|
100
103
|
import "./chunk-3Z43GZUQ.js";
|
|
101
|
-
import {
|
|
102
|
-
computeCpuPercent
|
|
103
|
-
} from "./chunk-LBOVL47Y.js";
|
|
104
104
|
import "./chunk-RXFQM6FQ.js";
|
|
105
105
|
import "./chunk-HGCQ5SE7.js";
|
|
106
106
|
import {
|
|
@@ -112,38 +112,38 @@ import {
|
|
|
112
112
|
buildPermissionSettings,
|
|
113
113
|
normalizePermissionRules,
|
|
114
114
|
readPermissionRuleSet
|
|
115
|
-
} from "./chunk-
|
|
115
|
+
} from "./chunk-X6DV3WKN.js";
|
|
116
116
|
import {
|
|
117
117
|
MAX_AUDIO_BYTES,
|
|
118
118
|
sanitizeVoiceErrorMessage,
|
|
119
119
|
transcribeVoiceAudio
|
|
120
|
-
} from "./chunk-
|
|
120
|
+
} from "./chunk-HKNSU4WX.js";
|
|
121
121
|
import {
|
|
122
122
|
readVoiceModel
|
|
123
|
-
} from "./chunk-
|
|
123
|
+
} from "./chunk-7FUVSN4D.js";
|
|
124
124
|
import "./chunk-JELIWHXD.js";
|
|
125
125
|
import {
|
|
126
126
|
resolveSkillSettings
|
|
127
127
|
} from "./chunk-Z4X5MTRT.js";
|
|
128
|
-
import "./chunk-
|
|
129
|
-
import "./chunk-
|
|
128
|
+
import "./chunk-CDHNGCJI.js";
|
|
129
|
+
import "./chunk-C4GRKMUL.js";
|
|
130
130
|
import "./chunk-57OAHC2Y.js";
|
|
131
131
|
import {
|
|
132
132
|
createLoadedSettingsAdapter
|
|
133
|
-
} from "./chunk-
|
|
133
|
+
} from "./chunk-3ZRS2XNY.js";
|
|
134
134
|
import "./chunk-VXZBKKQR.js";
|
|
135
|
-
import "./chunk-
|
|
135
|
+
import "./chunk-NYZAL2W2.js";
|
|
136
136
|
import "./chunk-3SH53ANB.js";
|
|
137
137
|
import {
|
|
138
138
|
SESSION_SOURCE_META_KEY,
|
|
139
139
|
parseSessionSource
|
|
140
|
-
} from "./chunk-
|
|
140
|
+
} from "./chunk-4T6QMNX2.js";
|
|
141
141
|
import "./chunk-GLWP3FDB.js";
|
|
142
142
|
import "./chunk-XCGIMOLN.js";
|
|
143
143
|
import "./chunk-OCPBI7J5.js";
|
|
144
144
|
import {
|
|
145
145
|
ndJsonStream
|
|
146
|
-
} from "./chunk-
|
|
146
|
+
} from "./chunk-2U7GPHA6.js";
|
|
147
147
|
import {
|
|
148
148
|
ACP_ROUTE_ID_PREFIX,
|
|
149
149
|
buildAcpModelOptions,
|
|
@@ -152,7 +152,7 @@ import {
|
|
|
152
152
|
parseAcpModelOption,
|
|
153
153
|
resolveAcpModelOption,
|
|
154
154
|
sanitizeProviderBaseUrl
|
|
155
|
-
} from "./chunk-
|
|
155
|
+
} from "./chunk-6KEN3RIC.js";
|
|
156
156
|
import {
|
|
157
157
|
ACP_PREFLIGHT_KINDS,
|
|
158
158
|
IDLE_HOOK_EVENTS,
|
|
@@ -160,10 +160,10 @@ import {
|
|
|
160
160
|
SERVE_STATUS_EXT_METHODS,
|
|
161
161
|
STATUS_SCHEMA_VERSION,
|
|
162
162
|
mapDomainErrorToErrorKind
|
|
163
|
-
} from "./chunk-
|
|
164
|
-
import "./chunk-
|
|
165
|
-
import "./chunk-DTAPI453.js";
|
|
163
|
+
} from "./chunk-WIRAPZ62.js";
|
|
164
|
+
import "./chunk-7GYP5COR.js";
|
|
166
165
|
import "./chunk-VWOVHOTT.js";
|
|
166
|
+
import "./chunk-DTAPI453.js";
|
|
167
167
|
import "./chunk-V6WHFGST.js";
|
|
168
168
|
import {
|
|
169
169
|
CHANNEL_STARTUP_PROFILE_META_KEY,
|
|
@@ -193,6 +193,13 @@ import "./chunk-QONSRAEV.js";
|
|
|
193
193
|
import "./chunk-24ER7UV4.js";
|
|
194
194
|
import "./chunk-ALMR3E6Q.js";
|
|
195
195
|
import "./chunk-BK2UNYWD.js";
|
|
196
|
+
import {
|
|
197
|
+
EXTERNAL_TOOL_GUARD_READY_META_KEY,
|
|
198
|
+
EXTERNAL_TOOL_GUARD_REQUIRED_VALUE,
|
|
199
|
+
EXTERNAL_TOOL_GUARD_TOKEN_ENV,
|
|
200
|
+
PRIVATE_EXTERNAL_TOOL_GUARD_ENV,
|
|
201
|
+
isValidExternalToolGuardDenialReason
|
|
202
|
+
} from "./chunk-BKHCW2BI.js";
|
|
196
203
|
import "./chunk-M5GB774H.js";
|
|
197
204
|
import "./chunk-XC2VAFVZ.js";
|
|
198
205
|
import "./chunk-WUC6ZFXO.js";
|
|
@@ -207,7 +214,7 @@ import {
|
|
|
207
214
|
import {
|
|
208
215
|
assembleMcpServers,
|
|
209
216
|
loadMcpApprovals
|
|
210
|
-
} from "./chunk-
|
|
217
|
+
} from "./chunk-T4XY5CT4.js";
|
|
211
218
|
import {
|
|
212
219
|
getOutputLanguageFilePath,
|
|
213
220
|
getPersistScopeForModelSelection,
|
|
@@ -215,7 +222,7 @@ import {
|
|
|
215
222
|
resolveOutputLanguageOrPreserveAuto,
|
|
216
223
|
updateOutputLanguageFile,
|
|
217
224
|
writeOutputLanguageAndRegisterPath
|
|
218
|
-
} from "./chunk-
|
|
225
|
+
} from "./chunk-YUVTZ4UH.js";
|
|
219
226
|
import "./chunk-RKUWKYED.js";
|
|
220
227
|
import "./chunk-GOXKNSDZ.js";
|
|
221
228
|
import "./chunk-IDS7MSUP.js";
|
|
@@ -223,19 +230,19 @@ import {
|
|
|
223
230
|
SUPPORTED_LANGUAGES,
|
|
224
231
|
getCurrentLanguage,
|
|
225
232
|
setLanguageAsync
|
|
226
|
-
} from "./chunk-
|
|
233
|
+
} from "./chunk-546CDN6D.js";
|
|
227
234
|
import {
|
|
228
235
|
reloadEnvironment
|
|
229
|
-
} from "./chunk-
|
|
236
|
+
} from "./chunk-IKXE3AAC.js";
|
|
230
237
|
import "./chunk-6PEXNQTX.js";
|
|
231
|
-
import "./chunk-
|
|
232
|
-
import "./chunk-
|
|
238
|
+
import "./chunk-ZQL73PPE.js";
|
|
239
|
+
import "./chunk-NKST54XA.js";
|
|
233
240
|
import "./chunk-VJNBRRZG.js";
|
|
234
241
|
import {
|
|
235
242
|
isFolderTrustEnabled,
|
|
236
243
|
isWorkspaceTrusted,
|
|
237
244
|
loadTrustedFolders
|
|
238
|
-
} from "./chunk-
|
|
245
|
+
} from "./chunk-72DZPDH4.js";
|
|
239
246
|
import "./chunk-ALGGS7UH.js";
|
|
240
247
|
import "./chunk-MR3PXB6E.js";
|
|
241
248
|
import "./chunk-XFSFZCM5.js";
|
|
@@ -363,7 +370,7 @@ import {
|
|
|
363
370
|
validatePlanModeShellApproval,
|
|
364
371
|
validatePlanModeShellContext,
|
|
365
372
|
wrapUserPromptSubmitContext
|
|
366
|
-
} from "./chunk-
|
|
373
|
+
} from "./chunk-DOA7MCDY.js";
|
|
367
374
|
import "./chunk-GOFAQQZA.js";
|
|
368
375
|
import "./chunk-5M6IDOMF.js";
|
|
369
376
|
import "./chunk-TWPJO254.js";
|
|
@@ -377,11 +384,11 @@ import "./chunk-33FNCQSY.js";
|
|
|
377
384
|
import {
|
|
378
385
|
parsePositiveIntegerEnv
|
|
379
386
|
} from "./chunk-6PVPNMXU.js";
|
|
380
|
-
import "./chunk-
|
|
387
|
+
import "./chunk-6D6V55ZQ.js";
|
|
381
388
|
import "./chunk-IRH27ZC2.js";
|
|
382
389
|
import "./chunk-QHWCP53L.js";
|
|
383
390
|
import "./chunk-MOHAWIAW.js";
|
|
384
|
-
import "./chunk-
|
|
391
|
+
import "./chunk-3PRJYMXC.js";
|
|
385
392
|
import {
|
|
386
393
|
promptIdContext,
|
|
387
394
|
todoWorkChainContext
|
|
@@ -411,7 +418,7 @@ import {
|
|
|
411
418
|
import "./chunk-K623ENWT.js";
|
|
412
419
|
import "./chunk-AQ37AY7B.js";
|
|
413
420
|
import "./chunk-432XCUHF.js";
|
|
414
|
-
import "./chunk-
|
|
421
|
+
import "./chunk-HU5TUALO.js";
|
|
415
422
|
import {
|
|
416
423
|
clearCachedCredentialFile,
|
|
417
424
|
qwenOAuth2Events
|
|
@@ -423,7 +430,7 @@ import "./chunk-DGEIYUC3.js";
|
|
|
423
430
|
import "./chunk-MPHPFVKK.js";
|
|
424
431
|
import "./chunk-GLNBDYUX.js";
|
|
425
432
|
import "./chunk-DJ2GSRLV.js";
|
|
426
|
-
import "./chunk-
|
|
433
|
+
import "./chunk-AU3XNTMV.js";
|
|
427
434
|
import {
|
|
428
435
|
addToolArgumentsAttributes,
|
|
429
436
|
addToolCallResultAttributes,
|
|
@@ -469,7 +476,8 @@ import {
|
|
|
469
476
|
shouldRunVisionBridge,
|
|
470
477
|
splitImageParts,
|
|
471
478
|
uiTelemetryService
|
|
472
|
-
} from "./chunk-
|
|
479
|
+
} from "./chunk-O656RSMC.js";
|
|
480
|
+
import "./chunk-WOJZWRAZ.js";
|
|
473
481
|
import "./chunk-VGC4I5JJ.js";
|
|
474
482
|
import {
|
|
475
483
|
getAutoMemoryRoot,
|
|
@@ -484,7 +492,7 @@ import {
|
|
|
484
492
|
import {
|
|
485
493
|
AuthType,
|
|
486
494
|
preloadContentGenerator
|
|
487
|
-
} from "./chunk-
|
|
495
|
+
} from "./chunk-P7LKADIT.js";
|
|
488
496
|
import "./chunk-46UV252V.js";
|
|
489
497
|
import {
|
|
490
498
|
DEFAULT_TOKEN_LIMIT,
|
|
@@ -512,10 +520,10 @@ import {
|
|
|
512
520
|
isSubpath
|
|
513
521
|
} from "./chunk-3RXUYQJI.js";
|
|
514
522
|
import "./chunk-VOQXFAY5.js";
|
|
515
|
-
import "./chunk-
|
|
523
|
+
import "./chunk-WVRJKSIG.js";
|
|
516
524
|
import {
|
|
517
525
|
runExitCleanup
|
|
518
|
-
} from "./chunk-
|
|
526
|
+
} from "./chunk-QG2ACINA.js";
|
|
519
527
|
import {
|
|
520
528
|
writeStderrLine,
|
|
521
529
|
writeStderrLineSafe
|
|
@@ -2545,6 +2553,7 @@ var Session = class {
|
|
|
2545
2553
|
resolveCloseGate = null;
|
|
2546
2554
|
unsubscribeChatRecordingFailure;
|
|
2547
2555
|
workflowApprovalAbortController = new AbortController();
|
|
2556
|
+
activeTodoPlanRevision;
|
|
2548
2557
|
// Modular components
|
|
2549
2558
|
historyReplayer;
|
|
2550
2559
|
toolCallEmitter;
|
|
@@ -2767,6 +2776,9 @@ var Session = class {
|
|
|
2767
2776
|
clearTodoStopGuardTrust() {
|
|
2768
2777
|
this.#clearTodoStopGuardTrustAndDrainAutomaticQueues();
|
|
2769
2778
|
}
|
|
2779
|
+
clearActiveTodoPlanRevision() {
|
|
2780
|
+
this.activeTodoPlanRevision = void 0;
|
|
2781
|
+
}
|
|
2770
2782
|
hardSuspendTodoStopGuard() {
|
|
2771
2783
|
this.#clearTodoStopGuardQueuedPromptWait();
|
|
2772
2784
|
this.todoStopGuardDrainAutomaticQueuesWhenIdle = false;
|
|
@@ -3207,7 +3219,11 @@ var Session = class {
|
|
|
3207
3219
|
}
|
|
3208
3220
|
async replayHistory(records, gaps) {
|
|
3209
3221
|
this.primeTurnFromHistory(records);
|
|
3210
|
-
|
|
3222
|
+
try {
|
|
3223
|
+
await this.historyReplayer.replay(records, gaps);
|
|
3224
|
+
} finally {
|
|
3225
|
+
this.activeTodoPlanRevision = void 0;
|
|
3226
|
+
}
|
|
3211
3227
|
}
|
|
3212
3228
|
rewindToTurn(targetTurnIndex, opts) {
|
|
3213
3229
|
if (!Number.isInteger(targetTurnIndex) || targetTurnIndex < 0) {
|
|
@@ -3236,6 +3252,7 @@ var Session = class {
|
|
|
3236
3252
|
}
|
|
3237
3253
|
chat.truncateHistory(apiTruncateIndex);
|
|
3238
3254
|
chat.stripThoughtsFromHistory();
|
|
3255
|
+
this.activeTodoPlanRevision = void 0;
|
|
3239
3256
|
const preserveQueuedPromptPriority = this.todoStopGuardQueuedPromptPriority;
|
|
3240
3257
|
const shouldDrainAutomaticQueues = (this.todoStopGuard.blocksUnrelatedAutomaticTurns || this.todoStopGuard.hasCommittedContinuation) && !preserveQueuedPromptPriority;
|
|
3241
3258
|
this.todoStopGuard.blockUntilOrdinaryPromptStarts();
|
|
@@ -3280,6 +3297,7 @@ var Session = class {
|
|
|
3280
3297
|
);
|
|
3281
3298
|
}
|
|
3282
3299
|
this.config.getGeminiClient().getChat().setHistory(structuredClone(history));
|
|
3300
|
+
this.activeTodoPlanRevision = void 0;
|
|
3283
3301
|
this.#clearTodoStopGuardTrustAndDrainAutomaticQueues();
|
|
3284
3302
|
}
|
|
3285
3303
|
#computeApiTruncationIndexForUserTurn(apiHistory, targetTurnIndex) {
|
|
@@ -4819,7 +4837,21 @@ ${this.pendingRecoveredAgentsNotice}
|
|
|
4819
4837
|
sessionId: this.sessionId,
|
|
4820
4838
|
update
|
|
4821
4839
|
};
|
|
4840
|
+
if (update.sessionUpdate === "plan") {
|
|
4841
|
+
this.activeTodoPlanRevision = void 0;
|
|
4842
|
+
}
|
|
4822
4843
|
await this.client.sessionUpdate(params);
|
|
4844
|
+
if (update.sessionUpdate === "plan") {
|
|
4845
|
+
this.#captureTodoPlanRevision(update);
|
|
4846
|
+
}
|
|
4847
|
+
}
|
|
4848
|
+
#captureTodoPlanRevision(update) {
|
|
4849
|
+
const meta = isRecord2(update["_meta"]) ? update["_meta"] : void 0;
|
|
4850
|
+
const plan = isRecord2(meta?.["qwenTodoPlan"]) ? meta["qwenTodoPlan"] : void 0;
|
|
4851
|
+
const transcript = isRecord2(meta?.["qwenTranscript"]) ? meta["qwenTranscript"] : void 0;
|
|
4852
|
+
const planId = plan?.["id"];
|
|
4853
|
+
const sourceCallId = transcript?.["planToolCallId"];
|
|
4854
|
+
this.activeTodoPlanRevision = typeof planId === "string" && typeof sourceCallId === "string" && update.entries.length > 0 ? { planId, sourceCallId } : void 0;
|
|
4823
4855
|
}
|
|
4824
4856
|
#scheduleChannelDelivery(params) {
|
|
4825
4857
|
const timer = setTimeout(() => {
|
|
@@ -6314,8 +6346,12 @@ ${this.pendingRecoveredAgentsNotice}
|
|
|
6314
6346
|
`Unknown approval mode: ${params.modeId}`
|
|
6315
6347
|
);
|
|
6316
6348
|
}
|
|
6349
|
+
const previousApprovalMode = this.config.getApprovalMode();
|
|
6317
6350
|
this.config.setApprovalMode(approvalMode);
|
|
6318
6351
|
if (approvalMode === "plan" /* PLAN */) {
|
|
6352
|
+
if (previousApprovalMode !== "plan" /* PLAN */) {
|
|
6353
|
+
this.activeTodoPlanRevision = void 0;
|
|
6354
|
+
}
|
|
6319
6355
|
this.clearTodoStopGuardTrust();
|
|
6320
6356
|
}
|
|
6321
6357
|
void this.client.extNotification("qwen/notify/session/mode-update", {
|
|
@@ -7660,7 +7696,10 @@ ${this.pendingRecoveredAgentsNotice}
|
|
|
7660
7696
|
// frame already ships _meta.toolName; mirror it here.
|
|
7661
7697
|
_meta: {
|
|
7662
7698
|
toolName,
|
|
7663
|
-
...interactionMetaFields(confirmationDetails)
|
|
7699
|
+
...interactionMetaFields(confirmationDetails),
|
|
7700
|
+
...isExitPlanModeTool && this.activeTodoPlanRevision ? {
|
|
7701
|
+
qwenTodoApproval: this.activeTodoPlanRevision
|
|
7702
|
+
} : {}
|
|
7664
7703
|
}
|
|
7665
7704
|
}
|
|
7666
7705
|
};
|
|
@@ -7887,13 +7926,15 @@ ${this.pendingRecoveredAgentsNotice}
|
|
|
7887
7926
|
}
|
|
7888
7927
|
const toolInvocationGuard = this.config.getToolInvocationGuard?.();
|
|
7889
7928
|
if (toolInvocationGuard) {
|
|
7929
|
+
const invocationContext = getInvocationContext();
|
|
7890
7930
|
const guardDecision = await evaluateToolInvocationGuard(
|
|
7891
7931
|
toolInvocationGuard,
|
|
7892
7932
|
{
|
|
7893
7933
|
callId,
|
|
7894
7934
|
toolName: policyToolName,
|
|
7895
7935
|
args: invocation.params,
|
|
7896
|
-
signal: activeToolAbortSignal
|
|
7936
|
+
signal: activeToolAbortSignal,
|
|
7937
|
+
...invocationContext ? { invocationContext } : {}
|
|
7897
7938
|
}
|
|
7898
7939
|
);
|
|
7899
7940
|
if (activeToolAbortSignal.aborted) {
|
|
@@ -8047,6 +8088,7 @@ ${this.pendingRecoveredAgentsNotice}
|
|
|
8047
8088
|
if ((isEnterPlanModeTool || isExitPlanModeTool) && !toolResult.error && this.config.getApprovalMode() !== approvalMode) {
|
|
8048
8089
|
await this.sendCurrentModeUpdateNotification();
|
|
8049
8090
|
if (this.config.getApprovalMode() === "plan" /* PLAN */) {
|
|
8091
|
+
this.activeTodoPlanRevision = void 0;
|
|
8050
8092
|
this.#clearTodoStopGuardTrustAndDrainAutomaticQueues();
|
|
8051
8093
|
}
|
|
8052
8094
|
}
|
|
@@ -10692,6 +10734,74 @@ async function deliverClientMcpMessage(connection, serverName, message, sessionI
|
|
|
10692
10734
|
return payload;
|
|
10693
10735
|
}
|
|
10694
10736
|
__name(deliverClientMcpMessage, "deliverClientMcpMessage");
|
|
10737
|
+
function createManagedExternalToolGuard(connection) {
|
|
10738
|
+
return async (context) => {
|
|
10739
|
+
const invocation = context.invocationContext;
|
|
10740
|
+
if (!invocation) {
|
|
10741
|
+
throw new Error(
|
|
10742
|
+
"Managed external tool guard requires a runtime invocation context."
|
|
10743
|
+
);
|
|
10744
|
+
}
|
|
10745
|
+
if (context.signal.aborted) {
|
|
10746
|
+
throw new DOMException("Tool invocation aborted", "AbortError");
|
|
10747
|
+
}
|
|
10748
|
+
if (context.toolName === ToolNames.AGENT || context.toolName === ToolNames.WORKFLOW || context.toolName === ToolNames.CREATE_SUB_SESSION || context.toolName === ToolNames.SEND_MESSAGE) {
|
|
10749
|
+
return {
|
|
10750
|
+
allowed: false,
|
|
10751
|
+
reason: "Managed external tool guard v1 does not support nested or delegated agent execution."
|
|
10752
|
+
};
|
|
10753
|
+
}
|
|
10754
|
+
let rejectOnAbort;
|
|
10755
|
+
const aborted = new Promise((_resolve, reject) => {
|
|
10756
|
+
rejectOnAbort = reject;
|
|
10757
|
+
});
|
|
10758
|
+
const onAbort = /* @__PURE__ */ __name(() => rejectOnAbort?.(
|
|
10759
|
+
new DOMException("Tool invocation aborted", "AbortError")
|
|
10760
|
+
), "onAbort");
|
|
10761
|
+
context.signal.addEventListener("abort", onAbort, { once: true });
|
|
10762
|
+
if (context.signal.aborted) onAbort();
|
|
10763
|
+
try {
|
|
10764
|
+
const response = await Promise.race([
|
|
10765
|
+
connection.extMethod(
|
|
10766
|
+
SERVE_CONTROL_EXT_METHODS.externalToolGuardPrepare,
|
|
10767
|
+
{
|
|
10768
|
+
sessionId: invocation.sessionId,
|
|
10769
|
+
promptId: invocation.promptId,
|
|
10770
|
+
toolCallId: context.callId,
|
|
10771
|
+
toolName: context.toolName,
|
|
10772
|
+
arguments: context.args
|
|
10773
|
+
}
|
|
10774
|
+
),
|
|
10775
|
+
aborted
|
|
10776
|
+
]);
|
|
10777
|
+
const keys = Object.keys(response);
|
|
10778
|
+
if (typeof response["allowed"] !== "boolean" || keys.some((key) => key !== "allowed" && key !== "reason")) {
|
|
10779
|
+
throw new Error(
|
|
10780
|
+
"Managed external tool guard returned an invalid reply."
|
|
10781
|
+
);
|
|
10782
|
+
}
|
|
10783
|
+
if (response["allowed"]) {
|
|
10784
|
+
if (Object.hasOwn(response, "reason")) {
|
|
10785
|
+
throw new Error(
|
|
10786
|
+
"Managed external tool guard allow reply contains a reason."
|
|
10787
|
+
);
|
|
10788
|
+
}
|
|
10789
|
+
return { allowed: true };
|
|
10790
|
+
}
|
|
10791
|
+
const reason = response["reason"];
|
|
10792
|
+
if (reason === void 0) return { allowed: false };
|
|
10793
|
+
if (!isValidExternalToolGuardDenialReason(reason)) {
|
|
10794
|
+
throw new Error(
|
|
10795
|
+
"Managed external tool guard denial reason is invalid."
|
|
10796
|
+
);
|
|
10797
|
+
}
|
|
10798
|
+
return { allowed: false, reason };
|
|
10799
|
+
} finally {
|
|
10800
|
+
context.signal.removeEventListener("abort", onAbort);
|
|
10801
|
+
}
|
|
10802
|
+
};
|
|
10803
|
+
}
|
|
10804
|
+
__name(createManagedExternalToolGuard, "createManagedExternalToolGuard");
|
|
10695
10805
|
function readRuntimeMcpRequest(params) {
|
|
10696
10806
|
const name = params["name"];
|
|
10697
10807
|
if (typeof name !== "string" || name.length === 0) {
|
|
@@ -10785,6 +10895,14 @@ async function runAcpAgent(config, settings, argv, options) {
|
|
|
10785
10895
|
const sessionWriterLeaseEnabledAtStartup = typeof config.isSessionWriterLeaseEnabled === "function" ? config.isSessionWriterLeaseEnabled() : settings.merged.experimental?.sessionWriterLease === true;
|
|
10786
10896
|
const privateParentCapability = options === void 0 ? process.env[PRIVATE_ACP_CAPABILITY_ENV] : options.privateParentCapability;
|
|
10787
10897
|
delete process.env[PRIVATE_ACP_CAPABILITY_ENV];
|
|
10898
|
+
delete process.env[PRIVATE_EXTERNAL_TOOL_GUARD_ENV];
|
|
10899
|
+
delete process.env[EXTERNAL_TOOL_GUARD_TOKEN_ENV];
|
|
10900
|
+
const externalToolGuardRequired = options?.externalToolGuardRequired === true;
|
|
10901
|
+
if (externalToolGuardRequired && privateParentCapability === void 0) {
|
|
10902
|
+
throw new Error(
|
|
10903
|
+
"Required external tool guard is available only to a private managed ACP parent."
|
|
10904
|
+
);
|
|
10905
|
+
}
|
|
10788
10906
|
let acpConnection;
|
|
10789
10907
|
const bootstrapClientMcpSender = /* @__PURE__ */ __name((serverName, message) => deliverClientMcpMessage(acpConnection, serverName, message), "bootstrapClientMcpSender");
|
|
10790
10908
|
beginAcpBootstrapConfigProfiling();
|
|
@@ -10861,13 +10979,15 @@ async function runAcpAgent(config, settings, argv, options) {
|
|
|
10861
10979
|
});
|
|
10862
10980
|
connection = new AgentSideConnection((conn) => {
|
|
10863
10981
|
acpConnection = conn;
|
|
10982
|
+
const managedToolInvocationGuard = externalToolGuardRequired ? createManagedExternalToolGuard(conn) : void 0;
|
|
10864
10983
|
agentInstance = new QwenAgent(
|
|
10865
10984
|
config,
|
|
10866
10985
|
settings,
|
|
10867
10986
|
argv,
|
|
10868
10987
|
conn,
|
|
10869
10988
|
privateParentCapability,
|
|
10870
|
-
sessionWriterLeaseEnabledAtStartup
|
|
10989
|
+
sessionWriterLeaseEnabledAtStartup,
|
|
10990
|
+
managedToolInvocationGuard
|
|
10871
10991
|
);
|
|
10872
10992
|
return agentInstance;
|
|
10873
10993
|
}, stream);
|
|
@@ -11164,13 +11284,14 @@ function parseAcpSessionListCursor(value) {
|
|
|
11164
11284
|
}
|
|
11165
11285
|
__name(parseAcpSessionListCursor, "parseAcpSessionListCursor");
|
|
11166
11286
|
var QwenAgent = class {
|
|
11167
|
-
constructor(config, settings, argv, connection, expectedPrivateParentCapability, sessionWriterLeaseEnabledAtStartup = false) {
|
|
11287
|
+
constructor(config, settings, argv, connection, expectedPrivateParentCapability, sessionWriterLeaseEnabledAtStartup = false, managedToolInvocationGuard) {
|
|
11168
11288
|
this.config = config;
|
|
11169
11289
|
this.settings = settings;
|
|
11170
11290
|
this.argv = argv;
|
|
11171
11291
|
this.connection = connection;
|
|
11172
11292
|
this.expectedPrivateParentCapability = expectedPrivateParentCapability;
|
|
11173
11293
|
this.sessionWriterLeaseEnabledAtStartup = sessionWriterLeaseEnabledAtStartup;
|
|
11294
|
+
this.managedToolInvocationGuard = managedToolInvocationGuard;
|
|
11174
11295
|
if (process.env["QWEN_SERVE_NO_MCP_POOL"] === "1") {
|
|
11175
11296
|
this.mcpPool = void 0;
|
|
11176
11297
|
this.workspaceMcpBudget = void 0;
|
|
@@ -11261,6 +11382,14 @@ var QwenAgent = class {
|
|
|
11261
11382
|
throw new SessionWriterUnavailableError();
|
|
11262
11383
|
}
|
|
11263
11384
|
}
|
|
11385
|
+
rejectUnsupportedGuardedHiddenAgent(operation) {
|
|
11386
|
+
if (this.managedToolInvocationGuard) {
|
|
11387
|
+
throw RequestError.invalidParams(
|
|
11388
|
+
void 0,
|
|
11389
|
+
`Managed external tool guard v1 does not support ${operation}.`
|
|
11390
|
+
);
|
|
11391
|
+
}
|
|
11392
|
+
}
|
|
11264
11393
|
beginManagedShutdown() {
|
|
11265
11394
|
if (!this.isTrustedManagedParent()) {
|
|
11266
11395
|
throw new Error("Managed shutdown requires a trusted private parent");
|
|
@@ -11912,7 +12041,7 @@ var QwenAgent = class {
|
|
|
11912
12041
|
}
|
|
11913
12042
|
this.clientCapabilities = args.clientCapabilities;
|
|
11914
12043
|
const authMethods = buildAuthMethods();
|
|
11915
|
-
const version = "0.21.
|
|
12044
|
+
const version = "0.21.6-preview.0";
|
|
11916
12045
|
const response = {
|
|
11917
12046
|
protocolVersion: PROTOCOL_VERSION,
|
|
11918
12047
|
agentInfo: {
|
|
@@ -11951,12 +12080,13 @@ var QwenAgent = class {
|
|
|
11951
12080
|
}
|
|
11952
12081
|
const requestedProfile = args._meta?.[CHANNEL_STARTUP_PROFILE_META_KEY];
|
|
11953
12082
|
const profileRequested = requestedProfile !== null && typeof requestedProfile === "object" && !Array.isArray(requestedProfile) && requestedProfile["v"] === CHANNEL_STARTUP_PROFILE_VERSION;
|
|
11954
|
-
|
|
11955
|
-
...
|
|
11956
|
-
|
|
11957
|
-
|
|
11958
|
-
}
|
|
11959
|
-
}
|
|
12083
|
+
const responseMeta = {
|
|
12084
|
+
...this.managedToolInvocationGuard ? {
|
|
12085
|
+
[EXTERNAL_TOOL_GUARD_READY_META_KEY]: EXTERNAL_TOOL_GUARD_REQUIRED_VALUE
|
|
12086
|
+
} : {},
|
|
12087
|
+
...profileRequested && startupProfile ? { [CHANNEL_STARTUP_PROFILE_META_KEY]: startupProfile } : {}
|
|
12088
|
+
};
|
|
12089
|
+
return Object.keys(responseMeta).length > 0 ? { ...response, _meta: responseMeta } : response;
|
|
11960
12090
|
}
|
|
11961
12091
|
async authenticate({ methodId }) {
|
|
11962
12092
|
const method = external_exports.nativeEnum(AuthType).parse(methodId);
|
|
@@ -12077,8 +12207,12 @@ var QwenAgent = class {
|
|
|
12077
12207
|
logger: debugLogger6
|
|
12078
12208
|
});
|
|
12079
12209
|
if (!bulkReplay2) {
|
|
12080
|
-
|
|
12081
|
-
|
|
12210
|
+
try {
|
|
12211
|
+
for (const update of replay.updates) {
|
|
12212
|
+
await liveSession.sendUpdate(update);
|
|
12213
|
+
}
|
|
12214
|
+
} finally {
|
|
12215
|
+
liveSession.clearActiveTodoPlanRevision();
|
|
12082
12216
|
}
|
|
12083
12217
|
if (replay.replayError !== void 0) {
|
|
12084
12218
|
throw RequestError.internalError(void 0, replay.replayError);
|
|
@@ -14765,9 +14899,12 @@ var QwenAgent = class {
|
|
|
14765
14899
|
);
|
|
14766
14900
|
case SERVE_CONTROL_EXT_METHODS.workspaceMemoryRememberAvailability:
|
|
14767
14901
|
return {
|
|
14768
|
-
available: this.config.isManagedMemoryAvailable()
|
|
14902
|
+
available: !this.managedToolInvocationGuard && this.config.isManagedMemoryAvailable()
|
|
14769
14903
|
};
|
|
14770
14904
|
case SERVE_CONTROL_EXT_METHODS.workspaceMemoryRemember: {
|
|
14905
|
+
this.rejectUnsupportedGuardedHiddenAgent(
|
|
14906
|
+
"agent-backed workspace memory remember"
|
|
14907
|
+
);
|
|
14771
14908
|
const content = params["content"];
|
|
14772
14909
|
if (typeof content !== "string" || !content.trim()) {
|
|
14773
14910
|
throw RequestError.invalidParams(
|
|
@@ -14946,6 +15083,9 @@ var QwenAgent = class {
|
|
|
14946
15083
|
}
|
|
14947
15084
|
}
|
|
14948
15085
|
case SERVE_CONTROL_EXT_METHODS.workspaceMemoryDream: {
|
|
15086
|
+
this.rejectUnsupportedGuardedHiddenAgent(
|
|
15087
|
+
"agent-backed workspace memory dream"
|
|
15088
|
+
);
|
|
14949
15089
|
if (!this.config.isManagedMemoryAvailable()) {
|
|
14950
15090
|
throw new RequestError(
|
|
14951
15091
|
-32009,
|
|
@@ -15862,6 +16002,9 @@ var QwenAgent = class {
|
|
|
15862
16002
|
}
|
|
15863
16003
|
const current = config.getApprovalMode();
|
|
15864
16004
|
if (current === "plan") {
|
|
16005
|
+
if (previous !== "plan") {
|
|
16006
|
+
session.clearActiveTodoPlanRevision();
|
|
16007
|
+
}
|
|
15865
16008
|
session.clearTodoStopGuardTrust();
|
|
15866
16009
|
}
|
|
15867
16010
|
return { previous, current };
|
|
@@ -16092,6 +16235,12 @@ var QwenAgent = class {
|
|
|
16092
16235
|
return { sessionId, answer: result.text || null };
|
|
16093
16236
|
}
|
|
16094
16237
|
case SERVE_CONTROL_EXT_METHODS.sessionForkAgent: {
|
|
16238
|
+
if (this.managedToolInvocationGuard) {
|
|
16239
|
+
throw RequestError.invalidParams(
|
|
16240
|
+
void 0,
|
|
16241
|
+
"Managed external tool guard v1 does not support /fork."
|
|
16242
|
+
);
|
|
16243
|
+
}
|
|
16095
16244
|
const sessionId = params["sessionId"];
|
|
16096
16245
|
if (typeof sessionId !== "string" || sessionId.length === 0) {
|
|
16097
16246
|
throw RequestError.invalidParams(
|
|
@@ -17097,6 +17246,7 @@ ${outputText}
|
|
|
17097
17246
|
try {
|
|
17098
17247
|
config.setApprovalMode(newMode);
|
|
17099
17248
|
if (newMode === "plan") {
|
|
17249
|
+
session.clearActiveTodoPlanRevision();
|
|
17100
17250
|
session.clearTodoStopGuardTrust();
|
|
17101
17251
|
}
|
|
17102
17252
|
} catch (err) {
|
|
@@ -17442,7 +17592,8 @@ ${outputText}
|
|
|
17442
17592
|
// A duplicate caller-supplied session id must fail this one request,
|
|
17443
17593
|
// not process.exit(1) the shared ACP child and every session on its
|
|
17444
17594
|
// channel. newSessionConfig maps the throw to a RequestError.
|
|
17445
|
-
true
|
|
17595
|
+
true,
|
|
17596
|
+
this.managedToolInvocationGuard ? { toolInvocationGuard: this.managedToolInvocationGuard } : void 0
|
|
17446
17597
|
);
|
|
17447
17598
|
if (sessionSource) {
|
|
17448
17599
|
config.setSessionSource(sessionSource.sourceType, sessionSource.sourceId);
|
|
@@ -17717,6 +17868,7 @@ __name(diffSettingsKeys, "diffSettingsKeys");
|
|
|
17717
17868
|
export {
|
|
17718
17869
|
AUTH_PREFLIGHT_ENV_KEYS,
|
|
17719
17870
|
AUTH_PREFLIGHT_WAIVED_AUTH_TYPES,
|
|
17871
|
+
createManagedExternalToolGuard,
|
|
17720
17872
|
createWorkspaceMcpBudget,
|
|
17721
17873
|
deliverClientMcpMessage,
|
|
17722
17874
|
extractFilesFromTarGz,
|