@qwen-code/qwen-code 0.19.9 → 0.19.10-nightly.20260716.506ce0a1a
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundled/qc-helper/docs/configuration/settings.md +14 -6
- package/bundled/qc-helper/docs/features/approval-mode.md +2 -2
- package/bundled/qc-helper/docs/features/channels/dingtalk.md +33 -0
- package/bundled/qc-helper/docs/features/channels/overview.md +64 -20
- package/bundled/qc-helper/docs/features/channels/wecom.md +8 -7
- package/bundled/qc-helper/docs/features/code-review.md +88 -44
- package/bundled/qc-helper/docs/features/commands.md +6 -6
- package/bundled/qc-helper/docs/features/hooks.md +29 -0
- package/bundled/qc-helper/docs/features/sandbox.md +2 -0
- package/bundled/qc-helper/docs/features/sub-agents.md +21 -0
- package/bundled/qc-helper/docs/qwen-serve.md +49 -20
- package/bundled/qc-helper/docs/reference/keyboard-shortcuts.md +1 -1
- package/bundled/review/DESIGN.md +219 -33
- package/bundled/review/SKILL.md +429 -382
- package/chunks/{MaxSizedBox-6HYJ3ZPJ.js → MaxSizedBox-WOC3YDWA.js} +31 -32
- package/chunks/{StandaloneSessionPicker-WS4GXYOG.js → StandaloneSessionPicker-H5HZCAFD.js} +49 -48
- package/chunks/{acpAgent-5FWSOZL5.js → acpAgent-55YDJDNM.js} +922 -550
- package/chunks/{agent-HOLHB3RT.js → agent-H6VE5W3L.js} +26 -27
- package/chunks/{agent-headless-SXL6H56A.js → agent-headless-T4XJOCRU.js} +26 -27
- package/chunks/{anthropicContentGenerator-L73TO3DB.js → anthropicContentGenerator-HBRXJSP4.js} +78 -16
- package/chunks/{artifact-tool-U7IRTLIV.js → artifact-tool-MIZLXBLF.js} +2 -2
- package/chunks/{askUserQuestion-2DLUUZZG.js → askUserQuestion-XMJVPNWM.js} +2 -2
- package/chunks/{bridge-BCJQ7BBB.js → bridge-FTB6ZP3R.js} +31 -34
- package/chunks/{ca-UJ6HC4H2.js → ca-CODEN7TD.js} +9 -1
- package/chunks/channel-worker-group-K7QKH6IG.js +13 -0
- package/chunks/channel-worker-manager-CUDPU4CN.js +418 -0
- package/chunks/channel-worker-supervisor-4XTO2ZD3.js +20 -0
- package/chunks/{chunk-LXNEJD34.js → chunk-2FO5GFKZ.js} +1 -1
- package/chunks/{chunk-VA4KQY6V.js → chunk-2JNR4VP2.js} +3 -3
- package/chunks/{chunk-L36P3NBD.js → chunk-2W3OOD4W.js} +2 -0
- package/chunks/{chunk-7R3CZA3Q.js → chunk-2Z5UX4KI.js} +1 -1
- package/chunks/{chunk-CUMMSHH6.js → chunk-3DWIFU7L.js} +1 -1
- package/chunks/chunk-3MX7D6QN.js +516 -0
- package/chunks/{chunk-SJHDYNHF.js → chunk-4BJVSIS3.js} +3 -3
- package/chunks/{chunk-TO6QE22P.js → chunk-5CNYZ7TN.js} +26 -22
- package/chunks/{chunk-N3EMS75V.js → chunk-5DEJ4T6C.js} +1333 -1232
- package/chunks/chunk-5HBA2Z7V.js +28 -0
- package/chunks/{chunk-ZJE7NSL3.js → chunk-5M6IDOMF.js} +34 -97
- package/chunks/{chunk-SCGXUJBT.js → chunk-6LI3L22E.js} +3 -3
- package/chunks/{chunk-K434OPES.js → chunk-6WPJRYLZ.js} +3 -3
- package/chunks/{chunk-YAUFFXDS.js → chunk-7GM2RWCR.js} +12 -11
- package/chunks/{chunk-OQ4DRIOA.js → chunk-7HWE2W74.js} +2 -2
- package/chunks/{chunk-J4TSQ5EQ.js → chunk-7NFB7LBQ.js} +8 -1
- package/chunks/{chunk-MC23XKFE.js → chunk-A2HWMJVO.js} +37 -3
- package/chunks/{chunk-3G7CIHVV.js → chunk-ABNYOMDG.js} +4 -4
- package/chunks/{chunk-3AHXV67U.js → chunk-AGZLXLBY.js} +1 -1
- package/chunks/{chunk-RDJSGHZE.js → chunk-ALGGS7UH.js} +1 -38
- package/chunks/{chunk-Q4YQW46J.js → chunk-AMRZVQUY.js} +43 -40
- package/chunks/{chunk-W3JHSWRP.js → chunk-AN6C2U46.js} +4 -4
- package/chunks/{chunk-GWHYEOV2.js → chunk-ARKANCNX.js} +2 -1
- package/chunks/{chunk-5SFOMFG4.js → chunk-AVEOWVOM.js} +36 -2
- package/chunks/{chunk-34MW4KTI.js → chunk-BA5JGE5F.js} +2 -2
- package/chunks/{chunk-5HOMWMCL.js → chunk-BSJAQUFD.js} +5492 -1336
- package/chunks/{chunk-L6P4KPHR.js → chunk-BWJKL5DB.js} +58 -38
- package/chunks/{chunk-PVZM22CK.js → chunk-C32JFRGV.js} +5 -5
- package/chunks/{chunk-AKIVHSJR.js → chunk-CZIHPO7L.js} +163 -782
- package/chunks/chunk-DL7RCO6V.js +493 -0
- package/chunks/{chunk-KKNMOEZH.js → chunk-E2UVIFI2.js} +185 -398
- package/chunks/{chunk-5VXNZWGF.js → chunk-ENUQSKEY.js} +1 -1
- package/chunks/{chunk-PDZ7MBDG.js → chunk-EWILX3BM.js} +27 -6
- package/chunks/{chunk-BMGVRZN4.js → chunk-EZWX232B.js} +1 -1
- package/chunks/{chunk-4GORAUCN.js → chunk-F333XEAU.js} +1 -1
- package/chunks/{chunk-YLV3XXFB.js → chunk-FBU7WRZI.js} +17 -1
- package/chunks/chunk-FEOZBUMT.js +77 -0
- package/chunks/{chunk-5U27BZ72.js → chunk-FKEGVMPX.js} +269 -83
- package/chunks/chunk-FNX3LGAK.js +34 -0
- package/chunks/{chunk-LK7KUE55.js → chunk-FSA7ERJ2.js} +1 -1
- package/chunks/{chunk-PODM4SZ4.js → chunk-G3BIBPI7.js} +5 -5
- package/chunks/{chunk-A3XKDTSH.js → chunk-GA65O2TB.js} +4 -4
- package/chunks/{chunk-3BTRNWWD.js → chunk-GOXKNSDZ.js} +1 -64
- package/chunks/{channel-worker-supervisor-WSOAAYUO.js → chunk-GXGIM7QP.js} +67 -35
- package/chunks/{chunk-6PESIEKJ.js → chunk-GXUWGPYX.js} +68 -6
- package/chunks/chunk-GYTKQYDB.js +23 -0
- package/chunks/{chunk-GZRTYZ2R.js → chunk-H3XMJV7T.js} +218 -1
- package/chunks/{chunk-WQUQVGTF.js → chunk-HGRXW4HQ.js} +467 -106
- package/chunks/{chunk-YVEDCAUE.js → chunk-HGT6JR3U.js} +19 -0
- package/chunks/{chunk-ECNYL4AA.js → chunk-HUEWOHKV.js} +1 -1
- package/chunks/chunk-IDS7MSUP.js +74 -0
- package/chunks/{chunk-KHUQZZJ6.js → chunk-IHDRJLLR.js} +382 -36
- package/chunks/{chunk-CLFKOZEK.js → chunk-J4SEAF4X.js} +114 -4
- package/chunks/{chunk-B5ORX3FG.js → chunk-JGUT3LWZ.js} +6 -1
- package/chunks/{chunk-P67PFTUT.js → chunk-KEYEYCHZ.js} +4 -4
- package/chunks/{chunk-ORBGV7NJ.js → chunk-KKRTYONM.js} +6 -4
- package/chunks/{chunk-7PU4FYLG.js → chunk-KOXFAG6P.js} +4 -18
- package/chunks/{chunk-EGYZ275M.js → chunk-KWLVWNF5.js} +55 -7
- package/chunks/{chunk-XLA62MYB.js → chunk-KXECVZPD.js} +2 -2
- package/chunks/{chunk-IAVB3HM3.js → chunk-L4Y55KIS.js} +33 -1
- package/chunks/{chunk-4QLQE5WJ.js → chunk-L5U3ELZX.js} +1 -1
- package/chunks/{chunk-4ZVWQHEQ.js → chunk-LQIDP6K5.js} +1 -1
- package/chunks/{chunk-DC5Z3DU6.js → chunk-LXLTBIDP.js} +43 -6
- package/chunks/chunk-LXXMOYPL.js +22 -0
- package/chunks/{chunk-Q6I5QHMH.js → chunk-MFNKBXYH.js} +1 -1
- package/chunks/chunk-MR3PXB6E.js +48 -0
- package/chunks/{chunk-JZETEN3Z.js → chunk-N45S36AH.js} +3 -3
- package/chunks/{chunk-GWLSNBG4.js → chunk-NA3IG6XG.js} +748 -27
- package/chunks/{chunk-D5SKC4YG.js → chunk-O3M25JXE.js} +213 -29
- package/chunks/{chunk-EAXLGSFP.js → chunk-O6XGHDS5.js} +11 -11
- package/chunks/{chunk-WL4L7EZH.js → chunk-OA4JVLSA.js} +27 -1
- package/chunks/{chunk-X4NKFGFJ.js → chunk-OJAMDVF5.js} +0 -15
- package/chunks/{chunk-BZIFY5TF.js → chunk-OKAIGAYW.js} +3 -3
- package/chunks/{chunk-CNEIYWSA.js → chunk-OVIV236K.js} +5 -5
- package/chunks/{chunk-3SJSQXNS.js → chunk-PEJWA3QQ.js} +12 -8
- package/chunks/{chunk-E2IY465S.js → chunk-PWNOAWXB.js} +59 -12
- package/chunks/{chunk-B4G2WOFA.js → chunk-Q5MKHNIR.js} +28 -5
- package/chunks/{chunk-MXL5UP4X.js → chunk-Q6TUALBE.js} +1 -1
- package/chunks/{chunk-QYMQSECS.js → chunk-QAW7PIHT.js} +2 -2
- package/chunks/{chunk-HKMAENAO.js → chunk-QDTGDM2T.js} +14 -9
- package/chunks/{chunk-LUODI7WD.js → chunk-RCEEXIOO.js} +6 -4
- package/chunks/{chunk-W2UIXQDL.js → chunk-RTV5TUYB.js} +12 -4
- package/chunks/chunk-RW7DUKFO.js +91 -0
- package/chunks/{chunk-NVYTCB5Z.js → chunk-SA6QVLWI.js} +17325 -16259
- package/chunks/chunk-SJSI7PXU.js +59 -0
- package/chunks/{chunk-HVY356M2.js → chunk-SMGBWLNU.js} +3 -3
- package/chunks/{chunk-CEA3E3JB.js → chunk-SPJQO2CE.js} +2 -2
- package/chunks/{chunk-CC2ITGCF.js → chunk-STZQCNN3.js} +49 -6
- package/chunks/{chunk-HPDUL5MF.js → chunk-T2ZDAER2.js} +1 -1
- package/chunks/{chunk-XUOOWUZS.js → chunk-T3TQ3ACP.js} +1 -1
- package/chunks/{chunk-4C5BQ2D2.js → chunk-TIKDHS6V.js} +100 -17
- package/chunks/chunk-TV6K2FB4.js +224 -0
- package/chunks/{chunk-5XUCZNSY.js → chunk-TYLOFD2U.js} +1 -1
- package/chunks/{chunk-D2GFWEXB.js → chunk-UCUUH2JV.js} +6 -6
- package/chunks/{chunk-BAPGSC7U.js → chunk-UZP7K33Y.js} +23 -9
- package/chunks/{chunk-77XJ3SWN.js → chunk-VDAR6UO2.js} +8 -6
- package/chunks/{chunk-XYQSMABS.js → chunk-VKLVGA2D.js} +4 -4
- package/chunks/{chunk-JSG7ZSBC.js → chunk-VRR65QYW.js} +251 -3
- package/chunks/{chunk-U2NNEY4R.js → chunk-VT5AWJN4.js} +1 -1
- package/chunks/{chunk-ZLXQN2QS.js → chunk-WIEO4CWB.js} +1 -1
- package/chunks/{chunk-X6TJ3YZV.js → chunk-WKEO3GLZ.js} +160 -60
- package/chunks/{chunk-J3JA76CF.js → chunk-WTNZ6DXB.js} +1 -1
- package/chunks/{chunk-VWPVHAMO.js → chunk-XIWQ5QST.js} +8 -1
- package/chunks/{chunk-TDEXZKMT.js → chunk-Y66VOBRP.js} +2 -2
- package/chunks/{chunk-3VAGG5T5.js → chunk-YYBZUIPL.js} +1015 -100
- package/chunks/{chunk-CCDMCZPP.js → chunk-YZ3SBNP7.js} +1 -1
- package/chunks/{chunk-ATAKVRIF.js → chunk-Z3XA2TNG.js} +7 -7
- package/chunks/{chunk-EMDMPBJ4.js → chunk-Z7SVC7PJ.js} +10 -3
- package/chunks/{chunk-AURZZYMD.js → chunk-ZIVSSTUG.js} +4 -4
- package/chunks/{chunk-UOZWKTQG.js → chunk-ZPAHLFZU.js} +2 -2
- package/chunks/{chunk-34Z3U5RQ.js → chunk-ZQIYGQCG.js} +765 -168
- package/chunks/{computer-use-HM37RX6A.js → computer-use-NADT7ULB.js} +26 -27
- package/chunks/{config-utils-NV2SVGPB.js → config-utils-IQQT3GCI.js} +3 -2
- package/chunks/{contextCommand-OF5SFGH2.js → contextCommand-U7NEJYJ7.js} +28 -29
- package/chunks/{create-sub-session-INX7TXJI.js → create-sub-session-EAB2U5XW.js} +2 -2
- package/chunks/{create-sub-session-KPRT7ECJ.js → create-sub-session-SUN33INC.js} +26 -27
- package/chunks/{cron-create-AMBKGZX6.js → cron-create-GMVKSXZT.js} +4 -4
- package/chunks/{cron-delete-LRU4OJYG.js → cron-delete-VDZKUAVK.js} +4 -4
- package/chunks/{cron-list-WVP2JXER.js → cron-list-UG7C7RAR.js} +4 -4
- package/chunks/{daemon-ARHTSTXP.js → daemon-SJXEKP3H.js} +773 -126
- package/chunks/daemon-status-provider-WIIYLGZJ.js +74 -0
- package/chunks/{de-EBJN3OVN.js → de-NOXPCSYN.js} +9 -1
- package/chunks/{dist-XKU3ABM5.js → dist-4WCQEZIN.js} +4 -51
- package/chunks/{dist-QYCAEZIT.js → dist-DOPL5LSQ.js} +5 -1
- package/chunks/{dist-WKPOYU7O.js → dist-GXJVCOS7.js} +1 -1
- package/chunks/{dist-R7LN5AZE.js → dist-PX2ERZ6I.js} +2 -2
- package/chunks/{dist-PNVLTKTL.js → dist-V2YVLYOW.js} +215 -33
- package/chunks/{dist-VHV4EVHG.js → dist-VYWUKURL.js} +1 -1
- package/chunks/{earlyInputCapture-3VTHRC4C.js → earlyInputCapture-6FRM6UMU.js} +27 -28
- package/chunks/{edit-VNI4NJ73.js → edit-7GOIQTCZ.js} +27 -28
- package/chunks/{en-5A6LA7RK.js → en-JFVULHTB.js} +11 -1
- package/chunks/{enter-worktree-IYYBKPZT.js → enter-worktree-476E6WIK.js} +26 -27
- package/chunks/{enterPlanMode-GMC5FD5A.js → enterPlanMode-IRJM6W3C.js} +42 -28
- package/chunks/{environment-5HSSRMJ7.js → environment-ROMULS2X.js} +30 -30
- package/chunks/{errors-HMFCJJ7P.js → errors-OUIWPUDY.js} +28 -29
- package/chunks/{exit-worktree-6BHCMP5G.js → exit-worktree-PPSFK753.js} +26 -27
- package/chunks/{exitPlanMode-CJW7G74W.js → exitPlanMode-YKQMD4D7.js} +26 -27
- package/chunks/{fast-path-FRDMDVHG.js → fast-path-CNK2HHKH.js} +3 -3
- package/chunks/{fast-path-settings-5QZE64HR.js → fast-path-settings-DAOVFADC.js} +6 -4
- package/chunks/{fr-YXRABLYZ.js → fr-HVFNU42H.js} +9 -1
- package/chunks/{gemini-QYSEGHAX.js → gemini-WQNFT6TR.js} +216 -90
- package/chunks/{geminiContentGenerator-J7YNZDYP.js → geminiContentGenerator-4QJH2JDP.js} +4 -4
- package/chunks/{glob-BRCSGFOT.js → glob-36TVLBWW.js} +28 -28
- package/chunks/{grep-EE2DUOSY.js → grep-QTYLNO2M.js} +26 -27
- package/chunks/{handleAutoUpdate-5NWTLR67.js → handleAutoUpdate-36FQFODK.js} +30 -31
- package/chunks/{i18n-BASPENNQ.js → i18n-JUGYPVSP.js} +27 -28
- package/chunks/initializer-OBBJUS25.js +72 -0
- package/chunks/{installationInfo-W6V4DT7W.js → installationInfo-MCKTPX64.js} +27 -28
- package/chunks/{ja-7VQOANVG.js → ja-PY5AF544.js} +10 -2
- package/chunks/{keychain-token-storage-VKUBNCP4.js → keychain-token-storage-AU22CQI6.js} +2 -2
- package/chunks/list-VW5QY4VJ.js +75 -0
- package/chunks/loadedSettingsAdapter-IELOOXG6.js +69 -0
- package/chunks/{loop-wakeup-WX7BLWWP.js → loop-wakeup-QXWZSCYM.js} +5 -5
- package/chunks/{ls-ZB2BDP6T.js → ls-2OUTG3IZ.js} +4 -4
- package/chunks/{lsp-V5DN4YUJ.js → lsp-4VMNXZW6.js} +2 -2
- package/chunks/mcp-Q3EC37ZS.js +69 -0
- package/chunks/{monitor-X5Z3H4FY.js → monitor-DCZ27AFR.js} +26 -27
- package/chunks/nonInteractiveCli-KXD7PFO4.js +128 -0
- package/chunks/{notebook-edit-TRM2QIJK.js → notebook-edit-YU4XF5LI.js} +27 -28
- package/chunks/{openaiContentGenerator-AAYONPMF.js → openaiContentGenerator-KL5WER2D.js} +13 -13
- package/chunks/{pidfile-D4I4FTVA.js → pidfile-WBOD7EJV.js} +27 -28
- package/chunks/processUtils-AOV4R34M.js +29 -0
- package/chunks/{pt-2C6YCSHL.js → pt-A3PRQXMU.js} +9 -1
- package/chunks/{qwenContentGenerator-K3HZ2H76.js → qwenContentGenerator-YIGBHYE3.js} +28 -29
- package/chunks/{qwenOAuth2-PJQ27GSO.js → qwenOAuth2-LEYOU7RU.js} +5 -5
- package/chunks/{read-file-7SZSIZOL.js → read-file-WVL4Y76X.js} +9 -9
- package/chunks/{read-mcp-resource-SM5DA4RG.js → read-mcp-resource-JUFHCKSC.js} +2 -2
- package/chunks/{record-artifact-4XKZX3UW.js → record-artifact-DWSMBXYY.js} +2 -2
- package/chunks/{ripGrep-YNPFVCZP.js → ripGrep-6GSWJERP.js} +26 -27
- package/chunks/{ru-6BBHVZZV.js → ru-IBCWUTOC.js} +9 -1
- package/chunks/{run-qwen-serve-DMWV5N6L.js → run-qwen-serve-QYUQMEDT.js} +1233 -371
- package/chunks/{runtime-57WWRVHN.js → runtime-K2YZCNB3.js} +42 -38
- package/chunks/{scheduler-YBLGWSIL.js → scheduler-EQCSN7QV.js} +26 -27
- package/chunks/{send-message-F36YD6KQ.js → send-message-JZ752NWD.js} +3 -3
- package/chunks/{serve-R63NK3CV.js → serve-DX5UGZD4.js} +36 -35
- package/chunks/{server-Z22GCAXP.js → server-T6HJH3DR.js} +5869 -1398
- package/chunks/{session-HKAAI7BN.js → session-SNU6ACY6.js} +299 -100
- package/chunks/{settings-3EYN66GK.js → settings-AKHZZNEL.js} +34 -33
- package/chunks/{shell-6YXINTWJ.js → shell-EY74IEZK.js} +28 -27
- package/chunks/{skill-OO57P4X6.js → skill-DPU62O3H.js} +11 -11
- package/chunks/{spawnChannel-JD7G4VU6.js → spawnChannel-RQZRWJ2V.js} +28 -30
- package/chunks/{src-G5UPLZSZ.js → src-7FITDSVC.js} +164 -52
- package/chunks/{standalone-update-OB7F4JPZ.js → standalone-update-XO3RK6DO.js} +28 -29
- package/chunks/{startInteractiveUI-73EGLIIH.js → startInteractiveUI-DVWZRHYQ.js} +728 -382
- package/chunks/{syntheticOutput-34H7LGA7.js → syntheticOutput-LELY6HAI.js} +3 -3
- package/chunks/{task-create-FRGOEIKY.js → task-create-QY3BIMNM.js} +8 -7
- package/chunks/{task-list-OW766BXZ.js → task-list-D2U47WBJ.js} +6 -5
- package/chunks/{task-stop-SIR5SNBN.js → task-stop-N6E5IYLH.js} +2 -2
- package/chunks/{task-update-YRA532MT.js → task-update-HJCQILLB.js} +8 -7
- package/chunks/{team-create-PECAAPXK.js → team-create-FOSRT62K.js} +26 -27
- package/chunks/{team-delete-6OSECUZC.js → team-delete-RCWYDRF4.js} +6 -5
- package/chunks/{team-plan-approval-L6F434RY.js → team-plan-approval-6VUDV27J.js} +26 -27
- package/chunks/{theme-manager-ZG4RY6GU.js → theme-manager-6UT6IO5T.js} +27 -28
- package/chunks/{todoWrite-YDMFEV4G.js → todoWrite-FKCGATPJ.js} +4 -4
- package/chunks/{tool-search-THVIWAPB.js → tool-search-ASSFMMN5.js} +10 -10
- package/chunks/{total-session-admission-JOKNRIIA.js → total-session-admission-YYWUO23H.js} +32 -35
- package/chunks/tree-sitter-YJVE2ZUK.js +2980 -0
- package/chunks/{trustedFolders-EOGT3UVS.js → trustedFolders-4BWV2IBK.js} +29 -29
- package/chunks/types-ML3TRJQ5.js +16 -0
- package/chunks/update-relaunch-74DLGH73.js +87 -0
- package/chunks/{updateCheck-2KYEYVSB.js → updateCheck-CRFCGFO5.js} +31 -30
- package/chunks/{validateNonInterActiveAuth-EN6ZQSR2.js → validateNonInterActiveAuth-BTTEPBGQ.js} +76 -73
- package/chunks/{version-3UEA6ZIR.js → version-Y5JE5Q63.js} +1 -1
- package/chunks/{web-fetch-PAAEQKBW.js → web-fetch-CFCWTCAP.js} +5 -6
- package/chunks/{workflow-QCCCMYP3.js → workflow-6WC7VPQN.js} +27 -28
- package/chunks/workspace-providers-status-RVG2C5ZS.js +72 -0
- package/chunks/workspace-registration-store-SLEU3D3X.js +27 -0
- package/chunks/{workspace-registry-24QFLQYH.js → workspace-registry-QMWGVOTF.js} +32 -35
- package/chunks/workspace-service-G572JSEU.js +84 -0
- package/chunks/workspace-skills-status-VSSMSMNK.js +71 -0
- package/chunks/{write-file-I3MUDRIE.js → write-file-5XVDRORP.js} +27 -28
- package/chunks/{zh-RQE7I22T.js → zh-PAUNIMHQ.js} +12 -2
- package/chunks/{zh-TW-TBPQGHKH.js → zh-TW-GNEUIUFF.js} +12 -2
- package/cli-entry.js +92 -8
- package/cli.js +11 -11
- package/locales/ca.js +16 -0
- package/locales/de.js +16 -0
- package/locales/en.js +19 -0
- package/locales/fr.js +16 -0
- package/locales/ja.js +17 -1
- package/locales/pt.js +16 -0
- package/locales/ru.js +16 -0
- package/locales/zh-TW.js +20 -1
- package/locales/zh.js +20 -1
- package/package.json +3 -3
- package/web-shell/assets/{arc-C15hqnJe.js → arc-vx1tRwnX.js} +1 -1
- package/web-shell/assets/{architectureDiagram-3BPJPVTR-B-At37J_.js → architectureDiagram-3BPJPVTR-DBi6iUA1.js} +1 -1
- package/web-shell/assets/{blockDiagram-GPEHLZMM-B51wjcU7.js → blockDiagram-GPEHLZMM-Ga9JJ4Ak.js} +1 -1
- package/web-shell/assets/{c4Diagram-AAUBKEIU-xBK7BAwN.js → c4Diagram-AAUBKEIU-D8Vi5FYw.js} +1 -1
- package/web-shell/assets/channel-B29zQDTL.js +1 -0
- package/web-shell/assets/{chunk-2J33WTMH-xKmLg7Yr.js → chunk-2J33WTMH-CSV6yQpU.js} +1 -1
- package/web-shell/assets/{chunk-4BX2VUAB-BfkdKZCM.js → chunk-4BX2VUAB-toYlppdI.js} +1 -1
- package/web-shell/assets/{chunk-55IACEB6-DT713sZf.js → chunk-55IACEB6-DbjzuyAr.js} +1 -1
- package/web-shell/assets/{chunk-727SXJPM-CYEeAamv.js → chunk-727SXJPM-IkkSjSkk.js} +1 -1
- package/web-shell/assets/{chunk-AQP2D5EJ-DBN-5CFd.js → chunk-AQP2D5EJ-D5wUL6Zm.js} +1 -1
- package/web-shell/assets/{chunk-FMBD7UC4-CGZKk4PH.js → chunk-FMBD7UC4-C3o2DXG0.js} +1 -1
- package/web-shell/assets/{chunk-ND2GUHAM-qQbC2O-y.js → chunk-ND2GUHAM-CutIi14T.js} +1 -1
- package/web-shell/assets/{chunk-QZHKN3VN-B3zeXwsX.js → chunk-QZHKN3VN-DZ0NRHH-.js} +1 -1
- package/web-shell/assets/classDiagram-4FO5ZUOK-BNGI2SvC.js +1 -0
- package/web-shell/assets/classDiagram-v2-Q7XG4LA2-BNGI2SvC.js +1 -0
- package/web-shell/assets/{cose-bilkent-S5V4N54A-BKsl1Wvy.js → cose-bilkent-S5V4N54A-B3Dl88UJ.js} +1 -1
- package/web-shell/assets/{dagre-BM42HDAG-CuuuLiBK.js → dagre-BM42HDAG-DfTxfF6-.js} +1 -1
- package/web-shell/assets/{diagram-2AECGRRQ-CG4_eKiV.js → diagram-2AECGRRQ-CJyH98yO.js} +1 -1
- package/web-shell/assets/{diagram-5GNKFQAL-DSFTmZB1.js → diagram-5GNKFQAL-EbOiJNmW.js} +1 -1
- package/web-shell/assets/{diagram-KO2AKTUF-BxwlEHn8.js → diagram-KO2AKTUF-AYNqpqqA.js} +1 -1
- package/web-shell/assets/{diagram-LMA3HP47-BUAg-jMG.js → diagram-LMA3HP47-BY5VPa4H.js} +1 -1
- package/web-shell/assets/{diagram-OG6HWLK6-BFM2jlO5.js → diagram-OG6HWLK6-BhMYAKlk.js} +1 -1
- package/web-shell/assets/{erDiagram-TEJ5UH35-CerbFPa2.js → erDiagram-TEJ5UH35-Bp8S_F9l.js} +1 -1
- package/web-shell/assets/{flowDiagram-I6XJVG4X-BNeZz5Zz.js → flowDiagram-I6XJVG4X-az3TE9PU.js} +1 -1
- package/web-shell/assets/{ganttDiagram-6RSMTGT7-CTOogLaM.js → ganttDiagram-6RSMTGT7-CfkAEpCe.js} +3 -3
- package/web-shell/assets/{gitGraphDiagram-PVQCEYII-yxSFkXPj.js → gitGraphDiagram-PVQCEYII-D1QmjMCy.js} +1 -1
- package/web-shell/assets/index-C8sDwQUv.js +1130 -0
- package/web-shell/assets/index-CaBoc5bb.js +3 -0
- package/web-shell/assets/index-Dpg5Wymg.css +5 -0
- package/web-shell/assets/{infoDiagram-5YYISTIA-DYdAUevm.js → infoDiagram-5YYISTIA-D3ompLrG.js} +1 -1
- package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-CNuijZ90.js → ishikawaDiagram-YF4QCWOH-D3MRWp9I.js} +1 -1
- package/web-shell/assets/{journeyDiagram-JHISSGLW-BTyiuonf.js → journeyDiagram-JHISSGLW-DVkKCa44.js} +1 -1
- package/web-shell/assets/{kanban-definition-UN3LZRKU-DPJo0Uow.js → kanban-definition-UN3LZRKU-BLif81wF.js} +1 -1
- package/web-shell/assets/{linear-C8wKCbIC.js → linear-BDU96EGS.js} +1 -1
- package/web-shell/assets/{mermaid.core-BV5o7nW5.js → mermaid.core-B-CwC26B.js} +5 -5
- package/web-shell/assets/{mindmap-definition-RKZ34NQL-BtLcBmSt.js → mindmap-definition-RKZ34NQL-CS1WOJ4G.js} +1 -1
- package/web-shell/assets/{pieDiagram-4H26LBE5-C22J7A9Q.js → pieDiagram-4H26LBE5-BzgtNXVP.js} +1 -1
- package/web-shell/assets/{quadrantDiagram-W4KKPZXB-DSL10wiL.js → quadrantDiagram-W4KKPZXB-BRfGC8MA.js} +1 -1
- package/web-shell/assets/{requirementDiagram-4Y6WPE33-feqh0UpX.js → requirementDiagram-4Y6WPE33-CPBZkC7g.js} +1 -1
- package/web-shell/assets/{sankeyDiagram-5OEKKPKP-Z4OVaWaZ.js → sankeyDiagram-5OEKKPKP-nqNvinIk.js} +1 -1
- package/web-shell/assets/{sequenceDiagram-3UESZ5HK-DIluIcb1.js → sequenceDiagram-3UESZ5HK-CM_Wdjh3.js} +1 -1
- package/web-shell/assets/{stateDiagram-AJRCARHV-hlhnuoYH.js → stateDiagram-AJRCARHV-L0y-48VE.js} +1 -1
- package/web-shell/assets/stateDiagram-v2-BHNVJYJU-BX1DdF8s.js +1 -0
- package/web-shell/assets/{timeline-definition-PNZ67QCA-Dqf_CqgL.js → timeline-definition-PNZ67QCA-B_n5rb3A.js} +1 -1
- package/web-shell/assets/{vennDiagram-CIIHVFJN-DD2QhaTX.js → vennDiagram-CIIHVFJN-C9NmLV5e.js} +1 -1
- package/web-shell/assets/{wardley-L42UT6IY-B2uI85U_.js → wardley-L42UT6IY-CrefK9gt.js} +1 -1
- package/web-shell/assets/{wardleyDiagram-YWT4CUSO-U1aJX71g.js → wardleyDiagram-YWT4CUSO-BUccf-bC.js} +1 -1
- package/web-shell/assets/{xychartDiagram-2RQKCTM6-C0ODHUee.js → xychartDiagram-2RQKCTM6-DM6ef92l.js} +1 -1
- package/web-shell/index.html +2 -2
- package/chunks/chunk-524RQP4Q.js +0 -305
- package/chunks/chunk-CARU2RR2.js +0 -24
- package/chunks/chunk-CU3L64TP.js +0 -93
- package/chunks/chunk-OCPBI7J5.js +0 -18
- package/chunks/chunk-TEGEBB2I.js +0 -122
- package/chunks/chunk-VTU57BWZ.js +0 -30
- package/chunks/daemon-status-provider-B2UTZUJ2.js +0 -76
- package/chunks/initializer-UTQ7FB7G.js +0 -71
- package/chunks/list-DEICDL65.js +0 -74
- package/chunks/loadedSettingsAdapter-NOWEGDYJ.js +0 -68
- package/chunks/mcp-L5JXEEIA.js +0 -68
- package/chunks/nonInteractiveCli-LS2K4X6A.js +0 -124
- package/chunks/types-JNKGKUJT.js +0 -12
- package/chunks/workspace-providers-status-4KMGETOJ.js +0 -71
- package/chunks/workspace-service-RVLBMSMZ.js +0 -80
- package/chunks/workspace-skills-status-DS4ZVFTO.js +0 -70
- package/web-shell/assets/channel-CLiQD50f.js +0 -1
- package/web-shell/assets/classDiagram-4FO5ZUOK-D3sYqow5.js +0 -1
- package/web-shell/assets/classDiagram-v2-Q7XG4LA2-D3sYqow5.js +0 -1
- package/web-shell/assets/index-D5IWFVk1.css +0 -5
- package/web-shell/assets/index-KFJRDhX7.js +0 -783
- package/web-shell/assets/stateDiagram-v2-BHNVJYJU-BhQMwgpl.js +0 -1
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
"use strict";
|
|
3
3
|
import {
|
|
4
4
|
buildPermissionSettings
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-ENUQSKEY.js";
|
|
6
6
|
import {
|
|
7
7
|
resolveVoiceStreamConfig,
|
|
8
8
|
resolveVoiceTranscriptionConfig,
|
|
9
9
|
transcribeVoiceAudio
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-EWILX3BM.js";
|
|
11
11
|
import {
|
|
12
12
|
getVoiceSettingsScope,
|
|
13
13
|
isSelectableVoiceModel,
|
|
@@ -16,15 +16,15 @@ import {
|
|
|
16
16
|
readVoiceMode,
|
|
17
17
|
readVoiceModel,
|
|
18
18
|
resolveVoiceTransport
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-T2ZDAER2.js";
|
|
20
20
|
import {
|
|
21
21
|
WorkspacePermissionRulesSessionRequiredError,
|
|
22
|
-
WorkspaceSettingsPartialPersistError
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
} from "./chunk-OCPBI7J5.js";
|
|
22
|
+
WorkspaceSettingsPartialPersistError,
|
|
23
|
+
WorkspaceSkillNotFoundError,
|
|
24
|
+
WorkspaceSkillNotToggleableError
|
|
25
|
+
} from "./chunk-OA4JVLSA.js";
|
|
27
26
|
import {
|
|
27
|
+
MCP_RESTART_SERVER_DEADLINE_MS,
|
|
28
28
|
McpServerNotFoundError,
|
|
29
29
|
McpServerRestartFailedError,
|
|
30
30
|
SessionNotFoundError,
|
|
@@ -32,8 +32,9 @@ import {
|
|
|
32
32
|
WorkspaceInitPathEscapeError,
|
|
33
33
|
WorkspaceInitRaceError,
|
|
34
34
|
WorkspaceInitSymlinkError
|
|
35
|
-
} from "./chunk-
|
|
35
|
+
} from "./chunk-L4Y55KIS.js";
|
|
36
36
|
import {
|
|
37
|
+
BridgeChannelClosedError,
|
|
37
38
|
SERVE_CONTROL_EXT_METHODS,
|
|
38
39
|
SERVE_STATUS_EXT_METHODS,
|
|
39
40
|
STATUS_SCHEMA_VERSION,
|
|
@@ -45,23 +46,23 @@ import {
|
|
|
45
46
|
createIdleWorkspaceProvidersStatus,
|
|
46
47
|
createIdleWorkspaceSkillsStatus,
|
|
47
48
|
mapDomainErrorToErrorKind
|
|
48
|
-
} from "./chunk-
|
|
49
|
+
} from "./chunk-XIWQ5QST.js";
|
|
49
50
|
import {
|
|
50
51
|
getPersistScopeForModelSelection,
|
|
51
52
|
loadSettings
|
|
52
|
-
} from "./chunk-
|
|
53
|
+
} from "./chunk-TIKDHS6V.js";
|
|
53
54
|
import {
|
|
54
55
|
getWorkspaceTrustStatus
|
|
55
|
-
} from "./chunk-
|
|
56
|
+
} from "./chunk-QDTGDM2T.js";
|
|
56
57
|
import {
|
|
57
58
|
writeStderrLine
|
|
58
59
|
} from "./chunk-YUZI3WAC.js";
|
|
59
60
|
import {
|
|
60
61
|
ModelsConfig
|
|
61
|
-
} from "./chunk-
|
|
62
|
+
} from "./chunk-SA6QVLWI.js";
|
|
62
63
|
import {
|
|
63
64
|
createDebugLogger
|
|
64
|
-
} from "./chunk-
|
|
65
|
+
} from "./chunk-7NFB7LBQ.js";
|
|
65
66
|
import {
|
|
66
67
|
init_esbuild_shims
|
|
67
68
|
} from "./chunk-5O2XNYP6.js";
|
|
@@ -96,14 +97,11 @@ function voiceSettingsScopeToWire(scope) {
|
|
|
96
97
|
}
|
|
97
98
|
__name(voiceSettingsScopeToWire, "voiceSettingsScopeToWire");
|
|
98
99
|
function buildWorkspaceVoiceSettingsWrites(settings, update, opts = {}) {
|
|
99
|
-
const voiceSettingsScope = getVoiceSettingsScope(
|
|
100
|
-
settings,
|
|
101
|
-
opts.workspaceTrusted
|
|
102
|
-
);
|
|
100
|
+
const voiceSettingsScope = opts.scopeOverride ?? getVoiceSettingsScope(settings, opts.workspaceTrusted);
|
|
103
101
|
const writes = [];
|
|
104
102
|
if (update.voiceModel !== void 0) {
|
|
105
103
|
writes.push({
|
|
106
|
-
scope: getPersistScopeForModelSelection(settings),
|
|
104
|
+
scope: opts.scopeOverride ?? getPersistScopeForModelSelection(settings),
|
|
107
105
|
key: "voiceModel",
|
|
108
106
|
value: update.voiceModel
|
|
109
107
|
});
|
|
@@ -158,13 +156,13 @@ function listAvailableVoiceModels(settings) {
|
|
|
158
156
|
);
|
|
159
157
|
}
|
|
160
158
|
__name(listAvailableVoiceModels, "listAvailableVoiceModels");
|
|
161
|
-
function hasConfiguredBatchVoiceTranscriptionModel(settings) {
|
|
159
|
+
function hasConfiguredBatchVoiceTranscriptionModel(settings, opts = {}) {
|
|
162
160
|
for (const model of listAvailableVoiceModels(settings)) {
|
|
163
161
|
if (model.transport !== "qwen-asr-chat") {
|
|
164
162
|
continue;
|
|
165
163
|
}
|
|
166
164
|
try {
|
|
167
|
-
validateWorkspaceVoiceConfig(settings, model.id);
|
|
165
|
+
validateWorkspaceVoiceConfig(settings, model.id, opts);
|
|
168
166
|
return true;
|
|
169
167
|
} catch (err) {
|
|
170
168
|
debugLogger.debug(
|
|
@@ -223,14 +221,24 @@ function validateWorkspaceVoiceModel(settings, voiceModel) {
|
|
|
223
221
|
return { id: model.id, transport };
|
|
224
222
|
}
|
|
225
223
|
__name(validateWorkspaceVoiceModel, "validateWorkspaceVoiceModel");
|
|
226
|
-
function validateWorkspaceVoiceConfig(settings, voiceModel) {
|
|
224
|
+
function validateWorkspaceVoiceConfig(settings, voiceModel, opts = {}) {
|
|
227
225
|
const descriptor = validateWorkspaceVoiceModel(settings, voiceModel);
|
|
228
226
|
try {
|
|
229
227
|
const config = createVoiceModelSource(settings);
|
|
230
228
|
if (descriptor.transport === "qwen-asr-chat") {
|
|
231
|
-
resolveVoiceTranscriptionConfig({
|
|
229
|
+
resolveVoiceTranscriptionConfig({
|
|
230
|
+
config,
|
|
231
|
+
settings,
|
|
232
|
+
voiceModel,
|
|
233
|
+
env: opts.env
|
|
234
|
+
});
|
|
232
235
|
} else {
|
|
233
|
-
resolveVoiceStreamConfig({
|
|
236
|
+
resolveVoiceStreamConfig({
|
|
237
|
+
config,
|
|
238
|
+
settings,
|
|
239
|
+
voiceModel,
|
|
240
|
+
env: opts.env
|
|
241
|
+
});
|
|
234
242
|
}
|
|
235
243
|
} catch (err) {
|
|
236
244
|
throw new WorkspaceVoiceError(
|
|
@@ -242,7 +250,7 @@ function validateWorkspaceVoiceConfig(settings, voiceModel) {
|
|
|
242
250
|
return descriptor;
|
|
243
251
|
}
|
|
244
252
|
__name(validateWorkspaceVoiceConfig, "validateWorkspaceVoiceConfig");
|
|
245
|
-
function validateWorkspaceVoiceState(settings, update) {
|
|
253
|
+
function validateWorkspaceVoiceState(settings, update, opts = {}) {
|
|
246
254
|
if (update.enabled === void 0 && update.mode === void 0 && update.language === void 0 && update.voiceModel === void 0) {
|
|
247
255
|
throw new WorkspaceVoiceError(
|
|
248
256
|
400,
|
|
@@ -265,7 +273,7 @@ function validateWorkspaceVoiceState(settings, update) {
|
|
|
265
273
|
"A valid voiceModel is required before enabling voice."
|
|
266
274
|
);
|
|
267
275
|
}
|
|
268
|
-
validateWorkspaceVoiceConfig(settings, nextVoiceModel);
|
|
276
|
+
validateWorkspaceVoiceConfig(settings, nextVoiceModel, opts);
|
|
269
277
|
}
|
|
270
278
|
__name(validateWorkspaceVoiceState, "validateWorkspaceVoiceState");
|
|
271
279
|
async function transcribeWorkspaceVoiceAudio(input) {
|
|
@@ -286,6 +294,7 @@ async function transcribeWorkspaceVoiceAudio(input) {
|
|
|
286
294
|
config: createVoiceModelSource(input.settings),
|
|
287
295
|
settings: input.settings,
|
|
288
296
|
voiceModel: input.voiceModel,
|
|
297
|
+
env: input.env,
|
|
289
298
|
abortSignal: input.abortSignal
|
|
290
299
|
}
|
|
291
300
|
);
|
|
@@ -360,8 +369,11 @@ function createDaemonWorkspaceService(deps) {
|
|
|
360
369
|
workspaceSkillsStatusProvider,
|
|
361
370
|
isChannelLive,
|
|
362
371
|
persistDisabledTools,
|
|
372
|
+
persistDisabledSkills,
|
|
363
373
|
persistSetting,
|
|
364
374
|
persistSettings,
|
|
375
|
+
voiceEnv,
|
|
376
|
+
voiceSettingsScope,
|
|
365
377
|
preheatAcpChild: preheatAcpChildOnBridge,
|
|
366
378
|
queryWorkspaceStatus,
|
|
367
379
|
invokeWorkspaceCommand,
|
|
@@ -370,6 +382,35 @@ function createDaemonWorkspaceService(deps) {
|
|
|
370
382
|
} = deps;
|
|
371
383
|
let lastWorkspaceSkillsStatus;
|
|
372
384
|
let inFlightAcpPreheat;
|
|
385
|
+
const getWorkspaceSkillsStatus = /* @__PURE__ */ __name(async () => {
|
|
386
|
+
let status;
|
|
387
|
+
try {
|
|
388
|
+
status = await queryWorkspaceStatus(
|
|
389
|
+
SERVE_STATUS_EXT_METHODS.workspaceSkills,
|
|
390
|
+
() => createIdleWorkspaceSkillsStatus(boundWorkspace)
|
|
391
|
+
);
|
|
392
|
+
} catch (err) {
|
|
393
|
+
writeStderrLine(
|
|
394
|
+
`qwen serve: getWorkspaceSkillsStatus query failed: ${err instanceof Error ? err.message : String(err)}`
|
|
395
|
+
);
|
|
396
|
+
status = createIdleWorkspaceSkillsStatus(boundWorkspace);
|
|
397
|
+
}
|
|
398
|
+
if (status.initialized) {
|
|
399
|
+
lastWorkspaceSkillsStatus = status;
|
|
400
|
+
return status;
|
|
401
|
+
}
|
|
402
|
+
if (lastWorkspaceSkillsStatus) return lastWorkspaceSkillsStatus;
|
|
403
|
+
if (workspaceSkillsStatusProvider) {
|
|
404
|
+
try {
|
|
405
|
+
return await workspaceSkillsStatusProvider(boundWorkspace);
|
|
406
|
+
} catch (err) {
|
|
407
|
+
writeStderrLine(
|
|
408
|
+
`qwen serve: getWorkspaceSkillsStatus local provider failed: ${err instanceof Error ? err.message : String(err)}`
|
|
409
|
+
);
|
|
410
|
+
}
|
|
411
|
+
}
|
|
412
|
+
return status;
|
|
413
|
+
}, "getWorkspaceSkillsStatus");
|
|
373
414
|
return {
|
|
374
415
|
// -- Status queries (delegate to ACP child via queryWorkspaceStatus) --
|
|
375
416
|
async getWorkspaceMcpStatus(_ctx) {
|
|
@@ -379,35 +420,7 @@ function createDaemonWorkspaceService(deps) {
|
|
|
379
420
|
);
|
|
380
421
|
},
|
|
381
422
|
async getWorkspaceSkillsStatus(_ctx) {
|
|
382
|
-
|
|
383
|
-
try {
|
|
384
|
-
status = await queryWorkspaceStatus(
|
|
385
|
-
SERVE_STATUS_EXT_METHODS.workspaceSkills,
|
|
386
|
-
() => createIdleWorkspaceSkillsStatus(boundWorkspace)
|
|
387
|
-
);
|
|
388
|
-
} catch (err) {
|
|
389
|
-
writeStderrLine(
|
|
390
|
-
`qwen serve: getWorkspaceSkillsStatus query failed: ${err instanceof Error ? err.message : String(err)}`
|
|
391
|
-
);
|
|
392
|
-
status = createIdleWorkspaceSkillsStatus(boundWorkspace);
|
|
393
|
-
}
|
|
394
|
-
if (status.initialized) {
|
|
395
|
-
lastWorkspaceSkillsStatus = status;
|
|
396
|
-
return status;
|
|
397
|
-
}
|
|
398
|
-
if (lastWorkspaceSkillsStatus) {
|
|
399
|
-
return lastWorkspaceSkillsStatus;
|
|
400
|
-
}
|
|
401
|
-
if (workspaceSkillsStatusProvider) {
|
|
402
|
-
try {
|
|
403
|
-
return await workspaceSkillsStatusProvider(boundWorkspace);
|
|
404
|
-
} catch (err) {
|
|
405
|
-
writeStderrLine(
|
|
406
|
-
`qwen serve: getWorkspaceSkillsStatus local provider failed: ${err instanceof Error ? err.message : String(err)}`
|
|
407
|
-
);
|
|
408
|
-
}
|
|
409
|
-
}
|
|
410
|
-
return status;
|
|
423
|
+
return getWorkspaceSkillsStatus();
|
|
411
424
|
},
|
|
412
425
|
async getWorkspaceProvidersStatus(_ctx) {
|
|
413
426
|
if (workspaceProvidersStatusProvider) {
|
|
@@ -566,7 +579,10 @@ function createDaemonWorkspaceService(deps) {
|
|
|
566
579
|
async getWorkspaceVoiceStatus(_ctx) {
|
|
567
580
|
return buildWorkspaceVoiceStatus(
|
|
568
581
|
boundWorkspace,
|
|
569
|
-
loadSettings(
|
|
582
|
+
loadSettings(
|
|
583
|
+
boundWorkspace,
|
|
584
|
+
voiceEnv ? { skipLoadEnvironment: true } : true
|
|
585
|
+
)
|
|
570
586
|
);
|
|
571
587
|
},
|
|
572
588
|
// -- Mutations --
|
|
@@ -619,11 +635,15 @@ function createDaemonWorkspaceService(deps) {
|
|
|
619
635
|
"Workspace voice settings persistence is not available"
|
|
620
636
|
);
|
|
621
637
|
}
|
|
622
|
-
const settings = loadSettings(
|
|
623
|
-
|
|
638
|
+
const settings = loadSettings(
|
|
639
|
+
boundWorkspace,
|
|
640
|
+
voiceEnv ? { skipLoadEnvironment: true } : true
|
|
641
|
+
);
|
|
642
|
+
validateWorkspaceVoiceState(settings, request, { env: voiceEnv });
|
|
624
643
|
const workspaceTrusted = getWorkspaceTrustStatus(settings.merged, boundWorkspace).effective.state === "trusted";
|
|
625
644
|
const writes = buildWorkspaceVoiceSettingsWrites(settings, request, {
|
|
626
|
-
workspaceTrusted
|
|
645
|
+
workspaceTrusted,
|
|
646
|
+
...voiceSettingsScope ? { scopeOverride: voiceSettingsScope } : {}
|
|
627
647
|
});
|
|
628
648
|
const publishWrite = /* @__PURE__ */ __name((write) => {
|
|
629
649
|
publishWorkspaceEvent({
|
|
@@ -664,6 +684,9 @@ function createDaemonWorkspaceService(deps) {
|
|
|
664
684
|
writeStderrLine(
|
|
665
685
|
`qwen serve: workspace voice partial persist error (workspace=${boundWorkspace}, committed=${committed.length}/${writes.length}, failedKey=${write.key}, failedScope=${voiceSettingsScopeToWire(write.scope)}): ${err instanceof Error ? err.message : String(err)}`
|
|
666
686
|
);
|
|
687
|
+
for (const committedWrite of committed) {
|
|
688
|
+
publishWrite(committedWrite);
|
|
689
|
+
}
|
|
667
690
|
throw new WorkspaceSettingsPartialPersistError(
|
|
668
691
|
`Voice settings partial persist failed: committed=${committed.length}/${writes.length}`,
|
|
669
692
|
committed,
|
|
@@ -678,7 +701,10 @@ function createDaemonWorkspaceService(deps) {
|
|
|
678
701
|
}
|
|
679
702
|
return buildWorkspaceVoiceStatus(
|
|
680
703
|
boundWorkspace,
|
|
681
|
-
loadSettings(
|
|
704
|
+
loadSettings(
|
|
705
|
+
boundWorkspace,
|
|
706
|
+
voiceEnv ? { skipLoadEnvironment: true } : true
|
|
707
|
+
)
|
|
682
708
|
);
|
|
683
709
|
},
|
|
684
710
|
async setWorkspaceToolEnabled(ctx, toolName, enabled) {
|
|
@@ -690,6 +716,80 @@ function createDaemonWorkspaceService(deps) {
|
|
|
690
716
|
});
|
|
691
717
|
return { toolName, enabled };
|
|
692
718
|
},
|
|
719
|
+
async setWorkspaceSkillEnabled(ctx, requestedSkillName, enabled) {
|
|
720
|
+
const normalizedName = requestedSkillName.trim().toLowerCase();
|
|
721
|
+
const status = await getWorkspaceSkillsStatus();
|
|
722
|
+
const skill = status.skills.find(
|
|
723
|
+
(candidate) => candidate.name.trim().toLowerCase() === normalizedName
|
|
724
|
+
);
|
|
725
|
+
if (!skill) throw new WorkspaceSkillNotFoundError(requestedSkillName);
|
|
726
|
+
if (skill.userInvocable === false) {
|
|
727
|
+
throw new WorkspaceSkillNotToggleableError(
|
|
728
|
+
skill.name,
|
|
729
|
+
"not_user_invocable"
|
|
730
|
+
);
|
|
731
|
+
}
|
|
732
|
+
const disabled = loadSettings(boundWorkspace).merged.skills?.disabled;
|
|
733
|
+
const disabledNames = new Set(
|
|
734
|
+
(Array.isArray(disabled) ? disabled : []).filter((name) => typeof name === "string").map((name) => name.trim().toLowerCase()).filter(Boolean)
|
|
735
|
+
);
|
|
736
|
+
if (skill.level === "extension" && skill.status === "disabled" && !disabledNames.has(normalizedName)) {
|
|
737
|
+
throw new WorkspaceSkillNotToggleableError(
|
|
738
|
+
skill.name,
|
|
739
|
+
"inactive_extension"
|
|
740
|
+
);
|
|
741
|
+
}
|
|
742
|
+
const persisted = await persistDisabledSkills(
|
|
743
|
+
boundWorkspace,
|
|
744
|
+
skill.name,
|
|
745
|
+
enabled
|
|
746
|
+
);
|
|
747
|
+
const channelLive = isChannelLive?.() ?? false;
|
|
748
|
+
let activation = channelLive ? "applied" : "deferred";
|
|
749
|
+
let sessionsRefreshed = 0;
|
|
750
|
+
let sessionsFailed = 0;
|
|
751
|
+
if (persisted.changed) {
|
|
752
|
+
lastWorkspaceSkillsStatus = void 0;
|
|
753
|
+
if (channelLive) {
|
|
754
|
+
try {
|
|
755
|
+
const refreshed = await invokeWorkspaceCommand(
|
|
756
|
+
SERVE_CONTROL_EXT_METHODS.workspaceSkillsRefresh,
|
|
757
|
+
{ cwd: boundWorkspace }
|
|
758
|
+
);
|
|
759
|
+
sessionsRefreshed = refreshed.sessionsRefreshed;
|
|
760
|
+
sessionsFailed = refreshed.sessionsFailed;
|
|
761
|
+
if (sessionsFailed > 0) activation = "partial";
|
|
762
|
+
} catch (err) {
|
|
763
|
+
if (err instanceof SessionNotFoundError || err instanceof BridgeChannelClosedError) {
|
|
764
|
+
activation = "deferred";
|
|
765
|
+
} else {
|
|
766
|
+
activation = "partial";
|
|
767
|
+
sessionsFailed = 1;
|
|
768
|
+
writeStderrLine(
|
|
769
|
+
`qwen serve: workspace skill refresh failed: ${err instanceof Error ? err.message : String(err)}`
|
|
770
|
+
);
|
|
771
|
+
}
|
|
772
|
+
}
|
|
773
|
+
}
|
|
774
|
+
publishWorkspaceEvent({
|
|
775
|
+
type: "settings_changed",
|
|
776
|
+
data: {
|
|
777
|
+
key: "skills.disabled",
|
|
778
|
+
value: persisted.disabled.length > 0 ? persisted.disabled : void 0,
|
|
779
|
+
scope: "workspace"
|
|
780
|
+
},
|
|
781
|
+
originatorClientId: ctx.originatorClientId
|
|
782
|
+
});
|
|
783
|
+
}
|
|
784
|
+
return {
|
|
785
|
+
skillName: skill.name,
|
|
786
|
+
enabled,
|
|
787
|
+
changed: persisted.changed,
|
|
788
|
+
activation,
|
|
789
|
+
sessionsRefreshed,
|
|
790
|
+
sessionsFailed
|
|
791
|
+
};
|
|
792
|
+
},
|
|
693
793
|
async initWorkspace(ctx, opts) {
|
|
694
794
|
const filename = contextFilename;
|
|
695
795
|
const target = path.resolve(boundWorkspace, filename);
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"use strict";
|
|
3
3
|
import {
|
|
4
4
|
SkillError
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-SA6QVLWI.js";
|
|
6
6
|
import {
|
|
7
7
|
init_esbuild_shims
|
|
8
8
|
} from "./chunk-5O2XNYP6.js";
|
|
@@ -79,6 +79,8 @@ var SERVE_CONTROL_EXT_METHODS = {
|
|
|
79
79
|
sessionBranch: "qwen/control/session/branch",
|
|
80
80
|
sessionForkAgent: "qwen/control/session/fork_agent",
|
|
81
81
|
sessionRecap: "qwen/control/session/recap",
|
|
82
|
+
sessionGenerationStart: "qwen/control/session/generation/start",
|
|
83
|
+
sessionGenerationCancel: "qwen/control/session/generation/cancel",
|
|
82
84
|
sessionBtw: "qwen/control/session/btw",
|
|
83
85
|
sessionShellHistory: "qwen/control/session/shell_history",
|
|
84
86
|
sessionLanguage: "qwen/control/session/language",
|
|
@@ -86,6 +88,7 @@ var SERVE_CONTROL_EXT_METHODS = {
|
|
|
86
88
|
sessionContinue: "qwen/control/session/continue",
|
|
87
89
|
sessionTitle: "qwen/control/session/title",
|
|
88
90
|
sessionParent: "qwen/control/session/parent",
|
|
91
|
+
sessionSource: "qwen/control/session/source",
|
|
89
92
|
sessionArtifactsPersist: "qwen/control/session/artifacts/persist",
|
|
90
93
|
workspaceMcpRestart: "qwen/control/workspace/mcp/restart",
|
|
91
94
|
workspaceMcpManage: "qwen/control/workspace/mcp/manage",
|
|
@@ -100,6 +103,7 @@ var SERVE_CONTROL_EXT_METHODS = {
|
|
|
100
103
|
workspaceMcpRuntimeAdd: "qwen/control/workspace/mcp/runtime-add",
|
|
101
104
|
workspaceMcpRuntimeRemove: "qwen/control/workspace/mcp/runtime-remove",
|
|
102
105
|
workspaceReload: "qwen/control/workspace/reload",
|
|
106
|
+
workspaceSkillsRefresh: "qwen/control/workspace/skills/refresh",
|
|
103
107
|
workspaceExtensionsRefresh: "qwen/control/workspace/extensions/refresh",
|
|
104
108
|
/**
|
|
105
109
|
* Reverse tool channel (issue #5626, Phase 2). Unlike every other entry
|
|
@@ -144,6 +148,9 @@ var IDLE_HOOK_EVENTS = {
|
|
|
144
148
|
description: "When a new session is started",
|
|
145
149
|
matcherKind: "sessionTrigger"
|
|
146
150
|
},
|
|
151
|
+
MessageDisplay: {
|
|
152
|
+
description: "Repeatedly, as the assistant reply streams"
|
|
153
|
+
},
|
|
147
154
|
Stop: { description: "Right before Qwen Code concludes its response" },
|
|
148
155
|
SubagentStart: {
|
|
149
156
|
description: "When a subagent is started",
|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
"use strict";
|
|
3
3
|
import {
|
|
4
4
|
atomicWriteFileSync
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-WIEO4CWB.js";
|
|
6
6
|
import {
|
|
7
7
|
Storage,
|
|
8
8
|
createDebugLogger
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-7NFB7LBQ.js";
|
|
10
10
|
import {
|
|
11
11
|
init_esbuild_shims
|
|
12
12
|
} from "./chunk-5O2XNYP6.js";
|