@qwen-code/qwen-code 0.19.10 → 0.19.11-nightly.20260718.767a32484

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 (307) hide show
  1. package/bundled/qc-helper/docs/configuration/model-providers.md +11 -0
  2. package/bundled/qc-helper/docs/configuration/settings.md +15 -14
  3. package/bundled/qc-helper/docs/features/approval-mode.md +2 -2
  4. package/bundled/qc-helper/docs/features/channels/dingtalk.md +30 -0
  5. package/bundled/qc-helper/docs/features/channels/overview.md +66 -17
  6. package/bundled/qc-helper/docs/features/channels/wecom.md +8 -7
  7. package/bundled/qc-helper/docs/features/sandbox.md +2 -0
  8. package/bundled/qc-helper/docs/qwen-serve-deploy-local.md +42 -7
  9. package/bundled/qc-helper/docs/qwen-serve.md +77 -46
  10. package/bundled/qc-helper/docs/reference/keyboard-shortcuts.md +1 -1
  11. package/bundled/review/SKILL.md +163 -403
  12. package/chunks/{MaxSizedBox-67ODZ4SZ.js → MaxSizedBox-ZFHA4QEQ.js} +30 -30
  13. package/chunks/{StandaloneSessionPicker-SIPBQT5Z.js → StandaloneSessionPicker-YRWOQVQA.js} +44 -44
  14. package/chunks/{acpAgent-VPZJXLFX.js → acpAgent-U2P2IESZ.js} +1423 -487
  15. package/chunks/{agent-Z7NWL6XL.js → agent-GQXX6X5Y.js} +26 -26
  16. package/chunks/{agent-headless-73HZ6ROQ.js → agent-headless-3572NBCK.js} +26 -26
  17. package/chunks/{anthropicContentGenerator-56U3YCP2.js → anthropicContentGenerator-Y65DMM64.js} +103 -18
  18. package/chunks/{artifact-tool-BWZZJ42H.js → artifact-tool-WR7I2XON.js} +2 -2
  19. package/chunks/{askUserQuestion-WU3S5A5T.js → askUserQuestion-B4FUTPHD.js} +2 -44
  20. package/chunks/{bridge-XFKW6S7Q.js → bridge-N5RMGD7G.js} +31 -33
  21. package/chunks/{ca-C2JTT2N5.js → ca-M3GQQ26D.js} +7 -2
  22. package/chunks/channel-worker-group-HZVJKLGX.js +21 -0
  23. package/chunks/{channel-worker-manager-5RWKSGEU.js → channel-worker-manager-3WDK4HNS.js} +34 -10
  24. package/chunks/{channel-worker-supervisor-PCDAZN4D.js → channel-worker-supervisor-U2W6Q5F7.js} +6 -4
  25. package/chunks/{chunk-YYPXHMWO.js → chunk-2XRGFF5K.js} +6 -6
  26. package/chunks/{chunk-ZKMGAFYV.js → chunk-2YSZE74N.js} +2 -2
  27. package/chunks/{chunk-L5U3ELZX.js → chunk-335ECZTA.js} +1 -1
  28. package/chunks/{chunk-5EBKKSBX.js → chunk-336KPNNV.js} +2 -2
  29. package/chunks/{chunk-Q5GLXH5Q.js → chunk-3CL5SEDT.js} +6 -6
  30. package/chunks/{chunk-2FO5GFKZ.js → chunk-3DJY4IFO.js} +1 -1
  31. package/chunks/{chunk-CJFNEBYB.js → chunk-3NWYQ7FX.js} +2 -2
  32. package/chunks/{chunk-WIASPMLX.js → chunk-3X2CFOUM.js} +358 -298
  33. package/chunks/{chunk-K7CRWKOE.js → chunk-3YJZ6WNY.js} +5812 -4520
  34. package/chunks/{chunk-Y66VOBRP.js → chunk-4CA4WUMS.js} +2 -2
  35. package/chunks/{chunk-LQIDP6K5.js → chunk-4CHDYDG3.js} +1 -1
  36. package/chunks/{chunk-TISZXPAX.js → chunk-4HCYNDMG.js} +1 -1
  37. package/chunks/chunk-4JBTZBCW.js +140 -0
  38. package/chunks/{chunk-TV6K2FB4.js → chunk-4RPARQ5D.js} +2 -2
  39. package/chunks/{chunk-RCEEXIOO.js → chunk-4XCVGEEX.js} +3 -3
  40. package/chunks/{chunk-N6FXRR6P.js → chunk-57RWF6R7.js} +1 -1
  41. package/chunks/chunk-5O34IMY5.js +59 -0
  42. package/chunks/{chunk-5LROA5W4.js → chunk-5QRK2VZG.js} +8 -8
  43. package/chunks/{chunk-7L4XBYVW.js → chunk-632KROVU.js} +10 -3
  44. package/chunks/{chunk-65N2J6V2.js → chunk-64XGKNSI.js} +3 -3
  45. package/chunks/{chunk-P6LART6G.js → chunk-66IT3EY2.js} +1059 -129
  46. package/chunks/{chunk-FXMC7SL2.js → chunk-6ITLKEOZ.js} +3 -3
  47. package/chunks/{chunk-F7NXQH4Y.js → chunk-6YIRYY3P.js} +1 -1
  48. package/chunks/{chunk-GGJII3FM.js → chunk-6Z5NRZVU.js} +92 -3
  49. package/chunks/{chunk-DPFBNG72.js → chunk-AEKYFMYE.js} +1 -1
  50. package/chunks/{chunk-2UUAIFQO.js → chunk-ANRANWVE.js} +9 -1
  51. package/chunks/{chunk-SXU3KKNI.js → chunk-ATJ7H5AS.js} +419 -76
  52. package/chunks/{chunk-6GETGQWP.js → chunk-C5NSOSF4.js} +64 -18
  53. package/chunks/{chunk-TQBODCFD.js → chunk-CMVFTMRD.js} +251 -3
  54. package/chunks/{chunk-DK33QJ3V.js → chunk-CZSAIBUB.js} +733 -14
  55. package/chunks/{chunk-3MX7D6QN.js → chunk-DASWPKXR.js} +32 -4
  56. package/chunks/{chunk-JSJFKYWT.js → chunk-DPSHAB47.js} +2 -2
  57. package/chunks/{chunk-7MJAZMXK.js → chunk-ECZFTRTP.js} +29 -78
  58. package/chunks/{chunk-H3FQOPPS.js → chunk-EKG3BHQY.js} +4 -4
  59. package/chunks/{chunk-FSA7ERJ2.js → chunk-F2RR4HO2.js} +1 -1
  60. package/chunks/{chunk-EQY6POVO.js → chunk-F5XYN5VF.js} +2 -2
  61. package/chunks/chunk-FEOZBUMT.js +77 -0
  62. package/chunks/{chunk-L62SEJWY.js → chunk-FHUXCRAF.js} +4 -4
  63. package/chunks/{chunk-OFEVHGVU.js → chunk-FSJGBUQI.js} +818 -31
  64. package/chunks/{chunk-FBU7WRZI.js → chunk-FUTHTZVV.js} +1 -1
  65. package/chunks/{chunk-ZRKBI3DP.js → chunk-FZRES4GK.js} +1 -1
  66. package/chunks/{chunk-OKAIGAYW.js → chunk-G274ETR6.js} +3 -3
  67. package/chunks/{chunk-6GKMJPOC.js → chunk-GA3WUOO7.js} +5 -5
  68. package/chunks/{chunk-X362TMXZ.js → chunk-GAQOQMHY.js} +8 -6
  69. package/chunks/{chunk-WLXYAKV7.js → chunk-GG6RSNWS.js} +9 -4
  70. package/chunks/{chunk-CEW4HDPK.js → chunk-GUNTLALV.js} +2484 -362
  71. package/chunks/{chunk-LXLTBIDP.js → chunk-HCCR43AY.js} +1 -1
  72. package/chunks/{chunk-RDRVMDWV.js → chunk-HIMIG6PI.js} +11 -11
  73. package/chunks/{chunk-MO7O5722.js → chunk-HQXQCIT2.js} +45 -5
  74. package/chunks/{chunk-LTNI523B.js → chunk-HT7L5FCZ.js} +28 -5
  75. package/chunks/{chunk-7NAWTFVY.js → chunk-IENO2YAT.js} +3 -3
  76. package/chunks/{chunk-3XJFUTNM.js → chunk-IK5TYYVR.js} +59 -12
  77. package/chunks/{chunk-AAR5SGMD.js → chunk-IVKLDHU6.js} +7 -5
  78. package/chunks/{chunk-6W6DI34P.js → chunk-IX7O5WI3.js} +180 -8
  79. package/chunks/{chunk-SPJQO2CE.js → chunk-J2MKYJKZ.js} +2 -2
  80. package/chunks/{chunk-SPUYQB4T.js → chunk-JBAQ5BYX.js} +1 -1
  81. package/chunks/{chunk-TYLOFD2U.js → chunk-JCJPZMJV.js} +1 -1
  82. package/chunks/chunk-JDIUK2Y3.js +226 -0
  83. package/chunks/{chunk-L37RC7MQ.js → chunk-JUVTV4NF.js} +1 -1
  84. package/chunks/{chunk-WDWJ4OQJ.js → chunk-K2GBHL73.js} +4 -4
  85. package/chunks/{chunk-HHEFI4RP.js → chunk-KEVDWH3U.js} +857 -137
  86. package/chunks/{chunk-YU56QGXX.js → chunk-KTKETHMY.js} +1 -1
  87. package/chunks/{chunk-WDW64OW3.js → chunk-LGY7PG7Q.js} +5 -5
  88. package/chunks/{chunk-E67NFMF4.js → chunk-LKR7QQ63.js} +37 -3
  89. package/chunks/{chunk-4YWLED2A.js → chunk-LSFVUGXT.js} +9 -6
  90. package/chunks/{chunk-W34A5MJH.js → chunk-LTD3CHGS.js} +1 -1
  91. package/chunks/chunk-LXXMOYPL.js +22 -0
  92. package/chunks/{chunk-BBNVFRGD.js → chunk-MI2V6IWU.js} +1 -1
  93. package/chunks/{chunk-UFOKA4PR.js → chunk-O2K6BLPZ.js} +114 -4
  94. package/chunks/{chunk-B5I2IIWY.js → chunk-OBYAX5QZ.js} +6 -6
  95. package/chunks/{chunk-V7EQTZYR.js → chunk-OCQ2QTFJ.js} +203 -47
  96. package/chunks/{chunk-VBRRNQB7.js → chunk-OPVIKLKK.js} +112 -25
  97. package/chunks/{chunk-2Z5UX4KI.js → chunk-OSSDHJDU.js} +1 -1
  98. package/chunks/{chunk-TTUO4DNG.js → chunk-OXOEOOQU.js} +126 -734
  99. package/chunks/{chunk-4FMG7EDJ.js → chunk-PWYLF7SS.js} +79 -16
  100. package/chunks/chunk-QFEY6OXH.js +45 -0
  101. package/chunks/{chunk-YX4LLZ3D.js → chunk-QPRDXJIC.js} +115 -40
  102. package/chunks/{chunk-7R4DPSRA.js → chunk-R3VWUU2E.js} +1 -1
  103. package/chunks/{chunk-XLIRF7IK.js → chunk-S4N3G4BB.js} +1 -1
  104. package/chunks/{chunk-ARKANCNX.js → chunk-SGPFJMRP.js} +1 -1
  105. package/chunks/{chunk-WTSXKLG5.js → chunk-SUARMD4Q.js} +1 -1
  106. package/chunks/{chunk-PZL23GTM.js → chunk-T3W4SDRB.js} +2 -0
  107. package/chunks/chunk-T4TZQJ7W.js +48 -0
  108. package/chunks/{chunk-K4PZ5F5T.js → chunk-TVYM3Q3J.js} +101 -8
  109. package/chunks/{chunk-4LD5APFL.js → chunk-TYQMGACW.js} +1 -0
  110. package/chunks/{chunk-6OATMEYN.js → chunk-U2LNTX56.js} +12 -4
  111. package/chunks/{chunk-422XAKCK.js → chunk-U2XBPBO3.js} +4 -3
  112. package/chunks/{chunk-LNUXFLLJ.js → chunk-U4FJ26D2.js} +54 -6
  113. package/chunks/{chunk-ZQTZXVHP.js → chunk-U6OPT4H2.js} +4 -18
  114. package/chunks/{chunk-7NFB7LBQ.js → chunk-UE5TZ55T.js} +8 -0
  115. package/chunks/{chunk-CUUXANEQ.js → chunk-URP6O2PP.js} +6 -1
  116. package/chunks/{chunk-GDQQRV43.js → chunk-V2FRLYHN.js} +3 -3
  117. package/chunks/{chunk-WIEO4CWB.js → chunk-VAJS2E2D.js} +1 -1
  118. package/chunks/{chunk-TXY2C3D2.js → chunk-VNN3JNYT.js} +1 -1
  119. package/chunks/{chunk-YHN5SUIJ.js → chunk-W7H223ZZ.js} +1 -1
  120. package/chunks/{chunk-WX6SD4IQ.js → chunk-WEPXQKGP.js} +1 -1
  121. package/chunks/{chunk-KSO42X3Z.js → chunk-X6YQWCIJ.js} +21 -2
  122. package/chunks/{chunk-URU5UEK6.js → chunk-XA7OKDWM.js} +135 -68
  123. package/chunks/{chunk-Q6TUALBE.js → chunk-XAAEDML2.js} +1 -1
  124. package/chunks/{chunk-KKRTYONM.js → chunk-XSPFQQRE.js} +3 -3
  125. package/chunks/{chunk-OATTJGPJ.js → chunk-Y72B36CP.js} +7 -7
  126. package/chunks/{chunk-ZPAHLFZU.js → chunk-Z2LBNX3R.js} +2 -2
  127. package/chunks/{chunk-XXJKGHZV.js → chunk-ZTSDZQZO.js} +131 -4
  128. package/chunks/{computer-use-IYTX45WA.js → computer-use-UIFBH25Y.js} +26 -26
  129. package/chunks/{config-utils-CFT33LTP.js → config-utils-2LHI7JXU.js} +3 -3
  130. package/chunks/{contextCommand-272V77WU.js → contextCommand-VGZHKEH2.js} +28 -28
  131. package/chunks/{create-sub-session-WNX2OQVX.js → create-sub-session-DIJOV6HV.js} +2 -2
  132. package/chunks/{create-sub-session-CBJMQLYP.js → create-sub-session-OFVI4H6I.js} +26 -26
  133. package/chunks/{cron-create-36TIFKRT.js → cron-create-34GVLSW5.js} +4 -4
  134. package/chunks/{cron-delete-OQD3WULU.js → cron-delete-NMVKUL45.js} +4 -4
  135. package/chunks/{cron-list-4533T2FH.js → cron-list-277ZOR7L.js} +4 -4
  136. package/chunks/{daemon-RNGFPMAB.js → daemon-72MEV3TY.js} +361 -84
  137. package/chunks/daemon-status-provider-ZJJ6AOG2.js +75 -0
  138. package/chunks/{de-2VCDRDGU.js → de-56TMDIKS.js} +7 -2
  139. package/chunks/{dist-3V3ZV6ML.js → dist-4W3UGU2A.js} +1 -1
  140. package/chunks/{dist-HNN7DR2L.js → dist-G6QCGO2K.js} +58 -30
  141. package/chunks/{dist-ERCPDVA6.js → dist-ILVRL322.js} +4 -51
  142. package/chunks/{dist-PHEPJLXD.js → dist-KEZ5JWH4.js} +2 -2
  143. package/chunks/{dist-JZE7F6YR.js → dist-LQHDHBPP.js} +1 -1
  144. package/chunks/{dist-MOEC47TR.js → dist-SVHAGOLN.js} +1 -1
  145. package/chunks/{earlyInputCapture-EN4BRREQ.js → earlyInputCapture-NPF4PVUE.js} +27 -27
  146. package/chunks/{edit-OMAF2QDR.js → edit-F7CT6NZH.js} +27 -27
  147. package/chunks/{en-NJCA3TAA.js → en-AXS2N62H.js} +12 -3
  148. package/chunks/{enter-worktree-BBZX52HG.js → enter-worktree-Z4ET3MZL.js} +26 -26
  149. package/chunks/{enterPlanMode-5NNFMBUY.js → enterPlanMode-VYR7T5NX.js} +27 -29
  150. package/chunks/{environment-7TEWMJYN.js → environment-MBTXL57Q.js} +28 -28
  151. package/chunks/{errors-I4VKVX3F.js → errors-HN36J4FR.js} +28 -28
  152. package/chunks/{exit-worktree-FUWRJI33.js → exit-worktree-RU7JYFMF.js} +26 -26
  153. package/chunks/exitPlanMode-LUBAWMZQ.js +390 -0
  154. package/chunks/{fast-path-ZA57TOH4.js → fast-path-RFT3CDNZ.js} +2 -2
  155. package/chunks/{fr-5F3E7WKD.js → fr-ZJPE5OVN.js} +7 -2
  156. package/chunks/{gemini-UOAKVXBG.js → gemini-37NTNKZF.js} +215 -231
  157. package/chunks/{geminiContentGenerator-G6UCE6MW.js → geminiContentGenerator-76HNOYNQ.js} +5 -5
  158. package/chunks/{glob-4GJQ2UFF.js → glob-DWD7JCZE.js} +32 -27
  159. package/chunks/{grep-5QSYXF2E.js → grep-NJRXFV5C.js} +32 -27
  160. package/chunks/{handleAutoUpdate-ULHNWL6R.js → handleAutoUpdate-7GBDXW6U.js} +30 -30
  161. package/chunks/{i18n-CYDUTF6F.js → i18n-MYD5VGED.js} +27 -27
  162. package/chunks/{initializer-NRFKUGIO.js → initializer-4DHPNAZG.js} +32 -32
  163. package/chunks/{installationInfo-WELKRHHE.js → installationInfo-RWOW6BZO.js} +27 -27
  164. package/chunks/{ja-66J6B53L.js → ja-57GG4QSL.js} +7 -2
  165. package/chunks/{keychain-token-storage-AU22CQI6.js → keychain-token-storage-K23CFKGN.js} +2 -2
  166. package/chunks/{list-JVDXEG2E.js → list-MMCNNHE7.js} +34 -34
  167. package/chunks/{loadedSettingsAdapter-WAM4VUTG.js → loadedSettingsAdapter-UK4JWPYU.js} +31 -31
  168. package/chunks/{loop-wakeup-MVUKDVCP.js → loop-wakeup-KCLY4XQM.js} +5 -5
  169. package/chunks/{ls-RXNIAQDE.js → ls-UNI4LAJ3.js} +4 -4
  170. package/chunks/{lsp-HB5LM5IL.js → lsp-HPACPJAN.js} +2 -2
  171. package/chunks/{mcp-YHOZN3ZM.js → mcp-AFCVA4UV.js} +31 -31
  172. package/chunks/{monitor-R7XZPJHQ.js → monitor-RK637BNO.js} +28 -27
  173. package/chunks/nonInteractiveCli-OUGWLHNV.js +129 -0
  174. package/chunks/{notebook-edit-6RNKE2L2.js → notebook-edit-LY2X3CMF.js} +27 -27
  175. package/chunks/{openaiContentGenerator-XNS5S64I.js → openaiContentGenerator-MDYDW7IA.js} +14 -14
  176. package/chunks/{pidfile-XE4RRR2P.js → pidfile-2NUYRLKB.js} +27 -27
  177. package/chunks/processUtils-7QH3VBVN.js +29 -0
  178. package/chunks/{pt-TFZO5Y6T.js → pt-MCGZ3RZ4.js} +7 -2
  179. package/chunks/{qwenContentGenerator-APDPJ3VN.js → qwenContentGenerator-3HT4TVDL.js} +28 -28
  180. package/chunks/{qwenOAuth2-LEYOU7RU.js → qwenOAuth2-3A4TJVZT.js} +5 -5
  181. package/chunks/{read-file-XSUWXSR7.js → read-file-NE4FREFR.js} +10 -10
  182. package/chunks/{read-mcp-resource-6LRTZKXI.js → read-mcp-resource-C6NT52T6.js} +2 -2
  183. package/chunks/{record-artifact-PMDTY4OS.js → record-artifact-ENCU7QCL.js} +2 -2
  184. package/chunks/{ripGrep-APB3CDMU.js → ripGrep-DBLXWQCJ.js} +26 -26
  185. package/chunks/{ru-4L4LFHIT.js → ru-GA3NZW5Q.js} +7 -2
  186. package/chunks/{run-qwen-serve-NWTGPERT.js → run-qwen-serve-3NOCI6IL.js} +63 -39
  187. package/chunks/{runtime-EIO3NQKR.js → runtime-ZI7DSZSS.js} +35 -35
  188. package/chunks/{scheduler-JJDZBDRN.js → scheduler-SOVEP5K7.js} +26 -26
  189. package/chunks/{send-message-SR4WSXP2.js → send-message-5IFPZTPE.js} +3 -3
  190. package/chunks/{serve-WTIPB3EI.js → serve-DB6OCXIA.js} +31 -31
  191. package/chunks/{server-NJPHQHLH.js → server-LDY4YVU4.js} +2257 -648
  192. package/chunks/{session-O4AO7FTS.js → session-D6OG5SKX.js} +99 -72
  193. package/chunks/{settings-HQNDK7TG.js → settings-L52ZV5LO.js} +30 -30
  194. package/chunks/{shell-UIXM6PWG.js → shell-IU27OY3Q.js} +28 -26
  195. package/chunks/{skill-3XMB4ULV.js → skill-BSOJT7LE.js} +12 -12
  196. package/chunks/{spawnChannel-3R632QRM.js → spawnChannel-HQAM25DD.js} +28 -29
  197. package/chunks/{src-USZKPUOC.js → src-7ZBIMTJZ.js} +130 -51
  198. package/chunks/{standalone-update-L5XW3D7K.js → standalone-update-77457VVK.js} +28 -28
  199. package/chunks/{startInteractiveUI-CPZOL2WB.js → startInteractiveUI-S7WC6EZG.js} +2310 -1835
  200. package/chunks/{syntheticOutput-YKFNUQZD.js → syntheticOutput-ULOVVLY4.js} +3 -3
  201. package/chunks/{task-create-NUFOHU53.js → task-create-V2DCDSET.js} +7 -7
  202. package/chunks/{task-list-Z2IKQY3S.js → task-list-DPL5ZN55.js} +5 -5
  203. package/chunks/{task-stop-KQFIVQTJ.js → task-stop-CPEQWOT6.js} +2 -2
  204. package/chunks/{task-update-HKADXSTD.js → task-update-ZR45M5Q7.js} +7 -7
  205. package/chunks/{team-create-XXPRF3IQ.js → team-create-CO7HSUON.js} +26 -26
  206. package/chunks/{team-delete-SDNTGZLG.js → team-delete-HIWXCWJU.js} +5 -5
  207. package/chunks/{team-plan-approval-EOTTKHDW.js → team-plan-approval-QDZF5YZY.js} +26 -26
  208. package/chunks/{theme-manager-P6UITO2L.js → theme-manager-UTUT3I4P.js} +27 -27
  209. package/chunks/todoWrite-HK6B3RHJ.js +358 -0
  210. package/chunks/{tool-search-DDNGK2LR.js → tool-search-2UUORA35.js} +11 -11
  211. package/chunks/{total-session-admission-PL5N7DNY.js → total-session-admission-NTWG6G3F.js} +32 -34
  212. package/chunks/{trustedFolders-C5LMF3UR.js → trustedFolders-YF37ZCN5.js} +27 -27
  213. package/chunks/update-relaunch-QFNHPMZZ.js +87 -0
  214. package/chunks/{updateCheck-QTVVISH7.js → updateCheck-B6O42VMD.js} +30 -28
  215. package/chunks/{validateNonInterActiveAuth-RY4RKBQG.js → validateNonInterActiveAuth-SCIWJ4CX.js} +65 -65
  216. package/chunks/{version-U45RYOSD.js → version-7DA6LAI3.js} +1 -1
  217. package/chunks/{web-fetch-ZSPR3PRR.js → web-fetch-B62SJXM2.js} +5 -6
  218. package/chunks/{workflow-TCIAQYOA.js → workflow-Q5WG4THP.js} +27 -27
  219. package/chunks/{workspace-providers-status-I3G2HYLY.js → workspace-providers-status-WWLAGWQW.js} +34 -34
  220. package/chunks/{workspace-registration-store-IH5GLZ6Y.js → workspace-registration-store-BVYQVY2H.js} +1 -1
  221. package/chunks/{workspace-registry-QEKBELIX.js → workspace-registry-OD7ACADD.js} +32 -34
  222. package/chunks/{workspace-service-ORKHGLP3.js → workspace-service-4LYJWS63.js} +37 -38
  223. package/chunks/{workspace-skills-status-D7QCNDYY.js → workspace-skills-status-P2AQLZZS.js} +32 -32
  224. package/chunks/{write-file-JGRQR5VM.js → write-file-TEPGXNM3.js} +60 -27
  225. package/chunks/{zh-FSAH32JB.js → zh-E34DZ2S3.js} +12 -3
  226. package/chunks/{zh-TW-D2YIE2LO.js → zh-TW-PEI2ZWUR.js} +12 -3
  227. package/cli-entry.js +92 -8
  228. package/cli.js +11 -11
  229. package/locales/ca.js +12 -2
  230. package/locales/de.js +12 -2
  231. package/locales/en.js +20 -5
  232. package/locales/fr.js +12 -2
  233. package/locales/ja.js +12 -2
  234. package/locales/pt.js +12 -2
  235. package/locales/ru.js +12 -2
  236. package/locales/zh-TW.js +19 -3
  237. package/locales/zh.js +19 -3
  238. package/package.json +3 -3
  239. package/web-shell/assets/{arc-CUeDlxvE.js → arc-Dh-N5oEG.js} +1 -1
  240. package/web-shell/assets/{architectureDiagram-3BPJPVTR-PiUszkQA.js → architectureDiagram-3BPJPVTR-DBOQgtfF.js} +1 -1
  241. package/web-shell/assets/{blockDiagram-GPEHLZMM-s2wYSO7e.js → blockDiagram-GPEHLZMM-Dyxbuyju.js} +1 -1
  242. package/web-shell/assets/{c4Diagram-AAUBKEIU-DyLxZoz9.js → c4Diagram-AAUBKEIU-DCJR5HPT.js} +1 -1
  243. package/web-shell/assets/channel-DY0fkcKT.js +1 -0
  244. package/web-shell/assets/{chunk-2J33WTMH-Dsdai7Tk.js → chunk-2J33WTMH-BkMUcy3O.js} +1 -1
  245. package/web-shell/assets/{chunk-4BX2VUAB-DEosOjV7.js → chunk-4BX2VUAB-BSm4pLQk.js} +1 -1
  246. package/web-shell/assets/{chunk-55IACEB6-sNsRLTXf.js → chunk-55IACEB6-CuRr-XgW.js} +1 -1
  247. package/web-shell/assets/{chunk-727SXJPM-DkRNZzmh.js → chunk-727SXJPM-CLv7-w3t.js} +1 -1
  248. package/web-shell/assets/{chunk-AQP2D5EJ-BrsRNpzd.js → chunk-AQP2D5EJ-Cz_n3-JW.js} +1 -1
  249. package/web-shell/assets/{chunk-FMBD7UC4-CI039lpl.js → chunk-FMBD7UC4-CFT_62Hq.js} +1 -1
  250. package/web-shell/assets/{chunk-ND2GUHAM-M-pkeIfu.js → chunk-ND2GUHAM-DWz6DOZ6.js} +1 -1
  251. package/web-shell/assets/{chunk-QZHKN3VN-C4ckGNbH.js → chunk-QZHKN3VN-C-mRhUzw.js} +1 -1
  252. package/web-shell/assets/classDiagram-4FO5ZUOK-DBvJ6PZo.js +1 -0
  253. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-DBvJ6PZo.js +1 -0
  254. package/web-shell/assets/{cose-bilkent-S5V4N54A-BciKUAFq.js → cose-bilkent-S5V4N54A-BqCZS3i1.js} +1 -1
  255. package/web-shell/assets/{dagre-BM42HDAG-C1nTSgU6.js → dagre-BM42HDAG-BGasdP8i.js} +1 -1
  256. package/web-shell/assets/{diagram-2AECGRRQ-BDPNWr1m.js → diagram-2AECGRRQ-BSyLDkMy.js} +1 -1
  257. package/web-shell/assets/{diagram-5GNKFQAL-CNFhTszL.js → diagram-5GNKFQAL-CM-ZJxWC.js} +1 -1
  258. package/web-shell/assets/{diagram-KO2AKTUF-CjPa4p5a.js → diagram-KO2AKTUF-wJdzt_C5.js} +1 -1
  259. package/web-shell/assets/{diagram-LMA3HP47-ZzPykSyG.js → diagram-LMA3HP47-DiH2fhpL.js} +1 -1
  260. package/web-shell/assets/{diagram-OG6HWLK6-0UVtZ9A4.js → diagram-OG6HWLK6-BZ9z1ZBl.js} +1 -1
  261. package/web-shell/assets/{erDiagram-TEJ5UH35-CajDZCat.js → erDiagram-TEJ5UH35-BsyWDziR.js} +1 -1
  262. package/web-shell/assets/{flowDiagram-I6XJVG4X-BRuFBIvL.js → flowDiagram-I6XJVG4X-CzdkxIrq.js} +1 -1
  263. package/web-shell/assets/{ganttDiagram-6RSMTGT7-BevGmJqG.js → ganttDiagram-6RSMTGT7-javIv2r2.js} +1 -1
  264. package/web-shell/assets/{gitGraphDiagram-PVQCEYII-DvPMpBMb.js → gitGraphDiagram-PVQCEYII-CjHstylC.js} +1 -1
  265. package/web-shell/assets/{index-DzHwQkQq.js → index-BnJGxpah.js} +1 -1
  266. package/web-shell/assets/index-DhXB9nTa.js +1161 -0
  267. package/web-shell/assets/index-vYHgZ7bL.css +5 -0
  268. package/web-shell/assets/{infoDiagram-5YYISTIA-Oixn7tA9.js → infoDiagram-5YYISTIA-yXuQsomo.js} +1 -1
  269. package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-BgKpeg-j.js → ishikawaDiagram-YF4QCWOH-a85JhE6F.js} +1 -1
  270. package/web-shell/assets/{journeyDiagram-JHISSGLW-74mwxIaA.js → journeyDiagram-JHISSGLW-Dak_4BVj.js} +1 -1
  271. package/web-shell/assets/{kanban-definition-UN3LZRKU-D4D6cEqA.js → kanban-definition-UN3LZRKU-COA-LuCV.js} +1 -1
  272. package/web-shell/assets/{linear-atZRE_L2.js → linear-DNAAAQWq.js} +1 -1
  273. package/web-shell/assets/{mermaid.core-KKudX-JC.js → mermaid.core-7Ff3aIUD.js} +5 -5
  274. package/web-shell/assets/{mindmap-definition-RKZ34NQL-CMCej9yG.js → mindmap-definition-RKZ34NQL-_rCOIODU.js} +1 -1
  275. package/web-shell/assets/{pieDiagram-4H26LBE5-nhx40X7q.js → pieDiagram-4H26LBE5-C9QCQ8EW.js} +1 -1
  276. package/web-shell/assets/{quadrantDiagram-W4KKPZXB-CUmVcN3M.js → quadrantDiagram-W4KKPZXB-CsaE4FA8.js} +1 -1
  277. package/web-shell/assets/{requirementDiagram-4Y6WPE33-C_vyEwyy.js → requirementDiagram-4Y6WPE33-tV78naTg.js} +1 -1
  278. package/web-shell/assets/{sankeyDiagram-5OEKKPKP-DU6G4VWR.js → sankeyDiagram-5OEKKPKP-Dk3Rw7BZ.js} +1 -1
  279. package/web-shell/assets/{sequenceDiagram-3UESZ5HK-DdeRR_KJ.js → sequenceDiagram-3UESZ5HK-BGsAWcMX.js} +1 -1
  280. package/web-shell/assets/{stateDiagram-AJRCARHV-C6iCI8ps.js → stateDiagram-AJRCARHV-zSxdtdoB.js} +1 -1
  281. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-vLEEtDpO.js +1 -0
  282. package/web-shell/assets/{timeline-definition-PNZ67QCA-B_Ea8Cb7.js → timeline-definition-PNZ67QCA-j0BQh9Go.js} +1 -1
  283. package/web-shell/assets/{vennDiagram-CIIHVFJN-BPUVZEJA.js → vennDiagram-CIIHVFJN-CRaUFFIu.js} +1 -1
  284. package/web-shell/assets/{wardley-L42UT6IY-BWEj0lKY.js → wardley-L42UT6IY-D7Py_ofm.js} +1 -1
  285. package/web-shell/assets/{wardleyDiagram-YWT4CUSO-BvDsdIQw.js → wardleyDiagram-YWT4CUSO-BrDIAZcp.js} +1 -1
  286. package/web-shell/assets/{xychartDiagram-2RQKCTM6-crz0QhF_.js → xychartDiagram-2RQKCTM6-Cecdw-w2.js} +1 -1
  287. package/web-shell/index.html +2 -2
  288. package/chunks/channel-worker-group-K7QKH6IG.js +0 -13
  289. package/chunks/chunk-2HRYPZT5.js +0 -25
  290. package/chunks/chunk-B7NUUEXC.js +0 -311
  291. package/chunks/chunk-CARU2RR2.js +0 -24
  292. package/chunks/chunk-GYTKQYDB.js +0 -23
  293. package/chunks/chunk-LQU7EVFA.js +0 -30
  294. package/chunks/chunk-OCPBI7J5.js +0 -18
  295. package/chunks/chunk-OJAMDVF5.js +0 -66
  296. package/chunks/chunk-QAW7PIHT.js +0 -168
  297. package/chunks/chunk-TEGEBB2I.js +0 -122
  298. package/chunks/daemon-status-provider-L4STG5VO.js +0 -76
  299. package/chunks/exitPlanMode-IHCJ5EEI.js +0 -909
  300. package/chunks/nonInteractiveCli-NSOB6D74.js +0 -129
  301. package/chunks/todoWrite-YNXB27GB.js +0 -531
  302. package/web-shell/assets/channel-DkuJJ0qd.js +0 -1
  303. package/web-shell/assets/classDiagram-4FO5ZUOK-CwqHc0TB.js +0 -1
  304. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-CwqHc0TB.js +0 -1
  305. package/web-shell/assets/index-Cnvv4VcI.css +0 -5
  306. package/web-shell/assets/index-D1Uyklxa.js +0 -1088
  307. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-C0_6nR6C.js +0 -1
