@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
@@ -2,13 +2,13 @@
2
2
  "use strict";
3
3
  import {
4
4
  escapeAnsiCtrlCodes
5
- } from "./chunk-JJXWTVSK.js";
5
+ } from "./chunk-XHZKDN7M.js";
6
6
  import {
7
7
  wrapper_default
8
8
  } from "./chunk-H6BD2ELD.js";
9
9
  import {
10
10
  createDebugLogger
11
- } from "./chunk-UX4SGCGN.js";
11
+ } from "./chunk-AVQDCKNF.js";
12
12
  import {
13
13
  init_esbuild_shims
14
14
  } from "./chunk-A4BMJM77.js";
@@ -2,16 +2,20 @@
2
2
  "use strict";
3
3
  import {
4
4
  createTask
5
- } from "./chunk-QLDPRILK.js";
5
+ } from "./chunk-G7OQ3RFJ.js";
6
+ import {
7
+ getPlanRequiredTeammatePreApprovalMessage,
8
+ isPlanRequiredTeammateAwaitingApproval
9
+ } from "./chunk-BPFJQGY7.js";
6
10
  import {
7
11
  resolveActiveTeamName
8
- } from "./chunk-LD2XBG6Z.js";
12
+ } from "./chunk-GO6LNQXT.js";
9
13
  import {
10
14
  BaseDeclarativeTool,
11
15
  BaseToolInvocation,
12
16
  ToolDisplayNames,
13
17
  ToolNames
14
- } from "./chunk-BX5YO7UW.js";
18
+ } from "./chunk-MTNTVOJR.js";
15
19
  import {
16
20
  init_esbuild_shims
17
21
  } from "./chunk-A4BMJM77.js";
@@ -69,6 +73,16 @@ var TaskCreateInvocation = class extends BaseToolInvocation {
69
73
  return Promise.resolve(details);
70
74
  }
71
75
  async execute() {
76
+ if (isPlanRequiredTeammateAwaitingApproval(this.config)) {
77
+ const msg = getPlanRequiredTeammatePreApprovalMessage(
78
+ ToolNames.TASK_CREATE
79
+ );
80
+ return {
81
+ llmContent: msg,
82
+ returnDisplay: msg,
83
+ error: { message: msg }
84
+ };
85
+ }
72
86
  const teamName = resolveActiveTeamName(
73
87
  this.config.getTeamContext()?.teamName
74
88
  );
@@ -2,24 +2,24 @@
2
2
  "use strict";
3
3
  import {
4
4
  t
5
- } from "./chunk-R5OP2ATH.js";
5
+ } from "./chunk-JZG7VB6C.js";
6
6
  import {
7
7
  computeThresholds,
8
8
  getCoreSystemPrompt
9
- } from "./chunk-YAINVQ3Q.js";
9
+ } from "./chunk-A5OPLHFM.js";
10
10
  import {
11
11
  buildSkillLlmContent
12
- } from "./chunk-HYCC3XM3.js";
12
+ } from "./chunk-B236XPGF.js";
13
13
  import {
14
14
  DiscoveredMCPTool,
15
15
  uiTelemetryService
16
- } from "./chunk-QNKBEJO2.js";
16
+ } from "./chunk-UA6XBZT7.js";
17
17
  import {
18
18
  ToolNames
19
- } from "./chunk-BX5YO7UW.js";
19
+ } from "./chunk-MTNTVOJR.js";
20
20
  import {
21
21
  DEFAULT_TOKEN_LIMIT
22
- } from "./chunk-U3KSMM7G.js";
22
+ } from "./chunk-YTFBURQD.js";
23
23
  import {
24
24
  init_esbuild_shims
25
25
  } from "./chunk-A4BMJM77.js";
@@ -145,7 +145,10 @@ ${skill.level}
145
145
  };
146
146
  });
147
147
  const skillsTokens = skillToolDefinitionTokens + loadedBodiesTokens;
