@qwen-code/qwen-code 0.23.3 → 0.23.4-nightly.20260914.f024b37689

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 (462) hide show
  1. package/bundled/computer-use/SKILL.md +219 -154
  2. package/bundled/computer-use/references/macos.md +208 -0
  3. package/bundled/computer-use/references/windows-linux.md +247 -0
  4. package/bundled/goal-draft/SKILL.md +10 -10
  5. package/bundled/qc-helper/docs/configuration/settings.md +81 -71
  6. package/bundled/qc-helper/docs/extension/getting-started-extensions.md +2 -0
  7. package/bundled/qc-helper/docs/extension/introduction.md +9 -3
  8. package/bundled/qc-helper/docs/features/_meta.ts +1 -0
  9. package/bundled/qc-helper/docs/features/agent-board.md +89 -0
  10. package/bundled/qc-helper/docs/features/channels/dingtalk.md +3 -21
  11. package/bundled/qc-helper/docs/features/channels/dws.md +5 -1
  12. package/bundled/qc-helper/docs/features/channels/overview.md +5 -6
  13. package/bundled/qc-helper/docs/features/code-review.md +18 -4
  14. package/bundled/qc-helper/docs/features/commands.md +9 -0
  15. package/bundled/qc-helper/docs/features/computer-use.md +26 -8
  16. package/bundled/qc-helper/docs/features/cross-session-protocol.md +23 -5
  17. package/bundled/qc-helper/docs/features/followup-suggestions.md +17 -5
  18. package/bundled/qc-helper/docs/features/goals.md +22 -18
  19. package/bundled/qc-helper/docs/features/hooks.md +280 -106
  20. package/bundled/qc-helper/docs/features/skills.md +33 -3
  21. package/bundled/qc-helper/docs/features/status-line.md +2 -0
  22. package/bundled/qc-helper/docs/features/sub-agents.md +27 -0
  23. package/bundled/qc-helper/docs/qwen-serve.md +7 -3
  24. package/bundled/review/SKILL.md +20 -10
  25. package/bundled/review/references/persistence.md +2 -0
  26. package/bundled/workflow-authoring/SKILL.md +442 -0
  27. package/bundled/workflow-creator/SKILL.md +1 -1
  28. package/chunks/{MaxSizedBox-D4LW7RZZ.js → MaxSizedBox-RT5FZP45.js} +59 -55
  29. package/chunks/{StandaloneSessionPicker-ALTTRWUP.js → StandaloneSessionPicker-RFPH4XLD.js} +83 -79
  30. package/chunks/{acp-startup-profiler-KEU6VAYR.js → acp-startup-profiler-RUQNTNU5.js} +2 -2
  31. package/chunks/acp-subagent-executor-3OYJJTVX.js +141 -0
  32. package/chunks/{acpAgent-BBSW7XZG.js → acpAgent-DWJA7565.js} +1026 -355
  33. package/chunks/{agent-SQ6OY3QD.js → agent-JLSKPDD6.js} +43 -39
  34. package/chunks/{agent-headless-RI2THRQ7.js → agent-headless-5DRZSKW6.js} +43 -39
  35. package/chunks/{anthropicContentGenerator-JSKMKS6V.js → anthropicContentGenerator-H5YPXIDE.js} +37 -15
  36. package/chunks/{artifact-tool-PMYZCYNH.js → artifact-tool-MFGORTWZ.js} +59 -109
  37. package/chunks/{askUserQuestion-4M4YYIB4.js → askUserQuestion-WS4GUT7C.js} +3 -3
  38. package/chunks/{bridge-DAFMI72L.js → bridge-53QBYO6W.js} +63 -58
  39. package/chunks/{build-63BIOYWK.js → build-5KWQBWEQ.js} +1 -1
  40. package/chunks/{ca-KC2AISNS.js → ca-GZ4FDJU2.js} +3 -3
  41. package/chunks/{channel-management-service-OWDXVL7R.js → channel-management-service-AFVIT4VH.js} +8 -8
  42. package/chunks/{channel-settings-store-4I6JONT7.js → channel-settings-store-QJJZURJO.js} +68 -64
  43. package/chunks/{channel-worker-group-F2ZZMLNS.js → channel-worker-group-JR6JOELM.js} +8 -8
  44. package/chunks/{channel-worker-manager-2SZLJJSJ.js → channel-worker-manager-AVKJEZFL.js} +8 -8
  45. package/chunks/{channel-worker-supervisor-ZFNWMG6D.js → channel-worker-supervisor-OOYY7BAQ.js} +5 -5
  46. package/chunks/{chunk-AC6KDLH3.js → chunk-23NA3NCR.js} +1 -1
  47. package/chunks/{chunk-6JACAGYH.js → chunk-2S2WIGCM.js} +1 -1
  48. package/chunks/{chunk-IUVIBDKU.js → chunk-2YMRRI2C.js} +9 -10
  49. package/chunks/{chunk-NOAG7N22.js → chunk-3CEFQSKN.js} +2 -2
  50. package/chunks/{chunk-F53KKZUD.js → chunk-3LMDSCLU.js} +158 -10
  51. package/chunks/{chunk-WG7BL3FY.js → chunk-473RJLIH.js} +1 -1
  52. package/chunks/{chunk-W5ZQMAEM.js → chunk-4Y2I3CI3.js} +1 -1
  53. package/chunks/{chunk-HGEUHUEV.js → chunk-54B2LTKP.js} +1 -1
  54. package/chunks/{chunk-IRH27ZC2.js → chunk-5EZRLTLQ.js} +4 -4
  55. package/chunks/{chunk-DLH7YIX6.js → chunk-5FK4MSHB.js} +3 -3
  56. package/chunks/{chunk-CUEXOHQH.js → chunk-5ODRE7E5.js} +9 -15
  57. package/chunks/{chunk-ZU47FBOC.js → chunk-5VPMGZ2V.js} +144 -12
  58. package/chunks/{chunk-532WHF4F.js → chunk-5VQR2DD7.js} +2 -2
  59. package/chunks/{chunk-YBUMTY7B.js → chunk-66N6C4EH.js} +1 -1
  60. package/chunks/{chunk-NHCZJQE4.js → chunk-6CHDV2MQ.js} +6 -6
  61. package/chunks/{chunk-Y2MYW47X.js → chunk-6WXVEDT2.js} +9 -2
  62. package/chunks/{chunk-SBRX4BDI.js → chunk-74NZLSCZ.js} +2 -2
  63. package/chunks/{chunk-7APZIRH3.js → chunk-755ZTFXV.js} +5 -5
  64. package/chunks/{chunk-ZHKTKHMO.js → chunk-7MIBD3LG.js} +1 -1
  65. package/chunks/{chunk-NJQTG2G3.js → chunk-7Q3B23XG.js} +11 -11
  66. package/chunks/{chunk-76RGWKLS.js → chunk-ABNX6E6K.js} +1 -1
  67. package/chunks/chunk-ACHCT36C.js +28 -0
  68. package/chunks/{chunk-NE624IVP.js → chunk-ADQUK6WA.js} +1 -1
  69. package/chunks/{chunk-PLLIWEM3.js → chunk-AEWCOE64.js} +2 -2
  70. package/chunks/{chunk-KOKPXIAN.js → chunk-AKVL46TX.js} +3 -3
  71. package/chunks/{chunk-RWVD5RRY.js → chunk-AKX4Y4PS.js} +3 -3
  72. package/chunks/{chunk-3FPYT6QC.js → chunk-ARDHE6MM.js} +23 -0
  73. package/chunks/{chunk-EVTNACMT.js → chunk-ASOI6Z7M.js} +12 -12
  74. package/chunks/{chunk-LILGKQ4B.js → chunk-AXZMWAJV.js} +156 -26
  75. package/chunks/{chunk-XBZTAGB7.js → chunk-AYS36QDK.js} +1 -1
  76. package/chunks/{chunk-MLQNSPRZ.js → chunk-BBGX7NTA.js} +15 -5
  77. package/chunks/{chunk-Q5BD56BW.js → chunk-BPLCAEJZ.js} +7 -7
  78. package/chunks/{chunk-TPKQIA7G.js → chunk-BSIOCNDK.js} +1 -1
  79. package/chunks/{chunk-U7O65WKL.js → chunk-BW2SMO6L.js} +1 -1
  80. package/chunks/{chunk-MSNHNAQZ.js → chunk-BYOV6CG6.js} +3 -3
  81. package/chunks/{chunk-WBCPROWX.js → chunk-C4HBZQNH.js} +1 -1
  82. package/chunks/{chunk-NOO4QFXM.js → chunk-C75BXMPM.js} +1 -3
  83. package/chunks/chunk-CFMZLE3L.js +75 -0
  84. package/chunks/{chunk-SODMFNAR.js → chunk-CMM34UXX.js} +5 -5
  85. package/chunks/{chunk-AXTFYDXT.js → chunk-CXXAZ2LZ.js} +1 -1
  86. package/chunks/{chunk-OLTN767L.js → chunk-DGK4IQXU.js} +2 -2
  87. package/chunks/{chunk-J3TJH52D.js → chunk-DOTF2PF2.js} +1 -1
  88. package/chunks/{chunk-HBU7EKY4.js → chunk-DQLYJFK2.js} +45 -15
  89. package/chunks/{chunk-BWQLXU37.js → chunk-DTMRHTFW.js} +381 -86
  90. package/chunks/{chunk-2ALXPGB4.js → chunk-E6IR653O.js} +1 -1
  91. package/chunks/{chunk-ZKYR7QS4.js → chunk-EDB556X7.js} +2 -2
  92. package/chunks/{chunk-NUQVB25K.js → chunk-EKMJR7M3.js} +2 -2
  93. package/chunks/{chunk-7QYWGTHB.js → chunk-EPVEPTI3.js} +44 -151
  94. package/chunks/{acp-subagent-executor-LEUN3N7N.js → chunk-EQAAQVLD.js} +11 -110
  95. package/chunks/{chunk-53GWJOLP.js → chunk-F7WDCD2N.js} +3 -1
  96. package/chunks/{chunk-S6Q6Q4P2.js → chunk-FBDHP23D.js} +1 -1
  97. package/chunks/{chunk-3KQBQ6FM.js → chunk-FEMYSX4G.js} +190 -28
  98. package/chunks/{chunk-3I7W2POO.js → chunk-FGROOEKM.js} +5 -40
  99. package/chunks/{chunk-LDVNJZGH.js → chunk-FIRCQJG2.js} +17 -8
  100. package/chunks/{chunk-HNLMYDQE.js → chunk-FMLBBXHB.js} +13 -9
  101. package/chunks/{chunk-ALMR3E6Q.js → chunk-GDWE23OR.js} +3 -3
  102. package/chunks/{chunk-X7UJKOHZ.js → chunk-GG27UVAT.js} +4 -6
  103. package/chunks/{chunk-DT75RKNH.js → chunk-GKLJIDLK.js} +3 -3
  104. package/chunks/{chunk-IAEXTMED.js → chunk-GNV2SFO7.js} +173 -7
  105. package/chunks/{chunk-CXTPVBFA.js → chunk-GSS4SZNG.js} +100 -17
  106. package/chunks/{chunk-BWAMMKIS.js → chunk-GYKAXTMQ.js} +135 -6
  107. package/chunks/{chunk-IL5M5NYD.js → chunk-HCKYDMYV.js} +11 -9
  108. package/chunks/{chunk-6HUXPLB5.js → chunk-HEOH7JZY.js} +5 -5
  109. package/chunks/{chunk-DTNV6UZY.js → chunk-HFJSQ4GL.js} +10 -24
  110. package/chunks/{chunk-SSGAAWLY.js → chunk-HNTIWVRC.js} +95 -73
  111. package/chunks/{chunk-E7LB57MB.js → chunk-HUD3U4GY.js} +6 -6
  112. package/chunks/{chunk-MHAADZOZ.js → chunk-HVCRYFA4.js} +3 -3
  113. package/chunks/{chunk-VZUCTJ2P.js → chunk-I6YJZGHS.js} +10 -10
  114. package/chunks/{chunk-RZHU3K6M.js → chunk-IAS753HG.js} +2 -20
  115. package/chunks/{chunk-EDMXGXAK.js → chunk-IBRQG2MP.js} +10 -13
  116. package/chunks/chunk-INGBUYL6.js +230 -0
  117. package/chunks/{chunk-7ICHPMBQ.js → chunk-IVUKJRSD.js} +4 -4
  118. package/chunks/{chunk-NRXWJXJ4.js → chunk-IYSXQ5I4.js} +15 -15
  119. package/chunks/{chunk-XGYHNWL3.js → chunk-J7LBAKDH.js} +3 -3
  120. package/chunks/{chunk-3BTSSIJO.js → chunk-JDKY7O5J.js} +99 -14
  121. package/chunks/chunk-JPXPY5L4.js +1416 -0
  122. package/chunks/{chunk-LG5Y4OWO.js → chunk-JRHKM3YQ.js} +2 -2
  123. package/chunks/{chunk-RLLRJJDR.js → chunk-JYTUSZOK.js} +2 -2
  124. package/chunks/{chunk-W5FIP7FC.js → chunk-K2JLUF22.js} +5 -5
  125. package/chunks/{chunk-POC3YMHG.js → chunk-K7YI4MSY.js} +4 -4
  126. package/chunks/{chunk-UKZ45TJL.js → chunk-KDXTBWQB.js} +420 -219
  127. package/chunks/{chunk-N7VWZDWW.js → chunk-KJFGH23C.js} +4506 -3840
  128. package/chunks/{chunk-K2OJUPOE.js → chunk-KP2FHIFR.js} +12 -0
  129. package/chunks/{chunk-GCDXVPFK.js → chunk-KYBIIQOQ.js} +31 -7
  130. package/chunks/{chunk-IV7GDNKC.js → chunk-KZCK5JUN.js} +4 -4
  131. package/chunks/{chunk-MF6E7FSA.js → chunk-L63PZHD7.js} +8 -201
  132. package/chunks/{chunk-ZW2EUO2A.js → chunk-L6DIANLD.js} +1 -1
  133. package/chunks/chunk-LAKMZLJ5.js +191 -0
  134. package/chunks/{chunk-DYFOSJHU.js → chunk-LCYVZFMV.js} +2769 -1153
  135. package/chunks/{chunk-3UXUOFO6.js → chunk-LLJIZIRQ.js} +9 -10
  136. package/chunks/chunk-LMJSPC55.js +260 -0
  137. package/chunks/{chunk-YQHLFCPU.js → chunk-LOAW7JYR.js} +32 -24
  138. package/chunks/{chunk-X6K77VHC.js → chunk-LWWRJRCD.js} +1 -1
  139. package/chunks/{chunk-UXEO7E3V.js → chunk-LYD3T3H7.js} +1 -0
  140. package/chunks/{chunk-E4UEO3XM.js → chunk-ME4JBHSB.js} +324 -2
  141. package/chunks/{chunk-BV6Q5HMY.js → chunk-MJHLKWGJ.js} +8 -7
  142. package/chunks/{chunk-NFYEQRLG.js → chunk-MQRLLBMQ.js} +1 -1
  143. package/chunks/{chunk-3XLK2QMY.js → chunk-MVLLTUOB.js} +59 -16
  144. package/chunks/{chunk-O4KNCAX4.js → chunk-NCPFOLM2.js} +11 -0
  145. package/chunks/{chunk-2SZH22YO.js → chunk-NJ2OFVUX.js} +115 -97
  146. package/chunks/{chunk-GOXQL4YH.js → chunk-NLRWN5PN.js} +2 -2
  147. package/chunks/{chunk-6MBXY6WM.js → chunk-NRQI3PGS.js} +1 -1
  148. package/chunks/{chunk-JYKWOREU.js → chunk-NSY7YQMU.js} +13 -3
  149. package/chunks/{chunk-NMRCXKQ5.js → chunk-NUIF54XD.js} +3 -3
  150. package/chunks/{chunk-3CZ2BQV6.js → chunk-NXUZFW3G.js} +49 -19
  151. package/chunks/chunk-OAWFG54S.js +32 -0
  152. package/chunks/{chunk-DAWWT2ID.js → chunk-OBHKFWAE.js} +1374 -2164
  153. package/chunks/{chunk-HBQ2NXOU.js → chunk-OKSSFN7F.js} +2 -2
  154. package/chunks/{chunk-NHJKAR6E.js → chunk-ON7M7VUD.js} +972 -18
  155. package/chunks/{chunk-5GLDOLNQ.js → chunk-OWUAZXXN.js} +4 -3
  156. package/chunks/{chunk-2UWQX4FP.js → chunk-OZEV3R3S.js} +1 -1
  157. package/chunks/{chunk-FCQJLMA2.js → chunk-Q3TFRP5G.js} +178 -8
  158. package/chunks/{chunk-ZKZHSB5W.js → chunk-QR4Q425T.js} +9 -9
  159. package/chunks/{chunk-J6MB5ZHZ.js → chunk-QZW6WRB7.js} +2 -1
  160. package/chunks/{chunk-TP6FYVQT.js → chunk-RSWBT7AZ.js} +33 -1
  161. package/chunks/chunk-S7UQ3V2H.js +87 -0
  162. package/chunks/{chunk-N6VQ37ZZ.js → chunk-SFL6U7U7.js} +1 -1
  163. package/chunks/{chunk-MOS5OAOG.js → chunk-SROLVJFY.js} +6 -6
  164. package/chunks/{chunk-HUXPEUFL.js → chunk-SYROIHU7.js} +1 -1
  165. package/chunks/{chunk-PSPAM24S.js → chunk-TBSCTWKF.js} +6 -0
  166. package/chunks/chunk-TDS25ULF.js +154 -0
  167. package/chunks/chunk-U6H3XTFA.js +95 -0
  168. package/chunks/{chunk-Z3GF56ME.js → chunk-UDEWJKNB.js} +3 -3
  169. package/chunks/{chunk-7BXXIQG4.js → chunk-ULPXHGLV.js} +36 -72
  170. package/chunks/{chunk-5KI7ZDTB.js → chunk-UN6YL6VF.js} +24 -12
  171. package/chunks/{chunk-JXNIF2O5.js → chunk-V545KI73.js} +1 -1
  172. package/chunks/chunk-VGY2RGXL.js +100 -0
  173. package/chunks/{chunk-TBEXLLAO.js → chunk-VRQZESKP.js} +1 -1
  174. package/chunks/{chunk-FN3JNDRU.js → chunk-VVI7MK3V.js} +3 -3
  175. package/chunks/{chunk-NMCDMLHL.js → chunk-VYIE36BF.js} +50 -35
  176. package/chunks/{chunk-EUURTIV6.js → chunk-WBSJ6VPZ.js} +10 -2
  177. package/chunks/{chunk-NLNQNBZ2.js → chunk-WD6YQI5M.js} +1 -1
  178. package/chunks/chunk-WDH4TVD3.js +2812 -0
  179. package/chunks/chunk-WFNEY5G7.js +347 -0
  180. package/chunks/{chunk-XKBFYTCD.js → chunk-WK6DEH3Q.js} +46 -0
  181. package/chunks/{chunk-36HCNKDS.js → chunk-WKVZES7O.js} +65 -14
  182. package/chunks/{chunk-R4Q2PEFV.js → chunk-WVQHS26P.js} +1 -1
  183. package/chunks/{chunk-GSILBZLN.js → chunk-XCQJUYLQ.js} +2 -2
  184. package/chunks/{chunk-KFZYGSJN.js → chunk-XMWEUO26.js} +3 -3
  185. package/chunks/{chunk-2PJRI3EH.js → chunk-XPEZVAK2.js} +218 -43
  186. package/chunks/{chunk-OX7IZ2G5.js → chunk-XPULQNNS.js} +4 -4
  187. package/chunks/{chunk-VX63RJXE.js → chunk-XX5HQLCZ.js} +7 -0
  188. package/chunks/{chunk-2Z3T52OC.js → chunk-Y5TM7SBV.js} +7 -2
  189. package/chunks/{chunk-SYLECP23.js → chunk-Y7W2X4WN.js} +4 -4
  190. package/chunks/{chunk-2ZN3O5FT.js → chunk-YAC6S4ZF.js} +6 -6
  191. package/chunks/{chunk-V2P3DOQR.js → chunk-YDFOHRS5.js} +1 -1
  192. package/chunks/{chunk-HGAELO7B.js → chunk-YFX2M3ZI.js} +2 -2
  193. package/chunks/{chunk-QMUYLYT5.js → chunk-YGFJ6BRT.js} +1 -1
  194. package/chunks/{chunk-LK2WUCDQ.js → chunk-YM6KUQ2S.js} +1 -1
  195. package/chunks/{chunk-BZM5U74J.js → chunk-YQSC7BRZ.js} +724 -468
  196. package/chunks/chunk-Z72PLR74.js +36 -0
  197. package/chunks/{chunk-6W4HBUA2.js → chunk-ZGZN54IU.js} +1 -1
  198. package/chunks/{chunk-BHTYRHJF.js → chunk-ZJ7JQUGY.js} +4 -1
  199. package/chunks/{chunk-4ALNJDHL.js → chunk-ZKIAGIGH.js} +87 -4
  200. package/chunks/{chunk-F42YYSCK.js → chunk-ZLU6NBSL.js} +8 -8
  201. package/chunks/{chunk-VG3Q2NC4.js → chunk-ZNI3YJHS.js} +32 -12
  202. package/chunks/{chunk-Q2LVVIKF.js → chunk-ZZUXUBEB.js} +29 -12
  203. package/chunks/codex-subagent-executor-QEDKWUAR.js +586 -0
  204. package/chunks/{config-utils-L6KLDYIV.js → config-utils-HCV2DX7W.js} +60 -56
  205. package/chunks/{contextCommand-UYEH7NIU.js → contextCommand-U5WK3XNI.js} +58 -54
  206. package/chunks/{core-runtime-NVHT3Z3V.js → core-runtime-RODZHBF7.js} +58 -55
  207. package/chunks/{create-sub-session-YWASE5VH.js → create-sub-session-L6UGUL4T.js} +169 -89
  208. package/chunks/{create-sub-session-TIGCFGCS.js → create-sub-session-MSGNIM37.js} +5 -2
  209. package/chunks/{cron-create-AKWX67FO.js → cron-create-U2JJ5CCF.js} +3 -3
  210. package/chunks/{cron-delete-XPB6IYZJ.js → cron-delete-7DM4LJWD.js} +2 -2
  211. package/chunks/{cron-list-XBKO4WU5.js → cron-list-VCUSZK2Y.js} +2 -2
  212. package/chunks/{daemon-G5TYKZD6.js → daemon-NJB4PWZ7.js} +3 -1
  213. package/chunks/{daemon-git-worktree-guard-FOW4RQSK.js → daemon-git-worktree-guard-Y5T7KIBG.js} +58 -54
  214. package/chunks/{daemon-status-provider-O5KQZYMP.js → daemon-status-provider-AQBGUOGB.js} +68 -63
  215. package/chunks/{daemon-trust-policy-3ATXEON7.js → daemon-trust-policy-EB2NNNDT.js} +64 -60
  216. package/chunks/{daemon-trust-policy-monitor-7MCNDNEC.js → daemon-trust-policy-monitor-AFI3E2Z5.js} +64 -60
  217. package/chunks/{de-UU2YTO37.js → de-VGY3VNBU.js} +3 -3
  218. package/chunks/{deferred-core-runtime-JK5IXL5K.js → deferred-core-runtime-H7ZSF3PZ.js} +56 -52
  219. package/chunks/{discovery-XP4RMDUM.js → discovery-5KUEPR65.js} +2 -2
  220. package/chunks/{display-image-NAH3AZ63.js → display-image-QTHALY6N.js} +3 -3
  221. package/chunks/{dist-KLZ7XGEQ.js → dist-2QYIVNS6.js} +1 -4
  222. package/chunks/{dist-AHJYPSJL.js → dist-GUB7QRYA.js} +2 -5
  223. package/chunks/{dist-ZXTZTE54.js → dist-MPUZZOG5.js} +4 -17
  224. package/chunks/{dist-F2DVGTL3.js → dist-NIOJXMGY.js} +111 -101
  225. package/chunks/{dist-KJGRVIGJ.js → dist-PA7WPFVE.js} +5 -36
  226. package/chunks/{dist-AIKC5E5P.js → dist-SE4J6Z4O.js} +43 -669
  227. package/chunks/{dist-H6G3K26N.js → dist-T6DDPDLQ.js} +14 -34
  228. package/chunks/{dist-GWNQVPZT.js → dist-TFGETXFN.js} +10 -33
  229. package/chunks/{dist-ZA52JXAS.js → dist-VDLSBCLM.js} +1 -5
  230. package/chunks/{edit-SY35KYIE.js → edit-AFPKKMKD.js} +46 -42
  231. package/chunks/{en-CAJHTIQT.js → en-E5ZO5TZW.js} +5 -3
  232. package/chunks/{enter-worktree-54L5QJ3N.js → enter-worktree-CAARFWBI.js} +6 -5
  233. package/chunks/{enterPlanMode-HXX6KQJR.js → enterPlanMode-3Z3I6I4K.js} +43 -39
  234. package/chunks/{environment-DKXHG4HB.js → environment-G4NM4JE4.js} +59 -55
  235. package/chunks/{errors-ADY7LQJJ.js → errors-XVV3RAEG.js} +58 -54
  236. package/chunks/exec-RPKEY6HP.js +505 -0
  237. package/chunks/{exit-worktree-EORJDKDS.js → exit-worktree-JXGGUOBP.js} +6 -5
  238. package/chunks/{exitPlanMode-HSK2CQI6.js → exitPlanMode-JGUYOZCP.js} +43 -39
  239. package/chunks/{fast-path-U636VWN2.js → fast-path-SXPNVZAS.js} +10 -10
  240. package/chunks/{fast-path-settings-V7MI7EZJ.js → fast-path-settings-XDYX7X5Z.js} +2 -2
  241. package/chunks/{fr-HKNWVXRJ.js → fr-UAZJJH5N.js} +3 -3
  242. package/chunks/{glob-GUGGTH5L.js → glob-BPOP43P6.js} +43 -39
  243. package/chunks/{goal-tools-PXYRSQGX.js → goal-tools-FQXDPBCD.js} +49 -41
  244. package/chunks/{grep-3PKFKLCA.js → grep-H2I33VAO.js} +8 -3
  245. package/chunks/{handleAutoUpdate-5KHS4HIN.js → handleAutoUpdate-23TEWABL.js} +61 -57
  246. package/chunks/{i18n-KSGKMUPT.js → i18n-2LI3LH4L.js} +57 -53
  247. package/chunks/{image-gen-OCCR2WWU.js → image-gen-5G2TQ3DY.js} +6 -5
  248. package/chunks/{initializer-YYT5XEZF.js → initializer-IHSQVGZD.js} +64 -60
  249. package/chunks/{installationInfo-UNSBPYW2.js → installationInfo-KTZGFBDG.js} +57 -53
  250. package/chunks/{ja-GJS5RZGU.js → ja-2RITCMAJ.js} +3 -3
  251. package/chunks/list-K2XO7FLR.js +133 -0
  252. package/chunks/{list-agents-QLDXS5OD.js → list-agents-EWDCEPIW.js} +3 -3
  253. package/chunks/{llm-XGGLBGPH.js → llm-FFYRSEJZ.js} +161 -125
  254. package/chunks/{llm-content-generator-ZHQQT5W7.js → llm-content-generator-EXJEU5MJ.js} +14 -7
  255. package/chunks/{loadedSettingsAdapter-3DXLASK7.js → loadedSettingsAdapter-BSWBMUIT.js} +64 -60
  256. package/chunks/{loggingContentGenerator-V72OCCJO.js → loggingContentGenerator-RE3L7S24.js} +47 -43
  257. package/chunks/{loop-wakeup-HHMYIC7Z.js → loop-wakeup-VG6CGBQA.js} +4 -4
  258. package/chunks/{ls-N7ABR6HI.js → ls-6ZB3BEIR.js} +1 -1
  259. package/chunks/{lsp-LTOFWG5P.js → lsp-M54FQARP.js} +5 -1
  260. package/chunks/{managed-npm-update-HV5LPZH2.js → managed-npm-update-D56DKMKV.js} +57 -53
  261. package/chunks/mcp-BS46APKT.js +127 -0
  262. package/chunks/model-configuration-L5WZ7NBY.js +140 -0
  263. package/chunks/modelConfigUtils-WAM6HBUX.js +119 -0
  264. package/chunks/{monitor-TLBNM4MV.js → monitor-CYXNE7UB.js} +43 -39
  265. package/chunks/{nonInteractiveCli-LSJSQ2W4.js → nonInteractiveCli-ZPBORWHM.js} +112 -107
  266. package/chunks/{notebook-edit-OSPOLZP6.js → notebook-edit-CSYGREO5.js} +45 -41
  267. package/chunks/{openaiContentGenerator-BE4S5TRD.js → openaiContentGenerator-KDGLKJVS.js} +24 -19
  268. package/chunks/{openaiResponsesContentGenerator-RTCAJ5V5.js → openaiResponsesContentGenerator-AWRYZLJU.js} +110 -19
  269. package/chunks/{pidfile-H32FEPWA.js → pidfile-QGUW5UJ7.js} +56 -52
  270. package/chunks/{processUtils-SSLIPDEA.js → processUtils-Q6GS3E2T.js} +2 -2
  271. package/chunks/{prompt-terminal-ledger-I5SLL6UF.js → prompt-terminal-ledger-BLCAZPSQ.js} +57 -53
  272. package/chunks/{pt-FXMYXEUV.js → pt-5ZF7ZQUV.js} +3 -3
  273. package/chunks/{qwenContentGenerator-TMQC623Z.js → qwenContentGenerator-LSRUVWCL.js} +47 -43
  274. package/chunks/{qwenOAuth2-3ZRQHHTC.js → qwenOAuth2-WIEUEFEY.js} +5 -4
  275. package/chunks/{read-file-T2QAIZE2.js → read-file-56DVLPQR.js} +9 -8
  276. package/chunks/{read-mcp-resource-B37WANAQ.js → read-mcp-resource-LPSWXVOD.js} +1 -1
  277. package/chunks/{record-artifact-OAXWXZ5D.js → record-artifact-PXMNP7GZ.js} +3 -3
  278. package/chunks/{record-source-D7R7X3GT.js → record-source-2GSY5JD5.js} +6 -6
  279. package/chunks/{report-findings-AR3VC6EQ.js → report-findings-W6GR7SYZ.js} +4 -4
  280. package/chunks/{request-shutdown-IKNWTX5M.js → request-shutdown-53SNYGVR.js} +5 -5
  281. package/chunks/{resumeHistoryUtils-QLKDH5GY.js → resumeHistoryUtils-ZM5PHHNI.js} +63 -59
  282. package/chunks/{ripGrep-YGWL7KCV.js → ripGrep-INOTDWED.js} +13 -11
  283. package/chunks/{ru-RMHURE5U.js → ru-7BNZFQKG.js} +3 -3
  284. package/chunks/{run-qwen-serve-26KZDECC.js → run-qwen-serve-NZY4OHHH.js} +314 -127
  285. package/chunks/{runtime-BMEIVDDG.js → runtime-6CSFTXGK.js} +69 -65
  286. package/chunks/{scheduled-tasks-NCFPP6VQ.js → scheduled-tasks-T5DMXMRI.js} +66 -60
  287. package/chunks/{scheduler-47TVMUVN.js → scheduler-STH4FWGX.js} +58 -54
  288. package/chunks/{sdk-exporters-http-VWTF4W6K.js → sdk-exporters-http-3R2TRQHE.js} +2 -1
  289. package/chunks/{sdk-impl-G6FVTBQZ.js → sdk-impl-4WF3VZ2F.js} +3 -3
  290. package/chunks/{send-message-TWOGWCBG.js → send-message-UMJKN27Q.js} +7 -7
  291. package/chunks/{serve-KL3G6LQQ.js → serve-K4VRD7S3.js} +66 -62
  292. package/chunks/{server-LBPYXZ5G.js → server-SAF6RZWD.js} +783 -350
  293. package/chunks/{session-YG6742LO.js → session-2IZX2R3S.js} +117 -112
  294. package/chunks/{session-attachments-root-OUBQDYC4.js → session-attachments-root-WFCEIOC7.js} +56 -52
  295. package/chunks/{session-pr-refresh-EKGMYNAW.js → session-pr-refresh-H7LDUL7K.js} +66 -60
  296. package/chunks/{settings-DDNHJX2L.js → settings-55B6W4ML.js} +67 -63
  297. package/chunks/{shell-KUCXWITU.js → shell-C6HWMJCS.js} +43 -39
  298. package/chunks/{skill-JQLKPNWZ.js → skill-IYKRY5HC.js} +128 -23
  299. package/chunks/{skill-settings-XERQCUXZ.js → skill-settings-YWKLCBV2.js} +72 -60
  300. package/chunks/{spawnChannel-GQ45QFGB.js → spawnChannel-YXUNPB3M.js} +60 -55
  301. package/chunks/{standalone-update-PRF3ILGZ.js → standalone-update-H6YIWY5F.js} +58 -54
  302. package/chunks/{start-opentui-ui-JDSOZE3N.js → start-opentui-ui-U2NNOY65.js} +2700 -2166
  303. package/chunks/{startInteractiveUI-RRW3JVHN.js → startInteractiveUI-ZF5EJN6N.js} +1621 -1783
  304. package/chunks/{syntheticOutput-F6F27JMK.js → syntheticOutput-EX5L5GYI.js} +2 -2
  305. package/chunks/{task-create-Y623TBHB.js → task-create-75HVPEAH.js} +7 -7
  306. package/chunks/{task-list-FCPEEGWL.js → task-list-ZLJSMRFA.js} +2 -2
  307. package/chunks/{task-stop-QTKZXLPH.js → task-stop-MD7P6QGK.js} +1 -1
  308. package/chunks/{task-update-YLSXF25N.js → task-update-RI7QNVDP.js} +20 -13
  309. package/chunks/{team-create-5DRLOLOE.js → team-create-XWCSBY3R.js} +43 -39
  310. package/chunks/{team-delete-S7TLHZCF.js → team-delete-RIDINW6I.js} +1 -1
  311. package/chunks/{team-plan-approval-MWSGAL5T.js → team-plan-approval-B2SOZ46Z.js} +43 -39
  312. package/chunks/{terminal-image-renderer-H7PD4FQW.js → terminal-image-renderer-HKBBPT64.js} +58 -54
  313. package/chunks/{theme-manager-7AV73D6R.js → theme-manager-LHBAB3RV.js} +56 -52
  314. package/chunks/{todoWrite-5QI2H2FW.js → todoWrite-XSTG2VT5.js} +6 -3
  315. package/chunks/{tool-search-UGYTBLUV.js → tool-search-D7UTGG7X.js} +17 -12
  316. package/chunks/{total-session-admission-JIHSTJ5S.js → total-session-admission-VN63755O.js} +63 -58
  317. package/chunks/{trustedFolders-5VCBXFOP.js → trustedFolders-GD56NJEV.js} +57 -53
  318. package/chunks/{update-relaunch-4LF3APCV.js → update-relaunch-BMQKKDR6.js} +5 -5
  319. package/chunks/{updateCheck-4T3WUE5F.js → updateCheck-BZFE6Z5I.js} +60 -56
  320. package/chunks/{useAutoAcceptIndicator-UMGB64Z6.js → useAutoAcceptIndicator-RD4YNRGG.js} +68 -64
  321. package/chunks/{validateNonInterActiveAuth-GFJ72U2C.js → validateNonInterActiveAuth-RWWD7TVJ.js} +109 -104
  322. package/chunks/{version-EAAZN4T2.js → version-DGWI3JF2.js} +1 -1
  323. package/chunks/{web-fetch-VRU3A2NI.js → web-fetch-2KXAHKDU.js} +15 -13
  324. package/chunks/web-search-LUI2YS33.js +45 -0
  325. package/chunks/{web-shell-static-CCN4JZEE.js → web-shell-static-T7UGLVE4.js} +2 -7
  326. package/chunks/{workflow-UHPFALVZ.js → workflow-WG7WNWMP.js} +179 -79
  327. package/chunks/workspace-providers-status-VJYJMUDI.js +133 -0
  328. package/chunks/{workspace-registration-store-A7RGKW62.js → workspace-registration-store-B3XUNFOG.js} +2 -2
  329. package/chunks/{workspace-registry-C2NGE6SD.js → workspace-registry-56R5RBVU.js} +63 -58
  330. package/chunks/{workspace-runtime-coordinator-QKMZ24YF.js → workspace-runtime-coordinator-EKDPCK4L.js} +66 -59
  331. package/chunks/{workspace-service-RQTTAGGC.js → workspace-service-UYGLM6XX.js} +70 -65
  332. package/chunks/workspace-skills-status-5HMTP63B.js +130 -0
  333. package/chunks/{workspace-trust-reconciler-KFWATZUU.js → workspace-trust-reconciler-AST2535P.js} +73 -68
  334. package/chunks/{write-file-DPVB2SBQ.js → write-file-F4R5RBBH.js} +45 -41
  335. package/chunks/{zh-TW-2K2WRFPY.js → zh-TW-7PRVUGLW.js} +5 -3
  336. package/chunks/{zh-S5V3Z5CR.js → zh-V2EYTYJP.js} +5 -3
  337. package/chunks/{zoom-image-S7AWLAPC.js → zoom-image-6HKQ5MFU.js} +11 -10
  338. package/cli.js +18 -17
  339. package/codeModeHost.js +4425 -0
  340. package/export-transcript-document.css +1 -1
  341. package/export-transcript-document.js +151 -151
  342. package/locales/ca.js +5 -6
  343. package/locales/de.js +5 -6
  344. package/locales/en.js +7 -6
  345. package/locales/fr.js +6 -6
  346. package/locales/ja.js +5 -6
  347. package/locales/pt.js +5 -6
  348. package/locales/ru.js +6 -6
  349. package/locales/zh-TW.js +7 -6
  350. package/locales/zh.js +7 -6
  351. package/package.json +4 -3
  352. package/web-shell/assets/{abnfDiagram-VCTEODGH-nU24rpIE.js → abnfDiagram-VCTEODGH-BtpzKw3A.js} +1 -1
  353. package/web-shell/assets/{arc-D1hTu8QI.js → arc-CQiVKZJP.js} +1 -1
  354. package/web-shell/assets/architectureDiagram-5GKGNRK7-ekIPBb2d.js +36 -0
  355. package/web-shell/assets/blockDiagram-NRAW4CY4-BrRWkWri.js +129 -0
  356. package/web-shell/assets/{c4Diagram-UCG6FXSJ-kEFoC1ei.js → c4Diagram-UCG6FXSJ-qYS8CYZ3.js} +4 -4
  357. package/web-shell/assets/channel-DSQQnOZj.js +1 -0
  358. package/web-shell/assets/{chunk-2Q5K7J3B-DbT9wS7j.js → chunk-2Q5K7J3B-ZasyyEZm.js} +1 -1
  359. package/web-shell/assets/{chunk-5VM5RSS4-CNbULt6O.js → chunk-5VM5RSS4-C_IzCGeA.js} +1 -1
  360. package/web-shell/assets/{chunk-F27PBJKO-CbQRy4Tb.js → chunk-F27PBJKO-C25NZOyD.js} +1 -1
  361. package/web-shell/assets/chunk-G27WJ6UU-XPOHNSGX.js +231 -0
  362. package/web-shell/assets/chunk-JWPE2WC7-BQBh0Xni.js +1 -0
  363. package/web-shell/assets/chunk-LCL6LL3I-CoShjpX7.js +206 -0
  364. package/web-shell/assets/chunk-POPQ4Y6H-BwRmCDSz.js +1 -0
  365. package/web-shell/assets/{chunk-SVP7TREG-DyBb2Axj.js → chunk-SVP7TREG-DSzE5-Mw.js} +4 -4
  366. package/web-shell/assets/{chunk-XXDRQBXY-BIA0eb5B.js → chunk-XXDRQBXY-BQSQv30h.js} +1 -1
  367. package/web-shell/assets/classDiagram-DTDB5LWJ-V94ta08R.js +1 -0
  368. package/web-shell/assets/classDiagram-v2-JRS7N3AN-V94ta08R.js +1 -0
  369. package/web-shell/assets/cose-bilkent-JH36ORCC-XVUVTHVo.js +1 -0
  370. package/web-shell/assets/cynefin-OW5HDTMX-CrsKx4lQ.js +178 -0
  371. package/web-shell/assets/{cynefinDiagram-5FMLGOSQ-LENf_IUy.js → cynefinDiagram-5FMLGOSQ-BPeZEuHw.js} +1 -1
  372. package/web-shell/assets/{cytoscape.esm-CUqq0XTU.js → cytoscape.esm-DJK6lGiH.js} +3 -3
  373. package/web-shell/assets/dagre-3AP2YEHR-D31cQ2Qs.js +4 -0
  374. package/web-shell/assets/diagram-S7CK7UJ4-zyiG097Q.js +30 -0
  375. package/web-shell/assets/diagram-UQ7AKVKN-Br3vtfsy.js +41 -0
  376. package/web-shell/assets/diagram-VSXAHHWV-Bxkhjx4u.js +3 -0
  377. package/web-shell/assets/diagram-VX7I27RA-BQH8QiDk.js +24 -0
  378. package/web-shell/assets/diagram-Z3DM3KII-B_aQ1cw0.js +24 -0
  379. package/web-shell/assets/{ebnfDiagram-PWID7BFC-BGpiquRm.js → ebnfDiagram-PWID7BFC-B9N7BRQE.js} +1 -1
  380. package/web-shell/assets/{erDiagram-SSCWMZ5O-D0besu_U.js → erDiagram-SSCWMZ5O-Cx6Hb1Re.js} +13 -13
  381. package/web-shell/assets/flowDiagram-A5DVABFB-DTuLP7GU.js +168 -0
  382. package/web-shell/assets/{ganttDiagram-EL5Y4UJY-CNlsAeNr.js → ganttDiagram-EL5Y4UJY-DYS3d-sL.js} +1 -1
  383. package/web-shell/assets/gitGraphDiagram-WWUBYQGX-Cp0EGx04.js +106 -0
  384. package/web-shell/assets/index-45-LkPDB.js +3 -0
  385. package/web-shell/assets/{index-CGT341lL.js → index-DohPy72Z.js} +1 -1
  386. package/web-shell/assets/index-H8um-iEl.js +2207 -0
  387. package/web-shell/assets/index-n6N-2a3v.css +36 -0
  388. package/web-shell/assets/{infoDiagram-RXCK75RN-Bpai64Ll.js → infoDiagram-RXCK75RN-9--kukiT.js} +1 -1
  389. package/web-shell/assets/ishikawaDiagram-5VMMS53U-CGBdsDLD.js +70 -0
  390. package/web-shell/assets/{journeyDiagram-EYS64GPL-iz_DKgFX.js → journeyDiagram-EYS64GPL-DeXhcscd.js} +1 -1
  391. package/web-shell/assets/kanban-definition-3QL26DDD-CFdvsU3b.js +89 -0
  392. package/web-shell/assets/{layout-qEvKgnvU.js → layout-DAnwQ3KB.js} +1 -1
  393. package/web-shell/assets/{linear-C6lklGdq.js → linear-CTo7v7Nh.js} +1 -1
  394. package/web-shell/assets/mermaid.core-jggSxF1i.js +312 -0
  395. package/web-shell/assets/mindmap-definition-FBJOCRG2-DzIepvlJ.js +96 -0
  396. package/web-shell/assets/{pegDiagram-XKGWAZYB-BhD0q0i6.js → pegDiagram-XKGWAZYB-BFGS9GJv.js} +1 -1
  397. package/web-shell/assets/pieDiagram-E7YTZNPT-B2UUcNIT.js +39 -0
  398. package/web-shell/assets/quadrantDiagram-AXDQQJYC-BgM6htrX.js +7 -0
  399. package/web-shell/assets/qwen-code-notification-BRVagufF.png +0 -0
  400. package/web-shell/assets/{railroadDiagram-O6MQD6OU-E1g2KIFK.js → railroadDiagram-O6MQD6OU-Dk9cS7N-.js} +1 -1
  401. package/web-shell/assets/{requirementDiagram-EFPCY7ZU-CuerYJOe.js → requirementDiagram-EFPCY7ZU-C9oRg7xi.js} +13 -13
  402. package/web-shell/assets/{sankeyDiagram-P5KCCOFB-CqWyCZGA.js → sankeyDiagram-P5KCCOFB-B-_c7GzI.js} +7 -7
  403. package/web-shell/assets/{sequenceDiagram-WJ2MYXX4-B-YWb8x4.js → sequenceDiagram-WJ2MYXX4-R0M-347u.js} +16 -16
  404. package/web-shell/assets/sizeCapture-X5ZJPWSS-Df0f8UAW.js +1 -0
  405. package/web-shell/assets/{stateDiagram-HBIQ2CUA-C8LDpNHS.js → stateDiagram-HBIQ2CUA-CsUEfAA-.js} +1 -1
  406. package/web-shell/assets/stateDiagram-v2-4QOOHH4V-CnSuTPJ2.js +1 -0
  407. package/web-shell/assets/swimlanes-XN3QIQJK-9OGHVSrx.js +1 -0
  408. package/web-shell/assets/swimlanesDiagram-VK2B7HYN-Bb7TcWQw.js +8 -0
  409. package/web-shell/assets/timeline-definition-24CTP7MA-DAfGqS2B.js +120 -0
  410. package/web-shell/assets/vennDiagram-4TSXK5OY-CKATpwHi.js +34 -0
  411. package/web-shell/assets/wardleyDiagram-VM6X3IG4-CQHdhTrm.js +78 -0
  412. package/web-shell/assets/{xychartDiagram-S5SC5T6Z-ruD2Wjhg.js → xychartDiagram-S5SC5T6Z-5k9NLqlY.js} +1 -1
  413. package/web-shell/index.html +2 -2
  414. package/chunks/chunk-7Q2AXRDJ.js +0 -114
  415. package/chunks/chunk-AEY27Z35.js +0 -1411
  416. package/chunks/chunk-CFKIH3D3.js +0 -50
  417. package/chunks/chunk-HWVUSYSN.js +0 -126
  418. package/chunks/chunk-QHMLYMMS.js +0 -32
  419. package/chunks/chunk-SAH4BD2J.js +0 -92
  420. package/chunks/chunk-TWUKBNWM.js +0 -86
  421. package/chunks/chunk-ZTTC7T4X.js +0 -126
  422. package/chunks/list-YL6LDQKQ.js +0 -129
  423. package/chunks/mcp-IYVSIW6O.js +0 -123
  424. package/chunks/web-search-NEGYQNDJ.js +0 -912
  425. package/chunks/workspace-providers-status-AEYISSU2.js +0 -127
  426. package/chunks/workspace-skills-status-5HWZU3HX.js +0 -126
  427. package/web-shell/assets/architectureDiagram-5GKGNRK7-B_fgkKe7.js +0 -36
  428. package/web-shell/assets/blockDiagram-NRAW4CY4-C3pddUNg.js +0 -129
  429. package/web-shell/assets/channel-Blod4z1X.js +0 -1
  430. package/web-shell/assets/chunk-G27WJ6UU-CVbXTxYk.js +0 -231
  431. package/web-shell/assets/chunk-JWPE2WC7-D89c_BXy.js +0 -1
  432. package/web-shell/assets/chunk-LCL6LL3I-B7-I_9KB.js +0 -206
  433. package/web-shell/assets/chunk-POPQ4Y6H-DcLQFzS4.js +0 -1
  434. package/web-shell/assets/classDiagram-DTDB5LWJ-D6hFDMqb.js +0 -1
  435. package/web-shell/assets/classDiagram-v2-JRS7N3AN-D6hFDMqb.js +0 -1
  436. package/web-shell/assets/cose-bilkent-JH36ORCC-Db2FYN85.js +0 -1
  437. package/web-shell/assets/cynefin-OW5HDTMX-i4GwmBVy.js +0 -178
  438. package/web-shell/assets/dagre-3AP2YEHR-CF9XVrD9.js +0 -4
  439. package/web-shell/assets/diagram-S7CK7UJ4-DD5PJfSm.js +0 -30
  440. package/web-shell/assets/diagram-UQ7AKVKN-CjD_sBMj.js +0 -41
  441. package/web-shell/assets/diagram-VSXAHHWV-U5WwMqyA.js +0 -3
  442. package/web-shell/assets/diagram-VX7I27RA-BujpHJJf.js +0 -24
  443. package/web-shell/assets/diagram-Z3DM3KII-3ZLtKEXo.js +0 -24
  444. package/web-shell/assets/flowDiagram-A5DVABFB-9DwDuIyr.js +0 -168
  445. package/web-shell/assets/gitGraphDiagram-WWUBYQGX-C_pPFiTR.js +0 -106
  446. package/web-shell/assets/index-BYWs4JWq.js +0 -3
  447. package/web-shell/assets/index-D3YS6KuJ.js +0 -2173
  448. package/web-shell/assets/index-eBxK3rs2.css +0 -36
  449. package/web-shell/assets/ishikawaDiagram-5VMMS53U-ktpJFq4r.js +0 -70
  450. package/web-shell/assets/kanban-definition-3QL26DDD-m_gG00Yt.js +0 -89
  451. package/web-shell/assets/mermaid.core-DSCYB_2P.js +0 -312
  452. package/web-shell/assets/mindmap-definition-FBJOCRG2-DRQbT8w-.js +0 -96
  453. package/web-shell/assets/pieDiagram-E7YTZNPT-BvIGQCSd.js +0 -39
  454. package/web-shell/assets/quadrantDiagram-AXDQQJYC-BDQtfpU-.js +0 -7
  455. package/web-shell/assets/sizeCapture-X5ZJPWSS-BB7YY4Tl.js +0 -1
  456. package/web-shell/assets/stateDiagram-v2-4QOOHH4V-C4CbdvGa.js +0 -1
  457. package/web-shell/assets/swimlanes-XN3QIQJK-D94vOoxZ.js +0 -1
  458. package/web-shell/assets/swimlanesDiagram-VK2B7HYN--QNSIOC8.js +0 -8
  459. package/web-shell/assets/timeline-definition-24CTP7MA-C9C8uEYm.js +0 -120
  460. package/web-shell/assets/vennDiagram-4TSXK5OY-CYzMHbVW.js +0 -34
  461. package/web-shell/assets/wardleyDiagram-VM6X3IG4-G9nhtLES.js +0 -78
  462. package/chunks/{open-with-auth-6MVIHMXB.js → open-with-auth-XFCCJOO6.js} +3 -3