@@ -2,76 +2,75 @@
2
2
  "use strict";
3
3
  import {
4
4
  createDaemonWorkspaceService
5
- } from "./chunk-OFEVHGVU.js";
6
- import "./chunk-N6FXRR6P.js";
7
- import "./chunk-FXMC7SL2.js";
8
- import "./chunk-DPFBNG72.js";
9
- import "./chunk-FSA7ERJ2.js";
5
+ } from "./chunk-FSJGBUQI.js";
6
+ import "./chunk-57RWF6R7.js";
7
+ import "./chunk-6ITLKEOZ.js";
8
+ import "./chunk-AEKYFMYE.js";
9
+ import "./chunk-F2RR4HO2.js";
10
10
  import {
11
11
  WorkspacePermissionRulesSessionRequiredError,
12
12
  WorkspaceSkillNotFoundError,
13
13
  WorkspaceSkillNotToggleableError
14
14
  } from "./chunk-OA4JVLSA.js";
15
- import "./chunk-OCPBI7J5.js";
16
- import "./chunk-KSO42X3Z.js";
17
- import "./chunk-CUUXANEQ.js";
15
+ import "./chunk-X6YQWCIJ.js";
16
+ import "./chunk-URP6O2PP.js";
18
17
  import "./chunk-W7FJ3N32.js";
