@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.
Files changed (292) hide show
  1. package/bundled/qc-helper/SKILL.md +1 -0
  2. package/bundled/qc-helper/docs/configuration/auth.md +40 -55
  3. package/bundled/qc-helper/docs/configuration/model-providers.md +224 -218
  4. package/bundled/qc-helper/docs/configuration/settings.md +43 -36
  5. package/bundled/qc-helper/docs/features/_meta.ts +1 -0
  6. package/bundled/qc-helper/docs/features/channels/overview.md +20 -12
  7. package/bundled/qc-helper/docs/features/channels/plugins.md +1 -0
  8. package/bundled/qc-helper/docs/features/code-review.md +2 -1
  9. package/bundled/qc-helper/docs/features/commands.md +39 -38
  10. package/bundled/qc-helper/docs/features/computer-use.md +77 -0
  11. package/bundled/qc-helper/docs/features/hooks.md +36 -34
  12. package/bundled/qc-helper/docs/features/memory.md +1 -1
  13. package/bundled/qc-helper/docs/features/tool-use-summaries.md +19 -23
  14. package/bundled/qc-helper/docs/qwen-serve.md +22 -12
  15. package/bundled/qc-helper/docs/reference/keyboard-shortcuts.md +1 -1
  16. package/bundled/review/DESIGN.md +14 -13
  17. package/bundled/review/SKILL.md +38 -61
  18. package/chunks/{MaxSizedBox-XY5LIO5O.js → MaxSizedBox-LOFYQFYJ.js} +13 -14
  19. package/chunks/{StandaloneSessionPicker-APISIRJZ.js → StandaloneSessionPicker-U5OQBGEB.js} +31 -29
  20. package/chunks/{acpAgent-MMOSC2YA.js → acpAgent-SDIFRIED.js} +637 -131
  21. package/chunks/{agent-TKIBLLQT.js → agent-JIBBVHNQ.js} +10 -10
  22. package/chunks/{agent-headless-VLX4C7KX.js → agent-headless-6LGZYJYU.js} +10 -10
  23. package/chunks/{anthropicContentGenerator-AKYPSZIV.js → anthropicContentGenerator-55REPTTF.js} +30 -3
  24. package/chunks/{artifact-tool-D233YJFH.js → artifact-tool-EIN46DPM.js} +1 -1
  25. package/chunks/{askUserQuestion-MKL5ZTMC.js → askUserQuestion-6YX6ZRX7.js} +1 -1
  26. package/chunks/{bridge-BCU73DZO.js → bridge-HVPFYNM4.js} +17 -16
  27. package/chunks/{ca-HCMB2I54.js → ca-MULEGDVS.js} +89 -5
  28. package/chunks/{channel-worker-supervisor-CRCVYQIE.js → channel-worker-supervisor-OPXXT4JK.js} +20 -3
  29. package/chunks/{chunk-DGHJTO2K.js → chunk-2AF26HVM.js} +31 -2
  30. package/chunks/{chunk-3B26UVCX.js → chunk-2GUVUHJY.js} +6 -4
  31. package/chunks/{chunk-FV7425LN.js → chunk-2SZOMGOR.js} +4 -1
  32. package/chunks/{chunk-CNSF3WO5.js → chunk-32KS5XSX.js} +3 -3
  33. package/chunks/{chunk-4UCTWSTP.js → chunk-34UUM3IN.js} +1 -1
  34. package/chunks/{chunk-G7ZG7CA6.js → chunk-3UP777ZS.js} +8 -7
  35. package/chunks/{chunk-MIG5SQNL.js → chunk-4CSVIZLT.js} +4 -4
  36. package/chunks/{chunk-GD236YPV.js → chunk-4ONWIT5C.js} +1 -1
  37. package/chunks/{chunk-4ZJIPVPB.js → chunk-4XK7TNBP.js} +8 -8
  38. package/chunks/{chunk-I4A4K72C.js → chunk-5F2H3PXG.js} +446 -232
  39. package/chunks/chunk-5HOF2K5U.js +19 -0
  40. package/chunks/{chunk-GMOWQOQQ.js → chunk-5ZVIYNLN.js} +228 -36
  41. package/chunks/chunk-6O6Z2I5Q.js +292 -0
  42. package/chunks/{chunk-RYFZCUJO.js → chunk-6QKT5VNZ.js} +14 -6
  43. package/chunks/{chunk-SD4N3QJ2.js → chunk-6ZPSVWLF.js} +61 -17
  44. package/chunks/{chunk-X265R5C6.js → chunk-7YGSDQ5J.js} +2 -2
  45. package/chunks/{chunk-PRDFOIZF.js → chunk-A6KEUFJO.js} +32 -5
  46. package/chunks/{chunk-OWVIH4HY.js → chunk-B5OAMPJ5.js} +389 -87
  47. package/chunks/{chunk-ME3YSROJ.js → chunk-CV2AT2WJ.js} +22 -10
  48. package/chunks/{chunk-U4FRHCLA.js → chunk-DDKUYKHA.js} +1912 -201
  49. package/chunks/{chunk-YDSYD7UI.js → chunk-E3SA2LY4.js} +2 -2
  50. package/chunks/{chunk-6IAWPIQ6.js → chunk-EDM5O3SX.js} +2 -2
  51. package/chunks/{chunk-CISB3IQF.js → chunk-FONJQQWI.js} +65 -6
  52. package/chunks/{chunk-FRFFNYUY.js → chunk-G3WIMNL4.js} +3 -3
  53. package/chunks/{chunk-B34OV7K2.js → chunk-GGQQA4JW.js} +13 -0
  54. package/chunks/chunk-GLE2YUPU.js +34 -0
  55. package/chunks/{chunk-MJI36HER.js → chunk-GOTMC3BX.js} +1 -1
  56. package/chunks/{chunk-RFIL6REB.js → chunk-GRB4QSBD.js} +168 -31
  57. package/chunks/chunk-GVVY7GSP.js +38 -0
  58. package/chunks/{chunk-7JGISHHZ.js → chunk-HDEUQRAR.js} +14 -156
  59. package/chunks/{chunk-NZEGNV4V.js → chunk-HPRI22FZ.js} +6 -6
  60. package/chunks/{chunk-STAZRKOT.js → chunk-I34IHZFJ.js} +117 -459
  61. package/chunks/{chunk-JF7DFPQ5.js → chunk-I3MBKL6Z.js} +12 -2
  62. package/chunks/{chunk-DNV4FSN5.js → chunk-I5XN6KDI.js} +21 -4
  63. package/chunks/{chunk-VZ7HY3YU.js → chunk-IAMRWMFU.js} +1 -1
  64. package/chunks/{chunk-44NROQYV.js → chunk-JOQMY62N.js} +1 -1
  65. package/chunks/{chunk-VQWAZSXN.js → chunk-JW4IKIZ2.js} +57 -35
  66. package/chunks/{chunk-SAIILPQ3.js → chunk-KJMYXFUR.js} +3 -1
  67. package/chunks/{chunk-AFOLR6YL.js → chunk-KQ6MKCFE.js} +102 -16
  68. package/chunks/{chunk-X3YGAX7V.js → chunk-KS2FRTYI.js} +2 -0
  69. package/chunks/{chunk-IUE7YWC3.js → chunk-LE7EF36E.js} +7 -7
  70. package/chunks/{chunk-B4U2M63D.js → chunk-LRY7HD3Q.js} +2101 -11
  71. package/chunks/{chunk-PUQLHSQ2.js → chunk-ME7E6WZB.js} +6 -8
  72. package/chunks/{chunk-LEIJKM7Q.js → chunk-MEK7ZRJ3.js} +1 -1
  73. package/chunks/{chunk-AJBEAUIS.js → chunk-MG2TNCRX.js} +4 -3
  74. package/chunks/{chunk-GL5TV7B5.js → chunk-MSMQURDV.js} +21 -5
  75. package/chunks/{chunk-6BN7NZ5Z.js → chunk-NXDJLKKX.js} +4 -6
  76. package/chunks/{chunk-FEJ2FZ3U.js → chunk-NY2ZOFMM.js} +1 -1
  77. package/chunks/{chunk-QZF5U5KA.js → chunk-NY5BE643.js} +8 -8
  78. package/chunks/{chunk-4RQIB5UZ.js → chunk-O2YT7VB4.js} +0 -34
  79. package/chunks/{chunk-4KJ2BPIT.js → chunk-OACJLMLD.js} +2 -38
  80. package/chunks/chunk-PCWSPWXZ.js +168 -0
  81. package/chunks/{chunk-XPJH4PKR.js → chunk-PJ74K3DH.js} +1 -1
  82. package/chunks/{chunk-FTFXDZYI.js → chunk-PW7VWRLX.js} +45 -29
  83. package/chunks/chunk-R3SLDK6Y.js +468 -0
  84. package/chunks/{chunk-4O344UEE.js → chunk-SDJOZOYY.js} +38 -18
  85. package/chunks/{chunk-ALZ75L2X.js → chunk-SMYIBRAA.js} +412 -376
  86. package/chunks/{chunk-CCGOFQV3.js → chunk-SS5P6JM6.js} +6 -5
  87. package/chunks/{chunk-AIY5UTFI.js → chunk-T3XHYGMG.js} +925 -2872
  88. package/chunks/{chunk-Q6OEPOOC.js → chunk-TB6GWNV4.js} +1 -1
  89. package/chunks/{chunk-24XYI5EI.js → chunk-TERKDCOZ.js} +3 -3
  90. package/chunks/chunk-TVO5C767.js +159 -0
  91. package/chunks/{chunk-TBAZMRW3.js → chunk-TVW53EK7.js} +1 -1
  92. package/chunks/chunk-TX5QZYK6.js +296 -0
  93. package/chunks/{chunk-JD33UY7E.js → chunk-TZRVTPJ6.js} +15 -9
  94. package/chunks/{chunk-65CFHNSE.js → chunk-UAFB2DNB.js} +59 -59
  95. package/chunks/{chunk-QAKFYMJI.js → chunk-UOXLB2LY.js} +152 -17
  96. package/chunks/chunk-V35MD7KN.js +13 -0
  97. package/chunks/{chunk-XSAFNANZ.js → chunk-VWDJHVXM.js} +12 -12
  98. package/chunks/{chunk-XISQIIT7.js → chunk-W77ZLCSX.js} +1 -1
  99. package/chunks/{chunk-BWVQN2HV.js → chunk-WTEIUA2V.js} +4 -4
  100. package/chunks/{chunk-TDGF35EN.js → chunk-XOHNA2S6.js} +1 -1
  101. package/chunks/{chunk-HJ3GX3Y3.js → chunk-XZVUZSDG.js} +25 -11
  102. package/chunks/{chunk-ADZG46HR.js → chunk-YHGCTQG3.js} +1 -1
  103. package/chunks/{chunk-2NPS2UDH.js → chunk-YUNPEB3Q.js} +478 -43
  104. package/chunks/chunk-Z3I3QJK3.js +47 -0
  105. package/chunks/{chunk-P7I3D7FM.js → chunk-Z466FBSA.js} +1 -1
  106. package/chunks/{chunk-YEGT55NW.js → chunk-ZDAZSR2O.js} +3009 -1220
  107. package/chunks/{chunk-VEB3NYSO.js → chunk-ZJQBTFJ6.js} +6 -1
  108. package/chunks/chunk-ZL5HN75Q.js +61 -0
  109. package/chunks/{computer-use-X4KUU3NM.js → computer-use-IW5XBECT.js} +10 -10
  110. package/chunks/{contextCommand-LAYJZF7H.js → contextCommand-4QPLK2SH.js} +14 -14
  111. package/chunks/create-sub-session-7JK3EYWA.js +212 -0
  112. package/chunks/create-sub-session-EVYZYAE3.js +364 -0
  113. package/chunks/{cron-create-JSXEIPVS.js → cron-create-2CCO2PW6.js} +2 -2
  114. package/chunks/{cron-delete-OIFVEPGU.js → cron-delete-ETVTP5IV.js} +2 -2
  115. package/chunks/{cron-list-D4ZX4IOE.js → cron-list-FS3KWOY5.js} +2 -2
  116. package/chunks/{daemon-F3I2RXP6.js → daemon-NNUYIBWA.js} +461 -0
  117. package/chunks/{daemon-status-provider-XSAFKVDS.js → daemon-status-provider-3EPG6BXX.js} +21 -19
  118. package/chunks/{de-PLLFDERI.js → de-QRG6J2CM.js} +89 -5
  119. package/chunks/{dist-YTRKAVUB.js → dist-3EIIFOJV.js} +1 -1
  120. package/chunks/{dist-PKFTNUHO.js → dist-7F5GWZDZ.js} +2 -1
  121. package/chunks/{dist-FQ5WRJPL.js → dist-CBJ7OJ5R.js} +2 -2
  122. package/chunks/{dist-OT7G2WNM.js → dist-LIFJ2YAI.js} +1 -1
  123. package/chunks/{dist-573HNSVO.js → dist-OKXOQ63L.js} +2 -1
  124. package/chunks/{dist-IMFFBMAT.js → dist-SU5LY5R4.js} +3 -1
  125. package/chunks/{earlyInputCapture-AERYYGXE.js → earlyInputCapture-HP5XAS7A.js} +10 -10
  126. package/chunks/{edit-WZTZDGCI.js → edit-MDICC6KH.js} +11 -11
  127. package/chunks/{en-GA2RMXY5.js → en-HF3KFWZG.js} +91 -5
  128. package/chunks/{enter-worktree-DEPXBJEL.js → enter-worktree-JWTRNEN4.js} +10 -10
  129. package/chunks/{enterPlanMode-JFGXZHHJ.js → enterPlanMode-GMRZMTBQ.js} +10 -10
  130. package/chunks/environment-2CJAFOFN.js +88 -0
  131. package/chunks/{errors-GMZL4QV7.js → errors-UZOVFD2U.js} +13 -13
  132. package/chunks/{exit-worktree-Y7XBK3VV.js → exit-worktree-QQGEG343.js} +10 -10
  133. package/chunks/{exitPlanMode-WQQER65F.js → exitPlanMode-YK2JVAAB.js} +10 -10
  134. package/chunks/{fast-path-W2U6XDNO.js → fast-path-6SD4JNQW.js} +12 -3
  135. package/chunks/{fast-path-settings-RCRXH2JG.js → fast-path-settings-RAQGCIT7.js} +3 -2
  136. package/chunks/{fr-GWNQG4XH.js → fr-RSCO6HHD.js} +89 -5
  137. package/chunks/{gemini-T4WX6SRW.js → gemini-TFQXPUZB.js} +436 -140
  138. package/chunks/{geminiContentGenerator-MKQACXEJ.js → geminiContentGenerator-LJ2BNXHX.js} +1 -1
  139. package/chunks/{glob-4KKSHZDF.js → glob-3IJ6JR5W.js} +10 -10
  140. package/chunks/{grep-GHRYXSLZ.js → grep-UFZ2RFQZ.js} +10 -10
  141. package/chunks/{handleAutoUpdate-HN7ZOSXY.js → handleAutoUpdate-TEZC5ZIR.js} +17 -13
  142. package/chunks/i18n-5QEODTJV.js +84 -0
  143. package/chunks/{initializer-SRN3IM42.js → initializer-222MPCLQ.js} +18 -16
  144. package/chunks/installationInfo-OZ62OHZ2.js +65 -0
  145. package/chunks/{ja-2HOTA47X.js → ja-RRFGG2DC.js} +89 -5
  146. package/chunks/{list-INTVXUPA.js → list-BN5VBIIE.js} +20 -18
  147. package/chunks/{loadedSettingsAdapter-QVHHQPGM.js → loadedSettingsAdapter-EHTUJRFB.js} +18 -16
  148. package/chunks/{loop-wakeup-OHWEMFP5.js → loop-wakeup-SR2KWT4B.js} +3 -3
  149. package/chunks/{ls-L654WOAT.js → ls-RUBQK5Q2.js} +2 -2
  150. package/chunks/{lsp-M35KE54Y.js → lsp-DUTVY2ZA.js} +3 -5
  151. package/chunks/{mcp-7V4T46RG.js → mcp-OPGHD26Y.js} +18 -16
  152. package/chunks/{monitor-464OY2UE.js → monitor-WXBDVYYV.js} +10 -10
  153. package/chunks/{nonInteractiveCli-LJEEODU2.js → nonInteractiveCli-CWIBGJ4U.js} +54 -49
  154. package/chunks/{notebook-edit-BLJYCNDO.js → notebook-edit-T7P7M73F.js} +11 -11
  155. package/chunks/{openaiContentGenerator-PFF6HYB2.js → openaiContentGenerator-OES264C3.js} +7 -7
  156. package/chunks/{pidfile-LIBUENIV.js → pidfile-LJ3NLS2P.js} +10 -10
  157. package/chunks/{pt-2THT3YHA.js → pt-D4CG46JM.js} +89 -5
  158. package/chunks/{qwenContentGenerator-SUUHZ6CR.js → qwenContentGenerator-QJ67LAJ5.js} +12 -12
  159. package/chunks/{read-file-L7TBQVX7.js → read-file-KZD7TLU7.js} +5 -5
  160. package/chunks/{read-mcp-resource-CNQHBSJM.js → read-mcp-resource-Q56IMYOH.js} +1 -1
  161. package/chunks/{record-artifact-PP3LKHTS.js → record-artifact-GZ5D5HZX.js} +4 -4
  162. package/chunks/{ripGrep-CKKX3GRB.js → ripGrep-KUJLX75U.js} +10 -10
  163. package/chunks/{ru-Z67YJHBG.js → ru-O2QUEL22.js} +89 -5
  164. package/chunks/{run-qwen-serve-5OKADVLE.js → run-qwen-serve-M52KVRGI.js} +664 -153
  165. package/chunks/{scheduler-ZRW3AIDU.js → scheduler-FFATTAYZ.js} +10 -10
  166. package/chunks/{send-message-OA6MV4EU.js → send-message-HAGK3VTV.js} +2 -2
  167. package/chunks/{serve-36WS32W6.js → serve-B5S32524.js} +21 -18
  168. package/chunks/{server-M372UENX.js → server-6HK5FJMR.js} +3301 -665
  169. package/chunks/{session-F5KSNP2N.js → session-3WB76VTQ.js} +55 -50
  170. package/chunks/{settings-WFLNS3WT.js → settings-W3IX7NHK.js} +27 -23
  171. package/chunks/{shell-DEDSWN56.js → shell-HZIU2ZG7.js} +10 -10
  172. package/chunks/{skill-A2TL2NPC.js → skill-34OUFB65.js} +5 -5
  173. package/chunks/{spawnChannel-RQHUWTCL.js → spawnChannel-FTZJ3I5O.js} +12 -12
  174. package/chunks/{src-XKZMNHXS.js → src-NELBIIGI.js} +48 -10
  175. package/chunks/standalone-update-LICI2VSK.js +79 -0
  176. package/chunks/{startInteractiveUI-REKSTOHU.js → startInteractiveUI-LZEV5YI2.js} +2203 -1764
  177. package/chunks/stdioHelpers-CA7MG65Z.js +14 -0
  178. package/chunks/{syntheticOutput-F7LSDCAR.js → syntheticOutput-XFFJVCGV.js} +2 -2
  179. package/chunks/{task-create-RPFZNB4B.js → task-create-VINUSVBF.js} +3 -3
  180. package/chunks/{task-list-TGGJX7EA.js → task-list-YZ2AWQEG.js} +1 -1
  181. package/chunks/{task-stop-W7NGTMYQ.js → task-stop-PEXPKUW3.js} +1 -1
  182. package/chunks/{task-update-5WUG5MVQ.js → task-update-BHIX57YH.js} +3 -3
  183. package/chunks/{team-create-TBQVWAG7.js → team-create-2JS2OYSF.js} +10 -10
  184. package/chunks/{team-delete-UHQQ2QQX.js → team-delete-2OHXSBVS.js} +1 -1
  185. package/chunks/{team-plan-approval-FZPGUSHJ.js → team-plan-approval-PHLGYUY7.js} +10 -10
  186. package/chunks/{theme-manager-DQZVNSOC.js → theme-manager-UYXLX37P.js} +10 -10
  187. package/chunks/{todoWrite-C4ZAMSR3.js → todoWrite-7Q4ELT4F.js} +1 -1
  188. package/chunks/{tool-search-FDQ3SLNJ.js → tool-search-2MWA3GWE.js} +6 -6
  189. package/chunks/total-session-admission-PRZK35X4.js +72 -0
  190. package/chunks/{trustedFolders-Z475EIHL.js → trustedFolders-IT4JBNPG.js} +12 -12
  191. package/chunks/{updateCheck-E2ZX7RL7.js → updateCheck-X3ZWDO3Z.js} +17 -13
  192. package/chunks/updateEventEmitter-NXWTRHXY.js +10 -0
  193. package/chunks/{validateNonInterActiveAuth-O4ECBHQL.js → validateNonInterActiveAuth-IAOL7CM3.js} +51 -45
  194. package/chunks/{version-CEDD6ZZR.js → version-25QF6A5H.js} +1 -1
  195. package/chunks/{web-fetch-UYGMOHW4.js → web-fetch-I7FOWHGA.js} +2 -2
  196. package/chunks/{workflow-CQQ4J4I6.js → workflow-LZZ5U3IT.js} +11 -11
  197. package/chunks/{workspace-providers-status-MVYXMYDG.js → workspace-providers-status-7DTOAWEL.js} +21 -18
  198. package/chunks/workspace-registry-BBIPESIZ.js +76 -0
  199. package/chunks/{workspace-service-OMBR6ZLG.js → workspace-service-SY3P3FUY.js} +25 -23
  200. package/chunks/{workspace-skills-status-IMMQ7CAY.js → workspace-skills-status-GTT2A4WN.js} +20 -18
  201. package/chunks/{write-file-VWGY7AJP.js → write-file-M6IHNW3V.js} +11 -11
  202. package/chunks/{zh-7XVVRTDH.js → zh-K2EH6BDD.js} +91 -5
  203. package/chunks/{zh-TW-DPH554OG.js → zh-TW-4GPXJ7ZY.js} +91 -5
  204. package/cli.js +13 -12
  205. package/locales/ca.js +115 -7
  206. package/locales/de.js +114 -7
  207. package/locales/en.js +118 -7
  208. package/locales/fr.js +115 -7
  209. package/locales/ja.js +116 -6
  210. package/locales/pt.js +114 -7
  211. package/locales/ru.js +114 -7
  212. package/locales/zh-TW.js +114 -6
  213. package/locales/zh.js +114 -6
  214. package/package.json +3 -6
  215. package/web-shell/assets/{arc-C7hjaa7g.js → arc-G3HZaqaL.js} +1 -1
  216. package/web-shell/assets/{architectureDiagram-3BPJPVTR-pm9KtMZY.js → architectureDiagram-3BPJPVTR-DhBrwwch.js} +1 -1
  217. package/web-shell/assets/{blockDiagram-GPEHLZMM-CApElKsU.js → blockDiagram-GPEHLZMM-16JbbF0N.js} +1 -1
  218. package/web-shell/assets/{c4Diagram-AAUBKEIU-BeDe0-9N.js → c4Diagram-AAUBKEIU-DQ3-pKgc.js} +1 -1
  219. package/web-shell/assets/channel-CX7ZHuuL.js +1 -0
  220. package/web-shell/assets/{chunk-2J33WTMH-DJEkmLdl.js → chunk-2J33WTMH-ERCn30sp.js} +1 -1
  221. package/web-shell/assets/{chunk-4BX2VUAB-DXX8gdpe.js → chunk-4BX2VUAB-DTysfbFi.js} +1 -1
  222. package/web-shell/assets/{chunk-55IACEB6-DORmk1kQ.js → chunk-55IACEB6-BFGrbTBi.js} +1 -1
  223. package/web-shell/assets/{chunk-727SXJPM-DWmO4mCZ.js → chunk-727SXJPM-DCX4Oar-.js} +1 -1
  224. package/web-shell/assets/{chunk-AQP2D5EJ-C7LRaYw2.js → chunk-AQP2D5EJ-CgT6sBr3.js} +1 -1
  225. package/web-shell/assets/{chunk-FMBD7UC4-CCdXgyC5.js → chunk-FMBD7UC4-C1Uuk1KV.js} +1 -1
  226. package/web-shell/assets/{chunk-ND2GUHAM-SyL_xvWc.js → chunk-ND2GUHAM-DajgESiu.js} +1 -1
  227. package/web-shell/assets/{chunk-QZHKN3VN-BzOuCKxa.js → chunk-QZHKN3VN-DLJSvy9X.js} +1 -1
  228. package/web-shell/assets/classDiagram-4FO5ZUOK-B-oT3UI8.js +1 -0
  229. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-B-oT3UI8.js +1 -0
  230. package/web-shell/assets/{cose-bilkent-S5V4N54A-BMPWyDKc.js → cose-bilkent-S5V4N54A-CH3w3qs7.js} +1 -1
  231. package/web-shell/assets/{dagre-BM42HDAG-B_GnPWik.js → dagre-BM42HDAG-BloXan9B.js} +1 -1
  232. package/web-shell/assets/{diagram-2AECGRRQ-fJqMc3S_.js → diagram-2AECGRRQ-BbZiGcmK.js} +1 -1
  233. package/web-shell/assets/{diagram-5GNKFQAL-ximV3O9D.js → diagram-5GNKFQAL-GQlYvLJv.js} +1 -1
  234. package/web-shell/assets/{diagram-KO2AKTUF-2vVyjzqw.js → diagram-KO2AKTUF-CtIBvVq3.js} +1 -1
  235. package/web-shell/assets/{diagram-LMA3HP47-Dckcx1sT.js → diagram-LMA3HP47-D5TBo9a2.js} +1 -1
  236. package/web-shell/assets/{diagram-OG6HWLK6-BAVv47ga.js → diagram-OG6HWLK6-N0gQhw6R.js} +1 -1
  237. package/web-shell/assets/{erDiagram-TEJ5UH35-Bn3nf5J0.js → erDiagram-TEJ5UH35-zab9vDj3.js} +1 -1
  238. package/web-shell/assets/{flowDiagram-I6XJVG4X-BIbGF9JT.js → flowDiagram-I6XJVG4X-BnnjtWJa.js} +1 -1
  239. package/web-shell/assets/{ganttDiagram-6RSMTGT7-CDbhb3AH.js → ganttDiagram-6RSMTGT7-2T0SQU4f.js} +1 -1
  240. package/web-shell/assets/{gitGraphDiagram-PVQCEYII-CbKG1a_w.js → gitGraphDiagram-PVQCEYII-DAD6_que.js} +1 -1
  241. package/web-shell/assets/index-XLkWfLja.css +5 -0
  242. package/web-shell/assets/index-srlTR1Jg.js +786 -0
  243. package/web-shell/assets/{infoDiagram-5YYISTIA-DUFxTy8m.js → infoDiagram-5YYISTIA-C-j8d0xO.js} +1 -1
  244. package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-D69hrBG8.js → ishikawaDiagram-YF4QCWOH-D97bAKoT.js} +1 -1
  245. package/web-shell/assets/{journeyDiagram-JHISSGLW-DsvEw51Y.js → journeyDiagram-JHISSGLW-BJAHfJmm.js} +1 -1
  246. package/web-shell/assets/{kanban-definition-UN3LZRKU-lFFjZEYd.js → kanban-definition-UN3LZRKU-CZgR5aac.js} +1 -1
  247. package/web-shell/assets/{linear-Bo5bWzvo.js → linear-DOd4kYhA.js} +1 -1
  248. package/web-shell/assets/{mermaid.core-C_HKMJx5.js → mermaid.core-BBaplnXA.js} +5 -5
  249. package/web-shell/assets/{mindmap-definition-RKZ34NQL-DlV-NUTs.js → mindmap-definition-RKZ34NQL-IhBF_BR5.js} +1 -1
  250. package/web-shell/assets/{pieDiagram-4H26LBE5-B2e6FH2a.js → pieDiagram-4H26LBE5-B4R4sYyH.js} +1 -1
  251. package/web-shell/assets/{quadrantDiagram-W4KKPZXB-D75kSk-b.js → quadrantDiagram-W4KKPZXB-DKd1SJ61.js} +1 -1
  252. package/web-shell/assets/{requirementDiagram-4Y6WPE33-CQ6xakhM.js → requirementDiagram-4Y6WPE33-Cw96V0Xb.js} +1 -1
  253. package/web-shell/assets/{sankeyDiagram-5OEKKPKP-J_XTKrcY.js → sankeyDiagram-5OEKKPKP-C6ne_yWi.js} +1 -1
  254. package/web-shell/assets/{sequenceDiagram-3UESZ5HK-D7jTcBtf.js → sequenceDiagram-3UESZ5HK-CCyp4PDp.js} +1 -1
  255. package/web-shell/assets/{stateDiagram-AJRCARHV-CrlM_OT3.js → stateDiagram-AJRCARHV-DHvIqTmx.js} +1 -1
  256. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-DvFhmpwA.js +1 -0
  257. package/web-shell/assets/{timeline-definition-PNZ67QCA-5oZi76Ef.js → timeline-definition-PNZ67QCA-amb3n9zH.js} +1 -1
  258. package/web-shell/assets/{vennDiagram-CIIHVFJN-DO5YptPK.js → vennDiagram-CIIHVFJN-Abf2qRFJ.js} +1 -1
  259. package/web-shell/assets/{wardley-L42UT6IY-4t1eJDvM.js → wardley-L42UT6IY-BBlOp1av.js} +1 -1
  260. package/web-shell/assets/{wardleyDiagram-YWT4CUSO-DKZc661S.js → wardleyDiagram-YWT4CUSO-gE_sZ0Ak.js} +1 -1
  261. package/web-shell/assets/{xychartDiagram-2RQKCTM6-su9hp08G.js → xychartDiagram-2RQKCTM6-BwOni53i.js} +1 -1
  262. package/web-shell/index.html +16 -4
  263. package/chunks/chunk-6SHO7WFF.js +0 -79
  264. package/chunks/chunk-IFEWJXFS.js +0 -37
  265. package/node_modules/@qwen-code/audio-capture/dist/index.d.ts +0 -35
  266. package/node_modules/@qwen-code/audio-capture/dist/index.js +0 -48
  267. package/node_modules/@qwen-code/audio-capture/dist/index.js.map +0 -1
  268. package/node_modules/@qwen-code/audio-capture/dist/platform.d.ts +0 -7
  269. package/node_modules/@qwen-code/audio-capture/dist/platform.js +0 -18
  270. package/node_modules/@qwen-code/audio-capture/dist/platform.js.map +0 -1
  271. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/LICENSE +0 -21
  272. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/README.md +0 -58
  273. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/SECURITY.md +0 -5
  274. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/bin.js +0 -84
  275. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/build-test.js +0 -19
  276. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/index.js +0 -6
  277. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/node-gyp-build.js +0 -207
  278. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/optional.js +0 -7
  279. package/node_modules/@qwen-code/audio-capture/node_modules/node-gyp-build/package.json +0 -43
  280. package/node_modules/@qwen-code/audio-capture/package.json +0 -30
  281. package/node_modules/@qwen-code/audio-capture/prebuilds/darwin-arm64/@qwen-code+audio-capture.node +0 -0
  282. package/node_modules/@qwen-code/audio-capture/prebuilds/darwin-x64/@qwen-code+audio-capture.node +0 -0
  283. package/node_modules/@qwen-code/audio-capture/prebuilds/linux-arm64/@qwen-code+audio-capture.node +0 -0
  284. package/node_modules/@qwen-code/audio-capture/prebuilds/linux-x64/@qwen-code+audio-capture.node +0 -0
  285. package/node_modules/@qwen-code/audio-capture/prebuilds/win32-x64/@qwen-code+audio-capture.node +0 -0
  286. package/web-shell/assets/channel-BNf1dW-j.js +0 -1
  287. package/web-shell/assets/classDiagram-4FO5ZUOK-uOIGlzgi.js +0 -1
  288. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-uOIGlzgi.js +0 -1
  289. package/web-shell/assets/index-CnE2ur2L.js +0 -779
  290. package/web-shell/assets/index-hSKXrlSE.css +0 -5
  291. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-Bs4TK_84.js +0 -1
  292. /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-X3YGAX7V.js";
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-YEGT55NW.js";
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-3B26UVCX.js";
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-VZ7HY3YU.js";
15
+ import "./chunk-IAMRWMFU.js";
16
16
  import "./chunk-2MPVVENX.js";
