@qwen-code/qwen-code 0.22.0-nightly.20260825.22bb5e8b9f → 0.22.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (379) hide show
  1. package/bundled/coordinate/SKILL.md +3 -3
  2. package/bundled/qc-helper/docs/configuration/model-providers.md +2 -0
  3. package/bundled/qc-helper/docs/configuration/settings.md +6 -6
  4. package/bundled/qc-helper/docs/features/channels/_meta.ts +1 -0
  5. package/bundled/qc-helper/docs/features/channels/dws.md +120 -0
  6. package/bundled/qc-helper/docs/features/channels/overview.md +3 -3
  7. package/bundled/qc-helper/docs/features/code-review.md +1 -1
  8. package/bundled/qc-helper/docs/qwen-serve.md +2 -0
  9. package/bundled/review/SKILL.md +47 -12
  10. package/bundled/review/references/persistence.md +6 -6
  11. package/bundled/review/references/posting.md +2 -2
  12. package/chunks/MaxSizedBox-UUTUE42J.js +112 -0
  13. package/chunks/{StandaloneSessionPicker-NEWUAPCT.js → StandaloneSessionPicker-XF2TVJFK.js} +78 -77
  14. package/chunks/{acp-startup-profiler-T4GEAPLX.js → acp-startup-profiler-GNYAL6LI.js} +2 -2
  15. package/chunks/{acpAgent-A5CIQGW6.js → acpAgent-GY53MJIW.js} +254 -158
  16. package/chunks/{agent-TQ6CYOIL.js → agent-7U6CC5KF.js} +41 -41
  17. package/chunks/agent-headless-32O4L2CT.js +87 -0
  18. package/chunks/{anthropicContentGenerator-FSBGS426.js → anthropicContentGenerator-U76GTVB6.js} +7 -7
  19. package/chunks/{artifact-tool-UQTNZDUF.js → artifact-tool-XDJCZZCF.js} +2 -2
  20. package/chunks/{askUserQuestion-BSZALR7M.js → askUserQuestion-ZXXERLEV.js} +2 -2
  21. package/chunks/{bridge-MBOVCHXN.js → bridge-DFX2FFH4.js} +57 -56
  22. package/chunks/{ca-DZBZOMLU.js → ca-7HPYOYSZ.js} +1 -0
  23. package/chunks/{channel-management-service-XGGL6PLF.js → channel-management-service-HXXS3HOZ.js} +4 -4
  24. package/chunks/channel-settings-store-ELLH2M4M.js +117 -0
  25. package/chunks/{channel-worker-group-GIXIF4VT.js → channel-worker-group-EVDC2P4K.js} +5 -5
  26. package/chunks/{channel-worker-manager-ZBSYXJEB.js → channel-worker-manager-IJJZHGEI.js} +5 -5
  27. package/chunks/{channel-worker-supervisor-NI6JEY4Q.js → channel-worker-supervisor-YSKB5GVB.js} +9 -5
  28. package/chunks/{chunk-CPZQJP6J.js → chunk-27ONXAFY.js} +1 -1
  29. package/chunks/{chunk-FXNLH7E6.js → chunk-2CRNTW2B.js} +18 -2
  30. package/chunks/{read-package-up-UXSW3YPB.js → chunk-2EAZ43JQ.js} +1 -0
  31. package/chunks/{chunk-YX4II73B.js → chunk-2FN2HNTI.js} +2 -2
  32. package/chunks/{chunk-7KGJGYGA.js → chunk-2MHGD7EE.js} +1 -1
  33. package/chunks/{chunk-H5K5MRU7.js → chunk-2NCVUT3C.js} +4 -4
  34. package/chunks/{chunk-VLEGGCEA.js → chunk-2NNTE2ED.js} +171 -1
  35. package/chunks/{chunk-LNKZTLTH.js → chunk-2SERYG4T.js} +1 -1
  36. package/chunks/{chunk-UEHH33VE.js → chunk-2YDYDDE2.js} +6 -6
  37. package/chunks/{chunk-U7GJPTEY.js → chunk-2YEZNBSD.js} +66 -60
  38. package/chunks/{chunk-L6PFEZUM.js → chunk-2ZV3CZKI.js} +82 -12
  39. package/chunks/{chunk-36XTQW3N.js → chunk-3B5DCAQU.js} +28 -11
  40. package/chunks/{chunk-DE24WTEJ.js → chunk-3BV7TZNQ.js} +3 -3
  41. package/chunks/{chunk-IKPQM6I5.js → chunk-3FSBMAYD.js} +1 -1
  42. package/chunks/{chunk-J54EA46E.js → chunk-3UZCLCXR.js} +3 -3
  43. package/chunks/{chunk-ZROP2DTX.js → chunk-43C2II2G.js} +5 -5
  44. package/chunks/{chunk-2ZH5XAOO.js → chunk-47SIHHPL.js} +8 -8
  45. package/chunks/{chunk-EEBIINBT.js → chunk-4DCP3362.js} +6 -14
  46. package/chunks/{chunk-DF6DJZIX.js → chunk-4TPAG3O7.js} +1 -1
  47. package/chunks/{chunk-6L5EXDDN.js → chunk-5CI4AXDD.js} +4 -4
  48. package/chunks/{chunk-7KOFLDEP.js → chunk-5JTIYALA.js} +1 -1
  49. package/chunks/{chunk-YPJVAQ7V.js → chunk-5MK32KJV.js} +3 -3
  50. package/chunks/{chunk-XXA72PGJ.js → chunk-5T4LWWNX.js} +2 -2
  51. package/chunks/{chunk-NA6AZRDQ.js → chunk-5Y2JCJAH.js} +2 -2
  52. package/chunks/{chunk-3ROKI6MD.js → chunk-5ZYZPDDF.js} +978 -886
  53. package/chunks/{chunk-U4SJGOBF.js → chunk-62PXFOK4.js} +4 -4
  54. package/chunks/{chunk-SKXXO64C.js → chunk-6E4WHQJV.js} +1 -1
  55. package/chunks/{chunk-6Y7XMJFF.js → chunk-6HTMIKXZ.js} +6 -6
  56. package/chunks/{chunk-MGEXTDBI.js → chunk-6KS24S3X.js} +2 -2
  57. package/chunks/{chunk-ZJWFRMCY.js → chunk-6US7BF3G.js} +2 -2
  58. package/chunks/{chunk-RSOG6JND.js → chunk-6YAR6ZU3.js} +2 -2
  59. package/chunks/{chunk-Z3GFRVAY.js → chunk-73WFGVIZ.js} +3 -3
  60. package/chunks/{chunk-IX3CWNG7.js → chunk-76WGY6LW.js} +3 -3
  61. package/chunks/{chunk-CGWPQ6IM.js → chunk-77TOMRBG.js} +3 -3
  62. package/chunks/{chunk-JVTU5JYO.js → chunk-7AS7QX72.js} +1 -1
  63. package/chunks/{chunk-RLIS2VLZ.js → chunk-7DPKPBOQ.js} +2 -2
  64. package/chunks/{chunk-XQNWTA4Y.js → chunk-7JPW6IYH.js} +1 -1
  65. package/chunks/{chunk-UEY5WCRB.js → chunk-7QGEJI7M.js} +1 -1
  66. package/chunks/{chunk-GWUZOBCQ.js → chunk-A7X32SCT.js} +5 -5
  67. package/chunks/{chunk-R7Q5V3A5.js → chunk-AYVIGUUK.js} +1 -1
  68. package/chunks/{chunk-AIT6BMBI.js → chunk-BDHLBR46.js} +17 -3
  69. package/chunks/{chunk-3G6MRLTM.js → chunk-BKDAF7ES.js} +2 -2
  70. package/chunks/{chunk-5AHCPETA.js → chunk-BQBUZDDH.js} +3 -3
  71. package/chunks/{chunk-3KV5KXKU.js → chunk-BVE5EMIG.js} +2 -2
  72. package/chunks/{chunk-NDVTSFWZ.js → chunk-BX2BZPFJ.js} +3 -3
  73. package/chunks/{chunk-7UVAWPYG.js → chunk-C4WBKZJT.js} +4 -4
  74. package/chunks/{chunk-HYBEI2LH.js → chunk-CITGRGCM.js} +2 -1
  75. package/chunks/{chunk-TEQKBONY.js → chunk-CPPYZHBN.js} +1 -1
  76. package/chunks/chunk-DCSAVGDJ.js +20 -0
  77. package/chunks/{chunk-RSWDOHXS.js → chunk-DEYPMJPD.js} +1 -1
  78. package/chunks/{chunk-OWE7TE3F.js → chunk-DP7LABIB.js} +1 -1
  79. package/chunks/{chunk-LQF4PWEU.js → chunk-E4I5MVBR.js} +1 -1
  80. package/chunks/{chunk-NFDTDV37.js → chunk-E55H6BZ7.js} +4 -0
  81. package/chunks/{chunk-K623ENWT.js → chunk-E6FGMDFQ.js} +4 -0
  82. package/chunks/{chunk-QWTNAHCM.js → chunk-EAV3TENS.js} +3 -3
  83. package/chunks/{chunk-27HAGBZG.js → chunk-EB4VDXNI.js} +1 -1
  84. package/chunks/{chunk-RDPKOVXL.js → chunk-EC5BONC3.js} +1 -1
  85. package/chunks/{chunk-JHZIPJWY.js → chunk-EEQYTWGU.js} +5 -5
  86. package/chunks/{chunk-MFSV57XN.js → chunk-EKP3M4RF.js} +1 -1
  87. package/chunks/{chunk-R544UY5E.js → chunk-ELY4QVIB.js} +1 -1
  88. package/chunks/{chunk-PFCVB5ZI.js → chunk-EMGAVCBZ.js} +2 -2
  89. package/chunks/{chunk-JGDTCEBH.js → chunk-FJWICLG7.js} +1 -1
  90. package/chunks/{chunk-OXMS5HCS.js → chunk-FK4H3V6S.js} +5 -5
  91. package/chunks/{chunk-WANR3VVK.js → chunk-FN5C6C7G.js} +125 -60
  92. package/chunks/{chunk-5PVLDRGJ.js → chunk-FPH6TXD3.js} +1 -1
  93. package/chunks/{chunk-OY3ZSNQC.js → chunk-FVDQ5E67.js} +3 -3
  94. package/chunks/{chunk-J752LLEJ.js → chunk-GNMJNDZE.js} +1 -1
  95. package/chunks/{chunk-MSCVPOZR.js → chunk-GNRVKN76.js} +4 -4
  96. package/chunks/{chunk-FNZ42WN7.js → chunk-GTUKW3I6.js} +1 -1
  97. package/chunks/{chunk-NSPS67BG.js → chunk-GZJUCMH4.js} +1 -1
  98. package/chunks/{chunk-SNWAXNJ4.js → chunk-HJOWQUE2.js} +14 -11
  99. package/chunks/{chunk-3K5ORUVO.js → chunk-I32QCIK7.js} +1 -1
  100. package/chunks/{chunk-BOQRZ443.js → chunk-I6VVOZDK.js} +2 -2
  101. package/chunks/{chunk-KUPVZ4EO.js → chunk-I6YW3T3W.js} +207 -26
  102. package/chunks/{chunk-O6CS7VRT.js → chunk-ICWGPK23.js} +7 -7
  103. package/chunks/{chunk-EFT2T2LA.js → chunk-IJVDHPKD.js} +2 -2
  104. package/chunks/{chunk-SEMN7BNM.js → chunk-IKN3IUJP.js} +9 -8
  105. package/chunks/{chunk-O5ONGZGZ.js → chunk-ILPXSKGQ.js} +2 -2
  106. package/chunks/{chunk-QQQSUCC4.js → chunk-IPQA4SR5.js} +1 -1
  107. package/chunks/{chunk-SXBRB7ZP.js → chunk-IRIX323G.js} +2 -2
  108. package/chunks/{chunk-EJ5XRNOK.js → chunk-J7MLXFC5.js} +2 -2
  109. package/chunks/{chunk-KDGY3ST4.js → chunk-JECO75XD.js} +2 -2
  110. package/chunks/chunk-JLGFGPZJ.js +346 -0
  111. package/chunks/{chunk-COT2IXPM.js → chunk-JUIJ3FXC.js} +5 -5
  112. package/chunks/{chunk-IFWUT4GY.js → chunk-JVPFTDBK.js} +1 -1
  113. package/chunks/{chunk-455ZIBFX.js → chunk-K63NK3KL.js} +13 -13
  114. package/chunks/{chunk-MBLNXX3G.js → chunk-KCOXDRQL.js} +5 -5
  115. package/chunks/{chunk-3LUGIYS3.js → chunk-KOJ6MHD5.js} +3 -1
  116. package/chunks/{chunk-W4JA6Z44.js → chunk-KWFP3WV6.js} +9 -7
  117. package/chunks/{chunk-QKSMM4HF.js → chunk-L436XFLJ.js} +1 -1
  118. package/chunks/{chunk-M4TV7AJX.js → chunk-LI2HEMKO.js} +4 -4
  119. package/chunks/{chunk-FLTGTSLG.js → chunk-LJP2BBMK.js} +4 -4
  120. package/chunks/{chunk-HTIG2U5C.js → chunk-LRKMQPMD.js} +1 -1
  121. package/chunks/{chunk-YS4H3OFV.js → chunk-MDZO5V2O.js} +6 -6
  122. package/chunks/{chunk-2HYQZYPT.js → chunk-MW5AHWOZ.js} +7 -7
  123. package/chunks/{chunk-SJDR2S55.js → chunk-MYLXL7F6.js} +11 -11
  124. package/chunks/{chunk-PIZZIIEA.js → chunk-MZS7GEC7.js} +1 -1
  125. package/chunks/{chunk-H3JIT2M6.js → chunk-NER3H7PI.js} +1 -1
  126. package/chunks/{chunk-XYUJPDPB.js → chunk-NVK4HJYQ.js} +1 -1
  127. package/chunks/{chunk-GQQHY6TL.js → chunk-NY3IJYAV.js} +7 -7
  128. package/chunks/{chunk-3E53DKST.js → chunk-O3BUXIPM.js} +3 -3
  129. package/chunks/{chunk-QOUFO7TV.js → chunk-O5YGAEQS.js} +6 -6
  130. package/chunks/{chunk-OINGLDAX.js → chunk-ODXCSIH5.js} +4 -4
  131. package/chunks/{chunk-FMDWTE5I.js → chunk-OI2DR6QB.js} +2 -2
  132. package/chunks/{chunk-ENZMDVCM.js → chunk-OQ6LTSX3.js} +1 -1
  133. package/chunks/{chunk-KUDADN3R.js → chunk-OT26ITEY.js} +3 -3
  134. package/chunks/{chunk-FZUVUBYH.js → chunk-OX44MOAN.js} +3 -3
  135. package/chunks/{chunk-LURJYO2T.js → chunk-OZ6KS6KW.js} +4 -0
  136. package/chunks/{chunk-D2IGZJA7.js → chunk-PAJGKZAA.js} +272 -3
  137. package/chunks/{chunk-MTKBZIXU.js → chunk-PVBT5QPD.js} +1 -1
  138. package/chunks/{chunk-HDH5IDJH.js → chunk-R2ZJH3FV.js} +3 -3
  139. package/chunks/{chunk-SJLW5XGQ.js → chunk-RRKNX553.js} +1 -1
  140. package/chunks/{chunk-JS55F2GJ.js → chunk-SDVF6A42.js} +3 -3
  141. package/chunks/{chunk-DZPWZPGJ.js → chunk-SKNVVYIJ.js} +3 -3
  142. package/chunks/{chunk-SIC4S3RX.js → chunk-SLEWBQWM.js} +2 -2
  143. package/chunks/{chunk-P7DVAZKV.js → chunk-SM7ZVKTF.js} +7 -7
  144. package/chunks/{chunk-3N7EFOOM.js → chunk-SQPOJ4ZI.js} +11 -1
  145. package/chunks/{chunk-YOM3CJOP.js → chunk-SRGENTPF.js} +19 -19
  146. package/chunks/{chunk-ZB7VDPZB.js → chunk-T2CRBIDJ.js} +1 -1
  147. package/chunks/{chunk-F37T2S4O.js → chunk-T2HMXHYA.js} +6 -6
  148. package/chunks/{chunk-5X33EPHJ.js → chunk-T6OODF2U.js} +1 -1
  149. package/chunks/{chunk-7GECZMES.js → chunk-TKO4TLT6.js} +3 -3
  150. package/chunks/{chunk-PQ4RTSTH.js → chunk-TOF4UZHH.js} +3 -3
  151. package/chunks/{chunk-LD76HNCC.js → chunk-UCSV2IZW.js} +3 -3
  152. package/chunks/{chunk-EUZE3GSL.js → chunk-UX3IFLJM.js} +93 -9
  153. package/chunks/{chunk-AHQBSQYT.js → chunk-V3GINY6K.js} +3 -3
  154. package/chunks/{chunk-DD5XZICM.js → chunk-VL4YX3FH.js} +1 -1
  155. package/chunks/{chunk-DLYJ3RN7.js → chunk-VMDURMFY.js} +58 -32
  156. package/chunks/{chunk-E6BJFSLJ.js → chunk-W2WRNJKX.js} +6 -6
  157. package/chunks/{chunk-YLFLHKDL.js → chunk-W3N5XAZ6.js} +1 -1
  158. package/chunks/{chunk-QKGJIP2H.js → chunk-WBT3STGU.js} +1 -1
  159. package/chunks/{chunk-X3PRXXUH.js → chunk-WEGXPP5E.js} +1 -1
  160. package/chunks/{chunk-V6R3IEHF.js → chunk-XJS54K4A.js} +2 -2
  161. package/chunks/{chunk-NDJ3436G.js → chunk-XNXWEGKB.js} +3 -3
  162. package/chunks/{chunk-UFWRXRQ5.js → chunk-XYX474JQ.js} +1312 -290
  163. package/chunks/{chunk-UY2JOZK7.js → chunk-ZEADBZLO.js} +3 -3
  164. package/chunks/{chunk-SNJOBGQV.js → chunk-ZJG323IA.js} +4 -3
  165. package/chunks/{chunk-CZIF7I53.js → chunk-ZKAZP2ZG.js} +2 -2
  166. package/chunks/{chunk-DV3KOUUU.js → chunk-ZLTEQYNC.js} +2 -2
  167. package/chunks/{chunk-RLR7K4JJ.js → chunk-ZWKGZB2K.js} +3 -3
  168. package/chunks/{chunk-EJ2GPZDU.js → chunk-ZXDM7DYV.js} +1049 -383
  169. package/chunks/config-utils-7M6PCTLT.js +113 -0
  170. package/chunks/contextCommand-G4QG3TW6.js +108 -0
  171. package/chunks/{core-runtime-SZFD2YQA.js → core-runtime-PKNQ63VL.js} +53 -52
  172. package/chunks/{create-sub-session-OXESCUS7.js → create-sub-session-PLGPY6TV.js} +53 -52
  173. package/chunks/{create-sub-session-5ZLCAS2P.js → create-sub-session-RVHSWVAP.js} +3 -3
  174. package/chunks/{cron-create-P4CPPO25.js → cron-create-IJGVR5R2.js} +4 -4
  175. package/chunks/{cron-delete-FPD75GL4.js → cron-delete-4N5BI6GL.js} +4 -4
  176. package/chunks/{cron-list-QPML4MWL.js → cron-list-2CATIPUX.js} +4 -4
  177. package/chunks/{daemon-HY4AVTUM.js → daemon-NAYK4XXU.js} +34 -12
  178. package/chunks/{daemon-git-worktree-guard-EAVTZ6CE.js → daemon-git-worktree-guard-LDBJXH2U.js} +331 -86
  179. package/chunks/daemon-status-provider-F5FEHVVG.js +118 -0
  180. package/chunks/daemon-trust-policy-C6YTU5CQ.js +114 -0
  181. package/chunks/{daemon-trust-policy-monitor-ITF54474.js → daemon-trust-policy-monitor-IGEJPHQ4.js} +59 -58
  182. package/chunks/{deferred-core-runtime-WQ4NQA3N.js → deferred-core-runtime-GHT3GDOR.js} +53 -52
  183. package/chunks/{display-image-HOBBUJS5.js → display-image-DR55LL6M.js} +5 -5
  184. package/chunks/dist-4Q7NTUNB.js +2512 -0
  185. package/chunks/{dist-RW4QZD3K.js → dist-6H6RZ5H6.js} +2 -2
  186. package/chunks/{dist-ZUWCGMJ4.js → dist-7CKN54NL.js} +1 -1
  187. package/chunks/{dist-ZQJEKFZH.js → dist-DJBNNPLN.js} +1 -1
  188. package/chunks/{dist-5BX3J3AL.js → dist-FVJZSIO4.js} +28 -7
  189. package/chunks/{dist-OB6D7E7T.js → dist-SATKXKUR.js} +1 -1
  190. package/chunks/{dist-MEANA2OS.js → dist-TJUDJTCB.js} +1 -1
  191. package/chunks/{dist-4LRFQF7R.js → dist-UQUFZDIY.js} +1 -1
  192. package/chunks/{dist-7HGG7XLA.js → dist-ZBVOXSKF.js} +1 -1
  193. package/chunks/earlyInputCapture-HOSJTLWP.js +109 -0
  194. package/chunks/{edit-4MZYBPF5.js → edit-KSPVUEAS.js} +42 -42
  195. package/chunks/{en-X66KZS7T.js → en-6MDBWMTG.js} +1 -0
  196. package/chunks/{enter-worktree-WNR4JUPU.js → enter-worktree-UOZ6ZTP7.js} +7 -7
  197. package/chunks/{enterPlanMode-2EL6YAM5.js → enterPlanMode-DZTABSKN.js} +41 -41
  198. package/chunks/{environment-4QYNT2L3.js → environment-JXOSW25V.js} +57 -54
  199. package/chunks/{errors-N66MMOYD.js → errors-IOXFDE4J.js} +55 -54
  200. package/chunks/{exit-worktree-BUHUM6YC.js → exit-worktree-G2QATUCV.js} +7 -7
  201. package/chunks/{exitPlanMode-F73VQJBO.js → exitPlanMode-PZG4FXRB.js} +41 -41
  202. package/chunks/{fast-path-3L4YK6SO.js → fast-path-EBS7NAVL.js} +2 -2
  203. package/chunks/{gemini-4PINQJWX.js → gemini-JELEKOVS.js} +107 -103
  204. package/chunks/{geminiContentGenerator-7T7IU2V5.js → geminiContentGenerator-I2CKP7XI.js} +8 -8
  205. package/chunks/{glob-TWUYSRRG.js → glob-TDVEVPQZ.js} +41 -41
  206. package/chunks/{goal-tools-FTDQHRRX.js → goal-tools-CNVXMSZD.js} +70 -27
  207. package/chunks/{grep-QUQ3J6SR.js → grep-3NLSS32D.js} +6 -6
  208. package/chunks/handleAutoUpdate-AWAGHKOX.js +111 -0
  209. package/chunks/{i18n-Q6K7AX7Y.js → i18n-CYA25C5F.js} +54 -53
  210. package/chunks/{image-gen-RYOBEDNB.js → image-gen-63NN2H5N.js} +9 -9
  211. package/chunks/initializer-JD2FLNLO.js +115 -0
  212. package/chunks/installationInfo-N3DCWVWR.js +109 -0
  213. package/chunks/{keychain-token-storage-LQTBIXSX.js → keychain-token-storage-3MGFRYGM.js} +2 -2
  214. package/chunks/list-XDQAUET5.js +118 -0
  215. package/chunks/{list-agents-522ILPAR.js → list-agents-EXRSHIDJ.js} +2 -2
  216. package/chunks/loadedSettingsAdapter-IK7H5JRK.js +112 -0
  217. package/chunks/{loggingContentGenerator-RTDUJF6Y.js → loggingContentGenerator-CZWUAHAI.js} +20 -20
  218. package/chunks/{loop-wakeup-VSA4TBIC.js → loop-wakeup-XBPB2BRO.js} +5 -5
  219. package/chunks/{ls-FUCLEBTL.js → ls-WFONAND2.js} +4 -4
  220. package/chunks/{lsp-FYP6TW4R.js → lsp-DUKPDUXN.js} +2 -2
  221. package/chunks/{managed-npm-update-NUDVKV7F.js → managed-npm-update-54W23SP5.js} +54 -53
  222. package/chunks/mcp-2E7ZLMEE.js +112 -0
  223. package/chunks/{monitor-AU2SG5OL.js → monitor-A4J5QRGJ.js} +41 -41
  224. package/chunks/nonInteractiveCli-ZNDXB62Y.js +185 -0
  225. package/chunks/{notebook-edit-TGU7XHIO.js → notebook-edit-4ANFZON5.js} +42 -42
  226. package/chunks/{openaiContentGenerator-QPFWSUPT.js → openaiContentGenerator-JCCJJQZC.js} +24 -24
  227. package/chunks/pidfile-DHV2Y7UD.js +113 -0
  228. package/chunks/{processUtils-ZSHN6VGJ.js → processUtils-JJAR56SO.js} +2 -2
  229. package/chunks/prompt-terminal-ledger-LDZ6QVYA.js +107 -0
  230. package/chunks/{qwenContentGenerator-MEXKZX5O.js → qwenContentGenerator-5JM44ZSA.js} +46 -46
  231. package/chunks/{qwenOAuth2-QHHUP4KQ.js → qwenOAuth2-JIYAWXTW.js} +8 -8
  232. package/chunks/{read-file-T7ESVJAQ.js → read-file-N3E5DY7N.js} +12 -12
  233. package/chunks/{read-mcp-resource-5QGBDZ43.js → read-mcp-resource-7A7NFSFL.js} +2 -2
  234. package/chunks/read-package-up-6T6ICKR7.js +13 -0
  235. package/chunks/{record-artifact-K6BYYWXY.js → record-artifact-CPJ4IJSD.js} +4 -4
  236. package/chunks/report-findings-VFM5DENC.js +33 -0
  237. package/chunks/{request-shutdown-EUXDG4IH.js → request-shutdown-AXVOFN5C.js} +7 -7
  238. package/chunks/{resumeHistoryUtils-JFEAZEWW.js → resumeHistoryUtils-YQRITQAG.js} +60 -59
  239. package/chunks/{ripGrep-KOP6AHIX.js → ripGrep-NEIHKBKB.js} +17 -17
  240. package/chunks/{run-qwen-serve-IAVPTDB7.js → run-qwen-serve-IWGPZADI.js} +577 -67
  241. package/chunks/{runtime-ZICTJKT5.js → runtime-I76HPFUE.js} +64 -63
  242. package/chunks/{scheduler-YNVAANNX.js → scheduler-M6YL4K4I.js} +55 -54
  243. package/chunks/{sdk-exporters-http-GCVM7E4X.js → sdk-exporters-http-XXSKBD2C.js} +2 -2
  244. package/chunks/{sdk-impl-E3KA6NMY.js → sdk-impl-VPNBLV7I.js} +4 -4
  245. package/chunks/{send-message-EJUCEIKN.js → send-message-A2GXDX3B.js} +7 -7
  246. package/chunks/{serve-NF25WYMU.js → serve-XY5S63GN.js} +59 -58
  247. package/chunks/{server-7LKYWHCE.js → server-TWXRRREO.js} +605 -334
  248. package/chunks/{session-5FBBDYPI.js → session-IT5ZXU7A.js} +104 -99
  249. package/chunks/{settings-F7IXLQQW.js → settings-IX5HOOCG.js} +58 -57
  250. package/chunks/{shell-IJYC4BVX.js → shell-LZ55AAJB.js} +41 -41
  251. package/chunks/{skill-RTZU743G.js → skill-WSZ53D2R.js} +107 -23
  252. package/chunks/{skill-settings-ZOHS4J2E.js → skill-settings-5U7FTJIK.js} +58 -57
  253. package/chunks/{spawnChannel-JLKWUMTV.js → spawnChannel-TMC6VXGN.js} +55 -54
  254. package/chunks/{standalone-update-W44DUURE.js → standalone-update-CUYGWTR4.js} +55 -54
  255. package/chunks/{startInteractiveUI-7HPDSR7W.js → startInteractiveUI-O6BI2OSA.js} +219 -170
  256. package/chunks/{syntheticOutput-3ITPRJOB.js → syntheticOutput-5AJ444QT.js} +3 -3
  257. package/chunks/{task-create-USIZE733.js → task-create-CDJSOEQD.js} +11 -11
  258. package/chunks/{task-list-AWAJUPIP.js → task-list-BELMPA75.js} +5 -5
  259. package/chunks/{task-stop-I2CQSMDX.js → task-stop-U3S3KZG2.js} +2 -2
  260. package/chunks/{task-update-TFF2KJGL.js → task-update-77VCFDDZ.js} +11 -11
  261. package/chunks/{team-create-IU2A6HD3.js → team-create-UF4TMQEH.js} +41 -41
  262. package/chunks/{team-delete-E4C4AMPF.js → team-delete-YWFXX77L.js} +5 -5
  263. package/chunks/{team-plan-approval-BWI43D37.js → team-plan-approval-U57NSR6C.js} +41 -41
  264. package/chunks/{terminal-image-renderer-GQAMHJF2.js → terminal-image-renderer-DRL3BROJ.js} +55 -54
  265. package/chunks/theme-manager-HHJPUDRN.js +104 -0
  266. package/chunks/{todoWrite-ZUS3HGEF.js → todoWrite-435EO2CS.js} +4 -4
  267. package/chunks/{tool-search-TQNHT22X.js → tool-search-SV35UV72.js} +17 -17
  268. package/chunks/{total-session-admission-JMM73HNK.js → total-session-admission-TQI7TCTL.js} +57 -56
  269. package/chunks/{trustedFolders-BKQ2UXIB.js → trustedFolders-YKK67IP3.js} +54 -53
  270. package/chunks/{update-relaunch-WI7IWWCM.js → update-relaunch-DX7LVA4P.js} +5 -5
  271. package/chunks/{updateCheck-K6WUHPPT.js → updateCheck-6JRTKTUF.js} +58 -57
  272. package/chunks/useAutoAcceptIndicator-MYXYSKSL.js +122 -0
  273. package/chunks/{validateNonInterActiveAuth-RXCZM7MM.js → validateNonInterActiveAuth-B26O4YJP.js} +100 -95
  274. package/chunks/{version-IRAYALVC.js → version-K5D7VJ4B.js} +2 -2
  275. package/chunks/{web-fetch-FUG5KGKQ.js → web-fetch-VFHZLLNZ.js} +16 -16
  276. package/chunks/{web-search-SO3LHSHP.js → web-search-AQE5A4J5.js} +9 -9
  277. package/chunks/{workflow-XJRA3GRI.js → workflow-XL6AEUZ7.js} +150 -52
  278. package/chunks/workspace-providers-status-H6TG34YV.js +116 -0
  279. package/chunks/{workspace-registration-store-LCB4GHNP.js → workspace-registration-store-I4U3V5LL.js} +1 -1
  280. package/chunks/{workspace-registry-QWPFWGEF.js → workspace-registry-2PWNIYNI.js} +57 -56
  281. package/chunks/{workspace-service-MPGLZJF6.js → workspace-service-4FGTUJLA.js} +65 -64
  282. package/chunks/workspace-skills-status-7VOLUDT6.js +115 -0
  283. package/chunks/{workspace-trust-reconciler-4QDDGBQZ.js → workspace-trust-reconciler-GJ466KCE.js} +65 -64
  284. package/chunks/write-file-PWOYCT2K.js +90 -0
  285. package/chunks/{zh-TW-FZ3ETVR2.js → zh-TW-MV4FWFB6.js} +1 -0
  286. package/chunks/{zh-K3OJZ5LI.js → zh-X3WGU6SI.js} +1 -0
  287. package/chunks/{zoom-image-TCBO2YL5.js → zoom-image-NYJPC3NI.js} +12 -12
  288. package/cli.js +13 -13
  289. package/locales/ca.js +1 -0
  290. package/locales/en.js +1 -0
  291. package/locales/zh-TW.js +1 -0
  292. package/locales/zh.js +1 -0
  293. package/package.json +3 -3
  294. package/web-shell/assets/{abnfDiagram-VCTEODGH-hQsSuKY7.js → abnfDiagram-VCTEODGH-yq7z7Anb.js} +1 -1
  295. package/web-shell/assets/{arc-CpKLq3XD.js → arc-CbJO0xnT.js} +1 -1
  296. package/web-shell/assets/{architectureDiagram-5GKGNRK7-Bplk1J-m.js → architectureDiagram-5GKGNRK7-CRh89421.js} +1 -1
  297. package/web-shell/assets/{blockDiagram-NRAW4CY4-B-cca4ej.js → blockDiagram-NRAW4CY4-C75KAhKv.js} +1 -1
  298. package/web-shell/assets/{c4Diagram-UCG6FXSJ-BZ8cn00E.js → c4Diagram-UCG6FXSJ-BzlMveFB.js} +1 -1
  299. package/web-shell/assets/channel-B3sGR79J.js +1 -0
  300. package/web-shell/assets/{chunk-2Q5K7J3B-DEQ2uYU0.js → chunk-2Q5K7J3B-DA8QDX3a.js} +1 -1
  301. package/web-shell/assets/{chunk-5VM5RSS4-DqH8Lz-4.js → chunk-5VM5RSS4-Bgu7gQ7Y.js} +1 -1
  302. package/web-shell/assets/{chunk-F27PBJKO-Dru7qMTB.js → chunk-F27PBJKO-BOew7pIK.js} +1 -1
  303. package/web-shell/assets/{chunk-G27WJ6UU-DN8KcdzT.js → chunk-G27WJ6UU-DHx1I-hO.js} +1 -1
  304. package/web-shell/assets/{chunk-JWPE2WC7-DMS-EquZ.js → chunk-JWPE2WC7-SarFW0WU.js} +1 -1
  305. package/web-shell/assets/{chunk-LCL6LL3I-ubbLaEwq.js → chunk-LCL6LL3I-BLzP083Z.js} +1 -1
  306. package/web-shell/assets/{chunk-POPQ4Y6H-DdIZqnYy.js → chunk-POPQ4Y6H-Bmkv_iKm.js} +1 -1
  307. package/web-shell/assets/{chunk-SVP7TREG-DkgYFSnb.js → chunk-SVP7TREG-MPx9r1N2.js} +1 -1
  308. package/web-shell/assets/{chunk-XXDRQBXY-CaesHiYG.js → chunk-XXDRQBXY-Ck-09rKG.js} +1 -1
  309. package/web-shell/assets/classDiagram-DTDB5LWJ-sTGo0K3v.js +1 -0
  310. package/web-shell/assets/classDiagram-v2-JRS7N3AN-sTGo0K3v.js +1 -0
  311. package/web-shell/assets/{cose-bilkent-JH36ORCC-bqnC4Oq-.js → cose-bilkent-JH36ORCC-DWm6lfOG.js} +1 -1
  312. package/web-shell/assets/{cynefin-OW5HDTMX-mDRBhRzB.js → cynefin-OW5HDTMX-DcBUyr5R.js} +1 -1
  313. package/web-shell/assets/{cynefinDiagram-5FMLGOSQ-B4Tod_Ik.js → cynefinDiagram-5FMLGOSQ-Df8qmd_p.js} +1 -1
  314. package/web-shell/assets/{dagre-3AP2YEHR-DU9f-iCw.js → dagre-3AP2YEHR-DDmGspD7.js} +1 -1
  315. package/web-shell/assets/{diagram-S7CK7UJ4-BsYVeB7c.js → diagram-S7CK7UJ4-BK_qFvbi.js} +1 -1
  316. package/web-shell/assets/{diagram-UQ7AKVKN-frM5Sn9C.js → diagram-UQ7AKVKN-Uw3AP_bi.js} +1 -1
  317. package/web-shell/assets/{diagram-VSXAHHWV-C1Z7uZdv.js → diagram-VSXAHHWV-CJOQKxY7.js} +1 -1
  318. package/web-shell/assets/{diagram-VX7I27RA-CIY4x0M9.js → diagram-VX7I27RA-DhdvZna5.js} +1 -1
  319. package/web-shell/assets/{diagram-Z3DM3KII-hTl4GIbg.js → diagram-Z3DM3KII-edQU0nlP.js} +1 -1
  320. package/web-shell/assets/{ebnfDiagram-PWID7BFC-4loIGTHZ.js → ebnfDiagram-PWID7BFC-4kugBEsO.js} +1 -1
  321. package/web-shell/assets/{erDiagram-SSCWMZ5O-B9Up14ul.js → erDiagram-SSCWMZ5O-BMkFivWO.js} +1 -1
  322. package/web-shell/assets/{flowDiagram-A5DVABFB-CIPfQBl9.js → flowDiagram-A5DVABFB-BM1ea8g-.js} +1 -1
  323. package/web-shell/assets/{ganttDiagram-EL5Y4UJY-DaZk3lrl.js → ganttDiagram-EL5Y4UJY-CXj_cKRf.js} +1 -1
  324. package/web-shell/assets/{gitGraphDiagram-WWUBYQGX-D-knAHoQ.js → gitGraphDiagram-WWUBYQGX-D0nEqwqu.js} +1 -1
  325. package/web-shell/assets/{index-Di8dYJlQ.js → index-B6JN54Pd.js} +1 -1
  326. package/web-shell/assets/{index-RNKRtdDf.css → index-C-XlQn24.css} +1 -1
  327. package/web-shell/assets/{index-pkWucfFU.js → index-DLjXM0dn.js} +367 -367
  328. package/web-shell/assets/{infoDiagram-RXCK75RN-7AJndIyq.js → infoDiagram-RXCK75RN-DF7aGGbQ.js} +1 -1
  329. package/web-shell/assets/{ishikawaDiagram-5VMMS53U-DjIU3IKv.js → ishikawaDiagram-5VMMS53U-CZYNX1lL.js} +1 -1
  330. package/web-shell/assets/{journeyDiagram-EYS64GPL-D3cf3462.js → journeyDiagram-EYS64GPL-CvrqMUz1.js} +1 -1
  331. package/web-shell/assets/{kanban-definition-3QL26DDD-CmuPjlRe.js → kanban-definition-3QL26DDD-BZNJQZBj.js} +1 -1
  332. package/web-shell/assets/{layout-C2Ci1XAx.js → layout-Bf83x7D6.js} +1 -1
  333. package/web-shell/assets/{linear-CqOKGHue.js → linear-Bkc3ES2f.js} +1 -1
  334. package/web-shell/assets/{mermaid.core-Bnt57s5_.js → mermaid.core-C6xuovwz.js} +6 -6
  335. package/web-shell/assets/{mindmap-definition-FBJOCRG2-BSSJVfj3.js → mindmap-definition-FBJOCRG2-DzH6gVRg.js} +1 -1
  336. package/web-shell/assets/{pegDiagram-XKGWAZYB-DNLHwge4.js → pegDiagram-XKGWAZYB-DCvLh2fa.js} +1 -1
  337. package/web-shell/assets/{pieDiagram-E7YTZNPT-CYRSio_9.js → pieDiagram-E7YTZNPT-BtjVlx_6.js} +1 -1
  338. package/web-shell/assets/{quadrantDiagram-AXDQQJYC-CzSwKETq.js → quadrantDiagram-AXDQQJYC-IbroqxFe.js} +1 -1
  339. package/web-shell/assets/{railroadDiagram-O6MQD6OU-Dzbg_Jis.js → railroadDiagram-O6MQD6OU-BvMykiWW.js} +1 -1
  340. package/web-shell/assets/{requirementDiagram-EFPCY7ZU-CY3Apuzl.js → requirementDiagram-EFPCY7ZU-D-HHMyrh.js} +1 -1
  341. package/web-shell/assets/{sankeyDiagram-P5KCCOFB-432Hiv50.js → sankeyDiagram-P5KCCOFB-C0XXhB6d.js} +1 -1
  342. package/web-shell/assets/{sequenceDiagram-WJ2MYXX4-CucAf-fk.js → sequenceDiagram-WJ2MYXX4-DseAXj5d.js} +1 -1
  343. package/web-shell/assets/{sizeCapture-X5ZJPWSS-RBc9fiXv.js → sizeCapture-X5ZJPWSS-Cek2EweK.js} +1 -1
  344. package/web-shell/assets/{stateDiagram-HBIQ2CUA-BwsgjK6k.js → stateDiagram-HBIQ2CUA-yLv8wafW.js} +1 -1
  345. package/web-shell/assets/stateDiagram-v2-4QOOHH4V-DeThXnol.js +1 -0
  346. package/web-shell/assets/{swimlanes-XN3QIQJK-DMMYIqPz.js → swimlanes-XN3QIQJK-Cwz-opvE.js} +1 -1
  347. package/web-shell/assets/swimlanesDiagram-VK2B7HYN-GW0R1ZSv.js +8 -0
  348. package/web-shell/assets/{timeline-definition-24CTP7MA-BbmmEMJb.js → timeline-definition-24CTP7MA-BJuFD7OG.js} +1 -1
  349. package/web-shell/assets/{vennDiagram-4TSXK5OY-DlfQjNzM.js → vennDiagram-4TSXK5OY-CNAavdoV.js} +1 -1
  350. package/web-shell/assets/{wardleyDiagram-VM6X3IG4-86EXFbP6.js → wardleyDiagram-VM6X3IG4-DaIjAidq.js} +1 -1
  351. package/web-shell/assets/{xychartDiagram-S5SC5T6Z-794nZBSV.js → xychartDiagram-S5SC5T6Z-DkcQXjTy.js} +1 -1
  352. package/web-shell/index.html +2 -2
  353. package/chunks/MaxSizedBox-RQWAKXYC.js +0 -111
  354. package/chunks/agent-headless-YBSOXERA.js +0 -87
  355. package/chunks/channel-settings-store-DD6W3EJQ.js +0 -116
  356. package/chunks/config-utils-WXWWMH2D.js +0 -112
  357. package/chunks/contextCommand-UKPGPBW5.js +0 -107
  358. package/chunks/daemon-status-provider-D2HNWRDK.js +0 -116
  359. package/chunks/daemon-trust-policy-F4JM5CKX.js +0 -113
  360. package/chunks/earlyInputCapture-54M7AWAF.js +0 -108
  361. package/chunks/handleAutoUpdate-T36AMYVP.js +0 -110
  362. package/chunks/initializer-6USYPDX7.js +0 -114
  363. package/chunks/installationInfo-46TRIE5M.js +0 -108
  364. package/chunks/list-BCX6JAYS.js +0 -117
  365. package/chunks/loadedSettingsAdapter-7OBB7B6J.js +0 -111
  366. package/chunks/mcp-FCS6V74Y.js +0 -111
  367. package/chunks/nonInteractiveCli-CQUUSJ3N.js +0 -180
  368. package/chunks/pidfile-SIEQM3X5.js +0 -112
  369. package/chunks/prompt-terminal-ledger-YIAGDBHG.js +0 -106
  370. package/chunks/theme-manager-73W4SEDX.js +0 -103
  371. package/chunks/useAutoAcceptIndicator-SMCU7IYQ.js +0 -121
  372. package/chunks/workspace-providers-status-ZYXLTCJ5.js +0 -115
  373. package/chunks/workspace-skills-status-ZVFYCT5C.js +0 -114
  374. package/chunks/write-file-2KVXXVWB.js +0 -90
  375. package/web-shell/assets/channel-DggMZLoL.js +0 -1
  376. package/web-shell/assets/classDiagram-DTDB5LWJ-DPMQMV0q.js +0 -1
  377. package/web-shell/assets/classDiagram-v2-JRS7N3AN-DPMQMV0q.js +0 -1
  378. package/web-shell/assets/stateDiagram-v2-4QOOHH4V-C_HLER48.js +0 -1
  379. package/web-shell/assets/swimlanesDiagram-VK2B7HYN-KP0j5nd5.js +0 -8
