@qwen-code/qwen-code 0.21.2 → 0.21.3-nightly.20260803.e1e5b42ce

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 (352) hide show
  1. package/bundled/qc-helper/docs/configuration/settings.md +53 -38
  2. package/bundled/qc-helper/docs/features/channels/github.md +16 -5
  3. package/bundled/qc-helper/docs/features/channels/gitlab.md +6 -0
  4. package/bundled/qc-helper/docs/features/code-review.md +92 -24
  5. package/bundled/qc-helper/docs/features/commands.md +46 -38
  6. package/bundled/qc-helper/docs/features/hooks.md +115 -18
  7. package/bundled/qc-helper/docs/features/memory.md +27 -0
  8. package/bundled/qc-helper/docs/features/skills.md +46 -1
  9. package/bundled/qc-helper/docs/features/sub-agents.md +42 -9
  10. package/bundled/qc-helper/docs/features/tool-use-summaries.md +7 -7
  11. package/bundled/qc-helper/docs/qwen-serve.md +46 -25
  12. package/bundled/qc-helper/docs/reference/keyboard-shortcuts.md +62 -31
  13. package/bundled/qc-helper/docs/support/troubleshooting.md +6 -1
  14. package/bundled/review/DESIGN.md +167 -32
  15. package/bundled/review/SKILL.md +207 -38
  16. package/chunks/{MaxSizedBox-TQBQ247P.js → MaxSizedBox-FCEK5P5K.js} +41 -38
  17. package/chunks/{StandaloneSessionPicker-2HPTKCLX.js → StandaloneSessionPicker-AT77J3PM.js} +63 -59
  18. package/chunks/{acp-startup-profiler-2C4A5ZTJ.js → acp-startup-profiler-3RICG2YW.js} +2 -2
  19. package/chunks/{acpAgent-PS6EDGH3.js → acpAgent-PBMKZ5KH.js} +664 -560
  20. package/chunks/{agent-VDOUB35F.js → agent-55W5BPK3.js} +37 -34
  21. package/chunks/{agent-headless-EO53EFS2.js → agent-headless-I7VMHI22.js} +37 -34
  22. package/chunks/{anthropicContentGenerator-OFHSZJBF.js → anthropicContentGenerator-3CAHEZBM.js} +341 -29
  23. package/chunks/{artifact-tool-RDN2W7ND.js → artifact-tool-TBOYEKTY.js} +2 -2
  24. package/chunks/{askUserQuestion-OZERWH5R.js → askUserQuestion-23Y5WZFJ.js} +2 -2
  25. package/chunks/{bridge-W7AZSRZQ.js → bridge-XNAWEDAN.js} +43 -40
  26. package/chunks/{ca-6W3SK7OQ.js → ca-NYKNH222.js} +50 -5
  27. package/chunks/{channel-management-service-5S7YCWX5.js → channel-management-service-UHX56NBO.js} +7 -7
  28. package/chunks/{channel-settings-store-JFVRSNER.js → channel-settings-store-7P6RJSSF.js} +44 -41
  29. package/chunks/{channel-worker-group-OVWGYMZS.js → channel-worker-group-NDG4WOOZ.js} +8 -8
  30. package/chunks/{channel-worker-manager-H55GKOQA.js → channel-worker-manager-ZCW6UW34.js} +8 -8
  31. package/chunks/{channel-worker-supervisor-CABBXYHK.js → channel-worker-supervisor-ATGFTZRN.js} +4 -4
  32. package/chunks/{chunk-6MPDY6ZG.js → chunk-24ER7UV4.js} +1 -1
  33. package/chunks/{chunk-QDK4F2N5.js → chunk-2DNKEBXY.js} +1 -1
  34. package/chunks/{chunk-AUOULH6Q.js → chunk-2GF3IDEK.js} +1610 -2196
  35. package/chunks/{chunk-JYBU6YUE.js → chunk-2M5N3DHY.js} +1 -1
  36. package/chunks/{chunk-LHKCY7DY.js → chunk-2UISUFHQ.js} +3 -3
  37. package/chunks/{chunk-BBIQAX4V.js → chunk-2ZCYE3F2.js} +30 -18
  38. package/chunks/{chunk-GJ2GBPBD.js → chunk-332FMXSD.js} +5 -5
  39. package/chunks/{chunk-JXVC2PL3.js → chunk-33FNCQSY.js} +2 -2
  40. package/chunks/{chunk-P755N4CS.js → chunk-3GALLNII.js} +6 -6
  41. package/chunks/{chunk-YANIWTRZ.js → chunk-3ICGQSVO.js} +1 -1
  42. package/chunks/{chunk-NBD76HUW.js → chunk-3LGZEYOF.js} +2 -2
  43. package/chunks/{chunk-E2BHWIDT.js → chunk-3RXUYQJI.js} +6 -2
  44. package/chunks/{chunk-E5Z2AVNV.js → chunk-3SH53ANB.js} +0 -11
  45. package/chunks/{chunk-N4ACHWNH.js → chunk-432XCUHF.js} +1 -1
  46. package/chunks/{chunk-JLZ3RBQG.js → chunk-44EJDGMS.js} +144 -11
  47. package/chunks/{chunk-KR32NIAN.js → chunk-4JP34TZ6.js} +10 -10
  48. package/chunks/{chunk-L2E5GFAG.js → chunk-4LKVQFHM.js} +2 -2
  49. package/chunks/{chunk-YDLJGZHL.js → chunk-4NFY2S7N.js} +0 -33
  50. package/chunks/{chunk-NHFEMWAZ.js → chunk-5WY5QEM6.js} +1 -1
  51. package/chunks/{chunk-56Z7QEAQ.js → chunk-6BUPGI3J.js} +16 -16
  52. package/chunks/{chunk-H6I4PGRV.js → chunk-6DNHLK7F.js} +4 -4
  53. package/chunks/{chunk-XQK4XXTN.js → chunk-6O5DVH27.js} +1 -1
  54. package/chunks/{chunk-2RFKHEXL.js → chunk-6PLDPT2C.js} +1 -1
  55. package/chunks/{chunk-Q5WZTTWE.js → chunk-7UPJXZLD.js} +6 -8
  56. package/chunks/{chunk-CBBP4BMC.js → chunk-7UXI6P72.js} +82 -207
  57. package/chunks/{chunk-6CQWRWUC.js → chunk-7XLPYF6B.js} +3 -3
  58. package/chunks/{chunk-VEMNQMHA.js → chunk-7ZH55K26.js} +5 -13
  59. package/chunks/{chunk-JJPKFJBT.js → chunk-A2FOI762.js} +3 -3
  60. package/chunks/{chunk-LYI2PZDK.js → chunk-A5LNZGJB.js} +2 -2
  61. package/chunks/{chunk-3APUUXRF.js → chunk-A5YZ3FA2.js} +2 -1
  62. package/chunks/{chunk-SHN4KHDK.js → chunk-A6SX5TAH.js} +3 -3
  63. package/chunks/{chunk-QCXGC7QB.js → chunk-A7PONO5G.js} +3 -3
  64. package/chunks/{chunk-SZ3KHTDR.js → chunk-AKA24BGO.js} +1 -1
  65. package/chunks/{chunk-RSVPYAGK.js → chunk-B4HXOGF5.js} +5 -5
  66. package/chunks/{chunk-D6MDRSZ6.js → chunk-BBXSRVSN.js} +22 -11
  67. package/chunks/{chunk-Q3T5KA2V.js → chunk-BFHXDAR7.js} +1 -1
  68. package/chunks/{chunk-L55JWS76.js → chunk-BGXZBI5B.js} +1 -1
  69. package/chunks/{chunk-2KKCCLPT.js → chunk-C4IUDGPI.js} +1 -1
  70. package/chunks/{chunk-MM7TH7ZM.js → chunk-CFDR3GNL.js} +18 -3
  71. package/chunks/{chunk-3F2WDAV6.js → chunk-CFVFQWFB.js} +14 -14
  72. package/chunks/{chunk-E2FN6SM7.js → chunk-CIUUYB23.js} +5 -5
  73. package/chunks/{chunk-JCJ7LKNA.js → chunk-DIEFUBV6.js} +1644 -1570
  74. package/chunks/{chunk-KWHKHSIS.js → chunk-DTAPI453.js} +8 -8
  75. package/chunks/{chunk-WWCMSZII.js → chunk-DV2GAGR7.js} +71 -7
  76. package/chunks/{chunk-675H6PLP.js → chunk-DYA25Y7U.js} +1 -1
  77. package/chunks/{chunk-3I6DUGQD.js → chunk-E4WHKETF.js} +32 -4
  78. package/chunks/{chunk-QTERJVPZ.js → chunk-EKTCKZV5.js} +1 -0
  79. package/chunks/{chunk-HX6RLYUO.js → chunk-ENOHFX2M.js} +4 -4
  80. package/chunks/{chunk-VMX5RZQH.js → chunk-EZZJHMFK.js} +18 -9
  81. package/chunks/{chunk-KXDONCPU.js → chunk-FBDRTW3I.js} +4 -4
  82. package/chunks/{chunk-FCYYAB4S.js → chunk-FHPKHXHT.js} +3 -3
  83. package/chunks/{chunk-DQ2O5QOJ.js → chunk-FJZS2MXB.js} +1 -1
  84. package/chunks/{chunk-EQNUDTL6.js → chunk-FVLPZSKH.js} +3 -3
  85. package/chunks/{chunk-2LEOZTBT.js → chunk-FYMMZV5F.js} +111 -26
  86. package/chunks/{chunk-UV6KF7T3.js → chunk-GNZ7MX73.js} +3 -3
  87. package/chunks/chunk-GOFAQQZA.js +132 -0
  88. package/chunks/{chunk-YUFIEIWC.js → chunk-GTM6IHBB.js} +2 -2
  89. package/chunks/{chunk-W3UKBMSI.js → chunk-GU5B6IF3.js} +118 -9
  90. package/chunks/{chunk-PCK4B6LR.js → chunk-GU5XWZU2.js} +1 -1
  91. package/chunks/{chunk-DEEABGH2.js → chunk-H2EDCJIM.js} +5954 -1766
  92. package/chunks/{chunk-FJ5WUMUQ.js → chunk-H36SETQS.js} +1 -1
  93. package/chunks/{chunk-6FMJLI5M.js → chunk-HFVW54NL.js} +41 -6
  94. package/chunks/chunk-HGCQ5SE7.js +136 -0
  95. package/chunks/{chunk-OFZKFPYG.js → chunk-HR4CHEQS.js} +3 -3
  96. package/chunks/{chunk-CO2U743O.js → chunk-I3GX6LGS.js} +4 -4
  97. package/chunks/{chunk-5NNHICSA.js → chunk-I7JDGNG6.js} +3 -3
  98. package/chunks/{chunk-RDJOB6S3.js → chunk-IEBT6DXF.js} +1 -1
  99. package/chunks/{chunk-EU5TBFJI.js → chunk-IV7QPMC2.js} +2 -2
  100. package/chunks/{chunk-B4AJNNOL.js → chunk-J26HHFI5.js} +1 -1
  101. package/chunks/{chunk-CNTR4GR6.js → chunk-JELIWHXD.js} +1 -1
  102. package/chunks/{chunk-FNDXMN7I.js → chunk-JQFMW7BD.js} +936 -223
  103. package/chunks/{chunk-IGTHU3T4.js → chunk-KKN2IE7Q.js} +1 -1
  104. package/chunks/{chunk-TZTAV5RH.js → chunk-KVUBYJDM.js} +2 -2
  105. package/chunks/{chunk-DUNI4EBW.js → chunk-KZXSAQYV.js} +86 -52
  106. package/chunks/chunk-LBOVL47Y.js +29 -0
  107. package/chunks/{chunk-FS674JW4.js → chunk-LBWNSLJK.js} +3 -3
  108. package/chunks/{chunk-I5BT7ADR.js → chunk-LEZFUYPM.js} +4 -4
  109. package/chunks/chunk-LLMGP5IC.js +222 -0
  110. package/chunks/{chunk-44F4LBWZ.js → chunk-LVW7BHTW.js} +56 -18
  111. package/chunks/{chunk-YGE3IXJP.js → chunk-M744OFVE.js} +1 -1
  112. package/chunks/chunk-MISUEWB4.js +8749 -0
  113. package/chunks/{chunk-7SJN2IWT.js → chunk-MJ2SKNTY.js} +5 -5
  114. package/chunks/{chunk-JE2CEOBO.js → chunk-MNTXIO6T.js} +4 -4
  115. package/chunks/{chunk-TEGJSJDF.js → chunk-MOHAWIAW.js} +2 -2
  116. package/chunks/{chunk-54YCNSK5.js → chunk-MVMBE5EH.js} +4521 -10220
  117. package/chunks/{chunk-PZEXDV3H.js → chunk-NCY2CDDX.js} +71 -43
  118. package/chunks/{chunk-TTJZAIFP.js → chunk-NJELCSFL.js} +3 -3
  119. package/chunks/{chunk-A7Y5H4TX.js → chunk-NXDJEZCI.js} +7 -7
  120. package/chunks/{chunk-PQNHRFJC.js → chunk-NYX53SV4.js} +0 -2
  121. package/chunks/{chunk-QARJNL2V.js → chunk-O2ZYHG33.js} +5 -4
  122. package/chunks/{chunk-6PQPKTXP.js → chunk-OPMLL3B3.js} +1 -1
  123. package/chunks/{chunk-PVNQRENX.js → chunk-OUQGNGIU.js} +1 -1
  124. package/chunks/{chunk-V7RNNPGC.js → chunk-P5Y23G2L.js} +18 -1
  125. package/chunks/{chunk-GURGAJTX.js → chunk-PDDYAXL2.js} +4 -1
  126. package/chunks/chunk-PWCQRLM5.js +1170 -0
  127. package/chunks/{chunk-GL4JOZXU.js → chunk-Q43MIWDH.js} +4 -4
  128. package/chunks/{chunk-V4XNUDPE.js → chunk-QFIYH5KR.js} +28 -7
  129. package/chunks/chunk-QL4TN4HS.js +59 -0
  130. package/chunks/{chunk-E6CJ2SMM.js → chunk-QMBEW7EW.js} +2 -2
  131. package/chunks/{chunk-U4VTUMMK.js → chunk-QONSRAEV.js} +1 -1
  132. package/chunks/{chunk-LOY7RWQG.js → chunk-QYPT3QUD.js} +3 -3
  133. package/chunks/{chunk-RG64CDT2.js → chunk-RJAVNGJJ.js} +131 -48
  134. package/chunks/{chunk-Z3S5EMOW.js → chunk-RPYYTL7E.js} +60 -12
  135. package/chunks/{chunk-V25K5ID7.js → chunk-SWCEYR6T.js} +1 -1
  136. package/chunks/{chunk-77V3VIKL.js → chunk-SXGNNAMC.js} +9 -9
  137. package/chunks/{chunk-7KAXXBER.js → chunk-TNQ5BEEB.js} +3 -3
  138. package/chunks/{chunk-R2XWGR75.js → chunk-TYERNYH4.js} +2 -2
  139. package/chunks/{chunk-45IOTAUS.js → chunk-U25CMJYY.js} +1 -1
  140. package/chunks/{chunk-7ULQIS27.js → chunk-UEJESCS7.js} +1 -1
  141. package/chunks/{chunk-HC45LTEN.js → chunk-UH7Z7Y45.js} +1 -1
  142. package/chunks/{chunk-P5VC5USY.js → chunk-UIKCPMID.js} +1 -1
  143. package/chunks/{chunk-CPZAH673.js → chunk-UKZEXS6K.js} +2 -0
  144. package/chunks/{chunk-HIVKI6O6.js → chunk-UO7AWUZJ.js} +9 -7
  145. package/chunks/{chunk-XP4L6KS3.js → chunk-URN76TKR.js} +2 -2
  146. package/chunks/{chunk-XUGZYLDH.js → chunk-UWSXFI6E.js} +1 -1
  147. package/chunks/{chunk-AOHY3QJ3.js → chunk-VA5NLVPT.js} +3 -3
  148. package/chunks/{chunk-FANRZEAJ.js → chunk-VWOVHOTT.js} +1 -1
  149. package/chunks/{chunk-NTDH4IML.js → chunk-W2K4OEW4.js} +7 -7
  150. package/chunks/{chunk-L32VV3ZJ.js → chunk-WH7W24EN.js} +12 -12
  151. package/chunks/{chunk-QTHQ6Z5X.js → chunk-WK4TJUEA.js} +1 -1
  152. package/chunks/{chunk-ZPZ7ZJEE.js → chunk-WUC6ZFXO.js} +1 -1
  153. package/chunks/{chunk-TIRRPCFS.js → chunk-X6QNZOTC.js} +1 -1
  154. package/chunks/{chunk-IIUGIWWY.js → chunk-XC2VAFVZ.js} +1 -1
  155. package/chunks/{chunk-D4HTUMGX.js → chunk-XC656O42.js} +3 -3
  156. package/chunks/{chunk-ZMOJ7ISP.js → chunk-XXOVLDZQ.js} +1 -1
  157. package/chunks/{chunk-THVU3RNH.js → chunk-YAVY33G4.js} +1 -1
  158. package/chunks/{chunk-PJOHNFIY.js → chunk-YIAC2OXH.js} +5 -5
  159. package/chunks/{chunk-CU47KXB5.js → chunk-YTSN63PD.js} +6 -6
  160. package/chunks/{chunk-DSFHVTWD.js → chunk-YXEVDA66.js} +2 -2
  161. package/chunks/{chunk-MB32MS4U.js → chunk-ZLJQIGCH.js} +260 -175
  162. package/chunks/{chunk-6TAASXWL.js → chunk-ZX6RZZFB.js} +3 -3
  163. package/chunks/{computer-use-5QWCFNKD.js → computer-use-BG2EHNJE.js} +37 -34
  164. package/chunks/{config-utils-WADIDWGG.js → config-utils-E3ZQTHGM.js} +4 -4
  165. package/chunks/{contextCommand-4Z7T7TUM.js → contextCommand-JAPYNKFC.js} +41 -38
  166. package/chunks/{core-runtime-6N4EFC2Q.js → core-runtime-2VCZN5QF.js} +37 -34
  167. package/chunks/{create-sub-session-AEREHZBQ.js → create-sub-session-52OUA2VU.js} +52 -43
  168. package/chunks/{create-sub-session-62YZWVAY.js → create-sub-session-J32WC64U.js} +2 -2
  169. package/chunks/{cron-create-6E7GIQTG.js → cron-create-HMFSHIAR.js} +4 -4
  170. package/chunks/{cron-delete-JD26XY3W.js → cron-delete-ZJFHOX57.js} +4 -4
  171. package/chunks/{cron-list-CUWFB44G.js → cron-list-ZEX2NBMN.js} +4 -4
  172. package/chunks/{daemon-PCNCI5YU.js → daemon-CCIX4BMG.js} +47 -6
  173. package/chunks/{daemon-status-provider-DDF7C5M7.js → daemon-status-provider-F2YGDKHR.js} +48 -45
  174. package/chunks/{daemon-trust-policy-Q4KSOJTR.js → daemon-trust-policy-XCY7JETR.js} +43 -40
  175. package/chunks/{daemon-trust-policy-monitor-V6FTE3IY.js → daemon-trust-policy-monitor-FBHB5GMQ.js} +43 -40
  176. package/chunks/{de-SY6O76BF.js → de-VL76CPLV.js} +50 -5
  177. package/chunks/{deferred-core-runtime-GHJ5GQHK.js → deferred-core-runtime-BBLJ4JUM.js} +37 -34
  178. package/chunks/display-image-2WOG27DY.js +184 -0
  179. package/chunks/{dist-ZHXOBXDN.js → dist-3BMEUGTG.js} +1 -1
  180. package/chunks/{dist-OAOC5OV4.js → dist-7JGAAQSC.js} +2 -2
  181. package/chunks/{dist-SL2LUMML.js → dist-A7H2KKUC.js} +1 -1
  182. package/chunks/{dist-ULIG4M5H.js → dist-C5U4LJKW.js} +162 -15
  183. package/chunks/{dist-2PERFI23.js → dist-DPPHJAVL.js} +3 -3
  184. package/chunks/{dist-PVEAFLHY.js → dist-HVBMEYWK.js} +1 -1
  185. package/chunks/{dist-26BIMQT6.js → dist-IKGVITP3.js} +676 -37
  186. package/chunks/{dist-WGMNT3JQ.js → dist-SFQ34F4M.js} +24 -6
  187. package/chunks/{earlyInputCapture-TQXLLISD.js → earlyInputCapture-ALVSMKP7.js} +38 -35
  188. package/chunks/{edit-FJEUV6KZ.js → edit-POB3CIHQ.js} +37 -34
  189. package/chunks/{en-NBK3JKCE.js → en-IRJ2WN5T.js} +61 -6
  190. package/chunks/{enter-worktree-7GE3TZ4P.js → enter-worktree-Q2N7UZWC.js} +37 -34
  191. package/chunks/{enterPlanMode-KR5TMPCJ.js → enterPlanMode-QGAH2GMP.js} +37 -34
  192. package/chunks/{environment-SWL3CMB3.js → environment-FE5AX2U5.js} +40 -37
  193. package/chunks/{errors-XQE7BGZV.js → errors-SLMCFLSC.js} +40 -37
  194. package/chunks/{exit-worktree-CHKTYNCV.js → exit-worktree-7WO2LPLF.js} +37 -34
  195. package/chunks/{exitPlanMode-QYAG6LWX.js → exitPlanMode-3PINWUTY.js} +37 -34
  196. package/chunks/{fast-path-Z2K7W6DC.js → fast-path-SVFFEL6U.js} +17 -4
  197. package/chunks/{fr-4KG5V7UT.js → fr-GK3HQYVB.js} +50 -5
  198. package/chunks/{gemini-YU4XKEDG.js → gemini-QECJNKNJ.js} +151 -90
  199. package/chunks/{geminiContentGenerator-ZZX6NBO4.js → geminiContentGenerator-ZFAZKT6R.js} +6 -6
  200. package/chunks/{glob-VYF5CXSX.js → glob-GXUNQYNR.js} +37 -34
  201. package/chunks/{goal-tools-HGO6VXPB.js → goal-tools-SPQ5M6D3.js} +3 -3
  202. package/chunks/{grep-5DP5ZUTW.js → grep-LVU5KBCV.js} +37 -34
  203. package/chunks/{handleAutoUpdate-UVBJ56DL.js → handleAutoUpdate-MPDHQY72.js} +43 -40
  204. package/chunks/{i18n-UQNYHEUD.js → i18n-LEYRN6RV.js} +39 -36
  205. package/chunks/{image-gen-WHPIZNWF.js → image-gen-4T2D4PTP.js} +9 -9
  206. package/chunks/{initializer-GMIICF4W.js → initializer-PQV2THBS.js} +44 -41
  207. package/chunks/{installationInfo-4MGG4WVI.js → installationInfo-XC3HXLTX.js} +38 -35
  208. package/chunks/{ja-F3GSQXMF.js → ja-3FA46IKD.js} +50 -5
  209. package/chunks/{keychain-token-storage-IKO4G53C.js → keychain-token-storage-7BT4TQ2A.js} +2 -2
  210. package/chunks/{kittyProtocolDetector-MBRTDRBK.js → kittyProtocolDetector-BFLAKYXH.js} +1 -1
  211. package/chunks/{list-CPN2W334.js → list-AQBTPZRG.js} +46 -43
  212. package/chunks/{list-agents-PXJ7ZUFB.js → list-agents-TWEGRJWO.js} +2 -2
  213. package/chunks/{loadedSettingsAdapter-ZQAV5NDO.js → loadedSettingsAdapter-EZYPDX2J.js} +43 -40
  214. package/chunks/{loggingContentGenerator-5E7W4IEP.js → loggingContentGenerator-WD6YWU7Q.js} +52 -37
  215. package/chunks/{loop-wakeup-Y26NQZ5I.js → loop-wakeup-6LLEOQYV.js} +5 -5
  216. package/chunks/{ls-ONQTTMQR.js → ls-H5WX22VK.js} +4 -4
  217. package/chunks/{lsp-YGHHRGMD.js → lsp-G6FXYEIS.js} +2 -2
  218. package/chunks/{managed-npm-update-MKKAXYXA.js → managed-npm-update-BMM57CHD.js} +40 -37
  219. package/chunks/{mcp-V5NTJF6X.js → mcp-FMI6NCWA.js} +43 -40
  220. package/chunks/{monitor-CO3ASY6E.js → monitor-PZJOYAA2.js} +37 -34
  221. package/chunks/nonInteractiveCli-QPX6R4LL.js +152 -0
  222. package/chunks/{notebook-edit-Z7AEE6FM.js → notebook-edit-GZF2SKTQ.js} +37 -34
  223. package/chunks/{openaiContentGenerator-CA3MQOP3.js → openaiContentGenerator-ZPLCFAAG.js} +18 -18
  224. package/chunks/{pidfile-NL7MKDRU.js → pidfile-PCADVJQW.js} +38 -35
  225. package/chunks/{processUtils-PB5K2DYH.js → processUtils-FKUVQVEU.js} +2 -2
  226. package/chunks/{pt-EQ33KWEN.js → pt-3AOBKPIJ.js} +50 -5
  227. package/chunks/{qwenContentGenerator-JYFNDCOS.js → qwenContentGenerator-2Y4R6YLB.js} +42 -40
  228. package/chunks/{qwenOAuth2-W2ALKQDD.js → qwenOAuth2-UCEHY3I2.js} +8 -8
  229. package/chunks/{read-file-IEOR5H5W.js → read-file-DYHDFVAS.js} +10 -10
  230. package/chunks/{read-mcp-resource-U2IJN5HM.js → read-mcp-resource-DRZSI3HE.js} +2 -2
  231. package/chunks/{record-artifact-MGPJ7EG4.js → record-artifact-IPIRWMFY.js} +3 -3
  232. package/chunks/{resumeHistoryUtils-BNBTP5AS.js → resumeHistoryUtils-5JS6R3AJ.js} +45 -42
  233. package/chunks/{ripGrep-UMQODKEB.js → ripGrep-2QOR3ZQT.js} +37 -34
  234. package/chunks/{ru-7OZAUKGG.js → ru-VJRAMC4W.js} +50 -5
  235. package/chunks/{run-qwen-serve-RN2R6QQW.js → run-qwen-serve-MTVRAUBR.js} +271 -60
  236. package/chunks/{runtime-QFJ2MJF5.js → runtime-DQGE2DYR.js} +50 -45
  237. package/chunks/{scheduler-AMYUFOZI.js → scheduler-BXIZQ4OO.js} +37 -34
  238. package/chunks/{sdk-exporters-http-4BQANSJ6.js → sdk-exporters-http-IKNWQJNV.js} +2 -2
  239. package/chunks/{sdk-impl-Z4VXWVFX.js → sdk-impl-7CUUMQDB.js} +2 -2
  240. package/chunks/{send-message-PMP4ATVM.js → send-message-LHJLVWFD.js} +5 -4
  241. package/chunks/{serve-EIIYJVX3.js → serve-D4GYHFLL.js} +44 -40
  242. package/chunks/{server-EP2LLAPD.js → server-S22MLWTJ.js} +618 -387
  243. package/chunks/{session-GMPZBLOW.js → session-AHNM6YXP.js} +151 -87
  244. package/chunks/{settings-LN7RNKBS.js → settings-77MDDUSX.js} +42 -39
  245. package/chunks/{shell-EM2OWU5X.js → shell-DLD2VQTQ.js} +37 -34
  246. package/chunks/{skill-T5VPSK73.js → skill-3B2PAQE4.js} +27 -14
  247. package/chunks/{skill-settings-GMR3GMNY.js → skill-settings-STR5NF4B.js} +42 -39
  248. package/chunks/{spawnChannel-YPCU62DI.js → spawnChannel-TOWYOVDZ.js} +39 -36
  249. package/chunks/{standalone-update-JAKIM2NF.js → standalone-update-F6ZWABD7.js} +40 -37
  250. package/chunks/{startInteractiveUI-YETQWGYF.js → startInteractiveUI-QR7MHDX7.js} +1829 -1036
  251. package/chunks/{syntheticOutput-D7E6ZFKR.js → syntheticOutput-EYL7DWO7.js} +3 -3
  252. package/chunks/{task-create-NFCYD43L.js → task-create-4ALZMGP5.js} +10 -9
  253. package/chunks/{task-list-TAVMGEVD.js → task-list-6CVQPORX.js} +6 -6
  254. package/chunks/{task-stop-ZDF2UJRM.js → task-stop-Y5ZTFVRX.js} +2 -2
  255. package/chunks/{task-update-6L7LHGEX.js → task-update-IKCEEWJ6.js} +10 -9
  256. package/chunks/{team-create-LFJ6HGNY.js → team-create-LQVIAVRF.js} +37 -34
  257. package/chunks/{team-delete-DPGGRQBU.js → team-delete-CE7DC53R.js} +6 -6
  258. package/chunks/{team-plan-approval-C2KLSDGO.js → team-plan-approval-G5PUNI52.js} +37 -34
  259. package/chunks/terminal-image-renderer-33GSM55L.js +90 -0
  260. package/chunks/{theme-manager-JQ3ZGBP5.js → theme-manager-DBFM5QOG.js} +38 -35
  261. package/chunks/{todoWrite-2UO5G6G6.js → todoWrite-FTZWQRZH.js} +108 -36
  262. package/chunks/{tool-search-FAZBFRJZ.js → tool-search-RGG7BBC4.js} +13 -12
  263. package/chunks/{total-session-admission-5CALIVYO.js → total-session-admission-LY3RMXXI.js} +44 -41
  264. package/chunks/{trustedFolders-KOPSP44S.js → trustedFolders-3M4IQ6K6.js} +39 -36
  265. package/chunks/{update-relaunch-6QL2TICS.js → update-relaunch-G3CMSX3M.js} +5 -5
  266. package/chunks/{updateCheck-4Q6RIKFW.js → updateCheck-ZKFGBDTG.js} +42 -39
  267. package/chunks/{useAutoAcceptIndicator-Q5BMKZV3.js → useAutoAcceptIndicator-7SAFZK5H.js} +47 -44
  268. package/chunks/{validateNonInterActiveAuth-GKOC5F6Z.js → validateNonInterActiveAuth-F2K6UGE4.js} +88 -84
  269. package/chunks/{version-VSATY2LD.js → version-KM6MYV2D.js} +1 -1
  270. package/chunks/{web-fetch-JCLKL6NL.js → web-fetch-SM4LZHRS.js} +13 -13
  271. package/chunks/{web-search-DSQTFUBX.js → web-search-OGKZNDAC.js} +8 -8
  272. package/chunks/{workflow-M6QAVKVJ.js → workflow-HU365RFR.js} +419 -304
  273. package/chunks/{workspace-providers-status-YKLTLMJA.js → workspace-providers-status-QKKXQHL7.js} +46 -43
  274. package/chunks/{workspace-registration-store-5DMGKU64.js → workspace-registration-store-7J7KOXFD.js} +2 -2
  275. package/chunks/{workspace-registry-PTYUSYXX.js → workspace-registry-KC66O6DH.js} +44 -41
  276. package/chunks/{workspace-service-25ML3T47.js → workspace-service-TEV5Q2AA.js} +51 -48
  277. package/chunks/{workspace-skills-status-YKZWOYRX.js → workspace-skills-status-VRL55OMU.js} +45 -42
  278. package/chunks/{workspace-trust-reconciler-5FI2S3OS.js → workspace-trust-reconciler-COC5M7CY.js} +50 -47
  279. package/chunks/{write-file-AY7VLP5X.js → write-file-3SO2BMNO.js} +37 -34
  280. package/chunks/{zh-H3YDK5QW.js → zh-ARWDLDLR.js} +58 -6
  281. package/chunks/{zh-TW-JYCP7XUA.js → zh-TW-Y4RGI3P7.js} +58 -6
  282. package/chunks/{zoom-image-S4LJZMD5.js → zoom-image-O3RWTVKV.js} +10 -10
  283. package/cli.js +32 -48
  284. package/locales/ca.js +68 -4
  285. package/locales/de.js +70 -4
  286. package/locales/en.js +84 -6
  287. package/locales/fr.js +72 -4
  288. package/locales/ja.js +69 -4
  289. package/locales/pt.js +68 -4
  290. package/locales/ru.js +71 -4
  291. package/locales/zh-TW.js +74 -6
  292. package/locales/zh.js +74 -6
  293. package/package.json +3 -3
  294. package/web-shell/assets/{arc-xjArKHU2.js → arc-KuwiZ67W.js} +1 -1
  295. package/web-shell/assets/{architectureDiagram-3BPJPVTR-BgrQDNYG.js → architectureDiagram-3BPJPVTR-Cppop6HB.js} +1 -1
  296. package/web-shell/assets/{blockDiagram-GPEHLZMM-CXxWC-1_.js → blockDiagram-GPEHLZMM-DQ6HT72s.js} +1 -1
  297. package/web-shell/assets/{c4Diagram-AAUBKEIU-Dx1tLm3v.js → c4Diagram-AAUBKEIU-B8TX_Mh-.js} +1 -1
  298. package/web-shell/assets/channel-BZd6Ile0.js +1 -0
  299. package/web-shell/assets/{chunk-2J33WTMH-CBxjogVR.js → chunk-2J33WTMH-B2WBUTp8.js} +1 -1
  300. package/web-shell/assets/{chunk-4BX2VUAB-izb-rY5W.js → chunk-4BX2VUAB-DXUsWC6O.js} +1 -1
  301. package/web-shell/assets/{chunk-55IACEB6-NzLyvSb8.js → chunk-55IACEB6-DtB-6cyk.js} +1 -1
  302. package/web-shell/assets/{chunk-727SXJPM-DVyKb0dl.js → chunk-727SXJPM-B-PhPyC3.js} +1 -1
  303. package/web-shell/assets/{chunk-AQP2D5EJ-BtqL7NzB.js → chunk-AQP2D5EJ-DNaTFMSC.js} +1 -1
  304. package/web-shell/assets/{chunk-FMBD7UC4-iNpdKIO0.js → chunk-FMBD7UC4-DZ345tFf.js} +1 -1
  305. package/web-shell/assets/{chunk-ND2GUHAM-DI7cbFmX.js → chunk-ND2GUHAM-BR_EpgzJ.js} +1 -1
  306. package/web-shell/assets/{chunk-QZHKN3VN-3Y_-xFYs.js → chunk-QZHKN3VN-BTU-0gDT.js} +1 -1
  307. package/web-shell/assets/classDiagram-4FO5ZUOK-B7c-TqtK.js +1 -0
  308. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-B7c-TqtK.js +1 -0
  309. package/web-shell/assets/{cose-bilkent-S5V4N54A--raRatZn.js → cose-bilkent-S5V4N54A-BmsKBCNt.js} +1 -1
  310. package/web-shell/assets/{dagre-BM42HDAG-B8SU70mO.js → dagre-BM42HDAG-Ba8YWdDC.js} +1 -1
  311. package/web-shell/assets/{diagram-2AECGRRQ-ewgoakXo.js → diagram-2AECGRRQ-CCt2SnI6.js} +1 -1
  312. package/web-shell/assets/{diagram-5GNKFQAL-Bm_JLTnS.js → diagram-5GNKFQAL-BVTLXEU7.js} +1 -1
  313. package/web-shell/assets/{diagram-KO2AKTUF-DEIUjUy9.js → diagram-KO2AKTUF-DpDAVCYV.js} +1 -1
  314. package/web-shell/assets/{diagram-LMA3HP47-C2Wmrpj-.js → diagram-LMA3HP47-8ljXg-TB.js} +1 -1
  315. package/web-shell/assets/{diagram-OG6HWLK6-CtYe6bFx.js → diagram-OG6HWLK6-JAXfQSmd.js} +1 -1
  316. package/web-shell/assets/{erDiagram-TEJ5UH35-DfpHcWLV.js → erDiagram-TEJ5UH35-CUeakG6k.js} +1 -1
  317. package/web-shell/assets/{flowDiagram-I6XJVG4X-CAiUhio5.js → flowDiagram-I6XJVG4X-Cd4Wrdwv.js} +1 -1
  318. package/web-shell/assets/{ganttDiagram-6RSMTGT7-CYc7ezr4.js → ganttDiagram-6RSMTGT7-C0nMFvH_.js} +1 -1
  319. package/web-shell/assets/{gitGraphDiagram-PVQCEYII-70lbkcRS.js → gitGraphDiagram-PVQCEYII-uKk88n_L.js} +1 -1
  320. package/web-shell/assets/index-BXGtjHs5.js +1756 -0
  321. package/web-shell/assets/{index-Ww86nT9f.js → index-C1UWBJSX.js} +1 -1
  322. package/web-shell/assets/index-WxSvj2tI.css +5 -0
  323. package/web-shell/assets/{infoDiagram-5YYISTIA-C7e8DWPa.js → infoDiagram-5YYISTIA-GfPN17hR.js} +1 -1
  324. package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-BYLr2op-.js → ishikawaDiagram-YF4QCWOH-CDbWTcGa.js} +1 -1
  325. package/web-shell/assets/{journeyDiagram-JHISSGLW-hEibAHKX.js → journeyDiagram-JHISSGLW-J8TvvVFz.js} +1 -1
  326. package/web-shell/assets/{kanban-definition-UN3LZRKU-F2rt8Uhp.js → kanban-definition-UN3LZRKU-Ds_ndLrs.js} +1 -1
  327. package/web-shell/assets/{linear-DPhyNezd.js → linear-DuL9O4i3.js} +1 -1
  328. package/web-shell/assets/{mermaid.core-ZUtnug0n.js → mermaid.core-DtK4PsQB.js} +5 -5
  329. package/web-shell/assets/{mindmap-definition-RKZ34NQL-DDWcMoi8.js → mindmap-definition-RKZ34NQL-DD0r7MS3.js} +1 -1
  330. package/web-shell/assets/{pieDiagram-4H26LBE5-CTRKzw1_.js → pieDiagram-4H26LBE5-CxGPZ8Q-.js} +1 -1
  331. package/web-shell/assets/{quadrantDiagram-W4KKPZXB-CAEwYG_z.js → quadrantDiagram-W4KKPZXB-Ds7Buxed.js} +1 -1
  332. package/web-shell/assets/{requirementDiagram-4Y6WPE33-CRjnH9D9.js → requirementDiagram-4Y6WPE33-DIx28ph5.js} +1 -1
  333. package/web-shell/assets/{sankeyDiagram-5OEKKPKP-LPQT_sOd.js → sankeyDiagram-5OEKKPKP-AxdAYcVX.js} +1 -1
  334. package/web-shell/assets/{sequenceDiagram-3UESZ5HK-Ht2Iqvb0.js → sequenceDiagram-3UESZ5HK-CojoXAZ5.js} +1 -1
  335. package/web-shell/assets/{stateDiagram-AJRCARHV-CIUdqOXu.js → stateDiagram-AJRCARHV-Dy1WN3mi.js} +1 -1
  336. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-BaTNMz02.js +1 -0
  337. package/web-shell/assets/{timeline-definition-PNZ67QCA-BcilneZF.js → timeline-definition-PNZ67QCA-DeWe_43M.js} +1 -1
  338. package/web-shell/assets/{vennDiagram-CIIHVFJN-BljwiiH1.js → vennDiagram-CIIHVFJN-BN8PVlFq.js} +1 -1
  339. package/web-shell/assets/{wardley-L42UT6IY-DeKjkYjq.js → wardley-L42UT6IY-CbjV_1hf.js} +1 -1
  340. package/web-shell/assets/{wardleyDiagram-YWT4CUSO-L3U1H7KG.js → wardleyDiagram-YWT4CUSO-D2mw84_p.js} +1 -1
  341. package/web-shell/assets/{xychartDiagram-2RQKCTM6-IJnWsgMT.js → xychartDiagram-2RQKCTM6-er9CTQXi.js} +1 -1
  342. package/web-shell/index.html +2 -2
  343. package/chunks/chunk-4KP2F2TE.js +0 -82
  344. package/chunks/chunk-HGT6JR3U.js +0 -177
  345. package/chunks/nonInteractiveCli-ZJYEOO7U.js +0 -148
  346. package/web-shell/assets/channel-B1cyk94G.js +0 -1
  347. package/web-shell/assets/classDiagram-4FO5ZUOK-BpBYZoRE.js +0 -1
  348. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-BpBYZoRE.js +0 -1
  349. package/web-shell/assets/index-C1k3PDuU.css +0 -5
  350. package/web-shell/assets/index-DZLIXILO.js +0 -1750
  351. package/web-shell/assets/insert-DmRbh9Rv.svg +0 -1
  352. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-BmqqQZ6w.js +0 -1
