@qwen-code/qwen-code 0.23.1-preview.2 → 0.23.1

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 (297) hide show
  1. package/bundled/computer-use/SKILL.md +189 -116
  2. package/bundled/goal-draft/SKILL.md +23 -13
  3. package/bundled/qc-helper/docs/_meta.ts +1 -0
  4. package/bundled/qc-helper/docs/configuration/model-providers.md +47 -1
  5. package/bundled/qc-helper/docs/configuration/settings.md +50 -0
  6. package/bundled/qc-helper/docs/conversations-recovery.md +102 -0
  7. package/bundled/qc-helper/docs/features/channels/overview.md +1 -1
  8. package/bundled/qc-helper/docs/features/computer-use.md +9 -7
  9. package/bundled/qc-helper/docs/features/followup-suggestions.md +2 -2
  10. package/bundled/qc-helper/docs/features/goals.md +15 -3
  11. package/bundled/qc-helper/docs/qwen-serve.md +19 -1
  12. package/chunks/{MaxSizedBox-IYIQ43IZ.js → MaxSizedBox-UDO6Y7RB.js} +20 -20
  13. package/chunks/{StandaloneSessionPicker-AWB2OHX6.js → StandaloneSessionPicker-D4CUOO4H.js} +38 -38
  14. package/chunks/{acp-startup-profiler-BAL4LJTN.js → acp-startup-profiler-KEU6VAYR.js} +2 -2
  15. package/chunks/{acpAgent-ZC57OLS4.js → acpAgent-KWLJFADK.js} +118 -91
  16. package/chunks/{agent-GEBPAEJS.js → agent-GSUPGEOL.js} +13 -13
  17. package/chunks/{agent-headless-63ZEYAJK.js → agent-headless-HNYCQUJB.js} +13 -13
  18. package/chunks/{anthropicContentGenerator-6XDHXIII.js → anthropicContentGenerator-I7LQZH26.js} +30 -7
  19. package/chunks/{askUserQuestion-3KAYLLMM.js → askUserQuestion-I5W5S3D6.js} +1 -1
  20. package/chunks/{bridge-MHWO5I5T.js → bridge-B7CV6RVI.js} +23 -23
  21. package/chunks/{channel-management-service-NFRZXQFO.js → channel-management-service-TRTLQTSV.js} +4 -4
  22. package/chunks/{channel-settings-store-T7PMIHKC.js → channel-settings-store-FW45IRUP.js} +31 -31
  23. package/chunks/{channel-worker-group-O2BWK5F7.js → channel-worker-group-PIYPVCTF.js} +6 -6
  24. package/chunks/{channel-worker-manager-4WP7VJOD.js → channel-worker-manager-FQHEDTD2.js} +6 -6
  25. package/chunks/{channel-worker-supervisor-CCUXD6J5.js → channel-worker-supervisor-XJPZZ3VK.js} +3 -3
  26. package/chunks/{chunk-KTLT7VCX.js → chunk-25CBAK3H.js} +2 -2
  27. package/chunks/{chunk-SHX2HIE7.js → chunk-27LTEY6D.js} +1 -1
  28. package/chunks/{chunk-ZT3XUGSU.js → chunk-2TMJRF46.js} +86 -9
  29. package/chunks/{chunk-HWZOOSEB.js → chunk-2YS3NU4A.js} +3 -3
  30. package/chunks/chunk-2Z3T52OC.js +82 -0
  31. package/chunks/{chunk-QW7BUOSI.js → chunk-2ZFO5JD7.js} +20 -3
  32. package/chunks/{chunk-RH344FKI.js → chunk-3BTHHXXE.js} +1 -1
  33. package/chunks/{chunk-OFB36ZBA.js → chunk-3LPJ776W.js} +1 -1
  34. package/chunks/{chunk-GEV66YGE.js → chunk-3VDLQUR2.js} +1 -1
  35. package/chunks/{chunk-RRCNEW2A.js → chunk-3VWPPK5Q.js} +58 -4
  36. package/chunks/{chunk-L36LLVA5.js → chunk-3YQMUBTS.js} +3 -3
  37. package/chunks/{chunk-LTCI6ZOJ.js → chunk-45ROPFQY.js} +1 -1
  38. package/chunks/{chunk-W4LL5RZO.js → chunk-4ALNJDHL.js} +52 -13
  39. package/chunks/{chunk-4OCYWXKF.js → chunk-5CVY5Q2P.js} +3 -3
  40. package/chunks/{chunk-ZRVFHLLK.js → chunk-5DQ4YTIZ.js} +1 -1
  41. package/chunks/{chunk-FWH4736Q.js → chunk-5IL2BZHW.js} +3 -3
  42. package/chunks/{chunk-537SQ2AI.js → chunk-5WC2ECUK.js} +104 -16
  43. package/chunks/{chunk-3K65MUKD.js → chunk-65I7S4Z3.js} +2 -1
  44. package/chunks/{chunk-RUMSY4ES.js → chunk-66JBCTJF.js} +8 -7
  45. package/chunks/{chunk-YLFICBYK.js → chunk-6JXHO7LG.js} +3 -3
  46. package/chunks/{chunk-TDHVOZ65.js → chunk-6QILGINT.js} +2 -2
  47. package/chunks/{chunk-WQBR7LN5.js → chunk-6QV7Z74P.js} +1 -1
  48. package/chunks/{chunk-RSU3I6UL.js → chunk-6SADVYQQ.js} +1 -1
  49. package/chunks/{chunk-AIMZIXZM.js → chunk-6TPVIESH.js} +5 -7
  50. package/chunks/{chunk-2LD5U7Q3.js → chunk-6YEOCHSE.js} +29 -1
  51. package/chunks/{chunk-7PMKXGRP.js → chunk-75LBC7SV.js} +66 -9
  52. package/chunks/{chunk-B5FF3LRF.js → chunk-7SL55L5H.js} +22 -15
  53. package/chunks/{chunk-I7UNCY24.js → chunk-ARYNBBBM.js} +3 -3
  54. package/chunks/{chunk-QQGAR64U.js → chunk-B3EL44K3.js} +4 -4
  55. package/chunks/{chunk-KAZWXVI3.js → chunk-CABDNUJ4.js} +2 -2
  56. package/chunks/{chunk-R7TKFIQO.js → chunk-CALNF3Z3.js} +1 -1
  57. package/chunks/{chunk-75UQFGFE.js → chunk-CHVU543W.js} +1 -1
  58. package/chunks/{chunk-C4NXRR7T.js → chunk-CIKL2DQP.js} +2 -2
  59. package/chunks/{chunk-LD53HMPV.js → chunk-CRZBDVP2.js} +1 -0
  60. package/chunks/{chunk-SHK2SIR5.js → chunk-D6AQNMUA.js} +4 -4
  61. package/chunks/{chunk-EPZWBYQI.js → chunk-DO5SMV52.js} +8 -6
  62. package/chunks/{chunk-P5Z7VD23.js → chunk-DXQ6Z7AH.js} +106 -39
  63. package/chunks/{chunk-3RMVM33U.js → chunk-DZ6D4B3K.js} +5 -5
  64. package/chunks/{chunk-T7TP5UQL.js → chunk-E7XSUYCZ.js} +4 -4
  65. package/chunks/{chunk-2C3XDBGL.js → chunk-EEKU6COG.js} +4 -4
  66. package/chunks/{chunk-AX23QSX3.js → chunk-EHTKOO6W.js} +4 -4
  67. package/chunks/{chunk-XNC2TCUO.js → chunk-ENZDGHGJ.js} +4 -4
  68. package/chunks/{chunk-733KQL63.js → chunk-EOET4H7C.js} +3 -3
  69. package/chunks/{chunk-37SOBIA3.js → chunk-ERXNTINK.js} +1 -1
  70. package/chunks/{chunk-F47DITLZ.js → chunk-FAWTMDX7.js} +14 -0
  71. package/chunks/{chunk-5JLQWQK6.js → chunk-FV4DM2M4.js} +2 -2
  72. package/chunks/{chunk-UTVIIA7N.js → chunk-FW4E4QPG.js} +1 -1
  73. package/chunks/{chunk-REDVV5NC.js → chunk-FWRRUITH.js} +7 -7
  74. package/chunks/{chunk-5V4B3EWA.js → chunk-GM44O6F7.js} +1 -1
  75. package/chunks/{chunk-Z6DDPSGJ.js → chunk-GNY7B3CA.js} +1 -1
  76. package/chunks/{chunk-ERMAXPXA.js → chunk-HIXUUCGY.js} +187 -12
  77. package/chunks/{chunk-EJNYBDYC.js → chunk-HNLMYDQE.js} +1 -1
  78. package/chunks/{chunk-XX4MBBFW.js → chunk-HUX2DOTF.js} +3 -3
  79. package/chunks/{chunk-RCUWMVN3.js → chunk-HZ2HUXX7.js} +1 -1
  80. package/chunks/{chunk-RD3VPM4E.js → chunk-IKG2YVRZ.js} +2 -2
  81. package/chunks/{chunk-IMWCUWQT.js → chunk-J3TJH52D.js} +1 -1
  82. package/chunks/{chunk-ZJ2LM2SI.js → chunk-JGDRB4FP.js} +104 -33
  83. package/chunks/{chunk-ANVC5CSK.js → chunk-L7V52QEZ.js} +10 -10
  84. package/chunks/{chunk-MFCWL4LI.js → chunk-LNCNUMJ5.js} +451 -396
  85. package/chunks/{chunk-AUJOWIT5.js → chunk-LZGFVUWZ.js} +3 -3
  86. package/chunks/{chunk-6KYWU726.js → chunk-M73KHGNR.js} +13 -66
  87. package/chunks/{chunk-ADJD4LZF.js → chunk-MA5OUNN6.js} +1 -1
  88. package/chunks/{chunk-I67KJGM6.js → chunk-MFYH2VXV.js} +3 -3
  89. package/chunks/{chunk-PLUAIHZO.js → chunk-N7YQEKGX.js} +6 -6
  90. package/chunks/{chunk-JOV46WGX.js → chunk-NB3NDQQK.js} +1 -1
  91. package/chunks/chunk-NOO4QFXM.js +171 -0
  92. package/chunks/{chunk-VYCJITND.js → chunk-O2JBJQCF.js} +1 -1
  93. package/chunks/{chunk-RQNAO42A.js → chunk-OESZTXTG.js} +1 -1
  94. package/chunks/{chunk-UKADFFL2.js → chunk-OFVAS4AR.js} +1 -1
  95. package/chunks/{chunk-Y3C5COGI.js → chunk-OPMKGOLD.js} +1 -1
  96. package/chunks/{chunk-TSLRORQR.js → chunk-PDUMGZ2P.js} +1467 -1323
  97. package/chunks/{chunk-Z6KFLEG7.js → chunk-PSPAM24S.js} +1 -0
  98. package/chunks/{chunk-5FYGZ7E3.js → chunk-QK4K76T6.js} +2 -2
  99. package/chunks/{chunk-NUQFUXOG.js → chunk-QTNCGZHQ.js} +2 -0
  100. package/chunks/{chunk-WFXD5OZH.js → chunk-QZOXVQPK.js} +1 -1
  101. package/chunks/{chunk-QJVZLILI.js → chunk-R7OO56VZ.js} +1 -1
  102. package/chunks/{chunk-KP5QK3FB.js → chunk-RNYENHN5.js} +397 -54
  103. package/chunks/{chunk-22QOQKG4.js → chunk-RXT4QBDX.js} +1 -1
  104. package/chunks/{chunk-LYHYXJJ3.js → chunk-S6QVI3MV.js} +3 -3
  105. package/chunks/{chunk-NXWYCSPL.js → chunk-SOA4HKRJ.js} +1 -1
  106. package/chunks/{chunk-IGOIYZBG.js → chunk-T2IHCZLS.js} +2 -2
  107. package/chunks/{chunk-C55CR5I4.js → chunk-TGC4264Q.js} +6 -6
  108. package/chunks/{chunk-EGRFCIXD.js → chunk-TWAMIEQ2.js} +79 -18
  109. package/chunks/{chunk-PMGWY6ZP.js → chunk-TWWS7XUW.js} +13 -10
  110. package/chunks/{chunk-RGAQDQ3Z.js → chunk-UHUT4IDM.js} +18 -9
  111. package/chunks/{chunk-HPE4LEWX.js → chunk-USN6VNTO.js} +1 -1
  112. package/chunks/{chunk-BNWIX6BM.js → chunk-UXDVUFKU.js} +3 -3
  113. package/chunks/{chunk-HY3DXYZK.js → chunk-UYDQYDW2.js} +1 -1
  114. package/chunks/{chunk-3K456UJF.js → chunk-VF6D6EGV.js} +12 -4
  115. package/chunks/{chunk-ZNI3V2XA.js → chunk-WAASYFPK.js} +2 -2
  116. package/chunks/{chunk-OHOO527W.js → chunk-WG7BL3FY.js} +52 -2
  117. package/chunks/{chunk-C7M445SS.js → chunk-WJDXKQIO.js} +1 -1
  118. package/chunks/{chunk-HZS3JRQW.js → chunk-WNISCNTA.js} +40 -2
  119. package/chunks/{chunk-AWDF462I.js → chunk-WQMUGQ6G.js} +2 -2
  120. package/chunks/{chunk-VU7O7CGQ.js → chunk-XDNFODER.js} +1 -1
  121. package/chunks/{chunk-65GHQ4FX.js → chunk-XVTCSVBK.js} +514 -47
  122. package/chunks/{chunk-SI6Q52UI.js → chunk-XZ3Z43XL.js} +3 -3
  123. package/chunks/{chunk-SD7Y2PMC.js → chunk-YAC7H4K3.js} +2 -2
  124. package/chunks/{chunk-FXYNIZPW.js → chunk-YCEKI7QX.js} +51 -10
  125. package/chunks/{chunk-7IKXTGZT.js → chunk-YI2YCNSP.js} +1 -1
  126. package/chunks/{chunk-E4VX6LXB.js → chunk-YZTGGCEE.js} +10 -2
  127. package/chunks/{chunk-VMFPZXRT.js → chunk-ZNO5BUAD.js} +43 -31
  128. package/chunks/{chunk-WLZRMF3C.js → chunk-ZPL2TZNA.js} +353 -11
  129. package/chunks/{chunk-TXAEXF2B.js → chunk-ZU2T5JIS.js} +21 -8
  130. package/chunks/{config-utils-F4CFJ4MW.js → config-utils-KTDSQ4MU.js} +24 -24
  131. package/chunks/{contextCommand-OIIGGOMU.js → contextCommand-UQ3KRYGK.js} +22 -22
  132. package/chunks/{core-runtime-JEHLOGMB.js → core-runtime-JR34JAFH.js} +20 -20
  133. package/chunks/{create-sub-session-MVFBE5RA.js → create-sub-session-RGPJOI4S.js} +21 -21
  134. package/chunks/{daemon-LCUELM6E.js → daemon-UI6SQSBV.js} +1 -1
  135. package/chunks/{daemon-git-worktree-guard-5FTKLJOU.js → daemon-git-worktree-guard-H3OA26KQ.js} +20 -20
  136. package/chunks/{daemon-status-provider-P6A5MPMW.js → daemon-status-provider-6WZLKSZU.js} +27 -27
  137. package/chunks/{daemon-trust-policy-ZJ3NFYUO.js → daemon-trust-policy-3EDP2BYD.js} +27 -27
  138. package/chunks/{daemon-trust-policy-monitor-6SDLEW7S.js → daemon-trust-policy-monitor-CRHZPK52.js} +27 -27
  139. package/chunks/{deferred-core-runtime-DWOXIU5S.js → deferred-core-runtime-LO5NTQQ4.js} +20 -20
  140. package/chunks/{discovery-TUM3ZQ6U.js → discovery-XP4RMDUM.js} +4 -2
  141. package/chunks/{dist-NXW4DUUX.js → dist-24TCWK5H.js} +1 -1
  142. package/chunks/{dist-I74QLLQS.js → dist-5I4HLUTO.js} +1 -1
  143. package/chunks/{dist-XINEKB5A.js → dist-FDISN4AK.js} +1 -1
  144. package/chunks/{dist-VCAS67N5.js → dist-M4CBX53H.js} +1 -1
  145. package/chunks/{dist-AI25RVRA.js → dist-NQ2636VT.js} +1 -1
  146. package/chunks/{dist-3H3WODVS.js → dist-OR2ZQTXZ.js} +1 -1
  147. package/chunks/{dist-P6YWBITG.js → dist-STAGIFNB.js} +430 -51
  148. package/chunks/{dist-YNQU4CKC.js → dist-WZTUKIDR.js} +2 -2
  149. package/chunks/{dist-T4PRA5EZ.js → dist-XJ25G6OH.js} +1 -1
  150. package/chunks/{edit-WPVXLL3T.js → edit-LB7Z7XK5.js} +13 -13
  151. package/chunks/{enter-worktree-5A6VW6BN.js → enter-worktree-YFTKHXHZ.js} +2 -2
  152. package/chunks/{enterPlanMode-JSODW7E2.js → enterPlanMode-P6TVUFIY.js} +13 -13
  153. package/chunks/{environment-5LLJ3I3W.js → environment-QATJNNKI.js} +23 -23
  154. package/chunks/{errors-IQT3YZEP.js → errors-3XJ37PS2.js} +22 -22
  155. package/chunks/{exit-worktree-QV7E7KP6.js → exit-worktree-NF2XEMES.js} +3 -3
  156. package/chunks/{exitPlanMode-DDVFYNW4.js → exitPlanMode-A3OKL5UO.js} +13 -13
  157. package/chunks/{fast-path-PAUQQEVU.js → fast-path-DBIT5YQQ.js} +3 -3
  158. package/chunks/{fast-path-settings-ISEJPRYE.js → fast-path-settings-SATXY3PD.js} +3 -3
  159. package/chunks/{glob-SQ7CTZ7F.js → glob-73EDTXUE.js} +13 -13
  160. package/chunks/{goal-tools-UWZRCLQB.js → goal-tools-DFI6YMSD.js} +13 -13
  161. package/chunks/{handleAutoUpdate-RUPZZTSG.js → handleAutoUpdate-2FUNJO3B.js} +23 -23
  162. package/chunks/{i18n-SF5MPWEB.js → i18n-FDIA6KFI.js} +23 -21
  163. package/chunks/{image-gen-Q3RUTVKR.js → image-gen-XP4NNIYG.js} +4 -4
  164. package/chunks/{initializer-CK4WPYZG.js → initializer-4MJTJOTW.js} +27 -27
  165. package/chunks/{installationInfo-IRPQEYRF.js → installationInfo-232RA2OK.js} +20 -20
  166. package/chunks/{list-E3PS3EBJ.js → list-WN6WSGEB.js} +30 -30
  167. package/chunks/{llm-JQKBOYAF.js → llm-UDFWQWZA.js} +62 -62
  168. package/chunks/{llm-content-generator-2QWGBW42.js → llm-content-generator-VLMZ2A7A.js} +23 -8
  169. package/chunks/{loadedSettingsAdapter-DGXGVYZS.js → loadedSettingsAdapter-OBQEIXM7.js} +27 -27
  170. package/chunks/{loggingContentGenerator-ZYURLJKK.js → loggingContentGenerator-RGVUMUVX.js} +14 -14
  171. package/chunks/{managed-npm-update-HTHR63EA.js → managed-npm-update-QBAJYCFU.js} +20 -20
  172. package/chunks/{mcp-I7G2AEWS.js → mcp-OTIZZCPY.js} +27 -27
  173. package/chunks/{monitor-4R76BCRZ.js → monitor-BV5XF6LL.js} +13 -13
  174. package/chunks/{nonInteractiveCli-24OQ3VP2.js → nonInteractiveCli-W6MUKDVJ.js} +64 -61
  175. package/chunks/{notebook-edit-PPSH7FEX.js → notebook-edit-HGBEKGTE.js} +13 -13
  176. package/chunks/{openaiContentGenerator-K7V5EO7F.js → openaiContentGenerator-NSU3ERBH.js} +8 -8
  177. package/chunks/{pidfile-TGIUY2GG.js → pidfile-LE3TU4GE.js} +20 -20
  178. package/chunks/{processUtils-3USXUQWX.js → processUtils-YFBGJK67.js} +2 -2
  179. package/chunks/{prompt-terminal-ledger-XHVZRXJI.js → prompt-terminal-ledger-4W4W7DSO.js} +21 -21
  180. package/chunks/{qwenContentGenerator-MPBOQB64.js → qwenContentGenerator-HTA57WFC.js} +16 -16
  181. package/chunks/{qwenOAuth2-BS5D2LYV.js → qwenOAuth2-KX6LVYQ3.js} +4 -4
  182. package/chunks/{read-file-R256LDWQ.js → read-file-KHPQ2MB6.js} +2 -2
  183. package/chunks/{resumeHistoryUtils-S43LTFHD.js → resumeHistoryUtils-K7RV3QBN.js} +23 -23
  184. package/chunks/{ripGrep-L7HPZ75Y.js → ripGrep-NBBVCMG4.js} +3 -3
  185. package/chunks/{run-qwen-serve-CTFL5R6U.js → run-qwen-serve-A3JBOZCM.js} +58 -60
  186. package/chunks/{runtime-FS5TL6P7.js → runtime-7YOU2KJ3.js} +32 -32
  187. package/chunks/{scheduled-tasks-QXPV3Q35.js → scheduled-tasks-52LXK7LN.js} +25 -25
  188. package/chunks/{scheduler-EXU5HMVK.js → scheduler-J44M72VM.js} +22 -22
  189. package/chunks/{send-message-GQKXGMPI.js → send-message-AWKUDJBH.js} +1 -1
  190. package/chunks/{serve-ITJC7WNN.js → serve-TRC6XJUB.js} +27 -27
  191. package/chunks/{server-6JQY3PTU.js → server-YPNTJLX2.js} +1296 -822
  192. package/chunks/{session-PJDEKXD4.js → session-FMMIBFYX.js} +63 -62
  193. package/chunks/{session-attachments-root-L37ORSST.js → session-attachments-root-LDJMNK7K.js} +20 -20
  194. package/chunks/{session-pr-refresh-WIFD52YL.js → session-pr-refresh-NLR4EK2J.js} +24 -24
  195. package/chunks/{settings-LO6J5SAZ.js → settings-A46L577J.js} +26 -26
  196. package/chunks/{shell-ANAFVYGR.js → shell-Q5LSQPPY.js} +13 -13
  197. package/chunks/{skill-SHJWKSPH.js → skill-75KPJRCM.js} +2 -2
  198. package/chunks/{skill-settings-GX3XHZ5Q.js → skill-settings-775YT4YR.js} +26 -26
  199. package/chunks/{spawnChannel-WE42VBKM.js → spawnChannel-XY73I5CU.js} +20 -20
  200. package/chunks/{standalone-update-CWDIKJRP.js → standalone-update-L46XXNQ2.js} +22 -22
  201. package/chunks/{start-opentui-ui-BBHGFOTF.js → start-opentui-ui-WLV43247.js} +1991 -986
  202. package/chunks/{startInteractiveUI-FQX7LUYP.js → startInteractiveUI-F5DKMLOV.js} +1119 -1478
  203. package/chunks/{team-create-WKTPCH6D.js → team-create-2PATB77U.js} +13 -13
  204. package/chunks/{team-plan-approval-Y23DL7WR.js → team-plan-approval-QTANEWOS.js} +13 -13
  205. package/chunks/{terminal-image-renderer-B646HBDW.js → terminal-image-renderer-OGULCFNF.js} +20 -20
  206. package/chunks/{theme-manager-BNWESY26.js → theme-manager-CNO3QERP.js} +20 -20
  207. package/chunks/{tool-search-PVQ5O5Y2.js → tool-search-VXWEOZE7.js} +2 -2
  208. package/chunks/{total-session-admission-P5Z43KNW.js → total-session-admission-4KAADZPB.js} +24 -24
  209. package/chunks/{trustedFolders-FH2LT2MZ.js → trustedFolders-PPJSOPOT.js} +21 -21
  210. package/chunks/{update-relaunch-WOWTKJSN.js → update-relaunch-4PT4MW7B.js} +5 -5
  211. package/chunks/{updateCheck-3MYFMM35.js → updateCheck-WAVFLWNG.js} +22 -22
  212. package/chunks/{useAutoAcceptIndicator-Q7ZRRRKO.js → useAutoAcceptIndicator-XNED4NRB.js} +29 -29
  213. package/chunks/{validateNonInterActiveAuth-MYEWJX3G.js → validateNonInterActiveAuth-J676DUQ2.js} +59 -58
  214. package/chunks/{version-RO2FPO76.js → version-J6SRRQB2.js} +1 -1
  215. package/chunks/{web-fetch-QAKY2LUA.js → web-fetch-FMZZYX44.js} +5 -5
  216. package/chunks/{web-search-XA5Z4ZCD.js → web-search-3G2KXCX5.js} +18 -7
  217. package/chunks/{workflow-QFIOCMDM.js → workflow-PPZZICQ7.js} +15 -15
  218. package/chunks/{workspace-providers-status-B2UD7RAG.js → workspace-providers-status-IIYTAQST.js} +29 -29
  219. package/chunks/{workspace-registration-store-VZLRTI3Q.js → workspace-registration-store-VHCDXAV7.js} +1 -1
  220. package/chunks/{workspace-registry-GYOGG6TM.js → workspace-registry-I7VQIPS2.js} +24 -24
  221. package/chunks/{workspace-runtime-coordinator-7KRXGQ4V.js → workspace-runtime-coordinator-DBGNY32G.js} +24 -24
  222. package/chunks/{workspace-service-DJEYGJE4.js → workspace-service-QSKB2T54.js} +31 -31
  223. package/chunks/{workspace-skills-status-MOKNESUC.js → workspace-skills-status-T7GPT65J.js} +27 -27
  224. package/chunks/{workspace-trust-reconciler-AXOSUTQW.js → workspace-trust-reconciler-2PKRDAU4.js} +31 -31
  225. package/chunks/{write-file-QOYVHAKK.js → write-file-L76CGFTQ.js} +14 -14
  226. package/chunks/{zoom-image-UCCLGFNC.js → zoom-image-TDJJY2VZ.js} +2 -2
  227. package/cli.js +13 -13
  228. package/export-transcript-document.js +126 -122
  229. package/package.json +3 -3
  230. package/web-shell/assets/{abnfDiagram-VCTEODGH-CTstZpXw.js → abnfDiagram-VCTEODGH-DHc6plZn.js} +1 -1
  231. package/web-shell/assets/{arc-DKW0mbPo.js → arc-BQ9m8TDV.js} +1 -1
  232. package/web-shell/assets/{architectureDiagram-5GKGNRK7-DkMpJ42t.js → architectureDiagram-5GKGNRK7-D5ap3oVB.js} +1 -1
  233. package/web-shell/assets/{blockDiagram-NRAW4CY4-7Cp1_4i3.js → blockDiagram-NRAW4CY4-BIbnyNph.js} +1 -1
  234. package/web-shell/assets/{c4Diagram-UCG6FXSJ-BfaoSlBK.js → c4Diagram-UCG6FXSJ-BRsdx_iG.js} +1 -1
  235. package/web-shell/assets/channel-uMMdTrYk.js +1 -0
  236. package/web-shell/assets/{chunk-2Q5K7J3B-_n1qzAio.js → chunk-2Q5K7J3B-3lf1fNlx.js} +1 -1
  237. package/web-shell/assets/{chunk-5VM5RSS4-0cira5ZV.js → chunk-5VM5RSS4-DP8VNRc4.js} +1 -1
  238. package/web-shell/assets/{chunk-F27PBJKO-DseRXSHC.js → chunk-F27PBJKO-DrohDmZ6.js} +1 -1
  239. package/web-shell/assets/{chunk-G27WJ6UU-BehQWin0.js → chunk-G27WJ6UU-UZ2QhSx6.js} +1 -1
  240. package/web-shell/assets/{chunk-JWPE2WC7-B5ftg1Bb.js → chunk-JWPE2WC7-BIMHVcZK.js} +1 -1
  241. package/web-shell/assets/{chunk-LCL6LL3I-D7rnbVdk.js → chunk-LCL6LL3I-izRxdSDd.js} +1 -1
  242. package/web-shell/assets/{chunk-POPQ4Y6H-2Bp-Orju.js → chunk-POPQ4Y6H-CXADD4PP.js} +1 -1
  243. package/web-shell/assets/{chunk-SVP7TREG-CD2goGva.js → chunk-SVP7TREG-B96d8Y_1.js} +1 -1
  244. package/web-shell/assets/{chunk-XXDRQBXY-DzQt-Rji.js → chunk-XXDRQBXY-CF2sVQpv.js} +1 -1
  245. package/web-shell/assets/classDiagram-DTDB5LWJ-DcY-26Ig.js +1 -0
  246. package/web-shell/assets/classDiagram-v2-JRS7N3AN-DcY-26Ig.js +1 -0
  247. package/web-shell/assets/{cose-bilkent-JH36ORCC-C-BZXSUn.js → cose-bilkent-JH36ORCC-CT6tXVAS.js} +1 -1
  248. package/web-shell/assets/csv-CX7rUNeC.svg +1 -0
  249. package/web-shell/assets/{cynefin-OW5HDTMX-BTcvowe1.js → cynefin-OW5HDTMX-X1NS4vtV.js} +1 -1
  250. package/web-shell/assets/{cynefinDiagram-5FMLGOSQ-BoUE6K81.js → cynefinDiagram-5FMLGOSQ-DNsKNOT4.js} +1 -1
  251. package/web-shell/assets/{dagre-3AP2YEHR-BHxy9xeB.js → dagre-3AP2YEHR-9-AHKqsb.js} +1 -1
  252. package/web-shell/assets/{diagram-S7CK7UJ4-DMiJIvDT.js → diagram-S7CK7UJ4-Bjgms7j6.js} +1 -1
  253. package/web-shell/assets/{diagram-UQ7AKVKN-DXV09Aes.js → diagram-UQ7AKVKN-h6bCprbE.js} +1 -1
  254. package/web-shell/assets/{diagram-VSXAHHWV-CocpRomV.js → diagram-VSXAHHWV-4SbQXVLt.js} +1 -1
  255. package/web-shell/assets/{diagram-VX7I27RA-DL7nqtb4.js → diagram-VX7I27RA-B5gPCzzB.js} +1 -1
  256. package/web-shell/assets/{diagram-Z3DM3KII-CPZ2Jux_.js → diagram-Z3DM3KII-DFJXIA3A.js} +1 -1
  257. package/web-shell/assets/{ebnfDiagram-PWID7BFC-BX-eVNsX.js → ebnfDiagram-PWID7BFC-FwyaU7VY.js} +1 -1
  258. package/web-shell/assets/{erDiagram-SSCWMZ5O-CPy_Ir6y.js → erDiagram-SSCWMZ5O-8vJQh2te.js} +1 -1
  259. package/web-shell/assets/{flowDiagram-A5DVABFB-eknAOte9.js → flowDiagram-A5DVABFB-BzA_1gMN.js} +1 -1
  260. package/web-shell/assets/{ganttDiagram-EL5Y4UJY-crAxw_t7.js → ganttDiagram-EL5Y4UJY-Co-ABbVX.js} +1 -1
  261. package/web-shell/assets/{gitGraphDiagram-WWUBYQGX-M29pa3Tc.js → gitGraphDiagram-WWUBYQGX-DW_FcyrX.js} +1 -1
  262. package/web-shell/assets/{index-C9R-iojE.js → index-BbMXfhNG.js} +1 -1
  263. package/web-shell/assets/{index-B4TLaxWs.js → index-Bu-rZoJ-.js} +462 -454
  264. package/web-shell/assets/index-CsPwZ1ut.css +36 -0
  265. package/web-shell/assets/{infoDiagram-RXCK75RN-XqspXdOU.js → infoDiagram-RXCK75RN-BEgfhUFN.js} +1 -1
  266. package/web-shell/assets/{ishikawaDiagram-5VMMS53U-C5KFS-7j.js → ishikawaDiagram-5VMMS53U-DCsMxQmc.js} +1 -1
  267. package/web-shell/assets/{journeyDiagram-EYS64GPL-Cc57LVRo.js → journeyDiagram-EYS64GPL-DyIEYoHz.js} +1 -1
  268. package/web-shell/assets/{kanban-definition-3QL26DDD-C81OG-AI.js → kanban-definition-3QL26DDD-CkxjqCNr.js} +1 -1
  269. package/web-shell/assets/{layout-CFVu37BB.js → layout-BEWc0Al9.js} +1 -1
  270. package/web-shell/assets/{linear-ChBxdtWf.js → linear-CNuNxirL.js} +1 -1
  271. package/web-shell/assets/{mermaid.core-CMLfue0w.js → mermaid.core-DZBre674.js} +6 -6
  272. package/web-shell/assets/{mindmap-definition-FBJOCRG2-DFsvJThp.js → mindmap-definition-FBJOCRG2-CpafFz_F.js} +1 -1
  273. package/web-shell/assets/{pegDiagram-XKGWAZYB-BzpRzM4F.js → pegDiagram-XKGWAZYB-DfZqk_dq.js} +1 -1
  274. package/web-shell/assets/{pieDiagram-E7YTZNPT-Cv0Kankl.js → pieDiagram-E7YTZNPT-S0UWXlgC.js} +1 -1
  275. package/web-shell/assets/{quadrantDiagram-AXDQQJYC-Bh2BJ3Ay.js → quadrantDiagram-AXDQQJYC-dd37_Ohj.js} +1 -1
  276. package/web-shell/assets/{railroadDiagram-O6MQD6OU-y8rNDdDS.js → railroadDiagram-O6MQD6OU-CH8NJZ7u.js} +1 -1
  277. package/web-shell/assets/{requirementDiagram-EFPCY7ZU-C0m2DKJ_.js → requirementDiagram-EFPCY7ZU-CFdqWYih.js} +1 -1
  278. package/web-shell/assets/{sankeyDiagram-P5KCCOFB-BzdGnSF4.js → sankeyDiagram-P5KCCOFB-CsddcEGD.js} +1 -1
  279. package/web-shell/assets/{sequenceDiagram-WJ2MYXX4-DPzAVmzz.js → sequenceDiagram-WJ2MYXX4-BZ270mGw.js} +1 -1
  280. package/web-shell/assets/{sizeCapture-X5ZJPWSS-LcHG28Zh.js → sizeCapture-X5ZJPWSS-CGaS4DBV.js} +1 -1
  281. package/web-shell/assets/{stateDiagram-HBIQ2CUA-C1Bzy3IT.js → stateDiagram-HBIQ2CUA-COpIzMu6.js} +1 -1
  282. package/web-shell/assets/stateDiagram-v2-4QOOHH4V-D6qEVAji.js +1 -0
  283. package/web-shell/assets/{swimlanes-XN3QIQJK-Bftk8V64.js → swimlanes-XN3QIQJK-CMF889m3.js} +1 -1
  284. package/web-shell/assets/swimlanesDiagram-VK2B7HYN-mem5Jj4m.js +8 -0
  285. package/web-shell/assets/{timeline-definition-24CTP7MA-BfXHcN1A.js → timeline-definition-24CTP7MA-BelnxYz5.js} +1 -1
  286. package/web-shell/assets/{vennDiagram-4TSXK5OY-DRSlI9-V.js → vennDiagram-4TSXK5OY-CU-NRqIB.js} +1 -1
  287. package/web-shell/assets/{wardleyDiagram-VM6X3IG4-CaLmqGau.js → wardleyDiagram-VM6X3IG4-CDNKqWh-.js} +1 -1
  288. package/web-shell/assets/{xychartDiagram-S5SC5T6Z-8lgUT6e8.js → xychartDiagram-S5SC5T6Z-CLqguL5D.js} +1 -1
  289. package/web-shell/index.html +2 -2
  290. package/chunks/chunk-3UMWOKJC.js +0 -78
  291. package/chunks/chunk-IQAFKVXS.js +0 -22
  292. package/web-shell/assets/channel-CQx7VSAp.js +0 -1
  293. package/web-shell/assets/classDiagram-DTDB5LWJ-C-Uz8hHk.js +0 -1
  294. package/web-shell/assets/classDiagram-v2-JRS7N3AN-C-Uz8hHk.js +0 -1
  295. package/web-shell/assets/index-CCrkEbzz.css +0 -36
  296. package/web-shell/assets/stateDiagram-v2-4QOOHH4V-LuuL5byY.js +0 -1
  297. package/web-shell/assets/swimlanesDiagram-VK2B7HYN-COmnNq8s.js +0 -8
