@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
@@ -2,70 +2,73 @@
2
2
  "use strict";
3
3
  import {
4
4
  getGitRepoName
5
- } from "./chunk-54YCNSK5.js";
5
+ } from "./chunk-MVMBE5EH.js";
6
+ import "./chunk-GOFAQQZA.js";
6
7
  import "./chunk-5M6IDOMF.js";
7
8
  import "./chunk-TWPJO254.js";
8
9
  import "./chunk-H6XPXXMH.js";
9
- import "./chunk-AOHY3QJ3.js";
10
- import "./chunk-5NNHICSA.js";
11
- import "./chunk-SHN4KHDK.js";
12
- import "./chunk-JXVC2PL3.js";
13
- import "./chunk-KRXPRVGL.js";
10
+ import "./chunk-VA5NLVPT.js";
11
+ import "./chunk-I7JDGNG6.js";
12
+ import "./chunk-A6SX5TAH.js";
13
+ import "./chunk-33FNCQSY.js";
14
14
  import "./chunk-6PVPNMXU.js";
15
- import "./chunk-ZMOJ7ISP.js";
15
+ import "./chunk-XXOVLDZQ.js";
16
16
  import "./chunk-IRH27ZC2.js";
17
17
  import "./chunk-QHWCP53L.js";
18
- import "./chunk-TEGJSJDF.js";
19
- import "./chunk-TIRRPCFS.js";
18
+ import "./chunk-MOHAWIAW.js";
19
+ import "./chunk-X6QNZOTC.js";
20
20
  import "./chunk-O6GEWCJA.js";
21
21
  import "./chunk-T26EAKDL.js";
22
+ import "./chunk-ZPJWUGCS.js";
22
23
  import "./chunk-CPBF7KYF.js";
23
- import "./chunk-4KP2F2TE.js";
24
- import "./chunk-3APUUXRF.js";
25
- import "./chunk-THVU3RNH.js";
26
- import "./chunk-LHKCY7DY.js";
27
- import "./chunk-6FMJLI5M.js";
28
- import "./chunk-CBBP4BMC.js";
24
+ import "./chunk-MISUEWB4.js";
25
+ import "./chunk-KRXPRVGL.js";
26
+ import "./chunk-A5YZ3FA2.js";
27
+ import "./chunk-YAVY33G4.js";
28
+ import "./chunk-2UISUFHQ.js";
29
+ import "./chunk-HFVW54NL.js";
30
+ import "./chunk-LLMGP5IC.js";
29
31
  import "./chunk-S6LOFUVP.js";
32
+ import "./chunk-7UXI6P72.js";
30
33
  import "./chunk-K623ENWT.js";
31
34
  import "./chunk-AQ37AY7B.js";
32
- import "./chunk-N4ACHWNH.js";
33
- import "./chunk-ZPJWUGCS.js";
34
- import "./chunk-D4HTUMGX.js";
35
+ import "./chunk-432XCUHF.js";
36
+ import "./chunk-YXEVDA66.js";
37
+ import "./chunk-XC656O42.js";
35
38
  import "./chunk-NAVJD2PQ.js";
36
- import "./chunk-LOY7RWQG.js";
37
- import "./chunk-E6CJ2SMM.js";
39
+ import "./chunk-QYPT3QUD.js";
40
+ import "./chunk-QMBEW7EW.js";
38
41
  import "./chunk-DGEIYUC3.js";
39
42
  import "./chunk-MPHPFVKK.js";
40
43
  import "./chunk-GLNBDYUX.js";
41
44
  import "./chunk-DJ2GSRLV.js";
42
- import "./chunk-6CQWRWUC.js";
43
- import "./chunk-Z3S5EMOW.js";
45
+ import "./chunk-7XLPYF6B.js";
46
+ import "./chunk-RPYYTL7E.js";
44
47
  import "./chunk-2J3OJGTL.js";
45
48
  import "./chunk-P3QQPMQA.js";
46
- import "./chunk-XQK4XXTN.js";
49
+ import "./chunk-6O5DVH27.js";
47
50
  import "./chunk-GLCZKT5V.js";
