@qwen-code/qwen-code 0.19.9 → 0.19.10-nightly.20260715.c538bd70d

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 (310) hide show
  1. package/bundled/qc-helper/docs/configuration/settings.md +8 -0
  2. package/bundled/qc-helper/docs/features/channels/dingtalk.md +3 -0
  3. package/bundled/qc-helper/docs/features/channels/overview.md +11 -3
  4. package/bundled/qc-helper/docs/features/code-review.md +88 -44
  5. package/bundled/qc-helper/docs/features/commands.md +6 -6
  6. package/bundled/qc-helper/docs/features/hooks.md +29 -0
  7. package/bundled/qc-helper/docs/features/sub-agents.md +21 -0
  8. package/bundled/qc-helper/docs/qwen-serve.md +46 -20
  9. package/bundled/qc-helper/docs/reference/keyboard-shortcuts.md +1 -1
  10. package/bundled/review/DESIGN.md +219 -33
  11. package/bundled/review/SKILL.md +449 -153
  12. package/chunks/{MaxSizedBox-6HYJ3ZPJ.js → MaxSizedBox-LOOBDOTZ.js} +31 -31
  13. package/chunks/{StandaloneSessionPicker-WS4GXYOG.js → StandaloneSessionPicker-76CLZSH2.js} +51 -49
  14. package/chunks/{acpAgent-5FWSOZL5.js → acpAgent-DFJOK7EB.js} +567 -482
  15. package/chunks/{agent-HOLHB3RT.js → agent-OJQWXNHP.js} +26 -26
  16. package/chunks/{agent-headless-SXL6H56A.js → agent-headless-ND7GOORY.js} +26 -26
  17. package/chunks/{anthropicContentGenerator-L73TO3DB.js → anthropicContentGenerator-56U3YCP2.js} +5 -5
  18. package/chunks/{artifact-tool-U7IRTLIV.js → artifact-tool-MIZLXBLF.js} +2 -2
  19. package/chunks/{askUserQuestion-2DLUUZZG.js → askUserQuestion-XMJVPNWM.js} +2 -2
  20. package/chunks/{bridge-BCJQ7BBB.js → bridge-SNJK2JLK.js} +32 -32
  21. package/chunks/{ca-UJ6HC4H2.js → ca-C2JTT2N5.js} +4 -1
  22. package/chunks/channel-worker-group-K7QKH6IG.js +13 -0
  23. package/chunks/channel-worker-manager-YSFB4HUU.js +418 -0
  24. package/chunks/channel-worker-supervisor-QCKIOYZD.js +20 -0
  25. package/chunks/{chunk-CCDMCZPP.js → chunk-26UABK2C.js} +1 -1
  26. package/chunks/{chunk-LXNEJD34.js → chunk-2FO5GFKZ.js} +1 -1
  27. package/chunks/{chunk-L36P3NBD.js → chunk-2W3OOD4W.js} +2 -0
  28. package/chunks/{chunk-7R3CZA3Q.js → chunk-2Z5UX4KI.js} +1 -1
  29. package/chunks/chunk-3MX7D6QN.js +516 -0
  30. package/chunks/{chunk-CLFKOZEK.js → chunk-3XULHBC7.js} +1 -1
  31. package/chunks/chunk-4QZADKJS.js +34 -0
  32. package/chunks/{chunk-E2IY465S.js → chunk-4UDHAJFV.js} +10 -10
  33. package/chunks/{chunk-5U27BZ72.js → chunk-55SAYASQ.js} +190 -77
  34. package/chunks/chunk-5HBA2Z7V.js +28 -0
  35. package/chunks/{chunk-ZJE7NSL3.js → chunk-5M6IDOMF.js} +34 -97
  36. package/chunks/{chunk-HVY356M2.js → chunk-5SQ55XJZ.js} +3 -3
  37. package/chunks/{chunk-EAXLGSFP.js → chunk-6GRAQNTY.js} +8 -8
  38. package/chunks/{chunk-K434OPES.js → chunk-6WPJRYLZ.js} +3 -3
  39. package/chunks/{chunk-VWPVHAMO.js → chunk-7DXHIMXL.js} +5 -1
  40. package/chunks/{chunk-J4TSQ5EQ.js → chunk-7NFB7LBQ.js} +8 -1
  41. package/chunks/{chunk-5SFOMFG4.js → chunk-7R4DPSRA.js} +36 -2
  42. package/chunks/{chunk-W2UIXQDL.js → chunk-7STBROEV.js} +1 -1
  43. package/chunks/{chunk-BMGVRZN4.js → chunk-AETEZU4U.js} +1 -1
  44. package/chunks/{chunk-HPDUL5MF.js → chunk-AGZWN4WV.js} +1 -1
  45. package/chunks/{chunk-RDJSGHZE.js → chunk-ALGGS7UH.js} +1 -38
  46. package/chunks/{chunk-GWHYEOV2.js → chunk-ARKANCNX.js} +2 -1
  47. package/chunks/{chunk-34Z3U5RQ.js → chunk-AU4R7ACM.js} +518 -114
  48. package/chunks/{channel-worker-supervisor-WSOAAYUO.js → chunk-B7MFJBKE.js} +67 -35
  49. package/chunks/{chunk-524RQP4Q.js → chunk-B7NUUEXC.js} +10 -4
  50. package/chunks/{chunk-MC23XKFE.js → chunk-BLPMRN4B.js} +3 -3
  51. package/chunks/{chunk-A3XKDTSH.js → chunk-BRRKAUGR.js} +4 -4
  52. package/chunks/{chunk-W3JHSWRP.js → chunk-BUPLOPUA.js} +4 -4
  53. package/chunks/{chunk-3VAGG5T5.js → chunk-BYOOK22F.js} +121 -16
  54. package/chunks/{chunk-EMDMPBJ4.js → chunk-C47ENMZJ.js} +3 -3
  55. package/chunks/{chunk-3AHXV67U.js → chunk-C5TVXLJZ.js} +1 -1
  56. package/chunks/{chunk-X6TJ3YZV.js → chunk-CGT5TQIZ.js} +159 -57
  57. package/chunks/{chunk-4C5BQ2D2.js → chunk-CQQD7MDG.js} +82 -12
  58. package/chunks/{chunk-KKNMOEZH.js → chunk-E2UVIFI2.js} +185 -398
  59. package/chunks/{chunk-P67PFTUT.js → chunk-EPY4ZEU6.js} +4 -4
  60. package/chunks/{chunk-6PESIEKJ.js → chunk-EZSRHWGS.js} +68 -6
  61. package/chunks/{chunk-4GORAUCN.js → chunk-F333XEAU.js} +1 -1
  62. package/chunks/{chunk-YLV3XXFB.js → chunk-FBU7WRZI.js} +17 -1
  63. package/chunks/{chunk-Q6I5QHMH.js → chunk-FGTCZJOD.js} +1 -1
  64. package/chunks/{chunk-LK7KUE55.js → chunk-FSA7ERJ2.js} +1 -1
  65. package/chunks/{chunk-B4G2WOFA.js → chunk-FTU55ZZ7.js} +3 -3
  66. package/chunks/{chunk-EGYZ275M.js → chunk-GCD7PEDZ.js} +4 -4
  67. package/chunks/{chunk-SJHDYNHF.js → chunk-GDQQRV43.js} +3 -3
  68. package/chunks/{chunk-3BTRNWWD.js → chunk-GOXKNSDZ.js} +1 -64
  69. package/chunks/{chunk-GZRTYZ2R.js → chunk-GQKWT45X.js} +154 -1
  70. package/chunks/chunk-GYTKQYDB.js +23 -0
  71. package/chunks/{chunk-YVEDCAUE.js → chunk-HGT6JR3U.js} +19 -0
  72. package/chunks/{chunk-N3EMS75V.js → chunk-HKM2TEF7.js} +1268 -1233
  73. package/chunks/chunk-IDS7MSUP.js +74 -0
  74. package/chunks/{chunk-PVZM22CK.js → chunk-INKAZNYC.js} +5 -5
  75. package/chunks/{chunk-3G7CIHVV.js → chunk-IOQ75R4R.js} +4 -4
  76. package/chunks/{chunk-AURZZYMD.js → chunk-IQOOJSPR.js} +4 -4
  77. package/chunks/{chunk-AKIVHSJR.js → chunk-J4UQXGVL.js} +111 -93
  78. package/chunks/{chunk-VTU57BWZ.js → chunk-JEKOCLRN.js} +1 -1
  79. package/chunks/{chunk-B5ORX3FG.js → chunk-JGUT3LWZ.js} +6 -1
  80. package/chunks/{chunk-PDZ7MBDG.js → chunk-JIQHT2O6.js} +27 -6
  81. package/chunks/{chunk-XUOOWUZS.js → chunk-JPAH76WA.js} +1 -1
  82. package/chunks/{chunk-BAPGSC7U.js → chunk-K4LG6TVJ.js} +23 -9
  83. package/chunks/chunk-KET3M4K4.js +493 -0
  84. package/chunks/{chunk-ORBGV7NJ.js → chunk-KKRTYONM.js} +6 -4
  85. package/chunks/{chunk-SCGXUJBT.js → chunk-KPA5QGN2.js} +3 -3
  86. package/chunks/{chunk-IAVB3HM3.js → chunk-KSO42X3Z.js} +13 -0
  87. package/chunks/{chunk-4QLQE5WJ.js → chunk-L5U3ELZX.js} +1 -1
  88. package/chunks/{chunk-77XJ3SWN.js → chunk-LIUEXYPL.js} +5 -5
  89. package/chunks/{chunk-4ZVWQHEQ.js → chunk-LQIDP6K5.js} +1 -1
  90. package/chunks/{chunk-34MW4KTI.js → chunk-LT5CRUA5.js} +2 -2
  91. package/chunks/{chunk-DC5Z3DU6.js → chunk-LXLTBIDP.js} +43 -6
  92. package/chunks/{chunk-VA4KQY6V.js → chunk-MEK7CQJR.js} +3 -3
  93. package/chunks/{chunk-KHUQZZJ6.js → chunk-MO7O5722.js} +370 -36
  94. package/chunks/chunk-MR3PXB6E.js +48 -0
  95. package/chunks/{chunk-PODM4SZ4.js → chunk-MV52C5MA.js} +5 -5
  96. package/chunks/{chunk-WL4L7EZH.js → chunk-OA4JVLSA.js} +27 -1
  97. package/chunks/{chunk-X4NKFGFJ.js → chunk-OJAMDVF5.js} +0 -15
  98. package/chunks/{chunk-BZIFY5TF.js → chunk-OKAIGAYW.js} +3 -3
  99. package/chunks/{chunk-ECNYL4AA.js → chunk-OPNPGO6D.js} +1 -1
  100. package/chunks/{chunk-3SJSQXNS.js → chunk-PEJWA3QQ.js} +12 -8
  101. package/chunks/{chunk-MXL5UP4X.js → chunk-Q6TUALBE.js} +1 -1
  102. package/chunks/{chunk-QYMQSECS.js → chunk-QAW7PIHT.js} +2 -2
  103. package/chunks/{chunk-5HOMWMCL.js → chunk-QEDYXCLG.js} +4167 -1338
  104. package/chunks/chunk-QNNTA7IX.js +91 -0
  105. package/chunks/{chunk-D2GFWEXB.js → chunk-QNT5T4Q2.js} +6 -6
  106. package/chunks/{chunk-CUMMSHH6.js → chunk-R5XLNDE2.js} +1 -1
  107. package/chunks/{chunk-LUODI7WD.js → chunk-RCEEXIOO.js} +6 -4
  108. package/chunks/{chunk-WQUQVGTF.js → chunk-RQWDLG6Z.js} +183 -96
  109. package/chunks/{chunk-XYQSMABS.js → chunk-SLCVZX6F.js} +4 -4
  110. package/chunks/{chunk-CEA3E3JB.js → chunk-SPJQO2CE.js} +2 -2
  111. package/chunks/{chunk-JSG7ZSBC.js → chunk-TQBODCFD.js} +1 -1
  112. package/chunks/chunk-TV6K2FB4.js +224 -0
  113. package/chunks/{chunk-5XUCZNSY.js → chunk-TYLOFD2U.js} +1 -1
  114. package/chunks/{chunk-CNEIYWSA.js → chunk-UKWAQ7AV.js} +5 -5
  115. package/chunks/{chunk-7PU4FYLG.js → chunk-US4YQT62.js} +4 -4
  116. package/chunks/{chunk-Q4YQW46J.js → chunk-UYPPCIJQ.js} +36 -18
  117. package/chunks/{chunk-YAUFFXDS.js → chunk-UZKG7HFG.js} +12 -11
  118. package/chunks/{chunk-GWLSNBG4.js → chunk-VQLRHJKL.js} +30 -26
  119. package/chunks/{chunk-L6P4KPHR.js → chunk-VRUHAVZS.js} +59 -39
  120. package/chunks/{chunk-HKMAENAO.js → chunk-W2U4RJJU.js} +8 -6
  121. package/chunks/{chunk-ATAKVRIF.js → chunk-WDSCTLAB.js} +7 -7
  122. package/chunks/{chunk-ZLXQN2QS.js → chunk-WIEO4CWB.js} +1 -1
  123. package/chunks/{chunk-OQ4DRIOA.js → chunk-WJOC24IW.js} +2 -2
  124. package/chunks/{chunk-J3JA76CF.js → chunk-WTNZ6DXB.js} +1 -1
  125. package/chunks/{chunk-NVYTCB5Z.js → chunk-XCR44EEA.js} +14589 -13980
  126. package/chunks/{chunk-TDEXZKMT.js → chunk-Y66VOBRP.js} +2 -2
  127. package/chunks/{chunk-CC2ITGCF.js → chunk-YHN5SUIJ.js} +49 -6
  128. package/chunks/{chunk-D5SKC4YG.js → chunk-ZBAROUR6.js} +41 -13
  129. package/chunks/{chunk-U2NNEY4R.js → chunk-ZEEVKDO7.js} +1 -1
  130. package/chunks/{chunk-5VXNZWGF.js → chunk-ZLOHB76C.js} +1 -1
  131. package/chunks/{chunk-JZETEN3Z.js → chunk-ZNCLTRNU.js} +3 -3
  132. package/chunks/{chunk-TO6QE22P.js → chunk-ZP4ZZJJG.js} +26 -22
  133. package/chunks/{chunk-UOZWKTQG.js → chunk-ZPAHLFZU.js} +2 -2
  134. package/chunks/{chunk-XLA62MYB.js → chunk-ZTXZ7FM4.js} +2 -2
  135. package/chunks/{computer-use-HM37RX6A.js → computer-use-DRETHEQF.js} +26 -26
  136. package/chunks/{config-utils-NV2SVGPB.js → config-utils-XSHOMMK4.js} +3 -2
  137. package/chunks/{contextCommand-OF5SFGH2.js → contextCommand-7YJUW23J.js} +28 -28
  138. package/chunks/{create-sub-session-INX7TXJI.js → create-sub-session-EAB2U5XW.js} +2 -2
  139. package/chunks/{create-sub-session-KPRT7ECJ.js → create-sub-session-L5HOZAEL.js} +26 -26
  140. package/chunks/{cron-create-AMBKGZX6.js → cron-create-GMVKSXZT.js} +4 -4
  141. package/chunks/{cron-delete-LRU4OJYG.js → cron-delete-VDZKUAVK.js} +4 -4
  142. package/chunks/{cron-list-WVP2JXER.js → cron-list-UG7C7RAR.js} +4 -4
  143. package/chunks/{daemon-ARHTSTXP.js → daemon-MI5HF26N.js} +603 -62
  144. package/chunks/{daemon-status-provider-B2UTZUJ2.js → daemon-status-provider-2D47GOJT.js} +36 -36
  145. package/chunks/{de-EBJN3OVN.js → de-2VCDRDGU.js} +4 -1
  146. package/chunks/{dist-WKPOYU7O.js → dist-IEXZC5ZR.js} +1 -1
  147. package/chunks/{dist-XKU3ABM5.js → dist-PQK4GCKA.js} +1 -1
  148. package/chunks/{dist-VHV4EVHG.js → dist-U75JK3PF.js} +1 -1
  149. package/chunks/{dist-R7LN5AZE.js → dist-VXO7QBON.js} +2 -2
  150. package/chunks/{dist-PNVLTKTL.js → dist-WH4TZSH3.js} +158 -4
  151. package/chunks/{dist-QYCAEZIT.js → dist-X2ABIW5R.js} +5 -1
  152. package/chunks/{earlyInputCapture-3VTHRC4C.js → earlyInputCapture-OJQPGCSX.js} +27 -27
  153. package/chunks/{edit-VNI4NJ73.js → edit-LZOAFLT2.js} +27 -27
  154. package/chunks/{en-5A6LA7RK.js → en-NJCA3TAA.js} +5 -1
  155. package/chunks/{enter-worktree-IYYBKPZT.js → enter-worktree-VL2TCGI5.js} +26 -26
  156. package/chunks/{enterPlanMode-GMC5FD5A.js → enterPlanMode-QGHBHZWI.js} +42 -27
  157. package/chunks/{environment-5HSSRMJ7.js → environment-2G5IC2EU.js} +30 -29
  158. package/chunks/{errors-HMFCJJ7P.js → errors-7QNQDNI2.js} +28 -28
  159. package/chunks/{exit-worktree-6BHCMP5G.js → exit-worktree-5V3X2MRH.js} +26 -26
  160. package/chunks/{exitPlanMode-CJW7G74W.js → exitPlanMode-XDPNQB4H.js} +26 -26
  161. package/chunks/{fast-path-FRDMDVHG.js → fast-path-NNSD4BVZ.js} +3 -3
  162. package/chunks/{fast-path-settings-5QZE64HR.js → fast-path-settings-DAOVFADC.js} +6 -4
  163. package/chunks/{fr-YXRABLYZ.js → fr-5F3E7WKD.js} +4 -1
  164. package/chunks/{gemini-QYSEGHAX.js → gemini-RKDUWGXJ.js} +139 -76
  165. package/chunks/{geminiContentGenerator-J7YNZDYP.js → geminiContentGenerator-V7QGHXVF.js} +4 -4
  166. package/chunks/{glob-BRCSGFOT.js → glob-ZNQUUOTS.js} +28 -27
  167. package/chunks/{grep-EE2DUOSY.js → grep-NYIGLM7R.js} +26 -26
  168. package/chunks/{handleAutoUpdate-5NWTLR67.js → handleAutoUpdate-UBQ4IQXY.js} +30 -30
  169. package/chunks/{i18n-BASPENNQ.js → i18n-5T3S6SGP.js} +27 -27
  170. package/chunks/initializer-TJED246Q.js +73 -0
  171. package/chunks/{installationInfo-W6V4DT7W.js → installationInfo-OTEU7FKR.js} +27 -27
  172. package/chunks/{ja-7VQOANVG.js → ja-66J6B53L.js} +5 -2
  173. package/chunks/{keychain-token-storage-VKUBNCP4.js → keychain-token-storage-AU22CQI6.js} +2 -2
  174. package/chunks/list-6OHS7MFJ.js +76 -0
  175. package/chunks/loadedSettingsAdapter-5456XIYG.js +70 -0
  176. package/chunks/{loop-wakeup-WX7BLWWP.js → loop-wakeup-C4EXLYVA.js} +5 -5
  177. package/chunks/{ls-ZB2BDP6T.js → ls-2OUTG3IZ.js} +4 -4
  178. package/chunks/{lsp-V5DN4YUJ.js → lsp-4VMNXZW6.js} +2 -2
  179. package/chunks/mcp-NOWRPFKY.js +70 -0
  180. package/chunks/{monitor-X5Z3H4FY.js → monitor-CVDZO3IZ.js} +26 -26
  181. package/chunks/nonInteractiveCli-UGI7Y43E.js +129 -0
  182. package/chunks/{notebook-edit-TRM2QIJK.js → notebook-edit-NWIA5TEJ.js} +27 -27
  183. package/chunks/{openaiContentGenerator-AAYONPMF.js → openaiContentGenerator-KJONBBJO.js} +12 -12
  184. package/chunks/{pidfile-D4I4FTVA.js → pidfile-L3TGXMTF.js} +27 -27
  185. package/chunks/{pt-2C6YCSHL.js → pt-TFZO5Y6T.js} +4 -1
  186. package/chunks/{qwenContentGenerator-K3HZ2H76.js → qwenContentGenerator-GXUZB5SJ.js} +28 -28
  187. package/chunks/{qwenOAuth2-PJQ27GSO.js → qwenOAuth2-LEYOU7RU.js} +5 -5
  188. package/chunks/{read-file-7SZSIZOL.js → read-file-I4OUZXTA.js} +8 -8
  189. package/chunks/{read-mcp-resource-SM5DA4RG.js → read-mcp-resource-JUFHCKSC.js} +2 -2
  190. package/chunks/{record-artifact-4XKZX3UW.js → record-artifact-DWSMBXYY.js} +2 -2
  191. package/chunks/{ripGrep-YNPFVCZP.js → ripGrep-XLCXANIO.js} +26 -26
  192. package/chunks/{ru-6BBHVZZV.js → ru-4L4LFHIT.js} +4 -1
  193. package/chunks/{run-qwen-serve-DMWV5N6L.js → run-qwen-serve-R6SBP6YS.js} +1232 -371
  194. package/chunks/{runtime-57WWRVHN.js → runtime-U3S33YUQ.js} +42 -37
  195. package/chunks/{scheduler-YBLGWSIL.js → scheduler-65QCIELP.js} +26 -26
  196. package/chunks/{send-message-F36YD6KQ.js → send-message-JZ752NWD.js} +3 -3
  197. package/chunks/{serve-R63NK3CV.js → serve-PSPOFCOD.js} +36 -34
  198. package/chunks/{server-Z22GCAXP.js → server-6P5ZB56O.js} +5561 -1377
  199. package/chunks/{session-HKAAI7BN.js → session-ILLOYW75.js} +298 -98
  200. package/chunks/{settings-3EYN66GK.js → settings-RMUJGYIK.js} +34 -32
  201. package/chunks/{shell-6YXINTWJ.js → shell-65GTAN5Q.js} +28 -26
  202. package/chunks/{skill-OO57P4X6.js → skill-L76U3YCX.js} +10 -10
  203. package/chunks/{spawnChannel-JD7G4VU6.js → spawnChannel-LXIGZ4EM.js} +28 -28
  204. package/chunks/{src-G5UPLZSZ.js → src-DWZT2X3Z.js} +87 -27
  205. package/chunks/{standalone-update-OB7F4JPZ.js → standalone-update-F6SRKPSD.js} +28 -28
  206. package/chunks/{startInteractiveUI-73EGLIIH.js → startInteractiveUI-UEJQP7S3.js} +730 -397
  207. package/chunks/{syntheticOutput-34H7LGA7.js → syntheticOutput-LELY6HAI.js} +3 -3
  208. package/chunks/{task-create-FRGOEIKY.js → task-create-QY3BIMNM.js} +8 -7
  209. package/chunks/{task-list-OW766BXZ.js → task-list-D2U47WBJ.js} +6 -5
  210. package/chunks/{task-stop-SIR5SNBN.js → task-stop-N6E5IYLH.js} +2 -2
  211. package/chunks/{task-update-YRA532MT.js → task-update-HJCQILLB.js} +8 -7
  212. package/chunks/{team-create-PECAAPXK.js → team-create-4QBZVOGN.js} +26 -26
  213. package/chunks/{team-delete-6OSECUZC.js → team-delete-RCWYDRF4.js} +6 -5
  214. package/chunks/{team-plan-approval-L6F434RY.js → team-plan-approval-BK4CIOFV.js} +26 -26
  215. package/chunks/{theme-manager-ZG4RY6GU.js → theme-manager-5F2IGW6E.js} +27 -27
  216. package/chunks/{todoWrite-YDMFEV4G.js → todoWrite-FKCGATPJ.js} +4 -4
  217. package/chunks/{tool-search-THVIWAPB.js → tool-search-J2ESO33H.js} +9 -9
  218. package/chunks/{total-session-admission-JOKNRIIA.js → total-session-admission-U4LZ5QTQ.js} +33 -33
  219. package/chunks/tree-sitter-YJVE2ZUK.js +2980 -0
  220. package/chunks/{trustedFolders-EOGT3UVS.js → trustedFolders-TIDOXCJA.js} +29 -28
  221. package/chunks/types-ML3TRJQ5.js +16 -0
  222. package/chunks/{updateCheck-2KYEYVSB.js → updateCheck-VRVR26FI.js} +29 -29
  223. package/chunks/{validateNonInterActiveAuth-EN6ZQSR2.js → validateNonInterActiveAuth-UGKYAVLG.js} +75 -71
  224. package/chunks/{version-3UEA6ZIR.js → version-7HR6VZAT.js} +1 -1
  225. package/chunks/{web-fetch-PAAEQKBW.js → web-fetch-QGODBB6S.js} +5 -5
  226. package/chunks/{workflow-QCCCMYP3.js → workflow-EDQAITEW.js} +27 -27
  227. package/chunks/workspace-providers-status-27UGAK77.js +73 -0
  228. package/chunks/workspace-registration-store-5H7577YQ.js +27 -0
  229. package/chunks/{workspace-registry-24QFLQYH.js → workspace-registry-F3THGAXC.js} +33 -33
  230. package/chunks/workspace-service-4JSAQAHP.js +86 -0
  231. package/chunks/workspace-skills-status-5JTWZHZU.js +72 -0
  232. package/chunks/{write-file-I3MUDRIE.js → write-file-UY6XCZZM.js} +27 -27
  233. package/chunks/{zh-RQE7I22T.js → zh-FSAH32JB.js} +6 -2
  234. package/chunks/{zh-TW-TBPQGHKH.js → zh-TW-D2YIE2LO.js} +6 -2
  235. package/cli.js +11 -11
  236. package/locales/ca.js +6 -0
  237. package/locales/de.js +6 -0
  238. package/locales/en.js +8 -0
  239. package/locales/fr.js +6 -0
  240. package/locales/ja.js +7 -1
  241. package/locales/pt.js +6 -0
  242. package/locales/ru.js +6 -0
  243. package/locales/zh-TW.js +9 -1
  244. package/locales/zh.js +9 -1
  245. package/package.json +3 -3
  246. package/web-shell/assets/{arc-C15hqnJe.js → arc-CObt_TK9.js} +1 -1
  247. package/web-shell/assets/{architectureDiagram-3BPJPVTR-B-At37J_.js → architectureDiagram-3BPJPVTR-B7aiJ6CK.js} +1 -1
  248. package/web-shell/assets/{blockDiagram-GPEHLZMM-B51wjcU7.js → blockDiagram-GPEHLZMM-BSK2CrID.js} +1 -1
  249. package/web-shell/assets/{c4Diagram-AAUBKEIU-xBK7BAwN.js → c4Diagram-AAUBKEIU-Bhx2p7T_.js} +1 -1
  250. package/web-shell/assets/channel-BBaLq8MV.js +1 -0
  251. package/web-shell/assets/{chunk-2J33WTMH-xKmLg7Yr.js → chunk-2J33WTMH-c3Hzv0Ni.js} +1 -1
  252. package/web-shell/assets/{chunk-4BX2VUAB-BfkdKZCM.js → chunk-4BX2VUAB-DNXaK7ZF.js} +1 -1
  253. package/web-shell/assets/{chunk-55IACEB6-DT713sZf.js → chunk-55IACEB6-BXjvDj_i.js} +1 -1
  254. package/web-shell/assets/{chunk-727SXJPM-CYEeAamv.js → chunk-727SXJPM-B6CaKFp-.js} +1 -1
  255. package/web-shell/assets/{chunk-AQP2D5EJ-DBN-5CFd.js → chunk-AQP2D5EJ-tij6Mz9B.js} +1 -1
  256. package/web-shell/assets/{chunk-FMBD7UC4-CGZKk4PH.js → chunk-FMBD7UC4-DdlsGk2h.js} +1 -1
  257. package/web-shell/assets/{chunk-ND2GUHAM-qQbC2O-y.js → chunk-ND2GUHAM-CdgGZSHE.js} +1 -1
  258. package/web-shell/assets/{chunk-QZHKN3VN-B3zeXwsX.js → chunk-QZHKN3VN-D8oJn1C0.js} +1 -1
  259. package/web-shell/assets/classDiagram-4FO5ZUOK-B2ZK6sWE.js +1 -0
  260. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-B2ZK6sWE.js +1 -0
  261. package/web-shell/assets/{cose-bilkent-S5V4N54A-BKsl1Wvy.js → cose-bilkent-S5V4N54A-BUVmNp1Y.js} +1 -1
  262. package/web-shell/assets/{dagre-BM42HDAG-CuuuLiBK.js → dagre-BM42HDAG-CO4q310O.js} +1 -1
  263. package/web-shell/assets/{diagram-2AECGRRQ-CG4_eKiV.js → diagram-2AECGRRQ-C6gFvWkg.js} +1 -1
  264. package/web-shell/assets/{diagram-5GNKFQAL-DSFTmZB1.js → diagram-5GNKFQAL-NG2I_c0h.js} +1 -1
  265. package/web-shell/assets/{diagram-KO2AKTUF-BxwlEHn8.js → diagram-KO2AKTUF-DFKMS6I9.js} +1 -1
  266. package/web-shell/assets/{diagram-LMA3HP47-BUAg-jMG.js → diagram-LMA3HP47-BiElfsfP.js} +1 -1
  267. package/web-shell/assets/{diagram-OG6HWLK6-BFM2jlO5.js → diagram-OG6HWLK6-zLWDYUqu.js} +1 -1
  268. package/web-shell/assets/{erDiagram-TEJ5UH35-CerbFPa2.js → erDiagram-TEJ5UH35-DoVaazhK.js} +1 -1
  269. package/web-shell/assets/{flowDiagram-I6XJVG4X-BNeZz5Zz.js → flowDiagram-I6XJVG4X-0RLz-mXg.js} +1 -1
  270. package/web-shell/assets/{ganttDiagram-6RSMTGT7-CTOogLaM.js → ganttDiagram-6RSMTGT7-C-eX1A39.js} +3 -3
  271. package/web-shell/assets/{gitGraphDiagram-PVQCEYII-yxSFkXPj.js → gitGraphDiagram-PVQCEYII-BauQu1Bu.js} +1 -1
  272. package/web-shell/assets/index-3uAT3ehO.css +5 -0
  273. package/web-shell/assets/index-CVHa2QH7.js +3 -0
  274. package/web-shell/assets/index-D1KigWat.js +1128 -0
  275. package/web-shell/assets/{infoDiagram-5YYISTIA-DYdAUevm.js → infoDiagram-5YYISTIA-C800cFvZ.js} +1 -1
  276. package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-CNuijZ90.js → ishikawaDiagram-YF4QCWOH-CFK1Jk6e.js} +1 -1
  277. package/web-shell/assets/{journeyDiagram-JHISSGLW-BTyiuonf.js → journeyDiagram-JHISSGLW-Cjx0WAC4.js} +1 -1
  278. package/web-shell/assets/{kanban-definition-UN3LZRKU-DPJo0Uow.js → kanban-definition-UN3LZRKU-DWMDHbiv.js} +1 -1
  279. package/web-shell/assets/{linear-C8wKCbIC.js → linear-vpW4FrZs.js} +1 -1
  280. package/web-shell/assets/{mermaid.core-BV5o7nW5.js → mermaid.core-DsHRUnDd.js} +5 -5
  281. package/web-shell/assets/{mindmap-definition-RKZ34NQL-BtLcBmSt.js → mindmap-definition-RKZ34NQL-D3Eb1cAK.js} +1 -1
  282. package/web-shell/assets/{pieDiagram-4H26LBE5-C22J7A9Q.js → pieDiagram-4H26LBE5-Cr2-6sWt.js} +1 -1
  283. package/web-shell/assets/{quadrantDiagram-W4KKPZXB-DSL10wiL.js → quadrantDiagram-W4KKPZXB-Yd7yUgVp.js} +1 -1
  284. package/web-shell/assets/{requirementDiagram-4Y6WPE33-feqh0UpX.js → requirementDiagram-4Y6WPE33-BE6SprL8.js} +1 -1
  285. package/web-shell/assets/{sankeyDiagram-5OEKKPKP-Z4OVaWaZ.js → sankeyDiagram-5OEKKPKP-DzkuMK8d.js} +1 -1
  286. package/web-shell/assets/{sequenceDiagram-3UESZ5HK-DIluIcb1.js → sequenceDiagram-3UESZ5HK-wD9A3Dhi.js} +1 -1
  287. package/web-shell/assets/{stateDiagram-AJRCARHV-hlhnuoYH.js → stateDiagram-AJRCARHV-BOp5q1Nm.js} +1 -1
  288. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-BDsWUmPG.js +1 -0
  289. package/web-shell/assets/{timeline-definition-PNZ67QCA-Dqf_CqgL.js → timeline-definition-PNZ67QCA-Btc08sUA.js} +1 -1
  290. package/web-shell/assets/{vennDiagram-CIIHVFJN-DD2QhaTX.js → vennDiagram-CIIHVFJN-Bv6upsOA.js} +1 -1
  291. package/web-shell/assets/{wardley-L42UT6IY-B2uI85U_.js → wardley-L42UT6IY-D-XamnCK.js} +1 -1
  292. package/web-shell/assets/{wardleyDiagram-YWT4CUSO-U1aJX71g.js → wardleyDiagram-YWT4CUSO-BbP_5Wfp.js} +1 -1
  293. package/web-shell/assets/{xychartDiagram-2RQKCTM6-C0ODHUee.js → xychartDiagram-2RQKCTM6-CO5Hh28b.js} +1 -1
  294. package/web-shell/index.html +2 -2
  295. package/chunks/chunk-CU3L64TP.js +0 -93
  296. package/chunks/initializer-UTQ7FB7G.js +0 -71
  297. package/chunks/list-DEICDL65.js +0 -74
  298. package/chunks/loadedSettingsAdapter-NOWEGDYJ.js +0 -68
  299. package/chunks/mcp-L5JXEEIA.js +0 -68
  300. package/chunks/nonInteractiveCli-LS2K4X6A.js +0 -124
  301. package/chunks/types-JNKGKUJT.js +0 -12
  302. package/chunks/workspace-providers-status-4KMGETOJ.js +0 -71
  303. package/chunks/workspace-service-RVLBMSMZ.js +0 -80
  304. package/chunks/workspace-skills-status-DS4ZVFTO.js +0 -70
  305. package/web-shell/assets/channel-CLiQD50f.js +0 -1
  306. package/web-shell/assets/classDiagram-4FO5ZUOK-D3sYqow5.js +0 -1
  307. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-D3sYqow5.js +0 -1
  308. package/web-shell/assets/index-D5IWFVk1.css +0 -5
  309. package/web-shell/assets/index-KFJRDhX7.js +0 -783
  310. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-BhQMwgpl.js +0 -1