148
- const thresholds = computeThresholds(contextWindowSize);
148
+ const thresholds = computeThresholds(
149
+ contextWindowSize,
150
+ config.getAutoCompactThreshold()
151
+ );
149
152
  const autocompactBuffer = Math.max(
150
153
  0,
151
154
  Math.round(contextWindowSize - thresholds.auto)
@@ -4,14 +4,18 @@ import {
4
4
  resolveModelConfig,
5
5
  resolveProviderProtocol,
6
6
  stripRuntimeSnapshotPrefix
7
- } from "./chunk-YAINVQ3Q.js";
7
+ } from "./chunk-A5OPLHFM.js";
8
8
  import {
9
9
  external_exports
10
10
  } from "./chunk-K5PGHDBN.js";
11
11
  import {
12
12
  AuthType,
13
13
  MODEL_GENERATION_CONFIG_FIELDS
14
- } from "./chunk-QNKBEJO2.js";
14
+ } from "./chunk-UA6XBZT7.js";
15
+ import {
16
+ REASONING_EFFORT_TIERS,
17
+ normalizeReasoningEffort
18
+ } from "./chunk-SIUQ3YYX.js";
15
19
  import {
16
20
  init_esbuild_shims
17
21
  } from "./chunk-A4BMJM77.js";
@@ -103,6 +107,19 @@ function parseAcpModelOption(input) {
103
107
  return { modelId: trimmed };
104
108
  }
105
109
  __name(parseAcpModelOption, "parseAcpModelOption");
110
+ function isInlineModelOverrideAllowed(config, modelId) {
111
+ const contentGeneratorConfig = config.getContentGeneratorConfig();
112
+ const authType = contentGeneratorConfig?.authType;
113
+ if (!authType) {
114
+ return false;
115
+ }
116
+ const activeBaseUrl = contentGeneratorConfig.baseUrl;
117
+ const activeEnvKey = contentGeneratorConfig.apiKeyEnvKey;
118
+ return config.getAvailableModelsForAuthType(authType).filter((m) => !m.fastOnly && !m.voiceOnly).some(
119
+ (m) => m.id === modelId && (m.baseUrl ?? void 0) === (activeBaseUrl ?? void 0) && (m.envKey ?? void 0) === (activeEnvKey ?? void 0)
120
+ );
121
+ }
122
+ __name(isInlineModelOverrideAllowed, "isInlineModelOverrideAllowed");
106
123
 
107
124
  // packages/cli/src/utils/modelConfigUtils.ts
108
125
  init_esbuild_shims();
@@ -311,6 +328,15 @@ function resolveCliGenerationConfig(inputs) {
311
328
  enableOpenAILogging,
312
329
  openAILoggingDir
313
330
  };
