@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
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
"use strict";
|
|
3
3
|
import {
|
|
4
4
|
CAPABILITIES_SCHEMA_VERSION,
|
|
5
|
+
ClientMcpSenderRegistry,
|
|
5
6
|
SERVE_CAPABILITY_REGISTRY,
|
|
6
7
|
allowOriginCors,
|
|
7
8
|
allowOriginMode,
|
|
@@ -20,27 +21,29 @@ import {
|
|
|
20
21
|
positiveFiniteOrNull,
|
|
21
22
|
require_express,
|
|
22
23
|
resolveWebShellDir
|
|
23
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-MTJVHQDP.js";
|
|
24
25
|
import "./chunk-3HX5LZ6R.js";
|
|
25
26
|
import "./chunk-7RYW5LQV.js";
|
|
26
27
|
import {
|
|
27
28
|
getCliVersion
|
|
28
|
-
} from "./chunk-
|
|
29
|
+
} from "./chunk-KFVU7ODN.js";
|
|
30
|
+
import "./chunk-EWALXUAD.js";
|
|
29
31
|
import {
|
|
30
32
|
canonicalizeWorkspace
|
|
31
33
|
} from "./chunk-SEZC2725.js";
|
|
32
|
-
import {
|
|
33
|
-
writeStderrLine,
|
|
34
|
-
writeStdoutLine
|
|
35
|
-
} from "./chunk-Y6Z2O3WR.js";
|
|
36
34
|
import {
|
|
37
35
|
loadServeFastPathSettings,
|
|
38
36
|
preResolveServeFastPathHomeEnvOverrides
|
|
39
|
-
} from "./chunk-
|
|
37
|
+
} from "./chunk-KKQWC6WS.js";
|
|
40
38
|
import {
|
|
41
39
|
getGlobalQwenDirLite,
|
|
42
40
|
resolveConfigPathLite
|
|
43
|
-
} from "./chunk-
|
|
41
|
+
} from "./chunk-PPFWEV7G.js";
|
|
42
|
+
import {
|
|
43
|
+
writeStderrLine,
|
|
44
|
+
writeStdoutLine
|
|
45
|
+
} from "./chunk-Y6Z2O3WR.js";
|
|
46
|
+
import "./chunk-QYUE6W3T.js";
|
|
44
47
|
import "./chunk-5P5XGNYH.js";
|
|
45
48
|
import "./chunk-SKAZWEV5.js";
|
|
46
49
|
import "./chunk-UWCTAVOD.js";
|
|
@@ -347,6 +350,8 @@ __name(initDaemonLogger, "initDaemonLogger");
|
|
|
347
350
|
|
|
348
351
|
// packages/cli/src/serve/run-qwen-serve.ts
|
|
349
352
|
var QWEN_SERVER_TOKEN_ENV = "QWEN_SERVER_TOKEN";
|
|
353
|
+
var QWEN_SERVE_CLIENT_MCP_OVER_WS_ENV = "QWEN_SERVE_CLIENT_MCP_OVER_WS";
|
|
354
|
+
var QWEN_SERVE_CDP_TUNNEL_OVER_WS_ENV = "QWEN_SERVE_CDP_TUNNEL_OVER_WS";
|
|
350
355
|
var QWEN_SERVE_PROMPT_DEADLINE_MS_ENV = "QWEN_SERVE_PROMPT_DEADLINE_MS";
|
|
351
356
|
var QWEN_SERVE_WRITER_IDLE_TIMEOUT_MS_ENV = "QWEN_SERVE_WRITER_IDLE_TIMEOUT_MS";
|
|
352
357
|
var SHUTDOWN_FORCE_CLOSE_MS = 5e3;
|
|
@@ -515,7 +520,7 @@ function shouldPreheatBridge(deps) {
|
|
|
515
520
|
__name(shouldPreheatBridge, "shouldPreheatBridge");
|
|
516
521
|
var coreRuntimePromise;
|
|
517
522
|
function loadCoreRuntime() {
|
|
518
|
-
coreRuntimePromise ??= import("./src-
|
|
523
|
+
coreRuntimePromise ??= import("./src-IU5GDBEH.js");
|
|
519
524
|
return coreRuntimePromise;
|
|
520
525
|
}
|
|
521
526
|
__name(loadCoreRuntime, "loadCoreRuntime");
|
|
@@ -545,11 +550,13 @@ __name(resolveDaemonLogBaseDirForRun, "resolveDaemonLogBaseDirForRun");
|
|
|
545
550
|
var settingsRuntimePromise;
|
|
546
551
|
function loadSettingsRuntimeModules() {
|
|
547
552
|
settingsRuntimePromise ??= Promise.all([
|
|
548
|
-
import("./settings-
|
|
549
|
-
import("./loadedSettingsAdapter-
|
|
550
|
-
|
|
553
|
+
import("./settings-YJH32TFF.js"),
|
|
554
|
+
import("./loadedSettingsAdapter-P6KPNAG7.js"),
|
|
555
|
+
import("./trustedFolders-F7TBU5CD.js")
|
|
556
|
+
]).then(([settings, loadedSettingsAdapter, trustedFolders]) => ({
|
|
551
557
|
settings,
|
|
552
|
-
loadedSettingsAdapter
|
|
558
|
+
loadedSettingsAdapter,
|
|
559
|
+
trustedFolders
|
|
553
560
|
}));
|
|
554
561
|
return settingsRuntimePromise;
|
|
555
562
|
}
|
|
@@ -560,15 +567,17 @@ async function loadServeRuntimeModules() {
|
|
|
560
567
|
bridgeModule,
|
|
561
568
|
spawnChannelModule,
|
|
562
569
|
workspaceModule,
|
|
570
|
+
workspaceTypesModule,
|
|
563
571
|
daemonStatusProviderModule,
|
|
564
572
|
workspaceProvidersStatusModule
|
|
565
573
|
] = await Promise.all([
|
|
566
|
-
import("./server-
|
|
567
|
-
import("./bridge-
|
|
568
|
-
import("./spawnChannel-
|
|
569
|
-
import("./workspace-service-
|
|
570
|
-
import("./
|
|
571
|
-
import("./
|
|
574
|
+
import("./server-7PA5QGIA.js"),
|
|
575
|
+
import("./bridge-X42LXPTA.js"),
|
|
576
|
+
import("./spawnChannel-D6WVMFZJ.js"),
|
|
577
|
+
import("./workspace-service-VTG4G6CW.js"),
|
|
578
|
+
import("./types-QX5C3CHJ.js"),
|
|
579
|
+
import("./daemon-status-provider-5JAWZS4V.js"),
|
|
580
|
+
import("./workspace-providers-status-462QQKQM.js")
|
|
572
581
|
]);
|
|
573
582
|
return {
|
|
574
583
|
createServeApp: serverModule.createServeApp,
|
|
@@ -577,6 +586,7 @@ async function loadServeRuntimeModules() {
|
|
|
577
586
|
createAcpSessionBridge: bridgeModule.createAcpSessionBridge,
|
|
578
587
|
createSpawnChannelFactory: spawnChannelModule.createSpawnChannelFactory,
|
|
579
588
|
createDaemonWorkspaceService: workspaceModule.createDaemonWorkspaceService,
|
|
589
|
+
WorkspaceSettingsPartialPersistError: workspaceTypesModule.WorkspaceSettingsPartialPersistError,
|
|
580
590
|
createDaemonStatusProvider: daemonStatusProviderModule.createDaemonStatusProvider,
|
|
581
591
|
createWorkspaceProvidersStatusProvider: workspaceProvidersStatusModule.createWorkspaceProvidersStatusProvider
|
|
582
592
|
};
|
|
@@ -612,7 +622,11 @@ function currentServeFeaturesForRunQwenServe(opts, sessionShellCommandEnabled) {
|
|
|
612
622
|
persistSettingAvailable: true,
|
|
613
623
|
sessionShellCommandEnabled,
|
|
614
624
|
rateLimit: opts.rateLimit === true,
|
|
615
|
-
reloadAvailable: true
|
|
625
|
+
reloadAvailable: true,
|
|
626
|
+
// Advertise the same WS feature flags as the runtime path (serve-features.ts)
|
|
627
|
+
// so the bootstrap `/capabilities` window doesn't briefly under-report them.
|
|
628
|
+
clientMcpOverWsEnabled: opts.clientMcpOverWs === true,
|
|
629
|
+
cdpTunnelOverWsEnabled: opts.cdpTunnelOverWs === true
|
|
616
630
|
});
|
|
617
631
|
}
|
|
618
632
|
__name(currentServeFeaturesForRunQwenServe, "currentServeFeaturesForRunQwenServe");
|
|
@@ -952,7 +966,16 @@ async function runQwenServe(optsIn, deps = {}) {
|
|
|
952
966
|
...optsIn,
|
|
953
967
|
token,
|
|
954
968
|
promptDeadlineMs,
|
|
955
|
-
writerIdleTimeoutMs
|
|
969
|
+
writerIdleTimeoutMs,
|
|
970
|
+
// Reverse tool channel (issue #5626, Phase 2). Opt-in via env until the
|
|
971
|
+
// public contract settles — the WS `mcp_register` / `mcp_message` frames
|
|
972
|
+
// and the child↔parent `client_mcp/message` round-trip stay dormant
|
|
973
|
+
// otherwise. An explicit `clientMcpOverWs` in `optsIn` (embedded callers)
|
|
974
|
+
// still wins.
|
|
975
|
+
clientMcpOverWs: optsIn.clientMcpOverWs ?? process.env[QWEN_SERVE_CLIENT_MCP_OVER_WS_ENV] === "1",
|
|
976
|
+
// CDP tunnel (Plan C, issue #5626). Opt-in via env until the contract
|
|
977
|
+
// settles; an explicit `cdpTunnelOverWs` in `optsIn` still wins.
|
|
978
|
+
cdpTunnelOverWs: optsIn.cdpTunnelOverWs ?? process.env[QWEN_SERVE_CDP_TUNNEL_OVER_WS_ENV] === "1"
|
|
956
979
|
};
|
|
957
980
|
validateRateLimitOptions(opts);
|
|
958
981
|
if (!opts.hostname.startsWith("[") && opts.hostname.split(":").length === 2) {
|
|
@@ -1132,10 +1155,25 @@ async function runQwenServe(optsIn, deps = {}) {
|
|
|
1132
1155
|
}
|
|
1133
1156
|
const childEnvOverrides = {
|
|
1134
1157
|
QWEN_SERVE_MCP_CLIENT_BUDGET: opts.mcpClientBudget !== void 0 ? String(opts.mcpClientBudget) : void 0,
|
|
1135
|
-
QWEN_SERVE_MCP_BUDGET_MODE: opts.mcpBudgetMode
|
|
1158
|
+
QWEN_SERVE_MCP_BUDGET_MODE: opts.mcpBudgetMode,
|
|
1159
|
+
// CDP tunnel (Plan C, #5626): forward the flag + bound port so the spawned
|
|
1160
|
+
// ACP child can auto-register chrome-devtools-mcp against this `/cdp`
|
|
1161
|
+
// endpoint. Only meaningful with a fixed `--port`: the override map is frozen
|
|
1162
|
+
// at bridge construction, so an ephemeral `--port 0` (resolved only after
|
|
1163
|
+
// `listen`) can't be threaded here. Leave the port unset in that case so the
|
|
1164
|
+
// child surfaces a clear diagnostic instead of a bogus port "0".
|
|
1165
|
+
QWEN_SERVE_CDP_TUNNEL_OVER_WS: opts.cdpTunnelOverWs ? "1" : void 0,
|
|
1166
|
+
QWEN_SERVE_CDP_TUNNEL_PORT: opts.cdpTunnelOverWs && opts.port > 0 ? String(opts.port) : void 0,
|
|
1167
|
+
// Tell the child whether `/cdp` requires bearer auth. The ACP child can't
|
|
1168
|
+
// inherit QWEN_SERVER_TOKEN (the spawn path scrubs it) and chrome-devtools-
|
|
1169
|
+
// mcp is launched with `--wsEndpoint` only, so it can't authenticate against
|
|
1170
|
+
// an auth-gated `/cdp`. The child uses this flag to skip auto-registering the
|
|
1171
|
+
// browser tools (with a diagnostic) instead of registering tools that can't
|
|
1172
|
+
// connect. See buildCdpTunnelMcpServer in acpAgent.ts.
|
|
1173
|
+
QWEN_SERVE_CDP_TUNNEL_AUTH_REQUIRED: opts.cdpTunnelOverWs && (token || opts.requireAuth) ? "1" : void 0
|
|
1136
1174
|
};
|
|
1137
|
-
const
|
|
1138
|
-
|
|
1175
|
+
const cliVersionPromise = getCliVersion();
|
|
1176
|
+
let cliVersion;
|
|
1139
1177
|
const diagnosticSink = /* @__PURE__ */ __name((line, level) => daemonLog.raw(line, level), "diagnosticSink");
|
|
1140
1178
|
let actualPort = opts.port;
|
|
1141
1179
|
const webShellDir = opts.serveWebShell === false ? void 0 : resolveWebShellDir();
|
|
@@ -1178,11 +1216,13 @@ async function runQwenServe(optsIn, deps = {}) {
|
|
|
1178
1216
|
() => runtimeStartupError
|
|
1179
1217
|
);
|
|
1180
1218
|
const buildRuntime = /* @__PURE__ */ __name(async () => {
|
|
1181
|
-
const [runtime, core, settingsRuntime] = await Promise.all([
|
|
1219
|
+
const [runtime, core, settingsRuntime, resolvedCliVersion] = await Promise.all([
|
|
1182
1220
|
loadServeRuntimeModules(),
|
|
1183
1221
|
loadCoreRuntime(),
|
|
1184
|
-
loadSettingsRuntimeModules()
|
|
1222
|
+
loadSettingsRuntimeModules(),
|
|
1223
|
+
cliVersionPromise
|
|
1185
1224
|
]);
|
|
1225
|
+
cliVersion = resolvedCliVersion;
|
|
1186
1226
|
let runtimeBootSettings;
|
|
1187
1227
|
try {
|
|
1188
1228
|
runtimeBootSettings = settingsRuntime.settings.loadSettings(boundWorkspace);
|
|
@@ -1191,15 +1231,35 @@ async function runQwenServe(optsIn, deps = {}) {
|
|
|
1191
1231
|
`qwen serve: could not read full settings for runtime startup (${err instanceof Error ? err.message : String(err)}); falling back to defaults.`
|
|
1192
1232
|
);
|
|
1193
1233
|
}
|
|
1234
|
+
const trustedWorkspace = deps.trustedWorkspace ?? (runtimeBootSettings ? settingsRuntime.trustedFolders.getWorkspaceTrustStatus(
|
|
1235
|
+
runtimeBootSettings.merged,
|
|
1236
|
+
boundWorkspace
|
|
1237
|
+
).effective.state === "trusted" : true);
|
|
1238
|
+
if (deps.trustedWorkspace === void 0 && runtimeBootSettings && !trustedWorkspace) {
|
|
1239
|
+
daemonLog.warn(
|
|
1240
|
+
"workspace file writes are disabled because the bound workspace is not trusted",
|
|
1241
|
+
{ workspace: boundWorkspace }
|
|
1242
|
+
);
|
|
1243
|
+
}
|
|
1194
1244
|
const daemonWorkspaceHash = core.hashDaemonWorkspace(boundWorkspace);
|
|
1195
|
-
|
|
1196
|
-
|
|
1197
|
-
|
|
1198
|
-
|
|
1245
|
+
let daemonTelemetrySettings;
|
|
1246
|
+
try {
|
|
1247
|
+
daemonTelemetrySettings = await core.resolveTelemetrySettings({
|
|
1248
|
+
env: process.env,
|
|
1249
|
+
settings: runtimeBootSettings?.merged.telemetry
|
|
1250
|
+
});
|
|
1251
|
+
} catch (err) {
|
|
1252
|
+
if (err instanceof core.FatalConfigError) {
|
|
1253
|
+
throw new core.FatalConfigError(
|
|
1254
|
+
`Invalid telemetry configuration: ${err.message}.`
|
|
1255
|
+
);
|
|
1256
|
+
}
|
|
1257
|
+
throw err;
|
|
1258
|
+
}
|
|
1199
1259
|
core.initializeTelemetry(
|
|
1200
1260
|
createDaemonTelemetryRuntimeConfig(
|
|
1201
1261
|
daemonTelemetrySettings,
|
|
1202
|
-
|
|
1262
|
+
resolvedCliVersion,
|
|
1203
1263
|
`daemon:${daemonWorkspaceHash}:${process.pid}`,
|
|
1204
1264
|
{
|
|
1205
1265
|
otlpEndpoint: core.DEFAULT_OTLP_ENDPOINT,
|
|
@@ -1257,6 +1317,7 @@ async function runQwenServe(optsIn, deps = {}) {
|
|
|
1257
1317
|
});
|
|
1258
1318
|
const statusProvider = runtime.createDaemonStatusProvider();
|
|
1259
1319
|
const workspaceProvidersStatusProvider = runtime.createWorkspaceProvidersStatusProvider();
|
|
1320
|
+
const clientMcpSenderRegistry = new ClientMcpSenderRegistry();
|
|
1260
1321
|
const persistDisabledToolsFn = /* @__PURE__ */ __name((workspace, toolName, enabled) => withSettingsLock(workspace, async () => {
|
|
1261
1322
|
const fresh = settingsRuntime.settings.loadSettings(workspace);
|
|
1262
1323
|
const wsScope = fresh.forScope(WORKSPACE_SETTING_SCOPE).settings;
|
|
@@ -1271,7 +1332,42 @@ async function runQwenServe(optsIn, deps = {}) {
|
|
|
1271
1332
|
[...next].sort()
|
|
1272
1333
|
);
|
|
1273
1334
|
}), "persistDisabledToolsFn");
|
|
1335
|
+
const persistSettingFn = /* @__PURE__ */ __name((workspace, scope, key, value) => withSettingsLock(workspace, async () => {
|
|
1336
|
+
const fresh = settingsRuntime.settings.loadSettings(workspace);
|
|
1337
|
+
fresh.setValue(scope, key, value);
|
|
1338
|
+
return fresh;
|
|
1339
|
+
}), "persistSettingFn");
|
|
1340
|
+
const persistSettingsFn = /* @__PURE__ */ __name((workspace, writes) => withSettingsLock(workspace, async () => {
|
|
1341
|
+
const fresh = settingsRuntime.settings.loadSettings(workspace);
|
|
1342
|
+
const writesByScope = /* @__PURE__ */ new Map();
|
|
1343
|
+
for (const write of writes) {
|
|
1344
|
+
writesByScope.set(
|
|
1345
|
+
write.scope,
|
|
1346
|
+
(writesByScope.get(write.scope) ?? 0) + 1
|
|
1347
|
+
);
|
|
1348
|
+
}
|
|
1349
|
+
const committedScopes = /* @__PURE__ */ new Set();
|
|
1350
|
+
let committed = 0;
|
|
1351
|
+
try {
|
|
1352
|
+
fresh.setValues(writes, (scope) => {
|
|
1353
|
+
committedScopes.add(scope);
|
|
1354
|
+
committed += writesByScope.get(scope) ?? 0;
|
|
1355
|
+
});
|
|
1356
|
+
} catch (err) {
|
|
1357
|
+
const failedWrite = writes.find((write) => !committedScopes.has(write.scope)) ?? writes[committed];
|
|
1358
|
+
const message = `persistSettings partial failure (workspace=${workspace}, committed=${committed}/${writes.length}, failedKey=${failedWrite?.key ?? "<unknown>"}, failedScope=${failedWrite?.scope ?? "<unknown>"}): ${err instanceof Error ? err.message : String(err)}`;
|
|
1359
|
+
writeStderrLine(`qwen serve: ${message}`);
|
|
1360
|
+
throw new runtime.WorkspaceSettingsPartialPersistError(
|
|
1361
|
+
message,
|
|
1362
|
+
writes.filter((write) => committedScopes.has(write.scope)),
|
|
1363
|
+
err
|
|
1364
|
+
);
|
|
1365
|
+
}
|
|
1366
|
+
}), "persistSettingsFn");
|
|
1274
1367
|
const bridge = deps.bridge ?? runtime.createAcpSessionBridge({
|
|
1368
|
+
// Reverse tool channel: let `BridgeClient.extMethod` reach the WS
|
|
1369
|
+
// connection that hosts a named client MCP server (#5626).
|
|
1370
|
+
clientMcpSender: clientMcpSenderRegistry.lookup,
|
|
1275
1371
|
maxSessions: opts.maxSessions,
|
|
1276
1372
|
...opts.maxPendingPromptsPerSession !== void 0 ? { maxPendingPromptsPerSession: opts.maxPendingPromptsPerSession } : {},
|
|
1277
1373
|
...opts.eventRingSize !== void 0 ? { eventRingSize: opts.eventRingSize } : {},
|
|
@@ -1305,6 +1401,8 @@ async function runQwenServe(optsIn, deps = {}) {
|
|
|
1305
1401
|
workspaceProvidersStatusProvider,
|
|
1306
1402
|
isChannelLive: /* @__PURE__ */ __name(() => bridge.isChannelLive(), "isChannelLive"),
|
|
1307
1403
|
persistDisabledTools: persistDisabledToolsFn,
|
|
1404
|
+
persistSetting: persistSettingFn,
|
|
1405
|
+
persistSettings: persistSettingsFn,
|
|
1308
1406
|
reloadDaemonEnv: /* @__PURE__ */ __name((workspace) => withSettingsLock(workspace, async () => {
|
|
1309
1407
|
const fresh = settingsRuntime.settings.loadSettings(workspace, {
|
|
1310
1408
|
skipLoadEnvironment: true
|
|
@@ -1328,16 +1426,17 @@ async function runQwenServe(optsIn, deps = {}) {
|
|
|
1328
1426
|
bridge,
|
|
1329
1427
|
webShellDir,
|
|
1330
1428
|
boundWorkspace,
|
|
1331
|
-
qwenCodeVersion:
|
|
1429
|
+
qwenCodeVersion: resolvedCliVersion,
|
|
1332
1430
|
startup,
|
|
1333
1431
|
fsFactory,
|
|
1334
1432
|
daemonLog,
|
|
1335
1433
|
workspace: workspaceService,
|
|
1434
|
+
// Reverse tool channel (#5626): the SAME registry wired into `bridge` above,
|
|
1435
|
+
// so the WS provider and the child-answering bridge share one sender map.
|
|
1436
|
+
clientMcpSenderRegistry,
|
|
1336
1437
|
persistDisabledTools: persistDisabledToolsFn,
|
|
1337
|
-
persistSetting:
|
|
1338
|
-
|
|
1339
|
-
fresh.setValue(scope, key, value);
|
|
1340
|
-
}), "persistSetting"),
|
|
1438
|
+
persistSetting: persistSettingFn,
|
|
1439
|
+
persistSettings: persistSettingsFn,
|
|
1341
1440
|
installAuthProvider: /* @__PURE__ */ __name((req) => withSettingsLock(
|
|
1342
1441
|
boundWorkspace,
|
|
1343
1442
|
async () => {
|
|
@@ -1351,23 +1450,26 @@ async function runQwenServe(optsIn, deps = {}) {
|
|
|
1351
1450
|
});
|
|
1352
1451
|
const plan = core.buildInstallPlan(provider, inputs);
|
|
1353
1452
|
const fresh = settingsRuntime.settings.loadSettings(boundWorkspace);
|
|
1453
|
+
const adapter = settingsRuntime.loadedSettingsAdapter.createLoadedSettingsAdapter(
|
|
1454
|
+
fresh
|
|
1455
|
+
);
|
|
1354
1456
|
await core.applyProviderInstallPlan(plan, {
|
|
1355
|
-
settings:
|
|
1356
|
-
fresh
|
|
1357
|
-
),
|
|
1457
|
+
settings: adapter,
|
|
1358
1458
|
doRefreshAuth: false
|
|
1359
1459
|
});
|
|
1360
1460
|
core.emitDaemonLog("Auth provider installed.", {
|
|
1361
1461
|
"qwen-code.daemon.auth.provider_id": provider.id,
|
|
1362
1462
|
"qwen-code.daemon.auth.auth_type": plan.authType
|
|
1363
1463
|
});
|
|
1464
|
+
const effectiveModelId = adapter.getValue("model.name") ?? plan.modelSelection?.modelId;
|
|
1465
|
+
const effectiveBaseUrl = adapter.getValue("model.baseUrl") ?? plan.modelSelection?.baseUrl ?? inputs.baseUrl;
|
|
1364
1466
|
return {
|
|
1365
1467
|
v: 1,
|
|
1366
1468
|
providerId: provider.id,
|
|
1367
1469
|
providerLabel: provider.label,
|
|
1368
1470
|
authType: plan.authType,
|
|
1369
|
-
...
|
|
1370
|
-
...
|
|
1471
|
+
...effectiveModelId ? { modelId: effectiveModelId } : {},
|
|
1472
|
+
...effectiveBaseUrl ? { baseUrl: effectiveBaseUrl } : {},
|
|
1371
1473
|
message: `Successfully configured ${provider.label}. Use /model to switch models.`
|
|
1372
1474
|
};
|
|
1373
1475
|
}
|
|
@@ -1383,6 +1485,7 @@ async function runQwenServe(optsIn, deps = {}) {
|
|
|
1383
1485
|
runtimeStartupSettled = true;
|
|
1384
1486
|
markRuntimeReady();
|
|
1385
1487
|
}
|
|
1488
|
+
cliVersion ??= await cliVersionPromise;
|
|
1386
1489
|
const bootstrapApp = createBootstrapServeApp({
|
|
1387
1490
|
opts,
|
|
1388
1491
|
getPort: /* @__PURE__ */ __name(() => actualPort, "getPort"),
|
|
@@ -6,50 +6,51 @@ import {
|
|
|
6
6
|
import {
|
|
7
7
|
FILE_HISTORY_DIR,
|
|
8
8
|
getSubagentsRootDir
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-RIP623NO.js";
|
|
10
10
|
import "./chunk-K5PGHDBN.js";
|
|
11
11
|
import "./chunk-5P5XGNYH.js";
|
|
12
12
|
import "./chunk-SKAZWEV5.js";
|
|
13
|
-
import "./chunk-
|
|
14
|
-
import "./chunk-
|
|
15
|
-
import "./chunk-
|
|
16
|
-
import "./chunk-
|
|
17
|
-
import "./chunk-
|
|
13
|
+
import "./chunk-XJYUPHRC.js";
|
|
14
|
+
import "./chunk-QLDPRILK.js";
|
|
15
|
+
import "./chunk-BVSVIN45.js";
|
|
16
|
+
import "./chunk-SBBN4BWR.js";
|
|
17
|
+
import "./chunk-7LM4XHPE.js";
|
|
18
18
|
import "./chunk-2MPVVENX.js";
|
|
19
19
|
import "./chunk-ZTQ26VBE.js";
|
|
20
|
-
import "./chunk-
|
|
20
|
+
import "./chunk-O2VBQ3Y2.js";
|
|
21
21
|
import "./chunk-MLZQVCF3.js";
|
|
22
22
|
import "./chunk-LQ7TMOCE.js";
|
|
23
23
|
import "./chunk-LD2XBG6Z.js";
|
|
24
|
-
import "./chunk-
|
|
25
|
-
import "./chunk-
|
|
26
|
-
import "./chunk-
|
|
27
|
-
import "./chunk-
|
|
28
|
-
import "./chunk-
|
|
24
|
+
import "./chunk-HYCC3XM3.js";
|
|
25
|
+
import "./chunk-NL4C3H6C.js";
|
|
26
|
+
import "./chunk-JOLIREYR.js";
|
|
27
|
+
import "./chunk-DDMOU62Q.js";
|
|
28
|
+
import "./chunk-SS6WJMQK.js";
|
|
29
29
|
import "./chunk-3PJXIDKI.js";
|
|
30
30
|
import "./chunk-UWCTAVOD.js";
|
|
31
31
|
import "./chunk-OFEVLU4C.js";
|
|
32
32
|
import "./chunk-OMX7CUOE.js";
|
|
33
|
-
import "./chunk-
|
|
34
|
-
import "./chunk-
|
|
35
|
-
import "./chunk-
|
|
36
|
-
import "./chunk-
|
|
37
|
-
import "./chunk-
|
|
38
|
-
import "./chunk-
|
|
33
|
+
import "./chunk-RD6YJJJ6.js";
|
|
34
|
+
import "./chunk-SKQZZVAV.js";
|
|
35
|
+
import "./chunk-BUUQ5HPX.js";
|
|
36
|
+
import "./chunk-BX5YO7UW.js";
|
|
37
|
+
import "./chunk-3CPCDXFR.js";
|
|
38
|
+
import "./chunk-GEHVIWAT.js";
|
|
39
39
|
import "./chunk-22IFUCVR.js";
|
|
40
|
-
import "./chunk-
|
|
41
|
-
import "./chunk-
|
|
42
|
-
import "./chunk-
|
|
43
|
-
import "./chunk-CGEGHF2C.js";
|
|
40
|
+
import "./chunk-3227DZO4.js";
|
|
41
|
+
import "./chunk-YTFBURQD.js";
|
|
42
|
+
import "./chunk-BKXBARJZ.js";
|
|
44
43
|
import "./chunk-IRJWHZWU.js";
|
|
45
44
|
import "./chunk-SYCJMSIJ.js";
|
|
46
45
|
import "./chunk-55ZMG67I.js";
|
|
47
46
|
import "./chunk-H6BD2ELD.js";
|
|
48
47
|
import "./chunk-5IFG2VC4.js";
|
|
48
|
+
import "./chunk-64WXLC72.js";
|
|
49
|
+
import "./chunk-E6XQPQXW.js";
|
|
49
50
|
import {
|
|
50
51
|
Storage,
|
|
51
52
|
createDebugLogger
|
|
52
|
-
} from "./chunk-
|
|
53
|
+
} from "./chunk-UX4SGCGN.js";
|
|
53
54
|
import "./chunk-ZERZSAZL.js";
|
|
54
55
|
import "./chunk-QN5NZ3UQ.js";
|
|
55
56
|
import "./chunk-BR4QREVK.js";
|
|
@@ -10,8 +10,8 @@ import {
|
|
|
10
10
|
BaseToolInvocation,
|
|
11
11
|
ToolDisplayNames,
|
|
12
12
|
ToolNames
|
|
13
|
-
} from "./chunk-
|
|
14
|
-
import "./chunk-
|
|
13
|
+
} from "./chunk-BX5YO7UW.js";
|
|
14
|
+
import "./chunk-UX4SGCGN.js";
|
|
15
15
|
import "./chunk-Z2Z3GUXZ.js";
|
|
16
16
|
import {
|
|
17
17
|
init_esbuild_shims
|
|
@@ -3,56 +3,58 @@
|
|
|
3
3
|
import {
|
|
4
4
|
maybeOpenWebShellBrowser,
|
|
5
5
|
serveCommand
|
|
6
|
-
} from "./chunk-
|
|
7
|
-
import "./chunk-R2BXK7SX.js";
|
|
6
|
+
} from "./chunk-4X7NIEQJ.js";
|
|
8
7
|
import "./chunk-ALX6BUYW.js";
|
|
9
8
|
import "./chunk-5DWXLGOM.js";
|
|
10
|
-
import "./chunk-
|
|
11
|
-
import "./chunk-
|
|
9
|
+
import "./chunk-HEVBZSXG.js";
|
|
10
|
+
import "./chunk-MTHMXSNT.js";
|
|
12
11
|
import "./chunk-TLRYABYP.js";
|
|
12
|
+
import "./chunk-PPFWEV7G.js";
|
|
13
|
+
import "./chunk-ARYCHZ4B.js";
|
|
13
14
|
import "./chunk-Y6Z2O3WR.js";
|
|
14
|
-
import "./chunk-
|
|
15
|
-
import "./chunk-
|
|
15
|
+
import "./chunk-QYUE6W3T.js";
|
|
16
|
+
import "./chunk-RIP623NO.js";
|
|
16
17
|
import "./chunk-K5PGHDBN.js";
|
|
17
18
|
import "./chunk-5P5XGNYH.js";
|
|
18
19
|
import "./chunk-SKAZWEV5.js";
|
|
19
|
-
import "./chunk-
|
|
20
|
-
import "./chunk-
|
|
21
|
-
import "./chunk-
|
|
22
|
-
import "./chunk-
|
|
23
|
-
import "./chunk-
|
|
20
|
+
import "./chunk-XJYUPHRC.js";
|
|
21
|
+
import "./chunk-QLDPRILK.js";
|
|
22
|
+
import "./chunk-BVSVIN45.js";
|
|
23
|
+
import "./chunk-SBBN4BWR.js";
|
|
24
|
+
import "./chunk-7LM4XHPE.js";
|
|
24
25
|
import "./chunk-2MPVVENX.js";
|
|
25
26
|
import "./chunk-ZTQ26VBE.js";
|
|
26
|
-
import "./chunk-
|
|
27
|
+
import "./chunk-O2VBQ3Y2.js";
|
|
27
28
|
import "./chunk-MLZQVCF3.js";
|
|
28
29
|
import "./chunk-LQ7TMOCE.js";
|
|
29
30
|
import "./chunk-LD2XBG6Z.js";
|
|
30
|
-
import "./chunk-
|
|
31
|
-
import "./chunk-
|
|
32
|
-
import "./chunk-
|
|
33
|
-
import "./chunk-
|
|
34
|
-
import "./chunk-
|
|
31
|
+
import "./chunk-HYCC3XM3.js";
|
|
32
|
+
import "./chunk-NL4C3H6C.js";
|
|
33
|
+
import "./chunk-JOLIREYR.js";
|
|
34
|
+
import "./chunk-DDMOU62Q.js";
|
|
35
|
+
import "./chunk-SS6WJMQK.js";
|
|
35
36
|
import "./chunk-3PJXIDKI.js";
|
|
36
37
|
import "./chunk-UWCTAVOD.js";
|
|
37
38
|
import "./chunk-OFEVLU4C.js";
|
|
38
39
|
import "./chunk-OMX7CUOE.js";
|
|
39
|
-
import "./chunk-
|
|
40
|
-
import "./chunk-
|
|
41
|
-
import "./chunk-
|
|
42
|
-
import "./chunk-
|
|
43
|
-
import "./chunk-
|
|
44
|
-
import "./chunk-
|
|
40
|
+
import "./chunk-RD6YJJJ6.js";
|
|
41
|
+
import "./chunk-SKQZZVAV.js";
|
|
42
|
+
import "./chunk-BUUQ5HPX.js";
|
|
43
|
+
import "./chunk-BX5YO7UW.js";
|
|
44
|
+
import "./chunk-3CPCDXFR.js";
|
|
45
|
+
import "./chunk-GEHVIWAT.js";
|
|
45
46
|
import "./chunk-22IFUCVR.js";
|
|
46
|
-
import "./chunk-
|
|
47
|
-
import "./chunk-
|
|
48
|
-
import "./chunk-
|
|
49
|
-
import "./chunk-CGEGHF2C.js";
|
|
47
|
+
import "./chunk-3227DZO4.js";
|
|
48
|
+
import "./chunk-YTFBURQD.js";
|
|
49
|
+
import "./chunk-BKXBARJZ.js";
|
|
50
50
|
import "./chunk-IRJWHZWU.js";
|
|
51
51
|
import "./chunk-SYCJMSIJ.js";
|
|
52
52
|
import "./chunk-55ZMG67I.js";
|
|
53
53
|
import "./chunk-H6BD2ELD.js";
|
|
54
54
|
import "./chunk-5IFG2VC4.js";
|
|
55
|
-
import "./chunk-
|
|
55
|
+
import "./chunk-64WXLC72.js";
|
|
56
|
+
import "./chunk-E6XQPQXW.js";
|
|
57
|
+
import "./chunk-UX4SGCGN.js";
|
|
56
58
|
import "./chunk-ZERZSAZL.js";
|
|
57
59
|
import "./chunk-QN5NZ3UQ.js";
|
|
58
60
|
import "./chunk-BR4QREVK.js";
|