@qwen-code/qwen-code 0.23.2 → 0.23.3-nightly.20260911.aaa6a32aae

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 (419) hide show
  1. package/README.md +35 -15
  2. package/bundled/computer-use/SKILL.md +1 -1
  3. package/bundled/goal-draft/SKILL.md +10 -10
  4. package/bundled/qc-helper/docs/configuration/model-providers.md +66 -28
  5. package/bundled/qc-helper/docs/configuration/settings.md +8 -3
  6. package/bundled/qc-helper/docs/features/_meta.ts +1 -0
  7. package/bundled/qc-helper/docs/features/channels/dingtalk.md +0 -20
  8. package/bundled/qc-helper/docs/features/channels/dws.md +7 -1
  9. package/bundled/qc-helper/docs/features/channels/overview.md +5 -6
  10. package/bundled/qc-helper/docs/features/commands.md +62 -9
  11. package/bundled/qc-helper/docs/features/computer-use.md +1 -1
  12. package/bundled/qc-helper/docs/features/cross-session-protocol.md +338 -0
  13. package/bundled/qc-helper/docs/features/goals.md +22 -18
  14. package/bundled/qc-helper/docs/features/hooks.md +28 -22
  15. package/bundled/qc-helper/docs/features/sub-agents.md +27 -0
  16. package/bundled/qc-helper/docs/qwen-serve.md +23 -6
  17. package/bundled/review/SKILL.md +93 -80
  18. package/bundled/review/references/persistence.md +2 -0
  19. package/bundled/review/references/posting.md +31 -14
  20. package/bundled/workflow-authoring/SKILL.md +410 -0
  21. package/bundled/workflow-creator/SKILL.md +1 -1
  22. package/chunks/{MaxSizedBox-4C3BKKKY.js → MaxSizedBox-7C5XTBZI.js} +64 -53
  23. package/chunks/{StandaloneSessionPicker-TXVF65YW.js → StandaloneSessionPicker-IGTT3ZRX.js} +88 -76
  24. package/chunks/{acp-startup-profiler-KEU6VAYR.js → acp-startup-profiler-RUQNTNU5.js} +2 -2
  25. package/chunks/acp-subagent-executor-IUHVNVVO.js +140 -0
  26. package/chunks/{acpAgent-H5XBKGB4.js → acpAgent-W43WM2K4.js} +957 -243
  27. package/chunks/{agent-T5LEFJIU.js → agent-2XMXC5JW.js} +48 -38
  28. package/chunks/{agent-headless-VZKSRH36.js → agent-headless-2HHBVCP6.js} +48 -38
  29. package/chunks/{anthropicContentGenerator-PRJWWVYJ.js → anthropicContentGenerator-7RI3MPIW.js} +69 -36
  30. package/chunks/{artifact-tool-G5LHNECG.js → artifact-tool-HHVHCPNG.js} +59 -109
  31. package/chunks/{askUserQuestion-I5W5S3D6.js → askUserQuestion-RFMXTD3B.js} +2 -2
  32. package/chunks/{bridge-AOX5IY44.js → bridge-ID6N4IH5.js} +69 -58
  33. package/chunks/{ca-KC2AISNS.js → ca-MX3WCEEG.js} +1 -1
  34. package/chunks/{channel-management-service-MWQGHPAS.js → channel-management-service-ASCXI7FR.js} +6 -6
  35. package/chunks/{channel-settings-store-XZCGDGHW.js → channel-settings-store-TPJFQAZY.js} +76 -65
  36. package/chunks/{channel-worker-group-SQ5FRWOH.js → channel-worker-group-JR6JOELM.js} +9 -9
  37. package/chunks/{channel-worker-manager-TU4ZNWOE.js → channel-worker-manager-AVKJEZFL.js} +19 -10
  38. package/chunks/{channel-worker-supervisor-EMITFMCP.js → channel-worker-supervisor-OOYY7BAQ.js} +7 -7
  39. package/chunks/{chunk-4WMGYG3F.js → chunk-22FWWGSM.js} +2 -2
  40. package/chunks/{chunk-LWX4WDFF.js → chunk-2S5RIGZJ.js} +43 -15
  41. package/chunks/{chunk-CLKE4IY3.js → chunk-2SZH22YO.js} +1 -1
  42. package/chunks/{chunk-HJ5UJQQL.js → chunk-2UKKQGRA.js} +3639 -1804
  43. package/chunks/{chunk-MWIO7MF6.js → chunk-2WSLXP3W.js} +4 -0
  44. package/chunks/{chunk-HNLMYDQE.js → chunk-33LYAC4R.js} +10 -6
  45. package/chunks/{chunk-VBLAI2HA.js → chunk-3FPYT6QC.js} +0 -31
  46. package/chunks/{chunk-F53KKZUD.js → chunk-3LMDSCLU.js} +158 -10
  47. package/chunks/{chunk-WXFCI3O5.js → chunk-3MAUPOZ4.js} +2 -2
  48. package/chunks/{chunk-CRZBDVP2.js → chunk-432JQKIO.js} +10 -10
  49. package/chunks/{chunk-IRGDIDGJ.js → chunk-43RQ552L.js} +364 -84
  50. package/chunks/{chunk-PFKGV6PO.js → chunk-465USTVK.js} +9 -15
  51. package/chunks/{chunk-WG7BL3FY.js → chunk-473RJLIH.js} +1 -1
  52. package/chunks/{chunk-J3VZF2AL.js → chunk-4O2AXZXU.js} +2 -2
  53. package/chunks/{chunk-N6S3NUYJ.js → chunk-55VOWZ4C.js} +1 -1
  54. package/chunks/{chunk-OWCFKIFQ.js → chunk-5CZMWDJI.js} +2 -2
  55. package/chunks/{chunk-7NDZKE2M.js → chunk-5MUIHID6.js} +5 -5
  56. package/chunks/{chunk-RM244SCQ.js → chunk-5Z74GE4N.js} +1 -1
  57. package/chunks/{chunk-G5VOXCRX.js → chunk-6375QMAO.js} +2 -2
  58. package/chunks/{chunk-3LPJ776W.js → chunk-63GQZKXL.js} +164 -31
  59. package/chunks/{chunk-O2FEO2CB.js → chunk-6GDELAVL.js} +18 -2
  60. package/chunks/{chunk-7PD7ZMX5.js → chunk-6HI2I3OM.js} +168 -6
  61. package/chunks/{chunk-CALNF3Z3.js → chunk-7C57HCOR.js} +1 -1
  62. package/chunks/{chunk-UYDQYDW2.js → chunk-7IBS746B.js} +1 -1
  63. package/chunks/{chunk-AUTUFD5X.js → chunk-ABNX6E6K.js} +1 -1
  64. package/chunks/chunk-ACHCT36C.js +28 -0
  65. package/chunks/{chunk-2WC3Y7YY.js → chunk-AEY27Z35.js} +401 -23
  66. package/chunks/{chunk-AO2VMS72.js → chunk-AQFRRH73.js} +3 -3
  67. package/chunks/{chunk-PDN7FJZV.js → chunk-ASWEMQIZ.js} +4 -4
  68. package/chunks/chunk-AYEJOTIU.js +43 -0
  69. package/chunks/{chunk-QFJZAY7W.js → chunk-BKFRA4F5.js} +5 -5
  70. package/chunks/{chunk-KCF2436G.js → chunk-BNLW5N6U.js} +4 -4
  71. package/chunks/{chunk-GOKAOSCN.js → chunk-BRFOZEPA.js} +2 -2
  72. package/chunks/{process-registry-OAEG6WGC.js → chunk-BYUAT5OC.js} +1 -0
  73. package/chunks/chunk-C5CECJ46.js +340 -0
  74. package/chunks/{chunk-NOO4QFXM.js → chunk-C75BXMPM.js} +1 -3
  75. package/chunks/chunk-CAAMI77K.js +937 -0
  76. package/chunks/{chunk-QTB4VP4K.js → chunk-CBGHRAWM.js} +304 -23
  77. package/chunks/chunk-CF5KXZZX.js +150 -0
  78. package/chunks/chunk-CFMZLE3L.js +75 -0
  79. package/chunks/{chunk-TGNNLRC3.js → chunk-CJ3DHN5I.js} +1 -0
  80. package/chunks/{chunk-ERXNTINK.js → chunk-CQZJYGRX.js} +1 -1
  81. package/chunks/{chunk-WBU2PIZ5.js → chunk-CSDKDHWV.js} +23 -16
  82. package/chunks/{chunk-2EKVPSIJ.js → chunk-D754KKNZ.js} +9 -2
  83. package/chunks/{chunk-E6TI726I.js → chunk-DGC7BKEZ.js} +1 -1
  84. package/chunks/{chunk-7SVM3RP2.js → chunk-DMMOQWRF.js} +4 -6
  85. package/chunks/{chunk-J3TJH52D.js → chunk-DOTF2PF2.js} +1 -1
  86. package/chunks/{chunk-2BMXHB6N.js → chunk-DWBNQR53.js} +7 -7
  87. package/chunks/{chunk-ZN5TKAVR.js → chunk-E5LTUWKZ.js} +3 -3
  88. package/chunks/chunk-EGW3ZP6Y.js +32 -0
  89. package/chunks/chunk-ELRMZTPF.js +374 -0
  90. package/chunks/{chunk-RNAJVXUG.js → chunk-ENAUXRPG.js} +6 -6
  91. package/chunks/{chunk-WXD7INFV.js → chunk-EO4U2X47.js} +10 -8
  92. package/chunks/{chunk-WDVV3LRM.js → chunk-EPVEPTI3.js} +45 -152
  93. package/chunks/chunk-ERU3SDXT.js +27 -0
  94. package/chunks/{chunk-4HOEU2OR.js → chunk-EWJTAP3Y.js} +1 -19
  95. package/chunks/{chunk-GSFV5RQW.js → chunk-EYN3G5XD.js} +328 -4
  96. package/chunks/{chunk-QB3KS3N3.js → chunk-FGROOEKM.js} +5 -40
  97. package/chunks/{chunk-TOOOLHVS.js → chunk-FH5AVEWJ.js} +3 -3
  98. package/chunks/{chunk-DAI65CMX.js → chunk-FJZWRNEW.js} +1 -1
  99. package/chunks/{chunk-GNY7B3CA.js → chunk-FUQK5ZNL.js} +1 -1
  100. package/chunks/{chunk-GOEVQADN.js → chunk-GDIPPCW6.js} +330 -175
  101. package/chunks/{chunk-ALMR3E6Q.js → chunk-GDWE23OR.js} +3 -3
  102. package/chunks/{chunk-LNYV4GXX.js → chunk-GSKX53AN.js} +0 -139
  103. package/chunks/{chunk-ELD3OBPU.js → chunk-GWOVD63C.js} +3 -3
  104. package/chunks/{chunk-IWABUX6T.js → chunk-GX5FF2IE.js} +6 -6
  105. package/chunks/{chunk-22GORRNY.js → chunk-GZMNHAYC.js} +1 -1
  106. package/chunks/{chunk-YZTGGCEE.js → chunk-H3TFIFX3.js} +1 -1
  107. package/chunks/{chunk-6G4V7SE4.js → chunk-HG46TTAG.js} +1 -1
  108. package/chunks/{chunk-FETY36NQ.js → chunk-HGEUHUEV.js} +1 -1
  109. package/chunks/{chunk-KEPC5BOL.js → chunk-IBRQG2MP.js} +12 -15
  110. package/chunks/{chunk-OXR34GCD.js → chunk-IILWL3KY.js} +2054 -146
  111. package/chunks/{chunk-IW6RQPQB.js → chunk-IJOS26LH.js} +1 -3
  112. package/chunks/{chunk-ORFIYTI2.js → chunk-IK2MWJP5.js} +1 -1
  113. package/chunks/{chunk-CMWU6P4D.js → chunk-IRJRB3OD.js} +1 -1
  114. package/chunks/{chunk-QHLHE2OT.js → chunk-IUN5ZMFY.js} +1 -1
  115. package/chunks/{chunk-LYT2OU7D.js → chunk-IXXV6BVB.js} +172 -6
  116. package/chunks/{chunk-R3JIDRUL.js → chunk-J6H4JP25.js} +4 -4
  117. package/chunks/{chunk-NB3NDQQK.js → chunk-J6SBP5G2.js} +1 -1
  118. package/chunks/{chunk-TRQNRP2H.js → chunk-J7LBAKDH.js} +46 -3
  119. package/chunks/{chunk-67XTVRVB.js → chunk-JJFHISXU.js} +30 -25
  120. package/chunks/chunk-JL6APGBX.js +43 -0
  121. package/chunks/{chunk-NX7ZTXFF.js → chunk-JSKEW4E7.js} +2 -1
  122. package/chunks/{chunk-BK7D2JR6.js → chunk-JVTXAA35.js} +3 -3
  123. package/chunks/chunk-K2OJUPOE.js +78 -0
  124. package/chunks/{chunk-G3ZUMSFS.js → chunk-K3U6VB3O.js} +6 -6
  125. package/chunks/{chunk-4I3WFI3U.js → chunk-K4KWLF7Q.js} +12 -12
  126. package/chunks/{chunk-WXPPUPHM.js → chunk-KWFFJ6AK.js} +1 -1
  127. package/chunks/{chunk-46MMBZHI.js → chunk-KZYOFJ6V.js} +4 -4
  128. package/chunks/{chunk-ULZECEIP.js → chunk-LDQHA6L4.js} +2 -20
  129. package/chunks/{chunk-7LTCFO6T.js → chunk-LQBAFO5D.js} +6 -5
  130. package/chunks/{chunk-SOA4HKRJ.js → chunk-LT2XFADM.js} +2 -2
  131. package/chunks/{chunk-JYGIJA4W.js → chunk-LWWRJRCD.js} +1 -1
  132. package/chunks/{chunk-YQGW3M6Z.js → chunk-MFQWRBFB.js} +5 -5
  133. package/chunks/{chunk-TODNHE76.js → chunk-MUFGTWQH.js} +5 -5
  134. package/chunks/{chunk-5DQ4YTIZ.js → chunk-MV5XRRML.js} +3 -3
  135. package/chunks/{chunk-IR6JKBAP.js → chunk-NOUK63IR.js} +2 -2
  136. package/chunks/{chunk-XQ4RDO5B.js → chunk-NV77SEX3.js} +1 -1
  137. package/chunks/{chunk-OFVAS4AR.js → chunk-NWDPOFJI.js} +2 -2
  138. package/chunks/chunk-NY6OPAPS.js +820 -0
  139. package/chunks/{chunk-WDN64MVT.js → chunk-O5VX66FB.js} +127 -18
  140. package/chunks/{chunk-MV5DTLJV.js → chunk-OHCR4O3U.js} +1 -1
  141. package/chunks/{chunk-LEAOJ43M.js → chunk-OKOPKQ2X.js} +1310 -2107
  142. package/chunks/{chunk-B25JYXZE.js → chunk-ONLJBOI2.js} +971 -17
  143. package/chunks/{chunk-QQK4L3UU.js → chunk-OWUAZXXN.js} +132 -26
  144. package/chunks/{chunk-R457KFV7.js → chunk-P42IUOAO.js} +3 -3
  145. package/chunks/{chunk-LUNC5KCL.js → chunk-PRELUGCQ.js} +214 -39
  146. package/chunks/{chunk-5OZUKLL7.js → chunk-QSMQKTXV.js} +4 -4
  147. package/chunks/{chunk-FAJPLSYF.js → chunk-QTQYLQ5A.js} +85 -81
  148. package/chunks/{chunk-CALTQWTZ.js → chunk-QVZDV4ZS.js} +2 -2
  149. package/chunks/{chunk-J6MB5ZHZ.js → chunk-QZW6WRB7.js} +2 -1
  150. package/chunks/{chunk-KFECPHLV.js → chunk-RBWAGV73.js} +3 -3
  151. package/chunks/{chunk-4VY3ITHR.js → chunk-RF5RQRTD.js} +3 -3
  152. package/chunks/{chunk-HIXUUCGY.js → chunk-RPMXMR6U.js} +2 -2
  153. package/chunks/{chunk-3OAXF3UK.js → chunk-RRQEZBL2.js} +3756 -1343
  154. package/chunks/{chunk-4ALNJDHL.js → chunk-RSGEAWFJ.js} +19 -1
  155. package/chunks/{chunk-5BH2AIEY.js → chunk-RUE62UH6.js} +2 -2
  156. package/chunks/{chunk-PQEISIKS.js → chunk-SAH4BD2J.js} +0 -67
  157. package/chunks/{chunk-A7EFXK7P.js → chunk-SAOJHRWY.js} +2 -2
  158. package/chunks/{chunk-JO77FGNZ.js → chunk-SDUIETBG.js} +19 -7
  159. package/chunks/{chunk-6RZX2HIH.js → chunk-TBEXLLAO.js} +2 -2
  160. package/chunks/{chunk-PSPAM24S.js → chunk-TBSCTWKF.js} +6 -0
  161. package/chunks/{chunk-HRPFBHW7.js → chunk-TPKQIA7G.js} +1 -0
  162. package/chunks/{chunk-XDNFODER.js → chunk-TUIW5LLK.js} +1 -1
  163. package/chunks/{chunk-APXIW2TF.js → chunk-TVV5FA3G.js} +4 -4
  164. package/chunks/chunk-U6H3XTFA.js +95 -0
  165. package/chunks/{chunk-S5QR6CB5.js → chunk-UKMWZ5NS.js} +108 -887
  166. package/chunks/{chunk-U6REWGVR.js → chunk-VG2BRSEK.js} +2 -2
  167. package/chunks/chunk-VGBOJH2D.js +127 -0
  168. package/chunks/chunk-VGY2RGXL.js +100 -0
  169. package/chunks/{chunk-ZP5XDLSA.js → chunk-VLWG3EHY.js} +12 -12
  170. package/chunks/{chunk-4JNHNVAZ.js → chunk-W547PYQ7.js} +9 -4
  171. package/chunks/{chunk-7VEYUF3N.js → chunk-W5ZQMAEM.js} +1 -1
  172. package/chunks/{chunk-QAZ2MGYT.js → chunk-W7JJLUSB.js} +2 -2
  173. package/chunks/{chunk-CCBTNJB4.js → chunk-W7Q7XDQI.js} +39 -27
  174. package/chunks/{chunk-DARWOZY6.js → chunk-WD6YQI5M.js} +1 -1
  175. package/chunks/{chunk-F2NYVASI.js → chunk-WXAWG3JS.js} +30 -13
  176. package/chunks/{chunk-NPKCVSXX.js → chunk-XB5JRCAM.js} +11 -9
  177. package/chunks/{chunk-XSOXPG2L.js → chunk-XE46RQFI.js} +136 -8
  178. package/chunks/{chunk-QTNCGZHQ.js → chunk-XX5HQLCZ.js} +16 -0
  179. package/chunks/{chunk-2Z3T52OC.js → chunk-Y5TM7SBV.js} +7 -2
  180. package/chunks/chunk-YC6XOB5N.js +691 -0
  181. package/chunks/{chunk-CWVZBIZJ.js → chunk-YDW4ERSS.js} +1 -1
  182. package/chunks/{chunk-TRWQQBVH.js → chunk-YGCTOXUT.js} +10 -24
  183. package/chunks/{chunk-WK7P62DV.js → chunk-YKC67ZEF.js} +6 -6
  184. package/chunks/{chunk-KA5HR3G2.js → chunk-YKM6MITI.js} +5 -5
  185. package/chunks/{chunk-X7LFJF5D.js → chunk-YM6KUQ2S.js} +36 -84
  186. package/chunks/{chunk-HZ2HUXX7.js → chunk-YS2ZJSOA.js} +29 -12
  187. package/chunks/{chunk-G37O7YO6.js → chunk-ZAWM6KRF.js} +3 -3
  188. package/chunks/{chunk-H3Q3RSKZ.js → chunk-ZFIWHBJ3.js} +1 -1
  189. package/chunks/{chunk-XBVNNDPK.js → chunk-ZHKTKHMO.js} +8 -1
  190. package/chunks/{chunk-YLOHCA6I.js → chunk-ZKWO4CF4.js} +2 -2
  191. package/chunks/{chunk-VJJXG73H.js → chunk-ZMQL5BL5.js} +21 -6
  192. package/chunks/{chunk-FGHPZGOP.js → chunk-ZMUYBOYB.js} +39 -55
  193. package/chunks/{chunk-FV4DM2M4.js → chunk-ZNI3YJHS.js} +26 -6
  194. package/chunks/{chunk-565U2ANU.js → chunk-ZTTC7T4X.js} +1 -1
  195. package/chunks/{chunk-7OCIQNKX.js → chunk-ZW2EUO2A.js} +1 -1
  196. package/chunks/codex-subagent-executor-26XOHVKH.js +585 -0
  197. package/chunks/{config-utils-GPLIABL2.js → config-utils-JUG3MOYN.js} +68 -57
  198. package/chunks/{contextCommand-NCUQUDBY.js → contextCommand-6K3POZFA.js} +65 -54
  199. package/chunks/{core-runtime-WKYKWVYU.js → core-runtime-XQFZLA2V.js} +66 -55
  200. package/chunks/{create-sub-session-TGIX63YU.js → create-sub-session-4UJ6RM6W.js} +5 -2
  201. package/chunks/{create-sub-session-PPLXB3JJ.js → create-sub-session-T4IYIOC7.js} +178 -91
  202. package/chunks/{cron-create-GTPVMJCF.js → cron-create-6466RWSO.js} +2 -2
  203. package/chunks/{cron-delete-ZBK27Z4K.js → cron-delete-W4QUWHOA.js} +2 -2
  204. package/chunks/{cron-list-KTFKFDKC.js → cron-list-Q5LJ5PZE.js} +2 -2
  205. package/chunks/{daemon-2CKIAO3I.js → daemon-PHPJUXDZ.js} +4 -2
  206. package/chunks/{daemon-git-worktree-guard-73ZWOLKL.js → daemon-git-worktree-guard-5WEMZ64U.js} +65 -54
  207. package/chunks/{daemon-status-provider-OK7VONJG.js → daemon-status-provider-GMD7QD4T.js} +74 -63
  208. package/chunks/{daemon-trust-policy-CAUCREG2.js → daemon-trust-policy-IPBZES2Z.js} +71 -60
  209. package/chunks/{daemon-trust-policy-monitor-3Y36OOEQ.js → daemon-trust-policy-monitor-MHYEN7X7.js} +71 -60
  210. package/chunks/{de-UU2YTO37.js → de-OOLZAU2U.js} +1 -1
  211. package/chunks/{deferred-core-runtime-Q7WFWYD3.js → deferred-core-runtime-CY43FZNZ.js} +63 -52
  212. package/chunks/{discovery-XP4RMDUM.js → discovery-5KUEPR65.js} +2 -2
  213. package/chunks/{display-image-CTNHJRZC.js → display-image-6AZIHP3J.js} +3 -3
  214. package/chunks/{dist-F34J4FZX.js → dist-2QYIVNS6.js} +2 -5
  215. package/chunks/{dist-6YDUH3BB.js → dist-GIMQXYLI.js} +10 -631
  216. package/chunks/{dist-NP7QKLVG.js → dist-GUB7QRYA.js} +3 -6
  217. package/chunks/{dist-Y5KC3IHW.js → dist-L45UB6DG.js} +233 -35
  218. package/chunks/{dist-XLV33CLY.js → dist-MPUZZOG5.js} +5 -18
  219. package/chunks/{dist-ZDNJK74R.js → dist-PA7WPFVE.js} +6 -37
  220. package/chunks/{dist-F6JLAJLE.js → dist-T6DDPDLQ.js} +16 -36
  221. package/chunks/{dist-BNQVF565.js → dist-TFGETXFN.js} +14 -37
  222. package/chunks/{dist-UFTFGI6I.js → dist-VDLSBCLM.js} +2 -6
  223. package/chunks/{edit-YJD6IETK.js → edit-6NUP5IPX.js} +48 -38
  224. package/chunks/{en-YJNRUQG4.js → en-ZSZW3PZX.js} +4 -1
  225. package/chunks/{enter-worktree-YFTKHXHZ.js → enter-worktree-EETDMJRF.js} +5 -5
  226. package/chunks/{enterPlanMode-EFPVTWIH.js → enterPlanMode-AZHYHEII.js} +48 -38
  227. package/chunks/{environment-HP3AXFTB.js → environment-ON6GIQ4F.js} +66 -55
  228. package/chunks/{errors-22ON46G7.js → errors-DQE63SCC.js} +65 -54
  229. package/chunks/exec-66WQIVYU.js +505 -0
  230. package/chunks/{exit-worktree-NF2XEMES.js → exit-worktree-DIPJ6S55.js} +5 -5
  231. package/chunks/{exitPlanMode-MOQUNCBH.js → exitPlanMode-NHBV6LAI.js} +48 -38
  232. package/chunks/{fast-path-2X7BPMXX.js → fast-path-EPJSUZZC.js} +7 -7
  233. package/chunks/{fast-path-settings-SATXY3PD.js → fast-path-settings-XDYX7X5Z.js} +2 -2
  234. package/chunks/{fr-HKNWVXRJ.js → fr-JJWM2HUS.js} +1 -1
  235. package/chunks/{glob-Y7ACIB3P.js → glob-MNEXQ2NV.js} +51 -41
  236. package/chunks/{goal-tools-DABMICUC.js → goal-tools-D2A4QBCJ.js} +54 -40
  237. package/chunks/{grep-BLHF2S5D.js → grep-EFWPV3MM.js} +2 -2
  238. package/chunks/{handleAutoUpdate-MCAMHYDI.js → handleAutoUpdate-2RY3OQA6.js} +67 -56
  239. package/chunks/{i18n-C3GDCALP.js → i18n-HTHDB3I7.js} +64 -53
  240. package/chunks/{image-gen-XP4NNIYG.js → image-gen-2PHED3P4.js} +8 -6
  241. package/chunks/{initializer-4URDQL2G.js → initializer-JEVLJCQA.js} +71 -60
  242. package/chunks/{installationInfo-LBOL6SBV.js → installationInfo-ITRB6J4L.js} +63 -52
  243. package/chunks/{ja-GJS5RZGU.js → ja-L67TXFDJ.js} +1 -1
  244. package/chunks/list-KOUIMHT5.js +133 -0
  245. package/chunks/{list-agents-2CXPGJUE.js → list-agents-IY4NEWLP.js} +17 -7
  246. package/chunks/{llm-2KPNSAVY.js → llm-F7WHGESY.js} +132 -120
  247. package/chunks/{llm-content-generator-GR3FOHLB.js → llm-content-generator-NYQ2NAVA.js} +6 -5
  248. package/chunks/{loadedSettingsAdapter-DVKROEJD.js → loadedSettingsAdapter-HZUAX5CX.js} +71 -60
  249. package/chunks/{loggingContentGenerator-P4K6K5W4.js → loggingContentGenerator-WMNU7C5J.js} +70 -59
  250. package/chunks/{loop-wakeup-HL6XOWI4.js → loop-wakeup-ANX25YW2.js} +3 -3
  251. package/chunks/{ls-YV7RKLKY.js → ls-4XCMJNZF.js} +4 -4
  252. package/chunks/{lsp-NO3AMRZT.js → lsp-K5E2Y64R.js} +1 -1
  253. package/chunks/{managed-npm-update-VWBKHNIN.js → managed-npm-update-EJJB65QI.js} +63 -52
  254. package/chunks/mcp-I73R6HS3.js +127 -0
  255. package/chunks/{monitor-A255TNZR.js → monitor-T56GJNA4.js} +50 -40
  256. package/chunks/{nonInteractiveCli-LXGIKQAT.js → nonInteractiveCli-CKHHJ423.js} +120 -109
  257. package/chunks/{notebook-edit-5UYHS2DM.js → notebook-edit-W5TU3EZ3.js} +48 -38
  258. package/chunks/openai-WX26N5OJ.js +47 -0
  259. package/chunks/{openaiContentGenerator-A6MAMEO5.js → openaiContentGenerator-TH6YAWAH.js} +33 -25
  260. package/chunks/openaiResponsesContentGenerator-EWLWQPKS.js +1738 -0
  261. package/chunks/{pidfile-B7DZC4TP.js → pidfile-RCC6TCEM.js} +63 -52
  262. package/chunks/process-registry-X6ZCASEN.js +10 -0
  263. package/chunks/{processUtils-BPZ2MCZS.js → processUtils-DQDQBRMC.js} +2 -2
  264. package/chunks/{prompt-terminal-ledger-FYYTAOXS.js → prompt-terminal-ledger-2LXWAGWU.js} +64 -53
  265. package/chunks/{pt-FXMYXEUV.js → pt-77SBDL4B.js} +1 -1
  266. package/chunks/{qwenContentGenerator-4IOJFD4S.js → qwenContentGenerator-LG65Z2YV.js} +61 -49
  267. package/chunks/{qwenOAuth2-KX6LVYQ3.js → qwenOAuth2-PJ63CCFD.js} +7 -5
  268. package/chunks/{read-file-A4H4O3VQ.js → read-file-72HMRUT4.js} +12 -9
  269. package/chunks/{read-mcp-resource-D3N75DGF.js → read-mcp-resource-NPF44YSC.js} +1 -1
  270. package/chunks/{record-artifact-Q5CRGJTP.js → record-artifact-MDXCCW2J.js} +3 -3
  271. package/chunks/record-source-VJLKDGGR.js +22 -0
  272. package/chunks/{report-findings-TJ34R7QK.js → report-findings-CZTYMZTC.js} +4 -4
  273. package/chunks/{request-shutdown-LRKMTBAD.js → request-shutdown-KOZHPVZU.js} +5 -5
  274. package/chunks/{resumeHistoryUtils-YQQ43E4N.js → resumeHistoryUtils-S2Q3M3EH.js} +69 -58
  275. package/chunks/{ripGrep-W32NWFTA.js → ripGrep-B2I3L5CO.js} +17 -13
  276. package/chunks/{ru-RMHURE5U.js → ru-UYWHKWF2.js} +1 -1
  277. package/chunks/{run-qwen-serve-WBSWWIRV.js → run-qwen-serve-AOPYFCVP.js} +305 -132
  278. package/chunks/{runtime-VRVBX2E5.js → runtime-TZMHKZAP.js} +77 -66
  279. package/chunks/{scheduled-tasks-D65KJDA3.js → scheduled-tasks-7RL6ZOYT.js} +72 -60
  280. package/chunks/{scheduler-M2YPN7Z7.js → scheduler-D6RLOFNU.js} +65 -54
  281. package/chunks/{sdk-exporters-grpc-MXTVSE3C.js → sdk-exporters-grpc-Y2ZUQDUQ.js} +2 -2
  282. package/chunks/{sdk-exporters-http-7R2ARBPV.js → sdk-exporters-http-VWTF4W6K.js} +3 -3
  283. package/chunks/{sdk-impl-YOLO7LV4.js → sdk-impl-G6FVTBQZ.js} +9 -9
  284. package/chunks/{send-message-76BKWKFZ.js → send-message-MMZVSS7P.js} +12 -9
  285. package/chunks/{serve-BE3H2P6P.js → serve-HWWDYI37.js} +72 -61
  286. package/chunks/{server-FLY5JERG.js → server-MD2X5U5L.js} +3156 -564
  287. package/chunks/{session-JVN62R5K.js → session-AFUMFNN7.js} +124 -113
  288. package/chunks/{session-attachments-root-7ACGLHXA.js → session-attachments-root-QPN3YWTY.js} +63 -52
  289. package/chunks/{session-pr-refresh-TQS57SDK.js → session-pr-refresh-4Y2ANMJX.js} +72 -60
  290. package/chunks/{settings-D44YMZFT.js → settings-QQRQ2LR7.js} +74 -63
  291. package/chunks/{shell-3VE6I4V5.js → shell-NUYUYMVI.js} +48 -38
  292. package/chunks/{skill-FHEGRRZU.js → skill-KHLDVOXW.js} +68 -30
  293. package/chunks/{skill-settings-VHEJMBFL.js → skill-settings-INLEGDEZ.js} +70 -59
  294. package/chunks/{spawnChannel-T6MX2ZDN.js → spawnChannel-KBGZHW2G.js} +67 -56
  295. package/chunks/{standalone-update-QUGHFMCS.js → standalone-update-3QP5NDVJ.js} +65 -54
  296. package/chunks/{start-opentui-ui-IHIIZ2LE.js → start-opentui-ui-VBT3XDWN.js} +2682 -2153
  297. package/chunks/{startInteractiveUI-LR7K2ARZ.js → startInteractiveUI-AZHKCHMR.js} +1562 -2317
  298. package/chunks/{syntheticOutput-D2P5V6RG.js → syntheticOutput-KRASPDE3.js} +2 -2
  299. package/chunks/{task-create-MWXJFRRM.js → task-create-TNXNT7ZD.js} +8 -8
  300. package/chunks/{task-list-EYO3FE57.js → task-list-FHNIJDKT.js} +1 -1
  301. package/chunks/{task-stop-BFSKRTGV.js → task-stop-MG4ZMTEI.js} +1 -1
  302. package/chunks/{task-update-2JJJRHMT.js → task-update-4HU62CJT.js} +8 -8
  303. package/chunks/{team-create-GY3VFY47.js → team-create-K5DNSJXR.js} +50 -40
  304. package/chunks/{team-delete-IQZ6XGFI.js → team-delete-2T44GUNN.js} +1 -1
  305. package/chunks/{team-plan-approval-BQPGZOT5.js → team-plan-approval-2ZNAQT2A.js} +48 -38
  306. package/chunks/{terminal-image-renderer-YNYW5CQG.js → terminal-image-renderer-23CW4A6Q.js} +65 -54
  307. package/chunks/{theme-manager-U6CIK3GM.js → theme-manager-G2333AMH.js} +63 -52
  308. package/chunks/{todoWrite-5ERKFWAK.js → todoWrite-BO2GR5MN.js} +4 -4
  309. package/chunks/{tool-search-XI3QWD5I.js → tool-search-MKQCKXN5.js} +22 -15
  310. package/chunks/{total-session-admission-3SNSJJ32.js → total-session-admission-ENKTM2KX.js} +69 -58
  311. package/chunks/{trustedFolders-OVAQKNV5.js → trustedFolders-2ETDL7OD.js} +64 -53
  312. package/chunks/{update-relaunch-XV5O74E3.js → update-relaunch-FMVNN5KA.js} +5 -5
  313. package/chunks/{updateCheck-CHUYWD6L.js → updateCheck-KWRV5KLJ.js} +66 -55
  314. package/chunks/{useAutoAcceptIndicator-VKSVIXZC.js → useAutoAcceptIndicator-7AUXAIQF.js} +73 -62
  315. package/chunks/{validateNonInterActiveAuth-ZNUTD3E5.js → validateNonInterActiveAuth-NETKLLDV.js} +117 -106
  316. package/chunks/{version-EK7VAGSI.js → version-DACNN2ZM.js} +1 -1
  317. package/chunks/{web-fetch-24KZO763.js → web-fetch-CIVCRET4.js} +16 -12
  318. package/chunks/{web-search-CRNXKZ2X.js → web-search-GOHZRGMM.js} +389 -327
  319. package/chunks/{web-shell-static-BFDESDD4.js → web-shell-static-T7UGLVE4.js} +2 -7
  320. package/chunks/workflow-IL2FOALZ.js +1324 -0
  321. package/chunks/workspace-providers-status-YGXL6N5U.js +131 -0
  322. package/chunks/{workspace-registration-store-HKLJEDQX.js → workspace-registration-store-E4IAOFFZ.js} +3 -1
  323. package/chunks/{workspace-registry-7RDDOBLN.js → workspace-registry-KX6BIBYK.js} +69 -58
  324. package/chunks/{workspace-runtime-coordinator-LEPDPXJO.js → workspace-runtime-coordinator-2KYYGDDR.js} +72 -59
  325. package/chunks/{workspace-service-5IFDCNN3.js → workspace-service-5Q6LWBYR.js} +76 -65
  326. package/chunks/{workspace-skills-status-FJ3HNH4H.js → workspace-skills-status-PJZTFPVV.js} +72 -61
  327. package/chunks/{workspace-trust-reconciler-PQFHIWLR.js → workspace-trust-reconciler-HS6PWNEA.js} +77 -66
  328. package/chunks/{write-file-ERG67ZFX.js → write-file-JB3DRM7O.js} +50 -40
  329. package/chunks/{zh-VBFCRQBL.js → zh-7UJA4ICT.js} +4 -1
  330. package/chunks/{zh-TW-N2TBF2F2.js → zh-TW-RV24PWUI.js} +4 -1
  331. package/chunks/{zoom-image-WQYEC3SR.js → zoom-image-AVHQFOOQ.js} +12 -9
  332. package/cli.js +16 -16
  333. package/codeModeHost.js +4425 -0
  334. package/export-transcript-document.css +1 -0
  335. package/export-transcript-document.js +164 -165
  336. package/locales/ca.js +2 -2
  337. package/locales/de.js +2 -2
  338. package/locales/en.js +5 -2
  339. package/locales/fr.js +2 -2
  340. package/locales/ja.js +2 -2
  341. package/locales/pt.js +2 -2
  342. package/locales/ru.js +2 -2
  343. package/locales/zh-TW.js +5 -2
  344. package/locales/zh.js +5 -2
  345. package/package.json +6 -4
  346. package/web-shell/assets/{abnfDiagram-VCTEODGH-BRLgQbnT.js → abnfDiagram-VCTEODGH-BH2nK5Z_.js} +1 -1
  347. package/web-shell/assets/{arc-qAF9_XsR.js → arc-CUUQ6krv.js} +1 -1
  348. package/web-shell/assets/{architectureDiagram-5GKGNRK7-BorUttEz.js → architectureDiagram-5GKGNRK7-CJjiRuGx.js} +1 -1
  349. package/web-shell/assets/{blockDiagram-NRAW4CY4-Bj0qZVxu.js → blockDiagram-NRAW4CY4-GCDyU9ZX.js} +1 -1
  350. package/web-shell/assets/{c4Diagram-UCG6FXSJ-BTqJis32.js → c4Diagram-UCG6FXSJ-C68MiN6h.js} +1 -1
  351. package/web-shell/assets/channel-DauVlmdF.js +1 -0
  352. package/web-shell/assets/{chunk-2Q5K7J3B-RrQ5X8m-.js → chunk-2Q5K7J3B-_8B6frXZ.js} +1 -1
  353. package/web-shell/assets/{chunk-5VM5RSS4-uUjDl8wO.js → chunk-5VM5RSS4-CroSinX7.js} +1 -1
  354. package/web-shell/assets/{chunk-F27PBJKO-C3JhpyzI.js → chunk-F27PBJKO-CGn4Z0Fx.js} +1 -1
  355. package/web-shell/assets/{chunk-G27WJ6UU-C8ZNFs7F.js → chunk-G27WJ6UU-BI5nLQcf.js} +1 -1
  356. package/web-shell/assets/{chunk-JWPE2WC7-DNpXtEOs.js → chunk-JWPE2WC7-CYJH0FuH.js} +1 -1
  357. package/web-shell/assets/{chunk-LCL6LL3I-DagA2ZLw.js → chunk-LCL6LL3I-DjWZUqA1.js} +1 -1
  358. package/web-shell/assets/{chunk-POPQ4Y6H-R23uH7Xm.js → chunk-POPQ4Y6H-DcTkIHm8.js} +1 -1
  359. package/web-shell/assets/{chunk-SVP7TREG-Qz9RN_BR.js → chunk-SVP7TREG-E8sZT5uK.js} +1 -1
  360. package/web-shell/assets/{chunk-XXDRQBXY-jYb1_hni.js → chunk-XXDRQBXY-CurjPKw_.js} +1 -1
  361. package/web-shell/assets/classDiagram-DTDB5LWJ-BuIh7bj1.js +1 -0
  362. package/web-shell/assets/classDiagram-v2-JRS7N3AN-BuIh7bj1.js +1 -0
  363. package/web-shell/assets/{cose-bilkent-JH36ORCC-Cv2OunpE.js → cose-bilkent-JH36ORCC-CJEnNhth.js} +1 -1
  364. package/web-shell/assets/{cynefin-OW5HDTMX-LH42KFJx.js → cynefin-OW5HDTMX-jwEkm0yw.js} +1 -1
  365. package/web-shell/assets/{cynefinDiagram-5FMLGOSQ-Dha4_OoR.js → cynefinDiagram-5FMLGOSQ-B-OVQ6AO.js} +1 -1
  366. package/web-shell/assets/{dagre-3AP2YEHR-Br5lnUKD.js → dagre-3AP2YEHR-CKKK9WNR.js} +1 -1
  367. package/web-shell/assets/{diagram-S7CK7UJ4-dpKq2bBX.js → diagram-S7CK7UJ4-D486veFQ.js} +1 -1
  368. package/web-shell/assets/{diagram-UQ7AKVKN-BAgHWpXr.js → diagram-UQ7AKVKN-C3GujqHv.js} +1 -1
  369. package/web-shell/assets/{diagram-VSXAHHWV-GRRzpyE2.js → diagram-VSXAHHWV-BrOTDwuU.js} +1 -1
  370. package/web-shell/assets/{diagram-VX7I27RA-BNFiaYpG.js → diagram-VX7I27RA-C4D9kWE3.js} +1 -1
  371. package/web-shell/assets/{diagram-Z3DM3KII-BisZzB_h.js → diagram-Z3DM3KII-7rAManT0.js} +1 -1
  372. package/web-shell/assets/{ebnfDiagram-PWID7BFC-B1xbwycf.js → ebnfDiagram-PWID7BFC-CqVzKOdr.js} +1 -1
  373. package/web-shell/assets/{erDiagram-SSCWMZ5O-CQMzbGE5.js → erDiagram-SSCWMZ5O-D2s08fc_.js} +1 -1
  374. package/web-shell/assets/{flowDiagram-A5DVABFB-CZ_Zondl.js → flowDiagram-A5DVABFB-CrKtBxB2.js} +1 -1
  375. package/web-shell/assets/{ganttDiagram-EL5Y4UJY-BTh2ShxS.js → ganttDiagram-EL5Y4UJY-CD1CKdlt.js} +1 -1
  376. package/web-shell/assets/{gitGraphDiagram-WWUBYQGX-oHOB-Uxt.js → gitGraphDiagram-WWUBYQGX-CHDXdVNn.js} +1 -1
  377. package/web-shell/assets/index-D8tzgUOC.css +36 -0
  378. package/web-shell/assets/{index-DWoFMu5x.js → index-DWz95m74.js} +1 -1
  379. package/web-shell/assets/index-cDFf68Wd.js +2204 -0
  380. package/web-shell/assets/{infoDiagram-RXCK75RN-C0QpudbG.js → infoDiagram-RXCK75RN-Cr1oLCwe.js} +1 -1
  381. package/web-shell/assets/{ishikawaDiagram-5VMMS53U-a6B741uT.js → ishikawaDiagram-5VMMS53U--RghV1mm.js} +1 -1
  382. package/web-shell/assets/{journeyDiagram-EYS64GPL-Dbht9ICp.js → journeyDiagram-EYS64GPL-MN1ZkGW8.js} +1 -1
  383. package/web-shell/assets/{kanban-definition-3QL26DDD-D4OFR8-h.js → kanban-definition-3QL26DDD-DL05VTn0.js} +1 -1
  384. package/web-shell/assets/{layout-Dvdh5jRH.js → layout-D_TvQzvn.js} +1 -1
  385. package/web-shell/assets/{linear-Dvc6KIW2.js → linear-B_0OH6XF.js} +1 -1
  386. package/web-shell/assets/{mermaid.core-CB36RfIb.js → mermaid.core-B9Nklh9I.js} +6 -6
  387. package/web-shell/assets/{mindmap-definition-FBJOCRG2-Fmqo1CjP.js → mindmap-definition-FBJOCRG2-CevIQ0LR.js} +1 -1
  388. package/web-shell/assets/{pegDiagram-XKGWAZYB-CCxYBoA4.js → pegDiagram-XKGWAZYB-DQ8PIv0d.js} +1 -1
  389. package/web-shell/assets/{pieDiagram-E7YTZNPT-BVHKQFzt.js → pieDiagram-E7YTZNPT-BVTV1pPe.js} +1 -1
  390. package/web-shell/assets/{quadrantDiagram-AXDQQJYC-l95IznwR.js → quadrantDiagram-AXDQQJYC-DHN6nhpe.js} +1 -1
  391. package/web-shell/assets/qwen-code-notification-BRVagufF.png +0 -0
  392. package/web-shell/assets/{railroadDiagram-O6MQD6OU-BlLdRdXp.js → railroadDiagram-O6MQD6OU-8HOyX0u-.js} +1 -1
  393. package/web-shell/assets/{requirementDiagram-EFPCY7ZU-BkDLBR5w.js → requirementDiagram-EFPCY7ZU-9W4_14i8.js} +1 -1
  394. package/web-shell/assets/{sankeyDiagram-P5KCCOFB-jAIqRp65.js → sankeyDiagram-P5KCCOFB-DSUBB2XP.js} +1 -1
  395. package/web-shell/assets/{sequenceDiagram-WJ2MYXX4-f-soZYPr.js → sequenceDiagram-WJ2MYXX4-DD3jH6Jn.js} +1 -1
  396. package/web-shell/assets/{sizeCapture-X5ZJPWSS-BzOuAfB2.js → sizeCapture-X5ZJPWSS-RAFTU3Cz.js} +1 -1
  397. package/web-shell/assets/{stateDiagram-HBIQ2CUA-BPLSs12r.js → stateDiagram-HBIQ2CUA-Drk-oZ2x.js} +1 -1
  398. package/web-shell/assets/stateDiagram-v2-4QOOHH4V-QzYteVIm.js +1 -0
  399. package/web-shell/assets/{swimlanes-XN3QIQJK-D-9E_RIR.js → swimlanes-XN3QIQJK-Cy2nlOGx.js} +1 -1
  400. package/web-shell/assets/swimlanesDiagram-VK2B7HYN-xTr-HG26.js +8 -0
  401. package/web-shell/assets/{timeline-definition-24CTP7MA-CT56K-gV.js → timeline-definition-24CTP7MA-B7outYof.js} +1 -1
  402. package/web-shell/assets/{vennDiagram-4TSXK5OY-B-vi4IyO.js → vennDiagram-4TSXK5OY-Di_u1Ic6.js} +1 -1
  403. package/web-shell/assets/{wardleyDiagram-VM6X3IG4-C9O7Ju98.js → wardleyDiagram-VM6X3IG4-DYocuCAM.js} +1 -1
  404. package/web-shell/assets/{xychartDiagram-S5SC5T6Z-6d8w3jg2.js → xychartDiagram-S5SC5T6Z-AADDse54.js} +1 -1
  405. package/web-shell/index.html +29 -5
  406. package/chunks/chunk-V7RNNPGC.js +0 -44
  407. package/chunks/list-JOGBAC2R.js +0 -122
  408. package/chunks/mcp-6YYNSYLK.js +0 -116
  409. package/chunks/workflow-HD5NYMW5.js +0 -2907
  410. package/chunks/workspace-providers-status-MAM42IZS.js +0 -120
  411. package/web-shell/assets/channel-COIuCrVH.js +0 -1
  412. package/web-shell/assets/classDiagram-DTDB5LWJ-DoX6OYqu.js +0 -1
  413. package/web-shell/assets/classDiagram-v2-JRS7N3AN-DoX6OYqu.js +0 -1
  414. package/web-shell/assets/index-CI1ysIEv.js +0 -2154
  415. package/web-shell/assets/index-CpxXGH-8.css +0 -36
  416. package/web-shell/assets/stateDiagram-v2-4QOOHH4V-IRul-LaT.js +0 -1
  417. package/web-shell/assets/swimlanesDiagram-VK2B7HYN-D6lgKepA.js +0 -8
  418. package/chunks/{chunk-JA5CBKRP.js → chunk-7NXSVSFB.js} +0 -0
  419. package/chunks/{open-with-auth-6MVIHMXB.js → open-with-auth-XFCCJOO6.js} +3 -3
