@qwen-code/qwen-code 0.19.11 → 0.19.12-preview.0

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 (304) hide show
  1. package/bundled/batch/SKILL.md +6 -0
  2. package/bundled/qc-helper/docs/configuration/model-providers.md +11 -0
  3. package/bundled/qc-helper/docs/configuration/settings.md +11 -10
  4. package/bundled/qc-helper/docs/features/channels/overview.md +66 -11
  5. package/bundled/qc-helper/docs/features/sub-agents.md +8 -8
  6. package/bundled/qc-helper/docs/features/worktree.md +2 -2
  7. package/bundled/qc-helper/docs/qwen-serve-deploy-local.md +42 -7
  8. package/bundled/qc-helper/docs/qwen-serve.md +102 -40
  9. package/bundled/qc-helper/docs/reference/keyboard-shortcuts.md +1 -1
  10. package/bundled/review/SKILL.md +60 -49
  11. package/bundled/simplify/SKILL.md +1 -1
  12. package/chunks/{MaxSizedBox-L6TGYDM3.js → MaxSizedBox-3KIWAU6Z.js} +31 -32
  13. package/chunks/{StandaloneSessionPicker-AKEQHU5P.js → StandaloneSessionPicker-TF626NO7.js} +45 -46
  14. package/chunks/acp-startup-profiler-N3RHHXJ3.js +25 -0
  15. package/chunks/{acpAgent-PTNBGJDN.js → acpAgent-JDVJXVBO.js} +1863 -507
  16. package/chunks/{agent-AJOMOZPJ.js → agent-BONWC4VY.js} +26 -27
  17. package/chunks/{agent-headless-CYKOMAXS.js → agent-headless-H7HKMGLZ.js} +26 -27
  18. package/chunks/{anthropicContentGenerator-HBRXJSP4.js → anthropicContentGenerator-ZZRGFEES.js} +35 -12
  19. package/chunks/{artifact-tool-MIZLXBLF.js → artifact-tool-PHO5XEGZ.js} +5 -5
  20. package/chunks/{askUserQuestion-XMJVPNWM.js → askUserQuestion-CEPBT47X.js} +2 -47
  21. package/chunks/{bridge-QKISWPCI.js → bridge-ATN2TLWJ.js} +31 -32
  22. package/chunks/{ca-CODEN7TD.js → ca-2SL2BXTK.js} +3 -2
  23. package/chunks/{channel-worker-group-SOUWTFHC.js → channel-worker-group-S3H5QHTI.js} +4 -4
  24. package/chunks/{channel-worker-manager-LOVSV3WW.js → channel-worker-manager-ZJ4HTMO2.js} +4 -4
  25. package/chunks/{channel-worker-supervisor-XW6MHJBQ.js → channel-worker-supervisor-JA6VZ5V5.js} +3 -3
  26. package/chunks/{chunk-ZIXOTAPZ.js → chunk-2DZ7E27L.js} +92 -3
  27. package/chunks/{chunk-L5U3ELZX.js → chunk-335ECZTA.js} +1 -1
  28. package/chunks/{chunk-2FO5GFKZ.js → chunk-3DJY4IFO.js} +1 -1
  29. package/chunks/{chunk-4AGTGMCQ.js → chunk-3PE7OY2G.js} +12 -12
  30. package/chunks/{chunk-QOTQH4CB.js → chunk-4AGBO6RB.js} +27 -10
  31. package/chunks/{chunk-Y66VOBRP.js → chunk-4CA4WUMS.js} +2 -2
  32. package/chunks/{chunk-LQIDP6K5.js → chunk-4CHDYDG3.js} +1 -1
  33. package/chunks/{chunk-574PTLMU.js → chunk-4OVECYBM.js} +407 -92
  34. package/chunks/{chunk-TV6K2FB4.js → chunk-4RPARQ5D.js} +2 -2
  35. package/chunks/{chunk-TL4R5TRK.js → chunk-4W55BHOC.js} +2 -2
  36. package/chunks/{chunk-RCEEXIOO.js → chunk-4XCVGEEX.js} +3 -3
  37. package/chunks/{chunk-3DWIFU7L.js → chunk-53UMEONK.js} +1 -1
  38. package/chunks/{chunk-AU3MFJPL.js → chunk-54KPEDM2.js} +8 -8
  39. package/chunks/{chunk-T76DGHGG.js → chunk-66F4IJ4L.js} +5 -5
  40. package/chunks/{chunk-YLSSEUAM.js → chunk-675SVDMD.js} +354 -278
  41. package/chunks/{chunk-NVTQZXR7.js → chunk-6QGZVKOO.js} +91 -52
  42. package/chunks/{chunk-NJOFRXTM.js → chunk-6TDA4EVC.js} +4200 -3450
  43. package/chunks/{chunk-BYH2JRK3.js → chunk-6WZZHJSZ.js} +5 -5
  44. package/chunks/{chunk-7X7TEQNX.js → chunk-76BFY7AF.js} +13 -0
  45. package/chunks/chunk-7KS72E2N.js +883 -0
  46. package/chunks/{chunk-CF5VJRGC.js → chunk-7LMAKIWE.js} +1 -1
  47. package/chunks/{chunk-WMNXXRGL.js → chunk-7O7WZH7N.js} +31 -31
  48. package/chunks/{chunk-7ZYHLN67.js → chunk-7OZGMFHC.js} +26 -75
  49. package/chunks/{chunk-6WPJRYLZ.js → chunk-7SX6WZNO.js} +3 -3
  50. package/chunks/{chunk-JGUT3LWZ.js → chunk-ANRANWVE.js} +4 -1
  51. package/chunks/{chunk-JD44PNGJ.js → chunk-AWOU24F6.js} +10 -5
  52. package/chunks/{chunk-6WGZDD67.js → chunk-BEFQGC6H.js} +2 -2
  53. package/chunks/{chunk-KXYJPRT5.js → chunk-BEZPRKD3.js} +28 -6
  54. package/chunks/{chunk-FYQ22K62.js → chunk-CHVH4DVN.js} +6 -5
  55. package/chunks/{chunk-LS56TX3M.js → chunk-CMHJEUVB.js} +1 -1
  56. package/chunks/{chunk-FXKOAEXP.js → chunk-CXWUXRD5.js} +14 -14
  57. package/chunks/{chunk-CAHY5ABC.js → chunk-DULSE2SH.js} +1 -1
  58. package/chunks/{chunk-SQ5BK3GO.js → chunk-DYUPBU7H.js} +1 -1
  59. package/chunks/{chunk-FNX3LGAK.js → chunk-E655RDRL.js} +1 -1
  60. package/chunks/{chunk-N5VIZTND.js → chunk-EWPLL4OT.js} +1 -1
  61. package/chunks/{chunk-FSA7ERJ2.js → chunk-F2RR4HO2.js} +1 -1
  62. package/chunks/{chunk-S63Z5V42.js → chunk-F2YCCUXI.js} +4 -4
  63. package/chunks/{chunk-3AYLDB6B.js → chunk-FEZXQXW2.js} +1 -1
  64. package/chunks/{chunk-OWT2CAEQ.js → chunk-GEHSF7MS.js} +105 -12
  65. package/chunks/{chunk-LXLTBIDP.js → chunk-HCCR43AY.js} +1 -1
  66. package/chunks/{chunk-7NMU22Q3.js → chunk-HQ7MDVBO.js} +18 -7
  67. package/chunks/{chunk-KSZKSE23.js → chunk-HVWPSGDY.js} +1 -1
  68. package/chunks/{chunk-YFVO2HOR.js → chunk-HZXU6YZW.js} +5 -5
  69. package/chunks/{chunk-HASK4LMI.js → chunk-IKLWU6YS.js} +13 -6
  70. package/chunks/{chunk-GNBBAQ6J.js → chunk-ILQ42UG6.js} +111 -40
  71. package/chunks/{chunk-THXDQSTA.js → chunk-IQRQVPGN.js} +49 -154
  72. package/chunks/{chunk-SPJQO2CE.js → chunk-J2MKYJKZ.js} +2 -2
  73. package/chunks/{chunk-SUARMD4Q.js → chunk-J6NT5YTN.js} +28 -2
  74. package/chunks/{chunk-TYLOFD2U.js → chunk-JCJPZMJV.js} +1 -1
  75. package/chunks/{chunk-BYB3GF2T.js → chunk-JCYMQU5F.js} +133 -6
  76. package/chunks/{chunk-6EDDYPI3.js → chunk-JUNVFQVY.js} +4 -4
  77. package/chunks/{chunk-CH2XVB47.js → chunk-K7P34F2J.js} +3 -3
  78. package/chunks/{chunk-5VWYKIMW.js → chunk-KANTXY7B.js} +2 -2
  79. package/chunks/{chunk-K7VD4XLT.js → chunk-LHEQDKAR.js} +1 -1
  80. package/chunks/{chunk-A2HWMJVO.js → chunk-LKR7QQ63.js} +3 -3
  81. package/chunks/{chunk-4HUDDSO5.js → chunk-LLIGYAQU.js} +4 -4
  82. package/chunks/{chunk-5Z452MMD.js → chunk-LODZMRXC.js} +154 -83
  83. package/chunks/{chunk-FBU7WRZI.js → chunk-LPHGXXZX.js} +6 -1
  84. package/chunks/{chunk-CPFIQVZJ.js → chunk-LYFDJTXE.js} +1 -1
  85. package/chunks/{chunk-TIOE2OPE.js → chunk-MCYZTKBV.js} +2 -2
  86. package/chunks/{chunk-ZQIYGQCG.js → chunk-MHEZV3OY.js} +506 -143
  87. package/chunks/{chunk-JWICTOXS.js → chunk-NGTQA57Y.js} +2 -2
  88. package/chunks/{chunk-5CNYZ7TN.js → chunk-NJQPQ4IO.js} +7 -7
  89. package/chunks/chunk-NSZJQACR.js +45 -0
  90. package/chunks/{chunk-DOPUYNXO.js → chunk-NUHSLBJZ.js} +7 -7
  91. package/chunks/{chunk-CITWNIXJ.js → chunk-NVUGS23Y.js} +5 -5
  92. package/chunks/{chunk-2Z5UX4KI.js → chunk-OSSDHJDU.js} +1 -1
  93. package/chunks/{chunk-YUZI3WAC.js → chunk-OWAK7LMW.js} +7 -0
  94. package/chunks/{chunk-Y3KFTWVX.js → chunk-OZWJAFFE.js} +6 -6
  95. package/chunks/{chunk-YGYSMY2R.js → chunk-PSISZNIT.js} +1629 -1142
  96. package/chunks/{chunk-4ROQY23C.js → chunk-PTXVHS2O.js} +7 -7
  97. package/chunks/{chunk-OKAIGAYW.js → chunk-QGONRHUS.js} +3 -3
  98. package/chunks/{chunk-PZL23GTM.js → chunk-QR6U5QPP.js} +8 -0
  99. package/chunks/chunk-QSG4ZFG4.js +257 -0
  100. package/chunks/{chunk-BXBDC476.js → chunk-R32BTEZY.js} +5 -5
  101. package/chunks/{chunk-AVEOWVOM.js → chunk-R3VWUU2E.js} +1 -1
  102. package/chunks/{chunk-RP5R7MB6.js → chunk-R4RIMOJL.js} +12 -12
  103. package/chunks/{chunk-ARKANCNX.js → chunk-SGPFJMRP.js} +1 -1
  104. package/chunks/{chunk-3M75MSVA.js → chunk-SMASS3CY.js} +1 -1
  105. package/chunks/{chunk-4IJMTYCB.js → chunk-SNONG66P.js} +818 -29
  106. package/chunks/chunk-TDKQP3M6.js +201 -0
  107. package/chunks/{chunk-VFX7EZIR.js → chunk-TFV3XVAZ.js} +8 -1
  108. package/chunks/{chunk-4LD5APFL.js → chunk-TYQMGACW.js} +1 -0
  109. package/chunks/{chunk-7NFB7LBQ.js → chunk-UE5TZ55T.js} +8 -0
  110. package/chunks/{chunk-F333XEAU.js → chunk-UOA2IHRI.js} +4 -3
  111. package/chunks/{chunk-VRR65QYW.js → chunk-V4PCIS25.js} +5 -1
  112. package/chunks/{chunk-WIEO4CWB.js → chunk-VAJS2E2D.js} +1 -1
  113. package/chunks/{chunk-GLNHPRZT.js → chunk-W4DFAUAO.js} +1 -1
  114. package/chunks/{chunk-STZQCNN3.js → chunk-W7H223ZZ.js} +1 -1
  115. package/chunks/{chunk-6Y6ORE2G.js → chunk-WACI4VES.js} +288 -20
  116. package/chunks/{chunk-WTNZ6DXB.js → chunk-WEPXQKGP.js} +1 -1
  117. package/chunks/{chunk-4BJVSIS3.js → chunk-WHQNBBWW.js} +2 -2
  118. package/chunks/{chunk-QDJ2R4CM.js → chunk-WTHRMVKB.js} +3 -3
  119. package/chunks/{chunk-L4Y55KIS.js → chunk-X6YQWCIJ.js} +1 -1
  120. package/chunks/{chunk-Q6TUALBE.js → chunk-XAAEDML2.js} +1 -1
  121. package/chunks/{chunk-BUAXJVNP.js → chunk-XACBIZJB.js} +3 -3
  122. package/chunks/{chunk-2OG646IN.js → chunk-XFJU7SVP.js} +4 -4
  123. package/chunks/{chunk-KKRTYONM.js → chunk-XSPFQQRE.js} +3 -3
  124. package/chunks/{chunk-V2DXTLUE.js → chunk-Y5UDBQYF.js} +3 -3
  125. package/chunks/{chunk-MQOVXZAF.js → chunk-YN2I5I42.js} +529 -61
  126. package/chunks/{chunk-FMNYGWOD.js → chunk-Z4ZCVYJ5.js} +14 -8
  127. package/chunks/{chunk-SY7NEYX4.js → chunk-ZFHHBRRA.js} +2 -2
  128. package/chunks/{chunk-QYG4BY6Q.js → chunk-ZPVGEMVC.js} +1 -1
  129. package/chunks/{computer-use-VZZMJEQ7.js → computer-use-UY4A72X7.js} +26 -27
  130. package/chunks/{config-utils-IQQT3GCI.js → config-utils-KWTRFP7D.js} +3 -3
  131. package/chunks/{contextCommand-PORKIZSY.js → contextCommand-3DZ2SVH6.js} +30 -31
  132. package/chunks/{create-sub-session-EAB2U5XW.js → create-sub-session-DIJOV6HV.js} +2 -2
  133. package/chunks/{create-sub-session-XVFKHAFW.js → create-sub-session-OT7WXLDO.js} +27 -28
  134. package/chunks/{cron-create-GMVKSXZT.js → cron-create-X462ERYA.js} +4 -4
  135. package/chunks/{cron-delete-VDZKUAVK.js → cron-delete-SL5UJUM3.js} +4 -4
  136. package/chunks/{cron-list-UG7C7RAR.js → cron-list-3MD6SVXI.js} +4 -4
  137. package/chunks/{daemon-IHR6WSPB.js → daemon-ZW6LHOXT.js} +91 -14
  138. package/chunks/{daemon-status-provider-ABLBA3UJ.js → daemon-status-provider-GTZOYSBO.js} +35 -36
  139. package/chunks/{de-NOXPCSYN.js → de-I7ZIYXZC.js} +3 -2
  140. package/chunks/{dist-PX2ERZ6I.js → dist-HCUUS6IH.js} +2 -2
  141. package/chunks/{dist-VYWUKURL.js → dist-O2IP3G5D.js} +1 -1
  142. package/chunks/{dist-GXJVCOS7.js → dist-RZBJT5O2.js} +2 -1
  143. package/chunks/{dist-V2YVLYOW.js → dist-Y54RURGT.js} +3 -1
  144. package/chunks/{dist-DOPL5LSQ.js → dist-YTPTCUAD.js} +1 -1
  145. package/chunks/{dist-4WCQEZIN.js → dist-ZJHKKWUD.js} +1 -1
  146. package/chunks/{earlyInputCapture-DJCU5SPU.js → earlyInputCapture-GGWVGBZ7.js} +27 -28
  147. package/chunks/{edit-O4VV5AO6.js → edit-JN467GIR.js} +27 -28
  148. package/chunks/{en-JFVULHTB.js → en-XE34GKAA.js} +7 -3
  149. package/chunks/{enter-worktree-XQYDDI2I.js → enter-worktree-MMO4VBQE.js} +26 -27
  150. package/chunks/{enterPlanMode-CESVMQBV.js → enterPlanMode-BRZOG4DB.js} +27 -30
  151. package/chunks/{environment-5KXOLZNR.js → environment-LOCDCWMZ.js} +29 -30
  152. package/chunks/{errors-EBUTCBAQ.js → errors-XXSL5HGG.js} +29 -30
  153. package/chunks/{exit-worktree-MWGNSPNX.js → exit-worktree-UD7PI5H5.js} +26 -27
  154. package/chunks/exitPlanMode-EIUETQI6.js +389 -0
  155. package/chunks/{fast-path-6V73F2T2.js → fast-path-ULGAEUVK.js} +2 -2
  156. package/chunks/{fr-HVFNU42H.js → fr-X7KDVZIY.js} +3 -2
  157. package/chunks/{gemini-TEFJZCIZ.js → gemini-KW3APZ4P.js} +133 -80
  158. package/chunks/{geminiContentGenerator-M56BEXWI.js → geminiContentGenerator-4BQ5QHPR.js} +5 -5
  159. package/chunks/{glob-DMYFEEAZ.js → glob-FPKAMR6B.js} +32 -28
  160. package/chunks/{grep-GYE47MD4.js → grep-MOGRCYB4.js} +32 -28
  161. package/chunks/{handleAutoUpdate-OLUY4L7L.js → handleAutoUpdate-QUMRZZOS.js} +33 -34
  162. package/chunks/{i18n-462JC7IY.js → i18n-F3W6YUYP.js} +28 -29
  163. package/chunks/{initializer-Y7WD4D2I.js → initializer-KLU2KAIZ.js} +33 -34
  164. package/chunks/{installationInfo-I2Z3BKCE.js → installationInfo-P3ZP2SIZ.js} +27 -28
  165. package/chunks/{ja-PY5AF544.js → ja-2ICT3KXF.js} +3 -2
  166. package/chunks/{keychain-token-storage-AU22CQI6.js → keychain-token-storage-K23CFKGN.js} +2 -2
  167. package/chunks/{list-XQ5MSAXP.js → list-4X6D5JD2.js} +35 -36
  168. package/chunks/{loadedSettingsAdapter-TQOWYE7C.js → loadedSettingsAdapter-446B6WKA.js} +32 -33
  169. package/chunks/{loop-wakeup-QXWZSCYM.js → loop-wakeup-6H7OENTB.js} +5 -5
  170. package/chunks/{ls-2OUTG3IZ.js → ls-APTSOOS5.js} +4 -4
  171. package/chunks/{lsp-4VMNXZW6.js → lsp-HPACPJAN.js} +2 -2
  172. package/chunks/{mcp-22LLEEVM.js → mcp-JYVOJZOD.js} +32 -33
  173. package/chunks/{monitor-VKG324X3.js → monitor-KY7YH7TL.js} +26 -27
  174. package/chunks/nonInteractiveCli-EK35TLVJ.js +129 -0
  175. package/chunks/{notebook-edit-FJJRBQ3S.js → notebook-edit-IHGW42QK.js} +27 -28
  176. package/chunks/{openaiContentGenerator-4T2OGTR5.js → openaiContentGenerator-FURUCKQJ.js} +13 -14
  177. package/chunks/{pidfile-XL3MDCBM.js → pidfile-WKUVXDMR.js} +27 -28
  178. package/chunks/{processUtils-7UCFN34D.js → processUtils-LHSRN76X.js} +2 -2
  179. package/chunks/{pt-A3PRQXMU.js → pt-JJ4XPIBP.js} +3 -2
  180. package/chunks/{qwenContentGenerator-PQUXJDIZ.js → qwenContentGenerator-NRLM7R36.js} +30 -31
  181. package/chunks/{qwenOAuth2-LEYOU7RU.js → qwenOAuth2-5FNX3AWH.js} +22 -5
  182. package/chunks/{read-file-3EYQML7E.js → read-file-VLEAEXFP.js} +9 -10
  183. package/chunks/{read-mcp-resource-JUFHCKSC.js → read-mcp-resource-C6NT52T6.js} +2 -2
  184. package/chunks/{record-artifact-DWSMBXYY.js → record-artifact-ENCU7QCL.js} +2 -2
  185. package/chunks/{ripGrep-S6WPGQNA.js → ripGrep-MT23EIDD.js} +26 -27
  186. package/chunks/{ru-IBCWUTOC.js → ru-STR4KTW7.js} +3 -2
  187. package/chunks/{run-qwen-serve-NSKBT3HU.js → run-qwen-serve-5HWOQFLI.js} +63 -47
  188. package/chunks/{runtime-LG5ZZ3VH.js → runtime-6IVKJSLW.js} +38 -37
  189. package/chunks/{scheduler-PLX3VVTB.js → scheduler-63GJG75U.js} +26 -27
  190. package/chunks/{send-message-JZ752NWD.js → send-message-5GZ4FX2V.js} +3 -3
  191. package/chunks/{serve-S2ZLRZZR.js → serve-3LL7RRDP.js} +32 -33
  192. package/chunks/{server-5ECMV4TM.js → server-AA24QLPA.js} +1672 -615
  193. package/chunks/{session-ILSONWG4.js → session-LRVCFQQQ.js} +102 -75
  194. package/chunks/{settings-BOE7WWSA.js → settings-ZX3OKUT4.js} +36 -37
  195. package/chunks/{shell-VW664JIZ.js → shell-KR3IMYH6.js} +26 -27
  196. package/chunks/{skill-COHV6625.js → skill-QLM2LSF7.js} +11 -12
  197. package/chunks/{spawnChannel-5UUR5XOZ.js → spawnChannel-6WFOK3SA.js} +28 -29
  198. package/chunks/{src-XPKFZ3RN.js → src-ADLNIPHD.js} +101 -72
  199. package/chunks/{standalone-update-IOOJ2NZQ.js → standalone-update-C54OTJWJ.js} +29 -30
  200. package/chunks/{startInteractiveUI-3NGJGXXS.js → startInteractiveUI-KFAOS6HC.js} +2342 -1796
  201. package/chunks/{stdioHelpers-UMY72QRP.js → stdioHelpers-HGIYTWAY.js} +3 -1
  202. package/chunks/{syntheticOutput-LELY6HAI.js → syntheticOutput-ULOVVLY4.js} +3 -3
  203. package/chunks/{task-create-QY3BIMNM.js → task-create-DUE2PMNI.js} +7 -7
  204. package/chunks/{task-list-D2U47WBJ.js → task-list-WVPNX7BZ.js} +5 -5
  205. package/chunks/{task-stop-N6E5IYLH.js → task-stop-CPEQWOT6.js} +2 -2
  206. package/chunks/{task-update-HJCQILLB.js → task-update-HY2LNFFB.js} +7 -7
  207. package/chunks/{team-create-UPLVZQFX.js → team-create-Q5B5M7UD.js} +26 -27
  208. package/chunks/{team-delete-RCWYDRF4.js → team-delete-JJV6IUOA.js} +5 -5
  209. package/chunks/{team-plan-approval-F5F432RO.js → team-plan-approval-J55PXNY2.js} +26 -27
  210. package/chunks/{theme-manager-JJE4BJ67.js → theme-manager-QWTDRPHV.js} +27 -28
  211. package/chunks/todoWrite-JHHIDOIV.js +358 -0
  212. package/chunks/{tool-search-LRXI4JLZ.js → tool-search-LSSKWZKH.js} +10 -11
  213. package/chunks/{total-session-admission-I4DHN6UP.js → total-session-admission-S6ATY5HY.js} +32 -33
  214. package/chunks/{trustedFolders-SEH7LNX2.js → trustedFolders-CY4TUPDJ.js} +28 -29
  215. package/chunks/turndown.cjs-FZHGMUTY.js +17670 -0
  216. package/chunks/{update-relaunch-T6ZKBUA6.js → update-relaunch-IOKOUV3K.js} +6 -6
  217. package/chunks/{updateCheck-FWLXZPRO.js → updateCheck-YNRFE4V7.js} +30 -31
  218. package/chunks/{validateNonInterActiveAuth-X6K2VWYT.js → validateNonInterActiveAuth-OXTECS4B.js} +68 -68
  219. package/chunks/{version-LIFSOGSE.js → version-2CZQQDL5.js} +1 -1
  220. package/chunks/web-fetch-7QTEGJI5.js +938 -0
  221. package/chunks/{workflow-NX2DFWGD.js → workflow-G3CZU256.js} +29 -30
  222. package/chunks/{workspace-providers-status-VYD6M2NE.js → workspace-providers-status-UHQOIPAZ.js} +35 -36
  223. package/chunks/{workspace-registration-store-2Y6PWOEL.js → workspace-registration-store-5WPCMX4F.js} +1 -1
  224. package/chunks/{workspace-registry-PKBDBWCA.js → workspace-registry-LAQCRQTH.js} +32 -33
  225. package/chunks/{workspace-service-HHORUHTS.js → workspace-service-6ZEUJY2Z.js} +38 -39
  226. package/chunks/{workspace-skills-status-O5Q26LIY.js → workspace-skills-status-YG6OITSM.js} +33 -34
  227. package/chunks/{write-file-NVAEZ3J2.js → write-file-E7T3PU3B.js} +60 -28
  228. package/chunks/{zh-PAUNIMHQ.js → zh-6ANG2HTL.js} +7 -3
  229. package/chunks/{zh-TW-GNEUIUFF.js → zh-TW-4RR3YHNN.js} +7 -3
  230. package/cli-entry.js +37 -2
  231. package/cli.js +17 -11
  232. package/locales/ca.js +3 -2
  233. package/locales/de.js +3 -2
  234. package/locales/en.js +10 -5
  235. package/locales/fr.js +3 -2
  236. package/locales/ja.js +3 -2
  237. package/locales/pt.js +3 -2
  238. package/locales/ru.js +3 -2
  239. package/locales/zh-TW.js +9 -3
  240. package/locales/zh.js +9 -3
  241. package/package.json +3 -3
  242. package/web-shell/assets/{arc-H74fE8UR.js → arc-_dVIKMdB.js} +1 -1
  243. package/web-shell/assets/{architectureDiagram-3BPJPVTR-DN3kEq-I.js → architectureDiagram-3BPJPVTR-MuN3nKpL.js} +1 -1
  244. package/web-shell/assets/{blockDiagram-GPEHLZMM-BrqbsFUF.js → blockDiagram-GPEHLZMM-BtmvJjzx.js} +1 -1
  245. package/web-shell/assets/{c4Diagram-AAUBKEIU-ClFhU1P-.js → c4Diagram-AAUBKEIU-Dvi58_BU.js} +1 -1
  246. package/web-shell/assets/channel-Bi5TehaT.js +1 -0
  247. package/web-shell/assets/{chunk-2J33WTMH-jCIcG0_M.js → chunk-2J33WTMH-YqxOVhS1.js} +1 -1
  248. package/web-shell/assets/{chunk-4BX2VUAB-DSkGe62-.js → chunk-4BX2VUAB-DoBgbC9z.js} +1 -1
  249. package/web-shell/assets/{chunk-55IACEB6-BxBHOGTd.js → chunk-55IACEB6-3NEQrBAr.js} +1 -1
  250. package/web-shell/assets/{chunk-727SXJPM-v_DS7dH7.js → chunk-727SXJPM-DrCZQxp0.js} +1 -1
  251. package/web-shell/assets/{chunk-AQP2D5EJ-1RzEKRPq.js → chunk-AQP2D5EJ-m_g3zjgv.js} +1 -1
  252. package/web-shell/assets/{chunk-FMBD7UC4-DyrSbLOX.js → chunk-FMBD7UC4-D1_crABJ.js} +1 -1
  253. package/web-shell/assets/{chunk-ND2GUHAM-BCmdsZiy.js → chunk-ND2GUHAM-BdhgVtBx.js} +1 -1
  254. package/web-shell/assets/{chunk-QZHKN3VN-CphHGW2D.js → chunk-QZHKN3VN-BlmThhm-.js} +1 -1
  255. package/web-shell/assets/classDiagram-4FO5ZUOK-BKhhRdd1.js +1 -0
  256. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-BKhhRdd1.js +1 -0
  257. package/web-shell/assets/{cose-bilkent-S5V4N54A-D5kRC7Fi.js → cose-bilkent-S5V4N54A-Cbjm_00Z.js} +1 -1
  258. package/web-shell/assets/{dagre-BM42HDAG-DIiyJJ0U.js → dagre-BM42HDAG-C39QNVgC.js} +1 -1
  259. package/web-shell/assets/{diagram-2AECGRRQ-BOcuB8xU.js → diagram-2AECGRRQ-DNXSAixC.js} +1 -1
  260. package/web-shell/assets/{diagram-5GNKFQAL-CMgiZ4d3.js → diagram-5GNKFQAL-BCbGUPEA.js} +1 -1
  261. package/web-shell/assets/{diagram-KO2AKTUF-Ctx8pfN0.js → diagram-KO2AKTUF-1eujKSDC.js} +1 -1
  262. package/web-shell/assets/{diagram-LMA3HP47-BT5REAWC.js → diagram-LMA3HP47-DUMKXgql.js} +1 -1
  263. package/web-shell/assets/{diagram-OG6HWLK6-CJkUqXcp.js → diagram-OG6HWLK6-BFktU3_u.js} +1 -1
  264. package/web-shell/assets/{erDiagram-TEJ5UH35-DyvNNX6v.js → erDiagram-TEJ5UH35-BvJC7DLk.js} +1 -1
  265. package/web-shell/assets/{flowDiagram-I6XJVG4X-VBf8_My8.js → flowDiagram-I6XJVG4X-Cgu3PlOt.js} +1 -1
  266. package/web-shell/assets/{ganttDiagram-6RSMTGT7-CviJnR7B.js → ganttDiagram-6RSMTGT7-DLNXN5Xh.js} +1 -1
  267. package/web-shell/assets/{gitGraphDiagram-PVQCEYII-BY66_Oze.js → gitGraphDiagram-PVQCEYII-BQFRDv6R.js} +1 -1
  268. package/web-shell/assets/index-C_ouplMQ.js +1187 -0
  269. package/web-shell/assets/{index-DhYuvi3j.js → index-CdC3pjP3.js} +1 -1
  270. package/web-shell/assets/index-XGDFJE-X.css +5 -0
  271. package/web-shell/assets/{infoDiagram-5YYISTIA-D2jaewWZ.js → infoDiagram-5YYISTIA-DT2mOSvp.js} +1 -1
  272. package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-BpnNTyi5.js → ishikawaDiagram-YF4QCWOH-9fy_K4bd.js} +1 -1
  273. package/web-shell/assets/{journeyDiagram-JHISSGLW-CA55GNZF.js → journeyDiagram-JHISSGLW-CoGSEuhE.js} +1 -1
  274. package/web-shell/assets/{kanban-definition-UN3LZRKU-DyiSl_Ts.js → kanban-definition-UN3LZRKU-BP9hHYIj.js} +1 -1
  275. package/web-shell/assets/{linear-B-sN3dkV.js → linear-uIroDsmp.js} +1 -1
  276. package/web-shell/assets/{mermaid.core-xf9SXDdb.js → mermaid.core-BUwoStsA.js} +5 -5
  277. package/web-shell/assets/{mindmap-definition-RKZ34NQL-DXhr2kRk.js → mindmap-definition-RKZ34NQL-DZB-FWim.js} +1 -1
  278. package/web-shell/assets/{pieDiagram-4H26LBE5-DUXpbfGQ.js → pieDiagram-4H26LBE5-YPptloKl.js} +1 -1
  279. package/web-shell/assets/{quadrantDiagram-W4KKPZXB-NeDQYeWw.js → quadrantDiagram-W4KKPZXB-dgk3DSzm.js} +1 -1
  280. package/web-shell/assets/{requirementDiagram-4Y6WPE33-BSbFRL1A.js → requirementDiagram-4Y6WPE33-BH2En2i9.js} +1 -1
  281. package/web-shell/assets/{sankeyDiagram-5OEKKPKP-gg27cAaN.js → sankeyDiagram-5OEKKPKP-BB98feeI.js} +1 -1
  282. package/web-shell/assets/{sequenceDiagram-3UESZ5HK-Bi_1TSs4.js → sequenceDiagram-3UESZ5HK-CunAIGh8.js} +1 -1
  283. package/web-shell/assets/{stateDiagram-AJRCARHV-CboCCRaf.js → stateDiagram-AJRCARHV-DTJs_-I2.js} +1 -1
  284. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-DrfFMYta.js +1 -0
  285. package/web-shell/assets/{timeline-definition-PNZ67QCA-DrGpF_jn.js → timeline-definition-PNZ67QCA-Cd4AN7O0.js} +1 -1
  286. package/web-shell/assets/{vennDiagram-CIIHVFJN-DCaJU67x.js → vennDiagram-CIIHVFJN-xIG-rUU9.js} +1 -1
  287. package/web-shell/assets/{wardley-L42UT6IY-p0QcW1aP.js → wardley-L42UT6IY-D1UyjIcG.js} +1 -1
  288. package/web-shell/assets/{wardleyDiagram-YWT4CUSO-DiEVxj1W.js → wardleyDiagram-YWT4CUSO-BVM0Mb99.js} +1 -1
  289. package/web-shell/assets/{xychartDiagram-2RQKCTM6-iQB8nSlA.js → xychartDiagram-2RQKCTM6-BX31JDSz.js} +1 -1
  290. package/web-shell/index.html +2 -2
  291. package/chunks/chunk-2HRYPZT5.js +0 -25
  292. package/chunks/chunk-QAW7PIHT.js +0 -168
  293. package/chunks/chunk-RTV5TUYB.js +0 -143
  294. package/chunks/chunk-ZPAHLFZU.js +0 -172
  295. package/chunks/exitPlanMode-HYQL4XMB.js +0 -909
  296. package/chunks/nonInteractiveCli-UMYUT643.js +0 -129
  297. package/chunks/todoWrite-FKCGATPJ.js +0 -531
  298. package/chunks/web-fetch-CFCWTCAP.js +0 -5673
  299. package/web-shell/assets/channel-NFC5ADAa.js +0 -1
  300. package/web-shell/assets/classDiagram-4FO5ZUOK-DHgwjz3X.js +0 -1
  301. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-DHgwjz3X.js +0 -1
  302. package/web-shell/assets/index-8xIBbHV3.js +0 -1143
  303. package/web-shell/assets/index-DLyhlZZO.css +0 -5
  304. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-CXRqms6P.js +0 -1