331
+ const rawReasoningEffort = settings.model?.reasoningEffort;
332
+ const reasoningEffort = normalizeReasoningEffort(rawReasoningEffort);
333
+ const invalidReasoningEffortWarning = rawReasoningEffort && !reasoningEffort ? `Ignoring invalid model.reasoningEffort "${rawReasoningEffort}"; expected one of: ${REASONING_EFFORT_TIERS.join(", ")}.` : void 0;
334
+ if (reasoningEffort && generationConfig.reasoning !== false) {
335
+ generationConfig.reasoning = {
336
+ ...generationConfig.reasoning ?? {},
337
+ effort: reasoningEffort
338
+ };
339
+ }
314
340
  return {
315
341
  model: resolved.config.model || "",
316
342
  apiKey: resolved.config.apiKey || "",
@@ -319,6 +345,7 @@ function resolveCliGenerationConfig(inputs) {
319
345
  sources: resolved.sources,
320
346
  warnings: [
321
347
  ...resolved.warnings,
348
+ ...invalidReasoningEffortWarning ? [invalidReasoningEffortWarning] : [],
322
349
  ...disambiguationWarning ? [disambiguationWarning] : [],
323
350
  ...ignoredGenerationConfigWarning ? [ignoredGenerationConfigWarning] : [],
324
351
  ...buildSkippedProviderWarnings(
@@ -335,6 +362,7 @@ export {
335
362
  sanitizeProviderBaseUrl,
336
363
  parseAcpBaseModelId,
337
364
  parseAcpModelOption,
365
+ isInlineModelOverrideAllowed,
338
366
  collectProviderModelsForProtocol,
339
367
  getAuthTypeFromEnv,
340
368
  resolveCliGenerationConfig
@@ -2,7 +2,7 @@
2
2
  "use strict";
3
3
  import {
4
4
  themeManager
5
- } from "./chunk-I4H7PRWQ.js";
5
+ } from "./chunk-HTWHAN44.js";
6
6
  import {
7
7
  init_esbuild_shims
8
8
  } from "./chunk-A4BMJM77.js";
@@ -5,14 +5,14 @@ import {
5
5
  isTranscribableVoiceModel,
6
6
  readVoiceLanguage,
7
7
  resolveVoiceTransport
8
- } from "./chunk-4LUZAKMK.js";
8
+ } from "./chunk-7KXAGQJ2.js";
9
9
  import {
10
10
  resolvePath
11
- } from "./chunk-BC3C4F3Q.js";
11
+ } from "./chunk-NIOPRZNN.js";
12
12
  import {
13
13
  createDebugLogger,
14
14
  isSubpath
15
- } from "./chunk-UX4SGCGN.js";
15
+ } from "./chunk-AVQDCKNF.js";
16
16
  import {
17
17
  init_esbuild_shims
18
18
  } from "./chunk-A4BMJM77.js";
@@ -4,7 +4,7 @@ import {
4
4
  ansiRegex,
5
5
  init_ansi_regex,
6
6
  stripAnsi
7
- } from "./chunk-YAINVQ3Q.js";
7
+ } from "./chunk-A5OPLHFM.js";
8
8
  import {
9
9
  init_esbuild_shims
10
10
  } from "./chunk-A4BMJM77.js";
@@ -249,6 +249,38 @@ var getCachedStringWidth = /* @__PURE__ */ __name((str) => {
249
249
  stringWidthCache.set(str, width);
250
250
  return width;
251
251
  }, "getCachedStringWidth");
252
+ function wrapToVisualLines(text, width) {
253
+ if (width <= 0) {
254
+ return [""];
255
+ }
256
+ const visualLines = [];
257
+ for (const logicalLine of text.split("\n")) {
258
+ if (logicalLine === "") {
259
+ visualLines.push("");
260
+ continue;
261
+ }
262
+ let currentLine = "";
263
+ let currentWidth = 0;
264
+ for (const char of logicalLine) {
265
+ const charWidth = getCachedStringWidth(char);
266
+ if (currentWidth + charWidth > width && currentWidth > 0) {
267
+ visualLines.push(currentLine);
268
+ currentLine = "";
269
+ currentWidth = 0;
270
+ }
271
+ currentLine += char;
272
+ currentWidth += charWidth;
273
+ }
274
+ if (currentLine) {
275
+ visualLines.push(currentLine);
276
+ }
277
+ }
278
+ if (visualLines.length === 0) {
279
+ visualLines.push("");
280
+ }
281
+ return visualLines;
282
+ }
283
+ __name(wrapToVisualLines, "wrapToVisualLines");
252
284
  var regex = ansiRegex();
