@qwen-code/qwen-code 0.22.3-nightly.20260831.3a0c4c6108 → 0.23.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 (381) hide show
  1. package/README.md +30 -0
  2. package/bundled/computer-use/SKILL.md +116 -180
  3. package/bundled/goal-draft/SKILL.md +5 -1
  4. package/bundled/qc-helper/docs/configuration/model-providers.md +4 -0
  5. package/bundled/qc-helper/docs/configuration/settings.md +53 -50
  6. package/bundled/qc-helper/docs/features/_meta.ts +1 -0
  7. package/bundled/qc-helper/docs/features/channels/dingtalk.md +4 -2
  8. package/bundled/qc-helper/docs/features/channels/dws.md +6 -2
  9. package/bundled/qc-helper/docs/features/channels/overview.md +1 -0
  10. package/bundled/qc-helper/docs/features/commands.md +38 -1
  11. package/bundled/qc-helper/docs/features/computer-use.md +2 -2
  12. package/bundled/qc-helper/docs/features/goals.md +9 -3
  13. package/bundled/qc-helper/docs/features/headless.md +16 -1
  14. package/bundled/qc-helper/docs/features/hooks.md +2 -1
  15. package/bundled/qc-helper/docs/features/output-styles.md +38 -0
  16. package/bundled/qc-helper/docs/qwen-serve.md +15 -0
  17. package/bundled/review/SKILL.md +5 -5
  18. package/bundled/review/references/posting.md +2 -2
  19. package/chunks/{MaxSizedBox-IHRTWGSY.js → MaxSizedBox-B3D7545A.js} +41 -45
  20. package/chunks/{StandaloneSessionPicker-TLVWVTJ7.js → StandaloneSessionPicker-QUMO4LLQ.js} +64 -67
  21. package/chunks/{acpAgent-7I5LLPP3.js → acpAgent-2GTFCIEP.js} +771 -248
  22. package/chunks/{agent-4Z4NTJXD.js → agent-XKF5SZWU.js} +26 -30
  23. package/chunks/{agent-headless-TVUJXQWU.js → agent-headless-OC2IB55D.js} +26 -30
  24. package/chunks/{anthropicContentGenerator-VSSPG7XV.js → anthropicContentGenerator-L76MR5OR.js} +14 -14
  25. package/chunks/{artifact-tool-TEYW6I4A.js → artifact-tool-MYCL2QCS.js} +2 -3
  26. package/chunks/{askUserQuestion-PYNBWV63.js → askUserQuestion-THQZMG44.js} +2 -2
  27. package/chunks/{bridge-EVURP4NO.js → bridge-IHSBI2YJ.js} +42 -46
  28. package/chunks/{build-INBK7IXX.js → build-63BIOYWK.js} +1 -1
  29. package/chunks/{channel-management-service-IDBNYSFW.js → channel-management-service-4MTCEGJB.js} +4 -4
  30. package/chunks/{channel-settings-store-MZNXRKVI.js → channel-settings-store-BVKWAI2T.js} +50 -54
  31. package/chunks/{channel-worker-group-ZLP5SJHT.js → channel-worker-group-47F4ISUZ.js} +6 -6
  32. package/chunks/{channel-worker-manager-FG5377T2.js → channel-worker-manager-I5Y44GYR.js} +50 -9
  33. package/chunks/{channel-worker-supervisor-HDVE4ADS.js → channel-worker-supervisor-6VCLUXFE.js} +4 -4
  34. package/chunks/{chunk-3452WXOK.js → chunk-2M3EWQNG.js} +17 -0
  35. package/chunks/{chunk-HDMKCJHI.js → chunk-32LU3APX.js} +1 -1
  36. package/chunks/{chunk-BSJOBW4U.js → chunk-37JFWFCD.js} +1 -1
  37. package/chunks/{chunk-AN3KFCNH.js → chunk-3JQZVCBI.js} +2 -2
  38. package/chunks/{chunk-RGEV5AUD.js → chunk-3L724BJ5.js} +11 -8
  39. package/chunks/{chunk-GCUR24KK.js → chunk-47RYEQW5.js} +2 -2
  40. package/chunks/{chunk-CM4F4JBB.js → chunk-4BGDFKQE.js} +5 -5
  41. package/chunks/{chunk-ZBDYI7VM.js → chunk-4F7GQGXB.js} +10961 -4033
  42. package/chunks/{chunk-JMRE4WJQ.js → chunk-4HVH57J3.js} +81 -17
  43. package/chunks/{chunk-26SIKQIC.js → chunk-4LIFGNI4.js} +1 -1
  44. package/chunks/{chunk-U5RTYI7D.js → chunk-4M24B5J5.js} +13 -13
  45. package/chunks/{chunk-7XICSE62.js → chunk-4PSDSCW3.js} +3 -3
  46. package/chunks/{chunk-AYYKUUKP.js → chunk-4UANMABT.js} +73 -19
  47. package/chunks/{chunk-GS7XT345.js → chunk-54C6PIGT.js} +3 -3
  48. package/chunks/{chunk-UKB2TZAO.js → chunk-5EIOJGCR.js} +4 -4
  49. package/chunks/{chunk-64REQJJ2.js → chunk-5H5S4UY5.js} +3 -3
  50. package/chunks/chunk-5IENVM7Z.js +35 -0
  51. package/chunks/{chunk-JOWQD4LO.js → chunk-5Q5RC2WE.js} +1 -1
  52. package/chunks/{chunk-3NQCZMUB.js → chunk-5RTTI4GE.js} +73 -73
  53. package/chunks/{chunk-J4Y3QJHF.js → chunk-64QH2UC6.js} +11 -1
  54. package/chunks/{chunk-I75VKFCJ.js → chunk-65HWLGA7.js} +1 -1
  55. package/chunks/{chunk-W7KWB6AH.js → chunk-6A2D4QSO.js} +8 -5
  56. package/chunks/{chunk-OTTNXUT5.js → chunk-7IKXTGZT.js} +1 -1
  57. package/chunks/{chunk-LYSZVCCD.js → chunk-7JMGTOH7.js} +427 -129
  58. package/chunks/{chunk-YOFULAHO.js → chunk-7RB56BRJ.js} +3 -3
  59. package/chunks/{chunk-6VHIWUJP.js → chunk-ADYN7P2Y.js} +2 -2
  60. package/chunks/{chunk-7DDTI7Q3.js → chunk-AHYTURFB.js} +1 -1
  61. package/chunks/{chunk-TNMOFNT4.js → chunk-ALUYNJPM.js} +1395 -2079
  62. package/chunks/{chunk-H2A2GJGL.js → chunk-AZJLY2XZ.js} +5 -5
  63. package/chunks/{chunk-BE5FGT5Z.js → chunk-BA4WJC4L.js} +1 -1
  64. package/chunks/{chunk-H5GPPDGY.js → chunk-BFY33IB4.js} +16 -8
  65. package/chunks/{chunk-RY7DL5IF.js → chunk-BJXCYUGM.js} +1 -1
  66. package/chunks/{chunk-ND7TQQPE.js → chunk-C2VWOXHS.js} +6 -6
  67. package/chunks/{chunk-T4RMUTTT.js → chunk-C4TIXFDZ.js} +2 -2
  68. package/chunks/{chunk-B2RIIK3K.js → chunk-CVX63TFJ.js} +3 -1
  69. package/chunks/{chunk-SMJYTKTB.js → chunk-DQCKVAF5.js} +1 -1
  70. package/chunks/{chunk-RLSPPTWH.js → chunk-DSX7KQPM.js} +438 -181
  71. package/chunks/{chunk-PNIGAVY6.js → chunk-DTVQSSNM.js} +2 -2
  72. package/chunks/{chunk-67AY5D3M.js → chunk-DYTW3QVG.js} +23 -8
  73. package/chunks/{chunk-3CZGSTZX.js → chunk-EBDGRBZX.js} +22 -14
  74. package/chunks/{chunk-DJBQCO2E.js → chunk-EFTPIZIC.js} +412 -3
  75. package/chunks/{chunk-QE7DTCLX.js → chunk-EIY7SUPZ.js} +1 -1
  76. package/chunks/{chunk-6OO7QEWV.js → chunk-EVFDRBUM.js} +97 -77
  77. package/chunks/{chunk-QTMPM6RC.js → chunk-EWRW2WQC.js} +3 -3
  78. package/chunks/{chunk-IIFL7QDN.js → chunk-F33GFWPR.js} +34 -11
  79. package/chunks/{chunk-YPISTYEI.js → chunk-F47DITLZ.js} +11 -1
  80. package/chunks/{chunk-OE5AQVNB.js → chunk-F7NF2IOE.js} +6 -6
  81. package/chunks/{chunk-RT4QNQ5P.js → chunk-FD5SJOWT.js} +8 -5
  82. package/chunks/{chunk-ACZ4YRYK.js → chunk-FRICLXCZ.js} +3 -3
  83. package/chunks/{chunk-IBMUI5EV.js → chunk-FUO5V5KI.js} +11 -4
  84. package/chunks/{chunk-T3TL6S3B.js → chunk-G5PBOQWI.js} +8 -5
  85. package/chunks/{chunk-D7D3HSYQ.js → chunk-G7HBEEX7.js} +12 -7
  86. package/chunks/{chunk-FXUSWLBF.js → chunk-GH2S4GD5.js} +133 -8
  87. package/chunks/{chunk-XPDKSOVW.js → chunk-GXUTFQXK.js} +42 -44
  88. package/chunks/{chunk-OSTQZIOY.js → chunk-H43PSPYS.js} +2 -2
  89. package/chunks/{chunk-UVYKCRJZ.js → chunk-HJBHMANB.js} +11 -13
  90. package/chunks/{chunk-WLEYH7CD.js → chunk-HRPFBHW7.js} +4 -0
  91. package/chunks/{chunk-DBTMP3P4.js → chunk-I2TMJPCV.js} +1 -1
  92. package/chunks/{chunk-EU2B4P3D.js → chunk-I4NRYS6A.js} +4 -4
  93. package/chunks/{chunk-JPKTAQS3.js → chunk-I5N4EAS6.js} +1 -1
  94. package/chunks/{chunk-W4BDHLRT.js → chunk-IG4W5SJR.js} +2 -2
  95. package/chunks/{chunk-BXNKREX7.js → chunk-IPATA3T2.js} +2 -2
  96. package/chunks/{chunk-NKLP3DCK.js → chunk-IQAFKVXS.js} +1 -1
  97. package/chunks/{chunk-AYHQZBJ4.js → chunk-IRKQ4YYX.js} +3 -3
  98. package/chunks/{chunk-J3NNHTV6.js → chunk-J5TTWBZK.js} +6 -0
  99. package/chunks/{chunk-AVNATYLY.js → chunk-JJKNYRFY.js} +1 -1
  100. package/chunks/{chunk-ERHAMGAA.js → chunk-JR42V4UY.js} +1 -1
  101. package/chunks/{chunk-NT7LXVV5.js → chunk-JUARRUMA.js} +362 -1084
  102. package/chunks/{chunk-OKMDOATP.js → chunk-KEVYJSI4.js} +11 -11
  103. package/chunks/{chunk-AF3QB6OL.js → chunk-KGV55H53.js} +1 -1
  104. package/chunks/{chunk-SDCHI64N.js → chunk-KM3XVTMO.js} +10 -4
  105. package/chunks/{chunk-ERRJA23L.js → chunk-KMU3ZHH4.js} +1 -1
  106. package/chunks/chunk-KOGW3YWJ.js +2054 -0
  107. package/chunks/{chunk-6NWPR2EB.js → chunk-L26ONV2Y.js} +5 -5
  108. package/chunks/chunk-L34XSHIZ.js +28 -0
  109. package/chunks/{chunk-UXEW7TQS.js → chunk-LB3WQQJK.js} +1 -1
  110. package/chunks/{chunk-YNG7XAJU.js → chunk-LEPCWS5A.js} +1 -1
  111. package/chunks/{chunk-XLENZQXH.js → chunk-LHBNR6EU.js} +2 -2
  112. package/chunks/{chunk-AKNQMSL2.js → chunk-LOBDDFYK.js} +4 -28
  113. package/chunks/{chunk-L6CUJZDG.js → chunk-LU77UT4D.js} +2 -2
  114. package/chunks/{chunk-3EGEBDTW.js → chunk-M4KFODIP.js} +1 -1
  115. package/chunks/{chunk-JLSZT354.js → chunk-M4LBBSVP.js} +2 -0
  116. package/chunks/{chunk-YOMKOM7E.js → chunk-MP6YZ4RK.js} +6580 -5992
  117. package/chunks/chunk-N2TNM3QB.js +9 -0
  118. package/chunks/{chunk-GDXSXL3H.js → chunk-NFIDVZND.js} +1 -1
  119. package/chunks/{chunk-NT5XIL5H.js → chunk-NQ4L2CMD.js} +51 -6
  120. package/chunks/{chunk-OQYXJK2V.js → chunk-NRL5CUZT.js} +1 -1
  121. package/chunks/{chunk-FIWZOMBF.js → chunk-NSUKQ4DN.js} +6 -0
  122. package/chunks/chunk-NUHOLAQ6.js +59 -0
  123. package/chunks/{chunk-BBYTY46C.js → chunk-NVVJTUSL.js} +266 -105
  124. package/chunks/{chunk-CAZADEU7.js → chunk-NXKOVOM5.js} +9 -9
  125. package/chunks/{chunk-5Q372OFJ.js → chunk-O4KNCAX4.js} +57 -10
  126. package/chunks/{chunk-GOXKNSDZ.js → chunk-O5CD7T4T.js} +40 -9
  127. package/chunks/{chunk-XIQ5HQ2F.js → chunk-OBTWL6ZW.js} +1 -1
  128. package/chunks/{chunk-5MK45KZ3.js → chunk-OHOO527W.js} +1 -1
  129. package/chunks/{chunk-CETB5XY4.js → chunk-ORFIYTI2.js} +1 -1
  130. package/chunks/{chunk-7E7UCJHS.js → chunk-OSHQMOBS.js} +18 -17
  131. package/chunks/{chunk-YDQ4OCDK.js → chunk-OSSTATJF.js} +89 -1
  132. package/chunks/chunk-P6UIF2OW.js +400 -0
  133. package/chunks/{chunk-V4HN35IF.js → chunk-PCRBLMIN.js} +16 -2
  134. package/chunks/{chunk-L2OKAIUK.js → chunk-QI27MKNQ.js} +23 -15
  135. package/chunks/{chunk-FHPYRXRH.js → chunk-QJGYU5PG.js} +1 -1
  136. package/chunks/{chunk-IVUWTA2D.js → chunk-QJVZLILI.js} +1 -1
  137. package/chunks/{chunk-TBJ3SNS3.js → chunk-QKDNS6FU.js} +1 -1
  138. package/chunks/{chunk-YKADANK6.js → chunk-QQD2GART.js} +10 -3
  139. package/chunks/{chunk-ED7DD7MV.js → chunk-RAFQIHN2.js} +1 -1
  140. package/chunks/{chunk-TV7BJ7TX.js → chunk-RJUVTJEZ.js} +1 -1
  141. package/chunks/{chunk-RVCGAHC7.js → chunk-RM4WT2XB.js} +4 -4
  142. package/chunks/{chunk-6YXNJXQW.js → chunk-RN3YGDCA.js} +3 -3
  143. package/chunks/{chunk-SMRDCANI.js → chunk-S6H3ELPG.js} +1 -1
  144. package/chunks/{chunk-MBZ5ORJB.js → chunk-SI7WDR3U.js} +281 -2
  145. package/chunks/{chunk-5FGWVPCM.js → chunk-SRF4KTAG.js} +4 -4
  146. package/chunks/{chunk-LFAR7CPW.js → chunk-STCVJXQB.js} +23 -23
  147. package/chunks/{chunk-JDIO45X7.js → chunk-SULZPKTA.js} +1 -1
  148. package/chunks/{chunk-KUDI54QQ.js → chunk-SX2QIMJV.js} +5 -5
  149. package/chunks/{chunk-VYSZUQGU.js → chunk-TJYRTS4S.js} +2 -2
  150. package/chunks/{chunk-JOTYTYYW.js → chunk-TMKTOTMQ.js} +3 -3
  151. package/chunks/{chunk-FPMQT2YY.js → chunk-TQHPVKO6.js} +4 -4
  152. package/chunks/{chunk-GN422P4J.js → chunk-TSZSGQ3N.js} +1 -1
  153. package/chunks/{chunk-IXEZHTDR.js → chunk-U4DJ5XB3.js} +292 -38
  154. package/chunks/{chunk-MZ5A5PQW.js → chunk-UAKRDON5.js} +4 -4
  155. package/chunks/{chunk-NGKLMNWN.js → chunk-UM2FFKXN.js} +2 -2
  156. package/chunks/{chunk-5ICKESC3.js → chunk-UPFRILIL.js} +2 -2
  157. package/chunks/{chunk-RAEEQEC5.js → chunk-UUASLXHW.js} +54 -5
  158. package/chunks/chunk-V5U2NZNJ.js +29 -0
  159. package/chunks/{chunk-P5Y23G2L.js → chunk-V7RNNPGC.js} +1 -18
  160. package/chunks/{chunk-ZYPJ7HVZ.js → chunk-VBWD6C27.js} +1 -1
  161. package/chunks/{chunk-MJBHSZEJ.js → chunk-VNAYZAFX.js} +3 -3
  162. package/chunks/chunk-VPSIC437.js +780 -0
  163. package/chunks/{chunk-AAX236AR.js → chunk-VWTSRH6C.js} +52 -11
  164. package/chunks/{chunk-PDXYZBBQ.js → chunk-VYIUNFEA.js} +2 -2
  165. package/chunks/{chunk-BY24DZ4J.js → chunk-WP4AX3XD.js} +5 -7
  166. package/chunks/{chunk-X7C7KFWA.js → chunk-XLXAZLDR.js} +1 -1
  167. package/chunks/{chunk-ZQ3FKEWA.js → chunk-YPWZTR7F.js} +3 -3
  168. package/chunks/{chunk-IXHV5MIC.js → chunk-ZDFQGHZH.js} +1 -1
  169. package/chunks/chunk-ZJ2LM2SI.js +198 -0
  170. package/chunks/{chunk-PWR2NQBS.js → chunk-ZKFTS3OV.js} +3 -3
  171. package/chunks/{chunk-HMJ2P3SV.js → chunk-ZL4HFSL6.js} +91 -29
  172. package/chunks/{chunk-ID33ZRWH.js → chunk-ZTPGUFQV.js} +28 -6
  173. package/chunks/chunk-bdqvmfwv-ZTSOWAFE.js +17446 -0
  174. package/chunks/{config-utils-NNUPVGEC.js → config-utils-LVSYDLHZ.js} +42 -46
  175. package/chunks/{contextCommand-S3TPCDM5.js → contextCommand-TZD7UAJK.js} +40 -44
  176. package/chunks/{core-runtime-NASPCSQX.js → core-runtime-B4UKKIAQ.js} +42 -46
  177. package/chunks/{create-sub-session-36TNCHCP.js → create-sub-session-LUPWEUHR.js} +2 -2
  178. package/chunks/{create-sub-session-DS4BJLYZ.js → create-sub-session-NJ24B4US.js} +41 -44
  179. package/chunks/{cron-create-QXHTYUTO.js → cron-create-CRSPET3H.js} +1 -1
  180. package/chunks/{cron-delete-WV2BM42M.js → cron-delete-DB77SZTU.js} +1 -1
  181. package/chunks/{cron-list-7KVNBLZ7.js → cron-list-U2JNYWV6.js} +1 -1
  182. package/chunks/{daemon-UCVUHPJD.js → daemon-RKDGBFLK.js} +385 -19
  183. package/chunks/{daemon-git-worktree-guard-ATXVQPS3.js → daemon-git-worktree-guard-O2HPOBAB.js} +40 -44
  184. package/chunks/{daemon-status-provider-UI3GBTMO.js → daemon-status-provider-GRRVCJFW.js} +47 -51
  185. package/chunks/{daemon-trust-policy-SUCBJ2CA.js → daemon-trust-policy-YJL442BK.js} +46 -50
  186. package/chunks/{daemon-trust-policy-monitor-3LM5RQNS.js → daemon-trust-policy-monitor-JL7F4Y4Q.js} +46 -50
  187. package/chunks/{deferred-core-runtime-SCOJLVYG.js → deferred-core-runtime-S32AYVZI.js} +39 -43
  188. package/chunks/{devtools-JCG4K2NZ.js → devtools-VDRJYPZF.js} +1 -1
  189. package/chunks/{discovery-X2NV535U.js → discovery-TUM3ZQ6U.js} +2 -2
  190. package/chunks/{display-image-Z4VBQDEJ.js → display-image-73C7XNRK.js} +3 -3
  191. package/chunks/{dist-7WDZYMWV.js → dist-62OZ7QXB.js} +2 -2
  192. package/chunks/{dist-FLJLHASF.js → dist-EDHQIBYD.js} +7 -7
  193. package/chunks/{dist-S3BKCTWF.js → dist-GT64AAUR.js} +1 -1
  194. package/chunks/{dist-GPSRNVVP.js → dist-JVXT4VUJ.js} +2 -2
  195. package/chunks/{dist-LY66XNUL.js → dist-L6URO6CK.js} +3 -3
  196. package/chunks/{dist-5423MG3D.js → dist-LXFYIJNG.js} +734 -128
  197. package/chunks/{dist-SDKHGH5O.js → dist-PDGNRVPY.js} +4 -4
  198. package/chunks/{dist-WAUO5OMN.js → dist-QAF5DO3Y.js} +363 -73
  199. package/chunks/{dist-WIVVPE7M.js → dist-ZCJLKQSP.js} +1 -1
  200. package/chunks/{earlyInputCapture-INWJ2STR.js → earlyInputCapture-BBPCIVZG.js} +38 -42
  201. package/chunks/{edit-B7ZRRGAE.js → edit-SUGXY63Y.js} +26 -30
  202. package/chunks/{en-E4AYTX6H.js → en-2RATMNX7.js} +2 -0
  203. package/chunks/{enter-worktree-SPZHEETQ.js → enter-worktree-B6USKSIK.js} +5 -5
  204. package/chunks/{enterPlanMode-S554IKJ2.js → enterPlanMode-MDX4RVVL.js} +26 -30
  205. package/chunks/{environment-25ADH4Y6.js → environment-VN6RXDVN.js} +41 -45
  206. package/chunks/{errors-G2I6LFTW.js → errors-UEY36PIT.js} +40 -44
  207. package/chunks/{exit-worktree-AWUXAMAM.js → exit-worktree-DLQ73SJH.js} +8 -6
  208. package/chunks/{exitPlanMode-ZFH4OYPM.js → exitPlanMode-EPHIEDAA.js} +26 -30
  209. package/chunks/{fast-path-WZHVZ2ER.js → fast-path-Y73R42LV.js} +3 -3
  210. package/chunks/{fast-path-settings-NILM6QZL.js → fast-path-settings-MFUR3IWK.js} +3 -3
  211. package/chunks/{glob-UOVDMBUP.js → glob-DMGH7EZN.js} +27 -31
  212. package/chunks/goal-tools-3RF3PXCL.js +99 -0
  213. package/chunks/{grep-LHYJ5V2N.js → grep-AJVLCVXC.js} +2 -2
  214. package/chunks/{handleAutoUpdate-4MZ45DZY.js → handleAutoUpdate-HVWQT2AU.js} +42 -46
  215. package/chunks/{i18n-KWUEI4DS.js → i18n-5OR7NTRZ.js} +39 -43
  216. package/chunks/{image-gen-YZDVO5YS.js → image-gen-VOIDOHOB.js} +1 -1
  217. package/chunks/{initializer-2NBROGMG.js → initializer-JE5RQSOE.js} +46 -50
  218. package/chunks/{installationInfo-YKUSY3ZB.js → installationInfo-KO3CCSCK.js} +38 -42
  219. package/chunks/{list-W2WV3COM.js → list-3IORSFIY.js} +49 -53
  220. package/chunks/{list-agents-PMVMHNY7.js → list-agents-SBMONIUK.js} +3 -3
  221. package/chunks/{llm-NPPHLIJI.js → llm-K26SUDVK.js} +155 -99
  222. package/chunks/{llm-content-generator-YK3WN6XW.js → llm-content-generator-TT6EAUD4.js} +5 -6
  223. package/chunks/{loadedSettingsAdapter-2P7DFWUR.js → loadedSettingsAdapter-KLLFZF3M.js} +46 -50
  224. package/chunks/{loggingContentGenerator-QYYYGU6V.js → loggingContentGenerator-EYQBA4M4.js} +43 -47
  225. package/chunks/{loop-wakeup-EBM4F5MZ.js → loop-wakeup-QA6SHCZT.js} +2 -2
  226. package/chunks/{ls-F6TRX3DD.js → ls-HEJNCEYO.js} +1 -1
  227. package/chunks/{lsp-QYTOS2FI.js → lsp-WOQKNZP6.js} +1 -1
  228. package/chunks/{managed-npm-update-UMC4NBWW.js → managed-npm-update-HIJTODQT.js} +38 -42
  229. package/chunks/{mcp-OFI6XDP2.js → mcp-A2UEHETW.js} +46 -50
  230. package/chunks/{monitor-QX3BM3JY.js → monitor-DKNZQAB2.js} +28 -32
  231. package/chunks/{node-QKLNSZMX.js → node-UETAYMMO.js} +3 -3
  232. package/chunks/{nonInteractiveCli-NVRMD5MN.js → nonInteractiveCli-YA47F2F4.js} +86 -89
  233. package/chunks/{notebook-edit-AAILDPSV.js → notebook-edit-MGHTRL2D.js} +26 -30
  234. package/chunks/{openaiContentGenerator-53PB3CMN.js → openaiContentGenerator-ZJIEQ3ZJ.js} +15 -17
  235. package/chunks/{pidfile-5ACKG2LI.js → pidfile-ETHAZNMY.js} +38 -42
  236. package/chunks/{processUtils-2BCDO3DZ.js → processUtils-UY3SAJJZ.js} +2 -2
  237. package/chunks/{prompt-terminal-ledger-3RKW73A2.js → prompt-terminal-ledger-GZ747VYE.js} +39 -43
  238. package/chunks/{qwenContentGenerator-N4LLWDPH.js → qwenContentGenerator-VI4KATRY.js} +39 -43
  239. package/chunks/{read-file-DPAKXHYE.js → read-file-P7F4P7LV.js} +6 -8
  240. package/chunks/{read-mcp-resource-R4NO75DW.js → read-mcp-resource-GLAGB6R7.js} +1 -1
  241. package/chunks/{record-artifact-2EAYLAL5.js → record-artifact-SWVR7NSU.js} +3 -3
  242. package/chunks/renderer-selection-M4UN63VJ.js +99 -0
  243. package/chunks/{report-findings-Y4MSHDS3.js → report-findings-AL5YW3KI.js} +4 -4
  244. package/chunks/{request-shutdown-DWRMGTMB.js → request-shutdown-5YK4IZ54.js} +5 -5
  245. package/chunks/{resumeHistoryUtils-3JQORXAK.js → resumeHistoryUtils-DPZKFW24.js} +44 -48
  246. package/chunks/{ripGrep-AHF5QCI7.js → ripGrep-C7LJKUPZ.js} +9 -11
  247. package/chunks/{run-qwen-serve-3LKV7KDC.js → run-qwen-serve-OGTEEUR2.js} +132 -81
  248. package/chunks/{runtime-66F4W3IA.js → runtime-LNBLEMZS.js} +51 -55
  249. package/chunks/{scheduled-tasks-2NVKS5Q2.js → scheduled-tasks-FLDYZQOF.js} +44 -48
  250. package/chunks/{scheduler-JNV7T3ZO.js → scheduler-73YXGUGW.js} +40 -44
  251. package/chunks/{sdk-exporters-grpc-G5IT4XS4.js → sdk-exporters-grpc-MXTVSE3C.js} +2 -2
  252. package/chunks/{sdk-exporters-http-MFIWD23D.js → sdk-exporters-http-3JO5TJNU.js} +3 -3
  253. package/chunks/{sdk-impl-2RXJ4Q6X.js → sdk-impl-HZAUUTHJ.js} +5 -5
  254. package/chunks/{send-message-WPZRCJOB.js → send-message-JC7NJTY6.js} +7 -7
  255. package/chunks/{serve-GP2UNRP7.js → serve-3UR2H4CV.js} +46 -50
  256. package/chunks/{server-7W6C3SOW.js → server-AOYZVVOM.js} +1736 -502
  257. package/chunks/{session-PZLBAQGG.js → session-UAWFNFGI.js} +90 -93
  258. package/chunks/session-attachments-root-ZCGXQQTR.js +104 -0
  259. package/chunks/{session-pr-refresh-OIVL3U3Z.js → session-pr-refresh-CT2INROL.js} +131 -65
  260. package/chunks/{settings-ZOHIQWYK.js → settings-BHRGDASJ.js} +45 -49
  261. package/chunks/{shell-FWZT6IUR.js → shell-YHOGC7TO.js} +26 -30
  262. package/chunks/{skill-RTQC2YGA.js → skill-ZGBKNCHQ.js} +71 -49
  263. package/chunks/{skill-settings-AKMIXFSJ.js → skill-settings-AKSP665O.js} +45 -49
  264. package/chunks/{spawnChannel-ZP23JL6O.js → spawnChannel-N25MBB6F.js} +40 -44
  265. package/chunks/{standalone-update-P2Q5H4ZU.js → standalone-update-XGPWJDRN.js} +40 -44
  266. package/chunks/start-opentui-ui-FZ4USOU7.js +55342 -0
  267. package/chunks/{startInteractiveUI-NSA6QPQZ.js → startInteractiveUI-E2WQJUOA.js} +2920 -4542
  268. package/chunks/{syntheticOutput-5URSQLIS.js → syntheticOutput-HJNZSEHN.js} +2 -2
  269. package/chunks/{task-create-3EXVDG3G.js → task-create-6RSD54S5.js} +7 -7
  270. package/chunks/{task-list-PIBYNSE7.js → task-list-IQSACPOM.js} +31 -7
  271. package/chunks/{task-stop-IV3BYWJC.js → task-stop-HE2LRQNW.js} +1 -1
  272. package/chunks/{task-update-H5BPDS5Y.js → task-update-XAJ2NYOA.js} +7 -7
  273. package/chunks/{team-create-53T42W37.js → team-create-SOKMYSQU.js} +28 -32
  274. package/chunks/{team-delete-X3WPELS6.js → team-delete-NGNNKGMG.js} +1 -1
  275. package/chunks/{team-plan-approval-D45ZC5OE.js → team-plan-approval-U7ZWXYAY.js} +26 -30
  276. package/chunks/{terminal-image-renderer-FCRUWT6C.js → terminal-image-renderer-KKM4OBLO.js} +40 -44
  277. package/chunks/{theme-manager-MHNPEDP7.js → theme-manager-GQHF3A7T.js} +38 -42
  278. package/chunks/{todoWrite-A5IOZZ3P.js → todoWrite-5UTVUXHA.js} +36 -6
  279. package/chunks/{tool-search-6RPBGGUX.js → tool-search-IAI2RVWT.js} +10 -12
  280. package/chunks/{total-session-admission-MGV56XDK.js → total-session-admission-G4CGCSTG.js} +43 -47
  281. package/chunks/{trustedFolders-QJYEFMTU.js → trustedFolders-D2I3FDPB.js} +39 -43
  282. package/chunks/{update-relaunch-ZDMQX63C.js → update-relaunch-5RWKZAL3.js} +5 -5
  283. package/chunks/{updateCheck-4QZWCGP6.js → updateCheck-ZXOQDFEI.js} +42 -46
  284. package/chunks/{useAutoAcceptIndicator-DLIQN256.js → useAutoAcceptIndicator-6EK4QGAH.js} +49 -53
  285. package/chunks/{validateNonInterActiveAuth-HGTG7AEK.js → validateNonInterActiveAuth-QPFEKATS.js} +82 -86
  286. package/chunks/{version-CPAZMC4B.js → version-JKNG7YDH.js} +1 -1
  287. package/chunks/{web-fetch-N4K5M3M4.js → web-fetch-X3AHIIHW.js} +8 -11
  288. package/chunks/{web-search-4VZKM5SF.js → web-search-K2FMOGS5.js} +6 -7
  289. package/chunks/{web-shell-static-PW7OEDQO.js → web-shell-static-POZHGGXE.js} +4 -4
  290. package/chunks/{workflow-2ALQKTHG.js → workflow-TOLPAK5G.js} +38 -38
  291. package/chunks/{workspace-providers-status-5JM4CB6R.js → workspace-providers-status-PCJK3RC7.js} +50 -54
  292. package/chunks/{workspace-registration-store-RNMFVCH7.js → workspace-registration-store-KQWVVW4Y.js} +1 -1
  293. package/chunks/{workspace-registry-6EULAPZC.js → workspace-registry-YNIOB6HJ.js} +43 -47
  294. package/chunks/{workspace-runtime-coordinator-IRI2DRCJ.js → workspace-runtime-coordinator-WG2RNEN7.js} +43 -47
  295. package/chunks/{workspace-service-SETHN4WE.js → workspace-service-G4ZNBOFH.js} +51 -55
  296. package/chunks/{workspace-skills-status-4D4EUEQU.js → workspace-skills-status-FMTPPMWC.js} +47 -51
  297. package/chunks/{workspace-trust-reconciler-4LR3CDL4.js → workspace-trust-reconciler-IBDFQBQS.js} +53 -57
  298. package/chunks/wrapper-JH3IFHT2.js +35 -0
  299. package/chunks/{write-file-45GWPSOI.js → write-file-YTLFY2S5.js} +28 -32
  300. package/chunks/{zh-2BQ7P6OD.js → zh-25DF7OGK.js} +2 -0
  301. package/chunks/{zh-TW-UFXRZTXX.js → zh-TW-5EDMZVGK.js} +2 -0
  302. package/chunks/{zoom-image-K6IQUKRC.js → zoom-image-IFXSN74N.js} +6 -8
  303. package/cli.js +17 -13
  304. package/locales/en.js +3 -0
  305. package/locales/zh-TW.js +3 -0
  306. package/locales/zh.js +3 -0
  307. package/package.json +3 -3
  308. package/web-shell/assets/{abnfDiagram-VCTEODGH-C80OZcPP.js → abnfDiagram-VCTEODGH-Cxf7xE_Z.js} +1 -1
  309. package/web-shell/assets/{arc-AUqStYgf.js → arc-ESi1eNkE.js} +1 -1
  310. package/web-shell/assets/{architectureDiagram-5GKGNRK7-CQYOdYla.js → architectureDiagram-5GKGNRK7-D9l7-bDo.js} +1 -1
  311. package/web-shell/assets/{blockDiagram-NRAW4CY4-lYKlFysy.js → blockDiagram-NRAW4CY4-Bc8DEasw.js} +1 -1
  312. package/web-shell/assets/{c4Diagram-UCG6FXSJ-BoS23iIp.js → c4Diagram-UCG6FXSJ-Dimb2Hmh.js} +1 -1
  313. package/web-shell/assets/channel-B7ohGDil.js +1 -0
  314. package/web-shell/assets/{chunk-2Q5K7J3B-DLLooL1E.js → chunk-2Q5K7J3B-jVDmOpAQ.js} +1 -1
  315. package/web-shell/assets/{chunk-5VM5RSS4-kPfJxScY.js → chunk-5VM5RSS4-DbG_SwdB.js} +1 -1
  316. package/web-shell/assets/{chunk-F27PBJKO-CVGFBqkD.js → chunk-F27PBJKO-QEc4cY1v.js} +1 -1
  317. package/web-shell/assets/{chunk-G27WJ6UU-CnM_kOVV.js → chunk-G27WJ6UU-iJ36lQ3X.js} +1 -1
  318. package/web-shell/assets/{chunk-JWPE2WC7-Cj-ajOkT.js → chunk-JWPE2WC7-DuArnVtF.js} +1 -1
  319. package/web-shell/assets/{chunk-LCL6LL3I-8L5c-wFo.js → chunk-LCL6LL3I-DxOf1zwL.js} +1 -1
  320. package/web-shell/assets/{chunk-POPQ4Y6H-DsXTxpvL.js → chunk-POPQ4Y6H-lVLu9Ild.js} +1 -1
  321. package/web-shell/assets/{chunk-SVP7TREG-DU5GE1_z.js → chunk-SVP7TREG-C6XYlIer.js} +1 -1
  322. package/web-shell/assets/{chunk-XXDRQBXY-D2IIWZKt.js → chunk-XXDRQBXY-CiG2j2Ji.js} +1 -1
  323. package/web-shell/assets/classDiagram-DTDB5LWJ-DdFpqpfD.js +1 -0
  324. package/web-shell/assets/classDiagram-v2-JRS7N3AN-DdFpqpfD.js +1 -0
  325. package/web-shell/assets/{cose-bilkent-JH36ORCC-CF_txUJr.js → cose-bilkent-JH36ORCC-DGVHMMVm.js} +1 -1
  326. package/web-shell/assets/{cynefin-OW5HDTMX-DEZ-My-Z.js → cynefin-OW5HDTMX-D6cgpCnH.js} +1 -1
  327. package/web-shell/assets/{cynefinDiagram-5FMLGOSQ-BV7EKUS6.js → cynefinDiagram-5FMLGOSQ-BKv4Z-UX.js} +1 -1
  328. package/web-shell/assets/{dagre-3AP2YEHR-JGIX0G4H.js → dagre-3AP2YEHR-B4ABMIG-.js} +1 -1
  329. package/web-shell/assets/{diagram-S7CK7UJ4-DdUY7q6A.js → diagram-S7CK7UJ4-DgCkp_Lm.js} +1 -1
  330. package/web-shell/assets/{diagram-UQ7AKVKN-fhzRZ19v.js → diagram-UQ7AKVKN-FG0FNokz.js} +1 -1
  331. package/web-shell/assets/{diagram-VSXAHHWV-BOgOex6q.js → diagram-VSXAHHWV-JgkP9qg-.js} +1 -1
  332. package/web-shell/assets/{diagram-VX7I27RA-C0NknIz6.js → diagram-VX7I27RA-ADh2x83l.js} +1 -1
  333. package/web-shell/assets/{diagram-Z3DM3KII-C__3mUBX.js → diagram-Z3DM3KII-yXqoYF1J.js} +1 -1
  334. package/web-shell/assets/{ebnfDiagram-PWID7BFC-BvPhqycH.js → ebnfDiagram-PWID7BFC-Duk83Ek_.js} +1 -1
  335. package/web-shell/assets/{erDiagram-SSCWMZ5O-BqzoNoL9.js → erDiagram-SSCWMZ5O-DMdvxySG.js} +1 -1
  336. package/web-shell/assets/{flowDiagram-A5DVABFB-CJKOre47.js → flowDiagram-A5DVABFB-DHjVgSji.js} +1 -1
  337. package/web-shell/assets/{ganttDiagram-EL5Y4UJY-C5xZjrp0.js → ganttDiagram-EL5Y4UJY-DMM9DkCE.js} +1 -1
  338. package/web-shell/assets/{gitGraphDiagram-WWUBYQGX-C0EjwuPK.js → gitGraphDiagram-WWUBYQGX-t_ug9vO8.js} +1 -1
  339. package/web-shell/assets/index-BGZRqbRo.css +36 -0
  340. package/web-shell/assets/index-DRri_6_x.js +2067 -0
  341. package/web-shell/assets/{index-C5M93syE.js → index-zqvnpGHv.js} +1 -1
  342. package/web-shell/assets/{infoDiagram-RXCK75RN-BUwzsYOs.js → infoDiagram-RXCK75RN-eT1fANNm.js} +1 -1
  343. package/web-shell/assets/{ishikawaDiagram-5VMMS53U-EDJ_DH3V.js → ishikawaDiagram-5VMMS53U-k3evzZNn.js} +1 -1
  344. package/web-shell/assets/{journeyDiagram-EYS64GPL-BnfcOsS0.js → journeyDiagram-EYS64GPL-CGim3EAi.js} +1 -1
  345. package/web-shell/assets/{kanban-definition-3QL26DDD-D_ofTVGu.js → kanban-definition-3QL26DDD-WHfJo-22.js} +1 -1
  346. package/web-shell/assets/{layout-CBuQFdfZ.js → layout-DkqIaFlJ.js} +1 -1
  347. package/web-shell/assets/{linear-DRIHtmGv.js → linear-Bdkd3mCz.js} +1 -1
  348. package/web-shell/assets/{mermaid.core-CmR5wZH6.js → mermaid.core-CGw0LkT_.js} +6 -6
  349. package/web-shell/assets/{mindmap-definition-FBJOCRG2-BV374olC.js → mindmap-definition-FBJOCRG2-C9V4rBvo.js} +1 -1
  350. package/web-shell/assets/{pegDiagram-XKGWAZYB-Bpy1SplK.js → pegDiagram-XKGWAZYB-CwoI2T5G.js} +1 -1
  351. package/web-shell/assets/{pieDiagram-E7YTZNPT-CeZx4hR2.js → pieDiagram-E7YTZNPT-DaTmBmPG.js} +1 -1
  352. package/web-shell/assets/{quadrantDiagram-AXDQQJYC-COYKs14h.js → quadrantDiagram-AXDQQJYC-plh6MyGI.js} +1 -1
  353. package/web-shell/assets/{railroadDiagram-O6MQD6OU-5g2pOeTs.js → railroadDiagram-O6MQD6OU-D_b-S0iK.js} +1 -1
  354. package/web-shell/assets/{requirementDiagram-EFPCY7ZU-Yn8uPGtF.js → requirementDiagram-EFPCY7ZU-zUzTN7VE.js} +1 -1
  355. package/web-shell/assets/{sankeyDiagram-P5KCCOFB-CTayAGq6.js → sankeyDiagram-P5KCCOFB-m6AhoD0l.js} +1 -1
  356. package/web-shell/assets/{sequenceDiagram-WJ2MYXX4-BFWDKzUU.js → sequenceDiagram-WJ2MYXX4-Cwhzsine.js} +1 -1
  357. package/web-shell/assets/{sizeCapture-X5ZJPWSS-CtErUbj4.js → sizeCapture-X5ZJPWSS-CcZuKIae.js} +1 -1
  358. package/web-shell/assets/{stateDiagram-HBIQ2CUA-Co3HFzOd.js → stateDiagram-HBIQ2CUA-CFoiJwD_.js} +1 -1
  359. package/web-shell/assets/stateDiagram-v2-4QOOHH4V--H8HdEmk.js +1 -0
  360. package/web-shell/assets/{swimlanes-XN3QIQJK-CDZuxzOj.js → swimlanes-XN3QIQJK-CgS9hcaV.js} +1 -1
  361. package/web-shell/assets/swimlanesDiagram-VK2B7HYN-ShE9OIgf.js +8 -0
  362. package/web-shell/assets/{timeline-definition-24CTP7MA-UcNHj8At.js → timeline-definition-24CTP7MA-Dzzc05t9.js} +1 -1
  363. package/web-shell/assets/{vennDiagram-4TSXK5OY-JKR9pVFG.js → vennDiagram-4TSXK5OY-DemK0f7Y.js} +1 -1
  364. package/web-shell/assets/{wardleyDiagram-VM6X3IG4-C4SU-yIW.js → wardleyDiagram-VM6X3IG4-CquLxtMr.js} +1 -1
  365. package/web-shell/assets/{xychartDiagram-S5SC5T6Z-D_yoWGZ4.js → xychartDiagram-S5SC5T6Z-BTBKTM5g.js} +1 -1
  366. package/web-shell/index.html +2 -2
  367. package/chunks/chunk-4P7PPAHN.js +0 -3097
  368. package/chunks/chunk-7J6OTNGO.js +0 -424
  369. package/chunks/chunk-LMMHS3RS.js +0 -135
  370. package/chunks/chunk-MZYWNU66.js +0 -149
  371. package/chunks/chunk-T4EFG2P5.js +0 -113
  372. package/chunks/chunk-XZA32HII.js +0 -19
  373. package/chunks/goal-tools-7TNK5ZHC.js +0 -411
  374. package/web-shell/assets/channel-B0ovOJeK.js +0 -1
  375. package/web-shell/assets/classDiagram-DTDB5LWJ-DMll2-6_.js +0 -1
  376. package/web-shell/assets/classDiagram-v2-JRS7N3AN-DMll2-6_.js +0 -1
  377. package/web-shell/assets/index-B_IPzA0h.js +0 -2020
  378. package/web-shell/assets/index-D1OKGQlM.css +0 -36
  379. package/web-shell/assets/stateDiagram-v2-4QOOHH4V-C3gdRjPm.js +0 -1
  380. package/web-shell/assets/swimlanesDiagram-VK2B7HYN-C34TGCPZ.js +0 -8
  381. /package/chunks/{chunk-FOGQO4FG.js → chunk-JA5CBKRP.js} +0 -0