@@ -0,0 +1,346 @@
1
+ // Force strict mode and setup for ESM
2
+ "use strict";
3
+ import {
4
+ hasControlCharacter
5
+ } from "./chunk-SKNVVYIJ.js";
6
+ import {
7
+ BaseDeclarativeTool,
8
+ BaseToolInvocation,
9
+ ToolDisplayNames,
10
+ ToolNames
11
+ } from "./chunk-KOJ6MHD5.js";
12
+ import {
13
+ init_esbuild_shims
14
+ } from "./chunk-5O2XNYP6.js";
15
+ import {
16
+ __name
17
+ } from "./chunk-J2S4EL5Y.js";
18
+
19
+ // packages/core/src/tools/report-findings.ts
20
+ init_esbuild_shims();
21
+ var FINDING_SEVERITIES = [
22
+ "Critical",
23
+ "Suggestion",
24
+ "Nice to have"
25
+ ];
26
+ var FINDING_CONFIDENCES = ["high", "low"];
27
+ var FINDING_OUTCOMES = [
28
+ "fixed",
29
+ "skipped",
30
+ "no_change_needed"
31
+ ];
32
+ var FINDING_SOURCES = [
33
+ "review",
34
+ "build",
35
+ "test",
36
+ "probe",
37
+ "lint"
38
+ ];
39
+ var REPORT_FINDINGS_LEVELS = ["low", "medium", "high"];
40
+ var REPORT_FINDINGS_MAX = 50;
41
+ var SHORT_SUMMARY_MAX = 60;
42
+ var REPORT_FINDINGS_FILE_MAX = 4096;
43
+ function compressFindingSummary(summary, max = SHORT_SUMMARY_MAX) {
44
+ const flat = summary.replace(/\s+/g, " ").trim();
45
+ if (flat.length <= max) return flat;
46
+ let head = flat.slice(0, max - 1);
47
+ const lastUnit = head.charCodeAt(head.length - 1);
48
+ if (lastUnit >= 55296 && lastUnit <= 56319) {
49
+ head = head.slice(0, -1);
50
+ }
51
+ const space = head.lastIndexOf(" ");
52
+ const cut = space >= max * 0.6 ? head.slice(0, space) : head;
53
+ return `${cut.trimEnd()}\u2026`;
54
+ }
55
+ __name(compressFindingSummary, "compressFindingSummary");
56
+ var DESCRIPTION = `Reports code-review findings as typed data so clients (the terminal UI, the Web Shell, ACP hosts) can render a per-finding list. Use it only when an active review flow (such as the bundled review skill) instructs you to report findings with it; otherwise present findings as ordinary text. Call it once per report with the complete list, most severe first \u2014 a later call replaces the whole list, it never appends. When the review wrote a findings artifact, copy each field verbatim from it (id, severity, confidence, source, file/line, summary, shortSummary, failureScenario, category); do not re-derive or re-word values \u2014 the artifact is the oracle.
57
+
58
+ After fixes are applied \u2014 at the review's own fix step, or ANY later time in the session a reported finding's disposition changes \u2014 call it again with the same findings, each carrying "outcome" ("fixed", "skipped", or "no_change_needed"; "outcomeNote" for the reason). Client per-finding status trusts only a call that carries outcomes, and a call where some findings carry an outcome and others do not is refused: account for every finding.
59
+
60
+ This tool renders data for the client and nothing else: it persists nothing, decides no verdict, and a failure is a UI-delivery failure \u2014 disclose it and move on without changing the review's artifacts or verdict.`;
61
+ var FINDING_ITEM_SCHEMA = {
62
+ type: "object",
63
+ additionalProperties: false,
64
+ properties: {
65
+ id: {
66
+ type: "string",
67
+ maxLength: 64,
68
+ description: 'The findings artifact id (e.g. "R1-2"), when the review produced one.'
69
+ },
70
+ severity: {
71
+ type: "string",
72
+ enum: [...FINDING_SEVERITIES]
73
+ },
74
+ confidence: {
75
+ type: "string",
76
+ enum: [...FINDING_CONFIDENCES],
77
+ description: "Verification confidence. Omit on an unverified (low-effort) pass."
78
+ },
79
+ source: {
80
+ type: "string",
81
+ enum: [...FINDING_SOURCES],
82
+ description: 'Where the finding came from. Defaults to "review".'
83
+ },
84
+ file: {
85
+ type: "string",
86
+ maxLength: REPORT_FINDINGS_FILE_MAX,
87
+ description: `Repo-relative path, or the review's "(body)" stand-in for an unanchored finding.`
88
+ },
89
+ line: {
90
+ type: "integer",
91
+ minimum: 1
92
+ },
93
+ summary: {
94
+ type: "string",
95
+ maxLength: 2e3,
96
+ description: "One sentence stating the defect."
97
+ },
98
+ shortSummary: {
99
+ type: "string",
100
+ description: `Compressed label for a compact list UI (<= ${SHORT_SUMMARY_MAX} characters; longer values are compressed, and it is derived from "summary" when absent).`
101
+ },
102
+ failureScenario: {
103
+ type: "string",
104
+ maxLength: 4e3,
105
+ description: "The concrete trigger and wrong outcome."
106
+ },
107
+ category: {
108
+ type: "string",
109
+ maxLength: 64,
110
+ description: 'Free-form kebab-case tag ("correctness", "security", "test-coverage", \u2026).'
111
+ },
112
+ outcome: {
113
+ type: "string",
114
+ enum: [...FINDING_OUTCOMES],
115
+ description: "Set ONLY on a re-report after fixes were applied: what happened to this finding. All findings in the call must carry one, or none."
116
+ },
117
+ outcomeNote: {
118
+ type: "string",
119
+ maxLength: 1e3,
120
+ description: `The fixer's reason \u2014 required reading for "skipped".`
121
+ }
122
+ },
123
+ required: ["severity", "file", "summary", "failureScenario"]
124
+ };
125
+ var ReportFindingsInvocation = class extends BaseToolInvocation {
126
+ constructor(params, commitActiveReport) {
127
+ super(params);
128
+ this.commitActiveReport = commitActiveReport;
129
+ }
130
+ static {
131
+ __name(this, "ReportFindingsInvocation");
132
+ }
133
+ getDescription() {
134
+ const n = this.params.findings.length;
135
+ return `Report ${n} finding${n === 1 ? "" : "s"}`;
136
+ }
137
+ async execute(_signal) {
138
+ const findings = sortReportedFindings(
139
+ this.params.findings.map(normalizeFinding)
140
+ );
141
+ const display = {
142
+ type: "findings_list",
143
+ ...this.params.level ? { level: this.params.level } : {},
144
+ findings
145
+ };
146
+ const bySeverity = FINDING_SEVERITIES.map((severity) => {
147
+ const count = findings.filter((f) => f.severity === severity).length;
148
+ return count > 0 ? `${count} ${severity}` : void 0;
149
+ }).filter((part) => part !== void 0);
150
+ const withOutcomes = findings.length > 0 && findings[0].outcome ? ` with outcomes (${FINDING_OUTCOMES.map((outcome) => {
151
+ const count = findings.filter((f) => f.outcome === outcome).length;
152
+ return count > 0 ? `${count} ${outcome}` : void 0;
153
+ }).filter(Boolean).join(", ")})` : "";
154
+ const summaryLine = findings.length === 0 ? "Reported an empty findings list to the client UI." : `Reported ${findings.length} finding${findings.length === 1 ? "" : "s"} to the client UI (${bySeverity.join(", ")})${withOutcomes}.`;
155
+ this.commitActiveReport(reportIdentity(this.params.findings));
156
+ return {
157
+ llmContent: `${summaryLine} Nothing was persisted; the review's findings artifact remains the canonical record.`,
158
+ returnDisplay: display
159
+ };
160
+ }
161
+ };
162
+ function normalizeFinding(raw) {
163
+ const shortSource = raw.shortSummary?.trim() || raw.summary;
164
+ return {
165
+ ...raw.id?.trim() ? { id: raw.id.trim() } : {},
166
+ severity: raw.severity,
167
+ ...raw.confidence ? { confidence: raw.confidence } : {},
168
+ ...raw.source ? { source: raw.source } : {},
169
+ file: raw.file.trim(),
170
+ ...raw.line !== void 0 ? { line: raw.line } : {},
171
+ summary: raw.summary.trim(),
172
+ shortSummary: compressFindingSummary(shortSource),
173
+ failureScenario: raw.failureScenario.trim(),
174
+ ...raw.category?.trim() ? { category: raw.category.trim() } : {},
175
+ ...raw.outcome ? { outcome: raw.outcome } : {},
176
+ ...raw.outcomeNote?.trim() ? { outcomeNote: raw.outcomeNote.trim() } : {}
177
+ };
178
+ }
179
+ __name(normalizeFinding, "normalizeFinding");
180
+ function sortReportedFindings(findings) {
181
+ const confidenceRank = /* @__PURE__ */ __name((c) => c === "high" ? 0 : c === void 0 ? 1 : 2, "confidenceRank");
182
+ return [...findings].sort((a, b) => {
183
+ const severity = FINDING_SEVERITIES.indexOf(a.severity) - FINDING_SEVERITIES.indexOf(b.severity);
184
+ if (severity !== 0) return severity;
185
+ const confidence = confidenceRank(a.confidence) - confidenceRank(b.confidence);
186
+ if (confidence !== 0) return confidence;
187
+ if (a.file !== b.file) return a.file < b.file ? -1 : 1;
188
+ const line = (a.line ?? 0) - (b.line ?? 0);
189
+ if (line !== 0) return line;
190
+ const aId = a.id ?? "";
191
+ const bId = b.id ?? "";
192
+ return aId < bId ? -1 : aId > bId ? 1 : 0;
193
+ });
194
+ }
195
+ __name(sortReportedFindings, "sortReportedFindings");
196
+ var ReportFindingsTool = class _ReportFindingsTool extends BaseDeclarativeTool {
197
+ static {
198
+ __name(this, "ReportFindingsTool");
199
+ }
200
+ static Name = ToolNames.REPORT_FINDINGS;
201
+ // Id set of the most recent DELIVERED report whose findings all carried
202
+ // ids, committed in the invocation's execute(). An outcome call replaces
203
+ // the whole list, so it must match this identity in full; undefined when
204
+ // there is no identity to join on (no report yet, or a low-effort report
205
+ // without artifact ids).
206
+ //
207
+ // The gate is a contract about the live process, not a persisted one: the
208
+ // tool instance is cached by the registry for the session, but a cold
209
+ // session resume (--resume, a daemon or process restart) constructs a
210
+ // fresh instance with no active identity. That is the documented limit of
211
+ // the join — after a restart an outcome call is validated on its own
212
+ // terms (all-or-nothing outcomes) instead of against the pre-restart
213
+ // report — and the transcript surfaces render the same replacement (the
214
+ // last delivered list wins) independently of this gate.
215
+ activeReportIds;
216
+ constructor() {
217
+ super(
218
+ _ReportFindingsTool.Name,
219
+ ToolDisplayNames.REPORT_FINDINGS,
220
+ DESCRIPTION,
221
+ "think" /* Think */,
222
+ {
223
+ type: "object",
224
+ additionalProperties: false,
225
+ properties: {
226
+ level: {
227
+ type: "string",
228
+ enum: [...REPORT_FINDINGS_LEVELS],
229
+ description: "The review effort the findings came from."
230
+ },
231
+ findings: {
232
+ type: "array",
233
+ maxItems: REPORT_FINDINGS_MAX,
234
+ items: FINDING_ITEM_SCHEMA,
235
+ description: 'The complete findings list, most severe first. An empty array is a valid "nothing found" report.'
236
+ }
237
+ },
238
+ required: ["findings"]
239
+ },
240
+ true,
241
+ false,
242
+ true,
243
+ false,
244
+ "review findings report code-review severity outcome fixed"
245
+ );
246
+ }
247
+ validateToolParamValues(params) {
248
+ const seenIds = /* @__PURE__ */ new Set();
249
+ let withOutcome = 0;
250
+ for (const [index, finding] of params.findings.entries()) {
251
+ for (const [field, value] of Object.entries({
252
+ id: finding.id,
253
+ file: finding.file,
254
+ summary: finding.summary,
255
+ shortSummary: finding.shortSummary,
256
+ failureScenario: finding.failureScenario,
257
+ category: finding.category,
258
+ outcomeNote: finding.outcomeNote
259
+ })) {
260
+ if (value === void 0) continue;
261
+ if (hasControlCharacter(
262
+ value,
263
+ field === "summary" || field === "failureScenario" || field === "outcomeNote"
264
+ )) {
265
+ return `Finding at index ${index}: "${field}" contains control characters`;
266
+ }
267
+ }
268
+ if (!finding.file.trim()) {
269
+ return `Finding at index ${index}: "file" must not be empty`;
270
+ }
271
+ if (!finding.summary.trim()) {
272
+ return `Finding at index ${index}: "summary" must not be empty`;
273
+ }
274
+ if (!finding.failureScenario.trim()) {
275
+ return `Finding at index ${index}: "failureScenario" must not be empty`;
276
+ }
277
+ if (finding.line !== void 0 && !Number.isSafeInteger(finding.line)) {
278
+ return `Finding at index ${index}: "line" must be an integer within JavaScript's safe range`;
279
+ }
280
+ if (finding.outcome === "skipped" && !finding.outcomeNote?.trim()) {
281
+ return `Finding at index ${index}: "outcomeNote" is required when "outcome" is "skipped" \u2014 the reader is owed the reason for work not done`;
282
+ }
283
+ const id = finding.id?.trim();
284
+ if (id) {
285
+ if (seenIds.has(id)) {
286
+ return `Finding at index ${index}: duplicate id "${id}"`;
287
+ }
288
+ seenIds.add(id);
289
+ }
290
+ if (finding.outcome) withOutcome++;
291
+ }
292
+ if (withOutcome > 0 && withOutcome < params.findings.length) {
293
+ return `${withOutcome} of ${params.findings.length} findings carry an "outcome". Outcomes account for every finding or none: a partial set silently shortens the list. Add the missing outcomes (or remove them all) and call again.`;
294
+ }
295
+ const activeIds = this.activeReportIds;
296
+ if (withOutcome === params.findings.length && params.findings.length > 0 && activeIds !== void 0) {
297
+ const newIds = new Set(
298
+ params.findings.map((finding) => finding.id?.trim() ?? "")
299
+ );
300
+ const missing = [...activeIds].filter((id) => !newIds.has(id));
301
+ if (missing.length > 0) {
302
+ return `Outcome report drops ${missing.length} finding(s) from the active report: ${missing.map((id) => JSON.stringify(id)).join(
303
+ ", "
304
+ )}. An outcome call replaces the whole list \u2014 re-report every active finding with its outcome.`;
305
+ }
306
+ const unknown = [...newIds].filter(
307
+ (id) => id === "" || !activeIds.has(id)
308
+ );
309
+ if (unknown.length > 0) {
310
+ return `Outcome report carries finding(s) the active report does not have: ${unknown.map((id) => id === "" ? "(missing id)" : JSON.stringify(id)).join(", ")}. Outcomes join back to the active report by id.`;
311
+ }
312
+ }
313
+ return null;
314
+ }
315
+ createInvocation(params) {
316
+ return new ReportFindingsInvocation(params, (identity) => {
317
+ this.activeReportIds = identity;
318
+ });
319
+ }
320
+ };
321
+ function reportIdentity(findings) {
322
+ const ids = findings.map((finding) => finding.id?.trim() ?? "");
323
+ if (findings.length === 0 || ids.some((id) => id === "")) {
324
+ return void 0;
325
+ }
326
+ return new Set(ids);
327
+ }
328
+ __name(reportIdentity, "reportIdentity");
329
+
330
+ export {
331
+ FINDING_SEVERITIES,
332
+ FINDING_CONFIDENCES,
333
+ FINDING_OUTCOMES,
334
+ FINDING_SOURCES,
335
+ REPORT_FINDINGS_LEVELS,
336
+ REPORT_FINDINGS_MAX,
337
+ SHORT_SUMMARY_MAX,
338
+ REPORT_FINDINGS_FILE_MAX,
339
+ compressFindingSummary,
340
+ ReportFindingsTool
341
+ };
342
+ /**
343
+ * @license
344
+ * Copyright 2026 Qwen Team
345
+ * SPDX-License-Identifier: Apache-2.0
346
+ */
@@ -3,21 +3,21 @@
3
3
  import {
4
4
  collectAvailableSkillEntries,
5
5
  renderAvailableSkillsBlock
6
- } from "./chunk-K623ENWT.js";
6
+ } from "./chunk-E6FGMDFQ.js";
7
7
  import {
8
8
  escapeSystemReminderTags
9
9
  } from "./chunk-AQ37AY7B.js";
