@qwen-code/qwen-code 0.21.10 → 0.21.11

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 (367) hide show
  1. package/bundled/coordinate/SKILL.md +52 -0
  2. package/bundled/qc-helper/docs/configuration/model-providers.md +10 -8
  3. package/bundled/qc-helper/docs/extension/_meta.ts +1 -0
  4. package/bundled/qc-helper/docs/extension/agent-plugins.md +50 -0
  5. package/bundled/qc-helper/docs/extension/extension-releasing.md +3 -3
  6. package/bundled/qc-helper/docs/extension/introduction.md +17 -3
  7. package/bundled/qc-helper/docs/features/_meta.ts +1 -0
  8. package/bundled/qc-helper/docs/features/arena.md +4 -3
  9. package/bundled/qc-helper/docs/features/commands.md +7 -6
  10. package/bundled/qc-helper/docs/features/dual-output.md +5 -0
  11. package/bundled/qc-helper/docs/features/headless.md +8 -0
  12. package/bundled/qc-helper/docs/features/multi-agent-coordination.md +30 -0
  13. package/bundled/qc-helper/docs/qwen-serve.md +7 -7
  14. package/bundled/review/SKILL.md +17 -7
  15. package/chunks/{MaxSizedBox-FKXYULMW.js → MaxSizedBox-G7QPSZTF.js} +45 -44
  16. package/chunks/{StandaloneSessionPicker-OQS3M7AY.js → StandaloneSessionPicker-3CTEPV7S.js} +65 -64
  17. package/chunks/{acp-startup-profiler-VNTFWYAC.js → acp-startup-profiler-JMJBZDVO.js} +2 -2
  18. package/chunks/{acpAgent-AGS6HLQQ.js → acpAgent-43JURWOW.js} +1107 -285
  19. package/chunks/{agent-4NCVO27U.js → agent-MIY4LJJJ.js} +42 -41
  20. package/chunks/agent-headless-LWVA6GR5.js +87 -0
  21. package/chunks/{anthropicContentGenerator-D3Y4RFT4.js → anthropicContentGenerator-7HEP7Q5D.js} +8 -8
  22. package/chunks/{artifact-tool-N652YE4L.js → artifact-tool-M7UAJ5NT.js} +2 -2
  23. package/chunks/{askUserQuestion-ONW74PKJ.js → askUserQuestion-7G3LI3IZ.js} +2 -2
  24. package/chunks/{bridge-FHINXZMN.js → bridge-PTTJEBNP.js} +47 -46
  25. package/chunks/{ca-ZLKAB4K3.js → ca-4CQ6MYNQ.js} +2 -1
  26. package/chunks/{channel-management-service-PHELKOW2.js → channel-management-service-PQ6SU56M.js} +6 -6
  27. package/chunks/channel-settings-store-IKK34GMH.js +102 -0
  28. package/chunks/{channel-worker-group-WQP4RCDO.js → channel-worker-group-WBRE33ZV.js} +8 -7
  29. package/chunks/{channel-worker-manager-MRDFAKIM.js → channel-worker-manager-V4LYVTPH.js} +8 -7
  30. package/chunks/{channel-worker-supervisor-IVSDIMI4.js → channel-worker-supervisor-YDAGW2RP.js} +6 -5
  31. package/chunks/{chunk-2PLNY5TN.js → chunk-23GFHEM3.js} +4 -4
  32. package/chunks/{chunk-IIJEYBNH.js → chunk-25OFRBH2.js} +188 -58
  33. package/chunks/{chunk-F24A2JBM.js → chunk-2AAFGCWP.js} +690 -151
  34. package/chunks/{chunk-J6SZID63.js → chunk-2AZMF6G5.js} +2 -2
  35. package/chunks/{chunk-6LP743KE.js → chunk-2R2HYSUQ.js} +21 -102
  36. package/chunks/{chunk-DZUO626D.js → chunk-2XZWO53E.js} +3 -3
  37. package/chunks/{chunk-VKJ4KTPJ.js → chunk-3GCU5O2E.js} +1 -1
  38. package/chunks/{chunk-AQAJJMRR.js → chunk-3LHYTQ2R.js} +1 -1
  39. package/chunks/{chunk-QJMOAMXT.js → chunk-3SOTXJNO.js} +8 -8
  40. package/chunks/{chunk-URKIBIFC.js → chunk-45HPDU3F.js} +3 -3
  41. package/chunks/{chunk-OWMAZHIX.js → chunk-47FQVRCO.js} +1 -1
  42. package/chunks/{chunk-Z4JX4NSH.js → chunk-4C4QSXE3.js} +23 -23
  43. package/chunks/{chunk-IRZ2ZH72.js → chunk-4EX3DBFH.js} +4 -4
  44. package/chunks/{chunk-MFDYOYZZ.js → chunk-4MHDNGAV.js} +25 -2
  45. package/chunks/{chunk-ABVRJU3D.js → chunk-4PFKN7CQ.js} +7 -7
  46. package/chunks/{chunk-HV76SFIA.js → chunk-5HBFERG5.js} +3 -3
  47. package/chunks/{chunk-WAUGQKUU.js → chunk-6LYDH7VT.js} +9 -5
  48. package/chunks/{chunk-S6HYI3MF.js → chunk-6S52N6PG.js} +2 -2
  49. package/chunks/{chunk-FVKHVJZQ.js → chunk-732MOPEM.js} +1 -1
  50. package/chunks/{chunk-OCSFNUU4.js → chunk-7QE3QFU3.js} +8 -8
  51. package/chunks/{chunk-WCG5O7IP.js → chunk-7SUQZ7QH.js} +2 -2
  52. package/chunks/{chunk-QG3FFJYU.js → chunk-AAOONL5N.js} +1 -1
  53. package/chunks/{chunk-VSFKIRRW.js → chunk-AKLY5M2C.js} +4 -4
  54. package/chunks/{chunk-UVX4Y6IN.js → chunk-AQHNAA7E.js} +1 -1
  55. package/chunks/{chunk-IBUGFUXC.js → chunk-BIXG46YI.js} +12 -12
  56. package/chunks/{chunk-4TRQPFDP.js → chunk-BJKREW56.js} +6 -8
  57. package/chunks/{chunk-D27I6YJT.js → chunk-BNRNVMOT.js} +27 -18
  58. package/chunks/{chunk-IWTMYQ32.js → chunk-BR6TUEKJ.js} +9 -8
  59. package/chunks/{chunk-Q3JQ7OSU.js → chunk-BTYS2JAY.js} +1 -1
  60. package/chunks/{chunk-H6XPXXMH.js → chunk-CQ35AJ4Z.js} +252 -254
  61. package/chunks/{chunk-COBO5EBO.js → chunk-CTQE2NB2.js} +1 -1
  62. package/chunks/{chunk-P3BJLFSZ.js → chunk-DEKY5Y7V.js} +3 -3
  63. package/chunks/{chunk-Y3OVRWRY.js → chunk-DM4C3OX5.js} +1 -1
  64. package/chunks/{chunk-YWPSGJFI.js → chunk-DSKLWQHC.js} +2 -2
  65. package/chunks/{chunk-KKBPOU75.js → chunk-EFIMD5VA.js} +1 -1
  66. package/chunks/{chunk-CTJLZLB5.js → chunk-EN2J77G7.js} +1 -1
  67. package/chunks/{chunk-67EWJE77.js → chunk-ENEEQMGM.js} +1 -1
  68. package/chunks/{chunk-AEL7KN2O.js → chunk-EOBM4T2Z.js} +1 -1
  69. package/chunks/{chunk-NDU63YLI.js → chunk-ESVSQKPY.js} +4 -4
  70. package/chunks/{chunk-CPG6P4GG.js → chunk-EYS3GGM3.js} +1 -1
  71. package/chunks/{chunk-4PYCZH2V.js → chunk-EYW54TBD.js} +3 -3
  72. package/chunks/{chunk-EBZ6BJTF.js → chunk-F4T5J34H.js} +1 -1
  73. package/chunks/{chunk-FOGU3LJX.js → chunk-F6AOBFUN.js} +1 -1
  74. package/chunks/{chunk-ZBVS26BY.js → chunk-FPGTNKCP.js} +7 -5
  75. package/chunks/{chunk-YF5MALI4.js → chunk-G64M7R2Y.js} +5 -5
  76. package/chunks/{chunk-EI3HZX6C.js → chunk-GJJQV4PY.js} +1 -1
  77. package/chunks/{chunk-CKASRHZI.js → chunk-GLWWPFTW.js} +1 -1
  78. package/chunks/{chunk-GM463R2B.js → chunk-GZGDJ4E6.js} +1 -1
  79. package/chunks/{chunk-W5UC37EE.js → chunk-HHGQGTJQ.js} +2 -0
  80. package/chunks/chunk-HHJLM3WQ.js +41 -0
  81. package/chunks/{chunk-ZRBMO3C7.js → chunk-HMCSRTDY.js} +1 -1
  82. package/chunks/{chunk-L2AFWWJE.js → chunk-HUE2M6VI.js} +50 -5
  83. package/chunks/{chunk-LLCWZQCU.js → chunk-HZV75ET2.js} +3 -3
  84. package/chunks/{chunk-6ZRFAKXK.js → chunk-IEP44U2R.js} +1 -1
  85. package/chunks/{chunk-AOHJKPKL.js → chunk-IQFYO5BF.js} +1 -1
  86. package/chunks/{chunk-UDXSXLER.js → chunk-IW6RQPQB.js} +14 -4
  87. package/chunks/{chunk-XCWO3SMQ.js → chunk-IX7CFQGA.js} +3 -3
  88. package/chunks/{chunk-O3EU6GMH.js → chunk-J4EVBAB3.js} +27 -4
  89. package/chunks/{chunk-ZZCWJWTF.js → chunk-JHMFKJEP.js} +1 -1
  90. package/chunks/{chunk-XVHYA33G.js → chunk-JKEO6OQY.js} +4 -4
  91. package/chunks/{chunk-6Q5ABMTU.js → chunk-JLYYGKRN.js} +23 -19
  92. package/chunks/{chunk-KID7K6H2.js → chunk-JOXXPM3X.js} +6 -6
  93. package/chunks/{chunk-E2FPSSKP.js → chunk-JPA7IDTE.js} +57 -13
  94. package/chunks/{chunk-OQTXYMKW.js → chunk-JS4Q5NG5.js} +3 -3
  95. package/chunks/{chunk-PBRVUF5B.js → chunk-K7JW6V5O.js} +1 -1
  96. package/chunks/{chunk-3P2LV43B.js → chunk-KCCODSAA.js} +3 -3
  97. package/chunks/{chunk-DREZZAZM.js → chunk-KCDQGIHS.js} +13 -5
  98. package/chunks/{chunk-UEOKWYGY.js → chunk-KFCTC5IJ.js} +11 -11
  99. package/chunks/{chunk-M6HMMKVG.js → chunk-KPVVWKF3.js} +1 -1
  100. package/chunks/{chunk-MVUQRLOH.js → chunk-KT4OWAAZ.js} +3 -3
  101. package/chunks/{chunk-W4RQUHY3.js → chunk-L2GTEEEU.js} +142 -23
  102. package/chunks/{chunk-Q3AL4JQ3.js → chunk-LA3FF7RO.js} +2 -2
  103. package/chunks/{chunk-DX3RGJMS.js → chunk-LT532KF4.js} +71 -12
  104. package/chunks/{chunk-JT7XS4YW.js → chunk-M2NMFAFR.js} +1 -1
  105. package/chunks/{chunk-YTFDX4PR.js → chunk-M6NDLY2T.js} +1 -1
  106. package/chunks/{chunk-MIKXJYZB.js → chunk-MCHGE3EC.js} +305 -291
  107. package/chunks/{chunk-Y4R47ZUH.js → chunk-MDQSCFAZ.js} +7 -7
  108. package/chunks/{chunk-EKPKKXY2.js → chunk-MLZCPGDX.js} +1 -1
  109. package/chunks/{chunk-OIVKILPI.js → chunk-MPBRV3UU.js} +3 -0
  110. package/chunks/{chunk-VFMASYQA.js → chunk-MS7GNABG.js} +3 -0
  111. package/chunks/{chunk-2FRY5CRX.js → chunk-MWZYNOCG.js} +3 -3
  112. package/chunks/{chunk-ONSZH6VM.js → chunk-MZQ4I4AP.js} +2 -2
  113. package/chunks/{chunk-UMD7WQTR.js → chunk-N3ZWGKXN.js} +10 -8
  114. package/chunks/{chunk-7MH4J33A.js → chunk-N7NBMAMW.js} +2 -2
  115. package/chunks/{chunk-EUNWC2VS.js → chunk-NC4O6UE6.js} +2 -2
  116. package/chunks/{chunk-A7XMDZRI.js → chunk-NFSSQDB5.js} +5 -5
  117. package/chunks/{chunk-DCZEPFB4.js → chunk-NM3E6GGL.js} +3 -3
  118. package/chunks/{chunk-26CXSA6V.js → chunk-NQPYPDOY.js} +2 -2
  119. package/chunks/{chunk-HUWENAHO.js → chunk-NWPO6I7V.js} +1 -1
  120. package/chunks/{chunk-SR7RZ4MS.js → chunk-O4BBDP2G.js} +2 -2
  121. package/chunks/{chunk-ECWR5LQR.js → chunk-OC5SKSNX.js} +3 -3
  122. package/chunks/{chunk-VWKER4ZH.js → chunk-OGQERNHD.js} +3 -3
  123. package/chunks/{chunk-DA4HRSBW.js → chunk-OPBATTFQ.js} +1 -1
  124. package/chunks/{chunk-OONWZLFK.js → chunk-P7KCJGBR.js} +4 -4
  125. package/chunks/{chunk-OJUQF2PL.js → chunk-PBYVS6QT.js} +3 -3
  126. package/chunks/{chunk-VNNWAZSI.js → chunk-QG2IEE2E.js} +3 -3
  127. package/chunks/{chunk-KZ22NXBY.js → chunk-QGZN4RYB.js} +4 -4
  128. package/chunks/{chunk-2UUMVNYT.js → chunk-QTI7SRXI.js} +3 -3
  129. package/chunks/{chunk-B2GJNDTV.js → chunk-QUESTNOP.js} +1 -1
  130. package/chunks/{chunk-AAE6SR4Q.js → chunk-RUKNJEJO.js} +1 -1
  131. package/chunks/{chunk-NV65ZUVM.js → chunk-RUVZZKDH.js} +1 -1
  132. package/chunks/{chunk-QUI267ZP.js → chunk-SAQHDAUJ.js} +42 -8
  133. package/chunks/{chunk-4MKXUHXY.js → chunk-SUTP6CZA.js} +5 -5
  134. package/chunks/{chunk-UBX6NL47.js → chunk-T4576UW4.js} +3 -3
  135. package/chunks/{chunk-TZEZYNYD.js → chunk-T4FTABSW.js} +1 -1
  136. package/chunks/{chunk-SEZ556DZ.js → chunk-T6W4KACQ.js} +1 -1
  137. package/chunks/chunk-TKAEODJR.js +1279 -0
  138. package/chunks/{chunk-NV3F44FL.js → chunk-TNQLAI6I.js} +2 -2
  139. package/chunks/{chunk-F6WDTQ3M.js → chunk-TNS2M7VL.js} +5 -5
  140. package/chunks/{chunk-7GTMV7UE.js → chunk-TTB6GBJ6.js} +8323 -2227
  141. package/chunks/{chunk-YGT2AUJ7.js → chunk-U2JLICUY.js} +33 -16
  142. package/chunks/{chunk-NEOXOWYH.js → chunk-U7QUDFPD.js} +7 -7
  143. package/chunks/{chunk-QGNOFE5E.js → chunk-UEUE6LJX.js} +1 -1
  144. package/chunks/{chunk-EI3NWELG.js → chunk-UIZGNLBP.js} +4427 -3806
  145. package/chunks/{chunk-ZJ4W6SUY.js → chunk-UM57UTTV.js} +3 -3
  146. package/chunks/{chunk-EQL65XGA.js → chunk-V3LXMASR.js} +47 -21
  147. package/chunks/{chunk-LHEC5V6G.js → chunk-VRWOMUZM.js} +2 -2
  148. package/chunks/{chunk-5MZCSWI4.js → chunk-W2ITCESM.js} +176 -477
  149. package/chunks/{chunk-KONVMRK7.js → chunk-W2PNY24B.js} +1 -1
  150. package/chunks/{chunk-4WL6SY4F.js → chunk-X5GLCWPX.js} +1 -1
  151. package/chunks/{chunk-BSI645OU.js → chunk-XBLYC4MI.js} +3 -3
  152. package/chunks/{chunk-GNPNYXJB.js → chunk-XLQS3VI6.js} +2 -2
  153. package/chunks/{chunk-TRRF5BSP.js → chunk-XT6TGJFD.js} +1 -1
  154. package/chunks/{chunk-PYQADEFD.js → chunk-XTH2OMDS.js} +1 -1
  155. package/chunks/{chunk-47PEPJO7.js → chunk-XUMBOJC2.js} +3 -3
  156. package/chunks/{chunk-GWVUR3QZ.js → chunk-YIKMBYMT.js} +3 -3
  157. package/chunks/{chunk-WOJZWRAZ.js → chunk-YRLW2MSX.js} +1 -1
  158. package/chunks/{chunk-NRLFZWCT.js → chunk-YVVIFFU4.js} +3 -3
  159. package/chunks/chunk-Z7B6SRPM.js +32 -0
  160. package/chunks/{chunk-IA7TGCN2.js → chunk-ZV4XVYL3.js} +4 -4
  161. package/chunks/{chunk-PJRW65JO.js → chunk-ZWPWQEF5.js} +1 -1
  162. package/chunks/{computer-use-WQFK33Z3.js → computer-use-7TIKEXBX.js} +42 -41
  163. package/chunks/{config-utils-ULCSRMWD.js → config-utils-6MVJ54TY.js} +6 -6
  164. package/chunks/{contextCommand-7EOZND7C.js → contextCommand-5QKI7MRY.js} +44 -43
  165. package/chunks/{core-runtime-FGMQRM6E.js → core-runtime-USS7ZF3H.js} +42 -41
  166. package/chunks/{create-sub-session-QIDZUOPU.js → create-sub-session-Y4WYDZGC.js} +2 -2
  167. package/chunks/{create-sub-session-QM2K5HLZ.js → create-sub-session-ZD2F3BH2.js} +42 -41
  168. package/chunks/{cron-create-VONA5JYY.js → cron-create-ZOVA3CC2.js} +4 -4
  169. package/chunks/{cron-delete-5JXSP2MI.js → cron-delete-7Z3H4LJY.js} +4 -4
  170. package/chunks/{cron-list-KE4F2CIR.js → cron-list-UHGX3IQG.js} +4 -4
  171. package/chunks/{daemon-GWD7BT6E.js → daemon-Y3NOHFKQ.js} +38 -7
  172. package/chunks/daemon-status-provider-PMP4J7BC.js +103 -0
  173. package/chunks/daemon-trust-policy-2252VKXI.js +99 -0
  174. package/chunks/{daemon-trust-policy-monitor-6UKEABN5.js → daemon-trust-policy-monitor-OSGGKJXT.js} +49 -48
  175. package/chunks/{de-LIW4XVLN.js → de-UBEBKG6V.js} +2 -1
  176. package/chunks/{deferred-core-runtime-67GJXHXS.js → deferred-core-runtime-3VD4V6YZ.js} +42 -41
  177. package/chunks/{display-image-NQRSIBXM.js → display-image-ZE3GZNIK.js} +4 -4
  178. package/chunks/{dist-Z3CS4OVP.js → dist-AVUYBK7L.js} +11 -5
  179. package/chunks/{dist-6BMOAE3Z.js → dist-BNWP6IZL.js} +4 -4
  180. package/chunks/{dist-3NTTUAHT.js → dist-EFJILGIS.js} +3 -3
  181. package/chunks/{dist-EZE3V3Q7.js → dist-MAIUUIWN.js} +3 -3
  182. package/chunks/{dist-B2CGTW6T.js → dist-NPS52B2V.js} +3 -3
  183. package/chunks/{dist-J47AXBZC.js → dist-PKSRQAR2.js} +3 -3
  184. package/chunks/{dist-OTUO3AS2.js → dist-Q2WJ2IZU.js} +13 -5
  185. package/chunks/{dist-EWW3J4HQ.js → dist-ZWDH5HLS.js} +3 -3
  186. package/chunks/{earlyInputCapture-IWMYR6OB.js → earlyInputCapture-ER4HGLJN.js} +43 -42
  187. package/chunks/{edit-ZFGROCAF.js → edit-B3MT7O53.js} +42 -41
  188. package/chunks/{en-SY5GTIGX.js → en-X6YV7GME.js} +2 -1
  189. package/chunks/{enter-worktree-TZZZCDM5.js → enter-worktree-WVIYVSDJ.js} +42 -41
  190. package/chunks/{enterPlanMode-U77BI3R6.js → enterPlanMode-DDCIM6HA.js} +42 -41
  191. package/chunks/{environment-HC37DS2I.js → environment-LITGMOUP.js} +45 -44
  192. package/chunks/{errors-6AG54JPD.js → errors-E5CIOR2I.js} +44 -43
  193. package/chunks/{exit-worktree-UYYWFPNK.js → exit-worktree-NQ2A6URE.js} +42 -41
  194. package/chunks/exitPlanMode-YXSWN4D3.js +85 -0
  195. package/chunks/{fast-path-F5FSZ3O7.js → fast-path-PH3DBS6X.js} +3 -3
  196. package/chunks/{fast-path-settings-RPAVBD7P.js → fast-path-settings-LNOFM2YP.js} +2 -2
  197. package/chunks/{fr-RQFO7U4P.js → fr-VENTC2BS.js} +2 -1
  198. package/chunks/{gemini-NKQHYM36.js → gemini-4YPO4ADY.js} +88 -87
  199. package/chunks/{geminiContentGenerator-HCWZOUX3.js → geminiContentGenerator-GMSVVXOU.js} +6 -6
  200. package/chunks/{glob-3PDXKBAO.js → glob-3Y3VHLM2.js} +42 -41
  201. package/chunks/{goal-tools-SWNB6GP4.js → goal-tools-JDK2SNMV.js} +4 -4
  202. package/chunks/{grep-5HZKZYVD.js → grep-VUHUDZYG.js} +42 -41
  203. package/chunks/handleAutoUpdate-OBFFPWSJ.js +94 -0
  204. package/chunks/{i18n-Q27KKNDL.js → i18n-4PJA5KKU.js} +43 -42
  205. package/chunks/{image-gen-2Z2RJ6W7.js → image-gen-4IFV4HES.js} +10 -10
  206. package/chunks/initializer-ZTY3VSWL.js +100 -0
  207. package/chunks/{installationInfo-XXB75T7O.js → installationInfo-6USRNCD2.js} +43 -42
  208. package/chunks/{ja-KOZKHJHZ.js → ja-QHT4EQTO.js} +2 -1
  209. package/chunks/{keychain-token-storage-TVAMTNP7.js → keychain-token-storage-JTWUYFU7.js} +2 -2
  210. package/chunks/list-U2ZDKYWN.js +103 -0
  211. package/chunks/{list-agents-Z4WABFDZ.js → list-agents-4GQ2XNEU.js} +2 -2
  212. package/chunks/loadedSettingsAdapter-WW4HIVLO.js +97 -0
  213. package/chunks/{loggingContentGenerator-6NTFBM7Q.js → loggingContentGenerator-XXG6YWUE.js} +46 -27
  214. package/chunks/{loop-wakeup-UZ5RL5Y2.js → loop-wakeup-HOQI3K5D.js} +5 -5
  215. package/chunks/{ls-TVHDGIES.js → ls-O4VBQRG7.js} +4 -4
  216. package/chunks/{lsp-CVN6OQPI.js → lsp-APQJ5ZEZ.js} +2 -2
  217. package/chunks/{managed-npm-update-SPHYQUWZ.js → managed-npm-update-7GM2LPLL.js} +43 -42
  218. package/chunks/mcp-7KZW2T5P.js +97 -0
  219. package/chunks/{monitor-ZBBPAA54.js → monitor-RQROQHLD.js} +42 -41
  220. package/chunks/nonInteractiveCli-U7JNJGS6.js +163 -0
  221. package/chunks/{notebook-edit-5W3FW7Z2.js → notebook-edit-XQA6YCH2.js} +42 -41
  222. package/chunks/{openaiContentGenerator-TQANPEVZ.js → openaiContentGenerator-BZW2IB42.js} +29 -29
  223. package/chunks/{pidfile-EQOBLH4E.js → pidfile-NX5VZ3IK.js} +43 -42
  224. package/chunks/{processUtils-7XQG7EHS.js → processUtils-M635AD23.js} +2 -2
  225. package/chunks/{pt-U6AOCTMF.js → pt-VL3I5RNY.js} +2 -1
  226. package/chunks/{qwenContentGenerator-BKCPHHXU.js → qwenContentGenerator-KHJ73E2C.js} +48 -48
  227. package/chunks/{qwenOAuth2-BJ6PQKE6.js → qwenOAuth2-QMK25XO7.js} +9 -9
  228. package/chunks/read-file-6LKIKKXD.js +32 -0
  229. package/chunks/{read-mcp-resource-PZ4ZF6YL.js → read-mcp-resource-TJSJRH4F.js} +2 -2
  230. package/chunks/{record-artifact-P4HFMS7X.js → record-artifact-FXF5LHPE.js} +3 -3
  231. package/chunks/{resumeHistoryUtils-6N6XGJJW.js → resumeHistoryUtils-RR2KEVH5.js} +49 -48
  232. package/chunks/ripGrep-CF2WRBYV.js +85 -0
  233. package/chunks/{ru-CMX4UMYP.js → ru-4RCKL4PY.js} +2 -1
  234. package/chunks/{run-qwen-serve-BCKBCAMX.js → run-qwen-serve-L5TF57J4.js} +61 -50
  235. package/chunks/{runtime-E2437YKL.js → runtime-3RE3BPR4.js} +55 -54
  236. package/chunks/{scheduler-K3D5Z655.js → scheduler-LXQZAMYT.js} +44 -43
  237. package/chunks/{sdk-exporters-http-XVTZQRCE.js → sdk-exporters-http-7SYSCGEO.js} +3 -3
  238. package/chunks/{sdk-impl-7W7AKCS4.js → sdk-impl-VZI6M6EH.js} +6 -6
  239. package/chunks/{send-message-CAMSLG2L.js → send-message-RBYLV5NY.js} +6 -6
  240. package/chunks/{serve-IH4XR5IL.js → serve-5D4S7GIA.js} +49 -48
  241. package/chunks/{server-UD6INW7J.js → server-ILZB6TTC.js} +403 -178
  242. package/chunks/{session-GR4ZEVW4.js → session-SXCZITZ4.js} +114 -94
  243. package/chunks/{settings-5O24D3OJ.js → settings-4RQB3OVF.js} +48 -47
  244. package/chunks/{shell-UTLWLG5G.js → shell-FCTR3OI2.js} +42 -41
  245. package/chunks/{skill-QQAZL4VO.js → skill-IAKHPD5H.js} +19 -19
  246. package/chunks/{skill-settings-P3YHJVBZ.js → skill-settings-SOR23NOP.js} +48 -47
  247. package/chunks/spawnChannel-I6VAWYQJ.js +98 -0
  248. package/chunks/{standalone-update-QP742MGP.js → standalone-update-5NN3MTYH.js} +44 -43
  249. package/chunks/{startInteractiveUI-YCS6AEPN.js → startInteractiveUI-OYGL3NZJ.js} +590 -329
  250. package/chunks/{syntheticOutput-PEBJQYJV.js → syntheticOutput-D3Z64LJC.js} +3 -3
  251. package/chunks/{task-create-5NWCQSJF.js → task-create-URFZ5EUX.js} +10 -10
  252. package/chunks/{task-list-53265TRZ.js → task-list-6JDFMPUW.js} +5 -5
  253. package/chunks/{task-stop-FPCOIRYX.js → task-stop-HHUGCD25.js} +2 -2
  254. package/chunks/{task-update-5HN577LS.js → task-update-LCJM3EYG.js} +10 -10
  255. package/chunks/{team-create-WFH7OCDQ.js → team-create-J4JP6AXN.js} +44 -43
  256. package/chunks/{team-delete-MMQB4OSC.js → team-delete-PZGGBQLM.js} +5 -5
  257. package/chunks/{team-plan-approval-EGTT53MV.js → team-plan-approval-7BEAIR2H.js} +42 -41
  258. package/chunks/{terminal-image-renderer-BWRESAQ7.js → terminal-image-renderer-SGGTG5LN.js} +44 -43
  259. package/chunks/theme-manager-67TSB7LH.js +89 -0
  260. package/chunks/{todoWrite-JGV6VLOX.js → todoWrite-WINAZSZI.js} +4 -4
  261. package/chunks/{tool-search-TI5PTIBF.js → tool-search-XPOFDWOX.js} +19 -19
  262. package/chunks/{total-session-admission-66UDSOHO.js → total-session-admission-SZJFAM25.js} +47 -46
  263. package/chunks/{trustedFolders-4KYHA4IG.js → trustedFolders-44NTYYV4.js} +43 -42
  264. package/chunks/{update-relaunch-WB6LGIF2.js → update-relaunch-K33Q3WEH.js} +5 -5
  265. package/chunks/{updateCheck-LOS5GYFC.js → updateCheck-VBRNPLS4.js} +45 -44
  266. package/chunks/{useAutoAcceptIndicator-MHAPY52L.js → useAutoAcceptIndicator-AUNRB5S7.js} +52 -51
  267. package/chunks/{validateNonInterActiveAuth-QV22HNQU.js → validateNonInterActiveAuth-WTO36MTA.js} +83 -82
  268. package/chunks/{version-DALWZHKQ.js → version-JZA6HYPI.js} +1 -1
  269. package/chunks/{web-fetch-JMJVMYFE.js → web-fetch-LLHPV2IR.js} +19 -19
  270. package/chunks/{web-search-DNDUIPU5.js → web-search-4HCHRZ3U.js} +11 -11
  271. package/chunks/{workflow-JGNN64PM.js → workflow-YI74QTWW.js} +43 -42
  272. package/chunks/workspace-providers-status-CI3AO2BH.js +100 -0
  273. package/chunks/{workspace-registration-store-LRJG7QA4.js → workspace-registration-store-KPIKXDHA.js} +1 -1
  274. package/chunks/{workspace-registry-KVXIFM36.js → workspace-registry-XE22QDE6.js} +47 -46
  275. package/chunks/{workspace-service-PO4AAKKT.js → workspace-service-WI2FD72A.js} +54 -53
  276. package/chunks/workspace-skills-status-FFZU6FXL.js +100 -0
  277. package/chunks/{workspace-trust-reconciler-DOZPCVHG.js → workspace-trust-reconciler-GJLNXR2U.js} +54 -53
  278. package/chunks/write-file-IEAC3XC3.js +87 -0
  279. package/chunks/{zh-AGL2FVBI.js → zh-LMSTK4WD.js} +2 -1
  280. package/chunks/{zh-TW-KI66MHQY.js → zh-TW-SQ4HTSCW.js} +2 -1
  281. package/chunks/{zoom-image-CNC77ZMA.js → zoom-image-GTVVT25J.js} +15 -15
  282. package/cli.js +13 -13
  283. package/locales/ca.js +1 -0
  284. package/locales/de.js +1 -0
  285. package/locales/en.js +1 -0
  286. package/locales/fr.js +1 -0
  287. package/locales/ja.js +1 -0
  288. package/locales/pt.js +1 -0
  289. package/locales/ru.js +1 -0
  290. package/locales/zh-TW.js +1 -0
  291. package/locales/zh.js +1 -0
  292. package/package.json +3 -3
  293. package/web-shell/assets/{arc-CDk0d60K.js → arc-B13-S0Yo.js} +1 -1
  294. package/web-shell/assets/{architectureDiagram-3BPJPVTR-h-W3I2lP.js → architectureDiagram-3BPJPVTR-CHvWNlVW.js} +1 -1
  295. package/web-shell/assets/{blockDiagram-GPEHLZMM-D1pvSmZg.js → blockDiagram-GPEHLZMM-CXebOlXF.js} +1 -1
  296. package/web-shell/assets/{c4Diagram-AAUBKEIU-ByAm5ZNf.js → c4Diagram-AAUBKEIU-BQpx4y3Q.js} +1 -1
  297. package/web-shell/assets/channel-BB_Hm8Rf.js +1 -0
  298. package/web-shell/assets/{chunk-2J33WTMH-VrGPPOGV.js → chunk-2J33WTMH-Cak1exSv.js} +1 -1
  299. package/web-shell/assets/{chunk-4BX2VUAB-B7hTowgG.js → chunk-4BX2VUAB-BIc8BV5_.js} +1 -1
  300. package/web-shell/assets/{chunk-55IACEB6-j1Fq8DpE.js → chunk-55IACEB6-DoeJ5BL1.js} +1 -1
  301. package/web-shell/assets/{chunk-727SXJPM-UjABYpF2.js → chunk-727SXJPM-BDR_wYSu.js} +1 -1
  302. package/web-shell/assets/{chunk-AQP2D5EJ-D4uBItrs.js → chunk-AQP2D5EJ-BhRRGRq1.js} +1 -1
  303. package/web-shell/assets/{chunk-FMBD7UC4-DeFbKlb8.js → chunk-FMBD7UC4-BJGAwVXr.js} +1 -1
  304. package/web-shell/assets/{chunk-ND2GUHAM-rQJ8TIgT.js → chunk-ND2GUHAM-vhE73bsD.js} +1 -1
  305. package/web-shell/assets/{chunk-QZHKN3VN-DAGcRxvq.js → chunk-QZHKN3VN-BuTBZsdR.js} +1 -1
  306. package/web-shell/assets/classDiagram-4FO5ZUOK-B_hFK54Y.js +1 -0
  307. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-B_hFK54Y.js +1 -0
  308. package/web-shell/assets/{cose-bilkent-S5V4N54A-MaE7MJSt.js → cose-bilkent-S5V4N54A-CVHKipHP.js} +1 -1
  309. package/web-shell/assets/{dagre-BM42HDAG-DzijYGSb.js → dagre-BM42HDAG-C1DPa8SV.js} +1 -1
  310. package/web-shell/assets/{diagram-2AECGRRQ-WdbG7WnX.js → diagram-2AECGRRQ-BYP_QxkT.js} +1 -1
  311. package/web-shell/assets/{diagram-5GNKFQAL-NYutsBnw.js → diagram-5GNKFQAL-Cray7ruQ.js} +1 -1
  312. package/web-shell/assets/{diagram-KO2AKTUF-Dqg0eBY0.js → diagram-KO2AKTUF-Ds4vJANi.js} +1 -1
  313. package/web-shell/assets/{diagram-LMA3HP47-C7vRP2Lb.js → diagram-LMA3HP47-DxFrDykH.js} +1 -1
  314. package/web-shell/assets/{diagram-OG6HWLK6-B2sEPpPt.js → diagram-OG6HWLK6-BdIO-pF_.js} +1 -1
  315. package/web-shell/assets/{erDiagram-TEJ5UH35-a4zIbzm8.js → erDiagram-TEJ5UH35-5JA8KDYV.js} +1 -1
  316. package/web-shell/assets/{flowDiagram-I6XJVG4X-BK9y89ya.js → flowDiagram-I6XJVG4X-DL4drKro.js} +1 -1
  317. package/web-shell/assets/{ganttDiagram-6RSMTGT7-wUQTSNvV.js → ganttDiagram-6RSMTGT7-ijX2DD6_.js} +1 -1
  318. package/web-shell/assets/{gitGraphDiagram-PVQCEYII-Dnzt4SAi.js → gitGraphDiagram-PVQCEYII-_lPsFLFF.js} +1 -1
  319. package/web-shell/assets/index-BTwNYZkp.js +1785 -0
  320. package/web-shell/assets/{index-BA3wUcKL.js → index-C-YoqYbs.js} +1 -1
  321. package/web-shell/assets/index-dHAFxPHb.css +5 -0
  322. package/web-shell/assets/{infoDiagram-5YYISTIA-DcaoToij.js → infoDiagram-5YYISTIA-COFClLab.js} +1 -1
  323. package/web-shell/assets/{ishikawaDiagram-YF4QCWOH-DzduqhP2.js → ishikawaDiagram-YF4QCWOH-Div9KOgO.js} +1 -1
  324. package/web-shell/assets/{journeyDiagram-JHISSGLW-BvviZR_O.js → journeyDiagram-JHISSGLW-VAw5u0wc.js} +1 -1
  325. package/web-shell/assets/{kanban-definition-UN3LZRKU-Efm2JxY3.js → kanban-definition-UN3LZRKU-CncCn8Nl.js} +1 -1
  326. package/web-shell/assets/{linear-DtY3IbOs.js → linear-D6ad7e_k.js} +1 -1
  327. package/web-shell/assets/{mermaid.core-PzpFqoMe.js → mermaid.core-BV1IECGb.js} +5 -5
  328. package/web-shell/assets/{mindmap-definition-RKZ34NQL-BLlTkHS0.js → mindmap-definition-RKZ34NQL-a3jeNgPr.js} +1 -1
  329. package/web-shell/assets/{pieDiagram-4H26LBE5-D-mKF-jE.js → pieDiagram-4H26LBE5-DsVRY5BW.js} +1 -1
  330. package/web-shell/assets/{quadrantDiagram-W4KKPZXB-DYCzslGm.js → quadrantDiagram-W4KKPZXB-D6zgexJK.js} +1 -1
  331. package/web-shell/assets/{requirementDiagram-4Y6WPE33-Dfpxlk7R.js → requirementDiagram-4Y6WPE33-VEpSwJjn.js} +1 -1
  332. package/web-shell/assets/{sankeyDiagram-5OEKKPKP-D5cRaaxh.js → sankeyDiagram-5OEKKPKP-CYEuOFne.js} +1 -1
  333. package/web-shell/assets/{sequenceDiagram-3UESZ5HK-s04DReiS.js → sequenceDiagram-3UESZ5HK-CCg0lI-9.js} +1 -1
  334. package/web-shell/assets/{stateDiagram-AJRCARHV-01UNFgnb.js → stateDiagram-AJRCARHV-BHXPsL0B.js} +1 -1
  335. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-eTG8D0QT.js +1 -0
  336. package/web-shell/assets/{timeline-definition-PNZ67QCA-DX8_wZBC.js → timeline-definition-PNZ67QCA-gqTf9a0k.js} +1 -1
  337. package/web-shell/assets/{vennDiagram-CIIHVFJN-BK0FlBme.js → vennDiagram-CIIHVFJN-C4DXXkBh.js} +1 -1
  338. package/web-shell/assets/{wardley-L42UT6IY-DkPc9UlD.js → wardley-L42UT6IY-CMK46EiX.js} +1 -1
  339. package/web-shell/assets/{wardleyDiagram-YWT4CUSO-DNKkpDAo.js → wardleyDiagram-YWT4CUSO-DTk1Gzt9.js} +1 -1
  340. package/web-shell/assets/{xychartDiagram-2RQKCTM6-CiPwg8QG.js → xychartDiagram-2RQKCTM6-BcJsM1dH.js} +1 -1
  341. package/web-shell/index.html +2 -2
  342. package/chunks/agent-headless-HYEHZFH6.js +0 -86
  343. package/chunks/channel-settings-store-OXYG5S5X.js +0 -101
  344. package/chunks/chunk-I5VM3SKY.js +0 -451
  345. package/chunks/chunk-PDPFQ2FO.js +0 -156
  346. package/chunks/daemon-status-provider-L3J6GKCT.js +0 -102
  347. package/chunks/daemon-trust-policy-4PHPY23S.js +0 -98
  348. package/chunks/exitPlanMode-RWJR2KGB.js +0 -84
  349. package/chunks/handleAutoUpdate-NHFSGYTF.js +0 -93
  350. package/chunks/initializer-Y5DJLT43.js +0 -99
  351. package/chunks/list-YHNQ32CS.js +0 -102
  352. package/chunks/loadedSettingsAdapter-GHUQK7H4.js +0 -96
  353. package/chunks/mcp-EA3KO6FS.js +0 -96
  354. package/chunks/nonInteractiveCli-NNOR56HU.js +0 -162
  355. package/chunks/read-file-KKTXGIZD.js +0 -32
  356. package/chunks/ripGrep-SJVAAYDV.js +0 -84
  357. package/chunks/spawnChannel-UAQMH6Y6.js +0 -94
  358. package/chunks/theme-manager-ZNDGAHJN.js +0 -88
  359. package/chunks/workspace-providers-status-K22B3Z6B.js +0 -99
  360. package/chunks/workspace-skills-status-DDYCBVSH.js +0 -99
  361. package/chunks/write-file-TT6MWIKC.js +0 -86
  362. package/web-shell/assets/channel-DPFUV4oi.js +0 -1
  363. package/web-shell/assets/classDiagram-4FO5ZUOK-CLm0hVvw.js +0 -1
  364. package/web-shell/assets/classDiagram-v2-Q7XG4LA2-CLm0hVvw.js +0 -1
  365. package/web-shell/assets/index-BjC3yjjL.css +0 -5
  366. package/web-shell/assets/index-QzFq6w7o.js +0 -1775
  367. package/web-shell/assets/stateDiagram-v2-BHNVJYJU-DXb5olqv.js +0 -1