@@ -23,14 +23,12 @@ import {
23
23
  SessionConflictError,
24
24
  SessionNotArchivedError,
25
25
  SessionNotFoundError
26
- } from "./chunk-YPISTYEI.js";
27
- import {
28
- gitEnv
29
- } from "./chunk-NT7LXVV5.js";
26
+ } from "./chunk-F47DITLZ.js";
30
27
  import {
31
28
  readWorktreeSession
32
- } from "./chunk-ED7DD7MV.js";
29
+ } from "./chunk-RAFQIHN2.js";
33
30
  import {
31
+ SESSION_PR_LIST_LIMIT,
34
32
  SESSION_PR_URL_MAX_LENGTH,
35
33
  SessionIdCaseConflictError,
36
34
  SessionOrganizationError,
@@ -39,8 +37,10 @@ import {
39
37
  SessionTranscriptChangedError,
40
38
  SessionWriterUnavailableError,
41
39
  canonicalSessionPrUrl,
42
- readSessionPrs
43
- } from "./chunk-ZBDYI7VM.js";
40
+ gitEnv,
41
+ readSessionPrs,
42
+ toSessionPrInfo
43
+ } from "./chunk-4F7GQGXB.js";
44
44
  import {
45
45
  updateCronTasks
46
46
  } from "./chunk-UJ4DUYIH.js";
