@qwen-code/qwen-code 0.21.5 → 0.21.6

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 (250) hide show
  1. package/bundled/qc-helper/docs/configuration/model-providers.md +8 -8
  2. package/bundled/qc-helper/docs/configuration/settings.md +15 -15
  3. package/bundled/qc-helper/docs/features/channels/github.md +31 -19
  4. package/bundled/qc-helper/docs/features/code-review.md +5 -1
  5. package/bundled/qc-helper/docs/features/headless.md +31 -0
  6. package/bundled/qc-helper/docs/qwen-serve.md +75 -0
  7. package/bundled/review/SKILL.md +72 -60
  8. package/chunks/{MaxSizedBox-2MWU5JYB.js → MaxSizedBox-2HFKP4LI.js} +11 -10
  9. package/chunks/{StandaloneSessionPicker-B6MI5NTB.js → StandaloneSessionPicker-RBV72M5N.js} +26 -25
  10. package/chunks/{acp-startup-profiler-3RICG2YW.js → acp-startup-profiler-ORIQ2CCQ.js} +2 -2
  11. package/chunks/{acpAgent-MRPYN6FH.js → acpAgent-WO6JFCVQ.js} +1232 -139
  12. package/chunks/{agent-NAOXNW4I.js → agent-AHGLYNZ4.js} +11 -10
  13. package/chunks/{agent-headless-L4PPVFKW.js → agent-headless-NTXKKGRO.js} +11 -10
  14. package/chunks/{bridge-LHXGYNCO.js → bridge-RPAU64CA.js} +17 -15
  15. package/chunks/{channel-management-service-UHX56NBO.js → channel-management-service-IGEUOVRT.js} +3 -3
  16. package/chunks/{channel-settings-store-QB54TLYE.js → channel-settings-store-ON64MF7G.js} +18 -17
  17. package/chunks/{channel-worker-group-NDG4WOOZ.js → channel-worker-group-JWQK224X.js} +6 -5
  18. package/chunks/{channel-worker-manager-ZCW6UW34.js → channel-worker-manager-77E3OXRQ.js} +6 -5
  19. package/chunks/{channel-worker-supervisor-ATGFTZRN.js → channel-worker-supervisor-62YWUGP2.js} +4 -3
  20. package/chunks/{chunk-EXHQZBVJ.js → chunk-2POQWYM6.js} +2 -2
  21. package/chunks/{chunk-YMUZQ3MQ.js → chunk-3LZKY4V4.js} +3 -3
  22. package/chunks/{chunk-7MFQLOHZ.js → chunk-3PRJYMXC.js} +1 -1
  23. package/chunks/{chunk-SJMCYCUQ.js → chunk-3UOLYNTF.js} +5 -5
  24. package/chunks/{chunk-Q2V4AOQL.js → chunk-4JH77A2U.js} +1 -1
  25. package/chunks/{chunk-MISUEWB4.js → chunk-4S4OEQ6U.js} +10 -6
  26. package/chunks/{chunk-URJHXOSO.js → chunk-4WTAQEHV.js} +1 -1
  27. package/chunks/{chunk-ZLGPHA34.js → chunk-536SWZTA.js} +5 -5
  28. package/chunks/{chunk-WU5NBSLD.js → chunk-5MJGUQU5.js} +3 -3
  29. package/chunks/{chunk-3P4GP4S2.js → chunk-75QMRMO7.js} +4 -4
  30. package/chunks/{chunk-YLL3SC5S.js → chunk-A4VTILZT.js} +1032 -913
  31. package/chunks/{chunk-B3EBIZUY.js → chunk-ACZRB7AD.js} +8 -3
  32. package/chunks/chunk-BKHCW2BI.js +41 -0
  33. package/chunks/{chunk-XD2PNH3K.js → chunk-BOGOR4HB.js} +5 -5
  34. package/chunks/{chunk-QL4TN4HS.js → chunk-BRVWYMKV.js} +1 -1
  35. package/chunks/{chunk-TCOJPG2P.js → chunk-C4CBJQKY.js} +1 -1
  36. package/chunks/{chunk-4O6HLCOF.js → chunk-CA4UIDFU.js} +1 -1
  37. package/chunks/{chunk-SQTA6PAY.js → chunk-CJ5WLD5Y.js} +6 -2
  38. package/chunks/{chunk-7W5KOBYU.js → chunk-DIT4V3XH.js} +1 -1
  39. package/chunks/{chunk-OIGB253L.js → chunk-DVBEGGLG.js} +8 -8
  40. package/chunks/{chunk-DTAPI453.js → chunk-EMYZIABH.js} +1 -1
  41. package/chunks/{chunk-GBY3ODW7.js → chunk-EXCEQD22.js} +3 -3
  42. package/chunks/{chunk-VJPF6GF2.js → chunk-FZFP7RZI.js} +3 -3
  43. package/chunks/{chunk-3GOCVBYR.js → chunk-G5NNWEYE.js} +5 -5
  44. package/chunks/{chunk-IWYXZAGT.js → chunk-GESMMPAK.js} +33 -33
  45. package/chunks/{chunk-SVIEVA3L.js → chunk-GK2H5GRC.js} +29 -4
  46. package/chunks/{chunk-7M2RLFNX.js → chunk-GWRHVJY2.js} +11 -11
  47. package/chunks/{chunk-BK2UNYWD.js → chunk-HIBNSEJE.js} +12 -0
  48. package/chunks/{chunk-4LLUH3A7.js → chunk-HU5TUALO.js} +95 -8
  49. package/chunks/{chunk-J7I2BZHS.js → chunk-HY25ULVN.js} +23 -6
  50. package/chunks/{chunk-G2UXFO2B.js → chunk-IMOQO6YL.js} +1 -1
  51. package/chunks/{chunk-CAX76R46.js → chunk-JE44IPH6.js} +1 -1
  52. package/chunks/{chunk-IK3RYLAD.js → chunk-K2B3X3E7.js} +3 -3
  53. package/chunks/{chunk-OWAK7LMW.js → chunk-KGJGEEVR.js} +7 -0
  54. package/chunks/{chunk-K64OI7S7.js → chunk-KHUA3NQV.js} +2 -2
  55. package/chunks/{chunk-LEZFUYPM.js → chunk-LAAFLUQV.js} +4 -4
  56. package/chunks/{chunk-FHPKHXHT.js → chunk-MKVZE4ZJ.js} +5 -1
  57. package/chunks/{chunk-4NEBUDWS.js → chunk-N2GJU6KI.js} +9 -9
  58. package/chunks/{chunk-N3RERU5N.js → chunk-NGJOAKJY.js} +3 -3
  59. package/chunks/chunk-NKLP3DCK.js +22 -0
  60. package/chunks/{chunk-K6VEL5KP.js → chunk-NKSF7HYF.js} +1 -1
  61. package/chunks/{chunk-LMNM37OE.js → chunk-O7V7N4G7.js} +1 -1
  62. package/chunks/{chunk-3H5RFLTS.js → chunk-ODPXHGLL.js} +2 -2
  63. package/chunks/{chunk-KH2BIJ4H.js → chunk-OP2OHZ7K.js} +267 -11
  64. package/chunks/{chunk-VOA2UPZM.js → chunk-OWSW7EYP.js} +5 -5
  65. package/chunks/{chunk-B2RBYP7Z.js → chunk-OXX3FG2N.js} +2 -2
  66. package/chunks/{chunk-RM3F46UT.js → chunk-PPUOYL77.js} +71 -6
  67. package/chunks/{chunk-ZPGMDT4S.js → chunk-PX5DNLSA.js} +19 -92
  68. package/chunks/{chunk-FEUXV3DC.js → chunk-Q5RM32DR.js} +1 -1
  69. package/chunks/{chunk-AEWOKOJY.js → chunk-QZKYZCN3.js} +1 -1
  70. package/chunks/{chunk-UKZEXS6K.js → chunk-R574ATRM.js} +11 -0
  71. package/chunks/{chunk-OGAARVN7.js → chunk-R5RBXLNC.js} +3 -3
  72. package/chunks/{chunk-5HWAJ4BK.js → chunk-RFUHDCNF.js} +1 -1
  73. package/chunks/{chunk-LSYVASZS.js → chunk-RHTTKJTP.js} +1 -1
  74. package/chunks/{chunk-LYPXNRBX.js → chunk-RK2EE3T7.js} +1 -1
  75. package/chunks/{chunk-CIUUYB23.js → chunk-S7CV4KO6.js} +3 -3
  76. package/chunks/{chunk-4NNR24EP.js → chunk-SKNE3KQC.js} +3 -3
  77. package/chunks/{chunk-JDNWIXHJ.js → chunk-SLSWFHDF.js} +3 -3
  78. package/chunks/{chunk-UWSXFI6E.js → chunk-SQC6K5HI.js} +6 -2
  79. package/chunks/{chunk-P3SLTSNY.js → chunk-SQOMTWQT.js} +4 -4
  80. package/chunks/{chunk-D7QAZ5DF.js → chunk-SUKEUUAA.js} +1 -1
  81. package/chunks/{chunk-WTM5QONI.js → chunk-T4JSA7KU.js} +2 -2
  82. package/chunks/{chunk-I7JDGNG6.js → chunk-T5U6IM4C.js} +6 -2
  83. package/chunks/{chunk-2JBETW4S.js → chunk-TGGEZINK.js} +5 -5
  84. package/chunks/{chunk-C6ARWPCG.js → chunk-TOGZTG4X.js} +2 -2
  85. package/chunks/{chunk-A6SX5TAH.js → chunk-TSERKWCX.js} +6 -2
  86. package/chunks/{chunk-IWGMDSC3.js → chunk-U4AF3QLU.js} +355 -17
  87. package/chunks/{chunk-PDDYAXL2.js → chunk-UGTWD35F.js} +14 -1
  88. package/chunks/{chunk-BWLUCN35.js → chunk-ULPQQSDN.js} +2 -2
  89. package/chunks/{chunk-GEP54CHX.js → chunk-VGFPFM4U.js} +3 -3
  90. package/chunks/{chunk-NLQIEY6W.js → chunk-VNQCPBC2.js} +3 -3
  91. package/chunks/{chunk-K2ETEWG6.js → chunk-VSALQLT7.js} +1 -1
  92. package/chunks/{chunk-YO4JI7B4.js → chunk-W5DXUTXD.js} +12 -6
  93. package/chunks/{chunk-M744OFVE.js → chunk-W7U4ESW2.js} +1 -1
  94. package/chunks/{chunk-TJ56V3AR.js → chunk-WNU7TZTO.js} +4 -4
  95. package/chunks/{chunk-GTM6IHBB.js → chunk-WO2B5E5B.js} +1 -0
  96. package/chunks/chunk-WOJZWRAZ.js +123 -0
  97. package/chunks/{chunk-5XNO4AW7.js → chunk-XA4TMLFN.js} +11 -11
  98. package/chunks/{chunk-GP4IMBX5.js → chunk-XM2O73NC.js} +1696 -476
  99. package/chunks/{chunk-IZ2CMEYO.js → chunk-YMBOEAF4.js} +1 -1
  100. package/chunks/{chunk-QONSRAEV.js → chunk-YP5KH5Y7.js} +1 -1
  101. package/chunks/{chunk-ZLJQIGCH.js → chunk-YZQTA3ID.js} +28 -11
  102. package/chunks/{computer-use-XDOGP2KA.js → computer-use-5HXJ2P4X.js} +11 -10
  103. package/chunks/{config-utils-E3ZQTHGM.js → config-utils-VXD4SPVR.js} +2 -2
  104. package/chunks/{contextCommand-N3LQDCYJ.js → contextCommand-7BEHRX2H.js} +14 -13
  105. package/chunks/{core-runtime-STAFP45W.js → core-runtime-U4VJ5TIV.js} +11 -10
  106. package/chunks/create-sub-session-QZNQY332.js +772 -0
  107. package/chunks/{daemon-CCIX4BMG.js → daemon-YI5RY62O.js} +115 -3
  108. package/chunks/{daemon-status-provider-PPAH3ATF.js → daemon-status-provider-UJUGTDTL.js} +21 -19
  109. package/chunks/{daemon-trust-policy-X6XL3MB4.js → daemon-trust-policy-ZHDD5VYQ.js} +17 -16
  110. package/chunks/{daemon-trust-policy-monitor-M5LBL2HD.js → daemon-trust-policy-monitor-5SHYBDGA.js} +17 -16
  111. package/chunks/{deferred-core-runtime-O54YPTBU.js → deferred-core-runtime-QWAEBTR5.js} +11 -10
  112. package/chunks/discovery-XLHITE74.js +220 -0
  113. package/chunks/{dist-IKGVITP3.js → dist-KS4O2NKE.js} +99 -6
  114. package/chunks/{earlyInputCapture-CBIT2RGT.js → earlyInputCapture-5BMSGKOI.js} +11 -10
  115. package/chunks/{edit-KW2TOC6A.js → edit-IVQQVYYK.js} +11 -10
  116. package/chunks/{enter-worktree-YL34NEU5.js → enter-worktree-P3DF2N6O.js} +11 -10
  117. package/chunks/{enterPlanMode-JFJTDASQ.js → enterPlanMode-KKTDVLAD.js} +11 -10
  118. package/chunks/{environment-IATU5GXG.js → environment-W5TRDM3G.js} +14 -13
  119. package/chunks/{errors-SAVRDE7Q.js → errors-GJJB36IG.js} +14 -13
  120. package/chunks/{exit-worktree-5M43QPBB.js → exit-worktree-LV5RLOCU.js} +11 -10
  121. package/chunks/{exitPlanMode-W4EICZ4N.js → exitPlanMode-TUGOB2LL.js} +11 -10
  122. package/chunks/external-tool-guard-provider-5HTGOPGU.js +273 -0
  123. package/chunks/{fast-path-YQJPIKMP.js → fast-path-2FU23PAQ.js} +5 -5
  124. package/chunks/{gemini-FUF5SSPR.js → gemini-KDULDQPP.js} +70 -55
  125. package/chunks/{geminiContentGenerator-LLLZBOUG.js → geminiContentGenerator-LOCFHNVA.js} +1 -1
  126. package/chunks/{glob-LJFFMN4D.js → glob-Z4NQFKWS.js} +11 -10
  127. package/chunks/{grep-Q64EAM73.js → grep-Z67Z7EN6.js} +11 -10
  128. package/chunks/{handleAutoUpdate-QBMPRTSQ.js → handleAutoUpdate-DFUZE6I6.js} +16 -15
  129. package/chunks/{i18n-LDUW5DMN.js → i18n-R4FMZ7N2.js} +13 -12
  130. package/chunks/{image-gen-G7RLG3KR.js → image-gen-4CQJPQP5.js} +1 -1
  131. package/chunks/{initializer-74A7DMMD.js → initializer-DK672ZVE.js} +17 -16
  132. package/chunks/{installationInfo-OFDYLDFD.js → installationInfo-PO4Z3ES7.js} +12 -11
  133. package/chunks/{list-JA2EWRHJ.js → list-QXQF6C53.js} +20 -19
  134. package/chunks/{loadedSettingsAdapter-2GNJOQ3L.js → loadedSettingsAdapter-4D7GUGW6.js} +17 -16
  135. package/chunks/{loggingContentGenerator-B6B5EGB3.js → loggingContentGenerator-2P3MNACM.js} +4 -3
  136. package/chunks/{managed-npm-update-4YZHLUER.js → managed-npm-update-LWVJQTWO.js} +24 -14
  137. package/chunks/{mcp-LLK5YJVH.js → mcp-GHETAR6V.js} +17 -16
  138. package/chunks/{monitor-NYJPAWVP.js → monitor-4T7W4M6Q.js} +11 -10
  139. package/chunks/{nonInteractiveCli-HZBBBDJD.js → nonInteractiveCli-P4UKCJFM.js} +47 -45
  140. package/chunks/{notebook-edit-LLM6UXFX.js → notebook-edit-OC2V7U5D.js} +11 -10
  141. package/chunks/{openaiContentGenerator-2AEXDN55.js → openaiContentGenerator-RAJUFWQY.js} +5 -4
  142. package/chunks/{pidfile-3JUWX7G2.js → pidfile-HVPYVRLS.js} +11 -10
  143. package/chunks/{processUtils-JLLRVZHT.js → processUtils-VIQ4JHVX.js} +2 -2
  144. package/chunks/{qwenContentGenerator-2FESCF27.js → qwenContentGenerator-2QLCUFNZ.js} +12 -11
  145. package/chunks/{qwenOAuth2-2KKPYA5J.js → qwenOAuth2-J2X3EN43.js} +1 -1
  146. package/chunks/{read-file-5GVXLY74.js → read-file-ZNAN2B26.js} +3 -2
  147. package/chunks/{record-artifact-L3BAHQFN.js → record-artifact-E6AWQU2Z.js} +1 -1
  148. package/chunks/{resumeHistoryUtils-Z4OFBXPM.js → resumeHistoryUtils-RCY7AL5Y.js} +15 -14
  149. package/chunks/{ripGrep-TKOJTIAB.js → ripGrep-C3KMLZM5.js} +11 -10
  150. package/chunks/{run-qwen-serve-K5W6MM6M.js → run-qwen-serve-3JN75CIQ.js} +518 -75
  151. package/chunks/{runtime-IADXMRCY.js → runtime-VUA4WQYD.js} +20 -19
  152. package/chunks/{scheduler-T7AV37LD.js → scheduler-Z4IBXCOY.js} +11 -10
  153. package/chunks/{serve-ROEGMS3I.js → serve-67T3P7XI.js} +18 -16
  154. package/chunks/{server-NGXMRODI.js → server-46ZO2CLV.js} +7556 -397
  155. package/chunks/{session-RCDLDJA4.js → session-B4IFAFC4.js} +50 -48
  156. package/chunks/{settings-E6H3AURD.js → settings-AI2BTBOZ.js} +16 -15
  157. package/chunks/{shell-RHGGJ6BE.js → shell-BKII3B6E.js} +11 -10
  158. package/chunks/{skill-GQ7PBS25.js → skill-6CFOWVGA.js} +4 -3
  159. package/chunks/{skill-settings-E2F7OCBL.js → skill-settings-6BFQWMW4.js} +16 -15
  160. package/chunks/{spawnChannel-Q2IQBHME.js → spawnChannel-FJXW35U7.js} +14 -12
  161. package/chunks/{standalone-update-NYYZEHLD.js → standalone-update-WVINHRNS.js} +14 -13
  162. package/chunks/{startInteractiveUI-IX6I3Y2Z.js → startInteractiveUI-YE57CJ57.js} +140 -138
  163. package/chunks/{stdioHelpers-HGIYTWAY.js → stdioHelpers-7A2EE64Z.js} +5 -3
  164. package/chunks/{task-create-2X4UP4F3.js → task-create-Q727MXHJ.js} +2 -2
  165. package/chunks/{task-list-WOLJPZ64.js → task-list-G6KPQ5JT.js} +1 -1
  166. package/chunks/{task-update-VDUSN36E.js → task-update-YB7PXO4R.js} +2 -2
  167. package/chunks/{team-create-UTRVUEDA.js → team-create-GNC7NFY6.js} +11 -10
  168. package/chunks/{team-delete-D2VMSDOT.js → team-delete-GDO7H2T4.js} +1 -1
  169. package/chunks/{team-plan-approval-YZNB4U5U.js → team-plan-approval-ECALJLIO.js} +11 -10
  170. package/chunks/{terminal-image-renderer-QRSCS2BE.js → terminal-image-renderer-II74TFVW.js} +11 -10
  171. package/chunks/{theme-manager-EKZBY34I.js → theme-manager-2MGEDD22.js} +11 -10
  172. package/chunks/{tool-search-N2R7LVMC.js → tool-search-S6LRRACA.js} +3 -2
  173. package/chunks/{total-session-admission-HBIYARPO.js → total-session-admission-7WVAWQPU.js} +17 -15
  174. package/chunks/{trustedFolders-ZQLYRCSY.js → trustedFolders-NFS4KHO4.js} +13 -12
  175. package/chunks/{update-relaunch-PJWXMPCR.js → update-relaunch-Q5HLZ6UW.js} +6 -6
  176. package/chunks/{updateCheck-ZXRCGY66.js → updateCheck-UOVZSTP7.js} +15 -14
  177. package/chunks/{useAutoAcceptIndicator-ZYQW5SGJ.js → useAutoAcceptIndicator-PC6MOJCO.js} +19 -18
  178. package/chunks/{validateNonInterActiveAuth-M7J7OTRH.js → validateNonInterActiveAuth-YMQP3ZM7.js} +44 -42
  179. package/chunks/{version-2AOHMPK3.js → version-T4AQFZJH.js} +1 -1
  180. package/chunks/{web-fetch-DS34CJ3R.js → web-fetch-JQCJHEEX.js} +3 -2
  181. package/chunks/{web-search-ITFPD7V4.js → web-search-QGZ2KY4G.js} +4 -3
  182. package/chunks/{workflow-LZQ4PGNS.js → workflow-YIT27YWZ.js} +12 -11
  183. package/chunks/{workspace-providers-status-ZPTLKOBM.js → workspace-providers-status-FIDZQ2PL.js} +20 -19
  184. package/chunks/{workspace-registration-store-OTFKSGG7.js → workspace-registration-store-RCSPE4DU.js} +1 -1
  185. package/chunks/{workspace-registry-YZ3OXPHP.js → workspace-registry-5PEUCY6E.js} +17 -15
  186. package/chunks/{workspace-service-OCZXOOSQ.js → workspace-service-LANDVPL7.js} +21 -20
  187. package/chunks/{workspace-skills-status-K2ALGUCD.js → workspace-skills-status-2IQVJNIN.js} +18 -17
  188. package/chunks/{workspace-trust-reconciler-KMRZISJP.js → workspace-trust-reconciler-CZPZZCZC.js} +26 -24
  189. package/chunks/{write-file-AWBI4GJS.js → write-file-G5VNGCOG.js} +11 -10
  190. package/chunks/{zoom-image-NHKN6F77.js → zoom-image-6RBLD7X6.js} +3 -2
  191. package/cli-entry.js +14 -0
  192. package/cli.js +19 -15
  193. package/package.json +3 -3
  194. package/web-shell/assets/{arc-Dpg66jw7.js → arc-B-Vtkp1W.js} +1 -1
  195. package/web-shell/assets/{architectureDiagram-3BPJPVTR-BJ4FIBxN.js → architectureDiagram-3BPJPVTR-qmTXIj64.js} +1 -1
  196. package/web-shell/assets/{blockDiagram-GPEHLZMM-VXmYdtYT.js → blockDiagram-GPEHLZMM-ZlnXEtdP.js} +1 -1
  197. package/web-shell/assets/{c4Diagram-AAUBKEIU-BNLDb8FE.js → c4Diagram-AAUBKEIU-Wyoirf6Z.js} +1 -1
  198. package/web-shell/assets/channel-DXaHnfjS.js +1 -0
  199. package/web-shell/assets/{chunk-2J33WTMH-DR5yHxr0.js → chunk-2J33WTMH-WQwbq9d8.js} +1 -1
  200. package/web-shell/assets/{chunk-4BX2VUAB-Czkq8UZU.js → chunk-4BX2VUAB-DQKnAXC4.js} +1 -1
  201. package/web-shell/assets/{chunk-55IACEB6-DugUgM6s.js → chunk-55IACEB6-DIdgXNcO.js} +1 -1
  202. package/web-shell/assets/{chunk-727SXJPM-Dw6quA1K.js → chunk-727SXJPM-CUwGOLEd.js} +1 -1
  203. package/web-shell/assets/{chunk-AQP2D5EJ-BoVYOTTz.js → chunk-AQP2D5EJ-CCBGZFZ4.js} +1 -1
  204. package/web-shell/assets/{chunk-FMBD7UC4--Amcse-j.js → chunk-FMBD7UC4-DMGXProk.js} +1 -1
  205. package/web-shell/assets/{chunk-ND2GUHAM-ajaEYAC8.js → chunk-ND2GUHAM-yejcFqsh.js} +1 -1
  206. package/web-shell/assets/{chunk-QZHKN3VN-CUNDZ7im.js → chunk-QZHKN3VN-DxCyqTf7.js} +1 -1
  207. package/web-shell/assets/classDiagram-4FO5ZUOK-BigU82A0.js +1 -0
  208. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-BigU82A0.js +1 -0
  209. package/web-shell/assets/{cose-bilkent-S5V4N54A-BnfkD-m1.js → cose-bilkent-S5V4N54A-DOrF3cg_.js} +1 -1
  210. package/web-shell/assets/{dagre-BM42HDAG-BuUdFk7Z.js → dagre-BM42HDAG-Be6CdYQ_.js} +1 -1
  211. package/web-shell/assets/{diagram-2AECGRRQ-B2ZXxoab.js → diagram-2AECGRRQ-B_Rjsft2.js} +1 -1
  212. package/web-shell/assets/{diagram-5GNKFQAL-BsgOICzM.js → diagram-5GNKFQAL-BvQbKSm1.js} +1 -1
  213. package/web-shell/assets/{diagram-KO2AKTUF-DTTjG6U-.js → diagram-KO2AKTUF-BsdmMdpS.js} +1 -1
  214. package/web-shell/assets/{diagram-LMA3HP47-temLf1x7.js → diagram-LMA3HP47-CrQlBaNr.js} +1 -1
  215. package/web-shell/assets/{diagram-OG6HWLK6-CRFjScs2.js → diagram-OG6HWLK6-aB1MD_DL.js} +1 -1
  216. package/web-shell/assets/{erDiagram-TEJ5UH35-D4oaY-rQ.js → erDiagram-TEJ5UH35-F-eUUn9n.js} +1 -1
  217. package/web-shell/assets/{flowDiagram-I6XJVG4X-BqG8B49b.js → flowDiagram-I6XJVG4X-DY_d8lUK.js} +1 -1
  218. package/web-shell/assets/{ganttDiagram-6RSMTGT7-DffQBdd5.js → ganttDiagram-6RSMTGT7-Dqu7KBPg.js} +1 -1
  219. package/web-shell/assets/{gitGraphDiagram-PVQCEYII-CMDPfseF.js → gitGraphDiagram-PVQCEYII-2IkU_VEj.js} +1 -1
  220. package/web-shell/assets/{index-qTQR_smP.js → index-BuSbqggh.js} +1 -1
  221. package/web-shell/assets/index-DrfC2e9s.js +1768 -0
  222. package/web-shell/assets/index-QQlUCJGg.css +5 -0
  223. package/web-shell/assets/{infoDiagram-5YYISTIA-Cn3T83MA.js → infoDiagram-5YYISTIA-C4orwzPw.js} +1 -1
  224. package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-ijFs7e25.js → ishikawaDiagram-YF4QCWOH-fXUEfef_.js} +1 -1
  225. package/web-shell/assets/{journeyDiagram-JHISSGLW-CINTv8VB.js → journeyDiagram-JHISSGLW-Bs0I1_J5.js} +1 -1
  226. package/web-shell/assets/{kanban-definition-UN3LZRKU-CMGRZCxx.js → kanban-definition-UN3LZRKU-BPRj1dw_.js} +1 -1
  227. package/web-shell/assets/{linear-Co-2_37d.js → linear-DFS6ZDpW.js} +1 -1
  228. package/web-shell/assets/{mermaid.core-DijbyaN5.js → mermaid.core-CZxjWMaO.js} +5 -5
  229. package/web-shell/assets/{mindmap-definition-RKZ34NQL-k_sDYDPZ.js → mindmap-definition-RKZ34NQL-Dsr3PmNs.js} +1 -1
  230. package/web-shell/assets/{pieDiagram-4H26LBE5-CG-oz8V3.js → pieDiagram-4H26LBE5-D5Ngpz5Y.js} +1 -1
  231. package/web-shell/assets/{quadrantDiagram-W4KKPZXB-Baq7HIG2.js → quadrantDiagram-W4KKPZXB-WJK9I25z.js} +1 -1
  232. package/web-shell/assets/{requirementDiagram-4Y6WPE33-CDM3ZvBt.js → requirementDiagram-4Y6WPE33-CmrYcwOH.js} +1 -1
  233. package/web-shell/assets/{sankeyDiagram-5OEKKPKP-C2dJbWKN.js → sankeyDiagram-5OEKKPKP-7SjCc4Mv.js} +1 -1
  234. package/web-shell/assets/{sequenceDiagram-3UESZ5HK-Cf1_h59p.js → sequenceDiagram-3UESZ5HK-Dl9E0IRM.js} +1 -1
  235. package/web-shell/assets/{stateDiagram-AJRCARHV-CI5clUEc.js → stateDiagram-AJRCARHV-CRRio7yV.js} +1 -1
  236. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-1atT7XaU.js +1 -0
  237. package/web-shell/assets/{timeline-definition-PNZ67QCA-B2O8cAZX.js → timeline-definition-PNZ67QCA-DVyXjjfq.js} +1 -1
  238. package/web-shell/assets/{vennDiagram-CIIHVFJN-BLsJ_h9s.js → vennDiagram-CIIHVFJN-Nb2Lckzq.js} +1 -1
  239. package/web-shell/assets/{wardley-L42UT6IY-BlPU4FTA.js → wardley-L42UT6IY-DuL_otIP.js} +1 -1
  240. package/web-shell/assets/{wardleyDiagram-YWT4CUSO-D_U-RdU4.js → wardleyDiagram-YWT4CUSO-DVI9Q4Aa.js} +1 -1
  241. package/web-shell/assets/{xychartDiagram-2RQKCTM6-BynXGSTl.js → xychartDiagram-2RQKCTM6-BNjAm7KD.js} +1 -1
  242. package/web-shell/index.html +2 -2
  243. package/bundled/review/DESIGN.md +0 -724
  244. package/chunks/create-sub-session-2B3JENWD.js +0 -400
  245. package/web-shell/assets/channel-Bd9wOnaA.js +0 -1
  246. package/web-shell/assets/classDiagram-4FO5ZUOK-XhCT8FE3.js +0 -1
  247. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-XhCT8FE3.js +0 -1
  248. package/web-shell/assets/index-2F4RsNzd.js +0 -1756
  249. package/web-shell/assets/index-CaucmEO_.css +0 -5
  250. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-BDc8asKD.js +0 -1
