@qwen-code/qwen-code 0.21.7 → 0.21.8

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 (314) hide show
  1. package/README.md +2 -0
  2. package/bundled/qc-helper/docs/configuration/settings.md +43 -30
  3. package/bundled/qc-helper/docs/features/channels/dingtalk.md +40 -2
  4. package/bundled/qc-helper/docs/features/channels/feishu.md +13 -2
  5. package/bundled/qc-helper/docs/features/channels/github.md +13 -11
  6. package/bundled/qc-helper/docs/features/channels/gitlab.md +13 -11
  7. package/bundled/qc-helper/docs/features/channels/overview.md +49 -31
  8. package/bundled/qc-helper/docs/features/channels/plugins.md +2 -2
  9. package/bundled/qc-helper/docs/features/channels/qqbot.md +4 -2
  10. package/bundled/qc-helper/docs/features/channels/telegram.md +4 -2
  11. package/bundled/qc-helper/docs/features/channels/wecom.md +1 -1
  12. package/bundled/qc-helper/docs/features/code-review.md +4 -0
  13. package/bundled/qc-helper/docs/features/commands.md +1 -1
  14. package/bundled/qc-helper/docs/features/hooks.md +52 -0
  15. package/bundled/qc-helper/docs/integration-jetbrains.md +1 -0
  16. package/bundled/qc-helper/docs/qwen-serve.md +4 -1
  17. package/bundled/qc-helper/docs/reference/keyboard-shortcuts.md +50 -36
  18. package/bundled/review/SKILL.md +28 -5
  19. package/chunks/{MaxSizedBox-ANWZBPTS.js → MaxSizedBox-7PM6BGJ5.js} +26 -22
  20. package/chunks/{StandaloneSessionPicker-XKS3VU3A.js → StandaloneSessionPicker-3UQHM7GV.js} +44 -40
  21. package/chunks/{acp-startup-profiler-ORIQ2CCQ.js → acp-startup-profiler-B5BYAMYQ.js} +2 -2
  22. package/chunks/{acpAgent-KUAZ3GCZ.js → acpAgent-5UWLFV6V.js} +534 -262
  23. package/chunks/{agent-T6PTGX5R.js → agent-624T2BLO.js} +26 -22
  24. package/chunks/{agent-headless-PR7YCB7S.js → agent-headless-2EE5J2KX.js} +26 -22
  25. package/chunks/{artifact-tool-U4VOZIK5.js → artifact-tool-N652YE4L.js} +1 -1
  26. package/chunks/{askUserQuestion-XOBQLPFA.js → askUserQuestion-ONW74PKJ.js} +1 -1
  27. package/chunks/{bridge-NU6YEEHK.js → bridge-JENKGFFP.js} +29 -25
  28. package/chunks/{ca-NYKNH222.js → ca-ZLKAB4K3.js} +6 -0
  29. package/chunks/{channel-management-service-FSQ7SHYI.js → channel-management-service-DDWUPHMU.js} +19 -10
  30. package/chunks/{channel-settings-store-35VQVUVV.js → channel-settings-store-SA6JZSPH.js} +34 -30
  31. package/chunks/{channel-worker-group-JWQK224X.js → channel-worker-group-E67EN3RV.js} +5 -5
  32. package/chunks/{channel-worker-manager-77E3OXRQ.js → channel-worker-manager-SW4C45CF.js} +5 -5
  33. package/chunks/{channel-worker-supervisor-62YWUGP2.js → channel-worker-supervisor-5SRD24FG.js} +3 -3
  34. package/chunks/{chunk-CJXIIILK.js → chunk-2FRY5CRX.js} +1 -1
  35. package/chunks/{chunk-ZJ3VGYHK.js → chunk-2ILAOM2I.js} +34 -17
  36. package/chunks/{chunk-6XJMFJ4D.js → chunk-2M4K4KYS.js} +177 -120
  37. package/chunks/{chunk-CNIID3TV.js → chunk-2UUMVNYT.js} +1 -1
  38. package/chunks/{chunk-22NBYCPD.js → chunk-3P2LV43B.js} +1 -1
  39. package/chunks/{chunk-2U3WZGZG.js → chunk-3PY4LPJF.js} +19 -131
  40. package/chunks/{chunk-SPMY6CX6.js → chunk-3SE7J4DR.js} +3 -3
  41. package/chunks/{chunk-6UWFTUQL.js → chunk-3WNQOYHQ.js} +66 -22
  42. package/chunks/{chunk-KXSDEOFU.js → chunk-4ALIARFY.js} +1 -1
  43. package/chunks/{chunk-D3UEZIQH.js → chunk-4DU3NCHG.js} +48 -55
  44. package/chunks/{chunk-BGG4MBYD.js → chunk-4PYCZH2V.js} +4 -187
  45. package/chunks/{chunk-H2UQ2M5Z.js → chunk-4WU6NY7F.js} +96 -22
  46. package/chunks/{chunk-TLV2IMHR.js → chunk-5ZGR6RKJ.js} +3 -3
  47. package/chunks/{chunk-3K7FH2KQ.js → chunk-67N6HB5H.js} +1310 -171
  48. package/chunks/{chunk-EORNAQDT.js → chunk-6TR7CFXH.js} +1 -1
  49. package/chunks/{chunk-NG2R4N5O.js → chunk-6ZRFAKXK.js} +1 -1
  50. package/chunks/{chunk-P2AJ7FTI.js → chunk-757GB46F.js} +1 -1
  51. package/chunks/{chunk-72LNFGUY.js → chunk-77QVBFCU.js} +3 -3
  52. package/chunks/{chunk-OH2VKQXH.js → chunk-7DVT4LVV.js} +37 -30
  53. package/chunks/{chunk-KKJJB5X6.js → chunk-7VUERJHS.js} +1503 -815
  54. package/chunks/{chunk-VOARQPTA.js → chunk-B52AWKBB.js} +65 -21
  55. package/chunks/{chunk-Y4EWSQF7.js → chunk-BF224XHL.js} +2 -2
  56. package/chunks/{chunk-PJOBIWUG.js → chunk-BF52U4XJ.js} +1 -1
  57. package/chunks/{chunk-55LYDVPU.js → chunk-C5VWPTGT.js} +1 -1
  58. package/chunks/{chunk-W7U4ESW2.js → chunk-CG3WBKJK.js} +1 -1
  59. package/chunks/chunk-COBO5EBO.js +135 -0
  60. package/chunks/chunk-CPG6P4GG.js +82 -0
  61. package/chunks/{chunk-DIEFUBV6.js → chunk-DIWZNWZT.js} +205 -35
  62. package/chunks/{chunk-AE77C5ZU.js → chunk-DQSDACD2.js} +1 -1
  63. package/chunks/{chunk-P3LEG54R.js → chunk-DX5W5AON.js} +2 -2
  64. package/chunks/{chunk-EUQTXRKZ.js → chunk-E4ZBKMSF.js} +5 -5
  65. package/chunks/{chunk-FPM27XN4.js → chunk-EIVICVHM.js} +4 -4
  66. package/chunks/{chunk-YHEEE624.js → chunk-EN2TKTFH.js} +1 -1
  67. package/chunks/chunk-F6WFNA7U.js +22 -0
  68. package/chunks/{chunk-FZBZSYKU.js → chunk-FN6YXJOP.js} +1 -1
  69. package/chunks/{chunk-KR4ZSC7K.js → chunk-FWBXMANW.js} +3 -3
  70. package/chunks/{chunk-LA7YLSR6.js → chunk-FYAXKJK7.js} +327 -67
  71. package/chunks/{chunk-CSZEXZBE.js → chunk-GBDINRIL.js} +3 -3
  72. package/chunks/{chunk-SCI7K3GM.js → chunk-GOEVOFQI.js} +19 -10
  73. package/chunks/{chunk-LEMXGVEP.js → chunk-GQCEQPYQ.js} +3 -3
  74. package/chunks/{chunk-Y7E5LNLO.js → chunk-GXSNGY5M.js} +1027 -876
  75. package/chunks/{chunk-6XU3PH66.js → chunk-HA3SAB64.js} +22 -69
  76. package/chunks/{chunk-Y4NGLFGJ.js → chunk-HUWENAHO.js} +1 -1
  77. package/chunks/{chunk-3ULCB3NE.js → chunk-HV76SFIA.js} +1 -1
  78. package/chunks/{chunk-CB2464BK.js → chunk-HWX5HPUG.js} +14 -4
  79. package/chunks/{chunk-LZC3B5N2.js → chunk-IA7TGCN2.js} +2 -2
  80. package/chunks/{chunk-RERATVSK.js → chunk-IBYULW65.js} +6 -6
  81. package/chunks/{chunk-HYRDKNUY.js → chunk-IUQ52YJK.js} +1 -1
  82. package/chunks/{chunk-TDXGKHDN.js → chunk-IYES5WOT.js} +2 -2
  83. package/chunks/{chunk-RGSBTHSU.js → chunk-KAQCJO6Y.js} +131 -4
  84. package/chunks/{chunk-VWOVHOTT.js → chunk-KJZ26VBX.js} +1 -1
  85. package/chunks/{chunk-6GONZVLS.js → chunk-KKDVZLGL.js} +1 -1
  86. package/chunks/{chunk-MKVZE4ZJ.js → chunk-KTJFU7RT.js} +3 -2
  87. package/chunks/{chunk-R574ATRM.js → chunk-M2PNLYGY.js} +41 -0
  88. package/chunks/{chunk-6EOI4HOK.js → chunk-M3STHEMM.js} +12 -17
  89. package/chunks/chunk-NGYI5EF5.js +244 -0
  90. package/chunks/{chunk-ALGGS7UH.js → chunk-NPQ5ZKRP.js} +82 -1
  91. package/chunks/{chunk-HQB2KUAN.js → chunk-NPUXXRJI.js} +1 -1
  92. package/chunks/{chunk-QETYKPMG.js → chunk-NVRDQFCX.js} +1 -1
  93. package/chunks/{chunk-PQBHU2IA.js → chunk-OHKJVAKG.js} +10 -10
  94. package/chunks/{chunk-CYR3HI5X.js → chunk-OQTXYMKW.js} +2 -2
  95. package/chunks/{chunk-DBOFL3LQ.js → chunk-PG62DFWD.js} +10 -10
  96. package/chunks/{chunk-2VSTGY6M.js → chunk-PJRW65JO.js} +1 -1
  97. package/chunks/{chunk-33ACCIIY.js → chunk-PLFATELK.js} +1 -1
  98. package/chunks/{chunk-IC4Z6LX6.js → chunk-PYQADEFD.js} +5 -0
  99. package/chunks/{chunk-MAJS7AT4.js → chunk-QGHSP65Z.js} +2 -2
  100. package/chunks/{chunk-OHJLEW5J.js → chunk-QQWD7LZV.js} +4 -4
  101. package/chunks/{chunk-ZXU5UHMI.js → chunk-QXVSWG66.js} +2 -2
  102. package/chunks/{chunk-E33LOKRA.js → chunk-RPWVIXDB.js} +18 -1
  103. package/chunks/{chunk-TYKC75AX.js → chunk-S3Y3GBFD.js} +1 -1
  104. package/chunks/{chunk-7UFKAV7Y.js → chunk-S6HYI3MF.js} +2 -2
  105. package/chunks/chunk-SAH4BD2J.js +92 -0
  106. package/chunks/{chunk-OMKQH5C5.js → chunk-SNRT2TJJ.js} +6 -23
  107. package/chunks/chunk-SR7RZ4MS.js +202 -0
  108. package/chunks/{chunk-CXE7E23H.js → chunk-TE3ZAJE7.js} +45 -17
  109. package/chunks/{chunk-S7CV4KO6.js → chunk-TKSZJ5BV.js} +3 -3
  110. package/chunks/{chunk-3NB7TSE2.js → chunk-U5SLIG7E.js} +1 -1
  111. package/chunks/chunk-UA5H3DS2.js +203 -0
  112. package/chunks/{chunk-24ER7UV4.js → chunk-UFALT4LK.js} +1 -1
  113. package/chunks/{chunk-YJQCUTT2.js → chunk-VWMUDKLC.js} +3 -3
  114. package/chunks/{chunk-RMH5OWLD.js → chunk-VXZ5HAOV.js} +1 -1
  115. package/chunks/{chunk-BVWVWGLE.js → chunk-WAUGQKUU.js} +4 -64
  116. package/chunks/{chunk-SHZYHGQH.js → chunk-WG6542MA.js} +1 -1
  117. package/chunks/{chunk-5KH532V7.js → chunk-WV5J6Q6N.js} +1 -1
  118. package/chunks/{chunk-RNVQB725.js → chunk-XHD7CRP2.js} +2 -2
  119. package/chunks/{chunk-W4B7UBUS.js → chunk-XZKQT2B2.js} +5 -5
  120. package/chunks/{chunk-6HVUFDS2.js → chunk-Y4TETC74.js} +22 -13
  121. package/chunks/{chunk-RZHU3ILK.js → chunk-YEF7XEO2.js} +4 -4
  122. package/chunks/{chunk-RUL4S3K3.js → chunk-YHJFF7KH.js} +146 -45
  123. package/chunks/{chunk-23RZCH76.js → chunk-YOM7DEGB.js} +3 -3
  124. package/chunks/{chunk-OFI7IGST.js → chunk-ZCLLJARV.js} +9 -9
  125. package/chunks/{chunk-GSS34377.js → chunk-ZHA242R4.js} +2 -2
  126. package/chunks/{chunk-TRLYP7OF.js → chunk-ZPLALRXZ.js} +17 -9
  127. package/chunks/{chunk-WUC6ZFXO.js → chunk-ZWBUH5UP.js} +1 -1
  128. package/chunks/{computer-use-KEAPATUY.js → computer-use-ESQYJ3JY.js} +26 -22
  129. package/chunks/{config-utils-K7SCOWHD.js → config-utils-XQHBJP7G.js} +4 -4
  130. package/chunks/{contextCommand-ZJA6A5K5.js → contextCommand-CX3YF4ZE.js} +28 -24
  131. package/chunks/{core-runtime-QMJPWHCI.js → core-runtime-DIAU7JMG.js} +30 -26
  132. package/chunks/{create-sub-session-DJE6XICH.js → create-sub-session-HDPD6HOA.js} +26 -22
  133. package/chunks/{create-sub-session-E4PBYXV5.js → create-sub-session-QIDZUOPU.js} +1 -1
  134. package/chunks/{cron-create-GRBWYMIJ.js → cron-create-VONA5JYY.js} +1 -1
  135. package/chunks/{cron-delete-4CMKBR2M.js → cron-delete-5JXSP2MI.js} +1 -1
  136. package/chunks/{cron-list-W7K4ASOA.js → cron-list-KE4F2CIR.js} +1 -1
  137. package/chunks/{daemon-SCTQMM7Z.js → daemon-VZBGJUNL.js} +30 -0
  138. package/chunks/{daemon-status-provider-FSWDPE2G.js → daemon-status-provider-H6O4UQ4F.js} +33 -29
  139. package/chunks/{daemon-trust-policy-P5L5VFAY.js → daemon-trust-policy-BNUXG6MT.js} +33 -29
  140. package/chunks/{daemon-trust-policy-monitor-73JYN6ET.js → daemon-trust-policy-monitor-E4EQ7GF4.js} +33 -29
  141. package/chunks/{de-VL76CPLV.js → de-LIW4XVLN.js} +5 -0
  142. package/chunks/{deferred-core-runtime-BWRCCFTE.js → deferred-core-runtime-CBMSHPAU.js} +26 -22
  143. package/chunks/{display-image-O2XFPQTC.js → display-image-NQRSIBXM.js} +2 -2
  144. package/chunks/{dist-DPPHJAVL.js → dist-EEEQGCZA.js} +918 -142
  145. package/chunks/{dist-K4WWQBHS.js → dist-HIACTZEK.js} +55 -15
  146. package/chunks/{dist-3BMEUGTG.js → dist-IRL7WA5Z.js} +1 -1
  147. package/chunks/{dist-HVBMEYWK.js → dist-KVISB2O2.js} +1 -1
  148. package/chunks/{dist-KS4O2NKE.js → dist-MBF3I5MX.js} +14 -8
  149. package/chunks/{dist-SFQ34F4M.js → dist-MKX5OSFF.js} +5 -4
  150. package/chunks/{dist-7JGAAQSC.js → dist-RCH3I7SS.js} +2 -2
  151. package/chunks/{dist-C5U4LJKW.js → dist-TUSWNE2I.js} +5 -4
  152. package/chunks/{earlyInputCapture-L5ST23A6.js → earlyInputCapture-UIOP7OIN.js} +26 -22
  153. package/chunks/{edit-LHHRFNFK.js → edit-ITMZYFKA.js} +26 -22
  154. package/chunks/{en-IRJ2WN5T.js → en-SY5GTIGX.js} +6 -0
  155. package/chunks/{enter-worktree-6NXCRZPF.js → enter-worktree-S4PL5UV6.js} +26 -22
  156. package/chunks/{enterPlanMode-ZVQT4U7D.js → enterPlanMode-YV52NNJT.js} +26 -22
  157. package/chunks/{environment-GJ2HWJOS.js → environment-NGOWPRZV.js} +30 -26
  158. package/chunks/{errors-6RLH3XXC.js → errors-BU26DTDX.js} +28 -24
  159. package/chunks/{exit-worktree-I2YLUHHY.js → exit-worktree-XRM6LH5F.js} +26 -22
  160. package/chunks/{exitPlanMode-7CCWKO7I.js → exitPlanMode-ZLI5F7KR.js} +26 -22
  161. package/chunks/{fast-path-DVFD4HQD.js → fast-path-UJWORIED.js} +23 -3
  162. package/chunks/{fast-path-settings-WQJU2LAT.js → fast-path-settings-37WQD5B2.js} +6 -3
  163. package/chunks/{fr-GK3HQYVB.js → fr-RQFO7U4P.js} +5 -0
  164. package/chunks/{gemini-7FWGOYD4.js → gemini-ZSKNDUMU.js} +77 -65
  165. package/chunks/{geminiContentGenerator-V2WVLIXU.js → geminiContentGenerator-YGEXOEKD.js} +1 -1
  166. package/chunks/{glob-3N6GGI75.js → glob-7KZG44BR.js} +26 -22
  167. package/chunks/{goal-tools-APOW6UXL.js → goal-tools-PXWN5VK3.js} +4 -2
  168. package/chunks/{grep-V43ILZVX.js → grep-6ZFC7RJ5.js} +26 -22
  169. package/chunks/{handleAutoUpdate-A5WFVWIA.js → handleAutoUpdate-KSEL3TQS.js} +30 -26
  170. package/chunks/{i18n-PLVQ4FBZ.js → i18n-ZIUXBW5V.js} +27 -23
  171. package/chunks/{image-gen-7C6IK6DC.js → image-gen-AUIZJJNK.js} +7 -5
  172. package/chunks/{initializer-CVAIKZYL.js → initializer-7AHY3N6Q.js} +33 -29
  173. package/chunks/{installationInfo-J6QDHNTK.js → installationInfo-VGBXMYLY.js} +27 -23
  174. package/chunks/{ja-3FA46IKD.js → ja-KOZKHJHZ.js} +5 -0
  175. package/chunks/{list-ZZ4OUUWV.js → list-PSFKQHLB.js} +36 -32
  176. package/chunks/{list-agents-KFFIIS2G.js → list-agents-Z4WABFDZ.js} +1 -1
  177. package/chunks/{loadedSettingsAdapter-QRYRJSWL.js → loadedSettingsAdapter-FTMRCTOF.js} +33 -29
  178. package/chunks/{loggingContentGenerator-OJCO75HM.js → loggingContentGenerator-MZAN52UV.js} +7 -5
  179. package/chunks/{loop-wakeup-TLMJPMMP.js → loop-wakeup-UZ5RL5Y2.js} +2 -2
  180. package/chunks/{ls-UVVE2XGE.js → ls-TVHDGIES.js} +1 -1
  181. package/chunks/{lsp-QMEA2VLB.js → lsp-CVN6OQPI.js} +1 -1
  182. package/chunks/{managed-npm-update-PCOSCP2N.js → managed-npm-update-O4NHK45X.js} +27 -23
  183. package/chunks/{mcp-M3WKKWKY.js → mcp-6CFP2AYQ.js} +33 -29
  184. package/chunks/{monitor-GN24FH6C.js → monitor-DAKD6OU4.js} +26 -22
  185. package/chunks/{nonInteractiveCli-KPTU3VSQ.js → nonInteractiveCli-RC7VIUZL.js} +66 -60
  186. package/chunks/{notebook-edit-4YM65BBO.js → notebook-edit-474DPMRL.js} +34 -22
  187. package/chunks/{openaiContentGenerator-EDQT6GTV.js → openaiContentGenerator-2NFY2MWO.js} +19 -9
  188. package/chunks/{pidfile-JOIIRN2C.js → pidfile-KBFVDNQP.js} +26 -22
  189. package/chunks/{process-registry-2CHQBXH5.js → process-registry-PMJOA5CO.js} +15 -0
  190. package/chunks/{processUtils-5SV4MX3Q.js → processUtils-6GRYH4Y3.js} +2 -2
  191. package/chunks/{pt-3AOBKPIJ.js → pt-U6AOCTMF.js} +5 -0
  192. package/chunks/{qwenContentGenerator-ODRJSUGR.js → qwenContentGenerator-KAHU6IZY.js} +33 -28
  193. package/chunks/{qwenOAuth2-NESCMZ47.js → qwenOAuth2-RRQTCP4W.js} +7 -5
  194. package/chunks/{read-file-HPSODLPK.js → read-file-3M6WXDXP.js} +6 -4
  195. package/chunks/{read-mcp-resource-2TNSJTC3.js → read-mcp-resource-PZ4ZF6YL.js} +1 -1
  196. package/chunks/{record-artifact-RAON52FC.js → record-artifact-P4HFMS7X.js} +2 -2
  197. package/chunks/{resumeHistoryUtils-TXCOFFMQ.js → resumeHistoryUtils-D6TAY3HX.js} +30 -26
  198. package/chunks/{ripGrep-ZKQGTQAO.js → ripGrep-PLPENT3E.js} +26 -22
  199. package/chunks/{ru-VJRAMC4W.js → ru-CMX4UMYP.js} +5 -0
  200. package/chunks/{run-qwen-serve-ZPKPKECF.js → run-qwen-serve-ZAFIJKJC.js} +168 -54
  201. package/chunks/{runtime-2FLNNM36.js → runtime-ZED7CYOZ.js} +38 -34
  202. package/chunks/{scheduler-365PJHNR.js → scheduler-MD3AL2W5.js} +26 -22
  203. package/chunks/{send-message-ZM7MRUGP.js → send-message-CAMSLG2L.js} +4 -3
  204. package/chunks/{serve-QD2RNLKJ.js → serve-E3VUDRZN.js} +33 -29
  205. package/chunks/{server-XLJVLTYM.js → server-OWMEMAKR.js} +450 -231
  206. package/chunks/{session-3VTUHH4Q.js → session-HZ57QK7K.js} +158 -97
  207. package/chunks/{settings-KULVPCQC.js → settings-V7BR3RKP.js} +32 -28
  208. package/chunks/{shell-3SWW22MH.js → shell-23OMNMW6.js} +26 -22
  209. package/chunks/{skill-KDHWYS7W.js → skill-6HBDYZRS.js} +7 -5
  210. package/chunks/{skill-settings-NMY4JEJC.js → skill-settings-HWJLTU7M.js} +32 -28
  211. package/chunks/{spawnChannel-ZKS4Q5OU.js → spawnChannel-N6KKUW5B.js} +27 -23
  212. package/chunks/{standalone-update-7CXPGAQ4.js → standalone-update-QGIKHATD.js} +28 -24
  213. package/chunks/{startInteractiveUI-2QQLEKM6.js → startInteractiveUI-GX2CRL42.js} +365 -155
  214. package/chunks/{syntheticOutput-ZLCUTKO2.js → syntheticOutput-PEBJQYJV.js} +2 -2
  215. package/chunks/{task-create-CQP5UEA3.js → task-create-5NWCQSJF.js} +5 -4
  216. package/chunks/{task-list-XLEZOJXP.js → task-list-53265TRZ.js} +1 -1
  217. package/chunks/{task-stop-7ZQM5CFF.js → task-stop-FPCOIRYX.js} +1 -1
  218. package/chunks/{task-update-JA75U2SN.js → task-update-5HN577LS.js} +5 -4
  219. package/chunks/{team-create-2WTNGAOX.js → team-create-CFFKU7KL.js} +26 -22
  220. package/chunks/{team-delete-MHY3UZGY.js → team-delete-MMQB4OSC.js} +1 -1
  221. package/chunks/{team-plan-approval-LZTYLEG4.js → team-plan-approval-6EFOKR6A.js} +26 -22
  222. package/chunks/{terminal-image-renderer-R5HHAFJN.js → terminal-image-renderer-TLDNACQY.js} +28 -24
  223. package/chunks/{theme-manager-PAUCSJFF.js → theme-manager-5LJ3H7VO.js} +26 -22
  224. package/chunks/{todoWrite-UPVOHYGD.js → todoWrite-JGV6VLOX.js} +1 -1
  225. package/chunks/{tool-search-2BFCGLI6.js → tool-search-UJV3A24H.js} +9 -6
  226. package/chunks/{total-session-admission-MK4SINFK.js → total-session-admission-D63QYXGO.js} +29 -25
  227. package/chunks/{trustedFolders-TJ5S26N7.js → trustedFolders-KZCOB53W.js} +30 -24
  228. package/chunks/{update-relaunch-N7AYLARF.js → update-relaunch-IFILM3SA.js} +5 -5
  229. package/chunks/{updateCheck-QRZ3DVT5.js → updateCheck-YZ2CRCFC.js} +29 -25
  230. package/chunks/{useAutoAcceptIndicator-DBJ7Y5AF.js → useAutoAcceptIndicator-AXEVNA3Q.js} +35 -31
  231. package/chunks/{validateNonInterActiveAuth-6ZQWUDS3.js → validateNonInterActiveAuth-3WTOJFWA.js} +61 -57
  232. package/chunks/{version-AJQGQWXC.js → version-GXK7OHZY.js} +1 -1
  233. package/chunks/{web-fetch-QWJYRXFL.js → web-fetch-ILB4GAVR.js} +12 -8
  234. package/chunks/{web-search-2AOXJGHU.js → web-search-HKRPGPZZ.js} +8 -6
  235. package/chunks/{workflow-ERH3SJG2.js → workflow-FXIPRQQA.js} +750 -147
  236. package/chunks/{workspace-providers-status-HZ474RA4.js → workspace-providers-status-NYHC7HSR.js} +35 -31
  237. package/chunks/{workspace-registration-store-6EUP4JXG.js → workspace-registration-store-AKEB7OMW.js} +1 -1
  238. package/chunks/{workspace-registry-R4APRRNC.js → workspace-registry-CDAS5TVZ.js} +29 -25
  239. package/chunks/{workspace-service-HFIFDMU7.js → workspace-service-PAMUKMAV.js} +36 -32
  240. package/chunks/{workspace-skills-status-HAHEIHGK.js → workspace-skills-status-YQSHCCMS.js} +33 -29
  241. package/chunks/{workspace-trust-reconciler-65GTAGDK.js → workspace-trust-reconciler-RPTXOIY2.js} +36 -32
  242. package/chunks/{write-file-B34CDELV.js → write-file-CGS57TS4.js} +26 -22
  243. package/chunks/{zh-ARWDLDLR.js → zh-AGL2FVBI.js} +6 -0
  244. package/chunks/{zh-TW-Y4RGI3P7.js → zh-TW-KI66MHQY.js} +6 -0
  245. package/chunks/{zoom-image-HPRBZHSS.js → zoom-image-E7D72GYV.js} +6 -4
  246. package/cli.js +13 -13
  247. package/locales/ca.js +10 -0
  248. package/locales/de.js +9 -0
  249. package/locales/en.js +10 -0
  250. package/locales/fr.js +9 -0
  251. package/locales/ja.js +9 -0
  252. package/locales/pt.js +9 -0
  253. package/locales/ru.js +9 -0
  254. package/locales/zh-TW.js +10 -0
  255. package/locales/zh.js +10 -0
  256. package/package.json +3 -3
  257. package/web-shell/assets/{arc-Ip-FFDJ0.js → arc-DybZaz32.js} +1 -1
  258. package/web-shell/assets/{architectureDiagram-3BPJPVTR-CChqgwIb.js → architectureDiagram-3BPJPVTR-jN3qBd19.js} +1 -1
  259. package/web-shell/assets/{blockDiagram-GPEHLZMM-BHN-Tfss.js → blockDiagram-GPEHLZMM-Ct5DZPrj.js} +1 -1
  260. package/web-shell/assets/{c4Diagram-AAUBKEIU-BhyjzDjN.js → c4Diagram-AAUBKEIU-CUAFMlUG.js} +1 -1
  261. package/web-shell/assets/channel-BMwLrwLW.js +1 -0
  262. package/web-shell/assets/{chunk-2J33WTMH-BB9eyHrx.js → chunk-2J33WTMH-CuV8n90B.js} +1 -1
  263. package/web-shell/assets/{chunk-4BX2VUAB-BeV7ce_J.js → chunk-4BX2VUAB-BUzl_kls.js} +1 -1
  264. package/web-shell/assets/{chunk-55IACEB6-DO7kXDiV.js → chunk-55IACEB6-BnDBLX6A.js} +1 -1
  265. package/web-shell/assets/{chunk-727SXJPM-B27MPznD.js → chunk-727SXJPM-B83uTOjm.js} +1 -1
  266. package/web-shell/assets/{chunk-AQP2D5EJ-DHIjqjD_.js → chunk-AQP2D5EJ-DM3HLgpT.js} +1 -1
  267. package/web-shell/assets/{chunk-FMBD7UC4-DabMqyN2.js → chunk-FMBD7UC4-CSQ5hgyb.js} +1 -1
  268. package/web-shell/assets/{chunk-ND2GUHAM-Dw7Nnnxc.js → chunk-ND2GUHAM-BWOF4SxX.js} +1 -1
  269. package/web-shell/assets/{chunk-QZHKN3VN-DdaZew1Q.js → chunk-QZHKN3VN-BsOH9LMi.js} +1 -1
  270. package/web-shell/assets/classDiagram-4FO5ZUOK-BGDv98jY.js +1 -0
  271. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-BGDv98jY.js +1 -0
  272. package/web-shell/assets/{cose-bilkent-S5V4N54A-CgBpCYH5.js → cose-bilkent-S5V4N54A-IENqH2iJ.js} +1 -1
  273. package/web-shell/assets/{dagre-BM42HDAG-BB4IU8G0.js → dagre-BM42HDAG--dyzDTGo.js} +1 -1
  274. package/web-shell/assets/{diagram-2AECGRRQ-BcUTHU37.js → diagram-2AECGRRQ-BE7Dcqof.js} +1 -1
  275. package/web-shell/assets/{diagram-5GNKFQAL-B6Lyihyv.js → diagram-5GNKFQAL-Cr8-5OTj.js} +1 -1
  276. package/web-shell/assets/{diagram-KO2AKTUF-CRIJOjpG.js → diagram-KO2AKTUF-Bzey3uAY.js} +1 -1
  277. package/web-shell/assets/{diagram-LMA3HP47-DdNiwWWT.js → diagram-LMA3HP47-sErl28Xb.js} +1 -1
  278. package/web-shell/assets/{diagram-OG6HWLK6-Dz4b32Do.js → diagram-OG6HWLK6-Dq30ATIo.js} +1 -1
  279. package/web-shell/assets/{erDiagram-TEJ5UH35-D-8NGw77.js → erDiagram-TEJ5UH35-BkCoEfVW.js} +1 -1
  280. package/web-shell/assets/{flowDiagram-I6XJVG4X-Dun26LyM.js → flowDiagram-I6XJVG4X-DHwO0rrI.js} +1 -1
  281. package/web-shell/assets/{ganttDiagram-6RSMTGT7-F10Hu1Gc.js → ganttDiagram-6RSMTGT7-s7vAPxWq.js} +1 -1
  282. package/web-shell/assets/{gitGraphDiagram-PVQCEYII-Bf8Ez6-D.js → gitGraphDiagram-PVQCEYII-CQxhwPOU.js} +1 -1
  283. package/web-shell/assets/index-Bckpjr-I.css +5 -0
  284. package/web-shell/assets/{index-BXqw-nGq.js → index-CF4wApWp.js} +1 -1
  285. package/web-shell/assets/index-DwEr9HEW.js +1768 -0
  286. package/web-shell/assets/{infoDiagram-5YYISTIA-DVgTMLvj.js → infoDiagram-5YYISTIA-BnFrD0bq.js} +1 -1
  287. package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-uT-KepvK.js → ishikawaDiagram-YF4QCWOH-Bf9zK5NK.js} +1 -1
  288. package/web-shell/assets/{journeyDiagram-JHISSGLW-Vg_XadQf.js → journeyDiagram-JHISSGLW-CyGAhsxi.js} +1 -1
  289. package/web-shell/assets/{kanban-definition-UN3LZRKU-Dyv1ESBE.js → kanban-definition-UN3LZRKU-CbsK5akB.js} +1 -1
  290. package/web-shell/assets/{linear-BMIepYX3.js → linear-cQsF4P8D.js} +1 -1
  291. package/web-shell/assets/{mermaid.core-zA8pJ9ag.js → mermaid.core-Z4HVqrKY.js} +5 -5
  292. package/web-shell/assets/{mindmap-definition-RKZ34NQL-BCW_BZ_5.js → mindmap-definition-RKZ34NQL-CYnrBo_f.js} +1 -1
  293. package/web-shell/assets/{pieDiagram-4H26LBE5-DseNEGp2.js → pieDiagram-4H26LBE5-CBzOfhrs.js} +1 -1
  294. package/web-shell/assets/{quadrantDiagram-W4KKPZXB-6Z7wr1Fi.js → quadrantDiagram-W4KKPZXB-D4LK1Ebn.js} +1 -1
  295. package/web-shell/assets/{requirementDiagram-4Y6WPE33-CVOlCRPf.js → requirementDiagram-4Y6WPE33-Bzti2Lcj.js} +1 -1
  296. package/web-shell/assets/{sankeyDiagram-5OEKKPKP-CGhgrUJZ.js → sankeyDiagram-5OEKKPKP-yTBw5Z2s.js} +1 -1
  297. package/web-shell/assets/{sequenceDiagram-3UESZ5HK-dlqmpLuQ.js → sequenceDiagram-3UESZ5HK-D07UVRiZ.js} +1 -1
  298. package/web-shell/assets/{stateDiagram-AJRCARHV-B9EW10Xb.js → stateDiagram-AJRCARHV-UE_lHsTn.js} +1 -1
  299. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-DC6xgXjX.js +1 -0
  300. package/web-shell/assets/{timeline-definition-PNZ67QCA-BBRh0mgZ.js → timeline-definition-PNZ67QCA-DRvYdiTs.js} +1 -1
  301. package/web-shell/assets/{vennDiagram-CIIHVFJN-B8Gs-REP.js → vennDiagram-CIIHVFJN-CQLIXs0u.js} +1 -1
  302. package/web-shell/assets/{wardley-L42UT6IY-D_y80Ur7.js → wardley-L42UT6IY-JZz_Xqse.js} +1 -1
  303. package/web-shell/assets/{wardleyDiagram-YWT4CUSO-D-CNfHJ-.js → wardleyDiagram-YWT4CUSO--i7BiJwB.js} +1 -1
  304. package/web-shell/assets/{xychartDiagram-2RQKCTM6-DQ5CvELo.js → xychartDiagram-2RQKCTM6-Bkc-bW0S.js} +1 -1
  305. package/web-shell/index.html +2 -2
  306. package/chunks/chunk-6PEXNQTX.js +0 -68
  307. package/chunks/chunk-IUFV6FYU.js +0 -81
  308. package/web-shell/assets/channel-Cu8qd6OB.js +0 -1
  309. package/web-shell/assets/classDiagram-4FO5ZUOK-BI3KrXhq.js +0 -1
  310. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-BI3KrXhq.js +0 -1
  311. package/web-shell/assets/index-QQlUCJGg.css +0 -5
  312. package/web-shell/assets/index-hcgjV7vS.js +0 -1768
  313. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-CJTZJJ5X.js +0 -1
  314. package/chunks/{anthropicContentGenerator-DTMVEL5M.js → anthropicContentGenerator-SSFE2753.js} +9 -9
