@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
|
@@ -71,13 +71,13 @@ import {
|
|
|
71
71
|
RUNTIME_SNAPSHOT_PREFIX,
|
|
72
72
|
buildModelIdContext,
|
|
73
73
|
resolveModelId
|
|
74
|
-
} from "./chunk-
|
|
74
|
+
} from "./chunk-6D6V55ZQ.js";
|
|
75
75
|
import {
|
|
76
76
|
ARTIFACT_TITLE_MAX_LENGTH,
|
|
77
77
|
ARTIFACT_WORKSPACE_PATH_MAX_LENGTH,
|
|
78
78
|
hasControlCharacter,
|
|
79
79
|
hasUnsafeDisplayPayload
|
|
80
|
-
} from "./chunk-
|
|
80
|
+
} from "./chunk-3PRJYMXC.js";
|
|
81
81
|
import {
|
|
82
82
|
promptIdContext,
|
|
83
83
|
todoWorkChainContext
|
|
@@ -223,7 +223,7 @@ import {
|
|
|
223
223
|
} from "./chunk-432XCUHF.js";
|
|
224
224
|
import {
|
|
225
225
|
DashScopeOpenAICompatibleProvider
|
|
226
|
-
} from "./chunk-
|
|
226
|
+
} from "./chunk-HU5TUALO.js";
|
|
227
227
|
import {
|
|
228
228
|
openBrowserSecurely,
|
|
229
229
|
shouldAttemptBrowserLaunch
|
|
@@ -302,7 +302,6 @@ import {
|
|
|
302
302
|
_recoverObjectsFromLine,
|
|
303
303
|
addMCPStatusChangeListener,
|
|
304
304
|
collectText,
|
|
305
|
-
defaultModalities,
|
|
306
305
|
detectFileType,
|
|
307
306
|
exists,
|
|
308
307
|
fileExists,
|
|
@@ -383,7 +382,10 @@ import {
|
|
|
383
382
|
updateMCPServerStatus,
|
|
384
383
|
writeLine,
|
|
385
384
|
writeLineSync
|
|
386
|
-
} from "./chunk-
|
|
385
|
+
} from "./chunk-O656RSMC.js";
|
|
386
|
+
import {
|
|
387
|
+
defaultModalities
|
|
388
|
+
} from "./chunk-WOJZWRAZ.js";
|
|
387
389
|
import {
|
|
388
390
|
E_TIMEOUT,
|
|
389
391
|
Mutex,
|
|
@@ -443,7 +445,7 @@ import {
|
|
|
443
445
|
createContentGenerator,
|
|
444
446
|
resetPreloadedContentGenerator,
|
|
445
447
|
resolveContentGeneratorConfigWithSources
|
|
446
|
-
} from "./chunk-
|
|
448
|
+
} from "./chunk-P7LKADIT.js";
|
|
447
449
|
import {
|
|
448
450
|
normalizeMcpToolName,
|
|
449
451
|
sanitizeToolNameForProvider
|
|
@@ -20585,6 +20587,9 @@ function buildKeptFilePaths(history, refs, keepRefs, callIdToFilePath) {
|
|
|
20585
20587
|
if (!keepRefs.has(refKey(ref))) continue;
|
|
20586
20588
|
const part = getPart(history, ref);
|
|
20587
20589
|
if (!part || isErrorResponse(part) || isAlreadyCleared(part)) continue;
|
|
20590
|
+
if (part.functionResponse?.name !== ToolNames.WRITE_FILE) {
|
|
20591
|
+
continue;
|
|
20592
|
+
}
|
|
20588
20593
|
const paths = getFilePathsForResponse(part, callIdToFilePath);
|
|
20589
20594
|
if (paths?.length === 1) {
|
|
20590
20595
|
kept.add(paths[0]);
|
|
@@ -20598,6 +20603,7 @@ function planSizeBasedClearing(history, settings, keepRecent, pendingContent, pr
|
|
|
20598
20603
|
if (!Number.isFinite(threshold) || threshold < 0) {
|
|
20599
20604
|
return null;
|
|
20600
20605
|
}
|
|
20606
|
+
const lowWatermark = Math.floor(threshold / 2);
|
|
20601
20607
|
const pending = normalizePendingContent(pendingContent);
|
|
20602
20608
|
const virtualHistory = pending.length > 0 ? [...history, ...pending] : history;
|
|
20603
20609
|
const { tool } = collectCompactablePartRefs(virtualHistory);
|
|
@@ -20620,11 +20626,16 @@ function planSizeBasedClearing(history, settings, keepRecent, pendingContent, pr
|
|
|
20620
20626
|
const compactableToolRefs = tool.filter(
|
|
20621
20627
|
(ref) => !preservedToolRefs.has(refKey(ref))
|
|
20622
20628
|
);
|
|
20623
|
-
const keepToolRefs = buildKeepRefs(
|
|
20629
|
+
const keepToolRefs = buildKeepRefs(
|
|
20630
|
+
compactableToolRefs.filter(
|
|
20631
|
+
(ref) => ref.contentIndex < history.length && charsByRef.has(refKey(ref))
|
|
20632
|
+
),
|
|
20633
|
+
keepRecent
|
|
20634
|
+
);
|
|
20624
20635
|
const clearRefs = [];
|
|
20625
20636
|
let remainingChars = totalChars;
|
|
20626
20637
|
for (const ref of compactableToolRefs) {
|
|
20627
|
-
if (remainingChars <=
|
|
20638
|
+
if (remainingChars <= lowWatermark) break;
|
|
20628
20639
|
const key = refKey(ref);
|
|
20629
20640
|
const chars = charsByRef.get(key) ?? 0;
|
|
20630
20641
|
if (chars <= 0 || ref.contentIndex >= history.length || keepToolRefs.has(key)) {
|
|
@@ -20640,7 +20651,8 @@ function planSizeBasedClearing(history, settings, keepRecent, pendingContent, pr
|
|
|
20640
20651
|
toolResultCharsBefore: totalChars,
|
|
20641
20652
|
toolResultCharsAfter: remainingChars - pendingChars,
|
|
20642
20653
|
pendingToolResultChars: pendingChars,
|
|
20643
|
-
toolResultsTotalCharsThreshold: threshold
|
|
20654
|
+
toolResultsTotalCharsThreshold: threshold,
|
|
20655
|
+
toolResultsLowWatermark: lowWatermark
|
|
20644
20656
|
};
|
|
20645
20657
|
}
|
|
20646
20658
|
__name(planSizeBasedClearing, "planSizeBasedClearing");
|
|
@@ -20660,6 +20672,7 @@ function microcompactHistory(history, lastApiCompletionTimestamp, settings, opts
|
|
|
20660
20672
|
let toolResultCharsAfter;
|
|
20661
20673
|
let pendingToolResultChars;
|
|
20662
20674
|
let toolResultsTotalCharsThreshold;
|
|
20675
|
+
let toolResultsLowWatermark;
|
|
20663
20676
|
let keptPathHistory = history;
|
|
20664
20677
|
let keptPathRefs = [];
|
|
20665
20678
|
if (opts?.force) {
|
|
@@ -20679,13 +20692,28 @@ function microcompactHistory(history, lastApiCompletionTimestamp, settings, opts
|
|
|
20679
20692
|
history,
|
|
20680
20693
|
opts?.preserveReadFileResult
|
|
20681
20694
|
));
|
|
20695
|
+
const keepToolRefs = buildKeepRefs(
|
|
20696
|
+
tool.filter((ref) => {
|
|
20697
|
+
const part = getPart(history, ref);
|
|
20698
|
+
return getToolOutputChars(part) > 0 || !!part && hasNestedMedia(part);
|
|
20699
|
+
}),
|
|
20700
|
+
keepRecent
|
|
20701
|
+
);
|
|
20682
20702
|
keepRefs = /* @__PURE__ */ new Set([
|
|
20683
|
-
...
|
|
20703
|
+
...keepToolRefs,
|
|
20684
20704
|
...media.slice(-keepRecent).map(refKey),
|
|
20685
20705
|
...nestedMedia.slice(-keepRecent).map(refKey)
|
|
20686
20706
|
]);
|
|
20687
20707
|
const allRefs = [...tool, ...media, ...nestedMedia];
|
|
20688
|
-
|
|
20708
|
+
const toolKeys = new Set(tool.map(refKey));
|
|
20709
|
+
clearRefs = allRefs.filter((r) => {
|
|
20710
|
+
if (keepRefs.has(refKey(r))) return false;
|
|
20711
|
+
const part = getPart(history, r);
|
|
20712
|
+
if (toolKeys.has(refKey(r)) && getToolOutputChars(part) === 0 && !(part && hasNestedMedia(part))) {
|
|
20713
|
+
return false;
|
|
20714
|
+
}
|
|
20715
|
+
return true;
|
|
20716
|
+
});
|
|
20689
20717
|
keptPathRefs = tool;
|
|
20690
20718
|
} else {
|
|
20691
20719
|
const pending = normalizePendingContent(opts?.pendingContent);
|
|
@@ -20709,6 +20737,7 @@ function microcompactHistory(history, lastApiCompletionTimestamp, settings, opts
|
|
|
20709
20737
|
toolResultCharsAfter = sizePlan.toolResultCharsAfter;
|
|
20710
20738
|
pendingToolResultChars = sizePlan.pendingToolResultChars;
|
|
20711
20739
|
toolResultsTotalCharsThreshold = sizePlan.toolResultsTotalCharsThreshold;
|
|
20740
|
+
toolResultsLowWatermark = sizePlan.toolResultsLowWatermark;
|
|
20712
20741
|
}
|
|
20713
20742
|
if (clearRefs.length === 0 && triggerReason !== "size") {
|
|
20714
20743
|
return { history };
|
|
@@ -20798,6 +20827,7 @@ function microcompactHistory(history, lastApiCompletionTimestamp, settings, opts
|
|
|
20798
20827
|
toolResultCharsAfter,
|
|
20799
20828
|
pendingToolResultChars,
|
|
20800
20829
|
toolResultsTotalCharsThreshold,
|
|
20830
|
+
toolResultsLowWatermark,
|
|
20801
20831
|
toolsCleared,
|
|
20802
20832
|
mediaCleared,
|
|
20803
20833
|
toolsKept,
|
|
@@ -35737,6 +35767,7 @@ __name(composePostCompactHistory, "composePostCompactHistory");
|
|
|
35737
35767
|
// packages/core/src/services/chatCompressionService.ts
|
|
35738
35768
|
var debugLogger20 = createDebugLogger("COMPRESSION");
|
|
35739
35769
|
var COMPACT_MAX_OUTPUT_TOKENS = 2e4;
|
|
35770
|
+
var COMPRESSION_REQUEST_DIRECTIVE = "First, reason in your <analysis> block. Then, produce the <state_snapshot> XML.";
|
|
35740
35771
|
var DEFAULT_PCT = 0.85;
|
|
35741
35772
|
var SUMMARY_RESERVE = COMPACT_MAX_OUTPUT_TOKENS;
|
|
35742
35773
|
var AUTOCOMPACT_BUFFER = 13e3;
|
|
@@ -35844,6 +35875,8 @@ var ChatCompressionService = class {
|
|
|
35844
35875
|
const chatCompressionSettings = config.getChatCompression();
|
|
35845
35876
|
const slimmingConfig = resolveSlimmingConfig(chatCompressionSettings);
|
|
35846
35877
|
const tuning = resolveCompactionTuning(chatCompressionSettings);
|
|
35878
|
+
const contentGeneratorConfig = config.getContentGeneratorConfig();
|
|
35879
|
+
const contextLimit = contentGeneratorConfig.contextWindowSize ?? DEFAULT_TOKEN_LIMIT;
|
|
35847
35880
|
if (consecutiveFailures >= MAX_CONSECUTIVE_FAILURES && !force) {
|
|
35848
35881
|
return {
|
|
35849
35882
|
newHistory: null,
|
|
@@ -35855,7 +35888,6 @@ var ChatCompressionService = class {
|
|
|
35855
35888
|
};
|
|
35856
35889
|
}
|
|
35857
35890
|
if (!force) {
|
|
35858
|
-
const contextLimit = config.getContentGeneratorConfig()?.contextWindowSize ?? DEFAULT_TOKEN_LIMIT;
|
|
35859
35891
|
const { auto } = computeThresholds(
|
|
35860
35892
|
contextLimit,
|
|
35861
35893
|
config.getAutoCompactThreshold()
|
|
@@ -35936,12 +35968,11 @@ var ChatCompressionService = class {
|
|
|
35936
35968
|
[opts.pendingUserMessage],
|
|
35937
35969
|
slimmingConfig.imageTokenEstimate
|
|
35938
35970
|
) : 0;
|
|
35939
|
-
|
|
35940
|
-
|
|
35941
|
-
|
|
35942
|
-
|
|
35943
|
-
|
|
35944
|
-
}
|
|
35971
|
+
let coldInput;
|
|
35972
|
+
const getColdInput = /* @__PURE__ */ __name(() => {
|
|
35973
|
+
coldInput ??= slimCompactionInput(sideQueryHistory);
|
|
35974
|
+
return coldInput;
|
|
35975
|
+
}, "getColdInput");
|
|
35945
35976
|
const systemInstruction = buildCompressionSystemPrompt(
|
|
35946
35977
|
opts.customInstructions,
|
|
35947
35978
|
hookExtraInstructions
|
|
@@ -35955,7 +35986,7 @@ var ChatCompressionService = class {
|
|
|
35955
35986
|
const entry = models.find((m2) => m2.id === resolved.modelId);
|
|
35956
35987
|
const window2 = entry?.contextWindowSize;
|
|
35957
35988
|
const slimmedTokenEstimate = estimateContentTokens(
|
|
35958
|
-
|
|
35989
|
+
getColdInput().slimmedHistory,
|
|
35959
35990
|
slimmingConfig.imageTokenEstimate
|
|
35960
35991
|
) + Math.ceil(systemInstruction.length / CHARS_PER_TOKEN) + COMPACT_MAX_OUTPUT_TOKENS;
|
|
35961
35992
|
if (window2 && window2 > 0 && slimmedTokenEstimate > window2) {
|
|
@@ -35967,49 +35998,72 @@ var ChatCompressionService = class {
|
|
|
35967
35998
|
}
|
|
35968
35999
|
const abortSignal = signal ?? new AbortController().signal;
|
|
35969
36000
|
abortSignal.throwIfAborted();
|
|
35970
|
-
const runColdCompression = /* @__PURE__ */ __name(() =>
|
|
35971
|
-
|
|
35972
|
-
|
|
35973
|
-
|
|
35974
|
-
|
|
35975
|
-
|
|
35976
|
-
|
|
35977
|
-
|
|
35978
|
-
|
|
35979
|
-
|
|
35980
|
-
|
|
35981
|
-
|
|
35982
|
-
|
|
35983
|
-
|
|
35984
|
-
|
|
35985
|
-
|
|
35986
|
-
|
|
35987
|
-
|
|
35988
|
-
|
|
35989
|
-
|
|
35990
|
-
|
|
35991
|
-
|
|
35992
|
-
|
|
35993
|
-
|
|
35994
|
-
|
|
35995
|
-
|
|
35996
|
-
|
|
35997
|
-
|
|
35998
|
-
|
|
35999
|
-
|
|
36000
|
-
|
|
36001
|
-
|
|
36002
|
-
|
|
36003
|
-
|
|
36004
|
-
|
|
36005
|
-
|
|
36006
|
-
|
|
36007
|
-
|
|
36008
|
-
|
|
36009
|
-
|
|
36001
|
+
const runColdCompression = /* @__PURE__ */ __name(() => {
|
|
36002
|
+
const slim = getColdInput();
|
|
36003
|
+
if (slim.stats.imagesStripped > 0 || slim.stats.documentsStripped > 0) {
|
|
36004
|
+
config.getDebugLogger().debug(
|
|
36005
|
+
`[chat-compression] slimmed ${slim.stats.imagesStripped} image(s) and ${slim.stats.documentsStripped} document(s) from side-query payload`
|
|
36006
|
+
);
|
|
36007
|
+
}
|
|
36008
|
+
return runSideQuery(config, {
|
|
36009
|
+
purpose: "chat-compression",
|
|
36010
|
+
skipOutputLanguagePreference: true,
|
|
36011
|
+
model: effectiveCompactionModel,
|
|
36012
|
+
// Compression uses the compaction model (config.getCompactionModel?.()) to reduce cost.
|
|
36013
|
+
// Falls back to the main model if not set or if the payload exceeds the
|
|
36014
|
+
// compaction model's context window.
|
|
36015
|
+
// See https://github.com/QwenLM/qwen-code/issues/5956
|
|
36016
|
+
// Stream so a slow compression inference keeps the HTTP connection alive.
|
|
36017
|
+
// Non-streaming returns no bytes until the whole summary is generated, so
|
|
36018
|
+
// behind a BFF gateway with a short `proxy_read_timeout` a long inference
|
|
36019
|
+
// is killed with a 504 (surfaced as a 422) mid-compression, breaking the
|
|
36020
|
+
// session. See https://github.com/QwenLM/qwen-code/issues/5861.
|
|
36021
|
+
stream: true,
|
|
36022
|
+
// Best-effort: failures fall back to NOOP and the next turn re-triggers
|
|
36023
|
+
// compression anyway, so don't burn 7 retries blocking the user mid-turn.
|
|
36024
|
+
maxAttempts: 1,
|
|
36025
|
+
systemInstruction,
|
|
36026
|
+
contents: [
|
|
36027
|
+
...slim.slimmedHistory,
|
|
36028
|
+
{
|
|
36029
|
+
role: "user",
|
|
36030
|
+
parts: [
|
|
36031
|
+
{
|
|
36032
|
+
text: COMPRESSION_REQUEST_DIRECTIVE
|
|
36033
|
+
}
|
|
36034
|
+
]
|
|
36035
|
+
}
|
|
36036
|
+
],
|
|
36037
|
+
// Compression output is bounded by maxOutputTokens to guarantee a predictable
|
|
36038
|
+
// reserve across providers (see docs/design/auto-compaction-threshold-redesign.md).
|
|
36039
|
+
// Thinking is disabled because per-provider thinking-budget semantics are
|
|
36040
|
+
// inconsistent (Anthropic/OpenAI count it separately, Gemini varies by model).
|
|
36041
|
+
config: {
|
|
36042
|
+
thinkingConfig: { includeThoughts: false },
|
|
36043
|
+
maxOutputTokens: COMPACT_MAX_OUTPUT_TOKENS
|
|
36044
|
+
},
|
|
36045
|
+
abortSignal,
|
|
36046
|
+
promptId
|
|
36047
|
+
});
|
|
36048
|
+
}, "runColdCompression");
|
|
36010
36049
|
let summaryResult;
|
|
36011
36050
|
let usedCacheSharing = false;
|
|
36012
|
-
const
|
|
36051
|
+
const sharedRequestText = `${systemInstruction}
|
|
36052
|
+
|
|
36053
|
+
Do not call tools; tool execution is disabled for this request. ` + COMPRESSION_REQUEST_DIRECTIVE;
|
|
36054
|
+
const sharedPromptTokenCount = opts.precomputedEffectiveTokens ?? originalTokenCount + (chat.getLastOutputTokenCount?.() ?? 0);
|
|
36055
|
+
const sharedDirectiveTokenCount = Math.ceil(
|
|
36056
|
+
sharedRequestText.length / CHARS_PER_TOKEN
|
|
36057
|
+
);
|
|
36058
|
+
const usesMainModel = effectiveCompactionModel === config.getModel();
|
|
36059
|
+
const providerSupportsCacheSharing = supportsCompressionCacheSharing(config);
|
|
36060
|
+
const hasProviderTokenCount = (chat.getLastPromptTokenCount?.() ?? 0) > 0;
|
|
36061
|
+
const sharedRequestFits = sharedPromptTokenCount + sharedDirectiveTokenCount + COMPACT_MAX_OUTPUT_TOKENS <= contextLimit;
|
|
36062
|
+
const canShareCache = usesMainModel && providerSupportsCacheSharing && hasProviderTokenCount && sharedRequestFits;
|
|
36063
|
+
if (!canShareCache) {
|
|
36064
|
+
const reason = !usesMainModel ? "distinct compaction model" : !providerSupportsCacheSharing ? "provider does not support cache sharing" : !hasProviderTokenCount ? "no provider token-count anchor" : `shared request exceeds context window: prompt=${sharedPromptTokenCount}, directive=${sharedDirectiveTokenCount}, reserve=${COMPACT_MAX_OUTPUT_TOKENS}, window=${contextLimit}`;
|
|
36065
|
+
debugLogger20.debug(`[compaction] skipping cache sharing: ${reason}`);
|
|
36066
|
+
}
|
|
36013
36067
|
if (canShareCache) {
|
|
36014
36068
|
try {
|
|
36015
36069
|
const generationConfig = {
|
|
@@ -36026,9 +36080,7 @@ var ChatCompressionService = class {
|
|
|
36026
36080
|
role: "user",
|
|
36027
36081
|
parts: [
|
|
36028
36082
|
{
|
|
36029
|
-
text:
|
|
36030
|
-
|
|
36031
|
-
Do not call tools; tool execution is disabled for this request. First, reason in your <analysis> block. Then, produce the <state_snapshot> XML.`
|
|
36083
|
+
text: sharedRequestText
|
|
36032
36084
|
}
|
|
36033
36085
|
]
|
|
36034
36086
|
}
|
|
@@ -36037,7 +36089,7 @@ Do not call tools; tool execution is disabled for this request. First, reason in
|
|
|
36037
36089
|
systemInstruction: mainSystemInstruction,
|
|
36038
36090
|
config: {
|
|
36039
36091
|
...generationConfig,
|
|
36040
|
-
...
|
|
36092
|
+
...contentGeneratorConfig.authType === "anthropic" /* USE_ANTHROPIC */ ? {
|
|
36041
36093
|
thinkingConfig: {
|
|
36042
36094
|
...generationConfig.thinkingConfig,
|
|
36043
36095
|
// Manual Anthropic thinking requires budget_tokens to be
|
|
@@ -37758,6 +37810,10 @@ var GeminiChat = class {
|
|
|
37758
37810
|
getLastPromptTokenCount() {
|
|
37759
37811
|
return this.lastPromptTokenCount;
|
|
37760
37812
|
}
|
|
37813
|
+
/** Previous model-response tokens used by the next prompt estimate. */
|
|
37814
|
+
getLastOutputTokenCount() {
|
|
37815
|
+
return this.lastOutputTokenCount;
|
|
37816
|
+
}
|
|
37761
37817
|
/**
|
|
37762
37818
|
* Builds request contents for the content generator without deep-cloning the
|
|
37763
37819
|
* whole chat history. This is an internal hot path: long sessions can make a
|
|
@@ -38469,6 +38525,7 @@ var GeminiChat = class {
|
|
|
38469
38525
|
params.config?.abortSignal,
|
|
38470
38526
|
{
|
|
38471
38527
|
originalTokenCountOverride: reactiveOriginalTokenCount,
|
|
38528
|
+
precomputedEffectiveTokens: reactiveOriginalTokenCount,
|
|
38472
38529
|
requestGenerationConfig: params.config,
|
|
38473
38530
|
trigger: "auto"
|
|
38474
38531
|
}
|
|
@@ -52275,7 +52332,12 @@ async function evaluateToolInvocationGuard(guard, context2) {
|
|
|
52275
52332
|
});
|
|
52276
52333
|
const decision = await guard({
|
|
52277
52334
|
...context2,
|
|
52278
|
-
args: structuredClone(context2.args)
|
|
52335
|
+
args: structuredClone(context2.args),
|
|
52336
|
+
...context2.invocationContext ? {
|
|
52337
|
+
invocationContext: Object.freeze({
|
|
52338
|
+
...context2.invocationContext
|
|
52339
|
+
})
|
|
52340
|
+
} : {}
|
|
52279
52341
|
});
|
|
52280
52342
|
if (context2.signal.aborted) {
|
|
52281
52343
|
return { allowed: false, reason: FAILED_MESSAGE };
|
|
@@ -114624,13 +114686,15 @@ async function runSpeculativeLoop(config, state, cacheSafe, modelOverride) {
|
|
|
114624
114686
|
const invocation = tool.build(args);
|
|
114625
114687
|
const toolInvocationGuard = config.getToolInvocationGuard?.();
|
|
114626
114688
|
if (toolInvocationGuard) {
|
|
114689
|
+
const invocationContext = getInvocationContext();
|
|
114627
114690
|
const guardDecision = await evaluateToolInvocationGuard(
|
|
114628
114691
|
toolInvocationGuard,
|
|
114629
114692
|
{
|
|
114630
114693
|
callId: persistenceCallId,
|
|
114631
114694
|
toolName: canonicalToolName2(name),
|
|
114632
114695
|
args: invocation.params,
|
|
114633
|
-
signal: state.abortController.signal
|
|
114696
|
+
signal: state.abortController.signal,
|
|
114697
|
+
...invocationContext ? { invocationContext } : {}
|
|
114634
114698
|
}
|
|
114635
114699
|
);
|
|
114636
114700
|
if (state.abortController.signal.aborted) {
|
|
@@ -133429,13 +133493,15 @@ var CoreToolScheduler = class {
|
|
|
133429
133493
|
}
|
|
133430
133494
|
const toolInvocationGuard = this.config.getToolInvocationGuard?.();
|
|
133431
133495
|
if (toolInvocationGuard) {
|
|
133496
|
+
const invocationContext = getInvocationContext();
|
|
133432
133497
|
const guardDecision = await evaluateToolInvocationGuard(
|
|
133433
133498
|
toolInvocationGuard,
|
|
133434
133499
|
{
|
|
133435
133500
|
callId,
|
|
133436
133501
|
toolName: canonicalName,
|
|
133437
133502
|
args: invocation.params,
|
|
133438
|
-
signal
|
|
133503
|
+
signal,
|
|
133504
|
+
...invocationContext ? { invocationContext } : {}
|
|
133439
133505
|
}
|
|
133440
133506
|
);
|
|
133441
133507
|
if (signal.aborted) {
|
|
@@ -143162,8 +143228,10 @@ var GeminiClient = class _GeminiClient {
|
|
|
143162
143228
|
}
|
|
143163
143229
|
if (m2.triggerReason === "size") {
|
|
143164
143230
|
const pendingNote = m2.pendingToolResultChars && m2.pendingToolResultChars > 0 ? ` (+${m2.pendingToolResultChars} pending)` : "";
|
|
143231
|
+
const virtualAfter = (m2.toolResultCharsAfter ?? 0) + (m2.pendingToolResultChars ?? 0);
|
|
143232
|
+
const targetNote = m2.toolResultsLowWatermark !== void 0 ? `, target ${m2.toolResultsLowWatermark}` + (virtualAfter > m2.toolResultsLowWatermark ? " (soft-exceeded)" : "") : "";
|
|
143165
143233
|
debugLogger132.info(
|
|
143166
|
-
`[TOOL-RESULT MC] tool result chars ${m2.toolResultCharsBefore} > ${m2.toolResultsTotalCharsThreshold}, cleared ${m2.toolsCleared} tool result(s) (~${m2.tokensSaved} tokens), history now ${m2.toolResultCharsAfter}${pendingNote}, kept ${m2.toolsKept} tool result(s)`
|
|
143234
|
+
`[TOOL-RESULT MC] tool result chars ${m2.toolResultCharsBefore} > ${m2.toolResultsTotalCharsThreshold}, cleared ${m2.toolsCleared} tool result(s) (~${m2.tokensSaved} tokens), history now ${m2.toolResultCharsAfter}${pendingNote}${targetNote}, kept ${m2.toolsKept} tool result(s)`
|
|
143167
143235
|
);
|
|
143168
143236
|
} else {
|
|
143169
143237
|
debugLogger132.info(
|
|
@@ -150763,7 +150831,7 @@ var Config = class _Config {
|
|
|
150763
150831
|
}
|
|
150764
150832
|
if (!enabled) return;
|
|
150765
150833
|
registry.registerFactory(ToolNames.IMAGE_GEN, async () => {
|
|
150766
|
-
const { ImageGenTool } = await import("./image-gen-
|
|
150834
|
+
const { ImageGenTool } = await import("./image-gen-J6Q2YBEU.js");
|
|
150767
150835
|
return new ImageGenTool(this);
|
|
150768
150836
|
});
|
|
150769
150837
|
}
|
|
@@ -150810,19 +150878,19 @@ var Config = class _Config {
|
|
|
150810
150878
|
}, "registerGoalWorkerTools");
|
|
150811
150879
|
if (this.getBareMode()) {
|
|
150812
150880
|
await registerLazy(ToolNames.READ_FILE, async () => {
|
|
150813
|
-
const { ReadFileTool } = await import("./read-file-
|
|
150881
|
+
const { ReadFileTool } = await import("./read-file-PGTXF25I.js");
|
|
150814
150882
|
return new ReadFileTool(this);
|
|
150815
150883
|
});
|
|
150816
150884
|
await registerLazy(ToolNames.EDIT, async () => {
|
|
150817
|
-
const { EditTool } = await import("./edit-
|
|
150885
|
+
const { EditTool } = await import("./edit-DMFCBP2D.js");
|
|
150818
150886
|
return new EditTool(this);
|
|
150819
150887
|
});
|
|
150820
150888
|
await registerLazy(ToolNames.NOTEBOOK_EDIT, async () => {
|
|
150821
|
-
const { NotebookEditTool } = await import("./notebook-edit-
|
|
150889
|
+
const { NotebookEditTool } = await import("./notebook-edit-SG7X2EQA.js");
|
|
150822
150890
|
return new NotebookEditTool(this);
|
|
150823
150891
|
});
|
|
150824
150892
|
await registerLazy(ToolNames.SHELL, async () => {
|
|
150825
|
-
const { ShellTool: ShellTool2 } = await import("./shell-
|
|
150893
|
+
const { ShellTool: ShellTool2 } = await import("./shell-THDYM4CS.js");
|
|
150826
150894
|
return new ShellTool2(this);
|
|
150827
150895
|
});
|
|
150828
150896
|
await registerGoalWorkerTools();
|
|
@@ -150834,7 +150902,7 @@ var Config = class _Config {
|
|
|
150834
150902
|
}
|
|
150835
150903
|
await registerGoalWorkerTools();
|
|
150836
150904
|
await registerLazy(ToolNames.TOOL_SEARCH, async () => {
|
|
150837
|
-
const { ToolSearchTool } = await import("./tool-search-
|
|
150905
|
+
const { ToolSearchTool } = await import("./tool-search-SQTUSG6P.js");
|
|
150838
150906
|
return new ToolSearchTool(this);
|
|
150839
150907
|
});
|
|
150840
150908
|
await registerLazy(ToolNames.READ_MCP_RESOURCE, async () => {
|
|
@@ -150842,7 +150910,7 @@ var Config = class _Config {
|
|
|
150842
150910
|
return new ReadMcpResourceTool(this);
|
|
150843
150911
|
});
|
|
150844
150912
|
await registerLazy(ToolNames.AGENT, async () => {
|
|
150845
|
-
const { AgentTool: AgentTool2 } = await import("./agent-
|
|
150913
|
+
const { AgentTool: AgentTool2 } = await import("./agent-2P53VL2L.js");
|
|
150846
150914
|
return new AgentTool2(this);
|
|
150847
150915
|
});
|
|
150848
150916
|
await registerLazy(ToolNames.LIST_AGENTS, async () => {
|
|
@@ -150858,7 +150926,7 @@ var Config = class _Config {
|
|
|
150858
150926
|
return new SendMessageTool(this);
|
|
150859
150927
|
});
|
|
150860
150928
|
await registerLazy(ToolNames.SKILL, async () => {
|
|
150861
|
-
const { SkillTool } = await import("./skill-
|
|
150929
|
+
const { SkillTool } = await import("./skill-OXXZBNQB.js");
|
|
150862
150930
|
return new SkillTool(this);
|
|
150863
150931
|
});
|
|
150864
150932
|
await registerLazy(ToolNames.LS, async () => {
|
|
@@ -150866,11 +150934,11 @@ var Config = class _Config {
|
|
|
150866
150934
|
return new LSTool(this);
|
|
150867
150935
|
});
|
|
150868
150936
|
await registerLazy(ToolNames.READ_FILE, async () => {
|
|
150869
|
-
const { ReadFileTool } = await import("./read-file-
|
|
150937
|
+
const { ReadFileTool } = await import("./read-file-PGTXF25I.js");
|
|
150870
150938
|
return new ReadFileTool(this);
|
|
150871
150939
|
});
|
|
150872
150940
|
await registerLazy(ToolNames.ZOOM_IMAGE, async () => {
|
|
150873
|
-
const { ZoomImageTool } = await import("./zoom-image-
|
|
150941
|
+
const { ZoomImageTool } = await import("./zoom-image-JTUSS43N.js");
|
|
150874
150942
|
return new ZoomImageTool(this);
|
|
150875
150943
|
});
|
|
150876
150944
|
if (this.getUseRipgrep()) {
|
|
@@ -150885,7 +150953,7 @@ var Config = class _Config {
|
|
|
150885
150953
|
recordStartupEvent("config_initialize_ripgrep_probe_end");
|
|
150886
150954
|
if (useRipgrep) {
|
|
150887
150955
|
await registerLazy(ToolNames.GREP, async () => {
|
|
150888
|
-
const { RipGrepTool: RipGrepTool2 } = await import("./ripGrep-
|
|
150956
|
+
const { RipGrepTool: RipGrepTool2 } = await import("./ripGrep-IY3KGPM6.js");
|
|
150889
150957
|
return new RipGrepTool2(this);
|
|
150890
150958
|
});
|
|
150891
150959
|
} else {
|
|
@@ -150898,7 +150966,7 @@ var Config = class _Config {
|
|
|
150898
150966
|
)
|
|
150899
150967
|
);
|
|
150900
150968
|
await registerLazy(ToolNames.GREP, async () => {
|
|
150901
|
-
const { GrepTool } = await import("./grep-
|
|
150969
|
+
const { GrepTool } = await import("./grep-BZO4LOTA.js");
|
|
150902
150970
|
return new GrepTool(this);
|
|
150903
150971
|
});
|
|
150904
150972
|
}
|
|
@@ -150906,28 +150974,28 @@ var Config = class _Config {
|
|
|
150906
150974
|
recordStartupEvent("config_initialize_ripgrep_probe_start");
|
|
150907
150975
|
recordStartupEvent("config_initialize_ripgrep_probe_end");
|
|
150908
150976
|
await registerLazy(ToolNames.GREP, async () => {
|
|
150909
|
-
const { GrepTool } = await import("./grep-
|
|
150977
|
+
const { GrepTool } = await import("./grep-BZO4LOTA.js");
|
|
150910
150978
|
return new GrepTool(this);
|
|
150911
150979
|
});
|
|
150912
150980
|
}
|
|
150913
150981
|
await registerLazy(ToolNames.GLOB, async () => {
|
|
150914
|
-
const { GlobTool } = await import("./glob-
|
|
150982
|
+
const { GlobTool } = await import("./glob-YECOWTRW.js");
|
|
150915
150983
|
return new GlobTool(this);
|
|
150916
150984
|
});
|
|
150917
150985
|
await registerLazy(ToolNames.EDIT, async () => {
|
|
150918
|
-
const { EditTool } = await import("./edit-
|
|
150986
|
+
const { EditTool } = await import("./edit-DMFCBP2D.js");
|
|
150919
150987
|
return new EditTool(this);
|
|
150920
150988
|
});
|
|
150921
150989
|
await registerLazy(ToolNames.NOTEBOOK_EDIT, async () => {
|
|
150922
|
-
const { NotebookEditTool } = await import("./notebook-edit-
|
|
150990
|
+
const { NotebookEditTool } = await import("./notebook-edit-SG7X2EQA.js");
|
|
150923
150991
|
return new NotebookEditTool(this);
|
|
150924
150992
|
});
|
|
150925
150993
|
await registerLazy(ToolNames.WRITE_FILE, async () => {
|
|
150926
|
-
const { WriteFileTool: WriteFileTool2 } = await import("./write-file-
|
|
150994
|
+
const { WriteFileTool: WriteFileTool2 } = await import("./write-file-H2QOF25K.js");
|
|
150927
150995
|
return new WriteFileTool2(this);
|
|
150928
150996
|
});
|
|
150929
150997
|
await registerLazy(ToolNames.SHELL, async () => {
|
|
150930
|
-
const { ShellTool: ShellTool2 } = await import("./shell-
|
|
150998
|
+
const { ShellTool: ShellTool2 } = await import("./shell-THDYM4CS.js");
|
|
150931
150999
|
return new ShellTool2(this);
|
|
150932
151000
|
});
|
|
150933
151001
|
await registerLazy(ToolNames.TODO_WRITE, async () => {
|
|
@@ -150943,26 +151011,26 @@ var Config = class _Config {
|
|
|
150943
151011
|
}
|
|
150944
151012
|
if (!this.sdkMode && (supportsUserInteraction || options2?.forSubAgent)) {
|
|
150945
151013
|
await registerLazy(ToolNames.EXIT_PLAN_MODE, async () => {
|
|
150946
|
-
const { ExitPlanModeTool: ExitPlanModeTool2 } = await import("./exitPlanMode-
|
|
151014
|
+
const { ExitPlanModeTool: ExitPlanModeTool2 } = await import("./exitPlanMode-XSHHYR73.js");
|
|
150947
151015
|
return new ExitPlanModeTool2(this);
|
|
150948
151016
|
});
|
|
150949
151017
|
}
|
|
150950
151018
|
if (!this.sdkMode && supportsUserInteraction) {
|
|
150951
151019
|
await registerLazy(ToolNames.ENTER_PLAN_MODE, async () => {
|
|
150952
|
-
const { EnterPlanModeTool } = await import("./enterPlanMode-
|
|
151020
|
+
const { EnterPlanModeTool } = await import("./enterPlanMode-QUIZFQ4M.js");
|
|
150953
151021
|
return new EnterPlanModeTool(this);
|
|
150954
151022
|
});
|
|
150955
151023
|
}
|
|
150956
151024
|
await registerLazy(ToolNames.ENTER_WORKTREE, async () => {
|
|
150957
|
-
const { EnterWorktreeTool } = await import("./enter-worktree-
|
|
151025
|
+
const { EnterWorktreeTool } = await import("./enter-worktree-5SVBCXFC.js");
|
|
150958
151026
|
return new EnterWorktreeTool(this);
|
|
150959
151027
|
});
|
|
150960
151028
|
await registerLazy(ToolNames.EXIT_WORKTREE, async () => {
|
|
150961
|
-
const { ExitWorktreeTool } = await import("./exit-worktree-
|
|
151029
|
+
const { ExitWorktreeTool } = await import("./exit-worktree-FUB44KAF.js");
|
|
150962
151030
|
return new ExitWorktreeTool(this);
|
|
150963
151031
|
});
|
|
150964
151032
|
await registerLazy(ToolNames.WEB_FETCH, async () => {
|
|
150965
|
-
const { WebFetchTool } = await import("./web-fetch-
|
|
151033
|
+
const { WebFetchTool } = await import("./web-fetch-L7RAPOJB.js");
|
|
150966
151034
|
return new WebFetchTool(this);
|
|
150967
151035
|
});
|
|
150968
151036
|
if (resolveInteractionMode(this) === "interactive" && !this.sdkMode && !this.getScreenReader() && !options2?.forSubAgent) {
|
|
@@ -150972,11 +151040,11 @@ var Config = class _Config {
|
|
|
150972
151040
|
});
|
|
150973
151041
|
}
|
|
150974
151042
|
if (this.webSearchSettings?.enabled) {
|
|
150975
|
-
const { evaluateWebSearchGate } = await import("./web-search-
|
|
151043
|
+
const { evaluateWebSearchGate } = await import("./web-search-IDOYUOWX.js");
|
|
150976
151044
|
const gate = evaluateWebSearchGate(this);
|
|
150977
151045
|
if (gate.ok) {
|
|
150978
151046
|
await registerLazy(ToolNames.WEB_SEARCH, async () => {
|
|
150979
|
-
const { WebSearchTool } = await import("./web-search-
|
|
151047
|
+
const { WebSearchTool } = await import("./web-search-IDOYUOWX.js");
|
|
150980
151048
|
return new WebSearchTool(this);
|
|
150981
151049
|
});
|
|
150982
151050
|
} else if (!this.webSearchNoticeEmitted && !options2?.forSubAgent) {
|
|
@@ -150993,7 +151061,7 @@ var Config = class _Config {
|
|
|
150993
151061
|
}
|
|
150994
151062
|
if (this.isRecordArtifactEnabled()) {
|
|
150995
151063
|
await registerLazy(ToolNames.RECORD_ARTIFACT, async () => {
|
|
150996
|
-
const { RecordArtifactTool } = await import("./record-artifact-
|
|
151064
|
+
const { RecordArtifactTool } = await import("./record-artifact-E6AWQU2Z.js");
|
|
150997
151065
|
return new RecordArtifactTool();
|
|
150998
151066
|
});
|
|
150999
151067
|
}
|
|
@@ -151028,7 +151096,7 @@ var Config = class _Config {
|
|
|
151028
151096
|
});
|
|
151029
151097
|
if (this.isAgentTeamEnabled()) {
|
|
151030
151098
|
await registerLazy(ToolNames.TEAM_CREATE, async () => {
|
|
151031
|
-
const { TeamCreateTool } = await import("./team-create-
|
|
151099
|
+
const { TeamCreateTool } = await import("./team-create-BCSMDK4Z.js");
|
|
151032
151100
|
return new TeamCreateTool(this);
|
|
151033
151101
|
});
|
|
151034
151102
|
await registerLazy(ToolNames.TEAM_DELETE, async () => {
|
|
@@ -151036,7 +151104,7 @@ var Config = class _Config {
|
|
|
151036
151104
|
return new TeamDeleteTool(this);
|
|
151037
151105
|
});
|
|
151038
151106
|
await registerLazy(ToolNames.TEAM_PLAN_APPROVAL, async () => {
|
|
151039
|
-
const { TeamPlanApprovalTool } = await import("./team-plan-approval-
|
|
151107
|
+
const { TeamPlanApprovalTool } = await import("./team-plan-approval-B5YRLJFV.js");
|
|
151040
151108
|
return new TeamPlanApprovalTool(this);
|
|
151041
151109
|
});
|
|
151042
151110
|
await registerLazy(ToolNames.TASK_CREATE, async () => {
|
|
@@ -151054,16 +151122,16 @@ var Config = class _Config {
|
|
|
151054
151122
|
}
|
|
151055
151123
|
if (this.isWorkflowsEnabled()) {
|
|
151056
151124
|
await registerLazy(ToolNames.WORKFLOW, async () => {
|
|
151057
|
-
const { WorkflowTool } = await import("./workflow-
|
|
151125
|
+
const { WorkflowTool } = await import("./workflow-HXURUJB5.js");
|
|
151058
151126
|
return new WorkflowTool(this);
|
|
151059
151127
|
});
|
|
151060
151128
|
}
|
|
151061
151129
|
if (this.isComputerUseEnabled()) {
|
|
151062
|
-
const { registerComputerUseTools } = await import("./computer-use-
|
|
151130
|
+
const { registerComputerUseTools } = await import("./computer-use-GTOP2CVH.js");
|
|
151063
151131
|
await registerComputerUseTools(registerLazy, this);
|
|
151064
151132
|
}
|
|
151065
151133
|
await registerLazy(ToolNames.MONITOR, async () => {
|
|
151066
|
-
const { MonitorTool } = await import("./monitor-
|
|
151134
|
+
const { MonitorTool } = await import("./monitor-QHHJIKGL.js");
|
|
151067
151135
|
return new MonitorTool(this);
|
|
151068
151136
|
});
|
|
151069
151137
|
if (this.pendingMcpBudgetCallback) {
|