@qwen-code/qwen-code 0.21.2 → 0.21.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 (351) hide show
  1. package/bundled/qc-helper/docs/configuration/settings.md +41 -38
  2. package/bundled/qc-helper/docs/features/channels/github.md +7 -0
  3. package/bundled/qc-helper/docs/features/channels/gitlab.md +6 -0
  4. package/bundled/qc-helper/docs/features/code-review.md +78 -23
  5. package/bundled/qc-helper/docs/features/commands.md +2 -0
  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 +21 -1
  12. package/bundled/qc-helper/docs/reference/keyboard-shortcuts.md +13 -13
  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 +156 -32
  16. package/chunks/{MaxSizedBox-TQBQ247P.js → MaxSizedBox-OJR636GP.js} +40 -38
  17. package/chunks/{StandaloneSessionPicker-2HPTKCLX.js → StandaloneSessionPicker-AMMBF5UY.js} +62 -59
  18. package/chunks/{acp-startup-profiler-2C4A5ZTJ.js → acp-startup-profiler-3RICG2YW.js} +2 -2
  19. package/chunks/{acpAgent-PS6EDGH3.js → acpAgent-M57LVIQA.js} +662 -560
  20. package/chunks/{agent-VDOUB35F.js → agent-PE37ARLM.js} +36 -34
  21. package/chunks/{agent-headless-EO53EFS2.js → agent-headless-45ASME4R.js} +36 -34
  22. package/chunks/{anthropicContentGenerator-OFHSZJBF.js → anthropicContentGenerator-WCBYB6JG.js} +337 -27
  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-K3ZRPO4D.js} +42 -40
  26. package/chunks/{ca-6W3SK7OQ.js → ca-4OJN75WT.js} +46 -5
  27. package/chunks/{channel-management-service-5S7YCWX5.js → channel-management-service-IXJ2MZTS.js} +7 -7
  28. package/chunks/{channel-settings-store-JFVRSNER.js → channel-settings-store-PEAR3IME.js} +43 -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-W3UKBMSI.js → chunk-22YFMJBW.js} +84 -8
  33. package/chunks/{chunk-6MPDY6ZG.js → chunk-24ER7UV4.js} +1 -1
  34. package/chunks/{chunk-QDK4F2N5.js → chunk-2DNKEBXY.js} +1 -1
  35. package/chunks/{chunk-D6MDRSZ6.js → chunk-2LZCLQIS.js} +22 -11
  36. package/chunks/{chunk-JYBU6YUE.js → chunk-2M5N3DHY.js} +1 -1
  37. package/chunks/{chunk-KR32NIAN.js → chunk-2MI7ZTRT.js} +10 -10
  38. package/chunks/{chunk-LHKCY7DY.js → chunk-2UISUFHQ.js} +3 -3
  39. package/chunks/{chunk-JXVC2PL3.js → chunk-33FNCQSY.js} +2 -2
  40. package/chunks/{chunk-NBD76HUW.js → chunk-3LGZEYOF.js} +2 -2
  41. package/chunks/{chunk-CO2U743O.js → chunk-3MWNROHB.js} +4 -4
  42. package/chunks/{chunk-E2BHWIDT.js → chunk-3RXUYQJI.js} +6 -2
  43. package/chunks/{chunk-E5Z2AVNV.js → chunk-3SH53ANB.js} +0 -11
  44. package/chunks/{chunk-LYI2PZDK.js → chunk-3XF4WT3B.js} +2 -2
  45. package/chunks/{chunk-N4ACHWNH.js → chunk-432XCUHF.js} +1 -1
  46. package/chunks/{chunk-FNDXMN7I.js → chunk-4AGGSHCH.js} +774 -205
  47. package/chunks/{chunk-DUNI4EBW.js → chunk-4K3RV3OA.js} +80 -50
  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-JLZ3RBQG.js → chunk-5JPVOYWA.js} +144 -11
  51. package/chunks/{chunk-6TAASXWL.js → chunk-5VYFXHY2.js} +3 -3
  52. package/chunks/{chunk-EU5TBFJI.js → chunk-6NE5NTHJ.js} +2 -2
  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-3APUUXRF.js → chunk-A5YZ3FA2.js} +2 -1
  56. package/chunks/{chunk-SHN4KHDK.js → chunk-A6SX5TAH.js} +3 -3
  57. package/chunks/{chunk-SZ3KHTDR.js → chunk-AKA24BGO.js} +1 -1
  58. package/chunks/{chunk-Q3T5KA2V.js → chunk-BFHXDAR7.js} +1 -1
  59. package/chunks/{chunk-L55JWS76.js → chunk-BGXZBI5B.js} +1 -1
  60. package/chunks/{chunk-P5VC5USY.js → chunk-BKGA75MU.js} +1 -1
  61. package/chunks/{chunk-2KKCCLPT.js → chunk-BKXTHMOZ.js} +1 -1
  62. package/chunks/{chunk-V4XNUDPE.js → chunk-BSKUTHLO.js} +15 -7
  63. package/chunks/{chunk-MM7TH7ZM.js → chunk-CFDR3GNL.js} +18 -3
  64. package/chunks/{chunk-E2FN6SM7.js → chunk-CIUUYB23.js} +5 -5
  65. package/chunks/{chunk-A7Y5H4TX.js → chunk-D2GPKXCQ.js} +7 -7
  66. package/chunks/{chunk-JCJ7LKNA.js → chunk-DIEFUBV6.js} +1644 -1570
  67. package/chunks/{chunk-GL4JOZXU.js → chunk-DSGJLHM3.js} +4 -4
  68. package/chunks/{chunk-675H6PLP.js → chunk-DYA25Y7U.js} +1 -1
  69. package/chunks/{chunk-3I6DUGQD.js → chunk-E4WHKETF.js} +32 -4
  70. package/chunks/{chunk-CU47KXB5.js → chunk-EGYJRIDF.js} +6 -6
  71. package/chunks/{chunk-6CQWRWUC.js → chunk-EIMKVOSF.js} +3 -3
  72. package/chunks/{chunk-QTERJVPZ.js → chunk-EKTCKZV5.js} +1 -0
  73. package/chunks/{chunk-NHFEMWAZ.js → chunk-FF75UUB2.js} +1 -1
  74. package/chunks/{chunk-L32VV3ZJ.js → chunk-FG63DZQA.js} +12 -12
  75. package/chunks/{chunk-FCYYAB4S.js → chunk-FHPKHXHT.js} +3 -3
  76. package/chunks/{chunk-GJ2GBPBD.js → chunk-FXVHVCNA.js} +5 -5
  77. package/chunks/{chunk-56Z7QEAQ.js → chunk-GMSBXEH4.js} +16 -16
  78. package/chunks/chunk-GOFAQQZA.js +132 -0
  79. package/chunks/{chunk-YUFIEIWC.js → chunk-GTM6IHBB.js} +2 -2
  80. package/chunks/{chunk-HIVKI6O6.js → chunk-H35Q5CEG.js} +9 -7
  81. package/chunks/{chunk-FJ5WUMUQ.js → chunk-H36SETQS.js} +1 -1
  82. package/chunks/{chunk-AUOULH6Q.js → chunk-H6FIBBXK.js} +1610 -2196
  83. package/chunks/{chunk-VEMNQMHA.js → chunk-H6ZYP74A.js} +5 -13
  84. package/chunks/{chunk-TTJZAIFP.js → chunk-HEBW74ZW.js} +3 -3
  85. package/chunks/{chunk-6FMJLI5M.js → chunk-HFVW54NL.js} +41 -6
  86. package/chunks/{chunk-44F4LBWZ.js → chunk-HIXVWF7I.js} +56 -18
  87. package/chunks/{chunk-EQNUDTL6.js → chunk-HUIQ4FYC.js} +2 -2
  88. package/chunks/{chunk-5NNHICSA.js → chunk-I7JDGNG6.js} +3 -3
  89. package/chunks/{chunk-PVNQRENX.js → chunk-IF6K42YJ.js} +1 -1
  90. package/chunks/{chunk-PJOHNFIY.js → chunk-IWGTGH4G.js} +5 -5
  91. package/chunks/{chunk-B4AJNNOL.js → chunk-J26HHFI5.js} +1 -1
  92. package/chunks/{chunk-CNTR4GR6.js → chunk-JELIWHXD.js} +1 -1
  93. package/chunks/{chunk-V25K5ID7.js → chunk-K2J5JZ6B.js} +1 -1
  94. package/chunks/{chunk-IGTHU3T4.js → chunk-KKN2IE7Q.js} +1 -1
  95. package/chunks/{chunk-TZTAV5RH.js → chunk-KVUBYJDM.js} +2 -2
  96. package/chunks/{chunk-3F2WDAV6.js → chunk-KXWERR6P.js} +14 -14
  97. package/chunks/{chunk-JJPKFJBT.js → chunk-L7FTDKCD.js} +3 -3
  98. package/chunks/chunk-LBOVL47Y.js +29 -0
  99. package/chunks/{chunk-FS674JW4.js → chunk-LBWNSLJK.js} +3 -3
  100. package/chunks/{chunk-I5BT7ADR.js → chunk-LGT3YMLN.js} +4 -4
  101. package/chunks/{chunk-UV6KF7T3.js → chunk-LZV2BZPL.js} +3 -3
  102. package/chunks/{chunk-P755N4CS.js → chunk-M5LIY7Y6.js} +6 -6
  103. package/chunks/{chunk-YGE3IXJP.js → chunk-M744OFVE.js} +1 -1
  104. package/chunks/{chunk-NTDH4IML.js → chunk-MCXMWLFT.js} +7 -7
  105. package/chunks/chunk-MISUEWB4.js +8749 -0
  106. package/chunks/{chunk-TEGJSJDF.js → chunk-MOHAWIAW.js} +2 -2
  107. package/chunks/{chunk-KXDONCPU.js → chunk-MTR4JWQJ.js} +4 -4
  108. package/chunks/{chunk-RSVPYAGK.js → chunk-MUEJ4R3E.js} +5 -5
  109. package/chunks/{chunk-PCK4B6LR.js → chunk-N42C2FU3.js} +1 -1
  110. package/chunks/{chunk-WWCMSZII.js → chunk-NW57GHNL.js} +71 -7
  111. package/chunks/{chunk-PQNHRFJC.js → chunk-NYX53SV4.js} +0 -2
  112. package/chunks/{chunk-QARJNL2V.js → chunk-O2ZYHG33.js} +5 -4
  113. package/chunks/{chunk-V7RNNPGC.js → chunk-P5Y23G2L.js} +18 -1
  114. package/chunks/{chunk-GURGAJTX.js → chunk-PDDYAXL2.js} +4 -1
  115. package/chunks/chunk-PWCQRLM5.js +1170 -0
  116. package/chunks/{chunk-VMX5RZQH.js → chunk-Q3G5L5KF.js} +18 -9
  117. package/chunks/{chunk-DQ2O5QOJ.js → chunk-QDWLUXKP.js} +1 -1
  118. package/chunks/chunk-QL4TN4HS.js +59 -0
  119. package/chunks/{chunk-E6CJ2SMM.js → chunk-QMBEW7EW.js} +2 -2
  120. package/chunks/{chunk-U4VTUMMK.js → chunk-QONSRAEV.js} +1 -1
  121. package/chunks/{chunk-DEEABGH2.js → chunk-QPSYIV2O.js} +3320 -536
  122. package/chunks/{chunk-Q5WZTTWE.js → chunk-QWDVZH24.js} +6 -8
  123. package/chunks/{chunk-2LEOZTBT.js → chunk-QWW6I2UO.js} +111 -26
  124. package/chunks/{chunk-LOY7RWQG.js → chunk-QYPT3QUD.js} +3 -3
  125. package/chunks/{chunk-6PQPKTXP.js → chunk-R7XNRHYD.js} +1 -1
  126. package/chunks/{chunk-7SJN2IWT.js → chunk-RCXCGZG6.js} +5 -5
  127. package/chunks/{chunk-HX6RLYUO.js → chunk-RL6J3BPE.js} +4 -4
  128. package/chunks/{chunk-Z3S5EMOW.js → chunk-RPYYTL7E.js} +60 -12
  129. package/chunks/{chunk-MB32MS4U.js → chunk-RR224BUP.js} +215 -174
  130. package/chunks/{chunk-H6I4PGRV.js → chunk-SKSF3LGQ.js} +4 -4
  131. package/chunks/{chunk-77V3VIKL.js → chunk-SQ3YD5MI.js} +9 -9
  132. package/chunks/{chunk-CBBP4BMC.js → chunk-SRY26X4H.js} +72 -206
  133. package/chunks/{chunk-RDJOB6S3.js → chunk-TXABHVZD.js} +1 -1
  134. package/chunks/{chunk-R2XWGR75.js → chunk-TYERNYH4.js} +2 -2
  135. package/chunks/chunk-TZTBZ25J.js +222 -0
  136. package/chunks/{chunk-45IOTAUS.js → chunk-U25CMJYY.js} +1 -1
  137. package/chunks/{chunk-7ULQIS27.js → chunk-UEJESCS7.js} +1 -1
  138. package/chunks/{chunk-HC45LTEN.js → chunk-UH7Z7Y45.js} +1 -1
  139. package/chunks/{chunk-CPZAH673.js → chunk-UKZEXS6K.js} +2 -0
  140. package/chunks/{chunk-54YCNSK5.js → chunk-UQDFEU47.js} +4113 -10152
  141. package/chunks/{chunk-XP4L6KS3.js → chunk-URN76TKR.js} +2 -2
  142. package/chunks/{chunk-XUGZYLDH.js → chunk-UWSXFI6E.js} +1 -1
  143. package/chunks/{chunk-AOHY3QJ3.js → chunk-VA5NLVPT.js} +3 -3
  144. package/chunks/{chunk-PZEXDV3H.js → chunk-VUNRNRN6.js} +71 -43
  145. package/chunks/{chunk-FANRZEAJ.js → chunk-VWOVHOTT.js} +1 -1
  146. package/chunks/{chunk-QTHQ6Z5X.js → chunk-WK4TJUEA.js} +1 -1
  147. package/chunks/{chunk-ZPZ7ZJEE.js → chunk-WUC6ZFXO.js} +1 -1
  148. package/chunks/{chunk-7KAXXBER.js → chunk-WY2ENRDN.js} +3 -3
  149. package/chunks/{chunk-TIRRPCFS.js → chunk-X6QNZOTC.js} +1 -1
  150. package/chunks/{chunk-KWHKHSIS.js → chunk-X6WUYMOV.js} +8 -8
  151. package/chunks/{chunk-IIUGIWWY.js → chunk-XC2VAFVZ.js} +1 -1
  152. package/chunks/{chunk-D4HTUMGX.js → chunk-XC656O42.js} +3 -3
  153. package/chunks/{chunk-RG64CDT2.js → chunk-XMJO6C44.js} +131 -48
  154. package/chunks/{chunk-ZMOJ7ISP.js → chunk-XUMAD5IT.js} +1 -1
  155. package/chunks/{chunk-THVU3RNH.js → chunk-YAVY33G4.js} +1 -1
  156. package/chunks/{chunk-YANIWTRZ.js → chunk-YPUHMQXV.js} +1 -1
  157. package/chunks/{chunk-QCXGC7QB.js → chunk-YU6TBRTA.js} +3 -3
  158. package/chunks/{chunk-OFZKFPYG.js → chunk-YWMDTMAU.js} +3 -3
  159. package/chunks/{chunk-DSFHVTWD.js → chunk-YXEVDA66.js} +2 -2
  160. package/chunks/{chunk-JE2CEOBO.js → chunk-ZGSUFIL5.js} +4 -4
  161. package/chunks/{chunk-BBIQAX4V.js → chunk-ZJES4C3I.js} +30 -18
  162. package/chunks/{computer-use-5QWCFNKD.js → computer-use-UJMK6JQU.js} +36 -34
  163. package/chunks/{config-utils-WADIDWGG.js → config-utils-7COTJMWK.js} +4 -4
  164. package/chunks/{contextCommand-4Z7T7TUM.js → contextCommand-4YABGF4S.js} +40 -38
  165. package/chunks/{core-runtime-6N4EFC2Q.js → core-runtime-7M4VM3DA.js} +36 -34
  166. package/chunks/{create-sub-session-AEREHZBQ.js → create-sub-session-HOFDW4N7.js} +39 -37
  167. package/chunks/{create-sub-session-62YZWVAY.js → create-sub-session-J32WC64U.js} +2 -2
  168. package/chunks/{cron-create-6E7GIQTG.js → cron-create-HMFSHIAR.js} +4 -4
  169. package/chunks/{cron-delete-JD26XY3W.js → cron-delete-ZJFHOX57.js} +4 -4
  170. package/chunks/{cron-list-CUWFB44G.js → cron-list-ZEX2NBMN.js} +4 -4
  171. package/chunks/{daemon-PCNCI5YU.js → daemon-CCIX4BMG.js} +47 -6
  172. package/chunks/{daemon-status-provider-DDF7C5M7.js → daemon-status-provider-W2U5Q3J5.js} +47 -45
  173. package/chunks/{daemon-trust-policy-Q4KSOJTR.js → daemon-trust-policy-IFICWPXP.js} +42 -40
  174. package/chunks/{daemon-trust-policy-monitor-V6FTE3IY.js → daemon-trust-policy-monitor-GX7EO6FW.js} +42 -40
  175. package/chunks/{de-SY6O76BF.js → de-A6TI4LBB.js} +46 -5
  176. package/chunks/{deferred-core-runtime-GHJ5GQHK.js → deferred-core-runtime-U36OOOKE.js} +36 -34
  177. package/chunks/display-image-VS3TXYQH.js +184 -0
  178. package/chunks/{dist-ZHXOBXDN.js → dist-3BMEUGTG.js} +1 -1
  179. package/chunks/{dist-26BIMQT6.js → dist-4KAX7CCL.js} +289 -27
  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-2PERFI23.js → dist-DPPHJAVL.js} +3 -3
  183. package/chunks/{dist-PVEAFLHY.js → dist-HVBMEYWK.js} +1 -1
  184. package/chunks/{dist-ULIG4M5H.js → dist-NEBRI7WO.js} +67 -15
  185. package/chunks/{dist-WGMNT3JQ.js → dist-SFQ34F4M.js} +24 -6
  186. package/chunks/{earlyInputCapture-TQXLLISD.js → earlyInputCapture-5ZWDH3SB.js} +37 -35
  187. package/chunks/{edit-FJEUV6KZ.js → edit-J7SW6UP6.js} +36 -34
  188. package/chunks/{en-NBK3JKCE.js → en-L4UQDLWW.js} +57 -6
  189. package/chunks/{enter-worktree-7GE3TZ4P.js → enter-worktree-NRLOHRB6.js} +36 -34
  190. package/chunks/{enterPlanMode-KR5TMPCJ.js → enterPlanMode-GDSTEFSM.js} +36 -34
  191. package/chunks/{environment-SWL3CMB3.js → environment-KHYEKG5W.js} +39 -37
  192. package/chunks/{errors-XQE7BGZV.js → errors-VNLAJV3O.js} +39 -37
  193. package/chunks/{exit-worktree-CHKTYNCV.js → exit-worktree-ARVID7DF.js} +36 -34
  194. package/chunks/{exitPlanMode-QYAG6LWX.js → exitPlanMode-4ZFY7KUH.js} +36 -34
  195. package/chunks/{fast-path-Z2K7W6DC.js → fast-path-KA65VREJ.js} +9 -5
  196. package/chunks/{fr-4KG5V7UT.js → fr-QF7RI5ZE.js} +46 -5
  197. package/chunks/{gemini-YU4XKEDG.js → gemini-5PMCNPF7.js} +149 -90
  198. package/chunks/{geminiContentGenerator-ZZX6NBO4.js → geminiContentGenerator-NFSYJ4HA.js} +6 -6
  199. package/chunks/{glob-VYF5CXSX.js → glob-F3EAUDAX.js} +36 -34
  200. package/chunks/{goal-tools-HGO6VXPB.js → goal-tools-SPQ5M6D3.js} +3 -3
  201. package/chunks/{grep-5DP5ZUTW.js → grep-UJMPVZER.js} +36 -34
  202. package/chunks/{handleAutoUpdate-UVBJ56DL.js → handleAutoUpdate-MG4FRZPN.js} +42 -40
  203. package/chunks/{i18n-UQNYHEUD.js → i18n-EVHV4ZF3.js} +38 -36
  204. package/chunks/{image-gen-WHPIZNWF.js → image-gen-UC7XVHI7.js} +9 -9
  205. package/chunks/{initializer-GMIICF4W.js → initializer-O5B6HUBI.js} +43 -41
  206. package/chunks/{installationInfo-4MGG4WVI.js → installationInfo-2LIKCNVX.js} +37 -35
  207. package/chunks/{ja-F3GSQXMF.js → ja-URQESVGW.js} +46 -5
  208. package/chunks/{keychain-token-storage-IKO4G53C.js → keychain-token-storage-7BT4TQ2A.js} +2 -2
  209. package/chunks/{kittyProtocolDetector-MBRTDRBK.js → kittyProtocolDetector-BFLAKYXH.js} +1 -1
  210. package/chunks/{list-CPN2W334.js → list-BPKIE3Z4.js} +45 -43
  211. package/chunks/{list-agents-PXJ7ZUFB.js → list-agents-TWEGRJWO.js} +2 -2
  212. package/chunks/{loadedSettingsAdapter-ZQAV5NDO.js → loadedSettingsAdapter-NGLFF4V4.js} +42 -40
  213. package/chunks/{loggingContentGenerator-5E7W4IEP.js → loggingContentGenerator-7TFESRG5.js} +52 -37
  214. package/chunks/{loop-wakeup-Y26NQZ5I.js → loop-wakeup-6LLEOQYV.js} +5 -5
  215. package/chunks/{ls-ONQTTMQR.js → ls-H5WX22VK.js} +4 -4
  216. package/chunks/{lsp-YGHHRGMD.js → lsp-G6FXYEIS.js} +2 -2
  217. package/chunks/{managed-npm-update-MKKAXYXA.js → managed-npm-update-CLZGGV7F.js} +39 -37
  218. package/chunks/{mcp-V5NTJF6X.js → mcp-X5OZOOXX.js} +42 -40
  219. package/chunks/{monitor-CO3ASY6E.js → monitor-TGSVSAZZ.js} +36 -34
  220. package/chunks/nonInteractiveCli-GUMJ5JLG.js +150 -0
  221. package/chunks/{notebook-edit-Z7AEE6FM.js → notebook-edit-EZISE7IC.js} +36 -34
  222. package/chunks/{openaiContentGenerator-CA3MQOP3.js → openaiContentGenerator-ZAKS5A6P.js} +18 -18
  223. package/chunks/{pidfile-NL7MKDRU.js → pidfile-PCMBX4LR.js} +37 -35
  224. package/chunks/{processUtils-PB5K2DYH.js → processUtils-2CSVE5BW.js} +2 -2
  225. package/chunks/{pt-EQ33KWEN.js → pt-EEEQXRUI.js} +46 -5
  226. package/chunks/{qwenContentGenerator-JYFNDCOS.js → qwenContentGenerator-S3H6PIC4.js} +42 -40
  227. package/chunks/{qwenOAuth2-W2ALKQDD.js → qwenOAuth2-MNU425VE.js} +8 -8
  228. package/chunks/{read-file-IEOR5H5W.js → read-file-HXJXHBI6.js} +10 -10
  229. package/chunks/{read-mcp-resource-U2IJN5HM.js → read-mcp-resource-DRZSI3HE.js} +2 -2
  230. package/chunks/{record-artifact-MGPJ7EG4.js → record-artifact-IPIRWMFY.js} +3 -3
  231. package/chunks/{resumeHistoryUtils-BNBTP5AS.js → resumeHistoryUtils-4QAMC2S6.js} +44 -42
  232. package/chunks/{ripGrep-UMQODKEB.js → ripGrep-MCETPF2E.js} +36 -34
  233. package/chunks/{ru-7OZAUKGG.js → ru-WGZDYQAB.js} +46 -5
  234. package/chunks/{run-qwen-serve-RN2R6QQW.js → run-qwen-serve-3NMODTXV.js} +219 -55
  235. package/chunks/{runtime-QFJ2MJF5.js → runtime-AQOV7DVP.js} +49 -45
  236. package/chunks/{scheduler-AMYUFOZI.js → scheduler-DN7SZ6ZE.js} +36 -34
  237. package/chunks/{sdk-exporters-http-4BQANSJ6.js → sdk-exporters-http-IKNWQJNV.js} +2 -2
  238. package/chunks/{sdk-impl-Z4VXWVFX.js → sdk-impl-7CUUMQDB.js} +2 -2
  239. package/chunks/{send-message-PMP4ATVM.js → send-message-HGCVVDTZ.js} +5 -4
  240. package/chunks/{serve-EIIYJVX3.js → serve-WZB45HVT.js} +42 -40
  241. package/chunks/{server-EP2LLAPD.js → server-GOTZFEEZ.js} +616 -387
  242. package/chunks/{session-GMPZBLOW.js → session-23LOFLWN.js} +149 -87
  243. package/chunks/{settings-LN7RNKBS.js → settings-LI2ORVXC.js} +41 -39
  244. package/chunks/{shell-EM2OWU5X.js → shell-GLC6OP3C.js} +36 -34
  245. package/chunks/{skill-T5VPSK73.js → skill-C7W6M4GO.js} +27 -14
  246. package/chunks/{skill-settings-GMR3GMNY.js → skill-settings-W25NCK5I.js} +41 -39
  247. package/chunks/{spawnChannel-YPCU62DI.js → spawnChannel-OHJLEBLD.js} +38 -36
  248. package/chunks/{standalone-update-JAKIM2NF.js → standalone-update-E4V5V7WT.js} +39 -37
  249. package/chunks/{startInteractiveUI-YETQWGYF.js → startInteractiveUI-FKILLW7Q.js} +1815 -1034
  250. package/chunks/{syntheticOutput-D7E6ZFKR.js → syntheticOutput-EYL7DWO7.js} +3 -3
  251. package/chunks/{task-create-NFCYD43L.js → task-create-CSCEG4SM.js} +10 -9
  252. package/chunks/{task-list-TAVMGEVD.js → task-list-6CVQPORX.js} +6 -6
  253. package/chunks/{task-stop-ZDF2UJRM.js → task-stop-Y5ZTFVRX.js} +2 -2
  254. package/chunks/{task-update-6L7LHGEX.js → task-update-C52LNFU5.js} +10 -9
  255. package/chunks/{team-create-LFJ6HGNY.js → team-create-HBIJ7NHT.js} +36 -34
  256. package/chunks/{team-delete-DPGGRQBU.js → team-delete-CE7DC53R.js} +6 -6
  257. package/chunks/{team-plan-approval-C2KLSDGO.js → team-plan-approval-IBJOKS4J.js} +36 -34
  258. package/chunks/terminal-image-renderer-BOQJPVLB.js +89 -0
  259. package/chunks/{theme-manager-JQ3ZGBP5.js → theme-manager-NSS7VLUD.js} +37 -35
  260. package/chunks/{todoWrite-2UO5G6G6.js → todoWrite-YKAA57W2.js} +107 -36
  261. package/chunks/{tool-search-FAZBFRJZ.js → tool-search-DEAS54VG.js} +13 -12
  262. package/chunks/{total-session-admission-5CALIVYO.js → total-session-admission-4LWTX3WD.js} +43 -41
  263. package/chunks/{trustedFolders-KOPSP44S.js → trustedFolders-NF3J2TA7.js} +38 -36
  264. package/chunks/{update-relaunch-6QL2TICS.js → update-relaunch-WUHRH5V3.js} +5 -5
  265. package/chunks/{updateCheck-4Q6RIKFW.js → updateCheck-7EG4BLBH.js} +41 -39
  266. package/chunks/{useAutoAcceptIndicator-Q5BMKZV3.js → useAutoAcceptIndicator-ZRV56GVP.js} +46 -44
  267. package/chunks/{validateNonInterActiveAuth-GKOC5F6Z.js → validateNonInterActiveAuth-WC2FPE3I.js} +86 -84
  268. package/chunks/{version-VSATY2LD.js → version-6SS7KCUP.js} +1 -1
  269. package/chunks/{web-fetch-JCLKL6NL.js → web-fetch-Y5QQMPKA.js} +13 -13
  270. package/chunks/{web-search-DSQTFUBX.js → web-search-QKKEU723.js} +8 -8
  271. package/chunks/{workflow-M6QAVKVJ.js → workflow-PWIU6Q2M.js} +418 -304
  272. package/chunks/{workspace-providers-status-YKLTLMJA.js → workspace-providers-status-B2DM6FNK.js} +45 -43
  273. package/chunks/{workspace-registration-store-5DMGKU64.js → workspace-registration-store-7Y33TTHJ.js} +2 -2
  274. package/chunks/{workspace-registry-PTYUSYXX.js → workspace-registry-TSNJKLPC.js} +43 -41
  275. package/chunks/{workspace-service-25ML3T47.js → workspace-service-4I2QHDX4.js} +50 -48
  276. package/chunks/{workspace-skills-status-YKZWOYRX.js → workspace-skills-status-HVXNWVGR.js} +44 -42
  277. package/chunks/{workspace-trust-reconciler-5FI2S3OS.js → workspace-trust-reconciler-RDBBGMWP.js} +49 -47
  278. package/chunks/{write-file-AY7VLP5X.js → write-file-RQ4DG5RY.js} +36 -34
  279. package/chunks/{zh-H3YDK5QW.js → zh-72XPUG5P.js} +54 -6
  280. package/chunks/{zh-TW-JYCP7XUA.js → zh-TW-LTB4SRH3.js} +54 -6
  281. package/chunks/{zoom-image-S4LJZMD5.js → zoom-image-O5YCB7WN.js} +10 -10
  282. package/cli.js +32 -48
  283. package/locales/ca.js +60 -4
  284. package/locales/de.js +62 -4
  285. package/locales/en.js +76 -6
  286. package/locales/fr.js +64 -4
  287. package/locales/ja.js +61 -4
  288. package/locales/pt.js +60 -4
  289. package/locales/ru.js +63 -4
  290. package/locales/zh-TW.js +67 -6
  291. package/locales/zh.js +67 -6
  292. package/package.json +3 -3
  293. package/web-shell/assets/{arc-xjArKHU2.js → arc-Bd7d781i.js} +1 -1
  294. package/web-shell/assets/{architectureDiagram-3BPJPVTR-BgrQDNYG.js → architectureDiagram-3BPJPVTR-CpnOJqNE.js} +1 -1
  295. package/web-shell/assets/{blockDiagram-GPEHLZMM-CXxWC-1_.js → blockDiagram-GPEHLZMM-NxVTiWnk.js} +1 -1
  296. package/web-shell/assets/{c4Diagram-AAUBKEIU-Dx1tLm3v.js → c4Diagram-AAUBKEIU-BWT75l82.js} +1 -1
  297. package/web-shell/assets/channel-A434sWK5.js +1 -0
  298. package/web-shell/assets/{chunk-2J33WTMH-CBxjogVR.js → chunk-2J33WTMH-Dzz03hk6.js} +1 -1
  299. package/web-shell/assets/{chunk-4BX2VUAB-izb-rY5W.js → chunk-4BX2VUAB-DRF-egfm.js} +1 -1
  300. package/web-shell/assets/{chunk-55IACEB6-NzLyvSb8.js → chunk-55IACEB6-Co15vq5x.js} +1 -1
  301. package/web-shell/assets/{chunk-727SXJPM-DVyKb0dl.js → chunk-727SXJPM-DHSUk1J7.js} +1 -1
  302. package/web-shell/assets/{chunk-AQP2D5EJ-BtqL7NzB.js → chunk-AQP2D5EJ-Br8u_E2R.js} +1 -1
  303. package/web-shell/assets/{chunk-FMBD7UC4-iNpdKIO0.js → chunk-FMBD7UC4-DXbPTnqF.js} +1 -1
  304. package/web-shell/assets/{chunk-ND2GUHAM-DI7cbFmX.js → chunk-ND2GUHAM-BleQdi4d.js} +1 -1
  305. package/web-shell/assets/{chunk-QZHKN3VN-3Y_-xFYs.js → chunk-QZHKN3VN-CqgBf-95.js} +1 -1
  306. package/web-shell/assets/classDiagram-4FO5ZUOK-CwPuhldB.js +1 -0
  307. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-CwPuhldB.js +1 -0
  308. package/web-shell/assets/{cose-bilkent-S5V4N54A--raRatZn.js → cose-bilkent-S5V4N54A-WS7b13Yg.js} +1 -1
  309. package/web-shell/assets/{dagre-BM42HDAG-B8SU70mO.js → dagre-BM42HDAG-v_55ki8o.js} +1 -1
  310. package/web-shell/assets/{diagram-2AECGRRQ-ewgoakXo.js → diagram-2AECGRRQ-DaYAjbdK.js} +1 -1
  311. package/web-shell/assets/{diagram-5GNKFQAL-Bm_JLTnS.js → diagram-5GNKFQAL-D_Hy-L64.js} +1 -1
  312. package/web-shell/assets/{diagram-KO2AKTUF-DEIUjUy9.js → diagram-KO2AKTUF-dB06cZyD.js} +1 -1
  313. package/web-shell/assets/{diagram-LMA3HP47-C2Wmrpj-.js → diagram-LMA3HP47-DzSluD4F.js} +1 -1
  314. package/web-shell/assets/{diagram-OG6HWLK6-CtYe6bFx.js → diagram-OG6HWLK6-Cvb6CeXQ.js} +1 -1
  315. package/web-shell/assets/{erDiagram-TEJ5UH35-DfpHcWLV.js → erDiagram-TEJ5UH35-7eB2Hmov.js} +1 -1
  316. package/web-shell/assets/{flowDiagram-I6XJVG4X-CAiUhio5.js → flowDiagram-I6XJVG4X-B08iGCw_.js} +1 -1
  317. package/web-shell/assets/{ganttDiagram-6RSMTGT7-CYc7ezr4.js → ganttDiagram-6RSMTGT7-BgsrCHq-.js} +1 -1
  318. package/web-shell/assets/{gitGraphDiagram-PVQCEYII-70lbkcRS.js → gitGraphDiagram-PVQCEYII-DQLurQ2i.js} +1 -1
  319. package/web-shell/assets/{index-Ww86nT9f.js → index-B_1Z0Mgr.js} +1 -1
  320. package/web-shell/assets/index-Bi1dP2mU.css +5 -0
  321. package/web-shell/assets/index-DJ-z1Oba.js +1756 -0
  322. package/web-shell/assets/{infoDiagram-5YYISTIA-C7e8DWPa.js → infoDiagram-5YYISTIA-DXZGO8qB.js} +1 -1
  323. package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-BYLr2op-.js → ishikawaDiagram-YF4QCWOH-g7gbuH2w.js} +1 -1
  324. package/web-shell/assets/{journeyDiagram-JHISSGLW-hEibAHKX.js → journeyDiagram-JHISSGLW-euefICGn.js} +1 -1
  325. package/web-shell/assets/{kanban-definition-UN3LZRKU-F2rt8Uhp.js → kanban-definition-UN3LZRKU-Dws8-mjG.js} +1 -1
  326. package/web-shell/assets/{linear-DPhyNezd.js → linear-C63F0tyh.js} +1 -1
  327. package/web-shell/assets/{mermaid.core-ZUtnug0n.js → mermaid.core-fLrhp_4-.js} +5 -5
  328. package/web-shell/assets/{mindmap-definition-RKZ34NQL-DDWcMoi8.js → mindmap-definition-RKZ34NQL-qRkydfT-.js} +1 -1
  329. package/web-shell/assets/{pieDiagram-4H26LBE5-CTRKzw1_.js → pieDiagram-4H26LBE5-BZ0wQaKN.js} +1 -1
  330. package/web-shell/assets/{quadrantDiagram-W4KKPZXB-CAEwYG_z.js → quadrantDiagram-W4KKPZXB-Fjq6GbSZ.js} +1 -1
  331. package/web-shell/assets/{requirementDiagram-4Y6WPE33-CRjnH9D9.js → requirementDiagram-4Y6WPE33-CqWvjLHU.js} +1 -1
  332. package/web-shell/assets/{sankeyDiagram-5OEKKPKP-LPQT_sOd.js → sankeyDiagram-5OEKKPKP-VcXX6PVZ.js} +1 -1
  333. package/web-shell/assets/{sequenceDiagram-3UESZ5HK-Ht2Iqvb0.js → sequenceDiagram-3UESZ5HK-BJSRtxFr.js} +1 -1
  334. package/web-shell/assets/{stateDiagram-AJRCARHV-CIUdqOXu.js → stateDiagram-AJRCARHV-Dt9zUwmZ.js} +1 -1
  335. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-CCxQt56w.js +1 -0
  336. package/web-shell/assets/{timeline-definition-PNZ67QCA-BcilneZF.js → timeline-definition-PNZ67QCA-DQwlNRws.js} +1 -1
  337. package/web-shell/assets/{vennDiagram-CIIHVFJN-BljwiiH1.js → vennDiagram-CIIHVFJN-DwxjUEtQ.js} +1 -1
  338. package/web-shell/assets/{wardley-L42UT6IY-DeKjkYjq.js → wardley-L42UT6IY-D3QdMSpJ.js} +1 -1
  339. package/web-shell/assets/{wardleyDiagram-YWT4CUSO-L3U1H7KG.js → wardleyDiagram-YWT4CUSO-BddN8oK8.js} +1 -1
  340. package/web-shell/assets/{xychartDiagram-2RQKCTM6-IJnWsgMT.js → xychartDiagram-2RQKCTM6-BUNuBrRJ.js} +1 -1
  341. package/web-shell/index.html +2 -2
  342. package/chunks/chunk-4KP2F2TE.js +0 -82
  343. package/chunks/chunk-HGT6JR3U.js +0 -177
  344. package/chunks/nonInteractiveCli-ZJYEOO7U.js +0 -148
  345. package/web-shell/assets/channel-B1cyk94G.js +0 -1
  346. package/web-shell/assets/classDiagram-4FO5ZUOK-BpBYZoRE.js +0 -1
  347. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-BpBYZoRE.js +0 -1
  348. package/web-shell/assets/index-C1k3PDuU.css +0 -5
  349. package/web-shell/assets/index-DZLIXILO.js +0 -1750
  350. package/web-shell/assets/insert-DmRbh9Rv.svg +0 -1
  351. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-BmqqQZ6w.js +0 -1