@@ -2,28 +2,33 @@
2
2
  "use strict";
3
3
  import {
4
4
  CHANNEL_DAEMON_WORKER_SENTINEL,
5
- CHANNEL_WEBHOOK_TASK_IPC_TIMEOUT_MS,
6
5
  CHANNEL_WORKER_HEARTBEAT_INTERVAL_MS,
7
- ChannelWebhookEnqueueError,
8
6
  QWEN_DAEMON_TOKEN_ENV,
9
7
  QWEN_DAEMON_URL_ENV,
10
8
  QWEN_DAEMON_WORKSPACE_ENV,
11
- QWEN_SERVER_TOKEN_ENV,
12
- createChannelWebhookTaskMessage,
13
- isChannelWebhookEnqueueErrorCode,
14
- isChannelWebhookTaskResultMessage
15
- } from "./chunk-X4NKFGFJ.js";
9
+ QWEN_SERVER_TOKEN_ENV
10
+ } from "./chunk-GYTKQYDB.js";
16
11
  import {
17
12
  channelSelectionNames
18
13
  } from "./chunk-TJTKSVIV.js";
19
14
  import {
20
15
  redactLogCredentials
21
16
  } from "./chunk-M5GB774H.js";
17
+ import {
18
+ CHANNEL_WORKER_KILL_GRACE_MS,
19
+ CHANNEL_WORKER_STARTUP_TIMEOUT_MS,
20
+ CHANNEL_WORKER_STOP_GRACE_MS
21
+ } from "./chunk-5HBA2Z7V.js";
22
+ import {
23
+ CHANNEL_WEBHOOK_TASK_IPC_TIMEOUT_MS,
24
+ ChannelWebhookEnqueueError,
25
+ createChannelWebhookTaskMessage,
26
+ isChannelWebhookEnqueueErrorCode,
27
+ isChannelWebhookTaskResultMessage
28
+ } from "./chunk-OJAMDVF5.js";
22
29
  import {
23
30
  sanitizeLogText
24
- } from "./chunk-34Z3U5RQ.js";
25
- import "./chunk-UDXSXLER.js";
26
- import "./chunk-H6XPXXMH.js";
31
+ } from "./chunk-AU4R7ACM.js";
27
32
  import {
28
33
  init_esbuild_shims
29
34
  } from "./chunk-5O2XNYP6.js";