48
- import "./chunk-QDK4F2N5.js";
49
- import "./chunk-DUNI4EBW.js";
51
+ import "./chunk-2DNKEBXY.js";
52
+ import "./chunk-KZXSAQYV.js";
50
53
  import "./chunk-VGC4I5JJ.js";
51
- import "./chunk-3I6DUGQD.js";
52
- import "./chunk-7ULQIS27.js";
53
- import "./chunk-MM7TH7ZM.js";
54
- import "./chunk-HIVKI6O6.js";
54
+ import "./chunk-E4WHKETF.js";
55
+ import "./chunk-UEJESCS7.js";
56
+ import "./chunk-CFDR3GNL.js";
57
+ import "./chunk-UO7AWUZJ.js";
55
58
  import "./chunk-46UV252V.js";
56
59
  import "./chunk-ZBVS26BY.js";
57
- import "./chunk-Q3T5KA2V.js";
58
- import "./chunk-R2XWGR75.js";
60
+ import "./chunk-BFHXDAR7.js";
61
+ import "./chunk-TYERNYH4.js";
59
62
  import {
60
63
  atomicWriteFile
61
- } from "./chunk-HC45LTEN.js";
62
- import "./chunk-QARJNL2V.js";
64
+ } from "./chunk-UH7Z7Y45.js";
65
+ import "./chunk-O2ZYHG33.js";
63
66
  import "./chunk-W4RQUHY3.js";
64
67
  import "./chunk-G7XXKQYS.js";
65
68
  import {
66
69
  FatalError,
67
70
  Storage
68
- } from "./chunk-E2BHWIDT.js";
71
+ } from "./chunk-3RXUYQJI.js";
69
72
  import "./chunk-VOQXFAY5.js";
70
73
  import "./chunk-75DOP5OR.js";
71
74
  import "./chunk-DMTGGOSA.js";
