@qwen-code/qwen-code 0.19.3 → 0.19.4-nightly.20260702.46814e4f1

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 (308) hide show
  1. package/bundled/loop/SKILL.md +22 -3
  2. package/bundled/loop/SKILL.test.ts +20 -0
  3. package/bundled/loop/autonomous-loop.test.ts +59 -0
  4. package/bundled/loop/autonomous-loop.ts +102 -0
  5. package/bundled/loop/loop-task-file.test.ts +1064 -0
  6. package/bundled/loop/loop-task-file.ts +404 -0
  7. package/bundled/loop/loop-tick-resolver.test.ts +906 -0
  8. package/bundled/loop/loop-tick-resolver.ts +416 -0
  9. package/bundled/qc-helper/SKILL.md +12 -5
  10. package/bundled/qc-helper/docs/configuration/auth.md +1 -1
  11. package/bundled/qc-helper/docs/configuration/settings.md +62 -32
  12. package/bundled/qc-helper/docs/features/approval-mode.md +3 -0
  13. package/bundled/qc-helper/docs/features/auto-mode.md +40 -0
  14. package/bundled/qc-helper/docs/features/channels/overview.md +81 -18
  15. package/bundled/qc-helper/docs/features/channels/plugins.md +1 -1
  16. package/bundled/qc-helper/docs/features/code-review.md +17 -61
  17. package/bundled/qc-helper/docs/features/commands.md +42 -40
  18. package/bundled/qc-helper/docs/features/headless.md +19 -18
  19. package/bundled/qc-helper/docs/features/hooks.md +6 -1
  20. package/bundled/qc-helper/docs/features/mcp.md +3 -1
  21. package/bundled/qc-helper/docs/features/memory.md +1 -1
  22. package/bundled/qc-helper/docs/features/scheduled-tasks.md +10 -0
  23. package/bundled/qc-helper/docs/features/status-line.md +3 -3
  24. package/bundled/qc-helper/docs/ide-integration/ide-integration.md +4 -4
  25. package/bundled/qc-helper/docs/qwen-serve.md +53 -0
  26. package/bundled/qc-helper/docs/support/troubleshooting.md +11 -0
  27. package/bundled/review/DESIGN.md +21 -26
  28. package/bundled/review/SKILL.md +45 -129
  29. package/chunks/MaxSizedBox-GHGRQ2OS.js +69 -0
  30. package/chunks/{StandaloneSessionPicker-Z52JTYST.js → StandaloneSessionPicker-G7YTTM27.js} +49 -42
  31. package/chunks/{acpAgent-7RZUOWOM.js → acpAgent-SDOILBSU.js} +1325 -365
  32. package/chunks/{agent-4FG7WTHJ.js → agent-NTSXGV4L.js} +31 -25
  33. package/chunks/agent-headless-WYURMSAB.js +62 -0
  34. package/chunks/{anthropicContentGenerator-PFITVL7Y.js → anthropicContentGenerator-WL3LJOUB.js} +110 -31
  35. package/chunks/{artifact-tool-D2X7G3C3.js → artifact-tool-W76WC2JX.js} +3 -3
  36. package/chunks/{askUserQuestion-UGETICJQ.js → askUserQuestion-J3P6TH3V.js} +2 -2
  37. package/chunks/bridge-AMOL4W4P.js +73 -0
  38. package/chunks/{ca-IUFWESZL.js → ca-HCMB2I54.js} +10 -9
  39. package/chunks/channel-worker-supervisor-C3IB63V7.js +659 -0
  40. package/chunks/{chunk-STUWFKGD.js → chunk-26JIREA5.js} +466 -543
  41. package/chunks/{chunk-SLNKLLEO.js → chunk-2MRV62AU.js} +37 -8
  42. package/chunks/{chunk-ODLIHNOY.js → chunk-2U4HUMOL.js} +1 -1
  43. package/chunks/{chunk-CKQA6AWF.js → chunk-4D73HUOP.js} +1 -1
  44. package/chunks/{chunk-M2U5NM24.js → chunk-54YZOP7P.js} +309 -72
  45. package/chunks/{chunk-J7FA27RO.js → chunk-5LKL3PAU.js} +3 -3
  46. package/chunks/chunk-5P5XGNYH.js +93 -0
  47. package/chunks/{chunk-UFLGERMB.js → chunk-6JE32BRB.js} +178 -124
  48. package/chunks/{chunk-FKAVULLM.js → chunk-75AVTQJ2.js} +74 -10
  49. package/chunks/{chunk-I2LYBGNI.js → chunk-7IOMIYOE.js} +1 -1
  50. package/chunks/{chunk-4LUZAKMK.js → chunk-7KXAGQJ2.js} +1 -1
  51. package/chunks/{chunk-BXSHL2SF.js → chunk-7LUOQJ3D.js} +1 -1
  52. package/chunks/{chunk-YAINVQ3Q.js → chunk-A5OPLHFM.js} +18693 -17055
  53. package/chunks/chunk-AHNXYU4O.js +24 -0
  54. package/chunks/{chunk-UX4SGCGN.js → chunk-AVQDCKNF.js} +96 -22
  55. package/chunks/{chunk-HYCC3XM3.js → chunk-B236XPGF.js} +1 -1
  56. package/chunks/chunk-B6SZLQAZ.js +3523 -0
  57. package/chunks/{chunk-5DWXLGOM.js → chunk-BJBWRCSK.js} +1 -1
  58. package/chunks/chunk-BPFJQGY7.js +193 -0
  59. package/chunks/{chunk-SKQZZVAV.js → chunk-BZHLWC6T.js} +2 -2
  60. package/chunks/{chunk-U3KSMM7G.js → chunk-D5KISTLW.js} +339 -383
  61. package/chunks/{chunk-GT2FGICD.js → chunk-DE7YXUR7.js} +1 -1
  62. package/chunks/{chunk-BUUQ5HPX.js → chunk-DG573EOO.js} +1 -1
  63. package/chunks/{chunk-VVLOGDB6.js → chunk-DX3TKXNT.js} +2 -2
  64. package/chunks/chunk-E5A7LHNN.js +51 -0
  65. package/chunks/{chunk-3PJXIDKI.js → chunk-E6US47KI.js} +3 -27
  66. package/chunks/{chunk-QBZ22PQX.js → chunk-EWALXUAD.js} +3 -1
  67. package/chunks/{chunk-PDE7CSDS.js → chunk-FXKI7OW6.js} +2 -2
  68. package/chunks/{chunk-F3ZYSEY6.js → chunk-FY4TT4L4.js} +3 -3
  69. package/chunks/{chunk-QLDPRILK.js → chunk-G7OQ3RFJ.js} +3 -3
  70. package/chunks/{chunk-R2BXK7SX.js → chunk-GHOTR7HL.js} +6 -1
  71. package/chunks/{chunk-KMGMKW5Q.js → chunk-GLPV75ES.js} +9 -3
  72. package/chunks/{chunk-LD2XBG6Z.js → chunk-GO6LNQXT.js} +1 -39
  73. package/chunks/{chunk-CNLEDYE3.js → chunk-H6TNLOLM.js} +5 -5
  74. package/chunks/{chunk-JVHEVCAU.js → chunk-HLW4EGKR.js} +31 -6
  75. package/chunks/{chunk-I4H7PRWQ.js → chunk-HTWHAN44.js} +1 -1
  76. package/chunks/{chunk-QE6KJYLT.js → chunk-IPYE5BIS.js} +123 -25
  77. package/chunks/{chunk-EJYJYJZ2.js → chunk-IRJWHZWU.js} +3 -70
  78. package/chunks/{chunk-EDMZZFDU.js → chunk-J3YPTTNL.js} +930 -798
  79. package/chunks/{chunk-GGBIN5K7.js → chunk-JGAJMIJZ.js} +1 -1
  80. package/chunks/{chunk-N4EJFBN5.js → chunk-JVLP5US5.js} +427 -263
  81. package/chunks/{chunk-R5OP2ATH.js → chunk-JZG7VB6C.js} +11 -11
  82. package/chunks/{chunk-QI7GOGJR.js → chunk-KKQWC6WS.js} +1 -1
  83. package/chunks/{chunk-ADCIHOQZ.js → chunk-KX5QZRW2.js} +142 -30
  84. package/chunks/{chunk-SBBN4BWR.js → chunk-L7OJ3ZO3.js} +1 -1
  85. package/chunks/{chunk-NDOC6M5S.js → chunk-L7QPM2YD.js} +2 -2
  86. package/chunks/{chunk-BVSVIN45.js → chunk-LKWAVAB5.js} +3 -3
  87. package/chunks/{chunk-T4T2FNV4.js → chunk-LOW52WYZ.js} +2 -2
  88. package/chunks/{chunk-4QK3O43S.js → chunk-LU7BIVWC.js} +4 -4
  89. package/chunks/{chunk-ZP6UKOPB.js → chunk-LWGLBVWA.js} +1 -1
  90. package/chunks/{chunk-L7OKCI7T.js → chunk-M7BLWURA.js} +15 -1
  91. package/chunks/{chunk-PR32FRT6.js → chunk-MIM62IXS.js} +3 -3
  92. package/chunks/{chunk-RD6YJJJ6.js → chunk-MOUXUCXQ.js} +1 -1
  93. package/chunks/{chunk-VBZ452JT.js → chunk-MSNGFH6L.js} +494 -114
  94. package/chunks/{chunk-BX5YO7UW.js → chunk-MTNTVOJR.js} +542 -370
  95. package/chunks/chunk-MX2YXRER.js +44 -0
  96. package/chunks/chunk-NIOPRZNN.js +27 -0
  97. package/chunks/{chunk-SMYQZVZ3.js → chunk-NOGSPTLJ.js} +1 -1
  98. package/chunks/{chunk-DDMOU62Q.js → chunk-NPQWQYU6.js} +1 -1
  99. package/chunks/{chunk-MNF6S5PR.js → chunk-P5THQV6A.js} +4 -4
  100. package/chunks/{chunk-6V4NZFUS.js → chunk-PCYOT4PK.js} +5 -5
  101. package/chunks/{chunk-CF6BB3LT.js → chunk-PPFWEV7G.js} +10 -1
  102. package/chunks/{chunk-FXKVLFFY.js → chunk-PSFDB5FZ.js} +3 -3
  103. package/chunks/{chunk-XJYUPHRC.js → chunk-QOMAHFYI.js} +3 -3
  104. package/chunks/{chunk-J37FGIOA.js → chunk-QXPI7FEC.js} +38 -4
  105. package/chunks/{chunk-RRFZXMYP.js → chunk-QZDBHNMV.js} +691 -164
  106. package/chunks/{chunk-S7AKE7HL.js → chunk-R6RI2HIC.js} +63 -9
  107. package/chunks/{chunk-HZT4UCFB.js → chunk-RB7S52NJ.js} +4 -4
  108. package/chunks/{chunk-J33ZR6OJ.js → chunk-RK22ACPP.js} +16 -16
  109. package/chunks/chunk-RM3PGSGL.js +66 -0
  110. package/chunks/chunk-RNBYOUGV.js +42 -0
  111. package/chunks/chunk-S6RLAIUR.js +23 -0
  112. package/chunks/{chunk-3TV3HUWZ.js → chunk-SCYK2YLI.js} +81 -30
  113. package/chunks/{chunk-HPZTOP4I.js → chunk-SEKRT4SD.js} +133 -23
  114. package/chunks/chunk-SEZC2725.js +36 -0
  115. package/chunks/chunk-SIUQ3YYX.js +78 -0
  116. package/chunks/{chunk-O2VBQ3Y2.js → chunk-SJBIFVD2.js} +2 -2
  117. package/chunks/chunk-SYCJMSIJ.js +82 -0
  118. package/chunks/{chunk-JE5FVRPC.js → chunk-T22H4V4R.js} +48 -23
  119. package/chunks/{chunk-3227DZO4.js → chunk-T42ACHFI.js} +1 -1
  120. package/chunks/{chunk-UO5GVXQE.js → chunk-TENOUWY2.js} +3 -3
  121. package/chunks/{chunk-JOLIREYR.js → chunk-TOAUDIS7.js} +1 -1
  122. package/chunks/{chunk-QNKBEJO2.js → chunk-UA6XBZT7.js} +2776 -1289
  123. package/chunks/{chunk-O75BHFQW.js → chunk-UQTYK5SS.js} +2 -2
  124. package/chunks/{chunk-Y6YMRS3U.js → chunk-UY2TCIZS.js} +17 -3
  125. package/chunks/{chunk-FNJ7BDPH.js → chunk-UY7ZAYTY.js} +10 -7
  126. package/chunks/{chunk-UYT3MWEB.js → chunk-UYHWM24C.js} +30 -2
  127. package/chunks/{chunk-SMXULRAN.js → chunk-VXGPYF7U.js} +1 -1
  128. package/chunks/{chunk-BTLJ2MF5.js → chunk-W7CG5HPC.js} +3 -3
  129. package/chunks/{chunk-JJXWTVSK.js → chunk-XHZKDN7M.js} +34 -1
  130. package/chunks/{chunk-K5XU6E4T.js → chunk-XKSCTXPK.js} +2 -2
  131. package/chunks/chunk-Y4LITCRB.js +367 -0
  132. package/chunks/chunk-YHTNWGRR.js +239 -0
  133. package/chunks/{chunk-BKXBARJZ.js → chunk-YPCPZSZB.js} +1 -1
  134. package/chunks/{chunk-QWFNTRH4.js → chunk-YSM24SCE.js} +1 -1
  135. package/chunks/chunk-YTFBURQD.js +313 -0
  136. package/chunks/{chunk-NL4C3H6C.js → chunk-YXK4GPYO.js} +1 -1
  137. package/chunks/{chunk-RYLJU2DY.js → chunk-ZN5T4BHI.js} +1 -1
  138. package/chunks/{computer-use-JGB36FDW.js → computer-use-MTSVPLPY.js} +34 -28
  139. package/chunks/contextCommand-VGJ3BPTK.js +67 -0
  140. package/chunks/{cron-create-SKEY55RG.js → cron-create-6YTCOX6P.js} +4 -4
  141. package/chunks/{cron-delete-I3NAT32Z.js → cron-delete-E3NIFSUK.js} +4 -4
  142. package/chunks/{cron-list-6XRRL6TH.js → cron-list-Q64MNQNE.js} +4 -4
  143. package/chunks/daemon-EEB2RYOL.js +8453 -0
  144. package/chunks/daemon-status-provider-H5SNMK42.js +71 -0
  145. package/chunks/{de-EOW5PVHF.js → de-PLLFDERI.js} +10 -9
  146. package/chunks/{dist-NHEYYB2B.js → dist-ADMIQGHI.js} +2 -2
  147. package/chunks/{dist-J37VXPLD.js → dist-BCQ7INM7.js} +40 -15
  148. package/chunks/{dist-663NZ6MI.js → dist-KNZFCY5F.js} +116 -11
  149. package/chunks/{dist-LB6OGPVM.js → dist-LHUWC3K6.js} +26 -5
  150. package/chunks/{dist-PQPZ5Q4N.js → dist-WBBZ76JZ.js} +20 -9
  151. package/chunks/{earlyInputCapture-44RISVVJ.js → earlyInputCapture-U4ZIQSQU.js} +32 -26
  152. package/chunks/{edit-NN6GM5DT.js → edit-SYIQ2KBI.js} +41 -38
  153. package/chunks/{en-HPWEJBTR.js → en-M4EBUBNU.js} +32 -10
  154. package/chunks/{enter-worktree-PB3O2C7D.js → enter-worktree-HPPOO244.js} +31 -25
  155. package/chunks/{enterPlanMode-YQFNNSUA.js → enterPlanMode-56YYO52U.js} +41 -25
  156. package/chunks/{errors-LS7XU5DZ.js → errors-EO4SXCFP.js} +33 -27
  157. package/chunks/{exit-worktree-E2FTNSBK.js → exit-worktree-UDM7E6XH.js} +31 -25
  158. package/chunks/{exitPlanMode-GLYK2BUB.js → exitPlanMode-M6P3AWLJ.js} +149 -33
  159. package/chunks/{fast-path-WQ6M7LI7.js → fast-path-42P4QYWI.js} +33 -14
  160. package/chunks/{fast-path-settings-OAGU3X5H.js → fast-path-settings-UQLRFDQP.js} +2 -2
  161. package/chunks/{fr-BN5NKSAC.js → fr-MBMNQSQ6.js} +10 -9
  162. package/chunks/{gemini-2YFLVA2M.js → gemini-NRLXS5J7.js} +84 -70
  163. package/chunks/{geminiContentGenerator-XV6SV6CD.js → geminiContentGenerator-DLJPYYPA.js} +41 -5
  164. package/chunks/{glob-2H6CDDMK.js → glob-JPY3F74Y.js} +31 -25
  165. package/chunks/{grep-VXIUXM3C.js → grep-HW23YES5.js} +31 -25
  166. package/chunks/initializer-HWOZTC4A.js +67 -0
  167. package/chunks/{ja-7DEUB2TS.js → ja-HFV5QCHR.js} +10 -9
  168. package/chunks/{keychain-token-storage-YLMDLKXT.js → keychain-token-storage-GPAKRDKQ.js} +2 -2
  169. package/chunks/list-OZGAGRDG.js +71 -0
  170. package/chunks/loadedSettingsAdapter-RUTZVVIA.js +66 -0
  171. package/chunks/{loop-wakeup-CITGGQHA.js → loop-wakeup-G2EHBRGR.js} +5 -5
  172. package/chunks/{ls-R5WP4BGZ.js → ls-IDHUVSAG.js} +4 -4
  173. package/chunks/{lsp-GSICJMMW.js → lsp-FSRYXGFT.js} +2 -2
  174. package/chunks/{monitor-HKLRS2HQ.js → monitor-QVWEIXU3.js} +33 -26
  175. package/chunks/nonInteractiveCli-RV2WYPML.js +109 -0
  176. package/chunks/{notebook-edit-Y6SKSGTT.js → notebook-edit-B26W3FFH.js} +37 -34
  177. package/chunks/{openaiContentGenerator-J7G2FYJT.js → openaiContentGenerator-6TH7AZGQ.js} +15 -13
  178. package/chunks/pidfile-KW2QQJZI.js +73 -0
  179. package/chunks/{pt-TNZRNLQB.js → pt-2THT3YHA.js} +10 -9
  180. package/chunks/{qwenContentGenerator-5XIEM5GV.js → qwenContentGenerator-5IQAC7RN.js} +33 -27
  181. package/chunks/{qwenOAuth2-AG3PFFLZ.js → qwenOAuth2-LWLA6MQG.js} +5 -4
  182. package/chunks/{read-file-J7D552ZJ.js → read-file-CWFAHOI2.js} +11 -10
  183. package/chunks/{read-mcp-resource-DQQW7H7T.js → read-mcp-resource-PIJF24RO.js} +2 -2
  184. package/chunks/ripGrep-FTZGDKY4.js +60 -0
  185. package/chunks/{ru-NIAUBKCN.js → ru-Z67YJHBG.js} +10 -9
  186. package/chunks/{run-qwen-serve-SGEEVMXD.js → run-qwen-serve-FN2SW5ZI.js} +545 -97
  187. package/chunks/{scheduler-7CQI3S4Q.js → scheduler-BMS23O3I.js} +31 -25
  188. package/chunks/{send-message-EE4TWKVU.js → send-message-33PYFMCT.js} +20 -4
  189. package/chunks/serve-PXFYKL65.js +71 -0
  190. package/chunks/{server-4QMUWXPW.js → server-BRKALJ4F.js} +4132 -1175
  191. package/chunks/{session-NRO7UFOY.js → session-AQMISBP4.js} +205 -64
  192. package/chunks/{settings-SGWRDQSC.js → settings-JCPVUZMB.js} +35 -29
  193. package/chunks/{shell-62ANGIHL.js → shell-POHCRVN2.js} +31 -25
  194. package/chunks/{skill-VWAQAWW6.js → skill-QPEVHS6H.js} +13 -12
  195. package/chunks/spawnChannel-V3QT62TE.js +69 -0
  196. package/chunks/{src-KUV5J5Q2.js → src-IZSP7L6Y.js} +127 -32
  197. package/chunks/{startInteractiveUI-6EYJN3JV.js → startInteractiveUI-63KATISO.js} +16762 -16075
  198. package/chunks/{syntheticOutput-T5YHQ6S2.js → syntheticOutput-YOSWIHDJ.js} +3 -3
  199. package/chunks/{task-create-BLY7RHXX.js → task-create-NHS2NGB3.js} +9 -7
  200. package/chunks/{task-list-3QUYNVYR.js → task-list-5UIB564R.js} +7 -6
  201. package/chunks/{task-stop-U4RATK2V.js → task-stop-HGXZ2VZ3.js} +2 -2
  202. package/chunks/{task-update-U54O7KJX.js → task-update-IYYWUILG.js} +40 -7
  203. package/chunks/{team-create-LPOGCPM7.js → team-create-E5O2F3CA.js} +31 -25
  204. package/chunks/{team-delete-LKBYPASD.js → team-delete-FEKJCU4P.js} +7 -6
  205. package/chunks/team-plan-approval-2TU4YROB.js +202 -0
  206. package/chunks/theme-manager-37KOGPJL.js +64 -0
  207. package/chunks/{todoWrite-OYXKTVYN.js → todoWrite-TKMVZ2HT.js} +4 -4
  208. package/chunks/{tool-search-YPUFJ3ZQ.js → tool-search-4ZTGNSFI.js} +38 -11
  209. package/chunks/{trustedFolders-5B24TMEA.js → trustedFolders-RJ5WXJ6L.js} +32 -26
  210. package/chunks/{validateNonInterActiveAuth-BTDTYOVT.js → validateNonInterActiveAuth-ZWMHZAOK.js} +66 -55
  211. package/chunks/{web-fetch-EEB5LZYU.js → web-fetch-J4PIW36Q.js} +5 -4
  212. package/chunks/{workflow-LAWIW5LI.js → workflow-6PG2PC5M.js} +68 -39
  213. package/chunks/workspace-providers-status-4QIZN2W4.js +68 -0
  214. package/chunks/workspace-service-CYMCOEIO.js +78 -0
  215. package/chunks/{write-file-PCV226DJ.js → write-file-R354LGQF.js} +41 -40
  216. package/chunks/{zh-5EUYXASN.js → zh-SLZNSSZB.js} +32 -10
  217. package/chunks/{zh-TW-TR3XYGE5.js → zh-TW-P53C2SL5.js} +32 -10
  218. package/cli.js +6 -6
  219. package/locales/ca.js +15 -13
  220. package/locales/de.js +15 -13
  221. package/locales/en.js +52 -15
  222. package/locales/fr.js +15 -14
  223. package/locales/ja.js +15 -14
  224. package/locales/pt.js +15 -13
  225. package/locales/ru.js +15 -13
  226. package/locales/zh-TW.js +50 -14
  227. package/locales/zh.js +50 -14
  228. package/node_modules/@qwen-code/audio-capture/package.json +1 -1
  229. package/node_modules/@qwen-code/audio-capture/prebuilds/darwin-arm64/@qwen-code+audio-capture.node +0 -0
  230. package/node_modules/@qwen-code/audio-capture/prebuilds/darwin-x64/@qwen-code+audio-capture.node +0 -0
  231. package/node_modules/@qwen-code/audio-capture/prebuilds/win32-x64/@qwen-code+audio-capture.node +0 -0
  232. package/package.json +15 -6
  233. package/patches/chrome-devtools-mcp+1.4.0.patch +31 -0
  234. package/postinstall.js +50 -0
  235. package/web-shell/assets/{arc-DA7r8Ueo.js → arc-Bd3048nX.js} +1 -1
  236. package/web-shell/assets/{architectureDiagram-3BPJPVTR-ZDUxPtZ2.js → architectureDiagram-3BPJPVTR-DyzbzABx.js} +1 -1
  237. package/web-shell/assets/{blockDiagram-GPEHLZMM-vrtOf1kJ.js → blockDiagram-GPEHLZMM-CTjxm9Sy.js} +1 -1
  238. package/web-shell/assets/{c4Diagram-AAUBKEIU-BHFjzIi4.js → c4Diagram-AAUBKEIU-DSOFWNU6.js} +1 -1
  239. package/web-shell/assets/channel-oVoup_Ci.js +1 -0
  240. package/web-shell/assets/{chunk-2J33WTMH-mdeQVz59.js → chunk-2J33WTMH-D_PFdjo2.js} +1 -1
  241. package/web-shell/assets/{chunk-4BX2VUAB-BkKMlwBX.js → chunk-4BX2VUAB-52eG6wOT.js} +1 -1
  242. package/web-shell/assets/{chunk-55IACEB6-B7bnXNfu.js → chunk-55IACEB6-CGTZfKkC.js} +1 -1
  243. package/web-shell/assets/{chunk-727SXJPM-DGz8Mm6i.js → chunk-727SXJPM-CZ-qfRUm.js} +1 -1
  244. package/web-shell/assets/{chunk-AQP2D5EJ-BQAydUNk.js → chunk-AQP2D5EJ-B2dSDcqM.js} +1 -1
  245. package/web-shell/assets/{chunk-FMBD7UC4-GHr2LN_p.js → chunk-FMBD7UC4-Cfy3tyA0.js} +1 -1
  246. package/web-shell/assets/{chunk-ND2GUHAM-7R91lnUx.js → chunk-ND2GUHAM-CApNUpUq.js} +1 -1
  247. package/web-shell/assets/{chunk-QZHKN3VN-aTJD3lSQ.js → chunk-QZHKN3VN-CVBG8kgg.js} +1 -1
  248. package/web-shell/assets/classDiagram-4FO5ZUOK-B8WsaT2G.js +1 -0
  249. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-B8WsaT2G.js +1 -0
  250. package/web-shell/assets/{cose-bilkent-S5V4N54A-BTf8t1RL.js → cose-bilkent-S5V4N54A-URd77-_-.js} +1 -1
  251. package/web-shell/assets/{dagre-BM42HDAG-_sgp3WuA.js → dagre-BM42HDAG-C07H4G9-.js} +1 -1
  252. package/web-shell/assets/{diagram-2AECGRRQ-CROtRy1w.js → diagram-2AECGRRQ-CYbpXrSn.js} +1 -1
  253. package/web-shell/assets/{diagram-5GNKFQAL-BqGRzwSc.js → diagram-5GNKFQAL-SI8s6fjX.js} +1 -1
  254. package/web-shell/assets/{diagram-KO2AKTUF-CMrcEtA7.js → diagram-KO2AKTUF-mBkC4RTW.js} +1 -1
  255. package/web-shell/assets/{diagram-LMA3HP47-BRydGNW5.js → diagram-LMA3HP47-CyBPDzWJ.js} +1 -1
  256. package/web-shell/assets/{diagram-OG6HWLK6-D0ilgNjV.js → diagram-OG6HWLK6-DwK7kBCu.js} +1 -1
  257. package/web-shell/assets/{erDiagram-TEJ5UH35-2lnQeJUM.js → erDiagram-TEJ5UH35-Ds1StEUd.js} +1 -1
  258. package/web-shell/assets/{flowDiagram-I6XJVG4X-C_ZMdQiC.js → flowDiagram-I6XJVG4X-BDC4-jHO.js} +1 -1
  259. package/web-shell/assets/{ganttDiagram-6RSMTGT7-Dw9V_Ny0.js → ganttDiagram-6RSMTGT7-CV2aHQqf.js} +1 -1
  260. package/web-shell/assets/{gitGraphDiagram-PVQCEYII-HDXI-F1B.js → gitGraphDiagram-PVQCEYII-B8RcuV_L.js} +1 -1
  261. package/web-shell/assets/index-B5WZ0qP1.js +717 -0
  262. package/web-shell/assets/index-CYE1IMd1.css +5 -0
  263. package/web-shell/assets/{infoDiagram-5YYISTIA-CuB8Ebua.js → infoDiagram-5YYISTIA-DUPoTf50.js} +1 -1
  264. package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-D_tyhVwh.js → ishikawaDiagram-YF4QCWOH-FDYOx9rf.js} +1 -1
  265. package/web-shell/assets/{journeyDiagram-JHISSGLW-CgCwJQNU.js → journeyDiagram-JHISSGLW-C5_ohMRp.js} +1 -1
  266. package/web-shell/assets/{kanban-definition-UN3LZRKU-PZUtcbPx.js → kanban-definition-UN3LZRKU-Bn4UnOMG.js} +1 -1
  267. package/web-shell/assets/{linear-CZqRdJIU.js → linear-Bl0pKQtY.js} +1 -1
  268. package/web-shell/assets/{mermaid.core-CPW_4UEF.js → mermaid.core-sevQFoji.js} +72 -72
  269. package/web-shell/assets/{mindmap-definition-RKZ34NQL-D_Y75ID7.js → mindmap-definition-RKZ34NQL-DSH4JZF9.js} +1 -1
  270. package/web-shell/assets/{pieDiagram-4H26LBE5-Q4dTyLeF.js → pieDiagram-4H26LBE5-acWvdQTD.js} +1 -1
  271. package/web-shell/assets/{quadrantDiagram-W4KKPZXB-ckw329Ft.js → quadrantDiagram-W4KKPZXB-DlggX4Sm.js} +1 -1
  272. package/web-shell/assets/{requirementDiagram-4Y6WPE33-DbVDm4It.js → requirementDiagram-4Y6WPE33--mMqwmV8.js} +1 -1
  273. package/web-shell/assets/{sankeyDiagram-5OEKKPKP-CHuZ_ecH.js → sankeyDiagram-5OEKKPKP-BtV9tZ77.js} +1 -1
  274. package/web-shell/assets/{sequenceDiagram-3UESZ5HK-DU2YSpq-.js → sequenceDiagram-3UESZ5HK-iDQzPFlj.js} +1 -1
  275. package/web-shell/assets/{stateDiagram-AJRCARHV-CA9PEBUo.js → stateDiagram-AJRCARHV-CsCyQLZ3.js} +1 -1
  276. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-CPapECG9.js +1 -0
  277. package/web-shell/assets/{timeline-definition-PNZ67QCA-Bhlo4WVc.js → timeline-definition-PNZ67QCA-Dl0rnKvr.js} +1 -1
  278. package/web-shell/assets/{vennDiagram-CIIHVFJN-6xtPLsyl.js → vennDiagram-CIIHVFJN-qF7nTZzA.js} +1 -1
  279. package/web-shell/assets/{wardley-L42UT6IY-3eozmXPf.js → wardley-L42UT6IY-fWoK9i7F.js} +1 -1
  280. package/web-shell/assets/{wardleyDiagram-YWT4CUSO-BOn6hKss.js → wardleyDiagram-YWT4CUSO-pHGfkMnc.js} +1 -1
  281. package/web-shell/assets/{xychartDiagram-2RQKCTM6-BsP4-I_y.js → xychartDiagram-2RQKCTM6-3Doc4Trz.js} +1 -1
  282. package/web-shell/index.html +18 -2
  283. package/chunks/MaxSizedBox-QNF3EIGU.js +0 -63
  284. package/chunks/agent-headless-RQ5BTX3G.js +0 -56
  285. package/chunks/bridge-JL2PMCIW.js +0 -66
  286. package/chunks/chunk-5GOVVXEV.js +0 -73
  287. package/chunks/chunk-BC3C4F3Q.js +0 -40
  288. package/chunks/chunk-BW4KCQFD.js +0 -1103
  289. package/chunks/chunk-RKIZXJMB.js +0 -13
  290. package/chunks/contextCommand-WYU6OQ2F.js +0 -61
  291. package/chunks/daemon-status-provider-HH2EC5FI.js +0 -65
  292. package/chunks/headlessSafetyWarnings-TBE35GJ4.js +0 -55
  293. package/chunks/initializer-2Y7SLOKV.js +0 -61
  294. package/chunks/list-ZAFHZ7OS.js +0 -65
  295. package/chunks/loadedSettingsAdapter-6KJXD6M3.js +0 -60
  296. package/chunks/nonInteractiveCli-5W4GIZQM.js +0 -96
  297. package/chunks/ripGrep-IEIFIWP4.js +0 -54
  298. package/chunks/serve-V6GVZR6U.js +0 -65
  299. package/chunks/spawnChannel-3VHW5EPY.js +0 -63
  300. package/chunks/theme-manager-LYLGAERF.js +0 -58
  301. package/chunks/workspace-providers-status-PIAFVYHA.js +0 -62
  302. package/chunks/workspace-service-YAIOD4HG.js +0 -71
  303. package/web-shell/assets/channel-iRo68q4Q.js +0 -1
  304. package/web-shell/assets/classDiagram-4FO5ZUOK-iHF24a8X.js +0 -1
  305. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-iHF24a8X.js +0 -1
  306. package/web-shell/assets/index-CHmzAWys.css +0 -5
  307. package/web-shell/assets/index-w6GTOHh1.js +0 -713
  308. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-t1LRI0oY.js +0 -1
