@qwen-code/qwen-code 0.19.9 → 0.19.10

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 +7 -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-67ODZ4SZ.js} +31 -31
  13. package/chunks/{StandaloneSessionPicker-WS4GXYOG.js → StandaloneSessionPicker-SIPBQT5Z.js} +51 -49
  14. package/chunks/{acpAgent-5FWSOZL5.js → acpAgent-VPZJXLFX.js} +528 -478
  15. package/chunks/{agent-HOLHB3RT.js → agent-Z7NWL6XL.js} +26 -26
  16. package/chunks/{agent-headless-SXL6H56A.js → agent-headless-73HZ6ROQ.js} +26 -26
  17. package/chunks/{anthropicContentGenerator-L73TO3DB.js → anthropicContentGenerator-56U3YCP2.js} +5 -5
  18. package/chunks/{artifact-tool-U7IRTLIV.js → artifact-tool-BWZZJ42H.js} +2 -2
  19. package/chunks/{askUserQuestion-2DLUUZZG.js → askUserQuestion-WU3S5A5T.js} +2 -2
  20. package/chunks/{bridge-BCJQ7BBB.js → bridge-XFKW6S7Q.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-5RWKSGEU.js +418 -0
  24. package/chunks/channel-worker-supervisor-PCDAZN4D.js +20 -0
  25. package/chunks/{chunk-LXNEJD34.js → chunk-2FO5GFKZ.js} +1 -1
  26. package/chunks/{chunk-B5ORX3FG.js → chunk-2UUAIFQO.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-E2IY465S.js → chunk-3XJFUTNM.js} +10 -10
  31. package/chunks/{chunk-JZETEN3Z.js → chunk-422XAKCK.js} +3 -3
  32. package/chunks/{chunk-N3EMS75V.js → chunk-4FMG7EDJ.js} +1268 -1233
  33. package/chunks/{chunk-HKMAENAO.js → chunk-4YWLED2A.js} +8 -6
  34. package/chunks/{chunk-SCGXUJBT.js → chunk-5EBKKSBX.js} +3 -3
  35. package/chunks/chunk-5HBA2Z7V.js +28 -0
  36. package/chunks/{chunk-XYQSMABS.js → chunk-5LROA5W4.js} +4 -4
  37. package/chunks/{chunk-ZJE7NSL3.js → chunk-5M6IDOMF.js} +34 -97
  38. package/chunks/{chunk-VA4KQY6V.js → chunk-65N2J6V2.js} +3 -3
  39. package/chunks/{chunk-4C5BQ2D2.js → chunk-6GETGQWP.js} +71 -12
  40. package/chunks/{chunk-PVZM22CK.js → chunk-6GKMJPOC.js} +5 -5
  41. package/chunks/{chunk-W2UIXQDL.js → chunk-6OATMEYN.js} +1 -1
  42. package/chunks/{chunk-GZRTYZ2R.js → chunk-6W6DI34P.js} +154 -1
  43. package/chunks/{chunk-EMDMPBJ4.js → chunk-7L4XBYVW.js} +3 -3
  44. package/chunks/{chunk-EAXLGSFP.js → chunk-7MJAZMXK.js} +8 -8
  45. package/chunks/{chunk-K434OPES.js → chunk-7NAWTFVY.js} +3 -3
  46. package/chunks/{chunk-J4TSQ5EQ.js → chunk-7NFB7LBQ.js} +8 -1
  47. package/chunks/{chunk-5SFOMFG4.js → chunk-7R4DPSRA.js} +36 -2
  48. package/chunks/{chunk-P67PFTUT.js → chunk-AAR5SGMD.js} +4 -4
  49. package/chunks/{chunk-RDJSGHZE.js → chunk-ALGGS7UH.js} +1 -38
  50. package/chunks/{chunk-GWHYEOV2.js → chunk-ARKANCNX.js} +2 -1
  51. package/chunks/{chunk-D2GFWEXB.js → chunk-B5I2IIWY.js} +6 -6
  52. package/chunks/{chunk-524RQP4Q.js → chunk-B7NUUEXC.js} +10 -4
  53. package/chunks/{chunk-CUMMSHH6.js → chunk-BBNVFRGD.js} +1 -1
  54. package/chunks/{chunk-5HOMWMCL.js → chunk-CEW4HDPK.js} +4166 -1338
  55. package/chunks/chunk-CJFNEBYB.js +91 -0
  56. package/chunks/{chunk-VWPVHAMO.js → chunk-CUUXANEQ.js} +5 -1
  57. package/chunks/{chunk-GWLSNBG4.js → chunk-DK33QJ3V.js} +30 -26
  58. package/chunks/{chunk-HPDUL5MF.js → chunk-DPFBNG72.js} +1 -1
  59. package/chunks/{chunk-KKNMOEZH.js → chunk-E2UVIFI2.js} +185 -398
  60. package/chunks/{chunk-MC23XKFE.js → chunk-E67NFMF4.js} +3 -3
  61. package/chunks/{chunk-OQ4DRIOA.js → chunk-EQY6POVO.js} +2 -2
  62. package/chunks/{chunk-XUOOWUZS.js → chunk-F7NXQH4Y.js} +1 -1
  63. package/chunks/{chunk-YLV3XXFB.js → chunk-FBU7WRZI.js} +17 -1
  64. package/chunks/{chunk-LK7KUE55.js → chunk-FSA7ERJ2.js} +1 -1
  65. package/chunks/{chunk-PDZ7MBDG.js → chunk-FXMC7SL2.js} +27 -6
  66. package/chunks/{chunk-SJHDYNHF.js → chunk-GDQQRV43.js} +3 -3
  67. package/chunks/{chunk-34MW4KTI.js → chunk-GGJII3FM.js} +2 -2
  68. package/chunks/{chunk-3BTRNWWD.js → chunk-GOXKNSDZ.js} +1 -64
  69. package/chunks/chunk-GYTKQYDB.js +23 -0
  70. package/chunks/{chunk-HVY356M2.js → chunk-H3FQOPPS.js} +3 -3
  71. package/chunks/{chunk-YVEDCAUE.js → chunk-HGT6JR3U.js} +19 -0
  72. package/chunks/{chunk-WQUQVGTF.js → chunk-HHEFI4RP.js} +183 -96
  73. package/chunks/chunk-IDS7MSUP.js +74 -0
  74. package/chunks/{chunk-6PESIEKJ.js → chunk-JSJFKYWT.js} +68 -6
  75. package/chunks/{chunk-CNEIYWSA.js → chunk-K4PZ5F5T.js} +5 -5
  76. package/chunks/{chunk-NVYTCB5Z.js → chunk-K7CRWKOE.js} +14534 -13980
  77. package/chunks/{chunk-ORBGV7NJ.js → chunk-KKRTYONM.js} +6 -4
  78. package/chunks/{chunk-IAVB3HM3.js → chunk-KSO42X3Z.js} +13 -0
  79. package/chunks/chunk-L37RC7MQ.js +493 -0
  80. package/chunks/{chunk-4QLQE5WJ.js → chunk-L5U3ELZX.js} +1 -1
  81. package/chunks/{chunk-3G7CIHVV.js → chunk-L62SEJWY.js} +4 -4
  82. package/chunks/{chunk-EGYZ275M.js → chunk-LNUXFLLJ.js} +4 -4
  83. package/chunks/{chunk-4ZVWQHEQ.js → chunk-LQIDP6K5.js} +1 -1
  84. package/chunks/{chunk-VTU57BWZ.js → chunk-LQU7EVFA.js} +1 -1
  85. package/chunks/{chunk-B4G2WOFA.js → chunk-LTNI523B.js} +2 -2
  86. package/chunks/{chunk-DC5Z3DU6.js → chunk-LXLTBIDP.js} +43 -6
  87. package/chunks/{chunk-KHUQZZJ6.js → chunk-MO7O5722.js} +370 -36
  88. package/chunks/chunk-MR3PXB6E.js +48 -0
  89. package/chunks/{chunk-5VXNZWGF.js → chunk-N6FXRR6P.js} +1 -1
  90. package/chunks/{chunk-WL4L7EZH.js → chunk-OA4JVLSA.js} +27 -1
  91. package/chunks/{chunk-TO6QE22P.js → chunk-OATTJGPJ.js} +26 -22
  92. package/chunks/{chunk-X6TJ3YZV.js → chunk-OFEVHGVU.js} +159 -57
  93. package/chunks/{chunk-X4NKFGFJ.js → chunk-OJAMDVF5.js} +0 -15
  94. package/chunks/{chunk-BZIFY5TF.js → chunk-OKAIGAYW.js} +3 -3
  95. package/chunks/{chunk-3VAGG5T5.js → chunk-P6LART6G.js} +116 -15
  96. package/chunks/{chunk-3SJSQXNS.js → chunk-PEJWA3QQ.js} +12 -8
  97. package/chunks/{chunk-BAPGSC7U.js → chunk-Q5GLXH5Q.js} +23 -9
  98. package/chunks/{chunk-MXL5UP4X.js → chunk-Q6TUALBE.js} +1 -1
  99. package/chunks/{chunk-QYMQSECS.js → chunk-QAW7PIHT.js} +2 -2
  100. package/chunks/{chunk-LUODI7WD.js → chunk-RCEEXIOO.js} +6 -4
  101. package/chunks/{chunk-YAUFFXDS.js → chunk-RDRVMDWV.js} +12 -11
  102. package/chunks/{chunk-CEA3E3JB.js → chunk-SPJQO2CE.js} +2 -2
  103. package/chunks/{chunk-U2NNEY4R.js → chunk-SPUYQB4T.js} +1 -1
  104. package/chunks/{chunk-34Z3U5RQ.js → chunk-SXU3KKNI.js} +514 -114
  105. package/chunks/{chunk-ECNYL4AA.js → chunk-TISZXPAX.js} +1 -1
  106. package/chunks/{chunk-JSG7ZSBC.js → chunk-TQBODCFD.js} +1 -1
  107. package/chunks/{chunk-AKIVHSJR.js → chunk-TTUO4DNG.js} +111 -93
  108. package/chunks/chunk-TV6K2FB4.js +224 -0
  109. package/chunks/{chunk-4GORAUCN.js → chunk-TXY2C3D2.js} +1 -1
  110. package/chunks/{chunk-5XUCZNSY.js → chunk-TYLOFD2U.js} +1 -1
  111. package/chunks/{chunk-CLFKOZEK.js → chunk-UFOKA4PR.js} +1 -1
  112. package/chunks/{channel-worker-supervisor-WSOAAYUO.js → chunk-URU5UEK6.js} +67 -35
  113. package/chunks/{chunk-D5SKC4YG.js → chunk-V7EQTZYR.js} +41 -13
  114. package/chunks/{chunk-L6P4KPHR.js → chunk-VBRRNQB7.js} +59 -39
  115. package/chunks/{chunk-BMGVRZN4.js → chunk-W34A5MJH.js} +1 -1
  116. package/chunks/{chunk-PODM4SZ4.js → chunk-WDW64OW3.js} +5 -5
  117. package/chunks/{chunk-W3JHSWRP.js → chunk-WDWJ4OQJ.js} +4 -4
  118. package/chunks/{chunk-Q4YQW46J.js → chunk-WIASPMLX.js} +31 -17
  119. package/chunks/{chunk-ZLXQN2QS.js → chunk-WIEO4CWB.js} +1 -1
  120. package/chunks/{chunk-A3XKDTSH.js → chunk-WLXYAKV7.js} +4 -4
  121. package/chunks/{chunk-Q6I5QHMH.js → chunk-WTSXKLG5.js} +1 -1
  122. package/chunks/{chunk-J3JA76CF.js → chunk-WX6SD4IQ.js} +1 -1
  123. package/chunks/{chunk-77XJ3SWN.js → chunk-X362TMXZ.js} +5 -5
  124. package/chunks/{chunk-CCDMCZPP.js → chunk-XLIRF7IK.js} +1 -1
  125. package/chunks/{chunk-AURZZYMD.js → chunk-XXJKGHZV.js} +4 -4
  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-3AHXV67U.js → chunk-YU56QGXX.js} +1 -1
  129. package/chunks/{chunk-5U27BZ72.js → chunk-YX4LLZ3D.js} +187 -75
  130. package/chunks/{chunk-ATAKVRIF.js → chunk-YYPXHMWO.js} +7 -7
  131. package/chunks/{chunk-XLA62MYB.js → chunk-ZKMGAFYV.js} +2 -2
  132. package/chunks/{chunk-UOZWKTQG.js → chunk-ZPAHLFZU.js} +2 -2
  133. package/chunks/{chunk-7PU4FYLG.js → chunk-ZQTZXVHP.js} +4 -4
  134. package/chunks/chunk-ZRKBI3DP.js +34 -0
  135. package/chunks/{computer-use-HM37RX6A.js → computer-use-IYTX45WA.js} +26 -26
  136. package/chunks/{config-utils-NV2SVGPB.js → config-utils-CFT33LTP.js} +3 -2
  137. package/chunks/{contextCommand-OF5SFGH2.js → contextCommand-272V77WU.js} +28 -28
  138. package/chunks/{create-sub-session-KPRT7ECJ.js → create-sub-session-CBJMQLYP.js} +26 -26
  139. package/chunks/{create-sub-session-INX7TXJI.js → create-sub-session-WNX2OQVX.js} +2 -2
  140. package/chunks/{cron-create-AMBKGZX6.js → cron-create-36TIFKRT.js} +4 -4
  141. package/chunks/{cron-delete-LRU4OJYG.js → cron-delete-OQD3WULU.js} +4 -4
  142. package/chunks/{cron-list-WVP2JXER.js → cron-list-4533T2FH.js} +4 -4
  143. package/chunks/{daemon-ARHTSTXP.js → daemon-RNGFPMAB.js} +575 -58
  144. package/chunks/{daemon-status-provider-B2UTZUJ2.js → daemon-status-provider-L4STG5VO.js} +36 -36
  145. package/chunks/{de-EBJN3OVN.js → de-2VCDRDGU.js} +4 -1
  146. package/chunks/{dist-VHV4EVHG.js → dist-3V3ZV6ML.js} +1 -1
  147. package/chunks/{dist-XKU3ABM5.js → dist-ERCPDVA6.js} +1 -1
  148. package/chunks/{dist-PNVLTKTL.js → dist-HNN7DR2L.js} +158 -4
  149. package/chunks/{dist-WKPOYU7O.js → dist-JZE7F6YR.js} +1 -1
  150. package/chunks/{dist-QYCAEZIT.js → dist-MOEC47TR.js} +5 -1
  151. package/chunks/{dist-R7LN5AZE.js → dist-PHEPJLXD.js} +2 -2
  152. package/chunks/{earlyInputCapture-3VTHRC4C.js → earlyInputCapture-EN4BRREQ.js} +27 -27
  153. package/chunks/{edit-VNI4NJ73.js → edit-OMAF2QDR.js} +27 -27
  154. package/chunks/{en-5A6LA7RK.js → en-NJCA3TAA.js} +5 -1
  155. package/chunks/{enter-worktree-IYYBKPZT.js → enter-worktree-BBZX52HG.js} +26 -26
  156. package/chunks/{enterPlanMode-GMC5FD5A.js → enterPlanMode-5NNFMBUY.js} +42 -27
  157. package/chunks/{environment-5HSSRMJ7.js → environment-7TEWMJYN.js} +30 -29
  158. package/chunks/{errors-HMFCJJ7P.js → errors-I4VKVX3F.js} +28 -28
  159. package/chunks/{exit-worktree-6BHCMP5G.js → exit-worktree-FUWRJI33.js} +26 -26
  160. package/chunks/{exitPlanMode-CJW7G74W.js → exitPlanMode-IHCJ5EEI.js} +26 -26
  161. package/chunks/{fast-path-FRDMDVHG.js → fast-path-ZA57TOH4.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-UOAKVXBG.js} +139 -76
  165. package/chunks/{geminiContentGenerator-J7YNZDYP.js → geminiContentGenerator-G6UCE6MW.js} +4 -4
  166. package/chunks/{glob-BRCSGFOT.js → glob-4GJQ2UFF.js} +28 -27
  167. package/chunks/{grep-EE2DUOSY.js → grep-5QSYXF2E.js} +26 -26
  168. package/chunks/{handleAutoUpdate-5NWTLR67.js → handleAutoUpdate-ULHNWL6R.js} +30 -30
  169. package/chunks/{i18n-BASPENNQ.js → i18n-CYDUTF6F.js} +27 -27
  170. package/chunks/initializer-NRFKUGIO.js +73 -0
  171. package/chunks/{installationInfo-W6V4DT7W.js → installationInfo-WELKRHHE.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-JVDXEG2E.js +76 -0
  175. package/chunks/loadedSettingsAdapter-WAM4VUTG.js +70 -0
  176. package/chunks/{loop-wakeup-WX7BLWWP.js → loop-wakeup-MVUKDVCP.js} +5 -5
  177. package/chunks/{ls-ZB2BDP6T.js → ls-RXNIAQDE.js} +4 -4
  178. package/chunks/{lsp-V5DN4YUJ.js → lsp-HB5LM5IL.js} +2 -2
  179. package/chunks/mcp-YHOZN3ZM.js +70 -0
  180. package/chunks/{monitor-X5Z3H4FY.js → monitor-R7XZPJHQ.js} +26 -26
  181. package/chunks/nonInteractiveCli-NSOB6D74.js +129 -0
  182. package/chunks/{notebook-edit-TRM2QIJK.js → notebook-edit-6RNKE2L2.js} +27 -27
  183. package/chunks/{openaiContentGenerator-AAYONPMF.js → openaiContentGenerator-XNS5S64I.js} +12 -12
  184. package/chunks/{pidfile-D4I4FTVA.js → pidfile-XE4RRR2P.js} +27 -27
  185. package/chunks/{pt-2C6YCSHL.js → pt-TFZO5Y6T.js} +4 -1
  186. package/chunks/{qwenContentGenerator-K3HZ2H76.js → qwenContentGenerator-APDPJ3VN.js} +28 -28
  187. package/chunks/{qwenOAuth2-PJQ27GSO.js → qwenOAuth2-LEYOU7RU.js} +5 -5
  188. package/chunks/{read-file-7SZSIZOL.js → read-file-XSUWXSR7.js} +8 -8
  189. package/chunks/{read-mcp-resource-SM5DA4RG.js → read-mcp-resource-6LRTZKXI.js} +2 -2
  190. package/chunks/{record-artifact-4XKZX3UW.js → record-artifact-PMDTY4OS.js} +2 -2
  191. package/chunks/{ripGrep-YNPFVCZP.js → ripGrep-APB3CDMU.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-NWTGPERT.js} +1232 -371
  194. package/chunks/{runtime-57WWRVHN.js → runtime-EIO3NQKR.js} +42 -37
  195. package/chunks/{scheduler-YBLGWSIL.js → scheduler-JJDZBDRN.js} +26 -26
  196. package/chunks/{send-message-F36YD6KQ.js → send-message-SR4WSXP2.js} +3 -3
  197. package/chunks/{serve-R63NK3CV.js → serve-WTIPB3EI.js} +36 -34
  198. package/chunks/{server-Z22GCAXP.js → server-NJPHQHLH.js} +5238 -1328
  199. package/chunks/{session-HKAAI7BN.js → session-O4AO7FTS.js} +298 -98
  200. package/chunks/{settings-3EYN66GK.js → settings-HQNDK7TG.js} +34 -32
  201. package/chunks/{shell-6YXINTWJ.js → shell-UIXM6PWG.js} +26 -26
  202. package/chunks/{skill-OO57P4X6.js → skill-3XMB4ULV.js} +10 -10
  203. package/chunks/{spawnChannel-JD7G4VU6.js → spawnChannel-3R632QRM.js} +28 -28
  204. package/chunks/{src-G5UPLZSZ.js → src-USZKPUOC.js} +85 -27
  205. package/chunks/{standalone-update-OB7F4JPZ.js → standalone-update-L5XW3D7K.js} +28 -28
  206. package/chunks/{startInteractiveUI-73EGLIIH.js → startInteractiveUI-CPZOL2WB.js} +730 -397
  207. package/chunks/{syntheticOutput-34H7LGA7.js → syntheticOutput-YKFNUQZD.js} +3 -3
  208. package/chunks/{task-create-FRGOEIKY.js → task-create-NUFOHU53.js} +8 -7
  209. package/chunks/{task-list-OW766BXZ.js → task-list-Z2IKQY3S.js} +6 -5
  210. package/chunks/{task-stop-SIR5SNBN.js → task-stop-KQFIVQTJ.js} +2 -2
  211. package/chunks/{task-update-YRA532MT.js → task-update-HKADXSTD.js} +8 -7
  212. package/chunks/{team-create-PECAAPXK.js → team-create-XXPRF3IQ.js} +26 -26
  213. package/chunks/{team-delete-6OSECUZC.js → team-delete-SDNTGZLG.js} +6 -5
  214. package/chunks/{team-plan-approval-L6F434RY.js → team-plan-approval-EOTTKHDW.js} +26 -26
  215. package/chunks/{theme-manager-ZG4RY6GU.js → theme-manager-P6UITO2L.js} +27 -27
  216. package/chunks/{todoWrite-YDMFEV4G.js → todoWrite-YNXB27GB.js} +4 -4
  217. package/chunks/{tool-search-THVIWAPB.js → tool-search-DDNGK2LR.js} +9 -9
  218. package/chunks/{total-session-admission-JOKNRIIA.js → total-session-admission-PL5N7DNY.js} +33 -33
  219. package/chunks/tree-sitter-YJVE2ZUK.js +2980 -0
  220. package/chunks/{trustedFolders-EOGT3UVS.js → trustedFolders-C5LMF3UR.js} +29 -28
  221. package/chunks/types-ML3TRJQ5.js +16 -0
  222. package/chunks/{updateCheck-2KYEYVSB.js → updateCheck-QTVVISH7.js} +29 -29
  223. package/chunks/{validateNonInterActiveAuth-EN6ZQSR2.js → validateNonInterActiveAuth-RY4RKBQG.js} +75 -71
  224. package/chunks/{version-3UEA6ZIR.js → version-U45RYOSD.js} +1 -1
  225. package/chunks/{web-fetch-PAAEQKBW.js → web-fetch-ZSPR3PRR.js} +5 -5
  226. package/chunks/{workflow-QCCCMYP3.js → workflow-TCIAQYOA.js} +27 -27
  227. package/chunks/workspace-providers-status-I3G2HYLY.js +73 -0
  228. package/chunks/workspace-registration-store-IH5GLZ6Y.js +27 -0
  229. package/chunks/{workspace-registry-24QFLQYH.js → workspace-registry-QEKBELIX.js} +33 -33
  230. package/chunks/workspace-service-ORKHGLP3.js +86 -0
  231. package/chunks/workspace-skills-status-D7QCNDYY.js +72 -0
  232. package/chunks/{write-file-I3MUDRIE.js → write-file-JGRQR5VM.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-CUeDlxvE.js} +1 -1
  247. package/web-shell/assets/{architectureDiagram-3BPJPVTR-B-At37J_.js → architectureDiagram-3BPJPVTR-PiUszkQA.js} +1 -1
  248. package/web-shell/assets/{blockDiagram-GPEHLZMM-B51wjcU7.js → blockDiagram-GPEHLZMM-s2wYSO7e.js} +1 -1
  249. package/web-shell/assets/{c4Diagram-AAUBKEIU-xBK7BAwN.js → c4Diagram-AAUBKEIU-DyLxZoz9.js} +1 -1
  250. package/web-shell/assets/channel-DkuJJ0qd.js +1 -0
  251. package/web-shell/assets/{chunk-2J33WTMH-xKmLg7Yr.js → chunk-2J33WTMH-Dsdai7Tk.js} +1 -1
  252. package/web-shell/assets/{chunk-4BX2VUAB-BfkdKZCM.js → chunk-4BX2VUAB-DEosOjV7.js} +1 -1
  253. package/web-shell/assets/{chunk-55IACEB6-DT713sZf.js → chunk-55IACEB6-sNsRLTXf.js} +1 -1
  254. package/web-shell/assets/{chunk-727SXJPM-CYEeAamv.js → chunk-727SXJPM-DkRNZzmh.js} +1 -1
  255. package/web-shell/assets/{chunk-AQP2D5EJ-DBN-5CFd.js → chunk-AQP2D5EJ-BrsRNpzd.js} +1 -1
  256. package/web-shell/assets/{chunk-FMBD7UC4-CGZKk4PH.js → chunk-FMBD7UC4-CI039lpl.js} +1 -1
  257. package/web-shell/assets/{chunk-ND2GUHAM-qQbC2O-y.js → chunk-ND2GUHAM-M-pkeIfu.js} +1 -1
  258. package/web-shell/assets/{chunk-QZHKN3VN-B3zeXwsX.js → chunk-QZHKN3VN-C4ckGNbH.js} +1 -1
  259. package/web-shell/assets/classDiagram-4FO5ZUOK-CwqHc0TB.js +1 -0
  260. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-CwqHc0TB.js +1 -0
  261. package/web-shell/assets/{cose-bilkent-S5V4N54A-BKsl1Wvy.js → cose-bilkent-S5V4N54A-BciKUAFq.js} +1 -1
  262. package/web-shell/assets/{dagre-BM42HDAG-CuuuLiBK.js → dagre-BM42HDAG-C1nTSgU6.js} +1 -1
  263. package/web-shell/assets/{diagram-2AECGRRQ-CG4_eKiV.js → diagram-2AECGRRQ-BDPNWr1m.js} +1 -1
  264. package/web-shell/assets/{diagram-5GNKFQAL-DSFTmZB1.js → diagram-5GNKFQAL-CNFhTszL.js} +1 -1
  265. package/web-shell/assets/{diagram-KO2AKTUF-BxwlEHn8.js → diagram-KO2AKTUF-CjPa4p5a.js} +1 -1
  266. package/web-shell/assets/{diagram-LMA3HP47-BUAg-jMG.js → diagram-LMA3HP47-ZzPykSyG.js} +1 -1
  267. package/web-shell/assets/{diagram-OG6HWLK6-BFM2jlO5.js → diagram-OG6HWLK6-0UVtZ9A4.js} +1 -1
  268. package/web-shell/assets/{erDiagram-TEJ5UH35-CerbFPa2.js → erDiagram-TEJ5UH35-CajDZCat.js} +1 -1
  269. package/web-shell/assets/{flowDiagram-I6XJVG4X-BNeZz5Zz.js → flowDiagram-I6XJVG4X-BRuFBIvL.js} +1 -1
  270. package/web-shell/assets/{ganttDiagram-6RSMTGT7-CTOogLaM.js → ganttDiagram-6RSMTGT7-BevGmJqG.js} +3 -3
  271. package/web-shell/assets/{gitGraphDiagram-PVQCEYII-yxSFkXPj.js → gitGraphDiagram-PVQCEYII-DvPMpBMb.js} +1 -1
  272. package/web-shell/assets/index-Cnvv4VcI.css +5 -0
  273. package/web-shell/assets/index-D1Uyklxa.js +1088 -0
  274. package/web-shell/assets/index-DzHwQkQq.js +3 -0
  275. package/web-shell/assets/{infoDiagram-5YYISTIA-DYdAUevm.js → infoDiagram-5YYISTIA-Oixn7tA9.js} +1 -1
  276. package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-CNuijZ90.js → ishikawaDiagram-YF4QCWOH-BgKpeg-j.js} +1 -1
  277. package/web-shell/assets/{journeyDiagram-JHISSGLW-BTyiuonf.js → journeyDiagram-JHISSGLW-74mwxIaA.js} +1 -1
  278. package/web-shell/assets/{kanban-definition-UN3LZRKU-DPJo0Uow.js → kanban-definition-UN3LZRKU-D4D6cEqA.js} +1 -1
  279. package/web-shell/assets/{linear-C8wKCbIC.js → linear-atZRE_L2.js} +1 -1
  280. package/web-shell/assets/{mermaid.core-BV5o7nW5.js → mermaid.core-KKudX-JC.js} +5 -5
  281. package/web-shell/assets/{mindmap-definition-RKZ34NQL-BtLcBmSt.js → mindmap-definition-RKZ34NQL-CMCej9yG.js} +1 -1
  282. package/web-shell/assets/{pieDiagram-4H26LBE5-C22J7A9Q.js → pieDiagram-4H26LBE5-nhx40X7q.js} +1 -1
  283. package/web-shell/assets/{quadrantDiagram-W4KKPZXB-DSL10wiL.js → quadrantDiagram-W4KKPZXB-CUmVcN3M.js} +1 -1
  284. package/web-shell/assets/{requirementDiagram-4Y6WPE33-feqh0UpX.js → requirementDiagram-4Y6WPE33-C_vyEwyy.js} +1 -1
  285. package/web-shell/assets/{sankeyDiagram-5OEKKPKP-Z4OVaWaZ.js → sankeyDiagram-5OEKKPKP-DU6G4VWR.js} +1 -1
  286. package/web-shell/assets/{sequenceDiagram-3UESZ5HK-DIluIcb1.js → sequenceDiagram-3UESZ5HK-DdeRR_KJ.js} +1 -1
  287. package/web-shell/assets/{stateDiagram-AJRCARHV-hlhnuoYH.js → stateDiagram-AJRCARHV-C6iCI8ps.js} +1 -1
  288. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-C0_6nR6C.js +1 -0
  289. package/web-shell/assets/{timeline-definition-PNZ67QCA-Dqf_CqgL.js → timeline-definition-PNZ67QCA-B_Ea8Cb7.js} +1 -1
  290. package/web-shell/assets/{vennDiagram-CIIHVFJN-DD2QhaTX.js → vennDiagram-CIIHVFJN-BPUVZEJA.js} +1 -1
  291. package/web-shell/assets/{wardley-L42UT6IY-B2uI85U_.js → wardley-L42UT6IY-BWEj0lKY.js} +1 -1
  292. package/web-shell/assets/{wardleyDiagram-YWT4CUSO-U1aJX71g.js → wardleyDiagram-YWT4CUSO-BvDsdIQw.js} +1 -1
  293. package/web-shell/assets/{xychartDiagram-2RQKCTM6-C0ODHUee.js → xychartDiagram-2RQKCTM6-crz0QhF_.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
@@ -1,5 +1,8 @@
1
1
  // Force strict mode and setup for ESM
2
2
  "use strict";
3
+ import {
4
+ HistoryReplayer
5
+ } from "./chunk-4FMG7EDJ.js";
3
6
  import {
4
7
  redactLogCredentials
5
8
  } from "./chunk-M5GB774H.js";
@@ -274,6 +277,152 @@ function isValidServerName(name) {
274
277
  }
275
278
  __name(isValidServerName, "isValidServerName");
276
279
 
280
+ // packages/cli/src/acp-integration/session/history-replay-page.ts
281
+ init_esbuild_shims();
282
+ function createReplayCumulativeUsage() {
283
+ return {
284
+ promptTokens: 0,
285
+ cachedTokens: 0,
286
+ candidateTokens: 0,
287
+ apiTimeMs: 0
288
+ };
289
+ }
290
+ __name(createReplayCumulativeUsage, "createReplayCumulativeUsage");
291
+ function copyCumulativeUsage(target, source) {
292
+ target.promptTokens = source.promptTokens;
293
+ target.cachedTokens = source.cachedTokens;
294
+ target.candidateTokens = source.candidateTokens;
295
+ target.apiTimeMs = source.apiTimeMs;
296
+ }
297
+ __name(copyCumulativeUsage, "copyCumulativeUsage");
298
+ function isObjectRecord(value) {
299
+ return typeof value === "object" && value !== null && !Array.isArray(value);
300
+ }
301
+ __name(isObjectRecord, "isObjectRecord");
302
+ function isCumulativeUsage(value) {
303
+ if (!isObjectRecord(value)) return false;
304
+ return typeof value["promptTokens"] === "number" && Number.isFinite(value["promptTokens"]) && typeof value["cachedTokens"] === "number" && Number.isFinite(value["cachedTokens"]) && typeof value["candidateTokens"] === "number" && Number.isFinite(value["candidateTokens"]) && typeof value["apiTimeMs"] === "number" && Number.isFinite(value["apiTimeMs"]);
305
+ }
306
+ __name(isCumulativeUsage, "isCumulativeUsage");
307
+ function isPendingReplayToolCall(value) {
308
+ if (!isObjectRecord(value)) return false;
309
+ return typeof value["callId"] === "string" && typeof value["toolName"] === "string" && (value["timestamp"] === void 0 || typeof value["timestamp"] === "string") && typeof value["recordId"] === "string";
310
+ }
311
+ __name(isPendingReplayToolCall, "isPendingReplayToolCall");
312
+ function parseTranscriptReplayState(replay, logger) {
313
+ if (!isObjectRecord(replay)) {
314
+ return {
315
+ pendingToolCalls: [],
316
+ cumulativeUsage: createReplayCumulativeUsage()
317
+ };
318
+ }
319
+ const rawPending = replay["pendingToolCalls"];
320
+ const pendingToolCalls = Array.isArray(rawPending) ? rawPending.filter(isPendingReplayToolCall) : [];
321
+ if (logger && Array.isArray(rawPending) && pendingToolCalls.length !== rawPending.length) {
322
+ const dropped = rawPending.length - pendingToolCalls.length;
323
+ logger.warn(
324
+ `[transcript] replay state dropped ${dropped} of ${rawPending.length} malformed pending tool calls`
325
+ );
326
+ }
327
+ const cumulativeUsage = isCumulativeUsage(replay["cumulativeUsage"]) ? { ...replay["cumulativeUsage"] } : createReplayCumulativeUsage();
328
+ return { pendingToolCalls, cumulativeUsage };
329
+ }
330
+ __name(parseTranscriptReplayState, "parseTranscriptReplayState");
331
+ function replayContext(sessionId, updates, cumulativeUsage, config) {
332
+ return {
333
+ sessionId,
334
+ sendUpdate: /* @__PURE__ */ __name(async (update) => {
335
+ updates.push(update);
336
+ }, "sendUpdate"),
337
+ cumulativeUsage,
338
+ ...config ? { config } : {}
339
+ };
340
+ }
341
+ __name(replayContext, "replayContext");
342
+ async function collectHistoryReplayUpdates({
343
+ sessionId,
344
+ config,
345
+ records,
346
+ gaps,
347
+ cumulativeUsage,
348
+ logger
349
+ }) {
350
+ const updates = [];
351
+ try {
352
+ await new HistoryReplayer(
353
+ replayContext(sessionId, updates, cumulativeUsage, config)
354
+ ).replay(records, gaps);
355
+ } catch (error) {
356
+ const replayError = error instanceof Error ? error.message : String(error);
357
+ logger?.warn(
358
+ "[historyReplay] History replay failed for session %s (partial updates: %d):",
359
+ sessionId,
360
+ updates.length,
361
+ error
362
+ );
363
+ return { updates: liftSessionUpdateTimestamps(updates), replayError };
364
+ }
365
+ return { updates: liftSessionUpdateTimestamps(updates) };
366
+ }
367
+ __name(collectHistoryReplayUpdates, "collectHistoryReplayUpdates");
368
+ function liftSessionUpdateTimestamps(updates) {
369
+ return updates.map((update) => {
370
+ const record = update;
371
+ const meta = record["_meta"];
372
+ const timestamp = isObjectRecord(meta) ? meta["timestamp"] : void 0;
373
+ return typeof timestamp === "number" || typeof timestamp === "string" ? { ...record, timestamp } : update;
374
+ });
375
+ }
376
+ __name(liftSessionUpdateTimestamps, "liftSessionUpdateTimestamps");
377
+ async function replayTranscriptRecordPage({
378
+ sessionId,
379
+ page,
380
+ config,
381
+ encodeCursor,
382
+ logger
383
+ }) {
384
+ const state = parseTranscriptReplayState(page.replay, logger);
385
+ const updates = [];
386
+ const replayer = new HistoryReplayer(
387
+ replayContext(sessionId, updates, state.cumulativeUsage, config)
388
+ );
389
+ let pendingToolCalls;
390
+ let replayError;
391
+ try {
392
+ const replayState = await replayer.replayPage(page.records, {
393
+ pendingToolCalls: state.pendingToolCalls,
394
+ finalizeDangling: !page.hasMore,
395
+ gaps: page.gaps
396
+ });
397
+ pendingToolCalls = replayState.pendingToolCalls;
398
+ } catch (error) {
399
+ logger?.warn(
400
+ "[historyReplay] Paged history replay failed for session %s (partial updates: %d):",
401
+ sessionId,
402
+ updates.length,
403
+ error
404
+ );
405
+ pendingToolCalls = replayer.getPendingToolCalls();
406
+ replayError = "Replay conversion failed for this page";
407
+ }
408
+ const nextCursor = page.nextCursorState && replayError === void 0 ? encodeCursor({
409
+ ...page.nextCursorState,
410
+ replay: {
411
+ pendingToolCalls,
412
+ cumulativeUsage: state.cumulativeUsage
413
+ }
414
+ }) : void 0;
415
+ return {
416
+ updates: liftSessionUpdateTimestamps(updates),
417
+ ...nextCursor ? { nextCursor } : {},
418
+ hasMore: replayError === void 0 && page.hasMore,
419
+ startTime: page.startTime,
420
+ lastUpdated: page.lastUpdated,
421
+ ...replayError ? { partial: true, replayError } : {}
422
+ };
423
+ }
424
+ __name(replayTranscriptRecordPage, "replayTranscriptRecordPage");
425
+
277
426
  export {
278
427
  createWorkspaceMemoryExtractionErrorLogger,
279
428
  extractRememberErrorCode,
@@ -283,7 +432,11 @@ export {
283
432
  MAX_REMEMBER_CONTENT_BYTES,
284
433
  formatWorkspaceMemoryForgetSummary,
285
434
  formatWorkspaceMemoryDreamSummary,
286
- isValidServerName
435
+ isValidServerName,
436
+ createReplayCumulativeUsage,
437
+ copyCumulativeUsage,
438
+ collectHistoryReplayUpdates,
439
+ replayTranscriptRecordPage
287
440
  };
288
441
  /**
289
442
  * @license
@@ -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-RDRVMDWV.js";
12
12
  import {
13
13
  So
14
- } from "./chunk-NVYTCB5Z.js";
14
+ } from "./chunk-K7CRWKOE.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";
@@ -6,29 +6,29 @@ import {
6
6
  parseAcpBaseModelId,
7
7
  resolveCliGenerationConfig,
8
8
  sanitizeProviderBaseUrl
9
- } from "./chunk-34MW4KTI.js";
9
+ } from "./chunk-GGJII3FM.js";
10
10
  import {
11
11
  snapshotProcessEnv
12
- } from "./chunk-XLA62MYB.js";
12
+ } from "./chunk-ZKMGAFYV.js";
13
13
  import {
14
14
  STATUS_SCHEMA_VERSION
15
- } from "./chunk-VWPVHAMO.js";
15
+ } from "./chunk-CUUXANEQ.js";
16
16
  import {
17
17
  loadSettings
18
- } from "./chunk-4C5BQ2D2.js";
18
+ } from "./chunk-6GETGQWP.js";
19
19
  import {
20
20
  ModelsConfig,
21
21
  resolveProviderProtocol
22
- } from "./chunk-NVYTCB5Z.js";
22
+ } from "./chunk-K7CRWKOE.js";
23
23
  import {
24
24
  APPROVAL_MODES
25
- } from "./chunk-4GORAUCN.js";
25
+ } from "./chunk-TXY2C3D2.js";
26
26
  import {
27
27
  tokenLimit
28
- } from "./chunk-524RQP4Q.js";
28
+ } from "./chunk-B7NUUEXC.js";
29
29
  import {
30
30
  createDebugLogger
31
- } from "./chunk-J4TSQ5EQ.js";
31
+ } from "./chunk-7NFB7LBQ.js";
32
32
  import {
33
33
  init_esbuild_shims
34
34
  } from "./chunk-5O2XNYP6.js";
@@ -2,11 +2,11 @@
2
2
  "use strict";
3
3
  import {
4
4
  createTask
5
- } from "./chunk-ORBGV7NJ.js";
5
+ } from "./chunk-KKRTYONM.js";
6
6
  import {
7
7
  getPlanRequiredTeammatePreApprovalMessage,
8
8
  isPlanRequiredTeammateAwaitingApproval
9
- } from "./chunk-4GORAUCN.js";
9
+ } from "./chunk-TXY2C3D2.js";
10
10
  import {
11
11
  resolveActiveTeamName
12
12
  } from "./chunk-6AM5D4ME.js";
@@ -15,7 +15,7 @@ import {
15
15
  BaseToolInvocation,
16
16
  ToolDisplayNames,
17
17
  ToolNames
18
- } from "./chunk-B5ORX3FG.js";
18
+ } from "./chunk-2UUAIFQO.js";
19
19
  import {
20
20
  init_esbuild_shims
21
21
  } from "./chunk-5O2XNYP6.js";
@@ -965,7 +965,9 @@ function isDebugLogFileEnabled() {
965
965
  }
966
966
  __name(isDebugLogFileEnabled, "isDebugLogFileEnabled");
967
967
  function getActiveSession() {
968
- return sessionContext.getStore() ?? globalSession;
968
+ const contextSession = sessionContext.getStore();
969
+ if (contextSession === false) return null;
970
+ return contextSession ?? globalSession;
969
971
  }
970
972
  __name(getActiveSession, "getActiveSession");
971
973
  function ensureDebugDirExists() {
@@ -1048,6 +1050,10 @@ function runWithDebugLogSession(session, fn) {
1048
1050
  return sessionContext.run(session, fn);
1049
1051
  }
1050
1052
  __name(runWithDebugLogSession, "runWithDebugLogSession");
1053
+ function runWithoutDebugLogSession(fn) {
1054
+ return sessionContext.run(false, fn);
1055
+ }
1056
+ __name(runWithoutDebugLogSession, "runWithoutDebugLogSession");
1051
1057
  function createDebugLogger(tag) {
1052
1058
  return {
1053
1059
  isEnabled: /* @__PURE__ */ __name(() => getActiveSession() !== null, "isEnabled"),
@@ -1127,6 +1133,7 @@ export {
1127
1133
  resetDebugLoggingState,
1128
1134
  setDebugLogSession,
1129
1135
  runWithDebugLogSession,
1136
+ runWithoutDebugLogSession,
1130
1137
  createDebugLogger
1131
1138
  };
1132
1139
  /**
@@ -1,8 +1,9 @@
1
1
  // Force strict mode and setup for ESM
2
2
  "use strict";
3
3
  import {
4
- TotalSessionLimitExceededError
5
- } from "./chunk-IAVB3HM3.js";
4
+ TotalSessionLimitExceededError,
5
+ WorkspaceDrainingError
6
+ } from "./chunk-KSO42X3Z.js";
6
7
  import {
7
8
  init_esbuild_shims
8
9
  } from "./chunk-5O2XNYP6.js";
@@ -17,9 +18,14 @@ function createTotalSessionAdmissionController({
17
18
  getBridges
18
19
  }) {
19
20
  let inFlight = 0;
21
+ const inFlightByWorkspace = /* @__PURE__ */ new Map();
22
+ const drainingWorkspaces = /* @__PURE__ */ new Set();
20
23
  const limit = maxTotalSessions === void 0 || maxTotalSessions === 0 || maxTotalSessions === Number.POSITIVE_INFINITY ? Number.POSITIVE_INFINITY : maxTotalSessions;
21
24
  return {
22
25
  admit(context) {
26
+ if (drainingWorkspaces.has(context.workspaceCwd)) {
27
+ throw new WorkspaceDrainingError(context.workspaceCwd);
28
+ }
23
29
  if (limit !== Number.POSITIVE_INFINITY) {
24
30
  if (getLiveCount(getBridges()) + inFlight >= limit) {
25
31
  throw Object.assign(new TotalSessionLimitExceededError(limit), {
@@ -31,17 +37,45 @@ function createTotalSessionAdmissionController({
31
37
  }
32
38
  }
33
39
  inFlight++;
40
+ inFlightByWorkspace.set(
41
+ context.workspaceCwd,
42
+ (inFlightByWorkspace.get(context.workspaceCwd) ?? 0) + 1
43
+ );
34
44
  let released = false;
35
45
  return {
36
46
  release() {
37
47
  if (released) return;
38
48
  released = true;
39
49
  inFlight--;
50
+ const workspaceInFlight = (inFlightByWorkspace.get(context.workspaceCwd) ?? 1) - 1;
51
+ if (workspaceInFlight <= 0) {
52
+ inFlightByWorkspace.delete(context.workspaceCwd);
53
+ } else {
54
+ inFlightByWorkspace.set(context.workspaceCwd, workspaceInFlight);
55
+ }
40
56
  }
41
57
  };
42
58
  },
43
59
  snapshot() {
44
60
  return { liveCount: getLiveCount(getBridges()), inFlight };
61
+ },
62
+ snapshotForWorkspace(workspaceCwd) {
63
+ return {
64
+ // Per-workspace live sessions remain bridge-owned; removal reads
65
+ // `runtime.bridge.sessionCount`. This controller only owns admission
66
+ // reservations, so the aggregate snapshot shape uses zero here.
67
+ liveCount: 0,
68
+ inFlight: inFlightByWorkspace.get(workspaceCwd) ?? 0
69
+ };
70
+ },
71
+ beginWorkspaceDrain(workspaceCwd) {
72
+ drainingWorkspaces.add(workspaceCwd);
73
+ },
74
+ cancelWorkspaceDrain(workspaceCwd) {
75
+ drainingWorkspaces.delete(workspaceCwd);
76
+ },
77
+ completeWorkspaceDrain(workspaceCwd) {
78
+ drainingWorkspaces.delete(workspaceCwd);
45
79
  }
46
80
  };
47
81
  }
@@ -5,14 +5,14 @@ import {
5
5
  } from "./chunk-57OAHC2Y.js";
6
6
  import {
7
7
  loadSettings
8
- } from "./chunk-4C5BQ2D2.js";
8
+ } from "./chunk-6GETGQWP.js";
9
9
  import {
10
10
  getCurrentLanguage,
11
11
  t
12
- } from "./chunk-YAUFFXDS.js";
12
+ } from "./chunk-RDRVMDWV.js";
13
13
  import {
14
14
  isWorkspaceTrusted
15
- } from "./chunk-HKMAENAO.js";
15
+ } from "./chunk-4YWLED2A.js";
16
16
  import {
17
17
  writeStdoutLine
18
18
  } from "./chunk-YUZI3WAC.js";
@@ -23,7 +23,7 @@ import {
23
23
  redactUrlCredentials,
24
24
  require_prompts,
25
25
  stripAnsi
26
- } from "./chunk-NVYTCB5Z.js";
26
+ } from "./chunk-K7CRWKOE.js";
27
27
  import {
28
28
  init_esbuild_shims
29
29
  } from "./chunk-5O2XNYP6.js";
@@ -81,43 +81,6 @@ var require_strip_json_comments = __commonJS({
81
81
  }
82
82
  });