@@ -0,0 +1,244 @@
1
+ // Force strict mode and setup for ESM
2
+ "use strict";
3
+ import {
4
+ init_esbuild_shims
5
+ } from "./chunk-5O2XNYP6.js";
6
+ import {
7
+ __name
8
+ } from "./chunk-J2S4EL5Y.js";
9
+
10
+ // packages/cli/src/commands/channel/channel-registry.ts
11
+ init_esbuild_shims();
12
+ var registry = /* @__PURE__ */ new Map();
13
+ var builtinsPromise = null;
14
+ var UNSAFE_OBJECT_KEYS = /* @__PURE__ */ new Set([
15
+ "__proto__",
16
+ "constructor",
17
+ "prototype"
18
+ ]);
19
+ var FIELD_KINDS = /* @__PURE__ */ new Set([
20
+ "string",
21
+ "secret",
22
+ "boolean",
23
+ "number",
24
+ "enum",
25
+ "string-list",
26
+ "record",
27
+ "object"
28
+ ]);
29
+ function assertManagementFields(fields, parentPath, nested = false) {
30
+ const seen = /* @__PURE__ */ new Set();
31
+ for (const field of fields) {
32
+ const path = parentPath ? `${parentPath}.${field.key}` : field.key;
33
+ if (typeof field.key !== "string" || field.key.length === 0) {
34
+ throw new Error(
35
+ `Channel field "${path}" must declare a non-empty string key.`
36
+ );
37
+ }
38
+ if (seen.has(field.key)) {
39
+ throw new Error(`Channel field "${path}" is declared more than once.`);
40
+ }
41
+ seen.add(field.key);
42
+ assertManagementField(field, path, nested);
43
+ }
44
+ }
45
+ __name(assertManagementFields, "assertManagementFields");
46
+ function assertManagementField(field, path, nested) {
47
+ if (!FIELD_KINDS.has(field.kind)) {
48
+ throw new Error(
49
+ `Channel field "${path}" declares an unknown kind "${field.kind}".`
50
+ );
51
+ }
52
+ if (UNSAFE_OBJECT_KEYS.has(field.key)) {
53
+ throw new Error(`Channel field "${path}" cannot use a reserved key.`);
54
+ }
55
+ if (!nested && field.key === "type") {
56
+ throw new Error(
57
+ `Channel field "${path}" cannot use the reserved key "type".`
58
+ );
59
+ }
60
+ if (typeof field.label !== "string" || field.label.length === 0) {
61
+ throw new Error(`Channel field "${path}" must declare a string label.`);
62
+ }
63
+ if (field.description !== void 0 && typeof field.description !== "string") {
64
+ throw new Error(
65
+ `Channel field "${path}" must declare a string description.`
66
+ );
67
+ }
68
+ if (field.default !== void 0 && typeof field.default !== "string") {
69
+ throw new Error(`Channel field "${path}" must declare a string default.`);
70
+ }
71
+ const envResolvable = Boolean(field.envResolvable);
72
+ const required = Boolean(field.required);
73
+ if (field.kind === "secret" && nested) {
74
+ throw new Error(`Channel field "${path}" cannot declare a nested secret.`);
75
+ }
76
+ if (envResolvable && (nested || field.kind !== "string" && field.kind !== "secret")) {
77
+ throw new Error(
78
+ `Channel field "${path}" cannot resolve environment references.`
79
+ );
80
+ }
81
+ const exclusiveMinimum = field.exclusiveMinimum;
82
+ if (exclusiveMinimum !== void 0) {
83
+ if (field.kind !== "number") {
84
+ throw new Error(
85
+ `Channel field "${path}" can only declare exclusiveMinimum on number fields.`
86
+ );
87
+ }
88
+ if (typeof exclusiveMinimum !== "number" || !Number.isFinite(exclusiveMinimum)) {
89
+ throw new Error(
90
+ `Channel field "${path}" must declare a finite exclusiveMinimum.`
91
+ );
92
+ }
93
+ }
94
+ if (field.kind === "enum") {
95
+ if (!Array.isArray(field.options) || field.options.length === 0) {
96
+ throw new Error(
97
+ `Channel field "${path}" must declare at least one option.`
98
+ );
99
+ }
100
+ if (field.options.some(
101
+ (option) => typeof option?.value !== "string" || option.value.length === 0
102
+ )) {
103
+ throw new Error(
104
+ `Channel field "${path}" must declare non-empty string option values.`
105
+ );
106
+ }
107
+ if (new Set(field.options.map((option) => option.value)).size !== field.options.length) {
108
+ throw new Error(
109
+ `Channel field "${path}" declares duplicate option values.`
110
+ );
111
+ }
112
+ if (field.default !== void 0 && !field.options.some((option) => option.value === field.default)) {
113
+ throw new Error(
114
+ `Channel field "${path}" declares a default that is not one of its options.`
115
+ );
116
+ }
117
+ }
118
+ if (field.kind !== "object") return;
119
+ if (required) {
120
+ throw new Error(`Channel field "${path}" cannot be a required object.`);
121
+ }
122
+ if (!Array.isArray(field.properties)) {
123
+ throw new Error(`Channel field "${path}" must declare a properties array.`);
124
+ }
125
+ if (field.properties.length === 0) {
126
+ throw new Error(
127
+ `Channel field "${path}" must declare at least one property.`
128
+ );
129
+ }
130
+ assertManagementFields(field.properties, path, true);
131
+ }
132
+ __name(assertManagementField, "assertManagementField");
133
+ function assertManagementDescriptor(plugin) {
134
+ const management = plugin.management;
135
+ if (management === void 0) return;
136
+ if (management.validateConfig !== void 0 && (typeof management.validateConfig !== "function" || management.validateConfig.constructor.name === "AsyncFunction")) {
137
+ throw new Error(
138
+ "Channel management metadata must declare validateConfig as a synchronous function."
139
+ );
140
+ }
141
+ if (!Array.isArray(management.fields)) {
142
+ throw new Error("Channel management metadata must declare a fields array.");
143
+ }
144
+ assertManagementFields(management.fields);
145
+ }
146
+ __name(assertManagementDescriptor, "assertManagementDescriptor");
147
+ function ensureBuiltins() {
148
+ if (!builtinsPromise) {
149
+ builtinsPromise = (async () => {
150
+ const labelled = [
151
+ { name: "telegram", promise: import("./dist-IRL7WA5Z.js") },
152
+ { name: "weixin", promise: import("./dist-RCH3I7SS.js") },
153
+ { name: "dingtalk", promise: import("./dist-HIACTZEK.js") },
154
+ { name: "wecom", promise: import("./dist-KVISB2O2.js") },
155
+ { name: "feishu", promise: import("./dist-EEEQGCZA.js") },
156
+ { name: "qqbot", promise: import("./dist-MKX5OSFF.js") },
157
+ { name: "github", promise: import("./dist-MBF3I5MX.js") },
158
+ { name: "gitlab", promise: import("./dist-TUSWNE2I.js") }
159
+ ];
160
+ const results = await Promise.allSettled(labelled.map((l) => l.promise));
161
+ for (let i = 0; i < results.length; i++) {
162
+ const result = results[i];
163
+ if (result.status === "fulfilled") {
164
+ registerWithManagementValidation(
165
+ result.value.plugin,
166
+ labelled[i].name
167
+ );
168
+ } else {
169
+ process.stderr.write(
170
+ `[channel-registry] Failed to load "${labelled[i].name}" channel: ${result.reason}
171
+ `
172
+ );
173
+ }
174
+ }
175
+ })();
176
+ }
177
+ return builtinsPromise;
178
+ }
179
+ __name(ensureBuiltins, "ensureBuiltins");
180
+ function registerPlugin(plugin) {
181
+ if (registry.has(plugin.channelType)) {
182
+ throw new Error(
183
+ `Channel type "${plugin.channelType}" is already registered.`
184
+ );
185
+ }
186
+ registerWithManagementValidation(plugin, plugin.channelType);
187
+ }
188
+ __name(registerPlugin, "registerPlugin");
189
+ function registerWithManagementValidation(plugin, label) {
190
+ try {
191
+ assertManagementDescriptor(plugin);
192
+ } catch (error) {
193
+ process.stderr.write(
194
+ `[channel-registry] Invalid management metadata in "${label}" channel: ${error instanceof Error ? error.message : String(error)}
195
+ `
196
+ );
197
+ const stripped = Object.assign(
198
+ Object.create(
199
+ Object.getPrototypeOf(plugin) ?? Object.prototype
200
+ ),
201
+ plugin
202
+ );
203
+ Object.defineProperty(stripped, "management", {
204
+ value: void 0,
205
+ writable: true,
206
+ enumerable: true,
207
+ configurable: true
208
+ });
209
+ registry.set(plugin.channelType, stripped);
210
+ return;
211
+ }
212
+ registry.set(plugin.channelType, plugin);
213
+ }
214
+ __name(registerWithManagementValidation, "registerWithManagementValidation");
215
+ async function getPlugin(channelType) {
216
+ await ensureBuiltins();
217
+ return registry.get(channelType);
218
+ }
219
+ __name(getPlugin, "getPlugin");
220
+ async function supportedTypes() {
221
+ await ensureBuiltins();
222
+ return [...registry.keys()];
223
+ }
224
+ __name(supportedTypes, "supportedTypes");
225
+ async function supportedChannelCatalog() {
226
+ await ensureBuiltins();
227
+ return [...registry.values()].map(
228
+ ({ channelType, displayName, management }) => ({
229
+ type: channelType,
230
+ displayName,
231
+ manageable: management !== void 0,
232
+ fields: management?.fields ?? []
233
+ })
234
+ );
235
+ }
236
+ __name(supportedChannelCatalog, "supportedChannelCatalog");
237
+
238
+ export {
239
+ UNSAFE_OBJECT_KEYS,
240
+ registerPlugin,
241
+ getPlugin,
242
+ supportedTypes,
243
+ supportedChannelCatalog
244
+ };
@@ -1,5 +1,9 @@
1
1
  // Force strict mode and setup for ESM