@@ -8,7 +8,7 @@ import {
8
8
  staleArgsWarning,
9
9
  validateAuthMethod,
10
10
  writeSkillArgs
11
- } from "./chunk-7GTMV7UE.js";
11
+ } from "./chunk-TTB6GBJ6.js";
12
12
  import {
13
13
  calculateCost,
14
14
  computeSessionStats,
@@ -17,7 +17,7 @@ import {
17
17
  findInlineMathExpressions,
18
18
  getSystemInfoFields,
19
19
  levelLabel
20
- } from "./chunk-YWPSGJFI.js";
20
+ } from "./chunk-DSKLWQHC.js";
21
21
  import {
22
22
  isKittyProtocolEnabled
23
23
  } from "./chunk-NYX53SV4.js";
@@ -25,33 +25,32 @@ import {
25
25
  VSCODE_SHIFT_ENTER_SEQUENCE,
26
26
  isWaylandSession,
27
27
  writeOsc52
28
- } from "./chunk-NV3F44FL.js";
28
+ } from "./chunk-TNQLAI6I.js";
29
29
  import {
30
30
  contextCommand
31
- } from "./chunk-F6WDTQ3M.js";
31
+ } from "./chunk-TNS2M7VL.js";
32
32
  import {
33
33
  themeManager
34
- } from "./chunk-CTJLZLB5.js";
34
+ } from "./chunk-EN2J77G7.js";
35
35
  import {
36
36
  rollbackStandaloneUpdate
37
- } from "./chunk-URKIBIFC.js";
37
+ } from "./chunk-45HPDU3F.js";
38
38
  import {
39
39
  getErrorMessage as getErrorMessage2
40
- } from "./chunk-DCZEPFB4.js";
40
+ } from "./chunk-NM3E6GGL.js";
41
41
  import {
42
42
  GITHUB_WORKFLOW_PATHS,
43
43
  INSIGHT_CSS,
44
44
  INSIGHT_JS,
45
45
  collectSessionData,
46
46
  generateExportFilename,
47
- installGoalTerminalObserver,
48
47
  normalizeSessionData,
49
48
  setupGithub,
50
49
  toHtml,
51
50
  toJson,
52
51
  toJsonl,
53
52
  toMarkdown
54
- } from "./chunk-5MZCSWI4.js";
53
+ } from "./chunk-W2ITCESM.js";
55
54
  import {
56
55
  stripUnsafeCharacters,
57
56
  toCodePoints,
@@ -67,12 +66,12 @@ import {
67
66
  isVoiceEnabled,
68
67
  readVoiceMode,
69
68
  readVoiceModel
70
- } from "./chunk-EBZ6BJTF.js";
69
+ } from "./chunk-F4T5J34H.js";
71
70
  import {
72
71
  getExtendedSystemInfo,
73
72
  getGitVersion,
74
73
  getNpmVersion
75
- } from "./chunk-VSFKIRRW.js";
74
+ } from "./chunk-AKLY5M2C.js";
76
75
  import {
77
76
  formatDuration,
78
77
  formatTokenCount
@@ -80,7 +79,7 @@ import {
80
79
  import {
81
80
  isInlineModelOverrideAllowed,
82
81
  parseAcpModelOption
83
- } from "./chunk-2PLNY5TN.js";
82
+ } from "./chunk-23GFHEM3.js";
84
83
  import {
85
84
  OUTPUT_LANGUAGE_AUTO,
86
85
  getAllSettingKeys,
@@ -92,12 +91,12 @@ import {
92
91
  resolveOutputLanguageOrPreserveAuto,
93
92
  validateSettingValue,
94
93
  writeOutputLanguageAndRegisterPath
95
- } from "./chunk-ABVRJU3D.js";
94
+ } from "./chunk-4PFKN7CQ.js";
96
95
  import {
97
96
  getCurrentLanguage,
98
97
  setLanguageAsync,
99
98
  t
100
- } from "./chunk-UEOKWYGY.js";
99
+ } from "./chunk-KFCTC5IJ.js";
101
100
  import {
102
101
  SUPPORTED_LANGUAGES,
103
102
  getSupportedLanguageIds,
@@ -105,11 +104,11 @@ import {
105
104
  } from "./chunk-5EJZE3FP.js";
106
105
  import {
107
106
  getInstallationInfo
108
- } from "./chunk-Q3AL4JQ3.js";
107
+ } from "./chunk-LA3FF7RO.js";
109
108
  import {
110
109
  isFolderTrustEnabled,
111
110
  loadTrustedFolders
112
- } from "./chunk-GWVUR3QZ.js";
111
+ } from "./chunk-YIKMBYMT.js";
113
112
  import {
114
113
  require_strip_json_comments
115
114
  } from "./chunk-NPQ5ZKRP.js";
