@qwen-code/qwen-code 0.23.2 → 0.23.3

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 (373) hide show
  1. package/README.md +35 -15
  2. package/bundled/computer-use/SKILL.md +1 -1
  3. package/bundled/qc-helper/docs/configuration/model-providers.md +66 -28
  4. package/bundled/qc-helper/docs/configuration/settings.md +5 -3
  5. package/bundled/qc-helper/docs/features/_meta.ts +1 -0
  6. package/bundled/qc-helper/docs/features/channels/dws.md +7 -1
  7. package/bundled/qc-helper/docs/features/commands.md +57 -9
  8. package/bundled/qc-helper/docs/features/computer-use.md +1 -1
  9. package/bundled/qc-helper/docs/features/cross-session-protocol.md +320 -0
  10. package/bundled/qc-helper/docs/features/goals.md +1 -1
  11. package/bundled/qc-helper/docs/qwen-serve.md +16 -3
  12. package/bundled/review/SKILL.md +82 -79
  13. package/bundled/review/references/posting.md +31 -14
  14. package/chunks/{MaxSizedBox-4C3BKKKY.js → MaxSizedBox-D4LW7RZZ.js} +58 -51
  15. package/chunks/{StandaloneSessionPicker-TXVF65YW.js → StandaloneSessionPicker-ALTTRWUP.js} +80 -73
  16. package/chunks/acp-subagent-executor-LEUN3N7N.js +919 -0
  17. package/chunks/{acpAgent-H5XBKGB4.js → acpAgent-BBSW7XZG.js} +509 -201
  18. package/chunks/{agent-T5LEFJIU.js → agent-SQ6OY3QD.js} +42 -36
  19. package/chunks/{agent-headless-VZKSRH36.js → agent-headless-RI2THRQ7.js} +42 -36
  20. package/chunks/{anthropicContentGenerator-PRJWWVYJ.js → anthropicContentGenerator-JSKMKS6V.js} +66 -34
  21. package/chunks/{artifact-tool-G5LHNECG.js → artifact-tool-PMYZCYNH.js} +2 -2
  22. package/chunks/{askUserQuestion-I5W5S3D6.js → askUserQuestion-4M4YYIB4.js} +2 -2
  23. package/chunks/{bridge-AOX5IY44.js → bridge-DAFMI72L.js} +62 -55
  24. package/chunks/{channel-management-service-MWQGHPAS.js → channel-management-service-OWDXVL7R.js} +8 -8
  25. package/chunks/{channel-settings-store-XZCGDGHW.js → channel-settings-store-4I6JONT7.js} +69 -62
  26. package/chunks/{channel-worker-group-SQ5FRWOH.js → channel-worker-group-F2ZZMLNS.js} +8 -8
  27. package/chunks/{channel-worker-manager-TU4ZNWOE.js → channel-worker-manager-2SZLJJSJ.js} +18 -9
  28. package/chunks/{channel-worker-supervisor-EMITFMCP.js → channel-worker-supervisor-ZFNWMG6D.js} +6 -6
  29. package/chunks/{chunk-GNY7B3CA.js → chunk-2ALXPGB4.js} +1 -1
  30. package/chunks/{chunk-LUNC5KCL.js → chunk-2PJRI3EH.js} +7 -7
  31. package/chunks/{chunk-CLKE4IY3.js → chunk-2SZH22YO.js} +1 -1
  32. package/chunks/{chunk-RNAJVXUG.js → chunk-2ZN3O5FT.js} +6 -6
  33. package/chunks/{chunk-HIXUUCGY.js → chunk-36HCNKDS.js} +1 -1
  34. package/chunks/{chunk-FGHPZGOP.js → chunk-3BTSSIJO.js} +38 -54
  35. package/chunks/{chunk-VBLAI2HA.js → chunk-3FPYT6QC.js} +0 -31
  36. package/chunks/{chunk-QB3KS3N3.js → chunk-3I7W2POO.js} +1 -1
  37. package/chunks/{chunk-QTB4VP4K.js → chunk-3KQBQ6FM.js} +136 -11
  38. package/chunks/{chunk-JO77FGNZ.js → chunk-3UXUOFO6.js} +19 -7
  39. package/chunks/{chunk-WDN64MVT.js → chunk-3XLK2QMY.js} +82 -16
  40. package/chunks/chunk-532WHF4F.js +127 -0
  41. package/chunks/{chunk-NX7ZTXFF.js → chunk-53GWJOLP.js} +1 -1
  42. package/chunks/{chunk-QQK4L3UU.js → chunk-5GLDOLNQ.js} +131 -26
  43. package/chunks/{chunk-WK7P62DV.js → chunk-5KI7ZDTB.js} +6 -6
  44. package/chunks/{chunk-ERXNTINK.js → chunk-6JACAGYH.js} +1 -1
  45. package/chunks/{chunk-CMWU6P4D.js → chunk-6W4HBUA2.js} +1 -1
  46. package/chunks/{chunk-AUTUFD5X.js → chunk-76RGWKLS.js} +1 -1
  47. package/chunks/{chunk-PDN7FJZV.js → chunk-7APZIRH3.js} +2 -2
  48. package/chunks/{chunk-WBU2PIZ5.js → chunk-7BXXIQG4.js} +16 -16
  49. package/chunks/{chunk-APXIW2TF.js → chunk-7ICHPMBQ.js} +4 -4
  50. package/chunks/{chunk-CWVZBIZJ.js → chunk-7Q2AXRDJ.js} +1 -1
  51. package/chunks/{chunk-WDVV3LRM.js → chunk-7QYWGTHB.js} +1 -1
  52. package/chunks/{chunk-RM244SCQ.js → chunk-AC6KDLH3.js} +1 -1
  53. package/chunks/{chunk-2WC3Y7YY.js → chunk-AEY27Z35.js} +401 -23
  54. package/chunks/{chunk-XDNFODER.js → chunk-AXTFYDXT.js} +1 -1
  55. package/chunks/chunk-AYEJOTIU.js +43 -0
  56. package/chunks/{chunk-ZN5TKAVR.js → chunk-BV6Q5HMY.js} +3 -3
  57. package/chunks/{chunk-TOOOLHVS.js → chunk-BWAMMKIS.js} +3 -3
  58. package/chunks/{chunk-IRGDIDGJ.js → chunk-BWQLXU37.js} +26 -19
  59. package/chunks/{process-registry-OAEG6WGC.js → chunk-BYUAT5OC.js} +1 -0
  60. package/chunks/{chunk-GOEVQADN.js → chunk-BZM5U74J.js} +287 -169
  61. package/chunks/chunk-CF5KXZZX.js +150 -0
  62. package/chunks/{chunk-TGNNLRC3.js → chunk-CJ3DHN5I.js} +1 -0
  63. package/chunks/{chunk-PFKGV6PO.js → chunk-CUEXOHQH.js} +9 -9
  64. package/chunks/chunk-CXTPVBFA.js +937 -0
  65. package/chunks/{chunk-LEAOJ43M.js → chunk-DAWWT2ID.js} +62 -59
  66. package/chunks/{chunk-CALTQWTZ.js → chunk-DLH7YIX6.js} +2 -2
  67. package/chunks/chunk-DT75RKNH.js +691 -0
  68. package/chunks/{chunk-TRWQQBVH.js → chunk-DTNV6UZY.js} +1 -1
  69. package/chunks/{chunk-3OAXF3UK.js → chunk-DYFOSJHU.js} +3080 -933
  70. package/chunks/{chunk-GSFV5RQW.js → chunk-E4UEO3XM.js} +3 -2
  71. package/chunks/{chunk-A7EFXK7P.js → chunk-E7LB57MB.js} +5 -5
  72. package/chunks/{chunk-KEPC5BOL.js → chunk-EDMXGXAK.js} +9 -9
  73. package/chunks/chunk-ELRMZTPF.js +374 -0
  74. package/chunks/chunk-ERU3SDXT.js +27 -0
  75. package/chunks/{chunk-O2FEO2CB.js → chunk-EUURTIV6.js} +18 -2
  76. package/chunks/{chunk-QFJZAY7W.js → chunk-EVTNACMT.js} +3 -3
  77. package/chunks/{chunk-4HOEU2OR.js → chunk-EWJTAP3Y.js} +1 -19
  78. package/chunks/{chunk-YQGW3M6Z.js → chunk-F42YYSCK.js} +8 -8
  79. package/chunks/{chunk-7PD7ZMX5.js → chunk-FCQJLMA2.js} +98 -5
  80. package/chunks/{chunk-4VY3ITHR.js → chunk-FN3JNDRU.js} +3 -3
  81. package/chunks/{chunk-R457KFV7.js → chunk-GCDXVPFK.js} +3 -3
  82. package/chunks/{chunk-IR6JKBAP.js → chunk-GOXQL4YH.js} +2 -2
  83. package/chunks/{chunk-YLOHCA6I.js → chunk-GSILBZLN.js} +2 -2
  84. package/chunks/{chunk-LNYV4GXX.js → chunk-GSKX53AN.js} +0 -139
  85. package/chunks/{chunk-4WMGYG3F.js → chunk-HBQ2NXOU.js} +2 -2
  86. package/chunks/{chunk-F2NYVASI.js → chunk-HBU7EKY4.js} +14 -12
  87. package/chunks/{chunk-6G4V7SE4.js → chunk-HG46TTAG.js} +1 -1
  88. package/chunks/{chunk-G5VOXCRX.js → chunk-HGAELO7B.js} +2 -2
  89. package/chunks/{chunk-FETY36NQ.js → chunk-HGEUHUEV.js} +1 -1
  90. package/chunks/{chunk-E6TI726I.js → chunk-HUXPEUFL.js} +1 -1
  91. package/chunks/{chunk-LYT2OU7D.js → chunk-IAEXTMED.js} +1 -1
  92. package/chunks/{chunk-IW6RQPQB.js → chunk-IJOS26LH.js} +1 -3
  93. package/chunks/{chunk-ORFIYTI2.js → chunk-IK2MWJP5.js} +1 -1
  94. package/chunks/{chunk-WXD7INFV.js → chunk-IL5M5NYD.js} +8 -8
  95. package/chunks/{chunk-KA5HR3G2.js → chunk-IUVIBDKU.js} +2 -2
  96. package/chunks/{chunk-5DQ4YTIZ.js → chunk-IV7GDNKC.js} +1 -1
  97. package/chunks/chunk-JL6APGBX.js +43 -0
  98. package/chunks/{chunk-N6S3NUYJ.js → chunk-JXNIF2O5.js} +1 -1
  99. package/chunks/{chunk-DAI65CMX.js → chunk-JYKWOREU.js} +1 -1
  100. package/chunks/chunk-K2OJUPOE.js +78 -0
  101. package/chunks/{chunk-KFECPHLV.js → chunk-KFZYGSJN.js} +3 -3
  102. package/chunks/{chunk-BK7D2JR6.js → chunk-KOKPXIAN.js} +3 -3
  103. package/chunks/{chunk-4I3WFI3U.js → chunk-LDVNJZGH.js} +12 -12
  104. package/chunks/{chunk-WXFCI3O5.js → chunk-LG5Y4OWO.js} +2 -2
  105. package/chunks/{chunk-3LPJ776W.js → chunk-LILGKQ4B.js} +10 -7
  106. package/chunks/{chunk-X7LFJF5D.js → chunk-LK2WUCDQ.js} +36 -84
  107. package/chunks/{chunk-7LTCFO6T.js → chunk-MF6E7FSA.js} +6 -5
  108. package/chunks/{chunk-ELD3OBPU.js → chunk-MHAADZOZ.js} +3 -3
  109. package/chunks/{chunk-4JNHNVAZ.js → chunk-MLQNSPRZ.js} +4 -4
  110. package/chunks/{chunk-NPKCVSXX.js → chunk-MOS5OAOG.js} +10 -8
  111. package/chunks/{chunk-IWABUX6T.js → chunk-MSNHNAQZ.js} +6 -6
  112. package/chunks/{chunk-HJ5UJQQL.js → chunk-N7VWZDWW.js} +1699 -1312
  113. package/chunks/{chunk-NB3NDQQK.js → chunk-NE624IVP.js} +1 -1
  114. package/chunks/{chunk-SOA4HKRJ.js → chunk-NFYEQRLG.js} +2 -2
  115. package/chunks/{chunk-G3ZUMSFS.js → chunk-NHCZJQE4.js} +6 -6
  116. package/chunks/{chunk-B25JYXZE.js → chunk-NHJKAR6E.js} +4 -4
  117. package/chunks/{chunk-ZP5XDLSA.js → chunk-NJQTG2G3.js} +12 -12
  118. package/chunks/{chunk-DARWOZY6.js → chunk-NLNQNBZ2.js} +1 -1
  119. package/chunks/{chunk-CCBTNJB4.js → chunk-NMCDMLHL.js} +27 -27
  120. package/chunks/{chunk-AO2VMS72.js → chunk-NMRCXKQ5.js} +3 -3
  121. package/chunks/{chunk-5BH2AIEY.js → chunk-NOAG7N22.js} +2 -2
  122. package/chunks/{chunk-VJJXG73H.js → chunk-NRXWJXJ4.js} +15 -0
  123. package/chunks/chunk-NUQ4GK5I.js +315 -0
  124. package/chunks/{chunk-J3VZF2AL.js → chunk-NUQVB25K.js} +2 -2
  125. package/chunks/{chunk-U6REWGVR.js → chunk-OLTN767L.js} +2 -2
  126. package/chunks/{chunk-R3JIDRUL.js → chunk-OX7IZ2G5.js} +4 -4
  127. package/chunks/{chunk-QAZ2MGYT.js → chunk-PLLIWEM3.js} +2 -2
  128. package/chunks/{chunk-KCF2436G.js → chunk-POC3YMHG.js} +4 -4
  129. package/chunks/{chunk-HZ2HUXX7.js → chunk-Q2LVVIKF.js} +1 -1
  130. package/chunks/{chunk-7NDZKE2M.js → chunk-Q5BD56BW.js} +3 -3
  131. package/chunks/{chunk-22GORRNY.js → chunk-QMUYLYT5.js} +1 -1
  132. package/chunks/{chunk-MV5DTLJV.js → chunk-R4Q2PEFV.js} +1 -1
  133. package/chunks/{chunk-GOKAOSCN.js → chunk-RLLRJJDR.js} +1 -1
  134. package/chunks/{chunk-5OZUKLL7.js → chunk-RWVD5RRY.js} +4 -4
  135. package/chunks/{chunk-ULZECEIP.js → chunk-RZHU3K6M.js} +2 -2
  136. package/chunks/{chunk-UYDQYDW2.js → chunk-S6Q6Q4P2.js} +1 -1
  137. package/chunks/{chunk-PQEISIKS.js → chunk-SAH4BD2J.js} +0 -67
  138. package/chunks/{chunk-LWX4WDFF.js → chunk-SBRX4BDI.js} +43 -15
  139. package/chunks/{chunk-TODNHE76.js → chunk-SODMFNAR.js} +5 -5
  140. package/chunks/{chunk-FAJPLSYF.js → chunk-SSGAAWLY.js} +89 -85
  141. package/chunks/{chunk-46MMBZHI.js → chunk-SYLECP23.js} +4 -4
  142. package/chunks/{chunk-6RZX2HIH.js → chunk-TBEXLLAO.js} +2 -2
  143. package/chunks/{chunk-MWIO7MF6.js → chunk-TP6FYVQT.js} +2 -0
  144. package/chunks/{chunk-HRPFBHW7.js → chunk-TPKQIA7G.js} +1 -0
  145. package/chunks/{chunk-QHLHE2OT.js → chunk-TWUKBNWM.js} +1 -1
  146. package/chunks/{chunk-H3Q3RSKZ.js → chunk-U7O65WKL.js} +1 -1
  147. package/chunks/{chunk-S5QR6CB5.js → chunk-UKMWZ5NS.js} +108 -887
  148. package/chunks/{chunk-OXR34GCD.js → chunk-UKZ45TJL.js} +1851 -34
  149. package/chunks/{chunk-CALNF3Z3.js → chunk-V2P3DOQR.js} +1 -1
  150. package/chunks/{chunk-FV4DM2M4.js → chunk-VG3Q2NC4.js} +7 -7
  151. package/chunks/{chunk-QTNCGZHQ.js → chunk-VX63RJXE.js} +9 -0
  152. package/chunks/{chunk-CRZBDVP2.js → chunk-VZUCTJ2P.js} +4 -4
  153. package/chunks/{chunk-2BMXHB6N.js → chunk-W5FIP7FC.js} +7 -7
  154. package/chunks/{chunk-7VEYUF3N.js → chunk-W5ZQMAEM.js} +1 -1
  155. package/chunks/{chunk-XQ4RDO5B.js → chunk-WBCPROWX.js} +1 -1
  156. package/chunks/{chunk-JYGIJA4W.js → chunk-X6K77VHC.js} +1 -1
  157. package/chunks/{chunk-7SVM3RP2.js → chunk-X7UJKOHZ.js} +3 -3
  158. package/chunks/{chunk-WXPPUPHM.js → chunk-XBZTAGB7.js} +1 -1
  159. package/chunks/{chunk-TRQNRP2H.js → chunk-XGYHNWL3.js} +45 -2
  160. package/chunks/{chunk-2EKVPSIJ.js → chunk-Y2MYW47X.js} +1 -1
  161. package/chunks/{chunk-OFVAS4AR.js → chunk-YBUMTY7B.js} +1 -1
  162. package/chunks/{chunk-67XTVRVB.js → chunk-YQHLFCPU.js} +7 -7
  163. package/chunks/{chunk-G37O7YO6.js → chunk-Z3GF56ME.js} +2 -2
  164. package/chunks/{chunk-XBVNNDPK.js → chunk-ZHKTKHMO.js} +8 -1
  165. package/chunks/{chunk-OWCFKIFQ.js → chunk-ZKYR7QS4.js} +1 -1
  166. package/chunks/{chunk-YZTGGCEE.js → chunk-ZKZHSB5W.js} +1 -1
  167. package/chunks/{chunk-565U2ANU.js → chunk-ZTTC7T4X.js} +1 -1
  168. package/chunks/{chunk-XSOXPG2L.js → chunk-ZU47FBOC.js} +36 -7
  169. package/chunks/{chunk-7OCIQNKX.js → chunk-ZW2EUO2A.js} +1 -1
  170. package/chunks/{config-utils-GPLIABL2.js → config-utils-L6KLDYIV.js} +62 -55
  171. package/chunks/{contextCommand-NCUQUDBY.js → contextCommand-UYEH7NIU.js} +59 -52
  172. package/chunks/{core-runtime-WKYKWVYU.js → core-runtime-NVHT3Z3V.js} +61 -54
  173. package/chunks/{create-sub-session-TGIX63YU.js → create-sub-session-TIGCFGCS.js} +2 -2
  174. package/chunks/{create-sub-session-PPLXB3JJ.js → create-sub-session-YWASE5VH.js} +59 -52
  175. package/chunks/{cron-create-GTPVMJCF.js → cron-create-AKWX67FO.js} +1 -1
  176. package/chunks/{cron-delete-ZBK27Z4K.js → cron-delete-XPB6IYZJ.js} +1 -1
  177. package/chunks/{cron-list-KTFKFDKC.js → cron-list-XBKO4WU5.js} +1 -1
  178. package/chunks/{daemon-2CKIAO3I.js → daemon-G5TYKZD6.js} +2 -2
  179. package/chunks/{daemon-git-worktree-guard-73ZWOLKL.js → daemon-git-worktree-guard-FOW4RQSK.js} +60 -53
  180. package/chunks/{daemon-status-provider-OK7VONJG.js → daemon-status-provider-O5KQZYMP.js} +67 -60
  181. package/chunks/{daemon-trust-policy-CAUCREG2.js → daemon-trust-policy-3ATXEON7.js} +64 -57
  182. package/chunks/{daemon-trust-policy-monitor-3Y36OOEQ.js → daemon-trust-policy-monitor-7MCNDNEC.js} +64 -57
  183. package/chunks/{deferred-core-runtime-Q7WFWYD3.js → deferred-core-runtime-JK5IXL5K.js} +57 -50
  184. package/chunks/{display-image-CTNHJRZC.js → display-image-NAH3AZ63.js} +3 -3
  185. package/chunks/{dist-NP7QKLVG.js → dist-AHJYPSJL.js} +3 -3
  186. package/chunks/{dist-6YDUH3BB.js → dist-AIKC5E5P.js} +2 -2
  187. package/chunks/{dist-Y5KC3IHW.js → dist-F2DVGTL3.js} +225 -6
  188. package/chunks/{dist-BNQVF565.js → dist-GWNQVPZT.js} +5 -5
  189. package/chunks/{dist-F6JLAJLE.js → dist-H6G3K26N.js} +3 -3
  190. package/chunks/{dist-ZDNJK74R.js → dist-KJGRVIGJ.js} +2 -2
  191. package/chunks/{dist-F34J4FZX.js → dist-KLZ7XGEQ.js} +2 -2
  192. package/chunks/{dist-UFTFGI6I.js → dist-ZA52JXAS.js} +2 -2
  193. package/chunks/{dist-XLV33CLY.js → dist-ZXTZTE54.js} +2 -2
  194. package/chunks/{edit-YJD6IETK.js → edit-SY35KYIE.js} +45 -39
  195. package/chunks/{en-YJNRUQG4.js → en-CAJHTIQT.js} +1 -0
  196. package/chunks/{enter-worktree-YFTKHXHZ.js → enter-worktree-54L5QJ3N.js} +4 -4
  197. package/chunks/{enterPlanMode-EFPVTWIH.js → enterPlanMode-HXX6KQJR.js} +42 -36
  198. package/chunks/{environment-HP3AXFTB.js → environment-DKXHG4HB.js} +60 -53
  199. package/chunks/{errors-22ON46G7.js → errors-ADY7LQJJ.js} +59 -52
  200. package/chunks/{exit-worktree-NF2XEMES.js → exit-worktree-EORJDKDS.js} +4 -4
  201. package/chunks/{exitPlanMode-MOQUNCBH.js → exitPlanMode-HSK2CQI6.js} +42 -36
  202. package/chunks/{fast-path-2X7BPMXX.js → fast-path-U636VWN2.js} +6 -6
  203. package/chunks/{fast-path-settings-SATXY3PD.js → fast-path-settings-V7MI7EZJ.js} +2 -2
  204. package/chunks/{glob-Y7ACIB3P.js → glob-GUGGTH5L.js} +45 -39
  205. package/chunks/{goal-tools-DABMICUC.js → goal-tools-PXYRSQGX.js} +42 -36
  206. package/chunks/{grep-BLHF2S5D.js → grep-3PKFKLCA.js} +2 -2
  207. package/chunks/{handleAutoUpdate-MCAMHYDI.js → handleAutoUpdate-5KHS4HIN.js} +60 -53
  208. package/chunks/{i18n-C3GDCALP.js → i18n-KSGKMUPT.js} +58 -51
  209. package/chunks/{image-gen-XP4NNIYG.js → image-gen-OCCR2WWU.js} +5 -4
  210. package/chunks/{initializer-4URDQL2G.js → initializer-YYT5XEZF.js} +64 -57
  211. package/chunks/{installationInfo-LBOL6SBV.js → installationInfo-UNSBPYW2.js} +57 -50
  212. package/chunks/{list-JOGBAC2R.js → list-YL6LDQKQ.js} +67 -60
  213. package/chunks/{list-agents-2CXPGJUE.js → list-agents-QLDXS5OD.js} +17 -7
  214. package/chunks/{llm-2KPNSAVY.js → llm-XGGLBGPH.js} +126 -119
  215. package/chunks/{llm-content-generator-GR3FOHLB.js → llm-content-generator-ZHQQT5W7.js} +5 -4
  216. package/chunks/{loadedSettingsAdapter-DVKROEJD.js → loadedSettingsAdapter-3DXLASK7.js} +64 -57
  217. package/chunks/{loggingContentGenerator-P4K6K5W4.js → loggingContentGenerator-V72OCCJO.js} +64 -57
  218. package/chunks/{loop-wakeup-HL6XOWI4.js → loop-wakeup-HHMYIC7Z.js} +2 -2
  219. package/chunks/{ls-YV7RKLKY.js → ls-N7ABR6HI.js} +4 -4
  220. package/chunks/{lsp-NO3AMRZT.js → lsp-LTOFWG5P.js} +1 -1
  221. package/chunks/{managed-npm-update-VWBKHNIN.js → managed-npm-update-HV5LPZH2.js} +57 -50
  222. package/chunks/{mcp-6YYNSYLK.js → mcp-IYVSIW6O.js} +64 -57
  223. package/chunks/{monitor-A255TNZR.js → monitor-TLBNM4MV.js} +44 -38
  224. package/chunks/{nonInteractiveCli-LXGIKQAT.js → nonInteractiveCli-LSJSQ2W4.js} +110 -103
  225. package/chunks/{notebook-edit-5UYHS2DM.js → notebook-edit-OSPOLZP6.js} +43 -37
  226. package/chunks/openai-WX26N5OJ.js +47 -0
  227. package/chunks/{openaiContentGenerator-A6MAMEO5.js → openaiContentGenerator-BE4S5TRD.js} +29 -23
  228. package/chunks/openaiResponsesContentGenerator-RTCAJ5V5.js +1658 -0
  229. package/chunks/{pidfile-B7DZC4TP.js → pidfile-H32FEPWA.js} +57 -50
  230. package/chunks/process-registry-X6ZCASEN.js +10 -0
  231. package/chunks/{processUtils-BPZ2MCZS.js → processUtils-SSLIPDEA.js} +2 -2
  232. package/chunks/{prompt-terminal-ledger-FYYTAOXS.js → prompt-terminal-ledger-I5SLL6UF.js} +58 -51
  233. package/chunks/{qwenContentGenerator-4IOJFD4S.js → qwenContentGenerator-TMQC623Z.js} +55 -47
  234. package/chunks/{qwenOAuth2-KX6LVYQ3.js → qwenOAuth2-3ZRQHHTC.js} +4 -3
  235. package/chunks/{read-file-A4H4O3VQ.js → read-file-T2QAIZE2.js} +11 -9
  236. package/chunks/{read-mcp-resource-D3N75DGF.js → read-mcp-resource-B37WANAQ.js} +1 -1
  237. package/chunks/{record-artifact-Q5CRGJTP.js → record-artifact-OAXWXZ5D.js} +2 -2
  238. package/chunks/record-source-D7R7X3GT.js +22 -0
  239. package/chunks/{report-findings-TJ34R7QK.js → report-findings-AR3VC6EQ.js} +3 -3
  240. package/chunks/{request-shutdown-LRKMTBAD.js → request-shutdown-IKNWTX5M.js} +5 -5
  241. package/chunks/{resumeHistoryUtils-YQQ43E4N.js → resumeHistoryUtils-QLKDH5GY.js} +63 -56
  242. package/chunks/{ripGrep-W32NWFTA.js → ripGrep-YGWL7KCV.js} +15 -13
  243. package/chunks/{run-qwen-serve-WBSWWIRV.js → run-qwen-serve-26KZDECC.js} +127 -102
  244. package/chunks/{runtime-VRVBX2E5.js → runtime-BMEIVDDG.js} +70 -63
  245. package/chunks/{scheduled-tasks-D65KJDA3.js → scheduled-tasks-NCFPP6VQ.js} +64 -57
  246. package/chunks/{scheduler-M2YPN7Z7.js → scheduler-47TVMUVN.js} +59 -52
  247. package/chunks/{sdk-exporters-grpc-MXTVSE3C.js → sdk-exporters-grpc-Y2ZUQDUQ.js} +2 -2
  248. package/chunks/{sdk-exporters-http-7R2ARBPV.js → sdk-exporters-http-VWTF4W6K.js} +3 -3
  249. package/chunks/{sdk-impl-YOLO7LV4.js → sdk-impl-G6FVTBQZ.js} +9 -9
  250. package/chunks/{send-message-76BKWKFZ.js → send-message-TWOGWCBG.js} +12 -9
  251. package/chunks/{serve-BE3H2P6P.js → serve-KL3G6LQQ.js} +64 -57
  252. package/chunks/{server-FLY5JERG.js → server-LBPYXZ5G.js} +2931 -518
  253. package/chunks/{session-JVN62R5K.js → session-YG6742LO.js} +118 -111
  254. package/chunks/{session-attachments-root-7ACGLHXA.js → session-attachments-root-OUBQDYC4.js} +57 -50
  255. package/chunks/{session-pr-refresh-TQS57SDK.js → session-pr-refresh-EKGMYNAW.js} +64 -57
  256. package/chunks/{settings-D44YMZFT.js → settings-DDNHJX2L.js} +69 -62
  257. package/chunks/{shell-3VE6I4V5.js → shell-KUCXWITU.js} +42 -36
  258. package/chunks/{skill-FHEGRRZU.js → skill-JQLKPNWZ.js} +33 -23
  259. package/chunks/{skill-settings-VHEJMBFL.js → skill-settings-XERQCUXZ.js} +63 -56
  260. package/chunks/{spawnChannel-T6MX2ZDN.js → spawnChannel-GQ45QFGB.js} +60 -53
  261. package/chunks/{standalone-update-QUGHFMCS.js → standalone-update-PRF3ILGZ.js} +59 -52
  262. package/chunks/{start-opentui-ui-IHIIZ2LE.js → start-opentui-ui-JDSOZE3N.js} +174 -157
  263. package/chunks/{startInteractiveUI-LR7K2ARZ.js → startInteractiveUI-RRW3JVHN.js} +533 -1119
  264. package/chunks/{syntheticOutput-D2P5V6RG.js → syntheticOutput-F6F27JMK.js} +2 -2
  265. package/chunks/{task-create-MWXJFRRM.js → task-create-Y623TBHB.js} +8 -8
  266. package/chunks/{task-list-EYO3FE57.js → task-list-FCPEEGWL.js} +1 -1
  267. package/chunks/{task-stop-BFSKRTGV.js → task-stop-QTKZXLPH.js} +1 -1
  268. package/chunks/{task-update-2JJJRHMT.js → task-update-YLSXF25N.js} +8 -8
  269. package/chunks/{team-create-GY3VFY47.js → team-create-5DRLOLOE.js} +44 -38
  270. package/chunks/{team-delete-IQZ6XGFI.js → team-delete-S7TLHZCF.js} +1 -1
  271. package/chunks/{team-plan-approval-BQPGZOT5.js → team-plan-approval-MWSGAL5T.js} +42 -36
  272. package/chunks/{terminal-image-renderer-YNYW5CQG.js → terminal-image-renderer-H7PD4FQW.js} +59 -52
  273. package/chunks/{theme-manager-U6CIK3GM.js → theme-manager-7AV73D6R.js} +57 -50
  274. package/chunks/{todoWrite-5ERKFWAK.js → todoWrite-5QI2H2FW.js} +4 -4
  275. package/chunks/{tool-search-XI3QWD5I.js → tool-search-UGYTBLUV.js} +17 -15
  276. package/chunks/{total-session-admission-3SNSJJ32.js → total-session-admission-JIHSTJ5S.js} +62 -55
  277. package/chunks/{trustedFolders-OVAQKNV5.js → trustedFolders-5VCBXFOP.js} +58 -51
  278. package/chunks/{update-relaunch-XV5O74E3.js → update-relaunch-4LF3APCV.js} +5 -5
  279. package/chunks/{updateCheck-CHUYWD6L.js → updateCheck-4T3WUE5F.js} +59 -52
  280. package/chunks/{useAutoAcceptIndicator-VKSVIXZC.js → useAutoAcceptIndicator-UMGB64Z6.js} +67 -60
  281. package/chunks/{validateNonInterActiveAuth-ZNUTD3E5.js → validateNonInterActiveAuth-GFJ72U2C.js} +107 -100
  282. package/chunks/{version-EK7VAGSI.js → version-EAAZN4T2.js} +1 -1
  283. package/chunks/{web-fetch-24KZO763.js → web-fetch-VRU3A2NI.js} +13 -11
  284. package/chunks/{web-search-CRNXKZ2X.js → web-search-NEGYQNDJ.js} +14 -10
  285. package/chunks/{web-shell-static-BFDESDD4.js → web-shell-static-CCN4JZEE.js} +1 -1
  286. package/chunks/workflow-UHPFALVZ.js +1224 -0
  287. package/chunks/{workspace-providers-status-MAM42IZS.js → workspace-providers-status-AEYISSU2.js} +68 -61
  288. package/chunks/{workspace-registration-store-HKLJEDQX.js → workspace-registration-store-A7RGKW62.js} +3 -1
  289. package/chunks/{workspace-registry-7RDDOBLN.js → workspace-registry-C2NGE6SD.js} +62 -55
  290. package/chunks/{workspace-runtime-coordinator-LEPDPXJO.js → workspace-runtime-coordinator-QKMZ24YF.js} +63 -56
  291. package/chunks/{workspace-service-5IFDCNN3.js → workspace-service-RQTTAGGC.js} +70 -63
  292. package/chunks/{workspace-skills-status-FJ3HNH4H.js → workspace-skills-status-5HWZU3HX.js} +65 -58
  293. package/chunks/{workspace-trust-reconciler-PQFHIWLR.js → workspace-trust-reconciler-KFWATZUU.js} +69 -62
  294. package/chunks/{write-file-ERG67ZFX.js → write-file-DPVB2SBQ.js} +44 -38
  295. package/chunks/{zh-VBFCRQBL.js → zh-S5V3Z5CR.js} +1 -0
  296. package/chunks/{zh-TW-N2TBF2F2.js → zh-TW-2K2WRFPY.js} +1 -0
  297. package/chunks/{zoom-image-WQYEC3SR.js → zoom-image-S7AWLAPC.js} +12 -10
  298. package/cli.js +13 -13
  299. package/export-transcript-document.css +1 -0
  300. package/export-transcript-document.js +164 -165
  301. package/locales/en.js +1 -0
  302. package/locales/zh-TW.js +1 -0
  303. package/locales/zh.js +1 -0
  304. package/package.json +5 -4
  305. package/web-shell/assets/{abnfDiagram-VCTEODGH-BRLgQbnT.js → abnfDiagram-VCTEODGH-nU24rpIE.js} +1 -1
  306. package/web-shell/assets/{arc-qAF9_XsR.js → arc-D1hTu8QI.js} +1 -1
  307. package/web-shell/assets/{architectureDiagram-5GKGNRK7-BorUttEz.js → architectureDiagram-5GKGNRK7-B_fgkKe7.js} +1 -1
  308. package/web-shell/assets/{blockDiagram-NRAW4CY4-Bj0qZVxu.js → blockDiagram-NRAW4CY4-C3pddUNg.js} +1 -1
  309. package/web-shell/assets/{c4Diagram-UCG6FXSJ-BTqJis32.js → c4Diagram-UCG6FXSJ-kEFoC1ei.js} +1 -1
  310. package/web-shell/assets/channel-Blod4z1X.js +1 -0
  311. package/web-shell/assets/{chunk-2Q5K7J3B-RrQ5X8m-.js → chunk-2Q5K7J3B-DbT9wS7j.js} +1 -1
  312. package/web-shell/assets/{chunk-5VM5RSS4-uUjDl8wO.js → chunk-5VM5RSS4-CNbULt6O.js} +1 -1
  313. package/web-shell/assets/{chunk-F27PBJKO-C3JhpyzI.js → chunk-F27PBJKO-CbQRy4Tb.js} +1 -1
  314. package/web-shell/assets/{chunk-G27WJ6UU-C8ZNFs7F.js → chunk-G27WJ6UU-CVbXTxYk.js} +1 -1
  315. package/web-shell/assets/{chunk-JWPE2WC7-DNpXtEOs.js → chunk-JWPE2WC7-D89c_BXy.js} +1 -1
  316. package/web-shell/assets/{chunk-LCL6LL3I-DagA2ZLw.js → chunk-LCL6LL3I-B7-I_9KB.js} +1 -1
  317. package/web-shell/assets/{chunk-POPQ4Y6H-R23uH7Xm.js → chunk-POPQ4Y6H-DcLQFzS4.js} +1 -1
  318. package/web-shell/assets/{chunk-SVP7TREG-Qz9RN_BR.js → chunk-SVP7TREG-DyBb2Axj.js} +1 -1
  319. package/web-shell/assets/{chunk-XXDRQBXY-jYb1_hni.js → chunk-XXDRQBXY-BIA0eb5B.js} +1 -1
  320. package/web-shell/assets/classDiagram-DTDB5LWJ-D6hFDMqb.js +1 -0
  321. package/web-shell/assets/classDiagram-v2-JRS7N3AN-D6hFDMqb.js +1 -0
  322. package/web-shell/assets/{cose-bilkent-JH36ORCC-Cv2OunpE.js → cose-bilkent-JH36ORCC-Db2FYN85.js} +1 -1
  323. package/web-shell/assets/{cynefin-OW5HDTMX-LH42KFJx.js → cynefin-OW5HDTMX-i4GwmBVy.js} +1 -1
  324. package/web-shell/assets/{cynefinDiagram-5FMLGOSQ-Dha4_OoR.js → cynefinDiagram-5FMLGOSQ-LENf_IUy.js} +1 -1
  325. package/web-shell/assets/{dagre-3AP2YEHR-Br5lnUKD.js → dagre-3AP2YEHR-CF9XVrD9.js} +1 -1
  326. package/web-shell/assets/{diagram-S7CK7UJ4-dpKq2bBX.js → diagram-S7CK7UJ4-DD5PJfSm.js} +1 -1
  327. package/web-shell/assets/{diagram-UQ7AKVKN-BAgHWpXr.js → diagram-UQ7AKVKN-CjD_sBMj.js} +1 -1
  328. package/web-shell/assets/{diagram-VSXAHHWV-GRRzpyE2.js → diagram-VSXAHHWV-U5WwMqyA.js} +1 -1
  329. package/web-shell/assets/{diagram-VX7I27RA-BNFiaYpG.js → diagram-VX7I27RA-BujpHJJf.js} +1 -1
  330. package/web-shell/assets/{diagram-Z3DM3KII-BisZzB_h.js → diagram-Z3DM3KII-3ZLtKEXo.js} +1 -1
  331. package/web-shell/assets/{ebnfDiagram-PWID7BFC-B1xbwycf.js → ebnfDiagram-PWID7BFC-BGpiquRm.js} +1 -1
  332. package/web-shell/assets/{erDiagram-SSCWMZ5O-CQMzbGE5.js → erDiagram-SSCWMZ5O-D0besu_U.js} +1 -1
  333. package/web-shell/assets/{flowDiagram-A5DVABFB-CZ_Zondl.js → flowDiagram-A5DVABFB-9DwDuIyr.js} +1 -1
  334. package/web-shell/assets/{ganttDiagram-EL5Y4UJY-BTh2ShxS.js → ganttDiagram-EL5Y4UJY-CNlsAeNr.js} +1 -1
  335. package/web-shell/assets/{gitGraphDiagram-WWUBYQGX-oHOB-Uxt.js → gitGraphDiagram-WWUBYQGX-C_pPFiTR.js} +1 -1
  336. package/web-shell/assets/{index-DWoFMu5x.js → index-BYWs4JWq.js} +1 -1
  337. package/web-shell/assets/index-D3YS6KuJ.js +2173 -0
  338. package/web-shell/assets/index-eBxK3rs2.css +36 -0
  339. package/web-shell/assets/{infoDiagram-RXCK75RN-C0QpudbG.js → infoDiagram-RXCK75RN-Bpai64Ll.js} +1 -1
  340. package/web-shell/assets/{ishikawaDiagram-5VMMS53U-a6B741uT.js → ishikawaDiagram-5VMMS53U-ktpJFq4r.js} +1 -1
  341. package/web-shell/assets/{journeyDiagram-EYS64GPL-Dbht9ICp.js → journeyDiagram-EYS64GPL-iz_DKgFX.js} +1 -1
  342. package/web-shell/assets/{kanban-definition-3QL26DDD-D4OFR8-h.js → kanban-definition-3QL26DDD-m_gG00Yt.js} +1 -1
  343. package/web-shell/assets/{layout-Dvdh5jRH.js → layout-qEvKgnvU.js} +1 -1
  344. package/web-shell/assets/{linear-Dvc6KIW2.js → linear-C6lklGdq.js} +1 -1
  345. package/web-shell/assets/{mermaid.core-CB36RfIb.js → mermaid.core-DSCYB_2P.js} +6 -6
  346. package/web-shell/assets/{mindmap-definition-FBJOCRG2-Fmqo1CjP.js → mindmap-definition-FBJOCRG2-DRQbT8w-.js} +1 -1
  347. package/web-shell/assets/{pegDiagram-XKGWAZYB-CCxYBoA4.js → pegDiagram-XKGWAZYB-BhD0q0i6.js} +1 -1
  348. package/web-shell/assets/{pieDiagram-E7YTZNPT-BVHKQFzt.js → pieDiagram-E7YTZNPT-BvIGQCSd.js} +1 -1
  349. package/web-shell/assets/{quadrantDiagram-AXDQQJYC-l95IznwR.js → quadrantDiagram-AXDQQJYC-BDQtfpU-.js} +1 -1
  350. package/web-shell/assets/{railroadDiagram-O6MQD6OU-BlLdRdXp.js → railroadDiagram-O6MQD6OU-E1g2KIFK.js} +1 -1
  351. package/web-shell/assets/{requirementDiagram-EFPCY7ZU-BkDLBR5w.js → requirementDiagram-EFPCY7ZU-CuerYJOe.js} +1 -1
  352. package/web-shell/assets/{sankeyDiagram-P5KCCOFB-jAIqRp65.js → sankeyDiagram-P5KCCOFB-CqWyCZGA.js} +1 -1
  353. package/web-shell/assets/{sequenceDiagram-WJ2MYXX4-f-soZYPr.js → sequenceDiagram-WJ2MYXX4-B-YWb8x4.js} +1 -1
  354. package/web-shell/assets/{sizeCapture-X5ZJPWSS-BzOuAfB2.js → sizeCapture-X5ZJPWSS-BB7YY4Tl.js} +1 -1
  355. package/web-shell/assets/{stateDiagram-HBIQ2CUA-BPLSs12r.js → stateDiagram-HBIQ2CUA-C8LDpNHS.js} +1 -1
  356. package/web-shell/assets/stateDiagram-v2-4QOOHH4V-C4CbdvGa.js +1 -0
  357. package/web-shell/assets/{swimlanes-XN3QIQJK-D-9E_RIR.js → swimlanes-XN3QIQJK-D94vOoxZ.js} +1 -1
  358. package/web-shell/assets/swimlanesDiagram-VK2B7HYN--QNSIOC8.js +8 -0
  359. package/web-shell/assets/{timeline-definition-24CTP7MA-CT56K-gV.js → timeline-definition-24CTP7MA-C9C8uEYm.js} +1 -1
  360. package/web-shell/assets/{vennDiagram-4TSXK5OY-B-vi4IyO.js → vennDiagram-4TSXK5OY-CYzMHbVW.js} +1 -1
  361. package/web-shell/assets/{wardleyDiagram-VM6X3IG4-C9O7Ju98.js → wardleyDiagram-VM6X3IG4-G9nhtLES.js} +1 -1
  362. package/web-shell/assets/{xychartDiagram-S5SC5T6Z-6d8w3jg2.js → xychartDiagram-S5SC5T6Z-ruD2Wjhg.js} +1 -1
  363. package/web-shell/index.html +29 -5
  364. package/chunks/chunk-V7RNNPGC.js +0 -44
  365. package/chunks/workflow-HD5NYMW5.js +0 -2907
  366. package/web-shell/assets/channel-COIuCrVH.js +0 -1
  367. package/web-shell/assets/classDiagram-DTDB5LWJ-DoX6OYqu.js +0 -1
  368. package/web-shell/assets/classDiagram-v2-JRS7N3AN-DoX6OYqu.js +0 -1
  369. package/web-shell/assets/index-CI1ysIEv.js +0 -2154
  370. package/web-shell/assets/index-CpxXGH-8.css +0 -36
  371. package/web-shell/assets/stateDiagram-v2-4QOOHH4V-IRul-LaT.js +0 -1
  372. package/web-shell/assets/swimlanesDiagram-VK2B7HYN-D6lgKepA.js +0 -8
  373. /package/chunks/{chunk-JA5CBKRP.js → chunk-7NXSVSFB.js} +0 -0