2
2
  "use strict";
3
+ import {
4
+ getPathComparisonVariants,
5
+ isWithinRoot
6
+ } from "./chunk-MR3PXB6E.js";
3
7
  import {
4
8
  init_esbuild_shims
5
9
  } from "./chunk-5O2XNYP6.js";
@@ -81,6 +85,83 @@ var require_strip_json_comments = __commonJS({
81
85
  }
82
86
  });
83
87
 
88
+ // packages/cli/src/config/trust-precedence.ts
89
+ init_esbuild_shims();
90
+ import * as path from "node:path";
91
+ function pathDepth(value) {
92
+ const root = path.parse(value).root;
93
+ const relative2 = path.relative(root, value);
94
+ return relative2 === "" ? 0 : relative2.split(path.sep).filter(Boolean).length;
95
+ }
96
+ __name(pathDepth, "pathDepth");
97
+ function matchingDepth(rule, locationVariants) {
98
+ let deepestMatch = -1;
99
+ for (const locationVariant of locationVariants) {
100
+ for (const ruleVariant of rule.variants) {
101
+ if (isWithinRoot(locationVariant, ruleVariant)) {
102
+ deepestMatch = Math.max(deepestMatch, pathDepth(ruleVariant));
103
+ }
104
+ }
105
+ }
106
+ return deepestMatch;
107
+ }
108
+ __name(matchingDepth, "matchingDepth");
109
+ function buildTrustPrecedenceRules(rules) {
110
+ const result = [];
111
+ for (const rule of rules) {
112
+ let level;
113
+ let rulePath = rule.path;
114
+ switch (rule.trustLevel) {
115
+ case "TRUST_FOLDER":
116
+ level = "trusted";
117
+ break;
118
+ case "TRUST_PARENT":
119
+ level = "trusted";
120
+ rulePath = path.dirname(rule.path);
121
+ break;
122
+ case "DO_NOT_TRUST":
123
+ level = "untrusted";
124
+ break;
125
+ default:
126
+ continue;
127
+ }
128
+ result.push({
129
+ level,
130
+ variants: getPathComparisonVariants(rulePath),
131
+ payload: rule.trustLevel
132
+ });
133
+ }
134
+ return result;
135
+ }
136
+ __name(buildTrustPrecedenceRules, "buildTrustPrecedenceRules");
137
+ function resolveTrustRule(rules, locationVariants) {
138
+ let winner;
139
+ let winnerDepth = -1;
140
+ for (const rule of rules) {
141
+ const depth = matchingDepth(rule, locationVariants);
142
+ if (depth < 0) continue;
143
+ if (depth > winnerDepth || depth === winnerDepth && rule.level === "untrusted" && winner?.level !== "untrusted") {
144
+ winner = rule;
145
+ winnerDepth = depth;
146
+ }
147
+ }
148
+ return winner;
149
+ }
150
+ __name(resolveTrustRule, "resolveTrustRule");
151
+ function resolveTrustDecision(rules, locationVariants) {
152
+ const winner = resolveTrustRule(rules, locationVariants);
153
+ return winner?.level === "trusted" ? true : winner?.level === "untrusted" ? false : void 0;
154
+ }
155
+ __name(resolveTrustDecision, "resolveTrustDecision");
156
+
84
157
  export {
85
- require_strip_json_comments
158
+ require_strip_json_comments,
159
+ buildTrustPrecedenceRules,
160
+ resolveTrustRule,
161
+ resolveTrustDecision
86
162
  };