@@ -1,17 +1,15 @@
1
1
  // Force strict mode and setup for ESM
2
2
  "use strict";
3
- import {
4
- formatMemoryUsage
5
- } from "./chunk-E5Z2AVNV.js";
6
3
  import {
7
4
  getCliVersion
8
- } from "./chunk-2KKCCLPT.js";
5
+ } from "./chunk-BKXTHMOZ.js";
9
6
  import {
10
- IdeClient
11
- } from "./chunk-54YCNSK5.js";
7
+ IdeClient,
8
+ formatMemoryUsage
9
+ } from "./chunk-UQDFEU47.js";
12
10
  import {
13
11
  createDebugLogger
14
- } from "./chunk-E2BHWIDT.js";
12
+ } from "./chunk-3RXUYQJI.js";
15
13
  import {
16
14
  init_esbuild_shims
17
15
  } from "./chunk-5O2XNYP6.js";
@@ -27,7 +25,7 @@ import { execFile } from "node:child_process";
27
25
 
28
26
  // packages/cli/src/generated/git-commit.ts
29
27
  init_esbuild_shims();
30
- var GIT_COMMIT_INFO = "456fc9b02";
28
+ var GIT_COMMIT_INFO = "239de83f6";
31
29
 
32
30
  // packages/cli/src/utils/systemInfo.ts
