@qwen-code/qwen-code 0.19.2 → 0.19.3-nightly.20260630.e00fe6a27
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/extension-creator/SKILL.md +357 -0
- package/bundled/loop/SKILL.md +21 -7
- package/bundled/loop/SKILL.test.ts +41 -0
- package/bundled/loop/loop-task-file.test.ts +1064 -0
- package/bundled/loop/loop-task-file.ts +404 -0
- package/bundled/loop/loop-tick-resolver.test.ts +665 -0
- package/bundled/loop/loop-tick-resolver.ts +347 -0
- package/bundled/qc-helper/SKILL.md +26 -19
- package/bundled/qc-helper/docs/configuration/auth.md +11 -11
- package/bundled/qc-helper/docs/configuration/model-providers.md +13 -13
- package/bundled/qc-helper/docs/configuration/settings.md +76 -75
- package/bundled/qc-helper/docs/features/channels/plugins.md +1 -1
- package/bundled/qc-helper/docs/features/commands.md +108 -77
- package/bundled/qc-helper/docs/features/hooks.md +6 -1
- package/bundled/qc-helper/docs/features/memory.md +52 -0
- package/bundled/qc-helper/docs/qwen-serve.md +24 -2
- package/bundled/qc-helper/docs/support/tos-privacy.md +16 -3
- package/bundled/qc-helper/docs/support/troubleshooting.md +6 -0
- package/chunks/{MaxSizedBox-7RERNLFK.js → MaxSizedBox-T5X5MN5Q.js} +29 -27
- package/chunks/{StandaloneSessionPicker-S22XBSN6.js → StandaloneSessionPicker-P3E3WTOQ.js} +42 -37
- package/chunks/{acpAgent-4MCETHF2.js → acpAgent-QEP6DXFW.js} +864 -175
- package/chunks/{agent-K3ENVYSB.js → agent-UDANDUF7.js} +24 -23
- package/chunks/{agent-headless-HO3V3A3A.js → agent-headless-KYVSZHSO.js} +24 -23
- package/chunks/{anthropicContentGenerator-E3TQ5XJJ.js → anthropicContentGenerator-KWSJAQ7B.js} +33 -12
- package/chunks/{artifact-tool-QA4KRO3B.js → artifact-tool-D2X7G3C3.js} +2 -2
- package/chunks/{askUserQuestion-HMWXW6VN.js → askUserQuestion-UGETICJQ.js} +2 -2
- package/chunks/{bridge-4LV2HBH2.js → bridge-X42LXPTA.js} +31 -30
- package/chunks/{ca-7WC7ELX6.js → ca-IUFWESZL.js} +1 -0
- package/chunks/{chunk-JXQ23SNT.js → chunk-2JKEQWDZ.js} +623 -78
- package/chunks/{chunk-2TJ3YN6Q.js → chunk-2RJA6J57.js} +416 -401
- package/chunks/{chunk-3UALQ56H.js → chunk-3227DZO4.js} +1 -1
- package/chunks/{chunk-BGUDAULQ.js → chunk-3CPCDXFR.js} +5 -5
- package/chunks/{chunk-5RVSM6NW.js → chunk-3HUHAQF3.js} +1 -1
- package/chunks/{chunk-D5E5TMYH.js → chunk-3M4W4U5G.js} +16 -2
- package/chunks/{chunk-DBZUXSSV.js → chunk-4X7NIEQJ.js} +3 -3
- package/chunks/chunk-5GOVVXEV.js +73 -0
- package/chunks/{chunk-2BAQ3ACS.js → chunk-5SM4VT6V.js} +405 -5
- package/chunks/{chunk-NYOHZYHM.js → chunk-5XQ4A26L.js} +45 -3
- package/chunks/{chunk-CI5O6SQL.js → chunk-6FKEVYCD.js} +4 -4
- package/chunks/{chunk-ZD3NW5KL.js → chunk-7LM4XHPE.js} +63 -9
- package/chunks/chunk-7UNP2XM7.js +840 -0
- package/chunks/{chunk-OQHQHJRK.js → chunk-ARYCHZ4B.js} +151 -4775
- package/chunks/chunk-BC3C4F3Q.js +40 -0
- package/chunks/{chunk-CGEGHF2C.js → chunk-BKXBARJZ.js} +1 -1
- package/chunks/chunk-BMFMJINR.js +45 -0
- package/chunks/chunk-BOJWHRMX.js +11273 -0
- package/chunks/{chunk-CGOMICBE.js → chunk-BSZEQNUA.js} +34 -1
- package/chunks/{chunk-OIC6S73E.js → chunk-BUUQ5HPX.js} +1 -1
- package/chunks/{chunk-2BIF2NVV.js → chunk-BVSVIN45.js} +2 -2
- package/chunks/{chunk-TOEGRAVX.js → chunk-BX5YO7UW.js} +17 -5
- package/chunks/{chunk-4W4T77MO.js → chunk-BXVWV4GI.js} +109 -6
- package/chunks/{chunk-VQRYPFCV.js → chunk-CYHVPQYT.js} +10 -460
- package/chunks/{chunk-PRYMDRBV.js → chunk-DDMOU62Q.js} +1 -1
- package/chunks/{chunk-S566HKUS.js → chunk-DHXWNSJA.js} +15 -1
- package/chunks/{chunk-F6XNTYNE.js → chunk-E6XQPQXW.js} +30 -307
- package/chunks/{chunk-QBZ22PQX.js → chunk-EWALXUAD.js} +3 -1
- package/chunks/{chunk-EL5IHQON.js → chunk-EWYQFWYF.js} +6 -27
- package/chunks/{chunk-HG6YKEBI.js → chunk-F2DOT6UZ.js} +161 -30
- package/chunks/{chunk-JTYRZODB.js → chunk-FOOIZCWL.js} +16 -7
- package/chunks/{chunk-EX4W6ZYG.js → chunk-G5G4TFZ7.js} +1 -1
- package/chunks/{chunk-EW6C27XX.js → chunk-GEHVIWAT.js} +9 -3
- package/chunks/chunk-HEVBZSXG.js +4923 -0
- package/chunks/chunk-HFQ2XSE7.js +690 -0
- package/chunks/{chunk-PF523XJX.js → chunk-HPGTGMP3.js} +1 -1
- package/chunks/{chunk-OTBK43JR.js → chunk-HYCC3XM3.js} +1 -1
- package/chunks/{chunk-TMBPDHXD.js → chunk-I4H7PRWQ.js} +1 -1
- package/chunks/{chunk-EEEZIVFJ.js → chunk-JOLIREYR.js} +1 -1
- package/chunks/{chunk-TZM5JIAX.js → chunk-JYPQTRA3.js} +10 -7
- package/chunks/chunk-K5XU6E4T.js +167 -0
- package/chunks/{chunk-BS64PXY3.js → chunk-KFVU7ODN.js} +1 -1
- package/chunks/{chunk-3RJ3ZPPR.js → chunk-KKQWC6WS.js} +7 -7
- package/chunks/{chunk-3QFE4OTE.js → chunk-LBW7NW7X.js} +4 -4
- package/chunks/{chunk-Z7XXFPGP.js → chunk-LDWTYE33.js} +1 -1
- package/chunks/{chunk-EXMX5YHG.js → chunk-LP5E4YIH.js} +1 -1
- package/chunks/{chunk-ZUAXI2OA.js → chunk-M2U5NM24.js} +188 -11366
- package/chunks/{chunk-I5T6PIBQ.js → chunk-MBV2CTRL.js} +1010 -925
- package/chunks/{chunk-5JZLXFPD.js → chunk-MTHMXSNT.js} +11 -11
- package/chunks/{chunk-FPACXT7T.js → chunk-MTJVHQDP.js} +534 -164
- package/chunks/chunk-NDOC6M5S.js +481 -0
- package/chunks/{chunk-HGNSRCRB.js → chunk-NL4C3H6C.js} +1 -1
- package/chunks/{chunk-GZCJS5WH.js → chunk-O2VBQ3Y2.js} +2 -2
- package/chunks/{chunk-UN3C6GOR.js → chunk-PPFWEV7G.js} +10 -108
- package/chunks/{chunk-RS4HRC75.js → chunk-QI2CFVRF.js} +85 -8
- package/chunks/{chunk-XU5P23GN.js → chunk-QLDPRILK.js} +3 -3
- package/chunks/chunk-QYUE6W3T.js +123 -0
- package/chunks/{chunk-USGMPVOY.js → chunk-R3LHDWF2.js} +21 -12
- package/chunks/{chunk-BNXANYLH.js → chunk-RD6YJJJ6.js} +81 -1
- package/chunks/{chunk-PXFFKNCO.js → chunk-RIP623NO.js} +4877 -2469
- package/chunks/{chunk-XKBP7M7A.js → chunk-RYBSUGOR.js} +142 -30
- package/chunks/{chunk-BG4BIP7F.js → chunk-SBBN4BWR.js} +4 -2
- package/chunks/{chunk-T2VDEFUU.js → chunk-SKQZZVAV.js} +2 -2
- package/chunks/{chunk-5R4SBCX6.js → chunk-SL5MOGQH.js} +3 -3
- package/chunks/chunk-SMXULRAN.js +37 -0
- package/chunks/{chunk-WA5OJGFL.js → chunk-SS6WJMQK.js} +363 -76
- package/chunks/{chunk-UAARVVBI.js → chunk-TNWFHGN6.js} +1 -1
- package/chunks/{chunk-I2RFAW6Q.js → chunk-TT6Q3EN4.js} +7 -5
- package/chunks/chunk-UAKXW3DN.js +30 -0
- package/chunks/{chunk-C4K3FEQ2.js → chunk-UX4SGCGN.js} +32 -3
- package/chunks/{chunk-J6AW7O5D.js → chunk-WHDQZHRU.js} +2 -2
- package/chunks/{chunk-WGAEWQTF.js → chunk-WN6K47NR.js} +1 -2
- package/chunks/{chunk-UAARJR2G.js → chunk-WQT5SOI6.js} +2 -2
- package/chunks/{chunk-VYFMN7C6.js → chunk-WUMVIRTN.js} +225 -37
- package/chunks/{chunk-R36VMVEP.js → chunk-XJMKOTVV.js} +5 -5
- package/chunks/{chunk-TXVGVZYR.js → chunk-XJYUPHRC.js} +3 -3
- package/chunks/{chunk-2JD55C6G.js → chunk-Y6YMRS3U.js} +2 -2
- package/chunks/{chunk-LLFFKXZZ.js → chunk-YALKC62D.js} +56 -29
- package/chunks/{chunk-GYZQA2FO.js → chunk-YLZJCUH6.js} +1 -1
- package/chunks/chunk-YTFBURQD.js +313 -0
- package/chunks/{chunk-KBXLIVWQ.js → chunk-ZFPRYHWR.js} +2 -2
- package/chunks/{chunk-X6EDWN44.js → chunk-ZP6UKOPB.js} +1 -1
- package/chunks/{computer-use-6BBRNT6S.js → computer-use-LF2S6LUZ.js} +103 -49
- package/chunks/{contextCommand-UJAJ6N57.js → contextCommand-VPX5UG55.js} +26 -25
- package/chunks/{cron-create-4KQE6YLH.js → cron-create-SKEY55RG.js} +4 -4
- package/chunks/{cron-delete-THME66UP.js → cron-delete-I3NAT32Z.js} +6 -6
- package/chunks/{cron-list-7A54SJ5N.js → cron-list-6XRRL6TH.js} +5 -5
- package/chunks/{daemon-status-provider-CSL3BUOY.js → daemon-status-provider-5JAWZS4V.js} +34 -34
- package/chunks/{de-ACHALDED.js → de-EOW5PVHF.js} +1 -0
- package/chunks/{dist-BD27IA3L.js → dist-4FCNM6KJ.js} +2 -2
- package/chunks/{dist-OD2FY543.js → dist-O3H4PABL.js} +2 -2
- package/chunks/{dist-BOOH5JWN.js → dist-SCAAUWPS.js} +18 -4
- package/chunks/{dist-QHJRBCMP.js → dist-UKPWQJCL.js} +44 -2
- package/chunks/{dist-QFFZWACU.js → dist-VD7HXTML.js} +20 -9
- package/chunks/{earlyInputCapture-X6KMCSHD.js → earlyInputCapture-7FRQMU4P.js} +25 -24
- package/chunks/{edit-7J6WXARF.js → edit-REKJDIRL.js} +68 -27
- package/chunks/{en-NCUBOJOY.js → en-HPWEJBTR.js} +8 -0
- package/chunks/{enter-worktree-KULCKJPJ.js → enter-worktree-GBKUDCD3.js} +24 -23
- package/chunks/{enterPlanMode-H2CIOLMH.js → enterPlanMode-WB3Y4FGT.js} +24 -23
- package/chunks/{errors-6G2JYR54.js → errors-2XJDYO3M.js} +26 -25
- package/chunks/{exit-worktree-ECBWBVC5.js → exit-worktree-KKC7O2ZV.js} +24 -23
- package/chunks/{exitPlanMode-DQV56GTW.js → exitPlanMode-7HMS3TF7.js} +24 -23
- package/chunks/{fast-path-35JJFS3C.js → fast-path-XVNIYWGG.js} +4 -4
- package/chunks/{fast-path-settings-TSVI53EB.js → fast-path-settings-UQLRFDQP.js} +3 -2
- package/chunks/{fr-GVKZ27MF.js → fr-BN5NKSAC.js} +1 -0
- package/chunks/{gemini-NDTG7WAX.js → gemini-U5TPU3IQ.js} +210 -104
- package/chunks/{geminiContentGenerator-XTG6SFLA.js → geminiContentGenerator-ZVWRHXOO.js} +4 -4
- package/chunks/{glob-SJ2JBZK4.js → glob-FEJWIH2W.js} +24 -23
- package/chunks/{grep-BRMWFEWR.js → grep-KMP25IIA.js} +24 -23
- package/chunks/{headlessSafetyWarnings-LJ6FJX77.js → headlessSafetyWarnings-5DEDET4M.js} +24 -23
- package/chunks/{initializer-P5AXF7PV.js → initializer-FJTACLOH.js} +31 -28
- package/chunks/{ja-FKZ2WZ4D.js → ja-7DEUB2TS.js} +1 -0
- package/chunks/{keychain-token-storage-CSYMNRPP.js → keychain-token-storage-YLMDLKXT.js} +2 -2
- package/chunks/{list-6COK34BP.js → list-SCQXYJUW.js} +32 -29
- package/chunks/{loadedSettingsAdapter-XIUTN245.js → loadedSettingsAdapter-P6KPNAG7.js} +30 -27
- package/chunks/{loop-wakeup-33GPXJLA.js → loop-wakeup-FYEQEJUA.js} +7 -7
- package/chunks/{ls-BYQY7RVV.js → ls-R5WP4BGZ.js} +4 -4
- package/chunks/{lsp-X54RO4IV.js → lsp-GSICJMMW.js} +2 -2
- package/chunks/{monitor-DH7KFSJV.js → monitor-JU3HHHVY.js} +24 -23
- package/chunks/nonInteractiveCli-IZEKUHU3.js +100 -0
- package/chunks/{notebook-edit-D4R4ZLMA.js → notebook-edit-YHY3Z2QQ.js} +52 -23
- package/chunks/{openaiContentGenerator-F74IPQ6E.js → openaiContentGenerator-4WUVA3Q2.js} +13 -12
- package/chunks/{pt-SY5NCFGR.js → pt-TNZRNLQB.js} +1 -0
- package/chunks/{qwenContentGenerator-ATTK5P4D.js → qwenContentGenerator-MVYYR44B.js} +26 -25
- package/chunks/{qwenOAuth2-K4AASPCV.js → qwenOAuth2-6HNGHALT.js} +5 -4
- package/chunks/{read-file-767G23OY.js → read-file-NABEO2X4.js} +8 -8
- package/chunks/{read-mcp-resource-I5HCZJ6X.js → read-mcp-resource-DQQW7H7T.js} +2 -2
- package/chunks/{ripGrep-4OMMGSWX.js → ripGrep-YXLK6UTX.js} +24 -23
- package/chunks/{ru-FWNXJG4F.js → ru-NIAUBKCN.js} +1 -0
- package/chunks/{run-qwen-serve-REKSTYRA.js → run-qwen-serve-4B5QBMLQ.js} +144 -41
- package/chunks/{scheduler-UNTFDQLG.js → scheduler-XAKIYBDL.js} +24 -23
- package/chunks/{send-message-2DAFXEYP.js → send-message-EE4TWKVU.js} +2 -2
- package/chunks/{serve-KZ56QB5S.js → serve-4RXVLUKD.js} +30 -28
- package/chunks/{server-BV5TZUMU.js → server-7PA5QGIA.js} +11037 -8747
- package/chunks/{session-OIBXFSGD.js → session-WNVWRYAH.js} +194 -57
- package/chunks/{settings-WJTCBIRA.js → settings-YJH32TFF.js} +30 -27
- package/chunks/{shell-WC52IBHW.js → shell-YFLABOS5.js} +24 -23
- package/chunks/{skill-U7F7JR4M.js → skill-N3J7FUAY.js} +38 -11
- package/chunks/{spawnChannel-EI2E5BCW.js → spawnChannel-D6WVMFZJ.js} +26 -25
- package/chunks/{src-4F6FBZFI.js → src-IU5GDBEH.js} +88 -28
- package/chunks/{startInteractiveUI-SFRVB3CE.js → startInteractiveUI-QIPQTRT4.js} +2784 -2474
- package/chunks/{syntheticOutput-PPS3HDVA.js → syntheticOutput-T5YHQ6S2.js} +3 -3
- package/chunks/{task-create-OUYCA553.js → task-create-BLY7RHXX.js} +6 -6
- package/chunks/{task-list-WAX7I2IA.js → task-list-3QUYNVYR.js} +5 -5
- package/chunks/{task-stop-CAIL6FNH.js → task-stop-U4RATK2V.js} +2 -2
- package/chunks/{task-update-AHEO5OUT.js → task-update-U54O7KJX.js} +6 -6
- package/chunks/{team-create-3WC7CIIW.js → team-create-TP4CLLM3.js} +24 -23
- package/chunks/{team-delete-HGHFG23B.js → team-delete-LKBYPASD.js} +5 -5
- package/chunks/{theme-manager-DICFCT3P.js → theme-manager-N2TBIBZT.js} +25 -24
- package/chunks/{todoWrite-IFBMN3FH.js → todoWrite-OYXKTVYN.js} +4 -4
- package/chunks/{tool-search-L5K7HLER.js → tool-search-GBBSICYB.js} +101 -16
- package/chunks/trustedFolders-F7TBU5CD.js +76 -0
- package/chunks/types-QX5C3CHJ.js +12 -0
- package/chunks/{validateNonInterActiveAuth-GCH4Z6KI.js → validateNonInterActiveAuth-EQDQPSMI.js} +55 -50
- package/chunks/{web-fetch-B5IIQ5TT.js → web-fetch-PCVCML2X.js} +29 -15
- package/chunks/{workflow-OB3AND7I.js → workflow-ANJ4FYBK.js} +32 -30
- package/chunks/{workspace-providers-status-ZIR5EPOO.js → workspace-providers-status-462QQKQM.js} +32 -29
- package/chunks/workspace-service-VTG4G6CW.js +75 -0
- package/chunks/{write-file-SEXBNDZM.js → write-file-3P3WMQQW.js} +63 -27
- package/chunks/{zh-RBEGQVQT.js → zh-5EUYXASN.js} +8 -0
- package/chunks/{zh-TW-QGAVRXT3.js → zh-TW-TR3XYGE5.js} +8 -0
- package/cli-entry.js +20 -9
- package/cli.js +6 -6
- package/locales/ca.js +2 -0
- package/locales/de.js +2 -0
- package/locales/en.js +14 -0
- package/locales/fr.js +2 -0
- package/locales/ja.js +1 -0
- package/locales/pt.js +2 -0
- package/locales/ru.js +2 -0
- package/locales/zh-TW.js +12 -0
- package/locales/zh.js +12 -0
- package/node_modules/@qwen-code/audio-capture/dist/index.d.ts +35 -0
- package/node_modules/@qwen-code/audio-capture/dist/index.js +48 -0
- package/node_modules/@qwen-code/audio-capture/dist/index.js.map +1 -0
- package/node_modules/@qwen-code/audio-capture/dist/platform.d.ts +7 -0
- package/node_modules/@qwen-code/audio-capture/dist/platform.js +18 -0
- package/node_modules/@qwen-code/audio-capture/dist/platform.js.map +1 -0
- package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/LICENSE +21 -0
- package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/README.md +58 -0
- package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/SECURITY.md +5 -0
- package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/bin.js +84 -0
- package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/build-test.js +19 -0
- package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/index.js +6 -0
- package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/node-gyp-build.js +207 -0
- package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/optional.js +7 -0
- package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/package.json +43 -0
- package/node_modules/@qwen-code/audio-capture/package.json +30 -0
- 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/package.json +18 -6
- package/patches/chrome-devtools-mcp+1.4.0.patch +31 -0
- package/postinstall.js +50 -0
- package/web-shell/assets/{arc-D_ae_Y9k.js → arc-DIemsO_F.js} +1 -1
- package/web-shell/assets/{architectureDiagram-3BPJPVTR-BMLRjppa.js → architectureDiagram-3BPJPVTR-CTlUvIQv.js} +1 -1
- package/web-shell/assets/{blockDiagram-GPEHLZMM-qVDQC8KL.js → blockDiagram-GPEHLZMM-DG0jmIZK.js} +1 -1
- package/web-shell/assets/{c4Diagram-AAUBKEIU-CxWS6MBd.js → c4Diagram-AAUBKEIU-WljDBi55.js} +1 -1
- package/web-shell/assets/channel-CbzRbdpA.js +1 -0
- package/web-shell/assets/{chunk-2J33WTMH-BtNuY5Yp.js → chunk-2J33WTMH-8nc6onr2.js} +1 -1
- package/web-shell/assets/{chunk-4BX2VUAB-BU-x368d.js → chunk-4BX2VUAB-EopXix8Z.js} +1 -1
- package/web-shell/assets/{chunk-55IACEB6-DRgTLvBu.js → chunk-55IACEB6-BE4Jz3N3.js} +1 -1
- package/web-shell/assets/{chunk-727SXJPM-D2aElv7q.js → chunk-727SXJPM-C_eErgDN.js} +1 -1
- package/web-shell/assets/{chunk-AQP2D5EJ-BwHCMRQ0.js → chunk-AQP2D5EJ-DFtVW-Is.js} +1 -1
- package/web-shell/assets/{chunk-FMBD7UC4-BMyPH-ku.js → chunk-FMBD7UC4-CJPyxIg9.js} +1 -1
- package/web-shell/assets/{chunk-ND2GUHAM-BNKTstUf.js → chunk-ND2GUHAM-Bk-xgj6M.js} +1 -1
- package/web-shell/assets/{chunk-QZHKN3VN-gD3vsFId.js → chunk-QZHKN3VN-p3Y4yaFB.js} +1 -1
- package/web-shell/assets/classDiagram-4FO5ZUOK-BFdyQ52h.js +1 -0
- package/web-shell/assets/classDiagram-v2-Q7XG4LA2-BFdyQ52h.js +1 -0
- package/web-shell/assets/{cose-bilkent-S5V4N54A-BG9FAsXE.js → cose-bilkent-S5V4N54A-BCMO6Js3.js} +1 -1
- package/web-shell/assets/{dagre-BM42HDAG-Cy1sR7om.js → dagre-BM42HDAG-DUMrwASf.js} +1 -1
- package/web-shell/assets/default-aEtf0G7-.svg +1 -0
- package/web-shell/assets/{diagram-2AECGRRQ-Bxi1I_Vu.js → diagram-2AECGRRQ-C5d7qJbL.js} +1 -1
- package/web-shell/assets/{diagram-5GNKFQAL-BGCJjO6y.js → diagram-5GNKFQAL-CjLzMhbT.js} +1 -1
- package/web-shell/assets/{diagram-KO2AKTUF-CMTeLXp7.js → diagram-KO2AKTUF-RCoNWeAm.js} +1 -1
- package/web-shell/assets/{diagram-LMA3HP47-BN1wyAGh.js → diagram-LMA3HP47-KThXjaNV.js} +1 -1
- package/web-shell/assets/{diagram-OG6HWLK6-UYSG_zcp.js → diagram-OG6HWLK6-DKsC2BWz.js} +1 -1
- package/web-shell/assets/{erDiagram-TEJ5UH35-DqXL08lw.js → erDiagram-TEJ5UH35-DJ2ukmq0.js} +1 -1
- package/web-shell/assets/{flowDiagram-I6XJVG4X-BPJ9SFji.js → flowDiagram-I6XJVG4X-zzqaARRX.js} +1 -1
- package/web-shell/assets/{ganttDiagram-6RSMTGT7-BEd9Pnms.js → ganttDiagram-6RSMTGT7-kFUg-gqT.js} +1 -1
- package/web-shell/assets/{gitGraphDiagram-PVQCEYII-DrNRH3oi.js → gitGraphDiagram-PVQCEYII-C6JnMVzD.js} +1 -1
- package/web-shell/assets/index-B3XUm7dw.js +713 -0
- package/web-shell/assets/index-CHmzAWys.css +5 -0
- package/web-shell/assets/{infoDiagram-5YYISTIA-CFYBrkVI.js → infoDiagram-5YYISTIA-XqPVhp89.js} +1 -1
- package/web-shell/assets/insert-DmRbh9Rv.svg +1 -0
- package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-Dxsddth7.js → ishikawaDiagram-YF4QCWOH-D2k8sGpf.js} +1 -1
- package/web-shell/assets/{journeyDiagram-JHISSGLW-DxaDK80t.js → journeyDiagram-JHISSGLW-CQEST1GE.js} +1 -1
- package/web-shell/assets/{kanban-definition-UN3LZRKU-Q0jQCOct.js → kanban-definition-UN3LZRKU-DZ7kqVBC.js} +1 -1
- package/web-shell/assets/{linear-DGGM2kcP.js → linear-B6C_6q_E.js} +1 -1
- package/web-shell/assets/{mermaid.core-ByoxnWut.js → mermaid.core-CsyNP1qt.js} +5 -5
- package/web-shell/assets/{mindmap-definition-RKZ34NQL-C0ZseHsi.js → mindmap-definition-RKZ34NQL-B1VDIzJq.js} +1 -1
- package/web-shell/assets/{pieDiagram-4H26LBE5-MQXNhl5A.js → pieDiagram-4H26LBE5-DN0E7Jwu.js} +1 -1
- package/web-shell/assets/{quadrantDiagram-W4KKPZXB-DIR4ee2A.js → quadrantDiagram-W4KKPZXB-UKTQdHKm.js} +1 -1
- package/web-shell/assets/queue-DWpnpFgW.svg +1 -0
- package/web-shell/assets/{requirementDiagram-4Y6WPE33-BTR0UdYQ.js → requirementDiagram-4Y6WPE33-BRGceQvN.js} +1 -1
- package/web-shell/assets/{sankeyDiagram-5OEKKPKP-sfnhMELN.js → sankeyDiagram-5OEKKPKP-2DDyu41v.js} +1 -1
- package/web-shell/assets/{sequenceDiagram-3UESZ5HK-DXczHOHH.js → sequenceDiagram-3UESZ5HK-CT5iE8ZU.js} +1 -1
- package/web-shell/assets/{stateDiagram-AJRCARHV-DdE_KQFH.js → stateDiagram-AJRCARHV-CqMQ_s4G.js} +1 -1
- package/web-shell/assets/stateDiagram-v2-BHNVJYJU-CamhV5pM.js +1 -0
- package/web-shell/assets/{timeline-definition-PNZ67QCA-DIc61uE8.js → timeline-definition-PNZ67QCA-Di37QSZU.js} +1 -1
- package/web-shell/assets/{vennDiagram-CIIHVFJN-BF7ODmxB.js → vennDiagram-CIIHVFJN-DCXvpz5S.js} +1 -1
- package/web-shell/assets/{wardley-L42UT6IY-3pc1MEaw.js → wardley-L42UT6IY-CpUCk6OX.js} +1 -1
- package/web-shell/assets/{wardleyDiagram-YWT4CUSO-9jnPcZuP.js → wardleyDiagram-YWT4CUSO-D01pVEBg.js} +1 -1
- package/web-shell/assets/{xychartDiagram-2RQKCTM6-DcthaZK6.js → xychartDiagram-2RQKCTM6-DOu5JDoz.js} +1 -1
- package/web-shell/index.html +2 -2
- package/chunks/chunk-B6HQGTYR.js +0 -410
- package/chunks/chunk-R2BXK7SX.js +0 -13
- package/chunks/chunk-RKIZXJMB.js +0 -13
- package/chunks/nonInteractiveCli-7575LBXP.js +0 -91
- package/chunks/workspace-service-OM5D4OI2.js +0 -60
- package/web-shell/assets/channel-DYPNiTww.js +0 -1
- package/web-shell/assets/classDiagram-4FO5ZUOK-p_g25Tni.js +0 -1
- package/web-shell/assets/classDiagram-v2-Q7XG4LA2-p_g25Tni.js +0 -1
- package/web-shell/assets/index-CpOXWDPh.js +0 -714
- package/web-shell/assets/index-oVK7qhre.css +0 -5
- package/web-shell/assets/stateDiagram-v2-BHNVJYJU-BHUSEndU.js +0 -1
|
@@ -22,9 +22,9 @@ These commands help you save, restore, and summarize work progress.
|
|
|
22
22
|
| ---------------- | ------------------------------------------------------------------------ | ------------------------------------------------------------- |
|
|
23
23
|
| `/init` | Analyze current directory and create initial context file | `/init` |
|
|
24
24
|
| `/summary` | Generate project summary based on conversation history | `/summary` |
|
|
25
|
-
| `/compress` | Replace chat history with summary to save Tokens | `/compress`
|
|
25
|
+
| `/compress` | Replace chat history with summary to save Tokens | `/compress` or `/summarize` |
|
|
26
26
|
| `/compress-fast` | Fast compression without AI — strips old tool outputs and thinking parts | `/compress-fast` |
|
|
27
|
-
| `/resume` | Resume a previous conversation session | `/resume`
|
|
27
|
+
| `/resume` | Resume a previous conversation session | `/resume` or `/continue` |
|
|
28
28
|
| `/recap` | Generate a one-line session recap now | `/recap` |
|
|
29
29
|
| `/restore` | Revert project files to the checkpoint before a tool call ran | `/restore` (list) or `/restore <ID>` |
|
|
30
30
|
| `/delete` | Delete a previous session | `/delete` |
|
|
@@ -34,26 +34,30 @@ These commands help you save, restore, and summarize work progress.
|
|
|
34
34
|
| `/export` | Export session history to file | `/export html`, `/export md`, `/export json`, `/export jsonl` |
|
|
35
35
|
| `/rename` | Rename or tag the current session | `/rename My Feature` or `/tag` |
|
|
36
36
|
|
|
37
|
+
> [!note]
|
|
38
|
+
>
|
|
39
|
+
> `/summarize` is an alias for `/compress` (it compresses chat history — a destructive operation). To generate a non-destructive project summary instead, use `/summary`.
|
|
40
|
+
|
|
37
41
|
### 1.2 Interface and Workspace Control
|
|
38
42
|
|
|
39
43
|
Commands for adjusting interface appearance and work environment.
|
|
40
44
|
|
|
41
|
-
| Command | Description | Usage Examples
|
|
42
|
-
| -------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
43
|
-
| `/clear` | Clear
|
|
44
|
-
| `/context` | Show context window usage breakdown | `/context`
|
|
45
|
-
| → `detail` | Show per-item context usage breakdown | `/context detail`
|
|
46
|
-
| `/history` | Control history display preferences and visibility
|
|
47
|
-
| `/diff` | Open an interactive diff viewer showing uncommitted changes and per-turn diffs. Use ←/→ to switch between current git diff and individual conversation turns, ↑/↓ to browse files | `/diff`
|
|
48
|
-
| `/theme` | Change Qwen Code visual theme | `/theme`
|
|
49
|
-
| `/vim` | Turn input area Vim editing mode on/off | `/vim`
|
|
50
|
-
| `/voice` | Toggle voice dictation input | `/voice`, `/voice status`
|
|
51
|
-
| `/directory` | Manage multi-directory support workspace | `/dir add ./src,./tests`
|
|
52
|
-
| `/cd` | Move this session to a new working directory | `/cd ../other-project`
|
|
53
|
-
| `/editor` | Open dialog to select supported editor | `/editor`
|
|
54
|
-
| `/statusline` | Open interactive [status line](./status-line.md) preset dialog | `/statusline`
|
|
55
|
-
| `/statusline <text>` | Generate a command-mode [status line](./status-line.md) via agent | `/statusline show model and git branch`
|
|
56
|
-
| `/terminal-setup` | Configure terminal keybindings for multiline input | `/terminal-setup`
|
|
45
|
+
| Command | Description | Usage Examples |
|
|
46
|
+
| -------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- |
|
|
47
|
+
| `/clear` | Clear conversation history and free up context | `/clear`, `/reset`, `/new` |
|
|
48
|
+
| `/context` | Show context window usage breakdown | `/context` |
|
|
49
|
+
| → `detail` | Show per-item context usage breakdown | `/context detail` |
|
|
50
|
+
| `/history` | Control history display preferences and visibility | `/history collapse-on-resume`, `/history expand-on-resume`, `/history expand-now` |
|
|
51
|
+
| `/diff` | Open an interactive diff viewer showing uncommitted changes and per-turn diffs. Use ←/→ to switch between current git diff and individual conversation turns, ↑/↓ to browse files | `/diff` |
|
|
52
|
+
| `/theme` | Change Qwen Code visual theme | `/theme` |
|
|
53
|
+
| `/vim` | Turn input area Vim editing mode on/off | `/vim` |
|
|
54
|
+
| `/voice` | Toggle voice dictation input | `/voice`, `/voice hold`, `/voice tap`, `/voice off`, `/voice status` |
|
|
55
|
+
| `/directory` | Manage multi-directory support workspace | `/dir add ./src,./tests`, `/dir show` |
|
|
56
|
+
| `/cd` | Move this session to a new working directory | `/cd ../other-project` |
|
|
57
|
+
| `/editor` | Open dialog to select supported editor | `/editor` |
|
|
58
|
+
| `/statusline` | Open interactive [status line](./status-line.md) preset dialog | `/statusline` |
|
|
59
|
+
| `/statusline <text>` | Generate a command-mode [status line](./status-line.md) via agent | `/statusline show model and git branch` |
|
|
60
|
+
| `/terminal-setup` | Configure terminal keybindings for multiline input | `/terminal-setup` |
|
|
57
61
|
|
|
58
62
|
### 1.3 Language Settings
|
|
59
63
|
|
|
@@ -72,36 +76,52 @@ Commands specifically for controlling interface and output language.
|
|
|
72
76
|
|
|
73
77
|
Commands for managing AI tools and models.
|
|
74
78
|
|
|
75
|
-
| Command | Description
|
|
76
|
-
| ---------------- |
|
|
77
|
-
| `/mcp` | List configured MCP servers and tools
|
|
78
|
-
| `/import-config` | Import MCP servers from Claude configs
|
|
79
|
-
| `/tools` | Display currently available tool list
|
|
80
|
-
| `/skills` | List and run available skills
|
|
81
|
-
| `/plan` | Switch to plan mode or exit plan mode
|
|
82
|
-
| `/approval-mode` | Change approval mode
|
|
83
|
-
|
|
|
84
|
-
|
|
|
85
|
-
|
|
|
86
|
-
|
|
|
87
|
-
|
|
|
88
|
-
| `/model` | Switch model used in current session
|
|
89
|
-
| `/model --fast` | Set a lighter model for prompt suggestions
|
|
90
|
-
| `/model --voice` | Set the model used for voice transcription
|
|
91
|
-
| `/extensions` |
|
|
92
|
-
|
|
|
93
|
-
|
|
|
94
|
-
|
|
|
95
|
-
|
|
|
96
|
-
| `/
|
|
97
|
-
| `/
|
|
98
|
-
| `/
|
|
99
|
-
| `/
|
|
100
|
-
| `/
|
|
101
|
-
| `/
|
|
102
|
-
| `/
|
|
103
|
-
| `/
|
|
104
|
-
| `/
|
|
79
|
+
| Command | Description | Usage Examples |
|
|
80
|
+
| ---------------- | ---------------------------------------------------- | --------------------------------------------------------------------------------------------------------- |
|
|
81
|
+
| `/mcp` | List configured MCP servers and tools | `/mcp`, `/mcp desc`, `/mcp nodesc`, `/mcp schema` |
|
|
82
|
+
| `/import-config` | Import MCP servers from Claude configs | `/import-config all`, `/import-config claude-code`, `/import-config claude-desktop --scope user\|project` |
|
|
83
|
+
| `/tools` | Display currently available tool list | `/tools`, `/tools desc` |
|
|
84
|
+
| `/skills` | List and run available skills | `/skills`, `/skills <name>` |
|
|
85
|
+
| `/plan` | Switch to plan mode or exit plan mode | `/plan`, `/plan <task>`, `/plan exit` |
|
|
86
|
+
| `/approval-mode` | Change the tool-approval mode (current session only) | `/approval-mode`, `/approval-mode auto-edit` |
|
|
87
|
+
| → `plan` | Analysis only, no execution (secure review) | `/approval-mode plan` |
|
|
88
|
+
| → `default` | Require approval for edits (daily use) | `/approval-mode default` |
|
|
89
|
+
| → `auto-edit` | Auto-approve edits (trusted environment) | `/approval-mode auto-edit` |
|
|
90
|
+
| → `auto` | Classifier-evaluated approval (autonomous) | `/approval-mode auto` |
|
|
91
|
+
| → `yolo` | Auto-approve everything (quick prototyping) | `/approval-mode yolo` |
|
|
92
|
+
| `/model` | Switch model used in current session | `/model`, `/model <model-id>` (switch immediately) |
|
|
93
|
+
| `/model --fast` | Set a lighter model for prompt suggestions | `/model --fast qwen3-coder-flash` |
|
|
94
|
+
| `/model --voice` | Set the model used for voice transcription | `/model --voice <model-id>` |
|
|
95
|
+
| `/extensions` | Manage extensions | `/extensions list`, `/extensions manage` |
|
|
96
|
+
| → `list` | List installed extensions | `/extensions list` |
|
|
97
|
+
| → `manage` | Manage installed extensions (interactive) | `/extensions manage` |
|
|
98
|
+
| → `explore` | Open extensions page in browser | `/extensions explore <Gemini\|ClaudeCode>` |
|
|
99
|
+
| → `install` | Install an extension from a git repo or path | `/extensions install <repo-or-path>` |
|
|
100
|
+
| `/memory` | Open the Memory Manager dialog | `/memory` |
|
|
101
|
+
| `/remember` | Save a durable memory | `/remember Prefer terse responses` |
|
|
102
|
+
| `/forget` | Remove matching entries from auto-memory | `/forget <query>` |
|
|
103
|
+
| `/dream` | Manually run auto-memory consolidation | `/dream` |
|
|
104
|
+
| `/hooks` | Manage Qwen Code hooks | `/hooks`, `/hooks list` |
|
|
105
|
+
| `/permissions` | Manage permission rules | `/permissions` |
|
|
106
|
+
| `/agents` | Manage subagents | `/agents manage`, `/agents create` |
|
|
107
|
+
| `/arena` | Manage Arena sessions | `/arena start`, `/arena stop`, `/arena status`, `/arena select` (alias `choose`) |
|
|
108
|
+
| `/goal` | Set a goal — keep working until condition met | `/goal <condition>`, `/goal clear` |
|
|
109
|
+
| `/tasks` | List background tasks | `/tasks` |
|
|
110
|
+
| `/workflows` | Inspect workflow runs | `/workflows`, `/workflows <runId>` |
|
|
111
|
+
| `/lsp` | Show LSP server status | `/lsp` |
|
|
112
|
+
| `/trust` | Manage folder trust settings | `/trust` |
|
|
113
|
+
|
|
114
|
+
> [!warning]
|
|
115
|
+
>
|
|
116
|
+
> Only install extensions (`/extensions install`) from sources you trust. Extensions can bundle MCP servers, skills, and commands that run with the same permissions as Qwen Code itself — they can access your files, API keys, and conversation data. `/extensions install` does not prompt for confirmation.
|
|
117
|
+
|
|
118
|
+
> [!warning]
|
|
119
|
+
>
|
|
120
|
+
> The `auto-edit`, `auto`, and `yolo` approval modes bypass approval prompts for tool executions. In `yolo` mode, all actions — including shell commands, file writes, and network requests — run without confirmation. Only use these modes in trusted, sandboxed, or disposable environments.
|
|
121
|
+
|
|
122
|
+
> [!note]
|
|
123
|
+
>
|
|
124
|
+
> `/workflows`, `/lsp`, and `/trust` are registered only when their feature is enabled — via the `QWEN_CODE_ENABLE_WORKFLOWS=1` env var, the `--experimental-lsp` CLI flag, and the `security.folderTrust.enabled` setting respectively. When disabled they won't appear and will report an unknown command.
|
|
105
125
|
|
|
106
126
|
### 1.5 Built-in Skills
|
|
107
127
|
|
|
@@ -291,43 +311,54 @@ In headless (`--prompt`) or non-interactive contexts, `/diff` prints a plain-tex
|
|
|
291
311
|
|
|
292
312
|
Commands for obtaining information and performing system settings.
|
|
293
313
|
|
|
294
|
-
| Command
|
|
295
|
-
|
|
|
296
|
-
| `/help`
|
|
297
|
-
| `/status`
|
|
298
|
-
| `/status paths`
|
|
299
|
-
| `/stats`
|
|
300
|
-
| `/stats model`
|
|
301
|
-
| `/stats tools`
|
|
302
|
-
| `/
|
|
303
|
-
| `/
|
|
304
|
-
| `/
|
|
305
|
-
| `/
|
|
306
|
-
| `/
|
|
307
|
-
| `/
|
|
308
|
-
| `/
|
|
309
|
-
|
|
|
310
|
-
|
|
|
311
|
-
|
|
|
314
|
+
| Command | Description | Usage Examples |
|
|
315
|
+
| ---------------- | ------------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------- |
|
|
316
|
+
| `/help` | Display help information for available commands | `/help` or `/?` |
|
|
317
|
+
| `/status` | Display version information | `/status` or `/about` |
|
|
318
|
+
| `/status paths` | Display current session file and log paths | `/status paths` |
|
|
319
|
+
| `/stats` | Open the interactive usage statistics dashboard (Session, Activity, and Efficiency tabs) | `/stats` or `/usage` |
|
|
320
|
+
| `/stats model` | Show per-model token breakdown and estimated cost | `/stats model` |
|
|
321
|
+
| `/stats tools` | Show per-tool call counts | `/stats tools` |
|
|
322
|
+
| `/stats skills` | Show per-skill call counts for the current live session (live only; excludes cross-session daily/monthly activity) | `/stats skills` |
|
|
323
|
+
| `/stats daily` | Show daily token usage statistics | `/stats daily` (alias `day`), `/stats day [YYYY-MM-DD]` |
|
|
324
|
+
| `/stats monthly` | Show monthly token usage statistics | `/stats monthly` (alias `month`), `/stats month [YYYY-MM]` |
|
|
325
|
+
| `/stats export` | Export usage statistics to CSV or JSON | `/stats export <daily\|monthly> [date\|month] [--format csv\|json] [--output path]` |
|
|
326
|
+
| `/settings` | Open settings editor | `/settings` |
|
|
327
|
+
| `/auth` | Change authentication method | `/auth`, `/connect`, `/login` |
|
|
328
|
+
| `/doctor` | Run installation and environment diagnostics | `/doctor`, `/doctor memory` |
|
|
329
|
+
| → `memory` | Show current process memory diagnostics | `/doctor memory [--json] [--sample] [--snapshot]` |
|
|
330
|
+
| → `cpu-profile` | Record a CPU profile for Chrome DevTools analysis | `/doctor cpu-profile [--duration <seconds>]` |
|
|
331
|
+
| → `rollback` | Roll back the standalone CLI binary to the previous version (standalone installs only; for conversation history use `/rewind`) | `/doctor rollback` |
|
|
332
|
+
| `/docs` | Open full Qwen Code documentation in browser | `/docs` |
|
|
333
|
+
| `/ide` | Manage IDE integration | `/ide status`, `/ide install`, `/ide enable`, `/ide disable` |
|
|
334
|
+
| `/insight` | Generate programming insights from chat history | `/insight` |
|
|
335
|
+
| `/setup-github` | Set up GitHub Actions | `/setup-github` |
|
|
336
|
+
| `/bug` | Submit issue about Qwen Code | `/bug Button click unresponsive` |
|
|
337
|
+
| `/copy` | Copy to clipboard: reply (Nth-last), code (by lang), LaTeX, or Mermaid | `/copy`, `/copy 2`, `/copy python`, `/copy latex`, `/copy mermaid` |
|
|
338
|
+
| `/quit` | Exit Qwen Code immediately | `/quit` or `/exit` |
|
|
339
|
+
|
|
340
|
+
> [!warning]
|
|
341
|
+
>
|
|
342
|
+
> `/doctor memory --snapshot` writes a V8 heap snapshot that may contain prompts, file contents, API keys, and tool results from the current session. Review the file before sharing it.
|
|
312
343
|
|
|
313
344
|
### 1.10 Common Shortcuts
|
|
314
345
|
|
|
315
|
-
| Shortcut | Function | Note
|
|
316
|
-
| ------------------ | ----------------------- |
|
|
317
|
-
| `Ctrl/cmd+L` | Clear screen |
|
|
318
|
-
| `Ctrl/cmd+T` | Toggle tool description | MCP tool management
|
|
319
|
-
| `Ctrl/cmd+C`×2 | Exit confirmation | Secure exit mechanism
|
|
320
|
-
| `Ctrl/cmd+Z` | Undo input | Text editing
|
|
321
|
-
| `Ctrl/cmd+Shift+Z` | Redo input | Text editing
|
|
346
|
+
| Shortcut | Function | Note |
|
|
347
|
+
| ------------------ | ----------------------- | ------------------------------------------------------------------------- |
|
|
348
|
+
| `Ctrl/cmd+L` | Clear screen | Clears the visible screen only (does not reset the session like `/clear`) |
|
|
349
|
+
| `Ctrl/cmd+T` | Toggle tool description | MCP tool management |
|
|
350
|
+
| `Ctrl/cmd+C`×2 | Exit confirmation | Secure exit mechanism |
|
|
351
|
+
| `Ctrl/cmd+Z` | Undo input | Text editing |
|
|
352
|
+
| `Ctrl/cmd+Shift+Z` | Redo input | Text editing |
|
|
322
353
|
|
|
323
354
|
### 1.11 Authentication Commands
|
|
324
355
|
|
|
325
356
|
Use `/auth` inside a Qwen Code session to configure authentication. Use `/doctor` to inspect the current authentication and environment status.
|
|
326
357
|
|
|
327
|
-
| Command | Description
|
|
328
|
-
| --------- |
|
|
329
|
-
| `/auth` | Configure authentication interactively
|
|
330
|
-
| `/doctor` | Show authentication and environment checks
|
|
358
|
+
| Command | Description |
|
|
359
|
+
| --------- | ---------------------------------------------------------------------- |
|
|
360
|
+
| `/auth` | Configure authentication interactively (aliases: `/connect`, `/login`) |
|
|
361
|
+
| `/doctor` | Show authentication and environment checks |
|
|
331
362
|
|
|
332
363
|
> [!note]
|
|
333
364
|
>
|
|
@@ -566,10 +566,15 @@ Hook output supports three categories of fields:
|
|
|
566
566
|
```json
|
|
567
567
|
{
|
|
568
568
|
"stop_hook_active": "boolean indicating if stop hook is active",
|
|
569
|
-
"last_assistant_message": "the last message from the assistant"
|
|
569
|
+
"last_assistant_message": "the last message from the assistant",
|
|
570
|
+
"context_usage": "ratio of context window used (may exceed 1 when tokens exceed window; optional)",
|
|
571
|
+
"context_limit": "context window size in tokens (optional)",
|
|
572
|
+
"input_tokens": "prompt token count (may include output tokens depending on provider; optional)"
|
|
570
573
|
}
|
|
571
574
|
```
|
|
572
575
|
|
|
576
|
+
The `context_usage`, `context_limit`, and `input_tokens` fields allow hook scripts to observe context usage and implement custom compact strategies — for example, a script that prints a reminder to run `/compact` when usage exceeds a custom threshold.
|
|
577
|
+
|
|
573
578
|
**Output Options**:
|
|
574
579
|
|
|
575
580
|
- `decision`: "allow", "deny", "block", or "ask"
|
|
@@ -116,6 +116,58 @@ You can also set them in `~/.qwen/settings.json` (applies to all projects) or `.
|
|
|
116
116
|
}
|
|
117
117
|
```
|
|
118
118
|
|
|
119
|
+
### Team memory (shared with collaborators)
|
|
120
|
+
|
|
121
|
+
By default, auto-memory is **private to you** — it lives under your home directory and is never shared. Team memory is an opt-in tier that the whole team shares **through git**.
|
|
122
|
+
|
|
123
|
+
When enabled, Qwen gains a third memory directory at `.qwen/team-memory/` **inside the repository**. It uses the same one-file-per-memory layout and `MEMORY.md` index as the private tiers. Because it is committed to the repo, it is shared with every collaborator the normal way: you `git pull` to receive teammates' memories and commit/push to share yours. Qwen routes durable, project-wide knowledge here — conventions every contributor must follow, shared reference pointers (trackers, dashboards) — while personal and fast-decaying notes stay private.
|
|
124
|
+
|
|
125
|
+
Enable it per project (or globally) in `settings.json`:
|
|
126
|
+
|
|
127
|
+
```json
|
|
128
|
+
{
|
|
129
|
+
"memory": {
|
|
130
|
+
"enableTeamMemory": true
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
It is **off by default**. Keep these caveats in mind:
|
|
136
|
+
|
|
137
|
+
- **It is source-controlled and visible to everyone with repo access.** Treat a team memory like committing to the repo.
|
|
138
|
+
- **Secrets are blocked.** Writes to `.qwen/team-memory/` are scanned for credentials (API keys, tokens, private keys); a detected secret is rejected, never written. The scan is a backstop, not a guarantee — don't put sensitive data there.
|
|
139
|
+
- **Changes are reviewable.** Team memory writes appear in `git status` / the PR diff like any other file, so they can be reviewed before they're committed. In the default approval mode Qwen also asks before each team write; in `AUTO_EDIT`/YOLO mode (where you've opted into auto-approval) they are applied without a prompt but still surface in the diff.
|
|
140
|
+
- **The directory must be git-tracked.** If your project's `.gitignore` excludes `.qwen/*`, re-include the path so it can be shared:
|
|
141
|
+
|
|
142
|
+
```gitignore
|
|
143
|
+
!.qwen/team-memory/
|
|
144
|
+
!.qwen/team-memory/**
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
Caveat: use the file-glob ignore form (`.qwen/*`), not a directory form with a trailing slash (`.qwen/`). A directory-form ignore makes git skip the folder entirely, so a `!`-reinclude below it is a no-op and the team tier stays silently empty in git. Qwen warns once at startup when the tier is enabled but its directory is git-ignored or outside any git repository, so this misconfiguration does not pass unnoticed.
|
|
148
|
+
|
|
149
|
+
`QWEN_CODE_MEMORY_TEAM=1` / `=0` overrides the setting for a single run.
|
|
150
|
+
|
|
151
|
+
### Automatic git sync (optional)
|
|
152
|
+
|
|
153
|
+
By default you share team memory with the normal git workflow (`pull` to receive, `commit`/`push` to share). To have Qwen do it for you, enable sync:
|
|
154
|
+
|
|
155
|
+
```json
|
|
156
|
+
{
|
|
157
|
+
"memory": {
|
|
158
|
+
"enableTeamMemory": true,
|
|
159
|
+
"enableTeamMemorySync": true
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
When on, at session start Qwen best-effort syncs the `.qwen/team-memory/` directory: it rebuilds the shared `MEMORY.md` index, fast-forward-pulls collaborators' updates **first**, then commits your team-memory changes on top, and pushes **only that sync commit** (via an explicit single-branch refspec) — so the index you load reflects the latest. It only **stages** the team directory (your other working changes are never committed), and never blocks the session on a git failure. Off by default. `QWEN_CODE_MEMORY_TEAM_SYNC=1` / `=0` overrides the setting for a single run.
|
|
165
|
+
|
|
166
|
+
Two things to know before enabling it:
|
|
167
|
+
|
|
168
|
+
- **The fast-forward pull acts on your whole current branch, not just `.qwen/team-memory/`** (git has no path-scoped pull). So sync will fast-forward your branch to the remote tip. The push, by contrast, is scoped: it publishes **only the commit this sync just created**, so it never pushes other unpushed commits you have — if your branch is already ahead of upstream, sync commits locally and skips the push. Enable it on branches where the fast-forward pull is fine — or run it on a dedicated checkout.
|
|
169
|
+
- **A diverged branch is left untouched** (`--ff-only` never merges). When that happens sync simply does nothing that session; resolve the divergence (`git pull`) and it resumes. A branch with no upstream (no tracking configuration) still commits locally but skips the push — there is nowhere to push to.
|
|
170
|
+
|
|
119
171
|
---
|
|
120
172
|
|
|
121
173
|
## Commands
|
|
@@ -86,9 +86,31 @@ The daemon also exposes read-only runtime snapshots for client UIs and
|
|
|
86
86
|
operators: `GET /daemon/status`, `GET /workspace/mcp`,
|
|
87
87
|
`GET /workspace/skills`, `GET /workspace/providers`, `GET /workspace/env`,
|
|
88
88
|
`GET /workspace/preflight`,
|
|
89
|
-
`GET /session/:id/
|
|
89
|
+
`GET /session/:id/status`, `GET /session/:id/context`,
|
|
90
|
+
`GET /session/:id/supported-commands`, and
|
|
90
91
|
`GET /session/:id/tasks`, and `GET /session/:id/lsp`.
|
|
91
92
|
|
|
93
|
+
`GET /session/:id/status` returns the live bridge summary for a single session:
|
|
94
|
+
`sessionId`, `workspaceCwd`, `createdAt`, optional `displayName`, `clientCount`,
|
|
95
|
+
and `hasActivePrompt`. It answers `200` with the summary when the daemon holds a
|
|
96
|
+
live session with that id, and `404` (body `{ "error": …, "sessionId": … }`)
|
|
97
|
+
otherwise. Use it to poll whether one known session is still running
|
|
98
|
+
(`hasActivePrompt`) or how many clients are attached (`clientCount`) without
|
|
99
|
+
fetching and scanning the whole paginated session list:
|
|
100
|
+
|
|
101
|
+
```bash
|
|
102
|
+
curl http://127.0.0.1:4170/session/$SESSION_ID/status
|
|
103
|
+
# → {"sessionId":"…","workspaceCwd":"…","createdAt":"…","clientCount":1,"hasActivePrompt":false}
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
This is the raw live-session view, so `clientCount` and `hasActivePrompt` match
|
|
107
|
+
the corresponding entry in `GET /workspace/:id/sessions` — but the two routes
|
|
108
|
+
are not byte-identical. The list endpoint enriches each item with persisted
|
|
109
|
+
session-store data: its `createdAt` is the persisted first-prompt time, and it
|
|
110
|
+
adds `updatedAt` plus a `displayName` derived from the stored title or first
|
|
111
|
+
prompt. `/status` instead reports the live session's own `createdAt`, omits
|
|
112
|
+
`updatedAt`, and returns `displayName` only when one is set on the live session.
|
|
113
|
+
|
|
92
114
|
`GET /session/:id/lsp` returns structured per-session LSP status. Start the
|
|
93
115
|
daemon with `--experimental-lsp` to enable LSP in spawned agent sessions;
|
|
94
116
|
otherwise the route returns `enabled: false` with no servers.
|
|
@@ -238,7 +260,7 @@ The token comparison is constant-time (SHA-256 + `crypto.timingSafeEqual`); 401
|
|
|
238
260
|
| `--http-bridge` | `true` | Stage 1 mode: one `qwen --acp` child per daemon (bound to one workspace at boot, per [#3803](https://github.com/QwenLM/qwen-code/issues/3803) §02); N sessions multiplex onto that child via ACP `newSession()`. Stage 2 native in-process becomes available later. |
|
|
239
261
|
| `--allow-origin <pat>` | — | T2.4 ([#4514](https://github.com/QwenLM/qwen-code/issues/4514)). Cross-origin allowlist for browser webui clients. Repeatable. Each value is `*` (any origin — boot refuses if no bearer token is configured; `--require-auth` on loopback is recommended so `/health` and `/demo` are also bearer-gated, since both are pre-auth on loopback by default) or a canonical URL origin (`<scheme>://<host>[:<port>]`, no trailing slash / path / userinfo / query). **Subdomain wildcards (`https://*.example.com`) are intentionally unsupported** — list each subdomain explicitly, or use `*` with a configured token (and `--require-auth` for full hardening). Matched origins receive CORS response headers (`Access-Control-Allow-Origin`, `Vary: Origin`, methods, headers, max-age, and exposed `Retry-After`); unmatched origins still get a 403 with the same envelope as today's wall. `Origin: null` (sandboxed iframes, file:// docs) is always rejected, even under `*`. Pre-flight via `caps.features.allow_origin`. Loopback self-origin hits are unaffected. |
|
|
240
262
|
| `--web` / `--no-web` | `true` | Serve the built Web Shell SPA at the daemon root (`GET /`, `/assets/*`, and SPA deep-link fallback). The static shell is registered **before** the bearer-auth gate — a browser can't attach a token to a `<script>` subresource or an address-bar navigation, the shell carries no secrets, and every API route stays token-gated regardless. On non-loopback binds a one-line stderr warning notes the UI is reachable without auth. Use `--no-web` for an API-only daemon. No effect when the build omits the Web Shell assets (the daemon logs a breadcrumb and runs API-only). |
|
|
241
|
-
| `--open` | `false` | After the listener is up, open the Web Shell in your default browser at the daemon URL (with `#token=` appended as a URL fragment when a token is configured — a fragment is never sent to the server, keeping the token out of access logs and Referer headers). No-op with `--no-web`, or in headless / CI / SSH environments where no browser is available.
|
|
263
|
+
| `--open` | `false` | After the listener is up, open the Web Shell in your default browser at the daemon URL (with `#token=` appended as a URL fragment when a token is configured — a fragment is never sent to the server, keeping the token out of access logs and Referer headers). No-op with `--no-web`, or in headless / CI / SSH environments where no browser is available. |
|
|
242
264
|
|
|
243
265
|
> **Sizing the load knobs.** `--max-sessions` is the **new-child** cap.
|
|
244
266
|
> Three other layers also limit load — when sizing for a high-concurrency
|
|
@@ -4,11 +4,12 @@ Qwen Code is an open-source AI coding assistant tool maintained by the Qwen Code
|
|
|
4
4
|
|
|
5
5
|
## How to determine your authentication method
|
|
6
6
|
|
|
7
|
-
Qwen Code supports
|
|
7
|
+
Qwen Code supports four authentication methods to access AI models. Your authentication method determines which terms of service and privacy policies apply to your usage:
|
|
8
8
|
|
|
9
9
|
1. **Qwen OAuth** — Log in with your qwen.ai account (free tier discontinued 2026-04-15)
|
|
10
10
|
2. **Alibaba Cloud Coding Plan** — Use an API key from Alibaba Cloud
|
|
11
11
|
3. **API Key** — Bring your own API key
|
|
12
|
+
4. **Vertex AI** — Use Google Cloud Vertex AI
|
|
12
13
|
|
|
13
14
|
For each authentication method, different Terms of Service and Privacy Notices may apply depending on the underlying service provider.
|
|
14
15
|
|
|
@@ -17,6 +18,7 @@ For each authentication method, different Terms of Service and Privacy Notices m
|
|
|
17
18
|
| Qwen OAuth | Qwen AI | [Qwen Terms of Service](https://qwen.ai/termsservice) | [Qwen Privacy Policy](https://qwen.ai/privacypolicy) |
|
|
18
19
|
| Alibaba Cloud Coding Plan | Alibaba Cloud | See [details below](#2-if-you-are-using-alibaba-cloud-coding-plan) | See [details below](#2-if-you-are-using-alibaba-cloud-coding-plan) |
|
|
19
20
|
| API Key | Various Providers | Depends on your chosen API provider (OpenAI, Anthropic, etc.) | Depends on your chosen API provider |
|
|
21
|
+
| Vertex AI | Google Cloud | [Google Cloud Terms](https://cloud.google.com/terms) | [Google Cloud Privacy](https://cloud.google.com/privacy) |
|
|
20
22
|
|
|
21
23
|
## 1. If you are using Qwen OAuth Authentication
|
|
22
24
|
|
|
@@ -50,6 +52,14 @@ When you authenticate using API keys from other providers, the applicable Terms
|
|
|
50
52
|
|
|
51
53
|
Qwen Code supports various OpenAI-compatible providers. Please refer to your specific provider's terms of service and privacy policy for detailed information.
|
|
52
54
|
|
|
55
|
+
## 4. If you are using Vertex AI
|
|
56
|
+
|
|
57
|
+
When you authenticate with Google Cloud Vertex AI, the applicable Terms of Service and Privacy Notice are Google Cloud's.
|
|
58
|
+
|
|
59
|
+
> [!important]
|
|
60
|
+
>
|
|
61
|
+
> When using Vertex AI, you are subject to [Google Cloud's Terms of Service](https://cloud.google.com/terms) and [Google Cloud Privacy Notice](https://cloud.google.com/privacy), not Qwen Code's terms. Please review Google Cloud's documentation for specific details about data usage, retention, and privacy practices.
|
|
62
|
+
|
|
53
63
|
## Usage Statistics and Telemetry
|
|
54
64
|
|
|
55
65
|
Qwen Code may collect anonymous usage statistics and [telemetry](../../developers/development/telemetry) data to improve the user experience and product quality. This data collection is optional and can be controlled through configuration settings.
|
|
@@ -67,6 +77,7 @@ When enabled, Qwen Code may collect:
|
|
|
67
77
|
- **Qwen OAuth:** Usage statistics are governed by Qwen's privacy policy. You can opt-out through Qwen Code's configuration settings.
|
|
68
78
|
- **Alibaba Cloud Coding Plan:** Usage statistics are governed by Alibaba Cloud's privacy policy. You can opt-out through Qwen Code's configuration settings.
|
|
69
79
|
- **API Key:** No additional data is collected by Qwen Code beyond what your chosen API provider collects.
|
|
80
|
+
- **Vertex AI:** Usage statistics are governed by Google Cloud's privacy policy. No additional data is collected by Qwen Code beyond what Google Cloud collects.
|
|
70
81
|
|
|
71
82
|
## Frequently Asked Questions (FAQ)
|
|
72
83
|
|
|
@@ -74,12 +85,14 @@ When enabled, Qwen Code may collect:
|
|
|
74
85
|
|
|
75
86
|
Whether your code, including prompts and answers, is used to train AI models depends on your authentication method and the specific AI service provider you use:
|
|
76
87
|
|
|
77
|
-
- **Qwen OAuth**: Data usage is governed by [Qwen's Privacy Policy](https://qwen.ai/
|
|
88
|
+
- **Qwen OAuth**: Data usage is governed by [Qwen's Privacy Policy](https://qwen.ai/privacypolicy). Please refer to their policy for specific details about data collection and model training practices.
|
|
78
89
|
|
|
79
90
|
- **Alibaba Cloud Coding Plan**: Data usage is governed by Alibaba Cloud's privacy policy. Please refer to their policy for specific details about data collection and model training practices.
|
|
80
91
|
|
|
81
92
|
- **API Key**: Data usage depends entirely on your chosen API provider. Each provider has their own data usage policies. Please review the privacy policy and terms of service of your specific provider.
|
|
82
93
|
|
|
94
|
+
- **Vertex AI**: Data usage is governed by [Google Cloud's Terms of Service](https://cloud.google.com/terms) and [Privacy Notice](https://cloud.google.com/privacy). Please review Google Cloud's policies for specific details about data collection and model training practices.
|
|
95
|
+
|
|
83
96
|
**Important**: Qwen Code itself does not use your prompts, code, or responses for model training. Any data usage for training purposes would be governed by the policies of the AI service provider you authenticate with.
|
|
84
97
|
|
|
85
98
|
### 2. What are Usage Statistics and what does the opt-out control?
|
|
@@ -103,7 +116,7 @@ The Usage Statistics setting only controls data collection by Qwen Code itself.
|
|
|
103
116
|
|
|
104
117
|
### 3. How do I switch between authentication methods?
|
|
105
118
|
|
|
106
|
-
You can switch between Qwen OAuth, Alibaba Cloud Coding Plan,
|
|
119
|
+
You can switch between Qwen OAuth, Alibaba Cloud Coding Plan, your own API key, and Vertex AI at any time:
|
|
107
120
|
|
|
108
121
|
1. **During startup**: Choose your preferred authentication method when prompted
|
|
109
122
|
2. **Within the CLI**: Use the `/auth` command to reconfigure your authentication method
|
|
@@ -20,6 +20,12 @@ This guide provides solutions to common issues and debugging tips, including top
|
|
|
20
20
|
- **Solution:** Set the `NODE_EXTRA_CA_CERTS` environment variable to the absolute path of your corporate root CA certificate file.
|
|
21
21
|
- Example: `export NODE_EXTRA_CA_CERTS=/path/to/your/corporate-ca.crt`
|
|
22
22
|
|
|
23
|
+
- **Error: `Connection error. (cause: fetch failed)` against a self-signed endpoint**
|
|
24
|
+
- **Cause:** You are pointing Qwen Code at a self-hosted server (for example a local model behind `https://`) whose TLS certificate is self-signed, so Node.js rejects it.
|
|
25
|
+
- **Solution:** Prefer trusting the certificate via `NODE_EXTRA_CA_CERTS` (above). If that is not practical in a trusted lab/private network, skip verification with the `--insecure` flag (or `QWEN_TLS_INSECURE=1`):
|
|
26
|
+
- Example: `qwen --insecure --openaiBaseUrl https://192.168.1.10:8080 ...`
|
|
27
|
+
- **Warning:** Disabling verification removes protection against man-in-the-middle attacks. Only use it for endpoints you fully trust.
|
|
28
|
+
|
|
23
29
|
- **Error: `Device authorization flow failed: fetch failed`**
|
|
24
30
|
- **Cause:** Node.js could not reach Qwen OAuth endpoints (often a proxy or SSL/TLS trust issue). When available, Qwen Code will also print the underlying error cause (for example: `UNABLE_TO_VERIFY_LEAF_SIGNATURE`). Note: this error is specific to the legacy Qwen OAuth flow.
|
|
25
31
|
- **Solution:**
|
|
@@ -4,53 +4,55 @@ import {
|
|
|
4
4
|
MINIMUM_MAX_HEIGHT,
|
|
5
5
|
MaxSizedBox,
|
|
6
6
|
setMaxSizedBoxDebugging
|
|
7
|
-
} from "./chunk-
|
|
8
|
-
import "./chunk-
|
|
7
|
+
} from "./chunk-EWYQFWYF.js";
|
|
8
|
+
import "./chunk-SMXULRAN.js";
|
|
9
|
+
import "./chunk-WQT5SOI6.js";
|
|
9
10
|
import "./chunk-KYMBIKIW.js";
|
|
10
|
-
import "./chunk-
|
|
11
|
-
import "./chunk-
|
|
11
|
+
import "./chunk-I4H7PRWQ.js";
|
|
12
|
+
import "./chunk-BSZEQNUA.js";
|
|
12
13
|
import "./chunk-TLRYABYP.js";
|
|
13
|
-
import "./chunk-
|
|
14
|
+
import "./chunk-RIP623NO.js";
|
|
14
15
|
import "./chunk-K5PGHDBN.js";
|
|
15
16
|
import "./chunk-5P5XGNYH.js";
|
|
16
17
|
import "./chunk-SKAZWEV5.js";
|
|
17
|
-
import "./chunk-
|
|
18
|
-
import "./chunk-
|
|
19
|
-
import "./chunk-
|
|
20
|
-
import "./chunk-
|
|
21
|
-
import "./chunk-
|
|
18
|
+
import "./chunk-XJYUPHRC.js";
|
|
19
|
+
import "./chunk-QLDPRILK.js";
|
|
20
|
+
import "./chunk-BVSVIN45.js";
|
|
21
|
+
import "./chunk-SBBN4BWR.js";
|
|
22
|
+
import "./chunk-7LM4XHPE.js";
|
|
22
23
|
import "./chunk-2MPVVENX.js";
|
|
23
24
|
import "./chunk-ZTQ26VBE.js";
|
|
24
|
-
import "./chunk-
|
|
25
|
+
import "./chunk-O2VBQ3Y2.js";
|
|
25
26
|
import "./chunk-MLZQVCF3.js";
|
|
26
27
|
import "./chunk-LQ7TMOCE.js";
|
|
27
28
|
import "./chunk-LD2XBG6Z.js";
|
|
28
|
-
import "./chunk-
|
|
29
|
-
import "./chunk-
|
|
30
|
-
import "./chunk-
|
|
31
|
-
import "./chunk-
|
|
32
|
-
import "./chunk-
|
|
29
|
+
import "./chunk-HYCC3XM3.js";
|
|
30
|
+
import "./chunk-NL4C3H6C.js";
|
|
31
|
+
import "./chunk-JOLIREYR.js";
|
|
32
|
+
import "./chunk-DDMOU62Q.js";
|
|
33
|
+
import "./chunk-SS6WJMQK.js";
|
|
33
34
|
import "./chunk-3PJXIDKI.js";
|
|
34
35
|
import "./chunk-UWCTAVOD.js";
|
|
35
36
|
import "./chunk-OFEVLU4C.js";
|
|
36
37
|
import "./chunk-OMX7CUOE.js";
|
|
37
|
-
import "./chunk-
|
|
38
|
-
import "./chunk-
|
|
39
|
-
import "./chunk-
|
|
40
|
-
import "./chunk-
|
|
41
|
-
import "./chunk-
|
|
42
|
-
import "./chunk-
|
|
38
|
+
import "./chunk-RD6YJJJ6.js";
|
|
39
|
+
import "./chunk-SKQZZVAV.js";
|
|
40
|
+
import "./chunk-BUUQ5HPX.js";
|
|
41
|
+
import "./chunk-BX5YO7UW.js";
|
|
42
|
+
import "./chunk-3CPCDXFR.js";
|
|
43
|
+
import "./chunk-GEHVIWAT.js";
|
|
43
44
|
import "./chunk-22IFUCVR.js";
|
|
44
|
-
import "./chunk-
|
|
45
|
-
import "./chunk-
|
|
46
|
-
import "./chunk-
|
|
47
|
-
import "./chunk-CGEGHF2C.js";
|
|
45
|
+
import "./chunk-3227DZO4.js";
|
|
46
|
+
import "./chunk-YTFBURQD.js";
|
|
47
|
+
import "./chunk-BKXBARJZ.js";
|
|
48
48
|
import "./chunk-IRJWHZWU.js";
|
|
49
49
|
import "./chunk-SYCJMSIJ.js";
|
|
50
50
|
import "./chunk-55ZMG67I.js";
|
|
51
51
|
import "./chunk-H6BD2ELD.js";
|
|
52
52
|
import "./chunk-5IFG2VC4.js";
|
|
53
|
-
import "./chunk-
|
|
53
|
+
import "./chunk-64WXLC72.js";
|
|
54
|
+
import "./chunk-E6XQPQXW.js";
|
|
55
|
+
import "./chunk-UX4SGCGN.js";
|
|
54
56
|
import "./chunk-ZERZSAZL.js";
|
|
55
57
|
import "./chunk-QN5NZ3UQ.js";
|
|
56
58
|
import "./chunk-BR4QREVK.js";
|