@@ -10,7 +10,7 @@ import {
10
10
  } from "./chunk-MR3PXB6E.js";
11
11
  import {
12
12
  ideContextStore
13
- } from "./chunk-YLL3SC5S.js";
13
+ } from "./chunk-A4VTILZT.js";
14
14
  import {
15
15
  require_proper_lockfile
16
16
  } from "./chunk-KRXPRVGL.js";
@@ -20,11 +20,12 @@ import {
20
20
  import {
21
21
  FatalConfigError,
22
22
  Storage,
23
+ createDebugLogger,
23
24
  getErrorMessage
24
25
  } from "./chunk-3RXUYQJI.js";
25
26
  import {
26
27
  writeStderrLine
27
- } from "./chunk-OWAK7LMW.js";
28
+ } from "./chunk-KGJGEEVR.js";
28
29
  import {
29
30
  init_esbuild_shims
30
31
  } from "./chunk-5O2XNYP6.js";
@@ -1845,6 +1846,7 @@ function pathsEqual(left, right) {
1845
1846
  __name(pathsEqual, "pathsEqual");
1846
1847
 
1847
1848
  // packages/cli/src/config/trustedFolders.ts
1849
+ var debugLogger = createDebugLogger("TRUSTED_FOLDERS");
1848
1850
  var TRUSTED_FOLDERS_FILENAME = "trustedFolders.json";
1849
1851
  function getTrustedFoldersPath() {
1850
1852
  if (process.env["QWEN_CODE_TRUSTED_FOLDERS_PATH"]) {
@@ -2001,7 +2003,10 @@ function writeTrustedFolders(filePath, update) {
2001
2003
  }
2002
2004
  const release = import_proper_lockfile.default.lockSync(filePath, {
2003
2005
  realpath: false,
2004
- stale: 1e4
2006
+ stale: 1e4,
2007
+ onCompromised: /* @__PURE__ */ __name((err) => {
2008
+ debugLogger.warn("trusted folders lock compromised:", err);
2009
+ }, "onCompromised")
2005
2010
  });
2006
2011
  try {
2007
2012
  let originalContent = "{}";
@@ -0,0 +1,41 @@
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/acp-bridge/src/externalToolGuard.ts
11
+ init_esbuild_shims();
12
+ var PRIVATE_EXTERNAL_TOOL_GUARD_ENV = "QWEN_CODE_PRIVATE_EXTERNAL_TOOL_GUARD";
13
+ var EXTERNAL_TOOL_GUARD_READY_META_KEY = "qwen-code/external-tool-guard-ready";
14
+ var EXTERNAL_TOOL_GUARD_REQUIRED_VALUE = "required-v1";
15
+ var EXTERNAL_TOOL_GUARD_TOKEN_ENV = "QWEN_CODE_EXTERNAL_TOOL_GUARD_TOKEN";
16
+ var EXTERNAL_TOOL_GUARD_MAX_DENIAL_REASON_CHARS = 500;
17
+ function containsUnsafeExternalToolGuardControlCharacter(value) {
18
+ return [...value].some((character) => {
19
+ const code = character.charCodeAt(0);
20
+ return code < 32 || code >= 127 && code <= 159 || code === 8232 || code === 8233;
21
+ });
22
+ }
23
+ __name(containsUnsafeExternalToolGuardControlCharacter, "containsUnsafeExternalToolGuardControlCharacter");
24
+ function isValidExternalToolGuardDenialReason(reason) {
25
+ return typeof reason === "string" && reason.trim().length > 0 && reason.length <= EXTERNAL_TOOL_GUARD_MAX_DENIAL_REASON_CHARS && !containsUnsafeExternalToolGuardControlCharacter(reason);
26
+ }
27
+ __name(isValidExternalToolGuardDenialReason, "isValidExternalToolGuardDenialReason");
28
+
29
+ export {
30
+ PRIVATE_EXTERNAL_TOOL_GUARD_ENV,
31
+ EXTERNAL_TOOL_GUARD_READY_META_KEY,
32
+ EXTERNAL_TOOL_GUARD_REQUIRED_VALUE,
33
+ EXTERNAL_TOOL_GUARD_TOKEN_ENV,
34
+ containsUnsafeExternalToolGuardControlCharacter,
35
+ isValidExternalToolGuardDenialReason
36
+ };
37
+ /**
38
+ * @license
39
+ * Copyright 2025 Qwen Team
40
+ * SPDX-License-Identifier: Apache-2.0
41
+ */
@@ -407,18 +407,18 @@ async function createContentGenerator(generatorConfig, config, isInitialAuth) {
407
407
  try {
408
408
  if (authType === "openai" /* USE_OPENAI */) {
409
409
  loadBaseGenerator = /* @__PURE__ */ __name(async () => {
410
- const { createOpenAIContentGenerator } = await import("./openaiContentGenerator-2AEXDN55.js");
410
+ const { createOpenAIContentGenerator } = await import("./openaiContentGenerator-RAJUFWQY.js");
411
411
  return createOpenAIContentGenerator(generatorConfig, config);
412
412
  }, "loadBaseGenerator");
413
413
  } else if (authType === "qwen-oauth" /* QWEN_OAUTH */) {
414
- const { getQwenOAuthClient: getQwenOauthClient } = await import("./qwenOAuth2-2KKPYA5J.js");
414
+ const { getQwenOAuthClient: getQwenOauthClient } = await import("./qwenOAuth2-J2X3EN43.js");
415
415
  try {
416
416
  const qwenClient = await getQwenOauthClient(
417
417
  config,
418
418
  isInitialAuth ? { requireCachedCredentials: true } : void 0
419
419
  );
420
420
  loadBaseGenerator = /* @__PURE__ */ __name(async () => {
421
- const { QwenContentGenerator } = await import("./qwenContentGenerator-2FESCF27.js");
421
+ const { QwenContentGenerator } = await import("./qwenContentGenerator-2QLCUFNZ.js");
422
422
  return new QwenContentGenerator(qwenClient, generatorConfig, config);
423
423
  }, "loadBaseGenerator");
424
424
  } catch (error) {
@@ -434,7 +434,7 @@ async function createContentGenerator(generatorConfig, config, isInitialAuth) {
434
434
  }, "loadBaseGenerator");
435
435
  } else if (authType === "gemini" /* USE_GEMINI */ || authType === "vertex-ai" /* USE_VERTEX_AI */) {
436
436
  loadBaseGenerator = /* @__PURE__ */ __name(async () => {
437
- const { createGeminiContentGenerator } = await import("./geminiContentGenerator-LLLZBOUG.js");
437
+ const { createGeminiContentGenerator } = await import("./geminiContentGenerator-LOCFHNVA.js");
438
438
  return createGeminiContentGenerator(generatorConfig, config);
439
439
  }, "loadBaseGenerator");
440
440
  } else {
@@ -450,7 +450,7 @@ async function createContentGenerator(generatorConfig, config, isInitialAuth) {
450
450
  try {
451
451
  const [baseGenerator, { LoggingContentGenerator }] = await Promise.all([
452
452
  loadBaseGenerator(),
453
- import("./loggingContentGenerator-B6B5EGB3.js")
453
+ import("./loggingContentGenerator-2P3MNACM.js")
454
454
  ]);
455
455
  return new LoggingContentGenerator(
456
456
  baseGenerator,
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  writeStderrLine
5
- } from "./chunk-OWAK7LMW.js";
5
+ } from "./chunk-KGJGEEVR.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
  t
5
- } from "./chunk-K64OI7S7.js";
5
+ } from "./chunk-KHUA3NQV.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
  parseRule
5
- } from "./chunk-YLL3SC5S.js";
5
+ } from "./chunk-A4VTILZT.js";
6
6
  import {
7
7
  init_esbuild_shims
8
8
  } from "./chunk-5O2XNYP6.js";
@@ -2,11 +2,11 @@
2
2
  "use strict";
3
3
  import {
4
4
  getPlugin
5
- } from "./chunk-DTAPI453.js";
5
+ } from "./chunk-EMYZIABH.js";
6
6
  import {
7
7
  loadSettings,
8
8
  saveSettings
9
- } from "./chunk-RM3F46UT.js";
9
+ } from "./chunk-PPUOYL77.js";
10
10
  import {
11
11
  init_esbuild_shims
12
12
  } from "./chunk-5O2XNYP6.js";
@@ -294,6 +294,10 @@ var WorkspaceChannelSettingsStore = class {
294
294
  if (value !== void 0) nextConfig[key] = value;
295
295
  }
296
296
  assertManagedConfig(nextConfig, previous, plugin.management.fields);
297
+ const crossFieldError = plugin.management.validateConfig?.(nextConfig);
298
+ if (crossFieldError !== void 0) {
299
+ throw invalidConfig(crossFieldError);
300
+ }
297
301
  const channels = { ...current.channels, [name]: nextConfig };
298
302
  const workspaceFile = loadSettings(this.workspaceCwd, {
299
303
  skipLoadEnvironment: true
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  AuthType
5
- } from "./chunk-XD2PNH3K.js";
5
+ } from "./chunk-BOGOR4HB.js";
6
6
  import {
7
7
  init_esbuild_shims
8
8
  } from "./chunk-5O2XNYP6.js";
@@ -2,12 +2,12 @@
2
2
  "use strict";
3
3
  import {
4
4
  buildPermissionSettings
5
- } from "./chunk-4O6HLCOF.js";
5
+ } from "./chunk-CA4UIDFU.js";
6
6
  import {
7
7
  resolveVoiceStreamConfig,
8
8
  resolveVoiceTranscriptionConfig,
9
9
  transcribeVoiceAudio
10
- } from "./chunk-LMNM37OE.js";
10
+ } from "./chunk-O7V7N4G7.js";
11
11
  import {
12
12
  getVoiceSettingsScope,
13
13
  isSelectableVoiceModel,
@@ -16,7 +16,7 @@ import {
16
16
  readVoiceMode,
17
17
  readVoiceModel,
18
18
  resolveVoiceTransport
19
- } from "./chunk-TCOJPG2P.js";
19
+ } from "./chunk-C4CBJQKY.js";
20
20
  import {
21
21
  resolveSkillSettings
22
22
  } from "./chunk-Z4X5MTRT.js";