@@ -49,7 +49,7 @@ import {
49
49
  } from "./chunk-ZHO2CW6D.js";
50
50
  import {
51
51
  addDaemonRequestAttribute
52
- } from "./chunk-UXEW7TQS.js";
52
+ } from "./chunk-LB3WQQJK.js";
53
53
  import {
54
54
  Storage
55
55
  } from "./chunk-EAHOJF6V.js";
@@ -479,6 +479,7 @@ function toSummary(item) {
479
479
  createdAt: item.startTime,
480
480
  updatedAt: new Date(item.mtime).toISOString(),
481
481
  displayName: item.customTitle || item.prompt,
482
+ ...item.customTitle && item.titleSource ? { titleSource: item.titleSource } : {},
482
483
  ...item.parentSessionId ? { parentSessionId: item.parentSessionId } : {},
483
484
  ...item.sourceType ? { sourceType: item.sourceType } : {},
484
485
  ...item.sourceId !== void 0 ? { sourceId: item.sourceId } : {},
@@ -511,27 +512,43 @@ function mergeLiveSessionSummary(existing, live) {
511
512
  }
512
513
  __name(mergeLiveSessionSummary, "mergeLiveSessionSummary");
513
514
  function sidecarToPrInfos(sidecar) {
514
- return sidecar.map(({ number, url, state }) => ({
515
- number,
516
- url,
517
- ...state ? { state } : {}
518
- }));
515
+ return sidecar.map(toSessionPrInfo);
519
516
  }
520
517
  __name(sidecarToPrInfos, "sidecarToPrInfos");
521
518
  function mergeSummaryPrs(persistedPrs, livePrs) {
522
519
  const live = livePrs ?? [];
523
- const persistedByNumber = new Map(
524
- (persistedPrs ?? []).map((p) => [p.number, p])
525
- );
526
- return [
527
- ...(persistedPrs ?? []).filter(
528
- (p) => !live.some((l) => l.number === p.number)
529
- ),
530
- ...live.map((l) => {
531
- const persisted = persistedByNumber.get(l.number);
532
- return persisted?.state !== void 0 && persisted.state !== l.state ? { ...l, state: persisted.state } : l;
533
- })
534
- ];
520
+ const persisted = persistedPrs ?? [];
521
+ const liveByNumber = new Map(live.map((l) => [l.number, l]));
522
+ const persistedNumbers = new Set(persisted.map((p) => p.number));
523
+ const consumedLive = /* @__PURE__ */ new Set();
524
+ const ordered = [];
525
+ for (const p of persisted) {
526
+ const liveEntry = liveByNumber.get(p.number);
527
+ if (!liveEntry) {
528
+ ordered.push(p);
529
+ continue;
530
+ }
531
+ const samePr = canonicalSessionPrUrl(p.url) === canonicalSessionPrUrl(liveEntry.url);
532
+ const matchedTwinExists = persisted.some(
533
+ (q) => q.number === p.number && canonicalSessionPrUrl(q.url) === canonicalSessionPrUrl(liveEntry.url)
534
+ );
535
+ if (!samePr && matchedTwinExists) continue;
536
+ if (consumedLive.has(p.number)) continue;
537
+ consumedLive.add(p.number);
538
+ ordered.push(
539
+ samePr ? {
540
+ ...liveEntry,
541
+ ...p.state ? { state: p.state } : {},
542
+ ...p.issues ? { issues: p.issues } : {}
543
+ } : p
544
+ );
545
+ }
546
+ for (const liveEntry of live) {
547
+ if (!persistedNumbers.has(liveEntry.number) && persisted.length < SESSION_PR_LIST_LIMIT) {
548
+ ordered.push(liveEntry);
549
+ }
550
+ }
551
+ return ordered.slice(-SESSION_PR_LIST_LIMIT);
535
552
  }
536
553
  __name(mergeSummaryPrs, "mergeSummaryPrs");
537
554
  async function liveOnlySummary(live, sessionService, signal) {
@@ -1213,6 +1230,55 @@ async function listLiveWorkspaceSessionsForResponse(bridge, workspaceCwd, option
1213
1230
  });
1214
1231
  }