10
10
  import {
11
11
  DEFAULT_FILE_FILTERING_OPTIONS
12
- } from "./chunk-SJLW5XGQ.js";
12
+ } from "./chunk-RRKNX553.js";
13
13
  import {
14
14
  ToolNames
15
- } from "./chunk-3LUGIYS3.js";
15
+ } from "./chunk-KOJ6MHD5.js";
16
16
  import {
17
17
  createDebugLogger,
18
18
  getErrorMessage,
19
19
  isNodeError
20
- } from "./chunk-VLEGGCEA.js";
20
+ } from "./chunk-2NNTE2ED.js";
21
21
  import {
22
22
  init_esbuild_shims
23
23
  } from "./chunk-5O2XNYP6.js";
@@ -692,7 +692,7 @@ __name(resolveForkExecutionAllowedTools, "resolveForkExecutionAllowedTools");
692
692
  function registerForkDisplayImageForCache(config, advertisedToolNames) {
693
693
  if (!advertisedToolNames.includes(ToolNames.DISPLAY_IMAGE)) return;
694
694
  config.getToolRegistry().registerFactory(ToolNames.DISPLAY_IMAGE, async () => {
695
- const { DisplayImageTool } = await import("./display-image-HOBBUJS5.js");
695
+ const { DisplayImageTool } = await import("./display-image-DR55LL6M.js");
696
696
  return new DisplayImageTool(config);
697
697
  });
698
698
  }