@@ -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-YM6KUQ2S.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,7 +79,7 @@ import {
79
79
  stripToolResultImages,
80
80
  toolResultBoundaryArtifact,
81
81
  toolResultPartDiagnosticValues
82
- } from "./chunk-HJ5UJQQL.js";
82
+ } from "./chunk-2UKKQGRA.js";
83
83
  import {
84
84
  hasVerifiableInode,
85
85
  openNoFollow
@@ -89,34 +89,51 @@ import {
89
89
  } from "./chunk-TWPJO254.js";
90
90
  import {
91
91
  projectUserTranscriptForDisplay
92
- } from "./chunk-GSFV5RQW.js";
92
+ } from "./chunk-EYN3G5XD.js";
93
93
  import {
94
- resolveBundleDir
95
- } from "./chunk-TRWQQBVH.js";
94
+ getProjectSkillsRoot,
95
+ parse
96
+ } from "./chunk-2SZH22YO.js";
96
97
  import {
97
98
  glob,
98
99
  globSync
99
100
  } from "./chunk-QJNDUTOL.js";
101
+ import {
102
+ resolveBundleDir
103
+ } from "./chunk-ACHCT36C.js";
100
104
  import {
101
105
  escapeJsonTagCharacters
102
106
  } from "./chunk-CHEIIBT3.js";
