@qwen-code/qwen-code 0.22.2 → 0.22.3

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 (324) hide show
  1. package/bundled/computer-use/SKILL.md +3 -3
  2. package/bundled/qc-helper/docs/configuration/settings.md +37 -36
  3. package/bundled/qc-helper/docs/features/channels/dws.md +2 -0
  4. package/bundled/qc-helper/docs/features/channels/overview.md +34 -3
  5. package/bundled/qc-helper/docs/features/code-review.md +3 -3
  6. package/bundled/qc-helper/docs/features/computer-use.md +2 -2
  7. package/bundled/qc-helper/docs/features/tool-use-summaries.md +1 -1
  8. package/bundled/qc-helper/docs/qwen-serve.md +1 -1
  9. package/bundled/review/SKILL.md +81 -31
  10. package/bundled/review/references/persistence.md +7 -3
  11. package/bundled/review/references/posting.md +10 -4
  12. package/chunks/{MaxSizedBox-X5FZSNAJ.js → MaxSizedBox-X42SXBJH.js} +33 -35
  13. package/chunks/{StandaloneSessionPicker-AVLI6VJP.js → StandaloneSessionPicker-2FJAOLGG.js} +51 -53
  14. package/chunks/{acpAgent-MXEAN54C.js → acpAgent-2ZMIJAFV.js} +268 -186
  15. package/chunks/{agent-PJIPDWHB.js → agent-X5WX3L2I.js} +24 -26
  16. package/chunks/{agent-headless-B4JVD7UK.js → agent-headless-IZM25LJA.js} +24 -26
  17. package/chunks/{anthropicContentGenerator-HGMBACVE.js → anthropicContentGenerator-YVTB6QX7.js} +43 -47
  18. package/chunks/{artifact-tool-5YT4QF7Y.js → artifact-tool-XSMPHZBT.js} +9 -1
  19. package/chunks/{bridge-FKZTVIS3.js → bridge-ME6QXZNA.js} +37 -39
  20. package/chunks/{channel-management-service-X4AZ6IXX.js → channel-management-service-HQ6KDS7C.js} +6 -6
  21. package/chunks/{channel-settings-store-4UFCLBBG.js → channel-settings-store-PEOI7XCG.js} +47 -44
  22. package/chunks/{channel-worker-group-27HMGD5S.js → channel-worker-group-6NA6BBZV.js} +5 -5
  23. package/chunks/{channel-worker-manager-QEGX646Z.js → channel-worker-manager-NEZ2J6RK.js} +5 -5
  24. package/chunks/{channel-worker-supervisor-UEW2WWCC.js → channel-worker-supervisor-FKU7DIHJ.js} +4 -4
  25. package/chunks/{chunk-P5GGM4KS.js → chunk-2HYKTO7V.js} +3 -3
  26. package/chunks/{chunk-XDFHY4R3.js → chunk-2LNNVAUV.js} +2 -2
  27. package/chunks/{chunk-ZFKOCECU.js → chunk-2OBKDPZZ.js} +2 -2
  28. package/chunks/{chunk-3DXFGHAJ.js → chunk-2OUD5T67.js} +1 -1
  29. package/chunks/{chunk-EOGELB3H.js → chunk-2SXSLSQE.js} +1 -1
  30. package/chunks/{chunk-4JWNNLPT.js → chunk-2YOHKHYR.js} +2 -2
  31. package/chunks/{chunk-JU4EEXC7.js → chunk-36GSQ3MM.js} +2 -2
  32. package/chunks/chunk-36LGBEM6.js +130 -0
  33. package/chunks/{chunk-H2WDGQ6D.js → chunk-3JXM2CVW.js} +1 -1
  34. package/chunks/{chunk-G34IR3D6.js → chunk-3SZC4VP4.js} +26 -109
  35. package/chunks/{chunk-HVEYF6VT.js → chunk-3WK3QDNV.js} +1 -1
  36. package/chunks/{chunk-5XBFCMWD.js → chunk-3XKLXHGK.js} +17 -9
  37. package/chunks/{chunk-SFPGAQUL.js → chunk-42IDLQWS.js} +24 -18
  38. package/chunks/{chunk-43GGFFLY.js → chunk-4K7KNVWH.js} +1 -1
  39. package/chunks/{chunk-F6FV3C5K.js → chunk-4NDLQAY2.js} +24 -272
  40. package/chunks/{chunk-VVW4ZNFY.js → chunk-4QHPPXK2.js} +15 -7
  41. package/chunks/{chunk-IJKTMLBE.js → chunk-4TT3IVGA.js} +1 -1
  42. package/chunks/{chunk-C6K43ZDE.js → chunk-4VPCTGH6.js} +5 -5
  43. package/chunks/chunk-4VQBQLIZ.js +293 -0
  44. package/chunks/{chunk-OIVXBW3W.js → chunk-62GQFYID.js} +1 -1
  45. package/chunks/{chunk-BRVWYMKV.js → chunk-6MBXY6WM.js} +1 -1
  46. package/chunks/{chunk-AGR5UROZ.js → chunk-6X7EU5TI.js} +17 -29
  47. package/chunks/{chunk-PFCQ62V4.js → chunk-6ZPDLGHN.js} +6 -6
  48. package/chunks/{chunk-RIEFGNTP.js → chunk-734C6JGI.js} +207 -43
  49. package/chunks/{chunk-FBSSIAAQ.js → chunk-73RM4POK.js} +7 -7
  50. package/chunks/{chunk-KGJGEEVR.js → chunk-7FA2II6K.js} +10 -1
  51. package/chunks/chunk-7J6OTNGO.js +424 -0
  52. package/chunks/{chunk-O2UN57NX.js → chunk-7LOELM2I.js} +19 -2
  53. package/chunks/{chunk-DIMEPKCW.js → chunk-7S226YTK.js} +1 -1
  54. package/chunks/{chunk-CPGJJJLU.js → chunk-7T52W4SW.js} +1 -1
  55. package/chunks/{chunk-5O72BNDD.js → chunk-7VMIMAVB.js} +7 -7
  56. package/chunks/{chunk-XRSOI3DL.js → chunk-A3LWD5MK.js} +1 -1
  57. package/chunks/{chunk-F7TNAPZ4.js → chunk-AIAOIFY4.js} +5 -5
  58. package/chunks/{chunk-4CDSK5AZ.js → chunk-AYFA7MZV.js} +2 -2
  59. package/chunks/{chunk-3JGZSIDA.js → chunk-B466ZSHZ.js} +1 -1
  60. package/chunks/{chunk-L6BZRIUL.js → chunk-B5PHIJGI.js} +182 -4
  61. package/chunks/{chunk-3I6UTTDX.js → chunk-BKWNKLZB.js} +19 -19
  62. package/chunks/{chunk-3FDFA4MZ.js → chunk-BOWFGCEU.js} +1 -1
  63. package/chunks/{chunk-3AFMQUTI.js → chunk-C2X7KY45.js} +1 -1
  64. package/chunks/{chunk-FY76G3G5.js → chunk-C3PEFRKD.js} +4 -4
  65. package/chunks/{chunk-FDY5RMGH.js → chunk-CFJY4DGX.js} +1 -1
  66. package/chunks/{chunk-CCBZDVUA.js → chunk-CIZCL2MW.js} +33 -20
  67. package/chunks/{chunk-LDP5OD6N.js → chunk-CLWO3B77.js} +2 -2
  68. package/chunks/chunk-DJBQCO2E.js +842 -0
  69. package/chunks/{chunk-4J657AJR.js → chunk-DJECZIJX.js} +40 -40
  70. package/chunks/{chunk-F5SZP77N.js → chunk-DJEZ55D4.js} +71 -65
  71. package/chunks/{chunk-BAJKAAOY.js → chunk-DJPASAUV.js} +3840 -1055
  72. package/chunks/{chunk-RUGNCYNO.js → chunk-DMLVSW7L.js} +532 -22
  73. package/chunks/{chunk-4FTKQNWJ.js → chunk-DYXFD5RO.js} +181 -2
  74. package/chunks/{chunk-PDMJ3KGS.js → chunk-EB6QRGHM.js} +1 -1
  75. package/chunks/{chunk-DZWPESIF.js → chunk-EFWRMA2I.js} +3 -3
  76. package/chunks/{chunk-4MQEPP3Y.js → chunk-EQSBPBZ3.js} +5 -119
  77. package/chunks/{chunk-Z7TGYN5F.js → chunk-FROAFEFB.js} +2 -2
  78. package/chunks/{chunk-MZS7GEC7.js → chunk-FTF2YIZ5.js} +1 -1
  79. package/chunks/{chunk-Z7VOMGDC.js → chunk-FTJMWDND.js} +0 -24
  80. package/chunks/{chunk-43UYNAWX.js → chunk-G6FECKTJ.js} +2 -2
  81. package/chunks/{chunk-SJ3ZUWFK.js → chunk-GBJBJ4HX.js} +4 -4
  82. package/chunks/{chunk-IOPCFOTF.js → chunk-GPGU4S2N.js} +2 -2
  83. package/chunks/{chunk-6LFJEACX.js → chunk-GVIVASYK.js} +7 -7
  84. package/chunks/{chunk-Z4X5MTRT.js → chunk-HCOBAG2L.js} +2 -4
  85. package/chunks/{chunk-A7YP63XN.js → chunk-HP5LR5HL.js} +5 -5
  86. package/chunks/{chunk-7JPW6IYH.js → chunk-HVC3PNVC.js} +1 -1
  87. package/chunks/{chunk-TRZTNIQ6.js → chunk-I6LYRJPB.js} +2 -2
  88. package/chunks/{chunk-E55H6BZ7.js → chunk-ICURCKIU.js} +1335 -119
  89. package/chunks/{chunk-4HV6HH33.js → chunk-ISKH4QX3.js} +9 -9
  90. package/chunks/{chunk-WKK5BQNP.js → chunk-JHYH6PYQ.js} +43 -420
  91. package/chunks/{chunk-6IUNAPLR.js → chunk-K5KXUXWC.js} +1 -1
  92. package/chunks/{chunk-JHS74YAB.js → chunk-KID24ZFN.js} +1 -1
  93. package/chunks/{chunk-EFUM7RVY.js → chunk-KJO2LBUK.js} +942 -16
  94. package/chunks/{chunk-B7CDU2SL.js → chunk-KYWTPLBJ.js} +17 -20
  95. package/chunks/{chunk-JSHHYW6T.js → chunk-LHBUKJG2.js} +3 -3
  96. package/chunks/{chunk-P2SU6ZTI.js → chunk-LUEHOUHM.js} +1 -1
  97. package/chunks/{chunk-66KDY3LV.js → chunk-M3QRM3DE.js} +1 -1
  98. package/chunks/{chunk-V4QXXQJ2.js → chunk-MF7HCQWZ.js} +2 -2
  99. package/chunks/{chunk-W5MJJ2V7.js → chunk-MK2GIB46.js} +1 -1
  100. package/chunks/{chunk-Y6LSMB6J.js → chunk-MO3FC2WT.js} +1 -1
  101. package/chunks/{chunk-L6YT5H34.js → chunk-MPNBVAEU.js} +4 -4
  102. package/chunks/{chunk-CSMI4FP5.js → chunk-MSBO7X2W.js} +1 -1
  103. package/chunks/{chunk-5PA6UEYA.js → chunk-MZCJWS5Y.js} +1 -1
  104. package/chunks/{chunk-BGXZBI5B.js → chunk-N4X7G4J2.js} +2 -1
  105. package/chunks/{chunk-6LFTG244.js → chunk-NMOD2FXQ.js} +15 -5
  106. package/chunks/{chunk-KUX5D6DK.js → chunk-NV55WWD6.js} +11330 -10971
  107. package/chunks/{chunk-Q26AYA62.js → chunk-OU5APVWO.js} +2 -2
  108. package/chunks/{chunk-2K6ORIHJ.js → chunk-P2G476QN.js} +11 -11
  109. package/chunks/{chunk-OIP7C4FE.js → chunk-PADPMMYM.js} +4 -4
  110. package/chunks/{chunk-SAH4BD2J.js → chunk-PQEISIKS.js} +67 -0
  111. package/chunks/{chunk-TGWAQ5RB.js → chunk-PZ66FRIC.js} +2071 -2124
  112. package/chunks/{chunk-7UYV53BC.js → chunk-Q2MSPKIJ.js} +1 -1
  113. package/chunks/{chunk-L2M46FP5.js → chunk-QYMAKPY5.js} +5 -5
  114. package/chunks/{chunk-JVPFTDBK.js → chunk-RFIDDFAL.js} +1 -1
  115. package/chunks/chunk-SEONHUS3.js +275 -0
  116. package/chunks/{chunk-ZGXYO7DY.js → chunk-SS4MRMKE.js} +122 -13
  117. package/chunks/{chunk-T32W2JHI.js → chunk-SS5SDCD3.js} +2 -2
  118. package/chunks/{chunk-3SGB2UHX.js → chunk-ST5MDGH3.js} +23 -11
  119. package/chunks/{chunk-MIIVI25Q.js → chunk-ST5V3ZOC.js} +2 -2
  120. package/chunks/{chunk-4K7NQDCG.js → chunk-T4EFG2P5.js} +18 -9
  121. package/chunks/{chunk-TWSKM647.js → chunk-T7KMERIX.js} +1 -1
  122. package/chunks/{chunk-77RG5SFQ.js → chunk-TEBDFQBZ.js} +1 -1
  123. package/chunks/{chunk-6CGL7E7G.js → chunk-TVC6HQ2U.js} +2 -2
  124. package/chunks/{chunk-BBWV7ONL.js → chunk-TZBSGJ6C.js} +6 -6
  125. package/chunks/{chunk-T3WXYEZ4.js → chunk-U54AYGEC.js} +38 -5
  126. package/chunks/{chunk-JCQD3INC.js → chunk-URE3QBBB.js} +1 -1
  127. package/chunks/{chunk-Y3QL45LS.js → chunk-V4264FEG.js} +8 -8
  128. package/chunks/{chunk-KEKZFOL6.js → chunk-V7EESTJV.js} +1 -1
  129. package/chunks/{chunk-R4PMVSR5.js → chunk-VBCPNIQD.js} +18 -20
  130. package/chunks/{chunk-RJC5EIKY.js → chunk-VGIFXISB.js} +3 -3
  131. package/chunks/{chunk-Z7FLBQPR.js → chunk-W3JH33JE.js} +7 -7
  132. package/chunks/{chunk-K2NQPH5D.js → chunk-WGY3AVGM.js} +3 -3
  133. package/chunks/{chunk-PKAYJDB3.js → chunk-WNPDGUJO.js} +21 -2
  134. package/chunks/{chunk-IZIVM7LZ.js → chunk-WXEA74YB.js} +1 -1
  135. package/chunks/{chunk-YRLW2MSX.js → chunk-XBVNNDPK.js} +11 -4
  136. package/chunks/{chunk-IK5BW3CS.js → chunk-XHF7WQ6B.js} +2 -2
  137. package/chunks/{chunk-2NYCN6F2.js → chunk-XSG6G3G6.js} +43 -26
  138. package/chunks/{chunk-HVQ3B7FF.js → chunk-Y5S7LBOZ.js} +43 -6
  139. package/chunks/{chunk-LXIBMVRN.js → chunk-YLSQLSH7.js} +13 -7
  140. package/chunks/{chunk-JSC3H3TD.js → chunk-ZEYFMJQA.js} +14 -6
  141. package/chunks/chunk-ZWJDJ6RU.js +2597 -0
  142. package/chunks/{chunk-QP4C6WCE.js → chunk-ZYMLPEZQ.js} +2 -2
  143. package/chunks/{chunk-BNMF3K5X.js → chunk-ZZMSC3RG.js} +52 -36
  144. package/chunks/{chunk-XDLEZ5HX.js → chunk-ZZUKP7HV.js} +1 -1
  145. package/chunks/{config-utils-BBOCOGZW.js → config-utils-R6M3TA34.js} +39 -39
  146. package/chunks/{contextCommand-EET67MQ2.js → contextCommand-ZCAP23J6.js} +36 -38
  147. package/chunks/{core-runtime-677KFX6Q.js → core-runtime-AXB6SK5D.js} +41 -43
  148. package/chunks/{create-sub-session-JKZAYZX7.js → create-sub-session-4QNE64MR.js} +34 -36
  149. package/chunks/{daemon-MJQUO7RA.js → daemon-3GNHB3M2.js} +495 -7
  150. package/chunks/{daemon-git-worktree-guard-6MVAAZZZ.js → daemon-git-worktree-guard-IVAJJWYK.js} +33 -35
  151. package/chunks/{daemon-status-provider-RFKZOK3S.js → daemon-status-provider-K3SJ5C2U.js} +42 -44
  152. package/chunks/{daemon-trust-policy-DRZPFB4Q.js → daemon-trust-policy-DOR3YG62.js} +41 -43
  153. package/chunks/{daemon-trust-policy-monitor-B5U6TQX5.js → daemon-trust-policy-monitor-KGGROSIV.js} +41 -43
  154. package/chunks/{deferred-core-runtime-BBVIOP24.js → deferred-core-runtime-WOYLUQQ7.js} +33 -35
  155. package/chunks/{dist-DJBNNPLN.js → dist-4WXLCBDR.js} +1 -1
  156. package/chunks/{dist-TJUDJTCB.js → dist-5VXFRTWU.js} +280 -48
  157. package/chunks/{dist-QODVOVWI.js → dist-6BPYWHVD.js} +31 -30
  158. package/chunks/{dist-ZBVOXSKF.js → dist-GFN5DCBX.js} +74 -65
  159. package/chunks/{dist-SATKXKUR.js → dist-HZNT6GQS.js} +1 -1
  160. package/chunks/{dist-ILDBUWDB.js → dist-LVZCXVPF.js} +1 -1
  161. package/chunks/{dist-7CKN54NL.js → dist-N6W6E753.js} +71 -64
  162. package/chunks/{dist-4Q7NTUNB.js → dist-NSV4NBPK.js} +31 -14
  163. package/chunks/{dist-UQUFZDIY.js → dist-SWQMYP2Q.js} +18 -16
  164. package/chunks/{earlyInputCapture-2JOMMNQ4.js → earlyInputCapture-OHBEVO4K.js} +33 -35
  165. package/chunks/{edit-BSV6YRVW.js → edit-LEQLAGPZ.js} +24 -26
  166. package/chunks/{enter-worktree-MQXFFPKM.js → enter-worktree-35QCAAFP.js} +3 -3
  167. package/chunks/{enterPlanMode-PKNF35FE.js → enterPlanMode-ONQN3WHE.js} +27 -29
  168. package/chunks/{environment-MOZMPUHR.js → environment-UANTR7A4.js} +37 -39
  169. package/chunks/{errors-DMPQVYJL.js → errors-WAK6KFBC.js} +36 -38
  170. package/chunks/{exit-worktree-L344UY7K.js → exit-worktree-XQD6D543.js} +3 -3
  171. package/chunks/{exitPlanMode-UE4FGCY4.js → exitPlanMode-UEYBG6P5.js} +24 -26
  172. package/chunks/{fast-path-773PV7PU.js → fast-path-WUL7UZ6H.js} +4 -4
  173. package/chunks/{fast-path-settings-XMFBYFUH.js → fast-path-settings-XH426LUU.js} +3 -3
  174. package/chunks/{glob-CZHOWUEA.js → glob-Y54QUWDY.js} +24 -26
  175. package/chunks/{goal-tools-YZQJXTGH.js → goal-tools-PTD3MBA7.js} +2 -1
  176. package/chunks/{handleAutoUpdate-SGXKTQM6.js → handleAutoUpdate-FP3NWNSG.js} +37 -39
  177. package/chunks/{i18n-B42HKHKH.js → i18n-INIU5X7A.js} +35 -37
  178. package/chunks/{image-gen-HAYOEQ4O.js → image-gen-J6FDGUZP.js} +4 -6
  179. package/chunks/{initializer-FB66WYR3.js → initializer-TYODV6GE.js} +41 -43
  180. package/chunks/{installationInfo-Y7AULNMX.js → installationInfo-AAPKYDSZ.js} +33 -35
  181. package/chunks/{list-2HWGSVRA.js → list-TUODDN6J.js} +44 -46
  182. package/chunks/{gemini-IP4FJAP5.js → llm-NSAVK5V3.js} +84 -82
  183. package/chunks/{geminiContentGenerator-PUNEBWJW.js → llm-content-generator-AY2QKXHE.js} +25 -25
  184. package/chunks/{loadedSettingsAdapter-7Y7IEI6T.js → loadedSettingsAdapter-KJCLZ3C4.js} +41 -43
  185. package/chunks/{loggingContentGenerator-2GGZNGLG.js → loggingContentGenerator-DSFQHXIF.js} +305 -27
  186. package/chunks/{managed-npm-update-5TEV2E3J.js → managed-npm-update-TSWENTK5.js} +33 -35
  187. package/chunks/{mcp-QGG5NMJJ.js → mcp-MWSAPFOL.js} +41 -43
  188. package/chunks/{monitor-FI7PY36Z.js → monitor-RW4GWJHB.js} +24 -26
  189. package/chunks/{nonInteractiveCli-4LO2TL72.js → nonInteractiveCli-JXKL343Q.js} +77 -78
  190. package/chunks/{notebook-edit-TPGMGBST.js → notebook-edit-CQNYS5OR.js} +24 -26
  191. package/chunks/{open-with-auth-4UI3KHUR.js → open-with-auth-YN3QZHVM.js} +1 -1
  192. package/chunks/{openaiContentGenerator-SUCYANUZ.js → openaiContentGenerator-J6QIF7EX.js} +13 -15
  193. package/chunks/{pidfile-JMF2CLMY.js → pidfile-QOIQZFT2.js} +33 -35
  194. package/chunks/process-registry-OAEG6WGC.js +662 -0
  195. package/chunks/{processUtils-IQZBYWSB.js → processUtils-GPHNANKZ.js} +2 -2
  196. package/chunks/{prompt-terminal-ledger-DCZO6S7C.js → prompt-terminal-ledger-FOMFTYOM.js} +34 -36
  197. package/chunks/{qwenContentGenerator-J4TXFGJT.js → qwenContentGenerator-WWDXPYQI.js} +28 -30
  198. package/chunks/{qwenOAuth2-RF33DNZW.js → qwenOAuth2-OF5WRBQT.js} +4 -6
  199. package/chunks/{read-file-QE2B5FTX.js → read-file-FQUQHC6N.js} +5 -5
  200. package/chunks/{record-artifact-RZGZBENU.js → record-artifact-VW23GS4F.js} +2 -2
  201. package/chunks/{report-findings-Q3SYKKW5.js → report-findings-AO5VYFLR.js} +7 -3
  202. package/chunks/{resumeHistoryUtils-CZ4JRDVW.js → resumeHistoryUtils-NSGF3UCB.js} +37 -39
  203. package/chunks/{ripGrep-R6B6HWPX.js → ripGrep-4CAT6SKV.js} +7 -7
  204. package/chunks/{run-qwen-serve-TPHZMSXJ.js → run-qwen-serve-5X6IDZER.js} +271 -86
  205. package/chunks/{runtime-TTIGSBM4.js → runtime-HK27GMPF.js} +46 -48
  206. package/chunks/{scheduled-tasks-QB4ZVUQS.js → scheduled-tasks-MN2ZZ5P6.js} +39 -41
  207. package/chunks/{scheduler-YRUG22M7.js → scheduler-WD4MHMO5.js} +35 -37
  208. package/chunks/{sdk-exporters-http-KCJ4ZFG7.js → sdk-exporters-http-TTU2CHBU.js} +1 -1
  209. package/chunks/{sdk-impl-HLSEDAEP.js → sdk-impl-UUMVYMAL.js} +10 -4
  210. package/chunks/{send-message-Y5I6NYAM.js → send-message-AJ4OCUBV.js} +18 -2
  211. package/chunks/{serve-MXXCDAQN.js → serve-2XCHPPGG.js} +41 -43
  212. package/chunks/{server-DFUSSSHI.js → server-GO2N5DH7.js} +4148 -3348
  213. package/chunks/{session-3TEHNENZ.js → session-IFNHTUBT.js} +81 -82
  214. package/chunks/session-pr-refresh-I3UBWMVP.js +364 -0
  215. package/chunks/{settings-VOZYKLTT.js → settings-L6N54CU6.js} +40 -42
  216. package/chunks/{shell-6RTKZVMI.js → shell-4Y5LLW6N.js} +24 -26
  217. package/chunks/{skill-FEOKFX26.js → skill-YOWTRAKQ.js} +58 -14
  218. package/chunks/{skill-settings-VA4XVYVL.js → skill-settings-ZL4JY5UE.js} +41 -43
  219. package/chunks/{spawnChannel-F6WVP723.js → spawnChannel-ZST6XJVJ.js} +35 -37
  220. package/chunks/{standalone-update-RGILUQVK.js → standalone-update-THVU3OKY.js} +36 -38
  221. package/chunks/{startInteractiveUI-WHJPFOGH.js → startInteractiveUI-XDFSHBZD.js} +401 -334
  222. package/chunks/{stdioHelpers-7A2EE64Z.js → stdioHelpers-AY6XCDY2.js} +3 -1
  223. package/chunks/{task-create-TMSV7RD5.js → task-create-QN4LYRSE.js} +3 -3
  224. package/chunks/{task-list-W55RBFRX.js → task-list-JPLGK45U.js} +2 -2
  225. package/chunks/{task-update-N536I4GQ.js → task-update-IWEOJFV2.js} +3 -3
  226. package/chunks/{team-create-QYSWCYCL.js → team-create-OOPXCDBA.js} +24 -26
  227. package/chunks/{team-delete-FJRFX33M.js → team-delete-RZVVSGCY.js} +2 -2
  228. package/chunks/{team-plan-approval-P7DAD644.js → team-plan-approval-DSX5EWAT.js} +24 -26
  229. package/chunks/{terminal-image-renderer-SMQE46UJ.js → terminal-image-renderer-KS25G33E.js} +33 -35
  230. package/chunks/{theme-manager-RFO5WWFF.js → theme-manager-YMZNG45F.js} +33 -35
  231. package/chunks/{tool-search-F2EMIAPV.js → tool-search-J5Q6U7DN.js} +9 -9
  232. package/chunks/{total-session-admission-HTVTP4BS.js → total-session-admission-PVN64JVV.js} +37 -39
  233. package/chunks/{trustedFolders-7OCNMUQE.js → trustedFolders-FATSC4YI.js} +35 -37
  234. package/chunks/{types-WYCFCEHR.js → types-HKLPXZB3.js} +1 -3
  235. package/chunks/{update-relaunch-4GF3OXMB.js → update-relaunch-SIKHLHVR.js} +6 -6
  236. package/chunks/{updateCheck-7QBDXZRT.js → updateCheck-D3YG2WCD.js} +36 -38
  237. package/chunks/{useAutoAcceptIndicator-UI4SNL2O.js → useAutoAcceptIndicator-ILINOSAS.js} +43 -45
  238. package/chunks/{validateNonInterActiveAuth-BPPA563H.js → validateNonInterActiveAuth-JUDQP6V4.js} +74 -75
  239. package/chunks/{version-ANP4TS6O.js → version-C63GDDWN.js} +1 -1
  240. package/chunks/{web-fetch-QJADSAH3.js → web-fetch-FOQZMNSC.js} +8 -10
  241. package/chunks/{web-search-7TTQKEKM.js → web-search-PUJTBFUC.js} +5 -7
  242. package/chunks/{web-shell-static-A6QMUNNV.js → web-shell-static-HNB4FDOE.js} +2 -2
  243. package/chunks/{workflow-5XN6XSOT.js → workflow-Y5IPINVH.js} +47 -58
  244. package/chunks/{workspace-providers-status-PDFZWL5Q.js → workspace-providers-status-IJ4VHFMB.js} +45 -47
  245. package/chunks/{workspace-registration-store-XKVW2YVH.js → workspace-registration-store-SMJWI2AI.js} +1 -1
  246. package/chunks/{workspace-registry-23R7XRB5.js → workspace-registry-BTGZIMPK.js} +37 -39
  247. package/chunks/{workspace-service-MUYO2QIC.js → workspace-service-SIN67ITC.js} +46 -51
  248. package/chunks/{workspace-skills-status-IKECTOOQ.js → workspace-skills-status-F3RKCUIX.js} +44 -46
  249. package/chunks/{workspace-trust-reconciler-KLGOB53D.js → workspace-trust-reconciler-PLIDLJZX.js} +45 -47
  250. package/chunks/{write-file-GGRBB5TZ.js → write-file-PAIGB33C.js} +26 -28
  251. package/chunks/{zoom-image-6ASG6J4C.js → zoom-image-LYQD7BQA.js} +5 -5
  252. package/cli.js +14 -14
  253. package/package.json +3 -3
  254. package/web-shell/assets/{abnfDiagram-VCTEODGH-uS-vtfs3.js → abnfDiagram-VCTEODGH-TRCMSA_6.js} +1 -1
  255. package/web-shell/assets/{arc-BSTnk5pu.js → arc-D9Uls5b3.js} +1 -1
  256. package/web-shell/assets/{architectureDiagram-5GKGNRK7-DCMyiqzy.js → architectureDiagram-5GKGNRK7-Bwb8jPXg.js} +1 -1
  257. package/web-shell/assets/{blockDiagram-NRAW4CY4-C7_gt0r1.js → blockDiagram-NRAW4CY4-DHj71TSX.js} +1 -1
  258. package/web-shell/assets/{c4Diagram-UCG6FXSJ-BeQg2L8B.js → c4Diagram-UCG6FXSJ-uKBBdbyr.js} +1 -1
  259. package/web-shell/assets/channel-CXjVLaBa.js +1 -0
  260. package/web-shell/assets/{chunk-2Q5K7J3B-DnV9bKBe.js → chunk-2Q5K7J3B-BZd0Phrl.js} +1 -1
  261. package/web-shell/assets/{chunk-5VM5RSS4-rT1GAcT7.js → chunk-5VM5RSS4-7KNeNBqN.js} +1 -1
  262. package/web-shell/assets/{chunk-F27PBJKO-BcgSxqGA.js → chunk-F27PBJKO-BeboS7Fi.js} +1 -1
  263. package/web-shell/assets/{chunk-G27WJ6UU-Bw1ZhyZq.js → chunk-G27WJ6UU-RV3JONoj.js} +1 -1
  264. package/web-shell/assets/{chunk-JWPE2WC7-D4iDw-96.js → chunk-JWPE2WC7-Yw9FCFsP.js} +1 -1
  265. package/web-shell/assets/{chunk-LCL6LL3I-D3MB3GTZ.js → chunk-LCL6LL3I-GIMnydDe.js} +1 -1
  266. package/web-shell/assets/{chunk-POPQ4Y6H-Cep2ndrS.js → chunk-POPQ4Y6H-Cfrux7bL.js} +1 -1
  267. package/web-shell/assets/{chunk-SVP7TREG-BuahMHJc.js → chunk-SVP7TREG-BlvIN0CO.js} +1 -1
  268. package/web-shell/assets/{chunk-XXDRQBXY-BdujIvJY.js → chunk-XXDRQBXY-DMs7Rr4t.js} +1 -1
  269. package/web-shell/assets/classDiagram-DTDB5LWJ-DANEijO3.js +1 -0
  270. package/web-shell/assets/classDiagram-v2-JRS7N3AN-DANEijO3.js +1 -0
  271. package/web-shell/assets/{cose-bilkent-JH36ORCC-CGLLUbF8.js → cose-bilkent-JH36ORCC-DNGqTNwI.js} +1 -1
  272. package/web-shell/assets/{cynefin-OW5HDTMX-D6kDsRSh.js → cynefin-OW5HDTMX-CojMpaoH.js} +1 -1
  273. package/web-shell/assets/{cynefinDiagram-5FMLGOSQ-CCy78qZx.js → cynefinDiagram-5FMLGOSQ-DF07YXGo.js} +1 -1
  274. package/web-shell/assets/{dagre-3AP2YEHR-D5gJuJsf.js → dagre-3AP2YEHR-17-4WtCH.js} +1 -1
  275. package/web-shell/assets/{diagram-S7CK7UJ4-ZwEZ5W__.js → diagram-S7CK7UJ4-G3Wuyz9m.js} +1 -1
  276. package/web-shell/assets/{diagram-UQ7AKVKN-B036APjv.js → diagram-UQ7AKVKN-nyWIKZ8P.js} +1 -1
  277. package/web-shell/assets/{diagram-VSXAHHWV-BfDJ57Fq.js → diagram-VSXAHHWV-tKHhmYSC.js} +1 -1
  278. package/web-shell/assets/{diagram-VX7I27RA-Wha0p5rT.js → diagram-VX7I27RA-CpDf1hYk.js} +1 -1
  279. package/web-shell/assets/{diagram-Z3DM3KII-L20bz2K1.js → diagram-Z3DM3KII-Cah2IFXG.js} +1 -1
  280. package/web-shell/assets/{ebnfDiagram-PWID7BFC-D1ZM0Cp7.js → ebnfDiagram-PWID7BFC-DNaCkgxy.js} +1 -1
  281. package/web-shell/assets/{erDiagram-SSCWMZ5O-CMtA19v8.js → erDiagram-SSCWMZ5O-CAdRgcf1.js} +1 -1
  282. package/web-shell/assets/{flowDiagram-A5DVABFB-D96m326S.js → flowDiagram-A5DVABFB-CMUJAShL.js} +1 -1
  283. package/web-shell/assets/{ganttDiagram-EL5Y4UJY-BuHiYG2o.js → ganttDiagram-EL5Y4UJY-o-_MUNey.js} +1 -1
  284. package/web-shell/assets/{gitGraphDiagram-WWUBYQGX-Ck3NmkSw.js → gitGraphDiagram-WWUBYQGX-_aG-2Z7O.js} +1 -1
  285. package/web-shell/assets/{index-CBGz4Qjl.js → index-BK_NKxiJ.js} +1 -1
  286. package/web-shell/assets/index-Ci-z4zWY.js +1913 -0
  287. package/web-shell/assets/index-LDlXZRHA.css +36 -0
  288. package/web-shell/assets/{infoDiagram-RXCK75RN-B6DAOyXe.js → infoDiagram-RXCK75RN-qJPeZbGP.js} +1 -1
  289. package/web-shell/assets/{ishikawaDiagram-5VMMS53U-Bpg-joFo.js → ishikawaDiagram-5VMMS53U-7Om4vNo1.js} +1 -1
  290. package/web-shell/assets/{journeyDiagram-EYS64GPL-BclrHzGa.js → journeyDiagram-EYS64GPL-BNtXqmBW.js} +1 -1
  291. package/web-shell/assets/{kanban-definition-3QL26DDD-5gJzNTYG.js → kanban-definition-3QL26DDD-COgFec8P.js} +1 -1
  292. package/web-shell/assets/{layout-CEz_1L8z.js → layout-B9n81PC9.js} +1 -1
  293. package/web-shell/assets/{linear-CBjTq9Hc.js → linear-Bb6nXZQq.js} +1 -1
  294. package/web-shell/assets/{mermaid.core-Dzhbxx_I.js → mermaid.core-Cgrm3JVT.js} +6 -6
  295. package/web-shell/assets/{mindmap-definition-FBJOCRG2-DQdVqlBF.js → mindmap-definition-FBJOCRG2-TKwLTjnG.js} +1 -1
  296. package/web-shell/assets/{pegDiagram-XKGWAZYB-D1JZlYXL.js → pegDiagram-XKGWAZYB-BJPuvlpi.js} +1 -1
  297. package/web-shell/assets/{pieDiagram-E7YTZNPT-BmkpYL0w.js → pieDiagram-E7YTZNPT-D01VkNsW.js} +1 -1
  298. package/web-shell/assets/{quadrantDiagram-AXDQQJYC-DRvD6co5.js → quadrantDiagram-AXDQQJYC-C4hHsiv-.js} +1 -1
  299. package/web-shell/assets/{railroadDiagram-O6MQD6OU-CEdjDuoo.js → railroadDiagram-O6MQD6OU-CuEO4xK2.js} +1 -1
  300. package/web-shell/assets/{requirementDiagram-EFPCY7ZU-BCHG-ie8.js → requirementDiagram-EFPCY7ZU-D5J_vIo5.js} +1 -1
  301. package/web-shell/assets/{sankeyDiagram-P5KCCOFB-C9cZMnye.js → sankeyDiagram-P5KCCOFB-DQKY223V.js} +1 -1
  302. package/web-shell/assets/{sequenceDiagram-WJ2MYXX4-DYHRV4zL.js → sequenceDiagram-WJ2MYXX4-D27YV_cm.js} +1 -1
  303. package/web-shell/assets/{sizeCapture-X5ZJPWSS-DlK21aye.js → sizeCapture-X5ZJPWSS-TJg8UcwV.js} +1 -1
  304. package/web-shell/assets/{stateDiagram-HBIQ2CUA-BrmZssvk.js → stateDiagram-HBIQ2CUA-CmnPzUIx.js} +1 -1
  305. package/web-shell/assets/stateDiagram-v2-4QOOHH4V-DNKPyrDc.js +1 -0
  306. package/web-shell/assets/{swimlanes-XN3QIQJK-D9xfcayR.js → swimlanes-XN3QIQJK-ByeP3_Nu.js} +1 -1
  307. package/web-shell/assets/swimlanesDiagram-VK2B7HYN-ZL1HPC6w.js +8 -0
  308. package/web-shell/assets/{timeline-definition-24CTP7MA-D4gdDL_d.js → timeline-definition-24CTP7MA-BsFA5juR.js} +1 -1
  309. package/web-shell/assets/{vennDiagram-4TSXK5OY-DdhIExjI.js → vennDiagram-4TSXK5OY-DREP2ECo.js} +1 -1
  310. package/web-shell/assets/{wardleyDiagram-VM6X3IG4-C9RS_Zof.js → wardleyDiagram-VM6X3IG4-iyd9lKi2.js} +1 -1
  311. package/web-shell/assets/{xychartDiagram-S5SC5T6Z-orRgmxWk.js → xychartDiagram-S5SC5T6Z-CVr1_j9q.js} +1 -1
  312. package/web-shell/index.html +3 -3
  313. package/chunks/chunk-7DJCPZE3.js +0 -945
  314. package/chunks/chunk-J2OSJFP3.js +0 -202
  315. package/chunks/chunk-K2OJUPOE.js +0 -78
  316. package/chunks/chunk-P3QQPMQA.js +0 -19
  317. package/chunks/process-registry-PMJOA5CO.js +0 -172
  318. package/web-shell/assets/channel-CENAhErJ.js +0 -1
  319. package/web-shell/assets/classDiagram-DTDB5LWJ-CM6FArGH.js +0 -1
  320. package/web-shell/assets/classDiagram-v2-JRS7N3AN-CM6FArGH.js +0 -1
  321. package/web-shell/assets/index-8hXIpvo4.js +0 -1865
  322. package/web-shell/assets/index-DclEv91i.css +0 -5
  323. package/web-shell/assets/stateDiagram-v2-4QOOHH4V-B2Q7XDaE.js +0 -1
  324. package/web-shell/assets/swimlanesDiagram-VK2B7HYN-DpZPOSbX.js +0 -8