@@ -42,7 +42,7 @@ import {
42
42
  createIdleWorkspaceProvidersStatus,
43
43
  createIdleWorkspaceSkillsStatus,
44
44
  mapDomainErrorToErrorKind
45
- } from "./chunk-PDDYAXL2.js";
45
+ } from "./chunk-UGTWD35F.js";
46
46
  import {
47
47
  McpServerNotFoundError,
48
48
  McpServerRestartFailedError,
@@ -55,15 +55,15 @@ import {
55
55
  import {
56
56
  getPersistScopeForModelSelection,
57
57
  loadSettings
58
- } from "./chunk-RM3F46UT.js";
58
+ } from "./chunk-PPUOYL77.js";
59
59
  import {
60
60
  getWorkspaceTrustStatus
61
- } from "./chunk-B3EBIZUY.js";
61
+ } from "./chunk-ACZRB7AD.js";
62
62
  import {
63
63
  ModelsConfig,
64
64
  SkillManager,
65
65
  require_yauzl
66
- } from "./chunk-YLL3SC5S.js";
66
+ } from "./chunk-A4VTILZT.js";
67
67
  import {
68
68
  Storage,
69
69
  createDebugLogger
@@ -71,7 +71,7 @@ import {
71
71
  import {
72
72
  writeStderrLine,
73
73
  writeStderrLineSafe
74
- } from "./chunk-OWAK7LMW.js";
74
+ } from "./chunk-KGJGEEVR.js";
75
75
  import {
76
76
  init_esbuild_shims
77
77
  } from "./chunk-5O2XNYP6.js";
@@ -21,7 +21,7 @@ function ensureBuiltins() {
21
21
  { name: "wecom", promise: import("./dist-HVBMEYWK.js") },
22
22
  { name: "feishu", promise: import("./dist-DPPHJAVL.js") },
23
23
  { name: "qqbot", promise: import("./dist-SFQ34F4M.js") },
24
- { name: "github", promise: import("./dist-IKGVITP3.js") },
24
+ { name: "github", promise: import("./dist-KS4O2NKE.js") },
25
25
  { name: "gitlab", promise: import("./dist-C5U4LJKW.js") }
26
26
  ];
27
27
  const results = await Promise.allSettled(labelled.map((l) => l.promise));
@@ -2,17 +2,17 @@
2
2
  "use strict";
3
3
  import {
4
4
  performStandaloneUpdate
5
- } from "./chunk-EXHQZBVJ.js";
5
+ } from "./chunk-2POQWYM6.js";
6
6
  import {
7
7
  updateEventEmitter
8
8
  } from "./chunk-YAF2MQZ6.js";