package/locales/zh-TW.js CHANGED
@@ -195,6 +195,7 @@ export default {
195
195
  'toolDisplayName.TaskStop': '停止任務',
196
196
  'toolDisplayName.TeamCreate': '建立團隊',
197
197
  'toolDisplayName.TeamDelete': '刪除團隊',
198
+ 'toolDisplayName.TeamPlanApproval': '團隊計畫審批',
198
199
  'toolDisplayName.SendMessage': '傳送訊息',
199
200
  'toolDisplayName.StructuredOutput': '結構化輸出',
200
201
  'toolDisplayName.Monitor': '監控',
@@ -473,17 +474,17 @@ export default {
473
474
  'Open in editor': '在編輯器中打開',
474
475
  'Edit tools': '編輯工具',
475
476
  'Edit color': '編輯顏色',
476
- ' Error:': ' 錯誤:',
477
+ ' Error:': ' 錯誤:',
477
478
  'Are you sure you want to delete agent "{{name}}"?':
478
479
  '您確定要刪除智能體 "{{name}}" 嗎?',
479
480
  'Project Level (.qwen/agents/)': '項目級 (.qwen/agents/)',
480
481
  'User Level (~/.qwen/agents/)': '用戶級 (~/.qwen/agents/)',
481
- ' Subagent Created Successfully!': ' 子智能體創建成功!',
482
+ ' Subagent Created Successfully!': ' 子智能體創建成功!',
482
483
  'Subagent "{{name}}" has been saved to {{level}} level.':
483
484
  '子智能體 "{{name}}" 已保存到 {{level}} 級別。',
484
485
  'Name: ': '名稱: ',
485
486
  'Location: ': '位置: ',
486
- ' Error saving subagent:': ' 保存子智能體時出錯:',
487
+ ' Error saving subagent:': ' 保存子智能體時出錯:',
487
488
  'Warnings:': '警告:',
488
489
  'Name "{{name}}" already exists at {{level}} level - will overwrite existing subagent':
489
490
  '名稱 "{{name}}" 在 {{level}} 級別已存在 - 將覆蓋現有子智能體',
@@ -590,6 +591,35 @@ export default {
590
591
  'checking...': '檢查中...',
591
592
  'not updatable': '不可更新',
592
593
  error: '錯誤',
594
+ 'Get or set any setting by dot-path key':
595
+ '透過點號路徑鍵查看或設定任意設定項',
596
+ 'Invalid boolean value: "{{value}}". Use "true" or "false".':
597
+ '無效的布林值:"{{value}}"。請使用 "true" 或 "false"。',
598
+ 'Cannot toggle a number setting. Provide a value: key=<number>.':
599
+ '無法切換數字類型的設定。請提供值:key=<number>。',
600
+ 'Invalid number value: "{{value}}".': '無效的數字值:"{{value}}"。',
601
+ 'Cannot toggle a string setting. Provide a value: key=<value>.':
602
+ '無法切換字串類型的設定。請提供值:key=<value>。',
603
+ 'Cannot toggle an enum setting. Provide one of: {{options}}.':
604
+ '無法切換列舉類型的設定。請提供以下選項之一:{{options}}。',
605
+ 'Invalid enum value: "{{value}}". Valid values: {{options}}.':
606
+ '無效的列舉值:"{{value}}"。有效值:{{options}}。',
607
+ 'Setting "{{type}}" type cannot be set via /config. Edit settings.json directly.':
608
+ '"{{type}}" 類型的設定無法透過 /config 修改。請直接編輯 settings.json。',
609
+ 'Unsupported setting type: "{{type}}".': '不支援的設定類型:"{{type}}"。',
610
+ 'Available settings:': '可用設定:',
611
+ 'Unknown setting key: "{{key}}". Did you mean "{{suggestion}}"?':
612
+ '未知的設定鍵:"{{key}}"。您是不是想設定 "{{suggestion}}"?',
613
+ 'Unknown setting key: "{{key}}".': '未知的設定鍵:"{{key}}"。',
614
+ 'Failed to set "{{key}}": {{error}}': '設定 "{{key}}" 失敗:{{error}}',
615
+ 'Set {{key}} = {{value}}': '已設定 {{key}} = {{value}}',
616
+ '(This setting requires a restart to take effect.)':
617
+ '(此設定需要重新啟動才能生效。)',
618
+ '(Security-sensitive setting — verify you are not exposing credentials.)':
619
+ '(安全敏感設定 — 請確認您沒有洩露憑證。)',
620
+ 'Setting tools.approvalMode to "yolo" is blocked via /config for security reasons. Edit settings.json directly if you understand the risks.':
621
+ '出於安全原因,禁止透過 /config 將 tools.approvalMode 設定為 "yolo"。如果您了解相關風險,請直接編輯 settings.json。',
622
+ '(empty)': '(空)',
593
623
  'View and edit Qwen Code settings': '查看和編輯 Qwen Code 設置',
594
624
  Settings: '設置',
595
625
  'To see changes, Qwen Code must be restarted. Press r to exit and apply changes now.':
@@ -1230,8 +1260,12 @@ export default {
1230
1260
  '切換此會話的模型(--fast 可設置建議模型)',
1231
1261
  'Switch the model for this session (--fast for suggestion model, --voice for voice transcription model, [model-id] to switch immediately).':
1232
1262
  '切換此會話的模型(--fast 可設置建議模型,--voice 可設置語音轉寫模型,[model-id] 可立即切換)',
1233
- 'Switch the model for this session (--fast for suggestion model, --voice for voice transcription model, --vision for the vision bridge model, [model-id] to switch immediately).':
1234
- '切換此會話的模型(--fast 可設置建議模型,--voice 可設置語音轉寫模型,--vision 可設置視覺橋接模型,[model-id] 可立即切換)',
1263
+ 'Switch the model for this session (--fast for suggestion model, --voice for voice transcription model, --vision for the vision bridge model, [model-id] to switch immediately, or [model-id] [prompt] to run a one-off prompt on another model; the inline prompt is sent verbatim without @file expansion).':
1264
+ '切換此會話的模型(--fast 可設置建議模型,--voice 可設置語音轉寫模型,--vision 可設置視覺橋接模型,[model-id] 可立即切換,或用 [model-id] [prompt] 在另一個模型上執行一次性提示;內聯提示按原文發送,不展開 @file)',
1265
+ "Inline one-shot override isn't supported in this mode — run '/model {{model}}' first, then send your prompt.":
1266
+ "此模式不支援內聯一次性覆寫——請先執行 '/model {{model}}',再發送你的提示。",
1267
+ "Inline one-shot override can't switch providers. '{{model}}' belongs to a different provider — run '/model {{model}}' first, then send your prompt.":
1268
+ "內聯一次性覆寫無法切換 provider。'{{model}}' 屬於另一個 provider——請先執行 '/model {{model}}',再發送你的提示。",
1235
1269
  "⚠ '{{model}}' is not a known image-capable model; the vision bridge may fail on images.":
1236
1270
  "⚠ '{{model}}' 不是已知的圖像能力模型;視覺橋接處理圖片時可能會失敗。",
1237
1271
  'Set a lighter model for prompt suggestions and speculative execution':
@@ -1361,9 +1395,9 @@ export default {
1361
1395
  'Choose how to proceed with your session:': '選擇如何繼續您的會話:',
1362
1396
  'Start new chat session': '開始新的聊天會話',
1363
1397
  'Continue previous conversation': '繼續之前的對話',
1364
- '👋 Welcome back! (Last updated: {{timeAgo}})':
1365
- '👋 歡迎回來!(最後更新:{{timeAgo}})',
1366
- '🎯 Overall Goal:': '🎯 總體目標:',
1398
+ 'Welcome back! (Last updated: {{timeAgo}})':
1399
+ '歡迎回來!(最後更新:{{timeAgo}})',
1400
+ 'Overall Goal:': '總體目標:',
1367
1401
  'Connect a Provider': '連接服務商',
1368
1402
  'You must connect a provider to proceed. Press Ctrl+C again to exit.':
1369
1403
  '必須連接一個服務商才能繼續。再次按 Ctrl+C 退出',
@@ -1530,8 +1564,8 @@ export default {
1530
1564
  'Press Esc again to clear.': '再次按 Esc 清除',
1531
1565
  'Press ↑ to edit queued messages': '按 ↑ 編輯排隊消息',
1532
1566
  'No MCP servers configured.': '未配置 MCP servers',
1533
- ' MCP servers are starting up ({{count}} initializing)...':
1534
- ' MCP servers 正在啟動({{count}} 個正在初始化)...',
1567
+ ' MCP servers are starting up ({{count}} initializing)...':
1568
+ ' MCP servers 正在啟動({{count}} 個正在初始化)...',
1535
1569
  'Note: First startup may take longer. Tool availability will update automatically.':
1536
1570
  '注意:首次啟動可能需要更長時間。工具可用性將自動更新',
1537
1571
  'Configured MCP servers:': '已配置的 MCP servers:',
@@ -1554,7 +1588,7 @@ export default {
1554
1588
  'Prompts:': '提示:',
1555
1589
  'Resources:': '資源:',
1556
1590
  Blocked: '已阻止',
1557
- '💡 Tips:': '💡 提示:',
1591
+ ' Tips:': ' 提示:',
1558
1592
  Use: '使用',
1559
1593
  'to show server and tool descriptions': '顯示伺服器和工具描述',
1560
1594
  'to show tool parameter schemas': '顯示 tool parameter schemas',
@@ -1840,7 +1874,7 @@ export default {
1840
1874
  'Enter your Coding Plan API key: ': '請輸入您的 Coding Plan API Key:',
1841
1875
  'Select authentication method:': '選擇認證方式:',
1842
1876
  '\n=== Authentication Status ===\n': '\n=== 認證狀態 ===\n',
1843
- '⚠️ No authentication method configured.\n': '⚠️ 未配置認證方式。\n',
1877
+ ' No authentication method configured.\n': ' 未配置認證方式。\n',
1844
1878
  'Run one of the following commands to get started:\n':
1845
1879
  '運行以下命令之一開始配置:\n',
1846
1880
  ' qwen auth qwen-oauth - Authenticate with Qwen OAuth (discontinued)':
@@ -1862,8 +1896,8 @@ export default {
1862
1896
  ' Current Model: {{model}}': ' 當前模型:{{model}}',
1863
1897
  ' Config Version: {{version}}': ' 配置版本:{{version}}',
1864
1898
  ' Status: API key configured\n': ' 狀態:API Key 已配置\n',
1865
- '⚠️ Authentication Method: Alibaba Cloud Coding Plan (Incomplete)':
1866
- '⚠️ 認證方式:阿里雲百鍊 Coding Plan(不完整)',
1899
+ ' Authentication Method: Alibaba Cloud Coding Plan (Incomplete)':
1900
+ ' 認證方式:阿里雲百鍊 Coding Plan(不完整)',
1867
1901
  ' Issue: API key not found in environment or settings\n':
1868
1902
  ' 問題:在環境變量或設置中未找到 API Key\n',
1869
1903
  ' Run `qwen auth coding-plan` to re-configure.\n':
@@ -1881,6 +1915,8 @@ export default {
1881
1915
  '緊湊模式下隱藏工具輸出和思考過程,界面更簡潔(Ctrl+O 切換)。',
1882
1916
  'Press Ctrl+O to show full tool output': '按 Ctrl+O 查看詳細工具調用結果',
1883
1917
  'Switch to plan mode or exit plan mode': '切換到計劃模式或退出計劃模式',
1918
+ 'Set how hard reasoning-capable models think ({{tiers}}); mapped and clamped per provider.':
1919
+ '設定具備推理能力的模型思考的強度({{tiers}});依各供應商進行映射與鉗制。',
1884
1920
  'Set a goal — keep working until the condition is met':
1885
1921
  '設定目標 — 持續工作直到條件滿足',
1886
1922
  'Exited plan mode. Previous approval mode restored.':
package/locales/zh.js CHANGED
@@ -196,6 +196,7 @@ export default {
196
196
  'toolDisplayName.TaskStop': '停止任务',
197
197
  'toolDisplayName.TeamCreate': '创建团队',
198
198
  'toolDisplayName.TeamDelete': '删除团队',
199
+ 'toolDisplayName.TeamPlanApproval': '团队计划审批',
199
200
  'toolDisplayName.SendMessage': '发送消息',
200
201
  'toolDisplayName.StructuredOutput': '结构化输出',
201
202
  'toolDisplayName.Monitor': '监控',
@@ -498,7 +499,7 @@ export default {
498
499
  'Open in editor': '在编辑器中打开',
499
500
  'Edit tools': '编辑工具',
500
501
  'Edit color': '编辑颜色',
501
- ' Error:': ' 错误:',
502
+ ' Error:': ' 错误:',
502
503
  'Are you sure you want to delete agent "{{name}}"?':
503
504
  '您确定要删除智能体 "{{name}}" 吗?',
504
505
  // ============================================================================
@@ -506,12 +507,12 @@ export default {
506
507
  // ============================================================================
507
508
  'Project Level (.qwen/agents/)': '项目级 (.qwen/agents/)',
508
509
  'User Level (~/.qwen/agents/)': '用户级 (~/.qwen/agents/)',
509
- ' Subagent Created Successfully!': ' 子智能体创建成功!',
510
+ ' Subagent Created Successfully!': ' 子智能体创建成功!',
510
511
  'Subagent "{{name}}" has been saved to {{level}} level.':
511
512
  '子智能体 "{{name}}" 已保存到 {{level}} 级别。',
512
513
  'Name: ': '名称: ',
513
514
  'Location: ': '位置: ',
514
- ' Error saving subagent:': ' 保存子智能体时出错:',
515
+ ' Error saving subagent:': ' 保存子智能体时出错:',
515
516
  'Warnings:': '警告:',
516
517
  'Name "{{name}}" already exists at {{level}} level - will overwrite existing subagent':
517
518
  '名称 "{{name}}" 在 {{level}} 级别已存在 - 将覆盖现有子智能体',
@@ -629,6 +630,35 @@ export default {
629
630
  // ============================================================================
630
631
  // Commands - General (continued)
631
632
  // ============================================================================
633
+ 'Get or set any setting by dot-path key':
634
+ '通过点号路径键查看或设置任意配置项',
635
+ 'Invalid boolean value: "{{value}}". Use "true" or "false".':
636
+ '无效的布尔值:"{{value}}"。请使用 "true" 或 "false"。',
637
+ 'Cannot toggle a number setting. Provide a value: key=<number>.':
638
+ '无法切换数字类型的设置。请提供值:key=<number>。',
639
+ 'Invalid number value: "{{value}}".': '无效的数字值:"{{value}}"。',
640
+ 'Cannot toggle a string setting. Provide a value: key=<value>.':
641
+ '无法切换字符串类型的设置。请提供值:key=<value>。',
642
+ 'Cannot toggle an enum setting. Provide one of: {{options}}.':
643
+ '无法切换枚举类型的设置。请提供以下选项之一:{{options}}。',
644
+ 'Invalid enum value: "{{value}}". Valid values: {{options}}.':
645
+ '无效的枚举值:"{{value}}"。有效值:{{options}}。',
646
+ 'Setting "{{type}}" type cannot be set via /config. Edit settings.json directly.':
647
+ '"{{type}}" 类型的设置无法通过 /config 修改。请直接编辑 settings.json。',
648
+ 'Unsupported setting type: "{{type}}".': '不支持的设置类型:"{{type}}"。',
649
+ 'Available settings:': '可用设置:',
650
+ 'Unknown setting key: "{{key}}". Did you mean "{{suggestion}}"?':
651
+ '未知的设置键:"{{key}}"。您是不是想设置 "{{suggestion}}"?',
652
+ 'Unknown setting key: "{{key}}".': '未知的设置键:"{{key}}"。',
653
+ 'Failed to set "{{key}}": {{error}}': '设置 "{{key}}" 失败:{{error}}',
654
+ 'Set {{key}} = {{value}}': '已设置 {{key}} = {{value}}',
655
+ '(This setting requires a restart to take effect.)':
656
+ '(此设置需要重启才能生效。)',
657
+ '(Security-sensitive setting — verify you are not exposing credentials.)':
658
+ '(安全敏感设置 — 请确认您没有泄露凭据。)',
659
+ 'Setting tools.approvalMode to "yolo" is blocked via /config for security reasons. Edit settings.json directly if you understand the risks.':
660
+ '出于安全原因,禁止通过 /config 将 tools.approvalMode 设置为 "yolo"。如果您了解相关风险,请直接编辑 settings.json。',
661
+ '(empty)': '(空)',
632
662
  'View and edit Qwen Code settings': '查看和编辑 Qwen Code 设置',
633
663
  Settings: '设置',
634
664
  'To see changes, Qwen Code must be restarted. Press r to exit and apply changes now.':
@@ -1344,8 +1374,12 @@ export default {
1344
1374
  '切换此会话的模型(--fast 可设置建议模型)',
1345
1375
  'Switch the model for this session (--fast for suggestion model, --voice for voice transcription model, [model-id] to switch immediately).':
1346
1376
  '切换此会话的模型(--fast 可设置建议模型,--voice 可设置语音转写模型,[model-id] 可立即切换)',
1347
- 'Switch the model for this session (--fast for suggestion model, --voice for voice transcription model, --vision for the vision bridge model, [model-id] to switch immediately).':
1348
- '切换此会话的模型(--fast 可设置建议模型,--voice 可设置语音转写模型,--vision 可设置视觉桥接模型,[model-id] 可立即切换)',
1377
+ 'Switch the model for this session (--fast for suggestion model, --voice for voice transcription model, --vision for the vision bridge model, [model-id] to switch immediately, or [model-id] [prompt] to run a one-off prompt on another model; the inline prompt is sent verbatim without @file expansion).':
1378
+ '切换此会话的模型(--fast 可设置建议模型,--voice 可设置语音转写模型,--vision 可设置视觉桥接模型,[model-id] 可立即切换,或用 [model-id] [prompt] 在另一个模型上运行一次性提示;内联提示按原文发送,不展开 @file)',
1379
+ "Inline one-shot override isn't supported in this mode — run '/model {{model}}' first, then send your prompt.":
1380
+ "此模式不支持内联一次性覆盖——请先运行 '/model {{model}}',再发送你的提示。",
1381
+ "Inline one-shot override can't switch providers. '{{model}}' belongs to a different provider — run '/model {{model}}' first, then send your prompt.":
1382
+ "内联一次性覆盖无法切换 provider。'{{model}}' 属于另一个 provider——请先运行 '/model {{model}}',再发送你的提示。",
1349
1383
  "⚠ '{{model}}' is not a known image-capable model; the vision bridge may fail on images.":
1350
1384
  "⚠ '{{model}}' 不是已知的图像能力模型;视觉桥接处理图片时可能会失败。",
1351
1385
  'Set a lighter model for prompt suggestions and speculative execution':
@@ -1500,9 +1534,9 @@ export default {
1500
1534
  'Choose how to proceed with your session:': '选择如何继续您的会话:',
1501
1535
  'Start new chat session': '开始新的聊天会话',
1502
1536
  'Continue previous conversation': '继续之前的对话',
1503
- '👋 Welcome back! (Last updated: {{timeAgo}})':
1504
- '👋 欢迎回来!(最后更新:{{timeAgo}})',
1505
- '🎯 Overall Goal:': '🎯 总体目标:',
1537
+ 'Welcome back! (Last updated: {{timeAgo}})':
1538
+ '欢迎回来!(最后更新:{{timeAgo}})',
1539
+ 'Overall Goal:': '总体目标:',
1506
1540
  'Connect a Provider': '连接服务商',
1507
1541
  'You must connect a provider to proceed. Press Ctrl+C again to exit.':
1508
1542
  '必须连接一个服务商才能继续。再次按 Ctrl+C 退出',
@@ -1684,8 +1718,8 @@ export default {
1684
1718
  // MCP Status
1685
1719
  // ============================================================================
1686
1720
  'No MCP servers configured.': '未配置 MCP servers',
1687
- ' MCP servers are starting up ({{count}} initializing)...':
1688
- ' MCP servers 正在启动({{count}} 个正在初始化)...',
1721
+ ' MCP servers are starting up ({{count}} initializing)...':
1722
+ ' MCP servers 正在启动({{count}} 个正在初始化)...',
1689
1723
  'Note: First startup may take longer. Tool availability will update automatically.':
1690
1724
  '注意:首次启动可能需要更长时间。工具可用性将自动更新',
1691
1725
  'Configured MCP servers:': '已配置的 MCP servers:',
@@ -1708,7 +1742,7 @@ export default {
1708
1742
  'Prompts:': '提示:',
1709
1743
  'Resources:': '资源:',
1710
1744
  Blocked: '已阻止',
1711
- '💡 Tips:': '💡 提示:',
1745
+ ' Tips:': ' 提示:',
1712
1746
  Use: '使用',
1713
1747
  'to show server and tool descriptions': '显示服务器和工具描述',
1714
1748
  'to show tool parameter schemas': '显示 tool parameter schemas',
@@ -2047,7 +2081,7 @@ export default {
2047
2081
  'Enter your Coding Plan API key: ': '请输入您的 Coding Plan API Key:',
2048
2082
  'Select authentication method:': '选择认证方式:',
2049
2083
  '\n=== Authentication Status ===\n': '\n=== 认证状态 ===\n',
2050
- '⚠️ No authentication method configured.\n': '⚠️ 未配置认证方式。\n',
2084
+ ' No authentication method configured.\n': ' 未配置认证方式。\n',
2051
2085
  'Run one of the following commands to get started:\n':
2052
2086
  '运行以下命令之一开始配置:\n',
2053
2087
  ' qwen auth qwen-oauth - Authenticate with Qwen OAuth (discontinued)':
@@ -2068,8 +2102,8 @@ export default {
2068
2102
  ' Current Model: {{model}}': ' 当前模型:{{model}}',
2069
2103
  ' Config Version: {{version}}': ' 配置版本:{{version}}',
2070
2104
  ' Status: API key configured\n': ' 状态:API Key 已配置\n',
2071
- '⚠️ Authentication Method: Alibaba Cloud Coding Plan (Incomplete)':
2072
- '⚠️ 认证方式:阿里云百炼 Coding Plan(不完整)',
2105
+ ' Authentication Method: Alibaba Cloud Coding Plan (Incomplete)':
2106
+ ' 认证方式:阿里云百炼 Coding Plan(不完整)',
2073
2107
  ' Issue: API key not found in environment or settings\n':
2074
2108
  ' 问题:在环境变量或设置中未找到 API Key\n',
2075
2109
  ' Run `qwen auth coding-plan` to re-configure.\n':
@@ -2087,6 +2121,8 @@ export default {
2087
2121
  '紧凑模式下隐藏工具输出和思考过程,界面更简洁(Ctrl+O 切换)。',
2088
2122
  'Press Ctrl+O to show full tool output': '按 Ctrl+O 查看详细工具调用结果',
2089
2123
  'Switch to plan mode or exit plan mode': '切换到计划模式或退出计划模式',
2124
+ 'Set how hard reasoning-capable models think ({{tiers}}); mapped and clamped per provider.':
2125
+ '设置具备推理能力的模型思考的强度({{tiers}});按各提供方进行映射与钳制。',
2090
2126
  'Set a goal — keep working until the condition is met':
2091
2127
  '设定目标 — 持续工作直到条件满足',
2092
2128
  'Exited plan mode. Previous approval mode restored.':
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@qwen-code/audio-capture",
3
- "version": "0.19.3",
3
+ "version": "0.19.4-nightly.20260702.46814e4f1",
4
4
  "description": "Native microphone capture backend for Qwen Code voice input",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@qwen-code/qwen-code",
3
- "version": "0.19.3",
3
+ "version": "0.19.4-nightly.20260702.46814e4f1",
4
4
  "description": "Qwen Code - AI-powered coding assistant",
5
5
  "repository": {
6
6
  "type": "git",
@@ -11,8 +11,12 @@
11
11
  "bin": {
12
12
  "qwen": "cli-entry.js"
13
13
  },
14
+ "scripts": {
15
+ "postinstall": "node postinstall.js"
16
+ },
14
17
  "files": [
15
18
  "cli-entry.js",
19
+ "postinstall.js",
16
20
  "cli.js",
17
21
  "fzfWorker.js",
18
22
  "chunks",
@@ -23,17 +27,20 @@
23
27
  "locales",
24
28
  "examples",
25
29
  "bundled",
26
- "web-shell"
30
+ "web-shell",
31
+ "patches"
27
32
  ],
28
33
  "bundledDependencies": [
29
34
  "@qwen-code/audio-capture"
30
35
  ],
31
36
  "config": {
32
- "sandboxImageUri": "ghcr.io/qwenlm/qwen-code:0.19.3"
37
+ "sandboxImageUri": "ghcr.io/qwenlm/qwen-code:0.19.4-nightly.20260702.46814e4f1"
38
+ },
39
+ "dependencies": {
40
+ "patch-package": "^8.0.1"
33
41
  },
34
- "dependencies": {},
35
42
  "optionalDependencies": {
36
- "@qwen-code/audio-capture": "0.19.3",
43
+ "@qwen-code/audio-capture": "0.19.4-nightly.20260702.46814e4f1",
37
44
  "@lydell/node-pty": "1.2.0-beta.10",
38
45
  "@lydell/node-pty-darwin-arm64": "1.2.0-beta.10",
39
46
  "@lydell/node-pty-darwin-x64": "1.2.0-beta.10",
@@ -46,7 +53,9 @@
46
53
  "@teddyzhu/clipboard-linux-x64-gnu": "0.0.5",
47
54
  "@teddyzhu/clipboard-linux-arm64-gnu": "0.0.5",
48
55
  "@teddyzhu/clipboard-win32-x64-msvc": "0.0.5",
49
- "@teddyzhu/clipboard-win32-arm64-msvc": "0.0.5"
56
+ "@teddyzhu/clipboard-win32-arm64-msvc": "0.0.5",
57
+ "chrome-devtools-mcp": "1.4.0",
58
+ "puppeteer-core": "25.2.0"
50
59
  },
51
60
  "engines": {
52
61
  "node": ">=22.0.0"
@@ -0,0 +1,31 @@
1
+ diff --git a/node_modules/chrome-devtools-mcp/build/src/McpContext.js b/node_modules/chrome-devtools-mcp/build/src/McpContext.js
2
+ index 6fce02e..15d221d 100644
3
+ --- a/node_modules/chrome-devtools-mcp/build/src/McpContext.js
4
+ +++ b/node_modules/chrome-devtools-mcp/build/src/McpContext.js
5
+ @@ -78,8 +78,24 @@ export class McpContext {
6
+ const workers = await this.createExtensionServiceWorkersSnapshot();
7
+ await this.#networkCollector.init(pages);
8
+ await this.#consoleCollector.init(pages);
9
+ - await this.#devtoolsUniverseManager.init(pages);
10
+ - await this.#serviceWorkerConsoleCollector.init(workers);
11
+ + // qwen-code Plan C CDP tunnel (#5626): these two collectors call
12
+ + // page.createCDPSession() -> Target.attachToTarget, which a
13
+ + // chrome.debugger-backed CDP endpoint rejects with -32000 'Not allowed'
14
+ + // (Puppeteer #13251). Making each non-fatal lets the server start so the
15
+ + // page-level tools work; only performance_* / service-worker console
16
+ + // (which need the extra session) degrade.
17
+ + try {
18
+ + await this.#devtoolsUniverseManager.init(pages);
19
+ + }
20
+ + catch (error) {
21
+ + console.error('[qwen-code patch] devtoolsUniverseManager.init skipped:', error?.message ?? error);
22
+ + }
23
+ + try {
24
+ + await this.#serviceWorkerConsoleCollector.init(workers);
25
+ + }
26
+ + catch (error) {
27
+ + console.error('[qwen-code patch] serviceWorkerConsoleCollector.init skipped:', error?.message ?? error);
28
+ + }
29
+ }
30
+ dispose() {
31
+ this.#networkCollector.dispose();
package/postinstall.js ADDED
@@ -0,0 +1,50 @@
1
+ #!/usr/bin/env node
2
+ import { spawnSync } from 'node:child_process';
3
+ import { existsSync } from 'node:fs';
4
+ import { createRequire } from 'node:module';
5
+ import path from 'node:path';
6
+ import { fileURLToPath } from 'node:url';
7
+
8
+ const require = createRequire(import.meta.url);
9
+ const __dirname = path.dirname(fileURLToPath(import.meta.url));
10
+
11
+ function resolvePackageJson(packageName) {
12
+ try {
13
+ return require.resolve(packageName + '/package.json');
14
+ } catch {
15
+ return undefined;
16
+ }
17
+ }
18
+
19
+ function findInstallRoot(packageJsonPath) {
20
+ let dir = path.dirname(packageJsonPath);
21
+ while (dir !== path.parse(dir).root) {
22
+ const parent = path.dirname(dir);
23
+ if (path.basename(parent) === 'node_modules') {
24
+ return path.dirname(parent);
25
+ }
26
+ dir = parent;
27
+ }
28
+ return undefined;
29
+ }
30
+
31
+ const chromeDevtoolsMcpPackageJson = resolvePackageJson('chrome-devtools-mcp');
32
+ if (chromeDevtoolsMcpPackageJson) {
33
+ const installRoot = findInstallRoot(chromeDevtoolsMcpPackageJson);
34
+ const patchDir = path.join(__dirname, 'patches');
35
+ if (!installRoot || !existsSync(patchDir)) {
36
+ process.exit(0);
37
+ }
38
+ const relativePatchDir = path.relative(installRoot, patchDir) || '.';
39
+ const patchPackageBin = require.resolve('patch-package/index.js');
40
+ const result = spawnSync(
41
+ process.execPath,
42
+ [patchPackageBin, '--patch-dir', relativePatchDir, '--error-on-fail'],
43
+ { cwd: installRoot, stdio: 'inherit' },
44
+ );
45
+ if (result.signal) {
46
+ process.kill(process.pid, result.signal);
47
+ } else {
48
+ process.exit(result.status ?? 1);
49
+ }
50
+ }
@@ -1 +1 @@
1
- import{M as ln,N as an,O as Y,P as O,Q,R as un,S as y,T as tn,V as j,W as _,X as rn,Y as o,Z as sn,$ as on,a0 as fn}from"./mermaid.core-CPW_4UEF.js";function cn(l){return l.innerRadius}function yn(l){return l.outerRadius}function gn(l){return l.startAngle}function dn(l){return l.endAngle}function mn(l){return l&&l.padAngle}function pn(l,h,D,S,v,R,V,a){var E=D-l,i=S-h,n=V-v,d=a-R,u=d*E-n*i;if(!(u*u<y))return u=(n*(h-R)-d*(l-v))/u,[l+u*E,h+u*i]}function H(l,h,D,S,v,R,V){var a=l-D,E=h-S,i=(V?R:-R)/j(a*a+E*E),n=i*E,d=-i*a,u=l+n,s=h+d,f=D+n,c=S+d,W=(u+f)/2,t=(s+c)/2,m=f-u,g=c-s,A=m*m+g*g,T=v-R,P=u*c-f*s,I=(g<0?-1:1)*j(on(0,T*T*A-P*P)),M=(P*g-m*I)/A,N=(-P*m-g*I)/A,w=(P*g+m*I)/A,p=(-P*m+g*I)/A,x=M-W,e=N-t,r=w-W,X=p-t;return x*x+e*e>r*r+X*X&&(M=w,N=p),{cx:M,cy:N,x01:-n,y01:-d,x11:M*(v/T-1),y11:N*(v/T-1)}}function hn(){var l=cn,h=yn,D=Q(0),S=null,v=gn,R=dn,V=mn,a=null,E=ln(i);function i(){var n,d,u=+l.apply(this,arguments),s=+h.apply(this,arguments),f=v.apply(this,arguments)-un,c=R.apply(this,arguments)-un,W=rn(c-f),t=c>f;if(a||(a=n=E()),s<u&&(d=s,s=u,u=d),!(s>y))a.moveTo(0,0);else if(W>tn-y)a.moveTo(s*Y(f),s*O(f)),a.arc(0,0,s,f,c,!t),u>y&&(a.moveTo(u*Y(c),u*O(c)),a.arc(0,0,u,c,f,t));else{var m=f,g=c,A=f,T=c,P=W,I=W,M=V.apply(this,arguments)/2,N=M>y&&(S?+S.apply(this,arguments):j(u*u+s*s)),w=_(rn(s-u)/2,+D.apply(this,arguments)),p=w,x=w,e,r;if(N>y){var X=sn(N/u*O(M)),z=sn(N/s*O(M));(P-=X*2)>y?(X*=t?1:-1,A+=X,T-=X):(P=0,A=T=(f+c)/2),(I-=z*2)>y?(z*=t?1:-1,m+=z,g-=z):(I=0,m=g=(f+c)/2)}var Z=s*Y(m),$=s*O(m),B=u*Y(T),C=u*O(T);if(w>y){var F=s*Y(g),G=s*O(g),J=u*Y(A),K=u*O(A),q;if(W<an)if(q=pn(Z,$,J,K,F,G,B,C)){var L=Z-q[0],U=$-q[1],k=F-q[0],b=G-q[1],nn=1/O(fn((L*k+U*b)/(j(L*L+U*U)*j(k*k+b*b)))/2),en=j(q[0]*q[0]+q[1]*q[1]);p=_(w,(u-en)/(nn-1)),x=_(w,(s-en)/(nn+1))}else p=x=0}I>y?x>y?(e=H(J,K,Z,$,s,x,t),r=H(F,G,B,C,s,x,t),a.moveTo(e.cx+e.x01,e.cy+e.y01),x<w?a.arc(e.cx,e.cy,x,o(e.y01,e.x01),o(r.y01,r.x01),!t):(a.arc(e.cx,e.cy,x,o(e.y01,e.x01),o(e.y11,e.x11),!t),a.arc(0,0,s,o(e.cy+e.y11,e.cx+e.x11),o(r.cy+r.y11,r.cx+r.x11),!t),a.arc(r.cx,r.cy,x,o(r.y11,r.x11),o(r.y01,r.x01),!t))):(a.moveTo(Z,$),a.arc(0,0,s,m,g,!t)):a.moveTo(Z,$),!(u>y)||!(P>y)?a.lineTo(B,C):p>y?(e=H(B,C,F,G,u,-p,t),r=H(Z,$,J,K,u,-p,t),a.lineTo(e.cx+e.x01,e.cy+e.y01),p<w?a.arc(e.cx,e.cy,p,o(e.y01,e.x01),o(r.y01,r.x01),!t):(a.arc(e.cx,e.cy,p,o(e.y01,e.x01),o(e.y11,e.x11),!t),a.arc(0,0,u,o(e.cy+e.y11,e.cx+e.x11),o(r.cy+r.y11,r.cx+r.x11),t),a.arc(r.cx,r.cy,p,o(r.y11,r.x11),o(r.y01,r.x01),!t))):a.arc(0,0,u,T,A,t)}if(a.closePath(),n)return a=null,n+""||null}return i.centroid=function(){var n=(+l.apply(this,arguments)+ +h.apply(this,arguments))/2,d=(+v.apply(this,arguments)+ +R.apply(this,arguments))/2-an/2;return[Y(d)*n,O(d)*n]},i.innerRadius=function(n){return arguments.length?(l=typeof n=="function"?n:Q(+n),i):l},i.outerRadius=function(n){return arguments.length?(h=typeof n=="function"?n:Q(+n),i):h},i.cornerRadius=function(n){return arguments.length?(D=typeof n=="function"?n:Q(+n),i):D},i.padRadius=function(n){return arguments.length?(S=n==null?null:typeof n=="function"?n:Q(+n),i):S},i.startAngle=function(n){return arguments.length?(v=typeof n=="function"?n:Q(+n),i):v},i.endAngle=function(n){return arguments.length?(R=typeof n=="function"?n:Q(+n),i):R},i.padAngle=function(n){return arguments.length?(V=typeof n=="function"?n:Q(+n),i):V},i.context=function(n){return arguments.length?(a=n??null,i):a},i}export{hn as d};
1
+ import{M as ln,N as an,O as Y,P as O,Q,R as un,S as y,T as tn,V as j,W as _,X as rn,Y as o,Z as sn,$ as on,a0 as fn}from"./mermaid.core-sevQFoji.js";function cn(l){return l.innerRadius}function yn(l){return l.outerRadius}function gn(l){return l.startAngle}function dn(l){return l.endAngle}function mn(l){return l&&l.padAngle}function pn(l,h,D,S,v,R,V,a){var E=D-l,i=S-h,n=V-v,d=a-R,u=d*E-n*i;if(!(u*u<y))return u=(n*(h-R)-d*(l-v))/u,[l+u*E,h+u*i]}function H(l,h,D,S,v,R,V){var a=l-D,E=h-S,i=(V?R:-R)/j(a*a+E*E),n=i*E,d=-i*a,u=l+n,s=h+d,f=D+n,c=S+d,W=(u+f)/2,t=(s+c)/2,m=f-u,g=c-s,A=m*m+g*g,T=v-R,P=u*c-f*s,I=(g<0?-1:1)*j(on(0,T*T*A-P*P)),M=(P*g-m*I)/A,N=(-P*m-g*I)/A,w=(P*g+m*I)/A,p=(-P*m+g*I)/A,x=M-W,e=N-t,r=w-W,X=p-t;return x*x+e*e>r*r+X*X&&(M=w,N=p),{cx:M,cy:N,x01:-n,y01:-d,x11:M*(v/T-1),y11:N*(v/T-1)}}function hn(){var l=cn,h=yn,D=Q(0),S=null,v=gn,R=dn,V=mn,a=null,E=ln(i);function i(){var n,d,u=+l.apply(this,arguments),s=+h.apply(this,arguments),f=v.apply(this,arguments)-un,c=R.apply(this,arguments)-un,W=rn(c-f),t=c>f;if(a||(a=n=E()),s<u&&(d=s,s=u,u=d),!(s>y))a.moveTo(0,0);else if(W>tn-y)a.moveTo(s*Y(f),s*O(f)),a.arc(0,0,s,f,c,!t),u>y&&(a.moveTo(u*Y(c),u*O(c)),a.arc(0,0,u,c,f,t));else{var m=f,g=c,A=f,T=c,P=W,I=W,M=V.apply(this,arguments)/2,N=M>y&&(S?+S.apply(this,arguments):j(u*u+s*s)),w=_(rn(s-u)/2,+D.apply(this,arguments)),p=w,x=w,e,r;if(N>y){var X=sn(N/u*O(M)),z=sn(N/s*O(M));(P-=X*2)>y?(X*=t?1:-1,A+=X,T-=X):(P=0,A=T=(f+c)/2),(I-=z*2)>y?(z*=t?1:-1,m+=z,g-=z):(I=0,m=g=(f+c)/2)}var Z=s*Y(m),$=s*O(m),B=u*Y(T),C=u*O(T);if(w>y){var F=s*Y(g),G=s*O(g),J=u*Y(A),K=u*O(A),q;if(W<an)if(q=pn(Z,$,J,K,F,G,B,C)){var L=Z-q[0],U=$-q[1],k=F-q[0],b=G-q[1],nn=1/O(fn((L*k+U*b)/(j(L*L+U*U)*j(k*k+b*b)))/2),en=j(q[0]*q[0]+q[1]*q[1]);p=_(w,(u-en)/(nn-1)),x=_(w,(s-en)/(nn+1))}else p=x=0}I>y?x>y?(e=H(J,K,Z,$,s,x,t),r=H(F,G,B,C,s,x,t),a.moveTo(e.cx+e.x01,e.cy+e.y01),x<w?a.arc(e.cx,e.cy,x,o(e.y01,e.x01),o(r.y01,r.x01),!t):(a.arc(e.cx,e.cy,x,o(e.y01,e.x01),o(e.y11,e.x11),!t),a.arc(0,0,s,o(e.cy+e.y11,e.cx+e.x11),o(r.cy+r.y11,r.cx+r.x11),!t),a.arc(r.cx,r.cy,x,o(r.y11,r.x11),o(r.y01,r.x01),!t))):(a.moveTo(Z,$),a.arc(0,0,s,m,g,!t)):a.moveTo(Z,$),!(u>y)||!(P>y)?a.lineTo(B,C):p>y?(e=H(B,C,F,G,u,-p,t),r=H(Z,$,J,K,u,-p,t),a.lineTo(e.cx+e.x01,e.cy+e.y01),p<w?a.arc(e.cx,e.cy,p,o(e.y01,e.x01),o(r.y01,r.x01),!t):(a.arc(e.cx,e.cy,p,o(e.y01,e.x01),o(e.y11,e.x11),!t),a.arc(0,0,u,o(e.cy+e.y11,e.cx+e.x11),o(r.cy+r.y11,r.cx+r.x11),t),a.arc(r.cx,r.cy,p,o(r.y11,r.x11),o(r.y01,r.x01),!t))):a.arc(0,0,u,T,A,t)}if(a.closePath(),n)return a=null,n+""||null}return i.centroid=function(){var n=(+l.apply(this,arguments)+ +h.apply(this,arguments))/2,d=(+v.apply(this,arguments)+ +R.apply(this,arguments))/2-an/2;return[Y(d)*n,O(d)*n]},i.innerRadius=function(n){return arguments.length?(l=typeof n=="function"?n:Q(+n),i):l},i.outerRadius=function(n){return arguments.length?(h=typeof n=="function"?n:Q(+n),i):h},i.cornerRadius=function(n){return arguments.length?(D=typeof n=="function"?n:Q(+n),i):D},i.padRadius=function(n){return arguments.length?(S=n==null?null:typeof n=="function"?n:Q(+n),i):S},i.startAngle=function(n){return arguments.length?(v=typeof n=="function"?n:Q(+n),i):v},i.endAngle=function(n){return arguments.length?(R=typeof n=="function"?n:Q(+n),i):R},i.padAngle=function(n){return arguments.length?(V=typeof n=="function"?n:Q(+n),i):V},i.context=function(n){return arguments.length?(a=n??null,i):a},i}export{hn as d};