33
31
  var debugLogger = createDebugLogger("STATUS");
@@ -3,16 +3,16 @@
3
3
  import {
4
4
  settleChatRecording,
5
5
  subscribeToHeadlessChatRecordingFailures
6
- } from "./chunk-JE2CEOBO.js";
6
+ } from "./chunk-ZGSUFIL5.js";
7
7
  import {
8
8
  handleAtCommand
9
- } from "./chunk-RG64CDT2.js";
9
+ } from "./chunk-XMJO6C44.js";
10
10
  import {
11
11
  JsonOutputAdapter
12
- } from "./chunk-V25K5ID7.js";
12
+ } from "./chunk-K2J5JZ6B.js";
13
13
  import {
14
14
  StreamJsonOutputAdapter
15
- } from "./chunk-JJPKFJBT.js";
15
+ } from "./chunk-L7FTDKCD.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-4AGGSHCH.js";
28
28
  import {
29
29
  RunBudgetEnforcer,
30
30
  cleanupReviewWorktreeLeases
31
- } from "./chunk-DEEABGH2.js";
31
+ } from "./chunk-QPSYIV2O.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-EGYJRIDF.js";
40
40
  import {
41
41
  isInlineModelOverrideAllowed
42
- } from "./chunk-6TAASXWL.js";
42
+ } from "./chunk-5VYFXHY2.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-UQDFEU47.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-SRY26X4H.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-4K3RV3OA.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-QDWLUXKP.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,13 +2,13 @@
2
2
  "use strict";