@@ -49,7 +49,8 @@ __name(getModelConfiguration, "getModelConfiguration");
49
49
  function buildModelReasoningConfigOption(modelId, state = {}) {
50
50
  const reasoning = getModelConfiguration(modelId)?.reasoning;
51
51
  if (!reasoning?.thinking) return void 0;
52
- const currentValue = state.enabled === false ? REASONING_EFFORT_NONE : reasoning.toggleOnly ? REASONING_EFFORT_DEFAULT : reasoning.efforts.find((effort) => effort === state.effort) ?? reasoning.defaultEffort;
52
+ const thinkingMandatory = state.thinkingMandatory === true;
53
+ const currentValue = state.enabled === false && !thinkingMandatory ? REASONING_EFFORT_NONE : reasoning.toggleOnly ? REASONING_EFFORT_DEFAULT : reasoning.efforts.find((effort) => effort === state.effort) ?? reasoning.defaultEffort;
53
54
  return {
54
55
  id: "reasoning_effort",
55
56
  name: "Reasoning effort",
@@ -58,11 +59,13 @@ function buildModelReasoningConfigOption(modelId, state = {}) {
58
59
  type: "select",
59
60
  currentValue,
60
61
  options: [
61
- {
62
- value: REASONING_EFFORT_NONE,
63
- name: "Thinking off",
64
- description: "Disable thinking for this session"
65
- },
62
+ ...thinkingMandatory ? [] : [
63
+ {
64
+ value: REASONING_EFFORT_NONE,
65
+ name: "Thinking off",
66
+ description: "Disable thinking for this session"
67
+ }
68
+ ],
66
69
  ...reasoning.toggleOnly ? [
67
70
  {
68
71
  value: REASONING_EFFORT_DEFAULT,
@@ -76,15 +79,21 @@ function buildModelReasoningConfigOption(modelId, state = {}) {
76
79
  }))
77
80
  ],
78
81
  _meta: {
79
- "qwenCode/reasoning": reasoning.toggleOnly ? { toggleOnly: true } : { defaultEffort: reasoning.defaultEffort }
82
+ "qwenCode/reasoning": reasoning.toggleOnly ? {
83
+ toggleOnly: true,
84
+ ...thinkingMandatory ? { thinkingMandatory: true } : {}
85
+ } : {
86
+ defaultEffort: reasoning.defaultEffort,
87
+ ...thinkingMandatory ? { thinkingMandatory: true } : {}
88
+ }
80
89
  }
81
90
  };
82
91
  }
83
92
  __name(buildModelReasoningConfigOption, "buildModelReasoningConfigOption");
84
- function buildModelReasoningConfigPreview(modelId) {
93
+ function buildModelReasoningConfigPreview(modelId, state = {}) {
85
94
  const reasoning = getModelConfiguration(modelId)?.reasoning;
86
95
  if (!reasoning?.thinking || reasoning.toggleOnly) return void 0;
87
- const option = buildModelReasoningConfigOption(modelId);
96
+ const option = buildModelReasoningConfigOption(modelId, state);
88
97
  return option ? [option] : void 0;
89
98
  }
90
99
  __name(buildModelReasoningConfigPreview, "buildModelReasoningConfigPreview");
@@ -17,7 +17,7 @@ import {
17
17
  isLoaderEnvKey,
18
18
  publishPendingCompileCache,
19
19
  reportRejectedLoaderKeys
20
- } from "./chunk-5PA6UEYA.js";
20
+ } from "./chunk-MZCJWS5Y.js";
21
21
  import {
22
22
  buildTrustPrecedenceRules,
23
23
  require_strip_json_comments,
@@ -563,7 +563,7 @@ var WorkspaceRegistrationStore = class {
563
563
  return removed;
564
564
  }
565
565
  async update(mutate) {
566
- const { atomicWriteFile } = await import("./deferred-core-runtime-BBVIOP24.js");
566
+ const { atomicWriteFile } = await import("./deferred-core-runtime-WOYLUQQ7.js");
567
567
  return withInProcessLock(this.filePath, async () => {
568
568
  const lock = await acquireFileLock(this.filePath);
569
569
  let committed = false;
@@ -6,8 +6,8 @@ import {
6
6
 
7
7
  // packages/cli/src/generated/git-commit.ts
8
8
  init_esbuild_shims();
9
- var GIT_COMMIT_INFO = "0d573e4527";
10
- var CLI_VERSION = "0.22.2";
9
+ var GIT_COMMIT_INFO = "09825973e7";
10
+ var CLI_VERSION = "0.22.3";
11
11
 
12
12
  export {
13
13
  GIT_COMMIT_INFO,
@@ -2,23 +2,23 @@
2
2
  "use strict";
3
3
  import {
4
4
  mapSkillConfigToStatus
5
- } from "./chunk-BGXZBI5B.js";
5
+ } from "./chunk-N4X7G4J2.js";
6
6
  import {
7
7
  resolveSkillSettings
8
- } from "./chunk-Z4X5MTRT.js";
8
+ } from "./chunk-HCOBAG2L.js";
9
9
  import {
10
10
  STATUS_SCHEMA_VERSION
11
- } from "./chunk-JHS74YAB.js";
11
+ } from "./chunk-KID24ZFN.js";
12
12
  import {
13
13
  loadSettings
14
- } from "./chunk-F7TNAPZ4.js";
14
+ } from "./chunk-AIAOIFY4.js";
15
15
  import {
16
16
  SkillManager,
17
17
  isSafeModeEnv
18
- } from "./chunk-TGWAQ5RB.js";
18
+ } from "./chunk-PZ66FRIC.js";
19
19
  import {
20
20
  writeStderrLine
21
- } from "./chunk-KGJGEEVR.js";
21
+ } from "./chunk-7FA2II6K.js";
22
22
  import {
23
23
  init_esbuild_shims
24
24
  } from "./chunk-5O2XNYP6.js";
@@ -42,6 +42,10 @@ function getConversationDirectoryName(storageSessionId) {
42
42
  return `conversation-${createHash("sha256").update(storageSessionId).digest("hex")}`;
43
43
  }
44
44
  __name(getConversationDirectoryName, "getConversationDirectoryName");
45
+ function getConversationStagedDirectoryName(storageSessionId) {
46
+ return `${getConversationDirectoryName(storageSessionId)}.deleting`;
47
+ }
48
+ __name(getConversationStagedDirectoryName, "getConversationStagedDirectoryName");
45
49
  function validateDirectoryStats(stats, scope) {
46
50
  if (stats.isSymbolicLink() || !stats.isDirectory()) {
47
51
  throw new ConversationDirectoryIdentityError(scope, "not_directory");
@@ -67,14 +71,15 @@ function isSameDirectoryIdentity(before, after) {
67
71
  }
68
72
  __name(isSameDirectoryIdentity, "isSameDirectoryIdentity");
69
73
  function hasExpectedDirectoryIdentity(identity, expected) {
70
- const inodesProvable = hasVerifiableInode(identity.inode) && hasVerifiableInode(expected.inode);
71
- return identity.storageSessionId === expected.storageSessionId && identity.name === expected.name && isSameConversationPath(identity.canonicalPath, expected.canonicalPath) && identity.device === expected.device && (!inodesProvable || identity.inode === expected.inode) && isSameConversationPath(
74
+ const identityInodeVerifiable = hasVerifiableInode(identity.inode);
75
+ const expectedInodeVerifiable = hasVerifiableInode(expected.inode);
76
+ return identity.storageSessionId === expected.storageSessionId && identity.name === expected.name && isSameConversationPath(identity.canonicalPath, expected.canonicalPath) && identity.device === expected.device && identityInodeVerifiable === expectedInodeVerifiable && (!identityInodeVerifiable || identity.inode === expected.inode) && isSameConversationPath(
72
77
  identity.root.configuredRoot,
73
78
  expected.root.configuredRoot
74
79
  ) && isSameConversationPath(
75
80
  identity.root.canonicalRoot,
76
81
  expected.root.canonicalRoot
77
- ) && identity.root.device === expected.root.device && (!identity.root.inodeVerifiable || !expected.root.inodeVerifiable || identity.root.inode === expected.root.inode);
82
+ ) && identity.root.device === expected.root.device && identity.root.inodeVerifiable === expected.root.inodeVerifiable && (!identity.root.inodeVerifiable || identity.root.inode === expected.root.inode);
78
83
  }
79
84
  __name(hasExpectedDirectoryIdentity, "hasExpectedDirectoryIdentity");
80
85
  async function createConversationRootIdentity(configuredRoot) {
@@ -176,9 +181,8 @@ async function assertExactConversationRootIdentity(root, candidate) {
176
181
  return root;
177
182
  }
178
183
  __name(assertExactConversationRootIdentity, "assertExactConversationRootIdentity");
179
- async function inspectConversationDirectoryIdentity(root, storageSessionId, expected) {
184
+ async function inspectConversationNamedDirectoryIdentity(root, storageSessionId, name, expected) {
180
185
  await revalidateConversationRootIdentity(root);
181
- const name = getConversationDirectoryName(storageSessionId);
182
186
  const candidate = join(root.canonicalRoot, name);
183
187
  let before;
184
188
  try {
@@ -222,7 +226,33 @@ async function inspectConversationDirectoryIdentity(root, storageSessionId, expe
222
226
  }
223
227
  return identity;
224
228
  }
229
+ __name(inspectConversationNamedDirectoryIdentity, "inspectConversationNamedDirectoryIdentity");
230
+ async function inspectConversationDirectoryIdentity(root, storageSessionId, expected) {
231
+ return inspectConversationNamedDirectoryIdentity(
232
+ root,
233
+ storageSessionId,
234
+ getConversationDirectoryName(storageSessionId),
235
+ expected
236
+ );
237
+ }
225
238
  __name(inspectConversationDirectoryIdentity, "inspectConversationDirectoryIdentity");
239
+ async function inspectConversationStagedDirectoryIdentity(root, storageSessionId) {
240
+ return inspectConversationNamedDirectoryIdentity(
241
+ root,
242
+ storageSessionId,
243
+ getConversationStagedDirectoryName(storageSessionId)
244
+ );
245
+ }
246
+ __name(inspectConversationStagedDirectoryIdentity, "inspectConversationStagedDirectoryIdentity");
247
+ function isSameConversationDirectoryObject(identity, expected) {
248
+ const identityInodeVerifiable = hasVerifiableInode(identity.inode);
249
+ const expectedInodeVerifiable = hasVerifiableInode(expected.inode);
250
+ return identity.storageSessionId === expected.storageSessionId && identity.device === expected.device && identityInodeVerifiable === expectedInodeVerifiable && (!identityInodeVerifiable || identity.inode === expected.inode) && isSameConversationPath(
251
+ identity.root.canonicalRoot,
252
+ expected.root.canonicalRoot
253
+ ) && identity.root.device === expected.root.device && identity.root.inodeVerifiable === expected.root.inodeVerifiable && (!identity.root.inodeVerifiable || identity.root.inode === expected.root.inode);
254
+ }
255
+ __name(isSameConversationDirectoryObject, "isSameConversationDirectoryObject");
226
256
  async function materializeConversationDirectoryIdentity(root, storageSessionId) {
227
257
  await revalidateConversationRootIdentity(root);
228
258
  const name = getConversationDirectoryName(storageSessionId);
@@ -286,10 +316,13 @@ export {
286
316
  ConversationDirectoryIdentityError,
287
317
  isSameConversationPath,
288
318
  getConversationDirectoryName,
319
+ getConversationStagedDirectoryName,
289
320
  createConversationRootIdentity,
290
321
  revalidateConversationRootIdentity,
291
322
  assertExactConversationRootIdentity,
292
323
  inspectConversationDirectoryIdentity,
324
+ inspectConversationStagedDirectoryIdentity,
325
+ isSameConversationDirectoryObject,
293
326
  materializeConversationDirectoryIdentity
294
327
  };
295
328
  /**
@@ -5,7 +5,7 @@ import {
5
5
  isTranscribableVoiceModel,
6
6
  readVoiceLanguage,
7
7
  resolveVoiceTransport
8
- } from "./chunk-XRSOI3DL.js";
8
+ } from "./chunk-A3LWD5MK.js";
9
9
  import {
10
10
  resolvePath
11
11
  } from "./chunk-YTDVNSUQ.js";
@@ -716,7 +716,7 @@ function anthropicTools(value) {
716
716
  return result;
717
717
  }
718
718
  __name(anthropicTools, "anthropicTools");
719
- function geminiTools(value) {
719
+ function llmTools(value) {
720
720
  if (!Array.isArray(value)) return void 0;
721
721
  const result = [];
722
722
  for (const wrapper of value) {
@@ -734,7 +734,7 @@ function geminiTools(value) {
734
734
  }
735
735
  return result;
736
736
  }
737
- __name(geminiTools, "geminiTools");
737
+ __name(llmTools, "llmTools");
738
738
  function extractOpenAiContent(request) {
739
739
  const value = request;
740
740
  return {
@@ -756,7 +756,7 @@ function extractAnthropicContent(request) {
756
756
  };
757
757
  }
758
758
  __name(extractAnthropicContent, "extractAnthropicContent");
759
- function extractGeminiContent(request) {
759
+ function extractLlmContent(request) {
760
760
  const value = request;
761
761
  const config = record(value["config"]);
762
762
  return {
@@ -766,10 +766,10 @@ function extractGeminiContent(request) {
766
766
  (role) => role === "model" ? "assistant" : role
767
767
  ) : void 0,
768
768
  systemInstructions: config && Object.hasOwn(config, "systemInstruction") ? systemParts(config["systemInstruction"], geminiPart) : void 0,
769
- toolDefinitions: config && Object.hasOwn(config, "tools") ? geminiTools(config["tools"]) : void 0
769
+ toolDefinitions: config && Object.hasOwn(config, "tools") ? llmTools(config["tools"]) : void 0
770
770
  };
771
771
  }
772
- __name(extractGeminiContent, "extractGeminiContent");
772
+ __name(extractLlmContent, "extractLlmContent");
773
773
  function stringifyGenAiJson(value, maxLength, requireObject = false) {
774
774
  const converted = jsonValue(value);
775
775
  if (converted === void 0 || requireObject && (converted === null || Array.isArray(converted) || typeof converted !== "object")) {
@@ -1032,7 +1032,7 @@ var GenAiOutputAccumulator = class {
1032
1032
  if (finishReason) candidate.finishReason = finishReason;
1033
1033
  }
1034
1034
  }
1035
- recordGeminiResponse(response) {
1035
+ recordLlmResponse(response) {
1036
1036
  const candidates = response["candidates"];
1037
1037
  if (!Array.isArray(candidates)) return;
1038
1038
  this.observedResponse = true;
@@ -1061,7 +1061,7 @@ var GenAiOutputAccumulator = class {
1061
1061
  if (finishReason) outputCandidate.finishReason = finishReason;
1062
1062
  }
1063
1063
  }
1064
- recordGeminiChunk(chunk) {
1064
+ recordLlmChunk(chunk) {
1065
1065
  const candidates = chunk["candidates"];
1066
1066
  if (!Array.isArray(candidates)) return;
1067
1067
  this.observedResponse = true;
@@ -1241,7 +1241,7 @@ var GenAiOutputAccumulator = class {
1241
1241
  export {
1242
1242
  extractOpenAiContent,
1243
1243
  extractAnthropicContent,
1244
- extractGeminiContent,
1244
+ extractLlmContent,
1245
1245
  stringifyGenAiJson,
1246
1246
  GenAiOutputAccumulator
1247
1247
  };
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  parseRule
5
- } from "./chunk-TGWAQ5RB.js";
5
+ } from "./chunk-PZ66FRIC.js";
6
6
  import {
7
7
  init_esbuild_shims
8
8
  } from "./chunk-5O2XNYP6.js";
@@ -7,7 +7,7 @@ import {
7
7
  OpenAIContentConverter,
8
8
  TaggedThinkingParser,
9
9
  openaiRequestCaptureContext
10
- } from "./chunk-4J657AJR.js";
10
+ } from "./chunk-DJECZIJX.js";
11
11
  import {
12
12
  safeJsonParse
13
13
  } from "./chunk-ABS25QER.js";
@@ -18,18 +18,22 @@ import {
18
18
  reportOpenAiChunk,
19
19
  reportOpenAiRequest,
20
20
  reportOpenAiResponse
21
- } from "./chunk-B7CDU2SL.js";
21
+ } from "./chunk-KYWTPLBJ.js";
22
22
  import {
23
23
  applyOfficialOpenAIPromptCaching,
24
24
  isOfficialOpenAIEndpoint
25
- } from "./chunk-SAH4BD2J.js";
25
+ } from "./chunk-PQEISIKS.js";
26
26
  import {
27
27
  DashScopeOpenAICompatibleProvider,
28
28
  DefaultOpenAICompatibleProvider
29
- } from "./chunk-PDMJ3KGS.js";
29
+ } from "./chunk-EB6QRGHM.js";
30
30
  import {
31
31
  getCurrentAgentId
32
32
  } from "./chunk-CMHFCLBU.js";
33
+ import {
34
+ InvalidStreamError,
35
+ getToolCallPreparations
36
+ } from "./chunk-CFKIH3D3.js";
33
37
  import {
34
38
  DEFAULT_STREAM_IDLE_TIMEOUT_MS,
35
39
  DEFAULT_STREAM_MAX_LIFETIME_MS,
@@ -42,23 +46,17 @@ import {
42
46
  createChildAbortController
43
47
  } from "./chunk-DJ2GSRLV.js";
44
48
  import {
49
+ getRateLimitErrorDetails,
45
50
  getTransportCode
46
- } from "./chunk-J2OSJFP3.js";
47
- import {
48
- InvalidStreamError,
49
- getToolCallPreparations
50
- } from "./chunk-CFKIH3D3.js";
51
- import {
52
- getRateLimitErrorDetails
53
- } from "./chunk-4FTKQNWJ.js";
51
+ } from "./chunk-DYXFD5RO.js";
54
52
  import {
55
53
  ProtocolTagSanitizedEvent,
56
54
  logProtocolTagSanitized
57
- } from "./chunk-L2M46FP5.js";
55
+ } from "./chunk-QYMAKPY5.js";
58
56
  import {
59
57
  isQwenFamilyWireModel,
60
58
  isTieredEffortWireModel
61
- } from "./chunk-YRLW2MSX.js";
59
+ } from "./chunk-XBVNNDPK.js";
62
60
  import {
63
61
  reconcileMaxTokens
64
62
  } from "./chunk-FPGTNKCP.js";
@@ -1063,7 +1061,7 @@ var StreamContentError = class extends Error {
1063
1061
  var StreamInactivityTimeoutError = class extends Error {
1064
1062
  constructor(idleMs, chunksReceived, streamLifetimeMs) {
1065
1063
  super(
1066
- `No stream activity for ${idleMs}ms after ${chunksReceived} chunks (stream lifetime: ${streamLifetimeMs}ms). Set ${QWEN_STREAM_IDLE_TIMEOUT_MS_ENV} to increase this window (or 0 to disable it).`
1064
+ `No stream activity for ${idleMs}ms after ${chunksReceived} chunks (stream lifetime: ${streamLifetimeMs}ms). For provider-backed models, increase modelProviders[providerId][].generationConfig.streamIdleTimeoutMs; provider configuration takes precedence, so model.generationConfig is ignored for those models. For runtime models, increase model.generationConfig.streamIdleTimeoutMs. Built-in Qwen OAuth models cannot be overridden via settings. Use ${QWEN_STREAM_IDLE_TIMEOUT_MS_ENV} for them or whenever no explicit value is active. Set the active value to 0 to disable it.`
1067
1065
  );
1068
1066
  this.idleMs = idleMs;
1069
1067
  this.chunksReceived = chunksReceived;
@@ -1301,11 +1299,11 @@ var ContentGenerationPipeline = class {
1301
1299
  }
1302
1300
  );
1303
1301
  reportOpenAiResponse(telemetryAttempt, openaiResponse);
1304
- const geminiResponse = OpenAIContentConverter.convertOpenAIResponseToGemini(
1302
+ const llmResponse = OpenAIContentConverter.convertOpenAIResponseToLlm(
1305
1303
  openaiResponse,
1306
1304
  context
1307
1305
  );
1308
- return geminiResponse;
1306
+ return llmResponse;
1309
1307
  } finally {
1310
1308
  perRequestAc?.abort();
1311
1309
  }
@@ -1426,7 +1424,7 @@ var ContentGenerationPipeline = class {
1426
1424
  const errorContent = chunk.choices?.[0]?.delta?.content?.trim() || "Unknown stream error";
1427
1425
  throw new StreamContentError(errorContent);
1428
1426
  }
1429
- const response = OpenAIContentConverter.convertOpenAIChunkToGemini(
1427
+ const response = OpenAIContentConverter.convertOpenAIChunkToLlm(
1430
1428
  chunk,
1431
1429
  context
1432
1430
  );
@@ -1585,7 +1583,7 @@ var ContentGenerationPipeline = class {
1585
1583
  return true;
1586
1584
  }
1587
1585
  async buildRequest(request, userPromptId, context, isStreaming) {
1588
- const messages = OpenAIContentConverter.convertGeminiRequestToOpenAI(
1586
+ const messages = OpenAIContentConverter.convertLlmRequestToOpenAI(
1589
1587
  request,
1590
1588
  context
1591
1589
  );
@@ -1602,7 +1600,7 @@ var ContentGenerationPipeline = class {
1602
1600
  baseRequest.stream = false;
1603
1601
  }
1604
1602
  if (request.config?.tools && request.config.tools.length > 0) {
1605
- baseRequest.tools = await OpenAIContentConverter.convertGeminiToolsToOpenAI(
1603
+ baseRequest.tools = await OpenAIContentConverter.convertLlmToolsToOpenAI(
1606
1604
  request.config.tools,
1607
1605
  this.contentGeneratorConfig.schemaCompliance ?? "auto"
1608
1606
  );
@@ -2,14 +2,14 @@
2
2
  "use strict";
3
3
  import {
4
4
  GIT_COMMIT_INFO
5
- } from "./chunk-6CGL7E7G.js";
5
+ } from "./chunk-TVC6HQ2U.js";
6
6
  import {
7
7
  getCliVersion
8
- } from "./chunk-7UYV53BC.js";
8
+ } from "./chunk-Q2MSPKIJ.js";
9
9
  import {
10
10
  IdeClient,
11
11
  formatMemoryUsage
12
- } from "./chunk-TGWAQ5RB.js";
12
+ } from "./chunk-PZ66FRIC.js";
13
13
  import {
14
14
  createDebugLogger
15
15
  } from "./chunk-UHQFIS7N.js";
@@ -410,18 +410,18 @@ async function createContentGenerator(generatorConfig, config, isInitialAuth) {
410
410
  try {
411
411
  if (authType === "openai" /* USE_OPENAI */) {
412
412
  loadBaseGenerator = /* @__PURE__ */ __name(async () => {
413
- const { createOpenAIContentGenerator } = await import("./openaiContentGenerator-SUCYANUZ.js");
413
+ const { createOpenAIContentGenerator } = await import("./openaiContentGenerator-J6QIF7EX.js");
414
414
  return createOpenAIContentGenerator(generatorConfig, config);
415
415
  }, "loadBaseGenerator");
416
416
  } else if (authType === "qwen-oauth" /* QWEN_OAUTH */) {
417
- const { getQwenOAuthClient: getQwenOauthClient } = await import("./qwenOAuth2-RF33DNZW.js");
417
+ const { getQwenOAuthClient: getQwenOauthClient } = await import("./qwenOAuth2-OF5WRBQT.js");
418
418
  try {
419
419
  const qwenClient = await getQwenOauthClient(
420
420
  config,
421
421
  isInitialAuth ? { requireCachedCredentials: true } : void 0
422
422
  );
423
423
  loadBaseGenerator = /* @__PURE__ */ __name(async () => {
424
- const { QwenContentGenerator } = await import("./qwenContentGenerator-J4TXFGJT.js");
424
+ const { QwenContentGenerator } = await import("./qwenContentGenerator-WWDXPYQI.js");
425
425
  return new QwenContentGenerator(qwenClient, generatorConfig, config);
426
426
  }, "loadBaseGenerator");
427
427
  } catch (error) {
@@ -432,13 +432,13 @@ async function createContentGenerator(generatorConfig, config, isInitialAuth) {
432
432
  }
433
433
  } else if (authType === "anthropic" /* USE_ANTHROPIC */) {
434
434
  loadBaseGenerator = /* @__PURE__ */ __name(async () => {
435
- const { createAnthropicContentGenerator } = await import("./anthropicContentGenerator-HGMBACVE.js");
435
+ const { createAnthropicContentGenerator } = await import("./anthropicContentGenerator-YVTB6QX7.js");
436
436
  return createAnthropicContentGenerator(generatorConfig, config);
437
437
  }, "loadBaseGenerator");
438
438
  } else if (authType === "gemini" /* USE_GEMINI */ || authType === "vertex-ai" /* USE_VERTEX_AI */) {
439
439
  loadBaseGenerator = /* @__PURE__ */ __name(async () => {
440
- const { createGeminiContentGenerator } = await import("./geminiContentGenerator-PUNEBWJW.js");
441
- return createGeminiContentGenerator(generatorConfig, config);
440
+ const { createLlmContentGenerator } = await import("./llm-content-generator-AY2QKXHE.js");
441
+ return createLlmContentGenerator(generatorConfig, config);
442
442
  }, "loadBaseGenerator");
443
443
  } else {
444
444
  throw new Error(
@@ -452,7 +452,7 @@ async function createContentGenerator(generatorConfig, config, isInitialAuth) {
452
452
  try {
453
453
  const [baseGenerator, { LoggingContentGenerator }] = await Promise.all([
454
454
  loadBaseGenerator(),
455
- import("./loggingContentGenerator-2GGZNGLG.js")
455
+ import("./loggingContentGenerator-DSFQHXIF.js")
456
456
  ]);
457
457
  return new LoggingContentGenerator(
458
458
  baseGenerator,
@@ -5,14 +5,14 @@ import {
5
5
  } from "./chunk-E7REAOTN.js";
6
6
  import {
7
7
  t
8
- } from "./chunk-LDP5OD6N.js";
8
+ } from "./chunk-CLWO3B77.js";
9
9
  import {
10
10
  findProviderByCredentials,
11
11
  resolveMetadataKey
12
- } from "./chunk-KUX5D6DK.js";
12
+ } from "./chunk-NV55WWD6.js";
13
13
  import {
14
14
  fetchGitDiff
15
- } from "./chunk-TGWAQ5RB.js";
15
+ } from "./chunk-PZ66FRIC.js";
16
16
  import {
17
17
  init_esbuild_shims
18
18
  } from "./chunk-5O2XNYP6.js";
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  hasControlCharacter
5
- } from "./chunk-6IUNAPLR.js";
5
+ } from "./chunk-K5KXUXWC.js";
6
6
  import {
7
7
  BaseDeclarativeTool,
8
8
  BaseToolInvocation,
@@ -36,6 +36,11 @@ var FINDING_SOURCES = [
36
36
  "probe",
37
37
  "lint"
38
38
  ];
39
+ var FINDING_DIRECTIONS = [
40
+ "certifies-falsely",
41
+ "fails-closed"
42
+ ];
43
+ var FINDING_BASELINES = ["regression", "new-surface"];
39
44
  var REPORT_FINDINGS_LEVELS = ["low", "medium", "high"];
40
45
  var REPORT_FINDINGS_MAX = 50;
41
46
  var SHORT_SUMMARY_MAX = 60;
@@ -53,7 +58,7 @@ function compressFindingSummary(summary, max = SHORT_SUMMARY_MAX) {
53
58
  return `${cut.trimEnd()}\u2026`;
54
59
  }
55
60
  __name(compressFindingSummary, "compressFindingSummary");
56
- var DESCRIPTION = `Reports code-review findings as typed data so clients (the terminal UI, the Web Shell, ACP hosts) can render a per-finding list. Use it only when an active review flow (such as the bundled review skill) instructs you to report findings with it; otherwise present findings as ordinary text. Call it once per report with the complete list, most severe first \u2014 a later call replaces the whole list, it never appends. When the review wrote a findings artifact, copy each field verbatim from it (id, severity, confidence, source, file/line, summary, shortSummary, failureScenario, category); do not re-derive or re-word values \u2014 the artifact is the oracle.
61
+ var DESCRIPTION = `Reports code-review findings as typed data so clients (the terminal UI, the Web Shell, ACP hosts) can render a per-finding list. Use it only when an active review flow (such as the bundled review skill) instructs you to report findings with it; otherwise present findings as ordinary text. Call it once per report with the complete list, most severe first \u2014 a later call replaces the whole list, it never appends. When the review wrote a findings artifact, copy each field verbatim from it (id, severity, confidence, source, file/line, summary, shortSummary, failureScenario, category, direction, baseline); do not re-derive or re-word values \u2014 the artifact is the oracle.
57
62
 
58
63
  After fixes are applied \u2014 at the review's own fix step, or ANY later time in the session a reported finding's disposition changes \u2014 call it again with the same findings, each carrying "outcome" ("fixed", "skipped", or "no_change_needed"; "outcomeNote" for the reason). Client per-finding status trusts only a call that carries outcomes, and a call where some findings carry an outcome and others do not is refused: account for every finding.
59
64
 
@@ -109,6 +114,16 @@ var FINDING_ITEM_SCHEMA = {
109
114
  maxLength: 64,
110
115
  description: 'Free-form kebab-case tag ("correctness", "security", "test-coverage", \u2026).'
111
116
  },
117
+ direction: {
118
+ type: "string",
119
+ enum: [...FINDING_DIRECTIONS],
120
+ description: 'Which way a Critical fails, from the artifact: "certifies-falsely" (a wrong result presented as correct) or "fails-closed" (refuses, wedges or degrades without a wrong result). Omit when the artifact carries none.'
121
+ },
122
+ baseline: {
123
+ type: "string",
124
+ enum: [...FINDING_BASELINES],
125
+ description: 'What a Critical is measured against, from the artifact: "regression" (the merge base handled the trigger correctly) or "new-surface" (the failing path does not exist at the merge base). Omit when the artifact carries none.'
126
+ },
112
127
  outcome: {
113
128
  type: "string",
114
129
  enum: [...FINDING_OUTCOMES],
@@ -172,6 +187,8 @@ function normalizeFinding(raw) {
172
187
  shortSummary: compressFindingSummary(shortSource),
173
188
  failureScenario: raw.failureScenario.trim(),
174
189
  ...raw.category?.trim() ? { category: raw.category.trim() } : {},
190
+ ...raw.direction ? { direction: raw.direction } : {},
191
+ ...raw.baseline ? { baseline: raw.baseline } : {},
175
192
  ...raw.outcome ? { outcome: raw.outcome } : {},
176
193
  ...raw.outcomeNote?.trim() ? { outcomeNote: raw.outcomeNote.trim() } : {}
177
194
  };
@@ -332,6 +349,8 @@ export {
332
349
  FINDING_CONFIDENCES,
333
350
  FINDING_OUTCOMES,
334
351
  FINDING_SOURCES,
352
+ FINDING_DIRECTIONS,
353
+ FINDING_BASELINES,
335
354
  REPORT_FINDINGS_LEVELS,
336
355
  REPORT_FINDINGS_MAX,
337
356
  SHORT_SUMMARY_MAX,
@@ -3,7 +3,7 @@
3
3
  import {
4
4
  getTasksDir,
5
5
  sanitizeName
6
- } from "./chunk-SFPGAQUL.js";
6
+ } from "./chunk-42IDLQWS.js";
7
7
  import {
8
8
  require_proper_lockfile
9
9
  } from "./chunk-MLXTMF7H.js";
@@ -41,7 +41,9 @@ var MODALITY_PATTERNS = [
41
41
  [/^qwen3\.5-plus/, { image: true, video: true }],
42
42
  [/^qwen3\.6-plus/, { image: true, video: true }],
43
43
  [/^qwen3\.7-plus/, { image: true, video: true }],
44
- // Qwen Max models (3.8+): image support
44
+ // Qwen 3.8 series: flash/plus support image + video; max supports image only
45
+ [/^qwen3\.8-flash/, { image: true, video: true }],
46
+ [/^qwen3\.8-plus/, { image: true, video: true }],
45
47
  [/^qwen3\.8-max/, { image: true }],
46
48
  [/^coder-model$/, { image: true, video: true }],
47
49
  // Qwen VL (vision-language) models: image + video
@@ -53,13 +55,18 @@ var MODALITY_PATTERNS = [
53
55
  [/^qwen3\.6-35b/, { image: true, video: true }],
54
56
  [/^qwen/, {}],
55
57
  // -------------------
56
- // DeepSeek — text-only
58
+ // DeepSeek — text-only, except explicit vision variants
59
+ // (QwenLM/qwen-code#10270)
57
60
  // -------------------
61
+ [/^deepseek-.*vision/, { image: true }],
58
62
  [/^deepseek/, {}],
59
63
  // -------------------
60
- // Zhipu GLM
64
+ // Zhipu GLM — v-suffix ids are vision models; others are text-only
65
+ // (QwenLM/qwen-code#10270)
61
66
  // -------------------
62
- [/^glm-4\.5v/, { image: true }],
67
+ [/^glm-[0-9.]+v/, { image: true }],
68
+ // glm-5.3-flash natively integrates vision input (no v suffix)
69
+ [/^glm-5\.3-flash/, { image: true }],
63
70
  [/^glm-5(?:-|$)/, {}],
64
71
  [/^glm-/, {}],
65
72
  // -------------------
@@ -9,10 +9,10 @@ import {
9
9
  publishPendingCompileCache,
10
10
  reportRejectedLoaderKeys,
11
11
  resetLoaderKeyRejectionReportingForTesting
12
- } from "./chunk-5PA6UEYA.js";
12
+ } from "./chunk-MZCJWS5Y.js";
13
13
  import {
14
14
  isWorkspaceTrusted
15
- } from "./chunk-V4QXXQJ2.js";
15
+ } from "./chunk-MF7HCQWZ.js";
16
16
  import {
17
17
  require_main
18
18
  } from "./chunk-5M6IDOMF.js";