@@ -3,30 +3,39 @@
3
3
  import {
4
4
  formatHistoryGapNotice,
5
5
  indexGapsByChild
6
- } from "./chunk-CF5VJRGC.js";
6
+ } from "./chunk-7LMAKIWE.js";
7
7
  import {
8
8
  sanitizeTerminalText
9
- } from "./chunk-SUARMD4Q.js";
9
+ } from "./chunk-J6NT5YTN.js";
10
+ import {
11
+ isGoalStatusKind,
12
+ isTerminalGoalStatusKind
13
+ } from "./chunk-76BFY7AF.js";
10
14
  import {
11
15
  require_undici
12
16
  } from "./chunk-L573Z2QZ.js";
13
17
  import {
14
- writeStderrLine
15
- } from "./chunk-YUZI3WAC.js";
18
+ writeStderrLine,
19
+ writeStderrLineSafe
20
+ } from "./chunk-OWAK7LMW.js";
16
21
  import {
17
- getActiveGoal
18
- } from "./chunk-NJOFRXTM.js";
22
+ getActiveGoal,
23
+ registerGoalHook,
24
+ setGoalTerminalObserver,
25
+ setLastGoalTerminal,
26
+ unregisterGoalHook
27
+ } from "./chunk-6TDA4EVC.js";
19
28
  import {
20
29
  apiActivityTracker,
21
30
  formatVisionBridgeNoticeDisplay,
22
31
  isVisionBridgeNoticeDisplay
23
- } from "./chunk-MQOVXZAF.js";
32
+ } from "./chunk-YN2I5I42.js";
24
33
  import {
25
34
  ToolNames
26
- } from "./chunk-JGUT3LWZ.js";
35
+ } from "./chunk-ANRANWVE.js";
27
36
  import {
28
37
  createDebugLogger
29
- } from "./chunk-7NFB7LBQ.js";
38
+ } from "./chunk-UE5TZ55T.js";
30
39
  import {
31
40
  init_esbuild_shims
32
41
  } from "./chunk-5O2XNYP6.js";