163
+ /**
164
+ * @license
165
+ * Copyright 2026 Qwen Team
166
+ * SPDX-License-Identifier: Apache-2.0
167
+ */
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  runExitCleanup
5
- } from "./chunk-EORNAQDT.js";
5
+ } from "./chunk-6TR7CFXH.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
  getEffectiveSupportedModes
5
- } from "./chunk-RNVQB725.js";
5
+ } from "./chunk-XHD7CRP2.js";
6
6
  import {
7
7
  init_esbuild_shims
8
8
  } from "./chunk-5O2XNYP6.js";
@@ -21,23 +21,23 @@ import {
21
21
  getLanguageNameFromLocale,
22
22
  getLanguageSettingsOptions,
23
23
  t
24
- } from "./chunk-DBOFL3LQ.js";
24
+ } from "./chunk-PG62DFWD.js";
25
25
  import {
26
26
  getHomeEnvFallbackVars,
27
27
  loadEnvironment,
28
28
  preResolveHomeEnvOverrides
29
- } from "./chunk-VOARQPTA.js";
29
+ } from "./chunk-B52AWKBB.js";
30
30
  import {
31
31
  ENV_CORRUPTED_PATH,
32
32
  ENV_WAS_RECOVERED
33
- } from "./chunk-6PEXNQTX.js";
33
+ } from "./chunk-UA5H3DS2.js";
34
34
  import {
35
35
  isWorkspaceTrusted,
36
36
  updateSettingsFilePreservingFormat
37
- } from "./chunk-6XU3PH66.js";
37
+ } from "./chunk-HA3SAB64.js";
38
38
  import {
39
39
  require_strip_json_comments
40
- } from "./chunk-ALGGS7UH.js";
40
+ } from "./chunk-NPQ5ZKRP.js";
41
41
  import {
42
42
  DEFAULT_MAX_SUBAGENT_DEPTH,
43
43
  DEFAULT_MAX_TOOL_CALLS_PER_TURN,
@@ -46,10 +46,10 @@ import {
46
46
  DEFAULT_TOOL_RESULTS_TOTAL_CHARS_THRESHOLD,
47
47
  DEFAULT_TRUNCATE_TOOL_OUTPUT_LINES,
48
48
  DEFAULT_TRUNCATE_TOOL_OUTPUT_THRESHOLD
49
- } from "./chunk-Y7E5LNLO.js";
49
+ } from "./chunk-GXSNGY5M.js";
50
50
  import {
51
51
  stripRuntimeSnapshotPrefix
52
- } from "./chunk-RMH5OWLD.js";
52
+ } from "./chunk-VXZ5HAOV.js";
53
53
  import {
54
54
  DEFAULT_QWEN_CUSTOM_IGNORE_FILE_NAMES
55
55
  } from "./chunk-EQL65XGA.js";