19
- import "./chunk-6GETGQWP.js";
18
+ import "./chunk-C5NSOSF4.js";
20
19
  import "./chunk-RKUWKYED.js";
21
- import "./chunk-RDRVMDWV.js";
22
- import "./chunk-5EBKKSBX.js";
20
+ import "./chunk-HIMIG6PI.js";
21
+ import "./chunk-336KPNNV.js";
23
22
  import "./chunk-GOXKNSDZ.js";
24
23
  import "./chunk-IDS7MSUP.js";
25
24
  import "./chunk-QRUIS3DN.js";
26
- import "./chunk-4YWLED2A.js";
25
+ import "./chunk-LSFVUGXT.js";
27
26
  import "./chunk-ALGGS7UH.js";
28
27
  import "./chunk-MR3PXB6E.js";
29
28
  import "./chunk-YUZI3WAC.js";
30
- import "./chunk-K7CRWKOE.js";
29
+ import "./chunk-3YJZ6WNY.js";
30
+ import "./chunk-T4TZQJ7W.js";
31
31
  import "./chunk-H6XPXXMH.js";
32
32
  import "./chunk-5M6IDOMF.js";
33
- import "./chunk-E67NFMF4.js";
34
- import "./chunk-RCEEXIOO.js";
35
- import "./chunk-KKRTYONM.js";
36
- import "./chunk-TV6K2FB4.js";
33
+ import "./chunk-LKR7QQ63.js";
34
+ import "./chunk-4XCVGEEX.js";
35
+ import "./chunk-XSPFQQRE.js";
36
+ import "./chunk-4RPARQ5D.js";
37
37
  import "./chunk-E2UVIFI2.js";
