@qwen-code/qwen-code 0.22.0 → 0.22.2-nightly.20260828.7357136dd1

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 (483) hide show
  1. package/bundled/computer-use/SKILL.md +229 -0
  2. package/bundled/computer-use/agents/openai.yaml +4 -0
  3. package/bundled/coordinate/SKILL.md +5 -5
  4. package/bundled/goal-draft/SKILL.md +109 -0
  5. package/bundled/qc-helper/docs/configuration/auth.md +7 -7
  6. package/bundled/qc-helper/docs/configuration/model-providers.md +70 -9
  7. package/bundled/qc-helper/docs/configuration/settings.md +48 -48
  8. package/bundled/qc-helper/docs/extension/introduction.md +3 -1
  9. package/bundled/qc-helper/docs/features/_meta.ts +1 -0
  10. package/bundled/qc-helper/docs/features/channels/_meta.ts +1 -0
  11. package/bundled/qc-helper/docs/features/channels/dingtalk.md +12 -0
  12. package/bundled/qc-helper/docs/features/channels/dws.md +120 -0
  13. package/bundled/qc-helper/docs/features/channels/overview.md +37 -6
  14. package/bundled/qc-helper/docs/features/code-review.md +27 -23
  15. package/bundled/qc-helper/docs/features/commands.md +4 -3
  16. package/bundled/qc-helper/docs/features/computer-use.md +57 -51
  17. package/bundled/qc-helper/docs/features/goals.md +58 -0
  18. package/bundled/qc-helper/docs/features/headless.md +13 -11
  19. package/bundled/qc-helper/docs/features/mcp.md +35 -12
  20. package/bundled/qc-helper/docs/features/status-line.md +3 -3
  21. package/bundled/qc-helper/docs/features/sub-agents.md +1 -1
  22. package/bundled/qc-helper/docs/features/worktree.md +1 -1
  23. package/bundled/qc-helper/docs/overview.md +1 -1
  24. package/bundled/qc-helper/docs/quickstart.md +1 -1
  25. package/bundled/qc-helper/docs/qwen-serve.md +29 -6
  26. package/bundled/review/SKILL.md +185 -435
  27. package/bundled/review/references/aone.md +18 -0
  28. package/bundled/review/references/persistence.md +109 -0
  29. package/bundled/review/references/posting.md +272 -0
  30. package/chunks/MaxSizedBox-LMWXCLDV.js +110 -0
  31. package/chunks/{StandaloneSessionPicker-KTHPCSR6.js → StandaloneSessionPicker-W3F7U3JL.js} +87 -88
  32. package/chunks/{acp-startup-profiler-T4GEAPLX.js → acp-startup-profiler-GNYAL6LI.js} +2 -2
  33. package/chunks/{acpAgent-CRY3JZ5O.js → acpAgent-EYZ6EEHD.js} +3223 -2145
  34. package/chunks/agent-RBLGBY65.js +95 -0
  35. package/chunks/agent-headless-L5T4Y4OZ.js +85 -0
  36. package/chunks/{anthropicContentGenerator-Y2OX6LS4.js → anthropicContentGenerator-GMHML35Q.js} +128 -59
  37. package/chunks/{artifact-tool-SBXMTVCB.js → artifact-tool-XSMPHZBT.js} +11 -3
  38. package/chunks/{askUserQuestion-KEQJRFD6.js → askUserQuestion-4SWJY65V.js} +2 -2
  39. package/chunks/bridge-5LR2F2ND.js +119 -0
  40. package/chunks/{ca-D3F4S6NG.js → ca-7HPYOYSZ.js} +3 -0
  41. package/chunks/{channel-management-service-IRTT7RNE.js → channel-management-service-KHR3N6CH.js} +6 -6
  42. package/chunks/channel-settings-store-4FOAZW72.js +120 -0
  43. package/chunks/{channel-worker-group-BJNMR2MP.js → channel-worker-group-6NA6BBZV.js} +9 -7
  44. package/chunks/{channel-worker-manager-EMA7CQDJ.js → channel-worker-manager-NEZ2J6RK.js} +11 -8
  45. package/chunks/{channel-worker-supervisor-F6I6WSWW.js → channel-worker-supervisor-FKU7DIHJ.js} +12 -6
  46. package/chunks/{chunk-HDKCKCYO.js → chunk-23RFD54N.js} +1 -1
  47. package/chunks/{read-package-up-UXSW3YPB.js → chunk-2EAZ43JQ.js} +1 -0
  48. package/chunks/{chunk-KM73TBQ4.js → chunk-2LD5U7Q3.js} +31 -0
  49. package/chunks/{chunk-GIWB5QLV.js → chunk-2SXSLSQE.js} +4 -4
  50. package/chunks/chunk-2TNL5KPM.js +49 -0
  51. package/chunks/chunk-335CJSNF.js +2320 -0
  52. package/chunks/chunk-36LGBEM6.js +130 -0
  53. package/chunks/{chunk-O5BDEWBC.js → chunk-3JXM2CVW.js} +3 -3
  54. package/chunks/{chunk-2E3V7G6Y.js → chunk-3K6TUZHS.js} +55 -50
  55. package/chunks/{chunk-WWUSHZ7M.js → chunk-3OOXT6CR.js} +5 -5
  56. package/chunks/{chunk-2UZJWSVD.js → chunk-3WK3QDNV.js} +2 -2
  57. package/chunks/{chunk-4J7OPYNS.js → chunk-3XOKEVII.js} +6 -6
  58. package/chunks/chunk-3Y34Q3JV.js +1584 -0
  59. package/chunks/{chunk-YMVFIYHV.js → chunk-42IDLQWS.js} +26 -20
  60. package/chunks/{chunk-7HFULI45.js → chunk-454XFGH4.js} +3 -3
  61. package/chunks/chunk-4CMJKUND.js +95 -0
  62. package/chunks/{chunk-XLDFW44M.js → chunk-4K7KNVWH.js} +3 -3
  63. package/chunks/{chunk-YDJRMQU4.js → chunk-4QHPPXK2.js} +16 -8
  64. package/chunks/{chunk-7KOFLDEP.js → chunk-5JTIYALA.js} +1 -1
  65. package/chunks/{chunk-CXJHQVEK.js → chunk-5PA6UEYA.js} +4 -0
  66. package/chunks/{chunk-7NBVNAJJ.js → chunk-62GQFYID.js} +3 -3
  67. package/chunks/{chunk-JGUBDRBC.js → chunk-6DIGWMGT.js} +3 -3
  68. package/chunks/{chunk-X7V3N6YH.js → chunk-6JCGO55P.js} +885 -3380
  69. package/chunks/{chunk-HIK2OF33.js → chunk-6PJOTWAN.js} +1 -1
  70. package/chunks/{chunk-VUMLT7E5.js → chunk-6W2IK5KC.js} +956 -17
  71. package/chunks/{chunk-S4C4JJKE.js → chunk-6ZZBRRKQ.js} +5 -5
  72. package/chunks/{chunk-W4CRPSC5.js → chunk-7EQQR46F.js} +1 -1
  73. package/chunks/{chunk-PHJJ3RVO.js → chunk-7GWQW5ID.js} +7 -15
  74. package/chunks/chunk-7J6OTNGO.js +424 -0
  75. package/chunks/{chunk-URN2JIAQ.js → chunk-7TUBJBBJ.js} +5 -1
  76. package/chunks/{chunk-A5F63FEW.js → chunk-7VD6IPQM.js} +1 -1
  77. package/chunks/{chunk-36OF5PRW.js → chunk-ABS25QER.js} +7 -3
  78. package/chunks/{chunk-UU4WC7DK.js → chunk-AJGR6E6Z.js} +117 -30
  79. package/chunks/{chunk-MQP3MHWN.js → chunk-AU3MMVJF.js} +43 -20
  80. package/chunks/{chunk-ZS5BHEPD.js → chunk-AXC26UCQ.js} +1 -1
  81. package/chunks/{chunk-PDL6LKB5.js → chunk-AY3BNYEQ.js} +1 -1
  82. package/chunks/{chunk-O5Z7EB6Y.js → chunk-AYHQZBJ4.js} +170 -207
  83. package/chunks/{chunk-WRT324N6.js → chunk-B466ZSHZ.js} +3 -3
  84. package/chunks/{chunk-5XHAOUWD.js → chunk-B5OUL5EL.js} +3 -3
  85. package/chunks/{chunk-GAHYKJPV.js → chunk-B5PHIJGI.js} +186 -60
  86. package/chunks/{chunk-IBJ5S45N.js → chunk-B7CDU2SL.js} +2 -2
  87. package/chunks/{chunk-UZPYR3EV.js → chunk-BFPESSTR.js} +1 -1
  88. package/chunks/{chunk-43T5WDQ7.js → chunk-BFSFJR3D.js} +1 -1
  89. package/chunks/{chunk-IWOWEENB.js → chunk-BKWNKLZB.js} +404 -44
  90. package/chunks/{chunk-3CLIDIVQ.js → chunk-BOWFGCEU.js} +3 -3
  91. package/chunks/{chunk-BB5IMQCV.js → chunk-BPAKYXQ3.js} +2 -2
  92. package/chunks/{chunk-ZRYQMWEP.js → chunk-BWORX6FA.js} +2 -2
  93. package/chunks/{chunk-AP3B7LKD.js → chunk-BXDAPVQU.js} +2 -2
  94. package/chunks/{chunk-NUGZAFR2.js → chunk-C2X7KY45.js} +147 -6
  95. package/chunks/{chunk-MZKWFWVG.js → chunk-C3KURPP7.js} +6 -6
  96. package/chunks/{chunk-WZDM44SB.js → chunk-CAJTKR6W.js} +7 -7
  97. package/chunks/{chunk-DB2OKNTU.js → chunk-CFJY4DGX.js} +2 -2
  98. package/chunks/{chunk-QKBYFU2Q.js → chunk-CFKIH3D3.js} +21 -1
  99. package/chunks/{chunk-I432KXWD.js → chunk-CMHFCLBU.js} +1 -1
  100. package/chunks/{create-sub-session-XBCVGNFU.js → chunk-CQH5KTKC.js} +4 -6
  101. package/chunks/{chunk-5HJUPACR.js → chunk-CRKKHXTI.js} +185 -174
  102. package/chunks/{chunk-L4HVF7LM.js → chunk-CYAUBK46.js} +3 -3
  103. package/chunks/{chunk-AZF6SME3.js → chunk-D5LUXLUH.js} +3 -3
  104. package/chunks/{chunk-RPJQ3O4M.js → chunk-DFDWJE6Z.js} +60 -53
  105. package/chunks/{chunk-KSPRQSB4.js → chunk-DIMEPKCW.js} +52 -12
  106. package/chunks/chunk-DJBQCO2E.js +842 -0
  107. package/chunks/{chunk-OVH5Y7KS.js → chunk-DP4MWIM3.js} +19 -3
  108. package/chunks/{chunk-LI4YHTQK.js → chunk-DYXFD5RO.js} +182 -3
  109. package/chunks/{chunk-NW35NVFN.js → chunk-E3XVSVKK.js} +26 -4
  110. package/chunks/{chunk-VSNPOSDN.js → chunk-EB6QRGHM.js} +108 -13
  111. package/chunks/{chunk-FVBVJEBG.js → chunk-EKNBU2X7.js} +10 -8
  112. package/chunks/{chunk-DJEHYM4H.js → chunk-EKSCLBBF.js} +3 -3
  113. package/chunks/{chunk-624NHDGB.js → chunk-ERFDKH32.js} +11 -0
  114. package/chunks/chunk-EW5VVLJT.js +3525 -0
  115. package/chunks/{chunk-T6XLJRQY.js → chunk-EWIQ3NAE.js} +38774 -6955
  116. package/chunks/{chunk-4XPSVIED.js → chunk-FALBWZF4.js} +6 -6
  117. package/chunks/chunk-FBX2SDQ4.js +48 -0
  118. package/chunks/{chunk-VMJL7RH6.js → chunk-FEHMA4RO.js} +539 -651
  119. package/chunks/{chunk-PXOJLJ5W.js → chunk-FMFBLTLY.js} +606 -223
  120. package/chunks/{chunk-ZLCT4C5A.js → chunk-FTF2YIZ5.js} +1 -1
  121. package/chunks/{chunk-IOSEW6KP.js → chunk-G6FECKTJ.js} +9 -6
  122. package/chunks/{chunk-RDG44S5I.js → chunk-GGNE3JAW.js} +2 -2
  123. package/chunks/chunk-GYTKQYDB.js +23 -0
  124. package/chunks/{chunk-B6UBOIFE.js → chunk-H33EQVMG.js} +14 -11
  125. package/chunks/chunk-H72BQNM3.js +645 -0
  126. package/chunks/{chunk-YZBDKFRQ.js → chunk-HGIMWQVT.js} +995 -892
  127. package/chunks/chunk-HOCJDUFY.js +20 -0
  128. package/chunks/{chunk-6UQSU7CQ.js → chunk-HPXV655A.js} +60 -107
  129. package/chunks/{chunk-45NQKMYB.js → chunk-HVC3PNVC.js} +1 -1
  130. package/chunks/{chunk-QJHPWLZC.js → chunk-HYDJDQGJ.js} +1 -1
  131. package/chunks/{chunk-7DMTAQJ6.js → chunk-IB7FQJRY.js} +163 -57
  132. package/chunks/{chunk-AW27A43Y.js → chunk-ICURCKIU.js} +1428 -120
  133. package/chunks/{chunk-4F5WV4RF.js → chunk-ISKH4QX3.js} +288 -15
  134. package/chunks/{chunk-SE55HQGF.js → chunk-J6S24ZJE.js} +92 -70
  135. package/chunks/{chunk-7DYNJFES.js → chunk-JB4JIVTJ.js} +6 -1
  136. package/chunks/{chunk-OARZJFZX.js → chunk-JN4IWWMN.js} +4 -4
  137. package/chunks/{chunk-6PCOVQO2.js → chunk-JUUBLSZU.js} +8 -8
  138. package/chunks/{chunk-FEMQ6Y7W.js → chunk-JWALNCLT.js} +47 -126
  139. package/chunks/{chunk-TBVSALA3.js → chunk-K5KXUXWC.js} +3 -3
  140. package/chunks/{chunk-XYQHT3AW.js → chunk-KTJFDCX4.js} +2 -2
  141. package/chunks/{chunk-6FRJEE2S.js → chunk-LEFCFTEX.js} +6 -6
  142. package/chunks/{chunk-BUGYW6FB.js → chunk-LEGTMYAE.js} +1 -1
  143. package/chunks/{chunk-MPHLIJYL.js → chunk-LLZA2IK3.js} +20 -8
  144. package/chunks/{chunk-BEGIBJAZ.js → chunk-LNETQKBE.js} +4 -4
  145. package/chunks/{chunk-KVGR4MCF.js → chunk-LUEHOUHM.js} +3 -3
  146. package/chunks/{chunk-2A4C2MEG.js → chunk-LVPZO674.js} +35 -12
  147. package/chunks/{chunk-25NESM4G.js → chunk-M4ORUPYI.js} +29 -5
  148. package/chunks/{chunk-VFACN2CE.js → chunk-M6FOJXW3.js} +1 -1
  149. package/chunks/{chunk-FYZMB6DB.js → chunk-MAYHGRP4.js} +12 -12
  150. package/chunks/{chunk-K3LPAED5.js → chunk-MQM5PJML.js} +24 -4
  151. package/chunks/{chunk-ZRFUT5VV.js → chunk-MTJN7FOT.js} +7 -7
  152. package/chunks/{chunk-BGXZBI5B.js → chunk-N4X7G4J2.js} +2 -1
  153. package/chunks/{chunk-2TRNCJK4.js → chunk-NIFYWDYN.js} +1 -1
  154. package/chunks/{chunk-SQS55KR4.js → chunk-NU7RKEZR.js} +2 -2
  155. package/chunks/{chunk-U2UYQMM6.js → chunk-NXMBRVMQ.js} +3 -3
  156. package/chunks/chunk-OI4NY7RA.js +346 -0
  157. package/chunks/{chunk-LURJYO2T.js → chunk-OZ6KS6KW.js} +4 -0
  158. package/chunks/{chunk-K52PZNU4.js → chunk-PDQGMSZK.js} +2 -2
  159. package/chunks/{chunk-PZRUV52H.js → chunk-PPKZ7JOE.js} +20 -2
  160. package/chunks/{chunk-SAH4BD2J.js → chunk-PQEISIKS.js} +67 -0
  161. package/chunks/{chunk-AO4M6NMD.js → chunk-PWIGAMA4.js} +146 -27
  162. package/chunks/{chunk-S3G6YFQC.js → chunk-QFCDF5PL.js} +1 -1
  163. package/chunks/chunk-QHMLYMMS.js +32 -0
  164. package/chunks/{chunk-5XUTPXQU.js → chunk-QPTRRPZU.js} +47 -13
  165. package/chunks/{chunk-UUQFJILB.js → chunk-RFI4YGMR.js} +34 -267
  166. package/chunks/{chunk-A6NRNRKE.js → chunk-RFIDDFAL.js} +1 -1
  167. package/chunks/chunk-RKFGE7JH.js +93 -0
  168. package/chunks/chunk-RNVFRIOO.js +275 -0
  169. package/chunks/{chunk-WU5E4HMO.js → chunk-RU7BK6B3.js} +1 -1
  170. package/chunks/{chunk-J5ZDDUKM.js → chunk-RVXDXY6I.js} +4 -4
  171. package/chunks/{chunk-OE52YHCZ.js → chunk-RWZB422L.js} +11 -11
  172. package/chunks/chunk-RXFQM6FQ.js +42 -0
  173. package/chunks/{chunk-MHG6NDS6.js → chunk-RYNZQGXN.js} +19 -2
  174. package/chunks/{chunk-4CWDWDL6.js → chunk-SJ5ERAW3.js} +1 -1
  175. package/chunks/{chunk-Q54XG7IX.js → chunk-SMPR7SPO.js} +1 -1
  176. package/chunks/{chunk-UIRLQ3N7.js → chunk-SRZZY4IY.js} +3 -3
  177. package/chunks/{chunk-ND7NOI4P.js → chunk-STUJ7IMZ.js} +0 -92
  178. package/chunks/{chunk-VYC7XFYV.js → chunk-SUX7HDNA.js} +5 -5
  179. package/chunks/{chunk-ZZUVC6RI.js → chunk-SVNO44PF.js} +3 -3
  180. package/chunks/{chunk-FDD2IUEL.js → chunk-SZLBBZH4.js} +370 -35
  181. package/chunks/{chunk-GHY5OIYP.js → chunk-T2NKRHZZ.js} +13 -13
  182. package/chunks/chunk-T4EFG2P5.js +113 -0
  183. package/chunks/{chunk-BMCSKS37.js → chunk-TLHUNMO7.js} +6 -6
  184. package/chunks/{chunk-JOLJTKIG.js → chunk-TPI7O7HR.js} +1 -1
  185. package/chunks/{chunk-6QSA4JHL.js → chunk-TQHGJYR3.js} +4492 -1121
  186. package/chunks/{chunk-ISJMN3ML.js → chunk-TTX2JUE6.js} +1 -1
  187. package/chunks/{chunk-EFB657PR.js → chunk-TW3E6YNO.js} +3 -3
  188. package/chunks/{chunk-LD5VIJ7S.js → chunk-TWSKM647.js} +1 -1
  189. package/chunks/chunk-U54AYGEC.js +337 -0
  190. package/chunks/{chunk-A5F2YNO6.js → chunk-UHQFIS7N.js} +260 -10
  191. package/chunks/{chunk-6NFAEG54.js → chunk-UTLCH2FK.js} +24 -13
  192. package/chunks/{chunk-7JBHIQS2.js → chunk-UY3PBNY3.js} +19 -37
  193. package/chunks/{chunk-DWCKACFL.js → chunk-V2NDP3I4.js} +2 -2
  194. package/chunks/{chunk-2GXYDNXP.js → chunk-V2QDDC5J.js} +19 -9
  195. package/chunks/{chunk-VLRBJ24J.js → chunk-V5J4J5TP.js} +2 -2
  196. package/chunks/{chunk-X2UOOG5V.js → chunk-VQUGEVGR.js} +1 -1
  197. package/chunks/{chunk-RDQ7QB4Y.js → chunk-VTHREBQM.js} +2 -2
  198. package/chunks/{chunk-YLFLHKDL.js → chunk-W3N5XAZ6.js} +1 -1
  199. package/chunks/{chunk-62JOGZL5.js → chunk-W6DUQ5GA.js} +11497 -10502
  200. package/chunks/{chunk-P47E4SJC.js → chunk-WALC5VJH.js} +4 -4
  201. package/chunks/{chunk-3ZFJUBTP.js → chunk-WAOIHTJS.js} +1 -1
  202. package/chunks/{chunk-KIVGVFMM.js → chunk-WBHKK3CU.js} +16 -4
  203. package/chunks/{chunk-XZJKSETB.js → chunk-WXEA74YB.js} +3 -3
  204. package/chunks/{chunk-VEND4KA4.js → chunk-X3ZRTCJD.js} +1 -1
  205. package/chunks/{chunk-YRLW2MSX.js → chunk-XBVNNDPK.js} +11 -4
  206. package/chunks/{chunk-XL5K4SVK.js → chunk-XF63PKEN.js} +1 -1
  207. package/chunks/{chunk-LDGWX737.js → chunk-XLLQJRAH.js} +323 -510
  208. package/chunks/{chunk-2Z6LSQMF.js → chunk-XQFT3QUF.js} +1 -1
  209. package/chunks/{chunk-P3QQPMQA.js → chunk-XZA32HII.js} +4 -4
  210. package/chunks/{chunk-C72BXMJ5.js → chunk-Y3QL45LS.js} +1 -1
  211. package/chunks/{chunk-QS4ENGVF.js → chunk-Y4TPOUEV.js} +17 -8
  212. package/chunks/{chunk-AVCCKIZ6.js → chunk-YRZX2PHA.js} +1 -1
  213. package/chunks/{chunk-Z3JMO2CH.js → chunk-YTDVNSUQ.js} +1 -1
  214. package/chunks/{chunk-WS7PAXXR.js → chunk-YWQ237GX.js} +15 -199
  215. package/chunks/chunk-ZELCTN6Y.js +29 -0
  216. package/chunks/{chunk-TQOF5KBL.js → chunk-ZEZKIS2K.js} +0 -31
  217. package/chunks/{chunk-IIWGSX4L.js → chunk-ZTP35P4B.js} +1 -1
  218. package/chunks/{chunk-K623ENWT.js → chunk-ZU4UDIWX.js} +23 -1
  219. package/chunks/chunk-ZYNTSXWK.js +32 -0
  220. package/chunks/config-utils-JVGAP34H.js +113 -0
  221. package/chunks/contextCommand-XDB7OSO7.js +106 -0
  222. package/chunks/{core-runtime-CES6JSVV.js → core-runtime-XHYA2RH7.js} +66 -63
  223. package/chunks/create-sub-session-23ITIELI.js +17 -0
  224. package/chunks/{create-sub-session-UJTPMVOG.js → create-sub-session-MHYCFNCM.js} +168 -87
  225. package/chunks/{cron-create-IKA56DAF.js → cron-create-KJ4IY6PP.js} +57 -10
  226. package/chunks/{cron-delete-K5Q62EGH.js → cron-delete-MBLQCAYY.js} +4 -4
  227. package/chunks/{cron-list-QBFGAMP7.js → cron-list-DWH2PQ47.js} +4 -4
  228. package/chunks/{daemon-RZZUPGOJ.js → daemon-K5XS42ID.js} +567 -27
  229. package/chunks/{daemon-git-worktree-guard-3QY2BQYB.js → daemon-git-worktree-guard-V3P5XLHB.js} +339 -95
  230. package/chunks/daemon-status-provider-KKU7ZTLM.js +117 -0
  231. package/chunks/daemon-trust-policy-TZGK34DW.js +112 -0
  232. package/chunks/{daemon-trust-policy-monitor-TK4K7M63.js → daemon-trust-policy-monitor-F23DD2M4.js} +69 -69
  233. package/chunks/{de-RYUHH2C6.js → de-X6HLSIFE.js} +1 -0
  234. package/chunks/deferred-core-runtime-LKLGBCGZ.js +114 -0
  235. package/chunks/{display-image-OEJMJV3S.js → display-image-BE7I6ZB6.js} +5 -5
  236. package/chunks/{dist-5EV2G6MC.js → dist-4WXLCBDR.js} +1 -1
  237. package/chunks/{dist-ES6HNUW2.js → dist-5VXFRTWU.js} +525 -64
  238. package/chunks/{dist-ESS34DHC.js → dist-6BPYWHVD.js} +89 -65
  239. package/chunks/{dist-2OG3PGKO.js → dist-GFN5DCBX.js} +76 -67
  240. package/chunks/{dist-K7IQB53U.js → dist-HZNT6GQS.js} +1 -1
  241. package/chunks/{dist-J6P3C52Z.js → dist-LVZCXVPF.js} +99 -26
  242. package/chunks/{dist-LZO24N3E.js → dist-N6W6E753.js} +71 -64
  243. package/chunks/dist-QDLFKWOL.js +2512 -0
  244. package/chunks/{dist-VVQBOKDH.js → dist-SWQMYP2Q.js} +18 -16
  245. package/chunks/earlyInputCapture-NERYFYTR.js +107 -0
  246. package/chunks/{edit-A2633SLR.js → edit-ACCATIXB.js} +49 -51
  247. package/chunks/{en-3RHLPITS.js → en-YLXBXM4Z.js} +5 -1
  248. package/chunks/{enter-worktree-OIAHE2TB.js → enter-worktree-35QCAAFP.js} +7 -8
  249. package/chunks/{enterPlanMode-SUGIKLR7.js → enterPlanMode-NEN6EPVM.js} +48 -50
  250. package/chunks/environment-CKWHBC5T.js +129 -0
  251. package/chunks/errors-XTZPNQ77.js +113 -0
  252. package/chunks/{exit-worktree-3UT3SSWT.js → exit-worktree-XQD6D543.js} +7 -8
  253. package/chunks/exitPlanMode-CY344X5J.js +83 -0
  254. package/chunks/{fast-path-3AVP3G35.js → fast-path-YSOX4PAM.js} +31 -10
  255. package/chunks/{fast-path-settings-WHX3J3ZI.js → fast-path-settings-XMFBYFUH.js} +2 -2
  256. package/chunks/{fr-4PL5GHG4.js → fr-FTZWF462.js} +1 -0
  257. package/chunks/{gemini-7PVQWHTH.js → gemini-VQY2YCPH.js} +137 -129
  258. package/chunks/{geminiContentGenerator-B2FOJJDJ.js → geminiContentGenerator-PAPXNIGU.js} +16 -13
  259. package/chunks/{glob-7YGXE6OV.js → glob-GVCUSBBF.js} +48 -50
  260. package/chunks/{goal-tools-TLJCE7YZ.js → goal-tools-5STK6OXW.js} +77 -31
  261. package/chunks/{grep-6DV6LTON.js → grep-5GPICQBU.js} +6 -6
  262. package/chunks/handleAutoUpdate-ZJPJN42W.js +109 -0
  263. package/chunks/i18n-BZYKOST7.js +124 -0
  264. package/chunks/{image-gen-7CSCJ73T.js → image-gen-J6FDGUZP.js} +8 -12
  265. package/chunks/initializer-GO2C5HE3.js +113 -0
  266. package/chunks/installationInfo-WM2GXQZ6.js +107 -0
  267. package/chunks/{ja-HZ7X7PQO.js → ja-2GL5FKYJ.js} +1 -0
  268. package/chunks/{keychain-token-storage-MTFTAESK.js → keychain-token-storage-37XPR34V.js} +2 -2
  269. package/chunks/list-ERDJB7PQ.js +116 -0
  270. package/chunks/{list-agents-43XUEXJV.js → list-agents-DI3YFTDT.js} +2 -2
  271. package/chunks/loadedSettingsAdapter-7JOCVOKV.js +110 -0
  272. package/chunks/{loggingContentGenerator-RNE66CKK.js → loggingContentGenerator-3ONLU3BS.js} +327 -39
  273. package/chunks/{loop-wakeup-E54KDUXC.js → loop-wakeup-XJFONSQ7.js} +5 -5
  274. package/chunks/{ls-CGL2UC3H.js → ls-3VAT2J7A.js} +4 -4
  275. package/chunks/{lsp-5IKUO5DX.js → lsp-5W7IRUBH.js} +2 -2
  276. package/chunks/{managed-npm-update-Y3SC3GLJ.js → managed-npm-update-TLRCC2GE.js} +62 -62
  277. package/chunks/mcp-2LH3QXR2.js +110 -0
  278. package/chunks/{monitor-PXYSGSUN.js → monitor-P7LDAL4W.js} +48 -50
  279. package/chunks/nonInteractiveCli-E5T7PZ27.js +184 -0
  280. package/chunks/{notebook-edit-ISIBJVBR.js → notebook-edit-F7KSG4WQ.js} +49 -51
  281. package/chunks/open-with-auth-4UI3KHUR.js +55 -0
  282. package/chunks/{openaiContentGenerator-6TBOPEGT.js → openaiContentGenerator-2EXCZUGN.js} +29 -32
  283. package/chunks/pidfile-P25DWA5Q.js +111 -0
  284. package/chunks/process-registry-OAEG6WGC.js +662 -0
  285. package/chunks/{processUtils-YK2TDTTU.js → processUtils-PVDKBL35.js} +2 -2
  286. package/chunks/prompt-terminal-ledger-AJ7T7OIV.js +105 -0
  287. package/chunks/{pt-QT5N2Q6Q.js → pt-XN2YWJVM.js} +1 -0
  288. package/chunks/{qwenContentGenerator-CLDMA2Y4.js → qwenContentGenerator-TBBRLWIT.js} +54 -62
  289. package/chunks/{qwenOAuth2-DLDR6UC5.js → qwenOAuth2-OF5WRBQT.js} +7 -11
  290. package/chunks/read-file-6IIY4RLJ.js +32 -0
  291. package/chunks/{read-mcp-resource-XYES2B42.js → read-mcp-resource-XD257PGJ.js} +2 -2
  292. package/chunks/read-package-up-6T6ICKR7.js +13 -0
  293. package/chunks/{record-artifact-W3IBTGL7.js → record-artifact-VW23GS4F.js} +4 -5
  294. package/chunks/report-findings-XA3FJG3N.js +33 -0
  295. package/chunks/request-shutdown-BCLA3JV2.js +133 -0
  296. package/chunks/resumeHistoryUtils-44IETXDY.js +118 -0
  297. package/chunks/ripGrep-E7ESZ7SS.js +39 -0
  298. package/chunks/{ru-STMG5BPD.js → ru-OLTMFJEW.js} +1 -0
  299. package/chunks/{run-qwen-serve-XJHOW2NY.js → run-qwen-serve-DXBCYW7V.js} +924 -356
  300. package/chunks/runtime-RUSPD35D.js +148 -0
  301. package/chunks/scheduled-tasks-DVRJZO6I.js +127 -0
  302. package/chunks/scheduler-TDRB2NSY.js +122 -0
  303. package/chunks/{sdk-exporters-http-RSIOP3G2.js → sdk-exporters-http-TTU2CHBU.js} +5 -5
  304. package/chunks/{sdk-impl-CB3KARSK.js → sdk-impl-UUMVYMAL.js} +12 -6
  305. package/chunks/{send-message-J4VT46OI.js → send-message-AJ4OCUBV.js} +24 -29
  306. package/chunks/serve-KITOM7OR.js +118 -0
  307. package/chunks/{server-74ONDK62.js → server-THCOMUC2.js} +5814 -4549
  308. package/chunks/{session-BO6VBWJP.js → session-XKR5MPXE.js} +152 -142
  309. package/chunks/session-pr-refresh-KRBH7KDA.js +278 -0
  310. package/chunks/{settings-35QZNFDG.js → settings-YXZ4XBKK.js} +72 -72
  311. package/chunks/shell-5FJ2DZ3W.js +93 -0
  312. package/chunks/{skill-DKEMQSNJ.js → skill-VMMJZ6CJ.js} +161 -33
  313. package/chunks/skill-settings-7SG4YA2W.js +118 -0
  314. package/chunks/spawnChannel-BPMIXRBI.js +112 -0
  315. package/chunks/standalone-update-QN5HFRIC.js +118 -0
  316. package/chunks/{startInteractiveUI-J2QSGWPU.js → startInteractiveUI-5A7RQFRP.js} +3139 -2438
  317. package/chunks/{syntheticOutput-JAXMIMZP.js → syntheticOutput-ML43GEFN.js} +3 -3
  318. package/chunks/{task-create-I2H322E4.js → task-create-QN4LYRSE.js} +11 -11
  319. package/chunks/{task-list-3OLIWFTQ.js → task-list-JPLGK45U.js} +5 -5
  320. package/chunks/{task-stop-JAUY6MSY.js → task-stop-CXEH5L2D.js} +2 -2
  321. package/chunks/{task-update-B3XO4CPI.js → task-update-IWEOJFV2.js} +11 -11
  322. package/chunks/{team-create-W534PMGX.js → team-create-HVGVUL2L.js} +49 -51
  323. package/chunks/{team-delete-Q7GE7RRI.js → team-delete-RZVVSGCY.js} +5 -5
  324. package/chunks/{team-plan-approval-WNV6P6NG.js → team-plan-approval-S5A5FQWU.js} +48 -50
  325. package/chunks/terminal-image-renderer-SIVPPXDI.js +114 -0
  326. package/chunks/theme-manager-TA33UZZX.js +102 -0
  327. package/chunks/{todoWrite-FJJTY2TI.js → todoWrite-WDJNQEMW.js} +43 -25
  328. package/chunks/{tool-search-Y4KL3LRE.js → tool-search-NX7IPDKP.js} +19 -20
  329. package/chunks/total-session-admission-PWXZBOVX.js +114 -0
  330. package/chunks/trustedFolders-V6Y4CU3F.js +122 -0
  331. package/chunks/{update-relaunch-OHVFN6KF.js → update-relaunch-CGSX3R37.js} +6 -6
  332. package/chunks/updateCheck-T5O2WGIB.js +118 -0
  333. package/chunks/useAutoAcceptIndicator-ULBJJWPY.js +120 -0
  334. package/chunks/{validateNonInterActiveAuth-WJXH426F.js → validateNonInterActiveAuth-E5S2JSRC.js} +114 -108
  335. package/chunks/{version-QMDRADXM.js → version-LS5JPU36.js} +2 -2
  336. package/chunks/{web-fetch-ROS6P4LP.js → web-fetch-RLMFZTS3.js} +25 -244
  337. package/chunks/{web-search-JS3E76O6.js → web-search-LMCIC4N5.js} +11 -13
  338. package/chunks/{web-shell-static-3NUTRHAH.js → web-shell-static-A6QMUNNV.js} +11 -4
  339. package/chunks/webapi-Z5OM224P.js +4118 -0
  340. package/chunks/{workflow-2FCMBTBZ.js → workflow-JBXU3IGA.js} +713 -138
  341. package/chunks/workspace-providers-status-525ORQBH.js +114 -0
  342. package/chunks/{workspace-registration-store-SU4EJKSD.js → workspace-registration-store-7Y44R4LV.js} +1 -1
  343. package/chunks/workspace-registry-HS4RWUSQ.js +123 -0
  344. package/chunks/workspace-service-7PXDM6EB.js +129 -0
  345. package/chunks/workspace-skills-status-FMJGC2XI.js +113 -0
  346. package/chunks/{workspace-trust-reconciler-4Y4F7XIX.js → workspace-trust-reconciler-3YTWSQBY.js} +78 -77
  347. package/chunks/write-file-BVQRYQQO.js +88 -0
  348. package/chunks/{zh-TW-NX43Z2S2.js → zh-TW-RPTMRTHG.js} +5 -1
  349. package/chunks/{zh-3JQ75KFU.js → zh-UNY63FR3.js} +5 -1
  350. package/chunks/{zoom-image-DNBKCGGF.js → zoom-image-FGCELNS4.js} +14 -15
  351. package/cli.js +13 -13
  352. package/locales/ca.js +3 -0
  353. package/locales/de.js +1 -0
  354. package/locales/en.js +5 -0
  355. package/locales/fr.js +1 -0
  356. package/locales/ja.js +1 -0
  357. package/locales/pt.js +1 -0
  358. package/locales/ru.js +1 -0
  359. package/locales/zh-TW.js +5 -0
  360. package/locales/zh.js +5 -0
  361. package/package.json +3 -3
  362. package/web-shell/assets/{abnfDiagram-VCTEODGH-DWHXEVlf.js → abnfDiagram-VCTEODGH-2XZDeWYO.js} +1 -1
  363. package/web-shell/assets/{arc-CXKjm86V.js → arc-B6UgMh90.js} +1 -1
  364. package/web-shell/assets/{architectureDiagram-5GKGNRK7-B_ynI0cX.js → architectureDiagram-5GKGNRK7-DZgNFeN1.js} +1 -1
  365. package/web-shell/assets/{blockDiagram-NRAW4CY4-DMebd9X0.js → blockDiagram-NRAW4CY4-DQ2wvBFN.js} +1 -1
  366. package/web-shell/assets/{c4Diagram-UCG6FXSJ-BZ5BlxS-.js → c4Diagram-UCG6FXSJ-DMmQMrc4.js} +1 -1
  367. package/web-shell/assets/channel-D_TyfiTx.js +1 -0
  368. package/web-shell/assets/{chunk-2Q5K7J3B-CluJKopE.js → chunk-2Q5K7J3B-C8Zh2e9y.js} +1 -1
  369. package/web-shell/assets/{chunk-5VM5RSS4-hzDAPFOo.js → chunk-5VM5RSS4-C3LTenP8.js} +1 -1
  370. package/web-shell/assets/{chunk-F27PBJKO-6vHioKJe.js → chunk-F27PBJKO-CxABOc8n.js} +1 -1
  371. package/web-shell/assets/{chunk-G27WJ6UU-B_5hKTGo.js → chunk-G27WJ6UU-CD_JxHDC.js} +1 -1
  372. package/web-shell/assets/{chunk-JWPE2WC7-CO9VoFCH.js → chunk-JWPE2WC7-BdmZPmce.js} +1 -1
  373. package/web-shell/assets/{chunk-LCL6LL3I-7L5JpxYu.js → chunk-LCL6LL3I-80bcHmfK.js} +1 -1
  374. package/web-shell/assets/{chunk-POPQ4Y6H-DHLJMAqj.js → chunk-POPQ4Y6H-CNpLZyQF.js} +1 -1
  375. package/web-shell/assets/{chunk-SVP7TREG-Dt-4Cqdl.js → chunk-SVP7TREG-CXlKgMv3.js} +1 -1
  376. package/web-shell/assets/{chunk-XXDRQBXY-QlSQ3ssG.js → chunk-XXDRQBXY-CivyYyvL.js} +1 -1
  377. package/web-shell/assets/classDiagram-DTDB5LWJ-Bw_H3xMd.js +1 -0
  378. package/web-shell/assets/classDiagram-v2-JRS7N3AN-Bw_H3xMd.js +1 -0
  379. package/web-shell/assets/{cose-bilkent-JH36ORCC-DMw3EOxl.js → cose-bilkent-JH36ORCC-COAjRH3w.js} +1 -1
  380. package/web-shell/assets/{cynefin-OW5HDTMX-s6vEA7RQ.js → cynefin-OW5HDTMX-DqU1JHO6.js} +1 -1
  381. package/web-shell/assets/{cynefinDiagram-5FMLGOSQ-AOKsvYLt.js → cynefinDiagram-5FMLGOSQ-BCLI1Bvj.js} +1 -1
  382. package/web-shell/assets/{dagre-3AP2YEHR-9QAZn3m7.js → dagre-3AP2YEHR-DmAz8nqF.js} +1 -1
  383. package/web-shell/assets/{diagram-S7CK7UJ4-CWpnu4FN.js → diagram-S7CK7UJ4-Ck-5QLT5.js} +1 -1
  384. package/web-shell/assets/{diagram-UQ7AKVKN-9l0jXD8q.js → diagram-UQ7AKVKN-C0ljX0mW.js} +1 -1
  385. package/web-shell/assets/{diagram-VSXAHHWV-BMUHroj4.js → diagram-VSXAHHWV-DPgvT24v.js} +1 -1
  386. package/web-shell/assets/{diagram-VX7I27RA-Co9x27vm.js → diagram-VX7I27RA-D7hWr1LR.js} +1 -1
  387. package/web-shell/assets/{diagram-Z3DM3KII-BKnTeOER.js → diagram-Z3DM3KII-D59tlOta.js} +1 -1
  388. package/web-shell/assets/{ebnfDiagram-PWID7BFC-QBZD9CKG.js → ebnfDiagram-PWID7BFC-CY2DDx00.js} +1 -1
  389. package/web-shell/assets/{erDiagram-SSCWMZ5O-dKWAEGun.js → erDiagram-SSCWMZ5O-AR4h8Q8k.js} +1 -1
  390. package/web-shell/assets/{flowDiagram-A5DVABFB-CR_UgVqj.js → flowDiagram-A5DVABFB-DbF0HqBz.js} +1 -1
  391. package/web-shell/assets/{ganttDiagram-EL5Y4UJY-DQUnjWO6.js → ganttDiagram-EL5Y4UJY-J52mrIhc.js} +1 -1
  392. package/web-shell/assets/{gitGraphDiagram-WWUBYQGX-C4j59wPL.js → gitGraphDiagram-WWUBYQGX-CcgMY5EV.js} +1 -1
  393. package/web-shell/assets/index-BjUg3vPr.css +5 -0
  394. package/web-shell/assets/index-CFwYYVFU.js +1873 -0
  395. package/web-shell/assets/{index-tYXRIPz4.js → index-MQs7l15A.js} +1 -1
  396. package/web-shell/assets/{infoDiagram-RXCK75RN-mzqbt50w.js → infoDiagram-RXCK75RN-Buu3ibp2.js} +1 -1
  397. package/web-shell/assets/{ishikawaDiagram-5VMMS53U-ChLOqhGl.js → ishikawaDiagram-5VMMS53U-CoKQxnF3.js} +1 -1
  398. package/web-shell/assets/{journeyDiagram-EYS64GPL-SifZE-R8.js → journeyDiagram-EYS64GPL-CxK35mTC.js} +1 -1
  399. package/web-shell/assets/{kanban-definition-3QL26DDD-Sft2qlbc.js → kanban-definition-3QL26DDD-tk2CHTQ1.js} +1 -1
  400. package/web-shell/assets/{layout-O2uHVkPd.js → layout-DEpMwb4u.js} +1 -1
  401. package/web-shell/assets/{linear-BVqYgjSc.js → linear-DSQsLh53.js} +1 -1
  402. package/web-shell/assets/{mermaid.core-CZ9MQaJ6.js → mermaid.core-DIZuPBQT.js} +6 -6
  403. package/web-shell/assets/{mindmap-definition-FBJOCRG2-BNQYjBqM.js → mindmap-definition-FBJOCRG2-CCAvk8r_.js} +1 -1
  404. package/web-shell/assets/{pegDiagram-XKGWAZYB-rh1J8uv6.js → pegDiagram-XKGWAZYB-CpJ28jxz.js} +1 -1
  405. package/web-shell/assets/{pieDiagram-E7YTZNPT-BQHR5mn9.js → pieDiagram-E7YTZNPT-ziJR2R32.js} +1 -1
  406. package/web-shell/assets/{quadrantDiagram-AXDQQJYC-CLCbP7mK.js → quadrantDiagram-AXDQQJYC-B60zE3Mh.js} +1 -1
  407. package/web-shell/assets/{railroadDiagram-O6MQD6OU-CDQhrkbm.js → railroadDiagram-O6MQD6OU-M3GqQ_g1.js} +1 -1
  408. package/web-shell/assets/{requirementDiagram-EFPCY7ZU-BdP9uswg.js → requirementDiagram-EFPCY7ZU-ntCtYqTk.js} +1 -1
  409. package/web-shell/assets/{sankeyDiagram-P5KCCOFB-CFZDFBXF.js → sankeyDiagram-P5KCCOFB-AYLoItcZ.js} +1 -1
  410. package/web-shell/assets/{sequenceDiagram-WJ2MYXX4-BW9WOJXI.js → sequenceDiagram-WJ2MYXX4-DEWk4Mlj.js} +1 -1
  411. package/web-shell/assets/{sizeCapture-X5ZJPWSS-CPMia32z.js → sizeCapture-X5ZJPWSS-OOWvzPay.js} +1 -1
  412. package/web-shell/assets/{stateDiagram-HBIQ2CUA-BANp9p7F.js → stateDiagram-HBIQ2CUA-BcMmvxem.js} +1 -1
  413. package/web-shell/assets/stateDiagram-v2-4QOOHH4V-DRLLqPWO.js +1 -0
  414. package/web-shell/assets/{swimlanes-XN3QIQJK-JroXksK-.js → swimlanes-XN3QIQJK-DuZTWWvh.js} +1 -1
  415. package/web-shell/assets/swimlanesDiagram-VK2B7HYN-DOfLQQYt.js +8 -0
  416. package/web-shell/assets/{timeline-definition-24CTP7MA-DfuVIfYY.js → timeline-definition-24CTP7MA-CjqtZXEd.js} +1 -1
  417. package/web-shell/assets/{vennDiagram-4TSXK5OY-BZXoSjRB.js → vennDiagram-4TSXK5OY-knVCVkQ4.js} +1 -1
  418. package/web-shell/assets/{wardleyDiagram-VM6X3IG4-BdiY8avC.js → wardleyDiagram-VM6X3IG4-yoWhw0a2.js} +1 -1
  419. package/web-shell/assets/{xychartDiagram-S5SC5T6Z-DcXh_U4H.js → xychartDiagram-S5SC5T6Z-ue14E_gL.js} +1 -1
  420. package/web-shell/index.html +20 -5
  421. package/chunks/MaxSizedBox-3OZJCC3J.js +0 -110
  422. package/chunks/agent-BFE3DQM3.js +0 -93
  423. package/chunks/agent-headless-LLVKZZ4P.js +0 -87
  424. package/chunks/bridge-EBYO4SYM.js +0 -118
  425. package/chunks/channel-settings-store-5VP2Y2YM.js +0 -115
  426. package/chunks/chunk-2J3OJGTL.js +0 -98
  427. package/chunks/chunk-7IV52LTO.js +0 -202
  428. package/chunks/chunk-AXMWHKXA.js +0 -42
  429. package/chunks/chunk-F6WFNA7U.js +0 -22
  430. package/chunks/chunk-IO257NUD.js +0 -623
  431. package/chunks/chunk-JS73NNWF.js +0 -30
  432. package/chunks/chunk-SJ4HB27T.js +0 -945
  433. package/chunks/chunk-VGHZT6JR.js +0 -51
  434. package/chunks/chunk-YHC2EYYG.js +0 -125
  435. package/chunks/computer-use-EGPWFEX6.js +0 -2142
  436. package/chunks/config-utils-WZ43VOBS.js +0 -25
  437. package/chunks/contextCommand-5DSEQI6S.js +0 -106
  438. package/chunks/daemon-status-provider-EYMLPYJU.js +0 -116
  439. package/chunks/daemon-trust-policy-CQYKZ7VO.js +0 -112
  440. package/chunks/deferred-core-runtime-WFEPUXZR.js +0 -114
  441. package/chunks/earlyInputCapture-PN4PP7V5.js +0 -107
  442. package/chunks/environment-WUPHLPKZ.js +0 -127
  443. package/chunks/errors-WPMPVIAT.js +0 -113
  444. package/chunks/exitPlanMode-MLFHYZNB.js +0 -85
  445. package/chunks/handleAutoUpdate-F5OTWUT5.js +0 -109
  446. package/chunks/i18n-C562S6KN.js +0 -124
  447. package/chunks/initializer-7YPGOFP4.js +0 -113
  448. package/chunks/installationInfo-ARU5Q2H7.js +0 -107
  449. package/chunks/list-KTSK275C.js +0 -116
  450. package/chunks/loadedSettingsAdapter-F3T2EQ5J.js +0 -110
  451. package/chunks/mcp-6ONTVPAY.js +0 -110
  452. package/chunks/nonInteractiveCli-KZDWFAN6.js +0 -178
  453. package/chunks/pidfile-IO7ALSZF.js +0 -111
  454. package/chunks/process-registry-PMJOA5CO.js +0 -172
  455. package/chunks/prompt-terminal-ledger-TCE7PMCE.js +0 -105
  456. package/chunks/read-file-2HOD2ATO.js +0 -33
  457. package/chunks/resumeHistoryUtils-DDSBAQJS.js +0 -118
  458. package/chunks/ripGrep-E7P6K4QR.js +0 -40
  459. package/chunks/runtime-J4SPTJRQ.js +0 -148
  460. package/chunks/scheduler-VRAEZZ4E.js +0 -122
  461. package/chunks/serve-KEAWV4TI.js +0 -118
  462. package/chunks/shell-H6K63WG3.js +0 -95
  463. package/chunks/skill-settings-TCKLXIXM.js +0 -118
  464. package/chunks/spawnChannel-2K6NKWM5.js +0 -111
  465. package/chunks/standalone-update-LSCGOEFP.js +0 -118
  466. package/chunks/terminal-image-renderer-UHX3UD66.js +0 -114
  467. package/chunks/theme-manager-6B47ZPIF.js +0 -102
  468. package/chunks/total-session-admission-NSCFWGJH.js +0 -113
  469. package/chunks/trustedFolders-7XMJWGQ3.js +0 -122
  470. package/chunks/updateCheck-EOVLHD4T.js +0 -118
  471. package/chunks/useAutoAcceptIndicator-ZNMIGBTN.js +0 -120
  472. package/chunks/workspace-providers-status-GPGU5YMT.js +0 -113
  473. package/chunks/workspace-registry-BQISXT6Y.js +0 -122
  474. package/chunks/workspace-service-LLY6HCUC.js +0 -129
  475. package/chunks/workspace-skills-status-L5N2Y3ZP.js +0 -113
  476. package/chunks/write-file-EJHU2Z3E.js +0 -90
  477. package/web-shell/assets/channel-Zg3WHgq_.js +0 -1
  478. package/web-shell/assets/classDiagram-DTDB5LWJ-C16l9jQz.js +0 -1
  479. package/web-shell/assets/classDiagram-v2-JRS7N3AN-C16l9jQz.js +0 -1
  480. package/web-shell/assets/index-BN_m_uHJ.css +0 -5
  481. package/web-shell/assets/index-DrlJu79f.js +0 -1792
  482. package/web-shell/assets/stateDiagram-v2-4QOOHH4V-NZYAoQLU.js +0 -1
  483. package/web-shell/assets/swimlanesDiagram-VK2B7HYN-3YdVX3vj.js +0 -8