@@ -3,16 +3,16 @@
3
3
  import {
4
4
  settleChatRecording,
5
5
  subscribeToHeadlessChatRecordingFailures
6
- } from "./chunk-JE2CEOBO.js";
6
+ } from "./chunk-MNTXIO6T.js";
7
7
  import {
8
8
  handleAtCommand
9
- } from "./chunk-RG64CDT2.js";
9
+ } from "./chunk-RJAVNGJJ.js";
10
10
  import {
11
11
  JsonOutputAdapter
12
- } from "./chunk-V25K5ID7.js";
12
+ } from "./chunk-SWCEYR6T.js";
13
13
  import {
14
14
  StreamJsonOutputAdapter
15
- } from "./chunk-JJPKFJBT.js";
15
+ } from "./chunk-A2FOI762.js";
16
16
  import {
17
17
  buildInitialSystemReminders,
18
18
  buildSystemMessage,
@@ -24,11 +24,11 @@ import {
24
24
  insertAfterFunctionResponses,
25
25
  isSlashCommand,
26
26
  normalizePartList
27
- } from "./chunk-FNDXMN7I.js";
27
+ } from "./chunk-JQFMW7BD.js";
28
28
  import {
29
29
  RunBudgetEnforcer,
30
30
  cleanupReviewWorktreeLeases
31
- } from "./chunk-DEEABGH2.js";
31
+ } from "./chunk-H2EDCJIM.js";
32
32
  import {
33
33
  AlreadyReportedError,
34
34
  handleBudgetExceededError,
@@ -36,14 +36,15 @@ import {
36
36
  handleError,
37
37
  handleMaxTurnsExceededError,
38
38
  handleToolError
39
- } from "./chunk-CU47KXB5.js";
39
+ } from "./chunk-YTSN63PD.js";
40
40
  import {
41
41
  isInlineModelOverrideAllowed
42
- } from "./chunk-6TAASXWL.js";
42
+ } from "./chunk-ZX6RZZFB.js";
43
43
  import {
44
44
  PLAN_MODE_ENTRY_SIBLING_SKIP_MESSAGE,
45
45
  buildSessionRecoveryPlanFromApiHistory,
46
46
  canonicalToolName,
47
+ clampInlineMediaPart,
47
48
  createDuplicateProviderToolCallResponse,
48
49
  detectAutonomousSentinel,
49
50
  detectLoopSentinel,
@@ -56,7 +57,7 @@ import {
56
57
  parseAndFormatApiError,
57
58
  partitionByConcurrencySafety,
58
59
  restoreWorktreeContext
59
- } from "./chunk-54YCNSK5.js";
60
+ } from "./chunk-MVMBE5EH.js";
60
61
  import {
61
62
  parsePositiveIntegerEnv
62
63
  } from "./chunk-6PVPNMXU.js";
