@qwen-code/qwen-code 0.19.9 → 0.19.10-nightly.20260716.506ce0a1a
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundled/qc-helper/docs/configuration/settings.md +14 -6
- package/bundled/qc-helper/docs/features/approval-mode.md +2 -2
- package/bundled/qc-helper/docs/features/channels/dingtalk.md +33 -0
- package/bundled/qc-helper/docs/features/channels/overview.md +64 -20
- package/bundled/qc-helper/docs/features/channels/wecom.md +8 -7
- package/bundled/qc-helper/docs/features/code-review.md +88 -44
- package/bundled/qc-helper/docs/features/commands.md +6 -6
- package/bundled/qc-helper/docs/features/hooks.md +29 -0
- package/bundled/qc-helper/docs/features/sandbox.md +2 -0
- package/bundled/qc-helper/docs/features/sub-agents.md +21 -0
- package/bundled/qc-helper/docs/qwen-serve.md +49 -20
- package/bundled/qc-helper/docs/reference/keyboard-shortcuts.md +1 -1
- package/bundled/review/DESIGN.md +219 -33
- package/bundled/review/SKILL.md +429 -382
- package/chunks/{MaxSizedBox-6HYJ3ZPJ.js → MaxSizedBox-WOC3YDWA.js} +31 -32
- package/chunks/{StandaloneSessionPicker-WS4GXYOG.js → StandaloneSessionPicker-H5HZCAFD.js} +49 -48
- package/chunks/{acpAgent-5FWSOZL5.js → acpAgent-55YDJDNM.js} +922 -550
- package/chunks/{agent-HOLHB3RT.js → agent-H6VE5W3L.js} +26 -27
- package/chunks/{agent-headless-SXL6H56A.js → agent-headless-T4XJOCRU.js} +26 -27
- package/chunks/{anthropicContentGenerator-L73TO3DB.js → anthropicContentGenerator-HBRXJSP4.js} +78 -16
- package/chunks/{artifact-tool-U7IRTLIV.js → artifact-tool-MIZLXBLF.js} +2 -2
- package/chunks/{askUserQuestion-2DLUUZZG.js → askUserQuestion-XMJVPNWM.js} +2 -2
- package/chunks/{bridge-BCJQ7BBB.js → bridge-FTB6ZP3R.js} +31 -34
- package/chunks/{ca-UJ6HC4H2.js → ca-CODEN7TD.js} +9 -1
- package/chunks/channel-worker-group-K7QKH6IG.js +13 -0
- package/chunks/channel-worker-manager-CUDPU4CN.js +418 -0
- package/chunks/channel-worker-supervisor-4XTO2ZD3.js +20 -0
- package/chunks/{chunk-LXNEJD34.js → chunk-2FO5GFKZ.js} +1 -1
- package/chunks/{chunk-VA4KQY6V.js → chunk-2JNR4VP2.js} +3 -3
- package/chunks/{chunk-L36P3NBD.js → chunk-2W3OOD4W.js} +2 -0
- package/chunks/{chunk-7R3CZA3Q.js → chunk-2Z5UX4KI.js} +1 -1
- package/chunks/{chunk-CUMMSHH6.js → chunk-3DWIFU7L.js} +1 -1
- package/chunks/chunk-3MX7D6QN.js +516 -0
- package/chunks/{chunk-SJHDYNHF.js → chunk-4BJVSIS3.js} +3 -3
- package/chunks/{chunk-TO6QE22P.js → chunk-5CNYZ7TN.js} +26 -22
- package/chunks/{chunk-N3EMS75V.js → chunk-5DEJ4T6C.js} +1333 -1232
- package/chunks/chunk-5HBA2Z7V.js +28 -0
- package/chunks/{chunk-ZJE7NSL3.js → chunk-5M6IDOMF.js} +34 -97
- package/chunks/{chunk-SCGXUJBT.js → chunk-6LI3L22E.js} +3 -3
- package/chunks/{chunk-K434OPES.js → chunk-6WPJRYLZ.js} +3 -3
- package/chunks/{chunk-YAUFFXDS.js → chunk-7GM2RWCR.js} +12 -11
- package/chunks/{chunk-OQ4DRIOA.js → chunk-7HWE2W74.js} +2 -2
- package/chunks/{chunk-J4TSQ5EQ.js → chunk-7NFB7LBQ.js} +8 -1
- package/chunks/{chunk-MC23XKFE.js → chunk-A2HWMJVO.js} +37 -3
- package/chunks/{chunk-3G7CIHVV.js → chunk-ABNYOMDG.js} +4 -4
- package/chunks/{chunk-3AHXV67U.js → chunk-AGZLXLBY.js} +1 -1
- package/chunks/{chunk-RDJSGHZE.js → chunk-ALGGS7UH.js} +1 -38
- package/chunks/{chunk-Q4YQW46J.js → chunk-AMRZVQUY.js} +43 -40
- package/chunks/{chunk-W3JHSWRP.js → chunk-AN6C2U46.js} +4 -4
- package/chunks/{chunk-GWHYEOV2.js → chunk-ARKANCNX.js} +2 -1
- package/chunks/{chunk-5SFOMFG4.js → chunk-AVEOWVOM.js} +36 -2
- package/chunks/{chunk-34MW4KTI.js → chunk-BA5JGE5F.js} +2 -2
- package/chunks/{chunk-5HOMWMCL.js → chunk-BSJAQUFD.js} +5492 -1336
- package/chunks/{chunk-L6P4KPHR.js → chunk-BWJKL5DB.js} +58 -38
- package/chunks/{chunk-PVZM22CK.js → chunk-C32JFRGV.js} +5 -5
- package/chunks/{chunk-AKIVHSJR.js → chunk-CZIHPO7L.js} +163 -782
- package/chunks/chunk-DL7RCO6V.js +493 -0
- package/chunks/{chunk-KKNMOEZH.js → chunk-E2UVIFI2.js} +185 -398
- package/chunks/{chunk-5VXNZWGF.js → chunk-ENUQSKEY.js} +1 -1
- package/chunks/{chunk-PDZ7MBDG.js → chunk-EWILX3BM.js} +27 -6
- package/chunks/{chunk-BMGVRZN4.js → chunk-EZWX232B.js} +1 -1
- package/chunks/{chunk-4GORAUCN.js → chunk-F333XEAU.js} +1 -1
- package/chunks/{chunk-YLV3XXFB.js → chunk-FBU7WRZI.js} +17 -1
- package/chunks/chunk-FEOZBUMT.js +77 -0
- package/chunks/{chunk-5U27BZ72.js → chunk-FKEGVMPX.js} +269 -83
- package/chunks/chunk-FNX3LGAK.js +34 -0
- package/chunks/{chunk-LK7KUE55.js → chunk-FSA7ERJ2.js} +1 -1
- package/chunks/{chunk-PODM4SZ4.js → chunk-G3BIBPI7.js} +5 -5
- package/chunks/{chunk-A3XKDTSH.js → chunk-GA65O2TB.js} +4 -4
- package/chunks/{chunk-3BTRNWWD.js → chunk-GOXKNSDZ.js} +1 -64
- package/chunks/{channel-worker-supervisor-WSOAAYUO.js → chunk-GXGIM7QP.js} +67 -35
- package/chunks/{chunk-6PESIEKJ.js → chunk-GXUWGPYX.js} +68 -6
- package/chunks/chunk-GYTKQYDB.js +23 -0
- package/chunks/{chunk-GZRTYZ2R.js → chunk-H3XMJV7T.js} +218 -1
- package/chunks/{chunk-WQUQVGTF.js → chunk-HGRXW4HQ.js} +467 -106
- package/chunks/{chunk-YVEDCAUE.js → chunk-HGT6JR3U.js} +19 -0
- package/chunks/{chunk-ECNYL4AA.js → chunk-HUEWOHKV.js} +1 -1
- package/chunks/chunk-IDS7MSUP.js +74 -0
- package/chunks/{chunk-KHUQZZJ6.js → chunk-IHDRJLLR.js} +382 -36
- package/chunks/{chunk-CLFKOZEK.js → chunk-J4SEAF4X.js} +114 -4
- package/chunks/{chunk-B5ORX3FG.js → chunk-JGUT3LWZ.js} +6 -1
- package/chunks/{chunk-P67PFTUT.js → chunk-KEYEYCHZ.js} +4 -4
- package/chunks/{chunk-ORBGV7NJ.js → chunk-KKRTYONM.js} +6 -4
- package/chunks/{chunk-7PU4FYLG.js → chunk-KOXFAG6P.js} +4 -18
- package/chunks/{chunk-EGYZ275M.js → chunk-KWLVWNF5.js} +55 -7
- package/chunks/{chunk-XLA62MYB.js → chunk-KXECVZPD.js} +2 -2
- package/chunks/{chunk-IAVB3HM3.js → chunk-L4Y55KIS.js} +33 -1
- package/chunks/{chunk-4QLQE5WJ.js → chunk-L5U3ELZX.js} +1 -1
- package/chunks/{chunk-4ZVWQHEQ.js → chunk-LQIDP6K5.js} +1 -1
- package/chunks/{chunk-DC5Z3DU6.js → chunk-LXLTBIDP.js} +43 -6
- package/chunks/chunk-LXXMOYPL.js +22 -0
- package/chunks/{chunk-Q6I5QHMH.js → chunk-MFNKBXYH.js} +1 -1
- package/chunks/chunk-MR3PXB6E.js +48 -0
- package/chunks/{chunk-JZETEN3Z.js → chunk-N45S36AH.js} +3 -3
- package/chunks/{chunk-GWLSNBG4.js → chunk-NA3IG6XG.js} +748 -27
- package/chunks/{chunk-D5SKC4YG.js → chunk-O3M25JXE.js} +213 -29
- package/chunks/{chunk-EAXLGSFP.js → chunk-O6XGHDS5.js} +11 -11
- package/chunks/{chunk-WL4L7EZH.js → chunk-OA4JVLSA.js} +27 -1
- package/chunks/{chunk-X4NKFGFJ.js → chunk-OJAMDVF5.js} +0 -15
- package/chunks/{chunk-BZIFY5TF.js → chunk-OKAIGAYW.js} +3 -3
- package/chunks/{chunk-CNEIYWSA.js → chunk-OVIV236K.js} +5 -5
- package/chunks/{chunk-3SJSQXNS.js → chunk-PEJWA3QQ.js} +12 -8
- package/chunks/{chunk-E2IY465S.js → chunk-PWNOAWXB.js} +59 -12
- package/chunks/{chunk-B4G2WOFA.js → chunk-Q5MKHNIR.js} +28 -5
- package/chunks/{chunk-MXL5UP4X.js → chunk-Q6TUALBE.js} +1 -1
- package/chunks/{chunk-QYMQSECS.js → chunk-QAW7PIHT.js} +2 -2
- package/chunks/{chunk-HKMAENAO.js → chunk-QDTGDM2T.js} +14 -9
- package/chunks/{chunk-LUODI7WD.js → chunk-RCEEXIOO.js} +6 -4
- package/chunks/{chunk-W2UIXQDL.js → chunk-RTV5TUYB.js} +12 -4
- package/chunks/chunk-RW7DUKFO.js +91 -0
- package/chunks/{chunk-NVYTCB5Z.js → chunk-SA6QVLWI.js} +17325 -16259
- package/chunks/chunk-SJSI7PXU.js +59 -0
- package/chunks/{chunk-HVY356M2.js → chunk-SMGBWLNU.js} +3 -3
- package/chunks/{chunk-CEA3E3JB.js → chunk-SPJQO2CE.js} +2 -2
- package/chunks/{chunk-CC2ITGCF.js → chunk-STZQCNN3.js} +49 -6
- package/chunks/{chunk-HPDUL5MF.js → chunk-T2ZDAER2.js} +1 -1
- package/chunks/{chunk-XUOOWUZS.js → chunk-T3TQ3ACP.js} +1 -1
- package/chunks/{chunk-4C5BQ2D2.js → chunk-TIKDHS6V.js} +100 -17
- package/chunks/chunk-TV6K2FB4.js +224 -0
- package/chunks/{chunk-5XUCZNSY.js → chunk-TYLOFD2U.js} +1 -1
- package/chunks/{chunk-D2GFWEXB.js → chunk-UCUUH2JV.js} +6 -6
- package/chunks/{chunk-BAPGSC7U.js → chunk-UZP7K33Y.js} +23 -9
- package/chunks/{chunk-77XJ3SWN.js → chunk-VDAR6UO2.js} +8 -6
- package/chunks/{chunk-XYQSMABS.js → chunk-VKLVGA2D.js} +4 -4
- package/chunks/{chunk-JSG7ZSBC.js → chunk-VRR65QYW.js} +251 -3
- package/chunks/{chunk-U2NNEY4R.js → chunk-VT5AWJN4.js} +1 -1
- package/chunks/{chunk-ZLXQN2QS.js → chunk-WIEO4CWB.js} +1 -1
- package/chunks/{chunk-X6TJ3YZV.js → chunk-WKEO3GLZ.js} +160 -60
- package/chunks/{chunk-J3JA76CF.js → chunk-WTNZ6DXB.js} +1 -1
- package/chunks/{chunk-VWPVHAMO.js → chunk-XIWQ5QST.js} +8 -1
- package/chunks/{chunk-TDEXZKMT.js → chunk-Y66VOBRP.js} +2 -2
- package/chunks/{chunk-3VAGG5T5.js → chunk-YYBZUIPL.js} +1015 -100
- package/chunks/{chunk-CCDMCZPP.js → chunk-YZ3SBNP7.js} +1 -1
- package/chunks/{chunk-ATAKVRIF.js → chunk-Z3XA2TNG.js} +7 -7
- package/chunks/{chunk-EMDMPBJ4.js → chunk-Z7SVC7PJ.js} +10 -3
- package/chunks/{chunk-AURZZYMD.js → chunk-ZIVSSTUG.js} +4 -4
- package/chunks/{chunk-UOZWKTQG.js → chunk-ZPAHLFZU.js} +2 -2
- package/chunks/{chunk-34Z3U5RQ.js → chunk-ZQIYGQCG.js} +765 -168
- package/chunks/{computer-use-HM37RX6A.js → computer-use-NADT7ULB.js} +26 -27
- package/chunks/{config-utils-NV2SVGPB.js → config-utils-IQQT3GCI.js} +3 -2
- package/chunks/{contextCommand-OF5SFGH2.js → contextCommand-U7NEJYJ7.js} +28 -29
- package/chunks/{create-sub-session-INX7TXJI.js → create-sub-session-EAB2U5XW.js} +2 -2
- package/chunks/{create-sub-session-KPRT7ECJ.js → create-sub-session-SUN33INC.js} +26 -27
- package/chunks/{cron-create-AMBKGZX6.js → cron-create-GMVKSXZT.js} +4 -4
- package/chunks/{cron-delete-LRU4OJYG.js → cron-delete-VDZKUAVK.js} +4 -4
- package/chunks/{cron-list-WVP2JXER.js → cron-list-UG7C7RAR.js} +4 -4
- package/chunks/{daemon-ARHTSTXP.js → daemon-SJXEKP3H.js} +773 -126
- package/chunks/daemon-status-provider-WIIYLGZJ.js +74 -0
- package/chunks/{de-EBJN3OVN.js → de-NOXPCSYN.js} +9 -1
- package/chunks/{dist-XKU3ABM5.js → dist-4WCQEZIN.js} +4 -51
- package/chunks/{dist-QYCAEZIT.js → dist-DOPL5LSQ.js} +5 -1
- package/chunks/{dist-WKPOYU7O.js → dist-GXJVCOS7.js} +1 -1
- package/chunks/{dist-R7LN5AZE.js → dist-PX2ERZ6I.js} +2 -2
- package/chunks/{dist-PNVLTKTL.js → dist-V2YVLYOW.js} +215 -33
- package/chunks/{dist-VHV4EVHG.js → dist-VYWUKURL.js} +1 -1
- package/chunks/{earlyInputCapture-3VTHRC4C.js → earlyInputCapture-6FRM6UMU.js} +27 -28
- package/chunks/{edit-VNI4NJ73.js → edit-7GOIQTCZ.js} +27 -28
- package/chunks/{en-5A6LA7RK.js → en-JFVULHTB.js} +11 -1
- package/chunks/{enter-worktree-IYYBKPZT.js → enter-worktree-476E6WIK.js} +26 -27
- package/chunks/{enterPlanMode-GMC5FD5A.js → enterPlanMode-IRJM6W3C.js} +42 -28
- package/chunks/{environment-5HSSRMJ7.js → environment-ROMULS2X.js} +30 -30
- package/chunks/{errors-HMFCJJ7P.js → errors-OUIWPUDY.js} +28 -29
- package/chunks/{exit-worktree-6BHCMP5G.js → exit-worktree-PPSFK753.js} +26 -27
- package/chunks/{exitPlanMode-CJW7G74W.js → exitPlanMode-YKQMD4D7.js} +26 -27
- package/chunks/{fast-path-FRDMDVHG.js → fast-path-CNK2HHKH.js} +3 -3
- package/chunks/{fast-path-settings-5QZE64HR.js → fast-path-settings-DAOVFADC.js} +6 -4
- package/chunks/{fr-YXRABLYZ.js → fr-HVFNU42H.js} +9 -1
- package/chunks/{gemini-QYSEGHAX.js → gemini-WQNFT6TR.js} +216 -90
- package/chunks/{geminiContentGenerator-J7YNZDYP.js → geminiContentGenerator-4QJH2JDP.js} +4 -4
- package/chunks/{glob-BRCSGFOT.js → glob-36TVLBWW.js} +28 -28
- package/chunks/{grep-EE2DUOSY.js → grep-QTYLNO2M.js} +26 -27
- package/chunks/{handleAutoUpdate-5NWTLR67.js → handleAutoUpdate-36FQFODK.js} +30 -31
- package/chunks/{i18n-BASPENNQ.js → i18n-JUGYPVSP.js} +27 -28
- package/chunks/initializer-OBBJUS25.js +72 -0
- package/chunks/{installationInfo-W6V4DT7W.js → installationInfo-MCKTPX64.js} +27 -28
- package/chunks/{ja-7VQOANVG.js → ja-PY5AF544.js} +10 -2
- package/chunks/{keychain-token-storage-VKUBNCP4.js → keychain-token-storage-AU22CQI6.js} +2 -2
- package/chunks/list-VW5QY4VJ.js +75 -0
- package/chunks/loadedSettingsAdapter-IELOOXG6.js +69 -0
- package/chunks/{loop-wakeup-WX7BLWWP.js → loop-wakeup-QXWZSCYM.js} +5 -5
- package/chunks/{ls-ZB2BDP6T.js → ls-2OUTG3IZ.js} +4 -4
- package/chunks/{lsp-V5DN4YUJ.js → lsp-4VMNXZW6.js} +2 -2
- package/chunks/mcp-Q3EC37ZS.js +69 -0
- package/chunks/{monitor-X5Z3H4FY.js → monitor-DCZ27AFR.js} +26 -27
- package/chunks/nonInteractiveCli-KXD7PFO4.js +128 -0
- package/chunks/{notebook-edit-TRM2QIJK.js → notebook-edit-YU4XF5LI.js} +27 -28
- package/chunks/{openaiContentGenerator-AAYONPMF.js → openaiContentGenerator-KL5WER2D.js} +13 -13
- package/chunks/{pidfile-D4I4FTVA.js → pidfile-WBOD7EJV.js} +27 -28
- package/chunks/processUtils-AOV4R34M.js +29 -0
- package/chunks/{pt-2C6YCSHL.js → pt-A3PRQXMU.js} +9 -1
- package/chunks/{qwenContentGenerator-K3HZ2H76.js → qwenContentGenerator-YIGBHYE3.js} +28 -29
- package/chunks/{qwenOAuth2-PJQ27GSO.js → qwenOAuth2-LEYOU7RU.js} +5 -5
- package/chunks/{read-file-7SZSIZOL.js → read-file-WVL4Y76X.js} +9 -9
- package/chunks/{read-mcp-resource-SM5DA4RG.js → read-mcp-resource-JUFHCKSC.js} +2 -2
- package/chunks/{record-artifact-4XKZX3UW.js → record-artifact-DWSMBXYY.js} +2 -2
- package/chunks/{ripGrep-YNPFVCZP.js → ripGrep-6GSWJERP.js} +26 -27
- package/chunks/{ru-6BBHVZZV.js → ru-IBCWUTOC.js} +9 -1
- package/chunks/{run-qwen-serve-DMWV5N6L.js → run-qwen-serve-QYUQMEDT.js} +1233 -371
- package/chunks/{runtime-57WWRVHN.js → runtime-K2YZCNB3.js} +42 -38
- package/chunks/{scheduler-YBLGWSIL.js → scheduler-EQCSN7QV.js} +26 -27
- package/chunks/{send-message-F36YD6KQ.js → send-message-JZ752NWD.js} +3 -3
- package/chunks/{serve-R63NK3CV.js → serve-DX5UGZD4.js} +36 -35
- package/chunks/{server-Z22GCAXP.js → server-T6HJH3DR.js} +5869 -1398
- package/chunks/{session-HKAAI7BN.js → session-SNU6ACY6.js} +299 -100
- package/chunks/{settings-3EYN66GK.js → settings-AKHZZNEL.js} +34 -33
- package/chunks/{shell-6YXINTWJ.js → shell-EY74IEZK.js} +28 -27
- package/chunks/{skill-OO57P4X6.js → skill-DPU62O3H.js} +11 -11
- package/chunks/{spawnChannel-JD7G4VU6.js → spawnChannel-RQZRWJ2V.js} +28 -30
- package/chunks/{src-G5UPLZSZ.js → src-7FITDSVC.js} +164 -52
- package/chunks/{standalone-update-OB7F4JPZ.js → standalone-update-XO3RK6DO.js} +28 -29
- package/chunks/{startInteractiveUI-73EGLIIH.js → startInteractiveUI-DVWZRHYQ.js} +728 -382
- package/chunks/{syntheticOutput-34H7LGA7.js → syntheticOutput-LELY6HAI.js} +3 -3
- package/chunks/{task-create-FRGOEIKY.js → task-create-QY3BIMNM.js} +8 -7
- package/chunks/{task-list-OW766BXZ.js → task-list-D2U47WBJ.js} +6 -5
- package/chunks/{task-stop-SIR5SNBN.js → task-stop-N6E5IYLH.js} +2 -2
- package/chunks/{task-update-YRA532MT.js → task-update-HJCQILLB.js} +8 -7
- package/chunks/{team-create-PECAAPXK.js → team-create-FOSRT62K.js} +26 -27
- package/chunks/{team-delete-6OSECUZC.js → team-delete-RCWYDRF4.js} +6 -5
- package/chunks/{team-plan-approval-L6F434RY.js → team-plan-approval-6VUDV27J.js} +26 -27
- package/chunks/{theme-manager-ZG4RY6GU.js → theme-manager-6UT6IO5T.js} +27 -28
- package/chunks/{todoWrite-YDMFEV4G.js → todoWrite-FKCGATPJ.js} +4 -4
- package/chunks/{tool-search-THVIWAPB.js → tool-search-ASSFMMN5.js} +10 -10
- package/chunks/{total-session-admission-JOKNRIIA.js → total-session-admission-YYWUO23H.js} +32 -35
- package/chunks/tree-sitter-YJVE2ZUK.js +2980 -0
- package/chunks/{trustedFolders-EOGT3UVS.js → trustedFolders-4BWV2IBK.js} +29 -29
- package/chunks/types-ML3TRJQ5.js +16 -0
- package/chunks/update-relaunch-74DLGH73.js +87 -0
- package/chunks/{updateCheck-2KYEYVSB.js → updateCheck-CRFCGFO5.js} +31 -30
- package/chunks/{validateNonInterActiveAuth-EN6ZQSR2.js → validateNonInterActiveAuth-BTTEPBGQ.js} +76 -73
- package/chunks/{version-3UEA6ZIR.js → version-Y5JE5Q63.js} +1 -1
- package/chunks/{web-fetch-PAAEQKBW.js → web-fetch-CFCWTCAP.js} +5 -6
- package/chunks/{workflow-QCCCMYP3.js → workflow-6WC7VPQN.js} +27 -28
- package/chunks/workspace-providers-status-RVG2C5ZS.js +72 -0
- package/chunks/workspace-registration-store-SLEU3D3X.js +27 -0
- package/chunks/{workspace-registry-24QFLQYH.js → workspace-registry-QMWGVOTF.js} +32 -35
- package/chunks/workspace-service-G572JSEU.js +84 -0
- package/chunks/workspace-skills-status-VSSMSMNK.js +71 -0
- package/chunks/{write-file-I3MUDRIE.js → write-file-5XVDRORP.js} +27 -28
- package/chunks/{zh-RQE7I22T.js → zh-PAUNIMHQ.js} +12 -2
- package/chunks/{zh-TW-TBPQGHKH.js → zh-TW-GNEUIUFF.js} +12 -2
- package/cli-entry.js +92 -8
- package/cli.js +11 -11
- package/locales/ca.js +16 -0
- package/locales/de.js +16 -0
- package/locales/en.js +19 -0
- package/locales/fr.js +16 -0
- package/locales/ja.js +17 -1
- package/locales/pt.js +16 -0
- package/locales/ru.js +16 -0
- package/locales/zh-TW.js +20 -1
- package/locales/zh.js +20 -1
- package/package.json +3 -3
- package/web-shell/assets/{arc-C15hqnJe.js → arc-vx1tRwnX.js} +1 -1
- package/web-shell/assets/{architectureDiagram-3BPJPVTR-B-At37J_.js → architectureDiagram-3BPJPVTR-DBi6iUA1.js} +1 -1
- package/web-shell/assets/{blockDiagram-GPEHLZMM-B51wjcU7.js → blockDiagram-GPEHLZMM-Ga9JJ4Ak.js} +1 -1
- package/web-shell/assets/{c4Diagram-AAUBKEIU-xBK7BAwN.js → c4Diagram-AAUBKEIU-D8Vi5FYw.js} +1 -1
- package/web-shell/assets/channel-B29zQDTL.js +1 -0
- package/web-shell/assets/{chunk-2J33WTMH-xKmLg7Yr.js → chunk-2J33WTMH-CSV6yQpU.js} +1 -1
- package/web-shell/assets/{chunk-4BX2VUAB-BfkdKZCM.js → chunk-4BX2VUAB-toYlppdI.js} +1 -1
- package/web-shell/assets/{chunk-55IACEB6-DT713sZf.js → chunk-55IACEB6-DbjzuyAr.js} +1 -1
- package/web-shell/assets/{chunk-727SXJPM-CYEeAamv.js → chunk-727SXJPM-IkkSjSkk.js} +1 -1
- package/web-shell/assets/{chunk-AQP2D5EJ-DBN-5CFd.js → chunk-AQP2D5EJ-D5wUL6Zm.js} +1 -1
- package/web-shell/assets/{chunk-FMBD7UC4-CGZKk4PH.js → chunk-FMBD7UC4-C3o2DXG0.js} +1 -1
- package/web-shell/assets/{chunk-ND2GUHAM-qQbC2O-y.js → chunk-ND2GUHAM-CutIi14T.js} +1 -1
- package/web-shell/assets/{chunk-QZHKN3VN-B3zeXwsX.js → chunk-QZHKN3VN-DZ0NRHH-.js} +1 -1
- package/web-shell/assets/classDiagram-4FO5ZUOK-BNGI2SvC.js +1 -0
- package/web-shell/assets/classDiagram-v2-Q7XG4LA2-BNGI2SvC.js +1 -0
- package/web-shell/assets/{cose-bilkent-S5V4N54A-BKsl1Wvy.js → cose-bilkent-S5V4N54A-B3Dl88UJ.js} +1 -1
- package/web-shell/assets/{dagre-BM42HDAG-CuuuLiBK.js → dagre-BM42HDAG-DfTxfF6-.js} +1 -1
- package/web-shell/assets/{diagram-2AECGRRQ-CG4_eKiV.js → diagram-2AECGRRQ-CJyH98yO.js} +1 -1
- package/web-shell/assets/{diagram-5GNKFQAL-DSFTmZB1.js → diagram-5GNKFQAL-EbOiJNmW.js} +1 -1
- package/web-shell/assets/{diagram-KO2AKTUF-BxwlEHn8.js → diagram-KO2AKTUF-AYNqpqqA.js} +1 -1
- package/web-shell/assets/{diagram-LMA3HP47-BUAg-jMG.js → diagram-LMA3HP47-BY5VPa4H.js} +1 -1
- package/web-shell/assets/{diagram-OG6HWLK6-BFM2jlO5.js → diagram-OG6HWLK6-BhMYAKlk.js} +1 -1
- package/web-shell/assets/{erDiagram-TEJ5UH35-CerbFPa2.js → erDiagram-TEJ5UH35-Bp8S_F9l.js} +1 -1
- package/web-shell/assets/{flowDiagram-I6XJVG4X-BNeZz5Zz.js → flowDiagram-I6XJVG4X-az3TE9PU.js} +1 -1
- package/web-shell/assets/{ganttDiagram-6RSMTGT7-CTOogLaM.js → ganttDiagram-6RSMTGT7-CfkAEpCe.js} +3 -3
- package/web-shell/assets/{gitGraphDiagram-PVQCEYII-yxSFkXPj.js → gitGraphDiagram-PVQCEYII-D1QmjMCy.js} +1 -1
- package/web-shell/assets/index-C8sDwQUv.js +1130 -0
- package/web-shell/assets/index-CaBoc5bb.js +3 -0
- package/web-shell/assets/index-Dpg5Wymg.css +5 -0
- package/web-shell/assets/{infoDiagram-5YYISTIA-DYdAUevm.js → infoDiagram-5YYISTIA-D3ompLrG.js} +1 -1
- package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-CNuijZ90.js → ishikawaDiagram-YF4QCWOH-D3MRWp9I.js} +1 -1
- package/web-shell/assets/{journeyDiagram-JHISSGLW-BTyiuonf.js → journeyDiagram-JHISSGLW-DVkKCa44.js} +1 -1
- package/web-shell/assets/{kanban-definition-UN3LZRKU-DPJo0Uow.js → kanban-definition-UN3LZRKU-BLif81wF.js} +1 -1
- package/web-shell/assets/{linear-C8wKCbIC.js → linear-BDU96EGS.js} +1 -1
- package/web-shell/assets/{mermaid.core-BV5o7nW5.js → mermaid.core-B-CwC26B.js} +5 -5
- package/web-shell/assets/{mindmap-definition-RKZ34NQL-BtLcBmSt.js → mindmap-definition-RKZ34NQL-CS1WOJ4G.js} +1 -1
- package/web-shell/assets/{pieDiagram-4H26LBE5-C22J7A9Q.js → pieDiagram-4H26LBE5-BzgtNXVP.js} +1 -1
- package/web-shell/assets/{quadrantDiagram-W4KKPZXB-DSL10wiL.js → quadrantDiagram-W4KKPZXB-BRfGC8MA.js} +1 -1
- package/web-shell/assets/{requirementDiagram-4Y6WPE33-feqh0UpX.js → requirementDiagram-4Y6WPE33-CPBZkC7g.js} +1 -1
- package/web-shell/assets/{sankeyDiagram-5OEKKPKP-Z4OVaWaZ.js → sankeyDiagram-5OEKKPKP-nqNvinIk.js} +1 -1
- package/web-shell/assets/{sequenceDiagram-3UESZ5HK-DIluIcb1.js → sequenceDiagram-3UESZ5HK-CM_Wdjh3.js} +1 -1
- package/web-shell/assets/{stateDiagram-AJRCARHV-hlhnuoYH.js → stateDiagram-AJRCARHV-L0y-48VE.js} +1 -1
- package/web-shell/assets/stateDiagram-v2-BHNVJYJU-BX1DdF8s.js +1 -0
- package/web-shell/assets/{timeline-definition-PNZ67QCA-Dqf_CqgL.js → timeline-definition-PNZ67QCA-B_n5rb3A.js} +1 -1
- package/web-shell/assets/{vennDiagram-CIIHVFJN-DD2QhaTX.js → vennDiagram-CIIHVFJN-C9NmLV5e.js} +1 -1
- package/web-shell/assets/{wardley-L42UT6IY-B2uI85U_.js → wardley-L42UT6IY-CrefK9gt.js} +1 -1
- package/web-shell/assets/{wardleyDiagram-YWT4CUSO-U1aJX71g.js → wardleyDiagram-YWT4CUSO-BUccf-bC.js} +1 -1
- package/web-shell/assets/{xychartDiagram-2RQKCTM6-C0ODHUee.js → xychartDiagram-2RQKCTM6-DM6ef92l.js} +1 -1
- package/web-shell/index.html +2 -2
- package/chunks/chunk-524RQP4Q.js +0 -305
- package/chunks/chunk-CARU2RR2.js +0 -24
- package/chunks/chunk-CU3L64TP.js +0 -93
- package/chunks/chunk-OCPBI7J5.js +0 -18
- package/chunks/chunk-TEGEBB2I.js +0 -122
- package/chunks/chunk-VTU57BWZ.js +0 -30
- package/chunks/daemon-status-provider-B2UTZUJ2.js +0 -76
- package/chunks/initializer-UTQ7FB7G.js +0 -71
- package/chunks/list-DEICDL65.js +0 -74
- package/chunks/loadedSettingsAdapter-NOWEGDYJ.js +0 -68
- package/chunks/mcp-L5JXEEIA.js +0 -68
- package/chunks/nonInteractiveCli-LS2K4X6A.js +0 -124
- package/chunks/types-JNKGKUJT.js +0 -12
- package/chunks/workspace-providers-status-4KMGETOJ.js +0 -71
- package/chunks/workspace-service-RVLBMSMZ.js +0 -80
- package/chunks/workspace-skills-status-DS4ZVFTO.js +0 -70
- package/web-shell/assets/channel-CLiQD50f.js +0 -1
- package/web-shell/assets/classDiagram-4FO5ZUOK-D3sYqow5.js +0 -1
- package/web-shell/assets/classDiagram-v2-Q7XG4LA2-D3sYqow5.js +0 -1
- package/web-shell/assets/index-D5IWFVk1.css +0 -5
- package/web-shell/assets/index-KFJRDhX7.js +0 -783
- package/web-shell/assets/stateDiagram-v2-BHNVJYJU-BhQMwgpl.js +0 -1
|
@@ -1,14 +1,17 @@
|
|
|
1
1
|
// Force strict mode and setup for ESM
|
|
2
2
|
"use strict";
|
|
3
3
|
import {
|
|
4
|
+
InvalidStreamError,
|
|
4
5
|
OpenAIContentConverter,
|
|
6
|
+
ProtocolTagSanitizedEvent,
|
|
5
7
|
TaggedThinkingParser,
|
|
6
8
|
getRateLimitErrorDetails,
|
|
9
|
+
logProtocolTagSanitized,
|
|
7
10
|
openaiRequestCaptureContext
|
|
8
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-YYBZUIPL.js";
|
|
9
12
|
import {
|
|
10
13
|
RequestTokenizer
|
|
11
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-4BJVSIS3.js";
|
|
12
15
|
import {
|
|
13
16
|
DASHSCOPE_PROXY_BASE_URL,
|
|
14
17
|
DEFAULT_DASHSCOPE_BASE_URL,
|
|
@@ -16,17 +19,18 @@ import {
|
|
|
16
19
|
DEFAULT_STREAM_IDLE_TIMEOUT_MS,
|
|
17
20
|
MAX_STREAM_IDLE_TIMEOUT_MS,
|
|
18
21
|
QWEN_STREAM_IDLE_TIMEOUT_MS_ENV,
|
|
22
|
+
resolveRequestTimeout
|
|
23
|
+
} from "./chunk-FEOZBUMT.js";
|
|
24
|
+
import {
|
|
19
25
|
defaultOutputCeiling,
|
|
26
|
+
getToolCallPreparations,
|
|
20
27
|
hasExplicitOutputLimit,
|
|
21
28
|
parsePositiveIntegerEnvValue,
|
|
22
29
|
reconcileMaxTokens,
|
|
23
|
-
resolveRequestTimeout,
|
|
24
|
-
tokenLimit
|
|
25
|
-
} from "./chunk-524RQP4Q.js";
|
|
26
|
-
import {
|
|
27
30
|
runtimeDiagnostics,
|
|
28
|
-
safeJsonParse
|
|
29
|
-
|
|
31
|
+
safeJsonParse,
|
|
32
|
+
tokenLimit
|
|
33
|
+
} from "./chunk-VRR65QYW.js";
|
|
30
34
|
import {
|
|
31
35
|
GenerateContentResponse
|
|
32
36
|
} from "./chunk-4LD5APFL.js";
|
|
@@ -36,13 +40,13 @@ import {
|
|
|
36
40
|
import {
|
|
37
41
|
buildRuntimeFetchOptions,
|
|
38
42
|
redactProxyError
|
|
39
|
-
} from "./chunk-
|
|
43
|
+
} from "./chunk-LQIDP6K5.js";
|
|
40
44
|
import {
|
|
41
45
|
createDebugLogger,
|
|
42
46
|
getErrorStatus,
|
|
43
47
|
getErrorType,
|
|
44
48
|
isAbortError
|
|
45
|
-
} from "./chunk-
|
|
49
|
+
} from "./chunk-7NFB7LBQ.js";
|
|
46
50
|
import {
|
|
47
51
|
init_esbuild_shims
|
|
48
52
|
} from "./chunk-5O2XNYP6.js";
|
|
@@ -7788,10 +7792,15 @@ var StreamingToolCallParser = class {
|
|
|
7788
7792
|
escapes = /* @__PURE__ */ new Map();
|
|
7789
7793
|
/** Metadata for each tool call index */
|
|
7790
7794
|
toolCallMeta = /* @__PURE__ */ new Map();
|
|
7795
|
+
namelessToolCallIndices = /* @__PURE__ */ new Set();
|
|
7791
7796
|
/** Map from tool call ID to actual index used for storage */
|
|
7792
7797
|
idToIndexMap = /* @__PURE__ */ new Map();
|
|
7798
|
+
/** Remapped slots awaiting a stable ID from a later chunk. */
|
|
7799
|
+
pendingIndexRemaps = /* @__PURE__ */ new Map();
|
|
7793
7800
|
/** Counter for generating new indices when collisions occur */
|
|
7794
7801
|
nextAvailableIndex = 0;
|
|
7802
|
+
conflictingToolCallIdentity = false;
|
|
7803
|
+
invalidToolCallIndex = false;
|
|
7795
7804
|
/**
|
|
7796
7805
|
* Processes a new chunk of tool call data and attempts to parse complete JSON objects
|
|
7797
7806
|
*
|
|
@@ -7809,19 +7818,43 @@ var StreamingToolCallParser = class {
|
|
|
7809
7818
|
* @returns ToolCallParseResult with completion status, parsed value, and repair info
|
|
7810
7819
|
*/
|
|
7811
7820
|
addChunk(index, chunk, id, name) {
|
|
7821
|
+
const validName = name?.trim() || void 0;
|
|
7822
|
+
if (!Number.isSafeInteger(index) || index < 0) {
|
|
7823
|
+
this.conflictingToolCallIdentity = true;
|
|
7824
|
+
this.invalidToolCallIndex = true;
|
|
7825
|
+
return {
|
|
7826
|
+
complete: false,
|
|
7827
|
+
error: new Error(`Invalid tool call index: ${index}`)
|
|
7828
|
+
};
|
|
7829
|
+
}
|
|
7830
|
+
if (!id && !validName && !chunk.trim()) {
|
|
7831
|
+
const depth2 = this.depths.get(index) ?? 0;
|
|
7832
|
+
const inString2 = this.inStrings.get(index) ?? false;
|
|
7833
|
+
if (!this.buffers.has(index) || depth2 === 0 && !inString2) {
|
|
7834
|
+
return { complete: false };
|
|
7835
|
+
}
|
|
7836
|
+
}
|
|
7812
7837
|
let actualIndex = index;
|
|
7813
7838
|
const isKnownId = Boolean(id && this.idToIndexMap.has(id));
|
|
7839
|
+
const existingName = this.toolCallMeta.get(index)?.name;
|
|
7840
|
+
const isNameOnlyDelta = Boolean(
|
|
7841
|
+
validName && chunk.length === 0 && (!existingName || existingName === validName)
|
|
7842
|
+
);
|
|
7814
7843
|
if (id) {
|
|
7815
7844
|
if (this.idToIndexMap.has(id)) {
|
|
7816
7845
|
actualIndex = this.idToIndexMap.get(id);
|
|
7846
|
+
} else if (this.pendingIndexRemaps.has(index)) {
|
|
7847
|
+
actualIndex = this.pendingIndexRemaps.get(index);
|
|
7848
|
+
this.pendingIndexRemaps.delete(index);
|
|
7849
|
+
this.idToIndexMap.set(id, actualIndex);
|
|
7817
7850
|
} else {
|
|
7818
7851
|
if (this.buffers.has(index)) {
|
|
7819
7852
|
const existingBuffer = this.buffers.get(index);
|
|
7820
7853
|
const existingDepth = this.depths.get(index);
|
|
7821
7854
|
const existingMeta = this.toolCallMeta.get(index);
|
|
7822
|
-
if (existingMeta?.
|
|
7823
|
-
let existingComplete =
|
|
7824
|
-
if (existingBuffer.trim()) {
|
|
7855
|
+
if (existingMeta?.id && existingMeta.id !== id) {
|
|
7856
|
+
let existingComplete = existingDepth === 0;
|
|
7857
|
+
if (existingComplete && existingBuffer.trim()) {
|
|
7825
7858
|
try {
|
|
7826
7859
|
JSON.parse(existingBuffer);
|
|
7827
7860
|
} catch {
|
|
@@ -7829,14 +7862,31 @@ var StreamingToolCallParser = class {
|
|
|
7829
7862
|
}
|
|
7830
7863
|
}
|
|
7831
7864
|
if (existingComplete) {
|
|
7832
|
-
actualIndex =
|
|
7865
|
+
actualIndex = 0;
|
|
7866
|
+
while (this.buffers.has(actualIndex)) actualIndex += 1;
|
|
7867
|
+
if (!existingMeta.name) {
|
|
7868
|
+
this.conflictingToolCallIdentity = true;
|
|
7869
|
+
}
|
|
7870
|
+
} else {
|
|
7871
|
+
this.conflictingToolCallIdentity = true;
|
|
7833
7872
|
}
|
|
7834
7873
|
}
|
|
7835
7874
|
}
|
|
7836
7875
|
this.idToIndexMap.set(id, actualIndex);
|
|
7837
7876
|
}
|
|
7838
|
-
} else {
|
|
7839
|
-
if (this.
|
|
7877
|
+
} else if (!isNameOnlyDelta) {
|
|
7878
|
+
if (this.pendingIndexRemaps.has(index)) {
|
|
7879
|
+
actualIndex = this.pendingIndexRemaps.get(index);
|
|
7880
|
+
const existingBuffer = this.buffers.get(actualIndex);
|
|
7881
|
+
const existingDepth = this.depths.get(actualIndex);
|
|
7882
|
+
if (existingDepth === 0 && existingBuffer.trim()) {
|
|
7883
|
+
try {
|
|
7884
|
+
JSON.parse(existingBuffer);
|
|
7885
|
+
actualIndex = this.findMostRecentIncompleteIndex();
|
|
7886
|
+
} catch {
|
|
7887
|
+
}
|
|
7888
|
+
}
|
|
7889
|
+
} else if (this.buffers.has(index)) {
|
|
7840
7890
|
const existingBuffer = this.buffers.get(index);
|
|
7841
7891
|
const existingDepth = this.depths.get(index);
|
|
7842
7892
|
if (existingDepth > 0 || !existingBuffer.trim()) {
|
|
@@ -7860,6 +7910,20 @@ var StreamingToolCallParser = class {
|
|
|
7860
7910
|
}
|
|
7861
7911
|
const currentBuffer = this.buffers.get(actualIndex);
|
|
7862
7912
|
const currentDepth = this.depths.get(actualIndex);
|
|
7913
|
+
const meta = this.toolCallMeta.get(actualIndex);
|
|
7914
|
+
if (chunk.length === 0 && (id || validName)) {
|
|
7915
|
+
if (id) meta.id = id;
|
|
7916
|
+
if (validName && !meta.name) meta.name = validName;
|
|
7917
|
+
if (!meta.name && meta.id) {
|
|
7918
|
+
this.namelessToolCallIndices.add(actualIndex);
|
|
7919
|
+
} else {
|
|
7920
|
+
this.namelessToolCallIndices.delete(actualIndex);
|
|
7921
|
+
}
|
|
7922
|
+
if (!meta.id && actualIndex !== index) {
|
|
7923
|
+
this.pendingIndexRemaps.set(index, actualIndex);
|
|
7924
|
+
}
|
|
7925
|
+
return { actualIndex, complete: false };
|
|
7926
|
+
}
|
|
7863
7927
|
if (isKnownId && currentDepth === 0) {
|
|
7864
7928
|
if (currentBuffer.trim()) {
|
|
7865
7929
|
try {
|
|
@@ -7867,23 +7931,32 @@ var StreamingToolCallParser = class {
|
|
|
7867
7931
|
debugLogger3.debug(
|
|
7868
7932
|
`Ignoring replay chunk for completed toolCall id=${id}`
|
|
7869
7933
|
);
|
|
7870
|
-
return { complete: false };
|
|
7934
|
+
return { actualIndex, complete: false };
|
|
7871
7935
|
} catch {
|
|
7872
7936
|
}
|
|
7873
|
-
} else if (this.toolCallMeta.get(actualIndex)?.name && name && !chunk.trim()) {
|
|
7874
|
-
debugLogger3.debug(
|
|
7875
|
-
`Ignoring replayed opener for no-argument toolCall id=${id}`
|
|
7876
|
-
);
|
|
7877
|
-
return { complete: false };
|
|
7878
7937
|
}
|
|
7879
7938
|
}
|
|
7880
|
-
const
|
|
7939
|
+
const identityChanged = Boolean(id && meta.id && meta.id !== id);
|
|
7881
7940
|
if (id) meta.id = id;
|
|
7882
|
-
if (
|
|
7941
|
+
if (validName) {
|
|
7942
|
+
if (!identityChanged && meta.name && meta.name !== validName) {
|
|
7943
|
+
this.conflictingToolCallIdentity = true;
|
|
7944
|
+
} else {
|
|
7945
|
+
meta.name = validName;
|
|
7946
|
+
}
|
|
7947
|
+
}
|
|
7948
|
+
if (!meta.id && actualIndex !== index) {
|
|
7949
|
+
this.pendingIndexRemaps.set(index, actualIndex);
|
|
7950
|
+
}
|
|
7883
7951
|
const currentInString = this.inStrings.get(actualIndex);
|
|
7884
7952
|
const currentEscape = this.escapes.get(actualIndex);
|
|
7885
7953
|
const newBuffer = currentBuffer + chunk;
|
|
7886
7954
|
this.buffers.set(actualIndex, newBuffer);
|
|
7955
|
+
if (!meta.name && (meta.id || /\S/.test(newBuffer))) {
|
|
7956
|
+
this.namelessToolCallIndices.add(actualIndex);
|
|
7957
|
+
} else {
|
|
7958
|
+
this.namelessToolCallIndices.delete(actualIndex);
|
|
7959
|
+
}
|
|
7887
7960
|
let depth = currentDepth;
|
|
7888
7961
|
let inString = currentInString;
|
|
7889
7962
|
let escape2 = currentEscape;
|
|
@@ -7903,12 +7976,13 @@ var StreamingToolCallParser = class {
|
|
|
7903
7976
|
if (depth === 0 && newBuffer.trim().length > 0) {
|
|
7904
7977
|
try {
|
|
7905
7978
|
const parsed = JSON.parse(newBuffer);
|
|
7906
|
-
return { complete: true, value: parsed };
|
|
7979
|
+
return { actualIndex, complete: true, value: parsed };
|
|
7907
7980
|
} catch (e) {
|
|
7908
7981
|
if (inString) {
|
|
7909
7982
|
try {
|
|
7910
7983
|
const repaired = JSON.parse(newBuffer + '"');
|
|
7911
7984
|
return {
|
|
7985
|
+
actualIndex,
|
|
7912
7986
|
complete: true,
|
|
7913
7987
|
value: repaired,
|
|
7914
7988
|
repaired: true
|
|
@@ -7917,12 +7991,13 @@ var StreamingToolCallParser = class {
|
|
|
7917
7991
|
}
|
|
7918
7992
|
}
|
|
7919
7993
|
return {
|
|
7994
|
+
actualIndex,
|
|
7920
7995
|
complete: false,
|
|
7921
7996
|
error: e instanceof Error ? e : new Error(String(e))
|
|
7922
7997
|
};
|
|
7923
7998
|
}
|
|
7924
7999
|
}
|
|
7925
|
-
return { complete: false };
|
|
8000
|
+
return { actualIndex, complete: false };
|
|
7926
8001
|
}
|
|
7927
8002
|
/**
|
|
7928
8003
|
* Gets the current tool call metadata for a specific index
|
|
@@ -7933,6 +8008,29 @@ var StreamingToolCallParser = class {
|
|
|
7933
8008
|
getToolCallMeta(index) {
|
|
7934
8009
|
return this.toolCallMeta.get(index) || {};
|
|
7935
8010
|
}
|
|
8011
|
+
hasNamelessToolCall() {
|
|
8012
|
+
return this.namelessToolCallIndices.size > 0;
|
|
8013
|
+
}
|
|
8014
|
+
hasConflictingToolCallIdentity() {
|
|
8015
|
+
return this.conflictingToolCallIdentity;
|
|
8016
|
+
}
|
|
8017
|
+
hasInvalidToolCallIndex() {
|
|
8018
|
+
return this.invalidToolCallIndex;
|
|
8019
|
+
}
|
|
8020
|
+
hasInvalidToolCallArguments() {
|
|
8021
|
+
for (const [index, buffer] of this.buffers.entries()) {
|
|
8022
|
+
if (!this.toolCallMeta.get(index)?.name || buffer.length === 0) continue;
|
|
8023
|
+
try {
|
|
8024
|
+
const args = JSON.parse(buffer);
|
|
8025
|
+
if (typeof args !== "object" || args === null || Array.isArray(args)) {
|
|
8026
|
+
return true;
|
|
8027
|
+
}
|
|
8028
|
+
} catch {
|
|
8029
|
+
return true;
|
|
8030
|
+
}
|
|
8031
|
+
}
|
|
8032
|
+
return false;
|
|
8033
|
+
}
|
|
7936
8034
|
/**
|
|
7937
8035
|
* Gets all completed tool calls that are ready to be emitted
|
|
7938
8036
|
*
|
|
@@ -8064,6 +8162,12 @@ var StreamingToolCallParser = class {
|
|
|
8064
8162
|
this.inStrings.set(index, false);
|
|
8065
8163
|
this.escapes.set(index, false);
|
|
8066
8164
|
this.toolCallMeta.set(index, {});
|
|
8165
|
+
this.namelessToolCallIndices.delete(index);
|
|
8166
|
+
for (const [providerIndex, actualIndex] of this.pendingIndexRemaps) {
|
|
8167
|
+
if (providerIndex === index || actualIndex === index) {
|
|
8168
|
+
this.pendingIndexRemaps.delete(providerIndex);
|
|
8169
|
+
}
|
|
8170
|
+
}
|
|
8067
8171
|
}
|
|
8068
8172
|
/**
|
|
8069
8173
|
* Resets the entire parser state for processing a new stream
|
|
@@ -8078,8 +8182,12 @@ var StreamingToolCallParser = class {
|
|
|
8078
8182
|
this.inStrings.clear();
|
|
8079
8183
|
this.escapes.clear();
|
|
8080
8184
|
this.toolCallMeta.clear();
|
|
8185
|
+
this.namelessToolCallIndices.clear();
|
|
8081
8186
|
this.idToIndexMap.clear();
|
|
8187
|
+
this.pendingIndexRemaps.clear();
|
|
8082
8188
|
this.nextAvailableIndex = 0;
|
|
8189
|
+
this.conflictingToolCallIdentity = false;
|
|
8190
|
+
this.invalidToolCallIndex = false;
|
|
8083
8191
|
}
|
|
8084
8192
|
/**
|
|
8085
8193
|
* Gets the current accumulated buffer content for a specific index
|
|
@@ -8380,7 +8488,8 @@ var ContentGenerationPipeline = class {
|
|
|
8380
8488
|
const innerStream = this.processStreamWithLogging(
|
|
8381
8489
|
guarded,
|
|
8382
8490
|
context,
|
|
8383
|
-
request
|
|
8491
|
+
request,
|
|
8492
|
+
userPromptId
|
|
8384
8493
|
);
|
|
8385
8494
|
async function* drainThenCleanup() {
|
|
8386
8495
|
try {
|
|
@@ -8403,10 +8512,29 @@ var ContentGenerationPipeline = class {
|
|
|
8403
8512
|
* 4. Collect both formats for logging
|
|
8404
8513
|
* 5. Handle success/error logging
|
|
8405
8514
|
*/
|
|
8406
|
-
async *processStreamWithLogging(stream, context, request) {
|
|
8515
|
+
async *processStreamWithLogging(stream, context, request, userPromptId) {
|
|
8407
8516
|
const collectedGeminiResponses = [];
|
|
8408
8517
|
let pendingFinishResponse = null;
|
|
8409
8518
|
let finishYielded = false;
|
|
8519
|
+
let pendingFinishProtocolTagSanitized;
|
|
8520
|
+
const logPendingProtocolTagSanitized = /* @__PURE__ */ __name((response, sanitization) => {
|
|
8521
|
+
if (!sanitization) return;
|
|
8522
|
+
const event = new ProtocolTagSanitizedEvent({
|
|
8523
|
+
model: context.model,
|
|
8524
|
+
promptId: userPromptId,
|
|
8525
|
+
responseId: response.responseId,
|
|
8526
|
+
tagName: sanitization.tagName,
|
|
8527
|
+
toolCallCount: sanitization.toolCallCount
|
|
8528
|
+
});
|
|
8529
|
+
debugLogger4.warn("Sanitized a model protocol tag", {
|
|
8530
|
+
model: event.model,
|
|
8531
|
+
promptId: event.prompt_id,
|
|
8532
|
+
responseId: event.response_id,
|
|
8533
|
+
tagName: event.tag_name,
|
|
8534
|
+
toolCallCount: event.tool_call_count
|
|
8535
|
+
});
|
|
8536
|
+
logProtocolTagSanitized(this.config.cliConfig, event);
|
|
8537
|
+
}, "logPendingProtocolTagSanitized");
|
|
8410
8538
|
try {
|
|
8411
8539
|
for await (const chunk of stream) {
|
|
8412
8540
|
if (chunk.choices?.[0]?.finish_reason === "error_finish") {
|
|
@@ -8417,9 +8545,22 @@ var ContentGenerationPipeline = class {
|
|
|
8417
8545
|
chunk,
|
|
8418
8546
|
context
|
|
8419
8547
|
);
|
|
8420
|
-
|
|
8548
|
+
const sanitization = context.protocolTagSanitized;
|
|
8549
|
+
if (sanitization) {
|
|
8550
|
+
context.protocolTagSanitized = void 0;
|
|
8551
|
+
}
|
|
8552
|
+
if (response.candidates?.[0]?.content?.parts?.length === 0 && !response.candidates?.[0]?.finishReason && !response.usageMetadata && // Preparation-only responses must reach ACP before arguments complete.
|
|
8553
|
+
getToolCallPreparations(response).length === 0) {
|
|
8421
8554
|
continue;
|
|
8422
8555
|
}
|
|
8556
|
+
if (pendingFinishProtocolTagSanitized && pendingFinishResponse && !response.candidates?.[0]?.finishReason && response.candidates?.some(
|
|
8557
|
+
(candidate) => (candidate.content?.parts?.length ?? 0) > 0
|
|
8558
|
+
)) {
|
|
8559
|
+
throw new InvalidStreamError(
|
|
8560
|
+
"Model response continued after a finish reason.",
|
|
8561
|
+
"PROTOCOL_TAG_LEAK"
|
|
8562
|
+
);
|
|
8563
|
+
}
|
|
8423
8564
|
if (finishYielded) {
|
|
8424
8565
|
if (response.usageMetadata) {
|
|
8425
8566
|
const pending = pendingFinishResponse;
|
|
@@ -8430,6 +8571,9 @@ var ContentGenerationPipeline = class {
|
|
|
8430
8571
|
collectedGeminiResponses.push(response);
|
|
8431
8572
|
continue;
|
|
8432
8573
|
}
|
|
8574
|
+
if (!pendingFinishResponse && response.candidates?.[0]?.finishReason && sanitization) {
|
|
8575
|
+
pendingFinishProtocolTagSanitized = sanitization;
|
|
8576
|
+
}
|
|
8433
8577
|
const shouldYield = this.handleChunkMerging(
|
|
8434
8578
|
response,
|
|
8435
8579
|
collectedGeminiResponses,
|
|
@@ -8439,20 +8583,60 @@ var ContentGenerationPipeline = class {
|
|
|
8439
8583
|
);
|
|
8440
8584
|
if (shouldYield) {
|
|
8441
8585
|
if (pendingFinishResponse) {
|
|
8586
|
+
logPendingProtocolTagSanitized(
|
|
8587
|
+
pendingFinishResponse,
|
|
8588
|
+
pendingFinishProtocolTagSanitized
|
|
8589
|
+
);
|
|
8442
8590
|
yield pendingFinishResponse;
|
|
8443
8591
|
finishYielded = true;
|
|
8444
8592
|
} else {
|
|
8593
|
+
logPendingProtocolTagSanitized(response, sanitization);
|
|
8445
8594
|
yield response;
|
|
8446
8595
|
}
|
|
8447
8596
|
}
|
|
8448
8597
|
}
|
|
8598
|
+
if (context.pendingThinkingTagCandidate && !context.pendingThinkingTagCandidate.closingTagName && !/\S/.test(context.pendingThinkingTagCandidate.text)) {
|
|
8599
|
+
const pendingParts = context.pendingUntrustedResponseParts;
|
|
8600
|
+
context.pendingThinkingTagCandidate = void 0;
|
|
8601
|
+
context.pendingUntrustedResponseParts = void 0;
|
|
8602
|
+
if (pendingParts?.length) {
|
|
8603
|
+
const response = new GenerateContentResponse();
|
|
8604
|
+
response.candidates = [
|
|
8605
|
+
{
|
|
8606
|
+
content: { parts: pendingParts, role: "model" },
|
|
8607
|
+
index: 0
|
|
8608
|
+
}
|
|
8609
|
+
];
|
|
8610
|
+
yield response;
|
|
8611
|
+
}
|
|
8612
|
+
} else if (context.pendingThinkingTagCandidate) {
|
|
8613
|
+
throw new InvalidStreamError(
|
|
8614
|
+
"Model response leaked thinking tags.",
|
|
8615
|
+
"PROTOCOL_TAG_LEAK"
|
|
8616
|
+
);
|
|
8617
|
+
}
|
|
8449
8618
|
if (pendingFinishResponse && !finishYielded) {
|
|
8619
|
+
logPendingProtocolTagSanitized(
|
|
8620
|
+
pendingFinishResponse,
|
|
8621
|
+
pendingFinishProtocolTagSanitized
|
|
8622
|
+
);
|
|
8450
8623
|
yield pendingFinishResponse;
|
|
8451
8624
|
}
|
|
8452
8625
|
} catch (error) {
|
|
8626
|
+
if (error instanceof InvalidStreamError) {
|
|
8627
|
+
throw error;
|
|
8628
|
+
}
|
|
8453
8629
|
if (error instanceof StreamContentError) {
|
|
8454
8630
|
throw redactProxyError(error);
|
|
8455
8631
|
}
|
|
8632
|
+
if (context.pendingThinkingTagCandidate?.closingTagName && request.config?.abortSignal?.aborted !== true) {
|
|
8633
|
+
context.pendingThinkingTagCandidate = void 0;
|
|
8634
|
+
context.pendingUntrustedResponseParts = void 0;
|
|
8635
|
+
throw new InvalidStreamError(
|
|
8636
|
+
"Model response leaked thinking tags.",
|
|
8637
|
+
"PROTOCOL_TAG_LEAK"
|
|
8638
|
+
);
|
|
8639
|
+
}
|
|
8456
8640
|
if (error instanceof StreamInactivityTimeoutError) {
|
|
8457
8641
|
debugLogger4.warn("OpenAI stream inactivity timeout", {
|
|
8458
8642
|
idleMs: error.idleMs,
|
|
@@ -6,29 +6,29 @@ import {
|
|
|
6
6
|
parseAcpBaseModelId,
|
|
7
7
|
resolveCliGenerationConfig,
|
|
8
8
|
sanitizeProviderBaseUrl
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-BA5JGE5F.js";
|
|
10
10
|
import {
|
|
11
11
|
snapshotProcessEnv
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-KXECVZPD.js";
|
|
13
13
|
import {
|
|
14
14
|
STATUS_SCHEMA_VERSION
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-XIWQ5QST.js";
|
|
16
16
|
import {
|
|
17
17
|
loadSettings
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-TIKDHS6V.js";
|
|
19
19
|
import {
|
|
20
20
|
ModelsConfig,
|
|
21
21
|
resolveProviderProtocol
|
|
22
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-SA6QVLWI.js";
|
|
23
23
|
import {
|
|
24
24
|
APPROVAL_MODES
|
|
25
|
-
} from "./chunk-
|
|
25
|
+
} from "./chunk-F333XEAU.js";
|
|
26
26
|
import {
|
|
27
27
|
tokenLimit
|
|
28
|
-
} from "./chunk-
|
|
28
|
+
} from "./chunk-VRR65QYW.js";
|
|
29
29
|
import {
|
|
30
30
|
createDebugLogger
|
|
31
|
-
} from "./chunk-
|
|
31
|
+
} from "./chunk-7NFB7LBQ.js";
|
|
32
32
|
import {
|
|
33
33
|
init_esbuild_shims
|
|
34
34
|
} from "./chunk-5O2XNYP6.js";
|
|
@@ -168,7 +168,7 @@ function buildWorkspaceProvidersStatus(workspaceCwd, acpChannelLive, options) {
|
|
|
168
168
|
__name(buildWorkspaceProvidersStatus, "buildWorkspaceProvidersStatus");
|
|
169
169
|
function resolveApprovalMode(settings) {
|
|
170
170
|
const value = settings.tools?.approvalMode;
|
|
171
|
-
if (typeof value !== "string") return "
|
|
171
|
+
if (typeof value !== "string") return "auto" /* AUTO */;
|
|
172
172
|
const normalized = value.trim().toLowerCase().replaceAll("_", "-");
|
|
173
173
|
const mode = normalized === "autoedit" ? "auto-edit" /* AUTO_EDIT */ : normalized;
|
|
174
174
|
if (APPROVAL_MODES.includes(mode)) {
|
|
@@ -176,10 +176,10 @@ function resolveApprovalMode(settings) {
|
|
|
176
176
|
}
|
|
177
177
|
if (value.trim().length > 0) {
|
|
178
178
|
debugLogger.warn(
|
|
179
|
-
`[workspace-providers-status] unrecognized approvalMode "${value}", falling back to
|
|
179
|
+
`[workspace-providers-status] unrecognized approvalMode "${value}", falling back to auto`
|
|
180
180
|
);
|
|
181
181
|
}
|
|
182
|
-
return "
|
|
182
|
+
return "auto" /* AUTO */;
|
|
183
183
|
}
|
|
184
184
|
__name(resolveApprovalMode, "resolveApprovalMode");
|
|
185
185
|
function isMainSelectableModel(model) {
|
|
@@ -33,10 +33,36 @@ var WorkspacePermissionRulesSessionRequiredError = class extends Error {
|
|
|
33
33
|
this.name = "WorkspacePermissionRulesSessionRequiredError";
|
|
34
34
|
}
|
|
35
35
|
};
|
|
36
|
+
var WorkspaceSkillNotFoundError = class extends Error {
|
|
37
|
+
constructor(skillName) {
|
|
38
|
+
super(`Skill not found: ${skillName}`);
|
|
39
|
+
this.skillName = skillName;
|
|
40
|
+
this.name = "WorkspaceSkillNotFoundError";
|
|
41
|
+
}
|
|
42
|
+
static {
|
|
43
|
+
__name(this, "WorkspaceSkillNotFoundError");
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
var WorkspaceSkillNotToggleableError = class extends Error {
|
|
47
|
+
constructor(skillName, reason, lockedScope) {
|
|
48
|
+
super(
|
|
49
|
+
lockedScope ? `Skill ${skillName} is locked by ${lockedScope} settings` : `Skill ${skillName} is not toggleable: ${reason}`
|
|
50
|
+
);
|
|
51
|
+
this.skillName = skillName;
|
|
52
|
+
this.reason = reason;
|
|
53
|
+
this.lockedScope = lockedScope;
|
|
54
|
+
this.name = "WorkspaceSkillNotToggleableError";
|
|
55
|
+
}
|
|
56
|
+
static {
|
|
57
|
+
__name(this, "WorkspaceSkillNotToggleableError");
|
|
58
|
+
}
|
|
59
|
+
};
|
|
36
60
|
|
|
37
61
|
export {
|
|
38
62
|
WorkspaceSettingsPartialPersistError,
|
|
39
|
-
WorkspacePermissionRulesSessionRequiredError
|
|
63
|
+
WorkspacePermissionRulesSessionRequiredError,
|
|
64
|
+
WorkspaceSkillNotFoundError,
|
|
65
|
+
WorkspaceSkillNotToggleableError
|
|
40
66
|
};
|
|
41
67
|
/**
|
|
42
68
|
* @license
|
|
@@ -7,15 +7,6 @@ import {
|
|
|
7
7
|
__name
|
|
8
8
|
} from "./chunk-J2S4EL5Y.js";
|
|
9
9
|
|
|
10
|
-
// packages/cli/src/serve/channel-worker-env.ts
|
|
11
|
-
init_esbuild_shims();
|
|
12
|
-
var CHANNEL_DAEMON_WORKER_SENTINEL = "QWEN_CHANNEL_DAEMON_WORKER";
|
|
13
|
-
var CHANNEL_WORKER_HEARTBEAT_INTERVAL_MS = 15e3;
|
|
14
|
-
var QWEN_DAEMON_TOKEN_ENV = "QWEN_DAEMON_TOKEN";
|
|
15
|
-
var QWEN_DAEMON_URL_ENV = "QWEN_DAEMON_URL";
|
|
16
|
-
var QWEN_DAEMON_WORKSPACE_ENV = "QWEN_DAEMON_WORKSPACE";
|
|
17
|
-
var QWEN_SERVER_TOKEN_ENV = "QWEN_SERVER_TOKEN";
|
|
18
|
-
|
|
19
10
|
// packages/cli/src/serve/channel-webhook-ipc.ts
|
|
20
11
|
init_esbuild_shims();
|
|
21
12
|
import { randomUUID } from "node:crypto";
|
|
@@ -65,12 +56,6 @@ function isChannelWebhookTaskResultMessage(value) {
|
|
|
65
56
|
__name(isChannelWebhookTaskResultMessage, "isChannelWebhookTaskResultMessage");
|
|
66
57
|
|
|
67
58
|
export {
|
|
68
|
-
CHANNEL_DAEMON_WORKER_SENTINEL,
|
|
69
|
-
CHANNEL_WORKER_HEARTBEAT_INTERVAL_MS,
|
|
70
|
-
QWEN_DAEMON_TOKEN_ENV,
|
|
71
|
-
QWEN_DAEMON_URL_ENV,
|
|
72
|
-
QWEN_DAEMON_WORKSPACE_ENV,
|
|
73
|
-
QWEN_SERVER_TOKEN_ENV,
|
|
74
59
|
ChannelWebhookEnqueueError,
|
|
75
60
|
isChannelWebhookEnqueueErrorCode,
|
|
76
61
|
isChannelWebhookEnqueueError,
|
|
@@ -2,20 +2,20 @@
|
|
|
2
2
|
"use strict";
|
|
3
3
|
import {
|
|
4
4
|
formatFetchErrorForUser
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-ZPAHLFZU.js";
|
|
6
6
|
import {
|
|
7
7
|
openBrowserSecurely
|
|
8
8
|
} from "./chunk-JESCGQM3.js";
|
|
9
9
|
import {
|
|
10
10
|
atomicWriteFile
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-WIEO4CWB.js";
|
|
12
12
|
import {
|
|
13
13
|
combineAbortSignals
|
|
14
14
|
} from "./chunk-DJ2GSRLV.js";
|
|
15
15
|
import {
|
|
16
16
|
Storage,
|
|
17
17
|
createDebugLogger
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-7NFB7LBQ.js";
|
|
19
19
|
import {
|
|
20
20
|
init_esbuild_shims
|
|
21
21
|
} from "./chunk-5O2XNYP6.js";
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
// Force strict mode and setup for ESM
|
|
2
2
|
"use strict";
|
|
3
|
+
import {
|
|
4
|
+
is_in_ci_default
|
|
5
|
+
} from "./chunk-NHDKSOEY.js";
|
|
3
6
|
import {
|
|
4
7
|
require_react
|
|
5
8
|
} from "./chunk-HTHUX2T5.js";
|
|
6
9
|
import {
|
|
7
10
|
themeManager
|
|
8
|
-
} from "./chunk-
|
|
9
|
-
import {
|
|
10
|
-
is_in_ci_default
|
|
11
|
-
} from "./chunk-NHDKSOEY.js";
|
|
11
|
+
} from "./chunk-Q6TUALBE.js";
|
|
12
12
|
import {
|
|
13
13
|
eastAsianWidth,
|
|
14
14
|
isFullWidth,
|
|
@@ -16,7 +16,7 @@ import {
|
|
|
16
16
|
} from "./chunk-QHTIBUWB.js";
|
|
17
17
|
import {
|
|
18
18
|
stripAnsi
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-SA6QVLWI.js";
|
|
20
20
|
import {
|
|
21
21
|
init_esbuild_shims
|
|
22
22
|
} from "./chunk-5O2XNYP6.js";
|
|
@@ -1,26 +1,30 @@
|
|
|
1
1
|
// Force strict mode and setup for ESM
|
|
2
2
|
"use strict";
|
|
3
3
|
import {
|
|
4
|
-
SETTINGS_DIRECTORY_NAME,
|
|
5
4
|
V1_INDICATOR_KEYS,
|
|
5
|
+
resolveEnvVarsInObject
|
|
6
|
+
} from "./chunk-GOXKNSDZ.js";
|
|
7
|
+
import {
|
|
8
|
+
SETTINGS_DIRECTORY_NAME,
|
|
6
9
|
getGlobalQwenDirLite,
|
|
7
10
|
getSystemDefaultsPath,
|
|
8
|
-
getSystemSettingsPath
|
|
9
|
-
|
|
10
|
-
} from "./chunk-3BTRNWWD.js";
|
|
11
|
+
getSystemSettingsPath
|
|
12
|
+
} from "./chunk-IDS7MSUP.js";
|
|
11
13
|
import {
|
|
12
14
|
DEFAULT_EXCLUDED_ENV_VARS,
|
|
13
15
|
HOME_ENV_BOOTSTRAP_KEYS,
|
|
14
16
|
PROJECT_ENV_HARDCODED_EXCLUSIONS
|
|
15
17
|
} from "./chunk-QRUIS3DN.js";
|
|
16
18
|
import {
|
|
17
|
-
getPathComparisonVariants,
|
|
18
|
-
isWithinRoot,
|
|
19
19
|
require_strip_json_comments
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-ALGGS7UH.js";
|
|
21
|
+
import {
|
|
22
|
+
getPathComparisonVariants,
|
|
23
|
+
isWithinRoot
|
|
24
|
+
} from "./chunk-MR3PXB6E.js";
|
|
21
25
|
import {
|
|
22
26
|
require_main
|
|
23
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-5M6IDOMF.js";
|
|
24
28
|
import {
|
|
25
29
|
init_esbuild_shims
|
|
26
30
|
} from "./chunk-5O2XNYP6.js";
|