@@ -1,5 +1,8 @@
1
1
  // Force strict mode and setup for ESM
2
2
  "use strict";
3
+ import {
4
+ scanForSecrets
5
+ } from "./chunk-BUQN5LTI.js";
3
6
  import {
4
7
  MAX_DROPPED_MSG_IDS,
5
8
  MAX_FRAME_BYTES,
@@ -7,21 +10,16 @@ import {
7
10
  MAX_SENDER_KEY_CHARS,
8
11
  MAX_SOCKET_PATH_BYTES,
9
12
  SOCKET_DIR_NAME,
10
- flattenPeerLabel,
11
13
  isLocalIpcPath,
12
14
  parsePeerAuthLine,
13
15
  parsePeerFrame,
14
16
  peerSenderKey,
15
17
  probePeerSocketVerdict,
16
18
  resolvePeerSocketCandidates
17
- } from "./chunk-X7LFJF5D.js";
18
- import {
19
- scanForSecrets
20
- } from "./chunk-BUQN5LTI.js";
19
+ } from "./chunk-LK2WUCDQ.js";
21
20
  import {
22
21
  BudgetExhaustedError,
23
22
  CoreToolScheduler,
24
- DEFAULT_IMAGE_TOKEN_ESTIMATE,
25
23
  IDE_DEFINITIONS,
26
24
  MCP_BUDGET_REARM_FRACTION,
27
25
  MCP_BUDGET_WARN_FRACTION,
@@ -44,10 +42,10 @@ import {
44
42
  createMemoryScopedAgentConfig,
45
43
  deriveConfig,
46
44
  discoveryTimeoutFor,
45
+ disposeConoutWorker,
47
46
  ensureAutoMemoryScaffold,
48
47
  ensureUserAutoMemoryScaffold,
49
48
  estimateContentTokens,
50
- estimatePartChars,
51
49
  evaluateToolInvocationGuard,
52
50
  finalizeToolResponses,
53
51
  getCacheSafeParams,
@@ -63,6 +61,7 @@ import {
63
61
  mcpSessionMetadataKey,
64
62
  mcpTransportOf,
65
63
  normalizeMcpIncludeEntry,
64
+ noteConPtyHostReleased,
66
65
  observeToolResultBoundary,
67
66
  parseConnectionId,
68
67
  readAutoMemoryIndex,
@@ -70,6 +69,7 @@ import {
70
69
  rebuildManagedAutoMemoryIndex,
71
70
  rebuildUserAutoMemoryIndex,
72
71
  recursivelyHydrateStrings,
72
+ releaseConPtyHost,
73
73
  repairOrphanedToolUseTurns,
74
74
  require_picomatch,
75
75
  runForkedAgent,
@@ -79,20 +79,24 @@ import {
79
79
  stripToolResultImages,
80
80
  toolResultBoundaryArtifact,
81
81
  toolResultPartDiagnosticValues
82
- } from "./chunk-HJ5UJQQL.js";
82
+ } from "./chunk-N7VWZDWW.js";
83
+ import {
84
+ stripAnsi
85
+ } from "./chunk-TWPJO254.js";
83
86
  import {
84
87
  hasVerifiableInode,
85
88
  openNoFollow
86
89
  } from "./chunk-6HUXPLB5.js";
87
- import {
88
- stripAnsi
89
- } from "./chunk-TWPJO254.js";
90
90
  import {
91
91
  projectUserTranscriptForDisplay
92
- } from "./chunk-GSFV5RQW.js";
92
+ } from "./chunk-E4UEO3XM.js";
93
+ import {
94
+ getProjectSkillsRoot,
95
+ parse
96
+ } from "./chunk-2SZH22YO.js";
93
97
  import {
94
98
  resolveBundleDir
95
- } from "./chunk-TRWQQBVH.js";
99
+ } from "./chunk-DTNV6UZY.js";
96
100
  import {
97
101
  glob,
98
102
  globSync
@@ -100,23 +104,36 @@ import {
100
104
  import {
101
105
  escapeJsonTagCharacters
102
106
  } from "./chunk-CHEIIBT3.js";
107
+ import {
108
+ flattenPeerLabel
109
+ } from "./chunk-5GLDOLNQ.js";
103
110
  import {
104
111
  isPidAlive
105
112
  } from "./chunk-CH2YDT6X.js";
106
- import {
107
- getProjectSkillsRoot,
108
- parse
109
- } from "./chunk-CLKE4IY3.js";
110
113
  import {
111
114
  require_proper_lockfile
112
115
  } from "./chunk-MLXTMF7H.js";
113
116
  import {
114
117
  BUILT_IN_OUTPUT_STYLES,
115
118
  getBuiltInOutputStyle
116
- } from "./chunk-3LPJ776W.js";
119
+ } from "./chunk-LILGKQ4B.js";
120
+ import {
121
+ getFolderStructure,
122
+ getStartupContextLength,
123
+ isSystemReminderContent,
124
+ stripSystemReminderBlocks
125
+ } from "./chunk-FN3JNDRU.js";
126
+ import {
127
+ getQwenIgnoreFileNames,
128
+ require_ignore
129
+ } from "./chunk-IZ2U57NY.js";
130
+ import {
131
+ DEFAULT_IMAGE_TOKEN_ESTIMATE,
132
+ estimatePartChars
133
+ } from "./chunk-NUQ4GK5I.js";
117
134
  import {
118
135
  fetchWithPolicy
119
- } from "./chunk-OFVAS4AR.js";
136
+ } from "./chunk-YBUMTY7B.js";
120
137
  import {
121
138
  COMBINED_PASS_TOLERANCE_FACTOR,
122
139
  TOOL_OUTPUT_TRUNCATED_PREFIX,
@@ -125,7 +142,7 @@ import {
125
142
  removeMCPStatusChangeListener,
126
143
  runSideQuery,
127
144
  updateMCPServerStatus
128
- } from "./chunk-F2NYVASI.js";
145
+ } from "./chunk-HBU7EKY4.js";
129
146
  import {
130
147
  getInvocationContext
131
148
  } from "./chunk-5ETULJLP.js";
@@ -134,6 +151,10 @@ import {
134
151
  Mutex,
135
152
  withTimeout
136
153
  } from "./chunk-VGC4I5JJ.js";
154
+ import {
155
+ getAutoMemoryRoot,
156
+ getUserAutoMemoryRoot
157
+ } from "./chunk-EDIDYZBT.js";
137
158
  import {
138
159
  MEMORY_SECTION_HEADER,
139
160
  VISION_BRIDGE_MAX_IMAGES,
@@ -144,10 +165,6 @@ import {
144
165
  isWithinRoot,
145
166
  processSingleFileContent
146
167
  } from "./chunk-J6MB5ZHZ.js";
147
- import {
148
- getAutoMemoryRoot,
149
- getUserAutoMemoryRoot
150
- } from "./chunk-EDIDYZBT.js";
151
168
  import {
152
169
  atomicWriteFile,
153
170
  atomicWriteJSON
@@ -157,21 +174,11 @@ import {
157
174
  normalizeContent,
158
175
  stripAnsiAndControl,
159
176
  stripHtmlComments
160
- } from "./chunk-7VEYUF3N.js";
161
- import {
162
- getFolderStructure,
163
- getStartupContextLength,
164
- isSystemReminderContent,
165
- stripSystemReminderBlocks
166
- } from "./chunk-4VY3ITHR.js";
167
- import {
168
- getQwenIgnoreFileNames,
169
- require_ignore
170
- } from "./chunk-IZ2U57NY.js";
177
+ } from "./chunk-W5ZQMAEM.js";
171
178
  import {
172
179
  ToolNames,
173
180
  canonicalToolName
174
- } from "./chunk-MWIO7MF6.js";
181
+ } from "./chunk-TP6FYVQT.js";
175
182
  import {
176
183
  PATH_ARG_KEYS,
177
184
  QWEN_DIR,
@@ -3438,7 +3445,7 @@ var DISCOVERY_TIMEOUT_MS = 5e3;
3438
3445
  var DISCOVERY_MAX_BYTES = 1024 * 1024;
3439
3446
  var MAX_MODEL_ID_LENGTH = 256;
3440
3447
  var UNSAFE_MODEL_ID_CHARS = /[,\p{C}\p{Zl}\p{Zp}]/u;
3441
- function readModelIds(value) {
3448
+ function readModels(value) {
3442
3449
  if (!value || typeof value !== "object" || !("data" in value)) {
3443
3450
  return null;
3444
3451
  }
@@ -3446,7 +3453,7 @@ function readModelIds(value) {
3446
3453
  if (!Array.isArray(data)) {
3447
3454
  return null;
3448
3455
  }
3449
- const ids = [];
3456
+ const models = [];
3450
3457
  const seen = /* @__PURE__ */ new Set();
3451
3458
  for (const item of data) {
3452
3459
  if (!item || typeof item !== "object" || !("id" in item)) {
@@ -3459,22 +3466,28 @@ function readModelIds(value) {
3459
3466
  const trimmedId = id.trim();
3460
3467
  if (trimmedId && trimmedId.length <= MAX_MODEL_ID_LENGTH && !UNSAFE_MODEL_ID_CHARS.test(trimmedId) && !seen.has(trimmedId)) {
3461
3468
  seen.add(trimmedId);
3462
- ids.push(trimmedId);
3469
+ const created = item.created;
3470
+ const creationTime = typeof created === "number" && Number.isFinite(created) && created >= 0 ? created : void 0;
3471
+ models.push({
3472
+ id: trimmedId,
3473
+ ...creationTime === void 0 ? {} : { created: creationTime }
3474
+ });
3463
3475
  }
3464
3476
  }
3465
- return ids.length > 0 ? ids : null;
3477
+ return models.length > 0 ? models : null;
3466
3478
  }
3467
- __name(readModelIds, "readModelIds");
3468
- function mergeModelSpecs(ids, staticModels) {
3469
- const discoveredIds = new Set(ids);
3470
- const knownModels = staticModels.filter(
3471
- (model) => discoveredIds.has(model.id)
3479
+ __name(readModels, "readModels");
3480
+ function mergeModelSpecs(discoveredModels, staticModels) {
3481
+ const staticModelsById = new Map(
3482
+ staticModels.map((model) => [model.id, model])
3472
3483
  );
3473
- const knownIds = new Set(knownModels.map((model) => model.id));
3474
- return [
3475
- ...knownModels,
3476
- ...ids.filter((id) => !knownIds.has(id)).map((id) => ({ id }))
3477
- ];
3484
+ const orderedModels = [...discoveredModels];
3485
+ if (orderedModels.every((model) => model.created !== void 0)) {
3486
+ orderedModels.sort(
3487
+ (left, right) => (right.created ?? 0) - (left.created ?? 0)
3488
+ );
3489
+ }
3490
+ return orderedModels.map(({ id }) => staticModelsById.get(id) ?? { id });
3478
3491
  }
3479
3492
  __name(mergeModelSpecs, "mergeModelSpecs");
3480
3493
  async function discoverProviderModels({
@@ -3503,8 +3516,8 @@ async function discoverProviderModels({
3503
3516
  if (result.kind !== "response" || result.status < 200 || result.status >= 300) {
3504
3517
  return null;
3505
3518
  }
3506
- const ids = readModelIds(JSON.parse(result.body.toString("utf8")));
3507
- return ids ? mergeModelSpecs(ids, staticModels) : null;
3519
+ const models = readModels(JSON.parse(result.body.toString("utf8")));
3520
+ return models ? mergeModelSpecs(models, staticModels) : null;
3508
3521
  } catch {
3509
3522
  return null;
3510
3523
  }
@@ -4414,7 +4427,19 @@ var WebTerminalRegistry = class {
4414
4427
  pid: spawned.pid,
4415
4428
  write: /* @__PURE__ */ __name((data) => spawned.write(data), "write"),
4416
4429
  resize: /* @__PURE__ */ __name((cols, rows) => spawned.resize(cols, rows), "resize"),
4417
- kill: /* @__PURE__ */ __name(() => spawned.kill(), "kill")
4430
+ kill: /* @__PURE__ */ __name(() => {
4431
+ spawned.kill();
4432
+ if (spawned._isReady !== false) {
4433
+ noteConPtyHostReleased(spawned);
4434
+ }
4435
+ }, "kill"),
4436
+ releaseHost: /* @__PURE__ */ __name(() => {
4437
+ if (spawned._isReady === false) {
4438
+ disposeConoutWorker(spawned);
4439
+ return;
4440
+ }
4441
+ releaseConPtyHost(spawned);
4442
+ }, "releaseHost")
4418
4443
  };
4419
4444
  } catch {
4420
4445
  this.finishCreating(terminalId);
@@ -4526,6 +4551,9 @@ var WebTerminalRegistry = class {
4526
4551
  session.exitListeners.clear();
4527
4552
  if (!session.exited) {
4528
4553
  killPtyTree(session.pty);
4554
+ session.pty.releaseHost?.();
4555
+ } else {
4556
+ session.pty.releaseHost?.();
4529
4557
  }
4530
4558
  return true;
4531
4559
  }
@@ -5669,6 +5697,94 @@ __name(buildGoalContinuationParts, "buildGoalContinuationParts");
5669
5697
  // packages/core/src/goals/index.ts
5670
5698
  init_esbuild_shims();
5671
5699
 
5700
+ // packages/core/src/goals/activeGoalStore.ts
5701
+ init_esbuild_shims();
5702
+ var store = /* @__PURE__ */ new Map();
5703
+ function getActiveGoal(sessionId) {
5704
+ return store.get(sessionId);
5705
+ }
5706
+ __name(getActiveGoal, "getActiveGoal");
5707
+ function clearActiveGoal(sessionId) {
5708
+ const previous = store.get(sessionId);
5709
+ store.delete(sessionId);
5710
+ return previous;
5711
+ }
5712
+ __name(clearActiveGoal, "clearActiveGoal");
5713
+ var observers = /* @__PURE__ */ new Map();
5714
+ function clearGoalTerminalObserver(sessionId) {
5715
+ observers.delete(sessionId);
5716
+ }
5717
+ __name(clearGoalTerminalObserver, "clearGoalTerminalObserver");
5718
+ function notifyGoalTerminal(sessionId, event) {
5719
+ recordLastTerminalEvent(sessionId, event);
5720
+ const observer = observers.get(sessionId);
5721
+ if (!observer) return;
5722
+ try {
5723
+ observer(event);
5724
+ } catch {
5725
+ }
5726
+ }
5727
+ __name(notifyGoalTerminal, "notifyGoalTerminal");
5728
+ var lastTerminal = /* @__PURE__ */ new Map();
5729
+ function recordLastTerminalEvent(sessionId, event) {
5730
+ lastTerminal.set(sessionId, event);
5731
+ }
5732
+ __name(recordLastTerminalEvent, "recordLastTerminalEvent");
5733
+
5734
+ // packages/core/src/goals/goalHook.ts
5735
+ init_esbuild_shims();
5736
+
5737
+ // packages/core/src/goals/goalJudge.ts
5738
+ init_esbuild_shims();
5739
+ var debugLogger9 = createDebugLogger("GOAL_JUDGE");
5740
+
5741
+ // packages/core/src/goals/goalHook.ts
5742
+ var debugLogger10 = createDebugLogger("GOAL_HOOK");
5743
+ var GOAL_HOOK_TIMEOUT_SECONDS = 30;
5744
+ var GOAL_HOOK_TIMEOUT_MS = GOAL_HOOK_TIMEOUT_SECONDS * 1e3;
5745
+ var GOAL_HOOK_ID_OUTPUT_KEY = "qwenGoalHookId";
5746
+ function getStopHookContinuationReason(output) {
5747
+ const hasGoalOutput = typeof output.hookSpecificOutput?.[GOAL_HOOK_ID_OUTPUT_KEY] === "string";
5748
+ if (!hasGoalOutput) {
5749
+ return output.stopReason || output.reason || "No reason provided";
5750
+ }
5751
+ return [output.stopReason, output.reason].filter(Boolean).join("\n") || "No reason provided";
5752
+ }
5753
+ __name(getStopHookContinuationReason, "getStopHookContinuationReason");
5754
+ function removeGoalFunctionHook(config, sessionId, goal) {
5755
+ const system = config.getHookSystem?.();
5756
+ if (!system) return;
5757
+ try {
5758
+ system.removeFunctionHook(sessionId, "Stop" /* Stop */, goal.hookId);
5759
+ } catch (err) {
5760
+ debugLogger10.debug(
5761
+ `Failed to remove goal hook ${goal.hookId}: ${err instanceof Error ? err.message : String(err)}`
5762
+ );
5763
+ }
5764
+ }
5765
+ __name(removeGoalFunctionHook, "removeGoalFunctionHook");
5766
+ function finishGoal(config, sessionId, goal, event) {
5767
+ clearActiveGoal(sessionId);
5768
+ removeGoalFunctionHook(config, sessionId, goal);
5769
+ notifyGoalTerminal(sessionId, event);
5770
+ clearGoalTerminalObserver(sessionId);
5771
+ }
5772
+ __name(finishGoal, "finishGoal");
5773
+ function abortGoalForStopHookCap(config, sessionId, systemMessage) {
5774
+ const goal = getActiveGoal(sessionId);
5775
+ if (!goal) return false;
5776
+ finishGoal(config, sessionId, goal, {
5777
+ kind: "aborted",
5778
+ condition: goal.condition,
5779
+ iterations: goal.iterations,
5780
+ durationMs: Date.now() - goal.setAt,
5781
+ lastReason: goal.lastReason,
5782
+ systemMessage
5783
+ });
5784
+ return true;
5785
+ }
5786
+ __name(abortGoalForStopHookCap, "abortGoalForStopHookCap");
5787
+
5672
5788
  // packages/core/src/index.ts
5673
5789
  init_esbuild_shims();
5674
5790
 
@@ -6186,7 +6302,7 @@ init_esbuild_shims();
6186
6302
  import * as fs4 from "fs/promises";
6187
6303
  import * as os from "os";
6188
6304
  import * as path6 from "path";
6189
- var debugLogger9 = createDebugLogger("OUTPUT_STYLE_FILES");
6305
+ var debugLogger11 = createDebugLogger("OUTPUT_STYLE_FILES");
6190
6306
  var OUTPUT_STYLES_DIR_NAME = "output-styles";
6191
6307
  var MAX_OUTPUT_STYLE_FILE_BYTES = 25e3;
6192
6308
  var MAX_OUTPUT_STYLE_NAME_LENGTH = 64;
@@ -6245,7 +6361,7 @@ function parseOutputStyleFile(content, filePath, source) {
6245
6361
  (key) => !KNOWN_FRONTMATTER_KEYS.has(key)
6246
6362
  );
6247
6363
  if (unknownKeys.length > 0) {
6248
- debugLogger9.warn(
6364
+ debugLogger11.warn(
6249
6365
  `Output style ${filePath}: ignoring unknown frontmatter keys ${unknownKeys.join(", ")}`
6250
6366
  );
6251
6367
  }
@@ -6262,7 +6378,7 @@ function resolveKeepCodingInstructions(frontmatter, name, filePath) {
6262
6378
  return true;
6263
6379
  }
6264
6380
  if (spelling !== false && spelling !== "false") {
6265
- debugLogger9.warn(
6381
+ debugLogger11.warn(
6266
6382
  `Output style ${filePath}: keep-coding-instructions value ${JSON.stringify(raw)} is not true or false; treating it as false`
6267
6383
  );
6268
6384
  }
@@ -6315,20 +6431,20 @@ __name(deriveDescription, "deriveDescription");
6315
6431
  async function resolveStyleFileToRead(filePath, source, confineTo) {
6316
6432
  const stat5 = source === "project" ? await fs4.lstat(filePath) : await fs4.stat(filePath);
6317
6433
  if (source === "project" && stat5.isSymbolicLink()) {
6318
- debugLogger9.warn(`Skipping output style ${filePath}: it is a symlink`);
6434
+ debugLogger11.warn(`Skipping output style ${filePath}: it is a symlink`);
6319
6435
  return null;
6320
6436
  }
6321
6437
  if (!stat5.isFile()) {
6322
6438
  return null;
6323
6439
  }
6324
6440
  if (stat5.nlink > 1) {
6325
- debugLogger9.warn(`Skipping output style ${filePath}: it is a hard link`);
6441
+ debugLogger11.warn(`Skipping output style ${filePath}: it is a hard link`);
6326
6442
  return null;
6327
6443
  }
6328
6444
  const realPath = await fs4.realpath(filePath);
6329
6445
  const realRoot = await fs4.realpath(confineTo);
6330
6446
  if (realPath !== realRoot && !isWithinRoot(realPath, realRoot)) {
6331
- debugLogger9.warn(
6447
+ debugLogger11.warn(
6332
6448
  `Skipping output style ${filePath}: it resolves outside ${realRoot}`
6333
6449
  );
6334
6450
  return null;
@@ -6366,7 +6482,7 @@ async function loadOutputStylesFromDir(dir, source, confineTo) {
6366
6482
  entries = await fs4.readdir(dir);
6367
6483
  } catch (error) {
6368
6484
  if (error.code !== "ENOENT") {
6369
- debugLogger9.warn(`Cannot read output styles directory ${dir}:`, error);
6485
+ debugLogger11.warn(`Cannot read output styles directory ${dir}:`, error);
6370
6486
  }
6371
6487
  return [];
6372
6488
  }
@@ -6385,13 +6501,13 @@ async function loadOutputStylesFromDir(dir, source, confineTo) {
6385
6501
  }
6386
6502
  const buffer = await readBoundedStyleFile(readPath);
6387
6503
  if (buffer.byteLength > MAX_OUTPUT_STYLE_FILE_BYTES) {
6388
- debugLogger9.warn(
6504
+ debugLogger11.warn(
6389
6505
  `Skipping output style ${filePath}: larger than ${MAX_OUTPUT_STYLE_FILE_BYTES} bytes`
6390
6506
  );
6391
6507
  continue;
6392
6508
  }
6393
6509
  if (isBinary(buffer)) {
6394
- debugLogger9.warn(
6510
+ debugLogger11.warn(
6395
6511
  `Skipping output style ${filePath}: it is not UTF-8 text`
6396
6512
  );
6397
6513
  continue;
@@ -6403,7 +6519,7 @@ async function loadOutputStylesFromDir(dir, source, confineTo) {
6403
6519
  );
6404
6520
  const key = style.name.toLowerCase();
6405
6521
  if (seen.has(key)) {
6406
- debugLogger9.warn(
6522
+ debugLogger11.warn(
6407
6523
  `Skipping output style ${filePath}: another file in ${dir} already defines "${style.name}"`
6408
6524
  );
6409
6525
  continue;
@@ -6411,7 +6527,7 @@ async function loadOutputStylesFromDir(dir, source, confineTo) {
6411
6527
  seen.add(key);
6412
6528
  styles.push(style);
6413
6529
  } catch (error) {
6414
- debugLogger9.warn(
6530
+ debugLogger11.warn(
6415
6531
  `Skipping output style ${filePath}: ${error instanceof Error ? error.message : String(error)}`
6416
6532
  );
6417
6533
  }
@@ -6459,7 +6575,7 @@ async function loadOutputStyleCatalog(options = {}) {
6459
6575
  const key = style.name.toLowerCase();
6460
6576
  const winner = winners.get(key);
6461
6577
  if (winner) {
6462
- debugLogger9.debug(
6578
+ debugLogger11.debug(
6463
6579
  `Output style "${style.name}" (${style.source}) is shadowed by the ${winner.source} style of the same name`
6464
6580
  );
6465
6581
  continue;
@@ -6479,7 +6595,7 @@ __name(findOutputStyle, "findOutputStyle");
6479
6595
 
6480
6596
  // packages/core/src/tools/client-mcp-registrar.ts
6481
6597
  init_esbuild_shims();
6482
- var debugLogger10 = createDebugLogger("CLIENT_MCP_REGISTRAR");
6598
+ var debugLogger12 = createDebugLogger("CLIENT_MCP_REGISTRAR");
6483
6599
  var CLIENT_MCP_MESSAGE_TIMEOUT_MS = 3e4;
6484
6600
  var ClientMcpRegistrar = class {
6485
6601
  static {
@@ -6502,7 +6618,7 @@ var ClientMcpRegistrar = class {
6502
6618
  */
6503
6619
  registerServer(serverName) {
6504
6620
  this.servers.add(serverName);
6505
- debugLogger10.debug(`Registered client MCP server '${serverName}'`);
6621
+ debugLogger12.debug(`Registered client MCP server '${serverName}'`);
6506
6622
  }
6507
6623
  /**
6508
6624
  * Drop a server name and reject any in-flight requests targeting it. Returns
@@ -6515,7 +6631,7 @@ var ClientMcpRegistrar = class {
6515
6631
  new Error(`client MCP server '${serverName}' was unregistered`)
6516
6632
  );
6517
6633
  if (existed) {
6518
- debugLogger10.debug(`Unregistered client MCP server '${serverName}'`);
6634
+ debugLogger12.debug(`Unregistered client MCP server '${serverName}'`);
6519
6635
  }
6520
6636
  return existed;
6521
6637
  }
@@ -6615,7 +6731,7 @@ var ClientMcpRegistrar = class {
6615
6731
  resolveMessage(id, payload) {
6616
6732
  const pending = this.pending.get(id);
6617
6733
  if (!pending) {
6618
- debugLogger10.debug(`Dropping mcp_message with unknown id '${id}'`);
6734
+ debugLogger12.debug(`Dropping mcp_message with unknown id '${id}'`);
6619
6735
  return false;
6620
6736
  }
6621
6737
  this.pending.delete(id);
@@ -6837,7 +6953,7 @@ import { createHash, randomBytes as randomBytes2, timingSafeEqual as timingSafeE
6837
6953
  import * as fsSync2 from "node:fs";
6838
6954
  import * as fs5 from "node:fs/promises";
6839
6955
  import * as path7 from "node:path";
6840
- var debugLogger11 = createDebugLogger("PEER_CONTROLLERS");
6956
+ var debugLogger13 = createDebugLogger("PEER_CONTROLLERS");
6841
6957
  var PEER_CONTROLLER_SCHEMA_VERSION = 1;
6842
6958
  var CONTROLLER_TOKEN_PREFIX = "qpc_";
6843
6959
  var CONTROLLER_TOKEN_BYTES = 32;
@@ -6858,7 +6974,7 @@ var LOCK_OPTIONS = {
6858
6974
  randomize: true
6859
6975
  },
6860
6976
  onCompromised: /* @__PURE__ */ __name((error) => {
6861
- debugLogger11.debug(
6977
+ debugLogger13.debug(
6862
6978
  `controller registry lock compromised: ${describe2(error)}`
6863
6979
  );
6864
6980
  }, "onCompromised")
@@ -6925,13 +7041,13 @@ function readPeerControllerRegistrySync(filePath = getPeerControllerRegistryPath
6925
7041
  try {
6926
7042
  const stats = fsSync2.lstatSync(filePath);
6927
7043
  if (!stats.isFile()) {
6928
- debugLogger11.debug(
7044
+ debugLogger13.debug(
6929
7045
  `ignoring the controller registry at ${filePath}: not a regular file`
6930
7046
  );
6931
7047
  return emptyRegistry();
6932
7048
  }
6933
7049
  if (stats.size > MAX_REGISTRY_BYTES) {
6934
- debugLogger11.debug(
7050
+ debugLogger13.debug(
6935
7051
  `ignoring the controller registry at ${filePath}: ${stats.size} bytes exceeds the ${MAX_REGISTRY_BYTES}-byte cap`
6936
7052
  );
6937
7053
  return emptyRegistry();
@@ -6939,7 +7055,7 @@ function readPeerControllerRegistrySync(filePath = getPeerControllerRegistryPath
6939
7055
  raw = fsSync2.readFileSync(filePath, "utf8");
6940
7056
  } catch (error) {
6941
7057
  if (!isNodeError(error) || error.code !== "ENOENT") {
6942
- debugLogger11.debug(
7058
+ debugLogger13.debug(
6943
7059
  `could not read the controller registry at ${filePath}: ${describe2(error)}`
6944
7060
  );
6945
7061
  }
@@ -6949,14 +7065,14 @@ function readPeerControllerRegistrySync(filePath = getPeerControllerRegistryPath
6949
7065
  try {
6950
7066
  parsed = JSON.parse(raw);
6951
7067
  } catch (error) {
6952
- debugLogger11.debug(
7068
+ debugLogger13.debug(
6953
7069
  `the controller registry at ${filePath} is not JSON: ${describe2(error)}`
6954
7070
  );
6955
7071
  return emptyRegistry();
6956
7072
  }
6957
7073
  if (!isRecord(parsed)) return emptyRegistry();
6958
7074
  if (parsed["schemaVersion"] !== PEER_CONTROLLER_SCHEMA_VERSION) {
6959
- debugLogger11.debug(
7075
+ debugLogger13.debug(
6960
7076
  `ignoring the controller registry at ${filePath}: unsupported schemaVersion ${String(
6961
7077
  parsed["schemaVersion"]
6962
7078
  )}`
@@ -6969,7 +7085,7 @@ function readPeerControllerRegistrySync(filePath = getPeerControllerRegistryPath
6969
7085
  for (const entry of controllers) {
6970
7086
  const record = toValidRecord(entry);
6971
7087
  if (record === null) {
6972
- debugLogger11.debug(
7088
+ debugLogger13.debug(
6973
7089
  `skipping a malformed entry in the controller registry at ${filePath}`
6974
7090
  );
6975
7091
  continue;
@@ -7197,7 +7313,7 @@ __name(removePeerController, "removePeerController");
7197
7313
 
7198
7314
  // packages/core/src/ipc/peer-drop-reports.ts
7199
7315
  init_esbuild_shims();
7200
- var debugLogger12 = createDebugLogger("PEER_DROP_REPORTS");
7316
+ var debugLogger14 = createDebugLogger("PEER_DROP_REPORTS");
7201
7317
  var DROP_REPORT_WINDOW_MS = 6e4;
7202
7318
  var DROP_RECEIPT_TRAIL_MS = 5e3;
7203
7319
  var DROP_FLUSH_BOUND_MS = 500;
@@ -7339,7 +7455,7 @@ var DropReceiptCoalescer = class {
7339
7455
  const now = this.now();
7340
7456
  const age = now - batch.firstNotedAt;
7341
7457
  if (!force && age >= MAX_DEFERRED_RECEIPT_AGE_MS) {
7342
- debugLogger12.debug(
7458
+ debugLogger14.debug(
7343
7459
  `abandoning a dropped receipt held ${Math.round(age)} ms by a spent budget`
7344
7460
  );
7345
7461
  this.clearBatch(batch);
@@ -7377,7 +7493,7 @@ var DropReceiptCoalescer = class {
7377
7493
  try {
7378
7494
  result = this.send(receipt);
7379
7495
  } catch (error) {
7380
- debugLogger12.debug(`sending a dropped receipt threw: ${describe3(error)}`);
7496
+ debugLogger14.debug(`sending a dropped receipt threw: ${describe3(error)}`);
7381
7497
  return;
7382
7498
  }
7383
7499
  if (!(result instanceof Promise)) return result;
@@ -7478,7 +7594,7 @@ var DropNoticeThrottle = class {
7478
7594
  suppressed
7479
7595
  });
7480
7596
  } catch (error) {
7481
- debugLogger12.debug(`drop-notice listener threw: ${describe3(error)}`);
7597
+ debugLogger14.debug(`drop-notice listener threw: ${describe3(error)}`);
7482
7598
  }
7483
7599
  }
7484
7600
  touch(key) {
@@ -7668,7 +7784,7 @@ var DroppedNotificationTally = class {
7668
7784
 
7669
7785
  // packages/core/src/services/toolUseSummary.ts
7670
7786
  init_esbuild_shims();
7671
- var debugLogger13 = createDebugLogger("TOOL_USE_SUMMARY");
7787
+ var debugLogger15 = createDebugLogger("TOOL_USE_SUMMARY");
7672
7788
  var TOOL_USE_SUMMARY_SYSTEM_PROMPT = `Write a short summary label describing what these tool calls accomplished. It appears as a single-line row in a mobile app and truncates around 30 characters, so think git-commit-subject, not sentence.
7673
7789
 
7674
7790
  Keep the verb in past tense and the most distinctive noun. Drop articles, connectors, and long location context first.
@@ -7689,7 +7805,7 @@ async function generateToolUseSummary(params) {
7689
7805
  }
7690
7806
  const model = config.getFastModel();
7691
7807
  if (!model) {
7692
- debugLogger13.debug("No fast model configured \u2014 skipping summary generation");
7808
+ debugLogger15.debug("No fast model configured \u2014 skipping summary generation");
7693
7809
  return null;
7694
7810
  }
7695
7811
  if (signal.aborted) {
@@ -7712,7 +7828,7 @@ ${toolSummaries}
7712
7828
 
7713
7829
  Label:`;
7714
7830
  if (!config.getLlmClient()) {
7715
- debugLogger13.debug("No gemini client available \u2014 skipping");
7831
+ debugLogger15.debug("No gemini client available \u2014 skipping");
7716
7832
  return null;
7717
7833
  }
7718
7834
  const result = await runSideQuery(config, {
@@ -7731,19 +7847,19 @@ Label:`;
7731
7847
  });
7732
7848
  if (signal.aborted) return null;
7733
7849
  if (!result.text) {
7734
- debugLogger13.debug("Summary generation returned empty result");
7850
+ debugLogger15.debug("Summary generation returned empty result");
7735
7851
  return null;
7736
7852
  }
7737
7853
  const cleaned = cleanSummary(result.text);
7738
7854
  if (!cleaned) {
7739
- debugLogger13.debug(`Summary cleaned to empty: raw="${result.text}"`);
7855
+ debugLogger15.debug(`Summary cleaned to empty: raw="${result.text}"`);
7740
7856
  return null;
7741
7857
  }
7742
- debugLogger13.debug(`Summary generated: "${cleaned}"`);
7858
+ debugLogger15.debug(`Summary generated: "${cleaned}"`);
7743
7859
  return cleaned;
7744
7860
  } catch (err) {
7745
7861
  if (signal.aborted) return null;
7746
- debugLogger13.warn(
7862
+ debugLogger15.warn(
7747
7863
  `Summary generation failed: ${err instanceof Error ? err.message : String(err)}`
7748
7864
  );
7749
7865
  return null;
@@ -7817,7 +7933,7 @@ __name(cleanSummary, "cleanSummary");
7817
7933
 
7818
7934
  // packages/core/src/services/usage-dashboard-service.ts
7819
7935
  init_esbuild_shims();
7820
- var debugLogger14 = createDebugLogger("USAGE_DASHBOARD");
7936
+ var debugLogger16 = createDebugLogger("USAGE_DASHBOARD");
7821
7937
  var DEFAULT_HEATMAP_DAYS = 183;
7822
7938
  var MAX_DAILY_DAYS = 92;
7823
7939
  var MS_PER_DAY = 24 * 60 * 60 * 1e3;
@@ -7942,7 +8058,7 @@ function buildUsageDashboard(records, options = {}) {
7942
8058
  );
7943
8059
  const daily = buildDaily(records, dailyStart, now);
7944
8060
  const heatmap = buildHeatmap(records, now - heatmapDays * MS_PER_DAY, now);
7945
- debugLogger14.debug(
8061
+ debugLogger16.debug(
7946
8062
  `built dashboard range=${range} records=${records.length} models=${models.length} skills=${skills.length} dailyPoints=${daily.length}`
7947
8063
  );
7948
8064
  return {
@@ -8278,7 +8394,7 @@ import * as path8 from "node:path";
8278
8394
  var CHANNEL_MEMORY_FILE_NAME = "CHANNEL.json";
8279
8395
  var LEGACY_CHANNEL_MEMORY_FILE_NAME = "CHANNEL.md";
8280
8396
  var MAX_CHANNEL_MEMORY_BYTES = 1024 * 1024;
8281
- var debugLogger15 = createDebugLogger("CHANNEL_MEMORY");
8397
+ var debugLogger17 = createDebugLogger("CHANNEL_MEMORY");
8282
8398
  var pendingMutations = /* @__PURE__ */ new Map();
8283
8399
  var LOCK_OPTIONS2 = {
8284
8400
  realpath: false,
@@ -8291,7 +8407,7 @@ var LOCK_OPTIONS2 = {
8291
8407
  },
8292
8408
  stale: 5e3,
8293
8409
  onCompromised: /* @__PURE__ */ __name((err) => {
8294
- debugLogger15.warn("channel memory lock compromised:", err);
8410
+ debugLogger17.warn("channel memory lock compromised:", err);
8295
8411
  }, "onCompromised")
8296
8412
  };
8297
8413
  function isMissingFile(error) {
@@ -9273,7 +9389,7 @@ init_esbuild_shims();
9273
9389
  import * as fs9 from "node:fs";
9274
9390
  import * as path11 from "path";
9275
9391
  import { pathToFileURL } from "url";
9276
- var debugLogger16 = createDebugLogger("LSP");
9392
+ var debugLogger18 = createDebugLogger("LSP");
9277
9393
  var MAX_TCP_PORT = 65535;
9278
9394
  var LspConfigLoader = class {
9279
9395
  constructor(workspaceRoot) {
@@ -9298,7 +9414,7 @@ var LspConfigLoader = class {
9298
9414
  forceTrustRequired: true
9299
9415
  });
9300
9416
  } catch (error) {
9301
- debugLogger16.warn("Failed to load user .lsp.json config:", error);
9417
+ debugLogger18.warn("Failed to load user .lsp.json config:", error);
9302
9418
  return [];
9303
9419
  }
9304
9420
  }
@@ -9335,7 +9451,7 @@ var LspConfigLoader = class {
9335
9451
  lspServers
9336
9452
  );
9337
9453
  if (!fs9.existsSync(configPath)) {
9338
- debugLogger16.warn(
9454
+ debugLogger18.warn(
9339
9455
  `LSP config not found for ${originBase}: ${configPath}`
9340
9456
  );
9341
9457
  continue;
@@ -9351,7 +9467,7 @@ var LspConfigLoader = class {
9351
9467
  )
9352
9468
  );
9353
9469
  } catch (error) {
9354
- debugLogger16.warn(
9470
+ debugLogger18.warn(
9355
9471
  `Failed to load extension LSP config from ${configPath}:`,
9356
9472
  error
9357
9473
  );
@@ -9365,7 +9481,7 @@ var LspConfigLoader = class {
9365
9481
  ...this.parseConfigSource(hydrated, `${originBase} (lspServers)`)
9366
9482
  );
9367
9483
  } else {
9368
- debugLogger16.warn(
9484
+ debugLogger18.warn(
9369
9485
  `LSP config for ${originBase} must be an object or a JSON file path.`
9370
9486
  );
9371
9487
  }
@@ -9503,13 +9619,13 @@ var LspConfigLoader = class {
9503
9619
  const trustRequired = options.forceTrustRequired ? true : typeof spec["trustRequired"] === "boolean" ? spec["trustRequired"] : true;
9504
9620
  const socket = this.normalizeSocketOptions(spec);
9505
9621
  if (transport === "stdio" && !command) {
9506
- debugLogger16.warn(
9622
+ debugLogger18.warn(
9507
9623
  `LSP config error in ${origin}: ${name} missing command`
9508
9624
  );
9509
9625
  return null;
9510
9626
  }
9511
9627
  if (transport !== "stdio" && !socket) {
9512
- debugLogger16.warn(
9628
+ debugLogger18.warn(
9513
9629
  `LSP config error in ${origin}: ${name} missing socket info`
9514
9630
  );
9515
9631
  return null;
@@ -9651,7 +9767,7 @@ var LspConfigLoader = class {
9651
9767
  if (resolved === root || resolved.startsWith(root + path11.sep)) {
9652
9768
  return resolved;
9653
9769
  }
9654
- debugLogger16.warn(
9770
+ debugLogger18.warn(
9655
9771
  `LSP workspaceFolder must be within ${this.workspaceRoot}; using workspace root instead.`
9656
9772
  );
9657
9773
  return this.workspaceRoot;
@@ -9663,7 +9779,7 @@ init_esbuild_shims();
9663
9779
  import * as cp from "node:child_process";
9664
9780
  import * as net2 from "node:net";
9665
9781
  import { StringDecoder } from "node:string_decoder";
9666
- var debugLogger17 = createDebugLogger("LSP");
9782
+ var debugLogger19 = createDebugLogger("LSP");
9667
9783
  var MAX_STDERR_TAIL_BYTES = 8192;
9668
9784
  function trimTail(value, maxBytes) {
9669
9785
  const buffer = Buffer.from(value, "utf8");
@@ -9728,7 +9844,7 @@ var JsonRpcConnection = class {
9728
9844
  try {
9729
9845
  this.disposer?.();
9730
9846
  } catch (error) {
9731
- debugLogger17.warn("LSP disposer failed:", error);
9847
+ debugLogger19.warn("LSP disposer failed:", error);
9732
9848
  }
9733
9849
  }
9734
9850
  sendRequest(method, params) {
@@ -9855,7 +9971,7 @@ var JsonRpcConnection = class {
9855
9971
  try {
9856
9972
  this.writer(header + json);
9857
9973
  } catch (error) {
9858
- debugLogger17.warn("LSP write failed:", error);
9974
+ debugLogger19.warn("LSP write failed:", error);
9859
9975
  this.end();
9860
9976
  }
9861
9977
  }
@@ -9914,14 +10030,14 @@ var LspConnectionFactory = class _LspConnectionFactory {
9914
10030
  );
9915
10031
  });
9916
10032
  processInstance.stderr?.on("error", (err) => {
9917
- debugLogger17.warn(`LSP stderr stream error for ${command}:`, err);
10033
+ debugLogger19.warn(`LSP stderr stream error for ${command}:`, err);
9918
10034
  });
9919
10035
  const connection = new JsonRpcConnection(
9920
10036
  (payload) => processInstance.stdin?.write(payload),
9921
10037
  () => processInstance.stdin?.end()
9922
10038
  );
9923
10039
  processInstance.stdin.on("error", (err) => {
9924
- debugLogger17.warn(`LSP stdin stream error for ${command}:`, err);
10040
+ debugLogger19.warn(`LSP stdin stream error for ${command}:`, err);
9925
10041
  connection.end();
9926
10042
  });
9927
10043
  connection.listen(processInstance.stdout);
@@ -10004,7 +10120,7 @@ var LspConnectionFactory = class _LspConnectionFactory {
10004
10120
  try {
10005
10121
  await lspConnection.connection.shutdown();
10006
10122
  } catch (e) {
10007
- debugLogger17.warn("LSP shutdown failed:", e);
10123
+ debugLogger19.warn("LSP shutdown failed:", e);
10008
10124
  } finally {
10009
10125
  lspConnection.connection.end();
10010
10126
  }
@@ -10682,7 +10798,7 @@ import { spawn as spawn2 } from "node:child_process";
10682
10798
  import * as fs10 from "node:fs";
10683
10799
  import * as path12 from "path";
10684
10800
  import { pathToFileURL as pathToFileURL2 } from "url";
10685
- var debugLogger18 = createDebugLogger("LSP");
10801
+ var debugLogger20 = createDebugLogger("LSP");
10686
10802
  var SECURITY_SENSITIVE_ENV_KEYS = /* @__PURE__ */ new Set([
10687
10803
  "DYLD_INSERT_LIBRARIES",
10688
10804
  "DYLD_LIBRARY_PATH",
@@ -10719,7 +10835,7 @@ var LspServerManager = class {
10719
10835
  });
10720
10836
  this.serverConfigHashes.set(config.name, lspServerConfigHash(config));
10721
10837
  }
10722
- debugLogger18.info(
10838
+ debugLogger20.info(
10723
10839
  `Prepared ${configs.length} LSP server config(s): ${formatServerNames(
10724
10840
  configs.map((config) => config.name)
10725
10841
  )}`
@@ -10728,7 +10844,7 @@ var LspServerManager = class {
10728
10844
  /** Drops all prepared handles without attempting process shutdown. */
10729
10845
  clearServerHandles() {
10730
10846
  if (this.serverHandles.size > 0) {
10731
- debugLogger18.info(
10847
+ debugLogger20.info(
10732
10848
  `Clearing ${this.serverHandles.size} LSP server handle(s): ${formatServerNames(
10733
10849
  Array.from(this.serverHandles.keys())
10734
10850
  )}`
@@ -10789,7 +10905,7 @@ var LspServerManager = class {
10789
10905
  * before their handles are deleted or replaced.
10790
10906
  */
10791
10907
  async doReconcileServerConfigs(configs) {
10792
- debugLogger18.info(
10908
+ debugLogger20.info(
10793
10909
  `Reconciling LSP server configs: desired=${formatServerNames(
10794
10910
  configs.map((config) => config.name)
10795
10911
  )}`
@@ -10861,7 +10977,7 @@ var LspServerManager = class {
10861
10977
  result.added.push(name);
10862
10978
  }
10863
10979
  }
10864
- debugLogger18.info(
10980
+ debugLogger20.info(
10865
10981
  `LSP reconcile result: added=${formatServerNames(
10866
10982
  result.added
10867
10983
  )}, removed=${formatServerNames(
@@ -10915,7 +11031,7 @@ var LspServerManager = class {
10915
11031
  handle.warmedUp = true;
10916
11032
  return uri;
10917
11033
  } catch (error) {
10918
- debugLogger18.warn("TypeScript server warm-up failed:", error);
11034
+ debugLogger20.warn("TypeScript server warm-up failed:", error);
10919
11035
  return void 0;
10920
11036
  }
10921
11037
  }
@@ -10962,7 +11078,7 @@ var LspServerManager = class {
10962
11078
  async doStartServer(name, handle) {
10963
11079
  const workspaceTrusted = this.config.isTrustedFolder();
10964
11080
  if ((this.requireTrustedWorkspace || handle.config.trustRequired) && !workspaceTrusted) {
10965
- debugLogger18.warn(
11081
+ debugLogger20.warn(
10966
11082
  `LSP server ${name} requires trusted workspace, skipping startup`
10967
11083
  );
10968
11084
  handle.status = "FAILED";
@@ -10975,7 +11091,7 @@ var LspServerManager = class {
10975
11091
  workspaceTrusted
10976
11092
  );
10977
11093
  if (!trusted) {
10978
- debugLogger18.warn(
11094
+ debugLogger20.warn(
10979
11095
  `Workspace trust check failed, not starting LSP server ${name}`
10980
11096
  );
10981
11097
  handle.status = "FAILED";
@@ -10985,7 +11101,7 @@ var LspServerManager = class {
10985
11101
  if (handle.config.command) {
10986
11102
  const commandCwd = handle.config.workspaceFolder ?? this.workspaceRoot;
10987
11103
  if (!this.isPathSafe(handle.config.command, this.workspaceRoot, commandCwd)) {
10988
- debugLogger18.warn(
11104
+ debugLogger20.warn(
10989
11105
  `LSP server ${name} command path is unsafe: ${handle.config.command}`
10990
11106
  );
10991
11107
  handle.status = "FAILED";
@@ -10997,7 +11113,7 @@ var LspServerManager = class {
10997
11113
  handle.config.env,
10998
11114
  commandCwd
10999
11115
  )) {
11000
- debugLogger18.warn(
11116
+ debugLogger20.warn(
11001
11117
  `LSP server ${name} command not found: ${handle.config.command}`
11002
11118
  );
11003
11119
  handle.status = "FAILED";
@@ -11012,7 +11128,7 @@ var LspServerManager = class {
11012
11128
  handle.processDiagnostics = void 0;
11013
11129
  handle.warmedUp = false;
11014
11130
  handle.status = "IN_PROGRESS";
11015
- debugLogger18.info(
11131
+ debugLogger20.info(
11016
11132
  `Starting LSP server ${name}: command=${handle.config.command ?? "<none>"}, transport=${handle.config.transport}, languages=${formatServerNames(
11017
11133
  handle.config.languages
11018
11134
  )}`
@@ -11037,7 +11153,7 @@ var LspServerManager = class {
11037
11153
  }
11038
11154
  handle.status = "READY";
11039
11155
  this.attachRestartHandler(name, handle);
11040
- debugLogger18.info(`LSP server ${name} started successfully`);
11156
+ debugLogger20.info(`LSP server ${name} started successfully`);
11041
11157
  } catch (error) {
11042
11158
  handle.status = "FAILED";
11043
11159
  handle.error = error;
@@ -11051,21 +11167,21 @@ var LspServerManager = class {
11051
11167
  }
11052
11168
  await this.releaseServerResources(name, handle, false);
11053
11169
  if (handle.processDiagnostics) {
11054
- debugLogger18.error(
11170
+ debugLogger20.error(
11055
11171
  `LSP server ${name} process diagnostics:`,
11056
11172
  handle.processDiagnostics
11057
11173
  );
11058
11174
  }
11059
11175
  handle.connection = void 0;
11060
11176
  handle.process = void 0;
11061
- debugLogger18.error(`LSP server ${name} failed to start:`, error);
11177
+ debugLogger20.error(`LSP server ${name} failed to start:`, error);
11062
11178
  }
11063
11179
  }
11064
11180
  /**
11065
11181
  * Stops a server and resets runtime-only handle state.
11066
11182
  */
11067
11183
  async stopServer(name, handle) {
11068
- debugLogger18.info(`Stopping LSP server ${name}`);
11184
+ debugLogger20.info(`Stopping LSP server ${name}`);
11069
11185
  handle.stopRequested = true;
11070
11186
  handle.startupAbortController?.abort();
11071
11187
  if (handle.startingPromise) {
@@ -11078,7 +11194,7 @@ var LspServerManager = class {
11078
11194
  handle.status = "NOT_STARTED";
11079
11195
  handle.warmedUp = false;
11080
11196
  handle.restartAttempts = 0;
11081
- debugLogger18.info(`LSP server ${name} stopped`);
11197
+ debugLogger20.info(`LSP server ${name} stopped`);
11082
11198
  }
11083
11199
  async abortAndWaitForStartup(handle) {
11084
11200
  if (!handle.startingPromise) {
@@ -11102,14 +11218,14 @@ var LspServerManager = class {
11102
11218
  handle.connection.end();
11103
11219
  }
11104
11220
  } catch (error) {
11105
- debugLogger18.error(`Error closing LSP server ${name}:`, error);
11221
+ debugLogger20.error(`Error closing LSP server ${name}:`, error);
11106
11222
  }
11107
11223
  }
11108
11224
  if (handle.process && handle.process.exitCode === null) {
11109
11225
  try {
11110
11226
  handle.process.kill();
11111
11227
  } catch (error) {
11112
- debugLogger18.warn(`Error killing LSP server ${name} process:`, error);
11228
+ debugLogger20.warn(`Error killing LSP server ${name} process:`, error);
11113
11229
  }
11114
11230
  }
11115
11231
  }
@@ -11155,7 +11271,7 @@ var LspServerManager = class {
11155
11271
  }
11156
11272
  handle.processExitedUnexpectedly = true;
11157
11273
  if (!handle.config.restartOnCrash) {
11158
- debugLogger18.warn(
11274
+ debugLogger20.warn(
11159
11275
  `LSP server ${name} exited but restartOnCrash is disabled`
11160
11276
  );
11161
11277
  handle.status = "FAILED";
@@ -11164,7 +11280,7 @@ var LspServerManager = class {
11164
11280
  }
11165
11281
  const maxRestarts = handle.config.maxRestarts ?? DEFAULT_LSP_MAX_RESTARTS;
11166
11282
  if (maxRestarts <= 0) {
11167
- debugLogger18.warn(
11283
+ debugLogger20.warn(
11168
11284
  `LSP server ${name} exited but maxRestarts is ${maxRestarts}`
11169
11285
  );
11170
11286
  handle.status = "FAILED";
@@ -11173,7 +11289,7 @@ var LspServerManager = class {
11173
11289
  }
11174
11290
  const attempts = handle.restartAttempts ?? 0;
11175
11291
  if (attempts >= maxRestarts) {
11176
- debugLogger18.warn(
11292
+ debugLogger20.warn(
11177
11293
  `LSP server ${name} reached max restart attempts (${maxRestarts}), stopping restarts`
11178
11294
  );
11179
11295
  handle.status = "FAILED";
@@ -11181,7 +11297,7 @@ var LspServerManager = class {
11181
11297
  return;
11182
11298
  }
11183
11299
  handle.restartAttempts = attempts + 1;
11184
- debugLogger18.warn(
11300
+ debugLogger20.warn(
11185
11301
  `LSP server ${name} exited (code ${code ?? "unknown"}), restarting (${handle.restartAttempts}/${maxRestarts})`
11186
11302
  );
11187
11303
  this.enqueueCrashRestart(name, handle);
@@ -11229,7 +11345,7 @@ var LspServerManager = class {
11229
11345
  const next = this.reconcileQueue.then(restart, restart);
11230
11346
  this.reconcileQueue = next.catch(() => void 0);
11231
11347
  void next.catch((error) => {
11232
- debugLogger18.warn(`LSP server ${name} crash restart failed:`, error);
11348
+ debugLogger20.warn(`LSP server ${name} crash restart failed:`, error);
11233
11349
  });
11234
11350
  }
11235
11351
  resetHandle(handle) {
@@ -11237,14 +11353,14 @@ var LspServerManager = class {
11237
11353
  try {
11238
11354
  handle.connection.end();
11239
11355
  } catch (error) {
11240
- debugLogger18.warn("Error closing LSP connection during reset:", error);
11356
+ debugLogger20.warn("Error closing LSP connection during reset:", error);
11241
11357
  }
11242
11358
  }
11243
11359
  if (handle.process && handle.process.exitCode === null) {
11244
11360
  try {
11245
11361
  handle.process.kill();
11246
11362
  } catch (error) {
11247
- debugLogger18.warn("Error killing LSP process during reset:", error);
11363
+ debugLogger20.warn("Error killing LSP process during reset:", error);
11248
11364
  }
11249
11365
  }
11250
11366
  handle.connection = void 0;
@@ -11263,7 +11379,7 @@ var LspServerManager = class {
11263
11379
  const filteredEnv = {};
11264
11380
  for (const [key, value] of Object.entries(env2)) {
11265
11381
  if (SECURITY_SENSITIVE_ENV_KEYS.has(key.toUpperCase())) {
11266
- debugLogger18.warn(
11382
+ debugLogger20.warn(
11267
11383
  `Ignoring security-sensitive LSP server env override: ${key}`
11268
11384
  );
11269
11385
  continue;
@@ -11289,7 +11405,7 @@ var LspServerManager = class {
11289
11405
  for (const [key, value] of Object.entries(env2)) {
11290
11406
  const normalizedKey = key.toUpperCase();
11291
11407
  if (normalizedKey === "PATH" || SECURITY_SENSITIVE_ENV_KEYS.has(normalizedKey)) {
11292
- debugLogger18.warn(
11408
+ debugLogger20.warn(
11293
11409
  `Ignoring security-sensitive LSP command probe env override: ${key}`
11294
11410
  );
11295
11411
  continue;
@@ -11538,7 +11654,7 @@ var LspServerManager = class {
11538
11654
  try {
11539
11655
  process3.kill();
11540
11656
  } catch (error) {
11541
- debugLogger18.warn(
11657
+ debugLogger20.warn(
11542
11658
  "Error killing aborted LSP socket process:",
11543
11659
  error
11544
11660
  );
@@ -11711,12 +11827,12 @@ var LspServerManager = class {
11711
11827
  return true;
11712
11828
  }
11713
11829
  if (this.requireTrustedWorkspace || serverConfig.trustRequired) {
11714
- debugLogger18.warn(
11830
+ debugLogger20.warn(
11715
11831
  `Workspace not trusted, skipping LSP server ${serverName} (${serverConfig.command ?? serverConfig.transport})`
11716
11832
  );
11717
11833
  return false;
11718
11834
  }
11719
- debugLogger18.info(
11835
+ debugLogger20.info(
11720
11836
  `Untrusted workspace, but LSP server ${serverName} has trustRequired=false, attempting cautious startup`
11721
11837
  );
11722
11838
  return true;
@@ -11961,7 +12077,7 @@ import * as path13 from "path";
11961
12077
  import { fileURLToPath, pathToFileURL as pathToFileURL3 } from "url";
11962
12078
  import * as fs11 from "node:fs";
11963
12079
  import { promises as fsp } from "node:fs";
11964
- var debugLogger19 = createDebugLogger("LSP");
12080
+ var debugLogger21 = createDebugLogger("LSP");
11965
12081
  var LANGUAGE_ID_TO_EXTENSIONS = {
11966
12082
  typescript: ["ts", "tsx"],
11967
12083
  typescriptreact: ["tsx"],
@@ -12019,7 +12135,7 @@ var NativeLspService = class {
12019
12135
  const workspaceTrusted = this.config.isTrustedFolder();
12020
12136
  this.serverManager.clearServerHandles();
12021
12137
  if (this.requireTrustedWorkspace && !workspaceTrusted) {
12022
- debugLogger19.warn(
12138
+ debugLogger21.warn(
12023
12139
  "Workspace is not trusted, skipping LSP server discovery"
12024
12140
  );
12025
12141
  return;
@@ -12037,7 +12153,7 @@ var NativeLspService = class {
12037
12153
  serverConfigs,
12038
12154
  workspaceTrusted
12039
12155
  );
12040
- debugLogger19.info(
12156
+ debugLogger21.info(
12041
12157
  `Discovered ${admitted.length} LSP server config(s): ${formatServerNames2(
12042
12158
  admitted.map((config) => config.name)
12043
12159
  )}, skipped=${formatServerNames2(skipped.map((server) => server.name))}`
@@ -12072,7 +12188,7 @@ var NativeLspService = class {
12072
12188
  async doReinitialize(signal) {
12073
12189
  this.throwIfReinitializeAborted(signal);
12074
12190
  const workspaceTrusted = this.config.isTrustedFolder();
12075
- debugLogger19.info(
12191
+ debugLogger21.info(
12076
12192
  `Reinitializing LSP servers: workspaceRoot=${this.workspaceRoot}, trusted=${workspaceTrusted}`
12077
12193
  );
12078
12194
  if (this.requireTrustedWorkspace && !workspaceTrusted) {
@@ -12091,7 +12207,7 @@ var NativeLspService = class {
12091
12207
  },
12092
12208
  skipped: []
12093
12209
  };
12094
- debugLogger19.info(
12210
+ debugLogger21.info(
12095
12211
  `LSP reinitialize result: added=<none>, removed=${formatServerNames2(
12096
12212
  removed
12097
12213
  )}, restarted=<none>, unchanged=<none>, failed=<none>, skipped=<none>`
@@ -12133,7 +12249,7 @@ var NativeLspService = class {
12133
12249
  signal
12134
12250
  );
12135
12251
  this.throwIfReinitializeAborted(signal);
12136
- debugLogger19.info(
12252
+ debugLogger21.info(
12137
12253
  `LSP reinitialize result: added=${formatServerNames2(
12138
12254
  reconcile.added
12139
12255
  )}, removed=${formatServerNames2(
@@ -12153,7 +12269,7 @@ var NativeLspService = class {
12153
12269
  const skipped = [];
12154
12270
  for (const config of configs) {
12155
12271
  if (!workspaceTrusted && config.trustRequired) {
12156
- debugLogger19.warn(
12272
+ debugLogger21.warn(
12157
12273
  `LSP server ${config.name} requires trusted workspace, skipping`
12158
12274
  );
12159
12275
  skipped.push({ name: config.name, reason: "server_trust_required" });
@@ -12198,7 +12314,7 @@ var NativeLspService = class {
12198
12314
  try {
12199
12315
  openedAny = this.sendDocumentOpen(name, handle, uri) || openedAny;
12200
12316
  } catch (error) {
12201
- debugLogger19.warn(
12317
+ debugLogger21.warn(
12202
12318
  `Failed to replay document ${uri} for LSP server ${name}:`,
12203
12319
  error
12204
12320
  );
@@ -12327,14 +12443,14 @@ var NativeLspService = class {
12327
12443
  try {
12328
12444
  filePath = fileURLToPath(uri);
12329
12445
  } catch (error) {
12330
- debugLogger19.warn(`Failed to resolve file path for ${uri}:`, error);
12446
+ debugLogger21.warn(`Failed to resolve file path for ${uri}:`, error);
12331
12447
  return false;
12332
12448
  }
12333
12449
  let text;
12334
12450
  try {
12335
12451
  text = fs11.readFileSync(filePath, "utf-8");
12336
12452
  } catch (error) {
12337
- debugLogger19.warn(
12453
+ debugLogger21.warn(
12338
12454
  `Failed to read file for LSP didOpen: ${filePath}`,
12339
12455
  error
12340
12456
  );
@@ -12562,7 +12678,7 @@ var NativeLspService = class {
12562
12678
  }
12563
12679
  }
12564
12680
  } catch (error) {
12565
- debugLogger19.warn(
12681
+ debugLogger21.warn(
12566
12682
  `LSP workspace/symbol failed for ${serverName}:`,
12567
12683
  error
12568
12684
  );
@@ -12613,7 +12729,7 @@ var NativeLspService = class {
12613
12729
  return definitions.slice(0, limit);
12614
12730
  }
12615
12731
  } catch (error) {
12616
- debugLogger19.warn(
12732
+ debugLogger21.warn(
12617
12733
  `LSP textDocument/definition failed for ${name}:`,
12618
12734
  error
12619
12735
  );
@@ -12667,7 +12783,7 @@ var NativeLspService = class {
12667
12783
  return refs.slice(0, limit);
12668
12784
  }
12669
12785
  } catch (error) {
12670
- debugLogger19.warn(
12786
+ debugLogger21.warn(
12671
12787
  `LSP textDocument/references failed for ${name}:`,
12672
12788
  error
12673
12789
  );
@@ -12708,7 +12824,7 @@ var NativeLspService = class {
12708
12824
  return normalized2;
12709
12825
  }
12710
12826
  } catch (error) {
12711
- debugLogger19.warn(`LSP textDocument/hover failed for ${name}:`, error);
12827
+ debugLogger21.warn(`LSP textDocument/hover failed for ${name}:`, error);
12712
12828
  }
12713
12829
  }
12714
12830
  return null;
@@ -12768,7 +12884,7 @@ var NativeLspService = class {
12768
12884
  return symbols.slice(0, limit);
12769
12885
  }
12770
12886
  } catch (error) {
12771
- debugLogger19.warn(
12887
+ debugLogger21.warn(
12772
12888
  `LSP textDocument/documentSymbol failed for ${name}:`,
12773
12889
  error
12774
12890
  );
@@ -12822,7 +12938,7 @@ var NativeLspService = class {
12822
12938
  return implementations.slice(0, limit);
12823
12939
  }
12824
12940
  } catch (error) {
12825
- debugLogger19.warn(
12941
+ debugLogger21.warn(
12826
12942
  `LSP textDocument/implementation failed for ${name}:`,
12827
12943
  error
12828
12944
  );
@@ -12876,7 +12992,7 @@ var NativeLspService = class {
12876
12992
  return items.slice(0, limit);
12877
12993
  }
12878
12994
  } catch (error) {
12879
- debugLogger19.warn(
12995
+ debugLogger21.warn(
12880
12996
  `LSP textDocument/prepareCallHierarchy failed for ${name}:`,
12881
12997
  error
12882
12998
  );
@@ -12916,7 +13032,7 @@ var NativeLspService = class {
12916
13032
  return calls.slice(0, limit);
12917
13033
  }
12918
13034
  } catch (error) {
12919
- debugLogger19.warn(
13035
+ debugLogger21.warn(
12920
13036
  `LSP callHierarchy/incomingCalls failed for ${name}:`,
12921
13037
  error
12922
13038
  );
@@ -12956,7 +13072,7 @@ var NativeLspService = class {
12956
13072
  return calls.slice(0, limit);
12957
13073
  }
12958
13074
  } catch (error) {
12959
- debugLogger19.warn(
13075
+ debugLogger21.warn(
12960
13076
  `LSP callHierarchy/outgoingCalls failed for ${name}:`,
12961
13077
  error
12962
13078
  );
@@ -12996,7 +13112,7 @@ var NativeLspService = class {
12996
13112
  }
12997
13113
  }
12998
13114
  } catch (error) {
12999
- debugLogger19.warn(
13115
+ debugLogger21.warn(
13000
13116
  `LSP textDocument/diagnostic failed for ${name}:`,
13001
13117
  error
13002
13118
  );
@@ -13038,7 +13154,7 @@ var NativeLspService = class {
13038
13154
  }
13039
13155
  }
13040
13156
  } catch (error) {
13041
- debugLogger19.warn(`LSP workspace/diagnostic failed for ${name}:`, error);
13157
+ debugLogger21.warn(`LSP workspace/diagnostic failed for ${name}:`, error);
13042
13158
  }
13043
13159
  if (results.length >= limit) {
13044
13160
  break;
@@ -13088,7 +13204,7 @@ var NativeLspService = class {
13088
13204
  return actions.slice(0, limit);
13089
13205
  }
13090
13206
  } catch (error) {
13091
- debugLogger19.warn(
13207
+ debugLogger21.warn(
13092
13208
  `LSP textDocument/codeAction failed for ${name}:`,
13093
13209
  error
13094
13210
  );
@@ -13116,7 +13232,7 @@ var NativeLspService = class {
13116
13232
  }
13117
13233
  return true;
13118
13234
  } catch (error) {
13119
- debugLogger19.error("Failed to apply workspace edit:", error);
13235
+ debugLogger21.error("Failed to apply workspace edit:", error);
13120
13236
  return false;
13121
13237
  }
13122
13238
  }
@@ -13379,7 +13495,7 @@ __name(createFollowupController, "createFollowupController");
13379
13495
 
13380
13496
  // packages/core/src/followup/suggestionGenerator.ts
13381
13497
  init_esbuild_shims();
13382
- var debugLogger20 = createDebugLogger("FOLLOWUP");
13498
+ var debugLogger22 = createDebugLogger("FOLLOWUP");
13383
13499
  var SUGGESTION_PROMPT = `[SUGGESTION MODE: Suggest what the user might naturally type next.]
13384
13500
 
13385
13501
  FIRST: Read the LAST FEW LINES of the assistant's most recent message -- that's where
@@ -13441,7 +13557,7 @@ async function generatePromptSuggestion(config, conversationHistory, abortSignal
13441
13557
  const cacheSafe = options?.enableCacheSharing ? getCacheSafeParams(sessionId) : null;
13442
13558
  const modelOverride = options?.model;
13443
13559
  const cacheSharingState = cacheSafe ? "true" : cacheSafeSessionId ? "session_mismatch" : "false";
13444
- debugLogger20.debug(
13560
+ debugLogger22.debug(
13445
13561
  `Generating suggestion: cacheSharing=${cacheSharingState}, model=${modelOverride || "(default)"}`
13446
13562
  );
13447
13563
  const raw = cacheSafe ? await generateViaForkedQuery(
@@ -13457,23 +13573,23 @@ async function generatePromptSuggestion(config, conversationHistory, abortSignal
13457
13573
  );
13458
13574
  const suggestion = typeof raw === "string" ? raw.trim() : null;
13459
13575
  if (!suggestion) {
13460
- debugLogger20.debug("Suggestion generation returned empty result");
13576
+ debugLogger22.debug("Suggestion generation returned empty result");
13461
13577
  return { suggestion: null, filterReason: "empty" };
13462
13578
  }
13463
13579
  const filterReason = getFilterReason(suggestion);
13464
13580
  if (filterReason) {
13465
- debugLogger20.debug(
13581
+ debugLogger22.debug(
13466
13582
  `Suggestion filtered: reason=${filterReason}, text="${suggestion}"`
13467
13583
  );
13468
13584
  return { suggestion: null, filterReason };
13469
13585
  }
13470
- debugLogger20.debug(`Suggestion accepted: "${suggestion}"`);
13586
+ debugLogger22.debug(`Suggestion accepted: "${suggestion}"`);
13471
13587
  return { suggestion };
13472
13588
  } catch (error) {
13473
13589
  if (abortSignal.aborted) {
13474
13590
  return { suggestion: null };
13475
13591
  }
13476
- debugLogger20.warn("Suggestion generation failed:", error);
13592
+ debugLogger22.warn("Suggestion generation failed:", error);
13477
13593
  return { suggestion: null, filterReason: "error" };
13478
13594
  }
13479
13595
  }
@@ -13812,7 +13928,7 @@ __name(rewritePathArgs, "rewritePathArgs");
13812
13928
 
13813
13929
  // packages/core/src/followup/speculation.ts
13814
13930
  init_esbuild_shims();
13815
- var debugLogger21 = createDebugLogger("SPECULATION");
13931
+ var debugLogger23 = createDebugLogger("SPECULATION");
13816
13932
  var MAX_SPECULATION_TURNS = 20;
13817
13933
  var MAX_SPECULATION_MESSAGES = 100;
13818
13934
  function observeSpeculationProducer(params) {
@@ -14060,7 +14176,7 @@ async function runSpeculativeLoop(config, state, cacheSafe, modelOverride) {
14060
14176
  break;
14061
14177
  }
14062
14178
  if (!guardDecision.allowed) {
14063
- debugLogger21.debug(
14179
+ debugLogger23.debug(
14064
14180
  `Speculative guard denial: ${guardDecision.reason}`
14065
14181
  );
14066
14182
  hitBoundary = true;
@@ -14307,7 +14423,7 @@ var import_picomatch = __toESM(require_picomatch(), 1);
14307
14423
  import fs12 from "node:fs";
14308
14424
  import path14 from "node:path";
14309
14425
  var hasFileExtension = (0, import_picomatch.default)("**/*[*.]*");
14310
- var debugLogger22 = createDebugLogger("FILE_SEARCH_IGNORE");
14426
+ var debugLogger24 = createDebugLogger("FILE_SEARCH_IGNORE");
14311
14427
  function loadIgnoreRules(options) {
14312
14428
  const ignorer = new Ignore();
14313
14429
  if (options.useGitignore) {
@@ -14346,7 +14462,7 @@ function readIgnoreFile(filePath) {
14346
14462
  } catch (_error) {
14347
14463
  const error = _error;
14348
14464
  if (error.code !== "ENOENT") {
14349
- debugLogger22.warn(`Failed to read ${filePath}: ${error.message}`);
14465
+ debugLogger24.warn(`Failed to read ${filePath}: ${error.message}`);
14350
14466
  }
14351
14467
  return void 0;
14352
14468
  }
@@ -17897,6 +18013,8 @@ export {
17897
18013
  BTW_MAX_INPUT_LENGTH,
17898
18014
  buildBtwPrompt,
17899
18015
  buildBtwCacheSafeParams,
18016
+ getStopHookContinuationReason,
18017
+ abortGoalForStopHookCap,
17900
18018
  projectGoalStateToLegacy,
17901
18019
  isGoalCheckpointBookkeepingRecord,
17902
18020
  renderGoalContinuationTurn,