17
17
  import "./chunk-ZTQ26VBE.js";
18
- import "./chunk-FV7425LN.js";
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-VEB3NYSO.js";
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-GMOWQOQQ.js";
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-4KJ2BPIT.js";
35
+ import "./chunk-OACJLMLD.js";
36
36
  import "./chunk-SUAKHHK7.js";
37
- import "./chunk-FEJ2FZ3U.js";
37
+ import "./chunk-NY2ZOFMM.js";
38
38
  import {
39
39
  BaseDeclarativeTool,
40
40
  BaseToolInvocation
41
- } from "./chunk-X3YGAX7V.js";
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-CCGOFQV3.js";
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-BWVQN2HV.js";
7
+ } from "./chunk-WTEIUA2V.js";
8
8
  import "./chunk-UIDXQNMV.js";
9
- import "./chunk-SAIILPQ3.js";
9
+ import "./chunk-KJMYXFUR.js";
10
10
  import "./chunk-KYMBIKIW.js";
11
- import "./chunk-QAKFYMJI.js";
12
- import "./chunk-Y6Z2O3WR.js";
13
- import "./chunk-YEGT55NW.js";
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-3B26UVCX.js";
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-VZ7HY3YU.js";
21
+ import "./chunk-IAMRWMFU.js";
22
22
  import "./chunk-2MPVVENX.js";
23
23
  import "./chunk-ZTQ26VBE.js";
24
- import "./chunk-FV7425LN.js";
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-VEB3NYSO.js";
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-GMOWQOQQ.js";
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-4KJ2BPIT.js";
39
+ import "./chunk-OACJLMLD.js";
40
40
  import "./chunk-SUAKHHK7.js";
41
- import "./chunk-FEJ2FZ3U.js";
42
- import "./chunk-X3YGAX7V.js";
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-CCGOFQV3.js";
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
+ */