38
- import "./chunk-6OATMEYN.js";
39
38
  import "./chunk-XU457J4V.js";
40
39
  import "./chunk-VDDGDZMA.js";
41
- import "./chunk-SPJQO2CE.js";
40
+ import "./chunk-J2MKYJKZ.js";
42
41
  import "./chunk-SZRN75WQ.js";
43
42
  import "./chunk-HTO4JFDZ.js";
44
43
  import "./chunk-CPBF7KYF.js";
45
- import "./chunk-TXY2C3D2.js";
44
+ import "./chunk-VNN3JNYT.js";
46
45
  import "./chunk-6AM5D4ME.js";
47
- import "./chunk-2Z5UX4KI.js";
48
- import "./chunk-ARKANCNX.js";
49
- import "./chunk-L5U3ELZX.js";
50
- import "./chunk-TYLOFD2U.js";
51
- import "./chunk-P6LART6G.js";
46
+ import "./chunk-OSSDHJDU.js";
47
+ import "./chunk-SGPFJMRP.js";
48
+ import "./chunk-335ECZTA.js";
49
+ import "./chunk-JCJPZMJV.js";
50
+ import "./chunk-66IT3EY2.js";
52
51
  import "./chunk-4WKAA4KS.js";
53
52
  import "./chunk-CR3C7WXL.js";
54
- import "./chunk-CARU2RR2.js";
53
+ import "./chunk-U2LNTX56.js";
55
54
  import "./chunk-VGC4I5JJ.js";
56
- import "./chunk-FBU7WRZI.js";
57
- import "./chunk-Y66VOBRP.js";
58
- import "./chunk-WX6SD4IQ.js";
59
- import "./chunk-2UUAIFQO.js";
60
- import "./chunk-OKAIGAYW.js";
61
- import "./chunk-ZPAHLFZU.js";
55
+ import "./chunk-FUTHTZVV.js";
56
+ import "./chunk-4CA4WUMS.js";
57
+ import "./chunk-WEPXQKGP.js";
58
+ import "./chunk-ANRANWVE.js";
59
+ import "./chunk-G274ETR6.js";
60
+ import "./chunk-Z2LBNX3R.js";
62
61
  import "./chunk-JESCGQM3.js";
63
- import "./chunk-WIEO4CWB.js";
62
+ import "./chunk-VAJS2E2D.js";
64
63
  import "./chunk-XVNQMZ2I.js";
65
- import "./chunk-B7NUUEXC.js";
66
- import "./chunk-TQBODCFD.js";
64
+ import "./chunk-FEOZBUMT.js";
65
+ import "./chunk-CMVFTMRD.js";
67
66
  import "./chunk-A4UCTEB5.js";
68
67
  import "./chunk-XWRJCPHC.js";
69
- import "./chunk-4LD5APFL.js";
68
+ import "./chunk-TYQMGACW.js";
70
69
  import "./chunk-TYAMGABM.js";
71
70
  import "./chunk-FCMNKVXT.js";