@@ -5,7 +5,7 @@ import {
5
5
  } from "./chunk-M5GB774H.js";
6
6
  import {
7
7
  sanitizeLogText
8
- } from "./chunk-NFDTDV37.js";
8
+ } from "./chunk-E55H6BZ7.js";
9
9
  import {
10
10
  stripAnsi
11
11
  } from "./chunk-TWPJO254.js";
@@ -2,34 +2,34 @@
2
2
  "use strict";
3
3
  import {
4
4
  appEvents
5
- } from "./chunk-EJ2GPZDU.js";
5
+ } from "./chunk-ZXDM7DYV.js";
6
6
  import {
7
7
  CUSTOM_SANDBOX_IMAGE_ENV_VAR,
8
8
  HOST_UPDATE_RELAUNCH_ENV_VAR,
9
9
  SKIP_UPDATE_CHECK_ENV_VAR,
10
10
  requestUpdateOnExit
11
- } from "./chunk-XYUJPDPB.js";
11
+ } from "./chunk-NVK4HJYQ.js";
12
12
  import {
13
13
  loadUndici
14
14
  } from "./chunk-TXASDT2M.js";
15
15
  import {
16
16
  getAllProviderBaseUrls
17
- } from "./chunk-DLYJ3RN7.js";
17
+ } from "./chunk-VMDURMFY.js";
18
18
  import {
19
19
  IdeClient
20
- } from "./chunk-UFWRXRQ5.js";
20
+ } from "./chunk-XYX474JQ.js";
21
21
  import {
22
22
  detectRuntime,
23
23
  getOrCreateSharedDispatcher,
24
24
  preloadRuntimeFetchModule,
25
25
  redactProxyCredentials
26
- } from "./chunk-FNZ42WN7.js";
26
+ } from "./chunk-GTUKW3I6.js";
27
27
  import {
28
28
  initializeTelemetry
29
- } from "./chunk-ZJWFRMCY.js";
29
+ } from "./chunk-6US7BF3G.js";
30
30
  import {
31
31
  createDebugLogger
32
- } from "./chunk-VLEGGCEA.js";
32
+ } from "./chunk-2NNTE2ED.js";
33
33
  import {
34
34
  recordStartupEvent
35
35
  } from "./chunk-QILD6R27.js";