@@ -0,0 +1,184 @@
1
+ // Force strict mode and setup for ESM
2
+ "use strict";
3
+ import {
4
+ isInForkExecution
5
+ } from "./chunk-7UXI6P72.js";
6
+ import "./chunk-K623ENWT.js";
7
+ import "./chunk-AQ37AY7B.js";
8
+ import "./chunk-432XCUHF.js";
9
+ import {
10
+ BaseDeclarativeTool,
11
+ BaseToolInvocation,
12
+ MAX_TERMINAL_IMAGE_BYTES,
13
+ ToolDisplayNames,
14
+ ToolNames
15
+ } from "./chunk-CFDR3GNL.js";
16
+ import {
17
+ makeRelative,
18
+ shortenPath,
19
+ unescapePath
20
+ } from "./chunk-3RXUYQJI.js";
21
+ import "./chunk-QUGAUQGJ.js";
22
+ import {
23
+ init_esbuild_shims
24
+ } from "./chunk-5O2XNYP6.js";
25
+ import {
26
+ __name
27
+ } from "./chunk-J2S4EL5Y.js";
28
+
29
+ // packages/core/src/tools/display-image.ts
30
+ init_esbuild_shims();
31
+ import fs from "node:fs/promises";
32
+ import path from "node:path";
33
+ var PNG_SIGNATURE = "89504e470d0a1a0a";
34
+ function errorResult(message, type) {
35
+ return {
36
+ llmContent: message,
37
+ returnDisplay: `Error: ${message}`,
38
+ error: { message, type }
39
+ };
40
+ }
41
+ __name(errorResult, "errorResult");
42
+ var DisplayImageInvocation = class extends BaseToolInvocation {
43
+ constructor(config, params) {
44
+ super(params);
45
+ this.config = config;
46
+ }
47
+ static {
48
+ __name(this, "DisplayImageInvocation");
49
+ }
50
+ getDescription() {
51
+ return shortenPath(
52
+ makeRelative(this.params.file_path, this.config.getTargetDir())
53
+ );
54
+ }
55
+ toolLocations() {
56
+ return [{ path: this.params.file_path }];
57
+ }
58
+ async execute(signal) {
59
+ signal.throwIfAborted();
60
+ if (isInForkExecution()) {
61
+ return errorResult(
62
+ "display_image can only be executed by the main agent.",
63
+ "execution_denied" /* EXECUTION_DENIED */
64
+ );
65
+ }
66
+ const filePath = path.resolve(this.params.file_path);
67
+ let stat;
68
+ try {
69
+ stat = await fs.stat(filePath);
70
+ } catch (error) {
71
+ const message = error.code === "ENOENT" ? `Image file not found: ${filePath}` : `Unable to access image file "${filePath}": ${error instanceof Error ? error.message : String(error)}`;
72
+ return errorResult(
73
+ message,
74
+ error.code === "ENOENT" ? "file_not_found" /* FILE_NOT_FOUND */ : "read_content_failure" /* READ_CONTENT_FAILURE */
75
+ );
76
+ }
77
+ if (stat.isDirectory()) {
78
+ return errorResult(
79
+ `Image path is a directory: ${filePath}`,
80
+ "target_is_directory" /* TARGET_IS_DIRECTORY */
81
+ );
82
+ }
83
+ if (!stat.isFile()) {
84
+ return errorResult(
85
+ `Image path is not a regular file: ${filePath}`,
86
+ "target_not_regular_file" /* TARGET_NOT_REGULAR_FILE */
87
+ );
88
+ }
89
+ if (stat.size > MAX_TERMINAL_IMAGE_BYTES) {
90
+ return errorResult(
91
+ `Image exceeds the ${MAX_TERMINAL_IMAGE_BYTES} byte display limit: ${filePath}`,
92
+ "file_too_large" /* FILE_TOO_LARGE */
93
+ );
94
+ }
95
+ signal.throwIfAborted();
96
+ let fileHandle;
97
+ try {
98
+ fileHandle = await fs.open(filePath, "r");
99
+ const header = Buffer.alloc(24);
100
+ const { bytesRead } = await fileHandle.read(header, 0, header.length, 0);
101
+ if (bytesRead !== header.length || header.subarray(0, 8).toString("hex") !== PNG_SIGNATURE) {
102
+ return errorResult(
103
+ `Only PNG images are supported by display_image: ${filePath}`,
104
+ "invalid_tool_params" /* INVALID_TOOL_PARAMS */
105
+ );
106
+ }
107
+ } catch (error) {
108
+ return errorResult(
109
+ `Unable to read image file "${filePath}": ${error instanceof Error ? error.message : String(error)}`,
110
+ "read_content_failure" /* READ_CONTENT_FAILURE */
111
+ );
112
+ } finally {
113
+ await fileHandle?.close();
114
+ }
115
+ const renderSupport = await this.config.getTerminalImageRenderSupport();
116
+ if (!renderSupport.available) {
117
+ return errorResult(
118
+ `The image was not displayed: ${renderSupport.reason}`,
119
+ "execution_failed" /* EXECUTION_FAILED */
120
+ );
121
+ }
122
+ const display = {
123
+ type: "terminal_image",
124
+ filePath,
125
+ mimeType: "image/png"
126
+ };
127
+ return {
128
+ llmContent: `The terminal renderer accepted "${path.basename(filePath)}" for display. This display-only tool does not provide the image contents to you; use read_file if you need to inspect the image.`,
129
+ returnDisplay: display,
130
+ resultFilePaths: [filePath]
131
+ };
132
+ }
133
+ };
134
+ var DisplayImageTool = class _DisplayImageTool extends BaseDeclarativeTool {
135
+ constructor(config) {
136
+ super(
137
+ _DisplayImageTool.Name,
138
+ ToolDisplayNames.DISPLAY_IMAGE,
139
+ "Displays an existing workspace PNG in the user\u2019s interactive terminal. Only the main agent can execute this tool. This is only a user-visible preview: it does not return image contents to you. Use read_file when you need to inspect or understand the image. The file_path must be absolute.",
140
+ "read" /* Read */,
141
+ {
142
+ type: "object",
143
+ properties: {
144
+ file_path: {
145
+ type: "string",
146
+ description: "Absolute path to a PNG inside the current workspace."
147
+ }
148
+ },
149
+ required: ["file_path"],
150
+ additionalProperties: false
151
+ },
152
+ false
153
+ );
154
+ this.config = config;
155
+ }
156
+ static {
157
+ __name(this, "DisplayImageTool");
158
+ }
159
+ static Name = ToolNames.DISPLAY_IMAGE;
160
+ validateToolParamValues(params) {
161
+ params.file_path = unescapePath(params.file_path.trim());
162
+ if (!params.file_path) {
163
+ return 'Missing or empty "file_path".';
164
+ }
165
+ if (!path.isAbsolute(params.file_path)) {
166
+ return `File path must be absolute: ${params.file_path}`;
167
+ }
168
+ if (!this.config.getWorkspaceContext().isPathWithinWorkspace(params.file_path)) {
169
+ return `Image path is outside the current workspace: ${params.file_path}`;
170
+ }
171
+ return null;
172
+ }
173
+ createInvocation(params) {
174
+ return new DisplayImageInvocation(this.config, params);
175
+ }
176
+ };
177
+ export {
178
+ DisplayImageTool
179
+ };
180
+ /**
181
+ * @license
182
+ * Copyright 2026 Qwen Team
183
+ * SPDX-License-Identifier: Apache-2.0
184
+ */
@@ -3,7 +3,7 @@
3
3
  import {
4
4
  ChannelBase,
5
5
  isTerminalTaskLifecycleType
6
- } from "./chunk-JCJ7LKNA.js";
6
+ } from "./chunk-DIEFUBV6.js";
7
7
  import "./chunk-UDXSXLER.js";