@@ -35,9 +40,7 @@ import {
35
40
  init_esbuild_shims();
36
41
  import { fork } from "node:child_process";
37
42
  import { randomUUID } from "node:crypto";
38
- var DEFAULT_CHANNEL_WORKER_STARTUP_TIMEOUT_MS = 3e4;
39
43
  var DEFAULT_CHANNEL_WORKER_HEARTBEAT_TIMEOUT_MS = 45e3;
40
- var CHANNEL_WORKER_STOP_GRACE_MS = 1e4;
41
44
  var MAX_WORKER_LOG_LINE_LENGTH = 4096;
42
45
  var MAX_WORKER_LOG_BUFFER_LENGTH = 64 * 1024;
43
46
  var MAX_WORKER_LOG_DISCARDED_REMAINDER_LENGTH = MAX_WORKER_LOG_BUFFER_LENGTH;
@@ -47,6 +50,15 @@ var ANSI_CSI_SEQUENCE_RE = new RegExp(
47
50
  );
48
51
  var WORKER_LOG_INVISIBLE_RE = new RegExp("[\\p{Cf}\\u2028\\u2029]|\\p{Variation_Selector}", "gu");
49
52
  var WORKER_LOG_CONTROL_RE = /[\x00-\x08\x0a-\x1f\x7f]/g;
53
+ var ChannelWorkerStopError = class extends Error {
54
+ static {
55
+ __name(this, "ChannelWorkerStopError");
56
+ }
57
+ constructor(message = "Channel worker did not exit after SIGKILL.") {
58
+ super(message);
59
+ this.name = "ChannelWorkerStopError";
60
+ }
61
+ };
50
62
  var DEFAULT_RESTART_POLICY = {
51
63
  maxRestarts: 3,
52
64
  windowMs: 5 * 6e4,
@@ -118,15 +130,17 @@ __name(notifyLog, "notifyLog");
118
130
  function waitForExit(child, timeoutMs) {
119
131
  return new Promise((resolve) => {
120
132
  let settled = false;
133
+ const onExit = /* @__PURE__ */ __name(() => done(true), "onExit");
121
134
  const done = /* @__PURE__ */ __name((exited) => {
122
135
  if (settled) return;
123
136
  settled = true;
124
- if (timer) clearTimeout(timer);
137
+ clearTimeout(timer);
138
+ child.removeListener("exit", onExit);
125
139
  resolve(exited);
126
140
  }, "done");
127
141
  const timer = setTimeout(() => done(false), timeoutMs);
128
142
  timer.unref();
129
- child.once("exit", () => done(true));
143
+ child.once("exit", onExit);
130
144
  });
131
145
  }
132
146
  __name(waitForExit, "waitForExit");
@@ -135,7 +149,7 @@ function hasObservedExit(snapshot) {
135
149
  }
136
150
  __name(hasObservedExit, "hasObservedExit");
137
151
  function createWorkerEnv(opts) {
138
- const env = { ...process.env };
152
+ const env = { ...opts.baseEnv ?? process.env };
139
153
  env["QWEN_CODE_NO_RELAUNCH"] = "true";
140
154
  env[CHANNEL_DAEMON_WORKER_SENTINEL] = randomUUID();
141
155
  env[QWEN_DAEMON_URL_ENV] = opts.daemonUrl;
@@ -428,7 +442,8 @@ function createChannelWorkerSupervisor(opts) {
428
442
  const env = createWorkerEnv({
429
443
  daemonUrl: opts.daemonUrl,
430
444
  workspace: opts.workspace,
431
- ...opts.daemonToken ? { daemonToken: opts.daemonToken } : {}
445
+ ...opts.daemonToken ? { daemonToken: opts.daemonToken } : {},
446
+ ...opts.workerBaseEnv ? { baseEnv: opts.workerBaseEnv } : {}
432
447
  });
433
448
  const redaction = workerLogRedactionOptions(opts.daemonToken, env);
434
449
  const requestedChannels = requestedChannelNames(opts.selection);
@@ -507,18 +522,27 @@ function createChannelWorkerSupervisor(opts) {
507
522
  cleanupLaunch();
508
523
  if (terminatingBeforeReady) return;
509
524
  terminatingBeforeReady = true;
510
- const exited = waitForExit(startedChild, 2e3);
525
+ const exited = waitForExit(startedChild, CHANNEL_WORKER_KILL_GRACE_MS);
511
526
  startedChild.kill("SIGTERM");
512
527
  void exited.then(async (didExit) => {
513
528
  if (!didExit && child === startedChild && !exitObserved) {
514
- const killed = waitForExit(startedChild, 2e3);
529
+ const killed = waitForExit(
530
+ startedChild,
531
+ CHANNEL_WORKER_KILL_GRACE_MS
532
+ );
515
533
  startedChild.kill("SIGKILL");
516
534
  if (!await killed && child === startedChild && !exitObserved) {
517
- child = void 0;
518
- if (kind === "restart" && !stopping) {
519
- scheduleRestart();
520
- notifyExit(opts.onExit, snapshotCopy());
521
- }
535
+ stopping = true;
536
+ notifyLog(opts.onLog, {
537
+ stream: "stderr",
538
+ line: "Channel worker did not exit after SIGKILL; automatic restart is disabled."
539
+ });
540
+ snapshot = {
541
+ ...snapshot,
542
+ state: "failed",
543
+ error: snapshot.error ?? "Channel worker did not exit after SIGKILL."
544
+ };
545
+ notifyExit(opts.onExit, snapshotCopy());
522
546
  }
523
547
  }
524
548
  });
@@ -628,7 +652,7 @@ function createChannelWorkerSupervisor(opts) {
628
652
  }
629
653
  __name(settleError, "settleError");
630
654
  startupTimer = setTimeout(() => {
631
- const timeoutMs = opts.startupTimeoutMs ?? DEFAULT_CHANNEL_WORKER_STARTUP_TIMEOUT_MS;
655
+ const timeoutMs = opts.startupTimeoutMs ?? CHANNEL_WORKER_STARTUP_TIMEOUT_MS;
632
656
  const error = `Channel worker did not become ready within ${timeoutMs}ms.`;
633
657
  snapshot = {
634
658
  ...snapshot,
@@ -639,7 +663,7 @@ function createChannelWorkerSupervisor(opts) {
639
663
  if (child === startedChild) {
640
664
  terminateBeforeReady();
641
665
  }
642
- }, opts.startupTimeoutMs ?? DEFAULT_CHANNEL_WORKER_STARTUP_TIMEOUT_MS);
666
+ }, opts.startupTimeoutMs ?? CHANNEL_WORKER_STARTUP_TIMEOUT_MS);
643
667
  startupTimer.unref();
644
668
  startedChild.on("message", handleMessage);
645
669
  startedChild.once("exit", settleExit);
@@ -648,7 +672,15 @@ function createChannelWorkerSupervisor(opts) {
648
672
  }, "launch");
649
673
  const supervisor = {
650
674
  async start() {
651
- if (disposed || child) return;
675
+ if (disposed) return;
676
+ if (child) {
677
+ if (stopping) {
678
+ throw new ChannelWorkerStopError(
679
+ "Channel worker stop is not yet confirmed."
680
+ );
681
+ }
682
+ return;
683
+ }
652
684
  stopping = false;
653
685
  clearRestartTimer();
654
686
  restartAttemptTimes = [];
@@ -666,22 +698,20 @@ function createChannelWorkerSupervisor(opts) {
666
698
  snapshot = { ...snapshot, state: "stopped" };
667
699
  return;
668
700
  }
669
- const exited = waitForExit(child, CHANNEL_WORKER_STOP_GRACE_MS);
701
+ const stoppingChild = child;
702
+ const exited = waitForExit(stoppingChild, CHANNEL_WORKER_STOP_GRACE_MS);
670
703
  stopping = true;
671
- child.kill("SIGTERM");
672
- if (!await exited) {
673
- const killed = waitForExit(child, 2e3);
674
- child.kill("SIGKILL");
704
+ stoppingChild.kill("SIGTERM");
705
+ if (!await exited && child === stoppingChild) {
706
+ const killed = waitForExit(stoppingChild, CHANNEL_WORKER_KILL_GRACE_MS);
707
+ stoppingChild.kill("SIGKILL");
675
708
  if (!await killed) {
676
- child = void 0;
677
- stopping = false;
678
709
  snapshot = {
679
710
  ...snapshot,
680
711
  state: "failed",
681
- signal: "SIGKILL",
682
712
  error: "Channel worker did not exit after SIGKILL."
683
713
  };
684
- return;
714
+ throw new ChannelWorkerStopError();
685
715
  }
686
716
  }
687
717
  child = void 0;
@@ -784,6 +814,8 @@ function createChannelWorkerSupervisor(opts) {
784
814
  return supervisor;
785
815
  }
786
816
  __name(createChannelWorkerSupervisor, "createChannelWorkerSupervisor");
817
+
787
818
  export {
819
+ ChannelWorkerStopError,
788
820
  createChannelWorkerSupervisor
789
821
  };
@@ -91,6 +91,8 @@ var PATTERNS = [
91
91
  // -------------------
92
92
  // Anthropic Claude
93
93
  // -------------------
94
+ [/^claude-opus-4-(?:6|7|8)/, LIMITS["1m"]],
95
+ // Opus 4.6-4.8: 1M
94
96
  [/^claude-/, LIMITS["200k"]],
95
97
  // All Claude models: 200K
96
98
  // -------------------
@@ -107,7 +109,7 @@ var PATTERNS = [
107
109
  [/^qwen3-max/, LIMITS["256k"]],
108
110
  // Open-source Qwen3 variants: 256K native
109
111
  [/^qwen3-coder-/, LIMITS["256k"]],
110
- // Qwen fallback (VL, turbo, plus, 2.5, etc.): 128K
112
+ // Qwen fallback (VL, turbo, plus, 2.5, etc.): 256K
111
113
  [/^qwen/, LIMITS["256k"]],
112
114
  // -------------------
113
115
  // DeepSeek
@@ -160,8 +162,8 @@ var OUTPUT_PATTERNS = [
160
162
  [/^o\d/, LIMITS["128k"]],
161
163
  // o-series: 128K
162
164
  // Anthropic Claude
163
- [/^claude-opus-4-6/, LIMITS["128k"]],
164
- // Opus 4.6: 128K
165
+ [/^claude-opus-4-(?:6|7|8)/, 128e3],
166
+ // Opus 4.6-4.8: 128K
165
167
  [/^claude-sonnet-4-6/, LIMITS["64k"]],
166
168
  // Sonnet 4.6: 64K
167
169
  [/^claude-/, LIMITS["64k"]],
@@ -210,7 +212,11 @@ function tokenLimit(model, type = "input") {
210
212
  }
211
213
  __name(tokenLimit, "tokenLimit");
212
214
  function defaultOutputCeiling(model) {
213
- return Math.min(tokenLimit(model, "output"), OUTPUT_TOKEN_CEILING);
215
+ const outputLimit = tokenLimit(model, "output");
216
+ if (/^claude-opus-4-(?:6|7|8)/.test(normalize(model))) {
217
+ return outputLimit;
218
+ }
219
+ return Math.min(outputLimit, OUTPUT_TOKEN_CEILING);
214
220
  }
215
221
  __name(defaultOutputCeiling, "defaultOutputCeiling");
216
222
  function reconcileMaxTokens(configMaxTokens, requestMaxTokens) {
@@ -19,15 +19,15 @@ import {
19
19
  taskHasLegacyCondition,
20
20
  taskHasLegacyRunMode,
21
21
  updateCronTasks
22
- } from "./chunk-CEA3E3JB.js";
22
+ } from "./chunk-SPJQO2CE.js";
23
23
  import {
24
24
  ToolNames
25
- } from "./chunk-B5ORX3FG.js";
25
+ } from "./chunk-JGUT3LWZ.js";
26
26
  import {
27
27
  Storage,
28
28
  createDebugLogger,
29
29
  getProjectHash
30
- } from "./chunk-J4TSQ5EQ.js";
30
+ } from "./chunk-7NFB7LBQ.js";
31
31
  import {
32
32
  init_esbuild_shims
33
33
  } from "./chunk-5O2XNYP6.js";
@@ -2,20 +2,20 @@
2
2
  "use strict";
3
3
  import {
4
4
  mapSkillConfigToStatus
5
- } from "./chunk-L36P3NBD.js";
5
+ } from "./chunk-2W3OOD4W.js";
6
6
  import {
7
7
  STATUS_SCHEMA_VERSION
8
- } from "./chunk-VWPVHAMO.js";
8
+ } from "./chunk-7DXHIMXL.js";
9
9
  import {
10
10
  loadSettings
11
- } from "./chunk-4C5BQ2D2.js";
11
+ } from "./chunk-CQQD7MDG.js";
12
12
  import {
13
13
  writeStderrLine
14
14
  } from "./chunk-YUZI3WAC.js";
15
15
  import {
16
16
  SkillManager,
17
17
  isSafeModeEnv
18
- } from "./chunk-NVYTCB5Z.js";
18
+ } from "./chunk-XCR44EEA.js";
19
19
  import {
20
20
  init_esbuild_shims
21
21
  } from "./chunk-5O2XNYP6.js";
@@ -5,13 +5,13 @@ import {
5
5
  } from "./chunk-E5Z2AVNV.js";
6
6
  import {
7
7
  getCliVersion
8
- } from "./chunk-3AHXV67U.js";
8
+ } from "./chunk-C5TVXLJZ.js";
9
9
  import {
10
10
  IdeClient
11
- } from "./chunk-NVYTCB5Z.js";
11
+ } from "./chunk-XCR44EEA.js";
12
12
  import {
13
13
  createDebugLogger
14
- } from "./chunk-J4TSQ5EQ.js";
14
+ } from "./chunk-7NFB7LBQ.js";
15
15
  import {
16
16
  init_esbuild_shims
17
17
  } from "./chunk-5O2XNYP6.js";
@@ -27,7 +27,7 @@ import { execFile } from "node:child_process";
27
27
 
28
28
  // packages/cli/src/generated/git-commit.ts
29
29
  init_esbuild_shims();
30
- var GIT_COMMIT_INFO = "277c984b1";
30
+ var GIT_COMMIT_INFO = "83c761d27";
31
31
 
32
32
  // packages/cli/src/utils/systemInfo.ts
33
33
  var debugLogger = createDebugLogger("STATUS");
@@ -23,29 +23,29 @@ import {
23
23
  } from "./chunk-VGC4I5JJ.js";
24
24
  import {
25
25
  isAnyAutoMemPath
26
- } from "./chunk-YLV3XXFB.js";
26
+ } from "./chunk-FBU7WRZI.js";
27
27
  import {
28
28
  InstallationManager
29
- } from "./chunk-TDEXZKMT.js";
29
+ } from "./chunk-Y66VOBRP.js";
30
30
  import {
31
31
  STRUCTURED_OUTPUT_REDACTED_ARGS
32
- } from "./chunk-J3JA76CF.js";
32
+ } from "./chunk-WTNZ6DXB.js";
33
33
  import {
34
34
  BaseDeclarativeTool,
35
35
  BaseToolInvocation,
36
36
  ToolDisplayNames,
37
37
  ToolNames
38
- } from "./chunk-B5ORX3FG.js";
38
+ } from "./chunk-JGUT3LWZ.js";
39
39
  import {
40
40
  atomicWriteFile,
41
41
  atomicWriteFileSync
42
- } from "./chunk-ZLXQN2QS.js";
42
+ } from "./chunk-WIEO4CWB.js";
43
43
  import {
44
44
  convertSchema,
45
45
  estimateTextTokens,
46
46
  runtimeDiagnostics,
47
47
  safeJsonParse
48
- } from "./chunk-JSG7ZSBC.js";
48
+ } from "./chunk-TQBODCFD.js";
49
49
  import {
50
50
  require_lib
51
51
  } from "./chunk-A4UCTEB5.js";