@@ -1352,7 +1352,7 @@ var SETTINGS_SCHEMA = {
1352
1352
  category: "Model",
1353
1353
  requiresRestart: false,
1354
1354
  default: true,
1355
- description: "Skip the opt-in streaming loop-detection heuristics (content/thought repetition, read-file and action stagnation, global-duplicate and alternating tool-call patterns). Defaults to true to avoid false-positive interruptions; set to false to re-enable them as an unattended-run guardrail. A minimal always-on guard (consecutive identical tool calls plus a per-turn tool-call cap, see model.maxToolCallsPerTurn) still runs regardless of this setting.",
1355
+ description: "Skip the opt-in streaming loop-detection heuristics (content/thought repetition, read-file and action stagnation, global-duplicate and alternating tool-call patterns). Defaults to true to avoid false-positive interruptions; set to false to re-enable them as an unattended-run guardrail. Daemon/ACP sessions run none of the other detectors; setting this to false also enables a global-duplicate tool-call halt there. Core-client sessions keep a minimal always-on guard regardless of this setting (consecutive identical tool calls, shell inspection-command stagnation, and a per-turn tool-call cap, see model.maxToolCallsPerTurn); daemon/ACP sessions keep the per-turn tool-call cap and an invalid-tool-params stagnation guard.",
1356
1356
  showInDialog: false
1357
1357
  },