8
8
  import "./chunk-H6XPXXMH.js";
9
9
  import {
@@ -11,11 +11,11 @@ import {
11
11
  sendMessage,
12
12
  sendTyping,
13
13
  uploadToCdn
14
- } from "./chunk-ZPZ7ZJEE.js";
14
+ } from "./chunk-WUC6ZFXO.js";
15
15
  import {
16
16
  ChannelBase,
17
17
  isTerminalTaskLifecycleType
18
- } from "./chunk-JCJ7LKNA.js";
18
+ } from "./chunk-DIEFUBV6.js";
19
19
  import "./chunk-UDXSXLER.js";
20
20
  import "./chunk-H6XPXXMH.js";
21
21
  import {
@@ -12,7 +12,7 @@ import {
12
12
  isTerminalTaskLifecycleType,
13
13
  sanitizeLogText,
14
14
  sanitizeSenderName
15
- } from "./chunk-JCJ7LKNA.js";
15
+ } from "./chunk-DIEFUBV6.js";
16
16
  import "./chunk-UDXSXLER.js";
17
17
  import "./chunk-H6XPXXMH.js";
18
18
  import "./chunk-CR3C7WXL.js";
@@ -6,7 +6,7 @@ import {
6
6
  import "./chunk-T3CHYWJZ.js";
7
7
  import {
8
8
  PollingChannelBase
9
- } from "./chunk-JCJ7LKNA.js";
9
+ } from "./chunk-DIEFUBV6.js";
10
10
  import "./chunk-UDXSXLER.js";
