@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
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
// Force strict mode and setup for ESM
|
|
2
|
+
"use strict";
|
|
3
|
+
import {
|
|
4
|
+
INBOXES_DIR,
|
|
5
|
+
LEADER_NAME,
|
|
6
|
+
TASKS_DIR,
|
|
7
|
+
TEAMMATE_COLORS,
|
|
8
|
+
TEAMS_DIR,
|
|
9
|
+
TEAM_CONFIG_FILENAME
|
|
10
|
+
} from "./chunk-CPBF7KYF.js";
|
|
11
|
+
import {
|
|
12
|
+
atomicWriteJSON
|
|
13
|
+
} from "./chunk-WIEO4CWB.js";
|
|
14
|
+
import {
|
|
15
|
+
Storage,
|
|
16
|
+
isNodeError
|
|
17
|
+
} from "./chunk-7NFB7LBQ.js";
|
|
18
|
+
import {
|
|
19
|
+
init_esbuild_shims
|
|
20
|
+
} from "./chunk-5O2XNYP6.js";
|
|
21
|
+
import {
|
|
22
|
+
__name
|
|
23
|
+
} from "./chunk-J2S4EL5Y.js";
|
|
24
|
+
|
|
25
|
+
// packages/core/src/agents/team/teamHelpers.ts
|
|
26
|
+
init_esbuild_shims();
|
|
27
|
+
import * as fs from "node:fs/promises";
|
|
28
|
+
import * as path from "node:path";
|
|
29
|
+
function getTeamsRootDir() {
|
|
30
|
+
return path.join(Storage.getGlobalQwenDir(), TEAMS_DIR);
|
|
31
|
+
}
|
|
32
|
+
__name(getTeamsRootDir, "getTeamsRootDir");
|
|
33
|
+
function getTeamDir(teamName) {
|
|
34
|
+
return path.join(getTeamsRootDir(), teamName);
|
|
35
|
+
}
|
|
36
|
+
__name(getTeamDir, "getTeamDir");
|
|
37
|
+
function getTeamFilePath(teamName) {
|
|
38
|
+
return path.join(getTeamDir(teamName), TEAM_CONFIG_FILENAME);
|
|
39
|
+
}
|
|
40
|
+
__name(getTeamFilePath, "getTeamFilePath");
|
|
41
|
+
function getInboxesDir(teamName) {
|
|
42
|
+
return path.join(getTeamDir(teamName), INBOXES_DIR);
|
|
43
|
+
}
|
|
44
|
+
__name(getInboxesDir, "getInboxesDir");
|
|
45
|
+
function getTasksDir(teamName) {
|
|
46
|
+
return path.join(Storage.getGlobalQwenDir(), TASKS_DIR, teamName);
|
|
47
|
+
}
|
|
48
|
+
__name(getTasksDir, "getTasksDir");
|
|
49
|
+
function sanitizeName(name) {
|
|
50
|
+
return name.toLowerCase().replace(/[^a-z0-9-]/g, "-").replace(/-+/g, "-").replace(/^-|-$/g, "");
|
|
51
|
+
}
|
|
52
|
+
__name(sanitizeName, "sanitizeName");
|
|
53
|
+
function formatAgentId(name, teamName) {
|
|
54
|
+
return `${sanitizeName(name)}@${sanitizeName(teamName)}`;
|
|
55
|
+
}
|
|
56
|
+
__name(formatAgentId, "formatAgentId");
|
|
57
|
+
function generateUniqueTeammateName(baseName, existingMembers) {
|
|
58
|
+
const sanitized = sanitizeName(baseName);
|
|
59
|
+
if (!sanitized) {
|
|
60
|
+
throw new Error(
|
|
61
|
+
`Teammate name "${baseName}" sanitizes to an empty string. Choose a name with at least one alphanumeric character.`
|
|
62
|
+
);
|
|
63
|
+
}
|
|
64
|
+
if (sanitized === LEADER_NAME) {
|
|
65
|
+
throw new Error(
|
|
66
|
+
`"${LEADER_NAME}" is reserved for the team leader. Choose a different teammate name.`
|
|
67
|
+
);
|
|
68
|
+
}
|
|
69
|
+
const existingNames = new Set(existingMembers.map((m) => m.name));
|
|
70
|
+
if (existingNames.has(sanitized)) {
|
|
71
|
+
const existingList = [...existingNames].join(", ") || "<none>";
|
|
72
|
+
throw new Error(
|
|
73
|
+
`A teammate named "${sanitized}" already exists in this team (existing: ${existingList}). Choose a different name.`
|
|
74
|
+
);
|
|
75
|
+
}
|
|
76
|
+
return sanitized;
|
|
77
|
+
}
|
|
78
|
+
__name(generateUniqueTeammateName, "generateUniqueTeammateName");
|
|
79
|
+
function assignTeammateColor(existingMembers) {
|
|
80
|
+
const usedColors = new Set(
|
|
81
|
+
existingMembers.map((m) => m.color).filter((c) => c !== void 0)
|
|
82
|
+
);
|
|
83
|
+
for (const color of TEAMMATE_COLORS) {
|
|
84
|
+
if (!usedColors.has(color)) {
|
|
85
|
+
return color;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
return TEAMMATE_COLORS[existingMembers.length % TEAMMATE_COLORS.length];
|
|
89
|
+
}
|
|
90
|
+
__name(assignTeammateColor, "assignTeammateColor");
|
|
91
|
+
function clearTeammateColors(members) {
|
|
92
|
+
return members.map((m) => {
|
|
93
|
+
const { color: _, ...rest } = m;
|
|
94
|
+
return rest;
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
__name(clearTeammateColors, "clearTeammateColors");
|
|
98
|
+
function setMemberActive(members, agentId, isActive) {
|
|
99
|
+
return members.map((m) => m.agentId === agentId ? { ...m, isActive } : m);
|
|
100
|
+
}
|
|
101
|
+
__name(setMemberActive, "setMemberActive");
|
|
102
|
+
function findMemberById(members, agentId) {
|
|
103
|
+
return members.find((m) => m.agentId === agentId);
|
|
104
|
+
}
|
|
105
|
+
__name(findMemberById, "findMemberById");
|
|
106
|
+
function findMemberByName(members, name) {
|
|
107
|
+
const sanitized = sanitizeName(name);
|
|
108
|
+
return members.find((m) => m.name === sanitized);
|
|
109
|
+
}
|
|
110
|
+
__name(findMemberByName, "findMemberByName");
|
|
111
|
+
function classifyShutdownResponse(message) {
|
|
112
|
+
const trimmed = message.trimStart();
|
|
113
|
+
if (/^shutdown_approved\b/i.test(trimmed)) return "shutdown_approved";
|
|
114
|
+
if (/^shutdown_rejected\b/i.test(trimmed)) return "shutdown_rejected";
|
|
115
|
+
return void 0;
|
|
116
|
+
}
|
|
117
|
+
__name(classifyShutdownResponse, "classifyShutdownResponse");
|
|
118
|
+
async function readTeamFile(teamName) {
|
|
119
|
+
const filePath = getTeamFilePath(teamName);
|
|
120
|
+
try {
|
|
121
|
+
const raw = await fs.readFile(filePath, "utf-8");
|
|
122
|
+
return JSON.parse(raw);
|
|
123
|
+
} catch (err) {
|
|
124
|
+
if (isNodeError(err) && err.code === "ENOENT") {
|
|
125
|
+
return void 0;
|
|
126
|
+
}
|
|
127
|
+
throw err;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
__name(readTeamFile, "readTeamFile");
|
|
131
|
+
async function writeTeamFile(teamName, teamFile) {
|
|
132
|
+
const filePath = getTeamFilePath(teamName);
|
|
133
|
+
await fs.mkdir(path.dirname(filePath), { recursive: true });
|
|
134
|
+
await atomicWriteJSON(filePath, teamFile);
|
|
135
|
+
}
|
|
136
|
+
__name(writeTeamFile, "writeTeamFile");
|
|
137
|
+
async function createTeamFile(teamName, teamFile) {
|
|
138
|
+
const filePath = getTeamFilePath(teamName);
|
|
139
|
+
await fs.mkdir(path.dirname(filePath), { recursive: true });
|
|
140
|
+
await fs.writeFile(filePath, JSON.stringify(teamFile, null, 2) + "\n", {
|
|
141
|
+
encoding: "utf-8",
|
|
142
|
+
flag: "wx"
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
__name(createTeamFile, "createTeamFile");
|
|
146
|
+
function isPidAlive(pid) {
|
|
147
|
+
try {
|
|
148
|
+
process.kill(pid, 0);
|
|
149
|
+
return true;
|
|
150
|
+
} catch (err) {
|
|
151
|
+
return isNodeError(err) && err.code === "EPERM";
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
__name(isPidAlive, "isPidAlive");
|
|
155
|
+
async function tryReclaimStaleTeam(teamName) {
|
|
156
|
+
let existing;
|
|
157
|
+
try {
|
|
158
|
+
existing = await readTeamFile(teamName);
|
|
159
|
+
} catch {
|
|
160
|
+
return false;
|
|
161
|
+
}
|
|
162
|
+
if (!existing) {
|
|
163
|
+
await deleteTeamDirs(teamName);
|
|
164
|
+
return true;
|
|
165
|
+
}
|
|
166
|
+
if (typeof existing.leadPid !== "number" || existing.leadPid <= 0) {
|
|
167
|
+
return false;
|
|
168
|
+
}
|
|
169
|
+
if (existing.leadPid !== process.pid && isPidAlive(existing.leadPid)) {
|
|
170
|
+
return false;
|
|
171
|
+
}
|
|
172
|
+
await deleteTeamDirs(teamName);
|
|
173
|
+
return true;
|
|
174
|
+
}
|
|
175
|
+
__name(tryReclaimStaleTeam, "tryReclaimStaleTeam");
|
|
176
|
+
async function deleteTeamDirs(teamName) {
|
|
177
|
+
const teamDir = getTeamDir(teamName);
|
|
178
|
+
const tasksDir = getTasksDir(teamName);
|
|
179
|
+
await Promise.allSettled([
|
|
180
|
+
fs.rm(teamDir, { recursive: true, force: true }),
|
|
181
|
+
fs.rm(tasksDir, { recursive: true, force: true })
|
|
182
|
+
]);
|
|
183
|
+
}
|
|
184
|
+
__name(deleteTeamDirs, "deleteTeamDirs");
|
|
185
|
+
async function listTeamNames() {
|
|
186
|
+
const teamsRoot = getTeamsRootDir();
|
|
187
|
+
try {
|
|
188
|
+
const entries = await fs.readdir(teamsRoot, {
|
|
189
|
+
withFileTypes: true
|
|
190
|
+
});
|
|
191
|
+
return entries.filter((e) => e.isDirectory()).map((e) => e.name);
|
|
192
|
+
} catch {
|
|
193
|
+
return [];
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
__name(listTeamNames, "listTeamNames");
|
|
197
|
+
|
|
198
|
+
export {
|
|
199
|
+
getTeamsRootDir,
|
|
200
|
+
getTeamDir,
|
|
201
|
+
getTeamFilePath,
|
|
202
|
+
getInboxesDir,
|
|
203
|
+
getTasksDir,
|
|
204
|
+
sanitizeName,
|
|
205
|
+
formatAgentId,
|
|
206
|
+
generateUniqueTeammateName,
|
|
207
|
+
assignTeammateColor,
|
|
208
|
+
clearTeammateColors,
|
|
209
|
+
setMemberActive,
|
|
210
|
+
findMemberById,
|
|
211
|
+
findMemberByName,
|
|
212
|
+
classifyShutdownResponse,
|
|
213
|
+
readTeamFile,
|
|
214
|
+
writeTeamFile,
|
|
215
|
+
createTeamFile,
|
|
216
|
+
tryReclaimStaleTeam,
|
|
217
|
+
deleteTeamDirs,
|
|
218
|
+
listTeamNames
|
|
219
|
+
};
|
|
220
|
+
/**
|
|
221
|
+
* @license
|
|
222
|
+
* Copyright 2025 Qwen
|
|
223
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
224
|
+
*/
|
|
@@ -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-XCR44EEA.js";
|
|
20
20
|
import {
|
|
21
21
|
init_esbuild_shims
|
|
22
22
|
} from "./chunk-5O2XNYP6.js";
|
|
@@ -3,17 +3,17 @@
|
|
|
3
3
|
import {
|
|
4
4
|
getGitVersion,
|
|
5
5
|
getNpmVersion
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-BUPLOPUA.js";
|
|
7
7
|
import {
|
|
8
8
|
buildEnvStatusFromEnv,
|
|
9
9
|
snapshotProcessEnv
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-ZTXZ7FM4.js";
|
|
11
11
|
import {
|
|
12
12
|
mapDomainErrorToErrorKind
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-7DXHIMXL.js";
|
|
14
14
|
import {
|
|
15
15
|
canUseRipgrep
|
|
16
|
-
} from "./chunk-
|
|
16
|
+
} from "./chunk-XCR44EEA.js";
|
|
17
17
|
import {
|
|
18
18
|
init_esbuild_shims
|
|
19
19
|
} from "./chunk-5O2XNYP6.js";
|
|
@@ -4,37 +4,37 @@ import {
|
|
|
4
4
|
handleAtCommand,
|
|
5
5
|
resolveAtCommandQuery,
|
|
6
6
|
sanitizeDisplayText
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-LIUEXYPL.js";
|
|
8
8
|
import {
|
|
9
9
|
isAtCommand,
|
|
10
10
|
isBtwCommand,
|
|
11
11
|
isSlashCommand,
|
|
12
12
|
normalizePartList,
|
|
13
13
|
recordGoalStatusItem
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-55SAYASQ.js";
|
|
15
15
|
import {
|
|
16
16
|
fitPendingSlice,
|
|
17
17
|
useSessionStats
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-IQOOJSPR.js";
|
|
19
19
|
import {
|
|
20
20
|
SHELL_COMMAND_NAME,
|
|
21
21
|
isCollapsibleTool
|
|
22
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-VQLRHJKL.js";
|
|
23
23
|
import {
|
|
24
24
|
require_react
|
|
25
25
|
} from "./chunk-HTHUX2T5.js";
|
|
26
26
|
import {
|
|
27
27
|
themeManager
|
|
28
|
-
} from "./chunk-
|
|
28
|
+
} from "./chunk-Q6TUALBE.js";
|
|
29
29
|
import {
|
|
30
30
|
formatMemoryUsage
|
|
31
31
|
} from "./chunk-E5Z2AVNV.js";
|
|
32
32
|
import {
|
|
33
33
|
isInlineModelOverrideAllowed
|
|
34
|
-
} from "./chunk-
|
|
34
|
+
} from "./chunk-LT5CRUA5.js";
|
|
35
35
|
import {
|
|
36
36
|
t
|
|
37
|
-
} from "./chunk-
|
|
37
|
+
} from "./chunk-UZKG7HFG.js";
|
|
38
38
|
import {
|
|
39
39
|
AutonomousLoopTickResolver,
|
|
40
40
|
CoreToolScheduler,
|
|
@@ -53,11 +53,12 @@ import {
|
|
|
53
53
|
markDuplicateProviderToolCallResponseSent,
|
|
54
54
|
parseAndFormatApiError,
|
|
55
55
|
promptIdContext,
|
|
56
|
+
refreshMemoryAfterManagedWrite,
|
|
56
57
|
runVisionBridge,
|
|
57
58
|
setActiveGoal,
|
|
58
59
|
shouldRunVisionBridge,
|
|
59
60
|
splitImageParts
|
|
60
|
-
} from "./chunk-
|
|
61
|
+
} from "./chunk-XCR44EEA.js";
|
|
61
62
|
import {
|
|
62
63
|
ApiCancelEvent,
|
|
63
64
|
ConversationFinishedEvent,
|
|
@@ -67,17 +68,18 @@ import {
|
|
|
67
68
|
logConversationFinishedEvent,
|
|
68
69
|
logUserPrompt,
|
|
69
70
|
logUserRetry
|
|
70
|
-
} from "./chunk-
|
|
71
|
+
} from "./chunk-BYOOK22F.js";
|
|
71
72
|
import {
|
|
72
73
|
isAnyAutoMemPath
|
|
73
|
-
} from "./chunk-
|
|
74
|
+
} from "./chunk-FBU7WRZI.js";
|
|
74
75
|
import {
|
|
75
|
-
ToolNames
|
|
76
|
-
|
|
76
|
+
ToolNames,
|
|
77
|
+
isShellProgressData
|
|
78
|
+
} from "./chunk-JGUT3LWZ.js";
|
|
77
79
|
import {
|
|
78
80
|
getUnsupportedImageFormatWarning,
|
|
79
81
|
isSupportedImageMimeType
|
|
80
|
-
} from "./chunk-
|
|
82
|
+
} from "./chunk-B7NUUEXC.js";
|
|
81
83
|
import {
|
|
82
84
|
FinishReason
|
|
83
85
|
} from "./chunk-4LD5APFL.js";
|
|
@@ -86,7 +88,7 @@ import {
|
|
|
86
88
|
createDebugLogger,
|
|
87
89
|
getErrorMessage,
|
|
88
90
|
isNodeError
|
|
89
|
-
} from "./chunk-
|
|
91
|
+
} from "./chunk-7NFB7LBQ.js";
|
|
90
92
|
import {
|
|
91
93
|
init_esbuild_shims
|
|
92
94
|
} from "./chunk-5O2XNYP6.js";
|
|
@@ -549,6 +551,9 @@ function useReactToolScheduler(onComplete, config, getPreferredEditor, onEditorC
|
|
|
549
551
|
const [toolCallsForDisplay, setToolCallsForDisplay] = (0, import_react4.useState)([]);
|
|
550
552
|
const outputUpdateHandler = (0, import_react4.useCallback)(
|
|
551
553
|
(toolCallId, outputChunk) => {
|
|
554
|
+
if (isShellProgressData(outputChunk)) {
|
|
555
|
+
return;
|
|
556
|
+
}
|
|
552
557
|
const compactOutput = compactToolResultDisplayForHistory(outputChunk);
|
|
553
558
|
setToolCallsForDisplay(
|
|
554
559
|
(prevCalls) => prevCalls.map((tc) => {
|
|
@@ -2597,15 +2602,28 @@ var useGeminiStream = /* @__PURE__ */ __name((geminiClient, history, addItem, co
|
|
|
2597
2602
|
const newSuccessfulMemorySaves = completedAndReadyToSubmitTools.filter(
|
|
2598
2603
|
(t2) => t2.request.name === "save_memory" && t2.status === "success" && !processedMemoryToolsRef.current.has(t2.request.callId)
|
|
2599
2604
|
);
|
|
2605
|
+
const geminiTools = completedAndReadyToSubmitTools.filter(
|
|
2606
|
+
(t2) => !t2.request.isClientInitiated && !historyCallIdsWithResponse.has(t2.request.callId)
|
|
2607
|
+
);
|
|
2608
|
+
const didRefreshManagedMemory = await refreshMemoryAfterManagedWrite(
|
|
2609
|
+
config,
|
|
2610
|
+
completedAndReadyToSubmitTools.map((toolCall) => ({
|
|
2611
|
+
toolName: toolCall.request.name,
|
|
2612
|
+
args: toolCall.request.args,
|
|
2613
|
+
status: toolCall.status
|
|
2614
|
+
})),
|
|
2615
|
+
{ logContext: "interactive memory tool batch" }
|
|
2616
|
+
);
|
|
2600
2617
|
if (newSuccessfulMemorySaves.length > 0) {
|
|
2601
|
-
|
|
2618
|
+
if (!didRefreshManagedMemory) {
|
|
2619
|
+
void performMemoryRefresh().catch((err) => {
|
|
2620
|
+
debugLogger3.warn(`save_memory refresh failed: ${err}`);
|
|
2621
|
+
});
|
|
2622
|
+
}
|
|
2602
2623
|
newSuccessfulMemorySaves.forEach(
|
|
2603
2624
|
(t2) => processedMemoryToolsRef.current.add(t2.request.callId)
|
|
2604
2625
|
);
|
|
2605
2626
|
}
|
|
2606
|
-
const geminiTools = completedAndReadyToSubmitTools.filter(
|
|
2607
|
-
(t2) => !t2.request.isClientInitiated && !historyCallIdsWithResponse.has(t2.request.callId)
|
|
2608
|
-
);
|
|
2609
2627
|
const completedCallIds = new Set(
|
|
2610
2628
|
completedAndReadyToSubmitTools.map(
|
|
2611
2629
|
(toolCall) => toolCall.request.callId
|
|
@@ -5,10 +5,10 @@ import {
|
|
|
5
5
|
} from "./chunk-YUZI3WAC.js";
|
|
6
6
|
import {
|
|
7
7
|
resolveBundleDir
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-XCR44EEA.js";
|
|
9
9
|
import {
|
|
10
10
|
Storage
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-7NFB7LBQ.js";
|
|
12
12
|
import {
|
|
13
13
|
init_esbuild_shims
|
|
14
14
|
} from "./chunk-5O2XNYP6.js";
|
|
@@ -239,6 +239,7 @@ var MUST_TRANSLATE_KEYS = [
|
|
|
239
239
|
"? for shortcuts",
|
|
240
240
|
'Invalid approval mode "{{arg}}". Valid modes: {{modes}}',
|
|
241
241
|
'Approval mode set to "{{mode}}"',
|
|
242
|
+
"auto_mode.entry_notice",
|
|
242
243
|
"Set up Qwen Code's status line UI",
|
|
243
244
|
"Cached (included in Input): {{tokens}}",
|
|
244
245
|
"By source:",
|
|
@@ -266,15 +267,15 @@ var MUST_TRANSLATE_KEYS = [
|
|
|
266
267
|
|
|
267
268
|
// import("./locales/**/*.js") in packages/cli/src/i18n/index.ts
|
|
268
269
|
var globImport_locales_js = __glob({
|
|
269
|
-
"./locales/ca.js": () => import("./ca-
|
|
270
|
-
"./locales/de.js": () => import("./de-
|
|
271
|
-
"./locales/en.js": () => import("./en-
|
|
272
|
-
"./locales/fr.js": () => import("./fr-
|
|
273
|
-
"./locales/ja.js": () => import("./ja-
|
|
274
|
-
"./locales/pt.js": () => import("./pt-
|
|
275
|
-
"./locales/ru.js": () => import("./ru-
|
|
276
|
-
"./locales/zh-TW.js": () => import("./zh-TW-
|
|
277
|
-
"./locales/zh.js": () => import("./zh-
|
|
270
|
+
"./locales/ca.js": () => import("./ca-C2JTT2N5.js"),
|
|
271
|
+
"./locales/de.js": () => import("./de-2VCDRDGU.js"),
|
|
272
|
+
"./locales/en.js": () => import("./en-NJCA3TAA.js"),
|
|
273
|
+
"./locales/fr.js": () => import("./fr-5F3E7WKD.js"),
|
|
274
|
+
"./locales/ja.js": () => import("./ja-66J6B53L.js"),
|
|
275
|
+
"./locales/pt.js": () => import("./pt-TFZO5Y6T.js"),
|
|
276
|
+
"./locales/ru.js": () => import("./ru-4L4LFHIT.js"),
|
|
277
|
+
"./locales/zh-TW.js": () => import("./zh-TW-D2YIE2LO.js"),
|
|
278
|
+
"./locales/zh.js": () => import("./zh-FSAH32JB.js")
|
|
278
279
|
});
|
|
279
280
|
|
|
280
281
|
// packages/cli/src/i18n/index.ts
|
|
@@ -1,8 +1,5 @@
|
|
|
1
1
|
// Force strict mode and setup for ESM
|
|
2
2
|
"use strict";
|
|
3
|
-
import {
|
|
4
|
-
noteInteraction
|
|
5
|
-
} from "./chunk-KW7NOTN6.js";
|
|
6
3
|
import {
|
|
7
4
|
Box_default,
|
|
8
5
|
Text,
|
|
@@ -11,39 +8,42 @@ import {
|
|
|
11
8
|
use_is_screen_reader_enabled_default,
|
|
12
9
|
use_stdin_default,
|
|
13
10
|
use_stdout_default
|
|
14
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-UKWAQ7AV.js";
|
|
15
12
|
import {
|
|
16
13
|
require_react
|
|
17
14
|
} from "./chunk-HTHUX2T5.js";
|
|
15
|
+
import {
|
|
16
|
+
noteInteraction
|
|
17
|
+
} from "./chunk-KW7NOTN6.js";
|
|
18
18
|
import {
|
|
19
19
|
formatHistoryGapNotice,
|
|
20
20
|
indexGapsByChild
|
|
21
|
-
} from "./chunk-
|
|
21
|
+
} from "./chunk-ZEEVKDO7.js";
|
|
22
22
|
import {
|
|
23
23
|
sanitizeFilenameForDisplay
|
|
24
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-FGTCZJOD.js";
|
|
25
25
|
import {
|
|
26
26
|
formatDuration
|
|
27
27
|
} from "./chunk-E5Z2AVNV.js";
|
|
28
28
|
import {
|
|
29
29
|
t
|
|
30
|
-
} from "./chunk-
|
|
30
|
+
} from "./chunk-UZKG7HFG.js";
|
|
31
31
|
import {
|
|
32
32
|
fetchGitDiff,
|
|
33
33
|
findProviderByCredentials,
|
|
34
34
|
getToolResponseDisplayText,
|
|
35
35
|
resolveMetadataKey
|
|
36
|
-
} from "./chunk-
|
|
36
|
+
} from "./chunk-XCR44EEA.js";
|
|
37
37
|
import {
|
|
38
38
|
KittySequenceOverflowEvent,
|
|
39
39
|
logKittySequenceOverflow
|
|
40
|
-
} from "./chunk-
|
|
40
|
+
} from "./chunk-BYOOK22F.js";
|
|
41
41
|
import {
|
|
42
42
|
ToolDisplayNames
|
|
43
|
-
} from "./chunk-
|
|
43
|
+
} from "./chunk-JGUT3LWZ.js";
|
|
44
44
|
import {
|
|
45
45
|
createDebugLogger
|
|
46
|
-
} from "./chunk-
|
|
46
|
+
} from "./chunk-7NFB7LBQ.js";
|
|
47
47
|
import {
|
|
48
48
|
init_esbuild_shims
|
|
49
49
|
} from "./chunk-5O2XNYP6.js";
|
|
@@ -1938,21 +1938,18 @@ function writeOsc52(text) {
|
|
|
1938
1938
|
__name(writeOsc52, "writeOsc52");
|
|
1939
1939
|
var linuxClipboardTool;
|
|
1940
1940
|
var cachedWlPasteImageTypes = null;
|
|
1941
|
-
var
|
|
1942
|
-
var clipboardLoadAttempted = false;
|
|
1941
|
+
var clipboardModulePromise = null;
|
|
1943
1942
|
async function getClipboardModule() {
|
|
1944
|
-
if (
|
|
1945
|
-
clipboardLoadAttempted = true;
|
|
1946
|
-
try {
|
|
1943
|
+
if (!clipboardModulePromise) {
|
|
1947
1944
|
const modName = "@teddyzhu/clipboard";
|
|
1948
|
-
|
|
1949
|
-
|
|
1950
|
-
|
|
1951
|
-
|
|
1952
|
-
|
|
1953
|
-
);
|
|
1954
|
-
return null;
|
|
1945
|
+
clipboardModulePromise = import(modName).catch(() => {
|
|
1946
|
+
debugLogger.error(
|
|
1947
|
+
"Failed to load @teddyzhu/clipboard native module. Clipboard image features will be unavailable."
|
|
1948
|
+
);
|
|
1949
|
+
return null;
|
|
1950
|
+
});
|
|
1955
1951
|
}
|
|
1952
|
+
return clipboardModulePromise;
|
|
1956
1953
|
}
|
|
1957
1954
|
__name(getClipboardModule, "getClipboardModule");
|
|
1958
1955
|
function getLinuxClipboardTool() {
|
|
@@ -2101,7 +2098,7 @@ async function checkClipboardForImage(command, args) {
|
|
|
2101
2098
|
});
|
|
2102
2099
|
}
|
|
2103
2100
|
__name(checkClipboardForImage, "checkClipboardForImage");
|
|
2104
|
-
async function clipboardHasImage() {
|
|
2101
|
+
async function clipboardHasImage(onUnavailable) {
|
|
2105
2102
|
cachedWlPasteImageTypes = null;
|
|
2106
2103
|
if (process.platform === "linux") {
|
|
2107
2104
|
try {
|
|
@@ -2125,7 +2122,10 @@ async function clipboardHasImage() {
|
|
|
2125
2122
|
}
|
|
2126
2123
|
try {
|
|
2127
2124
|
const mod = await getClipboardModule();
|
|
2128
|
-
if (!mod)
|
|
2125
|
+
if (!mod) {
|
|
2126
|
+
onUnavailable?.();
|
|
2127
|
+
return false;
|
|
2128
|
+
}
|
|
2129
2129
|
const clipboard = new mod.ClipboardManager();
|
|
2130
2130
|
return clipboard.hasFormat("image");
|
|
2131
2131
|
} catch (error) {
|
|
@@ -3010,7 +3010,10 @@ function KeypressProvider({
|
|
|
3010
3010
|
sequence: pasteBuffer.toString()
|
|
3011
3011
|
});
|
|
3012
3012
|
} else {
|
|
3013
|
-
|
|
3013
|
+
let clipboardImageUnavailable = false;
|
|
3014
|
+
const hasImage = await clipboardHasImage(() => {
|
|
3015
|
+
clipboardImageUnavailable = true;
|
|
3016
|
+
});
|
|
3014
3017
|
broadcast({
|
|
3015
3018
|
name: "",
|
|
3016
3019
|
ctrl: false,
|
|
@@ -3018,6 +3021,7 @@ function KeypressProvider({
|
|
|
3018
3021
|
shift: false,
|
|
3019
3022
|
paste: true,
|
|
3020
3023
|
pasteImage: hasImage,
|
|
3024
|
+
clipboardImageUnavailable,
|
|
3021
3025
|
sequence: pasteBuffer.toString()
|
|
3022
3026
|
});
|
|
3023
3027
|
}
|