@@ -233,11 +233,11 @@ function startPostRenderPrefetches(config, settings, options = {}) {
233
233
  { updateEventEmitter },
234
234
  { t }
235
235
  ] = await Promise.all([
236
- import("./updateCheck-K6WUHPPT.js"),
237
- import("./handleAutoUpdate-T36AMYVP.js"),
238
- import("./installationInfo-46TRIE5M.js"),
236
+ import("./updateCheck-6JRTKTUF.js"),
237
+ import("./handleAutoUpdate-AWAGHKOX.js"),
238
+ import("./installationInfo-N3DCWVWR.js"),
239
239
  import("./updateEventEmitter-5MKC7BLQ.js"),
240
- import("./i18n-Q6K7AX7Y.js")
240
+ import("./i18n-CYA25C5F.js")
241
241
  ]);
242
242
  const updateCheckSkippedMessage = /* @__PURE__ */ __name((error) => t("Update check skipped ({{reason}}) \u2014 run /update to retry.", {
243
243
  reason: describeUpdateCheckFailure(error)
@@ -310,7 +310,7 @@ ${t(
310
310
  state: "connecting"
311
311
  });
312
312
  try {
313
- const { connectIdeForStartup } = await import("./initializer-6USYPDX7.js");
313
+ const { connectIdeForStartup } = await import("./initializer-JD2FLNLO.js");
314
314
  await withTimeout(
315
315
  connectIdeForStartup(config),
316
316
  "ide_connect",
@@ -334,7 +334,7 @@ ${t(
334
334
  }
335
335
  if (config.isInteractive()) {
336
336
  runDeferredTask("background_housekeeping", async () => {
337
- const { startBackgroundHousekeeping } = await import("./scheduler-YNVAANNX.js");
337
+ const { startBackgroundHousekeeping } = await import("./scheduler-M6YL4K4I.js");
338
338
  startBackgroundHousekeeping(config, settings);
339
339
  });
340
340
  }
@@ -2,25 +2,25 @@
2
2
  "use strict";
3
3
  import {
4
4
  t
5
- } from "./chunk-E6BJFSLJ.js";
5
+ } from "./chunk-W2WRNJKX.js";
6
6
  import {
7
7
  computeThresholds,
8
8
  formatContextFileDisplayPath,
9
9
  getMainSessionBaseSystemPrompt
10
- } from "./chunk-UFWRXRQ5.js";
10
+ } from "./chunk-XYX474JQ.js";
11
11
  import {
12
12
  DiscoveredMCPTool,
13
13
  uiTelemetryService
14
- } from "./chunk-EUZE3GSL.js";
14
+ } from "./chunk-UX3IFLJM.js";
15
15
  import {
16
16
  DEFAULT_TOKEN_LIMIT
17
17
  } from "./chunk-FPGTNKCP.js";
18
18
  import {
19
19
  buildSkillLlmContent
20
- } from "./chunk-K623ENWT.js";
20
+ } from "./chunk-E6FGMDFQ.js";
21
21
  import {
22
22
  ToolNames
23
- } from "./chunk-3LUGIYS3.js";
23
+ } from "./chunk-KOJ6MHD5.js";
24
24
  import {
25
25
  init_esbuild_shims
26
26
  } from "./chunk-5O2XNYP6.js";
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  createDebugLogger
5
- } from "./chunk-VLEGGCEA.js";
5
+ } from "./chunk-2NNTE2ED.js";
6
6
  import {
7
7
  init_esbuild_shims
8
8
  } from "./chunk-5O2XNYP6.js";