@@ -71,7 +71,7 @@ import {
71
71
  setShellTracePropagation,
72
72
  shortenPath,
73
73
  unescapePath
74
- } from "./chunk-J4TSQ5EQ.js";
74
+ } from "./chunk-7NFB7LBQ.js";
75
75
  import {
76
76
  require_dist
77
77
  } from "./chunk-75DOP5OR.js";
@@ -61936,7 +61936,7 @@ function getLanguageFromFilePath(filePath) {
61936
61936
  return extensionToLanguageMap[extension];
61937
61937
  }
61938
61938
  const filename = path3.basename(filePath).toLowerCase();
61939
- return extensionToLanguageMap[`.${filename}`];
61939
+ return extensionToLanguageMap[filename] ?? extensionToLanguageMap[`.${filename}`];
61940
61940
  }
61941
61941
  __name(getLanguageFromFilePath, "getLanguageFromFilePath");
61942
61942
 
@@ -64174,6 +64174,20 @@ function parseTaggedThinkingText(text) {
64174
64174
  }
64175
64175
  __name(parseTaggedThinkingText, "parseTaggedThinkingText");
64176
64176
 
64177
+ // packages/core/src/core/invalid-stream-error.ts
64178
+ init_esbuild_shims();
64179
+ var InvalidStreamError = class extends Error {
64180
+ static {
64181
+ __name(this, "InvalidStreamError");
64182
+ }
64183
+ type;
64184
+ constructor(message, type) {
64185
+ super(message);
64186
+ this.name = "InvalidStreamError";
64187
+ this.type = type;
64188
+ }
64189
+ };
64190
+
64177
64191
  // packages/core/src/core/openaiContentGenerator/converter.ts