@@ -65,24 +66,31 @@ import {
65
66
  } from "./chunk-O6GEWCJA.js";
66
67
  import {
67
68
  isSystemReminderContent
68
- } from "./chunk-CBBP4BMC.js";
69
+ } from "./chunk-7UXI6P72.js";
69
70
  import {
71
+ formatFullTurnVisionNotice,
72
+ formatVisionBridgeNotice,
73
+ getFullTurnVisionModelSelector,
74
+ hasImageParts,
75
+ runVisionBridge,
76
+ shouldRunVisionBridge,
77
+ splitImageParts,
70
78
  uiTelemetryService
71
- } from "./chunk-DUNI4EBW.js";
79
+ } from "./chunk-KZXSAQYV.js";
72
80
  import {
73
81
  ToolNames
74
- } from "./chunk-MM7TH7ZM.js";
82
+ } from "./chunk-CFDR3GNL.js";
75
83
  import {
76
84
  isTelemetrySdkInitialized,
77
85
  shutdownTelemetry
78
- } from "./chunk-QARJNL2V.js";
86
+ } from "./chunk-O2ZYHG33.js";
79
87
  import {
80
88
  FatalInputError,
81
89
  createDebugLogger
82
- } from "./chunk-E2BHWIDT.js";
90
+ } from "./chunk-3RXUYQJI.js";
83
91
  import {
84
92
  registerCleanup
85
- } from "./chunk-DQ2O5QOJ.js";
93
+ } from "./chunk-FJZS2MXB.js";
86
94
  import {
87
95
  init_esbuild_shims
88
96
  } from "./chunk-5O2XNYP6.js";