@@ -15648,6 +15648,7 @@ var ToolNames = {
15648
15648
  WORKFLOW: "workflow",
15649
15649
  ARTIFACT: "artifact",
15650
15650
  RECORD_ARTIFACT: "record_artifact",
15651
+ REPORT_FINDINGS: "report_findings",
15651
15652
  GET_GOAL: "get_goal",
15652
15653
  UPDATE_GOAL: "update_goal",
15653
15654
  DISPLAY_IMAGE: "display_image"
@@ -15697,6 +15698,7 @@ var ToolDisplayNames = {
15697
15698
  WORKFLOW: "Workflow",
15698
15699
  ARTIFACT: "Artifact",
15699
15700
  RECORD_ARTIFACT: "RecordArtifact",
15701
+ REPORT_FINDINGS: "ReportFindings",
15700
15702
  GET_GOAL: "Goal",
15701
15703
  UPDATE_GOAL: "UpdateGoal",
15702
15704
  DISPLAY_IMAGE: "DisplayImage"
@@ -7,13 +7,13 @@ import {
7
7
  jsonStringPayloadByteLength,
8
8
  observeAcpToolResultProjection,
9
9
  truncateJsonStringPayload
10
- } from "./chunk-SNWAXNJ4.js";
10
+ } from "./chunk-HJOWQUE2.js";
11
11
  import {
12
12
  normalizeSessionIdForLookup
13
13
  } from "./chunk-ZEZKIS2K.js";
14
14
  import {
15
15
  isA2uiToolMeta
16
- } from "./chunk-KUPVZ4EO.js";
16
+ } from "./chunk-I6YW3T3W.js";
17
17
  import {
18
18
  ChannelDeliveryError,
19
19
  MAX_CHANNEL_DELIVERY_TEXT_LENGTH
@@ -25,15 +25,15 @@ import {
25
25
  getResponseText,
26
26
  lastHistoryContentFromRecords,
27
27
  restorableAskUserQuestionCallIds
28
- } from "./chunk-UFWRXRQ5.js";
28
+ } from "./chunk-XYX474JQ.js";
29
29
  import {
30
30
  MAX_CHANNEL_DELIVERY_NAME_LENGTH,
31
31
  MAX_CHANNEL_DELIVERY_TARGET_ID_LENGTH
32
- } from "./chunk-KDGY3ST4.js";
32
+ } from "./chunk-JECO75XD.js";
33
33
  import {
34
34
  parseGoalSnapshotV2,
35
35
  parseGoalStateCause
36
- } from "./chunk-WANR3VVK.js";
36
+ } from "./chunk-FN5C6C7G.js";
37
37
  import {
38
38
  init_esbuild_shims
39
39
  } from "./chunk-5O2XNYP6.js";