@@ -35,6 +44,195 @@ import {
35
44
  __toESM
36
45
  } from "./chunk-J2S4EL5Y.js";
37
46
 
47
+ // packages/cli/src/ui/utils/restoreGoal.ts
48
+ init_esbuild_shims();
49
+ function findGoalToRestore(history) {
50
+ for (let i = history.length - 1; i >= 0; i--) {
51
+ const item = history[i];
52
+ if (item?.type !== "goal_status" /* GOAL_STATUS */) continue;
53
+ const goal = item;
54
+ if (goal.kind !== "set" && goal.kind !== "checking") return null;
55
+ const setAt = goal.setAt ?? findSetAtOfRun(history, i);
56
+ return {
57
+ condition: goal.condition,
58
+ iterations: goal.iterations ?? 0,
59
+ ...setAt !== void 0 ? { setAt } : {}
60
+ };
61
+ }
62
+ return null;
63
+ }
64
+ __name(findGoalToRestore, "findGoalToRestore");
65
+ function findSetAtOfRun(history, startIndex) {
66
+ const start = history[startIndex];
67
+ const condition = start?.condition;
68
+ for (let i = startIndex - 1; i >= 0; i--) {
69
+ const item = history[i];
70
+ if (item?.type !== "goal_status" /* GOAL_STATUS */) continue;
71
+ const goal = item;
72
+ if (goal.kind !== "set" && goal.kind !== "checking") return void 0;
73
+ if (goal.condition !== condition) return void 0;
74
+ if (goal.setAt !== void 0) return goal.setAt;
75
+ }
76
+ return void 0;
77
+ }
78
+ __name(findSetAtOfRun, "findSetAtOfRun");
79
+ function findLastTerminalGoal(history) {
80
+ for (let i = history.length - 1; i >= 0; i--) {
81
+ const item = history[i];
82
+ if (item?.type !== "goal_status" /* GOAL_STATUS */) continue;
83
+ const goal = item;
84
+ if (!isTerminalGoalStatusKind(goal.kind)) continue;
85
+ return {
86
+ kind: goal.kind,
87
+ condition: goal.condition,
88
+ iterations: goal.iterations ?? 0,
89
+ durationMs: goal.durationMs ?? 0,
90
+ lastReason: goal.lastReason
91
+ };
92
+ }
93
+ return null;
94
+ }
95
+ __name(findLastTerminalGoal, "findLastTerminalGoal");
96
+ function finiteNumber(value) {
97
+ return typeof value === "number" && Number.isFinite(value) ? value : void 0;
98
+ }
99
+ __name(finiteNumber, "finiteNumber");
100
+ function isTranscriptItemRecord(item) {
101
+ return typeof item === "object" && item !== null && !Array.isArray(item);
102
+ }
103
+ __name(isTranscriptItemRecord, "isTranscriptItemRecord");
104
+ function parseGoalStatusItem(item) {
105
+ if (!isTranscriptItemRecord(item)) return null;
106
+ if (item["type"] !== "goal_status" /* GOAL_STATUS */) return null;
107
+ const kind = item["kind"];
108
+ const condition = item["condition"];
109
+ if (!isGoalStatusKind(kind) || typeof condition !== "string") return null;
110
+ const iterations = finiteNumber(item["iterations"]);
111
+ const setAt = finiteNumber(item["setAt"]);
112
+ const durationMs = finiteNumber(item["durationMs"]);
113
+ const lastReason = typeof item["lastReason"] === "string" ? item["lastReason"] : void 0;
114
+ return {
115
+ type: "goal_status" /* GOAL_STATUS */,
116
+ kind,
117
+ condition,
118
+ ...iterations !== void 0 ? { iterations } : {},
119
+ ...setAt !== void 0 ? { setAt } : {},
120
+ ...durationMs !== void 0 ? { durationMs } : {},
121
+ ...lastReason !== void 0 ? { lastReason } : {}
122
+ };
123
+ }
124
+ __name(parseGoalStatusItem, "parseGoalStatusItem");
125
+ function collectGoalStatusItemsFromRecords(records) {
126
+ const items = [];
127
+ for (const record of records) {
128
+ if (record.type !== "system" || record.subtype !== "slash_command") {
129
+ continue;
130
+ }
131
+ const payload = record.systemPayload;
132
+ if (payload?.phase !== "result") continue;
133
+ const raws = payload.outputHistoryItems;
134
+ if (!Array.isArray(raws)) continue;
135
+ for (const raw of raws) {
136
+ const item = parseGoalStatusItem(raw);
137
+ if (item) items.push(item);
138
+ }
139
+ }
140
+ return items;
141
+ }
142
+ __name(collectGoalStatusItemsFromRecords, "collectGoalStatusItemsFromRecords");
143
+ function goalTerminalEventToHistoryItem(event) {
144
+ return {
145
+ type: "goal_status" /* GOAL_STATUS */,
146
+ kind: event.kind,
147
+ condition: event.condition,
148
+ iterations: event.iterations,
149
+ durationMs: event.durationMs,
150
+ lastReason: event.lastReason ?? event.systemMessage
151
+ };
152
+ }
153
+ __name(goalTerminalEventToHistoryItem, "goalTerminalEventToHistoryItem");
154
+ function recordGoalStatusItem(config, item, rawCommand = "/goal") {
155
+ try {
156
+ const recording = config.getChatRecordingService?.();
157
+ if (!recording) {
158
+ writeStderrLineSafe(
159
+ `qwen: no chat recording service; goal_status (kind=${item.kind}) will not survive a resume.`
160
+ );
161
+ return;
162
+ }
163
+ recording.recordSlashCommand({
164
+ phase: "result",
165
+ rawCommand,
166
+ outputHistoryItems: [{ ...item }]
167
+ });
168
+ } catch (error) {
169
+ writeStderrLineSafe(
170
+ `qwen: failed to record goal_status (kind=${item.kind}): ${error}`
171
+ );
172
+ }
173
+ }
174
+ __name(recordGoalStatusItem, "recordGoalStatusItem");
175
+ function installGoalTerminalObserver(args) {
176
+ const { sessionId, config, addItem } = args;
177
+ setGoalTerminalObserver(sessionId, (event) => {
178
+ const item = goalTerminalEventToHistoryItem(event);
179
+ addItem(item, Date.now());
180
+ recordGoalStatusItem(config, item);
181
+ });
182
+ }
183
+ __name(installGoalTerminalObserver, "installGoalTerminalObserver");
184
+ function goalRestoreBlockedBy(config) {
185
+ if (!config.isTrustedFolder()) return "untrusted-folder";
186
+ if (config.getDisableAllHooks()) return "hooks-disabled";
187
+ if (!config.getHookSystem()) return "no-hook-system";
188
+ return null;
189
+ }
190
+ __name(goalRestoreBlockedBy, "goalRestoreBlockedBy");
191
+ function goalConditionBlockedBy(condition) {
192
+ if (condition.length === 0) return "condition-invalid";
193
+ return null;
194
+ }
195
+ __name(goalConditionBlockedBy, "goalConditionBlockedBy");
196
+ function restoreGoalFromHistory(history, config, addItem) {
197
+ const sessionId = config.getSessionId();
198
+ const lastTerminal = findLastTerminalGoal(history);
199
+ setLastGoalTerminal(sessionId, lastTerminal ?? void 0);
200
+ const restorable = findGoalToRestore(history);
201
+ if (restorable === null) {
202
+ unregisterGoalHook(config, sessionId);
203
+ return { restored: false };
204
+ }
205
+ const blockedBy = goalRestoreBlockedBy(config);
206
+ if (blockedBy) {
207
+ unregisterGoalHook(config, sessionId);
208
+ return { restored: false, blockedBy };
209
+ }
210
+ if (goalConditionBlockedBy(restorable.condition)) {
211
+ writeStderrLineSafe(
212
+ `qwen: refusing to restore a goal for session ${sessionId}: the condition is empty.`
213
+ );
214
+ unregisterGoalHook(config, sessionId);
215
+ return { restored: false, blockedBy: "condition-invalid" };
216
+ }
217
+ registerGoalHook({
218
+ config,
219
+ sessionId,
220
+ condition: restorable.condition,
221
+ tokensAtStart: 0,
222
+ // Resume the iteration count so MAX_GOAL_ITERATIONS is a cross-resume cap,
223
+ // not a per-resume one.
224
+ initialIterations: restorable.iterations,
225
+ // Likewise the start time: without it every reload restarts the clock, and
226
+ // `GET /goals` reports a long-running goal as freshly started.
227
+ ...restorable.setAt !== void 0 ? { initialSetAt: restorable.setAt } : {}
228
+ });
229
+ if (addItem) {
230
+ installGoalTerminalObserver({ sessionId, config, addItem });
231
+ }
232
+ return { restored: true, condition: restorable.condition };
233
+ }
234
+ __name(restoreGoalFromHistory, "restoreGoalFromHistory");
235
+
38
236
  // packages/cli/src/services/setup-github.ts