9
9
  import {
10
10
  t
11
- } from "./chunk-K64OI7S7.js";
11
+ } from "./chunk-KHUA3NQV.js";
12
12
  import {
13
13
  getInstallationInfo,
14
14
  resolveUpdateCommand
15
- } from "./chunk-CAX76R46.js";
15
+ } from "./chunk-JE44IPH6.js";
16
16
  import {
17
17
  createDebugLogger
18
18
  } from "./chunk-3RXUYQJI.js";
@@ -3,7 +3,7 @@
3
3
  import {
4
4
  JsonFormatter,
5
5
  parseAndFormatApiError
6
- } from "./chunk-YLL3SC5S.js";
6
+ } from "./chunk-A4VTILZT.js";
7
7
  import {
8
8
  FatalBudgetExceededError,
9
9
  FatalCancellationError,
@@ -12,10 +12,10 @@ import {
12
12
  } from "./chunk-3RXUYQJI.js";
13
13
  import {
14
14
  runExitCleanup
15
- } from "./chunk-LSYVASZS.js";
15
+ } from "./chunk-RHTTKJTP.js";
16
16
  import {
17
17
  writeStderrLine
18
- } from "./chunk-OWAK7LMW.js";
18
+ } from "./chunk-KGJGEEVR.js";
19
19
  import {
20
20
  init_esbuild_shims
21
21
  } from "./chunk-5O2XNYP6.js";