253
285
  function escapeAnsiCtrlCodes(obj) {
254
286
  if (typeof obj === "string") {
@@ -386,6 +418,7 @@ export {
386
418
  cpSlice,
387
419
  stripUnsafeCharacters,
388
420
  getCachedStringWidth,
421
+ wrapToVisualLines,
389
422
  escapeAnsiCtrlCodes,
390
423
  sanitizeSensitiveText,
391
424
  sanitizeFilenameForDisplay
@@ -2,10 +2,10 @@
2
2
  "use strict";
3
3
  import {
4
4
  isTeamAutoMemPath
5
- } from "./chunk-RD6YJJJ6.js";
5
+ } from "./chunk-MOUXUCXQ.js";
6
6
  import {
7
7
  createDebugLogger
8
- } from "./chunk-UX4SGCGN.js";
8
+ } from "./chunk-AVQDCKNF.js";
9
9
  import {
10
10
  init_esbuild_shims
11
11
  } from "./chunk-A4BMJM77.js";
@@ -0,0 +1,367 @@
1
+ // Force strict mode and setup for ESM
2
+ "use strict";
3
+ import {
4
+ disableMouseEvents,
5
+ enableMouseEvents,
6
+ useKeypressContext
7
+ } from "./chunk-SCYK2YLI.js";
8
+ import {
9
+ use_stdin_default,
10
+ use_stdout_default
11
+ } from "./chunk-LOW52WYZ.js";
12
+ import {
13
+ require_react
14
+ } from "./chunk-KYMBIKIW.js";
15
+ import {
16
+ themeManager
17
+ } from "./chunk-HTWHAN44.js";
18
+ import {
19
+ init_esbuild_shims
20
+ } from "./chunk-A4BMJM77.js";
21
+ import {
22
+ __name,
23
+ __toESM
24
+ } from "./chunk-J2S4EL5Y.js";
25
+
26
+ // packages/cli/src/ui/contexts/SettingsContext.tsx
27
+ init_esbuild_shims();
28
+ var import_react = __toESM(require_react(), 1);
29
+ var SettingsContext = import_react.default.createContext(
30
+ void 0
31
+ );
32
+ var useSettings = /* @__PURE__ */ __name(() => {
33
+ const context = (0, import_react.useContext)(SettingsContext);
34
+ if (context === void 0) {
35
+ throw new Error("useSettings must be used within a SettingsProvider");
36
+ }
37
+ return context;
38
+ }, "useSettings");
39
+
40
+ // packages/cli/src/ui/hooks/useTerminalSize.ts
41
+ init_esbuild_shims();
42
+ var import_react2 = __toESM(require_react(), 1);
43
+ function useTerminalSize() {
44
+ const [size, setSize] = (0, import_react2.useState)({
45
+ columns: process.stdout.columns || 80,
46
+ rows: process.stdout.rows || 24
47
+ });
48
+ (0, import_react2.useEffect)(() => {
49
+ function updateSize() {
50
+ setSize({
51
+ columns: process.stdout.columns || 80,
52
+ rows: process.stdout.rows || 24
53
+ });
54
+ }
55
+ __name(updateSize, "updateSize");
56
+ process.stdout.on("resize", updateSize);
57
+ return () => {
58
+ process.stdout.off("resize", updateSize);
59
+ };
60
+ }, []);
61
+ return size;
62
+ }
63
+ __name(useTerminalSize, "useTerminalSize");
64
+
65
+ // packages/cli/src/ui/hooks/useMouseEvents.ts
66
+ init_esbuild_shims();
67
+ var import_react3 = __toESM(require_react(), 1);
68
+ var mouseModeRefs = /* @__PURE__ */ new Map();
69
+ function effectiveTracking(entry) {
70
+ if (entry.any > 0) return "any";
71
+ if (entry.button > 0) return "button";
72
+ return null;
73
+ }
74
+ __name(effectiveTracking, "effectiveTracking");
75
+ function reconcileMouseMode(stdout, entry) {
76
+ const desired = effectiveTracking(entry);
77
+ if (desired === entry.active) return;
78
+ if (entry.active) disableMouseEvents(stdout, entry.active);
79
+ if (desired) enableMouseEvents(stdout, desired);
80
+ entry.active = desired;
81
+ }
82
+ __name(reconcileMouseMode, "reconcileMouseMode");
83
+ var disableAllMouseModes = /* @__PURE__ */ __name(() => {
84
+ for (const [stdout, entry] of mouseModeRefs) {
85
+ if (entry.active) disableMouseEvents(stdout, entry.active);
86
+ }
87
+ mouseModeRefs.clear();
88
+ }, "disableAllMouseModes");
89
+ function acquireMouseMode(stdout, tracking) {
90
+ let entry = mouseModeRefs.get(stdout);
91
+ if (!entry) {
92
+ if (mouseModeRefs.size === 0) {
93
+ process.on("exit", disableAllMouseModes);
94
+ }
95
+ entry = { button: 0, any: 0, active: null };
96
+ mouseModeRefs.set(stdout, entry);
97
+ }
98
+ entry[tracking] += 1;
99
+ reconcileMouseMode(stdout, entry);
100
+ }
101
+ __name(acquireMouseMode, "acquireMouseMode");
102
+ function releaseMouseMode(stdout, tracking) {
103
+ const entry = mouseModeRefs.get(stdout);
104
+ if (!entry) return;
105
+ entry[tracking] = Math.max(0, entry[tracking] - 1);
106
+ reconcileMouseMode(stdout, entry);
107
+ if (entry.button === 0 && entry.any === 0) {
108
+ mouseModeRefs.delete(stdout);
109
+ if (mouseModeRefs.size === 0) {
110
+ process.removeListener("exit", disableAllMouseModes);
111
+ }
112
+ }
113
+ }
114
+ __name(releaseMouseMode, "releaseMouseMode");
115
+ function useMouseEvents(handler, { isActive, tracking = "button", bypassVpGate = false }) {
116
+ const { isRawModeSupported } = use_stdin_default();
117
+ const { stdout } = use_stdout_default();
118
+ const { subscribeMouse, unsubscribeMouse } = useKeypressContext();
119
+ const settings = (0, import_react3.useContext)(SettingsContext);
120
+ const isVpMode = settings?.merged.ui?.useTerminalBuffer ?? false;
121
+ const vpGateOpen = isVpMode || bypassVpGate;
122
+ const handlerRef = (0, import_react3.useRef)(handler);
123
+ handlerRef.current = handler;
124
+ const enabled = isActive && isRawModeSupported && vpGateOpen;
125
+ (0, import_react3.useEffect)(() => {
126
+ if (!enabled) return;
127
+ acquireMouseMode(stdout, tracking);
128
+ return () => {
129
+ releaseMouseMode(stdout, tracking);
130
+ };
131
+ }, [enabled, stdout, tracking]);
132
+ const mouseCallback = (0, import_react3.useCallback)((event) => {
133
+ handlerRef.current(event);
134
+ }, []);
135
+ (0, import_react3.useEffect)(() => {
136
+ if (!enabled) return;
137
+ subscribeMouse(mouseCallback);
138
+ return () => unsubscribeMouse(mouseCallback);
139
+ }, [enabled, subscribeMouse, unsubscribeMouse, mouseCallback]);
140
+ }
141
+ __name(useMouseEvents, "useMouseEvents");
142
+
143
+ // packages/cli/src/ui/colors.ts
144
+ init_esbuild_shims();
145
+ var Colors = {
146
+ get type() {
147
+ return themeManager.getActiveTheme().colors.type;
148
+ },
149
+ get Foreground() {
150
+ return themeManager.getActiveTheme().colors.Foreground;
151
+ },
152
+ get Background() {
153
+ return themeManager.getActiveTheme().colors.Background;
154
+ },
155
+ get LightBlue() {
156
+ return themeManager.getActiveTheme().colors.LightBlue;
157
+ },
158
+ get AccentBlue() {
159
+ return themeManager.getActiveTheme().colors.AccentBlue;
160
+ },
161
+ get AccentPurple() {
162
+ return themeManager.getActiveTheme().colors.AccentPurple;
163
+ },
164
+ get AccentCyan() {
165
+ return themeManager.getActiveTheme().colors.AccentCyan;
166
+ },
167
+ get AccentGreen() {
168
+ return themeManager.getActiveTheme().colors.AccentGreen;
169
+ },
170
+ get AccentYellow() {
171
+ return themeManager.getActiveTheme().colors.AccentYellow;
172
+ },
173
+ get AccentRed() {
174
+ return themeManager.getActiveTheme().colors.AccentRed;
175
+ },
176
+ get AccentYellowDim() {
177
+ return themeManager.getActiveTheme().colors.AccentYellowDim;
178
+ },
179
+ get AccentRedDim() {
180
+ return themeManager.getActiveTheme().colors.AccentRedDim;
181
+ },
182
+ get DiffAdded() {
183
+ return themeManager.getActiveTheme().colors.DiffAdded;
184
+ },
185
+ get DiffRemoved() {
186
+ return themeManager.getActiveTheme().colors.DiffRemoved;
187
+ },
188
+ get Comment() {
189
+ return themeManager.getActiveTheme().colors.Comment;
190
+ },
191
+ get Gray() {
192
+ return themeManager.getActiveTheme().colors.Gray;
193
+ },
194
+ get GradientColors() {
195
+ return themeManager.getActiveTheme().colors.GradientColors;
196
+ }
197
+ };
198
+
199
+ // packages/cli/src/ui/utils/measure-element-position.ts
200
+ init_esbuild_shims();
201
+
202
+ // packages/cli/src/ui/utils/list-mouse.ts
203
+ init_esbuild_shims();
204
+ function frameAnchor(terminalHeight, frameHeight) {
205
+ return Math.min(0, terminalHeight - frameHeight);
206
+ }
207
+ __name(frameAnchor, "frameAnchor");
208
+ function terminalRowToLayoutRow(terminalRow1Based, anchor) {
209
+ return terminalRow1Based - 1 - anchor;
210
+ }
211
+ __name(terminalRowToLayoutRow, "terminalRowToLayoutRow");
212
+ function findItemAtLayoutRow(rects, layoutRow) {
213
+ for (const rect of rects) {
214
+ if (layoutRow >= rect.top && layoutRow < rect.top + rect.height) {
215
+ return rect.index;
216
+ }
217
+ }
218
+ return null;
219
+ }
220
+ __name(findItemAtLayoutRow, "findItemAtLayoutRow");
221
+
222
+ // packages/cli/src/ui/utils/measure-element-position.ts
223
+ function measureElementPosition(node) {
224
+ const { yogaNode } = node;
225
+ if (!yogaNode) {
226
+ return { x: 0, y: 0, width: 0, height: 0 };
227
+ }
228
+ let x = yogaNode.getComputedLeft();
229
+ let y = yogaNode.getComputedTop();
230
+ let current = node.parentNode;
231
+ while (current) {
232
+ if (current.yogaNode) {
233
+ x += current.yogaNode.getComputedLeft();
234
+ y += current.yogaNode.getComputedTop();
235
+ }
236
+ current = current.parentNode;
237
+ }
238
+ return {
239
+ x,
240
+ y,
241
+ width: yogaNode.getComputedWidth(),
242
+ height: yogaNode.getComputedHeight()
243
+ };
244
+ }
245
+ __name(measureElementPosition, "measureElementPosition");
246
+ function measureFrameHeight(node) {
247
+ let root = node;
248
+ let current = node;
249
+ while (current) {
250
+ root = current;
251
+ current = current.parentNode;
252
+ }
253
+ return root.yogaNode?.getComputedHeight() ?? 0;
254
+ }
255
+ __name(measureFrameHeight, "measureFrameHeight");
256
+ function layoutRowForEvent(node, terminalRow1Based, terminalHeight) {
257
+ const anchor = frameAnchor(terminalHeight, measureFrameHeight(node));
258
+ return terminalRowToLayoutRow(terminalRow1Based, anchor);
259
+ }
260
+ __name(layoutRowForEvent, "layoutRowForEvent");
261
+
262
+ // packages/cli/src/ui/components/shared/RowMouseController.tsx
263
+ init_esbuild_shims();
264
+ var import_react4 = __toESM(require_react(), 1);
265
+ function RowMouseController({
266
+ containerRef,
267
+ itemRefs,
268
+ scrollOffset,
269
+ isDisabled,
270
+ onHoverIndex,
271
+ onSelectIndex
272
+ }) {
273
+ const { rows: terminalHeight } = useTerminalSize();
274
+ const resolveIndex = (0, import_react4.useCallback)(
275
+ (event) => {
276
+ const container = containerRef.current;
277
+ if (!container) return null;
278
+ const containerRect = measureElementPosition(container);
279
+ const col0 = event.col - 1;
280
+ if (containerRect.width > 0 && (col0 < containerRect.x || col0 >= containerRect.x + containerRect.width)) {
281
+ return null;
282
+ }
283
+ const layoutRow = layoutRowForEvent(container, event.row, terminalHeight);
284
+ const rects = [];
285
+ const nodes = itemRefs.current;
286
+ for (let visiblePos = 0; visiblePos < nodes.length; visiblePos++) {
287
+ const node = nodes[visiblePos];
288
+ if (!node) continue;
289
+ const rect = measureElementPosition(node);
290
+ if (rect.height <= 0) continue;
291
+ rects.push({
292
+ index: scrollOffset + visiblePos,
293
+ top: rect.y,
294
+ height: rect.height
295
+ });
296
+ }
297
+ return findItemAtLayoutRow(rects, layoutRow);
298
+ },
299
+ [containerRef, itemRefs, scrollOffset, terminalHeight]
300
+ );
301
+ const handleMouse = (0, import_react4.useCallback)(
302
+ (event) => {
303
+ if (event.name !== "move" && event.name !== "left-press") return;
304
+ const index = resolveIndex(event);
305
+ if (index === null || isDisabled?.(index)) return;
306
+ if (event.name === "move") {
307
+ onHoverIndex(index);
308
+ } else {
309
+ onSelectIndex(index);
310
+ }
311
+ },
312
+ [resolveIndex, isDisabled, onHoverIndex, onSelectIndex]
313
+ );
314
+ useMouseEvents(handleMouse, { isActive: true, tracking: "any" });
315
+ return null;
316
+ }
317
+ __name(RowMouseController, "RowMouseController");
318
+
319
+ export {
320
+ SettingsContext,
321
+ useSettings,
322
+ useTerminalSize,
323
+ Colors,
324
+ useMouseEvents,
325
+ measureElementPosition,
326
+ layoutRowForEvent,
327
+ RowMouseController
328
+ };
329
+ /**
330
+ * @license
331
+ * Copyright 2025 Google LLC
332
+ * SPDX-License-Identifier: Apache-2.0
333
+ */
334
+ /**
335
+ * @license
336
+ * Copyright 2025 Qwen
337
+ * SPDX-License-Identifier: Apache-2.0
338
+ *
339
+ * Inspired by gemini-cli's MouseContext (Google LLC, Apache-2.0): enable SGR
340
+ * mouse mode while at least one subscriber is active, parse mouse sequences
341
+ * out of the KeypressContext pipeline, call each handler, restore on cleanup.
342
+ */
343
+ /**
344
+ * @license
345
+ * Copyright 2025 Qwen
346
+ * SPDX-License-Identifier: Apache-2.0
347
+ *
348
+ * Pure geometry helper for mapping a terminal mouse row onto a vertical list of
349
+ * items. The DOM measurement (reading yoga layout via measureElementPosition)
350
+ * lives in the component that owns the refs; this is pure arithmetic so it can
351
+ * be unit-tested without a renderer.
352
+ */
353
+ /**
354
+ * @license
355
+ * Copyright 2025 Qwen Team
356
+ * SPDX-License-Identifier: Apache-2.0
357
+ *
358
+ * Shim for ink PR #968 (vadimdemedes/ink#968): extends measureElement()
359
+ * to return {x, y, width, height}. Once the upstream PR is merged and
360
+ * ink is upgraded, replace usages with `measureElement` from 'ink'
361
+ * and delete this file.
362
+ */
363
+ /**
364
+ * @license
365
+ * Copyright 2025 Qwen
366
+ * SPDX-License-Identifier: Apache-2.0
367
+ */