@qwen-code/qwen-code 0.19.9 → 0.19.10-nightly.20260715.c538bd70d
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 +8 -0
- package/bundled/qc-helper/docs/features/channels/dingtalk.md +3 -0
- package/bundled/qc-helper/docs/features/channels/overview.md +11 -3
- 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/sub-agents.md +21 -0
- package/bundled/qc-helper/docs/qwen-serve.md +46 -20
- package/bundled/qc-helper/docs/reference/keyboard-shortcuts.md +1 -1
- package/bundled/review/DESIGN.md +219 -33
- package/bundled/review/SKILL.md +449 -153
- package/chunks/{MaxSizedBox-6HYJ3ZPJ.js → MaxSizedBox-LOOBDOTZ.js} +31 -31
- package/chunks/{StandaloneSessionPicker-WS4GXYOG.js → StandaloneSessionPicker-76CLZSH2.js} +51 -49
- package/chunks/{acpAgent-5FWSOZL5.js → acpAgent-DFJOK7EB.js} +567 -482
- package/chunks/{agent-HOLHB3RT.js → agent-OJQWXNHP.js} +26 -26
- package/chunks/{agent-headless-SXL6H56A.js → agent-headless-ND7GOORY.js} +26 -26
- package/chunks/{anthropicContentGenerator-L73TO3DB.js → anthropicContentGenerator-56U3YCP2.js} +5 -5
- 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-SNJK2JLK.js} +32 -32
- package/chunks/{ca-UJ6HC4H2.js → ca-C2JTT2N5.js} +4 -1
- package/chunks/channel-worker-group-K7QKH6IG.js +13 -0
- package/chunks/channel-worker-manager-YSFB4HUU.js +418 -0
- package/chunks/channel-worker-supervisor-QCKIOYZD.js +20 -0
- package/chunks/{chunk-CCDMCZPP.js → chunk-26UABK2C.js} +1 -1
- package/chunks/{chunk-LXNEJD34.js → chunk-2FO5GFKZ.js} +1 -1
- package/chunks/{chunk-L36P3NBD.js → chunk-2W3OOD4W.js} +2 -0
- package/chunks/{chunk-7R3CZA3Q.js → chunk-2Z5UX4KI.js} +1 -1
- package/chunks/chunk-3MX7D6QN.js +516 -0
- package/chunks/{chunk-CLFKOZEK.js → chunk-3XULHBC7.js} +1 -1
- package/chunks/chunk-4QZADKJS.js +34 -0
- package/chunks/{chunk-E2IY465S.js → chunk-4UDHAJFV.js} +10 -10
- package/chunks/{chunk-5U27BZ72.js → chunk-55SAYASQ.js} +190 -77
- package/chunks/chunk-5HBA2Z7V.js +28 -0
- package/chunks/{chunk-ZJE7NSL3.js → chunk-5M6IDOMF.js} +34 -97
- package/chunks/{chunk-HVY356M2.js → chunk-5SQ55XJZ.js} +3 -3
- package/chunks/{chunk-EAXLGSFP.js → chunk-6GRAQNTY.js} +8 -8
- package/chunks/{chunk-K434OPES.js → chunk-6WPJRYLZ.js} +3 -3
- package/chunks/{chunk-VWPVHAMO.js → chunk-7DXHIMXL.js} +5 -1
- package/chunks/{chunk-J4TSQ5EQ.js → chunk-7NFB7LBQ.js} +8 -1
- package/chunks/{chunk-5SFOMFG4.js → chunk-7R4DPSRA.js} +36 -2
- package/chunks/{chunk-W2UIXQDL.js → chunk-7STBROEV.js} +1 -1
- package/chunks/{chunk-BMGVRZN4.js → chunk-AETEZU4U.js} +1 -1
- package/chunks/{chunk-HPDUL5MF.js → chunk-AGZWN4WV.js} +1 -1
- package/chunks/{chunk-RDJSGHZE.js → chunk-ALGGS7UH.js} +1 -38
- package/chunks/{chunk-GWHYEOV2.js → chunk-ARKANCNX.js} +2 -1
- package/chunks/{chunk-34Z3U5RQ.js → chunk-AU4R7ACM.js} +518 -114
- package/chunks/{channel-worker-supervisor-WSOAAYUO.js → chunk-B7MFJBKE.js} +67 -35
- package/chunks/{chunk-524RQP4Q.js → chunk-B7NUUEXC.js} +10 -4
- package/chunks/{chunk-MC23XKFE.js → chunk-BLPMRN4B.js} +3 -3
- package/chunks/{chunk-A3XKDTSH.js → chunk-BRRKAUGR.js} +4 -4
- package/chunks/{chunk-W3JHSWRP.js → chunk-BUPLOPUA.js} +4 -4
- package/chunks/{chunk-3VAGG5T5.js → chunk-BYOOK22F.js} +121 -16
- package/chunks/{chunk-EMDMPBJ4.js → chunk-C47ENMZJ.js} +3 -3
- package/chunks/{chunk-3AHXV67U.js → chunk-C5TVXLJZ.js} +1 -1
- package/chunks/{chunk-X6TJ3YZV.js → chunk-CGT5TQIZ.js} +159 -57
- package/chunks/{chunk-4C5BQ2D2.js → chunk-CQQD7MDG.js} +82 -12
- package/chunks/{chunk-KKNMOEZH.js → chunk-E2UVIFI2.js} +185 -398
- package/chunks/{chunk-P67PFTUT.js → chunk-EPY4ZEU6.js} +4 -4
- package/chunks/{chunk-6PESIEKJ.js → chunk-EZSRHWGS.js} +68 -6
- package/chunks/{chunk-4GORAUCN.js → chunk-F333XEAU.js} +1 -1
- package/chunks/{chunk-YLV3XXFB.js → chunk-FBU7WRZI.js} +17 -1
- package/chunks/{chunk-Q6I5QHMH.js → chunk-FGTCZJOD.js} +1 -1
- package/chunks/{chunk-LK7KUE55.js → chunk-FSA7ERJ2.js} +1 -1
- package/chunks/{chunk-B4G2WOFA.js → chunk-FTU55ZZ7.js} +3 -3
- package/chunks/{chunk-EGYZ275M.js → chunk-GCD7PEDZ.js} +4 -4
- package/chunks/{chunk-SJHDYNHF.js → chunk-GDQQRV43.js} +3 -3
- package/chunks/{chunk-3BTRNWWD.js → chunk-GOXKNSDZ.js} +1 -64
- package/chunks/{chunk-GZRTYZ2R.js → chunk-GQKWT45X.js} +154 -1
- package/chunks/chunk-GYTKQYDB.js +23 -0
- package/chunks/{chunk-YVEDCAUE.js → chunk-HGT6JR3U.js} +19 -0
- package/chunks/{chunk-N3EMS75V.js → chunk-HKM2TEF7.js} +1268 -1233
- package/chunks/chunk-IDS7MSUP.js +74 -0
- package/chunks/{chunk-PVZM22CK.js → chunk-INKAZNYC.js} +5 -5
- package/chunks/{chunk-3G7CIHVV.js → chunk-IOQ75R4R.js} +4 -4
- package/chunks/{chunk-AURZZYMD.js → chunk-IQOOJSPR.js} +4 -4
- package/chunks/{chunk-AKIVHSJR.js → chunk-J4UQXGVL.js} +111 -93
- package/chunks/{chunk-VTU57BWZ.js → chunk-JEKOCLRN.js} +1 -1
- package/chunks/{chunk-B5ORX3FG.js → chunk-JGUT3LWZ.js} +6 -1
- package/chunks/{chunk-PDZ7MBDG.js → chunk-JIQHT2O6.js} +27 -6
- package/chunks/{chunk-XUOOWUZS.js → chunk-JPAH76WA.js} +1 -1
- package/chunks/{chunk-BAPGSC7U.js → chunk-K4LG6TVJ.js} +23 -9
- package/chunks/chunk-KET3M4K4.js +493 -0
- package/chunks/{chunk-ORBGV7NJ.js → chunk-KKRTYONM.js} +6 -4
- package/chunks/{chunk-SCGXUJBT.js → chunk-KPA5QGN2.js} +3 -3
- package/chunks/{chunk-IAVB3HM3.js → chunk-KSO42X3Z.js} +13 -0
- package/chunks/{chunk-4QLQE5WJ.js → chunk-L5U3ELZX.js} +1 -1
- package/chunks/{chunk-77XJ3SWN.js → chunk-LIUEXYPL.js} +5 -5
- package/chunks/{chunk-4ZVWQHEQ.js → chunk-LQIDP6K5.js} +1 -1
- package/chunks/{chunk-34MW4KTI.js → chunk-LT5CRUA5.js} +2 -2
- package/chunks/{chunk-DC5Z3DU6.js → chunk-LXLTBIDP.js} +43 -6
- package/chunks/{chunk-VA4KQY6V.js → chunk-MEK7CQJR.js} +3 -3
- package/chunks/{chunk-KHUQZZJ6.js → chunk-MO7O5722.js} +370 -36
- package/chunks/chunk-MR3PXB6E.js +48 -0
- package/chunks/{chunk-PODM4SZ4.js → chunk-MV52C5MA.js} +5 -5
- 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-ECNYL4AA.js → chunk-OPNPGO6D.js} +1 -1
- package/chunks/{chunk-3SJSQXNS.js → chunk-PEJWA3QQ.js} +12 -8
- package/chunks/{chunk-MXL5UP4X.js → chunk-Q6TUALBE.js} +1 -1
- package/chunks/{chunk-QYMQSECS.js → chunk-QAW7PIHT.js} +2 -2
- package/chunks/{chunk-5HOMWMCL.js → chunk-QEDYXCLG.js} +4167 -1338
- package/chunks/chunk-QNNTA7IX.js +91 -0
- package/chunks/{chunk-D2GFWEXB.js → chunk-QNT5T4Q2.js} +6 -6
- package/chunks/{chunk-CUMMSHH6.js → chunk-R5XLNDE2.js} +1 -1
- package/chunks/{chunk-LUODI7WD.js → chunk-RCEEXIOO.js} +6 -4
- package/chunks/{chunk-WQUQVGTF.js → chunk-RQWDLG6Z.js} +183 -96
- package/chunks/{chunk-XYQSMABS.js → chunk-SLCVZX6F.js} +4 -4
- package/chunks/{chunk-CEA3E3JB.js → chunk-SPJQO2CE.js} +2 -2
- package/chunks/{chunk-JSG7ZSBC.js → chunk-TQBODCFD.js} +1 -1
- package/chunks/chunk-TV6K2FB4.js +224 -0
- package/chunks/{chunk-5XUCZNSY.js → chunk-TYLOFD2U.js} +1 -1
- package/chunks/{chunk-CNEIYWSA.js → chunk-UKWAQ7AV.js} +5 -5
- package/chunks/{chunk-7PU4FYLG.js → chunk-US4YQT62.js} +4 -4
- package/chunks/{chunk-Q4YQW46J.js → chunk-UYPPCIJQ.js} +36 -18
- package/chunks/{chunk-YAUFFXDS.js → chunk-UZKG7HFG.js} +12 -11
- package/chunks/{chunk-GWLSNBG4.js → chunk-VQLRHJKL.js} +30 -26
- package/chunks/{chunk-L6P4KPHR.js → chunk-VRUHAVZS.js} +59 -39
- package/chunks/{chunk-HKMAENAO.js → chunk-W2U4RJJU.js} +8 -6
- package/chunks/{chunk-ATAKVRIF.js → chunk-WDSCTLAB.js} +7 -7
- package/chunks/{chunk-ZLXQN2QS.js → chunk-WIEO4CWB.js} +1 -1
- package/chunks/{chunk-OQ4DRIOA.js → chunk-WJOC24IW.js} +2 -2
- package/chunks/{chunk-J3JA76CF.js → chunk-WTNZ6DXB.js} +1 -1
- package/chunks/{chunk-NVYTCB5Z.js → chunk-XCR44EEA.js} +14589 -13980
- package/chunks/{chunk-TDEXZKMT.js → chunk-Y66VOBRP.js} +2 -2
- package/chunks/{chunk-CC2ITGCF.js → chunk-YHN5SUIJ.js} +49 -6
- package/chunks/{chunk-D5SKC4YG.js → chunk-ZBAROUR6.js} +41 -13
- package/chunks/{chunk-U2NNEY4R.js → chunk-ZEEVKDO7.js} +1 -1
- package/chunks/{chunk-5VXNZWGF.js → chunk-ZLOHB76C.js} +1 -1
- package/chunks/{chunk-JZETEN3Z.js → chunk-ZNCLTRNU.js} +3 -3
- package/chunks/{chunk-TO6QE22P.js → chunk-ZP4ZZJJG.js} +26 -22
- package/chunks/{chunk-UOZWKTQG.js → chunk-ZPAHLFZU.js} +2 -2
- package/chunks/{chunk-XLA62MYB.js → chunk-ZTXZ7FM4.js} +2 -2
- package/chunks/{computer-use-HM37RX6A.js → computer-use-DRETHEQF.js} +26 -26
- package/chunks/{config-utils-NV2SVGPB.js → config-utils-XSHOMMK4.js} +3 -2
- package/chunks/{contextCommand-OF5SFGH2.js → contextCommand-7YJUW23J.js} +28 -28
- package/chunks/{create-sub-session-INX7TXJI.js → create-sub-session-EAB2U5XW.js} +2 -2
- package/chunks/{create-sub-session-KPRT7ECJ.js → create-sub-session-L5HOZAEL.js} +26 -26
- 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-MI5HF26N.js} +603 -62
- package/chunks/{daemon-status-provider-B2UTZUJ2.js → daemon-status-provider-2D47GOJT.js} +36 -36
- package/chunks/{de-EBJN3OVN.js → de-2VCDRDGU.js} +4 -1
- package/chunks/{dist-WKPOYU7O.js → dist-IEXZC5ZR.js} +1 -1
- package/chunks/{dist-XKU3ABM5.js → dist-PQK4GCKA.js} +1 -1
- package/chunks/{dist-VHV4EVHG.js → dist-U75JK3PF.js} +1 -1
- package/chunks/{dist-R7LN5AZE.js → dist-VXO7QBON.js} +2 -2
- package/chunks/{dist-PNVLTKTL.js → dist-WH4TZSH3.js} +158 -4
- package/chunks/{dist-QYCAEZIT.js → dist-X2ABIW5R.js} +5 -1
- package/chunks/{earlyInputCapture-3VTHRC4C.js → earlyInputCapture-OJQPGCSX.js} +27 -27
- package/chunks/{edit-VNI4NJ73.js → edit-LZOAFLT2.js} +27 -27
- package/chunks/{en-5A6LA7RK.js → en-NJCA3TAA.js} +5 -1
- package/chunks/{enter-worktree-IYYBKPZT.js → enter-worktree-VL2TCGI5.js} +26 -26
- package/chunks/{enterPlanMode-GMC5FD5A.js → enterPlanMode-QGHBHZWI.js} +42 -27
- package/chunks/{environment-5HSSRMJ7.js → environment-2G5IC2EU.js} +30 -29
- package/chunks/{errors-HMFCJJ7P.js → errors-7QNQDNI2.js} +28 -28
- package/chunks/{exit-worktree-6BHCMP5G.js → exit-worktree-5V3X2MRH.js} +26 -26
- package/chunks/{exitPlanMode-CJW7G74W.js → exitPlanMode-XDPNQB4H.js} +26 -26
- package/chunks/{fast-path-FRDMDVHG.js → fast-path-NNSD4BVZ.js} +3 -3
- package/chunks/{fast-path-settings-5QZE64HR.js → fast-path-settings-DAOVFADC.js} +6 -4
- package/chunks/{fr-YXRABLYZ.js → fr-5F3E7WKD.js} +4 -1
- package/chunks/{gemini-QYSEGHAX.js → gemini-RKDUWGXJ.js} +139 -76
- package/chunks/{geminiContentGenerator-J7YNZDYP.js → geminiContentGenerator-V7QGHXVF.js} +4 -4
- package/chunks/{glob-BRCSGFOT.js → glob-ZNQUUOTS.js} +28 -27
- package/chunks/{grep-EE2DUOSY.js → grep-NYIGLM7R.js} +26 -26
- package/chunks/{handleAutoUpdate-5NWTLR67.js → handleAutoUpdate-UBQ4IQXY.js} +30 -30
- package/chunks/{i18n-BASPENNQ.js → i18n-5T3S6SGP.js} +27 -27
- package/chunks/initializer-TJED246Q.js +73 -0
- package/chunks/{installationInfo-W6V4DT7W.js → installationInfo-OTEU7FKR.js} +27 -27
- package/chunks/{ja-7VQOANVG.js → ja-66J6B53L.js} +5 -2
- package/chunks/{keychain-token-storage-VKUBNCP4.js → keychain-token-storage-AU22CQI6.js} +2 -2
- package/chunks/list-6OHS7MFJ.js +76 -0
- package/chunks/loadedSettingsAdapter-5456XIYG.js +70 -0
- package/chunks/{loop-wakeup-WX7BLWWP.js → loop-wakeup-C4EXLYVA.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-NOWRPFKY.js +70 -0
- package/chunks/{monitor-X5Z3H4FY.js → monitor-CVDZO3IZ.js} +26 -26
- package/chunks/nonInteractiveCli-UGI7Y43E.js +129 -0
- package/chunks/{notebook-edit-TRM2QIJK.js → notebook-edit-NWIA5TEJ.js} +27 -27
- package/chunks/{openaiContentGenerator-AAYONPMF.js → openaiContentGenerator-KJONBBJO.js} +12 -12
- package/chunks/{pidfile-D4I4FTVA.js → pidfile-L3TGXMTF.js} +27 -27
- package/chunks/{pt-2C6YCSHL.js → pt-TFZO5Y6T.js} +4 -1
- package/chunks/{qwenContentGenerator-K3HZ2H76.js → qwenContentGenerator-GXUZB5SJ.js} +28 -28
- package/chunks/{qwenOAuth2-PJQ27GSO.js → qwenOAuth2-LEYOU7RU.js} +5 -5
- package/chunks/{read-file-7SZSIZOL.js → read-file-I4OUZXTA.js} +8 -8
- 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-XLCXANIO.js} +26 -26
- package/chunks/{ru-6BBHVZZV.js → ru-4L4LFHIT.js} +4 -1
- package/chunks/{run-qwen-serve-DMWV5N6L.js → run-qwen-serve-R6SBP6YS.js} +1232 -371
- package/chunks/{runtime-57WWRVHN.js → runtime-U3S33YUQ.js} +42 -37
- package/chunks/{scheduler-YBLGWSIL.js → scheduler-65QCIELP.js} +26 -26
- package/chunks/{send-message-F36YD6KQ.js → send-message-JZ752NWD.js} +3 -3
- package/chunks/{serve-R63NK3CV.js → serve-PSPOFCOD.js} +36 -34
- package/chunks/{server-Z22GCAXP.js → server-6P5ZB56O.js} +5561 -1377
- package/chunks/{session-HKAAI7BN.js → session-ILLOYW75.js} +298 -98
- package/chunks/{settings-3EYN66GK.js → settings-RMUJGYIK.js} +34 -32
- package/chunks/{shell-6YXINTWJ.js → shell-65GTAN5Q.js} +28 -26
- package/chunks/{skill-OO57P4X6.js → skill-L76U3YCX.js} +10 -10
- package/chunks/{spawnChannel-JD7G4VU6.js → spawnChannel-LXIGZ4EM.js} +28 -28
- package/chunks/{src-G5UPLZSZ.js → src-DWZT2X3Z.js} +87 -27
- package/chunks/{standalone-update-OB7F4JPZ.js → standalone-update-F6SRKPSD.js} +28 -28
- package/chunks/{startInteractiveUI-73EGLIIH.js → startInteractiveUI-UEJQP7S3.js} +730 -397
- 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-4QBZVOGN.js} +26 -26
- package/chunks/{team-delete-6OSECUZC.js → team-delete-RCWYDRF4.js} +6 -5
- package/chunks/{team-plan-approval-L6F434RY.js → team-plan-approval-BK4CIOFV.js} +26 -26
- package/chunks/{theme-manager-ZG4RY6GU.js → theme-manager-5F2IGW6E.js} +27 -27
- package/chunks/{todoWrite-YDMFEV4G.js → todoWrite-FKCGATPJ.js} +4 -4
- package/chunks/{tool-search-THVIWAPB.js → tool-search-J2ESO33H.js} +9 -9
- package/chunks/{total-session-admission-JOKNRIIA.js → total-session-admission-U4LZ5QTQ.js} +33 -33
- package/chunks/tree-sitter-YJVE2ZUK.js +2980 -0
- package/chunks/{trustedFolders-EOGT3UVS.js → trustedFolders-TIDOXCJA.js} +29 -28
- package/chunks/types-ML3TRJQ5.js +16 -0
- package/chunks/{updateCheck-2KYEYVSB.js → updateCheck-VRVR26FI.js} +29 -29
- package/chunks/{validateNonInterActiveAuth-EN6ZQSR2.js → validateNonInterActiveAuth-UGKYAVLG.js} +75 -71
- package/chunks/{version-3UEA6ZIR.js → version-7HR6VZAT.js} +1 -1
- package/chunks/{web-fetch-PAAEQKBW.js → web-fetch-QGODBB6S.js} +5 -5
- package/chunks/{workflow-QCCCMYP3.js → workflow-EDQAITEW.js} +27 -27
- package/chunks/workspace-providers-status-27UGAK77.js +73 -0
- package/chunks/workspace-registration-store-5H7577YQ.js +27 -0
- package/chunks/{workspace-registry-24QFLQYH.js → workspace-registry-F3THGAXC.js} +33 -33
- package/chunks/workspace-service-4JSAQAHP.js +86 -0
- package/chunks/workspace-skills-status-5JTWZHZU.js +72 -0
- package/chunks/{write-file-I3MUDRIE.js → write-file-UY6XCZZM.js} +27 -27
- package/chunks/{zh-RQE7I22T.js → zh-FSAH32JB.js} +6 -2
- package/chunks/{zh-TW-TBPQGHKH.js → zh-TW-D2YIE2LO.js} +6 -2
- package/cli.js +11 -11
- package/locales/ca.js +6 -0
- package/locales/de.js +6 -0
- package/locales/en.js +8 -0
- package/locales/fr.js +6 -0
- package/locales/ja.js +7 -1
- package/locales/pt.js +6 -0
- package/locales/ru.js +6 -0
- package/locales/zh-TW.js +9 -1
- package/locales/zh.js +9 -1
- package/package.json +3 -3
- package/web-shell/assets/{arc-C15hqnJe.js → arc-CObt_TK9.js} +1 -1
- package/web-shell/assets/{architectureDiagram-3BPJPVTR-B-At37J_.js → architectureDiagram-3BPJPVTR-B7aiJ6CK.js} +1 -1
- package/web-shell/assets/{blockDiagram-GPEHLZMM-B51wjcU7.js → blockDiagram-GPEHLZMM-BSK2CrID.js} +1 -1
- package/web-shell/assets/{c4Diagram-AAUBKEIU-xBK7BAwN.js → c4Diagram-AAUBKEIU-Bhx2p7T_.js} +1 -1
- package/web-shell/assets/channel-BBaLq8MV.js +1 -0
- package/web-shell/assets/{chunk-2J33WTMH-xKmLg7Yr.js → chunk-2J33WTMH-c3Hzv0Ni.js} +1 -1
- package/web-shell/assets/{chunk-4BX2VUAB-BfkdKZCM.js → chunk-4BX2VUAB-DNXaK7ZF.js} +1 -1
- package/web-shell/assets/{chunk-55IACEB6-DT713sZf.js → chunk-55IACEB6-BXjvDj_i.js} +1 -1
- package/web-shell/assets/{chunk-727SXJPM-CYEeAamv.js → chunk-727SXJPM-B6CaKFp-.js} +1 -1
- package/web-shell/assets/{chunk-AQP2D5EJ-DBN-5CFd.js → chunk-AQP2D5EJ-tij6Mz9B.js} +1 -1
- package/web-shell/assets/{chunk-FMBD7UC4-CGZKk4PH.js → chunk-FMBD7UC4-DdlsGk2h.js} +1 -1
- package/web-shell/assets/{chunk-ND2GUHAM-qQbC2O-y.js → chunk-ND2GUHAM-CdgGZSHE.js} +1 -1
- package/web-shell/assets/{chunk-QZHKN3VN-B3zeXwsX.js → chunk-QZHKN3VN-D8oJn1C0.js} +1 -1
- package/web-shell/assets/classDiagram-4FO5ZUOK-B2ZK6sWE.js +1 -0
- package/web-shell/assets/classDiagram-v2-Q7XG4LA2-B2ZK6sWE.js +1 -0
- package/web-shell/assets/{cose-bilkent-S5V4N54A-BKsl1Wvy.js → cose-bilkent-S5V4N54A-BUVmNp1Y.js} +1 -1
- package/web-shell/assets/{dagre-BM42HDAG-CuuuLiBK.js → dagre-BM42HDAG-CO4q310O.js} +1 -1
- package/web-shell/assets/{diagram-2AECGRRQ-CG4_eKiV.js → diagram-2AECGRRQ-C6gFvWkg.js} +1 -1
- package/web-shell/assets/{diagram-5GNKFQAL-DSFTmZB1.js → diagram-5GNKFQAL-NG2I_c0h.js} +1 -1
- package/web-shell/assets/{diagram-KO2AKTUF-BxwlEHn8.js → diagram-KO2AKTUF-DFKMS6I9.js} +1 -1
- package/web-shell/assets/{diagram-LMA3HP47-BUAg-jMG.js → diagram-LMA3HP47-BiElfsfP.js} +1 -1
- package/web-shell/assets/{diagram-OG6HWLK6-BFM2jlO5.js → diagram-OG6HWLK6-zLWDYUqu.js} +1 -1
- package/web-shell/assets/{erDiagram-TEJ5UH35-CerbFPa2.js → erDiagram-TEJ5UH35-DoVaazhK.js} +1 -1
- package/web-shell/assets/{flowDiagram-I6XJVG4X-BNeZz5Zz.js → flowDiagram-I6XJVG4X-0RLz-mXg.js} +1 -1
- package/web-shell/assets/{ganttDiagram-6RSMTGT7-CTOogLaM.js → ganttDiagram-6RSMTGT7-C-eX1A39.js} +3 -3
- package/web-shell/assets/{gitGraphDiagram-PVQCEYII-yxSFkXPj.js → gitGraphDiagram-PVQCEYII-BauQu1Bu.js} +1 -1
- package/web-shell/assets/index-3uAT3ehO.css +5 -0
- package/web-shell/assets/index-CVHa2QH7.js +3 -0
- package/web-shell/assets/index-D1KigWat.js +1128 -0
- package/web-shell/assets/{infoDiagram-5YYISTIA-DYdAUevm.js → infoDiagram-5YYISTIA-C800cFvZ.js} +1 -1
- package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-CNuijZ90.js → ishikawaDiagram-YF4QCWOH-CFK1Jk6e.js} +1 -1
- package/web-shell/assets/{journeyDiagram-JHISSGLW-BTyiuonf.js → journeyDiagram-JHISSGLW-Cjx0WAC4.js} +1 -1
- package/web-shell/assets/{kanban-definition-UN3LZRKU-DPJo0Uow.js → kanban-definition-UN3LZRKU-DWMDHbiv.js} +1 -1
- package/web-shell/assets/{linear-C8wKCbIC.js → linear-vpW4FrZs.js} +1 -1
- package/web-shell/assets/{mermaid.core-BV5o7nW5.js → mermaid.core-DsHRUnDd.js} +5 -5
- package/web-shell/assets/{mindmap-definition-RKZ34NQL-BtLcBmSt.js → mindmap-definition-RKZ34NQL-D3Eb1cAK.js} +1 -1
- package/web-shell/assets/{pieDiagram-4H26LBE5-C22J7A9Q.js → pieDiagram-4H26LBE5-Cr2-6sWt.js} +1 -1
- package/web-shell/assets/{quadrantDiagram-W4KKPZXB-DSL10wiL.js → quadrantDiagram-W4KKPZXB-Yd7yUgVp.js} +1 -1
- package/web-shell/assets/{requirementDiagram-4Y6WPE33-feqh0UpX.js → requirementDiagram-4Y6WPE33-BE6SprL8.js} +1 -1
- package/web-shell/assets/{sankeyDiagram-5OEKKPKP-Z4OVaWaZ.js → sankeyDiagram-5OEKKPKP-DzkuMK8d.js} +1 -1
- package/web-shell/assets/{sequenceDiagram-3UESZ5HK-DIluIcb1.js → sequenceDiagram-3UESZ5HK-wD9A3Dhi.js} +1 -1
- package/web-shell/assets/{stateDiagram-AJRCARHV-hlhnuoYH.js → stateDiagram-AJRCARHV-BOp5q1Nm.js} +1 -1
- package/web-shell/assets/stateDiagram-v2-BHNVJYJU-BDsWUmPG.js +1 -0
- package/web-shell/assets/{timeline-definition-PNZ67QCA-Dqf_CqgL.js → timeline-definition-PNZ67QCA-Btc08sUA.js} +1 -1
- package/web-shell/assets/{vennDiagram-CIIHVFJN-DD2QhaTX.js → vennDiagram-CIIHVFJN-Bv6upsOA.js} +1 -1
- package/web-shell/assets/{wardley-L42UT6IY-B2uI85U_.js → wardley-L42UT6IY-D-XamnCK.js} +1 -1
- package/web-shell/assets/{wardleyDiagram-YWT4CUSO-U1aJX71g.js → wardleyDiagram-YWT4CUSO-BbP_5Wfp.js} +1 -1
- package/web-shell/assets/{xychartDiagram-2RQKCTM6-C0ODHUee.js → xychartDiagram-2RQKCTM6-CO5Hh28b.js} +1 -1
- package/web-shell/index.html +2 -2
- package/chunks/chunk-CU3L64TP.js +0 -93
- 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
|
@@ -2,28 +2,33 @@
|
|
|
2
2
|
"use strict";
|
|
3
3
|
import {
|
|
4
4
|
CHANNEL_DAEMON_WORKER_SENTINEL,
|
|
5
|
-
CHANNEL_WEBHOOK_TASK_IPC_TIMEOUT_MS,
|
|
6
5
|
CHANNEL_WORKER_HEARTBEAT_INTERVAL_MS,
|
|
7
|
-
ChannelWebhookEnqueueError,
|
|
8
6
|
QWEN_DAEMON_TOKEN_ENV,
|
|
9
7
|
QWEN_DAEMON_URL_ENV,
|
|
10
8
|
QWEN_DAEMON_WORKSPACE_ENV,
|
|
11
|
-
QWEN_SERVER_TOKEN_ENV
|
|
12
|
-
|
|
13
|
-
isChannelWebhookEnqueueErrorCode,
|
|
14
|
-
isChannelWebhookTaskResultMessage
|
|
15
|
-
} from "./chunk-X4NKFGFJ.js";
|
|
9
|
+
QWEN_SERVER_TOKEN_ENV
|
|
10
|
+
} from "./chunk-GYTKQYDB.js";
|
|
16
11
|
import {
|
|
17
12
|
channelSelectionNames
|
|
18
13
|
} from "./chunk-TJTKSVIV.js";
|
|
19
14
|
import {
|
|
20
15
|
redactLogCredentials
|
|
21
16
|
} from "./chunk-M5GB774H.js";
|
|
17
|
+
import {
|
|
18
|
+
CHANNEL_WORKER_KILL_GRACE_MS,
|
|
19
|
+
CHANNEL_WORKER_STARTUP_TIMEOUT_MS,
|
|
20
|
+
CHANNEL_WORKER_STOP_GRACE_MS
|
|
21
|
+
} from "./chunk-5HBA2Z7V.js";
|
|
22
|
+
import {
|
|
23
|
+
CHANNEL_WEBHOOK_TASK_IPC_TIMEOUT_MS,
|
|
24
|
+
ChannelWebhookEnqueueError,
|
|
25
|
+
createChannelWebhookTaskMessage,
|
|
26
|
+
isChannelWebhookEnqueueErrorCode,
|
|
27
|
+
isChannelWebhookTaskResultMessage
|
|
28
|
+
} from "./chunk-OJAMDVF5.js";
|
|
22
29
|
import {
|
|
23
30
|
sanitizeLogText
|
|
24
|
-
} from "./chunk-
|
|
25
|
-
import "./chunk-UDXSXLER.js";
|
|
26
|
-
import "./chunk-H6XPXXMH.js";
|
|
31
|
+
} from "./chunk-AU4R7ACM.js";
|
|
27
32
|
import {
|
|
28
33
|
init_esbuild_shims
|
|
29
34
|
} from "./chunk-5O2XNYP6.js";
|
|
@@ -35,9 +40,7 @@ import {
|
|
|
35
40
|
init_esbuild_shims();
|
|
36
41
|
import { fork } from "node:child_process";
|
|
37
42
|
import { randomUUID } from "node:crypto";
|
|
38
|
-
var DEFAULT_CHANNEL_WORKER_STARTUP_TIMEOUT_MS = 3e4;
|
|
39
43
|
var DEFAULT_CHANNEL_WORKER_HEARTBEAT_TIMEOUT_MS = 45e3;
|
|
40
|
-
var CHANNEL_WORKER_STOP_GRACE_MS = 1e4;
|
|
41
44
|
var MAX_WORKER_LOG_LINE_LENGTH = 4096;
|
|
42
45
|
var MAX_WORKER_LOG_BUFFER_LENGTH = 64 * 1024;
|
|
43
46
|
var MAX_WORKER_LOG_DISCARDED_REMAINDER_LENGTH = MAX_WORKER_LOG_BUFFER_LENGTH;
|
|
@@ -47,6 +50,15 @@ var ANSI_CSI_SEQUENCE_RE = new RegExp(
|
|
|
47
50
|
);
|
|
48
51
|
var WORKER_LOG_INVISIBLE_RE = new RegExp("[\\p{Cf}\\u2028\\u2029]|\\p{Variation_Selector}", "gu");
|
|
49
52
|
var WORKER_LOG_CONTROL_RE = /[\x00-\x08\x0a-\x1f\x7f]/g;
|
|
53
|
+
var ChannelWorkerStopError = class extends Error {
|
|
54
|
+
static {
|
|
55
|
+
__name(this, "ChannelWorkerStopError");
|
|
56
|
+
}
|
|
57
|
+
constructor(message = "Channel worker did not exit after SIGKILL.") {
|
|
58
|
+
super(message);
|
|
59
|
+
this.name = "ChannelWorkerStopError";
|
|
60
|
+
}
|
|
61
|
+
};
|
|
50
62
|
var DEFAULT_RESTART_POLICY = {
|
|
51
63
|
maxRestarts: 3,
|
|
52
64
|
windowMs: 5 * 6e4,
|
|
@@ -118,15 +130,17 @@ __name(notifyLog, "notifyLog");
|
|
|
118
130
|
function waitForExit(child, timeoutMs) {
|
|
119
131
|
return new Promise((resolve) => {
|
|
120
132
|
let settled = false;
|
|
133
|
+
const onExit = /* @__PURE__ */ __name(() => done(true), "onExit");
|
|
121
134
|
const done = /* @__PURE__ */ __name((exited) => {
|
|
122
135
|
if (settled) return;
|
|
123
136
|
settled = true;
|
|
124
|
-
|
|
137
|
+
clearTimeout(timer);
|
|
138
|
+
child.removeListener("exit", onExit);
|
|
125
139
|
resolve(exited);
|
|
126
140
|
}, "done");
|
|
127
141
|
const timer = setTimeout(() => done(false), timeoutMs);
|
|
128
142
|
timer.unref();
|
|
129
|
-
child.once("exit",
|
|
143
|
+
child.once("exit", onExit);
|
|
130
144
|
});
|
|
131
145
|
}
|
|
132
146
|
__name(waitForExit, "waitForExit");
|
|
@@ -135,7 +149,7 @@ function hasObservedExit(snapshot) {
|
|
|
135
149
|
}
|
|
136
150
|
__name(hasObservedExit, "hasObservedExit");
|
|
137
151
|
function createWorkerEnv(opts) {
|
|
138
|
-
const env = { ...process.env };
|
|
152
|
+
const env = { ...opts.baseEnv ?? process.env };
|
|
139
153
|
env["QWEN_CODE_NO_RELAUNCH"] = "true";
|
|
140
154
|
env[CHANNEL_DAEMON_WORKER_SENTINEL] = randomUUID();
|
|
141
155
|
env[QWEN_DAEMON_URL_ENV] = opts.daemonUrl;
|
|
@@ -428,7 +442,8 @@ function createChannelWorkerSupervisor(opts) {
|
|
|
428
442
|
const env = createWorkerEnv({
|
|
429
443
|
daemonUrl: opts.daemonUrl,
|
|
430
444
|
workspace: opts.workspace,
|
|
431
|
-
...opts.daemonToken ? { daemonToken: opts.daemonToken } : {}
|
|
445
|
+
...opts.daemonToken ? { daemonToken: opts.daemonToken } : {},
|
|
446
|
+
...opts.workerBaseEnv ? { baseEnv: opts.workerBaseEnv } : {}
|
|
432
447
|
});
|
|
433
448
|
const redaction = workerLogRedactionOptions(opts.daemonToken, env);
|
|
434
449
|
const requestedChannels = requestedChannelNames(opts.selection);
|
|
@@ -507,18 +522,27 @@ function createChannelWorkerSupervisor(opts) {
|
|
|
507
522
|
cleanupLaunch();
|
|
508
523
|
if (terminatingBeforeReady) return;
|
|
509
524
|
terminatingBeforeReady = true;
|
|
510
|
-
const exited = waitForExit(startedChild,
|
|
525
|
+
const exited = waitForExit(startedChild, CHANNEL_WORKER_KILL_GRACE_MS);
|
|
511
526
|
startedChild.kill("SIGTERM");
|
|
512
527
|
void exited.then(async (didExit) => {
|
|
513
528
|
if (!didExit && child === startedChild && !exitObserved) {
|
|
514
|
-
const killed = waitForExit(
|
|
529
|
+
const killed = waitForExit(
|
|
530
|
+
startedChild,
|
|
531
|
+
CHANNEL_WORKER_KILL_GRACE_MS
|
|
532
|
+
);
|
|
515
533
|
startedChild.kill("SIGKILL");
|
|
516
534
|
if (!await killed && child === startedChild && !exitObserved) {
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
}
|
|
535
|
+
stopping = true;
|
|
536
|
+
notifyLog(opts.onLog, {
|
|
537
|
+
stream: "stderr",
|
|
538
|
+
line: "Channel worker did not exit after SIGKILL; automatic restart is disabled."
|
|
539
|
+
});
|
|
540
|
+
snapshot = {
|
|
541
|
+
...snapshot,
|
|
542
|
+
state: "failed",
|
|
543
|
+
error: snapshot.error ?? "Channel worker did not exit after SIGKILL."
|
|
544
|
+
};
|
|
545
|
+
notifyExit(opts.onExit, snapshotCopy());
|
|
522
546
|
}
|
|
523
547
|
}
|
|
524
548
|
});
|
|
@@ -628,7 +652,7 @@ function createChannelWorkerSupervisor(opts) {
|
|
|
628
652
|
}
|
|
629
653
|
__name(settleError, "settleError");
|
|
630
654
|
startupTimer = setTimeout(() => {
|
|
631
|
-
const timeoutMs = opts.startupTimeoutMs ??
|
|
655
|
+
const timeoutMs = opts.startupTimeoutMs ?? CHANNEL_WORKER_STARTUP_TIMEOUT_MS;
|
|
632
656
|
const error = `Channel worker did not become ready within ${timeoutMs}ms.`;
|
|
633
657
|
snapshot = {
|
|
634
658
|
...snapshot,
|
|
@@ -639,7 +663,7 @@ function createChannelWorkerSupervisor(opts) {
|
|
|
639
663
|
if (child === startedChild) {
|
|
640
664
|
terminateBeforeReady();
|
|
641
665
|
}
|
|
642
|
-
}, opts.startupTimeoutMs ??
|
|
666
|
+
}, opts.startupTimeoutMs ?? CHANNEL_WORKER_STARTUP_TIMEOUT_MS);
|
|
643
667
|
startupTimer.unref();
|
|
644
668
|
startedChild.on("message", handleMessage);
|
|
645
669
|
startedChild.once("exit", settleExit);
|
|
@@ -648,7 +672,15 @@ function createChannelWorkerSupervisor(opts) {
|
|
|
648
672
|
}, "launch");
|
|
649
673
|
const supervisor = {
|
|
650
674
|
async start() {
|
|
651
|
-
if (disposed
|
|
675
|
+
if (disposed) return;
|
|
676
|
+
if (child) {
|
|
677
|
+
if (stopping) {
|
|
678
|
+
throw new ChannelWorkerStopError(
|
|
679
|
+
"Channel worker stop is not yet confirmed."
|
|
680
|
+
);
|
|
681
|
+
}
|
|
682
|
+
return;
|
|
683
|
+
}
|
|
652
684
|
stopping = false;
|
|
653
685
|
clearRestartTimer();
|
|
654
686
|
restartAttemptTimes = [];
|
|
@@ -666,22 +698,20 @@ function createChannelWorkerSupervisor(opts) {
|
|
|
666
698
|
snapshot = { ...snapshot, state: "stopped" };
|
|
667
699
|
return;
|
|
668
700
|
}
|
|
669
|
-
const
|
|
701
|
+
const stoppingChild = child;
|
|
702
|
+
const exited = waitForExit(stoppingChild, CHANNEL_WORKER_STOP_GRACE_MS);
|
|
670
703
|
stopping = true;
|
|
671
|
-
|
|
672
|
-
if (!await exited) {
|
|
673
|
-
const killed = waitForExit(
|
|
674
|
-
|
|
704
|
+
stoppingChild.kill("SIGTERM");
|
|
705
|
+
if (!await exited && child === stoppingChild) {
|
|
706
|
+
const killed = waitForExit(stoppingChild, CHANNEL_WORKER_KILL_GRACE_MS);
|
|
707
|
+
stoppingChild.kill("SIGKILL");
|
|
675
708
|
if (!await killed) {
|
|
676
|
-
child = void 0;
|
|
677
|
-
stopping = false;
|
|
678
709
|
snapshot = {
|
|
679
710
|
...snapshot,
|
|
680
711
|
state: "failed",
|
|
681
|
-
signal: "SIGKILL",
|
|
682
712
|
error: "Channel worker did not exit after SIGKILL."
|
|
683
713
|
};
|
|
684
|
-
|
|
714
|
+
throw new ChannelWorkerStopError();
|
|
685
715
|
}
|
|
686
716
|
}
|
|
687
717
|
child = void 0;
|
|
@@ -784,6 +814,8 @@ function createChannelWorkerSupervisor(opts) {
|
|
|
784
814
|
return supervisor;
|
|
785
815
|
}
|
|
786
816
|
__name(createChannelWorkerSupervisor, "createChannelWorkerSupervisor");
|
|
817
|
+
|
|
787
818
|
export {
|
|
819
|
+
ChannelWorkerStopError,
|
|
788
820
|
createChannelWorkerSupervisor
|
|
789
821
|
};
|
|
@@ -91,6 +91,8 @@ var PATTERNS = [
|
|
|
91
91
|
// -------------------
|
|
92
92
|
// Anthropic Claude
|
|
93
93
|
// -------------------
|
|
94
|
+
[/^claude-opus-4-(?:6|7|8)/, LIMITS["1m"]],
|
|
95
|
+
// Opus 4.6-4.8: 1M
|
|
94
96
|
[/^claude-/, LIMITS["200k"]],
|
|
95
97
|
// All Claude models: 200K
|
|
96
98
|
// -------------------
|
|
@@ -107,7 +109,7 @@ var PATTERNS = [
|
|
|
107
109
|
[/^qwen3-max/, LIMITS["256k"]],
|
|
108
110
|
// Open-source Qwen3 variants: 256K native
|
|
109
111
|
[/^qwen3-coder-/, LIMITS["256k"]],
|
|
110
|
-
// Qwen fallback (VL, turbo, plus, 2.5, etc.):
|
|
112
|
+
// Qwen fallback (VL, turbo, plus, 2.5, etc.): 256K
|
|
111
113
|
[/^qwen/, LIMITS["256k"]],
|
|
112
114
|
// -------------------
|
|
113
115
|
// DeepSeek
|
|
@@ -160,8 +162,8 @@ var OUTPUT_PATTERNS = [
|
|
|
160
162
|
[/^o\d/, LIMITS["128k"]],
|
|
161
163
|
// o-series: 128K
|
|
162
164
|
// Anthropic Claude
|
|
163
|
-
[/^claude-opus-4-6/,
|
|
164
|
-
// Opus 4.6: 128K
|
|
165
|
+
[/^claude-opus-4-(?:6|7|8)/, 128e3],
|
|
166
|
+
// Opus 4.6-4.8: 128K
|
|
165
167
|
[/^claude-sonnet-4-6/, LIMITS["64k"]],
|
|
166
168
|
// Sonnet 4.6: 64K
|
|
167
169
|
[/^claude-/, LIMITS["64k"]],
|
|
@@ -210,7 +212,11 @@ function tokenLimit(model, type = "input") {
|
|
|
210
212
|
}
|
|
211
213
|
__name(tokenLimit, "tokenLimit");
|
|
212
214
|
function defaultOutputCeiling(model) {
|
|
213
|
-
|
|
215
|
+
const outputLimit = tokenLimit(model, "output");
|
|
216
|
+
if (/^claude-opus-4-(?:6|7|8)/.test(normalize(model))) {
|
|
217
|
+
return outputLimit;
|
|
218
|
+
}
|
|
219
|
+
return Math.min(outputLimit, OUTPUT_TOKEN_CEILING);
|
|
214
220
|
}
|
|
215
221
|
__name(defaultOutputCeiling, "defaultOutputCeiling");
|
|
216
222
|
function reconcileMaxTokens(configMaxTokens, requestMaxTokens) {
|
|
@@ -19,15 +19,15 @@ import {
|
|
|
19
19
|
taskHasLegacyCondition,
|
|
20
20
|
taskHasLegacyRunMode,
|
|
21
21
|
updateCronTasks
|
|
22
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-SPJQO2CE.js";
|
|
23
23
|
import {
|
|
24
24
|
ToolNames
|
|
25
|
-
} from "./chunk-
|
|
25
|
+
} from "./chunk-JGUT3LWZ.js";
|
|
26
26
|
import {
|
|
27
27
|
Storage,
|
|
28
28
|
createDebugLogger,
|
|
29
29
|
getProjectHash
|
|
30
|
-
} from "./chunk-
|
|
30
|
+
} from "./chunk-7NFB7LBQ.js";
|
|
31
31
|
import {
|
|
32
32
|
init_esbuild_shims
|
|
33
33
|
} from "./chunk-5O2XNYP6.js";
|
|
@@ -2,20 +2,20 @@
|
|
|
2
2
|
"use strict";
|
|
3
3
|
import {
|
|
4
4
|
mapSkillConfigToStatus
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-2W3OOD4W.js";
|
|
6
6
|
import {
|
|
7
7
|
STATUS_SCHEMA_VERSION
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-7DXHIMXL.js";
|
|
9
9
|
import {
|
|
10
10
|
loadSettings
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-CQQD7MDG.js";
|
|
12
12
|
import {
|
|
13
13
|
writeStderrLine
|
|
14
14
|
} from "./chunk-YUZI3WAC.js";
|
|
15
15
|
import {
|
|
16
16
|
SkillManager,
|
|
17
17
|
isSafeModeEnv
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-XCR44EEA.js";
|
|
19
19
|
import {
|
|
20
20
|
init_esbuild_shims
|
|
21
21
|
} from "./chunk-5O2XNYP6.js";
|
|
@@ -5,13 +5,13 @@ import {
|
|
|
5
5
|
} from "./chunk-E5Z2AVNV.js";
|
|
6
6
|
import {
|
|
7
7
|
getCliVersion
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-C5TVXLJZ.js";
|
|
9
9
|
import {
|
|
10
10
|
IdeClient
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-XCR44EEA.js";
|
|
12
12
|
import {
|
|
13
13
|
createDebugLogger
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-7NFB7LBQ.js";
|
|
15
15
|
import {
|
|
16
16
|
init_esbuild_shims
|
|
17
17
|
} from "./chunk-5O2XNYP6.js";
|
|
@@ -27,7 +27,7 @@ import { execFile } from "node:child_process";
|
|
|
27
27
|
|
|
28
28
|
// packages/cli/src/generated/git-commit.ts
|
|
29
29
|
init_esbuild_shims();
|
|
30
|
-
var GIT_COMMIT_INFO = "
|
|
30
|
+
var GIT_COMMIT_INFO = "83c761d27";
|
|
31
31
|
|
|
32
32
|
// packages/cli/src/utils/systemInfo.ts
|
|
33
33
|
var debugLogger = createDebugLogger("STATUS");
|
|
@@ -23,29 +23,29 @@ import {
|
|
|
23
23
|
} from "./chunk-VGC4I5JJ.js";
|
|
24
24
|
import {
|
|
25
25
|
isAnyAutoMemPath
|
|
26
|
-
} from "./chunk-
|
|
26
|
+
} from "./chunk-FBU7WRZI.js";
|
|
27
27
|
import {
|
|
28
28
|
InstallationManager
|
|
29
|
-
} from "./chunk-
|
|
29
|
+
} from "./chunk-Y66VOBRP.js";
|
|
30
30
|
import {
|
|
31
31
|
STRUCTURED_OUTPUT_REDACTED_ARGS
|
|
32
|
-
} from "./chunk-
|
|
32
|
+
} from "./chunk-WTNZ6DXB.js";
|
|
33
33
|
import {
|
|
34
34
|
BaseDeclarativeTool,
|
|
35
35
|
BaseToolInvocation,
|
|
36
36
|
ToolDisplayNames,
|
|
37
37
|
ToolNames
|
|
38
|
-
} from "./chunk-
|
|
38
|
+
} from "./chunk-JGUT3LWZ.js";
|
|
39
39
|
import {
|
|
40
40
|
atomicWriteFile,
|
|
41
41
|
atomicWriteFileSync
|
|
42
|
-
} from "./chunk-
|
|
42
|
+
} from "./chunk-WIEO4CWB.js";
|
|
43
43
|
import {
|
|
44
44
|
convertSchema,
|
|
45
45
|
estimateTextTokens,
|
|
46
46
|
runtimeDiagnostics,
|
|
47
47
|
safeJsonParse
|
|
48
|
-
} from "./chunk-
|
|
48
|
+
} from "./chunk-TQBODCFD.js";
|
|
49
49
|
import {
|
|
50
50
|
require_lib
|
|
51
51
|
} from "./chunk-A4UCTEB5.js";
|
|
@@ -71,7 +71,7 @@ import {
|
|
|
71
71
|
setShellTracePropagation,
|
|
72
72
|
shortenPath,
|
|
73
73
|
unescapePath
|
|
74
|
-
} from "./chunk-
|
|
74
|
+
} from "./chunk-7NFB7LBQ.js";
|
|
75
75
|
import {
|
|
76
76
|
require_dist
|
|
77
77
|
} from "./chunk-75DOP5OR.js";
|
|
@@ -61936,7 +61936,7 @@ function getLanguageFromFilePath(filePath) {
|
|
|
61936
61936
|
return extensionToLanguageMap[extension];
|
|
61937
61937
|
}
|
|
61938
61938
|
const filename = path3.basename(filePath).toLowerCase();
|
|
61939
|
-
return extensionToLanguageMap[`.${filename}`];
|
|
61939
|
+
return extensionToLanguageMap[filename] ?? extensionToLanguageMap[`.${filename}`];
|
|
61940
61940
|
}
|
|
61941
61941
|
__name(getLanguageFromFilePath, "getLanguageFromFilePath");
|
|
61942
61942
|
|
|
@@ -64174,6 +64174,20 @@ function parseTaggedThinkingText(text) {
|
|
|
64174
64174
|
}
|
|
64175
64175
|
__name(parseTaggedThinkingText, "parseTaggedThinkingText");
|
|
64176
64176
|
|
|
64177
|
+
// packages/core/src/core/invalid-stream-error.ts
|
|
64178
|
+
init_esbuild_shims();
|
|
64179
|
+
var InvalidStreamError = class extends Error {
|
|
64180
|
+
static {
|
|
64181
|
+
__name(this, "InvalidStreamError");
|
|
64182
|
+
}
|
|
64183
|
+
type;
|
|
64184
|
+
constructor(message, type) {
|
|
64185
|
+
super(message);
|
|
64186
|
+
this.name = "InvalidStreamError";
|
|
64187
|
+
this.type = type;
|
|
64188
|
+
}
|
|
64189
|
+
};
|
|
64190
|
+
|
|
64177
64191
|
// packages/core/src/core/openaiContentGenerator/converter.ts
|
|
64178
64192
|
var debugLogger6 = createDebugLogger("CONVERTER");
|
|
64179
64193
|
var SPLIT_TOOL_MEDIA_TEXT = "(attached media from previous tool call)";
|
|
@@ -64830,6 +64844,10 @@ function hasThoughtPart(parts) {
|
|
|
64830
64844
|
return parts.some((part) => part.thought === true);
|
|
64831
64845
|
}
|
|
64832
64846
|
__name(hasThoughtPart, "hasThoughtPart");
|
|
64847
|
+
var THINKING_TAG_PATTERN = /<\/?think(?:ing)?\s*>/i;
|
|
64848
|
+
var CLOSING_THINKING_TAG_PATTERN = /\n[^\S\r\n]*<\/think(?:ing)?[^\S\r\n]*>/i;
|
|
64849
|
+
var LEADING_CLOSING_THINKING_TAG_PATTERN = /^[^\S\r\n]*<\/think(?:ing)?[^\S\r\n]*>/i;
|
|
64850
|
+
var LEADING_THINKING_TAG_PATTERN = /^\s*<\/?think(?:ing)?\s*>/i;
|
|
64833
64851
|
function convertOpenAIResponseToGemini(openaiResponse, requestContext) {
|
|
64834
64852
|
const choice = openaiResponse.choices?.[0];
|
|
64835
64853
|
const response = new GenerateContentResponse();
|
|
@@ -64913,7 +64931,7 @@ function convertOpenAIChunkToGemini(chunk, requestContext) {
|
|
|
64913
64931
|
);
|
|
64914
64932
|
}
|
|
64915
64933
|
if (choice) {
|
|
64916
|
-
|
|
64934
|
+
let parts = [];
|
|
64917
64935
|
let contentParts = [];
|
|
64918
64936
|
const reasoningText = choice.delta?.reasoning_content ?? choice.delta?.reasoning;
|
|
64919
64937
|
if (typeof choice.delta?.content === "string") {
|
|
@@ -64958,6 +64976,12 @@ function convertOpenAIChunkToGemini(chunk, requestContext) {
|
|
|
64958
64976
|
cumulativeMode: false
|
|
64959
64977
|
}
|
|
64960
64978
|
);
|
|
64979
|
+
if (normalizedReasoningText) {
|
|
64980
|
+
requestContext.hasStructuredReasoningContent = true;
|
|
64981
|
+
if (THINKING_TAG_PATTERN.test(normalizedReasoningText)) {
|
|
64982
|
+
requestContext.hasThinkingTagInReasoning = true;
|
|
64983
|
+
}
|
|
64984
|
+
}
|
|
64961
64985
|
if (normalizedReasoningText && !requestContext.responseParsingOptions?.taggedThinkingTags) {
|
|
64962
64986
|
parts.push(createOpenAIReasoningThoughtPart(normalizedReasoningText));
|
|
64963
64987
|
} else if (normalizedReasoningText && !requestContext.hasTaggedThinkingThought) {
|
|
@@ -65015,10 +65039,45 @@ function convertOpenAIChunkToGemini(chunk, requestContext) {
|
|
|
65015
65039
|
}
|
|
65016
65040
|
}
|
|
65017
65041
|
}
|
|
65042
|
+
const visibleText = parts.map(
|
|
65043
|
+
(part) => part.thought !== true && typeof part.text === "string" ? part.text : ""
|
|
65044
|
+
).join("");
|
|
65045
|
+
const leakedThinkingTag = requestContext.hasStructuredReasoningContent === true && (requestContext.hasVisibleContent !== true && LEADING_THINKING_TAG_PATTERN.test(visibleText) || requestContext.hasThinkingTagInReasoning === true && (CLOSING_THINKING_TAG_PATTERN.test(visibleText) || requestContext.atVisibleLineStart === true && LEADING_CLOSING_THINKING_TAG_PATTERN.test(visibleText)));
|
|
65046
|
+
if (/\S/.test(visibleText)) {
|
|
65047
|
+
requestContext.hasVisibleContent = true;
|
|
65048
|
+
}
|
|
65049
|
+
if (visibleText && requestContext.hasThinkingTagInReasoning === true) {
|
|
65050
|
+
const lastLineBreak = visibleText.lastIndexOf("\n");
|
|
65051
|
+
const lineSuffix = visibleText.slice(lastLineBreak + 1);
|
|
65052
|
+
requestContext.atVisibleLineStart = (lastLineBreak >= 0 || requestContext.atVisibleLineStart === true) && /^[^\S\r\n]*$/.test(lineSuffix);
|
|
65053
|
+
}
|
|
65054
|
+
if (leakedThinkingTag) {
|
|
65055
|
+
requestContext.pendingUntrustedResponseParts = void 0;
|
|
65056
|
+
throw new InvalidStreamError(
|
|
65057
|
+
"Model response leaked thinking tags.",
|
|
65058
|
+
"PROTOCOL_TAG_LEAK"
|
|
65059
|
+
);
|
|
65060
|
+
}
|
|
65061
|
+
const toolCallWithoutName = toolCallParser.hasNamelessToolCall();
|
|
65062
|
+
const completedToolCalls = choice.finish_reason ? toolCallParser.getCompletedToolCalls() : [];
|
|
65063
|
+
if (choice.finish_reason && (toolCallWithoutName || choice.finish_reason === "tool_calls" && completedToolCalls.length === 0)) {
|
|
65064
|
+
requestContext.pendingUntrustedResponseParts = void 0;
|
|
65065
|
+
throw new InvalidStreamError(
|
|
65066
|
+
"Model response contained a malformed tool call.",
|
|
65067
|
+
"MALFORMED_TOOL_CALL"
|
|
65068
|
+
);
|
|
65069
|
+
}
|
|
65070
|
+
const shouldHoldParts = !choice.finish_reason && (toolCallWithoutName || requestContext.hasThinkingTagInReasoning === true);
|
|
65071
|
+
if (shouldHoldParts) {
|
|
65072
|
+
(requestContext.pendingUntrustedResponseParts ??= []).push(...parts);
|
|
65073
|
+
parts.length = 0;
|
|
65074
|
+
} else if (requestContext.pendingUntrustedResponseParts) {
|
|
65075
|
+
parts = requestContext.pendingUntrustedResponseParts.concat(parts);
|
|
65076
|
+
requestContext.pendingUntrustedResponseParts = void 0;
|
|
65077
|
+
}
|
|
65018
65078
|
let toolCallsTruncated = false;
|
|
65019
65079
|
if (choice.finish_reason) {
|
|
65020
65080
|
toolCallsTruncated = toolCallParser.hasIncompleteToolCalls();
|
|
65021
|
-
const completedToolCalls = toolCallParser.getCompletedToolCalls();
|
|
65022
65081
|
for (const toolCall of completedToolCalls) {
|
|
65023
65082
|
if (toolCall.name) {
|
|
65024
65083
|
parts.push({
|
|
@@ -66728,7 +66787,11 @@ function endToolExecutionSpan(span, metadata) {
|
|
|
66728
66787
|
spanCtx.ended = true;
|
|
66729
66788
|
try {
|
|
66730
66789
|
const duration = Date.now() - spanCtx.startTime;
|
|
66731
|
-
const endAttributes = {
|
|
66790
|
+
const endAttributes = {};
|
|
66791
|
+
if (metadata?.attributes) {
|
|
66792
|
+
Object.assign(endAttributes, metadata.attributes);
|
|
66793
|
+
}
|
|
66794
|
+
endAttributes["duration_ms"] = duration;
|
|
66732
66795
|
if (metadata) {
|
|
66733
66796
|
if (metadata.success !== void 0)
|
|
66734
66797
|
endAttributes["success"] = metadata.success;
|
|
@@ -68362,6 +68425,44 @@ var UiTelemetryService = class _UiTelemetryService extends EventEmitter {
|
|
|
68362
68425
|
};
|
|
68363
68426
|
var uiTelemetryService = new UiTelemetryService();
|
|
68364
68427
|
|
|
68428
|
+
// packages/core/src/telemetry/api-activity-tracker.ts
|
|
68429
|
+
init_esbuild_shims();
|
|
68430
|
+
var ApiActivityTracker = class {
|
|
68431
|
+
static {
|
|
68432
|
+
__name(this, "ApiActivityTracker");
|
|
68433
|
+
}
|
|
68434
|
+
#errors = 0;
|
|
68435
|
+
#retries = 0;
|
|
68436
|
+
/** Fold in one model API error (called from `logApiError`). */
|
|
68437
|
+
recordError() {
|
|
68438
|
+
this.#errors += 1;
|
|
68439
|
+
}
|
|
68440
|
+
/** Fold in one automatic retry (called from `logApiRetry`). */
|
|
68441
|
+
recordRetry() {
|
|
68442
|
+
this.#retries += 1;
|
|
68443
|
+
}
|
|
68444
|
+
/**
|
|
68445
|
+
* Return the counts accumulated since the last drain and reset them to zero.
|
|
68446
|
+
* The read+reset is synchronous (no `await` between), so a `recordError` /
|
|
68447
|
+
* `recordRetry` racing an in-progress drain can never be lost — it simply
|
|
68448
|
+
* lands in the next window.
|
|
68449
|
+
*/
|
|
68450
|
+
drain() {
|
|
68451
|
+
const counts = {
|
|
68452
|
+
errors: this.#errors,
|
|
68453
|
+
retries: this.#retries
|
|
68454
|
+
};
|
|
68455
|
+
this.#errors = 0;
|
|
68456
|
+
this.#retries = 0;
|
|
68457
|
+
return counts;
|
|
68458
|
+
}
|
|
68459
|
+
/** Peek at the pending counts without draining (tests / diagnostics). */
|
|
68460
|
+
peek() {
|
|
68461
|
+
return { errors: this.#errors, retries: this.#retries };
|
|
68462
|
+
}
|
|
68463
|
+
};
|
|
68464
|
+
var apiActivityTracker = new ApiActivityTracker();
|
|
68465
|
+
|
|
68365
68466
|
// packages/core/src/telemetry/daemon-tracing.ts
|
|
68366
68467
|
init_esbuild_shims();
|
|
68367
68468
|
init_esm();
|
|
@@ -70061,11 +70162,11 @@ async function createContentGenerator(generatorConfig, config, isInitialAuth) {
|
|
|
70061
70162
|
let baseGenerator;
|
|
70062
70163
|
try {
|
|
70063
70164
|
if (authType === "openai" /* USE_OPENAI */) {
|
|
70064
|
-
const { createOpenAIContentGenerator } = await import("./openaiContentGenerator-
|
|
70165
|
+
const { createOpenAIContentGenerator } = await import("./openaiContentGenerator-KJONBBJO.js");
|
|
70065
70166
|
baseGenerator = createOpenAIContentGenerator(generatorConfig, config);
|
|
70066
70167
|
} else if (authType === "qwen-oauth" /* QWEN_OAUTH */) {
|
|
70067
|
-
const { getQwenOAuthClient: getQwenOauthClient } = await import("./qwenOAuth2-
|
|
70068
|
-
const { QwenContentGenerator } = await import("./qwenContentGenerator-
|
|
70168
|
+
const { getQwenOAuthClient: getQwenOauthClient } = await import("./qwenOAuth2-LEYOU7RU.js");
|
|
70169
|
+
const { QwenContentGenerator } = await import("./qwenContentGenerator-GXUZB5SJ.js");
|
|
70069
70170
|
try {
|
|
70070
70171
|
const qwenClient = await getQwenOauthClient(
|
|
70071
70172
|
config,
|
|
@@ -70083,10 +70184,10 @@ async function createContentGenerator(generatorConfig, config, isInitialAuth) {
|
|
|
70083
70184
|
throw new Error(error instanceof Error ? error.message : String(error));
|
|
70084
70185
|
}
|
|
70085
70186
|
} else if (authType === "anthropic" /* USE_ANTHROPIC */) {
|
|
70086
|
-
const { createAnthropicContentGenerator } = await import("./anthropicContentGenerator-
|
|
70187
|
+
const { createAnthropicContentGenerator } = await import("./anthropicContentGenerator-56U3YCP2.js");
|
|
70087
70188
|
baseGenerator = createAnthropicContentGenerator(generatorConfig, config);
|
|
70088
70189
|
} else if (authType === "gemini" /* USE_GEMINI */ || authType === "vertex-ai" /* USE_VERTEX_AI */) {
|
|
70089
|
-
const { createGeminiContentGenerator } = await import("./geminiContentGenerator-
|
|
70190
|
+
const { createGeminiContentGenerator } = await import("./geminiContentGenerator-V7QGHXVF.js");
|
|
70090
70191
|
baseGenerator = createGeminiContentGenerator(generatorConfig, config);
|
|
70091
70192
|
} else {
|
|
70092
70193
|
throw new Error(
|
|
@@ -71811,6 +71912,7 @@ function logApiError(config, event) {
|
|
|
71811
71912
|
"event.timestamp": (/* @__PURE__ */ new Date()).toISOString()
|
|
71812
71913
|
};
|
|
71813
71914
|
uiTelemetryService.addEvent(uiEvent, config.getSessionId());
|
|
71915
|
+
apiActivityTracker.recordError();
|
|
71814
71916
|
if (!isInternalPromptId(event.prompt_id)) {
|
|
71815
71917
|
recordUiTelemetryEventToChat(config, uiEvent);
|
|
71816
71918
|
}
|
|
@@ -72077,6 +72179,7 @@ function logContentRetryFailure(config, event) {
|
|
|
72077
72179
|
}
|
|
72078
72180
|
__name(logContentRetryFailure, "logContentRetryFailure");
|
|
72079
72181
|
function logApiRetry(config, event) {
|
|
72182
|
+
apiActivityTracker.recordRetry();
|
|
72080
72183
|
QwenLogger.getInstance(config)?.logApiRetryEvent(event);
|
|
72081
72184
|
if (!isTelemetrySdkInitialized()) return;
|
|
72082
72185
|
const attributes = {
|
|
@@ -72989,6 +73092,7 @@ export {
|
|
|
72989
73092
|
refreshSessionContext,
|
|
72990
73093
|
shutdownTelemetry,
|
|
72991
73094
|
forceFlushMetrics,
|
|
73095
|
+
apiActivityTracker,
|
|
72992
73096
|
_recoverObjectsFromLine,
|
|
72993
73097
|
parseLineTolerant,
|
|
72994
73098
|
readLines,
|
|
@@ -73124,6 +73228,7 @@ export {
|
|
|
73124
73228
|
parseThought,
|
|
73125
73229
|
getThoughtSummary,
|
|
73126
73230
|
TaggedThinkingParser,
|
|
73231
|
+
InvalidStreamError,
|
|
73127
73232
|
OpenAIContentConverter,
|
|
73128
73233
|
openaiRequestCaptureContext,
|
|
73129
73234
|
isApiError,
|
|
@@ -8,13 +8,13 @@ import {
|
|
|
8
8
|
} from "./chunk-L573Z2QZ.js";
|
|
9
9
|
import {
|
|
10
10
|
t
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-UZKG7HFG.js";
|
|
12
12
|
import {
|
|
13
13
|
So
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-XCR44EEA.js";
|
|
15
15
|
import {
|
|
16
16
|
createDebugLogger
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-7NFB7LBQ.js";
|
|
18
18
|
import {
|
|
19
19
|
init_esbuild_shims
|
|
20
20
|
} from "./chunk-5O2XNYP6.js";
|