64178
64192
  var debugLogger6 = createDebugLogger("CONVERTER");
64179
64193
  var SPLIT_TOOL_MEDIA_TEXT = "(attached media from previous tool call)";
@@ -64830,6 +64844,10 @@ function hasThoughtPart(parts) {
64830
64844
  return parts.some((part) => part.thought === true);
64831
64845
  }
64832
64846
  __name(hasThoughtPart, "hasThoughtPart");
64847
+ var THINKING_TAG_PATTERN = /<\/?think(?:ing)?\s*>/i;
64848
+ var CLOSING_THINKING_TAG_PATTERN = /\n[^\S\r\n]*<\/think(?:ing)?[^\S\r\n]*>/i;
64849
+ var LEADING_CLOSING_THINKING_TAG_PATTERN = /^[^\S\r\n]*<\/think(?:ing)?[^\S\r\n]*>/i;
64850
+ var LEADING_THINKING_TAG_PATTERN = /^\s*<\/?think(?:ing)?\s*>/i;
64833
64851
  function convertOpenAIResponseToGemini(openaiResponse, requestContext) {
64834
64852
  const choice = openaiResponse.choices?.[0];
64835
64853
  const response = new GenerateContentResponse();
@@ -64913,7 +64931,7 @@ function convertOpenAIChunkToGemini(chunk, requestContext) {
64913
64931
  );
64914
64932
  }