@@ -280,6 +288,7 @@ async function runNonInteractive(config, settings, input, prompt_id, options = {
280
288
  flushQueuedNotificationsToSdk(sdkOnlyMonitorQueue);
281
289
  }, "finalizeOneShotMonitors");
282
290
  let pipeBroken = false;
291
+ let workflowApprovalChannelRegistered = false;
283
292
  const stdoutErrorHandler = /* @__PURE__ */ __name((err) => {
284
293
  if (err.code === "EPIPE" && !pipeBroken) {
285
294
  pipeBroken = true;
@@ -353,6 +362,17 @@ ${reason}
353
362
  process.stdout.on("error", stdoutErrorHandler);
354
363
  process.on("SIGINT", shutdownHandler);
355
364
  process.on("SIGTERM", shutdownHandler);
365
+ if (options.controlService) {
366
+ config.getWorkflowRunRegistry().setApprovalRequestCallback(
367
+ (entry, approval, rawArgs, signal) => options.controlService.permission.handleWorkflowApproval(
368
+ entry.runId,
369
+ approval,
370
+ rawArgs,
371
+ signal
372
+ )
373
+ );
374
+ workflowApprovalChannelRegistered = true;
375
+ }
356
376
  config.onTeamManagerChange(onTeamManagerChangeHandler);
357
377
  const existingManager = config.getTeamManager();
358
378
  if (existingManager) {
@@ -540,7 +560,60 @@ ${text}
540
560
  if (recoveredAgentsNotice) {
541
561
  initialPartList = withReminder(initialPartList, recoveredAgentsNotice);
542
562
  }
543
- const initialParts = normalizePartList(initialPartList);
563
+ let initialParts = normalizePartList(initialPartList);
564
+ let fullTurnModelOverride;
565
+ let fullTurnRuntimeView;
566
+ const emitVisionNotice = /* @__PURE__ */ __name((subtype, notice) => {
567
+ if (outputFormat === "text" /* TEXT */) {
568
+ process.stderr.write(`${notice}
569
+ `);
570
+ } else {
571
+ adapter.emitSystemMessage(subtype, { notice });
572
+ }
573
+ }, "emitVisionNotice");
574
+ if (inlineModelOverride === void 0 && shouldRunVisionBridge(config) && hasImageParts(initialParts)) {
575
+ const fullTurnModel = config.getDefaultVisionBridgeModel();
576
+ if (fullTurnModel?.agentCapable) {
577
+ const fullTurnParts = initialParts.map(
578
+ (part) => clampInlineMediaPart(part)
579
+ );
580
+ initialParts = fullTurnParts;
581
+ if (hasImageParts(fullTurnParts)) {
582
+ fullTurnModelOverride = getFullTurnVisionModelSelector(fullTurnModel);
583
+ fullTurnRuntimeView = await config.getBaseLlmClient().resolveForModel(fullTurnModelOverride.slice(0, -1), {
584
+ failClosed: true
585
+ });
586
+ emitVisionNotice(
587
+ "vision_routing",
588
+ formatFullTurnVisionNotice(fullTurnModel)
589
+ );
590
+ }
591
+ } else {
592
+ try {
593
+ const bridgeResult = await runVisionBridge({
594
+ config,
595
+ parts: initialParts,
596
+ signal: abortController.signal
597
+ });
598
+ if (bridgeResult.status !== "skipped" || bridgeResult.egressOccurred) {
599
+ emitVisionNotice(
600
+ "vision_bridge",
601
+ formatVisionBridgeNotice(bridgeResult)
602
+ );
603
+ }
604
+ initialParts = bridgeResult.applied && bridgeResult.parts != null ? normalizePartList(bridgeResult.parts) : splitImageParts(initialParts).nonImageParts;
605
+ } catch (error) {
606
+ debugLogger.debug(
607
+ `vision bridge: failed before replacement; falling back to text-only parts error=${error instanceof Error ? error.message : String(error)}`
608
+ );
609
+ emitVisionNotice(
610
+ "vision_bridge_failed",
611
+ "Vision bridge failed; proceeding without the image(s)."
612
+ );
613
+ initialParts = splitImageParts(initialParts).nonImageParts;
614
+ }
615
+ }
616
+ }
544
617
  let currentMessages = [{ role: "user", parts: initialParts }];
545
618
  const registry = config.getBackgroundTaskRegistry();
546
619
  registry.setNotificationCallback((displayText, modelText, meta) => {
@@ -609,8 +682,9 @@ ${text}
609
682
  }
610
683
  let isFirstTurn = true;
611
684
  let hasUnsentToolResponse = false;
612
- let modelOverride = inlineModelOverride;
685
+ let modelOverride = inlineModelOverride ?? fullTurnModelOverride;
613
686
  const inlineModelOverrideActive = inlineModelOverride !== void 0;
687
+ const fullTurnModelOverrideActive = fullTurnModelOverride !== void 0;
614
688
  if (inlineModelOverrideActive) {
615
689
  debugLogger.debug(
616
690
  `[runNonInteractive] inline model override active for turn: ${inlineModelOverride}`
@@ -667,7 +741,7 @@ ${text}
667
741
  }, "emitLoopDetectedResult");
668
742
  const handledProviderToolCallIds = geminiClient.getHistoryFunctionResponseIds();
669
743
  const duplicateProviderToolCallResponseIds = /* @__PURE__ */ new Set();
670
- const processToolCallBatch = /* @__PURE__ */ __name(async (batchRequests, setModelOverride) => {
744
+ const processToolCallBatch = /* @__PURE__ */ __name(async (batchRequests, setModelOverride, runtimeView) => {
671
745
  const responseByRequest = /* @__PURE__ */ new Map();
672
746
  const statusByResponse = /* @__PURE__ */ new Map();
673
747
  const structuredOutputActive = config.getJsonSchema() && batchRequests.some((r) => r.name === ToolNames.STRUCTURED_OUTPUT);
@@ -777,6 +851,7 @@ ${text}
777
851
  statusByResponse.set(call.response, call.status);
778
852
  }
779
853
  }, "onAllToolCallsComplete"),
854
+ runtimeView,
780
855
  ...toolCallUpdateCallback && {
781
856
  onToolCallsUpdate: toolCallUpdateCallback
782
857
  }
@@ -1073,14 +1148,21 @@ ${text}
1073
1148
  const {
1074
1149
  responseParts: toolResponseParts,
1075
1150
  repeatedDuplicateProviderToolCall
1076
- } = await processToolCallBatch(toolCallRequests, (override) => {
1077
- if (inlineModelOverrideActive) return false;
1078
- if (modelOverride?.endsWith("\0") && modelOverride !== override) {
1079
- return false;
1080
- }
1081
- modelOverride = override;
1082
- return true;
1083
- });
1151
+ } = await processToolCallBatch(
1152
+ toolCallRequests,
1153
+ (override) => {
1154
+ if (inlineModelOverrideActive) return false;
1155
+ if (fullTurnModelOverrideActive && modelOverride !== override) {
1156
+ return false;
1157
+ }
1158
+ if (modelOverride?.endsWith("\0") && modelOverride !== override) {
1159
+ return false;
1160
+ }
1161
+ modelOverride = override;
1162
+ return true;
1163
+ },
1164
+ fullTurnRuntimeView
1165
+ );
1084
1166
  if (structuredSubmission !== void 0) {
1085
1167
  return emitStructuredSuccess();
1086
1168
  }
@@ -1419,6 +1501,9 @@ ${text}
1419
1501
  }
1420
1502
  await handleError(error, config);
1421
1503
  } finally {
1504
+ if (workflowApprovalChannelRegistered) {
1505
+ config.getWorkflowRunRegistry().setApprovalRequestCallback(void 0);
1506
+ }
1422
1507
  cleanupReviewWorktrees();
1423
1508
  unregisterReviewWorktreeCleanup();
1424
1509
  config.onTeamManagerChange(null, onTeamManagerChangeHandler);
@@ -2,15 +2,15 @@
2
2
  "use strict";
3
3
  import {
4
4
  sanitizeFilenameForDisplay
5
- } from "./chunk-YDLJGZHL.js";
5
+ } from "./chunk-4NFY2S7N.js";
6
6
  import {
7
7
  t
8
- } from "./chunk-3F2WDAV6.js";
8
+ } from "./chunk-CFVFQWFB.js";
9
9
  import {
10
10
  fetchGitDiff,
11
11
  findProviderByCredentials,
12
12
  resolveMetadataKey
13
- } from "./chunk-54YCNSK5.js";
13
+ } from "./chunk-MVMBE5EH.js";
14
14
  import {
15
15
  init_esbuild_shims
16
16
  } from "./chunk-5O2XNYP6.js";
@@ -0,0 +1,132 @@
1
+ // Force strict mode and setup for ESM
2
+ "use strict";
3
+ import {
4
+ init_esbuild_shims
5
+ } from "./chunk-5O2XNYP6.js";
6
+ import {
7
+ __commonJS,
8
+ __name
9
+ } from "./chunk-J2S4EL5Y.js";
10
+
11
+ // node_modules/content-type/index.js
12
+ var require_content_type = __commonJS({
13
+ "node_modules/content-type/index.js"(exports) {
14
+ "use strict";
15
+ init_esbuild_shims();
16
+ var PARAM_REGEXP = /; *([!#$%&'*+.^_`|~0-9A-Za-z-]+) *= *("(?:[\u000b\u0020\u0021\u0023-\u005b\u005d-\u007e\u0080-\u00ff]|\\[\u000b\u0020-\u00ff])*"|[!#$%&'*+.^_`|~0-9A-Za-z-]+) */g;
17
+ var TEXT_REGEXP = /^[\u000b\u0020-\u007e\u0080-\u00ff]+$/;
18
+ var TOKEN_REGEXP = /^[!#$%&'*+.^_`|~0-9A-Za-z-]+$/;
19
+ var QESC_REGEXP = /\\([\u000b\u0020-\u00ff])/g;
20
+ var QUOTE_REGEXP = /([\\"])/g;
21
+ var TYPE_REGEXP = /^[!#$%&'*+.^_`|~0-9A-Za-z-]+\/[!#$%&'*+.^_`|~0-9A-Za-z-]+$/;
22
+ exports.format = format;
23
+ exports.parse = parse;
24
+ function format(obj) {
25
+ if (!obj || typeof obj !== "object") {
26
+ throw new TypeError("argument obj is required");
27
+ }
28
+ var parameters = obj.parameters;
29
+ var type = obj.type;
30
+ if (!type || !TYPE_REGEXP.test(type)) {
31
+ throw new TypeError("invalid type");
32
+ }
33
+ var string = type;
34
+ if (parameters && typeof parameters === "object") {
35
+ var param;
36
+ var params = Object.keys(parameters).sort();
37
+ for (var i = 0; i < params.length; i++) {
38
+ param = params[i];
39
+ if (!TOKEN_REGEXP.test(param)) {
40
+ throw new TypeError("invalid parameter name");
41
+ }
42
+ string += "; " + param + "=" + qstring(parameters[param]);
43
+ }
44
+ }
45
+ return string;
46
+ }
47
+ __name(format, "format");
48
+ function parse(string) {
49
+ if (!string) {
50
+ throw new TypeError("argument string is required");
51
+ }
52
+ var header = typeof string === "object" ? getcontenttype(string) : string;
53
+ if (typeof header !== "string") {
54
+ throw new TypeError("argument string is required to be a string");
55
+ }
56
+ var index = header.indexOf(";");
57
+ var type = index !== -1 ? header.slice(0, index).trim() : header.trim();
58
+ if (!TYPE_REGEXP.test(type)) {
59
+ throw new TypeError("invalid media type");
60
+ }
61
+ var obj = new ContentType(type.toLowerCase());
62
+ if (index !== -1) {
63
+ var key;
64
+ var match;
65
+ var value;
66
+ PARAM_REGEXP.lastIndex = index;
67
+ while (match = PARAM_REGEXP.exec(header)) {
68
+ if (match.index !== index) {
69
+ throw new TypeError("invalid parameter format");
70
+ }
71
+ index += match[0].length;
72
+ key = match[1].toLowerCase();
73
+ value = match[2];
74
+ if (value.charCodeAt(0) === 34) {
75
+ value = value.slice(1, -1);
76
+ if (value.indexOf("\\") !== -1) {
77
+ value = value.replace(QESC_REGEXP, "$1");
78
+ }
79
+ }
80
+ obj.parameters[key] = value;
81
+ }
82
+ if (index !== header.length) {
83
+ throw new TypeError("invalid parameter format");
84
+ }
85
+ }
86
+ return obj;
87
+ }
88
+ __name(parse, "parse");
89
+ function getcontenttype(obj) {
90
+ var header;
91
+ if (typeof obj.getHeader === "function") {
92
+ header = obj.getHeader("content-type");
93
+ } else if (typeof obj.headers === "object") {
94
+ header = obj.headers && obj.headers["content-type"];
95
+ }
96
+ if (typeof header !== "string") {
97
+ throw new TypeError("content-type header is missing from object");
98
+ }
99
+ return header;
100
+ }
101
+ __name(getcontenttype, "getcontenttype");
102
+ function qstring(val) {
103
+ var str = String(val);
104
+ if (TOKEN_REGEXP.test(str)) {
105
+ return str;
106
+ }
107
+ if (str.length > 0 && !TEXT_REGEXP.test(str)) {
108
+ throw new TypeError("invalid parameter value");
109
+ }
110
+ return '"' + str.replace(QUOTE_REGEXP, "\\$1") + '"';
111
+ }
112
+ __name(qstring, "qstring");
113
+ function ContentType(type) {
114
+ this.parameters = /* @__PURE__ */ Object.create(null);
115
+ this.type = type;
116
+ }
117
+ __name(ContentType, "ContentType");
118
+ }
119
+ });
120
+
121
+ export {
122
+ require_content_type
123
+ };
124
+ /*! Bundled license information:
125
+
126
+ content-type/index.js:
127
+ (*!
128
+ * content-type
129
+ * Copyright(c) 2015 Douglas Christopher Wilson
130
+ * MIT Licensed
131
+ *)
132
+ */
@@ -2,10 +2,10 @@
2
2
  "use strict";
3
3
  import {
4
4
  escapeAnsiCtrlCodes
5
- } from "./chunk-YDLJGZHL.js";
5
+ } from "./chunk-4NFY2S7N.js";
6
6
  import {
7
7
  createDebugLogger
8
- } from "./chunk-E2BHWIDT.js";
8
+ } from "./chunk-3RXUYQJI.js";
9
9
  import {
10
10
  wrapper_default
11
11
  } from "./chunk-TYAMGABM.js";
@@ -21,12 +21,12 @@ import {
21
21
  getLanguageNameFromLocale,
22
22
  getLanguageSettingsOptions,
23
23
  t
24
- } from "./chunk-3F2WDAV6.js";
24
+ } from "./chunk-CFVFQWFB.js";
25
25
  import {
26
26
  getHomeEnvFallbackVars,
27
27
  loadEnvironment,
28
28
  preResolveHomeEnvOverrides
29
- } from "./chunk-EU5TBFJI.js";
29
+ } from "./chunk-IV7QPMC2.js";
30
30
  import {
31
31
  ENV_CORRUPTED_PATH,
32
32
  ENV_WAS_RECOVERED
@@ -34,7 +34,7 @@ import {
34
34
  import {
35
35
  isWorkspaceTrusted,
36
36
  updateSettingsFilePreservingFormat
37
- } from "./chunk-P755N4CS.js";
37
+ } from "./chunk-3GALLNII.js";
38
38
  import {
39
39
  require_strip_json_comments
40
40
  } from "./chunk-ALGGS7UH.js";
@@ -46,13 +46,13 @@ import {
46
46
  DEFAULT_TOOL_RESULTS_TOTAL_CHARS_THRESHOLD,
47
47
  DEFAULT_TRUNCATE_TOOL_OUTPUT_LINES,
48
48
  DEFAULT_TRUNCATE_TOOL_OUTPUT_THRESHOLD
49
- } from "./chunk-54YCNSK5.js";
49
+ } from "./chunk-MVMBE5EH.js";
50
50
  import {
51
51
  stripRuntimeSnapshotPrefix
52
- } from "./chunk-ZMOJ7ISP.js";
52
+ } from "./chunk-XXOVLDZQ.js";
53
53
  import {
54
54
  DEFAULT_QWEN_CUSTOM_IGNORE_FILE_NAMES
55
- } from "./chunk-N4ACHWNH.js";
55
+ } from "./chunk-432XCUHF.js";
56
56
  import {
57
57
  DEFAULT_SENSITIVE_SPAN_ATTRIBUTE_MAX_LENGTH,
58
58
  SENSITIVE_SPAN_ATTRIBUTE_MAX_LENGTH_LIMIT
@@ -62,7 +62,7 @@ import {
62
62
  Storage,
63
63
  createDebugLogger,
64
64
  getErrorMessage
65
- } from "./chunk-E2BHWIDT.js";
65
+ } from "./chunk-3RXUYQJI.js";
66
66
  import {
67
67
  init_esbuild_shims
68
68
  } from "./chunk-5O2XNYP6.js";
@@ -240,7 +240,40 @@ var SETTINGS_SCHEMA = {
240
240
  default: {},
241
241
  description: "Persistent qwen serve settings.",
242
242
  showInDialog: false,
243
- mergeStrategy: "shallow_merge" /* SHALLOW_MERGE */
243
+ mergeStrategy: "shallow_merge" /* SHALLOW_MERGE */,
244
+ properties: {
245
+ channels: {
246
+ type: "array",
247
+ label: "Startup Channels",
248
+ category: "Advanced",
249
+ requiresRestart: true,
250
+ default: [],
251
+ description: "Messaging channels to start automatically when the daemon boots.",
252
+ showInDialog: false,
253
+ items: { type: "string" }
254
+ },
255
+ maxConcurrentSubSessionsPerCaller: {
256
+ type: "integer",
257
+ label: "Max Concurrent Sub-Sessions Per Caller",
258
+ category: "Advanced",
259
+ requiresRestart: true,
260
+ default: 16,
261
+ minimum: 1,
262
+ description: "Per-session ceiling on concurrent in-flight sub-sessions spawned via the create_sub_session tool.",
263
+ showInDialog: false
264
+ },
265
+ maxConcurrentSubSessionsTotal: {
266
+ type: "integer",
267
+ label: "Max Concurrent Sub-Sessions Total",
268
+ category: "Advanced",
269
+ requiresRestart: true,
270
+ default: 24,
271
+ minimum: 1,
272
+ maximum: 1024,
273
+ description: "Workspace-wide ceiling on concurrent in-flight sub-sessions across all callers.",
274
+ showInDialog: false
275
+ }
276
+ }
244
277
  },
245
278
  // Model providers configuration grouped by authType
246
279
  modelProviders: {
@@ -893,7 +926,7 @@ var SETTINGS_SCHEMA = {
893
926
  category: "UI",
894
927
  requiresRestart: true,
895
928
  default: true,
896
- description: "Render conversation history in an in-app scrollable viewport instead of the terminal scrollback buffer. Enabled by default in compatible interactive terminals to avoid flicker, scroll-storm, and interface freeze on long sessions, after Ctrl+O, after Ctrl+E / Ctrl+F (expand), after window resize, or when alt-tabbing back. Screen reader mode and non-interactive output such as piped stdout or CI use append-only terminal output instead. Scroll with Shift+\u2191/\u2193 (line), PgUp/PgDn (page), Ctrl+Home/End (top/bottom), or the mouse wheel. Also enables mouse interactions: click an option in a menu/dialog to select it, hover to highlight it, and click in the prompt to position the cursor. Does NOT use the host terminal scrollback while enabled. Drag to select text in the viewport (double/triple click selects a word/line), copied on release. To use the terminal\u2019s own selection instead, hold Shift (or Option on macOS) while dragging.",
929
+ description: "Render conversation history in an in-app scrollable viewport instead of the terminal scrollback buffer. Enabled by default in compatible interactive terminals to avoid flicker, scroll-storm, and interface freeze on long sessions, after Ctrl+O, after Ctrl+E / Ctrl+F (expand), after window resize, or when alt-tabbing back. Screen reader mode and non-interactive output such as piped stdout or CI use append-only terminal output instead. Scroll with Shift+\u2191/\u2193 (line), PgUp/PgDn (page), Ctrl+Home/End (top/bottom), or the mouse wheel. Also enables mouse interactions: click an option in a menu/dialog to select it, hover to highlight it, and click in the prompt to position the cursor. Does NOT use the host terminal scrollback while enabled. Drag to select text in the viewport (double/triple click selects a word/line), copied on release. To use the terminal\u2019s own selection instead, hold Shift (or Option on macOS) while dragging. These mouse interactions are controlled by ui.mouseTracking; disable that setting to restore native right-click and OSC 8 hyperlink clicks.",
897
930
  showInDialog: true
898
931
  },
899
932
  showScrollbar: {
@@ -905,6 +938,15 @@ var SETTINGS_SCHEMA = {
905
938
  description: "Show the auto-hiding scrollbar in the in-app scrollable viewport (Virtualized History). The bar appears while scrolling and fades out when idle. Disable to hide it entirely.",
906
939
  showInDialog: true
907
940
  },
941
+ mouseTracking: {
942
+ type: "boolean",
943
+ label: "Mouse Tracking",
944
+ category: "UI",
945
+ requiresRestart: true,
946
+ default: true,
947
+ description: "Enable in-app SGR mouse tracking. While enabled, Qwen Code captures mouse events for text selection, click-to-position in text inputs, row hover, history-item toggling, and viewport scrolling. Because the terminal forwards all mouse events to the app, it cannot show native right-click context menus or open OSC 8 hyperlink clicks. Disable to restore native right-click and clickable URL links; this turns off all in-app mouse interaction, and in Virtualized History the wheel no longer scrolls the transcript \u2014 use Shift+\u2191/\u2193, PgUp/PgDn, or Ctrl+Home/End instead (pair with ui.useTerminalBuffer: false to restore native terminal scrollback).",
948
+ showInDialog: true
949
+ },
908
950
  shellOutputMaxLines: {
909
951
  type: "number",
910
952
  label: "Shell Output Max Lines",
@@ -1140,6 +1182,15 @@ var SETTINGS_SCHEMA = {
1140
1182
  description: "Image-capable model used as the vision bridge: when a text-only main model receives an image, it is transcribed by this model first. Set with /model --vision. Leave empty to auto-pick a same-provider vision model.",
1141
1183
  showInDialog: true
1142
1184
  },
1185
+ compactionModel: {
1186
+ type: "string",
1187
+ label: "Compaction Model",
1188
+ category: "Model",
1189
+ requiresRestart: false,
1190
+ default: "",
1191
+ description: "Model used for chat compression (auto-compaction). Set with /model --compaction. Leave empty to fall back to the main model. A smaller/faster model reduces compression latency and cost.",
1192
+ showInDialog: false
1193
+ },
1143
1194
  imageModel: {
1144
1195
  type: "string",
1145
1196
  label: "Image Model",
@@ -1411,6 +1462,39 @@ var SETTINGS_SCHEMA = {
1411
1462
  parentKey: "generationConfig",
1412
1463
  showInDialog: false
1413
1464
  },
1465
+ cacheRetention: {
1466
+ type: "enum",
1467
+ label: "Anthropic Cache Retention",
1468
+ category: "Generation Configuration",
1469
+ requiresRestart: false,
1470
+ default: void 0,
1471
+ description: "Default Anthropic cache_control retention. 'ephemeral' uses the spec 5-minute default (no ttl on the wire). '1h' requests the extended cache tier (ttl: '1h') -- note the 1h tier writes at 2x base input token cost (vs 1.25x for the 5-minute default; cached reads stay 0.1x for both), so it only pays off when a prefix survives long enough between requests to outlast several 5-minute windows.",
1472
+ parentKey: "generationConfig",
1473
+ showInDialog: false,
1474
+ options: [
1475
+ { value: "ephemeral", label: "Ephemeral (5m, Default)" },
1476
+ { value: "1h", label: "Extended (1h)" }
1477
+ ]
1478
+ },
1479
+ cacheRetentionByBlock: {
1480
+ type: "object",
1481
+ label: "Anthropic Cache Retention By Block",
1482
+ category: "Generation Configuration",
1483
+ requiresRestart: false,
1484
+ default: void 0,
1485
+ description: "Optional per-anchor override for Anthropic cache retention. Keys (system, tool, user.last) override generationConfig.cacheRetention when present. Resolution is normalized so retention is monotonically non-increasing in wire order (tool -> system -> user.last, per Anthropic's 'longer TTL must precede shorter TTL' rule): setting one anchor to '1h' promotes every anchor before it on the wire to '1h' as well, so any combination here is valid.",
1486
+ parentKey: "generationConfig",
1487
+ showInDialog: false,
1488
+ jsonSchemaOverride: {
1489
+ type: "object",
1490
+ properties: {
1491
+ system: { type: "string", enum: ["ephemeral", "1h"] },
1492
+ tool: { type: "string", enum: ["ephemeral", "1h"] },
1493
+ "user.last": { type: "string", enum: ["ephemeral", "1h"] }
1494
+ },
1495
+ additionalProperties: false
1496
+ }
1497
+ },
1414
1498
  splitToolMedia: {
1415
1499
  type: "boolean",
1416
1500
  label: "Split Tool Result Media",
@@ -1749,6 +1833,20 @@ var SETTINGS_SCHEMA = {
1749
1833
  description: "Configuration for skills (SKILL.md-based capabilities) exposed to the model.",
1750
1834
  showInDialog: false,
1751
1835
  properties: {
1836
+ disabledLevels: {
1837
+ type: "array",
1838
+ label: "Disabled Skill Levels",
1839
+ category: "Advanced",
1840
+ requiresRestart: true,
1841
+ default: void 0,
1842
+ description: "Skill discovery levels to skip entirely. Supported levels are project, user, extension, and bundled. UNION-merged across settings scopes.",
1843
+ showInDialog: false,
1844
+ mergeStrategy: "union" /* UNION */,
1845
+ items: {
1846
+ type: "string",
1847
+ enum: ["project", "user", "extension", "bundled"]
1848
+ }
1849
+ },
1752
1850
  disabled: {
1753
1851
  type: "array",
1754
1852
  label: "Disabled Skills",
@@ -2924,6 +3022,17 @@ var SETTINGS_SCHEMA = {
2924
3022
  mergeStrategy: "concat" /* CONCAT */,
2925
3023
  items: HOOK_DEFINITION_ITEMS
2926
3024
  },
3025
+ SessionDelete: {
3026
+ type: "array",
3027
+ label: "Session Delete Hooks",
3028
+ category: "Advanced",
3029
+ requiresRestart: false,
3030
+ default: [],
3031
+ description: "Hooks that execute after an explicitly selected session is deleted.",
3032
+ showInDialog: false,
3033
+ mergeStrategy: "concat" /* CONCAT */,
3034
+ items: HOOK_DEFINITION_ITEMS
3035
+ },
2927
3036
  PreCompact: {
2928
3037
  type: "array",
2929
3038
  label: "Pre Compact Hooks",
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  t
5
- } from "./chunk-3F2WDAV6.js";
5
+ } from "./chunk-CFVFQWFB.js";
6
6
  import {
7
7
  init_esbuild_shims
8
8
  } from "./chunk-5O2XNYP6.js";