@qwen-code/qwen-code 0.21.12 → 0.21.14-preview.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundled/qc-helper/docs/configuration/settings.md +13 -5
- package/bundled/qc-helper/docs/features/code-review.md +18 -13
- package/bundled/qc-helper/docs/features/commands.md +120 -8
- package/bundled/qc-helper/docs/features/sub-agents.md +2 -2
- package/bundled/qc-helper/docs/qwen-serve-deploy-local.md +1 -1
- package/bundled/qc-helper/docs/qwen-serve.md +20 -3
- package/bundled/review/SKILL.md +130 -82
- package/chunks/{MaxSizedBox-ZSJJ2D5S.js → MaxSizedBox-3PZITE2Y.js} +46 -45
- package/chunks/{StandaloneSessionPicker-WHUHQXSA.js → StandaloneSessionPicker-2C34PNGO.js} +68 -67
- package/chunks/{acp-startup-profiler-SVPUHLXV.js → acp-startup-profiler-HUYGO57H.js} +2 -2
- package/chunks/{acpAgent-7JOAESF5.js → acpAgent-3J4NHAYT.js} +1098 -366
- package/chunks/{agent-E6V3VXQR.js → agent-VFX4RPP5.js} +42 -41
- package/chunks/agent-headless-6WCF4J6N.js +88 -0
- package/chunks/{anthropicContentGenerator-YDT4EOKO.js → anthropicContentGenerator-M7XRJMSK.js} +8 -8
- package/chunks/{artifact-tool-4GCQQDZI.js → artifact-tool-GEXTOPVO.js} +2 -2
- package/chunks/{askUserQuestion-HZJJLR3Z.js → askUserQuestion-B33XRSB7.js} +2 -2
- package/chunks/{bridge-NPBV53UA.js → bridge-XR5ZSR7U.js} +46 -45
- package/chunks/{ca-4CQ6MYNQ.js → ca-SLZJD6QH.js} +8 -0
- package/chunks/{channel-management-service-OADNGQM3.js → channel-management-service-X6LCQUAD.js} +1 -1
- package/chunks/{channel-settings-store-4ODLJ4X2.js → channel-settings-store-Z7BUEUJE.js} +50 -49
- package/chunks/{channel-worker-group-IHBIHQ45.js → channel-worker-group-TJ35JDPE.js} +4 -4
- package/chunks/{channel-worker-manager-GEHYJ5AE.js → channel-worker-manager-G5LKWGOG.js} +4 -4
- package/chunks/{channel-worker-supervisor-ZJIIWM4I.js → channel-worker-supervisor-OEVWBHGT.js} +2 -2
- package/chunks/{chunk-47BGDLJG.js → chunk-25GHLMQQ.js} +42 -20
- package/chunks/{chunk-2ZWH53I4.js → chunk-2B2BF7P7.js} +3 -3
- package/chunks/chunk-2C6HJMG3.js +757 -0
- package/chunks/{chunk-WM3LUQLO.js → chunk-2JXDFSVE.js} +6 -6
- package/chunks/{chunk-OYWVIXHT.js → chunk-2M55OBEB.js} +1 -1
- package/chunks/{chunk-B4VN3VDH.js → chunk-2OA3JMRD.js} +5 -5
- package/chunks/{chunk-GZDWTBT3.js → chunk-3EZLLVDF.js} +2 -2
- package/chunks/chunk-3PWCMXIR.js +9169 -0
- package/chunks/{chunk-XAFIL4BD.js → chunk-4KQ2TI2K.js} +5 -5
- package/chunks/{chunk-OPVF453Q.js → chunk-4V4DFJBS.js} +3 -3
- package/chunks/{chunk-DPTMKFIH.js → chunk-4ZMS3JCR.js} +43 -12
- package/chunks/{chunk-6JEIRPLN.js → chunk-55PIFSP2.js} +2 -2
- package/chunks/{chunk-V6OBVAST.js → chunk-57KOJ2KZ.js} +1 -1
- package/chunks/{chunk-QLTATTPS.js → chunk-5CVO7YES.js} +1 -1
- package/chunks/{chunk-OK47XBYH.js → chunk-5IYS4WWR.js} +1 -1
- package/chunks/chunk-5MK45KZ3.js +492 -0
- package/chunks/{chunk-OWXFBIB6.js → chunk-6DFPR7CS.js} +1 -1
- package/chunks/{chunk-YIGGWOJE.js → chunk-6HY6IF3Z.js} +1 -1
- package/chunks/{chunk-XDRXOSAD.js → chunk-6LAPGPVA.js} +7 -5
- package/chunks/{chunk-Q4ZPYNIZ.js → chunk-6PDOHRN6.js} +4 -4
- package/chunks/{chunk-OWGRUU7F.js → chunk-6QFDQMQX.js} +1 -1
- package/chunks/{chunk-MUNA4QDC.js → chunk-6VDPDHIP.js} +29 -8
- package/chunks/{chunk-MDNUCDKZ.js → chunk-73G3Z7QS.js} +3 -3
- package/chunks/{chunk-VIFA5VJD.js → chunk-7OCSX7FC.js} +1 -1
- package/chunks/{chunk-D2RNVVH6.js → chunk-AKBOLMUF.js} +96 -18
- package/chunks/{chunk-S6TCTH4Z.js → chunk-AQBHJ2IG.js} +12 -12
- package/chunks/{chunk-WCEI6J56.js → chunk-BOJNAPUE.js} +2 -2
- package/chunks/{chunk-DAV4QFD5.js → chunk-BQWNIPTE.js} +44 -3
- package/chunks/{chunk-HOSVOUDK.js → chunk-BUQDLC2G.js} +3 -0
- package/chunks/{chunk-LUISTZXI.js → chunk-CH5OFRV7.js} +2 -2
- package/chunks/{chunk-G6MUFRNI.js → chunk-CHHABXPE.js} +1 -1
- package/chunks/{chunk-4AOVQPJU.js → chunk-CPHEPGAO.js} +1 -1
- package/chunks/{chunk-MS7GNABG.js → chunk-CXJHQVEK.js} +8 -0
- package/chunks/{chunk-K5IDV3PC.js → chunk-D34RDOLP.js} +12 -2
- package/chunks/{chunk-3GM5DLBI.js → chunk-DGJ7O55J.js} +3 -3
- package/chunks/{chunk-7KJPO7YH.js → chunk-DRKYT2TR.js} +2 -2
- package/chunks/{chunk-PZW46OTB.js → chunk-DVR7XKO5.js} +2 -2
- package/chunks/{chunk-CQ6IPDQW.js → chunk-DZCV3ZYU.js} +3 -3
- package/chunks/{chunk-ULNWG62W.js → chunk-E3DYKPYZ.js} +3 -3
- package/chunks/{chunk-YCHNAKC5.js → chunk-E5RS7LF4.js} +44 -13
- package/chunks/{chunk-4NFY2S7N.js → chunk-E7REAOTN.js} +15 -0
- package/chunks/chunk-EOCQCNV4.js +3887 -0
- package/chunks/{chunk-D7QGE3RT.js → chunk-FAAUPSY2.js} +1 -1
- package/chunks/{chunk-2IVYL3IF.js → chunk-FCTLOVYW.js} +1 -1
- package/chunks/{chunk-QPBFRWCP.js → chunk-FS5NGKWC.js} +3 -3
- package/chunks/{chunk-RQJA2YYO.js → chunk-G6FFFICU.js} +4 -4
- package/chunks/{chunk-36XKGB7E.js → chunk-GV3OIADZ.js} +3 -3
- package/chunks/{chunk-3AEKDXKT.js → chunk-H4A72DE5.js} +1 -1
- package/chunks/{chunk-IH4Z54RJ.js → chunk-HGPMOXLZ.js} +5 -5
- package/chunks/{chunk-DG4IQ6JG.js → chunk-I3N2Z25H.js} +3 -3
- package/chunks/{chunk-WI6GIM2M.js → chunk-I7NTHW4C.js} +2 -2
- package/chunks/{chunk-ZBB5EZZV.js → chunk-IA2K2HJE.js} +2 -2
- package/chunks/{chunk-IRSLAS4M.js → chunk-IOTPI425.js} +19 -11
- package/chunks/{chunk-ROIJYS5K.js → chunk-ISRHAMNL.js} +3 -3
- package/chunks/{chunk-CGM3E75C.js → chunk-J63PKMYA.js} +3 -3
- package/chunks/{chunk-PTSEETCO.js → chunk-J6YS7Z25.js} +107 -13
- package/chunks/{chunk-ZQUY3ZJU.js → chunk-K3CECR5C.js} +4 -4
- package/chunks/{chunk-QBJYSIQ4.js → chunk-K3LPAED5.js} +53 -12
- package/chunks/{chunk-FRHQQC2Z.js → chunk-KBXKR5R2.js} +1 -1
- package/chunks/{chunk-4KM2SYK5.js → chunk-KC4WMLZO.js} +1491 -10579
- package/chunks/{chunk-IX4PWUDU.js → chunk-KSGWAYNE.js} +14350 -8679
- package/chunks/{chunk-CPFFU46D.js → chunk-KV27IEHM.js} +1 -1
- package/chunks/{chunk-OR64CU46.js → chunk-L6CCLB3G.js} +1 -1
- package/chunks/{chunk-M6NDLY2T.js → chunk-LD5VIJ7S.js} +1 -1
- package/chunks/{chunk-GXTMEATA.js → chunk-LLR424CQ.js} +18 -15
- package/chunks/{chunk-RDVNSJQU.js → chunk-LRDB2OLB.js} +3 -3
- package/chunks/{chunk-LSRI3ND3.js → chunk-MA2HEDVP.js} +1 -1
- package/chunks/{chunk-DFVXU5YM.js → chunk-MCG53LWC.js} +1 -1
- package/chunks/{chunk-YBVVOSOH.js → chunk-MIPFDQAF.js} +1 -1
- package/chunks/{chunk-KRXPRVGL.js → chunk-MLXTMF7H.js} +0 -1
- package/chunks/{chunk-BSR5AXZR.js → chunk-NRPXRNN4.js} +1 -1
- package/chunks/{chunk-X5SLJOMF.js → chunk-NV6LW6FT.js} +4 -4
- package/chunks/{chunk-YILJKX2T.js → chunk-NVRMCWTP.js} +10 -6
- package/chunks/chunk-NYWWQ437.js +24 -0
- package/chunks/{chunk-AKBFSOC5.js → chunk-OBJYN4MX.js} +2 -2
- package/chunks/{chunk-NX4A23LY.js → chunk-OJOP26ET.js} +3 -3
- package/chunks/{chunk-3GDBZJD6.js → chunk-OLZSWUZR.js} +7 -7
- package/chunks/{chunk-K34GJQOZ.js → chunk-OO4FKHLO.js} +4 -4
- package/chunks/{chunk-BSSLSQEW.js → chunk-OSAFWBNR.js} +3 -3
- package/chunks/{chunk-TMFWI4RC.js → chunk-OVY67CYC.js} +1 -1
- package/chunks/{chunk-6ZKSO6K7.js → chunk-P425IVUK.js} +7 -7
- package/chunks/{chunk-4XA4QIUA.js → chunk-PMS7O6SA.js} +1 -1
- package/chunks/{chunk-LCX5B364.js → chunk-PPTM4O4R.js} +3 -3
- package/chunks/{chunk-VPV7WBVT.js → chunk-PT4I7NBA.js} +1 -1
- package/chunks/{chunk-3LDGOQXZ.js → chunk-QECSDJET.js} +6 -6
- package/chunks/{chunk-FMIH5KMQ.js → chunk-QEJZUXSK.js} +1 -1
- package/chunks/{chunk-NLFLYSS4.js → chunk-QFJ5JHQR.js} +1 -1
- package/chunks/{chunk-KWX56CHZ.js → chunk-QIHHJKXT.js} +7 -7
- package/chunks/{chunk-TDESMS7M.js → chunk-RAQBBGS6.js} +50 -70
- package/chunks/{chunk-KEC5FHLM.js → chunk-ROIYNTHJ.js} +3 -3
- package/chunks/{chunk-63FNZTWG.js → chunk-RWDNJBWN.js} +2 -2
- package/chunks/{chunk-56HVDG3M.js → chunk-RXHBTKMG.js} +6 -6
- package/chunks/{chunk-MAKIANMX.js → chunk-S6CXQKDD.js} +3 -3
- package/chunks/{chunk-CIDQISGM.js → chunk-SA7GBPEA.js} +5 -5
- package/chunks/{chunk-YX2RDGAL.js → chunk-SBRIBTYN.js} +1 -1
- package/chunks/{chunk-TTRH3RTQ.js → chunk-SG7ZP5PG.js} +4 -4
- package/chunks/{chunk-XH3KAV2G.js → chunk-SGLPDKRT.js} +3 -3
- package/chunks/{chunk-JRIVMPD2.js → chunk-SLILKYV2.js} +4 -4
- package/chunks/{chunk-NW2GIPG3.js → chunk-SNQZZ765.js} +2 -2
- package/chunks/{chunk-I7BT2MME.js → chunk-SR2LYSMT.js} +1 -1
- package/chunks/{chunk-TXP5NGG3.js → chunk-SXCOEJO4.js} +1 -1
- package/chunks/{chunk-MELQSJOU.js → chunk-TNPWODIZ.js} +1 -1
- package/chunks/{chunk-VLHR7F4E.js → chunk-U6RZRKNM.js} +247 -198
- package/chunks/{chunk-HTYND72J.js → chunk-UC67T4SF.js} +3 -1
- package/chunks/{chunk-HG3UBTJ4.js → chunk-UYDGFWIJ.js} +609 -23
- package/chunks/{chunk-6P5EXEBL.js → chunk-VGAAAMRD.js} +1126 -232
- package/chunks/{chunk-WDVDVWJ3.js → chunk-VHPMDDPT.js} +6 -6
- package/chunks/{chunk-H7TMVHKE.js → chunk-WGHHA7ZH.js} +1 -1
- package/chunks/{chunk-FQDCO3CJ.js → chunk-WP4WIUOJ.js} +7 -0
- package/chunks/{chunk-5RUCD4ED.js → chunk-WPVUOVYX.js} +3 -3
- package/chunks/{chunk-EJOGLSNJ.js → chunk-WSSH2BNO.js} +2 -2
- package/chunks/{chunk-5AFGJNY6.js → chunk-WVIABDXV.js} +4 -4
- package/chunks/chunk-WZAD4ZNJ.js +59 -0
- package/chunks/{chunk-62X3CM7Q.js → chunk-X3YA3YGG.js} +8 -5
- package/chunks/{chunk-EBPLKY6U.js → chunk-XC377TLN.js} +5483 -3168
- package/chunks/{chunk-KLOMACIR.js → chunk-XLLKYULU.js} +2 -2
- package/chunks/{chunk-QSD4UH74.js → chunk-XO24LIZC.js} +254 -56
- package/chunks/{chunk-N4SVADAV.js → chunk-XT4RKHVE.js} +5 -4
- package/chunks/{chunk-PVXEJB66.js → chunk-XUJNK7Y6.js} +1 -1
- package/chunks/{chunk-YBHUXEC6.js → chunk-YECDICIO.js} +3 -3
- package/chunks/{chunk-FA5K6YI2.js → chunk-YFPZ3NNC.js} +36 -4
- package/chunks/{chunk-46UV252V.js → chunk-YHC2EYYG.js} +35 -38
- package/chunks/{chunk-6SPD4Z7F.js → chunk-YIWH3MKK.js} +8 -3
- package/chunks/{chunk-ZMY2P4L3.js → chunk-YXC7JYUI.js} +4 -4
- package/chunks/{chunk-TB4YFWXG.js → chunk-YZHRN3CF.js} +2 -2
- package/chunks/{chunk-TQDFSQQF.js → chunk-YZOSNW4R.js} +1 -1
- package/chunks/{chunk-DD6O3ZRD.js → chunk-ZIGC3MUS.js} +3 -5
- package/chunks/{chunk-CZ4OWGQQ.js → chunk-ZXEAEZFN.js} +63 -19
- package/chunks/{computer-use-F4URV4TU.js → computer-use-ABECHPS5.js} +42 -41
- package/chunks/{config-utils-Z3OW3IQG.js → config-utils-NJQA5YLJ.js} +2 -2
- package/chunks/{contextCommand-IGSS2U5J.js → contextCommand-4CD5HZQQ.js} +44 -43
- package/chunks/{core-runtime-H5CZDN3A.js → core-runtime-2MOVQ4VX.js} +42 -41
- package/chunks/{create-sub-session-XT6DLYOE.js → create-sub-session-KRQULJE6.js} +2 -2
- package/chunks/{create-sub-session-PA7MFTHK.js → create-sub-session-L6NNHG5N.js} +46 -44
- package/chunks/{cron-create-2JZ2TWTF.js → cron-create-NFRZEOQX.js} +4 -4
- package/chunks/{cron-delete-CTPD2P26.js → cron-delete-GFVSVO7C.js} +4 -4
- package/chunks/{cron-list-V44KHAF6.js → cron-list-NRW34CLU.js} +4 -4
- package/chunks/{daemon-GED37WOX.js → daemon-XH76IXOC.js} +436 -29
- package/chunks/{daemon-git-worktree-guard-LZDCNJGV.js → daemon-git-worktree-guard-BLXFEG4Q.js} +44 -43
- package/chunks/daemon-status-provider-XGD3TPTO.js +103 -0
- package/chunks/daemon-trust-policy-THEGCWPO.js +100 -0
- package/chunks/{daemon-trust-policy-monitor-2K2YETMT.js → daemon-trust-policy-monitor-L7L4ACWQ.js} +49 -48
- package/chunks/{de-UBEBKG6V.js → de-AH4LGCF5.js} +8 -0
- package/chunks/{deferred-core-runtime-FKJ3OYE7.js → deferred-core-runtime-YQLHDUGE.js} +42 -41
- package/chunks/discovery-X2NV535U.js +27 -0
- package/chunks/{display-image-M2ELAVN4.js → display-image-ON3EYFRD.js} +4 -4
- package/chunks/{dist-WJ4BHIEW.js → dist-ESS34DHC.js} +72 -0
- package/chunks/{earlyInputCapture-WJBSJQUF.js → earlyInputCapture-PCTXNW7N.js} +43 -42
- package/chunks/{edit-X73LA4YO.js → edit-QX2EGWYW.js} +45 -43
- package/chunks/{en-X6YV7GME.js → en-MD3GP5YL.js} +8 -0
- package/chunks/{enter-worktree-CLRQTIVN.js → enter-worktree-EM3ZZ2SB.js} +42 -41
- package/chunks/{enterPlanMode-6BDYUQ5T.js → enterPlanMode-ESCMVAKB.js} +42 -41
- package/chunks/{environment-WOAJXJDJ.js → environment-TOJI56YV.js} +45 -44
- package/chunks/{errors-7OY5MXYY.js → errors-DZ5FWWEM.js} +44 -43
- package/chunks/{exit-worktree-TFFJXCRT.js → exit-worktree-KUIJ36XA.js} +42 -41
- package/chunks/exitPlanMode-NFVY54FV.js +86 -0
- package/chunks/{fast-path-QQLGC37M.js → fast-path-JLQXJSH6.js} +3 -3
- package/chunks/{fast-path-settings-LNOFM2YP.js → fast-path-settings-WHX3J3ZI.js} +2 -2
- package/chunks/{fr-VENTC2BS.js → fr-ZEML2JWS.js} +8 -0
- package/chunks/{gemini-VHE62IJL.js → gemini-I7OT4FWL.js} +92 -91
- package/chunks/{geminiContentGenerator-VSHIEGAQ.js → geminiContentGenerator-GRIS77NJ.js} +6 -6
- package/chunks/{glob-VMEEDDLO.js → glob-7TBUUV6R.js} +42 -41
- package/chunks/{goal-tools-M4UDAZXP.js → goal-tools-K5OHOJ6B.js} +56 -12
- package/chunks/{grep-F4UAR7KX.js → grep-743SYWCZ.js} +42 -41
- package/chunks/handleAutoUpdate-GAOYUYOD.js +95 -0
- package/chunks/{i18n-ETW24DHW.js → i18n-2ITURYX6.js} +43 -42
- package/chunks/{image-gen-YPK2AZT4.js → image-gen-4OIWDZD6.js} +10 -10
- package/chunks/initializer-OC7LWA6X.js +101 -0
- package/chunks/{installationInfo-P7OTIR4P.js → installationInfo-CO47QX3Q.js} +43 -42
- package/chunks/{ja-QHT4EQTO.js → ja-UM5B2HMD.js} +8 -0
- package/chunks/{keychain-token-storage-NKKCUHI2.js → keychain-token-storage-3XFJ5ZB2.js} +2 -2
- package/chunks/list-ATR2SFWT.js +104 -0
- package/chunks/{list-agents-O6WSY4CT.js → list-agents-OSVDFI6S.js} +2 -2
- package/chunks/loadedSettingsAdapter-NK4B7AGK.js +98 -0
- package/chunks/{loggingContentGenerator-J2J2AANS.js → loggingContentGenerator-3WXBU5TQ.js} +67 -41
- package/chunks/{loop-wakeup-GVQRMUKS.js → loop-wakeup-HWVUU5CF.js} +5 -5
- package/chunks/{ls-6W2D7TKU.js → ls-D3HUFHDP.js} +4 -4
- package/chunks/{lsp-NJ4KFBI2.js → lsp-3QDDJTCS.js} +2 -2
- package/chunks/{managed-npm-update-WMV5ITKU.js → managed-npm-update-4SSBWI2D.js} +43 -42
- package/chunks/mcp-C62AE2QI.js +98 -0
- package/chunks/{monitor-2MM23VDV.js → monitor-FEYEGASA.js} +42 -41
- package/chunks/nonInteractiveCli-AJEV5ZWO.js +165 -0
- package/chunks/{notebook-edit-QD4TRKLY.js → notebook-edit-SLLTEY4O.js} +46 -44
- package/chunks/{openaiContentGenerator-KLHSPVN2.js → openaiContentGenerator-WLUGIAPX.js} +27 -26
- package/chunks/{pidfile-RQGZBNXT.js → pidfile-TV2VWUMB.js} +43 -42
- package/chunks/{processUtils-HZZDA2VV.js → processUtils-3IN2ZR55.js} +2 -2
- package/chunks/proper-lockfile-3LHWIM44.js +8 -0
- package/chunks/{pt-VL3I5RNY.js → pt-5BMJ3XYH.js} +8 -0
- package/chunks/{qwenContentGenerator-T75M2Z3B.js → qwenContentGenerator-GSGRFPJE.js} +47 -46
- package/chunks/{qwenOAuth2-5QZU444W.js → qwenOAuth2-JLSTIS4Z.js} +9 -9
- package/chunks/{read-file-LOVUSBJC.js → read-file-6PZZRGZZ.js} +15 -13
- package/chunks/{read-mcp-resource-GWCP23WG.js → read-mcp-resource-XD54ZQMC.js} +2 -2
- package/chunks/{record-artifact-IYQDEYMV.js → record-artifact-GLU3UWBV.js} +5 -3
- package/chunks/{resumeHistoryUtils-LVKSSQII.js → resumeHistoryUtils-5GEWKOOO.js} +49 -48
- package/chunks/ripGrep-FX7GBGFN.js +86 -0
- package/chunks/{ru-4RCKL4PY.js → ru-6GL66ORV.js} +8 -0
- package/chunks/{run-qwen-serve-GZW7B4WK.js → run-qwen-serve-7RHU3NSV.js} +423 -212
- package/chunks/{runtime-MYRXEO2E.js → runtime-EPOXAMLP.js} +52 -51
- package/chunks/{scheduler-DPTPI6FW.js → scheduler-F4Y7ENVV.js} +44 -43
- package/chunks/{sdk-exporters-http-NHBYB5FZ.js → sdk-exporters-http-NC746HLT.js} +3 -3
- package/chunks/{sdk-impl-SK4P5WON.js → sdk-impl-YVL7BP6Y.js} +3 -3
- package/chunks/{send-message-O7FO63UK.js → send-message-TNBG5EVA.js} +7 -7
- package/chunks/{serve-XCG4XCDA.js → serve-LQV4TN5A.js} +49 -50
- package/chunks/{server-AWQHKXLG.js → server-IZCKLIYQ.js} +5042 -1725
- package/chunks/{session-P5FKNCNR.js → session-52ZGTDVB.js} +87 -85
- package/chunks/{settings-CSYVIP2R.js → settings-WCVB34HW.js} +48 -47
- package/chunks/{shell-EGTSUO2P.js → shell-33BIUBLH.js} +42 -41
- package/chunks/{skill-IFUD72GF.js → skill-IYVQ2QNK.js} +20 -18
- package/chunks/{skill-settings-YOE7LBHE.js → skill-settings-YG4ZS4OZ.js} +48 -47
- package/chunks/{spawnChannel-PQSZIOLY.js → spawnChannel-BLA4YT4W.js} +44 -43
- package/chunks/{standalone-update-RB2EGUSF.js → standalone-update-ALRIPWSM.js} +44 -43
- package/chunks/{startInteractiveUI-KMYUJ2MU.js → startInteractiveUI-PISBXWKA.js} +614 -294
- package/chunks/{syntheticOutput-DVHJMUGV.js → syntheticOutput-7GWFIDXT.js} +3 -3
- package/chunks/{task-create-4NC7PDI4.js → task-create-EILHJJB7.js} +11 -11
- package/chunks/{task-list-LBSRMOC7.js → task-list-WGJR6YL5.js} +21 -7
- package/chunks/{task-stop-YFNATTIM.js → task-stop-X37KYTKB.js} +2 -2
- package/chunks/{task-update-BPLM52GD.js → task-update-XZAHVXJ5.js} +86 -15
- package/chunks/{team-create-B6A6MJBT.js → team-create-CIQDCC6A.js} +43 -43
- package/chunks/{team-delete-MKYMYBFM.js → team-delete-UEP4QOOT.js} +6 -6
- package/chunks/{team-plan-approval-5WO3CXXU.js → team-plan-approval-664XCRB4.js} +42 -41
- package/chunks/{terminal-image-renderer-BTRE2GEU.js → terminal-image-renderer-TEBO6ONY.js} +44 -43
- package/chunks/theme-manager-3CIFH2JV.js +90 -0
- package/chunks/{todoWrite-K5K7NRE5.js → todoWrite-ATS62CAP.js} +4 -4
- package/chunks/{tool-search-QNBLXUGR.js → tool-search-IJX5JHJB.js} +19 -17
- package/chunks/{total-session-admission-N4E5SFBO.js → total-session-admission-XBK2NVRV.js} +46 -45
- package/chunks/{trustedFolders-MQS46LIU.js → trustedFolders-OOFNLRWK.js} +43 -42
- package/chunks/{update-relaunch-536KRL33.js → update-relaunch-EIG7EYAQ.js} +5 -5
- package/chunks/{updateCheck-QJI2SYWF.js → updateCheck-KYDCBLSF.js} +46 -45
- package/chunks/{useAutoAcceptIndicator-7QASHD46.js → useAutoAcceptIndicator-RFX3KNBN.js} +52 -51
- package/chunks/{validateNonInterActiveAuth-ZNRGWBLV.js → validateNonInterActiveAuth-MZXSAITU.js} +83 -81
- package/chunks/{version-DBEQAFRW.js → version-PJC6ZNXV.js} +1 -1
- package/chunks/{web-fetch-MBIVXKPE.js → web-fetch-XXICVGKQ.js} +21 -18
- package/chunks/{web-search-4LBIN6VF.js → web-search-LHPM6QWC.js} +9 -9
- package/chunks/{workflow-LNMA55HY.js → workflow-4CUO2BV7.js} +159 -57
- package/chunks/workspace-providers-status-G4MUGH3X.js +101 -0
- package/chunks/{workspace-registration-store-BGRKKIYR.js → workspace-registration-store-QMDMFWBE.js} +2 -2
- package/chunks/{workspace-registry-L4NCJ34K.js → workspace-registry-FKBB4MZK.js} +48 -46
- package/chunks/{workspace-service-LOXYKYTR.js → workspace-service-TIDTTA65.js} +55 -54
- package/chunks/workspace-skills-status-LBC2TZKM.js +101 -0
- package/chunks/{workspace-trust-reconciler-H36TCR2S.js → workspace-trust-reconciler-4KJ567XP.js} +58 -56
- package/chunks/{write-file-JJAY7JSP.js → write-file-R6LAEER5.js} +42 -41
- package/chunks/{zh-TW-SQ4HTSCW.js → zh-TW-LVLBK4KF.js} +8 -0
- package/chunks/{zh-LMSTK4WD.js → zh-UBMWS2BJ.js} +8 -0
- package/chunks/{zoom-image-4MVVVM7E.js → zoom-image-XLCK6DDK.js} +20 -17
- package/cli.js +13 -13
- package/locales/ca.js +13 -0
- package/locales/de.js +12 -0
- package/locales/en.js +11 -0
- package/locales/fr.js +13 -0
- package/locales/ja.js +13 -0
- package/locales/pt.js +12 -0
- package/locales/ru.js +12 -0
- package/locales/zh-TW.js +11 -0
- package/locales/zh.js +11 -0
- package/package.json +3 -3
- package/web-shell/assets/{arc-B-89zHN4.js → arc-DItbX0DI.js} +1 -1
- package/web-shell/assets/{architectureDiagram-3BPJPVTR-BkcOncHk.js → architectureDiagram-3BPJPVTR-CmnIlH8y.js} +1 -1
- package/web-shell/assets/{blockDiagram-GPEHLZMM-DQ4yboaF.js → blockDiagram-GPEHLZMM-pObnB9kw.js} +1 -1
- package/web-shell/assets/{c4Diagram-AAUBKEIU-C_8ZjPDI.js → c4Diagram-AAUBKEIU-BNBmMS0Y.js} +1 -1
- package/web-shell/assets/channel-hZnMfWA9.js +1 -0
- package/web-shell/assets/{chunk-2J33WTMH-naKVe1Bm.js → chunk-2J33WTMH-Dz4JBOO6.js} +1 -1
- package/web-shell/assets/{chunk-4BX2VUAB-DdoViKT2.js → chunk-4BX2VUAB-Cz2GnvAR.js} +1 -1
- package/web-shell/assets/{chunk-55IACEB6-DUDQZEwU.js → chunk-55IACEB6-CC6kOQYx.js} +1 -1
- package/web-shell/assets/{chunk-727SXJPM-BqpDTR5s.js → chunk-727SXJPM-Z4lY4gbh.js} +1 -1
- package/web-shell/assets/{chunk-AQP2D5EJ-CdmEknkT.js → chunk-AQP2D5EJ-Yz0hZr3D.js} +1 -1
- package/web-shell/assets/{chunk-FMBD7UC4-CH7fFTLB.js → chunk-FMBD7UC4-nKmTWTv9.js} +1 -1
- package/web-shell/assets/{chunk-ND2GUHAM-ObgSuFKF.js → chunk-ND2GUHAM-CjZz0f6Y.js} +1 -1
- package/web-shell/assets/{chunk-QZHKN3VN-D9fKdv_s.js → chunk-QZHKN3VN-Bab3FpuS.js} +1 -1
- package/web-shell/assets/classDiagram-4FO5ZUOK-BRnxm8DX.js +1 -0
- package/web-shell/assets/classDiagram-v2-Q7XG4LA2-BRnxm8DX.js +1 -0
- package/web-shell/assets/{cose-bilkent-S5V4N54A-CvzATMx9.js → cose-bilkent-S5V4N54A-BuSAGFox.js} +1 -1
- package/web-shell/assets/{dagre-BM42HDAG-M_xU21QW.js → dagre-BM42HDAG-CRZXTg3g.js} +1 -1
- package/web-shell/assets/{diagram-2AECGRRQ-CNrl9sW1.js → diagram-2AECGRRQ-BFx1Ayrz.js} +1 -1
- package/web-shell/assets/{diagram-5GNKFQAL-CUweVT6T.js → diagram-5GNKFQAL-B2hMZ3gS.js} +1 -1
- package/web-shell/assets/{diagram-KO2AKTUF-D3n6Lxjo.js → diagram-KO2AKTUF-DKxAQLmc.js} +1 -1
- package/web-shell/assets/{diagram-LMA3HP47-0SeFPK4t.js → diagram-LMA3HP47-Bo1xGqVY.js} +1 -1
- package/web-shell/assets/{diagram-OG6HWLK6-DAgyEwge.js → diagram-OG6HWLK6-B9NG78d-.js} +1 -1
- package/web-shell/assets/{erDiagram-TEJ5UH35-CzxBBDIK.js → erDiagram-TEJ5UH35-DltQKiqQ.js} +1 -1
- package/web-shell/assets/{flowDiagram-I6XJVG4X-B0uj0jyo.js → flowDiagram-I6XJVG4X-5xXGmS4I.js} +1 -1
- package/web-shell/assets/{ganttDiagram-6RSMTGT7-DFzcj5km.js → ganttDiagram-6RSMTGT7-bhGL5n0l.js} +1 -1
- package/web-shell/assets/{gitGraphDiagram-PVQCEYII-DylJ_Fc9.js → gitGraphDiagram-PVQCEYII-ZYnz9hgh.js} +1 -1
- package/web-shell/assets/{index-BKSAnXU9.js → index-CBBeUArD.js} +1 -1
- package/web-shell/assets/index-CbgU-jUo.css +5 -0
- package/web-shell/assets/index-_nhzXqab.js +1750 -0
- package/web-shell/assets/{infoDiagram-5YYISTIA-BYMcJVMI.js → infoDiagram-5YYISTIA-Cg-jamQf.js} +1 -1
- package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-t1quI1S3.js → ishikawaDiagram-YF4QCWOH-CcmvKlyq.js} +1 -1
- package/web-shell/assets/{journeyDiagram-JHISSGLW-YM_QVUJm.js → journeyDiagram-JHISSGLW-BRsOQZp1.js} +1 -1
- package/web-shell/assets/{kanban-definition-UN3LZRKU-jw8OddK1.js → kanban-definition-UN3LZRKU-xW-dmEHK.js} +1 -1
- package/web-shell/assets/{linear-Dlr3RVuP.js → linear-ClBfEZH2.js} +1 -1
- package/web-shell/assets/{mermaid.core-CqGKzNzd.js → mermaid.core-D65NDkzc.js} +5 -5
- package/web-shell/assets/{mindmap-definition-RKZ34NQL-BqureoOS.js → mindmap-definition-RKZ34NQL-CyvFslYa.js} +1 -1
- package/web-shell/assets/{pieDiagram-4H26LBE5-Da20HkK1.js → pieDiagram-4H26LBE5-BwSefMyG.js} +1 -1
- package/web-shell/assets/{quadrantDiagram-W4KKPZXB-BsNlMvJy.js → quadrantDiagram-W4KKPZXB-GqBJspFS.js} +1 -1
- package/web-shell/assets/{requirementDiagram-4Y6WPE33-DzVCQCse.js → requirementDiagram-4Y6WPE33-B137PlTJ.js} +1 -1
- package/web-shell/assets/{sankeyDiagram-5OEKKPKP-BMo16voT.js → sankeyDiagram-5OEKKPKP-maHkkt8i.js} +1 -1
- package/web-shell/assets/{sequenceDiagram-3UESZ5HK-Bgi-pdHk.js → sequenceDiagram-3UESZ5HK-DJ1mRaG3.js} +1 -1
- package/web-shell/assets/{stateDiagram-AJRCARHV-xaPQXwGk.js → stateDiagram-AJRCARHV-aRmP7Q4i.js} +1 -1
- package/web-shell/assets/stateDiagram-v2-BHNVJYJU-Db39gvZ_.js +1 -0
- package/web-shell/assets/{timeline-definition-PNZ67QCA-C_9RuvKG.js → timeline-definition-PNZ67QCA-CIQ3BRPA.js} +1 -1
- package/web-shell/assets/{vennDiagram-CIIHVFJN-Bgu6vdla.js → vennDiagram-CIIHVFJN-DR9VPd5h.js} +1 -1
- package/web-shell/assets/{wardley-L42UT6IY-CFTZ8IrX.js → wardley-L42UT6IY-ZcfIbT4D.js} +1 -1
- package/web-shell/assets/{wardleyDiagram-YWT4CUSO-BASW9Vmt.js → wardleyDiagram-YWT4CUSO-D0jgPi4T.js} +1 -1
- package/web-shell/assets/{xychartDiagram-2RQKCTM6--Nh-CD3F.js → xychartDiagram-2RQKCTM6-BGWU4s5o.js} +1 -1
- package/web-shell/index.html +2 -2
- package/chunks/agent-headless-OEQNFOMH.js +0 -87
- package/chunks/chunk-DEDESZDL.js +0 -358
- package/chunks/chunk-MPHPFVKK.js +0 -48
- package/chunks/chunk-UI5UGEF4.js +0 -3576
- package/chunks/daemon-status-provider-QYM57Z44.js +0 -102
- package/chunks/daemon-trust-policy-TSRVEYZR.js +0 -99
- package/chunks/discovery-XLHITE74.js +0 -220
- package/chunks/exitPlanMode-WDURQMIU.js +0 -85
- package/chunks/handleAutoUpdate-GN7Z6QAC.js +0 -94
- package/chunks/initializer-UA6KQ7MS.js +0 -100
- package/chunks/list-GRAMIQOT.js +0 -103
- package/chunks/loadedSettingsAdapter-5O2TDS3I.js +0 -97
- package/chunks/mcp-XLP33CAI.js +0 -97
- package/chunks/nonInteractiveCli-KTA5K6FS.js +0 -163
- package/chunks/ripGrep-ZJSHKB6H.js +0 -85
- package/chunks/theme-manager-XL2N5SBY.js +0 -89
- package/chunks/workspace-providers-status-PDDMI6ST.js +0 -100
- package/chunks/workspace-skills-status-IJ5FOQI6.js +0 -100
- package/web-shell/assets/channel-Du2WFns8.js +0 -1
- package/web-shell/assets/classDiagram-4FO5ZUOK-Zw0HafH6.js +0 -1
- package/web-shell/assets/classDiagram-v2-Q7XG4LA2-Zw0HafH6.js +0 -1
- package/web-shell/assets/index-BIGQygTL.css +0 -5
- package/web-shell/assets/index-J7OMTqAN.js +0 -1789
- package/web-shell/assets/stateDiagram-v2-BHNVJYJU-D5RqimXD.js +0 -1
- package/chunks/{chunk-SYHXR6WM.js → chunk-4W5U2TUT.js} +3 -3
- /package/chunks/{chunk-NTTBXH7U.js → chunk-UGK4K2N2.js} +0 -0
|
@@ -10,11 +10,11 @@ import {
|
|
|
10
10
|
} from "./chunk-CPBF7KYF.js";
|
|
11
11
|
import {
|
|
12
12
|
atomicWriteJSON
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-YECDICIO.js";
|
|
14
14
|
import {
|
|
15
15
|
Storage,
|
|
16
16
|
isNodeError
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-BUQDLC2G.js";
|
|
18
18
|
import {
|
|
19
19
|
init_esbuild_shims
|
|
20
20
|
} from "./chunk-5O2XNYP6.js";
|
|
@@ -24,8 +24,86 @@ import {
|
|
|
24
24
|
|
|
25
25
|
// packages/core/src/agents/team/teamHelpers.ts
|
|
26
26
|
init_esbuild_shims();
|
|
27
|
-
import * as
|
|
27
|
+
import * as fs2 from "node:fs/promises";
|
|
28
28
|
import * as path from "node:path";
|
|
29
|
+
|
|
30
|
+
// packages/core/src/utils/process-liveness.ts
|
|
31
|
+
init_esbuild_shims();
|
|
32
|
+
import * as fs from "node:fs";
|
|
33
|
+
function isPidAlive(pid) {
|
|
34
|
+
if (!Number.isInteger(pid) || pid <= 0) return false;
|
|
35
|
+
try {
|
|
36
|
+
process.kill(pid, 0);
|
|
37
|
+
return !isZombie(pid);
|
|
38
|
+
} catch (err) {
|
|
39
|
+
return isNodeError(err) && (err.code === "EPERM" || err.code === "EACCES") && !isZombie(pid);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
__name(isPidAlive, "isPidAlive");
|
|
43
|
+
function isZombie(pid) {
|
|
44
|
+
if (process.platform !== "linux") return false;
|
|
45
|
+
let raw;
|
|
46
|
+
try {
|
|
47
|
+
raw = fs.readFileSync(`/proc/${pid}/stat`, "utf8");
|
|
48
|
+
} catch {
|
|
49
|
+
return false;
|
|
50
|
+
}
|
|
51
|
+
const commEnd = raw.lastIndexOf(")");
|
|
52
|
+
if (commEnd === -1) return false;
|
|
53
|
+
return raw.slice(commEnd + 1).trimStart().startsWith("Z");
|
|
54
|
+
}
|
|
55
|
+
__name(isZombie, "isZombie");
|
|
56
|
+
function readProcStartToken(pid) {
|
|
57
|
+
if (process.platform !== "linux") return null;
|
|
58
|
+
if (!Number.isInteger(pid) || pid <= 0) return null;
|
|
59
|
+
const bootId = readLocalBootId();
|
|
60
|
+
if (bootId === null) return null;
|
|
61
|
+
let raw;
|
|
62
|
+
try {
|
|
63
|
+
raw = fs.readFileSync(`/proc/${pid}/stat`, "utf8");
|
|
64
|
+
} catch {
|
|
65
|
+
return null;
|
|
66
|
+
}
|
|
67
|
+
const commEnd = raw.lastIndexOf(")");
|
|
68
|
+
if (commEnd === -1) return null;
|
|
69
|
+
const fields = raw.slice(commEnd + 1).trim().split(/\s+/);
|
|
70
|
+
const startTime = fields[19];
|
|
71
|
+
return startTime !== void 0 && /^\d+$/.test(startTime) ? `${bootId}:${startTime}` : null;
|
|
72
|
+
}
|
|
73
|
+
__name(readProcStartToken, "readProcStartToken");
|
|
74
|
+
var cachedBootId;
|
|
75
|
+
function readLocalBootId() {
|
|
76
|
+
if (cachedBootId !== void 0) return cachedBootId;
|
|
77
|
+
try {
|
|
78
|
+
const value = fs.readFileSync("/proc/sys/kernel/random/boot_id", "utf8").trim();
|
|
79
|
+
if (/^[0-9a-f-]+$/i.test(value)) {
|
|
80
|
+
cachedBootId = value;
|
|
81
|
+
return value;
|
|
82
|
+
}
|
|
83
|
+
} catch {
|
|
84
|
+
}
|
|
85
|
+
return null;
|
|
86
|
+
}
|
|
87
|
+
__name(readLocalBootId, "readLocalBootId");
|
|
88
|
+
function readPidNamespaceId() {
|
|
89
|
+
if (process.platform !== "linux") return null;
|
|
90
|
+
try {
|
|
91
|
+
return fs.statSync("/proc/self/ns/pid").ino;
|
|
92
|
+
} catch {
|
|
93
|
+
return null;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
__name(readPidNamespaceId, "readPidNamespaceId");
|
|
97
|
+
function isSameProcess(pid, procStart) {
|
|
98
|
+
if (!isPidAlive(pid)) return false;
|
|
99
|
+
if (procStart == null) return true;
|
|
100
|
+
const current = readProcStartToken(pid);
|
|
101
|
+
if (current === null) return true;
|
|
102
|
+
return current === procStart;
|
|
103
|
+
}
|
|
104
|
+
__name(isSameProcess, "isSameProcess");
|
|
105
|
+
|
|
106
|
+
// packages/core/src/agents/team/teamHelpers.ts
|
|
29
107
|
function getTeamsRootDir() {
|
|
30
108
|
return path.join(Storage.getGlobalQwenDir(), TEAMS_DIR);
|
|
31
109
|
}
|
|
@@ -103,7 +181,7 @@ __name(classifyShutdownResponse, "classifyShutdownResponse");
|
|
|
103
181
|
async function readTeamFile(teamName) {
|
|
104
182
|
const filePath = getTeamFilePath(teamName);
|
|
105
183
|
try {
|
|
106
|
-
const raw = await
|
|
184
|
+
const raw = await fs2.readFile(filePath, "utf-8");
|
|
107
185
|
return JSON.parse(raw);
|
|
108
186
|
} catch (err) {
|
|
109
187
|
if (isNodeError(err) && err.code === "ENOENT") {
|
|
@@ -115,28 +193,19 @@ async function readTeamFile(teamName) {
|
|
|
115
193
|
__name(readTeamFile, "readTeamFile");
|
|
116
194
|
async function writeTeamFile(teamName, teamFile) {
|
|
117
195
|
const filePath = getTeamFilePath(teamName);
|
|
118
|
-
await
|
|
196
|
+
await fs2.mkdir(path.dirname(filePath), { recursive: true });
|
|
119
197
|
await atomicWriteJSON(filePath, teamFile);
|
|
120
198
|
}
|
|
121
199
|
__name(writeTeamFile, "writeTeamFile");
|
|
122
200
|
async function createTeamFile(teamName, teamFile) {
|
|
123
201
|
const filePath = getTeamFilePath(teamName);
|
|
124
|
-
await
|
|
125
|
-
await
|
|
202
|
+
await fs2.mkdir(path.dirname(filePath), { recursive: true });
|
|
203
|
+
await fs2.writeFile(filePath, JSON.stringify(teamFile, null, 2) + "\n", {
|
|
126
204
|
encoding: "utf-8",
|
|
127
205
|
flag: "wx"
|
|
128
206
|
});
|
|
129
207
|
}
|
|
130
208
|
__name(createTeamFile, "createTeamFile");
|
|
131
|
-
function isPidAlive(pid) {
|
|
132
|
-
try {
|
|
133
|
-
process.kill(pid, 0);
|
|
134
|
-
return true;
|
|
135
|
-
} catch (err) {
|
|
136
|
-
return isNodeError(err) && err.code === "EPERM";
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
__name(isPidAlive, "isPidAlive");
|
|
140
209
|
async function tryReclaimStaleTeam(teamName) {
|
|
141
210
|
let existing;
|
|
142
211
|
try {
|
|
@@ -162,13 +231,17 @@ async function deleteTeamDirs(teamName) {
|
|
|
162
231
|
const teamDir = getTeamDir(teamName);
|
|
163
232
|
const tasksDir = getTasksDir(teamName);
|
|
164
233
|
await Promise.allSettled([
|
|
165
|
-
|
|
166
|
-
|
|
234
|
+
fs2.rm(teamDir, { recursive: true, force: true }),
|
|
235
|
+
fs2.rm(tasksDir, { recursive: true, force: true })
|
|
167
236
|
]);
|
|
168
237
|
}
|
|
169
238
|
__name(deleteTeamDirs, "deleteTeamDirs");
|
|
170
239
|
|
|
171
240
|
export {
|
|
241
|
+
readProcStartToken,
|
|
242
|
+
readLocalBootId,
|
|
243
|
+
readPidNamespaceId,
|
|
244
|
+
isSameProcess,
|
|
172
245
|
getTeamDir,
|
|
173
246
|
getInboxesDir,
|
|
174
247
|
getTasksDir,
|
|
@@ -183,6 +256,11 @@ export {
|
|
|
183
256
|
tryReclaimStaleTeam,
|
|
184
257
|
deleteTeamDirs
|
|
185
258
|
};
|
|
259
|
+
/**
|
|
260
|
+
* @license
|
|
261
|
+
* Copyright 2026 Qwen
|
|
262
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
263
|
+
*/
|
|
186
264
|
/**
|
|
187
265
|
* @license
|
|
188
266
|
* Copyright 2025 Qwen
|
|
@@ -2,32 +2,32 @@
|
|
|
2
2
|
"use strict";
|
|
3
3
|
import {
|
|
4
4
|
appEvents
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-KSGWAYNE.js";
|
|
6
6
|
import {
|
|
7
7
|
CUSTOM_SANDBOX_IMAGE_ENV_VAR,
|
|
8
8
|
HOST_UPDATE_RELAUNCH_ENV_VAR,
|
|
9
9
|
SKIP_UPDATE_CHECK_ENV_VAR,
|
|
10
10
|
requestUpdateOnExit
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-MCG53LWC.js";
|
|
12
12
|
import {
|
|
13
13
|
loadUndici
|
|
14
14
|
} from "./chunk-3Z43GZUQ.js";
|
|
15
15
|
import {
|
|
16
16
|
IdeClient,
|
|
17
17
|
getAllProviderBaseUrls
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-XC377TLN.js";
|
|
19
19
|
import {
|
|
20
20
|
detectRuntime,
|
|
21
21
|
getOrCreateSharedDispatcher,
|
|
22
22
|
preloadRuntimeFetchModule,
|
|
23
23
|
redactProxyCredentials
|
|
24
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-CPHEPGAO.js";
|
|
25
25
|
import {
|
|
26
26
|
initializeTelemetry
|
|
27
|
-
} from "./chunk-
|
|
27
|
+
} from "./chunk-XT4RKHVE.js";
|
|
28
28
|
import {
|
|
29
29
|
createDebugLogger
|
|
30
|
-
} from "./chunk-
|
|
30
|
+
} from "./chunk-BUQDLC2G.js";
|
|
31
31
|
import {
|
|
32
32
|
recordStartupEvent
|
|
33
33
|
} from "./chunk-QILD6R27.js";
|
|
@@ -231,11 +231,11 @@ function startPostRenderPrefetches(config, settings, options = {}) {
|
|
|
231
231
|
{ updateEventEmitter },
|
|
232
232
|
{ t }
|
|
233
233
|
] = await Promise.all([
|
|
234
|
-
import("./updateCheck-
|
|
235
|
-
import("./handleAutoUpdate-
|
|
236
|
-
import("./installationInfo-
|
|
234
|
+
import("./updateCheck-KYDCBLSF.js"),
|
|
235
|
+
import("./handleAutoUpdate-GAOYUYOD.js"),
|
|
236
|
+
import("./installationInfo-CO47QX3Q.js"),
|
|
237
237
|
import("./updateEventEmitter-5MKC7BLQ.js"),
|
|
238
|
-
import("./i18n-
|
|
238
|
+
import("./i18n-2ITURYX6.js")
|
|
239
239
|
]);
|
|
240
240
|
const updateCheckSkippedMessage = /* @__PURE__ */ __name((error) => t("Update check skipped ({{reason}}) \u2014 run /update to retry.", {
|
|
241
241
|
reason: describeUpdateCheckFailure(error)
|
|
@@ -308,7 +308,7 @@ ${t(
|
|
|
308
308
|
state: "connecting"
|
|
309
309
|
});
|
|
310
310
|
try {
|
|
311
|
-
const { connectIdeForStartup } = await import("./initializer-
|
|
311
|
+
const { connectIdeForStartup } = await import("./initializer-OC7LWA6X.js");
|
|
312
312
|
await withTimeout(
|
|
313
313
|
connectIdeForStartup(config),
|
|
314
314
|
"ide_connect",
|
|
@@ -332,7 +332,7 @@ ${t(
|
|
|
332
332
|
}
|
|
333
333
|
if (config.isInteractive()) {
|
|
334
334
|
runDeferredTask("background_housekeeping", async () => {
|
|
335
|
-
const { startBackgroundHousekeeping } = await import("./scheduler-
|
|
335
|
+
const { startBackgroundHousekeeping } = await import("./scheduler-F4Y7ENVV.js");
|
|
336
336
|
startBackgroundHousekeeping(config, settings);
|
|
337
337
|
});
|
|
338
338
|
}
|
|
@@ -15,7 +15,7 @@ import {
|
|
|
15
15
|
} from "./chunk-MR3PXB6E.js";
|
|
16
16
|
import {
|
|
17
17
|
require_proper_lockfile
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-MLXTMF7H.js";
|
|
19
19
|
import {
|
|
20
20
|
init_esbuild_shims
|
|
21
21
|
} from "./chunk-5O2XNYP6.js";
|
|
@@ -563,7 +563,7 @@ var WorkspaceRegistrationStore = class {
|
|
|
563
563
|
return removed;
|
|
564
564
|
}
|
|
565
565
|
async update(mutate) {
|
|
566
|
-
const { atomicWriteFile } = await import("./deferred-core-runtime-
|
|
566
|
+
const { atomicWriteFile } = await import("./deferred-core-runtime-YQLHDUGE.js");
|
|
567
567
|
return withInProcessLock(this.filePath, async () => {
|
|
568
568
|
const lock = await acquireFileLock(this.filePath);
|
|
569
569
|
let committed = false;
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"use strict";
|
|
3
3
|
import {
|
|
4
4
|
MissingCliEntryError
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-UC67T4SF.js";
|
|
6
6
|
import {
|
|
7
7
|
redactLogCredentials
|
|
8
8
|
} from "./chunk-M5GB774H.js";
|
|
@@ -814,6 +814,44 @@ var TrackedChild = class {
|
|
|
814
814
|
}
|
|
815
815
|
};
|
|
816
816
|
|
|
817
|
+
// packages/acp-bridge/src/json-string-bytes.ts
|
|
818
|
+
init_esbuild_shims();
|
|
819
|
+
function estimateJsonStringBytes(value, limitBytes) {
|
|
820
|
+
const unescapedBytes = Buffer.byteLength(value, "utf8") + 2;
|
|
821
|
+
if (unescapedBytes > limitBytes) return limitBytes + 1;
|
|
822
|
+
if (!/["\\]|[^ -\ud7ff\ue000-\uffff]/u.test(value)) {
|
|
823
|
+
return unescapedBytes;
|
|
824
|
+
}
|
|
825
|
+
let bytes = 2;
|
|
826
|
+
for (let index = 0; index < value.length; index++) {
|
|
827
|
+
const code = value.charCodeAt(index);
|
|
828
|
+
if (code === 34 || code === 92) {
|
|
829
|
+
bytes += 2;
|
|
830
|
+
} else if (code <= 31) {
|
|
831
|
+
bytes += code === 8 || code === 9 || code === 10 || code === 12 || code === 13 ? 2 : 6;
|
|
832
|
+
} else if (code >= 55296 && code <= 56319) {
|
|
833
|
+
const next = value.charCodeAt(index + 1);
|
|
834
|
+
if (next >= 56320 && next <= 57343) {
|
|
835
|
+
bytes += 4;
|
|
836
|
+
index++;
|
|
837
|
+
} else {
|
|
838
|
+
bytes += 6;
|
|
839
|
+
}
|
|
840
|
+
} else if (code >= 56320 && code <= 57343) {
|
|
841
|
+
bytes += 6;
|
|
842
|
+
} else if (code <= 127) {
|
|
843
|
+
bytes++;
|
|
844
|
+
} else if (code <= 2047) {
|
|
845
|
+
bytes += 2;
|
|
846
|
+
} else {
|
|
847
|
+
bytes += 3;
|
|
848
|
+
}
|
|
849
|
+
if (bytes > limitBytes) return limitBytes + 1;
|
|
850
|
+
}
|
|
851
|
+
return bytes;
|
|
852
|
+
}
|
|
853
|
+
__name(estimateJsonStringBytes, "estimateJsonStringBytes");
|
|
854
|
+
|
|
817
855
|
// packages/acp-bridge/src/spawnChannel.ts
|
|
818
856
|
var cachedMemoryArgs;
|
|
819
857
|
var DAEMON_ACP_NDJSON_LIMITS = Object.freeze({
|
|
@@ -993,7 +1031,7 @@ function estimatePreparedResponseBytes(value, limitBytes) {
|
|
|
993
1031
|
if (!descriptor || descriptor.get || descriptor.set) {
|
|
994
1032
|
return limitBytes + 1;
|
|
995
1033
|
}
|
|
996
|
-
bytes += (frame.first ? 0 : 1) +
|
|
1034
|
+
bytes += (frame.first ? 0 : 1) + estimateJsonStringBytes(next.value, Math.max(0, limitBytes - bytes)) + 1;
|
|
997
1035
|
if (bytes > limitBytes) return limitBytes + 1;
|
|
998
1036
|
stack.push({ ...frame, first: false });
|
|
999
1037
|
stack.push({ kind: "value", value: descriptor.value });
|
|
@@ -1005,7 +1043,10 @@ function estimatePreparedResponseBytes(value, limitBytes) {
|
|
|
1005
1043
|
} else if (current === void 0) {
|
|
1006
1044
|
bytes += 4;
|
|
1007
1045
|
} else if (typeof current === "string") {
|
|
1008
|
-
bytes +=
|
|
1046
|
+
bytes += estimateJsonStringBytes(
|
|
1047
|
+
current,
|
|
1048
|
+
Math.max(0, limitBytes - bytes)
|
|
1049
|
+
);
|
|
1009
1050
|
} else if (typeof current === "number") {
|
|
1010
1051
|
bytes += 24;
|
|
1011
1052
|
} else if (typeof current === "boolean") {
|
|
@@ -232,16 +232,19 @@ var ForbiddenError = class extends Error {
|
|
|
232
232
|
static {
|
|
233
233
|
__name(this, "ForbiddenError");
|
|
234
234
|
}
|
|
235
|
+
status = 403;
|
|
235
236
|
};
|
|
236
237
|
var UnauthorizedError = class extends Error {
|
|
237
238
|
static {
|
|
238
239
|
__name(this, "UnauthorizedError");
|
|
239
240
|
}
|
|
241
|
+
status = 401;
|
|
240
242
|
};
|
|
241
243
|
var BadRequestError = class extends Error {
|
|
242
244
|
static {
|
|
243
245
|
__name(this, "BadRequestError");
|
|
244
246
|
}
|
|
247
|
+
status = 400;
|
|
245
248
|
};
|
|
246
249
|
function toFriendlyError(error) {
|
|
247
250
|
if (error && typeof error === "object" && "response" in error) {
|
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
"use strict";
|
|
3
3
|
import {
|
|
4
4
|
CLIENT_MCP_OVER_WS_CONFIG_FLAG
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-WP4WIUOJ.js";
|
|
6
6
|
import {
|
|
7
7
|
SessionNotFoundError
|
|
8
8
|
} from "./chunk-624NHDGB.js";
|
|
9
9
|
import {
|
|
10
10
|
ChannelWorkerStartupError
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-4W5U2TUT.js";
|
|
12
12
|
import {
|
|
13
13
|
ChannelDeliveryError,
|
|
14
14
|
ChannelWebhookEnqueueError
|
|
@@ -189,6 +189,14 @@ var PROJECT_ENV_HARDCODED_EXCLUSIONS = [
|
|
|
189
189
|
// operator set in the daemon's launch env still apply.
|
|
190
190
|
"QWEN_CDP_MCP_COMMAND",
|
|
191
191
|
"QWEN_SERVE_CDP_TUNNEL_OVER_WS",
|
|
192
|
+
// QWEN_SERVE_NEW_FILE_MODE decides the creation mode of every agent-written
|
|
193
|
+
// NEW file (owner-only 0600 vs umask-derived). A project `.env` flipping it
|
|
194
|
+
// to `system` would silently widen file visibility daemon-wide — including
|
|
195
|
+
// files written for OTHER workspaces — with no warning, since `system` is a
|
|
196
|
+
// valid value. The fail-closed 0600 posture is an operator decision
|
|
197
|
+
// (documented as a per-daemon opt-in), so only the daemon's launch
|
|
198
|
+
// environment or a home `.env` may set it.
|
|
199
|
+
"QWEN_SERVE_NEW_FILE_MODE",
|
|
192
200
|
// DEV gates the daemon's inherited-loader-env scrub (run-qwen-serve.ts);
|
|
193
201
|
// only the dev harness (scripts/dev.js) stamps it into the launch env. A
|
|
194
202
|
// project file setting it would silently keep loader vars in the base env
|
|
@@ -415,16 +415,25 @@ function unregisterSessionProjectDir(sessionId) {
|
|
|
415
415
|
}
|
|
416
416
|
__name(unregisterSessionProjectDir, "unregisterSessionProjectDir");
|
|
417
417
|
var modelBySession = /* @__PURE__ */ new Map();
|
|
418
|
-
|
|
419
|
-
|
|
418
|
+
var modelIdentityBySession = /* @__PURE__ */ new Map();
|
|
419
|
+
function registerSessionModel(sessionId, model, identity) {
|
|
420
|
+
if (!sessionId || !model) return;
|
|
421
|
+
modelBySession.set(sessionId, model);
|
|
422
|
+
if (identity) modelIdentityBySession.set(sessionId, identity);
|
|
423
|
+
else modelIdentityBySession.delete(sessionId);
|
|
420
424
|
}
|
|
421
425
|
__name(registerSessionModel, "registerSessionModel");
|
|
422
426
|
function getSessionModel(sessionId) {
|
|
423
427
|
return modelBySession.get(sessionId);
|
|
424
428
|
}
|
|
425
429
|
__name(getSessionModel, "getSessionModel");
|
|
430
|
+
function getSessionModelIdentity(sessionId) {
|
|
431
|
+
return modelIdentityBySession.get(sessionId);
|
|
432
|
+
}
|
|
433
|
+
__name(getSessionModelIdentity, "getSessionModelIdentity");
|
|
426
434
|
function unregisterSessionModel(sessionId) {
|
|
427
435
|
modelBySession.delete(sessionId);
|
|
436
|
+
modelIdentityBySession.delete(sessionId);
|
|
428
437
|
}
|
|
429
438
|
__name(unregisterSessionModel, "unregisterSessionModel");
|
|
430
439
|
|
|
@@ -505,6 +514,7 @@ export {
|
|
|
505
514
|
unregisterSessionProjectDir,
|
|
506
515
|
registerSessionModel,
|
|
507
516
|
getSessionModel,
|
|
517
|
+
getSessionModelIdentity,
|
|
508
518
|
unregisterSessionModel
|
|
509
519
|
};
|
|
510
520
|
/**
|
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
"use strict";
|
|
3
3
|
import {
|
|
4
4
|
getRateLimitErrorDetails
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-FAAUPSY2.js";
|
|
6
6
|
import {
|
|
7
7
|
isInternalPromptId
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-KC4WMLZO.js";
|
|
9
9
|
import {
|
|
10
10
|
createDebugLogger
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-BUQDLC2G.js";
|
|
12
12
|
import {
|
|
13
13
|
init_esbuild_shims
|
|
14
14
|
} from "./chunk-5O2XNYP6.js";
|
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
"use strict";
|
|
3
3
|
import {
|
|
4
4
|
isGitRepository
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-XC377TLN.js";
|
|
6
6
|
import {
|
|
7
7
|
createDebugLogger
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-BUQDLC2G.js";
|
|
9
9
|
import {
|
|
10
10
|
init_esbuild_shims
|
|
11
11
|
} from "./chunk-5O2XNYP6.js";
|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
"use strict";
|
|
3
3
|
import {
|
|
4
4
|
atomicWriteFileSync
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-YECDICIO.js";
|
|
6
6
|
import {
|
|
7
7
|
Storage,
|
|
8
8
|
createDebugLogger
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-BUQDLC2G.js";
|
|
10
10
|
import {
|
|
11
11
|
init_esbuild_shims
|
|
12
12
|
} from "./chunk-5O2XNYP6.js";
|
|
@@ -2,16 +2,16 @@
|
|
|
2
2
|
"use strict";
|
|
3
3
|
import {
|
|
4
4
|
useKeypress
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-RXHBTKMG.js";
|
|
6
6
|
import {
|
|
7
7
|
require_react
|
|
8
8
|
} from "./chunk-5QWWOFGG.js";
|
|
9
9
|
import {
|
|
10
10
|
t
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-IOTPI425.js";
|
|
12
12
|
import {
|
|
13
13
|
APPROVAL_MODES
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-RWDNJBWN.js";
|
|
15
15
|
import {
|
|
16
16
|
init_esbuild_shims
|
|
17
17
|
} from "./chunk-5O2XNYP6.js";
|
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
"use strict";
|
|
3
3
|
import {
|
|
4
4
|
isPrivateHost
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-ROIYNTHJ.js";
|
|
6
6
|
import {
|
|
7
7
|
loadUndici
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-CPHEPGAO.js";
|
|
9
9
|
import {
|
|
10
10
|
getErrorMessage
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-BUQDLC2G.js";
|
|
12
12
|
import {
|
|
13
13
|
init_esbuild_shims
|
|
14
14
|
} from "./chunk-5O2XNYP6.js";
|
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
"use strict";
|
|
3
3
|
import {
|
|
4
4
|
buildPermissionSettings
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-SBRIBTYN.js";
|
|
6
6
|
import {
|
|
7
7
|
resolveVoiceStreamConfig,
|
|
8
8
|
resolveVoiceTranscriptionConfig,
|
|
9
9
|
transcribeVoiceAudio
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-PPTM4O4R.js";
|
|
11
11
|
import {
|
|
12
12
|
getVoiceSettingsScope,
|
|
13
13
|
isSelectableVoiceModel,
|
|
@@ -16,7 +16,10 @@ import {
|
|
|
16
16
|
readVoiceMode,
|
|
17
17
|
readVoiceModel,
|
|
18
18
|
resolveVoiceTransport
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-7OCSX7FC.js";
|
|
20
|
+
import {
|
|
21
|
+
MCP_RESTART_SERVER_DEADLINE_MS
|
|
22
|
+
} from "./chunk-OCPBI7J5.js";
|
|
20
23
|
import {
|
|
21
24
|
resolveSkillSettings
|
|
22
25
|
} from "./chunk-Z4X5MTRT.js";
|
|
@@ -27,9 +30,6 @@ import {
|
|
|
27
30
|
WorkspaceSkillNotToggleableError,
|
|
28
31
|
mapWorkspaceSkillToggleError
|
|
29
32
|
} from "./chunk-Z7VOMGDC.js";
|
|
30
|
-
import {
|
|
31
|
-
MCP_RESTART_SERVER_DEADLINE_MS
|
|
32
|
-
} from "./chunk-OCPBI7J5.js";
|
|
33
33
|
import {
|
|
34
34
|
BridgeChannelClosedError,
|
|
35
35
|
SERVE_CONTROL_EXT_METHODS,
|
|
@@ -43,7 +43,7 @@ import {
|
|
|
43
43
|
createIdleWorkspaceProvidersStatus,
|
|
44
44
|
createIdleWorkspaceSkillsStatus,
|
|
45
45
|
mapDomainErrorToErrorKind
|
|
46
|
-
} from "./chunk-
|
|
46
|
+
} from "./chunk-UC67T4SF.js";
|
|
47
47
|
import {
|
|
48
48
|
McpServerNotFoundError,
|
|
49
49
|
McpServerRestartFailedError,
|
|
@@ -56,19 +56,19 @@ import {
|
|
|
56
56
|
import {
|
|
57
57
|
getPersistScopeForModelSelection,
|
|
58
58
|
loadSettings
|
|
59
|
-
} from "./chunk-
|
|
59
|
+
} from "./chunk-OLZSWUZR.js";
|
|
60
60
|
import {
|
|
61
61
|
getWorkspaceTrustStatus
|
|
62
|
-
} from "./chunk-
|
|
62
|
+
} from "./chunk-YXC7JYUI.js";
|
|
63
63
|
import {
|
|
64
64
|
ModelsConfig,
|
|
65
65
|
SkillManager,
|
|
66
66
|
require_yauzl
|
|
67
|
-
} from "./chunk-
|
|
67
|
+
} from "./chunk-XC377TLN.js";
|
|
68
68
|
import {
|
|
69
69
|
Storage,
|
|
70
70
|
createDebugLogger
|
|
71
|
-
} from "./chunk-
|
|
71
|
+
} from "./chunk-BUQDLC2G.js";
|
|
72
72
|
import {
|
|
73
73
|
writeStderrLine,
|
|
74
74
|
writeStderrLineSafe
|
|
@@ -83,6 +83,7 @@ import {
|
|
|
83
83
|
|
|
84
84
|
// packages/cli/src/serve/workspace-service/index.ts
|
|
85
85
|
init_esbuild_shims();
|
|
86
|
+
import { randomUUID } from "node:crypto";
|
|
86
87
|
import { promises as fs2, constants as fsConstants } from "node:fs";
|
|
87
88
|
import * as path2 from "node:path";
|
|
88
89
|
|
|
@@ -1070,6 +1071,20 @@ __name(deleteWorkspaceSkill, "deleteWorkspaceSkill");
|
|
|
1070
1071
|
|
|
1071
1072
|
// packages/cli/src/serve/workspace-service/index.ts
|
|
1072
1073
|
var WORKSPACE_SKILLS_SNAPSHOT_TTL_MS = 5e3;
|
|
1074
|
+
function createSkillToggleMutation(input) {
|
|
1075
|
+
return {
|
|
1076
|
+
id: randomUUID(),
|
|
1077
|
+
kind: "skill_toggle",
|
|
1078
|
+
skills: input.skills.map((skill) => ({
|
|
1079
|
+
name: skill.name,
|
|
1080
|
+
enabled: skill.enabled
|
|
1081
|
+
})),
|
|
1082
|
+
activation: input.activation,
|
|
1083
|
+
sessionsRefreshed: input.sessionsRefreshed,
|
|
1084
|
+
sessionsFailed: input.sessionsFailed
|
|
1085
|
+
};
|
|
1086
|
+
}
|
|
1087
|
+
__name(createSkillToggleMutation, "createSkillToggleMutation");
|
|
1073
1088
|
async function canonicalizeExistingAncestor(inputPath) {
|
|
1074
1089
|
let current = inputPath;
|
|
1075
1090
|
while (true) {
|
|
@@ -1653,13 +1668,20 @@ function createDaemonWorkspaceService(deps) {
|
|
|
1653
1668
|
value: persisted.disabled.length > 0 ? persisted.disabled : void 0
|
|
1654
1669
|
}
|
|
1655
1670
|
];
|
|
1671
|
+
const mutation = createSkillToggleMutation({
|
|
1672
|
+
skills: [{ name: skill.name, enabled }],
|
|
1673
|
+
activation,
|
|
1674
|
+
sessionsRefreshed,
|
|
1675
|
+
sessionsFailed
|
|
1676
|
+
});
|
|
1656
1677
|
for (const change of settingsChanges) {
|
|
1657
1678
|
publishWorkspaceEvent({
|
|
1658
1679
|
type: "settings_changed",
|
|
1659
1680
|
data: {
|
|
1660
1681
|
key: change.key,
|
|
1661
1682
|
value: change.value,
|
|
1662
|
-
scope: "workspace"
|
|
1683
|
+
scope: "workspace",
|
|
1684
|
+
mutation
|
|
1663
1685
|
},
|
|
1664
1686
|
originatorClientId: ctx.originatorClientId
|
|
1665
1687
|
});
|
|
@@ -1792,10 +1814,19 @@ function createDaemonWorkspaceService(deps) {
|
|
|
1792
1814
|
invalidateWorkspaceSkillsSnapshot();
|
|
1793
1815
|
}
|
|
1794
1816
|
assertActiveGeneration();
|
|
1817
|
+
const mutation = createSkillToggleMutation({
|
|
1818
|
+
skills: results.filter((result) => result.changed).map((result) => ({
|
|
1819
|
+
name: result.skillName,
|
|
1820
|
+
enabled: result.enabled
|
|
1821
|
+
})),
|
|
1822
|
+
activation,
|
|
1823
|
+
sessionsRefreshed,
|
|
1824
|
+
sessionsFailed
|
|
1825
|
+
});
|
|
1795
1826
|
for (const change of persisted.settingsChanges) {
|
|
1796
1827
|
publishWorkspaceEvent({
|
|
1797
1828
|
type: "settings_changed",
|
|
1798
|
-
data: { ...change, scope: "workspace" },
|
|
1829
|
+
data: { ...change, scope: "workspace", mutation },
|
|
1799
1830
|
originatorClientId: ctx.originatorClientId
|
|
1800
1831
|
});
|
|
1801
1832
|
}
|