@@ -930,7 +930,8 @@ async function collectHistoryReplayUpdates({
930
930
  replayState,
931
931
  goalBootstrap,
932
932
  limits,
933
- suppressRestoreAskUserQuestion
933
+ suppressRestoreAskUserQuestion,
934
+ finalizeDangling
934
935
  }) {
935
936
  const updates = [];
936
937
  try {
@@ -947,7 +948,8 @@ async function collectHistoryReplayUpdates({
947
948
  ...initial.goalState ? { initialGoalState: initial.goalState } : {},
948
949
  ...initial.goalCause ? { initialGoalCause: initial.goalCause } : {},
949
950
  ...goalBootstrap ? { goalBootstrap } : {},
950
- ...skipFinalizeCallIds ? { skipFinalizeCallIds } : {}
951
+ ...skipFinalizeCallIds ? { skipFinalizeCallIds } : {},
952
+ ...finalizeDangling === void 0 ? {} : { finalizeDangling }
951
953
  });
952
954
  } catch (error) {
953
955
  if (error instanceof HistoryReplayLimitError) throw error;
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  t
5
- } from "./chunk-E6BJFSLJ.js";
5
+ } from "./chunk-W2WRNJKX.js";
6
6
  import {
7
7
  init_esbuild_shims
8
8
  } from "./chunk-5O2XNYP6.js";