@@ -21,6 +21,14 @@ import {
21
21
  init_esbuild_shims();
22
22
  import * as fs from "node:fs/promises";
23
23
  import * as path from "node:path";
24
+ var MAX_CRON_TASK_ROUTING_ID_LENGTH = 256;
25
+ function isValidCronTaskRoutingId(value) {
26
+ return typeof value === "string" && value.length > 0 && value.length <= MAX_CRON_TASK_ROUTING_ID_LENGTH && !Array.from(value).some((character) => {
27
+ const code = character.charCodeAt(0);
28
+ return code <= 31 || code === 127;
29
+ });
30
+ }
31
+ __name(isValidCronTaskRoutingId, "isValidCronTaskRoutingId");
24
32
  var MAX_TASK_RUNS = 20;
25
33
  var MAX_CHANNEL_DELIVERY_NAME_LENGTH = 2048;
26
34
  var MAX_CHANNEL_DELIVERY_TARGET_ID_LENGTH = 2048;
@@ -68,6 +76,7 @@ var UPDATE_LOCK_STALE_MS = 2e3;
68
76
  var UPDATE_LOCK_TIMEOUT_MS = 3e3;
69
77
  var updateStaleSeq = 0;
70
78
  var updateMutexes = /* @__PURE__ */ new Map();
79
+ var MAX_TASK_DELETION_GENERATIONS = 1e4;
71
80
  function getUpdateMutex(filePath) {
72
81
  let mutex = updateMutexes.get(filePath);
73
82
  if (!mutex) {
@@ -77,6 +86,60 @@ function getUpdateMutex(filePath) {
77
86
  return mutex;
78
87
  }
79
88
  __name(getUpdateMutex, "getUpdateMutex");
89
+ async function readTaskDeletionGenerations(filePath) {
90
+ const statePath = `${filePath}.deletions`;
91
+ let raw;
92
+ try {
93
+ raw = await fs.readFile(statePath, "utf-8");
94
+ } catch (error) {
95
+ if (error.code === "ENOENT") {
96
+ return { generations: /* @__PURE__ */ new Map(), watermark: 0 };
97
+ }
98
+ throw error;
99
+ }
100
+ const parsed = JSON.parse(raw);
101
+ if (parsed.version !== 2 || !Number.isSafeInteger(parsed.watermark) || parsed.watermark < 0 || !Array.isArray(parsed.entries)) {
102
+ throw new Error(`Invalid scheduled-task deletion state: ${statePath}`);
103
+ }
104
+ const generations = /* @__PURE__ */ new Map();
105
+ let maximumGeneration = 0;
106
+ for (const entry of parsed.entries) {
107
+ if (!Array.isArray(entry) || entry.length !== 2 || typeof entry[0] !== "string" || !Number.isSafeInteger(entry[1]) || entry[1] < 1 || generations.has(entry[0])) {
108
+ throw new Error(`Invalid scheduled-task deletion state: ${statePath}`);
109
+ }
110
+ generations.set(entry[0], entry[1]);
111
+ maximumGeneration = Math.max(maximumGeneration, entry[1]);
112
+ }
113
+ const watermark = parsed.watermark;
114
+ if (watermark < maximumGeneration) {
115
+ throw new Error(`Invalid scheduled-task deletion state: ${statePath}`);
116
+ }
117
+ return { generations, watermark };
118
+ }
119
+ __name(readTaskDeletionGenerations, "readTaskDeletionGenerations");
120
+ async function readTaskDeletionGenerationsOrUnknown(filePath) {
121
+ try {
122
+ return await readTaskDeletionGenerations(filePath);
123
+ } catch (error) {
124
+ console.warn(
125
+ `Ignoring unreadable scheduled-task deletion state at ${filePath}.deletions (${error instanceof Error ? error.message : String(error)}) \u2014 task updates proceed without it; delete the file to rebuild it.`
126
+ );
127
+ return void 0;
128
+ }
129
+ }
130
+ __name(readTaskDeletionGenerationsOrUnknown, "readTaskDeletionGenerationsOrUnknown");
131
+ async function writeTaskDeletionGenerations(filePath, deletionState, assertCanCommit) {
132
+ const state = {
133
+ version: 2,
134
+ watermark: deletionState.watermark,
135
+ entries: [...deletionState.generations]
136
+ };
137
+ await atomicWriteJSON(`${filePath}.deletions`, state, {
138
+ noFollow: true,
139
+ assertCanCommit
140
+ });
141
+ }
142
+ __name(writeTaskDeletionGenerations, "writeTaskDeletionGenerations");
80
143
  function getCronFilePath(projectRoot) {
81
144
  return path.join(
82
145
  Storage.getGlobalTempDir(),
@@ -107,14 +170,25 @@ async function readCronTasks(projectRoot) {
107
170
  `Expected a JSON array in ${filePath} \u2014 fix or delete the file; refusing to treat it as an empty schedule.`
108
171
  );
109
172
  }
110
- for (const [index, task] of parsed.entries()) {
173
+ const normalized = parsed.map((entry) => {
174
+ if (typeof entry !== "object" || entry === null) return entry;
175
+ const record = entry;
176
+ if ((record["modelServiceId"] !== void 0 || record["groupId"] !== void 0) && record["sessionMode"] !== "per_run") {
177
+ const copy = { ...record };
178
+ delete copy["modelServiceId"];
179
+ delete copy["groupId"];
180
+ return copy;
181
+ }
182
+ return entry;
183
+ });
184
+ for (const [index, task] of normalized.entries()) {
111
185
  if (!isValidTask(task)) {
112
186
  throw new Error(
113
187
  `Invalid task entry at index ${index} in ${filePath} \u2014 fix or delete the entry; refusing to drop it from the schedule.`
114
188
  );
115
189
  }
116
190
  }
117
- return parsed;
191
+ return normalized;
118
192
  }
119
193
  __name(readCronTasks, "readCronTasks");
120
194
  async function writeCronTasks(projectRoot, tasks, options = {}) {
@@ -171,13 +245,76 @@ async function acquireUpdateLock(filePath) {
171
245
  }
172
246
  }
173
247
  __name(acquireUpdateLock, "acquireUpdateLock");
248
+ function cronTaskSessionDeletionId(sessionId) {
249
+ const canonicalId = /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(
250
+ sessionId
251
+ ) ? sessionId.toLowerCase() : sessionId;
252
+ return `session:${canonicalId}`;
253
+ }
254
+ __name(cronTaskSessionDeletionId, "cronTaskSessionDeletionId");
174
255
  async function updateCronTasks(projectRoot, mutate, options = {}) {
175
256
  const filePath = getCronFilePath(projectRoot);
176
257
  return getUpdateMutex(filePath).runExclusive(async () => {
177
258
  const release = await acquireUpdateLock(filePath);
178
259
  try {
179
260
  const tasks = await readCronTasks(projectRoot);
261
+ const observedIds = new Set(
262
+ typeof options.observeDeletionIds === "function" ? options.observeDeletionIds(tasks) : options.observeDeletionIds ?? []
263
+ );
264
+ let deletionState;
265
+ let deletionStateUnknown = false;
266
+ const loadDeletionState = /* @__PURE__ */ __name(async () => {
267
+ if (deletionState === void 0 && !deletionStateUnknown) {
268
+ const state = await readTaskDeletionGenerationsOrUnknown(filePath);
269
+ if (state === void 0) {
270
+ deletionStateUnknown = true;
271
+ } else {
272
+ deletionState = state;
273
+ }
274
+ }
275
+ return deletionState;
276
+ }, "loadDeletionState");
277
+ if (observedIds.size > 0) {
278
+ const observedDeletionState = await loadDeletionState();
279
+ if (observedDeletionState !== void 0) {
280
+ options.onDeletionGenerations?.(
281
+ new Map(
282
+ [...observedIds].map((id) => [
283
+ id,
284
+ observedDeletionState.generations.get(id) ?? 0
285
+ ])
286
+ )
287
+ );
288
+ }
289
+ }
180
290
  const next = mutate(tasks);
291
+ const deletionIds = typeof options.deletionIds === "function" ? options.deletionIds() : options.deletionIds;
292
+ if (deletionIds?.length) {
293
+ deletionState = await loadDeletionState() ?? {
294
+ generations: /* @__PURE__ */ new Map(),
295
+ watermark: 0
296
+ };
297
+ for (const id of new Set(deletionIds)) {
298
+ if (deletionState.watermark === Number.MAX_SAFE_INTEGER) {
299
+ throw new Error(
300
+ `Scheduled-task deletion generation overflow for ${id}`
301
+ );
302
+ }
303
+ deletionState.watermark += 1;
304
+ deletionState.generations.delete(id);
305
+ deletionState.generations.set(id, deletionState.watermark);
306
+ }
307
+ while (deletionState.generations.size > MAX_TASK_DELETION_GENERATIONS) {
308
+ const oldest = deletionState.generations.keys().next().value;
309
+ if (oldest === void 0) break;
310
+ deletionState.generations.delete(oldest);
311
+ }
312
+ await writeTaskDeletionGenerations(
313
+ filePath,
314
+ deletionState,
315
+ options.assertCanCommit
316
+ );
317
+ }
181
318
  if (next !== tasks) {
182
319
  await writeCronTasks(projectRoot, next, options);
183
320
  }
@@ -193,14 +330,22 @@ async function addCronTask(projectRoot, task) {
193
330
  __name(addCronTask, "addCronTask");
194
331
  async function removeCronTasks(projectRoot, ids) {
195
332
  const idSet = new Set(ids);
196
- const current = await readCronTasks(projectRoot);
197
- if (!current.some((t) => idSet.has(t.id))) return 0;
333
+ try {
334
+ await fs.access(getCronFilePath(projectRoot));
335
+ } catch (error) {
336
+ if (error.code === "ENOENT") return 0;
337
+ throw error;
338
+ }
198
339
  let removed = 0;
199
- await updateCronTasks(projectRoot, (tasks) => {
200
- const remaining = tasks.filter((t) => !idSet.has(t.id));
201
- removed = tasks.length - remaining.length;
202
- return removed === 0 ? tasks : remaining;
203
- });
340
+ await updateCronTasks(
341
+ projectRoot,
342
+ (tasks) => {
343
+ const remaining = tasks.filter((t) => !idSet.has(t.id));
344
+ removed = tasks.length - remaining.length;
345
+ return removed === 0 ? tasks : remaining;
346
+ },
347
+ { deletionIds: ids }
348
+ );
204
349
  return removed;
205
350
  }
206
351
  __name(removeCronTasks, "removeCronTasks");
@@ -242,11 +387,13 @@ function isValidTask(value) {
242
387
  (obj["name"] === void 0 || typeof obj["name"] === "string") && (obj["enabled"] === void 0 || typeof obj["enabled"] === "boolean") && (obj["disabledByArchive"] === void 0 || typeof obj["disabledByArchive"] === "boolean") && // A bound sessionId must be a NON-EMPTY string: an empty string would pass
243
388
  // a bare `typeof` check but the scheduler's truthy `task.sessionId` guard
244
389
  // would treat it as unbound, so a "bound" task would silently run unbound.
245
- (obj["sessionId"] === void 0 || typeof obj["sessionId"] === "string" && obj["sessionId"].length > 0) && (obj["sessionOwnedByTask"] === void 0 || typeof obj["sessionOwnedByTask"] === "boolean") && (obj["sessionMode"] === void 0 || obj["sessionMode"] === "persistent" || obj["sessionMode"] === "per_run") && (obj["delivery"] === void 0 || isValidDelivery(obj["delivery"])) && (obj["runs"] === void 0 || isValidRuns(obj["runs"]));
390
+ (obj["sessionId"] === void 0 || typeof obj["sessionId"] === "string" && obj["sessionId"].length > 0) && (obj["sessionOwnedByTask"] === void 0 || typeof obj["sessionOwnedByTask"] === "boolean") && (obj["sessionMode"] === void 0 || obj["sessionMode"] === "persistent" || obj["sessionMode"] === "per_run") && (obj["modelServiceId"] === void 0 || isValidCronTaskRoutingId(obj["modelServiceId"])) && (obj["groupId"] === void 0 || isValidCronTaskRoutingId(obj["groupId"])) && (obj["delivery"] === void 0 || isValidDelivery(obj["delivery"])) && (obj["runs"] === void 0 || isValidRuns(obj["runs"]));
246
391
  }
247
392
  __name(isValidTask, "isValidTask");
248
393
 
249
394
  export {
395
+ MAX_CRON_TASK_ROUTING_ID_LENGTH,
396
+ isValidCronTaskRoutingId,
250
397
  MAX_CHANNEL_DELIVERY_NAME_LENGTH,
251
398
  MAX_CHANNEL_DELIVERY_TARGET_ID_LENGTH,
252
399
  annotateCronRunSession,
@@ -257,6 +404,7 @@ export {
257
404
  CRON_TASKS_DISPLAY_PATH,
258
405
  getCronFilePath,
259
406
  readCronTasks,
407
+ cronTaskSessionDeletionId,
260
408
  updateCronTasks,
261
409
  addCronTask,
262
410
  removeCronTasks
@@ -6,7 +6,7 @@ import {
6
6
  conversationRuntimeInUseError,
7
7
  conversationRuntimeOwnershipCompromisedError,
8
8
  conversationRuntimeUnavailableError
9
- } from "./chunk-2Z3T52OC.js";
9
+ } from "./chunk-Y5TM7SBV.js";
10
10
  import {
11
11
  init_esbuild_shims
12
12
  } from "./chunk-5O2XNYP6.js";
@@ -1226,7 +1226,7 @@ function initializeTelemetry(config) {
1226
1226
  telemetryInitPromise ??= (async () => {
1227
1227
  const debugLogger3 = createDebugLogger("OTEL");
1228
1228
  try {
1229
- const { startTelemetrySdk } = await import("./sdk-impl-G6FVTBQZ.js");
1229
+ const { startTelemetrySdk } = await import("./sdk-impl-4WF3VZ2F.js");
1230
1230
  if (telemetryInitialized) return;
1231
1231
  const started = await startTelemetrySdk(config);
1232
1232
  if (!started) return;
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  SkillError
5
- } from "./chunk-2SZH22YO.js";
5
+ } from "./chunk-NJ2OFVUX.js";
6
6
  import {
7
7
  init_esbuild_shims
8
8
  } from "./chunk-5O2XNYP6.js";
@@ -117,9 +117,9 @@ function matches(cronExpr, date) {
117
117
  __name(matches, "matches");
118
118
  function nextFireTime(cronExpr, after) {
119
119
  const fields = parseCron(cronExpr);
120
- const candidate = new Date(after.getTime());
121
- candidate.setSeconds(0, 0);
122
- candidate.setMinutes(candidate.getMinutes() + 1);
120
+ const candidate = new Date(
121
+ Math.floor(after.getTime() / 6e4) * 6e4 + 6e4
122
+ );
123
123
  const maxIterations = 4 * 366 * 24 * 60;
124
124
  for (let i = 0; i < maxIterations; i++) {
125
125
  const minuteOk = fields.minute.has(candidate.getMinutes());
@@ -131,7 +131,7 @@ function nextFireTime(cronExpr, after) {
131
131
  if (minuteOk && hourOk && monthOk && dayOk) {
132
132
  return candidate;
133
133
  }
134
- candidate.setMinutes(candidate.getMinutes() + 1);
134
+ candidate.setTime(candidate.getTime() + 6e4);
135
135
  }
136
136
  throw new Error(
137
137
  `No matching fire time found within 4 years for: "${cronExpr}"`
@@ -2,11 +2,11 @@
2
2
  "use strict";
3
3
  import {
4
4
  createTask
5
- } from "./chunk-XKBFYTCD.js";
5
+ } from "./chunk-WK6DEH3Q.js";
6
6
  import {
7
7
  getPlanRequiredTeammatePreApprovalMessage,
8
8
  isPlanRequiredTeammateAwaitingApproval
9
- } from "./chunk-PLLIWEM3.js";
9
+ } from "./chunk-AEWCOE64.js";
10
10
  import {
11
11
  resolveActiveTeamName
12
12
  } from "./chunk-S6LOFUVP.js";
@@ -15,7 +15,7 @@ import {
15
15
  BaseToolInvocation,
16
16
  ToolDisplayNames,
17
17
  ToolNames
18
- } from "./chunk-TP6FYVQT.js";
18
+ } from "./chunk-RSWBT7AZ.js";
19
19
  import {
20
20
  init_esbuild_shims
21
21
  } from "./chunk-5O2XNYP6.js";
@@ -27,12 +27,6 @@ var FIELD_KINDS = /* @__PURE__ */ new Set([
27
27
  "object"
28
28
  ]);
29
29
  var SHARED_ACCESS_FIELDS = [
30
- {
31
- key: "messagePrefix",
32
- label: "Message Prefix",
33
- kind: "string",
34
- description: "Only dispatch user messages that start with this exact prefix after any leading @mentions. The prefix is removed before the task runs"
35
- },
36
30
  {
37
31
  key: "senderPolicy",
38
32
  label: "Sender Policy",
@@ -255,15 +249,15 @@ function ensureBuiltins() {
255
249
  if (!builtinsPromise) {
256
250
  builtinsPromise = (async () => {
257
251
  const labelled = [
258
- { name: "telegram", promise: import("./dist-H6G3K26N.js") },
259
- { name: "weixin", promise: import("./dist-AHJYPSJL.js") },
260
- { name: "dingtalk", promise: import("./dist-AIKC5E5P.js") },
261
- { name: "dws", promise: import("./dist-F2DVGTL3.js") },
262
- { name: "wecom", promise: import("./dist-KLZ7XGEQ.js") },
263
- { name: "feishu", promise: import("./dist-KJGRVIGJ.js") },
264
- { name: "qqbot", promise: import("./dist-GWNQVPZT.js") },
265
- { name: "github", promise: import("./dist-ZXTZTE54.js") },
266
- { name: "gitlab", promise: import("./dist-ZA52JXAS.js") }
252
+ { name: "telegram", promise: import("./dist-T6DDPDLQ.js") },
253
+ { name: "weixin", promise: import("./dist-GUB7QRYA.js") },
254
+ { name: "dingtalk", promise: import("./dist-SE4J6Z4O.js") },
255
+ { name: "dws", promise: import("./dist-NIOJXMGY.js") },
256
+ { name: "wecom", promise: import("./dist-2QYIVNS6.js") },
257
+ { name: "feishu", promise: import("./dist-PA7WPFVE.js") },
258
+ { name: "qqbot", promise: import("./dist-TFGETXFN.js") },
259
+ { name: "github", promise: import("./dist-MPUZZOG5.js") },
260
+ { name: "gitlab", promise: import("./dist-VDLSBCLM.js") }
267
261
  ];
268
262
  const results = await Promise.allSettled(labelled.map((l) => l.promise));
269
263
  for (let i = 0; i < results.length; i++) {
@@ -3,6 +3,12 @@
3
3
  import {
4
4
  getLanguageSettingsOptions
5
5
  } from "./chunk-5EJZE3FP.js";
6
+ import {
7
+ DEFAULT_WEB_SEARCH_MAX_PER_SESSION,
8
+ DEFAULT_WEB_SEARCH_TIMEOUT_MS,
9
+ MAX_WEB_SEARCH_MAX_PER_SESSION,
10
+ MAX_WEB_SEARCH_TIMEOUT_MS
11
+ } from "./chunk-WDH4TVD3.js";
6
12
  import {
7
13
  DEFAULT_MAX_SUBAGENT_DEPTH,
8
14
  DEFAULT_MAX_TOOL_CALLS_PER_TURN,
@@ -11,18 +17,20 @@ import {
11
17
  DEFAULT_TOOL_RESULTS_TOTAL_CHARS_THRESHOLD,
12
18
  DEFAULT_TRUNCATE_TOOL_OUTPUT_LINES,
13
19
  DEFAULT_TRUNCATE_TOOL_OUTPUT_THRESHOLD,
14
- GOAL_CHECKPOINT_TIMEOUT_SECONDS_CAP
15
- } from "./chunk-N7VWZDWW.js";
20
+ GOAL_CHECKPOINT_TIMEOUT_SECONDS_CAP,
21
+ GOAL_MAX_ACTIVE_MINUTES_CAP,
22
+ GOAL_MAX_TURNS_CAP
23
+ } from "./chunk-KJFGH23C.js";
16
24
  import {
17
25
  DEFAULT_QWEN_CUSTOM_IGNORE_FILE_NAMES
18
26
  } from "./chunk-IZ2U57NY.js";
19
27
  import {
20
28
  REASONING_EFFORT_TIERS
21
- } from "./chunk-3FPYT6QC.js";
29
+ } from "./chunk-ARDHE6MM.js";
22
30
  import {
23
31
  DEFAULT_SENSITIVE_SPAN_ATTRIBUTE_MAX_LENGTH,
24
32
  SENSITIVE_SPAN_ATTRIBUTE_MAX_LENGTH_LIMIT
25
- } from "./chunk-W5ZQMAEM.js";
33
+ } from "./chunk-4Y2I3CI3.js";
26
34
  import {
27
35
  init_esbuild_shims
28
36
  } from "./chunk-5O2XNYP6.js";
@@ -97,6 +105,10 @@ var TOGGLE_TYPES = /* @__PURE__ */ new Set([
97
105
  "boolean",
98
106
  "enum"
99
107
  ]);
108
+ function isNumericSettingType(type) {
109
+ return type === "number" || type === "integer";
110
+ }
111
+ __name(isNumericSettingType, "isNumericSettingType");
100
112
  var HOOK_DEFINITION_ITEMS = {
101
113
  type: "object",
102
114
  description: "A hook definition with an optional matcher and a list of hook configurations.",
@@ -159,7 +171,7 @@ var HOOK_DEFINITION_ITEMS = {
159
171
  },
160
172
  timeout: {
161
173
  type: "number",
162
- description: "Timeout in seconds for the hook execution."
174
+ description: "Timeout in seconds for the hook execution. Defaults to 60 for command hooks, 600 for http hooks and 30 for prompt hooks. For command hooks, a value of 1000 or more is read as legacy milliseconds."
163
175
  },
164
176
  env: {
165
177
  type: "object",
@@ -1058,6 +1070,15 @@ var SETTINGS_SCHEMA = {
1058
1070
  description: "Enable in-app SGR mouse tracking. While enabled, Qwen Code captures mouse events for text selection, click-to-position in text inputs, row hover, history-item toggling, and viewport scrolling. Because the terminal forwards all mouse events to the app, Qwen Code supplies its own equivalents for what the terminal can no longer do natively: a single click opens an http(s) hyperlink under the pointer (other link schemes are copied to the clipboard), and right-click over a link or a text selection opens an in-app context menu with Open Link / Copy Link Address / Copy Selection. Disable to hand the mouse fully back to the terminal (native right-click menu and link clicks); this turns off all in-app mouse interaction, and in Virtualized History the wheel no longer scrolls the transcript \u2014 use Shift+\u2191/\u2193, PgUp/PgDn, or Ctrl+Home/End instead (pair with ui.useTerminalBuffer: false to restore native terminal scrollback).",
1059
1071
  showInDialog: true
1060
1072
  },
1073
+ showToolCallDetails: {
1074
+ type: "boolean",
1075
+ label: "Show Tool Call Details",
1076
+ category: "UI",
1077
+ requiresRestart: false,
1078
+ default: true,
1079
+ description: "Show tool arguments and results inline. Disable to render ordinary tool calls as a one-line summary; click a summary in Virtualized History or press Ctrl+O to expand its details. Approval prompts, user-initiated shell commands, and focused interactive shells remain expanded.",
1080
+ showInDialog: true
1081
+ },
1061
1082
  showToolCallArgs: {
1062
1083
  type: "boolean",
1063
1084
  label: "Show Tool Call Arguments",
@@ -1440,6 +1461,30 @@ var SETTINGS_SCHEMA = {
1440
1461
  description: "Autonomous spend window armed on each new Goal, in tokens as counted by the Goal meter (totalTokenCount summed over every model call the Goal makes in its own turns; side queries and checkpoint verification are not metered). When a Goal spends its window it gets one wind-down turn to hand off, then stops until you resume it, which arms another window. Unset uses the built-in default of 30,000,000; -1 means unlimited. Zero, values above 300,000,000 (10x the default, a typo guard), other negative, fractional, or non-number values are rejected at startup.",
1441
1462
  showInDialog: false
1442
1463
  },
1464
+ goalMaxTurns: {
1465
+ type: "integer",
1466
+ label: "Goal Max Turns",
1467
+ category: "Model",
1468
+ requiresRestart: true,
1469
+ default: void 0,
1470
+ description: "Goal-turn window armed on each new Goal. Every finished Goal turn counts, including user-driven turns; user turns are still admitted at the ceiling, but they can make the next autonomous continuation a wind-down. A Goal that reaches the ceiling gets one wind-down turn to hand off, then stops until you resume it, which authorizes another window on top of the turns already finished. Unset runs Goals with no turn ceiling, and -1 says so explicitly -- but the opt-out only takes a ceiling off a Goal that has already spent it, on the resume or edit that follows; a Goal still under its ceiling keeps it. A ceiling is armed only on a Goal created after the change, so bounding a Goal already on the record means replacing it with /goal set, which starts a new Goal at revision 1 with its meters reset and its earlier evidence no longer citable, or clearing it and starting again. Zero, values above 10,000, other negative, fractional, or non-number values are rejected at startup. Changes take effect after restart.",
1471
+ showInDialog: false,
1472
+ minimum: -1,
1473
+ maximum: GOAL_MAX_TURNS_CAP,
1474
+ excludedValues: [0]
1475
+ },
1476
+ goalMaxActiveMinutes: {
1477
+ type: "integer",
1478
+ label: "Goal Max Active Minutes",
1479
+ category: "Model",
1480
+ requiresRestart: true,
1481
+ default: void 0,
1482
+ description: "Active-time window armed on each new Goal, in minutes of wall time while the Goal remains active, including waits and idle time between turns. Paused, blocked or stopped time does not count, nor does downtime across a restart; a suspended process is still charged. A Goal that reaches the ceiling gets one wind-down turn to hand off, then stops until you resume it, which authorizes another window. The ceiling is read between turns, not by a timer, so a Goal can run well past it before it stops. Active time is measured between recorded transitions, so time in a turn that a restart interrupted is not charged. Unset runs Goals with no time ceiling, and -1 says so explicitly -- but the opt-out only takes a ceiling off a Goal that has already spent it, on the resume or edit that follows. A ceiling is armed only on a Goal created after the change, so bounding a Goal already on the record means replacing it with /goal set, which starts a new Goal at revision 1 with its meters reset and its earlier evidence no longer citable, or clearing it and starting again. Zero, values above 10,080 (one week), other negative, fractional, or non-number values are rejected at startup. Changes take effect after restart.",
1483
+ showInDialog: false,
1484
+ minimum: -1,
1485
+ maximum: GOAL_MAX_ACTIVE_MINUTES_CAP,
1486
+ excludedValues: [0]
1487
+ },
1443
1488
  goalCheckpointTimeoutSeconds: {
1444
1489
  type: "integer",
1445
1490
  label: "Goal Checkpoint Timeout (seconds)",
@@ -1448,7 +1493,7 @@ var SETTINGS_SCHEMA = {
1448
1493
  default: void 0,
1449
1494
  minimum: 1,
1450
1495
  maximum: GOAL_CHECKPOINT_TIMEOUT_SECONDS_CAP,
1451
- description: "Ceiling on one Goal evidence-checkpoint check, in seconds. A long Goal periodically compresses its evidence into checkpoint claims with a side model call. A check whose claims overrun the aggregate byte budget, or include a claim over the per-claim character limit, makes one corrective retry, and both calls share this ceiling. A check that does not finish in time is abandoned as inconclusive; it counts toward the checkpoint stall limit only when the evidence window has overflowed, while a non-overflowing check preserves the streak and retries on a later turn. Unset uses the built-in default of 180. Must be an integer between 1 and 900; other values are rejected at startup. The calls are streamed, so the per-request transport timeout (model.generationConfig.timeout, default 120 s) bounds only connect and first response, and values above 900 are rejected because past the default stream lifetime guard that guard, not this setting, ends the check. The 900 ceiling is fixed: raising QWEN_STREAM_MAX_LIFETIME_MS does not lift it.",
1496
+ description: "Ceiling on one Goal evidence-checkpoint model call, in seconds. A long Goal periodically compresses its evidence into checkpoint claims with a side model call; when a call makes its one corrective retry, both requests share this ceiling (docs/users/features/goals.md lists which failures earn one). A check on an overflowing window after a stalled checkpoint sends its evidence in batches, one call per batch, each under its own ceiling. A check that does not finish in time is abandoned as inconclusive; it counts toward the checkpoint stall limit only when the evidence window has overflowed, while a non-overflowing check preserves the streak and retries on a later turn. Unset uses the built-in default of 180. Must be an integer between 1 and 900; other values are rejected at startup. The calls are streamed, so the per-request transport timeout (model.generationConfig.timeout, default 120 s) bounds only connect and first response, and values above 900 are rejected because past the default stream lifetime guard that guard, not this setting, ends the check. The 900 ceiling is fixed: raising QWEN_STREAM_MAX_LIFETIME_MS does not lift it.",
1452
1497
  showInDialog: false
1453
1498
  },
1454
1499
  maxToolCalls: {
@@ -2011,7 +2056,7 @@ var SETTINGS_SCHEMA = {
2011
2056
  category: "Advanced",
2012
2057
  requiresRestart: true,
2013
2058
  default: void 0,
2014
- description: 'Slash command names to hide and refuse to execute. Matched case-insensitively against the final command name (for extension commands this is the disambiguated form, e.g. "myext.deploy"). Merged as a union across settings scopes, so workspace settings can add to but not remove entries defined in system/user settings.',
2059
+ description: 'Slash command names to hide and refuse to execute. Matched case-insensitively against the final command name (for extension commands this is the disambiguated form, e.g. "myext.deploy"), except that a skill command is gated under either spelling \u2014 its registered name (rust:pdf) or the name its SKILL.md authors (pdf) \u2014 so an entry written before that prefix existed still gates it. Merged as a union across settings scopes, so workspace settings can add to but not remove entries defined in system/user settings.',
2015
2060
  showInDialog: false,
2016
2061
  mergeStrategy: "union" /* UNION */
2017
2062
  }
@@ -2046,7 +2091,7 @@ var SETTINGS_SCHEMA = {
2046
2091
  category: "Advanced",
2047
2092
  requiresRestart: false,
2048
2093
  default: void 0,
2049
- description: "Skill names to hide. Matched case-insensitively against the skill name. Hidden skills do not appear in <available_skills> or as /<name> slash commands. UNION-merged across systemDefaults/user/workspace/system scopes \u2014 workspace cannot remove entries defined in higher scopes.",
2094
+ description: "Skill names to hide. Matched case-insensitively against the skill name. Hidden skills do not appear in <available_skills> or as /<name> slash commands. An extension skill matches under either its registered name (rust:pdf) or the name its SKILL.md authors (pdf), so an entry written before that prefix existed still blocks it. UNION-merged across systemDefaults/user/workspace/system scopes \u2014 workspace cannot remove entries defined in higher scopes.",
2050
2095
  showInDialog: false,
2051
2096
  mergeStrategy: "union" /* UNION */
2052
2097
  },
@@ -2056,7 +2101,7 @@ var SETTINGS_SCHEMA = {
2056
2101
  category: "Advanced",
2057
2102
  requiresRestart: false,
2058
2103
  default: void 0,
2059
- description: "Skill names disabled by default unless explicitly enabled through skills.enabled. Matched case-insensitively and UNION-merged across settings scopes. skills.disabled always wins.",
2104
+ description: "Skill names disabled by default unless explicitly enabled through skills.enabled. Matched case-insensitively and UNION-merged across settings scopes. An extension skill is disabled under either its registered name (rust:pdf) or the name its SKILL.md authors (pdf). skills.disabled always wins; skills.enabled cancels an entry here only when the two lists spell the name the same way.",
2060
2105
  showInDialog: false,
2061
2106
  mergeStrategy: "union" /* UNION */
2062
2107
  },
@@ -2066,7 +2111,7 @@ var SETTINGS_SCHEMA = {
2066
2111
  category: "Advanced",
2067
2112
  requiresRestart: false,
2068
2113
  default: void 0,
2069
- description: "Explicit opt-ins that override matching skills.defaultDisabled entries. Matched case-insensitively and UNION-merged across settings scopes. Cannot override skills.disabled.",
2114
+ description: "Explicit opt-ins, matched against the skill name as registered \u2014 an extension skill is rust:pdf there. An entry spelled as the registered name overrides a matching skills.defaultDisabled entry and, for an extension skill, both the default the owning extension declares and the enablement stored for this workspace. A bare pdf entry never matches as a grant; it only cancels an identically-spelled skills.defaultDisabled entry, and once cancelled the enablement stored for this workspace decides, else the default the owning extension declares. Matched case-insensitively and UNION-merged across settings scopes. Cannot override skills.disabled or re-enable skills from a skills.disabledLevels-excluded level.",
2070
2115
  showInDialog: false,
2071
2116
  mergeStrategy: "union" /* UNION */
2072
2117
  },
@@ -2293,6 +2338,15 @@ var SETTINGS_SCHEMA = {
2293
2338
  description: "Settings for built-in and custom tools.",
2294
2339
  showInDialog: false,
2295
2340
  properties: {
2341
+ codeModeOnly: {
2342
+ type: "boolean",
2343
+ label: "Code Mode Only (Experimental)",
2344
+ category: "Tools",
2345
+ requiresRestart: true,
2346
+ default: false,
2347
+ description: "Expose ordinary tools to the model only through the isolated exec JavaScript tool. Direct control tools remain available. Ignored in safe and bare modes.",
2348
+ showInDialog: true
2349
+ },
2296
2350
  sandbox: {
2297
2351
  type: "object",
2298
2352
  label: "Sandbox",
@@ -2320,7 +2374,7 @@ var SETTINGS_SCHEMA = {
2320
2374
  category: "Tools",
2321
2375
  requiresRestart: true,
2322
2376
  default: {},
2323
- description: "Settings for the built-in WebSearch tool (DashScope Responses API backend). On by default at startup for Alibaba ModelStudio Standard API Key / Token Plan and OpenAI-compatible entries on recognized DashScope Responses hosts with a direct key; set enabled=false to turn it off. Which providers can activate the tool is decided at startup; once active, the search backend follows the currently selected model on the next search. Fully env-configurable for environments without settings.json: ENABLE_WEB_SEARCH, WEB_SEARCH_MODEL, WEB_SEARCH_BASE_URL, WEB_SEARCH_API_KEY (falls back to DASHSCOPE_API_KEY), WEB_SEARCH_EXTRACTOR. Note: baseUrl and API key are env-only (WEB_SEARCH_BASE_URL / WEB_SEARCH_API_KEY) and cannot be set in settings.json.",
2377
+ description: "Settings for the built-in WebSearch tool (DashScope Responses API backend). On by default at startup for Alibaba ModelStudio Standard API Key / Token Plan and OpenAI-compatible entries on recognized DashScope Responses hosts with a direct key; set enabled=false to turn it off. Which providers can activate the tool is decided at startup; once active, the search backend follows the currently selected model on the next search. Fully env-configurable for environments without settings.json: ENABLE_WEB_SEARCH, WEB_SEARCH_MODEL, WEB_SEARCH_BASE_URL, WEB_SEARCH_API_KEY (falls back to DASHSCOPE_API_KEY), WEB_SEARCH_EXTRACTOR, WEB_SEARCH_TIMEOUT_MS, WEB_SEARCH_MAX_PER_SESSION. Note: baseUrl and API key are env-only (WEB_SEARCH_BASE_URL / WEB_SEARCH_API_KEY) and cannot be set in settings.json.",
2324
2378
  showInDialog: false,
2325
2379
  properties: {
2326
2380
  enabled: {
@@ -2338,7 +2392,7 @@ var SETTINGS_SCHEMA = {
2338
2392
  category: "Tools",
2339
2393
  requiresRestart: true,
2340
2394
  default: void 0,
2341
- description: 'Model selector for the explicit search path ("modelId" or "authType:modelId"). With WEB_SEARCH_BASE_URL it is the plain model id for that endpoint; otherwise it must match a DashScope-compatible modelProviders entry with an envKey. The automatic path uses qwen3.6-plus. Env override: WEB_SEARCH_MODEL.',
2395
+ description: 'Model selector for the explicit search path ("modelId" or "authType:modelId"). With WEB_SEARCH_BASE_URL it is the plain model id for that endpoint; otherwise it must match a DashScope-compatible modelProviders entry with an envKey. The automatic path uses qwen3.8-flash. Env override: WEB_SEARCH_MODEL.',
2342
2396
  showInDialog: true
2343
2397
  },
2344
2398
  webExtractor: {
@@ -2349,6 +2403,28 @@ var SETTINGS_SCHEMA = {
2349
2403
  default: true,
2350
2404
  description: "Let the search agent open and read result pages (DashScope web_extractor) for better-grounded answers. Billed separately by DashScope. Env override: WEB_SEARCH_EXTRACTOR.",
2351
2405
  showInDialog: true
2406
+ },
2407
+ timeoutMs: {
2408
+ type: "integer",
2409
+ label: "Search Timeout (ms)",
2410
+ category: "Tools",
2411
+ requiresRestart: true,
2412
+ default: void 0,
2413
+ minimum: 1,
2414
+ maximum: MAX_WEB_SEARCH_TIMEOUT_MS,
2415
+ description: `Total time budget for one web_search call, in milliseconds (default ${DEFAULT_WEB_SEARCH_TIMEOUT_MS}, max ${MAX_WEB_SEARCH_TIMEOUT_MS}; other values fall back to the default). The search agent runs several queries and may open result pages; a search that exceeds the budget returns whatever arrived as a partial result once at least one search call has completed \u2014 if the budget expires before the first search call finishes, the tool reports a timeout error instead, because narration with no executed search is not auditable evidence. A per-tool execution cap (QWEN_CODE_TOOL_EXECUTION_TIMEOUT_MS) below this budget fires first and discards the partial result; keep it above timeoutMs. Env override: WEB_SEARCH_TIMEOUT_MS.`,
2416
+ showInDialog: true
2417
+ },
2418
+ maxPerSession: {
2419
+ type: "integer",
2420
+ label: "Max Searches per Session",
2421
+ category: "Tools",
2422
+ requiresRestart: true,
2423
+ default: void 0,
2424
+ minimum: 1,
2425
+ maximum: MAX_WEB_SEARCH_MAX_PER_SESSION,
2426
+ description: `Maximum web_search calls in one session (default ${DEFAULT_WEB_SEARCH_MAX_PER_SESSION}, max ${MAX_WEB_SEARCH_MAX_PER_SESSION}; other values fall back to the default). The count is shared with subagents and resets when the session changes (/clear, /resume, branching). Once it is reached, further searches are skipped and the model is told to continue with what it has gathered. Env override: WEB_SEARCH_MAX_PER_SESSION.`,
2427
+ showInDialog: true
2352
2428
  }
2353
2429
  }
2354
2430
  },
@@ -3386,6 +3462,61 @@ var SETTINGS_SCHEMA = {
3386
3462
  showInDialog: false,
3387
3463
  mergeStrategy: "concat" /* CONCAT */,
3388
3464
  items: HOOK_DEFINITION_ITEMS
3465
+ },
3466
+ PostCompact: {
3467
+ type: "array",
3468
+ label: "Post Compact Hooks",
3469
+ category: "Advanced",
3470
+ requiresRestart: false,
3471
+ default: [],
3472
+ description: "Hooks that execute after conversation compaction completes.",
3473
+ showInDialog: false,
3474
+ mergeStrategy: "concat" /* CONCAT */,
3475
+ items: HOOK_DEFINITION_ITEMS
3476
+ },
3477
+ PermissionDenied: {
3478
+ type: "array",
3479
+ label: "Permission Denied Hooks",
3480
+ category: "Advanced",
3481
+ requiresRestart: false,
3482
+ default: [],
3483
+ description: "Hooks that execute when AUTO-mode classification denies a tool call.",
3484
+ showInDialog: false,
3485
+ mergeStrategy: "concat" /* CONCAT */,
3486
+ items: HOOK_DEFINITION_ITEMS
3487
+ },
3488
+ TodoCreated: {
3489
+ type: "array",
3490
+ label: "Todo Created Hooks",
3491
+ category: "Advanced",
3492
+ requiresRestart: false,
3493
+ default: [],
3494
+ description: "Hooks that execute when a new todo item is created. They can block creation during validation.",
3495
+ showInDialog: false,
3496
+ mergeStrategy: "concat" /* CONCAT */,
3497
+ items: HOOK_DEFINITION_ITEMS
3498
+ },
3499
+ TodoCompleted: {
3500
+ type: "array",
3501
+ label: "Todo Completed Hooks",
3502
+ category: "Advanced",
3503
+ requiresRestart: false,
3504
+ default: [],
3505
+ description: "Hooks that execute when a todo item is marked as completed. They can block completion during validation.",
3506
+ showInDialog: false,
3507
+ mergeStrategy: "concat" /* CONCAT */,
3508
+ items: HOOK_DEFINITION_ITEMS
3509
+ },
3510
+ InstructionsLoaded: {
3511
+ type: "array",
3512
+ label: "Instructions Loaded Hooks",
3513
+ category: "Advanced",
3514
+ requiresRestart: false,
3515
+ default: [],
3516
+ description: "Hooks that execute when an instruction file such as QWEN.md is loaded into context.",
3517
+ showInDialog: false,
3518
+ mergeStrategy: "concat" /* CONCAT */,
3519
+ items: HOOK_DEFINITION_ITEMS
3389
3520
  }
3390
3521
  }
3391
3522
  },
@@ -3706,6 +3837,7 @@ export {
3706
3837
  customDeepMerge,
3707
3838
  DEFAULT_OPENAI_LOG_RETENTION_DAYS,
3708
3839
  TOGGLE_TYPES,
3840
+ isNumericSettingType,
3709
3841
  getSettingsSchema
3710
3842
  };
3711
3843
  /**
@@ -5,13 +5,13 @@ import {
5
5
  } from "./chunk-ELRMZTPF.js";
6
6
  import {
7
7
  isSubagentLikeExecutionContext
8
- } from "./chunk-PLLIWEM3.js";
8
+ } from "./chunk-AEWCOE64.js";
9
9
  import {
10
10
  BaseDeclarativeTool,
11
11
  BaseToolInvocation,
12
12
  ToolDisplayNames,
13
13
  ToolNames
14
- } from "./chunk-TP6FYVQT.js";
14
+ } from "./chunk-RSWBT7AZ.js";
15
15
  import {
16
16
  init_esbuild_shims
17
17
  } from "./chunk-5O2XNYP6.js";