72
71
  import "./chunk-DJ2GSRLV.js";
73
- import "./chunk-LQIDP6K5.js";
74
- import "./chunk-7NFB7LBQ.js";
72
+ import "./chunk-4CHDYDG3.js";
73
+ import "./chunk-UE5TZ55T.js";
75
74
  import "./chunk-75DOP5OR.js";
76
75
  import "./chunk-DMTGGOSA.js";
77
76
  import "./chunk-YQ3U5MUC.js";
@@ -2,65 +2,65 @@
2
2
  "use strict";
3
3
  import {
4
4
  createWorkspaceSkillsStatusProvider
5
- } from "./chunk-WLXYAKV7.js";
5
+ } from "./chunk-GG6RSNWS.js";
6
6
  import "./chunk-2W3OOD4W.js";
7
- import "./chunk-CUUXANEQ.js";
8
- import "./chunk-6GETGQWP.js";
7
+ import "./chunk-URP6O2PP.js";
8
+ import "./chunk-C5NSOSF4.js";
9
9
  import "./chunk-RKUWKYED.js";
10
- import "./chunk-RDRVMDWV.js";
11
- import "./chunk-5EBKKSBX.js";
10
+ import "./chunk-HIMIG6PI.js";
11
+ import "./chunk-336KPNNV.js";
12
12
  import "./chunk-GOXKNSDZ.js";
13
13
  import "./chunk-IDS7MSUP.js";
14
14
  import "./chunk-QRUIS3DN.js";
15
- import "./chunk-4YWLED2A.js";
15
+ import "./chunk-LSFVUGXT.js";
16
16
  import "./chunk-ALGGS7UH.js";
17
17
  import "./chunk-MR3PXB6E.js";
18
18
  import "./chunk-YUZI3WAC.js";
19
- import "./chunk-K7CRWKOE.js";
19
+ import "./chunk-3YJZ6WNY.js";
20
+ import "./chunk-T4TZQJ7W.js";
20
21
  import "./chunk-H6XPXXMH.js";
21
22
  import "./chunk-5M6IDOMF.js";
22
- import "./chunk-E67NFMF4.js";
23
- import "./chunk-RCEEXIOO.js";
24
- import "./chunk-KKRTYONM.js";
25
- import "./chunk-TV6K2FB4.js";
23
+ import "./chunk-LKR7QQ63.js";
24
+ import "./chunk-4XCVGEEX.js";
25
+ import "./chunk-XSPFQQRE.js";
26
+ import "./chunk-4RPARQ5D.js";
26
27
  import "./chunk-E2UVIFI2.js";
27
- import "./chunk-6OATMEYN.js";
28
28
  import "./chunk-XU457J4V.js";
29
29
  import "./chunk-VDDGDZMA.js";
30
- import "./chunk-SPJQO2CE.js";
30
+ import "./chunk-J2MKYJKZ.js";
31
31
  import "./chunk-SZRN75WQ.js";
32
32
  import "./chunk-HTO4JFDZ.js";
33
33
  import "./chunk-CPBF7KYF.js";
34
- import "./chunk-TXY2C3D2.js";
34
+ import "./chunk-VNN3JNYT.js";
35
35
  import "./chunk-6AM5D4ME.js";
36
- import "./chunk-2Z5UX4KI.js";
37
- import "./chunk-ARKANCNX.js";
38
- import "./chunk-L5U3ELZX.js";
39
- import "./chunk-TYLOFD2U.js";
40
- import "./chunk-P6LART6G.js";
36
+ import "./chunk-OSSDHJDU.js";
37
+ import "./chunk-SGPFJMRP.js";
38
+ import "./chunk-335ECZTA.js";
39
+ import "./chunk-JCJPZMJV.js";
40
+ import "./chunk-66IT3EY2.js";
41
41
  import "./chunk-4WKAA4KS.js";
42
42
  import "./chunk-CR3C7WXL.js";
43
- import "./chunk-CARU2RR2.js";
43
+ import "./chunk-U2LNTX56.js";
44
44
  import "./chunk-VGC4I5JJ.js";
45
- import "./chunk-FBU7WRZI.js";
46
- import "./chunk-Y66VOBRP.js";
47
- import "./chunk-WX6SD4IQ.js";
48
- import "./chunk-2UUAIFQO.js";
49
- import "./chunk-OKAIGAYW.js";
50
- import "./chunk-ZPAHLFZU.js";
45
+ import "./chunk-FUTHTZVV.js";
46
+ import "./chunk-4CA4WUMS.js";
47
+ import "./chunk-WEPXQKGP.js";
48
+ import "./chunk-ANRANWVE.js";
49
+ import "./chunk-G274ETR6.js";
50
+ import "./chunk-Z2LBNX3R.js";
51
51
  import "./chunk-JESCGQM3.js";
52
- import "./chunk-WIEO4CWB.js";
52
+ import "./chunk-VAJS2E2D.js";
53
53
  import "./chunk-XVNQMZ2I.js";
54
- import "./chunk-B7NUUEXC.js";
55
- import "./chunk-TQBODCFD.js";
54
+ import "./chunk-FEOZBUMT.js";
55
+ import "./chunk-CMVFTMRD.js";
56
56
  import "./chunk-A4UCTEB5.js";
57
57
  import "./chunk-XWRJCPHC.js";
58
- import "./chunk-4LD5APFL.js";
58
+ import "./chunk-TYQMGACW.js";
59
59
  import "./chunk-TYAMGABM.js";
60
60
  import "./chunk-FCMNKVXT.js";
61
61
  import "./chunk-DJ2GSRLV.js";
62
- import "./chunk-LQIDP6K5.js";
63
- import "./chunk-7NFB7LBQ.js";
62
+ import "./chunk-4CHDYDG3.js";
63
+ import "./chunk-UE5TZ55T.js";
64
64
  import "./chunk-75DOP5OR.js";
65
65
  import "./chunk-DMTGGOSA.js";
66
66
  import "./chunk-YQ3U5MUC.js";
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  checkTeamMemorySecrets
5
- } from "./chunk-QAW7PIHT.js";
5
+ } from "./chunk-QFEY6OXH.js";
6
6
  import {
7
7
  CommitAttributionService,
8
8
  FileEncoding,
@@ -12,64 +12,64 @@ import {
12
12
  detectLineEnding,
13
13
  getDiffStat,
14
14
  needsUtf8Bom
15
- } from "./chunk-K7CRWKOE.js";
15
+ } from "./chunk-3YJZ6WNY.js";
16
+ import "./chunk-T4TZQJ7W.js";
16
17
  import "./chunk-H6XPXXMH.js";
17
18
  import "./chunk-5M6IDOMF.js";
18
- import "./chunk-E67NFMF4.js";
19
- import "./chunk-RCEEXIOO.js";
20
- import "./chunk-KKRTYONM.js";
21
- import "./chunk-TV6K2FB4.js";
19
+ import "./chunk-LKR7QQ63.js";
20
+ import "./chunk-4XCVGEEX.js";
21
+ import "./chunk-XSPFQQRE.js";
22
+ import "./chunk-4RPARQ5D.js";
22
23
  import "./chunk-E2UVIFI2.js";
23
- import "./chunk-6OATMEYN.js";
24
24
  import "./chunk-XU457J4V.js";
25
25
  import "./chunk-VDDGDZMA.js";
26
- import "./chunk-SPJQO2CE.js";
26
+ import "./chunk-J2MKYJKZ.js";
27
27
  import "./chunk-SZRN75WQ.js";
28
28
  import "./chunk-HTO4JFDZ.js";
29
29
  import "./chunk-CPBF7KYF.js";
30
- import "./chunk-TXY2C3D2.js";
30
+ import "./chunk-VNN3JNYT.js";
31
31
  import "./chunk-6AM5D4ME.js";
32
- import "./chunk-2Z5UX4KI.js";
33
- import "./chunk-ARKANCNX.js";
34
- import "./chunk-L5U3ELZX.js";
35
- import "./chunk-TYLOFD2U.js";
32
+ import "./chunk-OSSDHJDU.js";
33
+ import "./chunk-SGPFJMRP.js";
34
+ import "./chunk-335ECZTA.js";
35
+ import "./chunk-JCJPZMJV.js";
36
36
  import {
37
37
  FileOperationEvent,
38
38
  fileExists,
39
39
  getLanguageFromFilePath,
40
40
  getSpecificMimeType,
41
41
  logFileOperation
42
- } from "./chunk-P6LART6G.js";
42
+ } from "./chunk-66IT3EY2.js";
43
43
  import "./chunk-4WKAA4KS.js";
44
44
  import "./chunk-CR3C7WXL.js";
45
- import "./chunk-CARU2RR2.js";
45
+ import "./chunk-U2LNTX56.js";
46
46
  import "./chunk-VGC4I5JJ.js";
47
47
  import {
48
48
  isAnyAutoMemPath,
49
49
  isTeamAutoMemPath
50
- } from "./chunk-FBU7WRZI.js";
51
- import "./chunk-Y66VOBRP.js";
52
- import "./chunk-WX6SD4IQ.js";
50
+ } from "./chunk-FUTHTZVV.js";
51
+ import "./chunk-4CA4WUMS.js";
52
+ import "./chunk-WEPXQKGP.js";
53
53
  import {
54
54
  BaseDeclarativeTool,
55
55
  BaseToolInvocation,
56
56
  ToolDisplayNames,
57
57
  ToolNames
58
- } from "./chunk-2UUAIFQO.js";
59
- import "./chunk-OKAIGAYW.js";
60
- import "./chunk-ZPAHLFZU.js";
58
+ } from "./chunk-ANRANWVE.js";
59
+ import "./chunk-G274ETR6.js";
60
+ import "./chunk-Z2LBNX3R.js";
61
61
  import "./chunk-JESCGQM3.js";
62
- import "./chunk-WIEO4CWB.js";
62
+ import "./chunk-VAJS2E2D.js";
63
63
  import "./chunk-XVNQMZ2I.js";
64
- import "./chunk-B7NUUEXC.js";
65
- import "./chunk-TQBODCFD.js";
64
+ import "./chunk-FEOZBUMT.js";
65
+ import "./chunk-CMVFTMRD.js";
66
66
  import "./chunk-A4UCTEB5.js";
67
67
  import "./chunk-XWRJCPHC.js";