1358
1358
  maxToolCallsPerTurn: {
@@ -1361,7 +1361,7 @@ var SETTINGS_SCHEMA = {
1361
1361
  category: "Model",
1362
1362
  requiresRestart: false,
1363
1363
  default: DEFAULT_MAX_TOOL_CALLS_PER_TURN,
1364
- description: "Per-turn tool-call cap (one model turn plus its tool-result continuations; blocking Stop-hook continuations such as /goal iterations start a fresh budget). When set explicitly, this value is a hard cap: the turn halts on the next tool call after it is reached (the released behavior). When left unset (default 100), the cap is adaptive: once the turn exceeds 100 it halts only when the model keeps repeating the same call (a stuck loop); a productive turn (diverse calls) continues up to a hard backstop of 1000, which always halts. The adaptive default applies to both the interactive TUI and non-interactive (-p / JSON / stream-JSON) core-client runs; the daemon/ACP path always treats the value as a hard cap. An always-on circuit breaker against runaway turns, independent of model.skipLoopDetection. Set to 0 or a negative value to disable the cap.",
1364
+ description: "Per-turn tool-call cap (one model turn plus its tool-result continuations; blocking Stop-hook continuations such as /goal iterations start a fresh budget). When set explicitly, this value is a hard cap: the turn halts on the next tool call after it is reached (the released behavior). When left unset (default 100), the cap is adaptive: once the turn exceeds 100 it halts only when the model keeps repeating the same call (a stuck loop); a productive turn (diverse calls) continues up to a hard backstop of 1000, which always halts. The adaptive default applies to the interactive TUI, non-interactive (-p / JSON / stream-JSON) core-client runs, and daemon/ACP sessions alike. Daemon/ACP sessions evaluate the cap once per tool batch, before execution: a batch that would cross an explicit cap or the hard backstop is skipped whole, so a turn never executes past either (it can halt up to one batch short), while the adaptive soft cap is exceeded by design, up to the backstop. They also have no in-session disable. An always-on circuit breaker against runaway turns, independent of model.skipLoopDetection. Set to 0 or a negative value to disable the cap.",
1365
1365
  showInDialog: false
1366
1366
  },
1367
1367
  skipStartupContext: {
@@ -1448,7 +1448,7 @@ var SETTINGS_SCHEMA = {
1448
1448
  category: "Generation Configuration",
1449
1449
  requiresRestart: false,
1450
1450
  default: true,
1451
- description: "Enable cache control for DashScope providers.",
1451
+ description: "Enable provider prompt-cache controls.",
1452
1452
  parentKey: "generationConfig",
1453
1453
  showInDialog: false
1454
1454
  },
@@ -6,7 +6,7 @@ import {
6
6
  import {
7
7
  getPlanRequiredTeammatePreApprovalMessage,
8
8
  isPlanRequiredTeammateAwaitingApproval
9
- } from "./chunk-BVWVWGLE.js";
9
+ } from "./chunk-WAUGQKUU.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-IC4Z6LX6.js";
18
+ } from "./chunk-PYQADEFD.js";
19
19
  import {
20
20
  init_esbuild_shims
21
21
  } from "./chunk-5O2XNYP6.js";
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  resolveBundleDir
5
- } from "./chunk-Y7E5LNLO.js";
5
+ } from "./chunk-GXSNGY5M.js";
6
6
  import {
7
7
  Storage
8
8
  } from "./chunk-OIVKILPI.js";