@@ -125,6 +124,7 @@ import {
125
124
  SESSION_TITLE_MAX_LENGTH,
126
125
  SessionService,
127
126
  ShellExecutionService,
127
+ analyzeToolResultRetention,
128
128
  appendToLastTextPart,
129
129
  buildBackgroundEntryLabel,
130
130
  buildBareRememberPrompt,
@@ -145,13 +145,11 @@ import {
145
145
  flatMapTextParts,
146
146
  formatMemoryUsage,
147
147
  generateSessionRecap,
148
- getActiveGoal,
149
148
  getArenaSystemReminder,
150
149
  getExtensionDescription,
151
150
  getExtensionDisplayName,
152
151
  getIdeInstaller,
153
152
  getInsightPrompt,
154
- getLastGoalTerminal,
155
153
  getMCPServerPrompts,
156
154
  getPlanModeSystemReminder,
157
155
  getProjectSummaryPrompt,
@@ -178,18 +176,17 @@ import {
178
176
  persistSessionUsage,
179
177
  readPathFromWorkspace,
180
178
  redactUrlCredentials,
181
- registerGoalHook,
182
179
  require_toml,
180
+ resolveSlimmingConfig,
183
181
  runForkedAgent,
184
- tryGenerateSessionTitle,
185
- unregisterGoalHook
186
- } from "./chunk-EI3NWELG.js";
182
+ tryGenerateSessionTitle
183
+ } from "./chunk-UIZGNLBP.js";
187
184
  import {
188
185
  external_exports
189
- } from "./chunk-H6XPXXMH.js";
186
+ } from "./chunk-CQ35AJ4Z.js";
190
187
  import {
191
188
  resolveModelId
192
- } from "./chunk-TRRF5BSP.js";
189
+ } from "./chunk-XT6TGJFD.js";
193
190
  import {
194
191
  getAutoSkillCuratorStatus,
195
192
  parse,
@@ -197,24 +194,26 @@ import {
197
194
  restoreArchivedAutoSkill,
198
195
  runAutoSkillCurator,
199
196
  setAutoSkillPinned
200
- } from "./chunk-J6SZID63.js";
197
+ } from "./chunk-2AZMF6G5.js";
201
198
  import {
202
199
  HookEventName,
203
200
  sanitizeUserPromptExpansionAdditionalContext
204
- } from "./chunk-GM463R2B.js";
201
+ } from "./chunk-GZGDJ4E6.js";
205
202
  import {
203
+ GoalPersistenceUnavailableError,
204
+ emptyGoalSnapshot,
206
205
  projectUserTranscriptForDisplay
207
- } from "./chunk-QUI267ZP.js";
206
+ } from "./chunk-SAQHDAUJ.js";
208
207
  import {
209
208
  APPROVAL_MODES
210
- } from "./chunk-WAUGQKUU.js";
209
+ } from "./chunk-6LYDH7VT.js";
211
210
  import {
212
211
  resolveOpenAILogDir
213
- } from "./chunk-DZUO626D.js";
212
+ } from "./chunk-2XZWO53E.js";
214
213
  import {
215
214
  FORK_SUBAGENT_TYPE,
216
215
  stripStartupContext
217
- } from "./chunk-IA7TGCN2.js";
216
+ } from "./chunk-ZV4XVYL3.js";
218
217
  import {
219
218
  applySkillAllowedTools,
220
219
  buildSkillLlmContent
@@ -228,6 +227,7 @@ import {
228
227
  normalizeReasoningEffort
229
228
  } from "./chunk-KM73TBQ4.js";
230
229
  import {
230
+ COMBINED_PASS_TOLERANCE_FACTOR,
231
231
  IdeConnectionEvent,
232
232
  formatTokenUsageSummaryAsCsv,
233
233
  formatTokenUsageSummaryAsJson,
@@ -239,17 +239,19 @@ import {
239
239
  read,
240
240
  recordSkillInvocation,
241
241
  uiTelemetryService
242
- } from "./chunk-YGT2AUJ7.js";
242
+ } from "./chunk-U2JLICUY.js";
243
243
  import {
244
244
  getAutoMemoryRoot
245
- } from "./chunk-FVKHVJZQ.js";
245
+ } from "./chunk-732MOPEM.js";
246
246
  import {
247
247
  runSideQuery
248
- } from "./chunk-COBO5EBO.js";
248
+ } from "./chunk-CTQE2NB2.js";
249
249
  import {
250
+ ToolDisplayNamesMigration,
250
251
  ToolNames,
252
+ canonicalToolName,
251
253
  isShellProgressData
252
- } from "./chunk-PYQADEFD.js";
254
+ } from "./chunk-XTH2OMDS.js";
253
255
  import {
254
256
  Storage,
255
257
  createDebugLogger,
@@ -258,12 +260,12 @@ import {
258
260
  isSubpath,
259
261
  resolvePath,
260
262
  updateSymlink
261
- } from "./chunk-OIVKILPI.js";
263
+ } from "./chunk-MPBRV3UU.js";
262
264
  import {
263
265
  isCpuProfileRecording,
264
266
  startCpuProfile,
265
267
  stopCpuProfile
266
- } from "./chunk-AQAJJMRR.js";
268
+ } from "./chunk-3LHYTQ2R.js";
267
269
  import {
268
270
  init_esbuild_shims
269
271
  } from "./chunk-5O2XNYP6.js";