@@ -23,10 +23,11 @@ import {
23
23
  SessionConflictError,
24
24
  SessionNotArchivedError,
25
25
  SessionNotFoundError
26
- } from "./chunk-F47DITLZ.js";
26
+ } from "./chunk-FAWTMDX7.js";
27
27
  import {
28
- readWorktreeSession
29
- } from "./chunk-E4VX6LXB.js";
28
+ readWorktreeSession,
29
+ readWorktreeSessionStrict
30
+ } from "./chunk-YZTGGCEE.js";
30
31
  import {
31
32
  SESSION_PR_LIST_LIMIT,
32
33
  SESSION_PR_URL_MAX_LENGTH,
@@ -40,7 +41,12 @@ import {
40
41
  gitEnv,
41
42
  readSessionPrs,
42
43
  toSessionPrInfo
43
- } from "./chunk-TSLRORQR.js";
44
+ } from "./chunk-PDUMGZ2P.js";
45
+ import {
46
+ GitWorktreeService,
47
+ WORKTREE_SESSION_FILE,
48
+ readWorktreeSessionMarkerStrict
49
+ } from "./chunk-HIXUUCGY.js";
44
50
  import {
45
51
  updateCronTasks
46
52
  } from "./chunk-F53KKZUD.js";
@@ -1322,6 +1328,7 @@ __name(createWorkspaceRuntimeSessionService, "createWorkspaceRuntimeSessionServi
1322
1328
 
1323
1329
  // packages/cli/src/serve/server/session-archive.ts
1324
1330
  init_esbuild_shims();
1331
+ import fs2 from "node:fs";
1325
1332
 
1326
1333
  // packages/cli/src/serve/scheduled-task-session-lifecycle.ts
1327
1334
  init_esbuild_shims();
@@ -1394,6 +1401,296 @@ async function removeTasksForSessions(projectRoot, sessionIds, options = {}) {
1394
1401
  }
1395
1402
  __name(removeTasksForSessions, "removeTasksForSessions");
1396
1403
 
1404
+ // packages/cli/src/serve/server/worktree-orphan-cleanup.ts
1405
+ init_esbuild_shims();
1406
+ import fs from "node:fs";
1407
+ import * as fsp from "node:fs/promises";
1408
+ import path2 from "node:path";
1409
+ import { execFile } from "node:child_process";
1410
+ import { promisify } from "node:util";
1411
+
1412
+ // packages/cli/src/serve/server/worktree-ownership-op.ts
1413
+ init_esbuild_shims();
1414
+ var worktreeOwnershipOpTails = /* @__PURE__ */ new Map();
1415
+ async function acquireWorktreeOwnershipOp(worktreeKey) {
1416
+ const previous = worktreeOwnershipOpTails.get(worktreeKey);
1417
+ let releaseGate;
1418
+ const gate = new Promise((resolve) => {
1419
+ releaseGate = resolve;
1420
+ });
1421
+ const tail = (previous ?? Promise.resolve()).then(() => gate);
1422
+ worktreeOwnershipOpTails.set(worktreeKey, tail);
1423
+ if (previous) {
1424
+ await previous;
1425
+ }
1426
+ let released = false;
1427
+ return () => {
1428
+ if (released) return;
1429
+ released = true;
1430
+ releaseGate();
1431
+ if (worktreeOwnershipOpTails.get(worktreeKey) === tail) {
1432
+ worktreeOwnershipOpTails.delete(worktreeKey);
1433
+ }
1434
+ };
1435
+ }
1436
+ __name(acquireWorktreeOwnershipOp, "acquireWorktreeOwnershipOp");
1437
+
1438
+ // packages/cli/src/serve/server/worktree-orphan-cleanup.ts
1439
+ function canonicalPath(candidate) {
1440
+ try {
1441
+ return fs.realpathSync(candidate);
1442
+ } catch {
1443
+ return candidate;
1444
+ }
1445
+ }
1446
+ __name(canonicalPath, "canonicalPath");
1447
+ var execFileAsync = promisify(execFile);
1448
+ var DISPOSABLE_IGNORED_ROOTS = /* @__PURE__ */ new Set(["node_modules", "dist", "coverage"]);
1449
+ async function checkoutHasWork(worktreePath) {
1450
+ try {
1451
+ const { stdout } = await execFileAsync(
1452
+ "git",
1453
+ [
1454
+ "status",
1455
+ "--porcelain",
1456
+ "--untracked-files=normal",
1457
+ "--ignored=matching"
1458
+ ],
1459
+ { cwd: worktreePath, env: gitEnv() }
1460
+ );
1461
+ return stdout.split("\n").filter((line) => line.trim().length > 0).some((line) => {
1462
+ const entry = line.slice(3);
1463
+ if (entry === WORKTREE_SESSION_FILE) return false;
1464
+ if (line.startsWith("!!")) {
1465
+ return !DISPOSABLE_IGNORED_ROOTS.has(entry.split("/")[0]);
1466
+ }
1467
+ return true;
1468
+ });
1469
+ } catch {
1470
+ return true;
1471
+ }
1472
+ }
1473
+ __name(checkoutHasWork, "checkoutHasWork");
1474
+ function logWarning(message) {
1475
+ writeStderrLine(`qwen serve: ${message}`);
1476
+ }
1477
+ __name(logWarning, "logWarning");
1478
+ function logWorktreeCleanupPreserve(sessionId, reason) {
1479
+ logWarning(
1480
+ `worktree cleanup preserved checkout action=delete session=${safeLogValue(
1481
+ sessionId
1482
+ )} reason=${safeLogValue(reason)}`
1483
+ );
1484
+ }
1485
+ __name(logWorktreeCleanupPreserve, "logWorktreeCleanupPreserve");
1486
+ async function preclassifyWorktreeCleanup(service, sessionId, runtimeWorkspaceCwd) {
1487
+ let sidecarPath = service.getWorktreeSessionPath(sessionId);
1488
+ let sidecar = await readWorktreeSessionStrict(sidecarPath);
1489
+ if (sidecar.state === "missing") {
1490
+ const archivedPath = service.getWorktreeSessionPathForArchiveState(
1491
+ sessionId,
1492
+ "archived"
1493
+ );
1494
+ if (archivedPath !== sidecarPath) {
1495
+ sidecarPath = archivedPath;
1496
+ sidecar = await readWorktreeSessionStrict(sidecarPath);
1497
+ }
1498
+ }
1499
+ if (sidecar.state === "missing") return void 0;
1500
+ if (sidecar.state === "invalid") {
1501
+ logWorktreeCleanupPreserve(
1502
+ sessionId,
1503
+ `unreadable sidecar (${sidecar.reason})`
1504
+ );
1505
+ return void 0;
1506
+ }
1507
+ const session = sidecar.session;
1508
+ if (session.workspaceCwd === void 0) return void 0;
1509
+ if (session.supersededBy !== void 0) return void 0;
1510
+ if (!path2.isAbsolute(session.workspaceCwd) || !path2.isAbsolute(session.originalCwd)) {
1511
+ logWorktreeCleanupPreserve(
1512
+ sessionId,
1513
+ "sidecar base is not an absolute path"
1514
+ );
1515
+ return void 0;
1516
+ }
1517
+ if (runtimeWorkspaceCwd !== void 0) {
1518
+ if (canonicalPath(session.workspaceCwd) !== canonicalPath(runtimeWorkspaceCwd)) {
1519
+ logWorktreeCleanupPreserve(
1520
+ sessionId,
1521
+ "sidecar belongs to another workspace"
1522
+ );
1523
+ return void 0;
1524
+ }
1525
+ const workspaceRoots = [canonicalPath(runtimeWorkspaceCwd)];
1526
+ try {
1527
+ const repoTop = await new GitWorktreeService(
1528
+ runtimeWorkspaceCwd
1529
+ ).getRepoTopLevel();
1530
+ if (repoTop && canonicalPath(repoTop) !== workspaceRoots[0]) {
1531
+ workspaceRoots.push(canonicalPath(repoTop));
1532
+ }
1533
+ } catch {
1534
+ }
1535
+ if (!workspaceRoots.includes(canonicalPath(session.originalCwd))) {
1536
+ logWorktreeCleanupPreserve(
1537
+ sessionId,
1538
+ "sidecar original cwd is outside the accepted roots"
1539
+ );
1540
+ return void 0;
1541
+ }
1542
+ }
1543
+ return {
1544
+ sessionId,
1545
+ sidecar: session,
1546
+ sidecarPath,
1547
+ lockKey: canonicalPath(session.worktreePath)
1548
+ };
1549
+ }
1550
+ __name(preclassifyWorktreeCleanup, "preclassifyWorktreeCleanup");
1551
+ function acquireWorktreeCleanupLock(plan) {
1552
+ return acquireWorktreeOwnershipOp(plan.lockKey);
1553
+ }
1554
+ __name(acquireWorktreeCleanupLock, "acquireWorktreeCleanupLock");
1555
+ async function worktreeAllowedRoots(workspaceCwd, originalCwd) {
1556
+ const roots = /* @__PURE__ */ new Set();
1557
+ for (const base of [workspaceCwd, originalCwd]) {
1558
+ if (!path2.isAbsolute(base)) continue;
1559
+ roots.add(path2.join(base, ".qwen", "worktrees"));
1560
+ try {
1561
+ const repoTop = await new GitWorktreeService(base).getRepoTopLevel();
1562
+ if (repoTop) {
1563
+ roots.add(path2.join(repoTop, ".qwen", "worktrees"));
1564
+ }
1565
+ } catch {
1566
+ }
1567
+ }
1568
+ return [...roots];
1569
+ }
1570
+ __name(worktreeAllowedRoots, "worktreeAllowedRoots");
1571
+ async function verifyWorktreeCleanupOwnership(plan) {
1572
+ const { sessionId, sidecar } = plan;
1573
+ const locked = await readWorktreeSessionStrict(plan.sidecarPath);
1574
+ if (locked.state !== "valid") {
1575
+ return {
1576
+ ok: false,
1577
+ reason: locked.state === "missing" ? "sidecar disappeared before delete" : `unreadable sidecar (${locked.reason})`
1578
+ };
1579
+ }
1580
+ const current = locked.session;
1581
+ if (current.workspaceCwd === void 0 || current.supersededBy !== void 0 || current.slug !== sidecar.slug || current.worktreePath !== sidecar.worktreePath || current.originalCwd !== sidecar.originalCwd || current.workspaceCwd !== sidecar.workspaceCwd) {
1582
+ return { ok: false, reason: "sidecar changed before delete" };
1583
+ }
1584
+ const marker = await readWorktreeSessionMarkerStrict(plan.lockKey);
1585
+ if (marker.state !== "valid" || marker.sessionId !== sessionId) {
1586
+ return {
1587
+ ok: false,
1588
+ reason: marker.state === "valid" ? "marker names another session" : `marker ${marker.state}`
1589
+ };
1590
+ }
1591
+ const allowedRoots = await worktreeAllowedRoots(
1592
+ current.workspaceCwd,
1593
+ current.originalCwd
1594
+ );
1595
+ const contained = allowedRoots.some((root) => {
1596
+ try {
1597
+ const realRoot = fs.realpathSync(root);
1598
+ return plan.lockKey === realRoot || plan.lockKey.startsWith(realRoot + path2.sep);
1599
+ } catch {
1600
+ return false;
1601
+ }
1602
+ });
1603
+ if (!contained) {
1604
+ return { ok: false, reason: "checkout outside workspace worktree roots" };
1605
+ }
1606
+ const chatsDir = path2.dirname(plan.sidecarPath);
1607
+ const ownFile = path2.basename(plan.sidecarPath);
1608
+ let entries;
1609
+ try {
1610
+ entries = await fsp.readdir(chatsDir);
1611
+ } catch (error) {
1612
+ return {
1613
+ ok: false,
1614
+ reason: `sidecar scan failed: ${error instanceof Error ? error.message : String(error)}`
1615
+ };
1616
+ }
1617
+ for (const entry of entries) {
1618
+ if (!entry.endsWith(".worktree.json") || entry === ownFile) continue;
1619
+ const other = await readWorktreeSessionStrict(path2.join(chatsDir, entry));
1620
+ if (other.state === "missing") continue;
1621
+ if (other.state === "invalid") {
1622
+ return { ok: false, reason: `unreadable sibling sidecar ${entry}` };
1623
+ }
1624
+ if (canonicalPath(other.session.worktreePath) === plan.lockKey) {
1625
+ if (other.session.supersededBy === sessionId) continue;
1626
+ return { ok: false, reason: `checkout shared with ${entry}` };
1627
+ }
1628
+ }
1629
+ const removalTarget = canonicalPath(
1630
+ new GitWorktreeService(current.originalCwd).getUserWorktreePath(
1631
+ current.slug
1632
+ )
1633
+ );
1634
+ if (removalTarget !== plan.lockKey) {
1635
+ return {
1636
+ ok: false,
1637
+ reason: "slug does not resolve to the verified checkout"
1638
+ };
1639
+ }
1640
+ plan.sidecar = current;
1641
+ return { ok: true };
1642
+ }
1643
+ __name(verifyWorktreeCleanupOwnership, "verifyWorktreeCleanupOwnership");
1644
+ async function checkoutStillPopulated(worktreePath) {
1645
+ try {
1646
+ return (await fsp.readdir(worktreePath)).length > 0;
1647
+ } catch {
1648
+ return false;
1649
+ }
1650
+ }
1651
+ __name(checkoutStillPopulated, "checkoutStillPopulated");
1652
+ async function executeWorktreeCleanup(plan) {
1653
+ const { sessionId, sidecar } = plan;
1654
+ const marker = await readWorktreeSessionMarkerStrict(plan.lockKey);
1655
+ if (marker.state !== "valid" || marker.sessionId !== sessionId) {
1656
+ logWorktreeCleanupPreserve(sessionId, "marker changed after delete");
1657
+ return;
1658
+ }
1659
+ if (await checkoutHasWork(plan.lockKey)) {
1660
+ logWorktreeCleanupPreserve(sessionId, "checkout has uncommitted work");
1661
+ return;
1662
+ }
1663
+ const result = await new GitWorktreeService(
1664
+ sidecar.originalCwd
1665
+ ).removeUserWorktree(sidecar.slug, { deleteBranch: true });
1666
+ if (!result.success) {
1667
+ const errorText = result.error ?? "unknown error";
1668
+ if (await checkoutStillPopulated(plan.lockKey)) {
1669
+ logWorktreeCleanupPreserve(
1670
+ sessionId,
1671
+ `checkout removal failed: ${errorText}`
1672
+ );
1673
+ } else {
1674
+ logWarning(
1675
+ `worktree cleanup removal failed, checkout may be partially deleted action=delete session=${safeLogValue(
1676
+ sessionId
1677
+ )} reason=${safeLogValue(errorText)}`
1678
+ );
1679
+ }
1680
+ return;
1681
+ }
1682
+ if (result.branchPreserved) {
1683
+ logWarning(
1684
+ `worktree cleanup removed checkout but kept branch action=delete session=${safeLogValue(
1685
+ sessionId
1686
+ )} slug=${safeLogValue(sidecar.slug)} branch=${safeLogValue(
1687
+ sidecar.worktreeBranch
1688
+ )} reason=unmerged commits`
1689
+ );
1690
+ }
1691
+ }
1692
+ __name(executeWorktreeCleanup, "executeWorktreeCleanup");
1693
+
1397
1694
  // packages/cli/src/serve/server/session-archive.ts
1398
1695
  var DaemonDrainingError = class extends Error {
1399
1696
  static {
@@ -1755,6 +2052,7 @@ async function deleteDaemonSessions(params) {
1755
2052
  coordinator,
1756
2053
  coordinatorLockHeld = false,
1757
2054
  assertCanMutate,
2055
+ runtimeWorkspaceCwd,
1758
2056
  onError
1759
2057
  } = params;
1760
2058
  const uniqueSessionIds = [
@@ -1765,6 +2063,49 @@ async function deleteDaemonSessions(params) {
1765
2063
  coordinator.assertNotTransitioning(sessionId);
1766
2064
  }
1767
2065
  }
2066
+ const runWithWorktreeCleanup = /* @__PURE__ */ __name(async (sessionId, mutateSession) => {
2067
+ const activeSidecarPath = service.getWorktreeSessionPath(sessionId);
2068
+ const archivedSidecarPath = service.getWorktreeSessionPathForArchiveState(
2069
+ sessionId,
2070
+ "archived"
2071
+ );
2072
+ if (!fs2.existsSync(activeSidecarPath) && (archivedSidecarPath === activeSidecarPath || !fs2.existsSync(archivedSidecarPath))) {
2073
+ return coordinator.runExclusiveMany([sessionId], mutateSession);
2074
+ }
2075
+ const cleanupPlan = await preclassifyWorktreeCleanup(
2076
+ service,
2077
+ sessionId,
2078
+ runtimeWorkspaceCwd
2079
+ );
2080
+ if (!cleanupPlan) {
2081
+ return coordinator.runExclusiveMany([sessionId], mutateSession);
2082
+ }
2083
+ const releaseCleanupLock = await acquireWorktreeCleanupLock(cleanupPlan);
2084
+ try {
2085
+ const ownership = await verifyWorktreeCleanupOwnership(cleanupPlan);
2086
+ if (!ownership.ok) {
2087
+ logWorktreeCleanupPreserve(sessionId, ownership.reason);
2088
+ }
2089
+ const result = await coordinator.runExclusiveMany(
2090
+ [sessionId],
2091
+ mutateSession
2092
+ );
2093
+ if (ownership.ok && result.kind === "removed") {
2094
+ try {
2095
+ assertCanMutate?.();
2096
+ await executeWorktreeCleanup(cleanupPlan);
2097
+ } catch (error) {
2098
+ logWorktreeCleanupPreserve(
2099
+ sessionId,
2100
+ `cleanup execution failed: ${errorMessage(error)}`
2101
+ );
2102
+ }
2103
+ }
2104
+ return result;
2105
+ } finally {
2106
+ releaseCleanupLock();
2107
+ }
2108
+ }, "runWithWorktreeCleanup");
1768
2109
  const results = await Promise.all(
1769
2110
  uniqueSessionIds.map(async (sessionId) => {
1770
2111
  try {
@@ -1810,7 +2151,7 @@ async function deleteDaemonSessions(params) {
1810
2151
  try {
1811
2152
  await bridge.closeSession(sessionId);
1812
2153
  } catch (error) {
1813
- if (isSessionNotFoundError(error)) {
2154
+ if (isSessionNotFoundError(error) && error.code !== "session_closing") {
1814
2155
  return await removePersistedSession();
1815
2156
  }
1816
2157
  onError?.({
@@ -1826,7 +2167,7 @@ async function deleteDaemonSessions(params) {
1826
2167
  }
1827
2168
  return await removePersistedSession();
1828
2169
  }, "mutateSession");
1829
- return await (coordinatorLockHeld ? mutateSession() : coordinator.runExclusiveMany([sessionId], mutateSession));
2170
+ return await (coordinatorLockHeld ? mutateSession() : runWithWorktreeCleanup(sessionId, mutateSession));
1830
2171
  } catch (error) {
1831
2172
  if (error instanceof DaemonDrainingError) {
1832
2173
  throw error;
@@ -2361,12 +2702,12 @@ __name(unarchiveDaemonSessions, "unarchiveDaemonSessions");
2361
2702
 
2362
2703
  // packages/cli/src/serve/server/aone-mrs.ts
2363
2704
  init_esbuild_shims();
2364
- import { execFile } from "node:child_process";
2365
- import { promisify } from "node:util";
2366
- var execFileAsync = promisify(execFile);
2705
+ import { execFile as execFile2 } from "node:child_process";
2706
+ import { promisify as promisify2 } from "node:util";
2707
+ var execFileAsync2 = promisify2(execFile2);
2367
2708
  var a1AvailabilityVerified = false;
2368
2709
  var defaultA1Exec = /* @__PURE__ */ __name(async (args, options) => {
2369
- const { stdout } = await execFileAsync("a1", [...args], {
2710
+ const { stdout } = await execFileAsync2("a1", [...args], {
2370
2711
  ...options,
2371
2712
  encoding: "utf8",
2372
2713
  windowsHide: true
@@ -2409,7 +2750,7 @@ async function resolveAoneWorkspaceRepo(workspaceCwd, env) {
2409
2750
  if (!gitRoot) return void 0;
2410
2751
  let origin;
2411
2752
  try {
2412
- ({ stdout: origin } = await execFileAsync(
2753
+ ({ stdout: origin } = await execFileAsync2(
2413
2754
  "git",
2414
2755
  ["remote", "get-url", "origin"],
2415
2756
  {
@@ -2578,6 +2919,7 @@ export {
2578
2919
  parseSessionPageSizeQuery,
2579
2920
  runWithWorkspaceRuntimeStorage,
2580
2921
  createWorkspaceRuntimeSessionService,
2922
+ acquireWorktreeOwnershipOp,
2581
2923
  DaemonDrainingError,
2582
2924
  SessionArchiveCoordinator,
2583
2925
  deleteDaemonSessions,
@@ -75,7 +75,7 @@ import {
75
75
  stripToolResultImages,
76
76
  toolResultBoundaryArtifact,
77
77
  toolResultPartDiagnosticValues
78
- } from "./chunk-TSLRORQR.js";
78
+ } from "./chunk-PDUMGZ2P.js";
79
79
  import {
80
80
  hasVerifiableInode,
81
81
  openNoFollow
@@ -109,10 +109,10 @@ import {
109
109
  import {
110
110
  BUILT_IN_OUTPUT_STYLES,
111
111
  getBuiltInOutputStyle
112
- } from "./chunk-OFB36ZBA.js";
112
+ } from "./chunk-3LPJ776W.js";
113
113
  import {
114
114
  fetchWithPolicy
115
- } from "./chunk-UKADFFL2.js";
115
+ } from "./chunk-OFVAS4AR.js";
116
116
  import {
117
117
  COMBINED_PASS_TOLERANCE_FACTOR,
118
118
  TOOL_OUTPUT_TRUNCATED_PREFIX,
@@ -121,7 +121,7 @@ import {
121
121
  removeMCPStatusChangeListener,
122
122
  runSideQuery,
123
123
  updateMCPServerStatus
124
- } from "./chunk-WQBR7LN5.js";
124
+ } from "./chunk-6QV7Z74P.js";
125
125
  import {
126
126
  getInvocationContext
127
127
  } from "./chunk-5ETULJLP.js";
@@ -3293,6 +3293,7 @@ function specToModelConfig(spec, prefix, baseUrl, envKey) {
3293
3293
  id: spec.id,
3294
3294
  name: prefix ? `[${prefix}] ${spec.id}` : spec.id,
3295
3295
  ...spec.description ? { description: spec.description } : {},
3296
+ ...spec.capabilities ? { capabilities: spec.capabilities } : {},
3296
3297
  baseUrl,
3297
3298
  envKey,
3298
3299
  ...spec.supportsImageGeneration ? { supportsImageGeneration: true } : {},
@@ -3327,11 +3328,16 @@ function buildModelConfigs(config, inputs) {
3327
3328
  (spec) => specToModelConfig(spec, prefix, inputs.baseUrl, envKey)
3328
3329
  );
3329
3330
  } else if (config.models && config.modelsEditable) {
3330
- const specMap = new Map(config.models.map((s) => [s.id, s]));
3331
+ const specMap = new Map(config.models.map((s) => [s.id.toLowerCase(), s]));
3331
3332
  models = inputs.modelIds.map((id) => {
3332
- const spec = specMap.get(id);
3333
+ const spec = specMap.get(id.toLowerCase());
3333
3334
  if (spec) {
3334
- return specToModelConfig(spec, prefix, inputs.baseUrl, envKey);
3335
+ return specToModelConfig(
3336
+ { ...spec, id },
3337
+ prefix,
3338
+ inputs.baseUrl,
3339
+ envKey
3340
+ );
3335
3341
  }
3336
3342
  const genConfig = buildAdvancedGenerationConfig(inputs.advancedConfig);
3337
3343
  return {
@@ -3841,7 +3847,14 @@ var deepseekProvider = {
3841
3847
  {
3842
3848
  id: "deepseek-v4-pro",
3843
3849
  contextWindowSize: 1e6,
3844
- enableThinking: true
3850
+ capabilities: {
3851
+ reasoning: {
3852
+ thinking: true,
3853
+ efforts: ["high", "max"],
3854
+ defaultEffort: "high",
3855
+ disableField: "thinking"
3856
+ }
3857
+ }
3845
3858
  },
3846
3859
  { id: "deepseek-v4-flash", contextWindowSize: 1e6 }
3847
3860
  ],
@@ -6,42 +6,42 @@ import {
6
6
  parseChannelWebhookConfig,
7
7
  parseChannelWebhookConfigLenient,
8
8
  resolveEnvVars
9
- } from "./chunk-BNWIX6BM.js";
10
- import "./chunk-RGAQDQ3Z.js";
11
- import "./chunk-RH344FKI.js";
9
+ } from "./chunk-UXDVUFKU.js";
10
+ import "./chunk-UHUT4IDM.js";
11
+ import "./chunk-3BTHHXXE.js";
12
12
  import {
13
13
  findCliEntryPath
14
14
  } from "./chunk-V6WHFGST.js";
15
- import "./chunk-65GHQ4FX.js";
15
+ import "./chunk-XVTCSVBK.js";
16
16
  import "./chunk-IW6RQPQB.js";
17
- import "./chunk-TXAEXF2B.js";
17
+ import "./chunk-ZU2T5JIS.js";
18
18
  import "./chunk-GELRJXE2.js";
19
19
  import "./chunk-32CM56LO.js";
20
- import "./chunk-C7M445SS.js";
20
+ import "./chunk-WJDXKQIO.js";
21
21
  import "./chunk-2EKVPSIJ.js";
22
22
  import "./chunk-LJZSMWOH.js";
23
- import "./chunk-E4VX6LXB.js";
24
- import "./chunk-RSU3I6UL.js";
23
+ import "./chunk-YZTGGCEE.js";
24
+ import "./chunk-6SADVYQQ.js";
25
25
  import "./chunk-DJXSOEFB.js";
26
- import "./chunk-KTLT7VCX.js";
26
+ import "./chunk-25CBAK3H.js";
27
27
  import "./chunk-J3VZF2AL.js";
28
28
  import "./chunk-OWCFKIFQ.js";
29
29
  import "./chunk-ZPJWUGCS.js";
30
30
  import "./chunk-5Z4FCEPY.js";
31
31
  import "./chunk-BUQN5LTI.js";
32
- import "./chunk-VU7O7CGQ.js";
33
- import "./chunk-SD7Y2PMC.js";
32
+ import "./chunk-XDNFODER.js";
33
+ import "./chunk-YAC7H4K3.js";
34
34
  import "./chunk-VNOVK4I7.js";
35
- import "./chunk-TSLRORQR.js";
35
+ import "./chunk-PDUMGZ2P.js";
36
36
  import "./chunk-GOFAQQZA.js";
37
- import "./chunk-3K65MUKD.js";
37
+ import "./chunk-65I7S4Z3.js";
38
38
  import "./chunk-6HUXPLB5.js";
39
39
  import "./chunk-TWPJO254.js";
40
40
  import "./chunk-CQ35AJ4Z.js";
41
41
  import "./chunk-YHDGABDC.js";
42
42
  import "./chunk-LYT2OU7D.js";
43
43
  import "./chunk-B54PFQS5.js";
44
- import "./chunk-ERMAXPXA.js";
44
+ import "./chunk-HIXUUCGY.js";
45
45
  import "./chunk-6PVPNMXU.js";
46
46
  import "./chunk-565U2ANU.js";
47
47
  import "./chunk-FDOGGKAA.js";
@@ -59,26 +59,26 @@ import "./chunk-BF3RUIVP.js";
59
59
  import "./chunk-JX6XHPTX.js";
60
60
  import "./chunk-CLKE4IY3.js";
61
61
  import "./chunk-ZSTCM3MX.js";
62
- import "./chunk-NXWYCSPL.js";
62
+ import "./chunk-SOA4HKRJ.js";
63
63
  import "./chunk-MLXTMF7H.js";
64
- import "./chunk-OFB36ZBA.js";
64
+ import "./chunk-3LPJ776W.js";
65
65
  import "./chunk-3CZ2BQV6.js";
66
66
  import "./chunk-PQEISIKS.js";
67
- import "./chunk-3K456UJF.js";
67
+ import "./chunk-VF6D6EGV.js";
68
68
  import "./chunk-H3Q3RSKZ.js";
69
69
  import "./chunk-S6LOFUVP.js";
70
70
  import "./chunk-NAVJD2PQ.js";
71
- import "./chunk-UKADFFL2.js";
72
- import "./chunk-EJNYBDYC.js";
71
+ import "./chunk-OFVAS4AR.js";
72
+ import "./chunk-HNLMYDQE.js";
73
73
  import "./chunk-QHMLYMMS.js";
74
74
  import "./chunk-CFKIH3D3.js";
75
- import "./chunk-2LD5U7Q3.js";
75
+ import "./chunk-6YEOCHSE.js";
76
76
  import "./chunk-DJ2GSRLV.js";
77
- import "./chunk-W4LL5RZO.js";
78
- import "./chunk-3UMWOKJC.js";
77
+ import "./chunk-4ALNJDHL.js";
78
+ import "./chunk-NOO4QFXM.js";
79
79
  import "./chunk-KFFCDLKV.js";
80
80
  import "./chunk-7OCIQNKX.js";
81
- import "./chunk-WQBR7LN5.js";
81
+ import "./chunk-6QV7Z74P.js";
82
82
  import "./chunk-5ETULJLP.js";
83
83
  import "./chunk-XBVNNDPK.js";
84
84
  import "./chunk-VGC4I5JJ.js";
@@ -88,7 +88,7 @@ import "./chunk-HD7O6WLV.js";
88
88
  import "./chunk-WZAD4ZNJ.js";
89
89
  import "./chunk-FPGTNKCP.js";
90
90
  import "./chunk-TIGXX4PA.js";
91
- import "./chunk-PLUAIHZO.js";
91
+ import "./chunk-N7YQEKGX.js";
92
92
  import "./chunk-XFFRI3WM.js";
93
93
  import "./chunk-4HOEU2OR.js";
94
94
  import "./chunk-HHJLM3WQ.js";