107
+ import {
108
+ flattenPeerLabel
109
+ } from "./chunk-OWUAZXXN.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-63GQZKXL.js";
120
+ import {
121
+ getFolderStructure,
122
+ getStartupContextLength,
123
+ isSystemReminderContent,
124
+ stripSystemReminderBlocks
125
+ } from "./chunk-RF5RQRTD.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-C5CECJ46.js";
117
134
  import {
118
135
  fetchWithPolicy
119
- } from "./chunk-OFVAS4AR.js";
136
+ } from "./chunk-NWDPOFJI.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-WXAWG3JS.js";
129
146
  import {
130
147
  getInvocationContext
131
148
  } from "./chunk-5ETULJLP.js";
@@ -143,7 +160,7 @@ import {
143
160
  isCacheableReadResult,
144
161
  isWithinRoot,
145
162
  processSingleFileContent
146
- } from "./chunk-J6MB5ZHZ.js";
163
+ } from "./chunk-QZW6WRB7.js";
147
164
  import {
148
165
  getAutoMemoryRoot,
149
166
  getUserAutoMemoryRoot
@@ -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-2WSLXP3W.js";
175
182
  import {
176
183
  PATH_ARG_KEYS,
177
184
  QWEN_DIR,
@@ -1194,7 +1201,7 @@ function buildSessionRecoveryPlanFromApiHistory({
1194
1201
  historyGaps,
1195
1202
  options
1196
1203
  }) {
1197
- const originalApiHistory = structuredClone(inputApiHistory);
1204
+ const originalApiHistory = inputApiHistory;
1198
1205
  const gaps = historyGaps ?? [];
1199
1206
  const planId = createPlanId(sessionId, originalApiHistory.length);
1200
1207
  const apiHistory = structuredClone(originalApiHistory);
@@ -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
  }
@@ -4391,6 +4404,7 @@ var WebTerminalRegistry = class {
4391
4404
  session2.exited = true;
4392
4405
  session2.exitCode = e.exitCode;
4393
4406
  for (const listener of [...session2.exitListeners]) listener(e);
4407
+ setImmediate(() => this.releasePtyResources(session2));
4394
4408
  }, "handleExit");
4395
4409
  let dataDisposable;
4396
4410
  let exitDisposable;
@@ -4414,7 +4428,19 @@ var WebTerminalRegistry = class {
4414
4428
  pid: spawned.pid,
4415
4429
  write: /* @__PURE__ */ __name((data) => spawned.write(data), "write"),
4416
4430
  resize: /* @__PURE__ */ __name((cols, rows) => spawned.resize(cols, rows), "resize"),
4417
- kill: /* @__PURE__ */ __name(() => spawned.kill(), "kill")
4431
+ kill: /* @__PURE__ */ __name(() => {
4432
+ spawned.kill();
4433
+ if (spawned._isReady !== false) {
4434
+ noteConPtyHostReleased(spawned);
4435
+ }
4436
+ }, "kill"),
4437
+ releaseHost: /* @__PURE__ */ __name(() => {
4438
+ if (spawned._isReady === false) {
4439
+ disposeConoutWorker(spawned);
4440
+ return;
4441
+ }
4442
+ releaseConPtyHost(spawned);
4443
+ }, "releaseHost")
4418
4444
  };
4419
4445
  } catch {
4420
4446
  this.finishCreating(terminalId);
@@ -4430,7 +4456,8 @@ var WebTerminalRegistry = class {
4430
4456
  outputListeners: /* @__PURE__ */ new Set(),
4431
4457
  exitListeners: /* @__PURE__ */ new Set(),
4432
4458
  dataDisposable,
4433
- exitDisposable
4459
+ exitDisposable,
4460
+ ptyResourcesReleased: false
4434
4461
  };
4435
4462
  sessionRef.current = session;
4436
4463
  this.sessions.set(terminalId, session);
@@ -4520,13 +4547,12 @@ var WebTerminalRegistry = class {
4520
4547
  listener({ exitCode: 143, signal: 15 });
4521
4548
  }
4522
4549
  }