@@ -5,27 +5,27 @@ import {
5
5
  } from "./chunk-57OAHC2Y.js";
6
6
  import {
7
7
  loadSettings
8
- } from "./chunk-RM3F46UT.js";
8
+ } from "./chunk-PPUOYL77.js";
9
9
  import {
10
10
  getCurrentLanguage,
11
11
  t
12
- } from "./chunk-K64OI7S7.js";
12
+ } from "./chunk-KHUA3NQV.js";
13
13
  import {
14
14
  isWorkspaceTrusted
15
- } from "./chunk-B3EBIZUY.js";
15
+ } from "./chunk-ACZRB7AD.js";
16
16
  import {
17
17
  ExtensionManager,
18
18
  getExtensionDescription,
19
19
  getExtensionDisplayName,
20
20
  redactUrlCredentials,
21
21
  require_prompts
22
- } from "./chunk-YLL3SC5S.js";
22
+ } from "./chunk-A4VTILZT.js";
23
23
  import {
24
24
  stripAnsi
25
25
  } from "./chunk-TWPJO254.js";
26
26
  import {
27
27
  writeStdoutLine
28
- } from "./chunk-OWAK7LMW.js";
28
+ } from "./chunk-KGJGEEVR.js";
29
29
  import {
30
30
  init_esbuild_shims
31
31
  } from "./chunk-5O2XNYP6.js";