11
11
  import {
12
12
  external_exports
@@ -13197,6 +13197,7 @@ var GitlabChannel = class extends PollingChannelBase {
13197
13197
  apiHost = "https://gitlab.com";
13198
13198
  botUsername = "";
13199
13199
  descriptionCache = /* @__PURE__ */ new Map();
13200
+ reactions = /* @__PURE__ */ new Map();
13200
13201
  constructor(name, config, bridge, options) {
13201
13202
  super(name, config, bridge, options);
13202
13203
  }
@@ -13246,6 +13247,35 @@ var GitlabChannel = class extends PollingChannelBase {
13246
13247
  const targetType = threadId.startsWith("mr:") ? "mr" : "issue";
13247
13248
  await this.createNote(chatId, targetType, Number(match[1]), text);
13248
13249
  }
13250
+ onPromptStart(chatId, _sessionId, messageId) {
13251
+ if (!messageId)
13252
+ return;
13253
+ const entry = this.reactions.get(messageId);
13254
+ if (!entry || entry.award)
13255
+ return;
13256
+ const api = entry.target.isMr ? this.api.MergeRequestNoteAwardEmojis : this.api.IssueNoteAwardEmojis;
13257
+ entry.award = api.award(chatId, entry.target.iid, entry.noteId, "eyes").then((r) => ({ awardId: r.id }));
13258
+ void entry.award.catch((err) => {
13259
+ entry.award = void 0;
13260
+ process2.stderr.write(`[Channel:${this.name}] failed to acknowledge note ${entry.noteId}: ${err}
13261
+ `);
13262
+ });
13263
+ }
13264
+ onPromptEnd(chatId, _sessionId, messageId) {
13265
+ if (!messageId)
13266
+ return;
13267
+ const entry = this.reactions.get(messageId);
13268
+ if (!entry)
13269
+ return;
13270
+ this.reactions.delete(messageId);
13271
+ if (!entry.award)
13272
+ return;
13273
+ const api = entry.target.isMr ? this.api.MergeRequestNoteAwardEmojis : this.api.IssueNoteAwardEmojis;
13274
+ void entry.award.then(({ awardId }) => api.remove(chatId, entry.target.iid, entry.noteId, awardId)).catch((err) => {
13275
+ process2.stderr.write(`[Channel:${this.name}] failed to remove acknowledgement from note ${entry.noteId}: ${err}
13276
+ `);
13277
+ });
13278
+ }
13249
13279
  async pollOnce() {
13250
13280
  const templates = this.config.action_prompt_template;
13251
13281
  if (!templates || Object.keys(templates).length === 0)
@@ -13275,25 +13305,33 @@ var GitlabChannel = class extends PollingChannelBase {
13275
13305
  }
13276
13306
  }
13277
13307
  for (const todo of todos) {
13278
- if (!todo.project || !todo.target || !todo.target.iid || todo.target_type !== "Issue" && todo.target_type !== "MergeRequest") {
13308
+ if (!todo.project || todo.target_type !== "Issue" && todo.target_type !== "MergeRequest") {
13279
13309
  await this.skipTodo(todo);
13280
13310
  continue;
13281
13311
  }
13312
+ const raw = todo.target || {};
13313
+ if (!raw.iid) {
13314
+ await this.skipTodo(todo);
13315
+ continue;
13316
+ }
13317
+ const target = {
13318
+ iid: raw.iid,
13319
+ title: raw.title ?? "",
13320
+ isMr: todo.target_type === "MergeRequest"
13321
+ };
13282
13322
  const template = this.resolveTemplate(templates, todo.action_name);
13283
13323
  if (!template) {
13284
13324
  await this.skipTodo(todo);
13285
13325
  continue;
13286
13326
  }
13287
13327
  const chatId = todo.project.path_with_namespace;
13288
- const targetType = todo.target_type === "MergeRequest" ? "mr" : "issue";
13289
- const threadId = `${targetType}:${todo.target.iid}`;
13290
13328
  try {
13291
- await this.processTodo(todo, template, chatId, targetType, threadId);
13329
+ await this.processTodo(todo, target, template, chatId);
13292
13330
  } catch (err) {
13293
13331
  process2.stderr.write(`[Channel:${this.name}] error processing todo ${todo.id}: ${err}
13294
13332
  `);
13295
13333
  try {
13296
- await this.createNote(chatId, targetType, todo.target.iid, "\u26A0\uFE0F Failed to process this request. Please re-mention the bot to retry.");
13334
+ await this.createNote(chatId, target.isMr ? "mr" : "issue", target.iid, "\u26A0\uFE0F Failed to process this request. Please re-mention the bot to retry.");
13297
13335
  } catch {
13298
13336
  }
13299
13337
  }
@@ -13318,29 +13356,43 @@ var GitlabChannel = class extends PollingChannelBase {
13318
13356
  return templates["mentioned"];
13319
13357
  return void 0;
13320
13358
  }
13321
- async processTodo(todo, template, chatId, targetType, threadId) {
13359
+ async processTodo(todo, target, template, chatId) {
13322
13360
  if (todo.author.username === this.botUsername)
13323
13361
  return;
13324
- const isNoteMention = /#note_\d+$/.test(todo.target_url);
13362
+ const targetType = target.isMr ? "mr" : "issue";
13363
+ const threadId = `${targetType}:${target.iid}`;
13364
+ const noteMatch = todo.target_url.match(/#note_(\d+)$/);
13365
+ const isNoteMention = noteMatch !== null;
13366
+ const messageId = String(todo.id);
13325
13367
  const needsDescription = !isNoteMention || template.includes("%description%");
13326
13368
  let description = "";
13327
13369
  if (needsDescription) {
13328
13370
  if (isNoteMention) {
13329
13371
  try {
13330
- description = await this.fetchDescription(chatId, targetType, todo.target.iid);
13372
+ description = await this.fetchDescription(chatId, targetType, target.iid);
13331
13373
  } catch (err) {
13332
13374
  process2.stderr.write(`[Channel:${this.name}] fetchDescription failed (metadata only): ${err}
13333
13375
  `);
13334
13376
  }
13335
13377
  } else {
13336
- description = await this.fetchDescription(chatId, targetType, todo.target.iid);
13378
+ description = await this.fetchDescription(chatId, targetType, target.iid);
13337
13379
  }
13338
13380
  }
13339
13381
  const text = isNoteMention ? todo.body || "" : description || todo.body || "";
13340
13382
  if (!text)
13341
13383
  return;
13342
- const envelope = this.buildEnvelope(text, todo.author.username, chatId, threadId, String(todo.id), this.buildMetadata(template, todo, chatId, todo.author.username, String(todo.id), description), true);
13343
- await this.handleInbound(envelope);
13384
+ const envelope = this.buildEnvelope(text, todo.author.username, chatId, threadId, messageId, this.buildMetadata(template, todo, target, chatId, todo.author.username, String(todo.id), description), true);
13385
+ if (isNoteMention) {
13386
+ this.reactions.set(messageId, {
13387
+ target,
13388
+ noteId: Number(noteMatch[1])
13389
+ });
13390
+ }
13391
+ try {
13392
+ await this.handleInbound(envelope);
13393
+ } finally {
13394
+ this.reactions.delete(messageId);
13395
+ }
13344
13396
  }
13345
13397
  async fetchDescription(chatId, targetType, iid) {
13346
13398
  const cacheKey = `${chatId}/${targetType}/${iid}`;
@@ -13374,14 +13426,14 @@ var GitlabChannel = class extends PollingChannelBase {
13374
13426
  metadata
13375
13427
  };
13376
13428
  }
13377
- buildMetadata(template, todo, chatId, author, commentId, description) {
13429
+ buildMetadata(template, todo, target, chatId, author, commentId, description) {
13378
13430
  const vars = {
13379
13431
  project: chatId,
13380
13432
  project_url: `${this.apiHost}/${chatId}`,
13381
13433
  author,
13382
13434
  target_type: todo.target_type,
13383
- iid: String(todo.target.iid),
13384
- title: todo.target.title,
13435
+ iid: String(target.iid),
13436
+ title: target.title,
13385
13437
  description,
13386
13438
  todo_id: commentId
13387
13439
  };
@@ -13407,6 +13459,101 @@ var plugin = {
13407
13459
  requiredConfigFields: ["token"],
13408
13460
  envResolvableConfigFields: ["baseUrl"],
13409
13461
  defaultSessionScope: "chat_thread",
13462
+ management: {
13463
+ fields: [
13464
+ {
13465
+ key: "token",
13466
+ label: "Personal Access Token",
13467
+ kind: "secret",
13468
+ required: true,
13469
+ envResolvable: true,
13470
+ description: 'PAT with "read_api" + "api" scopes'
13471
+ },
13472
+ {
13473
+ key: "baseUrl",
13474
+ label: "Base URL",
13475
+ kind: "string",
13476
+ envResolvable: true,
13477
+ description: "Self-hosted instance URL (e.g. https://gitlab.example.com). Leave empty for gitlab.com"
13478
+ },
13479
+ {
13480
+ key: "groupPolicy",
13481
+ label: "Group Policy",
13482
+ kind: "enum",
13483
+ required: true,
13484
+ description: 'Must be "Open" or "Allowlist" for todos to be processed',
13485
+ default: "open",
13486
+ options: [
13487
+ { value: "open", label: "Open" },
13488
+ { value: "allowlist", label: "Allowlist" },
13489
+ { value: "disabled", label: "Disabled" }
13490
+ ]
13491
+ },
13492
+ {
13493
+ key: "senderPolicy",
13494
+ label: "Sender Policy",
13495
+ kind: "enum",
13496
+ required: true,
13497
+ description: 'Use "Allowlist" with allowed users on public projects',
13498
+ options: [
13499
+ { value: "allowlist", label: "Allowlist" },
13500
+ { value: "pairing", label: "Pairing" },
13501
+ { value: "open", label: "Open" }
13502
+ ]
13503
+ },
13504
+ {
13505
+ key: "allowedUsers",
13506
+ label: "Allowed Users",
13507
+ kind: "string-list",
13508
+ description: "GitLab usernames, used by Allowlist and Pairing policies"
13509
+ },
13510
+ {
13511
+ key: "action_prompt_template",
13512
+ label: "Action Templates",
13513
+ kind: "record",
13514
+ required: true,
13515
+ description: 'Only actions with a template are processed; others are skipped. Template variables: %project%, %project_url%, %author%, %target_type%, %iid%, %title%, %description%, %todo_id%. Use %% for a literal %. Example for "mentioned": Project: %project% | Author: %author% | Title: %title%',
13516
+ options: [
13517
+ {
13518
+ value: "mentioned",
13519
+ label: "Mentioned \u2014 @bot in a comment or description"
13520
+ },
13521
+ {
13522
+ value: "directly_addressed",
13523
+ label: "Directly Addressed \u2014 comment starts with @bot"
13524
+ },
13525
+ {
13526
+ value: "assigned",
13527
+ label: "Assigned \u2014 bot assigned to an issue or MR"
13528
+ },
13529
+ {
13530
+ value: "review_requested",
13531
+ label: "Review Requested \u2014 bot requested as MR reviewer"
13532
+ },
13533
+ {
13534
+ value: "approval_required",
13535
+ label: "Approval Required \u2014 MR needs bot approval"
13536
+ },
13537
+ {
13538
+ value: "marked",
13539
+ label: "Marked \u2014 someone stars bot's comment/issue/MR"
13540
+ },
13541
+ {
13542
+ value: "build_failed",
13543
+ label: "Build Failed \u2014 CI/CD pipeline fails on bot branch/MR"
13544
+ },
13545
+ {
13546
+ value: "unmergeable",
13547
+ label: "Unmergeable \u2014 MR becomes unmergeable (conflicts)"
13548
+ },
13549
+ {
13550
+ value: "merge_train_removed",
13551
+ label: "Merge Train Removed \u2014 MR removed from merge train"
13552
+ }
13553
+ ]
13554
+ }
13555
+ ]
13556
+ },
13410
13557
  createChannel: /* @__PURE__ */ __name((name, config, bridge, options) => new GitlabChannel(name, config, bridge, options), "createChannel")
13411
13558
  };
13412
13559
  export {
@@ -4,18 +4,18 @@ import {
4
4
  require_axios,
5
5
  require_ws
6
6
  } from "./chunk-I3G5JWBV.js";
7
+ import "./chunk-JE7KQ2UP.js";
8
+ import "./chunk-K6KS3LTN.js";
7
9
  import {
8
10
  require_lib
9
11
  } from "./chunk-FC4KQFCS.js";
10
- import "./chunk-JE7KQ2UP.js";
11
- import "./chunk-K6KS3LTN.js";
12
12
  import "./chunk-T3CHYWJZ.js";
13
13
  import {
14
14
  ChannelBase,
15
15
  ChannelProactiveDeliveryError,
16
16
  isChannelProactiveDeliveryError,
17
17
  isTerminalTaskLifecycleType
18
- } from "./chunk-JCJ7LKNA.js";
18
+ } from "./chunk-DIEFUBV6.js";
19
19
  import "./chunk-UDXSXLER.js";
20
20
  import "./chunk-H6XPXXMH.js";
21
21
  import {
@@ -10,7 +10,7 @@ import "./chunk-T3CHYWJZ.js";
10
10
  import {
11
11
  ChannelBase,
12
12
  sanitizeLogText
13
- } from "./chunk-JCJ7LKNA.js";
13
+ } from "./chunk-DIEFUBV6.js";
14
14
  import "./chunk-UDXSXLER.js";
15
15
  import "./chunk-H6XPXXMH.js";
16
16
  import "./chunk-CR3C7WXL.js";