3
3
  import {
4
4
  delay
5
- } from "./chunk-E6CJ2SMM.js";
5
+ } from "./chunk-QMBEW7EW.js";
6
6
  import {
7
7
  isTlsVerificationDisabled
8
- } from "./chunk-Q3T5KA2V.js";
8
+ } from "./chunk-BFHXDAR7.js";
9
9
  import {
10
10
  getErrorMessage
11
- } from "./chunk-E2BHWIDT.js";
11
+ } from "./chunk-3RXUYQJI.js";
12
12
  import {
13
13
  init_esbuild_shims
14
14
  } from "./chunk-5O2XNYP6.js";
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  registerCleanup
5
- } from "./chunk-DQ2O5QOJ.js";
5
+ } from "./chunk-QDWLUXKP.js";
6
6
  import {
7
7
  init_esbuild_shims
8
8
  } from "./chunk-5O2XNYP6.js";
@@ -2,21 +2,21 @@
2
2
  "use strict";
3
3
  import {
4
4
  appEvents
5
- } from "./chunk-DEEABGH2.js";
5
+ } from "./chunk-QPSYIV2O.js";
6
6
  import {
7
7
  assembleMcpServers,
8
8
  getPendingGatedMcpServers,
9
9
  getPromptableMcpServers
10
- } from "./chunk-KR32NIAN.js";
10
+ } from "./chunk-2MI7ZTRT.js";
11
11
  import {
12
12
  getMCPServerStatus
13
- } from "./chunk-DUNI4EBW.js";
13
+ } from "./chunk-4K3RV3OA.js";
14
14
  import {
15
15
  require_fast_deep_equal
16
- } from "./chunk-MM7TH7ZM.js";
16
+ } from "./chunk-CFDR3GNL.js";
17
17
  import {
18
18
  createDebugLogger
19
- } from "./chunk-E2BHWIDT.js";
19
+ } from "./chunk-3RXUYQJI.js";
20
20
  import {
21
21
  init_esbuild_shims
22
22
  } from "./chunk-5O2XNYP6.js";