64915
64933
  if (choice) {
64916
- const parts = [];
64934
+ let parts = [];
64917
64935
  let contentParts = [];
64918
64936
  const reasoningText = choice.delta?.reasoning_content ?? choice.delta?.reasoning;
64919
64937
  if (typeof choice.delta?.content === "string") {
@@ -64958,6 +64976,12 @@ function convertOpenAIChunkToGemini(chunk, requestContext) {
64958
64976
  cumulativeMode: false
64959
64977
  }
64960
64978
  );
64979
+ if (normalizedReasoningText) {
64980
+ requestContext.hasStructuredReasoningContent = true;
64981
+ if (THINKING_TAG_PATTERN.test(normalizedReasoningText)) {
64982
+ requestContext.hasThinkingTagInReasoning = true;
64983
+ }
64984
+ }
64961
64985
  if (normalizedReasoningText && !requestContext.responseParsingOptions?.taggedThinkingTags) {
64962
64986
  parts.push(createOpenAIReasoningThoughtPart(normalizedReasoningText));
64963
64987
  } else if (normalizedReasoningText && !requestContext.hasTaggedThinkingThought) {
@@ -65015,10 +65039,45 @@ function convertOpenAIChunkToGemini(chunk, requestContext) {
65015
65039
  }
65016
65040
  }
65017
65041
  }