68
- import "./chunk-4LD5APFL.js";
68
+ import "./chunk-TYQMGACW.js";
69
69
  import "./chunk-TYAMGABM.js";
70
70
  import "./chunk-FCMNKVXT.js";
71
71
  import "./chunk-DJ2GSRLV.js";
72
- import "./chunk-LQIDP6K5.js";
72
+ import "./chunk-4CHDYDG3.js";
73
73
  import {
74
74
  createDebugLogger,
75
75
  getErrorMessage,
@@ -77,7 +77,7 @@ import {
77
77
  makeRelative,
78
78
  shortenPath,
79
79
  unescapePath
80
- } from "./chunk-7NFB7LBQ.js";
80
+ } from "./chunk-UE5TZ55T.js";
81
81
  import "./chunk-75DOP5OR.js";
82
82
  import "./chunk-DMTGGOSA.js";
83
83
  import "./chunk-YQ3U5MUC.js";
@@ -94,6 +94,17 @@ init_esbuild_shims();
94
94
  import fs from "node:fs";
95
95
  import path from "node:path";
96
96
  var debugLogger = createDebugLogger("WRITE_FILE");
97
+ var ARTIFACT_LIKE_EXTENSIONS = /* @__PURE__ */ new Set([
98
+ ".htm",
99
+ ".html",
100
+ ".ipynb",
101
+ ".jpeg",
102
+ ".jpg",
103
+ ".pdf",
104
+ ".png",
105
+ ".svg",
106
+ ".webp"
107
+ ]);
97
108
  var WriteFileToolInvocation = class extends BaseToolInvocation {
98
109
  constructor(config, params) {
99
110
  super(params);
@@ -392,6 +403,13 @@ var WriteFileToolInvocation = class extends BaseToolInvocation {
392
403
  `User modified the \`content\` to be: ${content}`
393
404
  );
394
405
  }
406
+ const artifactReminder = buildRecordArtifactReminder(
407
+ this.config,
408
+ file_path
409
+ );
410
+ if (artifactReminder) {
411
+ llmSuccessMessageParts.push(artifactReminder);
412
+ }
395
413
  const mimetype = getSpecificMimeType(file_path);
396
414
  const programmingLanguage = getLanguageFromFilePath(file_path);
397
415
  const extension = path.extname(file_path);
@@ -451,6 +469,21 @@ var WriteFileToolInvocation = class extends BaseToolInvocation {
451
469
  }
452
470
  }
453
471
  };