@@ -2,16 +2,16 @@
2
2
  "use strict";
3
3
  import {
4
4
  useKeypress
5
- } from "./chunk-VMX5RZQH.js";
5
+ } from "./chunk-Q3G5L5KF.js";
6
6
  import {
7
7
  require_react
8
8
  } from "./chunk-5QWWOFGG.js";
9
9
  import {
10
10
  t
11
- } from "./chunk-3F2WDAV6.js";
11
+ } from "./chunk-KXWERR6P.js";
12
12
  import {
13
13
  APPROVAL_MODES
14
- } from "./chunk-CBBP4BMC.js";
14
+ } from "./chunk-TZTBZ25J.js";
15
15
  import {
16
16
  init_esbuild_shims
17
17
  } from "./chunk-5O2XNYP6.js";
@@ -49,7 +49,7 @@ function useAutoAcceptIndicator({
49
49
  }, []);
50
50
  useKeypress(
51
51
  (key) => {
52
- const isShiftTab = key.shift && key.name === "tab";
52
+ const isShiftTab = key.shift && key.name === "tab" && !key.ctrl;
53
53
  const isWindowsTab = process.platform === "win32" && key.name === "tab" && !key.ctrl && !key.meta;
54
54
  if (isShiftTab || isWindowsTab) {
55
55
  if (isWindowsTab && shouldBlockTab?.()) {
@@ -2,12 +2,12 @@
2
2
  "use strict";
3
3
  import {
4
4
  stringifyGenAiJson
5
- } from "./chunk-QDK4F2N5.js";
5
+ } from "./chunk-2DNKEBXY.js";
6
6
  import {
7
7
  getMeter,
8
8
  isTelemetrySdkInitialized,
9
9
  truncateSpanError
10
- } from "./chunk-QARJNL2V.js";
10
+ } from "./chunk-O2ZYHG33.js";
11
11
  import {
12
12
  require_src
13
13
  } from "./chunk-W4RQUHY3.js";
@@ -22,7 +22,7 @@ import {
22
22
  createDebugLogger,
23
23
  formatTraceparent,
24
24
  getActiveSpanTraceContext
25
- } from "./chunk-E2BHWIDT.js";
25
+ } from "./chunk-3RXUYQJI.js";
26
26
  import {
27
27
  ROOT_CONTEXT,
28
28
  SpanKind,
@@ -554,6 +554,8 @@ init_esbuild_shims();
554
554
  import { monitorEventLoopDelay } from "node:perf_hooks";
555
555
  var DEFAULT_RESOLUTION_MS = 20;
556
556
  var DEFAULT_STALL_THRESHOLD_MS = 1e3;
557
+ var DEFAULT_EVENT_LOOP_SUSPEND_THRESHOLD_MS = 5 * 60 * 1e3;
558
+ var DEFAULT_SUSPEND_CPU_RATIO = 0.01;
557
559
  var NS_PER_MS = 1e6;
558
560
  function startEventLoopLagMonitor(options = {}) {
559
561
  const resolutionMs = positiveFiniteOrDefault(
@@ -564,24 +566,54 @@ function startEventLoopLagMonitor(options = {}) {
564
566
  options.stallThresholdMs,
565
567
  DEFAULT_STALL_THRESHOLD_MS
566
568
  );
569
+ const suspendThresholdMs = positiveFiniteOrDefault(
570
+ options.suspendThresholdMs,
571
+ DEFAULT_EVENT_LOOP_SUSPEND_THRESHOLD_MS
572
+ );
573
+ const suspendCpuRatio = fractionOrDefault(
574
+ options.suspendCpuRatio,
575
+ DEFAULT_SUSPEND_CPU_RATIO
576
+ );
567
577
  const histogram = monitorEventLoopDelay({ resolution: resolutionMs });
568
578
  histogram.enable();
569
579
  let disposed = false;
570
580
  let lastReportedMaxMs = 0;
581
+ let lastObservedMaxMs = 0;
582
+ let lastCheckTimeMs = Date.now();
583
+ let lastCpuUsage = safeCpuUsage();
584
+ let pendingSuspendGapMs = 0;
571
585
  const readMaxMs = /* @__PURE__ */ __name(() => nsToMs(histogram.max), "readMaxMs");
572
- const checkForNewMaxStall = /* @__PURE__ */ __name(() => {
573
- if (disposed || !options.onNewMaxStall) return;
586
+ const checkHistogram = /* @__PURE__ */ __name(() => {
587
+ if (disposed) return;
588
+ const nowMs = Date.now();
589
+ const cpuUsage = safeCpuUsage();
590
+ const elapsedMs = Math.max(0, nowMs - lastCheckTimeMs);
574
591
  const maxMs = readMaxMs();
575
- if (maxMs >= stallThresholdMs && maxMs > lastReportedMaxMs) {
592
+ const newMaxMs = maxMs > lastObservedMaxMs ? maxMs : 0;
593
+ const cpuRatio = calculateCpuRatio(lastCpuUsage, cpuUsage, elapsedMs);
594
+ lastCheckTimeMs = nowMs;
595
+ if (cpuUsage) lastCpuUsage = cpuUsage;
596
+ lastObservedMaxMs = maxMs;
597
+ const isLowCpuGap = elapsedMs >= suspendThresholdMs && cpuRatio !== void 0 && cpuRatio <= suspendCpuRatio;
598
+ const suspendGapMs = isLowCpuGap ? elapsedMs : pendingSuspendGapMs;
599
+ pendingSuspendGapMs = isLowCpuGap ? elapsedMs : 0;
600
+ if (newMaxMs >= suspendThresholdMs && suspendGapMs >= suspendThresholdMs && newMaxMs <= suspendGapMs * 1.5) {
601
+ histogram.reset();
602
+ lastObservedMaxMs = 0;
603
+ lastReportedMaxMs = 0;
604
+ pendingSuspendGapMs = 0;
605
+ return;
606
+ }
607
+ if (options.onNewMaxStall && maxMs >= stallThresholdMs && maxMs > lastReportedMaxMs) {
576
608
  lastReportedMaxMs = maxMs;
577
609
  try {
578
610
  options.onNewMaxStall(maxMs);
579
611
  } catch {
580
612
  }
581
613
  }
582
- }, "checkForNewMaxStall");
583
- const interval = options.onNewMaxStall !== void 0 ? setInterval(checkForNewMaxStall, resolutionMs) : void 0;
584
- interval?.unref();
614
+ }, "checkHistogram");
615
+ const interval = setInterval(checkHistogram, resolutionMs);
616
+ interval.unref();
585
617
  return {
586
618
  snapshot() {
587
619
  return {
@@ -594,14 +626,26 @@ function startEventLoopLagMonitor(options = {}) {
594
626
  dispose() {
595
627
  if (disposed) return;
596
628
  disposed = true;
597
- if (interval) {
598
- clearInterval(interval);
599
- }
629
+ clearInterval(interval);
600
630
  histogram.disable();
601
631
  }
602
632
  };
603
633
  }
604
634
  __name(startEventLoopLagMonitor, "startEventLoopLagMonitor");
635
+ function safeCpuUsage() {
636
+ try {
637
+ return process.cpuUsage();
638
+ } catch {
639
+ return void 0;
640
+ }
641
+ }
642
+ __name(safeCpuUsage, "safeCpuUsage");
643
+ function calculateCpuRatio(previous, current, elapsedMs) {
644
+ if (!previous || !current || elapsedMs <= 0) return void 0;
645
+ const cpuMicroseconds = current.user - previous.user + (current.system - previous.system);
646
+ return Math.max(0, cpuMicroseconds / (elapsedMs * 1e3));
647
+ }
648
+ __name(calculateCpuRatio, "calculateCpuRatio");
605
649
  function nsToMs(value) {
606
650
  return Number.isFinite(value) ? value / NS_PER_MS : 0;
607
651
  }
@@ -610,6 +654,10 @@ function positiveFiniteOrDefault(value, fallback) {
610
654
  return value !== void 0 && Number.isFinite(value) && value > 0 ? value : fallback;
611
655
  }
612
656
  __name(positiveFiniteOrDefault, "positiveFiniteOrDefault");
657
+ function fractionOrDefault(value, fallback) {
658
+ return value !== void 0 && Number.isFinite(value) && value >= 0 && value <= 1 ? value : fallback;
659
+ }
660
+ __name(fractionOrDefault, "fractionOrDefault");
613
661
 
614
662
  // packages/core/src/telemetry/event-loop-lag-metrics.ts
615
663
  init_esbuild_shims();