@@ -272,15 +272,15 @@ var MUST_TRANSLATE_KEYS = [
272
272
 
273
273
  // import("./locales/**/*.js") in packages/cli/src/i18n/index.ts
274
274
  var globImport_locales_js = __glob({
275
- "./locales/ca.js": () => import("./ca-NYKNH222.js"),
276
- "./locales/de.js": () => import("./de-VL76CPLV.js"),
277
- "./locales/en.js": () => import("./en-IRJ2WN5T.js"),
278
- "./locales/fr.js": () => import("./fr-GK3HQYVB.js"),
279
- "./locales/ja.js": () => import("./ja-3FA46IKD.js"),
280
- "./locales/pt.js": () => import("./pt-3AOBKPIJ.js"),
281
- "./locales/ru.js": () => import("./ru-VJRAMC4W.js"),
282
- "./locales/zh-TW.js": () => import("./zh-TW-Y4RGI3P7.js"),
283
- "./locales/zh.js": () => import("./zh-ARWDLDLR.js")
275
+ "./locales/ca.js": () => import("./ca-ZLKAB4K3.js"),
276
+ "./locales/de.js": () => import("./de-LIW4XVLN.js"),
277
+ "./locales/en.js": () => import("./en-SY5GTIGX.js"),
278
+ "./locales/fr.js": () => import("./fr-RQFO7U4P.js"),
279
+ "./locales/ja.js": () => import("./ja-KOZKHJHZ.js"),
280
+ "./locales/pt.js": () => import("./pt-U6AOCTMF.js"),
281
+ "./locales/ru.js": () => import("./ru-CMX4UMYP.js"),
282
+ "./locales/zh-TW.js": () => import("./zh-TW-KI66MHQY.js"),
283
+ "./locales/zh.js": () => import("./zh-AGL2FVBI.js")
284
284
  });
285
285
 
286
286
  // packages/cli/src/i18n/index.ts
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  MAX_TERMINAL_IMAGE_BYTES
5
- } from "./chunk-IC4Z6LX6.js";
5
+ } from "./chunk-PYQADEFD.js";
6
6
  import {
7
7
  init_esbuild_shims
8
8
  } from "./chunk-5O2XNYP6.js";
