@qwen-code/qwen-code 0.19.7 → 0.19.8-nightly.20260710.205430235
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/SKILL.md +1 -0
- package/bundled/qc-helper/docs/configuration/auth.md +40 -55
- package/bundled/qc-helper/docs/configuration/model-providers.md +224 -218
- package/bundled/qc-helper/docs/configuration/settings.md +43 -36
- package/bundled/qc-helper/docs/features/_meta.ts +1 -0
- package/bundled/qc-helper/docs/features/channels/overview.md +20 -12
- package/bundled/qc-helper/docs/features/channels/plugins.md +1 -0
- package/bundled/qc-helper/docs/features/code-review.md +2 -1
- package/bundled/qc-helper/docs/features/commands.md +39 -38
- package/bundled/qc-helper/docs/features/computer-use.md +77 -0
- package/bundled/qc-helper/docs/features/hooks.md +36 -34
- package/bundled/qc-helper/docs/features/memory.md +1 -1
- package/bundled/qc-helper/docs/features/tool-use-summaries.md +19 -23
- package/bundled/qc-helper/docs/qwen-serve.md +22 -12
- package/bundled/qc-helper/docs/reference/keyboard-shortcuts.md +1 -1
- package/bundled/review/DESIGN.md +14 -13
- package/bundled/review/SKILL.md +38 -61
- package/chunks/{MaxSizedBox-XY5LIO5O.js → MaxSizedBox-LOFYQFYJ.js} +13 -14
- package/chunks/{StandaloneSessionPicker-APISIRJZ.js → StandaloneSessionPicker-U5OQBGEB.js} +31 -29
- package/chunks/{acpAgent-MMOSC2YA.js → acpAgent-SDIFRIED.js} +637 -131
- package/chunks/{agent-TKIBLLQT.js → agent-JIBBVHNQ.js} +10 -10
- package/chunks/{agent-headless-VLX4C7KX.js → agent-headless-6LGZYJYU.js} +10 -10
- package/chunks/{anthropicContentGenerator-AKYPSZIV.js → anthropicContentGenerator-55REPTTF.js} +30 -3
- package/chunks/{artifact-tool-D233YJFH.js → artifact-tool-EIN46DPM.js} +1 -1
- package/chunks/{askUserQuestion-MKL5ZTMC.js → askUserQuestion-6YX6ZRX7.js} +1 -1
- package/chunks/{bridge-BCU73DZO.js → bridge-HVPFYNM4.js} +17 -16
- package/chunks/{ca-HCMB2I54.js → ca-MULEGDVS.js} +89 -5
- package/chunks/{channel-worker-supervisor-CRCVYQIE.js → channel-worker-supervisor-OPXXT4JK.js} +20 -3
- package/chunks/{chunk-DGHJTO2K.js → chunk-2AF26HVM.js} +31 -2
- package/chunks/{chunk-3B26UVCX.js → chunk-2GUVUHJY.js} +6 -4
- package/chunks/{chunk-FV7425LN.js → chunk-2SZOMGOR.js} +4 -1
- package/chunks/{chunk-CNSF3WO5.js → chunk-32KS5XSX.js} +3 -3
- package/chunks/{chunk-4UCTWSTP.js → chunk-34UUM3IN.js} +1 -1
- package/chunks/{chunk-G7ZG7CA6.js → chunk-3UP777ZS.js} +8 -7
- package/chunks/{chunk-MIG5SQNL.js → chunk-4CSVIZLT.js} +4 -4
- package/chunks/{chunk-GD236YPV.js → chunk-4ONWIT5C.js} +1 -1
- package/chunks/{chunk-4ZJIPVPB.js → chunk-4XK7TNBP.js} +8 -8
- package/chunks/{chunk-I4A4K72C.js → chunk-5F2H3PXG.js} +446 -232
- package/chunks/chunk-5HOF2K5U.js +19 -0
- package/chunks/{chunk-GMOWQOQQ.js → chunk-5ZVIYNLN.js} +228 -36
- package/chunks/chunk-6O6Z2I5Q.js +292 -0
- package/chunks/{chunk-RYFZCUJO.js → chunk-6QKT5VNZ.js} +14 -6
- package/chunks/{chunk-SD4N3QJ2.js → chunk-6ZPSVWLF.js} +61 -17
- package/chunks/{chunk-X265R5C6.js → chunk-7YGSDQ5J.js} +2 -2
- package/chunks/{chunk-PRDFOIZF.js → chunk-A6KEUFJO.js} +32 -5
- package/chunks/{chunk-OWVIH4HY.js → chunk-B5OAMPJ5.js} +389 -87
- package/chunks/{chunk-ME3YSROJ.js → chunk-CV2AT2WJ.js} +22 -10
- package/chunks/{chunk-U4FRHCLA.js → chunk-DDKUYKHA.js} +1912 -201
- package/chunks/{chunk-YDSYD7UI.js → chunk-E3SA2LY4.js} +2 -2
- package/chunks/{chunk-6IAWPIQ6.js → chunk-EDM5O3SX.js} +2 -2
- package/chunks/{chunk-CISB3IQF.js → chunk-FONJQQWI.js} +65 -6
- package/chunks/{chunk-FRFFNYUY.js → chunk-G3WIMNL4.js} +3 -3
- package/chunks/{chunk-B34OV7K2.js → chunk-GGQQA4JW.js} +13 -0
- package/chunks/chunk-GLE2YUPU.js +34 -0
- package/chunks/{chunk-MJI36HER.js → chunk-GOTMC3BX.js} +1 -1
- package/chunks/{chunk-RFIL6REB.js → chunk-GRB4QSBD.js} +168 -31
- package/chunks/chunk-GVVY7GSP.js +38 -0
- package/chunks/{chunk-7JGISHHZ.js → chunk-HDEUQRAR.js} +14 -156
- package/chunks/{chunk-NZEGNV4V.js → chunk-HPRI22FZ.js} +6 -6
- package/chunks/{chunk-STAZRKOT.js → chunk-I34IHZFJ.js} +117 -459
- package/chunks/{chunk-JF7DFPQ5.js → chunk-I3MBKL6Z.js} +12 -2
- package/chunks/{chunk-DNV4FSN5.js → chunk-I5XN6KDI.js} +21 -4
- package/chunks/{chunk-VZ7HY3YU.js → chunk-IAMRWMFU.js} +1 -1
- package/chunks/{chunk-44NROQYV.js → chunk-JOQMY62N.js} +1 -1
- package/chunks/{chunk-VQWAZSXN.js → chunk-JW4IKIZ2.js} +57 -35
- package/chunks/{chunk-SAIILPQ3.js → chunk-KJMYXFUR.js} +3 -1
- package/chunks/{chunk-AFOLR6YL.js → chunk-KQ6MKCFE.js} +102 -16
- package/chunks/{chunk-X3YGAX7V.js → chunk-KS2FRTYI.js} +2 -0
- package/chunks/{chunk-IUE7YWC3.js → chunk-LE7EF36E.js} +7 -7
- package/chunks/{chunk-B4U2M63D.js → chunk-LRY7HD3Q.js} +2101 -11
- package/chunks/{chunk-PUQLHSQ2.js → chunk-ME7E6WZB.js} +6 -8
- package/chunks/{chunk-LEIJKM7Q.js → chunk-MEK7ZRJ3.js} +1 -1
- package/chunks/{chunk-AJBEAUIS.js → chunk-MG2TNCRX.js} +4 -3
- package/chunks/{chunk-GL5TV7B5.js → chunk-MSMQURDV.js} +21 -5
- package/chunks/{chunk-6BN7NZ5Z.js → chunk-NXDJLKKX.js} +4 -6
- package/chunks/{chunk-FEJ2FZ3U.js → chunk-NY2ZOFMM.js} +1 -1
- package/chunks/{chunk-QZF5U5KA.js → chunk-NY5BE643.js} +8 -8
- package/chunks/{chunk-4RQIB5UZ.js → chunk-O2YT7VB4.js} +0 -34
- package/chunks/{chunk-4KJ2BPIT.js → chunk-OACJLMLD.js} +2 -38
- package/chunks/chunk-PCWSPWXZ.js +168 -0
- package/chunks/{chunk-XPJH4PKR.js → chunk-PJ74K3DH.js} +1 -1
- package/chunks/{chunk-FTFXDZYI.js → chunk-PW7VWRLX.js} +45 -29
- package/chunks/chunk-R3SLDK6Y.js +468 -0
- package/chunks/{chunk-4O344UEE.js → chunk-SDJOZOYY.js} +38 -18
- package/chunks/{chunk-ALZ75L2X.js → chunk-SMYIBRAA.js} +412 -376
- package/chunks/{chunk-CCGOFQV3.js → chunk-SS5P6JM6.js} +6 -5
- package/chunks/{chunk-AIY5UTFI.js → chunk-T3XHYGMG.js} +925 -2872
- package/chunks/{chunk-Q6OEPOOC.js → chunk-TB6GWNV4.js} +1 -1
- package/chunks/{chunk-24XYI5EI.js → chunk-TERKDCOZ.js} +3 -3
- package/chunks/chunk-TVO5C767.js +159 -0
- package/chunks/{chunk-TBAZMRW3.js → chunk-TVW53EK7.js} +1 -1
- package/chunks/chunk-TX5QZYK6.js +296 -0
- package/chunks/{chunk-JD33UY7E.js → chunk-TZRVTPJ6.js} +15 -9
- package/chunks/{chunk-65CFHNSE.js → chunk-UAFB2DNB.js} +59 -59
- package/chunks/{chunk-QAKFYMJI.js → chunk-UOXLB2LY.js} +152 -17
- package/chunks/chunk-V35MD7KN.js +13 -0
- package/chunks/{chunk-XSAFNANZ.js → chunk-VWDJHVXM.js} +12 -12
- package/chunks/{chunk-XISQIIT7.js → chunk-W77ZLCSX.js} +1 -1
- package/chunks/{chunk-BWVQN2HV.js → chunk-WTEIUA2V.js} +4 -4
- package/chunks/{chunk-TDGF35EN.js → chunk-XOHNA2S6.js} +1 -1
- package/chunks/{chunk-HJ3GX3Y3.js → chunk-XZVUZSDG.js} +25 -11
- package/chunks/{chunk-ADZG46HR.js → chunk-YHGCTQG3.js} +1 -1
- package/chunks/{chunk-2NPS2UDH.js → chunk-YUNPEB3Q.js} +478 -43
- package/chunks/chunk-Z3I3QJK3.js +47 -0
- package/chunks/{chunk-P7I3D7FM.js → chunk-Z466FBSA.js} +1 -1
- package/chunks/{chunk-YEGT55NW.js → chunk-ZDAZSR2O.js} +3009 -1220
- package/chunks/{chunk-VEB3NYSO.js → chunk-ZJQBTFJ6.js} +6 -1
- package/chunks/chunk-ZL5HN75Q.js +61 -0
- package/chunks/{computer-use-X4KUU3NM.js → computer-use-IW5XBECT.js} +10 -10
- package/chunks/{contextCommand-LAYJZF7H.js → contextCommand-4QPLK2SH.js} +14 -14
- package/chunks/create-sub-session-7JK3EYWA.js +212 -0
- package/chunks/create-sub-session-EVYZYAE3.js +364 -0
- package/chunks/{cron-create-JSXEIPVS.js → cron-create-2CCO2PW6.js} +2 -2
- package/chunks/{cron-delete-OIFVEPGU.js → cron-delete-ETVTP5IV.js} +2 -2
- package/chunks/{cron-list-D4ZX4IOE.js → cron-list-FS3KWOY5.js} +2 -2
- package/chunks/{daemon-F3I2RXP6.js → daemon-NNUYIBWA.js} +461 -0
- package/chunks/{daemon-status-provider-XSAFKVDS.js → daemon-status-provider-3EPG6BXX.js} +21 -19
- package/chunks/{de-PLLFDERI.js → de-QRG6J2CM.js} +89 -5
- package/chunks/{dist-YTRKAVUB.js → dist-3EIIFOJV.js} +1 -1
- package/chunks/{dist-PKFTNUHO.js → dist-7F5GWZDZ.js} +2 -1
- package/chunks/{dist-FQ5WRJPL.js → dist-CBJ7OJ5R.js} +2 -2
- package/chunks/{dist-OT7G2WNM.js → dist-LIFJ2YAI.js} +1 -1
- package/chunks/{dist-573HNSVO.js → dist-OKXOQ63L.js} +2 -1
- package/chunks/{dist-IMFFBMAT.js → dist-SU5LY5R4.js} +3 -1
- package/chunks/{earlyInputCapture-AERYYGXE.js → earlyInputCapture-HP5XAS7A.js} +10 -10
- package/chunks/{edit-WZTZDGCI.js → edit-MDICC6KH.js} +11 -11
- package/chunks/{en-GA2RMXY5.js → en-HF3KFWZG.js} +91 -5
- package/chunks/{enter-worktree-DEPXBJEL.js → enter-worktree-JWTRNEN4.js} +10 -10
- package/chunks/{enterPlanMode-JFGXZHHJ.js → enterPlanMode-GMRZMTBQ.js} +10 -10
- package/chunks/environment-2CJAFOFN.js +88 -0
- package/chunks/{errors-GMZL4QV7.js → errors-UZOVFD2U.js} +13 -13
- package/chunks/{exit-worktree-Y7XBK3VV.js → exit-worktree-QQGEG343.js} +10 -10
- package/chunks/{exitPlanMode-WQQER65F.js → exitPlanMode-YK2JVAAB.js} +10 -10
- package/chunks/{fast-path-W2U6XDNO.js → fast-path-6SD4JNQW.js} +12 -3
- package/chunks/{fast-path-settings-RCRXH2JG.js → fast-path-settings-RAQGCIT7.js} +3 -2
- package/chunks/{fr-GWNQG4XH.js → fr-RSCO6HHD.js} +89 -5
- package/chunks/{gemini-T4WX6SRW.js → gemini-TFQXPUZB.js} +436 -140
- package/chunks/{geminiContentGenerator-MKQACXEJ.js → geminiContentGenerator-LJ2BNXHX.js} +1 -1
- package/chunks/{glob-4KKSHZDF.js → glob-3IJ6JR5W.js} +10 -10
- package/chunks/{grep-GHRYXSLZ.js → grep-UFZ2RFQZ.js} +10 -10
- package/chunks/{handleAutoUpdate-HN7ZOSXY.js → handleAutoUpdate-TEZC5ZIR.js} +17 -13
- package/chunks/i18n-5QEODTJV.js +84 -0
- package/chunks/{initializer-SRN3IM42.js → initializer-222MPCLQ.js} +18 -16
- package/chunks/installationInfo-OZ62OHZ2.js +65 -0
- package/chunks/{ja-2HOTA47X.js → ja-RRFGG2DC.js} +89 -5
- package/chunks/{list-INTVXUPA.js → list-BN5VBIIE.js} +20 -18
- package/chunks/{loadedSettingsAdapter-QVHHQPGM.js → loadedSettingsAdapter-EHTUJRFB.js} +18 -16
- package/chunks/{loop-wakeup-OHWEMFP5.js → loop-wakeup-SR2KWT4B.js} +3 -3
- package/chunks/{ls-L654WOAT.js → ls-RUBQK5Q2.js} +2 -2
- package/chunks/{lsp-M35KE54Y.js → lsp-DUTVY2ZA.js} +3 -5
- package/chunks/{mcp-7V4T46RG.js → mcp-OPGHD26Y.js} +18 -16
- package/chunks/{monitor-464OY2UE.js → monitor-WXBDVYYV.js} +10 -10
- package/chunks/{nonInteractiveCli-LJEEODU2.js → nonInteractiveCli-CWIBGJ4U.js} +54 -49
- package/chunks/{notebook-edit-BLJYCNDO.js → notebook-edit-T7P7M73F.js} +11 -11
- package/chunks/{openaiContentGenerator-PFF6HYB2.js → openaiContentGenerator-OES264C3.js} +7 -7
- package/chunks/{pidfile-LIBUENIV.js → pidfile-LJ3NLS2P.js} +10 -10
- package/chunks/{pt-2THT3YHA.js → pt-D4CG46JM.js} +89 -5
- package/chunks/{qwenContentGenerator-SUUHZ6CR.js → qwenContentGenerator-QJ67LAJ5.js} +12 -12
- package/chunks/{read-file-L7TBQVX7.js → read-file-KZD7TLU7.js} +5 -5
- package/chunks/{read-mcp-resource-CNQHBSJM.js → read-mcp-resource-Q56IMYOH.js} +1 -1
- package/chunks/{record-artifact-PP3LKHTS.js → record-artifact-GZ5D5HZX.js} +4 -4
- package/chunks/{ripGrep-CKKX3GRB.js → ripGrep-KUJLX75U.js} +10 -10
- package/chunks/{ru-Z67YJHBG.js → ru-O2QUEL22.js} +89 -5
- package/chunks/{run-qwen-serve-5OKADVLE.js → run-qwen-serve-M52KVRGI.js} +664 -153
- package/chunks/{scheduler-ZRW3AIDU.js → scheduler-FFATTAYZ.js} +10 -10
- package/chunks/{send-message-OA6MV4EU.js → send-message-HAGK3VTV.js} +2 -2
- package/chunks/{serve-36WS32W6.js → serve-B5S32524.js} +21 -18
- package/chunks/{server-M372UENX.js → server-6HK5FJMR.js} +3301 -665
- package/chunks/{session-F5KSNP2N.js → session-3WB76VTQ.js} +55 -50
- package/chunks/{settings-WFLNS3WT.js → settings-W3IX7NHK.js} +27 -23
- package/chunks/{shell-DEDSWN56.js → shell-HZIU2ZG7.js} +10 -10
- package/chunks/{skill-A2TL2NPC.js → skill-34OUFB65.js} +5 -5
- package/chunks/{spawnChannel-RQHUWTCL.js → spawnChannel-FTZJ3I5O.js} +12 -12
- package/chunks/{src-XKZMNHXS.js → src-NELBIIGI.js} +48 -10
- package/chunks/standalone-update-LICI2VSK.js +79 -0
- package/chunks/{startInteractiveUI-REKSTOHU.js → startInteractiveUI-LZEV5YI2.js} +2203 -1764
- package/chunks/stdioHelpers-CA7MG65Z.js +14 -0
- package/chunks/{syntheticOutput-F7LSDCAR.js → syntheticOutput-XFFJVCGV.js} +2 -2
- package/chunks/{task-create-RPFZNB4B.js → task-create-VINUSVBF.js} +3 -3
- package/chunks/{task-list-TGGJX7EA.js → task-list-YZ2AWQEG.js} +1 -1
- package/chunks/{task-stop-W7NGTMYQ.js → task-stop-PEXPKUW3.js} +1 -1
- package/chunks/{task-update-5WUG5MVQ.js → task-update-BHIX57YH.js} +3 -3
- package/chunks/{team-create-TBQVWAG7.js → team-create-2JS2OYSF.js} +10 -10
- package/chunks/{team-delete-UHQQ2QQX.js → team-delete-2OHXSBVS.js} +1 -1
- package/chunks/{team-plan-approval-FZPGUSHJ.js → team-plan-approval-PHLGYUY7.js} +10 -10
- package/chunks/{theme-manager-DQZVNSOC.js → theme-manager-UYXLX37P.js} +10 -10
- package/chunks/{todoWrite-C4ZAMSR3.js → todoWrite-7Q4ELT4F.js} +1 -1
- package/chunks/{tool-search-FDQ3SLNJ.js → tool-search-2MWA3GWE.js} +6 -6
- package/chunks/total-session-admission-PRZK35X4.js +72 -0
- package/chunks/{trustedFolders-Z475EIHL.js → trustedFolders-IT4JBNPG.js} +12 -12
- package/chunks/{updateCheck-E2ZX7RL7.js → updateCheck-X3ZWDO3Z.js} +17 -13
- package/chunks/updateEventEmitter-NXWTRHXY.js +10 -0
- package/chunks/{validateNonInterActiveAuth-O4ECBHQL.js → validateNonInterActiveAuth-IAOL7CM3.js} +51 -45
- package/chunks/{version-CEDD6ZZR.js → version-25QF6A5H.js} +1 -1
- package/chunks/{web-fetch-UYGMOHW4.js → web-fetch-I7FOWHGA.js} +2 -2
- package/chunks/{workflow-CQQ4J4I6.js → workflow-LZZ5U3IT.js} +11 -11
- package/chunks/{workspace-providers-status-MVYXMYDG.js → workspace-providers-status-7DTOAWEL.js} +21 -18
- package/chunks/workspace-registry-BBIPESIZ.js +76 -0
- package/chunks/{workspace-service-OMBR6ZLG.js → workspace-service-SY3P3FUY.js} +25 -23
- package/chunks/{workspace-skills-status-IMMQ7CAY.js → workspace-skills-status-GTT2A4WN.js} +20 -18
- package/chunks/{write-file-VWGY7AJP.js → write-file-M6IHNW3V.js} +11 -11
- package/chunks/{zh-7XVVRTDH.js → zh-K2EH6BDD.js} +91 -5
- package/chunks/{zh-TW-DPH554OG.js → zh-TW-4GPXJ7ZY.js} +91 -5
- package/cli.js +13 -12
- package/locales/ca.js +115 -7
- package/locales/de.js +114 -7
- package/locales/en.js +118 -7
- package/locales/fr.js +115 -7
- package/locales/ja.js +116 -6
- package/locales/pt.js +114 -7
- package/locales/ru.js +114 -7
- package/locales/zh-TW.js +114 -6
- package/locales/zh.js +114 -6
- package/package.json +3 -6
- package/web-shell/assets/{arc-C7hjaa7g.js → arc-G3HZaqaL.js} +1 -1
- package/web-shell/assets/{architectureDiagram-3BPJPVTR-pm9KtMZY.js → architectureDiagram-3BPJPVTR-DhBrwwch.js} +1 -1
- package/web-shell/assets/{blockDiagram-GPEHLZMM-CApElKsU.js → blockDiagram-GPEHLZMM-16JbbF0N.js} +1 -1
- package/web-shell/assets/{c4Diagram-AAUBKEIU-BeDe0-9N.js → c4Diagram-AAUBKEIU-DQ3-pKgc.js} +1 -1
- package/web-shell/assets/channel-CX7ZHuuL.js +1 -0
- package/web-shell/assets/{chunk-2J33WTMH-DJEkmLdl.js → chunk-2J33WTMH-ERCn30sp.js} +1 -1
- package/web-shell/assets/{chunk-4BX2VUAB-DXX8gdpe.js → chunk-4BX2VUAB-DTysfbFi.js} +1 -1
- package/web-shell/assets/{chunk-55IACEB6-DORmk1kQ.js → chunk-55IACEB6-BFGrbTBi.js} +1 -1
- package/web-shell/assets/{chunk-727SXJPM-DWmO4mCZ.js → chunk-727SXJPM-DCX4Oar-.js} +1 -1
- package/web-shell/assets/{chunk-AQP2D5EJ-C7LRaYw2.js → chunk-AQP2D5EJ-CgT6sBr3.js} +1 -1
- package/web-shell/assets/{chunk-FMBD7UC4-CCdXgyC5.js → chunk-FMBD7UC4-C1Uuk1KV.js} +1 -1
- package/web-shell/assets/{chunk-ND2GUHAM-SyL_xvWc.js → chunk-ND2GUHAM-DajgESiu.js} +1 -1
- package/web-shell/assets/{chunk-QZHKN3VN-BzOuCKxa.js → chunk-QZHKN3VN-DLJSvy9X.js} +1 -1
- package/web-shell/assets/classDiagram-4FO5ZUOK-B-oT3UI8.js +1 -0
- package/web-shell/assets/classDiagram-v2-Q7XG4LA2-B-oT3UI8.js +1 -0
- package/web-shell/assets/{cose-bilkent-S5V4N54A-BMPWyDKc.js → cose-bilkent-S5V4N54A-CH3w3qs7.js} +1 -1
- package/web-shell/assets/{dagre-BM42HDAG-B_GnPWik.js → dagre-BM42HDAG-BloXan9B.js} +1 -1
- package/web-shell/assets/{diagram-2AECGRRQ-fJqMc3S_.js → diagram-2AECGRRQ-BbZiGcmK.js} +1 -1
- package/web-shell/assets/{diagram-5GNKFQAL-ximV3O9D.js → diagram-5GNKFQAL-GQlYvLJv.js} +1 -1
- package/web-shell/assets/{diagram-KO2AKTUF-2vVyjzqw.js → diagram-KO2AKTUF-CtIBvVq3.js} +1 -1
- package/web-shell/assets/{diagram-LMA3HP47-Dckcx1sT.js → diagram-LMA3HP47-D5TBo9a2.js} +1 -1
- package/web-shell/assets/{diagram-OG6HWLK6-BAVv47ga.js → diagram-OG6HWLK6-N0gQhw6R.js} +1 -1
- package/web-shell/assets/{erDiagram-TEJ5UH35-Bn3nf5J0.js → erDiagram-TEJ5UH35-zab9vDj3.js} +1 -1
- package/web-shell/assets/{flowDiagram-I6XJVG4X-BIbGF9JT.js → flowDiagram-I6XJVG4X-BnnjtWJa.js} +1 -1
- package/web-shell/assets/{ganttDiagram-6RSMTGT7-CDbhb3AH.js → ganttDiagram-6RSMTGT7-2T0SQU4f.js} +1 -1
- package/web-shell/assets/{gitGraphDiagram-PVQCEYII-CbKG1a_w.js → gitGraphDiagram-PVQCEYII-DAD6_que.js} +1 -1
- package/web-shell/assets/index-XLkWfLja.css +5 -0
- package/web-shell/assets/index-srlTR1Jg.js +786 -0
- package/web-shell/assets/{infoDiagram-5YYISTIA-DUFxTy8m.js → infoDiagram-5YYISTIA-C-j8d0xO.js} +1 -1
- package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-D69hrBG8.js → ishikawaDiagram-YF4QCWOH-D97bAKoT.js} +1 -1
- package/web-shell/assets/{journeyDiagram-JHISSGLW-DsvEw51Y.js → journeyDiagram-JHISSGLW-BJAHfJmm.js} +1 -1
- package/web-shell/assets/{kanban-definition-UN3LZRKU-lFFjZEYd.js → kanban-definition-UN3LZRKU-CZgR5aac.js} +1 -1
- package/web-shell/assets/{linear-Bo5bWzvo.js → linear-DOd4kYhA.js} +1 -1
- package/web-shell/assets/{mermaid.core-C_HKMJx5.js → mermaid.core-BBaplnXA.js} +5 -5
- package/web-shell/assets/{mindmap-definition-RKZ34NQL-DlV-NUTs.js → mindmap-definition-RKZ34NQL-IhBF_BR5.js} +1 -1
- package/web-shell/assets/{pieDiagram-4H26LBE5-B2e6FH2a.js → pieDiagram-4H26LBE5-B4R4sYyH.js} +1 -1
- package/web-shell/assets/{quadrantDiagram-W4KKPZXB-D75kSk-b.js → quadrantDiagram-W4KKPZXB-DKd1SJ61.js} +1 -1
- package/web-shell/assets/{requirementDiagram-4Y6WPE33-CQ6xakhM.js → requirementDiagram-4Y6WPE33-Cw96V0Xb.js} +1 -1
- package/web-shell/assets/{sankeyDiagram-5OEKKPKP-J_XTKrcY.js → sankeyDiagram-5OEKKPKP-C6ne_yWi.js} +1 -1
- package/web-shell/assets/{sequenceDiagram-3UESZ5HK-D7jTcBtf.js → sequenceDiagram-3UESZ5HK-CCyp4PDp.js} +1 -1
- package/web-shell/assets/{stateDiagram-AJRCARHV-CrlM_OT3.js → stateDiagram-AJRCARHV-DHvIqTmx.js} +1 -1
- package/web-shell/assets/stateDiagram-v2-BHNVJYJU-DvFhmpwA.js +1 -0
- package/web-shell/assets/{timeline-definition-PNZ67QCA-5oZi76Ef.js → timeline-definition-PNZ67QCA-amb3n9zH.js} +1 -1
- package/web-shell/assets/{vennDiagram-CIIHVFJN-DO5YptPK.js → vennDiagram-CIIHVFJN-Abf2qRFJ.js} +1 -1
- package/web-shell/assets/{wardley-L42UT6IY-4t1eJDvM.js → wardley-L42UT6IY-BBlOp1av.js} +1 -1
- package/web-shell/assets/{wardleyDiagram-YWT4CUSO-DKZc661S.js → wardleyDiagram-YWT4CUSO-gE_sZ0Ak.js} +1 -1
- package/web-shell/assets/{xychartDiagram-2RQKCTM6-su9hp08G.js → xychartDiagram-2RQKCTM6-BwOni53i.js} +1 -1
- package/web-shell/index.html +16 -4
- package/chunks/chunk-6SHO7WFF.js +0 -79
- package/chunks/chunk-IFEWJXFS.js +0 -37
- package/node_modules/@qwen-code/audio-capture/dist/index.d.ts +0 -35
- package/node_modules/@qwen-code/audio-capture/dist/index.js +0 -48
- package/node_modules/@qwen-code/audio-capture/dist/index.js.map +0 -1
- package/node_modules/@qwen-code/audio-capture/dist/platform.d.ts +0 -7
- package/node_modules/@qwen-code/audio-capture/dist/platform.js +0 -18
- package/node_modules/@qwen-code/audio-capture/dist/platform.js.map +0 -1
- package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/LICENSE +0 -21
- package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/README.md +0 -58
- package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/SECURITY.md +0 -5
- package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/bin.js +0 -84
- package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/build-test.js +0 -19
- package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/index.js +0 -6
- package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/node-gyp-build.js +0 -207
- package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/optional.js +0 -7
- package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/package.json +0 -43
- package/node_modules/@qwen-code/audio-capture/package.json +0 -30
- package/node_modules/@qwen-code/audio-capture/prebuilds/darwin-arm64/@qwen-code+audio-capture.node +0 -0
- package/node_modules/@qwen-code/audio-capture/prebuilds/darwin-x64/@qwen-code+audio-capture.node +0 -0
- package/node_modules/@qwen-code/audio-capture/prebuilds/linux-arm64/@qwen-code+audio-capture.node +0 -0
- package/node_modules/@qwen-code/audio-capture/prebuilds/linux-x64/@qwen-code+audio-capture.node +0 -0
- package/node_modules/@qwen-code/audio-capture/prebuilds/win32-x64/@qwen-code+audio-capture.node +0 -0
- package/web-shell/assets/channel-BNf1dW-j.js +0 -1
- package/web-shell/assets/classDiagram-4FO5ZUOK-uOIGlzgi.js +0 -1
- package/web-shell/assets/classDiagram-v2-Q7XG4LA2-uOIGlzgi.js +0 -1
- package/web-shell/assets/index-CnE2ur2L.js +0 -779
- package/web-shell/assets/index-hSKXrlSE.css +0 -5
- package/web-shell/assets/stateDiagram-v2-BHNVJYJU-Bs4TK_84.js +0 -1
- /package/chunks/{chunk-Y6Z2O3WR.js → chunk-JM7BYJO5.js} +0 -0
|
@@ -5,10 +5,10 @@ import {
|
|
|
5
5
|
} from "./chunk-KHDZHZMH.js";
|
|
6
6
|
import {
|
|
7
7
|
getCliVersion
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-4ONWIT5C.js";
|
|
9
9
|
import {
|
|
10
10
|
IdeClient
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-ZDAZSR2O.js";
|
|
12
12
|
import {
|
|
13
13
|
createDebugLogger
|
|
14
14
|
} from "./chunk-22MNNNXE.js";
|
|
@@ -27,7 +27,7 @@ import { execFile } from "node:child_process";
|
|
|
27
27
|
|
|
28
28
|
// packages/cli/src/generated/git-commit.ts
|
|
29
29
|
init_esbuild_shims();
|
|
30
|
-
var GIT_COMMIT_INFO = "
|
|
30
|
+
var GIT_COMMIT_INFO = "4fe960c59";
|
|
31
31
|
|
|
32
32
|
// packages/cli/src/utils/systemInfo.ts
|
|
33
33
|
var debugLogger = createDebugLogger("STATUS");
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
// Force strict mode and setup for ESM
|
|
2
|
+
"use strict";
|
|
3
|
+
import {
|
|
4
|
+
SessionNotFoundError
|
|
5
|
+
} from "./chunk-GGQQA4JW.js";
|
|
6
|
+
import {
|
|
7
|
+
init_esbuild_shims
|
|
8
|
+
} from "./chunk-A4BMJM77.js";
|
|
9
|
+
import {
|
|
10
|
+
__name
|
|
11
|
+
} from "./chunk-J2S4EL5Y.js";
|
|
12
|
+
|
|
13
|
+
// packages/cli/src/serve/workspace-registry.ts
|
|
14
|
+
init_esbuild_shims();
|
|
15
|
+
function createWorkspaceSessionOwnerIndex() {
|
|
16
|
+
const bySessionId = /* @__PURE__ */ new Map();
|
|
17
|
+
const register = /* @__PURE__ */ __name((sessionId, workspaceCwd) => {
|
|
18
|
+
let owners = bySessionId.get(sessionId);
|
|
19
|
+
if (!owners) {
|
|
20
|
+
owners = /* @__PURE__ */ new Set();
|
|
21
|
+
bySessionId.set(sessionId, owners);
|
|
22
|
+
}
|
|
23
|
+
owners.add(workspaceCwd);
|
|
24
|
+
}, "register");
|
|
25
|
+
const remove = /* @__PURE__ */ __name((sessionId, workspaceCwd) => {
|
|
26
|
+
if (workspaceCwd === void 0) {
|
|
27
|
+
bySessionId.delete(sessionId);
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
const owners = bySessionId.get(sessionId);
|
|
31
|
+
if (!owners) return;
|
|
32
|
+
owners.delete(workspaceCwd);
|
|
33
|
+
if (owners.size === 0) {
|
|
34
|
+
bySessionId.delete(sessionId);
|
|
35
|
+
}
|
|
36
|
+
}, "remove");
|
|
37
|
+
return {
|
|
38
|
+
register,
|
|
39
|
+
remove,
|
|
40
|
+
getWorkspaceCwds: /* @__PURE__ */ __name((sessionId) => [...bySessionId.get(sessionId) ?? []], "getWorkspaceCwds"),
|
|
41
|
+
handleBridgeSessionLifecycle: /* @__PURE__ */ __name((event) => {
|
|
42
|
+
if (event.type === "registered") {
|
|
43
|
+
register(event.sessionId, event.workspaceCwd);
|
|
44
|
+
} else {
|
|
45
|
+
remove(event.sessionId, event.workspaceCwd);
|
|
46
|
+
}
|
|
47
|
+
}, "handleBridgeSessionLifecycle")
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
__name(createWorkspaceSessionOwnerIndex, "createWorkspaceSessionOwnerIndex");
|
|
51
|
+
function createWorkspaceRegistry(inputRuntimes, options = {}) {
|
|
52
|
+
if (inputRuntimes.length === 0) {
|
|
53
|
+
throw new Error(
|
|
54
|
+
"WorkspaceRegistry requires at least one workspace runtime."
|
|
55
|
+
);
|
|
56
|
+
}
|
|
57
|
+
const primaryRuntimes = inputRuntimes.filter((runtime) => runtime.primary);
|
|
58
|
+
if (primaryRuntimes.length !== 1) {
|
|
59
|
+
throw new Error(
|
|
60
|
+
"WorkspaceRegistry requires exactly one primary workspace runtime."
|
|
61
|
+
);
|
|
62
|
+
}
|
|
63
|
+
const byCwd = /* @__PURE__ */ new Map();
|
|
64
|
+
const byId = /* @__PURE__ */ new Map();
|
|
65
|
+
for (const runtime of inputRuntimes) {
|
|
66
|
+
if (byCwd.has(runtime.workspaceCwd)) {
|
|
67
|
+
throw new Error(
|
|
68
|
+
`Duplicate workspace runtime cwd ${JSON.stringify(
|
|
69
|
+
runtime.workspaceCwd
|
|
70
|
+
)}.`
|
|
71
|
+
);
|
|
72
|
+
}
|
|
73
|
+
byCwd.set(runtime.workspaceCwd, runtime);
|
|
74
|
+
if (byId.has(runtime.workspaceId)) {
|
|
75
|
+
throw new Error(
|
|
76
|
+
`Duplicate workspace runtime id ${JSON.stringify(
|
|
77
|
+
runtime.workspaceId
|
|
78
|
+
)}.`
|
|
79
|
+
);
|
|
80
|
+
}
|
|
81
|
+
byId.set(runtime.workspaceId, runtime);
|
|
82
|
+
}
|
|
83
|
+
const runtimes = Object.freeze([...inputRuntimes]);
|
|
84
|
+
const primary = primaryRuntimes[0];
|
|
85
|
+
const sessionOwnerIndex = options.sessionOwnerIndex;
|
|
86
|
+
const scanLiveOwners = /* @__PURE__ */ __name((sessionId) => {
|
|
87
|
+
const matches = [];
|
|
88
|
+
for (const runtime of runtimes) {
|
|
89
|
+
try {
|
|
90
|
+
runtime.bridge.getSessionSummary(sessionId);
|
|
91
|
+
matches.push(runtime);
|
|
92
|
+
} catch (err) {
|
|
93
|
+
if (err instanceof SessionNotFoundError) continue;
|
|
94
|
+
throw err;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
for (const match of matches) {
|
|
98
|
+
sessionOwnerIndex?.register(sessionId, match.workspaceCwd);
|
|
99
|
+
}
|
|
100
|
+
if (matches.length === 0) return { kind: "not_found" };
|
|
101
|
+
if (matches.length === 1) {
|
|
102
|
+
return { kind: "found", runtime: matches[0] };
|
|
103
|
+
}
|
|
104
|
+
return { kind: "ambiguous", runtimes: matches };
|
|
105
|
+
}, "scanLiveOwners");
|
|
106
|
+
return {
|
|
107
|
+
primary,
|
|
108
|
+
list: /* @__PURE__ */ __name(() => runtimes, "list"),
|
|
109
|
+
getByWorkspaceCwd: /* @__PURE__ */ __name((workspaceCwd) => byCwd.get(workspaceCwd), "getByWorkspaceCwd"),
|
|
110
|
+
getByWorkspaceId: /* @__PURE__ */ __name((workspaceId) => byId.get(workspaceId), "getByWorkspaceId"),
|
|
111
|
+
resolveWorkspaceCwd: /* @__PURE__ */ __name((workspaceCwd) => workspaceCwd === void 0 ? primary : byCwd.get(workspaceCwd), "resolveWorkspaceCwd"),
|
|
112
|
+
resolveLiveSessionOwner: /* @__PURE__ */ __name((sessionId) => {
|
|
113
|
+
const indexedCwds = sessionOwnerIndex?.getWorkspaceCwds(sessionId) ?? [];
|
|
114
|
+
if (indexedCwds.length > 0) {
|
|
115
|
+
const matches = [];
|
|
116
|
+
for (const workspaceCwd of indexedCwds) {
|
|
117
|
+
const runtime = byCwd.get(workspaceCwd);
|
|
118
|
+
if (!runtime) {
|
|
119
|
+
sessionOwnerIndex?.remove(sessionId, workspaceCwd);
|
|
120
|
+
continue;
|
|
121
|
+
}
|
|
122
|
+
try {
|
|
123
|
+
runtime.bridge.getSessionSummary(sessionId);
|
|
124
|
+
matches.push(runtime);
|
|
125
|
+
} catch (err) {
|
|
126
|
+
if (err instanceof SessionNotFoundError) {
|
|
127
|
+
sessionOwnerIndex?.remove(sessionId, workspaceCwd);
|
|
128
|
+
continue;
|
|
129
|
+
}
|
|
130
|
+
throw err;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
if (matches.length === 1) {
|
|
134
|
+
return { kind: "found", runtime: matches[0] };
|
|
135
|
+
}
|
|
136
|
+
if (matches.length > 1) {
|
|
137
|
+
return { kind: "ambiguous", runtimes: matches };
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
return scanLiveOwners(sessionId);
|
|
141
|
+
}, "resolveLiveSessionOwner")
|
|
142
|
+
};
|
|
143
|
+
}
|
|
144
|
+
__name(createWorkspaceRegistry, "createWorkspaceRegistry");
|
|
145
|
+
function createSingleWorkspaceRegistry(runtime, options = {}) {
|
|
146
|
+
return createWorkspaceRegistry([runtime], options);
|
|
147
|
+
}
|
|
148
|
+
__name(createSingleWorkspaceRegistry, "createSingleWorkspaceRegistry");
|
|
149
|
+
|
|
150
|
+
export {
|
|
151
|
+
createWorkspaceSessionOwnerIndex,
|
|
152
|
+
createWorkspaceRegistry,
|
|
153
|
+
createSingleWorkspaceRegistry
|
|
154
|
+
};
|
|
155
|
+
/**
|
|
156
|
+
* @license
|
|
157
|
+
* Copyright 2026 Qwen Team
|
|
158
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
159
|
+
*/
|
|
@@ -0,0 +1,296 @@
|
|
|
1
|
+
// Force strict mode and setup for ESM
|
|
2
|
+
"use strict";
|
|
3
|
+
import {
|
|
4
|
+
isGitRepository
|
|
5
|
+
} from "./chunk-ZDAZSR2O.js";
|
|
6
|
+
import {
|
|
7
|
+
createDebugLogger
|
|
8
|
+
} from "./chunk-22MNNNXE.js";
|
|
9
|
+
import {
|
|
10
|
+
init_esbuild_shims
|
|
11
|
+
} from "./chunk-A4BMJM77.js";
|
|
12
|
+
import {
|
|
13
|
+
__name
|
|
14
|
+
} from "./chunk-J2S4EL5Y.js";
|
|
15
|
+
|
|
16
|
+
// packages/cli/src/utils/installationInfo.ts
|
|
17
|
+
init_esbuild_shims();
|
|
18
|
+
import * as fs from "node:fs";
|
|
19
|
+
import * as path from "node:path";
|
|
20
|
+
import * as childProcess from "node:child_process";
|
|
21
|
+
var PackageManager = /* @__PURE__ */ ((PackageManager2) => {
|
|
22
|
+
PackageManager2["NPM"] = "npm";
|
|
23
|
+
PackageManager2["YARN"] = "yarn";
|
|
24
|
+
PackageManager2["PNPM"] = "pnpm";
|
|
25
|
+
PackageManager2["PNPX"] = "pnpx";
|
|
26
|
+
PackageManager2["BUN"] = "bun";
|
|
27
|
+
PackageManager2["BUNX"] = "bunx";
|
|
28
|
+
PackageManager2["HOMEBREW"] = "homebrew";
|
|
29
|
+
PackageManager2["STANDALONE"] = "standalone";
|
|
30
|
+
PackageManager2["NPX"] = "npx";
|
|
31
|
+
PackageManager2["UNKNOWN"] = "unknown";
|
|
32
|
+
return PackageManager2;
|
|
33
|
+
})(PackageManager || {});
|
|
34
|
+
var debugLogger = createDebugLogger("INSTALLATION_INFO");
|
|
35
|
+
var STANDALONE_UNIX_INSTALLER = "https://qwen-code-assets.oss-cn-hangzhou.aliyuncs.com/installation/install-qwen-standalone.sh";
|
|
36
|
+
var STANDALONE_WINDOWS_INSTALLER = "https://qwen-code-assets.oss-cn-hangzhou.aliyuncs.com/installation/install-qwen-standalone.ps1";
|
|
37
|
+
function getStandaloneInstallerUrl() {
|
|
38
|
+
return process.platform === "win32" ? STANDALONE_WINDOWS_INSTALLER : STANDALONE_UNIX_INSTALLER;
|
|
39
|
+
}
|
|
40
|
+
__name(getStandaloneInstallerUrl, "getStandaloneInstallerUrl");
|
|
41
|
+
function resolveUpdateCommand(updateCommand, latestVersion) {
|
|
42
|
+
const isNightly = latestVersion.includes("nightly");
|
|
43
|
+
return updateCommand.replace(
|
|
44
|
+
"@latest",
|
|
45
|
+
isNightly ? "@nightly" : `@${latestVersion}`
|
|
46
|
+
);
|
|
47
|
+
}
|
|
48
|
+
__name(resolveUpdateCommand, "resolveUpdateCommand");
|
|
49
|
+
function formatUpdateInstructions(installationInfo, latestVersion) {
|
|
50
|
+
const lines = [];
|
|
51
|
+
if (installationInfo.updateMessage && !installationInfo.updateCommand) {
|
|
52
|
+
lines.push(
|
|
53
|
+
...formatUpdateMessage(installationInfo.updateMessage, latestVersion)
|
|
54
|
+
);
|
|
55
|
+
}
|
|
56
|
+
if (installationInfo.updateCommand) {
|
|
57
|
+
const updateCmd = resolveUpdateCommand(
|
|
58
|
+
installationInfo.updateCommand,
|
|
59
|
+
latestVersion
|
|
60
|
+
);
|
|
61
|
+
lines.push("Run the following to update:", ` ${updateCmd}`);
|
|
62
|
+
} else if (!installationInfo.updateMessage) {
|
|
63
|
+
lines.push("Manual update required. Please reinstall Qwen Code.");
|
|
64
|
+
}
|
|
65
|
+
return lines;
|
|
66
|
+
}
|
|
67
|
+
__name(formatUpdateInstructions, "formatUpdateInstructions");
|
|
68
|
+
function formatUpdateMessage(updateMessage, latestVersion) {
|
|
69
|
+
const message = resolveUpdateCommand(updateMessage, latestVersion);
|
|
70
|
+
const sudoPrefix = "Update requires sudo. Please run: ";
|
|
71
|
+
if (message.startsWith(sudoPrefix)) {
|
|
72
|
+
return [
|
|
73
|
+
"Update requires sudo. Please run:",
|
|
74
|
+
` ${message.slice(sudoPrefix.length)}`
|
|
75
|
+
];
|
|
76
|
+
}
|
|
77
|
+
return [message];
|
|
78
|
+
}
|
|
79
|
+
__name(formatUpdateMessage, "formatUpdateMessage");
|
|
80
|
+
function getInstallationInfo(projectRoot, isAutoUpdateEnabled) {
|
|
81
|
+
const cliPath = process.argv[1];
|
|
82
|
+
if (!cliPath) {
|
|
83
|
+
return { packageManager: "unknown" /* UNKNOWN */, isGlobal: false };
|
|
84
|
+
}
|
|
85
|
+
try {
|
|
86
|
+
const realPath = fs.realpathSync(cliPath).replace(/\\/g, "/");
|
|
87
|
+
const normalizedProjectRoot = projectRoot?.replace(/\\/g, "/");
|
|
88
|
+
const isGit = isGitRepository(process.cwd());
|
|
89
|
+
if (isGit && normalizedProjectRoot && isSamePathOrInside(realPath, normalizedProjectRoot) && !realPath.includes("/node_modules/")) {
|
|
90
|
+
return {
|
|
91
|
+
packageManager: "unknown" /* UNKNOWN */,
|
|
92
|
+
// Not managed by a package manager in this sense
|
|
93
|
+
isGlobal: false,
|
|
94
|
+
updateMessage: 'Running from a local git clone. Please update with "git pull".'
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
if (realPath.includes("/.npm/_npx") || realPath.includes("/npm/_npx")) {
|
|
98
|
+
return {
|
|
99
|
+
packageManager: "npx" /* NPX */,
|
|
100
|
+
isGlobal: false,
|
|
101
|
+
updateMessage: "Running via npx, update not applicable."
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
if (realPath.includes("/.pnpm/_pnpx")) {
|
|
105
|
+
return {
|
|
106
|
+
packageManager: "pnpx" /* PNPX */,
|
|
107
|
+
isGlobal: false,
|
|
108
|
+
updateMessage: "Running via pnpx, update not applicable."
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
const standaloneInfo = getStandaloneInstallInfo(
|
|
112
|
+
realPath,
|
|
113
|
+
isAutoUpdateEnabled
|
|
114
|
+
);
|
|
115
|
+
if (standaloneInfo) {
|
|
116
|
+
return standaloneInfo;
|
|
117
|
+
}
|
|
118
|
+
if (process.platform === "darwin") {
|
|
119
|
+
try {
|
|
120
|
+
childProcess.execSync('brew list -1 | grep -q "^qwen-code$"', {
|
|
121
|
+
stdio: "ignore"
|
|
122
|
+
});
|
|
123
|
+
return {
|
|
124
|
+
packageManager: "homebrew" /* HOMEBREW */,
|
|
125
|
+
isGlobal: true,
|
|
126
|
+
updateMessage: 'Installed via Homebrew. Please update with "brew upgrade".'
|
|
127
|
+
};
|
|
128
|
+
} catch (_error) {
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
if (realPath.includes("/.pnpm/global")) {
|
|
132
|
+
const updateCommand2 = "pnpm add -g @qwen-code/qwen-code@latest";
|
|
133
|
+
return {
|
|
134
|
+
packageManager: "pnpm" /* PNPM */,
|
|
135
|
+
isGlobal: true,
|
|
136
|
+
updateCommand: updateCommand2,
|
|
137
|
+
updateMessage: isAutoUpdateEnabled ? "Installed with pnpm. Attempting to automatically update now..." : `Please run ${updateCommand2} to update`
|
|
138
|
+
};
|
|
139
|
+
}
|
|
140
|
+
if (realPath.includes("/.yarn/global")) {
|
|
141
|
+
const updateCommand2 = "yarn global add @qwen-code/qwen-code@latest";
|
|
142
|
+
return {
|
|
143
|
+
packageManager: "yarn" /* YARN */,
|
|
144
|
+
isGlobal: true,
|
|
145
|
+
updateCommand: updateCommand2,
|
|
146
|
+
updateMessage: isAutoUpdateEnabled ? "Installed with yarn. Attempting to automatically update now..." : `Please run ${updateCommand2} to update`
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
if (realPath.includes("/.bun/install/cache")) {
|
|
150
|
+
return {
|
|
151
|
+
packageManager: "bunx" /* BUNX */,
|
|
152
|
+
isGlobal: false,
|
|
153
|
+
updateMessage: "Running via bunx, update not applicable."
|
|
154
|
+
};
|
|
155
|
+
}
|
|
156
|
+
if (realPath.includes("/.bun/bin")) {
|
|
157
|
+
const updateCommand2 = "bun add -g @qwen-code/qwen-code@latest";
|
|
158
|
+
return {
|
|
159
|
+
packageManager: "bun" /* BUN */,
|
|
160
|
+
isGlobal: true,
|
|
161
|
+
updateCommand: updateCommand2,
|
|
162
|
+
updateMessage: isAutoUpdateEnabled ? "Installed with bun. Attempting to automatically update now..." : `Please run ${updateCommand2} to update`
|
|
163
|
+
};
|
|
164
|
+
}
|
|
165
|
+
if (normalizedProjectRoot && isSamePathOrInside(realPath, `${normalizedProjectRoot}/node_modules`)) {
|
|
166
|
+
let pm = "npm" /* NPM */;
|
|
167
|
+
if (fs.existsSync(path.join(projectRoot, "yarn.lock"))) {
|
|
168
|
+
pm = "yarn" /* YARN */;
|
|
169
|
+
} else if (fs.existsSync(path.join(projectRoot, "pnpm-lock.yaml"))) {
|
|
170
|
+
pm = "pnpm" /* PNPM */;
|
|
171
|
+
} else if (fs.existsSync(path.join(projectRoot, "bun.lockb"))) {
|
|
172
|
+
pm = "bun" /* BUN */;
|
|
173
|
+
}
|
|
174
|
+
return {
|
|
175
|
+
packageManager: pm,
|
|
176
|
+
isGlobal: false,
|
|
177
|
+
updateMessage: "Locally installed. Please update via your project's package.json."
|
|
178
|
+
};
|
|
179
|
+
}
|
|
180
|
+
const npmPackageDir = path.dirname(path.dirname(realPath));
|
|
181
|
+
let npmPrefixWritable = false;
|
|
182
|
+
try {
|
|
183
|
+
fs.accessSync(npmPackageDir, fs.constants.W_OK);
|
|
184
|
+
npmPrefixWritable = true;
|
|
185
|
+
} catch {
|
|
186
|
+
}
|
|
187
|
+
if (!npmPrefixWritable) {
|
|
188
|
+
return {
|
|
189
|
+
packageManager: "npm" /* NPM */,
|
|
190
|
+
isGlobal: true,
|
|
191
|
+
updateMessage: "Update requires sudo. Please run: sudo npm install -g @qwen-code/qwen-code@latest"
|
|
192
|
+
};
|
|
193
|
+
}
|
|
194
|
+
const updateCommand = "npm install -g @qwen-code/qwen-code@latest";
|
|
195
|
+
return {
|
|
196
|
+
packageManager: "npm" /* NPM */,
|
|
197
|
+
isGlobal: true,
|
|
198
|
+
updateCommand,
|
|
199
|
+
updateMessage: isAutoUpdateEnabled ? "Installed with npm. Attempting to automatically update now..." : `Please run ${updateCommand} to update`
|
|
200
|
+
};
|
|
201
|
+
} catch (error) {
|
|
202
|
+
debugLogger.error("Failed to detect installation info:", error);
|
|
203
|
+
return { packageManager: "unknown" /* UNKNOWN */, isGlobal: false };
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
__name(getInstallationInfo, "getInstallationInfo");
|
|
207
|
+
function stripTrailingSlashes(value) {
|
|
208
|
+
return value.replace(/\/+$/, "") || "/";
|
|
209
|
+
}
|
|
210
|
+
__name(stripTrailingSlashes, "stripTrailingSlashes");
|
|
211
|
+
function isSamePathOrInside(candidate, parent) {
|
|
212
|
+
const normalizedCandidate = stripTrailingSlashes(candidate);
|
|
213
|
+
const normalizedParent = stripTrailingSlashes(parent);
|
|
214
|
+
if (normalizedParent === "/") {
|
|
215
|
+
return normalizedCandidate === "/" || normalizedCandidate.startsWith("/");
|
|
216
|
+
}
|
|
217
|
+
return normalizedCandidate === normalizedParent || normalizedCandidate.startsWith(`${normalizedParent}/`);
|
|
218
|
+
}
|
|
219
|
+
__name(isSamePathOrInside, "isSamePathOrInside");
|
|
220
|
+
function getStandaloneInstallInfo(realPath, isAutoUpdateEnabled) {
|
|
221
|
+
const installDir = standaloneInstallDirForCliPath(realPath);
|
|
222
|
+
if (!installDir || !isStandaloneInstallDir(installDir)) {
|
|
223
|
+
return null;
|
|
224
|
+
}
|
|
225
|
+
const installerUrl = getStandaloneInstallerUrl();
|
|
226
|
+
const updateCommand = process.platform === "win32" ? `powershell -ExecutionPolicy Bypass -c "irm ${installerUrl} | iex"` : `curl -fsSL ${installerUrl} | bash`;
|
|
227
|
+
return {
|
|
228
|
+
packageManager: "standalone" /* STANDALONE */,
|
|
229
|
+
isGlobal: true,
|
|
230
|
+
isStandalone: true,
|
|
231
|
+
standaloneDir: installDir,
|
|
232
|
+
updateMessage: isAutoUpdateEnabled ? "Standalone install detected. Attempting to automatically update now..." : `Standalone install detected. Please rerun the standalone installer to update: ${updateCommand}`
|
|
233
|
+
};
|
|
234
|
+
}
|
|
235
|
+
__name(getStandaloneInstallInfo, "getStandaloneInstallInfo");
|
|
236
|
+
function standaloneInstallDirForCliPath(realPath) {
|
|
237
|
+
const normalized = realPath.replace(/\\/g, "/");
|
|
238
|
+
const suffix = "/lib/cli.js";
|
|
239
|
+
if (!normalized.endsWith(suffix)) {
|
|
240
|
+
return null;
|
|
241
|
+
}
|
|
242
|
+
return realPath.slice(0, -suffix.length);
|
|
243
|
+
}
|
|
244
|
+
__name(standaloneInstallDirForCliPath, "standaloneInstallDirForCliPath");
|
|
245
|
+
function isStandaloneInstallDir(installDir) {
|
|
246
|
+
try {
|
|
247
|
+
const manifestPath = path.join(installDir, "manifest.json");
|
|
248
|
+
if (!fs.existsSync(manifestPath)) {
|
|
249
|
+
return false;
|
|
250
|
+
}
|
|
251
|
+
const manifest = JSON.parse(fs.readFileSync(manifestPath, "utf8"));
|
|
252
|
+
if (manifest.name !== "@qwen-code/qwen-code" || typeof manifest.target !== "string" || !isStandaloneTargetForCurrentPlatform(manifest.target)) {
|
|
253
|
+
return false;
|
|
254
|
+
}
|
|
255
|
+
const qwenBin = process.platform === "win32" ? path.join(installDir, "bin", "qwen.cmd") : path.join(installDir, "bin", "qwen");
|
|
256
|
+
const nodeBin = process.platform === "win32" ? path.join(installDir, "node", "node.exe") : path.join(installDir, "node", "bin", "node");
|
|
257
|
+
return fs.existsSync(qwenBin) && fs.existsSync(nodeBin) && isStandaloneRuntimeFile(qwenBin) && isStandaloneRuntimeFile(nodeBin);
|
|
258
|
+
} catch (err) {
|
|
259
|
+
debugLogger.error("Standalone detection failed:", installDir, err);
|
|
260
|
+
return false;
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
__name(isStandaloneInstallDir, "isStandaloneInstallDir");
|
|
264
|
+
function isStandaloneTargetForCurrentPlatform(target) {
|
|
265
|
+
switch (process.platform) {
|
|
266
|
+
case "darwin":
|
|
267
|
+
return /^darwin-(arm64|x64)$/.test(target);
|
|
268
|
+
case "linux":
|
|
269
|
+
return /^linux-(arm64|x64)$/.test(target);
|
|
270
|
+
case "win32":
|
|
271
|
+
return /^win-(arm64|x64)$/.test(target);
|
|
272
|
+
default:
|
|
273
|
+
return false;
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
__name(isStandaloneTargetForCurrentPlatform, "isStandaloneTargetForCurrentPlatform");
|
|
277
|
+
function isStandaloneRuntimeFile(filePath) {
|
|
278
|
+
const stats = fs.lstatSync(filePath);
|
|
279
|
+
if (!stats.isFile() || stats.isSymbolicLink()) {
|
|
280
|
+
return false;
|
|
281
|
+
}
|
|
282
|
+
return process.platform === "win32" || (stats.mode & 73) !== 0;
|
|
283
|
+
}
|
|
284
|
+
__name(isStandaloneRuntimeFile, "isStandaloneRuntimeFile");
|
|
285
|
+
|
|
286
|
+
export {
|
|
287
|
+
PackageManager,
|
|
288
|
+
resolveUpdateCommand,
|
|
289
|
+
formatUpdateInstructions,
|
|
290
|
+
getInstallationInfo
|
|
291
|
+
};
|
|
292
|
+
/**
|
|
293
|
+
* @license
|
|
294
|
+
* Copyright 2025 Google LLC
|
|
295
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
296
|
+
*/
|
|
@@ -6,20 +6,23 @@ import {
|
|
|
6
6
|
parseAcpBaseModelId,
|
|
7
7
|
resolveCliGenerationConfig,
|
|
8
8
|
sanitizeProviderBaseUrl
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-4XK7TNBP.js";
|
|
10
10
|
import {
|
|
11
|
-
|
|
12
|
-
} from "./chunk-
|
|
11
|
+
snapshotProcessEnv
|
|
12
|
+
} from "./chunk-PCWSPWXZ.js";
|
|
13
13
|
import {
|
|
14
14
|
STATUS_SCHEMA_VERSION
|
|
15
|
-
} from "./chunk-
|
|
15
|
+
} from "./chunk-I3MBKL6Z.js";
|
|
16
|
+
import {
|
|
17
|
+
loadSettings
|
|
18
|
+
} from "./chunk-I34IHZFJ.js";
|
|
16
19
|
import {
|
|
17
20
|
ModelsConfig,
|
|
18
21
|
resolveProviderProtocol
|
|
19
|
-
} from "./chunk-
|
|
22
|
+
} from "./chunk-ZDAZSR2O.js";
|
|
20
23
|
import {
|
|
21
24
|
APPROVAL_MODES
|
|
22
|
-
} from "./chunk-
|
|
25
|
+
} from "./chunk-ZJQBTFJ6.js";
|
|
23
26
|
import {
|
|
24
27
|
tokenLimit
|
|
25
28
|
} from "./chunk-HW4N45EE.js";
|
|
@@ -42,10 +45,13 @@ function createWorkspaceProvidersStatusProvider(options = {}) {
|
|
|
42
45
|
__name(createWorkspaceProvidersStatusProvider, "createWorkspaceProvidersStatusProvider");
|
|
43
46
|
function buildWorkspaceProvidersStatus(workspaceCwd, acpChannelLive, options) {
|
|
44
47
|
try {
|
|
45
|
-
const loaded = loadSettings(
|
|
48
|
+
const loaded = loadSettings(
|
|
49
|
+
workspaceCwd,
|
|
50
|
+
options.env ? { skipLoadEnvironment: true } : true
|
|
51
|
+
);
|
|
46
52
|
const settings = loaded.merged;
|
|
47
|
-
const env = options.env ??
|
|
48
|
-
const selectedAuthType = settings.security?.auth?.selectedType ?? getAuthTypeFromEnv();
|
|
53
|
+
const env = options.env ?? snapshotProcessEnv();
|
|
54
|
+
const selectedAuthType = settings.security?.auth?.selectedType ?? getAuthTypeFromEnv(env);
|
|
49
55
|
const argv = {
|
|
50
56
|
model: options.argv?.model,
|
|
51
57
|
openaiApiKey: options.argv?.openaiApiKey,
|
|
@@ -4,11 +4,11 @@ import {
|
|
|
4
4
|
disableMouseEvents,
|
|
5
5
|
enableMouseEvents,
|
|
6
6
|
useKeypressContext
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-LRY7HD3Q.js";
|
|
8
8
|
import {
|
|
9
9
|
use_stdin_default,
|
|
10
10
|
use_stdout_default
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-2AF26HVM.js";
|
|
12
12
|
import {
|
|
13
13
|
require_react
|
|
14
14
|
} from "./chunk-KYMBIKIW.js";
|
|
@@ -62,6 +62,62 @@ function useTerminalSize() {
|
|
|
62
62
|
}
|
|
63
63
|
__name(useTerminalSize, "useTerminalSize");
|
|
64
64
|
|
|
65
|
+
// packages/cli/src/ui/colors.ts
|
|
66
|
+
init_esbuild_shims();
|
|
67
|
+
var Colors = {
|
|
68
|
+
get type() {
|
|
69
|
+
return themeManager.getActiveTheme().colors.type;
|
|
70
|
+
},
|
|
71
|
+
get Foreground() {
|
|
72
|
+
return themeManager.getActiveTheme().colors.Foreground;
|
|
73
|
+
},
|
|
74
|
+
get Background() {
|
|
75
|
+
return themeManager.getActiveTheme().colors.Background;
|
|
76
|
+
},
|
|
77
|
+
get LightBlue() {
|
|
78
|
+
return themeManager.getActiveTheme().colors.LightBlue;
|
|
79
|
+
},
|
|
80
|
+
get AccentBlue() {
|
|
81
|
+
return themeManager.getActiveTheme().colors.AccentBlue;
|
|
82
|
+
},
|
|
83
|
+
get AccentPurple() {
|
|
84
|
+
return themeManager.getActiveTheme().colors.AccentPurple;
|
|
85
|
+
},
|
|
86
|
+
get AccentCyan() {
|
|
87
|
+
return themeManager.getActiveTheme().colors.AccentCyan;
|
|
88
|
+
},
|
|
89
|
+
get AccentGreen() {
|
|
90
|
+
return themeManager.getActiveTheme().colors.AccentGreen;
|
|
91
|
+
},
|
|
92
|
+
get AccentYellow() {
|
|
93
|
+
return themeManager.getActiveTheme().colors.AccentYellow;
|
|
94
|
+
},
|
|
95
|
+
get AccentRed() {
|
|
96
|
+
return themeManager.getActiveTheme().colors.AccentRed;
|
|
97
|
+
},
|
|
98
|
+
get AccentYellowDim() {
|
|
99
|
+
return themeManager.getActiveTheme().colors.AccentYellowDim;
|
|
100
|
+
},
|
|
101
|
+
get AccentRedDim() {
|
|
102
|
+
return themeManager.getActiveTheme().colors.AccentRedDim;
|
|
103
|
+
},
|
|
104
|
+
get DiffAdded() {
|
|
105
|
+
return themeManager.getActiveTheme().colors.DiffAdded;
|
|
106
|
+
},
|
|
107
|
+
get DiffRemoved() {
|
|
108
|
+
return themeManager.getActiveTheme().colors.DiffRemoved;
|
|
109
|
+
},
|
|
110
|
+
get Comment() {
|
|
111
|
+
return themeManager.getActiveTheme().colors.Comment;
|
|
112
|
+
},
|
|
113
|
+
get Gray() {
|
|
114
|
+
return themeManager.getActiveTheme().colors.Gray;
|
|
115
|
+
},
|
|
116
|
+
get GradientColors() {
|
|
117
|
+
return themeManager.getActiveTheme().colors.GradientColors;
|
|
118
|
+
}
|
|
119
|
+
};
|
|
120
|
+
|
|
65
121
|
// packages/cli/src/ui/hooks/useMouseEvents.ts
|
|
66
122
|
init_esbuild_shims();
|
|
67
123
|
var import_react3 = __toESM(require_react(), 1);
|
|
@@ -121,7 +177,7 @@ function useMouseEvents(handler, { isActive, tracking = "button", bypassVpGate =
|
|
|
121
177
|
const vpGateOpen = isVpMode || bypassVpGate;
|
|
122
178
|
const handlerRef = (0, import_react3.useRef)(handler);
|
|
123
179
|
handlerRef.current = handler;
|
|
124
|
-
const enabled = isActive && isRawModeSupported && vpGateOpen;
|
|
180
|
+
const enabled = isActive && isRawModeSupported && vpGateOpen && Boolean(stdout.isTTY);
|
|
125
181
|
(0, import_react3.useEffect)(() => {
|
|
126
182
|
if (!enabled) return;
|
|
127
183
|
acquireMouseMode(stdout, tracking);
|
|
@@ -140,62 +196,6 @@ function useMouseEvents(handler, { isActive, tracking = "button", bypassVpGate =
|
|
|
140
196
|
}
|
|
141
197
|
__name(useMouseEvents, "useMouseEvents");
|
|
142
198
|
|
|
143
|
-
// packages/cli/src/ui/colors.ts
|
|
144
|
-
init_esbuild_shims();
|
|
145
|
-
var Colors = {
|
|
146
|
-
get type() {
|
|
147
|
-
return themeManager.getActiveTheme().colors.type;
|
|
148
|
-
},
|
|
149
|
-
get Foreground() {
|
|
150
|
-
return themeManager.getActiveTheme().colors.Foreground;
|
|
151
|
-
},
|
|
152
|
-
get Background() {
|
|
153
|
-
return themeManager.getActiveTheme().colors.Background;
|
|
154
|
-
},
|
|
155
|
-
get LightBlue() {
|
|
156
|
-
return themeManager.getActiveTheme().colors.LightBlue;
|
|
157
|
-
},
|
|
158
|
-
get AccentBlue() {
|
|
159
|
-
return themeManager.getActiveTheme().colors.AccentBlue;
|
|
160
|
-
},
|
|
161
|
-
get AccentPurple() {
|
|
162
|
-
return themeManager.getActiveTheme().colors.AccentPurple;
|
|
163
|
-
},
|
|
164
|
-
get AccentCyan() {
|
|
165
|
-
return themeManager.getActiveTheme().colors.AccentCyan;
|
|
166
|
-
},
|
|
167
|
-
get AccentGreen() {
|
|
168
|
-
return themeManager.getActiveTheme().colors.AccentGreen;
|
|
169
|
-
},
|
|
170
|
-
get AccentYellow() {
|
|
171
|
-
return themeManager.getActiveTheme().colors.AccentYellow;
|
|
172
|
-
},
|
|
173
|
-
get AccentRed() {
|
|
174
|
-
return themeManager.getActiveTheme().colors.AccentRed;
|
|
175
|
-
},
|
|
176
|
-
get AccentYellowDim() {
|
|
177
|
-
return themeManager.getActiveTheme().colors.AccentYellowDim;
|
|
178
|
-
},
|
|
179
|
-
get AccentRedDim() {
|
|
180
|
-
return themeManager.getActiveTheme().colors.AccentRedDim;
|
|
181
|
-
},
|
|
182
|
-
get DiffAdded() {
|
|
183
|
-
return themeManager.getActiveTheme().colors.DiffAdded;
|
|
184
|
-
},
|
|
185
|
-
get DiffRemoved() {
|
|
186
|
-
return themeManager.getActiveTheme().colors.DiffRemoved;
|
|
187
|
-
},
|
|
188
|
-
get Comment() {
|
|
189
|
-
return themeManager.getActiveTheme().colors.Comment;
|
|
190
|
-
},
|
|
191
|
-
get Gray() {
|
|
192
|
-
return themeManager.getActiveTheme().colors.Gray;
|
|
193
|
-
},
|
|
194
|
-
get GradientColors() {
|
|
195
|
-
return themeManager.getActiveTheme().colors.GradientColors;
|
|
196
|
-
}
|
|
197
|
-
};
|
|
198
|
-
|
|
199
199
|
// packages/cli/src/ui/utils/measure-element-position.ts
|
|
200
200
|
init_esbuild_shims();
|
|
201
201
|
|