83
83
 
84
- // packages/cli/src/config/path-comparison.ts
85
- init_esbuild_shims();
86
- import * as fs from "node:fs";
87
- import * as path from "node:path";
88
- function isWithinRoot(childPath, parentPath) {
89
- const relativePath = path.relative(parentPath, childPath);
90
- return relativePath === "" || !relativePath.startsWith(`..${path.sep}`) && relativePath !== ".." && !path.isAbsolute(relativePath);
91
- }
92
- __name(isWithinRoot, "isWithinRoot");
93
- function getPathComparisonVariants(rawPath) {
94
- const variants = /* @__PURE__ */ new Set([path.normalize(path.resolve(rawPath))]);
95
- try {
96
- variants.add(path.normalize(fs.realpathSync(rawPath)));
97
- } catch {
98
- }
99
- return variants;
100
- }
101
- __name(getPathComparisonVariants, "getPathComparisonVariants");
102
- function arePathsEquivalent(left, right) {
103
- const rightVariants = getPathComparisonVariants(right);
104
- for (const leftVariant of getPathComparisonVariants(left)) {
105
- if (rightVariants.has(leftVariant)) {
106
- return true;
107
- }
108
- }
109
- return false;
110
- }
111
- __name(arePathsEquivalent, "arePathsEquivalent");
112
-
113
84
  export {
114
- require_strip_json_comments,
115
- isWithinRoot,
116
- getPathComparisonVariants,
117
- arePathsEquivalent
85
+ require_strip_json_comments
118
86
  };