@@ -5,7 +5,7 @@ import {
5
5
  } from "./chunk-M6HMMKVG.js";
6
6
  import {
7
7
  isInternalPromptId
8
- } from "./chunk-2U3WZGZG.js";
8
+ } from "./chunk-3PY4LPJF.js";
9
9
  import {
10
10
  createDebugLogger
11
11
  } from "./chunk-OIVKILPI.js";
@@ -15686,6 +15686,10 @@ var ToolNamesMigration = {
15686
15686
  task: ToolNames.AGENT
15687
15687
  // Legacy name from agent tool (renamed from task)
15688
15688
  };
15689
+ function canonicalToolName(toolName) {
15690
+ return ToolNamesMigration[toolName] ?? toolName;
15691
+ }
15692
+ __name(canonicalToolName, "canonicalToolName");
15689
15693
  var ToolDisplayNamesMigration = {
15690
15694
  SearchFiles: ToolDisplayNames.GREP,
15691
15695
  // Old display name for Grep
@@ -15718,6 +15722,7 @@ export {
15718
15722
  ToolNames,
15719
15723
  ToolDisplayNames,
15720
15724
  ToolNamesMigration,
15725
+ canonicalToolName,
15721
15726
  ToolDisplayNamesMigration
15722
15727
  };
15723
15728
  /**
@@ -16,7 +16,7 @@ import {
16
16
  MODIFIER_SHIFT_BIT,
17
17
  MODIFIER_SUPER_BIT,
18
18
  clipboardHasImage
19
- } from "./chunk-YHEEE624.js";
19
+ } from "./chunk-EN2TKTFH.js";
20
20
  import {
21
21
  noteInteraction
22
22
  } from "./chunk-KW7NOTN6.js";
@@ -33,7 +33,7 @@ import {
33
33
  import {
34
34
  KittySequenceOverflowEvent,
35
35
  logKittySequenceOverflow
36
- } from "./chunk-2U3WZGZG.js";
36
+ } from "./chunk-3PY4LPJF.js";
37
37
  import {
38
38
  createDebugLogger
39
39
  } from "./chunk-OIVKILPI.js";
@@ -5,21 +5,21 @@ import {
5
5
  } from "./chunk-57OAHC2Y.js";
6
6
  import {
7
7
  loadSettings
8
- } from "./chunk-PQBHU2IA.js";
8
+ } from "./chunk-OHKJVAKG.js";
9
9
  import {
10
10
  getCurrentLanguage,
11
11
  t
12
- } from "./chunk-DBOFL3LQ.js";
12
+ } from "./chunk-PG62DFWD.js";
13
13
  import {
14
14
  isWorkspaceTrusted
15
- } from "./chunk-6XU3PH66.js";
15
+ } from "./chunk-HA3SAB64.js";
16
16
  import {
17
17
  ExtensionManager,
18
18
  getExtensionDescription,
19
19
  getExtensionDisplayName,
20
20
  redactUrlCredentials,
21
21
  require_prompts
22
- } from "./chunk-Y7E5LNLO.js";
22
+ } from "./chunk-GXSNGY5M.js";
23
23
  import {
24
24
  stripAnsi
25
25
  } from "./chunk-TWPJO254.js";
@@ -2,11 +2,11 @@
2
2
  "use strict";
3
3
  import {
4
4
  resolveChannelCwd
5
- } from "./chunk-VWOVHOTT.js";
5
+ } from "./chunk-KJZ26VBX.js";
6
6
  import {
7
7
  getPlugin,
8
8
  supportedTypes
9
- } from "./chunk-IUFV6FYU.js";
9
+ } from "./chunk-NGYI5EF5.js";
10
10
  import {
11
11
  init_esbuild_shims
12
12
  } from "./chunk-5O2XNYP6.js";
@@ -190,6 +190,21 @@ var ProcessRegistry = class {
190
190
  get activeProcessCount() {
191
191
  return this.children.size;
192
192
  }
193
+ /**
194
+ * Children this registry has committed to: attached ones plus reservations
195
+ * that have not attached yet. Larger than {@link activeProcessCount}, and
196
+ * the right figure for admission — `reserve()` inserts its token
197
+ * synchronously before `spawn()`, so two racing spawns each see the other
198
+ * here, while neither is visible in `activeProcessCount` until its child is
199
+ * attached.
200
+ *
201
+ * A child leaves this count when it *exits*, not when `terminate()` starts,
202
+ * so a channel swap is counted twice while the old process is still winding
203
+ * down. That is deliberate: its memory is still resident.
204
+ */
205
+ get committedProcessCount() {
206
+ return this.children.size + this.reservations.size;
207
+ }
193
208
  };
194
209
  var TrackedChild = class {
195
210
  constructor(child, onExit) {
@@ -332,13 +347,15 @@ function createSpawnChannelFactory(options = {}) {
332
347
  childEnvOverrides
333
348
  );
334
349
  childEnv["QWEN_CODE_NO_RELAUNCH"] = "true";
335
- const memoryArgs = getAcpMemoryArgs();
350
+ childEnv["QWEN_CODE_SERVE"] = "1";
336
351
  const execArgs = process.execArgv.filter(
337
352
  (a) => !/^--inspect(-brk)?($|=)/.test(a)
338
353
  );
339
354
  const reservation = processRegistry.reserve();
340
355
  let child;
341
356
  try {
357
+ options.childHeapPolicy?.decide(processRegistry.committedProcessCount);
358
+ const memoryArgs = getAcpMemoryArgs();
342
359
  child = spawn(
343
360
  process.execPath,
344
361
  [
@@ -5,7 +5,7 @@ import {
5
5
  } from "./chunk-NLREQJFK.js";
6
6
  import {
7
7
  formatMemoryUsage
8
- } from "./chunk-Y7E5LNLO.js";
8
+ } from "./chunk-GXSNGY5M.js";
9
9
  import {
10
10
  detectRuntime,
11
11
  redactProxyCredentials
@@ -2,10 +2,10 @@
2
2
  "use strict";
3
3
  import {
4
4
  MAX_INLINE_IMAGE_ENCODED_LENGTH
5
- } from "./chunk-2VSTGY6M.js";
5
+ } from "./chunk-PJRW65JO.js";
6
6
  import {
7
7
  MAX_TERMINAL_IMAGE_BYTES
8
- } from "./chunk-IC4Z6LX6.js";
8
+ } from "./chunk-PYQADEFD.js";
9
9
  import {
10
10
  init_esbuild_shims
11
11
  } from "./chunk-5O2XNYP6.js";