1215
1232
  __name(listLiveWorkspaceSessionsForResponse, "listLiveWorkspaceSessionsForResponse");
1233
+ async function searchWorkspaceSessionsForResponse(workspaceCwd, query, options = {}, readOptions = {}) {
1234
+ readOptions.signal?.throwIfAborted();
1235
+ const runtimeBaseDir = new Storage(
1236
+ workspaceCwd,
1237
+ readOptions.runtimeBaseDir
1238
+ ).getRuntimeBaseDir();
1239
+ return Storage.runWithResolvedRuntimeBaseDir(runtimeBaseDir, async () => {
1240
+ const sessionService = new SessionService(workspaceCwd);
1241
+ const hits = await sessionService.searchSessionContent(query, {
1242
+ ...options.maxResults !== void 0 ? { maxResults: options.maxResults } : {},
1243
+ ...readOptions.signal ? { signal: readOptions.signal } : {}
1244
+ });
1245
+ const bySessionId = /* @__PURE__ */ new Map();
1246
+ const organizationSnapshot = await createSessionOrganizationService(workspaceCwd).readSnapshot();
1247
+ readOptions.signal?.throwIfAborted();
1248
+ for (const hit of hits) {
1249
+ readOptions.signal?.throwIfAborted();
1250
+ const item = await sessionService.getSessionListItem(hit.sessionId);
1251
+ if (item)
1252
+ bySessionId.set(
1253
+ hit.sessionId,
1254
+ applyOrganization(
1255
+ toSummary(item),
1256
+ organizationSnapshot.sessions.get(hit.sessionId)
1257
+ )
1258
+ );
1259
+ }
1260
+ await enrichWorktreeSidecars(
1261
+ bySessionId,
1262
+ sessionService,
1263
+ "active",
1264
+ readOptions.signal
1265
+ );
1266
+ await enrichPrSidecars(
1267
+ bySessionId,
1268
+ sessionService,
1269
+ "active",
1270
+ readOptions.signal
1271
+ );
1272
+ readOptions.signal?.throwIfAborted();
1273
+ const results = [];
1274
+ for (const hit of hits) {
1275
+ const session = bySessionId.get(hit.sessionId);
1276
+ if (session) results.push({ session, snippet: hit.snippet });
1277
+ }
1278
+ return { results };
1279
+ });
1280
+ }
1281
+ __name(searchWorkspaceSessionsForResponse, "searchWorkspaceSessionsForResponse");
1216
1282
  async function getWorkspaceSessionInfoForResponse(bridge, workspaceCwd, options = {}) {
1217
1283
  const counts = await new SessionService(workspaceCwd).getSessionInfoCounts();
1218
1284
  return {
@@ -1817,7 +1883,11 @@ async function deleteDaemonSessionIfOrphan(params) {
1817
1883
  if (!killed) {
1818
1884
  return void 0;
1819
1885
  }
1820
- return deletePersistedSessionWithLease(service, sessionId);
1886
+ const removal = await deletePersistedSessionWithLease(service, sessionId);
1887
+ if (removal.kind !== "error") {
1888
+ await bridge.deleteSessionAttachments(sessionId);
1889
+ }
1890
+ return removal;
1821
1891
  });
1822
1892
  if (result === void 0) {
1823
1893
  return false;
@@ -2307,8 +2377,6 @@ var GIT_ORIGIN_TIMEOUT_MS = 5e3;
2307
2377
  var A1_VERSION_TIMEOUT_MS = 1e4;
2308
2378
  var A1_ERROR_MESSAGE_MAX = 512;
2309
2379
  var AONE_DETAIL_URL_HOST = "code.alibaba-inc.com";
2310
- var AONE_MR_LIST_PAGE_SIZE = 20;
2311
- var AONE_BACKFILL_PAGES_PER_STATE = 3;
2312
2380
  var AONE_MAX_MR_VIEW_CALLS_PER_RUN = 25;
2313
2381
  var AoneCliUnavailableError = class extends Error {
2314
2382
  static {
@@ -2444,53 +2512,6 @@ async function checkA1Available() {
2444
2512
  a1AvailabilityVerified = true;
2445
2513
  }
2446
2514
  __name(checkA1Available, "checkA1Available");
2447
- function parseAoneMrListPage(raw) {
2448
- if (!Array.isArray(raw)) {
2449
- throw new AoneCommandError("unexpected a1 mr list output");
2450
- }
2451
- const entries = [];
2452
- for (const item of raw) {
2453
- if (item === null || typeof item !== "object") continue;
2454
- const v = item;
2455
- if (typeof v["id"] !== "number" || !Number.isInteger(v["id"]) || v["id"] <= 0) {
2456
- continue;
2457
- }
2458
- entries.push({
2459
- number: v["id"],
2460
- headRefName: typeof v["sourceBranch"] === "string" ? v["sourceBranch"] : "",
2461
- state: mapAoneMrState(
2462
- typeof v["state"] === "string" ? v["state"] : void 0
2463
- )
2464
- });
2465
- }
2466
- return entries;
2467
- }
2468
- __name(parseAoneMrListPage, "parseAoneMrListPage");
2469
- async function listAoneMergeRequests(repoPath, options) {
2470
- await checkA1Available();
2471
- const entries = [];
2472
- const pages = Math.max(options.pages, 1);
2473
- for (let page = 1; page <= pages; page++) {
2474
- const parsed = await runA1Json([
2475
- "repo",
2476
- "mr",
2477
- "list",
2478
- "--repo",
2479
- repoPath,
2480
- "--state",
2481
- options.state,
2482
- "--page",
2483
- String(page)
2484
- ]);
2485
- const pageEntries = parseAoneMrListPage(parsed);
2486
- entries.push(...pageEntries);
2487
- if (Array.isArray(parsed) && parsed.length < AONE_MR_LIST_PAGE_SIZE) {
2488
- break;
2489
- }
2490
- }
2491
- return entries;
2492
- }
2493
- __name(listAoneMergeRequests, "listAoneMergeRequests");
2494
2515
  function hasControlCharacter(value) {
2495
2516
  return Array.from(value).some((character) => {
2496
2517
  const code = character.charCodeAt(0);
@@ -2537,7 +2558,6 @@ async function viewAoneMergeRequest(repoPath, id) {
2537
2558
  }
2538
2559
  __name(viewAoneMergeRequest, "viewAoneMergeRequest");
2539
2560
  var defaultAoneMrBackend = {
2540
- list: /* @__PURE__ */ __name((repoPath, state, pages) => listAoneMergeRequests(repoPath, { state, pages }), "list"),
2541
2561
  view: viewAoneMergeRequest
2542
2562
  };
2543
2563
 
@@ -2548,6 +2568,7 @@ export {
2548
2568
  InvalidCursorError,
2549
2569
  listWorkspaceSessionsForResponse,
2550
2570
  listLiveWorkspaceSessionsForResponse,
2571
+ searchWorkspaceSessionsForResponse,
2551
2572
  getWorkspaceSessionInfoForResponse,
2552
2573
  parseSessionPageSizeQuery,
2553
2574
  runWithWorkspaceRuntimeStorage,
@@ -2563,7 +2584,6 @@ export {
2563
2584
  logSessionArchiveWarning,
2564
2585
  archiveDaemonSessions,
2565
2586
  unarchiveDaemonSessions,
2566
- AONE_BACKFILL_PAGES_PER_STATE,
2567
2587
  AONE_MAX_MR_VIEW_CALLS_PER_RUN,
2568
2588
  resolveAoneWorkspaceRepo,
2569
2589
  isAoneDetailUrlForRepo,
@@ -27,10 +27,10 @@ import {
27
27
  } from "./chunk-3VUENPWF.js";
28
28
  import {
29
29
  loadSettings
30
- } from "./chunk-AAX236AR.js";
30
+ } from "./chunk-VWTSRH6C.js";
31
31
  import {
32
32
  MCP_BUDGET_WARN_FRACTION
33
- } from "./chunk-ZBDYI7VM.js";
33
+ } from "./chunk-4F7GQGXB.js";
34
34
  import {
35
35
  parsePositiveIntegerEnv
36
36
  } from "./chunk-6PVPNMXU.js";
@@ -447,7 +447,7 @@ var serveCommand = {
447
447
  delete process.env[EXTERNAL_TOOL_GUARD_TOKEN_ENV];
448
448
  const openWithAuth = argv["open-with-auth"];
449
449
  const open = argv.open || openWithAuth;
450
- const { runQwenServe } = await import("./run-qwen-serve-3LKV7KDC.js");
450
+ const { runQwenServe } = await import("./run-qwen-serve-OGTEEUR2.js");
451
451
  try {
452
452
  const serveOptions = {
453
453
  port: argv.port,
@@ -12,7 +12,7 @@ import {
12
12
  OpenAIContentConverter,
13
13
  TaggedThinkingParser,
14
14
  openaiRequestCaptureContext
15
- } from "./chunk-ID33ZRWH.js";
15
+ } from "./chunk-ZTPGUFQV.js";
16
16
  import {
17
17
  safeJsonParse
18
18
  } from "./chunk-ANVG3BVV.js";
@@ -31,10 +31,10 @@ import {
31
31
  import {
32
32
  DashScopeOpenAICompatibleProvider,
33
33
  DefaultOpenAICompatibleProvider
34
- } from "./chunk-RT4QNQ5P.js";
34
+ } from "./chunk-FD5SJOWT.js";
35
35
  import {
36
36
  getCurrentAgentId
37
- } from "./chunk-26SIKQIC.js";
37
+ } from "./chunk-4LIFGNI4.js";
38
38
  import {
39
39
  InvalidStreamError,
40
40
  getToolCallPreparations
@@ -52,7 +52,7 @@ import {
52
52
  import {
53
53
  ProtocolTagSanitizedEvent,
54
54
  logProtocolTagSanitized
55
- } from "./chunk-FXUSWLBF.js";
55
+ } from "./chunk-GH2S4GD5.js";
56
56
  import {
57
57
  isQwenFamilyWireModel,
58
58
  isTieredEffortWireModel
@@ -65,7 +65,7 @@ import {
65
65
  } from "./chunk-22UH7VTP.js";
66
66
  import {
67
67
  isInForkExecution
68
- } from "./chunk-D7D3HSYQ.js";
68
+ } from "./chunk-G7HBEEX7.js";
69
69
  import {
70
70
  createDebugLogger,
71
71
  getErrorMessage,
@@ -75,7 +75,7 @@ import {
75
75
  } from "./chunk-EAHOJF6V.js";
76
76
  import {
77
77
  GenerateContentResponse
78
- } from "./chunk-64REQJJ2.js";
78
+ } from "./chunk-5H5S4UY5.js";
79
79
  import {
80
80
  init_esbuild_shims
81
81
  } from "./chunk-5O2XNYP6.js";
@@ -1047,6 +1047,18 @@ function isRequiredThinkingError(error) {
1047
1047
  return message.includes("enable_thinking") && /(?:restricted to|must be) true\b/i.test(message);
1048
1048
  }
1049
1049
  __name(isRequiredThinkingError, "isRequiredThinkingError");
1050
+ function wireRequestHasMediaContent(wireRequest) {
1051
+ const messages = wireRequest?.["messages"];
1052
+ if (!Array.isArray(messages)) return false;
1053
+ return messages.some((message) => {
1054
+ const content = message.content;
1055
+ return Array.isArray(content) && content.some((part) => {
1056
+ const type = part.type;
1057
+ return type === "image_url" || type === "input_audio" || type === "video_url" || type === "file";
1058
+ });
1059
+ });
1060
+ }
1061
+ __name(wireRequestHasMediaContent, "wireRequestHasMediaContent");
1050
1062
  var StreamContentError = class extends Error {
1051
1063
  static {
1052
1064
  __name(this, "StreamContentError");
@@ -1331,7 +1343,7 @@ var ContentGenerationPipeline = class {
1331
1343
  ];
1332
1344
  yield response;
1333
1345
  }
1334
- } else if (context.pendingThinkingTagCandidate) {
1346
+ } else if (context.pendingThinkingTagCandidate || context.responseParsingOptions?.taggedThinkingTagsAfterReasoning && context.taggedThinkingParser?.hasUnclosedThought()) {
1335
1347
  throw new InvalidStreamError(
1336
1348
  "Model response leaked thinking tags.",
1337
1349
  "PROTOCOL_TAG_LEAK"
@@ -1617,17 +1629,17 @@ var ContentGenerationPipeline = class {
1617
1629
  async executeWithErrorHandling(request, userPromptId, isStreaming, executor) {
1618
1630
  const context = this.createRequestContext(request, isStreaming);
1619
1631
  let openaiRequest;
1620
- const executeAttempt = /* @__PURE__ */ __name(async () => {
1632
+ const executeAttempt = /* @__PURE__ */ __name(async (attemptContext = context) => {
1621
1633
  openaiRequest = await this.buildRequest(
1622
1634
  request,
1623
1635
  userPromptId,
1624
- context,
1636
+ attemptContext,
1625
1637
  isStreaming
1626
1638
  );
1627
1639
  openaiRequestCaptureContext.getStore()?.(openaiRequest);
1628
1640
  runtimeDiagnostics.recordOpenAIWireRequest(openaiRequest);
1629
1641
  const telemetryAttempt = reportOpenAiRequest(openaiRequest);
1630
- return executor(openaiRequest, context, telemetryAttempt);
1642
+ return executor(openaiRequest, attemptContext, telemetryAttempt);
1631
1643
  }, "executeAttempt");
1632
1644
  try {
1633
1645
  return await executeAttempt();
@@ -1650,6 +1662,17 @@ var ContentGenerationPipeline = class {
1650
1662
  return await this.handleError(retryError, context, request);
1651
1663
  }
1652
1664
  }
1665
+ if (request.config?.abortSignal?.aborted !== true && getErrorStatus(error) === 400 && wireRequestHasMediaContent(wireRequest)) {
1666
+ debugLogger3.warn(
1667
+ "Media-bearing request rejected with 400; retrying once with media degraded to placeholders",
1668
+ { model, originalError: getErrorMessage(error) }
1669
+ );
1670
+ try {
1671
+ return await executeAttempt({ ...context, modalities: {} });
1672
+ } catch (retryError) {
1673
+ return await this.handleError(retryError, context, request);
1674
+ }
1675
+ }
1653
1676
  return await this.handleError(error, context, request);
1654
1677
  }
1655
1678
  }
@@ -1667,7 +1690,7 @@ var ContentGenerationPipeline = class {
1667
1690
  const effectiveModel = request.model || this.contentGeneratorConfig.model;
1668
1691
  const providerOverrides = this.config.provider.getRequestContextOverrides?.() ?? {};
1669
1692
  const toolCallParser = isStreaming ? new StreamingToolCallParser() : void 0;
1670
- const responseParsingOptions = this.config.provider.getResponseParsingOptions?.();
1693
+ const responseParsingOptions = this.config.provider.getResponseParsingOptions?.(effectiveModel);
1671
1694
  const taggedThinkingParser = isStreaming && responseParsingOptions?.taggedThinkingTags ? new TaggedThinkingParser() : void 0;
1672
1695
  return {
1673
1696
  model: effectiveModel,
@@ -473,6 +473,15 @@ var CdWhilePromptActiveError = class extends Error {
473
473
  this.sessionId = sessionId;
474
474
  }
475
475
  };
476
+ var McpAuthenticationInProgressError = class extends Error {
477
+ static {
478
+ __name(this, "McpAuthenticationInProgressError");
479
+ }
480
+ constructor() {
481
+ super("Another MCP authentication is already in progress");
482
+ this.name = "McpAuthenticationInProgressError";
483
+ }
484
+ };
476
485
 
477
486
  export {
478
487
  NOT_CURRENTLY_GENERATING_CANCEL_MESSAGE,
@@ -509,7 +518,8 @@ export {
509
518
  BridgeChannelQuarantinedError,
510
519
  InvalidRewindTargetError,
511
520
  BranchWhilePromptActiveError,
512
- CdWhilePromptActiveError
521
+ CdWhilePromptActiveError,
522
+ McpAuthenticationInProgressError
513
523
  };
514
524
  /**
515
525
  * @license
@@ -2,23 +2,23 @@
2
2
  "use strict";
3
3
  import {
4
4
  getExtensionManager
5
- } from "./chunk-H2A2GJGL.js";
5
+ } from "./chunk-AZJLY2XZ.js";
6
6
  import {
7
7
  parseChannelConfig
8
- } from "./chunk-V4HN35IF.js";
8
+ } from "./chunk-PCRBLMIN.js";
9
9
  import {
10
10
  getPlugin,
11
11
  registerPlugin
12
- } from "./chunk-CAZADEU7.js";
12
+ } from "./chunk-NXKOVOM5.js";
13
13
  import {
14
14
  sanitizeLogText
15
- } from "./chunk-IXEZHTDR.js";
15
+ } from "./chunk-U4DJ5XB3.js";
16
16
  import {
17
17
  loadSettings
18
- } from "./chunk-AAX236AR.js";
18
+ } from "./chunk-VWTSRH6C.js";
19
19
  import {
20
20
  hashDaemonWorkspace
21
- } from "./chunk-UXEW7TQS.js";
21
+ } from "./chunk-LB3WQQJK.js";
22
22
  import {
23
23
  Storage
24
24
  } from "./chunk-EAHOJF6V.js";
@@ -6890,10 +6890,10 @@ var OPENAI_COMPATIBLE_EFFORTS = [
6890
6890
  "high",
6891
6891
  "xhigh"
6892
6892
  ];
6893
- function shouldMirrorReasoningContentForQwen3(model) {
6893
+ function isQwen3Model(model) {
6894
6894
  return model.toLowerCase().includes("qwen3");
6895
6895
  }
6896
- __name(shouldMirrorReasoningContentForQwen3, "shouldMirrorReasoningContentForQwen3");
6896
+ __name(isQwen3Model, "isQwen3Model");
6897
6897
  function mirrorReasoningContentToReasoning(message) {
6898
6898
  if (message.role !== "assistant") {
6899
6899
  return message;
@@ -7012,7 +7012,7 @@ var DefaultOpenAICompatibleProvider = class {
7012
7012
  const requestWithTokenLimits = this.clampConfiguredReasoningEffort(
7013
7013
  this.applyOutputTokenLimit(request)
7014
7014
  );
7015
- const messages = shouldMirrorReasoningContentForQwen3(request.model) ? requestWithTokenLimits.messages.map(mirrorReasoningContentToReasoning) : requestWithTokenLimits.messages;
7015
+ const messages = isQwen3Model(request.model) ? requestWithTokenLimits.messages.map(mirrorReasoningContentToReasoning) : requestWithTokenLimits.messages;
7016
7016
  return {
7017
7017
  ...requestWithTokenLimits,
7018
7018
  messages,
@@ -7022,8 +7022,11 @@ var DefaultOpenAICompatibleProvider = class {
7022
7022
  getDefaultGenerationConfig() {
7023
7023
  return {};
7024
7024
  }
7025
- getResponseParsingOptions() {
7026
- return { contentOnlyThinkingTagLeaks: true };
7025
+ getResponseParsingOptions(model) {
7026
+ return {
7027
+ contentOnlyThinkingTagLeaks: true,
7028
+ ...model && isQwen3Model(model) ? { taggedThinkingTagsAfterReasoning: true } : {}
7029
+ };
7027
7030
  }
7028
7031
  /**
7029
7032
  * Apply output token limit to a request's max_tokens parameter.
@@ -16,7 +16,7 @@ import {
16
16
  MODIFIER_SHIFT_BIT,
17
17
  MODIFIER_SUPER_BIT,
18
18
  clipboardHasImage
19
- } from "./chunk-JLSZT354.js";
19
+ } from "./chunk-M4LBBSVP.js";
20
20
  import {
21
21
  noteInteraction
22
22
  } from "./chunk-KW7NOTN6.js";
@@ -26,14 +26,14 @@ import {
26
26
  import {
27
27
  use_stdin_default,
28
28
  use_stdout_default
29
- } from "./chunk-5Q372OFJ.js";
29
+ } from "./chunk-O4KNCAX4.js";
30
30
  import {
31
31
  require_react
32
32
  } from "./chunk-5QWWOFGG.js";
33
33
  import {
34
34
  KittySequenceOverflowEvent,
35
35
  logKittySequenceOverflow
36
- } from "./chunk-FXUSWLBF.js";
36
+ } from "./chunk-GH2S4GD5.js";
37
37
  import {
38
38
  createDebugLogger
39
39
  } from "./chunk-EAHOJF6V.js";
@@ -9,7 +9,7 @@ import {
9
9
  import {
10
10
  Box_default,
11
11
  Text
12
- } from "./chunk-5Q372OFJ.js";
12
+ } from "./chunk-O4KNCAX4.js";
13
13
  import {
14
14
  require_react
15
15
  } from "./chunk-5QWWOFGG.js";
@@ -125,7 +125,8 @@ var MaxSizedBox = /* @__PURE__ */ __name(({
125
125
  maxHeight,
126
126
  overflowDirection = "top",
127
127
  additionalHiddenLinesCount = 0,
128
- sourceBoundaries
128
+ sourceBoundaries,
129
+ registerOverflow = true
129
130
  }) => {
130
131
  const id = (0, import_react2.useId)();
131
132
  const { addOverflowingId, removeOverflowingId } = useOverflowActions() || {};
@@ -168,7 +169,7 @@ var MaxSizedBox = /* @__PURE__ */ __name(({
168
169
  const hiddenLinesCount = visibleContentHeight !== void 0 ? Math.max(0, laidOutStyledText.length - visibleContentHeight) : 0;
169
170
  const totalHiddenLines = hiddenLinesCount + additionalHiddenLinesCount;
170
171
  (0, import_react2.useEffect)(() => {
171
- if (totalHiddenLines > 0) {
172
+ if (registerOverflow && totalHiddenLines > 0) {
172
173
  addOverflowingId?.(id);
173
174
  } else {
174
175
  removeOverflowingId?.(id);
@@ -176,7 +177,13 @@ var MaxSizedBox = /* @__PURE__ */ __name(({
176
177
  return () => {
177
178
  removeOverflowingId?.(id);
178
179
  };
179
- }, [id, totalHiddenLines, addOverflowingId, removeOverflowingId]);
180
+ }, [
181
+ id,
182
+ registerOverflow,
183
+ totalHiddenLines,
184
+ addOverflowingId,
185
+ removeOverflowingId
186
+ ]);
180
187
  const visibleStyledText = hiddenLinesCount > 0 ? overflowDirection === "top" ? laidOutStyledText.slice(hiddenLinesCount, laidOutStyledText.length) : laidOutStyledText.slice(0, visibleContentHeight) : laidOutStyledText;
181
188
  const visibleLines = visibleStyledText.map((line, index) => {
182
189
  const metadata = lineMetadata.get(line);
@@ -5,10 +5,10 @@ import {
5
5
  } from "./chunk-ZGCKTAL5.js";
6
6
  import {
7
7
  SessionNotFoundError
8
- } from "./chunk-YPISTYEI.js";
8
+ } from "./chunk-F47DITLZ.js";
9
9
  import {
10
10
  ChannelWorkerStartupError
11
- } from "./chunk-FPMQT2YY.js";
11
+ } from "./chunk-TQHPVKO6.js";
12
12
  import {
13
13
  ChannelWebhookEnqueueError
14
14
  } from "./chunk-STUJ7IMZ.js";
@@ -17,7 +17,7 @@ import {
17
17
  } from "./chunk-RKFGE7JH.js";
18
18
  import {
19
19
  CHANNEL_LOOP_MCP_SERVER_NAME
20
- } from "./chunk-IXEZHTDR.js";
20
+ } from "./chunk-U4DJ5XB3.js";
21
21
  import {
22
22
  init_esbuild_shims
23
23
  } from "./chunk-5O2XNYP6.js";
@@ -548,9 +548,11 @@ function createChannelWorkerGroup(opts) {
548
548
  const snapshot = entry.supervisor.snapshot();
549
549
  return snapshot.state === "starting" || snapshot.state === "running" || snapshot.nextRestartAt !== void 0 ? 1 : 0;
550
550
  },
551
- removeWorkspace(workspaceCwd) {
551
+ removeWorkspace(workspaceCwd, options) {
552
552
  const existing = removalPromises.get(workspaceCwd);
553
- if (existing) return existing;
553
+ if (existing) {
554
+ return options?.permanent ? existing.finally(() => groupsByWorkspace.delete(workspaceCwd)) : existing;
555
+ }
554
556
  drainingWorkspaces.add(workspaceCwd);
555
557
  const removal = (async () => {
556
558
  try {
@@ -573,6 +575,7 @@ function createChannelWorkerGroup(opts) {
573
575
  if (killError) throw killError;
574
576
  } finally {
575
577
  drainingWorkspaces.delete(workspaceCwd);
578
+ if (options?.permanent) groupsByWorkspace.delete(workspaceCwd);
576
579
  }
577
580
  })();
578
581
  removalPromises.set(workspaceCwd, removal);
@@ -3,7 +3,7 @@
3
3
  import {
4
4
  collectAvailableSkillEntries,
5
5
  renderAvailableSkillsBlock
6
- } from "./chunk-YKADANK6.js";
6
+ } from "./chunk-QQD2GART.js";
7
7
  import {
8
8
  escapeSystemReminderTags
9
9
  } from "./chunk-AQ37AY7B.js";
@@ -12,7 +12,7 @@ import {
12
12
  } from "./chunk-ODZF64DM.js";
13
13
  import {
14
14
  ToolNames
15
- } from "./chunk-LYSZVCCD.js";
15
+ } from "./chunk-7JMGTOH7.js";
16
16
  import {
17
17
  createDebugLogger,
18
18
  getErrorMessage,
@@ -406,9 +406,13 @@ function buildChangedMcpToolsReminder(addedTools, removedToolNames) {
406
406
  }
407
407
  __name(buildChangedMcpToolsReminder, "buildChangedMcpToolsReminder");
408
408
  function buildMcpServerInstructionsReminder(toolRegistry) {
409
- const serverInstructions = Array.from(
410
- toolRegistry.getMcpServerInstructions().entries()
411
- ).filter(([, instructions]) => instructions.trim().length > 0).sort(([left], [right]) => left.localeCompare(right));
409
+ return buildMcpServerInstructionsReminderFromEntries(
410
+ toolRegistry.getMcpServerInstructions()
411
+ );
412
+ }
413
+ __name(buildMcpServerInstructionsReminder, "buildMcpServerInstructionsReminder");
414
+ function buildMcpServerInstructionsReminderFromEntries(instructionsByServer) {
415
+ const serverInstructions = Array.from(instructionsByServer.entries()).filter(([, instructions]) => instructions.trim().length > 0).sort(([left], [right]) => left.localeCompare(right));
412
416
  if (serverInstructions.length === 0) {
413
417
  return null;
414
418
  }
@@ -421,7 +425,7 @@ ${instructions}`
421
425
  ];
422
426
  return wrapSystemReminder(bodyParts.join("\n\n"));
423
427
  }
424
- __name(buildMcpServerInstructionsReminder, "buildMcpServerInstructionsReminder");
428
+ __name(buildMcpServerInstructionsReminderFromEntries, "buildMcpServerInstructionsReminderFromEntries");
425
429
  function trimSkillEntriesTowardsBudget(entries) {
426
430
  if (renderAvailableSkillsBlock(entries).length <= MAX_SKILL_LISTING_CHARS) {
427
431
  return entries;
@@ -692,7 +696,7 @@ __name(resolveForkExecutionAllowedTools, "resolveForkExecutionAllowedTools");
692
696
  function registerForkDisplayImageForCache(config, advertisedToolNames) {
693
697
  if (!advertisedToolNames.includes(ToolNames.DISPLAY_IMAGE)) return;
694
698
  config.getToolRegistry().registerFactory(ToolNames.DISPLAY_IMAGE, async () => {
695
- const { DisplayImageTool } = await import("./display-image-Z4VBQDEJ.js");
699
+ const { DisplayImageTool } = await import("./display-image-73C7XNRK.js");
696
700
  return new DisplayImageTool(config);
697
701
  });
698
702
  }
@@ -884,6 +888,7 @@ export {
884
888
  buildDeferredToolsReminder,
885
889
  buildChangedMcpToolsReminder,
886
890
  buildMcpServerInstructionsReminder,
891
+ buildMcpServerInstructionsReminderFromEntries,
887
892
  buildAvailableSkillsReminder,
888
893
  buildChangedSkillsReminder,
889
894
  buildChangedAgentsReminder,