65042
+ const visibleText = parts.map(
65043
+ (part) => part.thought !== true && typeof part.text === "string" ? part.text : ""
65044
+ ).join("");
65045
+ const leakedThinkingTag = requestContext.hasStructuredReasoningContent === true && (requestContext.hasVisibleContent !== true && LEADING_THINKING_TAG_PATTERN.test(visibleText) || requestContext.hasThinkingTagInReasoning === true && (CLOSING_THINKING_TAG_PATTERN.test(visibleText) || requestContext.atVisibleLineStart === true && LEADING_CLOSING_THINKING_TAG_PATTERN.test(visibleText)));
65046
+ if (/\S/.test(visibleText)) {
65047
+ requestContext.hasVisibleContent = true;
65048
+ }
65049
+ if (visibleText && requestContext.hasThinkingTagInReasoning === true) {
65050
+ const lastLineBreak = visibleText.lastIndexOf("\n");
65051
+ const lineSuffix = visibleText.slice(lastLineBreak + 1);
65052
+ requestContext.atVisibleLineStart = (lastLineBreak >= 0 || requestContext.atVisibleLineStart === true) && /^[^\S\r\n]*$/.test(lineSuffix);
65053
+ }
65054
+ if (leakedThinkingTag) {
65055
+ requestContext.pendingUntrustedResponseParts = void 0;
65056
+ throw new InvalidStreamError(
65057
+ "Model response leaked thinking tags.",
65058
+ "PROTOCOL_TAG_LEAK"
65059
+ );
65060
+ }
65061
+ const toolCallWithoutName = toolCallParser.hasNamelessToolCall();
65062
+ const completedToolCalls = choice.finish_reason ? toolCallParser.getCompletedToolCalls() : [];
65063
+ if (choice.finish_reason && (toolCallWithoutName || choice.finish_reason === "tool_calls" && completedToolCalls.length === 0)) {
65064
+ requestContext.pendingUntrustedResponseParts = void 0;
65065
+ throw new InvalidStreamError(
65066
+ "Model response contained a malformed tool call.",
65067
+ "MALFORMED_TOOL_CALL"
65068
+ );
65069
+ }
65070
+ const shouldHoldParts = !choice.finish_reason && (toolCallWithoutName || requestContext.hasThinkingTagInReasoning === true);
65071
+ if (shouldHoldParts) {
65072
+ (requestContext.pendingUntrustedResponseParts ??= []).push(...parts);
65073
+ parts.length = 0;
65074
+ } else if (requestContext.pendingUntrustedResponseParts) {
65075
+ parts = requestContext.pendingUntrustedResponseParts.concat(parts);
65076
+ requestContext.pendingUntrustedResponseParts = void 0;
65077
+ }
65018
65078
  let toolCallsTruncated = false;
