@qwen-code/qwen-code 0.19.7 → 0.19.8-nightly.20260710.205430235
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundled/qc-helper/SKILL.md +1 -0
- package/bundled/qc-helper/docs/configuration/auth.md +40 -55
- package/bundled/qc-helper/docs/configuration/model-providers.md +224 -218
- package/bundled/qc-helper/docs/configuration/settings.md +43 -36
- package/bundled/qc-helper/docs/features/_meta.ts +1 -0
- package/bundled/qc-helper/docs/features/channels/overview.md +20 -12
- package/bundled/qc-helper/docs/features/channels/plugins.md +1 -0
- package/bundled/qc-helper/docs/features/code-review.md +2 -1
- package/bundled/qc-helper/docs/features/commands.md +39 -38
- package/bundled/qc-helper/docs/features/computer-use.md +77 -0
- package/bundled/qc-helper/docs/features/hooks.md +36 -34
- package/bundled/qc-helper/docs/features/memory.md +1 -1
- package/bundled/qc-helper/docs/features/tool-use-summaries.md +19 -23
- package/bundled/qc-helper/docs/qwen-serve.md +22 -12
- package/bundled/qc-helper/docs/reference/keyboard-shortcuts.md +1 -1
- package/bundled/review/DESIGN.md +14 -13
- package/bundled/review/SKILL.md +38 -61
- package/chunks/{MaxSizedBox-XY5LIO5O.js → MaxSizedBox-LOFYQFYJ.js} +13 -14
- package/chunks/{StandaloneSessionPicker-APISIRJZ.js → StandaloneSessionPicker-U5OQBGEB.js} +31 -29
- package/chunks/{acpAgent-MMOSC2YA.js → acpAgent-SDIFRIED.js} +637 -131
- package/chunks/{agent-TKIBLLQT.js → agent-JIBBVHNQ.js} +10 -10
- package/chunks/{agent-headless-VLX4C7KX.js → agent-headless-6LGZYJYU.js} +10 -10
- package/chunks/{anthropicContentGenerator-AKYPSZIV.js → anthropicContentGenerator-55REPTTF.js} +30 -3
- package/chunks/{artifact-tool-D233YJFH.js → artifact-tool-EIN46DPM.js} +1 -1
- package/chunks/{askUserQuestion-MKL5ZTMC.js → askUserQuestion-6YX6ZRX7.js} +1 -1
- package/chunks/{bridge-BCU73DZO.js → bridge-HVPFYNM4.js} +17 -16
- package/chunks/{ca-HCMB2I54.js → ca-MULEGDVS.js} +89 -5
- package/chunks/{channel-worker-supervisor-CRCVYQIE.js → channel-worker-supervisor-OPXXT4JK.js} +20 -3
- package/chunks/{chunk-DGHJTO2K.js → chunk-2AF26HVM.js} +31 -2
- package/chunks/{chunk-3B26UVCX.js → chunk-2GUVUHJY.js} +6 -4
- package/chunks/{chunk-FV7425LN.js → chunk-2SZOMGOR.js} +4 -1
- package/chunks/{chunk-CNSF3WO5.js → chunk-32KS5XSX.js} +3 -3
- package/chunks/{chunk-4UCTWSTP.js → chunk-34UUM3IN.js} +1 -1
- package/chunks/{chunk-G7ZG7CA6.js → chunk-3UP777ZS.js} +8 -7
- package/chunks/{chunk-MIG5SQNL.js → chunk-4CSVIZLT.js} +4 -4
- package/chunks/{chunk-GD236YPV.js → chunk-4ONWIT5C.js} +1 -1
- package/chunks/{chunk-4ZJIPVPB.js → chunk-4XK7TNBP.js} +8 -8
- package/chunks/{chunk-I4A4K72C.js → chunk-5F2H3PXG.js} +446 -232
- package/chunks/chunk-5HOF2K5U.js +19 -0
- package/chunks/{chunk-GMOWQOQQ.js → chunk-5ZVIYNLN.js} +228 -36
- package/chunks/chunk-6O6Z2I5Q.js +292 -0
- package/chunks/{chunk-RYFZCUJO.js → chunk-6QKT5VNZ.js} +14 -6
- package/chunks/{chunk-SD4N3QJ2.js → chunk-6ZPSVWLF.js} +61 -17
- package/chunks/{chunk-X265R5C6.js → chunk-7YGSDQ5J.js} +2 -2
- package/chunks/{chunk-PRDFOIZF.js → chunk-A6KEUFJO.js} +32 -5
- package/chunks/{chunk-OWVIH4HY.js → chunk-B5OAMPJ5.js} +389 -87
- package/chunks/{chunk-ME3YSROJ.js → chunk-CV2AT2WJ.js} +22 -10
- package/chunks/{chunk-U4FRHCLA.js → chunk-DDKUYKHA.js} +1912 -201
- package/chunks/{chunk-YDSYD7UI.js → chunk-E3SA2LY4.js} +2 -2
- package/chunks/{chunk-6IAWPIQ6.js → chunk-EDM5O3SX.js} +2 -2
- package/chunks/{chunk-CISB3IQF.js → chunk-FONJQQWI.js} +65 -6
- package/chunks/{chunk-FRFFNYUY.js → chunk-G3WIMNL4.js} +3 -3
- package/chunks/{chunk-B34OV7K2.js → chunk-GGQQA4JW.js} +13 -0
- package/chunks/chunk-GLE2YUPU.js +34 -0
- package/chunks/{chunk-MJI36HER.js → chunk-GOTMC3BX.js} +1 -1
- package/chunks/{chunk-RFIL6REB.js → chunk-GRB4QSBD.js} +168 -31
- package/chunks/chunk-GVVY7GSP.js +38 -0
- package/chunks/{chunk-7JGISHHZ.js → chunk-HDEUQRAR.js} +14 -156
- package/chunks/{chunk-NZEGNV4V.js → chunk-HPRI22FZ.js} +6 -6
- package/chunks/{chunk-STAZRKOT.js → chunk-I34IHZFJ.js} +117 -459
- package/chunks/{chunk-JF7DFPQ5.js → chunk-I3MBKL6Z.js} +12 -2
- package/chunks/{chunk-DNV4FSN5.js → chunk-I5XN6KDI.js} +21 -4
- package/chunks/{chunk-VZ7HY3YU.js → chunk-IAMRWMFU.js} +1 -1
- package/chunks/{chunk-44NROQYV.js → chunk-JOQMY62N.js} +1 -1
- package/chunks/{chunk-VQWAZSXN.js → chunk-JW4IKIZ2.js} +57 -35
- package/chunks/{chunk-SAIILPQ3.js → chunk-KJMYXFUR.js} +3 -1
- package/chunks/{chunk-AFOLR6YL.js → chunk-KQ6MKCFE.js} +102 -16
- package/chunks/{chunk-X3YGAX7V.js → chunk-KS2FRTYI.js} +2 -0
- package/chunks/{chunk-IUE7YWC3.js → chunk-LE7EF36E.js} +7 -7
- package/chunks/{chunk-B4U2M63D.js → chunk-LRY7HD3Q.js} +2101 -11
- package/chunks/{chunk-PUQLHSQ2.js → chunk-ME7E6WZB.js} +6 -8
- package/chunks/{chunk-LEIJKM7Q.js → chunk-MEK7ZRJ3.js} +1 -1
- package/chunks/{chunk-AJBEAUIS.js → chunk-MG2TNCRX.js} +4 -3
- package/chunks/{chunk-GL5TV7B5.js → chunk-MSMQURDV.js} +21 -5
- package/chunks/{chunk-6BN7NZ5Z.js → chunk-NXDJLKKX.js} +4 -6
- package/chunks/{chunk-FEJ2FZ3U.js → chunk-NY2ZOFMM.js} +1 -1
- package/chunks/{chunk-QZF5U5KA.js → chunk-NY5BE643.js} +8 -8
- package/chunks/{chunk-4RQIB5UZ.js → chunk-O2YT7VB4.js} +0 -34
- package/chunks/{chunk-4KJ2BPIT.js → chunk-OACJLMLD.js} +2 -38
- package/chunks/chunk-PCWSPWXZ.js +168 -0
- package/chunks/{chunk-XPJH4PKR.js → chunk-PJ74K3DH.js} +1 -1
- package/chunks/{chunk-FTFXDZYI.js → chunk-PW7VWRLX.js} +45 -29
- package/chunks/chunk-R3SLDK6Y.js +468 -0
- package/chunks/{chunk-4O344UEE.js → chunk-SDJOZOYY.js} +38 -18
- package/chunks/{chunk-ALZ75L2X.js → chunk-SMYIBRAA.js} +412 -376
- package/chunks/{chunk-CCGOFQV3.js → chunk-SS5P6JM6.js} +6 -5
- package/chunks/{chunk-AIY5UTFI.js → chunk-T3XHYGMG.js} +925 -2872
- package/chunks/{chunk-Q6OEPOOC.js → chunk-TB6GWNV4.js} +1 -1
- package/chunks/{chunk-24XYI5EI.js → chunk-TERKDCOZ.js} +3 -3
- package/chunks/chunk-TVO5C767.js +159 -0
- package/chunks/{chunk-TBAZMRW3.js → chunk-TVW53EK7.js} +1 -1
- package/chunks/chunk-TX5QZYK6.js +296 -0
- package/chunks/{chunk-JD33UY7E.js → chunk-TZRVTPJ6.js} +15 -9
- package/chunks/{chunk-65CFHNSE.js → chunk-UAFB2DNB.js} +59 -59
- package/chunks/{chunk-QAKFYMJI.js → chunk-UOXLB2LY.js} +152 -17
- package/chunks/chunk-V35MD7KN.js +13 -0
- package/chunks/{chunk-XSAFNANZ.js → chunk-VWDJHVXM.js} +12 -12
- package/chunks/{chunk-XISQIIT7.js → chunk-W77ZLCSX.js} +1 -1
- package/chunks/{chunk-BWVQN2HV.js → chunk-WTEIUA2V.js} +4 -4
- package/chunks/{chunk-TDGF35EN.js → chunk-XOHNA2S6.js} +1 -1
- package/chunks/{chunk-HJ3GX3Y3.js → chunk-XZVUZSDG.js} +25 -11
- package/chunks/{chunk-ADZG46HR.js → chunk-YHGCTQG3.js} +1 -1
- package/chunks/{chunk-2NPS2UDH.js → chunk-YUNPEB3Q.js} +478 -43
- package/chunks/chunk-Z3I3QJK3.js +47 -0
- package/chunks/{chunk-P7I3D7FM.js → chunk-Z466FBSA.js} +1 -1
- package/chunks/{chunk-YEGT55NW.js → chunk-ZDAZSR2O.js} +3009 -1220
- package/chunks/{chunk-VEB3NYSO.js → chunk-ZJQBTFJ6.js} +6 -1
- package/chunks/chunk-ZL5HN75Q.js +61 -0
- package/chunks/{computer-use-X4KUU3NM.js → computer-use-IW5XBECT.js} +10 -10
- package/chunks/{contextCommand-LAYJZF7H.js → contextCommand-4QPLK2SH.js} +14 -14
- package/chunks/create-sub-session-7JK3EYWA.js +212 -0
- package/chunks/create-sub-session-EVYZYAE3.js +364 -0
- package/chunks/{cron-create-JSXEIPVS.js → cron-create-2CCO2PW6.js} +2 -2
- package/chunks/{cron-delete-OIFVEPGU.js → cron-delete-ETVTP5IV.js} +2 -2
- package/chunks/{cron-list-D4ZX4IOE.js → cron-list-FS3KWOY5.js} +2 -2
- package/chunks/{daemon-F3I2RXP6.js → daemon-NNUYIBWA.js} +461 -0
- package/chunks/{daemon-status-provider-XSAFKVDS.js → daemon-status-provider-3EPG6BXX.js} +21 -19
- package/chunks/{de-PLLFDERI.js → de-QRG6J2CM.js} +89 -5
- package/chunks/{dist-YTRKAVUB.js → dist-3EIIFOJV.js} +1 -1
- package/chunks/{dist-PKFTNUHO.js → dist-7F5GWZDZ.js} +2 -1
- package/chunks/{dist-FQ5WRJPL.js → dist-CBJ7OJ5R.js} +2 -2
- package/chunks/{dist-OT7G2WNM.js → dist-LIFJ2YAI.js} +1 -1
- package/chunks/{dist-573HNSVO.js → dist-OKXOQ63L.js} +2 -1
- package/chunks/{dist-IMFFBMAT.js → dist-SU5LY5R4.js} +3 -1
- package/chunks/{earlyInputCapture-AERYYGXE.js → earlyInputCapture-HP5XAS7A.js} +10 -10
- package/chunks/{edit-WZTZDGCI.js → edit-MDICC6KH.js} +11 -11
- package/chunks/{en-GA2RMXY5.js → en-HF3KFWZG.js} +91 -5
- package/chunks/{enter-worktree-DEPXBJEL.js → enter-worktree-JWTRNEN4.js} +10 -10
- package/chunks/{enterPlanMode-JFGXZHHJ.js → enterPlanMode-GMRZMTBQ.js} +10 -10
- package/chunks/environment-2CJAFOFN.js +88 -0
- package/chunks/{errors-GMZL4QV7.js → errors-UZOVFD2U.js} +13 -13
- package/chunks/{exit-worktree-Y7XBK3VV.js → exit-worktree-QQGEG343.js} +10 -10
- package/chunks/{exitPlanMode-WQQER65F.js → exitPlanMode-YK2JVAAB.js} +10 -10
- package/chunks/{fast-path-W2U6XDNO.js → fast-path-6SD4JNQW.js} +12 -3
- package/chunks/{fast-path-settings-RCRXH2JG.js → fast-path-settings-RAQGCIT7.js} +3 -2
- package/chunks/{fr-GWNQG4XH.js → fr-RSCO6HHD.js} +89 -5
- package/chunks/{gemini-T4WX6SRW.js → gemini-TFQXPUZB.js} +436 -140
- package/chunks/{geminiContentGenerator-MKQACXEJ.js → geminiContentGenerator-LJ2BNXHX.js} +1 -1
- package/chunks/{glob-4KKSHZDF.js → glob-3IJ6JR5W.js} +10 -10
- package/chunks/{grep-GHRYXSLZ.js → grep-UFZ2RFQZ.js} +10 -10
- package/chunks/{handleAutoUpdate-HN7ZOSXY.js → handleAutoUpdate-TEZC5ZIR.js} +17 -13
- package/chunks/i18n-5QEODTJV.js +84 -0
- package/chunks/{initializer-SRN3IM42.js → initializer-222MPCLQ.js} +18 -16
- package/chunks/installationInfo-OZ62OHZ2.js +65 -0
- package/chunks/{ja-2HOTA47X.js → ja-RRFGG2DC.js} +89 -5
- package/chunks/{list-INTVXUPA.js → list-BN5VBIIE.js} +20 -18
- package/chunks/{loadedSettingsAdapter-QVHHQPGM.js → loadedSettingsAdapter-EHTUJRFB.js} +18 -16
- package/chunks/{loop-wakeup-OHWEMFP5.js → loop-wakeup-SR2KWT4B.js} +3 -3
- package/chunks/{ls-L654WOAT.js → ls-RUBQK5Q2.js} +2 -2
- package/chunks/{lsp-M35KE54Y.js → lsp-DUTVY2ZA.js} +3 -5
- package/chunks/{mcp-7V4T46RG.js → mcp-OPGHD26Y.js} +18 -16
- package/chunks/{monitor-464OY2UE.js → monitor-WXBDVYYV.js} +10 -10
- package/chunks/{nonInteractiveCli-LJEEODU2.js → nonInteractiveCli-CWIBGJ4U.js} +54 -49
- package/chunks/{notebook-edit-BLJYCNDO.js → notebook-edit-T7P7M73F.js} +11 -11
- package/chunks/{openaiContentGenerator-PFF6HYB2.js → openaiContentGenerator-OES264C3.js} +7 -7
- package/chunks/{pidfile-LIBUENIV.js → pidfile-LJ3NLS2P.js} +10 -10
- package/chunks/{pt-2THT3YHA.js → pt-D4CG46JM.js} +89 -5
- package/chunks/{qwenContentGenerator-SUUHZ6CR.js → qwenContentGenerator-QJ67LAJ5.js} +12 -12
- package/chunks/{read-file-L7TBQVX7.js → read-file-KZD7TLU7.js} +5 -5
- package/chunks/{read-mcp-resource-CNQHBSJM.js → read-mcp-resource-Q56IMYOH.js} +1 -1
- package/chunks/{record-artifact-PP3LKHTS.js → record-artifact-GZ5D5HZX.js} +4 -4
- package/chunks/{ripGrep-CKKX3GRB.js → ripGrep-KUJLX75U.js} +10 -10
- package/chunks/{ru-Z67YJHBG.js → ru-O2QUEL22.js} +89 -5
- package/chunks/{run-qwen-serve-5OKADVLE.js → run-qwen-serve-M52KVRGI.js} +664 -153
- package/chunks/{scheduler-ZRW3AIDU.js → scheduler-FFATTAYZ.js} +10 -10
- package/chunks/{send-message-OA6MV4EU.js → send-message-HAGK3VTV.js} +2 -2
- package/chunks/{serve-36WS32W6.js → serve-B5S32524.js} +21 -18
- package/chunks/{server-M372UENX.js → server-6HK5FJMR.js} +3301 -665
- package/chunks/{session-F5KSNP2N.js → session-3WB76VTQ.js} +55 -50
- package/chunks/{settings-WFLNS3WT.js → settings-W3IX7NHK.js} +27 -23
- package/chunks/{shell-DEDSWN56.js → shell-HZIU2ZG7.js} +10 -10
- package/chunks/{skill-A2TL2NPC.js → skill-34OUFB65.js} +5 -5
- package/chunks/{spawnChannel-RQHUWTCL.js → spawnChannel-FTZJ3I5O.js} +12 -12
- package/chunks/{src-XKZMNHXS.js → src-NELBIIGI.js} +48 -10
- package/chunks/standalone-update-LICI2VSK.js +79 -0
- package/chunks/{startInteractiveUI-REKSTOHU.js → startInteractiveUI-LZEV5YI2.js} +2203 -1764
- package/chunks/stdioHelpers-CA7MG65Z.js +14 -0
- package/chunks/{syntheticOutput-F7LSDCAR.js → syntheticOutput-XFFJVCGV.js} +2 -2
- package/chunks/{task-create-RPFZNB4B.js → task-create-VINUSVBF.js} +3 -3
- package/chunks/{task-list-TGGJX7EA.js → task-list-YZ2AWQEG.js} +1 -1
- package/chunks/{task-stop-W7NGTMYQ.js → task-stop-PEXPKUW3.js} +1 -1
- package/chunks/{task-update-5WUG5MVQ.js → task-update-BHIX57YH.js} +3 -3
- package/chunks/{team-create-TBQVWAG7.js → team-create-2JS2OYSF.js} +10 -10
- package/chunks/{team-delete-UHQQ2QQX.js → team-delete-2OHXSBVS.js} +1 -1
- package/chunks/{team-plan-approval-FZPGUSHJ.js → team-plan-approval-PHLGYUY7.js} +10 -10
- package/chunks/{theme-manager-DQZVNSOC.js → theme-manager-UYXLX37P.js} +10 -10
- package/chunks/{todoWrite-C4ZAMSR3.js → todoWrite-7Q4ELT4F.js} +1 -1
- package/chunks/{tool-search-FDQ3SLNJ.js → tool-search-2MWA3GWE.js} +6 -6
- package/chunks/total-session-admission-PRZK35X4.js +72 -0
- package/chunks/{trustedFolders-Z475EIHL.js → trustedFolders-IT4JBNPG.js} +12 -12
- package/chunks/{updateCheck-E2ZX7RL7.js → updateCheck-X3ZWDO3Z.js} +17 -13
- package/chunks/updateEventEmitter-NXWTRHXY.js +10 -0
- package/chunks/{validateNonInterActiveAuth-O4ECBHQL.js → validateNonInterActiveAuth-IAOL7CM3.js} +51 -45
- package/chunks/{version-CEDD6ZZR.js → version-25QF6A5H.js} +1 -1
- package/chunks/{web-fetch-UYGMOHW4.js → web-fetch-I7FOWHGA.js} +2 -2
- package/chunks/{workflow-CQQ4J4I6.js → workflow-LZZ5U3IT.js} +11 -11
- package/chunks/{workspace-providers-status-MVYXMYDG.js → workspace-providers-status-7DTOAWEL.js} +21 -18
- package/chunks/workspace-registry-BBIPESIZ.js +76 -0
- package/chunks/{workspace-service-OMBR6ZLG.js → workspace-service-SY3P3FUY.js} +25 -23
- package/chunks/{workspace-skills-status-IMMQ7CAY.js → workspace-skills-status-GTT2A4WN.js} +20 -18
- package/chunks/{write-file-VWGY7AJP.js → write-file-M6IHNW3V.js} +11 -11
- package/chunks/{zh-7XVVRTDH.js → zh-K2EH6BDD.js} +91 -5
- package/chunks/{zh-TW-DPH554OG.js → zh-TW-4GPXJ7ZY.js} +91 -5
- package/cli.js +13 -12
- package/locales/ca.js +115 -7
- package/locales/de.js +114 -7
- package/locales/en.js +118 -7
- package/locales/fr.js +115 -7
- package/locales/ja.js +116 -6
- package/locales/pt.js +114 -7
- package/locales/ru.js +114 -7
- package/locales/zh-TW.js +114 -6
- package/locales/zh.js +114 -6
- package/package.json +3 -6
- package/web-shell/assets/{arc-C7hjaa7g.js → arc-G3HZaqaL.js} +1 -1
- package/web-shell/assets/{architectureDiagram-3BPJPVTR-pm9KtMZY.js → architectureDiagram-3BPJPVTR-DhBrwwch.js} +1 -1
- package/web-shell/assets/{blockDiagram-GPEHLZMM-CApElKsU.js → blockDiagram-GPEHLZMM-16JbbF0N.js} +1 -1
- package/web-shell/assets/{c4Diagram-AAUBKEIU-BeDe0-9N.js → c4Diagram-AAUBKEIU-DQ3-pKgc.js} +1 -1
- package/web-shell/assets/channel-CX7ZHuuL.js +1 -0
- package/web-shell/assets/{chunk-2J33WTMH-DJEkmLdl.js → chunk-2J33WTMH-ERCn30sp.js} +1 -1
- package/web-shell/assets/{chunk-4BX2VUAB-DXX8gdpe.js → chunk-4BX2VUAB-DTysfbFi.js} +1 -1
- package/web-shell/assets/{chunk-55IACEB6-DORmk1kQ.js → chunk-55IACEB6-BFGrbTBi.js} +1 -1
- package/web-shell/assets/{chunk-727SXJPM-DWmO4mCZ.js → chunk-727SXJPM-DCX4Oar-.js} +1 -1
- package/web-shell/assets/{chunk-AQP2D5EJ-C7LRaYw2.js → chunk-AQP2D5EJ-CgT6sBr3.js} +1 -1
- package/web-shell/assets/{chunk-FMBD7UC4-CCdXgyC5.js → chunk-FMBD7UC4-C1Uuk1KV.js} +1 -1
- package/web-shell/assets/{chunk-ND2GUHAM-SyL_xvWc.js → chunk-ND2GUHAM-DajgESiu.js} +1 -1
- package/web-shell/assets/{chunk-QZHKN3VN-BzOuCKxa.js → chunk-QZHKN3VN-DLJSvy9X.js} +1 -1
- package/web-shell/assets/classDiagram-4FO5ZUOK-B-oT3UI8.js +1 -0
- package/web-shell/assets/classDiagram-v2-Q7XG4LA2-B-oT3UI8.js +1 -0
- package/web-shell/assets/{cose-bilkent-S5V4N54A-BMPWyDKc.js → cose-bilkent-S5V4N54A-CH3w3qs7.js} +1 -1
- package/web-shell/assets/{dagre-BM42HDAG-B_GnPWik.js → dagre-BM42HDAG-BloXan9B.js} +1 -1
- package/web-shell/assets/{diagram-2AECGRRQ-fJqMc3S_.js → diagram-2AECGRRQ-BbZiGcmK.js} +1 -1
- package/web-shell/assets/{diagram-5GNKFQAL-ximV3O9D.js → diagram-5GNKFQAL-GQlYvLJv.js} +1 -1
- package/web-shell/assets/{diagram-KO2AKTUF-2vVyjzqw.js → diagram-KO2AKTUF-CtIBvVq3.js} +1 -1
- package/web-shell/assets/{diagram-LMA3HP47-Dckcx1sT.js → diagram-LMA3HP47-D5TBo9a2.js} +1 -1
- package/web-shell/assets/{diagram-OG6HWLK6-BAVv47ga.js → diagram-OG6HWLK6-N0gQhw6R.js} +1 -1
- package/web-shell/assets/{erDiagram-TEJ5UH35-Bn3nf5J0.js → erDiagram-TEJ5UH35-zab9vDj3.js} +1 -1
- package/web-shell/assets/{flowDiagram-I6XJVG4X-BIbGF9JT.js → flowDiagram-I6XJVG4X-BnnjtWJa.js} +1 -1
- package/web-shell/assets/{ganttDiagram-6RSMTGT7-CDbhb3AH.js → ganttDiagram-6RSMTGT7-2T0SQU4f.js} +1 -1
- package/web-shell/assets/{gitGraphDiagram-PVQCEYII-CbKG1a_w.js → gitGraphDiagram-PVQCEYII-DAD6_que.js} +1 -1
- package/web-shell/assets/index-XLkWfLja.css +5 -0
- package/web-shell/assets/index-srlTR1Jg.js +786 -0
- package/web-shell/assets/{infoDiagram-5YYISTIA-DUFxTy8m.js → infoDiagram-5YYISTIA-C-j8d0xO.js} +1 -1
- package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-D69hrBG8.js → ishikawaDiagram-YF4QCWOH-D97bAKoT.js} +1 -1
- package/web-shell/assets/{journeyDiagram-JHISSGLW-DsvEw51Y.js → journeyDiagram-JHISSGLW-BJAHfJmm.js} +1 -1
- package/web-shell/assets/{kanban-definition-UN3LZRKU-lFFjZEYd.js → kanban-definition-UN3LZRKU-CZgR5aac.js} +1 -1
- package/web-shell/assets/{linear-Bo5bWzvo.js → linear-DOd4kYhA.js} +1 -1
- package/web-shell/assets/{mermaid.core-C_HKMJx5.js → mermaid.core-BBaplnXA.js} +5 -5
- package/web-shell/assets/{mindmap-definition-RKZ34NQL-DlV-NUTs.js → mindmap-definition-RKZ34NQL-IhBF_BR5.js} +1 -1
- package/web-shell/assets/{pieDiagram-4H26LBE5-B2e6FH2a.js → pieDiagram-4H26LBE5-B4R4sYyH.js} +1 -1
- package/web-shell/assets/{quadrantDiagram-W4KKPZXB-D75kSk-b.js → quadrantDiagram-W4KKPZXB-DKd1SJ61.js} +1 -1
- package/web-shell/assets/{requirementDiagram-4Y6WPE33-CQ6xakhM.js → requirementDiagram-4Y6WPE33-Cw96V0Xb.js} +1 -1
- package/web-shell/assets/{sankeyDiagram-5OEKKPKP-J_XTKrcY.js → sankeyDiagram-5OEKKPKP-C6ne_yWi.js} +1 -1
- package/web-shell/assets/{sequenceDiagram-3UESZ5HK-D7jTcBtf.js → sequenceDiagram-3UESZ5HK-CCyp4PDp.js} +1 -1
- package/web-shell/assets/{stateDiagram-AJRCARHV-CrlM_OT3.js → stateDiagram-AJRCARHV-DHvIqTmx.js} +1 -1
- package/web-shell/assets/stateDiagram-v2-BHNVJYJU-DvFhmpwA.js +1 -0
- package/web-shell/assets/{timeline-definition-PNZ67QCA-5oZi76Ef.js → timeline-definition-PNZ67QCA-amb3n9zH.js} +1 -1
- package/web-shell/assets/{vennDiagram-CIIHVFJN-DO5YptPK.js → vennDiagram-CIIHVFJN-Abf2qRFJ.js} +1 -1
- package/web-shell/assets/{wardley-L42UT6IY-4t1eJDvM.js → wardley-L42UT6IY-BBlOp1av.js} +1 -1
- package/web-shell/assets/{wardleyDiagram-YWT4CUSO-DKZc661S.js → wardleyDiagram-YWT4CUSO-gE_sZ0Ak.js} +1 -1
- package/web-shell/assets/{xychartDiagram-2RQKCTM6-su9hp08G.js → xychartDiagram-2RQKCTM6-BwOni53i.js} +1 -1
- package/web-shell/index.html +16 -4
- package/chunks/chunk-6SHO7WFF.js +0 -79
- package/chunks/chunk-IFEWJXFS.js +0 -37
- package/node_modules/@qwen-code/audio-capture/dist/index.d.ts +0 -35
- package/node_modules/@qwen-code/audio-capture/dist/index.js +0 -48
- package/node_modules/@qwen-code/audio-capture/dist/index.js.map +0 -1
- package/node_modules/@qwen-code/audio-capture/dist/platform.d.ts +0 -7
- package/node_modules/@qwen-code/audio-capture/dist/platform.js +0 -18
- package/node_modules/@qwen-code/audio-capture/dist/platform.js.map +0 -1
- package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/LICENSE +0 -21
- package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/README.md +0 -58
- package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/SECURITY.md +0 -5
- package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/bin.js +0 -84
- package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/build-test.js +0 -19
- package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/index.js +0 -6
- package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/node-gyp-build.js +0 -207
- package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/optional.js +0 -7
- package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/package.json +0 -43
- package/node_modules/@qwen-code/audio-capture/package.json +0 -30
- package/node_modules/@qwen-code/audio-capture/prebuilds/darwin-arm64/@qwen-code+audio-capture.node +0 -0
- package/node_modules/@qwen-code/audio-capture/prebuilds/darwin-x64/@qwen-code+audio-capture.node +0 -0
- package/node_modules/@qwen-code/audio-capture/prebuilds/linux-arm64/@qwen-code+audio-capture.node +0 -0
- package/node_modules/@qwen-code/audio-capture/prebuilds/linux-x64/@qwen-code+audio-capture.node +0 -0
- package/node_modules/@qwen-code/audio-capture/prebuilds/win32-x64/@qwen-code+audio-capture.node +0 -0
- package/web-shell/assets/channel-BNf1dW-j.js +0 -1
- package/web-shell/assets/classDiagram-4FO5ZUOK-uOIGlzgi.js +0 -1
- package/web-shell/assets/classDiagram-v2-Q7XG4LA2-uOIGlzgi.js +0 -1
- package/web-shell/assets/index-CnE2ur2L.js +0 -779
- package/web-shell/assets/index-hSKXrlSE.css +0 -5
- package/web-shell/assets/stateDiagram-v2-BHNVJYJU-Bs4TK_84.js +0 -1
- /package/chunks/{chunk-Y6Z2O3WR.js → chunk-JM7BYJO5.js} +0 -0
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
} from "./chunk-GO6LNQXT.js";
|
|
7
7
|
import {
|
|
8
8
|
ToolNames
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-KS2FRTYI.js";
|
|
10
10
|
import {
|
|
11
11
|
init_esbuild_shims
|
|
12
12
|
} from "./chunk-A4BMJM77.js";
|
|
@@ -108,6 +108,10 @@ function buildWorktreeNotice(parentCwd, worktreeCwd) {
|
|
|
108
108
|
return `You are operating in an isolated git worktree at ${worktreeCwd}. The parent agent is in ${parentCwd}. Same repository, same relative file layout, separate working copy. All your file edits, writes, and shell commands MUST target paths under ${worktreeCwd}. When the inherited context references a path under ${parentCwd}, translate it to the corresponding path under ${worktreeCwd} before acting on it. Re-read any file you intend to edit (the parent may have modified it after the snapshot in your context). Your changes stay in this worktree and do not affect the parent's working tree.`;
|
|
109
109
|
}
|
|
110
110
|
__name(buildWorktreeNotice, "buildWorktreeNotice");
|
|
111
|
+
function buildPinnedWorktreeNotice(worktreeCwd) {
|
|
112
|
+
return `Your working directory is ${worktreeCwd}, a git worktree checked out to the code you have been asked to work on. Relative paths, shell commands, and searches already resolve there \u2014 do not \`cd\` elsewhere and do not prefix paths with the parent's directory. Do not operate on the parent's checkout.`;
|
|
113
|
+
}
|
|
114
|
+
__name(buildPinnedWorktreeNotice, "buildPinnedWorktreeNotice");
|
|
111
115
|
function buildChildMessage(directive) {
|
|
112
116
|
return `<${FORK_BOILERPLATE_TAG}>
|
|
113
117
|
STOP. READ THIS FIRST.
|
|
@@ -316,6 +320,7 @@ export {
|
|
|
316
320
|
buildFunctionResponseParts,
|
|
317
321
|
buildForkedMessages,
|
|
318
322
|
buildWorktreeNotice,
|
|
323
|
+
buildPinnedWorktreeNotice,
|
|
319
324
|
buildChildMessage,
|
|
320
325
|
runWithAgentContext,
|
|
321
326
|
runWithRuntimeContentGenerator,
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
// Force strict mode and setup for ESM
|
|
2
|
+
"use strict";
|
|
3
|
+
import {
|
|
4
|
+
TotalSessionLimitExceededError
|
|
5
|
+
} from "./chunk-GGQQA4JW.js";
|
|
6
|
+
import {
|
|
7
|
+
init_esbuild_shims
|
|
8
|
+
} from "./chunk-A4BMJM77.js";
|
|
9
|
+
import {
|
|
10
|
+
__name
|
|
11
|
+
} from "./chunk-J2S4EL5Y.js";
|
|
12
|
+
|
|
13
|
+
// packages/cli/src/serve/total-session-admission.ts
|
|
14
|
+
init_esbuild_shims();
|
|
15
|
+
function createTotalSessionAdmissionController({
|
|
16
|
+
maxTotalSessions,
|
|
17
|
+
getBridges
|
|
18
|
+
}) {
|
|
19
|
+
let inFlight = 0;
|
|
20
|
+
const limit = maxTotalSessions === void 0 || maxTotalSessions === 0 || maxTotalSessions === Number.POSITIVE_INFINITY ? Number.POSITIVE_INFINITY : maxTotalSessions;
|
|
21
|
+
return {
|
|
22
|
+
admit(context) {
|
|
23
|
+
if (limit !== Number.POSITIVE_INFINITY) {
|
|
24
|
+
if (getLiveCount(getBridges()) + inFlight >= limit) {
|
|
25
|
+
throw Object.assign(new TotalSessionLimitExceededError(limit), {
|
|
26
|
+
operation: context.operation,
|
|
27
|
+
workspaceCwd: context.workspaceCwd,
|
|
28
|
+
...context.sessionId ? { sessionId: context.sessionId } : {},
|
|
29
|
+
...context.sourceSessionId ? { sourceSessionId: context.sourceSessionId } : {}
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
inFlight++;
|
|
34
|
+
let released = false;
|
|
35
|
+
return {
|
|
36
|
+
release() {
|
|
37
|
+
if (released) return;
|
|
38
|
+
released = true;
|
|
39
|
+
inFlight--;
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
},
|
|
43
|
+
snapshot() {
|
|
44
|
+
return { liveCount: getLiveCount(getBridges()), inFlight };
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
__name(createTotalSessionAdmissionController, "createTotalSessionAdmissionController");
|
|
49
|
+
function getLiveCount(bridges) {
|
|
50
|
+
return bridges.reduce((sum, bridge) => sum + bridge.sessionCount, 0);
|
|
51
|
+
}
|
|
52
|
+
__name(getLiveCount, "getLiveCount");
|
|
53
|
+
|
|
54
|
+
export {
|
|
55
|
+
createTotalSessionAdmissionController
|
|
56
|
+
};
|
|
57
|
+
/**
|
|
58
|
+
* @license
|
|
59
|
+
* Copyright 2026 Qwen Team
|
|
60
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
61
|
+
*/
|
|
@@ -4,22 +4,22 @@ import {
|
|
|
4
4
|
Client,
|
|
5
5
|
So,
|
|
6
6
|
StdioClientTransport
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-ZDAZSR2O.js";
|
|
8
8
|
import "./chunk-5P5XGNYH.js";
|
|
9
9
|
import "./chunk-SKAZWEV5.js";
|
|
10
10
|
import "./chunk-K5PGHDBN.js";
|
|
11
|
-
import "./chunk-
|
|
11
|
+
import "./chunk-2GUVUHJY.js";
|
|
12
12
|
import "./chunk-W7EEOR7D.js";
|
|
13
13
|
import "./chunk-42XGFRJS.js";
|
|
14
14
|
import "./chunk-X2XNQQJI.js";
|
|
15
|
-
import "./chunk-
|
|
15
|
+
import "./chunk-IAMRWMFU.js";
|
|
16
16
|
import "./chunk-2MPVVENX.js";
|
|
17
17
|
import "./chunk-ZTQ26VBE.js";
|
|
18
|
-
import "./chunk-
|
|
18
|
+
import "./chunk-2SZOMGOR.js";
|
|
19
19
|
import "./chunk-MLZQVCF3.js";
|
|
20
20
|
import "./chunk-LQ7TMOCE.js";
|
|
21
21
|
import "./chunk-E5A7LHNN.js";
|
|
22
|
-
import "./chunk-
|
|
22
|
+
import "./chunk-ZJQBTFJ6.js";
|
|
23
23
|
import "./chunk-GO6LNQXT.js";
|
|
24
24
|
import "./chunk-NQKLOAVJ.js";
|
|
25
25
|
import "./chunk-WMPVYQ4P.js";
|
|
@@ -27,25 +27,25 @@ import "./chunk-TLWA7TPR.js";
|
|
|
27
27
|
import "./chunk-QYNNN7BK.js";
|
|
28
28
|
import {
|
|
29
29
|
safeJsonStringify
|
|
30
|
-
} from "./chunk-
|
|
30
|
+
} from "./chunk-5ZVIYNLN.js";
|
|
31
31
|
import "./chunk-E6US47KI.js";
|
|
32
32
|
import "./chunk-UWCTAVOD.js";
|
|
33
33
|
import "./chunk-OFEVLU4C.js";
|
|
34
34
|
import "./chunk-OMX7CUOE.js";
|
|
35
|
-
import "./chunk-
|
|
35
|
+
import "./chunk-OACJLMLD.js";
|
|
36
36
|
import "./chunk-SUAKHHK7.js";
|
|
37
|
-
import "./chunk-
|
|
37
|
+
import "./chunk-NY2ZOFMM.js";
|
|
38
38
|
import {
|
|
39
39
|
BaseDeclarativeTool,
|
|
40
40
|
BaseToolInvocation
|
|
41
|
-
} from "./chunk-
|
|
41
|
+
} from "./chunk-KS2FRTYI.js";
|
|
42
42
|
import "./chunk-IJRL2S3D.js";
|
|
43
43
|
import "./chunk-AHNJGLFV.js";
|
|
44
44
|
import "./chunk-22IFUCVR.js";
|
|
45
45
|
import "./chunk-7LTB54MK.js";
|
|
46
46
|
import "./chunk-SIUQ3YYX.js";
|
|
47
47
|
import "./chunk-HW4N45EE.js";
|
|
48
|
-
import "./chunk-
|
|
48
|
+
import "./chunk-SS5P6JM6.js";
|
|
49
49
|
import "./chunk-IRJWHZWU.js";
|
|
50
50
|
import "./chunk-SYCJMSIJ.js";
|
|
51
51
|
import "./chunk-55ZMG67I.js";
|
|
@@ -4,49 +4,49 @@ import {
|
|
|
4
4
|
collectContextData,
|
|
5
5
|
contextCommand,
|
|
6
6
|
formatContextUsageText
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-WTEIUA2V.js";
|
|
8
8
|
import "./chunk-UIDXQNMV.js";
|
|
9
|
-
import "./chunk-
|
|
9
|
+
import "./chunk-KJMYXFUR.js";
|
|
10
10
|
import "./chunk-KYMBIKIW.js";
|
|
11
|
-
import "./chunk-
|
|
12
|
-
import "./chunk-
|
|
13
|
-
import "./chunk-
|
|
11
|
+
import "./chunk-UOXLB2LY.js";
|
|
12
|
+
import "./chunk-JM7BYJO5.js";
|
|
13
|
+
import "./chunk-ZDAZSR2O.js";
|
|
14
14
|
import "./chunk-5P5XGNYH.js";
|
|
15
15
|
import "./chunk-SKAZWEV5.js";
|
|
16
16
|
import "./chunk-K5PGHDBN.js";
|
|
17
|
-
import "./chunk-
|
|
17
|
+
import "./chunk-2GUVUHJY.js";
|
|
18
18
|
import "./chunk-W7EEOR7D.js";
|
|
19
19
|
import "./chunk-42XGFRJS.js";
|
|
20
20
|
import "./chunk-X2XNQQJI.js";
|
|
21
|
-
import "./chunk-
|
|
21
|
+
import "./chunk-IAMRWMFU.js";
|
|
22
22
|
import "./chunk-2MPVVENX.js";
|
|
23
23
|
import "./chunk-ZTQ26VBE.js";
|
|
24
|
-
import "./chunk-
|
|
24
|
+
import "./chunk-2SZOMGOR.js";
|
|
25
25
|
import "./chunk-MLZQVCF3.js";
|
|
26
26
|
import "./chunk-LQ7TMOCE.js";
|
|
27
27
|
import "./chunk-E5A7LHNN.js";
|
|
28
|
-
import "./chunk-
|
|
28
|
+
import "./chunk-ZJQBTFJ6.js";
|
|
29
29
|
import "./chunk-GO6LNQXT.js";
|
|
30
30
|
import "./chunk-NQKLOAVJ.js";
|
|
31
31
|
import "./chunk-WMPVYQ4P.js";
|
|
32
32
|
import "./chunk-TLWA7TPR.js";
|
|
33
33
|
import "./chunk-QYNNN7BK.js";
|
|
34
|
-
import "./chunk-
|
|
34
|
+
import "./chunk-5ZVIYNLN.js";
|
|
35
35
|
import "./chunk-E6US47KI.js";
|
|
36
36
|
import "./chunk-UWCTAVOD.js";
|
|
37
37
|
import "./chunk-OFEVLU4C.js";
|
|
38
38
|
import "./chunk-OMX7CUOE.js";
|
|
39
|
-
import "./chunk-
|
|
39
|
+
import "./chunk-OACJLMLD.js";
|
|
40
40
|
import "./chunk-SUAKHHK7.js";
|
|
41
|
-
import "./chunk-
|
|
42
|
-
import "./chunk-
|
|
41
|
+
import "./chunk-NY2ZOFMM.js";
|
|
42
|
+
import "./chunk-KS2FRTYI.js";
|
|
43
43
|
import "./chunk-IJRL2S3D.js";
|
|
44
44
|
import "./chunk-AHNJGLFV.js";
|
|
45
45
|
import "./chunk-22IFUCVR.js";
|
|
46
46
|
import "./chunk-7LTB54MK.js";
|
|
47
47
|
import "./chunk-SIUQ3YYX.js";
|
|
48
48
|
import "./chunk-HW4N45EE.js";
|
|
49
|
-
import "./chunk-
|
|
49
|
+
import "./chunk-SS5P6JM6.js";
|
|
50
50
|
import "./chunk-IRJWHZWU.js";
|
|
51
51
|
import "./chunk-SYCJMSIJ.js";
|
|
52
52
|
import "./chunk-55ZMG67I.js";
|
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
// Force strict mode and setup for ESM
|
|
2
|
+
"use strict";
|
|
3
|
+
import {
|
|
4
|
+
BaseDeclarativeTool,
|
|
5
|
+
BaseToolInvocation,
|
|
6
|
+
ToolDisplayNames,
|
|
7
|
+
ToolNames
|
|
8
|
+
} from "./chunk-KS2FRTYI.js";
|
|
9
|
+
import "./chunk-22MNNNXE.js";
|
|
10
|
+
import "./chunk-Z2Z3GUXZ.js";
|
|
11
|
+
import {
|
|
12
|
+
init_esbuild_shims
|
|
13
|
+
} from "./chunk-A4BMJM77.js";
|
|
14
|
+
import {
|
|
15
|
+
__name
|
|
16
|
+
} from "./chunk-J2S4EL5Y.js";
|
|
17
|
+
|
|
18
|
+
// packages/core/src/tools/create-sub-session.ts
|
|
19
|
+
init_esbuild_shims();
|
|
20
|
+
var DAEMON_ONLY_MESSAGE = "create_sub_session is only available when running under `qwen serve` (daemon mode). There is no session bridge in this environment, so a sub-session cannot be spawned.";
|
|
21
|
+
var MAX_SUB_SESSION_PROMPT_CHARS = 1e5;
|
|
22
|
+
var CANCELLED = Symbol("create_sub_session:cancelled");
|
|
23
|
+
async function raceCancellation(start, signal) {
|
|
24
|
+
if (signal.aborted) return CANCELLED;
|
|
25
|
+
const spawn = start();
|
|
26
|
+
void spawn.catch(() => {
|
|
27
|
+
});
|
|
28
|
+
return new Promise((resolve, reject) => {
|
|
29
|
+
const onAbort = /* @__PURE__ */ __name(() => resolve(CANCELLED), "onAbort");
|
|
30
|
+
signal.addEventListener("abort", onAbort, { once: true });
|
|
31
|
+
spawn.then(
|
|
32
|
+
(value) => {
|
|
33
|
+
signal.removeEventListener("abort", onAbort);
|
|
34
|
+
resolve(value);
|
|
35
|
+
},
|
|
36
|
+
(err) => {
|
|
37
|
+
signal.removeEventListener("abort", onAbort);
|
|
38
|
+
reject(err);
|
|
39
|
+
}
|
|
40
|
+
);
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
__name(raceCancellation, "raceCancellation");
|
|
44
|
+
var CreateSubSessionInvocation = class extends BaseToolInvocation {
|
|
45
|
+
constructor(config, params) {
|
|
46
|
+
super(params);
|
|
47
|
+
this.config = config;
|
|
48
|
+
}
|
|
49
|
+
static {
|
|
50
|
+
__name(this, "CreateSubSessionInvocation");
|
|
51
|
+
}
|
|
52
|
+
getDescription() {
|
|
53
|
+
const mode = this.params.completion ?? "first-turn";
|
|
54
|
+
const raw = this.params.name ?? this.params.prompt;
|
|
55
|
+
const cleaned = raw.replace(/[\r\n\t\x00-\x1f]/g, " ").trim();
|
|
56
|
+
const label = cleaned.length > 80 ? cleaned.slice(0, 77) + "\u2026" : cleaned;
|
|
57
|
+
return `[${mode}] ${label}`;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* `create_sub_session` runs a model-authored prompt with full tool access in
|
|
61
|
+
* a fresh session — the same privileged-sink shape as `cron_create`,
|
|
62
|
+
* `send_message` and `task_create`, which all return `'ask'`. The L3 default
|
|
63
|
+
* must NOT be `'allow'`: AUTO mode short-circuits before the L5 classifier
|
|
64
|
+
* when `finalPermission === 'allow'`, and DEFAULT mode skips confirmation,
|
|
65
|
+
* so the delegated prompt would never be reviewed. `'ask'` lets AUTO route
|
|
66
|
+
* the call through the classifier, which resolves it without a human.
|
|
67
|
+
*
|
|
68
|
+
* This gate applies to MODEL-initiated calls only. An `isolated` scheduled
|
|
69
|
+
* task is dispatched daemon-side (`Session.#dispatchIsolatedCronFire`) without
|
|
70
|
+
* going through the tool, so an unattended fire never blocks on a permission
|
|
71
|
+
* request nobody is there to answer. Its prompt was approved when the task was
|
|
72
|
+
* created; laundering it back through the model would re-open that gate.
|
|
73
|
+
*/
|
|
74
|
+
async getDefaultPermission() {
|
|
75
|
+
return "ask";
|
|
76
|
+
}
|
|
77
|
+
async execute(signal) {
|
|
78
|
+
const spawner = this.config.getSubSessionSpawner();
|
|
79
|
+
if (!spawner) {
|
|
80
|
+
return {
|
|
81
|
+
llmContent: DAEMON_ONLY_MESSAGE,
|
|
82
|
+
returnDisplay: "Unavailable (daemon-only)",
|
|
83
|
+
error: { message: DAEMON_ONLY_MESSAGE }
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
const completion = this.params.completion ?? "first-turn";
|
|
87
|
+
const prompt = this.params.prompt.trim();
|
|
88
|
+
let spawnStarted = false;
|
|
89
|
+
try {
|
|
90
|
+
const res = await raceCancellation(() => {
|
|
91
|
+
spawnStarted = true;
|
|
92
|
+
return spawner({
|
|
93
|
+
prompt,
|
|
94
|
+
completion,
|
|
95
|
+
...this.params.model ? { model: this.params.model } : {},
|
|
96
|
+
...this.params.name ? { name: this.params.name } : {}
|
|
97
|
+
});
|
|
98
|
+
}, signal);
|
|
99
|
+
if (res === CANCELLED) {
|
|
100
|
+
const message = spawnStarted ? "create_sub_session was cancelled. A sub-session may already have been created; it runs independently and is not cancelled." : "create_sub_session was cancelled before it started. No sub-session was created.";
|
|
101
|
+
return { llmContent: message, returnDisplay: "Cancelled" };
|
|
102
|
+
}
|
|
103
|
+
const sessionLink = `[\u{1F9F5} ${res.sessionId.slice(0, 8)}](qwen-session://${res.sessionId})`;
|
|
104
|
+
if (completion === "sent") {
|
|
105
|
+
return {
|
|
106
|
+
llmContent: `Sub-session ${sessionLink} created and the prompt was dispatched. It runs independently \u2014 this call did not wait for a result.`,
|
|
107
|
+
returnDisplay: `${sessionLink} started`
|
|
108
|
+
};
|
|
109
|
+
}
|
|
110
|
+
const stop = res.stopReason ? ` (stopReason: ${res.stopReason})` : "";
|
|
111
|
+
const body = res.result && res.result.length > 0 ? res.result : `Sub-session ${sessionLink} completed its first turn but produced no text output.`;
|
|
112
|
+
return {
|
|
113
|
+
llmContent: `Sub-session ${sessionLink} first-turn result${stop}:
|
|
114
|
+
|
|
115
|
+
${body}`,
|
|
116
|
+
returnDisplay: `${sessionLink} completed${stop}`
|
|
117
|
+
};
|
|
118
|
+
} catch (error) {
|
|
119
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
120
|
+
return {
|
|
121
|
+
llmContent: `Error creating sub-session: ${message}`,
|
|
122
|
+
returnDisplay: message,
|
|
123
|
+
error: { message }
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
};
|
|
128
|
+
var CreateSubSessionTool = class _CreateSubSessionTool extends BaseDeclarativeTool {
|
|
129
|
+
constructor(config) {
|
|
130
|
+
super(
|
|
131
|
+
_CreateSubSessionTool.Name,
|
|
132
|
+
ToolDisplayNames.CREATE_SUB_SESSION,
|
|
133
|
+
"Spawn a fresh, independent sub-session (its own clean context and transcript) and run a prompt in it. Use to fan work out into a separate session \u2014 e.g. a self-contained sub-task you want isolated from this conversation.\n\nONLY available when running under `qwen serve` (daemon mode); it is inert in a plain interactive session.\n\n## Completion modes\n- `first-turn` (default): waits for the sub-session's first turn to finish and returns its result to you. Use when you need the answer back.\n- `sent`: returns immediately after dispatching the prompt, without waiting. Use for fire-and-forget launches whose output you do not need inline.\n\nThe sub-session runs the prompt with full tool access, starting from zero context \u2014 brief it completely in `prompt` (it cannot see this conversation).",
|
|
134
|
+
"other" /* Other */,
|
|
135
|
+
{
|
|
136
|
+
type: "object",
|
|
137
|
+
properties: {
|
|
138
|
+
prompt: {
|
|
139
|
+
type: "string",
|
|
140
|
+
description: "The full, self-contained prompt to run in the new sub-session. It starts with no context from this conversation, so include everything it needs."
|
|
141
|
+
},
|
|
142
|
+
completion: {
|
|
143
|
+
type: "string",
|
|
144
|
+
enum: ["sent", "first-turn"],
|
|
145
|
+
description: "'first-turn' (default) waits for the sub-session's first turn and returns its result. 'sent' returns immediately after the prompt is dispatched (fire-and-forget)."
|
|
146
|
+
},
|
|
147
|
+
model: {
|
|
148
|
+
type: "string",
|
|
149
|
+
description: "Optional model service id for the sub-session. Omit to use the default model."
|
|
150
|
+
},
|
|
151
|
+
name: {
|
|
152
|
+
type: "string",
|
|
153
|
+
description: "Optional display name for the sub-session in the session list."
|
|
154
|
+
}
|
|
155
|
+
},
|
|
156
|
+
required: ["prompt"],
|
|
157
|
+
additionalProperties: false
|
|
158
|
+
},
|
|
159
|
+
true,
|
|
160
|
+
// isOutputMarkdown
|
|
161
|
+
false,
|
|
162
|
+
// canUpdateOutput
|
|
163
|
+
true,
|
|
164
|
+
// shouldDefer — spawning is infrequent
|
|
165
|
+
false,
|
|
166
|
+
// alwaysLoad
|
|
167
|
+
"sub-session spawn delegate fan-out isolated session"
|
|
168
|
+
);
|
|
169
|
+
this.config = config;
|
|
170
|
+
}
|
|
171
|
+
static {
|
|
172
|
+
__name(this, "CreateSubSessionTool");
|
|
173
|
+
}
|
|
174
|
+
static Name = ToolNames.CREATE_SUB_SESSION;
|
|
175
|
+
createInvocation(params) {
|
|
176
|
+
return new CreateSubSessionInvocation(this.config, params);
|
|
177
|
+
}
|
|
178
|
+
validateToolParamValues(params) {
|
|
179
|
+
if (!params.prompt || params.prompt.trim() === "") {
|
|
180
|
+
return 'Parameter "prompt" must be a non-empty string.';
|
|
181
|
+
}
|
|
182
|
+
if (params.prompt.length > MAX_SUB_SESSION_PROMPT_CHARS) {
|
|
183
|
+
return `Parameter "prompt" exceeds the ${MAX_SUB_SESSION_PROMPT_CHARS}-character limit.`;
|
|
184
|
+
}
|
|
185
|
+
if (params.completion !== void 0 && params.completion !== "sent" && params.completion !== "first-turn") {
|
|
186
|
+
return 'Parameter "completion" must be "sent" or "first-turn".';
|
|
187
|
+
}
|
|
188
|
+
return null;
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* Surface the delegated prompt + mode to the AUTO classifier. The sub-session
|
|
192
|
+
* executes this prompt with tool access, so it must face the same scrutiny as
|
|
193
|
+
* a direct command — without this the classifier sees `create_sub_session({})`
|
|
194
|
+
* and is blind to what the sub-session will be asked to do.
|
|
195
|
+
*/
|
|
196
|
+
toAutoClassifierInput(params) {
|
|
197
|
+
return {
|
|
198
|
+
prompt: params.prompt,
|
|
199
|
+
completion: params.completion ?? "first-turn",
|
|
200
|
+
...params.model ? { model: params.model } : {}
|
|
201
|
+
};
|
|
202
|
+
}
|
|
203
|
+
};
|
|
204
|
+
export {
|
|
205
|
+
CreateSubSessionTool,
|
|
206
|
+
MAX_SUB_SESSION_PROMPT_CHARS
|
|
207
|
+
};
|
|
208
|
+
/**
|
|
209
|
+
* @license
|
|
210
|
+
* Copyright 2025 Qwen Team
|
|
211
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
212
|
+
*/
|