472
+ function buildRecordArtifactReminder(config, filePath) {
473
+ if (!config.isRecordArtifactEnabled()) {
474
+ return null;
475
+ }
476
+ if (!ARTIFACT_LIKE_EXTENSIONS.has(path.extname(filePath).toLowerCase())) {
477
+ return null;
478
+ }
479
+ const relativePath = path.relative(config.getTargetDir(), filePath);
480
+ if (!relativePath || relativePath === ".." || relativePath.startsWith(`..${path.sep}`) || path.isAbsolute(relativePath)) {
481
+ return null;
482
+ }
483
+ const workspacePath = relativePath.split(path.sep).join("/");
484
+ return `If this file is a reusable user-facing artifact, call record_artifact with workspacePath "${workspacePath}" before telling the user it is available in the artifacts panel.`;
485
+ }
486
+ __name(buildRecordArtifactReminder, "buildRecordArtifactReminder");
454
487
  var WriteFileTool = class _WriteFileTool extends BaseDeclarativeTool {
455
488
  constructor(config) {
456
489
  super(
@@ -380,6 +380,7 @@ var zh_default = {
380
380
  "Manage subagents for specialized task delegation.": "\u7BA1\u7406\u7528\u4E8E\u4E13\u95E8\u4EFB\u52A1\u59D4\u6D3E\u7684\u5B50\u667A\u80FD\u4F53",
381
381
  "Manage existing subagents (view, edit, delete).": "\u7BA1\u7406\u73B0\u6709\u5B50\u667A\u80FD\u4F53\uFF08\u67E5\u770B\u3001\u7F16\u8F91\u3001\u5220\u9664\uFF09",
382
382
  "Create a new subagent with guided setup.": "\u901A\u8FC7\u5F15\u5BFC\u5F0F\u8BBE\u7F6E\u521B\u5EFA\u65B0\u7684\u5B50\u667A\u80FD\u4F53",
383
+ "Create a reusable skill from a knowledge source (file, URL, conversation, or text).": "\u4ECE\u77E5\u8BC6\u6E90\uFF08\u6587\u4EF6\u3001URL\u3001\u5BF9\u8BDD\u6216\u6587\u672C\uFF09\u521B\u5EFA\u53EF\u590D\u7528\u7684\u6280\u80FD\u3002",
383
384
  // ============================================================================
384
385
  // Agents - Management Dialog
385
386
  // ============================================================================
@@ -751,13 +752,13 @@ var zh_default = {
751
752
  "Please include the name of the extension to uninstall as a positional argument.": "\u8BF7\u5C06\u8981\u5378\u8F7D\u7684\u6269\u5C55\u540D\u79F0\u4F5C\u4E3A\u4F4D\u7F6E\u53C2\u6570\u3002",
752
753
  "Enables an extension.": "\u542F\u7528\u6269\u5C55\u3002",
753
754
  "The name of the extension to enable.": "\u8981\u542F\u7528\u7684\u6269\u5C55\u540D\u79F0\u3002",
754
- "The scope to enable the extenison in. If not set, will be enabled in all scopes.": "\u542F\u7528\u6269\u5C55\u7684\u4F5C\u7528\u57DF\u3002\u5982\u679C\u672A\u8BBE\u7F6E\uFF0C\u5C06\u5728\u6240\u6709\u4F5C\u7528\u57DF\u4E2D\u542F\u7528\u3002",
755
+ "The scope to enable the extension in. If not set, will be enabled in all scopes.": "\u542F\u7528\u6269\u5C55\u7684\u4F5C\u7528\u57DF\u3002\u5982\u679C\u672A\u8BBE\u7F6E\uFF0C\u5C06\u5728\u6240\u6709\u4F5C\u7528\u57DF\u4E2D\u542F\u7528\u3002",
755
756
  'Extension "{{name}}" successfully enabled for scope "{{scope}}".': '\u6269\u5C55 "{{name}}" \u5DF2\u5728\u4F5C\u7528\u57DF "{{scope}}" \u4E2D\u542F\u7528\u3002',
756
757
  'Extension "{{name}}" successfully enabled in all scopes.': '\u6269\u5C55 "{{name}}" \u5DF2\u5728\u6240\u6709\u4F5C\u7528\u57DF\u4E2D\u542F\u7528\u3002',
757
758
  "Invalid scope: {{scope}}. Please use one of {{scopes}}.": "\u65E0\u6548\u7684\u4F5C\u7528\u57DF\uFF1A{{scope}}\u3002\u8BF7\u4F7F\u7528 {{scopes}} \u4E4B\u4E00\u3002",
758
759
  "Disables an extension.": "\u7981\u7528\u6269\u5C55\u3002",
759
760
  "The name of the extension to disable.": "\u8981\u7981\u7528\u7684\u6269\u5C55\u540D\u79F0\u3002",
760
- "The scope to disable the extenison in.": "\u7981\u7528\u6269\u5C55\u7684\u4F5C\u7528\u57DF\u3002",
761
+ "The scope to disable the extension in.": "\u7981\u7528\u6269\u5C55\u7684\u4F5C\u7528\u57DF\u3002",
761
762
  'Extension "{{name}}" successfully disabled for scope "{{scope}}".': '\u6269\u5C55 "{{name}}" \u5DF2\u5728\u4F5C\u7528\u57DF "{{scope}}" \u4E2D\u7981\u7528\u3002',
762
763
  'Extension "{{name}}" successfully updated: {{oldVersion}} \u2192 {{newVersion}}.': '\u6269\u5C55 "{{name}}" \u66F4\u65B0\u6210\u529F\uFF1A{{oldVersion}} \u2192 {{newVersion}}\u3002',
763
764
  'Unable to install extension "{{name}}" due to missing install metadata': '\u7531\u4E8E\u7F3A\u5C11\u5B89\u88C5\u5143\u6570\u636E\uFF0C\u65E0\u6CD5\u5B89\u88C5\u6269\u5C55 "{{name}}"',
@@ -1398,7 +1399,9 @@ var zh_default = {
1398
1399
  "Press Ctrl+C again to exit.": "\u518D\u6B21\u6309 Ctrl+C \u9000\u51FA",
1399
1400
  "Press Ctrl+D again to exit.": "\u518D\u6B21\u6309 Ctrl+D \u9000\u51FA",
1400
1401
  "Press Esc again to clear.": "\u518D\u6B21\u6309 Esc \u6E05\u9664",
1401
- "Press \u2191 to edit queued messages": "\u6309 \u2191 \u7F16\u8F91\u6392\u961F\u6D88\u606F",
1402
+ "Ctrl+Q to queue \xB7 \u2191 to edit queued messages": "Ctrl+Q \u6392\u5230\u4E0B\u4E00\u8F6E \xB7 \u2191 \u7F16\u8F91\u6392\u961F\u6D88\u606F",
1403
+ "Enter to steer \xB7 Ctrl+Q to queue": "Enter \u8FFD\u52A0\u5230\u5F53\u524D\u4EFB\u52A1 \xB7 Ctrl+Q \u6392\u5230\u4E0B\u4E00\u8F6E",
1404
+ "Queue message for the next turn": "\u5C06\u6D88\u606F\u6392\u5230\u4E0B\u4E00\u8F6E",
1402
1405
  // ============================================================================
1403
1406
  // MCP Status
1404
1407
  // ============================================================================
@@ -1603,6 +1606,7 @@ var zh_default = {
1603
1606
  "Press Ctrl+Y to retry": "\u6309 Ctrl+Y \u91CD\u8BD5\u3002",
1604
1607
  "No failed request to retry.": "\u6CA1\u6709\u53EF\u91CD\u8BD5\u7684\u5931\u8D25\u8BF7\u6C42\u3002",
1605
1608
  "to retry last request": "\u91CD\u8BD5\u4E0A\u4E00\u6B21\u8BF7\u6C42",
1609
+ "to queue for the next turn": "\u6392\u5230\u4E0B\u4E00\u8F6E",
1606
1610
  // ============================================================================
1607
1611
  // Coding Plan Authentication
1608
1612
  // ============================================================================
@@ -1900,6 +1904,11 @@ var zh_default = {
1900
1904
  "Run the following to update:": "\u8FD0\u884C\u4EE5\u4E0B\u547D\u4EE4\u8FDB\u884C\u66F4\u65B0\uFF1A",
1901
1905
  "Unable to auto-update this standalone installation. Please reinstall from:": "\u65E0\u6CD5\u81EA\u52A8\u66F4\u65B0\u6B64\u72EC\u7ACB\u5B89\u88C5\u3002\u8BF7\u4ECE\u4EE5\u4E0B\u5730\u5740\u91CD\u65B0\u5B89\u88C5\uFF1A",
1902
1906
  "Manual update required. Please reinstall Qwen Code.": "\u9700\u8981\u624B\u52A8\u66F4\u65B0\u3002\u8BF7\u91CD\u65B0\u5B89\u88C5 Qwen Code\u3002",
1907
+ "This session uses the custom sandbox image {{image}}. Update that image and restart Qwen Code.": "\u6B64\u4F1A\u8BDD\u4F7F\u7528\u81EA\u5B9A\u4E49\u6C99\u7BB1\u955C\u50CF {{image}}\u3002\u8BF7\u66F4\u65B0\u8BE5\u955C\u50CF\u5E76\u91CD\u542F Qwen Code\u3002",
1908
+ "Update Qwen Code on the host, then restart the sandbox.": "\u8BF7\u5728\u5BBF\u4E3B\u673A\u4E0A\u66F4\u65B0 Qwen Code\uFF0C\u7136\u540E\u91CD\u542F\u6C99\u7BB1\u3002",
1909
+ "The update will be installed after you exit this session.": "\u9000\u51FA\u5F53\u524D\u4F1A\u8BDD\u540E\u5C06\u81EA\u52A8\u5B89\u88C5\u66F4\u65B0\u3002",
1910
+ "Run /update to install the update on the host.": "\u8FD0\u884C /update \u5728\u5BBF\u4E3B\u673A\u4E0A\u5B89\u88C5\u66F4\u65B0\u3002",
1911
+ "Run /update to install the update.": "\u8FD0\u884C /update \u5B89\u88C5\u66F4\u65B0\u3002",
1903
1912
  "\u26A0\uFE0F History gap: earlier conversation was lost before this point (storage interruption) and could not be recovered.": "\u26A0\uFE0F \u5386\u53F2\u8BB0\u5F55\u7F3A\u53E3\uFF1A\u6B64\u5904\u4E4B\u524D\u7684\u4F1A\u8BDD\u8BB0\u5F55\u5DF2\u4E22\u5931\uFF08\u5B58\u50A8\u4E2D\u65AD\uFF09\uFF0C\u4E14\u65E0\u6CD5\u627E\u56DE\u3002",
1904
1913
  // ============================================================================
1905
1914
  // reload-plugins 命令
@@ -359,6 +359,7 @@ var zh_TW_default = {
359
359
  "Manage subagents for specialized task delegation.": "\u7BA1\u7406\u7528\u65BC\u5C08\u9580\u4EFB\u52D9\u59D4\u6D3E\u7684\u5B50\u667A\u80FD\u9AD4",
360
360
  "Manage existing subagents (view, edit, delete).": "\u7BA1\u7406\u73FE\u6709\u5B50\u667A\u80FD\u9AD4\uFF08\u67E5\u770B\u3001\u7DE8\u8F2F\u3001\u522A\u9664\uFF09",
361
361
  "Create a new subagent with guided setup.": "\u901A\u904E\u5F15\u5C0E\u5F0F\u8A2D\u7F6E\u5275\u5EFA\u65B0\u7684\u5B50\u667A\u80FD\u9AD4",
362
+ "Create a reusable skill from a knowledge source (file, URL, conversation, or text).": "\u5F9E\u77E5\u8B58\u6E90\uFF08\u6A94\u6848\u3001URL\u3001\u5C0D\u8A71\u6216\u6587\u5B57\uFF09\u5EFA\u7ACB\u53EF\u91CD\u8907\u4F7F\u7528\u7684\u6280\u80FD\u3002",
362
363
  Agents: "\u667A\u80FD\u9AD4",
363
364
  "Choose Action": "\u9078\u64C7\u64CD\u4F5C",
364
365
  "Edit {{name}}": "\u7DE8\u8F2F {{name}}",
@@ -710,13 +711,13 @@ var zh_TW_default = {
710
711
  "Please include the name of the extension to uninstall as a positional argument.": "\u8ACB\u5C07\u8981\u5378\u8F09\u7684\u64F4\u5C55\u540D\u7A31\u4F5C\u70BA\u4F4D\u7F6E\u53C3\u6578\u3002",
711
712
  "Enables an extension.": "\u555F\u7528\u64F4\u5C55\u3002",
712
713
  "The name of the extension to enable.": "\u8981\u555F\u7528\u7684\u64F4\u5C55\u540D\u7A31\u3002",
713
- "The scope to enable the extenison in. If not set, will be enabled in all scopes.": "\u555F\u7528\u64F4\u5C55\u7684\u4F5C\u7528\u57DF\u3002\u5982\u679C\u672A\u8A2D\u7F6E\uFF0C\u5C07\u5728\u6240\u6709\u4F5C\u7528\u57DF\u4E2D\u555F\u7528\u3002",
714
+ "The scope to enable the extension in. If not set, will be enabled in all scopes.": "\u555F\u7528\u64F4\u5C55\u7684\u4F5C\u7528\u57DF\u3002\u5982\u679C\u672A\u8A2D\u7F6E\uFF0C\u5C07\u5728\u6240\u6709\u4F5C\u7528\u57DF\u4E2D\u555F\u7528\u3002",
714
715
  'Extension "{{name}}" successfully enabled for scope "{{scope}}".': '\u64F4\u5C55 "{{name}}" \u5DF2\u5728\u4F5C\u7528\u57DF "{{scope}}" \u4E2D\u555F\u7528\u3002',
715
716
  'Extension "{{name}}" successfully enabled in all scopes.': '\u64F4\u5C55 "{{name}}" \u5DF2\u5728\u6240\u6709\u4F5C\u7528\u57DF\u4E2D\u555F\u7528\u3002',
716
717
  "Invalid scope: {{scope}}. Please use one of {{scopes}}.": "\u7121\u6548\u7684\u4F5C\u7528\u57DF\uFF1A{{scope}}\u3002\u8ACB\u4F7F\u7528 {{scopes}} \u4E4B\u4E00\u3002",
717
718
  "Disables an extension.": "\u7981\u7528\u64F4\u5C55\u3002",
718
719
  "The name of the extension to disable.": "\u8981\u7981\u7528\u7684\u64F4\u5C55\u540D\u7A31\u3002",
719
- "The scope to disable the extenison in.": "\u7981\u7528\u64F4\u5C55\u7684\u4F5C\u7528\u57DF\u3002",
720
+ "The scope to disable the extension in.": "\u7981\u7528\u64F4\u5C55\u7684\u4F5C\u7528\u57DF\u3002",
720
721
  'Extension "{{name}}" successfully disabled for scope "{{scope}}".': '\u64F4\u5C55 "{{name}}" \u5DF2\u5728\u4F5C\u7528\u57DF "{{scope}}" \u4E2D\u7981\u7528\u3002',
721
722
  'Extension "{{name}}" successfully updated: {{oldVersion}} \u2192 {{newVersion}}.': '\u64F4\u5C55 "{{name}}" \u66F4\u65B0\u6210\u529F\uFF1A{{oldVersion}} \u2192 {{newVersion}}\u3002',
722
723
  'Unable to install extension "{{name}}" due to missing install metadata': '\u7531\u65BC\u7F3A\u5C11\u5B89\u88DD\u5143\u6578\u64DA\uFF0C\u7121\u6CD5\u5B89\u88DD\u64F4\u5C55 "{{name}}"',
@@ -1270,7 +1271,9 @@ var zh_TW_default = {
1270
1271
  "Press Ctrl+C again to exit.": "\u518D\u6B21\u6309 Ctrl+C \u9000\u51FA",
1271
1272
  "Press Ctrl+D again to exit.": "\u518D\u6B21\u6309 Ctrl+D \u9000\u51FA",
1272
1273
  "Press Esc again to clear.": "\u518D\u6B21\u6309 Esc \u6E05\u9664",
1273
- "Press \u2191 to edit queued messages": "\u6309 \u2191 \u7DE8\u8F2F\u6392\u968A\u6D88\u606F",
1274
+ "Ctrl+Q to queue \xB7 \u2191 to edit queued messages": "Ctrl+Q \u6392\u5230\u4E0B\u4E00\u8F2A \xB7 \u2191 \u7DE8\u8F2F\u6392\u968A\u6D88\u606F",
1275
+ "Enter to steer \xB7 Ctrl+Q to queue": "Enter \u8FFD\u52A0\u5230\u76EE\u524D\u4EFB\u52D9 \xB7 Ctrl+Q \u6392\u5230\u4E0B\u4E00\u8F2A",
1276
+ "Queue message for the next turn": "\u5C07\u6D88\u606F\u6392\u5230\u4E0B\u4E00\u8F2A",
1274
1277
  "No MCP servers configured.": "\u672A\u914D\u7F6E MCP servers",
1275
1278
  "\u25CC MCP servers are starting up ({{count}} initializing)...": "\u25CC MCP servers \u6B63\u5728\u555F\u52D5\uFF08{{count}} \u500B\u6B63\u5728\u521D\u59CB\u5316\uFF09...",
1276
1279
  "Note: First startup may take longer. Tool availability will update automatically.": "\u6CE8\u610F\uFF1A\u9996\u6B21\u555F\u52D5\u53EF\u80FD\u9700\u8981\u66F4\u9577\u6642\u9593\u3002\u5DE5\u5177\u53EF\u7528\u6027\u5C07\u81EA\u52D5\u66F4\u65B0",
@@ -1445,6 +1448,7 @@ var zh_TW_default = {
1445
1448
  "Press Ctrl+Y to retry": "\u6309 Ctrl+Y \u91CD\u8A66\u3002",
1446
1449
  "No failed request to retry.": "\u6C92\u6709\u53EF\u91CD\u8A66\u7684\u5931\u6557\u8ACB\u6C42\u3002",
1447
1450
  "to retry last request": "\u91CD\u8A66\u4E0A\u4E00\u6B21\u8ACB\u6C42",
1451
+ "to queue for the next turn": "\u6392\u5230\u4E0B\u4E00\u8F2A",
1448
1452
  "API key cannot be empty.": "API Key \u4E0D\u80FD\u70BA\u7A7A\u3002",
1449
1453
  'Invalid API key. Coding Plan API keys start with "sk-sp-". Please check.': '\u7121\u6548\u7684 API Key\uFF0CCoding Plan API Key \u5747\u4EE5 "sk-sp-" \u958B\u982D\uFF0C\u8ACB\u6AA2\u67E5',
1450
1454
  "You can get your Coding Plan API key here": "\u60A8\u53EF\u4EE5\u5728\u9019\u88CF\u7372\u53D6 Coding Plan API Key",
@@ -1733,6 +1737,11 @@ var zh_TW_default = {
1733
1737
  "Run the following to update:": "\u57F7\u884C\u4EE5\u4E0B\u547D\u4EE4\u9032\u884C\u66F4\u65B0\uFF1A",
1734
1738
  "Unable to auto-update this standalone installation. Please reinstall from:": "\u7121\u6CD5\u81EA\u52D5\u66F4\u65B0\u6B64\u7368\u7ACB\u5B89\u88DD\u3002\u8ACB\u5F9E\u4EE5\u4E0B\u4F4D\u5740\u91CD\u65B0\u5B89\u88DD\uFF1A",
1735
1739
  "Manual update required. Please reinstall Qwen Code.": "\u9700\u8981\u624B\u52D5\u66F4\u65B0\u3002\u8ACB\u91CD\u65B0\u5B89\u88DD Qwen Code\u3002",
1740
+ "This session uses the custom sandbox image {{image}}. Update that image and restart Qwen Code.": "\u6B64\u5DE5\u4F5C\u968E\u6BB5\u4F7F\u7528\u81EA\u8A02\u6C99\u7BB1\u6620\u50CF {{image}}\u3002\u8ACB\u66F4\u65B0\u8A72\u6620\u50CF\u4E26\u91CD\u65B0\u555F\u52D5 Qwen Code\u3002",
1741
+ "Update Qwen Code on the host, then restart the sandbox.": "\u8ACB\u5728\u4E3B\u6A5F\u4E0A\u66F4\u65B0 Qwen Code\uFF0C\u7136\u5F8C\u91CD\u65B0\u555F\u52D5\u6C99\u7BB1\u3002",
1742
+ "The update will be installed after you exit this session.": "\u7D50\u675F\u76EE\u524D\u5DE5\u4F5C\u968E\u6BB5\u5F8C\u5C07\u81EA\u52D5\u5B89\u88DD\u66F4\u65B0\u3002",
1743
+ "Run /update to install the update on the host.": "\u57F7\u884C /update \u5728\u4E3B\u6A5F\u4E0A\u5B89\u88DD\u66F4\u65B0\u3002",
1744
+ "Run /update to install the update.": "\u57F7\u884C /update \u5B89\u88DD\u66F4\u65B0\u3002",
1736
1745
  "\u26A0\uFE0F History gap: earlier conversation was lost before this point (storage interruption) and could not be recovered.": "\u26A0\uFE0F \u6B77\u53F2\u8A18\u9304\u7F3A\u53E3\uFF1A\u6B64\u8655\u4E4B\u524D\u7684\u6703\u8A71\u8A18\u9304\u5DF2\u907A\u5931\uFF08\u5132\u5B58\u4E2D\u65B7\uFF09\uFF0C\u4E14\u7121\u6CD5\u627E\u56DE\u3002",
1737
1746
  // ============================================================================
1738
1747
  // reload-plugins 命令
package/cli-entry.js CHANGED
@@ -19,8 +19,17 @@
19
19
  * monitor.
20
20
  */
21
21
 
22
+ const relaunchArgs = process.env['QWEN_CODE_RELAUNCH_ARGS'];
23
+ let cliArgs = process.argv.slice(2);
24
+ try {
25
+ cliArgs = relaunchArgs ? JSON.parse(relaunchArgs) : cliArgs;
26
+ } catch {
27
+ // Ignore stale or user-provided junk; normal argv is still usable.
28
+ }
29
+ delete process.env['QWEN_CODE_RELAUNCH_ARGS'];
30
+
22
31
  function hasFlag(flag, alias) {
23
- for (const arg of process.argv.slice(2)) {
32
+ for (const arg of cliArgs) {
24
33
  if (arg === '--') {
25
34
  return false;
26
35
  }
@@ -32,7 +41,7 @@ function hasFlag(flag, alias) {
32
41
  }
33
42
 
34
43
  function isInProcessFastPath() {
35
- const first = process.argv[2];
44
+ const first = cliArgs[0];
36
45
  if (first === 'serve' || first === 'mcp') {
37
46
  return true;
38
47
  }
@@ -43,7 +52,7 @@ function isInProcessFastPath() {
43
52
  }
44
53
 
45
54
  const isTopLevelVersion =
46
- (process.argv[2] === undefined || process.argv[2].startsWith('-')) &&
55
+ (cliArgs[0] === undefined || cliArgs[0].startsWith('-')) &&
47
56
  hasFlag('--version', '-v');
48
57
 
49
58
  if (isTopLevelVersion && process.env['CLI_VERSION']) {
@@ -51,9 +60,11 @@ if (isTopLevelVersion && process.env['CLI_VERSION']) {
51
60
  process.exit(0);
52
61
  }
53
62
 
54
- const { existsSync } = await import('node:fs');
63
+ const { existsSync, realpathSync } = await import('node:fs');
55
64
  const { fileURLToPath, pathToFileURL } = await import('node:url');
56
- const { dirname, join } = await import('node:path');
65
+ const { delimiter, dirname, join, parse, resolve, sep } = await import(
66
+ 'node:path'
67
+ );
57
68
 
58
69
  const __dirname = dirname(fileURLToPath(import.meta.url));
59
70
  const cliPathCandidates = [
@@ -89,15 +100,88 @@ if (isInProcessFastPath()) {
89
100
  await import(pathToFileURL(cliPath).href);
90
101
  } else {
91
102
  const { spawnSync } = await import('node:child_process');
103
+ const UPDATE_COMPLETE_EXIT_CODE = 44;
104
+ const launcherNames =
105
+ process.platform === 'win32' ? ['qwen.cmd', 'qwen.exe', 'qwen'] : ['qwen'];
106
+ const entryPath = resolve(process.argv[1]);
107
+ const entryRootLength = parse(entryPath).root.length;
108
+ const launcherFromEnv = process.env['QWEN_CODE_LAUNCHER_PATH'];
109
+ delete process.env['QWEN_CODE_LAUNCHER_PATH'];
110
+ delete process.env['QWEN_CODE_LAUNCHER_PID'];
111
+ const launcherCandidates = process.env['PATH']
112
+ ?.split(delimiter)
113
+ .flatMap((dir) => launcherNames.map((name) => join(dir, name)))
114
+ .filter((candidate) => existsSync(candidate));
115
+ const launcher =
116
+ launcherFromEnv && existsSync(launcherFromEnv)
117
+ ? launcherFromEnv
118
+ : launcherCandidates
119
+ ?.map((candidate) => {
120
+ if (resolve(candidate) === entryPath) {
121
+ return { candidate, score: Number.MAX_SAFE_INTEGER };
122
+ }
123
+ try {
124
+ if (realpathSync(candidate) === realpathSync(entryPath)) {
125
+ return { candidate, score: Number.MAX_SAFE_INTEGER };
126
+ }
127
+ } catch {
128
+ // Fall back to matching the installation prefix.
129
+ }
130
+ let parent = resolve(dirname(candidate));
131
+ while (
132
+ parent.length > entryRootLength &&
133
+ entryPath !== parent &&
134
+ !entryPath.startsWith(`${parent}${sep}`)
135
+ ) {
136
+ const next = dirname(parent);
137
+ if (next === parent) break;
138
+ parent = next;
139
+ }
140
+ return { candidate, score: parent.length };
141
+ })
142
+ .filter(({ score }) => score > entryRootLength)
143
+ .sort((a, b) => b.score - a.score)[0]?.candidate;
144
+ const env = {
145
+ ...process.env,
146
+ QWEN_CODE_LAUNCHER_PID: String(process.pid),
147
+ };
92
148
  const result = spawnSync(
93
149
  process.execPath,
94
- ['--expose-gc', cliPath, ...process.argv.slice(2)],
95
- { stdio: 'inherit' },
150
+ ['--expose-gc', cliPath, ...cliArgs],
151
+ { stdio: 'inherit', env },
96
152
  );
97
153
 
98
154
  if (result.signal) {
99
155
  process.kill(process.pid, result.signal);
100
- } else {
156
+ } else if (result.status !== UPDATE_COMPLETE_EXIT_CODE) {
101
157
  process.exit(result.status ?? 1);
158
+ } else {
159
+ if (!launcher) {
160
+ process.stderr.write(
161
+ 'Update installed. Restart Qwen Code to use the new version.\n',
162
+ );
163
+ process.exit(0);
164
+ }
165
+ const relaunchEnv = {
166
+ ...process.env,
167
+ QWEN_CODE_RELAUNCH_ARGS: JSON.stringify(cliArgs),
168
+ QWEN_CODE_SKIP_UPDATE_CHECK_ONCE: 'true',
169
+ };
170
+ const relaunchResult =
171
+ process.platform === 'win32' && launcher.endsWith('.cmd')
172
+ ? spawnSync(
173
+ process.env['ComSpec'] ?? 'cmd.exe',
174
+ ['/d', '/s', '/c', `""${launcher}""`],
175
+ { stdio: 'inherit', env: relaunchEnv },
176
+ )
177
+ : spawnSync(launcher, [], {
178
+ stdio: 'inherit',
179
+ env: relaunchEnv,
180
+ });
181
+ if (relaunchResult.signal) {
182
+ process.kill(process.pid, relaunchResult.signal);
183
+ } else {
184
+ process.exit(relaunchResult.status ?? 1);
185
+ }
102
186
  }
103
187
  }