65019
65079
  if (choice.finish_reason) {
65020
65080
  toolCallsTruncated = toolCallParser.hasIncompleteToolCalls();
65021
- const completedToolCalls = toolCallParser.getCompletedToolCalls();
65022
65081
  for (const toolCall of completedToolCalls) {
65023
65082
  if (toolCall.name) {
65024
65083
  parts.push({
@@ -66728,7 +66787,11 @@ function endToolExecutionSpan(span, metadata) {
66728
66787
  spanCtx.ended = true;
66729
66788
  try {
66730
66789
  const duration = Date.now() - spanCtx.startTime;
66731
- const endAttributes = { duration_ms: duration };
66790
+ const endAttributes = {};
66791
+ if (metadata?.attributes) {
66792
+ Object.assign(endAttributes, metadata.attributes);
66793
+ }
66794
+ endAttributes["duration_ms"] = duration;
66732
66795
  if (metadata) {
66733
66796
  if (metadata.success !== void 0)
66734
66797
  endAttributes["success"] = metadata.success;
@@ -68362,6 +68425,44 @@ var UiTelemetryService = class _UiTelemetryService extends EventEmitter {
68362
68425
  };
68363
68426
  var uiTelemetryService = new UiTelemetryService();
68364
68427
 
68428
+ // packages/core/src/telemetry/api-activity-tracker.ts
68429
+ init_esbuild_shims();
68430
+ var ApiActivityTracker = class {
68431
+ static {
68432
+ __name(this, "ApiActivityTracker");
68433
+ }
68434
+ #errors = 0;
68435
+ #retries = 0;
68436
+ /** Fold in one model API error (called from `logApiError`). */
68437
+ recordError() {
68438
+ this.#errors += 1;
68439
+ }
68440
+ /** Fold in one automatic retry (called from `logApiRetry`). */
68441
+ recordRetry() {
68442
+ this.#retries += 1;
68443
+ }
68444
+ /**
68445
+ * Return the counts accumulated since the last drain and reset them to zero.
68446
+ * The read+reset is synchronous (no `await` between), so a `recordError` /
68447
+ * `recordRetry` racing an in-progress drain can never be lost — it simply
68448
+ * lands in the next window.
68449
+ */
68450
+ drain() {
68451
+ const counts = {
68452
+ errors: this.#errors,
68453
+ retries: this.#retries
68454
+ };
68455
+ this.#errors = 0;
68456
+ this.#retries = 0;
68457
+ return counts;
68458
+ }
68459
+ /** Peek at the pending counts without draining (tests / diagnostics). */
68460
+ peek() {
68461
+ return { errors: this.#errors, retries: this.#retries };
68462
+ }
68463
+ };
68464
+ var apiActivityTracker = new ApiActivityTracker();
68465
+
68365
68466
  // packages/core/src/telemetry/daemon-tracing.ts
68366
68467
  init_esbuild_shims();
68367
68468
  init_esm();
@@ -70061,11 +70162,11 @@ async function createContentGenerator(generatorConfig, config, isInitialAuth) {
70061
70162
  let baseGenerator;
70062
70163
  try {
70063
70164
  if (authType === "openai" /* USE_OPENAI */) {
70064
- const { createOpenAIContentGenerator } = await import("./openaiContentGenerator-AAYONPMF.js");
70165
+ const { createOpenAIContentGenerator } = await import("./openaiContentGenerator-KJONBBJO.js");
70065
70166
  baseGenerator = createOpenAIContentGenerator(generatorConfig, config);
70066
70167
  } else if (authType === "qwen-oauth" /* QWEN_OAUTH */) {
70067
- const { getQwenOAuthClient: getQwenOauthClient } = await import("./qwenOAuth2-PJQ27GSO.js");
70068
- const { QwenContentGenerator } = await import("./qwenContentGenerator-K3HZ2H76.js");
70168
+ const { getQwenOAuthClient: getQwenOauthClient } = await import("./qwenOAuth2-LEYOU7RU.js");
70169
+ const { QwenContentGenerator } = await import("./qwenContentGenerator-GXUZB5SJ.js");
70069
70170
  try {
70070
70171
  const qwenClient = await getQwenOauthClient(
70071
70172
  config,
@@ -70083,10 +70184,10 @@ async function createContentGenerator(generatorConfig, config, isInitialAuth) {
70083
70184
  throw new Error(error instanceof Error ? error.message : String(error));
70084
70185
  }
70085
70186
  } else if (authType === "anthropic" /* USE_ANTHROPIC */) {
70086
- const { createAnthropicContentGenerator } = await import("./anthropicContentGenerator-L73TO3DB.js");
70187
+ const { createAnthropicContentGenerator } = await import("./anthropicContentGenerator-56U3YCP2.js");
70087
70188
  baseGenerator = createAnthropicContentGenerator(generatorConfig, config);
70088
70189
  } else if (authType === "gemini" /* USE_GEMINI */ || authType === "vertex-ai" /* USE_VERTEX_AI */) {
70089
- const { createGeminiContentGenerator } = await import("./geminiContentGenerator-J7YNZDYP.js");
70190
+ const { createGeminiContentGenerator } = await import("./geminiContentGenerator-V7QGHXVF.js");
70090
70191
  baseGenerator = createGeminiContentGenerator(generatorConfig, config);
70091
70192
  } else {
70092
70193
  throw new Error(
@@ -71811,6 +71912,7 @@ function logApiError(config, event) {
71811
71912
  "event.timestamp": (/* @__PURE__ */ new Date()).toISOString()
71812
71913
  };
71813
71914
  uiTelemetryService.addEvent(uiEvent, config.getSessionId());
71915
+ apiActivityTracker.recordError();
71814
71916
  if (!isInternalPromptId(event.prompt_id)) {
71815
71917
  recordUiTelemetryEventToChat(config, uiEvent);
71816
71918
  }
@@ -72077,6 +72179,7 @@ function logContentRetryFailure(config, event) {
72077
72179
  }
72078
72180
  __name(logContentRetryFailure, "logContentRetryFailure");
72079
72181
  function logApiRetry(config, event) {
72182
+ apiActivityTracker.recordRetry();
72080
72183
  QwenLogger.getInstance(config)?.logApiRetryEvent(event);
72081
72184
  if (!isTelemetrySdkInitialized()) return;
72082
72185
  const attributes = {
@@ -72989,6 +73092,7 @@ export {
72989
73092
  refreshSessionContext,
72990
73093
  shutdownTelemetry,
72991
73094
  forceFlushMetrics,
73095
+ apiActivityTracker,
72992
73096
  _recoverObjectsFromLine,
72993
73097
  parseLineTolerant,
72994
73098
  readLines,
@@ -73124,6 +73228,7 @@ export {
73124
73228
  parseThought,
73125
73229
  getThoughtSummary,
73126
73230
  TaggedThinkingParser,
73231
+ InvalidStreamError,
73127
73232
  OpenAIContentConverter,
73128
73233
  openaiRequestCaptureContext,
73129
73234
  isApiError,
@@ -8,13 +8,13 @@ import {
8
8
  } from "./chunk-L573Z2QZ.js";
9
9
  import {
10
10
  t
11
- } from "./chunk-YAUFFXDS.js";
11
+ } from "./chunk-UZKG7HFG.js";
12
12
  import {
13
13
  So
14
- } from "./chunk-NVYTCB5Z.js";
14
+ } from "./chunk-XCR44EEA.js";
15
15
  import {
16
16
  createDebugLogger
17
- } from "./chunk-J4TSQ5EQ.js";
17
+ } from "./chunk-7NFB7LBQ.js";
18
18
  import {
19
19
  init_esbuild_shims
20
20
  } from "./chunk-5O2XNYP6.js";
@@ -14,7 +14,7 @@ import {
14
14
  init_esbuild_shims();
15
15
  async function getCliVersion() {
16
16
  const pkgJson = await getPackageJson();
17
- return "0.19.9";
17
+ return "0.19.10-nightly.20260715.c538bd70d";
18
18
  }
19
19
  __name(getCliVersion, "getCliVersion");
20
20