39
237
  init_esbuild_shims();
40
238
  var import_undici2 = __toESM(require_undici(), 1);
@@ -1212,6 +1410,11 @@ function extractFunctionResponseId(record) {
1212
1410
  __name(extractFunctionResponseId, "extractFunctionResponseId");
1213
1411
 
1214
1412
  // packages/cli/src/acp-integration/session/history-replayer.ts
1413
+ var GOAL_NOT_RESTORED_REASON = {
1414
+ "untrusted-folder": "Goal not restored: this folder is not trusted, so its Stop hook cannot run.",
1415
+ "hooks-disabled": "Goal not restored: hooks are disabled for this session.",
1416
+ "no-hook-system": "Goal not restored: the hook system is unavailable."
1417
+ };
1215
1418
  var MISSING_TOOL_RESULT_MESSAGE = "Tool result missing from saved history; the previous run likely ended before this tool completed.";
1216
1419
  var HistoryReplayer = class {
1217
1420
  static {
@@ -1220,9 +1423,11 @@ var HistoryReplayer = class {
1220
1423
  ctx;
1221
1424
  messageEmitter;
1222
1425
  toolCallEmitter;
1426
+ options;
1223
1427
  pendingReplayToolCalls = /* @__PURE__ */ new Map();
1224
- constructor(ctx) {
1428
+ constructor(ctx, options = {}) {
1225
1429
  this.ctx = ctx;
1430
+ this.options = options;
1226
1431
  this.messageEmitter = new MessageEmitter(ctx);
1227
1432
  this.toolCallEmitter = new ToolCallEmitter(ctx);
1228
1433
  }
@@ -1237,6 +1442,7 @@ var HistoryReplayer = class {
1237
1442
  async replay(records, gaps) {
1238
1443
  try {
1239
1444
  await this.replayPage(records, { finalizeDangling: true, gaps });
1445
+ await this.supersedeUnrestorableGoal(records);
1240
1446
  } finally {
1241
1447
  this.pendingReplayToolCalls.clear();
1242
1448
  this.setActiveRecordId(null);
@@ -1509,14 +1715,33 @@ var HistoryReplayer = class {
1509
1715
  * Replays a slash_command system record by re-emitting its output as an
1510
1716
  * agent message chunk. This allows Zed to reconstruct the correct turn
1511
1717
  * structure (user → agent) on session resume without polluting model context.
1718
+ *
1719
+ * Goal cards are re-emitted as `_meta.goalStatus` rather than text: they carry
1720
+ * no `text` field, so the plain-text path below would silently drop them and
1721
+ * the client would lose the goal card (and its status pill) on every reload.
1722
+ * Per-iteration `checking` cards are skipped — a TUI transcript persists one
1723
+ * per stop-hook turn, and clients suppress them as noise. Skipping costs no
1724
+ * fidelity: goal restore reads the records directly, not this replay.
1512
1725
  */
1513
1726
  async replaySlashCommandResult(record) {
1514
1727
  const payload = record.systemPayload;
1515
- if (payload?.phase !== "result" || !payload.outputHistoryItems?.length) {
1516
- return;
1517
- }
1518
- for (const item of payload.outputHistoryItems) {
1519
- const text = typeof item["text"] === "string" ? item["text"] : "";
1728
+ if (payload?.phase !== "result") return;
1729
+ const items = payload.outputHistoryItems;
1730
+ if (!Array.isArray(items) || items.length === 0) return;
1731
+ for (const item of items) {
1732
+ const goalStatus = parseGoalStatusItem(item);
1733
+ if (goalStatus) {
1734
+ if (goalConditionBlockedBy(goalStatus.condition)) {
1735
+ writeStderrLineSafe(
1736
+ "qwen: skipping replay of a goal card whose condition is empty."
1737
+ );
1738
+ } else if (goalStatus.kind !== "checking") {
1739
+ const { type: _type, ...status } = goalStatus;
1740
+ await this.messageEmitter.emitGoalStatus(status);
1741
+ }
1742
+ continue;
1743
+ }
1744
+ const text = isTranscriptItemRecord(item) && typeof item["text"] === "string" ? item["text"] : "";
1520
1745
  if (text) {
1521
1746
  await this.messageEmitter.emitSlashCommandOutput(
1522
1747
  text.replace(/\n/g, " \n"),
@@ -1525,6 +1750,42 @@ var HistoryReplayer = class {
1525
1750
  }
1526
1751
  }
1527
1752
  }
1753
+ /**
1754
+ * Emits a trailing `cleared` card when the transcript ends on an active goal
1755
+ * that `restoreGoalFromHistory` is about to refuse.
1756
+ *
1757
+ * A client reads "there is an active goal" off the newest goal card it has
1758
+ * seen, so replaying a `set` card that no Stop hook will drive leaves the UI
1759
+ * claiming a goal is running when the loop is dead. The gates are pure
1760
+ * functions of `config`, so the answer is known here, before restore runs.
1761
+ *
1762
+ * This card is emitted, not recorded: the transcript keeps its `set` card, so
1763
+ * a later resume in a trusted folder (or with hooks re-enabled) restores the
1764
+ * goal instead of finding it destroyed. Emitting from inside replay is also
1765
+ * what puts the card *after* the `set` card — `loadSession` batches replay
1766
+ * updates into its response, and a notification sent afterwards would reach
1767
+ * the client first.
1768
+ *
1769
+ * Gated on `supersedeUnrestorableGoal`: only a resume registers a hook, and
1770
+ * only a resume has a `config` that answers trust and hook-policy questions.
1771
+ */
1772
+ async supersedeUnrestorableGoal(records) {
1773
+ if (!this.options.supersedeUnrestorableGoal) return;
1774
+ const active = findGoalToRestore(
1775
+ collectGoalStatusItemsFromRecords(records)
1776
+ );
1777
+ if (!active || goalConditionBlockedBy(active.condition)) return;
1778
+ if (!hasFullSessionContext(this.ctx)) return;
1779
+ const blockedBy = goalRestoreBlockedBy(this.ctx.config);
1780
+ if (!blockedBy) return;
1781
+ await this.messageEmitter.emitGoalStatus({
1782
+ kind: "cleared",
1783
+ condition: active.condition,
1784
+ iterations: active.iterations,
1785
+ ...active.setAt !== void 0 ? { setAt: active.setAt } : {},
1786
+ lastReason: GOAL_NOT_RESTORED_REASON[blockedBy]
1787
+ });
1788
+ }
1528
1789
  /**
1529
1790
  * Extracts tool name from a chat record's function response.
1530
1791
  */
@@ -1539,10 +1800,7 @@ var HistoryReplayer = class {
1539
1800
  return "";
1540
1801
  }
1541
1802
  setActiveRecordId(recordId, timestamp) {
1542
- const context = this.ctx;
1543
- if (typeof context.setActiveRecordId === "function") {
1544
- context.setActiveRecordId(recordId, timestamp);
1545
- }
1803
+ this.ctx.setActiveRecordId?.(recordId, timestamp);
1546
1804
  }
1547
1805
  };
1548
1806
 
@@ -1735,7 +1993,7 @@ async function extractMetadata(conversation, config) {
1735
1993
  const gitBranch = firstRecord?.gitBranch;
1736
1994
  let gitRepo;
1737
1995
  if (cwd) {
1738
- const { getGitRepoName } = await import("./src-XPKFZ3RN.js");
1996
+ const { getGitRepoName } = await import("./src-ADLNIPHD.js");
1739
1997
  gitRepo = getGitRepoName(cwd);
1740
1998
  }
1741
1999
  let model;
@@ -2579,6 +2837,11 @@ export {
2579
2837
  MessageEmitter,
2580
2838
  PlanEmitter,
2581
2839
  ToolCallEmitter,
2840
+ collectGoalStatusItemsFromRecords,
2841
+ goalTerminalEventToHistoryItem,
2842
+ recordGoalStatusItem,
2843
+ installGoalTerminalObserver,
2844
+ restoreGoalFromHistory,
2582
2845
  HistoryReplayer,
2583
2846
  collectSessionData,
2584
2847
  normalizeSessionData,
@@ -2590,6 +2853,11 @@ export {
2590
2853
  toJsonl,
2591
2854
  generateExportFilename
2592
2855
  };
2856
+ /**
2857
+ * @license
2858
+ * Copyright 2026 Qwen Team
2859
+ * SPDX-License-Identifier: Apache-2.0
2860
+ */
2593
2861
  /**
2594
2862
  * @license
2595
2863
  * Copyright 2025 Google LLC
@@ -5,7 +5,7 @@ import {
5
5
  BaseToolInvocation,
6
6
  ToolDisplayNames,
7
7
  ToolNames
8
- } from "./chunk-JGUT3LWZ.js";
8
+ } from "./chunk-ANRANWVE.js";
9
9
  import {
10
10
  init_esbuild_shims
11
11
  } from "./chunk-5O2XNYP6.js";
@@ -5,10 +5,10 @@ import {
5
5
  } from "./chunk-FEOZBUMT.js";
6
6
  import {
7
7
  TextTokenizer
8
- } from "./chunk-VRR65QYW.js";
8
+ } from "./chunk-V4PCIS25.js";
9
9
  import {
10
10
  createDebugLogger
11
- } from "./chunk-7NFB7LBQ.js";
11
+ } from "./chunk-UE5TZ55T.js";
12
12
  import {
13
13
  init_esbuild_shims
14
14
  } from "./chunk-5O2XNYP6.js";
@@ -2,14 +2,14 @@
2
2
  "use strict";
3
3
  import {
4
4
  functionResponsePartsToString
5
- } from "./chunk-THXDQSTA.js";
5
+ } from "./chunk-IQRQVPGN.js";
6
6
  import {
7
7
  parseAndFormatApiError
8
- } from "./chunk-NJOFRXTM.js";
8
+ } from "./chunk-6TDA4EVC.js";
9
9
  import {
10
10
  formatVisionBridgeNoticeDisplay,
11
11
  isVisionBridgeNoticeDisplay
12
- } from "./chunk-MQOVXZAF.js";
12
+ } from "./chunk-YN2I5I42.js";
13
13
  import {
14
14
  init_esbuild_shims
15
15
  } from "./chunk-5O2XNYP6.js";
@@ -169,7 +169,7 @@ var WorkspaceMismatchError = class extends Error {
169
169
  constructor(bound, requested) {
170
170
  const safeRequested = requested.length > MAX_WORKSPACE_PATH_LENGTH ? `${requested.slice(0, MAX_WORKSPACE_PATH_LENGTH)}\u2026[truncated]` : requested;
171
171
  super(
172
- `Workspace mismatch: daemon is bound to "${bound}" but request asked for "${safeRequested}". Each \`qwen serve\` daemon binds to exactly one workspace; start a separate daemon for "${safeRequested}" (or route the request to one via an orchestrator).`
172
+ `Workspace mismatch: runtime is bound to "${bound}" but request asked for "${safeRequested}". Select a registered runtime for "${safeRequested}" or register it before retrying; this bridge will not fall back to the primary workspace.`
173
173
  );
174
174
  this.name = "WorkspaceMismatchError";
175
175
  this.bound = bound;
@@ -6,7 +6,7 @@ import {
6
6
  } from "./chunk-RKUWKYED.js";
7
7
  import {
8
8
  createDebugLogger
9
- } from "./chunk-7NFB7LBQ.js";
9
+ } from "./chunk-UE5TZ55T.js";
10
10
  import {
11
11
  init_esbuild_shims
12
12
  } from "./chunk-5O2XNYP6.js";
@@ -5,14 +5,14 @@ import {
5
5
  isTranscribableVoiceModel,
6
6
  readVoiceLanguage,
7
7
  resolveVoiceTransport
8
- } from "./chunk-3M75MSVA.js";
8
+ } from "./chunk-SMASS3CY.js";
9
9
  import {
10
10
  resolvePath
11
- } from "./chunk-FSA7ERJ2.js";
11
+ } from "./chunk-F2RR4HO2.js";
12
12
  import {
13
13
  createDebugLogger,
14
14
  isSubpath
15
- } from "./chunk-7NFB7LBQ.js";
15
+ } from "./chunk-UE5TZ55T.js";
16
16
  import {
17
17
  init_esbuild_shims
18
18
  } from "./chunk-5O2XNYP6.js";
@@ -10,18 +10,18 @@ import {
10
10
  } from "./chunk-MR3PXB6E.js";
11
11
  import {
12
12
  writeStderrLine
13
- } from "./chunk-YUZI3WAC.js";
13
+ } from "./chunk-OWAK7LMW.js";
14
14
  import {
15
15
  ideContextStore
16
- } from "./chunk-NJOFRXTM.js";
16
+ } from "./chunk-6TDA4EVC.js";
17
17
  import {
18
18
  atomicWriteFileSync
19
- } from "./chunk-WIEO4CWB.js";
19
+ } from "./chunk-VAJS2E2D.js";
20
20
  import {
21
21
  FatalConfigError,
22
22
  Storage,
23
23
  getErrorMessage
24
- } from "./chunk-7NFB7LBQ.js";
24
+ } from "./chunk-UE5TZ55T.js";
25
25
  import {
26
26
  init_esbuild_shims
27
27
  } from "./chunk-5O2XNYP6.js";
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  getTasksDir
5
- } from "./chunk-TV6K2FB4.js";
5
+ } from "./chunk-4RPARQ5D.js";
6
6
  import {
7
7
  require_proper_lockfile
8
8
  } from "./chunk-E2UVIFI2.js";
@@ -11,11 +11,11 @@ import {
11
11
  } from "./chunk-VGC4I5JJ.js";
12
12
  import {
13
13
  atomicWriteJSON
14
- } from "./chunk-WIEO4CWB.js";
14
+ } from "./chunk-VAJS2E2D.js";
15
15
  import {
16
16
  createDebugLogger,
17
17
  isNodeError
18
- } from "./chunk-7NFB7LBQ.js";
18
+ } from "./chunk-UE5TZ55T.js";
19
19
  import {
20
20
  init_esbuild_shims
21
21
  } from "./chunk-5O2XNYP6.js";
@@ -8,13 +8,13 @@ import {
8
8
  } from "./chunk-L573Z2QZ.js";
9
9
  import {
10
10
  t
11
- } from "./chunk-4AGTGMCQ.js";
11
+ } from "./chunk-3PE7OY2G.js";
12
12
  import {
13
13
  So
14
- } from "./chunk-NJOFRXTM.js";
14
+ } from "./chunk-6TDA4EVC.js";
15
15
  import {
16
16
  createDebugLogger
17
- } from "./chunk-7NFB7LBQ.js";
17
+ } from "./chunk-UE5TZ55T.js";
18
18
  import {
19
19
  init_esbuild_shims
20
20
  } from "./chunk-5O2XNYP6.js";