@@ -9,13 +9,7 @@ import {
9
9
  staleArgsWarning,
10
10
  validateAuthMethod,
11
11
  writeSkillArgs
12
- } from "./chunk-GP4IMBX5.js";
13
- import {
14
- isKittyProtocolEnabled
15
- } from "./chunk-NYX53SV4.js";
16
- import {
17
- contextCommand
18
- } from "./chunk-4NNR24EP.js";
12
+ } from "./chunk-XM2O73NC.js";
19
13
  import {
20
14
  calculateCost,
21
15
  computeSessionStats,
@@ -24,20 +18,26 @@ import {
24
18
  findInlineMathExpressions,
25
19
  getSystemInfoFields,
26
20
  levelLabel
27
- } from "./chunk-C6ARWPCG.js";
21
+ } from "./chunk-TOGZTG4X.js";
22
+ import {
23
+ isKittyProtocolEnabled
24
+ } from "./chunk-NYX53SV4.js";
28
25
  import {
29
26
  VSCODE_SHIFT_ENTER_SEQUENCE,
30
27
  writeOsc52
31
28
  } from "./chunk-3LGZEYOF.js";
29
+ import {
30
+ contextCommand
31
+ } from "./chunk-SKNE3KQC.js";
32
32
  import {
33
33
  rollbackStandaloneUpdate
34
- } from "./chunk-EXHQZBVJ.js";
34
+ } from "./chunk-2POQWYM6.js";
35
35
  import {
36
36
  themeManager
37
37
  } from "./chunk-KKN2IE7Q.js";