@@ -2053,7 +2055,7 @@ var approvalModeCommand = {
2053
2055
  };
2054
2056
  }
2055
2057
  }
2056
- const autoModeNotices = mode === "auto" /* AUTO */ && priorMode !== "auto" /* AUTO */ && config ? await import("./useAutoAcceptIndicator-MHAPY52L.js") : void 0;
2058
+ const autoModeNotices = mode === "auto" /* AUTO */ && priorMode !== "auto" /* AUTO */ && config ? await import("./useAutoAcceptIndicator-AUNRB5S7.js") : void 0;
2057
2059
  if (config) {
2058
2060
  try {
2059
2061
  config.setApprovalMode(mode);
@@ -5090,6 +5092,7 @@ function formatMemoryDiagnostics(diagnostics) {
5090
5092
  __name(formatMemoryDiagnostics, "formatMemoryDiagnostics");
5091
5093
 
5092
5094
  // packages/cli/src/ui/commands/doctorCommand.ts
5095
+ var debugLogger6 = createDebugLogger("DOCTOR_MEMORY");
5093
5096
  var MEMORY_SUBCOMMAND = "memory";
5094
5097
  var CPU_PROFILE_SUBCOMMAND = "cpu-profile";
5095
5098
  var ROLLBACK_SUBCOMMAND = "rollback";
@@ -5162,6 +5165,12 @@ var doctorCommand = {
5162
5165
  return;
5163
5166
  }
5164
5167
  let report = formatMemoryDiagnostics(diagnostics);
5168
+ const toolResultRetention = collectToolResultRetention(context);
5169
+ if (toolResultRetention) {
5170
+ report = `${report}
5171
+
5172
+ ${formatToolResultRetention(toolResultRetention)}`;
5173
+ }
5165
5174
  let messageType = "info";
5166
5175
  let heapSnapshotWritten = false;
5167
5176
  if (abortSignal?.aborted) {
@@ -5354,10 +5363,20 @@ async function memoryDoctorAction(context, args = "") {
5354
5363
  if (context.abortSignal?.aborted) {
5355
5364
  return;
5356
5365
  }
5366
+ const toolResultRetention = collectToolResultRetention(context);
5357
5367
  return {
5358
5368
  type: "message",
5359
5369
  messageType: diagnostics.analysis.risks.length > 0 ? "warning" : "info",
5360
- content: tokens.includes("--json") ? JSON.stringify(diagnostics, null, 2) : formatCoreDiagnostics(diagnostics)
5370
+ content: tokens.includes("--json") ? JSON.stringify(
5371
+ {
5372
+ ...diagnostics,
5373
+ ...toolResultRetention ? { toolResultRetention } : {}
5374
+ },
5375
+ null,
5376
+ 2
5377
+ ) : formatCoreDiagnostics(diagnostics) + (toolResultRetention ? `
5378
+
5379
+ ${formatToolResultRetention(toolResultRetention)}` : "")
5361
5380
  };
5362
5381
  } catch (error) {
5363
5382
  if (context.abortSignal?.aborted) {
@@ -5437,6 +5456,81 @@ function formatCoreDiagnostics(diagnostics) {
5437
5456
  return lines.join("\n");
5438
5457
  }
5439
5458
  __name(formatCoreDiagnostics, "formatCoreDiagnostics");
5459
+ function collectToolResultRetention(context) {
5460
+ try {
5461
+ const config = context.services.config;
5462
+ const history = config?.getGeminiClient()?.getHistoryShallow();
5463
+ if (!history) {
5464
+ return null;
5465
+ }
5466
+ const resolveToolBudgetChars = /* @__PURE__ */ __name((name) => config?.getToolRegistry?.()?.getTool(canonicalToolName(name))?.maxOutputChars, "resolveToolBudgetChars");
5467
+ const displayNameBudgets = /* @__PURE__ */ new Map();
5468
+ for (const tool of config?.getToolRegistry?.()?.getAllTools() ?? []) {
5469
+ if (tool.displayName) {
5470
+ displayNameBudgets.set(tool.displayName, tool.maxOutputChars);
5471
+ }
5472
+ }
5473
+ const stats = analyzeToolResultRetention(history, {
5474
+ // Compare each result against its own tool's declared budget (mirroring
5475
+ // the scheduler), so compliant high-budget results (e.g. MCP) are not
5476
+ // flagged; tools declaring none fall back to the configured global
5477
+ // threshold — the bound the scheduler applies to them.
5478
+ resolveToolBudgetChars,
5479
+ thresholdChars: config?.getTruncateToolOutputThreshold?.(),
5480
+ imageTokenEstimate: resolveSlimmingConfig(config?.getChatCompression?.()).imageTokenEstimate
5481
+ });
5482
+ const threshold = config?.getTruncateToolOutputThreshold?.() ?? stats.oversizedThresholdChars;
5483
+ let largeOutputsInUIHistory = 0;
5484
+ for (const item of context.ui.history ?? []) {
5485
+ if (item.type !== "tool_group") {
5486
+ continue;
5487
+ }
5488
+ for (const tool of item.tools) {
5489
+ if (typeof tool.resultDisplay !== "string") {
5490
+ continue;
5491
+ }
5492
+ const migratedName = ToolDisplayNamesMigration[tool.name] ?? tool.name;
5493
+ const budget = displayNameBudgets.get(tool.name) ?? displayNameBudgets.get(migratedName) ?? resolveToolBudgetChars(tool.name) ?? threshold;
5494
+ if (Number.isFinite(budget) && tool.resultDisplay.length > budget * COMBINED_PASS_TOLERANCE_FACTOR) {
5495
+ largeOutputsInUIHistory += 1;
5496
+ }
5497
+ }
5498
+ }
5499
+ return {
5500
+ ...stats,
5501
+ largeOutputsInUIHistory,
5502
+ // Derived assumption: compression reads the live history by reference
5503
+ // (getHistoryShallow; see chatCompressionService). If compression input
5504
+ // assembly ever changes to copy or filter history, this derivation must
5505
+ // be revisited.
5506
+ presentInCompressionInput: stats.oversizedResultCount > 0
5507
+ };
5508
+ } catch (error) {
5509
+ debugLogger6.warn(
5510
+ `Tool result retention diagnostics unavailable: ${formatErrorMessage2(error)}`
5511
+ );
5512
+ return null;
5513
+ }
5514
+ }
5515
+ __name(collectToolResultRetention, "collectToolResultRetention");
5516
+ function formatToolResultRetention(stats) {
5517
+ const lines = [
5518
+ "Tool result retention",
5519
+ ` Tool results in history: ${stats.toolResultCount}`,
5520
+ ` Total retained: ${stats.totalChars} chars`,
5521
+ ` Largest result: ${stats.largestResultChars} chars`,
5522
+ ` Oversized results (above tool budget): ${stats.oversizedResultCount}`,
5523
+ ` Oversized also rendered in UI history: ${stats.largeOutputsInUIHistory} item(s)`,
5524
+ ` Oversized also in compression input: ${stats.presentInCompressionInput ? "yes (shared by reference, no extra copy)" : "no"}`
5525
+ ];
5526
+ if (stats.oversizedResultCount > 0) {
5527
+ lines.push(
5528
+ " Hint: oversized tool results stay in context and tax every later turn; /compress can reclaim space."
5529
+ );
5530
+ }
5531
+ return lines.join("\n");
5532
+ }
5533
+ __name(formatToolResultRetention, "formatToolResultRetention");
5440
5534
  var CPU_PROFILE_USAGE_HINT = "/doctor cpu-profile [--duration <seconds>]";
5441
5535
  var DEFAULT_CPU_PROFILE_DURATION_SEC = 30;
5442
5536
  var MAX_CPU_PROFILE_DURATION_SEC = 300;
@@ -5646,6 +5740,38 @@ var editorCommand = {
5646
5740
 
5647
5741
  // packages/cli/src/ui/commands/effort-command.ts
5648
5742
  init_esbuild_shims();
5743
+
5744
+ // packages/cli/src/ui/commands/effort-utils.ts
5745
+ init_esbuild_shims();
5746
+ function formatEffortChangeMessage(config, tier) {
5747
+ if (config.getReasoningEffort() !== tier) {
5748
+ const override2 = config.getReasoningEffortOverride?.();
5749
+ if (override2) {
5750
+ return t(
5751
+ "Reasoning effort set to {{tier}}, but thinking is currently disabled; after thinking is re-enabled, {{source}}.{{field}} will still have higher priority.",
5752
+ { tier, source: override2.source, field: override2.field }
5753
+ );
5754
+ }
5755
+ return t(
5756
+ "Reasoning effort set to {{tier}}, but thinking is currently disabled \u2014 it will take effect when thinking is re-enabled.",
5757
+ { tier }
5758
+ );
5759
+ }
5760
+ const override = config.getReasoningEffortOverride?.();
5761
+ if (override) {
5762
+ return t(
5763
+ "Reasoning effort: {{tier}} requested, but {{source}}.{{field}} has higher priority for the active DashScope Qwen model; that configured value will remain effective.",
5764
+ { tier, source: override.source, field: override.field }
5765
+ );
5766
+ }
5767
+ return t(
5768
+ "Reasoning effort: {{tier}} (requested; the effective tier depends on the active provider/model).",
5769
+ { tier }
5770
+ );
5771
+ }
5772
+ __name(formatEffortChangeMessage, "formatEffortChangeMessage");
5773
+
5774
+ // packages/cli/src/ui/commands/effort-command.ts
5649
5775
  var TIER_LIST = REASONING_EFFORT_TIERS.join(", ");
5650
5776
  var effortCommand = {
5651
5777
  name: "effort",
@@ -5709,29 +5835,16 @@ var effortCommand = {
5709
5835
  content: t("Settings service not available.")
5710
5836
  };
5711
5837
  }
5712
- const applied = applyReasoningEffort(config, tier);
5838
+ applyReasoningEffort(config, tier);
5713
5839
  settings.setValue(
5714
5840
  getPersistScopeForModelSelection(settings),
5715
5841
  "model.reasoningEffort",
5716
5842
  tier
5717
5843
  );
5718
- if (!applied) {
5719
- return {
5720
- type: "message",
5721
- messageType: "info",
5722
- content: t(
5723
- "Reasoning effort set to {{tier}}, but thinking is currently disabled \u2014 it will take effect when thinking is re-enabled.",
5724
- { tier }
5725
- )
5726
- };
5727
- }
5728
5844
  return {
5729
5845
  type: "message",
5730
5846
  messageType: "info",
5731
- content: t(
5732
- "Reasoning effort: {{tier}} (requested; the effective tier depends on the active provider/model).",
5733
- { tier }
5734
- )
5847
+ content: formatEffortChangeMessage(config, tier)
5735
5848
  };
5736
5849
  }, "action")
5737
5850
  };
@@ -5741,7 +5854,7 @@ init_esbuild_shims();
5741
5854
  import * as fs5 from "node:fs/promises";
5742
5855
  import path5 from "node:path";
5743
5856
  var EXPORT_DIR_OUT_OF_CWD = "Export directory must be within the project working directory.";
5744
- var debugLogger6 = createDebugLogger("EXPORT_COMMAND");
5857
+ var debugLogger7 = createDebugLogger("EXPORT_COMMAND");
5745
5858
  function formatExportTargetContext(target) {
5746
5859
  return `target: "${target.outputDir}", cwd: "${target.resolvedCwd}"`;
5747
5860
  }
@@ -5770,7 +5883,7 @@ function resolveExportTarget(cwd, args, extension) {
5770
5883
  }
5771
5884
  __name(resolveExportTarget, "resolveExportTarget");
5772
5885
  async function validateExportTargetWithinCwd(target) {
5773
- debugLogger6.debug(
5886
+ debugLogger7.debug(
5774
5887
  "Validating export target realpath:",
5775
5888
  formatExportTargetContext(target)
5776
5889
  );
@@ -5783,7 +5896,7 @@ async function validateExportTargetWithinCwd(target) {
5783
5896
  ]);
5784
5897
  } catch (error) {
5785
5898
  if (error.code === "ENOENT") {
5786
- debugLogger6.debug(
5899
+ debugLogger7.debug(
5787
5900
  "Export target realpath validation failed: missing path",
5788
5901
  formatExportTargetContext(target)
5789
5902
  );
@@ -5798,7 +5911,7 @@ async function validateExportTargetWithinCwd(target) {
5798
5911
  throw error;
5799
5912
  }
5800
5913
  if (!isSubpath(realCwd, realOutputDir)) {
5801
- debugLogger6.debug("Export target realpath escaped cwd:", {
5914
+ debugLogger7.debug("Export target realpath escaped cwd:", {
5802
5915
  realCwd,
5803
5916
  realOutputDir,
5804
5917
  target
@@ -5816,21 +5929,21 @@ async function validateExportTargetWithinCwd(target) {
5816
5929
  __name(validateExportTargetWithinCwd, "validateExportTargetWithinCwd");
5817
5930
  async function realpathNearestExisting(outputDir, resolvedCwd) {
5818
5931
  let currentPath = outputDir;
5819
- debugLogger6.debug("Resolving nearest existing export parent:", {
5932
+ debugLogger7.debug("Resolving nearest existing export parent:", {
5820
5933
  outputDir,
5821
5934
  resolvedCwd
5822
5935
  });
5823
5936
  while (isSubpath(resolvedCwd, currentPath)) {
5824
5937
  try {
5825
5938
  const realCurrentPath = await fs5.realpath(currentPath);
5826
- debugLogger6.debug("Resolved nearest existing export parent:", {
5939
+ debugLogger7.debug("Resolved nearest existing export parent:", {
5827
5940
  currentPath,
5828
5941
  realCurrentPath
5829
5942
  });
5830
5943
  return realCurrentPath;
5831
5944
  } catch (error) {
5832
5945
  if (error.code !== "ENOENT") {
5833
- debugLogger6.debug("Failed to resolve existing export parent:", error);
5946
+ debugLogger7.debug("Failed to resolve existing export parent:", error);
5834
5947
  throw error;
5835
5948
  }
5836
5949
  const parentPath = path5.dirname(currentPath);
@@ -5844,7 +5957,7 @@ async function realpathNearestExisting(outputDir, resolvedCwd) {
5844
5957
  }
5845
5958
  __name(realpathNearestExisting, "realpathNearestExisting");
5846
5959
  async function validateExistingExportParentWithinCwd(target) {
5847
- debugLogger6.debug(
5960
+ debugLogger7.debug(
5848
5961
  "Validating existing export parent realpath:",
5849
5962
  formatExportTargetContext(target)
5850
5963
  );
@@ -5862,7 +5975,7 @@ async function validateExistingExportParentWithinCwd(target) {
5862
5975
  target.resolvedCwd
5863
5976
  );
5864
5977
  if (!isSubpath(realCwd, realExistingParent)) {
5865
- debugLogger6.debug("Existing export parent escaped cwd:", {
5978
+ debugLogger7.debug("Existing export parent escaped cwd:", {
5866
5979
  realCwd,
5867
5980
  realExistingParent,
5868
5981
  target
@@ -5898,7 +6011,7 @@ async function exportSessionAction(context, args, exportFormat) {
5898
6011
  }
5899
6012
  const target = resolveExportTarget(cwd, args, exportFormat.extension);
5900
6013
  const targetFilepath = target.filepath;
5901
- debugLogger6.debug("Resolved export target:", {
6014
+ debugLogger7.debug("Resolved export target:", {
5902
6015
  format: exportFormat.displayName,
5903
6016
  cwd,
5904
6017
  outputDirArg: args.trim(),
@@ -5907,7 +6020,7 @@ async function exportSessionAction(context, args, exportFormat) {
5907
6020
  filepath: target.filepath
5908
6021
  });
5909
6022
  if (!target.isInsideCwd) {
5910
- debugLogger6.debug(
6023
+ debugLogger7.debug(
5911
6024
  "Export target rejected before realpath validation:",
5912
6025
  formatExportTargetContext(target)
5913
6026
  );
@@ -5924,17 +6037,17 @@ async function exportSessionAction(context, args, exportFormat) {
5924
6037
  if (initialValidationError) {
5925
6038
  return initialValidationError;
5926
6039
  }
5927
- debugLogger6.debug("Export target validation passed:", {
6040
+ debugLogger7.debug("Export target validation passed:", {
5928
6041
  format: exportFormat.displayName,
5929
6042
  outputDir: target.outputDir,
5930
6043
  outputDirKind: target.outputDirKind
5931
6044
  });
5932
6045
  const sessionService = new SessionService(cwd);
5933
6046
  const sessionId = config.getSessionId();
5934
- debugLogger6.debug("Loading session for export:", { sessionId, cwd });
6047
+ debugLogger7.debug("Loading session for export:", { sessionId, cwd });
5935
6048
  const sessionData = await sessionService.loadSession(sessionId);
5936
6049
  if (!sessionData) {
5937
- debugLogger6.debug("No active session found for export:", {
6050
+ debugLogger7.debug("No active session found for export:", {
5938
6051
  sessionId,
5939
6052
  cwd
5940
6053
  });
@@ -5954,12 +6067,12 @@ async function exportSessionAction(context, args, exportFormat) {
5954
6067
  const content = exportFormat.format(normalizedData);
5955
6068
  if (target.outputDirKind === "custom") {
5956
6069
  try {
5957
- debugLogger6.debug("Creating export directory:", {
6070
+ debugLogger7.debug("Creating export directory:", {
5958
6071
  outputDir: target.outputDir
5959
6072
  });
5960
6073
  await fs5.mkdir(target.outputDir, { recursive: true, mode: 448 });
5961
6074
  } catch (error) {
5962
- debugLogger6.debug("Failed to create export directory:", error);
6075
+ debugLogger7.debug("Failed to create export directory:", error);
5963
6076
  return {
5964
6077
  type: "message",
5965
6078
  messageType: "error",
@@ -5973,7 +6086,7 @@ async function exportSessionAction(context, args, exportFormat) {
5973
6086
  return writeValidationError;
5974
6087
  }
5975
6088
  } catch (error) {
5976
- debugLogger6.debug("Export path validation failed before write:", error);
6089
+ debugLogger7.debug("Export path validation failed before write:", error);
5977
6090
  return {
5978
6091
  type: "message",
5979
6092
  messageType: "error",
@@ -5981,7 +6094,7 @@ async function exportSessionAction(context, args, exportFormat) {
5981
6094
  };
5982
6095
  }
5983
6096
  try {
5984
- debugLogger6.debug("Writing export file:", {
6097
+ debugLogger7.debug("Writing export file:", {
5985
6098
  format: exportFormat.displayName,
5986
6099
  filepath: target.filepath
5987
6100
  });
@@ -5990,17 +6103,17 @@ async function exportSessionAction(context, args, exportFormat) {
5990
6103
  mode: 384
5991
6104
  });
5992
6105
  await fs5.chmod(target.filepath, 384).catch((error) => {
5993
- debugLogger6.debug("Failed to tighten export file permissions:", error);
6106
+ debugLogger7.debug("Failed to tighten export file permissions:", error);
5994
6107
  });
5995
6108
  } catch (error) {
5996
- debugLogger6.debug("Failed to write export file:", error);
6109
+ debugLogger7.debug("Failed to write export file:", error);
5997
6110
  return {
5998
6111
  type: "message",
5999
6112
  messageType: "error",
6000
6113
  content: `Failed to export session: ${error instanceof Error ? error.message : String(error)} (${exportFormat.displayName} target: "${targetFilepath}")`
6001
6114
  };
6002
6115
  }
6003
- debugLogger6.debug("Session export completed:", {
6116
+ debugLogger7.debug("Session export completed:", {
6004
6117
  format: exportFormat.displayName,
6005
6118
  filepath: target.filepath
6006
6119
  });
@@ -6010,7 +6123,7 @@ async function exportSessionAction(context, args, exportFormat) {
6010
6123
  content: `Session exported to ${exportFormat.displayName}: ${target.displayPath}`
6011
6124
  };
6012
6125
  } catch (error) {
6013
- debugLogger6.debug("Session export failed:", {
6126
+ debugLogger7.debug("Session export failed:", {
6014
6127
  format: exportFormat.displayName,
6015
6128
  target,
6016
6129
  error
@@ -6106,7 +6219,7 @@ var exportCommand = {
6106
6219
 
6107
6220
  // packages/cli/src/ui/commands/forkCommand.ts
6108
6221
  init_esbuild_shims();
6109
- var debugLogger7 = createDebugLogger("FORK_COMMAND");
6222
+ var debugLogger8 = createDebugLogger("FORK_COMMAND");
6110
6223
  function deriveForkDescription(directive) {
6111
6224
  const oneLine = directive.replace(/\s+/g, " ").trim();
6112
6225
  return oneLine.length > 60 ? `${oneLine.slice(0, 57)}\u2026` : oneLine;
@@ -6162,7 +6275,7 @@ var forkCommand = {
6162
6275
  try {
6163
6276
  hasHistory = (config.getGeminiClient().getHistoryShallow() ?? []).length > 0;
6164
6277
  } catch (error) {
6165
- debugLogger7.debug("Failed to read history before /fork:", error);
6278
+ debugLogger8.debug("Failed to read history before /fork:", error);
6166
6279
  hasHistory = false;
6167
6280
  }
6168
6281
  if (!hasHistory) {
@@ -6222,7 +6335,7 @@ var forkCommand = {
6222
6335
  ]
6223
6336
  });
6224
6337
  } catch (error) {
6225
- debugLogger7.debug("Failed to record fork event in history:", error);
6338
+ debugLogger8.debug("Failed to record fork event in history:", error);
6226
6339
  }
6227
6340
  return {
6228
6341
  type: "message",
@@ -6236,7 +6349,7 @@ var forkCommand = {
6236
6349
 
6237
6350
  // packages/cli/src/ui/commands/extensionsCommand.ts
6238
6351
  init_esbuild_shims();
6239
- var debugLogger8 = createDebugLogger("EXTENSIONS_COMMAND");
6352
+ var debugLogger9 = createDebugLogger("EXTENSIONS_COMMAND");
6240
6353
  var EXTENSION_EXPLORE_URL = {
6241
6354
  Gemini: "https://geminicli.com/extensions/",
6242
6355
  ClaudeCode: "https://claudemarketplaces.com/"
@@ -6399,7 +6512,7 @@ async function installAction(context, args) {
6399
6512
  }
6400
6513
  const extensionManager = context.services.config?.getExtensionManager();
6401
6514
  if (!(extensionManager instanceof ExtensionManager)) {
6402
- debugLogger8.error(
6515
+ debugLogger9.error(
6403
6516
  `Cannot ${context.invocation?.name} extensions in this environment`
6404
6517
  );
6405
6518
  return;
@@ -6544,140 +6657,6 @@ var CLEAR_KEYWORDS = /* @__PURE__ */ new Set([
6544
6657
  "none",
6545
6658
  "cancel"
6546
6659
  ]);
6547
- function formatLegacyTurns(count) {
6548
- return `${count} ${count === 1 ? "turn" : "turns"}`;
6549
- }
6550
- __name(formatLegacyTurns, "formatLegacyTurns");
6551
- function assertNeverTerminalKind(kind) {
6552
- throw new Error(`Unexpected GoalTerminalKind: ${kind}`);
6553
- }
6554
- __name(assertNeverTerminalKind, "assertNeverTerminalKind");
6555
- function formatLegacyTerminalSummary(event) {
6556
- let title;
6557
- switch (event.kind) {
6558
- case "achieved":
6559
- title = "Goal achieved";
6560
- break;
6561
- case "failed":
6562
- title = "Goal could not be achieved";
6563
- break;
6564
- case "aborted":
6565
- title = "Goal aborted";
6566
- break;
6567
- default:
6568
- title = assertNeverTerminalKind(event.kind);
6569
- }
6570
- const stats = [];
6571
- if (event.iterations > 0) stats.push(formatLegacyTurns(event.iterations));
6572
- if (typeof event.durationMs === "number") {
6573
- stats.push(formatDuration(event.durationMs, { hideTrailingZeros: true }));
6574
- }
6575
- const subtitle = stats.length > 0 ? ` \xB7 ${stats.join(" \xB7 ")}` : "";
6576
- const reason = event.lastReason?.trim();
6577
- return `${title}${subtitle}
6578
- Goal: ${event.condition}${reason ? `
6579
- Last check: ${reason}` : ""}`;
6580
- }
6581
- __name(formatLegacyTerminalSummary, "formatLegacyTerminalSummary");
6582
- async function runLegacyGoalCommand(context, args, explicitSet = false) {
6583
- const { config } = context.services;
6584
- if (!config) return errorMessage("Configuration is not available.");
6585
- const sessionId = config.getSessionId();
6586
- const objective = args.trim();
6587
- if (!objective) {
6588
- const active = getActiveGoal(sessionId);
6589
- if (active) {
6590
- const turns = active.iterations === 0 ? "not yet evaluated" : formatLegacyTurns(active.iterations);
6591
- return {
6592
- type: "message",
6593
- messageType: "info",
6594
- content: `Goal active: ${active.condition} (${turns})${active.lastReason ? `
6595
- Last check: ${active.lastReason}` : ""}`
6596
- };
6597
- }
6598
- const terminal = getLastGoalTerminal(sessionId);
6599
- return {
6600
- type: "message",
6601
- messageType: "info",
6602
- content: terminal ? formatLegacyTerminalSummary(terminal) : "No goal set. Usage: `/goal <condition>` (or `/goal clear`)."
6603
- };
6604
- }
6605
- if (!explicitSet && CLEAR_KEYWORDS.has(objective.toLowerCase())) {
6606
- const cleared = unregisterGoalHook(config, sessionId);
6607
- if (!cleared) {
6608
- return {
6609
- type: "message",
6610
- messageType: "info",
6611
- content: "No goal set."
6612
- };
6613
- }
6614
- const item = {
6615
- type: "goal_status" /* GOAL_STATUS */,
6616
- kind: "cleared",
6617
- condition: cleared.condition,
6618
- iterations: cleared.iterations,
6619
- durationMs: Date.now() - cleared.setAt
6620
- };
6621
- context.ui.addItem(item, Date.now());
6622
- return {
6623
- type: "message",
6624
- messageType: "info",
6625
- content: `Goal cleared: ${cleared.condition}`
6626
- };
6627
- }
6628
- if (!config.isTrustedFolder()) {
6629
- return errorMessage(
6630
- "/goal is only available in trusted workspaces. Trust this folder via `/trust` and try again."
6631
- );
6632
- }
6633
- if (config.getDisableAllHooks()) {
6634
- return errorMessage(
6635
- "/goal is disabled because hooks are turned off in this session (`disableAllHooks` or bare mode)."
6636
- );
6637
- }
6638
- if (!config.getHookSystem()) {
6639
- return errorMessage(
6640
- "Hook system is not initialized; cannot set a /goal in this session."
6641
- );
6642
- }
6643
- let registered;
6644
- try {
6645
- registered = registerGoalHook({
6646
- config,
6647
- sessionId,
6648
- condition: objective,
6649
- tokensAtStart: 0
6650
- });
6651
- } catch (error) {
6652
- return errorMessage(
6653
- `Failed to set goal: ${error instanceof Error ? error.message : String(error)}`
6654
- );
6655
- }
6656
- context.ui.addItem(
6657
- {
6658
- type: "goal_status" /* GOAL_STATUS */,
6659
- kind: "set",
6660
- condition: registered.condition,
6661
- setAt: registered.setAt
6662
- },
6663
- Date.now()
6664
- );
6665
- installGoalTerminalObserver({
6666
- sessionId,
6667
- config,
6668
- addItem: context.ui.addItem
6669
- });
6670
- const result = {
6671
- type: "submit_prompt",
6672
- content: [
6673
- {
6674
- text: `A session-scoped Stop hook is now active with condition: "${objective.replace(/[\r\n]+/g, " ").replace(/"/g, "'")}". Briefly acknowledge the goal, then immediately start (or continue) working toward it \u2014 treat the condition itself as your directive and do not pause to ask the user what to do. The hook will block stopping until the condition holds. It auto-clears once the condition is met \u2014 do not tell the user to run \`/goal clear\` after success; that is only for clearing a goal early.`
6675
- }
6676
- ]
6677
- };
6678
- return result;
6679
- }
6680
- __name(runLegacyGoalCommand, "runLegacyGoalCommand");
6681
6660
  function parseGoalCommand(args) {
6682
6661
  let input = args.trim();
6683
6662
  if (/^\/goal(?:\s|$)/i.test(input)) {
@@ -6723,22 +6702,6 @@ var goalCommand = {
6723
6702
  kind: "built-in" /* BUILT_IN */,
6724
6703
  supportedModes: ["interactive", "non_interactive", "acp"],
6725
6704
  action: /* @__PURE__ */ __name(async (context, args) => {
6726
- if (context.executionMode === "acp") {
6727
- const operation2 = parseGoalCommand(args);
6728
- if (operation2.kind === "error") return errorMessage(operation2.message);
6729
- if (operation2.kind !== "status" && operation2.kind !== "clear" && operation2.kind !== "set") {
6730
- return errorMessage(
6731
- `'/goal ${operation2.kind}' is not available in ACP mode.`
6732
- );
6733
- }
6734
- const explicitSet = operation2.kind === "set";
6735
- const legacyArgs = explicitSet ? operation2.objective : args;
6736
- return await runLegacyGoalCommand(context, legacyArgs, explicitSet) ?? {
6737
- type: "message",
6738
- messageType: "info",
6739
- content: "Command executed successfully."
6740
- };
6741
- }
6742
6705
  const { config } = context.services;
6743
6706
  if (!config) return errorMessage("Configuration is not available.");
6744
6707
  const operation = parseGoalCommand(args);
@@ -6749,8 +6712,18 @@ var goalCommand = {
6749
6712
  "/goal is only available in trusted workspaces. Trust this folder via `/trust` and try again."
6750
6713
  );
6751
6714
  }
6715
+ let runtime;
6716
+ try {
6717
+ runtime = await config.getGoalRuntimeReady();
6718
+ } catch (error) {
6719
+ if (error instanceof GoalPersistenceUnavailableError && (operation.kind === "status" || operation.kind === "clear") && config.getChatRecordingService() === void 0) {
6720
+ return goalControl(operation, { snapshot: emptyGoalSnapshot() });
6721
+ }
6722
+ return errorMessage(
6723
+ error instanceof Error ? error.message : String(error)
6724
+ );
6725
+ }
6752
6726
  try {
6753
- const runtime = await config.getGoalRuntimeReady();
6754
6727
  const snapshot = runtime.getSnapshot();
6755
6728
  if (operation.kind === "status") {
6756
6729
  return goalControl(operation, { snapshot });
@@ -6873,7 +6846,7 @@ var expandNowCommand = {
6873
6846
  content: t("History is already expanded in this session.")
6874
6847
  };
6875
6848
  }
6876
- const { expandCollapsedHistory } = await import("./resumeHistoryUtils-6N6XGJJW.js");
6849
+ const { expandCollapsedHistory } = await import("./resumeHistoryUtils-RR2KEVH5.js");
6877
6850
  const updated = expandCollapsedHistory(history);
6878
6851
  loadHistory(updated);
6879
6852
  refreshStatic();
@@ -8406,7 +8379,7 @@ Write the complete content to the \`${contextFileName}\` file. The output must b
8406
8379
 
8407
8380
  // packages/cli/src/ui/commands/languageCommand.ts
8408
8381
  init_esbuild_shims();
8409
- var debugLogger9 = createDebugLogger("LANGUAGE_COMMAND");
8382
+ var debugLogger10 = createDebugLogger("LANGUAGE_COMMAND");
8410
8383
  function getCurrentOutputLanguage(context) {
8411
8384
  const settingValue = context?.services?.settings?.merged?.general?.outputLanguage || OUTPUT_LANGUAGE_AUTO;
8412
8385
  const resolved = resolveOutputLanguageOrPreserveAuto(settingValue);
@@ -8474,7 +8447,7 @@ async function setUiLanguage(context, lang, scope = "User" /* User */) {
8474
8447
  throwOnWriteFailure: true
8475
8448
  });
8476
8449
  } catch (error) {
8477
- debugLogger9.warn("Failed to save language setting:", error);
8450
+ debugLogger10.warn("Failed to save language setting:", error);
8478
8451
  return {
8479
8452
  type: "message",
8480
8453
  messageType: "error",
@@ -8510,7 +8483,7 @@ async function setOutputLanguage(context, language) {
8510
8483
  settingValue
8511
8484
  );
8512
8485
  } catch (error) {
8513
- debugLogger9.warn("Failed to save output language setting:", error);
8486
+ debugLogger10.warn("Failed to save output language setting:", error);
8514
8487
  }
8515
8488
  }
8516
8489
  const config = context.services.config;
@@ -8519,7 +8492,7 @@ async function setOutputLanguage(context, language) {
8519
8492
  await config.refreshHierarchicalMemory();
8520
8493
  await config.getGeminiClient().refreshSystemInstruction();
8521
8494
  } catch (error) {
8522
- debugLogger9.warn(
8495
+ debugLogger10.warn(
8523
8496
  "Failed to apply output language to running session:",
8524
8497
  error
8525
8498
  );
@@ -8875,6 +8848,23 @@ var FAST_MODEL_CONFIGURATION_HINT = "Configure models in settings.modelProviders
8875
8848
  var VISION_MODEL_CONFIGURATION_HINT = "Configure an image-capable model in settings.modelProviders and ensure the required environment variables are set. Run /model --vision <model-id> to set it, or leave it unset to auto-pick a same-provider vision model.";
8876
8849
  var COMPACTION_MODEL_CONFIGURATION_HINT = "Configure models in settings.modelProviders and ensure the required environment variables are set. In interactive mode, run /auth to configure or switch providers, or run /model --compaction without a model to choose from configured models.";
8877
8850
  var IMAGE_MODEL_CONFIGURATION_HINT = "Configure a model with imageOnly: true, baseUrl, and envKey in settings.modelProviders. Run /model --image <model-id> to select it.";
8851
+ var MODEL_PICKER_FLAGS = [
8852
+ "fast",
8853
+ "voice",
8854
+ "vision",
8855
+ "compaction",
8856
+ "image",
8857
+ "project",
8858
+ "global"
8859
+ ];
8860
+ var MODEL_PICKER_FLAG_PATTERN = `(?:${MODEL_PICKER_FLAGS.join("|")})`;
8861
+ var MODEL_PICKER_ONLY_PATTERN = new RegExp(
8862
+ `^(?:\\s*--${MODEL_PICKER_FLAG_PATTERN})*\\s*$`
8863
+ );
8864
+ function isPickerOnlyModelInvocation(args) {
8865
+ return MODEL_PICKER_ONLY_PATTERN.test(args);
8866
+ }
8867
+ __name(isPickerOnlyModelInvocation, "isPickerOnlyModelInvocation");
8878
8868
  function parseScopeFlags(args) {
8879
8869
  let scopeOverride;
8880
8870
  let remaining = args;
@@ -9921,7 +9911,7 @@ init_esbuild_shims();
9921
9911
 
9922
9912
  // packages/cli/src/config/extension-runtime-reload.ts
9923
9913
  init_esbuild_shims();
9924
- var debugLogger10 = createDebugLogger("EXTENSION_RUNTIME_RELOAD");
9914
+ var debugLogger11 = createDebugLogger("EXTENSION_RUNTIME_RELOAD");
9925
9915
  async function reloadPluginsRuntime(options) {
9926
9916
  if (options.config.isSafeMode()) {
9927
9917
  throw new Error("Extension reload is disabled in safe mode.");
@@ -9941,7 +9931,7 @@ async function refreshExtensionContentRuntime(options) {
9941
9931
  await manager.refreshCache();
9942
9932
  } catch (error) {
9943
9933
  errors.push(error);
9944
- debugLogger10.warn(
9934
+ debugLogger11.warn(
9945
9935
  "refreshExtensionContentRuntime: refreshCache failed:",
9946
9936
  error
9947
9937
  );
@@ -9954,7 +9944,7 @@ async function refreshExtensionContentRuntime(options) {
9954
9944
  for (const result of settled) {
9955
9945
  if (result.status === "rejected") {
9956
9946
  errors.push(result.reason);
9957
- debugLogger10.warn(
9947
+ debugLogger11.warn(
9958
9948
  "refreshExtensionContentRuntime: a refresh leg failed:",
9959
9949
  result.reason
9960
9950
  );
@@ -10216,9 +10206,15 @@ var renameCommand = {
10216
10206
  }, 500);
10217
10207
  let outcome;
10218
10208
  try {
10209
+ const userDisplayTexts = config.getChatRecordingService()?.getUserDisplayTextsForTitle?.() ?? [];
10210
+ const lastDisplayText = userDisplayTexts.at(-1)?.trim();
10211
+ const titleDisplayTexts = lastDisplayText?.match(
10212
+ /^\/(?:rename|tag)(?:\s+--auto)?$/i
10213
+ ) ? userDisplayTexts.slice(0, -1) : userDisplayTexts;
10219
10214
  outcome = await tryGenerateSessionTitle(
10220
10215
  config,
10221
- context.abortSignal ?? new AbortController().signal
10216
+ context.abortSignal ?? new AbortController().signal,
10217
+ titleDisplayTexts
10222
10218
  );
10223
10219
  } finally {
10224
10220
  clearInterval(timer);
@@ -11757,7 +11753,7 @@ import * as os4 from "node:os";
11757
11753
  import * as path13 from "node:path";
11758
11754
  import { exec } from "node:child_process";
11759
11755
  import { promisify } from "node:util";
11760
- var debugLogger11 = createDebugLogger("TERMINAL_SETUP");
11756
+ var debugLogger12 = createDebugLogger("TERMINAL_SETUP");
11761
11757
  var execAsync = promisify(exec);
11762
11758
  function stripJsonComments2(content) {
11763
11759
  return content.replace(/^\s*\/\/.*$/gm, "");
@@ -11790,7 +11786,7 @@ async function detectTerminal() {
11790
11786
  if (parentName.includes("trae") || parentName.includes("Trae"))
11791
11787
  return "trae";
11792
11788
  } catch (error) {
11793
- debugLogger11.debug("Parent process detection failed:", error);
11789
+ debugLogger12.debug("Parent process detection failed:", error);
11794
11790
  }
11795
11791
  }
11796
11792
  return null;
@@ -11802,7 +11798,7 @@ async function backupFile(filePath) {
11802
11798
  const backupPath = `${filePath}.backup.${timestamp}`;
11803
11799
  await fs10.copyFile(filePath, backupPath);
11804
11800
  } catch (error) {
11805
- debugLogger11.warn(`Failed to create backup of ${filePath}:`, error);
11801
+ debugLogger12.warn(`Failed to create backup of ${filePath}:`, error);
11806
11802
  }
11807
11803
  }
11808
11804
  __name(backupFile, "backupFile");
@@ -12033,6 +12029,7 @@ var terminalSetupCommand = {
12033
12029
 
12034
12030
  // packages/cli/src/ui/commands/themeCommand.ts
12035
12031
  init_esbuild_shims();
12032
+ import process5 from "node:process";
12036
12033
  var themeCommand = {
12037
12034
  name: "theme",
12038
12035
  get description() {
@@ -12040,10 +12037,21 @@ var themeCommand = {
12040
12037
  },
12041
12038
  kind: "built-in" /* BUILT_IN */,
12042
12039
  supportedModes: ["interactive"],
12043
- action: /* @__PURE__ */ __name((_context, _args) => ({
12044
- type: "dialog",
12045
- dialog: "theme"
12046
- }), "action")
12040
+ action: /* @__PURE__ */ __name((_context, _args) => {
12041
+ if (process5.env["NO_COLOR"]) {
12042
+ return {
12043
+ type: "message",
12044
+ messageType: "info",
12045
+ content: t(
12046
+ "Theme configuration unavailable due to NO_COLOR env variable."
12047
+ )
12048
+ };
12049
+ }
12050
+ return {
12051
+ type: "dialog",
12052
+ dialog: "theme"
12053
+ };
12054
+ }, "action")
12047
12055
  };
12048
12056
 
12049
12057
  // packages/cli/src/ui/commands/toolsCommand.ts
@@ -12112,7 +12120,7 @@ init_esbuild_shims();
12112
12120
  // packages/cli/src/ui/voice/voice-availability.ts
12113
12121
  init_esbuild_shims();
12114
12122
  import { existsSync as existsSync2 } from "node:fs";
12115
- import process5 from "node:process";
12123
+ import process6 from "node:process";
12116
12124
  var SUPPORTED_PLATFORMS = [
12117
12125
  "darwin",
12118
12126
  "linux",
@@ -12123,8 +12131,8 @@ function isWsl(env) {
12123
12131
  }
12124
12132
  __name(isWsl, "isWsl");
12125
12133
  function getVoiceUnavailableReason(environment = {
12126
- platform: process5.platform,
12127
- env: process5.env
12134
+ platform: process6.platform,
12135
+ env: process6.env
12128
12136
  }) {
12129
12137
  const { platform: platform2, env } = environment;
12130
12138
  const fileExists = environment.fileExists ?? existsSync2;
@@ -14109,10 +14117,10 @@ var updateCommand = {
14109
14117
  { performStandaloneUpdate },
14110
14118
  installationInfo
14111
14119
  ] = await Promise.all([
14112
- import("./updateCheck-LOS5GYFC.js"),
14113
- import("./processUtils-7XQG7EHS.js"),
14114
- import("./standalone-update-QP742MGP.js"),
14115
- import("./installationInfo-XXB75T7O.js")
14120
+ import("./updateCheck-VBRNPLS4.js"),
14121
+ import("./processUtils-M635AD23.js"),
14122
+ import("./standalone-update-5NN3MTYH.js"),
14123
+ import("./installationInfo-6USRNCD2.js")
14116
14124
  ]);
14117
14125
  const { formatUpdateInstructions, getInstallationInfo: getInstallationInfo2 } = installationInfo;
14118
14126
  const settings = context.services.settings;
@@ -14344,7 +14352,7 @@ var BuiltinCommandLoader = class {
14344
14352
  // packages/cli/src/services/BundledSkillLoader.ts
14345
14353
  init_esbuild_shims();
14346
14354
  import { dirname as dirname2 } from "node:path";
14347
- var debugLogger12 = createDebugLogger("BUNDLED_SKILL_LOADER");
14355
+ var debugLogger13 = createDebugLogger("BUNDLED_SKILL_LOADER");
14348
14356
  var BundledSkillLoader = class {
14349
14357
  constructor(config) {
14350
14358
  this.config = config;
@@ -14354,12 +14362,12 @@ var BundledSkillLoader = class {
14354
14362
  }
14355
14363
  async loadCommands(_signal) {
14356
14364
  if (this.config?.getBareMode?.()) {
14357
- debugLogger12.debug("Bare mode enabled, skipping bundled skills");
14365
+ debugLogger13.debug("Bare mode enabled, skipping bundled skills");
14358
14366
  return [];
14359
14367
  }
14360
14368
  const skillManager = this.config?.getSkillManager();
14361
14369
  if (!skillManager) {
14362
- debugLogger12.debug("SkillManager not available, skipping bundled skills");
14370
+ debugLogger13.debug("SkillManager not available, skipping bundled skills");
14363
14371
  return [];
14364
14372
  }
14365
14373
  try {
@@ -14367,7 +14375,7 @@ var BundledSkillLoader = class {
14367
14375
  const cronEnabled = this.config?.isCronEnabled() ?? false;
14368
14376
  const cronVisible = allSkills.filter((skill) => {
14369
14377
  if (!cronEnabled && skill.allowedTools?.some((t2) => t2.startsWith("cron_"))) {
14370
- debugLogger12.debug(
14378
+ debugLogger13.debug(
14371
14379
  `Hiding skill "${skill.name}" because cron is not enabled`
14372
14380
  );
14373
14381
  return false;
@@ -14378,7 +14386,7 @@ var BundledSkillLoader = class {
14378
14386
  const skills = cronVisible.filter(
14379
14387
  (skill) => !disabled.has(skill.name.toLowerCase())
14380
14388
  );
14381
- debugLogger12.debug(
14389
+ debugLogger13.debug(
14382
14390
  `Loaded ${skills.length} bundled skill(s) as slash commands; ${cronVisible.length - skills.length} hidden by skills.disabled`
14383
14391
  );
14384
14392
  return skills.map((skill) => ({
@@ -14440,7 +14448,7 @@ ${body}`;
14440
14448
  }, "action")
14441
14449
  }));
14442
14450
  } catch (error) {
14443
- debugLogger12.error("Failed to load bundled skills:", error);
14451
+ debugLogger13.error("Failed to load bundled skills:", error);
14444
14452
  return [];
14445
14453
  }
14446
14454
  }
@@ -14720,7 +14728,7 @@ var ShellProcessor = class {
14720
14728
 
14721
14729
  // packages/cli/src/services/prompt-processors/atFileProcessor.ts
14722
14730
  init_esbuild_shims();
14723
- var debugLogger13 = createDebugLogger("AT_FILE_PROCESSOR");
14731
+ var debugLogger14 = createDebugLogger("AT_FILE_PROCESSOR");
14724
14732
  var AtFileProcessor = class {
14725
14733
  constructor(commandName) {
14726
14734
  this.commandName = commandName;
@@ -14766,7 +14774,7 @@ var AtFileProcessor = class {
14766
14774
  } catch (error) {
14767
14775
  const message2 = error instanceof Error ? error.message : String(error);
14768
14776
  const uiMessage = `Failed to inject content for '@{${pathStr}}': ${message2}`;
14769
- debugLogger13.error(
14777
+ debugLogger14.error(
14770
14778
  `[AtFileProcessor] ${uiMessage}. Leaving placeholder in prompt.`
14771
14779
  );
14772
14780
  context.ui.addItem(
@@ -14791,7 +14799,7 @@ var AtFileProcessor = class {
14791
14799
  };
14792
14800
 
14793
14801
  // packages/cli/src/services/command-factory.ts
14794
- var debugLogger14 = createDebugLogger("COMMAND_FACTORY");
14802
+ var debugLogger15 = createDebugLogger("COMMAND_FACTORY");
14795
14803
  function createSlashCommandFromDefinition(filePath, baseDir, definition, extensionName, fileExtension) {
14796
14804
  const relativePathWithExt = path16.relative(baseDir, filePath);
14797
14805
  const relativePath = relativePathWithExt.substring(
@@ -14835,7 +14843,7 @@ function createSlashCommandFromDefinition(filePath, baseDir, definition, extensi
14835
14843
  whenToUse: definition.whenToUse,
14836
14844
  action: /* @__PURE__ */ __name(async (context, _args) => {
14837
14845
  if (!context.invocation) {
14838
- debugLogger14.error(
14846
+ debugLogger15.error(
14839
14847
  `[FileCommandLoader] Critical error: Command '${baseCommandName}' was executed without invocation context.`
14840
14848
  );
14841
14849
  return {
@@ -14873,7 +14881,7 @@ function createSlashCommandFromDefinition(filePath, baseDir, definition, extensi
14873
14881
  __name(createSlashCommandFromDefinition, "createSlashCommandFromDefinition");
14874
14882
 
14875
14883
  // packages/cli/src/services/FileCommandLoader.ts
14876
- var debugLogger15 = createDebugLogger("FILE_COMMAND_LOADER");
14884
+ var debugLogger16 = createDebugLogger("FILE_COMMAND_LOADER");
14877
14885
  var TomlCommandDefSchema = external_exports.object({
14878
14886
  prompt: external_exports.string({
14879
14887
  required_error: "The 'prompt' field is required.",
@@ -14907,7 +14915,7 @@ var FileCommandLoader = class {
14907
14915
  */
14908
14916
  async loadCommands(signal) {
14909
14917
  if (this.config?.getBareMode?.()) {
14910
- debugLogger15.debug("Bare mode enabled, skipping auto-discovered commands");
14918
+ debugLogger16.debug("Bare mode enabled, skipping auto-discovered commands");
14911
14919
  return [];
14912
14920
  }
14913
14921
  const allCommands = [];
@@ -14951,7 +14959,7 @@ var FileCommandLoader = class {
14951
14959
  const isEnoent = error.code === "ENOENT";
14952
14960
  const isAbortError = error instanceof Error && error.name === "AbortError";
14953
14961
  if (!isEnoent && !isAbortError) {
14954
- debugLogger15.error(
14962
+ debugLogger16.error(
14955
14963
  `[FileCommandLoader] Error loading commands from ${dirInfo.path}:`,
14956
14964
  error
14957
14965
  );
@@ -14971,7 +14979,9 @@ var FileCommandLoader = class {
14971
14979
  dirs.push({ path: Storage.getUserCommandsDir() });
14972
14980
  dirs.push({ path: storage.getProjectCommandsDir() });
14973
14981
  if (this.config) {
14974
- const activeExtensions = this.config.getExtensions().filter((ext) => ext.isActive).sort((a, b) => a.name.localeCompare(b.name));
14982
+ const activeExtensions = this.config.getExtensions().filter(
14983
+ (ext) => ext.isActive && ext.format !== "agent-plugins-v1" && ext.installMetadata?.originSource !== "AgentPlugins"
14984
+ ).sort((a, b) => a.name.localeCompare(b.name));
14975
14985
  for (const ext of activeExtensions) {
14976
14986
  const commandsPaths = this.getExtensionCommandsPaths(ext);
14977
14987
  for (const cmdPath of commandsPaths) {
@@ -15008,7 +15018,7 @@ var FileCommandLoader = class {
15008
15018
  }
15009
15019
  }
15010
15020
  } catch (error) {
15011
- debugLogger15.warn(
15021
+ debugLogger16.warn(
15012
15022
  `Failed to read extension config for ${ext.name}:`,
15013
15023
  error
15014
15024
  );
@@ -15034,7 +15044,7 @@ var FileCommandLoader = class {
15034
15044
  try {
15035
15045
  fileContent = await fs13.readFile(filePath, "utf-8");
15036
15046
  } catch (error) {
15037
- debugLogger15.error(
15047
+ debugLogger16.error(
15038
15048
  `[FileCommandLoader] Failed to read file ${filePath}:`,
15039
15049
  error instanceof Error ? error.message : String(error)
15040
15050
  );
@@ -15044,7 +15054,7 @@ var FileCommandLoader = class {
15044
15054
  try {
15045
15055
  parsed = import_toml.default.parse(fileContent);
15046
15056
  } catch (error) {
15047
- debugLogger15.error(
15057
+ debugLogger16.error(
15048
15058
  `[FileCommandLoader] Failed to parse TOML file ${filePath}:`,
15049
15059
  error instanceof Error ? error.message : String(error)
15050
15060
  );
@@ -15052,7 +15062,7 @@ var FileCommandLoader = class {
15052
15062
  }
15053
15063
  const validationResult = TomlCommandDefSchema.safeParse(parsed);
15054
15064
  if (!validationResult.success) {
15055
- debugLogger15.error(
15065
+ debugLogger16.error(
15056
15066
  `[FileCommandLoader] Skipping invalid command file: ${filePath}. Validation errors:`,
15057
15067
  validationResult.error.flatten()
15058
15068
  );
@@ -15079,7 +15089,7 @@ var FileCommandLoader = class {
15079
15089
  try {
15080
15090
  fileContent = await fs13.readFile(filePath, "utf-8");
15081
15091
  } catch (error) {
15082
- debugLogger15.error(
15092
+ debugLogger16.error(
15083
15093
  `[FileCommandLoader] Failed to read file ${filePath}:`,
15084
15094
  error instanceof Error ? error.message : String(error)
15085
15095
  );
@@ -15089,7 +15099,7 @@ var FileCommandLoader = class {
15089
15099
  try {
15090
15100
  parsed = parseMarkdownCommand(fileContent);
15091
15101
  } catch (error) {
15092
- debugLogger15.error(
15102
+ debugLogger16.error(
15093
15103
  `[FileCommandLoader] Failed to parse Markdown file ${filePath}:`,
15094
15104
  error instanceof Error ? error.message : String(error)
15095
15105
  );
@@ -15097,7 +15107,7 @@ var FileCommandLoader = class {
15097
15107
  }
15098
15108
  const validationResult = MarkdownCommandDefSchema.safeParse(parsed);
15099
15109
  if (!validationResult.success) {
15100
- debugLogger15.error(
15110
+ debugLogger16.error(
15101
15111
  `[FileCommandLoader] Skipping invalid command file: ${filePath}. Validation errors:`,
15102
15112
  validationResult.error.flatten()
15103
15113
  );
@@ -15123,7 +15133,7 @@ var FileCommandLoader = class {
15123
15133
 
15124
15134
  // packages/cli/src/services/saved-workflow-loader.ts
15125
15135
  init_esbuild_shims();
15126
- var debugLogger16 = createDebugLogger("SavedWorkflowLoader");
15136
+ var debugLogger17 = createDebugLogger("SavedWorkflowLoader");
15127
15137
  var SavedWorkflowLoader = class {
15128
15138
  constructor(config) {
15129
15139
  this.config = config;
@@ -15142,7 +15152,7 @@ var SavedWorkflowLoader = class {
15142
15152
  try {
15143
15153
  entries = await listSavedWorkflows(this.config);
15144
15154
  } catch (e) {
15145
- debugLogger16.debug(`listSavedWorkflows failed: ${e}`);
15155
+ debugLogger17.debug(`listSavedWorkflows failed: ${e}`);
15146
15156
  return [];
15147
15157
  }
15148
15158
  if (signal.aborted) return [];
@@ -15458,7 +15468,7 @@ var McpPromptLoader = class {
15458
15468
  // packages/cli/src/services/SkillCommandLoader.ts
15459
15469
  init_esbuild_shims();
15460
15470
  import { dirname as dirname3 } from "node:path";
15461
- var debugLogger17 = createDebugLogger("SKILL_COMMAND_LOADER");
15471
+ var debugLogger18 = createDebugLogger("SKILL_COMMAND_LOADER");
15462
15472
  async function recordAutoSkillCommandUsage(config, command) {
15463
15473
  const detail = command.skillDetail;
15464
15474
  if (!config || detail?.level !== "project" || !detail.filePath) {
@@ -15471,7 +15481,7 @@ async function recordAutoSkillCommandUsage(config, command) {
15471
15481
  filePath: detail.filePath
15472
15482
  });
15473
15483
  } catch (error) {
15474
- debugLogger17.warn(
15484
+ debugLogger18.warn(
15475
15485
  `Failed to record auto-skill command usage: ${error instanceof Error ? error.message : String(error)}`
15476
15486
  );
15477
15487
  }
@@ -15486,12 +15496,12 @@ var SkillCommandLoader = class {
15486
15496
  }
15487
15497
  async loadCommands(_signal) {
15488
15498
  if (this.config?.getBareMode?.()) {
15489
- debugLogger17.debug("Bare mode enabled, skipping skill commands");
15499
+ debugLogger18.debug("Bare mode enabled, skipping skill commands");
15490
15500
  return [];
15491
15501
  }
15492
15502
  const skillManager = this.config?.getSkillManager();
15493
15503
  if (!skillManager) {
15494
- debugLogger17.debug("SkillManager not available, skipping skill commands");
15504
+ debugLogger18.debug("SkillManager not available, skipping skill commands");
15495
15505
  return [];
15496
15506
  }
15497
15507
  try {
@@ -15508,7 +15518,7 @@ var SkillCommandLoader = class {
15508
15518
  const nonUserInvocableCount = visibleSkills.filter(
15509
15519
  (skill) => skill.userInvocable === false
15510
15520
  ).length;
15511
- debugLogger17.debug(
15521
+ debugLogger18.debug(
15512
15522
  `Loaded ${userSkills.length} user + ${projectSkills.length} project + ${extensionSkills.length} extension skill(s) as slash commands; ${allSkills.length - visibleSkills.length} hidden by skills.disabled; ${nonUserInvocableCount} marked non-user-invocable`
15513
15523
  );
15514
15524
  return visibleSkills.map((skill) => {
@@ -15565,7 +15575,7 @@ var SkillCommandLoader = class {
15565
15575
  };
15566
15576
  });
15567
15577
  } catch (error) {
15568
- debugLogger17.error("Failed to load skill commands:", error);
15578
+ debugLogger18.error("Failed to load skill commands:", error);
15569
15579
  return [];
15570
15580
  }
15571
15581
  }
@@ -15640,7 +15650,7 @@ function formatUserPromptExpansionBlockedMessage(reason) {
15640
15650
  __name(formatUserPromptExpansionBlockedMessage, "formatUserPromptExpansionBlockedMessage");
15641
15651
 
15642
15652
  // packages/cli/src/nonInteractiveCliCommands.ts
15643
- var debugLogger18 = createDebugLogger("NON_INTERACTIVE_COMMANDS");
15653
+ var debugLogger19 = createDebugLogger("NON_INTERACTIVE_COMMANDS");
15644
15654
  function getSkillCommandName(command) {
15645
15655
  return command.skillDetail?.name ?? command.name;
15646
15656
  }
@@ -15671,7 +15681,8 @@ function handleCommandResult(result, outputHistoryItems) {
15671
15681
  return {
15672
15682
  type: "goal_control",
15673
15683
  operation: result.operation,
15674
- response: result.response
15684
+ response: result.response,
15685
+ ...result.cause ? { cause: result.cause } : {}
15675
15686
  };
15676
15687
  /**
15677
15688
  * Currently return types below are never generated due to the
@@ -15814,7 +15825,7 @@ async function registerModelInvocableCommands(commandService, config, executionM
15814
15825
  await skillManager?.notifyConfigChanged();
15815
15826
  }
15816
15827
  __name(registerModelInvocableCommands, "registerModelInvocableCommands");
15817
- var handleSlashCommand = /* @__PURE__ */ __name(async (rawQuery, abortController, config, settings) => {
15828
+ var handleSlashCommand = /* @__PURE__ */ __name(async (rawQuery, abortController, config, settings, sessionHooks) => {
15818
15829
  const trimmed = rawQuery.trim();
15819
15830
  if (!trimmed.startsWith("/")) {
15820
15831
  return { type: "no_command" };
@@ -15979,7 +15990,8 @@ var handleSlashCommand = /* @__PURE__ */ __name(async (rawQuery, abortController
15979
15990
  ui,
15980
15991
  session: {
15981
15992
  stats: sessionStats,
15982
- sessionShellAllowlist: /* @__PURE__ */ new Set()
15993
+ sessionShellAllowlist: /* @__PURE__ */ new Set(),
15994
+ ...sessionHooks?.startNewSession ? { startNewSession: sessionHooks.startNewSession } : {}
15983
15995
  },
15984
15996
  invocation: {
15985
15997
  raw: trimmed,
@@ -16064,14 +16076,14 @@ var getAvailableCommands = /* @__PURE__ */ __name(async (config, abortSignal, mo
16064
16076
  );
16065
16077
  return commandService.getCommandsForMode(mode);
16066
16078
  } catch (error) {
16067
- debugLogger18.error("Error loading available commands:", error);
16079
+ debugLogger19.error("Error loading available commands:", error);
16068
16080
  return [];
16069
16081
  }
16070
16082
  }, "getAvailableCommands");
16071
16083
 
16072
16084
  // packages/cli/src/utils/nonInteractiveHelpers.ts
16073
16085
  init_esbuild_shims();
16074
- var debugLogger19 = createDebugLogger("NON_INTERACTIVE");
16086
+ var debugLogger20 = createDebugLogger("NON_INTERACTIVE");
16075
16087
  function normalizePartList(parts) {
16076
16088
  if (!parts) {
16077
16089
  return [];
@@ -16169,7 +16181,7 @@ async function loadSlashCommandNames(config) {
16169
16181
  );
16170
16182
  return commands.map((cmd) => cmd.name).sort();
16171
16183
  } catch (error) {
16172
- debugLogger19.error(
16184
+ debugLogger20.error(
16173
16185
  "[buildSystemMessage] Failed to load slash commands:",
16174
16186
  error
16175
16187
  );
@@ -16194,7 +16206,7 @@ async function buildSystemMessage(config, sessionId, permissionMode) {
16194
16206
  const subagents = await subagentManager.listSubagents();
16195
16207
  agentNames = subagents.map((subagent) => subagent.name);
16196
16208
  } catch (error) {
16197
- debugLogger19.error("[buildSystemMessage] Failed to load subagents:", error);
16209
+ debugLogger20.error("[buildSystemMessage] Failed to load subagents:", error);
16198
16210
  }
16199
16211
  const systemMessage = {
16200
16212
  type: "system",
@@ -16376,12 +16388,14 @@ export {
16376
16388
  findMidInputSlashCommand,
16377
16389
  getBestSlashCommandMatch,
16378
16390
  findSlashCommandTokens,
16391
+ formatEffortChangeMessage,
16379
16392
  getTranslatedSourceDisplayMap,
16380
16393
  DISPLAY_HOOK_EVENTS,
16381
16394
  supportsMatchers,
16382
16395
  createEmptyHookEventInfo,
16383
16396
  addConfigToMatcherGroup,
16384
16397
  getAllConfigs,
16398
+ isPickerOnlyModelInvocation,
16385
16399
  refreshExtensionContentRuntime,
16386
16400
  dayKey,
16387
16401
  parseDayKey,