4523
- session.dataDisposable?.dispose();
4524
- session.exitDisposable?.dispose();
4525
4550
  session.outputListeners.clear();
4526
4551
  session.exitListeners.clear();
4527
4552
  if (!session.exited) {
4528
4553
  killPtyTree(session.pty);
4529
4554
  }
4555
+ this.releasePtyResources(session);
4530
4556
  return true;
4531
4557
  }
4532
4558
  releaseWorkspace(workspaceCwd) {
@@ -4545,6 +4571,32 @@ var WebTerminalRegistry = class {
4545
4571
  this.creating.delete(terminalId);
4546
4572
  this.cancelledCreations.delete(terminalId);
4547
4573
  }
4574
+ /**
4575
+ * Free a session's PTY-side resources exactly once: detach the data/exit
4576
+ * listeners, then release the ConPTY host / conout worker that node-pty
4577
+ * strands on a natural exit. Without the second half every terminal the user
4578
+ * exits leaks a worker for the life of the CLI — the same defect the
4579
+ * shell-tool path has. The conhost.exe half is not freed on that path (the
4580
+ * native baton is already gone); see releaseConPtyHost. See #11303.
4581
+ *
4582
+ * Deliberately leaves the session's map entry and its `buffer` alone, and
4583
+ * never signals the pid: on the exited path the shell is gone and its pid may
4584
+ * be recycled, which is why #11313 added `releaseHost` instead of reusing
4585
+ * `kill()`. Keeping the entry is what lets `readSnapshot()` still replay the
4586
+ * scrollback after an exit-time release.
4587
+ *
4588
+ * Called from `handleExit` (deferred one turn, so an exited web terminal
4589
+ * stops holding the worker for the whole idle-reclaim window — #11353) and
4590
+ * from `release()` on both of its arms, where the flag keeps a release that
4591
+ * follows an exit-time release from disposing anything twice.
4592
+ */
4593
+ releasePtyResources(session) {
4594
+ if (session.ptyResourcesReleased) return;
4595
+ session.ptyResourcesReleased = true;
4596
+ session.dataDisposable?.dispose();
4597
+ session.exitDisposable?.dispose();
4598
+ session.pty.releaseHost?.();
4599
+ }
4548
4600
  clearReclaim(session) {
4549
4601
  if (session.reclaimTimer) {
4550
4602
  clearTimeout(session.reclaimTimer);
@@ -5593,20 +5645,33 @@ var AUTHORITATIVE_OBJECTIVE_LINE = "The objective in that data block is the curr
5593
5645
  var OBJECTIVE_UPDATED_LINE = "The Goal objective changed since your last turn: the objective above replaces the one you were working on. Stop work that only served the previous objective, and carry over only what also serves this one.";
5594
5646
  function renderBudgetLine(usage) {
5595
5647
  const used = usage.tokensUsed.toLocaleString("en-US");
5596
- const spend = usage.tokenBudget === void 0 ? `${used} tokens used, with no budget on this Goal` : `${used} of ${usage.tokenBudget.toLocaleString("en-US")} tokens used, ${Math.max(
5597
- 0,
5598
- usage.tokenBudget - usage.tokensUsed
5599
- ).toLocaleString("en-US")} remaining`;
5600
- const turns = `${usage.turnCount} Goal ${usage.turnCount === 1 ? "turn" : "turns"} finished`;
5601
- return `Token budget: ${spend}; ${turns}.`;
5648
+ const segments = [
5649
+ usage.tokenBudget === void 0 ? `${used} tokens used, with no token budget on this Goal` : `${used} of ${usage.tokenBudget.toLocaleString("en-US")} tokens used, ${Math.max(
5650
+ 0,
5651
+ usage.tokenBudget - usage.tokensUsed
5652
+ ).toLocaleString("en-US")} remaining`,
5653
+ usage.turnBudget === void 0 ? `${usage.turnCount} Goal ${usage.turnCount === 1 ? "turn" : "turns"} finished` : `${usage.turnCount} of ${usage.turnBudget.toLocaleString("en-US")} Goal turns finished`
5654
+ ];
5655
+ if (usage.activeTimeBudgetMs !== void 0 && usage.activeTimeMs !== void 0) {
5656
+ segments.push(
5657
+ `${renderActiveMinutes(usage.activeTimeMs)} of ${renderActiveMinutes(
5658
+ usage.activeTimeBudgetMs
5659
+ )} active minutes used`
5660
+ );
5661
+ }
5662
+ return `Budget: ${segments.join("; ")}.`;
5602
5663
  }
5603
5664
  __name(renderBudgetLine, "renderBudgetLine");
5665
+ function renderActiveMinutes(ms) {
5666
+ return (ms / 6e4).toLocaleString("en-US", { maximumFractionDigits: 1 });
5667
+ }
5668
+ __name(renderActiveMinutes, "renderActiveMinutes");
5604
5669
  var EVIDENCE_LINE = "Treat the workspace and this turn's tool results as authoritative. Re-inspect state rather than relying on what earlier turns in this conversation reported.";
5605
5670
  var FIDELITY_LINE = "Work toward the end state the objective asks for. Do not substitute a narrower or more easily reached result, and do not redefine success around what already exists.";
5606
5671
  var NO_PROGRESS_LINE = "Judge your previous Goal turn before acting: it made progress only if it changed the workspace or produced evidence that changes what to do next. If it did not, take a different concrete action now instead of restating status; if the same blocker still stands, cite it through update_goal rather than repeating it.";
5607
5672
  var COMPLETION_AUDIT_LINE = "Before proposing that the Goal is complete, check every explicit requirement in the objective against evidence you can cite. Missing, indirect, or self-reported evidence means not done: keep working.";
5608
5673
  var WIND_DOWN_LINES = [
5609
- "The autonomous token budget for this Goal window is spent. This is the final turn before the Goal stops and waits for the user; do not start new work.",
5674
+ "An autonomous budget for this Goal window is spent -- the budget line above says which. This is the final turn before the Goal stops and waits for the user; do not start new work.",
5610
5675
  "Deliver a concise hand-off: what was accomplished, citing evidence references from get_goal; what remains; and the one concrete next step. Call update_goal only if the objective is already complete or genuinely blocked on the evidence you have. Then end the turn."
5611
5676
  ];
5612
5677
  function serializeGoalData(input) {
@@ -5669,6 +5734,94 @@ __name(buildGoalContinuationParts, "buildGoalContinuationParts");
5669
5734
  // packages/core/src/goals/index.ts
5670
5735
  init_esbuild_shims();
5671
5736
 
5737
+ // packages/core/src/goals/activeGoalStore.ts
5738
+ init_esbuild_shims();
5739
+ var store = /* @__PURE__ */ new Map();
5740
+ function getActiveGoal(sessionId) {
5741
+ return store.get(sessionId);
5742
+ }
5743
+ __name(getActiveGoal, "getActiveGoal");
5744
+ function clearActiveGoal(sessionId) {
5745
+ const previous = store.get(sessionId);
5746
+ store.delete(sessionId);
5747
+ return previous;
5748
+ }
5749
+ __name(clearActiveGoal, "clearActiveGoal");
5750
+ var observers = /* @__PURE__ */ new Map();
5751
+ function clearGoalTerminalObserver(sessionId) {
5752
+ observers.delete(sessionId);
5753
+ }
5754
+ __name(clearGoalTerminalObserver, "clearGoalTerminalObserver");
5755
+ function notifyGoalTerminal(sessionId, event) {
5756
+ recordLastTerminalEvent(sessionId, event);
5757
+ const observer = observers.get(sessionId);
5758
+ if (!observer) return;
5759
+ try {
5760
+ observer(event);
5761
+ } catch {
5762
+ }
5763
+ }
5764
+ __name(notifyGoalTerminal, "notifyGoalTerminal");
5765
+ var lastTerminal = /* @__PURE__ */ new Map();
5766
+ function recordLastTerminalEvent(sessionId, event) {
5767
+ lastTerminal.set(sessionId, event);
5768
+ }
5769
+ __name(recordLastTerminalEvent, "recordLastTerminalEvent");
5770
+
5771
+ // packages/core/src/goals/goalHook.ts
5772
+ init_esbuild_shims();
5773
+
5774
+ // packages/core/src/goals/goalJudge.ts
5775
+ init_esbuild_shims();
5776
+ var debugLogger9 = createDebugLogger("GOAL_JUDGE");
5777
+
5778
+ // packages/core/src/goals/goalHook.ts
5779
+ var debugLogger10 = createDebugLogger("GOAL_HOOK");
5780
+ var GOAL_HOOK_TIMEOUT_SECONDS = 30;
5781
+ var GOAL_HOOK_TIMEOUT_MS = GOAL_HOOK_TIMEOUT_SECONDS * 1e3;
5782
+ var GOAL_HOOK_ID_OUTPUT_KEY = "qwenGoalHookId";
5783
+ function getStopHookContinuationReason(output) {
5784
+ const hasGoalOutput = typeof output.hookSpecificOutput?.[GOAL_HOOK_ID_OUTPUT_KEY] === "string";
5785
+ if (!hasGoalOutput) {
5786
+ return output.stopReason || output.reason || "No reason provided";
5787
+ }
5788
+ return [output.stopReason, output.reason].filter(Boolean).join("\n") || "No reason provided";
5789
+ }
5790
+ __name(getStopHookContinuationReason, "getStopHookContinuationReason");
5791
+ function removeGoalFunctionHook(config, sessionId, goal) {
5792
+ const system = config.getHookSystem?.();
5793
+ if (!system) return;
5794
+ try {
5795
+ system.removeFunctionHook(sessionId, "Stop" /* Stop */, goal.hookId);
5796
+ } catch (err) {
5797
+ debugLogger10.debug(
5798
+ `Failed to remove goal hook ${goal.hookId}: ${err instanceof Error ? err.message : String(err)}`
5799
+ );
5800
+ }
5801
+ }
5802
+ __name(removeGoalFunctionHook, "removeGoalFunctionHook");
5803
+ function finishGoal(config, sessionId, goal, event) {
5804
+ clearActiveGoal(sessionId);
5805
+ removeGoalFunctionHook(config, sessionId, goal);
5806
+ notifyGoalTerminal(sessionId, event);
5807
+ clearGoalTerminalObserver(sessionId);
5808
+ }
5809
+ __name(finishGoal, "finishGoal");
5810
+ function abortGoalForStopHookCap(config, sessionId, systemMessage) {
5811
+ const goal = getActiveGoal(sessionId);
5812
+ if (!goal) return false;
5813
+ finishGoal(config, sessionId, goal, {
5814
+ kind: "aborted",
5815
+ condition: goal.condition,
5816
+ iterations: goal.iterations,
5817
+ durationMs: Date.now() - goal.setAt,
5818
+ lastReason: goal.lastReason,
5819
+ systemMessage
5820
+ });
5821
+ return true;
5822
+ }
5823
+ __name(abortGoalForStopHookCap, "abortGoalForStopHookCap");
5824
+
5672
5825
  // packages/core/src/index.ts
5673
5826
  init_esbuild_shims();
5674
5827
 
@@ -6186,7 +6339,7 @@ init_esbuild_shims();
6186
6339
  import * as fs4 from "fs/promises";
6187
6340
  import * as os from "os";
6188
6341
  import * as path6 from "path";
6189
- var debugLogger9 = createDebugLogger("OUTPUT_STYLE_FILES");
6342
+ var debugLogger11 = createDebugLogger("OUTPUT_STYLE_FILES");
6190
6343
  var OUTPUT_STYLES_DIR_NAME = "output-styles";
6191
6344
  var MAX_OUTPUT_STYLE_FILE_BYTES = 25e3;
6192
6345
  var MAX_OUTPUT_STYLE_NAME_LENGTH = 64;
@@ -6245,7 +6398,7 @@ function parseOutputStyleFile(content, filePath, source) {
6245
6398
  (key) => !KNOWN_FRONTMATTER_KEYS.has(key)
6246
6399
  );
6247
6400
  if (unknownKeys.length > 0) {
6248
- debugLogger9.warn(
6401
+ debugLogger11.warn(
6249
6402
  `Output style ${filePath}: ignoring unknown frontmatter keys ${unknownKeys.join(", ")}`
6250
6403
  );
6251
6404
  }
@@ -6262,7 +6415,7 @@ function resolveKeepCodingInstructions(frontmatter, name, filePath) {
6262
6415
  return true;
6263
6416
  }
6264
6417
  if (spelling !== false && spelling !== "false") {
6265
- debugLogger9.warn(
6418
+ debugLogger11.warn(
6266
6419
  `Output style ${filePath}: keep-coding-instructions value ${JSON.stringify(raw)} is not true or false; treating it as false`
6267
6420
  );
6268
6421
  }
@@ -6315,20 +6468,20 @@ __name(deriveDescription, "deriveDescription");
6315
6468
  async function resolveStyleFileToRead(filePath, source, confineTo) {
6316
6469
  const stat5 = source === "project" ? await fs4.lstat(filePath) : await fs4.stat(filePath);
6317
6470
  if (source === "project" && stat5.isSymbolicLink()) {
6318
- debugLogger9.warn(`Skipping output style ${filePath}: it is a symlink`);
6471
+ debugLogger11.warn(`Skipping output style ${filePath}: it is a symlink`);
6319
6472
  return null;
6320
6473
  }
6321
6474
  if (!stat5.isFile()) {
6322
6475
  return null;
6323
6476
  }
6324
6477
  if (stat5.nlink > 1) {
6325
- debugLogger9.warn(`Skipping output style ${filePath}: it is a hard link`);
6478
+ debugLogger11.warn(`Skipping output style ${filePath}: it is a hard link`);
6326
6479
  return null;
6327
6480
  }
6328
6481
  const realPath = await fs4.realpath(filePath);
6329
6482
  const realRoot = await fs4.realpath(confineTo);
6330
6483
  if (realPath !== realRoot && !isWithinRoot(realPath, realRoot)) {
6331
- debugLogger9.warn(
6484
+ debugLogger11.warn(
6332
6485
  `Skipping output style ${filePath}: it resolves outside ${realRoot}`
6333
6486
  );
6334
6487
  return null;
@@ -6366,7 +6519,7 @@ async function loadOutputStylesFromDir(dir, source, confineTo) {
6366
6519
  entries = await fs4.readdir(dir);
6367
6520
  } catch (error) {
6368
6521
  if (error.code !== "ENOENT") {
6369
- debugLogger9.warn(`Cannot read output styles directory ${dir}:`, error);
6522
+ debugLogger11.warn(`Cannot read output styles directory ${dir}:`, error);
6370
6523
  }
6371
6524
  return [];
6372
6525
  }
@@ -6385,13 +6538,13 @@ async function loadOutputStylesFromDir(dir, source, confineTo) {
6385
6538
  }
6386
6539
  const buffer = await readBoundedStyleFile(readPath);
6387
6540
  if (buffer.byteLength > MAX_OUTPUT_STYLE_FILE_BYTES) {
6388
- debugLogger9.warn(
6541
+ debugLogger11.warn(
6389
6542
  `Skipping output style ${filePath}: larger than ${MAX_OUTPUT_STYLE_FILE_BYTES} bytes`
6390
6543
  );
6391
6544
  continue;
6392
6545
  }
6393
6546
  if (isBinary(buffer)) {
6394
- debugLogger9.warn(
6547
+ debugLogger11.warn(
6395
6548
  `Skipping output style ${filePath}: it is not UTF-8 text`
6396
6549
  );
6397
6550
  continue;
@@ -6403,7 +6556,7 @@ async function loadOutputStylesFromDir(dir, source, confineTo) {
6403
6556
  );
6404
6557
  const key = style.name.toLowerCase();
6405
6558
  if (seen.has(key)) {
6406
- debugLogger9.warn(
6559
+ debugLogger11.warn(
6407
6560
  `Skipping output style ${filePath}: another file in ${dir} already defines "${style.name}"`
6408
6561
  );
6409
6562
  continue;
@@ -6411,7 +6564,7 @@ async function loadOutputStylesFromDir(dir, source, confineTo) {
6411
6564
  seen.add(key);
6412
6565
  styles.push(style);
6413
6566
  } catch (error) {
6414
- debugLogger9.warn(
6567
+ debugLogger11.warn(
6415
6568
  `Skipping output style ${filePath}: ${error instanceof Error ? error.message : String(error)}`
6416
6569
  );
6417
6570
  }
@@ -6459,7 +6612,7 @@ async function loadOutputStyleCatalog(options = {}) {
6459
6612
  const key = style.name.toLowerCase();
6460
6613
  const winner = winners.get(key);
6461
6614
  if (winner) {
6462
- debugLogger9.debug(
6615
+ debugLogger11.debug(
6463
6616
  `Output style "${style.name}" (${style.source}) is shadowed by the ${winner.source} style of the same name`
6464
6617
  );
6465
6618
  continue;
@@ -6479,7 +6632,7 @@ __name(findOutputStyle, "findOutputStyle");
6479
6632
 
6480
6633
  // packages/core/src/tools/client-mcp-registrar.ts
6481
6634
  init_esbuild_shims();
6482
- var debugLogger10 = createDebugLogger("CLIENT_MCP_REGISTRAR");
6635
+ var debugLogger12 = createDebugLogger("CLIENT_MCP_REGISTRAR");
6483
6636
  var CLIENT_MCP_MESSAGE_TIMEOUT_MS = 3e4;
6484
6637
  var ClientMcpRegistrar = class {
6485
6638
  static {
@@ -6502,7 +6655,7 @@ var ClientMcpRegistrar = class {
6502
6655
  */
6503
6656
  registerServer(serverName) {
6504
6657
  this.servers.add(serverName);
6505
- debugLogger10.debug(`Registered client MCP server '${serverName}'`);
6658
+ debugLogger12.debug(`Registered client MCP server '${serverName}'`);
6506
6659
  }
6507
6660
  /**
6508
6661
  * Drop a server name and reject any in-flight requests targeting it. Returns
@@ -6515,7 +6668,7 @@ var ClientMcpRegistrar = class {
6515
6668
  new Error(`client MCP server '${serverName}' was unregistered`)
6516
6669
  );
6517
6670
  if (existed) {
6518
- debugLogger10.debug(`Unregistered client MCP server '${serverName}'`);
6671
+ debugLogger12.debug(`Unregistered client MCP server '${serverName}'`);
6519
6672
  }
6520
6673
  return existed;
6521
6674
  }
@@ -6615,7 +6768,7 @@ var ClientMcpRegistrar = class {
6615
6768
  resolveMessage(id, payload) {
6616
6769
  const pending = this.pending.get(id);
6617
6770
  if (!pending) {
6618
- debugLogger10.debug(`Dropping mcp_message with unknown id '${id}'`);
6771
+ debugLogger12.debug(`Dropping mcp_message with unknown id '${id}'`);
6619
6772
  return false;
6620
6773
  }
6621
6774
  this.pending.delete(id);
@@ -6837,7 +6990,7 @@ import { createHash, randomBytes as randomBytes2, timingSafeEqual as timingSafeE
6837
6990
  import * as fsSync2 from "node:fs";
6838
6991
  import * as fs5 from "node:fs/promises";
6839
6992
  import * as path7 from "node:path";
6840
- var debugLogger11 = createDebugLogger("PEER_CONTROLLERS");
6993
+ var debugLogger13 = createDebugLogger("PEER_CONTROLLERS");
6841
6994
  var PEER_CONTROLLER_SCHEMA_VERSION = 1;
6842
6995
  var CONTROLLER_TOKEN_PREFIX = "qpc_";
6843
6996
  var CONTROLLER_TOKEN_BYTES = 32;
@@ -6858,7 +7011,7 @@ var LOCK_OPTIONS = {
6858
7011
  randomize: true
6859
7012
  },
6860
7013
  onCompromised: /* @__PURE__ */ __name((error) => {
6861
- debugLogger11.debug(
7014
+ debugLogger13.debug(
6862
7015
  `controller registry lock compromised: ${describe2(error)}`
6863
7016
  );
6864
7017
  }, "onCompromised")
@@ -6925,13 +7078,13 @@ function readPeerControllerRegistrySync(filePath = getPeerControllerRegistryPath
6925
7078
  try {
6926
7079
  const stats = fsSync2.lstatSync(filePath);
6927
7080
  if (!stats.isFile()) {
6928
- debugLogger11.debug(
7081
+ debugLogger13.debug(
6929
7082
  `ignoring the controller registry at ${filePath}: not a regular file`
6930
7083
  );
6931
7084
  return emptyRegistry();
6932
7085
  }
6933
7086
  if (stats.size > MAX_REGISTRY_BYTES) {
6934
- debugLogger11.debug(
7087
+ debugLogger13.debug(
6935
7088
  `ignoring the controller registry at ${filePath}: ${stats.size} bytes exceeds the ${MAX_REGISTRY_BYTES}-byte cap`
6936
7089
  );
6937
7090
  return emptyRegistry();
@@ -6939,7 +7092,7 @@ function readPeerControllerRegistrySync(filePath = getPeerControllerRegistryPath
6939
7092
  raw = fsSync2.readFileSync(filePath, "utf8");
6940
7093
  } catch (error) {
6941
7094
  if (!isNodeError(error) || error.code !== "ENOENT") {
6942
- debugLogger11.debug(
7095
+ debugLogger13.debug(
6943
7096
  `could not read the controller registry at ${filePath}: ${describe2(error)}`
6944
7097
  );
6945
7098
  }
@@ -6949,14 +7102,14 @@ function readPeerControllerRegistrySync(filePath = getPeerControllerRegistryPath
6949
7102
  try {
6950
7103
  parsed = JSON.parse(raw);
6951
7104
  } catch (error) {
6952
- debugLogger11.debug(
7105
+ debugLogger13.debug(
6953
7106
  `the controller registry at ${filePath} is not JSON: ${describe2(error)}`
6954
7107
  );
6955
7108
  return emptyRegistry();
6956
7109
  }
6957
7110
  if (!isRecord(parsed)) return emptyRegistry();
6958
7111
  if (parsed["schemaVersion"] !== PEER_CONTROLLER_SCHEMA_VERSION) {
6959
- debugLogger11.debug(
7112
+ debugLogger13.debug(
6960
7113
  `ignoring the controller registry at ${filePath}: unsupported schemaVersion ${String(
6961
7114
  parsed["schemaVersion"]
6962
7115
  )}`
@@ -6969,7 +7122,7 @@ function readPeerControllerRegistrySync(filePath = getPeerControllerRegistryPath
6969
7122
  for (const entry of controllers) {
6970
7123
  const record = toValidRecord(entry);
6971
7124
  if (record === null) {
6972
- debugLogger11.debug(
7125
+ debugLogger13.debug(
6973
7126
  `skipping a malformed entry in the controller registry at ${filePath}`
6974
7127
  );
6975
7128
  continue;
@@ -7197,7 +7350,7 @@ __name(removePeerController, "removePeerController");
7197
7350
 
7198
7351
  // packages/core/src/ipc/peer-drop-reports.ts
7199
7352
  init_esbuild_shims();
7200
- var debugLogger12 = createDebugLogger("PEER_DROP_REPORTS");
7353
+ var debugLogger14 = createDebugLogger("PEER_DROP_REPORTS");
7201
7354
  var DROP_REPORT_WINDOW_MS = 6e4;
7202
7355
  var DROP_RECEIPT_TRAIL_MS = 5e3;
7203
7356
  var DROP_FLUSH_BOUND_MS = 500;
@@ -7339,7 +7492,7 @@ var DropReceiptCoalescer = class {
7339
7492
  const now = this.now();
7340
7493
  const age = now - batch.firstNotedAt;
7341
7494
  if (!force && age >= MAX_DEFERRED_RECEIPT_AGE_MS) {
7342
- debugLogger12.debug(
7495
+ debugLogger14.debug(
7343
7496
  `abandoning a dropped receipt held ${Math.round(age)} ms by a spent budget`
7344
7497
  );
7345
7498
  this.clearBatch(batch);
@@ -7377,7 +7530,7 @@ var DropReceiptCoalescer = class {
7377
7530
  try {
7378
7531
  result = this.send(receipt);
7379
7532
  } catch (error) {
7380
- debugLogger12.debug(`sending a dropped receipt threw: ${describe3(error)}`);
7533
+ debugLogger14.debug(`sending a dropped receipt threw: ${describe3(error)}`);
7381
7534
  return;
7382
7535
  }
7383
7536
  if (!(result instanceof Promise)) return result;
@@ -7478,7 +7631,7 @@ var DropNoticeThrottle = class {
7478
7631
  suppressed
7479
7632
  });
7480
7633
  } catch (error) {
7481
- debugLogger12.debug(`drop-notice listener threw: ${describe3(error)}`);
7634
+ debugLogger14.debug(`drop-notice listener threw: ${describe3(error)}`);
7482
7635
  }
7483
7636
  }
7484
7637
  touch(key) {
@@ -7668,7 +7821,7 @@ var DroppedNotificationTally = class {
7668
7821
 
7669
7822
  // packages/core/src/services/toolUseSummary.ts
7670
7823
  init_esbuild_shims();
7671
- var debugLogger13 = createDebugLogger("TOOL_USE_SUMMARY");
7824
+ var debugLogger15 = createDebugLogger("TOOL_USE_SUMMARY");
7672
7825
  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
7826
 
7674
7827
  Keep the verb in past tense and the most distinctive noun. Drop articles, connectors, and long location context first.
@@ -7689,7 +7842,7 @@ async function generateToolUseSummary(params) {
7689
7842
  }
7690
7843
  const model = config.getFastModel();
7691
7844
  if (!model) {
7692
- debugLogger13.debug("No fast model configured \u2014 skipping summary generation");
7845
+ debugLogger15.debug("No fast model configured \u2014 skipping summary generation");
7693
7846
  return null;
7694
7847
  }
7695
7848
  if (signal.aborted) {
@@ -7712,7 +7865,7 @@ ${toolSummaries}
7712
7865
 
7713
7866
  Label:`;
7714
7867
  if (!config.getLlmClient()) {
7715
- debugLogger13.debug("No gemini client available \u2014 skipping");
7868
+ debugLogger15.debug("No gemini client available \u2014 skipping");
7716
7869
  return null;
7717
7870
  }
7718
7871
  const result = await runSideQuery(config, {
@@ -7731,19 +7884,19 @@ Label:`;
7731
7884
  });
7732
7885
  if (signal.aborted) return null;
7733
7886
  if (!result.text) {
7734
- debugLogger13.debug("Summary generation returned empty result");
7887
+ debugLogger15.debug("Summary generation returned empty result");
7735
7888
  return null;
7736
7889
  }
7737
7890
  const cleaned = cleanSummary(result.text);
7738
7891
  if (!cleaned) {
7739
- debugLogger13.debug(`Summary cleaned to empty: raw="${result.text}"`);
7892
+ debugLogger15.debug(`Summary cleaned to empty: raw="${result.text}"`);
7740
7893
  return null;
7741
7894
  }
7742
- debugLogger13.debug(`Summary generated: "${cleaned}"`);
7895
+ debugLogger15.debug(`Summary generated: "${cleaned}"`);
7743
7896
  return cleaned;
7744
7897
  } catch (err) {
7745
7898
  if (signal.aborted) return null;
7746
- debugLogger13.warn(
7899
+ debugLogger15.warn(
7747
7900
  `Summary generation failed: ${err instanceof Error ? err.message : String(err)}`
7748
7901
  );
7749
7902
  return null;
@@ -7817,7 +7970,7 @@ __name(cleanSummary, "cleanSummary");
7817
7970
 
7818
7971
  // packages/core/src/services/usage-dashboard-service.ts
7819
7972
  init_esbuild_shims();
7820
- var debugLogger14 = createDebugLogger("USAGE_DASHBOARD");
7973
+ var debugLogger16 = createDebugLogger("USAGE_DASHBOARD");
7821
7974
  var DEFAULT_HEATMAP_DAYS = 183;
7822
7975
  var MAX_DAILY_DAYS = 92;
7823
7976
  var MS_PER_DAY = 24 * 60 * 60 * 1e3;
@@ -7942,7 +8095,7 @@ function buildUsageDashboard(records, options = {}) {
7942
8095
  );
7943
8096
  const daily = buildDaily(records, dailyStart, now);
7944
8097
  const heatmap = buildHeatmap(records, now - heatmapDays * MS_PER_DAY, now);
7945
- debugLogger14.debug(
8098
+ debugLogger16.debug(
7946
8099
  `built dashboard range=${range} records=${records.length} models=${models.length} skills=${skills.length} dailyPoints=${daily.length}`
7947
8100
  );
7948
8101
  return {
@@ -8278,7 +8431,7 @@ import * as path8 from "node:path";
8278
8431
  var CHANNEL_MEMORY_FILE_NAME = "CHANNEL.json";
8279
8432
  var LEGACY_CHANNEL_MEMORY_FILE_NAME = "CHANNEL.md";
8280
8433
  var MAX_CHANNEL_MEMORY_BYTES = 1024 * 1024;
8281
- var debugLogger15 = createDebugLogger("CHANNEL_MEMORY");
8434
+ var debugLogger17 = createDebugLogger("CHANNEL_MEMORY");
8282
8435
  var pendingMutations = /* @__PURE__ */ new Map();
8283
8436
  var LOCK_OPTIONS2 = {
8284
8437
  realpath: false,
@@ -8291,7 +8444,7 @@ var LOCK_OPTIONS2 = {
8291
8444
  },
8292
8445
  stale: 5e3,
8293
8446
  onCompromised: /* @__PURE__ */ __name((err) => {
8294
- debugLogger15.warn("channel memory lock compromised:", err);
8447
+ debugLogger17.warn("channel memory lock compromised:", err);
8295
8448
  }, "onCompromised")
8296
8449
  };
8297
8450
  function isMissingFile(error) {
@@ -9273,7 +9426,7 @@ init_esbuild_shims();
9273
9426
  import * as fs9 from "node:fs";
9274
9427
  import * as path11 from "path";
9275
9428
  import { pathToFileURL } from "url";
9276
- var debugLogger16 = createDebugLogger("LSP");
9429
+ var debugLogger18 = createDebugLogger("LSP");
9277
9430
  var MAX_TCP_PORT = 65535;
9278
9431
  var LspConfigLoader = class {
9279
9432
  constructor(workspaceRoot) {
@@ -9298,7 +9451,7 @@ var LspConfigLoader = class {
9298
9451
  forceTrustRequired: true
9299
9452
  });
9300
9453
  } catch (error) {
9301
- debugLogger16.warn("Failed to load user .lsp.json config:", error);
9454
+ debugLogger18.warn("Failed to load user .lsp.json config:", error);
9302
9455
  return [];
9303
9456
  }
9304
9457
  }
@@ -9335,7 +9488,7 @@ var LspConfigLoader = class {
9335
9488
  lspServers
9336
9489
  );
9337
9490
  if (!fs9.existsSync(configPath)) {
9338
- debugLogger16.warn(
9491
+ debugLogger18.warn(
9339
9492
  `LSP config not found for ${originBase}: ${configPath}`
9340
9493
  );
9341
9494
  continue;
@@ -9351,7 +9504,7 @@ var LspConfigLoader = class {
9351
9504
  )
9352
9505
  );
9353
9506
  } catch (error) {
9354
- debugLogger16.warn(
9507
+ debugLogger18.warn(
9355
9508
  `Failed to load extension LSP config from ${configPath}:`,
9356
9509
  error
9357
9510
  );
@@ -9365,7 +9518,7 @@ var LspConfigLoader = class {
9365
9518
  ...this.parseConfigSource(hydrated, `${originBase} (lspServers)`)
9366
9519
  );
9367
9520
  } else {
9368
- debugLogger16.warn(
9521
+ debugLogger18.warn(
9369
9522
  `LSP config for ${originBase} must be an object or a JSON file path.`
9370
9523
  );
9371
9524
  }
@@ -9503,13 +9656,13 @@ var LspConfigLoader = class {
9503
9656
  const trustRequired = options.forceTrustRequired ? true : typeof spec["trustRequired"] === "boolean" ? spec["trustRequired"] : true;
9504
9657
  const socket = this.normalizeSocketOptions(spec);
9505
9658
  if (transport === "stdio" && !command) {
9506
- debugLogger16.warn(
9659
+ debugLogger18.warn(
9507
9660
  `LSP config error in ${origin}: ${name} missing command`
9508
9661
  );
9509
9662
  return null;
9510
9663
  }
9511
9664
  if (transport !== "stdio" && !socket) {
9512
- debugLogger16.warn(
9665
+ debugLogger18.warn(
9513
9666
  `LSP config error in ${origin}: ${name} missing socket info`
9514
9667
  );
9515
9668
  return null;
@@ -9651,7 +9804,7 @@ var LspConfigLoader = class {
9651
9804
  if (resolved === root || resolved.startsWith(root + path11.sep)) {
9652
9805
  return resolved;
9653
9806
  }
9654
- debugLogger16.warn(
9807
+ debugLogger18.warn(
9655
9808
  `LSP workspaceFolder must be within ${this.workspaceRoot}; using workspace root instead.`
9656
9809
  );
9657
9810
  return this.workspaceRoot;
@@ -9663,7 +9816,7 @@ init_esbuild_shims();
9663
9816
  import * as cp from "node:child_process";
9664
9817
  import * as net2 from "node:net";
9665
9818
  import { StringDecoder } from "node:string_decoder";
9666
- var debugLogger17 = createDebugLogger("LSP");
9819
+ var debugLogger19 = createDebugLogger("LSP");
9667
9820
  var MAX_STDERR_TAIL_BYTES = 8192;
9668
9821
  function trimTail(value, maxBytes) {
9669
9822
  const buffer = Buffer.from(value, "utf8");
@@ -9728,7 +9881,7 @@ var JsonRpcConnection = class {
9728
9881
  try {
9729
9882
  this.disposer?.();
9730
9883
  } catch (error) {
9731
- debugLogger17.warn("LSP disposer failed:", error);
9884
+ debugLogger19.warn("LSP disposer failed:", error);
9732
9885
  }
9733
9886
  }
9734
9887
  sendRequest(method, params) {
@@ -9855,7 +10008,7 @@ var JsonRpcConnection = class {
9855
10008
  try {
9856
10009
  this.writer(header + json);
9857
10010
  } catch (error) {
9858
- debugLogger17.warn("LSP write failed:", error);
10011
+ debugLogger19.warn("LSP write failed:", error);
9859
10012
  this.end();
9860
10013
  }
9861
10014
  }
@@ -9914,14 +10067,14 @@ var LspConnectionFactory = class _LspConnectionFactory {
9914
10067
  );
9915
10068
  });
9916
10069
  processInstance.stderr?.on("error", (err) => {
9917
- debugLogger17.warn(`LSP stderr stream error for ${command}:`, err);
10070
+ debugLogger19.warn(`LSP stderr stream error for ${command}:`, err);
9918
10071
  });
9919
10072
  const connection = new JsonRpcConnection(
9920
10073
  (payload) => processInstance.stdin?.write(payload),
9921
10074
  () => processInstance.stdin?.end()
9922
10075
  );
9923
10076
  processInstance.stdin.on("error", (err) => {
9924
- debugLogger17.warn(`LSP stdin stream error for ${command}:`, err);
10077
+ debugLogger19.warn(`LSP stdin stream error for ${command}:`, err);
9925
10078
  connection.end();
9926
10079
  });
9927
10080
  connection.listen(processInstance.stdout);
@@ -10004,7 +10157,7 @@ var LspConnectionFactory = class _LspConnectionFactory {
10004
10157
  try {
10005
10158
  await lspConnection.connection.shutdown();
10006
10159
  } catch (e) {
10007
- debugLogger17.warn("LSP shutdown failed:", e);
10160
+ debugLogger19.warn("LSP shutdown failed:", e);
10008
10161
  } finally {
10009
10162
  lspConnection.connection.end();
10010
10163
  }
@@ -10682,7 +10835,7 @@ import { spawn as spawn2 } from "node:child_process";
10682
10835
  import * as fs10 from "node:fs";
10683
10836
  import * as path12 from "path";
10684
10837
  import { pathToFileURL as pathToFileURL2 } from "url";
10685
- var debugLogger18 = createDebugLogger("LSP");
10838
+ var debugLogger20 = createDebugLogger("LSP");
10686
10839
  var SECURITY_SENSITIVE_ENV_KEYS = /* @__PURE__ */ new Set([
10687
10840
  "DYLD_INSERT_LIBRARIES",
10688
10841
  "DYLD_LIBRARY_PATH",
@@ -10719,7 +10872,7 @@ var LspServerManager = class {
10719
10872
  });
10720
10873
  this.serverConfigHashes.set(config.name, lspServerConfigHash(config));
10721
10874
  }
10722
- debugLogger18.info(
10875
+ debugLogger20.info(
10723
10876
  `Prepared ${configs.length} LSP server config(s): ${formatServerNames(
10724
10877
  configs.map((config) => config.name)
10725
10878
  )}`
@@ -10728,7 +10881,7 @@ var LspServerManager = class {
10728
10881
  /** Drops all prepared handles without attempting process shutdown. */
10729
10882
  clearServerHandles() {
10730
10883
  if (this.serverHandles.size > 0) {
10731
- debugLogger18.info(
10884
+ debugLogger20.info(
10732
10885
  `Clearing ${this.serverHandles.size} LSP server handle(s): ${formatServerNames(
10733
10886
  Array.from(this.serverHandles.keys())
10734
10887
  )}`
@@ -10789,7 +10942,7 @@ var LspServerManager = class {
10789
10942
  * before their handles are deleted or replaced.
10790
10943
  */
10791
10944
  async doReconcileServerConfigs(configs) {
10792
- debugLogger18.info(
10945
+ debugLogger20.info(
10793
10946
  `Reconciling LSP server configs: desired=${formatServerNames(
10794
10947
  configs.map((config) => config.name)
10795
10948
  )}`
@@ -10861,7 +11014,7 @@ var LspServerManager = class {
10861
11014
  result.added.push(name);
10862
11015
  }
10863
11016
  }
10864
- debugLogger18.info(
11017
+ debugLogger20.info(
10865
11018
  `LSP reconcile result: added=${formatServerNames(
10866
11019
  result.added
10867
11020
  )}, removed=${formatServerNames(
@@ -10915,7 +11068,7 @@ var LspServerManager = class {
10915
11068
  handle.warmedUp = true;
10916
11069
  return uri;
10917
11070
  } catch (error) {
10918
- debugLogger18.warn("TypeScript server warm-up failed:", error);
11071
+ debugLogger20.warn("TypeScript server warm-up failed:", error);
10919
11072
  return void 0;
10920
11073
  }
10921
11074
  }
@@ -10962,7 +11115,7 @@ var LspServerManager = class {
10962
11115
  async doStartServer(name, handle) {
10963
11116
  const workspaceTrusted = this.config.isTrustedFolder();
10964
11117
  if ((this.requireTrustedWorkspace || handle.config.trustRequired) && !workspaceTrusted) {
10965
- debugLogger18.warn(
11118
+ debugLogger20.warn(
10966
11119
  `LSP server ${name} requires trusted workspace, skipping startup`
10967
11120
  );
10968
11121
  handle.status = "FAILED";
@@ -10975,7 +11128,7 @@ var LspServerManager = class {
10975
11128
  workspaceTrusted
10976
11129
  );
10977
11130
  if (!trusted) {
10978
- debugLogger18.warn(
11131
+ debugLogger20.warn(
10979
11132
  `Workspace trust check failed, not starting LSP server ${name}`
10980
11133
  );
10981
11134
  handle.status = "FAILED";
@@ -10985,7 +11138,7 @@ var LspServerManager = class {
10985
11138
  if (handle.config.command) {
10986
11139
  const commandCwd = handle.config.workspaceFolder ?? this.workspaceRoot;
10987
11140
  if (!this.isPathSafe(handle.config.command, this.workspaceRoot, commandCwd)) {
10988
- debugLogger18.warn(
11141
+ debugLogger20.warn(
10989
11142
  `LSP server ${name} command path is unsafe: ${handle.config.command}`
10990
11143
  );
10991
11144
  handle.status = "FAILED";
@@ -10997,7 +11150,7 @@ var LspServerManager = class {
10997
11150
  handle.config.env,
10998
11151
  commandCwd
10999
11152
  )) {
11000
- debugLogger18.warn(
11153
+ debugLogger20.warn(
11001
11154
  `LSP server ${name} command not found: ${handle.config.command}`
11002
11155
  );
11003
11156
  handle.status = "FAILED";
@@ -11012,7 +11165,7 @@ var LspServerManager = class {
11012
11165
  handle.processDiagnostics = void 0;
11013
11166
  handle.warmedUp = false;
11014
11167
  handle.status = "IN_PROGRESS";
11015
- debugLogger18.info(
11168
+ debugLogger20.info(
11016
11169
  `Starting LSP server ${name}: command=${handle.config.command ?? "<none>"}, transport=${handle.config.transport}, languages=${formatServerNames(
11017
11170
  handle.config.languages
11018
11171
  )}`
@@ -11037,7 +11190,7 @@ var LspServerManager = class {
11037
11190
  }
11038
11191
  handle.status = "READY";
11039
11192
  this.attachRestartHandler(name, handle);
11040
- debugLogger18.info(`LSP server ${name} started successfully`);
11193
+ debugLogger20.info(`LSP server ${name} started successfully`);
11041
11194
  } catch (error) {
11042
11195
  handle.status = "FAILED";
11043
11196
  handle.error = error;
@@ -11051,21 +11204,21 @@ var LspServerManager = class {
11051
11204
  }
11052
11205
  await this.releaseServerResources(name, handle, false);
11053
11206
  if (handle.processDiagnostics) {
11054
- debugLogger18.error(
11207
+ debugLogger20.error(
11055
11208
  `LSP server ${name} process diagnostics:`,
11056
11209
  handle.processDiagnostics
11057
11210
  );
11058
11211
  }
11059
11212
  handle.connection = void 0;
11060
11213
  handle.process = void 0;
11061
- debugLogger18.error(`LSP server ${name} failed to start:`, error);
11214
+ debugLogger20.error(`LSP server ${name} failed to start:`, error);
11062
11215
  }
11063
11216
  }
11064
11217
  /**
11065
11218
  * Stops a server and resets runtime-only handle state.
11066
11219
  */
11067
11220
  async stopServer(name, handle) {
11068
- debugLogger18.info(`Stopping LSP server ${name}`);
11221
+ debugLogger20.info(`Stopping LSP server ${name}`);
11069
11222
  handle.stopRequested = true;
11070
11223
  handle.startupAbortController?.abort();
11071
11224
  if (handle.startingPromise) {
@@ -11078,7 +11231,7 @@ var LspServerManager = class {
11078
11231
  handle.status = "NOT_STARTED";
11079
11232
  handle.warmedUp = false;
11080
11233
  handle.restartAttempts = 0;
11081
- debugLogger18.info(`LSP server ${name} stopped`);
11234
+ debugLogger20.info(`LSP server ${name} stopped`);
11082
11235
  }
11083
11236
  async abortAndWaitForStartup(handle) {
11084
11237
  if (!handle.startingPromise) {
@@ -11102,14 +11255,14 @@ var LspServerManager = class {
11102
11255
  handle.connection.end();
11103
11256
  }
11104
11257
  } catch (error) {
11105
- debugLogger18.error(`Error closing LSP server ${name}:`, error);
11258
+ debugLogger20.error(`Error closing LSP server ${name}:`, error);
11106
11259
  }
11107
11260
  }
11108
11261
  if (handle.process && handle.process.exitCode === null) {
11109
11262
  try {
11110
11263
  handle.process.kill();
11111
11264
  } catch (error) {
11112
- debugLogger18.warn(`Error killing LSP server ${name} process:`, error);
11265
+ debugLogger20.warn(`Error killing LSP server ${name} process:`, error);
11113
11266
  }
11114
11267
  }
11115
11268
  }
@@ -11155,7 +11308,7 @@ var LspServerManager = class {
11155
11308
  }
11156
11309
  handle.processExitedUnexpectedly = true;
11157
11310
  if (!handle.config.restartOnCrash) {
11158
- debugLogger18.warn(
11311
+ debugLogger20.warn(
11159
11312
  `LSP server ${name} exited but restartOnCrash is disabled`
11160
11313
  );
11161
11314
  handle.status = "FAILED";
@@ -11164,7 +11317,7 @@ var LspServerManager = class {
11164
11317
  }
11165
11318
  const maxRestarts = handle.config.maxRestarts ?? DEFAULT_LSP_MAX_RESTARTS;
11166
11319
  if (maxRestarts <= 0) {
11167
- debugLogger18.warn(
11320
+ debugLogger20.warn(
11168
11321
  `LSP server ${name} exited but maxRestarts is ${maxRestarts}`
11169
11322
  );
11170
11323
  handle.status = "FAILED";
@@ -11173,7 +11326,7 @@ var LspServerManager = class {
11173
11326
  }
11174
11327
  const attempts = handle.restartAttempts ?? 0;
11175
11328
  if (attempts >= maxRestarts) {
11176
- debugLogger18.warn(
11329
+ debugLogger20.warn(
11177
11330
  `LSP server ${name} reached max restart attempts (${maxRestarts}), stopping restarts`
11178
11331
  );
11179
11332
  handle.status = "FAILED";
@@ -11181,7 +11334,7 @@ var LspServerManager = class {
11181
11334
  return;
11182
11335
  }
11183
11336
  handle.restartAttempts = attempts + 1;
11184
- debugLogger18.warn(
11337
+ debugLogger20.warn(
11185
11338
  `LSP server ${name} exited (code ${code ?? "unknown"}), restarting (${handle.restartAttempts}/${maxRestarts})`
11186
11339
  );
11187
11340
  this.enqueueCrashRestart(name, handle);
@@ -11229,7 +11382,7 @@ var LspServerManager = class {
11229
11382
  const next = this.reconcileQueue.then(restart, restart);
11230
11383
  this.reconcileQueue = next.catch(() => void 0);
11231
11384
  void next.catch((error) => {
11232
- debugLogger18.warn(`LSP server ${name} crash restart failed:`, error);
11385
+ debugLogger20.warn(`LSP server ${name} crash restart failed:`, error);
11233
11386
  });
11234
11387
  }
11235
11388
  resetHandle(handle) {
@@ -11237,14 +11390,14 @@ var LspServerManager = class {
11237
11390
  try {
11238
11391
  handle.connection.end();
11239
11392
  } catch (error) {
11240
- debugLogger18.warn("Error closing LSP connection during reset:", error);
11393
+ debugLogger20.warn("Error closing LSP connection during reset:", error);
11241
11394
  }
11242
11395
  }
11243
11396
  if (handle.process && handle.process.exitCode === null) {
11244
11397
  try {
11245
11398
  handle.process.kill();
11246
11399
  } catch (error) {
11247
- debugLogger18.warn("Error killing LSP process during reset:", error);
11400
+ debugLogger20.warn("Error killing LSP process during reset:", error);
11248
11401
  }
11249
11402
  }
11250
11403
  handle.connection = void 0;
@@ -11263,7 +11416,7 @@ var LspServerManager = class {
11263
11416
  const filteredEnv = {};
11264
11417
  for (const [key, value] of Object.entries(env2)) {
11265
11418
  if (SECURITY_SENSITIVE_ENV_KEYS.has(key.toUpperCase())) {
11266
- debugLogger18.warn(
11419
+ debugLogger20.warn(
11267
11420
  `Ignoring security-sensitive LSP server env override: ${key}`
11268
11421
  );
11269
11422
  continue;
@@ -11289,7 +11442,7 @@ var LspServerManager = class {
11289
11442
  for (const [key, value] of Object.entries(env2)) {
11290
11443
  const normalizedKey = key.toUpperCase();
11291
11444
  if (normalizedKey === "PATH" || SECURITY_SENSITIVE_ENV_KEYS.has(normalizedKey)) {
11292
- debugLogger18.warn(
11445
+ debugLogger20.warn(
11293
11446
  `Ignoring security-sensitive LSP command probe env override: ${key}`
11294
11447
  );
11295
11448
  continue;
@@ -11538,7 +11691,7 @@ var LspServerManager = class {
11538
11691
  try {
11539
11692
  process3.kill();
11540
11693
  } catch (error) {
11541
- debugLogger18.warn(
11694
+ debugLogger20.warn(
11542
11695
  "Error killing aborted LSP socket process:",
11543
11696
  error
11544
11697
  );
@@ -11711,12 +11864,12 @@ var LspServerManager = class {
11711
11864
  return true;
11712
11865
  }
11713
11866
  if (this.requireTrustedWorkspace || serverConfig.trustRequired) {
11714
- debugLogger18.warn(
11867
+ debugLogger20.warn(
11715
11868
  `Workspace not trusted, skipping LSP server ${serverName} (${serverConfig.command ?? serverConfig.transport})`
11716
11869
  );
11717
11870
  return false;
11718
11871
  }
11719
- debugLogger18.info(
11872
+ debugLogger20.info(
11720
11873
  `Untrusted workspace, but LSP server ${serverName} has trustRequired=false, attempting cautious startup`
11721
11874
  );
11722
11875
  return true;
@@ -11961,7 +12114,7 @@ import * as path13 from "path";
11961
12114
  import { fileURLToPath, pathToFileURL as pathToFileURL3 } from "url";
11962
12115
  import * as fs11 from "node:fs";
11963
12116
  import { promises as fsp } from "node:fs";
11964
- var debugLogger19 = createDebugLogger("LSP");
12117
+ var debugLogger21 = createDebugLogger("LSP");
11965
12118
  var LANGUAGE_ID_TO_EXTENSIONS = {
11966
12119
  typescript: ["ts", "tsx"],
11967
12120
  typescriptreact: ["tsx"],
@@ -12019,7 +12172,7 @@ var NativeLspService = class {
12019
12172
  const workspaceTrusted = this.config.isTrustedFolder();
12020
12173
  this.serverManager.clearServerHandles();
12021
12174
  if (this.requireTrustedWorkspace && !workspaceTrusted) {
12022
- debugLogger19.warn(
12175
+ debugLogger21.warn(
12023
12176
  "Workspace is not trusted, skipping LSP server discovery"
12024
12177
  );
12025
12178
  return;
@@ -12037,7 +12190,7 @@ var NativeLspService = class {
12037
12190
  serverConfigs,
12038
12191
  workspaceTrusted
12039
12192
  );
12040
- debugLogger19.info(
12193
+ debugLogger21.info(
12041
12194
  `Discovered ${admitted.length} LSP server config(s): ${formatServerNames2(
12042
12195
  admitted.map((config) => config.name)
12043
12196
  )}, skipped=${formatServerNames2(skipped.map((server) => server.name))}`
@@ -12072,7 +12225,7 @@ var NativeLspService = class {
12072
12225
  async doReinitialize(signal) {
12073
12226
  this.throwIfReinitializeAborted(signal);
12074
12227
  const workspaceTrusted = this.config.isTrustedFolder();
12075
- debugLogger19.info(
12228
+ debugLogger21.info(
12076
12229
  `Reinitializing LSP servers: workspaceRoot=${this.workspaceRoot}, trusted=${workspaceTrusted}`
12077
12230
  );
12078
12231
  if (this.requireTrustedWorkspace && !workspaceTrusted) {
@@ -12091,7 +12244,7 @@ var NativeLspService = class {
12091
12244
  },
12092
12245
  skipped: []
12093
12246
  };
12094
- debugLogger19.info(
12247
+ debugLogger21.info(
12095
12248
  `LSP reinitialize result: added=<none>, removed=${formatServerNames2(
12096
12249
  removed
12097
12250
  )}, restarted=<none>, unchanged=<none>, failed=<none>, skipped=<none>`
@@ -12133,7 +12286,7 @@ var NativeLspService = class {
12133
12286
  signal
12134
12287
  );
12135
12288
  this.throwIfReinitializeAborted(signal);
12136
- debugLogger19.info(
12289
+ debugLogger21.info(
12137
12290
  `LSP reinitialize result: added=${formatServerNames2(
12138
12291
  reconcile.added
12139
12292
  )}, removed=${formatServerNames2(
@@ -12153,7 +12306,7 @@ var NativeLspService = class {
12153
12306
  const skipped = [];
12154
12307
  for (const config of configs) {
12155
12308
  if (!workspaceTrusted && config.trustRequired) {
12156
- debugLogger19.warn(
12309
+ debugLogger21.warn(
12157
12310
  `LSP server ${config.name} requires trusted workspace, skipping`
12158
12311
  );
12159
12312
  skipped.push({ name: config.name, reason: "server_trust_required" });
@@ -12198,7 +12351,7 @@ var NativeLspService = class {
12198
12351
  try {
12199
12352
  openedAny = this.sendDocumentOpen(name, handle, uri) || openedAny;
12200
12353
  } catch (error) {
12201
- debugLogger19.warn(
12354
+ debugLogger21.warn(
12202
12355
  `Failed to replay document ${uri} for LSP server ${name}:`,
12203
12356
  error
12204
12357
  );
@@ -12327,14 +12480,14 @@ var NativeLspService = class {
12327
12480
  try {
12328
12481
  filePath = fileURLToPath(uri);
12329
12482
  } catch (error) {
12330
- debugLogger19.warn(`Failed to resolve file path for ${uri}:`, error);
12483
+ debugLogger21.warn(`Failed to resolve file path for ${uri}:`, error);
12331
12484
  return false;
12332
12485
  }
12333
12486
  let text;
12334
12487
  try {
12335
12488
  text = fs11.readFileSync(filePath, "utf-8");
12336
12489
  } catch (error) {
12337
- debugLogger19.warn(
12490
+ debugLogger21.warn(
12338
12491
  `Failed to read file for LSP didOpen: ${filePath}`,
12339
12492
  error
12340
12493
  );
@@ -12562,7 +12715,7 @@ var NativeLspService = class {
12562
12715
  }
12563
12716
  }
12564
12717
  } catch (error) {
12565
- debugLogger19.warn(
12718
+ debugLogger21.warn(
12566
12719
  `LSP workspace/symbol failed for ${serverName}:`,
12567
12720
  error
12568
12721
  );
@@ -12613,7 +12766,7 @@ var NativeLspService = class {
12613
12766
  return definitions.slice(0, limit);
12614
12767
  }
12615
12768
  } catch (error) {
12616
- debugLogger19.warn(
12769
+ debugLogger21.warn(
12617
12770
  `LSP textDocument/definition failed for ${name}:`,
12618
12771
  error
12619
12772
  );
@@ -12667,7 +12820,7 @@ var NativeLspService = class {
12667
12820
  return refs.slice(0, limit);
12668
12821
  }
12669
12822
  } catch (error) {
12670
- debugLogger19.warn(
12823
+ debugLogger21.warn(
12671
12824
  `LSP textDocument/references failed for ${name}:`,
12672
12825
  error
12673
12826
  );
@@ -12708,7 +12861,7 @@ var NativeLspService = class {
12708
12861
  return normalized2;
12709
12862
  }
12710
12863
  } catch (error) {
12711
- debugLogger19.warn(`LSP textDocument/hover failed for ${name}:`, error);
12864
+ debugLogger21.warn(`LSP textDocument/hover failed for ${name}:`, error);
12712
12865
  }
12713
12866
  }
12714
12867
  return null;
@@ -12768,7 +12921,7 @@ var NativeLspService = class {
12768
12921
  return symbols.slice(0, limit);
12769
12922
  }
12770
12923
  } catch (error) {
12771
- debugLogger19.warn(
12924
+ debugLogger21.warn(
12772
12925
  `LSP textDocument/documentSymbol failed for ${name}:`,
12773
12926
  error
12774
12927
  );
@@ -12822,7 +12975,7 @@ var NativeLspService = class {
12822
12975
  return implementations.slice(0, limit);
12823
12976
  }
12824
12977
  } catch (error) {
12825
- debugLogger19.warn(
12978
+ debugLogger21.warn(
12826
12979
  `LSP textDocument/implementation failed for ${name}:`,
12827
12980
  error
12828
12981
  );
@@ -12876,7 +13029,7 @@ var NativeLspService = class {
12876
13029
  return items.slice(0, limit);
12877
13030
  }
12878
13031
  } catch (error) {
12879
- debugLogger19.warn(
13032
+ debugLogger21.warn(
12880
13033
  `LSP textDocument/prepareCallHierarchy failed for ${name}:`,
12881
13034
  error
12882
13035
  );
@@ -12916,7 +13069,7 @@ var NativeLspService = class {
12916
13069
  return calls.slice(0, limit);
12917
13070
  }
12918
13071
  } catch (error) {
12919
- debugLogger19.warn(
13072
+ debugLogger21.warn(
12920
13073
  `LSP callHierarchy/incomingCalls failed for ${name}:`,
12921
13074
  error
12922
13075
  );
@@ -12956,7 +13109,7 @@ var NativeLspService = class {
12956
13109
  return calls.slice(0, limit);
12957
13110
  }
12958
13111
  } catch (error) {
12959
- debugLogger19.warn(
13112
+ debugLogger21.warn(
12960
13113
  `LSP callHierarchy/outgoingCalls failed for ${name}:`,
12961
13114
  error
12962
13115
  );
@@ -12996,7 +13149,7 @@ var NativeLspService = class {
12996
13149
  }
12997
13150
  }
12998
13151
  } catch (error) {
12999
- debugLogger19.warn(
13152
+ debugLogger21.warn(
13000
13153
  `LSP textDocument/diagnostic failed for ${name}:`,
13001
13154
  error
13002
13155
  );
@@ -13038,7 +13191,7 @@ var NativeLspService = class {
13038
13191
  }
13039
13192
  }
13040
13193
  } catch (error) {
13041
- debugLogger19.warn(`LSP workspace/diagnostic failed for ${name}:`, error);
13194
+ debugLogger21.warn(`LSP workspace/diagnostic failed for ${name}:`, error);
13042
13195
  }
13043
13196
  if (results.length >= limit) {
13044
13197
  break;
@@ -13088,7 +13241,7 @@ var NativeLspService = class {
13088
13241
  return actions.slice(0, limit);
13089
13242
  }
13090
13243
  } catch (error) {
13091
- debugLogger19.warn(
13244
+ debugLogger21.warn(
13092
13245
  `LSP textDocument/codeAction failed for ${name}:`,
13093
13246
  error
13094
13247
  );
@@ -13116,7 +13269,7 @@ var NativeLspService = class {
13116
13269
  }
13117
13270
  return true;
13118
13271
  } catch (error) {
13119
- debugLogger19.error("Failed to apply workspace edit:", error);
13272
+ debugLogger21.error("Failed to apply workspace edit:", error);
13120
13273
  return false;
13121
13274
  }
13122
13275
  }
@@ -13379,7 +13532,7 @@ __name(createFollowupController, "createFollowupController");
13379
13532
 
13380
13533
  // packages/core/src/followup/suggestionGenerator.ts
13381
13534
  init_esbuild_shims();
13382
- var debugLogger20 = createDebugLogger("FOLLOWUP");
13535
+ var debugLogger22 = createDebugLogger("FOLLOWUP");
13383
13536
  var SUGGESTION_PROMPT = `[SUGGESTION MODE: Suggest what the user might naturally type next.]
13384
13537
 
13385
13538
  FIRST: Read the LAST FEW LINES of the assistant's most recent message -- that's where
@@ -13441,7 +13594,7 @@ async function generatePromptSuggestion(config, conversationHistory, abortSignal
13441
13594
  const cacheSafe = options?.enableCacheSharing ? getCacheSafeParams(sessionId) : null;
13442
13595
  const modelOverride = options?.model;
13443
13596
  const cacheSharingState = cacheSafe ? "true" : cacheSafeSessionId ? "session_mismatch" : "false";
13444
- debugLogger20.debug(
13597
+ debugLogger22.debug(
13445
13598
  `Generating suggestion: cacheSharing=${cacheSharingState}, model=${modelOverride || "(default)"}`
13446
13599
  );
13447
13600
  const raw = cacheSafe ? await generateViaForkedQuery(
@@ -13457,23 +13610,23 @@ async function generatePromptSuggestion(config, conversationHistory, abortSignal
13457
13610
  );
13458
13611
  const suggestion = typeof raw === "string" ? raw.trim() : null;
13459
13612
  if (!suggestion) {
13460
- debugLogger20.debug("Suggestion generation returned empty result");
13613
+ debugLogger22.debug("Suggestion generation returned empty result");
13461
13614
  return { suggestion: null, filterReason: "empty" };
13462
13615
  }
13463
13616
  const filterReason = getFilterReason(suggestion);
13464
13617
  if (filterReason) {
13465
- debugLogger20.debug(
13618
+ debugLogger22.debug(
13466
13619
  `Suggestion filtered: reason=${filterReason}, text="${suggestion}"`
13467
13620
  );
13468
13621
  return { suggestion: null, filterReason };
13469
13622
  }
13470
- debugLogger20.debug(`Suggestion accepted: "${suggestion}"`);
13623
+ debugLogger22.debug(`Suggestion accepted: "${suggestion}"`);
13471
13624
  return { suggestion };
13472
13625
  } catch (error) {
13473
13626
  if (abortSignal.aborted) {
13474
13627
  return { suggestion: null };
13475
13628
  }
13476
- debugLogger20.warn("Suggestion generation failed:", error);
13629
+ debugLogger22.warn("Suggestion generation failed:", error);
13477
13630
  return { suggestion: null, filterReason: "error" };
13478
13631
  }
13479
13632
  }
@@ -13812,7 +13965,7 @@ __name(rewritePathArgs, "rewritePathArgs");
13812
13965
 
13813
13966
  // packages/core/src/followup/speculation.ts
13814
13967
  init_esbuild_shims();
13815
- var debugLogger21 = createDebugLogger("SPECULATION");
13968
+ var debugLogger23 = createDebugLogger("SPECULATION");
13816
13969
  var MAX_SPECULATION_TURNS = 20;
13817
13970
  var MAX_SPECULATION_MESSAGES = 100;
13818
13971
  function observeSpeculationProducer(params) {
@@ -14060,7 +14213,7 @@ async function runSpeculativeLoop(config, state, cacheSafe, modelOverride) {
14060
14213
  break;
14061
14214
  }
14062
14215
  if (!guardDecision.allowed) {
14063
- debugLogger21.debug(
14216
+ debugLogger23.debug(
14064
14217
  `Speculative guard denial: ${guardDecision.reason}`
14065
14218
  );
14066
14219
  hitBoundary = true;
@@ -14307,7 +14460,7 @@ var import_picomatch = __toESM(require_picomatch(), 1);
14307
14460
  import fs12 from "node:fs";
14308
14461
  import path14 from "node:path";
14309
14462
  var hasFileExtension = (0, import_picomatch.default)("**/*[*.]*");
14310
- var debugLogger22 = createDebugLogger("FILE_SEARCH_IGNORE");
14463
+ var debugLogger24 = createDebugLogger("FILE_SEARCH_IGNORE");
14311
14464
  function loadIgnoreRules(options) {
14312
14465
  const ignorer = new Ignore();
14313
14466
  if (options.useGitignore) {
@@ -14346,7 +14499,7 @@ function readIgnoreFile(filePath) {
14346
14499
  } catch (_error) {
14347
14500
  const error = _error;
14348
14501
  if (error.code !== "ENOENT") {
14349
- debugLogger22.warn(`Failed to read ${filePath}: ${error.message}`);
14502
+ debugLogger24.warn(`Failed to read ${filePath}: ${error.message}`);
14350
14503
  }
14351
14504
  return void 0;
14352
14505
  }
@@ -17897,6 +18050,8 @@ export {
17897
18050
  BTW_MAX_INPUT_LENGTH,
17898
18051
  buildBtwPrompt,
17899
18052
  buildBtwCacheSafeParams,
18053
+ getStopHookContinuationReason,
18054
+ abortGoalForStopHookCap,
17900
18055
  projectGoalStateToLegacy,
17901
18056
  isGoalCheckpointBookkeepingRecord,
17902
18057
  renderGoalContinuationTurn,