38
38
  import {
39
39
  getErrorMessage as getErrorMessage2
40
- } from "./chunk-VJPF6GF2.js";
40
+ } from "./chunk-FZFP7RZI.js";
41
41
  import {
42
42
  GITHUB_WORKFLOW_PATHS,
43
43
  INSIGHT_CSS,
@@ -51,11 +51,15 @@ import {
51
51
  toJson,
52
52
  toJsonl,
53
53
  toMarkdown
54
- } from "./chunk-YO4JI7B4.js";
54
+ } from "./chunk-W5DXUTXD.js";
55
55
  import {
56
56
  stripUnsafeCharacters,
57
57
  toCodePoints
58
58
  } from "./chunk-4NFY2S7N.js";
59
+ import {
60
+ isInlineModelOverrideAllowed,
61
+ parseAcpModelOption
62
+ } from "./chunk-5MJGUQU5.js";
59
63
  import {
60
64
  formatUnsupportedVoiceModelMessage,
61
65
  getVoiceSettingsScope,
@@ -63,20 +67,16 @@ import {
63
67
  isVoiceEnabled,
64
68
  readVoiceMode,
65
69
  readVoiceModel
66
- } from "./chunk-TCOJPG2P.js";
70
+ } from "./chunk-C4CBJQKY.js";
67
71
  import {
68
72
  getExtendedSystemInfo,
69
73
  getGitVersion,
70
74
  getNpmVersion
71
- } from "./chunk-IK3RYLAD.js";
75
+ } from "./chunk-K2B3X3E7.js";
72
76
  import {
73
77
  formatDuration,
74
78
  formatTokenCount
75
79
  } from "./chunk-3SH53ANB.js";
76
- import {
77
- isInlineModelOverrideAllowed,
78
- parseAcpModelOption
79
- } from "./chunk-WU5NBSLD.js";
80
80
  import {
81
81
  OUTPUT_LANGUAGE_AUTO,
82
82
  getAllSettingKeys,
@@ -88,7 +88,7 @@ import {
88
88
  resolveOutputLanguageOrPreserveAuto,
89
89
  validateSettingValue,
90
90
  writeOutputLanguageAndRegisterPath
91
- } from "./chunk-RM3F46UT.js";
91
+ } from "./chunk-PPUOYL77.js";
92
92
  import {
93
93
  SUPPORTED_LANGUAGES,
94
94
  getCurrentLanguage,
@@ -96,14 +96,14 @@ import {
96
96
  resolveSupportedLanguage,
97
97
  setLanguageAsync,
98
98
  t
99
- } from "./chunk-K64OI7S7.js";
99
+ } from "./chunk-KHUA3NQV.js";
100
100
  import {
101
101
  getInstallationInfo
102
- } from "./chunk-CAX76R46.js";
102
+ } from "./chunk-JE44IPH6.js";
103
103
  import {
104
104
  isFolderTrustEnabled,
105
105
  loadTrustedFolders
106
- } from "./chunk-B3EBIZUY.js";
106
+ } from "./chunk-ACZRB7AD.js";
107
107
  import {
108
108
  require_strip_json_comments
109
109
  } from "./chunk-ALGGS7UH.js";
@@ -174,13 +174,13 @@ import {
174
174
  runForkedAgent,
175
175
  tryGenerateSessionTitle,
176
176
  unregisterGoalHook
177
- } from "./chunk-YLL3SC5S.js";
177
+ } from "./chunk-A4VTILZT.js";
178
178
  import {
179
179
  external_exports
180
180
  } from "./chunk-H6XPXXMH.js";
181
181
  import {
182
182
  resolveModelId
183
- } from "./chunk-7W5KOBYU.js";
183
+ } from "./chunk-DIT4V3XH.js";
184
184
  import {
185
185
  getAutoSkillCuratorStatus,
186
186
  parse,
@@ -188,7 +188,7 @@ import {
188
188
  restoreArchivedAutoSkill,
189
189
  runAutoSkillCurator,
190
190
  setAutoSkillPinned
191
- } from "./chunk-MISUEWB4.js";
191
+ } from "./chunk-4S4OEQ6U.js";
192
192
  import {
193
193
  HookEventName,
194
194
  sanitizeUserPromptExpansionAdditionalContext
@@ -213,7 +213,7 @@ import {
213
213
  } from "./chunk-DGEIYUC3.js";
214
214
  import {
215
215
  resolveOpenAILogDir
216
- } from "./chunk-AEWOKOJY.js";
216
+ } from "./chunk-QZKYZCN3.js";
217
217
  import {
218
218
  IdeConnectionEvent,
219
219
  formatTokenUsageSummaryAsCsv,
@@ -227,7 +227,7 @@ import {
227
227
  recordSkillInvocation,
228
228
  runSideQuery,
229
229
  uiTelemetryService
230
- } from "./chunk-ZPGMDT4S.js";
230
+ } from "./chunk-PX5DNLSA.js";
231
231
  import {
232
232
  getAutoMemoryRoot
233
233
  } from "./chunk-E4WHKETF.js";
@@ -248,7 +248,7 @@ import {
248
248
  isCpuProfileRecording,
249
249
  startCpuProfile,
250
250
  stopCpuProfile
251
- } from "./chunk-K2ETEWG6.js";
251
+ } from "./chunk-VSALQLT7.js";
252
252
  import {
253
253
  init_esbuild_shims
254
254
  } from "./chunk-5O2XNYP6.js";
@@ -1945,7 +1945,7 @@ var approvalModeCommand = {
1945
1945
  };
1946
1946
  }
1947
1947
  }
1948
- const autoModeNotices = mode === "auto" /* AUTO */ && priorMode !== "auto" /* AUTO */ && config ? await import("./useAutoAcceptIndicator-ZYQW5SGJ.js") : void 0;
1948
+ const autoModeNotices = mode === "auto" /* AUTO */ && priorMode !== "auto" /* AUTO */ && config ? await import("./useAutoAcceptIndicator-PC6MOJCO.js") : void 0;
1949
1949
  if (config) {
1950
1950
  try {
1951
1951
  config.setApprovalMode(mode);
@@ -6682,7 +6682,7 @@ var expandNowCommand = {
6682
6682
  content: t("History is already expanded in this session.")
6683
6683
  };
6684
6684
  }
6685
- const { expandCollapsedHistory } = await import("./resumeHistoryUtils-Z4OFBXPM.js");
6685
+ const { expandCollapsedHistory } = await import("./resumeHistoryUtils-RCY7AL5Y.js");
6686
6686
  const updated = expandCollapsedHistory(history);
6687
6687
  loadHistory(updated);
6688
6688
  refreshStatic();
@@ -13894,10 +13894,10 @@ var updateCommand = {
13894
13894
  { performStandaloneUpdate },
13895
13895
  installationInfo
13896
13896
  ] = await Promise.all([
13897
- import("./updateCheck-ZXRCGY66.js"),
13898
- import("./processUtils-JLLRVZHT.js"),
13899
- import("./standalone-update-NYYZEHLD.js"),
13900
- import("./installationInfo-OFDYLDFD.js")
13897
+ import("./updateCheck-UOVZSTP7.js"),
13898
+ import("./processUtils-VIQ4JHVX.js"),
13899
+ import("./standalone-update-WVINHRNS.js"),
13900
+ import("./installationInfo-PO4Z3ES7.js")
13901
13901
  ]);
13902
13902
  const { formatUpdateInstructions, getInstallationInfo: getInstallationInfo2 } = installationInfo;
13903
13903
  const settings = context.services.settings;
@@ -18,12 +18,15 @@ import {
18
18
  import {
19
19
  normalizeServeChannelSelection
20
20
  } from "./chunk-ALMR3E6Q.js";
21
+ import {
22
+ EXTERNAL_TOOL_GUARD_TOKEN_ENV
23
+ } from "./chunk-BKHCW2BI.js";
21
24
  import {
22
25
  loadSettings
23
- } from "./chunk-RM3F46UT.js";
26
+ } from "./chunk-PPUOYL77.js";
24
27
  import {
25
28
  MCP_BUDGET_WARN_FRACTION
26
- } from "./chunk-YLL3SC5S.js";
29
+ } from "./chunk-A4VTILZT.js";
27
30
  import {
28
31
  parsePositiveIntegerEnv
29
32
  } from "./chunk-6PVPNMXU.js";