@@ -2,20 +2,20 @@
2
2
  "use strict";
3
3
  import {
4
4
  functionResponsePartsToString
5
- } from "./chunk-U7GJPTEY.js";
5
+ } from "./chunk-2YEZNBSD.js";
6
6
  import {
7
7
  observeHeadlessToolResultProjection,
8
8
  observeHeadlessToolResultWire,
9
9
  projectJsonStringToByteBudget
10
- } from "./chunk-SNWAXNJ4.js";
10
+ } from "./chunk-HJOWQUE2.js";
11
11
  import {
12
12
  parseAndFormatApiError,
13
13
  toolResultBoundaryArtifact
14
- } from "./chunk-UFWRXRQ5.js";
14
+ } from "./chunk-XYX474JQ.js";
15
15
  import {
16
16
  formatVisionBridgeNoticeDisplay,
17
17
  isVisionBridgeNoticeDisplay
18
- } from "./chunk-EUZE3GSL.js";
18
+ } from "./chunk-UX3IFLJM.js";
19
19
  import {
20
20
  init_esbuild_shims
21
21
  } from "./chunk-5O2XNYP6.js";
@@ -2,19 +2,19 @@
2
2
  "use strict";
3
3
  import {
4
4
  isCommandAvailable
5
- } from "./chunk-5X33EPHJ.js";
5
+ } from "./chunk-T6OODF2U.js";
6
6
  import {
7
7
  fileExists,
8
8
  isWithinRoot
9
- } from "./chunk-QKGJIP2H.js";
9
+ } from "./chunk-WBT3STGU.js";
10
10
  import {
11
11
  atomicWriteJSON
12
- } from "./chunk-UEY5WCRB.js";
12
+ } from "./chunk-7QGEJI7M.js";
13
13
  import {
14
14
  Storage,
15
15
  createDebugLogger,
16
16
  isNodeError
17
- } from "./chunk-VLEGGCEA.js";
17
+ } from "./chunk-2NNTE2ED.js";
18
18
  import {
19
19
  init_esbuild_shims
20
20
  } from "./chunk-5O2XNYP6.js";
@@ -8,7 +8,7 @@ import {
8
8
  BaseToolInvocation,
9
9
  ToolDisplayNames,
10
10
  ToolNames
11
- } from "./chunk-3LUGIYS3.js";
11
+ } from "./chunk-KOJ6MHD5.js";
12
12
  import {
13
13
  init_esbuild_shims
14
14
  } from "./chunk-5O2XNYP6.js";