119
- /**
120
- * @license
121
- * Copyright 2025 Qwen Team
122
- * SPDX-License-Identifier: Apache-2.0
123
- */
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  createDebugLogger
5
- } from "./chunk-J4TSQ5EQ.js";
5
+ } from "./chunk-7NFB7LBQ.js";
6
6
  import {
7
7
  init_esbuild_shims
8
8
  } from "./chunk-5O2XNYP6.js";
@@ -31,6 +31,7 @@ var HookEventName = /* @__PURE__ */ ((HookEventName2) => {
31
31
  HookEventName2["UserPromptExpansion"] = "UserPromptExpansion";
32
32
  HookEventName2["SessionStart"] = "SessionStart";
33
33
  HookEventName2["Stop"] = "Stop";
34
+ HookEventName2["MessageDisplay"] = "MessageDisplay";
34
35
  HookEventName2["SubagentStart"] = "SubagentStart";
35
36
  HookEventName2["SubagentStop"] = "SubagentStop";
36
37
  HookEventName2["PreCompact"] = "PreCompact";
@@ -2,24 +2,24 @@
2
2
  "use strict";
3
3
  import {
4
4
  t
5
- } from "./chunk-YAUFFXDS.js";
5
+ } from "./chunk-RDRVMDWV.js";
6
6
  import {
7
7
  computeThresholds,
8
8
  getCoreSystemPrompt
9
- } from "./chunk-NVYTCB5Z.js";
9
+ } from "./chunk-K7CRWKOE.js";
10
10
  import {
11
11
  buildSkillLlmContent
12
- } from "./chunk-7R3CZA3Q.js";
12
+ } from "./chunk-2Z5UX4KI.js";
13
13
  import {
14
14
  DiscoveredMCPTool,
15
15
  uiTelemetryService
16
- } from "./chunk-3VAGG5T5.js";
16
+ } from "./chunk-P6LART6G.js";
17
17
  import {
18
18
  ToolNames
19
- } from "./chunk-B5ORX3FG.js";
19
+ } from "./chunk-2UUAIFQO.js";
20
20
  import {
21
21
  DEFAULT_TOKEN_LIMIT
22
- } from "./chunk-524RQP4Q.js";
22
+ } from "./chunk-B7NUUEXC.js";
23
23
  import {
24
24
  init_esbuild_shims
25
25
  } from "./chunk-5O2XNYP6.js";
@@ -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) {
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  getGlobalQwenDir
5
- } from "./chunk-34Z3U5RQ.js";
5
+ } from "./chunk-SXU3KKNI.js";
6
6
  import {
7
7
  init_esbuild_shims
8
8
  } from "./chunk-5O2XNYP6.js";