@@ -36,7 +39,7 @@ import {
36
39
  } from "./chunk-E4WHKETF.js";
37
40
  import {
38
41
  writeStderrLine
39
- } from "./chunk-OWAK7LMW.js";
42
+ } from "./chunk-KGJGEEVR.js";
40
43
  import {
41
44
  init_esbuild_shims
42
45
  } from "./chunk-5O2XNYP6.js";
@@ -214,6 +217,16 @@ var serveCommand = {
214
217
  }).option("permission-response-timeout-ms", {
215
218
  type: "number",
216
219
  description: "Wall-clock timeout for a single human permission / ask_user_question response in daemon (ACP) mode (ms). 0 = disabled (wait forever). Default: 300000 (5 min)."
220
+ }).option("external-tool-guard-mode", {
221
+ choices: ["off", "required"],
222
+ default: "off",
223
+ description: "Managed ACP pre-execution policy mode. Default off preserves current CLI and daemon behavior. Required fails startup unless a compatible loopback provider is available."
224
+ }).option("external-tool-guard-endpoint", {
225
+ type: "string",
226
+ description: "Origin-only loopback HTTP(S) endpoint for required external tool guarding, for example http://127.0.0.1:8787."
227
+ }).option("external-tool-guard-timeout-ms", {
228
+ type: "number",
229
+ description: "Per-handshake/prepare external tool guard timeout in milliseconds. Default: 3000."
217
230
  }).option("rate-limit", {
218
231
  type: "boolean",
219
232
  description: "Enable per-tier HTTP rate limiting. Tiers: prompt (10/min), mutation (30/min), read (120/min). Health, heartbeat, SSE, and /acp are exempt."
@@ -331,7 +344,9 @@ var serveCommand = {
331
344
  process.exit(1);
332
345
  }
333
346
  }
334
- const { runQwenServe } = await import("./run-qwen-serve-K5W6MM6M.js");
347
+ const externalToolGuardToken = process.env[EXTERNAL_TOOL_GUARD_TOKEN_ENV] ?? "";
348
+ delete process.env[EXTERNAL_TOOL_GUARD_TOKEN_ENV];
349
+ const { runQwenServe } = await import("./run-qwen-serve-3JN75CIQ.js");
335
350
  try {
336
351
  const handle = await runQwenServe({
337
352
  port: argv.port,
@@ -367,6 +382,16 @@ var serveCommand = {
367
382
  ...argv["permission-response-timeout-ms"] !== void 0 ? {
368
383
  permissionResponseTimeoutMs: argv["permission-response-timeout-ms"]
369
384
  } : {},
385
+ ...argv["external-tool-guard-mode"] === "required" ? {
386
+ externalToolGuard: {
387
+ mode: "required",
388
+ endpoint: argv["external-tool-guard-endpoint"] ?? "",
389
+ token: externalToolGuardToken,
390
+ ...argv["external-tool-guard-timeout-ms"] !== void 0 ? {
391
+ timeoutMs: argv["external-tool-guard-timeout-ms"]
392
+ } : {}
393
+ }
394
+ } : {},
370
395
  ...rateLimit ? { rateLimit: true } : {},
371
396
  ...rateLimitPrompt !== void 0 ? { rateLimitPrompt } : {},
372
397
  ...rateLimitMutation !== void 0 ? { rateLimitMutation } : {},
@@ -3,16 +3,16 @@
3
3
  import {
4
4
  settleChatRecording,
5
5
  subscribeToHeadlessChatRecordingFailures
6
- } from "./chunk-3H5RFLTS.js";
6
+ } from "./chunk-ODPXHGLL.js";
7
7
  import {
8
8
  handleAtCommand
9
- } from "./chunk-JDNWIXHJ.js";
9
+ } from "./chunk-SLSWFHDF.js";
10
10
  import {
11
11
  JsonOutputAdapter
12
- } from "./chunk-FEUXV3DC.js";
12
+ } from "./chunk-Q5RM32DR.js";
13
13
  import {
14
14
  StreamJsonOutputAdapter
15
- } from "./chunk-N3RERU5N.js";
15
+ } from "./chunk-NGJOAKJY.js";
16
16
  import {
17
17
  buildInitialSystemReminders,
18
18
  buildSystemMessage,
@@ -24,11 +24,11 @@ import {
24
24
  insertAfterFunctionResponses,
25
25
  isSlashCommand,
26
26
  normalizePartList
27
- } from "./chunk-IWYXZAGT.js";
27
+ } from "./chunk-GESMMPAK.js";
28
28
  import {
29
29
  RunBudgetEnforcer,
30
30
  cleanupReviewWorktreeLeases
31
- } from "./chunk-GP4IMBX5.js";
31
+ } from "./chunk-XM2O73NC.js";
32
32
  import {
33
33
  AlreadyReportedError,
34
34
  handleBudgetExceededError,
@@ -36,10 +36,10 @@ import {
36
36
  handleError,
37
37
  handleMaxTurnsExceededError,
38
38
  handleToolError
39
- } from "./chunk-VJPF6GF2.js";
39
+ } from "./chunk-FZFP7RZI.js";
40
40
  import {
41
41
  isInlineModelOverrideAllowed
42
- } from "./chunk-WU5NBSLD.js";
42
+ } from "./chunk-5MJGUQU5.js";
43
43
  import {
44
44
  PLAN_MODE_ENTRY_SIBLING_SKIP_MESSAGE,
45
45
  buildSessionRecoveryPlanFromApiHistory,
@@ -57,7 +57,7 @@ import {
57
57
  parseAndFormatApiError,
58
58
  partitionByConcurrencySafety,
59
59
  restoreWorktreeContext
60
- } from "./chunk-YLL3SC5S.js";
60
+ } from "./chunk-A4VTILZT.js";
61
61
  import {
62
62
  parsePositiveIntegerEnv
63
63
  } from "./chunk-6PVPNMXU.js";
@@ -79,7 +79,7 @@ import {
79
79
  shouldRunVisionBridge,
80
80
  splitImageParts,
81
81
  uiTelemetryService
82
- } from "./chunk-ZPGMDT4S.js";
82
+ } from "./chunk-PX5DNLSA.js";
83
83
  import {
84
84
  ToolNames
85
85
  } from "./chunk-D7D7RXIJ.js";
@@ -93,7 +93,7 @@ import {
93
93
  } from "./chunk-3RXUYQJI.js";
94
94
  import {
95
95
  registerCleanup
96
- } from "./chunk-LSYVASZS.js";
96
+ } from "./chunk-RHTTKJTP.js";
97
97
  import {
98
98
  init_esbuild_shims
99
99
  } from "./chunk-5O2XNYP6.js";