@@ -2,11 +2,11 @@
2
2
  "use strict";
3
3
  import {
4
4
  t
5
- } from "./chunk-OE52YHCZ.js";
5
+ } from "./chunk-RWZB422L.js";
6
6
  import {
7
7
  SessionReferenceService,
8
8
  readManyFiles
9
- } from "./chunk-62JOGZL5.js";
9
+ } from "./chunk-W6DUQ5GA.js";
10
10
  import {
11
11
  emptyMcpResourceText,
12
12
  formatMcpResourceContents,
@@ -15,10 +15,10 @@ import {
15
15
  import {
16
16
  SessionService,
17
17
  stripTerminalControlSequences
18
- } from "./chunk-T6XLJRQY.js";
18
+ } from "./chunk-EWIQ3NAE.js";
19
19
  import {
20
20
  shouldRunVisionBridge
21
- } from "./chunk-FDD2IUEL.js";
21
+ } from "./chunk-SZLBBZH4.js";
22
22
  import {
23
23
  Storage,
24
24
  getErrorMessage,
@@ -26,7 +26,7 @@ import {
26
26
  isSubpath,
27
27
  unescapePath,
28
28
  unescapeShellSpecials
29
- } from "./chunk-A5F2YNO6.js";
29
+ } from "./chunk-UHQFIS7N.js";
30
30
  import {
31
31
  init_esbuild_shims
32
32
  } from "./chunk-5O2XNYP6.js";
@@ -34,6 +34,24 @@ import {
34
34
  __name
35
35
  } from "./chunk-J2S4EL5Y.js";
36
36
 
37
+ // packages/cli/src/utils/normalize-part-list.ts
38
+ init_esbuild_shims();
39
+ function normalizePartList(parts) {
40
+ if (!parts) {
41
+ return [];
42
+ }
43
+ if (typeof parts === "string") {
44
+ return [{ text: parts }];
45
+ }
46
+ if (Array.isArray(parts)) {
47
+ return parts.map(
48
+ (part) => typeof part === "string" ? { text: part } : part
49
+ );
50
+ }
51
+ return [parts];
52
+ }
53
+ __name(normalizePartList, "normalizePartList");
54
+
37
55
  // packages/cli/src/ui/hooks/atCommandProcessor.ts
38
56
  init_esbuild_shims();
39
57
  import * as fs2 from "node:fs/promises";
@@ -982,6 +1000,7 @@ async function handleAtCommand(params) {
982
1000
  __name(handleAtCommand, "handleAtCommand");
983
1001
 
984
1002
  export {
1003
+ normalizePartList,
985
1004
  matchMcpServerPrefix,
986
1005
  buildMcpResourceRef,
987
1006
  MAX_SUGGESTIONS_TO_SHOW,
@@ -1001,6 +1020,11 @@ export {
1001
1020
  resolveAtCommandQuery,
1002
1021
  handleAtCommand
1003
1022
  };
1023
+ /**
1024
+ * @license
1025
+ * Copyright 2026 Qwen Team
1026
+ * SPDX-License-Identifier: Apache-2.0
1027
+ */
1004
1028
  /**
1005
1029
  * @license
1006
1030
  * Copyright 2025 Google LLC
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  createDebugLogger
5
- } from "./chunk-A5F2YNO6.js";
5
+ } from "./chunk-UHQFIS7N.js";
6
6
  import {
7
7
  init_esbuild_shims
8
8
  } from "./chunk-5O2XNYP6.js";
@@ -2,12 +2,12 @@
2
2
  "use strict";
3
3
  import {
4
4
  buildPermissionSettings
5
- } from "./chunk-ZS5BHEPD.js";
5
+ } from "./chunk-AXC26UCQ.js";
6
6
  import {
7
7
  resolveVoiceStreamConfig,
8
8
  resolveVoiceTranscriptionConfig,
9
9
  transcribeVoiceAudio
10
- } from "./chunk-ZZUVC6RI.js";
10
+ } from "./chunk-SVNO44PF.js";
11
11
  import {
12
12
  getVoiceSettingsScope,
13
13
  isSelectableVoiceModel,
@@ -16,7 +16,10 @@ import {
16
16
  readVoiceMode,
17
17
  readVoiceModel,
18
18
  resolveVoiceTransport
19
- } from "./chunk-QJHPWLZC.js";
19
+ } from "./chunk-HYDJDQGJ.js";
20
+ import {
21
+ MCP_RESTART_SERVER_DEADLINE_MS
22
+ } from "./chunk-OCPBI7J5.js";
20
23
  import {
21
24
  resolveSkillSettings
22
25
  } from "./chunk-Z4X5MTRT.js";
@@ -27,9 +30,6 @@ import {
27
30
  WorkspaceSkillNotToggleableError,
28
31
  mapWorkspaceSkillToggleError
29
32
  } from "./chunk-Z7VOMGDC.js";
30
- import {
31
- MCP_RESTART_SERVER_DEADLINE_MS
32
- } from "./chunk-OCPBI7J5.js";
33
33
  import {
34
34
  BridgeChannelClosedError,
35
35
  SERVE_CONTROL_EXT_METHODS,
@@ -43,7 +43,7 @@ import {
43
43
  createIdleWorkspaceProvidersStatus,
44
44
  createIdleWorkspaceSkillsStatus,
45
45
  mapDomainErrorToErrorKind
46
- } from "./chunk-URN2JIAQ.js";
46
+ } from "./chunk-7TUBJBBJ.js";
47
47
  import {
48
48
  McpServerNotFoundError,
49
49
  McpServerRestartFailedError,
@@ -52,23 +52,23 @@ import {
52
52
  WorkspaceInitPathEscapeError,
53
53
  WorkspaceInitRaceError,
54
54
  WorkspaceInitSymlinkError
55
- } from "./chunk-624NHDGB.js";
55
+ } from "./chunk-ERFDKH32.js";
56
56
  import {
57
57
  getPersistScopeForModelSelection,
58
58
  loadSettings
59
- } from "./chunk-6UQSU7CQ.js";
59
+ } from "./chunk-HPXV655A.js";
60
60
  import {
61
61
  getWorkspaceTrustStatus
62
- } from "./chunk-L4HVF7LM.js";
62
+ } from "./chunk-CYAUBK46.js";
63
63
  import {
64
64
  ModelsConfig,
65
65
  SkillManager,
66
66
  require_yauzl
67
- } from "./chunk-T6XLJRQY.js";
67
+ } from "./chunk-EWIQ3NAE.js";
68
68
  import {
69
69
  Storage,
70
70
  createDebugLogger
71
- } from "./chunk-A5F2YNO6.js";
71
+ } from "./chunk-UHQFIS7N.js";
72
72
  import {
73
73
  writeStderrLine,
74
74
  writeStderrLineSafe
@@ -5,7 +5,7 @@ import {
5
5
  } from "./chunk-NYWWQ437.js";
6
6
  import {
7
7
  SessionNotFoundError
8
- } from "./chunk-624NHDGB.js";
8
+ } from "./chunk-ERFDKH32.js";
9
9
  import {
10
10
  init_esbuild_shims
11
11
  } from "./chunk-5O2XNYP6.js";
@@ -42,6 +42,7 @@ function createWorkspaceGenerationGuard() {
42
42
  __name(createWorkspaceGenerationGuard, "createWorkspaceGenerationGuard");
43
43
  function createWorkspaceSessionOwnerIndex() {
44
44
  const bySessionId = /* @__PURE__ */ new Map();
45
+ const unavailableWorkspaces = /* @__PURE__ */ new Set();
45
46
  const register = /* @__PURE__ */ __name((sessionId, workspaceCwd) => {
46
47
  let owners = bySessionId.get(sessionId);
47
48
  if (!owners) {
@@ -52,9 +53,15 @@ function createWorkspaceSessionOwnerIndex() {
52
53
  }, "register");
53
54
  const remove = /* @__PURE__ */ __name((sessionId, workspaceCwd) => {
54
55
  if (workspaceCwd === void 0) {
55
- bySessionId.delete(sessionId);
56
+ const owners2 = bySessionId.get(sessionId);
57
+ if (!owners2) return;
58
+ for (const owner of owners2) {
59
+ if (!unavailableWorkspaces.has(owner)) owners2.delete(owner);
60
+ }
61
+ if (owners2.size === 0) bySessionId.delete(sessionId);
56
62
  return;
57
63
  }
64
+ if (unavailableWorkspaces.has(workspaceCwd)) return;
58
65
  const owners = bySessionId.get(sessionId);
59
66
  if (!owners) return;
60
67
  owners.delete(workspaceCwd);
@@ -66,7 +73,12 @@ function createWorkspaceSessionOwnerIndex() {
66
73
  register,
67
74
  remove,
68
75
  getWorkspaceCwds: /* @__PURE__ */ __name((sessionId) => [...bySessionId.get(sessionId) ?? []], "getWorkspaceCwds"),
76
+ markWorkspaceUnavailable: /* @__PURE__ */ __name((workspaceCwd) => {
77
+ unavailableWorkspaces.add(workspaceCwd);
78
+ }, "markWorkspaceUnavailable"),
79
+ isWorkspaceUnavailable: /* @__PURE__ */ __name((workspaceCwd) => unavailableWorkspaces.has(workspaceCwd), "isWorkspaceUnavailable"),
69
80
  removeWorkspace: /* @__PURE__ */ __name((workspaceCwd) => {
81
+ if (unavailableWorkspaces.has(workspaceCwd)) return;
70
82
  for (const [sessionId, owners] of bySessionId) {
71
83
  owners.delete(workspaceCwd);
72
84
  if (owners.size === 0) bySessionId.delete(sessionId);
@@ -345,7 +357,9 @@ function createWorkspaceRegistry(inputRuntimes, options = {}) {
345
357
  const entry = entryForRuntime(runtime);
346
358
  if (!entry || runtime.primary || entry.state !== "draining") return;
347
359
  entry.current?.guard.close();
348
- if (!entry.internal) {
360
+ if (entry.internal) {
361
+ sessionOwnerIndex?.markWorkspaceUnavailable(runtime.workspaceCwd);
362
+ } else {
349
363
  sessionOwnerIndex?.removeWorkspace(runtime.workspaceCwd);
350
364
  }
351
365
  }, "commitDrain"),
@@ -358,7 +372,9 @@ function createWorkspaceRegistry(inputRuntimes, options = {}) {
358
372
  byId.delete(runtime.workspaceId);
359
373
  const index = entries.indexOf(entry);
360
374
  if (index >= 0) entries.splice(index, 1);
361
- sessionOwnerIndex?.removeWorkspace(runtime.workspaceCwd);
375
+ if (!entry.internal) {
376
+ sessionOwnerIndex?.removeWorkspace(runtime.workspaceCwd);
377
+ }
362
378
  }, "completeDrain"),
363
379
  resolveLiveSessionOwner: /* @__PURE__ */ __name((sessionId) => {
364
380
  const indexedCwds = sessionOwnerIndex?.getWorkspaceCwds(sessionId) ?? [];
@@ -369,6 +385,10 @@ function createWorkspaceRegistry(inputRuntimes, options = {}) {
369
385
  const entry = byCwd.get(workspaceCwd);
370
386
  const runtime = entry?.current?.runtime;
371
387
  if (!entry || !runtime || entry.state === "removed") {
388
+ if (sessionOwnerIndex?.isWorkspaceUnavailable(workspaceCwd)) {
389
+ internalUnavailable = true;
390
+ continue;
391
+ }
372
392
  sessionOwnerIndex?.remove(sessionId, workspaceCwd);
373
393
  continue;
374
394
  }
@@ -2,26 +2,26 @@
2
2
  "use strict";
3
3
  import {
4
4
  getExtensionManager
5
- } from "./chunk-S4C4JJKE.js";
5
+ } from "./chunk-6ZZBRRKQ.js";
6
6
  import {
7
7
  parseChannelConfig
8
- } from "./chunk-5XUTPXQU.js";
8
+ } from "./chunk-QPTRRPZU.js";
9
9
  import {
10
10
  getPlugin,
11
11
  registerPlugin
12
- } from "./chunk-QS4ENGVF.js";
12
+ } from "./chunk-Y4TPOUEV.js";
13
13
  import {
14
14
  sanitizeLogText
15
- } from "./chunk-AW27A43Y.js";
15
+ } from "./chunk-ICURCKIU.js";
16
16
  import {
17
17
  loadSettings
18
- } from "./chunk-6UQSU7CQ.js";
18
+ } from "./chunk-HPXV655A.js";
19
19
  import {
20
20
  hashDaemonWorkspace
21
- } from "./chunk-2UZJWSVD.js";
21
+ } from "./chunk-3WK3QDNV.js";
22
22
  import {
23
23
  Storage
24
- } from "./chunk-A5F2YNO6.js";
24
+ } from "./chunk-UHQFIS7N.js";
25
25
  import {
26
26
  writeStderrLine,
27
27
  writeStdoutLine
@@ -26,7 +26,8 @@ function mapSkillConfigToStatus(skill, disablements = /* @__PURE__ */ new Map(),
26
26
  installedPath: skill.filePath,
27
27
  ...skill.argumentHint ? { argumentHint: skill.argumentHint } : {},
28
28
  ...skill.model ? { model: skill.model } : {},
29
- ...skill.extensionName ? { extensionName: skill.extensionName } : {}
29
+ ...skill.level === "extension" && skill.extensionName ? { extensionName: skill.extensionName } : {},
30
+ ...skill.level === "extension" && skill.extensionDisplayName ? { extensionDisplayName: skill.extensionDisplayName } : {}
30
31
  };
31
32
  }
32
33
  __name(mapSkillConfigToStatus, "mapSkillConfigToStatus");
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  createDebugLogger
5
- } from "./chunk-A5F2YNO6.js";
5
+ } from "./chunk-UHQFIS7N.js";
6
6
  import {
7
7
  init_esbuild_shims
8
8
  } from "./chunk-5O2XNYP6.js";
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  theme
5
- } from "./chunk-3ZFJUBTP.js";
5
+ } from "./chunk-WAOIHTJS.js";
6
6
  import {
7
7
  require_jsx_runtime
8
8
  } from "./chunk-SV5PQVQE.js";
@@ -21,7 +21,7 @@ import {
21
21
  } from "./chunk-2MIN6GRR.js";
22
22
  import {
23
23
  createDebugLogger
24
- } from "./chunk-A5F2YNO6.js";
24
+ } from "./chunk-UHQFIS7N.js";
25
25
  import {
26
26
  init_esbuild_shims
27
27
  } from "./chunk-5O2XNYP6.js";
@@ -2,14 +2,14 @@
2
2
  "use strict";
3
3
  import {
4
4
  STATUS_SCHEMA_VERSION
5
- } from "./chunk-URN2JIAQ.js";
5
+ } from "./chunk-7TUBJBBJ.js";
6
6
  import {
7
7
  formatMemoryUsage
8
- } from "./chunk-T6XLJRQY.js";
8
+ } from "./chunk-EWIQ3NAE.js";
9
9
  import {
10
10
  detectRuntime,
11
11
  redactProxyCredentials
12
- } from "./chunk-PZRUV52H.js";
12
+ } from "./chunk-PPKZ7JOE.js";
13
13
  import {
14
14
  init_esbuild_shims
15
15
  } from "./chunk-5O2XNYP6.js";
@@ -0,0 +1,346 @@
1
+ // Force strict mode and setup for ESM
2
+ "use strict";
3
+ import {
4
+ hasControlCharacter
5
+ } from "./chunk-K5KXUXWC.js";
6
+ import {
7
+ BaseDeclarativeTool,
8
+ BaseToolInvocation,
9
+ ToolDisplayNames,
10
+ ToolNames
11
+ } from "./chunk-UTLCH2FK.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
+ */